From 331166f434c63ccd7a9eb2abd592ae2d4f782c57 Mon Sep 17 00:00:00 2001 From: Yongchun Jiang Date: Sun, 3 Aug 2025 22:16:49 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=BB=A3=E7=A0=81=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ads.js | 26 + assets/internal/config.803f8.json | 1 + .../internal/import/09/0967b326a.381d5.json | 1 + assets/internal/index.803f8.js | 1 + ...e94c-56a7-410f-bd1a-fc7483f7d14a.cea68.png | Bin 0 -> 82 bytes assets/main/0967b326a.381d5.json | 1 + assets/main/config.fbdd2.json | 1 + assets/main/import/02/023076552.dfaef.json | 1 + assets/main/import/0e/0e06891ae.3e41d.json | 1 + assets/main/index.fbdd2.js | 3267 + ...854a-77b0-4814-bf68-cc5399d113fe.de749.mp3 | Bin 0 -> 12010 bytes ...0f37-84b5-47d0-98b1-c6e3c857c183.a72af.png | Bin 0 -> 123377 bytes ...7b77-8bbe-405b-9cf7-1ce1e4f0b7d5.0a5d8.png | Bin 0 -> 15030 bytes ...b677-cf92-4725-a791-6c700f6e370a.92fd3.png | Bin 0 -> 28719 bytes assets/main/native/13/131f7d7ff.81214.png | Bin 0 -> 74830 bytes assets/main/native/13/139b3a6ab.477b6.png | Bin 0 -> 109188 bytes assets/main/native/14/14bd3a795.04b49.png | Bin 0 -> 20626 bytes assets/main/native/1b/1bb33d059.b0532.png | Bin 0 -> 134335 bytes ...5a4d-4c1b-4529-9c07-32edc1f9dcd5.31bf3.png | Bin 0 -> 40235 bytes ...58b4-4739-4282-a0cf-3fcf5938ab29.c51dc.png | Bin 0 -> 187335 bytes ...2afa-670a-419c-8727-ce0d9a595a76.f2c21.png | Bin 0 -> 25736 bytes ...58ef-af5c-4dd4-a020-d6bde57d434a.91680.png | Bin 0 -> 40717 bytes ...8663-0b63-4c97-bb54-a603c9013951.759ec.png | Bin 0 -> 70233 bytes ...911d-9095-4516-bc56-d562425f290e.1fb75.png | Bin 0 -> 100369 bytes ...58a4-e694-4ba0-8fbe-e31456f295e3.0ba26.png | Bin 0 -> 19471 bytes ...e881-3af9-496e-933e-ca7ecf5241ba.14038.png | Bin 0 -> 3261 bytes ...1142-4c83-4933-afca-cb7a17f67053.c06a9.png | Bin 0 -> 1050 bytes ...2686-1af4-4f89-a551-8c02692ce060.a7794.png | Bin 0 -> 36830 bytes ...adff-3892-4147-bae4-28046ea905f8.65ac2.png | Bin 0 -> 43223 bytes ...afa0-3e1a-4c59-bed8-189e9f781e66.84404.png | Bin 0 -> 94332 bytes ...3684-8b23-4dad-abd3-b6d4618b0cd5.57beb.png | Bin 0 -> 38299 bytes ...f3c2-02bb-4874-81f7-f2dea6970f18.83fcc.png | Bin 0 -> 1032 bytes ...301e-9f64-47f6-9323-a9f91274087f.8dd82.mp3 | Bin 0 -> 6442 bytes ...669b-6a12-47c9-a3eb-025e4a531fda.3938e.png | Bin 0 -> 54765 bytes ...460c-2ca6-4797-9ff8-5c69bb95d09c.f5b37.mp3 | Bin 0 -> 6142 bytes ...1c9e-ea38-4407-bb17-8d485d15154f.75d5c.png | Bin 0 -> 48602 bytes ...e136-5f11-4fba-ad76-4c0c2882d26a.78b85.png | Bin 0 -> 111789 bytes ...cb8e-6520-4678-8296-f1cae8d6e0d0.0b746.png | Bin 0 -> 30075 bytes ...c8ad-247c-4e62-aa3c-d35c4193c7af.cdbc9.png | Bin 0 -> 145 bytes ...47c0-6fe9-48c5-a509-f8c6e897a072.5ccbd.png | Bin 0 -> 208 bytes ...e238-3fdd-4d0e-9a96-093a6a31ea43.0a4c5.png | Bin 0 -> 5616 bytes assets/resources/config.93f29.json | 1 + ...a59-c0fc-4767-8be2-bf5124bb4b8d.3881a.json | 1 + assets/resources/index.93f29.js | 1 + cocos2d-js-min.js | 91260 ++++++++++++++++ f.txt | 248 + index.html | 259 + main.js | 164 + res/loading.gif | Bin 0 -> 3897 bytes res/share.png | Bin 0 -> 28062 bytes settings.js | 1 + singleColor.png | Bin 0 -> 82 bytes src/settings.js | 1 + style-mobile.css | 127 + 54 files changed, 95363 insertions(+) create mode 100644 ads.js create mode 100644 assets/internal/config.803f8.json create mode 100644 assets/internal/import/09/0967b326a.381d5.json create mode 100644 assets/internal/index.803f8.js create mode 100644 assets/internal/native/02/0275e94c-56a7-410f-bd1a-fc7483f7d14a.cea68.png create mode 100644 assets/main/0967b326a.381d5.json create mode 100644 assets/main/config.fbdd2.json create mode 100644 assets/main/import/02/023076552.dfaef.json create mode 100644 assets/main/import/0e/0e06891ae.3e41d.json create mode 100644 assets/main/index.fbdd2.js create mode 100644 assets/main/native/01/01d9854a-77b0-4814-bf68-cc5399d113fe.de749.mp3 create mode 100644 assets/main/native/0b/0b1d0f37-84b5-47d0-98b1-c6e3c857c183.a72af.png create mode 100644 assets/main/native/0b/0b777b77-8bbe-405b-9cf7-1ce1e4f0b7d5.0a5d8.png create mode 100644 assets/main/native/10/100eb677-cf92-4725-a791-6c700f6e370a.92fd3.png create mode 100644 assets/main/native/13/131f7d7ff.81214.png create mode 100644 assets/main/native/13/139b3a6ab.477b6.png create mode 100644 assets/main/native/14/14bd3a795.04b49.png create mode 100644 assets/main/native/1b/1bb33d059.b0532.png create mode 100644 assets/main/native/20/20d65a4d-4c1b-4529-9c07-32edc1f9dcd5.31bf3.png create mode 100644 assets/main/native/4c/4ce658b4-4739-4282-a0cf-3fcf5938ab29.c51dc.png create mode 100644 assets/main/native/52/52cb2afa-670a-419c-8727-ce0d9a595a76.f2c21.png create mode 100644 assets/main/native/57/57df58ef-af5c-4dd4-a020-d6bde57d434a.91680.png create mode 100644 assets/main/native/64/64db8663-0b63-4c97-bb54-a603c9013951.759ec.png create mode 100644 assets/main/native/6c/6cbb911d-9095-4516-bc56-d562425f290e.1fb75.png create mode 100644 assets/main/native/6f/6f4658a4-e694-4ba0-8fbe-e31456f295e3.0ba26.png create mode 100644 assets/main/native/70/709ee881-3af9-496e-933e-ca7ecf5241ba.14038.png create mode 100644 assets/main/native/71/71561142-4c83-4933-afca-cb7a17f67053.c06a9.png create mode 100644 assets/main/native/80/80c22686-1af4-4f89-a551-8c02692ce060.a7794.png create mode 100644 assets/main/native/8e/8e24adff-3892-4147-bae4-28046ea905f8.65ac2.png create mode 100644 assets/main/native/a0/a0d8afa0-3e1a-4c59-bed8-189e9f781e66.84404.png create mode 100644 assets/main/native/b3/b3833684-8b23-4dad-abd3-b6d4618b0cd5.57beb.png create mode 100644 assets/main/native/b4/b43ff3c2-02bb-4874-81f7-f2dea6970f18.83fcc.png create mode 100644 assets/main/native/b9/b9cf301e-9f64-47f6-9323-a9f91274087f.8dd82.mp3 create mode 100644 assets/main/native/bf/bf5b669b-6a12-47c9-a3eb-025e4a531fda.3938e.png create mode 100644 assets/main/native/c4/c4a5460c-2ca6-4797-9ff8-5c69bb95d09c.f5b37.mp3 create mode 100644 assets/main/native/c6/c6961c9e-ea38-4407-bb17-8d485d15154f.75d5c.png create mode 100644 assets/main/native/ca/caeae136-5f11-4fba-ad76-4c0c2882d26a.78b85.png create mode 100644 assets/main/native/d6/d6bbcb8e-6520-4678-8296-f1cae8d6e0d0.0b746.png create mode 100644 assets/main/native/d8/d81ec8ad-247c-4e62-aa3c-d35c4193c7af.cdbc9.png create mode 100644 assets/main/native/f2/f21947c0-6fe9-48c5-a509-f8c6e897a072.5ccbd.png create mode 100644 assets/main/native/f5/f5bfe238-3fdd-4d0e-9a96-093a6a31ea43.0a4c5.png create mode 100644 assets/resources/config.93f29.json create mode 100644 assets/resources/import/41/417a8a59-c0fc-4767-8be2-bf5124bb4b8d.3881a.json create mode 100644 assets/resources/index.93f29.js create mode 100644 cocos2d-js-min.js create mode 100644 f.txt create mode 100644 index.html create mode 100644 main.js create mode 100644 res/loading.gif create mode 100644 res/share.png create mode 100644 settings.js create mode 100644 singleColor.png create mode 100644 src/settings.js create mode 100644 style-mobile.css diff --git a/ads.js b/ads.js new file mode 100644 index 0000000..b809674 --- /dev/null +++ b/ads.js @@ -0,0 +1,26 @@ +function noAdGoToScene(){ + var GameConfig = __require("GameConfig"); + console.log("IndexMainMangerMaing",GameConfig.launchScene, GameConfig.Bros,GameConfig.caS); + + var launchScene = GameConfig.launchScene; + var Bros = GameConfig.Bros; + var caS = GameConfig.caS; + cc.director.loadScene(launchScene, null, + function () { + + adCompleteFlag = false; + + if (Bros) { + // show canvas + var canvas = document.getElementById('GameCanvas'); + canvas.style.visibility = ''; + var div = document.getElementById('GameDiv'); + if (div) { + div.style.backgroundImage = ''; + } + } + cc.loader.onProgress = null; + console.log('Success to load scene1Main: ' + launchScene); + } + ); +} \ No newline at end of file diff --git a/assets/internal/config.803f8.json b/assets/internal/config.803f8.json new file mode 100644 index 0000000..33b64c9 --- /dev/null +++ b/assets/internal/config.803f8.json @@ -0,0 +1 @@ +{"paths":{"0":["effects/builtin-2d-graphics",0],"1":["effects/builtin-2d-gray-sprite",0],"2":["effects/builtin-2d-label",0],"3":["effects/builtin-2d-spine",0],"4":["effects/builtin-2d-sprite",0],"5":["effects/builtin-3d-trail",0],"6":["effects/builtin-clear-stencil",0],"7":["effects/builtin-unlit",0],"8":["materials/builtin-2d-base",1],"9":["materials/builtin-2d-graphics",1],"10":["materials/builtin-2d-gray-sprite",1],"11":["materials/builtin-2d-label",1],"12":["materials/builtin-2d-spine",1],"13":["materials/builtin-2d-sprite",1],"14":["materials/builtin-3d-trail",1],"15":["materials/builtin-clear-stencil",1],"16":["materials/builtin-unlit",1]},"types":["cc.EffectAsset","cc.Material"],"uuids":["30aC+Hnw1PF4pEcoY3kUYb","14TDKXr2NJ6LjvHPops74o","f1h0LXVtJOta5JLZ1xCzfI","0ek66qC1NOQLjgYmi04HvX","28dPjdQWxEQIG3VVl1Qm6T","2afAA24LNP4YmYiaVLiivs","c0BAyVxX9JzZy8EjFrc9DU","6dkeWRTOBGXICfYQ7JUBnG","6fgBCSDDdPMInvyNlggls2","a1U5RdJRFMFL57BdJC9H1X","3ae7efMv1CLq2ilvUY/tQi","e0LYfU5ZlNFoAB4UiRrGUG","7a/QZLET9IDreTiBfRn2PD","ecpdLyjvZBwrvm+cedCcQy","46bU+b5fROqIXVPG6aZWWK","cffgu4qBxEqa150o1DmRAy","2aKWBXJHxKHLvrBUi2yYZQ","02delMVqdBD70a/HSD99FK"],"scenes":{},"redirect":[],"deps":[],"packs":{"0967b326a":[17,3,1,4,16,5,0,10,14,7,8,12,9,6,15,11,13,2]},"name":"internal","importBase":"import","nativeBase":"native","debug":false,"isZip":false,"encrypted":false,"versions":{"import":["0967b326a","381d5"],"native":[17,"cea68"]}} \ No newline at end of file diff --git a/assets/internal/import/09/0967b326a.381d5.json b/assets/internal/import/09/0967b326a.381d5.json new file mode 100644 index 0000000..3355e3e --- /dev/null +++ b/assets/internal/import/09/0967b326a.381d5.json @@ -0,0 +1 @@ +[1,["02delMVqdBD70a/HSD99FK","28dPjdQWxEQIG3VVl1Qm6T","6dkeWRTOBGXICfYQ7JUBnG","14TDKXr2NJ6LjvHPops74o","2afAA24LNP4YmYiaVLiivs","0ek66qC1NOQLjgYmi04HvX","30aC+Hnw1PF4pEcoY3kUYb","c0BAyVxX9JzZy8EjFrc9DU","f1h0LXVtJOta5JLZ1xCzfI"],["_effectAsset","diffuseTexture","mainTexture"],["cc.Texture2D",["cc.EffectAsset",["_name","shaders","techniques"],0],["cc.Material",["_name","_techniqueData"],2,11],["cc.Material",["_name","_techniqueData"],1]],[[1,0,1,2,4],[3,0,1,3],[2,0,1,2]],[[["0,9729,9729,33071,33071,0,0,1",-1],[0],0,[],[],[]],[[[0,"builtin-2d-spine",[{"hash":3550530479,"record":null,"name":"builtin-2d-spine|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\n#if USE_TINT\n in vec4 a_color0;\n#endif\nin vec2 a_uv0;\nout vec2 v_uv0;\nout vec4 v_light;\n#if USE_TINT\n out vec4 v_dark;\n#endif\nvoid main () {\n mat4 mvp;\n #if CC_USE_MODEL\n mvp = cc_matViewProj * cc_matWorld;\n #else\n mvp = cc_matViewProj;\n #endif\n v_uv0 = a_uv0;\n v_light = a_color;\n #if USE_TINT\n v_dark = a_color0;\n #endif\n gl_Position = mvp * vec4(a_position, 1);\n}","frag":"\nprecision highp float;\nuniform sampler2D texture;\nin vec2 v_uv0;\nin vec4 v_light;\n#if USE_TINT\n in vec4 v_dark;\n#endif\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvoid main () {\n vec4 texColor = vec4(1.0);\n vec4 texture_tmp = texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n texColor.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n texColor.a *= texture_tmp.a;\n #else\n texColor *= texture_tmp;\n #endif\n vec4 finalColor;\n #if USE_TINT\n finalColor.a = v_light.a * texColor.a;\n finalColor.rgb = ((texColor.a - 1.0) * v_dark.a + 1.0 - texColor.rgb) * v_dark.rgb + texColor.rgb * v_light.rgb;\n #else\n finalColor = texColor * v_light;\n #endif\n ALPHA_TEST(finalColor);\n gl_FragColor = finalColor;\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\n#if USE_TINT\n attribute vec4 a_color0;\n#endif\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\nvarying vec4 v_light;\n#if USE_TINT\n varying vec4 v_dark;\n#endif\nvoid main () {\n mat4 mvp;\n #if CC_USE_MODEL\n mvp = cc_matViewProj * cc_matWorld;\n #else\n mvp = cc_matViewProj;\n #endif\n v_uv0 = a_uv0;\n v_light = a_color;\n #if USE_TINT\n v_dark = a_color0;\n #endif\n gl_Position = mvp * vec4(a_position, 1);\n}","frag":"\nprecision highp float;\nuniform sampler2D texture;\nvarying vec2 v_uv0;\nvarying vec4 v_light;\n#if USE_TINT\n varying vec4 v_dark;\n#endif\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvoid main () {\n vec4 texColor = vec4(1.0);\n vec4 texture_tmp = texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n texColor.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n texColor.a *= texture_tmp.a;\n #else\n texColor *= texture_tmp;\n #endif\n vec4 finalColor;\n #if USE_TINT\n finalColor.a = v_light.a * texColor.a;\n finalColor.rgb = ((texColor.a - 1.0) * v_dark.a + 1.0 - texColor.rgb) * v_dark.rgb + texColor.rgb * v_light.rgb;\n #else\n finalColor = texColor * v_light;\n #endif\n ALPHA_TEST(finalColor);\n gl_FragColor = finalColor;\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"USE_TINT","type":"boolean","defines":[]},{"name":"CC_USE_MODEL","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]},{"name":"CC_USE_ALPHA_ATLAS_texture","type":"boolean","defines":[]},{"name":"INPUT_IS_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"ALPHA_TEST","binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplers":[{"name":"texture","type":29,"count":1,"binding":30,"defines":[]}]}],[{"passes":[{"program":"builtin-2d-spine|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"properties":{"texture":{"value":"white","type":29},"alphaThreshold":{"type":13,"value":[0.5]}}}]}]]],0,0,[],[],[]],[[[0,"builtin-2d-gray-sprite",[{"hash":4278481454,"record":null,"name":"builtin-2d-gray-sprite|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nin vec3 a_position;\nin mediump vec2 a_uv0;\nout mediump vec2 v_uv0;\nin vec4 a_color;\nout vec4 v_color;\nvoid main () {\n gl_Position = cc_matViewProj * vec4(a_position, 1);\n v_uv0 = a_uv0;\n v_color = a_color;\n}","frag":"\nprecision highp float;\nuniform sampler2D texture;\nin mediump vec2 v_uv0;\nin vec4 v_color;\nvoid main () {\n vec4 color = v_color;\n vec4 texture_tmp = texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n color.a *= texture_tmp.a;\n #else\n color *= texture_tmp;\n #endif\n float gray = 0.2126*color.r + 0.7152*color.g + 0.0722*color.b;\n gl_FragColor = vec4(gray, gray, gray, color.a);\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nattribute vec3 a_position;\nattribute mediump vec2 a_uv0;\nvarying mediump vec2 v_uv0;\nattribute vec4 a_color;\nvarying vec4 v_color;\nvoid main () {\n gl_Position = cc_matViewProj * vec4(a_position, 1);\n v_uv0 = a_uv0;\n v_color = a_color;\n}","frag":"\nprecision highp float;\nuniform sampler2D texture;\nvarying mediump vec2 v_uv0;\nvarying vec4 v_color;\nvoid main () {\n vec4 color = v_color;\n vec4 texture_tmp = texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n color.a *= texture_tmp.a;\n #else\n color *= texture_tmp;\n #endif\n float gray = 0.2126*color.r + 0.7152*color.g + 0.0722*color.b;\n gl_FragColor = vec4(gray, gray, gray, color.a);\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[],"samplers":[]}},"defines":[{"name":"CC_USE_ALPHA_ATLAS_texture","type":"boolean","defines":[]},{"name":"INPUT_IS_GAMMA","type":"boolean","defines":[]}],"blocks":[],"samplers":[{"name":"texture","type":29,"count":1,"binding":30,"defines":[]}]}],[{"passes":[{"program":"builtin-2d-gray-sprite|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"properties":{"texture":{"value":"white","type":29}}}]}]]],0,0,[],[],[]],[[[0,"builtin-2d-sprite",[{"hash":3278106612,"record":null,"name":"builtin-2d-sprite|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n vec4 texture_tmp = texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n o.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n o.a *= texture_tmp.a;\n #else\n o *= texture_tmp;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n vec4 texture_tmp = texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n o.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n o.a *= texture_tmp.a;\n #else\n o *= texture_tmp;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"USE_TEXTURE","type":"boolean","defines":[]},{"name":"CC_USE_MODEL","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]},{"name":"CC_USE_ALPHA_ATLAS_texture","type":"boolean","defines":["USE_TEXTURE"]},{"name":"INPUT_IS_GAMMA","type":"boolean","defines":["USE_TEXTURE"]}],"blocks":[{"name":"ALPHA_TEST","binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplers":[{"name":"texture","type":29,"count":1,"binding":30,"defines":["USE_TEXTURE"]}]}],[{"passes":[{"program":"builtin-2d-sprite|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"properties":{"texture":{"value":"white","type":29},"alphaThreshold":{"type":13,"value":[0.5]}}}]}]]],0,0,[],[],[]],[[[2,"builtin-unlit",[{},"0",11,[{"defines":{"USE_DIFFUSE_TEXTURE":true}},"props",11,[{},"diffuseTexture",6,0]]]]],0,0,[0,0],[1,0],[0,2]],[[[0,"builtin-3d-trail",[{"hash":2929688198,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:add","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\n#if CC_DRAW_WIRE_FRAME\n in vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform FragConstants {\n vec4 tintColor;\n};\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture(mainTexture, uv);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., 1.);\n }\n #endif\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = add(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform vec4 tintColor;\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture2D(mainTexture, uv);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., 1.);\n }\n #endif\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = add(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]},{"name":"FragConstants","binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]},{"hash":4224037318,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:multiply","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\n#if CC_DRAW_WIRE_FRAME\n in vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform FragConstants {\n vec4 tintColor;\n};\nvec4 multiply () {\n vec4 col;\n vec4 texColor = texture(mainTexture, uv);\n col.rgb = tintColor.rgb * texColor.rgb * color.rgb * vec3(2.0);\n col.a = (1.0 - texColor.a) * (tintColor.a * color.a * 2.0);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., col.a);\n }\n #endif\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = multiply(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform vec4 tintColor;\nvec4 multiply () {\n vec4 col;\n vec4 texColor = texture2D(mainTexture, uv);\n col.rgb = tintColor.rgb * texColor.rgb * color.rgb * vec3(2.0);\n col.a = (1.0 - texColor.a) * (tintColor.a * color.a * 2.0);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., col.a);\n }\n #endif\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = multiply(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]},{"name":"FragConstants","binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]},{"hash":1704877102,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:addSmooth","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nvec4 addSmooth () {\n vec4 col = color * texture(mainTexture, uv);\n col.rgb *= col.a;\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = addSmooth(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nvec4 addSmooth () {\n vec4 col = color * texture2D(mainTexture, uv);\n col.rgb *= col.a;\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = addSmooth(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]},{"hash":2717357054,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:premultiplied","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nvec4 premultiplied () {\n vec4 col = color * texture(mainTexture, uv) * color.a;\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = premultiplied(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nvec4 premultiplied () {\n vec4 col = color * texture2D(mainTexture, uv) * color.a;\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = premultiplied(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]}],[{"name":"add","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":770,"blendDst":1,"blendSrcAlpha":770,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5],"inspector":{"type":"color"}}}}]},{"name":"alpha-blend","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5],"inspector":{"type":"color"}}}}]},{"name":"add-multiply","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:multiply","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5],"inspector":{"type":"color"}}}}]},{"name":"add-smooth","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:addSmooth","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]}}}]},{"name":"premultiply-blend","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:premultiplied","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]}}}]}]]],0,0,[],[],[]],[[[0,"builtin-2d-graphics",[{"hash":550349795,"record":null,"name":"builtin-2d-graphics|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\nin float a_dist;\nout float v_dist;\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matViewProj * cc_matWorld * pos;\n v_color = a_color;\n v_dist = a_dist;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\nin float v_dist;\nvoid main () {\n vec4 o = v_color;\n ALPHA_TEST(o);\n #if CC_SUPPORT_standard_derivatives\n float aa = fwidth(v_dist);\n #else\n float aa = 0.05;\n #endif\n float alpha = 1. - smoothstep(-aa, 0., abs(v_dist) - 1.0);\n o.rgb *= o.a;\n o *= alpha;\n gl_FragColor = o;\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\nattribute float a_dist;\nvarying float v_dist;\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matViewProj * cc_matWorld * pos;\n v_color = a_color;\n v_dist = a_dist;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\nvarying float v_dist;\nvoid main () {\n vec4 o = v_color;\n ALPHA_TEST(o);\n #if CC_SUPPORT_standard_derivatives\n float aa = fwidth(v_dist);\n #else\n float aa = 0.05;\n #endif\n float alpha = 1. - smoothstep(-aa, 0., abs(v_dist) - 1.0);\n o.rgb *= o.a;\n o *= alpha;\n gl_FragColor = o;\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_SUPPORT_standard_derivatives","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]}],"blocks":[{"name":"ALPHA_TEST","binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplers":[]}],[{"passes":[{"program":"builtin-2d-graphics|vs|fs","blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"rasterizerState":{"cullMode":0},"properties":{"alphaThreshold":{"type":13,"value":[0.5]}}}]}]]],0,0,[],[],[]],[[[1,"builtin-2d-gray-sprite",{}]],0,0,[0],[0],[3]],[[[2,"builtin-3d-trail",[{},"0",11,[{},"props",11,[{},"mainTexture",6,0]]]]],0,0,[0,0],[2,0],[0,4]],[[[0,"builtin-unlit",[{"hash":922858114,"record":null,"name":"builtin-unlit|unlit-vs|unlit-fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\n#if CC_USE_SKINNING\n in vec4 a_weights;\n in vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform SKINNING {\n vec2 jointsTextureSize;\n };\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform JOINT_MATRIX {\n mat4 jointMatrices[50];\n };\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nin vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nin vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nin vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nin vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nin vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nuniform MAIN_TILING {\n vec2 mainTiling;\n vec2 mainOffset;\n};\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n out mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n out lowp vec4 v_color;\n#endif\nvoid main () {\n StandardVertInput In;\n CCVertInput(In);\n #if CC_USE_ATTRIBUTE_COLOR\n v_color = In.color;\n #endif\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n v_uv0 = In.uv * mainTiling + mainOffset;\n #endif\n gl_Position = cc_matViewProj * cc_matWorld * In.position;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nuniform UNLIT {\n lowp vec4 diffuseColor;\n};\n#if USE_DIFFUSE_TEXTURE\n uniform sampler2D diffuseTexture;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n in lowp vec4 v_color;\n#endif\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n in mediump vec2 v_uv0;\n#endif\nvoid main () {\n vec4 color = diffuseColor;\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n vec4 diffuseTexture_tmp = texture(diffuseTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_diffuseTexture\n diffuseTexture_tmp.a *= texture(diffuseTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (diffuseTexture_tmp.rgb * diffuseTexture_tmp.rgb);\n color.a *= diffuseTexture_tmp.a;\n #else\n color *= diffuseTexture_tmp;\n #endif\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n color *= v_color;\n #endif\n ALPHA_TEST(color);\n gl_FragColor = CCFragOutput(color);\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matWorld;\nuniform mat4 cc_matViewProj;\n#if CC_USE_SKINNING\n attribute vec4 a_weights;\n attribute vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform vec2 jointsTextureSize;\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture2D(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture2D(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture2D(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture2D(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture2D(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform mat4 jointMatrices[50];\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nattribute vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nattribute vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nattribute vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nattribute vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nattribute vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nuniform vec2 mainTiling;\nuniform vec2 mainOffset;\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n varying mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n varying lowp vec4 v_color;\n#endif\nvoid main () {\n StandardVertInput In;\n CCVertInput(In);\n #if CC_USE_ATTRIBUTE_COLOR\n v_color = In.color;\n #endif\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n v_uv0 = In.uv * mainTiling + mainOffset;\n #endif\n gl_Position = cc_matViewProj * cc_matWorld * In.position;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nuniform lowp vec4 diffuseColor;\n#if USE_DIFFUSE_TEXTURE\n uniform sampler2D diffuseTexture;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n varying lowp vec4 v_color;\n#endif\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n varying mediump vec2 v_uv0;\n#endif\nvoid main () {\n vec4 color = diffuseColor;\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n vec4 diffuseTexture_tmp = texture2D(diffuseTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_diffuseTexture\n diffuseTexture_tmp.a *= texture2D(diffuseTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (diffuseTexture_tmp.rgb * diffuseTexture_tmp.rgb);\n color.a *= diffuseTexture_tmp.a;\n #else\n color *= diffuseTexture_tmp;\n #endif\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n color *= v_color;\n #endif\n ALPHA_TEST(color);\n gl_FragColor = CCFragOutput(color);\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_USE_SKINNING","type":"boolean","defines":[]},{"name":"CC_USE_JOINTS_TEXTRUE","type":"boolean","defines":["CC_USE_SKINNING"]},{"name":"CC_JOINTS_TEXTURE_FLOAT32","type":"boolean","defines":["CC_USE_SKINNING","CC_USE_JOINTS_TEXTRUE"]},{"name":"CC_USE_ATTRIBUTE_UV0","type":"boolean","defines":[]},{"name":"CC_USE_ATTRIBUTE_COLOR","type":"boolean","defines":[]},{"name":"CC_USE_ATTRIBUTE_NORMAL","type":"boolean","defines":[]},{"name":"CC_USE_ATTRIBUTE_TANGENT","type":"boolean","defines":[]},{"name":"USE_DIFFUSE_TEXTURE","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]},{"name":"CC_USE_ALPHA_ATLAS_diffuseTexture","type":"boolean","defines":["CC_USE_ATTRIBUTE_UV0","USE_DIFFUSE_TEXTURE"]},{"name":"INPUT_IS_GAMMA","type":"boolean","defines":["CC_USE_ATTRIBUTE_UV0","USE_DIFFUSE_TEXTURE"]}],"blocks":[{"name":"SKINNING","binding":0,"members":[{"name":"jointsTextureSize","type":14,"count":1}],"defines":["CC_USE_SKINNING","CC_USE_JOINTS_TEXTRUE"]},{"name":"JOINT_MATRIX","binding":1,"members":[{"name":"jointMatrices","type":26,"count":50}],"defines":["CC_USE_SKINNING"]},{"name":"MAIN_TILING","binding":2,"members":[{"name":"mainTiling","type":14,"count":1},{"name":"mainOffset","type":14,"count":1}],"defines":[]},{"name":"ALPHA_TEST","binding":3,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]},{"name":"UNLIT","binding":4,"members":[{"name":"diffuseColor","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"jointsTexture","type":29,"count":1,"binding":30,"defines":["CC_USE_SKINNING","CC_USE_JOINTS_TEXTRUE"]},{"name":"diffuseTexture","type":29,"count":1,"binding":31,"defines":["USE_DIFFUSE_TEXTURE"]}]}],[{"name":"opaque","passes":[{"program":"builtin-unlit|unlit-vs|unlit-fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":true,"depthWrite":true},"properties":{"diffuseTexture":{"value":"white","type":29},"diffuseColor":{"type":16,"value":[1,1,1,1],"editor":{"type":"color"}},"alphaThreshold":{"type":13,"value":[0.5]},"mainTiling":{"type":14,"value":[1,1]},"mainOffset":{"type":14,"value":[0,0]}}}]},{"name":"transparent","passes":[{"stage":"transparent","program":"builtin-unlit|unlit-vs|unlit-fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":true,"depthWrite":true},"properties":{"diffuseTexture":{"value":"white","type":29},"diffuseColor":{"type":16,"value":[1,1,1,1],"editor":{"type":"color"}},"alphaThreshold":{"type":13,"value":[0.5]},"mainTiling":{"type":14,"value":[1,1]},"mainOffset":{"type":14,"value":[0,0]}}}]}]]],0,0,[],[],[]],[[[1,"builtin-2d-base",{}]],0,0,[0],[0],[1]],[[[1,"builtin-2d-spine",{}]],0,0,[0],[0],[5]],[[[1,"builtin-2d-graphics",{"0":{"defines":{}}}]],0,0,[0],[0],[6]],[[[0,"builtin-clear-stencil",[{"hash":2075641479,"record":null,"name":"builtin-clear-stencil|vs|fs","glsl3":{"vert":"\nprecision highp float;\nin vec3 a_position;\nvoid main () {\n gl_Position = vec4(a_position, 1);\n}","frag":"\nprecision highp float;\nvoid main () {\n gl_FragColor = vec4(1.0);\n}"},"glsl1":{"vert":"\nprecision highp float;\nattribute vec3 a_position;\nvoid main () {\n gl_Position = vec4(a_position, 1);\n}","frag":"\nprecision highp float;\nvoid main () {\n gl_FragColor = vec4(1.0);\n}"},"builtins":{"globals":{"blocks":[],"samplers":[]},"locals":{"blocks":[],"samplers":[]}},"defines":[],"blocks":[],"samplers":[]}],[{"passes":[{"program":"builtin-clear-stencil|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0}}]}]]],0,0,[],[],[]],[[[1,"builtin-clear-stencil",{}]],0,0,[0],[0],[7]],[[[1,"builtin-2d-label",{"0":{"defines":{"USE_TEXTURE":true}}}]],0,0,[0],[0],[8]],[[[1,"builtin-2d-sprite",{"0":{"defines":{"USE_TEXTURE":true}}}]],0,0,[0],[0],[1]],[[[0,"builtin-2d-label",[{"hash":1105459032,"record":null,"name":"builtin-2d-label|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n#if USE_SDF\nuniform Outline {\n vec4 outlineColor;\n float outlineSize;\n};\n#endif\nvoid main () {\n#if USE_SDF\n #if USE_TEXTURE_ALPHAONLY\n float dist = texture(texture, v_uv0).a;\n #else\n float dist = texture(texture, v_uv0).r;\n #endif\n #if USE_SDF_EXTEND\n const float EDGE_VALUE = 0.45;\n #else\n const float EDGE_VALUE = 0.5;\n #endif\n #if CC_SUPPORT_standard_derivatives\n float smoothing = fwidth(dist);\n #else\n float smoothing = 0.05;\n #endif\n float outEdge = EDGE_VALUE - outlineSize;\n float bg = smoothstep(outEdge - smoothing, outEdge, dist);\n float fg = smoothstep(EDGE_VALUE - smoothing, EDGE_VALUE, dist);\n vec4 fgColor = outlineColor * (1.0 - fg) + v_color * fg;\n gl_FragColor = vec4(fgColor.rgb, fgColor.a * bg);\n#else\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n #if USE_TEXTURE_ALPHAONLY\n o.a *= texture(texture, v_uv0).a;\n #else\n o *= texture(texture, v_uv0);\n #endif\n #if CC_USE_ALPHA_ATLAS_TEXTURE\n o.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n#endif\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n#if USE_SDF\nuniform vec4 outlineColor;\nuniform float outlineSize;\n#endif\nvoid main () {\n#if USE_SDF\n #if USE_TEXTURE_ALPHAONLY\n float dist = texture2D(texture, v_uv0).a;\n #else\n float dist = texture2D(texture, v_uv0).r;\n #endif\n #if USE_SDF_EXTEND\n const float EDGE_VALUE = 0.45;\n #else\n const float EDGE_VALUE = 0.5;\n #endif\n #if CC_SUPPORT_standard_derivatives\n float smoothing = fwidth(dist);\n #else\n float smoothing = 0.05;\n #endif\n float outEdge = EDGE_VALUE - outlineSize;\n float bg = smoothstep(outEdge - smoothing, outEdge, dist);\n float fg = smoothstep(EDGE_VALUE - smoothing, EDGE_VALUE, dist);\n vec4 fgColor = outlineColor * (1.0 - fg) + v_color * fg;\n gl_FragColor = vec4(fgColor.rgb, fgColor.a * bg);\n#else\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n #if USE_TEXTURE_ALPHAONLY\n o.a *= texture2D(texture, v_uv0).a;\n #else\n o *= texture2D(texture, v_uv0);\n #endif\n #if CC_USE_ALPHA_ATLAS_TEXTURE\n o.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n#endif\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"USE_TEXTURE","type":"boolean","defines":[]},{"name":"CC_USE_MODEL","type":"boolean","defines":[]},{"name":"CC_SUPPORT_standard_derivatives","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]},{"name":"USE_SDF","type":"boolean","defines":[]},{"name":"USE_TEXTURE_ALPHAONLY","type":"boolean","defines":["USE_SDF"]},{"name":"USE_SDF_EXTEND","type":"boolean","defines":["USE_SDF"]},{"name":"CC_USE_ALPHA_ATLAS_TEXTURE","type":"boolean","defines":["USE_TEXTURE"]}],"blocks":[{"name":"ALPHA_TEST","binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]},{"name":"Outline","binding":1,"members":[{"name":"outlineColor","type":16,"count":1},{"name":"outlineSize","type":13,"count":1}],"defines":["USE_SDF"]}],"samplers":[{"name":"texture","type":29,"count":1,"binding":30,"defines":["USE_TEXTURE"]}]}],[{"passes":[{"program":"builtin-2d-label|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"properties":{"texture":{"value":"white","type":29},"alphaThreshold":{"type":13,"value":[0.5]},"outlineSize":{"type":13,"value":[0]},"outlineColor":{"type":16,"value":[1,1,1,1]}}}]}]]],0,0,[],[],[]]]] \ No newline at end of file diff --git a/assets/internal/index.803f8.js b/assets/internal/index.803f8.js new file mode 100644 index 0000000..3c6e1e1 --- /dev/null +++ b/assets/internal/index.803f8.js @@ -0,0 +1 @@ +(function r(e,n,t){function i(u,f){if(!n[u]){if(!e[u]){var _=u.split("/");if(_=_[_.length-1],!e[_]){var p="function"==typeof __require&&__require;if(!f&&p)return p(_,!0);if(o)return o(_,!0);throw new Error("Cannot find module '"+u+"'")}u=_}var a=n[u]={exports:{}};e[u][0].call(a.exports,function(r){return i(e[u][1][r]||r)},a,a.exports,r,e,n,t)}return n[u].exports}for(var o="function"==typeof __require&&__require,u=0;uqgkU|y)Mukhd`3wvU44$rjF6*2UngE$#5+ncs literal 0 HcmV?d00001 diff --git a/assets/main/0967b326a.381d5.json b/assets/main/0967b326a.381d5.json new file mode 100644 index 0000000..3355e3e --- /dev/null +++ b/assets/main/0967b326a.381d5.json @@ -0,0 +1 @@ +[1,["02delMVqdBD70a/HSD99FK","28dPjdQWxEQIG3VVl1Qm6T","6dkeWRTOBGXICfYQ7JUBnG","14TDKXr2NJ6LjvHPops74o","2afAA24LNP4YmYiaVLiivs","0ek66qC1NOQLjgYmi04HvX","30aC+Hnw1PF4pEcoY3kUYb","c0BAyVxX9JzZy8EjFrc9DU","f1h0LXVtJOta5JLZ1xCzfI"],["_effectAsset","diffuseTexture","mainTexture"],["cc.Texture2D",["cc.EffectAsset",["_name","shaders","techniques"],0],["cc.Material",["_name","_techniqueData"],2,11],["cc.Material",["_name","_techniqueData"],1]],[[1,0,1,2,4],[3,0,1,3],[2,0,1,2]],[[["0,9729,9729,33071,33071,0,0,1",-1],[0],0,[],[],[]],[[[0,"builtin-2d-spine",[{"hash":3550530479,"record":null,"name":"builtin-2d-spine|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\n#if USE_TINT\n in vec4 a_color0;\n#endif\nin vec2 a_uv0;\nout vec2 v_uv0;\nout vec4 v_light;\n#if USE_TINT\n out vec4 v_dark;\n#endif\nvoid main () {\n mat4 mvp;\n #if CC_USE_MODEL\n mvp = cc_matViewProj * cc_matWorld;\n #else\n mvp = cc_matViewProj;\n #endif\n v_uv0 = a_uv0;\n v_light = a_color;\n #if USE_TINT\n v_dark = a_color0;\n #endif\n gl_Position = mvp * vec4(a_position, 1);\n}","frag":"\nprecision highp float;\nuniform sampler2D texture;\nin vec2 v_uv0;\nin vec4 v_light;\n#if USE_TINT\n in vec4 v_dark;\n#endif\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvoid main () {\n vec4 texColor = vec4(1.0);\n vec4 texture_tmp = texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n texColor.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n texColor.a *= texture_tmp.a;\n #else\n texColor *= texture_tmp;\n #endif\n vec4 finalColor;\n #if USE_TINT\n finalColor.a = v_light.a * texColor.a;\n finalColor.rgb = ((texColor.a - 1.0) * v_dark.a + 1.0 - texColor.rgb) * v_dark.rgb + texColor.rgb * v_light.rgb;\n #else\n finalColor = texColor * v_light;\n #endif\n ALPHA_TEST(finalColor);\n gl_FragColor = finalColor;\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\n#if USE_TINT\n attribute vec4 a_color0;\n#endif\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\nvarying vec4 v_light;\n#if USE_TINT\n varying vec4 v_dark;\n#endif\nvoid main () {\n mat4 mvp;\n #if CC_USE_MODEL\n mvp = cc_matViewProj * cc_matWorld;\n #else\n mvp = cc_matViewProj;\n #endif\n v_uv0 = a_uv0;\n v_light = a_color;\n #if USE_TINT\n v_dark = a_color0;\n #endif\n gl_Position = mvp * vec4(a_position, 1);\n}","frag":"\nprecision highp float;\nuniform sampler2D texture;\nvarying vec2 v_uv0;\nvarying vec4 v_light;\n#if USE_TINT\n varying vec4 v_dark;\n#endif\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvoid main () {\n vec4 texColor = vec4(1.0);\n vec4 texture_tmp = texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n texColor.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n texColor.a *= texture_tmp.a;\n #else\n texColor *= texture_tmp;\n #endif\n vec4 finalColor;\n #if USE_TINT\n finalColor.a = v_light.a * texColor.a;\n finalColor.rgb = ((texColor.a - 1.0) * v_dark.a + 1.0 - texColor.rgb) * v_dark.rgb + texColor.rgb * v_light.rgb;\n #else\n finalColor = texColor * v_light;\n #endif\n ALPHA_TEST(finalColor);\n gl_FragColor = finalColor;\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"USE_TINT","type":"boolean","defines":[]},{"name":"CC_USE_MODEL","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]},{"name":"CC_USE_ALPHA_ATLAS_texture","type":"boolean","defines":[]},{"name":"INPUT_IS_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"ALPHA_TEST","binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplers":[{"name":"texture","type":29,"count":1,"binding":30,"defines":[]}]}],[{"passes":[{"program":"builtin-2d-spine|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"properties":{"texture":{"value":"white","type":29},"alphaThreshold":{"type":13,"value":[0.5]}}}]}]]],0,0,[],[],[]],[[[0,"builtin-2d-gray-sprite",[{"hash":4278481454,"record":null,"name":"builtin-2d-gray-sprite|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nin vec3 a_position;\nin mediump vec2 a_uv0;\nout mediump vec2 v_uv0;\nin vec4 a_color;\nout vec4 v_color;\nvoid main () {\n gl_Position = cc_matViewProj * vec4(a_position, 1);\n v_uv0 = a_uv0;\n v_color = a_color;\n}","frag":"\nprecision highp float;\nuniform sampler2D texture;\nin mediump vec2 v_uv0;\nin vec4 v_color;\nvoid main () {\n vec4 color = v_color;\n vec4 texture_tmp = texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n color.a *= texture_tmp.a;\n #else\n color *= texture_tmp;\n #endif\n float gray = 0.2126*color.r + 0.7152*color.g + 0.0722*color.b;\n gl_FragColor = vec4(gray, gray, gray, color.a);\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nattribute vec3 a_position;\nattribute mediump vec2 a_uv0;\nvarying mediump vec2 v_uv0;\nattribute vec4 a_color;\nvarying vec4 v_color;\nvoid main () {\n gl_Position = cc_matViewProj * vec4(a_position, 1);\n v_uv0 = a_uv0;\n v_color = a_color;\n}","frag":"\nprecision highp float;\nuniform sampler2D texture;\nvarying mediump vec2 v_uv0;\nvarying vec4 v_color;\nvoid main () {\n vec4 color = v_color;\n vec4 texture_tmp = texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n color.a *= texture_tmp.a;\n #else\n color *= texture_tmp;\n #endif\n float gray = 0.2126*color.r + 0.7152*color.g + 0.0722*color.b;\n gl_FragColor = vec4(gray, gray, gray, color.a);\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[],"samplers":[]}},"defines":[{"name":"CC_USE_ALPHA_ATLAS_texture","type":"boolean","defines":[]},{"name":"INPUT_IS_GAMMA","type":"boolean","defines":[]}],"blocks":[],"samplers":[{"name":"texture","type":29,"count":1,"binding":30,"defines":[]}]}],[{"passes":[{"program":"builtin-2d-gray-sprite|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"properties":{"texture":{"value":"white","type":29}}}]}]]],0,0,[],[],[]],[[[0,"builtin-2d-sprite",[{"hash":3278106612,"record":null,"name":"builtin-2d-sprite|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n vec4 texture_tmp = texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n o.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n o.a *= texture_tmp.a;\n #else\n o *= texture_tmp;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n vec4 texture_tmp = texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n o.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n o.a *= texture_tmp.a;\n #else\n o *= texture_tmp;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"USE_TEXTURE","type":"boolean","defines":[]},{"name":"CC_USE_MODEL","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]},{"name":"CC_USE_ALPHA_ATLAS_texture","type":"boolean","defines":["USE_TEXTURE"]},{"name":"INPUT_IS_GAMMA","type":"boolean","defines":["USE_TEXTURE"]}],"blocks":[{"name":"ALPHA_TEST","binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplers":[{"name":"texture","type":29,"count":1,"binding":30,"defines":["USE_TEXTURE"]}]}],[{"passes":[{"program":"builtin-2d-sprite|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"properties":{"texture":{"value":"white","type":29},"alphaThreshold":{"type":13,"value":[0.5]}}}]}]]],0,0,[],[],[]],[[[2,"builtin-unlit",[{},"0",11,[{"defines":{"USE_DIFFUSE_TEXTURE":true}},"props",11,[{},"diffuseTexture",6,0]]]]],0,0,[0,0],[1,0],[0,2]],[[[0,"builtin-3d-trail",[{"hash":2929688198,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:add","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\n#if CC_DRAW_WIRE_FRAME\n in vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform FragConstants {\n vec4 tintColor;\n};\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture(mainTexture, uv);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., 1.);\n }\n #endif\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = add(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform vec4 tintColor;\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture2D(mainTexture, uv);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., 1.);\n }\n #endif\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = add(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]},{"name":"FragConstants","binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]},{"hash":4224037318,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:multiply","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\n#if CC_DRAW_WIRE_FRAME\n in vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform FragConstants {\n vec4 tintColor;\n};\nvec4 multiply () {\n vec4 col;\n vec4 texColor = texture(mainTexture, uv);\n col.rgb = tintColor.rgb * texColor.rgb * color.rgb * vec3(2.0);\n col.a = (1.0 - texColor.a) * (tintColor.a * color.a * 2.0);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., col.a);\n }\n #endif\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = multiply(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform vec4 tintColor;\nvec4 multiply () {\n vec4 col;\n vec4 texColor = texture2D(mainTexture, uv);\n col.rgb = tintColor.rgb * texColor.rgb * color.rgb * vec3(2.0);\n col.a = (1.0 - texColor.a) * (tintColor.a * color.a * 2.0);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., col.a);\n }\n #endif\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = multiply(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]},{"name":"FragConstants","binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]},{"hash":1704877102,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:addSmooth","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nvec4 addSmooth () {\n vec4 col = color * texture(mainTexture, uv);\n col.rgb *= col.a;\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = addSmooth(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nvec4 addSmooth () {\n vec4 col = color * texture2D(mainTexture, uv);\n col.rgb *= col.a;\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = addSmooth(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]},{"hash":2717357054,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:premultiplied","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nvec4 premultiplied () {\n vec4 col = color * texture(mainTexture, uv) * color.a;\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = premultiplied(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nvec4 premultiplied () {\n vec4 col = color * texture2D(mainTexture, uv) * color.a;\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = premultiplied(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]}],[{"name":"add","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":770,"blendDst":1,"blendSrcAlpha":770,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5],"inspector":{"type":"color"}}}}]},{"name":"alpha-blend","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5],"inspector":{"type":"color"}}}}]},{"name":"add-multiply","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:multiply","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5],"inspector":{"type":"color"}}}}]},{"name":"add-smooth","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:addSmooth","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]}}}]},{"name":"premultiply-blend","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:premultiplied","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]}}}]}]]],0,0,[],[],[]],[[[0,"builtin-2d-graphics",[{"hash":550349795,"record":null,"name":"builtin-2d-graphics|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\nin float a_dist;\nout float v_dist;\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matViewProj * cc_matWorld * pos;\n v_color = a_color;\n v_dist = a_dist;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\nin float v_dist;\nvoid main () {\n vec4 o = v_color;\n ALPHA_TEST(o);\n #if CC_SUPPORT_standard_derivatives\n float aa = fwidth(v_dist);\n #else\n float aa = 0.05;\n #endif\n float alpha = 1. - smoothstep(-aa, 0., abs(v_dist) - 1.0);\n o.rgb *= o.a;\n o *= alpha;\n gl_FragColor = o;\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\nattribute float a_dist;\nvarying float v_dist;\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matViewProj * cc_matWorld * pos;\n v_color = a_color;\n v_dist = a_dist;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\nvarying float v_dist;\nvoid main () {\n vec4 o = v_color;\n ALPHA_TEST(o);\n #if CC_SUPPORT_standard_derivatives\n float aa = fwidth(v_dist);\n #else\n float aa = 0.05;\n #endif\n float alpha = 1. - smoothstep(-aa, 0., abs(v_dist) - 1.0);\n o.rgb *= o.a;\n o *= alpha;\n gl_FragColor = o;\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_SUPPORT_standard_derivatives","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]}],"blocks":[{"name":"ALPHA_TEST","binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplers":[]}],[{"passes":[{"program":"builtin-2d-graphics|vs|fs","blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"rasterizerState":{"cullMode":0},"properties":{"alphaThreshold":{"type":13,"value":[0.5]}}}]}]]],0,0,[],[],[]],[[[1,"builtin-2d-gray-sprite",{}]],0,0,[0],[0],[3]],[[[2,"builtin-3d-trail",[{},"0",11,[{},"props",11,[{},"mainTexture",6,0]]]]],0,0,[0,0],[2,0],[0,4]],[[[0,"builtin-unlit",[{"hash":922858114,"record":null,"name":"builtin-unlit|unlit-vs|unlit-fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\n#if CC_USE_SKINNING\n in vec4 a_weights;\n in vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform SKINNING {\n vec2 jointsTextureSize;\n };\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform JOINT_MATRIX {\n mat4 jointMatrices[50];\n };\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nin vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nin vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nin vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nin vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nin vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nuniform MAIN_TILING {\n vec2 mainTiling;\n vec2 mainOffset;\n};\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n out mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n out lowp vec4 v_color;\n#endif\nvoid main () {\n StandardVertInput In;\n CCVertInput(In);\n #if CC_USE_ATTRIBUTE_COLOR\n v_color = In.color;\n #endif\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n v_uv0 = In.uv * mainTiling + mainOffset;\n #endif\n gl_Position = cc_matViewProj * cc_matWorld * In.position;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nuniform UNLIT {\n lowp vec4 diffuseColor;\n};\n#if USE_DIFFUSE_TEXTURE\n uniform sampler2D diffuseTexture;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n in lowp vec4 v_color;\n#endif\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n in mediump vec2 v_uv0;\n#endif\nvoid main () {\n vec4 color = diffuseColor;\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n vec4 diffuseTexture_tmp = texture(diffuseTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_diffuseTexture\n diffuseTexture_tmp.a *= texture(diffuseTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (diffuseTexture_tmp.rgb * diffuseTexture_tmp.rgb);\n color.a *= diffuseTexture_tmp.a;\n #else\n color *= diffuseTexture_tmp;\n #endif\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n color *= v_color;\n #endif\n ALPHA_TEST(color);\n gl_FragColor = CCFragOutput(color);\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matWorld;\nuniform mat4 cc_matViewProj;\n#if CC_USE_SKINNING\n attribute vec4 a_weights;\n attribute vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform vec2 jointsTextureSize;\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture2D(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture2D(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture2D(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture2D(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture2D(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform mat4 jointMatrices[50];\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nattribute vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nattribute vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nattribute vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nattribute vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nattribute vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nuniform vec2 mainTiling;\nuniform vec2 mainOffset;\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n varying mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n varying lowp vec4 v_color;\n#endif\nvoid main () {\n StandardVertInput In;\n CCVertInput(In);\n #if CC_USE_ATTRIBUTE_COLOR\n v_color = In.color;\n #endif\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n v_uv0 = In.uv * mainTiling + mainOffset;\n #endif\n gl_Position = cc_matViewProj * cc_matWorld * In.position;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nuniform lowp vec4 diffuseColor;\n#if USE_DIFFUSE_TEXTURE\n uniform sampler2D diffuseTexture;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n varying lowp vec4 v_color;\n#endif\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n varying mediump vec2 v_uv0;\n#endif\nvoid main () {\n vec4 color = diffuseColor;\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n vec4 diffuseTexture_tmp = texture2D(diffuseTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_diffuseTexture\n diffuseTexture_tmp.a *= texture2D(diffuseTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (diffuseTexture_tmp.rgb * diffuseTexture_tmp.rgb);\n color.a *= diffuseTexture_tmp.a;\n #else\n color *= diffuseTexture_tmp;\n #endif\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n color *= v_color;\n #endif\n ALPHA_TEST(color);\n gl_FragColor = CCFragOutput(color);\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_USE_SKINNING","type":"boolean","defines":[]},{"name":"CC_USE_JOINTS_TEXTRUE","type":"boolean","defines":["CC_USE_SKINNING"]},{"name":"CC_JOINTS_TEXTURE_FLOAT32","type":"boolean","defines":["CC_USE_SKINNING","CC_USE_JOINTS_TEXTRUE"]},{"name":"CC_USE_ATTRIBUTE_UV0","type":"boolean","defines":[]},{"name":"CC_USE_ATTRIBUTE_COLOR","type":"boolean","defines":[]},{"name":"CC_USE_ATTRIBUTE_NORMAL","type":"boolean","defines":[]},{"name":"CC_USE_ATTRIBUTE_TANGENT","type":"boolean","defines":[]},{"name":"USE_DIFFUSE_TEXTURE","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]},{"name":"CC_USE_ALPHA_ATLAS_diffuseTexture","type":"boolean","defines":["CC_USE_ATTRIBUTE_UV0","USE_DIFFUSE_TEXTURE"]},{"name":"INPUT_IS_GAMMA","type":"boolean","defines":["CC_USE_ATTRIBUTE_UV0","USE_DIFFUSE_TEXTURE"]}],"blocks":[{"name":"SKINNING","binding":0,"members":[{"name":"jointsTextureSize","type":14,"count":1}],"defines":["CC_USE_SKINNING","CC_USE_JOINTS_TEXTRUE"]},{"name":"JOINT_MATRIX","binding":1,"members":[{"name":"jointMatrices","type":26,"count":50}],"defines":["CC_USE_SKINNING"]},{"name":"MAIN_TILING","binding":2,"members":[{"name":"mainTiling","type":14,"count":1},{"name":"mainOffset","type":14,"count":1}],"defines":[]},{"name":"ALPHA_TEST","binding":3,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]},{"name":"UNLIT","binding":4,"members":[{"name":"diffuseColor","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"jointsTexture","type":29,"count":1,"binding":30,"defines":["CC_USE_SKINNING","CC_USE_JOINTS_TEXTRUE"]},{"name":"diffuseTexture","type":29,"count":1,"binding":31,"defines":["USE_DIFFUSE_TEXTURE"]}]}],[{"name":"opaque","passes":[{"program":"builtin-unlit|unlit-vs|unlit-fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":true,"depthWrite":true},"properties":{"diffuseTexture":{"value":"white","type":29},"diffuseColor":{"type":16,"value":[1,1,1,1],"editor":{"type":"color"}},"alphaThreshold":{"type":13,"value":[0.5]},"mainTiling":{"type":14,"value":[1,1]},"mainOffset":{"type":14,"value":[0,0]}}}]},{"name":"transparent","passes":[{"stage":"transparent","program":"builtin-unlit|unlit-vs|unlit-fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":true,"depthWrite":true},"properties":{"diffuseTexture":{"value":"white","type":29},"diffuseColor":{"type":16,"value":[1,1,1,1],"editor":{"type":"color"}},"alphaThreshold":{"type":13,"value":[0.5]},"mainTiling":{"type":14,"value":[1,1]},"mainOffset":{"type":14,"value":[0,0]}}}]}]]],0,0,[],[],[]],[[[1,"builtin-2d-base",{}]],0,0,[0],[0],[1]],[[[1,"builtin-2d-spine",{}]],0,0,[0],[0],[5]],[[[1,"builtin-2d-graphics",{"0":{"defines":{}}}]],0,0,[0],[0],[6]],[[[0,"builtin-clear-stencil",[{"hash":2075641479,"record":null,"name":"builtin-clear-stencil|vs|fs","glsl3":{"vert":"\nprecision highp float;\nin vec3 a_position;\nvoid main () {\n gl_Position = vec4(a_position, 1);\n}","frag":"\nprecision highp float;\nvoid main () {\n gl_FragColor = vec4(1.0);\n}"},"glsl1":{"vert":"\nprecision highp float;\nattribute vec3 a_position;\nvoid main () {\n gl_Position = vec4(a_position, 1);\n}","frag":"\nprecision highp float;\nvoid main () {\n gl_FragColor = vec4(1.0);\n}"},"builtins":{"globals":{"blocks":[],"samplers":[]},"locals":{"blocks":[],"samplers":[]}},"defines":[],"blocks":[],"samplers":[]}],[{"passes":[{"program":"builtin-clear-stencil|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0}}]}]]],0,0,[],[],[]],[[[1,"builtin-clear-stencil",{}]],0,0,[0],[0],[7]],[[[1,"builtin-2d-label",{"0":{"defines":{"USE_TEXTURE":true}}}]],0,0,[0],[0],[8]],[[[1,"builtin-2d-sprite",{"0":{"defines":{"USE_TEXTURE":true}}}]],0,0,[0],[0],[1]],[[[0,"builtin-2d-label",[{"hash":1105459032,"record":null,"name":"builtin-2d-label|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n#if USE_SDF\nuniform Outline {\n vec4 outlineColor;\n float outlineSize;\n};\n#endif\nvoid main () {\n#if USE_SDF\n #if USE_TEXTURE_ALPHAONLY\n float dist = texture(texture, v_uv0).a;\n #else\n float dist = texture(texture, v_uv0).r;\n #endif\n #if USE_SDF_EXTEND\n const float EDGE_VALUE = 0.45;\n #else\n const float EDGE_VALUE = 0.5;\n #endif\n #if CC_SUPPORT_standard_derivatives\n float smoothing = fwidth(dist);\n #else\n float smoothing = 0.05;\n #endif\n float outEdge = EDGE_VALUE - outlineSize;\n float bg = smoothstep(outEdge - smoothing, outEdge, dist);\n float fg = smoothstep(EDGE_VALUE - smoothing, EDGE_VALUE, dist);\n vec4 fgColor = outlineColor * (1.0 - fg) + v_color * fg;\n gl_FragColor = vec4(fgColor.rgb, fgColor.a * bg);\n#else\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n #if USE_TEXTURE_ALPHAONLY\n o.a *= texture(texture, v_uv0).a;\n #else\n o *= texture(texture, v_uv0);\n #endif\n #if CC_USE_ALPHA_ATLAS_TEXTURE\n o.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n#endif\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n#if USE_SDF\nuniform vec4 outlineColor;\nuniform float outlineSize;\n#endif\nvoid main () {\n#if USE_SDF\n #if USE_TEXTURE_ALPHAONLY\n float dist = texture2D(texture, v_uv0).a;\n #else\n float dist = texture2D(texture, v_uv0).r;\n #endif\n #if USE_SDF_EXTEND\n const float EDGE_VALUE = 0.45;\n #else\n const float EDGE_VALUE = 0.5;\n #endif\n #if CC_SUPPORT_standard_derivatives\n float smoothing = fwidth(dist);\n #else\n float smoothing = 0.05;\n #endif\n float outEdge = EDGE_VALUE - outlineSize;\n float bg = smoothstep(outEdge - smoothing, outEdge, dist);\n float fg = smoothstep(EDGE_VALUE - smoothing, EDGE_VALUE, dist);\n vec4 fgColor = outlineColor * (1.0 - fg) + v_color * fg;\n gl_FragColor = vec4(fgColor.rgb, fgColor.a * bg);\n#else\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n #if USE_TEXTURE_ALPHAONLY\n o.a *= texture2D(texture, v_uv0).a;\n #else\n o *= texture2D(texture, v_uv0);\n #endif\n #if CC_USE_ALPHA_ATLAS_TEXTURE\n o.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n#endif\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"USE_TEXTURE","type":"boolean","defines":[]},{"name":"CC_USE_MODEL","type":"boolean","defines":[]},{"name":"CC_SUPPORT_standard_derivatives","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]},{"name":"USE_SDF","type":"boolean","defines":[]},{"name":"USE_TEXTURE_ALPHAONLY","type":"boolean","defines":["USE_SDF"]},{"name":"USE_SDF_EXTEND","type":"boolean","defines":["USE_SDF"]},{"name":"CC_USE_ALPHA_ATLAS_TEXTURE","type":"boolean","defines":["USE_TEXTURE"]}],"blocks":[{"name":"ALPHA_TEST","binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]},{"name":"Outline","binding":1,"members":[{"name":"outlineColor","type":16,"count":1},{"name":"outlineSize","type":13,"count":1}],"defines":["USE_SDF"]}],"samplers":[{"name":"texture","type":29,"count":1,"binding":30,"defines":["USE_TEXTURE"]}]}],[{"passes":[{"program":"builtin-2d-label|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"properties":{"texture":{"value":"white","type":29},"alphaThreshold":{"type":13,"value":[0.5]},"outlineSize":{"type":13,"value":[0]},"outlineColor":{"type":16,"value":[1,1,1,1]}}}]}]]],0,0,[],[],[]]]] \ No newline at end of file diff --git a/assets/main/config.fbdd2.json b/assets/main/config.fbdd2.json new file mode 100644 index 0000000..fd0e6cb --- /dev/null +++ b/assets/main/config.fbdd2.json @@ -0,0 +1 @@ +{"paths":{},"types":[],"uuids":["a7MqhrNAxAEbpM8iH4ZvYP","c4pUYMLKZHl5/4XGm7ldCc","b9zzAen2RH9pMjqfkSdAh/","012YVKd7BIFL9ozFOZ0RP+","0bHQ83hLVH0JixxuPIV8GD","d8HsitJHxOYqo801xBk8ev","70nuiBOvlJbpM+yn7PUkG6","6fRlik5pRLoI++4xRW8pXj","d6u8uOZSBGeIKW8cro1uDQ","8eJK3/OJJBR7rkKARuqQX4","c6lhye6jhEB7sXjUhdFRVP","201lpNTBtFKZwHMu3B+dzV","b3gzaEiyNNravTttRhiwzV","bfW2abahJHyaPrAl5KUx/a","6424ZjC2NMl7tUpgPJATlR","ca6uE2XxFPuq12TAwogtJq","f5v+I4P91NDpqWCTpqMepD","52yyr6ZwpBnIcnzg2aWVp2","80wiaGGvRPiaVRjAJpLOBg","a02K+gPhpMWb7YGJ6feB5m","f2GUfAb+lIxaUJ+Mbol6By","10DrZ3z5JHJaeRbHAPbjcK","5731jvr1xN1KAg1r3lfUNK","b4P/PCArtIdIH38t6mlw8Y","0bd3t3i75AW5z3HOHk8LfV","71VhFCTINJM6/Ky3oX9nBT","4c5li0RzlCgqDPP89ZOKsp","6cu5EdkJVFFrxW1WJCXykO","14bd3a795","139b3a6ab","1bb33d059","131f7d7ff","4c4imBrB9HFqjY/Db+oCQx","e3CAprnHZJ5ashYSfnuaQp","e2EIvJRrFFxpAtw4ZeeK6U","7f/VuxbsJMp79mMpTOTovz","e1uyRHtdBGF65Rm4NubYpE","e0psoVPI9KKb8PQHs5+Y4Z","7dbZ+mXp9F65gIoAkOITzB","68QlKyc5JFZa5DPXnBZXj0","31Fkzt1PtK4510XU0ZAjPN","14QKMFGqdNmbIzJJu82/3i","66XcRW2DtHd6WqnprX3+Ae","b6FBTf3ClLzalFeHLwoZqi","5fDPQuwTFAgrhR6xv9utGo","3eF4dNxJtNiYN5fhl82QcU","ac0rBcIK1Kuan5lkn1/Sbo","6eQzQKOx5Eeb0ccPQzu149","3eVK9hm29GXpZ3ZONfPN0W","a679TzWWxFNrSSvkNojgqm","2cIWq3i91M8LvAX4+8Y4tB","79hsppiDROObUqF3WWUG7N","0aLjKFvcFA4KRRl0UYnqMo","16vsP4lmlDXKZ2j7kPB2AK","40GjA2Qt5AKbUTkwDF//U/","c5Mvo/L2lIOoY3rRPvLnS0","81txH3El1G3bMWo5uawdNk","cdf6YHx3JNk4cTtYwiSeP2","ecpdLyjvZBwrvm+cedCcQy","41D7kWhyFGY7q4NDlzkazn","9bvaMerUlDyary99mJa6xp","79E4FkTB9DfJzbd8aGgSGw","7dwduMCSdH4JoapH3GONr7","5dGXQEaLRLe6bQQ+e03Ewc","5e4pAVpqxGz5JlWkSiiSB1","cdFgZaAmVD37zxiN+LN/lt","d58GGY5zlC3aUhSmGJyH4r","74dJEQ+alKZ6gga84z/bN9","dcKZwOBpxOobWTn5YtUk0r","54CBxyvHhC/azzQnv/XSyz","3ckhiCXbdMGLT35v45OUpC","05sASQozdBrKcajGL9GvD4","73KwzhCLtCNr1wJ6UNhD7i","acdZXuHL1CQ5U/YVb9aCMg","a30i7c9tJNoYdUwWUYrEYA","d0ElE5CT5D0q58GV/flNcW","2b8tkMa/xHTpSAP4+H2My3","e5f/oUnUhHw5ukBbLom19w","a1I3II6LdPPLMnx5LLDAPm","5aT7m7YqJKsKWiy03aNgkR","61EvprBzlExKIfqYwYeDoc","edSnkncf1Hu5BUOWbiLRe1","84Kgc2kslA6pzoq0e9YRaf","f3f3nCKrJGSrfaDyPt6PU0","01BuXvESdNPY9jAnXV0lKE","f3sC0GGDVElZGWTY80RSfl","e4HWZygINGrq2wSluFukGA","17Rr16zK5PTqlpwQYE00WH","55iTNANX9EkYGRMcLd/HIt","10XtcBiXpKeLjU1Xdbaez7","3fLhrQERtMIIQpJFPkxc1H","3aZ+ZVEcFCEJr7gN3g5Ab/","c9Stbg8pJGt6fhK2nLpT3E","fbJSbUImNBuaoyELqfWZv+","735tW9//dNjaq88BKOqsHW","25xOvLWaBBkZDw1TqmqCBy","bbqBwcQKJHzYoHE7ql1TXR","1eh/czD1hDRJp/Er6MIXNm","d312OM455H46grU5VxOvhz","56yMZHqW1Ab4ouazMPBn31","0d4nOvUC5Ko5Z0+9JksCVl","5aF2/6codH9J0+p/vAjocX","f3dDSUuldChYLh5DvyqQ0V","c2gNc0kZJNmJTq5pDuflLK","33vjMVKwxML5CchhtvQXok","f7RKqDmV1F04YdnCh7PncC","58ZorgYWpB+Y1rpukU2koO","be+LlrYz1JpK5N2pycPvCE","e9XB/T3V9DGautO2xsjynv","4falrO8C1Mvr8bQE/hGwTv","b1DG1UoaFLMYSvTPGkCYbs","a9sscsW+tBnYCQioYDwnxr","361Cw5eTZLBbS6BOabyKmJ","4alW0zqOhD5KVqTJXGmFsK","3fC8YJcwFLf49G9LDTn+TM","afG1afbRNJZq+YY+reQHFQ","c3i2Pcfy9IGpfDl2tDAmb/","35WeTCdhNAFYKOeIz/b7TG","2b463Nt6hK+7CzUlyHcKS4","8fNETUWfRCQ4YfQqdX6j1+","87A4/f3C5PT471jaDcBmGm","14Wx3CPMRIFabgMBYpg1QO","dcK5W6Kw1FKoTgBYNH6Hnk","95DjhVuxdALJWR9iA9Tue/","50TAjcZbRE47tJxRWL3tu+","0fROeOex5LhLvGqurTLICb","e2GUhVOMlFXq9PM9/sAd/H","0fKh1YvnlOSpwn4/XTqLRw","9dNF42fH5L/ZsiT9B1UspM","0b70hbTaVJYZn89OMtc2aS","5fCbRu4wxML745Uvndh65C","97T9fi6upJCY5w5pjAVp7Q","56qd1jyl5JDKNRHE1y/pW1","76/lSJkbBBZqPBA7c0ep/T","17ttw3IFpB7a+3NbGN0zzp","a8UmH5TDRCjLptOIOzZGTn","6fP4N2PNRMrIaHEafkNFI/","e97GVMl6JHh5Ml5qEDdSGa","29FYIk+N1GYaeWH/q1NxQO","c3CmIJxTVDQ4bbK0Qlo917","4bByBBiCFODKSdN60odM6z","3bOQ6kWmlLdaWLKCm0IQW+","767GZ7b5lOmo2CSMFiHVPi","e2LHtIVGZKTKUSEbeNJFPr","f2hAgl8G1Lf6zMDbVpmz/i","28eoKlFMdCYIUOlUEVVTRg"],"scenes":{"db://assets/Scene/MainGameScene.fire":0},"redirect":[58,0],"deps":["internal"],"packs":{"023076552":[84,3,71,52,129,100,127,125,89,41,121,53,87,134,97,95,145,138,118,76,50,40,104,117,112,91,141,70,45,48,114,90,54,59,113,140,32,109,124,69,88,132,99,106,101,79,63,64,130,44,80,42,39,47,136,72,94,67,142,133,61,51,38,62,35,56,82,120,119,123,60,128,78,74,49,0,135,111,73,46,115,110,43,2,96,107,103,139,116,1,55,92,65,57,75,98,66,68,122,37,36,34,126,143,33,86,77,108,137,81,144,102,83,85,105,93],"0e06891ae":[4,24,21,31,29,28,30,11,26,17,22,14,27,7,6,25,18,9,19,12,23,13,10,15,8,5,20,16]},"name":"main","importBase":"import","nativeBase":"native","debug":false,"isZip":false,"encrypted":false,"versions":{"import":["023076552","dfaef","0e06891ae","3e41d"],"native":[3,"de749",4,"a72af",24,"0a5d8",21,"92fd3",31,"81214",29,"477b6",28,"04b49",30,"b0532",11,"31bf3",26,"c51dc",17,"f2c21",22,"91680",14,"759ec",27,"1fb75",7,"0ba26",6,"14038",25,"c06a9",18,"a7794",9,"65ac2",19,"84404",12,"57beb",23,"83fcc",2,"8dd82",13,"3938e",1,"f5b37",10,"75d5c",15,"78b85",8,"0b746",5,"cdbc9",20,"5ccbd",16,"0a4c5"]}} \ No newline at end of file diff --git a/assets/main/import/02/023076552.dfaef.json b/assets/main/import/02/023076552.dfaef.json new file mode 100644 index 0000000..8b3542a --- /dev/null +++ b/assets/main/import/02/023076552.dfaef.json @@ -0,0 +1 @@ +[1,["ecpdLyjvZBwrvm+cedCcQy","139b3a6ab","1bb33d059","74dJEQ+alKZ6gga84z/bN9","dcKZwOBpxOobWTn5YtUk0r","131f7d7ff","79E4FkTB9DfJzbd8aGgSGw","7dwduMCSdH4JoapH3GONr7","5dGXQEaLRLe6bQQ+e03Ewc","5e4pAVpqxGz5JlWkSiiSB1","54CBxyvHhC/azzQnv/XSyz","3ckhiCXbdMGLT35v45OUpC","acdZXuHL1CQ5U/YVb9aCMg","a30i7c9tJNoYdUwWUYrEYA","d0ElE5CT5D0q58GV/flNcW","2b8tkMa/xHTpSAP4+H2My3","e5f/oUnUhHw5ukBbLom19w","a1I3II6LdPPLMnx5LLDAPm","5aT7m7YqJKsKWiy03aNgkR","61EvprBzlExKIfqYwYeDoc","05sASQozdBrKcajGL9GvD4","73KwzhCLtCNr1wJ6UNhD7i","d58GGY5zlC3aUhSmGJyH4r","14bd3a795","c9Stbg8pJGt6fhK2nLpT3E","3eF4dNxJtNiYN5fhl82QcU","e0psoVPI9KKb8PQHs5+Y4Z","0b70hbTaVJYZn89OMtc2aS","cdFgZaAmVD37zxiN+LN/lt","a8UmH5TDRCjLptOIOzZGTn","6fP4N2PNRMrIaHEafkNFI/","e97GVMl6JHh5Ml5qEDdSGa","e2EIvJRrFFxpAtw4ZeeK6U","4bByBBiCFODKSdN60odM6z","767GZ7b5lOmo2CSMFiHVPi","c5Mvo/L2lIOoY3rRPvLnS0","fbJSbUImNBuaoyELqfWZv+","735tW9//dNjaq88BKOqsHW","58ZorgYWpB+Y1rpukU2koO","9dNF42fH5L/ZsiT9B1UspM","f2GUfAb+lIxaUJ+Mbol6By","28eoKlFMdCYIUOlUEVVTRg","5731jvr1xN1KAg1r3lfUNK","5fCbRu4wxML745Uvndh65C","56qd1jyl5JDKNRHE1y/pW1","76/lSJkbBBZqPBA7c0ep/T","17ttw3IFpB7a+3NbGN0zzp","29FYIk+N1GYaeWH/q1NxQO","71VhFCTINJM6/Ky3oX9nBT","bfW2abahJHyaPrAl5KUx/a","3bOQ6kWmlLdaWLKCm0IQW+","f5v+I4P91NDpqWCTpqMepD","4c5li0RzlCgqDPP89ZOKsp","c6lhye6jhEB7sXjUhdFRVP","52yyr6ZwpBnIcnzg2aWVp2","10DrZ3z5JHJaeRbHAPbjcK","6fRlik5pRLoI++4xRW8pXj","ca6uE2XxFPuq12TAwogtJq","b3gzaEiyNNravTttRhiwzV","70nuiBOvlJbpM+yn7PUkG6","e2LHtIVGZKTKUSEbeNJFPr","f2hAgl8G1Lf6zMDbVpmz/i","d8HsitJHxOYqo801xBk8ev","a02K+gPhpMWb7YGJ6feB5m","6424ZjC2NMl7tUpgPJATlR","201lpNTBtFKZwHMu3B+dzV","4c4imBrB9HFqjY/Db+oCQx","e3CAprnHZJ5ashYSfnuaQp","7f/VuxbsJMp79mMpTOTovz","e1uyRHtdBGF65Rm4NubYpE","7dbZ+mXp9F65gIoAkOITzB","68QlKyc5JFZa5DPXnBZXj0","31Fkzt1PtK4510XU0ZAjPN","14QKMFGqdNmbIzJJu82/3i","66XcRW2DtHd6WqnprX3+Ae","b6FBTf3ClLzalFeHLwoZqi","5fDPQuwTFAgrhR6xv9utGo","ac0rBcIK1Kuan5lkn1/Sbo","6eQzQKOx5Eeb0ccPQzu149","3eVK9hm29GXpZ3ZONfPN0W","a679TzWWxFNrSSvkNojgqm","2cIWq3i91M8LvAX4+8Y4tB","79hsppiDROObUqF3WWUG7N","0aLjKFvcFA4KRRl0UYnqMo","16vsP4lmlDXKZ2j7kPB2AK","40GjA2Qt5AKbUTkwDF//U/","81txH3El1G3bMWo5uawdNk","cdf6YHx3JNk4cTtYwiSeP2","41D7kWhyFGY7q4NDlzkazn","9bvaMerUlDyary99mJa6xp","edSnkncf1Hu5BUOWbiLRe1","84Kgc2kslA6pzoq0e9YRaf","f3f3nCKrJGSrfaDyPt6PU0","01BuXvESdNPY9jAnXV0lKE","f3sC0GGDVElZGWTY80RSfl","e4HWZygINGrq2wSluFukGA","17Rr16zK5PTqlpwQYE00WH","55iTNANX9EkYGRMcLd/HIt","10XtcBiXpKeLjU1Xdbaez7","3fLhrQERtMIIQpJFPkxc1H","3aZ+ZVEcFCEJr7gN3g5Ab/","25xOvLWaBBkZDw1TqmqCBy","bbqBwcQKJHzYoHE7ql1TXR","1eh/czD1hDRJp/Er6MIXNm","d312OM455H46grU5VxOvhz","56yMZHqW1Ab4ouazMPBn31","0d4nOvUC5Ko5Z0+9JksCVl","5aF2/6codH9J0+p/vAjocX","f3dDSUuldChYLh5DvyqQ0V","c2gNc0kZJNmJTq5pDuflLK","33vjMVKwxML5CchhtvQXok","f7RKqDmV1F04YdnCh7PncC","be+LlrYz1JpK5N2pycPvCE","e9XB/T3V9DGautO2xsjynv","4falrO8C1Mvr8bQE/hGwTv","b1DG1UoaFLMYSvTPGkCYbs","a9sscsW+tBnYCQioYDwnxr","361Cw5eTZLBbS6BOabyKmJ","4alW0zqOhD5KVqTJXGmFsK","3fC8YJcwFLf49G9LDTn+TM","afG1afbRNJZq+YY+reQHFQ","c3i2Pcfy9IGpfDl2tDAmb/","35WeTCdhNAFYKOeIz/b7TG","2b463Nt6hK+7CzUlyHcKS4","8fNETUWfRCQ4YfQqdX6j1+","87A4/f3C5PT471jaDcBmGm","14Wx3CPMRIFabgMBYpg1QO","dcK5W6Kw1FKoTgBYNH6Hnk","95DjhVuxdALJWR9iA9Tue/","50TAjcZbRE47tJxRWL3tu+","0fROeOex5LhLvGqurTLICb","e2GUhVOMlFXq9PM9/sAd/H","0fKh1YvnlOSpwn4/XTqLRw","c4pUYMLKZHl5/4XGm7ldCc","b9zzAen2RH9pMjqfkSdAh/","012YVKd7BIFL9ozFOZ0RP+","c3CmIJxTVDQ4bbK0Qlo917","0bd3t3i75AW5z3HOHk8LfV","80wiaGGvRPiaVRjAJpLOBg","0bHQ83hLVH0JixxuPIV8GD","d6u8uOZSBGeIKW8cro1uDQ","8eJK3/OJJBR7rkKARuqQX4","b4P/PCArtIdIH38t6mlw8Y","6cu5EdkJVFFrxW1WJCXykO"],["node","_textureSetter","root","_N$dragonAsset","_N$dragonAtlasAsset","data","_spriteFrame","_texture","_parent","value","replayBtn","mainNode","maxFishNode","nowFishNode","nametext","maxScoreText","leftBtn","moreBtn","overInfoT","overScoreT","bgLayer","_normalMaterial","_N$pressedSprite","_N$hoverSprite","_N$disabledSprite","stoneNode","liziNode","carmeraNode","leafNode","playerNode","enemyNode","blackLayerPre","nameLabel","gameOverT2","gameOverT1","sceneScore","startBgNode","startT","showInfoT","target","buttonNode","scene","_defaultClip","gameOverPre","leafPre","BGPre","bianjiePre","BubblePre","PanlongPre","bowenPre","bloodPre","replayButtonPre","mainBtnPre","ripplePre","liziPre","starPre","lightPre","eatMusic","HurtMusic","failMusic"],["cc.SpriteFrame",["cc.Node",["_name","_groupIndex","_active","_opacity","_id","_parent","_components","_contentSize","_prefab","_trs","_children","_color","_eulerAngles","_anchorPoint"],-2,1,9,5,4,7,2,5,5,5],["cc.Label",["_string","_N$horizontalAlign","_N$verticalAlign","_fontSize","_lineHeight","_N$fontFamily","_N$overflow","_isSystemFontUsed","_spacingX","_enabled","node","_materials"],-7,1,3],["cc.Node",["_name","_groupIndex","_active","_parent","_components","_contentSize","_trs","_prefab","_children","_anchorPoint"],0,1,2,5,7,4,2,5],["cc.Sprite",["_sizeMode","_type","node","_materials","_spriteFrame"],1,1,3,6],["cc.Widget",["_alignFlags","alignMode","_originalWidth","_originalHeight","_top","_enabled","_left","_right","_bottom","node"],-6,1],["cc.Node",["_name","_groupIndex","_opacity","_active","_parent","_components","_prefab","_contentSize","_trs","_color","_children"],-1,1,12,4,5,7,5,12],["cc.PrefabInfo",["fileId","root","asset"],2,1,1],["cc.CircleCollider",["_radius","tag","node","_offset"],1,1,5],["cc.Button",["zoomScale","_N$transition","node","_N$normalColor","clickEvents","_N$pressedColor","_N$disabledColor"],1,1,5,9,5,5],["cc.PolygonCollider",["tag","node","points","_offset"],2,1,12,5],["9bf97/TUWJAtJTYemvyINjL",["_enabled","node"],2,1],["dragonBones.ArmatureDisplay",["_armatureName","_animationName","_preCacheMode","_armatureKey","_N$timeScale","node","_materials","_N$dragonAsset","_N$dragonAtlasAsset"],-2,1,3,6,6],["cc.ClickEvent",["_componentId","handler","target"],1,1],["cc.Layout",["_enabled","_N$layoutType","node","_layoutSize"],1,1,5],["cc.Camera",["_cullingMask","_depth","_orthoSize","_clearFlags","_nearClip","node"],-2,1],["cc.AudioClip",["_name","_native","duration"],0],["dragonBones.DragonBonesAsset",["_name","_dragonBonesJson"],1],["cc.Prefab",["_name"],2],["cc.Node",["_name","_id","_children","_components","_contentSize","_trs"],1,12,9,5,7],["671d7/ykbxBLKzxFW4yZU5f",["node"],3,1],["dragonBones.DragonBonesAtlasAsset",["_name","_atlasJson"],1],["3621brbM61BsYFG7fM/74TL",["node","bgLayer","overScoreT","overInfoT","moreBtn","leftBtn","maxScoreText","nametext","nowFishNode","maxFishNode","mainNode","replayBtn"],3,1,1,1,1,1,1,1,1,1,1,1,1],["f41fcJj045KGo2ubgiEeGaA",["node"],3,1],["cc.SceneAsset",["_name","asyncLoadAssets"],1],["cc.Canvas",["_fitWidth","_fitHeight","node","_designResolution"],1,1,5],["0e7a8SkMLxEY7nCB1Bqi8WZ",["node","startBgNode","sceneScore","gameOverT1","gameOverT2","nameLabel","blackLayerPre","enemyNode","playerNode","leafNode","carmeraNode","liziNode","stoneNode","enemyPreArr","newFishPreArr","gameOverPre","leafPre","BGPre","bianjiePre","BubblePre","PanlongPre","bowenPre","bloodPre","replayButtonPre","mainBtnPre","ripplePre","liziPre","starPre","lightPre","eatMusic","HurtMusic","failMusic"],3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6],["280c3rsZJJKnZ9RqbALVwtK",["node","showInfoT","startT"],3,1,1,1],["ba7b9DpttpMLq9QsKGwuABo",["node"],3,1],["10c1aPfzmNB9qwshKRmLq1A",["node"],3,1],["132743iYdROWry4PeEjE8Fb",["node","buttonNode"],3,1,1],["cc.Scene",["_name","_active","_children","_anchorPoint","_trs"],1,2,5,7],["cc.Animation",["node","_clips","_defaultClip"],3,1,3,6],["d1951bUsVBEo7LtLLUajDCO",["node","SpriteFrameArr"],3,1,12],["cc.AnimationClip",["_name","_duration","speed","curveData"],0,11]],[[7,0,1,2],[7,1,1],[10,0,1,2,2],[12,0,1,2,3,4,5,6,7,8,6],[18,0,2],[1,0,1,5,6,8,7,3],[4,2,3,4,1],[1,0,1,10,6,8,7,9,3],[17,0,1,3],[21,0,1,3],[1,0,2,1,5,10,6,8,7,9,4],[8,1,0,2,3,3],[28,0,1],[1,0,1,6,8,7,3],[11,0,1,2],[20,0,1],[23,0,1],[1,0,2,5,6,8,7,9,3],[4,0,2,3,4,2],[8,1,0,2,3],[1,0,5,6,8,2],[1,0,2,1,5,6,8,7,9,4],[7,1,2,1],[7,0,1,2,2],[12,0,1,2,3,5,6,7,8,5],[1,0,5,6,8,9,2],[1,0,1,5,10,6,8,7,9,3],[16,0,1,2,4],[1,0,5,2],[1,0,5,6,9,2],[2,0,3,4,1,2,10,11,6],[1,0,2,5,6,8,7,3],[1,0,3,1,6,8,7,9,4],[1,0,1,5,6,7,3],[1,0,3,1,5,6,7,13,9,12,4],[3,0,1,3,4,5,6,3],[3,0,3,4,5,6,2],[10,0,1,3,2,2],[8,0,2,2],[5,1,0,2,3,9,5],[5,1,4,9,3],[9,2,4,3,1],[15,0,1,2,5,4],[1,0,1,10,6,8,7,3],[1,0,10,8,7,9,12,2],[1,0,1,5,10,8,7,13,9,3],[1,0,1,5,6,8,7,9,3],[1,0,2,1,5,6,8,7,13,9,4],[1,0,5,6,8,7,2],[1,0,1,6,8,11,7,9,12,3],[1,0,1,10,8,9,3],[1,0,1,5,3],[1,0,2,3,5,10,6,11,7,4],[1,0,2,3,1,5,6,11,7,5],[1,0,3,1,5,10,6,7,4],[1,0,1,5,6,11,7,3],[1,0,5,10,2],[1,0,5,8,2],[1,0,3,1,5,6,7,4],[1,0,4,5,6,9,3],[1,0,3,5,10,9,3],[1,0,5,10,9,2],[6,0,2,1,4,5,6,7,4],[6,0,1,4,5,6,9,7,8,3],[6,0,3,1,4,5,6,7,8,4],[6,0,1,4,5,6,7,8,3],[6,0,1,4,10,3],[3,0,1,3,8,4,7,5,9,6,3],[3,0,3,4,7,5,6,2],[3,0,2,3,4,5,6,3],[3,0,1,3,4,5,3],[19,0,1,2,3,4,5,3],[11,1,1],[4,2,3,1],[4,1,2,3,4,2],[4,1,0,2,3,4,3],[4,0,2,4,2],[22,0,1,2,3,4,5,6,7,8,9,10,11,1],[5,0,9,2],[5,5,0,2,3,9,5],[5,0,6,4,9,4],[5,0,7,8,9,4],[9,0,1,2,5,6,3],[9,2,3,1],[13,0,2,2],[13,0,1,2,3],[2,0,3,4,1,2,5,6,10,11,8],[2,9,0,3,7,1,2,10,11,7],[2,0,3,4,7,8,1,2,5,10,11,9],[2,1,2,10,11,3],[2,0,4,1,2,10,11,5],[2,0,3,4,8,1,2,10,11,7],[2,0,3,4,6,10,11,5],[2,0,1,2,10,11,4],[24,0,1,3],[25,0,1,2,3,3],[26,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,1],[14,2,3,1],[14,0,1,2,3,3],[27,0,1,2,1],[29,0,1],[30,0,1,1],[31,0,1,2,3,4,3],[32,0,1,2,1],[33,0,1,1],[15,0,3,4,5,4],[34,0,1,2,3,4]],[[[{"name":"光2","rect":[708,646,276,276],"offset":[0,0],"originalSize":[276,276],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[2]],[[[27,"游戏结束",".mp3",1.68],-1],0,0,[],[],[]],[[[8,"dianman_ske_ske_ske_ske","{\"frameRate\":24,\"name\":\"dianman_ske_ske_ske\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-161.93,\"y\":-324.39,\"width\":323.16,\"height\":826},\"bone\":[{\"name\":\"root\"},{\"length\":59,\"name\":\"6身\",\"parent\":\"root\",\"transform\":{\"x\":-0.55,\"y\":-256.6,\"skX\":88.9899,\"skY\":88.9899}},{\"length\":89,\"name\":\"6身1\",\"parent\":\"6身\",\"transform\":{\"x\":63.2587,\"y\":0.0652,\"skX\":1.0101,\"skY\":1.0101}},{\"length\":64,\"name\":\"6右大翅\",\"parent\":\"6身\",\"transform\":{\"x\":61.8681,\"y\":-34.5147,\"skX\":-52.8608,\"skY\":-52.8608}},{\"length\":66,\"name\":\"6左大翅\",\"parent\":\"6身\",\"transform\":{\"x\":63.6256,\"y\":35.9773,\"skX\":54.6166,\"skY\":54.6166}},{\"length\":120,\"name\":\"6身2\",\"parent\":\"6身1\",\"transform\":{\"x\":90.75,\"y\":1.25,\"skX\":-1.0702,\"skY\":-1.0702}},{\"length\":46,\"name\":\"6左小翅\",\"parent\":\"6身1\",\"transform\":{\"x\":127,\"y\":49.1,\"skX\":39.7507,\"skY\":39.7507}},{\"length\":50,\"name\":\"6右小翅\",\"parent\":\"6身1\",\"transform\":{\"x\":124.65,\"y\":-44.35,\"skX\":-49.5098,\"skY\":-49.5098}},{\"length\":97,\"name\":\"6身3\",\"parent\":\"6身2\",\"transform\":{\"x\":121.9427,\"y\":1.5278,\"skX\":0.1878,\"skY\":0.1878}},{\"length\":84,\"name\":\"6身4\",\"parent\":\"6身3\",\"transform\":{\"x\":96.6616,\"y\":-0.0115,\"skX\":-0.1311,\"skY\":-0.1311}},{\"length\":106,\"name\":\"6身5\",\"parent\":\"6身4\",\"transform\":{\"x\":85.4999,\"y\":0.7623,\"skX\":-0.9792,\"skY\":-0.9792}},{\"length\":77,\"name\":\"6身6\",\"parent\":\"6身5\",\"transform\":{\"x\":116.7298,\"y\":2.6102,\"skX\":-1.3001,\"skY\":-1.3001}},{\"length\":93,\"name\":\"6身7\",\"parent\":\"6身6\",\"transform\":{\"x\":90.7657,\"y\":1.4656,\"skX\":-6.7632,\"skY\":-6.7632}}],\"slot\":[{\"name\":\"6右小翅\",\"parent\":\"6右小翅\"},{\"name\":\"6左大翅\",\"parent\":\"6左大翅\"},{\"name\":\"6右大翅\",\"parent\":\"6右大翅\"},{\"name\":\"6左小翅\",\"parent\":\"6左小翅\"},{\"name\":\"6身\",\"parent\":\"6身7\"}],\"skin\":[{\"slot\":[{\"name\":\"6右大翅\",\"display\":[{\"name\":\"动画拆/6右大翅\",\"transform\":{\"x\":87.38,\"y\":18.48,\"skX\":-36.13,\"skY\":-36.13}}]},{\"name\":\"6左小翅\",\"display\":[{\"name\":\"动画拆/6左小翅\",\"transform\":{\"x\":34,\"y\":-3.13,\"skX\":-129.75,\"skY\":-129.75}}]},{\"name\":\"6右小翅\",\"display\":[{\"name\":\"动画拆/6右小翅\",\"transform\":{\"x\":38.19,\"y\":6.83,\"skX\":-40.49,\"skY\":-40.49}}]},{\"name\":\"6身\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/6身\",\"width\":132,\"height\":826,\"vertices\":[-1.95,-263.45,-10.1,-260.5,-15.55,-257.05,-24.1,-256.95,-28.1,-254.25,-24.8,-250.45,-30.6,-246.55,-36.9,-242.6,-43.85,-238.7,-48.15,-232.1,-43.85,-231.25,-39,-233.15,-33.8,-236.8,-28.35,-239.9,-25.05,-241.6,-26.9,-237.05,-32.5,-231.95,-38.1,-225.3,-42.25,-217.45,-43.75,-209.8,-43.75,-201.2,-43.4,-193.3,-41.2,-187.2,-44.55,-179.2,-45.7,-171.9,-46.8,-161.6,-47.95,-152.05,-50.75,-142,-52.35,-134.25,-52.95,-119.5,-53.8,-106.85,-54.4,-90.8,-55.25,-75.95,-54.5,-48.3,-54.65,-30.3,-54.85,-10.05,-54.4,7.9,-54.25,25.85,-54.15,43.1,-53.9,60.05,-53.05,81.4,-51.75,102.4,-50.3,122.85,-48.1,143.1,-45.25,156.85,-43.45,170.7,-41.65,186.25,-37.75,205.15,-33.35,226.35,-33.25,238.8,-30.4,267.65,-27.4,302.55,-26.9,324.3,-28.75,287.1,-30.3,344.3,-30.6,360.9,-32.8,379.5,-33.1,395.4,-32.1,418.7,-25.25,442,-16.35,459.45,-11.3,466,-8.65,476.2,-1.9,487.1,8.5,500.5,17.55,510.4,28.45,516.75,38.15,528,49.4,541.75,49.9,536.55,45.2,523.3,41.7,513.4,36.65,502.65,32.95,491.95,30.3,482.7,39.5,487.6,48.35,494.45,70.15,502.85,61.95,492.1,56.75,483.4,52.9,469.5,51.05,455.55,51.55,442.7,49.85,425.75,49,415.35,48.05,404.3,49.55,395.6,50.35,380.5,50.9,371.45,50.9,362.45,49.1,349.05,45.15,333.5,40.75,316.4,38.85,306.45,37.35,294.15,36,281.15,35.45,270.35,35.3,260.5,40.85,227.6,45.1,198.15,51.15,167.15,52.7,142.9,55.7,116.15,57.55,80.65,57.85,46.6,58.75,15.65,58.15,-10.15,58.4,-34.75,57.5,-68.75,57.5,-96.4,55.4,-117.05,51.15,-136.8,47.85,-155.6,47.2,-172,41.85,-197.1,42.35,-212.45,38.25,-222.4,37.75,-226.8,33.2,-232.2,27.5,-234,23.25,-244.6,34.2,-238.75,46.45,-231.4,50.5,-234.15,45.6,-240.2,38.1,-243.65,31.9,-247.7,25.85,-249.35,29.6,-252.3,29.75,-256.85,18.85,-257.65,13.1,-259.3,6.6,-262.9,-40.36,285.67,65.31,273.66],\"uvs\":[0.42841,0.02185,0.36667,0.02542,0.32538,0.0296,0.26061,0.02972,0.2303,0.03299,0.2553,0.03759,0.21136,0.04231,0.16364,0.04709,0.11098,0.05182,0.07841,0.05981,0.11098,0.06084,0.14773,0.05854,0.18712,0.05412,0.22841,0.05036,0.25341,0.04831,0.23939,0.05381,0.19697,0.05999,0.15455,0.06804,0.12311,0.07754,0.11174,0.0868,0.11174,0.09722,0.11439,0.10678,0.13106,0.11416,0.10568,0.12385,0.09697,0.13269,0.08864,0.14516,0.07992,0.15672,0.05871,0.16889,0.04659,0.17827,0.04205,0.19613,0.03561,0.21144,0.03106,0.23087,0.02462,0.24885,0.0303,0.28232,0.02917,0.30412,0.02765,0.32863,0.03106,0.35036,0.0322,0.37209,0.03295,0.39298,0.03485,0.4135,0.04129,0.43935,0.05114,0.46477,0.06212,0.48953,0.07879,0.51404,0.10038,0.53069,0.11402,0.54746,0.12765,0.56628,0.1572,0.58916,0.19053,0.61483,0.19129,0.6299,0.21288,0.66483,0.23561,0.70708,0.23939,0.73341,0.22538,0.68838,0.21364,0.75763,0.21136,0.77772,0.1947,0.80024,0.19242,0.81949,0.2,0.8477,0.25189,0.87591,0.31932,0.89703,0.35758,0.90496,0.37765,0.91731,0.42879,0.93051,0.50758,0.94673,0.57614,0.95872,0.65871,0.9664,0.7322,0.98002,0.81742,0.99667,0.82121,0.99038,0.78561,0.97433,0.75909,0.96235,0.72083,0.94933,0.6928,0.93638,0.67273,0.92518,0.74242,0.93111,0.80947,0.93941,0.97462,0.94958,0.9125,0.93656,0.87311,0.92603,0.84394,0.9092,0.82992,0.89231,0.83371,0.87676,0.82083,0.85623,0.81439,0.84364,0.8072,0.83027,0.81856,0.81973,0.82462,0.80145,0.82879,0.7905,0.82879,0.7796,0.81515,0.76338,0.78523,0.74455,0.75189,0.72385,0.7375,0.7118,0.72614,0.69691,0.71591,0.68117,0.71174,0.6681,0.71061,0.65617,0.75265,0.61634,0.78485,0.58069,0.83068,0.54316,0.84242,0.5138,0.86515,0.48142,0.87917,0.43844,0.88144,0.39722,0.88826,0.35975,0.88371,0.32851,0.88561,0.29873,0.87879,0.25757,0.87879,0.22409,0.86288,0.19909,0.83068,0.17518,0.80568,0.15242,0.80076,0.13257,0.76023,0.10218,0.76402,0.0836,0.73295,0.07155,0.72917,0.06622,0.6947,0.05969,0.65152,0.05751,0.61932,0.04467,0.70227,0.05176,0.79508,0.06065,0.82576,0.05732,0.78864,0.05,0.73182,0.04582,0.68485,0.04092,0.63902,0.03892,0.66742,0.03535,0.66856,0.02984,0.58598,0.02887,0.54242,0.02688,0.49318,0.02252,0.13739,0.68664,0.93797,0.6721],\"triangles\":[3,1,0,129,125,124,86,85,84,86,84,83,67,65,68,113,112,111,114,113,123,115,114,123,122,115,123,123,113,110,113,111,110,123,110,109,107,109,108,105,107,106,103,105,104,80,79,78,95,94,134,98,97,134,93,92,134,94,93,134,92,91,134,91,90,134,99,98,134,90,89,134,100,99,134,102,101,134,101,100,134,109,107,134,107,105,134,89,88,134,105,103,134,103,102,134,83,82,77,86,83,77,78,76,77,76,71,77,71,70,77,88,87,77,87,86,77,80,78,77,81,80,77,82,81,77,70,69,77,69,68,77,134,88,77,96,95,134,97,96,134,132,130,129,79,76,78,116,115,122,36,37,105,33,107,108,109,31,108,31,32,108,41,102,103,39,40,103,107,34,106,34,35,106,36,105,106,35,36,106,105,37,104,37,38,104,39,103,104,38,39,104,32,33,108,40,41,103,33,34,107,110,30,109,30,31,109,72,71,76,80,75,79,75,76,79,42,101,102,41,42,102,111,29,110,29,30,110,132,131,130,81,74,80,74,75,80,44,100,101,43,44,101,42,43,101,129,126,125,27,28,111,28,29,111,70,67,69,83,60,82,60,61,82,61,81,82,46,99,100,45,46,100,44,45,100,112,26,111,26,27,111,61,74,81,55,88,89,90,55,89,56,86,87,88,55,87,55,56,87,67,68,69,124,122,123,117,116,122,56,57,86,84,59,83,59,60,83,91,54,90,54,55,90,75,72,76,57,85,86,85,58,84,58,59,84,129,128,126,113,24,112,24,25,112,25,26,112,57,58,85,73,72,75,114,22,113,22,24,113,118,117,122,124,121,122,121,118,122,47,48,98,47,98,99,46,47,99,125,121,124,52,54,91,71,67,70,92,52,91,66,65,67,49,97,98,66,67,71,116,119,114,116,114,115,20,22,119,72,66,71,119,22,114,93,52,92,48,49,98,15,16,119,16,20,119,74,73,75,94,51,93,51,52,93,117,118,116,118,119,116,126,121,125,95,51,94,61,62,74,49,50,97,53,51,95,73,65,72,65,66,72,96,53,95,97,50,96,50,53,96,119,118,121,64,65,73,126,120,121,120,119,121,62,63,74,74,64,73,127,120,126,128,127,126,63,64,74,130,127,129,129,127,128,60,59,62,120,15,119,19,20,17,17,20,16,14,15,120,130,120,127,131,1,120,1,2,120,2,14,120,130,131,120,23,24,22,132,0,131,0,1,131,18,19,17,20,21,22,32,30,9,5,14,2,3,2,1,61,60,62,3,5,2,50,133,53,5,6,14,13,15,14,4,5,3,53,133,51,4,6,5,6,13,14,8,7,4,13,12,15,12,16,15,51,133,52,133,54,52,7,6,4,6,7,13,7,12,13,42,41,133,57,133,58,49,133,50,133,56,54,54,56,55,12,11,16,11,17,16,133,57,56,48,47,49,47,133,49,7,11,12,10,17,11,46,133,47,8,11,7,10,18,17,8,10,11,45,43,46,10,9,18,43,42,133,46,43,133,21,23,22,8,9,10,9,19,18,44,43,45,20,23,21,9,20,19,24,23,20,9,24,20,30,28,9,27,25,24,9,27,24,28,27,9,27,26,25,30,29,28,32,31,30,32,34,33,35,38,37,36,35,37,35,34,32],\"weights\":[3,1,0.988314,2,0.009819,5,0.001867,3,1,0.973446,2,0.022414,5,0.00414,3,1,0.942026,2,0.049162,5,0.008812,3,1,0.875614,2,0.104454,5,0.019932,3,1,0.833214,2,0.140082,5,0.026704,3,1,0.848533,2,0.129036,5,0.022431,3,1,0.77955,2,0.187505,5,0.032946,3,1,0.70714,2,0.247573,5,0.045287,3,1,0.638586,2,0.301828,5,0.059586,3,1,0.582247,2,0.347139,5,0.070614,3,1,0.600209,2,0.337411,5,0.06238,3,1,0.64029,2,0.30747,5,0.05224,3,1,0.700595,2,0.258014,5,0.041391,3,1,0.767273,2,0.201859,5,0.030868,3,1,0.808757,2,0.166341,5,0.024902,3,1,0.765848,2,0.20507,5,0.029081,3,1,0.682297,2,0.277378,5,0.040325,3,1,0.600148,2,0.346905,5,0.052947,3,1,0.535806,2,0.399652,5,0.064543,3,1,0.496365,2,0.431543,5,0.072092,3,1,0.468473,2,0.452538,5,0.078989,3,1,0.453968,2,0.458139,5,0.087893,3,1,0.440176,2,0.467396,5,0.092428,3,1,0.404757,2,0.472168,5,0.123076,4,1,0.358284,2,0.469079,5,0.146742,8,0.025895,4,1,0.302023,2,0.47694,5,0.190491,8,0.030546,4,1,0.251908,2,0.47455,5,0.238375,8,0.035166,4,1,0.208863,2,0.454686,5,0.294708,8,0.041744,4,1,0.180088,2,0.438849,5,0.334516,8,0.046548,4,1,0.133049,2,0.417131,5,0.395855,8,0.053965,4,1,0.107107,5,0.42295,2,0.406293,8,0.06365,4,1,0.087439,5,0.434665,2,0.394346,8,0.08355,4,1,0.077084,5,0.456529,2,0.352629,8,0.113758,4,1,0.059155,5,0.499533,2,0.242863,8,0.198448,4,5,0.489725,8,0.274118,2,0.175301,9,0.060857,4,5,0.448723,8,0.361002,2,0.116937,9,0.073338,4,8,0.416222,5,0.414543,9,0.086852,2,0.082382,4,8,0.427365,5,0.397034,9,0.112336,2,0.063265,4,8,0.441666,5,0.349249,9,0.156016,2,0.053069,4,8,0.451305,5,0.27439,9,0.216385,10,0.05792,4,8,0.439018,9,0.306777,5,0.180979,10,0.073226,4,8,0.411374,9,0.382895,5,0.114928,10,0.090803,4,9,0.402352,8,0.39792,10,0.12119,5,0.078538,4,9,0.425818,8,0.336175,10,0.179558,5,0.05845,4,9,0.449828,8,0.264871,10,0.238463,5,0.046838,4,9,0.453411,10,0.314666,8,0.192093,11,0.03983,4,9,0.433799,10,0.395701,8,0.12663,11,0.04387,4,10,0.447373,9,0.426724,8,0.076317,11,0.049586,4,10,0.527988,9,0.347939,11,0.071417,8,0.052656,4,10,0.574947,9,0.275788,11,0.101279,8,0.047987,4,10,0.625369,11,0.204941,9,0.134032,12,0.035658,4,10,0.478734,11,0.433345,9,0.045965,12,0.041957,4,11,0.533792,10,0.373976,12,0.061059,9,0.031172,4,10,0.563246,11,0.321,9,0.075558,12,0.040196,4,11,0.570964,10,0.268389,12,0.127952,9,0.032695,4,11,0.578265,12,0.207252,10,0.18567,9,0.028813,4,11,0.518654,12,0.332919,10,0.123712,9,0.024715,4,11,0.464418,12,0.430651,10,0.084996,9,0.019935,3,12,0.532066,11,0.404362,10,0.063572,3,12,0.661845,11,0.288149,10,0.050006,3,12,0.791351,11,0.173777,10,0.034872,3,12,0.846494,11,0.126624,10,0.026882,3,12,0.879024,11,0.097649,10,0.023328,3,12,0.928374,11,0.056635,10,0.014991,3,12,0.974538,11,0.019619,10,0.005844,2,12,0.98999,11,0.01001,2,12,0.981537,11,0.018463,2,12,0.950609,11,0.049391,2,12,0.907649,11,0.092351,2,12,0.916354,11,0.083646,2,12,0.947747,11,0.052253,2,12,0.968587,11,0.031413,3,12,0.981972,11,0.01369,10,0.004338,3,12,0.985688,11,0.011117,10,0.003194,3,12,0.985902,11,0.011183,10,0.002915,3,12,0.958979,11,0.03195,10,0.009072,3,12,0.931627,11,0.052102,10,0.016271,2,12,0.877156,11,0.122844,3,12,0.857852,11,0.106849,10,0.035298,3,12,0.860561,11,0.10703,10,0.032408,3,12,0.836098,11,0.129594,10,0.034308,3,12,0.786883,11,0.173381,10,0.039736,3,12,0.709951,11,0.240977,10,0.049072,3,12,0.603523,11,0.339385,10,0.057092,3,12,0.532311,11,0.405248,10,0.062441,3,12,0.467215,11,0.463112,10,0.069673,3,11,0.48606,12,0.427709,10,0.086232,4,11,0.499084,12,0.348215,10,0.126208,9,0.026493,4,11,0.508112,12,0.299525,10,0.161233,9,0.03113,4,11,0.511829,12,0.251189,10,0.201522,9,0.03546,4,11,0.509666,10,0.268965,12,0.181655,9,0.039714,4,11,0.486772,10,0.360223,12,0.112265,9,0.04074,4,10,0.463159,11,0.435004,12,0.061873,9,0.039964,4,10,0.507869,11,0.400577,12,0.047919,9,0.043635,4,10,0.566398,11,0.335545,9,0.057211,12,0.040846,4,10,0.634161,11,0.251215,9,0.079176,12,0.035448,4,10,0.670139,11,0.192324,9,0.105771,12,0.031767,4,10,0.68067,11,0.150733,9,0.138804,8,0.029793,4,10,0.527474,9,0.340802,11,0.077985,8,0.053738,4,9,0.438995,10,0.421994,8,0.090704,11,0.048307,4,9,0.448198,10,0.298121,8,0.21092,5,0.042761,4,9,0.426783,8,0.32989,10,0.183595,5,0.059732,4,9,0.396793,8,0.396532,10,0.11489,5,0.091786,4,8,0.423875,9,0.309224,5,0.190024,10,0.076877,4,8,0.42422,5,0.347094,9,0.175038,2,0.053647,4,5,0.420683,8,0.398329,9,0.103412,2,0.077576,4,5,0.453038,8,0.348181,2,0.121369,9,0.077412,4,5,0.484004,8,0.25579,2,0.19777,9,0.062436,4,1,0.075913,5,0.454175,2,0.33373,8,0.136182,4,1,0.101259,2,0.412515,5,0.404431,8,0.081795,4,1,0.134779,2,0.425034,5,0.381082,8,0.059105,4,1,0.188848,2,0.461124,5,0.306213,8,0.043815,4,1,0.271413,2,0.485164,5,0.210357,8,0.033065,4,1,0.360622,2,0.469219,5,0.143814,8,0.026345,3,1,0.46475,2,0.461249,5,0.074001,3,1,0.508775,2,0.426419,5,0.064806,3,1,0.576463,2,0.370567,5,0.052971,3,1,0.604783,2,0.344193,5,0.051024,3,1,0.670131,2,0.288431,5,0.041438,3,1,0.733522,2,0.23544,5,0.031039,3,1,0.830748,2,0.146971,5,0.02228,3,1,0.698908,2,0.259161,5,0.041932,3,1,0.580072,2,0.353134,5,0.066794,3,1,0.573197,2,0.353038,5,0.073765,3,1,0.626207,2,0.311341,5,0.062453,3,1,0.692933,2,0.259291,5,0.047775,3,1,0.762348,2,0.201722,5,0.03593,3,1,0.823974,2,0.150465,5,0.025561,3,1,0.801307,2,0.167639,5,0.031054,3,1,0.816351,2,0.153334,5,0.030314,3,1,0.909194,2,0.076755,5,0.014051,3,1,0.951682,2,0.040872,5,0.007446,3,1,0.978323,2,0.018227,5,0.00345,1,1,1,1,1,1],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[1,0.01763,0.999845,-0.999845,0.01763,-0.55,-256.6,2,0,1,-1,0,0.5,-193.35,5,0.018677,0.999826,-0.999826,0.018677,-0.75,-102.6,8,0.015399,0.999881,-0.999881,0.015399,0,19.35,9,0.017686,0.999844,-0.999844,0.017686,1.5,116,10,0.03477,0.999395,-0.999395,0.03477,2.25,201.5,11,0.057436,0.998349,-0.998349,0.057436,3.7,318.25,12,0.174608,0.984638,-0.984638,0.174608,7.45,408.95],\"edges\":[129,124,124,123,123,109,32,9,9,8,8,4,4,3,3,0,0,132,132,129,77,68,68,65,65,64,64,63,63,62,62,59,59,58,41,40,40,39,39,38,38,35,35,32,58,133,133,41,109,134,134,77],\"userEdges\":[]}]},{\"name\":\"6左大翅\",\"display\":[{\"name\":\"动画拆/6左大翅\",\"transform\":{\"x\":88.62,\"y\":-18.22,\"skX\":-143.61,\"skY\":-143.61}}]}]}],\"animation\":[{\"duration\":14,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"6身1\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":4.78},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-3.11},{\"duration\":0}]},{\"name\":\"6右大翅\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-4.35},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-16.52},{\"duration\":3,\"tweenEasing\":0,\"rotate\":3.12},{\"duration\":3,\"tweenEasing\":0,\"rotate\":0.1},{\"duration\":0}]},{\"name\":\"6左大翅\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":6.75},{\"duration\":3,\"tweenEasing\":0,\"rotate\":15.25},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-9.73},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-1.79},{\"duration\":0}]},{\"name\":\"6身2\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-9.49},{\"duration\":0}]},{\"name\":\"6左小翅\",\"translateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"x\":-2.6,\"y\":-7.73},{\"duration\":5,\"tweenEasing\":0,\"x\":1.18,\"y\":-14.39},{\"duration\":6,\"tweenEasing\":0,\"x\":1.18,\"y\":-14.39},{\"duration\":0,\"x\":-2.6,\"y\":-7.73}],\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":25},{\"duration\":3,\"tweenEasing\":0,\"rotate\":27.67},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-3.48},{\"duration\":0}]},{\"name\":\"6身3\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":13.16},{\"duration\":3,\"tweenEasing\":0,\"rotate\":6.34},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-18.77},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-14.72},{\"duration\":0}]},{\"name\":\"6身4\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":18.39},{\"duration\":3,\"tweenEasing\":0,\"rotate\":7.29},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-3.21},{\"duration\":0}]},{\"name\":\"6身5\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":1.73},{\"duration\":3,\"tweenEasing\":0,\"rotate\":28},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-7.73},{\"duration\":0}]},{\"name\":\"6身6\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-18.8},{\"duration\":3,\"tweenEasing\":0,\"rotate\":9.57},{\"duration\":3,\"tweenEasing\":0,\"rotate\":23.33},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-16.59},{\"duration\":0}]},{\"name\":\"6身7\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-24.05},{\"duration\":3,\"tweenEasing\":0,\"rotate\":27.44},{\"duration\":3,\"tweenEasing\":0,\"rotate\":30.8},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-5.09},{\"duration\":0}]},{\"name\":\"6右小翅\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-31.53},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-37.78},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-4.67},{\"duration\":3,\"tweenEasing\":0,\"rotate\":6.78},{\"duration\":0}]}],\"ffd\":[{\"name\":\"动画拆/6身\",\"slot\":\"6身\",\"frame\":[{\"duration\":3,\"tweenEasing\":0,\"offset\":208,\"vertices\":[-0.5,-0.6]},{\"duration\":2,\"tweenEasing\":0,\"offset\":88,\"vertices\":[-2.1,-1.1,0,0,0,0,0,0,-0.34,1.98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.35,10.31,4.08,-2.65,6,-6.3,5.5,-8.14,4.04,-4.37,4.4,-3.94,4.05,-4.72,2.8,-4.2,1.13,-0.86,-3.88,1.24,-2.99,-0.96,21.77,-4.04,5.38,-7.47,-3.07,-2.64,-2.45,-0.69,0,0,0,0,-3.48,-4.52,0,0,2.37,0.91,1.85,-2.22,2.6,-0.85,-0.14,0.34,-3.32,2.04,-3.04,2.81,-2.21,-0.89,1.45,-0.22,1.58,0.37,2.46,0,1.41,0.12,-2.25,1.31,-2.53,0,-4.2,-1.43,-4.44,0.25,-2.6,0.21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.5,-0.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-107.65,-56.15,-5,2]},{\"duration\":3,\"tweenEasing\":0,\"offset\":88,\"vertices\":[-0.63,-0.21,0,0,0,0,0,0,-0.48,2.78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6.09,14.43,5.72,-3.71,8.4,-8.82,7.7,-11.39,5.66,-6.12,6.16,-5.51,5.67,-6.61,3.92,-5.88,1.58,-1.2,-5.43,1.74,-9.09,1.1,-11.07,6.12,-5.9,-3.26,-6.1,-1.36,-3.43,-0.97,0,0,0,0,-2.09,-2.71,0,0,-1.97,4.02,-5.01,1.43,-3.46,4.65,-0.08,0.2,-0.13,0.32,1.1,0.28,-0.57,-0.64,2.03,-0.3,2.21,0.52,3.44,-0.01,1.97,0.17,0.07,0.99,-1.52,0,-2.52,-0.86,-2.66,0.15,-1.56,0.13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.5,-0.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-15.35,-69.45]},{\"duration\":3,\"tweenEasing\":0,\"offset\":90,\"vertices\":[-1.61,0.38,0,0,0,0,-0.68,3.97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8.7,20.62,8.17,-5.3,12,-12.59,11.01,-16.27,8.08,-8.75,8.81,-7.87,8.1,-9.44,5.6,-8.41,2.26,-1.71,-7.76,2.49,-18.25,4.18,-41.3,19.66,-22.81,3.06,-10.64,0.57,-4.91,-1.38,0,0,0,0,0,0,0,0,-8.49,8.69,-28.89,22.47,-12.56,12.91,0,0,4.65,-2.26,7.32,-3.51,1.9,-0.26,2.89,-0.43,3.16,0.74,4.92,-0.02,2.82,0.25,3.55,0.51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.5,-0.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,-72.2,126.55,34.5]},{\"duration\":3,\"tweenEasing\":0,\"offset\":90,\"vertices\":[-0.81,0.19,0,0,0,0,-0.34,1.98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.35,10.31,4.09,-2.65,6,-6.29,5.51,-8.13,4.04,-4.37,4.41,-3.93,4.05,-4.72,2.8,-4.2,1.13,-0.86,-3.88,1.25,-9.13,2.09,-20.65,9.83,-11.4,1.53,-5.32,0.28,-2.45,-0.69,0,0,0,0,0,0,0,0,-4.25,4.34,-14.45,11.24,-6.28,6.45,0,0,2.32,-1.13,3.66,-1.76,0.95,-0.13,1.45,-0.22,1.58,0.37,2.46,-0.01,1.41,0.12,1.77,0.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.5,-0.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,93.4,-52.05,63.28,17.25]},{\"duration\":0,\"offset\":208,\"vertices\":[-0.5,-0.6]}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[{"name":"fishlizi8","rect":[789,434,52,53],"offset":[0,0],"originalSize":[52,53],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"图层 1 拷贝","rect":[0,0,720,1280],"offset":[0,0],"originalSize":[720,1280],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[40]],[[[4,"xiaojinyu"],[7,"xiaojinyu",1,[-5,-6],[[2,1,-2,[[[0,-71.9,-149.9],[0,-110.6,-187.4],[0,-125.8,-205.3],[0,-136.3,-225.9],[0,-144.8,-258.1],[0,-140.3,-310.5],[0,-136.7,-319],[0,-131.1,-319.3],[0,-125.1,-309.8],[0,-129.3,-301],[0,-122.5,-297.9],[0,-121.6,-306.2],[0,-112,-306],[0,-105.8,-297.2],[0,-107.9,-284],[0,-121.5,-270.9],[0,-118.6,-260.6],[0,-115.9,-251],[0,-106.3,-239.6],[0,-103.3,-239.4],[0,-107.1,-272.8],[0,-92.5,-268.6],[0,-81.8,-296.7],[0,-67.8,-316.7],[0,-66.1,-311.4],[0,-60.1,-312.9],[0,-41.4,-325.6],[0,-28.5,-344.8],[0,-19.6,-356.9],[0,-21.6,-376.8],[0,-34,-391.7],[0,-51.5,-406.1],[0,-50.2,-407.4],[0,-36.4,-407.3],[0,-3.3,-410.8],[0,19.8,-403.7],[0,26.1,-391.7],[0,23.9,-362.7],[0,26.9,-354.6],[0,31.1,-353.6],[0,32.3,-360.2],[0,37.8,-364.7],[0,50.1,-363.7],[0,57.3,-351.9],[0,63.8,-347.4],[0,71.4,-347.6],[0,88.8,-368],[0,106.1,-367.1],[0,150.5,-345.9],[0,141.5,-335.7],[0,115.5,-329.3],[0,107.5,-322.8],[0,110.2,-312.3],[0,115.4,-294.1],[0,112.3,-285.7],[0,82.9,-277.7],[0,69.7,-263.1],[0,63.4,-249.2],[0,64.3,-227.1],[0,70.9,-203],[0,74.3,-208.6],[0,76.5,-220.9],[0,82,-228.1],[0,86.2,-229.7],[0,88.8,-234],[0,95.8,-225.5],[0,90.3,-215.5],[0,91.2,-211.8],[0,97.2,-211.6],[0,100.2,-214.6],[0,103.3,-219.4],[0,102,-225.8],[0,100.1,-234],[0,97.4,-240.3],[0,100.3,-243.7],[0,106.4,-250.1],[0,114.9,-252.6],[0,119.4,-256.2],[0,121.5,-262.4],[0,124.1,-264.1],[0,124.5,-260],[0,134.3,-238.6],[0,138.9,-216.7],[0,138.7,-201.6],[0,134.2,-186],[0,120.5,-171.6],[0,96.5,-155.2],[0,70.7,-139.6],[0,47.7,-117.4],[0,42.5,-104.6],[0,42.7,-85.7],[0,49.4,-75.3],[0,53.1,-91.8],[0,61,-106.3],[0,67.2,-114.1],[0,70.3,-115.1],[0,63.26,-104.28],[0,63.68,-102.18],[0,64.72,-103.23],[0,70.03,-109.37],[0,75.5,-113.9],[0,84.4,-119.6],[0,88.2,-122.7],[0,93.4,-127.4],[0,100.2,-112],[0,103.8,-97.5],[0,102.8,-77.6],[0,97.4,-65.2],[0,67.7,-25.8],[0,66.8,-21.5],[0,65.4,-0.1],[0,67.8,2.2],[0,76.4,7.4],[0,82.7,21.1],[0,84,42.1],[0,72.7,63.4],[0,60.3,71.4],[0,49.2,74.6],[0,38.3,88.3],[0,21.1,100.6],[0,16.3,108.6],[0,8.5,111.3],[0,-1.7,113.3],[0,-8.3,110.7],[0,-18.8,107.5],[0,-23.7,99.5],[0,-40.4,88.7],[0,-52.3,74.2],[0,-59.5,72],[0,-73.5,64.8],[0,-85.4,46.5],[0,-87.6,31.4],[0,-80.9,10.9],[0,-69,-0.4],[0,-69.1,-30],[0,-86.9,-53.5],[0,-103.1,-76.5],[0,-105.3,-95.1],[0,-104.2,-105.4],[0,-96.7,-131.5],[0,-79.8,-119.2],[0,-65.7,-105.5],[0,-66.1,-109.2],[0,-72.8,-116.8],[0,-71.3,-118.7],[0,-68.1,-116.7],[0,-53.7,-93.7],[0,-50.3,-75.1],[0,-48.7,-78.2],[0,-54.5,-108],[0,-52.9,-125.9]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[14,false,-3],[11,666,70,-4,[0,-1.2,27.8]]],[1,-1],[5,306,557],[0,0,0,0,0,0,1,0.75,0.75,1]],[25,"pos",1,[[19,1000,700,-7],[15,-8]],[0,"89CCdheaJFyZyHSRJEubjC",1],[0,-109.132,0,0,0,0,1,1,1,1]],[5,"xiaojinyu",1,1,[[3,"Armature","newAnimation",0,"74749110-f9a9-4a67-a820-6bce33fdb37d#dc299c0e-069c-4ea1-b593-9f962d524d2b",0.6,-9,[0],1,2]],[0,"d6k7WoF/ZFdYatVufET7mC",1],[5,306,569.69]]],0,[0,2,1,0,0,1,0,0,1,0,0,1,0,-1,3,0,-2,2,0,0,2,0,0,2,0,0,3,0,5,1,9],[0,0,0],[-1,3,4],[0,3,4]],[[[4,"light"],[13,"light",2,[[6,-2,[0],1]],[1,-1],[5,658,659]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,41]],[[[4,"hechengLizi"],[13,"hechengLizi",1,[[18,0,-2,[0],1]],[1,-1],[5,50,50]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,25]],[[{"name":"石5","rect":[3,3,491,509],"offset":[0,0],"originalSize":[491,509],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[5]],[[{"name":"blood6","rect":[295,375,155,146],"offset":[0,0],"originalSize":[155,146],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[4,"blood"],[13,"blood",1,[[6,-2,[0],1]],[1,-1],[5,193,180]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,26]],[[{"name":"fishlizi9","rect":[868,3,35,36],"offset":[0,0],"originalSize":[35,36],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"石1","rect":[708,928,89,92],"offset":[0,0],"originalSize":[89,92],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[2]],[[[9,"dianman_tex","{\"SubTexture\":[{\"width\":60,\"y\":1,\"height\":79,\"name\":\"动画拆/6右小翅\",\"x\":269},{\"width\":132,\"y\":1,\"height\":158,\"name\":\"动画拆/6左大翅\",\"x\":135},{\"width\":133,\"y\":829,\"height\":158,\"name\":\"动画拆/6右大翅\",\"x\":1},{\"width\":59,\"y\":1,\"height\":79,\"name\":\"动画拆/6左小翅\",\"x\":331},{\"width\":132,\"y\":1,\"height\":826,\"name\":\"动画拆/6身\",\"x\":1}],\"width\":512,\"height\":1024,\"name\":\"dianman\",\"imagePath\":\"dianman_tex.png\"}"]],0,0,[0],[7],[42]],[[[4,"kedou"],[7,"kedou",1,[-5,-6],[[2,1,-2,[[[0,-13,-58.9],[0,-4,-69.5],[0,2.4,-73.4],[0,5.6,-66.8],[0,11.6,-57.6],[0,14.8,-47.8],[0,15.7,-34.2],[0,14.4,-24.6],[0,10.6,-6.7],[0,10,9.3],[0,21.1,18],[0,26.5,29.4],[0,27.9,43.5],[0,22.27,55.45],[0,13.5,67.2],[0,6.13,71.46],[0,-7,72],[0,-20.5,65.94],[0,-29.53,55.87],[0,-34.1,41.5],[0,-33.1,25.2],[0,-24.93,14.64],[0,-14.7,8.9],[0,-18.2,-27.2],[0,-18.1,-47.3]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[14,false,-3],[11,666,29.9,-4,[0,-3.1,39]]],[1,-1],[5,65,154],[0,0,0,0,0,0,1,0.5,0.5,1]],[20,"pos",1,[[19,1000,300,-7],[15,-8]],[0,"f35Hcf8DNKpa4tkoqHhLB/",1]],[5,"kedou",1,1,[[24,"Armature","kedou",0,"79138164-4c1f-437c-9cdb-77c6868121b0#7dc1db8c-0927-47e0-9a1a-a47dc638dafb",-9,[0],1,2]],[0,"79mp4N0fhMFY4E/WxY/mzG",1],[5,65,153.82]]],0,[0,2,1,0,0,1,0,0,1,0,0,1,0,-1,3,0,-2,2,0,0,2,0,0,2,0,0,3,0,5,1,9],[0,0,0],[-1,3,4],[0,6,7]],[[[4,"overLayer"],[43,"overLayer",2,[-14,-15,-16],[[77,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2]],[1,-1],[5,720,1280]],[44,"nowFish",[-17,-18,-19,-20,-21,-22,-23,-24,-25,-26],[0,"684GxI2b1M8JxDZfzaahIh",1],[5,325,1606],[0,-46.354,0,0,0,0.7071067811865475,0.7071067811865476,0.5,0.5,1],[1,0,0,90]],[45,"topNode",2,1,[-27,-28,2,-29,-30,-31],[0,"f6nEotyyVCYpjOQ93RwYy8",1],[5,300,274],[0,0.5,1],[0,379.726,0,0,0,0,1,1,1,1]],[62,"backColor",0,2,1,[[[18,0,-32,[0],1],[39,0,45,720,1280,-33],-34],4,4,1],[0,"15dEr7rJ1GyKNJTnhUh6sQ",1],[5,720,1280]],[67,"maxScoreLab",2,3,[-36,-37],[-35],[0,"33v+gMe6RPlKPqPT8bW5x1",1],[5,84,40],[0,0,0.5],[33.777,-170,0,0,0,0,1,1,1,1]],[63,"overInfoText",2,3,[[-38,[40,0,528,-39]],1,4],[0,"53rnfPNRJBXIT2N8tU67C6",1],[4,4294901502],[5,510,63],[0,-346.851,0,0,0,0,1,1,1,1]],[17,"maxFish",false,5,[[73,-40,[5]]],[0,"71vOEkOEpDHZivXaRCxbZx",1],[5,75,106],[1.963,0,0,0,0,0,1,1,1,1]],[64,"overScoreT",false,2,3,[[-41,[40,0,271.5,-42]],1,4],[0,"9bYVmPSntHe6iRDG2aRA3V",1],[5,79.53,201.6],[0,-7,0,0,0,0,1,1,1,1]],[46,"replayBtn",2,3,[[6,-43,[38],39]],[0,"aa3zLVrUlBo4/9Fi1jO4ad",1],[5,321,321],[0,-635.105,0,0,0,0,1,0.7,0.7,1]],[65,"moreBtn",2,1,[[[74,1,-44,[41],42],-45],4,1],[0,"9aZ/KqCUZBNYU07/YSSrEs",1],[5,107,107],[-283.4,582.5,0,0,0,0,1,0.9,0.9,0]],[41,4,[[84,"3621brbM61BsYFG7fM/74TL",1]],[4,4292269782]],[86,"游戏结束了!",35,50,1,1,"微软雅黑",3,6,[2]],[47,"highScoreSign",false,2,5,[[6,-46,[3],4]],[0,"62G6L4AzVDgoycpM1af4to",1],[5,117,71],[0,1,0.5],[48.962,2,0,0,0,0,1,1,1,1]],[87,false,"296",35,false,1,1,5,[6]],[48,"fish1",2,[[24,"Armature","kedou",0,"79138164-4c1f-437c-9cdb-77c6868121b0#7dc1db8c-0927-47e0-9a1a-a47dc638dafb",-47,[7],8,9]],[0,"59bViv2GFL5669YSheVZWp",1],[5,65,153.82]],[17,"fish2",false,2,[[3,"Armature","newAnimation",0,"5d197404-68b4-4b7b-a6d0-43e7b4dc4c1c#5ee29015-a6ac-46cf-9265-5a44a2892075",0.7,-48,[10],11,12]],[0,"99HTuht+pCsbu9Ww99q3LQ",1],[5,310.54,426.31],[0,64,0,0,0,0,1,0.65,0.65,1]],[17,"fish3",false,2,[[3,"Armature","newAnimation",0,"cd16065a-0265-43df-bcf1-88df8b37f96d#56a9dd63-ca5e-490c-a351-1c4d72fe95b5",0.6,-49,[13],14,15]],[0,"49zYSbQitHXpWo1iuSTOCd",1],[5,524,412.5],[0,0,0,0,0,0,1,0.9,0.9,1]],[17,"fish4",false,2,[[3,"Armature","newAnimation",0,"74749110-f9a9-4a67-a820-6bce33fdb37d#dc299c0e-069c-4ea1-b593-9f962d524d2b",0.6,-50,[16],17,18]],[0,"7fX1MAY/tDt5CUda1xnvjq",1],[5,306,569.69],[0,80,0,0,0,0,1,1,1,1]],[31,"fish5",false,2,[[3,"Armature","newAnimation",0,"54081c72-bc78-42fd-acf3-427bff5d2cb3#3c921882-5db7-4c18-b4f7-e6fe39394a42",0.6,-51,[19],20,21]],[0,"59Y9365WZOZ6F0tKHtiaDU",1],[5,543.51,871.77]],[17,"fish6",false,2,[[3,"Armature","newAnimation",0,"76fe5489-91b0-4166-a3c1-03b7347a9fd3#17b6dc37-205a-41ed-afb7-35b18dd33ce9",0.5,-52,[22],23,24]],[0,"53K+K8LyVNOIWlS+VED0Lp",1],[5,323.15,826],[0,0,0,0,0,0,1,1.1,1.1,1]],[31,"fish7",false,2,[[3,"Armature","newAnimation",0,"ac7595ee-1cbd-4243-953f-6156fd682320#a3d22edc-f6d2-4da1-8754-c16518ac4600",0.5,-53,[25],26,27]],[0,"1dwv/PNQFBIY3WyosxPqjN",1],[5,493,881]],[17,"fish8",false,2,[[3,"Armature","newAnimation",0,"d0125139-093e-43d2-ae7c-195fdf94d716#2bf2d90c-6bfc-474e-9480-3f8f87d8ccb7",0.3,-54,[28],29,30]],[0,"e2EVqeK7ZDCo++ot84ctSv",1],[5,411.04,1093],[0,133.249,0,0,0,0,1,1,1,1]],[17,"fish9",false,2,[[3,"Armature","newAnimation_复制1",0,"e57ffa14-9d48-47c3-9ba4-05b2e89b5f70#a1237208-e8b7-4f3c-b327-c792cb0c03e6",0.4,-55,[31],32,33]],[0,"8a9GPOa6BOOK9h2LHPksaD",1],[5,337.77,1786.5],[0,67.999,0,0,0,0,1,0.8,0.8,1]],[17,"fish10",false,2,[[3,"Armature","newAnimation",0,"5a4fb9bb-62a2-4ab0-a5a2-cb4dda360911#6112fa6b-0739-44c4-a21f-a98c18783a1c",0.3,-56,[34],35,36]],[0,"223MEIy4hL7oldNTyNiNYs",1],[5,315.95,2008.74],[0,155.642,0,0,0,0,1,0.8,0.8,1]],[88,"0",143,160,false,-15,1,1,"微软雅黑",8,[37]],[68,"name",3,[-57],[0,"ac8tbEinRJ5aYTf8HfAW13",1],[5,0,50.4],[0,-182.278,0,0,0,0,1,1,1,1]],[89,1,1,26,[40]],[82,0.9,3,10,[4,4294967295],[4,4294967295]]],0,[0,2,1,0,10,9,0,11,3,0,12,7,0,13,2,0,14,27,0,15,14,0,16,11,0,17,28,0,18,12,0,19,25,0,20,4,0,0,1,0,-1,4,0,-2,3,0,-3,10,0,-1,15,0,-2,16,0,-3,17,0,-4,18,0,-5,19,0,-6,20,0,-7,21,0,-8,22,0,-9,23,0,-10,24,0,-1,6,0,-2,5,0,-4,8,0,-5,9,0,-6,26,0,0,4,0,0,4,0,-3,11,0,-1,14,0,-1,13,0,-2,7,0,-1,12,0,0,6,0,0,7,0,-1,25,0,0,8,0,0,9,0,0,10,0,-2,28,0,0,13,0,0,15,0,0,16,0,0,17,0,0,18,0,0,19,0,0,20,0,0,21,0,0,22,0,0,23,0,0,24,0,-1,27,0,5,1,2,8,3,57],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,28,28,28],[-1,6,-1,-1,6,-1,-1,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,-1,6,-1,-1,6,21,22,23,24],[0,27,0,0,43,0,0,0,6,7,0,8,9,0,28,44,0,3,4,0,10,11,0,45,46,0,12,13,0,14,15,0,16,17,0,18,19,0,0,29,0,0,30,0,31,31,47]],[[{"name":"组 10","rect":[3,3,658,659],"offset":[0,0],"originalSize":[658,659],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[2]],[[{"name":"default_btn_disabled","rect":[0,0,40,40],"offset":[0,0],"originalSize":[40,40],"capInsets":[12,12,12,12]}],[0],0,[0],[1],[48]],[[[4,"qipao"],[13,"qipao",1,[[6,-2,[0],1]],[1,-1],[5,25,27]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,32]],[[[9,"jy_ske_1_ske_tex","{\"SubTexture\":[{\"width\":113,\"y\":340,\"height\":331,\"name\":\"动画拆/8左翅\",\"x\":365},{\"width\":115,\"y\":1,\"height\":337,\"name\":\"动画拆/8右翅\",\"x\":365},{\"width\":362,\"y\":1,\"height\":1093,\"name\":\"动画拆/鲸鱼_拷贝\",\"x\":1}],\"width\":512,\"height\":2048,\"name\":\"jy_ske_1_ske\",\"imagePath\":\"jy_ske_1_ske_tex.png\"}"]],0,0,[0],[7],[49]],[[{"name":"fishlizi6","rect":[789,544,43,43],"offset":[0,0],"originalSize":[43,43],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"blood5","rect":[265,850,152,170],"offset":[0,0],"originalSize":[152,170],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[4,"jingyu"],[7,"jingyu",1,[-5,-6],[[2,1,-2,[[[0,-100.3,-199.3],[0,-67.5,-346.6],[0,-37.4,-484.2],[0,-32.3,-549.9],[0,-97.9,-608.6],[0,-141.4,-706.4],[0,-174.1,-794.5],[0,-120.5,-783.2],[0,-56.3,-747.7],[0,-15.4,-718.3],[0,9.2,-642.6],[0,47,-729],[0,136.7,-784],[0,196.7,-797.4],[0,150.4,-675.9],[0,112.2,-600.8],[0,47.5,-548.8],[0,54.5,-455.8],[0,74.2,-361.5],[0,120.2,-109.4],[0,147.1,-173.9],[0,153.1,-258.8],[0,173,-260.1],[0,186.7,-191.6],[0,173.2,-62.2],[0,129.6,18.2],[0,113,106],[0,90.3,157.1],[0,62.7,212.9],[0,39.1,254.3],[0,7.7,280.1],[0,-19.9,277.2],[0,-46.7,250.4],[0,-68.3,219.7],[0,-74.5,208.5],[0,-85.3,182.6],[0,-95.7,158],[0,-112,122.7],[0,-119.8,78.9],[0,-121.9,58.1],[0,-128.4,32.3],[0,-139.8,0.4],[0,-179.8,-64.7],[0,-192.9,-136.5],[0,-190.5,-217.3],[0,-181.4,-257.4],[0,-165,-269.5],[0,-155.7,-256.5],[0,-154.3,-205.2],[0,-148,-173.5],[0,-117.8,-91.7]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[14,false,-3],[11,666,66.8,-4,[0,-4,198]]],[1,-1],[5,411,1093],[0,0,0,0,0,0,1,1.3,1.3,1]],[25,"pos",1,[[38,1000,-7],[15,-8]],[0,"e7DdRlaGxOk7/2g74CMQ2N",1],[0,-156.75,0,0,0,0,1,1,1,1]],[5,"jingyu",1,1,[[3,"Armature","newAnimation",0,"d0125139-093e-43d2-ae7c-195fdf94d716#2bf2d90c-6bfc-474e-9480-3f8f87d8ccb7",0.3,-9,[0],1,2]],[0,"22kY4OFDNG8oLzc8B6F80Z",1],[5,411.04,1093]]],0,[0,2,1,0,0,1,0,0,1,0,0,1,0,-1,3,0,-2,2,0,0,2,0,0,2,0,0,3,0,5,1,9],[0,0,0],[-1,3,4],[0,14,15]],[[[4,"bianjie"],[49,"bianjie",1,[[6,-2,[0],1]],[1,-1],[4,4294769916],[5,1376,1339],[0,0,0,0,0,1,6.123233995736766e-17,1,1,1],[1,0,0,180]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,50]],[[[4,"dianman"],[7,"dianman",1,[-4],[[2,777,-2,[[[0,-37.8,-215.4],[0,-28.8,-295.8],[0,-30.5,-340.3],[0,-35.4,-412.1],[0,-27.1,-434.6],[0,-16.6,-459.9],[0,2.4,-494.5],[0,30.2,-521.2],[0,47.8,-542.3],[0,51.4,-538.8],[0,41.3,-512],[0,32.8,-484.4],[0,50.5,-495.1],[0,71.9,-506.5],[0,59.9,-485.5],[0,52.9,-467.2],[0,47.8,-408.7],[0,51.4,-370],[0,36.2,-291.9],[0,35.4,-250.9],[0,50,-168.1],[0,53.5,-134.4],[0,58.6,34.1],[0,65.9,11.6],[0,75.9,-1],[0,84,-0.1],[0,90,6.7],[0,97.3,24.3],[0,98.3,43.6],[0,94,58.9],[0,84.6,69.9],[0,67,73.2],[0,57.3,77.9],[0,54.6,114.8],[0,50.6,149.8],[0,77.1,107.5],[0,100.2,75.2],[0,124.2,50.4],[0,128.76,51.5],[0,130.5,54.99],[0,128.4,60.9],[0,107.2,89.1],[0,94.4,114.6],[0,91.8,134.4],[0,93.3,141],[0,96.5,141.9],[0,102.3,139],[0,123.7,122.1],[0,156.5,101.2],[0,158.8,104.4],[0,156.8,110.9],[0,113.4,145.7],[0,93.3,167.8],[0,94.8,171.6],[0,120.7,166.5],[0,144.9,163.2],[0,147.6,166.5],[0,147.2,170.2],[0,121.9,177.6],[0,103.8,186],[0,97,189.3],[0,97.8,192.2],[0,104,195.2],[0,111.3,199.2],[0,115.3,203.9],[0,114.4,207],[0,89.3,202.3],[0,69.7,201.5],[0,65.8,204.3],[0,42.8,204.49],[0,42.44,215.39],[0,36.38,229.92],[0,25.4,238],[0,23.6,242.6],[0,44.5,231.6],[0,49.5,232.1],[0,48,237.2],[0,28.4,251],[0,29.3,256.9],[0,12.9,258.6],[0,8.8,262.7],[0,-6.3,262.3],[0,-15.2,257.8],[0,-25.8,257.7],[0,-28.3,253.9],[0,-24.8,250.4],[0,-41.2,240.1],[0,-47.9,234.6],[0,-46.1,230.6],[0,-26.8,240.3],[0,-29.5,235.7],[0,-40,222.7],[0,-44,213.7],[0,-44.1,202.3],[0,-69.7,202.6],[0,-70.4,197.8],[0,-100.2,201.7],[0,-119.8,203.9],[0,-100.4,185.9],[0,-120.8,175],[0,-149,167.4],[0,-147,158.7],[0,-92.5,166.7],[0,-94.7,159.5],[0,-154.7,108],[0,-160.4,102.3],[0,-152.8,100.2],[0,-100.7,136.7],[0,-92.7,136.3],[0,-95.6,114.2],[0,-103.9,92.4],[0,-132,52],[0,-127.2,48.3],[0,-113.9,54.7],[0,-52.9,143.4],[0,-58.3,76.2],[0,-85.2,64.8],[0,-89,47.3],[0,-86.6,21.3],[0,-75.9,3.3],[0,-67.7,0.7],[0,-54.4,19.6],[0,-50.5,-126.8]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[16,-3]],[1,-1],[5,323,836],[0,0,0,0,0,0,1,1.1,1.1,1]],[5,"dianman",1,1,[[3,"Armature","newAnimation",0,"05b00490-a337-41ac-a71a-8c62fd1af0f8#732b0ce1-08bb-4236-bd70-27a50d843ee2",0.5,-5,[0],1,2]],[0,"5537VjZFhA0o7JVSYTHzos",1],[5,323.16,826]]],0,[0,2,1,0,0,1,0,0,1,0,-1,2,0,0,2,0,5,1,5],[0,0,0],[-1,3,4],[0,20,21]],[[{"name":"图层 5","rect":[0,0,226,226],"offset":[0,0],"originalSize":[226,226],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[51]],[[{"name":"组 3 拷贝 6","rect":[0,0,1376,1339],"offset":[0,0],"originalSize":[1376,1339],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[52]],[[[9,"jinli_ske_tex","{\"width\":1024,\"SubTexture\":[{\"width\":78,\"y\":738,\"height\":181,\"name\":\"动画拆/5右翅\",\"x\":221},{\"width\":253,\"y\":1,\"height\":305,\"name\":\"动画拆/5右须\",\"x\":475},{\"width\":253,\"y\":1,\"height\":305,\"name\":\"8456/5右须\",\"x\":220},{\"width\":78,\"y\":738,\"height\":181,\"name\":\"动画拆/5左翅\",\"x\":141},{\"width\":252,\"y\":308,\"height\":305,\"name\":\"动画拆/5左须\",\"x\":220},{\"width\":252,\"y\":1,\"height\":305,\"name\":\"8456/5左须\",\"x\":730},{\"width\":217,\"y\":1,\"height\":735,\"name\":\"8456/锦鲤\",\"x\":1},{\"width\":138,\"y\":738,\"height\":105,\"name\":\"8456/图层_1\",\"x\":1}],\"height\":1024,\"name\":\"jinli_ske\",\"imagePath\":\"jinli_ske_tex.png\"}"]],0,0,[0],[7],[53]],[[{"name":"fishlizi1","rect":[868,44,34,33],"offset":[0,0],"originalSize":[34,33],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"fishlizi4","rect":[848,434,51,50],"offset":[0,0],"originalSize":[51,50],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[4,"jingyu"],[7,"jingyu",1,[-4],[[2,777,-2,[[[0,-100.3,-199.3],[0,-67.5,-346.6],[0,-37.4,-484.2],[0,-32.3,-549.9],[0,-97.9,-608.6],[0,-141.4,-706.4],[0,-174.1,-794.5],[0,-120.5,-783.2],[0,-56.3,-747.7],[0,-15.4,-718.3],[0,9.2,-642.6],[0,47,-729],[0,136.7,-784],[0,196.7,-797.4],[0,150.4,-675.9],[0,112.2,-600.8],[0,47.5,-548.8],[0,54.5,-455.8],[0,74.2,-361.5],[0,120.2,-109.4],[0,147.1,-173.9],[0,153.1,-258.8],[0,173,-260.1],[0,186.7,-191.6],[0,173.2,-62.2],[0,129.6,18.2],[0,113,106],[0,90.3,157.1],[0,62.7,212.9],[0,39.1,254.3],[0,7.7,280.1],[0,-19.9,277.2],[0,-46.7,250.4],[0,-68.3,219.7],[0,-74.5,208.5],[0,-85.3,182.6],[0,-95.7,158],[0,-112,122.7],[0,-119.8,78.9],[0,-121.9,58.1],[0,-128.4,32.3],[0,-139.8,0.4],[0,-179.8,-64.7],[0,-192.9,-136.5],[0,-190.5,-217.3],[0,-181.4,-257.4],[0,-165,-269.5],[0,-155.7,-256.5],[0,-154.3,-205.2],[0,-148,-173.5],[0,-117.8,-91.7]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[16,-3]],[22,-1,0],[5,411,1093],[0,0,0,0,0,0,1,1.3,1.3,1]],[5,"jingyu",1,1,[[3,"Armature","newAnimation",0,"d0125139-093e-43d2-ae7c-195fdf94d716#2bf2d90c-6bfc-474e-9480-3f8f87d8ccb7",0.3,-5,[0],1,2]],[23,"22kY4OFDNG8oLzc8B6F80Z",1,0],[5,411.04,1093]]],0,[0,2,1,0,0,1,0,0,1,0,-1,2,0,0,2,0,5,1,5],[0,0,0],[-1,3,4],[0,14,15]],[[{"name":"组 6","rect":[0,0,386,386],"offset":[0,0],"originalSize":[386,386],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[54]],[[{"name":"fishlizi10","rect":[789,250,95,95],"offset":[0,0],"originalSize":[95,95],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"singleColor","rect":[901,193,2,2],"offset":[0,0],"originalSize":[2,2],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[4,"shayu"],[7,"shayu",1,[-4],[[2,777,-2,[[[0,-93.2,-80.8],[0,-69.6,-205],[0,-48.5,-321.3],[0,-75.6,-354.1],[0,-94.1,-395.6],[0,-96.7,-417.2],[0,-90.2,-421.6],[0,-81.9,-417.9],[0,-64.1,-403.7],[0,-40,-397.6],[0,-34.1,-401.4],[0,-27.1,-445.9],[0,-28.6,-480.1],[0,-23.5,-544.6],[0,-9.8,-603.9],[0,0.4,-608.1],[0,13.2,-550.9],[0,19.1,-454.5],[0,27.2,-402.1],[0,37.3,-396.6],[0,53.9,-400.7],[0,72.9,-416.2],[0,89.4,-423],[0,90.8,-404.9],[0,70.8,-355.6],[0,42.4,-316.4],[0,83.3,-112.9],[0,89.5,-77],[0,132.7,-81],[0,168.3,-90.5],[0,201.4,-101.5],[0,229.9,-115.3],[0,243.9,-115.4],[0,237.4,-91.9],[0,201.8,-40.7],[0,148.2,11.9],[0,102.9,41.7],[0,103.2,94.9],[0,96.3,132.4],[0,82.7,164.3],[0,64.9,198.9],[0,39.3,237.4],[0,18.5,263.3],[0,4.4,274.1],[0,-3.7,275.8],[0,-20.3,262.4],[0,-46.5,229.8],[0,-64.3,201.4],[0,-88.9,155.5],[0,-99.7,127.6],[0,-106.5,86.8],[0,-104.4,42.6],[0,-159.2,7.5],[0,-215.1,-52.4],[0,-245.7,-103.9],[0,-246.2,-115.8],[0,-235.8,-117.3],[0,-197.8,-98.5],[0,-157.3,-85.6],[0,-108,-78.2],[0,-95.3,-76.9]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[16,-3]],[22,-1,0],[5,493,881],[0,0,0,0,0,0,1,1.2,1.2,1]],[5,"shayu",1,1,[[3,"Armature","newAnimation",0,"ac7595ee-1cbd-4243-953f-6156fd682320#a3d22edc-f6d2-4da1-8754-c16518ac4600",0.5,-5,[0],1,2]],[23,"709Y5VckFMeq1JNpamEkhv",1,0],[5,493,881]]],0,[0,2,1,0,0,1,0,0,1,0,-1,2,0,0,2,0,5,1,5],[0,0,0],[-1,3,4],[0,12,13]],[[[8,"haigui_ske_1_ske","{\"frameRate\":24,\"name\":\"haigui_ske_1\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-255.5,\"y\":-225.5,\"width\":524,\"height\":412.5},\"bone\":[{\"name\":\"root\"},{\"length\":200,\"name\":\"壳\",\"parent\":\"root\",\"transform\":{\"x\":4,\"y\":107,\"skX\":-90.5729,\"skY\":-90.5729}},{\"length\":98,\"name\":\"gui头\",\"parent\":\"壳\",\"transform\":{\"x\":214.0393,\"y\":-2.8599,\"skX\":-0.0117,\"skY\":-0.0117}},{\"length\":152,\"name\":\"左前\",\"parent\":\"壳\",\"transform\":{\"x\":184.8908,\"y\":-88.1556,\"skX\":-57.8196,\"skY\":-57.8196}},{\"length\":75,\"name\":\"左后\",\"parent\":\"壳\",\"transform\":{\"x\":18.8091,\"y\":-80.816,\"skX\":-167.2266,\"skY\":-167.2266}},{\"length\":72,\"name\":\"右后\",\"parent\":\"壳\",\"transform\":{\"x\":21.2089,\"y\":79.216,\"skX\":160.3871,\"skY\":160.3871}},{\"length\":143,\"name\":\"右前\",\"parent\":\"壳\",\"transform\":{\"x\":190.2805,\"y\":72.9064,\"skX\":61.3241,\"skY\":61.3241}}],\"slot\":[{\"name\":\"右前\",\"parent\":\"右前\"},{\"name\":\"右后\",\"parent\":\"右后\"},{\"name\":\"左前\",\"parent\":\"左前\"},{\"name\":\"左后\",\"parent\":\"左后\"},{\"name\":\"gui头\",\"parent\":\"gui头\"},{\"name\":\"壳\",\"parent\":\"壳\"}],\"skin\":[{\"slot\":[{\"name\":\"右前\",\"display\":[{\"name\":\"动画拆/右前\",\"transform\":{\"x\":88.63,\"y\":14.68,\"skX\":29.25,\"skY\":29.25}}]},{\"name\":\"右后\",\"display\":[{\"name\":\"动画拆/右后\",\"transform\":{\"x\":50.62,\"y\":-0.03,\"skX\":-69.81,\"skY\":-69.81}}]},{\"name\":\"左前\",\"display\":[{\"name\":\"动画拆/左前\",\"transform\":{\"x\":66.99,\"y\":-6.58,\"skX\":148.39,\"skY\":148.39}}]},{\"name\":\"左后\",\"display\":[{\"name\":\"动画拆/左后\",\"transform\":{\"x\":48.99,\"y\":-2.92,\"skX\":-102.2,\"skY\":-102.2}}]},{\"name\":\"gui头\",\"display\":[{\"name\":\"动画拆/gui头\",\"transform\":{\"x\":47.46,\"y\":3.98,\"skX\":90.58,\"skY\":90.58}}]},{\"name\":\"壳\",\"display\":[{\"name\":\"动画拆/壳\",\"transform\":{\"x\":95.5,\"y\":0.46,\"skX\":90.57,\"skY\":90.57}}]}]}],\"animation\":[{\"duration\":14,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"gui头\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":5.73,\"y\":1.01},{\"duration\":6,\"tweenEasing\":0,\"x\":-0.06,\"y\":-2.19},{\"duration\":0}]},{\"name\":\"左前\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":11.98,\"y\":9.08},{\"duration\":6,\"tweenEasing\":0,\"x\":-14.24,\"y\":-3.06},{\"duration\":0}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":12.6},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-37.11},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-47.83},{\"duration\":0}]},{\"name\":\"右前\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":4.39,\"y\":-2.14},{\"duration\":6,\"tweenEasing\":0,\"x\":-1.05,\"y\":-2.33},{\"duration\":0}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.49},{\"duration\":2,\"tweenEasing\":0,\"rotate\":42.72},{\"duration\":4,\"tweenEasing\":0,\"rotate\":44.43},{\"duration\":0}]},{\"name\":\"左后\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":7.65,\"y\":0.08},{\"duration\":6,\"tweenEasing\":0,\"x\":-3.02,\"y\":6.69},{\"duration\":0}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":39.76},{\"duration\":6,\"tweenEasing\":0,\"rotate\":5.61},{\"duration\":0}]},{\"name\":\"右后\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":9.85,\"y\":-2.09},{\"duration\":6,\"tweenEasing\":0,\"x\":-2.13,\"y\":-5.48},{\"duration\":0}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-27.12},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-1.23},{\"duration\":0}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[{"name":"leaf1","rect":[3,655,287,256],"offset":[0,0],"originalSize":[287,256],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[4,"haigui"],[7,"haigui",1,[-4],[[2,777,-2,[[[0,23.5,-146.9],[0,73.8,-124.2],[0,109.2,-85.4],[0,121.8,-60.4],[0,130.8,-31.5],[0,130.5,4.4],[0,122.9,43.1],[0,113.8,69.5],[0,83.2,110.2],[0,68.9,122.4],[0,50.8,128.9],[0,35.7,124.7],[0,44.8,140.4],[0,52.1,160.3],[0,47.7,174.5],[0,39.8,192.7],[0,32.9,210.3],[0,12.1,225.3],[0,-6.1,223.8],[0,-15.8,217.6],[0,-23.8,211.8],[0,-28.6,203],[0,-36.6,185],[0,-43.4,174.9],[0,-44.4,161.6],[0,-39.4,146.4],[0,-30.2,133.8],[0,-27.2,124.4],[0,-50.7,127.6],[0,-66.3,116.6],[0,-77.54,108.13],[0,-109.5,64.7],[0,-113.8,55],[0,-121,32.1],[0,-124.7,9],[0,-123.8,-44.8],[0,-99.4,-94.3],[0,-58.4,-130.5],[0,-52.1,-133.1],[0,0.3,-152.6]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[16,-3]],[1,-1],[5,524,412.5],[0,0,0,0,0,0,1,0.5,0.5,1]],[5,"haiguii",1,1,[[3,"Armature","newAnimation",0,"4b072041-8821-4e0c-a49d-37ad2874ceb3#d5f06198-e739-42dd-a521-4a6189c87e2b",0.6,-5,[0],1,2]],[0,"f8pab67/RPC78dmZsQ5uzv",1],[5,524,412.5]]],0,[0,2,1,0,0,1,0,0,1,0,-1,2,0,0,2,0,5,1,5],[0,0,0],[-1,3,4],[0,33,22]],[[[4,"bowen2"],[32,"New Sprite",187,1,[[18,0,-2,[0],1]],[1,-1],[5,50,50],[0,0,0,0,0,0,1,1.2,0.8,1]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,34]],[[[8,"jinli_ske_ske","{\"frameRate\":24,\"name\":\"jinli_ske\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-267.47,\"y\":-251.52,\"width\":543.51,\"height\":871.77},\"bone\":[{\"name\":\"root\"},{\"length\":69,\"name\":\"5左翅\",\"parent\":\"root\",\"transform\":{\"x\":-63.3,\"y\":-104.45,\"skX\":126.0603,\"skY\":126.0603}},{\"length\":68,\"name\":\"5右翅\",\"parent\":\"root\",\"transform\":{\"x\":72.15,\"y\":-100.65,\"skX\":62.0205,\"skY\":62.0205}},{\"length\":51,\"name\":\"图层_1\",\"parent\":\"root\",\"transform\":{\"x\":0.7,\"y\":-187.55,\"skX\":-89.1591,\"skY\":-89.1591}},{\"length\":65,\"name\":\"5左翅1\",\"parent\":\"5左翅\",\"transform\":{\"x\":77.3207,\"y\":-3.7247,\"skX\":-19.1655,\"skY\":-19.1655}},{\"length\":61,\"name\":\"5右翅1\",\"parent\":\"5右翅\",\"transform\":{\"x\":77.8715,\"y\":0.4912,\"skX\":10.6753,\"skY\":10.6753}},{\"length\":51,\"name\":\"锦鲤\",\"parent\":\"图层_1\",\"transform\":{\"x\":-48.9373,\"y\":-2.1821,\"skX\":0.7845,\"skY\":0.7845}},{\"length\":49,\"name\":\"5右须\",\"parent\":\"图层_1\",\"transform\":{\"x\":36.1201,\"y\":35.1736,\"skX\":124.2268,\"skY\":124.2268}},{\"length\":41,\"name\":\"5左须\",\"parent\":\"图层_1\",\"transform\":{\"x\":39.3987,\"y\":-27.6312,\"skX\":-123.3174,\"skY\":-123.3174}},{\"length\":42,\"name\":\"5左须1\",\"parent\":\"5左须\",\"transform\":{\"x\":47.9509,\"y\":-2.6109,\"skX\":-11.5234,\"skY\":-11.5234}},{\"length\":54,\"name\":\"5右须1\",\"parent\":\"5右须\",\"transform\":{\"x\":61.2536,\"y\":2.7577,\"skX\":10.713,\"skY\":10.713}},{\"length\":71,\"name\":\"锦鲤1\",\"parent\":\"锦鲤\",\"transform\":{\"x\":-24.79,\"y\":0.7034,\"skX\":177.2137,\"skY\":177.2137}},{\"length\":39,\"name\":\"5左须2\",\"parent\":\"5左须1\",\"transform\":{\"x\":51.4471,\"y\":-0.1555,\"skX\":-3.2007,\"skY\":-3.2007}},{\"length\":96,\"name\":\"锦鲤2\",\"parent\":\"锦鲤1\",\"transform\":{\"x\":94.9055,\"y\":-1.7774,\"skX\":2.0529,\"skY\":2.0529}},{\"length\":58,\"name\":\"5右须2\",\"parent\":\"5右须1\",\"transform\":{\"x\":61.9125,\"y\":-0.0305,\"skX\":4.3572,\"skY\":4.3572}},{\"length\":39,\"name\":\"5左须3\",\"parent\":\"5左须2\",\"transform\":{\"x\":44.8178,\"y\":0.2716,\"skX\":-5.915,\"skY\":-5.915}},{\"length\":52,\"name\":\"5右须3\",\"parent\":\"5右须2\",\"transform\":{\"x\":68.4939,\"y\":-0.5854,\"skX\":4.5821,\"skY\":4.5821}},{\"length\":83,\"name\":\"锦鲤3\",\"parent\":\"锦鲤2\",\"transform\":{\"x\":126.4586,\"y\":-1.2186,\"skX\":-1.4038,\"skY\":-1.4038}},{\"length\":85,\"name\":\"锦鲤4\",\"parent\":\"锦鲤3\",\"transform\":{\"x\":125.7106,\"y\":0.7476,\"skX\":-5.8357,\"skY\":-5.8357}},{\"length\":38,\"name\":\"5左须4\",\"parent\":\"5左须3\",\"transform\":{\"x\":48.4303,\"y\":1.2278,\"skX\":-1.8377,\"skY\":-1.8377}},{\"length\":48,\"name\":\"5右须4\",\"parent\":\"5右须3\",\"transform\":{\"x\":61.6335,\"y\":-0.3702,\"skX\":4.0037,\"skY\":4.0037}},{\"length\":74,\"name\":\"锦鲤5\",\"parent\":\"锦鲤4\",\"transform\":{\"x\":108.9848,\"y\":-42.2095,\"skX\":-23.4543,\"skY\":-23.4543}},{\"length\":45,\"name\":\"5右须5\",\"parent\":\"5右须4\",\"transform\":{\"x\":57.8082,\"y\":-0.6879,\"skX\":2.6354,\"skY\":2.6354}},{\"length\":44,\"name\":\"5左须5\",\"parent\":\"5左须4\",\"transform\":{\"x\":46.1356,\"y\":0.5581,\"skX\":-3.9736,\"skY\":-3.9736}},{\"length\":79,\"name\":\"锦鲤6\",\"parent\":\"锦鲤4\",\"transform\":{\"x\":108.3912,\"y\":22.3708,\"skX\":10.5176,\"skY\":10.5176}},{\"length\":47,\"name\":\"锦鲤8\",\"parent\":\"锦鲤5\",\"transform\":{\"x\":89.0038,\"y\":0.5883,\"skX\":11.3669,\"skY\":11.3669}},{\"length\":48,\"name\":\"5左须6\",\"parent\":\"5左须5\",\"transform\":{\"x\":56.0776,\"y\":3.1601,\"skX\":-3.6831,\"skY\":-3.6831}},{\"length\":48,\"name\":\"锦鲤7\",\"parent\":\"锦鲤6\",\"transform\":{\"x\":99.0804,\"y\":1.274,\"skX\":-3.1976,\"skY\":-3.1976}}],\"slot\":[{\"name\":\"5右翅\",\"parent\":\"5右翅1\"},{\"displayIndex\":1,\"name\":\"5右须\",\"parent\":\"5右须5\"},{\"name\":\"5左翅\",\"parent\":\"5左翅1\"},{\"displayIndex\":1,\"name\":\"5左须\",\"parent\":\"5左须6\"},{\"name\":\"锦鲤\",\"parent\":\"锦鲤8\"},{\"name\":\"图层_1\",\"parent\":\"图层_1\"}],\"skin\":[{\"slot\":[{\"name\":\"5左翅\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/5左翅\",\"width\":78,\"height\":181,\"vertices\":[-47.98,-122.69,-125.98,58.31,-122.9,51,-116.95,41.2,-110,31.4,-101.15,19.45,-95.9,8.5,-90.4,-6.6,-96.05,19.65,-96.35,35.25,-90.15,25.25,-85.7,16.8,-97.65,26.35,-79,2.2,-70.65,-12.8,-123.7,39.3,-122.8,25.95,-120.45,12.05,-119,-4.05,-117,-20.3,-116.45,-34.1,-112.3,-51.6,-106.85,-60.8,-102.9,-70.9,-96.75,-79.4,-90.25,-87.7,-81.9,-97.65,-70.7,-108.7],\"uvs\":[1,0,0,1,0.03948,0.95962,0.11576,0.90548,0.20487,0.85133,0.31833,0.78531,0.38564,0.72481,0.45615,0.64139,0.38371,0.78642,0.37987,0.8726,0.45935,0.81736,0.5164,0.77067,0.3632,0.82343,0.6023,0.69001,0.70935,0.60713,0.02922,0.89498,0.04076,0.82122,0.07089,0.74443,0.08948,0.65548,0.11512,0.5657,0.12217,0.48945,0.17538,0.39277,0.24525,0.34194,0.29589,0.28614,0.37474,0.23918,0.45807,0.19332,0.56512,0.13835,0.70871,0.0773],\"triangles\":[24,23,14,23,22,14,25,24,14,13,11,14,26,25,14,27,26,14,27,14,0,2,1,9,22,21,14,20,7,14,21,20,14,7,13,14,3,2,9,20,19,7,6,11,13,7,6,13,8,10,11,6,8,11,8,12,10,12,9,10,18,6,7,19,18,7,12,4,9,4,3,9,5,12,8,17,5,6,18,17,6,5,8,6,5,4,12,21,22,23,17,4,5,17,16,4,16,15,3,16,3,4,16,18,20,15,2,3,20,18,19,16,17,18,15,1,2,1,15,16],\"weights\":[2,1,0.947252,4,0.052748,2,1,0.088929,4,0.911071,2,1,0.062584,4,0.937416,2,1,0.028821,4,0.971179,2,1,0.013003,4,0.986997,2,1,0.043236,4,0.956764,2,1,0.082764,4,0.917236,2,1,0.166802,4,0.833198,2,1,0.076153,4,0.923847,2,1,0.071965,4,0.928035,2,1,0.114654,4,0.885346,2,1,0.160733,4,0.839267,2,1,0.063853,4,0.936147,2,1,0.260113,4,0.739887,2,1,0.392365,4,0.607635,2,1,0.02774,4,0.97226,2,1,0.005691,4,0.994309,2,1,0.010981,4,0.989019,2,1,0.035465,4,0.964535,2,1,0.107565,4,0.892435,2,1,0.307651,4,0.692349,2,1,0.652696,4,0.347304,2,1,0.769967,4,0.230033,2,1,0.829332,4,0.170668,2,1,0.893353,4,0.106647,2,1,0.934826,4,0.065174,2,1,0.965622,4,0.034378,2,1,0.988162,4,0.011838],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[1,-0.539771,0.841812,-0.841812,-0.539771,-63.3,-104.45,4,-0.233489,0.972359,-0.972359,-0.233489,-101.9,-37.35],\"edges\":[1,16,16,20,20,21,21,23,23,24,24,25,25,26,26,27,27,0,0,14,14,11,11,10,10,9,9,1],\"userEdges\":[]}]},{\"name\":\"5左须\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/5左须\",\"width\":252,\"height\":305,\"vertices\":[-11.67,-238.12,-22.25,-233.5,-16.8,-235.7,-31.4,-228.5,-40.7,-222.95,-47.5,-218.25,-54.9,-213.35,-64.95,-204.6,-73.3,-197.7,-81.4,-189.25,-88.05,-183.2,-95.05,-175.5,-102.9,-168.1,-110.75,-159.4,-116.65,-152.85,-124.15,-144.5,-130.3,-136.9,-136.8,-129.4,-142.5,-121.75,-149.9,-112.5,-156.8,-104.35,-161.3,-98,-167.7,-90.05,-173.15,-82.65,-178.15,-75.15,-182.6,-69.7,-186.9,-62.6,-191.65,-56.2,-196.1,-48.6,-200,-43.45,-203.35,-39.05,-206.8,-32.2,-210.15,-27.4,-213.15,-22.7,-217,-16.85,-219.2,-12.65,-222.5,-7.2,-225.75,-1.8,-228.8,3.4,-232.55,10.25,-236.05,16,-240.9,24.55,-244.85,32.25,-251.85,46.35,-248.15,39.85,-251.5,49.3,-248,47.3,-245.6,41.35,-242.05,34.35,-238.45,26.6,-234.6,20.55,-229.8,12.25,-226.25,5.85,-220.55,-2.6,-216.25,-8.35,-209.35,-18.4,-205.1,-24.8,-199.2,-35,-192.95,-42.25,-185.65,-52.15,-179.5,-60.7,-174.5,-67.4,-166.25,-77.2,-161.05,-86.5,-157.5,-89.9,-152,-96.8,-144.4,-104.95,-136.3,-114.45,-128.2,-124.4,-120.7,-133.9,-113.55,-141.15,-105.15,-151.6,-95.7,-161.3,-85.6,-170.9,-74.8,-182.05,-66.05,-192.5,-58.6,-199.55,-51.6,-205.5,-43.2,-210.05,-33.9,-215,-19.37,-228.82],\"uvs\":[1,0,0.95803,0.01515,0.97966,0.00794,0.92172,0.03154,0.88481,0.04974,0.85783,0.06515,0.82847,0.08122,0.78858,0.10991,0.75545,0.13253,0.72331,0.16023,0.69692,0.18007,0.66914,0.20532,0.63799,0.22958,0.60684,0.2581,0.58343,0.27958,0.55366,0.30695,0.52926,0.33187,0.50347,0.35646,0.48085,0.38154,0.45148,0.41187,0.4241,0.43859,0.40624,0.45941,0.38085,0.48548,0.35922,0.50974,0.33938,0.53433,0.32172,0.5522,0.30466,0.57548,0.28581,0.59646,0.26815,0.62138,0.25267,0.63827,0.23938,0.65269,0.22569,0.67515,0.21239,0.69089,0.20049,0.7063,0.18521,0.72548,0.17648,0.73925,0.16339,0.75712,0.15049,0.77482,0.13839,0.79187,0.12351,0.81433,0.10962,0.83318,0.09037,0.86122,0.0747,0.88646,0.04692,0.93269,0.0616,0.91138,0.04831,0.94236,0.0622,0.93581,0.07172,0.9163,0.08581,0.89335,0.10009,0.86794,0.11537,0.8481,0.13442,0.82089,0.14851,0.79991,0.17112,0.7722,0.18819,0.75335,0.21557,0.7204,0.23243,0.69941,0.25585,0.66597,0.28065,0.6422,0.30962,0.60974,0.33402,0.58171,0.35386,0.55974,0.3866,0.52761,0.40724,0.49712,0.42132,0.48597,0.44315,0.46335,0.47331,0.43663,0.50545,0.40548,0.53759,0.37286,0.56735,0.34171,0.59573,0.31794,0.62906,0.28368,0.66656,0.25187,0.70664,0.2204,0.7495,0.18384,0.78422,0.14958,0.81378,0.12646,0.84156,0.10695,0.87489,0.09204,0.9118,0.07581,0.96943,0.0305],\"triangles\":[48,46,50,38,37,34,51,50,54,50,46,54,53,51,54,54,46,55,58,56,59,56,55,59,55,46,59,30,27,25,61,60,62,60,59,62,59,46,62,65,64,66,64,62,66,66,62,67,68,67,70,69,68,70,71,70,72,72,70,73,8,7,6,76,75,78,75,74,78,77,76,78,6,5,4,67,62,79,62,46,79,73,70,79,70,67,79,78,74,79,74,73,79,79,46,80,1,2,0,2,80,0,3,79,80,1,80,2,1,3,80,4,79,3,4,78,79,52,51,53,10,9,8,5,78,4,5,6,78,6,77,78,6,7,77,7,76,77,12,11,10,7,75,76,17,16,15,8,75,7,20,19,17,9,74,8,8,74,75,9,10,74,10,73,74,19,18,17,10,11,73,11,72,73,47,46,48,12,13,72,13,71,72,11,12,72,57,56,58,13,14,71,14,70,71,14,15,70,15,69,70,63,62,64,15,16,69,16,68,69,16,17,68,49,48,50,18,67,68,17,18,68,22,21,20,18,19,67,19,66,67,19,20,66,20,65,66,21,64,65,20,21,65,22,63,64,21,22,64,23,62,63,22,23,63,34,33,30,25,24,23,23,24,62,24,61,62,37,36,34,30,29,27,27,26,25,33,32,30,24,25,61,25,60,61,25,26,60,26,59,60,26,27,59,29,28,27,27,28,59,28,58,59,28,29,58,29,57,58,31,56,57,29,30,57,30,31,57,32,31,30,31,32,56,33,55,56,32,33,56,34,54,55,36,35,34,33,34,55,34,35,54,40,39,38,35,36,54,36,53,54,37,52,53,36,37,53,37,38,52,38,39,52,39,51,52,40,50,51,39,40,51,40,41,50,41,49,50,41,42,49,42,48,49,43,44,42,44,47,48,42,44,48,44,43,46,44,46,47,43,45,46],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[8,-0.843612,0.536954,-0.536954,-0.843612,-26.35,-227.35,9,-0.719341,0.694657,-0.694657,-0.719341,-65.4,-199.4,12,-0.679433,0.733737,-0.733737,-0.679433,-102.3,-163.55,15,-0.600202,0.799848,-0.799848,-0.600202,-132.95,-130.85,19,-0.574243,0.818685,-0.818685,-0.574243,-163,-92.85,23,-0.516131,0.85651,-0.85651,-0.516131,-189.95,-55.4,26,-0.460044,0.887896,-0.887896,-0.460044,-221.6,-9],\"edges\":[41,40,40,38,38,34,34,30,30,25,25,23,23,22,22,20,20,17,17,15,15,14,14,13,13,12,12,10,10,8,8,6,6,4,4,3,3,1,1,0,43,42,42,41,46,45,45,43,0,80,80,46],\"userEdges\":[]},{\"type\":\"mesh\",\"name\":\"8456/5左须\",\"width\":252,\"height\":305,\"vertices\":[-267.47,-235.98,-15.47,-235.98,-267.47,69.02,-15.47,69.02,-25.4,-231,-43.7,-221.1,-57.45,-211.95,-67.35,-203.5,-76.55,-195.95,-84.45,-188.6,-91.5,-181.75,-96.05,-177.15,-103.45,-169.85,-110.1,-163.25,-118.5,-154,-123.5,-147.9,-130.65,-139.4,-136.2,-132.15,-142.5,-124.95,-147.7,-119,-153.6,-112,-157.85,-107,-162.6,-100.1,-167.65,-94.3,-171.55,-88.55,-176.2,-82.7,-181.65,-74.85,-186.55,-67.85,-191.65,-60.6,-196.3,-54.35,-200.7,-47.1,-204.55,-41.3,-208.7,-35.05,-213.45,-27.05,-217.65,-21.95,-221.65,-15.5,-225.35,-8.65,-228.8,-2.1,-232.55,4.15,-235.9,10,-240.9,18.95,-245.1,26.95,-248.9,33.75,-252.25,39.65,-255.8,47.15,-255.95,50.8,-252,48.25,-248.6,41.1,-243.65,33.1,-238.75,25.3,-232.95,13.8,-228.3,6.15,-222.25,-3.55,-212.1,-17.15,-204.05,-30.8,-192.25,-46.1,-179.25,-63.5,-169.8,-75.35,-161.15,-86.35,-151.5,-98.55,-138.5,-112.65,-127,-127.95,-115.75,-139.9,-104.25,-152.65,-90.55,-166.55,-76.55,-181.2,-67.4,-190.35,-58.95,-198.35,-51.45,-204.65,-40.85,-213.75,-30.75,-218.9,-20.25,-225.5],\"uvs\":[0,0,1,0,0,1,1,1,0.9606,0.01633,0.88798,0.04879,0.83342,0.07879,0.79413,0.10649,0.75762,0.13125,0.72627,0.15535,0.6983,0.1778,0.68024,0.19289,0.65088,0.21682,0.62449,0.23846,0.59116,0.26879,0.57131,0.28879,0.54294,0.31666,0.52092,0.34043,0.49592,0.36403,0.47528,0.38354,0.45187,0.40649,0.435,0.42289,0.41616,0.44551,0.39612,0.46453,0.38064,0.48338,0.36219,0.50256,0.34056,0.5283,0.32112,0.55125,0.30088,0.57502,0.28243,0.59551,0.26497,0.61928,0.24969,0.6383,0.23322,0.65879,0.21437,0.68502,0.1977,0.70174,0.18183,0.72289,0.16715,0.74535,0.15346,0.76682,0.13858,0.78731,0.12528,0.80649,0.10544,0.83584,0.08877,0.86207,0.0737,0.88436,0.0604,0.90371,0.04631,0.9283,0.04572,0.94026,0.06139,0.9319,0.07489,0.90846,0.09453,0.88223,0.11397,0.85666,0.13699,0.81895,0.15544,0.79387,0.17945,0.76207,0.21973,0.71748,0.25167,0.67272,0.2985,0.62256,0.35008,0.56551,0.38758,0.52666,0.42191,0.49059,0.4602,0.45059,0.51179,0.40436,0.55743,0.3542,0.60207,0.31502,0.6477,0.27321,0.70207,0.22764,0.75762,0.17961,0.79393,0.14961,0.82747,0.12338,0.85723,0.10272,0.89929,0.07289,0.93937,0.056,0.98104,0.03436],\"triangles\":[0,7,6,0,6,5,69,68,70,0,5,4,0,4,1,4,71,1,49,48,3,48,46,3,51,50,3,50,49,3,53,52,3,52,51,3,55,54,3,54,53,3,57,56,3,56,55,3,58,57,3,60,59,3,59,58,3,62,61,3,61,60,3,64,63,3,63,62,3,68,67,3,67,66,3,70,68,3,66,65,3,71,70,3,65,64,3,46,2,3,1,71,3,4,70,71,0,8,7,5,70,4,5,69,70,5,6,69,6,68,69,0,9,8,6,67,68,0,10,9,7,67,6,7,66,67,0,11,10,8,65,66,8,66,7,0,12,11,9,10,65,10,64,65,9,65,8,0,13,12,11,64,10,11,12,64,12,63,64,0,14,13,12,13,63,47,46,48,0,15,14,13,14,63,14,62,63,0,16,15,14,15,62,15,16,62,16,61,62,0,17,16,0,18,17,0,19,18,17,18,61,18,60,61,16,17,61,0,21,20,0,20,19,20,59,60,18,19,60,19,20,60,23,22,21,0,23,21,20,21,59,21,22,59,22,58,59,0,25,24,0,24,23,22,23,58,0,26,25,23,24,58,24,57,58,0,27,26,24,25,57,0,28,27,25,26,57,26,56,57,0,29,28,28,55,56,26,27,56,27,28,56,0,31,30,0,30,29,29,55,28,0,32,31,31,54,55,0,34,32,30,31,55,29,30,55,0,35,34,33,53,54,31,32,54,0,36,35,34,33,32,32,33,54,0,38,36,45,2,46,0,39,38,35,52,53,33,34,53,0,40,39,38,37,36,35,36,52,34,35,53,0,42,41,0,41,40,0,43,42,36,37,52,37,51,52,38,51,37,0,2,44,0,44,43,40,49,50,39,50,51,38,39,51,39,40,50,40,41,49,41,48,49,41,42,48,42,47,48,43,44,46,42,43,47,43,46,47,44,45,46,2,45,44],\"weights\":[4,15,0.264605,12,0.261978,19,0.245627,9,0.22779,4,8,0.931814,9,0.046902,12,0.014054,15,0.00723,3,26,0.80075,23,0.138375,19,0.060874,1,23,1,4,8,0.992563,9,0.005434,12,0.001349,15,0.000654,4,8,0.979624,9,0.017008,12,0.002374,15,0.000994,4,8,0.937591,9,0.058399,12,0.00296,15,0.00105,4,8,0.314636,9,0.678937,12,0.004967,15,0.001461,4,8,0.075677,9,0.906279,12,0.01466,15,0.003385,4,8,0.033423,9,0.932261,12,0.029422,15,0.004895,4,8,0.018136,9,0.915245,12,0.060346,15,0.006273,4,8,0.012022,9,0.872236,12,0.108789,15,0.006953,4,8,0.007883,12,0.589398,9,0.39261,15,0.010109,4,8,0.006356,12,0.873757,9,0.102954,15,0.016933,4,12,0.924864,15,0.036186,9,0.034239,19,0.004712,4,12,0.919103,15,0.058597,9,0.017449,19,0.00485,4,12,0.792983,15,0.195227,9,0.007027,19,0.004763,4,15,0.839368,12,0.153299,19,0.004237,9,0.003096,4,15,0.931158,12,0.054386,19,0.010776,9,0.00368,4,15,0.939897,12,0.033759,19,0.022478,9,0.003866,4,15,0.918111,19,0.054616,12,0.021781,23,0.005493,4,15,0.857497,19,0.118655,12,0.016563,23,0.007285,4,15,0.5638,19,0.418789,12,0.009371,23,0.00804,4,19,0.865562,15,0.119276,23,0.009267,12,0.005895,4,19,0.928167,15,0.053793,23,0.013253,12,0.004787,4,19,0.936436,15,0.034064,23,0.024835,12,0.004664,4,19,0.927751,23,0.050464,15,0.017981,26,0.003804,4,19,0.859601,23,0.125121,15,0.010836,26,0.004442,4,23,0.608411,19,0.379902,15,0.006572,26,0.005116,4,23,0.874031,19,0.112452,26,0.007772,15,0.005745,4,23,0.93464,19,0.048571,26,0.011998,15,0.004792,4,23,0.944182,19,0.031971,26,0.019342,15,0.004505,4,23,0.938906,26,0.034302,19,0.0226,15,0.004192,4,23,0.912851,26,0.07029,19,0.013628,15,0.003232,4,23,0.801502,26,0.18251,19,0.012572,15,0.003415,4,26,0.662829,23,0.326689,19,0.008014,15,0.002468,4,26,0.957579,23,0.039529,19,0.002155,15,0.000737,4,26,0.977395,23,0.020076,19,0.001844,15,0.000686,4,26,0.982037,23,0.015163,19,0.002001,15,0.000799,4,26,0.985383,23,0.011788,19,0.001988,15,0.00084,4,26,0.988823,23,0.00845,19,0.001874,15,0.000853,4,26,0.991518,23,0.006092,19,0.001614,15,0.000777,4,26,0.990129,23,0.006808,19,0.00204,15,0.001023,4,26,0.967267,23,0.021858,19,0.007162,15,0.003713,4,26,0.922176,23,0.050138,19,0.018009,15,0.009677,4,26,0.903594,23,0.061314,19,0.022721,15,0.01237,4,26,0.930924,23,0.044702,19,0.015875,15,0.0085,4,26,0.975443,23,0.016457,19,0.005339,15,0.002761,4,26,0.999982,23,0.000012,19,0.000004,15,0.000002,4,26,0.999837,23,0.00012,19,0.000029,15,0.000014,4,26,0.999849,23,0.000121,19,0.000021,15,0.000009,4,26,0.998498,23,0.001278,19,0.00016,15,0.000064,4,26,0.9864,23,0.012561,19,0.000768,15,0.000271,4,23,0.995696,26,0.004011,19,0.00023,15,0.000063,4,23,0.999165,26,0.000491,19,0.00029,15,0.000055,4,23,0.968783,19,0.025883,26,0.003467,15,0.001867,4,19,0.926332,23,0.06484,15,0.006377,26,0.002451,4,19,0.947983,15,0.024688,23,0.023688,12,0.003641,4,19,0.861219,15,0.118554,23,0.013267,12,0.00696,4,15,0.874826,19,0.109908,12,0.009845,23,0.005421,4,15,0.891489,12,0.06346,19,0.037778,9,0.007273,4,15,0.533194,12,0.449139,19,0.009241,9,0.008426,4,12,0.877647,15,0.089307,9,0.025459,19,0.007587,4,8,0.006802,12,0.88632,9,0.082517,15,0.024361,4,8,0.012388,9,0.777434,12,0.200577,15,0.009601,4,8,0.032367,9,0.935515,12,0.02744,15,0.004678,4,8,0.088282,9,0.896577,12,0.012142,15,0.003,4,8,0.443003,9,0.547108,12,0.007561,15,0.002329,4,8,0.865787,9,0.125392,12,0.006517,15,0.002304,4,8,0.980528,9,0.016486,12,0.002117,15,0.000868,4,8,0.981941,9,0.014108,12,0.002726,15,0.001226,4,8,0.979758,9,0.014637,12,0.003766,15,0.001838],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[8,-0.843612,0.536954,-0.536954,-0.843612,-26.349999,-227.349951,9,-0.719341,0.694657,-0.694657,-0.719341,-65.400009,-199.399955,12,-0.679434,0.733737,-0.733737,-0.679434,-102.299999,-163.550003,15,-0.600202,0.799848,-0.799848,-0.600202,-132.950002,-130.85006,19,-0.574244,0.818684,-0.818684,-0.574244,-163.000041,-92.850105,23,-0.516131,0.856509,-0.856509,-0.516131,-189.950036,-55.400101,26,-0.460045,0.887896,-0.887896,-0.460045,-221.600094,-9.00013],\"edges\":[0,1,1,3,3,2,2,0],\"userEdges\":[]}]},{\"name\":\"图层_1\",\"display\":[{\"name\":\"8456/图层_1\",\"transform\":{\"x\":11.49,\"y\":0.94,\"skX\":89.16,\"skY\":89.16}}]},{\"name\":\"锦鲤\",\"display\":[{\"type\":\"mesh\",\"name\":\"8456/锦鲤\",\"width\":217,\"height\":735,\"vertices\":[-90.25,-214.16,126.75,-214.16,-90.25,520.84,126.75,520.84,-67.4,-156.75,-78.45,-112.8,-87,-68.8,-90.25,-17.75,-90.25,34.45,-82.15,86.1,-69.4,133.2,-57.45,165,-44.1,195.9,-40.75,216.65,-41,240.45,-48.95,271.4,-54.6,296.65,-55.75,319.65,-56.05,342.6,-55.45,381.45,-48.05,418.65,-38.7,450.15,-29.95,475.1,-20.3,501.75,-8.1,520.84,-2.4,520.84,-2.4,500.65,-0.15,478.8,8.65,457.25,22.25,437.95,30.8,420.05,33.35,400.2,46.1,412.1,61.15,423.75,78.7,438.2,93.5,453.55,104.85,472.25,111.95,500.05,122.45,481.6,126.75,446.7,126.75,409,123,381.15,113.05,355.05,100.3,331,83.25,303.45,67.95,279,55.5,257.15,40.45,216.6,41.25,209.85,51.5,184.6,65.1,149.7,75.9,115.6,85.55,82.15,90.35,50.1,94.05,10.65,93.5,-26.25,90.35,-63.4,85.5,-93.2,77.9,-125.55,70.25,-151.65,53.75,-176.65,-50.1,-181.75],\"uvs\":[0,0,1,0,0,1,1,1,0.1053,0.07811,0.05438,0.1379,0.01498,0.19777,0,0.26722,0,0.33824,0.03733,0.40852,0.09609,0.4726,0.15115,0.51586,0.21267,0.5579,0.22811,0.58613,0.22696,0.61852,0.19032,0.66062,0.16429,0.69498,0.15899,0.72627,0.15761,0.75749,0.16037,0.81035,0.19447,0.86096,0.23756,0.90382,0.27788,0.93777,0.32235,0.97403,0.37857,1,0.40484,1,0.40484,0.97253,0.41521,0.9428,0.45576,0.91348,0.51844,0.88722,0.55784,0.86287,0.56959,0.83586,0.62834,0.85205,0.6977,0.8679,0.77857,0.88756,0.84678,0.90845,0.89908,0.93389,0.9318,0.97171,0.98019,0.94661,1,0.89913,1,0.84783,0.98272,0.80994,0.93687,0.77443,0.87811,0.74171,0.79954,0.70423,0.72903,0.67096,0.67166,0.64124,0.60231,0.58607,0.60599,0.57688,0.65323,0.54253,0.7159,0.49505,0.76567,0.44865,0.81014,0.40314,0.83226,0.35954,0.84931,0.30586,0.84678,0.25566,0.83226,0.20511,0.80991,0.16457,0.77489,0.12056,0.73963,0.08505,0.6636,0.05103,0.18503,0.04409],\"triangles\":[0,61,60,49,48,46,48,47,46,50,49,45,49,46,45,50,45,44,50,44,43,51,50,43,52,51,43,52,43,42,52,42,41,53,52,41,54,53,41,41,33,40,33,34,40,34,35,40,36,38,39,40,35,39,35,36,39,0,60,1,60,59,1,59,58,1,58,57,1,57,56,1,56,55,1,54,41,1,55,54,1,41,40,1,37,25,3,38,37,3,39,38,3,42,32,41,32,33,41,36,37,38,43,31,42,31,32,42,36,26,37,26,25,37,28,27,35,35,27,36,27,26,36,34,28,35,44,31,43,29,28,34,56,7,55,8,53,54,7,8,54,55,7,54,6,7,56,9,52,53,8,9,53,57,6,56,45,17,44,17,31,44,9,51,52,58,5,57,5,6,57,17,18,31,9,10,51,33,29,34,59,4,58,4,5,58,16,17,45,10,50,51,61,4,60,46,16,45,60,4,59,15,16,46,10,11,50,30,29,33,11,49,50,32,30,33,11,12,49,47,14,46,14,15,46,12,48,49,18,19,31,31,30,32,12,13,48,48,13,47,13,14,47,20,30,31,19,20,31,20,29,30,21,28,29,20,21,29,22,27,28,21,22,28,24,25,26,23,24,26,23,26,27,22,23,27,23,2,24,22,2,23,21,2,22,20,2,21,12,11,13,11,15,13,13,15,14,11,10,16,19,2,20,11,16,15,0,4,61,9,17,16,10,9,16,18,2,19,9,2,17,17,2,18,0,5,4,8,2,9,0,6,5,0,7,6],\"weights\":[3,11,0.648287,13,0.248339,17,0.103374,3,11,0.581389,13,0.28856,17,0.130051,4,21,0.184808,18,0.170769,17,0.074717,24,0.569706,4,21,0.517784,18,0.147104,17,0.064565,24,0.270548,3,11,0.74705,13,0.191829,17,0.061121,3,11,0.671611,13,0.257104,17,0.071284,3,11,0.525885,13,0.374499,17,0.099616,3,13,0.430126,11,0.418849,17,0.151025,3,13,0.454955,17,0.276215,11,0.26883,4,13,0.405633,17,0.37817,11,0.119174,18,0.097022,4,17,0.478355,13,0.297016,18,0.158281,11,0.066347,4,17,0.543585,18,0.231935,13,0.169615,24,0.054864,4,17,0.544478,18,0.334193,13,0.071361,24,0.049968,4,18,0.491417,17,0.403152,13,0.047052,24,0.058379,4,18,0.595905,17,0.252069,21,0.058563,24,0.093463,4,18,0.514321,17,0.164852,21,0.099223,24,0.221604,4,18,0.40467,21,0.11541,17,0.109256,24,0.370665,4,18,0.3163,21,0.109741,17,0.069187,24,0.504772,4,18,0.256355,21,0.104548,17,0.048972,24,0.590125,4,18,0.159516,21,0.094492,17,0.033825,24,0.712167,4,18,0.069877,21,0.05619,17,0.017469,24,0.856465,4,21,0.061474,18,0.058379,17,0.016889,24,0.863258,4,21,0.114558,18,0.088142,17,0.028404,24,0.768896,4,21,0.183204,18,0.119532,17,0.042769,24,0.654496,4,21,0.232703,18,0.136124,17,0.051876,24,0.579298,4,21,0.242506,18,0.135995,17,0.051639,24,0.56986,4,21,0.211239,18,0.118099,17,0.041302,24,0.62936,4,21,0.167445,18,0.093222,17,0.029244,24,0.710089,4,21,0.136696,18,0.070772,17,0.019366,24,0.773167,4,21,0.187237,18,0.079559,17,0.018843,24,0.714362,4,21,0.300758,18,0.107723,17,0.021911,24,0.569609,4,21,0.387989,18,0.134328,17,0.021892,24,0.455791,4,21,0.553039,18,0.111142,17,0.022148,24,0.313672,4,21,0.722299,18,0.076394,17,0.018207,24,0.1831,4,21,0.783225,18,0.063515,17,0.018091,24,0.135169,4,21,0.73463,18,0.079975,17,0.026101,24,0.159293,4,21,0.654044,18,0.10447,17,0.038033,24,0.203453,4,21,0.558814,18,0.130931,17,0.052781,24,0.257474,4,21,0.627106,18,0.118134,17,0.046836,24,0.207924,4,21,0.763561,18,0.083523,17,0.030968,24,0.121948,4,21,0.874492,18,0.051128,17,0.017609,24,0.056772,4,21,0.845182,18,0.068863,17,0.02247,24,0.063485,4,21,0.770246,18,0.109806,17,0.03308,24,0.086868,4,21,0.703603,18,0.151344,17,0.042242,24,0.102811,4,21,0.611516,18,0.213575,17,0.059885,24,0.115024,4,21,0.389678,18,0.363225,17,0.111539,24,0.135558,4,18,0.49948,21,0.207795,17,0.179116,24,0.113609,4,18,0.487853,17,0.403634,21,0.060565,24,0.047948,4,17,0.469602,18,0.426596,21,0.056322,13,0.04748,4,17,0.556834,18,0.284938,13,0.098045,21,0.060183,4,17,0.521875,13,0.224228,18,0.19308,21,0.060817,4,17,0.444545,13,0.34555,18,0.129051,11,0.080855,4,13,0.399782,17,0.374908,11,0.127227,18,0.098082,4,13,0.41905,17,0.29932,11,0.199949,18,0.08168,3,13,0.452871,11,0.330456,17,0.216673,3,13,0.444201,11,0.412942,17,0.142857,3,11,0.482217,13,0.409299,17,0.108484,3,11,0.566028,13,0.34313,17,0.090842,3,11,0.671152,13,0.255848,17,0.073,3,11,0.718422,13,0.214917,17,0.06666,3,11,0.745624,13,0.191227,17,0.063149,3,11,0.759333,13,0.179864,17,0.060804],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[11,0.020261,0.999795,-0.999795,0.020261,-2.2,-113.85,13,-0.015566,0.999879,-0.999879,-0.015566,1.5,-19,17,0.008934,0.99996,-0.99996,0.008934,0.75,107.462278,18,0.110559,0.99387,-0.99387,0.110559,1.125443,233.174557,24,-0.072717,0.997353,-0.997353,-0.072717,-9.124557,343.374557,21,0.497002,0.867749,-0.867749,0.497002,55.125443,336.824557,27,0.084931,0.996387,-0.996387,0.084931,-17.6,442.1,25,0.316228,0.948683,-0.948683,0.316228,98.85,414.35],\"edges\":[0,1,7,0,2,8,8,7,24,2,3,25,25,24,39,3,1,40,40,39],\"userEdges\":[]}]},{\"name\":\"5右翅\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/5右翅\",\"width\":78,\"height\":181,\"vertices\":[58.98,-122.69,136.98,58.31,92.35,-3.2,96.5,12.65,102.55,25.5,108.2,34.95,109.05,20.45,107.7,7.8,104.65,-7,116.2,22.05,124.7,34.15,131.85,44.85,136.98,52.8,136.98,34.7,134.05,19.05,132.1,4.5,130.45,-11.4,129.65,-25.35,127.45,-47.05,121.4,-60.2,113.45,-72.55,102.75,-87.4,93.15,-98.9,83.8,-111.8,80.55,-46.15,64.45,-94.35],\"uvs\":[0,0,1,1,0.42779,0.66017,0.481,0.74774,0.55856,0.81874,0.631,0.87095,0.64189,0.79084,0.62459,0.72095,0.58548,0.63918,0.73356,0.79968,0.84254,0.86653,0.9342,0.92564,1,0.96957,1,0.86957,0.96241,0.7831,0.93741,0.70271,0.91625,0.61487,0.906,0.5378,0.87779,0.41791,0.80023,0.34526,0.6983,0.27702,0.56112,0.19498,0.43805,0.13144,0.31818,0.06017,0.27651,0.42288,0.0701,0.15658],\"triangles\":[2,25,3,23,22,21,17,16,15,12,11,1,11,5,1,18,17,13,15,14,13,17,15,13,14,10,13,10,11,13,11,12,13,15,9,14,9,10,14,8,7,16,16,7,15,7,9,15,10,5,11,24,8,18,8,16,17,18,8,17,19,24,18,9,5,10,7,6,9,20,24,19,24,25,2,6,4,5,6,5,9,24,2,8,21,24,20,8,2,7,7,3,6,3,4,6,2,3,7,25,24,21,22,25,21,23,25,22,0,25,23],\"weights\":[2,2,0.942048,5,0.057952,2,2,0.093302,5,0.906698,2,2,0.266872,5,0.733128,2,2,0.170641,5,0.829359,2,2,0.103306,5,0.896694,2,2,0.065451,5,0.934549,2,2,0.054691,5,0.945309,2,2,0.059973,5,0.940027,2,2,0.093138,5,0.906862,2,2,0.016962,5,0.983038,2,2,0.009885,5,0.990115,2,2,0.04305,5,0.95695,2,2,0.075341,5,0.924659,2,2,0.025663,5,0.974337,2,2,0.020057,5,0.979943,2,2,0.048713,5,0.951287,2,2,0.129352,5,0.870648,2,2,0.279504,5,0.720496,2,2,0.507002,5,0.492998,2,2,0.621765,5,0.378235,2,2,0.758101,5,0.241899,2,2,0.878773,5,0.121227,2,2,0.937972,5,0.062028,2,2,0.964289,5,0.035711,2,2,0.747932,5,0.252068,2,2,0.983991,5,0.016009],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[2,0.469155,0.883116,-0.883116,0.469155,72.15,-100.65,5,0.297444,0.954739,-0.954739,0.297444,108.25,-31.65],\"edges\":[12,1,13,12,1,5,5,4,4,3,3,25,25,0,0,23,23,21,21,20,20,19,19,18,18,13],\"userEdges\":[]}]},{\"name\":\"5右须\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/5右须\",\"width\":253,\"height\":305,\"path\":\"8456/5右须\",\"vertices\":[22.13,-232.64,275.13,72.36,33.95,-230.1,44.9,-222.85,54.15,-216.35,63.75,-209.55,74.5,-201.2,81.95,-194.55,91.95,-185.15,99.65,-178.15,106.1,-171.85,115.5,-162.7,122.15,-155.45,127.8,-148.9,137.15,-139,145.3,-129.85,151.05,-122.5,158.1,-114.2,164.3,-106.2,171.6,-96.2,178.25,-87.85,184.15,-79.25,191.6,-69.85,197.45,-61.25,204.5,-51.3,211.25,-40.95,216.2,-34.2,220.05,-27.15,223.9,-20.3,228.5,-14.05,232.15,-7.4,236.55,-0.25,240.95,7.95,244.55,14.5,247.45,20.1,250.3,25.5,253.1,30.95,255.95,35.9,259.5,41.8,262.75,47.5,264.8,52,264.25,54.85,261.45,53.75,259.25,50.45,256.45,44.5,253.9,39.05,251.5,34.35,248,29.1,244.5,22.1,240.2,15.6,236.95,10.55,232.7,3.25,228.5,-3.1,224.35,-9.7,221.3,-13.55,215.45,-22.8,210,-30.4,205.65,-35.65,203.15,-39.9,197.4,-48.5,193.7,-53.8,188.5,-60.55,186.9,-62.55,181.6,-69.75,175.9,-76.9,173.3,-81.05,165.05,-90.4,161.2,-95,158.15,-99.25,153.7,-104.3,149.4,-109.55,144.95,-114.45,139.85,-120.45,135.8,-125.5,130.7,-131.25,125.85,-136.15,120.05,-142.35,114.95,-148.5,109.4,-153.85,102.1,-160.9,95.95,-167.4,89.5,-174.65,83.45,-180.4,77.45,-186.55,72.55,-192.25,67.3,-196.4,63.35,-200.45,58.9,-203.9,54.4,-207.2,47.5,-211.75,37.6,-216.7,30.05,-220.6,25.65,-224.7],\"uvs\":[0,0,1,1,0.04673,0.00833,0.09001,0.0321,0.12657,0.05341,0.16452,0.07571,0.20701,0.10308,0.23645,0.12489,0.27598,0.15571,0.30642,0.17866,0.33191,0.19931,0.36906,0.22931,0.39535,0.25308,0.41768,0.27456,0.45464,0.30702,0.48685,0.33702,0.50958,0.36112,0.53744,0.38833,0.56195,0.41456,0.5908,0.44735,0.61709,0.47472,0.64041,0.50292,0.66985,0.53374,0.69298,0.56194,0.72084,0.59456,0.74752,0.62849,0.76709,0.65063,0.7823,0.67374,0.79752,0.6962,0.8157,0.71669,0.83013,0.73849,0.84752,0.76194,0.86491,0.78882,0.87914,0.8103,0.89061,0.82866,0.90187,0.84636,0.91294,0.86423,0.9242,0.88046,0.93823,0.89981,0.95108,0.91849,0.95918,0.93325,0.95701,0.94259,0.94594,0.93899,0.93725,0.92817,0.92618,0.90866,0.9161,0.89079,0.90661,0.87538,0.89278,0.85817,0.87895,0.83522,0.86195,0.8139,0.8491,0.79735,0.8323,0.77341,0.8157,0.75259,0.7993,0.73095,0.78725,0.71833,0.76412,0.688,0.74258,0.66308,0.72539,0.64587,0.71551,0.63194,0.69278,0.60374,0.67815,0.58636,0.6576,0.56423,0.65128,0.55767,0.63033,0.53407,0.6078,0.51063,0.59752,0.49702,0.56491,0.46636,0.5497,0.45128,0.53764,0.43735,0.52005,0.42079,0.50306,0.40358,0.48547,0.38751,0.46531,0.36784,0.4493,0.35128,0.42914,0.33243,0.40997,0.31636,0.38705,0.29604,0.36689,0.27587,0.34495,0.25833,0.3161,0.23522,0.29179,0.2139,0.2663,0.19013,0.24238,0.17128,0.21867,0.15112,0.1993,0.13243,0.17855,0.11882,0.16294,0.10554,0.14535,0.09423,0.12756,0.08341,0.10029,0.06849,0.06116,0.05227,0.03132,0.03948,0.01393,0.02604],\"triangles\":[7,8,9,9,10,11,12,13,14,72,75,71,75,76,71,76,91,71,15,16,17,71,91,67,66,67,64,18,19,20,20,21,22,22,23,24,62,64,57,64,67,57,67,91,57,24,25,26,27,28,29,26,27,29,52,54,50,29,30,31,31,32,33,35,36,37,44,47,43,47,50,43,50,54,43,54,57,43,57,91,43,91,92,43,35,37,38,34,35,38,33,34,38,43,92,42,33,38,39,31,33,39,42,92,1,41,42,1,40,41,1,39,40,1,49,50,47,39,43,40,43,42,40,42,41,40,79,91,76,45,47,44,38,44,39,44,43,39,37,45,38,45,44,38,46,47,45,36,46,37,46,45,37,51,52,50,47,46,36,35,47,36,48,49,47,48,47,35,34,48,35,33,48,34,32,49,33,33,49,48,69,71,67,55,57,54,31,51,32,51,50,32,32,50,49,61,62,59,59,62,57,30,52,31,52,51,31,56,57,55,53,54,52,53,52,30,29,53,30,63,64,62,54,53,29,28,54,29,60,61,59,27,55,28,55,54,28,58,59,57,56,55,27,26,56,27,57,56,25,25,56,26,58,57,25,24,58,25,23,60,24,59,58,24,60,59,24,61,60,23,22,61,23,80,91,79,62,61,22,63,62,22,21,63,22,20,65,21,65,64,21,64,63,21,65,66,64,70,71,69,66,65,20,19,66,20,78,79,76,67,66,19,18,67,19,74,75,73,73,75,72,68,69,67,68,67,18,69,68,18,17,69,18,82,91,80,70,69,17,16,70,17,71,70,16,72,71,16,15,72,16,73,72,15,14,73,15,74,73,14,75,74,14,13,75,14,83,91,82,77,78,76,76,75,13,12,77,13,77,76,13,90,91,83,11,78,12,78,77,12,85,90,83,81,82,80,79,78,11,10,79,11,80,79,10,9,80,10,81,80,9,8,81,9,88,90,85,87,88,85,7,83,82,82,81,8,7,82,8,89,90,88,84,85,83,84,83,7,6,84,7,86,87,85,86,85,6,5,86,6,85,84,6,87,86,5,88,87,5,4,88,5,4,89,88,3,89,4,3,90,89,2,90,3,2,91,90,92,91,2,0,92,2],\"edges\":[0,2,2,3,3,4,4,5,5,6,6,7,7,9,9,11,11,12,12,14,14,15,15,17,17,18,18,20,20,22,22,24,24,26,26,29,29,31,31,39,39,1,1,92,92,0],\"userEdges\":[]},{\"type\":\"mesh\",\"name\":\"动画拆/5右须\",\"width\":253,\"height\":305,\"vertices\":[23.03,-231.15,276.03,-231.15,23.03,73.85,276.03,73.85,35.6,-226.6,45.25,-221.2,54.85,-215.9,66.6,-207.15,75.5,-199.65,87.9,-189.35,102,-175.55,114.75,-162.45,126.55,-150.05,137.4,-137.3,146.3,-127.95,155.55,-116.4,165.25,-103.9,172.65,-94.1,183.05,-81.35,193.15,-67.8,204.6,-50.75,215.75,-34.45,226.25,-16.95,236.35,-0.05,243.1,11.95,252,28.55,260.15,43.85,265.4,55.4,262.15,54.3,258.7,47.7,251.55,36.35,246.3,26.15,240.25,16.25,232.45,3.9,224.5,-7.3,216.35,-18.65,208.65,-29.75,198.2,-45.1,186.1,-61.1,175.05,-75.4,162.2,-91.1,147.75,-107.6,133,-125.2,119.15,-141.35,102.35,-158.4,84.85,-176.9,66,-195,44.35,-211.65],\"uvs\":[0,0,1,0,0,1,1,1,0.04967,0.01491,0.08781,0.03262,0.12575,0.04999,0.1722,0.07868,0.20737,0.10327,0.25639,0.13704,0.31212,0.18229,0.36251,0.22524,0.40915,0.2659,0.45204,0.3077,0.48722,0.33835,0.52378,0.37622,0.56212,0.41721,0.59137,0.44934,0.63247,0.49114,0.67239,0.53557,0.71765,0.59147,0.76172,0.64491,0.80322,0.70229,0.84315,0.7577,0.86983,0.79704,0.905,0.85147,0.93722,0.90163,0.95797,0.9395,0.94512,0.9359,0.93149,0.91426,0.90322,0.87704,0.88247,0.8436,0.85856,0.81114,0.82773,0.77065,0.79631,0.73393,0.76409,0.69671,0.73366,0.66032,0.69235,0.60999,0.64453,0.55753,0.60085,0.51065,0.55006,0.45917,0.49295,0.40508,0.43465,0.34737,0.3799,0.29442,0.3135,0.23852,0.24433,0.17786,0.16983,0.11852,0.08425,0.06393],\"triangles\":[0,4,1,5,6,1,4,5,1,6,7,1,8,9,1,7,8,1,9,10,1,10,11,1,11,12,1,13,14,1,12,13,1,14,15,1,15,16,1,17,18,1,16,17,1,18,19,1,20,21,1,19,20,1,21,22,1,22,23,1,23,24,1,24,25,1,25,26,1,27,28,3,28,2,3,1,26,3,26,27,3,30,2,29,25,30,26,29,2,28,26,29,28,26,28,27,31,2,30,24,31,25,32,2,31,30,29,26,33,2,32,24,32,31,31,30,25,34,2,33,22,34,23,33,32,24,23,33,24,35,2,34,34,33,23,21,35,22,36,2,35,35,34,22,37,2,36,37,36,21,20,37,21,36,35,21,38,2,37,38,37,20,19,38,20,39,2,38,40,2,39,39,38,19,18,39,19,17,39,18,41,2,40,17,40,39,16,40,17,42,2,41,41,40,16,15,41,16,43,2,42,14,41,15,44,2,43,14,42,41,13,42,14,43,42,13,12,43,13,45,2,44,11,43,12,46,2,45,11,44,43,47,2,46,10,44,11,9,45,10,10,45,44,0,2,47,46,45,9,8,46,9,7,46,8,47,46,7,6,47,7,5,47,6,4,47,5,4,0,47],\"weights\":[3,7,0.948929,10,0.039026,14,0.012045,3,14,0.344429,10,0.329186,16,0.326385,1,16,1,3,22,0.861444,20,0.102582,16,0.035974,4,7,0.995839,10,0.00304,14,0.000789,16,0.000332,4,7,0.994459,10,0.004267,14,0.000914,16,0.00036,4,7,0.985515,10,0.011804,14,0.001963,16,0.000718,4,7,0.974963,10,0.02216,14,0.002175,16,0.000702,4,7,0.962524,10,0.035383,14,0.001628,16,0.000465,4,7,0.119135,10,0.874835,14,0.00491,16,0.00112,4,7,0.024664,10,0.959615,14,0.013682,16,0.002039,4,7,0.00993,10,0.947108,14,0.040085,16,0.002876,4,7,0.004135,10,0.75354,14,0.239111,16,0.003215,4,7,0.002686,14,0.931572,10,0.060418,16,0.005323,4,7,0.002911,14,0.955142,10,0.029507,16,0.01244,4,14,0.961417,16,0.023717,10,0.012083,20,0.002783,4,14,0.923485,16,0.068439,10,0.005029,20,0.003047,4,16,0.708414,14,0.284277,20,0.004032,10,0.003276,4,16,0.961986,14,0.029303,20,0.006673,10,0.002038,4,16,0.966628,20,0.018697,14,0.012247,22,0.002428,4,16,0.896993,20,0.096059,14,0.003965,22,0.002983,4,20,0.947809,16,0.044247,22,0.00571,14,0.002233,4,20,0.973336,22,0.015665,16,0.009619,14,0.00138,4,20,0.886833,22,0.10881,16,0.003541,14,0.000816,4,22,0.963256,20,0.035018,16,0.001344,14,0.000382,4,22,0.992987,20,0.005966,16,0.000776,14,0.000271,4,22,0.997136,20,0.002202,16,0.000473,14,0.000189,4,22,0.979628,20,0.014686,16,0.003967,14,0.001718,4,22,0.990268,20,0.007102,16,0.001843,14,0.000787,4,22,0.999706,20,0.000223,16,0.000051,14,0.000021,4,22,0.997896,20,0.001721,16,0.00028,14,0.000103,4,22,0.997314,20,0.002358,16,0.000246,14,0.000082,4,22,0.985046,20,0.014102,16,0.000659,14,0.000193,4,20,0.945772,22,0.052717,16,0.001222,14,0.000288,4,20,0.981504,22,0.014286,16,0.003577,14,0.000632,4,20,0.97352,16,0.014351,22,0.010519,14,0.00161,4,20,0.928133,16,0.060865,22,0.007902,14,0.003099,4,16,0.868726,20,0.12299,14,0.004604,22,0.00368,4,16,0.956972,20,0.025296,14,0.014564,22,0.003168,4,16,0.925518,14,0.057387,20,0.01306,10,0.004035,4,14,0.711498,16,0.275786,10,0.006459,20,0.006257,4,14,0.934077,16,0.04253,10,0.018555,20,0.004838,4,7,0.004971,14,0.912281,10,0.068732,16,0.014016,4,7,0.005994,10,0.641416,14,0.347537,16,0.005053,4,7,0.020071,10,0.933654,14,0.042129,16,0.004146,4,7,0.087301,10,0.899399,14,0.011047,16,0.002254,4,7,0.918517,10,0.075039,14,0.00496,16,0.001483,4,7,0.987344,10,0.009982,14,0.001937,16,0.000737],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[7,0.818474,0.574544,-0.574544,0.818474,36.399939,-223.150001,10,0.697407,0.716676,-0.716676,0.697407,84.949982,-185.700012,14,0.640942,0.767589,-0.767589,0.640942,128.150024,-141.350097,16,0.577573,0.816339,-0.816339,0.577573,172.49999,-89.15012,20,0.519166,0.854674,-0.854674,0.519166,208.400026,-39.050092,22,0.479318,0.877641,-0.877641,0.479318,238.999986,9.999919],\"edges\":[0,1,1,3,3,2,2,0],\"userEdges\":[]}]}]}],\"animation\":[{\"duration\":10,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"5左翅\",\"translateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":15.62,\"y\":13.52},{\"duration\":3,\"tweenEasing\":0,\"x\":15.16,\"y\":4.21},{\"duration\":0}],\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":11.05},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-11.41},{\"duration\":0}]},{\"name\":\"5右翅\",\"translateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":4.84,\"y\":-2.55},{\"duration\":3,\"tweenEasing\":0,\"x\":6.54,\"y\":-0.62},{\"duration\":0}],\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-6.44},{\"duration\":3}]},{\"name\":\"5右翅1\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":11.02},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-27.79},{\"duration\":0}]},{\"name\":\"5左翅1\",\"translateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":-6.03,\"y\":-1.18},{\"duration\":3}],\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-13.19},{\"duration\":3,\"tweenEasing\":0,\"rotate\":31.31},{\"duration\":0}]},{\"name\":\"5右须\",\"translateFrame\":[{\"duration\":10,\"x\":6.24,\"y\":-3.63}],\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"rotate\":-6.24},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.83},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-3.51},{\"duration\":0,\"rotate\":-6.24}]},{\"name\":\"5左须\",\"translateFrame\":[{\"duration\":7,\"tweenEasing\":0,\"x\":1.63,\"y\":3.71},{\"duration\":3,\"tweenEasing\":0,\"x\":6.71,\"y\":3.78},{\"duration\":0,\"x\":1.63,\"y\":3.71}],\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"rotate\":9.2},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-7.14},{\"duration\":3,\"tweenEasing\":0,\"rotate\":7.54},{\"duration\":0,\"rotate\":9.2}]},{\"name\":\"5右须1\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"rotate\":31.38},{\"duration\":4,\"tweenEasing\":0,\"rotate\":23.56},{\"duration\":3,\"tweenEasing\":0,\"rotate\":25.56},{\"duration\":0,\"rotate\":31.38}]},{\"name\":\"5左须1\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"rotate\":-20.71},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-14.74},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-24.2},{\"duration\":0,\"rotate\":-20.71}]},{\"name\":\"5右须2\",\"translateFrame\":[{\"duration\":7},{\"duration\":3,\"x\":0.75,\"y\":1.14}],\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"rotate\":-8.95},{\"duration\":2,\"tweenEasing\":0,\"rotate\":5.52},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-5.84},{\"duration\":3,\"tweenEasing\":0,\"rotate\":6.26},{\"duration\":0,\"rotate\":-8.95}]},{\"name\":\"5左须2\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"rotate\":-13.89},{\"duration\":4,\"tweenEasing\":0,\"rotate\":12.65},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-25.82},{\"duration\":0,\"rotate\":-13.89}]},{\"name\":\"5左须3\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"rotate\":0.81},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-24.67},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-12.34},{\"duration\":3,\"tweenEasing\":0,\"rotate\":18.81},{\"duration\":0,\"rotate\":0.81}]},{\"name\":\"5右须3\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"rotate\":15.31},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-24.26},{\"duration\":2,\"tweenEasing\":0,\"rotate\":4.45},{\"duration\":3,\"tweenEasing\":0,\"rotate\":0.12},{\"duration\":0,\"rotate\":15.31}]},{\"name\":\"5右须4\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"rotate\":23.94},{\"duration\":4,\"tweenEasing\":0,\"rotate\":24.21},{\"duration\":3,\"tweenEasing\":0,\"rotate\":24.24},{\"duration\":0,\"rotate\":23.94}]},{\"name\":\"5左须4\",\"rotateFrame\":[{\"duration\":10,\"rotate\":8.1}]},{\"name\":\"5左须5\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"rotate\":-21.27},{\"tweenEasing\":0,\"rotate\":-11.51},{\"tweenEasing\":0,\"rotate\":8.18},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-7.76},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-22.2},{\"duration\":0,\"rotate\":-21.27}]},{\"name\":\"5右须5\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"rotate\":-17.14},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-28.4},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-6.41},{\"duration\":0,\"rotate\":-17.14}]},{\"name\":\"5左须6\",\"rotateFrame\":[{\"duration\":3,\"rotate\":12.96},{\"duration\":2,\"tweenEasing\":0,\"rotate\":20.19},{\"duration\":2,\"tweenEasing\":0,\"rotate\":30.91},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-5.21},{\"duration\":0,\"rotate\":12.96}]},{\"name\":\"图层_1\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":2.05},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-6.52},{\"duration\":0}]},{\"name\":\"锦鲤\",\"translateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":-0.22,\"y\":6.99},{\"duration\":3,\"tweenEasing\":0,\"x\":1.56,\"y\":-7.81},{\"duration\":0}],\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-5.43},{\"duration\":3,\"tweenEasing\":0,\"rotate\":0.29},{\"duration\":0}]},{\"name\":\"锦鲤1\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-0.93},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-4.35},{\"duration\":0}]},{\"name\":\"锦鲤2\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-2.19},{\"duration\":3,\"tweenEasing\":0,\"rotate\":13.71},{\"duration\":0}]},{\"name\":\"锦鲤3\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-14.83},{\"duration\":3,\"tweenEasing\":0,\"rotate\":11.8},{\"duration\":0}]},{\"name\":\"锦鲤4\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":6.9},{\"duration\":3,\"tweenEasing\":0,\"rotate\":22.18},{\"duration\":0}]},{\"name\":\"锦鲤5\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-18.73},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-12.86},{\"duration\":0}]},{\"name\":\"锦鲤6\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.25},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-7.18},{\"duration\":0}]}],\"ffd\":[{\"name\":\"动画拆/5右翅\",\"slot\":\"5右翅\",\"frame\":[{\"duration\":10,\"offset\":30,\"vertices\":[0.55,-0.05]}]},{\"name\":\"动画拆/5左翅\",\"slot\":\"5左翅\",\"frame\":[{\"duration\":7,\"offset\":32,\"vertices\":[-0.5,0.4]},{\"duration\":3,\"tweenEasing\":0,\"offset\":32,\"vertices\":[-0.5,0.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.71,-4.6]},{\"duration\":0,\"offset\":32,\"vertices\":[-0.5,0.4]}]},{\"name\":\"动画拆/5左须\",\"slot\":\"5左须\",\"frame\":[{\"duration\":10,\"offset\":136,\"vertices\":[-0.35,-0.15]}]},{\"name\":\"动画拆/5右须\",\"slot\":\"5右须\",\"frame\":[{\"duration\":10,\"offset\":128,\"vertices\":[0.2]}]},{\"name\":\"8456/锦鲤\",\"slot\":\"锦鲤\",\"frame\":[{\"duration\":3,\"tweenEasing\":0,\"offset\":18,\"vertices\":[-0.65,0.3]},{\"duration\":3,\"tweenEasing\":0,\"offset\":6,\"vertices\":[48.93,-24.11,0,0,0,0,0,0,0,0,0,0,-0.65,0.3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9.71,-2.55,28.7,2.52,6.11,4.93,9.58,-2.07,3.79,-2.44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.83,-0.41,18.15,-7.46,48.7,-14,28.66,-12.21,7.63,0.76]},{\"tweenEasing\":0,\"offset\":4,\"vertices\":[-9.37,-5.53,54.77,-22.69,0,0,0,0,0,0,0,0,0,0,-0.65,0.3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.91,0.66,-3.89,0.67,-6.19,1.13,-6.42,7.2,-7.57,0.09,-1.56,7.38,8.57,10.65,-3.42,2.81,-1.39,7.8,1.64,8.91,-0.6,6.28,0,0,0,0,0,0,0,0,0,0,4.83,-0.41,20.3,-3.94,53.14,-19.09,32.11,-18.22,11.91,2.86,-2.66,3.51,-2.01,2.91]},{\"duration\":3,\"tweenEasing\":0,\"offset\":4,\"vertices\":[-12.5,-7.37,5.89,-6.28,0,0,0,0,0,0,0,0,0,0,-0.65,0.3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.55,0.88,-5.18,0.89,-17,-5.04,-30.51,-5.14,-52.13,-7.81,-84.64,-6.12,-79.4,-1.91,-38.62,-7.54,-20.99,-1.68,-10.69,3.19,-6.82,4.47,0,0,0,0,0,0,0,0,0,0,4.83,-0.41,3.96,-1.07,-2.16,6.38,4.19,4.18,-0.76,8.06,-3.55,4.68,-2.68,3.88]},{\"duration\":0,\"offset\":18,\"vertices\":[-0.65,0.3]}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[{"name":"光5","rect":[3,500,426,428],"offset":[0,0],"originalSize":[426,428],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[5]],[[[9,"haigui_tex","{\"imagePath\":\"haigui_tex.png\",\"width\":512,\"height\":512,\"name\":\"haigui\",\"SubTexture\":[{\"width\":218,\"y\":285,\"height\":123,\"name\":\"动画拆/右前\",\"x\":221},{\"width\":60,\"y\":145,\"height\":99,\"name\":\"动画拆/右后\",\"x\":331},{\"width\":218,\"y\":285,\"height\":123,\"name\":\"动画拆/左前\",\"x\":1},{\"width\":60,\"y\":145,\"height\":99,\"name\":\"动画拆/左后\",\"x\":269},{\"width\":96,\"y\":1,\"height\":142,\"name\":\"动画拆/gui头\",\"x\":269},{\"width\":266,\"y\":1,\"height\":282,\"name\":\"动画拆/壳\",\"x\":1}]}"]],0,0,[0],[7],[55]],[[[4,"haigui"],[7,"haigui",1,[-5,-6],[[2,1,-2,[[[0,23.5,-146.9],[0,73.8,-124.2],[0,109.2,-85.4],[0,121.8,-60.4],[0,130.8,-31.5],[0,130.5,4.4],[0,122.9,43.1],[0,113.8,69.5],[0,83.2,110.2],[0,68.9,122.4],[0,50.8,128.9],[0,35.7,124.7],[0,44.8,140.4],[0,52.1,160.3],[0,47.7,174.5],[0,39.8,192.7],[0,32.9,210.3],[0,12.1,225.3],[0,-6.1,223.8],[0,-15.8,217.6],[0,-23.8,211.8],[0,-28.6,203],[0,-36.6,185],[0,-43.4,174.9],[0,-44.4,161.6],[0,-39.4,146.4],[0,-30.2,133.8],[0,-27.2,124.4],[0,-50.7,127.6],[0,-66.3,116.6],[0,-77.54,108.13],[0,-109.5,64.7],[0,-113.8,55],[0,-121,32.1],[0,-124.7,9],[0,-123.8,-44.8],[0,-99.4,-94.3],[0,-58.4,-130.5],[0,-52.1,-133.1],[0,0.3,-152.6]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[14,false,-3],[11,666,50.4,-4,[0,5,171.1]]],[1,-1],[5,524,412.5],[0,0,0,0,0,0,1,0.5,0.5,1]],[20,"pos",1,[[19,1000,700,-7],[15,-8]],[0,"8cP0g9bwNPkrzUfuBgUIrf",1]],[5,"haiguii",1,1,[[3,"Armature","newAnimation",0,"4b072041-8821-4e0c-a49d-37ad2874ceb3#d5f06198-e739-42dd-a521-4a6189c87e2b",0.6,-9,[0],1,2]],[0,"f8pab67/RPC78dmZsQ5uzv",1],[5,524,412.5]]],0,[0,2,1,0,0,1,0,0,1,0,0,1,0,-1,3,0,-2,2,0,0,2,0,0,2,0,0,3,0,5,1,9],[0,0,0],[-1,3,4],[0,33,22]],[[[4,"long"],[7,"long",1,[-5],[[37,1,-2,[0,-0.9,-0.4],[[[0,-106.8,-65.8],[0,-104.3,-87],[0,-95.1,-114.5],[0,-81.6,-148.3],[0,-12.2,-247.8],[0,3.5,-278.6],[0,-1.2,-286.5],[0,-3.6,-299.9],[0,-7.4,-316.6],[0,-10.7,-324.6],[0,-2.6,-348.4],[0,-2.8,-374],[0,-7,-383.9],[0,-9.1,-400.3],[0,-8.4,-410.2],[0,-2.4,-419.5],[0,8,-420.4],[0,16,-417.4],[0,19.3,-409.6],[0,20.5,-409.5],[0,25.6,-413.5],[0,31.4,-413.9],[0,42.3,-409],[0,44.8,-405.4],[0,50.9,-401.9],[0,52.1,-385.5],[0,36.9,-372.2],[0,33.83,-373.45],[0,33.69,-377.63],[0,32.01,-377.53],[0,29.54,-373.68],[0,30.29,-372.18],[0,34.84,-361.53],[0,33.81,-351.82],[0,27.78,-345.4],[0,21.53,-343.33],[0,21.46,-340.56],[0,24.6,-339.7],[0,35.4,-338.1],[0,52.6,-383.6],[0,51.2,-413.9],[0,33.6,-457.3],[0,-5.6,-524.2],[0,-30.8,-553.5],[0,-73.8,-640.6],[0,-93.7,-765.2],[0,-99.7,-777.9],[0,-103.8,-808.8],[0,-100.5,-815.4],[0,-99.5,-820.6],[0,-92,-830.9],[0,-91.8,-861.6],[0,-88.5,-890.2],[0,-84.5,-893.7],[0,-80.7,-883.3],[0,-78.3,-882.2],[0,-78,-889.5],[0,-74.1,-905.8],[0,-70,-921.2],[0,-58.1,-946.8],[0,-46.7,-969],[0,-41.6,-987.5],[0,-44.6,-990.5],[0,-44.8,-995],[0,-41.5,-996.8],[0,-28.3,-992.3],[0,-25.9,-1002.4],[0,-15.3,-1022.7],[0,-4.5,-1041.2],[0,14.4,-1063.2],[0,31.3,-1076.8],[0,64.4,-1100.6],[0,57.9,-1087],[0,58.4,-1076.7],[0,79.8,-1093],[0,97.4,-1095.4],[0,123.1,-1093.3],[0,143,-1092.8],[0,158.5,-1094.8],[0,162.8,-1099],[0,165.2,-1096.7],[0,150,-1079.5],[0,129.4,-1066.1],[0,114.4,-1050.8],[0,105.12,-1037.55],[0,124.3,-1045.8],[0,131.8,-1044.1],[0,116.5,-1034],[0,112.8,-1024],[0,110.9,-990.5],[0,99.2,-957.6],[0,81.7,-928.9],[0,93.5,-918.6],[0,81.3,-915.1],[0,74.3,-908.8],[0,59.4,-880.7],[0,43.8,-856],[0,31.6,-842.4],[0,44.8,-844.5],[0,21.2,-802],[0,24.9,-795.9],[0,17.6,-792.8],[0,-2.8,-760.9],[0,-1.8,-704.3],[0,12.6,-668.3],[0,46.2,-601.6],[0,87.4,-559.2],[0,138.8,-488.6],[0,149.4,-429.6],[0,158.2,-376.2],[0,150,-331.1],[0,137.4,-287.1],[0,143.3,-283.3],[0,149.2,-283.9],[0,146,-295.2],[0,154.5,-305.4],[0,169.4,-306.8],[0,169.6,-312.5],[0,161.3,-313.1],[0,160.4,-324.7],[0,165.4,-337.3],[0,173.4,-344.3],[0,186.4,-339],[0,200,-334.2],[0,202.3,-321.6],[0,213.3,-323.4],[0,223.5,-308.8],[0,215,-294.3],[0,186.4,-280.4],[0,163.9,-263.8],[0,155.9,-247.2],[0,142,-242],[0,112.3,-229.5],[0,86.4,-182.7],[0,48.7,-135.2],[0,7.8,-77.8],[0,3.1,-55.9],[0,-1.1,-18.2],[0,-0.2,5.6],[0,4.7,21.7],[0,8.7,19],[0,21.9,25.8],[0,36.5,38],[0,47.3,36],[0,54.8,43.6],[0,61.2,51.4],[0,68.7,42],[0,72.1,43],[0,72.6,52.5],[0,76.42,59.09],[0,76.54,66.37],[0,74.99,73.8],[0,77.3,81.2],[0,88.7,88],[0,100.5,94.4],[0,106.4,100.8],[0,106.5,104],[0,115.9,118.2],[0,112.04,119.96],[0,106.6,119.1],[0,100.35,116.99],[0,97.37,118.21],[0,93.59,116.09],[0,91.66,116.47],[0,94.27,125.71],[0,94.58,130.48],[0,92,133.96],[0,95.25,149.01],[0,93.32,150.36],[0,89.29,148.03],[0,84.92,144.96],[0,80.17,139.18],[0,78.43,136.41],[0,76.28,134.72],[0,75.09,133.21],[0,73.74,131.24],[0,72.29,127.89],[0,71.04,127.72],[0,68.72,134.82],[0,65,139.02],[0,63.2,139.98],[0,60.43,153.67],[0,57.89,153.55],[0,55.15,149.97],[0,51.23,143.13],[0,49.6,138.13],[0,46.8,132.6],[0,46.2,126.9],[0,51,114.2],[0,55.1,106.8],[0,58.3,97.3],[0,57.3,89.1],[0,55,82.7],[0,49.7,77.8],[0,46.4,77.7],[0,44.1,84.4],[0,35,94.2],[0,63,201.9],[0,73.1,258.5],[0,73.2,268.4],[0,83.6,253.9],[0,84.9,276.9],[0,86.5,284],[0,97.1,268.2],[0,92.7,299],[0,106.1,292.2],[0,104.8,302.4],[0,115.2,296.6],[0,108.5,316.4],[0,97.1,370.9],[0,97,380.8],[0,71.4,405.7],[0,54,412.4],[0,45.2,418.4],[0,43.1,426.1],[0,43.6,451.9],[0,41.4,457.6],[0,38.9,466.5],[0,27.1,481.4],[0,12.3,478.5],[0,2.4,479.2],[0,-7.1,476.7],[0,-16.1,466.1],[0,-20.5,458.7],[0,-20,437.4],[0,-22.3,420.4],[0,-50.7,407.4],[0,-65.9,395.1],[0,-84.5,375.8],[0,-74.6,375.9],[0,-83.6,351.9],[0,-90,323.7],[0,-91,309.4],[0,-88.2,301.9],[0,-77,305.3],[0,-80.8,275.1],[0,-68.4,292.7],[0,-68.5,261.5],[0,-59.1,269.3],[0,-52.5,261.3],[0,-51.9,232.7],[0,-48,212],[0,-67.7,159.9],[0,-75.7,142.4],[0,-96.9,137.6],[0,-105.2,139.4],[0,-100.5,154.8],[0,-72.2,175.2],[0,-62.5,195.3],[0,-64.8,205.7],[0,-74.3,195.1],[0,-82.3,195.4],[0,-87.6,191.5],[0,-90.4,219.9],[0,-94,224.5],[0,-102,209.4],[0,-109.8,205],[0,-112.4,195.7],[0,-125.4,212.2],[0,-130.8,208.8],[0,-132.4,194.5],[0,-133,183.8],[0,-127.4,170.9],[0,-124.5,156.2],[0,-125.5,152],[0,-128.8,148],[0,-136.9,142.7],[0,-137.2,127.4],[0,-130.3,122.9],[0,-129.1,102.1],[0,-119,97.5],[0,-115.9,77.8],[0,-107.1,67.3],[0,-121.3,5.3]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[14,false,-3],[11,666,196,-4,[0,-7,295]]],[1,-1],[5,316,2008],[0,0,0,0,0,0,1,0.6,0.6,1]],[5,"long",1,1,[[3,"Armature","newAnimation",0,"5a4fb9bb-62a2-4ab0-a5a2-cb4dda360911#6112fa6b-0739-44c4-a21f-a98c18783a1c",0.3,-6,[0],1,2]],[0,"9dy9tAdVBLU4s2VcQWlNtH",1],[5,315.95,2008.74]]],0,[0,2,1,0,0,1,0,0,1,0,0,1,0,-1,2,0,0,2,0,5,1,6],[0,0,0],[-1,3,4],[0,18,19]],[[[4,"jinli"],[7,"jinli",1,[-5,-6],[[14,false,-2],[2,1,-3,[[[0,88.1,47.2],[0,78.7,113.9],[0,68.3,158.5],[0,59.1,196.9],[0,44.6,218.3],[0,26.4,241.9],[0,18,245.8],[0,11.1,249],[0,-0.2,251],[0,-12.1,247.7],[0,-14.8,243.8],[0,-31.1,229.9],[0,-50.3,206.3],[0,-66.8,168.9],[0,-78.3,111.5],[0,-88.9,50.2],[0,-88.4,-43.5],[0,-69.7,-119.6],[0,-35.5,-208.7],[0,-43.2,-258.3],[0,-54.6,-306.3],[0,-38.9,-286.9],[0,-52.1,-358.3],[0,-46.8,-425.7],[0,-7.6,-516.7],[0,-2.8,-470],[0,18.6,-432],[0,32.5,-398],[0,58.2,-418.7],[0,97.6,-448.2],[0,109.9,-479.3],[0,113.2,-493.3],[0,125.8,-439.4],[0,121.5,-393.7],[0,102.2,-339.3],[0,50.1,-252.5],[0,38.7,-208.2],[0,69.4,-125.5],[0,90.4,-40.1]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[11,666,67,-4,[0,3.7,171]]],[1,-1],[5,532,773],[0,0,0,0,0,0,1,0.9,0.9,1]],[20,"pos",1,[[19,1000,700,-7],[15,-8]],[0,"ecK+MjQHxGR6qs03I8dU2f",1]],[5,"jinli",1,1,[[3,"Armature","newAnimation",0,"54081c72-bc78-42fd-acf3-427bff5d2cb3#3c921882-5db7-4c18-b4f7-e6fe39394a42",0.6,-9,[0],1,2]],[0,"d6k7WoF/ZFdYatVufET7mC",1],[5,543.51,871.77]]],0,[0,2,1,0,0,1,0,0,1,0,0,1,0,-1,3,0,-2,2,0,0,2,0,0,2,0,0,3,0,5,1,9],[0,0,0],[-1,3,4],[0,10,11]],[[[8,"longl_ske_ske","{\"frameRate\":24,\"name\":\"longl_ske\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-154.25,\"y\":-471.93,\"width\":315.95,\"height\":2008.74},\"bone\":[{\"name\":\"root\",\"transform\":{\"x\":0.8908,\"y\":35.6317}},{\"length\":167,\"name\":\"龙头\",\"parent\":\"root\",\"transform\":{\"x\":5.7592,\"y\":-314.6817,\"skX\":-91.0404,\"skY\":-91.0404}},{\"length\":25,\"name\":\"10右须1\",\"parent\":\"龙头\",\"transform\":{\"x\":172.6638,\"y\":25.5893,\"skX\":97.0727,\"skY\":97.0727}},{\"length\":22,\"name\":\"10左须1\",\"parent\":\"龙头\",\"transform\":{\"x\":173.5099,\"y\":-23.7535,\"skX\":-94.7452,\"skY\":-94.7452}},{\"length\":111,\"name\":\"龙身\",\"parent\":\"龙头\",\"transform\":{\"x\":-22.9135,\"y\":-2.2164,\"skX\":-178.3153,\"skY\":-178.3153}},{\"length\":73,\"name\":\"10左须\",\"parent\":\"龙头\",\"transform\":{\"x\":99.1714,\"y\":-58.1089,\"skX\":-153.6898,\"skY\":-153.6898}},{\"length\":70,\"name\":\"10右须\",\"parent\":\"龙头\",\"transform\":{\"x\":97.1896,\"y\":51.0231,\"skX\":151.1599,\"skY\":151.1599}},{\"length\":87,\"name\":\"龙身1\",\"parent\":\"龙身\",\"transform\":{\"x\":122.5922,\"y\":-1.3787,\"skX\":-0.2519,\"skY\":-0.2519}},{\"length\":21,\"name\":\"10右须2\",\"parent\":\"10右须1\",\"transform\":{\"x\":26.0197,\"y\":0.7196,\"skX\":18.687,\"skY\":18.687}},{\"length\":22,\"name\":\"10左须2\",\"parent\":\"10左须1\",\"transform\":{\"x\":23.2834,\"y\":0.3489,\"skX\":-17.5485,\"skY\":-17.5485}},{\"length\":87,\"name\":\"龙身2\",\"parent\":\"龙身1\",\"transform\":{\"x\":96.6436,\"y\":-1.262,\"skX\":-0.7849,\"skY\":-0.7849}},{\"length\":20,\"name\":\"10右须3\",\"parent\":\"10右须2\",\"transform\":{\"x\":22.6922,\"y\":-0.2084,\"skX\":22.2221,\"skY\":22.2221}},{\"length\":31,\"name\":\"右前爪\",\"parent\":\"龙身1\",\"transform\":{\"x\":59.5106,\"y\":-49.7588,\"skX\":-93.7377,\"skY\":-93.7377}},{\"length\":20,\"name\":\"10左须3\",\"parent\":\"10左须2\",\"transform\":{\"x\":25.3822,\"y\":-0.2683,\"skX\":-21.666,\"skY\":-21.666}},{\"length\":33,\"name\":\"左前爪\",\"parent\":\"龙身1\",\"transform\":{\"x\":48.5906,\"y\":49.5684,\"skX\":73.7678,\"skY\":73.7678}},{\"length\":88,\"name\":\"龙身3\",\"parent\":\"龙身2\",\"transform\":{\"x\":96.0477,\"y\":0.6579,\"skX\":0.3924,\"skY\":0.3924}},{\"length\":24,\"name\":\"左前爪1\",\"parent\":\"左前爪\",\"transform\":{\"x\":40.1692,\"y\":10.0975,\"skX\":83.7542,\"skY\":83.7542}},{\"length\":21,\"name\":\"10右须4\",\"parent\":\"10右须3\",\"transform\":{\"x\":21.8143,\"y\":0.6756,\"skX\":16.6696,\"skY\":16.6696}},{\"length\":21,\"name\":\"10左须4\",\"parent\":\"10左须3\",\"transform\":{\"x\":23.0517,\"y\":-0.2121,\"skX\":-19.2264,\"skY\":-19.2264}},{\"length\":34,\"name\":\"右前爪1\",\"parent\":\"右前爪\",\"transform\":{\"x\":40.8384,\"y\":0.5339,\"skX\":-71.4575,\"skY\":-71.4575}},{\"length\":20,\"name\":\"10左须5\",\"parent\":\"10左须4\",\"transform\":{\"x\":22.2312,\"y\":-0.1849,\"skX\":-5.2504,\"skY\":-5.2504}},{\"length\":79,\"name\":\"龙身4\",\"parent\":\"龙身3\",\"transform\":{\"x\":102.7,\"y\":1.25,\"skX\":-1.3289,\"skY\":-1.3289}},{\"length\":34,\"name\":\"右前爪2\",\"parent\":\"右前爪1\",\"transform\":{\"x\":50.6977,\"y\":-3.7201,\"skX\":-7.0201,\"skY\":-7.0201}},{\"length\":21,\"name\":\"10右须5\",\"parent\":\"10右须4\",\"transform\":{\"x\":22.83,\"y\":-0.1149,\"skX\":6.4744,\"skY\":6.4744}},{\"length\":27,\"name\":\"左前爪2\",\"parent\":\"左前爪1\",\"transform\":{\"x\":36.6128,\"y\":6.9781,\"skX\":18.2229,\"skY\":18.2229}},{\"length\":20,\"name\":\"10右须6\",\"parent\":\"10右须5\",\"transform\":{\"x\":22.9345,\"y\":-0.6255,\"skX\":4.2231,\"skY\":4.2231}},{\"length\":75,\"name\":\"龙身5\",\"parent\":\"龙身4\",\"transform\":{\"x\":90.6325,\"y\":-0.3482,\"skX\":1.3289,\"skY\":1.3289}},{\"length\":20,\"name\":\"10左须6\",\"parent\":\"10左须5\",\"transform\":{\"x\":22.2202,\"y\":0.1708,\"skX\":-4.1645,\"skY\":-4.1645}},{\"length\":32,\"name\":\"左后爪\",\"parent\":\"龙身5\",\"transform\":{\"x\":62.1,\"y\":48.3,\"skX\":56.5532,\"skY\":56.5532}},{\"length\":20,\"name\":\"10左须7\",\"parent\":\"10左须6\",\"transform\":{\"x\":21.7068,\"y\":0.4547,\"skX\":-0.7003,\"skY\":-0.7003}},{\"length\":34,\"name\":\"右后爪\",\"parent\":\"龙身5\",\"transform\":{\"x\":64.7,\"y\":-44.75,\"skX\":-57.7317,\"skY\":-57.7317}},{\"length\":20,\"name\":\"10右须7\",\"parent\":\"10右须6\",\"transform\":{\"x\":21.998,\"y\":-0.1043,\"skX\":0.8412,\"skY\":0.8412}},{\"length\":97,\"name\":\"龙身6\",\"parent\":\"龙身5\",\"transform\":{\"x\":86.4,\"y\":1.25,\"skX\":0.3513,\"skY\":0.3513}},{\"length\":88,\"name\":\"龙身7\",\"parent\":\"龙身6\",\"transform\":{\"x\":109.955,\"y\":0.4758,\"skX\":-1.1308,\"skY\":-1.1308}},{\"length\":21,\"name\":\"10左须8\",\"parent\":\"10左须7\",\"transform\":{\"x\":21.8149,\"y\":-0.3509,\"skX\":-3.1437,\"skY\":-3.1437}},{\"length\":21,\"name\":\"10右须8\",\"parent\":\"10右须7\",\"transform\":{\"x\":22.3592,\"y\":0.342,\"skX\":-0.1933,\"skY\":-0.1933}},{\"length\":30,\"name\":\"左后爪1\",\"parent\":\"左后爪\",\"transform\":{\"x\":47.1833,\"y\":-5.2066,\"skX\":-39.7445,\"skY\":-39.7445}},{\"length\":33,\"name\":\"右后爪1\",\"parent\":\"右后爪\",\"transform\":{\"x\":42.5059,\"y\":-0.1102,\"skX\":41.5612,\"skY\":41.5612}},{\"length\":20,\"name\":\"10右须9\",\"parent\":\"10右须8\",\"transform\":{\"x\":24.3449,\"y\":0.5372,\"skX\":4.3979,\"skY\":4.3979}},{\"length\":21,\"name\":\"10左须9\",\"parent\":\"10左须8\",\"transform\":{\"x\":21.6931,\"y\":-0.1031,\"skX\":1.1637,\"skY\":1.1637}},{\"length\":112,\"name\":\"龙身8\",\"parent\":\"龙身7\",\"transform\":{\"x\":96.0319,\"y\":-1.6937,\"skX\":0.448,\"skY\":0.448}},{\"length\":29,\"name\":\"10左须10\",\"parent\":\"10左须9\",\"transform\":{\"x\":22.9195,\"y\":0.0825,\"skX\":-3.6192,\"skY\":-3.6192}},{\"length\":24,\"name\":\"10右须10\",\"parent\":\"10右须9\",\"transform\":{\"x\":23.847,\"y\":-0.198,\"skX\":1.6791,\"skY\":1.6791}},{\"length\":92,\"name\":\"龙身9\",\"parent\":\"龙身8\",\"transform\":{\"x\":123.9962,\"y\":1.0174,\"skX\":-1.0883,\"skY\":-1.0883}},{\"length\":85,\"name\":\"龙身10\",\"parent\":\"龙身9\",\"transform\":{\"x\":109.7663,\"y\":2.7205,\"skX\":0.9145,\"skY\":0.9145}},{\"length\":88,\"name\":\"龙身11\",\"parent\":\"龙身10\",\"transform\":{\"x\":109.7962,\"y\":0.9182,\"skX\":0.5052,\"skY\":0.5052}},{\"length\":78,\"name\":\"龙身12\",\"parent\":\"龙身11\",\"transform\":{\"x\":104.4,\"y\":1.55,\"skX\":-0.545,\"skY\":-0.545}},{\"length\":35,\"name\":\"龙身15\",\"parent\":\"龙身12\",\"transform\":{\"x\":7.6148,\"y\":-43.5795,\"skX\":-38.431,\"skY\":-38.431}},{\"length\":75,\"name\":\"龙身13\",\"parent\":\"龙身12\",\"transform\":{\"x\":86.8965,\"y\":0.7765,\"skX\":0.0881,\"skY\":0.0881}},{\"length\":53,\"name\":\"龙身14\",\"parent\":\"龙身13\",\"transform\":{\"x\":95.4517,\"y\":0.1611,\"skX\":-5.4401,\"skY\":-5.4401}},{\"length\":43,\"name\":\"龙身16\",\"parent\":\"龙身15\",\"transform\":{\"x\":-58.7474,\"y\":61.1623,\"skX\":65.5411,\"skY\":65.5411}},{\"length\":72,\"name\":\"龙身17\",\"parent\":\"龙身16\",\"transform\":{\"x\":64.7118,\"y\":-36.0454,\"skX\":-23.9426,\"skY\":-23.9426}},{\"length\":52,\"name\":\"龙身18\",\"parent\":\"龙身17\",\"transform\":{\"x\":11.0788,\"y\":-87.0481,\"skX\":-9.7474,\"skY\":-9.7474}},{\"length\":27,\"name\":\"龙身19\",\"parent\":\"龙身18\",\"transform\":{\"x\":-189.7235,\"y\":-23.7154,\"skX\":-23.1541,\"skY\":-23.1541}},{\"length\":30,\"name\":\"龙身20\",\"parent\":\"龙身19\",\"transform\":{\"x\":-45.302,\"y\":82.7465,\"skX\":52.9855,\"skY\":52.9855}}],\"slot\":[{\"name\":\"左前爪\",\"parent\":\"左前爪2\"},{\"name\":\"左后爪\",\"parent\":\"左后爪1\"},{\"name\":\"右前爪\",\"parent\":\"右前爪2\"},{\"name\":\"右后爪\",\"parent\":\"右后爪1\"},{\"name\":\"龙身\",\"parent\":\"龙身20\"},{\"name\":\"龙头\",\"parent\":\"龙头\"},{\"name\":\"10右须\",\"parent\":\"10右须10\"},{\"name\":\"10左须\",\"parent\":\"10左须10\"}],\"skin\":[{\"slot\":[{\"name\":\"10右须\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/10右须\",\"width\":108,\"height\":196,\"vertices\":[28.16,-455.65,136.16,-455.65,28.16,-259.65,136.16,-259.65,30.8,-449.15,36.35,-448.4,42.1,-447.4,48.75,-445.55,54.75,-443.6,59.85,-441.3,65.35,-439.1,69.95,-436.55,73.3,-434.4,77.2,-431.55,81.3,-426.5,84.6,-421.6,90,-414.4,94.7,-403.95,97.15,-397.65,99.65,-388.7,102.1,-380.9,105.8,-371.2,107,-364.95,109.7,-357.85,113.8,-344.25,116.85,-335.55,120.25,-323.5,122.35,-313.2,125.5,-300.85,127.8,-289.05,129.85,-281.2,131.8,-272.2,134.15,-262.4,136.16,-281.4,134.8,-289.9,133.75,-297.75,132.65,-305.5,130.65,-316.3,127.65,-328.05,125,-337.25,122.15,-348.65,119.6,-358.4,117,-368.6,113.25,-381.85,109.75,-392,106.6,-400.7,103.3,-407.5,99.55,-415.45,95.1,-423.15,90.4,-430.3,84.05,-437.45,76.4,-443.75,67.9,-448.25,61.05,-450.85,53.25,-452.9,47.55,-454.25,42.15,-454.9,32.65,-455.65,28.16,-449.85],\"uvs\":[0,0,1,0,0,1,1,1,0.02441,0.03315,0.0758,0.03698,0.12904,0.04208,0.19061,0.05152,0.24617,0.06147,0.29339,0.0732,0.34432,0.08443,0.38691,0.09744,0.41793,0.10841,0.45404,0.12295,0.492,0.14871,0.52256,0.17371,0.57256,0.21045,0.61608,0.26376,0.63876,0.29591,0.66191,0.34157,0.68459,0.38137,0.71885,0.43086,0.72997,0.46274,0.75497,0.49897,0.79293,0.56836,0.82117,0.61274,0.85265,0.67422,0.87209,0.72677,0.90126,0.78978,0.92256,0.84999,0.94154,0.89004,0.95959,0.93596,0.98135,0.98596,1,0.88902,0.98737,0.84565,0.97765,0.8056,0.96747,0.76606,0.94895,0.71096,0.92117,0.65101,0.89663,0.60407,0.87024,0.54591,0.84663,0.49616,0.82256,0.44412,0.78784,0.37652,0.75543,0.32473,0.72626,0.28035,0.69571,0.24565,0.66098,0.20509,0.61978,0.16581,0.57626,0.12933,0.51747,0.09285,0.44663,0.0607,0.36793,0.03774,0.3045,0.02448,0.23228,0.01402,0.1795,0.00713,0.1295,0.00382,0.04154,0,0,0.02958],\"triangles\":[29,30,34,32,2,3,57,56,1,56,55,1,55,54,1,54,53,1,53,52,1,52,51,1,51,50,1,50,49,1,49,48,1,48,47,1,46,45,1,47,46,1,45,44,1,44,43,1,43,42,1,41,40,1,42,41,1,39,38,1,40,39,1,38,37,1,37,36,1,36,35,1,34,30,33,30,31,33,32,3,33,31,32,33,1,35,33,35,34,33,36,28,35,35,29,34,37,27,36,31,2,32,28,29,35,38,26,37,27,28,36,30,2,31,26,27,37,29,2,30,39,25,38,25,26,38,28,2,29,40,24,39,24,25,39,27,2,28,23,24,41,41,24,40,26,2,27,42,23,41,25,2,26,22,23,42,43,21,42,21,22,42,24,2,25,23,2,24,44,20,43,20,21,43,22,2,23,45,18,44,18,19,44,19,20,44,21,20,22,20,2,22,46,18,45,17,18,46,19,4,20,4,2,20,47,17,46,58,2,4,9,7,17,7,5,17,17,5,18,48,16,47,16,17,47,18,5,19,5,4,19,15,9,17,16,15,17,49,15,48,15,16,48,6,5,7,10,9,11,11,9,15,50,14,49,14,15,49,14,11,15,8,7,9,12,11,14,51,12,50,12,13,50,13,14,50,13,12,14,11,12,51,52,11,51,52,10,11,9,10,52,53,9,52,8,9,53,54,8,53,54,7,8,55,7,54,56,6,55,55,6,7,57,5,56,56,5,6,57,4,5,0,58,4,0,4,57],\"weights\":[4,2,0.975535,8,0.016762,11,0.005087,17,0.002616,4,11,0.284036,17,0.280115,23,0.218214,8,0.217636,4,42,0.27814,38,0.27084,35,0.242325,31,0.208695,4,42,0.925018,38,0.048134,35,0.017713,31,0.009136,4,2,0.9812,8,0.013285,11,0.003672,17,0.001843,4,2,0.967576,8,0.024752,11,0.005254,17,0.002418,4,2,0.924636,8,0.06297,11,0.008787,17,0.003607,4,2,0.685091,8,0.290364,11,0.018272,17,0.006273,4,2,0.367694,8,0.595412,11,0.029019,17,0.007875,4,2,0.160894,8,0.760484,11,0.065392,17,0.01323,4,2,0.06198,8,0.7805,11,0.140479,17,0.017041,4,2,0.032099,8,0.604855,11,0.339809,17,0.023237,4,2,0.022126,11,0.513837,8,0.431422,17,0.032615,4,2,0.015499,11,0.76173,8,0.166318,17,0.056453,4,11,0.735022,17,0.180156,8,0.067792,23,0.01703,4,11,0.471671,17,0.471404,8,0.032714,23,0.024211,4,17,0.826018,11,0.11129,23,0.0494,8,0.013292,4,17,0.617287,23,0.342842,11,0.024115,25,0.015756,4,23,0.655866,17,0.292152,25,0.034601,11,0.01738,4,23,0.740983,25,0.152409,17,0.086689,31,0.019919,4,23,0.539193,25,0.40036,17,0.031319,31,0.029127,4,25,0.719794,23,0.155122,31,0.106082,17,0.019002,4,25,0.629952,31,0.273575,23,0.070626,35,0.025847,4,31,0.522117,25,0.422243,35,0.031409,23,0.024231,4,31,0.699157,35,0.230113,25,0.054,38,0.01673,4,35,0.681498,31,0.284083,38,0.019922,25,0.014496,4,35,0.842926,38,0.107668,31,0.039148,42,0.010258,4,38,0.685614,35,0.283668,42,0.017968,31,0.012751,4,38,0.900204,42,0.068479,35,0.026462,31,0.004855,4,42,0.803622,38,0.185039,35,0.008653,31,0.002686,4,42,0.970357,38,0.024854,35,0.003474,31,0.001315,4,42,0.992644,38,0.005427,35,0.001337,31,0.000593,4,42,0.963185,38,0.024308,35,0.008333,31,0.004173,4,42,0.92048,38,0.065247,35,0.010302,31,0.00397,4,42,0.755769,38,0.226025,35,0.013859,31,0.004347,4,38,0.685039,42,0.278219,35,0.02973,31,0.007012,4,38,0.799151,42,0.094628,35,0.092456,31,0.013764,4,38,0.51905,35,0.442032,42,0.020815,31,0.018102,4,35,0.813803,38,0.095895,31,0.077396,25,0.012907,4,35,0.637864,31,0.32028,38,0.024727,25,0.017128,4,31,0.795551,35,0.13254,25,0.05946,38,0.012449,4,31,0.668935,25,0.283588,35,0.030911,23,0.016566,4,25,0.729766,31,0.200666,23,0.052686,35,0.016882,4,25,0.597534,23,0.357781,31,0.026503,17,0.018181,4,23,0.724728,25,0.175743,17,0.079836,31,0.019693,4,23,0.648344,17,0.282776,25,0.048028,11,0.020852,4,17,0.542283,23,0.411037,11,0.027601,25,0.019079,4,17,0.754864,23,0.12321,11,0.105635,25,0.016292,4,17,0.602212,11,0.351172,23,0.028828,8,0.017787,4,11,0.676165,17,0.267769,8,0.039507,23,0.016559,4,2,0.016697,11,0.748318,8,0.163122,17,0.071863,4,2,0.018043,11,0.495107,8,0.471114,17,0.015735,4,2,0.096637,8,0.748982,11,0.137568,17,0.016813,4,2,0.268516,8,0.682094,11,0.040737,17,0.008654,4,2,0.645087,8,0.341611,11,0.010203,17,0.003099,4,2,0.824305,8,0.157612,11,0.013272,17,0.004812,4,2,0.907946,8,0.076162,11,0.011263,17,0.004629,4,2,0.963629,8,0.02631,11,0.006779,17,0.003282,4,2,0.987575,8,0.008504,11,0.002581,17,0.00134],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[2,0.994463,0.10509,-0.10509,0.994463,29.1,-452.15,8,0.908367,0.418174,-0.418174,0.908367,54.9,-448.7,11,0.682745,0.730657,-0.730657,0.682745,75.6,-439.4,17,0.444462,0.895798,-0.895798,0.444462,90,-423,23,0.340619,0.940201,-0.940201,0.340619,100.25,-402.6,25,0.270458,0.962732,-0.962732,0.270458,108.65,-381.25,31,0.256295,0.966599,-0.966599,0.256295,114.7,-360.1,35,0.259554,0.965729,-0.965729,0.259554,120.1,-338.4,38,0.184735,0.982788,-0.982788,0.184735,125.9,-314.75,42,0.155859,0.987779,-0.987779,0.155859,130.5,-291.35],\"edges\":[3,2,1,33,33,3,0,57,57,1,2,58,58,0],\"userEdges\":[]}]},{\"name\":\"龙头\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/龙头\",\"width\":228,\"height\":275,\"vertices\":[204.71,-108.6,198.78,119.32,-70.2,-115.76,-76.13,112.16,192.1,-17.16,194.35,-23.1,195.08,-31.64,191.01,-29.19,186.64,-26.6,186.79,-32.25,184,-38.33,177.95,-44.49,176.81,-36.96,176.3,-28.97,169.39,-28.5,166.26,-27.54,164.51,-33.43,161.72,-39.51,157.4,-46.67,153.19,-51.83,148.8,-58.25,141.47,-62.98,146.8,-52.3,151.38,-43.88,153.66,-37.42,156.86,-31.43,159.78,-26.5,163.01,-21.82,154.66,-27.89,147.22,-28.33,140,-29.47,134.6,-37.21,131.01,-45.51,128.24,-56.08,126.49,-61.73,121.2,-68.26,120.04,-63.84,120.59,-60.07,117.01,-68.57,113.59,-73.62,109.58,-78.87,105.5,-83.78,101.44,-88.98,96.02,-92.27,92.33,-94.57,95.13,-88.7,96.89,-83.5,98.75,-78.1,92.37,-84.57,85.85,-87.89,77.46,-90.11,70.17,-92.51,61.95,-93.81,55.3,-95.84,48.33,-97.22,39.6,-99.95,32.51,-102.49,25.92,-106.75,21.99,-113.36,21.59,-107.57,24.01,-102.46,31.1,-96.17,37.9,-94.1,46.35,-91.97,54.93,-89.44,61.83,-87.47,68.65,-84.04,76.15,-80.14,85.41,-76.75,93.16,-70.74,100.86,-66.79,107.66,-61.11,113.15,-56.68,116.5,-52.79,24.02,-96.9,19.98,-95.5,21.37,-89.28,27,-82.72,32.07,-75.83,37.04,-68.75,42.9,-63.25,50.73,-56.75,56.78,-50.79,62.13,-46.85,65.61,-47.91,65.86,-51.81,70.8,-53.28,78.89,-53.07,85.68,-50.44,92.63,-46.51,98.61,-41.8,101.29,-46.88,105.89,-50.71,113.06,-51.23,20.16,-85.1,10.1,-86.91,4.95,-86.95,-6.24,-89.53,2.89,-82.69,10.14,-78.9,21.43,-74.36,13.82,-75.97,2.85,-75.59,54.38,-47.15,47.71,-50.08,36.46,-55.97,27.63,-60.7,18.68,-66.68,9.87,-72.11,-6.29,-77.68,-16.19,-77.94,-20.02,-75.14,-16.23,-70.59,-11.18,-66.87,-4.62,-63.23,2.18,-59.32,7.59,-55.67,7.71,-52.62,-2.06,-56.07,-10.2,-58.39,-18.56,-59.81,-28.65,-60.37,-37.25,-60.44,-44.58,-59.68,-54.03,-57.78,-60.43,-55.74,-68.42,-50.75,-69.87,-46.94,-68.49,-44.05,-59.23,-44.46,-52.38,-44.33,-40.93,-44.23,-29.94,-43.5,-21.45,-43.12,-14.24,-41.44,1.23,-38.13,13.34,-34.57,22.84,-30.67,31.35,-27.2,39.4,-23.23,-23.5,-39.43,-30.19,-33.8,-35.58,-28.64,-39.37,-23.28,-49.38,-15.23,-42.41,-14.3,-50.7,-10.87,-60.46,-6.58,-73.18,-1.21,-62.64,4.07,-50.94,10.04,-54.68,11.44,-46,18.11,-39.81,24.22,-32.66,32.11,-26.92,36.26,-34.48,-17.11,-26.61,-19.6,-42.09,14.07,-32.85,16.16,-24.91,18.86,-29.03,45.06,-56.1,48.47,-50.11,47.04,-63.88,48.35,-70.98,47.82,-69.97,55.54,-61.78,59.25,-50.43,61.14,-43.05,60.81,-36.12,62.09,-26.71,60.82,-15.57,59.51,-5.83,58.32,0.47,56.48,5.47,54.51,6.25,57.13,0.31,60.53,-6.58,64.15,-12.77,67.15,-21.09,71.88,-23.83,75.31,-20.05,78.01,-15.08,79.09,-8.83,79.2,-1.51,76.89,1.35,78.22,5.17,79.57,8.66,79.96,2.2,82.04,-3.65,84.14,-10.12,88.37,-8.88,90.96,-1.63,89.2,5.25,87.92,12.21,87.66,19.07,87.53,5.38,73.52,12.26,70.35,17.68,67.69,25.59,63.74,33.21,59.18,41.49,55.95,50.41,51.73,1.33,75.07,-21.38,43.47,-13.59,41.21,-3.85,39.91,8.84,36.44,18.62,33.59,27.15,30.46,37.97,26.19,39.63,23.64,41.7,19.24,45.35,17.34,48.27,16.57,46.18,14.41,45.66,9.39,45.91,5.34,48.04,2.6,49.07,-0.68,46.87,-2.53,46.32,-6.64,47.29,-11.22,48.9,-13.37,45.02,-13.99,42.59,-16.85,55.21,51.65,60.16,51.93,53.17,55.05,45.12,60.69,36.72,68.19,28.33,77.42,23.57,83.4,17.19,92.39,16.28,96.66,19.33,98.64,24.48,98.58,29.9,97.92,38.23,96.99,45.94,94.74,56.03,91.25,65.67,88.05,76.3,83.22,86.44,77.88,96.5,73.89,105.06,67.7,112.9,62.36,22.22,102.67,16.5,109.12,14.51,114.52,19.56,110.85,25.79,105.96,33.86,103.22,47.22,101.02,59.33,98.84,68.01,96.21,77.85,94.47,88.29,91.29,93.62,86.27,96.72,80.55,90.97,93.96,89.29,99.21,93.17,97.92,98.34,93.45,102.97,88.52,108.4,83.61,112.72,77.22,117.4,68.38,117.11,75.68,120.93,72.83,125.32,63.63,128.12,56.15,129.65,51.14,132.61,46.91,136.07,40.8,139.41,37.29,146.34,36.32,153.54,36.51,158.39,36.38,155.21,41.45,152.05,47.57,148.42,54.63,145.62,60.31,141.77,66.01,139.23,71.2,143.7,68.46,149.72,62.31,155.18,55.95,160.39,48.09,163.38,42.56,165.43,37.11,168.34,36.59,172.5,36.35,172.31,43.75,173.6,45.83,176,42.09,178.12,39.4,179.06,41.82,179.54,44.43,179.8,47.84,180.34,50.21,183.3,49.83,185.98,46.8,187.59,42.84,188.18,39.36,188.17,35.76,190.11,37.96,191.67,39.65,193.93,41.16,195.59,39.05,195.5,34.85,195.06,30.33,194.68,27.77,197.01,24.73,200.15,19.42,201.51,14.55,199.53,8.79,197.45,4.09,199.44,0.59,200.47,-4.38,199.71,-7.85,195.28,-14.43,107.8,60.47,101.29,56.75,96.36,50.47,89.11,54.18,81.58,56.89,74.6,57.91,63.58,56.92,67.91,59.44],\"uvs\":[0,0,1,0,0,1,1,1,0.40242,0.03718,0.37611,0.02955,0.33861,0.02773,0.34979,0.04227,0.36163,0.05791,0.33685,0.05791,0.31054,0.06864,0.28422,0.09118,0.31733,0.09464,0.35242,0.09573,0.35527,0.12082,0.35988,0.13209,0.33422,0.139,0.3079,0.14973,0.27698,0.16609,0.25483,0.18191,0.2272,0.19846,0.20725,0.22555,0.25352,0.20518,0.28992,0.18773,0.31799,0.17882,0.34387,0.16664,0.36514,0.15555,0.38532,0.14337,0.35966,0.17427,0.35856,0.20137,0.3544,0.22773,0.32106,0.24809,0.2851,0.26191,0.23904,0.273,0.21448,0.27991,0.18641,0.29973,0.20593,0.30355,0.22238,0.30118,0.18554,0.315,0.16383,0.32791,0.14124,0.343,0.12019,0.35827,0.09782,0.37355,0.084,0.39355,0.07435,0.40718,0.09979,0.39646,0.12238,0.38955,0.14584,0.38227,0.11821,0.40609,0.1044,0.43009,0.09562,0.46082,0.08597,0.48755,0.08115,0.51755,0.07304,0.54191,0.06777,0.56737,0.05681,0.59937,0.0465,0.62537,0.02852,0.64973,0,0.66464,0.02545,0.66555,0.0476,0.65627,0.07435,0.62991,0.08269,0.605,0.09102,0.57409,0.10111,0.54264,0.109,0.51737,0.12326,0.49227,0.13948,0.46464,0.1533,0.43064,0.17874,0.40191,0.19519,0.37355,0.21931,0.34827,0.23817,0.32791,0.25483,0.31537,0.07194,0.65573,0.07852,0.67027,0.10571,0.66464,0.13378,0.64355,0.16339,0.62446,0.19387,0.60573,0.21733,0.58391,0.24497,0.55482,0.2704,0.53227,0.28707,0.51246,0.28203,0.49991,0.26492,0.49937,0.2579,0.48155,0.2579,0.45209,0.26865,0.42718,0.2851,0.40155,0.30505,0.37937,0.28247,0.37009,0.26514,0.35373,0.26207,0.32773,0.12413,0.66864,0.11733,0.70537,0.11777,0.72409,0.10769,0.765,0.13663,0.73118,0.15242,0.70446,0.17106,0.663,0.16492,0.69082,0.16777,0.73064,0.28663,0.54064,0.27457,0.56518,0.25001,0.60664,0.23027,0.63918,0.20505,0.67227,0.18225,0.70482,0.15966,0.76409,0.15966,0.80009,0.17238,0.81373,0.1919,0.79955,0.20769,0.78082,0.22282,0.75664,0.23926,0.73155,0.25462,0.71155,0.26799,0.71082,0.25396,0.74664,0.24475,0.77646,0.23948,0.807,0.23817,0.84373,0.23883,0.875,0.24299,0.90155,0.25242,0.93573,0.26207,0.95882,0.28488,0.98737,0.30176,0.99227,0.31426,0.987,0.31141,0.95337,0.31119,0.92846,0.31032,0.88682,0.31229,0.84682,0.31295,0.81591,0.31953,0.78955,0.33225,0.733,0.3465,0.68864,0.36251,0.65373,0.37676,0.62246,0.39321,0.59282,0.3294,0.823,0.35483,0.84682,0.37808,0.86591,0.40198,0.87918,0.43839,0.91482,0.44168,0.88937,0.45769,0.91918,0.47764,0.95427,0.50264,1,0.52457,0.96118,0.54935,0.91809,0.55593,0.93155,0.58422,0.89937,0.61032,0.87627,0.64409,0.84955,0.66163,0.82827,0.42852,0.86082,0.41668,0.83246,0.56602,0.88555,0.57413,0.85173,0.5851,0.82264,0.69299,0.83537,0.69168,0.87264,0.69102,0.92318,0.68839,0.96318,0.68904,0.98882,0.71733,0.98882,0.73795,0.95955,0.75527,0.92173,0.76624,0.88173,0.76733,0.85882,0.76931,0.82518,0.76229,0.78482,0.75593,0.74955,0.74716,0.72682,0.73795,0.70882,0.74935,0.70573,0.76492,0.727,0.78159,0.75173,0.7954,0.77391,0.81712,0.80373,0.83247,0.81337,0.84387,0.79937,0.84804,0.78118,0.84782,0.75846,0.83685,0.73209,0.84233,0.72155,0.84782,0.70755,0.84913,0.69482,0.859,0.71809,0.86887,0.73918,0.88817,0.76227,0.89935,0.75755,0.8908,0.73137,0.88444,0.70646,0.88247,0.68118,0.88115,0.65627,0.82128,0.70737,0.80659,0.68264,0.79431,0.66318,0.77611,0.63482,0.75527,0.60755,0.74014,0.57773,0.72062,0.54573,0.82852,0.72191,0.68554,0.80609,0.68181,0.77937,0.67501,0.74409,0.65834,0.69827,0.64475,0.663,0.63005,0.63227,0.6101,0.59337,0.59869,0.58755,0.57918,0.58046,0.5704,0.56737,0.56668,0.55682,0.55747,0.56464,0.53554,0.567,0.51777,0.56646,0.50549,0.559,0.49102,0.55555,0.48312,0.56373,0.46514,0.56609,0.44497,0.563,0.43532,0.55737,0.43312,0.57155,0.42084,0.58064,0.71975,0.52827,0.7204,0.51027,0.73488,0.53537,0.76054,0.56409,0.79431,0.59391,0.83576,0.62355,0.86251,0.64027,0.90264,0.66264,0.9215,0.66555,0.92983,0.65427,0.92896,0.63555,0.92545,0.61591,0.9204,0.58573,0.90966,0.55791,0.89321,0.52155,0.87808,0.48682,0.85571,0.44864,0.83115,0.41227,0.81251,0.37609,0.78444,0.34555,0.7601,0.31755,0.94716,0.64337,0.97611,0.66355,1,0.67027,0.98334,0.65227,0.96119,0.63009,0.94826,0.601,0.93707,0.55264,0.92611,0.50882,0.91361,0.47755,0.90483,0.44191,0.8897,0.40427,0.86712,0.38537,0.84168,0.37464,0.90111,0.39427,0.92435,0.39991,0.91821,0.38591,0.89804,0.36755,0.87589,0.35118,0.85374,0.33191,0.82523,0.31682,0.78597,0.30064,0.81799,0.301,0.80505,0.28737,0.76426,0.27227,0.73115,0.26282,0.709,0.25773,0.69014,0.24737,0.66295,0.23537,0.64716,0.22355,0.64212,0.19846,0.64212,0.17227,0.64102,0.15464,0.66361,0.16573,0.6908,0.17664,0.72216,0.18918,0.74738,0.19882,0.77282,0.21227,0.79584,0.221,0.78334,0.205,0.75571,0.18373,0.7272,0.16446,0.69212,0.14627,0.66755,0.13591,0.64343,0.129,0.6408,0.11846,0.63926,0.10337,0.67172,0.10337,0.68071,0.09846,0.66404,0.09009,0.65198,0.08264,0.66251,0.079,0.67391,0.077,0.68883,0.07573,0.69913,0.07355,0.69716,0.06282,0.68356,0.05337,0.66602,0.04791,0.65067,0.04609,0.63488,0.04646,0.64431,0.03918,0.65154,0.03337,0.6579,0.025,0.64847,0.01918,0.63005,0.01991,0.61032,0.02191,0.59913,0.02355,0.58554,0.01537,0.56185,0.00446,0.54036,0,0.51536,0.00773,0.49497,0.01573,0.4794,0.00882,0.45747,0.00555,0.44233,0.00864,0.41404,0.02537,0.75242,0.33627,0.73685,0.36027,0.70988,0.37882,0.72698,0.40482,0.7397,0.43191,0.74497,0.45718,0.7419,0.49737,0.75242,0.48137],\"triangles\":[0,321,320,127,2,148,0,320,316,165,148,166,285,269,266,191,182,192,257,256,262,262,256,255,262,255,254,235,193,249,253,252,251,254,253,251,249,193,250,193,192,250,254,251,250,262,254,250,251,249,250,315,310,1,316,315,1,310,309,1,309,302,1,287,286,1,301,287,1,302,301,1,286,285,1,266,265,1,285,266,1,265,264,1,264,263,1,263,262,1,262,250,1,166,148,3,181,169,3,169,168,3,168,167,3,192,182,3,182,181,3,250,192,3,167,166,3,194,193,235,248,249,251,252,248,251,285,270,269,254,239,253,248,236,249,236,235,249,253,238,252,237,248,252,238,237,252,255,241,254,240,239,254,239,238,253,237,236,248,0,6,321,301,288,287,258,257,262,195,194,235,241,240,254,234,195,235,234,235,236,238,196,237,196,234,237,234,236,237,183,182,191,261,258,262,256,242,255,242,241,255,239,233,238,233,196,238,261,262,263,240,232,239,232,233,239,264,261,263,243,242,257,257,242,256,241,231,240,231,232,240,309,303,302,170,169,181,258,243,257,264,259,261,259,258,261,269,267,266,193,190,192,190,191,192,196,195,234,265,259,264,244,243,258,194,189,193,242,230,241,230,231,241,189,190,193,188,194,195,184,183,191,259,244,258,330,230,242,190,184,191,330,329,230,260,259,265,187,189,194,188,187,194,233,188,196,196,188,195,243,330,242,198,188,233,266,260,265,199,198,233,185,184,190,189,186,190,186,185,190,260,244,259,232,199,233,187,186,189,244,328,243,328,330,243,246,245,267,245,260,266,267,245,266,329,229,230,171,170,181,245,244,260,198,197,188,204,186,187,197,204,187,188,197,187,185,179,184,184,179,183,179,180,183,183,180,182,180,181,182,178,179,185,204,185,186,285,271,270,327,328,244,204,178,185,180,171,181,231,200,232,200,199,232,245,327,244,197,177,204,177,178,204,269,268,267,268,246,267,326,327,245,198,177,197,270,268,269,179,172,180,172,171,180,247,246,268,176,177,198,246,324,245,324,326,245,301,295,288,201,200,231,199,176,198,271,268,270,295,289,288,272,271,284,178,172,179,286,284,285,284,271,285,230,201,231,200,176,199,202,201,230,323,324,246,247,323,246,271,247,268,177,173,178,173,172,178,175,176,200,283,284,286,287,283,286,201,209,200,209,175,200,283,272,284,172,205,171,205,161,171,161,170,171,315,311,310,273,272,283,271,272,247,161,162,170,174,173,177,176,174,177,170,162,169,162,168,169,325,326,324,209,208,175,228,229,329,162,163,168,173,206,172,272,323,247,203,202,230,229,203,230,274,273,283,272,273,323,206,205,172,176,175,174,282,274,283,282,283,287,288,282,287,210,209,201,163,167,168,174,207,173,207,206,173,273,324,323,202,210,201,328,329,330,273,325,324,228,227,229,328,228,329,175,207,174,228,328,327,326,228,327,203,211,202,211,210,202,274,325,273,215,228,326,208,207,175,164,166,167,163,164,167,227,203,229,274,275,325,281,275,282,275,274,282,325,215,326,281,282,288,289,281,288,295,294,289,164,165,166,211,203,227,212,211,227,228,215,227,215,212,227,294,290,289,315,314,311,309,304,303,276,275,281,277,276,281,300,295,301,220,215,325,275,276,325,276,90,325,90,220,325,30,90,276,205,155,161,161,154,162,153,163,162,280,281,289,300,301,302,303,300,302,155,154,161,280,277,281,163,152,164,299,295,300,303,299,300,154,153,162,290,280,289,164,151,165,151,149,165,149,148,165,153,152,163,152,151,164,299,296,295,304,299,303,206,155,205,278,277,280,207,160,206,160,155,206,296,294,295,279,280,290,292,291,290,309,308,304,305,298,304,292,290,294,304,298,299,298,296,299,208,160,207,296,293,294,293,292,294,314,312,311,305,297,298,291,279,290,308,305,304,305,306,297,298,297,296,297,293,296,160,154,155,209,160,208,279,278,280,308,307,305,310,308,309,137,136,160,215,214,212,137,160,209,311,307,308,310,311,308,306,293,297,307,306,305,220,219,215,210,137,209,311,306,307,29,30,277,277,30,276,159,153,154,160,159,154,278,27,277,27,29,277,306,313,293,27,278,279,292,27,279,291,292,279,318,292,293,313,318,293,318,27,292,136,157,160,213,218,210,218,137,210,311,312,306,312,313,306,138,137,218,214,213,212,211,212,210,212,213,210,90,224,220,222,138,218,320,319,316,217,218,213,317,318,314,314,318,313,314,313,312,158,152,153,159,158,153,226,138,222,315,317,314,128,127,148,221,222,218,319,317,316,150,151,152,157,159,160,158,150,152,316,317,315,219,217,215,157,156,159,214,216,213,216,217,213,136,135,157,4,27,318,145,158,159,156,145,159,217,216,215,216,214,215,145,150,158,126,2,127,145,146,150,150,149,151,219,218,217,147,149,150,146,147,150,31,90,30,90,84,224,322,4,318,147,148,149,89,84,90,321,322,318,319,318,317,219,221,218,319,321,318,225,226,222,320,321,319,220,221,219,147,128,148,28,29,27,224,223,222,222,221,220,224,222,220,13,27,4,139,138,226,84,83,224,6,5,321,146,144,147,144,128,147,8,13,4,135,134,157,129,128,144,145,144,146,223,225,222,89,88,84,5,322,321,13,14,27,224,225,223,156,143,145,143,130,144,130,129,144,145,143,144,83,103,224,134,140,157,103,139,224,139,226,224,224,226,225,93,90,31,26,28,27,157,142,156,142,143,156,140,141,157,141,142,157,5,4,322,32,93,31,131,130,142,14,15,27,142,130,143,5,8,4,104,138,139,103,104,139,88,87,84,7,8,5,15,26,27,141,131,142,105,137,138,104,105,138,6,7,5,93,91,90,132,131,141,24,29,28,15,16,26,16,25,26,25,28,26,9,13,8,7,9,8,25,24,28,106,136,137,105,106,137,9,12,13,24,30,29,14,16,15,73,93,32,24,23,30,140,132,141,13,12,14,12,16,14,93,92,91,10,12,9,106,117,136,23,31,30,134,133,140,6,9,7,117,135,136,0,11,10,0,10,6,16,17,25,17,24,25,87,86,84,118,134,135,12,17,16,6,10,9,11,17,12,23,22,31,117,118,135,133,132,140,129,126,128,10,11,12,22,32,31,17,18,24,18,23,24,119,133,134,118,119,134,119,120,133,126,127,128,123,130,131,122,131,132,11,18,17,120,121,133,124,125,130,123,124,130,130,125,129,125,126,129,133,121,132,121,122,132,122,123,131,106,116,117,91,89,90,33,73,32,83,82,103,106,107,116,22,33,32,19,18,11,125,2,126,86,85,84,18,19,23,19,22,23,91,70,89,20,19,11,84,85,83,85,82,83,82,104,103,21,33,22,116,118,117,82,81,104,92,70,91,70,88,89,0,20,11,115,118,116,81,80,105,71,70,92,70,69,88,81,105,104,33,37,73,72,92,93,85,81,82,69,87,88,86,66,85,66,81,85,72,71,92,73,72,93,124,2,125,20,21,22,67,66,86,20,22,19,114,119,118,69,68,87,67,86,87,68,67,87,108,115,116,107,108,116,37,72,73,115,114,118,123,2,124,79,106,105,80,79,105,120,112,121,34,37,33,21,34,33,113,120,119,114,113,119,65,80,81,66,65,81,0,21,20,111,2,123,111,123,122,121,111,122,108,114,115,108,102,114,113,112,120,37,36,72,112,111,121,36,71,72,65,64,80,36,38,71,79,78,106,100,107,106,78,100,106,64,79,80,34,36,37,109,113,114,102,109,114,39,70,71,38,39,71,21,35,34,35,36,34,64,63,79,109,112,113,41,40,21,0,41,21,40,35,21,101,108,107,100,101,107,35,38,36,0,42,41,110,2,111,40,39,35,39,40,70,40,47,70,47,69,70,63,78,79,110,111,112,109,110,112,97,2,110,35,39,38,99,102,108,101,99,108,78,77,100,47,68,69,47,48,68,63,62,78,94,101,100,98,109,102,77,94,100,99,98,102,40,41,47,94,99,101,62,77,78,98,97,109,109,97,110,46,48,47,95,96,98,49,67,68,48,49,68,95,98,99,94,95,99,49,50,67,41,46,47,62,61,77,96,97,98,50,66,67,0,43,42,76,94,77,41,42,46,76,95,94,61,76,77,0,44,43,76,75,95,45,48,46,51,65,66,50,51,66,58,2,97,42,45,46,61,74,76,45,49,48,59,97,96,75,59,96,75,96,95,43,45,42,45,44,49,52,64,65,51,52,65,59,58,97,74,75,76,53,54,63,44,50,49,53,63,64,52,53,64,43,44,45,44,51,50,55,62,63,54,55,63,55,61,62,53,52,51,44,53,51,44,58,53,55,56,61,74,60,75,60,59,75,0,58,44,60,74,61,56,60,61,58,54,53,58,55,54,57,60,56,58,56,55,57,59,60,58,57,56,58,59,57],\"edges\":[2,58,58,0,3,148,148,2,1,250,250,3,0,316,316,1],\"userEdges\":[]},{\"name\":\"动画拆/龙头_1\",\"transform\":{\"x\":66.16,\"y\":-0.97,\"skX\":91.07,\"skY\":91.07},\"path\":\"动画拆/龙头\"}]},{\"name\":\"龙身\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/龙身\",\"width\":200,\"height\":1609,\"vertices\":[-111.79,-355.12,88.21,-355.12,-111.79,1253.88,88.21,1253.88,-46.95,-298.25,-22.15,-335,37.7,-331.75,56.15,-282.55,-49.65,-263.8,-50.95,-234.7,-50.6,-204.1,-52.9,-179.7,-54.55,-157.35,-55.4,-139.9,-56,-121.7,-57.05,-99.3,-57.85,-78.1,-57.55,-56.75,-54.8,-32.6,-54.8,-13.35,-55.1,5.9,-54.5,21.4,-54.95,37.05,-55.1,58.7,-54.5,79.45,-55.1,96.15,-54.25,114.95,-54.4,133.35,-54.1,155.55,-54.4,176.55,-53.8,199.2,-54.9,225.35,-53.95,251.3,-53.3,274.65,-53,290,-51.65,315.75,-51.7,335.7,-51.5,356.75,-52,378.65,-51.65,401,-51.2,422.85,-50.85,445.25,-50.85,462.7,-50.2,487.7,-49.4,511.65,-48.1,542.55,-46.6,571.9,-45.45,597.25,-44,625.95,-42.85,645.7,-41.05,668.4,-40.4,692.85,-37.95,728.95,-34.85,762.1,-33.55,795.5,-35.2,824.6,-38,842.25,-42.7,857.4,-48.1,869.3,-58.7,884.5,-52,887.75,-53.45,895.6,-58.7,910.75,-61.45,928.4,-63.1,939.65,-63.1,947.2,-54.95,940.5,-52.9,944.9,-56,958.7,-57.5,971.1,-58.3,982.95,-58.15,993.95,-58.65,1006.85,-57.9,1017.85,-59.35,1029.05,-62.5,1038.45,-69.25,1042.5,-62.5,1047,-51.5,1047.2,-55.55,1062.05,-55.75,1079.55,-53.75,1097.7,-50.6,1111.65,-46.8,1126.45,-39.8,1144.2,-34.9,1156.8,-36.45,1179,-30.85,1178.3,-27.5,1168.9,-23.2,1156.55,-19.4,1179.2,-11.15,1197.85,-1.25,1213.55,5.3,1226.8,12.7,1243.85,14.7,1253.88,18.3,1241.15,21.45,1228.6,25.95,1217.6,32.2,1208.2,34.7,1202.35,41.45,1185.3,47.7,1166.2,47.7,1153.65,52.9,1163.75,57.6,1176.1,62.3,1174.75,59.4,1166.45,59.8,1148.95,65.45,1135.25,68.55,1125.55,72.8,1109.85,76.85,1089.9,77.1,1077.8,77.1,1061.85,71.95,1043.9,78.9,1042.75,88.21,1040.95,88.21,1033.8,83.15,1032.9,80.25,1024.35,76.9,1012.9,77.55,998.1,75.95,976.55,74.9,960.15,72.85,949.35,69.45,940.15,66.55,933.65,71.95,935.9,78.9,941.3,82.05,937.7,80,929.6,77.1,915.5,73.5,903.6,69.25,893.5,65.65,885.85,72.15,882.45,72.35,877.55,65.4,870.15,58.45,857.8,55.75,848.15,51.75,834.7,47.9,819.4,46.1,813.35,45.9,804.15,46.1,784.85,46.75,768.3,48.3,745.85,49.7,727.25,50.8,706.1,52.15,687.05,53.5,665.1,55.2,639.5,56.2,616.35,57.95,596.55,58.65,576.6,60.25,549.7,60.7,517.7,62.05,486.85,63,457.35,64.15,419.65,64.1,381.7,63.9,344.2,63.9,311.25,66.85,277.45,66.4,238.55,66.4,201.1,65.95,157.2,66.65,102.3,67.1,60.7,67.3,34.15,66.9,-5.35,67.6,-34.4,69.4,-71.2,70.05,-93.6,67.55,-117.65,67.1,-136.6,66.2,-161.25,64.1,-178.45,62.75,-199.95,63.4,-223.25,64.6,-244.7,62.1,-271,-33.7,810,6.7,987.95,-20.75,-285.45,32.3,-285.2],\"uvs\":[0,0,1,0,0,1,1,1,0.32418,0.03534,0.44818,0.0125,0.74743,0.01452,0.83968,0.0451,0.31068,0.05675,0.30418,0.07484,0.30593,0.09386,0.29443,0.10902,0.28618,0.12291,0.28193,0.13376,0.27893,0.14507,0.27368,0.15899,0.26968,0.17217,0.27118,0.18544,0.28493,0.20044,0.28493,0.21241,0.28343,0.22437,0.28643,0.23401,0.28418,0.24373,0.28343,0.25719,0.28643,0.27008,0.28343,0.28046,0.28768,0.29215,0.28693,0.30358,0.28843,0.31738,0.28693,0.33043,0.28993,0.34451,0.28443,0.36076,0.28918,0.37689,0.29243,0.3914,0.29393,0.40094,0.30068,0.41695,0.30043,0.42934,0.30143,0.44243,0.29893,0.45604,0.30068,0.46993,0.30293,0.48351,0.30468,0.49743,0.30468,0.50828,0.30793,0.52381,0.31193,0.5387,0.31843,0.5579,0.32593,0.57614,0.33168,0.5919,0.33893,0.60974,0.34468,0.62201,0.35368,0.63612,0.35693,0.65131,0.36918,0.67375,0.38468,0.69435,0.39118,0.71511,0.38293,0.7332,0.36893,0.74417,0.34543,0.75358,0.31843,0.76098,0.26543,0.77043,0.29893,0.77245,0.29168,0.77732,0.26543,0.78674,0.25168,0.79771,0.24343,0.8047,0.24343,0.80939,0.28418,0.80523,0.29443,0.80796,0.27893,0.81654,0.27143,0.82425,0.26743,0.83161,0.26818,0.83845,0.26568,0.84647,0.26943,0.8533,0.26218,0.86026,0.24643,0.86611,0.21268,0.86862,0.24643,0.87142,0.30143,0.87154,0.28118,0.88077,0.28018,0.89165,0.29018,0.90293,0.30593,0.9116,0.32493,0.9208,0.35993,0.93183,0.38443,0.93966,0.37668,0.95346,0.40468,0.95302,0.42143,0.94718,0.44293,0.93951,0.46193,0.95358,0.50318,0.96517,0.55268,0.97493,0.58543,0.98317,0.62243,0.99376,0.63243,1,0.65043,0.99209,0.66618,0.98429,0.68868,0.97745,0.71993,0.97161,0.73243,0.96797,0.76618,0.95737,0.79743,0.9455,0.79743,0.9377,0.82343,0.94398,0.84693,0.95166,0.87043,0.95082,0.85593,0.94566,0.85793,0.93478,0.88618,0.92627,0.90168,0.92024,0.92293,0.91048,0.94318,0.89808,0.94443,0.89056,0.94443,0.88065,0.91868,0.86949,0.95343,0.86878,1,0.86766,1,0.86322,0.97468,0.86266,0.96018,0.85734,0.94343,0.85023,0.94668,0.84103,0.93868,0.82764,0.93343,0.81744,0.92318,0.81073,0.90618,0.80501,0.89168,0.80097,0.91868,0.80237,0.95343,0.80573,0.96918,0.80349,0.95893,0.79846,0.94443,0.78969,0.92643,0.7823,0.90518,0.77602,0.88718,0.77127,0.91968,0.76915,0.92068,0.76611,0.88593,0.76151,0.85118,0.75383,0.83768,0.74783,0.81768,0.73948,0.79843,0.72997,0.78943,0.72621,0.78843,0.72049,0.78943,0.70849,0.79268,0.69821,0.80043,0.68425,0.80743,0.67269,0.81293,0.65955,0.81968,0.64771,0.82643,0.63407,0.83493,0.61816,0.83993,0.60377,0.84868,0.59146,0.85218,0.57906,0.86018,0.56235,0.86243,0.54246,0.86918,0.52328,0.87393,0.50495,0.87968,0.48152,0.87943,0.45793,0.87843,0.43463,0.87843,0.41415,0.89318,0.39314,0.89093,0.36897,0.89093,0.34569,0.88868,0.31841,0.89218,0.28429,0.89443,0.25843,0.89543,0.24193,0.89343,0.21738,0.89693,0.19933,0.90593,0.17645,0.90918,0.16253,0.89668,0.14759,0.89443,0.13581,0.88993,0.12049,0.87943,0.1098,0.87268,0.09644,0.87593,0.08195,0.88193,0.06862,0.86943,0.05228,0.39043,0.72412,0.59243,0.83472,0.45518,0.0433,0.72043,0.04345],\"triangles\":[144,143,142,145,144,142,145,142,141,153,152,154,101,100,105,155,154,156,157,156,158,105,100,106,108,107,106,180,179,178,108,106,109,162,161,164,163,162,164,161,160,164,180,178,177,181,180,177,164,166,165,167,166,168,171,170,172,109,106,110,176,175,174,172,170,173,141,140,137,145,141,137,139,138,137,140,139,137,146,145,137,147,146,137,148,147,137,149,148,137,150,149,137,151,150,137,152,151,137,154,152,137,136,134,133,136,133,132,137,136,132,125,124,129,154,137,130,156,154,130,129,124,130,124,123,130,123,122,130,132,131,130,137,132,130,158,156,130,159,158,130,160,159,130,164,160,130,99,98,3,98,97,3,97,96,3,96,95,3,106,100,3,100,99,3,111,110,3,110,106,3,112,111,3,121,120,118,122,121,118,164,130,118,130,122,118,120,119,118,5,6,1,0,5,1,7,182,1,6,7,1,182,181,1,166,164,1,168,166,1,169,168,1,176,174,1,177,176,1,181,177,1,174,173,1,173,170,1,170,169,1,164,118,1,113,112,117,118,119,117,119,116,117,116,114,117,114,113,117,112,3,117,115,114,116,120,115,119,115,116,119,131,128,130,128,129,130,121,115,120,132,127,131,127,128,131,128,126,129,126,125,129,184,115,121,115,113,114,184,121,122,123,184,122,115,78,113,78,80,113,80,81,113,113,81,112,133,127,132,81,111,112,135,134,136,124,184,123,81,82,111,125,184,124,126,184,125,134,127,133,82,110,111,79,80,78,6,186,7,135,136,137,138,135,137,184,78,115,127,126,128,27,167,168,83,103,110,82,83,110,135,127,134,83,89,103,135,61,127,21,170,171,167,29,166,26,27,168,169,24,168,127,184,126,175,15,174,15,16,174,17,172,173,174,16,173,16,17,173,32,164,165,17,18,172,32,33,164,23,169,170,20,21,171,166,31,165,19,171,172,18,19,172,103,109,110,104,107,108,60,61,135,61,67,127,34,163,164,21,23,170,29,30,166,30,31,166,24,25,168,177,12,176,12,13,176,176,14,175,14,15,175,13,14,176,27,28,167,23,24,169,19,20,171,25,26,168,31,32,165,161,39,160,178,12,177,37,161,162,67,184,127,33,34,164,28,29,167,41,159,160,139,135,138,35,36,163,182,186,181,11,12,178,163,36,162,40,41,160,139,57,135,57,58,135,58,60,135,37,38,161,103,108,109,34,35,163,10,179,180,181,186,180,186,9,180,179,11,178,39,40,160,36,37,162,9,10,180,159,42,158,10,11,179,38,39,161,103,104,108,41,42,159,44,157,158,43,44,158,42,43,158,107,105,106,7,186,182,185,9,186,44,45,157,46,155,156,45,46,156,157,45,156,104,102,105,104,105,107,47,154,155,46,47,155,56,57,140,140,57,139,47,153,154,102,101,105,141,56,140,48,152,153,47,48,153,49,151,152,48,49,152,50,150,151,49,50,151,103,102,104,51,149,150,50,51,150,142,55,141,55,56,141,52,148,149,51,52,149,61,66,67,52,147,148,143,55,142,53,146,147,52,53,147,89,90,102,89,102,103,90,101,102,54,144,145,146,53,145,53,54,145,144,183,143,183,55,143,54,183,144,62,66,61,5,185,186,5,186,6,91,100,101,90,91,101,92,99,100,91,92,100,92,98,99,73,78,184,93,97,98,92,93,98,83,84,89,8,9,185,94,95,96,93,96,97,67,68,184,93,94,96,93,2,94,94,2,95,72,73,184,92,2,93,71,72,184,69,70,184,70,71,184,68,69,184,73,74,78,5,4,185,89,88,90,86,2,91,91,2,92,90,87,91,87,86,91,62,63,66,84,85,89,88,87,90,4,8,185,85,88,89,0,4,5,86,87,88,85,86,88,53,59,54,54,59,183,59,55,183,84,86,85,52,59,53,59,56,55,59,57,56,84,2,86,59,58,57,83,2,84,51,59,52,50,49,51,49,59,51,74,75,78,59,60,58,48,59,49,47,59,48,45,59,46,82,2,83,46,59,47,44,59,45,0,8,4,43,2,44,2,59,44,65,68,67,77,79,78,81,2,82,42,2,43,0,9,8,75,77,78,9,0,10,0,11,10,36,38,37,42,41,40,42,40,39,2,42,39,38,2,39,35,34,36,34,38,36,59,61,60,34,0,38,0,2,38,2,64,59,76,2,81,63,64,66,31,0,34,34,33,32,31,34,32,66,65,67,0,12,11,59,62,61,80,76,81,29,31,30,23,25,24,64,65,66,27,29,28,0,20,22,21,0,22,20,17,22,17,21,22,76,80,79,77,76,79,26,25,27,27,25,29,25,0,29,29,0,31,0,13,12,18,17,19,23,21,20,0,23,20,19,17,20,0,25,23,65,69,68,17,0,21,0,14,13,0,15,14,0,16,15,65,70,69,16,0,17,76,74,73,72,76,73,70,72,71,76,72,70,59,63,62,65,76,70,76,75,74,64,63,59,75,76,77,76,65,64,2,76,64],\"weights\":[1,4,1,1,4,1,3,49,0.399709,51,0.332668,48,0.267623,4,49,0.486647,52,0.209167,48,0.19242,51,0.111767,4,4,0.693976,24,0.123344,7,0.103771,16,0.078909,1,4,1,1,4,1,2,4,0.881781,7,0.118219,4,4,0.68581,24,0.132871,7,0.104154,16,0.077165,4,4,0.581497,24,0.18702,7,0.134388,16,0.097095,4,4,0.452701,24,0.260672,7,0.16907,16,0.117558,4,4,0.315178,24,0.356856,7,0.186482,16,0.141484,4,4,0.220732,24,0.421329,7,0.183023,16,0.174915,4,4,0.176806,24,0.396226,16,0.226469,14,0.200499,4,24,0.315955,14,0.311204,16,0.250798,7,0.122044,4,14,0.671172,16,0.17383,24,0.105228,7,0.04977,4,14,0.980304,16,0.01317,24,0.003634,7,0.002892,4,14,0.606865,16,0.22166,7,0.091355,10,0.080121,4,14,0.34583,10,0.219201,16,0.218583,7,0.216387,4,10,0.309637,14,0.255451,7,0.24637,16,0.188542,4,10,0.374228,7,0.220975,15,0.212883,14,0.191914,4,10,0.393734,15,0.285478,7,0.177844,14,0.142944,4,10,0.39547,15,0.354441,7,0.139895,14,0.110193,4,15,0.404536,10,0.389105,21,0.1047,7,0.10166,4,15,0.42895,10,0.34074,21,0.150497,7,0.079812,4,15,0.444953,10,0.278622,21,0.20809,7,0.068335,4,15,0.445137,21,0.282261,10,0.202492,26,0.07011,4,15,0.419895,21,0.353978,10,0.142212,26,0.083915,4,21,0.408597,15,0.388629,26,0.107354,10,0.095419,4,21,0.429613,15,0.335692,26,0.157088,28,0.077607,4,21,0.425949,15,0.237373,26,0.227121,28,0.109558,4,21,0.379243,26,0.307296,28,0.170821,15,0.14264,4,26,0.306057,21,0.30336,28,0.270404,36,0.120179,4,28,0.461921,26,0.222571,21,0.171627,36,0.143881,4,28,0.651987,26,0.134494,36,0.131036,32,0.082483,4,28,0.975715,36,0.013003,26,0.005948,32,0.005334,4,28,0.786226,36,0.1458,32,0.035001,26,0.032972,4,36,0.416208,28,0.393648,32,0.107965,26,0.082179,4,36,0.483218,28,0.241362,32,0.178913,26,0.096507,4,36,0.420044,32,0.259555,28,0.16646,33,0.153941,4,32,0.326653,36,0.278597,33,0.27394,28,0.12081,4,33,0.375166,32,0.359147,36,0.178224,28,0.087464,4,33,0.410803,32,0.329027,36,0.13616,40,0.124011,4,33,0.454494,32,0.240588,40,0.209167,36,0.095751,4,33,0.459444,40,0.316513,32,0.157278,36,0.066764,4,33,0.434351,40,0.410427,32,0.088867,43,0.066355,4,40,0.472507,33,0.349955,43,0.112344,32,0.065193,4,40,0.524814,33,0.236283,43,0.18728,32,0.051622,4,40,0.509241,43,0.307037,33,0.131158,44,0.052564,4,40,0.462905,43,0.394261,33,0.08384,44,0.058994,4,43,0.456893,40,0.416223,44,0.072811,33,0.054073,4,43,0.510422,40,0.323132,44,0.122098,33,0.044348,4,43,0.53949,44,0.258636,40,0.158925,54,0.042949,4,43,0.449311,44,0.432302,40,0.067704,54,0.050683,4,44,0.532638,43,0.290178,54,0.091613,45,0.085571,4,44,0.502336,54,0.191814,45,0.155289,43,0.15056,4,44,0.39601,54,0.314251,45,0.197182,43,0.092557,4,54,0.500796,44,0.256166,45,0.189045,43,0.053993,4,54,0.696523,44,0.142253,45,0.131501,43,0.029723,4,54,0.817979,45,0.081004,44,0.072447,50,0.02857,4,54,0.902069,45,0.045604,44,0.038304,50,0.014024,4,54,0.927316,45,0.033946,44,0.026059,50,0.012679,4,54,0.945197,45,0.024423,44,0.015906,50,0.014474,4,54,0.923931,45,0.030276,50,0.029355,46,0.016439,4,54,0.771328,50,0.103476,45,0.075755,46,0.049441,4,54,0.63432,50,0.182788,45,0.106058,46,0.076834,4,54,0.775365,50,0.097563,45,0.079384,46,0.047688,4,54,0.675147,50,0.148815,45,0.108063,46,0.067976,4,54,0.390179,50,0.354016,45,0.141873,46,0.113933,4,50,0.54789,54,0.206729,45,0.126623,46,0.118758,4,50,0.688318,54,0.109886,46,0.102617,45,0.099179,4,50,0.795216,46,0.077493,45,0.068896,54,0.058395,4,50,0.876702,46,0.044892,51,0.043022,45,0.035384,4,50,0.943954,51,0.024625,46,0.018678,45,0.012743,4,50,0.977414,51,0.012327,46,0.006308,48,0.00395,4,50,0.903161,51,0.05892,46,0.021808,48,0.01611,4,50,0.781025,51,0.134171,46,0.046851,48,0.037953,4,50,0.738799,51,0.172679,46,0.048564,48,0.039958,4,50,0.673727,51,0.231748,46,0.053512,48,0.041013,4,51,0.526782,50,0.319122,46,0.079396,48,0.0747,4,51,0.664297,50,0.15151,48,0.09403,46,0.090162,4,51,0.767285,48,0.088899,46,0.072685,50,0.071132,4,51,0.846064,48,0.071928,46,0.046708,50,0.0353,4,51,0.906284,48,0.046711,49,0.025041,46,0.021964,4,51,0.956287,48,0.022256,49,0.015226,46,0.006231,4,51,0.71953,48,0.138846,49,0.115848,46,0.025777,4,51,0.369986,49,0.328274,48,0.249772,52,0.051968,4,49,0.368071,51,0.319707,48,0.263594,52,0.048628,4,51,0.374986,49,0.3112,48,0.273629,52,0.040185,4,51,0.503594,48,0.271584,49,0.193981,52,0.030841,4,49,0.509722,48,0.271349,51,0.179183,52,0.039746,4,49,0.76334,48,0.134476,51,0.071079,52,0.031105,4,49,0.9371,48,0.03378,51,0.017556,52,0.011564,4,49,0.985934,48,0.007059,51,0.003897,52,0.00311,4,49,0.935745,48,0.029904,51,0.017877,52,0.016474,4,49,0.8668,48,0.059887,51,0.037628,52,0.035685,4,49,0.941648,48,0.02729,51,0.015549,52,0.015513,4,49,0.965855,48,0.016732,52,0.008988,51,0.008425,4,49,0.903489,48,0.049248,52,0.025817,51,0.021446,4,49,0.782552,48,0.112672,52,0.062312,51,0.042464,4,49,0.710004,48,0.151574,52,0.086221,51,0.052201,4,49,0.485778,48,0.259116,52,0.185003,51,0.070103,4,52,0.397828,49,0.272529,48,0.265163,51,0.064479,4,52,0.595975,48,0.198856,49,0.156854,51,0.048315,4,52,0.508236,48,0.218727,49,0.214028,51,0.059009,4,52,0.405362,49,0.282944,48,0.238014,51,0.073681,4,52,0.45864,49,0.249658,48,0.219598,51,0.072104,4,52,0.540642,49,0.201577,48,0.197475,51,0.060305,4,52,0.84975,48,0.070526,49,0.057023,46,0.022702,4,52,0.985201,48,0.00687,49,0.004753,46,0.003176,4,52,0.959762,48,0.018388,49,0.011351,46,0.0105,4,52,0.894277,48,0.043801,46,0.033059,47,0.028863,4,52,0.775419,47,0.089195,48,0.069487,46,0.065898,4,52,0.706348,47,0.145724,46,0.074356,48,0.073572,4,52,0.476762,47,0.355758,46,0.086993,48,0.080488,4,47,0.786969,52,0.124572,46,0.050136,48,0.038323,4,47,0.805357,52,0.113357,46,0.045459,48,0.035827,4,47,0.770276,52,0.130887,46,0.054561,48,0.044277,4,47,0.844821,52,0.081823,46,0.041731,48,0.031625,4,47,0.904388,52,0.049458,46,0.026728,48,0.019426,4,47,0.950896,52,0.021945,46,0.015749,45,0.01141,4,47,0.908892,46,0.032766,52,0.031572,45,0.02677,4,47,0.783013,46,0.082202,45,0.078349,52,0.056436,4,47,0.616884,45,0.165204,46,0.150002,52,0.067911,4,47,0.489381,45,0.239643,46,0.187498,50,0.083477,4,47,0.403153,45,0.29143,46,0.19638,44,0.109037,4,45,0.339515,47,0.330851,46,0.192646,44,0.136988,4,45,0.375051,47,0.282172,46,0.183757,44,0.159019,4,45,0.343496,47,0.312472,46,0.189033,44,0.155,4,47,0.361096,45,0.303121,46,0.194605,44,0.141178,4,47,0.345687,45,0.305224,46,0.192969,44,0.15612,4,45,0.331738,47,0.298721,46,0.184953,44,0.184588,4,45,0.368155,44,0.241049,47,0.228058,46,0.162738,4,45,0.393065,44,0.293325,47,0.175615,46,0.137995,4,45,0.402809,44,0.333551,47,0.132743,54,0.130897,4,45,0.406288,44,0.363598,54,0.124951,47,0.105163,4,45,0.386818,44,0.367346,54,0.13054,47,0.115297,4,44,0.38203,45,0.380599,54,0.129914,47,0.107457,4,44,0.414394,45,0.373036,54,0.120089,43,0.092481,4,44,0.460075,45,0.331042,54,0.108499,43,0.100384,4,44,0.493858,45,0.286615,43,0.11712,54,0.102407,4,44,0.544322,45,0.218418,43,0.147044,54,0.090216,4,44,0.583026,43,0.194957,45,0.149133,54,0.072884,4,44,0.593073,43,0.217254,45,0.124817,54,0.064856,4,44,0.575623,43,0.26789,45,0.100138,54,0.056349,4,44,0.500152,43,0.394671,45,0.06234,40,0.042838,4,43,0.484974,44,0.419749,40,0.050956,45,0.044322,4,43,0.558231,44,0.31155,40,0.090842,45,0.039376,4,43,0.589255,44,0.224766,40,0.149854,45,0.036125,4,43,0.572118,40,0.246957,44,0.146612,33,0.034313,4,43,0.507644,40,0.353929,44,0.09737,33,0.041058,4,40,0.446069,43,0.439253,44,0.06361,33,0.051068,4,40,0.504868,43,0.355667,33,0.087167,44,0.052298,4,40,0.555167,43,0.252384,33,0.146987,44,0.045462,4,40,0.550958,33,0.221387,43,0.178778,32,0.048877,4,40,0.514206,33,0.305757,43,0.12061,32,0.059427,4,40,0.449376,33,0.397932,32,0.078685,43,0.074008,4,33,0.433436,40,0.371584,32,0.136055,37,0.058925,4,33,0.434757,32,0.242859,40,0.224017,37,0.098367,4,33,0.382072,32,0.341404,37,0.154517,40,0.122007,4,37,0.314696,32,0.302277,33,0.238917,30,0.144109,4,37,0.499594,30,0.240853,32,0.16667,26,0.092883,4,30,0.622567,37,0.284303,32,0.047435,26,0.045694,4,30,0.851272,37,0.085291,26,0.035582,32,0.027855,4,30,0.437637,26,0.219633,37,0.184685,21,0.158045,4,21,0.347264,26,0.33658,30,0.197652,37,0.118504,4,21,0.408914,26,0.247146,15,0.231911,30,0.11203,4,15,0.395443,21,0.38772,26,0.118026,10,0.098811,4,15,0.447958,10,0.262456,21,0.225143,7,0.064443,4,15,0.399382,10,0.395405,21,0.106913,7,0.0983,4,10,0.395971,15,0.334827,7,0.142273,12,0.126929,4,10,0.341447,12,0.269489,7,0.227882,15,0.161182,4,12,0.519672,10,0.215012,7,0.199565,15,0.065752,4,4,0.001128,12,0.994161,7,0.002616,10,0.002096,4,4,0.043098,12,0.844635,7,0.071066,10,0.041201,4,4,0.188827,12,0.491271,7,0.231838,10,0.088063,4,4,0.292424,12,0.311328,7,0.308964,10,0.087284,4,4,0.385897,7,0.331549,12,0.199744,14,0.08281,4,4,0.462363,7,0.302137,12,0.154376,14,0.081123,4,4,0.556663,7,0.245474,12,0.120902,14,0.076961,4,4,0.636253,7,0.192323,12,0.099733,14,0.071691,4,4,0.68922,7,0.155051,12,0.085343,24,0.070385,3,4,0.801065,7,0.126371,12,0.072565,4,45,0.773825,46,0.14936,47,0.04966,50,0.027154,4,44,0.903157,45,0.051931,54,0.029095,43,0.015817,4,4,0.289466,7,0.470024,12,0.181145,14,0.059365,4,4,0.220953,7,0.480901,12,0.231682,10,0.066464],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[4,-0.011245,0.999937,-0.999937,-0.011245,4.85,-256.1,7,-0.006849,0.999977,-0.999977,-0.006849,4.85,-133.5,14,-0.962029,0.272948,-0.272948,-0.962029,-45.05,-85.25,12,0.998296,-0.058352,0.058352,0.998296,54.2,-73.65,16,-0.375991,-0.926623,0.926623,-0.375991,-86.45,-84,24,-0.067365,-0.997728,0.997728,-0.067365,-93.75,-120.55,19,0.262142,-0.965029,0.965029,0.262142,95,-75.5,22,0.142234,-0.989833,0.989833,0.142234,104.7,-125.4,10,0.006849,0.999977,-0.999977,0.006849,5.45,-36.85,15,0,1,-1,0,5.45,59.2,21,0.023191,0.999731,-0.999731,0.023191,4.2,161.9,26,0,1,-1,0,6.65,252.5,32,-0.006132,0.999981,-0.999981,-0.006132,5.4,338.9,28,-0.834398,0.551162,-0.551162,-0.834398,-41.65,314.6,36,-0.289177,0.957276,-0.957276,-0.289177,-78.15,344.95,30,0.845557,0.533884,-0.533884,0.845557,51.4,317.2,37,0.278497,0.960437,-0.960437,0.278497,87.4,339.8,33,0.013604,0.999907,-0.999907,0.013604,4.25,448.85,40,0.005785,0.999983,-0.999983,0.005785,7.25,544.85,43,0.024777,0.999693,-0.999693,0.024777,6.95,668.85,44,0.008818,0.999961,-0.999961,0.008818,6.95,778.65,45,0,1,-1,0,7,888.45,46,0.009511,0.999955,-0.999955,0.009511,5.45,992.85,48,0.007973,0.999968,-0.999968,0.007973,5.5,1079.75,49,0.10274,0.994708,-0.994708,0.10274,6.1,1175.2,51,-0.045754,0.998953,-0.998953,-0.045754,-32.1,1066.85,52,0.124035,0.992278,-0.992278,0.124035,54.35,1081.9,47,0.628995,0.777409,-0.777409,0.628995,49.1,1000.05,50,-0.447214,0.894427,-0.894427,-0.447214,-35.4,992.85,54,-0.386009,0.922495,-0.922495,-0.386009,-39.95,893.3],\"edges\":[0,1,2,0,3,95,95,2,117,3,1,118,118,117],\"userEdges\":[]}]},{\"name\":\"右后爪\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/右后爪\",\"width\":107,\"height\":137,\"vertices\":[-66.18,44.69,-36.38,-58.08,65.4,82.84,95.2,-19.93,-45,1.89,-31.5,-1.22,-24.92,-6.34,-17.72,-7.64,-12.68,-11.75,-3.06,-12.6,20.7,-9.77,32.94,-13.04,49.14,-19.02,62.45,-22.18,70.71,-24.27,79.13,-24.58,92.75,-11.47,79.4,34.58,66.95,43.1,54.36,35.18,47.71,25.6,48.35,17.66,38.19,25.39,27.39,24.39,16.26,22.41,15.28,11.04,13.97,27.95,11.05,33.71,-24.87,34.8,-48.37,21.58],\"uvs\":[0,0,1,0,0,1,1,1,0.43925,0.06143,0.50233,0.14975,0.56542,0.18551,0.59579,0.23332,0.64579,0.26033,0.6785,0.32602,0.71495,0.49829,0.77617,0.57748,0.87196,0.67894,0.93505,0.76581,0.97523,0.81946,1,0.87785,0.91776,1,0.46962,1,0.36075,0.93004,0.39906,0.82566,0.46776,0.7596,0.54065,0.74792,0.44486,0.69245,0.4257,0.61471,0.41448,0.53259,0.51402,0.50267,0.35888,0.52785,0.29953,0.51909,0.19626,0.26946,0.25374,0.07785],\"triangles\":[9,10,11,0,4,1,6,8,1,4,6,1,11,12,1,9,11,1,12,13,1,13,14,1,8,9,1,16,3,15,14,16,15,1,14,15,21,16,13,13,16,14,21,17,16,12,21,13,4,5,6,11,21,12,6,7,8,10,25,11,25,21,11,0,29,4,19,17,21,25,23,21,23,22,21,9,25,10,8,7,9,7,25,9,20,19,21,19,18,17,28,26,25,28,25,7,6,5,7,5,28,7,28,27,26,26,24,25,24,23,25,22,20,21,18,2,17,4,29,5,29,28,5,22,19,20,24,26,23,23,27,22,27,19,22,26,27,23,27,2,19,2,18,19,28,2,27,0,28,29,0,2,28],\"edges\":[0,1,2,0,1,15,15,3,3,16,16,17,17,2],\"userEdges\":[]}]},{\"name\":\"右前爪\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/右前爪\",\"width\":114,\"height\":163,\"vertices\":[46.12,-83.91,62.33,28.94,-115.23,-60.72,-99.01,52.12,-18.1,-74.68,-18,-52.53,-20.43,-42.73,-23.63,-27.72,-34.17,-14.24,-20.58,-10.03,-4.9,-13.04,6.53,-22.11,15.23,-32.55,30.38,-35.74,53.19,-34.67,36.85,-24.44,29.6,-14.46,42.99,-10.22,58.58,2.84,38.23,10.11,23.03,16.09,41.68,3.2,32.14,21.85,37.9,32.45,19.93,29.71,13.25,30.67,4.08,25.88,-1.71,19.34,-11.79,14.27,-20.52,12.54,-29.3,18.6,-35.54,20.51,-39.04,19.04,-48.96,22.03,-50.89,15.64,-57.01,15.56,-65.87,16.84,-73.41,16.76,-68.81,12.56,-75.02,9.77,-82.47,6.44,-86.84,1.67,-92.57,-0.9,-101.63,-3.84,-107.18,-4.76,-101.94,-11.62,-104.81,-16.87,-107.11,-21.94,-100.38,-22.61,-92.6,-21.9,-98.4,-33.4],\"uvs\":[0,0,1,0,0,1,1,1,0,0.39806,0.19249,0.41677,0.2745,0.44008,0.40082,0.4726,0.50477,0.54836,0.55828,0.46953,0.5517,0.37168,0.48722,0.29438,0.4074,0.23241,0.39863,0.13763,0.43635,0,0.50477,0.10818,0.5824,0.16094,0.63591,0.08333,0.7688,0,0.80652,0.12996,0.83942,0.2275,0.75082,0.10296,0.90082,0.1772,1,0.15143,0.95389,0.25818,0.95389,0.29959,0.90082,0.35112,0.83678,0.38057,0.7802,0.43732,0.75433,0.48885,0.79599,0.54744,0.80477,0.58701,0.78766,0.60695,0.80126,0.66984,0.74336,0.67597,0.73503,0.71309,0.73503,0.76799,0.72494,0.8137,0.69424,0.78211,0.66222,0.81738,0.62406,0.85971,0.57713,0.88211,0.54775,0.91462,0.51091,0.96707,0.49599,1,0.44292,0.96217,0.3938,0.97505,0.34687,0.98456,0.3495,0.94315,0.36529,0.89652,0.25828,0.92168],\"triangles\":[47,2,44,28,30,27,27,30,26,30,31,26,26,31,25,19,22,23,22,24,23,24,25,23,19,23,1,18,19,1,40,42,3,42,43,3,43,44,3,37,40,3,33,36,3,36,37,3,25,31,3,31,33,3,23,25,3,28,29,30,31,32,33,22,20,24,24,20,25,20,26,25,18,21,19,35,36,33,20,27,26,19,20,22,11,10,16,19,16,20,16,10,20,20,10,27,10,28,27,41,42,40,30,32,31,21,16,19,32,34,33,34,35,33,17,21,18,29,8,30,30,8,32,8,34,32,9,8,29,9,29,28,10,9,28,39,40,37,17,16,21,14,17,18,38,37,36,8,35,34,38,36,35,8,38,35,38,39,37,8,49,39,8,39,38,14,15,17,49,41,39,41,40,39,15,16,17,12,11,16,15,13,16,13,12,16,49,42,41,6,49,8,10,7,9,7,8,9,6,50,49,11,7,10,45,43,42,49,45,42,46,47,44,6,7,11,14,13,15,45,44,43,7,6,8,45,46,44,12,6,11,5,4,50,5,50,6,5,6,12,48,46,45,49,48,45,0,13,14,4,5,12,0,4,12,0,12,13,4,2,50,48,47,46,50,48,49,48,50,47,50,2,47],\"edges\":[2,4,4,0,0,14,14,18,18,1,1,23,23,3,3,44,44,2],\"userEdges\":[19,20]}]},{\"name\":\"左后爪\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/左后爪\",\"width\":106,\"height\":134,\"vertices\":[-40.52,57.41,-71.17,-44.06,87.75,18.66,57.1,-82.81,-13.11,16.08,5.8,7.96,29.25,15.92,46.84,21.42,64.97,-40.31,51.59,-42.59,36.26,-28.66,30.42,-28.1,14.36,-30.45,1.77,-17.3,0.46,-23.54,-42.87,7.31,-63.33,-18.11],\"uvs\":[0,0,1,0,0,1,1,1,0.29848,0.28501,0.32018,0.43763,0.18433,0.588,0.08669,0.70181,0.59471,0.96449,0.65178,0.87382,0.56782,0.73427,0.57867,0.69136,0.64376,0.58166,0.55933,0.46337,0.61924,0.46748,0.45886,0.09136,0.74424,0],\"triangles\":[11,9,12,0,15,16,15,14,16,16,14,1,14,12,1,8,2,3,9,8,3,1,12,3,12,9,3,15,4,13,15,13,14,11,10,9,10,8,9,14,13,12,13,11,12,4,5,13,13,5,11,10,7,8,5,6,11,7,2,8,6,10,11,6,7,10,0,4,15,4,6,5,0,6,4,0,7,6,0,2,7],\"edges\":[1,3,3,2,2,0,0,16,16,1],\"userEdges\":[]}]},{\"name\":\"左前爪\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/左前爪\",\"width\":121,\"height\":165,\"vertices\":[67.29,-35.35,59.13,85.38,-97.34,-46.46,-105.49,74.26,-97.4,10.82,-85.39,6.71,-74.03,-3.44,-64.73,-7.73,-69.45,-10.5,-56.46,-13.68,-44.54,-12.08,-48.89,-20.29,-37.95,-16.79,-30.17,-18.47,-20.82,-15.19,-13.76,-12.15,-4.48,-13.03,4.22,-21.66,12.36,-27.93,21.46,-32.88,25.75,-32.44,38.9,-37.26,41.96,-29.94,34.23,-20.79,32.15,-15.97,27.02,-12.01,45.65,-10.25,51.34,-7.01,63.2,-6,60.57,-1.17,51.7,3.19,44.54,6.12,39.76,8.65,34.75,8.66,41.07,15.15,42.25,21.5,51.9,26.96,56.61,28.53,48.55,33.65,37.5,33.95,30.96,35.12,20.21,31.03,11.19,22.06,0.81,14.74,-12.08,12.62,-18.72,13.77,-17.55,20.27,-11.81,24.96,-10.03,35.06,-18.69,54.87,-98.54,32.24,-92.04,45.05,-88.05,30.39,-89.92,69.25,-21.22,68.58,-28.62,79.45],\"uvs\":[0,0,1,0,0,1,1,1,0.4723,0.97698,0.4318,0.90607,0.34172,0.84152,0.30122,0.78698,0.28098,0.81668,0.24751,0.7394,0.25412,0.66668,0.18883,0.69637,0.21156,0.6288,0.19337,0.58243,0.21527,0.52455,0.23635,0.48061,0.22395,0.42486,0.14792,0.37577,0.09172,0.3291,0.04585,0.27607,0.04709,0.25001,0,0.17243,0.05866,0.15092,0.13841,0.19395,0.17932,0.20455,0.21486,0.23395,0.21899,0.12061,0.24255,0.08486,0.2442,0.01274,0.28552,0.02668,0.32643,0.07849,0.35453,0.12061,0.37808,0.14849,0.38098,0.1788,0.43098,0.13789,0.48263,0.12819,0.5223,0.06758,0.53263,0.03849,0.57932,0.08516,0.588,0.15183,0.60122,0.19092,0.57354,0.25758,0.50453,0.31577,0.44999,0.38152,0.43965,0.46031,0.45288,0.50001,0.50577,0.49031,0.54131,0.45365,0.62354,0.4388,0.79172,0.48304,0.64957,0.97516,0.75164,0.93061,0.6285,0.91243,0.94999,0.90789,0.90618,0.49274,1,0.53304],\"triangles\":[40,41,49,52,51,49,40,49,54,49,51,53,50,4,3,4,2,3,53,51,3,51,50,3,0,28,1,28,37,1,37,38,1,39,40,1,38,39,1,40,54,1,49,53,55,54,49,55,53,3,55,1,54,55,41,48,49,46,52,49,45,7,46,28,29,37,46,7,52,7,6,52,48,46,49,10,7,45,6,5,52,41,42,48,52,50,51,42,47,48,47,46,48,52,4,50,42,43,47,5,4,52,38,35,39,39,35,40,35,41,40,34,33,35,36,35,38,37,36,38,35,33,41,33,42,41,44,46,47,43,44,47,30,36,37,29,30,37,34,35,36,30,34,36,30,31,34,25,43,42,33,25,42,44,45,46,14,12,10,10,9,7,14,10,45,5,2,4,14,13,12,6,2,5,16,44,43,25,16,43,44,15,45,15,14,45,32,33,34,16,15,44,31,32,34,25,17,16,8,2,6,31,26,33,26,25,33,31,33,32,7,8,6,30,27,31,27,26,31,24,25,26,29,27,30,9,8,7,18,17,25,11,9,10,28,27,29,9,11,8,11,2,8,12,11,10,28,0,27,22,26,27,0,22,27,16,14,15,19,18,25,20,19,25,23,24,26,17,14,16,24,20,25,22,23,26,23,20,24,17,13,14,13,11,12,19,2,18,17,18,13,18,2,13,13,2,11,22,20,23,21,2,19,21,20,22,0,21,22,21,19,20],\"edges\":[0,1,3,2,2,21,21,0,1,55,55,3],\"userEdges\":[]}]},{\"name\":\"10左须\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/10左须\",\"width\":110,\"height\":197,\"vertices\":[-129.01,-457,-19.01,-457,-129.01,-260,-19.01,-260,-19.01,-449.15,-19.01,-454.65,-24.45,-454.6,-32.8,-454.35,-44.7,-453.75,-52.55,-451.5,-61.45,-447.2,-69.05,-443.45,-73.8,-439.15,-79,-434.2,-83.55,-427.3,-88.35,-420.7,-94.35,-409.1,-97.45,-398.65,-100.8,-390.3,-104.1,-380.75,-106.95,-371.25,-110.05,-362.3,-112.75,-353.1,-115.2,-342.2,-117.95,-332.05,-119.8,-322.8,-121.3,-313.1,-124.1,-303.6,-125.45,-297.4,-126.35,-289.2,-127.75,-281.55,-129.01,-272.75,-124.95,-267.3,-123.7,-274.3,-122.05,-281.5,-120.15,-289.6,-118.95,-296.35,-117,-303.95,-116.3,-309.15,-113.95,-317.35,-112.25,-325.05,-109,-332.8,-106.8,-341.85,-104.35,-351.8,-101.1,-361.8,-97.25,-371.45,-95.15,-380.6,-92.05,-389.6,-88.45,-399,-83.9,-410.55,-79.3,-419,-73.7,-426.45,-65.5,-433.7,-58.15,-438.4,-52.5,-441.5,-43.65,-444.3,-35.6,-446.75,-27.8,-448.45],\"uvs\":[0,0,1,0,0,1,1,1,1,0.03983,1,0.01191,0.9505,0.01217,0.8746,0.01344,0.76641,0.01648,0.69505,0.0279,0.61414,0.04973,0.54505,0.06877,0.50187,0.09059,0.4546,0.11572,0.41323,0.15075,0.3696,0.18425,0.31505,0.24313,0.28687,0.29618,0.25641,0.33856,0.22641,0.38704,0.2005,0.43526,0.17232,0.48069,0.14778,0.52739,0.1255,0.58272,0.1005,0.63425,0.08369,0.6812,0.07005,0.73044,0.0446,0.77866,0.03232,0.81014,0.02414,0.85176,0.01141,0.89059,0,0.93526,0.03687,0.96293,0.04823,0.92739,0.06323,0.89085,0.0805,0.84973,0.09141,0.81547,0.10914,0.77689,0.1155,0.75049,0.13687,0.70887,0.15232,0.66978,0.18187,0.63044,0.20187,0.5845,0.22414,0.53399,0.25369,0.48323,0.28869,0.43425,0.30778,0.3878,0.33596,0.34212,0.36869,0.2944,0.41005,0.23577,0.45187,0.19288,0.50278,0.15506,0.57732,0.11826,0.64414,0.0944,0.6955,0.07866,0.77596,0.06445,0.84914,0.05201,0.92005,0.04338],\"triangles\":[46,45,47,51,50,52,52,50,53,50,49,53,0,10,9,0,9,8,53,49,55,49,48,55,54,53,55,55,48,56,57,56,4,56,48,4,48,47,4,5,6,4,6,57,4,8,7,1,0,8,1,7,6,1,6,5,1,34,33,3,33,32,3,37,36,3,36,35,3,41,39,3,39,37,3,44,43,3,43,42,3,45,44,3,42,41,3,4,47,3,47,45,3,32,2,3,35,34,3,38,37,39,40,39,41,7,57,6,7,56,57,8,56,7,0,11,10,8,55,56,8,9,55,9,54,55,10,53,54,10,54,9,10,11,53,11,52,53,0,12,11,11,12,52,12,51,52,0,13,12,13,51,12,14,50,51,13,14,51,0,14,13,14,15,50,15,49,50,15,16,49,16,48,49,0,15,14,17,47,48,16,17,48,0,16,15,18,46,47,17,18,47,0,17,16,19,45,46,18,19,46,0,18,17,20,44,45,19,20,45,0,19,18,21,43,44,20,21,44,0,21,20,22,42,43,21,22,43,0,20,19,22,23,42,0,22,21,23,41,42,24,40,41,23,24,41,0,23,22,0,24,23,26,38,39,25,39,40,24,25,40,25,26,39,0,25,24,0,27,25,27,36,37,27,37,38,26,27,38,0,28,27,28,35,36,27,28,36,27,26,25,29,34,35,28,29,35,0,30,28,30,33,34,29,30,34,0,31,30,31,32,33,30,31,33,31,2,32,30,29,28],\"weights\":[4,18,0.287118,13,0.283679,20,0.221442,9,0.207761,4,3,0.948382,9,0.037528,13,0.009436,18,0.004654,4,41,0.925099,39,0.045637,34,0.01911,29,0.010155,4,41,0.276584,39,0.267977,34,0.245893,29,0.209547,4,3,0.976903,9,0.016734,13,0.004248,18,0.002115,4,3,0.982463,9,0.012795,13,0.003176,18,0.001567,4,3,0.972393,9,0.021608,13,0.004119,18,0.00188,4,3,0.9042,9,0.084417,13,0.008176,18,0.003207,4,3,0.402113,9,0.581448,13,0.012795,18,0.003643,4,3,0.165588,9,0.768879,13,0.054766,18,0.010767,4,3,0.039887,9,0.759949,13,0.185366,18,0.014798,4,3,0.015308,13,0.614172,9,0.350759,18,0.019761,4,3,0.014785,13,0.782241,9,0.152995,18,0.049978,4,13,0.786313,18,0.135539,9,0.062363,20,0.015785,4,13,0.598662,18,0.381545,9,0.010376,20,0.009417,4,18,0.805505,13,0.145804,20,0.037214,9,0.011477,4,18,0.656785,20,0.302216,13,0.025356,27,0.015643,4,20,0.82664,18,0.133186,27,0.031713,13,0.008462,4,20,0.801838,27,0.153427,18,0.033675,29,0.011059,4,27,0.758507,20,0.209318,29,0.021216,18,0.01096,4,27,0.850791,29,0.101237,20,0.038576,34,0.009396,4,29,0.617387,27,0.357867,34,0.013943,20,0.010802,4,29,0.862256,27,0.065108,34,0.064039,39,0.008597,4,29,0.522226,34,0.459623,39,0.009197,27,0.008954,4,34,0.845257,29,0.076198,39,0.068828,27,0.009716,4,34,0.606364,39,0.367439,29,0.015609,41,0.010588,4,39,0.875319,34,0.092381,41,0.025515,29,0.006785,4,39,0.785441,41,0.185372,34,0.024375,29,0.004812,4,41,0.626178,39,0.36193,34,0.00938,29,0.002512,4,41,0.945206,39,0.047623,34,0.005332,29,0.001839,4,41,0.977241,39,0.017528,34,0.003719,29,0.001513,4,41,0.990835,39,0.0063,34,0.001956,29,0.00091,4,41,0.987358,39,0.008255,34,0.002941,29,0.001446,4,41,0.982627,39,0.012268,34,0.003522,29,0.001583,4,41,0.960599,39,0.030683,34,0.006233,29,0.002485,4,41,0.864147,39,0.120111,34,0.011833,29,0.003909,4,41,0.548391,39,0.435914,34,0.012427,29,0.003267,4,39,0.809664,41,0.142914,34,0.040374,29,0.007049,4,39,0.878239,34,0.068002,41,0.046403,29,0.007356,4,39,0.574828,34,0.400464,41,0.014145,29,0.010563,4,34,0.778948,39,0.179254,29,0.030986,41,0.010812,4,34,0.732131,29,0.172853,39,0.075694,27,0.019322,4,29,0.496656,34,0.448235,27,0.031211,39,0.023898,4,29,0.740868,27,0.140589,34,0.101247,20,0.017295,4,27,0.535704,29,0.414779,20,0.025947,34,0.023569,4,27,0.698391,20,0.143179,29,0.135982,18,0.022448,4,27,0.49679,20,0.447979,29,0.02993,18,0.025301,4,20,0.738538,27,0.15817,18,0.084503,29,0.018789,4,20,0.581565,18,0.362108,27,0.036697,13,0.019629,4,18,0.783182,20,0.132361,13,0.068905,27,0.015551,4,18,0.609226,13,0.33285,20,0.037154,9,0.02077,4,13,0.770175,18,0.165377,9,0.047163,20,0.017286,4,3,0.02144,13,0.658873,9,0.27708,18,0.042607,4,3,0.043991,9,0.705393,13,0.23014,18,0.020475,4,3,0.086425,9,0.825684,13,0.075585,18,0.012306,4,3,0.436098,9,0.529947,13,0.026557,18,0.007398,4,3,0.823124,9,0.16106,13,0.011589,18,0.004227,4,3,0.96087,9,0.031967,13,0.004997,18,0.002166],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[3,-0.994906,0.100805,-0.100805,-0.994906,-20.25,-452.1,9,-0.918211,0.396091,-0.396091,-0.918211,-43.45,-450.1,13,-0.707107,0.707107,-0.707107,-0.707107,-66.65,-439.8,18,-0.434816,0.90052,-0.90052,-0.434816,-82.8,-423.35,20,-0.350586,0.936531,-0.936531,-0.350586,-92.3,-403.25,27,-0.281649,0.959517,-0.959517,-0.281649,-100.25,-382.5,29,-0.2699,0.962888,-0.962888,-0.2699,-106.8,-361.8,34,-0.216689,0.976241,-0.976241,-0.216689,-112.35,-340.7,39,-0.236471,0.971639,-0.971639,-0.236471,-116.95,-319.5,41,-0.174664,0.984628,-0.984628,-0.174664,-122.45,-297.25],\"edges\":[0,1,3,2,4,3,1,5,5,4,2,31,31,0],\"userEdges\":[]}]}]}],\"animation\":[{\"duration\":12,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"龙头\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.82},{\"duration\":8,\"tweenEasing\":0,\"rotate\":1.24},{\"duration\":0,\"rotate\":0.82}]},{\"name\":\"10左须1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.51},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-28.72},{\"duration\":0,\"rotate\":-10.51}]},{\"name\":\"10右须\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-2.01},{\"duration\":4,\"tweenEasing\":0,\"rotate\":2.67},{\"duration\":0}]},{\"name\":\"龙身\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":8.05},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.57},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.85},{\"duration\":0,\"rotate\":8.05}]},{\"name\":\"10右须1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":8,\"tweenEasing\":0,\"rotate\":16.39},{\"duration\":0}]},{\"name\":\"10左须\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-1.67},{\"duration\":4,\"tweenEasing\":0,\"rotate\":1.15},{\"duration\":0}]},{\"name\":\"龙身1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":13.44},{\"duration\":4,\"tweenEasing\":0,\"rotate\":22.88},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.1},{\"duration\":0,\"rotate\":13.44}]},{\"name\":\"10左须2\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-24.43},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-33.58},{\"duration\":0,\"rotate\":-24.43}]},{\"name\":\"10右须2\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":10.31},{\"duration\":4,\"tweenEasing\":0,\"rotate\":22.31},{\"duration\":4,\"tweenEasing\":0,\"rotate\":27.12},{\"duration\":0,\"rotate\":10.31}]},{\"name\":\"龙身2\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-22.68},{\"duration\":4,\"tweenEasing\":0,\"rotate\":10.81},{\"duration\":4,\"tweenEasing\":0,\"rotate\":18.58},{\"duration\":0,\"rotate\":-22.68}]},{\"name\":\"10左须3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":17.67},{\"duration\":4,\"tweenEasing\":0,\"rotate\":57.25},{\"duration\":4,\"tweenEasing\":0,\"rotate\":8.29},{\"duration\":0,\"rotate\":17.67}]},{\"name\":\"左前爪\",\"rotateFrame\":[{\"duration\":12,\"rotate\":0.66}]},{\"name\":\"10右须3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":12.07},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-34},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-0.78},{\"duration\":0,\"rotate\":12.07}]},{\"name\":\"右前爪\",\"rotateFrame\":[{\"duration\":4,\"rotate\":-6.61},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-6.67},{\"duration\":0,\"rotate\":-6.61}]},{\"name\":\"10左须4\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-24.68},{\"duration\":8,\"tweenEasing\":0,\"rotate\":36.44},{\"duration\":0,\"rotate\":-24.68}]},{\"name\":\"龙身3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-20.09},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.87},{\"duration\":4,\"tweenEasing\":0,\"rotate\":19.29},{\"duration\":0,\"rotate\":-20.09}]},{\"name\":\"10右须4\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":19.4},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-48.92},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-34.09},{\"duration\":0,\"rotate\":19.4}]},{\"name\":\"左前爪2\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.51},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-2.74},{\"duration\":0}]},{\"name\":\"10左须5\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":29.16},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-20.3},{\"duration\":4,\"tweenEasing\":0,\"rotate\":39.64},{\"duration\":0,\"rotate\":29.16}]},{\"name\":\"右前爪2\",\"rotateFrame\":[{\"duration\":4},{\"duration\":4,\"tweenEasing\":0,\"rotate\":9.44},{\"duration\":4,\"rotate\":-0.17},{\"duration\":0}]},{\"name\":\"10右须5\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-18.35},{\"duration\":4,\"tweenEasing\":0,\"rotate\":25.91},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-25.81},{\"duration\":0,\"rotate\":-18.35}]},{\"name\":\"龙身4\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-15.49},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-16.8},{\"duration\":4,\"tweenEasing\":0,\"rotate\":12.25},{\"duration\":0,\"rotate\":-15.49}]},{\"name\":\"10左须6\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":23.36},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-32.52},{\"duration\":4,\"tweenEasing\":0,\"rotate\":15.52},{\"duration\":0,\"rotate\":23.36}]},{\"name\":\"龙身5\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":9.71},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-14.84},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.91},{\"duration\":0,\"rotate\":9.71}]},{\"name\":\"10右须6\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-23.07},{\"duration\":4,\"tweenEasing\":0,\"rotate\":28.45},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-26.11},{\"duration\":0,\"rotate\":-23.07}]},{\"name\":\"10右须7\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-9.71},{\"duration\":4,\"tweenEasing\":0,\"rotate\":20.18},{\"duration\":4,\"tweenEasing\":0,\"rotate\":25.51},{\"duration\":0,\"rotate\":-9.71}]},{\"name\":\"龙身6\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":19.95},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-26.25},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-20.33},{\"duration\":0,\"rotate\":19.95}]},{\"name\":\"10左须7\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":26.04},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-25.28},{\"duration\":0,\"rotate\":26.04}]},{\"name\":\"10右须8\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-26.02},{\"duration\":4,\"tweenEasing\":0,\"rotate\":15.26},{\"duration\":4,\"tweenEasing\":0,\"rotate\":29.62},{\"duration\":0,\"rotate\":-26.02}]},{\"name\":\"10左须8\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.3},{\"duration\":8,\"tweenEasing\":0,\"rotate\":26.93},{\"duration\":0,\"rotate\":0.3}]},{\"name\":\"龙身7\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":19.09},{\"duration\":4,\"tweenEasing\":0,\"rotate\":26.82},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-5.7},{\"duration\":0,\"rotate\":19.09}]},{\"name\":\"10左须9\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-26.78},{\"duration\":4,\"tweenEasing\":0,\"rotate\":17.65},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-26.07},{\"duration\":0,\"rotate\":-26.78}]},{\"name\":\"10右须9\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":13.24},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-34.94},{\"duration\":4,\"tweenEasing\":0,\"rotate\":13.45},{\"duration\":0,\"rotate\":13.24}]},{\"name\":\"龙身8\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":23.55},{\"duration\":4,\"tweenEasing\":0,\"rotate\":17.12},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-23.98},{\"duration\":0,\"rotate\":23.55}]},{\"name\":\"10左须10\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-26.19},{\"duration\":4,\"tweenEasing\":0,\"rotate\":39.43},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-33.67},{\"duration\":0,\"rotate\":-26.19}]},{\"name\":\"龙身9\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-21.79},{\"duration\":4,\"tweenEasing\":0,\"rotate\":14.12},{\"duration\":4,\"tweenEasing\":0,\"rotate\":2.25},{\"duration\":0,\"rotate\":-21.79}]},{\"name\":\"10右须10\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":34.42},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-53.43},{\"duration\":4,\"tweenEasing\":0,\"rotate\":10.8},{\"duration\":0,\"rotate\":34.42}]},{\"name\":\"龙身10\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-13.43},{\"duration\":4,\"tweenEasing\":0,\"rotate\":22.57},{\"duration\":4,\"tweenEasing\":0,\"rotate\":17.05},{\"duration\":0,\"rotate\":-13.43}]},{\"name\":\"龙身11\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-19.14},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.5},{\"duration\":4,\"tweenEasing\":0,\"rotate\":14.82},{\"duration\":0,\"rotate\":-19.14}]},{\"name\":\"龙身12\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-9.72},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-20.7},{\"duration\":4,\"tweenEasing\":0,\"rotate\":18.64},{\"duration\":0,\"rotate\":-9.72}]},{\"name\":\"龙身13\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.57},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-11.49},{\"duration\":4,\"tweenEasing\":0,\"rotate\":19.03},{\"duration\":0,\"rotate\":-8.57}]},{\"name\":\"龙身14\",\"translateFrame\":[{\"duration\":8},{\"duration\":4,\"x\":5.49,\"y\":3.06},{\"duration\":0}],\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"rotate\":-30.78},{\"duration\":4,\"tweenEasing\":0,\"rotate\":21.84},{\"duration\":0,\"rotate\":-30.78}]},{\"name\":\"龙身16\",\"rotateFrame\":[{\"duration\":8},{\"duration\":4,\"rotate\":-3.44},{\"duration\":0}]},{\"name\":\"龙身17\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"rotate\":2.22},{\"duration\":4,\"tweenEasing\":0,\"rotate\":7.4},{\"duration\":0,\"rotate\":2.22}]},{\"name\":\"龙身18\",\"rotateFrame\":[{\"duration\":12,\"rotate\":2.83}]},{\"name\":\"龙身19\",\"rotateFrame\":[{\"duration\":12,\"rotate\":3.87}]},{\"name\":\"龙身20\",\"translateFrame\":[{\"duration\":8},{\"duration\":4,\"tweenEasing\":0,\"x\":-1.1,\"y\":35.17},{\"duration\":0}],\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"rotate\":2.93},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-25.32},{\"duration\":0,\"rotate\":2.93}]}],\"ffd\":[{\"name\":\"动画拆/龙身\",\"slot\":\"龙身\",\"frame\":[{\"duration\":4,\"tweenEasing\":0,\"vertices\":[-104.34,11.38,-1.96,6.23,-90.26,-217.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.33,4.55,7.2,4.7,2.54,4.14,4.51,3.44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.34,0.01,1.36,-0.05,0.27,-0.09,0,0,2.44,-0.73,2.97,-0.48,5.5,0.14,5.36,0.62,5.87,0.42,0,0,0,0,0,0,0,0,0,0,2.69,0.96,4.15,2.7,0,0,0,0,-0.9,-4.95,-6.04,1.28,-9.87,-1.56,-11.34,9.69,-14.67,5.23,-13.07,0.4,-10.12,-1.9,2.3,-4.26,0,0,0,0,0,0,1.46,3.72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.82,-4.07,0,0,0,0,7.49,2.77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6.07,2.51,6.1,-1.83,3.08,-0.48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.23,1.74,1.62,6.83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-5.9,0.9,-3.78,2.72,-5.83,-4,-4.16,-4.38,-5.6,1.63,-5.73,0.86,-3.49,0.47,0,0,0,0,0,0,-0.88,2.61,0,0,-0.42,0.89,-7.61,12.04,0,0,0,0,0,0,0,0,0.05,-0.95,2.19,8.89,0.8,0.18,1.5,0.71,3.14,3.07,0,0,0,0,0,0,0.52,1.99,0,0,0,0,0,0,-0.02,0.31,0,0,0,0,0,0,1.17,0.32,1.34,0.96,0,0,0,0,0,0,0,0,0,0,0,0,8.81,3.19,20.3,-3.87]},{\"duration\":4,\"tweenEasing\":0,\"offset\":116,\"vertices\":[3.66,0,13.3,-3.38,0,0,0,0,0,0,-1.01,-0.41,-0.82,-0.56,-2.89,-1.69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.1,2.62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.62,-0.35,-2.58,0.1,1.92,-3.44,4.12,2.27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.94,3.2,1.25,-0.88,3.08,-0.48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.99,-0.37,1.39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8.58,7.12,-1.63,2.19]},{\"duration\":4,\"tweenEasing\":0,\"offset\":8,\"vertices\":[17.38,-1.49,0,0,0,0,0,0,8.17,0.69,6.28,1.98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2.02,-0.83,-1.64,-1.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2,5.23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3.24,-0.69,-5.16,0.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2.04,4.38,6.1,-1.83,3.08,-0.48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.89,1.98,-0.75,2.78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-17.61,11.84]},{\"duration\":0,\"vertices\":[-104.34,11.38,-1.96,6.23,-90.26,-217.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.33,4.55,7.2,4.7,2.54,4.14,4.51,3.44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.69,0.96,0,0,0,0,0,0,-0.9,-4.95,-6.04,1.28,-9.87,-1.56,-11.88,8.34,-14.67,5.23,-13.07,0.4,-10.12,-1.9,2.3,-4.26,0,0,0,0,0,0,1.46,3.72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.82,-4.07,0,0,0,0,7.49,2.77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6.07,2.51,6.1,-1.83,3.08,-0.48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.23,1.74,1.62,6.83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6.69,-16.53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.88,2.61,0,0,-0.42,0.89,-7.61,12.04,0,0,0,0,0,0,0,0,0.05,-0.95,2.19,8.89,0.8,0.18,0,0,0.51,1.25,0,0,0,0,0,0,0.52,1.99,0,0,0,0,0,0,-0.02,0.31,0,0,0,0,0,0,1.17,0.32,1.34,0.96,0,0,0,0,0,0,0,0,0,0,0,0,8.81,3.19,20.3,-3.87]}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[[8,"qingwa_ske","{\"frameRate\":24,\"name\":\"qingwa\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-153.27,\"y\":-106.5,\"width\":310.54,\"height\":426.31},\"bone\":[{\"name\":\"root\"},{\"length\":139,\"name\":\"身_0\",\"parent\":\"root\",\"transform\":{\"x\":0.35,\"y\":51.7,\"skX\":-90,\"skY\":-90}},{\"length\":47,\"name\":\"左大臂\",\"parent\":\"身_0\",\"transform\":{\"x\":68.55,\"y\":-30.25,\"skX\":-133.0665,\"skY\":-133.0665}},{\"length\":93,\"name\":\"左大腿\",\"parent\":\"身_0\",\"transform\":{\"x\":-5.75,\"y\":-30.2,\"skX\":-157.238,\"skY\":-157.238}},{\"length\":100,\"name\":\"右大腿\",\"parent\":\"身_0\",\"transform\":{\"x\":0.75,\"y\":25.85,\"skX\":156.3755,\"skY\":156.3755}},{\"length\":46,\"name\":\"右大臂\",\"parent\":\"身_0\",\"transform\":{\"x\":67.75,\"y\":27.2,\"skX\":127.2171,\"skY\":127.2171}},{\"length\":39,\"name\":\"左小臂\",\"parent\":\"左大臂\",\"transform\":{\"x\":43.9238,\"y\":0.6751,\"skX\":27.9444,\"skY\":27.9444}},{\"length\":98,\"name\":\"左小腿\",\"parent\":\"左大腿\",\"transform\":{\"x\":90.6531,\"y\":-0.4056,\"skX\":-11.7959,\"skY\":-11.7959}},{\"length\":42,\"name\":\"右小臂\",\"parent\":\"右大臂\",\"transform\":{\"x\":45.1201,\"y\":-0.1134,\"skX\":-23.8122,\"skY\":-23.8122}},{\"length\":98,\"name\":\"右小腿\",\"parent\":\"右大腿\",\"transform\":{\"x\":93.9233,\"y\":0.3699,\"skX\":10.8616,\"skY\":10.8616}},{\"length\":41,\"name\":\"右手\",\"parent\":\"右小臂\",\"transform\":{\"x\":39.6858,\"y\":-0.4116,\"skX\":-19.2173,\"skY\":-19.2173}},{\"length\":48,\"name\":\"左手\",\"parent\":\"左小臂\",\"transform\":{\"x\":34.6331,\"y\":1.0203,\"skX\":32.6924,\"skY\":32.6924}},{\"length\":77,\"name\":\"左脚\",\"parent\":\"左小腿\",\"transform\":{\"x\":94.6992,\"y\":1.1567,\"skX\":-1.6251,\"skY\":-1.6251}},{\"length\":79,\"name\":\"右脚\",\"parent\":\"右小腿\",\"transform\":{\"x\":96.0067,\"y\":0.5224,\"skX\":1.4741,\"skY\":1.4741}}],\"slot\":[{\"name\":\"左脚\",\"parent\":\"左脚\"},{\"name\":\"右脚\",\"parent\":\"右脚\"},{\"name\":\"左小腿\",\"parent\":\"左小腿\"},{\"name\":\"右小腿\",\"parent\":\"右小腿\"},{\"name\":\"右手\",\"parent\":\"右手\"},{\"name\":\"右大腿\",\"parent\":\"右大腿\"},{\"name\":\"右小臂\",\"parent\":\"右小臂\"},{\"name\":\"左大腿\",\"parent\":\"左大腿\"},{\"name\":\"左手\",\"parent\":\"左手\"},{\"name\":\"左小臂\",\"parent\":\"左小臂\"},{\"name\":\"右大臂\",\"parent\":\"右大臂\"},{\"name\":\"左大臂\",\"parent\":\"左大臂\"},{\"name\":\"身_0\",\"parent\":\"身_0\"}],\"skin\":[{\"slot\":[{\"name\":\"右小臂\",\"display\":[{\"name\":\"动画拆/右小臂\",\"transform\":{\"x\":21.67,\"y\":2.94,\"skX\":-13.4,\"skY\":-13.4}}]},{\"name\":\"左手\",\"display\":[{\"name\":\"动画拆/左手\",\"transform\":{\"x\":26.98,\"y\":-2.98,\"skX\":162.43,\"skY\":162.43}}]},{\"name\":\"右大腿\",\"display\":[{\"name\":\"动画拆/右大腿\",\"transform\":{\"x\":46.31,\"y\":-3.63,\"skX\":-66.38,\"skY\":-66.38}}]},{\"name\":\"右脚\",\"display\":[{\"name\":\"动画拆/右脚\",\"transform\":{\"x\":42.32,\"y\":-5.17,\"skX\":-78.71,\"skY\":-78.71}}]},{\"name\":\"身_0\",\"display\":[{\"name\":\"动画拆/身_0\",\"transform\":{\"x\":51.7,\"y\":-1.35,\"skX\":90,\"skY\":90}}]},{\"name\":\"左大臂\",\"display\":[{\"name\":\"动画拆/左大臂\",\"transform\":{\"x\":21.69,\"y\":-3.45,\"skX\":-136.93,\"skY\":-136.93}}]},{\"name\":\"左小臂\",\"display\":[{\"name\":\"动画拆/左小臂\",\"transform\":{\"x\":18.7,\"y\":-2.65,\"skX\":-164.88,\"skY\":-164.88}}]},{\"name\":\"右大臂\",\"display\":[{\"name\":\"动画拆/右大臂\",\"transform\":{\"x\":23.08,\"y\":0.48,\"skX\":-37.22,\"skY\":-37.22}}]},{\"name\":\"左脚\",\"display\":[{\"name\":\"动画拆/左脚\",\"transform\":{\"x\":43.1,\"y\":4.12,\"skX\":-99.34,\"skY\":-99.34}}]},{\"name\":\"右小腿\",\"display\":[{\"name\":\"动画拆/右小腿\",\"transform\":{\"x\":49.81,\"y\":-1.09,\"skX\":-77.24,\"skY\":-77.24}}]},{\"name\":\"左大腿\",\"display\":[{\"name\":\"动画拆/左大腿\",\"transform\":{\"x\":39.36,\"y\":2.25,\"skX\":-112.76,\"skY\":-112.76}}]},{\"name\":\"右手\",\"display\":[{\"name\":\"动画拆/右手\",\"transform\":{\"x\":24.83,\"y\":-1.76,\"skX\":5.81,\"skY\":5.81}}]},{\"name\":\"左小腿\",\"display\":[{\"name\":\"动画拆/左小腿\",\"transform\":{\"x\":49.52,\"y\":-0.71,\"skX\":-100.97,\"skY\":-100.97}}]}]}],\"animation\":[{\"duration\":12,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"右大臂\",\"translateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"x\":-13.09,\"y\":-12.44},{\"duration\":4,\"tweenEasing\":0,\"x\":-18.3,\"y\":-10.55},{\"duration\":0,\"x\":-13.09,\"y\":-12.44}],\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-54.96},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-23.61},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.46},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-14.24},{\"duration\":0,\"rotate\":-54.96}]},{\"name\":\"右小臂\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-53.55},{\"duration\":4,\"tweenEasing\":0,\"rotate\":18.72},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-88.39},{\"duration\":0,\"rotate\":-53.55}]},{\"name\":\"右手\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"rotate\":25.79},{\"duration\":4,\"tweenEasing\":0,\"rotate\":35.2},{\"duration\":0,\"rotate\":25.79}]},{\"name\":\"左大臂\",\"translateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"x\":-14.4,\"y\":15.06},{\"duration\":4,\"tweenEasing\":0,\"x\":-20.08,\"y\":16},{\"duration\":0,\"x\":-14.4,\"y\":15.06}],\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":67.87},{\"duration\":2,\"tweenEasing\":0,\"rotate\":30.45},{\"duration\":4,\"tweenEasing\":0,\"rotate\":1.71},{\"duration\":4,\"tweenEasing\":0,\"rotate\":21.35},{\"duration\":0,\"rotate\":67.87}]},{\"name\":\"左小臂\",\"translateFrame\":[{\"duration\":12,\"x\":2.23,\"y\":-1.95}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":44.55},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-12.97},{\"duration\":4,\"tweenEasing\":0,\"rotate\":80.71},{\"duration\":0,\"rotate\":44.55}]},{\"name\":\"左手\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"rotate\":-38.38},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-41.15},{\"duration\":0,\"rotate\":-38.38}]},{\"name\":\"左大腿\",\"translateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"x\":-24.08,\"y\":14.5},{\"duration\":2,\"tweenEasing\":0,\"x\":-24.08,\"y\":14.5},{\"duration\":8,\"tweenEasing\":0,\"x\":-31.17,\"y\":11.19},{\"duration\":0,\"x\":-24.08,\"y\":14.5}],\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":123.33},{\"duration\":2,\"tweenEasing\":0,\"rotate\":65.85},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-6.85},{\"duration\":0,\"rotate\":123.33}]},{\"name\":\"左小腿\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-143.48},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-111.16},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-15.66},{\"duration\":0,\"rotate\":-143.48}]},{\"name\":\"左脚\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":155.82},{\"duration\":4,\"tweenEasing\":0,\"rotate\":30.27},{\"duration\":4,\"tweenEasing\":0,\"rotate\":39.86},{\"duration\":0,\"rotate\":155.82}]},{\"name\":\"右大腿\",\"translateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"x\":-35.68,\"y\":-14.77},{\"duration\":2,\"tweenEasing\":0,\"x\":-31.1,\"y\":-15.42},{\"duration\":8,\"tweenEasing\":0,\"x\":-32.62,\"y\":-10.09},{\"duration\":0,\"x\":-35.68,\"y\":-14.77}],\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-120.77},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-63.1},{\"duration\":8,\"tweenEasing\":0,\"rotate\":12.42},{\"duration\":0,\"rotate\":-120.77}]},{\"name\":\"右小腿\",\"translateFrame\":[{\"duration\":4},{\"duration\":8,\"x\":-3.65,\"y\":-1.38}],\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":145.67},{\"duration\":2,\"tweenEasing\":0,\"rotate\":116.92},{\"duration\":8,\"tweenEasing\":0,\"rotate\":10.5},{\"duration\":0,\"rotate\":145.67}]},{\"name\":\"右脚\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-152.78},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-29.79},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-55.4},{\"duration\":0,\"rotate\":-152.78}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[[9,"qingwa_tex","{\"imagePath\":\"qingwa_tex.png\",\"width\":512,\"height\":256,\"name\":\"qingwa\",\"SubTexture\":[{\"width\":57,\"y\":115,\"height\":88,\"name\":\"动画拆/左脚\",\"x\":276},{\"width\":58,\"y\":115,\"height\":88,\"name\":\"动画拆/右脚\",\"x\":216},{\"width\":35,\"y\":1,\"height\":108,\"name\":\"动画拆/左小腿\",\"x\":372},{\"width\":35,\"y\":66,\"height\":108,\"name\":\"动画拆/右小腿\",\"x\":335},{\"width\":61,\"y\":1,\"height\":63,\"name\":\"动画拆/右手\",\"x\":280},{\"width\":77,\"y\":115,\"height\":112,\"name\":\"动画拆/右大腿\",\"x\":137},{\"width\":43,\"y\":216,\"height\":23,\"name\":\"动画拆/右小臂\",\"x\":1},{\"width\":78,\"y\":1,\"height\":112,\"name\":\"动画拆/左大腿\",\"x\":137},{\"width\":61,\"y\":1,\"height\":63,\"name\":\"动画拆/左手\",\"x\":217},{\"width\":42,\"y\":216,\"height\":23,\"name\":\"动画拆/左小臂\",\"x\":46},{\"width\":47,\"y\":66,\"height\":44,\"name\":\"动画拆/右大臂\",\"x\":267},{\"width\":48,\"y\":66,\"height\":44,\"name\":\"动画拆/左大臂\",\"x\":217},{\"width\":134,\"y\":1,\"height\":213,\"name\":\"动画拆/身_0\",\"x\":1}]}"]],0,0,[0],[7],[56]],[[{"name":"图层 109","rect":[3,330,117,71],"offset":[0,0],"originalSize":[117,71],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[23]],[[{"name":"blood9","rect":[446,548,265,239],"offset":[0,0],"originalSize":[265,239],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[9,"longl_ske_tex","{\"SubTexture\":[{\"width\":121,\"y\":199,\"height\":165,\"name\":\"动画拆/左前爪\",\"x\":315},{\"width\":106,\"y\":1889,\"height\":134,\"name\":\"动画拆/左后爪\",\"x\":110},{\"width\":114,\"y\":366,\"height\":163,\"name\":\"动画拆/右前爪\",\"x\":315},{\"width\":107,\"y\":1889,\"height\":137,\"name\":\"动画拆/右后爪\",\"x\":1},{\"width\":200,\"y\":1,\"height\":1609,\"name\":\"动画拆/龙身\",\"x\":1},{\"width\":228,\"y\":1612,\"height\":275,\"name\":\"动画拆/龙头\",\"x\":1},{\"width\":108,\"y\":1,\"height\":196,\"name\":\"动画拆/10右须\",\"x\":315},{\"width\":110,\"y\":1,\"height\":197,\"name\":\"动画拆/10左须\",\"x\":203}],\"width\":512,\"height\":2048,\"name\":\"longl_ske\",\"imagePath\":\"longl_ske_tex.png\"}"]],0,0,[0],[7],[57]],[[{"name":"blood7","rect":[3,375,274,286],"offset":[0,0],"originalSize":[274,286],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"blood4","rect":[295,536,145,139],"offset":[0,0],"originalSize":[145,139],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"fishlizi3","rect":[868,157,32,30],"offset":[0,0],"originalSize":[32,30],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"按","rect":[126,330,107,107],"offset":[0,0],"originalSize":[107,107],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[23]],[[[9,"dianman_ske_ske_ske_tex","{\"SubTexture\":[{\"width\":60,\"y\":1,\"height\":79,\"name\":\"动画拆/6右小翅\",\"x\":269},{\"width\":132,\"y\":1,\"height\":158,\"name\":\"动画拆/6左大翅\",\"x\":135},{\"width\":133,\"y\":829,\"height\":158,\"name\":\"动画拆/6右大翅\",\"x\":1},{\"width\":59,\"y\":1,\"height\":79,\"name\":\"动画拆/6左小翅\",\"x\":331},{\"width\":132,\"y\":1,\"height\":826,\"name\":\"动画拆/6身\",\"x\":1}],\"width\":512,\"height\":1024,\"name\":\"dianman_ske_ske_ske\",\"imagePath\":\"dianman_ske_ske_ske_tex.png\"}"]],0,0,[0],[7],[58]],[[{"name":"图层 113","rect":[3,668,301,699],"offset":[0,0],"originalSize":[301,699],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[2]],[[[8,"xiaojiny_ske","{\"frameRate\":24,\"name\":\"xiaojiny\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-162.75,\"y\":-113,\"width\":306,\"height\":569.69},\"bone\":[{\"name\":\"root\"},{\"length\":163,\"name\":\"金鱼身\",\"parent\":\"root\",\"transform\":{\"x\":2.65,\"y\":77.9,\"skX\":-91.3989,\"skY\":-91.3989}},{\"length\":101,\"name\":\"xiao尾巴2\",\"parent\":\"root\",\"transform\":{\"x\":-3.55,\"y\":129.75,\"skX\":100.2822,\"skY\":100.2822}},{\"length\":94,\"name\":\"xiao尾巴6\",\"parent\":\"xiao尾巴2\",\"transform\":{\"x\":17.601,\"y\":-41.9148,\"skX\":-13.2441,\"skY\":-13.2441}},{\"length\":65,\"name\":\"xiao尾巴\",\"parent\":\"xiao尾巴2\",\"transform\":{\"x\":-18.4894,\"y\":-29.9304,\"skX\":-59.6479,\"skY\":-59.6479}},{\"length\":89,\"name\":\"右翅\",\"parent\":\"金鱼身\",\"transform\":{\"x\":52.6766,\"y\":54.8523,\"skX\":163.1369,\"skY\":163.1369}},{\"length\":89,\"name\":\"左翅\",\"parent\":\"金鱼身\",\"transform\":{\"x\":46.243,\"y\":-62.6398,\"skX\":-159.1807,\"skY\":-159.1807}},{\"length\":86,\"name\":\"背\",\"parent\":\"金鱼身\",\"transform\":{\"x\":109.1483,\"y\":-8.838,\"skX\":-173.8761,\"skY\":-173.8761}},{\"length\":61,\"name\":\"xiao尾巴3\",\"parent\":\"xiao尾巴2\",\"transform\":{\"x\":112.0707,\"y\":2.6382,\"skX\":13.1437,\"skY\":13.1437}},{\"length\":57,\"name\":\"xiao尾巴4\",\"parent\":\"xiao尾巴2\",\"transform\":{\"x\":17.9658,\"y\":42.1704,\"skX\":11.927,\"skY\":11.927}},{\"length\":68,\"name\":\"xiao尾巴1\",\"parent\":\"xiao尾巴\",\"transform\":{\"x\":80.3459,\"y\":0.4961,\"skX\":23.2872,\"skY\":23.2872}},{\"length\":55,\"name\":\"xiao尾巴8\",\"parent\":\"xiao尾巴3\",\"transform\":{\"x\":91.7607,\"y\":-72.0709,\"skX\":2.6081,\"skY\":2.6081}},{\"length\":102,\"name\":\"xiao尾巴7\",\"parent\":\"xiao尾巴6\",\"transform\":{\"x\":121.8306,\"y\":25.7798,\"skX\":-49.0311,\"skY\":-49.0311}},{\"length\":117,\"name\":\"背1\",\"parent\":\"背\",\"transform\":{\"x\":102.34,\"y\":1.7258,\"skX\":-10.9764,\"skY\":-10.9764}},{\"length\":97,\"name\":\"xiao尾巴5\",\"parent\":\"xiao尾巴4\",\"transform\":{\"x\":73.7447,\"y\":9.5866,\"skX\":10.1855,\"skY\":10.1855}}],\"slot\":[{\"name\":\"左翅\",\"parent\":\"左翅\"},{\"name\":\"右翅\",\"parent\":\"右翅\"},{\"name\":\"xiao尾巴\",\"parent\":\"xiao尾巴8\"},{\"name\":\"金鱼身\",\"parent\":\"金鱼身\"},{\"name\":\"背\",\"parent\":\"背1\"}],\"skin\":[{\"slot\":[{\"name\":\"金鱼身\",\"display\":[{\"name\":\"动画拆/金鱼身\",\"transform\":{\"x\":68.53,\"y\":-4.48,\"skX\":91.4,\"skY\":91.4}}]},{\"name\":\"左翅\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/左翅\",\"width\":63,\"height\":118,\"vertices\":[-43.66,14.42,-93.8,132.42,-98.9,123.75,-102.35,111.9,-105.05,101.1,-104.9,90.65,-101.2,74.7,-91.65,61.4,-85.8,52.85,-73.55,38,-69.55,29.85,-90.4,126.65,-83.4,122.5,-78.4,119.35,-71.55,113.5,-65.7,106.95,-68.15,116.1,-63,114.25,-57.7,102.95,-54,92.85,-50.75,78.7,-50.3,87.1,-53.9,49.55],\"uvs\":[1,0,0.2041,1,0.12315,0.92649,0.06839,0.82606,0.02553,0.73454,0.02791,0.64598,0.08664,0.51081,0.23823,0.3981,0.33108,0.32564,0.52553,0.19979,0.58902,0.13072,0.25807,0.95106,0.36918,0.91589,0.44854,0.8892,0.55727,0.83962,0.65013,0.78411,0.61124,0.86166,0.69299,0.84598,0.77712,0.75022,0.83585,0.66462,0.88743,0.54471,0.89458,0.61589,0.83743,0.29767],\"triangles\":[6,7,8,13,12,16,12,1,16,16,1,17,19,18,21,10,22,0,22,20,0,20,21,0,10,9,22,8,7,20,22,8,20,20,19,21,7,19,20,15,17,18,6,15,19,7,6,19,9,8,22,15,18,19,6,5,15,4,14,15,5,4,15,14,16,15,15,16,17,11,1,12,8,9,10,4,3,14,14,13,16,3,13,14,3,12,13,2,11,12,3,2,12,2,1,11],\"weights\":[1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1,1,6,1],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[6,-0.332497,0.943104,-0.943104,-0.332497,-61.1,33.2],\"edges\":[1,2,2,3,3,4,0,21,21,18,18,17,17,1,4,5,5,6,6,8,8,10,10,0],\"userEdges\":[]}]},{\"name\":\"背\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/背\",\"width\":75,\"height\":269,\"vertices\":[-5.75,209.89,2.4,202.05,6.8,193.4,12.3,181.15,14.1,174.25,13.75,163.2,11,154.75,9.45,145,10.65,131.45,11.35,124,12.3,109.35,13.35,100.55,15.95,94.25,17.5,86.75,18,72.25,19.2,65.9,17.05,54.25,15.05,42.15,13.6,34.3,7.65,19.45,4.1,12.9,0.9,4.45,-4.25,-9.1,-5.2,-19.45,-4.35,-37.25,-2.1,-47.25,-1.85,-55.55,-7.1,-43.9,-13.15,-28.1,-17.2,-12.75,-27.3,11.85,-33.85,32.4,-37.4,50.05,-42.15,64.3,-48.6,83.8,-52.65,102.45,-52,120.75,-52.15,128.95,-47.65,122.2,-43.45,114.2,-39.55,121.6,-42.75,131.45,-42.9,145.25,-38.75,158.2,-31,163.45,-22.15,168.8,-16.45,171.45,-11.8,177,-5.4,183.7,-3.25,192.5,-3.15,201.15,-5.05,205.7,-1.25,205.1,9.85,187.95,14.65,169.4,-47.15,71.15,-51,92,-39.65,56.65,-54.28,112.7],\"uvs\":[0.64701,1,0.75567,0.97087,0.81434,0.93871,0.88767,0.89317,0.91167,0.86752,0.90701,0.82645,0.87034,0.79503,0.84967,0.75879,0.86567,0.70842,0.87501,0.68072,0.88767,0.62626,0.90167,0.59355,0.93634,0.57013,0.95701,0.54224,0.96367,0.48834,0.97967,0.46474,0.95101,0.42143,0.92434,0.37645,0.90501,0.34726,0.82567,0.29206,0.77834,0.26771,0.73567,0.2363,0.66701,0.18592,0.65434,0.14745,0.66567,0.08128,0.69567,0.0441,0.69901,0.01325,0.62901,0.05656,0.54834,0.11529,0.49434,0.17236,0.35967,0.26381,0.27234,0.3402,0.22501,0.40581,0.16167,0.45879,0.07567,0.53128,0.02167,0.60061,0.03034,0.66864,0.02834,0.69912,0.08834,0.67403,0.14434,0.64429,0.19634,0.6718,0.15367,0.70842,0.15167,0.75972,0.20701,0.80786,0.31034,0.82737,0.42834,0.84726,0.50434,0.85711,0.56634,0.87775,0.65167,0.90265,0.68034,0.93537,0.68167,0.96752,0.65634,0.98444,0.70701,0.98221,0.85501,0.91845,0.91901,0.84949,0.09501,0.48425,0.04367,0.56176,0.19501,0.43035,0,0.63871],\"triangles\":[58,35,56,55,31,30,25,24,21,24,23,21,23,22,21,52,0,1,21,20,19,25,21,19,2,1,53,7,6,8,25,19,18,26,25,18,9,8,5,8,6,5,11,10,12,9,5,12,10,9,12,5,54,12,26,18,17,12,54,13,26,17,15,17,16,15,13,54,15,14,13,15,16,14,15,32,57,16,16,57,14,57,33,14,33,13,14,33,34,12,33,12,13,34,11,12,17,32,16,18,31,17,31,32,17,47,4,54,47,54,5,6,47,5,48,3,4,47,48,4,46,47,6,34,39,11,19,31,18,39,10,11,39,40,10,48,53,3,40,8,9,10,40,9,40,7,8,40,41,7,7,46,6,49,2,53,48,49,53,42,44,7,41,42,7,44,45,7,45,46,7,20,30,19,30,31,19,49,1,2,28,23,24,49,50,1,21,30,20,34,56,39,27,24,25,50,52,1,22,29,21,29,30,21,50,51,52,51,0,52,27,25,26,23,29,22,48,47,49,51,50,49,47,51,49,47,45,51,27,28,24,28,29,23,44,43,0,51,45,0,45,44,0,55,34,33,42,43,44,30,29,28,46,45,47,56,35,39,55,32,31,42,37,43,55,57,32,38,41,40,55,33,57,39,38,40,35,58,39,38,37,41,41,37,42,36,38,39,58,36,39,36,37,38,55,56,34,36,58,37],\"weights\":[2,7,0.02093,13,0.97907,2,7,0.013287,13,0.986713,2,7,0.010498,13,0.989502,2,7,0.021279,13,0.978721,2,7,0.029913,13,0.970087,2,7,0.038472,13,0.961528,2,7,0.038336,13,0.961664,2,7,0.044355,13,0.955645,2,7,0.073498,13,0.926502,2,7,0.096816,13,0.903184,2,7,0.160785,13,0.839215,2,7,0.220403,13,0.779597,2,7,0.286581,13,0.713419,2,7,0.357605,13,0.642395,2,7,0.478992,13,0.521008,2,7,0.521817,13,0.478183,2,7,0.593672,13,0.406328,2,7,0.690064,13,0.309936,2,7,0.756945,13,0.243055,2,7,0.887636,13,0.112364,2,7,0.934455,13,0.065545,2,7,0.967834,13,0.032166,2,7,0.993863,13,0.006137,2,7,0.997483,13,0.002517,2,7,0.995041,13,0.004959,2,7,0.978709,13,0.021291,2,7,0.96149,13,0.03851,2,7,0.987427,13,0.012573,2,7,0.998336,13,0.001664,2,7,0.993395,13,0.006605,2,7,0.941456,13,0.058544,2,7,0.81416,13,0.18584,2,7,0.619228,13,0.380772,2,7,0.426199,13,0.573801,2,7,0.331944,13,0.668056,2,7,0.272825,13,0.727175,2,7,0.205224,13,0.794776,2,7,0.184414,13,0.815586,2,7,0.172695,13,0.827305,2,7,0.163936,13,0.836064,2,7,0.118055,13,0.881945,2,7,0.121327,13,0.878673,2,7,0.102114,13,0.897886,2,7,0.07031,13,0.92969,2,7,0.03865,13,0.96135,2,7,0.014371,13,0.985629,2,7,0.005174,13,0.994826,2,7,0.001292,13,0.998708,2,7,0.00009,13,0.99991,2,7,0.001962,13,0.998038,2,7,0.009423,13,0.990577,2,7,0.014848,13,0.985152,2,7,0.014976,13,0.985024,2,7,0.013928,13,0.986072,2,7,0.035338,13,0.964662,2,7,0.389003,13,0.610997,2,7,0.307526,13,0.692474,2,7,0.525893,13,0.474107,2,7,0.245187,13,0.754813],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[7,-0.082373,0.996602,-0.996602,-0.082373,-8.85,-31,13,0.108891,0.994054,-0.994054,0.108891,-19,70.85],\"edges\":[58,56,56,55,55,30,30,28,28,27,27,26,26,15,15,54,54,4,4,3,3,53,53,1,1,0,0,43,43,37,37,58],\"userEdges\":[]}]},{\"name\":\"右翅\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/右翅\",\"width\":63,\"height\":118,\"vertices\":[41.71,10.87,93.25,128.87,97.4,122.95,102.1,110.8,104.71,97.4,104.71,83.3,100.55,68.9,89.35,53,80.95,42.8,71.25,31.15,67,24.25,64.8,13.2,51.65,28.25,50.95,47.05,49.3,64.45,50.55,76.8,52.2,87.45,55.75,96.55,60.45,104.55,68.35,114.9,64.9,102.9,71.65,109.65,77.2,113.8,82.7,117.95,88.65,120.85],\"uvs\":[0,0,0.81812,1,0.88399,0.94986,0.95859,0.84689,1,0.73333,1,0.61384,0.93399,0.49181,0.75621,0.35706,0.62288,0.27062,0.46891,0.17189,0.40145,0.11342,0.36653,0.01977,0.1578,0.14731,0.14669,0.30664,0.1205,0.45409,0.14034,0.55876,0.16653,0.64901,0.22288,0.72613,0.29748,0.79392,0.42288,0.88164,0.36812,0.77994,0.47526,0.83715,0.56336,0.87231,0.65066,0.90748,0.7451,0.93206],\"triangles\":[11,10,9,11,9,8,11,8,7,11,7,6,6,20,5,5,20,4,20,21,4,22,3,4,21,22,4,16,20,6,15,16,6,23,24,3,22,23,3,24,2,3,7,15,6,24,1,2,14,15,7,24,23,1,23,19,1,8,14,7,16,17,20,13,14,8,22,19,23,9,13,8,21,19,22,20,19,21,10,12,9,12,13,9,20,18,19,11,12,10,17,18,20,0,12,11,14,0,15,12,0,13,0,14,13],\"weights\":[1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1,1,5,1],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[5,0.313362,0.949634,-0.949634,0.313362,56.2,23.9],\"edges\":[5,4,1,19,19,18,18,17,17,16,16,15,15,0,4,3,3,2,2,1,0,11,11,6,6,5],\"userEdges\":[]}]},{\"name\":\"xiao尾巴\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/xiao尾巴\",\"width\":306,\"height\":368,\"vertices\":[-136.15,321.25,-142.65,285.15,-125.15,310.55,-129.3,301.45,-124.65,297.35,-121.25,306.6,-112.65,307.25,-107.7,300.95,-116.95,308.65,-127.9,316.7,-141.8,308.25,-141.25,296.1,-143.3,273.15,-107.5,291.65,-111.8,282.25,-108.2,285.85,-117.1,276.4,-120.55,269.2,-117.6,252.25,-112.3,245.55,-102.35,236.65,-100.85,243.15,-105.65,254.15,-107.15,266.45,-102.7,273.15,-94.65,270.05,-89.35,271.8,-86.95,282.3,-79.75,293.95,-68.95,308.65,-62.95,313.1,-57,313.45,-41.75,322.9,-36.45,326.15,-32.15,337.8,-24.45,346.85,-18.6,352.85,-17.75,359.85,-18.6,370.65,-22.35,380.75,-30.45,391.2,-36.95,397.05,-44.65,402.5,-52,407.15,-46.35,408,-33.85,408.7,-17.9,410.4,-2.15,410.55,12.6,409.2,19.75,403.75,27.15,398.45,29.55,391.25,28.7,380.8,25.6,372.2,28.7,360.55,34.35,355.25,36.55,361.1,42.4,366.75,55.1,366.05,61.8,361.55,66.9,356.1,76.7,353.85,85.4,354.2,91.25,364.65,97.25,370.65,104.75,372.9,117.8,372.55,129.45,368.6,139.7,361.6,150.15,356.45,159.33,348.6,153.75,344.65,147.25,339.65,138.5,338.65,127.35,336.25,121.35,331.95,117.6,324.75,118.85,316,120.05,304.7,121.05,296.3,116.05,290.45,106.3,285.15,90.7,280.2,83.2,274.2,70.85,264.75,66.05,255.85,62.8,245.05,64.65,235.5,65.55,223.7,68.6,210.5,70.15,202.95,74.95,206.2,78.05,214.95,80.1,225.55,87.1,229.35,95,231.05,96.9,224.9,92.25,218.2,91.55,212.7,99.3,211.85,102.7,217.35,104.6,226.4,101.5,234.8,103.2,244.4,108.9,248.7,120.35,254.7,125.3,264.45,128.6,254.35,134.55,242.7,136.65,230.2,141.25,215.8,140.25,202.1,134.6,187.7,125,175.35,106.65,162.15,90.4,153.05,71.35,139.5,55.25,126.2,43.95,110.4,41.7,90.9,43.1,78.4,-143.95,262.6,-143.25,252.55,-141.05,241.85,-139,231.5,-134.2,221.6,-127.9,209.8,-119.3,201.35,-112.7,193,-105.9,185.25,-96.25,175.2,-87.05,166.15,-74.8,157.4,-69.15,150.4,-61.25,139.9,-55.7,132.9,-47.4,117,-45.2,106.6,-83.4,284.5,-84.6,275.5,-83.9,266.9,-80.3,254.7,-73.95,241.8,-69.35,234.65,-63.55,227.4,-58.6,219.3,-52.45,207.95,-47.95,200.45,-44.65,194.9,-40.25,184.25,-37.6,174.75,-37.7,167.1,-37.4,161.85,-37.2,149.35,-37.6,134.8,-36.25,124.8,6.2,110,13.15,129.15,20.65,142.05,29.15,155.35,37.6,173.4,38.7,185.65,37.75,200.6,32,209.55,24.6,222.25,11.55,235.75,-2.25,247.7,-13.25,257.6,-23.45,271.3,-31,284.9,-36.5,299.7,-36.65,312.4,-37.15,321.35,-33.8,333.45,-9.35,353.2,2.75,351.35,8.4,348.2,2.9,341.9,-3.7,339.25,-0.85,334.35,9.5,332,18.75,330.15,26.45,330.15,31.95,332.5,35.9,339.4,35.4,351,73.9,189.75,76.1,177.35,76.55,168.1,73.1,160.7,62.25,152.55,-31.3,92.35,-19.7,112.25,-1.15,127.5,30.7,104.3,21.75,78.1,-9.1,82.4,-36.3,78.45],\"uvs\":[0.03438,0.74599,0.01314,0.64789,0.07033,0.71691,0.05677,0.69219,0.07197,0.68105,0.08308,0.70618,0.11118,0.70795,0.12736,0.69083,0.09713,0.71175,0.06135,0.73363,0.01592,0.71066,0.01772,0.67765,0.01102,0.61528,0.12801,0.66556,0.11396,0.64001,0.12572,0.6498,0.09664,0.62412,0.08536,0.60455,0.09501,0.55849,0.11233,0.54028,0.14484,0.5161,0.14974,0.53376,0.13406,0.56365,0.12916,0.59708,0.1437,0.61528,0.17001,0.60686,0.18733,0.61162,0.19517,0.64015,0.2187,0.67181,0.25399,0.71175,0.2736,0.72384,0.29304,0.7248,0.34288,0.75047,0.3602,0.75931,0.37425,0.79096,0.39942,0.81556,0.41853,0.83186,0.42131,0.85088,0.41853,0.88023,0.40628,0.90768,0.37981,0.93607,0.35857,0.95197,0.3334,0.96678,0.30938,0.97941,0.32785,0.98172,0.3687,0.98363,0.42082,0.98825,0.47229,0.98865,0.5205,0.98499,0.54386,0.97018,0.56804,0.95577,0.57589,0.93621,0.57311,0.90781,0.56298,0.88444,0.57311,0.85278,0.59157,0.83838,0.59876,0.85428,0.61788,0.86963,0.65938,0.86773,0.68128,0.8555,0.69795,0.84069,0.72997,0.83458,0.7584,0.83553,0.77752,0.86393,0.79713,0.88023,0.82164,0.88634,0.86429,0.88539,0.90236,0.87466,0.93586,0.85564,0.97001,0.84164,1,0.82031,0.98177,0.80958,0.96053,0.79599,0.93193,0.79327,0.8955,0.78675,0.87589,0.77507,0.86363,0.7555,0.86772,0.73172,0.87164,0.70102,0.87491,0.67819,0.85857,0.6623,0.8267,0.64789,0.77572,0.63444,0.75121,0.61814,0.71086,0.59246,0.69517,0.56827,0.68455,0.53893,0.69059,0.51297,0.69353,0.48091,0.7035,0.44504,0.70857,0.42452,0.72425,0.43336,0.73438,0.45713,0.74108,0.48594,0.76396,0.49626,0.78978,0.50088,0.79599,0.48417,0.78079,0.46596,0.7785,0.45102,0.80383,0.44871,0.81494,0.46365,0.82115,0.48825,0.81102,0.51107,0.81657,0.53716,0.8352,0.54884,0.87262,0.56515,0.8888,0.59164,0.89958,0.5642,0.91903,0.53254,0.92589,0.49857,0.94092,0.45944,0.93765,0.42221,0.91919,0.38308,0.88782,0.34952,0.82785,0.31365,0.77474,0.28893,0.71249,0.25211,0.65987,0.21596,0.62295,0.17303,0.61559,0.12004,0.62017,0.08607,0.00889,0.58662,0.01118,0.55931,0.01837,0.53023,0.02507,0.50211,0.04076,0.4752,0.06135,0.44314,0.08945,0.42018,0.11102,0.39749,0.13324,0.37643,0.16478,0.34912,0.19484,0.32452,0.23487,0.30075,0.25334,0.28172,0.27916,0.25319,0.29729,0.23417,0.32442,0.19096,0.33161,0.1627,0.20677,0.64613,0.20285,0.62167,0.20514,0.5983,0.2169,0.56515,0.23765,0.53009,0.25269,0.51066,0.27164,0.49096,0.28782,0.46895,0.30791,0.43811,0.32262,0.41773,0.3334,0.40265,0.34778,0.37371,0.35644,0.34789,0.35612,0.32711,0.3571,0.31284,0.35775,0.27887,0.35644,0.23933,0.36086,0.21216,0.49958,0.17194,0.52229,0.22398,0.5468,0.25903,0.57458,0.29518,0.6022,0.34422,0.60579,0.37751,0.60269,0.41814,0.58389,0.44246,0.55971,0.47697,0.51706,0.51365,0.47197,0.54613,0.43602,0.57303,0.40269,0.61026,0.37801,0.64721,0.36004,0.68743,0.35955,0.72194,0.35791,0.74626,0.36886,0.77914,0.44876,0.83281,0.48831,0.82778,0.50677,0.81922,0.4888,0.80211,0.46723,0.7949,0.47654,0.78159,0.51036,0.7752,0.54059,0.77018,0.56576,0.77018,0.58373,0.77656,0.59664,0.79531,0.59501,0.82683,0.72082,0.38865,0.72801,0.35496,0.72948,0.32982,0.71821,0.30971,0.68275,0.28757,0.37703,0.12398,0.41494,0.17806,0.47556,0.2195,0.57965,0.15645,0.5504,0.08526,0.44958,0.09694,0.36069,0.08621],\"triangles\":[45,44,46,120,116,115,50,49,65,120,115,114,65,49,66,49,48,66,120,114,113,66,48,67,107,106,108,78,77,73,109,108,110,78,73,72,79,78,72,106,79,72,68,67,69,106,72,71,108,106,71,111,110,70,108,71,70,110,108,70,71,69,70,120,117,116,77,74,73,72,69,71,80,79,106,72,73,69,73,68,69,120,119,117,64,50,65,77,75,74,77,76,75,73,74,68,74,67,68,111,100,110,100,109,110,100,101,109,112,99,111,99,100,111,74,66,67,101,108,109,113,99,112,105,107,108,104,105,108,101,104,108,101,102,104,65,66,75,63,65,75,81,80,106,75,66,74,105,106,107,62,63,75,114,99,113,105,81,106,187,186,99,63,64,65,187,99,114,102,103,104,82,81,104,80,78,79,104,81,105,76,62,75,81,77,78,80,81,78,119,118,117,82,76,77,81,82,77,51,50,64,82,61,76,61,62,76,58,51,64,83,82,104,186,98,99,188,187,114,103,83,104,183,61,82,84,83,103,115,188,114,100,96,101,95,102,101,96,95,101,183,184,61,186,91,98,94,85,103,85,84,103,95,94,103,102,95,103,63,58,64,99,97,100,97,96,100,83,183,82,59,58,63,98,97,99,184,60,61,86,85,94,94,95,96,97,94,96,197,196,195,84,183,83,87,86,94,61,59,63,189,188,115,93,94,97,92,93,97,92,97,98,91,92,98,62,61,63,116,189,115,93,87,94,60,59,61,186,90,91,182,183,84,116,190,189,92,88,93,88,87,93,91,89,92,89,88,92,188,189,187,189,160,187,161,186,187,160,161,187,190,160,189,90,89,91,85,166,84,166,182,84,161,90,186,117,190,116,161,162,90,162,89,90,57,51,58,165,166,85,185,59,60,184,185,60,162,88,89,166,181,182,162,163,88,166,167,181,86,165,85,163,164,88,88,164,87,164,86,87,52,51,57,117,159,190,159,160,190,185,58,59,164,165,86,167,168,181,118,158,117,158,159,117,56,57,58,185,56,58,168,180,181,185,55,56,53,52,57,195,119,120,194,157,118,157,158,118,119,194,118,56,53,57,195,194,119,168,169,180,54,53,56,160,150,161,150,163,161,163,162,161,159,150,160,150,149,163,181,176,184,184,176,185,55,54,56,182,181,184,183,182,184,54,55,185,176,54,185,156,157,194,151,150,159,195,156,194,149,164,163,152,151,158,158,151,159,169,179,180,49,50,51,49,51,52,53,49,52,149,148,165,149,165,164,176,53,54,39,47,49,38,39,49,38,49,53,176,175,53,169,170,179,180,176,181,196,156,195,175,38,53,47,48,49,193,152,158,126,128,197,153,152,193,157,193,158,170,171,179,177,176,180,174,38,175,147,166,165,148,147,165,156,193,157,128,129,197,147,146,166,196,192,156,179,177,180,177,175,176,37,38,174,39,46,47,171,172,179,192,193,156,145,167,166,146,145,166,154,153,193,172,33,179,179,178,177,177,178,175,178,174,175,39,40,46,191,192,196,173,34,178,155,154,193,173,178,179,33,173,179,192,155,193,34,35,178,36,174,178,35,36,178,145,144,167,36,37,174,197,191,196,144,168,167,129,130,197,41,45,40,144,143,168,36,35,37,40,45,46,37,35,38,35,39,38,143,142,168,191,137,192,34,40,35,35,40,39,137,155,192,34,41,40,142,141,168,42,41,34,141,169,168,137,136,155,130,131,197,43,42,34,30,43,34,32,30,34,140,139,169,28,170,169,138,28,169,139,138,169,141,140,169,197,137,191,41,42,45,173,32,34,30,9,43,131,137,197,28,29,170,42,44,45,33,32,173,135,154,155,136,135,155,133,152,153,134,133,153,154,135,153,135,134,153,32,172,171,172,32,33,29,31,170,31,171,170,31,32,171,31,30,32,152,133,151,151,132,150,132,149,150,133,132,151,132,148,149,6,9,30,9,0,43,131,134,137,132,131,148,134,135,137,43,44,42,131,147,148,135,136,137,130,146,147,131,130,147,131,133,134,29,30,31,29,6,30,129,145,146,130,129,146,129,128,144,129,144,145,128,20,144,20,143,144,131,132,133,20,142,143,28,7,29,7,6,29,128,127,20,21,141,142,20,21,142,8,9,6,139,27,138,138,27,28,27,13,28,13,7,28,25,140,141,22,25,141,21,22,141,25,26,140,26,139,140,26,27,139,26,25,27,25,24,27,24,15,27,15,13,27,22,23,25,127,126,20,23,24,25,126,127,128,14,15,24,125,19,20,126,125,20,20,19,21,19,22,21,23,16,24,16,14,24,18,23,22,19,18,22,125,124,19,4,7,13,18,17,23,17,16,23,15,14,13,14,4,13,4,6,7,122,123,124,2,9,8,5,8,6,4,5,6,123,18,19,124,123,19,16,4,14,1,4,16,17,12,16,12,1,16,121,17,18,122,121,18,5,2,8,123,122,18,4,3,5,121,12,17,3,2,5,11,3,4,1,11,4,10,9,2,3,10,2,10,0,9,11,10,3,1,10,11,1,12,10,12,121,10],\"weights\":[4,9,0.045505,14,0.786431,8,0.118864,11,0.0492,4,9,0.002432,14,0.991761,8,0.003912,2,0.001894,4,9,0.03516,14,0.82791,8,0.102575,2,0.034355,4,9,0.017074,14,0.925403,8,0.04193,2,0.015592,4,9,0.017828,14,0.920737,8,0.045138,2,0.016297,4,9,0.034535,14,0.826647,8,0.104953,2,0.033865,4,9,0.049053,14,0.717013,8,0.182947,2,0.050987,4,9,0.054065,14,0.674549,8,0.214802,2,0.056583,4,9,0.043536,14,0.763893,8,0.148315,2,0.044256,4,9,0.042068,14,0.791544,8,0.122265,11,0.044124,4,9,0.024225,14,0.901336,8,0.052751,2,0.021687,4,9,0.006866,14,0.97422,8,0.013145,2,0.005769,4,9,0.012603,14,0.962063,8,0.016398,2,0.008936,4,9,0.049809,14,0.730097,8,0.170607,2,0.049487,4,9,0.031752,14,0.861129,8,0.078766,2,0.028353,4,9,0.044271,14,0.782849,8,0.130937,2,0.041944,4,9,0.013327,14,0.950222,8,0.0256,2,0.01085,4,9,0.002509,14,0.991867,8,0.003769,2,0.001856,4,9,0.000665,14,0.998313,8,0.000624,2,0.000398,4,9,0.000256,14,0.999405,8,0.000201,2,0.000139,4,9,0.002158,14,0.995581,8,0.001279,2,0.000982,4,9,0.014641,14,0.966004,8,0.011418,2,0.007936,4,9,0.015758,14,0.956162,8,0.017705,2,0.010374,4,9,0.027638,14,0.90399,8,0.046685,2,0.021687,4,9,0.0497,14,0.79008,8,0.116115,2,0.044104,4,9,0.073489,14,0.668675,8,0.188631,2,0.069205,4,9,0.085924,14,0.545279,8,0.279794,2,0.089003,4,9,0.077591,8,0.42773,14,0.403683,2,0.090997,4,8,0.656788,14,0.207189,2,0.07479,12,0.061232,4,8,0.803961,14,0.086389,11,0.057959,12,0.051691,4,8,0.819125,14,0.064823,11,0.064107,12,0.051945,4,8,0.846709,11,0.059685,12,0.047633,14,0.045972,4,8,0.654438,11,0.184904,12,0.102016,2,0.058642,4,8,0.543793,11,0.269558,12,0.122716,2,0.063933,4,11,0.482426,8,0.336179,12,0.121597,2,0.059798,4,11,0.711072,8,0.16315,12,0.086571,3,0.039207,4,11,0.849408,8,0.076391,12,0.051193,3,0.023008,4,11,0.910184,8,0.043794,12,0.031489,3,0.014533,4,11,0.957297,8,0.02019,12,0.015173,3,0.007341,4,11,0.970332,8,0.014017,12,0.010359,3,0.005292,4,11,0.96128,8,0.018275,12,0.012623,14,0.007822,4,11,0.944601,8,0.026006,12,0.017125,14,0.012268,4,11,0.902485,8,0.045367,12,0.028467,14,0.02368,4,11,0.849749,8,0.06899,12,0.041794,14,0.039466,4,11,0.892079,8,0.04924,12,0.031542,14,0.027138,4,11,0.963314,8,0.016335,12,0.011995,14,0.008356,4,11,0.98655,8,0.005616,12,0.005123,3,0.002711,4,11,0.93182,12,0.029241,8,0.025034,3,0.013906,4,11,0.829847,12,0.082073,8,0.053845,3,0.034235,4,11,0.776955,12,0.114903,8,0.064423,3,0.043719,4,11,0.713181,12,0.15889,8,0.073819,3,0.05411,4,11,0.696143,12,0.175011,8,0.073251,3,0.055595,4,11,0.718182,12,0.166202,8,0.065429,3,0.050188,4,11,0.770338,12,0.135324,8,0.053863,3,0.040475,4,11,0.747437,12,0.161235,8,0.050002,3,0.041326,4,11,0.638154,12,0.251312,8,0.056978,3,0.053555,4,11,0.620279,12,0.261612,8,0.061081,3,0.057028,4,11,0.540675,12,0.325061,8,0.067918,3,0.066345,4,12,0.50383,11,0.359751,3,0.07278,8,0.063639,4,12,0.628805,11,0.252969,3,0.066246,8,0.05198,4,12,0.742078,11,0.165548,3,0.054065,8,0.038309,4,12,0.861964,11,0.079171,3,0.033936,10,0.024928,4,12,0.922923,11,0.040298,3,0.020327,10,0.016452,4,12,0.871547,11,0.067496,3,0.032715,10,0.028243,4,12,0.835339,11,0.084322,3,0.042067,10,0.038272,4,12,0.818839,11,0.087867,3,0.047445,10,0.045849,4,12,0.792753,11,0.090338,10,0.060447,3,0.056462,4,12,0.763491,11,0.092435,10,0.077972,3,0.066102,4,12,0.728994,10,0.100069,11,0.094184,3,0.076752,4,12,0.675335,10,0.131044,11,0.101945,3,0.091676,4,12,0.621742,10,0.166594,11,0.106091,3,0.105573,4,12,0.647168,10,0.156232,3,0.098959,11,0.097641,4,12,0.677749,10,0.143886,3,0.091095,11,0.08727,4,12,0.736166,10,0.113676,3,0.076016,11,0.074142,4,12,0.816095,10,0.075264,3,0.054587,11,0.054054,4,12,0.84888,10,0.061273,3,0.045912,11,0.043936,4,12,0.835108,10,0.069167,3,0.051293,11,0.044432,4,12,0.746672,10,0.116903,3,0.078248,11,0.058176,4,12,0.605256,10,0.20644,3,0.116977,11,0.071327,4,12,0.493681,10,0.291847,3,0.140361,11,0.07411,4,12,0.440235,10,0.331869,3,0.155784,11,0.072112,4,12,0.416925,10,0.33334,3,0.180197,11,0.069538,4,12,0.435333,10,0.261117,3,0.2364,11,0.06715,4,12,0.393097,3,0.302447,10,0.241815,11,0.062642,4,3,0.472223,12,0.300475,10,0.166893,2,0.060408,4,3,0.611869,12,0.199223,10,0.133138,2,0.05577,4,3,0.701196,12,0.128498,10,0.117626,2,0.05268,4,3,0.65437,10,0.164541,12,0.108178,4,0.072911,4,3,0.597806,10,0.215529,4,0.103665,12,0.083,4,3,0.456149,10,0.321397,4,0.161915,2,0.060539,4,10,0.380298,3,0.364443,4,0.200904,2,0.054355,4,10,0.474268,3,0.290204,4,0.185654,2,0.049874,4,10,0.501521,3,0.287618,4,0.150598,12,0.060263,4,10,0.485813,3,0.309007,4,0.122803,12,0.082377,4,10,0.610964,3,0.213473,4,0.101099,12,0.074463,4,10,0.758831,3,0.119499,4,0.070051,12,0.051619,4,10,0.832065,3,0.078229,4,0.057832,12,0.031874,4,10,0.789162,3,0.098636,4,0.079435,12,0.032767,4,10,0.809023,3,0.084444,4,0.08106,12,0.025473,4,10,0.936354,4,0.029759,3,0.025016,12,0.008871,4,10,0.950138,4,0.021411,3,0.020195,12,0.008255,4,10,0.932087,3,0.029181,4,0.024666,12,0.014066,4,10,0.846627,3,0.071289,4,0.044943,12,0.037141,4,10,0.804264,3,0.090954,12,0.057526,4,0.047256,4,10,0.826824,3,0.075743,12,0.05646,4,0.040973,4,10,0.816344,3,0.071523,12,0.06874,4,0.043394,4,10,0.697604,12,0.133713,3,0.107047,4,0.061637,4,10,0.821408,12,0.067505,3,0.065673,4,0.045414,4,10,0.899523,3,0.036023,4,0.032382,12,0.032072,4,10,0.920393,4,0.031289,3,0.027385,12,0.020933,4,10,0.834617,4,0.078218,3,0.052201,12,0.034964,4,10,0.762329,4,0.129568,3,0.068837,12,0.039266,4,10,0.704025,4,0.185009,3,0.075867,12,0.035099,4,10,0.666195,4,0.232257,3,0.070542,2,0.031007,4,10,0.660717,4,0.278747,3,0.043453,2,0.017082,4,4,0.578044,10,0.377663,3,0.033196,2,0.011097,4,4,0.854225,10,0.07258,3,0.057314,2,0.01588,4,4,0.877352,3,0.069882,10,0.027951,2,0.024815,4,4,0.818501,3,0.084905,2,0.065763,10,0.03083,4,4,0.651626,2,0.152469,3,0.132193,10,0.063711,4,4,0.557736,2,0.194152,3,0.159141,10,0.088971,4,9,0.030781,14,0.916836,8,0.032514,2,0.019868,4,9,0.053336,14,0.869672,8,0.04579,2,0.031201,4,9,0.081762,14,0.819676,8,0.056106,2,0.042456,4,9,0.117712,14,0.763504,8,0.065047,2,0.053737,4,9,0.15201,14,0.72143,8,0.067084,2,0.059476,4,9,0.202713,14,0.666363,8,0.067226,2,0.063698,4,9,0.239197,14,0.642068,8,0.059633,2,0.059102,4,9,0.286181,14,0.60223,2,0.057038,8,0.05455,4,9,0.334504,14,0.561552,2,0.055123,8,0.048822,4,9,0.449331,14,0.439767,2,0.062919,8,0.047983,4,9,0.606244,14,0.277122,2,0.071584,8,0.045051,4,9,0.79994,14,0.110945,2,0.06079,8,0.028324,4,9,0.860346,14,0.063932,2,0.054947,8,0.020775,4,9,0.913143,2,0.043787,14,0.027884,4,0.015186,4,9,0.932823,2,0.037849,14,0.016268,4,0.01306,4,9,0.711269,2,0.179109,4,0.063657,3,0.045966,4,9,0.549511,2,0.27061,4,0.108919,3,0.07096,4,9,0.072543,8,0.516477,14,0.320222,2,0.090759,4,9,0.086617,14,0.41698,8,0.396237,2,0.100166,4,9,0.098652,14,0.477796,8,0.317504,2,0.106048,4,9,0.121903,14,0.507409,8,0.253071,2,0.117616,4,9,0.166995,14,0.473284,8,0.219902,2,0.139818,4,9,0.207109,14,0.424007,8,0.211051,2,0.157833,4,9,0.258438,14,0.349248,8,0.209964,2,0.18235,4,9,0.327319,14,0.298652,2,0.187349,8,0.18668,4,9,0.439959,14,0.219475,2,0.201492,8,0.139075,4,9,0.452503,2,0.251581,14,0.174752,8,0.121165,4,9,0.43703,2,0.30636,14,0.147742,8,0.108868,4,9,0.442354,2,0.371277,14,0.107023,8,0.079347,4,9,0.474053,2,0.387643,14,0.080225,8,0.058079,4,9,0.574611,2,0.318358,14,0.063455,3,0.043577,4,9,0.629269,2,0.278382,14,0.051773,3,0.040577,4,9,0.775312,2,0.168447,3,0.02854,14,0.027701,4,9,0.8437,2,0.11068,4,0.024597,3,0.021023,4,9,0.671558,2,0.228599,4,0.057483,3,0.04236,4,9,0.058719,2,0.467063,4,0.392959,3,0.081259,4,9,0.035756,2,0.497509,4,0.340793,3,0.125942,4,9,0.033966,3,0.461858,4,0.265543,2,0.238633,4,3,0.939785,4,0.032522,2,0.020554,10,0.007139,4,3,0.993568,4,0.003048,2,0.00183,10,0.001554,4,3,0.992351,4,0.003021,2,0.002404,10,0.002223,4,3,0.999385,2,0.000234,4,0.000198,10,0.000182,4,3,0.97565,2,0.011693,8,0.006617,4,0.00604,4,3,0.824762,2,0.07617,8,0.051783,12,0.047285,4,3,0.387615,2,0.25062,8,0.199229,12,0.162536,4,8,0.358236,2,0.317919,12,0.191623,3,0.132221,4,8,0.54404,2,0.223476,12,0.163649,3,0.068835,4,8,0.752778,12,0.11254,2,0.096321,3,0.038361,4,8,0.851543,12,0.072053,2,0.04908,11,0.027324,4,8,0.86705,12,0.057149,11,0.041167,2,0.034634,4,8,0.748783,11,0.110489,12,0.091172,2,0.049557,4,8,0.625128,11,0.201328,12,0.113323,2,0.060221,4,8,0.40893,11,0.400457,12,0.127077,2,0.063536,4,11,0.946188,8,0.02366,12,0.021273,3,0.008879,4,11,0.999196,12,0.000385,8,0.00028,3,0.000139,4,11,0.978332,12,0.011397,8,0.006538,3,0.003733,4,11,0.938281,12,0.030623,8,0.02079,3,0.010306,4,11,0.87782,12,0.054457,8,0.048203,3,0.01952,4,11,0.805796,12,0.093259,8,0.070094,3,0.030851,4,11,0.735419,12,0.154775,8,0.067603,3,0.042202,4,11,0.589059,12,0.278959,8,0.071663,3,0.060319,4,11,0.464329,12,0.399607,3,0.069291,8,0.066773,4,12,0.45782,11,0.411642,3,0.069649,8,0.06089,4,11,0.450179,12,0.425093,3,0.066193,8,0.058535,4,11,0.591841,12,0.293095,8,0.057801,3,0.057263,4,10,0.495566,4,0.279538,3,0.189635,2,0.03526,4,10,0.518536,4,0.385195,3,0.079208,2,0.017061,4,4,0.657531,10,0.303144,3,0.031925,2,0.007401,4,4,0.92744,10,0.055742,3,0.013757,2,0.003061,4,4,0.930066,3,0.03689,10,0.027035,2,0.006009,4,9,0.324325,2,0.381073,4,0.193875,3,0.100728,4,9,0.209466,2,0.583484,4,0.137132,3,0.069918,4,9,0.004471,2,0.97998,4,0.010262,3,0.005287,4,9,0.018296,4,0.852305,2,0.075369,3,0.05403,4,9,0.093694,4,0.523366,2,0.246974,3,0.135966,4,9,0.177599,2,0.378118,4,0.323429,3,0.120855,4,9,0.322603,2,0.341297,4,0.219159,3,0.116942],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[9,-0.377988,0.92581,-0.92581,-0.377988,-48.25,139.9,14,-0.535747,0.844378,-0.844378,-0.535747,-85,204.55,8,-0.397562,0.917575,-0.917575,-0.397562,-26.15,239.55,2,-0.178496,0.983941,-0.983941,-0.178496,-3.55,129.75,3,0.051673,0.998664,-0.998664,0.051673,34.55,154.55,4,0.758882,0.651228,-0.651228,0.758882,29.2,116.9,10,0.439603,0.898192,-0.898192,0.439603,89.85,169.6,12,0.787936,0.615757,-0.615757,0.787936,15.1,277.55,11,-0.438903,0.898534,-0.898534,-0.438903,3.5,352.4],\"edges\":[120,113,113,112,112,111,111,70,124,125,125,126,126,197,197,195,195,120,46,44,44,43,43,0,0,10,121,122,122,124,10,121,70,69,69,67,67,48,48,47,47,46],\"userEdges\":[]}]}]}],\"animation\":[{\"duration\":15,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"金鱼身\",\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":5.26},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-7.12},{\"duration\":0}]},{\"name\":\"背\",\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":1.19},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-0.63},{\"duration\":0}]},{\"name\":\"背1\",\"translateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"x\":-2.78,\"y\":-5.5},{\"duration\":5,\"tweenEasing\":0,\"x\":1.65,\"y\":-2.31},{\"duration\":0}],\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":10.56},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-0.52},{\"duration\":0}]},{\"name\":\"右翅\",\"translateFrame\":[{\"duration\":5},{\"duration\":5,\"tweenEasing\":0,\"x\":4.09,\"y\":-0.81},{\"duration\":5,\"tweenEasing\":0,\"x\":4.96,\"y\":-12.7},{\"duration\":0}],\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-28.46},{\"duration\":5,\"tweenEasing\":0,\"rotate\":2.76},{\"duration\":0}]},{\"name\":\"左翅\",\"translateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"x\":9.41,\"y\":-0.47},{\"duration\":5,\"tweenEasing\":0,\"x\":12.29,\"y\":10.73},{\"duration\":0}],\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":23.91},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-3.22},{\"duration\":0}]},{\"name\":\"xiao尾巴\",\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":2.92},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-4.52},{\"duration\":0}]},{\"name\":\"xiao尾巴1\",\"translateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"x\":13.3,\"y\":36.73},{\"duration\":5,\"tweenEasing\":0,\"x\":7.82,\"y\":20.48},{\"duration\":0}],\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-5.93},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-10.02},{\"duration\":0}]},{\"name\":\"xiao尾巴3\",\"translateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":10,\"tweenEasing\":0,\"x\":14.9,\"y\":1.3},{\"duration\":0}],\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":2.85},{\"duration\":5,\"tweenEasing\":0,\"rotate\":6.11},{\"duration\":0}]},{\"name\":\"xiao尾巴4\",\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":1.68},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-1.93},{\"duration\":0}]},{\"name\":\"xiao尾巴5\",\"translateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"x\":12.43,\"y\":-22.92},{\"duration\":5,\"tweenEasing\":0,\"x\":0.56,\"y\":-3.52},{\"duration\":0}],\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-10.85},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-1.26},{\"duration\":0}]},{\"name\":\"xiao尾巴7\",\"translateFrame\":[{\"duration\":5,\"tweenEasing\":0,\"x\":-5.81,\"y\":10.75},{\"duration\":5,\"tweenEasing\":0,\"x\":14.41,\"y\":0.7},{\"duration\":5,\"tweenEasing\":0,\"x\":0.44,\"y\":-8.49},{\"duration\":0}],\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":2.24},{\"duration\":5,\"tweenEasing\":0,\"rotate\":8.11},{\"duration\":0}]},{\"name\":\"xiao尾巴8\",\"translateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":10,\"tweenEasing\":0,\"x\":8.1,\"y\":-7.15},{\"duration\":0}],\"rotateFrame\":[{\"duration\":5,\"tweenEasing\":0},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-4.55},{\"duration\":5,\"tweenEasing\":0,\"rotate\":-40.75},{\"duration\":0}]}],\"ffd\":[{\"name\":\"动画拆/xiao尾巴\",\"slot\":\"xiao尾巴\",\"frame\":[{\"duration\":5,\"tweenEasing\":0,\"offset\":48,\"vertices\":[-3.8,0.4,0,0,0,0,0,0,-1.5,0.25,-4.25,0.55,-2.05,5.2,0,0,0,2.85,0.75,5.95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-6.4,5.55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3.45,1.25]},{\"duration\":5,\"tweenEasing\":0,\"vertices\":[7.49,5.07,2.95,-0.37,0,0,0,0,0,0,0,0,-2.6,-0.79,-3.6,0.82,-2.3,2.1,0.4,0,8.43,2.61,5.61,-0.89,-1.99,-0.82,-2.8,1.56,-1.91,1.09,-2.45,2.2,0,0,0,0,0,0,0,0,0,0,2.58,1.98,8.45,0.43,10.16,-1.78,5.3,4.41,-2.3,0.11,0,0,0,0,-1.5,0.25,-2.89,2.15,3.22,10.64,0,0,-1.79,3.36,0.75,5.95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92,1.12,0,2.45,-1.47,8.37,0.68,7.47,0.35,1.81,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.46,1.49,-3.85,4.1,-4.72,6.81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-6.02,-2.05,0,0,-1.19,0.77,-3.9,2.82,-9.19,4.83,-16.33,4.7,-18.09,1.13,-14.71,0.43,-10.59,3.67,-5.12,3.48,-4.69,4.26,-3.5,4.92,-4.84,9.29,-11.74,7.86,-6.81,4.25,-3.25,0.64,0,0,0,0,0,0,0,0,0,0,0,0,-6.06,3.53,-9.6,3.18,-8.14,7.25,-6.4,5.55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-4.44,6.12,-17.89,19.43,-14.16,17.81,-5.69,4.16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.39,4.33,-2.2,10.83,-0.77,14.6,-7.91,10.5,-10.13,2.01,-2.34,0.52,0,0,-2.04,-0.72,-1.6,-0.36,-3,-1.21,-1.95,-0.2,-4.2,-0.8,-3.15,-1.79,-0.01,-4.2,0,0,6.55,-0.84,5.58,2.84,5.6,2.96,3.97,2.76,5.46,2.41,5.06,2.01,3.43,0.91,0,0,0,0,-2.24,2.56,-2.2,0.04,-2.91,-0.96,-4.21,-0.86,-2.96,-0.52,-2.11,-0.53,0,0,2.48,1.96,4.96,0.31,3.26,0.24,4.06,0.73,5.97,0.86,2.66,0.41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.45,1.45,2.85,-0.35,3.45,0.2,0.3,-0.1,5.2,2.65,5.53,6.18,5,3.22,-1.9,-1.8,-4.55,-4.25,-6.39,-5.59,-12.73,-4.94,-14.21,-5.43,-12.75,0.43,-8.39,2.35,-3.99,0.6,-0.26,2.14,-2.71,8.92,-1.34,21.07,0.56,11.42,-0.98,3.63]},{\"duration\":5,\"tweenEasing\":0,\"vertices\":[5.39,1.66,2.09,0.79,0,0,0,0,0,0,2.73,-1.3,1.33,-0.71,-1.89,-0.27,3.37,-0.46,-0.57,-0.64,5.45,0.16,2.15,0.03,1.07,-0.41,-3.94,-0.12,-2.66,0.08,-6.4,0.29,-0.66,0.15,0,0,0,0,0,0,0,0,-1.89,-0.29,-0.73,-0.95,-0.44,-0.34,-0.69,5.13,0,0,0,0,0,0,-1.5,0.25,-6.09,0.66,-7.19,7.04,0,0,0,2.85,0.74,5.68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.49,-2.18,10.39,-3.98,11.21,-6.57,2.54,-5.86,0.86,-3.34,0,0,0,0,0,0,-0.58,-9.44,2.64,-17.19,1.05,-16.18,0.81,-14.13,0.08,-8.36,0,0,0.57,-1.95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.37,-6.53,0.27,-5.66,2.73,-9.6,1.8,-5.95,2.07,-3.87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7.24,-4.42,13.63,-3.22,7.4,-2.54,2,0.65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.16,7.27,4.07,-1.56,4.46,-3.13,2.81,-5.52,3.47,-6.22,4.71,-6.54,6.5,-12.31,8.12,-15.68,7.53,-10.18,7.43,-5.14,6.06,0.25,-0.29,4,0,0,2.03,0.1,2.35,-0.27,2.16,0.4,2.85,1.93,3.07,1.54,3.25,1.69,2.28,0.7,3.67,2.74,3.9,4.29,2.17,7.21,2.13,5.52,2.01,4.67,4.76,4.72,3.29,6.67,5.07,5.17,5.4,3.71,0,0,0,0,1.93,0.44,2.06,0.41,3.16,-0.57,2.82,1.34,3.29,0.53,1.56,0.56,-0.37,0.71,-1.14,-0.64,-2.23,-0.82,-2.19,-0.77,-2.67,-0.77,-1.93,-0.1,-0.55,0.11,0,0,0,0,0,0,0,0,0,0,0,0,-0.43,0.2,-2.12,0.02,-4.95,-1.03,-6.28,-1.09,-6.34,-1.78,-6.38,1.07,-3.66,-0.05,-1,0.01,2.03,3.17,4.2,4.57,5.5,3.48,5.28,2.73,3.29,1.62,1.51,0.97,1,-0.55,0,0,0,0,0,0,0,0,1.93,-3.78]},{\"duration\":0,\"offset\":48,\"vertices\":[-3.8,0.4,0,0,0,0,0,0,-1.5,0.25,-4.25,0.55,-2.05,5.2,0,0,0,2.85,0.75,5.95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-6.4,5.55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3.45,1.25]}]},{\"name\":\"动画拆/背\",\"slot\":\"背\",\"frame\":[{\"duration\":5,\"tweenEasing\":0,\"offset\":86,\"vertices\":[0.35,0.3]},{\"duration\":5,\"tweenEasing\":0,\"offset\":70,\"vertices\":[-2.74,1.33,-1.2,1.5,0.93,7.66,-2.35,-0.26,0.01,-2.3,0,0,2.76,7.84,0,0,2.52,7.25,5.25,6.48,0,0,0,0,0,0,0,0,0,0,1.43,0.69,3.98,2.56,-0.27,10.1,0,0,0,0,0,0,-2.54,0.84,0,0,-0.9,0.76]},{\"duration\":5,\"tweenEasing\":0,\"vertices\":[8.15,-8.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.84,0.49,2.46,0.86,4.24,1.6,4.25,1.03,1.23,-0.79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.37,0.66,-0.6,0.75,-1.55,6.83,-1.39,2.84,-1.14,-1.1,-0.78,-3.22,1.38,3.92,0,0,3.88,-0.39,4.29,-0.28,0.74,-1.61,0,0,0,0,0,0,0,0,4.6,-4.85,11.51,-3.11,8.37,-2.93,0,0,0,0,0,0,-1.27,0.42,0,0,-0.45,0.38]},{\"duration\":0,\"offset\":86,\"vertices\":[0.35,0.3]}]},{\"name\":\"动画拆/左翅\",\"slot\":\"左翅\",\"frame\":[{\"duration\":5,\"tweenEasing\":0,\"offset\":2,\"vertices\":[-0.8,-0.05]},{\"duration\":5,\"tweenEasing\":0,\"offset\":2,\"vertices\":[7.81,6.4,3.18,1.49,2.36,1.26,1.81,0.48,0.48,0.13,0,0,0,0,0,0,0,0,0,0,5.31,2.53,2.16,0.8,0,0,0,0,0,0,2.49,2.62,0.84,0.16,0.43,0.05,0.63,0.51]},{\"duration\":5,\"tweenEasing\":0,\"offset\":2,\"vertices\":[-10.36,-1.54,-2.51,0.65,-0.01,1.18,0.61,0.41,0.48,0.13,0,0,0,0,0,0,0,0,0,0,-0.66,0.99,1.02,1.2,0,0,0,0,0,0,-2.84,0.63,-2.33,-0.57,0.43,0.05,0.63,0.51]},{\"duration\":0,\"offset\":2,\"vertices\":[-0.8,-0.05]}]},{\"name\":\"动画拆/右翅\",\"slot\":\"右翅\",\"frame\":[{\"duration\":5,\"tweenEasing\":0,\"offset\":2,\"vertices\":[1,0.05]},{\"duration\":5,\"tweenEasing\":0,\"offset\":2,\"vertices\":[-5.8,3.39,-5.25,4,-4.71,3.26,-2.75,1.98,-1.65,1.69,-1.18,3.14,0,0,0,0,0,0,0.55,-3.3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.33,0.3,-3.76,0.02,0.12,-0.66,0.62,-1.31,0.55,-1.29]},{\"duration\":5,\"tweenEasing\":0,\"offset\":2,\"vertices\":[11.11,-3.45,2,-2.26,-2.14,3.75,-0.68,1.08,-1.65,1.69,-1.18,3.14,0,0,0,0,0,0,0.55,-3.3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.72,1.09,1.5,0.12,0.12,-0.66,0.62,-1.31,0.55,-1.29,0,0,1.13,-1.07]},{\"duration\":0,\"offset\":2,\"vertices\":[1,0.05]}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[{"name":"图层 1","rect":[447,3,415,241],"offset":[0,0],"originalSize":[415,241],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[8,"dianman_ske","{\"frameRate\":24,\"name\":\"dianman\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-161.92,\"y\":-340.31,\"width\":323.15,\"height\":826},\"bone\":[{\"name\":\"root\"},{\"length\":59,\"name\":\"6身\",\"parent\":\"root\",\"transform\":{\"x\":-0.55,\"y\":-256.6,\"skX\":88.9899,\"skY\":88.9899}},{\"length\":89,\"name\":\"6身1\",\"parent\":\"6身\",\"transform\":{\"x\":63.2587,\"y\":0.0652,\"skX\":1.0101,\"skY\":1.0101}},{\"length\":64,\"name\":\"6右大翅\",\"parent\":\"6身\",\"transform\":{\"x\":61.8681,\"y\":-34.5147,\"skX\":-52.8608,\"skY\":-52.8608}},{\"length\":66,\"name\":\"6左大翅\",\"parent\":\"6身\",\"transform\":{\"x\":63.6256,\"y\":35.9773,\"skX\":54.6166,\"skY\":54.6166}},{\"length\":120,\"name\":\"6身2\",\"parent\":\"6身1\",\"transform\":{\"x\":90.75,\"y\":1.25,\"skX\":-1.0702,\"skY\":-1.0702}},{\"length\":46,\"name\":\"6左小翅\",\"parent\":\"6身1\",\"transform\":{\"x\":127,\"y\":49.1,\"skX\":39.7507,\"skY\":39.7507}},{\"length\":50,\"name\":\"6右小翅\",\"parent\":\"6身1\",\"transform\":{\"x\":124.65,\"y\":-44.35,\"skX\":-49.5098,\"skY\":-49.5098}},{\"length\":97,\"name\":\"6身3\",\"parent\":\"6身2\",\"transform\":{\"x\":121.9427,\"y\":1.5278,\"skX\":0.1878,\"skY\":0.1878}},{\"length\":84,\"name\":\"6身4\",\"parent\":\"6身3\",\"transform\":{\"x\":96.6616,\"y\":-0.0115,\"skX\":-0.1311,\"skY\":-0.1311}},{\"length\":106,\"name\":\"6身5\",\"parent\":\"6身4\",\"transform\":{\"x\":85.4999,\"y\":0.7623,\"skX\":-0.9792,\"skY\":-0.9792}},{\"length\":77,\"name\":\"6身6\",\"parent\":\"6身5\",\"transform\":{\"x\":116.7298,\"y\":2.6102,\"skX\":-1.3001,\"skY\":-1.3001}},{\"length\":93,\"name\":\"6身7\",\"parent\":\"6身6\",\"transform\":{\"x\":90.7657,\"y\":1.4656,\"skX\":-6.7632,\"skY\":-6.7632}}],\"slot\":[{\"name\":\"6右小翅\",\"parent\":\"6右小翅\"},{\"name\":\"6左大翅\",\"parent\":\"6左大翅\"},{\"name\":\"6右大翅\",\"parent\":\"6右大翅\"},{\"name\":\"6左小翅\",\"parent\":\"6左小翅\"},{\"name\":\"6身\",\"parent\":\"6身7\"}],\"skin\":[{\"slot\":[{\"name\":\"6左大翅\",\"display\":[{\"name\":\"动画拆/6左大翅\",\"transform\":{\"x\":88.62,\"y\":-18.22,\"skX\":-143.61,\"skY\":-143.61}}]},{\"name\":\"6右大翅\",\"display\":[{\"name\":\"动画拆/6右大翅\",\"transform\":{\"x\":87.38,\"y\":18.48,\"skX\":-36.13,\"skY\":-36.13}}]},{\"name\":\"6左小翅\",\"display\":[{\"name\":\"动画拆/6左小翅\",\"transform\":{\"x\":34,\"y\":-3.13,\"skX\":-129.75,\"skY\":-129.75}}]},{\"name\":\"6右小翅\",\"display\":[{\"name\":\"动画拆/6右小翅\",\"transform\":{\"x\":38.19,\"y\":6.83,\"skX\":-40.49,\"skY\":-40.49}}]},{\"name\":\"6身\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/6身\",\"width\":132,\"height\":826,\"vertices\":[-1.95,-263.45,-10.1,-260.5,-15.55,-257.05,-24.1,-256.95,-28.1,-254.25,-24.8,-250.45,-30.6,-246.55,-36.9,-242.6,-43.85,-238.7,-48.15,-232.1,-43.85,-231.25,-39,-233.15,-33.8,-236.8,-28.35,-239.9,-25.05,-241.6,-26.9,-237.05,-32.5,-231.95,-38.1,-225.3,-42.25,-217.45,-43.75,-209.8,-43.75,-201.2,-43.4,-193.3,-41.2,-187.2,-44.55,-179.2,-45.7,-171.9,-46.8,-161.6,-47.95,-152.05,-50.75,-142,-52.35,-134.25,-52.95,-119.5,-53.8,-106.85,-54.4,-90.8,-55.25,-75.95,-54.5,-48.3,-54.65,-30.3,-54.85,-10.05,-54.4,7.9,-54.25,25.85,-54.15,43.1,-53.9,60.05,-53.05,81.4,-51.75,102.4,-50.3,122.85,-48.1,143.1,-45.25,156.85,-43.45,170.7,-41.65,186.25,-37.75,205.15,-33.35,226.35,-33.25,238.8,-30.4,267.65,-27.4,302.55,-26.9,324.3,-28.75,287.1,-30.3,344.3,-30.6,360.9,-32.8,379.5,-33.1,395.4,-32.1,418.7,-25.25,442,-16.35,459.45,-11.3,466,-8.65,476.2,-1.9,487.1,8.5,500.5,17.55,510.4,28.45,516.75,38.15,528,49.4,541.75,49.9,536.55,45.2,523.3,41.7,513.4,36.65,502.65,32.95,491.95,30.3,482.7,39.5,487.6,48.35,494.45,70.15,502.85,61.95,492.1,56.75,483.4,52.9,469.5,51.05,455.55,51.55,442.7,49.85,425.75,49,415.35,48.05,404.3,49.55,395.6,50.35,380.5,50.9,371.45,50.9,362.45,49.1,349.05,45.15,333.5,40.75,316.4,38.85,306.45,37.35,294.15,36,281.15,35.45,270.35,35.3,260.5,40.85,227.6,45.1,198.15,51.15,167.15,52.7,142.9,55.7,116.15,57.55,80.65,57.85,46.6,58.75,15.65,58.15,-10.15,58.4,-34.75,57.5,-68.75,57.5,-96.4,55.4,-117.05,51.15,-136.8,47.85,-155.6,47.2,-172,41.85,-197.1,42.35,-212.45,38.25,-222.4,37.75,-226.8,33.2,-232.2,27.5,-234,23.25,-244.6,34.2,-238.75,46.45,-231.4,50.5,-234.15,45.6,-240.2,38.1,-243.65,31.9,-247.7,25.85,-249.35,29.6,-252.3,29.75,-256.85,18.85,-257.65,13.1,-259.3,6.6,-262.9],\"uvs\":[0.42841,0.02185,0.36667,0.02542,0.32538,0.0296,0.26061,0.02972,0.2303,0.03299,0.2553,0.03759,0.21136,0.04231,0.16364,0.04709,0.11098,0.05182,0.07841,0.05981,0.11098,0.06084,0.14773,0.05854,0.18712,0.05412,0.22841,0.05036,0.25341,0.04831,0.23939,0.05381,0.19697,0.05999,0.15455,0.06804,0.12311,0.07754,0.11174,0.0868,0.11174,0.09722,0.11439,0.10678,0.13106,0.11416,0.10568,0.12385,0.09697,0.13269,0.08864,0.14516,0.07992,0.15672,0.05871,0.16889,0.04659,0.17827,0.04205,0.19613,0.03561,0.21144,0.03106,0.23087,0.02462,0.24885,0.0303,0.28232,0.02917,0.30412,0.02765,0.32863,0.03106,0.35036,0.0322,0.37209,0.03295,0.39298,0.03485,0.4135,0.04129,0.43935,0.05114,0.46477,0.06212,0.48953,0.07879,0.51404,0.10038,0.53069,0.11402,0.54746,0.12765,0.56628,0.1572,0.58916,0.19053,0.61483,0.19129,0.6299,0.21288,0.66483,0.23561,0.70708,0.23939,0.73341,0.22538,0.68838,0.21364,0.75763,0.21136,0.77772,0.1947,0.80024,0.19242,0.81949,0.2,0.8477,0.25189,0.87591,0.31932,0.89703,0.35758,0.90496,0.37765,0.91731,0.42879,0.93051,0.50758,0.94673,0.57614,0.95872,0.65871,0.9664,0.7322,0.98002,0.81742,0.99667,0.82121,0.99038,0.78561,0.97433,0.75909,0.96235,0.72083,0.94933,0.6928,0.93638,0.67273,0.92518,0.74242,0.93111,0.80947,0.93941,0.97462,0.94958,0.9125,0.93656,0.87311,0.92603,0.84394,0.9092,0.82992,0.89231,0.83371,0.87676,0.82083,0.85623,0.81439,0.84364,0.8072,0.83027,0.81856,0.81973,0.82462,0.80145,0.82879,0.7905,0.82879,0.7796,0.81515,0.76338,0.78523,0.74455,0.75189,0.72385,0.7375,0.7118,0.72614,0.69691,0.71591,0.68117,0.71174,0.6681,0.71061,0.65617,0.75265,0.61634,0.78485,0.58069,0.83068,0.54316,0.84242,0.5138,0.86515,0.48142,0.87917,0.43844,0.88144,0.39722,0.88826,0.35975,0.88371,0.32851,0.88561,0.29873,0.87879,0.25757,0.87879,0.22409,0.86288,0.19909,0.83068,0.17518,0.80568,0.15242,0.80076,0.13257,0.76023,0.10218,0.76402,0.0836,0.73295,0.07155,0.72917,0.06622,0.6947,0.05969,0.65152,0.05751,0.61932,0.04467,0.70227,0.05176,0.79508,0.06065,0.82576,0.05732,0.78864,0.05,0.73182,0.04582,0.68485,0.04092,0.63902,0.03892,0.66742,0.03535,0.66856,0.02984,0.58598,0.02887,0.54242,0.02688,0.49318,0.02252],\"triangles\":[3,1,0,94,93,92,95,94,98,96,95,98,97,96,98,98,94,91,94,92,91,129,125,124,85,84,86,86,84,83,67,65,68,99,98,90,98,91,90,122,115,123,114,113,123,115,114,123,113,112,111,90,89,100,99,90,100,113,111,110,123,113,110,101,100,102,123,110,109,109,108,107,107,106,105,103,105,104,80,79,78,83,82,77,86,83,77,102,100,77,100,89,77,109,107,77,107,105,77,78,76,77,76,71,77,71,70,77,87,86,77,88,87,77,80,78,77,81,80,77,82,81,77,70,69,77,69,68,77,89,88,77,103,102,77,105,103,77,132,130,129,79,76,78,116,115,122,31,108,109,108,33,107,41,102,103,39,40,103,107,34,106,34,35,106,106,36,105,36,37,105,39,103,104,38,39,104,105,37,104,37,38,104,31,32,108,33,34,107,35,36,106,40,41,103,32,33,108,110,30,109,30,31,109,80,75,79,75,76,79,72,71,76,29,30,110,42,101,102,41,42,102,111,29,110,132,131,130,81,74,80,74,75,80,44,100,101,43,44,101,42,43,101,129,126,125,70,67,69,83,60,82,60,61,82,27,28,111,28,29,111,112,26,111,26,27,111,46,99,100,45,46,100,44,45,100,82,61,81,61,74,81,55,87,88,89,55,88,90,55,89,56,86,87,55,56,87,67,68,69,117,116,122,59,60,83,124,122,123,56,57,86,84,59,83,91,54,90,54,55,90,57,85,86,129,128,126,58,59,84,58,84,85,75,72,76,57,58,85,24,25,112,25,26,112,114,22,113,24,112,113,22,24,113,73,72,75,46,47,99,118,117,122,124,121,122,121,118,122,47,48,98,52,54,91,47,98,99,71,67,70,125,121,124,92,52,91,66,65,67,49,97,98,116,119,114,66,67,71,116,114,115,20,22,119,119,22,114,72,66,71,48,49,98,16,20,119,93,52,92,15,16,119,74,73,75,51,52,93,51,93,94,126,121,125,95,51,94,118,119,116,118,116,117,61,62,74,49,50,97,53,51,95,73,65,72,65,66,72,97,50,96,53,95,96,50,53,96,119,118,121,64,65,73,126,120,121,120,119,121,62,63,74,74,64,73,127,120,126,128,127,126,63,64,74,60,59,62,130,127,129,129,127,128,19,20,17,17,20,16,120,14,119,14,15,119,130,120,127,131,1,120,1,2,120,2,14,120,130,131,120,23,24,22,132,0,131,0,1,131,18,19,17,20,21,22,32,30,9,42,41,58,5,14,2,3,2,1,61,60,62,3,5,2,13,15,14,6,14,5,4,6,5,3,4,5,6,13,14,57,42,58,8,7,4,54,52,51,13,12,15,12,16,15,53,54,51,6,7,13,7,6,4,7,12,13,50,54,53,49,46,54,46,56,54,56,55,54,50,49,54,12,11,16,11,17,16,46,43,56,47,46,49,43,57,56,47,49,48,43,42,57,7,11,12,11,10,17,8,11,7,10,18,17,8,10,11,10,9,18,21,23,22,45,43,46,8,9,10,9,19,18,44,43,45,20,23,21,24,23,20,9,24,20,19,9,20,30,28,9,27,25,24,9,27,24,28,27,9,27,26,25,30,29,28,35,38,37,30,32,31,35,37,36,32,34,33,32,35,34],\"weights\":[3,1,0.988314,2,0.009819,5,0.001867,3,1,0.973446,2,0.022414,5,0.00414,3,1,0.942026,2,0.049162,5,0.008812,3,1,0.875614,2,0.104454,5,0.019932,3,1,0.833214,2,0.140082,5,0.026704,3,1,0.848533,2,0.129036,5,0.022431,3,1,0.77955,2,0.187505,5,0.032946,3,1,0.70714,2,0.247573,5,0.045287,3,1,0.638586,2,0.301828,5,0.059586,3,1,0.582247,2,0.347139,5,0.070614,3,1,0.600209,2,0.337411,5,0.06238,3,1,0.64029,2,0.30747,5,0.05224,3,1,0.700595,2,0.258014,5,0.041391,3,1,0.767273,2,0.201859,5,0.030868,3,1,0.808757,2,0.166341,5,0.024902,3,1,0.765848,2,0.20507,5,0.029081,3,1,0.682297,2,0.277378,5,0.040325,3,1,0.600148,2,0.346905,5,0.052947,3,1,0.535806,2,0.399652,5,0.064543,3,1,0.496365,2,0.431543,5,0.072092,3,1,0.468473,2,0.452538,5,0.078989,3,1,0.453968,2,0.458139,5,0.087893,3,1,0.440176,2,0.467396,5,0.092428,3,1,0.404757,2,0.472168,5,0.123076,4,1,0.358284,2,0.469079,5,0.146742,8,0.025895,4,1,0.302023,2,0.47694,5,0.190491,8,0.030546,4,1,0.251908,2,0.47455,5,0.238375,8,0.035166,4,1,0.208863,2,0.454686,5,0.294708,8,0.041744,4,1,0.180088,2,0.438849,5,0.334516,8,0.046548,4,1,0.133049,2,0.417131,5,0.395855,8,0.053965,4,1,0.107107,5,0.42295,2,0.406293,8,0.06365,4,1,0.087439,5,0.434665,2,0.394346,8,0.08355,4,1,0.077084,5,0.456529,2,0.352629,8,0.113758,4,1,0.059155,5,0.499533,2,0.242863,8,0.198448,4,5,0.489725,8,0.274118,2,0.175301,9,0.060857,4,5,0.448723,8,0.361002,2,0.116937,9,0.073338,4,8,0.416222,5,0.414543,9,0.086852,2,0.082382,4,8,0.427365,5,0.397034,9,0.112336,2,0.063265,4,8,0.441666,5,0.349249,9,0.156016,2,0.053069,4,8,0.451305,5,0.27439,9,0.216385,10,0.05792,4,8,0.439018,9,0.306777,5,0.180979,10,0.073226,4,8,0.411374,9,0.382895,5,0.114928,10,0.090803,4,9,0.402352,8,0.39792,10,0.12119,5,0.078538,4,9,0.425818,8,0.336175,10,0.179558,5,0.05845,4,9,0.449828,8,0.264871,10,0.238463,5,0.046838,4,9,0.453411,10,0.314666,8,0.192093,11,0.03983,4,9,0.433799,10,0.395701,8,0.12663,11,0.04387,4,10,0.447373,9,0.426724,8,0.076317,11,0.049586,4,10,0.527988,9,0.347939,11,0.071417,8,0.052656,4,10,0.574947,9,0.275788,11,0.101279,8,0.047987,4,10,0.625369,11,0.204941,9,0.134032,12,0.035658,4,10,0.478734,11,0.433345,9,0.045965,12,0.041957,4,11,0.533792,10,0.373976,12,0.061059,9,0.031172,4,10,0.563246,11,0.321,9,0.075558,12,0.040196,4,11,0.570964,10,0.268389,12,0.127952,9,0.032695,4,11,0.578265,12,0.207252,10,0.18567,9,0.028813,4,11,0.518654,12,0.332919,10,0.123712,9,0.024715,4,11,0.464418,12,0.430651,10,0.084996,9,0.019935,3,12,0.532066,11,0.404362,10,0.063572,3,12,0.661845,11,0.288149,10,0.050006,3,12,0.791351,11,0.173777,10,0.034872,3,12,0.846494,11,0.126624,10,0.026882,3,12,0.879024,11,0.097649,10,0.023328,3,12,0.928374,11,0.056635,10,0.014991,3,12,0.974538,11,0.019619,10,0.005844,2,12,0.98999,11,0.01001,2,12,0.981537,11,0.018463,2,12,0.950609,11,0.049391,2,12,0.907649,11,0.092351,2,12,0.916354,11,0.083646,2,12,0.947747,11,0.052253,2,12,0.968587,11,0.031413,3,12,0.981972,11,0.01369,10,0.004338,3,12,0.985688,11,0.011117,10,0.003194,3,12,0.985902,11,0.011183,10,0.002915,3,12,0.958979,11,0.03195,10,0.009072,3,12,0.931627,11,0.052102,10,0.016271,2,12,0.877156,11,0.122844,3,12,0.857852,11,0.106849,10,0.035298,3,12,0.860561,11,0.10703,10,0.032408,3,12,0.836098,11,0.129594,10,0.034308,3,12,0.786883,11,0.173381,10,0.039736,3,12,0.709951,11,0.240977,10,0.049072,3,12,0.603523,11,0.339385,10,0.057092,3,12,0.532311,11,0.405248,10,0.062441,3,12,0.467215,11,0.463112,10,0.069673,3,11,0.48606,12,0.427709,10,0.086232,4,11,0.499084,12,0.348215,10,0.126208,9,0.026493,4,11,0.508112,12,0.299525,10,0.161233,9,0.03113,4,11,0.511829,12,0.251189,10,0.201522,9,0.03546,4,11,0.509666,10,0.268965,12,0.181655,9,0.039714,4,11,0.486772,10,0.360223,12,0.112265,9,0.04074,4,10,0.463159,11,0.435004,12,0.061873,9,0.039964,4,10,0.507869,11,0.400577,12,0.047919,9,0.043635,4,10,0.566398,11,0.335545,9,0.057211,12,0.040846,4,10,0.634161,11,0.251215,9,0.079176,12,0.035448,4,10,0.670139,11,0.192324,9,0.105771,12,0.031767,4,10,0.68067,11,0.150733,9,0.138804,8,0.029793,4,10,0.527474,9,0.340802,11,0.077985,8,0.053738,4,9,0.438995,10,0.421994,8,0.090704,11,0.048307,4,9,0.448198,10,0.298121,8,0.21092,5,0.042761,4,9,0.426783,8,0.32989,10,0.183595,5,0.059732,4,9,0.396793,8,0.396532,10,0.11489,5,0.091786,4,8,0.423875,9,0.309224,5,0.190024,10,0.076877,4,8,0.42422,5,0.347094,9,0.175038,2,0.053647,4,5,0.420683,8,0.398329,9,0.103412,2,0.077576,4,5,0.453038,8,0.348181,2,0.121369,9,0.077412,4,5,0.484004,8,0.25579,2,0.19777,9,0.062436,4,1,0.075913,5,0.454175,2,0.33373,8,0.136182,4,1,0.101259,2,0.412515,5,0.404431,8,0.081795,4,1,0.134779,2,0.425034,5,0.381082,8,0.059105,4,1,0.188848,2,0.461124,5,0.306213,8,0.043815,4,1,0.271413,2,0.485164,5,0.210357,8,0.033065,4,1,0.360622,2,0.469219,5,0.143814,8,0.026345,3,1,0.46475,2,0.461249,5,0.074001,3,1,0.508775,2,0.426419,5,0.064806,3,1,0.576463,2,0.370567,5,0.052971,3,1,0.604783,2,0.344193,5,0.051024,3,1,0.670131,2,0.288431,5,0.041438,3,1,0.733522,2,0.23544,5,0.031039,3,1,0.830748,2,0.146971,5,0.02228,3,1,0.698908,2,0.259161,5,0.041932,3,1,0.580072,2,0.353134,5,0.066794,3,1,0.573197,2,0.353038,5,0.073765,3,1,0.626207,2,0.311341,5,0.062453,3,1,0.692933,2,0.259291,5,0.047775,3,1,0.762348,2,0.201722,5,0.03593,3,1,0.823974,2,0.150465,5,0.025561,3,1,0.801307,2,0.167639,5,0.031054,3,1,0.816351,2,0.153334,5,0.030314,3,1,0.909194,2,0.076755,5,0.014051,3,1,0.951682,2,0.040872,5,0.007446,3,1,0.978323,2,0.018227,5,0.00345],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[1,0.01763,0.999845,-0.999845,0.01763,-0.55,-256.6,2,0,1,-1,0,0.5,-193.35,5,0.018677,0.999826,-0.999826,0.018677,-0.75,-102.6,8,0.015399,0.999881,-0.999881,0.015399,0,19.35,9,0.017686,0.999844,-0.999844,0.017686,1.5,116,10,0.03477,0.999395,-0.999395,0.03477,2.25,201.5,11,0.057436,0.998349,-0.998349,0.057436,3.7,318.25,12,0.174608,0.984638,-0.984638,0.174608,7.45,408.95],\"edges\":[129,124,124,123,123,109,32,9,9,8,8,4,4,3,3,0,0,132,132,129,109,77,77,68,68,65,65,64,64,63,63,62,62,59,59,58,58,41,41,40,40,39,39,38,38,35,35,32],\"userEdges\":[]}]}]}],\"animation\":[{\"duration\":9,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"6身1\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":3,\"tweenEasing\":0,\"rotate\":4.78},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-3.11},{\"duration\":0}]},{\"name\":\"6右大翅\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-4.35},{\"duration\":3,\"tweenEasing\":0,\"rotate\":0.21},{\"duration\":0}]},{\"name\":\"6左大翅\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":3,\"tweenEasing\":0,\"rotate\":6.75},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-1},{\"duration\":0}]},{\"name\":\"6身2\",\"rotateFrame\":[{\"duration\":6,\"tweenEasing\":0},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-9.49},{\"duration\":0}]},{\"name\":\"6左小翅\",\"translateFrame\":[{\"duration\":3,\"tweenEasing\":0,\"x\":-2.6,\"y\":-7.73},{\"duration\":3,\"tweenEasing\":0,\"x\":1.18,\"y\":-14.39},{\"duration\":3,\"tweenEasing\":0,\"x\":1.18,\"y\":-14.39},{\"duration\":0,\"x\":-2.6,\"y\":-7.73}],\"rotateFrame\":[{\"duration\":6,\"tweenEasing\":0},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-5.19},{\"duration\":0}]},{\"name\":\"6身3\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":3,\"tweenEasing\":0,\"rotate\":13.16},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-18.77},{\"duration\":0}]},{\"name\":\"6身4\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":3,\"tweenEasing\":0,\"rotate\":18.39},{\"duration\":3,\"tweenEasing\":0,\"rotate\":7.29},{\"duration\":0}]},{\"name\":\"6身5\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":3,\"tweenEasing\":0,\"rotate\":1.73},{\"duration\":3,\"tweenEasing\":0,\"rotate\":28},{\"duration\":0}]},{\"name\":\"6身6\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-18.8},{\"duration\":3,\"tweenEasing\":0,\"rotate\":23.33},{\"duration\":0}]},{\"name\":\"6身7\",\"rotateFrame\":[{\"duration\":3,\"tweenEasing\":0},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-24.05},{\"duration\":3,\"tweenEasing\":0,\"rotate\":30.8},{\"duration\":0}]}],\"ffd\":[{\"name\":\"动画拆/6身\",\"slot\":\"6身\",\"frame\":[{\"duration\":3,\"tweenEasing\":0,\"offset\":208,\"vertices\":[-0.5,-0.6]},{\"duration\":3,\"tweenEasing\":0,\"offset\":96,\"vertices\":[-0.34,1.98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.35,10.31,4.08,-2.65,6,-6.3,5.5,-8.14,4.04,-4.37,4.4,-3.94,4.05,-4.72,2.8,-4.2,1.13,-0.86,-3.88,1.24,-2.99,-0.96,21.77,-4.04,5.38,-7.47,-3.07,-2.64,-2.45,-0.69,0,0,0,0,-3.48,-4.52,0,0,2.37,0.91,1.85,-2.22,2.6,-0.85,-0.14,0.34,-3.32,2.04,-3.04,2.81,-2.21,-0.89,1.45,-0.22,1.58,0.37,2.46,-0.01,1.41,0.12,-2.25,1.31,-2.53,0.01,-4.2,-1.43,-4.44,0.25,-2.6,0.21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.5,-0.6]},{\"duration\":3,\"tweenEasing\":0,\"offset\":96,\"vertices\":[-0.68,3.97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8.7,20.62,8.17,-5.3,12,-12.59,11.01,-16.27,8.08,-8.75,8.81,-7.87,8.1,-9.44,5.6,-8.41,2.26,-1.71,-7.76,2.49,-18.25,4.18,-41.3,19.66,-22.81,3.06,-10.64,0.57,-4.91,-1.38,0,0,0,0,0,0,0,0,-8.49,8.69,-28.89,22.47,-12.56,12.91,0,0,4.65,-2.26,7.32,-3.51,1.9,-0.26,2.89,-0.43,3.16,0.74,4.92,-0.02,2.82,0.25,3.55,0.51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.5,-0.6]},{\"duration\":0,\"offset\":208,\"vertices\":[-0.5,-0.6]}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[[8,"kedou1_ske_ske_2_ske","{\"frameRate\":24,\"name\":\"kedou1_ske_ske_2\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-36.77,\"y\":-75.2,\"width\":65,\"height\":153.82},\"bone\":[{\"name\":\"root\"},{\"length\":50,\"name\":\"尾巴_0\",\"parent\":\"root\",\"transform\":{\"x\":-2.9,\"y\":-17.4,\"skX\":-90,\"skY\":-90}},{\"length\":18,\"name\":\"动画拆/尾巴_0\",\"parent\":\"尾巴_0\",\"transform\":{\"x\":-6.75,\"y\":0.8,\"skX\":178.4476,\"skY\":178.4476}},{\"length\":21,\"name\":\"动画拆/尾巴_01\",\"parent\":\"动画拆/尾巴_0\",\"transform\":{\"x\":20.502,\"y\":0.2055,\"skX\":-1.0195,\"skY\":-1.0195}},{\"length\":34,\"name\":\"动画拆/尾巴_02\",\"parent\":\"动画拆/尾巴_01\",\"transform\":{\"x\":23.826,\"y\":1.0702,\"skX\":-1.4249,\"skY\":-1.4249}}],\"slot\":[{\"name\":\"动画拆/尾巴_0\",\"parent\":\"动画拆/尾巴_02\"},{\"name\":\"尾巴_0\",\"parent\":\"尾巴_0\"}],\"skin\":[{\"slot\":[{\"name\":\"动画拆/尾巴_0\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/尾巴_0\",\"width\":39,\"height\":114,\"vertices\":[1.85,73.29,-4.1,69.15,-8.65,63.55,-13.35,58.15,-16.7,50.25,-18.3,45.65,-18,27.8,-14,-7.05,-13.1,-14.8,-9.9,-20.15,-4.65,-21.85,2.35,-21.65,7.15,-19.35,10.35,-12.75,15.8,29.4,16.3,35.45,15.95,43.9,15.25,50.45,12.55,56.8,9.1,62.2,11.07,-1.48,12.85,8.98,14.03,19,-17.03,19.37,-15.97,10.08,-14.77,-0.37],\"uvs\":[0.57996,1,0.4274,0.9637,0.31073,0.91458,0.19022,0.86721,0.10432,0.79792,0.06329,0.75756,0.07099,0.60099,0.17355,0.29528,0.19663,0.2273,0.27868,0.18037,0.41329,0.16546,0.59278,0.16721,0.71586,0.18739,0.79791,0.24528,0.93765,0.61502,0.95047,0.66809,0.9415,0.74221,0.92355,0.79967,0.85432,0.85537,0.76586,0.90274,0.83445,0.34196,0.86977,0.4354,0.90252,0.52206,0.09582,0.52698,0.12313,0.44557,0.1539,0.35385],\"triangles\":[2,3,1,14,6,15,5,16,15,6,5,15,22,6,14,4,17,16,5,4,16,4,18,17,21,23,22,23,6,22,2,19,18,3,2,18,4,3,18,20,25,21,25,24,21,24,23,21,13,7,20,7,25,20,10,8,13,8,7,13,11,10,13,12,11,13,1,0,19,2,1,19,9,8,10],\"weights\":[3,2,0.007523,4,0.974352,3,0.018125,3,2,0.006291,4,0.977439,3,0.016271,3,2,0.022847,4,0.912401,3,0.064752,3,2,0.051451,4,0.793752,3,0.154798,3,2,0.081314,4,0.651581,3,0.267104,3,2,0.098755,4,0.573244,3,0.328002,3,2,0.17652,3,0.417709,4,0.405771,3,2,0.709428,3,0.234215,4,0.056357,3,2,0.804247,3,0.150948,4,0.044805,3,2,0.828311,3,0.129498,4,0.042191,3,2,0.852622,3,0.111021,4,0.036357,3,2,0.843706,3,0.117729,4,0.038565,3,2,0.813819,3,0.140828,4,0.045353,3,2,0.762333,3,0.184922,4,0.052745,3,2,0.096438,4,0.552372,3,0.351189,3,2,0.07737,4,0.664763,3,0.257867,3,2,0.048478,4,0.8011,3,0.150422,3,2,0.022785,4,0.911448,3,0.065767,3,2,0.006357,4,0.976654,3,0.016989,3,2,0.004313,4,0.984799,3,0.010888,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,3,2,0.019858,3,0.844897,4,0.135245],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[2,0.02709,0.999633,-0.999633,0.02709,-2.1,-10.65,3,0.044872,0.998993,-0.998993,0.044872,-1.75,9.85,4,0.069699,0.997568,-0.997568,0.069699,-1.75,33.7],\"edges\":[15,16,16,17,17,18,18,19,1,3,3,4,4,5,8,9,9,10,10,11,11,12,12,13,14,15,13,20,20,21,21,22,22,14,7,8,6,23,23,24,24,25,25,7,0,1,19,0,5,6],\"userEdges\":[]}]},{\"name\":\"尾巴_0\",\"display\":[{\"name\":\"动画拆/头_0\",\"transform\":{\"x\":23.8,\"y\":-1.37,\"skX\":90,\"skY\":90}}]}]}],\"animation\":[{\"duration\":16,\"playTimes\":0,\"name\":\"kedou\",\"bone\":[{\"name\":\"尾巴_0\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":8,\"tweenEasing\":0,\"rotate\":1.35},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-0.47},{\"duration\":0}]},{\"name\":\"动画拆/尾巴_0\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"tweenEasing\":0,\"rotate\":-22.07},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-7.61},{\"tweenEasing\":0,\"rotate\":20.87},{\"duration\":4,\"tweenEasing\":0,\"rotate\":20.47},{\"duration\":0}]},{\"name\":\"动画拆/尾巴_01\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"tweenEasing\":0,\"rotate\":-14.26},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-19.09},{\"tweenEasing\":0,\"rotate\":18.17},{\"duration\":4,\"tweenEasing\":0,\"rotate\":6.5},{\"duration\":0}]},{\"name\":\"动画拆/尾巴_02\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"tweenEasing\":0,\"rotate\":-24.75},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-24.2},{\"tweenEasing\":0,\"rotate\":7.4},{\"duration\":4,\"tweenEasing\":0,\"rotate\":43.22},{\"duration\":0}]}],\"ffd\":[{\"name\":\"动画拆/尾巴_0\",\"slot\":\"动画拆/尾巴_0\",\"frame\":[{\"duration\":4,\"tweenEasing\":0,\"offset\":6,\"vertices\":[-0.2,-0.6,0,0,0.7,-1.2]},{\"tweenEasing\":0,\"vertices\":[-13.6,6.35,0.37,0.29,8.14,-1.83,14.05,-1.79,15.32,-4.29,13.81,-7.33,7.81,-1.6,3.25,-0.99,4.15,-0.98,2.79,-0.88,-0.93,-0.52,0,0,0,0,2.41,0.13,-1.16,0.97,0.37,0.35,1.48,-0.45,0.53,-0.13,0.28,-0.25,0,0,-2.27,-0.09,-3.27,-0.5,0.46,-0.79,4.33,-3.25,2.21,-1.19,5.52,-1.13]},{\"duration\":6,\"tweenEasing\":0,\"vertices\":[11.98,6.43,2.26,-1.35,4.57,0.15,8.94,-1.04,9.2,-4,8.3,-8.21,4.66,-2.01,3.9,-4.36,3.86,-4.16,4.73,0.47,4.22,-0.41,0,0,0.1,-0.37,1.42,-0.06,-4.27,0.42,-5.16,0.76,-4.85,0.06,-4.51,-0.35,-3.33,-0.16,-2,-0.12,-3.79,-0.84,-4.1,-0.17,-0.76,-0.26,3.91,-1.77,0.62,-1.88,6.29,-5.28]},{\"tweenEasing\":0,\"vertices\":[9.85,5.26,3.69,-1.52,3.5,-1.36,3.79,-2.21,3.79,-3.23,4.77,-7.32,4.77,-1.22,1.4,-2.77,0.72,-0.7,0,0,0,0,0,0,0.71,-2.57,-4.11,-0.83,-5.6,-2.14,-7.91,-2.33,-9.49,-4.94,-10.15,-3.87,-7.96,-3.65,-4.04,-2.25,-1.12,-0.43,-1.55,-0.44,-3.53,-0.89,3.38,-3.52,3.15,0.53,-0.49,-1.36]},{\"tweenEasing\":0,\"vertices\":[9.49,5.06,3.93,-1.55,3.33,-1.61,2.94,-2.4,2.88,-3.11,4.18,-7.17,3.31,-2.18,-2.2,-2.02,0.61,-0.67,0,0,0,0,0,0,0.81,-2.94,-3.34,-1.55,-5.82,-2.56,-7.08,-1.77,-9.4,-3.55,-11.09,-4.46,-8.74,-4.23,-4.38,-2.6,-0.89,-1.94,-2.2,-1.47,-2.28,-0.76,6.15,-2.28,5.97,-0.2,-1.29,0.55]},{\"duration\":3,\"tweenEasing\":0,\"vertices\":[-10.92,7,1.54,-1.86,5.21,-2.31,7.61,-3.48,8.14,-4.95,7.81,-6.61,3.75,-2.27,0.91,-0.73,0.46,-0.5,0,0,0,0,0,0,0.61,-2.2,-1.33,0.36,-4.37,-1.92,-5.31,-1.33,-5.52,-2.87,-6.75,-3.14,-5.2,-3.69,-1.53,-3.47,-0.84,-0.33,-1.16,-0.33,-1.71,-0.57,3.83,-1.67,2.7,0.45,-0.23,0.18]},{\"duration\":0,\"offset\":6,\"vertices\":[-0.15,-0.3,0,0,0.7,-1.2]}]}]},{\"duration\":0,\"playTimes\":0,\"name\":\"newAnimation\"}],\"defaultActions\":[{\"gotoAndPlay\":\"kedou\"}]}]}"]],0,0,[],[],[]],[[{"name":"fishlizi7","rect":[868,83,33,31],"offset":[0,0],"originalSize":[33,31],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"blood2","rect":[447,250,292,336],"offset":[0,0],"originalSize":[292,336],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[9,"kedou1_ske_ske_2_tex","{\"width\":128,\"imagePath\":\"kedou1_ske_ske_2_tex.png\",\"SubTexture\":[{\"width\":39,\"y\":1,\"height\":114,\"name\":\"动画拆/尾巴_0\",\"x\":1},{\"width\":65,\"y\":1,\"height\":68,\"name\":\"动画拆/头_0\",\"x\":42}],\"height\":128,\"name\":\"kedou1_ske_ske_2\"}"]],0,0,[0],[7],[59]],[[{"name":"qipao2","rect":[789,492,49,46],"offset":[0,0],"originalSize":[49,46],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"star2","rect":[627,803,147,154],"offset":[0,0],"originalSize":[147,154],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"光4","rect":[667,3,333,334],"offset":[0,0],"originalSize":[333,334],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[2]],[[[4,"bowen"],[32,"paowen",150,1,[[6,-2,[0],1]],[1,-1],[5,415,241],[0,0,0,0,0,0,1,0.5,0.7,1]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,34]],[[[4,"Panlong"],[50,"Panlong",2,[-2],[1,-1],[0,0,0,0,0,0,1,0.7,0.7,1]],[5,"panlong",2,1,[[24,"Armature","newAnimation",0,"e22c7b48-5466-4a4c-a512-11b78d2453eb#f2840825-f06d-4b7f-accc-0db5699b3fe2",-3,[0],1,2]],[0,"b1hKuGLydMLJvpttDSMCZb",1],[5,315.95,2008.74]]],0,[0,2,1,0,-1,2,0,0,2,0,5,1,3],[0,0,0],[-1,3,4],[0,60,61]],[[[4,"mainBtn"],[13,"mainBtn",2,[[6,-2,[0],1]],[1,-1],[5,107,107]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,30]],[[{"name":"default_panel","rect":[0,0,20,20],"offset":[0,0],"originalSize":[20,20],"capInsets":[6,6,6,6]}],[0],0,[0],[1],[62]],[[{"name":"图层 111","rect":[0,0,720,1280],"offset":[0,0],"originalSize":[720,1280],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[63]],[[[9,"jiaoj_tex","{\"width\":512,\"SubTexture\":[{\"width\":127,\"y\":211,\"height\":204,\"name\":\"动画拆/蛟左翅\",\"x\":316},{\"width\":131,\"y\":1,\"height\":208,\"name\":\"动画拆/蛟右爪\",\"x\":316},{\"width\":235,\"y\":1,\"height\":1562,\"name\":\"动画拆/蛟身\",\"x\":1},{\"width\":313,\"y\":1565,\"height\":292,\"name\":\"动画拆/jiao头\",\"x\":1}],\"height\":2048,\"name\":\"jiaoj\",\"imagePath\":\"jiaoj_tex.png\"}"]],0,0,[0],[7],[64]],[[[9,"sy_tex","{\"width\":512,\"SubTexture\":[{\"width\":493,\"y\":1,\"height\":881,\"name\":\"动画拆/鲨鱼\",\"x\":1}],\"height\":1024,\"name\":\"sy\",\"imagePath\":\"sy_tex.png\"}"]],0,0,[0],[7],[65]],[[{"name":"fishlizi5","rect":[848,490,49,49],"offset":[0,0],"originalSize":[49,49],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[94,"MainGameScene",null],[71,"Canvas","c72wX77AxNjoGQfkwyY22D",[[-16,-17,-18,-19,-20,-21,-22,-23,-24,-25,-26,-27,-28,-29,-30,-31,-32,-33,[51,"RotLiziNode",1,-34],-35,-36],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1],[[95,true,false,-1,[5,720,1280]],[96,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,[98,99,100,101,102,103,104,105,106,107],[108,109,110,111,112,113,114,115,116,117],96,97,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[78,45,-15]],[5,720,1280],[360,640,0,0,0,0,1,1,1,1]],[10,"stone",false,2,1,[-39,-40,-41,-42],[[6,-38,[80],81]],[1,-37],[5,491,509],[0,65.252,0,0,0,0,1,1,1,1]],[66,"player",1,1,[[-43,-44,-45,-46,-47,-48,-49,-50,-51,-52,[28,"son",-53]],1,1,1,1,1,1,1,1,1,1,4]],[52,"startBg",false,180,1,[-61,-62],[[75,1,0,-54,[32],33],[97,-55,[5,720,1280]],[39,0,45,720,1280,-56],[99,-59,-58,-57],[83,-60,[4,4292269782]]],[4,4278190080],[5,720,1280]],[26,"kedou",1,3,[-67],[[2,2,-64,[[[0,-13,-58.9],[0,-4,-69.5],[0,2.4,-73.4],[0,5.6,-66.8],[0,11.6,-57.6],[0,14.8,-47.8],[0,15.7,-34.2],[0,14.4,-24.6],[0,10.6,-6.7],[0,10,9.3],[0,21.1,18],[0,26.5,29.4],[0,27.9,43.5],[0,22.27,55.45],[0,13.5,67.2],[0,6.13,71.46],[0,-7,72],[0,-20.5,65.94],[0,-29.53,55.87],[0,-34.1,41.5],[0,-33.1,25.2],[0,-24.93,14.64],[0,-14.7,8.9],[0,-18.2,-27.2],[0,-18.1,-47.3]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[12,-65],[2,888,-66,[[[0,-53.7,-98.3],[0,-2.2,-125.6],[0,44,-110.6],[0,79.6,-77.6],[0,84.3,10],[0,67.1,107.1],[0,10.7,138.8],[0,-52.9,127.9],[0,-87.5,67.1],[0,-87.1,-12.4]],8,8,8,8,8,8,8,8,8,8]]],[1,-63],[5,65,154],[0,0,0,0,0,0,1,0.5,0.5,1]],[10,"qingwa",false,1,3,[-72],[[2,2,-69,[[[0,-40.2,-51.6],[0,-32.8,-71.8],[0,-20.3,-88.9],[0,-6.1,-104.9],[0,5.7,-105],[0,12.6,-97],[0,28.6,-75.4],[0,36.5,-56.8],[0,35.6,-23.5],[0,30.4,-2.7],[0,32,9.2],[0,33.6,19.8],[0,38,28.2],[0,43.5,27.9],[0,56.2,32.5],[0,63.5,41.7],[0,62.4,56.8],[0,50.1,68.4],[0,44.5,69.7],[0,45.7,75.5],[0,47.9,86.8],[0,41.1,98.2],[0,31.7,104.4],[0,20.3,101.1],[0,12.5,103.7],[0,-8.2,105.1],[0,-21.9,100.4],[0,-32.8,103.9],[0,-44.5,98.3],[0,-48.9,83.3],[0,-46.3,70.5],[0,-55.6,68.3],[0,-64.4,57.4],[0,-65.9,45.5],[0,-57.2,33],[0,-41.9,28.3],[0,-36.2,19.9],[0,-30,0.9],[0,-37.6,-21]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[12,-70],[2,888,-71,[[[0,20.4,-191.8],[0,108.4,-181.1],[0,147.1,-122.9],[0,148.1,35.1],[0,120.2,162.6],[0,37.8,185],[0,-36.1,183.8],[0,-120.1,167.1],[0,-138.2,63.4],[0,-135.2,-40],[0,-114.8,-165.2],[0,-34.8,-196.6]],8,8,8,8,8,8,8,8,8,8,8,8]]],[1,-68],[5,310,426],[0,0,0,0,0,0,1,0.45,0.45,1]],[10,"haigui",false,1,3,[-77],[[2,2,-74,[[[0,23.5,-146.9],[0,73.8,-124.2],[0,109.2,-85.4],[0,121.8,-60.4],[0,130.8,-31.5],[0,130.5,4.4],[0,122.9,43.1],[0,113.8,69.5],[0,83.2,110.2],[0,68.9,122.4],[0,50.8,128.9],[0,35.7,124.7],[0,44.8,140.4],[0,52.1,160.3],[0,47.7,174.5],[0,39.8,192.7],[0,32.9,210.3],[0,12.1,225.3],[0,-6.1,223.8],[0,-15.8,217.6],[0,-23.8,211.8],[0,-28.6,203],[0,-36.6,185],[0,-43.4,174.9],[0,-44.4,161.6],[0,-39.4,146.4],[0,-30.2,133.8],[0,-27.2,124.4],[0,-50.7,127.6],[0,-66.3,116.6],[0,-77.54,108.13],[0,-109.5,64.7],[0,-113.8,55],[0,-121,32.1],[0,-124.7,9],[0,-123.8,-44.8],[0,-99.4,-94.3],[0,-58.4,-130.5],[0,-52.1,-133.1],[0,0.3,-152.6]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[12,-75],[2,888,-76,[[[0,-232,-133],[0,-140,-205],[0,-25,-242],[0,117,-222],[0,209,-156],[0,282,34],[0,268,184],[0,162,280],[0,4,335],[0,-159,287],[0,-264,177],[0,-277,49]],8,8,8,8,8,8,8,8,8,8,8,8]]],[1,-73],[5,524,412.5],[0,0,0,0,0,0,1,0.5,0.5,0.225]],[10,"xiaojinyu",false,1,3,[-82],[[2,2,-79,[[[0,-71.9,-149.9],[0,-110.6,-187.4],[0,-125.8,-205.3],[0,-136.3,-225.9],[0,-144.8,-258.1],[0,-140.3,-310.5],[0,-136.7,-319],[0,-131.1,-319.3],[0,-125.1,-309.8],[0,-129.3,-301],[0,-122.5,-297.9],[0,-121.6,-306.2],[0,-112,-306],[0,-105.8,-297.2],[0,-107.9,-284],[0,-121.5,-270.9],[0,-118.6,-260.6],[0,-115.9,-251],[0,-106.3,-239.6],[0,-103.3,-239.4],[0,-107.1,-272.8],[0,-92.5,-268.6],[0,-81.8,-296.7],[0,-67.8,-316.7],[0,-66.1,-311.4],[0,-60.1,-312.9],[0,-41.4,-325.6],[0,-28.5,-344.8],[0,-19.6,-356.9],[0,-21.6,-376.8],[0,-34,-391.7],[0,-51.5,-406.1],[0,-50.2,-407.4],[0,-36.4,-407.3],[0,-3.3,-410.8],[0,19.8,-403.7],[0,26.1,-391.7],[0,23.9,-362.7],[0,26.9,-354.6],[0,31.1,-353.6],[0,32.3,-360.2],[0,37.8,-364.7],[0,50.1,-363.7],[0,57.3,-351.9],[0,63.8,-347.4],[0,71.4,-347.6],[0,88.8,-368],[0,106.1,-367.1],[0,150.5,-345.9],[0,141.5,-335.7],[0,115.5,-329.3],[0,107.5,-322.8],[0,110.2,-312.3],[0,115.4,-294.1],[0,112.3,-285.7],[0,82.9,-277.7],[0,69.7,-263.1],[0,63.4,-249.2],[0,64.3,-227.1],[0,70.9,-203],[0,74.3,-208.6],[0,76.5,-220.9],[0,82,-228.1],[0,86.2,-229.7],[0,88.8,-234],[0,95.8,-225.5],[0,90.3,-215.5],[0,91.2,-211.8],[0,97.2,-211.6],[0,100.2,-214.6],[0,103.3,-219.4],[0,102,-225.8],[0,100.1,-234],[0,97.4,-240.3],[0,100.3,-243.7],[0,106.4,-250.1],[0,114.9,-252.6],[0,119.4,-256.2],[0,121.5,-262.4],[0,124.1,-264.1],[0,124.5,-260],[0,134.3,-238.6],[0,138.9,-216.7],[0,138.7,-201.6],[0,134.2,-186],[0,120.5,-171.6],[0,96.5,-155.2],[0,70.7,-139.6],[0,47.7,-117.4],[0,42.5,-104.6],[0,42.7,-85.7],[0,49.4,-75.3],[0,53.1,-91.8],[0,61,-106.3],[0,67.2,-114.1],[0,70.3,-115.1],[0,63.26,-104.28],[0,63.68,-102.18],[0,64.72,-103.23],[0,70.03,-109.37],[0,75.5,-113.9],[0,84.4,-119.6],[0,88.2,-122.7],[0,93.4,-127.4],[0,100.2,-112],[0,103.8,-97.5],[0,102.8,-77.6],[0,97.4,-65.2],[0,67.7,-25.8],[0,66.8,-21.5],[0,65.4,-0.1],[0,67.8,2.2],[0,76.4,7.4],[0,82.7,21.1],[0,84,42.1],[0,72.7,63.4],[0,60.3,71.4],[0,49.2,74.6],[0,38.3,88.3],[0,21.1,100.6],[0,16.3,108.6],[0,8.5,111.3],[0,-1.7,113.3],[0,-8.3,110.7],[0,-18.8,107.5],[0,-23.7,99.5],[0,-40.4,88.7],[0,-52.3,74.2],[0,-59.5,72],[0,-73.5,64.8],[0,-85.4,46.5],[0,-87.6,31.4],[0,-80.9,10.9],[0,-69,-0.4],[0,-69.1,-30],[0,-86.9,-53.5],[0,-103.1,-76.5],[0,-105.3,-95.1],[0,-104.2,-105.4],[0,-96.7,-131.5],[0,-79.8,-119.2],[0,-65.7,-105.5],[0,-66.1,-109.2],[0,-72.8,-116.8],[0,-71.3,-118.7],[0,-68.1,-116.7],[0,-53.7,-93.7],[0,-50.3,-75.1],[0,-48.7,-78.2],[0,-54.5,-108],[0,-52.9,-125.9]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[12,-80],[2,888,-81,[[[0,-159,-91],[0,-156,-297],[0,-94,-413],[0,41.8,-422.2],[0,154.2,-368.8],[0,168.5,-269.9],[0,168.3,-89],[0,147,93],[0,93,176],[0,7,198],[0,-87,175],[0,-152,104]],8,8,8,8,8,8,8,8,8,8,8,8]]],[1,-78],[5,306,557],[0,0,0,0,0,0,1,0.75,0.75,1]],[10,"jinli",false,1,3,[-87],[[2,2,-84,[[[0,88.1,47.2],[0,78.7,113.9],[0,68.3,158.5],[0,59.1,196.9],[0,44.6,218.3],[0,26.4,241.9],[0,18,245.8],[0,11.1,249],[0,-0.2,251],[0,-12.1,247.7],[0,-14.8,243.8],[0,-31.1,229.9],[0,-50.3,206.3],[0,-66.8,168.9],[0,-78.3,111.5],[0,-88.9,50.2],[0,-88.4,-43.5],[0,-69.7,-119.6],[0,-35.5,-208.7],[0,-43.2,-258.3],[0,-54.6,-306.3],[0,-38.9,-286.9],[0,-52.1,-358.3],[0,-46.8,-425.7],[0,-7.6,-516.7],[0,-2.8,-470],[0,18.6,-432],[0,32.5,-398],[0,58.2,-418.7],[0,97.6,-448.2],[0,109.9,-479.3],[0,113.2,-493.3],[0,125.8,-439.4],[0,121.5,-393.7],[0,102.2,-339.3],[0,50.1,-252.5],[0,38.7,-208.2],[0,69.4,-125.5],[0,90.4,-40.1]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[12,-85],[2,888,-86,[[[0,-120,-396],[0,-47,-556],[0,16,-555],[0,60,-494],[0,108,-550],[0,193,-528],[0,208,-404],[0,118,-228],[0,178,-125],[0,178,170],[0,150,257],[0,97,342],[0,29,362],[0,-58,343],[0,-123,281],[0,-169,180],[0,-191,-6],[0,-140,-217]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]]],[1,-83],[5,532,773],[0,0,0,0,0,0,1,0.9,0.9,1]],[10,"dianman",false,1,3,[-92],[[2,2,-89,[[[0,-37.8,-215.4],[0,-28.8,-295.8],[0,-30.5,-340.3],[0,-35.4,-412.1],[0,-27.1,-434.6],[0,-16.6,-459.9],[0,2.4,-494.5],[0,30.2,-521.2],[0,47.8,-542.3],[0,51.4,-538.8],[0,41.3,-512],[0,32.8,-484.4],[0,50.5,-495.1],[0,71.9,-506.5],[0,59.9,-485.5],[0,52.9,-467.2],[0,47.8,-408.7],[0,51.4,-370],[0,36.2,-291.9],[0,35.4,-250.9],[0,50,-168.1],[0,53.5,-134.4],[0,58.6,34.1],[0,65.9,11.6],[0,75.9,-1],[0,84,-0.1],[0,90,6.7],[0,97.3,24.3],[0,98.3,43.6],[0,94,58.9],[0,84.6,69.9],[0,67,73.2],[0,57.3,77.9],[0,54.6,114.8],[0,50.6,149.8],[0,77.1,107.5],[0,100.2,75.2],[0,124.2,50.4],[0,128.76,51.5],[0,130.5,54.99],[0,128.4,60.9],[0,107.2,89.1],[0,94.4,114.6],[0,91.8,134.4],[0,93.3,141],[0,96.5,141.9],[0,102.3,139],[0,123.7,122.1],[0,156.5,101.2],[0,158.8,104.4],[0,156.8,110.9],[0,113.4,145.7],[0,93.3,167.8],[0,94.8,171.6],[0,120.7,166.5],[0,144.9,163.2],[0,147.6,166.5],[0,147.2,170.2],[0,121.9,177.6],[0,103.8,186],[0,97,189.3],[0,97.8,192.2],[0,104,195.2],[0,111.3,199.2],[0,115.3,203.9],[0,114.4,207],[0,89.3,202.3],[0,69.7,201.5],[0,65.8,204.3],[0,42.8,204.49],[0,42.44,215.39],[0,36.38,229.92],[0,25.4,238],[0,23.6,242.6],[0,44.5,231.6],[0,49.5,232.1],[0,48,237.2],[0,28.4,251],[0,29.3,256.9],[0,12.9,258.6],[0,8.8,262.7],[0,-6.3,262.3],[0,-15.2,257.8],[0,-25.8,257.7],[0,-28.3,253.9],[0,-24.8,250.4],[0,-41.2,240.1],[0,-47.9,234.6],[0,-46.1,230.6],[0,-26.8,240.3],[0,-29.5,235.7],[0,-40,222.7],[0,-44,213.7],[0,-44.1,202.3],[0,-69.7,202.6],[0,-70.4,197.8],[0,-100.2,201.7],[0,-119.8,203.9],[0,-100.4,185.9],[0,-120.8,175],[0,-149,167.4],[0,-147,158.7],[0,-92.5,166.7],[0,-94.7,159.5],[0,-154.7,108],[0,-160.4,102.3],[0,-152.8,100.2],[0,-100.7,136.7],[0,-92.7,136.3],[0,-95.6,114.2],[0,-103.9,92.4],[0,-132,52],[0,-127.2,48.3],[0,-113.9,54.7],[0,-52.9,143.4],[0,-58.3,76.2],[0,-85.2,64.8],[0,-89,47.3],[0,-86.6,21.3],[0,-75.9,3.3],[0,-67.7,0.7],[0,-54.4,19.6],[0,-50.5,-126.8]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[12,-90],[2,888,-91,[[[0,-133,-147],[0,-106,-367],[0,-50,-585],[0,106,-548],[0,148,-140],[0,148,82],[0,118,245],[0,54,319],[0,-23,321],[0,-97,285],[0,-169,179],[0,-162,23]],8,8,8,8,8,8,8,8,8,8,8,8]]],[1,-88],[5,323,836],[0,0,0,0,0,0,1,1.1,1.1,1]],[10,"shayu",false,1,3,[-97],[[2,2,-94,[[[0,-93.2,-80.8],[0,-69.6,-205],[0,-48.5,-321.3],[0,-75.6,-354.1],[0,-94.1,-395.6],[0,-96.7,-417.2],[0,-90.2,-421.6],[0,-81.9,-417.9],[0,-64.1,-403.7],[0,-40,-397.6],[0,-34.1,-401.4],[0,-27.1,-445.9],[0,-28.6,-480.1],[0,-23.5,-544.6],[0,-9.8,-603.9],[0,0.4,-608.1],[0,13.2,-550.9],[0,19.1,-454.5],[0,27.2,-402.1],[0,37.3,-396.6],[0,53.9,-400.7],[0,72.9,-416.2],[0,89.4,-423],[0,90.8,-404.9],[0,70.8,-355.6],[0,42.4,-316.4],[0,83.3,-112.9],[0,89.5,-77],[0,132.7,-81],[0,168.3,-90.5],[0,201.4,-101.5],[0,229.9,-115.3],[0,243.9,-115.4],[0,237.4,-91.9],[0,201.8,-40.7],[0,148.2,11.9],[0,102.9,41.7],[0,103.2,94.9],[0,96.3,132.4],[0,82.7,164.3],[0,64.9,198.9],[0,39.3,237.4],[0,18.5,263.3],[0,4.4,274.1],[0,-3.7,275.8],[0,-20.3,262.4],[0,-46.5,229.8],[0,-64.3,201.4],[0,-88.9,155.5],[0,-99.7,127.6],[0,-106.5,86.8],[0,-104.4,42.6],[0,-159.2,7.5],[0,-215.1,-52.4],[0,-245.7,-103.9],[0,-246.2,-115.8],[0,-235.8,-117.3],[0,-197.8,-98.5],[0,-157.3,-85.6],[0,-108,-78.2],[0,-95.3,-76.9]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[12,-95],[2,888,-96,[[[0,-146,-456],[0,-78,-544],[0,0,-598],[0,105,-551],[0,155,-424],[0,198,-140],[0,266,-153],[0,309,-87],[0,201,118],[0,96,300],[0,-1,331],[0,-116,268],[0,-184,104],[0,-277,-90],[0,-262,-162],[0,-202,-120]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]]],[1,-93],[5,493,881],[0,0,0,0,0,0,1,1.2,1.2,1]],[10,"jingyu",false,1,3,[-102],[[2,2,-99,[[[0,-100.3,-199.3],[0,-67.5,-346.6],[0,-37.4,-484.2],[0,-32.3,-549.9],[0,-97.9,-608.6],[0,-141.4,-706.4],[0,-174.1,-794.5],[0,-120.5,-783.2],[0,-56.3,-747.7],[0,-15.4,-718.3],[0,9.2,-642.6],[0,47,-729],[0,136.7,-784],[0,196.7,-797.4],[0,150.4,-675.9],[0,112.2,-600.8],[0,47.5,-548.8],[0,54.5,-455.8],[0,74.2,-361.5],[0,120.2,-109.4],[0,147.1,-173.9],[0,153.1,-258.8],[0,173,-260.1],[0,186.7,-191.6],[0,173.2,-62.2],[0,129.6,18.2],[0,113,106],[0,90.3,157.1],[0,62.7,212.9],[0,39.1,254.3],[0,7.7,280.1],[0,-19.9,277.2],[0,-46.7,250.4],[0,-68.3,219.7],[0,-74.5,208.5],[0,-85.3,182.6],[0,-95.7,158],[0,-112,122.7],[0,-119.8,78.9],[0,-121.9,58.1],[0,-128.4,32.3],[0,-139.8,0.4],[0,-179.8,-64.7],[0,-192.9,-136.5],[0,-190.5,-217.3],[0,-181.4,-257.4],[0,-165,-269.5],[0,-155.7,-256.5],[0,-154.3,-205.2],[0,-148,-173.5],[0,-117.8,-91.7]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[12,-100],[2,888,-101,[[[0,-218,-195],[0,-198,-269],[0,-161,-295],[0,-140,-272],[0,-126,-175],[0,-116,-256],[0,-76,-405],[0,-62,-531],[0,-122,-595],[0,-199,-770],[0,-192,-813],[0,-126,-822],[0,-18,-758],[0,9,-695],[0,37,-754],[0,133,-824],[0,197,-830],[0,233,-786],[0,172,-661],[0,115,-580],[0,62,-532],[0,81,-429],[0,114,-251],[0,123,-135.2],[0,137.8,-187.5],[0,145.1,-259.3],[0,158.2,-275.2],[0,191.2,-258.2],[0,201,-165],[0,189,-72],[0,149,34],[0,142,114],[0,123,208],[0,45,292],[0,0,315],[0,-59,291],[0,-113,239],[0,-139,151],[0,-159,34],[0,-208,-82]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]]],[1,-98],[5,411,1093],[0,0,0,0,0,0,1,1.3,1.3,1]],[10,"jiao",false,1,3,[-107],[[2,2,-104,[[[0,-13,-95],[0,-4,-152],[0,-45,-258],[0,-87,-350],[0,-93,-450],[0,-57,-546],[0,-13,-624],[0,5,-675],[0,37,-742],[0,47,-725],[0,57,-734],[0,72,-756],[0,109,-887],[0,128,-889],[0,116,-833],[0,124,-826],[0,137,-828],[0,161,-841],[0,198,-867],[0,231,-915],[0,239,-907],[0,209,-863],[0,185,-795],[0,192,-775],[0,209,-771],[0,243,-797],[0,257,-792],[0,146,-693],[0,130,-664],[0,145,-666],[0,144,-650],[0,47,-556],[0,8,-487],[0,4,-405],[0,35,-328],[0,82,-275],[0,109,-195],[0,120,-114],[0,115,-57.4],[0,84,43.4],[0,136.4,-25.7],[0,171.2,-50.4],[0,146.4,-19.2],[0,142.3,4.6],[0,161.5,13.1],[0,210.4,-4.7],[0,213.2,1.9],[0,179.9,18.2],[0,146.9,45.8],[0,136.5,61.8],[0,147.6,69.5],[0,181.7,67.1],[0,178.2,70.8],[0,118.7,90.2],[0,48.2,127.2],[0,28.6,204.5],[0,27.9,288.8],[0,53.1,388.4],[0,90.8,328.2],[0,93.3,336],[0,82.7,358.2],[0,85.6,372.2],[0,106.1,378],[0,145.6,331.7],[0,118.1,391.4],[0,109.2,422.6],[0,124.9,437.2],[0,145.5,431.5],[0,143.8,442.8],[0,84.6,485.3],[0,49,549.5],[0,10.1,585.6],[0,-13.6,584.8],[0,-47.4,552.5],[0,-78.4,501.3],[0,-87,478.8],[0,-118,454.2],[0,-152.3,438.3],[0,-148.2,430.3],[0,-127.3,434.3],[0,-114.7,426.8],[0,-117.2,399.7],[0,-139.4,342.5],[0,-131.1,334.2],[0,-107.4,380.3],[0,-95.1,376.9],[0,-90.8,366.5],[0,-101.9,320.1],[0,-113.6,217.3],[0,-99.3,134.1],[0,-80.8,84.3],[0,-141.7,-36.4],[0,-114.4,-14.4],[0,-102.9,-18.2],[0,-106.4,-66.7],[0,-121.9,-111.1],[0,-113.2,-106.2],[0,-92.9,-65.6],[0,-78.8,-59],[0,-64.9,-64.6],[0,-57.2,-88.2],[0,-58.8,-116.7],[0,-52.5,-107],[0,-48,-49.1],[0,-56.6,23.4]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[12,-105],[2,888,-106,[[[0,-102,-47],[0,-73,-207],[0,-132,-374],[0,-101,-537],[0,-20,-698],[0,108,-893],[0,241,-916],[0,282,-819],[0,180,-656],[0,67,-531],[0,37,-399],[0,126,-276],[0,160,-113],[0,146,41],[0,80,211],[0,103,304],[0,140,349],[0,152,462],[0,99,548],[0,32,610],[0,-40,598],[0,-40,598],[0,-106,558],[0,-161,469],[0,-163,349],[0,-143,197]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]]],[1,-103],[5,338,1786],[0,0,0,0,0,0,1,1.2,1.3,1]],[53,"blackLayer",false,0,2,1,[[76,0,-108,28],[41,-110,[[85,"10c1aPfzmNB9qwshKRmLq1A","clickEnterOverLayer",-109]],[4,4292269782]],[100,-111]],[4,4280880678],[5,720,1580]],[10,"long",false,1,3,[-115],[[37,2,-113,[0,-0.9,-0.4],[[[0,-106.8,-65.8],[0,-104.3,-87],[0,-95.1,-114.5],[0,-81.6,-148.3],[0,-12.2,-247.8],[0,3.5,-278.6],[0,-1.2,-286.5],[0,-3.6,-299.9],[0,-7.4,-316.6],[0,-10.7,-324.6],[0,-2.6,-348.4],[0,-2.8,-374],[0,-7,-383.9],[0,-9.1,-400.3],[0,-8.4,-410.2],[0,-2.4,-419.5],[0,8,-420.4],[0,16,-417.4],[0,19.3,-409.6],[0,20.5,-409.5],[0,25.6,-413.5],[0,31.4,-413.9],[0,42.3,-409],[0,44.8,-405.4],[0,50.9,-401.9],[0,52.1,-385.5],[0,36.9,-372.2],[0,33.83,-373.45],[0,33.69,-377.63],[0,32.01,-377.53],[0,29.54,-373.68],[0,30.29,-372.18],[0,34.84,-361.53],[0,33.81,-351.82],[0,27.78,-345.4],[0,21.53,-343.33],[0,21.46,-340.56],[0,24.6,-339.7],[0,35.4,-338.1],[0,52.6,-383.6],[0,51.2,-413.9],[0,33.6,-457.3],[0,-5.6,-524.2],[0,-30.8,-553.5],[0,-73.8,-640.6],[0,-93.7,-765.2],[0,-99.7,-777.9],[0,-103.8,-808.8],[0,-100.5,-815.4],[0,-99.5,-820.6],[0,-92,-830.9],[0,-91.8,-861.6],[0,-88.5,-890.2],[0,-84.5,-893.7],[0,-80.7,-883.3],[0,-78.3,-882.2],[0,-78,-889.5],[0,-74.1,-905.8],[0,-70,-921.2],[0,-58.1,-946.8],[0,-46.7,-969],[0,-41.6,-987.5],[0,-44.6,-990.5],[0,-44.8,-995],[0,-41.5,-996.8],[0,-28.3,-992.3],[0,-25.9,-1002.4],[0,-15.3,-1022.7],[0,-4.5,-1041.2],[0,14.4,-1063.2],[0,31.3,-1076.8],[0,64.4,-1100.6],[0,57.9,-1087],[0,58.4,-1076.7],[0,79.8,-1093],[0,97.4,-1095.4],[0,123.1,-1093.3],[0,143,-1092.8],[0,158.5,-1094.8],[0,162.8,-1099],[0,165.2,-1096.7],[0,150,-1079.5],[0,129.4,-1066.1],[0,114.4,-1050.8],[0,105.12,-1037.55],[0,124.3,-1045.8],[0,131.8,-1044.1],[0,116.5,-1034],[0,112.8,-1024],[0,110.9,-990.5],[0,99.2,-957.6],[0,81.7,-928.9],[0,93.5,-918.6],[0,81.3,-915.1],[0,74.3,-908.8],[0,59.4,-880.7],[0,43.8,-856],[0,31.6,-842.4],[0,44.8,-844.5],[0,21.2,-802],[0,24.9,-795.9],[0,17.6,-792.8],[0,-2.8,-760.9],[0,-1.8,-704.3],[0,12.6,-668.3],[0,46.2,-601.6],[0,87.4,-559.2],[0,138.8,-488.6],[0,149.4,-429.6],[0,158.2,-376.2],[0,150,-331.1],[0,137.4,-287.1],[0,143.3,-283.3],[0,149.2,-283.9],[0,146,-295.2],[0,154.5,-305.4],[0,169.4,-306.8],[0,169.6,-312.5],[0,161.3,-313.1],[0,160.4,-324.7],[0,165.4,-337.3],[0,173.4,-344.3],[0,186.4,-339],[0,200,-334.2],[0,202.3,-321.6],[0,213.3,-323.4],[0,223.5,-308.8],[0,215,-294.3],[0,186.4,-280.4],[0,163.9,-263.8],[0,155.9,-247.2],[0,142,-242],[0,112.3,-229.5],[0,86.4,-182.7],[0,48.7,-135.2],[0,7.8,-77.8],[0,3.1,-55.9],[0,-1.1,-18.2],[0,-0.2,5.6],[0,4.7,21.7],[0,8.7,19],[0,21.9,25.8],[0,36.5,38],[0,47.3,36],[0,54.8,43.6],[0,61.2,51.4],[0,68.7,42],[0,72.1,43],[0,72.6,52.5],[0,76.42,59.09],[0,76.54,66.37],[0,74.99,73.8],[0,77.3,81.2],[0,88.7,88],[0,100.5,94.4],[0,106.4,100.8],[0,106.5,104],[0,115.9,118.2],[0,112.04,119.96],[0,106.6,119.1],[0,100.35,116.99],[0,97.37,118.21],[0,93.59,116.09],[0,91.66,116.47],[0,94.27,125.71],[0,94.58,130.48],[0,92,133.96],[0,95.25,149.01],[0,93.32,150.36],[0,89.29,148.03],[0,84.92,144.96],[0,80.17,139.18],[0,78.43,136.41],[0,76.28,134.72],[0,75.09,133.21],[0,73.74,131.24],[0,72.29,127.89],[0,71.04,127.72],[0,68.72,134.82],[0,65,139.02],[0,63.2,139.98],[0,60.43,153.67],[0,57.89,153.55],[0,55.15,149.97],[0,51.23,143.13],[0,49.6,138.13],[0,46.8,132.6],[0,46.2,126.9],[0,51,114.2],[0,55.1,106.8],[0,58.3,97.3],[0,57.3,89.1],[0,55,82.7],[0,49.7,77.8],[0,46.4,77.7],[0,44.1,84.4],[0,35,94.2],[0,63,201.9],[0,73.1,258.5],[0,73.2,268.4],[0,83.6,253.9],[0,84.9,276.9],[0,86.5,284],[0,97.1,268.2],[0,92.7,299],[0,106.1,292.2],[0,104.8,302.4],[0,115.2,296.6],[0,108.5,316.4],[0,97.1,370.9],[0,97,380.8],[0,71.4,405.7],[0,54,412.4],[0,45.2,418.4],[0,43.1,426.1],[0,43.6,451.9],[0,41.4,457.6],[0,38.9,466.5],[0,27.1,481.4],[0,12.3,478.5],[0,2.4,479.2],[0,-7.1,476.7],[0,-16.1,466.1],[0,-20.5,458.7],[0,-20,437.4],[0,-22.3,420.4],[0,-50.7,407.4],[0,-65.9,395.1],[0,-84.5,375.8],[0,-74.6,375.9],[0,-83.6,351.9],[0,-90,323.7],[0,-91,309.4],[0,-88.2,301.9],[0,-77,305.3],[0,-80.8,275.1],[0,-68.4,292.7],[0,-68.5,261.5],[0,-59.1,269.3],[0,-52.5,261.3],[0,-51.9,232.7],[0,-48,212],[0,-67.7,159.9],[0,-75.7,142.4],[0,-96.9,137.6],[0,-105.2,139.4],[0,-100.5,154.8],[0,-72.2,175.2],[0,-62.5,195.3],[0,-64.8,205.7],[0,-74.3,195.1],[0,-82.3,195.4],[0,-87.6,191.5],[0,-90.4,219.9],[0,-94,224.5],[0,-102,209.4],[0,-109.8,205],[0,-112.4,195.7],[0,-125.4,212.2],[0,-130.8,208.8],[0,-132.4,194.5],[0,-133,183.8],[0,-127.4,170.9],[0,-124.5,156.2],[0,-125.5,152],[0,-128.8,148],[0,-136.9,142.7],[0,-137.2,127.4],[0,-130.3,122.9],[0,-129.1,102.1],[0,-119,97.5],[0,-115.9,77.8],[0,-107.1,67.3],[0,-121.3,5.3]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[12,-114]],[1,-112],[5,316,2008],[0,0,0,0,0,0,1,0.7,0.7,1]],[26,"stone1",2,2,[-117,-118],[[6,-116,[68],69]],[0,"59GPpqNYRMVIya+LowaWug",2],[5,327,328],[3.363,10.819,0,0,0,0,1,1,1,1]],[54,"rocker",0,2,1,[-122],[[18,0,-119,[84],85],[101,-121,-120]],[5,200,200]],[102,"New Node",false,[-123,1],[0,0,0],[0,0,0,0,0,0,1,1,1,1]],[55,"bgLayer",1,1,[[98,false,3,-124,[5,720,1280]],[79,false,45,720,1280,-125]],[4,4278190080],[5,720,1280]],[56,"carmeraNode",1,[-126]],[57,"liziNode",1,[1,-127]],[26,"stone2",2,2,[-129],[[6,-128,[72],73]],[0,"b73vveYphK1peogFvtYp+q",2],[5,250,250],[1.787,7.287,0,0,0,0,1,1,1,1]],[26,"stone3",2,2,[-131],[[6,-130,[76],77]],[0,"e0mSQR9KJMJ47I3Oq7UeZo",2],[5,89,92],[2.068,18.664,0,0,0,0,1,1,1,1]],[33,"button",2,17,[[18,0,-132,[82],83]],[5,30,30]],[58,"Wu",0,2,1,[[18,0,-133,[86],87],[103,-134,[89],88]],[5,720,1280]],[34,"light1",0,2,1,[[6,-135,[90],91],[80,9,-103.14300000000003,-8.698999999999955,-136]],[5,301,699],[0,0.5,1],[-342.74300000000005,648.699,0,0,0,0.25881904510252074,0.9659258262890683,0.8,0.8,1],[1,0,0,30]],[34,"light2",0,2,1,[[6,-137,[92],93],[81,36,-132.44700000000003,271.31999999999994,-138]],[5,301,699],[0,0.5,1],[372.047,190.51999999999998,0,0,0,-0.49999999999999994,0.8660254037844387,-0.8,0.8,1],[1,0,0,-60]],[59,"resArr","f9YPNmYjJIe6aJoUSefaZe",18,[[104,-139,[[0,1,null,null,null,null,null,null,null,null,null,null,null,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,null,24,null,null,null,25,null,null,null,null,null,null,null,null,null],6,6,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,6,0,0,0,6,0,0,0,0,0,0,0,0,0]]],[360,640,0,0,0,0,1,1,1,1]],[29,"Main Camera",1,[[42,9,-1,400,-140]],[0,0,587.68487,0,0,0,1,1,1,1]],[29,"UICamrea",1,[[42,4,1,400,-141]],[0,0,587.68487,0,0,0,1,1,1,1]],[35,"gameOverTex",2,1,[-142],[5,338.34,100.8],[10000000,765,0,0,0,0,1,1,1,1]],[30,"游 戏 结 束",70,80,1,1,31,[26]],[35,"gameOverTex2",2,1,[-143],[5,240,56.7],[10000000,865,0,0,0,0,1,1,1,1]],[90,"稍后查看成绩",45,1,1,33,[27]],[69,"gameScore",false,1,[-144],[5,47.27,75.6],[12,594.9,0,0,0,0,1,1,1,1]],[91,"0",85,60,-12,1,1,35,[29]],[36,"start",4,[-145],[5,153.34,81.9],[0,-381,0,0,0,0,1,1,1,1]],[30," 开 始",60,65,1,1,37,[30]],[36,"showInfoT",4,[-146],[5,600,63],[0,222,0,0,0,0,1,1,1,1]],[92,"开始进行游戏介绍",42,50,3,39,[31]],[29,"MoveCamera",20,[[105,2,7,0.1,-147]],[0,0,554.2562584220408,0,0,0,1,1,1,1]],[28,"enemyNode",1],[5,"kedou",1,5,[[24,"Armature","kedou",0,"79138164-4c1f-437c-9cdb-77c6868121b0#7dc1db8c-0927-47e0-9a1a-a47dc638dafb",-148,[34],35,36]],[0,"79mp4N0fhMFY4E/WxY/mzG",5],[5,65,153.82]],[5,"qingwa",1,6,[[3,"Armature","newAnimation",0,"5d197404-68b4-4b7b-a6d0-43e7b4dc4c1c#5ee29015-a6ac-46cf-9265-5a44a2892075",0.7,-149,[37],38,39]],[0,"c7kg9LQX9F5ZlrCTJJVCcV",6],[5,310.54,426.31]],[5,"haiguii",1,7,[[3,"Armature","newAnimation",0,"cd16065a-0265-43df-bcf1-88df8b37f96d#d5f06198-e739-42dd-a521-4a6189c87e2b",0.6,-150,[40],41,42]],[0,"f8pab67/RPC78dmZsQ5uzv",7],[5,524,412.5]],[5,"xiaojinyu",1,8,[[3,"Armature","newAnimation",0,"74749110-f9a9-4a67-a820-6bce33fdb37d#dc299c0e-069c-4ea1-b593-9f962d524d2b",0.6,-151,[43],44,45]],[0,"d6k7WoF/ZFdYatVufET7mC",8],[5,306,569.69]],[5,"jinli",1,9,[[3,"Armature","newAnimation",0,"54081c72-bc78-42fd-acf3-427bff5d2cb3#3c921882-5db7-4c18-b4f7-e6fe39394a42",0.6,-152,[46],47,48]],[0,"d6k7WoF/ZFdYatVufET7mC",9],[5,543.51,871.77]],[5,"dianman",1,10,[[3,"Armature","newAnimation",0,"05b00490-a337-41ac-a71a-8c62fd1af0f8#732b0ce1-08bb-4236-bd70-27a50d843ee2",0.5,-153,[49],50,51]],[0,"5537VjZFhA0o7JVSYTHzos",10],[5,323.16,826]],[5,"shayu",1,11,[[3,"Armature","newAnimation",0,"ac7595ee-1cbd-4243-953f-6156fd682320#a3d22edc-f6d2-4da1-8754-c16518ac4600",0.5,-154,[52],53,54]],[0,"709Y5VckFMeq1JNpamEkhv",11],[5,493,881]],[5,"jingyu",1,12,[[3,"Armature","newAnimation",0,"d0125139-093e-43d2-ae7c-195fdf94d716#2bf2d90c-6bfc-474e-9480-3f8f87d8ccb7",0.3,-155,[55],56,57]],[0,"22kY4OFDNG8oLzc8B6F80Z",12],[5,411.04,1093]],[5,"jiao",1,13,[[3,"Armature","newAnimation",0,"e57ffa14-9d48-47c3-9ba4-05b2e89b5f70#a1237208-e8b7-4f3c-b327-c792cb0c03e6",0.4,-156,[58],59,60]],[0,"f6ia8poFdO5oo0drFbjJob",13],[5,337.77,1786.5]],[5,"long",1,15,[[3,"Armature","newAnimation",0,"5a4fb9bb-62a2-4ab0-a5a2-cb4dda360911#6112fa6b-0739-44c4-a21f-a98c18783a1c",0.3,-157,[61],62,63]],[0,"9dy9tAdVBLU4s2VcQWlNtH",15],[5,315.95,2008.74]],[28,"leafNode",1],[21,"light1",false,2,16,[[6,-158,[64],65]],[0,"029olP24NJf5QPCkDwyYU1",2],[5,299,297],[-2.243,1.288,0,0,0,0,1,1,1,1]],[21,"light2",false,2,16,[[6,-159,[66],67]],[0,"aalq4kA49Dn7PjiJSXgROp",2],[5,333,334],[1.236,0.105,0,0,0,0,1,1,1,1]],[21,"light3",false,2,22,[[6,-160,[70],71]],[0,"36s3Ge7CpBnKRBC+mw88bX",2],[5,276,276],[1.334,-0.427,0,0,0,0,1,1,1,1]],[21,"light4",false,2,23,[[6,-161,[74],75]],[0,"43qsCNisVIPbL6QQ+/ifh8",2],[5,68,64],[3.16,2.973,0,0,0,0,1,1,1,1]],[21,"light0",false,2,2,[[6,-162,[78],79]],[0,"e5dP4KZTdD3KFwaD7fqikp",2],[5,426,428],[6.091,10.658,0,0,0,0,1,1,1,1]],[60,"winLabel",0,1,[-163],[0,-421.346,0,0,0,0,1,1,1,1]],[33,"winLabel",2,59,[[30,"击败了100%的玩家!",35,50,1,1,-164,[94]]],[5,309.24,63]],[61,"nameLabel",1,[-165],[1817.592,0,0,0,0,0,1,1,1,1]],[70,"nameLabel",2,61,[-166],[5,80,50.4]],[93,"蝌蚪",1,1,62,[95]]],0,[0,0,1,0,25,2,0,26,21,0,27,20,0,28,53,0,29,3,0,30,42,0,31,14,0,32,63,0,33,34,0,34,32,0,35,36,0,36,4,0,0,1,0,0,1,0,-1,29,0,-2,30,0,-3,19,0,-4,31,0,-5,33,0,-6,14,0,-7,35,0,-8,4,0,-9,20,0,-10,21,0,-11,42,0,-12,3,0,-13,53,0,-14,2,0,-15,17,0,-16,25,0,-17,26,0,-18,27,0,8,1,0,-20,59,0,-21,61,0,2,2,0,0,2,0,-1,16,0,-2,22,0,-3,23,0,-4,58,0,-1,5,0,-2,6,0,-3,7,0,-4,8,0,-5,9,0,-6,10,0,-7,11,0,-8,12,0,-9,13,0,-10,15,0,8,3,0,0,4,0,0,4,0,0,4,0,37,38,0,38,40,0,0,4,0,0,4,0,-1,37,0,-2,39,0,2,5,0,0,5,0,0,5,0,0,5,0,-1,43,0,2,6,0,0,6,0,0,6,0,0,6,0,-1,44,0,2,7,0,0,7,0,0,7,0,0,7,0,-1,45,0,2,8,0,0,8,0,0,8,0,0,8,0,-1,46,0,2,9,0,0,9,0,0,9,0,0,9,0,-1,47,0,2,10,0,0,10,0,0,10,0,0,10,0,-1,48,0,2,11,0,0,11,0,0,11,0,0,11,0,-1,49,0,2,12,0,0,12,0,0,12,0,0,12,0,-1,50,0,2,13,0,0,13,0,0,13,0,0,13,0,-1,51,0,0,14,0,39,14,0,0,14,0,0,14,0,2,15,0,0,15,0,0,15,0,-1,52,0,0,16,0,-1,54,0,-2,55,0,0,17,0,40,24,0,0,17,0,-1,24,0,-1,28,0,0,19,0,0,19,0,-1,41,0,2,21,0,0,22,0,-1,56,0,0,23,0,-1,57,0,0,24,0,0,25,0,0,25,0,0,26,0,0,26,0,0,27,0,0,27,0,0,28,0,0,29,0,0,30,0,-1,32,0,-1,34,0,-1,36,0,-1,38,0,-1,40,0,0,41,0,0,43,0,0,44,0,0,45,0,0,46,0,0,47,0,0,48,0,0,49,0,0,50,0,0,51,0,0,52,0,0,54,0,0,55,0,0,56,0,0,57,0,0,58,0,-1,60,0,0,60,0,-1,62,0,-1,63,0,41,18,1,8,18,166],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-1,-2,-14,-15,-16,-17,-18,-19,-20,-21,-22,-23,-24,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-37,-41,-1,-1,6,-1,-1,-1,-1,6,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,3,4,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,42,-1,-1,6,-1,6,-1,-1,43,44,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59],[66,67,32,68,69,26,70,71,72,73,74,75,76,25,77,78,79,80,81,82,83,84,85,35,86,87,0,0,88,0,0,0,0,89,0,6,7,0,8,9,0,28,22,0,3,4,0,10,11,0,20,21,0,12,13,0,14,15,0,16,17,0,18,19,0,90,0,91,0,92,0,93,0,94,0,95,0,96,0,97,0,98,0,99,0,100,0,24,36,36,0,37,0,37,0,0,101,102,103,104,105,106,107,108,109,110,111,38,112,113,114,115,116,117,118,119,120,38,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135]],[[{"name":"an","rect":[3,3,321,321],"offset":[0,0],"originalSize":[321,321],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[23]],[[[4,"jinli"],[7,"jinli",1,[-4],[[2,777,-2,[[[0,88.1,47.2],[0,78.7,113.9],[0,68.3,158.5],[0,59.1,196.9],[0,44.6,218.3],[0,26.4,241.9],[0,18,245.8],[0,11.1,249],[0,-0.2,251],[0,-12.1,247.7],[0,-14.8,243.8],[0,-31.1,229.9],[0,-50.3,206.3],[0,-66.8,168.9],[0,-78.3,111.5],[0,-88.9,50.2],[0,-88.4,-43.5],[0,-69.7,-119.6],[0,-35.5,-208.7],[0,-43.2,-258.3],[0,-54.6,-306.3],[0,-38.9,-286.9],[0,-52.1,-358.3],[0,-46.8,-425.7],[0,-7.6,-516.7],[0,-2.8,-470],[0,18.6,-432],[0,32.5,-398],[0,58.2,-418.7],[0,97.6,-448.2],[0,109.9,-479.3],[0,113.2,-493.3],[0,125.8,-439.4],[0,121.5,-393.7],[0,102.2,-339.3],[0,50.1,-252.5],[0,38.7,-208.2],[0,69.4,-125.5],[0,90.4,-40.1]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[16,-3]],[22,-1,0],[5,532,773],[0,0,0,0,0,0,1,0.9,0.9,1]],[5,"jinli",1,1,[[3,"Armature","newAnimation",0,"54081c72-bc78-42fd-acf3-427bff5d2cb3#3c921882-5db7-4c18-b4f7-e6fe39394a42",0.6,-5,[0],1,2]],[23,"d6k7WoF/ZFdYatVufET7mC",1,0],[5,543.51,871.77]]],0,[0,2,1,0,0,1,0,0,1,0,-1,2,0,0,2,0,5,1,5],[0,0,0],[-1,3,4],[0,10,11]],[[[8,"sy_ske","{\"frameRate\":24,\"name\":\"sy\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-272.29,\"y\":-334.24,\"width\":493,\"height\":881},\"bone\":[{\"name\":\"root\"},{\"length\":153,\"name\":\"鲨鱼\",\"parent\":\"root\",\"transform\":{\"x\":-1,\"y\":-260.95,\"skX\":89.6271,\"skY\":89.6271}},{\"length\":186,\"name\":\"鲨鱼1\",\"parent\":\"鲨鱼\",\"transform\":{\"x\":164.2965,\"y\":1.0693,\"skX\":0.0658,\"skY\":0.0658}},{\"length\":98,\"name\":\"鲨鱼8\",\"parent\":\"鲨鱼1\",\"transform\":{\"x\":102.9065,\"y\":111.0032,\"skX\":57.628,\"skY\":57.628}},{\"length\":97,\"name\":\"鲨鱼7\",\"parent\":\"鲨鱼1\",\"transform\":{\"x\":104.0933,\"y\":-110.3936,\"skX\":-55.5367,\"skY\":-55.5367}},{\"length\":94,\"name\":\"鲨鱼2\",\"parent\":\"鲨鱼1\",\"transform\":{\"x\":201.9869,\"y\":2.9828,\"skX\":-0.2676,\"skY\":-0.2676}},{\"length\":105,\"name\":\"鲨鱼3\",\"parent\":\"鲨鱼2\",\"transform\":{\"x\":101.4854,\"y\":1.9681,\"skX\":-0.4857,\"skY\":-0.4857}},{\"length\":101,\"name\":\"鲨鱼4\",\"parent\":\"鲨鱼3\",\"transform\":{\"x\":115.9977,\"y\":1.1969,\"skX\":1.0604,\"skY\":1.0604}},{\"length\":87,\"name\":\"鲨鱼5\",\"parent\":\"鲨鱼4\",\"transform\":{\"x\":120.75,\"y\":1.95,\"skX\":-0.6514,\"skY\":-0.6514}},{\"length\":54,\"name\":\"鲨鱼9\",\"parent\":\"鲨鱼4\",\"transform\":{\"x\":34.45,\"y\":44.15,\"skX\":40.2148,\"skY\":40.2148}},{\"length\":51,\"name\":\"鲨鱼10\",\"parent\":\"鲨鱼4\",\"transform\":{\"x\":38.5,\"y\":-43.85,\"skX\":-41.2225,\"skY\":-41.2225}},{\"length\":45,\"name\":\"鲨鱼6\",\"parent\":\"鲨鱼5\",\"transform\":{\"x\":102.4547,\"y\":0.1649,\"skX\":-0.546,\"skY\":-0.546}}],\"slot\":[{\"name\":\"鲨鱼\",\"parent\":\"鲨鱼10\"}],\"skin\":[{\"slot\":[{\"name\":\"鲨鱼\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/鲨鱼\",\"width\":493,\"height\":881,\"vertices\":[-248,-275,245,-275,-248,606,245,606,-2.6,606,-8.75,602.4,2.8,602.4,-13.05,588.65,-18.1,563.35,-23.15,530.5,-24.55,492.85,-24.45,467.6,-25.1,447.8,-29.4,421.8,-33.2,400.55,-39.05,397.4,-58.8,402.9,-75,412.2,-87.1,422.35,-94.75,421.25,-96.2,406.45,-90.4,390.8,-78.35,363.1,-60.75,338.65,-46.5,322.75,-52.8,285.45,-60.5,246.5,-67.05,217.95,-72.95,187.85,-79.15,157.2,-83.1,125.85,-87.95,98.15,-91.55,78.55,-101.05,78.2,-134.7,81.45,-168.95,89.3,-195.7,98.45,-219.2,109.5,-236.2,117.05,-248,116.7,-248,112.35,-243.15,100.9,-236,88.1,-228,73.6,-217.05,57.85,-203.35,40.8,-186,21.15,-168.7,4.45,-147.05,-13.45,-127.25,-27.05,-105.6,-40.65,-104.3,-46.6,-106.25,-59.3,-105.8,-72.1,-105.95,-87.5,-104.3,-99.3,-102.15,-111.95,-98.55,-126.65,-96.6,-136.45,-89.35,-152.95,-79.35,-173.15,-66.2,-196.55,-52.05,-218.9,-38,-239.45,-23.05,-257.25,-10.65,-269.05,-1.3,-275,3.05,-275,14.65,-266.9,25.85,-255.35,32.9,-245.9,51.15,-220.95,66.75,-194.65,79.35,-171.15,92.35,-145.55,98,-127.8,101.45,-108.35,103.95,-92.75,105.2,-72.9,103.45,-49.05,102.55,-40.95,118.2,-31.85,140.75,-16.6,164.25,3.05,183.05,21,203.1,41.5,218.85,63.95,233.25,86.4,242.75,105.15,245,115.5,233.95,117.45,215.2,109,189.05,97.45,168.7,90.45,142.2,83.75,119.4,80.1,101.15,77.85,89.25,77.85,86.2,99.2,83.25,118.85,78.35,139.75,75.15,159.05,70.4,181.5,65.7,207.1,59.2,233.8,53.4,260.6,48.35,287.45,44.8,309.05,42.7,323.95,51.3,331.7,60.25,343.45,70.6,359.4,82.35,381.5,87.25,394.65,90.95,413.8,89.05,421.3,81.15,421.65,72.75,413.95,55.9,403.6,40.6,398.65,34.3,398.5,27.3,403.25,23.25,427.65,20.1,444.1,19.35,453.45,20.1,473.95,19.6,496.75,17.1,517.3,15,538.35,10.8,565.35,6.75,589.05],\"uvs\":[0,0,1,0,0,1,1,1,0.49777,1,0.48529,0.99591,0.50872,0.99591,0.47657,0.98031,0.46633,0.95159,0.45609,0.9143,0.45325,0.87157,0.45345,0.84291,0.45213,0.82043,0.44341,0.79092,0.4357,0.7668,0.42383,0.76322,0.38377,0.76947,0.35091,0.78002,0.32637,0.79154,0.31085,0.7903,0.30791,0.7735,0.31968,0.75573,0.34412,0.72429,0.37982,0.69654,0.40872,0.67849,0.39594,0.63615,0.38032,0.59194,0.36704,0.55953,0.35507,0.52537,0.34249,0.49058,0.33448,0.45499,0.32465,0.42355,0.31734,0.40131,0.29807,0.40091,0.22982,0.4046,0.16034,0.41351,0.10609,0.42389,0.05842,0.43644,0.02394,0.44501,0,0.44461,0,0.43967,0.00984,0.42667,0.02434,0.41215,0.04057,0.39569,0.06278,0.37781,0.09057,0.35846,0.12576,0.33615,0.16085,0.3172,0.20477,0.29688,0.24493,0.28144,0.28884,0.266,0.29148,0.25925,0.28753,0.24484,0.28844,0.23031,0.28813,0.21283,0.29148,0.19943,0.29584,0.18507,0.30314,0.16839,0.3071,0.15726,0.32181,0.13854,0.34209,0.11561,0.36876,0.08905,0.39746,0.06368,0.42596,0.04035,0.45629,0.02015,0.48144,0.00675,0.50041,0,0.50923,0,0.53276,0.00919,0.55548,0.0223,0.56978,0.03303,0.6068,0.06135,0.63844,0.0912,0.664,0.11788,0.69037,0.14694,0.70183,0.16708,0.70882,0.18916,0.71389,0.20687,0.71643,0.2294,0.71288,0.25647,0.71105,0.26566,0.7428,0.27599,0.78854,0.2933,0.83621,0.31561,0.87434,0.33598,0.91501,0.35925,0.94696,0.38473,0.97617,0.41022,0.99544,0.4315,1,0.44325,0.97759,0.44546,0.93955,0.43587,0.88651,0.42276,0.84523,0.41481,0.79148,0.40721,0.74523,0.40306,0.70822,0.40051,0.68408,0.40051,0.67789,0.42474,0.67191,0.44705,0.66197,0.47077,0.65548,0.49268,0.64584,0.51816,0.63631,0.54722,0.62312,0.57753,0.61136,0.60795,0.60112,0.63842,0.59391,0.66294,0.58966,0.67985,0.6071,0.68865,0.62525,0.70199,0.64625,0.72009,0.67008,0.74518,0.68002,0.7601,0.68753,0.78184,0.68367,0.79035,0.66765,0.79075,0.65061,0.78201,0.61643,0.77026,0.5854,0.76464,0.57262,0.76447,0.55842,0.76986,0.5502,0.79756,0.54381,0.81623,0.54229,0.82684,0.54381,0.85011,0.5428,0.87599,0.53773,0.89932,0.53347,0.92321,0.52495,0.95386,0.51673,0.98076],\"triangles\":[106,110,111,105,106,111,77,78,82,77,82,83,102,103,91,92,101,91,101,102,91,105,111,90,104,105,90,111,112,90,91,103,90,103,104,90,6,4,3,130,6,3,129,130,3,128,129,3,115,127,3,127,128,3,114,115,3,67,68,1,68,69,1,69,70,1,70,71,1,71,72,1,75,76,1,77,83,1,76,77,1,83,84,1,84,85,1,74,75,1,72,73,1,85,86,1,73,74,1,86,87,1,87,88,1,90,112,89,112,113,89,113,114,89,114,3,89,88,90,89,1,88,89,87,91,88,91,90,88,86,91,87,126,127,115,100,101,93,93,101,92,92,91,86,85,92,86,93,92,85,78,81,82,84,93,85,99,100,94,94,100,93,94,93,84,83,94,84,95,94,83,82,95,83,96,95,82,95,99,94,106,107,109,106,109,110,125,126,116,116,126,115,97,96,81,78,79,81,98,99,95,81,96,82,80,97,81,79,80,81,96,98,95,5,2,4,124,125,116,97,98,96,32,97,80,50,32,80,53,79,78,77,53,78,51,50,80,76,55,77,55,53,77,51,80,79,53,51,79,56,55,76,75,57,76,57,56,76,59,57,74,74,57,75,0,65,66,60,59,73,123,124,116,113,117,114,73,59,74,116,115,114,117,116,114,31,98,97,32,31,97,122,123,117,117,123,116,112,118,113,118,117,113,31,99,98,61,60,72,72,60,73,30,100,99,31,30,99,111,118,112,119,118,111,118,122,117,29,101,100,30,29,100,54,53,55,29,102,101,29,28,102,62,61,72,110,119,111,28,103,102,107,108,109,120,119,110,28,27,103,71,62,72,27,104,103,108,120,109,119,122,118,27,26,104,109,120,110,26,105,104,121,122,119,14,121,108,121,120,108,70,63,71,63,62,71,25,106,105,26,25,105,24,14,108,120,121,119,25,107,106,24,108,107,25,24,107,69,64,70,64,63,70,24,15,14,53,52,51,58,57,59,0,64,65,68,64,69,13,122,121,14,13,121,65,64,68,12,123,122,13,12,122,10,127,126,123,12,124,10,126,125,11,10,125,124,11,125,12,11,124,24,23,15,8,129,128,9,128,127,10,9,127,67,65,68,9,8,128,66,65,67,7,130,129,8,7,129,5,6,130,7,5,130,5,4,6,0,63,64,7,2,5,8,2,7,23,22,15,9,2,8,50,49,32,10,19,9,18,10,11,19,2,9,13,17,12,18,19,10,12,18,11,0,62,63,17,18,12,22,16,15,14,15,13,15,16,13,16,17,13,49,33,32,0,61,62,25,23,24,22,21,16,22,23,25,49,48,33,26,22,25,38,22,26,21,17,16,0,60,61,27,38,26,28,38,27,48,34,33,39,21,22,38,39,22,21,20,17,29,37,28,37,38,28,36,37,29,0,59,60,20,18,17,48,47,34,30,35,29,35,36,29,39,20,21,20,19,18,31,34,30,34,35,30,0,58,59,32,33,31,33,34,31,39,2,20,20,2,19,0,57,58,0,56,57,0,55,56,48,54,55,47,48,55,0,47,55,49,50,51,52,49,51,54,48,53,48,49,53,49,52,53,0,46,47,47,46,34,46,35,34,46,45,35,0,45,46,0,44,45,44,36,35,45,44,35,0,43,44,44,43,36,0,41,42,0,42,43,43,37,36,43,42,37,0,40,41,42,41,37,41,38,37,41,40,38,40,39,38],\"weights\":[1,1,1,1,1,1,1,11,1,1,11,1,3,11,0.95592,8,0.03763,7,0.006451,3,11,0.964683,8,0.030385,7,0.004932,3,11,0.965113,8,0.029999,7,0.004889,3,11,0.967876,8,0.028511,7,0.003613,4,11,0.843912,8,0.141176,7,0.009146,9,0.005766,4,8,0.604253,11,0.365902,7,0.019074,9,0.010771,4,8,0.80769,11,0.101723,7,0.063385,9,0.027202,4,8,0.784335,7,0.130218,11,0.047079,9,0.038369,4,8,0.666713,7,0.257538,9,0.048568,11,0.027181,4,7,0.50911,8,0.331671,9,0.117663,10,0.041556,4,7,0.477236,9,0.295582,8,0.164901,10,0.062282,4,9,0.44914,7,0.351933,8,0.139196,10,0.059732,4,9,0.79229,7,0.106234,8,0.072685,6,0.028791,4,9,0.909065,7,0.041013,8,0.036093,6,0.01383,4,9,0.835704,7,0.070017,8,0.068785,6,0.025493,4,9,0.838187,7,0.067625,8,0.066482,6,0.027706,4,9,0.931963,7,0.028552,8,0.025557,6,0.013929,4,9,0.961927,7,0.01654,8,0.01253,6,0.009002,4,9,0.86691,7,0.061873,6,0.041575,8,0.029642,4,9,0.747722,7,0.119647,6,0.095753,10,0.036877,4,9,0.43006,7,0.270122,6,0.243621,10,0.056197,4,6,0.417371,7,0.272587,9,0.204029,5,0.106013,4,6,0.453177,5,0.263989,7,0.163086,9,0.119748,4,6,0.426355,5,0.373856,7,0.11333,9,0.086458,4,5,0.395327,6,0.386654,2,0.132173,7,0.085846,4,5,0.392026,6,0.28398,2,0.212568,3,0.111426,4,5,0.360623,2,0.282999,6,0.181537,3,0.174841,4,5,0.309882,2,0.288985,3,0.28161,6,0.119522,4,3,0.416239,2,0.251359,5,0.245292,6,0.08711,4,3,0.498845,2,0.210957,5,0.20745,6,0.082749,4,3,0.737084,5,0.103681,2,0.1026,6,0.056635,3,3,0.905479,5,0.047858,2,0.046664,3,3,0.926466,5,0.037332,2,0.036203,1,3,1,1,3,1,1,3,1,1,3,1,1,3,1,1,3,1,1,3,1,1,3,1,1,3,1,2,3,0.977418,2,0.022582,3,3,0.937117,2,0.035905,5,0.026978,4,1,0.03777,3,0.875383,2,0.053774,5,0.033073,4,1,0.05165,3,0.83951,2,0.073246,5,0.035594,4,1,0.102428,3,0.701207,2,0.145959,5,0.050406,4,1,0.127571,3,0.642314,2,0.174142,5,0.055973,4,1,0.175721,3,0.54499,2,0.215795,5,0.063495,3,1,0.242422,3,0.482837,2,0.274741,3,1,0.297658,3,0.387989,2,0.314353,3,1,0.334075,2,0.342666,3,0.323259,3,1,0.366194,2,0.364885,3,0.268922,3,1,0.405104,2,0.376747,3,0.218149,3,1,0.432046,2,0.374478,3,0.193476,3,1,0.49328,2,0.35641,3,0.15031,3,1,0.586261,2,0.304514,3,0.109225,2,1,0.767721,2,0.232279,2,1,0.869508,2,0.130492,2,1,0.940393,2,0.059607,2,1,0.981796,2,0.018204,2,1,0.994704,2,0.005296,2,1,0.99383,2,0.00617,2,1,0.993327,2,0.006673,2,1,0.990501,2,0.009499,2,1,0.972998,2,0.027002,2,1,0.953494,2,0.046506,2,1,0.870945,2,0.129055,2,1,0.758001,2,0.241999,3,1,0.579728,2,0.307202,4,0.11307,3,1,0.468081,2,0.361393,4,0.170526,3,1,0.413052,2,0.369276,4,0.217671,3,1,0.365036,2,0.353372,4,0.281592,3,1,0.321425,4,0.356339,2,0.322237,3,1,0.248786,4,0.479308,2,0.271906,4,1,0.139206,4,0.622938,2,0.181728,5,0.056128,4,1,0.107719,4,0.690941,2,0.151636,5,0.049703,4,1,0.064053,4,0.808524,2,0.089621,5,0.037802,4,1,0.041475,4,0.867159,2,0.058476,5,0.03289,4,1,0.026165,4,0.909156,2,0.037903,5,0.026776,2,4,0.975062,2,0.024938,1,4,1,1,4,1,1,4,1,1,4,1,1,4,1,1,4,1,1,4,1,3,4,0.93289,2,0.034063,5,0.033047,3,4,0.917276,2,0.04222,5,0.040503,4,4,0.796431,2,0.081608,5,0.076712,6,0.045249,4,4,0.66294,2,0.142133,5,0.130044,6,0.064884,4,4,0.528283,2,0.209214,5,0.185036,6,0.077467,4,4,0.425149,2,0.263966,5,0.227687,6,0.083198,4,2,0.30671,5,0.289461,4,0.28661,6,0.117219,4,5,0.325848,2,0.308986,4,0.207927,6,0.157239,4,5,0.365418,2,0.275547,6,0.212416,4,0.14662,4,5,0.390592,6,0.275215,2,0.223334,4,0.110859,4,5,0.407606,6,0.348361,2,0.15945,7,0.084583,4,5,0.40479,6,0.388272,7,0.103693,2,0.103245,4,6,0.423506,5,0.336179,7,0.140541,10,0.099774,4,6,0.450422,5,0.20904,7,0.202269,10,0.138268,4,6,0.420478,7,0.278579,10,0.195942,5,0.105002,4,6,0.346722,7,0.30733,10,0.27555,9,0.070398,4,10,0.402711,7,0.271492,6,0.264217,9,0.061581,4,10,0.575717,7,0.193284,6,0.176023,9,0.054976,4,10,0.727048,7,0.126324,6,0.103589,9,0.043039,4,10,0.819349,7,0.084376,6,0.060615,8,0.03566,4,10,0.9104,7,0.039961,8,0.025342,6,0.024297,4,10,0.949903,7,0.02182,8,0.016301,6,0.011976,4,10,0.889658,7,0.047193,8,0.041295,6,0.021854,4,10,0.843213,7,0.067433,8,0.061209,6,0.028146,4,10,0.85573,7,0.063573,8,0.057009,6,0.023689,4,10,0.927008,7,0.033376,8,0.027679,6,0.011937,4,10,0.865678,7,0.068974,8,0.045075,6,0.020273,4,10,0.647977,7,0.211351,8,0.097873,6,0.0428,4,10,0.505971,7,0.317825,8,0.123311,9,0.052893,4,7,0.476712,10,0.30303,8,0.163344,9,0.056913,4,7,0.51156,8,0.342144,10,0.109927,9,0.036368,4,8,0.541878,7,0.359,10,0.068383,11,0.030739,4,8,0.631117,7,0.267022,10,0.061683,11,0.040178,4,8,0.727028,7,0.144813,11,0.076245,10,0.051914,4,8,0.74954,11,0.142983,7,0.073213,10,0.034264,4,8,0.700778,11,0.246793,7,0.034196,10,0.018233,4,11,0.488752,8,0.48726,7,0.015088,10,0.0089,4,11,0.862769,8,0.123014,7,0.008661,10,0.005556,3,11,0.970791,8,0.025874,7,0.003335],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[1,0.006508,0.999979,-0.999979,0.006508,-1,-260.95,2,0.00536,0.999986,-0.999986,0.00536,-1,-96.65,5,0.010031,0.99995,-0.99995,0.010031,-2.9,105.35,6,0.018507,0.999829,-0.999829,0.018507,-3.85,206.85,7,0,1,-1,0,-2.9,322.85,8,0.011369,0.999935,-0.999935,0.011369,-4.85,443.6,11,0.020898,0.999782,-0.999782,0.020898,-3.85,546.05,3,-0.841707,0.539934,-0.539934,-0.841707,-111.45,6.85,4,0.82751,0.561451,-0.561451,0.82751,109.95,6.85,9,-0.645655,0.763629,-0.763629,-0.645655,-47.05,357.3,10,0.658985,0.752156,-0.752156,0.658985,40.95,361.35],\"edges\":[3,4,4,2,2,39,39,40,40,0,0,66,66,67,67,1,1,89,89,3],\"userEdges\":[]}]}]}],\"animation\":[{\"duration\":16,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"鲨鱼\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.87},{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-2.8},{\"duration\":0}]},{\"name\":\"鲨鱼1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-1.65},{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":1.02},{\"duration\":0}]},{\"name\":\"鲨鱼7\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-2.32},{\"duration\":8}]},{\"name\":\"鲨鱼2\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.89},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-1.18},{\"duration\":4,\"tweenEasing\":0,\"rotate\":9.1},{\"duration\":0}]},{\"name\":\"鲨鱼3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.32},{\"duration\":4,\"tweenEasing\":0,\"rotate\":4.97},{\"duration\":4,\"tweenEasing\":0,\"rotate\":8.49},{\"duration\":0}]},{\"name\":\"鲨鱼4\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-16.26},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-0.92},{\"duration\":4,\"tweenEasing\":0,\"rotate\":5.15},{\"duration\":0}]},{\"name\":\"鲨鱼5\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":8.56},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.23},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-16.73},{\"duration\":0}]},{\"name\":\"鲨鱼6\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":28.93},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-13.14},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-25.19},{\"duration\":0}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[{"name":"fishlizi2","rect":[868,120,31,31],"offset":[0,0],"originalSize":[31,31],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[4,"jiao"],[7,"jiao",1,[-4],[[2,777,-2,[[[0,-13,-95],[0,-4,-152],[0,-45,-258],[0,-87,-350],[0,-93,-450],[0,-57,-546],[0,-13,-624],[0,5,-675],[0,37,-742],[0,47,-725],[0,57,-734],[0,72,-756],[0,109,-887],[0,128,-889],[0,116,-833],[0,124,-826],[0,137,-828],[0,161,-841],[0,198,-867],[0,231,-915],[0,239,-907],[0,209,-863],[0,185,-795],[0,192,-775],[0,209,-771],[0,243,-797],[0,257,-792],[0,146,-693],[0,130,-664],[0,145,-666],[0,144,-650],[0,47,-556],[0,8,-487],[0,4,-405],[0,35,-328],[0,82,-275],[0,109,-195],[0,120,-114],[0,115,-57.4],[0,84,43.4],[0,136.4,-25.7],[0,171.2,-50.4],[0,146.4,-19.2],[0,142.3,4.6],[0,161.5,13.1],[0,210.4,-4.7],[0,213.2,1.9],[0,179.9,18.2],[0,146.9,45.8],[0,136.5,61.8],[0,147.6,69.5],[0,181.7,67.1],[0,178.2,70.8],[0,118.7,90.2],[0,48.2,127.2],[0,28.6,204.5],[0,27.9,288.8],[0,53.1,388.4],[0,90.8,328.2],[0,93.3,336],[0,82.7,358.2],[0,85.6,372.2],[0,106.1,378],[0,145.6,331.7],[0,118.1,391.4],[0,109.2,422.6],[0,124.9,437.2],[0,145.5,431.5],[0,143.8,442.8],[0,84.6,485.3],[0,49,549.5],[0,10.1,585.6],[0,-13.6,584.8],[0,-47.4,552.5],[0,-78.4,501.3],[0,-87,478.8],[0,-118,454.2],[0,-152.3,438.3],[0,-148.2,430.3],[0,-127.3,434.3],[0,-114.7,426.8],[0,-117.2,399.7],[0,-139.4,342.5],[0,-131.1,334.2],[0,-107.4,380.3],[0,-95.1,376.9],[0,-90.8,366.5],[0,-101.9,320.1],[0,-113.6,217.3],[0,-99.3,134.1],[0,-80.8,84.3],[0,-141.7,-36.4],[0,-114.4,-14.4],[0,-102.9,-18.2],[0,-106.4,-66.7],[0,-121.9,-111.1],[0,-113.2,-106.2],[0,-92.9,-65.6],[0,-78.8,-59],[0,-64.9,-64.6],[0,-57.2,-88.2],[0,-58.8,-116.7],[0,-52.5,-107],[0,-48,-49.1],[0,-56.6,23.4]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[16,-3]],[1,-1],[5,338,1786],[0,0,0,0,0,0,1,1.2,1.3,1]],[5,"jiao",1,1,[[3,"Armature","newAnimation",0,"e57ffa14-9d48-47c3-9ba4-05b2e89b5f70#a1237208-e8b7-4f3c-b327-c792cb0c03e6",0.4,-5,[0],1,2]],[0,"f6ia8poFdO5oo0drFbjJob",1],[5,337.77,1786.5]]],0,[0,2,1,0,0,1,0,0,1,0,-1,2,0,0,2,0,5,1,5],[0,0,0],[-1,3,4],[0,16,17]],[[[4,"xiaojinyu"],[7,"xiaojinyu",1,[-4],[[2,777,-2,[[[0,-71.9,-149.9],[0,-110.6,-187.4],[0,-125.8,-205.3],[0,-136.3,-225.9],[0,-144.8,-258.1],[0,-140.3,-310.5],[0,-136.7,-319],[0,-131.1,-319.3],[0,-125.1,-309.8],[0,-129.3,-301],[0,-122.5,-297.9],[0,-121.6,-306.2],[0,-112,-306],[0,-105.8,-297.2],[0,-107.9,-284],[0,-121.5,-270.9],[0,-118.6,-260.6],[0,-115.9,-251],[0,-106.3,-239.6],[0,-103.3,-239.4],[0,-107.1,-272.8],[0,-92.5,-268.6],[0,-81.8,-296.7],[0,-67.8,-316.7],[0,-66.1,-311.4],[0,-60.1,-312.9],[0,-41.4,-325.6],[0,-28.5,-344.8],[0,-19.6,-356.9],[0,-21.6,-376.8],[0,-34,-391.7],[0,-51.5,-406.1],[0,-50.2,-407.4],[0,-36.4,-407.3],[0,-3.3,-410.8],[0,19.8,-403.7],[0,26.1,-391.7],[0,23.9,-362.7],[0,26.9,-354.6],[0,31.1,-353.6],[0,32.3,-360.2],[0,37.8,-364.7],[0,50.1,-363.7],[0,57.3,-351.9],[0,63.8,-347.4],[0,71.4,-347.6],[0,88.8,-368],[0,106.1,-367.1],[0,150.5,-345.9],[0,141.5,-335.7],[0,115.5,-329.3],[0,107.5,-322.8],[0,110.2,-312.3],[0,115.4,-294.1],[0,112.3,-285.7],[0,82.9,-277.7],[0,69.7,-263.1],[0,63.4,-249.2],[0,64.3,-227.1],[0,70.9,-203],[0,74.3,-208.6],[0,76.5,-220.9],[0,82,-228.1],[0,86.2,-229.7],[0,88.8,-234],[0,95.8,-225.5],[0,90.3,-215.5],[0,91.2,-211.8],[0,97.2,-211.6],[0,100.2,-214.6],[0,103.3,-219.4],[0,102,-225.8],[0,100.1,-234],[0,97.4,-240.3],[0,100.3,-243.7],[0,106.4,-250.1],[0,114.9,-252.6],[0,119.4,-256.2],[0,121.5,-262.4],[0,124.1,-264.1],[0,124.5,-260],[0,134.3,-238.6],[0,138.9,-216.7],[0,138.7,-201.6],[0,134.2,-186],[0,120.5,-171.6],[0,96.5,-155.2],[0,70.7,-139.6],[0,47.7,-117.4],[0,42.5,-104.6],[0,42.7,-85.7],[0,49.4,-75.3],[0,53.1,-91.8],[0,61,-106.3],[0,67.2,-114.1],[0,70.3,-115.1],[0,63.26,-104.28],[0,63.68,-102.18],[0,64.72,-103.23],[0,70.03,-109.37],[0,75.5,-113.9],[0,84.4,-119.6],[0,88.2,-122.7],[0,93.4,-127.4],[0,100.2,-112],[0,103.8,-97.5],[0,102.8,-77.6],[0,97.4,-65.2],[0,67.7,-25.8],[0,66.8,-21.5],[0,65.4,-0.1],[0,67.8,2.2],[0,76.4,7.4],[0,82.7,21.1],[0,84,42.1],[0,72.7,63.4],[0,60.3,71.4],[0,49.2,74.6],[0,38.3,88.3],[0,21.1,100.6],[0,16.3,108.6],[0,8.5,111.3],[0,-1.7,113.3],[0,-8.3,110.7],[0,-18.8,107.5],[0,-23.7,99.5],[0,-40.4,88.7],[0,-52.3,74.2],[0,-59.5,72],[0,-73.5,64.8],[0,-85.4,46.5],[0,-87.6,31.4],[0,-80.9,10.9],[0,-69,-0.4],[0,-69.1,-30],[0,-86.9,-53.5],[0,-103.1,-76.5],[0,-105.3,-95.1],[0,-104.2,-105.4],[0,-96.7,-131.5],[0,-79.8,-119.2],[0,-65.7,-105.5],[0,-66.1,-109.2],[0,-72.8,-116.8],[0,-71.3,-118.7],[0,-68.1,-116.7],[0,-53.7,-93.7],[0,-50.3,-75.1],[0,-48.7,-78.2],[0,-54.5,-108],[0,-52.9,-125.9]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[16,-3]],[22,-1,0],[5,306,557],[0,0,0,0,0,0,1,0.75,0.75,1]],[5,"xiaojinyu",1,1,[[3,"Armature","newAnimation",0,"74749110-f9a9-4a67-a820-6bce33fdb37d#dc299c0e-069c-4ea1-b593-9f962d524d2b",0.6,-5,[0],1,2]],[23,"d6k7WoF/ZFdYatVufET7mC",1,0],[5,306,569.69]]],0,[0,2,1,0,0,1,0,0,1,0,-1,2,0,0,2,0,5,1,5],[0,0,0],[-1,3,4],[0,3,4]],[[{"name":"blood8","rect":[3,3,438,366],"offset":[0,0],"originalSize":[438,366],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[27,"错误-错误-游戏提示音_系统提示音_爱给网_aigei_com",".mp3",1.018776],-1],0,0,[],[],[]],[[[4,"Lotusleaf"],[13,"Lotusleaf",1,[[6,-2,[0],1]],[1,-1],[5,287,256]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,136]],[[[4,"kedou"],[7,"kedou",1,[-4],[[2,777,-2,[[[0,-13,-58.9],[0,-4,-69.5],[0,2.4,-73.4],[0,5.6,-66.8],[0,11.6,-57.6],[0,14.8,-47.8],[0,15.7,-34.2],[0,14.4,-24.6],[0,10.6,-6.7],[0,10,9.3],[0,21.1,18],[0,26.5,29.4],[0,27.9,43.5],[0,22.27,55.45],[0,13.5,67.2],[0,6.13,71.46],[0,-7,72],[0,-20.5,65.94],[0,-29.53,55.87],[0,-34.1,41.5],[0,-33.1,25.2],[0,-24.93,14.64],[0,-14.7,8.9],[0,-18.2,-27.2],[0,-18.1,-47.3]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[16,-3]],[1,-1],[5,65,154],[0,0,0,0,0,0,1,0.5,0.5,1]],[5,"kedou",1,1,[[24,"Armature","kedou",0,"79138164-4c1f-437c-9cdb-77c6868121b0#7dc1db8c-0927-47e0-9a1a-a47dc638dafb",-5,[0],1,2]],[0,"79mp4N0fhMFY4E/WxY/mzG",1],[5,65,153.82]]],0,[0,2,1,0,0,1,0,0,1,0,-1,2,0,0,2,0,5,1,5],[0,0,0],[-1,3,4],[0,6,7]],[[[4,"shayu"],[7,"shayu",1,[-5,-6],[[2,1,-2,[[[0,-93.2,-80.8],[0,-69.6,-205],[0,-48.5,-321.3],[0,-75.6,-354.1],[0,-94.1,-395.6],[0,-96.7,-417.2],[0,-90.2,-421.6],[0,-81.9,-417.9],[0,-64.1,-403.7],[0,-40,-397.6],[0,-34.1,-401.4],[0,-27.1,-445.9],[0,-28.6,-480.1],[0,-23.5,-544.6],[0,-9.8,-603.9],[0,0.4,-608.1],[0,13.2,-550.9],[0,19.1,-454.5],[0,27.2,-402.1],[0,37.3,-396.6],[0,53.9,-400.7],[0,72.9,-416.2],[0,89.4,-423],[0,90.8,-404.9],[0,70.8,-355.6],[0,42.4,-316.4],[0,83.3,-112.9],[0,89.5,-77],[0,132.7,-81],[0,168.3,-90.5],[0,201.4,-101.5],[0,229.9,-115.3],[0,243.9,-115.4],[0,237.4,-91.9],[0,201.8,-40.7],[0,148.2,11.9],[0,102.9,41.7],[0,103.2,94.9],[0,96.3,132.4],[0,82.7,164.3],[0,64.9,198.9],[0,39.3,237.4],[0,18.5,263.3],[0,4.4,274.1],[0,-3.7,275.8],[0,-20.3,262.4],[0,-46.5,229.8],[0,-64.3,201.4],[0,-88.9,155.5],[0,-99.7,127.6],[0,-106.5,86.8],[0,-104.4,42.6],[0,-159.2,7.5],[0,-215.1,-52.4],[0,-245.7,-103.9],[0,-246.2,-115.8],[0,-235.8,-117.3],[0,-197.8,-98.5],[0,-157.3,-85.6],[0,-108,-78.2],[0,-95.3,-76.9]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[14,false,-3],[11,666,61,-4,[0,0,189]]],[1,-1],[5,493,881],[0,0,0,0,0,0,1,1.2,1.2,1]],[20,"pos",1,[[19,1000,1000,-7],[15,-8]],[0,"0eq7MKrnxJRb74uA0+7J50",1]],[5,"shayu",1,1,[[3,"Armature","newAnimation",0,"ac7595ee-1cbd-4243-953f-6156fd682320#a3d22edc-f6d2-4da1-8754-c16518ac4600",0.5,-9,[0],1,2]],[0,"709Y5VckFMeq1JNpamEkhv",1],[5,493,881]]],0,[0,2,1,0,0,1,0,0,1,0,0,1,0,-1,3,0,-2,2,0,0,2,0,0,2,0,0,3,0,5,1,9],[0,0,0],[-1,3,4],[0,12,13]],[[{"name":"11","rect":[0,0,287,256],"offset":[0,0],"originalSize":[287,256],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[137]],[[[4,"BG"],[13,"BG",1,[[18,0,-2,[0],1]],[1,-1],[5,1280,1280]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,27]],[[[27,"吃掉",".mp3",0.835918],-1],0,0,[],[],[]],[[{"name":"star1","rect":[265,681,163,170],"offset":[0,0],"originalSize":[163,170],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"图层 112","rect":[0,0,720,1280],"offset":[0,0],"originalSize":[720,1280],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[138]],[[[8,"haigui_ske","{\"frameRate\":24,\"name\":\"haigui\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-255.5,\"y\":-225.5,\"width\":524,\"height\":412.5},\"bone\":[{\"name\":\"root\"},{\"length\":200,\"name\":\"壳\",\"parent\":\"root\",\"transform\":{\"x\":4,\"y\":107,\"skX\":-90.5729,\"skY\":-90.5729}},{\"length\":98,\"name\":\"gui头\",\"parent\":\"壳\",\"transform\":{\"x\":214.0393,\"y\":-2.8599,\"skX\":-0.0117,\"skY\":-0.0117}},{\"length\":152,\"name\":\"左前\",\"parent\":\"壳\",\"transform\":{\"x\":184.8908,\"y\":-88.1556,\"skX\":-57.8196,\"skY\":-57.8196}},{\"length\":75,\"name\":\"左后\",\"parent\":\"壳\",\"transform\":{\"x\":18.8091,\"y\":-80.816,\"skX\":-167.2266,\"skY\":-167.2266}},{\"length\":72,\"name\":\"右后\",\"parent\":\"壳\",\"transform\":{\"x\":21.2089,\"y\":79.216,\"skX\":160.3871,\"skY\":160.3871}},{\"length\":143,\"name\":\"右前\",\"parent\":\"壳\",\"transform\":{\"x\":190.2805,\"y\":72.9064,\"skX\":61.3241,\"skY\":61.3241}}],\"slot\":[{\"name\":\"右前\",\"parent\":\"右前\"},{\"name\":\"右后\",\"parent\":\"右后\"},{\"name\":\"左前\",\"parent\":\"左前\"},{\"name\":\"左后\",\"parent\":\"左后\"},{\"name\":\"gui头\",\"parent\":\"gui头\"},{\"name\":\"壳\",\"parent\":\"壳\"}],\"skin\":[{\"slot\":[{\"name\":\"左后\",\"display\":[{\"name\":\"动画拆/左后\",\"transform\":{\"x\":48.99,\"y\":-2.92,\"skX\":-102.2,\"skY\":-102.2}}]},{\"name\":\"gui头\",\"display\":[{\"name\":\"动画拆/gui头\",\"transform\":{\"x\":47.46,\"y\":3.98,\"skX\":90.58,\"skY\":90.58}}]},{\"name\":\"右后\",\"display\":[{\"name\":\"动画拆/右后\",\"transform\":{\"x\":50.62,\"y\":-0.03,\"skX\":-69.81,\"skY\":-69.81}}]},{\"name\":\"壳\",\"display\":[{\"name\":\"动画拆/壳\",\"transform\":{\"x\":95.5,\"y\":0.46,\"skX\":90.57,\"skY\":90.57}}]},{\"name\":\"左前\",\"display\":[{\"name\":\"动画拆/左前\",\"transform\":{\"x\":66.99,\"y\":-6.58,\"skX\":148.39,\"skY\":148.39}}]},{\"name\":\"右前\",\"display\":[{\"name\":\"动画拆/右前\",\"transform\":{\"x\":88.63,\"y\":14.68,\"skX\":29.25,\"skY\":29.25}}]}]}],\"animation\":[{\"duration\":14,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"gui头\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":5.73,\"y\":1.01},{\"duration\":6,\"tweenEasing\":0,\"x\":-0.06,\"y\":-2.19},{\"duration\":0}]},{\"name\":\"左前\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":11.98,\"y\":9.08},{\"duration\":6,\"tweenEasing\":0,\"x\":-14.24,\"y\":-3.06},{\"duration\":0}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":12.6},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-37.11},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-47.83},{\"duration\":0}]},{\"name\":\"右前\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":4.39,\"y\":-2.14},{\"duration\":6,\"tweenEasing\":0,\"x\":-1.05,\"y\":-2.33},{\"duration\":0}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.49},{\"duration\":2,\"tweenEasing\":0,\"rotate\":42.72},{\"duration\":4,\"tweenEasing\":0,\"rotate\":44.43},{\"duration\":0}]},{\"name\":\"左后\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":7.65,\"y\":0.08},{\"duration\":6,\"tweenEasing\":0,\"x\":-3.02,\"y\":6.69},{\"duration\":0}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":39.76},{\"duration\":6,\"tweenEasing\":0,\"rotate\":5.61},{\"duration\":0}]},{\"name\":\"右后\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":9.85,\"y\":-2.09},{\"duration\":6,\"tweenEasing\":0,\"x\":-2.13,\"y\":-5.48},{\"duration\":0}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-27.12},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-1.23},{\"duration\":0}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[{"name":"bian","rect":[0,0,1376,779],"offset":[0,0],"originalSize":[1376,779],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[139]],[[[8,"jy_ske_1_ske_ske","{\"frameRate\":24,\"name\":\"jy_ske_1_ske\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-216.39,\"y\":-573.03,\"width\":411.04,\"height\":1093},\"bone\":[{\"name\":\"root\"},{\"length\":180,\"name\":\"鲸鱼_拷贝\",\"parent\":\"root\",\"transform\":{\"x\":-7.75,\"y\":-270.75,\"skX\":89.3003,\"skY\":89.3003}},{\"length\":128,\"name\":\"鲸鱼_拷贝1\",\"parent\":\"鲸鱼_拷贝\",\"transform\":{\"x\":184.5637,\"y\":0.0037,\"skX\":0.2081,\"skY\":0.2081}},{\"length\":110,\"name\":\"8左翅\",\"parent\":\"鲸鱼_拷贝1\",\"transform\":{\"x\":64.9297,\"y\":101.7108,\"skX\":24.3463,\"skY\":24.3463}},{\"length\":116,\"name\":\"8右翅\",\"parent\":\"鲸鱼_拷贝1\",\"transform\":{\"x\":74.5898,\"y\":-109.214,\"skX\":-22.9529,\"skY\":-22.9529}},{\"length\":126,\"name\":\"鲸鱼_拷贝2\",\"parent\":\"鲸鱼_拷贝1\",\"transform\":{\"x\":130.4141,\"y\":-1.0811,\"skX\":-0.5087,\"skY\":-0.5087}},{\"length\":145,\"name\":\"8左翅1\",\"parent\":\"8左翅\",\"transform\":{\"x\":127.4342,\"y\":1.1078,\"skX\":-19.5194,\"skY\":-19.5194}},{\"length\":109,\"name\":\"鲸鱼_拷贝3\",\"parent\":\"鲸鱼_拷贝2\",\"transform\":{\"x\":128.2381,\"y\":-1.0614,\"skX\":-0.7536,\"skY\":-0.7536}},{\"length\":111,\"name\":\"8右翅1\",\"parent\":\"8右翅\",\"transform\":{\"x\":135.8975,\"y\":5.9604,\"skX\":18.213,\"skY\":18.213}},{\"length\":108,\"name\":\"鲸鱼_拷贝4\",\"parent\":\"鲸鱼_拷贝3\",\"transform\":{\"x\":111.6487,\"y\":0.1173,\"skX\":0.0086,\"skY\":0.0086}},{\"length\":116,\"name\":\"鲸鱼_拷贝5\",\"parent\":\"鲸鱼_拷贝4\",\"transform\":{\"x\":109.4007,\"y\":3.2835,\"skX\":0.6588,\"skY\":0.6588}},{\"length\":90,\"name\":\"鲸鱼_拷贝6\",\"parent\":\"鲸鱼_拷贝5\",\"transform\":{\"x\":124.9842,\"y\":2.0203,\"skX\":-1.2294,\"skY\":-1.2294}},{\"length\":90,\"name\":\"鲸鱼_拷贝7\",\"parent\":\"鲸鱼_拷贝6\",\"transform\":{\"x\":95.6656,\"y\":-18.249,\"skX\":-38.974,\"skY\":-38.974}},{\"length\":86,\"name\":\"鲸鱼_拷贝9\",\"parent\":\"鲸鱼_拷贝6\",\"transform\":{\"x\":82.8385,\"y\":25.4683,\"skX\":39.0862,\"skY\":39.0862}},{\"length\":114,\"name\":\"鲸鱼_拷贝8\",\"parent\":\"鲸鱼_拷贝7\",\"transform\":{\"x\":110.7195,\"y\":-3.2468,\"skX\":-0.1061,\"skY\":-0.1061}},{\"length\":120,\"name\":\"鲸鱼_拷贝10\",\"parent\":\"鲸鱼_拷贝9\",\"transform\":{\"x\":102.966,\"y\":2.3892,\"skX\":1.0776,\"skY\":1.0776}}],\"slot\":[{\"name\":\"8左翅\",\"parent\":\"8左翅1\"},{\"name\":\"8右翅\",\"parent\":\"8右翅1\"},{\"name\":\"鲸鱼_拷贝\",\"parent\":\"鲸鱼_拷贝10\"}],\"skin\":[{\"slot\":[{\"name\":\"8右翅\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/8右翅\",\"width\":115,\"height\":337,\"vertices\":[160.25,265.65,155.4,259.55,150.95,249.75,150.1,231.3,149.1,215.45,148.8,201.05,146.85,188,144.5,174.15,140.75,160.95,136.3,149.1,131.85,138.95,128.8,132.3,124.85,122.2,120.95,112.45,117.35,100.4,115.1,91.35,111.7,78.25,109.8,69.95,108.7,61.65,107.3,52.9,105.4,45.7,102.85,37.6,101.55,31.85,100.25,29.25,96.4,26.65,93.1,24.7,89.55,21.75,86.1,18.95,82.1,12.95,78.6,7.7,75.5,1.2,74.25,-6.8,73.45,-13.05,73.4,-22.35,75.1,-28.45,78.1,-35.45,81,-39.6,85.35,-44.35,89.5,-47.6,93.45,-50.2,99.85,-53.75,105.4,-56.2,111.9,-59.05,115.85,-55.15,118.8,-52.4,120.3,-45.8,120.9,-38.8,122.45,-32.9,125.05,-24.75,128.5,-16.7,131.45,-9.25,135.15,-2.4,139.2,5.2,143.55,12.2,149.45,21.45,154.5,29.7,158.7,37.05,162.8,45.15,166.25,52.85,170.4,61.2,173.85,71.5,177.15,80.6,178.75,88.8,180.8,97.3,181.65,104.4,183.4,114.15,183.85,122.1,184.6,134,184.95,144.65,184.8,155.7,185.2,169.45,185.35,183.4,185.5,195.6,185.05,206.1,184.55,215,183.15,222.95,181.6,231.95,179.5,239.55,176.7,248.55,174.35,254.3,171.6,258.95,166.85,263],\"uvs\":[0.77233,0.98895,0.73016,0.97085,0.69146,0.94177,0.68407,0.88702,0.67538,0.83999,0.67277,0.79726,0.65581,0.75854,0.63538,0.71744,0.60277,0.67827,0.56407,0.64311,0.52538,0.61299,0.49886,0.59325,0.46451,0.56328,0.43059,0.53435,0.39929,0.4986,0.37973,0.47174,0.35016,0.43287,0.33364,0.40824,0.32407,0.38361,0.3119,0.35765,0.29538,0.33628,0.2732,0.31225,0.2619,0.29518,0.25059,0.28747,0.21712,0.27975,0.18842,0.27397,0.15755,0.26521,0.12755,0.2569,0.09277,0.2391,0.06233,0.22352,0.03538,0.20423,0.02451,0.1805,0.01755,0.16195,0.01712,0.13435,0.0319,0.11625,0.05799,0.09548,0.0832,0.08317,0.12103,0.06907,0.15712,0.05943,0.19146,0.05171,0.24712,0.04118,0.29538,0.03391,0.3519,0.02545,0.38625,0.03702,0.4119,0.04518,0.42494,0.06477,0.43016,0.08554,0.44364,0.10305,0.46625,0.12723,0.49625,0.15112,0.5219,0.17323,0.55407,0.19355,0.58929,0.2161,0.62712,0.23688,0.67842,0.26432,0.72233,0.2888,0.75886,0.31061,0.79451,0.33465,0.82451,0.3575,0.86059,0.38228,0.89059,0.41284,0.91929,0.43984,0.9332,0.46417,0.95103,0.4894,0.95842,0.51047,0.97364,0.5394,0.97755,0.56299,0.98407,0.5983,0.98712,0.6299,0.98581,0.66269,0.98929,0.70349,0.99059,0.74489,0.9919,0.78109,0.98799,0.81225,0.98364,0.83866,0.97146,0.86225,0.95799,0.88895,0.93973,0.9115,0.91538,0.93821,0.89494,0.95527,0.87103,0.96907,0.82973,0.98109],\"triangles\":[42,43,44,45,46,47,45,47,48,45,48,49,49,50,51,45,49,51,51,52,53,45,51,53,45,53,54,44,45,54,44,54,55,44,55,56,44,56,57,44,57,59,57,58,59,59,60,61,61,62,63,63,64,65,8,7,69,69,7,70,75,76,74,8,69,68,69,70,68,65,66,67,70,7,71,7,6,71,5,73,72,71,6,72,6,5,72,70,71,72,68,70,72,73,4,74,9,68,67,5,4,73,9,8,68,66,10,67,10,9,67,4,75,74,65,11,66,11,10,66,64,12,65,12,11,65,3,76,75,4,3,75,13,12,64,13,64,63,3,77,76,62,13,63,14,13,62,3,78,77,3,2,78,61,14,62,60,15,61,15,14,61,2,79,78,1,80,79,2,1,79,59,16,60,16,15,60,58,16,59,1,81,80,17,16,58,57,18,58,18,17,58,1,0,81,19,18,56,56,18,57,55,19,56,29,30,2,13,29,2,54,20,55,20,19,55,21,20,54,12,13,2,4,11,3,12,2,3,11,12,3,22,21,53,53,21,54,6,10,4,10,11,4,6,4,5,7,8,6,8,9,6,9,10,6,23,22,52,52,22,53,14,29,13,51,23,52,50,24,51,24,23,51,26,25,24,26,24,50,49,28,50,28,26,50,29,28,49,48,31,49,31,29,49,31,30,29,15,29,14,47,34,48,34,33,48,33,32,48,32,31,48,35,34,47,36,35,47,46,38,47,38,37,47,37,36,47,16,29,15,39,38,46,40,46,45,40,39,46,44,43,45,43,41,45,41,40,45,28,27,26,28,29,16,27,28,16,42,41,43,17,27,16,18,27,17,19,27,18,26,27,20,20,27,19,21,25,20,25,26,20,22,24,21,24,25,21,23,24,22],\"weights\":[2,4,0.053018,8,0.946982,2,4,0.043518,8,0.956482,2,4,0.030238,8,0.969762,2,4,0.010866,8,0.989134,2,4,0.01137,8,0.98863,2,4,0.012428,8,0.987572,2,4,0.018064,8,0.981936,2,4,0.028765,8,0.971235,2,4,0.055206,8,0.944794,2,4,0.10697,8,0.89303,2,4,0.184993,8,0.815007,2,4,0.252845,8,0.747155,2,4,0.360381,8,0.639619,2,4,0.457672,8,0.542328,2,4,0.573633,8,0.426367,2,4,0.665221,8,0.334779,2,4,0.777432,8,0.222568,2,4,0.832464,8,0.167536,2,4,0.879363,8,0.120637,2,4,0.915233,8,0.084767,2,4,0.934109,8,0.065891,2,4,0.948762,8,0.051238,2,4,0.958572,8,0.041428,2,4,0.960248,8,0.039752,2,4,0.954199,8,0.045801,2,4,0.948518,8,0.051482,2,4,0.944535,8,0.055465,2,4,0.94071,8,0.05929,2,4,0.94259,8,0.05741,2,4,0.944047,8,0.055953,2,4,0.948624,8,0.051376,2,4,0.957015,8,0.042985,2,4,0.959436,8,0.040564,2,4,0.959635,8,0.040365,2,4,0.959847,8,0.040153,2,4,0.958586,8,0.041414,2,4,0.957718,8,0.042282,2,4,0.955983,8,0.044017,2,4,0.954363,8,0.045637,2,4,0.952292,8,0.047708,2,4,0.947704,8,0.052296,2,4,0.94276,8,0.05724,2,4,0.934774,8,0.065226,2,4,0.939354,8,0.060646,2,4,0.941697,8,0.058303,2,4,0.951641,8,0.048359,2,4,0.962223,8,0.037777,2,4,0.9683,8,0.0317,2,4,0.972172,8,0.027828,2,4,0.969159,8,0.030841,2,4,0.96604,8,0.03396,2,4,0.959739,8,0.040261,2,4,0.951352,8,0.048648,2,4,0.939293,8,0.060707,2,4,0.917893,8,0.082107,2,4,0.894029,8,0.105971,2,4,0.869184,8,0.130816,2,4,0.839142,8,0.160858,2,4,0.807737,8,0.192263,2,4,0.763024,8,0.236976,2,4,0.713146,8,0.286854,2,4,0.66249,8,0.33751,2,4,0.616854,8,0.383146,2,4,0.535416,8,0.464584,2,4,0.461303,8,0.538697,2,4,0.381569,8,0.618431,2,4,0.321555,8,0.678445,2,4,0.24184,8,0.75816,2,4,0.183803,8,0.816197,2,4,0.135244,8,0.864756,2,4,0.096033,8,0.903967,2,4,0.068161,8,0.931839,2,4,0.051314,8,0.948686,2,4,0.03887,8,0.96113,2,4,0.030469,8,0.969531,2,4,0.022469,8,0.977531,2,4,0.01915,8,0.98085,2,4,0.021316,8,0.978684,2,4,0.029136,8,0.970864,2,4,0.03604,8,0.96396,2,4,0.042285,8,0.957715,2,4,0.047992,8,0.952008],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[4,0.397861,0.917446,-0.917446,0.397861,104.35,-12.55,8,0.091181,0.995834,-0.995834,0.091181,152.95,114.5],\"edges\":[33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,44,44,59,59,61,61,63,63,65,65,67,67,68,0,1,1,2,2,30,30,31,31,32,32,33,68,72,72,73,73,74,74,76,76,77,77,78,78,79,79,80,80,81,81,0],\"userEdges\":[]}]},{\"name\":\"8左翅\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/8左翅\",\"width\":113,\"height\":331,\"vertices\":[-163.65,267.25,-170,264.85,-177.3,259.1,-181.1,249.65,-184.65,239.05,-187.05,228.05,-188.5,217.55,-189.4,204.1,-189.8,194.75,-190.3,188.2,-190.45,176.05,-190.7,164.65,-190.45,152.9,-190.25,138.45,-189.35,128.7,-188.7,118.35,-187.35,108.1,-186.35,99.9,-183.9,88.45,-180.75,78.25,-178.15,69.9,-174.6,60.45,-169.7,50.1,-166.4,41.5,-161.35,33.65,-155.05,23,-147,10.7,-141.45,1.95,-136.45,-9.25,-132.95,-18.55,-128.5,-31.15,-125.45,-44.35,-123.2,-54.05,-120.95,-60.39,-115.9,-57.5,-106.95,-56.05,-95.65,-50.8,-85.75,-37.35,-79.14,-25.8,-79.14,-6.65,-86.7,10.55,-97.3,27.35,-103.5,28.65,-108.25,37.35,-112.2,49.15,-114.7,68.8,-117.2,82.15,-123.5,106.7,-128.4,121.6,-137,141.5,-143.9,157.25,-147.1,171.5,-151.6,191.2,-153.45,210.85,-154.85,228.4,-154.75,247.7,-158,259.2],\"uvs\":[0.25212,0.98986,0.19593,0.98261,0.13132,0.96524,0.0977,0.93669,0.06628,0.90466,0.04504,0.87143,0.03221,0.83971,0.02424,0.79907,0.02071,0.77083,0.01628,0.75104,0.01495,0.71433,0.01274,0.67989,0.01495,0.64439,0.01672,0.60074,0.02469,0.57128,0.03044,0.54001,0.04239,0.50904,0.05124,0.48427,0.07292,0.44968,0.10079,0.41886,0.1238,0.39364,0.15522,0.36509,0.19858,0.33382,0.22778,0.30784,0.27247,0.28412,0.32823,0.25194,0.39947,0.21478,0.44858,0.18835,0.49283,0.15451,0.5238,0.12642,0.56318,0.08835,0.59017,0.04847,0.61009,0.01916,0.63,0,0.67469,0.00874,0.75389,0.01312,0.85389,0.02898,0.9415,0.06962,1,0.10451,1,0.16237,0.93309,0.21433,0.83929,0.26509,0.78442,0.26901,0.74239,0.2953,0.70743,0.33095,0.68531,0.39031,0.66318,0.43065,0.60743,0.50481,0.56407,0.54983,0.48796,0.60995,0.4269,0.65753,0.39858,0.70058,0.35876,0.7601,0.34239,0.81947,0.33,0.87249,0.33088,0.9308,0.30212,0.96554],\"triangles\":[54,55,53,52,53,51,51,53,49,50,51,49,49,53,48,53,55,48,48,55,47,45,46,41,43,44,41,44,45,41,41,46,40,46,47,40,47,55,40,37,30,38,40,55,39,55,56,39,38,30,39,30,29,39,29,40,39,23,32,33,36,30,37,42,41,40,28,42,40,29,28,40,33,34,35,28,27,42,42,43,41,35,31,36,31,30,36,34,31,35,26,43,42,27,26,42,32,31,34,25,44,43,26,25,43,23,25,32,23,22,45,23,45,44,24,23,44,25,24,44,21,46,45,22,21,45,33,32,34,21,20,46,19,47,46,20,19,46,23,24,25,19,18,47,25,31,32,25,26,29,25,29,31,18,17,47,17,48,47,17,16,48,29,30,31,26,28,29,15,49,48,16,15,48,15,14,49,26,27,28,14,13,49,13,50,49,13,12,50,11,51,50,12,11,50,10,52,51,11,10,51,9,8,52,10,9,52,7,53,52,8,7,52,6,5,54,54,4,55,4,3,55,6,54,53,7,6,53,5,4,54,2,56,55,3,2,55,2,1,56,1,0,56,21,22,23,15,16,17,13,14,15,8,9,7,10,11,9,13,11,12],\"weights\":[2,3,0.021427,6,0.978573,2,3,0.017215,6,0.982785,2,3,0.012237,6,0.987763,2,3,0.006954,6,0.993046,2,3,0.007959,6,0.992041,2,3,0.013451,6,0.986549,2,3,0.019371,6,0.980629,2,3,0.02778,6,0.97222,2,3,0.035003,6,0.964997,2,3,0.041883,6,0.958117,2,3,0.055392,6,0.944608,2,3,0.073146,6,0.926854,2,3,0.095384,6,0.904616,2,3,0.135101,6,0.864899,2,3,0.166231,6,0.833769,2,3,0.211211,6,0.788789,2,3,0.260507,6,0.739493,2,3,0.305409,6,0.694591,2,3,0.367296,6,0.632704,2,3,0.466086,6,0.533914,2,3,0.550745,6,0.449255,2,3,0.630498,6,0.369502,2,3,0.720392,6,0.279608,2,3,0.773201,6,0.226799,2,3,0.829301,6,0.170699,2,3,0.881383,6,0.118617,2,3,0.925713,6,0.074287,2,3,0.946037,6,0.053963,2,3,0.957065,6,0.042935,2,3,0.96198,6,0.03802,2,3,0.966358,6,0.033642,2,3,0.95724,6,0.04276,2,3,0.944036,6,0.055964,2,3,0.934715,6,0.065285,2,3,0.945463,6,0.054537,2,3,0.952976,6,0.047024,2,3,0.960628,6,0.039372,2,3,0.969602,6,0.030398,2,3,0.964205,6,0.035795,2,3,0.947065,6,0.052935,2,3,0.929657,6,0.070343,2,3,0.916343,6,0.083657,2,3,0.936397,6,0.063603,2,3,0.92604,6,0.07396,2,3,0.891718,6,0.108282,2,3,0.76635,6,0.23365,2,3,0.657886,6,0.342114,2,3,0.475163,6,0.524837,2,3,0.32363,6,0.67637,2,3,0.142071,6,0.857929,2,3,0.062078,6,0.937922,2,3,0.036533,6,0.963467,2,3,0.017462,6,0.982538,2,3,0.012062,6,0.987938,2,3,0.009307,6,0.990693,2,3,0.010313,6,0.989687,2,3,0.015515,6,0.984485],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[3,-0.404419,0.914574,-0.914574,-0.404419,-106.65,-20.4,6,-0.075593,0.997139,-0.997139,-0.075593,-159.2,95.7],\"edges\":[38,39,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,9,9,11,39,56,56,0,11,13,13,15,15,17,17,18,18,19,19,20,20,21,21,23,23,33,33,35,35,36,36,37,37,38],\"userEdges\":[]}]},{\"name\":\"鲸鱼_拷贝\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/鲸鱼_拷贝\",\"width\":362,\"height\":1093,\"vertices\":[-171.75,794.35,-156.45,793.55,-153.15,785.25,-147.1,791.9,-138.6,784,-133.8,789.85,-124.9,783.4,-118.25,785.7,-113.25,779.25,-94.8,767.4,-87.95,769.45,-77.75,758.25,-72.15,759.7,-62.4,748.9,-56.6,750.55,-35.6,737.05,-24.4,722.15,-16.7,705.55,-8.4,684.15,-1.95,666.7,2.4,652.2,8.45,639.1,13.2,642,20.85,661.1,27.5,683.7,37.05,706.8,50.95,726.9,68.6,743.3,78.55,748.1,83.1,746.65,88.75,754.95,94.15,758.7,98.5,757.05,109.3,768.65,115.75,766.8,124.9,778.6,131.5,780.9,136.3,779.25,141.3,784.45,146.9,783.2,155,789.4,159.55,785.9,168.5,792.3,175.15,787.95,184.25,795.85,189.05,791.3,189.5,787.1,185.05,777.25,178.8,762.4,168.3,734.3,159.75,709.6,151.15,685.55,142.4,663.55,132.2,643.25,118.65,619.65,104.2,602.5,100.3,596.9,86.45,588.5,79.55,581.7,68.7,573.6,56.2,561.85,49,548.9,45.35,536.9,45.8,522.75,48.1,510.9,49.6,489.35,52.6,469.8,55.45,451.85,59.05,430.05,61.45,413.65,64.2,400.9,68.4,380.9,70.75,367.5,74.55,350.35,76.95,335.15,78.75,324.75,81.95,311.05,85.7,292.85,89.15,280.2,92.9,259.9,96.5,243.8,99.65,227.85,103.15,210.7,105.4,196.3,108.25,176.6,110.05,167.25,111.25,153.4,114.15,138.8,116.1,123.9,117.3,109.9,117.1,91.85,117.35,72.05,119.35,50.75,119.4,24.3,120.15,4.15,118.8,-13.6,117.75,-34.05,116.1,-51.8,114.75,-71.1,110.35,-102.95,107.5,-118.3,104.8,-129.6,94.7,-150.05,92,-156.1,87.2,-164.7,79.2,-178.35,76.35,-186.65,71.25,-197.6,64.2,-211.3,60.25,-223.4,51.05,-237.15,41.6,-248,36.1,-254.95,26.05,-266.05,15.45,-274.4,4.2,-278.95,-3.1,-277.9,-13.8,-278.5,-25.45,-273.75,-36.05,-264.9,-46.15,-253.65,-53.55,-243.85,-62.3,-230.1,-67.95,-220.25,-72.25,-210.15,-77.55,-199.3,-81.45,-191,-83.1,-185.7,-86.5,-175.8,-91.55,-169.5,-94.05,-162.95,-98.85,-152.35,-103.8,-143.8,-108.45,-134.8,-111.7,-125.5,-114.65,-111.35,-117.15,-99.2,-118.8,-85.45,-119.4,-76.9,-120.95,-67.2,-121.85,-51.95,-122.35,-34.15,-122.45,-10.3,-120.95,16.7,-120.3,47,-118.55,71.35,-117.25,94.1,-114.1,119.55,-110.8,143.9,-106.55,167.4,-102.8,190.35,-99.15,209,-94.45,228.9,-89.15,253.95,-83.5,275.1,-77.15,300.5,-71.95,321.4,-65.65,349.55,-60.6,373.15,-54.8,399.15,-48.5,424.9,-41.95,455.55,-37.7,474.75,-34.75,492.9,-33.85,515.7,-33,536.15,-34.75,552.95,-39.3,561.15,-46.1,567.3,-55.95,575.65,-66.35,584.15,-75.15,591.7,-85.2,600.9,-96,613.4,-103.4,626.5,-110.05,637.75,-117.15,651.4,-126,670.2,-133.8,690.85,-138.95,706.15,-123.65,-19.77,-125.27,9.08,-126.74,35.37,122.43,17.12,125.45,51.7,128.76,89.76,131.13,116.91],\"uvs\":[0.00953,0.99579,0.03881,0.99501,0.04793,0.98742,0.06464,0.9935,0.08812,0.98628,0.10138,0.99163,0.12597,0.98573,0.14434,0.98783,0.15815,0.98193,0.20912,0.97109,0.22804,0.97296,0.25622,0.96272,0.27169,0.96404,0.29862,0.95416,0.31464,0.95567,0.37265,0.94332,0.40359,0.92969,0.42486,0.9145,0.44779,0.89492,0.46561,0.87896,0.47762,0.86569,0.49434,0.85371,0.50746,0.85636,0.52859,0.87383,0.54696,0.89451,0.57334,0.91565,0.61174,0.93403,0.6605,0.94904,0.68798,0.95343,0.70055,0.9521,0.71616,0.9597,0.73108,0.96313,0.74309,0.96162,0.77293,0.97223,0.79075,0.97054,0.81602,0.98134,0.83425,0.98344,0.84751,0.98193,0.86133,0.98669,0.8768,0.98554,0.89917,0.99122,0.91174,0.98801,0.93646,0.99387,0.95483,0.98989,0.97997,0.99712,0.99323,0.99296,0.99448,0.98911,0.98218,0.9801,0.96492,0.96651,0.93591,0.94081,0.91229,0.91821,0.88854,0.8962,0.86436,0.87608,0.83619,0.8575,0.79876,0.83591,0.75884,0.82022,0.74807,0.8151,0.70981,0.80741,0.69075,0.80119,0.66077,0.79378,0.62624,0.78303,0.60635,0.77118,0.59627,0.7602,0.59751,0.74726,0.60387,0.73641,0.60801,0.7167,0.6163,0.69881,0.62417,0.68239,0.63412,0.66244,0.64075,0.64744,0.64834,0.63577,0.65994,0.61747,0.66644,0.60522,0.67693,0.58952,0.68356,0.57562,0.68854,0.5661,0.69738,0.55357,0.70773,0.53692,0.71727,0.52534,0.72762,0.50677,0.73757,0.49204,0.74627,0.47745,0.75594,0.46176,0.76215,0.44858,0.77003,0.43056,0.775,0.422,0.77831,0.40933,0.78633,0.39597,0.79171,0.38234,0.79503,0.36953,0.79448,0.35302,0.79572,0.33472,0.80069,0.31542,0.80083,0.29122,0.8029,0.27278,0.79917,0.25654,0.79627,0.23783,0.79171,0.22159,0.78798,0.20393,0.77583,0.17479,0.76796,0.16075,0.7605,0.15041,0.7326,0.1317,0.72514,0.12617,0.71188,0.1183,0.68978,0.10581,0.68191,0.09822,0.66782,0.0882,0.64834,0.07566,0.63743,0.06459,0.61202,0.05201,0.58591,0.04209,0.57072,0.03573,0.54296,0.02557,0.51367,0.01793,0.4826,0.01377,0.46243,0.01473,0.43287,0.01418,0.40069,0.01853,0.37141,0.02662,0.34351,0.03692,0.32307,0.04588,0.2989,0.05846,0.28329,0.06747,0.27141,0.07672,0.25677,0.08664,0.24599,0.09424,0.24144,0.09909,0.23204,0.10814,0.21809,0.11391,0.21119,0.1199,0.19793,0.1296,0.18425,0.13742,0.17141,0.14565,0.16243,0.15416,0.15428,0.16711,0.14738,0.17823,0.14282,0.19081,0.14116,0.19863,0.13688,0.2075,0.13439,0.22145,0.13301,0.23774,0.13273,0.25956,0.13688,0.28426,0.13867,0.31199,0.14351,0.33426,0.1471,0.35508,0.1558,0.37836,0.16492,0.40064,0.17666,0.42214,0.18702,0.44314,0.1971,0.4602,0.21008,0.47841,0.22472,0.50133,0.24033,0.52068,0.25787,0.54392,0.27224,0.56304,0.28964,0.58879,0.30359,0.61038,0.31961,0.63417,0.33702,0.65773,0.35511,0.68577,0.36685,0.70334,0.375,0.71995,0.37749,0.74081,0.37983,0.75952,0.375,0.77489,0.36243,0.78239,0.34365,0.78801,0.31644,0.79565,0.28771,0.80343,0.2634,0.81034,0.23564,0.81876,0.2058,0.83019,0.18536,0.84218,0.16699,0.85247,0.14738,0.86496,0.12293,0.88216,0.10138,0.90105,0.08715,0.91505,0.12942,0.2509,0.12496,0.27729,0.12089,0.30135,0.80921,0.28464,0.81753,0.31629,0.82669,0.35111,0.83322,0.37595],\"triangles\":[3,1,5,133,126,123,112,111,110,69,68,70,109,108,107,109,107,106,75,74,76,74,73,76,106,105,104,77,76,78,106,104,103,109,106,103,79,78,80,64,58,56,65,64,56,66,65,56,67,66,56,68,67,56,109,103,101,103,102,101,98,97,96,73,72,54,72,71,54,68,56,54,70,68,54,56,55,54,71,70,54,98,96,183,95,94,183,96,95,183,33,10,35,10,7,35,35,7,36,85,84,186,84,83,186,87,86,186,86,85,186,82,81,186,83,82,186,73,54,53,76,73,53,78,76,53,36,7,38,78,53,52,80,78,52,81,80,52,186,81,52,186,52,51,38,7,40,7,5,40,186,51,50,40,5,42,1,0,44,42,5,44,5,1,44,50,49,46,186,50,46,48,47,46,49,48,46,43,45,46,47,43,46,43,44,45,12,10,33,48,43,47,43,42,44,64,59,58,49,39,48,39,41,48,41,43,48,58,57,56,31,12,33,183,93,184,37,39,49,41,42,43,41,40,42,50,34,49,34,37,49,64,63,59,14,12,31,184,91,185,39,40,41,51,29,50,29,32,50,32,34,50,39,38,40,63,61,59,52,29,51,61,60,59,30,14,31,34,35,37,26,29,52,37,38,39,27,14,30,88,87,186,185,89,186,53,25,52,25,26,52,37,36,38,93,92,184,90,89,185,24,25,53,35,36,37,23,24,54,54,24,53,92,91,184,91,90,185,89,88,186,63,62,61,34,33,35,133,129,126,55,23,54,94,93,183,26,27,29,32,33,34,143,94,95,94,143,93,144,92,93,143,144,93,144,91,92,96,142,95,142,143,95,28,27,30,97,141,96,141,142,96,90,147,89,144,145,91,146,90,91,145,146,91,147,88,89,15,14,27,146,147,90,98,139,97,139,140,97,140,141,97,148,87,88,147,148,88,138,139,98,57,23,55,99,138,98,148,86,87,22,23,57,135,136,99,136,137,99,137,138,99,149,85,86,148,149,86,102,131,100,131,135,100,149,84,85,100,135,99,29,30,32,149,150,84,32,31,33,101,102,100,150,83,84,56,57,55,151,82,83,150,151,83,151,152,82,152,81,82,132,135,131,103,104,102,104,131,102,30,31,32,152,80,81,128,130,104,130,131,104,152,153,80,105,128,104,58,22,57,153,79,80,153,154,79,154,78,79,59,22,58,154,155,77,154,77,78,29,28,30,27,28,29,155,76,77,155,156,76,26,15,27,107,127,106,106,127,105,127,128,105,156,75,76,126,125,123,125,127,107,21,22,59,156,74,75,60,21,59,108,125,107,157,73,74,156,157,74,124,125,108,157,72,73,158,71,72,157,158,72,158,159,71,123,124,108,159,70,71,159,69,70,109,110,108,110,122,108,122,123,108,16,15,26,111,122,110,167,21,60,160,68,69,159,160,69,166,167,60,121,122,111,61,166,60,161,67,68,160,161,68,161,66,67,134,135,132,25,16,26,162,65,66,161,162,66,120,121,111,162,163,65,112,120,111,163,64,65,62,166,61,164,63,64,163,164,64,164,165,63,63,165,62,165,166,62,113,119,112,119,120,112,17,16,25,117,116,115,116,119,113,24,17,25,18,17,24,133,134,132,118,119,116,167,168,21,114,116,113,23,19,24,19,18,24,126,127,125,168,169,21,115,116,114,22,20,23,20,19,23,117,118,116,169,170,21,21,20,22,171,20,21,170,171,21,171,172,20,173,19,20,172,173,20,174,18,19,173,174,19,174,175,18,176,17,18,175,176,18,180,142,141,176,177,17,177,13,16,177,16,17,13,15,16,177,178,13,164,169,165,169,168,165,168,166,165,168,167,166,170,169,164,162,171,163,170,164,163,171,170,163,13,14,15,172,171,162,161,172,162,133,132,129,173,172,160,160,172,161,129,130,128,178,179,13,159,173,160,179,11,13,125,124,123,174,173,158,13,12,14,158,173,159,157,175,158,175,174,158,8,7,10,155,176,156,176,175,156,156,175,157,11,12,13,179,9,11,154,176,155,153,177,154,177,176,154,11,10,12,151,177,152,152,177,153,178,177,151,9,10,11,9,8,10,129,127,126,142,181,143,129,128,127,150,178,151,182,144,143,179,178,150,132,130,129,179,8,9,132,131,130,148,179,149,149,179,150,179,6,8,0,179,148,179,4,6,147,0,148,182,0,147,146,182,147,179,2,4,6,7,8,6,5,7,182,146,145,144,182,145,139,138,137,181,182,143,140,180,141,180,181,142,4,5,6,0,2,179,4,3,5,2,3,4,2,1,3,0,1,2],\"weights\":[2,15,0.989402,13,0.010598,2,15,0.99712,13,0.00288,2,15,0.987338,13,0.012662,2,15,0.983618,13,0.016382,2,15,0.968205,13,0.031795,2,15,0.953838,13,0.046162,2,15,0.929814,13,0.070186,2,15,0.920829,13,0.079171,4,15,0.788405,13,0.13703,11,0.037928,12,0.036636,4,15,0.733655,13,0.170032,11,0.048505,12,0.047808,4,15,0.675501,13,0.214639,11,0.055283,12,0.054577,4,15,0.630866,13,0.239771,12,0.064957,11,0.064406,4,15,0.567536,13,0.288398,12,0.072552,11,0.071515,4,15,0.527611,13,0.305643,12,0.085215,11,0.08153,4,15,0.410391,13,0.359975,12,0.121657,11,0.107976,4,13,0.371378,15,0.35976,12,0.144539,11,0.124324,4,13,0.370005,15,0.310942,12,0.171575,11,0.147477,4,13,0.361765,12,0.224215,15,0.217523,11,0.196497,4,13,0.33103,12,0.281887,11,0.254244,15,0.132839,4,12,0.32721,11,0.314725,13,0.28233,15,0.075735,4,12,0.3966,11,0.379184,13,0.188822,15,0.035394,4,12,0.475269,11,0.329196,13,0.15902,14,0.036515,4,12,0.536618,11,0.225225,13,0.15011,14,0.088047,4,12,0.504588,14,0.185232,11,0.169381,13,0.140799,4,12,0.459193,14,0.303945,11,0.123161,13,0.113701,4,12,0.432132,14,0.395034,11,0.089029,13,0.083806,4,14,0.485233,12,0.377091,11,0.071544,13,0.066132,4,14,0.548959,12,0.333435,11,0.061777,13,0.055829,4,14,0.583306,12,0.313865,11,0.054596,13,0.048234,4,14,0.620755,12,0.276776,11,0.054077,13,0.048393,4,14,0.658449,12,0.246638,11,0.050168,13,0.044745,4,14,0.696965,12,0.221447,11,0.043484,13,0.038103,3,14,0.783519,12,0.176089,11,0.040392,3,14,0.831487,12,0.13751,11,0.031004,2,14,0.885007,12,0.114993,2,14,0.910346,12,0.089654,2,14,0.932202,12,0.067798,2,14,0.940669,12,0.059331,2,14,0.959486,12,0.040514,2,14,0.970299,12,0.029701,2,14,0.98315,12,0.01685,2,14,0.988678,12,0.011322,2,14,0.99655,12,0.00345,2,14,0.9866,12,0.0134,2,14,0.987803,12,0.012197,2,14,0.996024,12,0.003976,2,14,0.988916,12,0.011084,2,14,0.94494,12,0.05506,3,14,0.824626,12,0.147294,11,0.02808,4,14,0.645349,12,0.275637,11,0.045243,13,0.033772,4,14,0.514174,12,0.376998,11,0.063317,13,0.045511,4,14,0.427154,12,0.419688,11,0.090631,13,0.062527,4,12,0.43478,14,0.317902,11,0.149358,13,0.09796,4,12,0.440584,14,0.227501,11,0.204098,13,0.127818,4,12,0.435173,11,0.22283,14,0.204457,13,0.13754,4,12,0.438515,11,0.263817,13,0.150428,14,0.14724,4,12,0.41251,11,0.288457,13,0.154443,10,0.144589,4,12,0.370864,11,0.322112,10,0.156313,13,0.15071,4,11,0.390489,12,0.281099,10,0.188933,13,0.139479,4,11,0.446658,10,0.251316,12,0.184823,13,0.117203,4,11,0.458036,10,0.327144,12,0.123023,13,0.091797,4,11,0.425815,10,0.415721,12,0.086899,13,0.071565,4,10,0.4544,11,0.406087,12,0.074997,13,0.064517,4,10,0.508623,11,0.33983,9,0.088538,12,0.063009,4,10,0.535738,11,0.257194,9,0.149645,12,0.057424,4,10,0.527187,9,0.229326,11,0.192632,12,0.050855,4,10,0.47226,9,0.339787,11,0.131307,7,0.056646,4,10,0.425749,9,0.407334,11,0.099019,7,0.067898,4,9,0.43366,10,0.400098,11,0.084336,7,0.081906,4,9,0.431221,10,0.379119,7,0.117646,11,0.072014,4,9,0.432363,10,0.348867,7,0.152068,11,0.066702,4,9,0.430651,10,0.297674,7,0.209712,11,0.061964,4,9,0.422041,7,0.263592,10,0.248573,5,0.065794,4,9,0.4103,7,0.298165,10,0.216954,5,0.07458,4,9,0.392194,7,0.336046,10,0.183012,5,0.088748,4,9,0.374312,7,0.364736,10,0.149246,5,0.111706,4,7,0.366843,9,0.365882,10,0.133843,5,0.133432,4,7,0.364864,9,0.344655,5,0.175719,10,0.114761,4,7,0.364537,9,0.314449,5,0.216755,10,0.104259,4,7,0.364526,9,0.280972,5,0.259284,10,0.095218,3,7,0.398777,5,0.331187,9,0.270036,4,7,0.354729,5,0.322887,9,0.21432,2,0.108065,4,7,0.348462,5,0.339186,9,0.180484,2,0.131867,4,7,0.346294,5,0.340006,9,0.167951,2,0.14575,4,5,0.341444,7,0.340026,2,0.167671,9,0.150859,4,5,0.342496,7,0.324256,2,0.195667,9,0.137582,4,5,0.345172,7,0.303534,2,0.22601,9,0.125284,3,5,0.393561,7,0.317794,2,0.288644,3,1,0.246062,2,0.391512,5,0.362426,3,1,0.279804,2,0.391813,5,0.328383,3,1,0.321739,2,0.393012,5,0.285249,3,1,0.356613,2,0.395479,5,0.247908,3,1,0.38826,2,0.399868,5,0.211872,3,1,0.421531,2,0.414271,5,0.164198,3,1,0.44172,2,0.411489,5,0.146791,2,1,0.533593,2,0.466407,2,1,0.580666,2,0.419334,2,1,0.598095,2,0.401905,2,1,0.627215,2,0.372785,2,1,0.680232,2,0.319768,2,1,0.708731,2,0.291269,2,1,0.750013,2,0.249987,2,1,0.801718,2,0.198282,2,1,0.835872,2,0.164128,2,1,0.884024,2,0.115976,2,1,0.921841,2,0.078159,2,1,0.940657,2,0.059343,2,1,0.966984,2,0.033016,2,1,0.984851,2,0.015149,2,1,0.994392,2,0.005608,2,1,0.998025,2,0.001975,2,1,0.997398,2,0.002602,2,1,0.991021,2,0.008979,2,1,0.976098,2,0.023902,2,1,0.952203,2,0.047797,2,1,0.927363,2,0.072637,2,1,0.887637,2,0.112363,2,1,0.855359,2,0.144641,2,1,0.823233,2,0.176767,2,1,0.782655,2,0.217345,2,1,0.750284,2,0.249716,2,1,0.731832,2,0.268168,2,1,0.695592,2,0.304408,2,1,0.664863,2,0.335137,2,1,0.641452,2,0.358548,2,1,0.604523,2,0.395477,2,1,0.576788,2,0.423212,2,1,0.553007,2,0.446993,2,1,0.534316,2,0.465684,3,1,0.440941,2,0.416324,5,0.142734,3,1,0.424722,2,0.417816,5,0.157462,3,1,0.411936,2,0.412446,5,0.175618,3,1,0.403239,2,0.408303,5,0.188458,3,1,0.389662,2,0.40443,5,0.205907,3,1,0.36363,2,0.401768,5,0.234602,3,1,0.327442,2,0.400972,5,0.271586,3,1,0.275522,2,0.401248,5,0.32323,4,1,0.193032,2,0.354688,5,0.328801,7,0.123478,4,1,0.14706,2,0.351231,5,0.345159,7,0.15655,4,1,0.119981,5,0.349954,2,0.336983,7,0.193082,3,5,0.39762,2,0.338748,7,0.263632,3,5,0.401644,7,0.319195,2,0.279161,4,5,0.353922,7,0.322584,2,0.194163,9,0.129331,4,5,0.353033,7,0.344597,9,0.152782,2,0.149587,4,7,0.349453,5,0.346902,9,0.186197,2,0.117448,4,7,0.357359,5,0.322787,9,0.222666,2,0.097188,4,7,0.364149,5,0.276716,9,0.267288,10,0.091848,4,7,0.362895,9,0.32224,5,0.206173,10,0.108692,4,7,0.363029,9,0.357633,5,0.152987,10,0.126351,4,9,0.373533,7,0.357297,10,0.161748,5,0.107421,4,9,0.39254,7,0.314695,10,0.210702,5,0.082063,4,9,0.410317,10,0.308517,7,0.219269,11,0.061897,4,9,0.397653,10,0.391642,7,0.140872,11,0.069833,4,10,0.439207,9,0.390038,7,0.08635,11,0.084404,4,10,0.493844,9,0.329542,11,0.11832,7,0.058294,4,10,0.557827,11,0.199422,9,0.188184,13,0.054566,4,10,0.550917,11,0.2757,9,0.113303,13,0.060079,4,10,0.496274,11,0.372185,9,0.066656,13,0.064885,4,11,0.458219,10,0.408101,13,0.084035,12,0.049645,4,11,0.478739,10,0.304132,13,0.146019,12,0.07111,4,11,0.443468,13,0.260552,10,0.1998,12,0.09618,4,11,0.376983,13,0.354146,10,0.160656,12,0.108215,4,13,0.426145,11,0.316669,10,0.14086,12,0.116327,4,13,0.482529,11,0.266391,12,0.126056,10,0.125024,4,13,0.510252,11,0.234456,12,0.132463,15,0.122829,4,13,0.507512,11,0.203586,15,0.16125,12,0.127651,4,13,0.4956,15,0.215023,11,0.172162,12,0.117215,4,13,0.476007,15,0.288292,11,0.136915,12,0.098785,4,13,0.459423,15,0.357684,11,0.10472,12,0.078174,4,13,0.438854,15,0.416911,11,0.081557,12,0.062678,4,15,0.477746,13,0.410849,11,0.062146,12,0.049259,4,15,0.575796,13,0.33515,11,0.048879,12,0.040175,4,15,0.721556,13,0.212627,11,0.035602,12,0.030215,4,15,0.820998,13,0.131489,11,0.025467,12,0.022046,3,15,0.925766,13,0.060165,11,0.014069,2,15,0.972458,13,0.027542,2,15,0.988413,13,0.011587,2,15,0.995291,13,0.004709,2,15,0.994262,13,0.005738,2,15,0.989141,13,0.010859,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,15,0.984074,13,0.015926],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[1,0.012211,0.999925,-0.999925,0.012211,-7.75,-270.75,2,0.00858,0.999963,-0.999963,0.00858,-5.5,-86.2,5,0.017458,0.999848,-0.999848,0.017458,-3.3,44.2,7,0.030607,0.999531,-0.999531,0.030607,0,172.4,9,0.030457,0.999536,-0.999536,0.030457,3.3,284,10,0.018962,0.99982,-0.99982,0.018962,3.35,393.45,11,0.04041,0.999183,-0.999183,0.04041,3.7,518.45,12,0.65987,0.75138,-0.75138,0.65987,25.8,613.3,13,-0.598607,0.801043,-0.801043,-0.598607,-18.4,602.25,14,0.661259,0.750157,-0.750157,0.661259,101.3,694.35,15,-0.613566,0.789644,-0.789644,-0.613566,-81.95,683.3],\"edges\":[46,45,45,44,44,0,115,114,114,113,113,112,112,110,110,109,109,101,101,100,140,139,139,137,137,136,136,135,135,134,134,133,133,123,123,122,122,121,121,120,120,119,119,118,118,117,117,115,100,99,99,98,180,140,181,180,182,181,98,183,183,184,184,185,185,186,186,46,0,182],\"userEdges\":[]}]}]}],\"animation\":[{\"duration\":16,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"鲸鱼_拷贝1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-3.55},{\"duration\":8}]},{\"name\":\"8左翅\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":-16.92,\"y\":-6.52},{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":12.44,\"y\":-1.97},{\"duration\":0}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":42.26},{\"duration\":4,\"tweenEasing\":0,\"rotate\":9.17},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-7.21},{\"duration\":0}]},{\"name\":\"8右翅\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":-15.63,\"y\":4.14},{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"x\":0.17,\"y\":6.24},{\"duration\":0}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-36.68},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.19},{\"duration\":4,\"tweenEasing\":0,\"rotate\":1.91},{\"duration\":0}]},{\"name\":\"鲸鱼_拷贝2\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":2.7},{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.69},{\"duration\":0}]},{\"name\":\"8左翅1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.12},{\"duration\":4,\"tweenEasing\":0,\"rotate\":27.75},{\"duration\":4,\"tweenEasing\":0,\"rotate\":9.33},{\"duration\":0}]},{\"name\":\"鲸鱼_拷贝3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-9.6},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-2.61},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.68},{\"duration\":0}]},{\"name\":\"8右翅1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":2.99},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-27.34},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-6.68},{\"duration\":0}]},{\"name\":\"鲸鱼_拷贝4\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.82},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-0.41},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.08},{\"duration\":0}]},{\"name\":\"鲸鱼_拷贝5\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-9.58},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-5.57},{\"duration\":4,\"tweenEasing\":0,\"rotate\":7.4},{\"duration\":0}]},{\"name\":\"鲸鱼_拷贝6\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-13.4},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-4.34},{\"duration\":4,\"tweenEasing\":0,\"rotate\":10.76},{\"duration\":0}]},{\"name\":\"鲸鱼_拷贝7\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.72},{\"duration\":0}]},{\"name\":\"鲸鱼_拷贝9\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":5.89},{\"duration\":0}]},{\"name\":\"鲸鱼_拷贝8\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":23.71},{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-16.36},{\"duration\":0}]},{\"name\":\"鲸鱼_拷贝10\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":25.85},{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.98},{\"duration\":0}]}],\"ffd\":[{\"name\":\"动画拆/8左翅\",\"slot\":\"8左翅\",\"frame\":[{\"duration\":8,\"tweenEasing\":0,\"offset\":96,\"vertices\":[-0.4]},{\"duration\":8,\"tweenEasing\":0,\"vertices\":[-5.07,-1.5,-5.98,-1.67,-1.73,-1,-1.07,-0.72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.4,0,0,0,0,0,0,0,0,0,0,0,0,0,-2.67,-1.96,-3.51,-0.81]},{\"duration\":0,\"offset\":96,\"vertices\":[-0.4]}]},{\"name\":\"动画拆/8右翅\",\"slot\":\"8右翅\",\"frame\":[{\"duration\":8,\"tweenEasing\":0,\"offset\":140,\"vertices\":[0.2,-0.1]},{\"duration\":8,\"tweenEasing\":0,\"vertices\":[3.05,-0.6,2.04,0.93,2.55,1.11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.59,-0.16,0.82,-0.03,0.82,0.75]},{\"duration\":0,\"offset\":140,\"vertices\":[0.2,-0.1]}]},{\"name\":\"动画拆/鲸鱼_拷贝\",\"slot\":\"鲸鱼_拷贝\",\"frame\":[{\"duration\":4,\"tweenEasing\":0,\"offset\":172,\"vertices\":[-0.5,-0.35]},{\"duration\":4,\"tweenEasing\":0,\"vertices\":[-0.92,-2.89,-2.84,-2.35,-0.98,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.71,-0.27,-3.24,1.88,-7.4,3.41,-7.85,5.36,-7.4,5.66,-4.18,4.41,-2.14,1.12,-0.34,0.28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2.74,-1.02,-0.64,-0.25,0,0,0,0,-0.5,-0.35,0,0,0,0,0,0,0,0,0,0,0,0,1.06,0.33,-1.06,1.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.51,-0.76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.95,0.17,1.49,0.93,1.31,4.15,2.49,1.75,2.59,0,1.35,2.17]},{\"duration\":8,\"offset\":172,\"vertices\":[-0.5,-0.35]}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[[4,"qingwa"],[7,"qingwa",1,[-5,-6],[[14,false,-2],[2,1,-3,[[[0,-40.2,-51.6],[0,-32.8,-71.8],[0,-20.3,-88.9],[0,-6.1,-104.9],[0,5.7,-105],[0,12.6,-97],[0,28.6,-75.4],[0,36.5,-56.8],[0,35.6,-23.5],[0,30.4,-2.7],[0,32,9.2],[0,33.6,19.8],[0,38,28.2],[0,43.5,27.9],[0,56.2,32.5],[0,63.5,41.7],[0,62.4,56.8],[0,50.1,68.4],[0,44.5,69.7],[0,45.7,75.5],[0,47.9,86.8],[0,41.1,98.2],[0,31.7,104.4],[0,20.3,101.1],[0,12.5,103.7],[0,-8.2,105.1],[0,-21.9,100.4],[0,-32.8,103.9],[0,-44.5,98.3],[0,-48.9,83.3],[0,-46.3,70.5],[0,-55.6,68.3],[0,-64.4,57.4],[0,-65.9,45.5],[0,-57.2,33],[0,-41.9,28.3],[0,-36.2,19.9],[0,-30,0.9],[0,-37.6,-21]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[11,666,43.8,-4,[0,-2,58]]],[1,-1],[5,310,426],[0,0,0,0,0,0,1,0.45,0.45,1]],[20,"pos",1,[[19,1000,500,-7],[15,-8]],[0,"c5ux7x5/5NRpqMm4871VT8",1]],[5,"qingwa",1,1,[[3,"Armature","newAnimation",0,"5d197404-68b4-4b7b-a6d0-43e7b4dc4c1c#5ee29015-a6ac-46cf-9265-5a44a2892075",0.7,-9,[0],1,2]],[0,"c7kg9LQX9F5ZlrCTJJVCcV",1],[5,310.54,426.31]]],0,[0,2,1,0,0,1,0,0,1,0,0,1,0,-1,3,0,-2,2,0,0,2,0,0,2,0,0,3,0,5,1,9],[0,0,0],[-1,3,4],[0,8,9]],[[[9,"haigui_ske_1_tex","{\"SubTexture\":[{\"width\":218,\"y\":285,\"height\":123,\"name\":\"动画拆/右前\",\"x\":1},{\"width\":60,\"y\":145,\"height\":99,\"name\":\"动画拆/右后\",\"x\":269},{\"width\":218,\"y\":285,\"height\":123,\"name\":\"动画拆/左前\",\"x\":221},{\"width\":60,\"y\":145,\"height\":99,\"name\":\"动画拆/左后\",\"x\":331},{\"width\":96,\"y\":1,\"height\":142,\"name\":\"动画拆/gui头\",\"x\":269},{\"width\":266,\"y\":1,\"height\":282,\"name\":\"动画拆/壳\",\"x\":1}],\"width\":512,\"imagePath\":\"haigui_ske_1_tex.png\",\"height\":512,\"name\":\"haigui_ske_1\"}"]],0,0,[0],[7],[140]],[[[9,"xiaojiny_tex","{\"SubTexture\":[{\"width\":63,\"y\":248,\"height\":118,\"name\":\"动画拆/左翅\",\"x\":374},{\"width\":63,\"y\":248,\"height\":118,\"name\":\"动画拆/右翅\",\"x\":309},{\"width\":306,\"y\":1,\"height\":368,\"name\":\"动画拆/xiao尾巴\",\"x\":1},{\"width\":175,\"y\":1,\"height\":245,\"name\":\"动画拆/金鱼身\",\"x\":309},{\"width\":75,\"y\":1,\"height\":269,\"name\":\"动画拆/背\",\"x\":486}],\"width\":1024,\"height\":512,\"name\":\"xiaojiny\",\"imagePath\":\"xiaojiny_tex.png\"}"]],0,0,[0],[7],[141]],[[[4,"replay"],[13,"replay",2,[[6,-2,[0],1]],[1,-1],[5,321,321]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,29]],[[{"name":"blood1","rect":[441,793,193,180],"offset":[0,0],"originalSize":[193,180],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"qipao3","rect":[789,351,83,77],"offset":[0,0],"originalSize":[83,77],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"qipao1","rect":[868,193,25,27],"offset":[0,0],"originalSize":[25,27],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[[4,"star"],[13,"star",1,[[18,0,-2,[0],1]],[1,-1],[5,50,50]]],0,[0,2,1,0,0,1,0,5,1,2],[0,0],[-1,6],[0,35]],[[[8,"pamlong_ske_1_ske_ske","{\"frameRate\":24,\"name\":\"pamlong_ske_1_ske\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-154.25,\"y\":-471.93,\"width\":315.95,\"height\":2008.74},\"bone\":[{\"name\":\"root\",\"transform\":{\"x\":0.8908,\"y\":35.6317}},{\"length\":167,\"name\":\"龙头\",\"parent\":\"root\",\"transform\":{\"x\":5.7592,\"y\":-314.6817,\"skX\":-91.0404,\"skY\":-91.0404}},{\"length\":25,\"name\":\"10右须1\",\"parent\":\"龙头\",\"transform\":{\"x\":172.6638,\"y\":25.5893,\"skX\":97.0727,\"skY\":97.0727}},{\"length\":22,\"name\":\"10左须1\",\"parent\":\"龙头\",\"transform\":{\"x\":173.5099,\"y\":-23.7535,\"skX\":-94.7452,\"skY\":-94.7452}},{\"length\":111,\"name\":\"龙身\",\"parent\":\"龙头\",\"transform\":{\"x\":-22.9135,\"y\":-2.2164,\"skX\":-178.3153,\"skY\":-178.3153}},{\"length\":70,\"name\":\"10右须\",\"parent\":\"龙头\",\"transform\":{\"x\":97.1896,\"y\":51.0231,\"skX\":151.1599,\"skY\":151.1599}},{\"length\":73,\"name\":\"10左须\",\"parent\":\"龙头\",\"transform\":{\"x\":99.1714,\"y\":-58.1089,\"skX\":-153.6898,\"skY\":-153.6898}},{\"length\":37,\"name\":\"龙头2\",\"parent\":\"龙头\",\"transform\":{\"x\":-1.5211,\"y\":20.4257,\"skX\":-172.1779,\"skY\":-172.1779}},{\"length\":47,\"name\":\"龙头1\",\"parent\":\"龙头\",\"transform\":{\"x\":12.4611,\"y\":-22.5275,\"skX\":-178.1171,\"skY\":-178.1171}},{\"length\":87,\"name\":\"龙身1\",\"parent\":\"龙身\",\"transform\":{\"x\":122.5922,\"y\":-1.3787,\"skX\":-0.2519,\"skY\":-0.2519}},{\"length\":22,\"name\":\"10左须2\",\"parent\":\"10左须1\",\"transform\":{\"x\":23.2834,\"y\":0.3489,\"skX\":-17.5485,\"skY\":-17.5485}},{\"length\":21,\"name\":\"10右须2\",\"parent\":\"10右须1\",\"transform\":{\"x\":26.0197,\"y\":0.7196,\"skX\":18.687,\"skY\":18.687}},{\"length\":87,\"name\":\"龙身2\",\"parent\":\"龙身1\",\"transform\":{\"x\":96.6436,\"y\":-1.262,\"skX\":-0.7849,\"skY\":-0.7849}},{\"length\":31,\"name\":\"右前爪\",\"parent\":\"龙身1\",\"transform\":{\"x\":59.5106,\"y\":-49.7588,\"skX\":-93.7377,\"skY\":-93.7377}},{\"length\":20,\"name\":\"10右须3\",\"parent\":\"10右须2\",\"transform\":{\"x\":22.6922,\"y\":-0.2084,\"skX\":22.2221,\"skY\":22.2221}},{\"length\":33,\"name\":\"左前爪\",\"parent\":\"龙身1\",\"transform\":{\"x\":48.5906,\"y\":49.5684,\"skX\":73.7678,\"skY\":73.7678}},{\"length\":20,\"name\":\"10左须3\",\"parent\":\"10左须2\",\"transform\":{\"x\":25.3822,\"y\":-0.2683,\"skX\":-21.666,\"skY\":-21.666}},{\"length\":34,\"name\":\"右前爪1\",\"parent\":\"右前爪\",\"transform\":{\"x\":40.8384,\"y\":0.5339,\"skX\":-71.4575,\"skY\":-71.4575}},{\"length\":21,\"name\":\"10左须4\",\"parent\":\"10左须3\",\"transform\":{\"x\":23.0517,\"y\":-0.2121,\"skX\":-19.2264,\"skY\":-19.2264}},{\"length\":24,\"name\":\"左前爪1\",\"parent\":\"左前爪\",\"transform\":{\"x\":40.1692,\"y\":10.0975,\"skX\":83.7542,\"skY\":83.7542}},{\"length\":88,\"name\":\"龙身3\",\"parent\":\"龙身2\",\"transform\":{\"x\":96.0477,\"y\":0.6579,\"skX\":0.3924,\"skY\":0.3924}},{\"length\":21,\"name\":\"10右须4\",\"parent\":\"10右须3\",\"transform\":{\"x\":21.8143,\"y\":0.6756,\"skX\":16.6696,\"skY\":16.6696}},{\"length\":79,\"name\":\"龙身4\",\"parent\":\"龙身3\",\"transform\":{\"x\":102.7,\"y\":1.25,\"skX\":-1.3289,\"skY\":-1.3289}},{\"length\":20,\"name\":\"10左须5\",\"parent\":\"10左须4\",\"transform\":{\"x\":22.2312,\"y\":-0.1849,\"skX\":-5.2504,\"skY\":-5.2504}},{\"length\":27,\"name\":\"左前爪2\",\"parent\":\"左前爪1\",\"transform\":{\"x\":36.6128,\"y\":6.9781,\"skX\":18.2229,\"skY\":18.2229}},{\"length\":34,\"name\":\"右前爪2\",\"parent\":\"右前爪1\",\"transform\":{\"x\":50.6977,\"y\":-3.7201,\"skX\":-7.0201,\"skY\":-7.0201}},{\"length\":21,\"name\":\"10右须5\",\"parent\":\"10右须4\",\"transform\":{\"x\":22.83,\"y\":-0.1149,\"skX\":6.4744,\"skY\":6.4744}},{\"length\":75,\"name\":\"龙身5\",\"parent\":\"龙身4\",\"transform\":{\"x\":90.6325,\"y\":-0.3482,\"skX\":1.3289,\"skY\":1.3289}},{\"length\":20,\"name\":\"10右须6\",\"parent\":\"10右须5\",\"transform\":{\"x\":22.9345,\"y\":-0.6255,\"skX\":4.2231,\"skY\":4.2231}},{\"length\":20,\"name\":\"10左须6\",\"parent\":\"10左须5\",\"transform\":{\"x\":22.2202,\"y\":0.1708,\"skX\":-4.1645,\"skY\":-4.1645}},{\"length\":32,\"name\":\"左后爪\",\"parent\":\"龙身5\",\"transform\":{\"x\":62.1,\"y\":48.3,\"skX\":56.5532,\"skY\":56.5532}},{\"length\":97,\"name\":\"龙身6\",\"parent\":\"龙身5\",\"transform\":{\"x\":86.4,\"y\":1.25,\"skX\":0.3513,\"skY\":0.3513}},{\"length\":20,\"name\":\"10左须7\",\"parent\":\"10左须6\",\"transform\":{\"x\":21.7068,\"y\":0.4547,\"skX\":-0.7003,\"skY\":-0.7003}},{\"length\":34,\"name\":\"右后爪\",\"parent\":\"龙身5\",\"transform\":{\"x\":64.7,\"y\":-44.75,\"skX\":-57.7317,\"skY\":-57.7317}},{\"length\":20,\"name\":\"10右须7\",\"parent\":\"10右须6\",\"transform\":{\"x\":21.998,\"y\":-0.1043,\"skX\":0.8412,\"skY\":0.8412}},{\"length\":21,\"name\":\"10右须8\",\"parent\":\"10右须7\",\"transform\":{\"x\":22.3592,\"y\":0.342,\"skX\":-0.1933,\"skY\":-0.1933}},{\"length\":88,\"name\":\"龙身7\",\"parent\":\"龙身6\",\"transform\":{\"x\":109.955,\"y\":0.4758,\"skX\":-1.1308,\"skY\":-1.1308}},{\"length\":21,\"name\":\"10左须8\",\"parent\":\"10左须7\",\"transform\":{\"x\":21.8149,\"y\":-0.3509,\"skX\":-3.1437,\"skY\":-3.1437}},{\"length\":33,\"name\":\"右后爪1\",\"parent\":\"右后爪\",\"transform\":{\"x\":42.5059,\"y\":-0.1102,\"skX\":41.5612,\"skY\":41.5612}},{\"length\":30,\"name\":\"左后爪1\",\"parent\":\"左后爪\",\"transform\":{\"x\":47.1833,\"y\":-5.2066,\"skX\":-39.7445,\"skY\":-39.7445}},{\"length\":20,\"name\":\"10右须9\",\"parent\":\"10右须8\",\"transform\":{\"x\":24.3449,\"y\":0.5372,\"skX\":4.3979,\"skY\":4.3979}},{\"length\":112,\"name\":\"龙身8\",\"parent\":\"龙身7\",\"transform\":{\"x\":96.0319,\"y\":-1.6937,\"skX\":0.448,\"skY\":0.448}},{\"length\":21,\"name\":\"10左须9\",\"parent\":\"10左须8\",\"transform\":{\"x\":21.6931,\"y\":-0.1031,\"skX\":1.1637,\"skY\":1.1637}},{\"length\":29,\"name\":\"10左须10\",\"parent\":\"10左须9\",\"transform\":{\"x\":22.9195,\"y\":0.0825,\"skX\":-3.6192,\"skY\":-3.6192}},{\"length\":92,\"name\":\"龙身9\",\"parent\":\"龙身8\",\"transform\":{\"x\":123.9962,\"y\":1.0174,\"skX\":-1.0883,\"skY\":-1.0883}},{\"length\":24,\"name\":\"10右须10\",\"parent\":\"10右须9\",\"transform\":{\"x\":23.847,\"y\":-0.198,\"skX\":1.6791,\"skY\":1.6791}},{\"length\":85,\"name\":\"龙身10\",\"parent\":\"龙身9\",\"transform\":{\"x\":109.7663,\"y\":2.7205,\"skX\":0.9145,\"skY\":0.9145}},{\"length\":88,\"name\":\"龙身11\",\"parent\":\"龙身10\",\"transform\":{\"x\":109.7962,\"y\":0.9182,\"skX\":0.5052,\"skY\":0.5052}},{\"length\":78,\"name\":\"龙身12\",\"parent\":\"龙身11\",\"transform\":{\"x\":104.4,\"y\":1.55,\"skX\":-0.545,\"skY\":-0.545}},{\"length\":35,\"name\":\"龙身15\",\"parent\":\"龙身12\",\"transform\":{\"x\":7.6148,\"y\":-43.5795,\"skX\":-38.431,\"skY\":-38.431}},{\"length\":75,\"name\":\"龙身13\",\"parent\":\"龙身12\",\"transform\":{\"x\":86.8965,\"y\":0.7765,\"skX\":0.0881,\"skY\":0.0881}},{\"length\":53,\"name\":\"龙身14\",\"parent\":\"龙身13\",\"transform\":{\"x\":95.4517,\"y\":0.1611,\"skX\":-5.4401,\"skY\":-5.4401}},{\"length\":43,\"name\":\"龙身16\",\"parent\":\"龙身15\",\"transform\":{\"x\":-58.7474,\"y\":61.1623,\"skX\":65.5411,\"skY\":65.5411}},{\"length\":72,\"name\":\"龙身17\",\"parent\":\"龙身16\",\"transform\":{\"x\":64.7118,\"y\":-36.0454,\"skX\":-23.9426,\"skY\":-23.9426}},{\"length\":52,\"name\":\"龙身18\",\"parent\":\"龙身17\",\"transform\":{\"x\":11.0788,\"y\":-87.0481,\"skX\":-9.7474,\"skY\":-9.7474}},{\"length\":27,\"name\":\"龙身19\",\"parent\":\"龙身18\",\"transform\":{\"x\":-189.7235,\"y\":-23.7154,\"skX\":-23.1541,\"skY\":-23.1541}},{\"length\":30,\"name\":\"龙身20\",\"parent\":\"龙身19\",\"transform\":{\"x\":-45.302,\"y\":82.7465,\"skX\":52.9855,\"skY\":52.9855}}],\"slot\":[{\"name\":\"左前爪\",\"parent\":\"左前爪2\"},{\"name\":\"左后爪\",\"parent\":\"左后爪1\"},{\"name\":\"右前爪\",\"parent\":\"右前爪2\"},{\"name\":\"右后爪\",\"parent\":\"右后爪1\"},{\"name\":\"龙身\",\"parent\":\"龙身20\"},{\"name\":\"龙头\",\"parent\":\"龙头2\"},{\"name\":\"10右须\",\"parent\":\"10右须10\"},{\"name\":\"10左须\",\"parent\":\"10左须10\"}],\"skin\":[{\"slot\":[{\"name\":\"10左须\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/10左须\",\"width\":110,\"height\":197,\"vertices\":[-129.01,-457,-19.01,-457,-129.01,-260,-19.01,-260,-19.01,-449.15,-19.01,-454.65,-24.45,-454.6,-32.8,-454.35,-44.7,-453.75,-52.55,-451.5,-61.45,-447.2,-69.05,-443.45,-73.8,-439.15,-79,-434.2,-83.55,-427.3,-88.35,-420.7,-94.35,-409.1,-97.45,-398.65,-100.8,-390.3,-104.1,-380.75,-106.95,-371.25,-110.05,-362.3,-112.75,-353.1,-115.2,-342.2,-117.95,-332.05,-119.8,-322.8,-121.3,-313.1,-124.1,-303.6,-125.45,-297.4,-126.35,-289.2,-127.75,-281.55,-129.01,-272.75,-124.95,-267.3,-123.7,-274.3,-122.05,-281.5,-120.15,-289.6,-118.95,-296.35,-117,-303.95,-116.3,-309.15,-113.95,-317.35,-112.25,-325.05,-109,-332.8,-106.8,-341.85,-104.35,-351.8,-101.1,-361.8,-97.25,-371.45,-95.15,-380.6,-92.05,-389.6,-88.45,-399,-83.9,-410.55,-79.3,-419,-73.7,-426.45,-65.5,-433.7,-58.15,-438.4,-52.5,-441.5,-43.65,-444.3,-35.6,-446.75,-27.8,-448.45],\"uvs\":[0,0,1,0,0,1,1,1,1,0.03983,1,0.01191,0.9505,0.01217,0.8746,0.01344,0.76641,0.01648,0.69505,0.0279,0.61414,0.04973,0.54505,0.06877,0.50187,0.09059,0.4546,0.11572,0.41323,0.15075,0.3696,0.18425,0.31505,0.24313,0.28687,0.29618,0.25641,0.33856,0.22641,0.38704,0.2005,0.43526,0.17232,0.48069,0.14778,0.52739,0.1255,0.58272,0.1005,0.63425,0.08369,0.6812,0.07005,0.73044,0.0446,0.77866,0.03232,0.81014,0.02414,0.85176,0.01141,0.89059,0,0.93526,0.03687,0.96293,0.04823,0.92739,0.06323,0.89085,0.0805,0.84973,0.09141,0.81547,0.10914,0.77689,0.1155,0.75049,0.13687,0.70887,0.15232,0.66978,0.18187,0.63044,0.20187,0.5845,0.22414,0.53399,0.25369,0.48323,0.28869,0.43425,0.30778,0.3878,0.33596,0.34212,0.36869,0.2944,0.41005,0.23577,0.45187,0.19288,0.50278,0.15506,0.57732,0.11826,0.64414,0.0944,0.6955,0.07866,0.77596,0.06445,0.84914,0.05201,0.92005,0.04338],\"triangles\":[46,45,47,51,50,52,52,50,53,50,49,53,0,10,9,0,9,8,53,49,55,49,48,55,54,53,55,55,48,56,57,56,4,56,48,4,48,47,4,5,6,4,6,57,4,8,7,1,0,8,1,7,6,1,6,5,1,34,33,3,33,32,3,37,36,3,36,35,3,41,39,3,39,37,3,44,43,3,43,42,3,45,44,3,42,41,3,4,47,3,47,45,3,32,2,3,35,34,3,38,37,39,40,39,41,7,57,6,7,56,57,8,56,7,0,11,10,8,55,56,8,9,55,9,54,55,10,53,54,10,54,9,10,11,53,11,52,53,0,12,11,11,12,52,12,51,52,0,13,12,13,51,12,14,50,51,13,14,51,0,14,13,14,15,50,15,49,50,15,16,49,16,48,49,0,15,14,17,47,48,16,17,48,0,16,15,18,46,47,17,18,47,0,17,16,19,45,46,18,19,46,0,18,17,20,44,45,19,20,45,0,19,18,21,43,44,20,21,44,0,21,20,22,42,43,21,22,43,0,20,19,22,23,42,0,22,21,23,41,42,24,40,41,23,24,41,0,23,22,0,24,23,26,38,39,25,39,40,24,25,40,25,26,39,0,25,24,0,27,25,27,36,37,27,37,38,26,27,38,0,28,27,28,35,36,27,28,36,27,26,25,29,34,35,28,29,35,0,30,28,30,33,34,29,30,34,0,31,30,31,32,33,30,31,33,31,2,32,30,29,28],\"weights\":[4,18,0.287118,16,0.283679,23,0.221442,10,0.207761,4,3,0.948382,10,0.037528,16,0.009436,18,0.004654,4,43,0.925099,42,0.045637,37,0.01911,32,0.010155,4,43,0.276584,42,0.267977,37,0.245893,32,0.209547,4,3,0.976903,10,0.016734,16,0.004248,18,0.002115,4,3,0.982463,10,0.012795,16,0.003176,18,0.001567,4,3,0.972393,10,0.021608,16,0.004119,18,0.00188,4,3,0.9042,10,0.084417,16,0.008176,18,0.003207,4,3,0.402113,10,0.581448,16,0.012795,18,0.003643,4,3,0.165588,10,0.768879,16,0.054766,18,0.010767,4,3,0.039887,10,0.759949,16,0.185366,18,0.014798,4,3,0.015308,16,0.614172,10,0.350759,18,0.019761,4,3,0.014785,16,0.782241,10,0.152995,18,0.049978,4,16,0.786313,18,0.135539,10,0.062363,23,0.015785,4,16,0.598662,18,0.381545,10,0.010376,23,0.009417,4,18,0.805505,16,0.145804,23,0.037214,10,0.011477,4,18,0.656785,23,0.302216,16,0.025356,29,0.015643,4,23,0.82664,18,0.133186,29,0.031713,16,0.008462,4,23,0.801838,29,0.153427,18,0.033675,32,0.011059,4,29,0.758507,23,0.209318,32,0.021216,18,0.01096,4,29,0.850791,32,0.101237,23,0.038576,37,0.009396,4,32,0.617387,29,0.357867,37,0.013943,23,0.010802,4,32,0.862256,29,0.065108,37,0.064039,42,0.008597,4,32,0.522226,37,0.459623,42,0.009197,29,0.008954,4,37,0.845257,32,0.076198,42,0.068828,29,0.009716,4,37,0.606364,42,0.367439,32,0.015609,43,0.010588,4,42,0.875319,37,0.092381,43,0.025515,32,0.006785,4,42,0.785441,43,0.185372,37,0.024375,32,0.004812,4,43,0.626178,42,0.36193,37,0.00938,32,0.002512,4,43,0.945206,42,0.047623,37,0.005332,32,0.001839,4,43,0.977241,42,0.017528,37,0.003719,32,0.001513,4,43,0.990835,42,0.0063,37,0.001956,32,0.00091,4,43,0.987358,42,0.008255,37,0.002941,32,0.001446,4,43,0.982627,42,0.012268,37,0.003522,32,0.001583,4,43,0.960599,42,0.030683,37,0.006233,32,0.002485,4,43,0.864147,42,0.120111,37,0.011833,32,0.003909,4,43,0.548391,42,0.435914,37,0.012427,32,0.003267,4,42,0.809664,43,0.142914,37,0.040374,32,0.007049,4,42,0.878239,37,0.068002,43,0.046403,32,0.007356,4,42,0.574828,37,0.400464,43,0.014145,32,0.010563,4,37,0.778948,42,0.179254,32,0.030986,43,0.010812,4,37,0.732131,32,0.172853,42,0.075694,29,0.019322,4,32,0.496656,37,0.448235,29,0.031211,42,0.023898,4,32,0.740868,29,0.140589,37,0.101247,23,0.017295,4,29,0.535704,32,0.414779,23,0.025947,37,0.023569,4,29,0.698391,23,0.143179,32,0.135982,18,0.022448,4,29,0.49679,23,0.447979,32,0.02993,18,0.025301,4,23,0.738538,29,0.15817,18,0.084503,32,0.018789,4,23,0.581565,18,0.362108,29,0.036697,16,0.019629,4,18,0.783182,23,0.132361,16,0.068905,29,0.015551,4,18,0.609226,16,0.33285,23,0.037154,10,0.02077,4,16,0.770175,18,0.165377,10,0.047163,23,0.017286,4,3,0.02144,16,0.658873,10,0.27708,18,0.042607,4,3,0.043991,10,0.705393,16,0.23014,18,0.020475,4,3,0.086425,10,0.825684,16,0.075585,18,0.012306,4,3,0.436098,10,0.529947,16,0.026557,18,0.007398,4,3,0.823124,10,0.16106,16,0.011589,18,0.004227,4,3,0.96087,10,0.031967,16,0.004997,18,0.002166],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[3,-0.994906,0.100805,-0.100805,-0.994906,-20.25,-452.1,10,-0.918211,0.396091,-0.396091,-0.918211,-43.45,-450.1,16,-0.707107,0.707107,-0.707107,-0.707107,-66.65,-439.8,18,-0.434816,0.90052,-0.90052,-0.434816,-82.8,-423.35,23,-0.350586,0.936531,-0.936531,-0.350586,-92.3,-403.25,29,-0.281649,0.959517,-0.959517,-0.281649,-100.25,-382.5,32,-0.2699,0.962888,-0.962888,-0.2699,-106.8,-361.8,37,-0.216689,0.976241,-0.976241,-0.216689,-112.35,-340.7,42,-0.236471,0.971639,-0.971639,-0.236471,-116.95,-319.5,43,-0.174664,0.984628,-0.984628,-0.174664,-122.45,-297.25],\"edges\":[0,1,3,2,4,3,1,5,5,4,2,31,31,0],\"userEdges\":[]}]},{\"name\":\"10右须\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/10右须\",\"width\":108,\"height\":196,\"vertices\":[28.16,-455.65,136.16,-455.65,28.16,-259.65,136.16,-259.65,30.8,-449.15,36.35,-448.4,42.1,-447.4,48.75,-445.55,54.75,-443.6,59.85,-441.3,65.35,-439.1,69.95,-436.55,73.3,-434.4,77.2,-431.55,81.3,-426.5,84.6,-421.6,90,-414.4,94.7,-403.95,97.15,-397.65,99.65,-388.7,102.1,-380.9,105.8,-371.2,107,-364.95,109.7,-357.85,113.8,-344.25,116.85,-335.55,120.25,-323.5,122.35,-313.2,125.5,-300.85,127.8,-289.05,129.85,-281.2,131.8,-272.2,134.15,-262.4,136.16,-281.4,134.8,-289.9,133.75,-297.75,132.65,-305.5,130.65,-316.3,127.65,-328.05,125,-337.25,122.15,-348.65,119.6,-358.4,117,-368.6,113.25,-381.85,109.75,-392,106.6,-400.7,103.3,-407.5,99.55,-415.45,95.1,-423.15,90.4,-430.3,84.05,-437.45,76.4,-443.75,67.9,-448.25,61.05,-450.85,53.25,-452.9,47.55,-454.25,42.15,-454.9,32.65,-455.65,28.16,-449.85],\"uvs\":[0,0,1,0,0,1,1,1,0.02441,0.03315,0.0758,0.03698,0.12904,0.04208,0.19061,0.05152,0.24617,0.06147,0.29339,0.0732,0.34432,0.08443,0.38691,0.09744,0.41793,0.10841,0.45404,0.12295,0.492,0.14871,0.52256,0.17371,0.57256,0.21045,0.61608,0.26376,0.63876,0.29591,0.66191,0.34157,0.68459,0.38137,0.71885,0.43086,0.72997,0.46274,0.75497,0.49897,0.79293,0.56836,0.82117,0.61274,0.85265,0.67422,0.87209,0.72677,0.90126,0.78978,0.92256,0.84999,0.94154,0.89004,0.95959,0.93596,0.98135,0.98596,1,0.88902,0.98737,0.84565,0.97765,0.8056,0.96747,0.76606,0.94895,0.71096,0.92117,0.65101,0.89663,0.60407,0.87024,0.54591,0.84663,0.49616,0.82256,0.44412,0.78784,0.37652,0.75543,0.32473,0.72626,0.28035,0.69571,0.24565,0.66098,0.20509,0.61978,0.16581,0.57626,0.12933,0.51747,0.09285,0.44663,0.0607,0.36793,0.03774,0.3045,0.02448,0.23228,0.01402,0.1795,0.00713,0.1295,0.00382,0.04154,0,0,0.02958],\"triangles\":[29,30,34,32,2,3,57,56,1,56,55,1,55,54,1,54,53,1,53,52,1,52,51,1,51,50,1,50,49,1,49,48,1,48,47,1,46,45,1,47,46,1,45,44,1,44,43,1,43,42,1,41,40,1,42,41,1,39,38,1,40,39,1,38,37,1,37,36,1,36,35,1,34,30,33,30,31,33,32,3,33,31,32,33,1,35,33,35,34,33,36,28,35,35,29,34,37,27,36,31,2,32,28,29,35,38,26,37,27,28,36,30,2,31,26,27,37,29,2,30,39,25,38,25,26,38,28,2,29,40,24,39,24,25,39,27,2,28,23,24,41,41,24,40,26,2,27,42,23,41,25,2,26,22,23,42,43,21,42,21,22,42,24,2,25,23,2,24,44,20,43,20,21,43,22,2,23,45,18,44,18,19,44,19,20,44,21,20,22,20,2,22,46,18,45,17,18,46,19,4,20,4,2,20,47,17,46,58,2,4,9,7,17,7,5,17,17,5,18,48,16,47,16,17,47,18,5,19,5,4,19,15,9,17,16,15,17,49,15,48,15,16,48,6,5,7,10,9,11,11,9,15,50,14,49,14,15,49,14,11,15,8,7,9,12,11,14,51,12,50,12,13,50,13,14,50,13,12,14,11,12,51,52,11,51,52,10,11,9,10,52,53,9,52,8,9,53,54,8,53,54,7,8,55,7,54,56,6,55,55,6,7,57,5,56,56,5,6,57,4,5,0,58,4,0,4,57],\"weights\":[4,2,0.975535,11,0.016762,14,0.005087,21,0.002616,4,14,0.284036,21,0.280115,26,0.218214,11,0.217636,4,45,0.27814,40,0.27084,35,0.242325,34,0.208695,4,45,0.925018,40,0.048134,35,0.017713,34,0.009136,4,2,0.9812,11,0.013285,14,0.003672,21,0.001843,4,2,0.967576,11,0.024752,14,0.005254,21,0.002418,4,2,0.924636,11,0.06297,14,0.008787,21,0.003607,4,2,0.685091,11,0.290364,14,0.018272,21,0.006273,4,2,0.367694,11,0.595412,14,0.029019,21,0.007875,4,2,0.160894,11,0.760484,14,0.065392,21,0.01323,4,2,0.06198,11,0.7805,14,0.140479,21,0.017041,4,2,0.032099,11,0.604855,14,0.339809,21,0.023237,4,2,0.022126,14,0.513837,11,0.431422,21,0.032615,4,2,0.015499,14,0.76173,11,0.166318,21,0.056453,4,14,0.735022,21,0.180156,11,0.067792,26,0.01703,4,14,0.471671,21,0.471404,11,0.032714,26,0.024211,4,21,0.826018,14,0.11129,26,0.0494,11,0.013292,4,21,0.617287,26,0.342842,14,0.024115,28,0.015756,4,26,0.655866,21,0.292152,28,0.034601,14,0.01738,4,26,0.740983,28,0.152409,21,0.086689,34,0.019919,4,26,0.539193,28,0.40036,21,0.031319,34,0.029127,4,28,0.719794,26,0.155122,34,0.106082,21,0.019002,4,28,0.629952,34,0.273575,26,0.070626,35,0.025847,4,34,0.522117,28,0.422243,35,0.031409,26,0.024231,4,34,0.699157,35,0.230113,28,0.054,40,0.01673,4,35,0.681498,34,0.284083,40,0.019922,28,0.014496,4,35,0.842926,40,0.107668,34,0.039148,45,0.010258,4,40,0.685614,35,0.283668,45,0.017968,34,0.012751,4,40,0.900204,45,0.068479,35,0.026462,34,0.004855,4,45,0.803622,40,0.185039,35,0.008653,34,0.002686,4,45,0.970357,40,0.024854,35,0.003474,34,0.001315,4,45,0.992644,40,0.005427,35,0.001337,34,0.000593,4,45,0.963185,40,0.024308,35,0.008333,34,0.004173,4,45,0.92048,40,0.065247,35,0.010302,34,0.00397,4,45,0.755769,40,0.226025,35,0.013859,34,0.004347,4,40,0.685039,45,0.278219,35,0.02973,34,0.007012,4,40,0.799151,45,0.094628,35,0.092456,34,0.013764,4,40,0.51905,35,0.442032,45,0.020815,34,0.018102,4,35,0.813803,40,0.095895,34,0.077396,28,0.012907,4,35,0.637864,34,0.32028,40,0.024727,28,0.017128,4,34,0.795551,35,0.13254,28,0.05946,40,0.012449,4,34,0.668935,28,0.283588,35,0.030911,26,0.016566,4,28,0.729766,34,0.200666,26,0.052686,35,0.016882,4,28,0.597534,26,0.357781,34,0.026503,21,0.018181,4,26,0.724728,28,0.175743,21,0.079836,34,0.019693,4,26,0.648344,21,0.282776,28,0.048028,14,0.020852,4,21,0.542283,26,0.411037,14,0.027601,28,0.019079,4,21,0.754864,26,0.12321,14,0.105635,28,0.016292,4,21,0.602212,14,0.351172,26,0.028828,11,0.017787,4,14,0.676165,21,0.267769,11,0.039507,26,0.016559,4,2,0.016697,14,0.748318,11,0.163122,21,0.071863,4,2,0.018043,14,0.495107,11,0.471114,21,0.015735,4,2,0.096637,11,0.748982,14,0.137568,21,0.016813,4,2,0.268516,11,0.682094,14,0.040737,21,0.008654,4,2,0.645087,11,0.341611,14,0.010203,21,0.003099,4,2,0.824305,11,0.157612,14,0.013272,21,0.004812,4,2,0.907946,11,0.076162,14,0.011263,21,0.004629,4,2,0.963629,11,0.02631,14,0.006779,21,0.003282,4,2,0.987575,11,0.008504,14,0.002581,21,0.00134],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[2,0.994463,0.10509,-0.10509,0.994463,29.1,-452.15,11,0.908367,0.418174,-0.418174,0.908367,54.9,-448.7,14,0.682745,0.730657,-0.730657,0.682745,75.6,-439.4,21,0.444462,0.895798,-0.895798,0.444462,90,-423,26,0.340619,0.940201,-0.940201,0.340619,100.25,-402.6,28,0.270458,0.962732,-0.962732,0.270458,108.65,-381.25,34,0.256295,0.966599,-0.966599,0.256295,114.7,-360.1,35,0.259554,0.965729,-0.965729,0.259554,120.1,-338.4,40,0.184735,0.982788,-0.982788,0.184735,125.9,-314.75,45,0.155859,0.987779,-0.987779,0.155859,130.5,-291.35],\"edges\":[3,2,1,33,33,3,0,57,57,1,2,58,58,0],\"userEdges\":[]}]},{\"name\":\"龙头\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/龙头\",\"width\":228,\"height\":276,\"vertices\":[-110,-481.28,118,-481.28,-110,-206.28,118,-206.28,-18.25,-471.05,-24.25,-473.15,-32.8,-473.65,-30.25,-469.65,-27.55,-465.35,-33.2,-465.35,-39.2,-462.4,-45.2,-456.2,-37.65,-455.25,-29.65,-454.95,-29,-448.05,-27.95,-444.95,-33.8,-443.05,-39.8,-440.1,-46.85,-435.6,-51.9,-431.25,-58.2,-426.7,-62.75,-419.25,-52.2,-424.85,-43.9,-429.65,-37.5,-432.1,-31.6,-435.45,-26.75,-438.5,-22.15,-441.85,-28,-433.35,-28.25,-425.9,-29.2,-418.65,-36.8,-413.05,-45,-409.25,-55.5,-406.2,-61.1,-404.3,-67.5,-398.85,-63.05,-397.8,-59.3,-398.45,-67.7,-394.65,-72.65,-391.1,-77.8,-386.95,-82.6,-382.75,-87.7,-378.55,-90.85,-373.05,-93.05,-369.3,-87.25,-372.25,-82.1,-374.15,-76.75,-376.15,-83.05,-369.6,-86.2,-363,-88.2,-354.55,-90.4,-347.2,-91.5,-338.95,-93.35,-332.25,-94.55,-325.25,-97.05,-316.45,-99.4,-309.3,-103.5,-302.6,-110,-298.5,-104.2,-298.25,-99.15,-300.8,-93.05,-308.05,-91.15,-314.9,-89.25,-323.4,-86.95,-332.05,-85.15,-339,-81.9,-345.9,-78.2,-353.5,-75.05,-362.85,-69.25,-370.75,-65.5,-378.55,-60,-385.5,-55.7,-391.1,-51.9,-394.55,-93.6,-300.95,-92.1,-296.95,-85.9,-298.5,-79.5,-304.3,-72.75,-309.55,-65.8,-314.7,-60.45,-320.7,-54.15,-328.7,-48.35,-334.9,-44.55,-340.35,-45.7,-343.8,-49.6,-343.95,-51.2,-348.85,-51.2,-356.95,-48.75,-363.8,-45,-370.85,-40.45,-376.95,-45.6,-379.5,-49.55,-384,-50.25,-391.15,-81.7,-297.4,-83.25,-287.3,-83.15,-282.15,-85.45,-270.9,-78.85,-280.2,-75.25,-287.55,-71,-298.95,-72.4,-291.3,-71.75,-280.35,-44.65,-332.6,-47.4,-325.85,-53,-314.45,-57.5,-305.5,-63.25,-296.4,-68.45,-287.45,-73.6,-271.15,-73.6,-261.25,-70.7,-257.5,-66.25,-261.4,-62.65,-266.55,-59.2,-273.2,-55.45,-280.1,-51.95,-285.6,-48.9,-285.8,-52.1,-275.95,-54.2,-267.75,-55.4,-259.35,-55.7,-249.25,-55.55,-240.65,-54.6,-233.35,-52.45,-223.95,-50.25,-217.6,-45.05,-209.75,-41.2,-208.4,-38.35,-209.85,-39,-219.1,-39.05,-225.95,-39.25,-237.4,-38.8,-248.4,-38.65,-256.9,-37.15,-264.15,-34.25,-279.7,-31,-291.9,-27.35,-301.5,-24.1,-310.1,-20.35,-318.25,-34.9,-254.95,-29.1,-248.4,-23.8,-243.15,-18.35,-239.5,-10.05,-229.7,-9.3,-236.7,-5.65,-228.5,-1.1,-218.85,4.6,-206.28,9.6,-216.95,15.25,-228.8,16.75,-225.1,23.2,-233.95,29.15,-240.3,36.85,-247.65,40.85,-253.5,-12.3,-244.55,-15,-252.35,19.05,-237.75,20.9,-247.05,23.4,-255.05,48,-251.55,47.7,-241.3,47.55,-227.4,46.95,-216.4,47.1,-209.35,53.55,-209.35,58.25,-217.4,62.2,-227.8,64.7,-238.8,64.95,-245.1,65.4,-254.35,63.8,-265.45,62.35,-275.15,60.35,-281.4,58.25,-286.35,60.85,-287.2,64.4,-281.35,68.2,-274.55,71.35,-268.45,76.3,-260.25,79.8,-257.6,82.4,-261.45,83.35,-266.45,83.3,-272.7,80.8,-279.95,82.05,-282.85,83.3,-286.7,83.6,-290.2,85.85,-283.8,88.1,-278,92.5,-271.65,95.05,-272.95,93.1,-280.15,91.65,-287,91.2,-293.95,90.9,-300.8,77.25,-286.75,73.9,-293.55,71.1,-298.9,66.95,-306.7,62.2,-314.2,58.75,-322.4,54.3,-331.2,78.9,-282.75,46.3,-259.6,45.45,-266.95,43.9,-276.65,40.1,-289.25,37,-298.95,33.65,-307.4,29.1,-318.1,26.5,-319.7,22.05,-321.65,20.05,-325.25,19.2,-328.15,17.1,-326,12.1,-325.35,8.05,-325.5,5.25,-327.55,1.95,-328.5,0.15,-326.25,-3.95,-325.6,-8.55,-326.45,-10.75,-328,-11.25,-324.1,-14.05,-321.6,54.1,-336,54.25,-340.95,57.55,-334.05,63.4,-326.15,71.1,-317.95,80.55,-309.8,86.65,-305.2,95.8,-299.05,100.1,-298.25,102,-301.35,101.8,-306.5,101,-311.9,99.85,-320.2,97.4,-327.85,93.65,-337.85,90.2,-347.4,85.1,-357.9,79.5,-367.9,75.25,-377.85,68.85,-386.25,63.3,-393.95,105.95,-304.35,112.55,-298.8,118,-296.95,114.2,-301.9,109.15,-308,106.2,-316,103.65,-329.3,101.15,-341.35,98.3,-349.95,96.3,-359.75,92.85,-370.1,87.7,-375.3,81.9,-378.25,95.45,-372.85,100.75,-371.3,99.35,-375.15,94.75,-380.2,89.7,-384.7,84.65,-390,78.15,-394.15,69.2,-398.6,76.5,-398.5,73.55,-402.25,64.25,-406.4,56.7,-409,51.65,-410.4,47.35,-413.25,41.15,-416.55,37.55,-419.8,36.4,-426.7,36.4,-433.9,36.15,-438.75,41.3,-435.7,47.5,-432.7,54.65,-429.25,60.4,-426.6,66.2,-422.9,71.45,-420.5,68.6,-424.9,62.3,-430.75,55.8,-436.05,47.8,-441.05,42.2,-443.9,36.7,-445.8,36.1,-448.7,35.75,-452.85,43.15,-452.85,45.2,-454.2,41.4,-456.5,38.65,-458.55,41.05,-459.55,43.65,-460.1,47.05,-460.45,49.4,-461.05,48.95,-464,45.85,-466.6,41.85,-468.1,38.35,-468.6,34.75,-468.5,36.9,-470.5,38.55,-472.1,40,-474.4,37.85,-476,33.65,-475.8,29.15,-475.25,26.6,-474.8,23.5,-477.05,18.1,-480.05,13.2,-481.28,7.5,-479.15,2.85,-476.95,-0.7,-478.85,-5.7,-479.75,-9.15,-478.9,-15.6,-474.3,61.55,-388.8,58,-382.2,51.85,-377.1,55.75,-369.95,58.65,-362.5,59.85,-355.55,59.15,-344.5,61.55,-348.9],\"uvs\":[0,0.00181,1,0.00181,0,0.99819,1,0.99819,0.40242,0.03885,0.37611,0.03126,0.33861,0.02944,0.34979,0.04393,0.36163,0.05951,0.33685,0.05951,0.31054,0.07021,0.28422,0.09266,0.31733,0.09611,0.35242,0.09719,0.35527,0.12219,0.35988,0.13342,0.33422,0.14031,0.3079,0.151,0.27698,0.1673,0.25483,0.18306,0.2272,0.19955,0.20725,0.22655,0.25352,0.20625,0.28992,0.18886,0.31799,0.17998,0.34387,0.16785,0.36514,0.1568,0.38532,0.14466,0.35966,0.17545,0.35856,0.20245,0.3544,0.22871,0.32106,0.249,0.2851,0.26278,0.23904,0.27382,0.21448,0.28071,0.18641,0.30046,0.20593,0.30426,0.22238,0.3019,0.18554,0.31567,0.16383,0.32854,0.14124,0.34357,0.12019,0.35879,0.09782,0.37401,0.084,0.39393,0.07435,0.40752,0.09979,0.39684,0.12238,0.38995,0.14584,0.38269,0.11821,0.40643,0.1044,0.43034,0.09562,0.46096,0.08597,0.48759,0.08115,0.51748,0.07304,0.54176,0.06777,0.56712,0.05681,0.59901,0.0465,0.62491,0.02852,0.64919,0,0.66405,0.02545,0.66495,0.0476,0.65571,0.07435,0.62944,0.08269,0.60462,0.09102,0.57382,0.10111,0.54249,0.109,0.51731,0.12326,0.4923,0.13948,0.46477,0.1533,0.43089,0.17874,0.40226,0.19519,0.37401,0.21931,0.34882,0.23817,0.32854,0.25483,0.31604,0.07194,0.65517,0.07852,0.66965,0.10571,0.66405,0.13378,0.64303,0.16339,0.62401,0.19387,0.60534,0.21733,0.5836,0.24497,0.55462,0.2704,0.53215,0.28707,0.51242,0.28203,0.49991,0.26492,0.49937,0.2579,0.48162,0.2579,0.45227,0.26865,0.42744,0.2851,0.4019,0.30505,0.37981,0.28247,0.37056,0.26514,0.35426,0.26207,0.32836,0.12413,0.66803,0.11733,0.70463,0.11777,0.72328,0.10769,0.76404,0.13663,0.73035,0.15242,0.70372,0.17106,0.66241,0.16492,0.69013,0.16777,0.7298,0.28663,0.5405,0.27457,0.56494,0.25001,0.60625,0.23027,0.63868,0.20505,0.67164,0.18225,0.70408,0.15966,0.76313,0.15966,0.79901,0.17238,0.81259,0.1919,0.79847,0.20769,0.77981,0.22282,0.75571,0.23926,0.73071,0.25462,0.71078,0.26799,0.71005,0.25396,0.74575,0.24475,0.77546,0.23948,0.80588,0.23817,0.84248,0.23883,0.87364,0.24299,0.90009,0.25242,0.93415,0.26207,0.95716,0.28488,0.9856,0.30176,0.99049,0.31426,0.98523,0.31141,0.95173,0.31119,0.92691,0.31032,0.88542,0.31229,0.84556,0.31295,0.81476,0.31953,0.7885,0.33225,0.73216,0.3465,0.68796,0.36251,0.65317,0.37676,0.62201,0.39321,0.59248,0.3294,0.82183,0.35483,0.84556,0.37808,0.86459,0.40198,0.87781,0.43839,0.91332,0.44168,0.88796,0.45769,0.91766,0.47764,0.95263,0.50264,0.99819,0.52457,0.95951,0.54935,0.91658,0.55593,0.92998,0.58422,0.89792,0.61032,0.87491,0.64409,0.84829,0.66163,0.82708,0.42852,0.85951,0.41668,0.83126,0.56602,0.88415,0.57413,0.85046,0.5851,0.82147,0.69299,0.83415,0.69168,0.87129,0.69102,0.92165,0.68839,0.96151,0.68904,0.98705,0.71733,0.98705,0.73795,0.95788,0.75527,0.9202,0.76624,0.88035,0.76733,0.85752,0.76931,0.824,0.76229,0.78379,0.75593,0.74864,0.74716,0.726,0.73795,0.70806,0.74935,0.70499,0.76492,0.72618,0.78159,0.75082,0.7954,0.77292,0.81712,0.80263,0.83247,0.81223,0.84387,0.79829,0.84804,0.78016,0.84782,0.75752,0.83685,0.73125,0.84233,0.72074,0.84782,0.7068,0.84913,0.69412,0.859,0.7173,0.86887,0.73831,0.88817,0.76132,0.89935,0.75661,0.8908,0.73053,0.88444,0.70571,0.88247,0.68052,0.88115,0.65571,0.82128,0.70662,0.80659,0.68197,0.79431,0.66259,0.77611,0.63433,0.75527,0.60716,0.74014,0.57745,0.72062,0.54556,0.82852,0.72111,0.68554,0.80498,0.68181,0.77835,0.67501,0.74321,0.65834,0.69755,0.64475,0.66241,0.63005,0.63179,0.6101,0.59303,0.59869,0.58723,0.57918,0.58017,0.5704,0.56712,0.56668,0.55661,0.55747,0.5644,0.53554,0.56676,0.51777,0.56622,0.50549,0.55879,0.49102,0.55535,0.48312,0.5635,0.46514,0.56585,0.44497,0.56277,0.43532,0.55716,0.43312,0.57129,0.42084,0.58035,0.71975,0.52817,0.7204,0.51024,0.73488,0.53524,0.76054,0.56386,0.79431,0.59357,0.83576,0.6231,0.86251,0.63976,0.90264,0.66205,0.9215,0.66495,0.92983,0.65372,0.92896,0.63506,0.92545,0.61549,0.9204,0.58542,0.90966,0.5577,0.89321,0.52148,0.87808,0.48687,0.85571,0.44883,0.83115,0.41258,0.81251,0.37654,0.78444,0.34611,0.7601,0.31821,0.94716,0.64285,0.97611,0.66295,1,0.66965,0.98334,0.65171,0.96119,0.62962,0.94826,0.60063,0.93707,0.55245,0.92611,0.50878,0.91361,0.47763,0.90483,0.44212,0.8897,0.40462,0.86712,0.38578,0.84168,0.37509,0.90111,0.39466,0.92435,0.40027,0.91821,0.38633,0.89804,0.36803,0.87589,0.35172,0.85374,0.33252,0.82523,0.31748,0.78597,0.30137,0.81799,0.30172,0.80505,0.28814,0.76426,0.2731,0.73115,0.26368,0.709,0.25861,0.69014,0.24828,0.66295,0.23633,0.64716,0.22455,0.64212,0.19955,0.64212,0.17346,0.64102,0.15589,0.66361,0.16694,0.6908,0.17781,0.72216,0.1903,0.74738,0.19991,0.77282,0.21332,0.79584,0.22201,0.78334,0.20607,0.75571,0.18488,0.7272,0.16568,0.69212,0.14755,0.66755,0.13723,0.64343,0.13034,0.6408,0.11984,0.63926,0.10481,0.67172,0.10481,0.68071,0.09992,0.66404,0.09158,0.65198,0.08415,0.66251,0.08053,0.67391,0.07853,0.68883,0.07726,0.69913,0.07509,0.69716,0.0644,0.68356,0.05499,0.66602,0.04955,0.65067,0.04773,0.63488,0.0481,0.64431,0.04085,0.65154,0.03506,0.6579,0.02672,0.64847,0.02093,0.63005,0.02165,0.61032,0.02364,0.59913,0.02528,0.58554,0.01713,0.56185,0.00626,0.54036,0.00181,0.51536,0.00951,0.49497,0.01748,0.4794,0.0106,0.45747,0.00734,0.44233,0.01042,0.41404,0.02709,0.75242,0.33687,0.73685,0.36078,0.70988,0.37926,0.72698,0.40517,0.7397,0.43215,0.74497,0.45733,0.7419,0.49738,0.75242,0.48144],\"triangles\":[0,321,320,127,2,148,0,320,316,165,148,166,285,269,266,191,182,192,257,256,262,262,256,255,262,255,254,235,193,249,253,252,251,254,253,251,249,193,250,193,192,250,254,251,250,262,254,250,251,249,250,315,310,1,316,315,1,310,309,1,309,302,1,287,286,1,301,287,1,302,301,1,286,285,1,266,265,1,285,266,1,265,264,1,264,263,1,263,262,1,262,250,1,166,148,3,181,169,3,169,168,3,168,167,3,192,182,3,182,181,3,250,192,3,167,166,3,194,193,235,248,249,251,252,248,251,285,270,269,254,239,253,248,236,249,236,235,249,253,238,252,237,248,252,238,237,252,255,241,254,240,239,254,239,238,253,237,236,248,0,6,321,301,288,287,258,257,262,195,194,235,241,240,254,234,195,235,234,235,236,238,196,237,196,234,237,234,236,237,183,182,191,261,258,262,256,242,255,242,241,255,239,233,238,233,196,238,261,262,263,240,232,239,232,233,239,264,261,263,243,242,257,257,242,256,241,231,240,231,232,240,309,303,302,170,169,181,258,243,257,264,259,261,259,258,261,269,267,266,193,190,192,190,191,192,196,195,234,265,259,264,244,243,258,194,189,193,242,230,241,230,231,241,189,190,193,188,194,195,184,183,191,259,244,258,330,230,242,190,184,191,330,329,230,260,259,265,187,189,194,188,187,194,233,188,196,196,188,195,243,330,242,198,188,233,266,260,265,199,198,233,185,184,190,189,186,190,186,185,190,260,244,259,232,199,233,187,186,189,244,328,243,328,330,243,246,245,267,245,260,266,267,245,266,329,229,230,171,170,181,245,244,260,198,197,188,204,186,187,197,204,187,188,197,187,185,179,184,184,179,183,179,180,183,183,180,182,180,181,182,178,179,185,204,185,186,285,271,270,327,328,244,204,178,185,180,171,181,231,200,232,200,199,232,245,327,244,197,177,204,177,178,204,269,268,267,268,246,267,326,327,245,198,177,197,270,268,269,179,172,180,172,171,180,247,246,268,176,177,198,246,324,245,324,326,245,301,295,288,201,200,231,199,176,198,271,268,270,295,289,288,272,271,284,178,172,179,286,284,285,284,271,285,230,201,231,200,176,199,202,201,230,323,324,246,247,323,246,271,247,268,177,173,178,173,172,178,175,176,200,283,284,286,287,283,286,201,209,200,209,175,200,283,272,284,172,205,171,205,161,171,161,170,171,315,311,310,273,272,283,271,272,247,161,162,170,174,173,177,176,174,177,170,162,169,162,168,169,325,326,324,209,208,175,228,229,329,162,163,168,173,206,172,272,323,247,203,202,230,229,203,230,274,273,283,272,273,323,206,205,172,176,175,174,282,274,283,282,283,287,288,282,287,210,209,201,163,167,168,174,207,173,207,206,173,273,324,323,202,210,201,328,329,330,273,325,324,228,227,229,328,228,329,175,207,174,228,328,327,326,228,327,203,211,202,211,210,202,274,325,273,215,228,326,208,207,175,164,166,167,163,164,167,227,203,229,274,275,325,281,275,282,275,274,282,325,215,326,281,282,288,289,281,288,295,294,289,164,165,166,211,203,227,212,211,227,228,215,227,215,212,227,294,290,289,315,314,311,309,304,303,276,275,281,277,276,281,300,295,301,220,215,325,275,276,325,276,90,325,90,220,325,30,90,276,205,155,161,161,154,162,153,163,162,280,281,289,300,301,302,303,300,302,155,154,161,280,277,281,163,152,164,299,295,300,303,299,300,154,153,162,290,280,289,164,151,165,151,149,165,149,148,165,153,152,163,152,151,164,299,296,295,304,299,303,206,155,205,278,277,280,207,160,206,160,155,206,296,294,295,279,280,290,292,291,290,309,308,304,305,298,304,292,290,294,304,298,299,298,296,299,208,160,207,296,293,294,293,292,294,314,312,311,305,297,298,291,279,290,308,305,304,305,306,297,298,297,296,297,293,296,160,154,155,209,160,208,279,278,280,308,307,305,310,308,309,137,136,160,215,214,212,137,160,209,311,307,308,310,311,308,306,293,297,307,306,305,220,219,215,210,137,209,311,306,307,29,30,277,277,30,276,159,153,154,160,159,154,278,27,277,27,29,277,306,313,293,27,278,279,292,27,279,291,292,279,318,292,293,313,318,293,318,27,292,136,157,160,213,218,210,218,137,210,311,312,306,312,313,306,138,137,218,214,213,212,211,212,210,212,213,210,90,224,220,222,138,218,320,319,316,217,218,213,317,318,314,314,318,313,314,313,312,158,152,153,159,158,153,226,138,222,315,317,314,128,127,148,221,222,218,319,317,316,150,151,152,157,159,160,158,150,152,316,317,315,219,217,215,157,156,159,214,216,213,216,217,213,136,135,157,4,27,318,145,158,159,156,145,159,217,216,215,216,214,215,145,150,158,126,2,127,145,146,150,150,149,151,219,218,217,147,149,150,146,147,150,31,90,30,90,84,224,322,4,318,147,148,149,89,84,90,321,322,318,319,318,317,219,221,218,319,321,318,225,226,222,320,321,319,220,221,219,147,128,148,28,29,27,224,223,222,222,221,220,224,222,220,13,27,4,139,138,226,84,83,224,6,5,321,146,144,147,144,128,147,8,13,4,135,134,157,129,128,144,145,144,146,223,225,222,89,88,84,5,322,321,13,14,27,224,225,223,156,143,145,143,130,144,130,129,144,145,143,144,83,103,224,134,140,157,103,139,224,139,226,224,224,226,225,93,90,31,26,28,27,157,142,156,142,143,156,140,141,157,141,142,157,5,4,322,32,93,31,131,130,142,14,15,27,142,130,143,5,8,4,104,138,139,103,104,139,88,87,84,7,8,5,15,26,27,141,131,142,105,137,138,104,105,138,6,7,5,93,91,90,132,131,141,24,29,28,15,16,26,16,25,26,25,28,26,9,13,8,7,9,8,25,24,28,106,136,137,105,106,137,9,12,13,24,30,29,14,16,15,73,93,32,24,23,30,140,132,141,13,12,14,12,16,14,93,92,91,10,12,9,106,117,136,23,31,30,134,133,140,6,9,7,117,135,136,0,11,10,0,10,6,16,17,25,17,24,25,87,86,84,118,134,135,12,17,16,6,10,9,11,17,12,23,22,31,117,118,135,133,132,140,129,126,128,10,11,12,22,32,31,17,18,24,18,23,24,119,133,134,118,119,134,119,120,133,126,127,128,123,130,131,122,131,132,11,18,17,120,121,133,124,125,130,123,124,130,130,125,129,125,126,129,133,121,132,121,122,132,122,123,131,106,116,117,91,89,90,33,73,32,83,82,103,106,107,116,22,33,32,19,18,11,125,2,126,86,85,84,18,19,23,19,22,23,91,70,89,20,19,11,84,85,83,85,82,83,82,104,103,21,33,22,116,118,117,82,81,104,92,70,91,70,88,89,0,20,11,115,118,116,81,80,105,71,70,92,70,69,88,81,105,104,33,37,73,72,92,93,85,81,82,69,87,88,86,66,85,66,81,85,72,71,92,73,72,93,124,2,125,20,21,22,67,66,86,20,22,19,114,119,118,69,68,87,67,86,87,68,67,87,108,115,116,107,108,116,37,72,73,115,114,118,123,2,124,79,106,105,80,79,105,120,112,121,34,37,33,21,34,33,113,120,119,114,113,119,65,80,81,66,65,81,0,21,20,111,2,123,111,123,122,121,111,122,108,114,115,108,102,114,113,112,120,37,36,72,112,111,121,36,71,72,65,64,80,36,38,71,79,78,106,100,107,106,78,100,106,64,79,80,34,36,37,109,113,114,102,109,114,39,70,71,38,39,71,21,35,34,35,36,34,64,63,79,109,112,113,41,40,21,0,41,21,40,35,21,101,108,107,100,101,107,35,38,36,0,42,41,110,2,111,40,39,35,39,40,70,40,47,70,47,69,70,63,78,79,110,111,112,109,110,112,97,2,110,35,39,38,99,102,108,101,99,108,78,77,100,47,68,69,47,48,68,63,62,78,94,101,100,98,109,102,77,94,100,99,98,102,40,41,47,94,99,101,62,77,78,98,97,109,109,97,110,46,48,47,95,96,98,49,67,68,48,49,68,95,98,99,94,95,99,49,50,67,41,46,47,62,61,77,96,97,98,50,66,67,0,43,42,76,94,77,41,42,46,76,95,94,61,76,77,0,44,43,76,75,95,45,48,46,51,65,66,50,51,66,58,2,97,42,45,46,61,74,76,45,49,48,59,97,96,75,59,96,75,96,95,43,45,42,45,44,49,52,64,65,51,52,65,59,58,97,74,75,76,53,54,63,44,50,49,53,63,64,52,53,64,43,44,45,44,51,50,55,62,63,54,55,63,55,61,62,53,52,51,44,53,51,44,58,53,55,56,61,74,60,75,60,59,75,0,58,44,60,74,61,56,60,61,58,54,53,58,55,54,57,60,56,58,56,55,57,59,60,58,57,56,58,59,57],\"weights\":[2,6,0.73177,5,0.26823,1,5,1,3,6,0.361029,8,0.415653,7,0.223317,3,7,0.43025,5,0.343801,8,0.225949,4,6,0.441173,5,0.309481,8,0.136796,7,0.11255,3,6,0.513908,5,0.330458,8,0.155634,3,6,0.538807,5,0.305172,8,0.156021,3,6,0.540012,5,0.307055,8,0.152933,4,6,0.482954,5,0.276467,8,0.133665,7,0.106914,4,6,0.500406,5,0.260461,8,0.133547,7,0.105586,4,6,0.52584,5,0.24065,8,0.131383,7,0.102128,4,6,0.562256,5,0.215537,8,0.12631,7,0.095897,4,6,0.544526,5,0.232568,8,0.126011,7,0.096896,4,6,0.518118,5,0.256113,8,0.126696,7,0.099072,4,6,0.537559,5,0.246699,8,0.121708,7,0.094034,4,6,0.543593,5,0.244826,8,0.11956,7,0.09202,4,6,0.576306,5,0.219616,8,0.116263,7,0.087815,4,6,0.612584,5,0.193451,8,0.111512,7,0.082454,4,6,0.657988,5,0.162796,8,0.10423,7,0.074986,4,6,0.69459,5,0.13983,8,0.09722,7,0.06836,4,6,0.731237,5,0.11718,8,0.089944,7,0.061638,4,6,0.778777,5,0.091519,8,0.077995,7,0.051709,4,6,0.733511,5,0.119603,8,0.087002,7,0.059885,4,6,0.681506,5,0.152401,8,0.09705,7,0.069043,4,6,0.64275,5,0.178848,8,0.103261,7,0.07514,4,6,0.598743,5,0.209469,8,0.109868,7,0.081921,4,6,0.561269,5,0.236593,8,0.114773,7,0.087364,4,6,0.525308,5,0.263388,8,0.118929,7,0.092375,4,6,0.588897,5,0.219213,8,0.109707,7,0.082184,4,6,0.62444,5,0.198175,8,0.102316,7,0.075069,4,6,0.668137,5,0.171476,8,0.093497,7,0.06689,4,6,0.752163,5,0.118693,8,0.076661,7,0.052483,4,6,0.818897,5,0.080235,8,0.060801,7,0.040066,4,6,0.86365,5,0.05532,8,0.04954,7,0.03149,4,6,0.875031,5,0.048449,8,0.0471,7,0.029421,4,6,0.893812,8,0.042267,5,0.038372,7,0.025549,4,6,0.911154,8,0.035031,5,0.03266,7,0.021155,4,6,0.913553,8,0.03345,5,0.032635,7,0.020362,4,6,0.913823,8,0.035163,5,0.030203,7,0.02081,4,6,0.907036,8,0.03924,5,0.030974,7,0.02275,4,6,0.890701,8,0.047717,5,0.034501,7,0.027081,4,6,0.873211,8,0.057006,5,0.038042,7,0.031741,4,6,0.853932,8,0.067392,5,0.041743,7,0.036932,4,6,0.848825,8,0.071763,5,0.040967,7,0.038445,4,6,0.845202,8,0.074812,5,0.040475,7,0.039512,4,6,0.871174,8,0.061413,5,0.034866,7,0.032547,4,6,0.896024,8,0.049005,5,0.028944,7,0.026027,4,6,0.921147,8,0.036607,5,0.0227,7,0.019545,4,6,0.901427,8,0.047668,5,0.026204,7,0.024701,4,6,0.899481,8,0.050343,7,0.025282,5,0.024893,4,6,0.909021,8,0.047514,7,0.022864,5,0.020601,4,6,0.915205,8,0.045725,7,0.021298,5,0.017772,4,6,0.930131,8,0.038986,7,0.017474,5,0.013409,4,6,0.937279,8,0.035757,7,0.015687,5,0.011277,4,6,0.948598,8,0.029909,7,0.012849,5,0.008644,4,6,0.957686,8,0.025015,7,0.010651,5,0.006647,4,6,0.94992,8,0.02979,7,0.012749,5,0.007541,4,6,0.913138,8,0.051373,7,0.022597,5,0.012892,4,6,0.863306,8,0.079253,7,0.036582,5,0.020859,4,6,0.892494,8,0.063696,7,0.028189,5,0.015621,4,6,0.928613,8,0.043037,7,0.018276,5,0.010073,4,6,0.978327,8,0.013257,7,0.005364,5,0.003053,4,6,0.984493,8,0.009416,7,0.003802,5,0.002289,4,6,0.976357,8,0.014102,7,0.005777,5,0.003764,4,6,0.96869,8,0.018219,7,0.007654,5,0.005437,4,6,0.962097,8,0.021497,7,0.009295,5,0.007111,4,6,0.962441,8,0.020733,7,0.009211,5,0.007615,4,6,0.963684,8,0.019325,7,0.008913,5,0.008078,4,6,0.959098,8,0.020601,5,0.010237,7,0.010064,4,6,0.969471,8,0.014565,5,0.008504,7,0.007459,4,6,0.970828,8,0.013119,5,0.008978,7,0.007075,4,6,0.975429,8,0.010375,5,0.008328,7,0.005868,4,6,0.958406,8,0.01662,5,0.0152,7,0.009774,4,6,0.937816,5,0.023956,8,0.023836,7,0.014391,4,6,0.952406,8,0.029362,7,0.011868,5,0.006364,4,6,0.932959,8,0.041802,7,0.016668,5,0.008571,4,6,0.951221,8,0.031252,7,0.011671,5,0.005856,4,6,0.974879,8,0.016471,7,0.005728,5,0.002922,4,6,0.949731,8,0.033702,7,0.010903,5,0.005664,4,6,0.898123,8,0.069543,7,0.021083,5,0.011251,4,6,0.862184,8,0.093793,7,0.028079,5,0.015945,4,6,0.827645,8,0.114176,7,0.035582,5,0.022597,4,6,0.789293,8,0.134664,7,0.044556,5,0.031487,4,6,0.780073,8,0.13404,7,0.047999,5,0.037889,4,6,0.829008,8,0.100679,7,0.038146,5,0.032167,4,6,0.882817,8,0.06884,7,0.026308,5,0.022034,4,6,0.929601,8,0.039523,7,0.016167,5,0.014709,4,6,0.963559,8,0.018994,5,0.008904,7,0.008543,4,6,0.970061,8,0.014574,5,0.008317,7,0.007049,4,6,0.96914,8,0.013876,5,0.009769,7,0.007215,4,6,0.952713,8,0.019607,5,0.016818,7,0.010862,4,6,0.982617,8,0.007246,5,0.006105,7,0.004032,4,6,0.985044,8,0.006124,5,0.005347,7,0.003485,4,6,0.954997,8,0.017517,5,0.017078,7,0.010409,4,6,0.935516,8,0.042224,7,0.01501,5,0.00725,4,6,0.837641,8,0.10599,7,0.038935,5,0.017434,4,6,0.776719,8,0.146034,7,0.054053,5,0.023194,4,6,0.656148,8,0.222967,7,0.086371,5,0.034514,4,6,0.726074,8,0.183149,7,0.064472,5,0.026304,4,6,0.787713,8,0.144429,7,0.047746,5,0.020112,4,6,0.866414,8,0.092506,7,0.028263,5,0.012817,4,6,0.802767,8,0.136207,7,0.042827,5,0.018199,4,6,0.658703,8,0.237082,7,0.07531,5,0.028906,4,6,0.69905,8,0.197799,7,0.061656,5,0.041495,4,6,0.672163,8,0.22718,7,0.063304,5,0.037354,4,6,0.656947,8,0.251001,7,0.061742,5,0.03031,4,6,0.665619,8,0.247765,7,0.060114,5,0.026503,4,6,0.711314,8,0.210115,7,0.055613,5,0.022958,4,6,0.703266,8,0.209825,7,0.062242,5,0.024667,4,6,0.567633,8,0.297662,7,0.098972,5,0.035732,4,6,0.46261,8,0.370269,7,0.125427,5,0.041694,4,6,0.400694,8,0.419585,7,0.136916,5,0.042805,4,6,0.387624,8,0.439806,7,0.131957,5,0.040613,4,6,0.388773,8,0.448651,7,0.124189,5,0.038386,4,6,0.398816,8,0.451028,7,0.114147,5,0.03601,4,6,0.395886,8,0.464637,7,0.105499,5,0.033979,4,6,0.371433,8,0.495341,7,0.100489,5,0.032736,4,6,0.311912,8,0.554484,7,0.10169,5,0.031914,4,6,0.306337,8,0.546284,7,0.113693,5,0.033686,4,6,0.283504,8,0.555986,7,0.125275,5,0.035235,4,6,0.247675,8,0.578818,7,0.137273,5,0.036234,4,6,0.200304,8,0.613543,7,0.149957,5,0.036197,4,6,0.166891,8,0.639402,7,0.157989,5,0.035719,4,6,0.145198,8,0.652079,7,0.16679,5,0.035934,4,6,0.126811,8,0.651742,7,0.183831,5,0.037615,4,6,0.118166,8,0.643096,7,0.199233,5,0.039505,4,6,0.105336,8,0.629641,7,0.22326,5,0.041763,4,6,0.095469,8,0.633955,7,0.229814,5,0.040763,4,6,0.086007,8,0.649992,7,0.226022,5,0.037978,4,6,0.075368,8,0.70974,7,0.18473,5,0.030162,4,6,0.066836,8,0.754526,7,0.153781,5,0.024856,4,6,0.059271,8,0.80666,7,0.114931,5,0.019138,4,6,0.065787,8,0.812597,7,0.103112,5,0.018504,4,6,0.077587,8,0.803971,7,0.099035,5,0.019407,4,6,0.078128,8,0.813621,7,0.089757,5,0.018494,4,6,0.076948,8,0.834103,7,0.072154,5,0.016794,4,6,0.060723,8,0.871008,7,0.054298,5,0.013971,4,6,0.065089,8,0.860802,7,0.057372,5,0.016737,4,6,0.108391,8,0.771011,7,0.089572,5,0.031026,4,6,0.163993,8,0.654393,7,0.12738,5,0.054234,4,6,0.050723,8,0.852562,7,0.08212,5,0.014595,4,6,0.020148,8,0.920955,7,0.05148,5,0.007418,4,6,0.005846,8,0.969176,7,0.022357,5,0.002621,4,6,0.002446,8,0.982513,7,0.013739,5,0.001302,4,6,0.016708,8,0.803304,7,0.168503,5,0.011485,4,6,0.008837,8,0.890643,7,0.094486,5,0.006034,4,6,0.019721,8,0.699062,7,0.266129,5,0.015088,4,6,0.029541,8,0.516527,7,0.428518,5,0.025414,4,6,0.04128,7,0.505296,8,0.413508,5,0.039916,4,6,0.026474,7,0.618124,8,0.326971,5,0.028431,4,6,0.010463,7,0.837801,8,0.138675,5,0.013061,4,6,0.013477,7,0.809401,8,0.159929,5,0.017192,4,6,0.002866,7,0.963187,8,0.029527,5,0.00442,4,6,0.002281,7,0.974232,8,0.019229,5,0.004258,4,6,0.008574,7,0.914456,8,0.055949,5,0.021021,4,6,0.012622,7,0.877626,8,0.072583,5,0.037169,4,6,0.002047,8,0.980784,7,0.015921,5,0.001249,4,6,0.000336,8,0.997633,7,0.001849,5,0.000182,4,6,0.001529,7,0.977728,8,0.018573,5,0.00217,4,6,0.000413,7,0.994504,8,0.004434,5,0.000648,4,6,0.000064,7,0.999227,8,0.000594,5,0.000115,4,6,0.02149,7,0.79526,8,0.108287,5,0.074963,4,6,0.021878,7,0.795768,8,0.117245,5,0.065109,4,6,0.025412,7,0.770777,8,0.140468,5,0.063343,4,6,0.032792,7,0.71705,8,0.178067,5,0.072091,4,6,0.039187,7,0.674945,8,0.204865,5,0.081003,4,6,0.043392,7,0.650207,8,0.207198,5,0.099203,4,6,0.04127,7,0.658545,8,0.18955,5,0.110635,4,6,0.039953,7,0.654422,8,0.174663,5,0.130963,4,6,0.040295,7,0.628802,8,0.165961,5,0.164941,4,6,0.039798,7,0.617146,5,0.184208,8,0.158848,4,6,0.0388,7,0.594208,5,0.219906,8,0.147086,4,6,0.035539,7,0.582801,5,0.251639,8,0.130021,4,6,0.032462,7,0.5694,5,0.28314,8,0.114997,4,6,0.030735,7,0.567014,5,0.294187,8,0.108064,4,6,0.03017,7,0.564341,5,0.299316,8,0.106172,4,6,0.031073,7,0.50822,5,0.355653,8,0.105054,4,6,0.032207,7,0.497931,5,0.362403,8,0.107459,4,6,0.034966,7,0.485309,5,0.364243,8,0.115482,4,6,0.038187,7,0.47603,5,0.360348,8,0.125435,4,6,0.04296,7,0.462033,5,0.355919,8,0.139087,4,6,0.045136,7,0.442465,5,0.369736,8,0.142663,4,6,0.043963,5,0.420422,7,0.402622,8,0.132993,4,6,0.041232,5,0.470573,7,0.367456,8,0.12074,4,6,0.036971,5,0.530029,7,0.32785,8,0.10515,4,6,0.03178,5,0.587534,7,0.291359,8,0.089328,4,6,0.029103,5,0.638393,7,0.252802,8,0.079701,4,6,0.025194,5,0.703306,7,0.204573,8,0.066926,4,6,0.021608,5,0.754884,7,0.167254,8,0.056254,4,6,0.027277,5,0.686199,7,0.214658,8,0.071866,4,6,0.032341,5,0.630098,7,0.251626,8,0.085935,4,6,0.037825,5,0.588338,7,0.274048,8,0.099789,4,6,0.036858,5,0.615159,7,0.253263,8,0.09472,4,6,0.030068,5,0.68587,7,0.208147,8,0.075916,4,6,0.02308,5,0.763769,7,0.156076,8,0.057075,4,6,0.015577,5,0.84863,7,0.098474,8,0.03732,4,6,0.008517,5,0.922672,7,0.049219,8,0.019592,4,6,0.027557,5,0.634388,7,0.260593,8,0.077463,4,6,0.024289,5,0.68126,7,0.226429,8,0.068022,4,6,0.023082,5,0.706279,7,0.206575,8,0.064064,4,6,0.024248,5,0.717195,7,0.193162,8,0.065395,4,6,0.027749,5,0.712945,7,0.187552,8,0.071754,4,6,0.029563,5,0.746599,7,0.154049,8,0.069789,4,6,0.033214,5,0.770698,7,0.126877,8,0.069211,4,6,0.030071,5,0.601336,7,0.283705,8,0.084887,4,6,0.018735,7,0.817369,8,0.093214,5,0.070682,4,6,0.01702,7,0.83027,8,0.082524,5,0.070185,4,6,0.014188,7,0.854742,8,0.066922,5,0.064147,4,6,0.016631,7,0.830316,8,0.078235,5,0.074818,4,6,0.029116,7,0.711554,8,0.133634,5,0.125696,4,6,0.04512,7,0.580174,8,0.1933,5,0.181406,4,6,0.069927,7,0.428857,8,0.250634,5,0.250581,4,6,0.076443,7,0.408542,8,0.27119,5,0.243824,4,6,0.087233,7,0.378908,8,0.30766,5,0.226199,4,6,0.100117,7,0.341704,8,0.316651,5,0.241529,4,6,0.109857,7,0.317193,8,0.3134,5,0.25955,4,6,0.107974,8,0.339812,7,0.326668,5,0.225546,4,6,0.115814,8,0.38804,7,0.308411,5,0.187736,4,6,0.12483,8,0.424222,7,0.285097,5,0.165852,4,6,0.140749,8,0.432806,7,0.262463,5,0.163983,4,6,0.154971,8,0.448985,7,0.242509,5,0.153535,4,6,0.147667,8,0.482766,7,0.236274,5,0.133293,4,6,0.155769,8,0.51625,7,0.213212,5,0.114769,4,6,0.178731,8,0.526925,7,0.189771,5,0.104573,4,6,0.201775,8,0.512344,7,0.18066,5,0.105221,4,6,0.17134,8,0.566086,7,0.174689,5,0.087884,4,6,0.162185,8,0.607494,7,0.157555,5,0.072765,4,6,0.030048,5,0.816002,7,0.096757,8,0.057193,4,6,0.025368,5,0.861462,7,0.069264,8,0.043906,4,6,0.024039,5,0.845939,7,0.083279,8,0.046743,4,6,0.018888,5,0.856587,7,0.083971,8,0.040555,4,6,0.012515,5,0.891919,7,0.067053,8,0.028514,4,6,0.006258,5,0.94304,7,0.03622,8,0.014481,4,6,0.005522,5,0.949981,7,0.031807,8,0.01269,4,6,0.010544,5,0.90809,7,0.057682,8,0.023683,4,6,0.0126,5,0.894605,7,0.065177,8,0.027618,4,6,0.010843,5,0.913595,7,0.052533,8,0.023028,4,6,0.007187,5,0.945442,7,0.032612,8,0.014759,4,6,0.004328,5,0.96874,7,0.018348,8,0.008584,4,6,0.003528,5,0.976589,7,0.013294,8,0.006588,4,6,0.005032,5,0.969083,7,0.017001,8,0.008883,4,6,0.007185,5,0.96043,7,0.02071,8,0.011676,4,6,0.009867,5,0.951463,7,0.024033,8,0.014636,4,6,0.012019,5,0.948013,7,0.024018,8,0.015949,4,6,0.013467,5,0.948688,7,0.021987,8,0.015858,4,6,0.016756,5,0.943329,7,0.02248,8,0.017435,4,6,0.015904,5,0.951757,7,0.017684,8,0.014654,4,6,0.022776,5,0.937146,7,0.021371,8,0.018707,4,6,0.011264,5,0.915929,7,0.049904,8,0.022903,4,6,0.019937,5,0.853062,7,0.086638,8,0.040364,4,6,0.025634,5,0.81722,7,0.10627,8,0.050876,4,6,0.019453,5,0.861878,7,0.080319,8,0.038351,4,6,0.012024,5,0.91548,7,0.049044,8,0.023452,4,6,0.007746,5,0.948445,7,0.029306,8,0.014502,4,6,0.010742,5,0.936965,7,0.033998,8,0.018295,4,6,0.016655,5,0.913636,7,0.043998,8,0.025711,4,6,0.020517,5,0.90269,7,0.047404,8,0.029389,4,6,0.0271,5,0.884014,7,0.053473,8,0.035413,4,6,0.033176,5,0.872283,7,0.05535,8,0.039191,4,6,0.031648,5,0.885362,7,0.047788,8,0.035202,4,6,0.026514,5,0.90828,7,0.037047,8,0.02816,4,6,0.039708,5,0.850146,7,0.064202,8,0.045944,4,6,0.045017,5,0.826184,7,0.07557,8,0.053229,4,6,0.047523,5,0.822789,7,0.075411,8,0.054276,4,6,0.047123,5,0.833173,7,0.068651,8,0.051053,4,6,0.045242,5,0.847804,7,0.060495,8,0.046459,4,6,0.044029,5,0.86041,7,0.053188,8,0.042372,4,6,0.039403,5,0.882219,7,0.04291,8,0.035468,4,6,0.036999,5,0.897647,7,0.034992,8,0.030362,4,6,0.0444,5,0.872223,7,0.0452,8,0.038177,4,6,0.048749,5,0.865083,7,0.046225,8,0.039943,4,6,0.054326,5,0.860828,7,0.044517,8,0.040329,4,6,0.065288,5,0.842796,7,0.047361,8,0.044556,4,6,0.076409,5,0.823478,7,0.050955,8,0.049158,4,6,0.09512,5,0.789512,7,0.058016,8,0.057352,4,6,0.124984,5,0.738901,8,0.068776,7,0.067339,4,6,0.149633,5,0.698531,8,0.077454,7,0.074382,4,6,0.176408,5,0.652781,8,0.087541,7,0.08327,4,6,0.197094,5,0.616201,8,0.095853,7,0.090852,4,6,0.210466,5,0.592825,8,0.101129,7,0.09558,4,6,0.185177,5,0.628966,8,0.094622,7,0.091235,4,6,0.159088,5,0.667145,8,0.087392,7,0.086375,4,6,0.133535,5,0.705877,7,0.081009,8,0.079579,4,6,0.117281,5,0.730722,7,0.077588,8,0.074409,4,6,0.101596,5,0.755857,7,0.073701,8,0.068846,4,6,0.093345,5,0.767052,7,0.072951,8,0.066652,4,6,0.106014,5,0.743752,7,0.077825,8,0.072409,4,6,0.127225,5,0.708392,7,0.083903,8,0.08048,4,6,0.151305,5,0.669953,7,0.089963,8,0.088778,4,6,0.181425,5,0.62508,8,0.097611,7,0.095885,4,6,0.203368,5,0.594182,8,0.103151,7,0.0993,4,6,0.224638,5,0.566023,8,0.107643,7,0.101696,4,6,0.232522,5,0.552794,8,0.110537,7,0.104147,4,6,0.241387,5,0.536997,8,0.114216,7,0.1074,4,6,0.220149,5,0.561236,8,0.111459,7,0.107156,4,6,0.217618,5,0.562066,8,0.112031,7,0.108285,4,6,0.23163,5,0.543063,8,0.115236,7,0.11007,4,6,0.242576,5,0.528056,8,0.117795,7,0.111573,4,6,0.237804,5,0.531977,8,0.117861,7,0.112358,4,6,0.2322,5,0.537347,8,0.11758,7,0.112874,4,6,0.224875,5,0.544752,8,0.117017,7,0.113356,4,6,0.22084,5,0.548127,8,0.117008,7,0.114025,4,6,0.226811,5,0.537439,8,0.119552,7,0.116199,4,6,0.237542,5,0.522506,8,0.122221,7,0.117731,4,6,0.248784,5,0.508652,8,0.124194,7,0.11837,4,6,0.257916,5,0.498325,8,0.125352,7,0.118407,4,6,0.267059,5,0.488694,8,0.126163,7,0.118083,4,6,0.263863,5,0.489661,8,0.126989,7,0.119486,4,6,0.261706,5,0.489976,8,0.127697,7,0.120621,4,6,0.260988,5,0.487906,8,0.128932,7,0.122174,4,6,0.267674,5,0.479049,8,0.130383,7,0.122894,4,6,0.277532,5,0.469029,8,0.131096,7,0.122342,4,6,0.288573,5,0.458108,8,0.131719,7,0.1216,4,6,0.295108,5,0.451762,8,0.132015,7,0.121115,4,6,0.305065,5,0.438954,8,0.133946,7,0.122035,3,6,0.366305,5,0.477928,8,0.155767,3,6,0.382151,5,0.460368,8,0.157481,3,6,0.400297,5,0.44263,8,0.157073,3,6,0.416383,5,0.427234,8,0.156382,3,6,0.427965,5,0.414,8,0.158035,3,6,0.444218,5,0.39665,8,0.159132,3,6,0.456324,5,0.384778,8,0.158898,3,6,0.483204,5,0.360506,8,0.15629,4,6,0.012156,5,0.96545,7,0.012002,8,0.010392,4,6,0.002395,5,0.992941,7,0.00251,8,0.002154,4,6,0.001479,5,0.995599,7,0.001562,8,0.00136,4,6,0.001153,5,0.996156,7,0.001481,8,0.001209,4,6,0.001883,5,0.992932,7,0.002941,8,0.002244,4,6,0.003991,5,0.983225,7,0.007451,8,0.005333,4,6,0.012366,5,0.936726,7,0.031011,8,0.019897,4,6,0.005856,5,0.972268,7,0.013142,8,0.008735],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[6,-0.426882,0.904307,-0.904307,-0.426882,-53.25,-377.15,5,0.498192,0.867067,-0.867067,0.498192,55.9,-377.15,8,-0.014704,0.999892,-0.999892,-0.014704,-16.1,-291.1,7,-0.118087,0.993003,-0.993003,-0.118087,27.1,-277.9],\"edges\":[2,58,58,0,3,148,148,2,1,250,250,3,0,316,316,1],\"userEdges\":[]}]},{\"name\":\"龙身\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/龙身\",\"width\":200,\"height\":1609,\"vertices\":[-111.79,-355.12,88.21,-355.12,-111.79,1253.88,88.21,1253.88,-46.95,-298.25,-22.15,-335,37.7,-331.75,56.15,-282.55,-49.65,-263.8,-50.95,-234.7,-50.6,-204.1,-52.9,-179.7,-54.55,-157.35,-55.4,-139.9,-56,-121.7,-57.05,-99.3,-57.85,-78.1,-57.55,-56.75,-54.8,-32.6,-54.8,-13.35,-55.1,5.9,-54.5,21.4,-54.95,37.05,-55.1,58.7,-54.5,79.45,-55.1,96.15,-54.25,114.95,-54.4,133.35,-54.1,155.55,-54.4,176.55,-53.8,199.2,-54.9,225.35,-53.95,251.3,-53.3,274.65,-53,290,-51.65,315.75,-51.7,335.7,-51.5,356.75,-52,378.65,-51.65,401,-51.2,422.85,-50.85,445.25,-50.85,462.7,-50.2,487.7,-49.4,511.65,-48.1,542.55,-46.6,571.9,-45.45,597.25,-44,625.95,-42.85,645.7,-41.05,668.4,-40.4,692.85,-37.95,728.95,-34.85,762.1,-33.55,795.5,-35.2,824.6,-38,842.25,-42.7,857.4,-48.1,869.3,-58.7,884.5,-52,887.75,-53.45,895.6,-58.7,910.75,-61.45,928.4,-63.1,939.65,-63.1,947.2,-54.95,940.5,-51.75,938.7,-52.9,944.9,-56,958.7,-57.5,971.1,-58.3,982.95,-58.15,993.95,-58.65,1006.85,-57.9,1017.85,-59.35,1029.05,-62.5,1038.45,-69.25,1042.5,-62.5,1047,-51.5,1047.2,-55.55,1062.05,-55.75,1079.55,-53.75,1097.7,-50.6,1111.65,-46.8,1126.45,-39.8,1144.2,-34.9,1156.8,-36.45,1179,-30.85,1178.3,-27.5,1168.9,-23.2,1156.55,-19.4,1179.2,-11.15,1197.85,-1.25,1213.55,5.3,1226.8,12.7,1243.85,14.7,1253.88,18.3,1241.15,21.45,1228.6,25.95,1217.6,32.2,1208.2,34.7,1202.35,41.45,1185.3,47.7,1166.2,47.7,1153.65,52.9,1163.75,57.6,1176.1,62.3,1174.75,59.4,1166.45,59.8,1148.95,65.45,1135.25,68.55,1125.55,72.8,1109.85,76.85,1089.9,77.1,1077.8,77.1,1061.85,71.95,1043.9,78.9,1042.75,88.21,1040.95,88.21,1033.8,83.15,1032.9,80.25,1024.35,76.9,1012.9,77.55,998.1,75.95,976.55,74.9,960.15,72.85,949.35,69.45,940.15,66.55,933.65,71.95,935.9,78.9,941.3,82.05,937.7,80,929.6,77.1,915.5,73.5,903.6,69.25,893.5,65.65,885.85,72.15,882.45,72.35,877.55,65.4,870.15,58.45,857.8,55.75,848.15,51.75,834.7,47.9,819.4,45.9,804.15,46.1,784.85,46.75,768.3,48.3,745.85,49.7,727.25,50.8,706.1,52.15,687.05,53.5,665.1,55.2,639.5,56.2,616.35,57.95,596.55,58.65,576.6,60.25,549.7,60.7,517.7,62.05,486.85,63,457.35,64.15,419.65,64.1,381.7,63.9,344.2,63.9,311.25,66.85,277.45,66.4,238.55,66.4,201.1,65.95,157.2,66.65,102.3,67.1,60.7,67.3,34.15,66.9,-5.35,67.6,-34.4,69.4,-71.2,70.05,-93.6,67.55,-117.65,67.1,-136.6,66.2,-161.25,64.1,-178.45,62.75,-199.95,63.4,-223.25,64.6,-244.7,62.1,-271,-23.15,1144.6,45.65,1145.8,-48.2,932.4,63.1,929.35,-33.7,810],\"uvs\":[0,0,1,0,0,1,1,1,0.32418,0.03534,0.44818,0.0125,0.74743,0.01452,0.83968,0.0451,0.31068,0.05675,0.30418,0.07484,0.30593,0.09386,0.29443,0.10902,0.28618,0.12291,0.28193,0.13376,0.27893,0.14507,0.27368,0.15899,0.26968,0.17217,0.27118,0.18544,0.28493,0.20044,0.28493,0.21241,0.28343,0.22437,0.28643,0.23401,0.28418,0.24373,0.28343,0.25719,0.28643,0.27008,0.28343,0.28046,0.28768,0.29215,0.28693,0.30358,0.28843,0.31738,0.28693,0.33043,0.28993,0.34451,0.28443,0.36076,0.28918,0.37689,0.29243,0.3914,0.29393,0.40094,0.30068,0.41695,0.30043,0.42934,0.30143,0.44243,0.29893,0.45604,0.30068,0.46993,0.30293,0.48351,0.30468,0.49743,0.30468,0.50828,0.30793,0.52381,0.31193,0.5387,0.31843,0.5579,0.32593,0.57614,0.33168,0.5919,0.33893,0.60974,0.34468,0.62201,0.35368,0.63612,0.35693,0.65131,0.36918,0.67375,0.38468,0.69435,0.39118,0.71511,0.38293,0.7332,0.36893,0.74417,0.34543,0.75358,0.31843,0.76098,0.26543,0.77043,0.29893,0.77245,0.29168,0.77732,0.26543,0.78674,0.25168,0.79771,0.24343,0.8047,0.24343,0.80939,0.28418,0.80523,0.30018,0.80411,0.29443,0.80796,0.27893,0.81654,0.27143,0.82425,0.26743,0.83161,0.26818,0.83845,0.26568,0.84647,0.26943,0.8533,0.26218,0.86026,0.24643,0.86611,0.21268,0.86862,0.24643,0.87142,0.30143,0.87154,0.28118,0.88077,0.28018,0.89165,0.29018,0.90293,0.30593,0.9116,0.32493,0.9208,0.35993,0.93183,0.38443,0.93966,0.37668,0.95346,0.40468,0.95302,0.42143,0.94718,0.44293,0.93951,0.46193,0.95358,0.50318,0.96517,0.55268,0.97493,0.58543,0.98317,0.62243,0.99376,0.63243,1,0.65043,0.99209,0.66618,0.98429,0.68868,0.97745,0.71993,0.97161,0.73243,0.96797,0.76618,0.95737,0.79743,0.9455,0.79743,0.9377,0.82343,0.94398,0.84693,0.95166,0.87043,0.95082,0.85593,0.94566,0.85793,0.93478,0.88618,0.92627,0.90168,0.92024,0.92293,0.91048,0.94318,0.89808,0.94443,0.89056,0.94443,0.88065,0.91868,0.86949,0.95343,0.86878,1,0.86766,1,0.86322,0.97468,0.86266,0.96018,0.85734,0.94343,0.85023,0.94668,0.84103,0.93868,0.82764,0.93343,0.81744,0.92318,0.81073,0.90618,0.80501,0.89168,0.80097,0.91868,0.80237,0.95343,0.80573,0.96918,0.80349,0.95893,0.79846,0.94443,0.78969,0.92643,0.7823,0.90518,0.77602,0.88718,0.77127,0.91968,0.76915,0.92068,0.76611,0.88593,0.76151,0.85118,0.75383,0.83768,0.74783,0.81768,0.73948,0.79843,0.72997,0.78843,0.72049,0.78943,0.70849,0.79268,0.69821,0.80043,0.68425,0.80743,0.67269,0.81293,0.65955,0.81968,0.64771,0.82643,0.63407,0.83493,0.61816,0.83993,0.60377,0.84868,0.59146,0.85218,0.57906,0.86018,0.56235,0.86243,0.54246,0.86918,0.52328,0.87393,0.50495,0.87968,0.48152,0.87943,0.45793,0.87843,0.43463,0.87843,0.41415,0.89318,0.39314,0.89093,0.36897,0.89093,0.34569,0.88868,0.31841,0.89218,0.28429,0.89443,0.25843,0.89543,0.24193,0.89343,0.21738,0.89693,0.19933,0.90593,0.17645,0.90918,0.16253,0.89668,0.14759,0.89443,0.13581,0.88993,0.12049,0.87943,0.1098,0.87268,0.09644,0.87593,0.08195,0.88193,0.06862,0.86943,0.05228,0.44318,0.93208,0.78718,0.93282,0.31793,0.8002,0.87443,0.7983,0.39043,0.72412],\"triangles\":[145,144,143,145,143,142,153,152,154,102,101,106,155,154,156,157,156,158,106,101,107,109,108,107,179,178,180,109,107,110,162,161,164,163,162,164,161,160,164,180,178,177,181,180,177,168,167,166,164,166,165,171,170,172,172,170,173,110,107,111,176,175,174,142,141,138,145,142,138,140,139,138,141,140,138,146,145,138,147,146,138,148,147,138,149,148,138,150,149,138,151,150,138,152,151,138,154,152,138,137,135,134,137,134,133,138,137,133,126,125,130,154,138,131,156,154,131,130,125,131,125,124,131,124,123,131,133,132,131,138,133,131,158,156,131,159,158,131,160,159,131,164,160,131,100,99,3,99,98,3,98,97,3,97,96,3,107,101,3,101,100,3,112,111,3,111,107,3,113,112,3,122,121,119,123,122,119,164,131,119,131,123,119,121,120,119,5,6,1,0,5,1,7,182,1,6,7,1,182,181,1,168,166,1,169,168,1,166,164,1,173,170,1,170,169,1,176,174,1,177,176,1,181,177,1,174,173,1,164,119,1,114,113,118,119,120,118,120,117,118,117,115,118,115,114,118,113,3,118,116,115,117,121,116,120,116,117,120,132,129,131,129,130,131,122,116,121,128,129,132,133,186,132,186,128,132,129,127,130,127,126,130,124,72,123,81,82,114,116,79,114,79,81,114,123,72,122,72,73,122,134,186,133,114,82,113,116,114,115,82,112,113,74,116,122,73,74,122,82,183,112,136,135,137,74,79,116,125,69,124,69,70,124,71,72,124,70,71,124,183,184,112,126,127,125,127,186,125,186,69,125,68,69,186,135,186,134,80,81,79,184,111,112,136,137,138,139,136,138,128,127,129,185,68,186,26,27,168,168,27,167,24,168,169,21,170,171,167,29,166,17,172,173,128,186,127,136,186,135,175,15,174,16,173,174,15,16,174,32,164,165,17,18,172,16,17,173,184,110,111,82,83,183,105,108,109,61,185,186,61,186,136,60,61,136,34,163,164,32,33,164,24,25,168,22,23,169,22,169,170,177,12,176,12,13,176,30,31,166,29,30,166,166,31,165,19,171,172,18,19,172,176,14,175,14,15,175,27,28,167,23,24,169,21,22,170,19,21,171,13,14,176,31,32,165,39,160,161,178,12,177,162,37,161,33,34,164,25,26,168,28,29,167,41,159,160,40,41,160,35,36,163,11,12,178,163,36,162,140,57,136,57,58,136,58,60,136,184,109,110,140,136,139,39,40,160,34,35,163,182,7,181,7,8,181,8,9,181,10,179,180,181,9,180,37,39,161,36,37,162,9,10,180,42,158,159,10,11,179,179,11,178,104,105,109,42,43,158,44,157,158,43,44,158,108,106,107,41,42,159,45,156,157,46,155,156,44,45,157,184,104,109,45,46,156,105,106,108,105,103,106,47,154,155,46,47,155,141,57,140,56,57,141,47,153,154,103,102,106,6,5,7,5,4,7,4,8,7,48,152,153,47,48,153,142,56,141,49,151,152,48,49,152,104,103,105,50,150,151,49,50,151,51,149,150,50,51,150,143,55,142,55,56,142,52,148,149,51,52,149,52,147,148,52,53,147,147,53,146,90,91,103,90,103,104,184,90,104,144,187,143,187,55,143,91,102,103,53,145,146,53,54,145,145,54,144,54,187,144,183,90,184,92,101,102,91,92,102,93,100,101,92,93,101,93,99,100,94,98,99,93,94,99,95,96,97,94,97,98,83,84,183,94,95,97,94,2,95,95,2,96,93,2,94,74,75,79,90,89,91,87,2,92,92,2,93,61,62,185,91,88,92,88,87,92,67,68,185,84,85,183,89,88,91,86,89,90,86,90,183,0,4,5,85,86,183,87,88,89,86,87,89,53,59,54,54,59,187,59,55,187,52,59,53,85,87,86,59,56,55,59,57,56,85,2,87,59,58,57,84,2,85,51,59,52,62,63,185,49,59,51,49,51,50,75,76,79,59,60,58,48,59,49,47,59,48,45,59,46,83,2,84,46,59,47,44,59,45,0,8,4,43,2,44,2,59,44,63,67,185,65,69,68,78,80,79,82,2,83,66,68,67,0,9,8,42,2,43,63,66,67,76,78,79,9,0,10,0,11,10,59,61,60,36,39,37,39,2,42,40,39,42,41,40,42,35,34,36,34,39,36,34,0,39,0,2,39,2,64,59,77,2,82,63,64,66,33,32,34,32,31,34,31,0,34,66,65,68,0,12,11,59,62,61,29,31,30,81,77,82,19,22,21,23,25,24,64,65,66,27,29,28,25,27,26,17,19,18,27,25,29,25,0,29,0,31,29,0,13,12,0,23,22,17,0,22,19,17,22,77,81,80,78,77,80,0,14,13,23,0,25,0,15,14,65,70,69,15,0,16,16,0,17,70,65,71,65,72,71,65,73,72,65,77,73,77,75,74,73,77,74,64,63,59,63,62,59,77,76,75,76,77,78,64,77,65,2,77,64],\"weights\":[1,4,1,1,4,1,3,51,0.399709,53,0.332668,50,0.267623,4,51,0.486647,54,0.209167,50,0.19242,53,0.111767,4,4,0.693976,24,0.123344,9,0.103771,19,0.078909,1,4,1,1,4,1,2,4,0.881781,9,0.118219,4,4,0.68581,24,0.132871,9,0.104154,19,0.077165,4,4,0.581497,24,0.18702,9,0.134388,19,0.097095,4,4,0.452701,24,0.260672,9,0.16907,19,0.117558,4,4,0.315178,24,0.356856,9,0.186482,19,0.141484,4,4,0.220732,24,0.421329,9,0.183023,19,0.174915,4,4,0.176806,24,0.396226,19,0.226469,15,0.200499,4,24,0.315955,15,0.311204,19,0.250798,9,0.122044,4,15,0.671172,19,0.17383,24,0.105228,9,0.04977,4,15,0.980304,19,0.01317,24,0.003634,9,0.002892,4,15,0.606865,19,0.22166,9,0.091355,12,0.080121,4,15,0.34583,12,0.219201,19,0.218583,9,0.216387,4,12,0.309637,15,0.255451,9,0.24637,19,0.188542,4,12,0.374228,9,0.220975,20,0.212883,15,0.191914,4,12,0.393734,20,0.285478,9,0.177844,15,0.142944,4,12,0.39547,20,0.354441,9,0.139895,15,0.110193,4,20,0.404536,12,0.389105,22,0.1047,9,0.10166,4,20,0.42895,12,0.34074,22,0.150497,9,0.079812,4,20,0.444953,12,0.278622,22,0.20809,9,0.068335,4,20,0.445137,22,0.282261,12,0.202492,27,0.07011,4,20,0.419895,22,0.353978,12,0.142212,27,0.083915,4,22,0.408597,20,0.388629,27,0.107354,12,0.095419,4,22,0.429613,20,0.335692,27,0.157088,30,0.077607,4,22,0.425949,20,0.237373,27,0.227121,30,0.109558,4,22,0.379243,27,0.307296,30,0.170821,20,0.14264,4,27,0.306057,22,0.30336,30,0.270404,39,0.120179,4,30,0.461921,27,0.222571,22,0.171627,39,0.143881,4,30,0.651987,27,0.134494,39,0.131036,31,0.082483,4,30,0.975715,39,0.013003,27,0.005948,31,0.005334,4,30,0.786226,39,0.1458,31,0.035001,27,0.032972,4,39,0.416208,30,0.393648,31,0.107965,27,0.082179,4,39,0.483218,30,0.241362,31,0.178913,27,0.096507,4,39,0.420044,31,0.259555,30,0.16646,36,0.153941,4,31,0.326653,39,0.278597,36,0.27394,30,0.12081,4,36,0.375166,31,0.359147,39,0.178224,30,0.087464,4,36,0.410803,31,0.329027,39,0.13616,41,0.124011,4,36,0.454494,31,0.240588,41,0.209167,39,0.095751,4,36,0.459444,41,0.316513,31,0.157278,39,0.066764,4,36,0.434351,41,0.410427,31,0.088867,44,0.066355,4,41,0.472507,36,0.349955,44,0.112344,31,0.065193,4,41,0.524814,36,0.236283,44,0.18728,31,0.051622,4,41,0.509241,44,0.307037,36,0.131158,46,0.052564,4,41,0.462905,44,0.394261,36,0.08384,46,0.058994,4,44,0.456893,41,0.416223,46,0.072811,36,0.054073,4,44,0.510422,41,0.323132,46,0.122098,36,0.044348,4,44,0.53949,46,0.258636,41,0.158925,56,0.042949,4,44,0.449311,46,0.432302,41,0.067704,56,0.050683,4,46,0.532638,44,0.290178,56,0.091613,47,0.085571,4,46,0.502336,56,0.191814,47,0.155289,44,0.15056,4,46,0.39601,56,0.314251,47,0.197182,44,0.092557,4,56,0.500796,46,0.256166,47,0.189045,44,0.053993,4,56,0.696523,46,0.142253,47,0.131501,44,0.029723,4,56,0.817979,47,0.081004,46,0.072447,52,0.02857,4,56,0.902069,47,0.045604,46,0.038304,52,0.014024,4,56,0.927316,47,0.033946,46,0.026059,52,0.012679,4,56,0.945197,47,0.024423,46,0.015906,52,0.014474,4,56,0.923931,47,0.030276,52,0.029355,48,0.016439,4,56,0.771328,52,0.103476,47,0.075755,48,0.049441,4,56,0.63432,52,0.182788,47,0.106058,48,0.076834,4,56,0.775365,52,0.097563,47,0.079384,48,0.047688,4,56,0.806517,52,0.079208,47,0.073425,48,0.040849,4,56,0.675147,52,0.148815,47,0.108063,48,0.067976,4,56,0.390179,52,0.354016,47,0.141873,48,0.113933,4,52,0.54789,56,0.206729,47,0.126623,48,0.118758,4,52,0.688318,56,0.109886,48,0.102617,47,0.099179,4,52,0.795216,48,0.077493,47,0.068896,56,0.058395,4,52,0.876702,48,0.044892,53,0.043022,47,0.035384,4,52,0.943954,53,0.024625,48,0.018678,47,0.012743,4,52,0.977414,53,0.012327,48,0.006308,50,0.00395,4,52,0.903161,53,0.05892,48,0.021808,50,0.01611,4,52,0.781025,53,0.134171,48,0.046851,50,0.037953,4,52,0.738799,53,0.172679,48,0.048564,50,0.039958,4,52,0.673727,53,0.231748,48,0.053512,50,0.041013,4,53,0.526782,52,0.319122,48,0.079396,50,0.0747,4,53,0.664297,52,0.15151,50,0.09403,48,0.090162,4,53,0.767285,50,0.088899,48,0.072685,52,0.071132,4,53,0.846064,50,0.071928,48,0.046708,52,0.0353,4,53,0.906284,50,0.046711,51,0.025041,48,0.021964,4,53,0.956287,50,0.022256,51,0.015226,48,0.006231,4,53,0.71953,50,0.138846,51,0.115848,48,0.025777,4,53,0.369986,51,0.328274,50,0.249772,54,0.051968,4,51,0.368071,53,0.319707,50,0.263594,54,0.048628,4,53,0.374986,51,0.3112,50,0.273629,54,0.040185,4,53,0.503594,50,0.271584,51,0.193981,54,0.030841,4,51,0.509722,50,0.271349,53,0.179183,54,0.039746,4,51,0.76334,50,0.134476,53,0.071079,54,0.031105,4,51,0.9371,50,0.03378,53,0.017556,54,0.011564,4,51,0.985934,50,0.007059,53,0.003897,54,0.00311,4,51,0.935745,50,0.029904,53,0.017877,54,0.016474,4,51,0.8668,50,0.059887,53,0.037628,54,0.035685,4,51,0.941648,50,0.02729,53,0.015549,54,0.015513,4,51,0.965855,50,0.016732,54,0.008988,53,0.008425,4,51,0.903489,50,0.049248,54,0.025817,53,0.021446,4,51,0.782552,50,0.112672,54,0.062312,53,0.042464,4,51,0.710004,50,0.151574,54,0.086221,53,0.052201,4,51,0.485778,50,0.259116,54,0.185003,53,0.070103,4,54,0.397828,51,0.272529,50,0.265163,53,0.064479,4,54,0.595975,50,0.198856,51,0.156854,53,0.048315,4,54,0.508236,50,0.218727,51,0.214028,53,0.059009,4,54,0.405362,51,0.282944,50,0.238014,53,0.073681,4,54,0.45864,51,0.249658,50,0.219598,53,0.072104,4,54,0.540642,51,0.201577,50,0.197475,53,0.060305,4,54,0.84975,50,0.070526,51,0.057023,48,0.022702,4,54,0.985201,50,0.00687,51,0.004753,48,0.003176,4,54,0.959762,50,0.018388,51,0.011351,48,0.0105,4,54,0.894277,50,0.043801,48,0.033059,49,0.028863,4,54,0.775419,49,0.089195,50,0.069487,48,0.065898,4,54,0.706348,49,0.145724,48,0.074356,50,0.073572,4,54,0.476762,49,0.355758,48,0.086993,50,0.080488,4,49,0.786969,54,0.124572,48,0.050136,50,0.038323,4,49,0.805357,54,0.113357,48,0.045459,50,0.035827,4,49,0.770276,54,0.130887,48,0.054561,50,0.044277,4,49,0.844821,54,0.081823,48,0.041731,50,0.031625,4,49,0.904388,54,0.049458,48,0.026728,50,0.019426,4,49,0.950896,54,0.021945,48,0.015749,47,0.01141,4,49,0.908892,48,0.032766,54,0.031572,47,0.02677,4,49,0.783013,48,0.082202,47,0.078349,54,0.056436,4,49,0.616884,47,0.165204,48,0.150002,54,0.067911,4,49,0.489381,47,0.239643,48,0.187498,52,0.083477,4,49,0.403153,47,0.29143,48,0.19638,46,0.109037,4,47,0.339515,49,0.330851,48,0.192646,46,0.136988,4,47,0.375051,49,0.282172,48,0.183757,46,0.159019,4,47,0.343496,49,0.312472,48,0.189033,46,0.155,4,49,0.361096,47,0.303121,48,0.194605,46,0.141178,4,49,0.345687,47,0.305224,48,0.192969,46,0.15612,4,47,0.331738,49,0.298721,48,0.184953,46,0.184588,4,47,0.368155,46,0.241049,49,0.228058,48,0.162738,4,47,0.393065,46,0.293325,49,0.175615,48,0.137995,4,47,0.402809,46,0.333551,49,0.132743,56,0.130897,4,47,0.406288,46,0.363598,56,0.124951,49,0.105163,4,47,0.386818,46,0.367346,56,0.13054,49,0.115297,4,46,0.38203,47,0.380599,56,0.129914,49,0.107457,4,46,0.414394,47,0.373036,56,0.120089,44,0.092481,4,46,0.460075,47,0.331042,56,0.108499,44,0.100384,4,46,0.493858,47,0.286615,44,0.11712,56,0.102407,4,46,0.544322,47,0.218418,44,0.147044,56,0.090216,4,46,0.583026,44,0.194957,47,0.149133,56,0.072884,4,46,0.575623,44,0.26789,47,0.100138,56,0.056349,4,46,0.500152,44,0.394671,47,0.06234,41,0.042838,4,44,0.484974,46,0.419749,41,0.050956,47,0.044322,4,44,0.558231,46,0.31155,41,0.090842,47,0.039376,4,44,0.589255,46,0.224766,41,0.149854,47,0.036125,4,44,0.572118,41,0.246957,46,0.146612,36,0.034313,4,44,0.507644,41,0.353929,46,0.09737,36,0.041058,4,41,0.446069,44,0.439253,46,0.06361,36,0.051068,4,41,0.504868,44,0.355667,36,0.087167,46,0.052298,4,41,0.555167,44,0.252384,36,0.146987,46,0.045462,4,41,0.550958,36,0.221387,44,0.178778,31,0.048877,4,41,0.514206,36,0.305757,44,0.12061,31,0.059427,4,41,0.449376,36,0.397932,31,0.078685,44,0.074008,4,36,0.433436,41,0.371584,31,0.136055,38,0.058925,4,36,0.434757,31,0.242859,41,0.224017,38,0.098367,4,36,0.382072,31,0.341404,38,0.154517,41,0.122007,4,38,0.314696,31,0.302277,36,0.238917,33,0.144109,4,38,0.499594,33,0.240853,31,0.16667,27,0.092883,4,33,0.622567,38,0.284303,31,0.047435,27,0.045694,4,33,0.851272,38,0.085291,27,0.035582,31,0.027855,4,33,0.437637,27,0.219633,38,0.184685,22,0.158045,4,22,0.347264,27,0.33658,33,0.197652,38,0.118504,4,22,0.408914,27,0.247146,20,0.231911,33,0.11203,4,20,0.395443,22,0.38772,27,0.118026,12,0.098811,4,20,0.447958,12,0.262456,22,0.225143,9,0.064443,4,20,0.399382,12,0.395405,22,0.106913,9,0.0983,4,12,0.395971,20,0.334827,9,0.142273,13,0.126929,4,12,0.341447,13,0.269489,9,0.227882,20,0.161182,4,13,0.519672,12,0.215012,9,0.199565,20,0.065752,4,4,0.001128,13,0.994161,9,0.002616,12,0.002096,4,4,0.043098,13,0.844635,9,0.071066,12,0.041201,4,4,0.188827,13,0.491271,9,0.231838,12,0.088063,4,4,0.292424,13,0.311328,9,0.308964,12,0.087284,4,4,0.385897,9,0.331549,13,0.199744,15,0.08281,4,4,0.462363,9,0.302137,13,0.154376,15,0.081123,4,4,0.556663,9,0.245474,13,0.120902,15,0.076961,4,4,0.636253,9,0.192323,13,0.099733,15,0.071691,4,4,0.68922,9,0.155051,13,0.085343,24,0.070385,3,4,0.801065,9,0.126371,13,0.072565,4,50,0.977887,48,0.017745,53,0.002501,54,0.001866,4,48,0.546485,52,0.238534,53,0.130497,47,0.084484,4,46,0.542869,56,0.176598,47,0.152445,44,0.128088,4,46,0.593295,47,0.229645,44,0.095666,56,0.081395,4,47,0.773825,48,0.14936,49,0.04966,52,0.027154],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[4,-0.011245,0.999937,-0.999937,-0.011245,4.85,-256.1,9,-0.006849,0.999977,-0.999977,-0.006849,4.85,-133.5,15,-0.962029,0.272948,-0.272948,-0.962029,-45.05,-85.25,13,0.998296,-0.058352,0.058352,0.998296,54.2,-73.65,19,-0.375991,-0.926623,0.926623,-0.375991,-86.45,-84,24,-0.067365,-0.997728,0.997728,-0.067365,-93.75,-120.55,17,0.262142,-0.965029,0.965029,0.262142,95,-75.5,25,0.142234,-0.989833,0.989833,0.142234,104.7,-125.4,12,0.006849,0.999977,-0.999977,0.006849,5.45,-36.85,20,0,1,-1,0,5.45,59.2,22,0.023191,0.999731,-0.999731,0.023191,4.2,161.9,27,0,1,-1,0,6.65,252.5,31,-0.006132,0.999981,-0.999981,-0.006132,5.4,338.9,30,-0.834398,0.551162,-0.551162,-0.834398,-41.65,314.6,39,-0.289177,0.957276,-0.957276,-0.289177,-78.15,344.95,33,0.845557,0.533884,-0.533884,0.845557,51.4,317.2,38,0.278497,0.960437,-0.960437,0.278497,87.4,339.8,36,0.013604,0.999907,-0.999907,0.013604,4.25,448.85,41,0.005785,0.999983,-0.999983,0.005785,7.25,544.85,44,0.024777,0.999693,-0.999693,0.024777,6.95,668.85,46,0.008818,0.999961,-0.999961,0.008818,6.95,778.65,47,0,1,-1,0,7,888.45,48,0.009511,0.999955,-0.999955,0.009511,5.45,992.85,50,0.007973,0.999968,-0.999968,0.007973,5.5,1079.75,51,0.10274,0.994708,-0.994708,0.10274,6.1,1175.2,53,-0.045754,0.998953,-0.998953,-0.045754,-32.1,1066.85,54,0.124035,0.992278,-0.992278,0.124035,54.35,1081.9,49,0.628995,0.777409,-0.777409,0.628995,49.1,1000.05,52,-0.447214,0.894427,-0.894427,-0.447214,-35.4,992.85,56,-0.386009,0.922495,-0.922495,-0.386009,-39.95,893.3],\"edges\":[0,1,2,0,3,96,96,2,118,3,1,119,119,118],\"userEdges\":[]}]},{\"name\":\"右后爪\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/右后爪\",\"width\":107,\"height\":137,\"vertices\":[-66.18,44.69,-36.38,-58.08,65.4,82.84,95.2,-19.93,-45,1.89,-31.5,-1.22,-24.92,-6.34,-17.72,-7.64,-12.68,-11.75,-3.06,-12.6,20.7,-9.77,32.94,-13.04,49.14,-19.02,62.45,-22.18,70.71,-24.27,79.13,-24.58,92.75,-11.47,79.4,34.58,66.95,43.1,54.36,35.18,47.71,25.6,48.35,17.66,38.19,25.39,27.39,24.39,16.26,22.41,15.28,11.04,13.97,27.95,11.05,33.71,-24.87,34.8,-48.37,21.58],\"uvs\":[0,0,1,0,0,1,1,1,0.43925,0.06143,0.50233,0.14975,0.56542,0.18551,0.59579,0.23332,0.64579,0.26033,0.6785,0.32602,0.71495,0.49829,0.77617,0.57748,0.87196,0.67894,0.93505,0.76581,0.97523,0.81946,1,0.87785,0.91776,1,0.46962,1,0.36075,0.93004,0.39906,0.82566,0.46776,0.7596,0.54065,0.74792,0.44486,0.69245,0.4257,0.61471,0.41448,0.53259,0.51402,0.50267,0.35888,0.52785,0.29953,0.51909,0.19626,0.26946,0.25374,0.07785],\"triangles\":[9,10,11,0,4,1,6,8,1,4,6,1,11,12,1,9,11,1,12,13,1,13,14,1,8,9,1,16,3,15,14,16,15,1,14,15,21,16,13,13,16,14,21,17,16,12,21,13,4,5,6,11,21,12,6,7,8,10,25,11,25,21,11,0,29,4,19,17,21,25,23,21,23,22,21,9,25,10,8,7,9,7,25,9,20,19,21,19,18,17,28,26,25,28,25,7,6,5,7,5,28,7,28,27,26,26,24,25,24,23,25,22,20,21,18,2,17,4,29,5,29,28,5,22,19,20,24,26,23,23,27,22,27,19,22,26,27,23,27,2,19,2,18,19,28,2,27,0,28,29,0,2,28],\"edges\":[0,1,2,0,1,15,15,3,3,16,16,17,17,2],\"userEdges\":[]}]},{\"name\":\"右前爪\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/右前爪\",\"width\":114,\"height\":163,\"vertices\":[46.12,-83.91,62.33,28.94,-115.23,-60.72,-99.01,52.12,-18.1,-74.68,-18,-52.53,-20.43,-42.73,-23.63,-27.72,-34.17,-14.24,-20.58,-10.03,-4.9,-13.04,6.53,-22.11,15.23,-32.55,30.38,-35.74,53.19,-34.67,36.85,-24.44,29.6,-14.46,42.99,-10.22,58.58,2.84,38.23,10.11,23.03,16.09,41.68,3.2,32.14,21.85,37.9,32.45,19.93,29.71,13.25,30.67,4.08,25.88,-1.71,19.34,-11.79,14.27,-20.52,12.54,-29.3,18.6,-35.54,20.51,-39.04,19.04,-48.96,22.03,-50.89,15.64,-57.01,15.56,-65.87,16.84,-73.41,16.76,-68.81,12.56,-75.02,9.77,-82.47,6.44,-86.84,1.67,-92.57,-0.9,-101.63,-3.84,-107.18,-4.76,-101.94,-11.62,-104.81,-16.87,-107.11,-21.94,-100.38,-22.61,-92.6,-21.9,-98.4,-33.4],\"uvs\":[0,0,1,0,0,1,1,1,0,0.39806,0.19249,0.41677,0.2745,0.44008,0.40082,0.4726,0.50477,0.54836,0.55828,0.46953,0.5517,0.37168,0.48722,0.29438,0.4074,0.23241,0.39863,0.13763,0.43635,0,0.50477,0.10818,0.5824,0.16094,0.63591,0.08333,0.7688,0,0.80652,0.12996,0.83942,0.2275,0.75082,0.10296,0.90082,0.1772,1,0.15143,0.95389,0.25818,0.95389,0.29959,0.90082,0.35112,0.83678,0.38057,0.7802,0.43732,0.75433,0.48885,0.79599,0.54744,0.80477,0.58701,0.78766,0.60695,0.80126,0.66984,0.74336,0.67597,0.73503,0.71309,0.73503,0.76799,0.72494,0.8137,0.69424,0.78211,0.66222,0.81738,0.62406,0.85971,0.57713,0.88211,0.54775,0.91462,0.51091,0.96707,0.49599,1,0.44292,0.96217,0.3938,0.97505,0.34687,0.98456,0.3495,0.94315,0.36529,0.89652,0.25828,0.92168],\"triangles\":[47,2,44,28,30,27,27,30,26,30,31,26,26,31,25,19,22,23,22,24,23,24,25,23,19,23,1,18,19,1,40,42,3,42,43,3,43,44,3,37,40,3,33,36,3,36,37,3,25,31,3,31,33,3,23,25,3,28,29,30,31,32,33,22,20,24,24,20,25,20,26,25,18,21,19,35,36,33,20,27,26,19,20,22,11,10,16,19,16,20,16,10,20,20,10,27,10,28,27,41,42,40,30,32,31,21,16,19,32,34,33,34,35,33,17,21,18,29,8,30,30,8,32,8,34,32,9,8,29,9,29,28,10,9,28,39,40,37,17,16,21,14,17,18,38,37,36,8,35,34,38,36,35,8,38,35,38,39,37,8,49,39,8,39,38,14,15,17,49,41,39,41,40,39,15,16,17,12,11,16,15,13,16,13,12,16,49,42,41,6,49,8,10,7,9,7,8,9,6,50,49,11,7,10,45,43,42,49,45,42,46,47,44,6,7,11,14,13,15,45,44,43,7,6,8,45,46,44,12,6,11,5,4,50,5,50,6,5,6,12,48,46,45,49,48,45,0,13,14,4,5,12,0,4,12,0,12,13,4,2,50,48,47,46,50,48,49,48,50,47,50,2,47],\"edges\":[2,4,4,0,0,14,14,18,18,1,1,23,23,3,3,44,44,2],\"userEdges\":[19,20]}]},{\"name\":\"左后爪\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/左后爪\",\"width\":106,\"height\":134,\"vertices\":[-40.52,57.41,-71.17,-44.06,87.75,18.66,57.1,-82.81,-13.11,16.08,5.8,7.96,29.25,15.92,46.84,21.42,64.97,-40.31,51.59,-42.59,36.26,-28.66,30.42,-28.1,14.36,-30.45,1.77,-17.3,0.46,-23.54,-42.87,7.31,-63.33,-18.11],\"uvs\":[0,0,1,0,0,1,1,1,0.29848,0.28501,0.32018,0.43763,0.18433,0.588,0.08669,0.70181,0.59471,0.96449,0.65178,0.87382,0.56782,0.73427,0.57867,0.69136,0.64376,0.58166,0.55933,0.46337,0.61924,0.46748,0.45886,0.09136,0.74424,0],\"triangles\":[11,9,12,0,15,16,15,14,16,16,14,1,14,12,1,8,2,3,9,8,3,1,12,3,12,9,3,15,4,13,15,13,14,11,10,9,10,8,9,14,13,12,13,11,12,4,5,13,13,5,11,10,7,8,5,6,11,7,2,8,6,10,11,6,7,10,0,4,15,4,6,5,0,6,4,0,7,6,0,2,7],\"edges\":[1,3,3,2,2,0,0,16,16,1],\"userEdges\":[]}]},{\"name\":\"左前爪\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/左前爪\",\"width\":121,\"height\":165,\"vertices\":[67.29,-35.35,59.13,85.38,-97.34,-46.46,-105.49,74.26,-97.4,10.82,-85.39,6.71,-74.03,-3.44,-64.73,-7.73,-69.45,-10.5,-56.46,-13.68,-44.54,-12.08,-48.89,-20.29,-37.95,-16.79,-30.17,-18.47,-20.82,-15.19,-13.76,-12.15,-4.48,-13.03,4.22,-21.66,12.36,-27.93,21.46,-32.88,25.75,-32.44,38.9,-37.26,41.96,-29.94,34.23,-20.79,32.15,-15.97,27.02,-12.01,45.65,-10.25,51.34,-7.01,63.2,-6,60.57,-1.17,51.7,3.19,44.54,6.12,39.76,8.65,34.75,8.66,41.07,15.15,42.25,21.5,51.9,26.96,56.61,28.53,48.55,33.65,37.5,33.95,30.96,35.12,20.21,31.03,11.19,22.06,0.81,14.74,-12.08,12.62,-18.72,13.77,-17.55,20.27,-11.81,24.96,-10.03,35.06,-18.69,54.87,-98.54,32.24,-92.04,45.05,-88.05,30.39,-89.92,69.25,-21.22,68.58,-28.62,79.45],\"uvs\":[0,0,1,0,0,1,1,1,0.4723,0.97698,0.4318,0.90607,0.34172,0.84152,0.30122,0.78698,0.28098,0.81668,0.24751,0.7394,0.25412,0.66668,0.18883,0.69637,0.21156,0.6288,0.19337,0.58243,0.21527,0.52455,0.23635,0.48061,0.22395,0.42486,0.14792,0.37577,0.09172,0.3291,0.04585,0.27607,0.04709,0.25001,0,0.17243,0.05866,0.15092,0.13841,0.19395,0.17932,0.20455,0.21486,0.23395,0.21899,0.12061,0.24255,0.08486,0.2442,0.01274,0.28552,0.02668,0.32643,0.07849,0.35453,0.12061,0.37808,0.14849,0.38098,0.1788,0.43098,0.13789,0.48263,0.12819,0.5223,0.06758,0.53263,0.03849,0.57932,0.08516,0.588,0.15183,0.60122,0.19092,0.57354,0.25758,0.50453,0.31577,0.44999,0.38152,0.43965,0.46031,0.45288,0.50001,0.50577,0.49031,0.54131,0.45365,0.62354,0.4388,0.79172,0.48304,0.64957,0.97516,0.75164,0.93061,0.6285,0.91243,0.94999,0.90789,0.90618,0.49274,1,0.53304],\"triangles\":[40,41,49,52,51,49,40,49,54,49,51,53,50,4,3,4,2,3,53,51,3,51,50,3,0,28,1,28,37,1,37,38,1,39,40,1,38,39,1,40,54,1,49,53,55,54,49,55,53,3,55,1,54,55,41,48,49,46,52,49,45,7,46,28,29,37,46,7,52,7,6,52,48,46,49,10,7,45,6,5,52,41,42,48,52,50,51,42,47,48,47,46,48,52,4,50,42,43,47,5,4,52,38,35,39,39,35,40,35,41,40,34,33,35,36,35,38,37,36,38,35,33,41,33,42,41,44,46,47,43,44,47,30,36,37,29,30,37,34,35,36,30,34,36,30,31,34,25,43,42,33,25,42,44,45,46,14,12,10,10,9,7,14,10,45,5,2,4,14,13,12,6,2,5,16,44,43,25,16,43,44,15,45,15,14,45,32,33,34,16,15,44,31,32,34,25,17,16,8,2,6,31,26,33,26,25,33,31,33,32,7,8,6,30,27,31,27,26,31,24,25,26,29,27,30,9,8,7,18,17,25,11,9,10,28,27,29,9,11,8,11,2,8,12,11,10,28,0,27,22,26,27,0,22,27,16,14,15,19,18,25,20,19,25,23,24,26,17,14,16,24,20,25,22,23,26,23,20,24,17,13,14,13,11,12,19,2,18,17,18,13,18,2,13,13,2,11,22,20,23,21,2,19,21,20,22,0,21,22,21,19,20],\"edges\":[0,1,3,2,2,21,21,0,1,55,55,3],\"userEdges\":[]}]}]}],\"animation\":[{\"duration\":26,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"龙头\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.82},{\"duration\":4,\"tweenEasing\":0,\"rotate\":45.62},{\"duration\":4,\"tweenEasing\":0,\"rotate\":133.16},{\"duration\":14,\"tweenEasing\":0,\"rotate\":-154.71},{\"duration\":0,\"rotate\":-177.66}]},{\"name\":\"10左须1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.51},{\"duration\":8,\"tweenEasing\":0,\"rotate\":1.54},{\"duration\":14,\"rotate\":-8.74}]},{\"name\":\"龙身\",\"translateFrame\":[{\"duration\":26},{\"duration\":0,\"x\":16.04,\"y\":-31.02}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":8.05},{\"duration\":4,\"tweenEasing\":0,\"rotate\":1.32},{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.49},{\"duration\":14,\"tweenEasing\":0,\"rotate\":-2.69},{\"duration\":0,\"rotate\":31.02}]},{\"name\":\"10右须1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":8,\"tweenEasing\":0,\"rotate\":19.87},{\"duration\":14,\"rotate\":6.48}]},{\"name\":\"龙身1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":13.44},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-15.31},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-29.33},{\"duration\":14,\"tweenEasing\":0,\"rotate\":-29.33},{\"duration\":0,\"rotate\":50.67}]},{\"name\":\"10左须2\",\"rotateFrame\":[{\"duration\":26,\"tweenEasing\":0,\"rotate\":-24.43},{\"duration\":0,\"rotate\":29.1}]},{\"name\":\"10右须2\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"rotate\":10.31},{\"duration\":18,\"tweenEasing\":0,\"rotate\":9.82},{\"duration\":0,\"rotate\":-27.08}]},{\"name\":\"龙身2\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-22.68},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-12.62},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-25.47},{\"duration\":14,\"tweenEasing\":0,\"rotate\":-25.47},{\"duration\":0,\"rotate\":-17.84}]},{\"name\":\"10左须3\",\"rotateFrame\":[{\"duration\":16,\"tweenEasing\":0,\"rotate\":17.67},{\"duration\":10,\"tweenEasing\":0,\"rotate\":-12.05},{\"duration\":0,\"rotate\":-4.48}]},{\"name\":\"左前爪\",\"rotateFrame\":[{\"duration\":26,\"tweenEasing\":0,\"rotate\":0.66},{\"duration\":0,\"rotate\":-0.49}]},{\"name\":\"10右须3\",\"rotateFrame\":[{\"duration\":26,\"tweenEasing\":0,\"rotate\":12.07},{\"duration\":0,\"rotate\":16.14}]},{\"name\":\"右前爪\",\"rotateFrame\":[{\"duration\":10,\"rotate\":-6.61},{\"duration\":12,\"tweenEasing\":0,\"rotate\":8.66},{\"duration\":4,\"rotate\":-16.56}]},{\"name\":\"左前爪1\",\"rotateFrame\":[{\"duration\":26,\"tweenEasing\":0},{\"duration\":0,\"rotate\":-14.63}]},{\"name\":\"右前爪1\",\"rotateFrame\":[{\"duration\":26},{\"duration\":0,\"rotate\":-0.97}]},{\"name\":\"10左须4\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"rotate\":-24.68},{\"duration\":18,\"tweenEasing\":0,\"rotate\":-19.88},{\"duration\":0,\"rotate\":-49.65}]},{\"name\":\"龙身3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-20.09},{\"duration\":22,\"tweenEasing\":0,\"rotate\":-8.09},{\"duration\":0,\"rotate\":-39.11}]},{\"name\":\"10右须4\",\"rotateFrame\":[{\"duration\":16,\"tweenEasing\":0,\"rotate\":19.4},{\"duration\":10,\"tweenEasing\":0,\"rotate\":-2.73},{\"duration\":0,\"rotate\":25.7}]},{\"name\":\"左前爪2\",\"rotateFrame\":[{\"duration\":26,\"tweenEasing\":0},{\"duration\":0,\"rotate\":-17.67}]},{\"name\":\"10左须5\",\"rotateFrame\":[{\"duration\":16,\"tweenEasing\":0,\"rotate\":29.16},{\"duration\":10,\"tweenEasing\":0,\"rotate\":56.98},{\"duration\":0,\"rotate\":24.11}]},{\"name\":\"右前爪2\",\"rotateFrame\":[{\"duration\":26},{\"duration\":0,\"rotate\":-1.84}]},{\"name\":\"10右须5\",\"rotateFrame\":[{\"duration\":26,\"tweenEasing\":0,\"rotate\":-18.35},{\"duration\":0,\"rotate\":-32.78}]},{\"name\":\"龙身4\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-15.49},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-19.45},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-23.03},{\"duration\":14,\"tweenEasing\":0,\"rotate\":-23.03},{\"duration\":0,\"rotate\":-65.09}]},{\"name\":\"10左须6\",\"rotateFrame\":[{\"duration\":26,\"tweenEasing\":0,\"rotate\":23.36},{\"duration\":0,\"rotate\":50.03}]},{\"name\":\"龙身5\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":9.71},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.93},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-19.28},{\"duration\":14,\"tweenEasing\":0,\"rotate\":-19.28},{\"duration\":0,\"rotate\":-41.95}]},{\"name\":\"10右须6\",\"rotateFrame\":[{\"duration\":26,\"tweenEasing\":0,\"rotate\":-23.07},{\"duration\":0,\"rotate\":-27.84}]},{\"name\":\"10右须7\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"rotate\":-9.71},{\"duration\":8,\"tweenEasing\":0,\"rotate\":35.01},{\"duration\":10,\"tweenEasing\":0,\"rotate\":33.07},{\"duration\":0,\"rotate\":-57.34}]},{\"name\":\"龙身6\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":19.95},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-18.17},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-26.24},{\"duration\":14,\"tweenEasing\":0,\"rotate\":-26.24},{\"duration\":0,\"rotate\":-42.51}]},{\"name\":\"10左须7\",\"rotateFrame\":[{\"duration\":8,\"rotate\":26.04},{\"duration\":18,\"rotate\":56.54}]},{\"name\":\"10右须8\",\"rotateFrame\":[{\"duration\":16,\"tweenEasing\":0,\"rotate\":-26.02},{\"duration\":10,\"rotate\":31.79}]},{\"name\":\"10左须8\",\"rotateFrame\":[{\"duration\":16,\"tweenEasing\":0,\"rotate\":0.3},{\"duration\":10,\"rotate\":-53.6},{\"duration\":0,\"rotate\":-39.48}]},{\"name\":\"龙身7\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":19.09},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-11.48},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-24.93},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-24.93},{\"duration\":10,\"tweenEasing\":0,\"rotate\":-3.73},{\"duration\":0,\"rotate\":8.48}]},{\"name\":\"10左须9\",\"rotateFrame\":[{\"duration\":26,\"rotate\":-26.78}]},{\"name\":\"10右须9\",\"rotateFrame\":[{\"duration\":26,\"tweenEasing\":0,\"rotate\":13.24},{\"duration\":0,\"rotate\":53.45}]},{\"name\":\"龙身8\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":23.55},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-16.86},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-6.15},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-28.02},{\"duration\":10,\"tweenEasing\":0,\"rotate\":34.97},{\"duration\":0,\"rotate\":59.87}]},{\"name\":\"10左须10\",\"rotateFrame\":[{\"duration\":26,\"rotate\":-26.19}]},{\"name\":\"龙身9\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-21.79},{\"duration\":4,\"tweenEasing\":0,\"rotate\":5.49},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-0.89},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-6.79},{\"duration\":10,\"tweenEasing\":0,\"rotate\":-27.99},{\"duration\":0,\"rotate\":78.92}]},{\"name\":\"10右须10\",\"rotateFrame\":[{\"duration\":26,\"rotate\":34.42}]},{\"name\":\"龙身10\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-13.43},{\"duration\":4,\"tweenEasing\":0,\"rotate\":15.56},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-21.9},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-2.59},{\"duration\":7,\"tweenEasing\":0,\"rotate\":-43.74},{\"duration\":3,\"tweenEasing\":0,\"rotate\":37.86},{\"duration\":0,\"rotate\":52.1}]},{\"name\":\"龙身11\",\"translateFrame\":[{\"duration\":20},{\"duration\":6,\"tweenEasing\":0,\"x\":-5,\"y\":1.18},{\"duration\":0,\"x\":-8.06,\"y\":-2.09}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-19.14},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-0.25},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.15},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.15},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-24.26},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-37.34},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-80.08},{\"duration\":0,\"rotate\":-14.96}]},{\"name\":\"龙身12\",\"translateFrame\":[{\"duration\":4},{\"duration\":16,\"x\":-4.27,\"y\":-23.17},{\"duration\":6,\"x\":2.61,\"y\":-28.79}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-9.72},{\"duration\":12,\"tweenEasing\":0,\"rotate\":7.97},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-9.9},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-15.84},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-40.5},{\"duration\":0,\"rotate\":14.34}]},{\"name\":\"龙身15\",\"translateFrame\":[{\"duration\":4},{\"duration\":19,\"x\":0.24,\"y\":16.31},{\"duration\":3,\"tweenEasing\":0,\"x\":-2.68,\"y\":17.76},{\"duration\":0,\"x\":-3.16,\"y\":22.17}],\"rotateFrame\":[{\"duration\":4},{\"duration\":16,\"rotate\":13.35},{\"duration\":6,\"rotate\":20.27}]},{\"name\":\"龙身13\",\"translateFrame\":[{\"duration\":4},{\"duration\":22,\"x\":34.84,\"y\":0.43}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.57},{\"duration\":12,\"tweenEasing\":0,\"rotate\":15.62},{\"duration\":4,\"rotate\":10.45},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-15.65},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-27.12},{\"duration\":0,\"rotate\":38.71}]},{\"name\":\"龙身14\",\"translateFrame\":[{\"duration\":4},{\"duration\":16,\"x\":-6.69,\"y\":36.66},{\"duration\":6,\"x\":-14.9,\"y\":-5.9}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-30.78},{\"duration\":4,\"tweenEasing\":0,\"rotate\":49.6},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-54.56},{\"duration\":4,\"rotate\":-48.37},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-48.74},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-44.9},{\"duration\":0,\"rotate\":0.42}]},{\"name\":\"龙身17\",\"translateFrame\":[{\"duration\":20},{\"duration\":6,\"x\":-12.32,\"y\":-21.33}],\"rotateFrame\":[{\"duration\":20,\"rotate\":2.22},{\"duration\":3,\"tweenEasing\":0,\"rotate\":1.4},{\"duration\":3,\"rotate\":-1.03}]},{\"name\":\"龙身18\",\"translateFrame\":[{\"duration\":4},{\"duration\":22,\"x\":7.48,\"y\":4.18},{\"duration\":0,\"x\":14.02,\"y\":10.53}],\"rotateFrame\":[{\"duration\":20,\"rotate\":2.83},{\"duration\":3,\"tweenEasing\":0,\"rotate\":-0.26},{\"duration\":3,\"rotate\":-14.88}]},{\"name\":\"龙身19\",\"translateFrame\":[{\"duration\":4},{\"duration\":16,\"x\":0.67,\"y\":46.45},{\"duration\":3,\"tweenEasing\":0,\"x\":2.18,\"y\":57.18},{\"duration\":3,\"tweenEasing\":0,\"x\":-2.1,\"y\":52.53},{\"duration\":0,\"x\":-3.79,\"y\":52.39}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.87},{\"duration\":12,\"tweenEasing\":0,\"rotate\":7.08},{\"duration\":7,\"rotate\":-8.3},{\"duration\":3,\"rotate\":-17.48}]},{\"name\":\"龙身20\",\"translateFrame\":[{\"duration\":4},{\"duration\":13,\"x\":-4.87,\"y\":-18.64},{\"tweenEasing\":0,\"x\":2.21,\"y\":-29.17},{\"duration\":2,\"tweenEasing\":0,\"x\":3.48,\"y\":-25.99},{\"tweenEasing\":0,\"x\":14.32,\"y\":-28.86},{\"tweenEasing\":0,\"x\":22.42,\"y\":-26.87},{\"tweenEasing\":0,\"x\":38.97,\"y\":-31.95},{\"tweenEasing\":0,\"x\":35.85,\"y\":-60.05},{\"duration\":2,\"tweenEasing\":0,\"x\":43.96,\"y\":-58.45},{\"duration\":0,\"x\":35.62,\"y\":-63.63}],\"rotateFrame\":[{\"duration\":16,\"tweenEasing\":0,\"rotate\":2.93},{\"duration\":4,\"rotate\":-18.21},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-5.29},{\"duration\":4,\"rotate\":-17}]},{\"name\":\"龙身16\",\"translateFrame\":[{\"duration\":26},{\"duration\":0,\"x\":5.02,\"y\":-6.55}]}],\"ffd\":[{\"name\":\"动画拆/龙身\",\"slot\":\"龙身\",\"frame\":[{\"duration\":4,\"tweenEasing\":0,\"offset\":180,\"vertices\":[9.48,-0.92,6.19,3.45,3.56,2.58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6.07,2.51,6.1,-1.83,3.08,-0.48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8.48,2.34,8.56,-4.54,28.44,-8.92]},{\"duration\":6,\"tweenEasing\":0,\"offset\":134,\"vertices\":[2.83,-2.98,14.98,-0.15,6.1,-2.67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.75,1.25,9.48,-0.92,6.19,3.45,3.56,2.58,0,0,0,0,-10.69,2.94,-16.01,9.34,-6.29,2.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.63,3.42,3,-0.8,3.08,-0.48,2.89,1.14,2.6,1.24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-8.71,-16.41,1.29,3.93,-40.47,8.56,-4.54,9.82,-3.22]},{\"duration\":9,\"tweenEasing\":0,\"vertices\":[5.34,206.16,42.59,-92.72,-31.39,-553.42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.76,-0.36,1.54,-0.69,2.26,-1.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.69,0,2.76,-0.25,2.02,0.5,3.16,0.16,2.05,0.68,0.55,1.32,0.43,-2.83,-3.61,-0.23,-1.47,-0.05,0,0,-0.52,-1.49,-0.75,-0.45,-3.02,-1.17,-1.41,-4.72,5.8,-4.01,0.48,-4.47,-3.16,-0.15,-1.76,1.81,-1.88,0.51,0,0,-0.51,0.63,1.88,1.5,4.28,2.49,4.67,3.95,2.86,2.02,1.24,-1.28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.75,1.25,9.48,-0.92,6.19,3.45,3.56,2.58,0,0,0,0,-6.65,3.59,0.38,13.79,-2.3,5.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.63,3.42,3,-0.8,3.08,-0.48,2.89,1.14,2.6,1.24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-4.33,-2.48,-6.85,-3.26,-7.44,-1.35,-7.24,-1.59,-2.4,3.58,-0.81,2,2.63,-0.28,-6.19,-0.59,-5.65,-0.48,-5.09,-0.79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.94,0.63,-2.9,0.55,-3.77,1.27,-2.82,1.64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-8.71,-16.41,1.29,0.59,-30.72,9.94,-9.91,4.99,-5.39]},{\"tweenEasing\":0,\"vertices\":[0.53,20.62,4.26,-9.27,-3.14,-55.34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.39,-0.9,3.85,-1.74,5.66,-4.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.24,0.02,17.95,-3.09,17.36,0.97,20.99,-0.06,15.04,4.21,3.18,3.31,8.79,-5.47,5.19,7.08,-3.66,-0.12,0,0,-1.29,-3.73,-1.88,-1.13,-7.56,-2.94,-7.77,-7.33,-7.96,-9.8,-7.95,-7.16,-7.9,-0.37,-4.4,4.53,-4.69,1.27,0,0,-1.29,1.57,4.69,3.76,10.71,6.23,11.68,9.87,7.14,5.05,3.11,-3.21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.75,1.25,9.48,-0.92,6.19,3.45,3.56,2.58,0,0,0,0,-0.6,4.55,24.95,20.45,3.7,9.44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.63,3.42,3,-0.8,3.08,-0.48,2.89,1.14,2.6,1.24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-10.83,-6.21,-17.12,-8.15,-18.59,-3.37,-18.1,-3.96,-6.01,8.96,-2.02,4.99,6.57,-0.69,-15.47,-1.46,-14.13,-1.19,-12.73,-1.98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-6.61,-2.87,-4.84,-3.22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-4.86,1.57,-7.26,1.36,-9.42,3.17,-7.04,4.11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-8.71,-16.41,1.29,15.43,-12.88,12,-17.96,39.63,9.78]},{\"tweenEasing\":0,\"offset\":78,\"vertices\":[4.69,-0.96,4.11,-1.85,6.03,-4.34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.52,0.02,7.35,-0.67,5.39,1.33,8.43,0.44,5.46,1.83,1.47,3.52,1.16,-7.54,-4.2,2.82,-3.91,-0.13,0,0,-1.38,-3.98,-2.01,-1.2,-8.06,-3.13,-8.48,-7.62,-9.49,-10.44,-8.89,-7.46,-8.43,-0.39,-4.69,4.83,-5,1.36,0,0,-1.37,1.68,5,4.01,11.42,6.64,12.46,10.53,7.62,5.39,3.31,-3.42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.75,1.25,9.48,-0.92,6.19,3.45,3.56,2.58,0,0,0,0,0.08,4.66,27.69,21.2,4.36,9.92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.63,3.42,3,-0.8,3.08,-0.48,2.89,1.14,2.6,1.24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11.55,-6.62,-18.26,-8.7,-19.83,-3.6,-19.31,-4.23,-6.41,9.56,-2.15,5.32,7,-0.74,-16.5,-1.56,-15.08,-1.27,-13.58,-2.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7.34,-3.19,-5.38,-3.58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-5.18,1.68,-7.74,1.46,-10.05,3.38,-7.51,4.38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-8.71,-16.41,1.29,17.08,-10.9,12.23,-18.85,43.48,11.47]},{\"duration\":2,\"tweenEasing\":0,\"offset\":78,\"vertices\":[4.98,-1.02,4.36,-1.97,6.41,-4.61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.8,0.02,7.81,-0.71,5.72,1.42,12.4,3.72,10.99,6.98,11.01,7.61,8.43,0.49,9,11.26,0.16,0.51,0,0,-1.1,-3.18,-1.61,-0.96,-7.46,-4.7,-8.13,-7.62,-7.41,-8.9,-5.26,-8.76,-3.66,0.37,0.54,5.59,-0.17,-0.09,4.98,-0.11,4.22,1.69,9.29,3.79,12.63,6.17,13.35,13.04,8.05,5.29,7.62,-4.13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.75,1.25,9.48,-0.92,6.19,3.45,3.56,2.58,0,0,0,0,0.75,4.77,30.42,21.94,5.03,10.4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.63,3.42,3,-0.8,3.08,-0.48,2.89,1.14,2.24,0.9,-0.56,-0.24,-0.8,-0.21,-1.27,-0.57,-0.97,-0.21,-0.87,-0.21,-0.91,-0.38,-1.71,-0.46,-1.49,-0.14,-1.62,-0.3,-1.15,0.11,-12.51,-5.44,-18.43,-6.97,-22.4,-2.97,-20.2,-3.9,-11.63,5.84,-7.12,3.85,4.46,-1.33,-14.75,-1.54,-12.72,-1.4,-12.85,-2.51,-1.77,-1.04,-2.5,0.48,-2.03,0.24,-1.46,1.3,6.06,-0.27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-6.02,-3.73,-5.8,-0.78,-3.59,-0.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-5.5,1.78,-8.22,1.55,-10.68,3.59,-7.98,4.65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-8.71,-16.41,1.29,28.35,1.58,14.67,-24.61,50.27,23.27]},{\"tweenEasing\":0,\"offset\":78,\"vertices\":[5.56,-1.14,4.88,-2.2,7.17,-5.16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.37,0.03,8.73,-0.8,6.4,1.58,20.34,10.29,22.06,17.3,30.09,15.77,22.98,16.56,16.56,19.92,8.29,1.79,0,0,-0.55,-1.59,-0.8,-0.48,-6.27,-7.83,-7.45,-7.61,-3.24,-5.83,1.98,-11.37,5.89,1.9,11,7.1,9.5,-2.97,14.93,-0.34,15.41,1.7,17.86,3.36,15.04,5.24,15.14,18.06,8.92,5.1,16.22,-5.55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.75,1.25,9.48,-0.92,6.19,3.45,3.56,2.58,0,0,0,0,2.09,4.98,35.88,23.42,6.36,11.37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.63,3.42,3,-0.8,3.08,-0.48,2.89,1.14,1.53,0.23,-1.68,-0.71,-2.41,-0.64,-3.81,-1.7,-2.92,-0.64,-2.6,-0.62,-2.73,-1.15,-5.12,-1.38,-4.47,-0.42,-4.87,-0.91,-3.45,0.33,-14.42,-3.06,-18.76,-3.51,-27.53,-1.71,-22,-3.24,-22.07,-1.59,-17.06,0.91,-0.62,-2.52,-11.23,-1.5,-8.02,-1.68,-11.38,-3.3,-5.32,-3.12,-7.5,1.45,-6.09,0.73,-4.39,3.91,18.18,-0.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-6.15,1.99,-9.19,1.73,-11.93,4.02,-8.92,5.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-8.71,-16.41,1.29,50.88,26.53,19.54,-36.13,63.86,46.87]},{\"tweenEasing\":0,\"offset\":2,\"vertices\":[-43.59,-5.76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.86,-1.2,5.13,-2.31,7.54,-5.43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.31,0.51,0,0,5.65,0.03,9.19,-0.84,6.73,1.67,12.76,4.98,11.03,8.65,18.05,8.22,10.82,11.05,8.24,15.76,8.93,-1.01,0,0,-0.28,-0.8,-0.4,-0.24,-5.67,-9.4,-7.1,-7.6,-8.02,-3.93,5.61,-12.68,10.66,2.67,16.23,7.86,17.85,-2.52,19.91,-0.45,21,1.71,22.15,3.14,24.78,8.27,29.78,23.78,25.15,9.8,20.52,-6.26,14.54,1.76,16.53,-0.71,14.36,0.73,9.53,-2.68,10.1,-5.83,14.8,-2.68,7.56,-0.33,6.57,-6.27,0,0,2.75,1.25,9.48,-0.92,6.19,3.45,3.56,2.58,0,0,0,0,2.77,5.09,38.61,24.16,7.02,11.85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.63,3.42,3,-0.8,3.08,-0.48,2.89,1.14,1.17,-0.11,-2.24,-0.95,-3.22,-0.86,-5.08,-2.27,-3.9,-0.86,-3.47,-0.83,-3.64,-1.53,-6.82,-1.84,-5.96,-0.57,-6.5,-1.22,-4.6,0.44,-15.37,-1.87,-18.92,-1.78,-29.04,-1.55,-28.99,-2.37,-22.08,-1.61,-14.29,1.95,-0.31,-1.26,-8.53,0.45,-4.01,-0.84,-5.69,-1.65,-2.66,-1.56,-3.75,0.72,-5.04,0.13,-4.41,1.75,-3.63,27.23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-12.2,-3.11,-7.15,-2.98,-4.76,-2.13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-6.48,2.1,-9.68,1.82,-12.56,4.23,-9.39,5.48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-8.71,-16.41,1.29,42.18,-1.73,11.96,-19.44,52.81,29.74]},{\"tweenEasing\":0,\"offset\":2,\"vertices\":[-21.79,-2.88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,-1.23,5.26,-2.37,7.73,-5.56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.15,0.26,0,0,5.79,0.03,9.42,-0.86,6.9,1.71,8.97,2.32,5.52,4.33,12.02,4.44,5.04,7.24,11.74,15.45,6.7,-1.82,0,0,-0.14,-0.4,-0.2,-0.12,-5.38,-10.18,-6.93,-7.6,-1.71,-1.47,11.29,-13.81,13.04,3.05,18.84,8.24,18.51,-4.19,22.4,-0.51,23.8,1.71,24.29,3.03,21.12,6.28,23.35,23.43,17.47,7.35,22.67,-6.61,7.27,0.88,8.26,-0.35,7.18,0.36,4.77,-1.34,5.05,-2.92,7.4,-1.34,3.78,-0.16,3.29,-3.13,0,0,2.75,1.25,9.48,-0.92,6.19,3.45,3.56,2.58,0,0,0,0,3.1,5.15,39.97,24.53,7.36,12.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.63,3.42,3,-0.8,3.08,-0.48,2.89,1.14,0.99,-0.28,-2.52,-1.07,-3.62,-0.97,-5.71,-2.55,-4.39,-0.97,-3.9,-0.93,-4.1,-1.72,-7.68,-2.07,-6.7,-0.64,-7.31,-1.37,-5.17,0.5,-15.85,-1.28,-19,-0.91,-29.79,-1.47,-26.39,-2.48,-21.58,-2.75,-7.15,0.97,-0.16,-0.63,-4.27,0.22,-2.01,-0.42,-2.85,-0.82,-1.33,-0.78,-1.88,0.36,-2.52,0.07,-2.21,0.87,-1.81,13.62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-6.1,-1.56,-3.57,-1.49,-2.38,-1.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-6.64,2.15,-9.92,1.86,-12.88,4.33,-9.63,5.61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-8.71,-16.41,1.29,37.83,-15.86,9.87,-12.48,35.19,14]},{\"duration\":0,\"offset\":78,\"vertices\":[6.15,-1.26,5.39,-2.43,7.92,-5.7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10.39,-4.86,17.03,-0.25,17.29,0.23,17.05,3.53,12.14,4,14.93,0.68,4.95,3.38,5.1,2.94,7.5,0.33,0,0,0,0,0,0,-5.08,-10.96,-6.76,-7.6,0.73,0.98,9.23,-13.98,15.43,3.43,21.46,8.62,21.65,-5.14,24.89,-0.57,26.59,1.72,26.44,2.92,22.22,6.84,16.93,23.08,12.28,6.46,17.05,-21.77,9.07,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.75,1.25,9.48,-0.92,6.19,3.45,3.56,2.58,0,0,0,0,3.44,5.2,41.34,24.9,7.69,12.33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.63,3.42,3,-0.8,3.08,-0.48,2.89,1.14,0.82,-0.45,-2.8,-1.19,-4.02,-1.07,-6.35,-2.83,-4.87,-1.07,-4.33,-1.04,-4.56,-1.91,-8.53,-2.3,-7.45,-0.71,-8.12,-1.52,-5.74,0.55,-16.32,-0.68,-19.08,-0.05,-27.25,0.39,-23.8,-2.58,-21.08,-3.89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-6.8,2.2,-10.16,1.91,-13.19,4.44,-9.86,5.75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-8.71,-16.41,1.29,33.47,-29.99,3.86,-2.3,19.06,0.84]}]},{\"name\":\"动画拆/龙头\",\"slot\":\"龙头\",\"frame\":[{\"duration\":26},{\"duration\":0,\"offset\":36,\"vertices\":[-4.66,-34.49]}]}]},{\"duration\":10,\"playTimes\":0,\"name\":\"newAnimation_复制1\",\"bone\":[{\"name\":\"龙头\",\"rotateFrame\":[{\"duration\":10,\"rotate\":-177.66}]},{\"name\":\"10左须1\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-0.23},{\"duration\":2,\"tweenEasing\":0,\"rotate\":12.89},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-2.08},{\"duration\":0}]},{\"name\":\"龙身\",\"translateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"x\":16.04,\"y\":-31.02},{\"duration\":2,\"tweenEasing\":0,\"x\":31.26,\"y\":-27.2},{\"duration\":2,\"tweenEasing\":0,\"x\":41.01,\"y\":-25.57},{\"duration\":2,\"tweenEasing\":0,\"x\":34.8,\"y\":-25.43},{\"duration\":2,\"tweenEasing\":0,\"x\":25,\"y\":-26.72},{\"duration\":0,\"x\":16.04,\"y\":-31.02}],\"rotateFrame\":[{\"duration\":10,\"rotate\":31.02}]},{\"name\":\"10右须1\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-8.36},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-40.23},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-23.29},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-26.58},{\"duration\":0}]},{\"name\":\"龙身1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":50.67},{\"duration\":6,\"tweenEasing\":0,\"rotate\":51.7},{\"duration\":0,\"rotate\":50.67}]},{\"name\":\"10左须2\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":29.1},{\"duration\":2,\"tweenEasing\":0,\"rotate\":42.91},{\"duration\":2,\"tweenEasing\":0,\"rotate\":44.54},{\"duration\":4,\"tweenEasing\":0,\"rotate\":25.32},{\"duration\":0,\"rotate\":29.1}]},{\"name\":\"10右须2\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-27.08},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-42.85},{\"duration\":2,\"tweenEasing\":0,\"rotate\":72.17},{\"duration\":2,\"tweenEasing\":0,\"rotate\":8.2},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-29.46},{\"duration\":0,\"rotate\":-27.08}]},{\"name\":\"龙身2\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-17.84},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-16.41},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-14},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-20.74},{\"duration\":0,\"rotate\":-17.84}]},{\"name\":\"10左须3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-4.48},{\"duration\":2,\"tweenEasing\":0,\"rotate\":8.92},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-14.78},{\"duration\":0,\"rotate\":-4.48}]},{\"name\":\"左前爪\",\"rotateFrame\":[{\"duration\":10,\"rotate\":-12.5}]},{\"name\":\"10右须3\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":16.14},{\"duration\":2,\"tweenEasing\":0,\"rotate\":53.46},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-28.08},{\"duration\":2,\"tweenEasing\":0,\"rotate\":12.27},{\"duration\":2,\"tweenEasing\":0,\"rotate\":13.88},{\"duration\":0,\"rotate\":16.14}]},{\"name\":\"右前爪\",\"rotateFrame\":[{\"duration\":10,\"rotate\":-18.23}]},{\"name\":\"左前爪1\",\"rotateFrame\":[{\"duration\":2,\"rotate\":-14.63},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-19.06},{\"duration\":0,\"rotate\":-14.63}]},{\"name\":\"右前爪1\",\"rotateFrame\":[{\"duration\":2,\"rotate\":-0.97},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-3.88},{\"duration\":0,\"rotate\":-0.97}]},{\"name\":\"10左须4\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-49.65},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-62.79},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-29.72},{\"duration\":2,\"tweenEasing\":0,\"rotate\":8.11},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-5.29},{\"duration\":0,\"rotate\":-49.65}]},{\"name\":\"龙身3\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-41.19},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-39.91},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-43.67},{\"duration\":0,\"rotate\":-41.19}]},{\"name\":\"10右须4\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":25.7},{\"duration\":2,\"tweenEasing\":0,\"rotate\":25.62},{\"duration\":2,\"tweenEasing\":0,\"rotate\":11.76},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-6.3},{\"duration\":2,\"tweenEasing\":0,\"rotate\":81.79},{\"duration\":0,\"rotate\":25.7}]},{\"name\":\"左前爪2\",\"rotateFrame\":[{\"duration\":10,\"rotate\":-17.67}]},{\"name\":\"10左须5\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":24.11},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-15.47},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-41.61},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-59.91},{\"duration\":0,\"rotate\":24.11}]},{\"name\":\"右前爪2\",\"rotateFrame\":[{\"duration\":10,\"rotate\":-1.84}]},{\"name\":\"10右须5\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-32.78},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-21.91},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-30.05},{\"duration\":2,\"tweenEasing\":0,\"rotate\":33.99},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-4.96},{\"duration\":0,\"rotate\":-32.78}]},{\"name\":\"龙身4\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-65.09},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-64.71},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-71.43},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-67.98},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-66.21},{\"duration\":0,\"rotate\":-65.09}]},{\"name\":\"10左须6\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":50.03},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-4.38},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-25.52},{\"duration\":4,\"tweenEasing\":0,\"rotate\":29.84},{\"duration\":0,\"rotate\":50.03}]},{\"name\":\"龙身5\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-42.78},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-40.23},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-31.17},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-33.06},{\"duration\":0,\"rotate\":-42.78}]},{\"name\":\"10右须6\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-27.84},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-43.75},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-42.51},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-51.12},{\"duration\":0,\"rotate\":-27.84}]},{\"name\":\"10右须7\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":10.39},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-13.82},{\"duration\":2,\"tweenEasing\":0,\"rotate\":37.07},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-10.27},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-14.09},{\"duration\":0,\"rotate\":10.39}]},{\"name\":\"龙身6\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-41.95},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-39.04},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-40.42},{\"duration\":0,\"rotate\":-41.95}]},{\"name\":\"10左须7\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":31.84},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-33.93},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-16.25},{\"duration\":0}]},{\"name\":\"10右须8\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-30.49},{\"duration\":2,\"tweenEasing\":0,\"rotate\":17.32},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-29.85},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-32.68},{\"duration\":0}]},{\"name\":\"10左须8\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-39.48},{\"duration\":2,\"tweenEasing\":0,\"rotate\":14.57},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-15.27},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-28.92},{\"duration\":2,\"tweenEasing\":0,\"rotate\":22.75},{\"duration\":0,\"rotate\":-39.48}]},{\"name\":\"龙身7\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":8.48},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-6.32},{\"duration\":2,\"tweenEasing\":0,\"rotate\":6.28},{\"duration\":0,\"rotate\":8.48}]},{\"name\":\"10左须9\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":30.73},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-21.47},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-28.69},{\"duration\":2,\"tweenEasing\":0,\"rotate\":22.16},{\"duration\":0}]},{\"name\":\"10右须9\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-30.2},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-22.44},{\"duration\":2,\"tweenEasing\":0,\"rotate\":27.53},{\"duration\":2,\"tweenEasing\":0,\"rotate\":30.69},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-43.48},{\"duration\":0,\"rotate\":-30.2}]},{\"name\":\"龙身8\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":59.87},{\"duration\":8,\"tweenEasing\":0,\"rotate\":53.53},{\"duration\":0,\"rotate\":59.87}]},{\"name\":\"10左须10\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0},{\"duration\":2,\"tweenEasing\":0,\"rotate\":24.36},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-16.5},{\"duration\":2,\"tweenEasing\":0,\"rotate\":12.85},{\"duration\":2,\"tweenEasing\":0,\"rotate\":39.71},{\"duration\":0}]},{\"name\":\"龙身9\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":78.92},{\"duration\":6,\"tweenEasing\":0,\"rotate\":79.28},{\"duration\":0,\"rotate\":78.92}]},{\"name\":\"10右须10\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":-38.01},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-36.25},{\"duration\":2,\"tweenEasing\":0,\"rotate\":30.44},{\"duration\":2,\"tweenEasing\":0,\"rotate\":60.59},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-28.84},{\"duration\":0,\"rotate\":-38.01}]},{\"name\":\"龙身10\",\"rotateFrame\":[{\"duration\":2,\"tweenEasing\":0,\"rotate\":52.1},{\"duration\":2,\"tweenEasing\":0,\"rotate\":58.71},{\"duration\":2,\"tweenEasing\":0,\"rotate\":64.19},{\"duration\":2,\"tweenEasing\":0,\"rotate\":66.09},{\"duration\":2,\"tweenEasing\":0,\"rotate\":56.46},{\"duration\":0,\"rotate\":52.1}]},{\"name\":\"龙身11\",\"translateFrame\":[{\"duration\":10,\"x\":-8.36,\"y\":-3.4}],\"rotateFrame\":[{\"duration\":10,\"rotate\":-14.96}]},{\"name\":\"龙身12\",\"rotateFrame\":[{\"duration\":10,\"rotate\":14.34}]},{\"name\":\"龙身15\",\"translateFrame\":[{\"duration\":10,\"x\":2.9,\"y\":21.28}]},{\"name\":\"龙身13\",\"translateFrame\":[{\"duration\":10,\"x\":10.64,\"y\":-29.83}],\"rotateFrame\":[{\"duration\":10,\"rotate\":38.71}]},{\"name\":\"龙身14\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.42},{\"duration\":2,\"tweenEasing\":0,\"rotate\":-45.54},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-29.14},{\"duration\":0,\"rotate\":0.42}]},{\"name\":\"龙身18\",\"translateFrame\":[{\"duration\":10,\"x\":14.02,\"y\":10.53}]},{\"name\":\"龙身19\",\"translateFrame\":[{\"duration\":10,\"x\":-0.13,\"y\":35.98}]},{\"name\":\"龙身20\",\"translateFrame\":[{\"duration\":10,\"x\":35.62,\"y\":-63.63}]},{\"name\":\"右后爪\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":6,\"tweenEasing\":0,\"rotate\":-9.43},{\"duration\":0}]},{\"name\":\"龙身16\",\"translateFrame\":[{\"duration\":10,\"x\":6.59,\"y\":-6.99}]}],\"ffd\":[{\"name\":\"动画拆/龙身\",\"slot\":\"龙身\",\"frame\":[{\"duration\":10,\"offset\":78,\"vertices\":[6.15,-1.26,5.39,-2.43,7.92,-5.7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10.39,-4.86,17.03,-0.25,17.29,0.23,17.05,3.53,12.14,4,21.32,-0.37,9.79,3.84,12.6,3.29,7.5,0.33,0,0,0,0,0,0,-5.16,-10.67,-6.76,-7.6,0.73,0.98,10.9,-14.19,15.43,3.43,21.46,8.62,21.65,-5.14,24.89,-0.57,26.59,1.72,26.44,2.92,22.22,6.84,16.93,23.08,12.28,6.46,17.05,-21.77,9.07,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.75,1.25,9.48,-0.92,6.19,3.45,3.56,2.58,0,0,0,0,3.44,5.2,41.34,24.9,7.69,12.33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.63,3.42,3,-0.8,3.08,-0.48,2.89,1.14,0.82,-0.45,-2.8,-1.19,-4.02,-1.07,-6.35,-2.83,-4.87,-1.07,-4.33,-1.04,-4.56,-1.91,-8.53,-2.3,-7.45,-0.71,-8.12,-1.52,-5.74,0.55,-16.32,-0.68,-19.08,-0.05,-27.25,0.39,-23.8,-2.58,-21.08,-3.89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-6.8,2.2,-10.16,1.91,-13.19,4.44,-9.86,5.75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-8.71,-16.41,1.29,33.47,-29.99,-7.04,-4.02,30.78,6.26]}]},{\"name\":\"动画拆/龙头\",\"slot\":\"龙头\",\"frame\":[{\"duration\":10,\"offset\":36,\"vertices\":[-4.66,-34.49]}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[{"name":"leaf2","rect":[717,593,204,180],"offset":[0,0],"originalSize":[204,180],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[1]],[[{"name":"光1","rect":[806,928,68,64],"offset":[0,0],"originalSize":[68,64],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[2]],[[[8,"jiaoj_ske","{\"frameRate\":24,\"name\":\"jiaoj\",\"version\":\"5.5\",\"compatibleVersion\":\"5.5\",\"armature\":[{\"type\":\"Armature\",\"frameRate\":24,\"name\":\"Armature\",\"aabb\":{\"x\":-157.72,\"y\":-610.8,\"width\":337.77,\"height\":1786.5},\"bone\":[{\"name\":\"root\"},{\"length\":76,\"name\":\"jiao头\",\"parent\":\"root\",\"transform\":{\"x\":-4.45,\"y\":-482.7,\"skX\":88.6591,\"skY\":88.6591}},{\"length\":50,\"name\":\"jiao头1\",\"parent\":\"jiao头\",\"transform\":{\"x\":48.2732,\"y\":-85.8939,\"skX\":-27.8725,\"skY\":-27.8725}},{\"length\":52,\"name\":\"jiao头4\",\"parent\":\"jiao头\",\"transform\":{\"x\":37.6253,\"y\":80.5525,\"skX\":27.3727,\"skY\":27.3727}},{\"length\":64,\"name\":\"jiao头6\",\"parent\":\"jiao头\",\"transform\":{\"x\":8.21,\"y\":80.8643,\"skX\":61.3225,\"skY\":61.3225}},{\"length\":57,\"name\":\"jiao头3\",\"parent\":\"jiao头\",\"transform\":{\"x\":17.3671,\"y\":-90.2683,\"skX\":-60.9168,\"skY\":-60.9168}},{\"length\":119,\"name\":\"蛟身\",\"parent\":\"jiao头\",\"transform\":{\"x\":83.1892,\"y\":-0.7035,\"skX\":0.0689,\"skY\":0.0689}},{\"length\":157,\"name\":\"蛟身1\",\"parent\":\"蛟身\",\"transform\":{\"x\":122.8597,\"y\":0.9275,\"skX\":0.3071,\"skY\":0.3071}},{\"length\":40,\"name\":\"jiao头2\",\"parent\":\"jiao头1\",\"transform\":{\"x\":64.9899,\"y\":-2.0975,\"skX\":-3.8902,\"skY\":-3.8902}},{\"length\":46,\"name\":\"jiao头5\",\"parent\":\"jiao头4\",\"transform\":{\"x\":63.9174,\"y\":-0.8363,\"skX\":15.3178,\"skY\":15.3178}},{\"length\":114,\"name\":\"蛟身2\",\"parent\":\"蛟身1\",\"transform\":{\"x\":160.9067,\"y\":0.9597,\"skX\":1.3887,\"skY\":1.3887}},{\"length\":110,\"name\":\"蛟右爪\",\"parent\":\"蛟身1\",\"transform\":{\"x\":199.1782,\"y\":-62.3549,\"skX\":-24.9597,\"skY\":-24.9597}},{\"length\":111,\"name\":\"蛟左翅\",\"parent\":\"蛟身1\",\"transform\":{\"x\":191.5773,\"y\":68.2857,\"skX\":25.3472,\"skY\":25.3472}},{\"length\":75,\"name\":\"蛟左翅1\",\"parent\":\"蛟左翅\",\"transform\":{\"x\":119.0311,\"y\":3.3061,\"skX\":13.016,\"skY\":13.016}},{\"length\":116,\"name\":\"蛟身3\",\"parent\":\"蛟身2\",\"transform\":{\"x\":122.0463,\"y\":-0.9529,\"skX\":-1.7252,\"skY\":-1.7252}},{\"length\":62,\"name\":\"蛟右爪1\",\"parent\":\"蛟右爪\",\"transform\":{\"x\":125.4649,\"y\":-0.7764,\"skX\":-14.2771,\"skY\":-14.2771}},{\"length\":92,\"name\":\"蛟左翅3\",\"parent\":\"蛟左翅\",\"transform\":{\"x\":68.9141,\"y\":-18.6091,\"skX\":-12.4744,\"skY\":-12.4744}},{\"length\":110,\"name\":\"蛟右爪2\",\"parent\":\"蛟右爪\",\"transform\":{\"x\":6.5928,\"y\":-10.3603,\"skX\":-17.6047,\"skY\":-17.6047}},{\"length\":95,\"name\":\"蛟左翅2\",\"parent\":\"蛟左翅\",\"transform\":{\"x\":24.6649,\"y\":13.3593,\"skX\":20.3415,\"skY\":20.3415}},{\"length\":129,\"name\":\"蛟右爪3\",\"parent\":\"蛟右爪\",\"transform\":{\"x\":45.3026,\"y\":13.7382,\"skX\":12.2492,\"skY\":12.2492}},{\"length\":119,\"name\":\"蛟身4\",\"parent\":\"蛟身3\",\"transform\":{\"x\":123.7181,\"y\":2.8106,\"skX\":1.3014,\"skY\":1.3014}},{\"length\":120,\"name\":\"蛟身5\",\"parent\":\"蛟身4\",\"transform\":{\"x\":125.55,\"y\":2.65,\"skX\":0.4288,\"skY\":0.4288}},{\"length\":112,\"name\":\"蛟身6\",\"parent\":\"蛟身5\",\"transform\":{\"x\":129.1166,\"y\":1.7337,\"skX\":-1.7818,\"skY\":-1.7818}},{\"length\":87,\"name\":\"蛟身7\",\"parent\":\"蛟身6\",\"transform\":{\"x\":122.0762,\"y\":0.3325,\"skX\":1.353,\"skY\":1.353}},{\"length\":97,\"name\":\"蛟身8\",\"parent\":\"蛟身7\",\"transform\":{\"x\":94.1,\"y\":3,\"skX\":-0.5897,\"skY\":-0.5897}},{\"length\":129,\"name\":\"蛟身9\",\"parent\":\"蛟身8\",\"transform\":{\"x\":110.175,\"y\":-1.8661,\"skX\":0.5897,\"skY\":0.5897}},{\"length\":68,\"name\":\"蛟身18\",\"parent\":\"蛟身8\",\"transform\":{\"x\":85.4398,\"y\":30.581,\"skX\":23.1292,\"skY\":23.1292}},{\"length\":73,\"name\":\"蛟身19\",\"parent\":\"蛟身8\",\"transform\":{\"x\":80.0972,\"y\":-38.1776,\"skX\":-19.174,\"skY\":-19.174}},{\"length\":75,\"name\":\"蛟身10\",\"parent\":\"蛟身9\",\"transform\":{\"x\":134.45,\"y\":-1,\"skX\":1.0264,\"skY\":1.0264}},{\"length\":60,\"name\":\"蛟身15\",\"parent\":\"蛟身9\",\"transform\":{\"x\":52.3,\"y\":-25.25,\"skX\":-20.0112,\"skY\":-20.0112}},{\"length\":69,\"name\":\"蛟身12\",\"parent\":\"蛟身9\",\"transform\":{\"x\":46.25,\"y\":21.2,\"skX\":17.5838,\"skY\":17.5838}},{\"length\":45,\"name\":\"蛟身16\",\"parent\":\"蛟身15\",\"transform\":{\"x\":72.5204,\"y\":3.5299,\"skX\":2.0885,\"skY\":2.0885}},{\"length\":51,\"name\":\"蛟身13\",\"parent\":\"蛟身12\",\"transform\":{\"x\":83.2601,\"y\":-0.2652,\"skX\":-0.7561,\"skY\":-0.7561}},{\"length\":74,\"name\":\"蛟身11\",\"parent\":\"蛟身10\",\"transform\":{\"x\":83.4483,\"y\":-0.845,\"skX\":-0.4848,\"skY\":-0.4848}},{\"length\":37,\"name\":\"蛟身17\",\"parent\":\"蛟身16\",\"transform\":{\"x\":60.022,\"y\":-1.8174,\"skX\":1.3754,\"skY\":1.3754}},{\"length\":38,\"name\":\"蛟身14\",\"parent\":\"蛟身13\",\"transform\":{\"x\":61.3117,\"y\":0.4708,\"skX\":1.2815,\"skY\":1.2815}}],\"slot\":[{\"name\":\"蛟左翅\",\"parent\":\"蛟左翅3\"},{\"name\":\"蛟右爪\",\"parent\":\"蛟右爪3\"},{\"name\":\"蛟身\",\"parent\":\"蛟身19\"},{\"name\":\"jiao头\",\"parent\":\"jiao头6\"},{\"displayIndex\":-1,\"name\":\"龙头\",\"parent\":\"root\"}],\"skin\":[{\"slot\":[{\"name\":\"jiao头\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/jiao头\",\"width\":313,\"height\":292,\"vertices\":[-157.38,-581.6,155.62,-581.6,-157.38,-289.6,155.62,-289.6,91.05,-333.15,90.95,-338.3,86.6,-348.25,83.1,-358.45,82.5,-366.35,85.5,-374.8,91.45,-379.25,96.1,-380.25,102.85,-377.6,107.4,-376.95,109.05,-380.15,117.1,-367.55,122.55,-360.3,131.55,-350,139.7,-340.3,143.4,-340.2,144,-343.7,138.45,-352.95,130.4,-366.35,123.4,-378.65,118.3,-388.95,113.05,-400.2,109.95,-410.75,109.65,-422.3,111.5,-428.5,116.55,-435.3,121.8,-438.4,127.9,-439.85,133.6,-438.6,140.2,-435.5,143.95,-435.2,145.05,-437.95,141.3,-440.75,132.55,-444.75,125.8,-448.05,114.55,-454.1,104.75,-459.95,97.8,-465.45,89.5,-474.45,80.95,-485.6,76.35,-497.55,73.5,-505.4,69.6,-511.2,63.2,-525.75,50.05,-544.85,40.65,-554.25,31.7,-561.15,22.95,-570.1,12.15,-579.3,-2.6,-581.6,-16.5,-576.45,-25.1,-568.35,-36.85,-558.3,-45.65,-549.4,-52.85,-543.15,-61.45,-529.65,-70.85,-518.1,-74.95,-509,-80.9,-497.4,-86.85,-487.05,-84.8,-479.75,-94.85,-468.3,-105.15,-461.4,-115.95,-455.15,-124.4,-449.95,-136.15,-443.7,-143.05,-440.55,-146,-436.95,-141.65,-434.6,-135.05,-438.2,-128.95,-438.85,-123,-438.2,-118,-435.25,-113.3,-429.6,-110.15,-422.7,-109.55,-415.2,-111.75,-404.55,-115.8,-395,-118.75,-388.45,-121.9,-380.9,-127.85,-370.85,-131.75,-362.25,-137.7,-353.05,-142.55,-346.45,-144.45,-341.75,-140.05,-339.9,-133,-347.55,-126,-356.15,-118.3,-365.85,-110.3,-377.6,-105.3,-377.45,-98.25,-378.1,-94.05,-380.75,-88.85,-377.6,-84.95,-369.95,-83.7,-361.35,-85.6,-351.95,-88.25,-346.6,-93.25,-335.35,-90.75,-331.55,-86.55,-335.8,-79.35,-344.7,-73.85,-353.5,-70.4,-358.35,-65.3,-368,86.55,-334,82.25,-341.35,75.95,-348.85,70.15,-360.45,63.35,-370.5,60.65,-376.45,51.1,-392.15,46.85,-403.9,41.9,-421.15,-56.2,-384.45,-49.55,-400.85,-43.05,-417.7,-39.3,-426.05,-36.9,-431.55,-32.5,-443.85,35.9,-432.25,32.65,-444.5,-10.15,-436.85,14.6,-437.5],\"uvs\":[0,0,1,0,0,1,1,1,0.79371,0.85086,0.79339,0.83322,0.77949,0.79915,0.76831,0.76422,0.76639,0.73716,0.77598,0.70822,0.79499,0.69299,0.80984,0.68956,0.83141,0.69864,0.84595,0.70086,0.85122,0.6899,0.87694,0.73305,0.89435,0.75788,0.9231,0.79316,0.94914,0.82638,0.96096,0.82672,0.96288,0.81473,0.94515,0.78305,0.91943,0.73716,0.89706,0.69504,0.88077,0.65977,0.864,0.62124,0.85409,0.58511,0.85313,0.54555,0.85905,0.52432,0.87518,0.50103,0.89195,0.49042,0.91144,0.48545,0.92965,0.48973,0.95074,0.50035,0.96272,0.50138,0.96623,0.49196,0.95425,0.48237,0.9263,0.46867,0.90473,0.45737,0.86879,0.43665,0.83748,0.41662,0.81528,0.39778,0.78876,0.36696,0.76144,0.32877,0.74675,0.28785,0.73764,0.26096,0.72518,0.2411,0.70473,0.19127,0.66272,0.12586,0.63269,0.09367,0.60409,0.07004,0.57614,0.03939,0.54163,0.00788,0.49451,0,0.4501,0.01764,0.42262,0.04538,0.38508,0.0798,0.35697,0.11028,0.33397,0.13168,0.30649,0.17792,0.27646,0.21747,0.26336,0.24864,0.24435,0.28836,0.22534,0.32381,0.23189,0.34881,0.19978,0.38802,0.16687,0.41165,0.13237,0.43305,0.10537,0.45086,0.06783,0.47227,0.04579,0.48305,0.03636,0.49538,0.05026,0.50343,0.07135,0.4911,0.09083,0.48888,0.10984,0.4911,0.12582,0.5012,0.14083,0.52055,0.1509,0.54418,0.15282,0.56987,0.14579,0.60634,0.13285,0.63905,0.12342,0.66148,0.11336,0.68733,0.09435,0.72175,0.08189,0.7512,0.06288,0.78271,0.04738,0.80531,0.04131,0.82141,0.05537,0.82775,0.0779,0.80155,0.10026,0.77209,0.12486,0.73888,0.15042,0.69864,0.16639,0.69915,0.18892,0.69692,0.20234,0.68785,0.21895,0.69864,0.23141,0.72483,0.2354,0.75429,0.22933,0.78648,0.22087,0.8048,0.20489,0.84333,0.21288,0.85634,0.2263,0.84179,0.2493,0.81131,0.26687,0.78117,0.2779,0.76456,0.29419,0.73151,0.77933,0.84795,0.76559,0.82278,0.74547,0.79709,0.72694,0.75737,0.70521,0.72295,0.69659,0.70257,0.66607,0.64881,0.6525,0.60857,0.63668,0.54949,0.32326,0.67518,0.34451,0.61901,0.36528,0.56131,0.37726,0.53271,0.38492,0.51388,0.39898,0.47175,0.61751,0.51148,0.60713,0.46953,0.47039,0.49572,0.54946,0.4935],\"triangles\":[44,43,42,26,25,33,33,25,34,25,24,34,24,23,34,23,22,34,22,21,34,21,20,34,34,20,35,53,52,1,52,51,1,50,49,1,51,50,1,49,48,1,46,45,1,47,46,1,41,40,1,42,41,1,40,39,1,44,42,1,45,44,1,39,38,1,38,37,1,37,36,1,36,35,1,48,47,1,109,103,3,103,2,3,4,109,3,19,18,3,18,4,3,20,19,3,1,35,3,35,20,3,30,29,32,29,28,32,28,27,32,32,27,33,27,26,33,33,34,35,36,33,35,18,19,20,21,18,20,21,17,18,31,30,32,17,4,18,32,33,36,37,32,36,22,17,21,22,16,17,5,4,17,37,31,32,16,5,17,38,31,37,23,15,22,15,16,22,38,30,31,39,30,38,39,29,30,24,14,23,14,15,23,15,6,16,6,5,16,0,54,53,104,103,109,14,13,15,39,40,29,12,7,15,7,6,15,25,14,24,40,28,29,13,12,15,11,14,25,40,41,28,26,11,25,8,7,12,10,11,26,11,12,14,117,27,28,41,117,28,115,10,26,116,115,26,27,116,26,12,13,14,117,116,27,10,9,12,9,8,12,105,104,109,124,117,41,11,10,12,42,124,41,115,114,9,111,105,109,125,124,42,115,9,10,110,111,109,43,125,42,109,4,5,110,109,5,6,110,5,107,106,111,106,105,111,7,111,6,111,110,6,113,8,9,114,113,9,112,111,7,112,7,8,113,112,8,112,107,111,44,125,43,108,107,113,113,107,112,45,46,44,46,125,44,47,125,46,126,127,125,126,125,48,57,126,48,49,57,48,115,118,114,48,125,47,114,118,113,118,108,113,57,123,126,57,59,123,56,57,50,50,57,49,116,119,115,119,118,115,117,127,116,127,126,116,126,119,116,55,56,50,124,127,117,51,55,50,125,127,124,120,119,126,58,59,57,52,53,51,53,54,51,54,55,51,60,61,59,59,61,123,61,62,123,0,56,55,0,55,54,121,120,126,122,121,126,62,64,123,123,122,126,0,57,56,0,58,57,65,122,123,64,65,123,65,121,122,65,78,120,65,120,121,79,119,120,78,79,120,0,59,58,97,118,119,96,97,119,79,96,119,77,78,66,66,78,65,0,60,59,97,108,118,79,80,96,97,98,108,63,64,62,98,107,108,99,106,107,98,99,107,0,61,60,0,62,61,100,105,106,99,100,106,0,63,62,101,104,105,100,101,105,89,2,103,0,67,63,95,94,99,92,100,99,94,92,99,98,95,99,67,76,77,67,77,66,101,102,104,67,66,63,63,65,64,92,101,100,97,95,98,102,103,104,66,65,63,0,68,67,80,81,96,102,89,103,91,102,101,92,91,101,96,95,97,94,95,96,81,94,96,0,69,68,90,89,102,91,90,102,0,70,69,81,82,93,93,92,94,81,93,94,68,75,76,68,76,67,78,72,79,72,80,79,83,92,93,82,83,93,77,72,78,76,74,77,74,72,77,72,81,80,73,72,74,83,84,92,75,74,76,72,82,81,72,83,82,85,91,92,84,85,92,0,71,70,72,71,84,68,74,75,72,84,83,69,74,68,71,85,84,88,2,89,71,86,85,85,86,91,86,90,91,71,87,86,69,73,74,86,87,90,87,89,90,71,88,87,69,70,73,70,72,73,70,71,72,87,88,89,71,2,88,0,2,71],\"weights\":[2,4,0.590026,3,0.409974,2,5,0.59762,2,0.40238,3,4,0.118666,9,0.685262,3,0.196072,3,8,0.696641,2,0.194478,5,0.108881,3,8,0.574652,2,0.332717,5,0.092631,3,8,0.567555,2,0.344367,5,0.088078,4,8,0.509874,2,0.383073,5,0.08289,3,0.024163,4,8,0.472368,2,0.428171,5,0.078138,3,0.021323,4,2,0.46168,8,0.448465,5,0.072051,3,0.017804,4,2,0.513714,8,0.414765,5,0.059469,3,0.012052,4,2,0.561194,8,0.390352,5,0.041634,3,0.00682,4,2,0.571986,8,0.39376,5,0.029928,3,0.004326,4,8,0.559237,2,0.417983,5,0.020137,3,0.002643,3,8,0.726604,2,0.260158,5,0.013238,3,8,0.7603,2,0.231155,5,0.008545,3,8,0.941772,2,0.051596,5,0.006632,3,8,0.970371,2,0.024812,5,0.004816,3,8,0.992185,2,0.00604,5,0.001776,3,8,0.981885,2,0.013147,5,0.004969,3,8,0.973561,2,0.018858,5,0.007581,3,8,0.982147,2,0.012769,5,0.005084,3,8,0.99357,2,0.004822,5,0.001608,3,8,0.983704,2,0.013322,5,0.002974,3,8,0.944736,2,0.04951,5,0.005754,3,8,0.655514,2,0.328929,5,0.015557,3,2,0.805338,8,0.165626,5,0.029036,4,2,0.815861,8,0.112498,5,0.068916,3,0.002726,4,2,0.667338,5,0.221872,8,0.105861,3,0.004928,4,2,0.476479,5,0.423142,8,0.094714,3,0.005665,3,5,0.76271,2,0.184685,8,0.052605,3,5,0.915533,2,0.061682,8,0.022785,3,5,0.97874,2,0.014479,8,0.00678,3,5,0.991001,2,0.005734,8,0.003265,3,5,0.972188,2,0.016413,8,0.011399,3,5,0.949098,2,0.02908,8,0.021822,3,5,0.956665,2,0.024854,8,0.018481,3,5,0.987437,2,0.007511,8,0.005053,3,5,0.998527,2,0.000968,8,0.000504,3,5,0.998809,2,0.000846,8,0.000345,4,5,0.998172,2,0.001426,8,0.000354,3,0.000048,4,5,0.99547,2,0.003799,8,0.00062,3,0.00011,4,4,0.000388,5,0.985786,2,0.012097,8,0.00173,4,4,0.001874,5,0.953826,2,0.03828,8,0.006021,4,4,0.010817,5,0.840563,2,0.124083,8,0.024537,4,4,0.027444,5,0.730239,2,0.1942,8,0.048117,4,4,0.041129,5,0.673623,2,0.223077,8,0.06217,4,4,0.054487,5,0.632611,2,0.24068,8,0.072222,4,4,0.08824,5,0.557534,2,0.262302,8,0.091924,4,4,0.145325,5,0.467694,2,0.266502,3,0.120479,4,4,0.179104,5,0.419004,2,0.257556,3,0.144337,4,4,0.208365,5,0.38097,2,0.246825,3,0.163839,4,4,0.237274,5,0.345705,2,0.234688,3,0.182333,4,4,0.268084,5,0.310525,2,0.220309,3,0.201082,4,4,0.305088,5,0.272583,3,0.221006,2,0.201323,4,4,0.343495,3,0.23834,5,0.237245,2,0.18092,4,4,0.374083,3,0.249501,5,0.211637,2,0.164779,4,4,0.421832,3,0.263569,5,0.174404,2,0.140195,4,4,0.465327,3,0.271917,5,0.143932,2,0.118823,4,4,0.499676,3,0.274173,5,0.119956,9,0.106196,4,4,0.55872,3,0.266818,9,0.091446,5,0.083016,4,4,0.627162,3,0.246429,9,0.07405,5,0.052359,4,4,0.68441,3,0.221447,9,0.058855,5,0.035288,4,4,0.779101,3,0.167212,9,0.036583,5,0.017104,4,4,0.880195,3,0.096604,9,0.017053,5,0.006148,4,4,0.956578,3,0.036657,9,0.005098,5,0.001667,4,4,0.997989,3,0.001784,9,0.000186,2,0.000041,4,4,0.999835,3,0.000143,9,0.000019,2,0.000003,4,4,0.999884,3,0.000092,9,0.000022,2,0.000003,3,4,0.999998,3,0.000002,9,0.000001,3,4,0.999813,3,0.00012,9,0.000066,3,4,0.996033,3,0.002385,9,0.001583,3,4,0.973991,3,0.015075,9,0.010935,3,4,0.973475,3,0.015706,9,0.01082,3,4,0.981367,3,0.011886,9,0.006746,3,4,0.949859,3,0.03421,9,0.015931,3,4,0.870098,3,0.095011,9,0.03489,3,4,0.691361,3,0.239682,9,0.068957,4,4,0.386291,3,0.502793,9,0.105538,2,0.005379,4,4,0.160464,3,0.727089,9,0.108401,2,0.004045,4,4,0.065984,3,0.827621,9,0.103915,2,0.00248,4,4,0.024894,3,0.832727,9,0.141044,2,0.001335,3,4,0.017153,3,0.569303,9,0.413543,3,4,0.013723,9,0.77192,3,0.214357,3,4,0.00583,9,0.945376,3,0.048795,3,4,0.001478,9,0.991738,3,0.006784,1,9,1,3,4,0.000346,9,0.998719,3,0.000935,3,4,0.00225,9,0.992462,3,0.005288,3,4,0.008955,9,0.971147,3,0.019897,3,4,0.011688,9,0.960745,3,0.027566,3,4,0.008579,9,0.967107,3,0.024314,3,4,0.009124,9,0.957228,3,0.033648,3,4,0.009237,9,0.938163,3,0.0526,3,4,0.006632,9,0.905351,3,0.088016,4,4,0.014382,9,0.777547,3,0.206133,2,0.001939,4,4,0.025062,9,0.627292,3,0.343714,2,0.003932,4,4,0.030995,9,0.541128,3,0.422785,2,0.005092,4,4,0.04544,9,0.51567,3,0.429951,2,0.00894,4,4,0.061172,9,0.515891,3,0.408033,2,0.014904,4,4,0.073591,9,0.514838,3,0.390753,2,0.020818,4,4,0.082784,9,0.5229,3,0.368928,2,0.025388,4,4,0.085919,9,0.537074,3,0.35033,2,0.026677,3,4,0.09527,9,0.581569,3,0.323162,3,4,0.102938,9,0.566767,3,0.330295,4,4,0.099966,9,0.525155,3,0.338993,2,0.035886,4,4,0.099028,9,0.492512,3,0.371541,2,0.036918,4,4,0.097359,9,0.474323,3,0.391579,2,0.036739,4,4,0.098845,9,0.462749,3,0.400551,2,0.037855,4,4,0.105178,9,0.437317,3,0.417506,2,0.04,3,8,0.545262,2,0.355835,5,0.098903,4,8,0.494399,2,0.377426,5,0.095558,3,0.032618,4,8,0.455943,2,0.410722,5,0.098691,3,0.034643,4,2,0.442427,8,0.42106,5,0.101785,3,0.034728,4,2,0.45959,8,0.381294,5,0.118377,3,0.040739,4,2,0.470892,8,0.356595,5,0.129101,3,0.043412,4,2,0.495565,8,0.27401,5,0.173289,3,0.057136,4,2,0.518217,8,0.215131,5,0.205292,3,0.06136,4,2,0.543765,5,0.249823,8,0.143717,3,0.062695,4,4,0.137619,3,0.438593,9,0.372128,2,0.05166,4,4,0.18166,3,0.470935,9,0.285431,2,0.061975,4,4,0.237964,3,0.492347,9,0.199124,2,0.070565,4,4,0.265898,3,0.492765,9,0.165517,2,0.07582,4,4,0.285856,3,0.484781,9,0.149193,2,0.08017,4,4,0.33418,3,0.450929,9,0.124545,2,0.090346,4,2,0.506418,5,0.294766,8,0.1223,3,0.076516,4,2,0.460458,5,0.346576,8,0.106673,3,0.086294,4,4,0.268178,3,0.335681,2,0.215192,5,0.180949,4,4,0.15584,2,0.376991,5,0.289041,3,0.178128],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[4,-0.865865,0.500278,-0.500278,-0.865865,-85.1,-472.6,3,-0.438871,0.89855,-0.89855,-0.438871,-84.1,-443.2,9,-0.660652,0.750692,-0.750692,-0.660652,-111.4,-385.4,5,0.88505,0.465496,-0.465496,0.88505,86.2,-467.45,2,0.488064,0.872808,-0.872808,0.488064,82.55,-436.45,8,0.546155,0.837684,-0.837684,0.546155,116.1,-380.75],\"edges\":[1,3,3,2,2,0,0,53,53,1],\"userEdges\":[]}]},{\"name\":\"蛟身\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/蛟身\",\"width\":235,\"height\":1562,\"vertices\":[-108,-542.5,127,-542.5,-108,1019.5,127,1019.5,-16.25,-492.65,-32.45,-477.15,-42.1,-458.7,-52.9,-434.45,-56.75,-406.15,-62.35,-382.55,-65.6,-350.8,-66.75,-324.2,-68.8,-299.9,-70.5,-271.95,-70.5,-246.15,-70.9,-220.1,-70.65,-193.55,-70.6,-171.15,-70.45,-146.2,-70.5,-116.9,-69.95,-93,-68.7,-60.55,-68.05,-26.25,-68.7,5.95,-67.15,39.6,-66.5,66.65,-65.6,101.15,-64.4,131.8,-62.45,165.75,-62.1,190.4,-61.1,218.65,-60.05,246.75,-58.5,272.7,-57.65,300.25,-56.45,324.2,-55.05,351.4,-53.85,377.25,-53.3,403.95,-50.85,436.15,-49.15,460.75,-47.1,492.5,-44.45,518,-42.9,546.25,-40.65,570.8,-41,595.25,-41.35,623.2,-44.65,647.65,-47.95,667.75,-52.8,693.85,-57.5,715.4,-62.15,734.3,-66,750.55,-66.55,765.05,-63.15,769.8,-58.85,768.65,-56.3,762.25,-52.65,757.25,-48.95,757.6,-46.75,764.75,-44.9,775.65,-44.4,786.15,-45.35,798.55,-47.8,812.35,-48.25,817.45,-52.35,829.1,-57.35,842.25,-62,858.55,-67,876.15,-72,893.7,-76.8,910.95,-82,929.35,-83.15,934.25,-80.75,940.65,-75.7,940.65,-71.55,935.2,-66.75,922.25,-62.35,909,-58.5,899.45,-55.7,891.85,-48.15,888,-40.45,887.65,-33.15,893.1,-25.3,904.9,-19.7,917.6,-14.35,936.45,-9.7,951.9,-6.15,965.9,-5.2,979.8,-3.9,999.65,-4.15,1006.55,-3.2,1013.05,-2.15,1017.6,0.9,1019.5,4.25,1017.85,5.4,1013.05,5.9,1007.25,6.1,999.65,7.6,979.3,7.95,967.4,10.3,958.95,12.75,948.8,15.05,939.4,17.85,929.85,21.1,917.85,25.2,908.5,29.85,899.9,35.1,891.75,40.2,886.85,45.7,886.05,52.45,886.5,58.05,890.25,62.7,902.45,66.8,913.9,72.25,928.75,75.4,936.6,79.35,938.8,82.7,937.4,85.05,934.35,85.75,929.2,83.45,920.95,80.2,910.35,76.55,896.6,71.8,879.95,69,870.2,65.35,858.2,61.3,845.05,56.55,831.65,52,818.25,47.9,801.05,46.75,786,47.1,771.7,50,761,54.65,755.75,58.15,759.05,60.95,764.05,63.4,767.75,68.05,765.9,69.8,762.15,69.8,753.85,66.75,741.9,63.85,730.6,60.5,715.8,57,700.8,54.2,686.7,51.4,672.75,49.55,658.85,46.4,642.8,45.6,627.9,44.45,608.8,44.55,589.7,43.65,568.2,45,548.35,47.1,526.7,48.75,502.85,50,479.65,51.8,456.4,54.1,434.25,54.45,409.7,55.7,388.8,57.15,364.85,57.95,343.3,59.45,321.4,61.3,290.55,62.1,264.5,62.9,243.4,64.35,224.45,64.55,206.5,65,183.25,66.5,162.45,66.85,148.2,67.6,134.05,67.85,118.35,68.55,103.25,68.55,79.9,69.7,64.35,70.5,46.95,71.1,27.65,70.4,7.15,71.65,-9.95,71.8,-25.7,72.35,-49.05,72.5,-76.4,73.2,-98.45,73.4,-120.7,73.15,-144.55,74.15,-161.45,74.5,-191.25,74.7,-217.9,74.9,-249.7,73.55,-275.2,72.6,-296.6,71.8,-312.45,70.7,-339.25,67.1,-371.85,65.45,-397.85,59.3,-430.85,48.6,-458.8,41.3,-478.4,27.45,-492.95,5.95,-506.4,-51.9,879.45,-47.25,865.35,-42.5,850.3,-37.65,836.8,-33.85,822.75,-30,811,-26.1,799.95,-21.85,789.45,-17.55,778.45,-12.2,771.25,-10.45,782.5,-10.35,797.2,-10.15,808.85,-10.1,821.7,-9.2,841.05,-8.95,859.1,-9.2,877.75,-7.8,897.15,-7.8,912.7,-6.3,927,-6.4,943.65,-5.8,953.85,7.15,955.95,8.05,945.4,8.95,933.4,9.45,915.35,9.55,900.65,10.6,885,11.55,856.9,12.65,839.55,13.35,816.75,12.65,799.75,13,781,13.25,773.6,14.5,769.55,19.6,777.65,25.65,791.2,31.05,806.8,36.15,824.05,41.6,840,48.05,860.85,58,886.1,-41.9,796.75,-38.5,784.9,-35.7,775.7,-32.65,765.75,-29.8,755.8,-26.6,744.15,-24.15,732.8,-22.8,724.2,-22.6,716.8,-23.2,708.5,-26.15,702.4,-28.9,706,-33.05,712.25,-37.35,719,-41.1,727.8,-45.15,737.4,-48.8,745.5,-53,753.45,56.2,752.65,52.35,744.7,48.5,737.75,43.95,727.2,39.95,718.65,34.8,709.55,31.6,704.85,27.85,702.25,25.6,706.2,26.55,719.95,27.35,730.1,31.55,747.9,34.5,761.05,36.9,772.4,40.35,784.3,44.2,795.45,46.95,805.7],\"uvs\":[0,0,1,0,0,1,1,1,0.39043,0.03191,0.32149,0.04184,0.28043,0.05365,0.23447,0.06917,0.21809,0.08729,0.19426,0.1024,0.18043,0.12273,0.17553,0.13976,0.16681,0.15531,0.15957,0.17321,0.15957,0.18972,0.15787,0.2064,0.15894,0.2234,0.15915,0.23774,0.15979,0.25371,0.15957,0.27247,0.16191,0.28777,0.16723,0.30855,0.17,0.33051,0.16723,0.35112,0.17383,0.37266,0.1766,0.38998,0.18043,0.41207,0.18553,0.43169,0.19383,0.45343,0.19532,0.46921,0.19957,0.48729,0.20404,0.50528,0.21064,0.5219,0.21426,0.53953,0.21936,0.55487,0.22532,0.57228,0.23043,0.58883,0.23277,0.60592,0.24319,0.62654,0.25043,0.64229,0.25915,0.66261,0.27043,0.67894,0.27702,0.69702,0.2866,0.71274,0.28511,0.72839,0.28362,0.74629,0.26957,0.76194,0.25553,0.77481,0.23489,0.79152,0.21489,0.80531,0.19511,0.81741,0.17872,0.82782,0.17638,0.8371,0.19085,0.84014,0.20915,0.8394,0.22,0.83531,0.23553,0.83211,0.25128,0.83233,0.26064,0.83691,0.26851,0.84389,0.27064,0.85061,0.2666,0.85855,0.25617,0.86738,0.25426,0.87065,0.23681,0.8781,0.21553,0.88652,0.19574,0.89696,0.17447,0.90823,0.15319,0.91946,0.13277,0.93051,0.11064,0.94229,0.10574,0.94542,0.11596,0.94952,0.13745,0.94952,0.15511,0.94603,0.17553,0.93774,0.19426,0.92926,0.21064,0.92314,0.22255,0.91828,0.25468,0.91581,0.28745,0.91559,0.31851,0.91908,0.35191,0.92663,0.37574,0.93476,0.39851,0.94683,0.4183,0.95672,0.4334,0.96569,0.43745,0.97458,0.44298,0.98729,0.44191,0.99171,0.44596,0.99587,0.45043,0.99878,0.4634,1,0.47766,0.99894,0.48255,0.99587,0.48468,0.99216,0.48553,0.98729,0.49191,0.97426,0.4934,0.96665,0.5034,0.96124,0.51383,0.95474,0.52362,0.94872,0.53553,0.94261,0.54936,0.93492,0.56681,0.92894,0.5866,0.92343,0.60894,0.91821,0.63064,0.91508,0.65404,0.91456,0.68277,0.91485,0.7066,0.91725,0.72638,0.92506,0.74383,0.93239,0.76702,0.9419,0.78043,0.94693,0.79723,0.94834,0.81149,0.94744,0.82149,0.94549,0.82447,0.94219,0.81468,0.93691,0.80085,0.93012,0.78532,0.92132,0.76511,0.91066,0.75319,0.90442,0.73766,0.89673,0.72043,0.88832,0.70021,0.87974,0.68085,0.87116,0.6634,0.86015,0.65851,0.85051,0.66,0.84136,0.67234,0.83451,0.69213,0.83115,0.70702,0.83326,0.71894,0.83646,0.72936,0.83883,0.74915,0.83764,0.7566,0.83524,0.7566,0.82993,0.74362,0.82228,0.73128,0.81504,0.71702,0.80557,0.70213,0.79597,0.69021,0.78694,0.6783,0.77801,0.67043,0.76911,0.65702,0.75883,0.65362,0.7493,0.64872,0.73707,0.64915,0.72484,0.64532,0.71108,0.65106,0.69837,0.66,0.68451,0.66702,0.66924,0.67234,0.65439,0.68,0.6395,0.68979,0.62532,0.69128,0.6096,0.6966,0.59622,0.70277,0.58089,0.70617,0.56709,0.71255,0.55307,0.72043,0.53332,0.72383,0.51665,0.72723,0.50314,0.7334,0.49101,0.73426,0.47951,0.73617,0.46463,0.74255,0.45131,0.74404,0.44219,0.74723,0.43313,0.7483,0.42308,0.75128,0.41341,0.75128,0.39846,0.75617,0.38851,0.75957,0.37737,0.76213,0.36501,0.75915,0.35189,0.76447,0.34094,0.76511,0.33086,0.76745,0.31591,0.76809,0.2984,0.77106,0.28428,0.77191,0.27004,0.77085,0.25477,0.77511,0.24395,0.7766,0.22487,0.77745,0.20781,0.7783,0.18745,0.77255,0.17113,0.76851,0.15743,0.76511,0.14728,0.76043,0.13012,0.74511,0.10925,0.73809,0.09261,0.71191,0.07148,0.66638,0.05359,0.63532,0.04104,0.57638,0.03172,0.48489,0.02311,0.23872,0.91034,0.25851,0.90131,0.27872,0.89168,0.29936,0.88303,0.31553,0.87404,0.33191,0.86652,0.34851,0.85944,0.3666,0.85272,0.38489,0.84568,0.40766,0.84107,0.41511,0.84827,0.41553,0.85768,0.41638,0.86514,0.4166,0.87337,0.42043,0.88576,0.42149,0.89731,0.42043,0.90925,0.42638,0.92167,0.42638,0.93163,0.43277,0.94078,0.43234,0.95144,0.43489,0.95797,0.49,0.95931,0.49383,0.95256,0.49766,0.94488,0.49979,0.93332,0.50021,0.92391,0.50468,0.91389,0.50872,0.8959,0.5134,0.8848,0.51638,0.8702,0.5134,0.85931,0.51489,0.84731,0.51596,0.84257,0.52128,0.83998,0.54298,0.84517,0.56872,0.85384,0.5917,0.86383,0.6134,0.87487,0.6366,0.88508,0.66404,0.89843,0.70638,0.9146,0.28128,0.85739,0.29574,0.84981,0.30766,0.84392,0.32064,0.83755,0.33277,0.83118,0.34638,0.82372,0.35681,0.81645,0.36255,0.81095,0.3634,0.80621,0.36085,0.8009,0.3483,0.79699,0.3366,0.7993,0.31894,0.8033,0.30064,0.80762,0.28468,0.81325,0.26745,0.8194,0.25191,0.82458,0.23404,0.82967,0.69872,0.82916,0.68234,0.82407,0.66596,0.81962,0.6466,0.81287,0.62957,0.80739,0.60766,0.80157,0.59404,0.79856,0.57809,0.7969,0.56851,0.79942,0.57255,0.80823,0.57596,0.81472,0.59383,0.82612,0.60638,0.83454,0.6166,0.84181,0.63128,0.84942,0.64766,0.85656,0.65936,0.86312],\"triangles\":[150,149,151,149,148,147,151,149,152,147,146,145,149,147,145,149,145,143,145,144,143,155,154,156,154,153,156,157,156,158,158,156,159,160,159,161,149,143,141,152,149,141,143,142,141,164,163,165,163,162,165,167,166,168,166,165,168,141,140,139,152,141,139,168,170,169,171,170,172,173,172,174,128,127,136,127,126,136,126,125,136,174,172,175,136,125,137,125,124,137,124,123,137,152,139,138,153,152,138,156,153,138,137,123,122,177,176,178,179,178,180,182,181,180,185,184,183,137,122,121,121,120,119,137,121,119,0,199,1,199,198,1,198,197,1,196,195,1,197,196,1,195,194,1,193,192,1,194,193,1,191,190,1,192,191,1,180,178,1,178,176,1,183,182,1,185,183,1,189,188,1,190,189,1,176,175,1,182,180,1,187,186,1,186,185,1,188,187,1,93,92,3,156,138,3,159,156,3,161,159,3,162,161,3,165,162,3,94,93,3,115,96,3,96,95,3,95,94,3,116,115,3,117,116,3,119,118,3,137,119,3,138,137,3,170,168,3,168,165,3,118,117,3,172,170,3,1,175,3,175,172,3,98,97,99,129,128,135,135,128,136,100,99,114,99,97,114,114,97,115,97,96,115,119,113,118,114,117,118,113,114,118,114,116,117,120,112,119,112,113,119,114,115,116,121,111,120,111,112,120,128,276,127,101,100,114,122,110,121,110,111,121,241,110,122,102,101,113,113,101,114,15,16,187,14,15,187,17,185,186,16,17,186,187,16,186,14,187,188,189,14,188,18,184,185,17,18,185,190,12,189,12,13,189,13,14,189,19,182,183,184,18,183,18,19,183,20,181,182,19,20,182,191,12,190,181,21,180,22,179,180,21,22,180,112,102,113,103,102,112,20,21,181,192,11,191,11,12,191,123,241,122,22,178,179,22,177,178,193,10,192,23,24,177,22,23,177,139,260,138,133,137,138,24,175,176,177,24,176,10,11,192,25,174,175,24,25,175,134,136,137,133,134,137,260,133,138,130,129,135,25,173,174,124,240,123,240,241,123,134,135,136,25,26,173,173,26,172,26,171,172,240,109,241,27,170,171,26,27,171,194,8,193,8,9,193,9,10,193,140,261,139,261,260,139,104,103,112,170,27,169,27,28,169,28,168,169,111,104,112,28,167,168,105,104,111,262,261,140,125,240,124,29,166,167,195,8,194,141,263,140,28,29,167,30,165,166,29,30,166,263,262,140,30,164,165,129,275,128,134,130,135,32,162,163,31,163,164,30,31,164,110,106,111,106,105,111,31,32,163,240,108,109,108,106,110,260,132,133,7,8,195,131,130,134,126,239,125,239,240,125,33,161,162,32,33,162,142,264,141,264,263,141,109,108,110,133,131,134,265,264,142,196,6,195,6,7,195,34,160,161,33,34,161,109,110,241,34,35,160,160,35,159,132,131,133,36,158,159,35,36,159,127,238,126,143,266,142,266,265,142,238,239,126,261,132,260,37,157,158,36,37,158,107,106,108,107,108,240,261,131,132,144,267,143,267,266,143,37,38,157,157,38,156,38,155,156,274,129,130,271,272,131,271,131,261,276,238,127,39,154,155,38,39,155,145,267,144,262,271,261,237,238,276,5,6,196,40,153,154,39,40,154,272,130,131,146,46,145,46,267,145,272,273,130,273,274,130,239,228,240,228,107,240,41,152,153,40,41,153,197,5,196,46,252,267,263,270,262,270,271,262,4,5,197,274,275,129,275,276,128,42,151,152,41,42,152,275,237,276,147,45,146,45,46,146,148,45,147,228,227,107,91,2,92,198,4,197,44,148,149,43,149,150,43,150,151,42,43,151,274,236,275,43,44,149,44,45,148,264,270,263,229,228,239,236,237,275,227,106,107,269,270,264,238,229,239,273,235,274,235,236,274,265,269,264,46,47,252,234,235,272,237,230,238,272,235,273,230,229,238,268,269,265,227,105,106,271,234,272,266,268,265,227,226,105,270,234,271,267,268,266,236,231,237,231,230,237,248,247,234,248,234,270,199,4,198,252,268,267,226,104,105,0,4,199,252,251,268,235,232,236,249,248,270,249,270,269,268,250,269,250,249,269,247,209,234,251,250,268,232,231,236,225,103,104,226,225,104,234,233,235,225,102,103,216,227,228,224,101,102,225,224,102,233,232,235,230,213,229,215,216,228,212,230,231,214,228,229,213,214,229,222,99,100,211,231,232,210,211,232,223,100,101,224,223,101,209,233,234,219,224,225,214,215,228,212,213,230,209,210,233,223,222,100,233,210,232,211,212,231,87,88,96,87,96,97,218,225,226,217,226,227,224,220,223,216,217,227,222,98,99,98,87,97,86,98,222,221,222,223,218,219,225,217,218,226,86,87,98,219,220,224,220,221,223,221,86,222,88,89,96,90,94,95,89,90,95,96,89,95,91,93,94,90,91,94,91,92,93,247,246,209,219,84,220,85,221,220,90,2,91,218,83,219,89,2,90,2,89,88,87,2,88,85,86,221,73,2,87,216,81,217,217,82,218,86,73,87,210,207,211,84,85,220,85,73,86,83,84,219,0,5,4,209,208,210,201,216,215,213,204,214,204,203,214,202,215,214,203,202,214,81,82,217,82,83,218,74,73,85,201,80,216,206,212,211,212,205,213,202,201,215,80,81,216,205,204,213,207,206,211,246,245,209,84,74,85,206,205,212,208,207,210,245,208,209,47,48,252,83,75,84,75,74,84,245,244,208,244,207,208,244,243,207,82,76,83,76,75,83,251,254,250,243,206,207,250,255,249,255,248,249,255,256,248,253,254,251,252,253,251,254,255,250,243,242,206,257,247,248,256,257,248,48,253,252,81,77,82,77,76,82,242,205,206,258,246,247,257,258,247,201,200,80,48,254,253,57,58,245,242,61,205,61,62,205,62,204,205,57,245,246,258,57,246,58,59,244,48,49,254,64,203,204,62,63,204,80,79,81,79,77,81,0,6,5,58,244,245,49,255,254,63,64,204,72,2,73,60,242,243,59,243,244,78,77,79,200,79,80,59,60,243,65,202,203,49,256,255,64,65,203,60,61,242,50,257,256,49,50,256,0,7,6,44,46,45,258,259,57,42,44,43,42,47,44,47,46,44,49,48,42,48,47,42,66,201,202,40,50,42,50,49,42,65,66,202,41,40,42,51,50,40,58,54,59,59,54,60,54,53,60,60,53,61,53,62,61,50,258,257,56,55,57,67,200,201,66,67,201,39,51,40,57,55,58,55,54,58,38,51,39,64,63,62,53,64,62,37,51,38,200,78,79,259,56,57,51,259,258,50,51,258,53,52,65,53,65,64,67,78,200,259,55,56,51,55,259,0,8,7,35,34,37,34,2,37,2,51,37,35,37,36,52,66,65,51,52,55,0,9,8,67,68,78,33,2,34,31,2,33,68,77,78,52,54,55,52,53,54,32,31,33,52,67,66,30,2,31,68,76,77,27,2,29,29,2,30,68,67,52,26,2,27,69,75,76,68,69,76,28,27,29,0,10,9,70,69,52,69,68,52,23,2,26,0,2,23,2,52,51,70,74,75,25,23,26,0,11,10,0,12,11,69,70,75,23,25,24,71,70,52,2,71,52,21,23,22,0,13,12,20,0,23,20,23,21,0,20,19,18,0,19,17,0,18,0,15,14,13,0,14,0,17,16,0,16,15,71,73,74,70,71,74,71,72,73,71,2,72],\"weights\":[1,6,1,1,6,1,4,35,0.385272,33,0.288672,32,0.167392,28,0.158665,4,34,0.386729,33,0.266751,31,0.176591,28,0.169929,1,6,1,1,6,1,2,6,0.871991,7,0.128009,2,6,0.878486,7,0.121514,2,6,0.86706,7,0.13294,2,6,0.802664,7,0.197336,2,6,0.699492,7,0.300508,2,6,0.602051,7,0.397949,3,6,0.492263,7,0.4471,10,0.060637,3,6,0.452205,7,0.46891,10,0.078885,3,6,0.395702,7,0.492506,10,0.111792,3,6,0.307616,7,0.524746,10,0.167638,3,6,0.218907,7,0.535065,10,0.246028,4,6,0.147396,7,0.480677,10,0.303359,14,0.068568,4,6,0.100306,7,0.439922,10,0.378217,14,0.081554,4,6,0.068403,10,0.41766,7,0.407004,14,0.106933,3,10,0.45534,7,0.38933,14,0.155329,3,10,0.478228,7,0.273062,14,0.24871,4,10,0.431688,14,0.347643,7,0.15023,20,0.070438,4,10,0.406055,14,0.400734,20,0.097835,7,0.095376,4,14,0.434488,10,0.332521,20,0.163245,7,0.069746,4,14,0.452996,20,0.253258,10,0.238128,7,0.055619,4,14,0.41771,20,0.37578,10,0.134455,21,0.072055,4,20,0.428823,14,0.38909,21,0.097108,10,0.084979,4,20,0.470596,14,0.305045,21,0.163818,10,0.060541,3,20,0.510055,21,0.26046,14,0.229485,4,20,0.452115,21,0.358347,14,0.131589,22,0.057948,4,21,0.43863,20,0.410728,14,0.079895,22,0.070748,4,21,0.47053,20,0.370856,22,0.100099,14,0.058514,4,21,0.519644,20,0.268909,22,0.164844,14,0.046603,4,21,0.529379,22,0.248939,20,0.17753,23,0.044152,4,21,0.481828,22,0.36674,20,0.100464,23,0.050968,4,22,0.451335,21,0.429302,20,0.05969,23,0.059673,4,22,0.49755,21,0.361811,23,0.094294,20,0.046346,4,22,0.561098,21,0.21697,23,0.176888,24,0.045044,4,22,0.541499,23,0.274459,21,0.127891,24,0.056151,4,22,0.453718,23,0.41412,24,0.070923,21,0.061239,4,23,0.473952,22,0.380224,24,0.105366,21,0.040458,4,23,0.527632,22,0.219153,24,0.206357,26,0.046858,4,23,0.490263,24,0.343592,22,0.108825,26,0.057321,4,24,0.462126,23,0.403697,26,0.077111,22,0.057066,4,24,0.48379,23,0.273452,26,0.167787,27,0.074971,4,26,0.38749,24,0.374074,23,0.1314,25,0.107035,4,26,0.668881,24,0.186823,25,0.091446,27,0.05285,4,26,0.828129,24,0.073698,25,0.061313,30,0.036861,4,26,0.897975,30,0.035795,25,0.033564,24,0.032666,4,26,0.943268,30,0.028281,25,0.016037,24,0.012413,4,26,0.964745,30,0.020297,25,0.0092,24,0.005757,4,26,0.766457,30,0.140696,25,0.052146,32,0.040702,4,26,0.645994,30,0.223499,25,0.071816,32,0.05869,4,26,0.638422,30,0.240384,25,0.071175,32,0.050019,4,26,0.783856,30,0.145585,25,0.045694,32,0.024864,4,26,0.836459,30,0.112246,25,0.035415,29,0.01588,4,26,0.713327,30,0.204819,25,0.057379,29,0.024475,4,26,0.457534,30,0.416763,25,0.088834,29,0.036868,4,30,0.672904,26,0.190361,25,0.09012,32,0.046615,4,30,0.807028,26,0.078261,25,0.06606,32,0.048651,4,30,0.873691,32,0.055082,25,0.040737,26,0.030491,4,30,0.872161,32,0.088481,25,0.023874,28,0.015484,4,30,0.867526,32,0.103116,25,0.017088,28,0.01227,4,32,0.574154,30,0.391282,25,0.018414,28,0.016151,4,32,0.861393,30,0.100288,35,0.020153,25,0.018166,4,32,0.907911,35,0.042079,30,0.035069,28,0.014941,4,32,0.841319,35,0.133299,30,0.014336,28,0.011046,4,35,0.774514,32,0.21214,28,0.007152,30,0.006194,4,35,0.948711,32,0.0396,28,0.006043,33,0.005646,4,35,0.980166,32,0.011624,28,0.004115,33,0.004096,4,35,0.97174,32,0.015457,33,0.006442,28,0.006361,4,35,0.943295,32,0.02782,33,0.014793,28,0.014092,4,35,0.944834,32,0.026005,33,0.014989,28,0.014171,4,35,0.965231,32,0.017296,33,0.008849,28,0.008625,4,35,0.944617,32,0.033902,28,0.010903,33,0.010578,4,35,0.895881,32,0.081354,28,0.012035,33,0.01073,4,35,0.754366,32,0.220964,28,0.013814,33,0.010855,4,32,0.553771,35,0.421826,28,0.014491,33,0.009912,4,32,0.591777,35,0.328612,28,0.050645,33,0.028965,4,32,0.48045,35,0.317998,28,0.136186,33,0.065366,4,32,0.325426,35,0.276436,28,0.27521,33,0.122927,4,28,0.457459,33,0.227368,35,0.158535,32,0.156638,4,28,0.513792,33,0.355522,35,0.068768,32,0.061918,4,33,0.656815,28,0.285555,35,0.032516,32,0.025114,4,33,0.909069,28,0.066714,35,0.014278,32,0.009938,4,33,0.980369,28,0.012412,35,0.004172,34,0.003047,4,33,0.991501,28,0.004629,35,0.002182,34,0.001689,4,33,0.997731,28,0.001057,35,0.000663,34,0.000549,4,33,0.993547,28,0.002882,35,0.00195,34,0.001621,4,33,0.971853,28,0.012166,35,0.008606,34,0.007375,4,33,0.94829,28,0.021904,35,0.015846,34,0.013959,4,33,0.936072,28,0.026896,35,0.01907,34,0.017963,4,33,0.94027,28,0.025302,34,0.017335,35,0.017093,4,33,0.961483,28,0.016671,34,0.011178,35,0.010668,4,33,0.979197,28,0.009272,34,0.005965,35,0.005566,4,33,0.981709,28,0.008526,34,0.005105,35,0.004661,4,33,0.962162,28,0.020636,34,0.009472,35,0.00773,4,33,0.946332,28,0.033112,34,0.011649,35,0.008907,4,33,0.896462,28,0.069725,34,0.02035,35,0.013463,4,33,0.801511,28,0.147122,34,0.031843,31,0.019523,4,33,0.666745,28,0.264082,34,0.041794,31,0.02738,4,33,0.519807,28,0.388866,34,0.053487,31,0.03784,4,28,0.456925,33,0.385739,34,0.08753,31,0.069806,4,28,0.436021,33,0.279204,34,0.152103,31,0.132672,4,28,0.351279,34,0.235205,31,0.224807,33,0.188708,4,31,0.34449,34,0.31159,28,0.23141,33,0.11251,4,31,0.452723,34,0.343436,28,0.136974,33,0.066867,4,31,0.513152,34,0.374442,28,0.072924,33,0.039482,4,31,0.495317,34,0.4552,28,0.030467,29,0.019016,4,34,0.759141,31,0.217126,28,0.013948,33,0.009785,4,34,0.920625,31,0.059253,28,0.010808,33,0.009315,4,34,0.959787,31,0.024335,28,0.008063,33,0.007815,4,34,0.975953,31,0.01138,33,0.006434,28,0.006233,4,34,0.921859,31,0.033419,33,0.023031,28,0.02169,4,34,0.900346,31,0.04276,33,0.029382,28,0.027512,4,34,0.906907,31,0.041862,33,0.026318,28,0.024913,4,34,0.921178,31,0.03756,33,0.021051,28,0.02021,4,34,0.945093,31,0.028217,33,0.013519,28,0.01317,4,34,0.962295,31,0.021696,33,0.008034,28,0.007974,4,34,0.95008,31,0.033556,28,0.00834,33,0.008024,4,34,0.902617,31,0.079246,28,0.009724,29,0.008413,4,34,0.570983,31,0.400537,29,0.015535,28,0.012945,4,31,0.73493,34,0.222078,29,0.026022,28,0.016971,4,31,0.827294,34,0.100156,29,0.050226,28,0.022324,4,31,0.817054,29,0.106861,34,0.049948,28,0.026137,4,31,0.684309,29,0.270049,25,0.023076,28,0.022566,4,29,0.796618,31,0.17557,25,0.015312,28,0.012499,4,29,0.867442,31,0.074811,25,0.031287,27,0.026461,4,29,0.782718,27,0.09177,31,0.064271,25,0.061241,4,29,0.567676,27,0.294824,25,0.084693,31,0.052807,4,27,0.662791,29,0.247806,25,0.059381,31,0.030022,4,27,0.905789,29,0.063787,25,0.019961,30,0.010464,4,27,0.88033,29,0.078939,25,0.025005,31,0.015725,4,27,0.773559,29,0.146816,25,0.044772,31,0.034852,4,27,0.687931,29,0.198193,25,0.059367,31,0.054509,4,27,0.735799,29,0.158462,25,0.05384,31,0.051899,4,27,0.801637,29,0.116117,25,0.043184,31,0.039062,4,27,0.907817,29,0.053139,25,0.022448,31,0.016596,4,27,0.937145,29,0.034442,25,0.016973,24,0.01144,4,27,0.92323,29,0.036533,25,0.022883,24,0.017354,4,27,0.898749,29,0.03667,25,0.034569,24,0.030012,4,27,0.871965,25,0.048173,24,0.046275,29,0.033588,4,27,0.843449,24,0.065509,25,0.059196,29,0.031846,4,27,0.811258,24,0.089351,25,0.063477,26,0.035913,4,27,0.679405,24,0.164886,25,0.087725,23,0.067985,4,27,0.458813,24,0.285092,23,0.152812,25,0.103282,4,24,0.35199,27,0.297365,23,0.25624,25,0.094405,4,23,0.383456,24,0.376003,27,0.168166,26,0.072375,4,23,0.438833,24,0.367088,27,0.109226,22,0.084852,4,23,0.491236,24,0.293806,22,0.137759,27,0.077198,4,23,0.506701,22,0.224144,24,0.208109,27,0.061045,4,23,0.475364,22,0.342683,24,0.135745,27,0.046209,4,23,0.429536,22,0.427031,24,0.086412,21,0.057021,4,22,0.468691,23,0.369988,21,0.091234,24,0.070087,4,22,0.508373,23,0.275058,21,0.155533,24,0.061036,4,22,0.506877,21,0.246142,23,0.195045,24,0.051936,4,22,0.46714,21,0.355796,23,0.123257,20,0.053807,4,21,0.425188,22,0.422626,23,0.086351,20,0.065834,4,21,0.453382,22,0.384743,20,0.095143,23,0.066733,4,21,0.486795,22,0.31332,20,0.142858,23,0.057027,4,21,0.501896,22,0.232734,20,0.216547,23,0.048823,4,21,0.46271,20,0.342204,22,0.137996,14,0.057091,4,20,0.425997,21,0.415851,22,0.088089,14,0.070063,4,20,0.445271,21,0.394685,14,0.091825,22,0.068218,4,20,0.463465,21,0.347494,14,0.129146,22,0.059896,4,20,0.484297,21,0.285341,14,0.177937,22,0.052425,4,20,0.484946,14,0.26201,21,0.20254,10,0.050505,4,20,0.451251,14,0.345298,21,0.143065,10,0.060386,4,20,0.426238,14,0.394611,21,0.111976,10,0.067176,4,14,0.426164,20,0.406496,21,0.090498,10,0.076841,4,14,0.438544,20,0.392945,10,0.093434,21,0.075078,4,14,0.45032,20,0.362624,10,0.120113,21,0.066943,4,14,0.475611,20,0.289017,10,0.178932,21,0.05644,4,14,0.47652,20,0.236682,10,0.231786,7,0.055011,4,14,0.460222,10,0.292647,20,0.181884,7,0.065246,4,14,0.433687,10,0.354227,20,0.13435,7,0.077736,4,14,0.412858,10,0.395303,20,0.098026,7,0.093812,4,10,0.404361,14,0.392907,7,0.12016,20,0.082572,4,10,0.419597,14,0.354381,7,0.154023,20,0.071999,4,10,0.438913,14,0.276065,7,0.225126,20,0.059895,3,10,0.460084,7,0.343638,14,0.196278,4,6,0.055678,10,0.417403,7,0.393767,14,0.133152,4,6,0.068569,7,0.422116,10,0.409813,14,0.099502,4,6,0.094538,7,0.446149,10,0.378699,14,0.080614,4,6,0.124829,7,0.468551,10,0.333402,14,0.073218,3,6,0.211311,7,0.530826,10,0.257863,3,6,0.300881,7,0.519811,10,0.179308,3,6,0.410077,7,0.476516,10,0.113408,3,6,0.463507,7,0.455882,10,0.080611,3,6,0.486594,7,0.446332,10,0.067074,2,6,0.556187,7,0.443813,2,6,0.637757,7,0.362243,2,6,0.744158,7,0.255842,2,6,0.807667,7,0.192333,2,6,0.852683,7,0.147317,2,6,0.854456,7,0.145544,1,6,1,1,6,1,1,6,1,4,32,0.844714,35,0.120054,28,0.019521,30,0.015711,4,32,0.891361,35,0.048834,30,0.032772,28,0.027032,4,32,0.854391,30,0.079845,28,0.033164,25,0.032599,4,32,0.652727,30,0.264774,25,0.043407,28,0.039092,4,30,0.757121,32,0.15529,25,0.053068,28,0.034522,4,30,0.825373,25,0.076302,32,0.067524,28,0.030801,4,30,0.824837,25,0.110742,32,0.039023,28,0.025399,4,30,0.765616,25,0.178816,29,0.028438,32,0.027129,4,30,0.651754,25,0.280244,29,0.038801,26,0.029201,4,25,0.55658,30,0.367822,29,0.050134,26,0.025464,4,25,0.74911,30,0.18839,29,0.043552,26,0.018948,4,25,0.805937,30,0.128891,29,0.036181,28,0.02899,4,25,0.825477,30,0.094171,28,0.04803,32,0.032323,4,25,0.791873,28,0.098802,30,0.068148,32,0.041177,4,25,0.569973,28,0.376725,32,0.0268,30,0.026502,4,28,0.801401,25,0.141192,32,0.032806,30,0.024602,4,28,0.901438,25,0.044761,32,0.028854,33,0.024947,4,28,0.93065,33,0.041615,32,0.014458,35,0.013276,4,28,0.859663,33,0.119795,35,0.010344,32,0.010197,4,33,0.652285,28,0.337625,35,0.005299,32,0.004791,4,33,0.937524,28,0.052064,35,0.005846,32,0.004566,4,33,0.972131,28,0.020595,35,0.004197,34,0.003078,4,33,0.936168,28,0.045447,34,0.010494,35,0.007891,4,33,0.880301,28,0.096719,34,0.013496,35,0.009484,4,33,0.727788,28,0.245829,34,0.014966,31,0.011416,4,28,0.684506,33,0.275774,34,0.020644,31,0.019076,4,28,0.838673,33,0.103569,31,0.029647,34,0.028111,4,28,0.852142,33,0.053166,25,0.050349,31,0.044343,4,28,0.68857,25,0.213876,31,0.059404,29,0.038151,4,25,0.443962,28,0.425854,31,0.072313,29,0.057871,4,25,0.618415,29,0.156234,28,0.127467,31,0.097884,4,25,0.6605,29,0.224943,30,0.057968,31,0.056589,4,25,0.52996,29,0.374918,30,0.062567,27,0.032555,4,29,0.465832,25,0.441809,30,0.059754,27,0.032606,4,29,0.598547,25,0.319092,30,0.051144,27,0.031217,4,29,0.781092,25,0.159094,30,0.031872,27,0.027942,4,29,0.868638,25,0.083226,31,0.027908,27,0.020227,4,29,0.84581,31,0.069528,25,0.059681,28,0.024981,4,29,0.591445,31,0.336674,25,0.040315,28,0.031566,4,31,0.881404,29,0.080355,28,0.019415,25,0.018826,4,31,0.925403,34,0.034923,29,0.022901,28,0.016773,4,34,0.603089,31,0.374709,28,0.012682,29,0.00952,4,30,0.930305,32,0.026816,25,0.025954,26,0.016924,4,30,0.921482,25,0.033689,26,0.027614,32,0.017215,4,30,0.909265,25,0.040026,26,0.037854,29,0.012855,4,30,0.8886,25,0.048298,26,0.048187,29,0.014915,4,30,0.865553,25,0.061356,26,0.055996,29,0.017095,4,30,0.628624,25,0.181925,26,0.145386,24,0.044065,4,25,0.336112,30,0.300636,26,0.255558,24,0.107694,4,25,0.375326,26,0.297175,24,0.163761,30,0.163738,4,25,0.346104,26,0.338306,24,0.216664,30,0.098926,4,26,0.412612,25,0.271333,24,0.25901,30,0.057046,4,26,0.623681,24,0.190639,25,0.1505,30,0.03518,4,26,0.703945,24,0.134814,25,0.123924,30,0.037317,4,26,0.796382,25,0.084691,24,0.078242,30,0.040685,4,26,0.861053,25,0.053579,24,0.043447,30,0.041921,4,26,0.869296,30,0.057349,25,0.043567,24,0.029788,4,26,0.868745,30,0.075175,25,0.035433,24,0.020647,4,26,0.878377,30,0.077829,25,0.028765,24,0.015028,4,26,0.90781,30,0.061053,25,0.020995,24,0.010143,4,27,0.968538,29,0.020568,25,0.007118,30,0.003776,4,27,0.960421,29,0.024527,25,0.00977,24,0.005282,4,27,0.939635,29,0.033595,25,0.016978,24,0.009791,4,27,0.928736,29,0.029878,25,0.024957,24,0.01643,4,27,0.908525,25,0.036801,29,0.027604,24,0.027069,4,27,0.850702,25,0.066424,24,0.054406,29,0.028468,4,27,0.792768,25,0.094216,24,0.083104,29,0.029913,4,27,0.677653,25,0.148024,24,0.138327,29,0.035996,4,27,0.537148,25,0.226249,24,0.185878,29,0.050726,4,27,0.460671,25,0.275156,24,0.153095,29,0.111077,4,27,0.39592,25,0.283063,29,0.20523,24,0.115787,4,29,0.556813,27,0.237287,25,0.151836,30,0.054064,4,29,0.794826,27,0.110632,25,0.068006,30,0.026536,4,29,0.872175,27,0.063226,25,0.046542,31,0.018057,4,29,0.907094,27,0.035473,25,0.033316,31,0.024117,4,29,0.911163,31,0.039345,25,0.026625,27,0.022867,4,29,0.91095,31,0.058146,25,0.018336,27,0.012568],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[6,0.022198,0.999754,-0.999754,0.022198,-1.8,-399.55,7,0.016839,0.999858,-0.999858,0.016839,0,-276.7,10,-0.007398,0.999973,-0.999973,-0.007398,1.75,-115.8,14,0.022712,0.999742,-0.999742,0.022712,1.8,6.25,20,0,1,-1,0,1.8,130,21,-0.007484,0.999972,-0.999972,-0.007484,-0.85,255.55,22,0.023612,0.999721,-0.999721,0.023612,-3.55,384.65,23,0,1,-1,0,-1,506.7,24,0.010293,0.999947,-0.999947,0.010293,-4,600.8,25,0,1,-1,0,-1,710.95,28,-0.017914,0.99984,-0.99984,-0.017914,0,845.4,33,-0.009453,0.999955,-0.999955,-0.009453,-0.65,928.85,30,-0.3021,0.953276,-0.953276,-0.3021,-22.2,757.2,32,-0.289493,0.95718,-0.95718,-0.289493,-47.1,836.65,35,-0.310828,0.950466,-0.950466,-0.310828,-65.3,895.2,29,0.342204,0.939626,-0.939626,0.342204,24.25,763.25,31,0.307733,0.951473,-0.951473,0.307733,45.75,832.6,34,0.284807,0.958585,-0.958585,0.284807,65.95,889.15,26,-0.383319,0.923616,-0.923616,-0.383319,-33.7,686.55,27,0.338142,0.941095,-0.941095,0.338142,35,680.5],\"edges\":[0,1,1,3,2,0,3,92,92,2],\"userEdges\":[]}]},{\"name\":\"蛟右爪\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/蛟右爪\",\"width\":131,\"height\":208,\"vertices\":[45.73,-91.78,176.73,-91.78,45.73,116.22,176.73,116.22,113.4,114.75,110.4,114.65,108.15,110.45,105.55,105.7,102.4,98.6,98.35,89.2,95.15,80.4,92.75,74.15,89.5,64,86.95,54.2,84.9,47,83.9,41.35,81.65,31.45,78.45,21.5,77.4,11.55,75.8,1.85,74.45,-6.5,73.3,-16.7,72.85,-26,67,-32.8,61.1,-35.5,54.5,-37.05,48.8,-46.9,65.65,-91.78,72.7,-89.8,81.6,-84.7,87.6,-77.45,94.7,-66.75,103.45,-54.95,113.5,-39.65,121.95,-31.8,133.05,-20.4,142.85,-11.6,153.1,-2.75,159.9,2.8,165.85,7.85,170.25,10.25,172.1,14.05,167.8,15.55,160.9,12.55,154.3,7.9,147.3,1.85,143,-0.4,135.95,0.05,131.4,3.2,130.8,9.6,130.9,14.95,132.7,23.6,135.05,30.2,138.2,37.95,142.4,46.7,146.55,54.35,152.5,65.45,157.3,71.55,161.15,75.8,165.65,80.9,169.75,86.45,173.9,90.1,176.73,94.85,173.15,95.1,169.1,92.75,163.9,88.15,158.05,81.6,152.45,76.65,146.8,70.4,140.75,64.8,134.05,58.55,127.3,54.9,118.55,53.85,112.9,58,107.35,65.25,106.7,73.3,105.85,81.25,106.3,90.5,108.8,98.65,111.9,106.95,114.6,112.65],\"uvs\":[0,0,1,0,0,1,1,1,0.51653,0.99295,0.49363,0.99247,0.47646,0.97228,0.45661,0.94944,0.43256,0.91531,0.40165,0.87012,0.37722,0.82781,0.3589,0.79776,0.33409,0.74896,0.31463,0.70185,0.29898,0.66723,0.29134,0.64007,0.27417,0.59247,0.24974,0.54464,0.24172,0.4968,0.22951,0.45017,0.21921,0.41002,0.21043,0.36098,0.20699,0.31627,0.16234,0.28358,0.1173,0.2706,0.06692,0.26315,0.0234,0.21579,0.15203,0,0.20585,0.00954,0.27379,0.03406,0.31959,0.06892,0.37379,0.12036,0.44058,0.17709,0.5173,0.25065,0.5818,0.28839,0.66653,0.34319,0.74134,0.3855,0.81959,0.42805,0.8715,0.45473,0.91692,0.47901,0.9505,0.49055,0.96463,0.50882,0.9318,0.51603,0.87913,0.50161,0.82875,0.47925,0.77531,0.45017,0.74249,0.43935,0.68867,0.44151,0.65394,0.45666,0.64936,0.48743,0.65012,0.51315,0.66386,0.55473,0.6818,0.58646,0.70585,0.62372,0.73791,0.66579,0.76959,0.70257,0.81501,0.75594,0.85165,0.78526,0.88104,0.80569,0.91539,0.83021,0.94669,0.8569,0.97837,0.87444,1,0.89728,0.97264,0.89848,0.94172,0.88719,0.90203,0.86507,0.85737,0.83358,0.81463,0.80978,0.7715,0.77973,0.72531,0.75281,0.67417,0.72276,0.62264,0.70521,0.55585,0.70017,0.51272,0.72012,0.47035,0.75497,0.46539,0.79368,0.4589,0.8319,0.46234,0.87637,0.48142,0.91555,0.50508,0.95545,0.52569,0.98286],\"triangles\":[5,2,4,53,54,42,54,55,42,55,56,42,38,39,40,42,56,41,56,57,41,57,58,41,58,59,41,41,59,61,59,60,61,41,61,62,61,63,62,27,28,1,28,29,1,31,32,1,30,31,1,33,34,1,32,33,1,35,36,1,34,35,1,36,37,1,38,40,1,37,38,1,29,30,1,40,41,1,41,62,1,4,2,3,64,65,3,65,80,3,63,64,3,80,4,3,62,63,3,43,53,42,60,64,61,61,64,63,40,42,41,60,65,64,39,42,40,59,65,60,52,53,43,66,80,65,39,43,42,38,43,39,66,65,59,58,66,59,67,80,66,44,52,43,38,44,43,79,80,67,51,52,44,67,66,58,57,67,58,37,44,38,78,79,67,37,45,44,50,51,44,56,68,57,68,67,57,68,78,67,45,50,44,49,50,45,77,78,68,46,45,37,36,46,37,69,68,56,55,69,56,47,49,46,46,49,45,70,69,55,69,76,68,76,77,68,54,70,55,48,49,47,70,75,69,75,76,69,71,70,54,47,46,36,35,47,36,53,71,54,71,73,70,73,75,70,35,48,47,52,72,53,72,71,53,74,75,73,51,72,52,34,48,35,34,20,48,20,19,48,50,16,51,16,72,51,16,15,72,72,73,71,19,18,48,48,18,49,17,16,50,49,18,50,18,17,50,21,20,34,15,14,73,15,73,72,33,21,34,22,21,33,14,13,73,79,6,80,5,4,80,6,5,80,6,2,5,78,7,79,32,22,33,13,74,73,7,6,79,13,12,74,7,2,6,8,7,78,77,8,78,9,77,76,10,76,75,11,75,74,12,11,74,23,22,32,9,8,77,8,2,7,11,10,75,10,9,76,31,23,32,9,2,8,10,2,9,30,26,31,26,24,31,24,23,31,11,2,10,12,2,11,28,26,29,29,26,30,13,2,12,14,2,13,27,26,28,15,2,14,17,2,16,16,2,15,0,26,27,18,25,17,25,2,17,19,25,18,20,25,19,21,25,20,23,24,21,24,25,21,23,21,22,26,2,25,26,25,24,0,2,26],\"weights\":[3,19,0.213473,17,0.743396,15,0.043131,3,19,0.256127,17,0.549531,15,0.194341,3,19,0.679004,15,0.214025,17,0.106971,3,19,0.183697,15,0.736309,17,0.079995,3,19,0.833288,15,0.134636,17,0.032076,3,19,0.855203,15,0.115581,17,0.029215,3,19,0.901198,15,0.078574,17,0.020229,3,19,0.946404,15,0.042445,17,0.011151,3,19,0.989026,15,0.008668,17,0.002306,3,19,0.992402,15,0.005993,17,0.001604,3,19,0.98669,15,0.010538,17,0.002772,3,19,0.980419,15,0.015565,17,0.004016,3,19,0.970996,15,0.023357,17,0.005646,3,19,0.964224,15,0.029194,17,0.006583,3,19,0.958749,15,0.033522,17,0.00773,3,19,0.961235,15,0.031192,17,0.007572,3,19,0.964115,15,0.027546,17,0.008339,3,19,0.961308,15,0.026967,17,0.011725,3,19,0.975171,15,0.015133,17,0.009696,3,19,0.981657,15,0.009229,17,0.009114,3,19,0.985814,17,0.008416,15,0.00577,3,19,0.991809,17,0.005782,15,0.00241,3,19,0.997682,17,0.001847,15,0.000472,3,19,0.969566,17,0.025354,15,0.005079,3,19,0.898021,17,0.085101,15,0.016878,3,19,0.814462,17,0.153365,15,0.032174,3,19,0.651533,17,0.303137,15,0.04533,3,19,0.088887,17,0.893943,15,0.01717,3,19,0.051906,17,0.938222,15,0.009872,3,19,0.02373,17,0.971923,15,0.004347,3,19,0.0221,17,0.974162,15,0.003737,3,19,0.014512,17,0.983234,15,0.002253,3,19,0.006996,17,0.991767,15,0.001237,2,19,0.000002,17,0.999998,3,19,0.000199,17,0.999697,15,0.000104,3,19,0.000243,17,0.999515,15,0.000242,3,19,0.000919,17,0.997647,15,0.001434,3,19,0.002088,17,0.993472,15,0.00444,3,19,0.006586,17,0.977908,15,0.015506,3,19,0.024773,17,0.912924,15,0.062302,3,19,0.040227,17,0.856574,15,0.103199,3,19,0.052268,17,0.805202,15,0.14253,3,19,0.04633,17,0.819167,15,0.134503,3,19,0.024652,17,0.904378,15,0.070969,3,19,0.005882,17,0.978055,15,0.016063,3,19,0.00409,17,0.986063,15,0.009847,3,19,0.008634,17,0.972248,15,0.019117,3,19,0.038106,17,0.881874,15,0.080019,3,19,0.085338,17,0.72415,15,0.190512,3,19,0.113828,17,0.52952,15,0.356652,3,19,0.114625,15,0.514377,17,0.370998,3,19,0.085371,15,0.720844,17,0.193785,3,19,0.065641,15,0.812145,17,0.122214,3,19,0.043676,15,0.892471,17,0.063853,3,19,0.024845,15,0.94675,17,0.028405,3,19,0.014055,15,0.972603,17,0.013342,3,19,0.004163,15,0.992758,17,0.003079,3,19,0.003162,15,0.994661,17,0.002176,3,19,0.003243,15,0.9946,17,0.002157,3,19,0.004787,15,0.992163,17,0.00305,3,19,0.021607,15,0.96531,17,0.013084,3,19,0.044608,15,0.928062,17,0.02733,3,19,0.070458,15,0.887948,17,0.041594,3,19,0.062264,15,0.904094,17,0.033642,3,19,0.04227,15,0.936103,17,0.021627,3,19,0.014564,15,0.978266,17,0.00717,3,19,0.002312,15,0.996544,17,0.001144,3,19,0.005321,15,0.992119,17,0.00256,3,19,0.00721,15,0.989308,17,0.003482,3,19,0.013633,15,0.980177,17,0.006189,3,19,0.025397,15,0.964293,17,0.010309,3,19,0.070355,15,0.908533,17,0.021111,3,19,0.270548,15,0.68962,17,0.039832,3,19,0.591113,15,0.371181,17,0.037706,3,19,0.886315,15,0.098286,17,0.015399,3,19,0.949528,15,0.042584,17,0.007888,3,19,0.983156,15,0.013906,17,0.002938,3,19,0.994262,15,0.004664,17,0.001075,3,19,0.975694,15,0.019697,17,0.00461,3,19,0.905599,15,0.076552,17,0.017849,3,19,0.839314,15,0.130739,17,0.029947],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[19,0.236421,0.971651,-0.971651,0.236421,73.15,-31.85,15,0.645479,0.763778,-0.763778,0.645479,121.25,33.9,17,0.688726,0.725022,-0.725022,0.688726,77.9,-77.2],\"edges\":[3,2,2,0,0,27,27,1,1,62,62,3],\"userEdges\":[]}]},{\"name\":\"蛟左翅\",\"display\":[{\"type\":\"mesh\",\"name\":\"动画拆/蛟左翅\",\"width\":127,\"height\":204,\"vertices\":[-175.14,-92.24,-48.14,-92.24,-175.14,111.76,-48.14,111.76,-73.25,-90.1,-67.75,-91.3,-62.55,-92.24,-48.14,-87.45,-48.14,-74.1,-53.6,-62.35,-62.95,-54.15,-66.95,-48.1,-68,-42.2,-68.6,-31.3,-69.95,-21.3,-71.3,-8.75,-72.7,-1.45,-74.1,7.95,-76,16.55,-77.8,25.8,-79.3,33.6,-81.35,39.9,-83.75,50,-86.55,60,-89.2,70.65,-92.75,79.2,-95.5,86.45,-98.25,92,-101,98.5,-103.9,104.55,-106,108.55,-109.55,110.6,-110.65,107.75,-108.3,103.25,-104.9,96.8,-102.55,89.85,-101.3,84.8,-101.3,73.75,-103.35,64,-106.35,55.9,-113.25,50.7,-119.75,50.1,-125.95,51.55,-131.4,54.55,-135.5,57.75,-142.6,65.3,-149.1,72.2,-154.85,78.05,-159.45,82.55,-164.25,86.7,-168.5,89.5,-171.7,90.15,-172.8,87.5,-168.2,84.05,-163.3,78.8,-159.3,72.95,-154.45,67.3,-150.7,62.6,-144.3,53.3,-141.3,46.15,-135.6,35.1,-130.35,23.95,-127.3,13.4,-127.6,5.55,-128.9,-0.7,-131.25,-3.7,-136.25,-4.35,-141.55,-3.25,-146.45,-0.45,-151.1,3.3,-156.2,6.55,-163.35,9.7,-167.7,10.15,-167.2,6.95,-164.55,4.9,-159.35,0.65,-155.2,-2.7,-150.65,-5.7,-146.35,-9.55,-143.75,-13.1,-137.6,-18.5,-134.25,-22.05,-129.6,-27.05,-123.85,-32.3,-118.75,-38.85,-113.65,-43.95,-107.75,-50.5,-101.45,-57.8,-96.45,-63.5,-93.3,-68.3,-89.45,-74.05,-85.5,-80.75,-80.95,-86.8,-76.6,-89.95],\"uvs\":[0,0,1,0,0,1,1,1,0.80226,0.01048,0.84556,0.0046,0.88651,0,1,0.02347,1,0.08892,0.95698,0.14651,0.88336,0.18671,0.85186,0.21637,0.84359,0.24529,0.83887,0.29872,0.82824,0.34774,0.81761,0.40926,0.80659,0.44504,0.79556,0.49112,0.7806,0.53328,0.76643,0.57862,0.75462,0.61686,0.73848,0.64774,0.71958,0.69725,0.69753,0.74627,0.67666,0.79847,0.64871,0.84039,0.62706,0.87593,0.6054,0.90313,0.58375,0.93499,0.56092,0.96465,0.54438,0.98426,0.51643,0.99431,0.50777,0.98034,0.52627,0.95828,0.55304,0.92666,0.57155,0.89259,0.58139,0.86784,0.58139,0.81367,0.56525,0.76588,0.54163,0.72617,0.48729,0.70068,0.43611,0.69774,0.38729,0.70485,0.34438,0.71955,0.3121,0.73524,0.25619,0.77225,0.20501,0.80607,0.15974,0.83475,0.12351,0.85681,0.08572,0.87715,0.05226,0.89088,0.02706,0.89406,0.0184,0.88107,0.05462,0.86416,0.0932,0.83843,0.1247,0.80975,0.16288,0.78205,0.19241,0.75901,0.24281,0.71343,0.26643,0.67838,0.31131,0.62421,0.35265,0.56955,0.37666,0.51784,0.3743,0.47936,0.36407,0.44872,0.34556,0.43401,0.30619,0.43083,0.26446,0.43622,0.22588,0.44995,0.18926,0.46833,0.14911,0.48426,0.09281,0.4997,0.05855,0.50191,0.06249,0.48622,0.08336,0.47617,0.1243,0.45534,0.15698,0.43892,0.19281,0.42421,0.22666,0.40534,0.24714,0.38794,0.29556,0.36146,0.32194,0.34406,0.35855,0.31955,0.40383,0.29382,0.44399,0.26171,0.48414,0.23671,0.5306,0.2046,0.58021,0.16882,0.61958,0.14088,0.64438,0.11735,0.6747,0.08916,0.7058,0.05632,0.74163,0.02666,0.77588,0.01122],\"triangles\":[0,92,93,93,5,6,0,93,6,11,12,10,13,14,9,14,15,9,10,12,9,12,13,9,31,2,3,30,31,3,29,30,3,28,29,3,26,27,3,27,28,3,24,25,3,25,26,3,22,23,3,23,24,3,20,21,3,21,22,3,17,18,3,18,19,3,15,16,3,16,17,3,19,20,3,9,15,3,6,7,1,5,9,8,6,5,8,7,6,8,9,3,8,93,4,5,5,4,9,91,10,9,4,91,9,92,91,4,89,11,10,90,89,10,91,90,10,87,12,11,88,87,11,89,88,11,93,92,4,87,86,12,12,86,13,86,14,13,84,83,15,84,15,14,85,84,14,86,85,14,64,16,15,83,64,15,0,91,92,63,17,16,64,63,16,63,18,17,62,19,18,63,62,18,62,20,19,61,40,20,62,61,20,40,21,20,0,90,91,39,22,21,40,39,21,0,89,90,39,23,22,38,24,23,39,38,23,0,87,88,0,88,89,37,25,24,38,37,24,82,64,83,36,26,25,37,36,25,82,65,64,0,86,87,35,27,26,36,35,26,61,41,40,34,28,27,35,34,27,0,85,86,37,45,36,34,29,28,34,33,29,38,44,37,44,45,37,45,35,36,45,46,34,43,44,38,45,34,35,39,41,38,41,42,38,42,43,38,33,30,29,0,84,85,40,41,39,46,33,34,61,60,41,33,32,30,32,31,30,81,65,82,46,47,32,46,32,33,32,2,31,48,49,32,49,2,32,47,48,32,0,83,84,0,82,83,81,80,65,60,42,41,0,81,82,60,59,42,0,79,80,0,80,81,80,66,65,59,43,42,69,61,62,68,69,62,64,66,63,66,67,63,68,62,63,67,68,63,65,66,64,70,60,61,69,70,61,80,79,66,59,44,43,50,2,49,0,76,79,79,67,66,59,58,44,70,71,60,58,45,44,71,59,60,79,78,67,0,74,75,0,75,76,77,78,79,76,77,79,58,57,45,78,68,67,72,58,59,71,72,59,77,68,78,72,57,58,57,46,45,0,73,74,72,56,57,57,56,46,77,76,69,77,69,68,72,55,56,56,55,46,55,47,46,76,75,69,75,70,69,52,54,55,72,52,55,54,48,47,55,54,47,51,2,50,52,53,54,75,74,70,74,71,70,54,49,48,54,53,49,74,73,71,73,72,71,53,50,49,52,50,53,73,0,72,0,52,72,52,51,50,0,2,52,52,2,51],\"weights\":[3,13,0.215353,18,0.559319,16,0.225327,3,13,0.084173,18,0.698622,16,0.217205,3,13,0.82628,16,0.109181,18,0.064539,3,13,0.204643,16,0.693035,18,0.102323,3,13,0.04228,18,0.851607,16,0.106114,3,13,0.051367,18,0.818411,16,0.130222,3,13,0.060423,18,0.785603,16,0.153974,3,13,0.080764,18,0.700467,16,0.21877,3,13,0.076311,18,0.68133,16,0.242359,3,13,0.068329,18,0.665271,16,0.2664,3,13,0.057123,18,0.665476,16,0.277401,3,13,0.060018,18,0.585841,16,0.354141,3,13,0.065359,16,0.488273,18,0.446368,3,13,0.053657,16,0.754055,18,0.192288,3,13,0.022915,16,0.928689,18,0.048396,3,13,0.01174,16,0.974961,18,0.013299,3,13,0.014799,16,0.973284,18,0.011918,3,13,0.021645,16,0.966697,18,0.011658,3,13,0.025264,16,0.964925,18,0.009812,3,13,0.029326,16,0.961888,18,0.008786,3,13,0.030761,16,0.961122,18,0.008118,3,13,0.024763,16,0.969098,18,0.006139,3,13,0.019478,16,0.975546,18,0.004976,3,13,0.013056,16,0.983415,18,0.003528,3,13,0.009423,16,0.987885,18,0.002692,3,13,0.005268,16,0.99322,18,0.001512,3,13,0.030781,16,0.960401,18,0.008818,3,13,0.069825,16,0.910526,18,0.019649,3,13,0.125572,16,0.83968,18,0.034748,3,13,0.182736,16,0.767963,18,0.049302,3,13,0.221569,16,0.719936,18,0.058496,3,13,0.261279,16,0.673812,18,0.064909,3,13,0.256554,16,0.682078,18,0.061368,3,13,0.209183,16,0.739486,18,0.051331,3,13,0.138964,16,0.825733,18,0.035303,3,13,0.075771,16,0.904864,18,0.019365,3,13,0.038847,16,0.951309,18,0.009844,3,13,0.019912,16,0.975497,18,0.004592,3,13,0.074012,16,0.911621,18,0.014367,3,13,0.205572,16,0.763175,18,0.031253,3,13,0.535164,16,0.414293,18,0.050543,3,13,0.768578,16,0.187807,18,0.043615,3,13,0.893248,16,0.078666,18,0.028086,3,13,0.945952,16,0.037145,18,0.016903,3,13,0.966277,16,0.022364,18,0.011359,3,13,0.98061,16,0.012602,18,0.006788,3,13,0.98915,16,0.006964,18,0.003886,3,13,0.994536,16,0.003448,18,0.002016,3,13,0.997423,16,0.001601,18,0.000975,3,13,0.993655,16,0.003868,18,0.002477,3,13,0.976123,16,0.014251,18,0.009626,3,13,0.962311,16,0.021949,18,0.01574,3,13,0.965063,16,0.01975,18,0.015187,3,13,0.989756,16,0.005877,18,0.004367,3,13,0.99712,16,0.001656,18,0.001224,3,13,0.995738,16,0.002405,18,0.001857,3,13,0.996285,16,0.002069,18,0.001646,3,13,0.996199,16,0.002073,18,0.001728,3,13,0.992989,16,0.00359,18,0.003421,3,13,0.978811,18,0.011354,16,0.009835,3,13,0.945379,18,0.032523,16,0.022098,3,13,0.880404,18,0.076802,16,0.042794,3,13,0.743695,18,0.181676,16,0.074629,3,13,0.496897,18,0.405832,16,0.097271,3,13,0.27282,18,0.646123,16,0.081057,3,13,0.155973,18,0.790317,16,0.053709,3,13,0.071853,18,0.903095,16,0.025052,3,13,0.030776,18,0.958763,16,0.010461,3,13,0.016746,18,0.97779,16,0.005463,3,13,0.011711,18,0.984612,16,0.003677,3,13,0.023649,18,0.969048,16,0.007303,3,13,0.075669,18,0.900711,16,0.02362,3,13,0.10325,18,0.863338,16,0.033412,3,13,0.076844,18,0.896767,16,0.026389,3,13,0.04965,18,0.933008,16,0.017342,3,13,0.01156,18,0.984236,16,0.004204,3,13,0.003955,18,0.994557,16,0.001488,3,13,0.001603,18,0.997776,16,0.000621,3,13,0.001056,18,0.9985,16,0.000444,3,13,0.002129,18,0.996877,16,0.000994,3,13,0.001053,18,0.998336,16,0.000611,3,13,0.001128,18,0.998097,16,0.000774,3,13,0.001262,18,0.997616,16,0.001122,3,13,0.000671,18,0.998524,16,0.000805,3,13,0.001534,18,0.996035,16,0.00243,3,13,0.00127,18,0.996245,16,0.002485,3,13,0.001432,18,0.995202,16,0.003367,3,13,0.001767,18,0.993583,16,0.00465,3,13,0.001938,18,0.992753,16,0.005309,3,13,0.002854,18,0.989383,16,0.007763,3,13,0.005119,18,0.981239,16,0.013642,3,13,0.015352,18,0.945301,16,0.039347,3,13,0.028999,18,0.89894,16,0.072061,3,13,0.03852,18,0.866334,16,0.095146],\"slotPose\":[1,0,0,1,0,0],\"bonePose\":[13,-0.607352,0.794433,-0.794433,-0.607352,-117.2,23.05,18,-0.70369,0.710507,-0.710507,-0.70369,-87.4,-67.05,16,-0.206339,0.978481,-0.978481,-0.206339,-76.55,-13.55],\"edges\":[3,2,2,0,0,6,6,1,1,7,7,8,8,3],\"userEdges\":[]}]}]}],\"animation\":[{\"duration\":12,\"playTimes\":0,\"name\":\"newAnimation\",\"bone\":[{\"name\":\"jiao头\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-4.33},{\"duration\":4,\"tweenEasing\":0,\"rotate\":2.99},{\"duration\":0}]},{\"name\":\"jiao头6\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-6.78},{\"duration\":0}]},{\"name\":\"jiao头3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.06},{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.5},{\"duration\":0}]},{\"name\":\"蛟身\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":18.09},{\"duration\":4,\"tweenEasing\":0,\"rotate\":8.97},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-19.97},{\"duration\":0,\"rotate\":13.6}]},{\"name\":\"蛟身1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-24.11},{\"duration\":4,\"tweenEasing\":0,\"rotate\":12.28},{\"duration\":4,\"tweenEasing\":0,\"rotate\":13.5},{\"duration\":0,\"rotate\":-16.8}]},{\"name\":\"jiao头2\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.63},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-21.38},{\"duration\":0}]},{\"name\":\"jiao头5\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-7.18},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.33},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-19.87},{\"duration\":0,\"rotate\":-7.18}]},{\"name\":\"蛟左翅\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"x\":1.86,\"y\":-14.78},{\"duration\":8,\"tweenEasing\":0,\"x\":-8.58,\"y\":11.07},{\"duration\":0,\"x\":1.86,\"y\":-14.78}],\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"rotate\":-10.01},{\"duration\":4,\"tweenEasing\":0,\"rotate\":38.6},{\"duration\":0,\"rotate\":-10.01}]},{\"name\":\"蛟右爪\",\"translateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"x\":-18.19,\"y\":1.82},{\"duration\":8,\"tweenEasing\":0,\"x\":-10.61,\"y\":24.6},{\"duration\":0,\"x\":-18.19,\"y\":1.82}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-18.56},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-11.68},{\"duration\":4,\"tweenEasing\":0,\"rotate\":20.17},{\"duration\":0,\"rotate\":-18.56}]},{\"name\":\"蛟身2\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-13.87},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-7.37},{\"duration\":4,\"tweenEasing\":0,\"rotate\":34.74},{\"duration\":0,\"rotate\":-13.87}]},{\"name\":\"蛟左翅1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-6.29},{\"duration\":0}]},{\"name\":\"蛟身3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":6.58},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-30.89},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-6.07},{\"duration\":0,\"rotate\":6.58}]},{\"name\":\"蛟左翅3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-9.28},{\"duration\":0}]},{\"name\":\"蛟右爪3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":8,\"tweenEasing\":0,\"rotate\":6.92},{\"duration\":0}]},{\"name\":\"蛟身4\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":22.45},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-24.08},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-15.36},{\"duration\":0,\"rotate\":22.45}]},{\"name\":\"蛟身5\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":18.22},{\"duration\":4,\"tweenEasing\":0,\"rotate\":5.31},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-28.85},{\"duration\":0,\"rotate\":18.22}]},{\"name\":\"蛟身6\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-24.42},{\"duration\":4,\"tweenEasing\":0,\"rotate\":41.63},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-14.2},{\"duration\":0,\"rotate\":-24.42}]},{\"name\":\"蛟身7\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-25.23},{\"duration\":4,\"tweenEasing\":0,\"rotate\":17.1},{\"duration\":4,\"tweenEasing\":0,\"rotate\":1.44},{\"duration\":0,\"rotate\":-25.23}]},{\"name\":\"蛟身8\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-11.03},{\"duration\":4,\"tweenEasing\":0,\"rotate\":14.71},{\"duration\":4,\"tweenEasing\":0,\"rotate\":11.44},{\"duration\":0,\"rotate\":-11.03}]},{\"name\":\"蛟身9\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":1.37},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-18.6},{\"duration\":0}]},{\"name\":\"蛟身19\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-13.39},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-13.39},{\"duration\":0}]},{\"name\":\"蛟身10\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-4.67},{\"duration\":4,\"tweenEasing\":0,\"rotate\":18.09},{\"duration\":0}]},{\"name\":\"蛟身15\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.17},{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.17},{\"duration\":0}]},{\"name\":\"蛟身11\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-1.97},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-31.47},{\"duration\":4,\"tweenEasing\":0,\"rotate\":19.09},{\"duration\":0,\"rotate\":-1.97}]},{\"name\":\"蛟身13\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-11.34},{\"duration\":4,\"tweenEasing\":0,\"rotate\":17.57},{\"duration\":0}]},{\"name\":\"蛟身16\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-17.43},{\"duration\":4,\"tweenEasing\":0,\"rotate\":10.01},{\"duration\":0}]},{\"name\":\"蛟身17\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-28.63},{\"duration\":4,\"tweenEasing\":0,\"rotate\":17.47},{\"duration\":0}]},{\"name\":\"蛟身14\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-26.08},{\"duration\":4,\"tweenEasing\":0,\"rotate\":21.52},{\"duration\":0}]}],\"ffd\":[{\"name\":\"动画拆/蛟身\",\"slot\":\"蛟身\",\"frame\":[{\"duration\":4,\"tweenEasing\":0,\"offset\":94,\"vertices\":[-0.08,0.24]},{\"duration\":4,\"tweenEasing\":0,\"offset\":26,\"vertices\":[1.08,-0.97,2.4,-0.8,0,0,-0.53,-1.47,3.35,0.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.3,-0.12,0,0,0,0,3.9,-3.15,0,0,0,0,5.66,-1.31,4.23,-1.18,4.36,-0.54,1.38,1.33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-4.63,0.38,-3.87,0.58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.77,0.37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.23,1.66,0,0,0,0,0,0,0,0,0,0,3.19,-3.21,1.01,-9.49,-2.88,-10.57,-5.15,-12.16,-4.23,-10.39,-2.88,-6.88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.96,-1.06,-1.48,-1.37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.72,-3.53,-1.62,-1.01,0,0,0,0,0,0,2.96,0.3,0,0,0.67,6.92,-3.56,5.57,-7.7,-3.37,0,0,0,0,0,0,0,0,0,0,0,0,0.47,5.84,-1.01,-2.59,-1.23,-2.24,0,0,0,0,0,0,0,0,0,0,-3.29,-6.1,-3.83,-1.81,0,0,4.44,-0.24,6.7,-0.89,2.27,-1.21]},{\"duration\":4,\"tweenEasing\":0,\"offset\":26,\"vertices\":[0.54,-0.48,1.2,-0.4,0,0,-0.26,-0.73,1.67,0.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.65,-0.06,0,0,0,0,1.95,-1.58,0,0,0,0,2.83,-0.66,2.11,-0.59,2.18,-0.27,0.69,0.66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,0.12,0,0,0,0,0,0,0,0,0,0,-2.31,0.19,-1.94,0.29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.38,0.19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.11,0.83,0,0,0,0,0,0,0,0,0,0,1.6,-1.6,0.5,-4.75,-1.44,-5.28,-2.58,-6.08,-2.12,-5.19,-1.44,-3.44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.48,-0.53,-0.74,-0.69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.36,-1.76,-0.81,-0.5,0,0,0,0,0,0,1.48,0.15,0,0,0.34,3.46,-1.78,2.79,0.57,2.71,0,0,0,0,0,0,0,0,0,0,0,0,0.23,2.92,-5.04,-3.55,-0.61,-1.12,0,0,0,0,0,0,0,0,0,0,-1.64,-3.05,-1.91,-0.9,0,0,2.22,-0.12,3.35,-0.44,1.14,-0.61]},{\"duration\":0,\"offset\":94,\"vertices\":[-0.08,0.24]}]}]},{\"duration\":16,\"playTimes\":0,\"name\":\"newAnimation_复制1\",\"bone\":[{\"name\":\"jiao头\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":6.21},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-4.33},{\"duration\":4,\"tweenEasing\":0,\"rotate\":2.99},{\"duration\":0}]},{\"name\":\"jiao头6\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-1.63},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-6.78},{\"duration\":0}]},{\"name\":\"jiao头3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.06},{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.5},{\"duration\":0}]},{\"name\":\"蛟身\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":13.6},{\"duration\":4,\"tweenEasing\":0,\"rotate\":4.26},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-4.97},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-19.97},{\"duration\":0,\"rotate\":13.6}]},{\"name\":\"蛟身1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-16.8},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-20.59},{\"duration\":4,\"tweenEasing\":0,\"rotate\":19.6},{\"duration\":4,\"tweenEasing\":0,\"rotate\":13.5},{\"duration\":0,\"rotate\":-16.8}]},{\"name\":\"jiao头2\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-7.99},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.63},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-21.38},{\"duration\":0}]},{\"name\":\"jiao头5\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-7.18},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.55},{\"duration\":4,\"tweenEasing\":0,\"rotate\":3.33},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-19.87},{\"duration\":0,\"rotate\":-7.18}]},{\"name\":\"蛟左翅\",\"translateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"x\":1.86,\"y\":-14.78},{\"duration\":8,\"tweenEasing\":0,\"x\":-8.58,\"y\":11.07},{\"duration\":0,\"x\":1.86,\"y\":-14.78}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-10.01},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-0.78},{\"duration\":4,\"tweenEasing\":0,\"rotate\":38.6},{\"duration\":0,\"rotate\":-10.01}]},{\"name\":\"蛟右爪\",\"translateFrame\":[{\"duration\":8,\"tweenEasing\":0,\"x\":-18.19,\"y\":1.82},{\"duration\":8,\"tweenEasing\":0,\"x\":-10.61,\"y\":24.6},{\"duration\":0,\"x\":-18.19,\"y\":1.82}],\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-18.56},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-11.38},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-11.68},{\"duration\":4,\"tweenEasing\":0,\"rotate\":20.17},{\"duration\":0,\"rotate\":-18.56}]},{\"name\":\"蛟身2\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-13.87},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-16.64},{\"duration\":4,\"tweenEasing\":0,\"rotate\":17.33},{\"duration\":4,\"tweenEasing\":0,\"rotate\":34.74},{\"duration\":0,\"rotate\":-13.87}]},{\"name\":\"蛟左翅1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":5.18},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-6.29},{\"duration\":0}]},{\"name\":\"蛟身3\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":6.58},{\"duration\":4,\"tweenEasing\":0,\"rotate\":4.53},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-41.93},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-6.07},{\"duration\":0,\"rotate\":6.58}]},{\"name\":\"蛟右爪1\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":12,\"tweenEasing\":0,\"rotate\":8.79},{\"duration\":0}]},{\"name\":\"蛟左翅3\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0},{\"duration\":8,\"tweenEasing\":0,\"rotate\":-9.28},{\"duration\":0}]},{\"name\":\"蛟右爪3\",\"rotateFrame\":[{\"duration\":8,\"tweenEasing\":0},{\"duration\":8,\"tweenEasing\":0,\"rotate\":6.92},{\"duration\":0}]},{\"name\":\"蛟身4\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":22.45},{\"duration\":4,\"tweenEasing\":0,\"rotate\":20.06},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-24.08},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-15.36},{\"duration\":0,\"rotate\":22.45}]},{\"name\":\"蛟身5\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":18.22},{\"duration\":4,\"tweenEasing\":0,\"rotate\":23.34},{\"duration\":4,\"tweenEasing\":0,\"rotate\":5.31},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-28.85},{\"duration\":0,\"rotate\":18.22}]},{\"name\":\"蛟身6\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-24.42},{\"duration\":4,\"tweenEasing\":0,\"rotate\":21.59},{\"duration\":4,\"tweenEasing\":0,\"rotate\":41.63},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-14.2},{\"duration\":0,\"rotate\":-24.42}]},{\"name\":\"蛟身7\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-25.23},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-34.32},{\"duration\":4,\"tweenEasing\":0,\"rotate\":17.1},{\"duration\":4,\"tweenEasing\":0,\"rotate\":1.44},{\"duration\":0,\"rotate\":-25.23}]},{\"name\":\"蛟身8\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-11.03},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-22.27},{\"duration\":4,\"tweenEasing\":0,\"rotate\":14.71},{\"duration\":4,\"tweenEasing\":0,\"rotate\":11.44},{\"duration\":0,\"rotate\":-11.03}]},{\"name\":\"蛟身9\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-11.79},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-21.37},{\"duration\":4,\"tweenEasing\":0,\"rotate\":10.04},{\"duration\":0}]},{\"name\":\"蛟身18\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":12,\"tweenEasing\":0,\"rotate\":-6.98},{\"duration\":0}]},{\"name\":\"蛟身19\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-3.24},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-13.39},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-13.39},{\"duration\":0}]},{\"name\":\"蛟身10\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-7.3},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-4.67},{\"duration\":4,\"tweenEasing\":0,\"rotate\":18.09},{\"duration\":0}]},{\"name\":\"蛟身15\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":7.12},{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.17},{\"duration\":4,\"tweenEasing\":0,\"rotate\":0.17},{\"duration\":0}]},{\"name\":\"蛟身12\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":12,\"tweenEasing\":0,\"rotate\":6.73},{\"duration\":0}]},{\"name\":\"蛟身11\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0,\"rotate\":-1.97},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-23.34},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-31.47},{\"duration\":4,\"tweenEasing\":0,\"rotate\":19.09},{\"duration\":0,\"rotate\":-1.97}]},{\"name\":\"蛟身13\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-24.13},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-11.34},{\"duration\":4,\"tweenEasing\":0,\"rotate\":17.57},{\"duration\":0}]},{\"name\":\"蛟身16\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-18.75},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-17.43},{\"duration\":4,\"tweenEasing\":0,\"rotate\":10.01},{\"duration\":0}]},{\"name\":\"蛟身17\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-8.36},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-28.63},{\"duration\":4,\"tweenEasing\":0,\"rotate\":17.47},{\"duration\":0}]},{\"name\":\"蛟身14\",\"rotateFrame\":[{\"duration\":4,\"tweenEasing\":0},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-4.17},{\"duration\":4,\"tweenEasing\":0,\"rotate\":-26.08},{\"duration\":4,\"tweenEasing\":0,\"rotate\":21.52},{\"duration\":0}]}],\"ffd\":[{\"name\":\"动画拆/蛟身\",\"slot\":\"蛟身\",\"frame\":[{\"duration\":4,\"tweenEasing\":0,\"offset\":94,\"vertices\":[-0.08,0.24]},{\"duration\":4,\"tweenEasing\":0,\"offset\":76,\"vertices\":[4.36,-0.54,1.38,1.33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3.75,-1.91,-1.62,-1.01]},{\"duration\":4,\"tweenEasing\":0,\"offset\":26,\"vertices\":[1.08,-0.97,2.4,-0.8,0,0,-0.53,-1.47,3.35,0.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.3,-0.12,0,0,0,0,3.9,-3.15,0,0,0,0,5.66,-1.31,4.23,-1.18,4.36,-0.54,1.38,1.33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-4.63,0.38,-3.87,0.58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.77,0.37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.23,1.66,0,0,0,0,0,0,0,0,0,0,3.19,-3.21,1.01,-9.49,-2.88,-10.57,-5.15,-12.16,-4.23,-10.39,-2.88,-6.88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.96,-1.06,-1.48,-1.37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.72,-3.53,-1.62,-1.01,0,0,0,0,0,0,2.96,0.3,0,0,0.67,6.92,-3.56,5.57,-7.7,-3.37,0,0,0,0,0,0,0,0,0,0,0,0,0.47,5.84,-1.01,-2.59,-1.23,-2.24,0,0,0,0,0,0,0,0,0,0,-3.29,-6.1,-3.83,-1.81,0,0,4.44,-0.24,6.7,-0.89,2.27,-1.21]},{\"duration\":4,\"tweenEasing\":0,\"offset\":26,\"vertices\":[0.54,-0.48,1.2,-0.4,0,0,-0.26,-0.73,1.67,0.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.65,-0.06,0,0,0,0,1.95,-1.58,0,0,0,0,2.83,-0.66,2.11,-0.59,2.18,-0.27,0.69,0.66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,0.12,0,0,0,0,0,0,0,0,0,0,-2.31,0.19,-1.94,0.29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.38,0.19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.11,0.83,0,0,0,0,0,0,0,0,0,0,1.6,-1.6,0.5,-4.75,-1.44,-5.28,-2.58,-6.08,-2.12,-5.19,-1.44,-3.44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.48,-0.53,-0.74,-0.69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.36,-1.76,-0.81,-0.5,0,0,0,0,0,0,1.48,0.15,0,0,0.34,3.46,-1.78,2.79,0.57,2.71,0,0,0,0,0,0,0,0,0,0,0,0,0.23,2.92,-5.04,-3.55,-0.61,-1.12,0,0,0,0,0,0,0,0,0,0,-1.64,-3.05,-1.91,-0.9,0,0,2.22,-0.12,3.35,-0.44,1.14,-0.61]},{\"duration\":0,\"offset\":94,\"vertices\":[-0.08,0.24]}]}]}],\"defaultActions\":[{\"gotoAndPlay\":\"newAnimation\"}]}]}"]],0,0,[],[],[]],[[[4,"qingwa"],[7,"qingwa",1,[-4],[[2,777,-2,[[[0,-40.2,-51.6],[0,-32.8,-71.8],[0,-20.3,-88.9],[0,-6.1,-104.9],[0,5.7,-105],[0,12.6,-97],[0,28.6,-75.4],[0,36.5,-56.8],[0,35.6,-23.5],[0,30.4,-2.7],[0,32,9.2],[0,33.6,19.8],[0,38,28.2],[0,43.5,27.9],[0,56.2,32.5],[0,63.5,41.7],[0,62.4,56.8],[0,50.1,68.4],[0,44.5,69.7],[0,45.7,75.5],[0,47.9,86.8],[0,41.1,98.2],[0,31.7,104.4],[0,20.3,101.1],[0,12.5,103.7],[0,-8.2,105.1],[0,-21.9,100.4],[0,-32.8,103.9],[0,-44.5,98.3],[0,-48.9,83.3],[0,-46.3,70.5],[0,-55.6,68.3],[0,-64.4,57.4],[0,-65.9,45.5],[0,-57.2,33],[0,-41.9,28.3],[0,-36.2,19.9],[0,-30,0.9],[0,-37.6,-21]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[16,-3]],[22,-1,0],[5,310,426],[0,0,0,0,0,0,1,0.45,0.45,1]],[5,"qingwa",1,1,[[3,"Armature","newAnimation",0,"5d197404-68b4-4b7b-a6d0-43e7b4dc4c1c#5ee29015-a6ac-46cf-9265-5a44a2892075",0.7,-5,[0],1,2]],[23,"c7kg9LQX9F5ZlrCTJJVCcV",1,0],[5,310.54,426.31]]],0,[0,2,1,0,0,1,0,0,1,0,-1,2,0,0,2,0,5,1,5],[0,0,0],[-1,3,4],[0,8,9]],[[{"name":"default_btn_pressed","rect":[0,0,40,40],"offset":[0,0],"originalSize":[40,40],"capInsets":[12,12,12,12]}],[0],0,[0],[1],[142]],[[{"name":"光3","rect":[667,343,299,297],"offset":[0,0],"originalSize":[299,297],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[2]],[[[9,"pamlong_ske_1_ske_tex","{\"width\":512,\"SubTexture\":[{\"width\":121,\"y\":199,\"height\":165,\"name\":\"动画拆/左前爪\",\"x\":315},{\"width\":106,\"y\":1890,\"height\":134,\"name\":\"动画拆/左后爪\",\"x\":110},{\"width\":114,\"y\":366,\"height\":163,\"name\":\"动画拆/右前爪\",\"x\":315},{\"width\":107,\"y\":1890,\"height\":137,\"name\":\"动画拆/右后爪\",\"x\":1},{\"width\":200,\"y\":1,\"height\":1609,\"name\":\"动画拆/龙身\",\"x\":1},{\"width\":228,\"y\":1612,\"height\":276,\"name\":\"动画拆/龙头\",\"x\":1},{\"width\":108,\"y\":1,\"height\":196,\"name\":\"动画拆/10右须\",\"x\":315},{\"width\":110,\"y\":1,\"height\":197,\"name\":\"动画拆/10左须\",\"x\":203}],\"height\":2048,\"name\":\"pamlong_ske_1_ske\",\"imagePath\":\"pamlong_ske_1_ske_tex.png\"}"]],0,0,[0],[7],[143]],[[[4,"dianman"],[7,"dianman",1,[-5,-6],[[2,1,-2,[[[0,-37.8,-215.4],[0,-28.8,-295.8],[0,-30.5,-340.3],[0,-35.4,-412.1],[0,-27.1,-434.6],[0,-16.6,-459.9],[0,2.4,-494.5],[0,30.2,-521.2],[0,47.8,-542.3],[0,51.4,-538.8],[0,41.3,-512],[0,32.8,-484.4],[0,50.5,-495.1],[0,71.9,-506.5],[0,59.9,-485.5],[0,52.9,-467.2],[0,47.8,-408.7],[0,51.4,-370],[0,36.2,-291.9],[0,35.4,-250.9],[0,50,-168.1],[0,53.5,-134.4],[0,58.6,34.1],[0,65.9,11.6],[0,75.9,-1],[0,84,-0.1],[0,90,6.7],[0,97.3,24.3],[0,98.3,43.6],[0,94,58.9],[0,84.6,69.9],[0,67,73.2],[0,57.3,77.9],[0,54.6,114.8],[0,50.6,149.8],[0,77.1,107.5],[0,100.2,75.2],[0,124.2,50.4],[0,128.76,51.5],[0,130.5,54.99],[0,128.4,60.9],[0,107.2,89.1],[0,94.4,114.6],[0,91.8,134.4],[0,93.3,141],[0,96.5,141.9],[0,102.3,139],[0,123.7,122.1],[0,156.5,101.2],[0,158.8,104.4],[0,156.8,110.9],[0,113.4,145.7],[0,93.3,167.8],[0,94.8,171.6],[0,120.7,166.5],[0,144.9,163.2],[0,147.6,166.5],[0,147.2,170.2],[0,121.9,177.6],[0,103.8,186],[0,97,189.3],[0,97.8,192.2],[0,104,195.2],[0,111.3,199.2],[0,115.3,203.9],[0,114.4,207],[0,89.3,202.3],[0,69.7,201.5],[0,65.8,204.3],[0,42.8,204.49],[0,42.44,215.39],[0,36.38,229.92],[0,25.4,238],[0,23.6,242.6],[0,44.5,231.6],[0,49.5,232.1],[0,48,237.2],[0,28.4,251],[0,29.3,256.9],[0,12.9,258.6],[0,8.8,262.7],[0,-6.3,262.3],[0,-15.2,257.8],[0,-25.8,257.7],[0,-28.3,253.9],[0,-24.8,250.4],[0,-41.2,240.1],[0,-47.9,234.6],[0,-46.1,230.6],[0,-26.8,240.3],[0,-29.5,235.7],[0,-40,222.7],[0,-44,213.7],[0,-44.1,202.3],[0,-69.7,202.6],[0,-70.4,197.8],[0,-100.2,201.7],[0,-119.8,203.9],[0,-100.4,185.9],[0,-120.8,175],[0,-149,167.4],[0,-147,158.7],[0,-92.5,166.7],[0,-94.7,159.5],[0,-154.7,108],[0,-160.4,102.3],[0,-152.8,100.2],[0,-100.7,136.7],[0,-92.7,136.3],[0,-95.6,114.2],[0,-103.9,92.4],[0,-132,52],[0,-127.2,48.3],[0,-113.9,54.7],[0,-52.9,143.4],[0,-58.3,76.2],[0,-85.2,64.8],[0,-89,47.3],[0,-86.6,21.3],[0,-75.9,3.3],[0,-67.7,0.7],[0,-54.4,19.6],[0,-50.5,-126.8]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[14,false,-3],[11,666,43.9,-4,[0,0.7,207.4]]],[1,-1],[5,323,836],[0,0,0,0,0,0,1,1.1,1.1,1]],[25,"pos",1,[[19,1000,1000,-7],[15,-8]],[0,"95hJlLheBLH4otU0GUEGjD",1],[0,-90,0,0,0,0,1,1,1,1]],[5,"dianman",1,1,[[3,"Armature","newAnimation",0,"05b00490-a337-41ac-a71a-8c62fd1af0f8#732b0ce1-08bb-4236-bd70-27a50d843ee2",0.5,-9,[0],1,2]],[0,"5537VjZFhA0o7JVSYTHzos",1],[5,323.16,826]]],0,[0,2,1,0,0,1,0,0,1,0,0,1,0,-1,3,0,-2,2,0,0,2,0,0,2,0,0,3,0,5,1,9],[0,0,0],[-1,3,4],[0,20,21]],[[{"name":"石3","rect":[435,500,327,328],"offset":[0,0],"originalSize":[327,328],"rotated":1,"capInsets":[0,0,0,0]}],[0],0,[0],[1],[5]],[[{"name":"石2","rect":[518,3,250,250],"offset":[0,0],"originalSize":[250,250],"capInsets":[0,0,0,0]}],[0],0,[0],[1],[5]],[[[4,"jiao"],[7,"jiao",1,[-5,-6],[[2,1,-2,[[[0,-13,-95],[0,-4,-152],[0,-45,-258],[0,-87,-350],[0,-93,-450],[0,-57,-546],[0,-13,-624],[0,5,-675],[0,37,-742],[0,47,-725],[0,57,-734],[0,72,-756],[0,109,-887],[0,128,-889],[0,116,-833],[0,124,-826],[0,137,-828],[0,161,-841],[0,198,-867],[0,231,-915],[0,239,-907],[0,209,-863],[0,185,-795],[0,192,-775],[0,209,-771],[0,243,-797],[0,257,-792],[0,146,-693],[0,130,-664],[0,145,-666],[0,144,-650],[0,47,-556],[0,8,-487],[0,4,-405],[0,35,-328],[0,82,-275],[0,109,-195],[0,120,-114],[0,115,-57.4],[0,84,43.4],[0,136.4,-25.7],[0,171.2,-50.4],[0,146.4,-19.2],[0,142.3,4.6],[0,161.5,13.1],[0,210.4,-4.7],[0,213.2,1.9],[0,179.9,18.2],[0,146.9,45.8],[0,136.5,61.8],[0,147.6,69.5],[0,181.7,67.1],[0,178.2,70.8],[0,118.7,90.2],[0,48.2,127.2],[0,28.6,204.5],[0,27.9,288.8],[0,53.1,388.4],[0,90.8,328.2],[0,93.3,336],[0,82.7,358.2],[0,85.6,372.2],[0,106.1,378],[0,145.6,331.7],[0,118.1,391.4],[0,109.2,422.6],[0,124.9,437.2],[0,145.5,431.5],[0,143.8,442.8],[0,84.6,485.3],[0,49,549.5],[0,10.1,585.6],[0,-13.6,584.8],[0,-47.4,552.5],[0,-78.4,501.3],[0,-87,478.8],[0,-118,454.2],[0,-152.3,438.3],[0,-148.2,430.3],[0,-127.3,434.3],[0,-114.7,426.8],[0,-117.2,399.7],[0,-139.4,342.5],[0,-131.1,334.2],[0,-107.4,380.3],[0,-95.1,376.9],[0,-90.8,366.5],[0,-101.9,320.1],[0,-113.6,217.3],[0,-99.3,134.1],[0,-80.8,84.3],[0,-141.7,-36.4],[0,-114.4,-14.4],[0,-102.9,-18.2],[0,-106.4,-66.7],[0,-121.9,-111.1],[0,-113.2,-106.2],[0,-92.9,-65.6],[0,-78.8,-59],[0,-64.9,-64.6],[0,-57.2,-88.2],[0,-58.8,-116.7],[0,-52.5,-107],[0,-48,-49.1],[0,-56.6,23.4]],8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]],[72,-3],[11,666,98,-4,[0,0,465]]],[1,-1],[5,338,1786],[0,0,0,0,0,0,1,1.2,1.2,1]],[25,"pos",1,[[38,1500,-7],[15,-8]],[0,"6bc3/uxKtCXLwt7IBEg2WI",1],[0,-128.51,0,0,0,0,1,1,1,1]],[5,"jiao",1,1,[[3,"Armature","newAnimation",0,"e57ffa14-9d48-47c3-9ba4-05b2e89b5f70#a1237208-e8b7-4f3c-b327-c792cb0c03e6",0.4,-9,[0],1,2]],[0,"f6ia8poFdO5oo0drFbjJob",1],[5,337.77,1786.5]]],0,[0,2,1,0,0,1,0,0,1,0,0,1,0,-1,3,0,-2,2,0,0,2,0,0,2,0,0,3,0,5,1,9],[0,0,0],[-1,3,4],[0,16,17]],[[[106,"wu",0.5,0.5,[{"props":{"opacity":[{"frame":0,"value":0},{"frame":0.16666666666666666,"value":150},{"frame":0.25,"value":150},{"frame":0.3333333333333333,"value":150},{"frame":0.5,"value":255}],"width":[]}},"comps",11,[{},"cc.Sprite",11,[{},"spriteFrame",12,[[[{"frame":0},"value",6,0],[{"frame":0.16666666666666666},"value",6,1],[{"frame":0.25},"value",6,2],[{"frame":0.3333333333333333},"value",6,3]],11,11,11,11]]]]]],0,0,[0,0,0,0],[9,9,9,9],[24,24,39,39]]]] \ No newline at end of file diff --git a/assets/main/import/0e/0e06891ae.3e41d.json b/assets/main/import/0e/0e06891ae.3e41d.json new file mode 100644 index 0000000..8c3495f --- /dev/null +++ b/assets/main/import/0e/0e06891ae.3e41d.json @@ -0,0 +1 @@ +{"type":"cc.Texture2D","data":"0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,0|0,9729,9729,33071,33071,0,0,0|0,9729,9729,33071,33071,0,0,0|0,9729,9729,33071,33071,0,0,0|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1"} \ No newline at end of file diff --git a/assets/main/index.fbdd2.js b/assets/main/index.fbdd2.js new file mode 100644 index 0000000..a36fabe --- /dev/null +++ b/assets/main/index.fbdd2.js @@ -0,0 +1,3267 @@ +window.__require = function e(t, a, i) { + function o(s, c) { + if (!a[s]) { + if (!t[s]) { + var r = s.split("/"); + if (r = r[r.length - 1], + !t[r]) { + var h = "function" == typeof __require && __require; + if (!c && h) + return h(r, !0); + if (n) + return n(r, !0); + throw new Error("Cannot find module '" + s + "'") + } + s = r + } + var l = a[s] = { + exports: {} + }; + t[s][0].call(l.exports, function(e) { + return o(t[s][1][e] || e) + }, l, l.exports, e, t, a, i) + } + return a[s].exports + } + for (var n = "function" == typeof __require && __require, s = 0; s < i.length; s++) + o(i[s]); + return o +}({ + AniTools: [function(e, t) { + "use strict"; + cc._RF.push(t, "c1ddcRY/mRHiYxChOjYdF2+", "AniTools"); + var a = { + doLabStrAni: function(e, t, a) { + e.node.stopAllActions(), + e.string = ""; + var i = t.split("") + , o = 0 + , n = a / i.length; + e.node.runAction(cc.sequence(cc.callFunc(function() { + e.string = e.string + i[o], + o++ + }), cc.delayTime(n)).repeat(i.length)) + }, + gunNumLabAni: function(e, t, a, i, o) { + if (void 0 === a && (a = 30), + o = o || parseInt(e.string), + t != o) { + e.node.stopAllActions(); + var n = 0 + , s = Math.abs(t - o) + , c = o > t ? -1 : 1; + Math.abs(t - o) > a && (s = a, + c *= Math.abs(t - o) / a), + e.node.runAction(cc.sequence(cc.callFunc(function() { + n >= s - 1 ? e.string = i ? ToolsJs.getStrForNum2(t) : t : (o += Math.floor(c), + e.string = i ? ToolsJs.getStrForNum2(o) : Math.floor(o)), + n++ + }), cc.delayTime(.02)).repeat(s)) + } + }, + openUIAni: function(e, t, a, i) { + void 0 === a && (a = .3), + e.opacity = 0, + t.scale = 0, + e.runAction(cc.fadeTo(a, 100)), + t.runAction(cc.sequence(cc.scaleTo(a, 1).easing(cc.easeBackOut()), cc.callFunc(i))) + }, + closeUIAni: function(e, t, a, i) { + void 0 === a && (a = .2), + e.runAction(cc.fadeOut(a)), + t.runAction(cc.sequence(cc.scaleTo(a, 0).easing(cc.easeBackIn()), cc.callFunc(i), cc.removeSelf(!0))) + }, + sortFadeInArr: function(e, t, a) { + void 0 === t && (t = .3), + void 0 === a && (a = .02); + for (var i = 0; i < e.length; i++) { + var o = e[i]; + o.opacity = 0, + o.runAction(cc.sequence(cc.delayTime(a * i), cc.fadeIn(t))) + } + }, + jumpByDegressAni: function(e, t, a, i, o, n) { + void 0 === a && (a = 0), + void 0 === n && (n = 0); + var s = cc.misc.degreesToRadians(t) + , c = cc.v2(Math.cos(s) * i, Math.sin(s) * i) + , r = i / o; + e.runAction(cc.sequence(cc.delayTime(n), cc.jumpBy(r, cc.v2(1.5 * c.x, a), i, 1), cc.removeSelf(!0))) + }, + moveDegressAni: function(e, t, a, i, o, n) { + t = t || this.returnRanNum(-180, 180); + var s = cc.misc.degreesToRadians(t) + , c = cc.v2(Math.cos(s) * a, Math.sin(s) * a) + , r = a / i + , h = o ? 0 : e.scale + , l = n ? 0 : e.opacity; + e.runAction(cc.sequence(cc.spawn(cc.scaleTo(r + .1, h), cc.moveBy(r, c).easing(cc.easeQuadraticActionOut()), cc.fadeTo(r + .1, l)), cc.fadeOut(.1), cc.removeSelf(!0))) + }, + moveByOutInit: function(e, t, a, i) { + void 0 === t && (t = .5), + void 0 === a && (a = 0), + void 0 === i && (i = 0), + e.x += a, + e.y += i, + e.runAction(cc.moveBy(t, cc.v2(-a, -i)).easing(cc.easeBackOut())) + }, + sprRedAni: function(e, t, a, i) { + var o = 0; + e.runAction(cc.sequence(cc.delayTime(t), cc.callFunc(function(e) { + e.color = cc.Color.RED + }), cc.delayTime(t), cc.callFunc(function(e) { + e.color = cc.Color.WHITE, + ++o >= a && null != i && i() + })).repeat(a)) + }, + shakeAni: function(e, t, a, i, o) { + void 0 === a && (a = 10), + void 0 === i && (i = .1), + void 0 === o && (o = 2); + var n = cc.sequence(cc.rotateBy(i, a), cc.rotateBy(i, -a), cc.rotateBy(i, -a), cc.rotateBy(i, a), cc.rotateBy(i, a), cc.rotateBy(i, -a), cc.delayTime(o)); + t ? e.runAction(n.repeatForever()) : e.runAction(n) + }, + playAni: function(e, t) { + e.getComponent(cc.Animation).play(t) + }, + stopAni: function(e, t) { + e.getComponent(cc.Animation).stop(t) + }, + addNodeAni: function(e, t, a, i, o, n, s) { + var c = e.getComponent(cc.Animation); + null == c && (c = e.addComponent(cc.Animation)); + var r = []; + if (ToolsJs.SpriteFrameDic[t + i]) { + for (var h = i; h <= o; h++) { + var l = ToolsJs.SpriteFrameDic[t + h]; + r.push(l) + } + this.addClipForAnimaton(c, r, a, s, n) + } else + for (var m = this, d = 0, u = o - i + 1, g = function(e) { + cc.loader.loadRes(t + e, cc.SpriteFrame, function(t, i) { + i && (d++, + i.index = e, + r.push(i)), + d >= u && (ToolsJs.sortArrForObject(r, "index"), + m.addClipForAnimaton(c, r, a, s, n)) + }) + }, p = i; p <= o; p++) + g(p) + }, + addClipForAnimaton: function(e, t, a, i, o) { + var n = cc.AnimationClip.createWithSpriteFrames(t, t.length); + n.name = a, + n.speed = i, + n.wrapMode = o ? cc.WrapMode.Loop : cc.WrapMode.Normal, + e.addClip(n) + }, + returnRanNum: function(e, t) { + return e + Math.floor(Math.random() * (t - e + 1)) + } + }; + window.AniTools = a, + cc._RF.pop() + } + , {}], + EventData: [function(e, t) { + "use strict"; + cc._RF.push(t, "00f19xAv/JGmKf/MZ/AWHni", "EventData"), + window.EventData = { + UPDATE_GLOD: "updateGlod" + }, + cc._RF.pop() + } + , {}], + EventManager: [function(e, t) { + "use strict"; + cc._RF.push(t, "94634X4eDVNUoEnqKm3D5/S", "EventManager"); + var a = { + addListener: function(e, t, a) { + cc.systemEvent.on(e, t, a) + }, + removeListener: function(e, t, a) { + cc.systemEvent.off(e, t, a) + }, + dispachEvent: function(e, t, a, i, o, n) { + cc.systemEvent.emit(e, t, a, i, o, n) + }, + removeListenerForTarget: function(e) { + cc.systemEvent.targetOff(e) + } + }; + window.EventManager = a, + cc._RF.pop() + } + , {}], + GameConfig: [function(e, t) { + "use strict"; + cc._RF.push(t, "f0663sWtfNKCKOL+Hvnt0cI", "GameConfig"); + var a = { + GameClubButton: null, + GameScene: null, + launchScene: null, + Bros: null, + caS: null, + MAIN_MENU_NUM: "Classic", + gameScore: 0, + standScore: 6, + GAME_OVER_BOOL: !0, + publicGameBool: !1, + ranLinkData: null, + recGameData: null, + InfoData: null, + endShow0: null, + endShow1: null, + endShow2: null, + endShow3: null, + infoGameName: null, + showText: null, + startText: null, + moreGameText: null, + playAgainText: null, + playNum: 0, + curType: 2, + noTouchBool: !0, + enterGameNum: 0, + enterGameFlags: !1, + returnRanNum: function(e, t) { + return e + Math.floor(Math.random() * (t - e + 1)) + }, + getAngle: function(e, t, a, i) { + var o = Math.abs(e - a) + , n = Math.abs(t - i) + , s = n / Math.sqrt(Math.pow(o, 2) + Math.pow(n, 2)) + , c = Math.acos(s) + , r = 180 / (Math.PI / c); + return t > i && (r = 180 - r), + e > a && (r *= -1), + r + }, + setLocalStorage: function(e, t) { + cc.sys.localStorage.setItem(e, t) + }, + getLocalStorage: function(e) { + return cc.sys.localStorage.getItem(e) + } + }; + t.exports = a, + cc._RF.pop() + } + , {}], + GameUiTools: [function(e, t) { + "use strict"; + cc._RF.push(t, "b21e8tF461OFalpptyeuAE2", "GameUiTools"), + e("GameConfig"); + var a = { + newSprite: function(e, t) { + var a = new cc.Node; + return t ? (e = e.split(".")[0], + a.addComponent(cc.Sprite).spriteFrame = GameTools.love2048FrameCache.getSpriteFrame(e)) : a.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame("res/raw-assets/resources/" + e), + a + }, + setNodeSpriteFrame: function(e, t) { + e.getComponent(cc.Sprite).spriteFrame = GameTools.love2048FrameCache.getSpriteFrame(t) + }, + setButtonClickEvents: function(e, t, a, i, o) { + var n = new Array; + null == t.length ? n[0] = t : n = t; + for (var s = 0; s < n.length; s++) { + var c = new cc.Component.EventHandler; + c.target = e.node, + c.component = e.node.name, + c.handler = a, + null == t.length ? c.customEventData = i : c.customEventData = s; + var r = n[s].addComponent(cc.Button); + r.clickEvents.push(c), + (null == o || o) && (r.transition = cc.Button.Transition.SCALE, + r.duration = .1, + r.zoomScale = 1.2) + } + }, + scheduleOnce: function(e, t, a) { + e.runAction(cc.sequence(cc.delayTime(a), cc.callFunc(t, e))) + }, + loadingScene: function(e, t) { + t ? cc.loader.loadRes("panel/LoadingLayer", function(t, a) { + var i = cc.instantiate(a); + cc.director.getScene().children[0].addChild(i), + cc.director.preloadScene(e, function() { + cc.director.loadScene(e) + }) + }) : cc.director.preloadScene(e, function() { + cc.director.loadScene(e) + }) + }, + loadingLayer: function(e) { + cc.loader.loadRes(e, function(e, t) { + if (!e) { + var a = cc.instantiate(t); + cc.director.getScene().children[0].addChild(a, 100) + } + }) + } + }; + t.exports = a, + cc._RF.pop() + } + , { + GameConfig: "GameConfig" + }], + HttpManagerJs: [function(e, t) { + "use strict"; + var a; + cc._RF.push(t, "197e1hfNnxIcJx73V3VhUxY", "HttpManagerJs"); + var i = e("GameConfig") + , o = ((a = { + URL: "http://g.vsane.com/Service/Share/index", + cacheList: null, + isBusy: null, + req: null, + perform: null, + retGameId: 0 + }).cacheList = [], + a.ctor = function() {} + , + a.checkHave = function() { + this.isBusy || this.sendOne() + } + , + a.httpInitUrl = function(e) { + var t = window.location.href + , a = t.substring(0, t.lastIndexOf("//") + 2) + window.location.host + "/Service/Share/index"; + this.URL = a, + console.log("data", this.URL), + this.retGameId = e + } + , + a.send = function(e, t, a, i) { + this.cacheList.push({ + type: e, + data: t, + func: a, + target: i + }), + this.isBusy || this.sendOne() + } + , + a.sendOne = function() { + if (0 != this.cacheList.length) { + this.isBusy = !0, + this.perform = this.cacheList.shift(), + this.req = cc.loader.getXMLHttpRequest(), + this.req.onreadystatechange = this.onDataHandler.bind(this), + this.req.onerror = this.onErrorHandler.bind(this), + this.req.ontimeout = this.onTimeoutHandler.bind(this), + this.req.timeout = 2e3, + cc.log("pos", this.URL), + this.req.open("POST", this.URL), + this.req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); + var e = this.returnLanguage(); + console.log("gameIdid", this.retGameId); + var t = this.retGameId + , a = { + type: this.perform.type, + gid: t, + mid: null, + data: this.perform.data, + languageType: e + } + , i = "send=" + JSON.stringify(a); + this.req.send(i) + } + } + , + a.onDataHandler = function() { + if (404 != this.req.status) { + if (4 == this.req.readyState && this.req.status >= 200 && this.req.status <= 207 && this.req.responseText) { + var e = JSON.parse(this.req.responseText); + this.isBusy = !1, + this.perform.target ? this.perform.func.call(this.perform.target, e.error, e.data, e.commendGame, e.gameInfo) : this.perform.func(e) + } + } else { + var t = i.launchScene + , a = i.Bros; + i.caS, + cc.director.loadScene(t, null, function() { + if (a) { + var e = document.getElementById("GameDiv"); + e && (e.style.backgroundImage = "") + } + cc.loader.onProgress = null, + console.log("Success to load scene: " + t) + }) + } + } + , + a.returnLanguage = function() { + return ("" + window.navigator.language).toLocaleLowerCase() + } + , + a.onErrorHandler = function() { + cc.log("\u7f51\u7edc\u9519\u8bef"), + this.isBusy = !1, + this.perform.target ? this.perform.func.call(this.perform.target, -1) : this.perform.func(-1) + } + , + a.onTimeoutHandler = function() { + cc.log("\u8bf7\u6c42\u8d85\u65f6"), + this.isBusy = !1, + this.perform.target ? this.perform.func.call(this.perform.target, -1) : this.perform.func(-1) + } + , + a.clearAll = function() { + for (var e = this.cacheList.length, t = 0; t < e; t++) { + var a = this.cacheList[t]; + a && (a.target ? a.func.call(a.target, -1) : a.func(-1)) + } + this.cacheList.length = 0 + } + , + a); + t.exports = o, + cc._RF.pop() + } + , { + GameConfig: "GameConfig" + }], + LanguageSetJs: [function(e, t) { + "use strict"; + cc._RF.push(t, "4754e8KuPZJCqklCNyKpG29", "LanguageSetJs"), + t.exports = { + language_1: { + game_name: "\u300c\u53ec\u5524\u795e\u9f99\u300d", + game_name1: "\u53ec\u5524\u795e\u9f99", + game_info: "\u70b9\u51fb\u5c4f\u5e55\u4e32\u73e0\u5b50\uff0c\u4e24\u4e2a\u76f8\u540c\u7ea7\u522b\u7684\u73e0\u5b50\u4f1a\u5408\u6210\u66f4\u9ad8\u7ea7\u7684\u73e0\u5b50\u3002", + txtStart: "\u5f00\u59cb", + txtMore: "\u66f4\u591a\u6e38\u620f", + txtAgain: "\u518d\u73a9\u4e00\u6b21", + txtShare1: "\u5728\u6e38\u620f\u4e2d ", + txtShare2: "\u5f97\u5206\u4e86\uff0c\u597d\u554a!\u4f60\u548c\u6211\u4e00\u8d77\u6765\u6bd4\u8d5b!", + bgRgb: "#3698C5", + gameT1: "\u5173\u6ce8\u6211\u4eec", + gameT2: "\u7eb8\u724c\u63a5\u9f99", + gameT3: "\u9526\u4e0a\u6dfb\u82b1", + gameUrl1: "http://g.regogame.com/game/9/", + gameUrl2: "http://g.regogame.com/game/3/", + gameT11: "\u5173\u6ce8\u5fae\u4fe1", + gameT12: "\u5173\u6ce8Kakao", + gameT13: "\u5173\u6ce8Line", + gameEndL: "\u6e38 \u620f \u7ed3 \u675f", + gameEndL1: "\u7a0d \u5019 \u67e5 \u770b \u5206 \u6570" + }, + language_2: { + game_name: "\u300cDragon Merge\u300d", + game_name1: "Dragon Merge", + game_info: "Tap the screen to string beads, and two beads of the same level will synthesize more advanced beads.", + txtStart: "Start", + txtMore: "More Game", + txtAgain: "Play Again", + txtShare1: "In Game ", + txtShare2: " Let's play together!", + bgRgb: "#3698C5", + gameT1: "Follow Us", + gameT2: "Thousand Flower", + gameT3: "Eliminate Star", + gameUrl1: "http://g.fromgame.com/game/53", + gameUrl2: "http://g.fromgame.com/game/13", + gameT11: "Focus WeChat", + gameT12: "Focus Kakao", + gameT13: "Focus Line", + gameEndL: "Game OVer", + gameEndL1: "View the score later" + } + }, + cc._RF.pop() + } + , {}], + LoadSceneJs: [function(e, t) { + "use strict"; + cc._RF.push(t, "3ef908fwfNIwJsOjET8tCh2", "LoadSceneJs"); + var a = { + goToCover: function(e, t, a, i, o) { + var n = e; + n = null == n || null == n || e, + console.log("LoadBoolBeforeLoadS", n), + this.needShow = !1, + n && n ? (this.needShow = !0, + showMyAds()) : this.needShow = !1, + this.needShow ? (null == preloader && this.startGoToGame(a, i, o), + resCompleteFlag = !0, + adCompleteFlag && resCompleteFlag && this.startGoToGame(a, i, o)) : this.startGoToGame(a, i, o) + }, + startGoToGame: function() { + console.log("goToScene"), + noAdGoToScene() + } + }; + t.exports = a, + cc._RF.pop() + } + , {}], + MainGameJS: [function(e, t) { + "use strict"; + cc._RF.push(t, "0e7a8SkMLxEY7nCB1Bqi8WZ", "MainGameJS"); + var a = e("GameConfig") + , i = e("GameUiTools") + , o = e("MainManage") + , n = (e("mTool_WHQ"), + e("../commonJs/GameConfig").gameScore, + e("../commonJs/GameUiTools")) + , s = (n.scheduleOnce, + n.setNodeSpriteFrame, + e("../commonJs/mTool_WHQ")); + e("../MainManage").endHttpShowInfo, + cc.Class({ + extends: cc.Component, + properties: { + startBgNode: cc.Node, + sceneScore: cc.Label, + gameOverT1: cc.Label, + gameOverT2: cc.Label, + nameLabel: cc.Label, + blackLayerPre: cc.Node, + enemyNode: cc.Node, + playerNode: cc.Node, + leafNode: cc.Node, + carmeraNode: cc.Node, + liziNode: cc.Node, + stoneNode: cc.Node, + gameOverPre: cc.Prefab, + leafPre: cc.Prefab, + enemyPreArr: [cc.Prefab], + newFishPreArr: [cc.Prefab], + BGPre: cc.Prefab, + bianjiePre: cc.Prefab, + BubblePre: cc.Prefab, + PanlongPre: cc.Prefab, + bowenPre: cc.Prefab, + bloodPre: cc.Prefab, + replayButtonPre: cc.Prefab, + mainBtnPre: cc.Prefab, + ripplePre: cc.Prefab, + liziPre: cc.Prefab, + starPre: cc.Prefab, + lightPre: cc.Prefab, + eatMusic: { + default: null, + type: cc.AudioClip + }, + HurtMusic: { + default: null, + type: cc.AudioClip + }, + failMusic: { + default: null, + type: cc.AudioClip + } + }, + judgeCurPlatform: function() { + console.log(navigator.userAgent); + var e, t, a, i, o, n, s, c = (e = navigator.userAgent, + t = /(?:Windows Phone)/.test(e), + a = /(?:SymbianOS)/.test(e) || t, + i = /(?:Android)/.test(e), + o = /(?:Firefox)/.test(e), + /(?:Chrome|CriOS)/.test(e), + { + isTablet: n = /(?:iPad|PlayBook)/.test(e) || i && !/(?:Mobile)/.test(e) || o && /(?:Tablet)/.test(e), + isPhone: s = /(?:iPhone)/.test(e) && !n, + isAndroid: i, + isPc: !s && !i && !a + }); + c.isAndroid || c.isPhone ? this.platFromNum = 1 : c.isTablet ? this.platFromNum = 2 : c.isPc && (this.platFromNum = 3) + }, + adapterScreen: function() { + var e = cc.find("Canvas").getComponent(cc.Canvas); + 2 == this.platFromNum || 3 == this.platFromNum ? (e.fitWidth = !0, + e.fitHeight = !0) : (e.fitWidth = !0, + e.fitHeight = !1) + }, + onLoad: function() { + a.publicGameBool ? o.init() : finishLoad(), + this.platFromNum = 1, + this.judgeCurPlatform(), + this.adapterScreen(), + this.gameOveEndBool = !1, + this.gameOverNum = 0, + this.gameWidth = cc.winSize.width, + this.gameHeight = cc.winSize.height, + a.curType = this.returnCurrentLanType(), + a.playNum >= 1 && (this.startBgNode.active = !1), + a.playNum++, + cc.log(a.playNum), + this.addTouchEvents(), + i.loadingLayer("panel/LinkIconSpr"), + cc.director.getCollisionManager().enabled = !0, + cc.director.getCollisionManager().enabledDebugDraw = !0, + this.touchBeginFlags = !0, + this.Hscale = 1280 / this.gameHeight, + this.Wscale = 720 / this.gameWidth, + this.SizeScale = 0, + this.Hscale >= this.Wscale ? this.SizeScale = this.Wscale : this.SizeScale = this.Hscale, + a.publicGameBool || this.play(), + this.canCreateDisX = 0, + this.canCreateDisY = 0, + this.OffPos = null, + this.speedNum = 400 / this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio, + this.speed = this.speedNum, + this.BGNum = 9, + this.kedouArr = [], + this.qingwaArr = [], + this.haiguiArr = [], + this.xiaojinyuArr = [], + this.jinliArr = [], + this.dianmanArr = [], + this.shayuArr = [], + this.jingyuArr = [], + this.jiaoArr = [], + this.longArr = [], + this.tempArr = [], + this.BGArr = [], + this.fishScaleX = [], + this.fishScaleY = [], + this.myFish = null, + this.lightFlags = !1, + this.boolFlags = !1, + this.gameOverFlags = !1, + this.canMoveFlags = !0, + this.firstFlags = !0, + this.BGNode = cc.find("Canvas/bgLayer"), + this.scale = .4 * this.SizeScale; + for (var e = 0; e < this.playerNode.children.length - 1; e++) + this.changeSize(this.playerNode.children[e]); + this.playerNode.typeID = 1, + this.createMap(), + this.maxCameraMovePosX = Math.abs(this.BGArr[0][this.BGNum - 1].x) - this.gameWidth, + this.maxCameraMovePosY = Math.abs(this.BGArr[0][this.BGNum - 1].y) - this.gameHeight / 2; + for (var t = 0; t < this.leafNode.children.length; t++) { + var n = this.leafNode.children[t].position + , s = 200 * this.SizeScale * this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio; + (n.x > this.maxCameraMovePosX - s || n.x < -this.maxCameraMovePosX + s || n.y > this.maxCameraMovePosY - s || n.y < -this.maxCameraMovePosY + s) && (this.leafNode.children[t].opacity = 180) + } + this.myFish = this.playerNode.getChildByName("kedou"), + this.CreateEnemy(60), + this.waterCount = 0, + this.randnum = 10, + this.angle = 0, + this.rotSpeed = 1500, + this.addSpeed = 65, + this.maxTypeID = 1, + this.canTouchReplay = !1; + for (var c = 0; c < 9; c++) { + var r = this.playerNode.children[c].scaleX; + this.fishScaleX.push(r) + } + for (var h = 0; h < 9; h++) { + var l = this.playerNode.children[h].scaleY; + this.fishScaleY.push(l) + } + this.jingyuNum = 0, + this.jiaoNum = 0, + this.Wu = cc.find("Canvas/Wu"), + this.light1 = cc.find("Canvas/light1"), + this.light2 = cc.find("Canvas/light2"), + this.Wu.width = this.gameWidth, + this.Wu.height = this.gameHeight, + this.stoneNode.zIndex = 50, + this.Wu.setPosition(cc.v2(0, 0)), + this.Wu.zIndex = 1e3, + this.light1.zIndex = 1200, + this.light2.zIndex = 1300, + this.LightNumCount = 0, + this.lightjudeTime = 0, + this.playerNode.zIndex = 9999, + this.leafNode.zIndex = 1e4 + }, + start: function() {}, + play: function() { + console.log(1); + var e = this; + e.enableButtons(); + }, + enableButtons: function() {}, + returnCurrentLanType: function() { + var e = 1; + switch (cc.sys.language) { + case cc.sys.LANGUAGE_CHINESE: + "zh-TW" == window.navigator.language || "zh-tw" == window.navigator.language || "zh-HK" == window.navigator.language || "zh-hk" == window.navigator.language ? (cc.log("\u7e41\u4f53"), + e = 2) : (cc.log("\u7b80\u4f53"), + e = 1); + break; + case cc.sys.LANGUAGE_KOREAN: + e = 4; + break; + default: + e = 3 + } + return e + }, + changeSize: function(e) { + e.scaleX = (e.scaleX - .1) * this.SizeScale, + e.scaleY = (e.scaleY - .1) * this.SizeScale + }, + CreateBG: function() { + for (var e = this.BGNum, t = 0; t < e; t++) { + for (var a = [], i = 0; i < e; i++) { + var o = cc.instantiate(this.BGPre); + this.BGNode.addChild(o), + o.width = this.gameHeight, + o.height = this.gameHeight; + var n = o.width + , c = o.height; + this.canCreateDisX = n * e / 2 - n, + this.canCreateDisY = c * e / 2 - c; + var r = cc.v2(-n * Math.floor(e / 2), c * Math.floor(e / 2)) + , h = cc.v2(r.x + n * t, r.y - c * i); + if (o.setPosition(h), + a.push(o), + t > 0 && t < e - 1 && i > 0 && i < e - 1) { + var l = s.getRandomNum(0, 1, !0); + this.CreateLeaf(l, o) + } + } + this.BGArr.push(a) + } + }, + getCreatePos: function(e, t) { + void 0 === t && (t = 0); + var a = e.width + , i = e.height + , o = s.getRandomNum(-a / 4, a / 4, !1) + , n = s.getRandomNum(-i / 4, i / 4, !1) + , c = cc.v2(o + e.x, n + e.y) + , r = this.leafNode.convertToNodeSpaceAR(this.BGNode.convertToWorldSpaceAR(c)); + if (++t > 100) + return null; + for (var h = 0; h < this.leafNode.children.length; h++) + if (s.pDistance(r, this.leafNode.children[h].position) < 400) + return this.getCreatePos(e, t); + return r + }, + CreateLeaf: function(e, t) { + for (var a = 0; a < e; a++) { + var i = cc.instantiate(this.leafPre) + , o = s.getRandomNum(1, 2, !0) + , n = s.getRandomNum(1, 2, !1) * this.SizeScale; + i.scaleX = n, + i.scaleY = n, + i.angle = s.getRandomNum(-30, 30, !1), + ToolsJs.setTexture(i, "leaf" + o), + this.leafNode.addChild(i); + var c = this.getCreatePos(t); + c ? i.setPosition(c) : i.destroy() + } + }, + CreateBianJie: function() { + for (var e = 1; e < this.BGNum - 1; e++) + if (e == Math.floor(this.BGNum / 2)) { + var t = cc.instantiate(this.bianjiePre); + ToolsJs.setTexture(t, "bian"), + this.BGNode.addChild(t, 100); + var a = this.BGArr[0][e].position; + t.width = 1.8 * this.gameHeight, + t.height = 1.8 * this.gameHeight, + t.angle = 90, + t.setPosition(cc.v2(a.x - this.gameHeight / 4, a.y)), + ToolsJs.setNodeParent(t, this.node), + t.zIndex = 100 + } + for (var i = 1; i < this.BGNum - 1; i++) + if (i == Math.floor(this.BGNum / 2)) { + var o = cc.instantiate(this.bianjiePre); + ToolsJs.setTexture(o, "bian"), + this.BGNode.addChild(o, 100); + var n = this.BGArr[this.BGNum - 1][i].position; + o.width = 1.8 * this.gameHeight, + o.height = 1.8 * this.gameHeight, + o.angle = -90, + o.setPosition(cc.v2(n.x + this.gameHeight / 4, n.y)), + ToolsJs.setNodeParent(o, this.node), + o.zIndex = 100 + } + for (var s = 1; s < this.BGNum - 1; s++) + if (s == Math.floor(this.BGNum / 2)) { + var c = cc.instantiate(this.bianjiePre); + ToolsJs.setTexture(c, "bian"), + this.BGNode.addChild(c, 100); + var r = this.BGArr[s][0].position; + c.width = 1.8 * this.gameHeight, + c.height = 1.8 * this.gameHeight, + c.angle = 0, + c.setPosition(cc.v2(r.x, r.y + this.gameHeight / 4)), + ToolsJs.setNodeParent(c, this.node), + c.zIndex = 100 + } + for (var h = 1; h < this.BGNum - 1; h++) + if (h == Math.floor(this.BGNum / 2)) { + var l = cc.instantiate(this.bianjiePre); + ToolsJs.setTexture(l, "bian"), + this.BGNode.addChild(l, 100); + var m = this.BGArr[h][this.BGNum - 1].position; + l.width = 1.8 * this.gameHeight, + l.height = 1.8 * this.gameHeight, + l.angle = 180, + l.setPosition(cc.v2(m.x, m.y - this.gameHeight / 4)), + ToolsJs.setNodeParent(l, this.node), + l.zIndex = 100 + } + for (var d = 0; d < 4; d++) { + var u = cc.instantiate(this.bianjiePre); + if (this.BGNode.addChild(u, 300 + d), + u.width = 6 * this.gameHeight, + u.height = 6 * this.gameHeight, + 0 == d) { + var g = this.BGArr[0][0].position; + u.angle = 0, + u.setPosition(cc.v2(g.x + this.gameHeight / 3, g.y - this.gameHeight / 3)) + } + if (1 == d) { + var p = this.BGArr[0][this.BGNum - 1].position; + u.angle = 90, + u.setPosition(cc.v2(p.x + this.gameHeight / 3, p.y + this.gameHeight / 3)) + } + if (2 == d) { + var f = this.BGArr[this.BGNum - 1][0].position; + u.angle = -90, + u.setPosition(cc.v2(f.x - this.gameHeight / 3, f.y - this.gameHeight / 3)) + } + if (3 == d) { + var y = this.BGArr[this.BGNum - 1][this.BGNum - 1].position; + u.angle = 180, + u.setPosition(cc.v2(y.x - this.gameHeight / 3, y.y + this.gameHeight / 3)) + } + ToolsJs.setNodeParent(u, this.node), + u.zIndex = 100 + } + }, + createMap: function() { + this.CreateBG(), + this.CreateBianJie(); + var e = cc.instantiate(this.enemyPreArr[0]); + this.enemyNode.addChild(e), + this.changeSize(e), + e.typeID = 1, + e.speed = 100; + var t = this.enemyNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(this.playerNode.position)) + , a = s.getRandomNum(this.gameWidth / 3, 3 * this.gameWidth / 4, !1) + , i = 360 * Math.random() + , o = s.getCircumferencePos(t, a, i); + e.setPosition(o), + this.enemyAction(e) + }, + CameraMove: function(e) { + if (!this.gameOverFlags) { + var t = this.playerNode + , a = 0 + , i = 0; + if (t.x <= -this.maxCameraMovePosX || t.x >= this.maxCameraMovePosX || t.y <= -this.maxCameraMovePosY || t.y >= this.maxCameraMovePosY) { + var o = t.x + this.OffPos.x * this.speed * e + , n = t.y + this.OffPos.y * this.speed * e; + o < -this.maxCameraMovePosX && n > -this.maxCameraMovePosY && n < this.maxCameraMovePosY ? (i = this.speedNum, + a = 0, + t.x = -this.maxCameraMovePosX) : o >= this.maxCameraMovePosX && n >= -this.maxCameraMovePosY && n <= this.maxCameraMovePosY ? (i = this.speedNum, + a = 0, + t.x = this.maxCameraMovePosX) : n >= this.maxCameraMovePosY && o >= -this.maxCameraMovePosX && o <= this.maxCameraMovePosX ? (a = this.speedNum, + i = 0, + t.y = this.maxCameraMovePosY) : n <= -this.maxCameraMovePosY && o >= -this.maxCameraMovePosX && o <= this.maxCameraMovePosX ? (a = this.speedNum, + i = 0, + t.y = -this.maxCameraMovePosY) : o <= -this.maxCameraMovePosX && n <= -this.maxCameraMovePosY ? (a = 0, + i = 0, + t.x = -this.maxCameraMovePosX, + t.y = -this.maxCameraMovePosY) : o <= -this.maxCameraMovePosX && n >= this.maxCameraMovePosY ? (a = 0, + i = 0, + t.x = -this.maxCameraMovePosX, + t.y = this.maxCameraMovePosY) : o >= this.maxCameraMovePosX && n <= -this.maxCameraMovePosY ? (a = 0, + i = 0, + t.x = this.maxCameraMovePosX, + t.y = -this.maxCameraMovePosY) : o >= this.maxCameraMovePosX && n >= this.maxCameraMovePosY ? (a = 0, + i = 0, + t.x = this.maxCameraMovePosX, + t.y = this.maxCameraMovePosY) : (a = this.speedNum, + i = this.speedNum) + } else + a = this.speedNum, + i = this.speedNum; + var s = cc.misc.degreesToRadians(this.angle); + t.x += Math.floor(-Math.sin(s) * a * e), + t.y += Math.floor(Math.cos(s) * i * e), + t.x >= -this.maxCameraMovePosX + this.gameWidth / 4 && t.x <= this.maxCameraMovePosX - this.gameWidth / 4 && t.y >= -this.maxCameraMovePosY + this.gameHeight / 4 && t.y <= this.maxCameraMovePosY - this.gameHeight / 4 ? this.carmeraNode.setPosition(t.position) : t.x > -this.maxCameraMovePosX + this.gameWidth / 4 && t.x < this.maxCameraMovePosX - this.gameWidth / 4 && t.y < -this.maxCameraMovePosY + this.gameHeight / 4 ? this.carmeraNode.setPosition(cc.v2(t.x, -this.maxCameraMovePosY + this.gameHeight / 4)) : t.x > -this.maxCameraMovePosX + this.gameWidth / 4 && t.x < this.maxCameraMovePosX - this.gameWidth / 4 && t.y > this.maxCameraMovePosY - this.gameHeight / 4 ? this.carmeraNode.setPosition(cc.v2(t.x, this.maxCameraMovePosY - this.gameHeight / 4)) : t.y > -this.maxCameraMovePosY + this.gameHeight / 4 && t.y < this.maxCameraMovePosY - this.gameHeight / 4 && t.x > this.maxCameraMovePosX - this.gameWidth / 4 ? this.carmeraNode.setPosition(cc.v2(this.maxCameraMovePosX - this.gameWidth / 4, t.y)) : t.y > -this.maxCameraMovePosY + this.gameHeight / 4 && t.y < this.maxCameraMovePosY - this.gameHeight / 4 && t.x < -this.maxCameraMovePosX + this.gameWidth / 4 ? this.carmeraNode.setPosition(cc.v2(-this.maxCameraMovePosX + this.gameWidth / 4, t.y)) : t.y >= this.maxCameraMovePosY - this.gameHeight / 4 && t.x < -this.maxCameraMovePosY + this.gameWidth / 4 ? this.carmeraNode.setPosition(cc.v2(-this.maxCameraMovePosX + this.gameWidth / 4, this.maxCameraMovePosY - this.gameHeight / 4)) : t.y > this.maxCameraMovePosY - this.gameHeight / 4 && t.x > this.maxCameraMovePosY - this.gameWidth / 4 ? this.carmeraNode.setPosition(cc.v2(this.maxCameraMovePosX - this.gameWidth / 4, this.maxCameraMovePosY - this.gameHeight / 4)) : t.y < -this.maxCameraMovePosY + this.gameHeight / 4 && t.x > this.maxCameraMovePosY - this.gameWidth / 4 ? this.carmeraNode.setPosition(cc.v2(this.maxCameraMovePosX - this.gameWidth / 4, -this.maxCameraMovePosY + this.gameHeight / 4)) : t.y < -this.maxCameraMovePosY + this.gameHeight / 4 && t.x < -this.maxCameraMovePosY + this.gameWidth / 4 && this.carmeraNode.setPosition(cc.v2(-this.maxCameraMovePosX + this.gameWidth / 4, -this.maxCameraMovePosY + this.gameHeight / 4)), + this.BubbleAction() + } + }, + CameraChangeZoomRatio: function(e, t) { + if (e != t) { + var a = this.carmeraNode.getChildByName("MoveCamera"); + a.stopAllActions(), + a.getComponent(cc.Camera).zoomRatio; + var i = !0; + t - e > 0 && (i = !1); + var o = Math.abs(t - e) + , n = Math.floor(o / .01); + a.runAction(cc.sequence(cc.callFunc(function() { + a.getComponent(cc.Camera).zoomRatio != t && (i ? a.getComponent(cc.Camera).zoomRatio -= .01 : a.getComponent(cc.Camera).zoomRatio += .01) + }, this), cc.delayTime(.005)).repeat(n)) + } + }, + getEnemyPos: function(e, t) { + if(!this.BGNode) return; + if (void 0 === t && (t = 0), + !this.gameOverFlags) { + var a = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio + , i = this.enemyNode.convertToNodeSpaceAR(this.BGNode.convertToWorldSpaceAR(this.BGArr[0][this.BGNum - 1].position)) + , o = Math.abs(i.x) - e.width - 400 + , n = Math.abs(i.y) - e.height - 400 + , c = s.getRandomNum(-o, o, !1) + , r = s.getRandomNum(-n, n, !1) + , h = cc.v2(); + if (this.firstFlags || (h = cc.v2(c, r)), + ++t > 100) { + var l = this.playerNode.position + , m = this.enemyNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(this.playerNode.position)) + , d = 0 + , u = 0; + return l.x >= 0 && l.y >= 0 ? (d = -this.gameWidth / a, + u = -this.gameHeight / a) : l.x < 0 && l.y >= 0 ? (d = this.gameWidth / a, + u = -this.gameHeight / a) : l.x >= 0 && l.y < 0 ? (d = -this.gameWidth / a, + u = this.gameHeight / a) : (d = this.gameWidth / a, + u = this.gameHeight / a), + cc.v2(m.x + d, m.y + u) + } + if (this.firstFlags) { + var g = s.getRandomNum(2 * -this.gameHeight, 2 * this.gameHeight, !1) + , p = s.getRandomNum(2 * -this.gameHeight, 2 * this.gameHeight, !1); + if (h = cc.v2(g, p), + s.pDistance(h, cc.v2(0, 0)) < 200) + return this.getEnemyPos(e, t) + } + var f = this.enemyNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(this.playerNode.position)); + if (s.pDistance(h, f) < (this.gameHeight + e.width) / a) + return this.getEnemyPos(e, t); + for (var y = 0; y < this.enemyNode.children.length; y++) + if (s.pDistance(h, this.enemyNode.children[y].position) < 500) + return this.getEnemyPos(e, t); + return h + } + }, + getEnemyID: function(e) { + var t = s.getRandomNum(0, 100, !1) + , a = 0; + return 1 == e ? a = t < 50 ? 0 : t > 50 && t < 75 ? 1 : 2 : 2 == e ? a = t < 20 ? 0 : t > 25 && t < 50 ? 1 : t > 50 && t < 70 ? 2 : 3 : 3 == e ? a = t < 20 ? 0 : t < 35 ? 1 : t < 40 ? 2 : t < 70 ? 3 : 4 : 4 == e ? a = t < 20 ? 1 : t < 35 ? 2 : t < 40 ? 3 : t > 40 && t < 70 ? 4 : 5 : 5 == e ? t <= 15 ? a = 2 : t <= 30 ? a = 3 : t <= 35 ? a = 4 : t <= 60 ? a = 5 : t <= 90 ? a = 6 : this.jingyuNum < 1 && (a = 7, + this.jingyuNum++) : 6 == e ? t <= 15 ? a = 3 : t <= 30 ? a = 4 : t <= 35 ? a = 5 : t <= 65 ? a = 6 : t <= 90 ? this.jingyuNum < 3 ? (a = 7, + this.jingyuNum++) : a = 6 : this.jiaoNum < 2 ? (a = 8, + this.jiaoNum++) : a = this.jingyuNum < 3 ? 7 : 6 : 7 == e ? t <= 20 ? a = 3 : t <= 25 ? a = 4 : t <= 30 ? a = 5 : t <= 35 ? a = 6 : this.jingyuNum < 5 ? (a = 7, + this.jingyuNum++) : this.jiaoNum < 5 ? (a = 8, + this.jiaoNum++) : a = s.getRandomNum(3, 4, !0) : 8 == e ? t < 40 ? a = 3 : t < 45 ? a = 4 : t <= 50 ? a = 5 : t <= 55 ? a = 6 : random <= 60 ? this.jingyuNum < 3 && (a = 7, + this.jingyuNum++) : this.jiaoNum < 3 ? (a = 8, + this.jiaoNum++) : a = s.getRandomNum(4, 5, !0) : a = s.getRandomNum(3, 5, !0), + e >= 4 && a == e - 1 ? this.getEnemyID(e) : a + }, + CreateEnemy: function(e) { + for (var t = 0; t < e; t++) { + var a; + a = t <= .8 * e ? 0 : t > .8 * e && t <= .9 * e ? 1 : 2; + var i = cc.instantiate(this.enemyPreArr[a]); + this.changeSize(i), + i.typeID = a + 1; + var o = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio; + i.speed = (200 - 15 * i.typeID) / o; + var n = this.getEnemyPos(i); + n ? (this.enemyNode.addChild(i, 1), + i.setPosition(n), + i.getComponent("enemyJS").active = !0, + this.enemyAction(i)) : i.destroy() + } + this.firstFlags = !1 + }, + updateCreate: function() { + this.gameOverFlags || this.CreateSingleEnemy(1, this.playerNode.typeID) + }, + CreateSingleEnemy: function(e, t) { + if (!this.gameOverFlags) { + var a = this.enemyNode.children.length + , i = this.playerNode.typeID; + if (i <= 3) { + if (a > 60) + return + } else if (i >= 4 && i <= 5) { + if (a > 50) + return + } else if (i > 5 && i <= 7) { + if (a > 40) + return + } else if (i > 7 && a > 20) + return; + for (var o = 0; o < e; o++) { + var n = this.getEnemyID(t) + , s = cc.instantiate(this.enemyPreArr[n]); + this.changeSize(s), + s.typeID = n + 1; + var c = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio; + s.speed = (200 - 10 * s.typeID) / c; + var r = this.getEnemyPos(s); + r ? (this.enemyNode.addChild(s, 1), + s.setPosition(r), + s.getComponent("enemyJS").active = !0, + this.enemyAction(s)) : s.destroy() + } + } + }, + judgeEnemyPos: function(e) { + var t = this.enemyNode.convertToNodeSpaceAR(this.BGNode.convertToWorldSpaceAR(this.BGArr[0][0].position)) + , a = Math.abs(t.x) + , i = Math.abs(t.y); + e.x > a - this.gameHeight || e.y > i - this.gameHeight || e.x < -a + this.gameHeight || e.y < -i + this.gameHeight ? this.EnemyReturnAction(e) : this.enemyAction(e) + }, + enemyAction: function(e) { + e.stopAllActions(); + var t = s.getRandomNum(500, 1e3, !0) + , a = e.position + , i = s.getRandomNum(-t, t, !0) + , o = s.getRandomNum(-t, t, !0) + , n = cc.v2(a.x + i, a.y + o) + , c = this.enemyNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(n)) + , r = Math.atan2(c.y - a.y, c.x - a.x) + , h = cc.misc.radiansToDegrees(r) - 90 + , l = e.speed + , m = s.pDistance(a, c) / l; + e.runAction(cc.sequence(cc.spawn(cc.moveTo(m, c), cc.rotateTo(.3, h)), cc.callFunc(function() { + this.judgeEnemyPos(e) + }, this))) + }, + EnemyReturnAction: function(e) { + e.stopAllActions(); + var t = e.speed + , a = s.getRandomNum(1e3, 1300, !1) + , i = a / t + , o = Math.atan2(-e.y, -e.x) + , n = cc.misc.radiansToDegrees(o) - 90; + e.runAction(cc.sequence(cc.spawn(cc.moveBy(i, a * Math.cos(o), a * Math.sin(o)), cc.rotateTo(.3, n)), cc.callFunc(function() { + this.judgeEnemyPos(e) + }, this))) + }, + ChasePlayer: function(e) { + e.stopAllActions(); + var t = e.position + , a = this.playerNode.position + , i = Math.atan2(a.y - t.y, a.x - t.x) + , o = e.speed + , n = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio + , c = s.getRandomNum(100 / n, 200 / n, !1) + , r = c / o + , h = cc.misc.radiansToDegrees(i) - 90; + e.runAction(cc.sequence(cc.spawn(cc.moveBy(r, c * Math.cos(i), c * Math.sin(i)), cc.rotateTo(2 * r / 3, h)), cc.callFunc(function() { + this.ChasePlayer(e) + }, this))) + }, + EscapePlayer: function(e) { + e.stopAllActions(); + var t = e.position + , a = this.playerNode.position + , i = Math.atan2(t.y - a.y, t.x - a.x) + , o = e.speed + , n = s.getRandomNum(100, 200, !1) + , c = n / o + , r = cc.misc.radiansToDegrees(i) - 90; + e.runAction(cc.sequence(cc.spawn(cc.moveBy(c, n * Math.cos(i), n * Math.sin(i)), cc.rotateTo(.3, r)), cc.callFunc(function() { + this.enemyAction(e) + }, this))) + }, + judgeIsChange: function(e) { + var t = this; + if (this.tempArr.length >= 2) + if (this.playerNode.typeID <= e) { + this.playerNode.typeID++, + this.playerNode.typeID > this.maxTypeID && (this.maxTypeID = this.playerNode.typeID); + for (var a = this.playerNode.getChildByName("son").convertToNodeSpaceAR(this.playerNode.convertToWorldSpaceAR(this.myFish.position)), i = function(e) { + var i = t.tempArr[e].position + , o = s.pDistance(a, i) / 2e3; + t.tempArr[e].runAction(cc.sequence(cc.spawn(cc.moveTo(o, a).easing(cc.easeQuadraticActionOut()), cc.scaleTo(o, 0, 0), cc.callFunc(function() { + if (e == this.tempArr.length - 1) { + for (var t = 0; t < this.tempArr.length; t++) + this.tempArr[t].destroy(); + this.tempArr.splice(0, this.tempArr.length), + this.createLizi(this.myFish, !0), + this.ChangeBig() + } + }, t)), cc.callFunc(function() {}, t))) + }, o = 0; o < this.tempArr.length; o++) + i(o) + } else + this.playerNode.typeID > e && this.tempArr.length >= 3 && this.EatSmallAction2() + }, + judgePushArr: function(e, t) { + 1 == e ? (this.kedouArr.push(t), + this.tempArr = this.kedouArr, + this.judgeIsChange(e)) : 2 == e ? (this.qingwaArr.push(t), + this.tempArr = this.qingwaArr, + this.judgeIsChange(e)) : 3 == e ? (this.haiguiArr.push(t), + this.tempArr = this.haiguiArr, + this.judgeIsChange(e)) : 4 == e ? (this.xiaojinyuArr.push(t), + this.tempArr = this.xiaojinyuArr, + this.judgeIsChange(e)) : 5 == e ? (this.jinliArr.push(t), + this.tempArr = this.jinliArr, + this.judgeIsChange(e)) : 6 == e ? (this.dianmanArr.push(t), + this.tempArr = this.dianmanArr, + this.judgeIsChange(e)) : 7 == e ? (this.shayuArr.push(t), + this.tempArr = this.shayuArr, + this.judgeIsChange(e)) : 8 == e ? (this.jingyuArr.push(t), + this.tempArr = this.jingyuArr, + this.judgeIsChange(e)) : 9 == e ? (this.jiaoArr.push(t), + this.tempArr = this.jiaoArr, + this.judgeIsChange(e)) : 10 == e && (this.longArr.push(t), + this.tempArr = this.longArr, + this.judgeIsChange(e)) + }, + ChangeBig: function() { + if (!this.gameOverFlags) { + var e = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio; + this.speedNum += this.addSpeed / e; + var t = this.playerNode.typeID; + this.removeSmallFish222(), + 2 == t ? (this.playerNode.getChildByName("kedou").active = !1, + this.playerNode.getChildByName("qingwa").scaleX = 0, + this.playerNode.getChildByName("qingwa").scaleY = 0, + this.playerNode.getChildByName("qingwa").active = !0, + this.myFish = this.playerNode.getChildByName("qingwa")) : 3 == t ? (this.playerNode.getChildByName("qingwa").active = !1, + this.playerNode.getChildByName("haigui").scaleX = 0, + this.playerNode.getChildByName("haigui").scaleY = 0, + this.playerNode.getChildByName("haigui").active = !0, + this.CameraChangeZoomRatio(e, .75), + this.myFish = this.playerNode.getChildByName("haigui")) : 4 == t ? (this.playerNode.getChildByName("haigui").active = !1, + this.playerNode.getChildByName("xiaojinyu").scaleX = 0, + this.playerNode.getChildByName("xiaojinyu").scaleY = 0, + this.playerNode.getChildByName("xiaojinyu").active = !0, + this.myFish = this.playerNode.getChildByName("xiaojinyu"), + this.CameraChangeZoomRatio(e, .65)) : 5 == t ? (this.playerNode.getChildByName("xiaojinyu").active = !1, + this.playerNode.getChildByName("jinli").scaleX = 0, + this.playerNode.getChildByName("jinli").scaleY = 0, + this.playerNode.getChildByName("jinli").active = !0, + this.CameraChangeZoomRatio(e, .55), + this.myFish = this.playerNode.getChildByName("jinli")) : 6 == t ? (this.playerNode.getChildByName("jinli").active = !1, + this.playerNode.getChildByName("dianman").scaleX = 0, + this.playerNode.getChildByName("dianman").scaleY = 0, + this.playerNode.getChildByName("dianman").active = !0, + this.myFish = this.playerNode.getChildByName("dianman"), + this.CameraChangeZoomRatio(e, .45)) : 7 == t ? (this.playerNode.getChildByName("dianman").active = !1, + this.playerNode.getChildByName("shayu").scaleX = 0, + this.playerNode.getChildByName("shayu").scaleY = 0, + this.playerNode.getChildByName("shayu").active = !0, + this.CameraChangeZoomRatio(e, .4), + this.myFish = this.playerNode.getChildByName("shayu")) : 8 == t ? (this.playerNode.getChildByName("shayu").active = !1, + this.playerNode.getChildByName("jingyu").scaleX = 0, + this.playerNode.getChildByName("jingyu").scaleY = 0, + this.playerNode.getChildByName("jingyu").active = !0, + this.CameraChangeZoomRatio(e, .3), + this.myFish = this.playerNode.getChildByName("jingyu")) : 9 == t ? (this.playerNode.getChildByName("jingyu").active = !1, + this.playerNode.getChildByName("jiao").scaleX = 0, + this.playerNode.getChildByName("jiao").scaleY = 0, + this.playerNode.getChildByName("jiao").active = !0, + this.CameraChangeZoomRatio(e, .25), + this.myFish = this.playerNode.getChildByName("jiao")) : 10 == t && (this.playerNode.getChildByName("jiao").active = !1, + this.SummonDragonAction()), + t < 10 && this.myFish.runAction(cc.sequence(cc.scaleTo(.1, this.fishScaleX[t - 1], this.fishScaleY[t - 1]).easing(cc.easeBackOut()), cc.callFunc(function() {}, this))) + } + }, + EatSmallAction2: function() { + var e = this; + if (this.tempArr.length >= 3) { + var t = function() { + var t = e.tempArr[0].typeID; + if (9 == t) + return { + v: void 0 + }; + var a = cc.instantiate(e.newFishPreArr[t]); + a.typeID = t + 1, + e.changeSize(a); + var i = a.scaleX + , o = a.scaleY + , n = e.playerNode.getChildByName("son") + , c = e.getSmallFishPos(a, e.myFish); + a.scaleX = 0, + a.scaleY = 0, + n.addChild(a, 100), + a.setPosition(c); + for (var r = function(n) { + var r = s.pDistance(c, e.tempArr[n].position) / 2e3; + e.tempArr[n].runAction(cc.sequence(cc.spawn(cc.moveTo(r, c).easing(cc.easeQuadraticActionOut()), cc.callFunc(function() { + if (n == this.tempArr.length - 1) { + for (var e = 0; e < this.tempArr.length; e++) + this.tempArr[e].destroy(); + this.tempArr.splice(0, this.tempArr.length), + this.createLizi(a, !1), + a.runAction(cc.sequence(cc.scaleTo(.1, i, o).easing(cc.easeQuarticActionOut()), cc.callFunc(function() { + a.zIndex = 50 * (10 - t - 1), + this.judgePushArr(a.typeID, a) + }, this))) + } + }, e)), cc.callFunc(function() {}, e))) + }, h = 0; h < e.tempArr.length; h++) + r(h) + }(); + if ("object" == typeof t) + return t.v + } + }, + getSmallFishPos: function(e, t, a) { + void 0 === a && (a = 0), + a++; + var i, o = cc.v2(), n = this.playerNode.getChildByName("son"), c = n.convertToNodeSpaceAR(n.parent.convertToWorldSpaceAR(t.position)); + i = Math.random() > .5 ? s.getRandomNum(-t.width / 2 * t.scaleX - e.width / 2 * e.scaleX, -t.width / 2 * t.scaleX - e.width / 4 * e.scaleX, !1) : s.getRandomNum(t.width / 2 * t.scaleX + e.width / 4 * e.scaleX, t.width / 2 * t.scaleX + e.width / 2 * e.scaleX, !1); + var r = s.getRandomNum(-t.height * t.scaleY, -e.height / 3 * e.scaleY, !1) + , h = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio; + if (o = cc.v2(c.x + i * h, c.y + r * h), + a > 100) { + var l = s.getRandomNum(.8, 1.3, !1) + , m = i * l + , d = r * l; + return cc.v2(cc.v2(c.x + m * h, c.y + d * h)) + } + for (var u = 0; u < n.children.length; u++) + if (s.pDistance(o, n.children[u].position) < e.width / 2 * e.scaleX) + return this.getSmallFishPos(e, t, a); + return o + }, + EatSmallAction: function(e, t) { + if (!this.gameOverFlags) { + var a = e.typeID; + 8 == e.type && this.jingyuNum--, + 9 == e.type && this.jiaoNum--; + var i = this.getSmallFishPos(e, t); + e.destroy(), + cc.audioEngine.play(this.eatMusic, !1, 1); + var o = cc.instantiate(this.newFishPreArr[a - 1]); + o.typeID = a, + this.changeSize(o); + var n = o.scaleX + , s = o.scaleY; + this.playerNode.getChildByName("son").addChild(o, 100), + o.setPosition(i), + o.scaleX = 0, + o.scaleY = 0, + o.runAction(cc.sequence(cc.spawn(cc.scaleTo(.1, n, s).easing(cc.easeQuadraticActionOut()), cc.callFunc(function() { + o.zIndex = 50 * (10 - a), + this.judgePushArr(a, o) + }, this)), cc.callFunc(function() {}, this))), + this.CreateSingleEnemy(1, this.playerNode.typeID) + } + }, + JudgeSmallFish: function() { + this.myFish.active = !1, + this.playerNode.getChildByName("son").children.length > 0 ? (cc.audioEngine.play(this.HurtMusic, !1, 1), + this.chooseBiggerFish()) : this.DieAction() + }, + chooseBiggerFish: function() { + if (!this.gameOverFlags) { + var e = cc.instantiate(this.bloodPre); + this.liziNode.addChild(e, 1e3); + var t = this.playerNode.typeID; + 2 == t || 3 == t ? ToolsJs.setTexture(e, "blood2") : ToolsJs.setTexture(e, "blood" + t); + var a = 100 + 25 * t; + e.width = a, + e.height = a; + var i = this.liziNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(this.playerNode.position)); + e.scaleX = 0, + e.scaleY = 0, + e.setPosition(i), + e.runAction(cc.sequence(cc.scaleTo(.5, 1.3, 1.3).easing(cc.easeSineOut()), cc.fadeOut(.3), cc.callFunc(function() {}, this), cc.removeSelf())); + for (var o = this.playerNode.getChildByName("son"), n = this.myFish.angle, c = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio, r = o.children[0].typeID, h = this.playerNode.typeID, l = 0, m = 0; m < o.children.length; m++) + o.children[m].typeID > r && (r = o.children[m].typeID, + l = m); + var d = this.node.convertToNodeSpaceAR(o.convertToWorldSpaceAR(o.children[l].position)); + d.x < -this.maxCameraMovePosX ? d.x = -this.maxCameraMovePosX : d.x > this.maxCameraMovePosX && (d.x = this.maxCameraMovePosX), + d.y > this.maxCameraMovePosY ? d.y = this.maxCameraMovePosY : d.y < -this.maxCameraMovePosY && (d.y = this.maxCameraMovePosY); + var u = this.playerNode.position + , g = s.pDistance(d, u) / 1e3; + this.playerNode.stopAllActions(), + this.playerNode.runAction(cc.sequence(cc.spawn(cc.moveTo(g, d), cc.callFunc(function() { + var e = this; + 1 == r ? (ToolsJs.removeNodeForArr(this.kedouArr, o.children[l]), + this.tempArr = this.kedouArr, + this.myFish = this.playerNode.getChildByName("kedou"), + Math.abs(c - 1) > .05 && this.CameraChangeZoomRatio(c, 1)) : 2 == r ? (ToolsJs.removeNodeForArr(this.qingwaArr, o.children[l]), + this.tempArr = this.qingwaArr, + this.myFish = this.playerNode.getChildByName("qingwa"), + Math.abs(c - 1) > .05 && this.CameraChangeZoomRatio(c, 1)) : 3 == r ? (ToolsJs.removeNodeForArr(this.haiguiArr, o.children[l]), + this.tempArr = this.haiguiArr, + this.myFish = this.playerNode.getChildByName("haigui"), + Math.abs(c - .75) > .05 && this.CameraChangeZoomRatio(c, .75)) : 4 == r ? (ToolsJs.removeNodeForArr(this.xiaojinyuArr, o.children[l]), + this.tempArr = this.xiaojinyuArr, + this.myFish = this.playerNode.getChildByName("xiaojinyu"), + Math.abs(c - .65) > .05 && this.CameraChangeZoomRatio(c, .65)) : 5 == r ? (ToolsJs.removeNodeForArr(this.jinliArr, o.children[l]), + this.tempArr = this.jinliArr, + this.myFish = this.playerNode.getChildByName("jinli"), + Math.abs(c - .55) > .05 && this.CameraChangeZoomRatio(c, .55)) : 6 == r ? (ToolsJs.removeNodeForArr(this.dianmanArr, o.children[l]), + this.tempArr = this.dianmanArr, + this.myFish = this.playerNode.getChildByName("dianman"), + Math.abs(c - .45) > .05 && this.CameraChangeZoomRatio(c, .45)) : 7 == r ? (ToolsJs.removeNodeForArr(this.shayuArr, o.children[l]), + this.tempArr = this.shayuArr, + this.myFish = this.playerNode.getChildByName("shayu"), + Math.abs(c - .4) > .05 && this.CameraChangeZoomRatio(c, .4)) : 8 == r && (ToolsJs.removeNodeForArr(this.jingyuArr, o.children[l]), + this.tempArr = this.shayuArr, + this.myFish = this.playerNode.getChildByName("jingyu"), + Math.abs(c - .3) > .05 && this.CameraChangeZoomRatio(c, .3)), + this.playerNode.typeID = r, + o.removeChild(o.children[l]), + this.myFish.active = !0, + this.myFish.scaleX = this.fishScaleX[r - 1], + this.myFish.scaleY = this.fishScaleY[r - 1], + this.speedNum += (this.playerNode.typeID - h) * this.addSpeed / 2 / c, + this.myFish.angle = n, + this.scheduleOnce(function() { + e.gameOverFlags + }, .1) + }, this)), cc.callFunc(function() {}, this))) + } + }, + createSmallFish: function(e) { + var t; + t = e < 8 ? s.getRandomNum(0, e - 1, !0) : s.getRandomNum(1, 7, !0); + var a = cc.instantiate(this.enemyPreArr[t]); + this.changeSize(a), + a.typeID = t + 1; + var i = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio; + a.speed = 100 / i; + var o = this.getEnemyPos(a); + o ? (this.enemyNode.addChild(a, 1), + a.setPosition(o), + a.getComponent("enemyJS").active = !0, + this.enemyAction(a)) : a.destroy() + }, + removeSomeBigFish222: function() { + var e = this; + if (!(this.gameOverFlags || this.playerNode.typeID <= 2)) { + for (var t = this.enemyNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(this.playerNode.position)), a = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio, i = [], o = 0; o < this.enemyNode.children.length; o++) + this.enemyNode.children[o].typeID >= this.playerNode.typeID + 3 && i.push(this.enemyNode.children[o]); + for (var n = function(o) { + var n = i[o]; + n.runAction(cc.sequence(cc.delayTime(.05 * o), cc.callFunc(function(e) { + if (s.pDistance(t, e.position) > (this.gameHeight + n.height / 2) / a && Math.random() < .7) { + if (this.gameOverFlags) + return; + this.enemyNode.removeChild(n), + this.createSmallFish(this.playerNode.typeID) + } + }, e))) + }, c = 0; c < i.length; c++) + n(c) + } + }, + removeSomeBigFish: function() { + if (!this.gameOverFlags) { + for (var e = this.enemyNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(this.playerNode.position)), t = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio, a = [], i = 0; i < this.enemyNode.children.length; i++) + this.enemyNode.children[i].typeID >= this.playerNode.typeID + 3 && a.push(this.enemyNode.children[i]); + for (var o = 0; o < a.length; o++) + if (s.pDistance(e, a[o].position) > (this.gameHeight / 2 + a[o].height / 2) / t) + return 8 == a[o].typeID && this.jingyuNum--, + 9 == a[o].typeID && this.jiaoNum--, + void this.enemyNode.removeChild(a[o]) + } + }, + removeSmallFish222: function() { + var e = this; + if (!this.gameOverFlags) { + var t = this.enemyNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(this.playerNode.position)) + , a = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio + , i = []; + if (!(this.playerNode.typeID >= 5)) { + for (var o = 0; o < this.enemyNode.children.length; o++) + this.enemyNode.children[o].typeID <= this.playerNode.typeID - 3 && i.push(this.enemyNode.children[o]); + if (i.length > 0) + for (var n = function(o) { + var n = i[o]; + n.runAction(cc.sequence(cc.delayTime(.05 * o), cc.callFunc(function(e) { + if (s.pDistance(t, e.position) > (this.gameHeight + n.height / 2) / a && Math.random() < .5) { + if (this.gameOverFlags) + return; + this.enemyNode.removeChild(n), + this.CreateSingleEnemy(1, this.playerNode.typeID) + } + }, e))) + }, c = 0; c < i.length; c++) + n(c) + } + } + }, + removeSmallFish: function() { + if (!this.gameOverFlags) { + for (var e = this.enemyNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(this.playerNode.position)), t = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio, a = [], i = 0; i < this.enemyNode.children.length; i++) { + var o = this.enemyNode.children[i].typeID; + this.playerNode.typeID >= 4 && o == this.playerNode.typeID && a.push(this.enemyNode.children[i]) + } + if (a.length > 0) + for (var n = 0; n < a.length; n++) + if (s.pDistance(e, a[n].position) > (this.gameHeight / 2 + a[n].height / 2) / t) + return Math.random(), + this.enemyNode.removeChild(a[n]), + void this.CreateSingleEnemy(1, this.playerNode.typeID) + } + }, + createLizi: function(e, t) { + var a = cc.v2() + , i = 0 + , o = 0; + t ? (o = this.myFish.height / 2 * this.myFish.scaleY, + a = this.myFish.position, + i = this.playerNode.typeID) : (o = e.height / 2 * e.scaleY, + a = this.playerNode.convertToNodeSpaceAR(e.parent.convertToWorldSpaceAR(e.position)), + i = e.typeID); + for (var n = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio, c = s.getRandomNum(15, 25, !0), r = s.getRandomNum(0, .05, !1), h = 0; h < c; h++) { + var l; + l = o < 100 ? s.getRandomNum(1, 150, !1) : s.getRandomNum(1, 1.3 * o, !1); + var m = cc.instantiate(this.liziPre); + this.playerNode.addChild(m, 100); + var d = s.getRandomNum(150, 250, !1); + m.scaleX = 0, + m.scaleY = 0, + m.opacity = d, + ToolsJs.setTexture(m, "fishlizi" + i), + m.setPosition(a); + var u = s.getRandomNum(.4 / n, 1.3 / n) + , g = 360 * Math.random() + , p = s.getCircumferencePos(a, l, g) + , f = s.pDistance(a, p) / s.getRandomNum(300, 500, !0); + s.getRandomNum(30, 180, !0), + m.runAction(cc.sequence(cc.delayTime(r), cc.spawn(cc.moveTo(f, p).easing(cc.easeQuarticActionOut()), cc.scaleTo(f, u, u)), cc.fadeOut(.5), cc.callFunc(function() {}, this), cc.removeSelf())) + } + for (var y = s.getRandomNum(10, 20, !0), v = 0; v < y; v++) { + var N; + N = o < 100 ? s.getRandomNum(1, 200, !1) : s.getRandomNum(1, 1.5 * o, !1); + var S = cc.instantiate(this.starPre) + , C = s.getRandomNum(1, 2, !0); + ToolsJs.setTexture(S, "star" + C), + this.playerNode.addChild(S, 100); + var T = s.getRandomNum(150, 250, !1); + S.opacity = T, + S.scaleX = 0, + S.scaleY = 0, + S.setPosition(a); + var A = s.getRandomNum(.8 / n, 1.5 / n) + , x = 360 * Math.random() + , M = s.getCircumferencePos(a, N, x) + , P = s.pDistance(a, M) / s.getRandomNum(300, 500, !0) + , F = s.getRandomNum(180, 360, !0); + S.runAction(cc.sequence(cc.delayTime(r), cc.spawn(cc.moveTo(P, M).easing(cc.easeQuarticActionOut()), cc.scaleTo(P, A, A)), cc.spawn(cc.rotateBy(.5, F), cc.fadeOut(.5)), cc.callFunc(function() {}, this), cc.removeSelf())) + } + }, + createMouseRipple: function(e) { + var t = cc.instantiate(this.ripplePre); + this.liziNode.addChild(t, 100), + t.setPosition(e), + t.scaleX = .5, + t.scaleY = .375, + t.opacity = 200; + var a = s.getRandomNum(.5, 2); + t.runAction(cc.sequence(cc.spawn(cc.scaleTo(.2, a, 3 * a / 4), cc.fadeOut(.4)), cc.removeSelf())) + }, + EatingEffectAction: function(e) { + var t = cc.instantiate(this.bloodPre); + this.liziNode.addChild(t); + var a = e.typeID; + 2 == a || 3 == a ? ToolsJs.setTexture(t, "blood2") : ToolsJs.setTexture(t, "blood" + a); + var i; + i = e.scaleX * e.width >= e.scaleY * e.height ? e.scaleX * e.width : e.scaleY * e.height, + t.width = i, + t.height = i; + var o = e.position + , n = this.liziNode.convertToNodeSpaceAR(this.enemyNode.convertToWorldSpaceAR(o)); + t.scaleX = 0, + t.scaleY = 0, + t.setPosition(n), + t.runAction(cc.sequence(cc.scaleTo(.5, 1.3, 1.3).easing(cc.easeSineOut()), cc.fadeOut(.3), cc.removeSelf())) + }, + EatingEffectAction2: function(e) { + var t = cc.instantiate(this.bloodPre); + this.liziNode.addChild(t); + var a = e.typeID; + 2 == a || 3 == a ? ToolsJs.setTexture(t, "blood2") : ToolsJs.setTexture(t, "blood" + a); + var i; + i = e.scaleX * e.width >= e.scaleY * e.height ? e.scaleX * e.width : e.scaleY * e.height, + t.width = i, + t.height = i; + var o = e.position + , n = this.playerNode.convertToNodeSpaceAR(this.playerNode.getChildByName("son").convertToWorldSpaceAR(o)) + , s = this.liziNode.convertToNodeSpaceAR(this.playerNode.convertToWorldSpaceAR(n)); + t.scaleX = 0, + t.scaleY = 0, + t.setPosition(s), + t.runAction(cc.sequence(cc.scaleTo(.5, 1.3, 1.3).easing(cc.easeSineOut()), cc.fadeOut(.3), cc.removeSelf())) + }, + StoneFadeInAction: function() { + var e = this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio + , t = this.playerNode.position + , a = cc.find("Canvas/RotLiziNode"); + a.setPosition(this.playerNode.position); + for (var i = s.getRandomNum(50, 100, !1), o = Math.floor(i / 2), n = 0; n < i; n++) { + var c = null; + if (n < o) { + c = cc.instantiate(this.starPre); + var r = s.getRandomNum(1, 2, !0); + ToolsJs.setTexture(c, "star" + r) + } else + c = cc.instantiate(this.liziPre), + ToolsJs.setTexture(c, "fishlizi10"); + a.addChild(c, 200), + c.scaleX = 0, + c.scaleY = 0; + var h = s.getRandomNum(50 / e, this.gameWidth / 2 / e, !1) + , l = 360 * Math.random() + , m = s.getCircumferencePos(t, h, l) + , d = a.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(m)) + , u = s.getRandomNum(1 / e, 2 / e, !1) + , g = (s.getRandomNum(50, 100, !1), + s.getRandomNum(180, 360, !1)) + , p = s.getRandomNum(.3, .6, !1) + , f = a.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(t)); + c.setPosition(f); + var y = cc.v2((f.x + d.x) / 2, (f.y + d.y) / 3 * 2) + , v = s.getRandomNum(.05, .2, !1) + , N = s.getRandomNum(.4, .8, !1) + , S = [f, y, d]; + c.runAction(cc.sequence(cc.delayTime(v), cc.spawn(cc.bezierTo(N, S).easing(cc.easeQuadraticActionOut()), cc.scaleTo(N, u, u).easing(cc.easeBounceOut())), cc.spawn(cc.rotateBy(p, g), cc.fadeOut(p)), cc.callFunc(function() {}, this), cc.removeSelf())) + } + this.myFish.opacity = 0, + this.stoneNode.scaleX = 0, + this.stoneNode.scaleY = 0, + this.stoneNode.active = !0, + this.stoneNode.zIndex = 50; + var C = this.stoneNode.getChildByName("stone1") + , T = this.stoneNode.getChildByName("stone2") + , A = this.stoneNode.getChildByName("stone3"); + this.stoneNode.runAction(cc.sequence(cc.delayTime(.15), cc.spawn(cc.scaleTo(.5, .8 * this.SizeScale, .8 * this.SizeScale).easing(cc.easeCircleActionInOut()), cc.callFunc(function() { + this.carmeraNode.runAction(cc.sequence(cc.moveBy(.05, 5, 5), cc.moveBy(.05, -5, -5)).repeat(10)) + }, this)), cc.delayTime(.1), cc.callFunc(function() { + var e = this + , t = cc.instantiate(this.blackLayerPre); + this.node.addChild(t, 10), + t.active = !0, + t.opacity = 200, + t.setPosition(cc.v2(0, 0)), + this.scheduleOnce(function() { + e.LightAction(0, .3), + e.Wu.getComponent(cc.Animation).play("wu"), + e.stoneNode.getChildByName("light0").active = !0 + }, .3), + C.runAction(cc.sequence(cc.rotateBy(1.5, 360).easing(cc.easeQuadraticActionOut()), cc.delayTime(.2), cc.callFunc(function() { + C.getChildByName("light1").active = !0, + C.getChildByName("light2").active = !0 + }, this))), + T.runAction(cc.sequence(cc.delayTime(1.7), cc.rotateBy(1, -360).easing(cc.easeQuadraticActionOut()), cc.delayTime(.2), cc.callFunc(function() { + T.getChildByName("light3").active = !0 + }, this))), + A.runAction(cc.sequence(cc.delayTime(2.9), cc.callFunc(function() { + var e = this; + A.getChildByName("light4").active = !0, + this.scheduleOnce(function() { + e.CreatePanLong() + }, .2) + }, this))) + }, this))) + }, + SummonDragonAction: function() { + var e = this; + this.gameOverFlags = !0, + this.speed = 0, + this.speedNum = 0, + this.enemyNode.removeAllChildren(), + this.enemyNode.destroy(); + for (var t = this.playerNode.getChildByName("son"), a = t.convertToNodeSpaceAR(this.playerNode.convertToWorldSpaceAR(this.myFish.position)), i = 0; i < t.children.length; i++) { + var o = s.getRandomNum(50, 100, !1) + , n = Math.atan2(a.y - t.children[i].y, a.x - t.children[i].x) + , c = cc.misc.radiansToDegrees(n) + 90; + t.children[i].runAction(cc.sequence(cc.spawn(cc.jumpTo(.5, a, o, 1).easing(cc.easeQuadraticActionOut()), cc.scaleTo(.5, 0, 0), cc.rotateTo(0, 1, c)), cc.callFunc(function() {}, this), cc.removeSelf())) + } + this.scheduleOnce(function() { + e.StoneFadeInAction() + }, 1) + }, + CreatePanLong: function() { + var e = this; + this.setHisSocre(this.maxTypeID); + var t = cc.instantiate(this.PanlongPre); + this.node.addChild(t, 100), + t.opacity = 0, + t.scaleX = .9 * this.SizeScale, + t.scaleY = .9 * this.SizeScale; + var n = this.stoneNode.position + , c = cc.v2(-50 * this.SizeScale, n.y - 400 * this.SizeScale) + , r = cc.v2(-50 * this.SizeScale, c.y - this.gameHeight / 4); + t.setPosition(r); + var h = this + , l = cc.instantiate(this.lightPre); + this.node.addChild(l, 30), + l.scaleX = 0, + l.scaleY = 0, + l.setPosition(this.stoneNode.position), + t.runAction(cc.sequence(cc.spawn(cc.moveTo(.5, c), cc.fadeIn(.3), cc.callFunc(function() { + this.LightAction(0, .5); + var e = t.getChildByName("panlong").getComponent(dragonBones.ArmatureDisplay); + e.timeScale = 1.5, + e.playAnimation("newAnimation", 1) + }, this)), cc.delayTime(.3), cc.callFunc(function() { + l.runAction(cc.sequence(cc.scaleTo(.3, 1, 1), cc.callFunc(function() {}, this))) + }, this), cc.delayTime(.6), cc.callFunc(function() { + var e = this + , t = cc.instantiate(this.mainBtnPre); + t.scaleX = .7 * this.SizeScale, + t.scaleY = .7 * this.SizeScale, + this.node.addChild(t, 5e3), + t.opacity = 0, + t.setPosition(cc.v2(-this.gameWidth / 2 + this.gameWidth / 8, this.gameHeight / 2 - this.gameWidth / 8)), + t.runAction(cc.fadeIn(.3)), + t.on(cc.Node.EventType.TOUCH_START, function() {}), + t.on(cc.Node.EventType.TOUCH_END, function() { + console.log("MoreGame"), + window.location.href = o.moreGameUrl + }); + var n = cc.instantiate(this.replayButtonPre); + this.node.addChild(n, 5e3), + n.scaleX = 0, + n.scaleY = 0, + n.setPosition(cc.v2(0, -this.stoneNode.y - 200 * this.Hscale)), + n.runAction(cc.scaleTo(.5, .6 * this.SizeScale, .6 * this.SizeScale).easing(cc.easeBackOut()), cc.callFunc(function() {}, this)); + var s = cc.find("Canvas/nameLabel"); + s.zIndex = 6001, + s.zIndex = 6e3, + s.setPosition(cc.v2(this.stoneNode.x + 150 * this.Wscale, this.stoneNode.y - 200 * this.Hscale)), + this.nameLabel.string = renderConfig.getStrForType("name_10"); + var c = cc.find("Canvas/winLabel"); + c.zIndex = 6e3; + var r = cc.v2(n.x, n.y + n.height / 2 * .7 * this.Hscale + 50 * this.Hscale); + c.setPosition(cc.v2(r.x, r.y - 50 * this.SizeScale)), + c.runAction(cc.sequence(cc.spawn(cc.fadeIn(.3), cc.moveTo(.3, r)), cc.callFunc(function() {}, this))), + this.scheduleOnce(function() { + h.canTouchReplay = !0, + n.runAction(cc.sequence(cc.delayTime(2), cc.scaleTo(.3, .7 * e.SizeScale).easing(cc.easeSineInOut()), cc.scaleTo(.3, .6 * e.SizeScale).easing(cc.easeSineInOut()), cc.rotateTo(.1, 15).easing(cc.easeSineInOut()), cc.rotateTo(.2, -15).easing(cc.easeSineInOut()), cc.rotateTo(.1, 15).easing(cc.easeSineInOut()), cc.rotateTo(.2, -15).easing(cc.easeSineInOut()), cc.rotateTo(.1, 0).easing(cc.easeSineInOut()))).repeatForever(), + n.on(cc.Node.EventType.TOUCH_START, function() {}), + n.on(cc.Node.EventType.TOUCH_END, function() { + h.canTouchReplay && (cc.eventManager.removeAllListeners(), + a.GAME_OVER_BOOL = !0, + a.gameScore = 0, + a.publicGameBool, + console.log("loadScene"), + i.loadingScene("MainGameScene")) + }) + }, .8) + }, this))), + this.scheduleOnce(function() { + e.stoneNode.runAction(cc.sequence(cc.spawn(cc.scaleBy(.5, .8 * e.SizeScale, .8 * e.SizeScale), cc.moveTo(.5, 0, e.gameHeight / 6).easing(cc.easeBackOut()), cc.callFunc(function() { + l.runAction(cc.sequence(cc.moveTo(.5, 0, this.gameHeight / 6).easing(cc.easeBackOut()), cc.callFunc(function() {}, this))) + }, e)), cc.callFunc(function() {}, e))), + e.scheduleOnce(function() { + l.runAction(cc.sequence(cc.rotateBy(10, 360), cc.callFunc(function() {}, e)).repeatForever()) + }, .5), + t.runAction(cc.sequence(cc.spawn(cc.scaleTo(.5, .9 * e.SizeScale, .9 * e.SizeScale), cc.moveTo(.5, -50 * e.SizeScale, e.gameHeight / 6 - 370 * e.SizeScale).easing(cc.easeBackOut())), cc.callFunc(function() {}, e))) + }, 1.3), + this.scheduleOnce(function() { + var t = e.stoneNode.getChildByName("stone1") + , a = e.stoneNode.getChildByName("stone2") + , i = e.stoneNode.getChildByName("stone3"); + t.runAction(cc.sequence(cc.rotateBy(2, 10), cc.callFunc(function() {}, e)).repeatForever()), + a.runAction(cc.sequence(cc.rotateBy(1, -10), cc.callFunc(function() {}, e)).repeatForever()), + i.runAction(cc.sequence(cc.rotateBy(.5, 10), cc.callFunc(function() {}, e)).repeatForever()) + }, 1.8), + this.scheduleOnce(function() { + var a = s.getRandomNum(0, 30, !1); + t.runAction(cc.sequence(cc.spawn(cc.sequence(cc.moveBy(1, 0, -a), cc.moveBy(1, 0, a)), cc.callFunc(function() { + var e = t.getChildByName("panlong").getComponent(dragonBones.ArmatureDisplay); + e.timeScale = .2, + e.playAnimation("newAnimation_\u590d\u52361", 0) + }, e)), cc.callFunc(function() {}, e)).repeatForever()) + }, 1) + }, + LightAction: function(e, t) { + this.lightFlags = !1, + this.light1.scaleX = .9, + this.light1.scaleY = .9, + this.light2.scaleX = .9, + this.light2.scaleY = .9, + this.light1.opacity = 255, + this.light2.opacity = 255, + this.light1.runAction(cc.sequence(cc.delayTime(e), cc.fadeIn(.1), cc.fadeOut(.3), cc.callFunc(function() { + this.lightFlags = !0 + }, this))), + this.light2.runAction(cc.sequence(cc.delayTime(t), cc.fadeIn(.1), cc.fadeOut(.3), cc.callFunc(function() { + this.lightFlags = !0 + }, this))), + this.lightjudeTime = s.getRandomNum(3, 6, !1) + }, + BubbleAction: function() { + if (!this.gameOverFlags) { + var e = cc.instantiate(this.BubblePre); + s.getRandomNum(1, 3, !0), + this.liziNode.addChild(e); + var t = this.liziNode.convertToNodeSpaceAR(this.playerNode.convertToWorldSpaceAR(this.myFish.position)); + e.setPosition(t), + e.scaleX = 0, + e.scaleY = 0; + var a = this.playerNode.angle + 90 + , i = cc.misc.degreesToRadians(a) + , o = s.getRandomNum(.5, 1, !1) + , n = s.getRandomNum(50, 100, !1) + , c = s.getRandomNum(.2, .5, !1) + , r = s.getRandomNum(-50, 50, !1); + e.angle = 360 * Math.random(), + e.runAction(cc.sequence(cc.spawn(cc.moveBy(c, -n * Math.cos(i) + r, -n * Math.sin(i) + r), cc.scaleTo(c, o, o)), cc.fadeOut(.2), cc.removeSelf())) + } + }, + WaterAction: function() { + if (!this.gameOverFlags) + for (var e = s.getRandomNum(2, 3, !0), t = s.getRandomNum(.2, .5, !1), a = s.getRandomNum(-.3, .3), i = this.carmeraNode.position, o = s.getRandomNum(-this.gameWidth, this.gameWidth, !1), n = s.getRandomNum(-this.gameHeight, this.gameHeight, !1), c = cc.v2(i.x + o, i.y + n), r = this.liziNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(c)), h = 0; h < e; h++) { + var l = cc.instantiate(this.bowenPre); + this.liziNode.addChild(l, 1), + l.setPosition(r); + var m = l.scaleX + , d = l.scaleY; + l.scaleX = 0, + l.scaleY = 0, + l.runAction(cc.sequence(cc.delayTime(t * h), cc.scaleTo(1, m + a, d + a), cc.fadeOut(.3), cc.removeSelf())) + } + }, + DieAction: function() { + this.speed = 0, + this.gameOverFlags = !0, + cc.audioEngine.play(this.failMusic, !1, 1), + this.playerNode.opacity = 0; + var e = cc.instantiate(this.bloodPre); + this.liziNode.addChild(e, 1e3); + var t = this.playerNode.typeID; + 2 == t || 3 == t ? ToolsJs.setTexture(e, "blood2") : ToolsJs.setTexture(e, "blood" + t); + var a = 100 + 25 * t; + e.width = a, + e.height = a; + var i = this.liziNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(this.playerNode.position)); + e.scaleX = 0, + e.scaleY = 0, + e.setPosition(i), + e.runAction(cc.sequence(cc.scaleTo(.5, 1.3, 1.3).easing(cc.easeSineOut()), cc.fadeOut(.3), cc.callFunc(function() { + this.playerNode.destroy(), + this.gameEnd() + }, this), cc.removeSelf())) + }, + updateFishRotate: function(e, t, a) { + var i = e.angle % 360; + i = e.angle < 0 ? 360 - Math.abs(i) : i; + var o = t < 0 ? 360 - Math.abs(t) : t; + Math.abs(i - o) > a && Math.abs(i - o) < 360 - a ? Math.abs(i - o) > 180 ? i - o > 180 ? e.angle += a : e.angle -= a : i >= o ? e.angle -= a : e.angle += a : e.angle = t + }, + setHisSocre: function(e) { + cc.sys.localStorage.setItem("ZhaoHuanShenLong_12WS", e) + }, + addTouchEvents: function() { + var e = this; + this.node.on(cc.Node.EventType.TOUCH_START, function(t) { + if (a.GAME_OVER_BOOL && a.noTouchBool && e.touchBeginFlags) { + e.touchBeginFlags = !1; + var i = t.getLocation(); + return e.node.convertToNodeSpaceAR(i), + !0 + } + }, this), + this.node.on(cc.Node.EventType.TOUCH_MOVE, this.on_touch_move, this), + this.node.on(cc.Node.EventType.TOUCH_END, this.on_touch_end, this) + }, + on_touch_move: function(e) { + if (!this.gameOverFlags && this.canMoveFlags) { + this.speed = this.speedNum; + var t = e.getLocation() + , a = this.node.convertToNodeSpaceAR(t) + , i = this.carmeraNode.position + , o = cc.v2(a.x + i.x, a.y + i.y) + , n = this.liziNode.convertToNodeSpaceAR(this.node.convertToWorldSpaceAR(o)); + this.createMouseRipple(n) + } + }, + on_touch_end: function(e) { + if (!this.gameOverFlags) { + this.touchBeginFlags = !0; + var t = e.getLocation(); + this.node.convertToNodeSpaceAR(t) + } + }, + update: function(e) { + if (this.updateCreate(), + this.removeSmallFish(), + this.removeSomeBigFish(), + this.playerNode.typeID, + this.waterCount++, + this.waterCount > this.randnum && (this.WaterAction(), + this.waterCount = 0, + this.randnum = s.getRandomNum(20, 40, !0)), + this.OffPos) { + if (this.gameOverFlags) + return; + var t = cc.v2(0, 1).signAngle(this.OffPos) + , a = cc.misc.radiansToDegrees(t); + this.angle = a, + this.updateFishRotate(this.myFish, this.angle, this.rotSpeed * e); + var i = this.playerNode.getChildByName("son"); + if (i.children.length >= 1) + for (var o = 0; o < i.children.length; o++) + this.updateFishRotate(i.children[o], this.angle, this.rotSpeed * e); + this.CameraMove(e) + } + if (this.lightFlags && (this.LightNumCount += e, + this.LightNumCount >= this.lightjudeTime)) { + this.lightjudeTime = 0; + var n = s.getRandomNum(.5, 1.5, !1) + , c = s.getRandomNum(.5, 1.5, !1); + this.LightAction(n, c) + } + this.gameOverGoToOVer(), + this.gameEndFlags + }, + gameEnd: function() { + a.GAME_OVER_BOOL = !1, + o.gameOverShowText(a.gameScore, 1), + this.node.runAction(cc.sequence(cc.delayTime(.5), cc.callFunc(this.gameEnd1.bind(this)))) + }, + gameEnd1: function() { + var e = cc.instantiate(this.blackLayerPre); + this.node.addChild(e, 2600), + e.width = this.gameWidth, + e.height = this.gameHeight, + e.x = 0, + e.y = 0, + e.opacity = 0, + e.active = !0, + e.runAction(cc.fadeTo(.3, 140)), + this.gameOveEndBool = !0, + 1 == a.curType ? (this.gameOverT1.string = "\u6e38 \u620f \u7ed3 \u675f", + this.gameOverT2.string = "\u70b9 \u51fb \u67e5 \u770b \u5206 \u6570") : 2 == a.curType ? (this.gameOverT1.string = "\u904a \u6232 \u7d50 \u675f", + this.gameOverT2.string = "\u9ede \u64ca \u67e5 \u770b \u5206 \u6578") : 3 == a.curType ? (this.gameOverT1.string = "Game Over", + this.gameOverT2.string = "Click to view the score") : 4 == a.curType && (this.gameOverT1.string = "\uac8c\uc784 \uc885\ub8cc", + this.gameOverT2.string = "\ud074\ub9ad \ud558\uc5ec \uc810\uc218 \ubcf4\uae30"), + this.gameOverT1.node.zIndex = 2999, + this.gameOverT2.node.zIndex = 2999, + this.gameOverT1.node.opacity = 0, + this.gameOverT1.node.x = 0, + this.gameOverT1.node.y = 0, + this.gameOverT1.node.runAction(cc.sequence(cc.delayTime(.2), cc.spawn(cc.fadeIn(.5), cc.moveBy(.5, 0, -50)), cc.callFunc(function() {}, this), cc.callFunc(function() { + e.canTouch = !0 + }, this))), + this.gameOverT2.node.opacity = 0, + this.gameOverT2.node.x = 0, + this.gameOverT2.node.y = 100, + this.gameOverT2.node.runAction(cc.sequence(cc.delayTime(.2), cc.spawn(cc.fadeIn(.5), cc.moveBy(.5, 0, -50)), cc.callFunc(function(e) { + e.runAction(cc.sequence(cc.delayTime(2), cc.scaleTo(.3, 1.2).easing(cc.easeSineInOut()), cc.scaleTo(.3, 1).easing(cc.easeSineInOut()))).repeatForever() + }, this))) + }, + initEndLayer: function() { + var e = cc.instantiate(this.gameOverPre); + this.node.addChild(e, 3e3) + }, + gameOverGoToOVer: function() { + this.gameOveEndBool && (this.gameOverNum++, + this.gameOverNum >= 900 && (this.gameOverNum = 0, + this.gameOveEndBool = !1)) + } + }), + cc._RF.pop() + } + , { + "../MainManage": "MainManage", + "../commonJs/GameConfig": "GameConfig", + "../commonJs/GameUiTools": "GameUiTools", + "../commonJs/mTool_WHQ": "mTool_WHQ", + GameConfig: "GameConfig", + GameUiTools: "GameUiTools", + MainManage: "MainManage", + mTool_WHQ: "mTool_WHQ" + }], + MainManage: [function(e, t) { + "use strict"; + cc._RF.push(t, "946adGkxvdBmZXnlD952XtK", "MainManage"); + var a = e("HttpManagerJs") + , i = e("LanguageSetJs") + , o = e("GameConfig") + , n = e("LoadSceneJs") + , s = e("GameUiTools") + , c = { + gameHttpId: 0, + subScoreHttp: null, + gameNameText: null, + gameInfoText: null, + txtStartText: null, + txtMoreText: null, + txtAgainText: null, + gameEndLText: null, + gameEndL1Text: null, + bgLayRgb: null, + gameEndName1: null, + gameEndName2: null, + gameEndUrl1: null, + gameEndUrl2: null, + langugeType: 1, + ranLinkData: null, + adShowBefore: !1, + adShowAfter: !0, + endLayCol: null, + moreBtnBgCol: null, + moreBtnTextCol: null, + recGameData: null, + recGameUrl: null, + recGameDelPau: null, + recGameDelPer: null, + recGameimg1: null, + recGameimg2: null, + recGamePos: null, + InfoData: null, + endShow0: null, + endShow1: null, + endShow2: null, + endShow3: null, + infoGameName: null, + showText: null, + startText: null, + moreGameText: null, + playAgainText: null, + endHttpShowInfo: null, + moreGameUrl: null, + init: function(e, t, i) { + if (!o.publicGameBool) { + if (o.playNum >= 1) + return; + o.playNum++ + } + o.launchScene = e, + o.Bros = t, + o.caS = i, + this.curType = 1, + //this.getHttpGameId(), + //this.gamePV_load(), + console.log("thisg", this.gameHttpId), + a.httpInitUrl(this.gameHttpId); + var s = this.initLanguage(); + this.gameNameText = s.game_name, + this.gameInfoText = s.game_info, + this.txtStartText = s.txtStart, + this.txtMoreText = s.txtMore, + this.txtAgainText = s.txtAgain, + this.gameEndLText = s.gameEndL, + this.gameEndL1Text = s.gameEndL1, + this.bgLayRgb = s.bgRgb, + this.gameEndName1 = s.gameT2, + this.gameEndName2 = s.gameT3, + this.gameEndUrl1 = s.gameUrl1, + this.gameEndUrl2 = s.gameUrl2, + this.langugeType = this.curType, + o.publicGameBool || n.goToCover(this.adShowBefore, this.adShowAfter, e, t, i) + }, + getHttpGameId1: function() { + var e = window.location.href + , t = e.substring(0, e.lastIndexOf("//") + 2) + , a = window.location.host + , i = t + a + "/Service/Share/index"; + this.gameAllHttp = i, + cc.log("gameAll", this.gameAllHttp), + this.subScoreHttp = t + a + "/Service/Score/index", + this.gamePvHttp = t + a + "/Service/GamePv/index"; + var o = document.URL + , n = 0 + , s = o.substring(o.lastIndexOf("/game/") + 1, o.length).split("/"); + s.length >= 2 && (n = s[1]), + this.gameHttpId = n, + cc.log("gameId", n), + e.substring(e.lastIndexOf("//") + 4, e.lastIndexOf("com") + 3), + this.moreGameUrl = this.httpHead + this.endHttp + }, + getHttpGameId: function() { + var e = window.location.href + , t = e.substring(0, e.lastIndexOf("//") + 2) + , a = window.location.host + , i = t + a + "/Service/Share/index"; + this.gameAllHttp = i, + this.subScoreHttp = t + a + "/Service/Score/index", + this.gamePvHttp = t + a + "/Service/GamePv/index"; + var o = document.URL + , n = o.lastIndexOf("/") + , s = o.substring(0, n) + , c = (n = s.lastIndexOf("/"), + s.substring(n + 1, s.length)); + this.gameHttpId = c, + console.log("gameIdNew", c); + var r = e.substring(e.lastIndexOf("//") + 4, e.lastIndexOf("com") + 3); + -1 == e.search("/game/") ? this.moreGameUrl = t + a : this.moreGameUrl = t + r, + console.log("moreGame", this.moreGameUrl) + }, + gameOverShowText: function(e, t) { + //this.ajaxLoad(this.subScoreHttp, "gameScore=" + e + "&gameId=" + this.gameHttpId + "&gameType=" + t, this.scoreResult) + }, + gamePV_load: function() { + //this.ajaxLoad(this.gamePvHttp, "gameId=" + this.gameHttpId, this.ajaxOnLogoResult) + }, + ajaxOnLogoResult: function() {}, + ajaxLoad: function(e, t, a) { + var i = cc.loader.getXMLHttpRequest(); + i.onreadystatechange = a, + i.open("POST", e), + i.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), + i.send(t) + }, + scoreResult: function(e) { + if (null != e.currentTarget.response && "" != e.currentTarget.response) { + var t = JSON.parse(e.currentTarget.response); + cc.log("endshow", t.content), + c.endHttpShowInfo = t.content + } + }, + initLanguage: function() { + var e = null; + return cc.sys.language == cc.sys.LANGUAGE_CHINESE ? (this.curType = 1, + e = i.language_1) : (cc.log("\u82f1\u6587"), + this.curType = 2, + e = i.language_2), + e + }, + getLinkGameReturn: function(e, t, a, i) { + if (console.log("err0", e), + console.log("err1", t), + console.log("err2", a), + console.log("err3", i), + 0 == e) { + this.ranLinkData = t, + this.adShowBefore = this.ranLinkData.gameSet.adShowBefore, + this.adShowAfter = this.ranLinkData.gameSet.adShowAfter, + this.endLayCol = this.ranLinkData.gameSet.endLayerColor, + this.moreBtnBgCol = this.ranLinkData.gameSet.moreBtnBgCol, + this.moreBtnTextCol = this.ranLinkData.gameSet.moreBtnTextCol, + this.moreGameUrl = this.ranLinkData.gameSet.moreBtnUrl, + this.recGameData = a, + this.ranRecGameData(), + this.InfoData = i, + this.endShow0 = this.InfoData.endShow0, + this.endShow1 = this.InfoData.endShow1, + this.endShow2 = this.InfoData.endShow2, + this.endShow3 = this.InfoData.endShow3, + this.infoGameName = this.InfoData.gameName, + this.showText = this.InfoData.showText, + this.startText = this.InfoData.startText, + this.moreGameText = this.InfoData.moreGame, + this.playAgainText = this.InfoData.rePlay, + this.gameInfoText = this.InfoData.showText, + this.txtStartText = this.InfoData.startText, + this.txtMoreText = this.InfoData.moreGame, + this.txtAgainText = this.InfoData.rePlay, + console.log("LoadMainGameScnee"); + var s = o.launchScene + , c = o.Bros + , r = o.caS; + n.goToCover(this.adShowBefore, this.adShowAfter, s, c, r) + } + }, + ranRecGameData: function() { + if (null != this.recGameData && "" != this.recGameData) { + this.returnBool = !1; + var e = this.recGameData.length + , t = o.returnRanNum(1, e) - 1; + cc.log("ranNNN", t), + this.recGameUrl = this.recGameData[t].data_link, + this.recGameDelPer = this.recGameData[t].delay_per, + this.recGameDelPau = this.recGameData[t].delay_pau, + this.recGameimg1 = this.recGameData[t].img_1, + this.recGameimg2 = this.recGameData[t].img_2, + this.recGamePos = this.recGameData[t].poistion + } + }, + ranLinkUrl: function() { + if (null != this.ranLinkData && this.ranLinkData.gameList && null != this.ranLinkData.gameList) { + var e = this.ranLinkData.gameList.length + , t = o.returnRanNum(1, e) - 1; + return cc.log("templ", t, this.ranLinkData.gameList), + cc.log("url", this.ranLinkData.gameList[0].gameName, this.ranLinkData.gameList[0].gameUrl), + t + } + return null + }, + gotoEndLayer: function() { + this.showGameEndLayer() + }, + showGameEndLayer: function() { + console.log("Gottttttgameend"), + s.loadingLayer("panel/GameOverLayer") + } + }; + t.exports = c, + cc._RF.pop() + } + , { + GameConfig: "GameConfig", + GameUiTools: "GameUiTools", + HttpManagerJs: "HttpManagerJs", + LanguageSetJs: "LanguageSetJs", + LoadSceneJs: "LoadSceneJs" + }], + OtherConfig: [function(e, t) { + "use strict"; + cc._RF.push(t, "608a3yCxFxLC6+PTyEzdmgt", "OtherConfig"); + var a = { + Continue: { + CN: "\u70b9\u51fb\u7ee7\u7eed", + CHT: "\u9ede\u64ca\u7e7c\u7e8c", + EN: "Click Continue", + KOR: "\ud074\ub9ad \ud558\uc5ec \uacc4\uc18d" + }, + name_1: { + CN: "\u874c\u86aa", + CHT: "\u874c\u86aa", + EN: "Tadpole", + KOR: "\uc62c\ucc59\uc774" + }, + name_2: { + CN: "\u9752\u86d9", + CHT: "\u9752\u86d9", + EN: "Frog", + KOR: "\uac1c\uad6c\ub9ac" + }, + name_3: { + CN: "\u4e4c\u9f9f", + CHT: "\u70cf\u9f9c", + EN: "Tortoise", + KOR: "\uac70\ubd81\uc774" + }, + name_4: { + CN: "\u5c0f\u91d1\u9c7c ", + CHT: "\u5c0f\u91d1\u9b5a", + EN: "Goldfish", + KOR: "\uc791\uc740 \uae08\ubd95\uc5b4" + }, + name_5: { + CN: "\u9526\u9ca4\u9c7c", + CHT: "\u9326\u9bc9\u9b5a", + EN: "Koi Fish", + KOR: "\uc789\uc5b4" + }, + name_6: { + CN: "\u7535\u9cd7", + CHT: "\u96fb\u9c3b", + EN: "Eel", + KOR: "\uc804\uae30\ubc40\uc7a5\uc5b4" + }, + name_7: { + CN: "\u9ca8\u9c7c", + CHT: "\u9bca\u9b5a", + EN: "Shark", + KOR: "\uc0c1\uc5b4." + }, + name_8: { + CN: "\u5927\u9cb8\u9c7c", + CHT: "\u5927\u9be8\u9b5a", + EN: "Whale", + KOR: "\ud070 \uace0\ub798" + }, + name_9: { + CN: "\u86df", + CHT: "\u86df", + EN: "Snake", + KOR: "\ud65c\uc6a9\ub2e8\uc5b4\ucc38\uc870" + }, + name_10: { + CN: "\u795e\u9f99", + CHT: "\u795e\u9f8d", + EN: "Dragon", + KOR: "\uc2e0\ub8e1" + }, + getStrForType: function(e) { + var t; + return t = "zh-CN" == window.navigator.language || "zh-cn" == window.navigator.language ? "CN" : "zh-TW" == window.navigator.language || "zh-HK" == window.navigator.language || "ja-JP" == window.navigator.language ? "CHT" : cc.sys.language == cc.sys.LANGUAGE_ENGLISH ? "EN" : cc.sys.language == cc.sys.LANGUAGE_KOREAN ? "KOR" : "EN", + null != this[e] ? this[e][t] : (cc.log("\u6ca1\u6709\u7ffb\u8bd1:" + e), + e) + } + }; + window.renderConfig = a, + window.zIndexAll = { + flower: 1 + }, + cc._RF.pop() + } + , {}], + PoolManager: [function(e, t) { + "use strict"; + cc._RF.push(t, "6ed4diP7FRFIJc3wpj5cOOM", "PoolManager"); + var a = { + PoolDic: { + bulletPool: null + }, + addPoolObj: function(e, t) { + null == this.PoolDic[e] && (this.PoolDic[e] = new cc.NodePool(e)), + this.PoolDic[e].put(t) + }, + getPoolObj: function(e) { + return null == this.PoolDic[e] ? null : this.PoolDic[e].size() > 1 ? this.PoolDic[e].get() : null + }, + clearPool: function(e) { + if (null != this.PoolDic[e]) + return this.PoolDic[e].clear(); + cc.error("\u6ca1\u6709\u6dfb\u52a0\u5bf9\u8c61\u6c60\uff1a", e) + } + }; + window.PoolManager = a, + cc._RF.pop() + } + , {}], + ToolsJs: [function(e, t) { + "use strict"; + cc._RF.push(t, "5eeb3uOnbFGtKGg8ygEwPGB", "ToolsJs"); + var a = { + SpriteFrameDic: {}, + PrefabDic: {}, + AudioClipDic: {}, + storageName: "LILILII", + setStorage: function(e, t, a) { + a && (t = JSON.stringify(t)), + e = this.storageName + e, + cc.sys.localStorage.setItem(e, t) + }, + getStorage: function(e, t) { + e = this.storageName + e; + var a = cc.sys.localStorage.getItem(e); + return isNaN(a) || (a = parseInt(a)), + "NaN" == a.toString() && (a = null), + t && null != a && (a = JSON.parse(a)), + a + }, + logJsonObject: function(e) { + console.log(JSON.stringify(e)) + }, + addNoArr: function(e, t) { + return e.indexOf(t) < 0 && (e.push(t), + !0) + }, + removeNodeForArr: function(e, t) { + return e.splice(e.indexOf(t), 1) + }, + addArrForIndex: function(e, t, a) { + return e.splice(t, 0, a) + }, + newSprite: function(e, t) { + var a = new cc.Node; + return null != this.SpriteFrameDic[e] ? (a.addComponent(cc.Sprite).spriteFrame = this.SpriteFrameDic[e], + null != t && t(a)) : (a.addComponent(cc.Sprite), + loadTools.loadNodeSprite(a, e, t)), + a + }, + setTexture: function(e, t) { + this.SpriteFrameDic[t] ? e.getComponent(cc.Sprite).spriteFrame = this.SpriteFrameDic[t] : loadTools.loadNodeSprite(e, t) + }, + setBtnClickSpr: function(e, t, a, i) { + this.SpriteFrameDic[t] ? (e.getComponent(cc.Button).normalSprite = this.SpriteFrameDic[t], + e.getComponent(cc.Button).hoverSprite = this.SpriteFrameDic[t], + e.getComponent(cc.Sprite).pressedSprite = this.SpriteFrameDic[a], + null != i && i()) : (loadTools.getResSpr(t, function(t) { + e.getComponent(cc.Button).normalSprite = t, + e.getComponent(cc.Button).hoverSprite = t + }), + loadTools.getResSpr(a, function(t) { + e.getComponent(cc.Button).pressedSprite = t, + null != i && i() + })) + }, + setSpriteState: function(e, t) { + var a = 0 == t ? "2d_sprite" : "gray_sprite"; + cc.loader.loadRes("materials/" + a, cc.Material, function(t, a) { + t ? cc.error(t) : e.getComponent(cc.Sprite).setMaterial(0, a) + }) + }, + clonePrefab: function(e, t, a, i, o) { + void 0 === o && (o = 0); + var n = this.PrefabDic[e] + , s = null; + return null != n ? (s = cc.instantiate(n), + t && t.addChild(s, o), + a && (s.position = a), + null != i && i(s)) : loadTools.loadPrefab(e, t, a, i, o), + s + }, + newLabel: function(e, t, a, i, o, n) { + void 0 === a && (a = 20), + void 0 === i && (i = .5), + void 0 === o && (o = .5), + void 0 === n && (n = 0); + var s = new cc.Node; + s.anchorX = i, + s.anchorY = o; + var c = s.addComponent(cc.Label); + return c.string = e, + c.fontSize = a, + t.addChild(s, n), + s + }, + delayTimeCall: function(e, t, a, i) { + e.runAction(cc.sequence(cc.delayTime(a), cc.callFunc(t, i))) + }, + getDistance: function(e, t) { + return e.sub(t).mag() + }, + getDiscForNode: function(e, t) { + var a = this.getToWorldPosAR(e) + , i = this.getToWorldPosAR(t); + return this.getDistance(a, i) + }, + getVectorForPos: function(e, t) { + return t.sub(e) + }, + getStrForNum: function(e, t, a) { + void 0 === t && (t = 1), + void 0 === a && (a = 2); + var i = ""; + return e >= 1e3 * Math.pow(10, a - 1) ? (e /= 1e3, + i = "k", + (e = Math.floor(e * Math.pow(10, t)) / Math.pow(10, t)) >= 1e3 && (e /= 1e3, + i = "M", + e = Math.floor(e * Math.pow(10, t)) / Math.pow(10, t)), + e >= 1e3 && (e /= 1e3, + i = "G", + e = Math.floor(e * Math.pow(10, t)) / Math.pow(10, t)), + e + i) : (e = Math.ceil(e)) + i + }, + getStrForNum2: function(e) { + var t = ""; + if ((e = (e || 0).toString()) <= 3) + return e; + for (; e.length > 3; ) + t = "," + e.slice(-3) + t, + e = e.slice(0, e.length - 3); + return e && (t = e + t), + t + }, + insertStrForIndex: function(e, t, a) { + return e.slice(0, t) + a + e.slice(t) + }, + prefixInteger: function(e, t) { + return void 0 === t && (t = 2), + (Array(t).join("0") + e).slice(-t) + }, + getNodePosForWroldPos: function(e, t) { + return e.convertToNodeSpaceAR(t) + }, + getToNodePos: function(e, t) { + var a = e.parent.convertToWorldSpaceAR(e.position); + return t.convertToNodeSpaceAR(a) + }, + getToWorldPosAR: function(e) { + return e.parent.convertToWorldSpaceAR(e.position) + }, + getToWorldPos: function(e) { + return e.parent.convertToWorldSpace(e.position) + }, + isBoxContainPos: function(e, t) { + return e.getBoundingBox().contains(t) + }, + isBoxContainWorldPos: function(e, t) { + return e.getBoundingBoxToWorld().contains(t) + }, + isRectInterRect: function(e, t) { + return e.getBoundingBoxToWorld().intersects(t.getBoundingBoxToWorld()) + }, + returnRandom: function(e, t) { + return e + Math.floor(Math.random() * (t - e + 1)) + }, + setAngleForParent: function() {}, + setNodeParent: function(e, t, a) { + void 0 === a && (a = !0); + var i = this.getToNodePos(e, t); + e.parent = t, + e.position = i, + a && e.parent && (e.angle += e.parent.angle) + }, + refractionY: function(e) { + return Math.atan2(Math.sin(e), -Math.cos(e)) + }, + refractionX: function(e) { + return Math.atan2(-Math.sin(e), Math.cos(e)) + }, + aginSortArr: function(e) { + for (var t = 0; t < e.length; t++) { + var i = a.returnRandom(0, e.length - 1); + if (i != t) { + var o = e[t]; + e[t] = e[i], + e[i] = o + } + } + }, + returnCurrentLanType: function() { + return cc.sys.language == cc.sys.LANGUAGE_CHINESE ? -1 != cc.sys.languageCode.toLowerCase().indexOf("zh-cn") || -1 != cc.sys.languageCode.toLowerCase().indexOf("zh_cn") ? 1 : 2 : cc.sys.language == cc.sys.LANGUAGE_KOREAN ? 4 : 3 + }, + getBeatItScore: function(e, t, a) { + if (e > a) + return 100; + if (e <= t) { + if (0 == e) + return 0; + var i = e / t * 80 + this.returnRandom(-3, 3); + return Math.max(Math.floor(i), 5) + } + var o = 80 + (e - t) / (a - t) * 20 + this.returnRandom(-3, 3); + return Math.min(Math.floor(o), 99) + }, + sortArrForObject: function(e, t, a) { + void 0 === a && (a = !1), + a ? e.sort(function(e, a) { + return a[t] - e[t] + }) : e.sort(function(e, a) { + return e[t] - a[t] + }) + }, + getDiffNumRandom: function(e, t, a) { + for (var i = [], o = e; o <= t; o++) + i.push(o); + for (var n = i.length - a, s = 0; s < n; s++) { + var c = this.returnRandom(0, i.length - 1); + i.splice(c, 1) + } + return i + }, + writeJson: function(e, t) { + if (cc.sys.isBrowser) { + console.log("\u6d4f\u89c8\u5668"); + var a = new Blob([e],{ + type: "application/json" + }) + , i = document.createElement("a"); + i.download = t, + i.innerHTML = "Download File", + null != window.webkitURL ? i.href = window.webkitURL.createObjectURL(a) : (i.href = window.URL.createObjectURL(a), + i.onclick = destroyClickedElement, + i.style.display = "none", + document.body.appendChild(i)), + i.click() + } + } + }; + window.ToolsJs = a, + cc._RF.pop() + } + , {}], + UIManager: [function(e, t) { + "use strict"; + cc._RF.push(t, "866bf0oenZKtoq5L6EbRayh", "UIManager"); + var a = { + UIDic: {}, + OpenUI: function(e, t, a) { + var o; + "string" == typeof e || (e = e.name), + i && i[e] && (o = i[e]), + null != o ? null == this.UIDic[e] ? (1 == a && this.removeAllUI(), + this.CreateUI(o, t)) : cc.error("\u5df2\u7ecf\u6253\u5f00\u8fc7UI:" + e) : cc.error("\u672a\u627e\u5230\u8be5UI\u7684\u914d\u7f6e\u4fe1\u606f:" + e) + }, + CloseUI: function(e, t) { + var a; + "string" == typeof e || (e = e.name), + null != (a = this.UIDic[e]) ? (a.getComponent(a.config.com) && null != a.getComponent(a.config.com).closeUI ? a.getComponent(a.config.com).closeUI(t) : a.destroy(), + this.UIDic[e] = null) : cc.error("\u5df2\u7ecf\u5173\u95ed\u8fc7UI:" + e) + }, + GetUI: function(e) { + var t = this.UIDic[e]; + return null != t ? t : (cc.log("\u6ca1\u6709\u6253\u5f00UI:" + e), + null) + }, + GetUIForJs: function(e) { + var t = this.UIDic[e]; + return null != t ? t.getComponent(t.config.com) : (cc.error("\u6ca1\u6709\u6253\u5f00UI:" + e), + null) + }, + CreateUI: function(e, t) { + var a = this; + if (null == this.UIDic[e.name]) { + var i = cc.director.getScene().getChildByName("Canvas"); + ToolsJs.clonePrefab(e.resUrl, i, null, function(i) { + i.config = e; + var o = i.getComponent(e.com); + null != o && null != o.openUI && o.openUI(t), + a.UIDic[e.name] = i + }, e.zIndex) + } + }, + removeAllUI: function() { + for (var e in this.UIDic) + this.CloseUI(e) + }, + openTipUI: function(e, t, a, i, o, n, s, c, r) { + void 0 === t && (t = 2), + void 0 === a && (a = 0), + void 0 === n && (n = !1), + void 0 === s && (s = 1); + var h = { + tipStr: e, + glodNum: a, + tipType: t, + yesCall: i, + noCall: o, + isDouble: n, + glodType: s, + yesStr: c || 2 == t ? renderConfig.getStrForType("yesStr") : renderConfig.getStrForType("sureStr"), + noStr: r || renderConfig.getStrForType("noStr") + }; + this.OpenUI("tipUIPanel", h) + } + }; + window.UIManager = a; + var i = { + nextPanel: { + name: "nextPanel", + resUrl: "nextPanel", + com: "nextPanel", + zIndex: 99 + } + }; + window.UIConfig = i, + cc._RF.pop() + } + , {}], + audioTools: [function(e, t) { + "use strict"; + cc._RF.push(t, "f0150VbHHtN2qKswCMoDllB", "audioTools"); + var a = { + bgAudio: null, + isPlayAudio: !0, + isPlayBG: !0, + playBG: function(e, t) { + void 0 === t && (t = .3), + this.isPlayBG && this.isPlayAudio && (this.stopBG(), + null != ToolsJs.AudioClipDic[e] ? this.bgAudio = cc.audioEngine.play(ToolsJs.AudioClipDic[e], !0, t) : this.bgAudio = cc.audioEngine.play(cc.url.raw("resources/music/" + e + ".mp3"), !0, t)) + }, + stopBG: function() { + this.stopAudio(this.bgAudio) + }, + playAudio: function(e, t, a) { + if (void 0 === t && (t = .5), + void 0 === a && (a = !1), + this.isPlayAudio) + return null != ToolsJs.AudioClipDic[e] ? cc.audioEngine.play(ToolsJs.AudioClipDic[e], a, t) : cc.audioEngine.play(cc.url.raw("resources/music/" + e + ".mp3"), a, t) + }, + stopAudio: function(e) { + null != e && (cc.audioEngine.stop(e), + e = null) + }, + newAduioSource: function(e) { + var t; + if (null != ToolsJs.AudioClipDic[e]) + t = ToolsJs.AudioClipDic[e]; + else { + if (null == e) + return console.log("clip\u4e0d\u80fd\u4e3a\u7a7a\uff01"), + null; + t = e + } + var a = new cc.Node; + return a.addComponent(cc.AudioSource).clip = t, + a.getComponent(cc.AudioSource) + } + }; + window.audioTools = a, + cc._RF.pop() + } + , {}], + endBlackJS: [function(e, t) { + "use strict"; + cc._RF.push(t, "10c1aPfzmNB9qwshKRmLq1A", "endBlackJS"); + var a = e("GameConfig"); + cc.Class({ + extends: cc.Component, + properties: {}, + onLoad: function() { + this.mainSelf = cc.find("Canvas").getComponent("MainGameJS") + }, + clickEnterOverLayer: function() { + if (this.node.canTouch && (this.node.canTouch = !1, + a.publicGameBool, + this.mainSelf.initEndLayer(), + this.mainSelf.gameOverT1.node.destroy(), + this.mainSelf.gameOverT2.node.destroy(), + this.mainSelf.enemyNode.children.length > 0)) + for (var e = 0; e < this.mainSelf.enemyNode.children.length; e++) + this.mainSelf.enemyNode.children[e].typeID >= this.mainSelf.maxTypeID && this.mainSelf.enemyNode.children[e].destroy() + }, + start: function() {}, + update: function() {} + }), + cc._RF.pop() + } + , { + GameConfig: "GameConfig" + }], + enemyJS: [function(e, t) { + "use strict"; + cc._RF.push(t, "9bf97/TUWJAtJTYemvyINjL", "enemyJS"), + cc.Class({ + extends: cc.Component, + properties: {}, + onLoad: function() { + this.mainSelf = cc.find("Canvas").getComponent("MainGameJS") + }, + start: function() {}, + onCollisionEnter: function(e, t) { + if (!this.mainSelf.gameOverFlags && (this.mainSelf.collision = t.node, + 666 == t.tag)) { + if (1 == e.tag) { + var a = e.node.typeID; + t.node.typeID > a && (this.mainSelf.createSmallFish(this.mainSelf.playerNode.typeID), + this.mainSelf.EatingEffectAction(e.node), + e.node.destroy()) + } + if (777 == e.tag && t.node.typeID > e.node.typeID) { + cc.audioEngine.play(this.mainSelf.HurtMusic, !1, 1), + this.mainSelf.EatingEffectAction2(e.node); + var i = e.node.typeID; + 1 == i ? ToolsJs.removeNodeForArr(this.mainSelf.kedouArr, e.node) : 2 == i ? ToolsJs.removeNodeForArr(this.mainSelf.qingwaArr, e.node) : 3 == i ? ToolsJs.removeNodeForArr(this.mainSelf.haiguiArr, e.node) : 4 == i ? ToolsJs.removeNodeForArr(this.mainSelf.xiaojinyuArr, e.node) : 5 == i ? ToolsJs.removeNodeForArr(this.mainSelf.jinliArr, e.node) : 6 == i ? ToolsJs.removeNodeForArr(this.mainSelf.dianmanArr, e.node) : 7 == i ? ToolsJs.removeNodeForArr(this.mainSelf.shayuArr, e.node) : 8 == i && ToolsJs.removeNodeForArr(this.mainSelf.jingyuArr, e.node), + e.node.destroy() + } + } + }, + update: function() {} + }), + cc._RF.pop() + } + , {}], + gameOverJs: [function(e, t) { + "use strict"; + cc._RF.push(t, "3621brbM61BsYFG7fM/74TL", "gameOverJs"); + var a = e("GameUiTools") + , i = e("GameConfig") + , o = e("MainManage"); + cc.Class({ + extends: cc.Component, + properties: { + bgLayer: cc.Node, + overScoreT: cc.Label, + overInfoT: cc.Label, + moreBtn: cc.Button, + leftBtn: cc.Button, + maxScoreText: cc.Label, + nametext: cc.Label, + nowFishNode: cc.Node, + maxFishNode: cc.Node, + mainNode: cc.Node, + replayBtn: cc.Node + }, + onLoad: function() { + this.mainSelf = cc.find("Canvas").getComponent("MainGameJS"), + this.canTouchReplay = !1, + this.standardScore = i.standScore, + this.game_max_score = 2 * this.standardScore, + this.endPercent = ToolsJs.getBeatItScore(this.mainSelf.maxTypeID, i.standScore, 2 * i.standScore), + this.rigthBtnGameName = null, + this.rightBtnGameUrl = null, + this.UIPosChange(), + this.addClickBtns(); + var e; + this.returnCurrentLanType(); + this.maxScoreText.string = n, + this.maxScoreText._forceUpdateRenderData(), + e = this.maxScoreText.node.width; + var t = this.maxScoreText.node.children[0] + , a = e + t.width * t.scale * this.maxScoreText.node.scale + 8; + this.maxScoreText.node.x = a / 2 - e, + this.node.opacity = 0, + this.node.runAction(cc.sequence(cc.fadeIn(.3), cc.callFunc(function() { + this.canTouchReplay = !0, + this.replayBtn.runAction(cc.sequence(cc.delayTime(2), cc.scaleTo(.3, .8).easing(cc.easeSineInOut()), cc.scaleTo(.3, .7).easing(cc.easeSineInOut()), cc.rotateTo(.1, 15).easing(cc.easeSineInOut()), cc.rotateTo(.2, -15).easing(cc.easeSineInOut()), cc.rotateTo(.1, 15).easing(cc.easeSineInOut()), cc.rotateTo(.2, -15).easing(cc.easeSineInOut()), cc.rotateTo(.1, 0).easing(cc.easeSineInOut()))).repeatForever() + }, this))), + this.moreBtn.node.y = cc.winSize.height / 2 - 80; + var o = this.mainSelf.maxTypeID + , n = this.getHighScore(); + n ? n < this.mainSelf.maxTypeID && (this.setHisSocre(this.mainSelf.maxTypeID), + n = this.mainSelf.maxTypeID) : (this.setHisSocre(this.mainSelf.maxTypeID), + n = o), + this.typeID = n, + this.endPageDisplay(), + this.nametext.string = renderConfig.getStrForType("name_" + this.mainSelf.maxTypeID) + }, + endPageDisplay: function() { + var e = this.mainSelf.maxTypeID; + this.nowFishNode.getChildByName("fish1").active = !1, + this.nowFishNode.getChildByName("fish" + e).active = !0, + this.maxFishNode.scaleX = .8, + this.maxFishNode.scaleY = .8 + }, + returnCurrentLanType: function() { + var e = 1; + switch (cc.sys.language) { + case cc.sys.LANGUAGE_CHINESE: + "zh-TW" == window.navigator.language || "zh-tw" == window.navigator.language || "zh-HK" == window.navigator.language || "zh-hk" == window.navigator.language ? (cc.log("\u7e41\u4f53"), + e = 2) : (cc.log("\u7b80\u4f53"), + e = 1); + break; + case cc.sys.LANGUAGE_KOREAN: + e = 4; + break; + default: + e = 3 + } + return e + }, + setHisSocre: function(e) { + cc.sys.localStorage.setItem("ZhaoHuanShenLong_12WS", e) + }, + getHighScore: function() { + return cc.sys.localStorage.getItem("ZhaoHuanShenLong_12WS") + }, + UIPosChange: function() { + this.overScoreT.string = i.gameScore, + console.log("lang", o.langugeType); + var e = null + , t = null; + 1 == i.curType ? (e = this.getContentByScore(i.gameScore, o.gameNameText), + t = this.getContentByScore1(i.gameScore, o.gameNameText)) : 2 == i.curType ? (e = this.getContentByScore2_1(i.gameScore, o.gameNameText), + t = this.getContentByScore2(i.gameScore, o.gameNameText)) : 3 == i.curType ? (e = this.getContentByScore3_1(i.gameScore, o.gameNameText), + t = this.getContentByScore3(i.gameScore, o.gameNameText)) : 4 == i.curType && (e = this.getContentByScore4_1(i.gameScore, o.gameNameText), + t = this.getContentByScore4(i.gameScore, o.gameNameText)), + console.log("nihao", o.endHttpShowInfo), + this.overInfoT.string = t, + document.title = e + }, + addClickBtns: function() { + var e = this; + e.moreBtn.node.on(cc.Node.EventType.TOUCH_START, function() {}), + e.moreBtn.node.on(cc.Node.EventType.TOUCH_END, function() { + console.log("MoreGame"), + window.location.href = o.moreGameUrl + }), + e.leftBtn.node.on(cc.Node.EventType.TOUCH_START, function() {}), + e.leftBtn.node.on(cc.Node.EventType.TOUCH_END, function() { + e.canTouchReplay && (cc.eventManager.removeAllListeners(), + i.GAME_OVER_BOOL = !0, + i.gameScore = 0, + i.publicGameBool, + console.log("loadScene"), + a.loadingScene("MainGameScene")) + }) + }, + getPercent: function(e) { + return e <= 0 ? 0 : e <= 30 ? 1 + Math.floor(3 * Math.random()) : e <= 40 ? 5 + Math.floor(10 * Math.random()) : e <= 50 ? 10 + Math.floor(10 * Math.random()) : e <= 60 ? 20 + Math.floor(15 * Math.random()) : e <= 70 ? 30 + Math.floor(15 * Math.random()) : e <= 80 ? 40 + Math.floor(20 * Math.random()) : e <= 100 ? 50 + Math.floor(30 * Math.random()) : e <= 120 ? 60 + Math.floor(30 * Math.random()) : e <= 160 ? 70 + Math.floor(25 * Math.random()) : e <= 190 ? 80 + Math.floor(19 * Math.random()) : e <= 250 ? 91 + Math.floor(9 * Math.random()) : 100 + }, + getContentByScore: function(e, t) { + var a = "\u6211\u771f\u662f\u592a\u5389\u5bb3\uff0c\u5728" + t + "\u4e2d\u7adf\u7136\u5f97\u4e860\u5206\uff0c\u5168\u7403\u53ea\u67091\u4e2a\u4eba\u5f970\u5206\uff01" + , i = parseInt(.3 * this.standardScore) + , o = parseInt(.5 * this.standardScore) + , n = parseInt(.7 * this.standardScore) + , s = parseInt(.9 * this.standardScore) + , c = this.endPercent; + return e > 0 && e <= i ? a = "\u6211\u5728" + t + "\u4e2d\u51fb\u8d25\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u771f\u662f\u592a\u68d2\u4e86\uff0c\u518d\u7ec3\u7ec3\u5c31\u80fd\u8fbe\u5230\u6e38\u5203\u6709\u4f59\u7684\u5883\u754c\uff01" : e > i && e <= this.standardScore ? a = "\u6211\u5728" + t + "\u4e2d\u5f97\u51fb\u8d25\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u771f\u662f\u592a\u68d2\u4e86\uff0c\u518d\u7ec3\u7ec3\u5c31\u80fd\u8fbe\u5230\u6e38\u5203\u6709\u4f59\u7684\u5883\u754c\uff01" : e > this.standardScore && e <= o ? a = "\u6211\u5728" + t + "\u4e2d\u51fb\u8d25\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u8fdb\u5165\u4e86\u4fe1\u624b\u62c8\u6765\u7684\u5883\u754c\uff01" : e > o && e <= n ? a = "\u6211\u5728" + t + "\u4e2d\u51fb\u8d25\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u8fdb\u5165\u4e86\u8fd0\u7528\u81ea\u5982\u7684\u5883\u754c\uff01" : e > n && e <= s ? a = "\u6211\u5728" + t + "\u4e2d\u51fb\u8d25\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u8fbe\u5230\u4e86\u884c\u4e91\u6d41\u6c34\u7684\u5883\u754c\uff01" : e > s && e < this.game_max_score ? a = "\u6211\u5728" + t + "\u4e2d\u51fb\u8d25\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u72ec\u5b64\u6c42\u8d25\uff01" : e >= this.game_max_score && (a = "\u6211\u5728" + t + "\u4e2d\u51fb\u8d25\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u8d85\u8d8a\u4e86\u72ec\u5b64\u6c42\u8d25\uff0c\u5fc3\u6709\u7075\u7280\uff01"), + a + }, + getContentByScore2_1: function(e, t) { + var a = "\u6211\u771f\u662f\u592a\u53b2\u5bb3\uff0c\u5728" + t + "\u4e2d\u7adf\u7136\u5f97\u4e860\u5206\uff0c\u5168\u7403\u53ea\u67091\u500b\u4eba\u5f970\u5206\uff01" + , i = parseInt(.3 * this.standardScore) + , o = parseInt(.5 * this.standardScore) + , n = parseInt(.7 * this.standardScore) + , s = parseInt(.9 * this.standardScore) + , c = this.endPercent; + return e > 0 && e <= i ? a = "\u6211\u5728" + t + "\u4e2d\u64ca\u6557\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u771f\u662f\u592a\u68d2\u4e86\uff0c\u518d\u7df4\u7df4\u5c31\u80fd\u9054\u5230\u904a\u5203\u6709\u9918\u7684\u5883\u754c\uff01" : e > i && e <= this.standardScore ? a = "\u6211\u5728" + t + "\u4e2d\u64ca\u6557\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u771f\u662f\u592a\u68d2\u4e86\uff0c\u518d\u7ec3\u7ec3\u5c31\u80fd\u8fbe\u5230\u6e38\u5203\u6709\u4f59\u7684\u5883\u754c\uff01" : e > this.standardScore && e <= o ? a = "\u6211\u5728" + t + "\u4e2d\u64ca\u6557\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u9032\u5165\u4e86\u4fe1\u624b\u62c8\u4f86\u7684\u5883\u754c\uff01" : e > o && e <= n ? a = "\u6211\u5728" + t + "\u4e2d\u64ca\u6557\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u9032\u5165\u4e86\u904b\u7528\u81ea\u5982\u7684\u5883\u754c\uff01" : e > n && e <= s ? a = "\u6211\u5728" + t + "\u4e2d\u64ca\u6557\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u9054\u5230\u4e86\u884c\u96f2\u6d41\u6c34\u7684\u5883\u754c\uff01" : e > s && e < this.game_max_score ? a = "\u6211\u5728" + t + "\u4e2d\u64ca\u6557\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u7368\u5b64\u6c42\u6557\uff01" : e >= this.game_max_score && (a = "\u6211\u5728" + t + "\u4e2d\u64ca\u6557\u4e86\u5168\u7403" + c + "%\u7684\u73a9\u5bb6\uff0c\u8d85\u8d8a\u4e86\u7368\u5b64\u6c42\u6557\uff0c\u5fc3\u6709\u9748\u7280\uff01"), + a + }, + getContentByScore3_1: function(e, t) { + var a = "I'm awesome\uff0cin" + t + "get 0 score\uff0conly one person in the world has a 0\uff01" + , i = parseInt(.3 * this.standardScore) + , o = parseInt(.5 * this.standardScore) + , n = parseInt(.7 * this.standardScore) + , s = parseInt(.9 * this.standardScore) + , c = this.endPercent; + return e >= this.game_max_score ? a = "I got " + e + " points in the game, defeating all players worldwide, waiting for you to fight!" : e > 0 && e <= i ? a = "I got " + e + " points in the game, really great\uff01" : e > i && e <= this.standardScore ? a = "I got " + e + " points in the game, really great\uff01" : e > this.standardScore && e <= o ? a = "I got " + e + " points in the game , beating out " + c + "% of global players\uff01" : e > o && e <= n ? a = "I got " + e + " points in the game , beating out " + c + "% of global players\uff01" : e > n && e <= s ? a = "I got " + e + " points in the game , beating out 99% of global players\uff01" : e > s && e < this.game_max_score && (a = "I got " + e + " points in the game, it said to be the world's only 10 people to reach this level! Have you?"), + a + }, + getContentByScore4_1: function(e) { + var t = "\ub09c \uc815\ub9d0 \ub300\ub2e8 \ud574, \uac8c\uc784 \uc5d0\uc11c \ubb34\ub824 0 \uc810 \uc744 \ubc1b \uc558 \uc2b5 \ub2c8 \ub2e4. \uc804 \uc138\uacc4 \uc5d0\uc11c 1 \uba85 \ub9cc 0 \uc810 \uc744 \ubc1b \uc558 \uc2b5 \ub2c8 \ub2e4!" + , a = parseInt(.3 * this.standardScore) + , i = parseInt(.5 * this.standardScore) + , o = parseInt(.7 * this.standardScore) + , n = parseInt(.9 * this.standardScore) + , s = this.endPercent; + return e > 0 && e <= a ? t = "\uc800 \ub294 \uac8c\uc784 \uc5d0\uc11c " + e + " \uc810 \uc744 \ud68d\ub4dd \ud558\uc5ec \uc804 \uc138\uacc4 " + s + "% \uc720 \uc800 \ub97c \uaca9\ud30c \ud558 \uc600 \uc2b5 \ub2c8 \ub2e4!" : e > a && e <= this.standardScore ? t = "\uc800 \ub294 \uac8c\uc784 \uc5d0\uc11c " + e + " \uc810 \uc744 \ud68d\ub4dd \ud558\uc5ec \uc804 \uc138\uacc4 " + s + "% \uc720 \uc800 \ub97c \uaca9\ud30c \ud558 \uc600 \uc2b5 \ub2c8 \ub2e4!" : e > this.standardScore && e <= i ? t = "\uc800 \ub294 \uac8c\uc784 \uc5d0\uc11c " + e + " \uc810 \uc744 \ud68d\ub4dd \ud558\uc5ec \uc804 \uc138\uacc4 " + s + "% \uc720 \uc800 \ub97c \uaca9\ud30c \ud558 \uc600 \uc2b5 \ub2c8 \ub2e4!" : e > i && e <= o ? t = "\uc800 \ub294 \uac8c\uc784 \uc5d0\uc11c " + e + " \uc810 \uc744 \ud68d\ub4dd \ud558\uc5ec \uc804 \uc138\uacc4 " + s + "% \uc720 \uc800 \ub97c \uaca9\ud30c \ud558 \uc600 \uc2b5 \ub2c8 \ub2e4!" : e > o && e <= n ? t = "\uc800 \ub294 \uac8c\uc784 \uc5d0\uc11c " + e + " \uc810 \uc744 \ud68d\ub4dd \ud558\uc5ec \uc804 \uc138\uacc4 " + s + "% \uc720 \uc800 \ub97c \uaca9\ud30c \ud558 \uc600 \uc2b5 \ub2c8 \ub2e4!" : e > n && e < this.game_max_score ? t = "\uc800 \ub294 \uac8c\uc784 \uc5d0\uc11c " + e + " \uc810 \uc744 \ud68d\ub4dd \ud558\uc5ec \uc804 \uc138\uacc4 " + s + "% \uc720 \uc800 \ub97c \uaca9\ud30c \ud558 \uc600 \uc2b5 \ub2c8 \ub2e4!" : e >= this.game_max_score && (t = "\uc800 \ub294 \uac8c\uc784 \uc5d0\uc11c " + e + " \uc810 \uc744 \ud68d\ub4dd \ud558\uc5ec \uc804 \uc138\uacc4 " + s + "% \uc720 \uc800 \ub97c \uaca9\ud30c \ud558 \uc600 \uc2b5 \ub2c8 \ub2e4!"), + t + }, + getContentByScore1: function() { + return "\u51fb\u8d25\u4e86\u5168\u7403" + this.endPercent + "%\u7684\u73a9\u5bb6\uff01" + }, + getContentByScore2: function() { + return "\u64ca\u6557\u4e86\u5168\u7403" + this.endPercent + "%\u7684\u73a9\u5bb6\uff01" + }, + getContentByScore3: function() { + return "Beat " + this.endPercent + "% of the world's players!" + }, + getContentByScore4: function() { + return "\uc804 \uc138\uacc4" + this.endPercent + "%\uc720 \uc800 \ub97c \ucc98\uce58 \ud558 \uc600 \uc2b5 \ub2c8 \ub2e4!" + }, + start: function() {}, + update: function() {} + }), + cc._RF.pop() + } + , { + GameConfig: "GameConfig", + GameUiTools: "GameUiTools", + MainManage: "MainManage" + }], + jianceJS: [function(e, t) { + "use strict"; + cc._RF.push(t, "671d7/ykbxBLKzxFW4yZU5f", "jianceJS"), + cc.Class({ + extends: cc.Component, + properties: {}, + onLoad: function() { + this.mainSelf = cc.find("Canvas").getComponent("MainGameJS") + }, + start: function() {}, + onCollisionEnter: function(e, t) { + if (!this.mainSelf.gameOverFlags && 2 == e.tag) { + var a = this.mainSelf.playerNode.typeID; + t.node.parent.typeID > a && this.mainSelf.ChasePlayer(t.node.parent), + t.node.parent.typeID == a && this.mainSelf.EscapePlayer(t.node.parent) + } + }, + onCollisionExit: function(e, t) { + if (2 == e.tag) { + var a = this.mainSelf.playerNode.typeID; + t.node.parent.typeID != a && (t.node.parent.stopAllActions(), + this.mainSelf.enemyAction(t.node.parent)) + } + }, + update: function() {} + }), + cc._RF.pop() + } + , {}], + leafJS: [function(e, t) { + "use strict"; + cc._RF.push(t, "f0114pL/kNBoLIFzlmVI/1D", "leafJS"), + e("../commonJs/mTool_WHQ").getRandomNum; + var a = e("../commonJs/mTool_WHQ"); + cc.Class({ + extends: cc.Component, + properties: {}, + onLoad: function() { + this.mainSelf = cc.find("Canvas").getComponent("MainGameJS"), + this.delay = a.getRandomNum(.5, 5, !1), + this.startScaleX = this.node.scaleX, + this.startScaleY = this.node.scaleY, + this.random = a.getRandomNum(1, 10), + this.random <= 3 && this.Action() + }, + start: function() {}, + Action: function() { + this.node.runAction(cc.sequence(cc.scaleBy(.2, 1.1, 1.1), cc.scaleTo(.2, this.startScaleX, this.startScaleY), cc.scaleBy(.2, 1.1, 1.1), cc.scaleTo(.2, this.startScaleX, this.startScaleY), cc.callFunc(function() { + var e = this; + this.scheduleOnce(function() { + e.random = a.getRandomNum(1, 10), + e.random <= 3 && e.Action(), + e.delay = a.getRandomNum(2, 5, !1) + }, this.delay) + }, this))) + }, + update: function() {} + }), + cc._RF.pop() + } + , { + "../commonJs/mTool_WHQ": "mTool_WHQ" + }], + linkHttpIconJs: [function(e, t) { + "use strict"; + cc._RF.push(t, "95474fr0oNDP7SAidILF03q", "linkHttpIconJs"); + var a = e("MainManage"); + e("GameConfig"), + cc.Class({ + extends: cc.Component, + properties: { + iconSpr: cc.Node, + iconSpr1: cc.Node + }, + onLoad: function() { + if (this._imageArr = [], + this.stopUpdateBool = !0, + this.gameWidth = cc.winSize.width, + this.gameHeight = cc.winSize.height, + null != a.recGameData && "" != a.recGameData && null != a.recGameimg1 && "" != a.recGameimg1) { + var e = 50 - this.gameWidth / 2 + , t = this.gameHeight - 50 - this.gameHeight / 2; + null != a.recGamePos && "" != a.recGamePos && (1 == a.recGamePos ? (e = 50 - this.gameWidth / 2, + t = this.gameHeight - 50 - this.gameHeight / 2) : 2 == a.recGamePos ? (e = this.gameWidth - 50 - this.gameWidth / 2, + t = this.gameHeight - 50 - this.gameHeight / 2) : 3 == a.recGamePos ? (e = this.gameWidth - 50 - this.gameWidth / 2, + t = 50 - this.gameHeight / 2) : 4 == a.recGamePos && (e = 50 - this.gameWidth / 2, + t = 50 - this.gameHeight / 2)); + var i = a.recGameimg1 + , o = a.recGameimg2 + , n = this.iconSpr + , s = this.iconSpr1 + , c = this; + cc.loader.load(i, function(a, i) { + n.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(i), + c.iconSpr.opacity = 0, + c.iconSpr.x = e, + c.iconSpr.y = t, + c._imageArr.push(c.iconSpr) + }), + cc.loader.load(o, function(a, i) { + s.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(i), + c.iconSpr1.opacity = 0, + c.iconSpr1.x = e, + c.iconSpr1.y = t, + c._imageArr.push(c.iconSpr1) + }) + } + this.addTouchEvents() + }, + showLinkPic: function() { + var e, t; + e = null != a.recGameDelPau ? a.recGameDelPau : 6, + cc.log("dMainManager.recGameDelPer", a.recGameDelPer), + t = null != a.recGameDelPer ? a.recGameDelPer : .7, + this._imageArr[0].opacity = 255, + this._imageArr[0].runAction(cc.repeatForever(cc.sequence(cc.delayTime(e), cc.rotateBy(t, 0, 180), cc.callFunc(function() { + this._imageArr[0].setRotation(0), + this._imageArr[0].opacity = 0, + this._imageArr[1].opacity = 255 + }, this), cc.delayTime(e), cc.callFunc(function() { + this.flowerAction(this._imageArr[1], t) + }, this), cc.delayTime(t), cc.callFunc(function() { + this._imageArr[1].opacity = 0, + this._imageArr[0].opacity = 255 + }, this)))) + }, + flowerAction: function(e, t) { + e.runAction(cc.sequence(cc.rotateBy(t, 0, 180), cc.callFunc(function() { + e.setRotation(0) + }))) + }, + start: function() {}, + addTouchEvents: function() { + cc.EventListener.TOUCH_ONE_BY_ONE + }, + update: function() { + this.stopUpdateBool && this._imageArr.length >= 2 && (this.stopUpdateBool = !1, + this.showLinkPic()) + } + }), + cc._RF.pop() + } + , { + GameConfig: "GameConfig", + MainManage: "MainManage" + }], + loadTools: [function(e, t) { + "use strict"; + cc._RF.push(t, "9ea23JPr69LB6K5CalAIXPw", "loadTools"); + var a = { + loadNodeSprite: function(e, t, a) { + e.getComponent(cc.Sprite) ? cc.loader.loadRes(t, cc.SpriteFrame, function(t, i) { + t ? cc.error(t) : (e.getComponent(cc.Sprite).spriteFrame = i, + null != a && a(e)) + }) : cc.error("node\u4e0a\u6ca1\u6709Sprite\u7ec4\u4ef6\uff1a", e) + }, + getResSpr: function(e, t) { + cc.loader.loadRes(e, cc.SpriteFrame, function(e, a) { + e ? cc.error(e) : null != t && t(a) + }) + }, + loadPrefab: function(e, t, a, i, o) { + void 0 === o && (o = 0), + cc.loader.loadRes(e, cc.Prefab, function(e, n) { + if (e) + cc.error(e); + else { + var s = cc.instantiate(n); + t ? t.addChild(s, o) : cc.director.getScene().children[0].addChild(s, 100), + a && (s.position = a), + i && i(s) + } + }) + }, + loadScene: function(e, t) { + cc.director.preloadScene(e, function() { + cc.director.loadScene(e, t) + }) + }, + loadJson: function() {} + }; + window.loadTools = a, + cc._RF.pop() + } + , {}], + mTool_WHQ: [function(e, t) { + "use strict"; + cc._RF.push(t, "fe57af2WNxE+67eFxNClrcq", "mTool_WHQ"); + var a = { + getRandomNum: function(e, t, a) { + return a ? Math.floor(Math.random() * (t - e + 1) + e) : Math.random() * (t - e) + e + }, + cbPosToWorldPos: function(e, t, a, i, o, n) { + var s = a + (e.x - t / 2 + .5) * o + , c = i + (e.y + .5) * n; + return cc.v2(s, c) + }, + worldPosToCbPos: function(e, t, a, i, o, n) { + var s = (e.x - a) / o - .5 + t / 2 + , c = (e.y - i) / n - .5; + return s % 1 == 0 && c % 1 == 0 || (s = Math.round(s), + c = Math.round(c)), + cc.v2(s, c) + }, + judgeInArr: function(e, t) { + for (var a = 0; a < t.length; a++) + if (t[a] === e) + return !0; + return !1 + }, + getAngleByPos: function(e, t) { + var a = t.x - e.x + , i = t.y - e.y; + return 360 * Math.atan(i / a) / (2 * Math.PI) + }, + judgeIntersect: function(e, t, a, i, o, n, s, c) { + return Math.min(e, a) <= Math.max(o, s) && Math.min(n, c) <= Math.max(t, i) && Math.min(o, s) <= Math.max(e, a) && Math.min(t, i) <= Math.max(n, c) && ((o - e) * (i - t) - (a - e) * (n - t)) * ((s - e) * (i - t) - (a - e) * (c - t)) <= 1e-8 && ((e - o) * (c - n) - (s - o) * (t - n)) * ((a - o) * (c - n) - (s - o) * (i - n)) <= 1e-8 + }, + getNormalizeVector: function(e, t) { + return t.sub(e).normalize() + }, + judgeItemOverlapping: function(e, t, a, i, o, n, s, c) { + return !(e + a < o || o + s < e || t + i < n || n + c < t) + }, + getCircumferencePos: function(e, t, a) { + var i = cc.v2(0, 0); + return i.x = e.x + Math.sin(2 * Math.PI / 360 * a) * t, + i.y = e.y + Math.cos(2 * Math.PI / 360 * a) * t, + i + }, + upsetArr: function(e) { + return e.sort(function() { + return Math.random() > .5 ? -1 : 1 + }) + }, + getAudio: function(e, t) { + return cc.sys.os === cc.sys.OS_IOS ? e : t + }, + setLocalData: function(e, t) { + cc.sys.localStorage.setItem(e, t) + }, + getLocalData: function(e) { + return cc.sys.localStorage.getItem(e) + }, + getNodePos: function(e, t, a) { + return a ? e.convertToNodeSpaceAR(t.convertToWorldSpaceAR(a)) : e.convertToNodeSpaceAR(t.convertToWorldSpaceAR()) + }, + judgeArrSame: function(e, t) { + for (var a = 0; a < e.length; a++) + for (var i = 0; i < t.length; i++) + if (e[a] !== t[i]) + return !1; + return !0 + }, + pDistance: function(e, t) { + return e.sub(t).mag() + }, + getAngleByVector: function(e) { + return e.y < 0 ? 360 - cc.v2(1, 0).angle(e) / Math.PI * 180 : cc.v2(1, 0).angle(e) / Math.PI * 180 + }, + getBoundingBoxToNode: function(e, t) { + var a = t.convertToNodeSpaceAR(e.convertToWorldSpaceAR(cc.v2(-e.anchorX * e.width * (e.scaleX / Math.abs(e.scaleX)), -e.anchorY * e.height * (e.scaleY / Math.abs(e.scaleY))))); + return cc.rect(a.x, a.y, e.width * Math.abs(e.scaleX), e.height * Math.abs(e.scaleY)) + }, + degreesToVectors: function(e) { + var t = cc.misc.degreesToRadians(e); + return cc.v2(1, 0).rotate(-t) + }, + vectorsToDegrees: function(e) { + if (Math.abs(e.x) + Math.abs(e.y) !== 0) { + var t = cc.v2(1, 0) + , a = e.signAngle(t); + return cc.misc.radiansToDegrees(a) + } + return 0 + } + }; + t.exports = a, + cc._RF.pop() + } + , {}], + player2JS: [function(e, t) { + "use strict"; + cc._RF.push(t, "f41fcJj045KGo2ubgiEeGaA", "player2JS"), + cc.Class({ + extends: cc.Component, + properties: {}, + onLoad: function() { + this.mainSelf = cc.find("Canvas").getComponent("MainGameJS") + }, + start: function() {}, + onCollisionEnter: function(e, t) { + if (!this.mainSelf.gameOverFlags && 1 == e.tag) { + if (e.flags) + return; + var a = e.node.typeID; + t.node.typeID >= a && (e.tag = 9999, + this.mainSelf.EatSmallAction(e.node, this.mainSelf.myFish)) + } + }, + update: function() {} + }), + cc._RF.pop() + } + , {}], + playerJS: [function(e, t) { + "use strict"; + cc._RF.push(t, "ba7b9DpttpMLq9QsKGwuABo", "playerJS"), + cc.Class({ + extends: cc.Component, + properties: {}, + onLoad: function() { + this.mainSelf = cc.find("Canvas").getComponent("MainGameJS") + }, + start: function() {}, + onCollisionEnter: function(e, t) { + if (!this.mainSelf.gameOverFlags) { + if (this.mainSelf.collision = t.node, + (t.tag = 666) && 1 == e.tag) { + var a = e.node.typeID; + this.mainSelf.playerNode.typeID >= a && (e.tag = 999, + this.mainSelf.EatSmallAction(e.node, t.node), + this.mainSelf.EatingEffectAction(e.node)) + } + if ((t.tag = 2) && 666 == e.tag) { + var i = e.node.typeID; + this.mainSelf.playerNode.typeID < i && this.mainSelf.JudgeSmallFish() + } + } + }, + update: function() {} + }), + cc._RF.pop() + } + , {}], + resArr: [function(e, t) { + "use strict"; + cc._RF.push(t, "d1951bUsVBEo7LtLLUajDCO", "resArr"), + cc.Class({ + extends: cc.Component, + properties: { + SpriteFrameArr: [cc.SpriteFrame], + PrefabArr: [cc.Prefab], + audiosArr: { + type: cc.AudioClip, + default: [] + } + }, + onLoad: function() { + this.addPrefabs(), + this.addSpriteFrame(), + this.addAudio() + }, + addAudio: function() { + this.audioClipDic = {}; + for (var e = 0; e < this.audiosArr.length; e++) + if (this.audiosArr[e]) { + var t = this.audiosArr[e]; + this.audioClipDic[t.name] = t + } + ToolsJs.AudioClipDic = this.audioClipDic + }, + addSpriteFrame: function() { + this.spriteArr = {}; + for (var e = 0; e < this.SpriteFrameArr.length; e++) + if (this.SpriteFrameArr[e]) { + var t = this.SpriteFrameArr[e]; + this.spriteArr[t.name] = t + } + ToolsJs.SpriteFrameDic = this.spriteArr + }, + addPrefabs: function() { + this.prefabsArr = {}; + for (var e = 0; e < this.PrefabArr.length; e++) + if (this.PrefabArr[e]) { + var t = this.PrefabArr[e]; + this.prefabsArr[t.name] = t + } + ToolsJs.PrefabDic = this.prefabsArr + } + }), + cc._RF.pop() + } + , {}], + rockerJS: [function(e, t) { + "use strict"; + cc._RF.push(t, "132743iYdROWry4PeEjE8Fb", "rockerJS"), + cc.Class({ + extends: cc.Component, + properties: { + buttonNode: cc.Node + }, + onLoad: function() { + this.node.opacity = 0, + this.mainSelf = cc.find("Canvas").getComponent("MainGameJS"), + this.max_r = this.node.width / 2; + var e = cc.v2(0, 0); + this.dir = cc.v2(0, 0), + this.buttonNode.setPosition(e), + this.mainSelf.node.on(cc.Node.EventType.TOUCH_END, function() { + this.buttonNode.setPosition(cc.v2(0, 0)) + }, this), + this.mainSelf.node.on(cc.Node.EventType.TOUCH_CANCEL, function() { + this.buttonNode.setPosition(cc.v2(0, 0)) + }, this), + this.mainSelf.node.on(cc.Node.EventType.TOUCH_MOVE, function(e) { + var t = e.getLocation() + , a = this.node.convertToNodeSpaceAR(t) + , i = a.mag(); + this.dir.x = a.x / i, + this.dir.y = a.y / i, + i > this.max_r && (a.x = a.x / i * this.max_r, + a.y = a.y / i * this.max_r), + this.dir.mag() > .5 && i > 0 && (this.mainSelf.OffPos = this.dir), + this.buttonNode.setPosition(a) + }, this), + this.mainSelf.node.on(cc.Node.EventType.TOUCH_START, function(e) { + var t = e.getLocation() + , a = this.mainSelf.node.convertToNodeSpaceAR(t); + this.node.setPosition(a) + }, this) + }, + start: function() {}, + update: function() {} + }), + cc._RF.pop() + } + , {}], + startGameJs: [function(e, t) { + "use strict"; + cc._RF.push(t, "280c3rsZJJKnZ9RqbALVwtK", "startGameJs"), + e("GameUiTools"), + e("HttpManagerJs"); + var a = e("MainManage") + , i = (e("LoadSceneJs"), + e("GameConfig")); + cc.Class({ + extends: cc.Component, + properties: { + showInfoT: cc.Label, + startT: cc.Label + }, + onLoad: function() { + i.publicGameBool && a.init(), + this.showInfoT.string = a.gameInfoText, + this.startT.string = a.txtStartText, + this.node.zIndex = 100, + this.node.on("touchend", function() { + this.node.x = -2e3 + }, this) + }, + update: function() {} + }), + cc._RF.pop() + } + , { + GameConfig: "GameConfig", + GameUiTools: "GameUiTools", + HttpManagerJs: "HttpManagerJs", + LoadSceneJs: "LoadSceneJs", + MainManage: "MainManage" + }], + use_reversed_rotateTo: [function(e, t) { + "use strict"; + cc._RF.push(t, "16142aty4ZFBpA8RBwxcagf", "use_reversed_rotateTo"), + cc.RotateTo._reverse = !0, + cc._RF.pop() + } + , {}] +}, {}, ["HttpManagerJs", "LanguageSetJs", "LoadSceneJs", "MainGameJS", "resArr", "MainManage", "AniTools", "ToolsJs", "audioTools", "loadTools", "GameConfig", "GameUiTools", "mTool_WHQ", "gameOverJs", "linkHttpIconJs", "EventManager", "PoolManager", "UIManager", "EventData", "OtherConfig", "endBlackJS", "enemyJS", "jianceJS", "leafJS", "player2JS", "playerJS", "rockerJS", "startGameJs", "use_reversed_rotateTo"]); \ No newline at end of file diff --git a/assets/main/native/01/01d9854a-77b0-4814-bf68-cc5399d113fe.de749.mp3 b/assets/main/native/01/01d9854a-77b0-4814-bf68-cc5399d113fe.de749.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..81bc52bd75c8a56f7852721de0dfccb2d9287164 GIT binary patch literal 12010 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 literal 0 HcmV?d00001 diff --git a/assets/main/native/0b/0b1d0f37-84b5-47d0-98b1-c6e3c857c183.a72af.png b/assets/main/native/0b/0b1d0f37-84b5-47d0-98b1-c6e3c857c183.a72af.png new file mode 100644 index 0000000000000000000000000000000000000000..6619852af4b06388a00aced1cfc2374756ec2fb3 GIT binary patch literal 123377 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

I)oZg=~r4>Q=ls;?jrX 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 literal 0 HcmV?d00001 diff --git a/assets/main/native/0b/0b777b77-8bbe-405b-9cf7-1ce1e4f0b7d5.0a5d8.png b/assets/main/native/0b/0b777b77-8bbe-405b-9cf7-1ce1e4f0b7d5.0a5d8.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae8c45dda3b1da903a845cdc054626b0bed39f1 GIT binary patch literal 15030 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 literal 0 HcmV?d00001 diff --git a/assets/main/native/10/100eb677-cf92-4725-a791-6c700f6e370a.92fd3.png b/assets/main/native/10/100eb677-cf92-4725-a791-6c700f6e370a.92fd3.png new file mode 100644 index 0000000000000000000000000000000000000000..5ad4436cbc9baffaebac3814474c46733656d780 GIT binary patch literal 28719 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 L{an^LB{Ts5#*jNK literal 0 HcmV?d00001 diff --git a/assets/main/native/13/131f7d7ff.81214.png b/assets/main/native/13/131f7d7ff.81214.png new file mode 100644 index 0000000000000000000000000000000000000000..7c043408e5e5517c503abbc831950f710ec202f0 GIT binary patch literal 74830 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

28|25>mObIlxldoYFSVGUegnG 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®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 literal 0 HcmV?d00001 diff --git a/assets/main/native/1b/1bb33d059.b0532.png b/assets/main/native/1b/1bb33d059.b0532.png new file mode 100644 index 0000000000000000000000000000000000000000..4845791e888d9cfb59baa60a500b48d18e33afc2 GIT binary patch literal 134335 zcmeAS@N?(olHy`uVBq!ia0y~yV1CWO!2E}UnSp_UllOiEh$`@iEM{O}egVRaTdRYz z85kH=2l#}zx)=ET|8woxYtjFIumAsh{lz=+|Nn0P`nmQ0-)sN>UVHLN^w}HHXRk${ zz7qZS3#8!j3z2`nul@gf{qOIa5G~K&O8ozO{okJ(VD61KpXL7ly#Yoy-+xp7|M%wq zzc>EtB8w{QY(9@89VEe{X#IWBKcM$mf3w|NrkO@2~&& zZ&Pwb#>NvnqKlKKtevB}=UM;*1A}=(+;V|87@ri{86|n}I=r!PCVtq~g|_xu=U> z?GkDe>l2=*)@CI< z-{X^8Ke_NxmFR8pI6a_`)hiJwdi5=Ex)KAo=fIUT>t&2{@q;ViN71xMF*d- za;WK*I{Uxu9B1)Do5$7tZy(sja9?;Y^n~-rt&RVmZJASCoVu~^#jZxBYlb`l=eL>G z|KB@j^DOSCK0A{CJczC?S$p`|zKq-794@?He98U6>I47XjuqcJIzjs4*F$>J*LX{% zue9GN==){&qjZk@ndYwT^WI&)xpj5+_Se0$|G#@xUt?wY;kI+ayaw@m+VAY^(k(-t zJJ`P1`RAP5`&xx~{oU2~PI=FpW50i&WF7a5BbJHpLhl&YeJzR46ThDKPgs7%$Ne7r zlJ~ui>U`_@Q2G5=rT+_lF4~#8=chSO-Gds3>)hFSk=ycKSM)vowKrg%6*Q! zu)<3pF2C$*nD3u1SpB~`?cb{o`)!)4SiLUoxs#kxd%eB=(5%_7v{%G?3iK8Hk3-%|RKema2d{Eh}*t|A@gro#HhPL{LN*ZVxWa{b#I8QX?; ztaHEo5i@vSbZnz+$G6!xKK!%)mH38h#qNRwyTd=ui*2jk`|bY8s>R0-yp*vDyT$gY zbn2SvFRe^$)Ah@AkEOlb-SYFR?Z*<&{sr&*@6O~c3;L}0c+c0A;^O;O*J}6jo-X*~ z9P%Tq<(~@E`#8TvmF>IxpT3^^*YDc(1y5pH&u1>md&dx;bnfS;s=ULmGaM&!;iC=K9q7cXnRows~TAa?ZE+lv>JH-2VrfBFBSz)SoS^g1s_^})9p~9MWyYG9-I<&Yj^V9)4T2%{n@(c zUU$tCTZ^wUr{n)__&H%m_^tW3tJa8{w&!uy)IIR^zkW7>$#Bm4@N3gmYU`IU&F;Uu z`@m1f*0)N}xIS8}nb~r8^SeHQ)z`m>Eqz^OnceyzgNAzKV^fxi`9)o z3r);AAGJ?zi>tM*i%;Xfa!tKf*mSNZf9jX8w1w{%-QC7DV|L9>#@orZe=f1fhk5?F zo<1kw@S}Hg|7%aX)A{YyN&Dab&L5Lqu;!WAd6PP?WcRkm$9@`Zwe_p2wrLmK&{#4* z@ORg&DAPP+yP!(r163BGMk-!kYE_rk1eS04U(0rIOET-adn;CM-~1zpamwjRpPP)Q zYAZGzzLod>*1xS!wt4*UyIAeMp*>skMdt*)FUOa7djd1lADaN#<^OZ@JNf3Hkj(=EPTHUB+#@RQoDlXjN0R6A9hzFf9Aud8wc??!fE&*zUfw141dwX>OaC&6jHk4qqR8Rd@|83@*5bm(^mI{++k%beK-6IA>7tJG=LKebbT~ zq7LdVjIwK4BkRR`aMkPLz~dicg}!cX&|7jo`ufdt39(zDSQ7a4 zaGrJj`nI2IihEtR*oNJ)*4cjD;h*2X$?M-neUrMdxovU->Qu$=* zRN3=I@l{nLKfjRhi|M=lcfS+Q+GZzRD!*^}qIZYB3+z45Gea)Lwrh8kG`lXV`|p)r zzdt;E^?q&?i}e~u*5{c{ytPkMOVaOLpDaGf^>{pU+>5iOzIz|1=JT8EUb#f>PWj3e z@9pJd_x>!5<*)p$wyv^V;nvBC>o;fz%3mstFVjw|%~)dfMgGXd?k(%pSFg37;$wSa z4dagJyOX!&rNu1NdX>5C+_T@0mt7@n=kZxcb%Y4;gdM2sCrd1uu=g79xN3t7WM9)QyJ^%o0&}w)?C{J{QmCfQkFh z{|wm3n-*aGK5~7_uL*zWslDo-!{p!a`s~9f(f$)+ANNfP+{3Q>Hb3v;O~qLAlPp_| z%KMmKTU7B)in4I{VRgAg!|;rX8plMNjKldlZO`p_PX*?G+4TAS%vJAi2kX81{njX2 zr8vFlaOkSAYdQ?Od%u3W_V-~#-QuX)E~|&t31ax1Vv+Pj3I@rL?y1>$1cekE@1t_S(UD`=hg*O?Nwf{&P*KhdU-E+w4kx z&7}j8Q@#cFJidQxru4b%6Q^vtvn?~CD0k5=rLPN$N@sIdH=18pS)$(jRpEW6lh?ue zh{|nx)mQh*zZKg5-k{F^&G)-S(dtoF$Di)1w&>tLsC7(vPoHV(TcP9olP}3RmmAwK zPRY=`6?9Sd?7Zklb2)DxoOIeCU*O(LQ}c4MtB+nguX|hDykSk>`nfyJW6r8AdnLi9 zeTCoXcq*r;+O_Y~&$-@=?>?cocYSf@{xX}iZ@!bi<&qd9%i0&eCX_xDl3}>%_Ws-1fbto4^0M4+C#uh0tXHJ^C$p?B*TemH-tG{q zw{fY5_dQCt@2i(?_uF!^?_D#?E}7U_chVGh`38N~apzy)Y`pi`H0d9!xIM%7Y&3hD zl7jY{*@Rnhp{l3Z0>4!@< zXm!cQZRq^FMe@+S#RlAu6<6&%E+e1IS$`++%OkeHQqk+__3nxHx8^ySYq&j&-s5|t z!9CoscgkbV+}Tg(a5D*Q&x;mwI&<@A>=TQB&nAC6e}4PM$GKO&RlnA6`?6hS|5jd~ zeBU1*_$Sv^oPOxgRV8%dc<0AVgTQx(eygWQAD8_7%hGz$zmvvSm0!JmSo~8quyXS9 zx8FFMV^y-l>;Am_pvE`1clGP%FMnM)_Cjv@vW&%Bzt-N!720R~?nmTGtD|>_e_UENM?l$gx4y<4{`K!K zc%JRBZ~tcgMpvP=LS#qezXzUOe*BAG?OSWFmc$|d#pfhr+eH6Y-xDYKewKJ0)~38? z+Ya>=$B(Apx?8->(p^|r$KxkU|HK4-&)=^PpIcpZ>xU`-9O={7mqx{I5?FlY@V`zg zZmU8*)it-jx(gToO?0=@J@L|5e3PBQvu|Hh=LVD;RqV?Qe<%5|`b~iOkBvWCd6$++ zh8KU~yQ_Wu-WLyn>@`mR-u=^1{HSa6d{)Np-tJvq*QE1=53^sN+p+L^%XP`EESneZ z@C|-tvWz)j`Ng-?sj&g}NmIQ7^7*}I7v2B)?)%~w+eD84_S${p<9d$WJd=#A1opD; zy!!OxqSp&mw|l-d@A$959+&jv#Fu?b3F6SnY=jr zbmD%$AIlr>iGZ#x%sN=5ls1F7iZ8h zJ?XY!;P*rCBI~DVf1g_=e(mBd;Wu^pGp0Ay7EFF5(fcpCGIiq)FB#pAb2BHs-!jY3 ztZK#f%1g7KC1>q>$Io}Z<;hp~J&g@DAAj7aG1a{qETx%!WBQ~v-i39?3|Gh9*t_O^ zTteN9c|6Tq&12R+YfU&`e6~bX%9z9E2t(aDsrB-W$)ZW-LL1tvsunZ<_&>Sa>}>99 zD~V}dWgJ%5JdShc@A+^@yZ^ZI|Nrsju1yS%L7SGAoXcFXdW+{wn8+UwtoIoLasi zdC}eNhicv~YvM~dw$6OM($^i1rXTk0+kPkY2J10_N)f9$U+&JG`fY#I)^`pU8%zI* zukpCPxpe!+NV7JPs>%HF+7Az==*K#@6z^@i$^VMI|JRG}TYJA>&o-a9c7AyC?H792 ze;4O(kk8&9pz|YIkpzlyA+BJidOBv+~N-nl)9C zt-Etswp}!Pxmff2uFvN#9DAeuTrMla<`sYa-S^)=3NG6ac5avb^4fQ6U#ne<6@L4= zjMMP9UBq^w4_7AU-}8-VJJQR(S+vY?vG36>M~aV^%YB>bCSLOKhm)9qV$IAix2HsJ zuPPKOb)Nb$r1#33MapUm>h^hGSwH<_o3_B~|9s4E)+t@s{4V+1;k*R?z0&!!Zid|` z-Q6j?Y1f3Tr#qjoyV>}C!Ftozj+aTk=(zSTGZ<-D_J+I$>#``o={zZ9~_u6S6cP-f1aY^>si~ZK(bxRA_ zezZ=i5Lj5vwZ|eOA$rTb17|9J`rOQEIdIb>J6`kEy(f3)gzn#M-d}ZHR`2o89n&3i z?``f?iM*O7I0l=t^4kE*I#}xuw-~6`s5!IhdWct&hO!?%@^{$pXPp& z>#^I7ugkKo#BSsLeRU(xy|?jSuP2*t23_-B=k{PyFYe@g5+-1o)u#=E23cRcUK zy*<3$itP#O^QakLPVC(LI!m;B!3lAJ=WL#zR_dRh(r#z9`>E;XE5Cv->{IV)9!3p=n^HiaPu;;+-j%atLhn}{*-*;dGjjU zJAK_YwfNX%v5NUu9bZj-!1?vI>Xy}y!#;nmSSwd{>vhG8V}&o+>@EHk6<^(SIPXZs zPT_+MUoHoKQGA^@SvY0Ruf6l8NcgMEACWIQcYCYVo{NlSzV8nAG+sZdyEoUv)vEB` zl+zl|&sN9uhA-7CUwl(!6PsO6^X@%a;*SrnS$%R%f4}qds(S_bpILsdJMzP2KC|&| z<+-3tlxLiVAd|__w4_BA51DU&&rNZvT1)a!DOvi z<+c>nNjg@u@2&N1FlQ@FS!=ubMOc%ZLHYDcN&jS*?kQS&I^$~A-DT`;>o;!Qbgb>_ z?tlhs+n-<8NM|cX27mQ?ks-GAXH>>=lPTG+mOZ@CTylMH_xqzi-c_jFj$0UdTy6Vw z=eza7CYJv;>DTgY{ULdwwQ%{-7cZIA3{|qW?pk{LjPG_U&Dj&*RV&n1-QPY@bi)=M z+soS=HEk4G-p5Q@ssl1E(@BM zmCkt-lP|QodG7DX^Zg(1O?)Adc46*$zn=Z?mOtf{Ho1Ihf{KK$`P!2g`!{r!Uf3Ki z&0G1aZF=(DvsTNtZ!C7tTfgB*)ogjSX!g@ZSTcd-`I5cG+jQmMo=J;c zpC`BREze82tUqfX>+gxLmbWt!`sFG6+U8O3q0$& z%k!eXot0ktZytMnVQb2|T~CU3D!h8M{9Xa?sn-_++p}9&@b_gN-(`P7pe!eSzrW(| zRR6EVGlj%0*(2>HTYuQNtY)tee@@lyBf;hJBD0EoJ1#Gc>R1!OrE%mN*Bg=Te;jl# z-xK>(7q{ke-p$zHH~qhsoYTFqzjEP~_@ucdmdAhow7HP8b7w)hMEvyEZ^J_Cx;DQ$ zY+klb)8{+1|J5&uqCrB5V4$cYaBH@htuH zMBWlz<;Q!~u4!Jq78}?9@J~(UHC}noA@u40izLI&)6w715ex9a*}CTpob zcj4DH*B>6NXXU@QP_ATkp`X=VO)OMX%f0yOYQ;qq1Id0AsuXkI#pZUhd zg~~;G6XR#C*0a8HZS~Cq+se#L{5ANOXkXP%m|pv<{f_Zv1>+m<{vX@P?qw$=tF(qi z(%>us(#%0E!_IU>r&@JqXn~* z`Y+B+kzKdGbH(RVY4cO}zdg}yp0o5)?bD-O&Ksxbn$2B5oAdePhZ7F2X`cP={;AXV z?|&Cm%Pw5I%6HpZ3-NvY>CTk}8cB1DDj&^_t(UuXXqB^1(t+bIcZ*7vDxUF`vx)xN zx{2XPT1BWyjo!0c$JEsXY6=~gHgnu8e|ogtS1soGTpd$g*&jJhbM!qo&bRzte<4fm z#Y^Y)r>dtW?`1s~;aWZG>hcU5oo9SKVP^yGiCx`3-=){$MOxbW-9L3sI-3gZS+PiR zea=;J?S`fkUt3#?ug)l)Zac$iik`@^G}V1=r`ZfYmbvNHv9B@zd~<8$CB^7#8+3|} zp453LW;Ap14dqw4DRW=U5179$PQ7g6rQ2>|v!z#y)K9GtNqnriSe@m-SKBx zqlw#QyNaz4nYg}l>YAe5m;{UT*h=AZhE^Z@)!x4YwbsmABU zWA}*vzapabT1*aY5Z`mY>YM1yQjupDn(JTBe!ML>JSM8U;;HYqkDqGdHZX8F>Tm9p z*tA%@-+9S*h4ZWzvu`eo-dJgP^Yo#~ixiaaPTlUPlfo-zvE;^-KfOyfCyJ@vU3|`J zPyhA5ldrTso#WT@!JuTqm%UdQw_N$Ta%I|9BXPCpNbBv6^NgnyGczcp@3%@kH}fmM z#P3~~s;qwO;r=fX>os@vkJB+q>T(ymmv_ywWqEVD`_$SiPhGam^D7h6EZe`~#?83> zyDju)6|A3cr)hRO<*{V;K6}TzFFzdV{&q`d%gm!WIrlF+YY4vD?fxcoC7aTR%Zi)w zOr~TX>kZc8zJ1QK-azt+VATq@>B))jP9D0Gesb-qx#DrNr1jQ)`+7IUC+^{?xIg@p zpYN;QA+=d#)$y>e7CoVBvL3LAb^QN!VNsIFk3YXSi}S=SXMVL^ zJ7;Od-`BgnmKeUMSVGri4W`BRRtl`R?b z9o#qgdue*^O5Yp4eDc|)mKu@$>28lCws@_yIeWbJqk>oN{oNmmlv7q74W1Ocjpx|1 z@I6n{uU=(j;`MjquXC677C!v%HMi-`)U$?ulgdO*?R8K7b61^lO)uq!*Nwwl+EaAq z2=7X=my(D)sipjSn&OfTe?&I)?b-Cduk3EutJs>PneSNpzQ)z0YUgeHEPnl_xxBd{ zqB#lU-t*Ne$LKMn;XQw->(1C!HTq|*b~L}>|fd5 zm?yI5PX1uiH@|VFtBJ&_}rf6k2Z&bq&#;o ztC(xcW@p)?HDBfa#V_7xZZglTO`KHtIUu6UV^&MgMB$e|N>?mNIyb@Kc-r6Z@9!?` z+u3}7KA)l9{O(V8{0-lvEZg@p_~|kiG2Yb*;cCuSFCx#)DhQhH_a?={@ROxam_&@K zP`2gkS__t6|3pfEd=OcCZu#Dqb}|y57&!Yc8@t|H-Q7@WM6KZ_2;G znaSygU;gI4`YJDD=~=db^f|MaH1S=Umk`_^=pPli{`IHa-}~y!W3+xReqw3J`E<5@ zB-^E@PYjQT>3R6S*>!!-6rsE63nntnKA*@`s&%(?Pk{IP=I?&rzsaoM&1POxXC?hQ zV`Srr7V^8hv`AejQ&iwNElDy{9oH+k&p5pWNoIH?z_gsk5!Qy>y1<(Fk z|3CeT;THQ%Hs6Ckm?8@0CnP#4qW*QR|>FZSKdVu_GU(ajKH?7)&Ue-uxOj$2F(VqAB zb(50VZ*O95nz!~$+OT74!8VtT>c_K9`F=5evgUla@CZxUr2U24>hw3*{rQ+JSpD9; z&LGR@V4jYj_3e`)LwN7N-_m0>?OT+cyDc=uHuF6$+;7rQzyge=Xos3e_ z+%v3St#=kPzdrb9ThX&B$?ZQQj~cyrw!*eHum9%Skm-Exk^PIlUSA(y|G4V*--P!2 zT-%QRXOgu3x^UOalZT`JY&&-CeN>6I^rF%Uf&83xr;pbNzn0o?{nde07ps5k1V1Y+ zx^ZAyQb~3ArCIC49WCoZmNUN5_|tZ60T-aipw@v)^x9>8w>1)c{va7Byl@IRxyCd90(vopK(=FKt z+D5h957l|QH|pE6UEVUuVfJSJ)*A~Zu^8k|mutd z0(P#J^;9m^`+iR+&_I`|W@W+DET?iS#%sG599F({Q%?EjzAG&Lk*p7dKUvKYn>wlN zr`bZafW`MM?`GJlWtTP|x}y?Ts&Z_1+08jyvaf|0)cjAZF^@QIHfz0q)PJ>&{r%0m z?(?2tmN+i;BIwSMw?WCDxvwuW?s4Xp6qoca?sTqx$MkJggud;$k1QRt{wZDCV|;H$ zn^VH{^fgo8P1v%2tId!0m%E?lIQOj0Pu$fEx8=$@?NxVk6uvM$`Tl9y zv5jBT_rCQ_s$U~wA7>`rxlrr_|AWV0 z^TKpLmXG&Gbj|t)+)wi>K#LB2HiOJj?pciXOni%hSaz`Bt!F6_j%C0pGDcyg;Y$jF6y7dEea zvNqs+^~d8!-^XMhpL8R7h1+!VEB9DGdbY>i-u~V7^&9n0*<$|%+g~@I*=-xqC0`xq zZ@=RF!C58p`?EWFrJgKHxVE-(|B8coQx0seJCU5e&qCn&wa&)aTke`yFIY0}O{{&? zFymL0)0ef{6F2xC+G}$-7(Vo!XdvTVM~1{xspb0M*AjzGv>5 zNoLf3}4QQ{ysU`uLiw zrqO=)Z(b9av$Mx=TE^UkjZ$~te7pW_`oa+QS5tR!#}pg(#5KOW{dPt2wl6_7`@PtH zt!Mktn(wpfeE3!Nta}lck7YEMPk5npJKXb{-|ag;Rla=PKINC-4(mV9>si-qznhjj zt2^T_XQ}%6mC~X!j@mQ4mR(;Sb~Mvw8Sl~)whz{wGJBJ7*TODQ*gJ&Bb)Apo^`mX) z6W9GSiqIFiz25Wx z^1Y@zH@`YGz1l~5>XkQl=7d;1RBhUCvvFMu7jr}Jjnuxsj=Sb8|C(}pPjo@m|I0~9 zch=emZ*N~1e>-7U$fAw@$37K{q%G$>AJElarCTGp2Ts@58=d*1;Pl7G zKVZchzCUp<&zmJLwwqwGWqxP9zEMIKOn%UMZ+jwU$jugKBDVs@M z?b?ZZ+AE%#6xei0=JsZN{r|rWby6>X-&nm~ zdi`eR41c{O-h=1YU0T#S@5)8jv@W3y>a%|H-IUn6WjzCrUjTc=`3k{9Q=eZqPKZ-m zm*glW_*i7}%FLx_G#fhqq)-3nZQmvusm40_Nhup8xpS$+(Ux!%P zkZHkxuWjG*FK6*hmyi59yFY&V7`Fp_Pw6^KlXm|D2$=^3~R=Ol4 z#a@t^Io+lB+p(p3pX5Abt6$4zPx|+ieM8^xSLcpeZ9VR!{%3P?p8NR>zna{>zrs`Q z`h`6|()H7*iZjysibYo6_x&FW4s?fT-kU0y@O9&@&8y5em#q%TC_c>MH0#Wqer6-X z=hr#Tu^!l`BXdr9@niNx*`AjlLw`)X6e0ThThD?o`}d!k@^$Nkk4KIb)b%`=ni_Uw z;c~gucgr5ks}7xathn!W(Y6IetBk&14>y@obLm%f(4Sc^=Bzu{d#x<%^y{>vpKdIA zk(_A5zoUTVzL*)y#uUD~I-d1Gn_o^i`YLvR{33VtgxW}f*R73x*PDJ?r7?SKs9R9- zIp?&KWTO^S%!Yi;!waSf`CdLBJzsjmsab0TbGN^Z{LL4$dJogTd9oX-H{ID8Fuh6o z%f*^MzGBn={x|-ncGTW&uC)Gi=~Xh;W}W$m8a3)n>_jf+MLjvoyLYE_`v=zAlogG# zO?L(MH-2TB5jUYv`V{Ajf_h1p_ev)sZ_g1stiR-q;kAzsxsUTLI<=U~B14$(++pW! z@7PNwT+7dC>p$ps_`!~bxk60=&onMszkCpr`YzObug%51jM9R?U*Ei(_c(gbI&Y6H zT(#f*I}WFrPrAJ_V!PdjkQ=8K-_U1`Ie#zwq*}92$93sT(l-ommQ~E3-np>v^v$+| z{8QT^KYgCb&v#_kiO;LvT{n8I;oG-N<3)#Uw{C7gz}j_RCmmVmc+TMWmE2;1(<{2v z&d=c6e(#r=%yr&UcCk~O3nUKcUq6~OXMOh66BSCk)3cXMe050cpU=&IPU-F&SJkDq z-s?M2GQSi>P`veR73-4yI(*MQ?7YXPQ+9b- z>hTH=w(BUBMf97^lJ9#}WW8>8 zy35D8M&H-$*vnX^@a=q3WMLn}dDZQ{ThE%EmAswg;dk8nU$g;p^7JLA4^8R3X5Mi8 zvs$EjIp^P%7N*K>S7s#(H!toh%jMV`w|?Fg>9pyuWhz?aHeSEFec93G+FGF{rDufG z0$Cr#H+`K`SaE&lrAONr`ZP!CE?mo^bMm;a{M=(7A1)B)wfM5pRKxm7&+>%3?H~Nt z>@U>%=jixnzB=nik?VI)UBB!$BROcV@ti#>o5eg!Ez8Q-9=m1#(h7LqS)5USaO2F3 zw=zXspM%n**PCxJFPgvdieHi}%Qw}amwE{ff@`L`9o}Wru_3Rh{?)$Jg>`w0?EL4g z`rMiqn;k#VR_{*Vi_U&)+4h^uzc)9pG5E9F^ZI!X;f*`^Y>WNvXT4V})7;o^FaJ{f zX2!mJ?abfFtZys|zU^JpSH;j%T6B8%gxSxY%N)7f(rIxr#5BQKHk%_x(YcIYR{VU! zm#>pcOu4^iKkXB}!ynq7F@ES1#VwBZVK=?gQ7?UioTQ}5JXI%(edWb5J|8>Xhb zzmghLbdKZU{+hqPetCAi_TO;dfn{xxit4}g`CU0hR&jdU6Xw0yu;bwG@7wZL316P! zd|f_$nvvw|Fw?q4p3@ZieBS8fx*xbEZp3NTxi?eWB;D^lu7YEIDXr=SjRXr>iLGR(t8fSH~i;l^6qMGz%;{)LB4Cx_AGK1 znBRKSao0EH`3vT0OY1Xy`S!Aqk7qAOuF}7zSs804tPijCsXjJcocpU@u*SrC*_|t2 zX4NSEJ)(W3+jN6`iQJARW8kOUd!`##>JhhaT$u7i`uyUrVvJ zNO$wasF1D8r5{yDys|yuUj1U;f6 zK|SJIw=5>PuGQ7m(&dg44U)dt!ssdym0|n$fBoH%yX8~gsPJ8@k%)P@qkUeVle%ST z{PTIrGIJ+a?JQSYQ<{~1&O6!dOQfc@kVEvbD$!4#k+SDztvj5O+f?i}BiMs|gYdQB zwmXNPpURz{6SF*v;a%@U_Akx<%&Y>NRW|M4?55k>@l1kS@=UTvh1Ha9120`4{xA2> zKA2q_kzU)>%v{|(Ytky??}vW1vtM2i&#u4i)P}7;ZPrEa*&efYvp~sb&$AV$^d@PQ zSiYCtRa~of`<7@>kmiQXf26*BDhvusvTe?=;ZB+x*vDS{qs8Y!_uH!Q+vm#5m;H8> z7n!)P;Fdx{d(c87UFHk>*BRYEs&=v5^_1J3)wyY4^~ERmfl+1@>yw3vX}4btN+TRCDcAFUCAP$ER=rC;C}VR?7a)6 zrvFNqd#vcHKFud1i>Zf)m0R$AohGfCma6Tb+{ zq%B_3KaIX$-zp=v?$L#JSH4~?c`otc*tK`FIroHbwO&8Ly!pJdci9|?|B0rm@e%+3 zaDQ_ai{|fsHRoon-1WcfqMldn-Rt_Og`eTK)5ApV8cuubJ;%6G>>_GZnEZSWtZowPPK6b=kg}h#ktMQQ{fv|igi8xU=C-`qyk*^&pchsLzdKASRLt;cZ`nC%7GwLT z*r~dmA+}HNiJTC=Ha&IT=Na?vO*2+|D|+l}$a-m^ZfpH?#_B&?bz->RY?M1)ddpVT z%_lT!^|i!+pP4MXkNrqsvcCHET+X-f`<^>)-;$o+qxS#T<_{NM?sypO+}2yaFXf@U z*Q5LO^6G{sm(HG9ThH))lE>pz-JWBizBf6y{l2|?uY&OOSI0O)r@Q+8(z9Oq_{QdU zN&(TrH$L~i_e(aM!@6Og!3oY63^B{rTikKJzOQ`I^&`6<*u4BIAU`pS@#M?y4d=Yh z`rUUN^h!Wx}*|4CFU0t@V9U`2C&qgelcKryMwy{`&084L@fqp51%smojU$ z&m(@V8@iY5dEcb2d}n+}D)mBGBcF}nkLFj=jZ0r~FDcKtX2j#Hrg~NTVC{pRy^DGl zoXSaARcN%c%IB)^rR$YWQ|7C?{obO}@@^Hg3g5Yo*lV(}oHy#)cgUT$3iPw@yR_qQ zo!zCkT8nl|-JbR(wJXtfg;#8uLF@L@`9k-Dnd0k{qg(GTSUdGkpZe*yJCkR8+_LN6 zZ1ueL8~&ZR^0p(^+_>SV#WL@w%kKz8>SpIgY>!Q@Sh2z7_P1k`Z};$dx3kVaws1-_ z%RTLo;~hE2Yqp<>PkQpiTCsN4Gt;KpyJD=CjtEMDb4BNV&k1GMPnj23oAZ%Qi_oU9AoqNIK+{(mDhaDsQ z&j{RzsZacSaOLgG+~11kzMY)3Hzwok3=^S zJ9v*znjmwdaK_xS!0e+{FRJEEPEKAMukq1sj$XFa?W_j7!2Nx)ORY}GI+?wZdX{RG z5U*%GW975+&%Y?%pZ+@L*%hJt%-&Z#Q{L~?_5XJ6oX)N?x4iXd#YOgg$;}OYe*O8Z z1>0{Fx4#HHSu*$3*ZTb%{ypXVt;kyKxOms*b?Z(AA1i6RefrSi%-*@&U!I>id|=+u zs%cfx(jiN4CcW_d)46mWyX5wd9p2wBA28m^ze`}+u2+@oegRJZ=TuK$r_oH3CN@`T4Jr-Uo z(DPsMJ|=X{yn4rN+czGGnJ<`<|7QQ3p8Wfam%qCFsG0iuzV?mzJzwW`9gJ&n^PF~% z>u~nYds;W5w+5e2;fW4RU-ifC#Fn6guO{TG9K06uFLcAX?&qSyH=U<;p5ynPwr+j2 z)#f9`cAu>hcHdt3srvnyjNQ(Bd@+0-UnOo{pQ>!@`;OstV=$Kz`_kF%f21F9yZn+| z6sWE?LE_fg3xeg$R?m2^M_!f@TH>En{WyE$Va>{7bE}WN>kRG1-)xJiU;3fn??(N8 z`}soeqyI;`pF0ser7<@6$1RpJ6E|(9Nd{hfrp{Py-ad7;V08NdztxYOJ4+&*3jeIs z_`E%PLFiRsFZCa_H`fWix_-97#`Na13ih5Q?>(+}8ZTbAVU56_kAbI!1#LXLM8opP>s|Xc|6V8fp7D24mFBg7#@t&o;q~XOV}w}6-pqsdHLiaTlzkjM_4_ZIkb?)%V&z?JUKK3sQo%Giv zdpFaSt+DD8=DX`DXsy`W{MgmfEPBbLCD&c%%~^EGt}fx#oQWG1Hr32+zBKu{-{*_p zH|Onr`Z{vK{g?*Bv_0optc^04#QeX0e^LH-e$PksGKZIC=50CcGfQ{kf!|8?-|zKY z>n@VDymK!ofAa1XQ{LR;y3=sDD80g1@5Gt92i8zWsb)E|Zo<(2VfiS7#jJ zf2C>IvAo5whIi=)u>*U{_obL$_^sYtde7rh${W7SbDy;4-R>4wJNr9(*FTGE{K=P9 zPW^iMO<z727F-OG}|o_x4L<$Gqy zozml4^(U^m9x_QU{b{Q7wJJ8<(bB0ly1M(TVZ@@W8Rq*W1zvyXXg&4)sL#vlzz*gc z-~3$fhAt}FAZqO#-+QN0EU}#V)f?%HMKki=e|x?n@YUz4yVZ*sYS`cTKR=z7{ch?Z z`I^ASR`ZwM(iQ@ayta_gN96xq}^~B4q%29hxK6PGU^hz-5 z@WHBrYIbwEBF*@t~-J)C+fiE`m=_u%WoZ==v_Qj(j-(_+duu7 z@gqjbQz!Z+=nGZ6I(_lZr)T9G*JXWMa^B~i-HjT}$GG z?bWqkHfzjPzjb@nhOgNkwdVS+?#Psdrmt^wl%6>kAG#*wVpXGvYDksS_sEu0esi`f zd^XBilWP{wzGDATmAcRc%-7r}E%e`(f4I`%$ksfs^5z)++fRiq)-@U_%)ia~ozHaH zuXP254lj9{zsZ$9Nl0F=&+*Act4sfD-xiOf-)(&*Urpx{?bKh<4i;QL zRMgtd_;H`wisR*{M8wuTnqDdW^cMHh`sK3AEdB6o(?!u6n4ag{ zJKMM`b3xeto0s$6OgR7Uob-}<&2{$duaC^Ct}lJI?_=xaXLkZ8Ij%i_Mw0XSz57hn z+1Ia?K2ZBh8k7xzS%4_CCwyv$*;$u~1iHcH0ce3r88IJ69ce>Z>=Q_3`dyA41!U zSqf7Ro7}tUTOP7}vAqOa_Tzc1-{&3L^_*p&>Wb^-ZV!3IUbi*XXP>CsE?Ixd;?sF9 z|Mxd$Ro~oebH@9}(WFi6wPIy|PgOl>W!xN;Y}#tRxKw7x)vPUVV(uk8@?KQp>;Hdo zljfGEd;7baVvjtkxU`kyL<~P)Uh+0!uB&DVqH*^h)D!9BbT)W(| zLQvyi-JuuRRq@Y0{#zGzRIzaG?GN_+-%WqGC;k2Vol)oJp8nUp>$w;Iaoad=?WRq? z6LW8U*!sh;>`w3U7{_M+#Q!sx#bkC`eO1{^~d3H{0du(7RT;G|v+bdM= zzFx=IM=|>8uc{s&ZkEh%|HbTzTXI5ux9ESX=jpSVy}ci}-HU${+nqQ2h8S<- zDFaVe2LTpV*JWZmm$v-+zyIC5zc#-U)aUvMhp+Ncn^|_OOlo@Rx9qoDyG}?LG`ab` zcFoZ!p8oXvg_}2Xc8gU`o2A6{TxC}G?AUK}^{*cEo%LVul5fiW%=&kw4|gtzt7qTx z+stPB z3VU=UtU7tA+qW~l9&;YdpMKs^qG?j&rLv2s3q_YW@3SjWyw(`KSx-3euHzi5f2{|r zHaf((uakMgXlE#4xq11ogv{cg&hC{fBaTdDt&Z6&wpMiJ^vI+{iBC*rZ?3AY-{N{$ z)bzjkbQi70RIM`adDY3U%7h-@UnuEczUG%e+{AzR_s#bo>YG(8|La`hG!1XP-EYOR zrQU7x+^KhFBEw6e>)x9idoPz-$t}|OeA(L0eu7zC^yMeB%KSsbgKlKq5uN;N&yjS| z##W!bTp2(@?d{4BUu<;EbB^7%{dS$X z+F?m`zu6!DC8hC)iofKaddT>CdSO-2*Nc}Itg|xNXL$VL5&a#iZZ9HqZauoPglpvz zra~2?FsrrwERWMpx*ogH^Tn-Ijjz2@XUf?=;Wb8K`&GoJ&phBaoq5;pw$KfJ*G*(t zUjMkn`k!yZJ*D+wa{cM8-Vbxj`PXed%RFuE;i{Z1xsRSX{0g0PJbV{#wbMlL1K|ld zi_dlEyrjkFkC)*{YnP*=1O{h2Bbbn8MjQbk<*i+tr^1EJNc=_YU!r6B$ zZ>C*MEnnvM{QQ%Y=c-&n6|ah)&N^CLbLxesqxbwWd+ygq+GgsR?{=PQk+{z+>8THA zy(?elmVdElB&LURJr;J@`(EPF7fZ`E=VO$Dr7v8FJjHC&^=SWbtI!W}A6`dgUu>BC z`P6FL!zYh_nxeL4as!+5+_`bh7x>yrx7D3`V)JB0&0?p*mTzZj?N#61XuQ2FtA2HY zdBgsnqKtFq_ukP2){?e+Kh@;k16yciK4+ok*eFHd*dVyjJu&1`0MZ0xgh^ZEW{ zdhp!NGZywnH&!20knMcmQX0N-yW$o1=|}oogJM2v?yT~9awmGShF^p{$4g<}(|51u zt>t*lYY;cv>4wg`&9Z7%k`k}ydh>?Gf4JOG7rUikL1C02`>l5~4sCba7d8Efjq|*q zO4U>18v{Rjs)}!qs%7ijJzM9Tu5W(uMt0+GUrLWJH@5v*F0oU#U;gNqKh+E0ZB5x< z^Pu4_U-sq8XU%wDsx{kRZn}PR*T>A_3n$O~>&ZIo`Y7ksU6mej>BG$uZ$Aq;$*RZg z+T|1?F{l6c)ro}%W}I1ghqbilHAk`2uHCyjH~Rfvf6ZgvTs2>&7b^-Pp6etoth;OE zpRB3MyjAMcjUC%mmaYiaGIa=DTlsv_4A@$LZEou~y^eBWyd?Z?lj}`ATg6=m*D@~K z(0S^`tz&m8zs3AAoBOQxf}i=D?b_G=OJ9qP`M=}s^v{dGy^YY}R#|jdZcl{j+-9pP z*%Y_1xc+tv?xRpC>0|V||vJtX3*tx%)occidb41pibi)Y!XL+-}WE5yR z`l~WbW4Xm1k*#)L#KiV|?^I`z@W(G$b2QdeOP@@TUG_jtR?2U7x!uLBTPK$$?=TKB zn(67cse<>-%)2>%PoBChsk`gD#QORB0aUwDMN1N0W3_Cj{B? zuRedB@#Wt-hY64EnI|OgYW-^XN>F48Z}e8VT_@-BR0NewUh+lTxmL=Rd0Kh;rwGqo zn_S+z>fZ1@^jBb>;qKV_?q*d}OE&*2YAZIKE7&yOMefzXp1a>7|Mc7~etemqd3VC! z-`UFM<=*e@YMF9xYTr2g(dzhD@1(hIZyh7PZ}2(%)ojs8*V&n~HLpv)NsE|&)TZ0N z$xOb>AzbW*)=!>W6QnL_u42CS+^Hk~#pST)n{1dwzb`1fc`$0ykH&&NlN}4=wGUZ+ z`F;G@>h0pZHV%^+DveCOiF|msG}}{&>t^TIiMCp9>ys`|SSs?DW3Auqs|V*UjH}|D za3wod<>ktVJG@m7fA;P7e<)n9md~DlZTaiv7XNkEbesLjjwrX-zjyE7lF&(Z^4Aj& z{QKGz?YyCIqxadp({qo#3R>yCaNdfC54OdqzrWhDU|wLtb6L|;-wW4+&CT>b9r+`^ z=8Em5!oal;wH7XFnO`dZ!P=~u|MB4s?K|%A@|5iRwQ$)#^L-`RFJ7`&YD`KNeEruY zVZNH%Zv)SZ0TVVxFUS_Y{&~eLF&!&kd&lgx^0fu!st%93-{^GR2(q)fALM;h(Cky= zU6qf~OKw|MzbfUr6f7HP=XL3S-E>wvf%5GV`_H;M?BDIYC4QqE+qdX54+~{~G)Xrl z$xmXf&Rxbh-*aPLjO+HNRuh9yd{)@hBV#9d>W0Pg%QpizsBDh1>~SfY-QzbWXO%Cz zSh42oX&c_@dmU!I^SgHc{c^DvvWc>ftz7Qx)Qy;TuQoSv(K>c!SrM71TX&nE(P83_ zWOcav%Oo-4`O$Eu-32fCeKWqCI=FY;=QCc_m3njTx_r7~W>{t3XnXTgitVkf;hRMH zY)zRDOs{u-`6@nf?vD6)xxxeccD|E2_x|qJtAFQfUps%S^pQ;5gxMQDUu%xMG0C{r zQrTCqJwRMAg>Cnl$v;$u6*sFl-f}&(@44IZ&=T3m@V1{TO}@@D=@fr9`{1uDzB1DV zU%z{$d+DzGeN&O^3vch2;i+Hy@<&XAdU;c6{6Xd??aZg0#9XGHJo~G9&i2(A!JBHn zt_Vm^>fKtp?$t66pWim#F7u3RxzC=Nz17(L{gePBwF}=x=*-io<-5=mcrVNfpcH1k1$F;*7uFS{Z_)>sN7S00rkrc z@NJR!b19QAe}mt`zZc4-{%Wef5d3lF!1A*D7e1NHo3TFh!O1ZFB|VEbU0!V3nPnzz zm=ZL-GPt_)a^NhsrhT*aPiK46XyGPsef#P+T4tGl?gp(ke4)B8zmETPf4uCq{mM6F z*S$Z>9y9;$*G~oY<*HY6iz^;ovZ>o|bIq~9#&^5H_vX@_H;*_RTs&9$$&sZCW#qP5 z)qI_waoLJfKV>5Ox$MVImp7}jSo!bxsbl$~V^2bS=gnnrY@7B9FA)}8H=pBmD7XGy zslwAsm$xh3sr6fs(5|*mpwM9X1YOHxRfc|>p8DI)?Hij{cTpuDwmJx>|fI#?Z2qjv-_LC^~7zw zVe7mfcfS03LHNQ%j{Rr<@8nka{G-WdcCWtloAdgM8LgM7bdeET6qjfqhPHA96PK zU94MGDbasACs#Gh_s3#$?$uWXZ@8yCIFq4uJ>uFL0~YT4;m#BF_8TTFab|fH_|CMV zrd&^GQO>5qPG9Hzj=7?}_MTD+7eB^s`1h7|-Q$_B+3RX8>-Op$+cWX-{~yc|>8ueC zGgWS?aTs4wetG;S-yZoLD=#|7PT!}-5FQ*<{<-W_%>QQjO^N&Z*L*iSF-wb4HvDRv z+am3ci9O#AUn-8h$9b)~|Fhi2dqS>PQ*V5}_3B*Y)v|9B&o_Ntpb@bnY{iDE46mbA zdeU3nj<%gFQ$BycMyy{xC0W@=LiGDdGgGtEAD^l2&ChY)+WAI$%kr0Iz5KgAEz~_T z+fVpE=j#&Lhs+On_h0y55!+O)z3xBfn&2G&Jx{KzbSRnk+wgXq+v2Oc8uoSthc0d5 z6K-sN7owjS+GS+Sx&54ulBvfhJ(KeG|9x2{PxdulSzOpPt6KhOb;Ga!-`HN&zTZ%% zAjLi5^D^ejHH`P9yT97nl-~C=Jdn6o{-?*nbqT7I&O04*U)nR1_0=@awJK?iRi{_4 zbz(X9_m!8@*{>G2zFgQFyH{qVqfmXDwlvc{8JVzor{q=aOB?^DuBl%vBe(fS`*~2G zpk79Pz2%>oJN5;ynLO#u(fjjdSIV#^7rZ;DZjxs#pkJJOW@c9Go0zP3j)@oLKg!L~ zzFGQrZeM?ujOsFBS+Vr=MP>_kuWa}_Gy3_7*p0l~9$okz+wt}JK5n~j#)jAU^mumf zShrfkcRT-lPsxM-Z|)Xb=C)BSt1ZH_WSIb08&jf)k3v%0$N&F#z5n*QEPm46zgKo# znBvm8tR2 zN?No!>EJKU!=d4;)H9bXwq3VCtjJ1-<;AI$k=092?qr**b?w4k^ZfN!(j)#i*H-LX z_rd$ZKbIpL^w*r9Q1`ETZ@f2V+w;8%;r^-l`;ynGyld(aC2=#mZZYbW@3zptHeWt3zy9BXnX~`@I;U(d ze#8EE&EJZPABtR^HpzE>?VftUdRj3b@AcO)RnDt*dzs5}wC)-iCZ17B<~cg$+L0*z zMg1;@U7w`_)1~@W30=0my!Tbh|E8Nodc50oPX3;@kXNzh{knyGdM6$R?&DJXQM)i& zBl-0DruB||oYh-{)!uV4oLgJ!eet_iCgWAc;(}vqa}KZAY+UknQNkmS#iyUvnDwQ8 zRr9J{Jzqt4t;w;Rou(1#_JX&=mnrYJbN_!gN%oqNe8w(67O7f=sn3pIeSA6nsFiT* z!(V3g53D|%ziqD+_R-K@ewu;Fy4=S1&a1vi@_&ik=$FC1QNz|eNiODS*lND(M|L#} zr7LtU@2p6^^xaNnYkGy*lg<}=QX<2z&snqkwaPVbn_7lBe6Q%9Nj`N65&gXi~O zp4X+pKg?CN_U_uQa(mfy)AFRZ=8x2u+ZCKr*brEI(004Ut%&SYHx(0$E!X9bl^(SY zk2351{{7aRIeX_WS5DvfZ|(-ayu9l!J)wO%fhiB=?NsIC%$OQl&v%U7W1%))%$C_SH4D|fipW49x z+A@r9=hnQFYWGT(@9100Hbe2kj#{>Fxsuuby#78OlO8RdJKa!k`UHiQtG1qfw0MTY z`X@Ubb~rtK?&ov+V)(N)@|uT!eg1rxciS!fem$l?+s|{C{$h+to>rW@#e`J5&l_Pl+B z@#^|{KVF8b`h+JelP!{(xwzfh=%(a#zKy$Mvm4{KA8!2emakxcP>Sy6O=g@7^8|Bq ztE((DBVPHlTli{Yd&Va_pLxXRKhiNY{$pWe zS}k+_QpL%K(-$7Ry|Gh!*2}qTgT6<&XP(?W`|>W6DF^GWO%40L-+hJg5#4f$34D@& zWWSl(3%$L}vK$#Vt~qRfVJHQDM$+=X0bVi921M^(EAj|9Qdd zbp~y#Z!Vm4h53TrNr!v>54LrEU8fzKFSI#AVS;Mo_uJZwY~82jzY0s-*2A+}?b6?C zKi|By=(T@5NB6)l^JBmI~xt}r*F!bG!D|>gVdIs~+S_!E;_L{Q=UQ1lpWNc7Alo(rFAGTSk@%x_H zF%kO4&ev{-Ey{3~GP9X}JlLD(ZspC=*9-eR{4*LRx@}v1%=5d@T*aOIlZyD{rPnPw zQrca*+HB`M?&J9$Kk_$M*{`wx!+XvCGsoZC+mAngzCTHTd*g@Dh~pPeNq(+~E$3{} z+`&7)YJ;_gjOquTvIVWvR(|`LwC?%k6F>BK-A-+f+iARrb!nHdQ{MX9eee4Ye|PeE zxM@u`dt;SvME+Y-9^sW29_w=Fue`;}Jdfjpw7lT6RexgS_{84`s2sYscthT|JKFlX z_NxSC8t*>+w^DMtDyOOSBH>R)-7NL9R=R!j_?BLJ&97JZ)Fbmr$InZacrCiU;PJI; zhKtF6pK-rlUi>3_{^8(zb=BqUjDH2!+jo3bZ~r>|--m)FMdxOos!DsG6n2gAtw`OI z#p_!v&pwcRQ@P~spBeKeMgKo4v8h6=^7*-HXIoRz*%xX}pC0)#cYEilE;c4>=G%$i z>XuuS_x~+8aWRHBKjPE0%)l?d58CrD@JqG(w`jkKO}GArQyb3dR>nuJv`YJI(th~h zkDb8<@;Ad~)$s^Ej?i3J_xH}z_xpaTPb+>@Agp<1r?7lM>U2l*doJaL^?NJy*W9m* zwE62ReZEJ_2%vjPnJDUcW(ZVEZy6=VFg|mA3C2OndSYv=-x9%aXXiCJ;&$H zfwAAdFa9XXf2Gm9dEvHoCiTY^BW{uNkg+Z(*9SVfO~T^zP-(@nw6!a`!oI z4qhU<=?Ufgr)B0<)!*tq&gQw~^7a$E9Jw#0UV10$zT@upntrdj_VUMeedK<L^Cwx_h$)3_M3cZYw>+i3T|h&yg~+nLk{ z4_^HJ78&`T%}U@-{`X0|Kk{O2w?u0Rb#ZzaxBlA3pnLuO4)facId{@NU6IOVHjb$erxmTsrm zcfDTd#{4>~HSzl_)@;6W;^vLOcY5A0InIV;WL$B(Bl)7|`OeHk&!-%Ee97#?f$fz~ z{wfFAaR(LFq_ke!IB~(cO@(_(o=x;)vDovQNOxs*o{o%D4H|$Dh3f&J{c}(2B zXoK|h&ncZpt@1Cses-)b+4Aw&mm_EIyv*HP=f7gI-JkuBO@G}#@~ex}weg->X?!~M(*D&i*{eIS+)9+NZ@sedns8-U8QFES`JZ4Vb3}0oP<8) zT+Yeix#Fpuma#g)Ty(>|z+(Z2iq*H)-`Q5pw98pH`EK0qD(?Fp>|Z3hzsmkK-giQk z+0lLdG|$++$RkIVTL0^}W`E=L{f_3#^+$70E%?h2IM?)-(k!c8?kU$UNKV(QKd-rF zvU6|d`K8mGjvukqH_2pu;Z$a0wR8Rbt2cko-=kn>drRe|iAOHY^j%ztuZv*+3~u5-j{ufCpe z_8_}+UPDRw!w))(JuB~T*d|fXvN$14w3 zIt$#qY>~LVg6GY;bKAKM+&ljqD|vE%<eo0c1|7!hyn*TPqu z^F5gGZ^NX%`%0o4+OqDs7l$8S>6~ftrzK~b)#cE%IrkDa{V2E}mEuyRmMD*X3598`CUB`kV{&gbK6xxxPubeoZRY zxurTIbw!NeySN(7{diC+E3PW@fU!aumG3V&h z({@*XShL<})~BZLZoRi3_AFkz=f){}VVi>@mlE#g-I$SL$9MF(-@?1|<=&nDZvIv6 zf9auLU&XJ*3wWxo+ka?zX=!23n~!abGVP@=UpMKQ~+WcyD&Roe>zf(&I_p{jj#9Y zs%cDo@|ymL(BGz))7<}aop1h}D1POK-kQrPd>&uUMrd3+y=!f6g{bpg|Jx^}xMu#X zU6?2vm2c44(a(}7o?tKiV{`Gzc?O+*-}xUU9Ln3GCVu+D8p*W}|F!b3P5Aq++voEk z=SjKodqR$`Uj5a4SHZd;r|%Vgw*R(n>v7+d&c0Ol8&NN<3^v&42_#guKHU`m>3{w0 zw^e24Wo2)3OnxSL&vY@CIG<9p3$zKexG17HzUb7`M z-n%P*8QknT^m6%jj=R^~N@q=*scq%vAi6K+i38)BU=j8d=@sU4_Fg`G<+Z`|eTQ_z zVvTjB`u-Tp@*n1%f4tW!IQm4<9KZYGOy%o7L?+*ID`Wnu+h3wRRZ5`n$%Yp^7o0nm zFIjMR+M9O*vNLYW=Rf-Outa^+Z2x$>XST2P_wV8Qrp{62^U%@g*LU@5i6gV_FOY3p zR+lh^>AL8h4SoHSgH7Lki#3>*tT*@bkCozAJvFyQ?+yr0dK_XSp{(xeVdgHdO(*K6 z(bd3mmE+wq`FwvjCmq@S;B~=-HhX8b19RuP8#hkR+Ru2+o&R+aV`A;HIrBF9i86iS zm@Q>6>yzyE=Mt|K(vz1io4YddL(P^yk4;rR8ST91wO9Fyx zT*Kqr)Ov!~o-dw0qxjG+&NtesTdqZ0o_%~GwxjpcA<0RPdq3Tbbk6TIoLrEt_o~=3 zz%01NxIp(>;rydD8P7!LN+md?g;+03y1=~f*_Qc6RcAEV3vz!4o|$9#pL1>eZtKvO_W$aX$XA9On65-pnl6_i1 zh=1|b`uEpNFK&ySG2xw3^!5$Qcz0L{7>2JXkvX?k>r$i9>K9YB7Q8hptUP-?vN3zZ zyj0$WH4VJicV-Ga)PA!$bW32K+|nf3;2&(OYftg|M97Ezku12j?!{HFx!-bFUft2l z;I@ufY*!Hd#=Z2jdWld0TXjl!;g;p?JA-m8D=)1qd{g#qR!Gz)dAk)s;!1M&HktS| zA2L~g;GYO@zoy`&S?3Eg56ZrN*WkN%-i^+QO8?KjWeVQnelc!lQ+vwHQuQtG7h7o_ z)w@0I)-3yj#SBWjZOt5fPR*UO@WLIfOBl=Lnavag5Wt-QWJXeP8C%ga0CVZp1s( zb?_yx`OoplueUd zV|-5VweYEqA|Br^79MtOWOrjB#SA$-R^WT zu3=v7k;_L6XYOo`+sOO!yXnh`k39D3%xjxuaman)3HSHRyL}(4&itRS!uZ<$Lwshe z-^8!UYt_2Q{?mR@V{^5L`=8o6_8j&P3)U!lP)U86`Sqenpydck89+ z#T>RuuDy9I=HCCnrrZsByt3@m4P>LOtscK$`YuRbj`4z+aNuD0g3 zyY0iKmmDUyZf#ESxoRTwBmLN~1ZHcWTZOaF^<7mnagN^=@cn2y>ucAmM-MG1e&P4{ z^*lFwHQU0!ug>`?_@}t>@7#65s7CINt=&9}pP$*=H7d^6En6m?@b_w2waL2G!bghV zeoc_Setz2g;;#qgXD&(JspR(i_P*r)dkejUs7SRZt&VDZvUur zOYjZn$4@?|lW(7W6}CfcXWsn36&8P)<`iD;?Wkz}8ou{m!d}0K`dMxK`=qZkU%$ew z`Lo{Q2eaOX_jf$riN)|8*SNzNtNy^WFFXFU+J`55tn?O2*)A)|&C#y^eD0k}hSGwx z2z%uXw?BSsTvf7XQ|R~OrK@6Jr13J#z6;>jcyD#+v-`)$EfMXT9r@XrYJv~0Obx2= zklQt7a)rdg`6cFUoUJRjI9=xX5p*{8;qfEx6_3xAv6!E@qRF4M?$+fNC2QY{D~-0V z*?o8Mi@xjejHTggnU-b7dH!iWDB0d^Utd|~YQT~Ax^(^PV;SyuoA%rPku`f?qu(n& z`+oD5<|KDxv5R?@-_Lyv4gaq;M>RT0a*DJ5)Vz%e?q2(6VBpK)Vcr&Nq%{PEXca}u2RPuMj4x^^jKZN(%5pH_b;VC~)fqkO-wnx32T zO5X14!KuIIb^MpTzgd5cz1Lyp^Ng2%#m_g{SZlIQ_|blQuk@YOI`8xSdL7=EP4dm_ zePyJ2n{!)u$6JXa+4W{es&@zziCeX{hFRlpjC?g^z~*8=|SWn$aF?pC8^ z{p6O4x_X85i+$I5N*$_W#XsncG#nZhje>`Wc7vgyBdVE=qmd>0q z*jfOCnb!Vg;(2MWCPWvM{ofXod~t!#C%K#5Cqi3TYubJu+Ouf-vBwrd?mtZuduL@o zv2>LGo@#Bey;;ocqpw#lz3^xeVvX8QZfB^thB9+ma^JpS)W zIFi}lb}rUafBJJ*iP$TR{ccPjq#JA}u9Ka)b8V+~==8qHr)>Ro^=EV4SSinzT+rdN z;DvSN$*dKUubjXAn|HOh_DU&dg#LmZVHanZJ>HRD^sl`0^&BY^)p=0`v$jm#p}pKP z|Hg(c*}2?n`Q8*~=wFrS^0~cmQ)lh*WsenwRxFQ8@vq)qbKO(Q-({9*){$3lt86&; zf70IIH#;vrE}~wkwS3#1c?+MhJig!gy6&Lgv=_?{mkZgMFmCev?<(7L)c(q)ngv3V z?-yD5U+CEVY155!RqBDVtx4R%H+LR)v+IdXa@9*ShkQ4hBCo$;!b``3ZSZ^DX$IY}? zoMUB+U%>R->09C@Zar}JyKB~H6=~ZOdNKR9o~q|Im9i-yJE?+gedp`S=eB{~^*{HlYLnYt5&^B0QwtreFqkcT&HCOjVD~zj6m;IR|A~2Ob!92aQab1*w z-dgS4R?7otdiLzquqg4euxv}xBC8P?KEE$ga|GE10Ew4QzGr^Yj#za{q^Cs&%i z>Ez{bYtB=-wv=JL%$oEGN3P!w*tRHb&3aZDG3A#YIda#YrYtDhpSQtq`;=$Z8s@wQ zlry3ql<{NnB%Z9U!~&M8=YHay`qV z6D6%Y?)OiR_4{6Yulq}M{k%EViGL3k#V&s~Z_%@+?Z3bNy7{`Zx^V7-x}7suT)Dl2 zZT_=O-OD)gbQz8x(Bu-9e`(~jS>b}>rq%4)uBD8-D>k=2Sh;EDqe}0&SqhQrQ~R0E z&bW1;Xj)?VlXI`8MeMy+voqv%*~wGc9ar9)W}G!KO|s2?xJ0wjTRKo6k9p1YA4j8% z>$KkaN*Ux&(C(SAI{cc?-j>elEVdar%--B@_jgveoP6L~%#<^S@zuihy2ZTHFa9zs zmg?u4(^bR%^4zA`7LQKZ@jBi8efR&Ia^cSIythZZkR{Qu;YI*sSr@!iCJKI*T>Rrh9h2`Bd1i^{FUu-iN^w(<{UlMcJB6^t37$l_y0ebm-Ux- z-t1K28hbT%`KW1Cce~uyeOq09;FpW2Z4LYCp7Y;dtNebqq?mO|;%lC34=&`~{HReq z=ZnN1VS7gNfcJ`b6U*JtKDL&A_WR1r9{$5~8Rot!i{*bFz3!R1%UpAj`L!S7%1`XP z{&@bb*D4_gPrv5xzQmHBUw{0tcKy2}rJQdzF>6MN#R(Ra3H?0%b4&B@qu2f}SAM@v z{al)~$vvG7|IgpMYHGepCQy43Q^?XanUtcfcllnc%XgRWJ|9`LQO}Rx!nI38tZ8q1K(xO2;b-4Pmz}D6eC6DB=Y>86C6POK zrwKe-U$oL9?7PhMuhX7S*u~%Qb)xO%pO4z~&lRo~?X)@Z!!U3~LrJ(#P=vT8&$TUw zdu8~`!|!OH^w2q^dZD^~>h|9o?i}4N`MlIXa98*8>_#DmUCfJ5iOOG7c=RG^*ZZ!0 zGtd7|cJVKqV0ABI!+#^z-`r>Y%dcH_v!J6;yGKhaKEASwRSztjZ?x-&7d!LQe?NBbmN=(AVcA@- zdGp?Hto2W2d3mG5Ztg0d#i!P~Jo#K()}VI0jQi4QrTeNND z``fH{f0g+xE&ukv^tHt%ABEDSxxVd>WBvW@oz)B1{8>vrRt5IE->7vEtH0;M^=-=4 zlM@zKPmtTONjI^2gT}8@A5{OC{GPnz{iZ9Yv|mddnO+&Td7IZ}cK#PP3cmY3;4_k9`kJ@1{PSLmN;%oyqOOCEwPG8Dulzpe zykGm=!>ZRWOSn!{%yPP=-apBr=Tv=%sbcCqGcVCoQLk4g+`ka}yeM|dHghu%Io&zc zaeDuRrYyd~F(vTfzps0n?O25lExwY%*17+B?f-`%B6f}GOLm*wi`LTbe*WO4-j)ct zC6~i=6rOLAnAz>k&#U+J@t*@${l{WI-)?wp7;t3zid(Pj+@!h`S zRgsFTPF{=ne`HSFtdAA}(f5wV?99nv7F((-b#0?$@0^;eexZfWE-p%PEc_9`D8-|n zWzsV9Yv#&3g8tXnOWGU@DE?@E)BO0?4ELFTu4^fLTsMCP!xEt@lNSgS@Xw8yp%jxlTlB_P zrE@)7H^zycPu>#7$nLT=v_)OoMe&u{%(JGsP3A2p80FS^EUSz>W}{wXe)D(rH0}$s zbKEOFUab9o;#R+Cg6;9m3ManDdf6)m`!}0ET3VMcZLB*#IK81%O=|t-6Yu`LwX|PMP&h97*XBuc7w*&Jj${4( zzp<@9v_9*y)9SPj_m6yCpgZr@8|zIIWy_W1k89Ux)uDSem&tn`eFRuk} z^L+HqTyuZ#%Xw#ypXkeY&mEh4SaFu4+5S_dZ2gBHzd72$mYeaU$lUkW&DO-FkBcNC z^P7%Iu#~-+dHA06N5%tdmAA<5P+WI;y2SPT4~N!0$-BiEJ0<&ol`Pv7CW&+Vnl9}> z_Q*jfZ_ZZp*B@oBExp}$_n_;-IQ|LKL1a#e93u-W`uO6^RK5ezMoN5ik64|LfToRnF>fJ$PH_+J4u{ zPo>Mha$i~*BOdJ25TKJ{y6|3Fz=Txjx zi#+}{eWhCXhX3B~kK#T4$3`44s=aMclk@6p`yru^(+}=cU=Cm6{%T>B0ZYD6HQ)W; zVsAL#wA8y=SGLJ-AHqq#H_u4)CB^U91 zS{=SzIbL(p+Hwuuv<;<47sh|fa=0@3ekZJ>YxrCu4f8u32YGr;pEy zc?l|u1q#%A_SnwfqrU6t4~Cb~?vEC}{-$-KUV3h&L)mIS*FR#%?Ni?;#_*@5Tt2~4 z7Akj-{cuEGgWA_~N*|`$>I4O|AMi8NUn6`elew){SmKTL^i=k5Gk3p|y%+y|U*Yi} zV-?NBWw%$fpY#1JB&TlwJaI+Q$vcKouX&4qT)O)D=MnaEx~DClIPW|c@9b8uJ9E?V z!l+%LzUwZ3^36N)QsUKx@4``ndzZfcwb7ykCoRu=u-G>Ey?@wOc`6F~ge%I?w=TGf^eg4?j8~>}$ z9Gbn+^6iG@lcxM$;N#$Ky13c<$z}cMHBJXT*PUN8=REHV&pwO)OFtEDxp69?edfnY zLdCE4aD6fTskL}Y@Z0Jydr!H{CYl21Pj+8c4u?gre{Cm#b z@9Lh@$wJpxUMpYDWRu-J#rFH#cFoTrj9K>#6!ka$Ez_=UwYtI)`(k(1%+sruJ#x&A zVSmhd^<=^xuG_4p)-`r6oq=)>*Cwyo%KCp1!yg%^(zTj?a?d_QTfH$6TJPt-{x<*H zLVeTk=X(!-_;{P2^>-nrwvQrN=D z8@H}FzV+T3U(u%vbngZW-M_wrrS5yqKJGV6Usv~RinHx(+pwllQJ#I(q0_IK*Bn+X zY@Ocvab{QVl+RyVg|2VZ3~&Ax>Uw#Lh1L6o=XQzllu51KIaM})^;ri)zP;N{7;X?Z zoo|rzmCasEWQN=189(2#KMq}XZ1zEgOXVwdG%JoQx1PMu`hk7tg&CZbipYN=EG{xuObR|vKg!MiV`Kt?8aVOpX%~*aQb@Q3V+8I*kk6)}gvz*b| z>_Sw>&NFON!W}Ip7fUAoirp}8`w`wS-s`V>zWQsuy?a&HsJ!6Fm4`2EoMq=-%sPMH zV3o1Ydkx9Eb6vkkCR@KqkmlC#x*h6Mx8w4GT8)^8mn*(sHT3#x=e(gHXDZvgH&c!l zxg1%hzF+IgUyEm(S$}8ylyP(SYySBxyZuJW$B+DyHAyoprLSE!Vc3;a>pw4hw~2*@ z!T0_k;lKR5Gp=q{)}O@uX2qma!Un~6!u5~tTpAJ=mt=b<_Pa^>^+uDN?gVwS{nB}} zY(HN(Jyk9Kv;V5K3%`_o-`ew4Q@JHM%g>?x{{7+!Ju?Mf-*~@X;bwckj>osys<_6f zhkdO+Hhi0O>`mcT-NP!4l9d;y%e}v2HG}cM(<08OG>)&Ewxs2oB)EJ(vxjZ5)$O27 zpV<-%?OgWcsw4|JOm~~u)z4u2JtzFmdaI1P`;(qEUHHfzyZ!o%H~g9c%Re}z=1ER4 zW%;vRX;Y%u{2QE+my2)DZ1COXrV+D?``Eh=b4B0s3;l~-CNC!%^)bF-@4oe6w^`mK zryBk6GI_e-j_Wtsn8~X*zR5T>t!1gy)5lG{Vhb*8o_Ooo^=Dy0_Un%xn621m+*15) zCS&mRq8Ry~TMkyq>eVE{A>0;5FMkiZ+;)I&b&28TFlPaw93uQn!CB;#))4) zES4y)ZO_h~^>X(Kzq|vAJKcr6yE#1dc5U#h%Xu+L$Vv8K+{Ohqt1SDPTT1s&(VM+$ zCeO}faoOVUTnQXUh>*4blL05YkS34d#YB}6#ldbn0z^T zZn3ds!nfT#S;xNL{mptyGc$no2e0Plduj^xWwX>??ApupyWjKbeUsMzTUA@9tNfe2 z?{=1x8PDsLy{`_f5ALpAAGS)NW>em|<$4POrujEmtnGY+T7GG>CceFviiE`k?R4mF z&{%-t+)I#VlR)ABP%v_fTfx$v`od|~mc+N!y4YGKR5 zWdA2ivn6}OH)NmnJMA((+2wzX*gNZY)k;^&12?Iidz>%vz~$R?mS=5Kz5f+BmCZe} zKje9xxyNUIsU<(NmAU_K_Bfg>db6O))d>#UoKj4@F0gxw8J$``>9Jmn>@dDcP^*ym5aPGI;`7|oYLao zzsDlrT8icEJ2O0O9^CTW-E+}#?@Os~lk`%qO1~{Rwlh(7TI$K@1hY!3onE%r3fa!> zcbx9<;rJozNIs`eDJk)vYMs6xJepE|*E-bZ?tbn`KgtvSzg0L}AD{Yg>a^KHdwXo= zu?uZwc(d{B0oC^Sk8*0$PqwoIQ( zHodxDwefFJqS<}NnZ-Z4RCJAg%u3ehO|o3DQDn{XriYcw654mfnO%@hmp-9&_Jv`& zd(*V9lGDE4nEiUEJRftJ=)t*{xk@&uWLvR+edi@8nR#^69ya5*8xGve?_^jb&QRy{ ztI@4gujgCvjN|j|%3pH`N_nTmfAVhoD&9F!O!(23kJ1^E?#5?Xa$cW%9Mjj+e_bub z_xjuSpJa*y(f4GIbKy3+*4Ynd_|EZgEslh1EdY zyLzgppX|-aPNy2)esnv!a_a6WvegI8rW`D<^OgQ`!hg?0#*pNrtv72VD$l!i@okve zXr488Z*NJJBj?KQnw$?je1|GB-hCG&GkaE{P{!sFQk0;wAobrze@e%_n;pE=YBn{ zTyj5lx13H&R8NWir)Qk%Da!Abc^dAU=(Pe3o5B?)+-YKHZRYJ)!KLG#|73U*ESULo!v4^;@`4I zJNOcw-{4KDK3+KY`<5%3j5f2EuT+o?uH6@X+;(Hr6%($nbAJ5ry4AqDe(u5C02hN- ztG;F5ob4*uQ)0NrYQFQ?+2*rb)?PdQ_f)rlN^gI1lhr!u#*4tgl2ajS9W2 zbohz%qe|v1k+eTiY=&viKY3if=P0=Av5#1Y-DUAB)+^EjzB*3}FpY^Vce*(F+}u4m zuj23Ip1*Bun7v&n>~!qgC%2zVR(j~3dnhBM>^14fy>pERrXJuk{9AFyP3~36zE6uv zep&3`(&1_mrTXuclqOhCCWXB#E{q%x`ulVNwayV@BN6b4? zq%lB!!*m<*dNt`O)3l-fJ??_bPbp{H^0>GkHEs z^S0BRV*eiZcT~*lWKX|Rzn|4$|Lp$Iw0Eb2!%ucwZ9R52!YfMZUQlse#<{T9`yPaC zC=z;q;mrX%?$kB!?t5I{@V;#Jf_QiKqiNMv0_sZ>WvArs;R@Yu+i_XsP0A9#+dG?I z#0y<0EIKRgpD|g--HunO^x?eqo2FfU+I4uR!(Vj=+u}|a_6YZ&4Q~WrYt~FMsQB>W z;d+kmuV#7+Kh@@XZuB~{F>vpK2{mpUhgl}{zuvy={Tn8YMynoSS(k4`yYIF|{`vZ- zZi=y7tiYDV-V%(pVnzPwwU!-Q1Y{&rPS#DEwA2;V}EcnG4@3eb3t-yS`?p$H{t@C$bA`cTe=1 zzisk|z>W4*QC_KQZmgNK_SGYWPBVd0&-cFmSzXDq+0w2aF?9(&~FE|oVQdBUwePTV6T`nyOYiqomsDB5)!*9S3W zXU?;>owvPDtL~d2_FMY(cTe8)XKcSa&#KC7c3YYDzT4AZO4&_zMfRY3D16uVuxr!P7)_l}lp<>7aM z8;lp}w}dZ#de$~4Uu=u;rIV|?QVc|{`(`Yk*Sz`)>#L@+@&%tRmASlkIebR#;e#XTNqma9G--gvrzo@g(xi&#J!rxBm6NvN?y8Z&Y(Uow?#!5Tlh)>$*?N{|cvaUo$b^ zJpb*bE4sTqPfz3cxIgbr${vaE7*Cy&eec3#_KCh-z4i2ZiMJf3($km!N#S_4kE?^1 zd%lWu?3;+oRxh^e+S$qZ-r$dZ^S`G4_PM*~YqlaJVaH&5MmMdZzk?_H->N9GtY3G6*-^wd^D!E1Zo=Cm#E6YET-Z2K7X z_0(-A?Hkc0C3|EGZtbz${P@hm@L#egidC87R3(m%IlpT2#xe~Y~LsqiD#^GbgEa$ic{7BziOp5&dx1drdpCHLIl zR2+YQTQUEkU)j9dt7Eq%{5;&UPxs3bPZcBK*Ty;PvXAFJK5V5Qc=!E6b(4Y}H#*ic zd2HVDdEdq6r21!-h78u6_ihv|x|$T5`ik$3$G-0j-<(>DroOnQvO(M9b(^7ALcXc} zeC=zOS7k?eT<+vL|8nM(M^#;!cK6tp8r$SwUcOR=UuD8lPC1#?E4_+ZUE&rR-Arf$rYvjy@z(lUCMr~ zc!Tl${43(KW}eu0@6xTK{%pGy=B~egF(LBt*4!O+TMy;x)oxhHdyp@~{rU;Nx9NLL zY$YZ?JQCCWaotPKT>2)lTfrM2?Pu%e#~xRI z^it=}{%5CC*lsKS+%nXJW!+}m-ScLqJ>U1Q;`d2Am51?Ct?@Qh z8uyKE?cQgydZtfE_!_r|20ijiZn8Yxm6KvSS7GvYVT;vQXIY6+my;{lP9UoSMD=DWc7EIwSz^{ z-q){0=Fe)jb9-EMuKZ->t+k6!R!ur2EUlqjqB--d(w7Ej6C$*?np6 zVos|}M=7&^1v_#SYurC69q_;67+cY=VV1mZ-W=n+O(%P7+(ceZe0ftcFh{5>{!Pyt z72Yo&BLwU{f=>EROM8AVLcZrrX2kz*HkB*g-->*e^E>2U>6#s5K1Igr@cI-9yICEt zqcyLWrW>shx$7qPrr_qRX~vCFx$3vsmL{^V_U2Ap74qJxX=~K9Ro#rd?~)a6pO__k zw@_yJ_hkKB+P^!O%-XH_CNXa!-)p0j7gRTJUt_%RVXC%`_A|-UpDbT1SsCS*6kFs5 z8`V#LobdO~kH{zcH_fqhUSag>(X;D@LRYR@-V4=QQ*1u@quHiryL}dOR@6U~EVoNF zv~>DEUqvEIKIo;fi28@4Q6Kr2qYUV|OL<)Q72?FEG5G-}GW?=4t1Y`|mO)GN0H|!{+bVc>1G$ z>ihPm6YAABgzt;`e>BYh$+NCyf}zTj%N?d|bPM$~)w!>za@f%!Q2K=B^e5+cCLG`K zZ}Yp|Vvns_ZcELV3;D8DM&gRddt=dyKVHf{c6jSl#M~ZID4hA~W6|ph(J5PQc>L!w zZo1Q@5%THSi_@T@^i)KINr=q*&X_N_U}aPt!9b( zWvkCG_W%ClYey~ zD&oVkj`m{i)32vpd-<-2-TYeA;m16hs@7L*YdWoKFTZ*3P`1hRP=r_D!VhXzoaqa_ zw(=&dKYAneZp%W;b2s*%-)DVq#lw)Zf!#g9-;TKMiDNjF&euGT^L4ZiZ{c;x!?sLqMYD_YVwY@UBeQ2XbJ z2THn?pG)pMZ@hYPg63(P&D%E`Y)jiP+huxJS(Hib`tDs>t|_OFc;GBoNHNQ2KsbmHc-et)vzGTUz7|&#~_fl|Es9uGEC-n@vLOfjXVP@0Xr= z|1njv>x9h>%d0+aKXy#EKE%13(YoaMj6-4(vU`;+r*odY8Mwgj`TJ){p)+LreK-1+ z_dR1Uo%Z}>PljxwZ-l>AP4b)z+V2nF|H!MwEO#Y;<8S^$yHsNKE-Fet`fO|I-n#`o z+%KN5S|oJXv#U6j@nCa;?VLTHCAoge7Ds-`*jsYNoo9IU@t%&yt(Wo&;V}{`&i`I) zS?S~Rws=wfOS6l~JJl=yKGp2oYy8bV;{C;6&sVp7NcZO{`&RG7X}|Y@yYTTHFIVMO zlx@vh_Mw}h)GJwN#p2Dy{{MHC;|B9p3m58|J=LvQ z|0PKF)Q_udyvw@Q%ACCF^=6Os{6f}uw@dynZ`(L8V833%_xlg-^Id!Mqo*+9(CQ6& zZSf7Eb7q^G1PBPO^<(6gWHGa`VhH}#n`Ty85T?Cs@)wrFlYe)u|9MD~=kVXeyHhp& zZ#`8rNdF)CiCN;v6F{@gzT{-0;Q*1ngyVsqSf+25Bp?>z82e8uy7agJ}U z+qnGueb>ruUHwvqj``vO{w?=R4epA(pS*H!kr3N($XxFKk&}CYw1| zfVc3m_hWZX=E@n~^1Ck^KK~W_`hO9>lH|nGiZ&9SYI{4Cg0D+|>(qQ=aW^XPOiH4g z_11>e|I1q{qovCJ8)RtxFspc+W%jyWlI_dd#p!Haxn~q(Hf&) zc@_q{R;r#6U9j%ZkM{NzsrU23t2xu-h3*7Lb`<1!Iy@hM9x3|oE;Lcs9 z%eCy;3RAy+PV4O_Kkup2-B`b;KF+|%t@X$4?d#>=CQG0F^-`Q&@`v)wo+~yx;t#~{ zh?2j_)BccQ`|E3dY64XTiv{BN-&XCs?i0pPJyY-P+3KjIBR>TDwl8VoPsk6|ZO>T$ z!zom&;@j*ZQ?qRqbMCF1dgEu1>AXeay00F^XdmgVxK?-f^RDB&)<1ces~vPjwe8!& ziR(E&Ejc#xqrw5Xy^lWlFO17~wvwKe5bE_NCp9=>s$*7U=FROXJ@qFpZQ;Y>3ojohT>c)PuBf5>mQwux9;uwk#Vr@MLKbK%^svKvddmgMtp+O;YsJoll+T(^JsA1Lk1 zY&Nhv^ZbGQai7gMA3i?yr`>ar^A6cAM(eI8`HL<7$B*nBwMl2&D_W6L*ghKcfBZ zC-np@ksryCpvPTgW9#5>_r1C3#pSDo0Sym*i=w{kM zKl8=+zlO+qKQmR+-7X`4F`!#-mxbP;#Ff{q65lmR*b00%cNbW$&U2k*qFG zFTZ5{+>larQ}uMGQdbFKSU>DRT!Qhhu*_7g&jfCB$xBd8}D@L8qi_#bETrm5vP@N!WhQpg@JJn=% zo-DF`-ch3WP;>9w4UD`qK3VO_INzDqUOUfS)p4i0<;n|HM-%4n)Y`HCa$EN9H0`dW z)7y=CWA-WRds}c;*!tX^3*VZ=Ua*~Q_;hRgi;mI?A(g;R{`E~?twrzNVOo%&E|@KS z=gq~x(tnQIzF2$f*}?*zFI|fl7j~}rwbSA4?X~|OFMF~k?Gk^wrDY7mMtz^>xkvJu z%ij4WR;aIEDpj}e@Xm#KcOy&^pZ~ZV7ZT#~M*q=Qakt$scS_&i82{_6+KT&kZR_@Z zz5ij?LA@<}wP)M!*NC*d4*2qKzS}{cjrva#3|??P`uVE$+~q6XY#u7tH4g1)TWlZ<)-?c*y z+?H77wBR1wR-O6Vx1IeqC4FIB)5c?by^Fqo*cp4}$Og>^HirW|>LRl$=U%Ye61{z) zRoIICOGNK|HP4@(^Q^w@`pjeZHaniZJDXe5AmBjtlKXdR{#KO#UUm6?#a2C|S@kZ7 zEN#ic*L=Txdo@w>&xM>DuAKW-cAxOjntr)+9Rna2ym1Wuow!|So^bYaGo>(LA%p0^T8+>*+o7w^8geNpQpnMCa?XCwZ* z?cw{+=gm2NLsVRRoT+ZfXI7=)br0suiWOMxEYA2mpP}?@h}#QxX{*YFl`D=-`}n}S zc*>fz7M*q48|+T~{)wig^v=Bzc`b#zIq?3RG$GghK1q{*#J|2C z%J)lf?sL71HzF4Nd-r-ee|h=#^}ABrC2dSh4QBj4T6=r*mv^s!Hg>FVH*32&XY;p3 zGc9(U%(xM}w@mY}j4gk~)v~#pt_8l_7MK4mb4TULPkl+Ef1Dd8pZfOc(P8GsxflK9 z-smydHps5I@37yiJ?E&-!@ODRqXpiX7Jc^FkoWM9Zed6154kxPTiF@yxU;HQ6EA;E z(K9?|#!)(FjpNOWpT3^TYOb3)wQ273;wcyMmVT_*@PEV2r<>|q&M&)DD(iaod1gq@ z@u=&GUGwYDIi43>uRksQkmat(E0KHnzPVkSy=?j;i+wiT=6n7XZMg4NyYQxoz$7Xo5dZIIUdekHSxt{&b;SxqE9%^Z!SOmZ2E$_B?@YjFYkzx zE&kQJWckr|2VT8Dd~V-0an`$HrjH$U%$4_FQ>t)p(pTwy!nHH^VE5J*nWtxNty!=# zn)Pw5%sEM$>M7SdN^f+0?65QW+_&l<*F?|wvQG;VlGL@iKP+n9Yd?S4q{u!izphX| z+3l`p{xKX3Yd1Q=_Te}6acm#dZE1KYLt?d!hUlox-V)oFWY``>Q|?<@_xE5V@e z|7|nZy*9mbYnQ5=H0{-y#{PbHkaS*KmBeBB9frquO!@jNAT4o8_&feNzl(zW)Fsbl zb~9~`5;0L}FP`*SVOjqZcF(NR1t)HCw((v|{PS$WT-$lV?@l&uUD>vNA@A{@2YR?` z*1Z>eZL=hQ=hf@o5$eYcMPv6{p6Pq|d1~p0{^ueZiKWxdZ*3_nn6rBOoQJ0--2KhI zr2fWFDZ6Nw+U>bFo^zjnS$(Qw@|<+1U70tYd%aD_5nTV~k#?E(ikI_u`_B6~d2idz z%J*)Mcb41g^dD#W`n`Yty}i3XCj9^MeYNVhk2mJ6t^X5#r)tHt>wC|>xZ}4e-&p)o zoJCu}iI||~jXd|?E)x2e@_2fp?Y5h#S(Y=W%dS3PzT4sTk4K@=trB79N(29w7xw4e zV>L@N-M5E<6&F$s%ClKrCFbo%PkhH5y-Ev7P5$)r(3i`M)%%YuuqTUl=Jt2>tXX?e%rXaD{#Ub0*9#_=?k`tt8DSFgX%_~v`O z-JWZEZ%a%Ql6#eC@I60HhL%-WRO~(p%B)K>onRC^e^YH zIZEeNvF$r^<8rgBq1}z&hXq@9uT|IkQ+i~(VTpall;Xn+gQ{!U%MPC_)v;Zk=6bDs z-Q8VUYYbcdJbz*N;?czJ<7V@c7iUD=pSv&ot@V|!k6-@$-}!Z#@R_|*N$<|rEY$US zo@=sa$@I4JpGIF!TM3u6RisxGKiOfvj+s~f_K#GNT5;jU3-2FS61d90ls|2Qc7{__ zw)N_WEsaM%7ZuD7*fhtztojA$euYz{ZF^wfd6x@Yx2##;$M99} z-md+3<*)s}SHAdbXvv5C?HgV-&VMnv`a%81c_#BT{}jBCJUa3Dlq+9VLqFNZuC-F^ z4JzKqoqzgsaaoYHrUc8j`Jbs?5 zuH|>xrn!B#J!|#v*mzl|^kYtrxhm`|i)o@{?EoKj$_(^Kk#4 zvKJ>$%PT&sv)Yr)(Netf#q3?@lp@!!Gqz8kQSRk`w|Liz+dFRZ#T83!&wSYNr!=y3 z-vyrV-aU5e8+z}rC{Z9_N$*;DnxWBb3msq(*p?2~y@2*Pc3x}A5wz_8b zr%2B_WmhAq?7ClUh4D3aFU!oVf6w^}8pQ1>tvoU0=U{&&`L4b2m%Psr{?%Uke|9He$UC{#WbG zo$kQ97oX(qVp{k5iDvfq*Z%+R`QEhLKh<1f|GuLCw;L*+s9KkNWGUMd?<#usokPI? zI-8RD@7K0IXWo09|6pGG*X{NmXJV(`v~keCpHU$C;&3UQDQJc9;=k?vkT$wxH2V8xh7uCN0;l|t5HGf(K z*_~yrf7pAUi9I94Um<;2;MsPwwft*uZ!Z73DNS!(iSO<hp3Ht zuc{76|LB;{Z*z+M)M-O@{!@`FUL9=W55CxbP5%`m_s`7wAAIw9`X6#VGJMFbpA_~W zMflp~89Sw4TdjEf@#oI;-9NXAefxN1?cIonDK4g43KuIM-IuTWdS}E(#z@>NsvUEu6Qk{yqO&&s8z|ckGp%d3@TQtK`;?1Hkmr)l=f`$uU0Z#KcZ!w6EP3XZm#;J(@;!vs zz7G1Z@sj$c%I_kjjum_#cx20da>j31!Yys+`tIt)v)OLB0V27V)-0H@{Z+Q!vN^vt z#lJS3D0yRb{_l*~1KX#>WSW|EY3&a9vBXDd@0)H`>!n#=+qb?hKkvJ3*_7PtDyD09 ztyuP#pUZlF(YuNi_6_!vEXwNEEVvgf`@Ec^)b8T#xBF_Z^e^C>v9NAOBK!GRo6nsB z{49}7De95MOAVg|@4I*;XobbP#}{TCo7VFEv{iF$u<6@Xi!{@(v^Dduu3J_yD?cVp z`nUZ?{nmSH^ERGe7Nenc*l3ga&QA6!-q}AC3`+M_aT#2D&1!$~=x?Pd><#rd&rLIB zDOGtXbLFM1^5%@^(tlK3t(e89oVLwXxFjj}z3*6CQnKCORNni$EQHy!JbR0_$ld?{ z*naWFh$v>>8Ivvs1S|LwP@g1rNe)#pk*HnW&J0^X;9KU2s z{H(B&oRrmu({igj7x44%zkW2C-#cObzaxh$Zx`OPo)Z?U_3FD?tNNP%7Bw5}A2{1J zSgpzkGw>uFS7F6*l}g5)`9!-tLuD1+3(~ppTWw!LU;Lwo)!BfH@1hEZ|I+H zXs4rj@}jGoF6Wy$OPU||yPq_^!EVO?s4M5(_cg0SznzZ$w#)Y{bMC`c<=M6G_-{T| zzP(2FejMkU*ovc>bv8BogI5T@{84l3q}0b>|6(gFD=yqMSafUFpX-MoNY&cKeJ_9g z@8K?whk^H{uK)Tv^X|IcnYPbMj9tpqz8j@Z3rb3slV+=*<*wFjT43q(##69S$k$;< z#EnO_+hk-CZ4K_k9Esp(xp3%aBKQ0mx^o}@3P@ny;^2{X<>#@bZf$=uP5yaKoW~&O zc+%f>qGN}w2Umf(Vn8|b_Y7I*qth>h-PnGS+jW=mwd-e2Ri7?P3EuN{mv?sV3Wa-S zAI)r*UEZ1VP*(bW*pkQ64^lRLt&F(v=&eJ-@#$Az?s#R$SYOYcx5ewm!Nae9{$f!Q zvEhEkcfZ=a@92(c|2XXL`#oQ2D3g)C;>w(j{ZE+=&)TU|mTGhKQ|g8HOfx2ysYf4A zne6Y)_?zeO$%h6myZ^uJxl(wJMXux}Q`rHvtZU9ehfa0mW_%TJ;A^!l+P&2{Z95Cw z>vzgZ6}FQr@9mp6^^?YK*D!0J@sjQ-_e)3j zH*9O0=vNnZ<(PQuF`L7WlHzqDXXJ<%Bu_cU-F|=nhQ7R*TM;WAeQ&E-#?9N~DDUsZ z!(jRUdH&S{dUx{v-(bA4dOFwZPt&)iDCM_f9;&~(qr*Boz3%r?u`tooRnBE%c0aoI_%T;SY}h9fO2GdXu` z>CW728{N89YC@64O#O^wd^%U3aaE_Ve=Zi@$k%Favi9%JRWD9Ft^91;op(N?-chaW zjm-27>a`kfl8tPK_FTTgSD0^Aeq6KEWOLD3cb#PO-2FYrSdWA_|2|h2wxzaZ+5y*H z@4YQ1C$9MX+@UKk#pL5*?F{wPJC|G8e}D4aqU_f7MKUiB_W#eTS6cn`)rr37Z`--v zGJFpWeJSv&{FT^Qsm8-Et+t;~e{HemykW!7X(!9nqIR>D@%AusJwJWmZBe}tqvLe# z1mV>-FFCXjPy!0e2dbZlM`tLF-CmYz@v!f=r?kZpG zIoo50Lf4iiVI60QD+`bE?cucdQp)-{`NI9(#i8QQSFP2#X<4^OQ!$vU%&Nh&$T7$C zVa~_LpI+W8%z5&m+4e^j*QGh#4rS|JXRJH_xADSH1BZt)uCa|5AAY&}wEN@qJu)}m zKJxwWPVe4~Im{E9dvE41{!^4PfB(VLuV42kuP;9yFx}gB$NimmB)4s7u78$zcg^jn z?T)|vKfGhNbguu-x~oE|aSijDsi(Rk#3HP=#~t1|t@lE)>a&%9rsX&Vy!Sw1OtdqjQ^_xr%gGcV`={Cv1rxv`gV z!^bZ=nMQx}roEAQ9pU@RSnqu3_dbvH`z{2DJzd5)UnJCi%5$kFD?Gx>_~aJ1)INH( zW8v}6SdX0tyPvz1&h4r%%6Oj&a4ZuRu-KVN>)Qh&?; z{ijmG{QniZ8FmMK*b})wmHofM?#bDocZo|}K6Y_0quJ5P8`BxIw|zKW`!IH|PkLKn zyZzHOYF7{K+qlqgL;byTDW3E5{yln^HRIBWX)9QmnpY=3a^0)c*KBl7flKV^|Nptx zfA5wXtT$U-c_JuvRg>Y$tG1W#wzpI{!qx&T_n+UazIJKbwzJPHwoGnJ@%VnXW_Q$t z3APKb6xlbrXFV#uw^#TYvr$Qom+_LU`L|2v@18tECiUxvGyN%+fgkq8H{Fd@;F)>+ znSht7%vFG)X($$-+bHC`L}Mm+gka|s^uHyJFI>!(_c5~@U@eDho8)} zFD-ax5_aS7EZgFR{>eH|FYNBO+xR%N?%hJxYVNP!eO~Z!zT*0Jx>twqYR6%**VD}f zu2gLHkIUO)y*}OUWaSm#Lb)&J)K^?l`mDM7RcGy*4=*|0Oj zHrKYTTxNL9FR$G$nDI``)fcua#8Vu<%9y9}y}7-xoIch_n0ypNYHf1W)nKY!P4V*x4u*Im)`XGUD-v^}mr z>w&4H(7x;bAGS=0tiNQLB!1a4-}mzCrGMtUyOEoczEEewo0|>0zWKW@If?A!|Fm|sT>%|7T}`EIvH{_QNbw6-69Pn4HBeLe8?&7)a1XJXm) z5B+#j5PQHc^K@!z#Pdwqoy9%A4GK%P9o#E=R7UD@$kunS9vn!~sM{!;Y#X@4w%|zGPBS|9G9d)2y2fv$(A_1xq=UN^9}w{5-80R+=={I84U_L2k^h{s*~)Z7b|^d7zs808wkQ5QQO&hf z=8wkf6g#6^M^mL%>{@+vZ`D!TyV}O;y*o6XDSSAPRpI*XMbI^E-Pcb9Wlu+4%QgKK zx+P=#y?7znCgGL&l0P=;toW^$dPOZOm;2~luZn+i*NXSXJUzCr<5&2O?iogx<~S6^ z+&uJDXNR(JwdSjZInNGlyjt=!>~Y`SBkO)dZU5`lDci4R;-8u_{auFIE|s;Per(ur z@8TWbpyl10&vEX)e))~S#~&B>*{U7->;LK6g`@ZPGF_7oa4N5CNl09*^*R69(Vcj_Gve>*09yQeyPsH`MonG6fyl}elwPx+tw;RsL z7`-@j@U<&XXpz_4?o)q12DiVDa19Zb+BhwDclnOmOlgrjbJxzlyXa4yt?H6&h2Lkm ztZVr-Hs3r}zNfX)EAQ?e>)ulj&+qnpqt|oStNQ%UHh!Z5)x+!l^5-uJl-OURy5{k+ zxxarLR()|p`E$ii%didg|Mfy;7wp?}XMG2o+{4FtuIBba+ON#ktFQa?x0pjj)OptO zBmK|JL@!>kn)&$uPrHVh_iG=&dFr63)gWY1+jvf{G_BaMJ#Dds|MC2u^FmqG z_2suCdHt<<>^K;fgkHb)mYQmM?U7dnEcB>}`{a{t^E(bU~fU_pXMA zfs@{T)?=UFV#_yY>7SeDwRdEvDz1=QxBOAWmlYbSmskZAEPL~pwp(SLU1VW+U1YL| zwDO0=9??aMuSBo~e^8riT2y)I2)pWY4=wqYMbF)2?;SF`%U1n2MklAy|Fx~*9Fg^> zCcF-;Jv)K5POz-=^U9cw8w8$7PJ4Ud-j5q$oAwIWGVXak>zCM@?b($+IzfdwOr_E{ zdEceDoSrpnp46#t>=p~^&946IKcM$gef{ZgTcft_x0xeX_N@EGy?C=FKU$6Ivu>L$ zd+tradx`S+g=jP2iZO)1k|+otX+d%AOj@e7ee|zD4L- zrR8%MlOG4`4WH_`|Lj_5K1rK;0~eTDbww$iPlT+fo0^3)0DOh~J=K0N(czRd4-&i(Vu-gum2w`?d} zv@_;-mFk;~cRv5+sSf#7Z#Cn&%C}#<-yiWVH8ih_b-S+r)>(n;%F<2T*M6$4*tkw^ z!a46!_t&~&*Y6fz3-M15+ma@vuhx`%ozMQ6?O~<~7al!G-TLc&gRI-P)7O{&cvQ7w z{+m$g6XhqA>t7o@t2lnpqOoe4l5BC~%%=-?`SneCUNCW|n5IY6wYf=rsYSDnM~JxI zI&}GV!8@j6tD0D6$-Y*>9~R-a#bRxhJ%7tBdV6Wf2Ir$;DfuTqH|?eM`gH)bn%U@@dUhLoGrg~tHmd50?X&p(|G*)#Qd<~z&7`(G{Z=QzEp}P3TCue6o zIy+BoYp4H9%egoHvhwWoX>$A%8GmAC?W3lHea64DwkB?fmovGMnqq&~=D@~x{1Mv@ z=H7mm_r83M`xXz?1J;H*S<0#(b-k^A+|39--5+rK=E<+0A1hz>OcQ;(<>QV9ZIe_> zj|3;hm;8-xWp6sPtGpWS*=`94Iv6`~_a`kDsna)Cc29pa=lQDcUd0s)`Zmagm~9u` zrgtPI+5AcOH$~eiZ&I!;(EGl1V^a94WeYYgUfnR;$+JK3?xWh+sGzL z`Bg4&x`*XN)m@T@%);{OnU+?*oj3Ef>amt8E7lf6e%r6PWhZ z+(pxMlhCcxZJD+@Zv(HF&eM{w(tdGb_m&suu58=a`JB7#(5?mb+!^U#cK0!~T1?cx z%N_jkiFIgg#=qjF$>Mhi+l<8Zx);HdV6zC)QrPgg|730y(`-v#5K+> zXAMc}dlWbI$N`6D8Rg}^>L2qeu6E~#eaiZ>CG=>~E9>&}K7VY>Kc0J?q~y0HL%Bu% z`2%T=CE4E$o4?x!-Tbe#VgHtd`zOxSl^-bi^0a9qa#dWKRrV z-Yg^DPnXML**^b^JkRmNar(?)`=7@1zf=^m9?Ntxy!v^ah@55R!P2~gPfPfv<_i1j zd^8MnWB=y0D5glggZ0R%pIjGTnspn$U1x3>{i*wtZ|wxL`_KN&*|SO`_2#T{`FB0x zc@}XQzXPun?~HUlvhDM3=`atYXu}=ecO0gC6T7?Hcel7f%=NXs`~QU|&Yxg^Hib#U z|A=t>@^!yY{Y%RIlT}&1gGV-TudL5B{ZF@SV(Oeik25DX*i^Px*7zpU38Fb~ft=92D~2 zIg@kU(zJR@MuYoXpStZ%mNd_K&Ux)==7f?DJ9Tb5KUDoR?Y_=SBf<4QZn?=!o{{+G zL(=ug<}m4r-@2AI&6O(?VF?W?F`mEsWbmQbjqBy-3aHz5?%gKg{!!>>C7b=?!f*D* zSNivH-S~TEUCEz=k*78>$?3)Nypp%S`E%}S{!^_x%ae{93Lc8@@D(D6{?%S!rK&#Li!ywf%(eWy@+!iML8FoIzI?Kec4_ipe^$MzVCnn!}nh zA??q8NwuaFZ?S%RGM4{*tKD|;TrV#1%&r5XEw z7uGa{edPH1{)G8G+czO!`FH*-iBUBwWNywrQva*C=DNL^^0qvMi}7rwQHz-SUMk&U zzI*KJ{Gc0>Z&Cu-Z?eDe58S<3{GipL*qX$%9}=Yx&wjEep;dR{W$r6R#xaNZ{b{~LW(vEzR;uWSGJ(z$ci-13uq^|QjjPj-I Kzcgnaeo4l&#?-^GyTNIXw9{~9-^(XzOIy^Aldd5~{yMqkbo{k$&!%7RbmskEDfG9%vo%^xX@+H*Tl*31dE2{B zxlgLwux3xtx$C93ciF0O8gLu-tBE(R=KfLX;Qr0L^!lMGZr4~11=2cBnieVY@Halt z)(Gqdt?<2n=d)e8!qZnf5l?Tk$9ojuR4-|nv23}0ah{;zNT*K2q#d-(P9d+~LT zx8HvI%04Y2@P^FtpQc}4>vO)kfA9Uy%X@q;PqDo8ov5`t_Q}QVAmKldf0KQ4R8U z;^A{jC|%OLKR|r_`jqlnu6A>T+h!OXKzw#v~G8ry%Bq}+I{W?)zUxx z|AS=v72mvJ+V8Z+KJNVOhF^`lc2DRQy|#V&lD0<4-;O8bKhFHDp2zuN`&)V)+^FYnYiYsdQlwqvGJ9Yf~qz%`3oSzpxZTGUJ&P-MFm2SrJ z_=H5i z7tiiTooWAZp*{McjmmTFjO+1o;cGWkO}iT)S3YyW*GQqG3ZB#1EAH-@-B-l&YEyQ5 zL)oc{%Ni0gT#ma|IMmL#yvumr-kVDnxIIZZRJGJyU(|K&~`)I+( zcY(G4#pBNRUEk};Iz!GNH{R=&utMdeI?u!RKiuz|aBcI7<5T#H>!UxiL}gV-9bn(9 z*{`;8B5RhR>2Ha{Z5ir!dv@*ju9UmWw6`(u@Z+{GJL}hf;C(ZD_JSQ(R!)|;)%*L? z;p_Fcn}im4uQE~HtbJj+_qCHzN%=m{*Q`{zRc-s$?CberlQ(jkCL68fJL|*#r>AT0 zCzFo54Ys~7;!+&S_x}2~bn1*}O<8Zw%U}E_Zc_ihD=(Pym8aw8x!YBHYpPzr z5jlN{Ic8D!U!HBf#h5CwOQPaN>H$9G@|*+B?A9xvPPyLv_TJs=r_Nf(o?*2uay_d% z??vbi(H*L(+Ur?mYmLvTo>vN6GVdX`1mo_9Ut2fMO@811MEhsJ=bh$rU#wJLb7bXi z4sn@VVy;zUQ#88lX7=6HyA{5yZ~aVJ9-SzSC-%+qF;%m-nZ9J5Y<1;5!`HXQzE7hr zACPyfj!bJa+QxUDcgZEr&kc(A3wrW)xbolF!g0Nz^Pc0czJPgt9a|T6&gnTLP^YwT zov_KwWh;)ii_}k;6CENSEqO6VAl!ZO6%DaXEB`%}l-*~+p~UQe?UzlY`M2{?%h=g# zq7S{l{8*_-Yq8h|#T7#0Mza~OO})7F@-&4M2Xn@f#wnZJg#7(GkCpUo&ogHFn`hjX zxngtG_O=b|owBRG9-J9@M0D2H8l}U!R#HFh?w|UkJ2N8ZwxhMf-{YmP+sZ-=RAP0U zYVG0=>Yjg9UCk)Y-o7f$X1cYnjNzlULtr}7jcBI&gsbcS=CYisU3@I{ZQtEZZL+I=+-&0A zBW8Lg-|X_N^J`zWuv_;&_gTd}SB?Kc6X$8`cOOf36g#~NTKl;4^1i$4js*XDo6x>1 z@#~Fk)v9G|^Us~%Z?N+Gdf_YE-#&{@xos4Gq&iEVz2~}|(zi1kKhM-TF}a;Fz$MaR z#q_6w|26NfjaPFKPFJ2%p0IevJ7cvuUo0lhka+ktC3yNLsmVWk@)q5B+AVb?lXJhj zzNg4sw>{;al0AXn9xdoi%+FXob+fBY>{jWh?Q8eWeB7SUUKbG(a4$NBE8(Q0vrSgS z&u+ab9xp?e8gnUq+j?-9&hw)aKi3t8GS^y7yP;+_<<+bjv)PZD8edf`zHzwrcY~i~ z>&uhd7HIghy=HsUzyGX_-ND*_f9GDAx8UE)KUK4P7T!8sm6%q<^L1Apdt}b)K(p3! z7x;5;8Yk&XAGv4YEjm$K#^F#nPss#-5BV>1G=0CH;Yevee6hmHw`(Tv(*q7&kMCX$ z=8~AR%SXen)OE$!LDz~bUm~wP~w#HAX4fU5e?`~f7SFm+i{`6}MYv<>0f3CaBLDc6} zyy(lyzxTwh^k?1MB*6Z)=Gx0SwqdWe?8|TNW!d(8vG=6C{5I>odGAkM-g0mAvSe|M z$K{hY@|1;yH&jTTn9KU|+1NzLfLflEwG(1$Og1 zdYf}jlb0Z$0&I72C-awY^npTkN}?{`S>FK&B#srjU4-{@8Mg;#$5v-d93qGA>AohPQ}RV~XpUTkUIz3i`2^aB2qK{Xd1 zl&+qWI+0iJw%TQr^!iU$a5fX4~s54gN%ZZYu@BJ;_{I0sroPezsO$thi#D z5X&1kE%7x5(+aZvZ@n6FoMe_tMqE2byQToO!Br!pB{WyPV8+ zCkkFUrD+o5J?U}5`E$?CZ77~{TKwvn-pjSoylKLWlb87zFQ`~rddTYClne9qZm!U~ zXwT&!rTAD?VzQ*kBoSv%k!=@M&NkPcPu;yc+Op+qLgw9VKVNCPZ&*9+gQowD75U5E z_R7EPZF;u*lL*r_-ufxmo^F~tr;Op-_wHRxy8?w@c%Mx!*;ChO|20qCIL@HxZs1K2K6_bKN%rEr zsK6qJI)N3%0cWPp2)wsg*R>%gOsc+`@y@+h*Hhy9_SWrxuNU`6?(Vz|5pnzn-`#IY z{%U(GP;q5<0{@@IC$o%B_1H;8)=j9{zN+&7p?4x0qH)W2{ER&Nd}rX254$>ZnJ&aP zDY^z3S!|A&e4Oj>&X7&hQy*Vi`}zItL;I!PY{;trmT-U4mS>mk-FF|Z@~*YAo6Paj z;nn`smG|D&#udJix~iENav?7$noq#m`e57+;}Y&$6DRI`^!G`|3Dw2SyCoXR7XMQl_npwZ@!{R6GW|c?RrUR*Ra15{w1sRmxLzIYHC3RQwMz8A!j-KZ>XY{WohetzKj-K= zxeGbp_5A$}rg+CsT;S(nUbpeE-VCSLi_XprwTOE^CxvtUmA(x3#Iu|4?7Mo!u6^5I z8P$UIt=9V0b<^cWc%8iu^S-yEE*HMx>W{^h45 zKBt>r+-KH5oE%pFy*MfS*tcDle^t`v>|>A3c6rOA_u0ANevA2}zC9(slPmWY{c_k* z8h>Wq2Z`FOHAP(vWx@;e++g;-1QF$$I?R!7e{P~g(zUi~hwX<*9*MDni?(@IW zi|kKuE@i5;FX4OqonPT=4&QytmYqc*Rj^5^xydvd#%*>^OHaK zmYY{j@D|cI*#EY1apcUaC!_ONl6P_&SB5v|`@gZ;8R}+#^>RV`xAYk&4!@Kxd%OB4 zzw7VSC+1fCjjrSZQHNKa}eXrfE{V-J6_=TxeS^SaPdvCue zx^iV}_dnmK`CB5LkOMlJ8+Vks*Z){zpzN@oEXv6(=+OpmMS>Nu7 z`+Q~J`Q2aYGU^`j-MMq)-Z%ECUS)su&eiL0bbQnC$zkEm?o5LpB-Dcb+cOv)L zfikn{i>Fx=?+GnJRO0F;G`|vB#x8}TeZ1ubwXI<{{KRc_l3 zTC0Um7XLk`z4w&Mj^{mj`vmuuT>Mq*FLX17WA6^5viH`!$tp?vXXahfz`-*3o{`tRRx7b>fO}ZIM3l+0gZ_)62qNy;c zqx&i7YM9OUf6uvm#K&#M=@iS!Jrj;BS@Cy8tZGp4^=;a>o_Cb(==>R>8!xd&{J+eL zWfksA&L{rb_iXMj^_!1PKUcZuCoEb!TkNBqqwUM<)i(`q_wG;MEq-Ai#}!v|=OaDG zBTr9PU-jVZ({7vBUq!zZofl5_Gd}R4{pG0_Cj{OqFU#)r%b7i;^k(t);vk9ZEz2{? zcdilJ|HZ1NCC`5UnH{I1vYs=WKP}$lf3?A^aLS?eT`zcEoo76fyyoxuo0B7sI2|!s zo#HAu|K66er48nux7Wq~_up;(b6YIm?dui)#4h+1{QnhQX1?cN`rR!Ib0^k`D%<+p zU;jbm{pB~CzI}Zibm;f%YaQ34{RIE3PQEf_=Hc&e_ukU6OZ*slrearMa%mTz_G!t^ zXY*XVlvnMX^Aqs)d$#Pyy{Sv)Y3`h$AL|_Fb|!Ausl96j z1#+#MpRZ$Z{dKH!)tR5}m*48{eEFe2@mFw)oO)r;hp*Kw`a&|BE~zuF-M{b5g694E z$^v_IW?O%CUwdig?T0cqeO>LAG<^9lz2$J?@7W2q2W)ljGzRG2>AwHr*YS<-3gq%` zmVC;a_;2OY-KU;O{r-9)s?GXa$93Z)b+69OUtb+~IM40Xvc%<5bt_LB+XuueY6hP; z$b4(5=6dIh?F;^+m#|8M+h!ov72}IhhL?6OV%B=xWB<7a`)Z2g%hM( z?QI@kRC|^2YX7B0vmR$9Y&}rHp;f23`j4bej9Qj)?!xqj?Th7RUwjuBYg+Q!>ah0W zf3r`0KNY)wTk_nRn1jhLUMFmd@Lis{h1q3W+x^#FvRW@PWSb&iuRqCSmc1ozzoFMG z?<;4He1F|`E&8s^E#qky|4+ES@}fKQY9^gi-RGB-W!`3dyZ>H+!ugK*{l_1#=4Ssc z^8Uo@{O9tAs#=Pz`*yo75WckipxU&#CU&2*8|ovD$|aqDow9dk$ex7hx38U1_@}1z z=xN;B^gA17yYA$UTfVNkN$%o?^wqC#xv!s9{ott;+k%M=ZijrukJXd~NOE%?-^{ip zweRNallQm_wdcL{HV>HAIjen-Ntw_ikFb)EQxeZPH}yB)zrWeyX|u9#!HNnFRqHeN zGn(&}FR~0jv|H(3%$6d~`Oa0xXS>!%bT-Xzk5pEda0n1M!9DG1ZJA=f(ofR`bI-@7 z>e$P)m4vtLel)i}@y|}dW@ig6nUx^d^;{PA}Tcxh|$ok)eZN zrkYMZ6}M|6lU~-1qY>xsE&P8)Do!s#blYW<1yj8~GO{n2ka{>|s)IG4bP0VVpr;)m~iUGp>+c9KS(d109A0z4htqr# zyX&grm4^=2T)6Q;sqced$MR+W-_H5|`l9~7*$s1E%G_d`xyyUHUE73IM=N!ox^EW_ zP5Jbb`&)$dbyK(ZY;QjXW?$NH-(u_Pi3jd-Ut@e}fA*X&r<8x}j+S^;$Gk<{>in|~ zGMwAF@f+(^8?NUEXYHJFTF4+K?EOv0sRw_bo3|+J>HNmI*ULZbN-di&@0omY&9T{s zisXKGJnL1N$lJcU^e7)QcihgKCEKi(EB5bHOHx1UTym~VO7djci88}n*Q|&@ZZ>b zqiZYg!rMx7cG}cvef~N1kW7Q0sjETV{vYLka_#MAWluY+I#D3D{v})A20ORA_m{`r zirL2StU{*>O0*_E}bvn2SxS+FrJp7Y{C@U1`TXEfzk9vAWS^-b{E-FUZ{c`JWW z)w|53sT&_B%FQ^}@mgkqtewvT@#Ej~R!DQiPwts^?BugMbEW0C?6R~8{ji+v&9R(y z(qCVHn4e*I^RLi6S({ZS_B{*H&FK+RZ?c*lsAg`$e);~%34Cdvwj0QN?zPU$VcO5% zSTgb9d5(S0x8E+7nIXL8<>T!00qY-TOK!2Vo1J^RN}>9c=l+_Kzr<%8bclL~id9NsLd99MtqQvB5H zEnlapKVSX!k4>KamD@W7_vJq>x0%y?R6+X6gr_WCRW~z*?oGOo$Hx9~gC+mc3#(ZS zg>JmRbXr`gY}3-0Ut?I;yY88KV%rC{wmU1DwwC`WURvH2{5Yd9>+055jEX~O} zGx1ZL?X8XZ$IjKheJJ;$Hsbo{@U9=f9)Ev0&E*SE&d)Np`GN^`iL1+wRq~b;9hKsL z8Oq;PGHdml+v~+AiiTdl6>xBViT12Bs@!Fh7s+WqN{)+n^WM%bdv2}Ht=1d&nXlcS zc>TWS(SV2Ntg~dwC(1rfTJ$Y1?P=J|1K%VT?6zmC-nm@h#!lmMvj(vh{SGgKH(fR5 z6BeKHcEQTkGUvoL_(|OeI4o^hGrvD-eSXY#zdd!YVlNn>;6w2*mJeGOIFGa5;uaR$c?UFCeN^?t#Lr%;$>CWU@-(G%rr~U_VR5& zbkaL)C+!KXexVjn-i7yG^Xsl4B_dwM@Vxh(sTChDd(`HS1f z+ls&0SO4I6ZXJCz{91gPiduuc4d-kQ=ymRKxzB`$M?|U;-_V*PWU-a*j z)VhR2f!21qb~W!~rPpWfUhD1tBi6B6eOE_mZ&g}o{SIjmyWH0|`o;bdxNq|B*oANU%Zq!<^XA@24qE89 z$B!>WfSplolkKOT*IzF@UDIY>^CDR-djI-~eEw->?$+C%8igHo@!l?a`PU)-=a;nh z)vRA6vt9PanXSF2t!|q9GOUTz+&z8&!*`$jJ?Fkn`}*Ada95*kllqk10^-WcDxXNz zc?v}qKc6=HaC`YJyFZBwJYE0SePcTQPXCAA$0zeL-sbF4ewwP^RMk={c**?h>zh08 zoOGi_Ea7+jUhpO{PWYEpVH|U9UAD&G z*NMf8D%VDun7z4Yd28B-jaho3hq?viroT#vMo5p)cQf)-kz-2T5}gn@2%Q7=XXrqiuISj2(}*WR^b2ECVVn` zQ(%wThR)RD3+sR1oHJ+r;r+kMHw!E?oV_>5XSJQ-jT?V@PBGTDPx!f4lfCEam!%RH z-1gi%``oT;+P=w4zczoWS~i8BF>AKLwEwKvHk&@Oy^|Ov93?O@Gx@-<$9}D`DEE zU5`tRmh5>Gd+UJ2<+bjse_na!ID%4L~O{*n)=msjo8 z@m;ZL;uW^O`3t^&KH;*%Mmov=SLu#Vv2ABgIeZBg;a!(d(H}4WXQIZ8NdEiNVt$^F zXjI;FE_R<+cD0P6VEJpqwdK)uk?AY$etlgTdQPxn-GMvHig|tKJLTJHM}7X)-O>WRtYHtM&aY6TY(@uwc3E&~hXrAwFS|p})3etKn38mks(~ zU){Bcxij1B{?7CFBI3-Kee!tK`{>qhhm!jQLJJKgD~%=-9h$v=PR7S4P; zyL5Ztd5@&XKX#Il+Fe-(cCHa!dpagg`C?UQSmACx-QVkUAB9+27PhBfH1(OxdiCGk zXvv=;#qoT1e|b#4c_y}R-)>#885{c+hB8kMO)r|~^NIU9bKRo!^^ZB;ENc_rI5+h6 z%`Fno)oW+*Jbaq7Z1${}ijy%9w-kSDcvr#xPVOD!dlReUMRljkE?ex6er~YOZOZ<_ zn|X!j#7*z-6Loj7y3PB>ve^5Pv~`@>^GkPv;`U!uvWr{wdfMBIA9u;__D&P@zZ=SL zed5hkqZQlg{G={)#qP2=p>_ZLk=0HUckQpa|M~xEBTdE%o$#YG`4)5jxskCXnfVv5 z>$!_+uQE+OB(4=YB?#IM?L3eY~K8n~)S9}=!fagl3@%!FaJa?wvEH1LNTxPfF zA?xA4XWpD-eqbKZ-F$~F!H<8|or(AIcHdPxA^5cM>~ZH?C$gW``7Dr*)1UNWdY^NZ zqT`-QUEhFENyVBeOoh4W#h2D;ukQ}(WBHI^`}OdrDxT7JXKOzcow_}#c1@8~((7#p zcYdCE`=K4rhrFX3-|e^8TUt2zm)EUQz7m7Yjc200mYRixI?Eh6(Yir<6%4n`3L|E5xQ1+syQCHF5Kryzct!zBoUT_wH@heXls)FG>9`Uw!@1T$fEP z%?idB?;J}xbW$b!IaAy5MQYU+|Nh@ETmJfL=v7;ld9l17J9e*Lv?K6y;QIH1%k$;- ze|?<)i|M`(^S<_-Mw_c|-oGa-RK|D1Y}v(3OZS9!Ufz3&6WoM9|1UVy{M#z_+QZEp znQ|MxAGNh9aFny#c~?f~X@&T6mE4t`<__D}?s8GF;_rIy_~n4$>&u6O73{Yy`u@76 z&bjNSao${Y`IHGa7b-I9wfSW=pLCnWl=p9Q#Iw8SdSCCk7=vrmm{)>K>FC2+q zHiyG|*6BlYHgEEqxUTf=WRLy|>{)HLPxs90?vNYhPu1p~&AGDYU&7TwJI6yVcGIeVT&ythX?wn8LCBTYN{M~} zbw=AtMX#4L)vWq>qU`^H2W}P0#{{2>vpviAKW)9=tNO=gCymbzvu3NEll=Niqrc)) z@b1=K0@>eg$=$p3aJts&%;`2O<}5O`8#kCSiJ6C%&QBF*WEZ=t>pVwH)C>WY^<#N zA5O-9YeOnp_LzJP*uSzRSn~Ms-^AM;} zuCm&=>z($VD-}UoULOD5{r!)}vQTx&*26if@z=A@&os9F@#~J-hVE1ov9iZz>aV_f zi~oLPEE^JQ@6>)j^XD$RL#4Y`Y1`T49r_?0?9?NY`uvs+&%Fe{Cx=($9rBN0Kk+Xy z>pk0sg$Bko#~;~V*eASFZnvV=$MP4_^4c|jCf6}&FIfNad_C)u_GlCK*^A%tPP&({ zUrVp_+MX^QP0qLL*6cnS6Xs>}%Kuv;Z{p&Jzk6?7{m|U|((lK2N8#$5I=4(dK0g*& zq|}%d&WJXiyLstGW$ej2TdMAU`4IK{P`E|>jfKX1iWZ4p8&;VZ&CccN znsuS&LrG%(jixr+b%*wImI}+=^+{DTG^yLaDOknk@K#@6TMd4@T!C-e0*8+L<=oYA zWHaZcEQXK84u4d)Wp6g*o{?VAD%t)f=%ub+((e{a$>yad4Gf zT>M>MN57Amz8t$0{mxj={1$oXm3c*?L3rt^Em`NCt2mB|bSiRtiCbN-sPnzOZJyWj z72D)qs23B+q!t&T!UmuS#nV zOby&T&vqvB!&6qX&+g2WT{v$`p4B=bfgy5@$=k z$T3*zi+nh8x8cmsRloh;i~3yS&{OV#^}zCNAdbmxbyd+t3xGjTKNW4zm^JNWMP z$dIbd3s>GK@}n~D+UMWDn%BM#xn^Iqs#)VY=ciw%R*kztQQ6+VaPD?<~1aV?Z#j4!Rv(~%+Y7?z= zocfdb@)v%)7oFL=mS4Kj9PP-%eJK3SA>~u$x7WUYBz$Y8%=%-c5yzIdtjG?&w!X#h z@w&X{X4~%uK0o!zEb;LF#$Wm?UW+~HIv!!LG;p1Xv*g-IcPggxzbU?X_U^6Ezr3!j zoxkQm@1xdgi|_MiNx%8Lf09ey{w@>$Z(9RDN!Ct{_tFztRC{pZnb?adeSecYUY2RB zh--@5TmHl4e`v&`{=C~gtDNJ+ZJNzJC*PLX$oKH?gx8;yp6s`N>fQ8vk+j75smECt zNGtyP*mo{ZIyW!5=lO*#ho+QvHGK{;e;v9|WbMo)Un64cWmmtszHjDa)0#%(>8wVt zSDo8ta&Bf?+Mh-GvaZ*%q9J)f3s4d2%P<4V|5Q?Xx+d56Ag9x(W8R5{NpHO#0+@|5)Q zjJIBUEZIwRGkbTJ=PbVPB7gs`e(~)qJfaTH-yn0#@MmCE#ln+SjMmDvj}9%gk=!S> z?v47+hTpkXKNgCZA8lRl6>9tS!>TpH_Saf>I=b%Iw5<&CbD_af%Ix{_xOX`0Iw z`#xAK^U7$`-HEIBoa#EL@qC4V|F?+^^R^|+M+QG}JS5jA^f*f9!teOy@9#;kc>l)k z`nILA^XB}%?6`kovV(f(M%IUWqqheO|BvOoyP`EdV)ibRdD(&4k4j7B{^)dfJ6q zPVpkrc0UhIo|{wiOs(!)jH^X3|AMbZakA;MYkJo5ZvB^cX8+~zpED+HX_%m5YHEIR zcc)T9Mp@eOu7WwtyZLy29N24f<~_$Z*TNh5AATLb{m)@_)jp01)6zF)$ljREZ1IBi z+eKmD*WdYaP4};EygU1fsKrH3+uj`a6K$^e|W6D^`e5+Yf9#Bo{?%gz0ytiOnOUk!{@J}$N0`@m^PIZ3Qzu? zaiT1|GB(`2QsBV)Db`Pqu{kFuwy%|G+x}6C$2~PJ)$vEuwuv?YZ-P$j{;pQ`i|hTD zS$)-Ich1!En1$3X*u$L}FLeKwUv0piwrump{`qJj}{>6cIwX?woS00)XAglf6s`vG;PRB$pC)JB@;Ft2^NP;O(mw-!gT1akpV|&6&aGs`KQG;poGHz9WAm=QLRp{bm#>?>SJXbd>;B>EW;_3$ zDExbrdv}+&`3beq*S8bxXNHGH+-IHX0`rd7T{3qR2buWbFqGNEJP*F$nQDoxy`tZt1s$-M1kP|S~+YZ>g` zY}y-hS+00(;)bLz){{Rtbq8<%I{o0)q;Q2JMmP3Hzq5|^&YQa|^vy#}y*8c2pRbhJ zZJl}G_{@(>0|Wdw_6pt2E4s5~*;b#9`kB5FQ|D;jEBIoRD7|;d#Z$E(TGz9`o9XD9 zyZO3y;t8g@$M@5CHRgZ0e{}t$@8>%UgSmP&bv|ysQkJWGzVz>_Ao*7+=4#?+4xH7U z_GL!(hNs?ApC8?JZR(zLBhw~)+k}HJZ`25$yQ5qw*>AnWH0Sn;+WfDA`ab#)m@w_8o+mHwGH`Q`zqkXJ`4w>t#- zTWh;4KPk=6v%B^A;jBq9o0e*R|1g`~dVRWP!JH2*tEMyAUX$>)%03xY{^6=Yv7T;w zeQoUZd&Vht#f6G}>lr|&ZYgH%J+;s;^Gtpm_l;OqH<{yFvi}dgk~{n1YGlnU(|7KD z!Z)4b1#`}C-MDAX7qxY3`fYFWS)JH2%lqcK?W=3!XH-pj&v3}2^7+wgdOtO@y1PrS zt68sN{{Fh%Kv(kWlAW`@KX(_JCnfy-iuva%$LnSbWe&{KSu&IVu=}SO$9=Z{*%ljY zy^iVb3Wvu#6L&8A&b4p-`?Boqvzs#{M4#q-|M2@v)2TDBPp)!GlJ4Z1Kl5<=rY- zT+G29D){nOR(afNopjc38@qC^$C-s0F23~OUAW-W@*OGnRhw*T>OKc_nm0j))Id@=lRY^{#Dt{WgDk$agi!pb>j1kzm>5}^V(khT0gb7 zaEq{L2}f#O&7V&{nGed|XS}!f_b1*(lWniv57M~upDUk5o#*=x@u0tp=O$e`BKG4; z>eZfi50C3T5OtR4?Vi_gZ}Fc0CcX;KmWpm!RX)cdtMvWG-S3N; z`t^TtxvEcQO0)&bp=Db#xVJ5Oqj4fC?BDuA%A145dPbr-mQuTGMk#}ch`+U2zDE&EMf;VmZ) zTl#dCf0!70G@?G)O6kLytX4b}pH^Ms1Iz0O#^G?^EA5 zsor|NUj9p!+44WXmYYBJ`zW(HWwqs6qxJS~pQ}`=cNR~(Seh&`_tnE(kL;|t|7p*^ zuFrh*Q#<>Kb3OCbIdkV#|7BgWL-)n>1ck~w-zP=r-~N5Ctp3g8`cP)A-#`BS-JhZI z`*vNEX!TEn4bl9!+zv0?8|VGxfZ(~rmwd0yKlIiMF5}r>@KLpz!zp5Yb$i3%%!%z6 zrlc&1PC2W$OmNOW5Ah8g3wFMJxU}#5kNf$*eqLMm_WTZek4D?7-3xy&@XShTyj683 zrg77s^$h#Aty}G#GGU!gVeZN6oi}y*Dylw4#GhN65zGGV;LR_kk~e%`c}E;k|8(cy zJd5wDsuyk?OYFa=J<-mn?L5bKp|`W`+#TjjiqMa)Sn=w&=YIZ)J)!R{V{UJ}`eZ)q zx3I5u;x~P_KTgo7E?B*@AzbDP<5Pa`qV*H5q^-U2q|8RVotwKXm zhwi_*`n7k|mH&^$>`Kdxt#fI zuOEJW;hA!ysZ{BhkJ%HmXU`>!eOJEp2@_v(TjKZ~!T7Da&j;&m`nOj_f5k*~=bj!8 zo2#kwXGBkVT>12YTIHA5hVi#frJs4gD=@Y3TDB5bsm5#Le;&_whaX-Rcu!`*-0B}1 zk30MG8ZFA5OJ@D@-O^d^zI}6^=zfiN@qyQ;nqF33@!daYfA!vr0%Ap5`rr4OJ$+FZ z^X2#9$8|Gq9ZrsQU&G&i>3_GaO=1l1(vMO9-Os;%+x2Vj<+A7>QHOu|+*dgDaz$H! zxWVFttu>Z%_j)TU-nyOfKR?58Rgu&c$&d1Rr=LlDyqwna zb?Ve@$EV7c|N3CMDXnSOiw_WZ!KO4lh^I>>AQD9|6zab z@l9WwPp8B!D~^A+dgdAP^u^M`vw!p@p4%GzKPq;*^zHBOyY0+A?7f_MB>CryE%6T+ z-+CoQxz84UwyCc`?*B*K#;=|~=l9RPSYRRbP3GSE-PhGr9`S3xaXRT45xI29d#lxl z-T2Jk9Xyz{AV$)`@Q~!v*M{!bCZr^ae{FGp)-)p}OHeXLt++5}by!L45q4(IW3_#M zBJE3~E5wpZXHMq7cFZzwjw>_6@{OBH%(B%k=-u!8kjceW`oQ+dnY!3K80(o^;gD!B85xtvsz0DzxXE58UHS3LG+nPrM@*Tlis?lGkIIT zd|kWGv7;ZjPXGGn!CY0oBeOE>4KPkL>3sAc=f zl#LMu0>7VmiI>+O3EDT+qj_`b-p3(D4x3uv^~-eZ^u8keiy=71(r8M^)Q1Q1A~tzz zy?Nihe7oqzIL}W@*(OSTY01-Ld}*g@Y20Tb!*+5*y4PLzJqgAU*ZW&-CX2q_5PJT2 zp#jUh*WMbFRo#MnlUG*;3q?2HzphoOrXD;q{mRqJ75wKbEcZmKM_5i(KbL-?_db8e zh6BdcBA=$%ZLprS#&8vfrvFCgJx@;_3wg7C)$2W#`i*-OSH#Qr@9De!=DW1b8b+zo zZ1vQiue2_GnXTW1tcWheP9 zP5)BeTX6IbV}Zv8BlBGws#&Xla^J$#P;IIDyu2*`X9rCx%;=O{yKJK`<+Q`A0~2`^1m!Qurc%1)H~C?V*9zOU!N&@m;Gv& z+|6CL1-oL_iM#VQTY~eYb2nLHiTW)Okn!GS?ZmFo*&*D|ja|AMV zANk51IUjI+vyE}$8#5Em`aq5Dd5!vSf48@0K6CqUMj&m|%9C}c)>PN*kvd?mz*>Fn z%eD7{i}muo%tR+WyS~}vH}9{4FV|v<_y6x<-+BFe>QblMCqgH#VLfth@X^&h^Y!3SH#$+>g}1)!Vhn?D^bTJy&nNiPy9cov+BfTktb*4B1GX(G zo5t6dXXuI!Mw{dreu@X3$< zPYfIPEvTO7xI3);`%jBfS>dRad&INL%{H$oi&-ArxxCow16w@b?!&(quf4FHbNcr# z`;@u$_a}a#+hbDY3U) zY{mzk+pmQu%?yvfR;7CD)3){A;(xl`cR#;a@S1PcOumkr(t^s@vcgZ+cO5$TNaeYP zKHGwSKlWMgv6;*kyY+?C-$i*oNf)A67D(5wl)L9K$?DplG8T)%Ai-Msy!Bx}B4rQE zl5BY0uKhaZvW$81P4BkVEI+tp?A`M5LIUw@I^#2xs? z>HMv;_n-5}EL_bLS~z`W*z;SmSBs^ut`hpT>dM-*ield0?>Waep3y9Poqql6vzBEJdron-HSBGG`RFjweW{d5n*1P_G%J(`g zh<(a-&sXoxy>z@>cDOF2wA5f#CG#zhmu;@kKFW#(J}S+-bI(`j^Nm!~ll!boPVTf_ z&wOXeU-m@FqH7gF{bo;|{GYXZR_@;?#~2^HzH`iG%F+Fc3MXgET63Lg{AHl@%j1Jr z>fP4eKKFaxwf5Y7>9ub9=BG8s!(xK|l^3*0zgW8G(H|e%=}UKcmFC^q&>OKP@%y(A z^ZbNUjs7=(n0|iEYo4$7zL~tdyen4hv0CHD`u~p#H|zTz`uerNLMT<|Pn+I*KVjG3 zN2h%gb9bD&;8@eWi9Xl;)XSDOPY?asw6O19z@uQ3$i!28a^)x5loQo&`t3PdTASk( zbL6(>X&uR4_4v-5q|H)QBAXUyt1LKr_g2xR`4L~tbL}?UuI}Gk$s2o1##isLwB4)| zpNbfAA386aEx0G`s>bq9(((4ePabI}-o0?^=eEAnr^S7%8ooFGRG#@oZPpL3*y$Ui z^EJL&mreM(D;vJ1?&CYT;l&foV&_<&;R=PTPmiH?Judd z=*n#Sb$#!}G;Z}BLT{tpelLx?yL6g#deb)l4#g#t|H^npE-uhWc6e>^@jL(NpEd38 z3XS_JlS*&TUi(^G{Q45J_qRkQo9|B1QuwT@e#vq>i)562;{SOaDd!94wgvn*So4G7 zZ%wYmrym?AheyiSk{x=k` zuee++XP97lZQ~VZzhK>I8zdOLmmiy`|I0o5>#CN$f=|t>s%Po1d%el{{v5H%`x5RJ z?5;n(Z&m8^3R$j@7k$=y>gp|6e(?sr&=+~5JM&P?nZ+N{C9Z$1a(24itlQg}_dVA} z?jHN;=9HbGpQU>XYIprwnfu4TE5~R``O>58TE3m8(l6(n)|z)IPAg!!RE)%m^vcUy zUp>1t&3ciJ#5qOVYaU5g&x)-zJ|b?nWJjvv#?VRkKDivS+I7ule^#V>)f*co>s;f7 zE8Y9%1Y}IF_`JjS&E@2sQM;Ym54ta|dtMwbRg?VxY3tslyDP4rs!xj*-|+R<@3$;3 z)?5#tZ>h6=-_{aQhpw7i4-IdeKE83zQ+%*!kM=dmr?$ZC{e~IN zO_yr63!mbd_$se5`_cO+Te<$8op)3r=WqzVt<0H|?7=Xz?HJ1vW#t7D%<^^VX2pSvoGo_TKZ&b&^{^f-QfqfrrtR2=Ii@B!EJy2jAFLM-3jULD_w-& zpSibkN%o747k75D?>^xv@ixMT`&8!nqe0gM?$7w`G_O$X)lTcS-G43b-CQJEH~Fic z@9a(YMEpJG-1@ox!Qwk7)RbQ&ro@D=&s@s3W_N@D3vo&|gE zUwM1u?c!PIRtLS@>gycitfY8IFV5{-*&CbbB76US3!H2I;jgmhEx+4Kf}f-}KW68D zJNf8_7ONGH{11Dx?!Iv@$nbrOdER{Gi|>x`eSG+;&isJfc@*&QLSER% z$A=bKb#KWFd3$l%Rg?caWRxd7jTAHgu*CM{%x7uV6>Dx^(>BwOnX}8k;@m?Me)ZDR zXC5w`d%&;PrYj<8!(+FAkMmMFlYbb-DuivmdHG=C-IW*enP1L$;a$J6T-PU4CE9}R zu=7$;w=Iqm=@X{AOxg73|NghdA(C$;L19UU^Tx_I2I5*Ef#DFFt#vDOa;3WwL2M_s^U% z%k7TBZp|etYeJZr|4jeWTeGg&ajx$CqQaiO(76I?w~J=nxIZ`Z^k2g@=`Tyy9jdze znSEoo+T}E!t32UsKQ0JuNmsmfa$?rJ$WMZAG9P(=m7cQsr_#mscck?GBxJn#-YG4v zVdmn0?1?V#*SJ^wH*JNUCdmC|`Kj{nsEcvAb$xJbxLt4t!_M^!^jx;Bf4K2L_0EbN zm8%Z;wVD6E`}pWlPsw1d4f5AaR!q^D`}c&@w=6sPo?|Lb*VT-zHl6f&lgbg&Un=Xp ztDkqb{|ghAlKxK$A1_*7YKUF; z{E?jYdD&A1-KDWptgY5HF{|(`F%)O@h<=`v(#hGcNdxWnaUK|M8~fA zcD>a0XUGG0hFRO^ZJf(p;s3p4KHC@hg@tajXU_lI@MV4CMh?aQub%zn{Q0T>_x9bv zZy#NaueqMKca_icj<3Zlo-0HrA6GG&$@wy;=j%FUP9){4EZN^HI!_|EKRU;mV^&g%-VADO$CS0&<8=hE8fBBl3#ykhMQ9)|u` zwzJw5o17Yye6{A5+#l=i;9uqT+AHo)u=x5qWa-5-pFTD2$)ETA_rFfDZ+_1`c$S;BGM+$oN#{HmD0H@{0vW@PF-^3)2UVGCbx2b+q9+Fj!o`&l4SRb z>c3aSN|sB$zxrjJ4u2p^PrO$?m=WhmYIuRm0e~tLkd&hUl z**@eBbQakk9ogA&HT*Y-?$x_6N`DuYa^SY_G_;S$ypr%ecekM z-S+gt&L_{WYFj**JxAmEH^w(FFPuwQD^;oQ$=CY)P@YAxWN^*P={1)Q9xqV8!s8R( zy&`q*TJ1ZNT-g5z+HtR2``qWX&!XR39=c50aO>w+ey+kyflu@MzeYH`Jn@xB<;w$? zkEOE>ROkLack6qw?wjMUtL9vf)Uo7>zgV7R)8{u)|De{V0|)pb+9%CBb+y=T!|ZVF z1^Gv$V)Z^tYdnc`-2LOwap!Nld1Kuqd%~|qOuRYw-WkDd#*6DpHT9>RYkXufJ<8L{ zuywsu<;jBE0Zpupf1N)+Tf}SDr(<^9SABhW@#!~TQw@Wdwl7@w%5nNCkGB#_?j=23 zcy)c_m$xU({+S!7M17O{`t`n@_JbK>MZfJdPrv{6dpmpEukidmCvOU6e%@kKbNk`L zwj}?w?X zEg_bB5B`caO1O8{wP#yVg8K6&2{&cQg)(Xt@As^IyTOBAbAUC+DG^XcbNGj*w2%VNx!)z>Sr^f-kojh5$_)Eo zUq0k~u#DLM>V3VCWGQ?4*VV`FZaf*kZ~yJk^NL*^OoeYx96Ab{h}3U;FUHp|o#am)A9~Zzc-dk^bt&yDvxQKj55DEb{x3P|#W) z-tP=Mou6}ACng`<_SoW|%l?L>?>xR5_r5Oc|50qWxl*War)gYOLC%wll4ZVuug^WW z<9>9VlePPf$o`j^Jq7c8!X5{%d95{B*E8BR#l0%${TkKl+lwb(ViTM{H*U`sGY+@V zvv=OV%bQp35Rs|&@lSh4PGq+-%dc}MuYS!xusFl;?bQm8TZi<*CMs=TrdPM`DzkOz z$AC){t%OV0h^`U68EP5!V20g93HOB$*Kn`;YI9O-rf0dgRo2FpA16(DWs*KEx?*cZ zapuDIeRi9p#BY2#=rQ59&e`rI^I0|=cC*uFN}7J@Q1*`JU3M*MHa8x85Q#=XES3 zk>CGb@bxFz6P|4DES)p=#!coZ-#5RG$W2)1v2jP&tt)3U8yws9d^eX|YM(XlY4)51 z?Iq9G-8;}8CB5hQr#;sW3SYk}^KgdP@{8|f_bv)AkSzQVu`f&2>`Z^Z`Q}5ZKiwY1 zCCv56_`l&x#Q8lAbqr60L^gBE?kQaCGJV$DzX=ryocSeLw#lZB)u9qsB;UUj@4I#O zP}Tpnt6rL4+Hao!`{?_k{oI8G)0eZBl`OLqR%d=KySygR^ww9cI>F|cA8*_u=1-Y* z`&8iTS#M9p+FYxOpECLC>I(%eKK-t;!u*VHj8>+fT=8y6<8e!dRaS>DWghsXv+lK3 zSfTZX!>zivPO!yBw>>kD{Jr;`NUuqx=GhD72Lv0VKbjuB`NK+lo@VnWtuIzu!mGs2 zcl|4V{QIKAfx5B-2Ink}X`YJduQ@95e(sDDH*y88vAXrAd@rfI>62~FHM!!}M$M~N zpFTeP(j#VLcDjE?(HxF@h1bR2q==mSc0}r};Hyn@m8ZKXmqiA3N39Z{ws7_OV_!J) zzgk=toz-N@^C5KR6Xo3>LYh8YEx9D=wD&?lzewek)jP{}C7(AkUVnLmpKL>=-+{FK zZ%b3d3*U-drOOX*OO#ajd+<+$|M9PLDw~<=tN4!HC=KG=wD3=lX^Z~j z#*gLZiF{eS*RSR|Z|QtJxAVYC?Q6+%^P26JEYjSavE{0;{lv0rzUuuq?dLLGD|Ei> z?527*Wv#bLwFAG>HTJKed-yWABjV34Gfa1Gb4#+twPMe{ zg_l{UoM3r*Zpo6gnicIzvrnIk(S6JCdS>SN%D3|*lPh*DbLZ#Qdvil?0=Mrh#)I!w z7mM2HKU}@i_Q~Egdwrfo9I)5;>vUvK+~hP%^|Y*4zkFn#UflZXt7wJUVdp**+s6t^ zmp(sKrPf#N-<>$?N<5ocR`c(qL%)t1i+tmH%b)K*{jAvDhaG&gZ@mzdIpO>U zDK|^^_SxIhCwpBu`rw3|pl4Tc*29II<*PcZ(_0GouIk+rDGNFLG{ai-VBQw9NEYku z54|V6S>v3P9Qw*R^ZF`rfmct%zPbIW7v?mb-LgQUXv+G38=fsrT>b8Sola2X=>X3Y zY__)hFBxp8|8F((^nbIB@8y5-E3{;8<6*mV|74<fSTH-p=)Q*M|I! zOQe7CO#NCksp7JSIKTM!uQ}G?CUe5qyuPfe6#M5@!qT^MPG<1=39JY?U2*vNg(;_I zZ%9cyk$$MZysD*q)s@S}j1`->UjL96*&6E4C?#~mJZyStjWSQ!9i?Xl!5tmC+>wVB z*V#+lSW$2~IaXav)?Q`Vs@8Z{^HaLDXWy^3TfMaW!`=+dVCSms$*Ip{qYi)Hb#_-= zdEK9F{9o)lOXJQTydM7Y)&JkO-y~i4(@0+w>Qa4HBy8=Y_V%KfcbaXHuYO&d@L=h> z%Xch&W1f3#-galo+U(v4cavaD;OsIe4r-zSKDAh+a{@%)$6k?y~(BO3gDLa#KOV81-=8n)sAt&v=H{k(X)6}D7p%XX8FTpN z51){2+xNb(x3x1V+}u!K7jXWhT+qzZEo<5p7JIaPyH%xU^f)t|v!* zSpO^)TI=YddEw9(ruhf#V#BwtTlL*%Wn-hbs;QUv~ImSsg zagS<3RtwG+`}SdDTk+=iYd%il&icyrbccun-@bdiX)^XtyGk_^^tpE^_&A%rF7e!X zx#b)GA=AkZ9Uskp?)6~T%_+gWrGBkR)|H!h9Jnt3C^OjMSNm+r;xqBb^veG2e{}T! z#l1|&>|;&!WfuwaD4*|@eY4ZFewvohHY#;l40or@)mGWM^={atf=iQ&Lep17FVs#mI@ua4{IY;w z{&!X88`=@a1 zEngyTt`F_==7{S}kk>CzJpOk3nhT7Ji$u2_3S0Gh_Sceau{TcJ{nmEr26t;+Ov#x`8{A{B-OLoav|)Aor^p%C z*2b1RpWrOBD)Rr)U+>?G?n`zkalY2^;rq#Z=l3T3)-!v5O!?EDH_xM|^Kon3U5zxhlm(@|4xB zot>V%QHLJLYENCPm^dwBo$It|AKtiZJbrSY-lQ*~Ig$>u{kj>w?_6HX_-xazzIA+C z!gJ;{hp4|j{80Un*gC^grBXRQvF;m!%a_R3e3+cieC4SB1GzJriz5HJ+RwVasp=np zqb-ZO&$+ns2mf2%m~>{%M3G9DbBlJ>=_c&&d6)O_gk0X6Zp+r%)ylp~(eL@&#bcgp z^^|G<&fRh#ed?VEz7I?Ims(w%W<6b8?}ty<+3az#Cqr)3} z=Fb1TWZm;KecD;iCs{H)YnF28)4CRw-r-c7qPbd7syFelNcjJ)pZ|Yfr}fpPPrWT< zr`-#-`5)E=91r*w6khzni6^x-Rp#lz9b6HmBA1enK!=ZW5DbNpZW?=$?NXeM`I z>*)r&r#m7e)(oc@BW_jvc_Lm-*TsKw=8{M6}J4f#g`AS>;70@xBPFg{`lLj zXMbjR^G`hcVG8r=HqC7{)A**992MVP?;bvLSMnm;4VR9dG2OK4ppM$h)1L#bH!3ne znK?rx++yDn_cPYFJ}BC(tbP$Q?Z_U38y{<*uz45C*2vxu+2w67bE;7{Q>b-T*!^A=9}|

  • 7F&6^Gnh+P(Z#vdf$7!@2BBrdM-m1&j5~d3OE6t#W74Dkl4t z>?<~3Uvg~j=cm3oS-aMqC~ywvzVi8jT(9((IXB+4F*Q&6vS>x@pDc$p={ric2k@KM z#0l*1XgIuID{QsW4R6K6Q$**A{t~zmQC51nb#C>V81WtayPh@cHQrlP*tB`t*AoGC zeQS2z%=~?0!wl>HN4$MMtY3Q2e1H6lD6Mr#msJ+~J}YG|jlQYxd%`Mx)$FG+8ILwD zasE9|=%KrZgvep8m7mH&+28!g+8cjyW!}Vqm;9n~cMQ)@_^iVAv50f0z@{nM8V__& zceMBglruSeTE*FIxvS^7$XTJ4cd}+aa-Oltwr3$r7xPx!yhr0tUsU!z{>_Urno ztAqa66`m`sRWh5j|G>Z8^&Y>JMSnMP8@BrB+}pZscI+RWD_s5&<_qA-n zyP}EQ2|XEYn|RoZ?r$^SeKzXAyZxT+S?+DJR%_jb%yXJUPOaM_C3*eqmVHrea&~^L zOvX1K-@S9R-$1qdTf>=ep(SA#HihrKcj9|p z-c8eod(^nhSI6965!H8aU!1(jyqS&r9&Me&Wb5Ljc=uybl~Lr^M|-?~aBc{+n<)GG ze_i6=?1g+nPgLf4uKs26>WSnlwbH9!KECX|d+GTE73+AHi1y<>3V!{uT;DFf2tF-$ z$un=~-kg4PxzU~}ip62I zFE>0m>~Fd5{zWZ*(-%c6``ycAHg(U@+0vzOMDxe~oP+l?uXO%+ZEv!s@%gUjukQTL zTK|2k?~8|LSHyP;xZRWfSG~*p^Dm>dufCgUvfaD5efq!i7GFE9B^CMAIMpD1Fy=iaITgw{#2g@ve z+|SN9a{DXWU+Xewt2yoS8Z0|ReVIS}dgCsARPNBN=iAnKzq_nk8|%Mc^~2NO39@%$ z@2Oo=U*Goi%1g^{<@06UK1x@ct-I>AyVQ);(KQK5=VX#i-?Tmo=rH4XqfqrZG{e!* z<+H=#iJA`rly)yOU-P5%YKOxS7dyo{Z{BIIKk9kc+2;L()T96Ev7Ajn ze{aUa=G%q7=fAG74BWTyeU@M2M74Y6ADw0!29#T?%{$P>6JApK%CX&4Y<-GH*=pfr zk2~jI=bbZpp0(^uhWdg>*O<7izX(CBNn8ngZz+Wt0BN`>s4B8gc69rG2+^ ze_af^&nI0SZ=7l?aY^C9LA|yt~c*`BC1@lJ5^x z|4cs<@}n#IQFcLk{HoWF{^e-z_IxsLuE@a~hxF7Y7ZoVW@lH#PW0P&P)p`1z;p^e7 zI{m5}mga0s->!N*Uh)3kcCUG_%V#kkE_lwudd|cwKz#2UcIkC5b~yx^uP#3B6@LAQ ziZo|v+p~RTCUP&9e{inwEjQdMcOdSA?;Y{FPYVmx_UM{Vox3(e;LV}5?+Nd{_gH)> zQf5D}Eww7aI&9tg(zx_o?TM*d*Qo!@SKMiO#OdKT)*kL<&yVhWw&9*_U0q#tM0n_# z*Aag6`qDSG)=paR*Ch1YrHtsp5cd`L-QqS~IsCg_J80{wQj@D`May6QF5GSL)Ymh8 zd+z)BG5>wGADdGYU*`9B@%{yin-A}f&@0s3GU5D%u(D>JOR`$0ZE9lbc)rg0v4*cu zn)|vz+E%tWAERlPxtsp^UM|?y!}q2j<^7K{;U*U8=4MMTx~#Qktd1=VO@DNIAro&j zr@7bO*}1<@CG0hMTxGCQA!^aZ0}C7qR7-2~mY3?j7Q9r-S!`)7EMBKn+JEYo`x*aA zYui0f%qQRYdY}EbcWA9t`zGIIoOd{1{@LCV(A+rxM~IEYOzGfY{x_u&qSDgm>YG|QNLGv*E0)twj|kIerCnK zS!SJUcga6_ee7waPIq&B z>Hlw~nCi0MTX_8nJy<8R-=cH-$IUNIo}RiTCYN5C`QuRG+!ZFDT{Dgz^}7~xO7iu; znQGdf+5dj1jX19>7CmiS&u!82|Nr#uSDN=eJCq^*o{QH=&A#+bUiZtRd^c9?SYXU3 zIOjmrgH|4mPja7nf1H}Vt8Z@Ay4Pig=P2)#F-q?`BT^Q%?YWZ0_Z9L?H})Ic@cm>o z+t2cPNW;12f|&2MFB@am@<(gOeVqGeg2dUi!cTVv^saEsU=BC?kZgI~w6oN;|AETe zi_CSu{!aW??UD5N!%Y4+`}bzTeyfA;mlN&nTZe=AvMBTch(-+x6yi zp6`&fStOWuBD}ZeMN_-$^#%>L95tQEZ8a~YVz!GvjNi!4yE1I;k)su-D?5b$9(^kF z@e+&Lo+TTf?er}DRIr|JV@c|f;N<)R@AglBTUBhc?()4@yPowyL3`fn24Aa>l)7-@oDhpYL=0`}=#F(tDTM zE!#1lt?ex5zd22{ZG!XNw^+7n$KH^a>+^Z8bBXcw@3&l!xcp35zw|}Cedzi1aLwtf zJlfUKRX(#Sw(E11DxKWP@O9D66$1N~mF@}qs#PEWWQ%*j-_`>P|_k z^OA+Kb89?9n5UOs*eZTz%Ky{%PIaaT^S$?4c5t!H8DSHqCkr<`-@|&~P~XYW6L*^} zcb_v&iLF`NJts*{CZ4~2()m|ssQw=>z=- zqdzZMcmG&oe_$-XxI~Rjob0Q5hx+Q`@BdDU?_JK{Z*E`mRi76iNvR`wnaGF zehSE+t|pwfTdv@y>dQQ?vdIN2IG4*AK2qYn)@$umw~15m(!plwDT?cl+equ)+ZmK* zwD$FaDXsDBLW#MF=WiNZve)sWbBn=tH1BgZu3~uW+JuXVRFFIL*}KH zQqOoU_3%I9I9c$#@S-|L{u{>yEdPCt6}$@Jp7$!{LB^S3VFJ^TOU za@A9r$&pv&GMFP<9GN(yHJFr_By3o@^3VV6XLsMO{%-fMxozq0--*-Nm%UNCZ|m_YFYx}dWh57RJ zg74(s>|4iu*zAa~6r!~vGE3kPdHgn&({L{;_qi5gt z3V7bOBfuvzs4pYkHeL_x&6>&|J3EJe+~!g9L962KhFe#q4=KB@sJ@xkd+`XLrP1r@vFp~VrQOW( zZLQ6p`%KB(a}(Ppm&ji%yVmiSM802Y%XR7J+JfJDyDN2Gud8nV(UQ)W__x4gy812Q zbFX)l{n_)Uq;$>iU3H(?o*Z91udvmAQ+4U;)U&?N#luR{7VBNDZ2h?Kk%9gpNy%>y z5C4^kv6JUt?Q{0m&$7KQEhHA1PTl+IZ?(d)<*w?F*0Z1Ra9%O}M5^HBlP+zgLVFIW zFY(*+%JAvQd?jBg>&f>y1*g>uWPDq-Ve{pXqVTPk_B`GyAADO#_QWis(rpiBol9V! zc>dh8a~;ZyeM=A8>VgOVfY;=wsUT59I#+`~C7u2mhAx$LH=w=r?hzTd-E>Ha^t< z{x`GzuI)>dX6isZ%TE&zdL0n zT*~_Vz&7ue*4oM}aW(Hpp4mGVC09lFDoxFp>o?8pgEr%w?AHZ?W5s-ME?DZ9-hHQeNb$rKK8|mXy{>3)@jCzEccjVU=pS$OChcI| zpfBdO-_Q1sL+|TP7ILpP+4UIRR^0Qm%wktjWVuAaS=|tuOKa+F7ToWsdjIcbiQ1a| z+}i)9zxwrpm(xe#oZ+SAT1O2hWbv@;1w8&-DI%8~R{hTOCYLeyw%azr2Muo~d2b02 zzStMBo=dK3DI?pO<-U?KE216j{NBc{%J^jGdC~XH9u|jNR$OOIXRRy|KD#Va%ezl` zpDYi9$d)yE-#N3R@2Eepls$MZXS?3j97~hUhxy;L_doXhykM18Q%O0?!dHU1)kdY} zr_038E~<>;cmCB>{=p(xbCyoc&O>YR{9o_o*`dLa*TlATv9{BLeCcX5ZEq?=~ncCW*7CI(hrwT%xC)SB)6w0@TU zgAaX9-&;E;C-|*6U-YI%JpQ!q-cMh4cB!Z&#j!VX&AA^Xv0}2M?6#X{qWps*{(jXq zmw&RM>H0Hv!x_D276#4uxjU+g_1?$jBA-R34{NFh;?4)$U^^duHZ{lk7wpNz9 z_`DYrlvk^dTp#bla>UQ_lE-5`rPi3MUw6ixcRgGcad7d9o728_8clDn`0&4%P-PSo@ic98Z*bc?L z;&REodTA2xUfi2o^yBF~1^Zq9?xvWWu3PtTYIRgdX~3SHM*H|RjeH;es=Raj`l)5d zf@2cr>3Ot-UA{3-Y7O@+*$FG7`{h_n7)=5$UR<{A!#m?k77z3zjIWvRuyU~OoWq8BW=Z_TTAG^!UIxp8N^v1^i z^|tFn9PfsHHB#}OBI_W#{o}&s|B5J@xVK>J0&tT&l#I=g!se zSQ4l1>Cyi6n6anU#ghzW_oU1=%}QqTWhpc3%f0p0ujlU3ca`N0Omznw*)M9fO8#`; zTNrEYrDYi;H&4Xv*CNSct@W|urJ}dqJznS`YWwGX+2@eg@8aj5@9+3}UjC*}kcG3i z#LfHNq8YD$rTY0UIO?w=@3i)L&-)nuH@7UMw2ZHmybh3TynD68Gq-H+KbrS&>`KoFHZBrg|n%(&Er9o^T>*Q4h=ECc2 zq>n9~`|$J${?8l%OHNGqEN&tx{6c)qQH~FFk7Ly?=DwOTiSOU+ zi;xw#tQ~v(qu_3fcYF2!n0ZxSY%?j5nYc=Cz1Y(#iK|!Fto!|4ie&*722F|x1fgRk#pj6L7)r5LvJBp+MZr+L3Z z%y&HZX%DROc~bl^Zra6L92#cRMCQLYKUAw7>SmmKim0C7X7%$ zS-F(G)NnzutYgN_@_}nQYP^@kUuk3W zPiT)#4t@QieVt~xZTJaR8P)!1rriRQAFj8%J<;5?rqI~#V&eaKN3G1wBp)4;TUE7X z`sR=8#NIBhkGWUbQfp^#y<)zfyxi+G*{=0#zcc=R@%(dD{2i-4U+t>0O>(b}Sx7DL zQ*?T!xiF)=q0D5)G2Ok*yV8#`FHd7V7d+|73vKJjGaY?XjRI}LxA8_A{4R~2*gjkP zwQCRy*REANbn1%v`G18?@0w`6eBE8a8M4iZr-=&2P`83?-{K#JSr*lx@ekwUtrQ=v-v^E zRyTh{ulSv6Bl7*>(_M1mUq41v3$=gxcl)t=@UwHz^G`qBe);ER_v5>sGuN{l@Abca z-^K0W?8T?2O^&*i#XMh4*t(2g?}yv@iBk5nn}mXNKef9Fcdwr_Nm1xef61G;chh8N zym>3CqiXt*?@h1$2E&DI3-7IszmO;AT^*@>rO;WOuWyB}w+LJJv}H}Rs(uDctNhHy za!ZfriFn3_8~i)!gQ_A5k`v@Lmn>OcwQprtTjW~l*lQd07pinG+EjS@F58ZcfthSo ziUxPZjS8#Z&7OUm-|Fqr3rUi%X71^VswkTk9KQW_*kBUTIky7%hLS|#w)&w1aJFA|KC-X{%@%ifE>qjF{mBOYq3>$yqMW$@|M|Fa-NApmYSy3n zXI@%+$9(GB*_ZFIarX44xtaZWtFr9!@v_q3lw*MfNA9Q{N?lzmxgvkx2IX73*&>%P z@J-zA#2YwwW~<(e1MAU7=q3DNpUE*&lfs5cbBl?@;OG z-CJck+gQF`Xge&PGVT4ZQd_TvfUK}fdYLn4-#Yx8uP$eI#pI`N(!X&(SrZ?9H8HZ@ zcJICW_v`$87nJiO#`#?p90^uOB)MpC`W?=y?%$loiH z5E1!$(?S2+vI2`J?=3U=QkGA&b=Z6P*R@r3H@rRxvsjh!l$vh~U&&u4^1H%*E&Hde z=W}(AoN%%`!Yp?+r*$%*T0=lAg5 z`d!E@_R)O*GzQB_Vsa9X=Kq_r#?9c)A=bN_)i1;fzWKAVF7A4%y#3A-o&1__Zgpq% z=^ajcFugI>lqDs^XLglxZs~jlb?z&Fcg5da*eI^KT71t!nXR`R&U~IYNmapZp=PD@ zeGO*r!dYKsYdjU7@t*MITxQqWDgLpd;eAEr^`C`vqHF$evQE7x#`@|(`@~rX*xx%{ zu2@MX-cJs9v zArsF3H_3X~9vCU_ua>{{!(;BhyAS0- z-~00(N4>I;Zz-rh;9<5BX2)w(iVS>5kGCyggIkv3pXaHfQMuIf;j7+5i2|zrAn$ zyW5jwY@(NCWzXR>cGZ$t_TggfT=w=x-r8q}#pb=Yxv}TC*Soa)Ib}iVOUzsSQ=T8X zx9g?Mk~d0C8w1uC-SI3=)NjbYcH!k&o=x{yUad^t5h1Yj_O;y}7Pq8Tw_grjw>m?| ze=4W$qaTrFKaVXqKlSsX0^#4x(aDXqZQe;+`PKVs6*gq2%T8c`(N|<)H(aK;A5iQKU*g}d%Bd_dhNsTIlt5m@7+7Dm2ktY&tQMD>h4Rs-}cpB z-oaeC@ZvnhE0yBcIjj4wtSJ5XY?G>A?d7BsnmI4dIYb0r?0fV5$ntNq)R`~LKj{8e z%Wm^cT_5=qnY-4qzAg$py!;^Zzcq^;o=h^Y^-4Kx5_K{soBL$a*Y1Vz3p=F zrl=QMKVD97=Qb8Q5IG@C(WCbB-#xmluSKtaU3>prU~K)m)K}`g-J7~ZPfPw(cVFQA zIO)H-k)6Q2=#cCt7AApJJSt`8@Ww+KYpQ%QrP{>OW=XmlWr} z_S@BD}Jv!w>S1gZ>fJ-yz()|ci|0U`<};v9j$ou7d-jP)cW_Tc1*tcrt=jk@{4N?<n)Alakw~=!*ja}C;$Ck(5N?OyXZ`o15R~1 z_WjqRek@w|T6*suei^L?={;XuZU?hm-u3+a8PO-luetB9-(Ekd!uZH9Tb&1ocl{H! z_;^D5N7e6BcIk&cZL#f*TcYngZ%xpy&izk{lDh4q&a3ui?PanH6ES!nrvE_AbM@B3 z)bmDXl$LdGzSw2H;^Fb;?)+No)Nj!ouWIKnceJyfeeA<5z1%_rhWi{@&!*07U9{;m z=e{K?V|u^5^W%>=UbyS&7tYCEk@AgmQz|6RCmo#Utq>eHtyH#YZ&LlNuDF<`d!F1h z^a!8o_Q&+8&-Y3e}=`rY)M`;OQ2G)?4O*vv%BYhme;v< zaY<@fdPMy%MsLr81(|8;P4lbp~D1;@3& zx>!QI-izJ*Hh0eC9UH#)l&*Z^*7kW<>NlBBkKT%ZiaWY}-(JygyN&YrySf(q>%QQ} zT~=PZI+Hh{y?Khys#|Z(Zp^P1Tl?jC)k(R4+>^U6No?G`YH4-B$&GpkPjXy2zjq^V zM}=FeW2Aa*oo2Yj^vfq4dnKD{h1oPGb2H2=%iZI1_Mz!LPvQ4d*Q~yvb*nN&Wn$P` z_3147^IVPhtUmwD`1-+kzezDnN_j znG=r{pNz4&WnUF@zs`( zcW#onIYl;9>dD8qIs3!De9?Mt_EmD-6sD)iLPzc8WRfm*MgM%e^xqwaIV{PsXTPlb zcKS*DQdzP4eO}cZQ%WPHNBBi1UvQc8obFa=^V{$qr`2uV$z~wpo z*_y9b8Qpf9_u4E#e5$d^Bh#p#cjw$blz)h&V`2H4$H(>5s(&0UFg2fbb-h=~vYJQo z_YZRYJN~-1AcL($YED9eD_6+zn=d1rL5+2cZu45PvQRK*-g6^pBKEPdxhUl@!b!$`?Kah`4sl+$g_Bn zAIoOF3|V5jW2W=Qmm(8ozvcbd9cnTq{GgA1gnsMw>C-q)maUffasE@!!o7~6AHMCi z7vJWqc_dQl^Iz-vSEFxUzo>jJefz_i|4a_HI^I<r3BRAWrXI-WAK`Al2dqrPo3R_E+Ee26d9*1mY1 zwbR|@n~i;sxjHOdCz7iZ;NNHVsi;DopR3JK^5|1hzNZJ74|*pDZ(O9Yoh^P%RoXYc zo%?t5ET6JS@}$_h_nX%l>zzF*a4`O4Y*hT~X!)(@TIQ^|-Tz zO}-AZrPB=DJHO4_l@KWSsMgSM_4##o&M0<2dnujtcfGaJ#TSRpWwc-7Gybi+vF>8i zsrvzLLS;vnHul_`&|w~WeP^xs;ukX($VpvU!~bGxNl1YG%2Ry2dpsh0pB;6MpD+7e z?sfZP&aw#G$yr5>RiT>g>YWXnzJ~jK7ps{$!rC$VpC0bnCz1cG#clJBhN6AnVm`JV{rzeCck9QeSs8wP@yru^ z5?fgOw155U&6*Yy^MU{$B%q8ewiApSr^tjsAtc=HK*&pmD4$~q>0y_ltsB0XFlA0<2-wR>BDPJ zGrN9o&s)9e^4^4XOOj{Ea@?@mbjfhijGgZ;-O?zQ-1c7V&9ZFnlgY25C++s&_GgNF z`I`6pho+L>neE>cuL!Q!4%@Q+=F;1XWu>>IJbi7oz*a6W`|2F|YhMo@|D&9zV{EZ5 z?RZ`F|E7rj@`vtB@M$UjE&MWJpZ(nmQTtnm+l`)_ER;>Ed@k&J=*ZO242ZsZ&6~glgYb(k?GTw z2p{oD7k{K>nXf4}XHJs8ckSTebqf;bZoWP1*_O+jiuZez&wI}(drY$R*oJ-5zQ2oN z{hgvK{?GWJ{QJ&tzt~sz?najXGvDx!pRaz$zh7+5zkmDlWbRYdy|*>$aPiFP+t@aR ztvG+W)4grp@4NbJD}tLC&b;!nc5dID;XBcpy}fMJN%f1XzxGO<-+W=mp)I@vg+H=_O+CAU$*8mOKP|7|GCUg_+`)OVyoy4{%ppPCYPV( zZT={`Cu)hlvj3sN?_WEDX9(A>@m^N-qkHqN`PY}`@7dP=|JT3w$K5##b|sh?yDc3ZHw?b{^Q5zUq0s;%i)}0EneYxKb9xeS_pp*5~?_i4M9(xCd$#X>aQJRkdlApx=*v@O z7p$|%>q|YXFl~Xw zO^%|lknN%`dnRoa;O>`mkM-j3Uvp>IjP^;h8PiQeuh}}^J*TVQobddt>qXX7S^n27 zWq*?NBJ8=R-}C$TJ5*q;milImPR=(auS=A+F1_+3V>4gQt2R!7UwiC6wd{B4e!BKf z&AX|WuP6Q$G>MyEzwe&uwYx{^ilgWKybx4o=vn=^_Ds9AUF(+?ZjN)`l_yvJ{+e-C z=*-{l`)ha3l-+QzdNJ4UxbMHh+Wuc`H4VO0z#LyUS^T8-^mBa;&wHi6p5M@U{^s#T znNdX(uDgXcm1^C)T7Pr*wRc;3b+h!cR4?t2ke2kG*0JQ3Xy~-hivRy_ziYXErZH2_ z`dj6@w;TGNZol+%S@moaf7NA72cGK)Mepj{rBt?3EbYk4AI$!2 zhbMo{JyETBW@qd4OQElg%&@6DLDpLyrIwcqIp+s(CSj&k2J=6JAu%{-sDwh!B8{durp&(#f&R1VL* zxO4iq=!uVJ@Xfis`Azga&b9xy+%jcJeE7A*|Dp{W1Haj|?UO6SURUmazp^gu(ifhY zy9_pppNqClU*Npx-YlD?+swMxF84c_`*o73_JRt>0P(ovzV}idORm;h!^SUdkT3kmUa?-W{3U3>fdm79C`ta!ua4?E|+`}p59i#NsycmEC;#E^ z>wBc9F>SZBYkP0JTH|w~p{A1Lq+HXD-mQJhZm~ZY`tnCxa?ZCR*Qj*C$_w2ZFJBzf482*pgFVV(xlt`&L_1GY^I!Jq*Dt@9 zUO8)NLH&;-aS{L3)EzdzXLGaqbLH9bQ`vLHd zFLZV?O}4f+zpc6J(Mp+#qGy%0Z(KE1eS2+w^}_7gd(C5tPJgRjvwr#6X8G6L>&35d z8yDoS_|m>;VoOQIradW&vqYZ7mgde4VQ+pBR&(v~sy9a8N<+Ezx!$bxxyQThQ2M{k zf=gCgO4R7BiED6)+OjZh<1Vf#r{>(QvAh{qzt~7!S=xO6f!Fu**YA5?mfSn*|4xk? z{ClIeS}8m-{q@6fU0%MOwT;6`H->BXDtBJxdl08Om+6C*ochY#DP|tuJqFu9|##rgFvM3Af%%nOMhr?xxM3wbvh7Sr;$<_2JI}iFxaV zLgp;&UhK$TQS4ZH=C#J(ed>mhC0Wi}#2wxQP4RI%e5X0I#`KI`vsH}ctEFLSIZNmC z_n%EN`+mPnf(aXor>5?;xl@VjTcYCTw)vaFx9sXmnBR6#cwNR>^}6)4 zEk9*$^h=f%`FMXa4NDALuy6a`Z?$UaeF{9y=HB;SO!|30OTKUR(|{HEKf+JG=Jo!s zxt(cGL{X-Eo&eXT&wnR>F4kOO_+MpJk;j`y{qr2I8yt0MQHdAs&fa@_npNSfGN~8_ ze^a~3|8u6-v8)d{JnhWY?xU|X%-y@UPMQ)U)AHe;-|LT^mZtK*FTRYp8(+R^Qn=4+ z9plR1{C8@^O?FysebKh``{#3!Yp?9Nqh%$sHbU22DO+!kUhL)@WjD12S2@JVr_PK$ z(9ihCO|V)fyv;%THwWn)t3p(ZT-Lq9by0v9+BWrpe7K&)hJ{cSTdVzBN!`7*7`2c}(&*tSw_BbV&K+p>!yLN83^mM(M1iIMwp=$+Q2_;cIuFqIzqJ=w(E z&-9zjmf132Pft(JGKno*caF*Szn#>I`?c(@H`j{`U$H%LU2`wrdA>z+7-KeAZR3?+ zdri7=rOW-8g~5~8ZM_?3?yyAPvqs`SNDPh&t~_%y&0^ldNcfxRg{~p=Z5pwnex}qESP^s-N9s2y5WnU+2)!_ z;(t$US~itIOIwPi|C+jO-szlu8~W-e`ov`&yy_KH$|*2OCGO0z8&j`*o)jO)axrIK z?7P25tJbA2zWnv-oqrF%Jcy~drv69&$S>mzt$&5ZPb2>S`t>Pi!#|xS(f^$5i$BQy zJ>(hYQ)KG@bLA=SZi(-GQ)KT5E;sozZNmbdq}bm(3PR!^OMdUWvE8&red3~jdT*y5 z&^h+8dZYiwJ@c4sju<)$91ccpFizU`ok-|rH*|~{ofx8e57AuU8}4+`|XNXEU$dt z)gElvT3q6KIqc1EvnP8!%oexsnjUYtzEtZz$FGRe*3-0TD71@0& zdU@Q6DX$kLTP)rEbHN_*vuw}rNwt?>N|FEjWrO7B$LiNIcYlBS_1#B7-&y+8FP~}t ze&2#qJ+t4INl1MjW9ZX29AB3Nb?Z+RUYEc(FN){E)!M`be2flB?|I$?SKj)_yXd-; z?5wvdTeu%cGAi2KQF$7Cuqae1EAiv)!1DRGilts>or>LCzGPoH=cI`@M4i7cb7M*L z6mh?^#PCxF>x&)o3Vv4j8b7P` zop})jF$TXXcGWH3f9@B@KgEdse~(z@?fX+*CFN7zZwU& zda{;!ZvU%sFY{clvo3Q<*wSTlU!A=bD^cN=^saHG5MNJu<@C%o(__y^75Bc~D*iOU zyXeBV+P1Iz4YwABhOIu86kGJc>~Pqgvu{iH=x;9c)$2~ry_{}xW!gLL)ql>gt$Frx zf#0hchT-=gOFh`Vxoj0fS$(pstET$V&&|CLSYKYb5wTmqF6!szwc3&^KQ6A|y=)Ni z%T1un`(p6?U$sf@OJ?(1Oqq9<{g3eLkoJ1EHTFe^>ULhVlN?9HtC9_$HdU|bDg9Hc%2@M=C-Q7^ZIZC*mV0s*pEp?T zSorgPk*RdY_wQ+om=C^~{khUs#MiY*^Y4*eB9C}C+Be_5d|FmSTfg(`hwp*wnpr|W zMt59i`1i=;=e*9jhb#78j0)YVZ_n;ye=OVX=smIMA8DJmDx2y?ift~i;o53gQ~jJ} zdgwXsRd0-<1ZP)Wl_>t8`gexR%qulZjTA1QHkhMYCN^7hUX^5;^cmMfXW#EB=y=> z$)i$+OBbdu_+%@6c)RyU`9sw&woKxDeSXILdoi{f|9}1Z^|ox;jePy?QjL3m%>P!! zED*XJfBfyF&H0_TlDGZ{>fG8aw$8xw=ij2W7xHG4Jd@z+;}3Gz_*Y-< zIH@dgWI?8jYeve>NU4g0r6y$)H9mD7%T%AdUU==a6t(8*jK_b6H6#fwUM17a#^Y`E zbRU;m?iGoGpx{_b4{zD_?l#V7?xdR&o|JtHTfe5iYW>zS5AnF;i=MkFSQQ7bO<+5C z>Uy*7qselIe)NXV{e1mSTH>Fc>-J5hPFDW?djgz)?%H@Rf!({q{m8HD+)1`o_5E-E z)Y;a|^oh-hygu!&+dC!}i zoibtF`&oGjg|Al0ZCbZ@Qq9y!k8&;>tY5r}wRx|H>)u_H*<{Ziy7<}i-r0zJ%^-#v^w+xeffA*F8zpd{2=GB*@rX1J3^Zsv^&6&e*rtpO3s(XLY`zn@`yXGv|FhkZE3a1<7l${OT@7;<*=)JK_S-ROM=jmI z9PSsF7I$elZ|(auiA8JCnX)7H$1ev(9G~rZlKZKKi|4B1YpZV;ZO?sU{p_On8$-oU zTeipNeO;~HV&$+$CP2pQ3Xf<%BilhM+ZoALX$m?kj?QiW)}ZVD{qW9~yKC3TZ)5v= zH;_rc_s@@CH*yLu`3mm1{pIbIn%1xNwYnQD7J3(deKl#WxNY5n>nG1{|GSj`Jfm>+ z)Pm2yFI4?~yx+g;<>sv!@`CsJFX$z>U$u;`IXO=&=j;(55w2prV`>m|+Jumfkz2=LM%lMndo@`Q9pwaX2Tx7%B3!i+Aj}%I@oSWSw|+ee_3)>%;vVy=Mtr` z#05t$@?e(+6cNwd;Pkoauz2ERgr~K)l4UxY>b|hVQ`DatHz2nlH1$wOxhiA`kE8}?0 z5q~8z{n#5vagW=}-gMs$iJO&C8n4E^;lK*nkGbJ&YaX|&UXCmDpL%qyOZGCcyB%!v z8m^z`dU`J5ee4ZWrcxctB1d(jj>G=Bp58L*$)!sykNPM5U-C%(Gv}T;Ivy%Fph6syP4l>f8#cHTCxnFFSsHeZS0g@$mhB86(^mFE2i3rC4j~ z%rDscT4oC8i|p*B>YcYUbBpyE&)!@8(6s-UYuWjZ>n{{8rcEr!S~N{JT;@jg%%X=M zdOJ*8R|Y?C-}S_9?zeMROV`xz6i@y6J4yY^Pob3sjBmc~4R~lK%NcMdFQuC=vQkAR z@QZ5T)z8b!XQ!%szPLD2Y?>Q;wCu{q)-JE^%$dA6cI(!CG0EJodpkl~_?^R4?*4IE z;HT5}bMjLY`Tp>gx^@&l%H5Z%fhtA)~QEgP;^7&BJy&mh} zRVRAA=Br#gx%`Bl=dUB};UV>|bDqo$7p=Y9BDlY%&1`$c%Wf%&g$^8ht8cvDAHU(; zbk^!(`Q5)iX)myg-@I++!nsPHV$}1qdtUpMoohQZ`M|w~ghzMgviGs{E>xPkMZNt} zj*`W;V3oI4rmoDtpH17yxB8K4#9D`m6M|p+OiO;ZcY|wt()ufr_ZQAzm44{q+XvU) z@&1rs`pVVpfpTY$SxM&WyAE?bHs4(kz@M-_=1O&bbfAnwq<`9bD_+tOEz2E>h4V9 zY@T(9;YQ`Wd(*wvzHHYz9WvLdr7ms3mZxn+42#ZejuSoptM|h5M4x+`%RgP4aIbW` z@XyY?;MF`O(F-Q3nEeYBKfNqxlIM(?7>lU1^Cu!~=V)A>y6~%27N3@Y?}Id=7&s9^@q_){*>fE~%99o^qgEg zn$BOC9>-+YAEVHhG(#*!=-T0la(vf1jRQ~h9OL@MKlhI2rOx0vM^+zwwEP{fqGP?_ z>7+?4Hu^rF52=YH$$EWd_;0i$%^3l6AG0=|eV#o@+nV+J*4HPFcZx6ey4;z^ z+8k>#A$^|&gK($Ll~-PU=eN5qH52Ul7WL&Bi}!=8cC*&Rnyr!#vE%bAD|=vTa`@B2 zr(x0>yM?YDby#&-H#Bg*!$QeR4aa&Gu5nQ*%R15V*`Xp%xS@UfnFhW{e`Zh1=#_`g z&px>5oJZi@+%@St6j#VUk6NYPR_gNmmu2@fapP5D3-UKu?7i}9n(cP`jZbTs1CDQ~ z^L)6z;?c1sJ3qJl`Wkb#RV{PR`?ZA`&vn0@kUDnU>e9nj>C?G~z5dVm^fzMmFHJ6& znd&~RiE}H9dWtg|zlNqsO?$A%;gP@Mq3RXr?=kU zQ1fk-F#W5gTCo-Dot-bmu2nwbzj#;4 z_Xjqs=SQ#FXCtP3L%rq4)7yu4v2C3FzMtRxx%9Dru?mF||LeA0XI^ZTDSlS1ef3Sw zHxoNgvrJk3Qh2J=nj4cXv*!7|`e#~awkfjKBrNGr#>Uu?%oxL%>1(q;^)I=>^+2LM zF(B7UX#>+W$z8K2g{R*7CXgo{(jA^7<{qyY5gxeGt^G%Z`@*lA*_d|oUSWLw<*J2= zz?SEe9b}jjHF_&5IbKgMG-=G(|NhX-mJ1Kn17mMh7o49F|KDWY{{i(%m1Cm<=YZ#AL=%mY>Af_eVbj? z|3|FaD6m1yQLAm&J);*qhAwM#N>>-3TxjJH6TaJA@zm9J z-+njpeYi5pe!t(-OCsGe_tMqV^4+?otA4xT@s_PD%)R6*!-VG=Uyi$N^q1P$VOV^; z$)Pnsztufld}lW6n^jIZNw=a-ZT;GTBq{%Pin7fv5puE5EsxfG9hu{X}& z@om+Gqh`IeDt#X>eyln>?d0dkk}J*SRwj8Ddv_JT+xBn=@9UY9r_^}=dS_6z%JTcI z4d>E-2{+U=?n?Ok@VNb@{TB0AJBcxCZ~R}HQ64e@7n_ay@3GIhcls`4SNxnE?+4lf`bA_F!r?ix?RSQR+;tl88cT#2A206Xt zIo+Hw&$dTIp7fr`xA1O<#k&JnvMNQcufO*rD{95`>z`x`{}$OC{bhd8O3gaG&{6#K z%^cT%O4qfWf4@nQv;V$l=Z(|nkH&?IsRZ2ZZDzLidv@u>*;mFl{{;Ov-{88k(>mC% zqGadhc_*Bf?SFj9R-b*+vekFPxVUaA6zu-DVr8E~HqYw?^^U)S)69d-wZ6}jHRxQv zBD(R!TBW@+5@KICJdF0ga74SzzdZ-`DXq}HvAnQW=+<8`>vs#}UxpQk$;aI&F|(RG zN9ovkw>&{LN&Z*=mn2N@y|!zO*3n%$69c*U*H#}qvTgcV3H5;O6U*)zOv#<6*}QK7 zpS3`;N*Dj$SK(1*8$?;sGNm8P7QSttDWfR1nK$wJjJ4cPRC`O#x~|~&Q+de~ck;&Z z(tA0{NjcLj`*eJ-UAJ44U0<@zg+hY@AX|J?&nOi{WLc?AAGxsCz|)2FzdCW)sL<2 zf9!Yq&AR^mVXKC}zyF;(@Xvn#k~bPgj=wu+#d5vd8uVzTVE)dUl!dZcrM9!@run^I zZL(^4V6~m!T3NxjQ`>h5yga4#S@cjw#Pnx77R)X84LzB5;bM$KMWoz{uWR>KTd};J zB+rwY=Uwd^YPv||@|B(vW^4b4E^lO=tv#L{vlCLDa8+7X&+*o+7G2}Ft6HXa-YHt+ zG8&-3fb*?HTr4UR*NC zIHw`x-PY5-=MiNEW0Px&P2J@NZ_zbUNw{q*C@=jWHVUzT*6er5&7 zZJ&8QjY%7%r%G|W2uv-^~%f&HKLp6<+E2^S3T^|Go16vl^L@MCp0& zO+9qHJU{uhN^Rf#Cs$`bzsdNn>)T=%-!*2DoL87P zFY_=C7BjdaT;c1oD>r;wOXE@fBfphCO?nf;XR~Xo*plf9k97D7E(>U%;=ZQ3GCq^% zKFgZ^Jq-Cf-iBXW{r6wrNqj2Z2@!rc2*1JtJP*Cuy443@YnA~*}d@+ubwB`CLb4Q zt!@dJx8?Z_7ylhG%MZjw+~t}!zxjK5Vtz;MUlZRA+3^-@|4x?LB9cCFqJwt$#AT6F zl;10wuKwq|q5bB!nbx1WBU_v;y%y}8eBfw7?J_;-Bj0Le)U!5xKW{Q+f7Ua3zm7(q zWi>+jLF>+{Rl3Cbsnx5$v-|sIVvTHvVZd=m3r&W-tuCeYqT8?Tx>>v4bqUj~;z=qy zT-+q*sHVzGPkI;df58d4I|WRa{M&YI6*pkJFV$aZGcWm{UQb!Vxtll6{oVONuC&BC zc+>Ko&72{ftKaPSIn5;Nic184!u`nEYL8Cz?~5|myRg+1Y9J6bmE=GmKgu0?0wQZ2ErmkUC6`+rru@An`+ z-ZR2|gSq)tE6r1%3u4{AwtL;p?3%FSbb4j|{eDjFvRi@{{I3)^dZk>nv}VaGdNqHO zG5WChUQ4z9x^RIj#_zs;Tw4>tuDt!!%XMqA(>CR|wd(slHP76$xZUXJw?e(MKI>Gzbquytw4fq=W;qt-hxE7Vm*uJ@`veyna|zHr$o zh4^dzd3$L_;rD&-WSI-)sybipn0|cj&xx6i4PQ(1TZO!HP0pP16?%U#uKVL*-YcRn zILdBMoIK;*jB|79r)iYkFZrz#E|`={@ zQDJx!ekZzG?$HmQiN;?pTWj@Sf1R+q>Y`+$XQlU%tquDfSOt`iwcZyOzFBTN>n_=I7neEv_isG+=X&CdBWq5&m+{Ab zOj~>)Z-uck@55gcbz{~3=4nM_tfhw6s@3+cnswHoyE5zYkKLtP)b`D4 z-MT@xfAyPi)!qD!tJGgb9X#mzEHT)hJNL+3#xMrI+kvWKZ*D&OWWepucywvo*AIba z+pksy%7kC*Z2lhq*eWIQ=TnyX#HB*5Z?V zsoNIruHdhQogF3K;gai5tWrH)Hsixt zm5*lk5@K(a)~)Ikxl1wQgj0&*sQkxX{6V+b8#)C+|DH`nJ8@ZMC7v ztTf%@;0|YzO`p6j$<&+(U3}Gw|4OTP^i;R~r#`$?Uh?_Ek)5YABkF&B`)vAQ|Ngs6 zQ_iF&cNBc^)1MTRKUv*(`8{2>H@Eq+ z^W^My2|PZy&u3}qF^yWj3kwg-{U5^~G$ZZsjP!|p4@^xqL_ALXvu%CP*SB5LI?ZbT zKbC)UPUo;W>owKc_1h__E9FbR1x42-7YXE~t!zwI@y^qLfub-bB=J14F^?NCp7<{G8k zzgL3Alza209E!QO-!@ZU?p?^XXRog8l>GIM@vZi`Tk0nsf8QXh^=l>L>!c@dHtzer zc;XcPJ0)AB z8Xm%20+;I2nY#|TB}z;Pytp{g_Po&69~rin7xmnTbMVUx)Z4nXzVY|1 zO?^#Et3Rl!UEO(h!;|Z|@3~et2b&fju*x!;{x#`)TwvX|NL5Y7*U6`4w;8D2*H|~b zu|>J<{T#s)nvKr?PX1CeyH>PSGV^5W`v+$MWDTXYip#?nnbPSO^JZAqb(7kdS& z)8B147*_FMdqCnH-oohqZFk!@iihv)ePr?M?Z5k14X&LoRe80$LMQvLp4$2q!FNN? zG05&)u%ln)L&3JBl1y#RF!hrgLRSw-Ah+U{v_DK^-#>clb`;fJd;mgp5R@_cD=n|JH3_vgb? z=Q4cbPX7Dw<5Te+0{0ugFJG_ItzA0%wEUxAPu14VzB&71&-ODvl+1*$Om4ojNGSdN z6DemuanmmkqCK+nZj0p}SrZ-Ya(nZ_x#}#J!fri05*oT@HRqEQu_v=SB@Igp8pQ&? z$K6q1=f=yvWq#?Mw}sYMADuGLWhzZNm$PZFU1zOunbIwlZ#O)Oy*gv^F1{;izv^){ zbEaQPbm!}|OVivO*!zmh+!B^QyJOpK&;H6X{DryK!kNA=Hh*vWz4pnGjY;3PR;~NK zIhUcXGEci{m0|d4y&lHbF$=jjvdx|R+$d&HT&;Y7e7CHGpWG6&Caa1 zKK;kEyB$HUqSYr<^tZcn7<{%kcxFoad{wQlLWg5_6&f37C!}m$SL$$S!<}Hb?M8lOGfXu#yVySzV0|&bvHMlJzMe5d*R4+ zMyVZ4)p{+{ZI-W$EP^|shYoY z?xX{^z5Y%(7H=fo$DbiCy6g7I*{bJL|0lkWs+M-$w1RU@Lr(M(F9DZLVcsTAo0{+b z{J%eMXX*UVvP*vxd&8tAm!w^KrD%I&`McM1sxL(+=LQ6x&{PWaeYWe$LfZ$m5=+0@ zt&~Y~{k<}Ojk!*R7Q?kng{yJTehM|tmH3d)etGljP@dPnzOox$-dbO6tx~&JVQS@L zJ_Z>%!D|O2FMj0zzWnBjm;!xyGtdzHEKGpZjtFIJ!+?Qef<%=N~6g2 z-HY}$?b=s&bX&sz@C|CL`ws=Iv)|yi`CYHjnoqM=cQya%)!c3Nf-88F^cM4@z14?m zxl~R)Z56$kn)AkEzR<0e`Mh^`beLK%^7BcrR^%7BmeDR9-I=>wPU!!_-gO<{?{#Le zt@v^%%RI}}MzUn`6ob3`bAN4G$eyguUGkgTsa9kK^U3LAp%Kwv3ruJ1nVnbJ*s`lh z&cyc1u}bBf?r*0e|HV!-ywttJZ@TcTW%Hz&`l5>EpFcj_6l*PUTl3fchVq#uFO=GP zU8|<Hy7zvbOjtskv@EP~(I&(1vg&z;4=Lf>C5lUyFR z>Fmb?Syv*jhqv~c?U-SA=EU-89qX)SFFz+Y`LU|+jx+6zvNsRy;m^uHxX^y$GGEIg z;jgbgoC#WR_{hSYUfW+PiZz}2@S#}vT5+~W^0XqYz2CIf1lumSSi5_XtwrBqw=cCb zcGxb^)4IRhSIm1_{l1Dn$9`>pJ!$W*hpz>MPA$4~cVF^CTcyhTtmn1|&&e)$uYTm4 zg=C-2pL;i4f89LR_;X@g>B2RJ_xN4%>}PEG_sGSRIp$a4gPE2E@6tjSXkQE6Z+2e& zxpe5l2JOwlieBXtS>h~;LJqNS_%3tZu=?bBtBgdx?bF_T>Um(gLfUzz_hYL+KaYKR z+9mOX?M+qg)d|x#{QJl8`jgANreorz_0mnX<(r+;6=(U})6n#JU3&JR_7)k>Sw*V) zOLUWr;`FNJC!O%SF|W;V;^8%kb9V*h{JW-jEzraIZ1*nb*7a-33MMet*;0 zwAbP-`^g)TJJwatzaFwMdxtPbFvEsu(X%tz{TK}I-}J4Wvh2?SM_KzAq4w+PS6bc% zvd#IR^u+J+FVSi>ZIunz+cb~&-(lD*w)L=Eg8Q2NEgSwd>~g3*Thesu`+t>9$Cs8x zZJxci@Z$sBh|a0ISL^I^SQHa>=Y%h*l63o`-4}{S)<60+8*2Q{?X!l6WzFX$%cQw zI9>-X`uyqFru#1@-q^8EyZpYg?WCn~zYorM7BlaspH+AK;R`r~;2Z`tS z{@i&p_bMXeqf%j$OI0nzi$wM@mFJ&OzIOk-y?o-`En45#KR0fwUEJOj7;C?e zrN*ezc%o9?xq~q?c$fuWR)ycK5L~Vpz86FMhQRMh z?=I*sHoD(wWt{nQod}bPz*bAf%S&#bn4v2&^`TbYk$H%sIV{IezB9)4vMK z<9t0H&bOEItvG76McF(!2{*iN3AgK>{(>*#{gJT3fIyz9Z|u6a zU$Wj}rxMPZ(K9!|u(?|If|1&r*)fyVmClII6yTY9@QhR$KTR zaN01=z1dS*TEAw$Q2#T=uOA%deb;|}zI;c6*`BL{KgtXDCjG3O$#+AW^Yzv>YI;Y% zM!!?v{6*{1wI}D^G=5c^nV*__)F7hErsh4*mBar+Eu^JB8AUt4^6Y&O@Y*lM^2U$0 z4EDJ%Uo7o?=cszU+{jTnP4@c5G|7;II%>%r_jKD*d|r>h%TZ zK77}e9ifzxxF+#pTmYB<)hfaKA z=i{$`zkWUIRDK!Ty{^~0Z;R}b-twd3^pjufc26|+*y{K3q{oxjK8f%47PGyL)qn6# z$Ft7W=lHDruGaw{x5xFInWIx6a>7_QY{IU8j~CUJ^q2fP$o*EY>(!RXwognCcj~K) zM_w*lI3Xda>Rx|l1iy~MKiq=L?Ze&60>4%> ze{D?onqWyO*(QMPy9b)SU3C zU!H4g+pgR6`exO%HFI{I?Cxb#n0nFVp6Ht!v#c*`{AB!g_j2%z9e-;g*Z=+ZM|;9^ zvnNFIhtImHzGoiqxsf9)c3PmnZ)x_ya|?x;Q+_-u zlsHh&YwmkzitrkCC577TRi(FjC%d|uxTy-#^kcKO7HzlKc&W<&`Xqr@ z?{Br)?+-}$f82W4!+U-4&%ghb>nNUoTzBKY=R4x=zPoU9N1d`>0pI#_>o3}7->Z{3 zD9amT)mDCfLc)&C99tClpKl1Ad#8u-!`T9%Y>kk!K0RN5s+@l1cH&|0!ZqxxR`r}_ zXZm$W{c!7#P3+NfI&&Y`m~h3klzv(oJV*KE^s8%{d0&NW7cu+w=z2qJ!O3k2_d|D{ zUn{=)roh}~A4+YqwRMf%1JCKdzx(LdzsJJ&ZrIDW<;{5^<0#7@6M5j*uYfXX_HXv3 z&sW{Jve0buc4;@}BIT8$kG0*GO5`?fO>ozq#_;Z5#O4yS*6Aku8V@_J4mV$V-GfQu z?)f?{?KM3rX6$c!g#WGNdvS7Es^yH!O{J@rFFbig+Vl%=)Oyn`=2d2i=Q2LtlUyKt zW46|^BbPR>KD@w4YwM~#C-=pvMBbmai$hWUo=eKCrR9RVvSRMr*Z-+#m@9WeaMslG z_H}=LKbF0c7i~Lf|H|v@J2wSN)!&v8xbGmc{MD1P*34$}Q(28Ban@n6*;C)XX6JBy zQ@4%hzjWnu^S>QdHyk(GO^#yau58K<$u)Nr)(-jH_w_l?Tj9>zdPmw0>nCT++&tlQ z_sRv?^bb3vryp3C@*_-q|K)cl4t+bR`A8`L+KY*05u0wGteW;_`HEMwC2KMxEYs>c z4*iu&I6g)6#)sd}?;mHsW_pn`pk68Qb>8m-|734Hmc3+g@nO~8Kd%H>(ztwuk@55sPrHMPUEj{x}d$OI|bEk6K2ZW?wwUH4ylsWkUcXj;w zNlFzfvz8v86>8$j^wmm}dy%N4xk_*OjJ*ph{#N|k$@cB>&xg;|f)>nQSif4ByYRV}D`xzt8Eq&7})LG5JO}vv0l%;*QI0vr_>-YQw0xV=`wHn+1zVYLrdsJsA2)AU zThzC8$HC<*ggA>PI@}d|?RCQQWKrm@V1vfrvQ{Pj9_{u{LjQlhZY(`!^;K(rf%Vz8 zfd0q7-mMm~W7=J{y{@>WBQj*pf$I6i>N-XFnR|k-Mz<%%vKr3SR*IC3TClTiW^&?{ zsZF&>-)^sPkX2Nhohoi;kQkwPtNW-@`RAjz4}M{66M4;>6#L@kj1A?2SE7}x5B~Sh zx8J0d)gshx8j$82ClaS{VTbgR>&L{jG_QGQGR9ne`7m8&{kQ+K+}veu-f#H&{Bghg zUcV_l0@<*&01@?$LTA4@d$j&~7rirjNz=jdtL4)gmfe=VtM~oUlUZ!#X4Ykaw%!rn zjlve);Om|lbMDEkMLR#0@I@<4IGmUD!&L3EU#ZYhDYNQ%{HHUXJTHiiFif5+vyA1n zwRvc&8W`vZ;4Npf3O_CLO;m!6)UF!#Usz1{gA40f#Z|8{T5g%sy+=XE_h<0q;9 zR9cmBz@2lC?4?WRcKz_nKj1j`{oaUVmo?5pYaUKmGR-Gyds0s0p7o4=)J1OxHYXt<3cjSKd;E(_b#gK{~2#`a86-ZwaDjJ z&XMJ%FBO>UO}3p`Fz<=G&sXE(a}SKe18eo2k3SC%y!EOpSUYtM`)9bZ38Pi49;bV2oM zWrgd!xBbsvm#v?>=)&PWKHM?VH%-(Rb6&c*vi8e|i{52b94opzrmi(UwN|KC=822Y zm)~lduO@CVxLFw+W7jhOFk5C#-b=ORZy&^#MfgvPdFI=^eEawJ_8YplKHYF=oz~H-%GVgdsgMVp1f2rZ2i=LE0rIn6Zwq987jffpXVcA1X4wxO z#vGEZIqrB`~2)H8Ub}t>aF2Yd+au{fbR3q+5QC_>Nzj z_L*MOZar7>|4!!Wim>QD{q>jCf2{k`#c;inFXGz94dy@BWnbSUFCDv3K7;jj+Y&9Q z_bp%TV|tCFdQI~?r`bOJ9Dh;w-TC>tQMZoq?>-hJYCdDrt7z4TubjH=N<01LUYosS z1#^1hs+mkW!bPtpK6-k}NPdTJ%f_iua|-{reS7qKqujB){q=XWw0bt~DU5aZ3CmQR z_w-R=THgP;M)Qu_5G6isftTygrdXK`lg8~D@n$vzBzEode@Bu53M84a3{K( zg@xSSy~Ex)eEV(H0C}g_<<@Pd(xtX(RT+x?uyA|wd9&`*4Ssez4MnCE$e+`U{F5~; z@3jBERL$yz7hf1WUuvf{Q+U^1*@Kl6Yd^kCaM|$x-g^1H>xyl@zTN2e{J_c1yJs^W z`OiN4V0%f8&%6V7wbz(m_Pu^irSQVz)6(B|=vqc!n>Xb-^Sb@t4=WrJw>o&(Z)JF% z_y%otr`zvBm#;h)zh-sd@@B<@ReNj-TQ!oi*>0v?7Iu-;QL|{jckGO#kdEcb-sz`1 zmCv4OiZ;EQ`&;P!QPmA{i}~yJ+uK}ozUS?;h<(j{i%rwcH65Q8zhguA^7_XMn6yu- z>G>9Scs$>`eOsWm;Q}q`=pQ--$6Tt#Ho3?%-sfXxmYs0#`zQ>jev1g$4sTTvVw)nkO zer$QWny*La#y|Q~lsfmozB_yVe*X|r&voWb)n>~hKYv~Jt*)pI(eLX@IUf{$bfSUv zZf?$Vk4$T>_V1s?_GJ@O*^T#NE82ZJD>g6qTNyn&@5Scq1yeM-CQC5v+r4nhnFWiV ztPS-li*dip*Hb2QcyAGp^d0Y0BCpjlTJ~7kZr@u_q%${jtI0M0tB2Cw>BJrowm+M= zdRc01(DnTmE3)^*FROE?x%n&gU*b8cYN(%F?)Az?D`3l)~C7W`Fy@%T;p>{ zFKwP#$6K4^x#G7b=gw&83;KQCDVCpGy^Xmy$GEX7Lg%p5-&p}=3l%;`$ZdRgbNAW& za-O2J9~oTk)may8N~Ubey1LOx^Rlx}>f&uzF6MdvcUvsedibkOaoFQk+5h%jTe>4; zhiB~ntVMpCx=w#6l6vERx@zmMugzcoCT_0$ccA8#wEY65!1JlCbDM6SGm_etI!!z3 z)g?duuPrMU?RxjxrPV)k**&h{>*o_{A9Px6{igNp&W6XXKf=Alj!tP#da$5xvHp|1 z-?QckIel2vx=m@HkD%(P159u6-$j*szm``@>ed?KUcvq^B`k7C&K{ckcY! zeTli@e7+iD2b=frIl+5=Q*~VV`^qzJj9CxDEw_ZtS(Ec+o8p?;4)fKEfBi6zkeI#1 z*s*38m-iM`v9i`utygP>j-1+|o3drqgH0wdeLc=vUes zP;*ChyMdO&@AdBX>-57{|E)8gcb)(HgN3o8pCb*boT~4cuXD7{>wR{hbCEJ{tji9u zlguVL^EhQUt~1>%SGggM)%v?ifB3P>Gn&sV-n8SJoO!b6$#<4Ab6@`Pm=+w)rYw}ms;ziz$uG~{aQ zLOID7I}ZH(U|X}|_3XpP|NeM-p8sZYq+Qx-+bfvf}2Om_+H1_n{kvXUHYzC zD*b>VJ2X^%O}3hnknqy$T!(%g2u2%m2vBNjl^cnBnr5pCeB?;GC z#yz;VzT@jxs}CREmp7KKQ{T0%yWXjG-rfzu$5lios3&}nvY(!}+lhPrkI>_xw?53B z^SI+Mw=3i^p-xiT~~8C#zsagg8BJL|1=N2e-qc;E;1695xQly*XPcB<&9aq zFF(Dsi(VqTu>HHk*_Q#Fa~!TY&Hl*oC0Of7msH)PXC-Tz^}n3|xhR7__3!@a>Mp-K zz90Y6ckId6(vGGbi+9zXXt*?c5Z>tJf70IxB=97u^*|ra;Ycb{(jxC z)yr=u@AYDTTY2GfrR*M~K*hz$lU+B_9*%vHC~nDpK&47}SVk*%h2 z{QNczKgmjKn+rZ)H@aW!dwlg#Qt{U}uKViZ*G^;j&Yt?xLwR>cg#7%D-xVRpO+KdA zSs%2#?R4s;ZG=L0tj%LN{nKjOLT)4$M=yAHYM=9FtqnUn;uqT4vAGHw%iEhw+gW@o z((~KXwkH8{4!X)a=KZkWc(h0>Nb+6Wrwem(MYWf!cNs~GIop>%WGnwChdcZptl zpDNyqUNKyu*f-mAE_bTz!gIRWvEO8?qb|(jl(ggBl+$*1yZT%18kL>Wt@36&y=ANp zT#9ur=bM{)OrePV+VTI!nj5A`SFAr(weo>pWDiHF$JPx_^Zq=ZY?JKydFFqgL+4}m zt?OU^@%#3Su6=dUb}K4NTBY}O|2_RR>CV5-_VZVZpZ{vNwk~FTvT$ASuA*zlk{E<@ z>MW^_qeeRWNF$~T)Qa~gc7?0y`p zKF=@2`t5GD#Jipr&heX;tG2INT=V0~uJD%uVY>aLpObd3USN~B^jf>%o7YF56-4OC zi@q-8&)8TWcbEHG=Bnr=TkgzkE)71{JXfkp>or^an@r*RQeP!L*t$7HYbJ?F8cba* zwB5Zk@^se5>nA@Z{=9PeP|SfUOU5dT8Jna0ayK(vn|o>D^&1CQ{K^V6pRB=To7JQl z)F%`ds*xNyzsoh-*!|?qmsJa8H8Yl!PgS$i*;wBqvHAJo)6TQp!$sfy(LGf6{_d5p zKli;~!)^Vp<=3-$cH$Ri?%Cij6ep?I;9@=@VO8wbmwb}5e7V2RGrf0niO#CKDal7) ztc%}Rv%_Zkn#IRMqdC_-o#(v$QtITlD<02j6e)JJS?p!?`{|6}$_rf4vRv_H=VT{d z{4nKhR(jfnp0)SCy=Qzg`>=A--ma*JsYk3TUfuKFJW=>#di`p_siznX_1`W%@qAG# zZ^5Uo>E)9%GMGhnUAp))?OD^56@G7Ka_(sM-zfJn%`m_0PpkVE6;sRe1q+0opJ#I( zZMf0K^2V`7r2jS7t9egZ=H2vYE!p{X?w-zNvNmaGwvs`maoZS}_Di#nDn2XyAi zZ(i3Q5Wkk$erJE`U%z<`o!LKb_Mh(j_)zAK_u3T?)xuuwT5BY)^V~stb@M6D)~<76 z8%%F;r`{`&>}xRhn6;Uqt#$3kK(oDWR)0hlpUv)@c+cn1l*7%9yJr}snP(k%W_svr zOzZ@`#Pv^4`d6j#%?%7ib z&(urzy=8rxB74_`h^XJ6m-3ji_3qVoZw~GXU9D*IDo7|axj1*vvnRJN zsY(WaEM9SvXW55Gd9HbV@k=Y$JKbWv(|7#qk#kz_E_%eu`?Ks_bbm!da|qu#W~ukF zv(x2gTfKcaH&;Y`d8_f7MTT5&7Ab5y7Pj2}VX0~2bEB z?tJ=4V8g%P=i2)2CrZSvjx`Be|Kj^fGrOCa;zDs3`20k->XctO)iuf9GN^`FX%UF6`mc8Vk;=|_+zl;KOk1RM-@ae9`G#$B@bz--QM6UOW z?yA1gSKL!lw&-t7%Jsb7>94--m%C=!?VoVpPUuE$=SxqY^1YV1LcTv{B6qD)jv3!j+}LaU%3{NvW52xe4*b1PsIYlSpi-$ys6=Su;}tp|GuAvl zQupV6&nxZXx1Nb?ei=;cml}$jT1x%1@;CZD5Pa&CGkJ1(Q;CFJG(no{!kSe|OAA@u)wS6<2H(;4D@D$XB|1!LV%aGQ(}txzgEm&sZ?zm|G#Us-P%f7HNVI5Ot1Al;QUwFT93+vS0b@js8_1&!QJDT)YUFXaWQ~MA$fs5^={)z&=$6c(AwzYQR zkAIz7zfYktT=jRFz3=b#laIRJpDnz#MW-ia=ce3yym?Y|4} zjk@x)t>^24sb#f!&)pTz$fa(zYc32JJ$YR9_BY+`{wzHf4?Y9 znf0kJeskTMZ@IU=cYMuaPxI-kMPUMx>xy5ep%&AjTDE&`_&fA5FW=|v!oRZ;kEv!(_;xNw+fd<}wyU-~ zOIgtL6>Becmwe^BBi+&x^2_>FiX|`irQcU2J%z6%eZ>UJgwLTFPkYu0a;q97 zC-G?K_w%~$IK}0>V{XRz^do#MMgBJC6A#Z{{K>DvY{I?OFFsstD%>U~_CsUu6@~v9 zRUhv3iiR|`nW=N_NuQdw|}2q60ArHvZ#Bbpu6efD|HUxCVI=HZ(dW1R}ZsuW}MOSMM2Ln?FXu6 zt=&I=QcX_$_iY7lJ3^h}8Ru0#n32sD{iw&K_ba2KUT*Lk3$Cc%(8U&~SBY=1N_Jx0 z-TvD{W=on#+3y9%-SfI@9<`mG&DIxJ{`^tG?F085V%IWw_jm5#3BB5q@bxLD&5Yf9 z_bl=F&i7CKe691|BVW%ZR=wA2R_8pix}o3kc-h^){zdHjo$7b?xL%$4*^TQ|_t_5@ zgJiaciuCC?&fWhh|J+{7gk4;+GdC9XiblWC;fYM%>vPwIEl5dAu{LkkIiZMB2YqeJ zbGmz8uagS>QN8om`9fRXxxe||JUuq8EY6JGpzw9Z)a~1pGZyd4x@!1f?v0|*-K8AU z7Tptjdc@+!HJ-Ct&Cg>wf2T;9YMI4-o9y_@N+2L8KktIU_9dTeF1>C3c+M&EPM`i^ z*WP-z-M7+|z0*?{pNnRB${dxpIQ*{UdxcfalGW?3Z(rZ8DLw65*Vjk>vlq;p^3Cqr zYx&rhZyF7{+&>?PKl*K%;(9SV53Q5TqCE^#9?JL3wP)kn`8Xij&2?$*M4@+olxzy4 z&gQL|z{k(FCB7FTqBaj0N_ml#v^{I77-f%+X$ z^;S8;*W%-Y6XMI=`LBDN5Ae6D=J=X-FQ>$2=e5=Ia;NJVCB}Vww0L#PHJ7b@d><~f z%1;rN;=Wa|-;cwRDP?ib{soz$%+B%>-<+5J_VSOq$am!PuE;gjwqLtGYu2nemSeFX zA^Fs&vreUTQ)BP2GtG{95Sc>%T9*+>*T#Zt+~P_fyu4yIWqE zELV&FdaPxpTJVy&IYr9G%sUrIMsfH*y4;*`%J|3Btt^E;2PXDDl}Ofons-qm&Svc_ zmgL>Fv;8F&$LMq~uuZfy8f_p|8b7scQFN=2Duh}oN?DD^!ul;e4t0qpbKJ`iD z_1WVkG2hus^<4vRz5na;RnJ9kq3w0Ext+^`E;JX)PSx;S!uRNx#f_QY_HZ4v;Xa?j zup--g&vq3_*Npam^X9(fSK$}GEfBWov*YnAS7ICUWMd}qsTT-WsLp~>6pGo@||Uy*dmQ5So``TupE&4SuzXBM=*>ENFvr@16M zwbc6doc6q^9E&_j_duTI9huhGSvEY_y5ir_7p#-#=q0Gn>oqMpxUM8!q-gXA^}64Gn{S~Ub+1VOIJn&~_VV*P zth!YZVxey;lzlI>6wRJ0^yZS-rb!zPSJ{5fV-CK)^LrfYhelo*m*NAbzTOrUe{=R5 zr@~zm&OImYHQ$h1p^_!eR_4|Aj*~-kYpu1+FO_o(b8lDuEt}PsFZoix_GUmjTiJ)I zr%n6#Z*062ohI6SF7{bR<(bZfapze-ta;VkvV7&Fis0^m>2ISa-rOCi<#y6iZsoP+ zKiV@rXP>$;XUC>M-5z$)Yu?I2YjyP$Y*(FsWj;%zTqS_VdHWIl$nV@=C+(eo@0!Gw z>Z;jspVxCfY;1g&Zd56HD>(h#C(&M)T}{g>9PcjG2)?wA^V(;D7qN>I+E1G8`(R<_ z_3mZ1jEj-~e&%!1iJtBY_D=ZJbZUO`(S;Yk%v>e9T>kXxn0s2g)D4T~SgG$l$~X6J z17p2g)v0^l0q=cswOhPCho0Y<+I%luba%#aYvH_ICBo@`LKlx1790t^CKPu4^@m4A ziL#=zL#5VkOy1(QKk(ctvo#6q(>KhUS)rP^Ks@f`$&*2QU4OmV_~p~?{Z(cwHTLhZ z`8xI1v&Ai6`!63abM|=u+Ba|smk9fHeLQwwY>ED)i3RTb9@!q!j~4Ad z@^hNt>bYAIR&U(v!?Wf?-h$8b-ZK}n@*NksnHlW9Co8?vQTXVJ-u!Z*XQGd4Z{B_X zH0tC#4px@fwy%e`=&O3Qd(6LTl=I}S?YFmSw>~b6`MtePi;;Pkz;ySO;x5k}`kqb5 z*5P-yIVaw7QQ+1dx3Y*E5EgQ$E|{cGvs5k&dh!^ z$&F7tMStOyyrj8@xvk{B{n&bSPFR&*y-dY?rj_3hdEDO2)a$Zq#A$`L=#({!|e*?ODbuk&8LA%2Qd3Wi_p) zeXdvbZkAlLc$;Y9~4$slBa(tzAJW;@P=T+VPuPl#Q%~XtwSL>F! z9{TxjmIJ$}tVaF5i(m4uyk5UIX)ou!>s;S=_RbKxedcUp_u2D3%F-s2Rdc6&*rjxJ z?&PYD-6Gc(^6PgjNndl=!?!tV)_POFOKSJ7z4@-A+7C-PxCK@t4{2&oc|(_phh#JENx(aA<7?|31FAKX>i_IsKUA6z|Ux z%a!#XUJ1V6^CMTqq0uAFP_Y&%MY)s6f0>_HN3C@OOz^dcM*M>)cOgR%O1Oe(FFM!+W1thdZ+- zvs~BPc+KItER(BMiuB5P6X(4s(FdJpRCfE?LWRdC6f#{K!fs_eYz=Eu@c93~G`wcM zbD&xO?AaDZkz0IcoB1X2KetKutFOFu=KYpy?6bd#-&DAN?Zt&XI;mVF)YbIm%$tM;sIy1ha^;m5X5+q&##99P=#FY!}*!>Scb{l^m=yY#kQoWSkU z$MaQGH7{u1-^2~`|NRi(I6L-eA2ZL|@^>vCH{90K*nCfhYj?z1vkl5!ocF|Egs1)c zvge)l$0!Fkr?~%r{xqztd+}D)(NC?6?_2C6#aRYshYP>XRla|9@wG?2C4Z(zHvT?6 z=f$JRpEoXh7PRJE*~{1*AK#zGTmE&L9lcYsbGwee!5+5Nl9dPLgfAt|ZM3QhDEBk@ z_RWjMC2snOe_hROR_+zYr4RW{{?(DVXZpq+HPZy7TvTVq=gn|L*y~sI@xI9J?VmypZ_@ev_5JCHf-;BvN~ZP8t=^W%w!Lz$S}xLG zqHr?m=XcjHdf)7Ra`eb+&S`I8OygM>HNl=;#eRv8{_4kU(!0bK^Tf#rzwWwrJXP*_ z<}01en~UNE-|-xpqj+QauGblH)21}2&EZS_J|!!gQ}XA@1=149wmr9$Q#qq0I3BIv zp*O?!v-q@YtuDz$(Ve?0LJb`LEr|Fpb+swNTI=w$rmy0C5t}MyUtfE1()5(`(mCg~ z-aOZ1KF+@9x$C|p;jPk3n6I;a*%+%fF+R_u(_O8&r13$YUen{VM_-rhjoz~ICD*rw zmTOecFwU^;zit_{a^w2ME=xu6qT}aGDj7re`AxU{uxaJ?)4Wq3vu}uaF0$cq$zA?0 z9mlsX?ta}L-W~q)*V9#V`EG9$_#N+YyZBS-osdT=i<@m`H1D{ldTVFI|2ra279C=E zP|7JWPk6(;N%I=7emgFG==khz^WIgrX6)$GfB&%RLR58~%>JjP(+qXJCq;h@UUuTY z&W;7Sitjg`+q{wQb>TtzzvoPY1;vW4ujUndwnO0dkv|_N9^c|!n6UlXn?I%YHz(U3 zpL|?p>WhjcUymfs-2PmWJe9zBA{Sh}azB6Ab~JC! zE|w3~vKMbWG11@nZX4(z$;7yFzwM?eyBT%Q#q+@#n*X8hkIO zvaJ67$1#5HQC;4$7dtE3zZP!P^ZfdH&6e4x7Ixi#p1JSa_17!*MBJ}EaDKmsa(0o} zWb3z!!!j~mPObee+4C{cYc98|3MYHY!<++rT8)7vjx#xerdIIP+i=~!yr=F$Tt8#= z@@FZcH)ekfofR$j>hLC>+}mrPhi%}y8ZY5&ytzj?z3ftZY1O+4r!LMGM7UkRzKUxFQ~oa^bQV*zd|$S7i4;_ z=h9v9&xh+J!_&Zs`WxZrPUdXVc5W4YJ3Te(*t_piH{b29D_diy$*o>`t8C`|-Dc(d zzZ`Dn)=t)1enj3u=9V|ZW((eLZ&-`(1Ue@=RaE?O|EzvWcwS@!ztIf8KM!75v>#bF zr&sjW?7Em~sek4w-0S;1cdf*|UnezINdKJUZT&UX{rF?)Z?`Jnbo#uJ%2k}pw(G`{ z%SOM$9g!zuqqSRutBvox11tk7Lcn{R#5EbrYW_Pi}fuZtz~yvb-&{hJpQR#?_d6^#)!7 z{o2J!oke^+D}hrFy$4(mU*cZr4F36qa)j9<3TaPh{{yJx2F zaA`5|cx3a`)d^5Ugvq zzC}``;HLDR4R=ERl%|%I`e?kj&R;h1xA8i`va?IyiuA5tDsx-zg3Eog_TaXEd?%RK zPfg!$?ju^4Jh7?lK>6qIH6M>(h!rkct4|Ha%Xe7m!Dzn%8LSwO^VPS4)U+^77O zn;tgdjb->fo&9(JOQYEjXQoMpR;`Qpdu>Oho%9{?749D8SNhabJ0qrd9I*Ugcl*<> zBTHt-NV#DlN-?#K=-^rE8Z+&ceV$uKj zHMhOf&tCkx>hzn1=YIOTiq%iN?wt8@=Uv`;MaHge?_v@zR{k*l{d0ms{P~Xif;Td! z{s>v!dvuSS!N0IQc|X5gD*3!9WJ&w6;~&M+?Vqe&WY^oxbtienY}PxE#l7bH-U(bh zHz)If^`*R*(G{g$J)c4}{3msA_3qy5l<>KZg}1Pt)*|P z?tb2q_IaB{{lEQUcSYBmt2M|kf4JWI(jS#u7j<}d8XZ^GEN!$AK4QBe-TP{h=JvB@ z3XkNjGabHPoF$-N&Q;uT?f!Jjra#@XL9f}ZwX>`59)5f4hyCu@9iP7|-P?6>#redz zb*!&MlG6RXHBNR_3w)M%&-6n~xtz7XbY|_+B^h(oeI~bdIPpHx+qY}aA}gC`rTm}G zTdn!?`rg&d+;{t=$?pAUR(_4?zSqCFsw59{ibC#x1!7<@C*U#l-JV(?thy1IzP z$!p$(#GV+Rg?Xx4=buZj3=_(|lE56gdR8lo;@={@wTIU!aZD4K&|CR;uCP;h)9+8q zza{JXz2}W*eP^`ea#!)!&p+G@>eo9rZ(hB-@}TBszyDv?c}?;UdofQmporI8Vw1W9 zzl2;vY+5=`%(1QId@YMu+Fx3^FFf)qSZM3#cb|XFX0|QZEg!SmJYf6sjmMef&fHmI zpRjkY;Ew#qa}OH+|Ft^u@pp5v-oM-D{N1T!v#GheHvZ=`DTcM>lXShMUTCan_%vgg zmB;myKH-lpnn@?Kz76xb#lJMWF5mFN?R$OKU*7zAI`#Si*%P+O)4s*-v9h^xlkd!x zx0hx%Jd9c3=k{B8+o2O$ZT3a(jw(Kfs`hxZhljARSav;FYbaa)?3wVy3nEXx7Tx)N zlJULCdiR(1KaFp0?m4`b`|@Yc4egKiWnY_bxsOFpv0}wr=WopO&g-_fl)l=|v;3vC zayrvqVe=y%j4WF>;{cW56uzkT&T z_LZT*<{9^2XdJl5QTFVb$lv2ful<=K*O&G!xV|=mS))CKr8Z{fZ7UJ`4-LGbyWSN3 zP+80Vk8jotgCh({-(47UCdxE@KmF?I66XTxmfc%wTl32I_I@_vVf%La#&T8pyMAZ) z=zI=c7|Z@iU3yjgt=mSixl{8ar2g_<-1a`_*%w|_t5@|Cgxp`0D_7p=+pP5EXT*9l zsr5{@1z)89^|-kHx)dT`IRE)eXftYfXdzq(|ff2OnLe9qa=_}AWDVaVuod23qhw&3RX zdi$QI9)6lW|B26O<0G5$V&+YAe?3o{-{SsPFENYo2VW%OwBM>!?zMSb-Vs}V(0_rE z{Igt<8{uo>muJ2ciZECFlPmRm-|Jmd|GV$jef@8}Wwwg_jzhBc(+ysWZ_qP}?LPXA zch?)`3w3vDLpClg|MVokDs%6g-%sV-x7KyeQFN-Y@<8 znEdDMj~D54-JbaP+>#A7kLy2is?9m^eP)xq+|hTB?v*MPq{bC|Tpu4%xoYL}GcoM< zEH-VqyJykXT%oO&-Cyseem@(!bNiW9dH1E3tWK$acd;X;(yQ(Z$HxQGsxRePvz|0@ zlxaMh6D?8U_F-P`lZ;b8+gHuKSs|YmTk5^!b(&^f<^d5u`&p;{ZaTAB?~(p>Hix}7 ziu=Q6p5}Rc@W(32#I;9)1H|XpZwc*rBlDu``)pc8@Q*3Us=6_b`FmxjTt9MsvFy&GI*!+wn_Fa( z#OGM;&SgT0HZ#pyf0xovu_FP+Mn zf9vA{?w3h|E>{1quZyfqt&JARZ_9b-vy)Zd$KgwY-t!Q(CvhEDB@I;TC+uU+TV{Lj zvc>Y~Q`0}kK0kA)hj)Md)=x9M=IFV;+_={xRWGsRn3DGr*&UPTT>G$s=kJM6RXt9I9-2mk-?%04|!SJLY8 zgeN9vrcO3Kc`{|!ZYjC_zcy{jKW~5K@r{fx##2^bR@O`TJ7@LxOGm6VC+wWLPQCZa z$qvq`XKL+ku|EHJbivjyr7Py9>$H?cZt~mo@5aUl=DW_#xP7M1?o)~U`4?fln&m$}eNI{dkf*_>~e=iEt1|F(41p_1(GCjV#Dv8 zn!fuXU(vhYXEz=^XT4g_^4-iEpT!T_TD+Naqq*?oU1i-av9}fCbNzxuE%(blFI-l9 z^UZo8>2qw2>N`$HSMyGucYUu+&i5ZT!fqZ9-f|>MeV1P6joCBa2A=uOkbg4WdAIMP zL)`Dei|>X`O13Zipkr3OWMj>`*IA2SZ(7IkYuaa#&tlK5Y-3w0p4fg_KXG-v?CgIb zojPxCoa@T-4Dq|B>!AMlp2aiiBfGyG{x|W_J1MX0O7Fs#{0#~D^ZDbKJ-ax5_Ue4s zeNmVet@0;dTS@+@Y@ztA_2p0d|8~zPPAD{syoX;0Lm3_SX`dqo?nUMwWPTQ>i z%r*bp?ZOumEBdOn-hJA3KT=%9zpnlQ^UD>_`|`gp6klR(^sa4}Zue68`aM3ok`FB3 z(Y@n8^M=#Xh2EELwxqpZsQhAY{9_>xzDvG6WxrEpj&p8rE|siq+I>OK``T>J^ljG0 zccb}tU8`zIT%+B7$NkARyBhnRc@>}azZFhj@n`OPslxN`SHG0`;$YQa=OcG};ro@+ z`?k-xCf(`YsJ=zL(5f+Z+M54K<$j+1j^*ill%Ib#$;v(1&uAWHe|edt<&jzgeun-H zJTm1ALFxjo)L!J7BsV#`;pL_#*?mnG{8AC`Js!=Odi0Xju9oj{huaLlN(ayT@wUh^ z<>as0&wIapzS6mfpW#Q=n*6m7tB+TS8)a;KHCNZkmRYVK{VbCefmM~wqI?J`nGi6{^x%$ z^U$x^+wWYdDOd1Qc(G-M?9$o|W_u==HZOav?Vi3qJx8iKLGJv)qVIPjIMZHp7}k32 zKJah7-_mnKt}hat>WH;QBulpKHIoliH+90?|ZKPhkuUV>4xQBx9LsY z9(7#S>m$?Kq!ag}_C)TF3K5Aj(VzZJ_nWop{kg`ud%viv9lf>S=()c5=NC8kt$3_+ z;E1bsSA$J%y6~!xcfLIgdbjx77WKA0F-vA!KAHHn>CC*qol1XSOwn?AcHgb)t*7~q z$c1y87PSYjU{Lq?&2+Qy!?o3K@-4))woJb_Z`sG&?ei8mxPMpNp>Mb=x^SQR+mcf* ze#cr*tlY7^yQ<)dxWeAo5-%LP7Vfz_>wCtb=SRE!r#)X7!CqLto1KL*;#%CEZ@=$) z`A^$fx0C7hx)aUq?)|$@S4qEY-gs~Fuj899)=tmAe_&px zY<=nNzbAtZ?C8F;;_Q$0GNN%wW%*8b1-579?+w0Co5B0gM5rd@`r=UWg6&(Hmogmu zo4DF^e$rlosF|n6E<|q)~8;wec0vD!)ERG>CC1- zFSTky!q@z~zh%#k6}w;j&PbVhZNo&pK)v;0tT%e+_OFo_F8lW9-^T+T{A$_saPCu&d=RcW1wk*!N6z?w6{q8+OlK`1+b? z(8Gk(=SN@OJ$5MXJ74@l<41hEJ<_ z)D>24OIPWVPb&3Vm0KtCmDBaE^{cCwjh8a|J>GD>_P__3*Y7S)C{=!3m-xGKx@f_A zuY~<+DSE3{u1Wv6CU}>YcQt3;;=TLr{{DQfe$A%)D(Bn#?sunemwsGXxiQ?O(XA%? zbFp*vs#$F>tUPb5-@JUzmf3P)x3{;={21g^F3BBt^RQ0aSB9##DfU6)1emm`Z%QuxUasK0+Z`A|c zf7dp=JKMR!KA+QhbKbc`eSfPrhP(M*eyx1Bt8d$queCbYD&Ost)ZY;Ac4O_UFyGeB z;_SWlJLZMQUEWyRc=K3d`FD1m4fTQFddi<_IG?Mg2zH`skU_1(UQ z8;-ZkuGW!#%=#whx6m5CASdGyQ_(JyJHzy1K4WQd>g{tHtgqdoHuAOZp1A8y=q(Ya-=|lIUkQKT zGi%*n#=zx#yT5*UzS1_@H~7MVm~7_aC!ry0-1}~FT#HNCzoNw9(Upjgt)+;PqYkT>cZ0_@j3p~GztSpW*7hkqX z+H&{(YaP{$Io}e4^|h~mzB|$KL|yxVIsK&R^~AcOS$>&6dB; ze(>(iPg7TKP%iu#5v2b9pEh5ZU*LS5SM4r;XCAJzu$a#FEUc?aj=SRYgDt3I5M7eqfFA02BZ-d2uU+@e(tGeaz8k+;>vNK+7(>Ioy%$@AG zr~KO2T4y)b+_jZV)nD$$2JF)~(pN88D$bX@>R-`!@k6`jxeLwF=G!|>WviT=I`{JQ zjS2U^E|!ipKD|Sk#P%Q975a2j{wCQgXGQ-qS5DjZ(n|W`@8D^7rm4Tm zd$-vn=s8cNq~=GiSB~CacM0FEd;0b_WBc6554q;&k2HOEwfXqejPaZ5A-%9aq3>2b z*qDAXwS7m-^`J{{kGsn*|8uZV-R{k2f30`NuDVMmv8UARi@o=E{Zf;Z+cQ?lzhXTo z^KGkbuD7BR);atvA(s&gFmp>LSDTT8lv6$!yPpxa}&>-l#5`d!3~$@$cU) z&pF>XUSGZJ`rOIiHkk^=ZTown^2YxuYZ>>-w-vs4?DBq@e5rH>d+vJMH#3U)Z}rvf zo^q+Scb9Fj*&KcA)btxCKTf~S%ls?K?Rs?;|NR^H`EFgCA-;DVgLUWmlUr+dZ&=;C zsrnZ0p1IvS`2(zz8Q5jb!>_#9v$Jd4(FYwH%-nz`v%=5eR?fE&Y zX{UQ-z9z5Z4}4l`D>LWu%CCJ(u5GX8`?i)*`JP;5bh?Dd#$?tLRi{shew)4|vaIL) z)Vx*e1GB^BZc9qGoAPYn-g0ch^%J{(Ml#>Z-}~KOb=SK9m;C zaEhOePPojO-s1;umE1{uF81e8@N3Rjh0!l_Wa?TXFBrJ{Jt`KzSUQLKVOMIWB>(Z- zul5x;J^Gy2EBNW)jQ7c}b<2}aZ#N4GpEmdRO#_qJJ=L){o8Paz{7(00Od^+G9&1>& zpU`WOugzcAUP-*p9{F5s&$E?Z&vGARnSWO_>~_bwa}yUItl&HrcO>)toTA7|JfpO-oLR8>l9;OxD&uZp7?t*ozj1ooP&(zsGA_+jHKJHhG?TbL{&4(;L1 zopO1utF+#(tEOjHB~G;p+pjmdRA9-pN5x-%SY)}qUYs?{H9Pio_730WQ_Pf?)(PL( zYx--&`COj&UTaEDWw5XAYAFf0oU$@U zBzxuY?Dt)7movP-|9shmQ%SFRjlbn_z4Tpme16IEs2^X{7uha-r(P?RTyQb3YUj_X zD%a%qZ^}{^)0+^zdZECN)<@GkZv1tAtpDoVwO=+J^Utw8zUVA>%S8F-G5N1MdkwAE zrp+zAwR%+)&mPwuo7>K@y>C9fN=kZ8qPvOawBrlEzep%PSsS))V&MKguL)nio{|3FB*3O{quqk7xS`fLLH$Vjmg|w>!ACv`zMXG5rCsp) zv`)E${YR@-Z*CI1{dw)hCl1k1jbi8iS+&aBI-%a5ZT+j5Q*D2_78^gyy79-}=f-nm z{p(S$j|Qq9xYzsGAn5Vi3+Hp!d8m7pWH^6Ny_-_}Y~D%RWlvllo_Qj0^ydXuY3t(o zAuFw4`n-)Ug$0YHh*qIv+|M0F}9`71CWB08n@rde^?z>Jw*T3?bWPi?*|+kP^>Fen z$W`j;_r9??x#n+Zt>>2RJ9`c0cpDeYd?5JN?aZ+cjrk?F)IQG5(N%gPy-{5+I_6JX zXrR|BpV;gC8^jHh|3+>Q=ls1lYgVN5g8i{Gx+9*?iB);KW@@dWxaGR}{f{!wg)V!` zU6tPQukp%WOZ|11)1}(1CEwqcICfb;ChS#j=2F?EUpB1adf+MsTMMA~rnjm(Yrgx3 z+V%)@&9?uIEwX1)ZdVI^+c|g1^wtxRL<#N>B5M(3N?2O8~f`4<%U`(A|pvmDLF`n3{& z&%ff671!G8PPso>S=vzRoM|2Ql56_SoqtmfZ!1wfoWA^~%bQ!}7izLq@A&(?5nq>< zW`8!L{5ZEe=9opYa@y;c=?C-h|0G~Jak=Bg^2mKG$` zW`|ns@V?=&>_wG(U4BOW>+KzTyYpl&SvB3A9kyVu#{C&r7Fs_KoO!uuzsss?dke3v z`}D&+sn%hQf8d_2l5frj{cdgf>vijIMfTo3#VvQ)B7=DM8mzPEsEz&}cXp+9*wfce z+Wt>J&N%S7fcinpShwQha8;#GA0yL|@cpiKR zW|9AMqhB_BgM1{z##tMV>q)H0%oBS)FJrC#r*A@U5_J~+V17M2S*mQl%8t)Xsau84 zALo5r=+3jgiD`rK-0inmyYsjIQJm9wwes}y%*u&3UAvyEZr=a&;jGNN7OM_gPneq+ z_}X<#cgx<_U(deP@AqAMU&}tgFUaL1`^J3p(&HS)VXv38g>k%o;&y$?=ItMLvle8_ z``o!&`^bI5)ni}pek}gKB{gk+^3PR*k-v9~J(GCNyzSb-H;EFLxu%LA_!n{L--9c^ zmVU~!+M5>m$MMZ<`-++}LE_vWiV4@*3E zr2qU=eQ2*l)klZMj?(PE7JYWP?|i)r_w){&YnzfkZOim6c1@R^ z_axY7Z{OGbQ}FSN-@@Nc&z6$Evi;nmAI&$)TfY2|`20PxH15pFB}q1}A6vfqZGXw1 zcw2Jrf&ME~*YW(ktaa=D+Mi(@LCg}XmCw8^Vh-3{*Lq9-<7$nl*HtxYP1DnTMA&@= zz3%U9zVUtPUgLMKFGc>-*2>iE^7q}|QF>jmcB1-+1k;tLfR+mcK8r{W|qFDE)MW)_K_@`;4o? z17)Y)dT(6aeWk*hGmbyD>%Q`iUiF5@wz-e*^1gT3@S5o@)0(0gONZTgmb zUp-!Y;dyY`*fv~0Xt&O`jqyiW*X+L#wcqW{td3fZj=v6<{j|#DE19-Mygp<3d(QRT z=SHc*hn6qC7ws$1u5kXyf~lUp;NQumLDU%~H~KY4L#$^JTXU&n62g>D+0nJa##Vc)DUkS{rYTwWn zsUgp_U*Qqs%fwxCRNJBxzwMgv?L)Mdb;!H4l|4tMOE;(09A$jq@s>e!^;zR9>nsx6 z-#`7`^L1(|pZ~c%F+2=M-^k6#s+7BA+flpzV$I))(FGen9uqcL>zcHkvCC%By%vS< z3uYgQ+r-}&+xEAm%-nGw^OfBfEH`(3Gj%>y+J9>8;k`?~1~&b?v*E@JzmthvP4gF* zsa|vY+UGY(G)wnv#=QKs)7#zWoqR55z48%%^Q_oIw$>Mdj?EJ;n{Xy$&5JU%r_Wv% z8Ekv0X2!1X#bW)ywuLXwfy-{MbPZdz=IWJc!WAmF*M8Q!A$hNS!dmMIyN>kwZTuj} zTxq<~&Ucdfqy5uwJwD$cZ&dbnsYF~95-uWb760ZM2zwk?-4-jW@4&#rB%4jNWhb zZ1UQ(--5ocQSohkAH(ClZ_V?ViTsam*!sNfN#fXAvOf67`mq1HQ?B(#?cY)4c7^rk zR;ELf7QfwAoYb%TZB>KSfy)zw#L{l)ir-aCnSX$Hz515wre7}a7$5QXU*TQynMw;_P6q^pO?Ba7v$Krn5ycWS(tC~a{n8VdBSaqmfs^PW?$e- ztai7we$zEm={MuO+4mNFk*%03*3OaGYp~jCetvZ1*%P(FIZBy#j|F}V+3B@;p{v6B zgDGWmZ>_)WFL0xFwp3Y`X>5B}mi-?W7X8k-Yo9Ng_w1kUhvQo{H>hXsc~H8j^uVq* z*??odD)$_t>=-J7JLDYso?1Mp?s?KKDF2^1j#n??i~K=798?6f}4ji&R_N{yBOtirgdz8t!K9UN%~bi zMf>7yH!sYI**N`bUvZRw{1%QU3;$kwsk$}ZrTULt$2T=u-t36^bzQA$do&)d6zAVk zdHXHLqwi;47yVJ))>>F2Ybo0^Rp!y$t42vqw<}Z1Un@kl`&a+aD$72gB=^qL`?EsQ zmcK4y;j6=0{&sEky(4t|&cFI66{>0%d|ter#l2grTzzSm&4OojSJ2pZe{!t+qRFe0tZ%#vek+u7$ty9kaFST8J z;iAN>+{n^Uy%n)0w-3))@i*&zpSs{NXyR`iMfk~qH0LMBgHbnbUgC+BuX)=wON`wqxG%oCaunLPj3H#Poa zVin>A^K%pK-d8-uzxXz<9?z46wzI+4bx+-U$!znLZOyxgQ1eX{>dtPtJ27VVw}1RI&vTMIR4%SnY#AKI`^33kf9q=gomY}|8v++KT#wOu zu-EC$Myqm`kGox~@7y^4vMR03qEYu!<`y|_Ip;FJ>leB1Mt3IZ-Ky++_P6D$pU9UU zT|vK%c6(D!$|}zLx+GQOzK5ahQ#sZT|0mV$<9T?tcW+nsH|ekU+2*xp=AS!!#N_Ft zH}N_TLKpe|R6g${dBpwg9l;~-*O`b%zwX^I$+g_`#Ilb`Ibe?R50uD|4)4% zQ+CH?k--}^$E&#x&6^SqH?eBB=-lb9{2wm8>Q&5YF6rAAmpvwEyi}R2G4tE=|1tkB z|MvZ=ccZcRkCQ=ur2N~mY<7k6t`Dut-*Qx3oYn8|-ul|8>)ZEhFH%MK1y9|1l=(UL z+wF<1Tcpcg8ZA$eyfmk1=4JbO-A`qu?>HWP=eF)SlNzUcGkTNG&kfyo%Qpw?UjIP( zWy3Lzn6PUew-)wX=e=yO-%uy%?oM-_I)$(YmbaH(TwP?65PV^mPgeZ1x3BcfJlxYY z%76cwWI6Ye@~7g6JL@KtDetq@EqgZMo3H=lBmw@oki8s__*=@_!cCsqGr6T*lVfIGxE!?^K*K<$rx&G4W-0@YX z?yNod?TO6XtEaA9c+*^8JonP=S9jAg=gpcd>iB2khWBkHvG;ZFo?c^P{r~&tKee|P ze)W0pRro?HIy6JLd&6(}KP&f~UUOXb@;Ana_meBES9c$@4BNTnfMmSJJ>^^HlhXFJ z?49}HRdwI9D?e{vOL(fl+k5DK-QV?-%ND-jue0Lq_4<+cNcZ2%cm5^MrrooVn)|3< zp)P-upLopNTR##lvl(rhb8oKO>rj1Tm8pMhq00MBMYoGLGjH}hHeHUXuJK!ORjk{* zt|_;T-d`x2r@qC`x%l_EK*@+op2mgJT>aO=7H+a>7Lu>aiB=cX8bNutq>w}FU zyWFOwd)K_{+hLhou78yE)c=Rgz3(2^KdCk6d2-kKsKw8x;Y~IldpsYBzH9n+#K-pC zX_bO@r@Pno6mz_C?h0%AQS+js2W<>gJ@s*=cXXd!kiWeXFr={oYn8IC7QnCD`KjhweJ4?Z?Xp;pWBmc zuzu^_I1lwhw>KQxeC@)yb68$?X9i6Lg zxqqO6$kBr-rru zB3s%wEZ*9>^zZFj`$Oi7@6TYrlgiz7v`+DRyxN80<5eGi6fEHX^sQpmzJ-e?dLLg<*;6KcBa~x(+QaMnFE3lN zSMK?mxvPrn8%r0P&HDOEcwct#glpgb->Ug*B*XdpT*zIETQ?`EY0tjYx3IP{viz8u z>iuN?dH472Kl^XOQmI3Qw~Z|PjeEjR>t_Di&RkQp$J+3}U&Fh3g(8)^-|yI7v_)>; z(b}0&yJKIb-tdtK*dMbjOm@5brLWPK-tlF{>N8s&owYrA-idRqb576e`tQSc{dB9< zo8umT@(Rvh?YwsWQH*$G+vDO^`}jkPwGuu@wH(%NeKxmc?zNk5wU0b|qVinfmcR~w z?>XK#LfQK&-Z$~?R4dwjX`flvqP*r3*>7=rzJGfrZc60lT61w{`i?!Z*M(u4#ji?02nf*!edh!>h zKhG_jU2MJHbNMsHdykS2)IVbRcYCk%3(na~YbDw0BJUht_WSh9UowYoOYEyUHqEp8 zT0`Y}nXY>F*NV>?=geQt^5Pv2L&3WUd!cW88P9*8VV|C=zlv-9hKlx+O^++jn$><0 z{i7n=UZg7}_+w{^tnyb@+4&pz&hw|eO}6lRzJG^q@{`s9dPPgosUc%`obtN&D@2J($ou}_F&Xc+N;#fgVS!S%-oj&eUpB^&2 zJ-vp%;`yJIt$CVnS-+cYE1u<16xXpLw(V``j@2ARb*|Uee|yl+|EOQ~+uosa9xjK^n<<(bm!TWfu#h(dZ;l3koTyC29 zS?2Arf?alSLPgzh?#h{%5u1 zb@PQ%2JxuZ0n@{$9R6EoS<-B}%dzkD{YSNtcdmB$&a;i4czx;4bhXSy7V~(Pn-nO)A+`@ZBpsYtK4^-1Rp0pno;}W1j`mdzxyq}|FF5Q zk>BvXsXSxrtUvcAKULbI|Hy5Q+^phhAwky!&v7#U@NCq(eyh#yPF?AK@#Y@}E9DD& zUi{pj3|(_A-%FB(mM_UiT0TFY4eQ%mc%=-+24-6yIYdz9&1b=R%*GtR~Nh5MVg zi?5%)tkQIb<-GkfH?DX7Yy5a_c-ZGFo~gGwxdN^W?$J8znck&nuuibBCSZ+x3G=+w zKLfM%Znmzzktg^1ZvWW>4VuD{XG5bmtgA`lt?4tHSXwaq!NTgYKW`<93;yLLpSWnS zU{UN-&Pe;FAAc{*tG;ozHZ|Ql^IqQcIrRZrFBa_$+i2GzB%N)gU9~B>?~~pCcba!+ zcJKOPHS_)DgL|y>K2F)Wsi5t?QmlVn*0x()-6Nl$jSTr5n53ui{O!R5k`H>eY(Kp8 zzTPa$dEY1J@vr~AHteA_yHkG2H$K6d1Cm55fqx+}%riDi=?oEFl z5}@$uvKVnsz;qjqz4WH{?9ibWFn?kjxsk$70Ypt=t^TO^YJ-d(8@*L0G z5%~Ul;&Sc(za~g*?vB+GeZ#-?-Vvwl=l+KO?{sak7vitKyXz&p;FfaEQ?Cy^>h}Fp z;C#Hcsn()+!#?RNj@R#6aLrEd~zn(_Ga%NZ-PuekFZ+F#14JFir@e11mW z;_y>^y1NS=yxl4fy*Lk575* zsN0n`>-1FiX8vpCi(VJ}c-qo%yL5)I&QXbbjfo=KTMOr{~7pc^6z}u*4|gD94ZFP``{_5mSByzrOrZ^O9vazi0TI&)NOoG)&)o zlYJ~T<&l!T_TTKFyUDk{&Ya3VC3eg8_4ad1o7a55esY@FAuVf%I8Nm_)n|X~k7>NV zBmZBn+-B9`;!}Uc+fCnWKXm>9|K{@orM6uU_jhog<|@@%QhmL1#+R`2{fC_c72h6~ zIM8#~{N0|*w-2_&ZC$vlyx^`<(6^~;xBuMV#ByWX_4WB0hx5-@DW2PRojdfK(aYD0 zcgvR^zqiyj;=brxHtRe#A2t7)<1t}REA|!c?GiSP0 z%5sDD|B+R@*V}a!TWg)2Yf%%QwfeMA?1FVEHaaU6U)k~<_Axjwm$_?J+}Djuj>U%j zteDkz&&2J{WXXytab=HNzVTbFaJZ$MYX16#W9{mk4OXH_tY-wZAJfpVK8)TDWr0-{~o<&z#@5Np+1%Y_VR< z^U5j4JWulHG;n`=9OSvTZSK^)B9_0q5>1&Go5WrJEw7i~__jBD-idXU3!atyJ-6g^ z&6^8_8~*v+;;HF=uClK(`H$cA>rd}k*DsuBHSeFmpRHW)GdSGlrOlc0+qi4ho*OMw zra$k$bn%~J&Pma?*&X}|;i@)$x_@r--t%`pzdTew+SKcE?xiB*UzP0}#EUePO1Vzo z(T(7UoqvSq;=y0ca}K}o^6Ta|xs`OUEbYq@_s5@fynh9)m^CMFCF330UHgw7Ub|(x zQfO@HUWPCIUjjS5SU+vg+qQc1dc`*f3)Tjdwf${0+ui+e;m<2ful1*_xbb?TZJvKx z@D;&ti*%kcu5l8*b@r6`&WgS76aKDSv1tbTQ-gnNls`WFZMXM#cmMVM4m&iC8*kv8 z%q3ULAF?g<;IB_I*5%h6uO?rKOsV5`esv_UbN80hM;bqstvmU-n;eVs3o369( zuIYH_c>VVEQy0~&R(yZ*=x*$-r7wGpo>e|++I->bz0Gww8}7d>*|=bRgu3lV&ce!= z=>3rguHCA-73s0bX2W!?f|+kudvyQeJy%-cyYtu7N9FIzuU=wX$D^BN`o^Q$yV6Ph zZ%VKttLRhpf|>Jo{Im;_IKS3B@p*;$B-1(T?ax=0*y&E*yN-A1T`SQI#W^q5{CrU- z|7w>-SuxMKrK|G=)~TDFwkfvcHBiw};bHy0b4GIOg!|3=&6XXoR}$tEImByr;rh`l zH;U2p5!E(%d7bl<O4n(mE>%_r?=;b_L4}e;AIVZ zrx#Bv*LrY#bIbSF+AO=gPDvL0-+JYGT|l(!+`as3<}>+DH_j>iv##vKa}T8rTeTm( z`d|Mh);IXJk8lakD${KtPft0D%a&a5-1;=?+lEt77iHU&n;^C(S>mH$x`w&Q3iS z_x#lt{>iQJf17_O&h5<_&WByAwu@!-{&o?1U)}xW`nt15dIh`UJj}x`E%i;m`1g}t zi)dyzi-gEwg}UdgpDud~ZRn{syQ)}uY+px|WAmqW?dcn3&9&AXmlg$|yz;}A<|9WozvyX#0DKxkL z%l@$4_2_QFgLz_)@9LKR_*b+q)1_?gImg$A3vIXluX|L;=6N>rRo%wCO)u7J z_<#It_QYK2pU=D0cYSMRw=T&#>9=5Wcr@RJhisafw$CNQ-mcJL4^E8m{iXRyEO*NG z!+rBNNIDT16|Y7dm;&S}nx= zGN?MKp>?z7leyClT~`(Pw`zyQysz`W$@GRqYA&8}WPRX^9hR@RPp!RW<8=Pe))b-H z$FeR7XZxm=Z~t=rv&EjuN2+H|Pmj5KK;X@}zd3RHW9l}>DeZle70I;5vZe2Fcg*U@ zkM?FxbuQLR-x)M5x7<5zm+)=wmpgV%OHp2?9k(gwiIRdL=Tr0El8t#mi+6j@df>fY z_OR`$$V0}t^Jaa0t-Hm2MRt<;%-Y>Td_RBnd_C6lFxCI;j_qb)OD_F<_oKME;^6E3 z5!XG~o$ND>)|)>{pBLfRu)f>De(%+ccD*I6N#*^^KXomd(DZYs)Q!L<6#wrQ=OB&_5oTde2(xwe~8 zzqmZ`zxf2cwTw&Nv}9zduc&U>#aLz%Am>}!A+dB`(9^r3-_#6WuV@g7->~6>d(O!Z z^Jh=(m1L;ydR&=PHuvWCUvE}DSKGiBDmZm+bcx^kqDdulmtByrw_C6OE%x(g*>n8w zPv=ZMu;tPwm!GFtXDk=m8K~|4kA2H)x4Zjz?k&B@pR=U9H&jv}yVz99)%U9Y`kKjw z{;`>R*80!i?eey7RSC=Y^qC(M$~R2QZT1V3V0e3{>~j+DF`mbF)z;5{YE$#HBEvQ9 zx#_`BUtjvp2=0BEze?A<)na>sk@A!F zr%RdMd8fY%xwdP{JC}D%->>i1IPa9RXX4y!=PN1m%a(p-RJFEf`F}G)US96?%*)+!r>&-6ZsB0P z_&jIoaos1;dQ3KXx?%|OiZzXzQ@jh^uH_1gzy7TJta$66_d5f=<(cf9@A7qj znDKI(`lR(!ru@!U?DYJ3h*dIoR=~%(s+tE3KNjr%?X>J$b1Luown@Lmm9qk`=&fD& zceds3*q-Gzb9Lq|m>9AC_w3{Ii{3XkS#sGvx^bs}&g|~*J8r~%=kG0z(+CPyaC-TA zO?Tp4NoVFy=f8#i*~?iT_&3~8&nk=iE$2>kzSY^8lU;A?h)k@WKP}k6;wrO=dFF22 zP^%jUdLvIJ*7Y}kX5Yu`QdNKK?jGYa-l_Ia!Q)!*F8$>1?zfk>mH++z#`km5%Ewc$^yQkb z|EhML>CH7`R@J08y@+={es57H|N(f zevWgy7`wlz;;wM^$IWVY)-E+|{Svx$dSIsYS&4%;uX6~p7Bf_7HwDW~U7dG-SJ6tn z`RUDD3i@xDScnFFOXvI+xZAnksLy@N?G42@s%Pm1S^10Ho_J1t#(dW}HECT_6ODIU zE_QtiTldT4mg{NV68^Q`!u&~TUy~o^#vj;oUnoAHG8>10`-vV=V@Q*z7Or1kHu7Ts%EQdhBF zU90TQ<>P;zePU<(?Wh%-ku}|WJ7aO#ld>0!CAU_n?YP;o$9+q>mHcv-=W|!>l(?43 z^y2E=mK51J9t$~Z`Qzk+d_OsEd>3$-|FrY-&uV8ThE@ObJv7%~{=QAo+>B9ccjUd%PV(r$X)b!z9c+q~7hG8qB?omXjC$4m&^-uNU_aJItKuw4NO z&o9P_^l#r$n`#o9V0+=TKksET_qWcsojA8fmPQ}k_{=)%#HnZR>&{nI$=BHEdH(7? z|MC~}v}X%g)@vP%vi01y^%vu!7c*?mx#vrSRo2c;n~Pdxvfy7Nob#gj4<9&R+6&wA^_%9P5~djWgxLjKIR{lD}{ zwSClY9i#9HFFieu5{ql+LU-T2KCef0oquteR^Rk9c3kN*!iC@FdVlkcYF9G5k-p~l zX;$@zA$u2P9#Kzv$c6&O}J8RgU;RlRWIgomHga4^UsQ@>PwDheGXZ3 zW1ffVHwTumxBDK(oQXVC^jPpwhRasA@wA19oi)t_Q$8$1>|26*r-r?^+@^*`^it9a)-@W{r+J|md^V{ zrceJZc)wrj4ddNg&Ix7e8!mT>y_s71*Xxbs>!aSACeGRYzCu!L&H4MkzSdoNsCKvg z!aJ>dMbevJpI&@%*X@rPIgDQ$8%|#QB{KQ2%+m97bl6WH{819~FP6pnOwCWj{zlIA z%%|>|f4_F@Mj(5Te9NJhd(pwaU+ma*Z1IlpZ&h}jcIg{?-ZNX7KM6{H(ondE#oBV; z#CuPezBF9nOArsVF}bUB&HCD|1=9C5)1P0Jn_T?8Rz#%o@2}qS>E0SkvhLr^Id1f4 zN5)y(1q@SfuPl@1Pdm58?zFM%j^jmTtJ3?OQ{HMW;7NYB`D44pruL`zi+5-?{bl|9 z@kkNNg59M7Iub%F&oAqeddz&UjO}m661LTA#Enn*>n}){%Whnr_g$Z_#kgK?(oNW;*Q|cWkfY7=y%qJ_l4gqBXy5cu!bqXLzM|?oy}Q3XKa-d+t6LTy!AOrulAHXtAQ* zyx;2{-<&OFdcbb_oNVKJ->*Lm7TCWc)i*Hqkq%4o{f{iEr{5Ybe>is?)5kes*Uua9 zYF^^g3{yX%8}YsClCd=Zjm6A!)AE;n3z>KR;@@57zYLb;)fvcfHZ#gfX7tWfHnuAG zxhEiQ;lab_{=UBbLGgc%#G5;*$EW-a71(_~u;$E--j>>vvDFQ`W=!}Q^V&u;CrrL> z$rTpAo2M)H=rpelQ}}=GQjB}*k9MQXv)xz2SnM}fEoh3|`O)?;-v+P6q&oIU5&d*;(_x#ypkT3BA5p|<*CgM7j5D@#9qtuL1l+WJ2A zs!5~m_q#>M)*amE_eS*F{F=T8uP@8h%)R?OKiIsgXr0}md7XcM)wZ9ud3UW&V?w#Y z1;OaNu#2Dm+eWTGb=hUhz27m?<{aOCNpD%J7_^MZitqNpIWmTN>0b&yFIYMKqSLQU z^>RgW2`79?{;a$9qJ`nnq60II-ATStcOm;}-c5(wH*ag*kMXwr)4z9hW?nF7(~KEW zkxfSD+4W?;9q7EZ$l?G0^S0lzx22amPFfm1ajm*_r*`3^6N_Hnn>Tabi-xUr+0C}* z+6=$n99r*rls)PE?Bcr3lCi(|UuO5WUs=cZsZ&&4aQ9BF@CkL%Cz?%{tH;N!cMfxD zUL&}6eMEej%GVdJdwtrDUHVy8|BJ2H{zv?xOTTUS64vbI4BhZ;M$Pkuf!2>dT4;BB zhZ%O6cYMcF%dIA9!%)-O>xJN#z0VN%rbT>UzB1*u`DSQJQZRvZcRkCP(5C zxwl8RZ;0E}$N%)u;ykfWd!+w8U1NDL($?si&b8^E`L3luUM_qi!C>qCc|FOus$TrP z-*-Tc>zUk_I^NmS-*?Ws!FjNuN84^`)U*}1c;|~>y>Iw<-Rh28hqYH$2z)&7X2B!L zYmEG%oEJ^*9u{4jz`1lv*yhTU-ug9-$1fgYAw!vU-D(?&Me0>(cQISf!RH+zkc2R+#}cMqZVv#tRwxP z#B1JyNt4cYR6Uyh^1#fyD=NZEXUk5XFL}fBi1Zry*OLUbcU<~x@<%;lId9?Z#-WjUKWvtrKi zGX+uC-MkxiaeoXpni-pHbZ@Wb{dwZ=<0tLB7_#q)4X?wIMzQ9S>?1Qpd(OMOa+P6@ zsIJ!(sOBnDdnCL5`kV;IOIle<)e>hr4ctSo&+eR@w)bt`oH-Ae4dmV)TfE!%L@{Uo z@zRe`YwEh#BQx0#R$bk&snR0xwRGd*s{Mv-T-G+bxih9)TzjMubFeDN^mysd9clLj z*PX4%y6vD)J0rKU`9b>rs*fi(?Cty}VxH0mUpqEGyfr=MQrB_EyS$69 z{d}^!CwTtJP2yL?`Y%s^axqr(32Rbq)!N5a(H|x??>f3`-w*MDA;rFb6`RL zTC?pT8;{Ri8~B^ntUBIVasOjld!YN%gMAJnfwS%`3)Y`->*bYoJrmxq zdpC=f^S(6af1|6VI;-7(s&kY^7k*AT#})bOablR!h@BICg|2|LTY`q(w4z+!HzT3Dst-qsonbhv(Uy2ue-NVoS z{QB|kie|s0M|o0xl532^XT(jk4HW)(v8a2(_w8o4dF=NGl-j11dh~w1yK&vbW6pOC ztd{P#iuTn?b>>tQ_;mSQ0{?DF`{LUdulv8g`?oXs9vk<*^m9G_(r2l9 z|MthTWs|D;ouk<&^x8AMQ!+U|o#oq!u5u6exaVKLYS|t*)bjkX%bo>{rhixIoHpFO zJkr7LC+q6C6#utYcHM2#50*@D+mD-KX?o{5AK9&KCi>~~*4WJ}lAe6g zI{Tq%+11i_Cs&?XBl2m>zNA{dx$7JQ?W}V+ z$t-Kh)0rin(lMLVo;?wpJzKY6i$>RS^-z1)gNxPQuK$s{A-y`q_*KjXuH7kjP5KR< z*{G>s%}KP~!qdWMv9Z3bvqyEO&uLR9x#;$^Gb?}G6{>r@qRuCLm4vVzXP~?H-DFwM zy=-S>GpBE!_NDIiF3+0($r1MQfA2k>5hLS%`qu-g9S8S3{}LW9||v&KlG%?{nwM5&uy*Lo)pJ! zp2%%)cdfIgDolTI>>7?z&#k4V4<3o_>(2e_v-FW(u{H0yAFj{jpPkJu`e$%hx1-p6Wt7NKewW?cbC+B_#Q3J8Otk#)^Cw#O zQ#2;NKC*X<-{H)^CKuRdY4si3IKM0>VN&Y*Z0^RF%U@jVmF}zYJH#JzsQbR}tC?$0 zUvw&F&Yx>*T2SNo^o$PQ3{m@4`(+>do_epa=04BM*Z!5<<&D2igl$cf`FkyE#tpdy z=NHS3&Md#>`Gq;<%#=`xU{U)|e!gekm2v+*B+a|sZDR4mEpo|wnFQ@OPj$aq>wVed z;ClT_n||a5ujGAybH8jVw^jXeiNM^-lI}agpPIaX{1lz_?9iptA^U&(W~wY=PhBw2 z(duFBx#Z{WJe*~GMIGf&e%v{HsoLvZt;T!R)7OkV{%?3;Cvfhknt|0a@ki=RvfiO@ zPVj9M-S?4W;l12l0ijcWgnk#c)~qlu>U*7@w8r||^(lfU;@^bI6(9ZPcRbf8%l!m* z#WLArAvXHgSohZMchfdnQrBa!>|v_YT=zGVUs{C;Y_HzW##XwG|A?HBm%|>jQ};?& zM9&qf-&3&j^|r8`Y7WPJooh1IdTpzjrM6R^r}UvvJ+rFt4aT<X*&l3sw&A(v`qP3;&LL&O{0qNUW^T`z z`=;sZ>ea5>uHQ>{nRlz#U43)L`U|Zw_WpM3jnx+=DxCPR=`wS;^4#j8m38H-`>KTl zH?An$eDSXNj&)LYb2-Z|@=x`vPk5gCdg4v<-|Om&%$vSTyiMdSIbK$8&bd6gS+;5M z9sey)Vs>oqj&J(MeJ)8Qp(o&hr-iu%TD^OIk?SqT2sY=M9p2YQA=Kb ze4oxauR`UPr`B(g3mU%0PrPztugt_-^+iQck|8S%SXS> zxOIBdkqsHG=jK$X*{R#}x;1gF_moYK-PQ7U@1f%@3M=K4tl%ecS!B-O`ukCJ< zy8CyA`VPTMxpRVTmc1!ke6xq6D$Im6k^7@x$)C(W7QB9|_ojbq4O^EMC%XP42cK-& z#GSW|JJ)*e%_x}kcDaCm@h`J$jn}3xZM{{+lz3!U6r1*={D}2xpPrge<@i~!>iQ#B zTj90b?{|vxJokHdX#Mqq-MiBb{?6Nx(0KK%ow~5%@fb_rS9JxctySqkN7GHeG*61{ zw*IP7bi*s{@73-uEqSJsaU3qc6(@ZvU3Ycev40lZW*$}9w~y}vx5QT-O+K@^hv%2? zxp2#Pfy*WJdv_h*n0!vsTb(%R_OUsFu?ur7^pZaau5VkAFj3-O*`=rEYEKf^bocMI zX>8$VUe599PV-^g=`T0x-%tL#?z>&aZ(F-nyXQ=IE8f-nPWDRImpak-P2PR4xBOqD z^kZg{c=huB6%GQN{8{Tv-+z@h+BLu2E@1!b?%WH{+Dbg+IaYVSeH}RMceu%Fo8-lB z$~$b0o-MOY=G(jTt9F0)spB`^KW_PcapK7}wpOjLEm!`nu2V}tH~*5W*o%;jryj`~ z|C&)Lzw^D%{@cxQ?g8?tw-!A+c<<-#=9r0jIdPePgUe#R-jkb?{g+yKf8hzCtTd_ z_p0%Vb$Q73#=hF7FYBin-QHum-RW-F4fe-pRrlzf_pEpRQr zoROX$?0?{e>ZzIHt(7r3WfRv<*c2LfZ{LBAy^oL7DT^JLk$rN;?P8t;{VzLSFjtrV zzIP=@J~rLPO8bd*mrK<8%&#`K#XJj3jPxt_OIBNKn66sZ8F_*|T>s^~hfCf~%v=1l zDyJ(q^5|(TRRmxuf9{16}J=f&T-Mwpljs-O@S-IzG{GL@c{r)w(@=xwN zQfaJYdVbDOi(a&%Q~da@#UbmvR%LX4ntJHA`Bcf?+h()tZf)hN zoAYbhvuo!66eHw!UfS>~-)=+tg}NS_T?^Y6p1in~`)_W#pMkd?YgMgR&{T`v>C5fB zuGt8GT`;L``l)Az?Q3-tPBGrf?YMI4RaSxK*}p4xwCzvs*Ke?uxwklPH`Ex_LCr?VWs9O5h45B^lt60}x+$VPuueNj`TP^$>KTJpW4)ZKCrK`>^jpT z+g%s83-|4MaP9Bg%&=?9;S(RrG2UIWdr#xlt^)S*eMR;ME`6@w{jfMi&oAr8^u5{< zdD1r~82D5*#j_Az)|9844G)N|R992@idA=%S)9#zTkteP4%q}qO zO7uP#@AymJtW8DtUa1AwQr*bg+sjV9e*I^z)|D6O-`cN;@v&~nSz;G2z3zvG+P576 zi#uu$uJ~Or!CZe{#^3p?ZFa`@N0h(b829F)>if?Otu{X=xkZ`Z_kPWK&Ukq?|MI(k z(oV|kK7IVC=GtW)pJH$9ci^1=OG@)(rn!f+ZQX*nxm`c>A~?TZmW?Me;62@RLbZ5YevPsL+rcl zEV@b>_KQdO@2R`5uKM;`&~HtpkdNu+TkOAh2Lu%D`Wd5kUUz4upnNNH*_CGuuggu| zcr6xAIKFlwV_0^>wZG+;t5p3?Pn}jK)SbLXzK?HB$!ph;_zk}U{T~%a2Hb01?pXEX zbin!MZ8;C(mIt)|n33T)-FVK$7rQ+7|EtTN-tzUh_`FLoO>$^QFv?q2Dw&l5iFopt5?sg7QL$E>59ss(p1 zVCLVlLVV&nPuq)DbGB-(kk&kPQGeHSv;BrIWM=Qta(l9SXYLPnmG+dj`tHW;q{n5| zwwt@opDQ+RPP%xuTjTyFf&S&szni|P>i1iAvrN3EvhM%;1z%TbZ9jOl#>YZ;^2#cf z3g!Qv&*OJ1u{(NH1x?CUxm4U2lygm8`Rgvl|7CwZ@Jn~EU2(8jEBeKf$Spb#xba$ zPs_R{S^u+FS{olR?{&t)XJ!#PhKqN0eJxm+JF9A`MR-=prF8KH?}XRxuNPiB{rT-x zN5$0dw7P{U#buRl?TMaPyv-!@aKN$s%oUx-_pHCP-S8WG?;DwfNk(>(w;vQOFyfY>1j#%wZpMTz4 zoJoGkK6x$9(v4q>=4D96|XH1GG5^TiV-&x$6wui^jB^^qyIz4^-( zw}<+(6KfudXDpQ}Eq%BsS1RSH-L_M@I*X2H@ars^>qJOR@?hR^Ry(!Rs{uD*-17{vR<`6rtxGdXY#&5B@9>Ggh$+h>FJosEY zv2m7FX}|faOxbM_b^6*Yd5Q;`xiV~*Jlu8gVU_l+(!z_o6#u3RRc~7?m3Q?zm+`EE z%?9d~vN?Tnouy}AZ&>+wN^sp*SBvYz~{y5Gk{dJ>peqk5NOlLE-eZGj-O* zJ6E;rN+`Lya<;wkT8Au!oDa%7_WBB&@5n8U-u-VeSE+Q;;Ii^B2=br)V$ zPrJ{UyzaHbuP)_vYSrv+8BzBOHP5?Q`~Gu(`Toq}Z46uTTtE8B|5I$5{E5k5*`;Q7 zXoc8wrwvw{3;#~N{q5I%g>P$)eh-_!KE&KcDbHZ>%-kEv(Y@E+@e4jm)!^I0{&sKL zjqI-Pp3CcI-JRE%8qu)pa*SaI?|tw!fAs9zara}6&JMeC;Ll^0+KrOFoZr5iB$ZEpC>XK+ zOIE*bdGo$U-N8SdUe3O}Qf+!Y zT%LW|Q(Qey`o_+NSNnZ`Zw!d6C|=rf|H8k^tAFs#Nwr&j+}l{{|4PZTUmgo@{C-IB zRY80}&aeL)v|c{-zLT-)5Mv+vEBDf;n}nAdZ`d{S-O1Vs_B@a8Zd1N7*VOf<-0}Ni zSKf1cwcEn=a#~m2);#I;xn)V)`U3I;O#-eq@Xnpn%2S zzq>ta9$S9+!MJC8wrrnqF(&gy;|+a7!#8qkPJ4KBRed~t{^RxQ?=CAwXWC3&{kK5ahc^l5M@Sk?l6Mer>`t*0bEq?4XXV*9^zN26Eb9>Ta z&G?Mk+bey4{6Dgu$z1GX=k=Rs%N~D~?<$EsD*dWtvt2mbiuHzze}*5f+iwx>RGaek zgQ{qarQh_XJB8D(xaaipmU6qTRofMGrOG@u{&0=Jo!xc<)yI1+ENtH@&N}+I)oRV{ zgX`wJxfHnm`B~|z=TZ00xUkBp{mA9^@7(s;XHjOT|gEY4=1vPPkIc`=$1u>6DA1Z?48lZ=Sx;;>Db>_sKRcw2y!U1HY%W{@KXi z@VvFbdLO&YhWyK4udjOa^}*Wxr{4U0QTy@iY0d9rz?zzv;+&&e1 z!)WbGo3Arg@jBQ>UAV&Z>V>*{_{&8+3%*|MD0_4Aqmb+i*>lM;CQCYAp7OLff4Ic= zWnuj?y$IQJu|J;3`f3&J*PpBEEn2twVZF(nsrS-$a?ESm8?(1CZ7NIH%CkEY|8iRY zzNoUo`qYfNJl6A;D~)@98M?oj%k9r;Qny0%Lb>E)<1*tb+k;O;X{~#lDdT&9bCw%N zk(%YnPAsxM^-LlhsuaB_vjIhdcCvz?DHSOQAD02P0PcLUpuu}TFVp7bKH@%G= zex8L*=j&G^?Px`{QZ@YrZcXp;Yq%;gF8Q$+U&J)7pL#T}QguPyzph+WQh#oncfe?KplO=JuHBu!b^W&+#n;c7ed?IH@ZF+g z?tgc&TAs6>te?QT`v1LUul1YC)}2?rakrI8_F{dSp2Igo^vy0FY?S^Dz!I#j^>(#ZWZx~oB8ZJGTPbp`Mvb5zBl9i z_Vr(EZ(m#*pAdff)1r?ZMGwB-S#^8b_BV5+RrBOT+}jWyyrO)%#op>wdghx2w3S3sm)j-D98XzO zuyj||a;2EQRHfva^NaaXr}X|llfC}Oo-1FEALsRXD)Zb|f}L~Q%&W{Tw~W5ja)ib0 zew|jk`0Mpc&nrG1JCmn$!=LL__t}iDI@`*VPI4@>kKFGovFdBZ0&%+w zN#5^VtgISkbK(+KZtbo8G;`nlZoRn||4JV^akO_%-kqlpf5*AIUSWE%yGrd)ZOt2# z$IoZB^srqmzqjmog~XYzj{j$mDjo3%`@eM7SKgQFn@c^X9(m*Q*6`_U_t)HKGt|5i zgq|1u@UG3C@=E85{@&vAccyDU3ge&D;Lm#D{8mogYae;P-ASLj@?7q(iH&^kXZ&I+ z)tEm0{gq2Kwx8GU{v*>VZ1YRkbj7}{NA5OcO?=-mt^C5q!@k;kYA&ueUi~?zmihPU z&W}IibeiWH@9PzKb}e>#NL688rh-eA)>WR;j&iw}Pm^k#Hp~58`XcYEL1gXuU%&Or z4lB+mv8n1ip8EW=N`WcUUt8t5ar+9UgIJ|V?3JYN;LYRuY0Y~^0DJHD2Dm3gJDqW!;eMB>{8MfSo=#dS^8wU*!ddtg(Y zs(xnOX~%o(V~pOMt2wmk@m}kxFC+TiWhG~QOh2Ao#`1Mr|MH>-DcuY6o33VSJt$_~ zfAQDprrJMQ5(%-_p5^#+DMcl^84LcM{B(}|w48IHRn2OSbC3R6?(yNN&)yv|zUg{r zZ!BP6G2Pcrk=5i~$?SQWbK_K46mG1}+LcsqcT%kJ!`fM&e;WSf%-AayxUTn9db@7K ziN>av_L8wrPs-X)?|bS)RqXf6cCS~xxxC1#@|@naPRs9ew}w4Fp%oy1qV{IW z2miLJgJp$UHo?2TSvzsb^RMaJqUb18w|D1`(}r`Ktgb!V$yWSDqwRm#j_G|%Kj+P6 zdbcOrX8)}DKl+`tl}xma!(T}2u^W9al-j*z)4o}&XM4YVbLQ{L19dkUe_vV7%bgUa z82c~W*I?cT_IcAf6_2DR==(5Fe7WcD4wtW$Y^Lpxr(|$Vj{9vYu60%1r}V+j8|=^a z<*CPe&1&>s^yJRmMnASE2D{E(oN7~8DsyY5$M1Vrq~q4ky?nSm{L+E=b#ltS3#Bek z*ysHA-uW?Y}>?SUaXX@5d@d7p_-cKN~mx zs+HTSU)~_pt8q$l#q}^hzB=y14D0%Grjzdv?cp|C^F2eh-FnS|`)}9q zPI3NqmG_$elK(en#d?^2WIJPaz*1Ih`j4rBQ4hbWZnXT)dCmN%_4?J1%iktmiCA~F zd#c+Sy;b_>6`fAr&d=0&&rB@Tnz6zXwc5eIkJi9DX!Fhg3+b^5%C;xwW{&SP> zqrK7D9~CbJuatY-(Z9MobNkx~Ja+Nr$AU{@C*14*E2PovZh7s>*03wrqh1zn3;6$` zyI`Zp-k`@MUfmciS&n?!U|n<0O8b@Uc#9I}r8N+5Pj@s8+RmhK2qY zZCdZyc!yf~ZjhUL;6t2ouK)bn?^CM!U(9u|Jia@&N0r%vVOxKdA& zqfF#n)L;H)+wz3>Rxir@Kl9}Nw0pbsuTrvEn}D(Tb2*idO(mZ@Cb6AOlYYPR@wO!4 ztHEpe)}3+=m?m}h-aXlctlgRJvlk{>wSM{Y_z&0WvfaVq?-uQG2}rAamc=7}P1`t% zJ*$TQ8ox&7>tnAtUtXWGPki}|C)`)w1W9>spL4DwqJP@9Pn##%s(#$gKdbmC+sml% zfB^L+m;bzPNZPA$E!XnogTNSDjpW{!E9G7YT{OJs<#B%F*MEgebY5tk__|DSkJ8n zA4%iLrkzjTO+PJupgEq!x_0u`89`eL1itSSVgGZuAp0_xvr$~%iB3`V&Ka|c)K=YI zaE||b%dh!uI<7FTOhy?^CR|nd_>|rRyH;{|;VRJ7J#f%$upD z3rpAfuGkoAUNZI4v#kD-Ulzipmpgbjd{$kj`R&nU7QdIVioVu;;fa#()?Jt&GVg1K zvg!wm^yH;4pZrLRxt$YWul;qp$K$^p+?-eba@>A4=?HuJ)!(r@q7_%|eKyDUUN&z) z)GB_p+Wfu((Ji%>$_ghnx&l^YAG;Uv?$%Ya6W)o3go--MKdXKb=+&$J_tf2UhTd7z zpi|P5_Gw?Po3nBHq8;}ZZm@BvWtr`Eap|4l*^jurCVdxvqaUz&w~gGvd*{DbzDZR* zB~e^2{qEY@(oM$IlQxaM!wTR%@S-d^dM4=Z)DHzUL}y`0IXOox3Z!aBfg} zQPJN|FS?fJ-Md`7-Bw+;E_luCdoi!hxK5~%&u`Y*Rl`%t^YW)>cdhJ>=Y3($Rfo85 z7&7;4dbMkk z8eTCetNE`d-%HIo*|*}duit%fMr704UwZ{IGm2G0CP&BJ+4?M`mbrX;eK>1u)k}$o z8|CHMzglf(nPt3We?-RqoNXS;FWm}@b2fjNbMwPLMV4IUI;C3AcWNmVHw};7UCMd$W55CXAKNBA zlgZkBe($OSW~-<2#+{!v?M>|k|B8%%?~X1^eIS-`YFeiRi{FK8;R|m|cuy7{{m#5A zOo#(2I`DSOoX9k!jJeN<1kc@m*eTl2>%#K}W%Z2^@x z|ILRNS=l{4y^8a`UZSn{!YiStI=<-WF3pbkqquiVfa;txr$Re+T)DcP&G3r#O7C?I z_YNdxxl~37bh;NV-1s^0uE2xO!C~)Oex+^=)bjn9cuOh{<>)Ix}@t%GU`hA>^ReNeV(8&Z+n_+zu+%E zu17h`>ZE^vU-s%?qSp-*i3`(J;{L{{Hnw|nXY8<3w>-Z(?PK0;oxtc@+t^QXytyo? zsr*>-mB^*+Nbc-eF8f+tUoDjq*q|%3LM zzkYakz1+VeV&SFldImAGjX#Hqy!^g+*Txb)XYnlxO0(NJ-bek^z5dJP+~2F8m#m7t zkk{(D`*u%`4)6Q5hBDFehBm9t1f4aw_g=Yq?q6r+s2%4HD=(4PPVDIk>s))bY4WOj zH)Z2{FV4Sm>6XqVuLyOmn4@z&y)Ml@cKFZT)~{t9nJ4bK9o)5YbIiZGRj1~*KlY7V z5-ZaGjrHBX)7;lH{4bB)NY*SwcgCDbS7_gy?v&bs#_ufO|3J05{UtZ!`dPWexJ7`it3 z*TMT!ZA906bPOw<7Hw5EbNbCLrqxQuKaJxa9}0V&vd^Pj)_UKTHSg^fT-4f=wxg7N z(KgT1Vn)mNEzka1&-IPJ|RNQf7%B*Jt=eu8y8>`=>MMVeH~Q8P|fl`X}e^s(y69PP6g)GY;*GA%=%m z-`SX7+Un}xv&qguT2FAs?p{Z$tsaLicyk?%exsZI;oOWs@2|oypGUTrt(JdyGWTuM zch0#Hd9@-(Za@Cu@BQ(ChS~kIGmq7|p8V|bpM7o8q$Ml00c6VTzR$p-|tF0=jwOgPTMXm^?ZI@dimoA+sdTbUv3Ic5&Hc;bDrvw^OsGE()0F) zd=7p)d$~(^@~H{$*Q|=0CwXP=G1+5ZwahX%o$Cuq*yrUC?s$5cRMOQon}4vru45Cr zWhfD+yrJ<_Pg(4_sJ}M+3n#2^`rUQi%dEfQhvdh7E>#_0zuzw6IkeD3zU@lW`#q)y z?R78TEj^ZS{pEG9>O~KX{+@KaJN5Mzk7&*B9=qP2)}GtJm7{rm%ijb4%pJLYUg%A_ zyegqxd*Q8HwsVgDs@x}W=k?m@0*v$4#yU=@*`#XOSbOs0RW(26e|{e4|8ct~BpuCZ zvVQo-pe|DBxl!VJ-kFzpSa0MSoZ6am;}(m+Mz(LiE%Qb>{DY+&NeM z7tDXYI%E6JJ?+-*6-NveWQr<1A6l<^{7`@8ocoNw&X;D*57=m}pH>&WV#h1P+X)(? zxqq%pANdvf$m-&wTNhL|tywg$vLjYnsprYAh5b|4?cN*sd2bZgZ?CSJovxpYH@>xr z|8eb3>+VVBPF^ppZ!{e>SjTI{_vgxm&tcAI>pM$acds)0d@u6g>ARJIF?~{O9K!R{ zs!MNY?Y+mc_Im1^e-l)qTP2)TzgQ;S5RBjWe%0B1r%yK8pEqx=p0-U>_@3^a=W*`& z)y(D1pX={b-d{Ug-({-k2g3{VExhl$?uwjqUU7~2){IN~>sLzzZuy`7{?2^iqth(b zag+)ah_F3<^f)b5GpTazp9hMw{{PqC{rs)$*S*_0j{92@?4X++xG^0l3o z+mf$dvkObsG5NSh_}G?&LrOm`NKF17TPJ*Dzf7fV(#-9tt-S{eb30xi6jSAed_qJT^z8A*4bz{PQ zEw5t+qH{GbJ%7LIfXb zfH&_6u6Y3)*Bv|h>14Ry4I`;Iw{LBSHplD@`hL|*?pooM+I^dOdEUf1E*CtsnmMs} z)2=M$|Gs-qs;^UZJJr2hjBWFZoriQoUSI$FZK-}y&mKejS((;9gQT-%rna=N6W?GR zyX!<$+Jg3(r)wYHTN|D9>vLacgKQxCJpaQFjaNor{Pt6LUvgf9)al!=Z=AU@alL42 zY;Ht(!V8fbb6GFSbiBGzn-tJ~x6e9Tg@yLqR^+&EelFqsv4*>Hu3@0C z=Hlr`kCd#e&{f#;KcQT_B84Z+?fZLy-w#P2Ttr&1^1O}!l3{WI#`@nc+_2?rzPrQ2T{r0~57yu^3?s_u7}jlcg| zz44Ii`y9TwO+I0LThf~KX))JjH;c&G2^eg6zel&ra@)MEt+C6Dzv}tKl^zy%UvNxC z)==?$VTzMo#Y`Wi)iz=&vOI5Q%PQEZIlrlzl(Tx7g#Vfug4SsjuVoM4D`S)TS<(D8 z;QE<^)_iQ=&h9Cm^fO21qV0O?w?E4L_wbyYzo*eKCN8&FY|Z(w$quJ?{ogWkPeMY% z{8V$Buk3|yN>9&yT3vnUqj>XXo;$V5Dg1G2Rx#@56<-v-Uhn$;{dtL%W`bzjRpr{#D5(c zbuXJ+<26qyll9MU-D^&>OxiVTLXYjkU%NQVQxbZw%v24k{W|?z!;fh8w~Hd%c78nA zbbfxBQzSS4u6yC&=$?x z$y`o>&+Bx@k60=sz<<8s5ILYlziPH(MC(mlG{a~`b)9^)m%ku4u?POFlt8C;t zClp`Uyk|w+>*T$j?GKLFUz2>$yzb`(tIAhy0qJ^sCX_xem*Zn9tDn7R{(1TMjq{hk zJiFp}W~h9Bsnl_iFP}bCiA-aB?ced`ZLs;P!{@^SGg6-&XnsF&#r*vWuMYYB?B%Pm z(bsrY>GtPa(RzpVt1GzH*dJ~G{$^wSWLE{D;(g0EfB4||HpE* z{qErI#Vyt!UVp7R?YVyY)y9c-OVbM!H29}~ZM>&`wxw3)<&imYZ&|MSU$J(`5B?rp zX&ND~cBiqv_AaMyeQf@>E4AuN+8cfuA1X~|T_W%;a>4K0HXEl16}(q|_5A#qy1)Or z*zM;mvpjqB>es;3CmOFci|;S|`m{37Cg^uur!SM~YH7B!U&Tvn_8tA8yP^6>bN^;l z=06!Xeoa_Dp`l*u#iN$FZwsgI(hG^L`0yd|3*XnzYt#M(RUU1&kC;(>TkJE-s^t0N z8@eZk)EwJ#-fXAwv!!dA*L@c#t=V_C=e~97Te&^fzNhbQJX+>+;~`VE&|4*b|Kq2G z_8mUiBfInD#}I=To5iGv|&oD-?Z-Z z-E)&W&d(^m(&JSz{a?lA*GV6L{yCp0zt#1%%eB{K*ZQw?vnSR^9nfIbD zT`7E%KG=SKFx&3e^@RMwhwX*i-a5?XwBGPfB{uwY+|5JRBbRuJdsh5VsOqsw+qyB# zkvDH~{QqCBxqFIzuk{}{n!C%chRt87EV-`4g!`+O#;g6zuWdg(*d1{E$Dy^;`D3SC z&P>cN*{fJT8hO~suL_f|C;?Jjo39s&%GBoT>Y*7dhJr9 z9lLj*T@-7Z!MXdr-`aw`>-gHUBBeVk9v%+9@H6J-MU4lOQy;$Ct^F!#n$FVOojm;a znq_MA&us3y7VUS-p!`~)_?sU>W!^VruX~-ndUfB8{kmV7>o4Dt;Z?mk;bx}L@l3DZ zG42e%|0aGvGD}u}jz!rTKG9;^sikY?{CIa~j$C-L=9`U6UyHrIx=-i()QfMAox8*G z(sNE)Wu%zv#N{8Sgq=G4wLJaCPf6>K56(_KXRv6I{+e>JiwVZ*?bc3ZmyhQQm$m=+ zkk9q@?7}nN#x?6dSGcgu@muVDsj@EOT~^j^E&qkO&m1=>>+{HLJvTFd0^^nc72M~< z*F1jqutl%P*;}-kWxHGsEv#&*vYl zoLsKCMxJFjxaruv^k*NY?kq0zp2N7iW`ltc(>sl@^t`VNHTcqwOHVB=_xbZ(<*e50 zly!Bw3)tVi+wxg=W}L_>-gim$(tFPDEqz${`bfl`Yg_NJ?S6Pf`PLr2?96-Lem6&k z2T$M9XuIU_i%+SwfvL>41>eQXw!Jy|aM!x&&kpUr!!EvWbIQB08yhS2)a9@E*~n^3 zKF>K3vsZ1!?6YgXPI_Qd(q3}p&9_A<`_?UBfA??8=H#+dR;w3Ho_*_J)zd@C+EM?1 zu$1j?iaXe+Z=JBmu=D8V!@KT<9ckQtrP|v)l!y7#mN=e^1s{$Z-1@?JORlZvx$XJ= zho$ed^Y6RdYR-Svu32{Tl-lLO?|-smup@z9koJNxsLE6smDrd8Zs`*qzOuWh9^q1C*#(Fgiu_RTjv`>9#;{_Y|<|C7R* z`(9>L#%`KrwL|EA@1ExyoGibwF8Qt;#jh7r@$l$lZN1;6H$o5OxxJ}-Vf0h)+O}23 zSDruJ)mW8#?fjv4%YS?CR=ywXar&!TRDFK(-3JoecYfXUl6U)@^{=O&eIDhS;VV=4 z`1!QD_grniT*Ka#?!4*o!}9>&8hf1#d5&22*Q&35&mLR5yx>ONS@-C2pO5Q8=1%fk z;P-iNq)Tv$%-2JwPF+1+8~J9n>4twEiSiDAtK}p2-;bHguEi0x+&QdwDR(yS|^Bz97GVyEY=l1HGPdn??`95Xt+Zs>p zTj!FloeoW%)pNpDVf(RT`#0vu?qr^_$nYI++Qr7kyK_r(eA|y*&u1(P+t*uK_o{8e zW537U%3FUOX#RSp=Yi&{lNk~hpPqGk`@ijTslkTo&3)El=BCSowqCs$dDHS^*Z-P= zYni5hj#e$-HADTf+N+YC(z-L|E~`v!do2*!)Oa`g`q_D5n|= z1rq7vQ;nn_tx+!wi*PMzx0xptI)BN|jH;!n#R2^MY~KW8kLPZFSeSmHFFNhg%IB@? zq-EF6`l>Yhyz~nF?_2oOOni-R-rv_^XKt`z_r`m+VM6746~fyYbG~hUoEHAt|Jbhg zt+{Ld_xmlsd7E458hc#y;;hG+$vxbg_}IRksF2-$uy5`2LgmTr`xm{wefDI~)PyT<8@28>-2A3eZ9-)vBlr| z>gTs6TL`o!3QFl6P4LZTo|vP+yQ}5LLFS|X|DWD=S?uK&ucD*N*jnsM2*R|6?E! z`@VGT`%i(J{z~WHnEixtd+w%~+`D#rxX#^W??1SA)k;Mj_5#7(>)yvs@9&s>V)>mP zZPyNOs*e>tvbt7pvq6vWlbG~gk;hnyy-E;fxv-^&}DQB`!|F>dg>Dm`tWrVWN z?lt}U^Ks0qiwCPUzHRXhvCB<1c(eNKvr@a$v#%b0(|7N4^*(!<3Juu@b0VbfE{WK+ zuI|Ohip6`rx9v1JURnHe)wa0wIsM(aWe3+xez_%r|KptLC-3rIF-x1mSCFP3cYRkx zRXk79_NNbgHmmME_#o_U*~ug8sz2U#6>?7u2|0RhWgYvDCD(NCt`16?^6%cP9D5ss zb^E;baahR9${z7db$wkd)V?Y#Z|4t#*BP=8lzL>PXNJbCvurpwGtIt=bMi0kuicg( z9Zh1zW=DvBKC_Hn`0Be!GrztK7D`FG`&gIphnV`kFtKo1{q5zU7d(qKKL@`1`RJ)a z*Yd9Tz!g*G#XjA=diu?U6>a4#50t*F4PLy~v}D<-A8wDmlWMjasr(nPY3rZ)eqQHo z`Dyi40h`=kF^C`Dv?uVC_U^>Pvt6I=ihLhs7d7S9@ws`&RxFd7joIfLI`mOl&>ytk1d(UsYP`tbClf>TwkFPujmg>LRRv29Uc^bQA zWpq9N9C>}o=6~*dv45ZO+VC%Bj){3=c35wgsCcH&9Mk95WYg}hs8uaz^I)pkoM@gE zD`Q@ES#SILIF$`A8Sd96Pd{dG^I7j*vAL7?8@*=upwF}0V$P4fA3ra6d5C?E=7F#G zZ!DdtH~m-Z-Aix3^+mGp$b0uqO@E(KS>};vGFLagY!PP7Xck}p^vaS=3oZu4r$;fE zKeb`J_3-Ha?rPK3JB(ged|(LgDgQ3Iv3sxCwK!RBhU*UX;lf*;-{h^9E1JQeyK9qp zlKAB*6@@KNvy`6OkY2*8xpC!$o*LlxPk#?9Z@zT{)Y-hH# ztmZ<-48_{X^7SXyXm@tMoUggltl^uX+3Yg*l5LDzu55X)v+VAglDt<8Yp4Exes!Lk zjJU(>pHprH=U6%XmYh4OdYAGKz7NVamHLx+OEABm={jGjq+x#Az4BT2E|-WeEN+l* r-@jV2d<)-)WXOC~&+Tz91`{_v)mulh4D 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

    ;1IQ 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%0Ai@q~WzC@9M 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 literal 0 HcmV?d00001 diff --git a/assets/main/native/4c/4ce658b4-4739-4282-a0cf-3fcf5938ab29.c51dc.png b/assets/main/native/4c/4ce658b4-4739-4282-a0cf-3fcf5938ab29.c51dc.png new file mode 100644 index 0000000000000000000000000000000000000000..be4ea81b8a1d4000b87b6c1b1a919b55ff2af9da GIT binary patch literal 187335 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 p~q^f-%K zlVP>4_MOj9Uo9(O?YMh$VfNkwuM#%teZAX#{#`4_Yc1_-Ryolh5>qW$+j;VKc|2V9 zwVOA!c;>Aq-u2t(J1Q>@yYnjZug3KK7tQs)JPuxZ{lzDX*Bc|w+?t?pBu62?{MnZ~ zK9*q%^m*E1D~#m-O)gcH%j4Adn0erAS7|iUqo$^nzS*DltmB=cy5M+F?GKl8*TlYW zSY`TOsr!dPyhY}w`u~5g&$nJ$>AiQ>so%|Z1^V7?rE^!_ke!?&w(j$_*6S%7BX`t< zUA9!aAUETJL+2fvgv5Xevc1xCcA7k0aA?DpHdcuZ`aNIX*<|zC720jIHCubi+n}Ab zQ?u^d(2VmVDhny{xsrTIZLXNKaP&91hN3XPp9wt4^u);eaog^g!lYq|}?@ntxWSR@>$D?&suaQ<}=TMrYTQ00wzS z&6}2H?`Lm1d`v50UikZaizfeDFRh%({Dn1Y{>kR7$n6Us?VoVqsif?|)P$(_Cmaq1 zXp4kMT)ucr;g@Cq%*|re+h6!iKl7^RfQV6oNX<5*xOBGid6}927V7Mp60_stopqg^ zd#`V}H*M0KT?`vf&iizPQ=3xeEND;m@@Ve-|w{Q~l%5 znlm^49lK}AH8t~NZ$Q~PVcp7&@&yjZ3lz>y{>^c*es}wR_T>vq`aDCU&OFn;P!+WP zU@2R~_EiCHR(n^cCo?AhK66P+XwFG>j#p=Q9@WWyoiaoBMB9odyADgue=zTf_+9B6 zb*DS@*|_e-=^s~qKjqNdFxRSgRvAaN6t9)BSzW#**-@&#W18K@T(!fGCOb6sB(_fq z6*4=h?Xmv&x>p-kJX@TfbFt_9*?TcTR}TJlUOrcTW5*Y{yFRKC_XAe;FZapg{?_;E z_cB!#Z@rDTt6s>8%t%oe+ZDTQtKG6I$KRWU%iJh$7+`8S#tJdk~g?gOLnS9rbn_;zM$EgQp`Am-Nepg?~h$VcTD$21+-8Lz8 z!}*V=eoN}yT6`qFQ|{wODHV&-Hp#nvTs6B*9j@=J5^^bEshH*!wKi~iY}lbYR;`oQ zq;{`TRcLcbWZZ4Z6@>FktP?;JkAw`SpHG7C~C&N}$>(E+c}@)+mowktUARIRNo zTR7=R=Dqx#3qLN=oHTLkVWYfjZ?;MWwkK%6UjD!K`MzTkr=D#Tk6JTXuw;+j9tQa@ z_FEUp#BMA9%bEFlqs!)*hp%VvnApC(A+fhKD0E#P-=a^aySjKke%i==eC>-m7Q1Cq ziywK_i_2}l(AsJLPnz{+n$ADtXEx-JBvb84v$^9w!m@*7(Vp zuM1Dkjap-NYga<(l7mHJ_VZv-3nO$%a`H;sI)+jeZu z;j&eB0)^Ld-hU1a(VY=_M@C`W>eXGLbv*A@HE|lneu-*ddyT8~)3LQnXHVf+z0adl z@T9=Hhyw9fV*ePXZ%M4x5q_ki|Ljd}@RX8I4^kc^RGxdvbKqrL#NJ<7ic^oy*%4>B z?4X2y$?F$a+oETjn+}U056z0VPT{+~X7e)d?`)eRpPNa}Js-*KGl8=sR!!)|s@1k! zY8S#^-kfyj%BNRKdRv`VO?|NVGiR|lJ8Q8vYffq-mps#kgLkZSS~Xs*`si~s%kXK| zpV+Mt2X6Pj+TfbTbokxohV30Mbi%fk+%h?qsHJ36oXPK>!lNt^EN@pREq%h^K|@%u zuwd(j`n!qs0UM_r-?Q$-l}-J|l18oCj7}*sLNl_$SnuunXe6P1Zno}=s56djer$TP zuP$4i$+c-(9^b8GM^%fkV5Tc8nQoQm>^I7PwnE_A55E~gdsrh&Qh9!_mq)LTTRz4vYD{yrD9Lgv2Tn0mlRo_oN)7ASEA&k4EZY6-IF;284tcPJ)IWsqp`Wh zQu|ZeW3?%<+~3t^=+&BQPZ8&Rdn?l^Jo`*U@)5r|z5yzwKNmQNZJz17K)WS5duxPR z$pqoxlIzJIdDq|Iv&!E$W#jwx?kd;sOUJuye7ss!+R%U2ZI6}xW?5WTow|E;Bi6p0 zw4Jd(?vvT(-ln;0e|2R$r6nEl>X$Y9C9R%$BCl&E-{}c@d50$Tryk6`Y}mT=vm4*G zZC9ji79P!G)`(uU$kX<9s91dbnZ)=yv#Xmz*Q`j5pP^N*SO0H@rcq8ZLP)E?r*{w$3>`MP<8?mii^t{nwn6Z=^04k3P3gJSXy2 zLC3RicMt7ZE59^->5Le?BgS!V$yIstJFRv!CVtJdF+Ay36Ryvkm=@&T+p}=1Ij*i4;8k zaqh}%k`k}dLTzPu3;&yCr&|Bt@uVfz)T+(5RwvT<;&GPRIBo{P6aQUrCZ4?djW1d$ z_Vu%c$G12wkGef!YRm_nroG3)ChgnaxN^(2+}}T*pSQKv(RnO+`Ky!f^^>_zb;VXk zzDsjGp8D=~SFE^n=+P6K4t%oq?coq|eErb<>$L@@MmnjRc{e@ndq0P_B+_6uXZx~Q zcgyeo6A>|)8@0@%zU!fL+#~l0$vC%#A4?XP+BrXzON~48!pqS;u*&|!16i)aq87(m zv(vhA&MnjINe%Daa`T~8sy1<* zvEzDh;J~GT)l)kh_AC0oUvE7z{)#*Er#u!#y_1?h_PmOkuKC4PqNcd<$5o^`|^x#Z^nfFedj*CSoiqe_HFN~GWf#+#n~SD zSa*o)J$=sSD5q}jrn6}Jn;k7Y$^sesC6V)w@3K6g+nLDm+sgSk)7EQeI+K;Y9N;la z+rMx|#VoCv+$%SzaQK~nbbx!o(YiAe))er_3bw>-@qe@WSVynNlDk~<{w7`iy7}sw zF8+g>F^dlCC9W*2TeG!{>uEs|N5Z<8rH(k2FoYVZ|0zr7iO+47 z*s$9v1 zaLWOmU+Nz?w`JbGUHkMn-}!g@JGX%_iW`}+=bI@7);EvQb z!DpvSUaaKi+jb=>JBx2l?{3NJIWfmr%+7vty*|tK>yG)RzgHNc_2;#_X*TOG5X``OQ<{Dya?o$&Z2 zaxU&DmzkxTsbk)v2S>MV+98aW%)p1HO?=3wakHyacqKXz43 zyRFa2aoz9@f7oX2Tax-`o294jj+u8?Mn~st^t+v*g3)hpxoy0B@>A^Q3F59bXQqVS znxe>FDYN=()@NPA(Bx z^}1SeHN6;b-9wq zKPee2HcE)r+{zGsQ6Ro-_mLH?UENc9>mq7m_XJOH6ZVx&c(Hp`*>myocUOH6bbh?Z zl2qCrlFX;J@nqC)VWUKs8?(5*9HFX%VhjM=)pJYz_D%}XVy%#$ zzcHp^v-TRk>iHsx)$VqW=UeqwJ??82so&KSY+m?nZ^uuboeTTp(=E<&rpqf`JgxP{ z@-xeqYX{Z#=d4UOdk{SBW1QvLs|UWVQ>~vo<%F!on;+-@>xuoZT;IvOh;{0=-C9?< zUc7%?k~Piy%{1*bIn!3lZMzzHmc?|++KKz8nO#fW9Q$<}kK^p}T@iXL#~!a~{XESi zedeyZ-(^|;7guTtFr938yU6f^+1d^KvQu<6?muzY=+33TYh-81oQT;Zc+vH^p57kT zdbW8dcdz*I>Nb;qH^;U=sdff``>y<@Xu+#mO3>8y(Ps*?qU-WBO zTC}D6-@Itn>Ul;B9(ldCp2>FSvm(qMmQ_4i4jJcnd`@f&@XOY|5V>KJ5hn+9(T|4!#+rcQ7=#P5^ymsDDQv0^9Er0dg zV+FHWR(roFyzz+Zw}NH#{fd$Wy&8=>xA?bjSpPXCQp#e@)Ln+0pH@eF{J(75^`(B{ z1#-VqQp`LXKY#SA`gc`0C06Zy>ho<4(FU$(ru^pqdR0}TCoQu$?o92&uW9Wzrdv9e zh(6K&7uWq!T6U$+j)p%OOg4Wwd%0hgY!q?W5#yG%IxJ$@-t&`G_qQmPee@IEwsE80 zwj*JUf+m-fuTP(8UDj>DYgy#^f_vxItkp}te-F&qlX~!`k-tdfQSG-*GN)hNWenYx zdR+ALwRZ>iL=|Mdj+w4{%HJ<0^=4pW-ITpD&fi+4Vk=Kv`*fY1Z%$d7C-aAoIn%G- zUNyT-(sJE4zqMQJLQefzWt#mdRrs^hq{pk4xtu>LBtHL>kNfGzA8(vlrQJAHE~#JZ zNobnsw)4Rcik8atOgzxFbgqu<=d=^giVRM(o>;NraMH&<(J=Ltd9&Qy(`J`+@_ZMP zGt5-TKe^zm#@49~yOti>t-C!*bw#D@-+j8ejVb5}jd{SSu+XP$M(BUTAI@aV^$4AyD^q z{|z^X*mY}Vb_;NZ-`=x^<>+Cy!@qZ_$ZgB<)lA@v-X^qEFf`1&W%d8cpSaqBqw`>%I>Gd;sMd~TcfFs)?KAydak?>l zwRh3x?@Zyj)s>9fLyVa?4u4;Ioz?c>e%2LyU#&7fv)#Gacyis>v_G3~inQ%Jq^i98 z%dWttw;xV?{A~XEYnJkiyDyp*eA^dBwXXTru#oj~<7>;!mU)Gd8- zeKRy>Iw&RWJXCb)TIV88p*2xH3$I>h^q$Or?Zu=0n+!dc3H;XClz&`(#pWBl-%F28 zzCL-{=Gl8oc=pWOZsf4FK+w)D$x>{i((b5qMeT}Or@B~+1oKJr_bB9Tjaqwr|7^ih zo;{-V8Nv?I9z3?HwaP0_{^_i`_?UHLp|GT7;WTk|ZP%)ZW1my=+OG4+-SGJ?^JULg z?u0a{ve5RwA0D%Avz)x1Rb6KicXIthzBs14g#oAi_zu1iTRLr-fV-Z<>Hdhery)%% z4qf|d6XPvoxYUT*?*8YubM7r~h`7aJ>}kUD_#V59G+$!$@h4devnIM3AL(6pJB@4Y zAwQ2sb5?F%!~BZgRSNgpXKMaB{q$M`7AMgC@xn4r`gu`o8*@ zRo2UY&p_9Mr#B$6bg#M4)Cjf3PZ-Y}yb%+=VgpaE>@O*Ki=rFb`?>YUmDVp# zo_aZY8^etYyW1VsM8!m&Tp9Xtg-#@AgdxXc!>=N%E*A0Kop>Yazk}AB2-VX!zi>Nk z^HYz$Q0cI$X8H29Lf(`4`0px*M+C0TyVuvF9I|48MfA>=e61cuq0Sr=)#)k~V()6E zmS%A?KcAXBea^!lC-D5+S-A?fiNhp8XF z>o_%@J0aCB`!eg=?F-KOFIm;Au7r9Sgx$F7|2-{IbwVO@xSAdDrlGn9iAq$rC@)Jb?mCSS|TO4-dOogYmm>F_=r(7 zEbMgT?FZ8~Pv~dWYg^WRWzDT@sxPV}OWKQ+`(z{sw5GD`uWZd#+x>jy zK08*u1BDxl>k}_ZmaMq)v!&YVCXZACd#mNlE1jWB5o%iw=3|V@}Dq~H+ z?X4T6&Z^#e#Wi29n`c!K!{?Q03?-+$9UE53f4FGRc_BpW`s%Z<+}BIXIf~B8V?GrX zbXbRn$EfuKxTX=hF z$Du^|)dF4$D$|m->~KCUk(zX%roo~5{;^o*R2He^isfld2U03$)`(xe{^Cii?};s0 zYd5 zrD?Ht?IDgiLQFraEbgrje_s~Z`!()&T%-ik`%*~@`P~s}4kCiuj6W}#mG5+DePU{9 z_wIGl$B((~0<#^IXD#P4TGLnL+0&MK%)O-SeC$oZjVX`pHVIU>oSo1d|LyqiU;EYy zu6ErZYVUYLeTK;Op!-`6t}i|C;|+&Z(cyXOtWpy81ykpm?M}He`z*^e2J_zgbu%wo zt*!0TUUBCaYx;_bUv_^};xNebwZAndo$a1qh+Pa{k>0sOh$Ot5=>oDp@~YsHOVL&c0U~ z7WWRG+`BwNmu=Nbmba2$O&@Kzw76G=iPK~r3*U_;4>|Lk;#e&{d^*RObox`H1Z((> znQPDQeWK^0__b<5k!$0(YC-eIYa5KR7!592xbL~7S!2t%Zn}~73g2D7Sh;j(G;+%} z-G1@HKW295AKqni?PaSb@ElGr-ScY0_H-?i{N$AGqmMoxUtM?Ondp=R@xAIsIROdM zU3D|x&RV-wzx%+C+^;7*?%ofrdE+#7DepacE^n2Rw6&pwS*2VRJ}Sib(PPlPKVV26N?YAxX6Wu z*6$TuYIlMy@=k)rmNjWn*^VM_7R2u{j%yWPW4`dB^$c`>PU)@qxCg=ZX_AM853(@Hx0#!HDs z>pUvnwEubLxa#G4*JnJnJ3jwD6n{*s>Z|5Ml?w~6t>f8Rqg`qkIAQ&xq=k+WN7o2Iaox+=xntVaw;y?q>%Em$@L;aCj4E9}=g^wOS?jJU zCJW1K>%Pho!_R+3Svv3T5kcWtMlFuUhW5PrJJKGnS2A#$hm?4wUlOX7SvNW4cK^Ln z;|J>-ug7=XD1Gti7}xQw*I)Q3+~fH0|Hq%}$NR%Wn&wNrTIC{_A=P~|rR+mV%`f}% z@X2$`wz(Ofe83w#v$Rqrller5m_kU;%m<sD`@t@m!%gRVQGN2J17_s-jAy;$ejhyYrNN(ZIJoqI6qrwLF!!Vm(~9sy=F^%*>H%Z z_f6S*_v(WQK*Z;c{sA}J!*I>4Tx8uH*TyDVX)W`Stzd5QjtGUKTy(>}sC9#%KO*u%F)2{?(=_V#|RS%vsmH4zRuZwro0|K)aIL zx@)J5#o5+rZV%V=@0)j1-Zerh*}43MhwjG(nUmDsZ`*NqyCq*u#~E$zPjO9g_h!eP zvf^o*F7a)uq0W@9BawWvEd2K-GV}c2kZbs==<7}8DsD+p1wDi44ZK%(To--KcJ5_D zTkrI9m8R|~S-eRfWj)reIehS5Wq!%m{TxBA_gxpfPP(ggM#y08*OIHo%XAeEgvG7@ zvg1+q>ylM(4o?V8{2eU*=t0$=c^SDMQdY%R&SIa*x97h$Yp;ps{yXdfe>48=;XJG~ zqaf~{mBsCQhu>b>kX-Ba-4%gbj;h6~d_zLHu{ zad+C^jyKax?#|l&&blsb^}lrw9d2K}EADvb+oXcMEjJvk_Iy`7=<&gdD}C3t^*L=* z`IvT{Fqocdyh&|FZO&Zt8$VY@t`J%vVZHpL;2Zw4s{&@4+Ar)dXuqpt#Z&%uUEZ|x zmvt@Drl}@dj&HbhWZGAgs!UEU6%~t{3mEuUO3VEDdh?uO*|o%KU1x^*Zv(pSd%di) z+j>!3e|Fbeo65s~F59;x<+3YJR@}LF+lT0ACzYsFdj_3@R$QMptPj5wvGV*uuk_UE zS*I>4EnXP6`M7DWWx(Sk>w|Z+jxOFUFpK3a!eEbm^y=Yc`mA)QAL^yEHxHt+PE zpzVhhn15f=I6Lp#@@7%>3eHU|Vmn@OmTWy!s^_*uFeiZ9%fhX7bE|Fex(8m9>&5i< zz2rL+xavIb^YDkWW=WVO-MDz%Jg9Es-fPUk8=^j5%AL;1E4Mp0MPXg(lo<@0SnlKn z?ia9g@2=b{V5)2XH1|=|uVW$E^OaWAY!~~=ZJE8GdR>-0pVB^)kZmuu)GKV~9#WiX zb*Zj#YUt^8t9whT=l|<@waJlX_JZP&!;I1g+c?fn{u0k|U19sg-`d>D&8H`v-PDmN zc+4$$^Xlt)yH=#1S>))j>C@%I*Rl#$N3EIO;rhM%%{H@p+=0t>p4f1qd3NX1oZe$h zR+Z=0Xl#Ff`BGg(+lCny4>GRbJ9%JE_=ZDlhi#)co7iT!*(mVrwye$e-Zd}xNY%E) zcbol~7X(ajJ2@}<-P5Uwwwsro+%LAa^Yr1RQQ;eeQ^n^S8}Pi|`0L~1Bg~7p2kN(6 zUo(3)ZyVpVEc4yGOX6STZ#d|0Rro-p`4Jo@q?od5X6q z!gv3z;%UE*ysBPz=+Dnmp4k~pe!=V~x2{dQ_P^-=N2l%AzD*50XnZVb5Bs8R0tNqD z8=FJh&o)XMCunqkJH+cIq;^G_bxUAwcMIF&NWA5v>BO8BS!yY`8n@q)!4bh6)_xR<$I zWxv(wGp-hzXMVA6FlG1aZi!xB7bU{H^YJ6&Uy=16?icQOF4d}d@U_IZn`M%D3%7Be z5L(}pc=rCrJ=b2HcsOJ6TfLYYx#A|hg2%he8a>iNMEb>72(7Vx#wD|QmGAX4zoad? znNTe(qRs6BG0G$)Va-N0ei$y^h$;ZxXro{LAFoai4y#v0tpxn8nZH zsmqqyblq|0)R_laFHGbJ;QEu?Wqqc9zw}y3J1y4w>S==8!ascfKI68Gg+5!e<23$F zISC(TiTwTY$olN0e+dGiyWHg6F(YD-FQvac4|AIdAi!g=0tcbLgl*3_ofFup4X zi}ea$N8Nd;YBl5R+8fVe4mD=&EjYW;nk$!e)9gbVe9pgHUAiP|kNunPv5q>m{TJL1 zbT&KZTsit=#xB+>n|t4K^#2|eTB|GFlCG!T+<30w7WXCoiCjGDH>C@u`pW12B7TVb45Pg&b6V{B|ZklfdlR?^|o8y2`Vk-c&s6>28h9|2`yrKArXZR_^t# zs*lmjIIl$U#pj;YKi}}`R^>^9uDdI2*;%+RZe?wo`*umc!zZSxm+L;xjL`nEs8sK6 zS>c`1XDp^qtp4vknt5$ocH(K#t-XPHxmv?{s@$X%p)cVB8vPaW7u9`b; z>$^~1D7dOZ{GZ)-pFMNDdGD;g`dVn?d7p!~c&GQq-xT=$V?(I13!kzLd!%majn+rg zjxulTclKY_am`DJQw4%T44Abkq;6 ze3t#Q7Gd)w&AFAGjQk9~e$KK9>Kera~roBhY->nCcqH^|z&o-;8#tMJ1Cmp5A9 zY%eXl!OGejxo|4e+a5M{c)cH(^xh?f>!|k=ZE-hTg^(g9G_deOJ zW?i=O-UjTJHEUg(e;Z1@US!<8b!(pd{KCy_h6mO5oU7KmnEm{|)y2q%AEIK|TH;DQ z*9xv>S{c0Xy61`Y&rUamU8|^B?s({m3yHX`>_%A5ku(3Fkw`cM8BTU}8RWmQ2oNadUv(&Ewt%wz=EwLA(GFanH z_J*<_o6D1=y*fwdQPih+_87|$ZJug}=hy7!d|t=YX6tGing8?pxefC}U+gNE?hZ+l zvcI+C^Q*0w6;hLC1gyLL^a<~bGffY3D$8W=f7Jh1V!m%PkM@SSKHdjPolf}WJdt)j z`(RgNxQ+Y0&YH)}i^ZQX30BHT-v9IM;tO%f(~$=&&ZcGFb(q9zrIfro;lZ=q2UT}G z-k)ZZ)%V_(b9PJQ>6kB1muERLp4)k&^1L9+ivtg>MDCVsDp*sU7}X}*w)GmH%g?9U zKK)Ua*F5*nnIoOFIrjBxsglU9(0b8Qu6-}RlvyT6B$)1Y=(d?Dd}L~!WRUVv->1>y zyM0COMZ7g}FX2r-a!-0qRovGNs!Gu3=_#1;E=u^nL9x--PVUirq4~D= z3`_LI=8Jv){jT;!sev`~sz0n)CJL8J!Y~$Dk zaWZBFQ^jV?x*5?aaPETF-wLVX7atTiuQ+$Ty8eMfQs`C#T`LYh{rj=G+iq2BOKMt6 z?6CX)FnHZL{uf6izFod7|2DJ9O}&wmV_nS8LaoYuYQ8a%OiETtSCquIE>M^(DAYHl zFh(eadF`p?y07&T?iegNx;|Z}vH#MAyYg~T_ECR&cn`rQO{mrcv`+G<1>LA{CD@=a#etPcz;^nqD zaaq?}o1MbbYudS$7bx^xX1iJ-f8|H{>GB5;KFnV%J^4pudAXXCsmIR!^8XK5`OEs; z7Ede}pOpK!RQSN;&lxWBGVP_xlOL6Sd3aV*tb%pzs{@U`VmI8HmYEhkC|)4CZn5lV zvBI;lTVvKdf1wzV{iKyEUtfW1`;YFu+2MZ4x0_TZ&*>>DTG-L|m)ZR}e~jL7YsdJ6 zpV4hiEj^4vtt-ATE^cb!nfY^tb$03cz2Em#M1Hd@U4N`9f~hya_wt&(W$WJsoP4%% zx7ZPuy2lJ!d4EeRI-UzOrQVWa?fBG|pq+R5*4%Qj#Vu8-3zwQZR8BHNZGx5 zP0aFHcV-6jTCbhLBC@|CN;Pe-@xf`PIqwd?e7sk0cK^+*53HV^I~c{ZtLB|c;>5MB zDr()QOHS^Zn`e`Fb}0+Dk;-9#Ri}Pu9 zRh5_ji&Iy3>{CrwSj~U*T&@3^_QTlp8rpM4D-gnA&aYy9rjwFZWDRPK5Zfct3 zoX%mLr5(l zB&gMN|t zQv_>n^}Kx}{;{MuQCzk+-CKz{#`C?(;d@uERUNaN-YS>M^Dai{pzegZYyRvy{hC9J z=k+8#$7#Q&O^Ywqt$FunmG;LD<;@rJg54PQPTTY0yoH@XZoaTXY{b;F&)9Cx^pWAY zculMF>%@7Nc-G(RKV^D7dB6RePu9CX^RCs8-)|P@JaxT;>y8CKWM+BAb}NN&d}ml* z=emV?Du2}6Ps`Yoc8ID!d~tF*)Adgp`#rwgy(w7t-Zt~|!i!-7H>Q@`9KFJ?Ti`f?o zcj{Nsf$XG36PrDvEatk^uF1@n{^rr^M@vaQ3Lq~<)X@1|a;g6NfJu%Jch;%VF$hgnUnf+| z|NWS8qy6KVV*8_RPWBg07s)x?YPG)A-l%HHbBS+eix-`Ff96+Xq|{+u>Ee6bPtI)) zG~jfO?OBxm?~lq_k&QfG&K*u`DqQpZe%fk=pY1tEUhVRJeO>n}OJ(#K#!XMJY+7L# zZhe-&J@;c&#9wpUHXpf%~n7YFt0QcDVU*Egxk z6)ZW*a-PL5#CfN@G=mxMj<&}q)DC|=Cx2?g?Au;9&K`STl(=#068(dp+?x~B&CaQA znA#h8PO3m&j4zryG;3qv1gG_?cXnl*w%Aa@yoGBI|C}`&f+F(0KKyxD;T6a6_q5>O z^|8Lj(Pz@^mvo5o<}AGG5Glg*YntiC`}-%w$a_EGbCM9U;e1!a`TOhd=1ppbPqc0R zJI(lU`sqi`W;x~cFP=(&_f9&|C?$e>C&&_?o=WWf@wQb%k>sakv;Wa1Lhw%q6OkS3?X(vbP0hOXl zm((2J{GJrP`DsGjisK^3SYGTBT2slMR33IzY|))XGiz=vzI*cC8{;{gZi|yNOkZd0 z=;uHBdhv(X4qi7ZGca8@EyJ!7p!xYAtR<2eE@P3nwg{c_$}UY~$}q$q#q`)HuB^ z>A(w<6WsEwOR8m;$||nl;yGQ*{8EtP@TMxBBafrj#T8u^{iEw%WPM1__VZJo-zD5h z(>LhFR2f_RI&zKYvG&i;lWy>SEjuRTa(Y_x)@v!7X0-genqPfVX3DNbk9X8?!Bz8pq01TB=}`nnf1$(lAkE6VAf+j=JR&-XP!N8X8S6!TsyA^YX| z8uo7yrJk3v>d#;CTFa5NcAC+f8>-tUoc#SUjpz5DEn6Cy?>EL?I=f@5;OfuO*VHQ_ zXM}MF$4L6br?{61N^H};vtXvNdtqW$R8!4v(-WI+-nx3->X+KVi}iZpnZ|slpB%T* zk1Ne7TR&myw%5u5*$d`!N3bieXcBe#ZuZlN5rc;uT7^S1PZQBO{@;H*%5DWe5#&WuS8#{=%&it2D2^ktg8xceF`hM{VsveMfQhA z)z&Lr%Y^t`KSuEU{#2;at6ReU%&btsLw3RPt@poMHZAyBS6=Su`9Sj9-wNfny_Z&Z zRNTEWWBXHuw#Xx?uV;B{mL1e<7PRnJ4mGXS-oUyw%B)f$VJ`oZ-2d`F z#lEl#of0)t5ApnPZbSa*4dG=;=4oCNTv?(u`DbO!z0s8In!fe{+w@i3=6g((qTcEx zE;l@D^g!Y2t*h;)H_mt~_r;9Y{8U70R7NuQpN2k}6+5S$*lIE%>f5dfw_RuTF5~^y zYb0ZL_Djy>WBfz4NYWER+8AMc-Jf*@KRR z{n{{HMrOg&9P>YknF70Kzb#WQ4v^pEHTxJ z=c`4hGEH~7#Ngx|I_jli=<0tn{L$?es_A`2X8sa=855wS0lH*@VeR4YJ5<|HvaIni?bICTJs8b%&=*AylmUHWx2Y#$13F_4|8o- z%FYX)V$PNEIcaZQ*vxAJ(Xp(%)=K!?ad#}%5DhrIYC^-d7q6Cnefzt)_-m}5xZ?G% zi|$rFm#v9ilGOG6{r}^APj)?5+0Al#b<2h*UYmoH7#_r4y?B2XY%RbcXJzY!58Mnk zt=S`XNzLFyQ`E-t3tH{A&EYxKivD^XoFa>RV}4#cH*KHjtE32-Q~XAEbUBTUHW+A| zMEX@;%RlbKV|+*~ygn{$qjHYQ3#&KHOS11@{k0(_VtsYt+cPiE73L(Zx_Y1O!IMY3 zcm62;y6||v$;y8RYo?W*u8orXwrZ9`X_S9TBu@#etd0+lwT(%fQ&c!l*t%VDmuAUq ztDYKq^_ZVv-yC;N_7Lf!Ne`}U;^tm2`-^3>tn*9J{Ys`0s~dJ#glQi97x_Cfr=V3* zZ)IZl-#NW{Q#Q!|=UJ_HWy3mA?sZjylUKVc=0_Oq;F=I~KBcGAlVkFWNZ~l~m{?sg zZW-IA$uD^9RqGOMtJeB;e>P0o`qw2XHGCWM#)S>88+0tpiY_^vdh=6g+tPVovveKI z!qp`bFC6x4JG#m{*TkzqZo5=>Mun_siJHX2*sz$|_rH>qH#ggD+x6q@&$@f=!LQ$) z_gHJn*Zggr^Va84`bnRvAH16HclC54MX`L^Ae zrE5}A7G|_gZ=>7MLbK@ot0K5L9G&s~$zZPtEM?OTfFqrFf4rti6SKB?59TVvYBdDboGBzIdtLo>kXTbkn<_XKVI!?fSlN#!hj)^^wJz%IOPkOiG?_ zE_QTdqFIsck?Kg@6kjicgGt#=mW^gxFNvu-vLEz&9GI^hs&>+0gXwL#^5v`s);!92 zwT2sneHY#moZ2vVpP0$TifezFeJZ{mUN-HG^ojldH3K zCT#eqR@^*y_k;yP=_*T)D6+~nFwHcW>?)UaGxY9z+gI~{7w$`NOiVb>^I%Qjy71W8 zt2$!m6n_8uC$=T@yUe%v?`E<8{|UEz`5)bW*1d}JM0IJb!V-t`$uBz2>d)T#t*-Jx ze%jW$dFmZY*0bFB!dLz^ck>pBuxI!56vZ8GH1Sp64mj{8_nQ3HcDbad`H$+RHs&&J zOJTVqt0V1w>&p+WybFr)i~r|W7F)Jly)!+2`=Le8&i`-PaMZ&oVeW~aephvE-zJ%V za*fn}w%a>wOLd>NbiW73jQz6idOH8~G(Sw{_Fl7&caD!j{r>I^xidB|J->F>GpE(g z^UIZIuZ>mDzA1jX^=P^IT5hGBc5`t}#|vM+f3_AVliSiMST<)J>*?~i38%BZCLSzU zYcuD@pD#>4TXNN!($d9$Pi$E$7yp`B zAxuE*RCeq0=>d)JI(l>bQ|1P*F09l~V3ptGzhQ5q{u(pB-`W3S?G+D+C9h9*xu&!s z?cvqNSqWW<&fx~TswZ#1^K~I_?werFN55svq~4_|o|#tGazaDb+Sz7{_$~o|+cu*! zm&zPkVz2(VXY_k%Q)v}vnwx>@p+4W{ z$@3o^bX=FlwD~~8p=ZwjxAo<66)HU2kya@2SLo%uZmpb>a8(H%zAZmIo?l5Vh?a|q z?M~I+X}5k_^c8=dYcUtN8`g`8#eTXniABQlFX!{ z?RcO%!@izB(cLZcg8Ko}=@%N`Udv7S`bEKd`~ElV%XF__YRyVflRCU!l)tH4esi|s zVS`JzeyRlOPUF~}^lJ9~BXPfF4Awh@HAXCWr$q!W)~I@{xvNn0F{=Gq6X)yIKUq9(+coem;5ezahqd+S38O6nD?fh8H=g$* zIJoP{>VMy}|3CZn?AMcYK5N@Ur~Zg84q?jKU9?q_Pl@x(j@2jhK1M9hH*B~aFMHxs z!uoYhKNi-$`H&^XH)GY73?}CrUYkt}>bLi&PWZ#d?qk10_vh*<7cR`Z`ew--=98^k zQWWL$UMhTJu5PYNa?BD8{!-R?_*}3x=b^rJpY>+^6q4AnHPY|z?Vn5Uh_7IdDx6UH zx$MUmr2~DomIbx$I&ZJ+4>W9;ec)33t=Ur3-=yx}RrOeKnrp20E0&`C4IE1G4xCbM z!nXP?+BFCmf^` zK5=ikAs`N5SXwOzVlZ#RS_ zi8HppZJ)}0yHDm?_11s0EZ@jG+(>%En>26tltnr{w{+&{UhB`c%W&IveY)`0KReBh zcg&5=mTBL5prYJx^=szF(CO<-i}O0y_~>m)pS5PsfjE2XnvIihE^T^wX(qRQfgJOl z+WM+$X*0RAGG$dQvWK~LnA`|b#st6)wYxoyX9CQ8J#>`cA+rnx*O{a-{X z%etz25^D_tTO;OOi1WQ~)6wbB$H$wPy>fnjnf}>6bE6$jJm#BEw8YxY7W=*M_pJ>< zeo|?7j~@Ipv+r;p_a%)OGo3#hD%R{e)YWX{QL(di zL!jsW?x$I-rLk8ZUWn`OD0Mxtiet;K4^a~jZ`)-s!SwCL{?*eHr{@`JCmQ?}=hgZp z=JRIF;eUct6GRS){Sz`=EcaULMQF?3D%0%rdx}TgBD+*}Xz(e1EA%?>LEJfFU3%+` zLnS*7ow%pC(c;&uta&nZrK{yqVmIDd_k4r(#zXsbW;Y01NKO+v$W(Yo=7D3TdT7(k z!+z@zi#-+)6Yv&pQeLkmd1D7({_YapY}XFQ{fz-kE=B7bH})IcDDvPmSk!lzZKjke z&&KVu_?nhDtzfCCkX_=k@z9sD`LaR}b}eJS>7SQcnlOC|r^Tw?T|BBkp5ETDrP%Gp zOY_*pB@q&w+kReqcG=2u4VU5m9d;gDcL;}seUB+qR6ebzvGHR?%h9B;(6y(&p9w3| zD9(@D%DFR0opGh3cByB>ow>g_Ug*79vE6FwgJz+F#=R`tUUIoGtzy|9d*T0|pT9Yx zbGAQb;`u2o6&fLu7%8rqQ}>dsP`+x%;}4J5@g?aCPB^T_Ul76Dy}bEA=(#NKqMODy z4zmi)X1RO!&#l6fq2-gj3oa*y{o5+9iRJX6<^*Lm@B*X{BF*wG}S#5Jfr>B+c@!b zKd*dhTYO`sWsaTE&!rc(h+n^)>b6#iU+HnTac4qp)^)E~k(e$8i~0PkOWB^*`d-Ui zU-dFK-(Xjgg3y-jo;n*O!;NNnG;CPpH9ujuT&%deW2DlW+$~Su9-Ykmip~H12JwCK zbotWk-#p@kI@*IGC-cs<@Qo6S%> zbZg%M51o54+T3bZTMzvB{C>$hiG_{D@BOav?r^_Ta&F(*+VI8g9rw6TH_!Zc{Rwdup5L*~UfnKzBNX3w8qDV+BB&FShy(|GS&6J1p= z7^NJ(`9$s9v0JxZYCT^&z1d0UenPw`_l{K#S{lr;+7YE|quzI>CWmW&-eql;)nw_} zJzeg6tL#OyoS$`Ve81~l+vnO(R?y)%sL^tj%_YA*RF2zmwZ^7whU|4r`(JdOIj#F( zm)oMkS!}byiq6MMOx>4v?`_)TBYf$ny^OX-#uY68u;6GCw`uWRM%_*W35o8hoquii zzDWAA?Ofq;)`*S`^?zkvZ1{Y`uW7@b7}4ZsrKdG^#CT>uluqfo%>4er$yT?%(rH$b z+y2XC3MOS;i}<(d__@_JAvc1ahNe$Zzi+j(^Xakq9MMlL+ouY@Z(h4w%TRLNs@^Fw zANGFzc~XXVe$0*YYiEZCM5;*J{=B5@cw^?_e}XNtM>z%JJf_^u&AqrZS4QT}o1)O` zx0aa~6ewSeC~XWmz31-X)q8T)8m25*zuHSU>F)k1M;@KMy6x&*x0zgy$Nnz47Qe^E zWsBmqts2f#mg!A9YxJm9Uehfs?RMn*gV_e_Z54mm72h~1xJ^PO|L)0JhcZyp}T6map7!^}qY=T}R%23%eTg zx+KD5qiIXi*|g#FrZv zPqtbg@jJ^>)}e9hjax|s=k+E(2fo)52PY*SW4MvG^8C7kCmUmA&Tv?p9_rgOCw0!o zIQ=xMwbu$J#Fy+_v)MsOBBsQ3=G(NzH{zn%=3XyZ`{d2Vr~aukmo}D*9^007zNU74 zrC4M^pU48SjsH*fo?ak<=$LzmjS z3g3x$Y-n5CIy>TA_Pp5A?6)&BWPYdS%v#pG!uPDURC2xIEU9+W4Ay(^4sX8sE6vEU z_C?4Yp~ce_-nbq6dgE=%)vqg+z3o2q`Cd2fWeMPzR<+S$0n4tJv((F+yaIZBFWnFm zW1PM-K({zoQ_(_9yesYdJ8!9WR(7@HYBeQG6%}`Ev~u{qJ&cK-?o(>z;jzE|1j&ZE zHqH~+u=(__z1NlaYzkC@l_w=6Z(;Dd@v2+E+xXz=ZvVF0s-=szI>gMeJJzwm|Dog~ z{#7i-2mE?AJl?g-WM_cH>uW{vJaM1B!#iHy`lElR+;v^HSkJZSB=+-bS1V^Pl_^Yk z_|3he$9&xv-muU+QFDLoI2}B7L8$dYx$}=UJnIf;zpL(ZCt&-ul=bTaIM>)6^Ak?3 za{kUO@XektF}-GPQbMsYPoKy2Q`@SVGQ6XlZ{$d<6nX z7~Fe*cyY7V#=kkLXE$F-thD78dhKMgZgPa~(+iccYkw`YuX#Dmdm7WG1+hgDp4<}t zE#)&5b1v5yG+VpexL=&|=LpAXi?@b9TO%Y=ZZFohzGOeWhGnLx!n(OfFGx6wrQW(B z>3*WyKX%DRqh^+{8DD0tnyRI~;ZtP}cgw9L7G>S33)g;-n|!q+V)C|I|2LH%_2`rK zyl{zG;I)o=hUf3b%YPG`3%^Hjo@(LLE z1lcPa%8t%_xF$UC%&AkSQrsWE7H!`=r?+RWqc$7M+wPnlKiUr-?Z|Ap|NhGc`)ez+ zSMvQ{mblsYOBB2Bcdh2giFZ}}B93JJvI)=0Qn+TrQ+#pXl3OX-CoPw3Zfch+tSV9{ z)8|_m>m(AAelN=Oa?}m2Wt>tU@7lyls2Olpe|o=tpHRG}vSbzG>kZGgu(n;RKIPP7 zrNf!Dm~Z#FIB%ZVOUC@g5xR=8r&k>8`grw2^a6#p2zmG? zZvGwiX(I38d+z1y&i~*4Qi#WzU3ki>J9c;Oy~z-}7WMS@iAN7?Zj{ee4v&Z^NIqjF z_WkDPcPm$V|20c(WMJl1cMh*zWApq-NvZkK!&b3pFDX7^b(l7HcW3+5c1s42tt#vj zSC{r*JH>pXZB^O*V^zAlX8nEre7<&D?6$+_c3W=Xi&px2LMg={UzV@EaP2fL&U3Ai z`KL?Ioa8kRP!#<6Q4_?onv|*|2ML(PL z#Yz3HBF}O!y{%zSXL`5(r?MA!zKpZ}w2YM4vbSX${oP6(e|_BhEA>iYa7@z5&1t^Z zLbknZvR~6$d6>`4vB`X08Y5>#ae_Ph{e7Ol{^)CW#PSKfID7E2#O zTIXQmnOz3@EC-%d%IGfFbIsggdO>@pd&2{n=z}|AW4lwj&0_P|4H;*jOy~2y`EIiI z%x;T<9~;j zEJxNzaQ3o5-#5vIj#m<23S2Y|uiyJ|B9G;fL(a|$jNJ*!&B^{h=T_fq=y~ovuOrRE)+|Y! zlYXpuEp3&Pur(}a0|!61;c1!API(&(Zfx4x$g!PG;afracFyBJG~C^m>aRQ#^YX)^ z1Gd7~j>e&C?Rn>UZfr_iSg^i!`O`q}yIre)ozRo23BF+?vs)$f++!KT z(^BE94IR1Tb=SK|F+~fn*%3A8M2@6zP3PaOTMn<=y6Zt!*p91}bp=(b((aYnlWVoR zlV;svQsUsdGh<^B_nV-S4ZrWKJ~3^_u4heW)Bfj6$Tt|jxPO8n(Ei|tGn^??)Gnup zXig4|?dSBfwc1fxq+jzf>))g;r!sRVYphDXKd;Ki!HfCr2DJzOHg1aQPP`$+-C$WB zn|LRvGb}Jl=+Td~YkztcuZeuUsr5_9V>YE(4}>!phOT*=sJhyFJJa9dK;`Kd53JL& zdcCXS>6Sg^vX!DUzni?H)7vA^tJtS+e#zL4y>Dt1z zW-;r|9zGm7Z^wnS*X!6fUP{alS@X|TUFS~z$1_t;98tB=nXj_pfWfNkp?@|Nw9n0y zsuy5ojJsn0xUWOEJG1%5H%gax~wVbp@^j_AN9^hI zKQJC{dUxyOjjs)=4gD8ewWp;<{pl7jxgmX~EAFq^gR21x4KyAd&5ggT?!U1k@l_Dd z?kvt}hc_6DZp=8s6YD7aVsFpRoSVUXB6r*aSl)z)I7WQCbYPYC`PB3S4-WXo$b{_p zc53Rzrz^Q1i+*tUP!~9BfmETE)8o>jzjrS#aSb;TQMjD))%B}E_`IFll-fhvE95N& zZ#V~w^QGq&e~67}+8Q)HnX^FO`f<)ThDYD_iWv7U;<*>~w59x^Vbdn}Na+vDy2Ybg zr>wrZTDH{p!iIOvrj2uC54}qjH)xbNQrMiE;%e=baaHvD)m_dCOzB$RA1v4vQ>b!z z-}k$p|GN6^WEExDq7d+pzNHO-R{qE0ZoBZ#EFIM?(5cQAc$ZB;{8>S!Kk}{>*uY2%qYFf;!ziZOMm9Mui(0gO8!&Ulrv$u%O+>FG_rpMc))m&HU z^_+;f^1Aklqm*j-C&5L!=^M>1gzOAq(_42(bG4G0+=_Q$v0F8_tg?EP7`yf=_y6e^ zLypKX?~q&nO;#-M)Zh0ZcQSS!bo%>=OTM=ua462;SluQ#;E&UbCoyL`y* zW@6xV)|H9;s}w9+jAtIc;(FciPIYm9ub<%6GUM}W4=*c@Xu8$;YwIPBUl$T%b#x_q zzr5>?VBSCbOkLH&Y=d>zF7IB!nZT7V6SAN|33Lz zz1cN0w&;bE)|s9;%s#Q(6;wC8S-faYfSBCX*$-;YBueHl?|AjA>1TK1noApZKiAn2 z=_}!Sbf-sNgy$xo+U57wu}#yDJlnA#XnLMHON4UaJ(YIe#Cx|AqHl-+RI3OEU@1jZJjQBP<^` zDSeZv&^^rVYb&XL{bJ43)bIN~rNp1O#h{#IYxn!j)%1RU-T%ky z|Nq&-_xp4g=d{SP(~1pp1dbk?c%reZ_J@n(y@Td<{N+Xy#phJN_$oAIvt#@V22Lg6 zJWjg{eA3sGRn_Bdib`#YQvZtoN;@t*sb|gXX}?m-e04pRx=5B zw42@y4RzmrlR==#_08R~Z-=;UtUKAEn8CKP^GwE9R&N!?>942pZhv~=_toudQ!jm< zz0a0Y&|BeKbU|ID`?{kBYwqMWx6f7X+1iw*OUe$g{{Fpw|Hf*?tFLb*PH$m}S)XrQ+ncP+baKl=_+_?E3xC#26F*x-ZqZ&o{7y(w^?*c z_gcR;3;S%7yWDiq1GQYSwYzp?9KGbh)3@UAJ&PruuR8HP;ahgMXd91TN<;4Vy6UCV zSrn#a+>jGm6SNo_}~zOA_=zWe2-mEMba zKb_y(^{zh7dhtq=i`I)cKfL{W)G;EnGEVZsUdL+|7R6RVc@t%(Iq`7_ZV@`0_%Diw zsp9z5oS#8$Ryw5*Yn7JYYf5D1-+k>ZlWbU6Y6NR$2N={z6)xMWplo7q>31^%m1H zReksUQ}7F(+kH~|qC6ki9X4HEv)UoTW82X~C(Wma9D)uWbhc>Bi4U(as2F-C7oIDI~6^YTfDySy$Q7JHeyx})x; zx0Q^^MovNPlJM(aZMnB{2=5V8P#_;fiO*fp>wg#7ld9D{*X|Pwloo6O*)DtnKh{uti6Ibps-rs!c==@fZ z6P7DZDCj8lA3QA7vDe)8&8}$iD?%JaM|WqNDLHJPewT+&k?~oZXy;oq>#KDxevx%0r8P5`R$p&ry?aE^WBVQ1 zG~r!qdj36;Vlro7`=~4=IGelWY5MiW&knz8i)Aktl-ss$$)(@@_hJJ7l`UO(%=~_g z^^^Sh316qVho5NUjfyx~fAg%4%ayd9W=gCTZpzaX_MRvG;_vgf~D7PDDoZsWU@s8zMytHtXJ=6y7N zDkQ*vI;%-s&PV6Ug678LHoncz>(9sM9{WasY(2bWenD6z`jF0M84X4V((PbNFQEXX~6lV$JG z0`@NlR5#Dv!QZKy5X!ibt@;jcO~l4uSB#!+`ytSz(Y8!9U+?CIjERw7H+Wx)vRd)^ zC`*%Ufx3s#j{KyixvO@}UgpWLreMRj@RgH(cBmGF-!B(in%WrUo6@~7JlrtwIq$1! z2@USnwtQ@JQ_hsTe*g1p-Q!c2bPh3S8C|(DJtlh6RRd-o@0%?B{r;<$XBS4j&X6wK z7Snxr`|E(`vd>CC8F{z5r*iaOS3C0KWvb)HMS6Fp&3`W0etbG>!RL8PdvCQcIB$sZ z6Eati>EMa@yU$%y_w~3(p-~~;P(0}o9~4OXG2$=|Ghxqo4`%JiZD<1U>{Y17TwdP#;qYmIo(I%IOZwD zZQPZ(_;RE1qy?`vwC7FU8o}gz|CRomxs}V*j(pEZxp_hNV}9kgCf95xz4~U&NwtD!76oCG=IBKHG&*v4m&cl?nJN17=EvRGsB*<9{Q7FU9eWr;U0Ic0 zeoM3X(G~K}N00sf`>!Uu%}(p?O4ROrIIr6B!3C#>8&y=zj%_&3sXl$rF274k#%3}n zPDCAd{OS13d!gZ+UYD#3>01?6rS0}qaNIb3hf*5zF&CZ6?QP}P=SAulMA>fQ(pzKM z!us)z=#hEGs)>s?MC>b``!{^UhMVH|HuTSl+p%xwv|}5pUd^hu3^=TK<9hO?+LGHX z8nGQ`{T3x&&YrF!wfe$_MB6p9A0%?0RO@)Z?NR^46K5yzgt1=L6UlPc|Lt;5i}d68m^qrQyA!7=Cx5**m09}5k$*pa<`(~- zvE}@FdG8BRQx$J;2{l^ojC#K-L6?c|(;BTAX{%SVdjC4~Y)LqCkKVlqoxAsrG9A{u zp0jXrl*(hBM{5eWcTCGZIeo88daTN|tjz7(61G-pO}V|9ukE33s#NmPXU}79Ui10Q z`y@tzZN2pu`BvWFzUFVNHhAaV5R_Pvwr^)j#N>I+w?DlNGTFHN;r;(ht-lG_@7ktR zrq^JiR(GJkVP`dfti)f2}hy_z`qAIwdS?YR0@ zh4-`Ktg7gc=;#@|WeZPo1Y2vi>wb8vWT;p)yL|Oo8JmTZCoGtKrbj+)Du1lWw%>A5 zOoukMblTob+k5>3k4Ef^v#mOZ#h39JJ>-e2$@_dtdfGEl>9W5O1&0?^dFMub-qLCy z!?3+AJ^YQ42Pd=bxp^A@UC(cl*>IF+x*%&8uUGejvda%!`^xe?F5TFs*d)Ct`&4#o zjqcG6=NuT{UVZ4#evNz2wbr=UY8GLRF4m%_jc1E|@~7~6C%x0riMX}l{{Fv<+nY;| z>YY4%t$qe;`I0Axel5^DviM|DzH6@BDHTgQ(SpmXvs)5(Hm;uIr&SbwlVwKubDk-e z_WNEId&nc5(-F+%d`Y~lfpu=y){Kmo|38>*ocXP!=%CILmgm#UKVN#(q`=cSLqI;| z@VdvlRQRJkCmf3r;0_fRmkZ4@JkWjGC-$lduQ%I~hgZLfUEHuGNi~N1Z&BjGdz)k| z<|R)*wRKyrbl&D1n;!F=iF0;+xf^<7(bK~@+RWO^_2!jcpL{?dcC%LXQL&@kJbg1= z&YXR(D-|iUKj+1Tud}OnU7Hx2cR1|Ok#pY^lEM}ny+3bz&r2xb_^E}bl^&Y(E68kj zSr>X|%6^ffH;Mz62qZ|$@)f)i3Vt&+ru*7T&!oavi}YWZSof^Xy%FQJr?|4XGv>AI z9mc;uT8kglt(cOqxpG(ikFVKxL9Lg<%Ho=bJvzKn7qrUGsOi1;eA#_*!3JPdDom2Jt(9s1xB2k}S6bY9{ruT0&y1?@5b!>cWZlM*c(zPr4wNAnovm;)_ zy=V^JR&lay$EjHlAIv!!sQtL}>y+Pz#99BT7#=@-;9r7(_p3v{fB%j@eBfXD-0Q7| zIcuLsw&c`WZG3;|a9HM}Zr?Yh9|b3~T+;n6!xuX-!h6H&ya)#-MP{`R4Ykqw?B`T> zgqY>z3u`yMt840zy_S_Pzb|1HL*9|S=9P-u=kB@xHs4W|}2@7Yymwca{iQSxyAovG6l ztWGcM*ITwV=7(+kgDav2IfX@mej8`*nqhS#UhiKd%N^Z09hY97&HWO0d#BNfZHE0a za~A%~?=d!e^US?!=HIo=+wl-Gmlp- zJ)tkfd^obOyeDxn@9v9-4|Z`*yS>5PXU)@$GdoLU6|WnyUDII7o+z1`^EPF>*V^(W zN(Z{GdiE;lbaLL|wQa1c7rz|E*DJFr$bXtoL*v$2eXAXki)6lt_x}+W+G`;G+FF6> ztcpUu<1#sCU8f}}?_`Yfq{74YF&yHPm=>|NeR=%;@UZO2X$Rc42&H`Z*(S@jrOrMf zZRwKNn|XIPdp={SO)Qxqs_4j}CUCm(O~iAxvNhi8w(S-O6DgPFov>hY+&XCqu_Bj> z5?&FkwTC}S4{Ud-P0Vx*^L?8oSXRO zJHIxcy{k)uD{d>xBN>CZ)w}!Z3-|c--VpMi&c9~bkwf!7D~LI)601&rr|@vs>EyN3 z5^lU#tBX`GbClc0wee%A?c(PPCYevy*y6HOHTMhW!qDDhQ#Wn(Q$M<1@lr+fw7^5l zRD@feJSvJYe%_@$?Z8eAqj}G^-rdEq-tWX#r=FVcYpNo`&P+->J^B3V%dFL5@r>Er z#wWJk`0zF}D{<-9UrNdj2c}0}5?bThQQzFY_DQj=c58Ib!&NFP)bwL7Kip8bb53sL z)~f6h8-qiB8(x0hyIR7r$>`<=uB7d}!E1~bWI3nkE%3kH&%jV6xPJqC;fx5&Q)*xD zMv9rO`N(`G+fhzBH$v)0`|saVRewm^=%{U*)ypZu6C=x;7p9zjUngAtW^7rw(ozqt zU5k!5-Q3W7iSen1L0qDfWa5pA+(n+xZoQZ*a)JB7Qj^E#)-oIX%lvqH|97 zTICd$cj5uja_b^*?vFok_*0vz?!hdJh1G_n|YPo^^?(JEs2GBpl!% zpWoPO`mwtwThi*;gw0R8q;ofyy}H$!&=i*3)t-2F;-L-ibLP6K>HiB`qPoLi<<{`N zY3^kVEDMX|-mSIiJ{DTBR;Dj1MCn!_qu%?oX`g?5sQcTcRwf7UGBY$5KA6ZYlNA^mdG#*Cv*ZRj4cnKUi}rM-l!nzk zxwLg7i?;Hb{P%l2eFGxPx634J`*wWY6J~ln+mo?&vZ<@ewNKxh7!o(T*~A(vne|UH zu{l;HzUWL2SNQb2H7mO~pJlC`HZSJQ$7hwPS~(K)nzg6TivQ!FBzBEq+8MTT&jUgQ z-8`=o&8L6A)y{0Q^}(b>rEPoGsco3$w}NX+nqExO>7_L{4slsB#fN8DT=3!Db@o!S zmi;c(%tX06ydBedZ)$PgUAIu3hqbNYMuT5Qax8hW z=&}VX7oO%y3;)?@GdGe?iE+EodXIYLgNY$m?z(Mt-?F*u@q*`{4}Ct+>&{uTF;?gf z3&VzrZcf{Vyk9C?N^EUx{!LOk!kc*AR;J=-S?TSq-1G7z!{e=1J4zjOiWPsmp=;B* zqg!R_oGN2v=kH>gm(aIf%ethlo%aZ%jNtj+lZ=h3(^zUQ_iy6lh+g@(z`<_KmO`7y zNeAw~YyY9KK%n~gY6kD*j2-OF32L14_Wft@-mo-x-AdIJN3OM6>gI1$7Rz_zQTX8c zzr;*-Tj1r!Vs}gF6}v91?Bsqs*Qnj6?BWiyuQO*g7pN;JY?G;|E6L2Vd1l<#bn(sf zsAf);Fz#*4m$Di!IemS&?sNJY{a>#RMf04z6J(Q~{CDbV>-tZNUw>Dt`^h7>O~-qy z!o4F$9!W$`b5w{~QKvaQ`l&~JM2n7NmYBrWzeiGx+d(*__*Rb5)v+m^K zSx*`E-?`wFpID&4waTFO^BV4r57#dE@IlIEj|s2e{J5qKrF*YvcRzNN?M$kv-I-ZaZVI>sEHTpk^J5uoA;wR~yFe_<5SUPuz>Cnc}_(Dq`)-}}e7R4XJDD^cOXIvAY!Kk!eSJvRjCYdR z+p4J-*LLSHXU>a%Gb^+*ajv^jxZ@3*O)?vPd^K6`l%tw9IbrJTUB}id)%6zDWV~s?&-B2>9JRMc=?PBUycVEG$ zM{mb1u(}~4d(tQJYI-)`rwdBWdPl4lB?dpN0zOcz@aYZw&=Z?G1kF{ zf}U;L`@dBAM&=SRJ@&`b@2OUMq;V!zCjI~W{rmgg_So5~6PU#(b>(HgZsHRAy?P$6 zp28Z7lv&D0_t&s!H-0_8Jg}R`KetWbMw;WVpx>w07*A7p)9V@OTQJKdQzt^8xKQ!a zBd%!++RJuJw;jp3b5iIKpT?}(r_J|RYT?HzL+-@wW*|+PaS~5?g|LqvF z<1CH^O&iX+g)NR}Ni6=XwCUH=7e$(rPR??jaF)q&&78Q~6WZr0tV!qmVO(}xRy-_g z;zQPH$7g0)SJ%&ImDm;?mnbaxrcnMx+>X=L=M~Oqzxm4_$61&E>(EreZI>QQpDif% z_C(Y(S#F-yODCRfkcy<1EM2R$%YP=>Z>qcYzgz04`>o5N-pp@1>kqg` zUk_@k$x@HjIseLF&*z-W=NDf8_s;P!=W+(^UrvqjcBlBNgHG-#S|I4nDQ6-7?fthG zzgXnN(j!Gm?rb@HD(6(C*#xO+(`DEz>W|8-=~pq(7nk4j<9m(fFVzkej%hb`%{3`5 z)cNiiYxr#T*CJipvX8f{e)Kgz-*#;2YUAyWXAZwJ`Pa%l>F56cMQiVPD_t#e61uQ7 z+vSF@_Xacm)p>dsHa^uoDOS-F6=2PKy=T(u*CI!6QB7dPKo%fE7*iwaJscJLON%(y-&xX~x$T<^()e6QzcJdXdoXJ3cX zw5_Zcgzl)`Gq6_Prc+!z=i2qe8~q&CD!Z9&ce5m}41f22+u=GU{@-l+;h7TErfXL) zObmUoMM<8oe_iUf1&N0pAFkfRtvyThCxc0p)Pa+`Gp*`NR?blHUTeFtFRMRGQ7G%> zl=sOkbJuNn+vyo$b^cq-amOWVScQ6ScxAsz>7F`;$+qC4xcsjE6bl(PuP1kEgIn&F z-8i4fdFs>JFVSzVW{3Z5d;hOW_rjOyMsF-;Jj+tFxc8uR&aIFnPLagJ2FX>;R~JgE z-AnvCTl;d>5zpG~3OZ-yeb;nw{<@$R{CMWI;@1;Js=OzP%f#-P%Qb;(?=Mri$Yn{1 zAvF)>nKp^={eJte^Rd}>*>A=b5m)ys9RILOWn0TEhv@z-92-}hYsePU;ym*>_J`3C z5z%6!tzYbqf7H+NyLRU8p%c$;nG4JCDMe}97a28PVo_4F(7kp-V9C6MNrFGU_1R|f zZ9TDPrJw2@>m8|*iIWB6kGoH=$Sf;*A;n(ie8b-{;!jfnlWp6_SKB#vuUt)SzhNgN z@y(;->5u8(%QN2w1y4VlZ62Grb@OEJ$?=j|?hT?XPp3Y3d41dAx@${U8?}73Y@03@ zyP@Rh-l8Jch$;J0TFcI7Zcu=ck?sn-m&+;dLm|m&g2>)OY?V(RvU#Gx8LF0vY>k@`|nz#8iBP_Puxw2;e03m z|7*E$L4DV>1vRUgQs0E$&spizqCT!bNc}E-roR{_Mjyt?4H-%Z^vx zdGku@+ey2?2H&ze)f*Kz{4Wb}EDxP^`uC|5v+R#Wrv=s)D4vTjxf2<3>FFNsiR@oz zEX|+cwNUAhaUx^t2nRKOI{1!BT4J z-@3A>&W^wQn_0Wo7cVYXbIVshQ0cNW=Ff|+Nr`i_xR$LoY}wGVYpFLZ0Z+_UzpFD1Hpjs-YviPq3-y3B&zOskSerj^y z!`eNJiK5=64z&>zbJsupbL}WE`|(5N%GqvOw%l^&_th0 z*K~*|Is5hDRff)EhuNLi@VvHO&oY<4=f3WW_yG08%UeHs^XoHbZvAocYp7hT@}YkM za%IvtMEy74dK!C+iCbygo@wzM9j!AQ&TgJ=-{&Lr!py+4l|1Cdw8ma0!ur#Km-=f{aw3ZsZacl-PcOEUC8zT8^|*=+ zhu?K)Y@PRRzdcjpcK7S2mfs9|Z2U*4Iy3I{siZiSNeVjlR?2ma4bghBN;MB>))v;O zUof|S7B=hIClgz3{SeQ_+3Q$zj~>3Z=WvwQo+a6y8w2m0zPS0&huGUG8986Csw%q7 z*t2~stt>{ts9>wM&G}(P@wuz zrRY(yJ@*2Re5za3$sBv+kWzv0ay`LwW$fqbekxh(yiPQ4iJh-%aC%`}%KEOP+VbtK zA}i~DC+(OvIf7~V*`n6>GehOXxEm)+M@(GSebjv`d))2h;?*}-_#X1LnWnU6S@zer zQ&cm4H|E~6{mplLz1%(By6D%uWoz318r@A2P3%-!pjx)yTxy!Yx8sXd_UG8W4-IGf zks=wVZE`Axr&T!N>wBG4jy;bP0tLK(yy|lm*phiES26Cd-GMh@lTH8B+MZ8;d!lKB z#G8z`x0j~wTV1ta>*>artgGK;J$N2|l&e~2JwaY5q~*_aNpAs>s^YXi7kXbGxc7Wt zk9^Ap!u2dr7`=g=-7E)diR8ElU$1f^G|(V7FnV!?tcHN>@0z~LTsx98w8$t z_`E6n_TZA$dj}tbhg-9DS+#Iz@6m~i%`He(XsJEE*n5ZW!xVPE(ur#tZ!Yv!yH?G2 z%=~)CrfRL(&LxV9I_mp#Y-6*P*L1{dao?U&w)0a@m&5s(u9Z{c6IQRXl4o~c&G0&Y zmd0L#(mMTuf7LcCx6To6_mPd?^{1ITd;OaYA0Ij_vdZ3n_?Obm8P_MB@3B6>eO_~} zpq)U-mhhd|^13!GQkpQCX){a9hAl@<#T+*I{o??~@AG9Zqr?-vD~n$)*!S}MrFR-a@M$A_1>b*D2hX#Z^epZ@;V#K&%vUPwx8DO>y!lsKK>iZk1pn$> z<=$gI$l|=N=3%CR_h0&X)f@9vExdp4xv}@WoAezX)r=l3 zj&&Z-wq;-2)!%bPNiJ+&Ow5DG7hO*|{T^2x%?_<7pPBlx>-sFlobPhnd9PlX?iZ-c zPflCmxqo6$u!qhf3B~O&q%s?d28|wU-LJS z^J27aBz=GL>u~ovu63_G7HH47vHPUHsmYynb@L`RWYm~WeZ>X z_xux^AaL;apVez$KQ-XVHpywNI=|1|f-!#2h9v%^nM=K=XU0FvwdPg2Zi{B{E4 z#(4R731OSJ(%*!)u=pfx%ols`K&>q|;;C%RJ?_)&O@-0rZqs%&`5nI+UVe>ltCx<9 zx^PLMX8p=D*HRy{Y)hQkuF4qhqSJUwAlxwL){e}m`!6aS=7+3vl_)zY$Ron9ze(cf z-sW|QZ7i9G|J{gedaEBBbVJf8_F!+gc&o&mPhu`xOBn^%wCA3a-li%MJv&=$m(#{l z(QmJoKaJc}z53IxLtYFyIzD%oRz*Bc6!xCr@TNkr`;4o>n~KPLY0ux@Dt?frHFNHU zw26Cdbu%NlCf0vA$s%<1Ef-(K;kxCOcdhx%>PjAJoW9((X3^Hl)T@n&jPrkPVqi&J z$|)%O<=>^Jo4N#kE#lsm_A((<_bW@9qfW&t%jX7Zf_EmeMt7)wkiJ$C!QJa0`Z4>4g9(tjwcWci%Yu`6K(VB}oqMui^%;hnHNB)csx} zY83DB_mFg%`2LzxZBuVJS<0@7Pk&jvZN~M6^p!Ub5;4Xz-+7Rg>@(M*=t{!Cde}0-*e^p-iQtC zcLdpDHxy{@(#v15HLi^3cck>SOFc{7*p96$`1*oNF-4{^YEPtm_4mczJN27b#fl>K z$^Hn^`^Bi58S?JdRMVm>tL0|SFvzJY4$U>))ZU=nds9HU-{5-nkxjXYo86u!R<@?8 zvTNx)2*2L2Nbi^7v#*wk5w|w@-(M+HDPEAjJMrpSRn;#}JK{v;OdieHs;VuMGx?~{ zoNGr|WWqzTdf4puauuK3BpA3l)#Azwp+}bKr#YC!gg4}D)7gBQaZl72>$^v7H|yDD zXMcR>)!C|fpx}`J@9r~xm5DOylER)J6dqgY#CG*RNPN!wdsqIAx8`d!63?fnWJVnL z_{rw9jKnA7n3sYtnyP&}I7L*HzMY+&*2q#3<~?oS4vVuvlT0REwNC4b$eZ(dt&C*H z(*Mi5TW1G&-FKSxa0kbAC6U<$2aZ3n69_T+KllG_wP{(rTO$0Xu&jAjcJxH&)ha6? zl^eyJ+pY>VhzP8lcI4Rn@V)nV+wyg?8)LdH9DWyNAKtgY z{n^V-zu0QMgV!cJ&{{L0nQ9vTYj+o4EuEXa zLwxI|HJO^L&RkX1p1!#&@8_P&^~+}Gtxt4)@p6}iZlmGGztW}^`)-Gd`RHUvr%3U8 zXq?i}t(;Eiz8-j9OpLq zn0|J>wBvA9qt7&U_hsvXHMgxhRC@k;ZSKypvBH1i>>9HR zyxxmvE8jTre$zf9wQFi&kxcp4CEcPI+k`!N`O{uLseZ&*ja*4b{<;QNN4o6a zGd<;1lIt5+?}=`I=hY>J-4W@XkK6xaq$F))PzNPE9dh+jQha7{cPEnFIsc+w;i~up#7zcQSy?6u&v{R z)JN z>x1rxsg(p8=7dJH+<9bnx@o3}&xP6RcQZ9lb(LZkQs|Igkg$cfd;9cF>!Q@nWle0q zRUIx8OsXpR_%vbumbd0_Zpx?CUUvLYH*=Zg;}``2vpIKG?ah9fr0LlG_SBJSaywm) z&P}|rDWlfDD8@xN<*EC=M-L9k9cjwc^~p$)yOwz4gy7ANcq20FTbn zgCAP8y>0BClsD_&*ie1v*){2~oXx$v_B^d=2$`Y4J$>KVOQuiXF5UM2a_qbYKK5nT zCZ&rX3|(m>G>su{?Y31u?;a)QSd~tlaedc`>=eBjpEEwTZb~$sb|C-hzqjh=v-e9} zkDnyve~9TBXUgHO4Htwr_CMIVPnGAlvhN!{&TV%#*vy=^gY)QttsT*Zj8=i}XswNVZ^wVVEO-R)+P5?0dKTUq_jZ0$+Cbx#kvCPbK){`@%m|L5~cVmGa| z?{E0H>aWJqLwj}QV=`QxY`?nTp0nGwDS0cp*6#o8ecjNpY0AOB&;Px;HLaa@g{@F+ zn8W7n;=&#r>3I%UuHMoy&xu%VVKFuK=R!V7O`BD(Q#s5JZ4Jt*@!mP}s?zckhns_{ zEQ^jasvZgZQ2Dr^;Od3YRQo3(HwrD+X4KD-uLf@ z`I~Lb+K*Q)VhWaCWFcvMI{cO!>zx~$X3qFspAfN(bB&B-iP$-I8DE7@4BK)_YhEte z_V`YT!~CuHUu!8&6U;fX^z^;R#g7wLAN^6+vp0I(yVDQNo5LpUT(DMnk+`nwtoH98 zBTqfwnAq>X{?Dsh;%}}=Pb-c3!~5@FJ`X?3+?Zdyj%$l_3jUjwM>eT+gmSEIJl1L< z*uCk*iW^p}ISWmIrd$xnAm1S!FwAI2NRJTsM5YZJTo*kCDaj#+2m&PhfPx*=m z&TCHX+B+rTU$NYclEbwkjNiAjaAq8Sr*d#v6q96>=M@ge6O4j+n##8|+H&X2K7Did zyAM%w_WPPNriq`6-&QnpY6#E6l)!7M!mB^Oea_dO)GVa4sl8;cWe+-=?Qwas;oSW?o)MCqfO zAMCo~ySk|9&b`v-S6jE7HG7(ICGAy^?Hi-%4iUO5EjvzcP+}3D!jN6rn-ld~_sXuXpV&nc-eLt0#KLkxRJsYaV^-S0Nu-REC#lL+I8Xxw~D zN%{8F;GT*oQ;mO5OrvMX)Cb4iP`jRUx%1o7l9?M`y;#LP|Iegf)~64}^XYtFddYV+ zOP*PcXP(ElNUD23rctKKM3ZTdGYpAkvmVfdQGV+_Y#_O>P^{#_Q>-`!c4UuJ*wI+ z^T+V%rRT8$QZZ7IMkQabr!xf}Nz*yV>cy0l^7~%coAp2EbFSSqIVYlRliICCA5DcH zO^j%|UVAuiPom`k7EswO7Ig$Q)-timT zI2}tw{O06zT=YzgZBTUK=;oDP`F({ee|z+zz2;T=M%(n>|2sK#nd#pr<_p6MSlH)= z7sMo4d-TdMmzLXPZ@VTqeO>M0yoy;{vmFac?`hqbbXb@D*vCa@55*tyDou|F&)(Wt zy=&9gEXL^6nfW)as02^Gu6pdx(WQMyq<$TGnrW7JLoassk4vdXW8&NcVw)qToNTz_ zwbdwim#R$0$z?lD^OgR7Sn%e}ev8{b5>DzLS2laI|2yw)RquugXCJ)UBfWN7;e0_J z=kI#atD86v{hg;5wNYeS=j@!fmmat<1n=5s(RU{6`OKw7O%l`B%4k`NNNwxrzNZ{@ zYF$BGcuu|O(!`q|_e$#Y4)ON;5{JCXT4c{d`mw!VqlKPP4XhUh@E z91;Gcz&|=SZoV~eI3{pp_2W0Q=kZh=Rl4&-{CmO11=0(q?YEn8=0oC-qg)c65A0qo z&Az|kcK(fHvFuX5*EWc92Qz8&f9*_N7**rB$Of#mf>VI{ndBt?Sog1@ugsr)~ zEsy&`l-??i&JTf~&Hg98zcumpu}v8^lQ&M`&~wSkb-S~GvTX;efkGvXR z<0YmBC84w>jjp`!zTahUc*AneVQcEt-PXHHYwzuRuDopBwM{Idf8E>`iu9}pZiuNRjHhtla$}rzL(z%HkU_d<;TwbPjG~KAom_QhSwZtHY|jmQ~&vx`sC< zxrW8ZCB3P-(f20CJ&EbBPjK|pL&vP@K0c3odaHDU`p1b+lR2Xd&r2O`oGs5+u%~~4 z>Ve%k^>K$caC214sbmWu7vqb){`!UC!J|5n(+)Ar7X5hrOJ~i=gWPk|zQ;7J&D1S6 zTTtD|k>s5i@9nFZ#p54v+s@MNx*gwjr;prKd_7-UZ>MTLQ$5eiKfBt$K??CmELNcO>y&K5^_&_TGJO zqMGbCBzha3xMHT){CR6uF;}w1fsG$sD?Vt+<=vPQrX#SCgLTi53C28~ZKj9BYo7S; zm$|poY4P?J@oh%yEH*uC^Sw~m!20Ddk1$VA@cnZ!9TpoOzbJnE`(M>u|5fvL?dzPy zVEE>Fdd)UFtGHags#B)p^IfaFfLiyz-O?Qj;-@MV}h zOJrN^Jx}-W6G9I%x6QJvJ6trUa5h_|+oZojYi=xQ>N)p$!;X@<@9PirDtu&_bF}uz zw!X`EOh3Q=kK{ zd93q!>dqc*{rdNs->Ih6MYmf#WEh`jU2OZRI)XUY{m*4r-mb{fH zdwqG$fA9GrQCm5mtWzzU{eE*(0qgc_tsCWwc6{7>PWj*8l&W1qytkK_Pv5M=xPZxh z;j!H8SGz2hd+gB7^x%r^(ES&#QWt3^fA8}CgyTHR4;tz<*e$s%Bpl;%)wZuar>5`m zbIv1mX_s`_XMX(f;+FZFXYI^8SvzJp^ssOBY}R%?5W6aO*@FGQo=bm|XK9mQ2{+*M zF22pW@8%JiT@4O1%ycrh-Z~O??pJg8ybRMrYnHE8?(E5Y`rxNb*!q~d!{2l|StAOz zNlc5{9l8AL>rby;ZYVhOet-C>a>9e;suJJFzc#&2+}_60J3TwHI$YCoVAuLZ)niaoho%{^=tjSr#H;sJd@b=tw{HOva;&D zQ>B>?%^Rbp?#)SC zxMxCFU)Z~-mqi!9-LO18@uR`c&ffWgIKLzIUtUa$6!k@HAGTKw_%JDD`$y-bJ7|fl?cjQ^_m)p8M z+7-L5RqZs%OJ1qkpxVvYCM?$Q(zYo|`v6PM>wQP>&**o(`7K?{ot&jLz4<<+q&Y3Qr#$Pros9RbwQr*)x!s@77P9xthlpn0+p{~D^3Lv*d&Vsv zE8NmM&oEbea^=y-Ix>8A-*|Wb%nWNblb)L6DaI%q&3iom)9UW7lr+!TR{NeZONmwL z&JR{GHBxK1op3|M*r-Ew!-RxsxpOosrPB^73f^9Nr>Nq+(QXTw4K>n>;}=Z&R~722 zW4Xhvv#vAc>9Ggz&*_!S+v{^#>zC7=4c7d>*)w#{^O(dXMPx}ZR;FYvR{wBL;;YiM zYbMd_H%9SoU$Z(VKRro4?u|u(UBvEe*{f&$jBm4f7D%yAeyw|bmOyk!wxWs!zwxXG z`#1|7EOi1lsuxr=zm^t%^XG1>h1p^A@UmTV7Cle@R>8db>z8jwHhx^cBk}vcpKA?s zJPvQF*^pDyW|J=BX;OYzj`?S3luq=t*P*c;ajP>AKXc7HB`|lJ(sQe|*ET-Aw8u+) zt4!L>XOF&=bw3d3cF<+v=^k*E4mKwj~_?cK8dg_!~osP?_s5mwuJ*h*%K6 zQGoMEtB25@{SQ~ZerlZ&9~bGpp?=%qtv(;N#iZ|Cu=vWXlrkBUUnY~+`CTcze(>b$ z#Lp9x8O!xlzpV52xvR7Hr{Iw?&S$BQzKYF@F;kc}=ROaQhwVzw4eB$;<2SUjCY2hA(8zQ~oVJ zvLBv0{1$wARaKIuK>34t3p?jVk4($H9&@&tD)UX1*>xC`TDrU}FJ1Y?QUO;&8`j*BJJC|H_tebprbNc$b@$vf@h9$`=g=Cxlq0pY=Bdj9x8^4O&0iNkQ`VWdvvh^phI~Dtgx~XL zE_Y(_{%!nZ>yc&+?XZweM(+vB_!RZRi`Uj&`_d}m``~_@n!cG^BlodPpN_978SCD> z%ss?9C0=9sP39kI@gFa3&A-uWn3L;%<$U(zr5kS<95EQrao^jpNUh?*Y*!bCWzN#Sl=5yaSmhmSq^WdciIB&GtNJUa=Xi3~&U@jp zEW=`k!oe2KjMQ}>nX`{aO1%5mrlV82r@Gkm0N>1sLfr{YoEj`!t(vA=2F})7=W%mv(&l>JazBs_euHrD@GuQ|eNG zrJM~rBFm!VxZ>)iMZYZhz15DCoqd-3vgPUQY=@m;^~(J{;^IXdI##LfB@#XH$zOQb znZ53I8N_$1iHU5yA8%ha?E$~dt|$6cwfQR->=yZ+leuN%Vd@F zj8n?3ik~&T{JQDTf%X}}MvTk$9PG1Qo@5uYc3M-!-3@X=4fbr&DQ#PMyYtsw^%g&T zo$;_qPS>#$8)tpte%UB|XSdRYql@M+_}mkZ+u-m2-u_=z?cW=lx0)^A>NQbpRvI7g zQ?r}LX021LY-Nf%YN$Qy##V_PbMD26+V1<3=deysOhT>fu#gdhO@s8d*exycJBdfTe_dIc#e@{5A7Wiw7d+nVb%^)&z5RtVy{|V2Yr8ax=X*P<>qMN>*fr-y zdqd%|iHe+j@9(Sg{4TzJ_+R5;$Ga?7=hhf~*cH)N8yGKc&F_0TCqljWyezZ8wZx!_ z>mp`L>c4eWdOYn*MZx)?FWy;JmLf-1@t;v$$ZB|YW5mw=!P1vMJxvhYUMY8^v4bzl zU+9OLOGPcCmPKR3Z?^)5khXn!-`@6SG|k_gT~;kO?L%g+QSVW^)j<(&XDqHy-L|TL zWl_`4{fV+C6BkCVD`xE4%6sz3g-KVG{#T z#CN5|SDz8efmBd@QSb@+2bYU`4- zCd+j!wpMQ693Ea3r<`;?W7gZ9t5$!P5PNvQaU-MArpPjxKv#zuj)FQJ@%#SI-<$2; zC+)dt+MKTfMK=UD?AXlHD4Fy3*ih250%|Bd-XL9i!bPC`YCHN5#}!WZotgB+mBs*swL}=40E9MSayjUZ%w)dLcSi!ZEuCG1z`U9e%A8D zG8YGy-Y})@Yg7XI&&)lXvtUVu3U@-fmcok7K98-YXS2pFSpDzk8|L=i*D7ut;hQNn z#rUJmgSNf*CgvYMdzkUNlJd$_folo}ZI*3F^sdU^8x--!{ioyI&lwXKbq`)XAFr=} z{)~`}@b1Oa7Q79gJ@t85%7&oFXRY$Zzd3EVy2mIwOIPB0l+@nCOASpK`7>izMw~vv z@_bj)%AC2~oQq6k0<>#YLya!$z`!mMYq2C`EKp{)!(_NCa(5MwBLS) zX>n^zqZ3o$;Zv1i$IqAPun2!RzAanqV|IiCQ<1{C2aaEw%Hv{IuUMq*|0Z`g zF;V3%rA6vB`Ls<{GUcM}x6fyUD^4WKr5@q!-RBcpT+;A@FiKl}1n}(D_ zX`Xk^M)6D6lqrgo#-4eu`)0MwuB@aLcb0N@^*bpDhbJ+bGhR=LViHqMTP&{e^CPW_dfsYb+yB2h6xSkZ>A@QeLuV* zto+4KMm~)o--S~YZ?&nO$*MUxSI5HZX3Gun3wehZoxSuxf`dgh#JMlv`F_78*SaEu zCe|FA_F)58U1N&wwvxMfuWPHykKWr-FX#U4*Qw7@FWR0S@|z%b=!D%IuUC^QAA4U9 zS4&DfXeY08@SjbNHt(0U*F`g8bVQ3gE^Ww7wU9p7BI@>yzmNG+Uhy06#UD4UX*qgc zYVQ^=dv;!vv)Ot5AGx<(`&Owr>0qqPJ?$xn)AHA`ben#=9s9wcEX{UAX4V>(WWa;f~T`;cpHKy*YFERr2W?wpoh#yc{+2OV>=BwBgrn z^|NywFPT}c^jI9<(=j#9Qjs%4qI#XS6H8=p_^DL_;TNMgo8uc)cSQY){$;Xrf??y` zZ59e)5fR4)AJo}yJlc@A^>cQ1kc)x+u9U-aea&~bvIxypblvohCHrRn-W6MSNbbyB za`C{0HGeWMH*_$FT}rHvmY6e-J4@}q_O@zkp6>e%Gd~8^OgUpIU3>oErpb#}b*Mzx z>`YR6BXzm#{lyf$b)Lt>Up5pS5$)m>OS@O583slEpMx2^P*oJ+A=lcjj?gU(McN|N?KcsSnqWC%wNzn`%q%2 z55t59t@5$Q+wKY>q{E@8#7)%Opz9|Xj;FZeJgKuL!+#D&hjl&SAPhx(f%?m?6jfS zgde&7MW)e-vmJNbkh;3zL$l(VGdZc6cc%8O&x%$k2sY1|A}0C#1=ps8zen22bKWh< z>B%nJx^?!Os+7%@t*Z~d{l+L2J}>;z-X0%84ZRr~58Y?UcHf^^zl*op=T@GCn0VUq zx_9d~zq;Ai8*@&}KBM<4 zMN6vif0q(N_l`16m5$SHeN)c9HkFTP;c#_)zfv$dsUYQe)1vzw)0f806gEHG#4Kp| z=JIK7*31)aw#Ulc<-$&LhXh~PuGh4=cx~~$vW$7_a{rd;mh0VEzo3Klc8+pK!%jxQ z!pX_EJ(^A^F_+2gxb!nc$8lfc;;khI*(Ytdo^!bAcfkGV!l{2IIWo0y>@ZDdh`zLE z8taQK6Ezha8iId+pWP%bJTicHHlAQ zJEsJ1khXiD6Q@}_c^zX1TS5T0nb;Jy33E?a1zVLWCf;~nb6D=kHN6Q9eVeCc=1f_A z^hEZ3nYxXcR`+k-jL<$_mQ-_gRqhU%1Bc^X?=Y^57Lz_dcjK0F{g_scv&Ad)Wd1yK z=!}s3I74vtL=UD{Z&Lym{G2s$`s=ErdS-9_95>F3xV3yo;zM>Hef~Elr|K=Xtx{2# z)^I9~pJ(^$hY50Lzv=pO~P`M*fh3che zGQV)^M5^pM5g@U;mGhzvdxzpSk0y`3bGIw%PwpkMx4Ua%Iv-rhX!4!Lz_FI$=WX%y znYm2&xm5~+y)3e?*SakHc(binN$r5>>HD+z73*G>Pu;(Bk@8lLfDMOOe(rIyIyjY0 z>;nUcZBFKslVv*IDoUH^kKoeM!ElXu{SP>itbf=xLxa`f!qAIZBe=k z+YHWBWPa|Oe_xq9@H z?$RAGPYhpgwTds_qGcJecUKcj&fM9z)TPXKL>yH)d@0PbBs64hOrp=V33GWLEt;de zt35<$>cIyVOxyi0Pk7>Am^dqTO+?aG0bw83r=tB<>l=h!F531jFDhDgv+}TA;_-vV zT08i8c0X@>Yh9iEa^f}5gr0e={yQfg?qQSKbF<{NO7AT#%U8zBbK|aDWVKoIRq6Vk zqP;5H%#JsD>y=nZuF!{XQ5bmsTJi`lTsX-=5*H>*<}rdC)_sox#;P%|G%#{CYIaEluY}rq-waATW8ZczN(&55$@9(2aavqJ6$4PTlRP3 z%P2jCX-^|V*VgIfIj5vF__CXx%qKR>n2W73KP@V`SoPxwBCE^4lFaB-DcFkwJ#A0uPV8k@>y=rcZ1Z8A4}&J zuPUr7+-rKG`n7fI!yMJAf_k{J6@AAI6xiomSki_PO(*~E@{(jVPjct$0 z_UGyTICIwKo3GdJl}e4?UtDgS%R>I-JF&zXH)A?(6Tm)Bp**8A(#uDUwQfGI7=wp$_c-${vSlT0J7txae4 zc~Dn#L~dqt``y{989h5b?cbLB{&}cbj{e!XvG?xYEIoT|j}ZImn=ImoHXqEgoT4Z& z>%c)qA2o+lUd<*-5?e=xy|L|row2koKKJ5?ntzZ*ua*IO*L?kYKfcEbnfyAJxixC9%9nql*8&5@+xM09 zUD-8%O{>nqRtct4T0-X=r=EKF{C|Oy&gYFHf4r_1o#DQ4J|vRKTyoc+J%?WXwXOd< zD>HtQtMJFF-ufFGP92`s>dtJnZc)v}MqANqRbM_||E#>3rCzpwU94fw*v9_e-bU8{;}v8DbyK%+P&5W9{F&4xhNQ9a%Tz2wy$#zL>M7 zQ2pPTa|}W{{?l%@esPtL_s&$TOq+RKDw6NC#I=SseR-PJVb|6y6AJkE?fi3htyhOY zm1~{EG_#!StDmLv@2tGxYRPotQ0{Yu)!z5t{R=ShW?}Ss6}g$y?P^x))vK)TOzp9icc-y-?oziZpK7Ns zr=WA>@S(-8CmOsFXJa}3Sn!ajZGji2|ty8B>)_`9CO+5b0|zdezw;u*p>_p5-3xY$YV zjw_rRtvMFe%x~u`t@dVrabB*WS2%?IR%X6ggR`#I=cmh8%{FFBFl#oJnk1#K{PWe* z-w~Ih-#M1-zUrI9_23;_%RY}oYCZSohnJt);1yT%H=dm*Yrf?DEBCm)Z$((kI5-Lz z8z(j25Kms~!dqQ5Ez*@$an=Qc=#AV_-FmT^T+b`F%S6n&a9Xa3$^Y=Dw!h!LeEGt{ zqkS{#_Je!Ohs)LmZdl5GvDW{4-f7u;*W{Vm4^=s>*;c;%qsryR(@n{Y+pe7Q4Bo{5 z(C>$dh%CDuS6^fPxpkl7f6L$JG1w@%T6CHy`}3{t;Z9pU{VFsabsAZAiY4sc)wk~M z?dvA%-|OphGk$O5%(FYo7kOjZ#PCZ>kC_vm6frzrlgjG8**dA^EnN? zGtXOFIZXJ_oSMyaOwGd}K1|`D--XxfcAS1>^!qPs$AOhww-xSX_CCPdHdjnJeWAXa z)C`u5wq8MdmWpnj+mgF=bsX)ePhbK zn@ytiXHIr*7vDGI$M^MmQ5(ho{EGK^U8g=>ud+Hap=Q>N>({3*7r(pV_L_Uy34&8g zON8<`RSahLtl<7&<@}`EtT?0TVby8IP28Mkly(=etXz5`bc(^usP4s^HQ4o}R5-RJ zv)Vja*uwdC**RsczOB~b3934o+mmlzIr=l&HApZw=0mt8ul45aG>UQl~4 z^>0nrb*`8ztlf?U(PkSCFWbTB@~wkiuWR<5oeDME;?&QqDLK)g;_Xv(0(G_IKiq#_!8?!o@un=;SOnTc7vBmuT_l z5?tHr{6xR=+O9Xxla8Nb*jA!F;fn6`)vgj|cXxW}9!!+Jd0RhLA?CAK74sG+DT6|T z1M0VbdPEpj@xS(s^-z2v=##+pZq>BUIjQs3ohc}|dveKMBPp|ho#kvv+`&4v`8^_H z{W&*u;*Eu@1&nyS8QEf<+NMrt&UHVE{FQ+O8 z=lTh;gp|yUR0zn3x67Y3_1@x>jS+d~F*{2xZvTF+YJ&Z)NebUie%!DrL4F%+_3x#t z-|`&Vb#L*xXCVu9|2MBwu1+4h^FerZ6q8!YN-0al#(Rp)=`&W^8F_~bNtsyW zxW3pT)55#b<=8s5K=YiclGe_5n^pAPygrc?qfyg0(5#;ZD2Vh zzQe9>egBrk_<3KeGqB9&} zg~^rSXLra64wZ~`!r6vW$yM*o_il{Zc*>*cl$JpAdsj81#@`mx7P9b3&M^v9^8LQk zVWaq!qi^RPD@a>=&F@lo%#pVJGJ9-0&;GtY=}*y*O|A#-ID04fcDSF_W2ti0-pl{! zORJ1?*o~vlZ0&O4NoQ4ykFxq4aVs}3kl1!oK}UYq3Kqix zwSyr{4PSed6ghY7x$MkzZEuGc= zy8802hmF-6SmqvI>CSDE_UXZkSuY=c$*7IOY;VKsbv~#x&f{H_$?d%9&L%SlgB-hcgn#+|sNGNVzP|nS;@7Q;2lvbH?`~|GZLV`xdWQCK4xWEOulr-?9@)>CQhKuBFc*Jx zbWVp57Be+8F!SP15AhUK6%N@!6H>sbz}G%-3ae2Gu1hcDYu6 zKUc%rwxh8c9e~|-w-`FTETOD^s`!eSVqj@r4tA1%Gc{3a= zI{N9APng8wsGT1genx}|p6OP<{{8t8p+7$gTUjh*a$MQJCvwhElW0?t+g5x$^5a>K zQ&YvKU)*@EcgM9}o%xZIsp)$iW79cg{;HPOXSn7S_Y6gg^rwcwjq%Ad*G{d7IJ#l; zj?@{2b0=;&+3Y23{r-%ewKd0S>1ppa+1EXb-F$oX>oA_vZ!%|h#+lgJ{pZWQ9d_7M z@n&9kRbS%TNsAL}CLG%8rfr+09j@1HCV54QWBb()JB}GfIfnP8b$eCH9M1Stad_Iv zS&HkV_|+_Xr!G7;z1w2f_frBN`dAsQr}wdZDzV)!yt=fNMXhcj@9u?7x6Rjt@0B?^ zX~y%t9t$=u%g*{4xLisiMQrN4$i7=k?pj?dwKmgIS+K>)Q1MgS-w8sJe#YxIB>t_| zwk~<ok$+;sbm?pE`y@JSf1OiaoH&;;@$RLgYBNn%?Mig@ zd0?({MSq&4zjW9pZfDI7R^Hjym6q?n*mB_3q0FC~y6PUc$q0U!7OJi^RdJHqH1*%)^u(XW1+~x9Yss zsy)+d-mpBn_H$R7;khCu8)4SXF+09_5EoR&sB5k&+Z0#PYYvso$cp4s2 z%ABlZQDdYNvG()NH-XxHoQnKv9~h%ICq<+st8SH;?6ooK$NN9cazxUFdy7hxS4{10 z?P7Sk(Pmxa`%RBuEN#7aaVh7~5&@1Y#{`+@^JKUf7yJB~GIgo6`0t#jDGbr!T?R`U z4s|<(`>e^i{iwOxI$kh+PVSA|sQl|f4n1p`BCL-FU0ar!@^gm*ciDySVaEh{4&RF1 zmKdXO^W&#it8Sla&%LzYE+lRS(+*AUb<-YfcUsHZo0C#lmNIo4Lv*}G`<|Z7?hJ{Y ziRw%CpIDr2@6BNzm#`(c@W&z#rhONlIsX>bajYs``sUF5$ORt{Pv<>+?~KrrgTh~5 zU#xpCZ~5@3&VwlB%Y4sXpVJahd>mI;SsV~}-o=qQIb4|~Oxc_z`$2i_PkL-W8HZHD7WzqMhlT5a_UJv zTvlIdF(Gm7PTq|d3so%}RfHDQ#|3Q_R>}BfCo1)f@5qd$LJlVmB{DZkwAg)7FNjM2 zz1Lp%c1lT%x}eaU<%Hn*npe*1BXFLoBEdcO|Kz8`(-R25b@W-m49-IyQ6x?zpM8k6eTsT*HdY}lrE zi21sw&*JD+TRqlHz4u#iD(ezUk07Q!KMdC^y0vb&I6uo-&wyoh>8H+ukgE$9wp}{2 zRh-fMHlNsngzwXyeeKkXwXfZF?Jyfx-n|V@0WY^mO`bY`pGsqNhE7FFjk~xuU$1Py zeVu2MZDM`1>zI45Op;ygYm_r(?`H=MTwzjsJs;KQ|nQ2>D*i|{VRqmatT98?A=h@rINyeIt z`=U-7ipl!yp2d27L4%y(Y~|{d7u+EyO(QGS!%vu)Y)p9}6f4HELDIqE;*wKsd;hIb zfBZf2{iZ*`?Ho;SBhMf3do(fdRp{@+fg#Qz;TeyHLL!gMtBbaljy+5CMOCP=!>8%XmyC!lcVgvUE z-9Gm2>qU{f9j`fbo8@m*SjPK%jr6scd%M3qWt^@z)7JlTN!SCKRjG%L{EEwMX57fS zxO%blPMxj)E?hEhnWdX@aM7vV0o%(zevI1`<2U2Ru2aGBzd~KsFf_@fGoLng3fkjz zL+8uVT`P6w^jvRh`u%9nG_|~sajQKXwV!W{>c4%iZ_1jfW^eYNw+~+`^SiC~L|g9d zJw9bqV`uC=VCB57>?PMmsovJ?sd_b;B3vszx$Zl)NoQxG&>&w}z9a zw@bI?@V5(xvMO|n%+#%=LmunO`jkCaTEBJGGl2l>pF89pdiDHeYwvyhfGe?HVNZa5 zti{=PMQht_b~%U~iO_XlGn@A|i|}>J^d#GFOYdw^HrLXzIXOL!cTM@eZO;~4oxZrj z`C($l6AdTPTG4Zxf{tHIKHQfWcid<1-Td-5Yj#GRx+|r!BV)zJ0QSk*JNme%80GTzw?5RemS;}F0v|_2}P>iLcj5iT?j1=f0x(r zCFI?obU9~UT#AdM^p}=-2iC@|TNk>>xY$y}mqwkdk0*sPFa^MS1exV+_pDL2=) zkhIrRwrp4(9wu;v=}=M9@d@Iu7qakF&9pZ^opnm>zy8e)E-c)ax|g}uFU|KiIekL1 zG4sx9^YBwwtD-VF>)uu#<8NSD)5mZB-}kT6={Glpw_9xVI(BPsgY>r8RYwcE+${Xp0{?22^HtG=1GFI1CmFmUXdBlpOu zeYLw-@r$3{oe^H!zr;PbJNLEq^?vzVCck~QPSd?n8z+B2=){r2!@mkw+s>Xe`=wOk z;camf?gXUGn7ko%M#P5=t{qLmb*nW_70kcd9+s)U&hc#Zgp*8J@PQm7&r~Z|-KET(zjWNl#2&zq=-}(I@S*oeW1} zYLal<*0i0qaqpLJRZuO^Z4_pE9>dQ3**top^!78`?)6A)d$nqsvp+lMi9`0Qt*5@3 zmK(9VeBn)pLmZp?vpHD~A9}NB%JiHYC%yMluTAK|M?-l|f;UH|;2 z{`8mxkD%AlS{4SIj-hc-U zM{>1fS1aWmJ38CiZATNo_32Z8j#>5P+T}?3h2$);zvv)*<@VyUpDT9H?v{DuF1$4d!H$N+`r4cFvETXDtT`sILNcEv&&c97%lxwj zuPYQL7nhqKGTWH=(86Pc({dmAe(#PP(E9tP%$Qv7yoIPs7cU}A!DOM)8km2QoY|eemf)OEs zVbxpCznLpNO-!;)tnBr-#n+CqzC6$ShV|ZM*ZT0u(J5K=Wd|SB3I!BgI>o%@Y>-#P zvy-H2_2R7tOdT-dj^WFUoC0uhpH{I;uu`-G=+8lQ8?X`6q5_hjv+Lor^ zxN=$K9R4-Sy1gPMX77!!cRhcwEbjN!wzVBxHaXd!p5An>vUq-d?MZft^;%c=Yiv#R zU-!B#w8r{;%JxeS;=)&*N?1{Q@^eq=VK3fC(cfPEdVc!fvt8v0&ECKFWWM?&k{7_L zdo;>T$Rt-fD)q@_HkSaip00Gk;|}F#1YTM3UZ}H>(BR&&yZvhFwsKv^tBdDZS8`e2 zpK*wDWmHA+Qw6cRca8U1-<&iz+~nYr>>0)wMuidyU^=D%K<-7w=pOVInK+!Iw!8lk@@o!hk1ZrP5= z#)#CSh@2ZLS6>~T-EF-!=!n7dA5#SmE(_eZey{uD_WaXrv0sW-?@$muzjSqDoA^P+ z$;ZXHxL4nre*OCV%D;d1CCPt!ku@p6;8wD^blBSabHyufx0x>I=`r?Q*Zwtb=QEY* z%`OM#O~~O9+P0ypZ&O0e!daZZ7yfv2cB%c}aOrKEl8#6kvXm&VQ7@A_$SJ{}z2}+< zt8OFD>ofJ2>gN87Q9Rhh``Ub6vI6J46IpxrrRp5C|J_!5q%G93OuW}%=cNssFEo{~ zWY0{?ahutOxN}B3 za;?dRpKW);-z1yq828?m4iVeD?ahO$2D>9Jtm;a#ZQgzJ+bPo>#V@C)9Jyw4LF~u| z(~>(!+gT4?&C=iD_wePfmD^1Yeyx6Ge`Viexh1(r1A2BOE}yVTwtM%)AB#E?o*5kG zD?Zp3`@`z-W9^F@KAg1LP_y>{-VL{Vmk1d9~uY11RM;#m&y{f%0=_2x#So=Ja`*zaU?yevH!7U%s3?1#s9?O*TX`{Mu6 zvJ{5v>$ts54U$EUT#Gh!^xfY0f7$o7mlksdwV&Coe`BG&=xq0J(foL>c;3U`CJ42B z$i2IvCiX1DcDKE&)&!JpaJ%rVui5j^R)d>P!ZDZXu5z4v%C=hd;)eP8H)?O++n#8> zTDvL0`ugq`j>QV?y_U0MPw2ndwkPat=T#Mpn`@S{wKKx$MYlZgv<<{qP_ERTWS}ZE}L)3={2^oPfwYwj#(on!^7Kg!|GVpO1*6@GZyGQ zp1AtolWVEZB#h5|J96&6Yi1N1+N#iNm=imFr;_Tq*e$EXXQZhK z6dq1GDs<=2j;YHov041xzojga(`jGgezxOlWccd#?fY9ZxvyFFuwBLBZLh2n;%ert zn7Z}S_P13jXPX&jWeZE@Ph&n?Ehx~v=SEZGhOO?|j4V7WkNnP;_-1uvlE2E$BU4+8 z!x;sZ^fyIK&h|Gr`ANn5`ZTATh4a=-X_hD}N?j9^QF{1M!GxDwuF)PY6S~sY_ph58 zl`Vh$ccyNow&^v4*J(G+b}LVqd$!pmX35b_>!fv!s$NerzFx42PjcCQga1o?L>&L_ z^V0tHMTa}e`)gF5_llUim$D-q<0TojpEDi`EX`PX>FTlY&al+Pr-i0mz6@E}(jiR9}>w-JX%sWv*Y{B%2R2T#vTTD!ftp~?D2QiW}R zje>O8KBusn4OQtA6qK5ju9aykz4*L^Cy+yFsYKTsjtu9wg3X)?-A9#sCp@U&6x}Q? zePc)B{BWIv|6WwFs4UoVHP+zynttVQ;gS{4x4b%hY)3>!{3ZLRvy>ZFW;g8EkT~5Z zaiRWJYXOeLr-DmM8V@&V9o}Fd9a0-`VwQsU68%hWW4+`p?9;{aI4tHqmOk?@tZJv; z>86I{nO6hf@$%?e2pw*l9`3~AmThbMcM9+9jV#uyOU+dlSRA;zA=ZWQ`2w{MM=H`e z&)rn^`PmfuH1KU){>RhvvbxRm?jCNfSX-WQa7xv#Rra;TOW9arH`J~VnZE4w`dxc} z-}BuBI<&0twcE58QasCh-0n3zk(J=r4|^orvq$XG7p5C~qz&G4X~d`4&*Lc<`Yj3ai zQz4h?p356@oc^4@->7P#{_XIVYoU=LlGj$xN>aEg@uR8b6k~^qKveeh)>Ku-lks{n zM$g}#*eb5_dQZ_u!QH&a&aT#eCbVH+YDrPpUwxUiCr#cg*-_RgJL|dW?gUm51EYv7 z9(mW~X3k!c^)deBV;gPX=vuAU$#%88(%-ssZhXE}YT)f)e`9a@Kd#Ew+6!Va?F&i{ zdNAGHV6yqFpKg0a%BK_iv^J|M>2h>UwX*bmELT21DtE?pK>^3!QnoXPxI7xnr{_jU zxokW<>sG--+SG$_vh5U*LFE%KaI+s8_vB*k!cy{ znbIHH{CD*qGOB1~Pn>*!={fU?`OnvDA7lA*J$?4|ty)D7j9RufK6QA!-+1lUntj{* z4sW==BuLD>uu&^E9^I@^ibm<*qL$uNI2r zsB237dY7dj^lq>9bk<|cDjm|({P-hEELiuhPGnNp{^0)kMT!w;w3*Fs+iaA!d~>di zx9Uc5RDT1@s)WFcW??07AKcgw=bf-YHEC(typIR6k3V|r=ah7_HDL3yfZNvfmw&{a zvg+F#Eq*$2Ye`+s)%*k6+fsR|FCWv}l=Zo%t@CTS`1%_L=goJ?gnWrF+MA=gM(n6? z$n46myr=gT{nxFy@%cJCKYKvQo8x+46q+Q={!dhhye!Eidp)sVp@ScIhEV>?%MYE6tHZ!%8OV#_3Y;deG@awJyizq@sGL(;2B zr**s&O!W3$Q$4+Tb&q4oVVBwFPE9&hM=N93OgJ2|*0U-8$@1z0EM8I%_N>yJ*7Y>w z$m-I-hi1%?dJ|@LAAS=qo_+WB2KB>VFM3bkGwZ-9S>x`iw^J5=RP8oT6Xi`??5o!P zmW$)I>eQU%speZNyGx=A8>g55b9B3K=t!1yP~EcDiVC}uO5Zake`hVTSYJ{eyCXer zbF6_!GuOmrHJ?8n(5)?L+*4rY!5}fso6qU`8_S~hoEvrvr(Fm0b)Wff)`T7PYzv|A9_*GQXuX;hQDt_ZM zaenJCbDfvm>hG^da4$+&S{U1_D&SzS`Bm#z{nNXgUcQOSx#3?eJ*{uE;Nf|Dt{wN^ z{HyJghVIXo`pb1ikDuBud|{o?Z=)Y=PZN30&Ra^Udm17 zJoUz@^yHSUxe>Z6rhiCk+~9OsZ;}2SE;a^tF_pHAmy=$do2?K(zkIFrs#E6Ig+FX4 zdHw6-r%!)tie+~sE<7(CabtD;yB@~cd+zTS3T}43r8)0=QA**-J#lB8ZlB1VR=sEI z{}t1AJ*kp;ZQmHt&hn2d*w1^5{vX-=Y5z@is~0r*cZaBNmrqt3$g4<<5zaHDR#KU35Ga@ZzPt0YQ9M9t6)5E!he$C^i zcQ){F9%{3#m;LbK(q9XQhlw1Q8se(FFL~UvTCK3dfA)e!ZbrSn(h4m*CnQYJuV6?2-bT99|^#38q74(?OTG;$J+WLE8Wcphq;m@ga@b@j}8t;d`x85d9L zzRSCsdGN?Nu{B$7ZtxSXdCXfKx9gw3^tSd7ZzV#PaNc3Q&%5T^1>e}VWb>2yzMFWx z16?h@KUE4@v*mb(!kRt%v-nkSlvZZTi(gmb%8?M&$*H&zcBegMW~}4Eph(H-FJk9j zTlAYDxo!5m(#)XVNT;T9@!{2wC zPoI8n?Rj@e;ac0!)y3*biq(7P$6K6|lY1*|ut9lEM4mx}`uvE*by~a2X3kN_i`dvu zeEPc)qu}m^iT2`AOl>Uo4=$FriOX$B>{V^pGClX}L}?-RV1X}f+*=lB-FWxt^Qs&bTneVE zKCnH_qjSCDQfAmk?ceFMb?ROw9PWFc7db0zwKt0&!#lRcxe*GHn)=1O%GN7=(}Mh` z@7t+Uk{!h=nZaCJXkMY>^5Mz4b#EqV8oaSwFaIoYYWP{%d*KB#-!{&0X5OAM*Qq$2 zU$>*VFQ?gs@n>?-@rkXkzD}#T5w&E4((Os-?{VMenQY_MFK)BziEG-y+cigK)f`?Y zniJH{;(cesv}z0AeF^EuSgNP5Yj0;dtmIt~#NuwdOC^t?+3cd0bw;?6?QWCry-)R+ zO_Y}Dw!Kw}^p1_4d*yumBnf`gT^kg2-}u{}o3wF5t^Ed%^K6SR#uOg@^sr&-ZQ+~< z!+pPw7#%!ibvX5FO+=?{T!?6Ka(7eS4gcHj*Mwx;P9rSrQ=<`!+3^Ka7koV7v{rpmkSCX^qJI^w-WrSF&J zytK?Ywx=X4Z_GT*$tdh17v{Tp+23s}eW|95-`)6sN5t{%`{UZzT%5#TSMqh*62V>8 zhi|NsI=18b+&MRpwX^rseXaHp{g$)*igIRDXR{jrf6024>fkL^E&iNr?8l zxu@|)=sBj%$NASBI-++}EN*X?^DY7PDcNsdB+5Uy_*FNVY0mZM#xbuaxKF>w==AmC zvyV&V50-Ms=N#sn*qOWK%y?eToT(>39QOGw(VqMY2S3|W5rot#9k+^_O~`Ucsck&_FP>fcIT$X_@B(O zyW4!ZADO9M>q_-?5ioeu*RY%MWLO*X`guI+>zMibuB-Igf7q~AK0UF;GRoNDM%9)( zhqmwheZBrhu{)!C)~=N7t(VvEY&N;zW%J!?B~P1xW96%=njVR7(ydba=S*McY`BIe zyD33;kGPBV+NGiki?3;0#`s=18fUrh%(Xec7um-4F3bJALMZ&h=5Nl|ZG{(I+@Rc( z6Kl7t=CGFW>em;oOusxz<#PU3c2GAbR_D=+G^rV$!jD()z07zg%~Igq@zb8!vK*Xj z{c2*GIfhH5IejM0)e&!&h}lvqZK9)=pl}*gv#QK=$k5IGlr!sh>gU@9y@n@t-g178mKnQmIK-MX?Wu)jxRM{Uf`PaX2{_OHv0Odj3K z?Oy6V#Xi4|cPQzFASF3s5bHsey_dFgL$K5yLqebP7+c4tHWga>mj zIm^dNF~0YU%@s>*%F@ecPnZ?ERIihNyG~OgD{t&Bt=$qD zZA))0UjE6X`rUP9^EE=DSMIHx#3&OuC*~=Kg6Tcwq;j8ozRPtS_m#w&aPe8LjoNYj zSWK+r^1bZrUGK}aW=Kv{ld%2Knw~pp(vF+V+g7i*5w$#eBG2Ya6N)}c2nFbC0$~Ul+e5zHd%&)sHsO{+{xZm7&)f7%I}26v|C{%zO0I#|7O_*?M{MlqVjm zns&BI;-r?yB!%;L^Gi>>QEU>M=n#EIPmxLL=Cv!Wi`5QJWUDURIL%7V-WTG0$;edH$tt$~7VPX{RdhKVQ-C^2UZl z=c_uKSt{2T9hqjPDO90gnbWG;u_^Iz*HqqWzFP~W!&t*pX7zd&JX`$st+JT(4EDgd zxahBD#Sy2H4gbGtJl4B(pTWk~mB*fnYS(11+5Y%cJG0ijr)K`b`wQj=rf^2AH{EO? z_LXH*oAzX(3kUpeEy+kZ%;){V(*I5JjSZCv@$=3XtaUbDqi``>NYgR1pYx}bb4RCt z+KWqHPkjj!7HyleHM1+ix6fZ-$IZ;L#9XGs)_u(@tYif3dt#bcq{Y5QPj2BV*t1P0 z{H`^3JF|uQg$3&-9X`07{p_V1_jXkrX484 zm%ebOu^jaZQ;&G9vt$MH1R2=_Z+fjBFPLdy>>!u*`}eE8tA3qG%VsPz-j*97_J*^^ z>Fe*fz4Lh^naU$_pIw_Fvj0@P-;$-N9a7sO&p*)@t=*h7sdBB!sU1P{7C2p57M1?? zV*I)Z8&osa7VWEbu1S9OnmJSvvM$)S^0D8$KKm}n#8 zG5O5m*VAsBzj-D-%_!&j11}>JlgSNt=PHO*ELl5Q<1u%@ik{}R3$8cSL`%JR`)H}e zG*OQm>#pYRy!PjAs0Oe0-A%Gr^;0;7ytq=r%u<+dC9F`puq<+MqT;t#rfJjupHphM z?Z@uFsI&H1TkZDE%(HplO#Idu`6_yHONIfDTG!U7;F{T-8}sfaUNdMslHsu<&G*eI zR_WQ+jVvlW?>=Q0pIujxb~^HY&ZdOVF}M13+?*djJmbT_S2kn+4z>AlD_$M?qI{#N zyg8?n!{z^?_3Li7-DNM|%^SV_--@d`Ci*J-L_V0k@h+-sPJ8(I*inYNGV5jH(+(fB z(q1XG?7_C%2caW)qEkLSx}LOlN`vp04H;h3<|tL|I(5SBYuuknnYkCws2cOv&CHGXk$?Q^ zqIIX+w*Hy^eWI#|;TyYM`?)!#_RV{B?NP@9&5qO8rmM+&-rm-$D)w;Y(xwR6klkgT z>*vH|-sh6rr*%y9<=O=W=WdG1P3xMG-76b=tEeGZ{0Ph5>QdJmT8irr38(Oh_!xie zj@}qhXXurz`EXzV{0%Ac_p7HRv@_k#jX08jy4lNj({YtW3oe>Zzp!oV&9rR0eOYE_ zm)+Ald1Y1N+`034xwti()_U)IbiMnj)p7-m%ZDBBtk@~TD-qfvHB)f0*+nJgU%3Js zFH0%S_+=blaLjbV+1~QzM7#AyoBi8Qch&aAc66SumcMiV_=YNm4@--BD^pF}{;iNU zvz6P@#MHrh%k^mE5{dX{Uroy@q+5C=%&zY|d$B&`uTf>RB+JT=>n^3aJjt(i%-OM_ zDo(qIWmA;#`g+UrYSY;6obH!aFR$-Vo`2UjT#sEoB}x9IP>r`WUs=HVc_#G?3^5z5F~Xc|+pc7pX1cek{8Z-*zzA zI!<;e5Wm$Ib5)AJn>SkI)&a)(KA|G}A8|a{7;4medHI}+~K|N6dtecHsE?B%n)#h)^~ zGRgSC(ER*BW7CqlxXs*xg0HJmxUL=v>q=beu&i$N-`ud*dlGFDLf&ZcMn5_q^Z#8* zjA}%Lrh8vsGvC#YzcU*SnCTS0S>QW2xL)=U+w3zOOBWsL%9a+}-hB9Y|D`*U=5MCg zrkL+7xtcX$pt1%XYcnxP`pa*cxvezQI{Y!W)vcwo4umR;7rCs6yLdS?GfMDOpVpEL z1v$OBw_j_QZA@JHe0QkH2)#=95 zH>#?Rwe3BV-IVy9{RZ1~y_Ws*ThA^i`&#tO@9>1pTp+Fy0sJ3cyyL* zb!_zzJ#@8k@BaO}b0QQu_r)5#nZ9>U_HFO!A6UW{JvzAmk;!U_u#=3{*L49J*ri#DYZv>-3_;F zo7mFyBMj^BsS4jtQ~h*QkX4E^du_+gPci?!;{@MvEKR&|$HvH{>hvC~%WD*w3Rs)9 z=gLmZx4D>c;p|bC$DL2-Y71A_|NnBHgVV14*|}Kn4Nu!byB1tLXcIN}`I z6kdMpiW6S#6F4(swO-N5yVrjCO<=jOyCCWRFTddMjoT7-8+{kJR>XB`N6Ps}Z?q)i zIc6z@l>hVn-5tx``UJNxwRq(E`odzM?Gl0NEb+}UNg z(o3j<$ou;orZ4pW^MIN?{5IA1Zv7 z+M;i*azjFB#;gNYJEKCyOtku4%NA-oZ_{RKT$63N;(xQXc+5RR{kZqB0lA`LOyNrd zBd><8S`ht|BVwvfRg=NGZHcJ|qn1uAmgeC1PFnqb<`LZ`Ve3ytoydBe`EXO>Z_VhX zTi-eRe|r4zgQnfCeea~pPV>ID)qi*K>WK-f{vFMYkQZOyygPw?#%9gyk%pyv4W}I_ z%W+&gZNtV{2P$8mysEgSgFEcIP84rSn6-LG>y)dDwk|tZ8{@kv<cINYracFIdp71~*EGLDtZ0ohO`SmiUf{$+qt-mGx`h=Bb zua=crW_eFUn#$Azy0=cbiYn^wOJnM(nR0bg+Riz)9#%__cGd0n=8O9itH2~E(h|Ys zdFRQNScOJ8KBJUl#Yg$hT{Z1Jqy8e(W(se$JL$wdd%rzbUsKVo`!V|$Ep(&s9(^->-I zwb$L=f8`Fhd~Ne!+tr0j&quGC5U~GdwvA3ddsCvi?hI*8?v%r;tj|0>$+~BPZOY*( zYd=Scdwlrx@=Kd_oHzJ&4#Ix9P2WSn4KS{+*`p*$U)u&Gt6WdAKTV=Kk0R zr@pQ-Z2R;q>GMRU8*{q1MKEq$`f20bn`u`6!rFC`-`$>+)KvJ#y0fSMtkh;L$p?&) zoA+KyZdC1%_;JMP$Qv=w4^#z2S>nqaHb|~5 zExG^E{dv2kmDe^y^`y6VSOwHxt=YEKH9xHEMUudr1&!t&$=v!6rk$ubA}Xo2!!Lj7 z#@1(xo=WIH+j^wyZT*Hlm*26yyT=;$T4zbvlic%iLSI(Qo9{ApLy~2J@20#P_URK6 z;y3L-FLc0Sf?8H&Uz^*0mX$uqJZnrZT-RH4;@MUsN5)By6MtS4jaJSRR?Fvz?}`q; z8I+xJrDB2Vywm)jwyM}x7d?zxu+%|#$Dc!-`RhKPxU3@=dqTOQqGRuUen-#h?aLnQ ztFNl;l=$}P#jja8H~wzssR|(M33J6xqbE16C08qf0>mLtrqrcLZwB= zT{%bL$-Vsi{EvSK)E&E9(0r|`%FZVFu+^l5`FHNum%O~WpfvQ}HOa@nQYNIw96r7D zTBP1Jvy)xlW7#h@N!*Rmy0=bv{`O1jTW1KYj^B~KyG8ZIjKzvgy3re+%UpFgbaxJ1 z!BW6q{)96|@1TXCz>B)2o;p6C3asWHy8X69Nb}&=&aJ$^c^^&J|Ggn^nX1LAi%Tu_ z7#L^jC2lL2-TKCLDRanv4fk&M>#J2nCHb{~iO&z4BCaLtkS6H5@y43_>!--5oO50i zwy62i#Hi<&j{O{ovePR7r$?O-Qo(es$J+#amZUo-SkU!*J_~F!^d&dtS+?;en ze_Qnso?Fe-va0Q2Lu6~{5tg{! zv8x|4sOg=_=JN=6`akvktBJSWCcjXzX*i`QnOVZvZF8`|%TV|{>$Pu@3{C6`3v3x0 zdn7|$ntY;olJB{3mgJ z8A(pdRTFBLN2J_)G5um#-}dm+Mt+M=TXV%4Y-GQ^@pej1mj7St>Hew``?eVzdLAXs z6(zs^ZA6o+iQ=gxT3QQs1vuy|?whqCb#_$eMrrA?tx^BJexD3FN~>4rMrPT2sfaTQ z-A|Je*bZ~A){5Hyb-{%1+qC&O_vG`&-mBDkc`14NvV%uu-c6}Jv6t7HD?T=8qJE#{ z&$5|{g3^cMQx3l?TetjlXZ);dvb*$VZF>4_>O;0F3x$&gzg`_`JG$CiFLturx8SWT zzbb_KwibmqU$WX;s}K|S?BVFg$ zaU}UWpVsNTq4WAO%dEH~Qirc`^32^e!F8@u+uE7gB9#%f8%v$(B$aQ{5+Oc$|5; zcY6ZU_nY^2oSpU7V54lclq2h$XvL(>-%szpz;Yq|W?k%&uzVqwwI>r_cdKSD*jBu5 zu$mk3V!ZuoE%6yE(^f z->x&U4J>)Pc(zDK26u1UBVUs-@2%@Ge*5Px&b`}iWu?UaD(-T(s~a~&7`2V0i0{+5&$i#Altn#pHYV=g5e8#3|d&N)`v z`s==ISY>>r(ll4`uxZeposXua7S%La&D;_H{V>Pcf2@rAC!D-HJ3LH&p=+A^v;`M= za?f7eaGUYTZ70E)Epxop?((q<9KRyIOCsNkvmr4)&SK-`=feE#TS``1PkU>q$G&XQ zlm$kA%}xtSL`J-*()D%NAl|x=O?b(P=GO*qR-f((S9M&KDAg5nx&Kkm=6fq&UlA^v ze{4q6+>%T2ZPMF1SF-r7mzDg(utk5XhQNaip8CJ{Kg>7zDwDgFTPA(>Yl9sI>-=wQ zu+NE0cVWH!O(^RGBmPhqjHdL;cm6Vjyj23*lcB*@v zcB1X3%~i{mhNlYTeBF_6dEmi6L0vO-*(+aM`UA$ zWuJ7|^d;d!9yJdm53Zh4#3`WQEg)pF>%D1d@fBX%qL;svIuiEA*{&-z|M5`ZVA`zf zzx_AQ+HsRND)iT@!>3N|e6(0Q=Z1}+R&mnXy`eMq2|Su^?t72Td&2vpSre9**?4?= zGxajBc6l@ZX70^#wn~*ZCO;GD?c_OJenok6b-#pJ5X(AuH?^?MeA!1gXgDv~v%q#< z|5m*lM=NU8WsI_GOIUppG7_Y2?yijJl|PiZt?SFwqx*R3x?846@iOpKyu4(;#Lr{G z<`BJ;hx=-~+izYmRa~WY&FrOO+)h5_GuH|Zrg;G5qKXMVQ;c9a&w7D1C!m>~CW-R}y zQyLLR4o62=IhT!NIw#P=^m%6 zI*ma%yPP?3>oVDDbAIhh*Y0Fl`uHTAV(LmfSZ3&~tS0hgR$PReYvU_!W#QRba|-j4 zB0iRE+%tL4np?YhcGs7(wX8~J3uio-`#H;(y~wmfPg3yY z3HxU=Q-3c^DP}cXW2R_#$K%1jUmsE>^)|1*YGt!)SLfVZwMh?z&DR`DoRZ3;^QF|N zZgL8a8GF-i{q{&x$tiJV8MR+suk1a-(p%@E6U_PLW~&ENSox$|n}ov; zy*zroJ$|b6m(#mE1Xidz?o(*;75Wol-|F&s?&&)@tO5xK^>UI5#dja6w9RHvKeSW7 zTgs^^tt4r`oet~aMb&auHzI2aeFeU)Yt-$&RFyo}_86Bz{JL>UPUU{zzua?Kg7a`UY(IFSGeiKFfTc^*~C1d4g?^{H{$OgQ|Q@`YIZl zXP?LotJ%D}TscXU`$SpqcII=d{d5a+I_|U;t92wkH#GQn?MT_@U(bcj-q)-$(SA2>;+ zZb|w8i3Ra3DiOB-x3VeyFf5g+dH2vEE+{I;<86cOt_qtC57+AOU2|c%CKvq6hLoZK9aS5 zyNcvCj*iq9+c-F%$wYE0XQ+BEei!y8FiqCy&5I-J7S{dbt|Es%8LXZyv8>>_@$DAz>vul957bXho+~q9--))b z5@lw0ciDBSUPx&&XkK=G+igd|*DoXm-CcF!qaSdtc&g^GfMHtCw75O@f(%PtS@xzC%#*)=YrJ#pE_VWo48*twr%pUJ+l!Fqc_bg@EIhRvQ$A%~B#TIcthPU05v zFH!z&P-V-(5oY%0*YDF8OuKchYu_E-!1`oOSzGUy)&KnJl~(9IpWx^`y|KCOZ_TT< z9SrRGjn`h?=L_m>@{ZjlR{rXn+7#Kx97+`-dvS_ zt#w5p$|-fL!|8bnGaf2@Yb#|)j6Pex`uy|NmA2<+?^2bN&dxaY<@V{R5-IDGd;Z~RDO~ehr+kql;g*gub;)zPQZ7?c4hLa#URaCuiU1%G}L*Yh_;TlvUlvS_K5I=Ko2t!n5_1bL9t;gh6`lMb>7LrQoHtK8GFejJX}wr0YpEA4CcEe9F%g4k z?iR7LY!MrkDlCuewEd&B;lvV_1#CuTm8oe?7vw*ET`K$2qVORD&x!xbUplN-i1@61 z#m6e@PSVzYQTDbs+j^@@%^Yu7vx`lPy1*W>*Kz4YsVO2yw()J+)+(7^>f!j*%A;X* zqqiR4{{59R#hCg^kDuDjeQNsQ_m8hFY?!TZ?M#g1?0r8!y*J!=J^1wEM(Nw{*2~S> z=H3z8bTzv6k+MXYtl68(^S33YOF#cOuV~x5WX=uFABFcSC^5*bSaoWCO65A;xd#GR zTbHg47Z2ZZzFKgjk9Jk@@tbo(JEpDQc|U3Yw`;E+ZvU~iXF0P3ztDl3ljjLcaE(ZR z>n=Yb@~^D5{q?so9gKE6UkUs(iZ}4hOF3M&e%*8TqZ=}uRQwHQ@3>K|$f&5ZmF39l zsU@dEr_PQjl@qBF4?e!;<@WBR32R+9md)Dqs=@9EM^fhJYZiHrS^3iXE&u%MTAF6P z@XONQttZ~`OmALe$2#vpZ3k;o-!TrQ7jm%=&!q~8otY*f=;F2sfiaJxL!;`f zZ|sVh9|N*mH{P}K%l`d)2SetuP2r)A2h{v?Ej_;6*>$^=`FmaQ(Ky8$AKp#6ko$Jd zW^eJZHyL7cN=j_)?bf+?fA}2jzt(i^^=kHQJ;x3iZC|`bFMLI;R&A>#XL-- zH}1^dwLo7*Q2L(^SDyN{O&Ltf^3|`1=CSh}T;Dcbl>N;D`;QM)_ir*5a8yV-yyx99 z#e+-tJxVxVWIW^cM=`^@clVrYZIyk$sG0KmTlYbUb6z<4A#nhLbjUTzqlu-Qgb(8>Gv&{`&pA zd%F0)g+Di3-gD1*gJ{r$B~z8x-)UQ`vykK2`%_z$95;r3*`lYKbN^5As*kq|PCNaZ z6kW%r%Er0KBtT*EzxjJtyXQ&AHu+UBOk-wGae2kGsD#P$>5NXl4fmLTh#fi4$nb`h zA?3seE}tnMMJrdd|CDc-|HmWI`9j>Sdqoyk->qN1+}etzbj@wn<~pP3r_5z749?oj z8a!ry*Yjq*QY$mrr2Qu@`C0c%mXMMST+uroUfjyuQv17G@ETL^%tPm7zMWnjIVnCn z?yQx-(YK6y_i*iArYoaxTULDC=@uD}sGMoMy9JD&aWwn&`JCBsCdIq1z_8i0QsLkJ z+00f>3ru*gHl*=e(#&I+u;v4 z?0OY-#_7$K#;KWSUOKgH-exJiZCz<&fN=j)HUIFliDkMkzn1--`{~N5l%&P=J9b^} zOW9I3?_SiD`HCXn@=U{?Z#9)S*OO40Y2lmTV7Q>+x!KlL@@{49$qhNp z3-A9`FF(jK^O$&A;2WJ*L++@L57QzZZ#DfCqCazmT5BT=q{d(lv z=UW$6d(X07$S$b(O(JJn^&9!v4KwfV`}dXGOX|rkh9K!wZ81)k zaP3>Q7w@mxy3o6(RYY(0?&H&+|nYfT7EKCS?59ai;Gu-Z(M&{_FFA{v(+Yt z1i_r=<=0L089i1T%&XL8lb9K%`6R%sAvrqw*|rwpCp%q^KD#C}+533o6OkvImTjG_ zXC%bXtoyrPVRg6hzJ9R{FPCn;?DFgCDXw$NKew`dX%XOFzKLbWbB04re_eMy$;n_$ zczAXz-<7k6?j>9gZW5oiwJme@=A8wP7JDmkecn^_JSIo&!9i8UY0AmIp$6|6ly#W% z5%6?wdc%W;)d9=S6q#e|2P;=8_}J#22!4 zZc(f~#Bm{}A|>$knQFZsYYwGuK9e|q+o{CJ>rToC>&hhjq$4!%I_#U(eY|z5Zd_@n z@w7aFf-23xX`i@j&!ic4)OVIVJ*vdWyD5L#V-^HuNH|8Hn z6u<8yH>31M=M;y>n+x`5UDLU?rG+;_!#p)Vum`835ER$tGrKh62s)Z$9Ph4!4?kp=nl z_2&th$QIuy{jqFy`}MQNg*WE!csa@ZdXstV=gqHAb40J4?XZ4F#QjD72fNl3mxs^c zSe|(7iO!Y_i;`4CKFoF0yQv@7*}EfK?3q!Yu6?r2@~6F@Z)qL670aZzUq;pAV9)Xb~5uTT3+`T=SJM$`Y=q@Sv`H>y_C!qx+$`!+aG!Gp4xN8eY(<`4N;epa*G8N_Z@4mm=Rf_zU9|B z%To_?R2wG0ZM|}8Zo=8ZsyFq^Vp1;13TsSfytv@?A(?MHovqIsyaad*T$sP7v0Lc` zHkB`B)DS+?cY|}vf)z#cIrBN9J6N>koKIhxP@uea#^UQ?saIv1HtLAD%-qTONkeMu zS)qMQ`I7e84A8Xzo2D6hM(X8%wu{vcjMd(#t#2lGY5%ue_J2-)=6qZ&A6rqHC>tbI zRXjKFT2$|udn<$(x_Q||ZF3z}E9%6iI$Y-7|2EzE&6dWs#ebK_Wj~F%C|Jx`RroXc z$gF8BQ}^tx*c=_X#E|_U=LIi48S5manUNDV8+{acb>3O>bi=W7C*6q+*EZj3cE2Iq zn)7uHgE#-KE%P5K+w8n_TD3r-*lnMc)f&f^*373yN3vV)=56Qa&p)5gQ9C_`Y1fOW zGdyLpyaFQ6c)t_cVSA)XdHb#HB8fW>M%x-Fvv0ps?mBY?8`ru&Ke|q^N*}*xA@C`0 z`u2i|wT@X!>-l)^*6`d`&aHms_>D(+_Ni7KmxIl6v)f#nL>b;3FXY*9HfwKGQgp7u z^arKe@8-n2wAZFr%x&)a*Lro$tPNVz7X?;}oi1z(dU@8Z`BZD37|-@MjVJFOauDLW z5!#@vB_`2l*r!`Io0aKc==vkmw$J9|NQ}1jZLxnfo7>Ht^--5_^_%*B6UND#oj!AM z+}`o|gR=6QP0v{xeXlDQHQoK3_xqEBdu+jF)h(s_XYg(mwp=52?y&vqt_@Z4i{kKn+hzQ-b>O|1vtL({N&4&2W5+~|wEW7tWpOJ~EUaT|B23VwUABm3oE{qH_&Z|qnb+s0#9 z;yGc92Ny$9VN&$03oIhdUu=Rn&n-E$Y32cb9owB5anr+9#6Fpo+a7XaF;`k6t9b6v zwfzp9TxaE0Y|XrPG5mYr@lbq4u7oQN)i2-y8N!E5BR% zQES>}lN-FNx6X6od~mhYr!a4#l!B+n1JN>1|K|(ByEE2IPPDhXb0qGoLeg=@HM{P~ z-FtEI>$+uck0ve5UjOs6>C^?+?&iGv#QyKcLJ8&boLvTox|9w`N6zx+yI<0}Ij#I+ z@y#2er;mQmPjBxuV4ljb>&e2tee!o&BAotfzZ3c(P&2{(g5iO09`t`Wpq2S+mUteYpVk1 z)u*l{+-!|*zM-4Ge*316XJyI)%(b62F;6c)Rq}0%X=9;p!=*#tf3m#R`>rFc_-4Z4 zb@qCv(>RT#HD;;KOxRs{Z;wsFl8^T_vUOFWv&;7TNZp88-0^11>@(}@7crYoj5t@f z@{HF5DJz})%N}b=&TWcWuuS)B?sO@}^3vvt&4Ot+dNpDi6@&%1)mP5FRqS;6c454d zPR4q7hR5tEi}Is8gDyyiROqVjCjTa7B*`b$|(aCV3-P&xg$ z>Y38|hS1gjFP6w9+BY0tH{F*ZQL|av<4xN3$_2~xWFqDTIo*it{`>1dl$FiVj9FU? z&P21bF?)AUyrOiogx4#@NPN%Crd9Ls(w=)|<|!(*_oi}7-=DGUYkO{Z_Sr8b z6$dzOUpm8dA!uWId%&Hq|KFGJ`Mk+uRgbMQJuNcL^~Tk!XY8^>lm0(*YWe$AlkxCt zn@z%{5qzENeIET{R-W*=dC>!h2mnQnS)@9B2P}@v42|gs&+f3~t{V?#o_P*y3pH_ zy})Nf^I1j(oqfAfcB`tC*-ifW>pVm_0mTph3HlEhkVOzX)rL zyR>{Cgb9{KSZZrW7G=9WKB9E9Z0gg{hZn`?#ig8=`gDWE^=h;4nt-MwQX+4KViLtf zb&Z5?On%MG{bG8Ya8FYMg6xQ^-_;*`J*ynzU=)b{VTt=lXEb zhO0WR;$p6HDXc;(7H(nK8d0u3IrRwVi(eZ;Rx0e9d~{n;szKbj2-hM--xuF<@Q!JY0*9OAu5B< zXX))ovF%SjhQ`d~togcT?nSqM>$t<%E0lxzrfqz>pw@2R)r1)vB2W9UetMP_y^L{* zXoRnAd%@g^0$Uc(P`Y=v&cjmIYXfg?+Tqpfw5r*agd;m`ZDXp4Cwv zp{@KLU)b2CPWEh5mOE{JS6gfOTSYN7u{$hhwZ1&7imChm@y8dPo(IeAU){RA=NyOi zQSXFT*`Zh0?K8I7W_noP{9^dCcHK8z8+Qn8wQz3U5^+cQhq-v>M%7$?f$-$G;+-}# zs%182XmID;eiL=xX8nGH zrsy7)&C+E?hn}r_xj`bnl3hMN>^5t?=J&!oN7bvDU%IB)AM|KH+H!;AI@_-4y`?$t z4JFi)E_nG|x-?6#qIe_UZPi(vi*>i=8XdTHO;N`^bM1`7mt4g+-%w-OC~@d+aFe)O z#7^S|_3Qs?=Uva#YBZ6*+UnoTE!gybWBF09JZbNMldAg3nk>rm>KwN0fAFU2qv|K| z6Tid+elRk{Z#c~(xvGzIQ@Cs0mBZ)0oH?iG@Vj7#z!nwnbj?EFtyR@kyN>d$j+j#r zv2T&7{QMUiR1PpD3jbTh8U1BbSO40I&wB%Icj@Vh?#v2^$XH)d`*mZD-j_PzO^?J5 z+U(k8ewC9W;rn5W70laWUDJ&I{QGM?YZqU{*?%&EVVn$-oMx%nQ@swXY&8(>C_a7u zSEBx+gRg|d7rJhmI`?qcr~TWOe=BKP*|7A+Wy{#IsXj^GwKbNF;o-UgoEyweSUBo3 zcdM{)#J>2;eggrz@e`lM_V zb~R!Kr`Os0ZJyiAwV6-8I5t=5=gyngroKs&OyJfEy7zvjkb(XSA-@k(1-?~#To-CF z?bmy@LHfYDAAj1vXlR-T{Qvf5^=ava2kg#&aZ;-;@ce(#(k*Mw0d^xU>3vR0Yo29? z7CA;w{hT+WJ%{1lAv@iLM`y2YySQ}vB>(DZ2aFtTFLH8KmcEU=F7;xs>*`3S8+udO z_bIK_Xc7Im`t|xJIc360;Yv9Nj?LKlvm!}QTtD{yskO8hQ11t#meGYNllMBB?0xXIRh!l7`K#a{huM(}H!vpd{#|$c@F`*MLt)dE zbf%uQlb^?5uXSi&oui-N`PXKf=+!_$!~(pV_Ri z`@5azf`t}4H+PmMsTHK^OpKID>^O4h$p&wMuum4%y6<19yKJBDw1y$a;l_oVCnt%W z+jBJe#?cu{C!2pahc?YuoADsCcz;dPnx*dSf{E#GSQ6G1?k>34QCTKtbm*K{)bkrX z6;{r-t$Yoph3a~0T?$Fwu5-bn_2v;zhs#nQO>d=5toB$JagFOy(=?HYnq%zYCsYy& z7YIi+__McMwR*2?$h6y{;_oKgU17x$ll=9?iy!^%5bW4e`tf4r0m%~yEN@d{&c1we z(^EC6c%BiHU&F;yi%UFKyB?aRX}Ln3Bl?#4^o?h)1vOtdz2MqR^=W@wRSsPWDpQYo zvu=aa!SDBvP2?4po)^oO7@vCa>nX;Kx3APmBu2YMEZz9;;oS1-jn~9g1^zX8&z#xW zt2$3+)zLRwXKuPNY5QhAUG}J}p}N6aCwPZQ&sh6$R@LN9mN!p+yYos^lJO_!FPmuz ze2F*zZCdObt|)x_`)Jn(u->k#6A2NMCTTa!3rKo$( z+8L7fpG@x%*m`bOMn_lkn^y{bOINJd^Y1NxFPN0xw@ct-)62DAH-@T7vzZmFUcCu4_zWKXO8x^ zpxGy0ethfF_I28^S2J@i&rz#hw_#rIGjZ{yYqEBVM9)63s6u}6DzW>8itc8c;&gI9 zZ)J=x5q(n;*dl8sxb={}Z}m^S&m1W6S+^?~`YO zPM%1GXW7H7BkXca3*K_JIGo*Z`D+f_0;R)Jov-(bnC*PIDw08<-|@y}twYD>r8> zN;d9E?P#5M;=-kdsy&SxWaVPY9KAWJE$o8B1dDG(6mFO*v&QYlvBR}jtGolAPv2Z6 z$J`>ijzgeHm|okf!}fH`j=r&Q;#sc6i&`Uy(|V zbGxr)wVpin{_}`E%xqSi%`pk#!Ig@ z6s@>1d&-QD{i+<*zIUVU*4hW%_&b-CDN?#*3cq#A+Y|eHe^mXM>uz?ZGPzK}QEIl^ z1~*j+%Qe%DnLg`I-csUF+jgWOVnMdGcVcS1LgbxEizmKfne^w;o5G&%=IFiE7e)8B zelgy*)gxW}{;`4`HM6Q`D8C79+8R-E_kN|NHoH;F78mxmk|fDQ!}W>^V*j_#pEu7; zwrnroX_alh7LD^QO$;;(+!zmA>srp5`{BBqPL#Td>5fA&^!2 z#bO?9bwgWg-UO8w*`H^tIQYfIuJ{%aNg^$Ni~xYehJZbG-H`aohT0nYT() z%baN`0u8$znv-9L{7nXmZf_JxCgoI0d_WMAOSxIOj8_T5v2Wcbbtw=5MG4{6Fx z3NMJbUs0?eyq-TOQej)ocB{>odTw|{zFl1Sv{>)j)-NSy^CQ+x>)z!c`nq4tBf9W( z==8$ZQZ0-dixUl_r*9P%HaK0oa?`b`r}sX7lu(nuF*ZBEtzqdwgD3s#9zXo~^v7G( ztBDV<-SRl7)xx{Y!SPi4>B!pdk8KC5A75)Kc~JZ9#i_RMYYs*kv*kHP1lNch<`ff? zUuyrsHGGE4jQHvj)n%tydp0}ilvlBdtyXee!18!aT>FL6mc-B&*-Okb8#WvlpLace zqifru_-%!;s@Z|N0$yKU>u9wx?t4tool3zYUoXYn|J5#X?ZXYW$UA2T$EN9~X16;1J}8_F*v77TpilTsiOJmL-UXK) zuVZCh23Zwy~IMKMuZYh$be>v!9P(6bv{zr9(sV9|z`NiC)# zW!4iT|Gqes7RL2VU#-$Ok!97cV|_bC5|{)0^>#(g_HE#B-g5dWNAx_?0|ts~ZZLZ0m@QY*Jb?qLOszL#^Z*rF&aQN>&Bqp!O?p74fr+nno>eu`0 z-T6*Go4%H}P*jz}=duL5dKuH4!mTr7uXSs!j{hV6oBMrgX;N`ycll<%lPqqs1>Mz8 zPo30Zo2y{Av*n1?YaMOQZQDK{I}~QN{-FPcbfIj^oLT>wTBg?Ah~G6+H2dK);WZPt zc2uvLk)<2G%|XrV+|1?=-Ahg%VzR4C{q)M~UTk`al9r{1OH*-Y3RA_7$E!}K?rW+) z-(Ks$pVe~o>d6gF&(f5okCo23?UArsanEj#_PYm#xC4&v^VVQo$#Pu$r0S1EfwIYo z_MC}t;}rI-_SxO|PUMr?(;JH=-U+JDU*#1w$=_(>o|V3a)7}fHG8}U?KKSXC-_EPA zjy}BPzGdl-$5!U5YLBH-ZbVC5=PTd**n_QxciN4@q^~}0ZYJj+_Hq1HdfB>iYQpRr zS7pR*Zn!3zU1hcRYU1VF`kb#*JlvLStSs8PM8=~1-D2Z)yiAAEK6ve3$CB8){eo_F z)6>L)q_)npCr@1HP?C_|&0M^OO`0|HCU3O6qE1i6cjAPH<;_~mj zePsdDb|1NpU19Tc_udeieK98HoWQ1gPMS&=84V&MwpknPd&BOK4I$5E z#o3j6|86{bc%9>oX~ss;o#(eKi&)>@E|D6>-IIDvAy0d)$I2~7y`v39Hf$D%nEm** zBwwC(&Q6KwCyx$Jul8^Ek=>aiyZ^eu@e?7dv%7tx7Uq9DCdZ`rNhhyWMYL7=AXs4A(fB)N26lOTKC(sCow*zVo4>48yWqWM z!ADQ)b_Siem`kqq?HexsewC8CVTY(;{om)W*T@;=%(vV5W79XSo(ISH*A-S6u6b=>G)pr+nzkaOBX_xsrD|)xpf~nKYrK6^9 zpHS|RoNLq_@s!Kt`p#!9s^S9QN@gju=(QdGbTMb?f?W=GCI!B^%)2&s#rd$rhyDc{ zWgOo~JCyy|IJukI(wXPF!9_mq7GG<@$aY(~{R>^6wOdZSDNy!zG521XLmsWCp3P(l zdffW|#;a}KUv)b+`EFandMM0j#VVl`t2GhZ7JHuNZ2x;;+G(?*CF?gzaj%cd=c{6P zbNg!@`>{($F1=oDyeaI*ox=QvdFy66Bs<=i{y^==%DFP}j|3m3b^Ntxf9l0_Mv7nd z&duCCW)Jc==BusS8MQUL@oCkodA&DVP4@VC>L}~X+NHBANODn${M1!BJB^lZx_Z3j zMhSn|@wGYml8z2Hsvm5q$tjR_-|qd5jb#JJl_aMH-!~mwe^h3gU4)Fv(W2;gr?tEe zc;=}YdHW@*&n$TMdhL$Hl3s;94Z+)NcG+zFwJM@dbn!LLQ`dNEduwHa+BwP-cg@cefR)_9_T8J0u=myY;bp_;K5g6W1Ok>K1+HetwjFYQv|* z|JP>gneNY--yh7hE%x^jOO4{$@=Dtd@wprg;@_T@)3dlggjZhu+U4@NlgBE3{RQUE zVxP0Ouk-TG4F%igvEG#9n^B<Y8!8C<~OLGG*xGN zxufxd7+u$h<-2wF^%MqMAG8ixTgR67HfZ7Y{LTAJK6|wrnhPaWrj_P9yk9G@!0_A# z&+AR0t2exJGTP5FGl4D9eD^gkea9Jk)jM@7@9=EeY}lryQn8S&Q=V-v`@Q1eiqNg+ zcDsc(r6uXxG_rm$Pu(!pvv#FeUi#*%*-g8*-o2`|R@U<1|GdUS_ip|^v}M5qxg!nB z6sxLt@F$w(x0+ozE@L5`c!JrR?Qs15x;;)EwW8av{lB@pOlIdq9S!$mvsfjKZiFT4 zZLm6&u%XPlxOwK+*1as&tNAXtzF~}8=DwccQs#QbYYV6S{O7r;diAUpoohXAYvp*a zRZ4gDhzsVcZ(J=G`|-_@>l)|(?kI6nbKCdyu12NkYMttx=OcL8HJ_}MWiR~`%H@$9 z?_ja!R8)HIEtc=wv!WdrO#8!Ho+7Bf+0LT-jLcUird(l-MKcu3PUO0*$oW{eP2Q@q zwD&>RoQC>Fk!!izPw^~LdXryr_O^hS)9(|*3U{Lk{!oLNPp{_&6GKUyv63}??4 z{aoh7a!}yfwoM6TO$Fu8pFRD-r#@lD8ha&Wt2Za&*ITTW^~?E}ewB01qZQBoy=4|X zJaL|>t&aMf2Nx|I-6A4OY~OCW78S|OFY?1?&D!VG>E|LY|Q+E-e=6qd3C9bbDt`u9gUz0jR{&+f`eGM;3y_03s7 zQSTya73+=mQ+FQ+-1pX=^1!`uLu+id`wiU`-SEj*XXHMZ+kJ0ey!Y;eDgWH+W~K%S zd{};l@7P7&CBg?JZyww{RrKlu6Q<01&ekr`FDuTxZSNN|Pl#DuxG_y4Mycf23#XR1 zC%p`KLetml$OW&wO;d5l4DkKRU zy|DJb=Ios_g;L&03H_b=+_aeK3F|}Epat3=UMVctzoG1h)GMR5jG4?AOvUd!Q?KY( zjk$BF;Tl_r(0hSx?<>=^c}q{eozcGPlKJ#IPcA6U5K5Gvde}~JSKUqHd)b0!3s-8* zJRJHh@}dxX>O!_s;ge?q{~pq^wy~V!Shb=9=`mYGNMGtdu1k;shk(CyKfli5(F*!_Te%bP@NLUp7W9 z0k02b+qPcays2)*$|U3B8`=F+79{%__~o4Ds19gPEKOLfXm>=V`bL=!c%PZd!{#e2l$t!@@S_WlxZkAK)b;8x zILAf!38;lJSx?|$t(|+%r|rDWA-!v5IpHZUcA5LV(d1vFkmJuNsmfxtF@*cL@U2-3 zu4<_p#J=9>a6|p(*>}OalP;ScQrx*ZB3@TtYELoWMe&0j3#NXWQN*Qq;=Q=vgr_%- zIP(N9x$%5vq<7Q3sGXdNW$!iaG%lBy-1F4sQedjCOt{~P6z?4Uz4~i|BKGBfsCpWI za!pwGE-~9(B4OX>E#eiJrZ$yj^|RW-14_odnVjniS0`pRo6oxI%pw8pXHGn&9~Zq&_{A`p(M(`VnRMm8 zS5C3o%5Nsmzag6tu9!1v$HCq6)mCar&y@HPym^y)vq&ZTF%D^o#FzOsRS&l?CB5OE zGhL%`o4C>;wwZSx@oww77-yjp{8}}CkH`GfChZ_5ugc(nV{cRWa|P`(WDia9xuCa$ z^TeM+_r&dVw)fwaYUwq;soE|U85XsO;^ zeLW>^??VmiC;zW-tX599ShcrchtQ#}g9SAu3*%RR5xP*zw@GYO%mp#-mZahbv*J18 zzMnYwTyWaMNmo}z+e!U;q<@BeveAi6MGabv7a68;Fff{5Fu$SZy?$NQAx?>;lPrg) zh^cW(-f+;JP{VU?>cJ`BOAnZf`{^9xd*U~J?+(6*S!qm9#qBoYaxf@zTZhB|+T}*8|^JlHbX~%C%KAn&gH&asK(4`}6ah0tb9z2-0lJP-#{DZWzySGsNm$+j%dfYYHLtAtVPnLsBm4Y^rc=(o=WkQi>Q~==#wN2(=ERqY ztFCTPH#>E?`*`?X{Ys_JdDA+wAIU#5OHrIw7SDK{W6xaOP^N<+dbgwAHFJNpN<3|y z^yA4Ng9&`r1xt^0Y!08oDHpf1%OQv5Rg>k9uQ}G-CvARtcciG@kUS{HTzz@Rtqp3; zp_jRp{MBp^G`x*!jMZ=a!_u=}^GWV?Zh>Rh^e?kdf4Nblr}05+MED8b`O8`Mar)iS zUv5_%G4Dnk!!(6&5AMaahuid?(K_f@6TRolua$MWE;sgHjq`|JS9^Kuzl)`-T@Dy) zC+WP73ar`|zHX>E zADg{wr-d|y?dEi8`5b%!?QIWjBYpP)Nan`QfCUU|j0ANQRV7tf!salv(wm{Lx-iU4cO&ZQpt zMO##lq{XgwxS<}lwXEfCM#AG*3F*ms+rGRB?74RK=AI3;2bkFRSSWbw=nJqU7XM&a zHtoizKYy;Q+^VU%;BZG}OtCSeaZ_J&?BvL|F6X2yYEL|V-Tv+Q_csPlvYHAL?y9;R zx-OeouX|`(IRBG3GJJYU+OB*J$wo?C7s94}Vt@6Ft**@W{2Bcy_XU398eYAz(=W2w z-CR7!%BnN6``1>sPy2X&JyL3^wK#FTJ3WQ({{Dx#J2l&Dom%cb{~BHt@!I@bs$p+v z0dsX)rjM}w?h~;d7xk{CP1L<`>GjS9EETnJ{n8fG4k$^LOG(0z6GT#;kJU(Nn$ zt!9~9Uoi2-tyN|U_eG~ZIG7Y`pL6-?n^x=QyBUQA<_C6d%8M>vs34$u=jh49Pg<`Z z5ca;mN-}Bw;m;x0w5DDU@MrFPcrE36F30JGk(w7K1aD@Z#d$1q@4i_}RQ>f|-M(TQ zUR|(IZ!t^9hIsC&3G;WEGOvEU^7qxIW7nlS7e-%Mx8S^9Wlm(0+DZfMV`~M}Hi=2_ za%?@XaAn`3>d8kLZ^!T8edqGQYwO3oSNB=SGydEh7jG!P*nh*OTR*H{NA0&2+a$Jj z=eP9hw;Fp_c9sV>Jvn!N_YNO5mL(@n$xZvap=-mV2Td=J=kJg z7D;Co*v&d&sm`-h&vTEenwIbzG)8>O)mCk|RVsL8*P2vM?kyR~)-xNVcC43`e<@UV z!Ryh1#oFb^rBwdr*3~zknQ0%~Q+PRNL$Bf*85aw6(alp% zFR~E0a)>v{gy&Fd_NJp=!HVj;7($d7c3%+OR#n7#q>tnF_vMpio!&gPF;dFO-hH## zDOZ)<@)^hJG^Vaf@#WUv7v4@vuwN*gp}pp{$+EB6J-pqKmlhrDzB%Q{cGbO7rZu#?S`8tiVDh981t7Mnv`)Ni1~ZKv6MG20=?DyZ+LuIwfkmji)w22{F|c8 z)p2>XyE9X2H+A<{b$r*>Qsnr{eQ1+=;8pA@FwjPKKx+s^q7v&}k1EMA{359F*nWBG<}eYXAo6Mt`)s|ciD)U#~YID4#O@8nByVIBt( z^)9UFQF_xN%5bhw*R)N>oTKcsgIMCT#zx(gh%;5?%Y*O7w>>;@NbK33)t^Kb1#jQb z72RaG`EgO(hI-L&hinTsOcR=ORHH&)@kB~Pe$~fo59W9}{u8$EQVnB?NZ{uwm%7Cx z{@II1;k?d7rthzsHd!j??3gK9pLku~ovT`E|AkK1&))NH)M+f(I!W8ePQRJqw?XGw zr9=PDUTT<}{QZ2opxNRlZ-Sod9tzuHK7F@Y_rXY+>l*i*z810bsWBbjqxQ$tI4X3< zkDEu?)3=5kmjAxya2U@tr!C5zviI5?zp>ex9tw>$-&v^8+$A={`So=+em72=_OBef zgKu2r(C%IT-6`i&sB3SCbnvqUot|^_cfFW2H~i5#C5;cJ=a)awnH4TTRC?$ie);3uw`2KwT51ObYu|b`Oii9QRc7iztHcR)v+>={VE_|N!DUmO)gEvR#k9_s@zSm}xT+_J^am#p2ye++9Z}Y(eA633_-8yHz zsbTq_Kvi7_oij{bQw^(Fmb6T?P!KoWQ)*x8>B-x%=A_5|GW!yPi$`Y$Kc834=ed5~ z-wio7Ar7x!zID|%uzYXkCVM`s*k_f5pU}2d%Q!DVUgVs`|`x1vr%vKRap!2 zkA-)5a6Ve1Cty8Y=)#s;%kM>n?b@Zn)AzXBMsi!n`l=+xbH>$E=U#u|EbHAit=_Ta z>bo^B`aPfO^L!JRxV((BT4X*V(hApZz8lFI3yd1t#dkWzJ6C+m|=eKP44NHz6#klW9DwRIm)?3IZVK81@po6 zsXu0%{;=_TLA-(%~>lo!(otf?$zP!nWkIIAMKdt zJUg-AP(n_i{kBpSmR0W0ZYy{^mgiQT(YfK0`u{DH9ggU(&z_tR)BHiW8+3CcA6-y7q1B-4uJ_L9 z+-r`+`d5OnCTlA>W_MeExcOLb-(1mj#oI}>21mr^M06Oo{rLaW=%D1y__j-7YUv$} z3E$Nd*I69);qH;SHp^vISjVM?`LBuu!Va|Gdt@M^pyPVT^>g>PtfMZECwgs&DLLyB zv7+(t!nvDXZsJPRy_wj<@48vxWKe(4WI4%Ok`>B)GafFtVP%#z3u17In0$%1d*U&f zgoQ(^J%BZXEKnn6-EB+@)PnEY}Q9%}CG5kbNy9 z&8@PTqeRCyDN=QUscvyo&)>Ul?4nEOM)+uR9a-?4nU__VWotq&+lPQz54^M;Hcnl-`;-zq!ij=H9g^{ zP(V{tvGMXHVk^D#<1R_HM0=?zE#H=|I*o7Fhxs~k)x5dUZ(2@%v0b#dcDiw7P=~6U z!`q?*?0mc}Ssx<9y*Z+_mQ20-rs}Mq6tkPa?581Bit{S<4_g-(COppi*12$M7R%}5 z?U#&RyR?T+ENByn2#WW7v}>pHmy4{6Ep;wO>@+Vpw}hv@F{Q~kl4&}?O3@dm@8xF8S2W8%cMYrNByEfVyTL?>}>@LtAr`kLXM?T0SE{&ZhxYlNLgOM1i|nKeK5 zRR3MDySQNkcm3S{4F?Z+{k?rH`u85=Y1d;@Ope5JB)&`%yUQZNoi34a)u6vJhvTl1 z;f51Om|e_y?s!c|=c#61#42($mbK%k^%3u!XA6XHeSURm>y_>^j8ab{t}Uwk`@^&N zM!o*YsLhr-S5F2fFaLf%{!D`O+@*nEC#(+rAiL;!PsMp%52iI|c;#w#JS_@QT`V4> zc|LhnSO1>F=N}5NedSnL;O=Lz=SrY5$Er6~cS~bq%eEfb-}`BMeAwbw=Ta|R%H5T4 zuc+#s_@8g}lTNM*;N3O%p!=L|`;?}o8Ob8tN;`fv3TT%#1+STu$jx|~`JBp@!(4}& zChm5>UVOFTx6#?c&|L^;Gm+2LZ9rrpEmRj5mI65__AjE?e{4Bl+c5 z(OW51J+>F4x_R1c7S70fbLGmc*gsG&x^(~3C$EgEl^G$<3qCe}GHG&ZIM=l8 zx4-?y#Hhnh-#iV9GfRwnJ`PgegA8oef`_74YdWUOi z5$glpyd6u}1ZAUkSPHZ+-2Hi>OM>zC{>Ii2ulyI{#(F;U;taz(*Re*uY23y>L8SX@ zQSS9t&sIfU!RW%c!wl;yEUmjPN+_=Bh~hqQ&Naf@``U{V-DSMGh7ozQG&_Vnewj(` zNY2^Q^VT-^waA-W%X#?sN6H*%V4AGwq+Aej<|2n5lhzxjDSKID#dg{3=Jv~sF8|1E z|In&wwbqxuRbl-b_Oo&9KJz-K<>{L6IagOkM_t;Q)DYNz%TiIta%U&&hpz|kJLp`v zzPH=bb*77G!ICy(&cob?TX}qQ71%B&R!ocB`_s&{yym{%?j>JeD3_f5_h;XV$d_`l zmTOmM#G6h%mZfd}XHxT~R7;k=Yb-BXKT2Bfkk4R|kgm5YM+*d0y#on_2!cmebRj5{um;qFvap$#^*|%ITYa zZ&HYgc+5T5T<^bGTk5%k`o0T&ICM_;l#x-SQ+8rUxBZ1{4dz?eqt38Rc>B)(&9d7c zqQ04}%;?x)zt4SQ!okHE8o^eOK~5%R_FgVb`IP0&YuCQxvGU(7Z(JzJ#376=5V!1 zXU4yqrVBQf&bYp-k9YG^-w)jACqfcf+@+IG8~6#r(#nSXe+%DkB+ z**E3tqU?toPFm{Z?FvxUnAc|}m#8!Op~4#{ep~k}&hoEZMQ3?;Rkhvu@aoY4CFRCr zeS7uQ(hjLwIHZ)kRsYst&3qxz`QJ0ujwo@bFv(l9zOjAZe}0zGpOqGGoDzlCq;V$h z{j+g$dst62%O=Z8o|p1_UMxD}dwlQaXK@aUK5sPbB{^#iMgBiK@qdz6ck4};^WI0L z7|m6imonU%#NNMd-kxiTNv~(Ua9HzLdHAGq>qZvN_q%Lb zC4wDv?#uJoL^1CV`y%q@yX4WsNm7jySq|$QJ8}N#_01Q;E+t-Fy!!Z!Wp5jfZtGpN zo?-p$f6@7Jj5+?C`#28O{k~RwLsi4>?&5Aw9rny>``Vt zxMq_?+b&DbM`bN*pJ;f91ePe|J~*Jn*dqQYOU#n-O_KE9yNfDYPxPFPa?Q=^`MV}1 zqT_aqfSF=@>fxHlS)J(RDPoF{aZo9@-*{a4Q{#s_OjZHy3#Nyzbh+_$ZFsj}Ss>@7 zR~sy{j&O6?N2+NYYn^BLlk?HWo-e2Fuu1jrw{d?xp+F-=rN4 zNN8T?%JDjBt9iL%YGB7+_AS5vdiF#~uH6-5*3;(wK-EJ2L}0~(&oeZRY!esRwrd%q z-0s_@w%eH0Zy2avknexfEyQ_%Z+F3sB^=#m5oTLHRj-`k#d)PN{QuKy8ZBRUosXWf z_G0(x)tzT!bfy<;wcd6y|NciQe_Lkg)K4NOUMcuwU6!3y#?A6A>hTUf_pfTpHM&?D zHrVgiKgja3B*HuL7Hja+((QNm#y(``{Pr-+tYsfZt82sG zpS6|~JzuDDOm+*8IFY(`mF2vK4KmwA)y!70IC1ZJB7VP^BE-XHyNCrxCd zVQ$=Nx%llL*y|QmO21EYp6YX2apQy~AM0$(-fpX`uC{(xR!|XHl}t-S{Kg!?NAV(bIq3dgefGfilT0 zDN`17Xf-~c+BkRD+)xhheY)A-jMleJi8w!v>7)3)^R3oTm)llu2~bY(QxJ?6Ue70) zSbb%Rs`#?3hl^KdI@hPK@ZPs)|Ms`r=HJ}@dfWW#vO0WBXY9Tl`o{44DfhRsx;K)H zif^2ff_c}Z&pc54OJQ@fr&r^=2n&}h9NABxx?O?`C#e`=%@3J$+!0)3$5dYHRQ2)&Kt|`|NAg-w%nOAHLhNuJuse-^cu6 zi5GuuD!9>Nr32cNezHLQ`4W@fhs(4hwyl{L{&P;3T0#H5V7Vrfr0a7YYcqFt&i--l z7T2Mm^z;=Ee#BRYufJ`^)3TdmUN2wNrl-7b6z=6N*en+6f1zrsz={;7w>fX$tozHf z@hg*vfd0IY163>TeRQAn*lGpq?$~$9PVP-lULKyV++Tj*_}BUOg%SEQcYd=x!E#>0 zMoUs}*PmC%?!T?MU!Q)l)LP=st#$hI6E3=THlI%4WwtJS;_DqdUsd$&J}G^pf2nto z>AcU^_zd%B%g(V{XS#YjdydS5S1DF+1z$uQIJ)74V@Sl?yL+GSviVl2T~IZ5x3WR> zL9bAwkO;NNV?BqmwyCwd?7f(tIH|q;;oSlw$^ORmyBGwWBQ`zT^+fOBs&x}@MpQrE zQ@k(x>$S{tJ1#umwlwTr$Td@gHH%w z*y#H2RQ$}4pp~mO^>T8pvzW~E;}=KG(=|s@!zaCYU~ai6$NuBr{=XM9EcQq$QufcU$vaCp znbZ6BY}4i4t+8fHG_wGI!jDy=VWPzg)(B*s`)<`1y6R4stxfWr7vH@Mj_NF#S1S%V22Q26>q8~l%5s17Z!i8nRfayKlt^sz4wr`fj!*R1lj z-&DJHyv;gtXBl_S!N%fgnOW)Qri907=P+&-=sE8gzB=o_RzmL7lTIlU(aAoMS# zX>MzV)!aJH<(JnBYG}XR73Z25eUxeE+cl*Z?*6zl_l9rv3*|NmjVobXX3n>7C_h&h zkA2O%;?4POw(X%2&+l4VKeuVTGPCJ@P?AE!>$(`Xy^1M6)$5jJc7^a1vProK>Mdl_ zoi}f}>XwTa6*%779xA<%{9j7nUx0s;__hno>%_`z7i6d^qUzr@Zjh zCh;F(so!TvoOaRul{xd@(;ffcI$SCVSiU2kfq{XmB*-tA;s5{tUjP69`!}`Gz;yuw zg93x6i(^Q|tv9jVWw)#Z*2JuCTAd(&^~sG7|K+Q`UVE3tYR1c{!tqMr(&cHgXV2|> z^6%HznAO{}^QUj})_yzf@2l%^H^1LKU%&TStqgQ4Zk4wgKW=))d+qxFJt9si{|_au{&|&s zM*KwkXRhs2pNao+o_@)&EJ$Bs-P-86{SlqcyRtqvJzVuU+&8*?L-3R9OnY~{n#RSW zFH-S)wRiO18`k!UOdr3;JaZ}YeARl$>$kgcdhucRe~G`EP8>9H6g1jnb7|@W;V9{Z ziEG})cQiFHY}DIkQ70pK1^rdBQMlJZx7!ja*HZ^Lnu{Sd%W-&cX4_tVE zw%d=+ZT7cbO<)Q#@IJhL3dh?Cp{WvEej0|nn9FoUM1ZyRQE12So!d(GWgXz1d!@15 zy_3Vv=~X=&!!o@zHfGPAI#$IEu|~FcU9%#Mos`ukXl#>R?Iv<%JG*L7V~~h3K7Cr!USWYr^6#WCKLmcxS|h*k zLXbl5Ilaz>O^;@LnCn=;@F8%*x8L_~#dp1Y+pn}r+mM54r;_8#gS(dAc%8GliRs(- zcNzahl1T@zvh3e#UBs|LhCzwR zg7d?-=~Xu8KijN0_1~j$qDF$pgP9C`n_8VTUu?8x4GsA@+wh>9W7kTj3Wk)F1_QB% z#~&>;bWi+a|JLRvqG^0S4zUG zeipWtKN`nYn{qI;nQ?fC>|^E7@{7HgVZzn$H|gI0s^9X@i!UePxo;n|06D^EWXunA{Ti zb1%P;sXq9qm+GM;rp41VHYmQ(S1!(vlUak)g3ITjcI@vi_Df2%4wy;P6FFw?(dP z>sc25XYic6Ce)!JP&JNUi$(5^q^oS0CEq6{1#Z?Fja{4LPMj?GC?)=8{wz*uS4R&` zY1ch>N{{Je_*J=j*|!^?`tKHd#6eF%(qKO~>n35LUI7kC`_>@o1_4t^30sHDNer9@ z@hrkyj;lGX53pJ`iQmgVSAn%*f12lpI|0{v$B&aXu*;kf z`QY|}f#bU9hn)xXTo$d6I6kw!kwGW=pg_dJzzh{mhNW39hm?+XH#R5!-@tL;)|S6( zy0yKz&1W06Zaed?B8+L~e=ZJz&ZpNjri%33crfK{TH8$K)N_TQ2`({!IbFE+h2@j+2@SQ*3D3ZCgN8x3Bln?4QDP)Jz3Pj#ci z{_}pU&+gjzIJUb=H!QsoJ?&i@XEwLqYv+&|)eVv2CwXg4e`WMY_3$5Q{u}Zyb0X8f z!+Hx{*W0j`eXg0|Vb`-r@kv9F()3%|+-=Flr+EGf%qX3>B&t1j;x4t5j~8<^IVT+Y z+2G6e=J3f6N-|8xAKNT{wr9tL&QyVEs?7{*_ltyY4HZt<*^%lv^Jv=fJ(r$)ALBQv z;Nc1R=ETYT|KpskGTc|<{Tn}58fEB-KiqI-o%*f)j7Q!soY?Y~*^_H|=pq>>>%$il zdMs*enJ$NT2xMJ(H~Hoiiwz3J3NH)1*%^dRe&KBRBg(urPT&=v)8fv<^G*aF+mNSm z@Pd7VK))+T&!vZlkM5N!c~IlGd6x{snSJaEIyxLhsk78PPIBbbojhZAY0}C|Pghv9 zCZ6g4mn|rv$k53=ljW59kubJpMjBeuf|`sB`VS^GnBP)5n_{$Vo!HB;fF%xj3koBo z41RdYMewOadP#IVXsf9VS^fXnT=7S9cso{UY!tceeeQ>;z|wbHx_B0K`MGZHkK}U? z3_mhKf$_ss2^T&e1>Lfj4R`-vN@WfD|2#|RxqY&wg>!W>cj|#u9xjg4$5wDWVcQU; zo|)mrYPoBXk;sXPMe8p&*ENZF$b5LX;{1s#?{6M;GLybwz?ZLiQ1mggz_xZ*4ReRX zx6Vk|?5t(FZ6z(p^;rC)f^tB_14{*Erdvt|yFCLBFgmt3iydf8Rpt5^k??lXwPQ;P zb}ha1=$8ba`8lS@3p-zji)jDS+__M5(t+Bpqf^^#_(75SuE!!^DYK9!V}$y59{%r7 zA`6^9nuM=PExs`Et@7vG<`axpYgzf{@GW`6Qg}eTeTjVJ_f*RhjLTdPtST`3qq(Rt zFk*pL{@Tdt7es!!>6|!YsiA%%bYqE5*PovoGwuB}<$CKhiWE9FZm@bV>5=hQrwjj9 zu(h0(j}WLc44DwE61m|hmtv~vr|7#^SVO#dC(l>qx%A3jvhl}v|CLrtWSQQnY~y>& z7(U0&-;MiXkNfEu)-U#gZNW^91x$}NtexGXzIA7E>DoB3b7^kF&9Rf%(-qVFfYHFx+HAVvi*MiE5_EzdbPIn} zDSy!5+sppGO|3U??NQ!yfl2sW-=XWi&Le<-lLr?=`Fw$9Mu|oV7J*#~?7yvx z7cdwcnxnJPVeih&sg5s;&aR|F7o+qh%I@;Ro|=ynmZMcyRQn+O!J>E;#rvFNo(@x)PHo*Bs?b?I8+l zCmCJTIzM;X)obgIR-}ISdGL7#llezgae+kD6E+?q9-q3y9UsUQG5lAP=VlZ-awo#0 zw1fGLg38*@O(teh%TuH0UcBaJw^E>RYmjbB!n+4EzF2HXkl`zvd)G>)ZQbbx5f-~R zzFi#_9qx&hdTvWOne_Bm%S_yJ^Pl>%`fYhFtun`!n>4IVo+Bv{qV%fi=i6IvnFO3K zG^{z^TwAk2pkxM%2j?US@3m~~j%QA@?76Ic-SAlMEMFN5MfWX*Ev{YHGD;t_6lKVz zn{Lqg5GLQ|()w9%&qYx&9(f)1T5~2b1|b)|mXo4_3Kkll_VY}*In~uj@nsf+-;N~S zJl#!3`U-zHad8!Rx2!m3pwfGB#ofQoQuj74+n69?l)}^YPcN@SvC(VgMv*L@=Nt{{ zS^b;tpK20b8xgBm1AwleVYbCyhdW+rA(bms|UIrHvGGdRC3+ZP&; zWg%7~)>QoO{!Sh%Zi%T0KO8Jy?A|EN$o((8s z$n#?7<#jv1S>?Q7Gw$!N`6HxuW0zm;frN9`mo{E`afWY^d{HBx=lTx~D{j0jRXC`1 zzg%F+v7>vYYu|f6-~EaCw_jn>3S8IfUDyTkN(EdtH5_8xckl#@miB~dzHRZYE}M$J zUE(?y^Zmse$^M%$(la!av@QmGc4L>kQ@i{3x-%DiKjgo7@X%f4g6*bCWv#roS1$i6 z6xVpMRCDR2uTOsbUi)T7YHxD1hS<{$V zz29%Td|S|F*TVY8T@JsJlQGa52WUN<(?-tfDaZ8?>@ufJZ1w{qIdsmD4$^0922B&T?Bet&K80mPRswLcs1p(lf2OCqpEyw7^SV1Sm#RpUKN=%ft%}{ zNkTmJnVdJs+`crWm)M1~C^3=}IKuuMzfe(pKr} zm?c_d?AR3Cx>$OZ*@ujl+v^=3>~v6ZG!PXCcxv%rMkKfQ+-n+sY&mh;CcoP9BYNwU zyywT-;^@3Lqzkg~7)Uno; zo-BBQp@~zAXBtz}T(t`+ySHXkeott4y1eI4gNk%?&Fm>& zTg5u%O@__YuAX_Xig|V%Waah0Z((e*n)~Ejjun+os%e$~ZE`kb$S(<3cG+++u`#vs zPgi$n*_|jI^K-0Ex)LOlZ~hgWY;3i<)H+t;c+XbBZSMPIJz#ehoBVU$W-V*$YX?=X-fzPW7Ta+XJ#1xjgG8!`%xPC8N_~z4u zvj&;PRu8Tme}A4gLFB}|dD{)E!zcB5MIL=7yduF&K_InR*67nGVYhvTJShPOt8GHo zPZ1Qp($P`2P}c0ndv4Y2$emMSmuea0o@=v~%YI}!C!OWoo^7V{EV4E?Z1}u?bPhc-!6WR-q0K{SA;7fZd(6@FAN83-`wUa}`dcKlDc|JX!Y?1Hr9_P06TTedbnnyT}}P17&+ zi27;6vqh1QE(#oTZeU_@^m%OcG0JH1oHNcAAvzzL|M0Ay&!GO}bC+_2RU-8aUMU-#^GQ*(xOL#(}FZn~ojdp!Czjn}zSjgRh%! zK7PNi_0jE!mf~rA9kMC)Eh-G$x|9D^^x{XQy~lXDZ~au6e2TTn zm1Vhv$J!7FPsU#he|o;GTYHts?Ns>&{#elyzK_c2)Ac8`xaM)=(=(Z{Ce z(-K~Z@EvM(4R|iOF}OT?i&3o>7jMWKsaxzK2b@k#5}C4hwX)=Kuft!y)T%Olae04$ zq5D4v(qc(=pJmHr)S=QZ^sr~mS{_KuZ0v zoXHKPGZiG*Z|8;{y2a?q(9khOa^dB|V^=KHcAls@)MRLQu;@qc`A^4BaGaiPP!Xc{ z?ZxjdRtt_FckRCYaqjK<@$IE#%iiF%Cvx5weOdIerhHfKp_Rwq|5*9>GQ$<6M}gBl zHa}=o*7a*(%$cY0>PU(zs|feo`CplrJFJqFyY9$P;`cD%VG@huyfwo2UbIz(+}fOC zBd?f~ATxE@HKjYB`PT27Yo7D9+=qFCfw%0W;^)OC=l$i>75zTETju(%>^)(hnV6J0CdC@~?fk9i!Chw0bye`ijy>htY<$lHi*D_;Ues-{ zLZYF;Bw5&yYuO9I^v6?bb63nx%-mg|n;5m4*JX|!ALFFo6K~&~`}d#xvGBvLwoX43 zIO!PpZ{DXQQ>Hv17~J-u15zJinR7nXcEeRgB-0Vat{sKNo)TQPA(0ymh}g z^Cecp1E=@?o4eq}HX$x9VHpdJ&`YAP(<&A=+}*ssNOK9>Lhfs|QWE=5ziu+)Sab6( zr)Rr;wR=2+Q)2PA$o%vJ4%;(YFF&uZ@h#O{BP@AS$0p!3hmr07=3Czuh4_o{NQmAM zH=MkGA7e9nAmdvGn>x9M1rm#V_)Y)SEVY0~Ux=y3 zS|x>1<+0uw&rFTUf<{%XkGC?(^Q-=TY;LH@pmihMaO(M(i*LC&u6^3T%~iyB&}p^q zHK91yMy7?qJHigQ$ZWXEqWACa$0gHd{o%+GI=k2IWJ=%p_Uk-vZba|5t$)|t!6w0y z6?9Ex*RxK$_jPZQ&u9cp;M^0%UnI#kwOiT6`3TF6@Lh*8-f}&CT-Cm9LBcz44X=u> z;Pf|MF+Y7?->*HJnUNJJdG+L8;i>H2`{h;E&C7N=E3&futm=={B!Lxd3+7m)p6Pz* z8z~mzls4h&XLjxeJ1yS_uU{)E8ViVA`MLLx&Z z7UQSsHyd;UyrvvKEzGfE<;MoclV>01`y2QBXtV7KJMO~D;QZ_N{p;5!m2@w*zHBk| z&w>09zC(vEPfDr(^G3Srak=r8M5%9oHYPTmI_h!c$Dh+;(>~?(?5aJj%w=HsI@0lN z>u$E@XjaAr3tF6ISzOpNSo$~n%?>m>uwnDJfbjMw*VaE)?&B@v;>a<`S`erG!A4%% zcrQQeqPtuZCJM5Ma2a_P^D>;}SQ=S!)7IRf?VT&b!Pw(V{>eJkg$O)hYii|rpt()! zw0nSFy5Yqwp;qfmn-u~#wEhU)eQ$1V`{t_M1;0PNIH0W?vQyz#m>9bi`b)IPpZ>waR2j3O+*shYc z#W`3?ZO5yLrMtI&a9e!t{{GZ^YAaYCi?U7XYX9&vT;NQyQ_Q@2QMD+m3pZ!jN69P4 z|0%4wW6y4;CcQ@7=3?{Dg){zkDMW;(XGR`lZrb_5Wx_1WW2{&F0}n5%)K~kkxtA$4 zbNi#3I3}@m|1J5=@ALmRbX>7Z@icpA1&sZ+a!Z#eu^ zNO{x~b0JwVq3P7oX{=!n+h)ioY3xuCxw}L@>LUNzIG?H?UClwef@994O^6N-T>WF( z&gOpG`4bv%WvmjAUzVmR#n)8= zB$d=UKHc2L8nAEa(FDeQ1{)5wE>76_pj|^Lx3)L;!zE$m?K`%3FN>DGa%(}=V!m7N zSy_LZ?DIa$E?>vf_)vd_DNB^rf>?p4Or4!hKRj)0R`$-w`5KTrYeL?M|L1Q_)!5nl z`hZaRwNF!Yf;9RzY5x7+ZYON+p|!bEx_aHL!=8*z<`)~LJf*KWdLWpu#( zw2yI)fTKs>gW%t8eDgc6ef#C461D9SN{v%q=UL4?o)oU&;7h%!KefBu$$628`s-`+gFgJxHUIT{=MKG3 z_kVJ0H~aFko|dn5nBF4A8KCt_qah%pz+q|Af=S{%o!W^3vd#|Yg)%s7=DNIE^M3NB z*LGK$%<=$@NAAlsZftwnA8ns9|3Nlm!sC2_Nf#x#3e}=o zJC@2VNcV6L*5H`*`M}olP{WPi7+iu?Htjm|FkqVDRle>EtTk_RuCPhJH~bizqSkUL z=0oWAvv0n(J2AHPKNIFC5@2^+@3G*iCP!G_)#mfA**hBN%nA*BF{`DaV~G&^`{)07 zh4#Mv8>HnCBvO*Hpyvu6Q()-`S)YN)ui8w7#sMsC)sF6Dj5^^U4#CJRXU^txcJo!h) zzkSsWOAk8n$_W0`nUeESqc%EQ=%O@YQBu}qC@}IB6 zfiK|;x|z?}F@G_?z4-4=+iS%QlL}*%`ID7G^0#kZoNFOoWf!z%zr%#z+{uq6g-k`N zCc1>LNbJ<}&{KakP59*B^zEJ^A6881Z_*7GnGn*Zlj$4tmCYsfpxvQ8f0OEu?|snV zG_g^YhmD;>c+Fguz(@(Hr8^%@R_torTO4|#{l)4(-YP~iT5B!{@_k%)+;6qFMate| zAA`*O1h**VDIB=X`u5r44W92W{8BGgX-aMQ#aFR|J@Z_1MB`5bh0piX7YhqW6)EoB zwpp{7$GLjuQHLF?m8+iqfUN~^@#$n!`ITU{Y?T5xpX$*?2Tt1D(eS&VW$8CdNj>{L z_Xd;Sw;Vq^e`P6gYqL8of6;B<4U_lfd@pqJgO1p6@w8O&%rfDy;a8a}R8))mEN`v!o_w zL>^kt`2NG=L*e>=XRoe5#$YJE^z{6qi&vc#76t5CQu(0k_mp*>$Cf9zSvlIAmL!>9A?Y)<1_r8DP!?eII` z+~DxoJ{VlrDy!+yneQAjY~l9t*e*f7QUGHVsev${EHuVcOO`~%;<`%u*rsXR!_K<6$&SB z%N04!#&hpGf9!^{>m#=AHr{-tP~hlxy|?on1-uLEBL1>9&w6-J{K&kH*9E87DD-!6 zw{V24&OW}S^uv-DEM6SV=Q~}#PkOfD@WQ{J0$L^p9R2r$=NSKLO%wgBzzvBaHqk*= z5q2HF=bD?v=N$ZVS%-O+!FwCws}d1=zh;~4Zx+42VoFcQOa=S5JvZk~;*{Jo`{;>; zDX(^DJ(%+4m!jT*iwpO5Gj%h*Z~nT>;laU0y^S2+#-}gmPfVF9Wp#zG{J?&TACkwP zoMD{9z_@RHEr*NRyGaXm-d62;vs1%+m8hxJ2~CRyUm{;7|5sBLP0LV^yUM<4O4E0qH8}hlydFjet&)QnH>JZM`fK=&Ks_ z)yN}fE17c2lmAqE3)hO`385Pve|5=QGGopKgB$_n&$DWUKs_*jIJ64|^--#=Kdq5O>D>n*9AaZ0zNx9~>ALd}}|) zF2uy-vQpSBH?4bmQ?>Y%C$mj{zhhW2y;JTMD{ z_=i|0la-SV_payfY6@K|qIcU`xV*ynk5I$%yYH5ME%cjXaHIZAlh*~STD?`#HzQa0 zO*B8jx>I;c#kTK`d>QlY_d0xWs(rCyq1J)!gHbb>oNXQ)bZ{XFD`bnOQ;TJ0jn1N! zQ#H3Qse0Rn@jhzadnwi|#Fq2G38uJ-A0$N7m#aG}1bsbR`nq(|UDrl^&9d&MyDJ`C zol~%-<;9Ay8JYr~uNPD>uAUL~WZUz#(j_GhOZL3eRs8kQf9|Xk-%D68nVaXXu-IH; z7O%3%?e_dnVU{fCD#faTxpv%MvHiR)Z#Vmr)M>lT8XpC;yK=eqFSt@$;O7028t z9-QOee9xzI)&$k1O7mma<-d6*UY`8;9`7NxdHwd$945W%TpP2mXPk7`JHg@o$*AJS zvYiY^ewj3eY5mZ&UU|vrne+J)aaP+^J36DS`}S(a99(aEf!B2l!vmWu_hQ2va^u~_ zJXQujd$c(Bd&M`q2SPg4Jda*~%SCUi;z;`SOb& z=DhfwpCCQua%ufGjUA`Biq%>2OeeZO^WApRv#0unee>VdB1w~1&;NC}bc&0!?VMV@ zR}}{Yjn;b=y3Y#obe^m`QQXZ=jo)OlydjrBS;&rK|GDqqneN8Mm7D%RV8P@|y7L$p z9A4Pu^WoUSRi>Bp<*((Hq{Tgu{@Qpjeow)n8I4YJPZlQ2y%IPQ%B*?&n|EYgrfgH} ztT!`$9gmr!yg)-)SzbeaKl6j5USA!L&%VGaGJ8i$Q@Xctzd$0#mTJ9ltB*NL_B_0K zUdz_Ellg=MOTLU#UdpnVd*|QFe7wtQfB669Zb8vky;4t}E_lVZHEFRn$KrE;HdO_> zOV-CE{=7V+*GymL33u|72?D81ihIKF+vbjovOi8KENMIEtsYib*s%W9spuDcQ?U?QI4 zcZ%0QY}@^x@@wuh3pU5D{m!$X^D9eBP<@MztEW@ug6|AwoMnxRFG=n*c`V=M!P_!R z+ODU!Uwm~*MQ=CvhaH!Lvr?x`5NI>{I+N@E-2<+Uy9yqKA6l?CP~cC7#Sy!X1AptI z>StbV$Sjazy2sm|-(9+PV_biMy5{bjjN=9d{1d*G&)q3y8YIu+-n^)NsY|}N3~zUz znt*KoIaaHi8kiWjNp|#oKz$jyB4^J>9~ONSb#waTT5Y@GAa z^S<;N{%^OwiZ#DF^6T-#r7=YstdoLOQ)*sJH3bDIqY{^NU;j_$-wd%I9tkR~;kv-e@lRLn z1S|jB1sAJioJ2l3JbZR=)nwPNNh(cK-*bMe`tMon*m+cNSAz9dtN*q#pESZ^<=OH| zc6jn!nH_S4^YY}P9>WuhFRYV$5$`5_%yOrOgSvr`qV)b1<>xsA#aWG>tYcMSXPock zadnz%VOm%Bw|EYt9p!R-Doy$<>!bEYG{>K8|5j&}ss3!1x=&q({#DigwJdXfJe$QR z%)k}pr1EeEho^vzE!WW?r6ULaW!MOAzVuyuX3--4l7rq$vq}#phnwa7XPO;nZ<1<*~st4>c-}?EVF-4pgV|l;5d&xUtzxFHV8Wa_>UX*4YUww?TL-^0> zkk5-Z|If_K=wuIf7T96Z7NmIoV5W;={jpMhjVt0uKXvCD%gviGvENel)gpy<&xg;N z+W(gKatTZka&?TpqMV-k^20-8Pw$zD9L)<#mB0K-(Xvq07wR+cTx)so>9jTrG3&03 z7q|Z#mYLdgy|yY5SyvUg(sR$Nvvw>0|8L*-enIb1w`J+1g z$X2%nD-`5KcizyPxXI8~x7{(oJ1$^aYldaU;{vX8s=pW}GoFv#_Sto&=;h*ml8MUUr zG=05&d*qC{3{4xds*fL>ofWXAD=+JEnO(<@n+Js&FXdmBW6ytRy;=3T^OU)Pt&6fI z<|#2;{&R>;cn9;AwDR(4%m1k6&0KSA{Z*~^>-*1~v1UKFKSlo1N|Pr_Uz%ncTkp6d zxG9U1O?JPpnWkRchjh6eHhj6x_IKN-HpyGxT*DAy`69Dk{{I;kx%NXsed@9fPmj61 zIcOJP+4$eYo9Dv6_0Qrid_4MwHG+TA1Q*X{r-0N_i!9ZTC36m4^#5v~{U?{>RDHxF z0m~USi5nW8Xz!`$5nL^;r^rzF#`8k#L&m@bw(D;GTj5l!nv{FBYJ!7>`GvpgW*hY< z8yEQoGn-pAPE*mbP0(MVuFm#6!OHEmG27?=?26A%rSOQkt$x4hLdCO9pY3>C82`#_ z+WB?AxT3@JJsKvuXWbeNqB`vld;HV=Uhlr&;27WfK+!3_`um?fWxQaoe>nQp#mcCJ zm0fMY#r-b*{ekoX~wQl3RzS=|9O~2TW&B}jpb8dtg!won7 zd#fU*t;(?Soa24TT0PZr!^txZZS#*^p6SId(c$OA^Ka%ebu*1qtU@Ips(uB&&az$b zzNq8aufxaIs(yL)`QEHe`wQ%O7~g*GR#>3l!@~SBRM5nYqb7ex`G>a!yZdGSH70ue z6;KEl(A+Vz>*KqQbkj$UhfRYW?*?r6-Ef8{BW;ZYOJJ1%%MliRE<1<31VPUDYj31u zeE2ITEi${Q*D1D2TB=4$qtodTvyIlmVxL#18RW!nAHQbZW4`U8J6FL@aaSh+4USsT z{(U)0S0A66+}6zgq894~E+8=Pc zns%S{$?Tu|^y@2H;$x-u?0GtUMdNdGPR0!fS0sn53pSDJUhz|Qo|5=UhTgNYc$lsy zysNb_>)<|=TIKZGktNryKB4gi`?hI|>t@Ip%M{Gok(uVRKYRj5Ya_?y$1`Q5C1Xyo z+g30+DqP8Nd*kbL=4@^G-7DsCCpfwGKI%8v_*P}9j^dxXH24^j|Cr@ zGoC&X&SihN+y1f9>(kp8)QkL`UV7WHrB2Vwn%!Ecd=39nPbLmtXOaJb-BosOP96~r z4i5S=^bC>(Co&#gC|CEPWv{J-y@O-E-ehj8h2Qkkb0#f%nBpJ3?N@0@_4A9|PL~e< z(KtP)F!tfWye-v@FYcUP>_26`b6xD|ABlV8;vdylx-69Xw9)1GNp3qf#hI$>+)s7w zG%GO@PH25}-QqZlW6DadV7bl4`We1w*j{oQX**a-G$&c7eF)o^AN%9vv*nE^#0}58 zs(liel(+jm`|*#bPB<6op54)~Ree8y?W&8(99k=RCf+Wt)|TJI@V#M;^W(zxjT$c$ z3LI5TU*7Wa=-y~n!o~H~roQ&-O84b|(+#pZdtb_5-pKRk^wCv|9efW=n*V^^lz%}} z`J2QbjYUoqEx9(@t!aCDDx@Lt#pO?2A8tM0P%gXs;CvPD>MKpBnp>Osvc7g6QrB;| zVeFESps69ErlKw^?_e}TAV6f1P-`LM5(kyGr1BlRPV(M9Inhr^)tzG9XI$6x;I3RH z;iJW+sle#c6VDjbHKeis;`oG}e{*{i;y}n#h-s^oh$o7#V^F{|j z*GwLV!n(9p1`~ZT88wy{tU)Vuw|zWI)EUn}1V?Eu$=RhONF0(ab0lwC8i&FW^t z;>i(7%N2I_ue0N{ekA(YIlsTN;U8l|t?7y?vpfHontWJRCNB+bby$Ca_uQ%JoCkRv zgqtUOUwg*3$dB8X(?Zxq{e#Mi8#_~1u3SHhyXDIA4_=~6T`zic9P`k!TORV!L+6~c zJa^{-%XZ${3oo2!E#GeQFPY(22>;zF%5n@lRHAbDSB9VX^x%bDg`=-Y{RaiTio~*S zvjXO@I!tEXWNpB5j?r5`4G-;Ia4r9kz}%QOnw<(MDG!?xmm9IaFx}Z` zRCM$u)1Ct-<1VOL3YcenUDCiP5X@Yl_n_6{-X)RV_2mc5j6c;bZMf|5pu;7QCB^^K z#?tl`OLDqxcJZ97+0Ek~YQMLVSLyP5_TTLj|MPO*`EGqxvsj?WHl>-DZ(aE3AL0Tx z*tIGd84Jv`uK21rOlIEp<7J$}{rGyrq8*3qJbre!${L$!ePvS&O<0+=@4)-??+bQw z^ZXK7>V1N7_tUKvpWEAOkL+A4w4!!`qn+V?jfK2IC;x3Zw=~r#OwO!d-7YVqvOwSl zuTN_5TT@`esI^1B{)DAAU9mnDnOd+~(92aBNcyFy8QWam9;WjiHiebB$)K zyd0j$utjQ_!h)|yKO_h)Px*HD{1KbwM{J~WLoWz3yj14$y}V%pqkq3?Ig{lqh6{dA znx=nX+`hR&=TMm5r7d}RC*me-GLBt0hhKqb!P?8pH$0eA?3rEdY+1{%nr}SU@R8%A zWJ_d*=<*HrF;&yPMJ$TC)z>c0|HJ0rN!CkQd@uQo+|GqfcT9F&C>Gs+|Ei0M0>-Aw`V|vZCf#Yc+Yml)u2APB z@szVn%e-FSyUohsq0y1|{uFOBbC9$X-$GH#M~}n*q{ptF_d8YcX){}t&4Paucz1JO z$Wqg;=Va5W6yjgaqiSX5sU_H{EGU=DrZjKUL8ZXQO`5wI)7eWOg(x^OSjw>K|5$u0 zsa%B3`K|G@_ss_mDB1{gI6l)c+vdK#`klN`rqx6)yN>shuCx9RXD ze~8S~=kKDYrhAH7o^74|`eIUwLtMcoaSqvn=($f%OyN0mWWiL{Mt02>hY;tToIMT-l9FeEh{Sy{;5fCmieU^o_T<)bcYpteEicKk^3x5 z=jffdS#&EwHoq-jE_c!0lii1sPHcKn*Z!-RYl6rH{vZ>bj9Vt_Ki_#6-LPWjBt`8- z3Y`W*3x#Fkzb;iUsa0!LYTBS}>n<}#c#U7UDbH2@WBn_elpK#F2xggV-z)NS)-#c; zuL}e1w=Aq*Z!7PsS?Kn!T2thD+4fl9b#g01YPOq-bc(C^zDjAB8r0)#Y-w$(sU4yv zq~9Qwn%Vxg-#H*#MCv)an}UTxb#w1ixp(}#F1GYNJo)ak!M}E)fGvNoasOj#Z0DY^ zrZ3&3TY^Pz$6anQ4z<76*2f=ViC8&1Og^R3L{MHLg-?ySyxCyuouxm`*HnL&zsdMx zvwcI`(g0hr%j|`m{40Mhd=hhOJIjWw1@m+EKRNtecD3W$trpg2g10U_X&BPXCG&mb z1qS&kopWzEHrg@hr#w8!=;5%#!gbv%*2*XD>pvV@c1wwC{*jAj&3|!b=H!WnyC}-+mveW{VTv6XnoI}d)j+Vp}iZLAGOXr z$Z1jCuh7F6GkwBz!vRJnt#_ppu*d<@7aMz=N{Zz-XtLN!;tUh3EQj-Wx_0H&a8FSw>Zkpwv27^B*y9$ zA_^O=r*^&zPP%Z4(Q5b0=b^z2U!>>Dv7h@U&i=!6O?iT8+0Vub`N{+Ld;gxjBcT`c zXhHFw$6pd2M+&^jeq6Vre^jbbefh2D zrM)Vdlb#k>sJNc==-1}xpXC3v{66zWmHDZ1ObivVywjH&Iw!o7@&5gPV(`fj$&NN( z-CLZp)n?06ch9>Ow0*yx=Ed{!@`su{TP}YSZtgsCsabnW*yvO ztE=f@_0;?q4}aW@vif$f(_9h%+y6Ybla$)0_CS2w^@*}KZPlLsoik%|p>FOS$6O!d z9@`$)&-KPEi!T4S_v7&6apAf0MX)DjwZi#4g=&$a&-Oixn~EmgscB2+6t23O*5Q+X zbjkirPiKFqzj!aqTHrmSq25i6$o@qyw>+P~}qH<({eDSxLYmAp?optTAZ(-G9 z7wi1;uK2p_iT(dsID44;mCp3DzdNw>^0yR*0@elVQ>FDI-sr#GyZ>ZE+2z0f<{Vsm z79RTbaDDfpQfr+%$2u2Zke%6{Z*hFYhcqFRxE4k0(+AF3H!SW- zySsy%TZH#ahs(;R6O2z6<|yymu`|tOGON8y&s4VKbt^vdvQOmq?hW8;5SqK7Do367 z*_0$k~0%J?q!cPm@!j#NbbfB29&tM-t=+a<+XGXyecS2-n^ zkvTwI+wk>yTG$c(#R)zn3JdOcZr zu6F-)+_2ev%~@5y!oO|Xy7JfVQTqMne?m>r?aB60n-*q%jy3yc_A(;!>Fc{0Gbe7a zaH;m;?z|Y=>z~ZW;c`h?NUUUeqiA}2UfY#v#};2-CFQl{@8#;Jf^9b9lQ@@7<8GX% zvhk#{<29+yNgEsWW9QCxw)o|HD*Cbi@%#VdSfrj_Vq)HMWBG-1E3}UuShwU+)&)o_VvlLe~d{QXPBDuf)xH<j#jk>lsu$yL_;VG}=xxU@a@y{x+S=ajWQv;22|(MkJIzevhhqdDW?wv#tYF8|n7 zuq`ongZ#VyH^Y_07S1(c5Mi6SUz+{K`luzRE=V3I)Q)Ttsi^o>HGS{1?Jg?XKSjUp z*SEjtQosLzw57a;-nJ_fSgPBb|K9p=;C{N@6b_fWrt^P0ZV>u&oQd)Ms_i<#B}Fmo zH#)Fs?z(g!d-GxOOC?Vquq@CvUVg#t+=6F+>eOvq?O}ZEu<(Vv(^GcmFL)z1d99(~g1Kq$gVfLD z%5XV)H99UhZ=TpVFL;+FNBc#G$w7?|8BAvs>l=u?R6TgY{;r3D(Sp`Z2@Ae9-kBBZ z`8s{=;=4PZFl;#!&#bWReSz_BbK!_RHakmew7xC>W5viZaiU%Huln=O*Zu9q8A3X? zvTT06(nH9^*>(OktA`WLUT1B(`O7}HW{!Z5?gi$_TLaaP9z3@0$nkyqY(3g_>}*Y? z7P8Fi+teMMr=fofTB=)^F<=A3;OZzJGnkgx3v|)BojnYCIL6#4u^*w5ccWUYhUzPFDEFvXDx7C$augYx9@4QYPEV zDD0P2nDK0`P63CVS-*=>=yg|Zp0>Zg1$1PkjDm?DDp_{OOzIrVISb!j*jPi*p5ZeO%LAI?eNv{OS%?mWxOB zz5cSrO(oLhhV?quIW8w|@aqViPIF4pocO}<^je_@LVYu={TN?tT4DY|iBD4C@afBGMvn|akbZm*h?p8xg2AWp)d>1-%DtT?^TVt-X zdHe3m_D4#-ULvF7GHdcI6PbfdyQiJ4S)t3dcdOsTXKsvo#c9s`)0>w+cgc%dcXRIE znmoR2Xx_#>&jOwn2VI@=I2KBL+dYe=e%;oVaQ%LawJWaU1Wyx%+*p zhxhzRd0A5>*XvEa7Ne9LmT3{vxBaY;(rcm4pSi0YFETu5++NgASb6!S|tGh#2q;C0t zzJxj7%}m}3{E)htmfE;ZY>AY&m&xJ@_c96pEMVD^VkWoa8pQNDhevf1nO ziEgdmxE1CdE&GzBvr&1jufU2;jnnR=7uHoZHpiVjeyhkNW|xPh!<4K!&))A&UA8Z* zVd4HG3U9rnIbMD<+L)A;R>uhQ}EhlKRcqjS9Hul>_k=K1p?ciYtDX*`iGr*_X0_{yL(<-l>#Uakpz zCz-!lESZ=QVc(?d>Z|I(QMW@(=2+9>=-RZSjZt;qoFljo-k%$^Q=o7?#VtZkMfQk6c+9^LGdLh3Ovxqfc#j zY}1>#|LzgnBL95Ow%zT)P9=^n|LEjis_HqrXm4%&!VC8VnE9VXIm9e=@P5p^?iX+5 zN*$%yQZnpjJqa^|mQ9pnXw*?QvA)}?tjDMsHo4|_pLfH~PQ9nW)019L`nKiE&rf&W zIS8=HRHX&7#oBW*n%FipJllRN;l-mfX}rq9kD0GTeEo5wf$O#iL$=UPu{U!r3++)` znpTyUSEhF~{qKT`y>H)^?_ytY_e-VNzMl)HEd8a##d^-*>G`~f2~!QOBt}Zdl<8mH z?mMkBapQqU0bU0+*&LaLQwwW-efsZuv-peFu``vO}vK*hraYEsAV8D&J ztN}{1r4F>zOkv$LOYC8Xbd}_c7fC$bMcBC9z&+!6}By>lRxwST^Bbg*P% zcyM(^|J%y$$!(h?L!9f^^LB13eyPMf+xX#1ffTQqB6!Qha2 zgkI`P@0BXmm!*8p@h(0k74br^AN?Hra5_Pw9z@oMEP{)HlE(q8H(9F$oazz{OE-`4({D+dpwTDPkn=aHp;=h)Xy zaa_$D&KRL|KB+v)M9g@8x0vq!`2iAH3a7en#z$^=wxD*Ve&nGE^EVo8Rd{saVbU4a zrp*?=r&hlF`96_j%GB8$9tRqiD^5_^ux3TzvlT~sxVg0izRSIv$le$=NwI;WYaOE@ z=bigji>`jVCGRCxl5u3J+Sk1@^H~|LhMZ^$IJPh__|kmVrkiR^N=Ifj@?Ky0cCXV6 z^XMgcyBx$dCg>*a)>9D`i;lH-U)}k#_5AvYYTO2&)DIULf4+S5@9O9LKZQ|l1_fbm3)v+37iklYt0`E$o1(TlJJl(GLAHzc)6vFBmC|!whj{*2xyH->?0=z` z`{nMvsy;LQ>-T`=U!2qoOwuR&T27sl?4#%0>2!V3w(4gb8CMs++OYGvb2zhO?8!+? zmP}fKOC9DP+SAFapfJsd=|ku2iNeZ(O8k+VtRBox{^DRz5qni2?dA2K&q9Nnj_sQI zKl8`xLk~7}ij7+$pAxL{*j?o3(6Ba%E9)=C6axCE7?K4oNN))Le?wrjS% zmTl1DdxGm%w|`37FkMyY3)lL^N;mR~4%O`|+I;*RQ=k3XzSRa3_^uWxv8!okcul#% zr^S7uLz|zY^_#@eeNq=E$jUqSosi&RPm0-e@cbmT$2+39UlvSxsXpy%g!%j_oJ~7c z9CqNVV|(Bs82vv-Wr-z+E|c294NdPko9x|xL_~jG)8*L7=7WrnWUe;{?)zvz z(R<58P2KgcA9-JYTCVfu%-O=I2Jf1$yKH`~v$gy-{bqpk!{vTFlZ6VSo1Q%`UVXZ0 z#p%8Xf2$DbYb*Cn~yuI`fhK*l_lq*OH8JM;g=F%q`uw zt!?sW;^hxply~f}VL+gRN=B5i@&U`h7ru+~PV5cb7^qhgZptyw{#;Cgrqts2#*YV2 z?5~=-y-{P4nebxyTf2X(dEOPGl^E6a>Tvg_TcK|4>q6s>2mCKnu$aQ(*-+$SHesjl z6jshIb5oJs!Wqs1r3ce10={@GH+%8hdEXKB$dxBLru=GlZ@bi|5p+@@HleF2YgZp% zsOqYZ$Jx(ySneLgACSD5E1GstPgHB4C%-^J2?LFWB^J(hYV z?!d!}{oJ;Vs~%ZTZe92Mc#YYF$`(AR z(^vR0xrJ|O^mWCWu(b~!9I#EgwDoS@s^X2Qe=hG{<|jN)hv8>P)|WF(_ay(m`j_z2HD%^mdA@q3C}!)c}vj~7NJMUUp`ch+28 z;%21zs^)v}_3g=Vb-J!fe;(Q0de$R#@{#(&n-3Z4c!SITG~a1v`OXpBc1xmNlqs~+ zX!;4wl$q1y#2-YKrm&jlMfFHC&O0t*D%Ej)=~@Sy%?E0x@IPnJkesx=qghghE5);Q z<-{2A9y5WY3#m6XxGn{?_i10%HrGqYR5)XiKV8d3JmsKT*#6JKuFR>NUF<~%97{H< z{?OkN|EjOEKAP*4NyF`wBSjDH=XrJgC}959JGRx-Pz^r zUgPf(z`L_?!dB@CvgYP$Vt08|SMVakCBeUOrlVa^j%|FSl9OLtb=$`XCs(*~wQ~ zqkNuhz*4pP_@i@q|9-pZZ0{=nUdk{)_M*;@`eBIF$ z<+v#R#|;08{3^~@IX4wFZOHMS7JuTRkDOmucN+NL_X@ZSNZ6PwJ=ieksLDe7|LW zVhVTebord^Y&!Gq?~=VggJrs3)3L^qSrhr3mu*?`cm89!x_9>9rRt56XWe~%Uo~%` z#bnOF1&O;W?&;iKBDZW-$F6Bpr%p9CTzJRr)&BMNg2!S@?KKKlF{k*=D%CLI)SJG0 z<*7qEC5v0nxMXO^m>(3Wh;e(YEd6hz=$dE6SB@;pyxw?!d&7$N%b=#6yAt_DSx#q zT0G`riGXA4eJ980_TMixZ?0_F%*%ZKqI~GhxtA5qnv`dq7ktq+XN%$X<&A+4mbt%= zyJGU@knrhuThiu~p5$l=Dp>u@!1U{!ty0V@^a2b#7`vYY8(a~+I7{rHj+2(GsLle% z`%%I!O=g14tna^b3)HOqz<$ne=iwHG1|EC=caOJySYRd{WqcuXe&O?VUIKeRY%A>d zGX8#`bX~uFX5hD1YZ#uK_@0=tH{JAGsJ&BzLhz-c4D;$j`D5!REVz_lp65`?G_`!s z8I9RXICivO`EIsGKT!6@v~8M!Q|lVeOnt*-bb9fNrw4Dfy0ku z9opMx`zXZogL2OTU&-auJuYMzGz+M(-DX%|KXa zNz#!qC!cFhc!R`@EQj8Iv*%>4ujbCO5@{3O>B=X5or!EtVdYrnBpzn*W0U+-ebMCqA}m#=rCOhb z?);eje2RcsT?*?d6q( zw1%+e`ze3i3LizjIQ~OYI{da``oU|5f*MB4E<)sX~KJJ0sqYJZTa&! zPIAs=WGGg!5nh~OFd>_P#lOb8_uPZ|YW}<&%lUMQIu*YAZF|aD9j5SP&HPjIG`?9l zs{L56TyP;l-ety?`@2_YX*6CJK0UiV{g{GK@xmLyy0YSP)sE+y))l{#kG~-Qxox(O zv;Wb(FZ$zblLHr*Z9DxiM!Ge}b?= zFtg5A_9g#1ifv}yj%`}gaYvh_?81WXJLLi^OeU0Vko!}s^T$MXk=(r-35)!gDi|9w z%5^LrM|cXK=v)15(u;F3Hv5m%e*f_O?d|^gIo?LW!aQPMa@h7h&=m@iQef*iq?q+` z4$DH_vOO<8csu=2u<)J9v8|@>!9|8;8Qy27f9yYhHk`Bnj-Hu?gYZEW*EXh4#sZgh z_p39ixpFjITU5g2xRuF6p<=s_CenO!4}%lR>Mv~kuoew_7W zwxNEKec%FnZ;xhSz9$Q2oqqi5vl&Z#pxUzPyS0n!f)8ams=4ghqr_#rLvYiGS7l@_ZxuF&;5Y3-h zwClO&C9B*n|Am!ZP613NRa#NaQzTU9$k{h5{JgI3VIXvQuJrPQCjtZv9HKLiU(T}b zxT4W`(sYi|7h8?EpWA*o-OJ2wSWx~-lI_c1soKJ8QcWK?g=DVxg*yp++omn^c)mpY z0;5Gy(uez$+ieqr!jo%0ELr*Mq4tb-v+efqe0kfppxiG^%BGP)Oy!3xlW$j$x8F{W z&xOnFUjF@fc~=EHyUu*KNA7fWo zyN02zo58ARQm0_~8!Nsw-lfaF9E>Y?!0^Xx6-y`cj8~DO1rM7yZkLrWuF42_&eo{^ z|3;3oz^m6a2VSdWEc|WCxgpug;epl7tBe2k=`KBUnB& z-s|W6)Yl~PUsKZeapC?QItL6b9UJt1{rxH~ZvE-pv@;T0zN=i(xFi4Fddtg2uUOws ze7rv5!4IQ9`}b-``^j`Pu9K4M$(pxp&Rng3|DDCF*X4P#O>$5;K0)A`BImnlQO8f{ ze4pen^Nn1_j-HAOraL%o7VZn>+865Ee5bt0&SulS-2b(QH8Vb(K78QX{Yx{>8(ipa ze#SMGWqG9F=N&&B)`))*-g1}w-O69p^VB+(42=s}X7Tt0e)yGtz@sDJ(w1Psx2*sD zF7~o8uHAom0^j^a3%o9JoV@+~gdaQq>o+%M36&P#v~z2`W~3ba;OiWQsT}cAu8ap2F8HtcV{g>Q$7=T9?_j#* zilCOgU7zn-g-?Dy=e&FJ?JM!ct(JWJ3Q8e$3!4`7UX;*jTA9&Y6`YZyFCg#r?r+Cx znFZ0cGT~~aLMhV0G3O_5nj|FI{<`7f{Y z>QlCb?>*YY@}l_D@mNpwU|!ziCnS9nn#2D(oUxFtJNQ9)i|AespTo+pb;b1$JlT`x zT)SF4R9SYpwN4qcq|O?XIhHr{{zpvf?YqL>r)05dezvo+4$IwB510k{R@&}lc<&+7Rp-nl}Y6^(lq z@|Z4pr{X+8)N!Fr*|+V7AD%gKE&Ju>a%ZQH+*Q>}rmzHy9Pis(aw+-LjlG>ax3-?( zEM~RWxGTA}Znsa)-WM64e>BW(l;hB1cW!;B?7TR<#Wbq_*X`_R$s7Aty2&d}alQCc zFpTS%^c=4|`zH7I7b+rtx4xaw@XdX0?V^8|GrzEXiP`nZq2bEC3lros3yxMBE?DAG zu#a{5yIZ9y^OP-q%uZ9OZh5OG=~NM~niX%f(?I3O)jy>o9kP{=5_p#8a0bdoz5lV^ z@4}J&kK*NgFWZ}Yetj|Q7_{sh{<zP&tIO95cfIcVuzKf@+mQu{ z9gmqeO<&peSEjSM?DTW@=ZoE=uGHqgc6Iv|Y}-^c|H9`kL&4*I6P(wxadC>UNQpn( z$Fn1dWh=)H=LP&eYuwk>zV50{Y@Q{X@&B(UlQD~~;On)~uV?jg^`%!y{|M0#_|mXd zr65LOX=arKdx+*^k(x_&0uOH8T)1i1w~~bGyeWLU?%vWo|2+P}<@-##SbY9w-_46* z;9a)+V_DkkTnoly55IO*aU4#Tedov6!tCXj_)756!3t%;*cB6X?mlDR9s9>)YTJLC z0zN}&gGD(_Oa&Jf>PnjWX zACi4I`$4$w){9Sas;~aO9e06Ccc;IIx2w9s!)wVmR-HR_prGlkt^0i&`4cY~ zD!FjQjs2ZU3i;c=IIx9yyyNBmzops^M`oHhlf|~+` zW;qotYh+_qWx8T*_V3i;!dd&8nDzK4J!WaV@7yA-cgOjXFH_ZiZkuDVCRPF$>yP|m zjkMq2Gq1`iEc~q2mCb8-)-)>Y*;;N~;ryd`mEDI3HUr(Pr4L-CPH=9KTItJb_&fB_ z$|omYy1vijw3F7I|8GVbZOr?xEPeLzzcWsA^^ooTIqV*d5%jQS@zsOnDH_<82ZbBBr4JAk2V^W`V#ac3d zMe+G0&8m6w^UljgfkP(ds*S&;W_V|*JLq$mxCY37_h?wZvi2Ioh1U-Pj4r<2{M%uY z7-x`o>#RRdcK@ayb4^9z0SnI*%TBL}hwPsIDdowqzYv{yUCgraUQ~gl;PNeIW_gEu z*12Cf?UBV|vNH3|+a;f**twWpYwu;rIQ-S;nPb1Nr}6H&uNM|=xo>nRF3!L@_~3MP zPH~T-dbj+T6>c$25eTfLpiW1MVouP_*W^0CXvzS|N znwEVqRXE&w_m`5-=5yA*dmEoE9CFOHH(6>6`=dw9$^i@hP2a6<;2`tjVD|FTs=Z0V zvHCY3d6t%*=s&XOv-5xH`<1XEt znh;f@_nv93dDooo`ta!Wsp2V)hr<~DMSa_5z`zs2wCl(7hivVcReJ0ds(!aJW8=fr z?wRsGy0O*jQ0LlXHXZB#R`AYv%vdY-Zp)UbFK?-K9B6J;H(aodzsLCW+oY741VOk78bcw>%mc1 zzwoK$jL*SAbH0=wQ2QmsxikAhQ)E!lgZORzFJEd~Im2=Z5E z1T5+{?fEOtH0|;iq1Q9^oLhM>Le19C+%0@l{^j%G*Z)k|9eYLgBYWZP4cFWn9t5vp z%GJ?1o>>*h_vL0*&6TU2i};1tT=7Utd>pTFQp4Y9=6Qy&$rFr2lB<8{pJj~eZq(Iy zK3B?dDreN{awqkfwmTdj$zKc!THH8U&f|Bi{E5ti8WUpJru|xKR4`-N^hXC&56W&T z*uUzbO^r1BYa6>4)o;zzKl-F`yj!xUq5uD{`EPX3ipF&{S|v=e)i;=~yuo4OfgK0B ztkxZk4QcBy;BTI8`{VSFlcM4)4vL4o2xSsr|C7zYz`O%=M}Q%F%bYuZM6%K=yyvon zrq4Yfu<@^I(@p-3H4~MK>$rbS>D0^AXDj)6)8^sSLkwMk^4X;k2f|i8YyRh(xmf$X z)>1(~`SP#F1TKV}C}mv1B(^71)5=GGC!e9E;=zwiDZ3^wnss;1CS}`#*p-~CiSGEU+o|u`p^^5GEOs;c66Am&<{9kJK z+hXqrt1ZQ6UN$M*6md0Z*roMP^F`vF7Iy!%GzH~k8#ha&N|gLvb@T?`jpH{yOIW?+VPH(wyLe!};D2#(MS;a{ zYZ!an8_!h)Z*$Jcs0y3%e<61Y-$5Yg@%{Rk?+odmT zE@RYoh^_zhy{Pda$0;6rr`D;T-)x+CnKk>o* zu3==m(kR5rP%qPZf#u2jH%w;*9oP%lE);UxZFp=I$uIOs)_Sp3e>?j> zdY40Ki*RDY;uAS{xT0kprf%i${aEm=U1q~WGme1Y6J+b057*4t_u5L~n~31gMsubPF^aUY>#$3VNLdcz8<4JrD+e}0oXlC>nV zAw^YM)&KXQNp^jI80rIC65bzFOtAC0UoWedP^|t~?t$K_y*7LXf|9$>i^n`r7kIGZ z;$8>#6%YCLwacG-tMtvjtD$=0f(a%9-*>CV?=*e#xoBeB<1d@93935swpOf43VffH zyp*l%YI&|)`Ch$H2K%WE4>@~QN&2j4-`d7}=SR0scKn=m{a@kha?6IYR`H1AFTbzT z)v}TPfB4Jk>&1~X>TUm>Pkng)-~7{uaeVKT4bLiF+wTCt(ZMoim z;X>`HbInJNXCF9RzHd+A?!Do=-j(kAx@h0_tR2^j&wpw-u*ZMA6fRy}($ z|NQHkZKvape4lfCgVWSwUbBAfKKnCr+ir{AE2(RKX6<@6efN*;ufEitI1#@4QR<#= zZX1JCJpWvKbMe7TD+UGznUWyCV1|ERlQsT2a|r)!KfL0e=Jz{)gSY*9+qUXq)#KAF zfBt@EU{GN2ba4!+xbkeq;3n)<6-~ z$f|S29+ST8v46Dl_C*;9`&#xI?aF&)H zX}@-~@6V!V{+15A%?@tJYH*a6oUniD(n&l&m-V?RFJ5@?wbcn5h=6Tef8XyxaZSnG~AKQdh2!vy6n!&(pl*S zH*#m4bC%d^HoKH}?e^&`35hAQ!>xb*+jPUmNcXfeTT;!{zP^g^4I0F_6E(blFSon>#;Z;%cyIQtWto+7I~bxIldksdx*N9oZreGAs^%)$ zYKx6=*Jrm~E|^kL$+~e*l-~5hIVv%KEbH^dd1u~`Yl%@bVLWz7Y0mQW?diR3W=z+` z{yR<)$xd zd0ud*Xj7d2Bv&E3UdPqC9@VT2q4R|U7AA<>JFVEhd)w<>-!^tmO?afpc(Cw6(97I^ zev&tuaxSoG-L9LY@-R%Zn!*0lUk&3UNnM#d92~+nNelLSTw^$J^;u$ZspxlO_rHw% z0+CN|9&mhM{kmo8KjFW;FPxUz3hiH1)7m(Ia3dj%DTw8(4lY@-j+r zFln&x9y=hG8qTEpp?1EDEb(e!4C-jn(Gk0muV*f;q15@vr00EDo@c;Z zw{1rcF|!|i!H}5hVcjyBXIZfGU47;gljEmtke?=h^MKwy{xj@R9SyJ9mYGJbUBSNK zN1cP>hmXRgO!eI}`5yl6l4oH2v94iZ`VB=3zr0tw4Cnf>e`ZV+yu>OI5s~eaWV49T zy=J%YfmilP%FMYB{=VMYdg$}R53VOFI4m@1!Cz8%UCb) zC^5E}Gm0?ob8y+QknMps%O88^uZ4>@uh)O6@c+t-NtS^#BBn4k*-coQshsOzyz%Hh zA?wEVe^MCN+gJz|wCy2gQ;8g!JFog3)sI0*3yBvqqc^a=i zRWUfMz`uQhd||?`_L|T|hZtuWu`3+i%ZcL{E6s8je5Cj8)l zmcR#1X2#;C2CnmQ3*V>jWPXw>YsJ8ubjE4g8sk;6yfaE$%=oXju5W1j z_+u&a2fcuEj5CC^gjXC5QD$X|sdqW>^NS^;)%5#kzw3NSZ$7(lFUz(UmIrcq68(?p ze-&rhGjrwZ!`Iih+b%R{oEs-85-s@4*g{`I@8isOSC~20GtXhs`6tl9@Rh;K;o1qA zzn#nhECHHlZbvS(*Zd?UQpPEuP;d6rS-yz-qxa9q-{GguXZ7w-XPYp+-th(R*5-N{ znR_yFGBS4i>L<7Tc1J@sEIWxvJm*C}{oZ{rLU(LAe_^$?c z*O*K8mg`Rc`?&JI@SZIPHruafco}kk_8<5E%Rj}>*<;!NxI*&y^XHEzbGs~1e*Y<} z;X=;U1;3A<-hVuAUD-oM$AG`W%WTsder%C)saSnLbIy#b4O@aZ0=9hE$egfee@%a= z!mp620T~t#9Jg(cs+_--Vd?M5pG0o$+rn^#q2=Mhhe!9HpMF|(?|L?tnEjIbnOU~X z+hfd~;Ll!Bq0W%cu))-%*`VSMYY_L1CiW?p8CFOLzM5}2HG8*hbL#U3P1lA7SB_>| zLx$?oork>q=S+-v%aF3E$3I7h_Y7fo~XQ;aM@GR%4{d?r%V{`SU zfBgCPZ$(X2ZDGZY#pb8#|F1vj&b;DJ7=y9>=`BpZntW5m8bTKQIB0g~Q#T`vKJ#yj z>;zkf%|Bi>%}Q5S+{vzUZ5q4Nt}_hpUY!2sVbUdPn$ zmZ+R{?fapBsT-Mp-rsF$Q7!EJEq?FLxIBf1hRc`DAAkID_vXWg69g~3{Nu)F>x-PiJq|an2b;rB%)3zkkmCtYMD&;cEB{Y?@@eylS)un|WoABPGbV z?-c)`do#-|8B=*1xE}1<`Nx6l9S3`o!QaSVmkka7Z?(V2km4&HZx^#p;bZs@3l?Jr zz5mY`br~3DC^A2Dto~`7!uE#SCj0put~wobIPrajN`{xHX{O?Vn*R|c6O_Ul_IN#5H$@`Cp>DQK zA{XP2$MT$SGyhgJGpq^t{Z#m`yxg=qjK_AoEM_UFx=&O!V^n2z8w?Y~s}?R1VeEf>>UT|fl!(9_<_kg%6Yf-2J_s~h z{r||iSL^?MEI!becEr189xG3Sr32>yXGVr=4gV_c$SX5)wjQ`(b^hB@mW?;2W$c_Kp~<;&=BNMlhvyxyondp!Kuc)n zlC`TIY<eu6*C;UE2hhbfB1*aP$uUTzLtHm-cqw zZ6|6T*x4@mib0WOT??m&-~=(L0F}l=|JO_WZTnR3e!O0(;ql(%|EGqkrrOUCU-83T zv%z70sDfcb|A)mQIxL?p_C}y@@)^R>q7Nje;zai6MbHutU1#_w{-A`yR z4Q@zcSk@ra*3`7UD?9bE`gEo>Ulh}7m%KZ+sN|e z>nEY0|0i2M@+&eje6UW+bKqgJF?`4!cwnMTgR{aVu{UPTRjP*=q8!@yvq&(UZ``5v zhx<<|M`5Y_k7aWz8MzaqJ7<`#-C}6@&ivz^ zmPVoyhgblEaK$^mtCJUyPF? zb?t_Z|NGW6EBqE``8b`8*+1)myTpPAmABZKPDuS+7?j8tbl}(T8|gew^R?`PK25%% z+(8s8Fbj3Wj0P~O?bnSxHX_e_>eE-h8w?21y;vIK2*9Z5odV7J|yzNU0Y^`KjCqW zz6U<<`MJPMKgLU}!~g#^UXC|E+ue8m5fAv=vbW`f(3aT4|@v)LasfWEmoHE zG-d)XXT|2bD%=^RS59b1GVnLfv7g3dw}zuQdd1tWYXK`})h<%KQFN1`L_J~Uy+;2I zO(8CZKdj&F7-qQg{4-wj_iK3J8&Af9^GsNGYR`{}0-&*XZ;`i1x1U%3yt3=Fl8tQfTaE?e4vLoDZW!3K@L0h|XC*&YZzcI8`^j!6>ys-uu8`yB{Ao z4((sT)RR72M1e;^gC&lEJ@-KO=6qe}nG7r1-*Vq$`}wcs!2E(X_8xtyTB(}Sz(#}F z&bbWlZ=I0t*nfA6C$qvIMc#%^4ux3^_kW*fWYsBgyilgPBuOu4r8tWUb4!)P9Jj_8 z5xy^R=TssY-dHj=JX~+_-1$dukw^pMf_(P$Am%eF%wH}tD6p`swqL9v70cqmcr)3f z)4x!0zLVp^ZMjFac^m6@?PEUvpUI%^VTHfoe~&xdUvHe(pRD}mf8)FRGXjb{s*`-> zwGS}WZ(w+S?IkDUj|g6kN)c9zE1V26hnH??eA0A4SCT=T>1#Sem7qSuziq2o57d=6 z_6DE&qxfw)L*42bdmDb($-Ax$`PTpMF%N^HLdRl_*}kdzO$-_hr;-RO|M@ zMP!VAq^NseZ*PC_xK*Gb@Z91}uj8k=ys=y7BF>O4Gly4xB102nnB4qb;tjkhn{O_< zBGeqZzlH6>`T2RyOmkQs*xF0pay=1YFJo?6B=rB7%M{KCma^LY&87#}$KK&DH(>bU z!u8|vQkm7Ocn>U8WN?|R+&DWzXbJDeGuczwRxNa>=ak>JKWDY(ful+N&kwBHY8aQ^ zcxkQE&)JbIQSymW7p8kQOk*%&F<|ZxKC(DR%W7KDJ|m5Zvn0M}-{z3t*!<^@=jSsE zm;680a@%>1c}>=%T%OoB+zN~qd#5cHNq8&C$ra3Sl;IWIWOMyaHYZcDuHB518-*7* zG1to7xzBcq;T?x7!;N$%gUdf9&3`^!(G=Me6!>Otr`CbLMhwypu?PK&8B6v1f+BCe zFj{@XXMy_Xmv>$5R2kl!blJwfGv&eOMH!!0>wnn4R7Ajjp769YEqo=StT$4aI!yx7 z7_(GFm=0X}yQSn}+y)(;ZU^(tfAGKsS`v2DEsWUP89(PA+%8z}%Ftaa$6{vODg8tB--P?sUws8w|aa{mfLm18n%Ac-4wLBX6<*E6LVRa zZ)_4T(O%}YI!pJ!*4pXG_K}TxOtJ63mI^Fex7qQZ`K(9BsfAZoY*_y)G8bxtt=6@G!N|-d<_U~VR-ZqqN$78Dl zK3NCqUgik@uQK?4Y`?4KhKBr=2j4x9WBteZL-2o|#G?YWw>_r2a}UVtJP0di+_r0G z=47S}?VjR;EkBt1M61b>)3zyUcrCQ#op#e1Dt1kYkRBrs9$NqZicP5 z%DmP{>B>yy*m7~}+ilsem-X{#c#3jJHO_F-W1YydCvMM#XvhB3fq#Cs@IH7Fzd7-N zs#aqTa|%n5wZ%k6w$DF*-#nhNcUimp?zL45|1rDI&*AAX+g%eIGkY2P2I+?K;{|Ll zZ1!<{Qf7|G;5u-YVfu&fUrid~c)k5t5@ZTKzFnx)aI~9~VX=Z$PHh&@CZST8ByX)igmkXEOW%^%k#kYhp zhIvJ9^yD>h`XxL&7QNW-v#$O1@76Ca3~8JTSk|x0kz~wUw|IKv|J7&K-~1`Be({%b z3~lB6Ilnb9Y;xu@kblH~asTo^@iIXSo=hup|JJX1 zbx=U+=U@Bk>xX8WO>6yppn)^jQ_4xsZ4tA!S;Qu{+wZoVv{;a#b0Te8$)+0?*}G1h z`SSmNo9**E%Nv*M*|m9^f#!eUASB(J9y<%X>sTZnpx*0iOk7%qmPVe5{Ohd#!)f{fc*)ul`luyWV`q z{nK4epLQ6yF`QxC$*?8r^mk3UxoygoyH=ZB<`0``uh`Ppk+Hn-@QO)7>;+lB92h?S zG28cj3Dbv{0mqN;w=v?^5Oru}cwP9%QKDmiy}kGZ-FK=V*w?K5E&X->vHl4U=3m?3 zA99<`LSN^v{;Byc%F%K{D_>S0>^-u?VH*33zfPt)BAsCeN}e$6G~WDrmptpg!>0@T z1s!@g7?^z2+P}|XIDT1C;ai=geO(HV#J=}@{rjZF0gM; zpZ)iL!fF2tq7Pg==5i;1tE2RR6<5Q?Tcw*Nm^aK?!uo^JUNR>|*i|`^nKf_%{}t(Z z(>NxqpJAs_`T5iHyXN_2_V@bbtLNQ+vN-Bm_gvzf(JYP?cRAc>}aNif(|?HTJ-&)@Z@mNqASTwt@~;g82^49gvQLm7XXIjpYU zr}W(Kkl@;ikXp9v40WS+G+6y+m}TJM%VHt#1!55#Y@X5b9? zt8Vb1fRDMro4CRdbuCTi_ zT>QCeab&-rJ2R*K^!keIzjn57t)0KS1_-Rke!8e?RuRLt9^2LBH?x~oey;GI@P}c( zTwC~ra{nGNg9BMno0S+u7$groa@cdxMuGi@wNU+?@7fzzFD_nVxMbpi{jU}WRq)I1#*hE)MM5GO0`kp%2p4{_{P)TAe4@oc z`S)uReg0jXt;kTy`lBL3AogKFv$L||U+v9bMPgFSeb%p;H%o86?iz5aBiwDn{xlnfyBz+P6&cPjnH<$}6Z)_&LAEY{VewNI z$E{UYjnw8olVOY4T}ldh%DINi)SLDNA&N1>_Tn(+n0xw2~+-bq3Umv8dV zzQ?AU9G9TZslavP%hwOQ+cP&dSpN)GVtCH5XO?ZZvBN?B`b&mAd`^NavIz}ed6)|l z7`}DnuM*l&zu=nvx_3{mzTWvas8?sfWC4Z{h8~8}#h1|Lc|Hi`*On_W~r6B-HL2yuufloEVnt!@k?6#O1FlUE)SUA^Ez@}xPG%aEGmdWsp0f> z<^m{`LDmsl|OG^T`dz+1DnlphSRBB8zxH4*zjM4!EY_&!}_Rd{(F|YSbxMk zp6l>s0mB;C1{;2+B(Agjd!Ji%zj)m3=rKo{Xn`sh5K>Mevy)W1MJ4f9z^P6kb^SpYVaS!8- z9*Z5m{fq)E8)opT{NT(#!4W&5SKl;*a^Cja`{m@Gzu09pGmwa5SqqdzkYk*Ill@@Uwec?9-S&ly0|}wT$)0 z^Wf(CK4Aw>2jQd&i89+R))xEA%*>n$^65u%7z`A;I+$AQ4G-LAU_9`zbMJgD?*E?~ z?$j?`<y=p?e(Ntg%G&Y&U(IJ%mVok(1mkJGatri?zm;x0@w8t{ zTzq*&+b8M&%g@|owVS%xr|ZG|AO^PjC%dzLdb7@O+0Ib6Utd+B%hlPzyvu36@PXss zGi;es4*WYglizP~V9mQJnT_j&IDYKj((p_5?QDs-IVaP^rCR1*KOeQsoAJmN_9K&g z5`)*&?ffh*%sB7E-&=l;x|(sjP_eNCeOZFY_d z7Kgw2Cw&k6-zxPysLei@!R)i}-PtFZcB!73UlnyxH2Syyn@0;-;A;WOF9>@zEZ^0% zYhq>lgU6fY7#;q7|Ha?=VgF|##t^;}T?}t5y`=@}S23L^^q+Y1>%7$;j9Cw899ZRe z&gB?Gh`^6~8e$?HXa1ZjT79}cx9*#|vuogHh8Ttn6$kCu!XN(O3~3Mk>b=?_@%zG- zWmfxn7BXDF!^X2HU_E1kM27L7#~I(hzWVWf@~8hyQ%#syuAbj|%;5?{_f6eRr!^Vc z-dh(-RCk`V_hf1bcYO4+MT;%q&x={lWM6X|oxRG@P~QCQ<_Y$|Kh>V6Hij+eV#tzy zP-DNJwXBepL$kX5!}$;4i{mFvy(hr=V1<)IK(JcFvbJhFsm2+C2}}Pz=;8U#zvt`Y zRMm8rgzX+yeKr${3oG{FdXtcw{5vgJM+%j)D^n{ByE@6!7X@_+rXZdWrNt6jxFJ*8% z-Lus)(4%37VS*~tlfZw!nd%DaTk{{z5cYI1)nsU0%b?@hz~NHeu_I9M_}6Fbjh-nb zEldSmK4-Qq|JFEx;YdSSP5LbF^^Ur~4_B9a9sQesXomi~jbHDtue-*wV25bKQn|}L z2mc%XaTS=cm{Cr!A+i4KA_v(?ZsFn#dtA2U&Prgtrx*X{@sIC{-?OK9A7!nHX^U*A zPvnXazReKLzT-)8iqofd%{}Koem}yoBa>BPukxSl>t2kz_N}&2_&Vj-+Y2&!?-^5n zxPMNc?%m4DSMqELy9=X$AcM?Ilrdt^@iSDO0$Z}=v*B`gn;v>CjG9;B3u3o+D3F`E2{4da}* zp?b>tW=+-!a~V7u{0}f(j#;M~kXE1bQ(i>O`utg4hT?`KE%%ihj@DN)ec+mx$FwZA zL3%RN2b~62#)S-8oDRYbb_FvJH&!^C9F|}7|Iq3AIt?lgzAOzzsjnHPn=v{x-1t6~ zZO3OL$L-RxR#9RMA_Zv zKYL&3M`|l;0#iah^MNe?e`{~D-BDp(!la`4z}1D};}r!So<$k^n6^A-O=ej8|KE%| z_a8mW*JAQu+_0T7L6s>%kYms7>v>1nz*K#;r;$MvDx{zEyQBY z^-rG^k(9`^?pEI{e}{XZilG>wCQi!~2E*3RI3< z+$Y??^|;r(brT~?*y>U?4b_AH?X};sH|8GvT$z&B^H3q9$=S}AvEUPXj6hA$!aoIB zD(~4?zc=s{?6_RU5^#{YYII5pmjP5*9xn&HJl_L$@b(W~{JdY(3X`**R> zf9ikB*LD4Z40rfHv%adYtlsnZ8iN+2LnMPrL+4S3k7{fY><9K6r!p#i_E_M^km!(k zz?fmdssDE#d=F%I;7^%X67yF(szLISnTCT!{T|*3MurzFCloUssDFAziD6p91l5F3 zU%Cw9Bx3K zAA%D(8m5{t`k#M%YS&hO7J~yqrGnw^)o`Ifw;|r$Q z#_L=dn2Q*?8157+T(wOoKematcfnoODUu4eChyl`^N?iVVyX^0-mr~b!^feSAtRgp zgPiPvwZaXr9-CWU4*qt&xM3<2!<-wRe)r#hIcJ4Wl%>IZo{!%R4jkMk#;`~39OnTu z`_tw{yONk9PBUKH*2c`dVrKpK$H!$Y7^65k{I1(JoMrI!J$=`R(Sq^DIc7gDwuqOy ziqc`s-#ZxdR{Sx~)Kg!o7GT_PmEEi)>=R>KLxtxX@mCD7OaZlfChz)pgX7$P6?O); z9lIO*zxbIqetY{d+ws7glNuWy-LSXXY|N0(ux(Rt+_KHlcUg177``xgFmy4!yYz)y zpLM!KLYx`n-L!uv-5BmA|GlgCVC^i1(BqztjM>pmO0VB+uw`N}Jiu$#Sp2(U2QSZs z9&Que2MqcgW&Mpgrc>B?e1AIM5#BP9vBryOk{RPi~ zvd6iM3|AV?${kpK)q#y+#)0+IST&3tE;}~dq}>?6-Kgy<>c2 z#C*lxn%_#5$)bewK-uH1;a!Y!$qWt-I^Wqes~z%~7Jt>7@G72#aclg{jnf#d7;o(2 z{P5&T7E{>CJr!0H7#~ERXFXuJa0XM2BKHIFcIOB+2jvBf3?J+kd@r$l;4aRX&(Dy* zYZ-&|G^PNiMLNHkRyQgzOk=G$z_99HVsPMtgXgrXW|BPsd9)=i}2xp!LThrPYu1Ox4^=}Hx!^n%zSFs;h`k*q! z*nyFun=$KLQ+fXmW(P)#LcxT!3>T!E))*_DQd7|P`82r#Z#&&Z&{#gHf*`C;EZjvl55 zRtK!ywr4XQ;9~L>e;_X6@SNpS+lMtTm~?qNym}ujieuQoa6rpIiXnWj6~hNHMuR76 z3KtC>c&^t^l{kA2jol`4db;pDsrVTROm+Dw%_`eWkKV`Zww447(SHjNNiAIe`MYI zQFmHoKVQcwK?XM&myKcq&HWd09p*A<$gwIj7H~TFT27dAgU4V#`x3@g%RCtN-Q`HR zz@f!;U~2+fL;ij7bVG)k%bDKqu7>^(Vt-K9cx?$oJ`dvzwF4ClvGw=OJsaLJPm^SF z@MNfDNYr#_;8~!#K#yUIFAE1#!6P0A-^;5`vp5Jj$Sv3+qENG0D&yt>Ze|8G_6$E4Z)Mz3u-hR!w1JiTfXbFr`PvLI>TBj6$n+Drpl!&oh4IighR(!>P+x`{ zS9dp@ySJNTha0yCm%$PK4Gf)44Al&8m|E92GpySGUpwHyjWmY);%XcR1ZNmXWGt0q z5bD!xfXb)oKCS3?2@fv{(25!a=Y7?0BxcLt}*l?R+DWm5>hRK<{A{$n}I)B}1 z=dbH`nNLg*bx>6B?BNvH$iODh`X}4)gd+C_Nryn@nmJry4H52*98Cdfx3BNF5Ry74 zRQh%OStbV_iA`)RRvbJg%n>XPeyj2BI{$?IH1iKDjSm-D*>12;V)Oa1^@bT&)_a+~ zNlXoopWJaYFpXm9*I^KLu;A}yZ#fnhz~3Rj@QGu={$jdkNcZ-Yjq zzF$0yCX765W^SL#d7%5rxpSB1Yu;CS&9cCbJAsiwQXw*vO@M)6&WBqJT)$cjJOU3~ zkDj^mzxlO$0?iE^vJMQ1n+zMBSsT{+9MFs9?=NTiVkft2GDG&ahVBU_2}UM74ss3) zI0Zylejn|cz;rMskRgx5kwJlzfwiGDf$oBb3_pUWc&=RYz$H=jldm*Gq(ZR60ksCk4M*oOm@usR<;5^>pWBVzEZ+kH zul$7snwVG$?+Y}X55A+WlyH9gq@r2Xmsw&J{<2<+KM?*(ui^cl9KQV~g zhX3EisKCe&Qn#3ai|H8iujR{kec7j9b6MzE&?z1hg^ri`9SmG-2aYx4$ke`vk zZ!kwEYAWM~Y8G>5=KrgI?Pl9BQKCVDL2v>CGfUw^#)UU_{W!z)#e3dU7e=0jCdOYA zScI4tY-M1}&|Rf<;M_+BJ*^g&1FQ^R%^BY}Ft%m$G}toCV%Sjj;%|(*DKQn7^;t9kxI9%wp7GTVNItz*kZl#lg_n z_@H3!T_vVvci1mwIV`!(bc5M|^-R>g{Hrn!&zF=NHf(&elVL}v+JdLLZB-jMUD#eM z=5}Ed;Fomx`_68+OpF%8iT|#5lsI}i0+^mTE|6r1H(nq5_UD4Xhv!M1?oK^Fm*u_$ zgAUUHJ%dIwgLmAE7)~=zlXOs{TWIL5M;om-gYrJaD?-ms;YAKjY!`0?X= zp6_p5-LJ?{p}^>JCDG=&ghIpChJ9)bAr0^U{bFF~3Esq5Cd9zQz|oK|BDCqs^F?3R zMR64P9DZtlmN6ksLLoA}q2n53$X`(gw^z=++H4Li3=;iM(cO#TI4T`l&TBokT^95^MGcQm|_YG7<~^b{~; zsAyRDj(M*a!;j@ z!1(J9+Y38^<7<={_-^eE)fXvxT*E!C15ZLJi>y5A_r>l>AAhVbz@W>`;C!3;%S6U5iG+|148{#C!ZV~;zMN!M zU~S;uBEb;5fcZc-yTggVf(Z#iE4(~y7X+~7KZ(|9n9s%F!=U+%=@i?FPudq2uyZi& zl{#{m@xf9yM^&~T{z)nf8V+Y)u1@-PTmSy~r=}JRYxWm4%{;^Uj+0UNL~O%RhQqF} z-)1j=s-GvbMeKgpuli>)4!w2r#hMF#ad$I(d4I&@_o~zVeg=~}BrY^GNIHCP{IEBD zZ7cHu?-YjB+$pRc9SjbP5zKB9|9e*ay6^s@a&BsTB*TZ?O5No%SiUwgUVFX%mjipl zbPKUmh8i~}1uh0Q1z`&-*`H#}1$-@X0m2Pcyfc`R0=F=BemyJ85Vwd)XV1}QH3mrs z&z&z`Pi4S}5u zcB!ArZ0y>1*84d~)SumCXUwpTF_rhnGfRd&4h$7f)gBnXVfWQwTcF19YCY$IgocaX zvuEmdGMqc^!nnawp<%rulLOn2oS6*giy0~kxjyWQW@3nFXwY#`IKj-3!R%`I*_7pz z{f*tTwvY5|__bta)y;&y5m;}En{{L_O=67Uh z+ncyFKGBstT#~-!d{-Vne_VTCE1J7Nh3|mI4$Jr2Ygz8@KJa9HeV)UfeHcW{<5YEK#C-1Oj zLfUM`>HhhOX5Nm)I9{TQulCDAHsU_;+NwL4z-2v1wz^#;=EudoUz2 zCFD9YY;8_|#MH@Dw1^?KLHy8xhm&HaZF%yNmw5t9#nc5?lY&;UxiGMtVPIm^X9-!u zU?Je9s<3Yc=K-cVrPuG17%ny@Gep*zH99dcG*}1<&EtHtN1$QqfvIPj&xkPoypqgt ziD6sAk$;-A8Kr^W0CzOu8dx&Eb(fkT*~k10m6U>Q$C>jBL@xvByZ z3B^{Ni~>A2*c6xxG$kYs{9rlohyT3_lfstQ@9mfym}4>&J#-li7``#t{Ccj$u&#QS z&sOOZXBXHnk!;~Pz;eKF!u9%1eP3ynZ6X1$)XJFxI;LlSNVY(e=yCAh;j}p@d)`TwC29vEk3C#)-46j&26Bwl< z>bEdxuhCzx3JO3DhS^LnBHYs$vYu)%7iiu{Z{XH&IJH_&K8Gno%fwyyfZhbj1yg>@ z+d8~qYc2cBEa4z@;PdR3hPA~F7Q8{e#XEo6d#e_d|6^iV@N|Ai-07$FdMEcKaVoGi z)aQi$5)!!GxX`FUj^D-j;2TD+qYOq4dE5sJde869{-q_QAmdOV@i@f5m|;3&m=N<; z0TD(41?CGjCuUV2lws;%?3ux!!}9#ztNlKknM4^R9Wopg8kiH+KQvf+AE;5|TA-+4 z5CfPc9}SEDljP|FxZ@QSuu^#CsDic z2JfY-?bo0F;pJ%1aA0u|eZa$I@bvzw3oIL0e7yGk{n*dZpuqUSM1pI2r9uM3JdTB& z0@E4!7clJj=RTb&g5860SrQYMCJQI?iK|ER0urw0_rEJ)5MhvGXJj#PO`NC7x@V8Y zzxip8FQ;}gyjc5NTyV#n=*gQ|B+fK`zR6Y1c!q(gsXc;=XARGXkBt%s2$n zC@)_6dDnp?#shyBvIIys#QpgG`rV%Ot&BSa4BR;*e)2FdbQmf)Fm$j#FcPS4IHt*9 z+H`|uPf7;kzJ}lL`xBVsXR<}G9($e_X2@W`W_DJlc!5Y$3*#=1h6_3jOa}xRlpVMj zqc~2@WoKcscyoa1!qjDdSASqodQfyvl%Zkeaz+v6Q=6`YIixfgNH+9yE&sgmjYkHv z;R2%|j!jb!=rD6{h<^0yy9n#=#jg%rzg(H`^X}UIhh70Ec?47yYS=D(ZroND-XO?! z!7HI{GeZhv2jhot{;f=x&hDIRdWvBIBU`e9Zwmvn3q#9U2LEq?jM298Z4w8hIZjPw zG<&{L@4uk8^FncY{y!^Ipq!3}QF9#$46vaGv?m zsr}#XSMxE=UNYBwD-(mtg3J@F$0UAmGc?S5f95=Q^o_L#jh{2xJvUEP=x&f>IKWci z#JXVq;UIy^1~$n9%Njgc91id_@PDtBs$k%0Jj%e+Fls!rTaX^F2bsGoslJ z2ow}5KKNZeo3Z@lxflKuStRxgBvdz^V32~55qQhe0#6Ct1)>YhpKE`T1 zxK(*y_3^oZbZ5-xsa7|?lVM<%Y$a|i-LQ~=Nr^~6HtOu?bGv+WF_cI1COF10)*2g$0 zgYgi{fuxUiIjpANc^vjSFf~Nir!eR+2{6oHWMFh-Fj($2VM=2Mvi5VwjXXM=Sw!&P1~JfyIkOb#)EVohwJu_ z8$UW4AK2~9XdxbVm6<<*@q#vo0K;QF&F5{L30ay4I=EwQ<_Sz~ek9C%D7B$HuHIT8 z&4TsGHjx>r<~#?K6%!c4i-QDp##S@ zrhS@>91QDpH66a$OC-EI)-;n*iQ&+91`7d`!;J=481z}IcouB0=i<7slIaIeKqu!0 zxdv$_L572|ou3)r&tuo9NDp`$<^<=h4)rP-ObkCH_J0y! z+)%*mxQKx**ui!MbL!1Re})(R*O+1qnI#w-v{`={HmEs$S#pA-;RA!hXN7|Q*8CSv z_$)Xn%5?L~JjOPz1jPyb$p^Mw`P$DTpu}LcUZ6+l!?CFkj(Ib#6FR};@anwWf2jqXRn=8!NGl%WM`YUz}YFSKbf(#EC7krIoeE+V28mwtX z0-L@#FWAhWyk11(twTSfnju@;Sq34dJ(UdexYlMZYhXTK{laI#G)6;~CZ--XHGyD< zx67DRSzQ=f&MWk1ycW<<7@00Uvl23=eGJ zTvM8_@c#FLwTa(SG`282V04dSm-zTezAlJ8fYW2r{-ZlTY*_d181tDevK`jVZ+sTC zFx-*(rFr$R#O*0H6HV4yvD-7@JLjJSx3zLGXtyLZ(du5`TPYtx*5Gc zH0V}1JgYz3n83Knk?V#Q^8_{*1{N9S`+r3mm>Jz95@y|&m~r(DlOW6W?Az<4HZjOC z-}%lY!N}8ScJugpn>DW&ZdG1*&+}kS#GcO#>^_Vfj5a!P!4J~HC$V4IeztMDoP#mL zu?CI?2F8T;rn~PF*06{zVA#6dutS64d6OkujQ;MTxb&+3+Dv>L4OZ88e$YM3oWYYZ zIrh(~!;>3M=9)|Nx6cSv-4MohBIQ+bvbW=P?mP|!W&<78U3VMH`rWBSo3X82=h8w z28HcB38oJgEKT^zpuL8$c^@JH6|w~f$te5xrYD5S#d zllPjzHTmD^d!lc*<>~}VtjL=+on=Mi1G}e3)qGxg38Y?JlE9>=9n!<}@EW((1SVmf zU;pDT&Yd~;Ze-WF&ukHDZ=EkKfA?`_@wqeSoUDH|F@8~;EoJb9iQ(O!$=#xg*@}!| zwRZ#r3-}bmSZ2yPJ}NSh(JQO_ZM;X8=dnW_=ZB^RA!W^sj5qiqWPjb@%8)SIaha@+cf)Ho)7mQxiAD!5YjDO@@f6hO*Z=#v-Z<#Mg+7S`Qy7;1 z*`lBx23rg8S)ErR*5Lw!gfWA?)G=wNEnCC|UQA@-U~rw(>)Pz!46A@ z6?zQ{3i)l4Y#Mh0Dh@H6C|mz`r@RNV$aJNEn=%VFlx%U+a$A9Qfw3ooNBX6b;5RZxiOQc}&v3 z^7H(y&)s@VCm41HH+C@SGA>~G!Lwmee2J;Xu7(Bs{>MyaD^P7{Z!$0QUr@AH!RCM7 z^7?=0_p&*JPF?wl(_t3FL54J~iqfiH298(1LyZ`2GE8dtQdW^A#~1qUkMJ7C!@l>O zjaTS|6uo5Xn#gS+!XWiPgi%0@Vci_wFPjstGy=de+p5x zV_tH~z(G}F0VB(ShyoUe2$m10uWE1|Rxk2w0>)V}@kH7+m_@l#IBPHC_Z6q&(m^V7W9gV}(2i3ZaR z)|5WRiohd_wfNuj*VuQMGU#(8u|>?((O^<2V31kLZKC?XuctZXrnvLBGXDb$%5L#Y zsWEl%?PK0?@&Twrqu|=$-L!xyLH_|C=Ywv6#uR2Armn{iW7HmN>?qM&PXrIKAJ4X#pGqCQLO}2PY6S9JFNDP6)*}iJTyLF|IcT^H--mHj7%?^b|3sM$DAU}a6rMsz#)>0*TFdv z)c<*~fbj#rV8eBuQ;M8gM{F887#}n}NQmR#mBOIR^x5}iO+re;2gZbEhiIl3MK7js zJjuK8egE0dfkDhmrZKkgE|F1SQrPhRdiLi8hi=se8thHeYD{_NaR(?1W-xyE{+*L; zg5`mzmV<(zqHqe^k>^T2tQ*Xm-&~J1a5&F1Vc%0GC1#e>3^~l-+;4J6d}>y-5YduY zAk54d#{A_HYXPglXNHN4P5O)iEItMe>lnFXukbRcnKTqL?k!}D6Uy*ra6c%>&{+GP zfnn`#=^qEqyJm=Q(CO-p6|=p>a94uidF&x`=QX@vvKWjV_Q*(yG1oY;9Z=YC@7=?< z6&{Q?SSPRr2=i?C%(&p(?v*ngq_|47m6RBogd6AUFmH*r=45WDg9-+i|pw<#3=`}Xp| z?~NRLK1w8%|6^p15WKJ^Opu|`=s;QN71IX!9!0hjYq@tU*NO08n9l4VWb&mB4FOz$2(?*2e&6?e`qw_C$U73fn@?S6A!bB7avO|$DK1a3|oHk zOB`@u&}(;NEJfBU!v7y^zLb2EI1J+MPkz|>&}gN4ilMh3E!nFj7!sJ5XEmfTq%s<;C@Ql%^f+)1i&kfYmC=Fo zCmB{S`SL9}V&RZp)bMjo_>mQl-^9#RxskzODfq~x!R|jtgM%c)yf0DAtOCq7JA@P@ z9ZZ<_pR4q~vBBcpEv@a38RB>~?oJX&X?VfZ#KIuJz?XA{r6DM*;Yt=mwINT$0mcO{ zOc^vdj>vfIH56cA5s*~yVY~2YO=iJrW1$9N#&wbp`dhNtDiRsqm@u4D@;u@)L7b(4 zH)9cK0C3A$`Ri5hTRG+=HT3ckI66>jrL=yo1dFkn*fU@&PvX21~K z(81)%{J^H+1#9ixyN?`Rd_V7O?<{_TzpcVKQ4UmUaW?cHVaV2FJi#z^EkowQ8u1$s zBR;(6V36R9`?5K*mtn%{B=y;h?Hmms_VLRvmvp$oaMbm{x#rZn@29ZT|Lqr>z23)oiZn;uvp&Z4)VdZXopX$)&CUGMFeGC9Z)$oyvt&jDsdJ&sqK zxEXGIuGi*yCi5WnPraN9vjuNJ_~ST-SJ@4I+nBbn&5`A0sPK&l^!eJnn2lpMivV*1 zr-u2@CHy5kAI>mHv_=R{`;uVloI3RT4hbjZ(gHmQ;)${-L&ob1{kVsh0 z7%=_a(*vhx8t5@z;OXHJP++(x&lket!R(iEaAiBghsOWU6$*AFGL(d|oG5#s!O_9M zafg+G#Yaqs&1nwz5}6IJt+*S0uE}3*l*)GC|F#)(I6CwcV%Q2y7nCtGim)y{xw#fsYC`UGiXKx>PgItrrFo!RQc@uAmb7NO-LQ>y;V^0H}b|&74r<#+R|LGr7 zx{%)ROoUNDhGE@(`8m8R+#L@@^CUDmOki*?Yy5To>E^(rJ7jMhOAFY*kP#zNag(Qj z$Dy5{=YZt}gZI1)R@qD}%nxET^trlu1hg3Z^w?J%H*L^3@Sd$qkNpzE1+@l-1VsnE zgeX=whL%_+J*|ckM$Ug<9`EO2kc)q2ZNS)?*zl%z=7trFbz*EEavD+?Zu1_I|N7kW zsl(y3HRi9i&oq8G|99m9qw?ye1(FO5KSU-U2w+smO?bMsc`loY(1V*t7!LnQTdB(M z)FFyF?OEN9l?>}xHgMYQ~u5W?l|M1~->I8hwi$ z^3^nq4)`BoSlYq#*2d$KA?pl@2Orb+z0hT_+AkT>Be|fLM?j6CLZjgBo`Vdh3>}{L zHuIR9OEHK(arh!0#d71|ht8P_DWFavqk$;v@3RaG8FP6GtoPsjYP-u}1N%)24k_Oj z0p=q@0@uF3HjU+#>Sd|CyI{)V2j?UliyHg?&*o2HvS4!%ceuOY^h|+RrfU-!o6;Ec zIc0V;^fFxJQV?IE-N42$i{Xgtvs{iH989w!n3_@>fNePI8axxU$VPKdRAJand_SX$;p z)*b2H3)gD0e(hCip0)7qt_vlKMygkKBpYQE{{KIJN9n#-&Ug2{=9)6eSHZaZ#n<9{ zpXV)J#hKoCzW%@O`~Qo$S3LO@@P^5VQK+WQnMo#HRpC_AYsGVnI*esESnQe@-rScx zA-Trw6;l$wfx3fPW9QU{^X3=BGDKL|ycaS*V^DtXARN{ZZ0#s~VNLjAfrd#AHUB?G zX$UEBEBG?bx$AdhYUYC1%)HeNg?AP*%>+VI=yZ(;~iKJZs*4qGMD59g*7i3ACT$949J!aH*OFR(iCne^2u z=LEdgmSfOi;86HKS^e7`{ifE2x6dBkcDTT>=U?Je8-^ncxdpLIrs;24xEt@V zMkVgZd?2vPLBt{d|MLs1X^bi{OncZnKpFC|F+Z~c+l&I42H%F&3?KfPYB*dKKg=M> zn!>2!({Q~);>LyLi67%MI2W|WPEh4e=oLMnb->1(&tT0}RYn8OxF_1pmxK>IvboQm zc}QCM2-6L@^ZSzTurE@(aINunTQGwnLv=%i{*L;ar!*9}6ejp0745t9t#x9TjWjhq|A5>l8J za9+7+F~i$IpCuxNafxQb17d%7Ki1%^TcRewa^ZlTg#CF5mMs5|tdPdoXi%LnW&MlT7?(hM=0d{Z0*P>ln{5FJL+L zh_g7sM(&6iV-jP}RtBertpW-k7-lkXaz8lbwcs^VuIu*oQ+6@TV)YfCEAY7`_QB@W z3<1n-+AIw!63qv8yY90z+xdLE|3gK?>u!vj1Q?_m%wxBtFiu;3J70evrvtx1g!qaZ zEG4B^1I2O}8$c1~%2e|#@j$Bhfmnq-7ZNXQ5N=zcuff`o%kYBf>0jr51s0Ct20P&g z*98u|P8B%9u%cOmV{*bahW?2Rhx8l_8B(NnY~(n>v1?aDqs@anf6W6$ zx5Nb*AM6(JVmisZtGl^MgK;LqN$vxxjc3m=JBVJ;Ry>gD-^^g4@<~;IVYY*Apn|}H zbr$S5WD-BZY4?9Q zivXjDzyVdqFoqPy3fUBi{oPDESQ^+Plo_?Qt}Br8P*o6C@MOBf&a}fqX;m4=g$+VZ z$60m@H+eAdF+4uN67YsGE0Z~g^#qeg48vyaY70iguW1g=>ufkHe?1#$-#FkN7F5Dz%1(GP38Z8YrB}S92@@zo@OIjIju$34yJz0PFa`it^p#)(ehI&ju$x~A><&; zc&%%9L*Mg*kqrB}7-KjO=xu1ez9LKJL)IKNY3&C0eR>)q3??0SShK>J{+MjAPhtEc z#I$1{{{c&eZ;g!%KWY?y+Y|_iY;9aH&&`HGo_`|igf$F(n}l9)UYN)kutmt_{r#T) z?ds*}FT{!$yq6a|z}jegwrLZ?C6NQm`->YG7%s8CdAd(Soxz@~fThFMA%W>LqvA;} zg&kHmgc%qZxCEGHT)Z!}=EaN$g*DCh+c*|9n@zZW=(nAM!#@)PS4JHrrkr%`L=Oft zMgbPFwY!Zj2p>og-N3Se>p2lJU2zA)r4E#%w~ z>(I$!k+X?mQtgK&2e|n!?9f{vcY`@Yp&>?6lgU7j-HGYN1(qNo9=Qd_xhCxA^^IhZ zU(?Eb=4~_I0igpYbSiEpac*F$P+*zB`XN_g217w(txJPWLkMfZoN~qsha=fPyf-ap ze8VX3${@_k%=?sqKLE6%jy1r8A%m%dLH{0e3ZsffL$#I8w@)1kZy2uSFq&v32=VWT ziDJyz$ztOnutbtEyOm`FlLP++`3y}9ZiSQ2NbUk>3q@5*aHv z75FWs3ij(Jik4Gfo9EEpqL4H(1H9;q>8F$gZ; z=9s`bAwx)oySAa;P=aT4=aF~$m;BR8it>=B%{j3MvA zy$v%MdIc2p7!?}6f1klHfmM1Pzh&jAsno-KQM?gi?A)0@O{;j9GeVR`{zshxgpF%^E zf)2wB=18U~35>sd#T*Xt-;;hit%;fG$~ul4@|jwUc5EA%Ud)>xZoyq8asLEM6vGaw z2FHL-PX(a|$A9XrXI`S)uz@8&;6=Q>u!7Km?Nzo3(i$umqBs_0$lTdc%b?;gk9Dae z>mmle&q56>FOryEcrg6+HvJ)UU;}#sH$!fNszc}F2hL&+r~t+B9(UG&`K-R@@>i zC7^J=X;LrKdkxMxl??n0-xwB)A2{NDa0au)bH)|i3Bn$h4DXxgeAZCNWQ_UFF!wWq zmoQ_B2!q@KE(dox2V+JRjul=?3}>3oO=E~;SjqJu&97nA!nGgtwlpqeh*E0UCi)<; zhf_i90DI$~+yXtums}5cSY9k%z4+x@?Qq5h26caiqbwVI7d%w(@K0dsV3@n8wqX)S zgRg^_!yzV%Q<{x+5-OJ+o=P3uz>*Qqlp$ermNP-pAy#2pgZ$5q6-QVf_%g&u-+1`? zeb!OO3A%3u8P#I%?Avoifq}X9fe!m7hK8vDx7q4GZ(ab(R0lpk$gS~-(G_~2rl7}Y zZK1MmnNULg{zT3XEDj6?jN4+EHZe>RJ#c7h!&~qE_w&;jW%<4ZG8ywTEOqe z?auw+*MV%g1uIuFr!Yk@GO*mSkl_5_e$x7&{pab8C+)sFif}M&IJ*1Qhr41oeOSSREO6xhg_&5qM?aNW$H!8q5aS)Y@EsX@M8n`t`J3j>ZE74{^i zCwc}SH40AWIvl>N@Q(Q+(*karyQiEyUbB2S;QL^D1mlk>>o^;dos1bTi86d^{M+V} za6jU=A4>vzgD3;%0j3Wu3M_jhZ?bc8G}u1qzRz)n#lx19tC)eaIg&|;b^f$srk)T6 z0R{!et)E#qk{WaxTI8)%j|nYkSGbVN@=>E9o8c|kU^VSI+W9FQh%1c#bgyFz##dKFHBfAhqYjcGo4|4b>UUd>2>(#BYQzeb1Er z^gH7>*8AegtOeSp3^oVE^O(ycm^N@aaBDaUR2;D3^044iVH9AjI>UI1fkBFKf$#R| z){h$){+pNzG~Ba$&#duwHp3T&qA;5y43P|+?2P4#j8AqmY-{-DF0Fl_BU|T#v2cb7ECEQxV^k3IPTt1%8cKhMv!_{A3uE7Top^V^rT` z^Y0|rfqn1yuMzlQnJB*FbF9NjLxx=kWSE!8vD`6WtWf6BVc1(&*f@>hmQX^b=!YLB zzAIXU_xu(9^D;C3jb0jK?9a2V2X}J+VZGJxul`N!?Y!F_Vl5jL%p!HtCU8!uo!BGz zrlF|$i`FvD$S@n3N!rFLu9v19yT{PhB5~q>{o#4u=K7oVoX=ViUA6g7$*R{Oq4$?? zPx#K_wpT$wp+GW_ucWTc_+QWSzdxrB z#yC5jwc+|>8HNB>EzUzCC+F^1$8GnZjWNOJz((c=+*j@A|D3|=U*Wx?#o>VG0;U6u z964)!Z!KkbTH=mI8B(_TLzG zC^Lj6yk?H(xYM;E>iBC3!3};Bn4;Kr>@+uQFk_gp>%xEam^u}P=&AF+wTAaqG&62f zk`XghP}tWYEVI&ufz^?X!HR{ki!sLJ!@V1l%$>{UHh#BfdGx73>_-MGLj#i_15W{? zEW<1N5C0zjIxWw}AeF%|lSPo(fmx#3?CSr6bqw+U6;Ai-v*qx)H%4pgZqn&9ZerNd z&?3PQb-?Jj$_WoYocz^lMu${=vyMjeAXJI9ZnZE?4DKa{FE@OYtIK+X|^$&Z^f52y(r;7MpY zuvq@R6oUY>12e;?_Dkxaza&4){%AT9FV51ytgFEDcumVIX6BS7Ownux3>TbO9!#51 zoy72p;R3@O?GK+HyjcBYk=Ka_M_(_pTEo=-i22HX6}F71hQFdd4U7$H3eR=qIozyOkh}I&R9S=0y9|b{Vkt!n9&2)z7#7#Hk`*rG$Lb z7lu5WccpQd=q5Y}39mG9s`5qM*DF2SMk%Nk2ZKBTD9yV!vblR zd$Sb+R;#QiW#l~n-{)-ooTsU(UE#J04x9^K%~##H=KpmzhGVR+o-*h1zw+m4xLm*X z6u;5_d!lQYcHd@_f9}O}WeQ7K?1E0lFH8>S%oZdz>@faa_~z6k7l(evRR#CnGHf(r zT-V81^11P@ipEbKmV$$}3}5#;9k970-Z(ue^nE5n7h@DC_71Uau?yJA;K|_ow|w_5 znUyLJwz6bcIb2F**sSOy%&>tsBShgC!z6}Tzm!?pelzTF<=ha=us|$fdv@b7)~u(@ z(|4vYENYlxt8is&nAC!MsgL&XH{@EJk1K76<4K5Fz^BBpzUN&B0}I2ghB|HsL4mgA zwhRkcZd}!6R++>Y!E{GLe8ocE14m;%G|KW`5IC@I+H5B)p@bV*4sksDvaT_GmR`(g zD*35pLkhzkzJ|aL^Ee$iHgMVez30I&ajVpZ{Xz*o4Q*x)Y>Z~QY^jm)Ebly6|J|F; z5X3CR6e6&OkBy0WMzUko%?2|Lk4enB44V&}&1`4brgXwecYz^enx==l^aXAvy+^ie z6U-X;Iy6~wm?vIaKfOtc%|OjTS#*au%Yg%5Yd1B{l?%APk>kOyeC3H(O8=JeB=|Jg zX$j;u+~;R{WXtBjvgSzYZKgTm6I1^3B}{AjlF|@wWp+T$TU_A1F6)E#kOeLb0tdW5 zS+Pq=h_6`6Tah(MVH4x}rUu!y>?uo_Ds5b@g>yDs-|bkTdtnXBizQ4;c^#M@Ty6NV zm0#oMECwZp=QpJk7|P}zO-N=k32PK#*->J$BDG)Tc@B%@Gy2Y0rE6d|wxZa89f1=lrXkgyhzVhoN1qKE&T?V0>jA!Z$?z%L@@CK}Q zT)-$TdV(WC&_G4HfurJsBh!%`v1_~;I&5k|QeE}Z@uZ9`r&D)+kMKV4664GGE_^YRU z4ru&Ll_~D{!BWL%dzAL{t`X;K*tA*vz(j@<|M%2e8S1yaTEaAcmuurAxER*_Z+O=ke`)o`_x?R>SA1AkJ!M$ZU~=&D!&e0yMGThvKKb!j zve${pF)cW7+VPRZ`p%=?P0Fqe74}mmGE}WRu#DZJZ|?v>qvIe6;(mj`$7|^YG;2rA#^}CUeM{0mY>#| z{|5qD3jVXk_n0_t@MGT2vO=!GYJz6NEeCccS2L0F{yjo1zugmm@qbiX*b>*>sZ^(% z=XkztzJ&0C=^PdJ0~l5@JYjHQh!qm$f81mjxl!n|`y__*3=JxBk6a%H)Ylm5Byn0W zv;DX{gF!d+f%#Qt8U3TXm3~h1(6Haibm)Lr3lD=lV*u|*Im11{B?_VqRc8NgpX{8- z5T(k<#qe{Az=IF97ypQO^e8Z_lNVyp^UvSD?y3JC!+j!wp)a+zGG{S-$@$~t#ju$1 zE7O7H!Xk{5m^c_$&Rumn>7yq{%K-y9K?XSoWw{7aL%==J{j0)GeEle3XdseQ-R<3I$G9Ns;GgiX@;9C^YO)%rIamu`U^wtL z$bpNs&FHdt#Db{SN1wz@ACz=4NIYD<@kd@s3xkK!&x}2WjJH-DU}OAKR&h$eLy~EA zmIc?*_Z$r}3=b4+9ey&WG5k=!(9r#dy8@J+rQb6!_%H^SOBpgT{Y(@2WOKDX)R1A` z+L|^7iNyc>56V3lrZAn&kUj9Ep=yR!wH6rQA`ia#TZ=}SFy8burROr$C3Vfg;b~zgE5Q4guWGw6POtOl{YeY zFiG*QSjjs<X3k(kVq83X( z8M7-ec)Sqg>~Sk*a_D2=Sn-F^yrDz7Aq5opEDXj6L~0q54s-^vUGga0rp&~^u#(Ba zV9~GqIs9iBKFklOH)2dP?^vewA$l$k*btiJ+hEGS6 z3_}@S7#(PeK2Xif@b{Q?P~-o%+Z*^laHcHP_hidaVMq&h=VB0JJikR~#(inw1-cCX zzI|LG$jHm=vfyL2OhG#5YHo%_tiP7_t2In(n%Bd5L6G79kL#Z4jsay24ExTxIWf4% zcQ`ak1u!Nw+a6l@Y5VTR9?lCv%zr-DznPosfBTeJYiRHeucoC@*RMM6oIOT#~51c7oEOQ3 zg<)a(M0TB;l?=ge8AWSnJ&U}_mLUJao0UO&!Ze;GLJhC~>KRP36sUIKZKygw@n+r{ zL55v=r`BsWTxjr@U|-0TBgpWMm!VJN=u>?Uh9&G*d>fk1SAS-n)o@>wA-vL`QB0K~ zQ$@6)zhyIfP6q!96$ahSioYG?7c1~J>4Y_eupIinh>z|$1T zxPvK!AtaaCi$QFk@Wq`59~dTkMpQM(RW``0GOWD8?ZT)b>cD>R)HcQhrlN%meE|&T zXP2!F@gVb0viaGrb5zVo>ZnhoC?UTtI4RX)Sf zaI`_clfy=l@k`Z>qdGAQnG6_elI|4S{7h5OVmQX|%b;ObZbM>#^oFV5Sr7fX)b02s zPvPHdPKJGo3_6UB&kytmaVoH0kPCwzMpaemuw#uD!nN8cp19zWFm{{Ft$?;lUc{;-f+ zQ?DSxu*-qB;ZSZvVnhxTTLh!bkKb*o%YHllXloE<3XnPc>wl>$*M+$U`xAIM{v0%B zTF{&@b-watHSry>HkWG`R^(dTmF_J+y7t4o1$>MKJNCVc|EQZ3yH9PGeDB|bWeaCB zT>b4}-LsTw0Yk~|n%E^f^abn~97^8A$KQ>Keb{=5gF%bo3d1*sU7P_j42vCD85oXD zeBAleU+u#|Z>I3MejN-v>-N?CEn;RkQxJ6K%t5IKzt7KM&SaRv$MmMGEtjE$(Zr>s z?Q-&qZ4nL(`8@xg@F|yZGTAn@yBHmdvtEx-noFm+}t82ukG-oCue@>Y8{Z5VrXT|n04&9O!k4#6?e)v zFkNtYFmZ=LjY(A8j)&7vd`g-I-|tb{%y8L&vtjLf_CDwA zo^F4xhR==;jEB_E_vTgXd(&mgaEl>_Igqi4x8WAUjAxR&4-`J=;G85JS2stzQQ5i5 z-?;pGE7J$oeTR)7%c_4k-u(7k`kbS_u}mR;O$-e)L=$AbEM>Z&@$u;#HTKvYvzOn@ zyFRz1lXsrPX|4uChkJSZt~0Ed!y=hxoh&TCQq-pN@8fxQ6B90m9eZvs$ty2vzAwnp zz|`Z(_(_vt!EJ}uW(F3A9S0b0JH*w?$n9M6abf_I-ud@V*M*KcYB<JS#7Z66;s7u`RVWGm&Y(`a0q!ClsDd1GBIJuvS(^2jr-cjb3plzGuyPoQy4t% zM($-P;Ms7QVZ}NI^)x1y6b^@-vPV=Mv<`guEIX5772^#SADM3r-MKlE+t?i5K3_8R ziqC=kT7{atc8&v;9K8#481E_^P*c#;an^2l#MKbF!GMvYAz0P1Ux)GZZN+bmIZUS{ z6p|R6qL~-`P-ZysBVa;sdE**}{_pRe{dxLyP8rMUxePf>+pK@Ae>TytNz}h-0b4}m zx8Rh!`uhL(+)0$OnRMK-K))b5V%s-{c1DI74Yw99nD~a7qfw5DK}ca+ zOEwn+!wo5hr;`;J9dgYVEMqA4YfAY0w2Wac2Mhm?GhzE?0aa;c$f1ns}RGsi7K~PR>`pl zFr+d29=LJ;G}BHt4~7G*Wv3+=Y!iCK4w!9WT5*qEiNTEVgSYeny#>a9d>k2e9GGdr zr?Ra{$J$fKS)L#qX=5e$4y<@q1%g@1=IFQ^c3 z;BsKdIqmGY_3eTuWiuu*{ps}#cx!P%&yn>4gN&O{%HHfh^K}Fm9+)*SEO_itBcX8Q zssE(lzj-SjIX0ZlJ+O~+hBxPo{J;12qxa;a9^+;ckYSymrkQ3~UEpUtTl8;+)Py#vE`~?wiKc zpy}8D>btE%LTH?bk(8<`L)>=PU0nY23v2;LnZ%x5>^0B?neLUsle-Ai@yTux8_AQ3vJ)HVkaq z4!`HFVdQYQp~_TI;gbI&lF1-KM1vtRifO^-gs+SqUg9362OcsWvasl3>sVW*d8OgQ zjt@7PnpjutI&kEQ=LJRvg+&VM7;W6=uyX|I{`h_A?j1n}?nK6K3>Rt_Tsq&$x!S`2 z1Z$d&mkh&(BRq+Z7N|2uC@`{WIP@KR*vojqbHXQvJ*9EaxBZo8arnZhz_{m^P{Zln zA`A@d5jO7+FemYR_~yp)qWEC@0*2EQbC?+#m~s`u7$-66^Mp$?GK4i8H9NOyQ4qsi z7Fi~S45l+~%E?R~Oioe%INaU7o8|3FWLUu7@!4kkDFp+=68RP1n$?|zyqM2RykN0< zSMfS{d+hvcI61dL-^;;eVt@n_!*m`7PKSNT+#BA!Fnhq@<=`z=tSqiK!M8!wkZ}dW z@yw{r3?C;jys*)^$(qFw63(zuUgZ5&M$I+$QH&Lr9-lrh)R4Jvny&-9$OET*cG)J* z8fB&vtbU%1H&|OjI1YXI77@a5i!=S3*nUOZ^pD z-aWaTxZq!F?5+ODS**u+4*ce9NHk)UU<>~JUw;=vki%7zP<5^g+jhsAU$%5`v^=mZ z^1*y&2XQw?`wGP~o)0+17OY$q`22u<`EEgmh$jca>nt>8HrO*X{14=oP!s>L^{|z| z;RZ=ghsmoM{wxsqQCx1<#dKogKRWIP(x$@!)b|>Ol28khUIG*SYO!( z@B|1eI0i^$d@5YCt3aWqT#q4wmq|=bVdsI2*Zd5J^718`xUcjYG(FfZ$#{W*!KX2S zv1}1TStN_7hnhkWD@Suf;+?l;R$Pn33_kf~goVB~eE-AdgRu?+a{@m{%1IWNbquH9 zDEl|JAJ$k=&BOcPr36Dn!{o5&hPiQ<>@Tun0^TOM$tq-O!ud2~yI3e@l&y&p+3_Xp7CKA00wE;d`xDGJ9 zm^?4!>`4{}Cbu4@70fl4KPTicmhl|epcA)|^Ud!%jkvB9rbTQFc78qzRR<2TY+zZy zY``#Ahv}Rs!>;$bng{0Wa!j1e*%8Ck|P^E>s~4eRI1@nnD6I+?lAirr?vAb$f( z!b|p;mp%@67$R(MIdT;kFy0kj=I9%GwVKUA^g&9wvhIVW0{j_?%#%4gzE+hpvTkUt zYFK#l?V-<(Hav5l_TIK%!DPVj)|@dRG~?$&hR9zl7I=s zeD~Jo=O$3^0fYMU>uVUC4H%;Sr!Xn8KKL8DtiAfpryDFb!F+#yeVG!@ z-_0t=`+k`S2Sd$?{~C7B9j5y@Ou2sZw|BJ2r$YHRjBSZI{QMogcNo8YU&XM2VSb-T z!=uNi44EUR#V+|jYa>%byN%&xQ3e~v3t9XV_!dll@PN_yyyXP_p5`s=D#8M)49l-` zImoLp9Cl#1P+R-v(;TY`~r!e_b`pcMzDPj-aG%;v!ttqY8e%NtC zsQ8a7Pp{fB2#7pzHmk^EJjjr?is2;75li-6+b(nFdwrY2oc8$h`S-fd5A<0#EIA;+ zWY@vO!heFHgGEJHAe(DTtLy*kxd#l&bdNXqSu-#%kYiA65IG<((vZyXYJRMmus|x; zm8pF4U!ICN*gn|3!{H@EzQ}@5hA;o@!x~bUl2{%@u^c${+>VXGgK-D50?R$UYgvp@ zajc50KOSaqsR%u|B%EZ(R8V!++~_+)O(0hbXND)^1;%TWnf`DbZ`|a`_~Ct*0c(Qr zger#;%@0b8ABo>#cH&lG*fp(KA-duA(MR6axlH$%0`~0TV$?hBGmFigi-G^kmy~ub z2X^5VvJUKxmzexCSp66R-iEJkdVOB%!6eQOebzWf#-{n3l^EsJ8blPrxi{>Xe~cl5 zRgj^s>^?kU`eS%jrekhZH+VD zSTG&%XV{|4tgw5*yPcPP9nNw+Xs^@bu}EX!J)j~kp~~Plt07eUgzbXtl@A^<=9h{t zSiRuZty$9<{|bmP%}f-2Fp0ZIkU@M^{0H8(x(y5&&8!x;SOYl}7<6Vj_`erp=rLo` zaJa>Ov}|sg&cg)>tb8)h9sKnS7z(5r9JmwsIi_a(xF`SRUwPis2aGXYjDbuHoCS-R zTU*&P+|Dq4eia?iptYsJUs8lY?SNeT>g%Em2AN_KH^0umd}bqOL9nhT!>_ku3|r<_ z960JcwLf-xvcM0`$=`o4IGprN*t|%Nfz@Nan5ZO!_)K0~hQkSr2fiz}9kgQKV;j_P zH=Wgio$(Q~tVF@Fi7ZPb1Y{Yiep|<~$s`?k!syAU6~@5yAT5ZYu;(+Q+Jy)AA0J)H z-`mU6p#9vTf#ZOd2E)t)6B&2x4dpM;=elt3#EX2U2LJZij1n_?_676xytYba2w~a5 z%)%;hdr$R`uiy1U8{9+|thW4mQM#fiXPQP$0aIU{pQXXN*LRm5etVv4gU<9x%&trt zEN?^^0vVVV{EfN(NaT0qg?}$ypB>a>KgQNje2{e$gTR1?l_A(@J zOsvdxe)#if0FQ$7jDPn93mFS~Z`XG*Dzg7doAdPN-~Egqz8)yIVN|HK7f|4sVZzaI zhFOTgk%5VE$L`;6EgsEWa68_haXZU_T}%wJ%nspipZ|+sd{&#wp)#p~#UVsIjPab< zaV7?F4u)Bptecoj7#2+YJ@4N8o$MXVORmqeS!kTWn5ifu&9IQUrTL#D&t9kc!CR~s)*y-Rf zfuZA-RVwQR8HN}yBdRJy~Odt zzxwM1?yX6V5saJjTh zmEl80yMRU*tH^@q%#88hv>138G#wu2vjsAU%w@=6o5SvU(|oi4*}C3&|3;Q2?#_>x9t1fv zEZcG9z_V0m`|r2qxElC7QW$U8o9ti6Ajg%kY~}q6=C!%z?=r+vCbM@4Ff0ycIPsJ1 zxwR)ljWgE*wuU-Gh7Al`H9eV@+`j%dh57739yNxfT`A%%x_L9$AJ-k5BChMe+7S1S zmEpbjjn<+GMZeQtzYeNhV7Szi!G(iC{C-Xkcf7=>vzqK|tPxYX|B5qQDBw8Y_+a6b zi}HIp9Ub&$GB5eeP{>#y!E&mSFOOsEahZe`rU&AJAD))8G6dwxuv~x0|FvQ5{?$hr zr!3WQuo4oxEYZN;SoGWb=R(G1Dy%bX8XWl(7;OHUIyDq(zxN_NrUI;@ItvW;Yf^KWW&wfA%bf8iy)91uX_Wi3Z-= z4B6)ErP&sW@F$3AF{be|NXalwHp+L}>8Vl0&uO5;{AJQSo-S^Nb^o)JAKR#NB`jdz zWw;Ui+r3nr<-oQ?R*RInPc={XteE4I{P=anhY!qY8L{y6<8hKdhfjKt-XIEON)lbeR&~< zLPm$9qVgF{5XIX zc);Mn#K928@QFcHWI@h0-m2OUzy5D1*WJDLjYWZg^tOlJ81~M%cgA(WwUzU4GBC(G zdb&7<^sQUyDs|$Yj6!#f!@G0cY!VWW|Nrk0^t9EmKQ}K=OaJysEgjKrSFdGn`;PU0 z-~a4qcL;-~V?M)$Egw=6dh$Opdb0N9|9fM|df+;L=7IZ>%r${r8Yk^)rDgY=H{{$P zoWrw#k6|ZkiIgzo5q}xZF4lh@ehSCF9uJ;!k>iW!KXHwkf3rT8yD%0;8V5|~oxs@e zC||~y{lU7v*V%s*nGRSz;CTN(S@6d(mJe-r<)1N#e`O40_?wi^5U^#3bd8iS?}u;h z+7c(Y+?W)&KE#Dp3o_^bpHn3D!A^m7gY=WPRSc~R60E=Hzxb)XfUSeULGZ_6sRp6H zGjjjG?~h^o@zFTgp~fb{JVKn|)4l&IWas@5Sl#eFe&U~cw@VB&m;zq^Ud1^1g?+n3 z#q{+s=-s@qyQ^!%;?1m(kNo)!W!_EJ3Zm;2ZDDz)Nli|ZoQN~>o z4^&_OD_mnA$fCw35iB}m6@y^i|8Kqa=O5~59+=H`g^hu$@LD}5@4w5gyaJ39Y8_G< zzE5N1U`s!*9pu2&5G%BtmqGLMf3ak_iHuAKc1ssZJ!m&&$o+U;s_Oh7`DFiF`oRY- zsx;WKY1rtq?Y_V{X9DA%*w6a?IeQ@UnfSUtikuCB>opbJYrah7GvJ*d{$LHqg{{~0 ziyqG}u$rQ&z{FtljUniJe^HIcMRAo6kuww&SQ{7}rt@#8%Vc5bV-{s=kf@u*d6b{2 z!CN{mujc+LhS?k;#~A+Sxg;nuBr&Ko%vbqQXUNdPma(Xx``PI~S98yBhOsr=f4o<; z{7*>Q-^c8kHtJ90Wm&sR8?@K^2>f4mJAyBOwc%afkIXa2d#|uBh+Ck}_95x>{(sFJ z1&SVA75|MGUNAGL{WAM=Ly4%;Ny5<%=AECo4J%R;s2#4b<-IPCh|Wyp7hgzS?2wb zy)E|F82SEXGhEmjrhkcDgZX|6%d%DT_a#l_FF5>X-4cd02KH+_LB|-Ri<)dI4`kly zmq@5%fBEZ&r- zbH|6^Gx7U_-%RG((8!RR>cDI7{J@2$U}iVlldyP}hTUllJ%4VuYcLBkEMqEVY&gvj z|J$zQ0kd9#>HA=b11CRB51(_IVZ%a)(o_e#XVzgi|JOAh`&?+mD)RBT{PK;*?n^UF zS#`kbVQb<1XYM=(fiu)=COFys`}~ZH(<0yfu*j+d&-V1^GfcRq&%|)_UgxKNC%dqJ z{qxxvav5%fvp)DN9&;}?`L`pJ!`FWXH;L=HZ{F>x4wO8g zd0>C-1X-v`));-xf~04 z3cg6Pong>n+`m6_wYy8qCXRw$-Zw^nr$1*mX4=x(knH(?pT&Pq=DHdc-U*TmPJaL7 zsMdIr?eNvkhQ<4>K39ga_)KByU{rZN`H%j><>Kn;VGEqp7p&i1e1-y zQqTgu&rPM*7~SntZ@1?%$bEUt!OqxlVOAha9XX0l*6|wRR+0r51b0v z7^X5rl$*S?=44x;`(M+XIg78Np&@~1!8E2{imbIvLXG=oesNHKU=;t)gHhxk2g7cI zn8#7_zY-Pr3RoD*et9omZsC~0b}zE7id62r#9>sd9dHs&|yQ~ zggAYLWA;f6t_w1L{MHt&kY|{uqEIKvFeT`~ve%s~HC~MWzJ6URR?WolVFiPaNJ6>G z3zh?U=NUYd44596T&t?z_h%-PjCR8gHs*$FK_3oqbTA}@eP47@|5QW!)Pw~x5BS&^ zmWph6#lmn)v!A6QnycZ<(TDCV5)5CaHO*lWV7U6uSAau^p(2OV38*j`2`))L#^4XS2%D#2b!Wa9BSWvaKum_@fteg3d&^#5eRzSFr@@@FVFH7I z5|iFcrX~l6q9$eL8!W(hYhHc+x?^kAG zh*`+s!E?YhQH#lW!^VWCA_9U2PbA-GGsH9$Imq#HDX}{&W7w@5X3tc$U;|tEY9{7D zhWpYUUK1}daPVHZ?b7ins$j3>0bOPh!3R!;%uWBlDV}V&!nL8XA^pICtPHO`ZY&9x z=5OZVurp3Qe4w|m&T8HD~G<>gu`;GxG5)wqo5D)WNV&UNNW4X^(P zaXz`l@3fM6p|R+Sd;C@o*`GKB9~d$15b`*Dpi*thDTd(2SFQ)-R-L^3tl#}CT%r+z0cEz9M)1$OKKLMJ}ion>d4 z&TwFTskEI3!^2rDR+AfVF>dJgbO@{Xsbitk5IaADEoU1iV>kmtHFxA+O9eGXPsU2V zJ^U8+2f&$?r*gJb&CS9bqg{yiz4v%HXtMVZ%KQhgv=b z*&9U+{4Jtf3##f*bG%qDP+%asV6T7+mxK}f6vM=Mte(uuHC!3nZ{Alppz(lHLLtaO zy;MQEsf8gyyW>1VPO_8(3&YvAsVf;4GkjHQ_Iw{NKBP4+Vs6kp zu!rFMhSm)cA!WGV9BUB~H z)W&d^A0K&sPBDlJM$P9t9&>9~K=xhL2x;^UGWG9a(LzF+SzuoXuVN%<6$6%QjU` z9_`=Zw)$-UKI|^t=YArp$zSIG+hjhCyoQ|z{m(M=dnO!LKX{faDvR&NGiT@O-}br_ z8D1<3a5`{s&jD8>hB(0+GdUtmY|L61v{}S=|FD~Jkn138FvBT^(~RA$2masOz3bYs ziKfTa*%KF#~VA7mU{T-z4+cH>Lh)mHQ}d`U}B>B5#<^G|4VPPi`pdg$?(qd zEy1eKlc&v{zVh<(Ijh#?^*XRD@`#i8k(lhoA;3_R!qC7QaiZ@*`&EV|4F(gWAK4qQ z_PG7?VfZjnlR-cspX0{~jv0PWy-x7=HiWmctExc3ob^ABJ>IxS@XXyAb+i8MpH^!m z)%!P6f^FfKnwZ|N^tNTv2`JnnguWwW&Zf~ne>sf z=?RT*v-W;FE@5|shiOlofX;+(g*Oj}cir@#WHZHA{`waC1$+Mc$pjp_USBTDr11Cp z>9XB-!_=Z2SY~{2-O}-Ck;W$_&r2fLY?sIf^PklJ)cV8z`JwwE$8^qadff1-;D#cL zf}Om<->I5itD7Ei&10FTwExt44u%!KSNeU5dFradx}cjc;ab?##`BjJH5f1mG(2hk zH9wzssqB0wLmq{{JN|K>vtJgkIo183&yD+@Oc~oVen>JdGdX?uQ-OtpDZ{t=+uv5( zFMrQ#W6AhX>*9>sxWD0Ep1)*O8w6D3Qso3L==9c3TjmrX!EtK07LU!0T5cu>N2%*8 z{!XY~y2w@I-hE$gi+xAFZ2w`vsKB1^$Wf$c;hxL=dOWo+LtbAgs!x{k+0XOGf~$cy zRbKNz$?N?QN&*Jgdl+Iqx^qlvUH3iWv*?8C1D>G|wHuz!zjRgYLffQ#$%ZiddaiDU ze>ZRL7rItE>zZjwys4N6ho}@ls(ADTh=A3kPlHX-pcQyW~qJ6d>~;dA{S4A4@pj{kgQBHPNBkh~>dLwlzDr8)O6)u4PtR;Zx|r z|I*-rKWptTji2rdKUUA-Vu@MH{AVriq(+W639d2)H8TaNfU{3YF;UyQg__A{`jBc6TV9vcc@fTxOUHGg1GaJm5gSq#6l0;31?uu z!^y<)Mu+ji4td|diY#Sj|1)y}FCMp<&=|n}n&C9V2}WH@#|i9|s`^HVwYro9>9Z#x8fQ)F`+9@#Y_U z#epOB&Fz5&B206gVkLfEQYmv{xhAd6xJ}w&=W#EGNFfH!4a$zHd^~#EEL^;TZ_9d^ zm=69+d%zlW=zveffthIz*}EBa6%PbNM`(64$S{St)|H2UxZ)9g@js_Pgr2uRN3FPd zOVc`^3ks~pJB<$YdL?Azi*OOT^06F_PW=t8V2mS*cjepI+f2 za($mE>lv1fr7aq)i&xG#^!*-B0^5e4?+<+_Gm!na*qOmAvd-Y@vF+_GA2+nS?cr~uBSQe-yaXGMX50_Y? zgLzBEylef54iX>o7?~gDsL3{!OFiBvA7RK;@l3v)qf*GhIZkonu4V?8Yx~(+^qQYq zH+|T~k*8q9mDSx;%PV5Y-@v&f{EwdZ!BTU%J!f?oB$%%79}yH#U^tULM@CS9=N`Ld zqJn|w8QZhfZF0>I+O9H8FqnT@@=^J1-c4o=5(Z71nyk>ef#gf=ZAIkBv09Y|1HY6N01?XU*S__mIs=%Hz{yC?6Pxl`0z+O zv6K6U+C)otnfsUG=W{df2^M_tGhh)z5Tl*UC7pw8(^Q!oOy{OHupK^pUA&mRSyGV6 zU4!LApLU}k%RA#Y%#VCBBBv~KVY7H9Z+9!`fc_pX4*e-g{T_!NI7=%0zw-V%+m>ze zcLEvsny3AkVj_I0@)sjh-Oii+UzOTSnC@-o-JrxEGU4G{2NRi?M`{i47#(y3p6B0W z;QW5*eo3^GWD>)ldPm_zD@GQcS=PVLaqP)uR+(eew0Ry=$h4K!AL?xw=c!Z{xg212 zZV*&B?(Dx#`obko#e{}6SzNn#0v^jQ@J!-9*gl_s%kTWxj*bU7%b0T%7Z@#Tkmzbq z*?&s-4eMKZIXNrI3!MrNwwNqf&3ck`0mf~9D^NWLV ztHOhpCU%xg6ONbz`7Vrq3j^jZ=1O_P^2*)KL7+gZ)uFslU^l}OhO_O5Ug&Y`Qj+pq zAmhOB`e2IUVmWmu#u%|0gn9(19gn1@q}5i{IKD7P4F$uD1o~Z#WcX zaPi~3PwTB&6xg?%={Jw=&=^qyJ=r( z(7oQ+Ws=a*&=Myq@#D{>4=2jle(J0^$I7Ulz^os3|E(aS4oel+g)gom6Wlkioco7= zkghJ$-?w+Gr3)RH`O&(vb6TmLO3>+0DN(n}@TrK&yuhxjj2q?%rFk>h% zNI1ZtRr!c%(eZ2B!Y4k?<&qC_HrbuumcrDwwqdup3PUoB(S+}}olAAx4qV*u{D=M8K9LI-ZrNou ze1Eg^L1sQnMRSC}10&`I94T*@uT0KcP{+t{jU&TaBk1_NIr8OF?62R)N;;@L$ZKf$ z@N>7~uc`~@I6Mp=WV~9tVts~lgGWO&WBD7VEp;D@CN%QcC~$U&mPjz9FFw7FtKt&h zwa?=D?K2ngd{NoZ|Mcl5J?6xk&eQW1KCF;l@%*25{mRwsk?b~=hqvrDjLMe_JP>=H z;h*+tsaFSW7XEeI)RJTVmioV-Dnop5Y1(=rlw<~yu~S#o7xR35py_8f*6+d*O;s@I-4c>vrb{k zgs%J(-HR(f?w#Y2;Bz|JyoOCqH6V0bx=u_2&x@rDKI-{QWx<>?Y8_M>7`Q?l?wK}!w2#z2jU|$jBm6^d@x+<*6@3A=&^>|pDuK@CYGmbjUkXdn!C4=?qCVsUE=i4VSi+*c5EtGJw(aQIM2|u%p+JdVr zY|k2_ycyIM#4;8t{FqhVUUbGimFI+-gZcs!wmn9I*JPPLc`N!b2tUvdyvrR{^I>IQ z29ucZg}dDI+Dgn=SXUS~?v^kx5C{op`nKtx=GUe^i3R-|%n~lYGpLv(k&vhMV9i4D z5J{HL?MgbW;VT+;ojrZ{4lAohsKYB3negTp$=gE?{5hz}uv_*1+O6~F@CK}GIH!Fe>N)F$K&Fsg4KY&stO+uf zs%ti~y@}t$)HnZlp-i=%Xy8rm3RaH47L%B^d}Eqx^MBp*k_p!;8(uQCFsyZ4(8=|n zW5d0&4@V^qpHw(&cEN;qbHd%f59H_BGY|m|aQ$O;HfMj*J2kPC2(QeBY$#L(>ya%?sYuSAFZA+_W&M z&T#GdDXMc~e7AKdOi0eWyxe1Rli7*_rwuhWtIH+(0}U2u6`sB+UgVjw>r~L9gCS=p zs}#mX-C1Eexgurz^P(H;JrB1!&6?=HXjRDEcSdDR_O+i*{F~OfIa;HoDxZOYfx9Hg zFPP!)g`&(8(|<|X?$itEmSbR0VDNNt45_&FCiZ6EV+)}-f>$=NIJ0|g*v!>lPkjC|iD92wjepD!_4RcI3H3AfoDf;>nJW3mD7EW)O=wCGmukx- zCc6`Bel#|8+PB2tU{&z=FkQ1g@Q32NsH_UjKRglt9T|?s%Y;o5SYgy)^e~!d0uLaJGH&t!S(w7CCghG_bpSBty}WLd+iq% z{-vVH4HgU$4Evr-Coj-pdMDn-n4x=8L*;n9(;xAO%S(9J7{1urxO_ZjsVL3hxxdYh zn^7Z0Dt^*e`9t=7kN41!(|hOhC(+EjmJ#YHS2y#b2se%R$B2_XtFt{}^ z9GmZZK*Xpa=KfjsTRb1cvKUHPj#|oh%wo3Sbm8A1%yLY2-T%s)>dg$_7(VRSGnHRw z^>Q(RGKL50P4ev7si(wSk4|xo;ajnTYrzC224?Hp!?h26CU7%8`|73?5EeR7@O1h% z4u%%{v$1yr7O}`>206w%xW@2p;4u(n)%o0WFy1HJp@8dv$cBG)vp@My6`#5F|F`wC z+IH={#Kd#uu+7gs0lpu*7(8SH8CYsAax|s3@lP&V>hPE`VQ)9b1vUluzrWl<7EEhA z;#~=nKhW!c*2^Wo>8uaTFeXKW_^Y7f-&XMrPxcX(Z7{jmq^R92u zxGl}Za>Sc)3FD;dgAPp7{+Nb0>1(^o$8CSB>#{)0>7V%*`|`8G472h!sWP(8bl4L= zL(9===3jIFf;fYXkoWk^jdO5(=L-RJbnKqUUh4{XqA9 z0frC%R^_TKcsgqzM@Zzfx!nJXYisxRa82Mj5-oJhN8q*0sXR^*vtKHV(uxbzXWp2k z&o0Td!Sz6oSFLR9r?*%4v2x7FNtNJkn)q&xp>@+1mEGRY?kgwkeo<;X-%(-Gd(My< zj50zF9s8gD7hrN@b$dFC*;Q1R$%DnIhu?q{FxH^QHmMJ!{>Yx0xUY3c0;r{fs&yx-soxbmRyJ3?7SAz9Hy?^Z|*acS1 z<>*+W_4pY>Qk`Q+f|$d@O__URFEDegomT00i>*PbigkhgId(OOE zsfuL+&xe#5U(^@`HUx<+n3fu|ttFR1>wqDn#Oq`3{}@=@8M`;hOgO5|bd7VKm>IJG zLk6<~cfe&MKF!+)FLb?#9PTybjV1zR3&+W~|}WSjqV&KI_=O_g_;O z``jMfO7OfC?N9g$&XYQuHe1Si*~oRT?Jq8mMi^+`}Ew^`n2H zrtxOp9^Hm1+6)Qqf-jaPFz{G;3a&W8a6!SqlR?1Yan}L&d;B?!d4f?bMZcMa9UBxI zq!Su^53IY+9mtR;D?9lO&;0F-=X$*vZz+F_)>y#q!cZY?p~}Dz#JHX@C{D$Qp|jz_ zo?07M=?7{DO{*I+H*j6pcZxa2l4JSGDH~)QLX3D{;nfp{X?>6DUomVApD$!3 ze53c&2KFEBOB&)e0~`XlAK5enG5WC{UpV{nE$IXq26?t6uFKMx9E4B(SL7{_&s_U7^X-wb4VQEcBuZ5<8#2F@&NBH-o(!q7Kip zT;RQ2H{@9b>+i$zM~tqN7W**Ye%(Dy;g7f$%Y%OjDhxNj%hyipVEa-R&T!*Etvbt_ z-FtGDFfq@#AM(m^8pD=@2TX4LX#e(p3VQ@wg0O)igTbGQHDU9*I1APu6jj>)p1YYr zV1Wdqx6(?7IvG|arUOOVD;##yRXcu!o-kx|61<%Y-JV&2CKP8POPxx zJr?@qBGa`-<}a)Vo>koued5dTgt1^@&6gc1VM`0krrej>wpQTBaYn|?jt)$22I2oi z41A*<71>wJmvX#5{Vao=I6H4Z&6X^GkpQ(L47a8<%WvReQc-N+6ZJ}n<0(3@nCVOg z<7=+|Rr?yf)WvxQo09(>H$|Bhdc(W&9e3#MI`pHe31F0g0y)0Ne3 zC~auBSx|XPxP{|I0JDPNn`&j|joA*775poFzrVp(&x3KJdUNPAHpa6i zCpI&+_#Sw??!dLsW=012d#o<&7>_X6D3v8kzHnrIw?l{9W}p7-xDMt;^Q81XA71OQ zfj?!^fp6=L8QcF~v=S~T{>aYN5yQ+?{WbeB+tVzDf_e$DikzN?h26W1U-Y+_Zf{+n z6;SKH|M};CCpmTqGwqXMTBOUty1mti{Xlta z?F>%4>V2GbXrFov)UcOBtwBpO$GH^>}(8t0>}8*@$dL&&&$HY)WQ5M@qN-=`ANI24;ivK zFz!m`tMFiqmlJ-p>fm-}){sJGha$#+yk}217KZ!se8`;3P<+5#QQ_941Vz47g{=!% zIo7=kf2{D9Q#voWVZ&bsJysV!24j&;H-is_?B6-Rh;Dc$SIlIiUrROyg+>i`==MZ=U!ug?iRSd(yqv3d$egG#`zG=p0QCNf-z zi|1{QiGSL}$jrlS&JwJ_{(Q}!+uL?GGhMxsU#`}$Sh&VQwBtR`$~)2wnQcGzD{5da?S`d>Zrd`>F~6@iHG&h7o+@NpFe+gU|Pt66BU{e}#=!V9ZUUb(wtMFZn6yCmU&G(RSj9}ahv);&)w5GhEP{E=+I5Sq|Cfw}1U zze?`~v)+bH*gumYp5;?>GCP9-Q_2@Lg%pO`gLnHb_dHH0m;dkV_(I;zAx0)ax8akp z<5p>o-|?9Yc|0%sSRA%bjtXGj!`~Ch%vEl|;>Wt)*3iLx-9l~!?HAroY>cHg91h$I z{>VOTRbq&l-_Cd_P#~@G-9~l>2Yv<-gL5x49P(Z>ScrT1DoU|ln7x|Cfb~z|Q-(0c zHA~!r`3uAxij6qT)B_rpH!p0eFS-Bwo{ez>Ys1pU4$}iZ>_*HITn8!-lzwOV5F!?* zU#O^HuiDu4ZeiW3&vW^>()oV;ySHCDo^{7BYp$*dOiI@pPVuq|u^5ORvF<6qB+{(I z{)f}6>4wao>ASOY^F+cIWv^FHW@kRe&(XGt_j+saiXZ>$->;Gv(sfMx79DWHFHI|S zwpR4<<^J>YO2riwANbyI*dlZ3V`EUdcS8#EQqF`8-7LDyPnPmGG=zJtQ)OPD$fI;1 zz(M)Zf$TNh5-ci?G2%CNi8Gb37% z@6QIrYil##WdD%Yk;%sq!IJaCOX4_#FJo*t7uN=!50lysaQPmT)4yKo-QOU6@c#j( z@DR(BC1NqJ6qGJLf6t^K#TYP=V?*8ny%YwK#at;|Cnhpo`CGh%fseV3B`iXwr9>;r zifP;H&pQ}@`TTx3H|oNbudVXS4}0y;TFMxpcH&$DIhhP%A_|cXMGcq!&*xi~8KwJ!SHMi*8RK>BGy5hT zT~M-2<_dqW-T&WS%nHYTKk8i25M#mU`ob`wm)p6AZAGF6!)b@f941a|d)8<_QCbkA z$8_xy+aV5y$^A+7Rtv&^u`*rYc#+NIkd$+v!i`15v7Bua*PAmxum3%KhuMkihltFB z2@S^_F0XiZQ+83w{`1qToRhR)%vY7bKJK~l8$Rb8kY4LjB<8v_m?@y(p9W*r9OV-%6OIUr zo_LwCL8;+V!|}<-n7{cjYA{b^+VuNwIFp%l!|CKz^<|Y??$mdp5>) zRi%X8a@LI&EDt^$K9b6?TxEg_^S2|Z-yMw|G+#65Fa@yQ^Wm^ylV!Hxt=PnJ!T)M@ zX80u^4lfp?mCVO95~d{Bi==M(|080N>Xxa$&bKkh2uiDN4rgp+VAE^K;4HBH@YCIl z+kqiMRH7l^|9xy8=rI4Uwe8;zYZw?kw_9lLu=eI% zalW3#;ghR;hEOtBf=Pmoq{1|Yf;9^YTn|WpWf8S?WRPIcU^un+hU^SaNrgoYzyIks z*X_Q$X1=LHLcG0rTZ8#y25YGXwieaPaRFZ%4zSduuCHEZy1G&cWzCx#?Y&e?yqSddwM z`Tk{9DF%7Zy$iM{J-^E#$vEN2$r|N`X$+tQrN|Os-67a$xV-TJOQCDUmnJ8+22bXy zqnj5^UE1Ik>@e-FtysqW=TB0~FEISL6MlMPQ~ol(E1rTg|V1a9a&-DQbWvBO41#!*~6QTlAE98#5&5T{!2%w(H~52e*5-E$9$9ghy>Rn@Q51{Wy9|ZfLZ=iJ zzNR<7+Ml%4^Z|Fg&JBj0d&Hj^IQU*~t~;=#V{W9Ro1ua_i-xI<6|0d#TZn+=gS;yb z+zT2`mQMqGkTg2ayalX zEM4#q;r3VL&?`M)-A;75m%7L-*+h6_tpZ1=5Y+_sU-lWu6@sHXq z$GioM=@JJHIehK)W#V9X$-(fD`N|mvGvN#Ooqd_F$uZAJUs}50k>^L>X{pIZ7xw(O z-M-?LP3QipqT6S0o*{6@mtn$=&j}ymrTzr4JFHZeP$=qZJi~DP^GEj;4zncx9a-8q z>tAy59~qVcr#FiqpSN#(@SdSzd;Q*jVZjBvt3OY6c*nLutH4S@<)!G)0|DG`)=jN9 zz44{>IZwl5{}t@HZ?1V*{W{^W;B6rLqZtLNnh*9fFsy31zbn3ScXa%@bL#?bh?p=o ztY!@9pX%^{VJTz4Ejht{Mh=EW5(1yzHt@dX(RuK>U;A)HXv@FsidXW_Ua;RY{`@DL zp~if3?w*?g#yk^#F*}KDZ9Y7I9z#M8gFCYjL!P*$kx7E+iA)B=1OIPvTyr^aeO0Lc zT4qP~Df@rt^e~;(YM8!C`M}YatPipsSsGNzBpdYER$Y~?W^`cYi{SEV<&e1S@Pbn~ z)8WQ;=4~tu>|P9iUM#Qp_kp)GVIH?^N8*CJt&R+>o7G?WC@v6DRG7-cz!0#8VUrs( z!|#KaGIBURGZxs$x_TebydWF&tV|%4apFx8rsw;!8YM39FvyY4l4(-GbdkSEcfQWjeUkA(5p^r$N6>fWd)fhw4Lv`++f(#52rVPs%#9wi4Q%sOycjCF=lIy)!VG3)RD6>l8EGJ0@QNsft)m56L*Kss+ zWJsm!Ea7CjA@gOoIYY!gj*8~b`ZHMG>~c8EAllk6V;$Q^_xS<~+}IB2Y>=vMtyLF@ zYRWS=YtAjtSaG_=l5I{2kH;+jeLvIQ8 z|GyTwU@eOPbA?nxcVio)0K;+l1h!jE3sM+_nz)`bAFg?Er-Y3~klBRcoVdQ=1O|h+ z0%-&6?;9**|y{|yPFyX8s!@nE1 z57s9(q-Ct+b1-uVSA8PjZ|V?v=^#zeh;1t%FHVBSPCQ<7#Tbd@N00qt%zHa_Uo85V?x>?UR(ZN z4rR8S>p?8%7!D*e{9$Kc*zI_NZGnlw-1AJj41MaF%!kXFj@-Kt=EG(>(;>C#z}~xh zvJ9+gP2#ut9m<Oj9I&8}D zWShZkjs$@hsR9u@#9eqEbRW2F!~A9@K2u>slfs81wTWgNI#Fy)3^hz2BpcQ`h%gph=zXN)V9*fEGbg>l zspj9|yJ~$#0o@FyT@BM`vZSdW;csEs);vq~w8LV?Im;$U3eMQ2xFAvRLIi_P79)Ew zuZ-k_AHr@&*Q_+1VRB&aOi$K@S}fvjZ(S#*$F0u4$Zns^GP$~y8i*h)9f_u9f7!LWe;ORFFY0|T!D+p)c^+zb)YUD3_P{ER+~ zUMCpx1Y`AB8JGij9y~AlXJ7vO))KYLEe|tdS~V;j`K%3;qC~E7Z~FiL`QE#>>}eN# zH|-AX-=Mbp=Oq18Pw$q?FH2{5P_M;uN0WiCHU4S94~7H(F4}akHbisI$rlR1`8&seAu`FAMS`L0yGX)*b%qS3f^6*rzo$B|D0IG&5I7sg z7#3Q}!0>@#f@{M*)e}1yHZe-DaGhdRpUv@O1w(^_lJuc3yU#qF*vojsii?5C;b_8j z=AL)m60aC8vBiB%s8^UUQ0gO2e zZi)%r#tXwUna`Kbe(Z39nQ_A_h8ui6j*M$04C478G;(&h2ETM(ut}m|Z$4K^3QMV; zMWFbDwQQ^lZfwP+~ zzKy+`7-w+%ZPHvJ+ECZg;K4NE_%!wj3@;`gsC8Ft5Lu8Pz_{a{hOFHQCJ}~JLJ3@l zPXA=uu#T^ZJ6m~1arus`!W(iN>Srxu@nBt`-p_n~W*~zg_hUw;b8|Wy_?#H*>MDNM zddeNpIB|d@~FgUNCX5e0A7Np*DER9_2Uce{`k@hL|nL zR}`IdujE13qyvgfN2D5*{4A;%DrPA0zj1mH#^k_NaPE_gxQhmBf%wrZ)(fo+vp9dS zaXIJ-^u#{4tKX%-^qymJ`LoJ@{wEm(8s@9K->vC&;MA4I1MDsyjw*}~DwUQn8O-^; zJ-J~i!*i?S|IZ$}z<8j7fw@8Dz$^B%k_}g%F?_laq0K1DGQBnW?Z>)*lUODQzBw;E zrD1B-uS*PW91T{I5h@$^nDtFB`Eoj};ayee)&q9OO&UB|4W>G{Gjee^qQ@!%kjA}ta-nGHN&KaPkOvFj2SYRxC|KAG9P%lx2*sF z>h;E37&Gse1;6IhO?{;<%3#Zouz3YfI;@7%O#2vg?)AREr=QGxtJAZgogu}Fzl5Qoz1_R{^A4~_xRl;hRs9LCxE<>| z&#*#+G4t03As3!KXCxW&gO6%vvk5oc-DlrYp1(H7;r8~+lNjPP9n{>*Vi;yD_^ELB z^=6d?+b=ap_$V-bNN1IZSx|FUszLs{+5`Q+|4L&yGmRCWcEi>Ju-w-4Y}j69DZ#Jd zn;_$QiTTm0d@0_fcU=NjvU?0N9p*0N<|*NkxGTBDw&67sCqw=@hC8zx_IvE!e#LFW z{3~-0GB~7YF)m>E&^n#rLEi=w@jVaD+>tWzaLB*Z5bST*Afh0{-+GTxz;%~MMCiXc zj33N1nAUh5h-a_+b9LFY)y}gx&mR8udQ}jkLa^8ZpG85M45wKyw>z(WzW;W9v?#Ly zZvaEf!xyJCUNV-*S?qB5xyo#{B{M^3!kZALe~BOJx1P+fTQM&{`AU4A)?_vf)(%sK z1q_zlXV)dHmgUf!z_24os-cwmnMT7?#x|#hIXre!4A+X;7?K&%R~jwybV(tHgd|$ zW?0M6?rWOOV6%!%TKGf%&A+>j{o~4xQ*&zAZA>kZyt|v8e!hS4 zeO{u^fsMSh%336%J`w2o8g4Z2d&EtS9v(xr?=nEY>?u$cWdUHQP1P?HQ~Yju<|{nXFsks zX<$-NWT=Q-_UV=d zg91k{(*get0cs4(4{Z=Tk;}@_v|AwI99sjoO%}tmTqX^+6Hh+hq0!J^yf$ZHC(I+Gdre-=EjA7j{oALcpM&t5E3FZi| zs}K5lfBn$st&2MQ+56CH3ucBdCmnblI)fQkFesg5=g$yvNMl;d_Mjvv(?NhwUz1^% zh=mvP6qb63@I7bS9V|g8W?ounx8jox@Tplz)++oA===_IyHlOsF~9hDyObf6r!0xV%fa+} z+k!sEx9Qg$e|rnQD}S?-%`Z2mNhQc6h_dZT0bUXJmYRWKOyDw<}9u%B3|5Fs%^unaePR;U>3`s%zsy zz5{Cn7}jstdpAV$LCH0S9i0lrz72~R?k`l8zZJi%%9^&ZT68jME#FJ9YRPj{ZeFvDbmrJ};d*avCvG8t|; z%=>otc^=D$>6$f@UJ7%5xVGTX)UN*`%o7@v85@2|Cm-sm%C+3=`yh{9@58m#4-*&` zEIe7TT0A}sEDbgZEvx5jRA0jQpoBGR z;jWqm409sI1mbuYBCc#wy>YGSmSdiN#tK$x&VbAVA9ph_mYb}Ep)1iN5)vK4X#AI1XZMZ6zFo#WKvCRjGlO_q@ z^a74H_{;xb;;pE?Yv12sI+Za+d4eD7#Z?L14O9GT0#t7>ED%Y!9k0N4WeR&t)-6$s zForZngBcATnhq>n2GtA)*q*IwqAG7ONxAgkZ*6<$~lN&0Yas>@BU2nfj}eUo49{YtNRVnZMg#{-+AlxAR_X*QHl7 z%&hsdNu0yUmO-J&RB(!zpRosHL9n3%Qvw&G;|mRkEXD_CT5?wHT+SH5rEx=?;m5|P zq6-b`GZ!vB#gxl>;BNw3!vc+&Aq?lfx+b#>w}ORcT^d25)STTVW<(D{lJoCO{mxl zjfMb*3w;Mn&K0sI%n&=M!Sv=EuY^M?^LbmBJ`%QaG3b#D1k+SUs_UgW>&^D#(uzDTH|scAJ%0R2HWj=jz_65UL4&cj zfppKgWY&tOs*H0u?UWfFu3>ViIDKa&%hkdxl>}i17JZ{VfB$W3ez4>B$B+jMToY7E zbF>dGVKBO^#zsyFyZTIN4!wZ1hbNe4m@LqG%E6$=wuots9q)niCx`C$ zF)m^9?`8^iS}eF*k-)&i}w1iM{Nf#oIIrEU@?os zQ8bYufI)-hO3A<33=c|P+}m|ni!sBKQH`O2JA@%5l|?flb-T-6tG^2}7A$?3!hDcL z6lEY1|*x=rXsI-^Cxxv2_)(hONfjUXE}&SlpysUL7sUO?=n&F5ZgX_$& zijqV(-Fch$%H^Glo5{e^pzxd(_skpfS>7uk^A@42`?lQ#qLqycberFlCyM!^AM5;i-Pr z-}+Vuixx@N24-hYhVOARcnx<6J*jCuY%juW*VY)5u;O`>^KsTo9v;j>3aT6o{H>A< zx1Q|aWH`W@viZ?=z&3Oy58`sOu zZir7{Hf8v%x8cB2<_U}@y^9%An9P_MJRG*{3Tnt=E#Poq*dgx1AR^RvYNzBgz0OVX zd)Xd5{`O{ZCG68tzTdJFUrZgZBmp!}8{s*}Nr;7YrTtimSdny2GG^ zqd?@qv&QY`xu-KZFtzpUW;AYoSmV5BPF2HIeXgR@TCv-WI4dMI9dt`LR(O3b`k}(R zWq$n$=6q&thLk1&7NcmcPuz|y4yKF@&Ii0dY?0(V5iWLKhIPT}gInv2gqXHfSy=Hb zS3Ho*{`BzIqP+)xCWr6n-c+zlQK36cRNlcPYSVZm(~hUKw4;-{zVRgq&5VE*w(`{IYQ22sK* zxf!2-_f)EQr^BGY_{IOlOo9DEF4F3kDtH|Bsxr*;tN**zjvxa&Ul&O_p^8hac8&DR3-X5RyLiQ)Vxj-63|E>HRTzD>?&w^Q z=lCG%p!R}EltF;`UWk%GC_|N{#xjWpu?1l>AILLIV^v6G$l5E%#CgDXVx-wx<~eVV zPAF$~SjP|`)~h4DZj!>-+)=7;C# zJb1IiL7(%7G~!xgD9wG!bhdL(8^suu9z5PT-=}4UfJ3lb&A(NWE?gfp z80O4l`udXnbuWhs53|=nBNmotaRQ7A91Szlnbxv%{GDhJ&vb9~pR(Pvl0MA!VmxQV zv9$403&R2K@6H9f66fcOC{*-(zW?}Vx!Zr?uX`03e~Z_e-Uwv)T=2z5&O(yYg+b^p zZvv-;kw4=G0gX~chh+bc{Xee%f-&^Jp5QZ_Oj`R z!z>KHY$GBVvnI3ki5!^5^gNB}zF@=o?oP(|@BNB0_xW^J3o@MI3J{y2uFubSU}Nj& z_b%?o?@#@3*Mf<`@xc}q1`*~dOjE)bW%xhLW!b^7!o@&3pTm&BBr~$lt;vB=Zjq!w z1H*xX+*Y-n#nU&5m~rVmX6jqZ>|n)q;5);)-yi33Ixze?9lE{ceY^c!oR>{SbD&gmBFI^$CvL@*Hp>u$-5vl%izOj!v`&i zE3bzBlw^<*e{r9$bQ1$>gDIl| z9Il>@J9NLG=fU~o4VM`iR%H7#UW)RNZ}@1_U@z9kHQ~YMlh?cZ7|S~t<75@IBp5z4 zER7P=3feaz#-4-0osS{)=EIZDc6XY&9lR5C82;SRXLLvsRghy2sBljF%;liSF#lYM z%7dN!wVWCUSd|!@m=|nom14E9^Un%k+g~|S( zB}V|GM8hmb2F3!00+9pnS$7CIC_Z?cl+2)Dup%m8$!CYo-E3T({}wGNZNTY#^u`Kd~2cw<77Tbf5_hp3-WItNO z6~91Z)(p`G_ohc*0!0)ugdLaj&e#3K@FUt?@c`EWp{oxX*0*k1=IrmQc%C_e@y9vV zG${rx)(uQH<;w()aELfPxTVO{5YM|ZGj>H-L&9T5hmJn2h6xE1xxVBuN{KY&c`^vG zHQ4{t;=5sTf$2dU-<;rvc_I&-)EI0SW-!#NXk;re9(l8WiWbWTh6}qc?73T}`{PDe z+j)700}>0o9A&36wrp**->08{{<>3$=d{(ES28`~gIS^pml;^v_q=&=_?)i7zYnuN`}=Zu)a?^k!tmfAj}*s2 zUcHqs*}_`+8+M96U~BYYPViyabwKZnsKR8YDK~hoNI!mkCA5LpoVm}Oli`Nhg6e-u z7{VCDD)d|!7l<^3xmYqhXp*?i_iY{f{__kAL>~AF3G`lTdFUW9z3J;@#+8d1e)F<7 z_)U{}JJ+qiv;HWfgN_=5SVL4l^MksM5Df+{wuC*(X(>#c458dZ<#36#|OZhv^1Mi;ymk-cC!LUGt;p{H91zQv!oZT;N;l;dCazXdO zihtjq$8kHnh~a0`KGCYM*Dyx=K-g@?<<5NdSsNH)KEE|#c4B3i_*(H`O5@a#wD3u%lN_q3Q8yz3mQ^e%8d z(2rnUX0(8dA*r*hgWDlTbiqZ2kf%%dKKM$ln9X=SKAiPHErqH_Ur+tG zhGBLt`@3k)#wkMo-j$u+so*2gFFnWGHM4!H~qWCK^Oc=7eesz2N0ZGsqB8x}L{ z5)s+S)u5e}l*r=nzUO|9wEz!;-U$`{30q>@862c8JhhR`5pK9^RA0yHU=-9~vD^)q6w4FG8iy?IQ~wN<$(IWx4-PFOVMaW&(8O@{5vwyXhq7rrx;m=jsbE>aEb7Q*gjnfT_gtf@OmO(hAg8O$sC40dXk?Qeed z_i2?AH`6s|xd03H8&;YhzQ5OVVTcf1Bo_E4kY`4kWq?2flTt&?=kC7mml&-suyFpd zFSLr$I=FSOxQhQy4VE46_%1P?OMl9+lb3OJqL74R15+-S>*=KR)qB->ln;FAVmxiG zw%^pg@vkexgE?C-h_OW8|NQ0u0md`S60Qnq*e2}1Jy(_Cg^I#9tt&qdY?N|fILdT) zT|_TK0QZhx90s=R6IdMT-m-Bta4^{Fn=&OZRJ{5=FPkOcd(yr8y6h8vGwMCBZ4PhY zImh;k<3pyv0;k9Z)y7{{YuXtuUv5%m)X<76%=|C*=KMnAKX)t{G~(yY{(%qIoDZ!VoEbcs7#P;=w!P9c=kMkYkv*N0 z986_eS{W|!J6t|+_n_i|mQ#(ZUDY4g=L<8uvv?rc-?Y~z@?T6MOMt4BE_2M?I)>}Q zGj6Z@pfAv%;VAl&L+Sy8fsDn{wuY%84Ju3=>g|g~7``*u-3{htS|Om2%&>*| z&AEBZE!Ii@8kiMSS9C3J_5?6Ziry^i9~o7vRUvn8KvMxM1?PdX3-b4=_iqWhyxt zz!1*8iDSXLiWM6hek?li^}5pq-gX8hmK%o)7m8RYvNW(P(7*D#{>!N!<mdv-5A5 z>d?+`Iz%QRU8zCmiu{$cD;k&?SdK6>6g9kE9^6#tt-6Av%Q1>$MndocFNO=h#Tg3b z-(AXHuvO(lml>1oT;^9<23FFmS{tJ4yfC*?#q82RArgcz0G&Aki%_8 zzO44izRdnF;u`8rPB=GkJ2u>YuE1{LyG`@M)~QSr*8JaWR`Xwe5|b4}fawjENeq_- zQl>7jy~OxtT}BJTN1X&=3x_R=3U4@P^D(Wt74>K3su_O|vZk=ySS{jk%YLfL0mTF7 z6dH~*zPan5#WJx?q0(X!Ut0jX#-5@CXDKGNiy|wm94t&4f`4l>{8%ybYQr4nHJ2P2 z{Mj~e1Z1$B*yqOZh+&8BkJTmxPPqq9{RD#3laLc~?)_-SahwEkw7*EQ4__&Di!Ox`%yW|cj zH3&8NsqlUgXb@@cdu^P;D1Uo_jD_;!g&X?>wrU0xHcYf?&|ye9swwo}m*Gc3>|$qz z>JRI5g*};cm~I3yI5Es(d6MRzkYgnwb6`zJW7Y%pb!=$|D>fWw^l?8?^X1#~f1jtz z73}`F?crU~utNs-%6(2c=yNJIq%~HD@R~eVnjqlf);xiG&HAmDl8;JT7SuI7e0ZSz zD5KjehURbA86T+CMbrjHA7Wwn@@JtoBd5v1S$`F**D%K_8!^1&;&XQ3GtJwoK0&MT z2BVL=M~=Y)8C@oe-`fxVZf8)CS&;vIOIWmoA{2!r^f;a7 z|H=B!QsuSarl{mwj*puf0<9W0?Vt63=FuPfH~jB4j1Vdj^<4BuFma9FQO189j3Lee zZe}eP`V<~9Y>$4x;QGv*wJP$!I+>Tt9CH5GJ^0Jb@WQXxiGh*9K#oZzVQLRE%T0eLTlV`hJiWE2FI4?rgICP=Q;b3Bo-WVGaJ2KZ=tl;Iy$>7oJuMtEx3kEV zUHkX^m^61`^`lR{(){0~nhcm~HmaO>&uwqPA`uzB;!^#E-|w5h|7T#L&WQ!xh7;r=)n`D$}uRVm#m4KjllG+FzbrH<7t4 z@~Hlyf2s@)|1*SVa&6*RklY~Hbnc>n!_osE;#jgcOJWzQar3w}&q}bVDB;^swR-Ab z$9%?(%u}Ke6Zcd->Fc?YilYzCUSV;AFVQcd>fK3{cHHY`NFUA-~YBVF%&T|{7s(dC)6PLAVGlP&3zLQ zMji$i_rnXMVs-^JJZ5;7b47q%;`OeK#Q!`$?5itY+OJ}0V*apgf*=EfgC#@slF2L+ zE;?M|Z<&4Qj2$d_=bpr|JZhNprbDZ(jk#CIV%klE`~Nm8GA&?OAnuuP{MNc~ zz6)wC4Cfg6BG|7Sb(qWcsIKA8TaH^7vJ5s~O*qcT!s_7O%%Vn-uh!f6i{I^w zjUCLG?^rRs&|zp`o|1WmsafYhSW|{rK*|iJU(Jli=P!}ivA1>-^CLO-ACp-0raj(J zKY8_!_vQ7$|I!&3FflyH@?|hzxPLx<)$#B$$avpTT& zR43mQg_b|CwEzOQ1snw)=*v8qA0Jh*R{z#N8=-%le^nWtWQCPn{5p?$Po1|GOGR-a zBa?-!#td$YNl_CrIsc^IZggVV!K1_RLz?}^@$F*M)_>)^yCE+)Ej*3z;ynN1Th?I_=wf`4@lBpWtXv zWnf?k(3$ppQG)-8yH}Zniy7_+y?M>>ztH$a#G8{%64H!om@gE4=seT*Fzdnn2?y%4 z|C=ZNkJ(qhpuX0GaZe;ehAx8vD+3ebu9mDuMW&c`!3K@SjNliBI;?jzSUdE(K8LsT zBssU-`LFz@{-xZ;FY@6H3=CG>3)GsAMGitEW2_Z6IGbZcNx`g`7dX4QZDE9qh(4Efsy7<{-mWEPm|9=w04u%W2k zy?OQwz6QaBx8GahUW7DUY&^jDNk8gP4U5NZ#%F6H^B?@(Ut_-W`K#YLVGK?F>lqyK zyN!Y$t&)gQo5U)`zJTMx9A%jUxA`5G9N?bEW#D;W{rx?sIGI>pFZ#IY!4<&-%k}=! zsr5<^*VeJH6s%@!IH|vm!C`&(%csj0Oqs+W!o;^lL`17Ga)b7**}VIH${Yx2hzK{3 zm^Zp^Gd}x?``is<(L1z{loMZ;^LwVcXn(zA@p92yTT}5)3Ehs% z6Il+J2*@!LFMG{+C1b_a#vILrW1sI_ZQ68j*#*HA#`RxQmG9RdPZFIY z@50cKHRDQypB017j@!b;{;QNrI2adM9T2~KaFvJvN23GdC!TQTPQC}xexyx6)=_TFn7&n*HB?U zvv=Evtb*8znJbuep2w=anQxjS_y7IcwDSLdPm35d_bQ&@<2m8^aQ9obh^0>$)=A}T zc4%U7)!{BsbePIiBk7>lSUGR<=ZCHPRWev)94_qt`tkX)S8;7}Z;PI}GMr@C?c?85 zXryz_S8T=<<{M8Lt|#(MxS0Deg7XO92m4R!a<`Yta31UQ*Kxn5I!)Piy2~WR7c8H$ z{{R0xt=w$(l*gall9=DdKx;b}^PSUTeZ?T8KsR>m-Htqr^fR2;fKJM2|n zW_-zkli~d|mbaeYzDrKO`+4vEH*Z(5Hux~EWjGMdI&sc|Py7r)%sDBH(&meeinS74 z%orv!m@((X^Xu8L9N6dWzkJW@ciZw^Sr}|p8VXnZ_a6Fx`11ANm4%rPtl0nGh4IwXz^arGg9A^( zg&3R|-mzzz*DjEV?ft!`k$=f9Mi-U_#RC_GGy2%8x2fw@otwOC_V@jDk>%k5Ob;{{ zC^WFz*?Tg1+cPE@I50~(l(XJXY`7)E`!1Aa!GHfxw{vdXyzSa}yt1zD-`}5{%o0ou zS_kI5=ZPv@TOr98m)dxOox%3tyPXUbMsDxhGh}5O(}Xha@!!9~u+Q+o$Bkv1Gt{dX ze*D&N?_+Ne)pQVI6wBY{5^dM8hONF_nrFhI-Hld)Z!&}$+?rSN&r!4B-eBfh_d|wB zj_p+56|o1^{?pwqOEokzOyPfVR%=T5ZZQRp12376oSS#SZ+%zz;)5|vJ2oGp>u z;iP=x2EV|!T_3iu=3|Iq+-AYhF+b*ATgM+J2S#`2N{#@ff?#G1?Fq~a%(u1Zbu08( z^L%)_p~;!Gfs5hv!mZ2=IpT8S=W`UU@E089c`$>|@9nw-wuY~FFEDsZMw>BYaBcN# zpJ!XjB!8vh)o=StyAM8%Iml2j^|Dg(wvM!h>nCmtY*bu^?b2&@M;k?W%fQ`7FTL~LYGIDfxhZ*sbw!W!0^2U!a)vm4A=;3Lbeu}u35 zW2TSJEWvmiouo7Zm(`H^^Zy&=fcCUmbnx~*~^TIH>48JxWCD;PiYPTVE*K$v0MW`^W&gB^1DrmXQ77JYa< z=ZG5f1JlHHqK5H_Ob)IL=?o0_|NooJu;7yp_m#*7OWAw3COh7ia$t5aVcwu3kkxRf z(CkbqODhM1B;zknwuZw^#twcA%cV~;aqBY{^fQ|MVtmlGqWcU}EB6MyjU0?8I5vbI zY0y#dVGGa`;AYsW%<$*wS|%1oPJbq@{!I>ftjr8CQZra1WF0rY&I(zS%MiyI@wvj9 zv*0}^&osukbqWkq%GeHYH1u-!&o`fM=90(YpvM)abm2-vW{&ZJbiP~$DaL0eVRjQ- z7+M>)Ds#N!;1 zP8J4_1hEO$QcgVT1_lfqoEl6Aa@ZN}>fZZ))1=}W&jUWj-b5Bp!Hizklm)5*Obt63 zR5*_?+}I_a&~X4f4Yrk0h&AHn<%fTM{(tqo{{K!+};u*sWSJesL4Cc%h`fV+z z80Ij{VD%7Th+s>9&m$r=A+BG}hMD0yLwW>{6HkIy!Nu}Yhy-(Ss&$V{@<@wVw|<^qX+{7V}-$yHLMxh7R-|y*C_;e%Vm`gBPJQHI05_5TlEa`^jsGf$|u#DVR*GsKwxTocX7?G%!2 zv^~N2PhO&7WVO zcuJ=`HuAu+X$C78_jNhEWAkE~z_cKU$)T4qnW@4))Y+Z!!>=dG3=&M|p7qVRc9DW6Bm^-i2sIctEMzRYA+%+ul9~#G%=C#I4b!+A5*;NQf*1~P#PNm3 zPRjZCLYH}gs^bnt4wF`?#}6aVinV_JzTb%R!5OAE>mKBHGalk(Y+=Z=Va_>fJK^F! z84k&YtOJ|!wC|fd2riM}n#QP<|CZ~HOCM;NX;Ow*w3nU)w z_~OKHWfyykoM3fj@^R%VABOkKGhc8p?77^~!q}!C%*-Lku&Lolj6hP$4tc{L1j=UfdC{gBn$Wvzrwe_oyEZm|klB)|Rb7kIiIV zv!JwJ!Wrp95)A*ml^dLy8zw8>U_ZdXu}Ew~{IAqUd5ND|FSruIm4=%_-*~sTw6Zk3`02*N@HgOY!3^;) zf8J!XUUxHOIMdGk^U3CNp#}zqtcLD=lFXMK!g!BKJF&1X*`wIw-ViEyU@^~vRgKRJ z7&gQo`F;IzV$|H-Es{(OY;~&^D%PKQb$;@G1_quBGhZ`)I$|oR(tDuomxB_M&P)e} zERK`0;>l8f{xvcvRL!g8cZif-ww7)G^xGLKjLa7sQs2&J*&z9VX%oZagpLzT!6Doy zBHa~EFct_+xYe#4tEeEuR-yVnUd@Mr@3wQCzMFtY+oG>QOb!e+2Xr0tcoWufrg%D> zWIUkC@ITye9*=Q1;~mZ%8Kn=e1sE6>Ri-f+%zyuXTSB?S)dta@*;N{h8Db2z413j1 z-4#f=+n36)gOhW^91-Rf0u$7BY5zD^u_L7+nSA%ImY8XR!TIt3UJV>q&10 zk!Ac3QW#=*LU;n=IT&WJ+*tcF)0z3iv;{`xXIVeobg)vW`ykJ7d?xpSGK)WpUNEr! z@$q5esb0@mP}bUTf12xY5r%L@#z(=={FpD+F!P?TC>C^vLyUJ{a)(s z6s{e-uHnxII(((s(2<6ns7Pn)}kYio`8BUZ3{FlMrGjbd4pmGD=Z*+9O->Y%w6R6ngwlaL%fg5mZWC5Aep;*J zU~pjmiO1j9pM1V@dHqk(og5L%yu+)d7$q3GeoG}N^FOIRq{49RZj_g_!tEFVMmA?D zb>=@Gzy0kG_O=W9nIAjXovq>KV~z%i2T2A8_J&@(#i^&Zh|!Zp!L#8l%cGqQ@sbDP z**7T9SNnf_-96>d#=ox$Sr~X0@Uxrs`5u&BocKTaebf}`t5Y9LdTrrXp_y=4NIE%K zB;@Alpa0MA_OLOTefUU)IjFK$hXbIim)Bo)(R>3l{R2h%)Tf z?cJ|h|NH(7#s^V>!UryhH!vzps$KAq)8mKBj30kvAF#Y%y=^)}tYCv7!#(bRxel8p z6TA=W|NZq-f4|ad=J!))9!`*9$kZ`BaQsb{!W9M)hAV6tvdiCXKiaY|;U;^)<|cI} z11W~tvs&(c|Npv1KaK7B)|rPBCb0=fKF~PZ($(%9dyr$#W$^`Xx*8sGa!iezP-Gjo zSJvhW)4a2P{~dfO{WI^&qL@;pXZsjznHQX0z$48$d6#2iL6TX+Wk!Y171{|c4gDPl zT#A^K<5(r4*!I~?G~nsG&sp(?pc)roN)5)A8d zBR8dO2x2XeK5(74#U+My7H7k9l`s2#{|!8%(y3jljGtSCciANn4Bj8FU(%=tN(Pi=KA*6Q};1U-Kft{!K8GO zYu+h`3fs7}h9}Lp82T<-Z0*lrxWN764rk8_HiP`~b-({5e!E+9fBWmTUMF5Ay<2ek zHAe&U1%^v$5&T!(Z9fRcILrbR^^p`frur*xDJQZy#(YS7ljLsWYfgFvJOAL2~ z6JpxL{{B1uo_){$t9Q8*)^UEwzQGq(&G;&5LVxR#ohNth5-;a!;NM=)w9fHI>z0B< z)1GXG%cmT^{q?u!_)(v|Tk1dpCx^s?hH%D~j&x?`0}KnrQ=YHVnX_p!!}1OFOflu_ zctj)<^nWw786J3d^6%Sg_Ld($gj{v=c1Se!dCAsv`{9W=j%?PH($c+F*O&SFFI>jM zlMuFH8snlnHVkjJ9elsw-^q#l?*^BC@txL?VEm$+N1?CvcVswg5a)$s#{*U|8L&CH zA97Q-FnY^*gGKJ=#qa;OR2u2>L<@pU8srrW8+jO>?$xp4oiS;nsDWQgf?2}_-jGd; ze3KgPuK$0qyn64Ix-2us0)~#z12HxXADSiym+p=2-qaO*UpQ2u&SFZ&=>z{b4gReE zdR^aPQfyqktsJvQD8s}erJpt)LEFDa2U>*gdCtJ#-(VxUuEQacIp^A!zvbscnEq8M zu-%Zi>t+|Y&#;~Oz}q;HT$%UGZk&p%7&)v&R<*dU=Vh3EO8x3HMh1aoDTdFDPcC1~ z3)`L>8ME5Lj{S!4gV*Uy)ygjvcw5)K;=FO~-OI{!8{ftr1u>B>V}?DFrdyje81lXp zxy_jun=i!?_}U>w?SnI4N5ovV8=*7vZ5Rz0z8qh?{}S(%O^ce>ud`J1d&AljdGTi8URl|-J&a}NPkvIQRZ1D8_C2*WygCQwJP2et{czgpR17B*x8DWzKJ$WayrYGHo zuNe<~eyPaOz@#wUsOiGu!~)BbEH<^tY;TS;?z_Z$MySp*WF1o&OT%?7Z~4dn0@)dk zaLUYMFp+P1?o!5(F+*_9GR_GMS>^#B7!$02Y-oQDQkz>_#la*Y;c$sT{zKjpeOb=DCBZhfBET{mvGLiQAIGE`DnA?yS01yTo25vh_H?*VG_1wexjY+kXu?g;n=b_ zELoowMR*0O9Q7F`n15(6XH0jVs+GWSAnMk^|BC%gsa2L!o--%#JP>}vxgh?xpQ-~t zgBd^5bH*c!6HmBISi%^l#&rK)SwBmI%uQZfuFnij!WMn3!JGjmqRb8oMhDigwS*o> zoEv)JUEsd|1=beVb=ZZ^aLV*LOlMr6&ve74qfW&qlHY!jpyBkXXIa*@FxFUz@kl6S z%=KgX;(EYxLJh;mf+yk<3Y!=rCNMsTJHUR7p)rcBt(>i)`aHwBc0X3-;)fL;A$gJs ziEI`%a~av>Up$+_`N~@SBh`$}+yWo9wv`H#wK-Gq5|XNMv|guws+cwriaW*qI!7 zsu->09SocHR7acn9$w}cWFgR!$5wla;TvbfE6xcL4#h?uCpcbNKDf7+fp;yFCi53Y z!xvW#-W06~Vtw+BGvW*93DdU;PdOiGeYj;+Z^bZW4&#vyfgB}`iF)mRrx#Y%8>nn! zh-hJaw!3lPB!S0#LJdq0&UH0>k?3-pU?bGwdPIXK!Sq0qKZB95MsLeWo(EHXm`uzW z7%ar>s%>LByWZ}vpBK#_ae_ga@rM%g7ls9{49pGf{wxdkDrA}$#PCE1n|}~=O;DM~ zduEGUz#>;zpsV$$p7?o0_8x79ODo0wegu;uyLbiWnTO z8aq5YdzSeG&xE-<*dFLHq&Cd`tJH17_=op`QA3HzniQ!GnZJ}0B)Fb^X6WL5Ap9gv zAhp3Gfq}cB{x5rN!`>uTWkyA2<}a=XrZP7OJ7~1KdNVsZIi28Wm=Ve-#^BAMFz+sp z(|NXC-@nP9Vo3eZ^u_t$ygbt$4&%m07d3vc*hDkvoMtd~3s5jTu=X!=4g*_*fIP>= zIDY$Xe}_4t7o1QVv? zOA^l7FxUw$F*?xAdcet_!Af+F!rcQKxg@$8UMnzuv-{2%^Vf!5`h?B~i)~T~o@^Jw7*EAD+zxNt zAb!Qz;f11-fkWtm4=hg(hwMmgP@Q`qV~^ZDdqznursG-(EC+H~92lw{Z=_w&VKxxF z5Zb6O&fV}-BEd{v;Xx?FdZyXm#h4UY><-*FW{~CF%n)&bUBFf06vJZv2SE&fCNeho zusocdXu({f-%!gmExqC9(FqsXC8`_Oh>J9;J1l1u5!Lw0v}hyOhWp8m>IRRdC;JDv zOfV6)y2a4?g+<}4Li~R51IwE}H!{ZQFo+2@O0jtescM!u9Js+fhoOM)LnTA1hKLcU zy?C29W*gUurCJX^X4PFCmymn;MLz|8zwrTTZ$p4O|^sH;9QIOdnJYh^9!!qn*-S_ zBG@ACu?MI(U8tPE$Z&=|NRnY)+gH1WHH<&M+bd0X)@9at&3r(ML5J<9bBxUkc7L}A zp;s6de#?^Z?+jYS;K3-y&~4Qy%si)rN8y*l(cSYHr>st_F%OX9o}b5d)J&~Fl3~x0 zq_8zd7_^wwlmi$U)R>qp)%dP7Ru@=KS>-TWaH{}AQlVDN6^4D6c-eR+C@BfNWYdyj z2w{Buy+7CE#wQ+yY=$NyhqICjqBRWxUR+;Oc^M=Ux;mxzI!Fm;FmBLcP6%ySpVe@Y zV~V7MEC-{oqk(*bJ>!G8hExV-Nrw6C8HEfjuihrSy}Ds>k=eN{hGGeZyWAh`SsU7O z*d9)IZhd@_nfb^xMxLt-r`|qjU|KMffuWkQi~qrC$HpvChF^_l8YP-+Czj?ZPUXlv)E*<**BZ?uV z;s2)cyxkKYTS&AuzI+*JVRvL&&W{S~G881~;yR#0=W5q-ny zpwDi^Xr$C|CGX)n(LEQO54JPKy;EllkgSMg-E!ro!FH)5EGOC-CT-yAb7Nv;%wVi3 zw40~aU@3Wo$zvXK$7e&1J{C61hPN!jEDO?@oSPY%7|yA*a8B67bz|51Gly3HF#O=D zF0i{bUY4hU+3^mS-#liP^9PwX%JFf2_%?-MgiD?eUhUACgrw^LWVXyRRsIc8p<;L(-_$1Q_J5eiUWc-jQcyTw*Qlp2vPUcwvjL z1h)b+Q_MW>2G0ZS!UtBz^O-Vrygj6CAl?^!P+N#0oKcgtz_0aEEklObKSs_3R)aXf z1LaK@92}-FudrkI?V`rbDDBEHfhpvlZh`~L2gL_ZPj6?q!Q~R#pv1tf(8-Xuf#2Z_ z%OO7l9>)Cj%YE-mw{&Q2XF4gM@)24SW{ zb`CYxCHE}ZPdxs9op(R$9L0nK{f;vj+8I>%7*$^iiLPmTp;C~}^hC8Gzl6z<@yuC; z#z_Z0l;~(N&kcXU#j>H0Z-O#ofV#lDRtu&%?u(BZuxBW>Pf*}?VYy+$_#<28JmWlB zzEJt83JpyM8aNxmn^&FC|MSB;jzNq4!R$cG7KTq16}*BAI1>IcZedVSIIuK0WrIvc z)j=k%16!IR8CJ3+xHqlvOGpq5X{&9x-amoiY$~6F1?#G=;QefQ?^1ZU6)YL|&Ej11 zdIEzV!{ZN4QjA9&0y2a)a~U3fo*?ER=eb~kb)yR7y$KA57CTb)&n`3RVRxbp}5s;pYrSQM}oUPj8&Z za7*zBhl4GrzrOhGh12IAD1G0ebYPpOn1h_+0%J>u2(~a?qmB#0j{LXTEm$tRuD{&f z&-g-@;d!GT`wZ)qtQRU7H$>O)vFxyr4B0u^QH^DebE6xBw+X+1Bx{zbKhE>>OMg6xT6% zt2dZi3oTLIu+L$8hCjm$<^@I{JeaPm-QZUy!&Icn+`4BD$Ev2|3ig6Y3>VhxPtUt3 z$hgM;j*Yiz=c0C|nG81t6mIb-%}J6kP;yZ`AoSqRzq2!$;&!vHUYWqlFr7(;DPi-6 z5|$UG@(L;r-sf1_ST=Ybc*F4^zIj4uMup=&4hIii>&eVt-tbR!SO0Kd;KA2CjtlF> z2YL1C~49*AEta5m{nnBIskdc9% z#K$QN{S6FZ3}-J-R@~@+XJUTI?9+_D=KWO^QfsWOF`uB+5X8X8`0DrfYGK9&OEw?4 z*4y&(s)3qAA4`Ru=o`)j>`Xk2b>`FaE?#_Yf3|5R!%U6^{i_IKX9G&RQVDdJ!}-`K|R@N32)MYi)SQA{tkE9{J9+Q1ML z&UlF{Vec%CO>Pq(SWZxK*dZ6=9+{xg(9B?7Y&(y2f>6`0Np3al0Cj(m(KIWJ6P;rPu^rGF%%<-qX< zV-}X<&E7U5D@+X>m|kcd_&bBale1w}!`1W5F0~C0Oiz4k`n|Esy=l?i4O}{HXLfrs zS+8dhbFi~K@T-O4Y5E^25oy+IAFDQSF-@-KxmE7mur8S?#hszVX4kG7o&zi#*P1=o z-#BT@_O_3q%(5bR@`e(Y9doN0I~d+NShUOtTcF&K%gQEam?$c+q|uMzvfi2K25F9+ zviIk+PVi$mSoT6nz45{C>83S&f3_$)=Gq9k#q!RI5oKUeSj#YjA(PV~r=8FFg-BG} z+5`6cL?zz0UEKS?nB|O9HB0U#TeiCvEGnuDnZjl+e2PoO8!}n;+?GjbIK8mZ-eH5( zvtovoIftHTGN?HuG1V;R+8~r+*Og$f$3DDy)($=w!-QFWj2i6%x(p{h6Ue( z@m}GI2%F5hZg&^sp>?b!cQ{Tda_))X>(OgBo4-P|gVRB;eU?_jOkdFg6^5WQMXy`l z{BaTBRwxy1Snu}G>Vm+6V|yPsGo79qo|7OLq`UhgyG7R7$Ni;sh8?UE%0(I0waL!k zrm^U3!_;{kT~>|1mnb*P2){V<=z?Ok3DS<8(vJR|49*UbA_qejMDyi1%{DltnsFn1 ztIQ7X&C<6jnKbG-#2oTi4u~nLv6%QVXtC7HQYpwgaoypC(2}Djt0gv^sEtf7{B!i| z^M=3v_ju1XGCcBTn&QiN%;|pp&#Ma01s*js)bZtsZ{)em$govHX~|pW8!`>$&c!R3 z_E|_R;r!6KjOl7bLGf2H0jVQCkA9r5XE?yQfSDzMQAOpzHyic_@V=biM_{g1?MQJ}^Ca`{7CNg4Mr2R%l$|RFL4Z7H4+gif|K7lw!QZAFpDCQVsc{Gak z%NxO|%#1M{49tw7F|1cuHJBS15_nc5Gric_;LNmH_<*AMTt-ymsCn2`&3&UT`K{V+vd7+^~Vk;yzOZLncQ-H^+nW!xthps5&fW5h!cA z6QFR9XVrt32M!7(7}hdmvJ}kgPiImQI=~;zT9RS;Axq=Kj|20M?&XkXd@N#l)b0F1 zFNVVmEE}>JBQ|H$aeI9I{rlSYDo^ta7TxJ{9WHZd1Slu$RAQLHDg7pE!HiJ(13Oxo z84E-w_%J;GTk&!3#s|w*a?NFNU|e&ym}Q300WJp(#+)z)S#E_~jvvxf8b4JTG6*cN zJk?OmIIVdNLz7#8B;x_jgbV8%e;;Ex(ZO)=x4qVCvJx zu-hi7A%!VLg`wQMPr>1f*n)e%?Q?lP%w4c^NzS2F4UCsl_}bsiwFqkPowYd8r{N0I zkDKnwj@*UDEJ6>QxgVV0DQ)zvdhHMSnXJOuid_utSFD2B@^l(_ST213pJnXQ-||A@ z!!w)5$M^E_vj^ofUS8yUV9~Wh)+?nPC$UawXDH#jaM9A?i`0!3Iv)!6|8{Gr=FOV* z!&Kl4BOl`ny94{=cy7FnZV+dXZe1qo5W?!SKv-fAo80^z6(Z#Y&U@rtzkW?SvE`ND zg;j1&SCb;1uRB&+qo*Lu7*N~rL-)atTAL8r2d@rX)af{Ew1MwAXXH;|O`D5=C;W7sY?gXLLb2&qp0{NSgRx|t9h*sucf?z1#w_caX?_fI zZ6%Mec=$4Wm(x*Vys+BwxcNT&5XBdL$7NY&c-x3d^|Sha7G(Yw%y9hvWS<5Z76ZFj zJ{7CRRXhfz2O`;D`3X#A&S2Vc^+4r}B@t@1Mqa5hpUyBwGMwZr5M(l7T*KhNvqPIn zhAAUyvBMT=i}$B>O8F947&r=kA7t{-Xi)b|5RKv4VA&ve;BS4NUWv)v1%s!F}SRHcM+btb-pLw0cnZWvh^MLWfmmC+q-`?)qG;1?Y zf#HEEjKVvmJM`QAb_p)AKG?xvBQhtEkAXwr8)J#&f>#W>4ZB4dVt5ZRGyY4NGLJL% zY+T2BrU-_U#SDAo<%AhR7?0@%DL(LE+QM+Ht$_2eWkVM0``!1sEqxcci8=7qGAMSs z38*;aa(+m9qr@%DY`2EtksX60!(FbJ@SB~nGejCVC-{pta0-+(=`i^4%;1t|wyV{i zpun((`D@mUS)5z58D*F*{r|U^bHhWK1Wt|sR~CbI=Mo-+^Nwj+7w-2c$~F6NL@X)m z6s`_n-N0~(^MP5M6f55qmw?J^jb>~wtP0l8`_B01s>9chsoS#|cL*G?bckY%+1eB+ z%E6Ivj?JcSrNn~M3>PoiO*AcOzmWW}yN>;iBgYF+qt3yFC8N2T@oXf!m>pXNBTs?x z616i;w?Ajh3AsO?bAmAA3mJx=M|U3;h-b6uieDwU;uM2n;%tKn%zx(ZU41(@=6NH> zxw75dw>N!Gf4<%`nuT}5wc7v3f9pg}^6V{r3!H2ZpCg~Za-hAMxy>wLwXI{ZRYNV~o39ncMjXZse?%e;56s&u@t}3V zro3uqhR=qEIbBV8<`qHcs?wc-;m%dv7Y6Z zQo@gw_r>IAF^OHje*10R-I8{-HH7j8`KjUzVI;gvm0Mjc*TB!??ZLI#DP7G>!lcS&l)nwvQ{uOL|&L| z;E=>%!Lp#nqKjQv_Q01$`Nz@*3=dLS9B!}*sB#z`aFbB*XIpSQS=s8q1@?su`UFPo|8q$d9toE1WB9%mT(H?ZA^VCy)?l*1b!rT8H2=z)j47Z_HY z{&Cg7g!@390HZ?|8$+$aEH*PAy@aHOUG@7TxeORGUcWFA=x1_rpYf*M;~z^xu*P|Y z*7r<4ybFFGm@UpMp1zMeVVA=JhD}Nu`fN82sVCSUW=K=M@we`?>w)Kwa^o*lGcMsu zkvQ)d(nvmQv`c*B&X%d+Rr90?1C2MZQx zTg+j7v8YJisKJIYlA%GX(L&az-EnCm!&1hC(+BDp99XX(5nU*B#^As;;|7((MM(|H z*4zz23xt{WNLYw4`W6_v9p!aQS7%wLA~i#rnZ;|tsu!ywm>ZqA8TWBS>^W$6L6XVC ztVG_ojguj$cK=QF1Ns~ZhZip93;6zCd_9W~gTn1Y`;!}Jk?F?5@y;eRI=YE z|3LcsW8w-gn52ZbEsRbYFghf$RU~yE@MK@%VRWMA`@f>u8VlCX$We$8xwY+vuolmR z_re8_mNhC!hFGa)upD?E!D3=+DcilfVOnCtS_TDch9j2`vR-S{VAgq;Xtbi}=79r3 z9+D1q9VHAEeDfGKXm3mEZrI3{@oV}@jtdMkZaLH#F5$fVP&$bD1pmkU`u%l(?HMdS zPctYJ3kYLlD3dW@Sitd~jZL3Ho=1q`PwW3T_v@J$EO@OB)_xS7&G*&o!ckrpQ-%=P zd%PhN{|ZRo`nn^_!){7<2XL>YzR1bR3d<7+h)@Sh6nf48{+F( z8cG9L`Ys>PvXSMSx7A%C|FOjkd*l+HCNnZM>|`ImKWhp~B$7F{QneamVgLUmeMiX}kaNNgm*2H0Ifmp2fiEP{mN9Am@|D zn8W)(;=#T61tKNtP6@8xk3`9Kbh2?V1TiPPO=C=-#GBKg*ulZLn~}j=pSAXooj}wf zC7um4V;)Z8KH12amc}T$S$T!YvJKNuw=yMMVoZu=Qe?K_WC*J7U~JNB$YqjYn)Q!$ zE2tE%F`JUd`9?*2k{rVdZjO=$t}6_7QYlLuF0j?~c?G0|Tg+fhWSdY>@aX;X&HQW^ z5(A{;1s`8Z^tRw<;t62kxxjYw!c`G&0fr@P2e`x?{QdWIZ#jd+ZH9Mc1;VKfYo9oMVmL6%=s@N%{sxHy zOb50zR!DVRbJ=!5v~EH|KpumH#(|wpg3KX;(Hpk6GATazd`^$^@p;z;QV$#%KFB99 z{QfNdfHT9L!GbM9Bt^_X(P6dM$BYFG3bxFDCJMdKSn$#7LImq73+64pa~O|^%=sjp zdvJB0Xgb3!)+wqi3>nN?A&I`Ir^ZazL}sJh`x)CcXi%pY|aPBTnlWMTNp zu;4L|;>Bvgb!-7qoJ`9Wq}567n69o6&0tfyhtJ{g!WoQQ+zcu#8x}WAV{EWtyveZO z@zMu7b3a}-VBlhO{gRa+J+FI0go7MIg#p8hZ6Bo^LiflY$T+xxcgO0cXpyY-ZJW#w z9}$`%$5176gOz8)d~dd!`QMi@7R;1bp!I6jT-LMg&8!S388`HuWl~cOV69_V%&N?m z!NU-8MW7@_Vu3J&%HKLyiH5ms$^HwjHZ8Z?kl$4xC8NuvDmFooAuYRsE1y&QqyYm5 zV{YSj<_D7lYjhkW6xbQo>`Q4-5I35_AjhzslVPE9$5s|U9t8%EKap$+Qw}WSUFC3y zK{v5sx6^CJ8>t^FTqjgA9TA!#!>~EFA<4Y;P~rhz#)g@!3Tzh5dJe`76;6}uu8H0{ zYuTjriesaH0~>=0TQpn3qDI}9ObNUS3?6(9dAZ9QXTN{J5G=l+_n`wv#GTcL-gB+X z&`WsFcTA>*@l$d`o*R3D#DRY1`x^xUL>&z{{Fo!zCPX-}F}&DO_~Fdgir*|6%nhDg zHLKrz{Lpk$;HnYN1~Ko1Pw&}N8WN&QjDwkb9y{D%>*4vZRfxmijgujW`N2lx(1bl~ z0V+~2W;bkl_nw2HHuTE<%Zx`v=SebH?NRTumJqnYu)9!(qh{ecHjSpQ48OkTZxk?@ z*>sd|f)sIC!4ZarZ3#yh?(r|! zpk9#FaQE*oq4kVAVjsG1WO>HPV9V2C=&*+ELK_2ngEZ5D@*>66Ya^I8|ETL_cwtp; zcc-6u_P5h|4`P`eln)p=MEjUJ9KFxY=zrj{mxO{egO4dglz3izgO}mO0}HuVa4>Iq zQS#yXNrS|O8iorWPdA-h7qN&%i@9NGH~Tl;2;m4cLH$FaN%x)MSQ4lqcsXXa#HBHrZ2#_{~1 zAD7!|Cttk-+KsH|8QxrV*vBElc7lmv?s~=<85dj_OytfnEI9T%ae`vUH3m0MF@`4x z8MME%xrDbC`8(t?JXn1|g4yMk!)oRZkvTiK84flWpJ%8s3z*HczWfM7`7V_{oo;(p z(}pdLFH0Mqd$My(XG!!|xXGWu_~5vs1cTNy&aWF84l@)PX)!aLxyDc;Wx>nL$jrd- z;q;^LHR1|96aG|plrqL&V|co5-#70MY!(b6#XJSmG7{o=4BD8}cQef5Ten>5K*gbH z+dptF&~Ew$I$~wQkKZS+GaT#^5Pik4dy;{}>Eld0%mNlQS~4z3zP#|^Jcm;Zd<-ji zdBj_{RY>_PYGi6S!ti0<1_h}j>djuK7~W+a_%89_O|#?csSFCu`8;ehq!Oh2*+dnY z->9(_Fk~pLZi+52exvj7!5@YTJ6k_~3|+{&hS5X(!950MhNA`!(s4YqBpetfFfuGN z`;giS6A{i#I zGOw}vS7#B*#BId8g{Od#VMb~La|HheA!`S|`DfcopK#uoyg6}>c11el1{ukOi;ra; z;|&{bFd8v3+!FDqc~}ytu!^y)%fNxP{$FNv&FOd^A?E-)h6qJ}iNGcf<`#wxp$dl? zQp5@lt!`44oOby6vx6(xEZ9CiNa|y}BfNmC%It!6V~=u!_ouS7!xuX54`K_Np)3X7?HK z!j(y&mV_F^3oA3JD-RL{%2?if+sAgn^}wSz_E-k5_W6f09z-!rkYiY^sBnqZN*0YGOR`FyRrWsCRwnfl6ppHR-rywPpA&cAIfvsX|-GrtX-W+K=F@behFr>#YTd-*y z%DCXC$QB{Nps`7TN%;W-uOm}K4}-yRhN+8AH_erQQvW9QcHiw2d`Buh(wJkTlrxun zbuE*T5O!$$|Nnd6uXAaepIZ92GY3Q{RK|s`>OQJuX~kxc%5afeNy5SD;2%kac#-z+ zEtY&27z*wl;ALDVy=O7wrE0}#j4TZQzx%5@F)>eg>u`ma$KSzNoo9pAZnX`kdJ`nM zADm&Z*I_=h)HG1Hj`@%90>%fX2fn^94( z`=uGIp7ymr=PA(m+Qh=3!(ecRh1qANFiYry$&Ks>80zyM=A=yHJhPtl%RccBYRQaq z7&ZuVsnq?i=XYR^`EMhAf+7A5o43Xcc7`u)6YA^*0-mNG;LKvU&vjzXflDV>)WxZY zoOxu-bK&;k!h_uBiXL9%{Kk{OAh4?8_~xLl89Zm19XEENx!c-m3&c$57=-_{j{jmB1CXoPk1{Su6y}S=<81^fw z-4#$-n9z3L{{%y_qFBs9s|$e)DGjU5m_+x=El^;p?qu1N$WU&`w4HhK%?*Fz7!n%F zlUb5@6NDROZwXnjsaFUvd`M#0uJvg~Y`^bpMn9$%%5PY0tV8GVoIdATVF5}Qx{!Om}oJBU*D*K(P0hKH=Tokm~erU|&=`c@Tz@NhKV0FX)7Zx4AgqTlkWthjHv7Py1#fEw& ztrH9<*bLkP+FcW*I7N65urWkxiLCAP5@)GUUeLvpP`ls;kBia=hdX`Kiv{;E1c)@s zzGJ&)C(I&w;0D91P~#7Cq#6$^Bs2Oj80?5UzW?8+m-#nH3mnq!c_` z54#==5xu~_zn+7k!r*{Gjjj+&?*cJ~gsWx^w{lsZoOR%2HLha%#puH(vbrI~Gk~eV zw36|HZ~zC(S0S#nBMfn@aTnSe_~!HZGCbJU8ZFIml+o%G2iIDLS_2n`1MCc+F9<(g zxPLVvxe{D^J9gk%3_um(G>OOqm3qS_Vc2WnKnzmN~&} z85-&vWSJS{NhmvobT-d<}3gle|{)qsXL(*+cXI z7ef^Do4LG)qzZno=VaJnXMfv9M6TyRj>(n3|Eeq^{(U!Qbdce7Wca}Sc=fh34BLNi zZ1h`TX~J5=@G4=#TBa1emb1bReeH)fJN`&&$Wma4dMfNFx>Z)`B10_)3nxQF%{0cg zf63+o6TUQu9%AVKz0-ZR! z@%Tt8h%vf|D)1b5@_QxY1fGt^9s+snQYjQ09x z<1{49nRyvZSWwnPFx{c;I-;N zYD5d;3`Pfg#=q~nInz)CEeDAPVTQJSXBZZ81$<0$xq5SU z;Pu}%c1veoSaxu6<4i$|4z>sE4By!T+?_X-E!ZUWV3p~EoL&bFrrSM?7la=uH8L^q z-Pixm;-b!B>~N1efQ{i8hg|<;FXM$T%Q`gk*=~h3Ff<4=GzgdYY&#mHtrR2r!9?mq z(MP)gJ1LJ2hisNSju)yTXL=aZjxe+rDY#_vCNO;1BfplPMYvHngY}2jhdH5)OblT> z0vZYi2eyQ>Ph#-sS@3Bi!*wnJhJwosp7s^<8K=zRVOaP5_r+fhW&$Bgy&t_ec_3Ag z;X_J8PJD@rL#to{Lp-a8#tcCQE-8hc_An3T5O(f{$~{}WG_UZtaXUTe+t9+O zB6^OC;o0~1fyNB;`AjA%C^PCXY*R|;DV)%CL$Hit`D6V<41XjaG;^?Q>0sQ#zkspe zw#osUd8?-|&f2D`=cZc7kjM}we~F>BOyP!5s${|jh8=TO*~-6Y_@wahyEt0{E5m69 zTi%8@IaiJ`sPi`bW^2$CVz|lY=X`K)2E#Ijh-qiI^-P<4IBf2|zka)RMy=?IefPL0 zsW)8ze%a^%)2W6@Y%6Ni&M-J+AE;c-ls)x4>w$v{{%{H~Y+yPdUBPI#Pk{TH{SUT= z`?^o0c;LvqdMsv2P_5t~Boc?HD7Pk>mh7v&ov(hz8w^p5CNKa(gHeZ_0#FKXxn%l={i zegg)1HjlLj1UP1JbwBE1`?2T#yk%T#vZt`02uYa7IrXB$GM*2PDoz=^7wYc)zoW~r zh;4zXf>0x<$2W&TAVlFEd+_6fQVi#h*UospnMq1vALEA-3z5dX1`PQO0$~astjFUf zur*9$U}JbSmA{~kL4YlRiy?tEh~b2!gLlKvDTWSZ`YPvJ^o(TAy!_nE$bFE(OlZpg ze~b+5Q?nbyelvKgT=?^^JH_cH;{#Ua7LNd4iG(@)U+Y90jxotFsED59XYdYWDQjd5 zi4a&g>-=&(re`bH1?n$Y_=sT!BMZa*NsJ*i%(K3(>~1JLCD~BW#K15uPNG4bLF_%t zp|SZ_FLpfbr?%#-b+@5$K>({2d5eQA1rkZgz?b1b52KT000TpW=*lZq_q!Sj_l3-4^iOG9Y8!nbLD>8YVT`+}_Es-IO;ltU6rDqsCMHkFXh-Hb{HHT5^Rf3NcXG{xY zM6I3ZFC`HPlLOzDGatBdMU!b?80(1?33mn^6$U2_fxh9~W5`J!C`(aY4z|8Q5dCE2BoR`)wfSrp+Aezxa&_%yn zoGpQ;A%N||%ne*d4c;ufPCA6Jiu5cH>~!d4F-mE$K8eQBHvkb~ze<0@~FZ3YgTB%uG}c zwJ_c=I0vGsGD+Nb@!`1f(dfXyz$UGihLH`oVahk8NQ{#`NfeS=vlG41TMYFkX0D zU?8nE(czrGLnq^{GKEW^lQ-Cx6y*_@wZMVMB|0gB%aX_1}*tU=Ghl{|4rUXd#a9qd|8SZi@b^l}OmA&itwM<4Qphh6@X|HdGbr zF|jqVF!bz;-@+tX4SoX`7MtjVRqxqlz>3y6Y~O&F;sZZa#UepVqU|>@Yz6K zT7_x#EAP{fS{ZLJ9$;nqwe)@^)2#&Nn6o!CZu2hN-V%8Ep^?~uZ`>0X2r(~Edhjcc z$?^HNI$Lpvc-}vM9 zh1)`Azw=hyV62#%p1`T4)u5ap&0vwrH9@y~nNFkEH5a4MhO#n?3+j!t&xi9L_?2(T zAi*ub`d~eS8QTPXHU`!kwQ=ij3Ez_Id%bGaDQTr|##{;vAFTB6pJ6m%=)e87lxe|M zhARo~0;d?umf9|S#E~q{6z5>vFprm8altGG4Xp#)k1-t)I1<4aazo&uZDORc$Mr@X zhTo-A{n(azCS;lf@HoaWW*k0L5yY6oaUobSoWX&0yQ?_2<3XVt9ZUr_{u=BrxEOv! zKUmM;@PaMPx~V~Rf)uxaHG@6F9>oRD+Y)wYZ@U-4utmM(|6dsfdr4J>51|bgc&!=_ zHq2m7V3?HmU|LYaW{m@fL>4R;J#efcb{WHy(+ii%95~O$&0r(ypvZcH-C1rvCqwB* zaR)mo^*)1n>UIk2JXk-hcfV~lfq8*aGc+A~r?D;$-RQ_zBe_77HG$jVUz$f4yFsafu~derLMHp8 zxC4Usm|PfdFi&W02##aF!N$-bqp+I!!g{tY#SBfw2Q9Y`ZWEADJKSY?;7&q-_T7YY zTnh{sUP$dY$?&1I!BcjV%mUDy*axe`z!+m;CMQ`9MupdG%eFU6QVpnbv|;3EV_vVo(5 z_UAsZa0SEdUX25v&T-!m3Yo#%y|zJwVFiN%d%@(yeLMwIbC1x^9FvKY`tW@Rr#mHgZut)N^9ZLX1gG>Uq$b$(Q2c#;Q z0yz$V(~o~A)02H40@$nmw~92>S&7YTYR}PeV0ggc@Tnq0hPUhPfvR+ygHjFe5}q?< z?a;G&&w61k17m|WgE5x?V}d#8_Upc1-@Ti4ju7htwdO7^ zg}Mo;S_i7+MHg&ls9^O-V=iwMQ0QkXvbFcV-4yKH5Y}-0_t$7HgYB9T3=cRPvV?;b z3b}6_mU-ZEkLj6A;v$Ba^Y)dp4N|<9?k3D-o?+Vf?d*yv4KFwkD=rZCR>)`Yi2ks$ zfV)CPk>M+okv+pk^$?jv8^#P#6P7te{x|+z)^>Om&4-Zq#dm?pMEAdG3H(Wef2p*S$M%SZvV*#HoxJB7GU_v{OIFN z17nG#Hw@wH8KM_3Oi@13*5D|TkjQmGU|Yfh21Ry`+lRDI33G@%m}D!d)}}Cxp~Z^f zON*-I0q6FH>n1D@I5wO;#`K|SMi@gvdB^kSiA*yD3idQw9XP7#5Grcc62U6r!YIbv z(A35-pZU$f%L|W*yeVe*ox+pBrm~&kkf2%_!#9SOhZ}5IX0QqhGrSYKz{sHWC&{CT zo1yi9+dSTsW4mW%yDj0E*b$ZE9R++ud0&++A??P7Fhx zk&hf-ToaRt0t=4@O9g9(}=f5})_&D~+y(8u7%$Y*WDe&g9$hY$`Ch8;`|I*y%8YvwZjkXca7V8MBT zd&wuS1TF{VXr}2)86s6LXf>Q?JoEYE%}p7n1ldF#oET1jJ|8c7pn~cCVx|`l4`_)o zUE8VsLxXFB3Bx1Z28II~2b47&o--_X#ZbbxKnSuwmEzTD}XieJPq2!42Mv7+x7@HvBoblj#DRcL3V~Gp&ZXyk8g;+&z{t ztdOh_u;=h*=uuvhIXlH)BBo`vspf zuWh60Ro)|06Qr3~7}hZ~9Asc{*um<;>!$Vom>oIP+W>f6P~u*ogU|&E3I_~f=mreCn6Z4891CB zqB!qFu^`MA>u|b_7pZ!PH8P)Bq{_z#Uq7J*AE{fG-Cl6GJp>MzMDQ z(}CZw{*^VSfEJ`D?0^!|%H?2_AnG9&x6w2jvcNkq3rRtQn7W7o7W} zaI%VFi)Iw4AykkdJ%J@IK=uH$fv3YNhMoF0Z`dsxT@SAM*rveP@bKemrP*ghyF?wl z56Ev&PSazzxGkHww}*9UG*hkJbYj;jzgt5)efXIR9*&3r(G@uFBy zal_Z&r`j9zco`3h&iUH3Nyg!if(>Iu_C!^Uc!2~)4Xp!KrmUAixqII6e6A%rj&|%b z_I++(B0JNY&oTikdgrbB}vogpNTgG2E^O}!W6i@1Pi z?48pb7#lV+wPY*2GzKtONJZQb)?(OT zQx~3L$hl=ZLo|2X--S63moP054P;`-XIP}H5zcU(_t$ks2DRpAMGa3LW*D-54sWpG z{L`SAAkFY&8q<=t1z~bM53ARxX1FnK<724h)zD`6)U3d|0pto*hI>LLvzf1CU*?Uv z+0Lx#pAgV+d1VTh7{dmxFVpk>_IBSg`n4q7Bblsv3g`3 zRAdq0TCo4WqfX--#(=fi>`V-H3JlvsDw-`BV%aw^%qg~R&|tXy`O{+G*^Cty0t^ZH zjI69TSQ#dXFK&``2y-oFeW1HX;$q70L$!Pf*$2ZI&%G}3UlJ{{>$Zfm00(2QMAI~; zhErONRxA#zH+n5tcDOfhVDkAghmj$PE3N~SS9w_-o{KVgG_W4fVqkJuFF$D`!#{>4 zhZ}DQo7Fz&4Qr6HYHHB@VN<~%71*FUXZa+i8Wqa}WqWGxPL^S?ZknU{qsDSR1H(p1 z4Tb_Xg|mzs^keE@7Jhvi)-vVVk)6>F<~w3P`W7%tunO37WU~eoFLvCj%X;s9GIt*1 z3Be~-j?3RMF)(l`FzC22W-yc}KBzOEw%~J)?1LMn+xV`mu+wU=IP~K=Lzf(H6f?sb zRgPkVF#jm~uyg+lfeS7S zQ)V=YGca&4G6!;AS?A!yxGC>Lp%>GyM2V`Um%4wJp-7-p5YPGLA8%8<^H;SpaE!m!yuO3T4j^T5Xy$p=*a{rdggkcorg z45Nq010M~Ct)&bVtS5LBFA7y$WPPx&S+gOBBWeLtjSANSaku!h6(445uq>T-;oKL| zqkJ2B7BdEH6ew7@+P}S5H2LsR{2Gmb`T^kn;k4@Ok4#<1&D$B?bLCG7Z7^TVz{K!)GGE8y ziwo{A6c4!m`0zdngK!S3UmGXHbu#I2F)UzMscGsb(b!$f127Trg@}Tl7$#{W(%tGrW4E-NpFWb)g zn_cBI>n_|qt~ae|IsZQS{CKto-%48tCWk-&ys8}U zFkbk-L4(~R_hISM@?*2h9xPjx%d+B=OoBnPW0i&jD@zHeoojpEkn=>$LId^-*-0`C ziAEfuO#SZWVwW=gPekuv(O_)&Sa_DmvG%;^byi%b$G^gA!xDV><~sX zzJ|-Y?r>Yowfg*!wSkrK!ymEhEsCr^c#9iKnH=W&wnqp5xUl=W`k{gylhPE58R{l* zO?bkvO~_>39OWf!r3@RiZ|yjwf0;j1YC6-7pbcM|B;@b&6tqn!;#zn=eW~JJpn`5x^Yq%VWZ4hKHv%FfhF1-c`-u7bv5!l;O4Y2XD8g zH7=L9SjQ7k1g2sfz^$vcqZ?!Zc&AYjAwRD zSZpoBx$pDmn!_yf7P7C{XSaXfth#q|n0`1U2VZ zahC(*8g>STEd>rd+6V43Z|Jr;@MM1DOmDWQOIaN_474rYGCnw_aE|q^HG`QXLp;>@4UaQ=DKyiYaekjtZ(r7#`g91HwA~l zjL5u7h6M~f2ktU2;JDFzwsD=UL|97%!K-JL*sE4HijKl0&EQo3~`KR%8gtNS6NOd8ZupFULtZ}9p7^g15Z{5 zIfn{{XF4A2hXN0tV?N-{z+CX$U5#1j?ZJl~608TVKYxCh%VFj$0U^x;fwLL>*d{S7 zXjFD;)70abSl+;rFqOerNogTNR_PBJO$K%*P6h$Z1B+}MYFS^rbKq~-#qua+f+jnI zT*L3CcmHgn`4gm>|NJX3)w!X0K!velg0fOjwenl-1I!1w95@@cuor|L+@<%YpJ_oi zw^K~=1s0`)Rw5@RKG@BkP|mdQ!L?gf=fA<$0#q~@$gVM|pTtn}O--_aAz~8Oft?CW z&!6*6V_BMhWQ9;eAmfLnWo|nH3bxgl%g?g$EOD z9a?=B>}Ql69#b7OhE2t(EV{BBW( z5Z2k+57sj|G)&r%Z^OV`@SovC%7JA}9NA3#UW|77T0&Fg1et9d&el3kVF=&~Xtr>O z5lUnHacQE$YsO8!{0DLsUHV?~zRH&1aQe*1!ty}j!>@|hjK>&f9+<_bz{GGvdbx6= z>>U0Ckq5p^1#^$<*y_~yR4}kL^e|o7$Rx5s&ES2VHiMiBLjYrp*@f#Zzrq=gH@^G7 zA}8Rk%VMXE>@Vu}pSFIGIBoKyH`)qwc}qec@-T=ptYM#_%%9NJ@OjTAhCS!CL^>WZ zyga55#vsJ-#?N=MgkVt1VyCrCHE}sQ5?TiiaXEaOQSx9KQwr$zz~Yzl8v`RP!WjBk zE;A^sWGG1HU|I0t?!(9*ToOvG2@D#V4&9F#HW)9N!0>0{!UK=OJR?qXIq)_d58hxY zq;Wv<8Pgo56L%YLb6wcPG=bS6wK=EWB8*|8BI^z(RtLER2d;ugF#?Usj5oe9tdm<{ zz*W%76_97koPCaMGLwQNCy%Ye&)z<40Is=6eCUqOe#`Qv-h2IYeyeW%#IO7CO{7mlc6c(gRo zlm9@iV+%vabawG7hlb#WGfWG%9e0~};EM4C#s$m=zG*8Mb3I_#(5v_;Oyz!Za4ssO@*=^-)OKljQH@%R#Ec4CR)`5-jLO(-FX@Q~F0f>=UJwd6ww^(NJ%J%(&U0Q?j&7$$rjGp8P5nF!mJGkF zf*OinDj%H4^ryRu;T)?V(}JJ;Tn)dO0;(%=!`TW|W*qz3xxOL8PoawK-Wm=jxduiB zrUpOuYlXfFK5Uf?E)#gPyxuV8$aEAtZeiFFD*8s`K|d3N=7D3{4aJTj=iX)BW=@&N zRI)&qfw!xKtKbUP0fq|}{r;P*claG++~mP%rRcKDoF|6SRGqn#aY9hT7WNmP92m{! zHF_~x2>Gx#ScNqxePGxb%5X(WfO#^w!dZE!!5Iw zDTd2NVTs1HB}_JjMiWj1u2tM+dg4t#zpX=_Z3EK*G1l9A8&&(5D_9@+dviAAi#||d zteDP_z}dkN@RVT=_o5XHo5LG~ba_89JV|to5S;0-l!1p~=H}|GZAy)CjO(}>+TV*D zaAmR-cX@78#W05{WQD>JjRsZ)<8J4z>=8ns&|_k_&JuQmIfHda6vHGghUYFtdL8F} ze!S99vf(>}V{w8wg97JCz zetKuj0U>RMe)`_#*%aVoDRM2t@D~K z911HVMHA#6w#?vp%G3b%B{B&@fX z`6wxfKKN=RpJ3Ucn2^Z&L!Kdln`r}6iWScUZ`O**3{NgFtB5+ho1bAJ60QO!^(y=I_L8I7BD5e7j3ZDp8MH&C4=kBYi?_KG#H+(bl?iu5qaheQnnfXye-i`47WNc|6O0$y8yBdaU|qu_5-!ToGV#F%xdzb&0|x6g3?KJY zusiU*a@?d8)UY>@!H-RdSwT)%zNT) zh3Ks?5KdxZeUPHC^0S2I0ih`@YtvaD>5#=4ik8e zOiuc~hQWk!!pj2-tV6ULA|)5DYv`YzZOuNpY4T&n8_WT$3H#qNPGPFq6LU*)2~&;h zjiz~xM$%^(CRo{*#Qu=`(k8k?-;Yq-iBayW#ug!RaJhRr5Dj0;#BWJFimH01CGauuvN zbZx<-wbD7R57v5aTxQt8xS)d7gEeC-`wKVjhMnKS8J=wvIT>?6sFyQ^p@VTlwvWb+ z+^?bqGXgvVCd#wTqjrP!;S8pPI7Y69yqRjII@j(q$|sq~T?lQRmToT3 zu$QSK$iSC>0YgTpQHDhK2ho6OlizTkc9pAcc)|4`^5GRG$D)uWj0yH@7L^xGwHm3U%yRG;q@`+ zna>{x73^$a`p$Y{QNli^6N~}he?N|kXH4FHqHDq>cBW5n3`!&UR1}IAJBeSGwb{TV z5YE7S;7;FbQHAb94l)i*3Pm;Sb8;0Ff*9Bu)-dtBU9+lbDN~97!%N2co!Sb_6BX>` z9YD=)0R~AfyK6!Xe-~siO+Tg67tAu{81ug-HHBhUMn#6##vkOrt;=!GlVMXjz;?6s zDRW+Ytxs~K|zL!e^N|dtOqLg_v~dpu=Dk~VC5u-Vm96#57ZMGcA9AUaF_Ee z5O(Tfaj@sHZDCMnlx0}LF=v6ui}UwqY%tXbYu00A*vzybgrVlZnT$&e*EKmAWAA?Y zsUO5Pi7jF(V;B1Y_GOL9@0$+D-afQ`ZVpH0Yyn0wyZ>Q%Jsdm^QVxs(N(^(@WY~0A zox(p%EpOXWr!zrN$|1mk!6Bg`QgVR{L(LAI32Lr<(=(&iKVPDG<-*V30s>r3FIb-| zT~Ksj43J~6<6zkSx}bg8g--Dk?hHCgY%^4NPgpsbuuNfZkYsQ;y5M&0o_YG)mq@*k zOgK45A+6z0*^0J?Lvj)#l9CVloC3bFT>2Jqj&Yi*ql0o6qXN_Md#NH;np+Im78n-V z8XsWLb$oeAAvr~8LTiJSF8jFzRxJjv=b5iBkuaEV!Xk2l;j_h;z3({|torlBy55J z<3Y|KHVsh*WhREac7A6GA<=v`L*^qK36K76xWc8v6~G{}g0byma!I>I+_@XV5#G`Y zMhy%OADB`N7lgBEyjxhySW$7fR;K*eQT50JlVbQ7*j5N@2bem{R7^OgQ`fS)QHLqn zIl$t-0P~Tj3_*=74HraKFlh8MPGCOvyVtz!MoM+bIfld#fo_If3Vu8caT}NxSTLM1 zP)ytLc}YMIV}ZWIj{_$dZm(Nl#qdC=n~|%5$<$$&>6v2!2~GS{N?U)fQ&_|PD{^76 z{p(vhJ~0^Vzb`4`#rRKquL4`#gDq^z4ONFq+YPB{j}gh2(t&-J>@vQpGlu97AwYZg42y5X8m46ck1_?a7)A6=i69uUP9~kZ4kr#681(Hq@PegLbcJ;?S5;j-7u$|sYYR)CvAj=V+^2iw+DwiMZ4Ha$Vq~mb z)MxZ6oMdQZFjHFaRVhLADg&!SA;Sz-W*-fv$9FIEFf@st`F=!`_r)>`!|i#?od}aF}6}I?EgeR)s?U!Nr6?ltbkw^e5uSB+^G*^Ol##e?JrO6JN3=?Djc|7rd&11fd_t#S>UJh3=8o(2f{_g;m|gr&tYOgLV%Q|qU?1ryH8)-DhH$!V(}BksA4+kF7^*L1!gHN5jr=hAGL+59VB$ z!Qx=v&@0^J6US>L$$H^M#%ddc ze>C9@`>ILnK71)En8bELlyL#WbdF1`jxV@E7(|{he_gyobW@kWhMm&;oEff2C}}cC zI?P>gD5qfpi;p7H65Ynr(!39DGf8POrIj{uZDDk=pYizr1%WGFFBvk!GonQEm>3`u zN%j&y9m?7nHQ3%LE!f1{$>7DjMRkdabi*|^Va5a&0qw_^mOZ%3;2^+Z$Z(mVw25mo zV++5>^ZOl|6F+qGK=DCR zgD~TDZN>vj8Mzvi7(SddYuGR9_ST_~F-KZpgNO15UFI#*gdF)8XR(W=F!$&%E-Uq7 zKPp|Qo3dX@N35$#(BQ?@hE1Ce%rsrFopB}K21#M*cdR*l_Tr2o{2>feCb2g0HY`ne z#kw&mJwt~7(=pCC7UnG)OcAVEjyrl(9(?bVXkbuS*ShQT_S`z%g!`P|WE!+S_-K7t zQkh^V72w67&@k)AeW$tib2c~36;McOU~gE)$jX=?7s<4NGoaIz(NpzBuc(Z|fj9+e zMy`fKlNjEyZY&J;Fj9DtYwzH|(8a*SFs<2y-)0{h3&R{6h7)W{j21k7e4g#-vDF9P z*6}!qaxnb3V6tF>ih_}YmHdXg=b7#q91vnCP-DnQE>QG5!0yw&LQgeB*yR5-Xo1_O|;_D>%{iy44Fa>dJSuxzVJ&qx=^#0gj_GhE@;abdpqXYGRuynL4x^3fKVwjN1u!75GADau)gS-Q6 zP7NEs{EIF$%{b0eR)45olauL!n2X^9=d%wEXFISraPzUp{9R*rydA$zWK!Kwqz*$!O{CI9ZRw-l=|C1|{fI>;jM{om~yE`BN(q$H#& z_uXS>J@C~P8+NGC|Qxc`4J)^R% z7ck^-Y`#MY53gk{N$v=hkuW5^UB>nx3A*?OH#)M(RuZ; z#+?G)4Q3I0IRZp0B6uqnsR;P)Ez-uoEtj*8de=xoPEGlz`=F7TwPkX z{YwrZVW)t1yTfIZ9j;dzGg=(@o3NMT!nB6u>;qHd>gD*)ZrZo1i7n&)+a4$B28jj5 z=Uw`Yyg0iVA~wo^LSO2GNnD--L+|!aC$2fVwpUGXbzH-G!mu#qM*}azeFlbxTxT8T zg5CrH#$Weq3pg2``-w1EH|Rz*=e)V;>po**Wh^xWvR|Nr?j z=l3HKY$vidc&=w(oZP_k;N1U@KP&cfSWWTYA%BzeLS&%(l?Kohbe7(WhHuPf^>%XS zZ&$9;j+0FIm+lk8$`eq2`Sr&im1i0lp>aD4?h~2Uaeaf-~arzsWpqw z66RDXiC%_JOdI5c>kgu>d)zdn(8{B+;j*SD1qsEe^M=yJ$iW)rNoDWff9Joua%J+|(mchWBXab4onsknR6^SHf*23TEO!`V1ph@h4+3bZpH&E6GijYckN5}W;o2B-eMWa zaE{}YA`1gk2KR~X<~}_y205l{T?{Lj1P(+>GQ_Aftg%~RHDR}Kf+2(DfrUbh0Rjr# z7UFx3H(Z)!!?K2-@t*;c1e4CIjk_(h*Nv*gc3HV86UGl(*C{e3CN6c)*LNUK4|UYcQP z!x@HCj9iHgkN3+e6v#LPGO#q>(rDP;V#~5-HO~}grVDZcYwKM#6|4@JCo6C>Bi*J3@waN#=_Q~5#uRC$eFp%Y&HLeT!GNNjy+Y@a54Ebl^z1#`HjYN0}vu z!&JsOXBEuY4B2RpY@a)`y+R4ebr0iVpWgoPV5U3z&bDp{naq21Bh6 zQ%8xa#UD$~2a6NzRttSPV422l;OL;yP`m8RpU#QeLI=VvkJ?KfFu#BF{@TluTH3W|s`>g)CMH?f_{f0p=Rb3|)>1QY;!P`5iOgF>I7$OK)drW|+aw!RjW# zw1vq+aL3hctQ8y)yi6fen0K%(U}lJ!!t&?8Kmr>JZ(!(T2E7lnbs8sU@g9n5;8>7X z#LuYh$RGn6a5*-%9->&Ih6d z8YVlKF|;oy-u@MkHLP%z_j=uEg;k}l}*I)~Fk?FX*}gJHrKfelQI4lErzqpuq_ zOp{T#$kWlze)L<&hYuGSSXj#EyV^cutUJ(Z=XSK=Y>l)b+k^85<X`S;tl)!q>hxYXh>SCMbNtJ$}L|LRf9vzR_yIN52Cu)>B# zr-vaw^K+*~Svo@xLlPsqAcHs)`{vKDtr|q-9Rvj(4$LVKO8CSumm?ut;y8nTL#m{~ z`tpRM8~)8~Zg65~VtDmKLYw7CKNAOAtfpNX3nS;M7YCWvnZM#cmfO7Wi^vWWrVvMu zQ)C4g zvy2$DnPQGGR;Y7G8dP~O#jtaH`Tla}#DpY{1!rAC1+VdUW^m8=Q+D7G&kdIiTnP+2 za~UKUg*2IyBsu!~J9h|lh|14XeZ`^hfcc^C@dz1Nsg{N(Me@uV98)H7@boS}pep#l zl$FJS`NnhmH_V?()7Y-?2?XEj*NgR%iwuK6gG7LY!`=VQqRb~4GmdmzHD0Blkm;-I5qO|SEMOw5$Ue=KNJbIs ztP5w)G9SFfpvT4dLnN`Rp>f;a4?3MU1RV}6KOo87@o~?II39&UorKL3T^Q=#JkTt- zsIuTE4_j48xWEN7hJEW^aU7JLFMNjCg}s|;Co6+G&&%SJkFugXj8^;?Iv{SJ46C)=8)2DwX;$8V=4D>kfRN)mPGo%C>Jp^cPY-+P&a2b#`dvlb{kaLQe( z#(%?Z|NeTL-USQ|4aswUFFztK;_$DNwbGy=ucqo|UJ2iV?~FPu5*$n^-?-oZyZw6q z;m*VMp-e*A-V7oeDwjPlUdDTZt8U%L$_JB}IusN2FEY%tyLW%SIX~M3mL>+9fEo9f zG#t3X#L8$9c)_*FB8kI;g-L}iCv)#s)|Rc}2b!2N4h8TuMEtp##k#}2!Gl-WdHM7? z_tP9={%T&xb)3Rsc6ZJS8wZU7?a2G5wIdw_ro=IDPh;Gqv1qZ>G4-g{?{80LvThP^ zI9GLV<@TctO$@i05CD{j#Hd&qI!-PQkuA{z2oGeTu&_*L{|Ou1t6M_o+7-h$y+gGZu*81rH+VU7Tv zf?oxH)KC9OOg!DzVDk63`PTEfb@y*ED!e>@g?E`>xiag8g1|k`W7!*?&gT&IDSr_# zm4|VaScWUZD(7Xt|Hj`J*pMQ2;oz%g#)#9KY;OuG$m~>{^X_d2-_IjYmm4;0WBy>F zv6LaEx};&Dh9Hv#LxR`}!GJI9_4nk(wm

      )@wyzw~#nyZ)nS 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 z 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 HN@xNAWG7C1 literal 0 HcmV?d00001 diff --git a/assets/main/native/6c/6cbb911d-9095-4516-bc56-d562425f290e.1fb75.png b/assets/main/native/6c/6cbb911d-9095-4516-bc56-d562425f290e.1fb75.png new file mode 100644 index 0000000000000000000000000000000000000000..f1669d33f804cd4890317f6a701b2df9c4a972d5 GIT binary patch literal 100369 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�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 z ^tRxBB84DqrnRw$fdesqV=f#(AY!;L$ldS(u648~q3nT?pDvs_4Y zW|*;ahyI>jrX9zcug==!kl2vE{8?kILyXXlb2o%%NjfkbsC1az$nM2d+^*)z5UkR` zci3k()6aJSHwBumHiYIfYzX_UIEn2+6a!;m=W}x=4MpkIj+X={Om{8zzc6dl z0e8j&PhRmFUJ?4n*Wjz9(3#N9Sbe);4dZqehe>Bc87ACRa64d7%G7ZC?ZV^tBBQS{ zf3Y<_AaIXy!F`PdM;q?u9yrBn5`FgF4bCV|hEmIdH`)v~zW1;599X=NlYvXTbHOqZ z(G8hAnQ<2wl^8S|&M@fQWZ(-cbM1T2lkofFB*uc;woZlv<;VLs$aBnUN@rwHb~v|x zQNuOaJ-c~-2njEk#BhT3*d{@PlUEnAG6<(Mp7*a=*T18$mGObs!kJcwgcwQ^89Etn z-`j9aY*RVQk9%GY%jy{%%9?JlKN3h-Tt4{}!;V<_I@vC^f&lIZeFpAA3sxr`kY=sf zF0o-d?+nfc?(OMb*DlSU$khRO1Jy$5^?v*Twu2{I@%Gi*NadguHpSDMyTF*C3-bTY2d|6rU_T*7?d zo>_t{V+m`6fkU)>4)@!g5-N)ol~Wq0OB)^tUcWa+H&%jSQ$rjBgMTNZ5Q_zWM(2Zd zW(j4CpMO3Mlm9V^VZ)({1q=<@j(;5(epE8cYX~sd+}AW0VrF1?B+ZbeuVLO{F1TSc zOGjl*|9N}khN$WF*SFpho>Hq&`tks~65EFa=7Pl?F;bp94Gaf3HcV~YwXES8%NrfW zq!r7`nc_aW9IiRI_5g$N+AeK|4h9B3#_c=|-QCVH*BCe%l$jOg@4px1Ak64Kfx%FW z>A>gbs){dXvoPEc4rOl0X|S6l%)_xGR^|r76^#%l1_Oq-BJT1l_!uP_H@@w?caybZ zazo8O$9%ffH4GO1~ z&bB`gULf&dJ%hu=vj>l|3#tFOvsjR0@1b*786rY%lr+CEQaNFyU?#X>H=7QN!t?WQ zAHH0!|Dj2hr9-$yal!7GUFt#y-mY5iY1zfl%9zI3U?+Y{pC#ZaqbA#y!#Dhyk1;XW z)TgmHF@!dAF?(2gd=*b@U}>1bT6DbND8uKf|4~zJw$zwNoO$*;jQ^HA!={5rAN+JT zWPIQ*x97pqBnGwv23!n6%r<}TXm>JnZF4zPykGy^2@8q!o!t{-pJ!EP%oe<3%BgT@ z`RDa2jD`$mZTc26W><0>SsJvN51d;p#3aD*VBUqBryPs98DeA(P6>YBmlOA(PRig^ zrLeSn4)3JT<{LEM@#PixXExlCG3E1Q;$YCrdR8XzhTS_;VGFZ^X~jlG>z+2F9v`C_ zEE8U3WFD}S`VhkAblI?zfn%$tM|g+6aXZ5s+#NIbCl6eGdh5XQ3f^Z%&Y2|ESO zF0!xZdeeXAx~Hje#c~yeO;4uluA8c~LNX!pKSzVKD&w;Cw;Zn+JjqU8DYa(x%!Zm` z6@>=OS~Befw?2+)W3B7+;;+5F^=il7Z>Kso9T~D6sG_NGZ(yAIkrE zg_jhElEADcMh4|8O{?+*)~?QQ-X2`!laYBqj$y&{3xE6=l5Ss~wIGQ_gl$2V!JPlb zJr9_F-VyfWb_!tSV`<=4OxUdKb;)sA16xCE4uj{fBP?c$x6AG*cro0#C&$5XAnU`| zvRXU&eeUueH4To(nBJL4ah+Z4!?-_}^S6cTzID5vHdd!J-uZP{EnqE!2E&1AGrs<7 zeX6jL$(+IC{r}CI|Jq#eH{@Os#Z+jrg^9s`j*GL%2dlq-%^eo>cD!S0(5Qa+z(Hvl z!^Ue28&s4SABaz5UVfkPL(Av-Ig$)dFP&gw5Wl2fX(KmXmzjh0KsLVsgXoP*4YHdY zR{h>+9eh0_g0ZAB_|7ur1Dn|t7$n;5Cg=!EjeU4Q(Cju#!|8m64okKN+5Zc(s+GP~ z)D_4cIP!n4#}wAdxeQ7T>n;nf>zkeGKOsiiIa7h*L7`#R(v1r7`rXIdHcVysP-CZG zDixr?;Q#mko4LE!Ej}UEw$#>fdm4jxz&6I{9L9Er5Nm}Q-|M%oEL|JA<1w>iW!}M( zXXoqxzW(=GyPfg52E($(zxMI__t)(ZJX6KM&7j@DxFD2a+qC6QKXMiXHq^>VHY{Mg zBh(?5pz{8_DuaT8_5n!-mb2gE_tzJOGJJM)V?40)t8`!crCkA$BHN-Ey0*U4s$%40 z_>dsMq`;C<&f$F^zt7|UU+wA!;Y$pTpZC{ol>M%n2E(o$sb`)i9n19fN;Yq{AichEK=XcB#Vy*i1&rmr**Fj%QfT5u%Vf+3k z9Tuha=c}0J;Geb5Hvp|DvKWm5`1H=8l%>TK}8rsfhI`RljnEy|h@rSq0j0lGLRty0QaiSUS z%npnN7Bd)E>M)YyX0GhK%k4W3CCl2SkOKdzr3m(X?W? zpexAW#GvA!-4w!cPVd8)^YO%X>T2dZPlI=m0LF($nH=IZZxmU}MW z@od2jszHni>Jbm5A6SY$*v!4h#p?pog=j_vh5*KIehddb7IZKNGi;GyVYtw>p;Cvj zAzh@=pYsI6ocV%Q8VpkzWwaT>niuHq*e%T(kr29pfx+KllhUe14?pxV3NRhuSj63t z=wQYu&UiqbSy782fak%-3w+jxSsP08?HD??E?5=JTCjp4kU50OMql}4=z`Ui4poeE zDj0OwYM2-b6&Np+UEOq!%b|j4R@b*?4u*d9vi=|qivzY++KiG7lkMx}-I*d8WSB1q zF+4Pnm1LN;*MPx8cfz8Ew0c1XZEXi7##W7n^Lihm93Ap?6G9kPv0ePQgM;Btj}U`Y z9!J#E3Y%$6&4n?F!aYn03I$WRCz&fS7tB;}cy=&jN_%wW??Ok`12Gdsm=hEq+>2tU z=ry_9x9&p(&zv4^h6U_3$KK1UHr!*F(!g`zCc}}n3V#y0U+j?K*qQLh^YK%KNHNQB zUqcOs?nu#lmtKA_7h(R*#8_e1!@?pxW7mN{vN6gW6LjNJPdY9zzPdm>y*V}b29Nt< zB?cWv8Mb$t4Ch@KFR(qbt2)K<#NvZgX2S}GRLT1P3m8IpDpqnn2rcy8%E%x*breP3mE zipAcPM}aNoWOvg=))a18tEIB?m6 zVK+k+lM7RkM8QOp1MLhRmJ_xg(O@uPy>La9@xsO@iii+Y8JLjH&*+l?-|Iv^V(sI^6AvxF5T#YNMlr?(f97uP3+`BrY&z+@qwW zec&g<5Bd334##&Uurdf&7dTvznUK4hclRDKPG(0575)~k3rT7->i_*=Q(*BcZoD8f zPndD}v&Mg>Tnm^S;_U?-t}3uGd}1)Jsel6XFree(TJ2YoyJFa5TVLZrkL1xkU&Iau# zjeF+x9(kvu6??WNBJ9&Br|zZ||pvqFtifMJ2^glxx0j9*{Z zPvV|p01kwLIUFTMSMnKN@Gx8vzVyxD8?*XhkL3YBj=|Of{9VkHptj)l4v8N%y2!8gd+%*o zA7mCWPS!dwL-fHNetn*0s|C3l^hzb#l48o37}%MUf^S%DS1x18`94eBwVU&Z_=DJs zF%y2+-xgDfbu4kwU@pi~3IN>*qRi0PuqgiB7LAGhzknsbvsdV{ZhYw55W%%WlWCHW6idSb zhG@12chnu09ZE5d_{7A(@Lim@aWVrsj zh+CvF=q+M+!#GKtfiXgo;T7kUp9ujB{DFqknl>}p!f`GtWYg{eDfttVsH7ltZh16GFG1!b%}SxlRl=I}Mhhca$ZezJfe z`mQT~z;*6imPP6ce@=cd?Y|+y#;}ErVf|Kx#SB6mP25w2og^D3GhX=Hu;YTX6{FhJ z28II>o0&?=*&0L_++{QOeH`)S>!HL2tPaKpUoh|$Ht=wMk7V>?J0Q)lLi>hg+-vv7 z1j%kjMuu6uO8gh{*3DR^JHyt5@wC<9y)*n7Tp07DSOT;>-npkR_^~NeF$gi3s|GTN zGsoQ!Ok#{Uwup!8!n(hA7O~EVUd(V-;*n=IW1gpDf<~c)VRgf44Ttp%Je%%J?_w;l zdN#RSRIbyB}}-V6(3u#xRsz3BcFPB(_UYpk!d4P1mLFj|N+*vWbb3FtD+ zZ1}+P<@4Xaf0sSHprzFi|D3`1$Ny~8^QO@ZJESU)U;a3Oa~qdHtU@UB3D!#|ckvuJ z$(3O2s2AFBQgnyb2j9hs0_-c8&eZO=3}08ueU*W^A*E@lSc-3hL4)1|zfGB#|Bouw+rx6VRv1w#kBhmqqPu0yj^cWQo+3S>Ca zsKL;`m`Q=*_gv}bqpWS)lXYVS88Wmp*&ntka39d!$9RpMFOboQLA{zGR!B$R!NmcT z7T(o3S};9GXIijtySMgR1r~?x-#iU3>|^ww$EV17f+2>v;bK2K_Xh#i42}jrKK6^! z2JF%n-x&@Bl?paAoLt9{p=(je`r)veg7yJch7Zb5pY}3*xL@#O;dkHfzN?kC8cMh| zzfzmhrD9W$`3yk~OIM{cF1UL;>>cY{*{X(9 z&V~k}4Odt?xX&=eI5XPBR$Y(Uu!Jcw@&!ACfgIo5hPM_B4BosutZwf@(MW=M$Kp}WVGL5pR0vSY@l^7hE(riVg846xEIV&ZA3NpOmE?#HU5p#01Q;ijO<-Hqn7>c5Vg;*g6!T4%6xJP0Oh1?z_}_A>Ff7rH z2tQWrdV`rEH-_IanUSL*r73^=l*S)y0iYN$WmuqappAi_X@Sgjx7kdoW*wX!3=O6e z#Tw50Y%pw!;yb|*!^ptFc6y1>8QsJknt83hg%?CR!jsSRaj-e;tG_HNSAHbZ{=(bE z8aAm6>zEIisZ}PdWIeg+K)$5F^@j>!49{(NyB}06C~GNYY%MWGd z0yTykdDJlfnnLp8Js>n3hB)Y^=<0;pKBdBCU#&NV};IC7fIp?)_bhT|y(Nh}|EPcY0`%kYe~LS?B#jCfCavX6g6_9KVD1_>4o zhP}=VkJjHeQgCflWG-N2z43^9f`x+sLk+V)!#eK!|L5v^baSqVWc-n(vb@Rp!U_fz zy$_lHoP`+peb^qPux`+25M1E6fPrDg=rPq~6gj%uu~n!eR_F?IBG0$~|8ss{*;x|&ZF3a=TF)khlSlYtR~4`Sl`FAj zzp&EWh7w7k>5S8+c00r~-AFaqZ_nKDi{bXS3*36sdKeV8HSXar_{Yld_1$fG9@YiY zbNQGT88NJ5uH_9l>FdDCu%TSR=85@wu`1)85$p{!`H$`Odr`^X@GIi~AqF8f8P**# zDr;F>(-=w`->BRXW|(*XY3Aw9rA)Wq1{zeA@F>*3U%E(^!H) zCNT(1XPh=sxj~JA;oyONjbC0)WBUAH?bF8_91N|&h4 zx~#q9%g@6?fwAwr87k{5YsL8G^8c#d;hg=&Y)K-+oo_r3jNE3iaWm|3I?tLN5)TwKjI8MH~3RtN0c<3U(0yFzq!t*HQSeU^_kSh zl{_6^emZboczRReV0>@V5eJrQiF#}W>Kr@`RulZ0nHXMZJSe!qC&8u{AmgSVAotJR zJ0R=eLhn?EE$5|MnpBw{{LK`UF`74_H{|_}Qf6iih9@Qr3=te0atzOz-!)~(voNe^ zVSJ+hm7hm}ZHbP75`%~Qgz1f*%5(Pp3;1~CcY2mw#f}SwGfbJDIFuCm>_5ZEu!L(# z;sT9xVb{1nBpFuoTv^BG;puQh$w8^1qj~zGN7{TzYz&6I2@EeU;$@IzJ#?iw@``PXMMG8Na{ZW&U=9tg%iMeK9&_FI zzcKoV97BKC$I`z$)Lht%G&wui82lLuI$sy4n9SkkXYA9Il)K&h?F?(`_onO4TA-~Ps z677s_FZ!hlxTY-HE~?$ORO!KV{|oYRpWYdZHcc#Y@M2`|Ww0z`4!g)Bs$QtVXnd08 zE5m_2{enqK0)h!zA&Okv55D`$zD+KGBg9(lgW&;1oudsF3=SLI`42p;xAfWLz#zxS z)38;QVapcL9n1}a3@cmA*cyb541IUftleHL)Hgtwi`SQ@3hYwGt6eGoOxkiz)rz!3!XY0ST^y8bgbAEzQ9Ed5w#9# z4P4jk-(~OH)GlFPFK%?egE{dy!zRf$xy(PjWZV^ln`H#b9lN(oyi(uunBnh&RYJl) zKP0qhD5NqLDmferX3%*)ajM0=`|S*g4B>1w8$;$WG;BT)eStNJ;Y8$#MX4&v2?Am} zw3tHNV*V*`d9)t*+1#s}}$v@T2K9#S_fid;k-r7BTRRwH}nH;19L>1mXyT{nD@wEz@21A8a z0W-s`&o>zqzBg_bba38$U^4>)UkD@Th0oK&L=_}=+*+~2E^JEkzWwX-HH9mZcn`2J zXzmE)aHx5*J71YWlK;GJ^@-1Z6W+0EF12+Eh zITY1(&|Qg9%*{e^&nbV;qYoy>{eS#8_${MR&1V(nBiHMB?#Z8&{;S@b(ipxm(tw4E!Mh(Y~R?7!7 zPqpmRO}ndc+2Fz4lTX?+kG!<||3Q84sp9Gb`)(g*_`tX65Q7Y(ioLtoimHv)Y!_@U zC^o1v{eHV&y2xQq{j}MR8h_sxcJ3-V`g8i~J`=XSODuKA?;XD}vsU}sVN>=gIk^rK zm+>S#RtW1hi4=It;`>PSL7gcV!(P2Feh>frs(+JL} zXYe`3z|$~WA>rC)1p|hY9zL&ktp3%KE_TkejAMuT!~-4zKb+4tnE$H@;@a`UC)W4L zPVZ(Ff#}2~LPd5gNsVC~FG4xq@@~JvaWC}mBp!vI!dyF~nI_qs;9kPQaNwS^49f#a zh1VL~Z*JQ%=r9^E1h80~m0|R{sc9y)plNcMA7j)0`v1ozJPZ}Aq!}3cO%EK9+usC~)nJmW;jPvfEAwC-L#I%N+Js3BH|B5ux-ORCHj4)P*B^Vc)KAPh zSf?4VH+c#FlSlS~M|_u`S(>Pzz?jJssFJ|u;dSt1FoP!3RVO(X2kq(@wpT|V+*zI5 zVst>npuwB*M9h~xqMuiEFI&*KsYZwW$7UTLMosRTxgra=vmEYS=8#NC`+wrBaYGsN zO`RtPxRrVDvc!}g)7A-Kvt^tu7%2DPp9e$7T&4>4!f4iASu873q?TM}_}rI$Lqo%Y z*WQ@ngqe)*lUd#;WVxSMalc|={62;Cm_K8QzytMz^BA=1P4~5&O(^ZUv^0Ueq4(VJ z^CFCE+83A~mt&Zz*r3qR=D_4o!=Uqe9m@i#4;t&_>^LKKNan~rdM13(kCDBD0Wx#|qIPcNx7gdd*C_e#p6<1r(fpghF)s#LCSNQ51&1BF7~aK; zZ4YF5wCa>Ghhqc(*^SLpxUYDq|ETjXO?acEkif8yUCQNb^t=s13>)env`uBOV#}Ms zqV|$$LYK%=hM5cw_4djKG!)Jk#kxK$o)W_D#(rSaukX`21giFg-MCfWe^h+YY$gW_ z20?~P0=3l|*Vf6bQ)CX=DkijoNrnGU7~hWNZVrFU7|OQ&v1D*sUJ29T-;%3Wzh5-(>x8dV#ZS)Sn`$hRwYz z)44t{D8vfv<67MM;hN!rNgsFZx3xE)!oHIAX~2SD4guCBRt8z}8WJou<#*3>C>S;v znWZ$=zCX(3DY9Uu3X=uHm-b8@S6-)71+A0J7Tg>38dw+?HLx`N=si#%6ce`a=;oTn zLOYZEcmXa!;lxR82@)^t66zDyEA;)}I=yA$)1(r{H(4C^`iu`kZ!t_`6`Yke&3{z`pgVF*{eJlB^a1zcI=R7 z@MCz|xV)*=NlK038vE<#H5{A^xF!a?{lg*lb7wNs0qrLYbpjGh4%Uq-Z-BanBldc3R}mYpWBx)ta=jo*Nq{Zk-?I~h}A>Ci6vRXJ%X4AiBNriSHx^0ehAk3LCyyE_lo8tgiA{R<4UNgFV09fT6?8 zXY*?&mN)sQRYh2L2t|ZnT;f@$xSo+Al(q5=69dDOPdqGZo;NUY{rl%E%fmFW*nEY^ zhxJk)A9=eTY7S6+C>FxxaOS-A>%-N79aZ-^o_*h+C0w7Q!khEciRXR&gYWPCz4vWr zUr|=Sa*faii4AHDdsvt&G9&mIw^|uE8H5-O_T^4s-B5pJr9k0 zR@=_1*022UrOdFq{ej;Pd+|K>39bS{2d3sWwPjEEVtZz4?(UW?kJpM%k$Aw$FkyCR z!3hQzhN=AwZ`Art8fGzycQJqY^?%2o^^vaPX*<}87d-yBaOIc!Z|l~&R^91nn|FX` zi>UpY2~EtmwkAYg`eM`a^Z$R{b*sHT)tpQ|?Odt<;ciu8?XN27ThHXMxWSaaRMnH^Am0<0 z4+#wUoYjU5a?d=Lcrs03*dTRAh~a$u2hN$tpXUesWA=Yx|9=Vhmd15QXZ3w3jjf-^ z?xECSoxE53$5S2!yA5yIPj`wY^eQoOUH$CI@!<6D&!0cv-;rF9-Oe77usBhl z^*}l^!%c=|t^Ln_xiEb=sn6nYS9vi!WOlDyrX| zVz|a`<<4OF)rG@=-BHE)z~KND=EP8um4-j;813LTW10XgFBN1!_rf& z^M&4?GXMAMu@J*D24Cjcd_I+HIE@+R@il}?GjcIxv#4<~=rX;ykS?Tn;`cm{f8slN z!n3yW7^F0L&S6LpOJk^K-^_5pph2S{jI(dfLuDo<}qe2k)u8|r`Myg1#} zGr@$(L;pfh@O8BirJqh$ZO$;XG5xx(U(~Qwh50}($Z>6qS2&*N%Ez)y_+|H%^VMtr znrIHehQtFW98NQ2ab4ssG-$51Kf+VFz=%PrQHt?{p{0Y==N(%6J|44P}WcH2z&9~GLYuu}kJ?oO^F z)}NwyQkYIGS24(rZ7(`8-u zS?l=P7`&dI2`h->I-~U9NA(t_FY^ENMKWAV8GIhGvSqWV-WA;Y!Sdx&E#@^sOq)(J zi!cQVFmV}lKA06gTj0TQ_d8=WfmmhxSc|gXHfssM#z`BlS>tweu2FWo_P?3Bg#t@<-QlxdmlF^qtis4QyvmaB# z0fq?Qu=d*OX0{~)4v})f4U(*uNeqDwf|5I;{+(}Q7wD1*v6_7aW>%^O*F za~BEM*Cu)}JP=CgdY-E+7!Xvh+Vsmzn&Hz4h9u5gdjsz1wg_09KCs5msb#mK9%Gsi z<08f@H+p#*7I-pv?>OWZpJkeOm+hcPgMvYQ&ej-)dZF{jE1h4MC^;}BOm5f_aDV$Y zW=`fQ8Vn0~jmi{T8AHLHk7+FYrCmJCLK4 zkjUVn%E9>I&Q8S*l9elUHZDv1bHMY(B^RY#jWrr(4^*pyIkzy}DD!7p-o?nou$8gN z$YImseas9=Hwq4~cv4xCGmC+t^hh9U8q|5(&EOI5+S{Y9r zU|`?wK3DkQ&xZ|6L6QyGwJZ%cUNN5KXplLqd?3bhSK z*&r&?=HBo!>A**^T#kqrdzSmKWeYLHR~G#c;h*EQ;n3=e+!+PF=Qw@Fa(_E5s+dQ zVDRB-IH|OUduyP5X9vS$mMT7jl{`zd<{L5G6XlEIR^kniW_WSjG5lm&rlfZU|A8;x z^IRJyGQ`KR&(LRk(=Eujm5t%RWrl>SIsps~>!Z(e)-W@?QP*(JUg6#lnfhSU0*(YW z3C06+{24S}{awD|Im;v_g~xj<3nqP2V=|FmVOqs9V&lS1I%leWX(S8$mC|usJ4}IFu z6EKBw(;5*q!3l-gIm`z(cQfWO`|C4HGtAp7ctn4~4>>=cR}1DJVGv=Q!Qv#fVFOpo z;gX}Ev~b5LU|lmK!-o|K$qi>B8H^mVe3N9DFK{mCTX1VBqX4r7uSMO{)3FP7-gRJR zu+iT2<)dfv#+AQ!~faR0Sn!Y2ub?D(uZuFP{J8m=AN@@qoQ)I5d;n+fO6Ug-S6>wQ#0 zZV#WqZk`@C1`DYOH{K1L3|}||x)~&-Oc*$L8GQ6xR=tO<1&~l+{8Rt&$$9Z02Brre zd6^j)%I5ttskYy07_i2H?Z7`zKZmn=jC!KXd<-^jY!18%5BF_b8dw#{u-Czism-Jz z$>CF21NRfgEx)>FHT_p-exc~N&+x49vo|cI3>-09-_ka4KVjsa*UZB3Am_yahNNF2 zTbnZd|1dCQvpDc{@Gz`riBn;d+4Sz?T>c3ijN4pGYR$~kcAFe9I`DSigF_oaVwvNZ z8AKUB{QUOARct|+0$W{8?cN9t;^4OYNB154f&TU^u{Q zcCwsjLloNslLd$33hwBhQ(iQKO@pC~>A*sr0G%qa3PI5dh6g|SPA|6NouJFi!SLXc z!%c5S)P%k-Kh3a7fT{oNCea;f3MIXq_-j}lRjGgx)t7{l$)KfkN#$}mh%Z0NNr z&->uF`YHqWzWN<%n$qTSl zGOS{4*v9BQ@u0Mm9%F+u(+mD>872o#9d4Y)c*&e6!P%kuX}LV_z9Yrkv*+A?d9IOH{Y|yGcYXGd)uwWaH2}TVQ<1srrzE|)yxjB7!&q=n!s+s z>hr%w=H#BA^X@qvXJBJkDJ_1-nnC7%DU(CF)QQgx-X0A}Dhx3~8a0ezd2ACoa^ea& zV>uM`B_tnI%zH1p&4z!*zsmnwsXM<4E;MFJuqyb!pJ4?{!$YeFA0y8(Y!-G1kq)R^ zbjVv&aKa-a0|!|r2lfWLC-ryUuVZ}H&*1%C_wNQJh2Z7=1`h8&J8(C&Fi5Ot-uJuU z!xx5#M<1@e+j^DR*thoGE@=t1e|`)eCecL<2RQ#%Nj*4nNq~8c;D!s+Bv>8t!X9ui z?B}m`WvQ8yqS(>!E~$aF;Ys5(Mj_?{?+^bIN%!z)NRRt>Y0rbLj0q_W`vv|vuUY6J za)3wRr`{H(1ugGQ7+Sdc8SGn_b|{_s>cHG^N1Cz3d79IKkGIRr|J8eCtuQh;{b~9! zhHT!2+H40;7%&}BKHz_`H9j~Qub#5ov4>;BPI(zuHG`+Rit~e*e&seU5d5Rh zy5Q}DOD4}XA6)iyP>|t>vDecVUU_!DCzsavTTJ zn{AhJD|Gv-El_u;H}}wBJ@J%NNHh9?`m~0ItOE-eF0dU-X1X9Uq21y9OC}ZOf(!NG z3^6ilZY(Dv8RmsD{R&M=U@E9S@leM=g~3+L&;9(PS4CnC>ZOd0x4zXX99Y1x=)SI$ zIsdcY4gOk;Y3n#9@No&)X*9I|`oCjS$K%c>zR45J&U>>9ui#MF-s_OHfw|&Z#I`G3 zi@1HAuNmQ>-na!TH0RaRtkRmIl@bD{B+{tQnTPtliiU!r;io@Z)o{ z!uk7Lb{Y*vjV=rvbz%|h@)A5;4!e&Yd!+LsjzOS7wt-Ekp}(fLtlxVoQ_dM)ZV>;u zV-KeQ57z-chxV`wOSbMWXR?{bAO_l3%qXinvu{2-1JebK8LSTMoEgQEhm#at8Ei}& z+7DQHI9RDM%$2+--0+_1r9gM7e?x%=qk!~1AvbBxAF~-2Fziql;ck!ox=KS#K zcchc0U<0dzHRp@-lMV;Fu-s?8;KTG`&V!4FMoqd4rU@9+_+_%iL6d1x8cvT&8mE@jD2YwduIGn-G^x>vLl~=Cyn09bp*dv(2^kOZ8W_e?kaKmngv)&BV4re(Jh&jBEC}4f? z;K73nL4T)nuVeUiU~i1h^zMt>KmW|yI_rG852I|-wna0}Pn+@ev}8m6=?3#kkuP6v z+HZereXpagjQ_UXnMl@oR@1br8+N-K*({{w*|W*yR8NMX^yR1W&khG4y%Tmp_(A6p zyUd=JCW%D(dtxa(adFpPe|=r`_mE75)X(WJ^HYr8&Su+~KS|AV)+LVy!KF(Y3dI(! zd(G{Vb1eNEt8lNlWb?y#o=@>=ZkHL}an?EVNkp(X2=Ev&%`Ds*qo`LX*Y;Ce`+!Tb zuO-jQJ6iRK^)=n64aswv@yLAH15>&kB$zsM3l^Mtp(U)zu#P#=l%jj*(&23Cx%x^ZG`@G{=-G|(NhpY_F z?yKL)=fHI4#zt?MKMIE;zQ+bIT+dy>ossgdnbk!(;*xz3vy|ZWk7{|YI&t@BFbTW- zPt|SV6uKZ5=@~3H=g(AL&4winJjV;Xx_cDZxL6Gpv>%zAzkJ2`am1DUn$-nSAC!Mp zh*U_oZEd;dArN|#h3SXi<4dahPY5}fGk-8P5z1kitI_U$rds;rDV`YtI`J;Lk9uFu zoE>&y2K(ixgR6ZQ+?4gh&#}JrW2jScWV^A{gSkgw-JRQeikvNEzxOZSe^gGTfRD}L z-bc?(|I7-SavyNiUw5+3_`+lPh37=p9k+QF0uHJVWRIw|{y*0Ii#J^R6wkwaFV_Ew zE)48*8@Ra?R2Tf`5M%ta?o*Ro9Y^uu`kS2(_+RBO)11f2eJM8C%GpV~^7xl`+z$Fo zo7hZJZ(e8k!ShFa_stmsajTlH_xc?9=lE;6qkQE=)l|z9_7C$d{aCKgW$sg!oRC`1 z%iw+E0gq?LR<3Uh!UyfYHC0zkv~`ouXN~l8`DmZ6!lHMzA*h#8@xfB%sLgAm&;7}K zcz?P5w+{(-R~i1Y;C%JbozsDDM;C`!Dbtsbj$izNbK4V7FF)a<8JC?{H7_&ItWd{A zdVB7|3(KE7Jem7oMN_v%La)n#sXPY)CuB*K`~LeVSk)xYIn!@VBO}ws_{Spg4!q^| zZyTAu=rpJ}u!1XfF|QsroYLF0>9tynVS+z=M=`)=O)d0(7( z7sxeyiGNl-bH(q&dIF2~i}TFC{r3BB|9A!FPt&>&eEHD-`NLo3Gp^h1opKhgRZlTa zVtDrZ1H*zv3>*%NSQNbfy#2@_VzEyAbg4vz;qL=0ANGG>W_*;joB2n5js3}Yy$Yhg z-)yv;!sfu$aKBVG=t0Gv2l~;^(@xi4_I$Yi*k^l%Gn2Re{$BCt=SSV_Xuhxw{$Jz@ zzOIS*zb`tpi^2Zxq^i@V+6T5&HQF55z2oPzke|C{y%?UATu-TWUh!c%chjVK601~x z#D<2*rzM>|h8vBK4bbmnO%m2fx28Rbe~vU3h=9 zn&PG!1IFER&;P5RboN2eu{E!^B|PIIr+ebTtC9cK&Hu{~+`tg~omoym zZ+>z8rHhdo44i@vh7L-xW`0*(=X$FYG%(p8Po6X(sN{p)6Z<9q@7YQ0(MvcK_F=8( zrZWv<{Fh~p>~k*Oe%Ep9{avAf2g+R-rMM5Cudh@2^W)b2s4!;vt-U{c=CjYukj&V` zT=M1mDvP-Sl~<}t%IChe`XCp>P!sMdSipEgV4_6G54mfs?Dg+Y+Ep2Nq7<8g7puSmwU5{>{wgzeZk3t z_R+F@ZH0T|^p@{hap&#D<s#*Dw>QQ|Y+e2bnwDb}!|q3y`=mgCdK_J;5@$T6H{d?zCi`|6j9=7vY1 zO_vSpKZ_pdzuEuW#>6e{{q}&n)(pF~Qzjno;F|g6gJ_KWOU6lzERC<4>hA=z?(`6~ zFkn?%^3QC={+9a7Vv?ybK?iMQe}Ue`j}9->Pwf z0P7CL861Bm?D+ar^x^)ydEcHFdLNecsyo`S!b#pkW&wlX0lkSu`zOgTGS$dd>2>xx zaBUEs!SK&5`1sZ{bq)U~)YiV+cIAO+OSY@N>O0r||D9D#kKC4u9Qf48aKGC5lPAmj z#tgpg(%lEvulu+9_Q4f<53CmbXp=DFW(!wTX@0w9QGXw zAMH=8O^Cb1abwaahd4ti;f8Hf+-n0_Ht*#5u+(JM|IOuF_vR|ahO9Ks%s!fNS4!Hz@R-Ex>5`H?%QU?I z{eNHe?sS9atdjZqy~3FAD?|o%i{BCFYyE}n}I@urZwl(sH{ce8I<5w^)FkwSz!RpT&brw&&@m)*d@eSc^fe)M?_HS5VlDzfZ&3n26 z2T~YobC&A}1n|!jRCxaOfqWaIoREUfX(O4#f4({~{xHgBvFrQm?4j}b_rIdob+uZK zj51*i!5lAa7bH5oXS8sBpf#brwBf^#CWbXkP7X2?SXcC#GRdp_;TC0SXsQ5(uB2ImX&R$EbN$Ya`1bjm8;pu&+s*!GPW&(9SMx78F22_=pQC}xVeP(?0lfP(91{QW z&SsLip28TynZ_iue0}|E5y=95UFLOt|G#@SJp13f@LjyJGXvk>9lSS|H!=n@{68qr zkiG9bQvh>}(t(w8_NCe^ORy0$mS$b|_P<)=rTp^+f6D%pTDi`AALN{o?Q|f3LyL{I zLEyoTGYwagSw9?BKGOeT?S;>xngVyC*cmf;V zDzvi)>p8F%Xe%AK{@=qXFW2_PEW-!(|K?0)u#=j#jI5tnh+4_QqH!GwT@J?ahZvmLi& z_B?0LaN{UzojP&tx0+K=?a%W3yCQt1z0QEUpzbu&3Zf$6h=EYh;uodP0HOL>!Z##Q8=_Bg-hn`xBt%@@1K9Ab=b1MXMg&K<#F-FY&jaN zQbH=VQ*W5?U($5aVGnu1;=P6G_{yzJ^AG;2oqMgcmhAqnca+Q#BD5E+E`m(u=Q8JX0x~XbAMT1a65yITH)be{x2mgt~Q=zR(UKi;k%r` z&4X(nE@50I$H3E2@hI(z?1pX8_VQNmXJ3oDo;YLS6y}uB{{4}clo?OxGbL~wsDCv} zndRBS|52%;h3pyyYhJIkmHlDJ{Qqsp>#*ygB34%z-=u}sD`d>zNEGnXW6@|ca+oF6 zY@orQ#%E)zRlL(mW@_MCU3R-?x7KIxQQ2qr%l^ju@ToWNx_vp5BKzJc7JnV0{^C8`yH+=-#V!^#Ba*SOTO*3 za}%`$SQ%pOpETxn*#DxS!fA2Roqe@A5>hS6hxhE8He*+0G>fB;$c!kinEyM!)<*p? z>YG|_w|#Gkdd-V^2~Jk8ci#o;QW%T!c;(wz3*%>`J2}kWEa>4b9}>E1$NZz00uCq@ zJe?$;y?=_U!1JpUm)CARe5b#WspQ)6Oke+kyk8AIJPP~=E;s!uocOo8a`v8zTWiiX zy9#*Eb4Xq7d_Cm9byGakpF#ueD?5`OXdL<8Z0~WZeeVG&9$P_$2VM^@2&UY7d~jh} zS%;&I=On?|3VRtickn-I(hRs=*Z5ku-uHvJE6)%1%F=Iae?B)duvxA7YI!rRWa4!D z;D$#`uLjV|NI%>wPz~-D-?Y4_NM6% z{%_|L+QbiARb*d?dHpVcmz}A(Fx+6)0Ue>J_0HD|W$u^HoxitUreBDOb4ApI21!qb zG`Z5;wFg9}?N|C!Y{I~h5VJxn+x^q|-hH{d=gIT2?-TlUVJ+i&J)cb9ei4NOXBEzf zFIqco)4LBroy@kMC-8AE{izzupvovOq0GEw*&}D(umeU9_RiN2dTJEDHgBpE(~4Jb zs`mUj`$PQ1jcqMSB5f6_Ay-OYi0`iKR(`lcHRXn|#|q&kM`kw6I@Xh=`)by``N_eS zz0;o=OxTup!)wo+Edf^C#(yGndk_4!c8K_D`RxBD2hI!W+sZ5B?-p+2xb{~n-R+U; zB8&Uk>++@u#hz_;5-eXoU&Mj$qCF#H-UIalk)9lltCt;`G(OK{v}Ihh!IhIixe z@3hy9*DF5c*B^-A`TUgUWXAs@?^|yytEhal?q~VV%q0RU4CcFT2d#2UEy|98`Lk+lXdmxIuQU%BVz9^edCJ1TW?j^?6gb2H5T+c2ab zS#tA8*8aO~6K8+ZV-PwR9C^AT&4_V9gRIoocVZ5i?7<8_Sh*usZR;@#V&J;6cK+M# z41vnlRbP@=S#D^{$=~NZUS8=|^14FCY|^#z&CLs}?EkgI=$Y*AUbx`iBi5vqGc~#A z*KsNH@+dG}aH*>H`%^3bLwh-s!aD{A<|*pW9^U%ubC9i?k>P)ucMhf z#!R`2g#!O1&NR&6-nh>5Jfq_E^6k|(*QAtJ)l}ICGqXfElseZ1Br7$9)~(;~)^;MG z+#-YLuhK1tn&$;=*Zt?lm=^6XEqqqtbp3ovV&t`K56R{OQ<^tOC3G{s|LS8R-r&nS zL(QBkaDA-_qvs>bb(`<6O1oOpu3j-sE_>$!S>+0qT@5Ye4ElGSbY~oyA#=3X=+*k^ zKmILj?hm@Xx4YM|vQbPy$A2r|_FV=%30xi4-Dj=!>W|1j;BQh|uUII~WIC&@;m6ed zS3hQ{?>fGGdD7<(4jFO=$qcve-C_Cv=%tZOnt7#fQG*4x;;=~}*=OC>?{ z_1gEB#Vh=#wjPhyRq0sh#KsaMxJBuM-;eld^^Wy_6&NCRI5LIs-T%7j-utITqVf$4 z{c|fWBr|fDo%UrAnxK} zI-kwTGw0&D1v}>*GkTD}yMFC_-T#tO3?8=?Z*#vCSaJQ=!@AYYSA~+SUX_;{RGs@_ ze)?*WaQDv7GWA>x-)H+Cs9Y+vMoQLA@Z#Ekv8GkK+k6f%{`srZ_7U%-|)|h{Vn#_Di2M#;ab-A>_dL<=I#0?n8T1ZTh)fUV&&cv zZiRnNN4j}!lsO+f&s5%>w*B^suXf#9Z?sOGd-!w7!`Y5yCV4LBC$w1_JKV1Mu>Mhe z@F)L!`VSZ!ewd$CV9e`KZCEz(^}6aBnSvvp?-dxj?+R%eF#j|Yy6~*Q-a%9F|IswD ze$@q!&o`Vu9x~yabcp0V?f6sA;vQyesj>C+Hl!Yi-||20zx;%BHj%9tgb%f=Fo-PZ zdUktP=j>J%Mtk|VNBeIoFq;LnwBzST4|(?AegA;@_1ixZj~ay) zZp9r4Ki9zcIZBAR=^)3I|H<#Os&5~gsSq@O!XquWQ?k0Mt5n)w9Ssx}GSuDR_Uixt z{qyF=dWF63dhUHUKj`*>4q59LJn8B2F2By6YPer~@e{w%-$tc95B%8*m>DIGE3oW% z9sf;aR{j)UJ)?7yc7|@kU(PfHwf{bD@wNPsP{YHo{q;G_J$obnlx%S6{;-9eQG?y$ z8t3G5Ey6b&5(U_NlpfSZNPe*XGXL%TmY6m51_yTRWntKrr@+X5iZSlHf8u7v(tH2C z|MNcdf6&b2nmKv-{$-1u-g_{l{LC&`FiE4}BjXJTvpWKeagGgD;pzemzMF(k*jS`7 zq%%AFu!XVx5&PrM_y2On;jowsD_5<*v+iJ&OSIm>vkkZZ^@=e3Q2+m_Ui9((b3z|f zm|d2qa~y~`!oeUJP|&0yd2IU)V`isK^@~j&6n<|q5?)tU@~~ungrKVGS;cD%`;8vF zdih^d;Gb7^uiYNQ4~))2%nYZPL~1w6dc^O4yHjt=h5U=$FX~emY8H6Q9c8mSz*y3> zw@<}jqsATq#yM^dEC)I_eNU8GZOF=QAuiMA!LW_#j?{;2#|Ni=u$SB~asMfCZRQF+ zEr+K43!g^p{P#6=`|aA>^CzeNcvcap`|)`5rcd+d?>}{*qG;PwCx#E=4o$4)-P>=? zzhCw@@B0@Ko=T?}P4>oWb)f??52D$^*ka`C(>V`qdUGq}gZZjWzh^McSf`LCAoxps z(ShxMlWyL6AwKopE%|k8c;`R;@u7Wp@uE|bzfUk9^2e!B zkoDjZF2)z$UP4RRPF#!<*`xQ*IVz!AT;5a)|(lOso8%{NBjI{=vd(YVf+8R zpL~A4VETJg(M%`)X#Yb~3)v1`mun5?M$C#ic@eA+n14)(s`8w}FQs*ND(f@X+D%pm zUq5)?wAxDN|CDZBgS%eKH5l_2@$|?3+^e&{{Mh~Ox9gJ@WgMG-*q`OZ*7_-Hn`@Fz zCnYlIr8T@=)*HF-3Cnl?`Tu{mUp^$kd`x;0L;u$KUWO;ajx=oBq|LmpMDX9L6Q}%m zjaWI3FOBA6_@_3F!R^%NOY7dab${ObGsgV$|1kUNhCRYe0b(;|toiYC^_CYM1r3r7 zhYlZWX5lkzP&p7FU{T!0R9hso?#1-LBMn=%YFc0WuldikbLa19u7k~3#WCc-6XsAU zZO4b_?d=4=A86QW{bx02!{e2+{pIuD-gj(sXsn-l##dpx;S-kK(=-w^m=?SVUm4>5 zVCVPn51pTi6Qb71%m*$*Exm*4IAA5sjuEYV~V_p!k?3# z44$93)r1zjl7CvzaQsNBuj1?fcQsjLy!rK98PBG&oZTEhfx$WdmZs5ivujKqOnl$Z z#pH>0nl{|-mk(pzAtdOrU$EsQ!=ny+&F(B#~b!l+r({j2=a&!^hKJl1kd zX1XjA1;&b1j4sO-B?>!a@7G$w=MiMMzW!{iQ=XFnbH&r(HTOHX1vyttZe{sVs`uhn zT!32RQrVW@N6 zS(I{4jVYvSN#nlRI}c~xr+bLglX zNIJ0Rg+QwdqZ((x$}=774MD4d8Vb9o$sTAk|0kh+YJVixF0)j|fQ$c=pSu5457ACf zW4*BU!Tl8*_P+V=DYW3=RJGYQ@@MAoM>fAtyBK&z)$w?^CnzEw>o+*9r6uWD~7YD(FB8Dfw6&afBS+hiST%YaaJ>xKYLu?*X^{QG`e~ zC0~`TrPyEo?xS-I;_S`|p635tgc@c|Jmhmjih11(mZ*dKWj)f&7wtH9bX&~NyE5_T zpL;SGsWGf}IQsq7oIR^g%zF5o``C_)3!lq;c)ds6;^%=2rzUG~Z0KG6lY^^h+JSkT zS5tf%PR)&v(dO0YZc!2Ca^ZBidSi{@gI!_`IWos|FF(*{N|@N~$Z+NN$ER~b439kD z>A|qHMlnHrL9@Fe2j9A>uJ?BR6WA_lcTrxf>B4tCJKuft-FIid=WpNjuKDVpWfiLu zm~MQo%}-)K<>lPa%;3#nKDVRl-ue@~(s(_7^7xo`>ga7vx#U^`DHKRTIe2bxOAE z>*6Rcxg8T#7fjybqOzcwWsTv3EoK}?zqjIv+?AM>H4>SX#_Ki=&e%BkzY3d-nI4XRro7I z*o!)zKY3c=plzhg7O~R1JcjpHRsN-Q*_Z!sEML2~SIIl1Sb526(PN$L28Y$YF`WL? zw@~=NohSeQuZv#3O8Uc^E%L{HcBF5er6QHI({H}j*B4r!82_g2)@NdvpZC9F)lU8s zb0rnrR5Mr@?Cfq7*$IEOdvpHg<{9yB)_uGyJ!YpYkS~j2Ra?AWP1xj9n87F3bDt$Y zrX87EJMX4-Q~kW~>Bh^uUp_p+5+Oe=$mQ=PX*RA7RRM+7#ZE?L8^ba--<_VqXtnOy zqg|}EySDc2EE8c~Ag`X2@c-rEM+%Nc=GNQlv!=Oj;8Z`up%gjexpIE{Au|tV2KRjn z@|{1I3jfWt{^vF^gTsI+$L)Y8gTcyUYJUXv?q?OdJG|p6oA~;;VaZxGH{5p?CY-YfYc{W$F?!elYLz zp4ktRJsS2jWLX5L$RA*svFE~ZkyjdPUf*Qj^Oa$x>~Fh}BW{fGj~TOm+4TS3ySmt6 zqe|SwwymuU9?aj28GrEp{y+6^itd~>&5!OT?BSPiW-T?nP;++Mvx^H)_Wo5AJRf?s z@Zghwte~K`@QwV84f0$cPn%49;{{%ICS}4zje0fUT?V%yj&ZS7#!4o zC^77MbLXDGflaonCS=|(`RDpwclU!&f7&ndwBC~}ZJz(}_|8*RPr4PESQxY>Np~9S zH!>UO8Z0V*J(>T8T5Am_L)G-`_lBMhEB|^q%dI?kL)VdE>aQOiJd6QT%Fi8l;OD!( zd+`=AfkWzNmmgv5nZd8bapHE^A*OG?Z~d$C>=0{;{Mr+9@t!Dyz`LmMc!3Ey3s%4H zj`rQ7z9&!VLAQ#-V`X7~xdqW24He?03w8v2V3^Fn!17@F-Jg-~*{|JJK4r>%=G*hO z3nkMSyXH8oHfHYrd%Dus#rMmnH65NGfSkd*V)$6 zAI0%(hN<+OTlM$!x|S9{Vd?mCati}PgZabkB~14|oXfc@?y&Cv$|I?19SvvMYZ}=% z1m3FtGTV|fV}I@B-wMkEIT|Exit-m^-Fg!#;!v6FxcAf9#(Tk8bNct)6!ei<5Y;0U zE07S@J)NiF!S3nvjjxsSFzjepnf3AOMRUIcKN|kA9LdxA;LX6$-t{HtdM48YI~~8n zo0tM(xQcEvzwzc`EWRfbIPEp-#asW@d`tV?pSE?!5-yQD3<3){6C$-wRDN-(Pj@vorJg`Io7kDR*5v;oipB{M$#~)&JeDf0Wr}wV%V4#&7?fMFS3s z`rAA|pU%EOPx9o?sei+H4lwS&#B@N1P44-s4eA^mlb#%7*6Ds~bE#4GTI*CPh70p; z(-~jI88b|8nYH}cj~^1k4BLJ`EYCh**TR0|_mS0~C0F}*aQ9tQ30t7CA&tM_)#|JO zKLsX*Nna17X4)Lk`18K-r+>8UN`}C8O=XAl*6?rBbq~8vlv}{0wT8RKP1^EDyHx3eVy@)}X?q>Gqmo*~j{iRmp5M-%vvHp=>j9pGg;!piA6~GEi~C~<zNHj1c zY^vE%d4NHK$EoO}05`J%;|?AME~U?_P8qM)FlFAuRA+Cvp(3#%BG`e`cULOYyRQuO zCWf;%_L)BWd~6qA%gql`493hy+{FfE$N_<(uVJ*$oUFU;i&_OmEhel5@carK`% zV*_K~?y`WAL)vT%@yd5IPfIdA&|+Xrn5z8f+<}b-KkfY3vl!M$EJ%?tY)^51U2*m2 zpOicNd#w&kT*P2(;1WpPCp4`1&Z+|AxY<)W;L(k8XtY7}E+@X=4 z)2?Ig=&<8R<7O5GwhZP;9Dmxcx65-dy9RRk38gUajdwYqCCtE}@qG96Q0J|S8q(h~ zFNuvT(fZjieY$w{X}0^{e=&QOE(&_f=#tFMaPG1X0}I3Mkgju^cEwGdeCAQEqr)P` zf_>XAbo@EQe}I8;Iq#1N%M%#fw=>_JF<;(j+sz4<_xCq@@-WzSGSwL|-Fr2aPeuO0 zV#`!v#&R!)`S}%&Oj3x|1wZiXA u(yAx5o>9c)o}!=d!}R2*p5$ot+K8RUFPr8C0#x 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 L{an^LB{Ts5_r^dN literal 0 HcmV?d00001 diff --git a/assets/main/native/6f/6f4658a4-e694-4ba0-8fbe-e31456f295e3.0ba26.png b/assets/main/native/6f/6f4658a4-e694-4ba0-8fbe-e31456f295e3.0ba26.png new file mode 100644 index 0000000000000000000000000000000000000000..9032daf7c35b4cb587f6ce1b2a9477d120745abc GIT binary patch literal 19471 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 literal 0 HcmV?d00001 diff --git a/assets/main/native/70/709ee881-3af9-496e-933e-ca7ecf5241ba.14038.png b/assets/main/native/70/709ee881-3af9-496e-933e-ca7ecf5241ba.14038.png new file mode 100644 index 0000000000000000000000000000000000000000..16e5526ee261e7ff5e8aa45b5e9853b5b3ed428f GIT binary patch literal 3261 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 literal 0 HcmV?d00001 diff --git a/assets/main/native/80/80c22686-1af4-4f89-a551-8c02692ce060.a7794.png b/assets/main/native/80/80c22686-1af4-4f89-a551-8c02692ce060.a7794.png new file mode 100644 index 0000000000000000000000000000000000000000..bb4f05e91190e3734ecfc990c165a9874995d4e0 GIT binary patch literal 36830 zcmeAS@N?(olHy`uVBq!ia0y~yV7kD-z{O+pfwd&aFPMQ_Qq6X*_O&Vo1_cIB7srr_TUTNN%O3CIGcI?iWZzVtP|g1C-}Ns# zOiMJ>Yt284nj7a%HYt8@$-&&D@FersZS$Xh!?mvac29X-_V>^K?NQTrUW23PI^S6KgV_9dnzgApr?*$H@Te(4@zyCd3%9L=OM zX(oN_^PPQC=e{2L=_F&3f4l1LHr>U$-@e^hYya)D{KS80x?1&KZN*AaR(k@}*>~(e zw(m*UmA9PEQMc;1?`1xkpm$wXmaCfW)ISDug?V1Tn0~Xq{PvmQ+;i54KiRcrvD&(3 zZhQYNgX_pqO{I4ml5U&N{I&eR{hgipQ?72gT9jEH|5{QbJfv)KUt4iz>068Syszfo zV7t`zx%JEW)~&U&#}_wlvzoidjX8Q^$h%qGvRf3-DY0!m65Y6}-@jomBkP@uUO!i* zDqay<^YG7|gne8$3-)!4x_PR}f;|4|y&mQ(`X7J1BG}U{mAh2)TP@cfq4^nm zbRRvPt99#LN}1!u?eV4^qC85eI7v zzqPj{W`wD+=Pr2bcS0wkJ%n?`Ue-(h6*roH)A$yC;DV6=yQI|G4HL@_TX|KvxxSy> zTzz+^#cZc14IeDz<1T($bk;}JXQucg)d$H5yH~_p-_5G|P&3*DpB|(&6DszIQinaX03=NXEd$sa@w^8^$!*9C1I{)?sy7(VEJK^HdXJU{0EL~z3Kh4^;_+zW6 zC1zWsv|0Hmu!1G$;mpOM5`EO_3*!8ed?tjDQa$nU>>mzzK%bsMZ1TM;%{p#37mQJ4g zC+xXp9(&4YBu7;^2VUp8n5cTj{>l}TnLed&R%8}``c`^-^5Sy2=jVT_=Uke8i1&=O zyZ4k2B2F`>U1Z7Ua%sadlsMk{$PERmx)WG^S<`PhdihWY|Z3<#UErgWp1d6 z*RKkV3!Y00-*`+bz9jv(G}78VJ0!}D^^fA={|$dPo^L+P68BPT;iB~Lt1dT9+e1rM zKU(pkmjC@@lZzi8bnyk4M$W#uyrEt2aQCFb-zFVZre`k}gekL>u0K3mZEm<0|D?9E z!}2kK!jaSSYR}}RMaH;p?_w)%Ib1T&z@vA0|NaGwx0c&IHPP#w@5tQu@yRKtk5Q=y zgKlh$Z7U0uTJoST;Z5IXpO=OaK1+A4O)=Scb3)UsxWtDCf3~mvl4$?um6-RT4+VNV zcwg?TT{w^7+^U!@5$YlDTfMjzWxsXfu+3CGIAwcth3eEZB6Xh+6&^jK67pqRBH#VR z!f}6U=4|*cpR0BB%i7CpdqNi#?bZsr_3x5yV8Mos?h_ZxUb3fEc}LKl-f3TaF3#z- zVZPTJbl`T{l&P+LW>4~a?J)6z zDv$DlL(S|mFSp!!#O{zRxK1J>#bs9C-47wL6D$sF*jwZkscF7#g6xgfW*fP;?%p{W zS6N%t{@Y)B5K*NqtDI#X;G$UZC{dtSp(&s1qwteILT^`mFb_JnIQ)y3=v}tMQ&%?U zo`2Zf_W56;^`BYQ%O_qsFlkl&v!&|RD(yBVY4-6_Y;j^59osA`GY)pi@vS@@`^ibW zZAzoRuB)vuz?fxQibqPqAw|ZQWiu zD=Avyt-#@hStoBDo{=P%J!fx0vv+#(Lfaeh-oKRk{GHk3p^;Rm9H!EDK_Y93M!vf{~9GOpJuT6hMYIkgB|Tra$dJ;`c{k2V&^@y zD-Y)CKky)I<2leE^wrh96Bjc-|9r>Z`Pb{PEmdDUOvN-#8mF3=C&iz6 zzN`A-fy}`2_bI2=^1qumZO@5IHqGBBnX#=b`ID;^lcRG)rH}JY`!rp#Eyvp@Hm`r1 zHu=?sL^gh9<+ZF4r_YEuY&qFsoRC`M|1-qM`kvaw>??(O1!`rtnX*|gt^WP5&-i(P z&~f#EdQ+ighu3Xb&lWr*aOwK(OWEIDiG2~b)8Z zS!WsFo%rb%_T}W9FO!R9C#f9Q?RtJWsYq|nqPySKpSyW3eqS1xZhPVF67!9_#n)tW z+359X%y^kLszLE^|X`guax`xRj9m_;f~im5=Va?i8V-GTwBK%$$SeEZ%e1 zHh!t+-lM;|Z=v|H9U3=(_KPfGmsItyEIwlPYp33sJFm`X&k8Z*;j^(^s zz87yDX8pW@eMRcVxQxtVjlS-AvpF2u<|Snm+BZ&AiBq`8hAGXFl0}@NL%hvdmv; zcRHAwFZaIYS$44CORj}qVEyDPV$;^Cy$kEIzB8>i+u7rVh(_++4LiM`fBdn-@%#~= zpBI+#KQ=MgBLDb`#QQ4Ctd##(ZPjd6FW&UI*Q;pKvzV)2-kE*b(<|tnwCCqd#SI=W zth?pr^q+U%Kk<6-tV360{o}P)sZ<_6BKXW<-vqae6ke6d&Fi^1^ZO-3-h~$wnF+mE zW+~Rw7I)VAe#^TDk`K=FFXC@c4F2X|YcKp+!N@phQ|b9KiIsfs*4Ipsywm%n=bYTj z8PAVsUeAB^h;2)!mA7od`mL2ZwTovTkE^ITAj|LYb9?%d^Zk#~gp}i=;-Y3wtNU~N zm*VGs#%I=`IH*Rgrc;?PTj&Fq+VP5`(j4B|N0m6D$gzFHAhBe+zf75shyvG5=h%cazg^M-O?u&wcxq-nXgDW1E;^uWhpQ?)D-<({+Dq zBxIC&3muzZ9pAfnQL==4)Ag%!7yHOX{`z=xZqqH}ihzrI)XuKgde8a!lsiOsefuNpo!-5%JwK1HeOm?*E%In$zYlO?=K z-HSi7ytRti(R_Wf#f-%pb2PJl9s0ZStbyo8w_kp-tp=$Nemm>l{P9INjM;s;v&+qk zE9w?<#GO>&J2%ZwanA*R0ryl_{aS|ptq<99(*s`~zOHM3{Is(V;y&%R@PPwKD4UYz>Gf=@eDL7Vxc($4uFZp@ySeobz>aqrFQDThw)cxU{&{($G4 zgYIFg4bLiX?E6`NILDvaNutVZYGP~loK&qXNqN4q-EC7|8ih62*Y|Mk{gm#Z_I2vw zkoSqL9{maR(!Z=-s@CMpx7*+{{fc9^+0y2~#y>xrD_b5t?7dO5A#*$1v@`Dwuwc8qGAoW}U%Knm}t1Lr;5^|%&0Rm`05 zqNBLYy~Rb!G^*NOUvyUV%i8=>(-^<-Ca>^e!8|&j|RvxsTDf@fN?x;t(^95$e zP2v`fv)STOUF5q!a^>E_hx5GM;~ZnOz0=%;JJaSI_0qKdEzkHrcFyF*OXW`~{e4-+ z<2fhgi)FvF?!N^B{>|Le?uTsaxpw&T*Tdhm&qY5eQ^+yv|E|ycIOh`6Wo`$XU0Y5@SM2NSXPRo03W-Y?~1L^!+6VtF_KQ;z}l$PQNhKcI)GZbFc1P z?6%$Aw)Nm+*>j6~zkLaw@tO6*^}h)Lx{5w&o07^eg=Di>Zd#JkeLHt{bmsB{>yH=8 zXZlBP%5;7Ba{v8)$G^Q#b~IF6RF+k|XYg#>&Ce<`Duvz}Y*d({c;V|sp;t{pecz2L zIrOdn_+=zz>q-Ax*k|%fg75K^_C@7!4C3~2%UtVzmijR2o}48ldvW51UEl6)TemCtd$*_V$kjCu^j*zs zxt<$zot9Oa+w*mzY~A$dcOOo=?7IAD==n=qc2-}|(yox`l$hr^-M+=@orz%dkA<_+M&?&f{#axWb?dhaX(NyG+(0bovxYk5ApV+{5}_`0QN#lP~J} zME$jQ&#dmesJnM(_tEveZ|80~>8am*V_$Yb`TDEQUmku^nPlQ@zDF(M63@@=-*!mt z<7b*lM@Rob>CJJUixB z&xpBm>(JS8@4(y5*>3*l z6J~u4OM0vKN<<``^2jUH&flh}rhI-QKpVGs|P{9I|@2oBi60 zivKIwEL(oJe4FGuHBR$*UuA5?+JF>?jz=rhi)Opd;z{&;K8Yu=>EizH8-HEz5i>sf z?Sb7dwf&W6-wM4xaajKL(WQZny^NRUsxT{G<1I6GTpS|fq%~ha+qdgZ@A~yiF1^|O z^!x$KbvBn4uKH`ouf}U{-;>3$*F?OrZgFB!;Zm^!*Va2sih0ntXyP%!)-!f2Q=_i8 zPhGf7{w!;_RbIx6N6T*ha&}z$v|{q<>`ffk)D2s5Lo+8DI~Q1r+Z1WA?l~56pur)zexAvElm8sMa5>_Nj+WFXj+ecWGYl&BpFj2DX3euY+jnv< z;Zr*29xI*Lv0Xsc{iC#&#&hlY`vMb+v<~trnb#HDqvq|qv6o!jn%_nc>Mo!GfTM)|}m>E30t*IZ_@pOrW#GIF`1 z$gNQ3>+kQpUuIE1KXOsNz1Upy-!C~fF0-27l3UuYrei+sUKmG$rhcx=q3V^&%4wfo z3Rm$u9XD#KUGsWco&5%rE3cj(wY*m*yDYqIvusMsM7RIiscdYXtm>bOHd(XRMAbpUmogn76_F%Jb}1?rUWq)h1Z^ z+xK`cRy4iN`1A0t2N$G#TU+%uxIBF1!Jc$LoJ*CqON=Qe!b{2 zh}Sx>%Ci7_Cf~I59 z4Q{KaxxPvGdZX9;FSDu>Jhtp8m5I|dIe1~~t*PTF z`|*P33!a}{up@H%p~=hA!~$C!ZKV#LWmK+US-tD^q@^mZkIfdhKTSA(QBmi3eB{E# zcYUuOPA-{s|4$yn8^%iqRvnZ4a5rLB$W>m)KhwGl-)r5G+55mZw9SwIxZ(ua;{jKi zf-leSEd7(b_~G)>bamg|l9MhTF7eRMe();gK%s~BUT&SaTZO;qFWhq8yD_Y3(oM@g z*J)iXPnIo_`&e^a>+}S^=8tx>F6{E0vP|#66EBn39g{w_wsK4FX8zZhKBtvslV+yR z(TH|U%h|0`=5v?$-yGlX3oLIa!j0Mci+ys z*t(x7ciQx0L*ZUW{?KfHcSR`|)Z!~Ks z_tyljdEqkRCo`TtSla74OCaR#+~~!(icHqZtiBOvwd-@Jjl?Tv;nUrZ&onDOOx|Xv zJ^7fL=;NCQtF|;11oV~^1Wo5qAzB*c#AUt#nA)#Lo8?#h{0ziV}`J=EGV zFY@?H!*FY(Ev=~=A1E}YO*-baBy#!Mt)K7ou2bpTdo8(h%h{&fZIMz5$7eIkF8-PE zO7ola?o~C9_byafpJbAGnKN_F-_Uc{Sjz1VpIt4Qc8xchx#XPhoevoqUqAJPsozsz zpL+PK%+?&Hzbn)&0xb(zSKkoO%X<27?xDn`dhPzlPcC~X9=n?J!1Dm^H1^G^Gtb7G zO5Rgins{%+omh_(nkoI2cwgw%J!idHdWQ;s z;^nUu^~G+7wOr>2e6e!fp=LTeeOK+rIj2IFvh(Vs{$2Mb;&26{5zo$#mkMh&x<5Rd zcX*>-$Z^%4hx&cS{A<~-GQ~X7ajw|Nm|`Ne$HVaDtJdEWKl$%SjjP?rZjxR;@Ma4 z*2!=;Z+|@9tinjH?*1RKS(eX^uUm7!Bl3sDB*XFtHchLgIyV*k{QWBFLe9>nGxKWe zzTH$_WB%6igTp?{#b1q9&28UP<+FryAG4y!nZ-w)E?Bzh2yM?iHEqgVP4-~7(-QY4 zo-gouzy4fC_vfAL`}d!73QT{NDVl2@l3tPBWF%WLTlucY*9+eJe?Ky~G3(gOtxxu< z{yO~IyeQFe&y>8W-*tF*bo1CQ|8`zG!q!bxK5hQ~sD`=g8?EHRKmQRA&%EXRr}oRU zjUP7GIw&tac*OVP2bMd5`hGX~818K;n(44yb@uFOt%9$%?bv7;u*7^F!9lj`-y zrYxz+5#d?e;m*+AcJH?Ow!(jNPBX4Kxi{g}iq-LJeA0HsKH%YL56%Aar=W~aJ9hQA zi}7;l6aGH_Cb+6`Ny(A0ZoR%P_v;fc7S&a4tXRv(@v(O!V>!cP549bi4ypa#cE!hZ3ubP+aW7)~Z8x#RYlpSnK7P==EB(vC zVR_Kz`*SYH+a|5Gjk~cVLi_c^@RZ5FPI|jt@0M4)#<<)3$-C=)%;}nU?BBXOYRC3l zZNIBhv&Ulb;pdClPk;F%x30}6%yi~Ajr!24^3Wu^e-BMJ9`||rprKu^iX(Vd`_k2) z{+;E#)*dN!DExYcg+lk~BWYr$JNV>mRd{(89}0c@=>O5#t;g+z-ESXKm#EqG?nGZe zHeC(b9&Hs`#|V4xeA>A;7XDEi&=yqj?i&S2yKk==G`J^Pf}oy+L-m!n42z>F+}GE*>x3H81(a z=T(na*E<4gyi+WAiIEa?sL&82Y0@f_;zr`?vnd#VfDQ4mj6v& z(4rP6`uI-3s_83(fBBnyW!kiu&**ES#T~hST1R)V7M^BpdM7z+_p4KXFX(JL{Z8wo z&xDyQRc{KtmNbUV{buOntgKrv-4d-692+wsELT?prhjX; zZ}=Uae6wiY@du7ASLW~Rk4soMl|9_n`16uKLPxV=vVEgPx{E{fx9vXrcTb=Cv(6=N zmgVtI&vl+N^U@8qo>Hj|uT1k(za35d^J*>!Z%DZ3)tn&jn+s~0x~e)%-zArFd4Jb_ z>lt8em%yS4IUIK$5wwON+% z_V!Ee*cemn2ahlzK$$d$`Ke0%SLoxtSsixuCh9;uy_eewLjqD$%G%`>^Q zPCT2vE^+?Sy*mD3t4>I6nY6ZwbLpFo?wZ}pr4QtM(-C$qm)d%>R^`_g{XYiB~>qYF;}c|`~7U2ubT4@PJ^ul*t4wH z_}^Sj)y9IuX_usge!sGxY`SVz-n-o9+qV=HmVMta@xgr#9!Fd8!gp2j0{i4-3 zneGf98y{qS{QUa)|Cw9#j>m7Brqg8E@rKn%*y-<*S$VU6YiDp9^F7FVr*}7It94oV zqyEObb$mxotoHTgOr9`V>eY&hhLfqBir;=-l+_JWQkbB^`>FYHQ>((Avx0XT_x{^n zxU!IiPfIVZq|!b+`+2eVryHA=Gp|VB|8RBYwlwYQjIA|>;y0%*bARyAthC(s_}x;4 z)`<(NJO$3X=l^MV)xtjar}-px@kMVw+!d1Z+_|0IkbmQHZjS#}2Ri2Tz3R6A;Iz6? zHtGGmU1zuVEYtOVy&yiH^YxPONP8LGH#axe#6_+&uIAUcTH>LfZYEc>ePPGN$P?c)c{g-(jCC494R{+;5L3smxwc6}|Luyx_BM=F)MIhQuymSlfdV934yT%`B$2y310o0l5Xvo^AQO1!`ROYqTq zu72DTdcXC!gi1$ zu|&F&XZ7K?%h@GgTx5Lju%wo^j^AbJ-qb9GoZ?^8p_I#hHbfM5o>SfI}oQI4#ZtdyXrS_Nq_iVG@x<3r|E^+B< z7xdkF#J9!wq}*pqnOQHNI{s1bJmAW8q<`Dti2G`C@6II!9oKWMcRzcu^6>0^m#RDu zvQAtW>!T)izsa`kWI^-q_wOcrIob2=UgP8K_YP%M@~!)sxPBpLpXd-(j{ok<1d9v@>~6uxM<_EqkD#^F54yY~cM=-hHV zWG80a^_wxJ@8zeWNT%~wrs>G~Y0bN2R?o0i_+wbJ;sfgiD*`lan1t3|UZcTf{k2T> zoUY|9y^M^LF9l!w^HxU4<+*O(YF)kc#g|-`8C;W}c&(abE*G=K;LwoG#f(9=?+^RhO2G=*gS$mD`LsKu|4+9>j!sS4ra{Ve&Fd#{~N1bB-ng|BZA!!?))JAxrQg>xPj9T@Zge=bSVf^XPVvcl=YI|BUT-Z-%fBrC zLMHy`k-o?~Hf48Cp0|JL>D~WIXzs&r>Yd9Tdu~ZtweI~dZ_}fd3bKAj3nz-ce##mz zX{y}ndHePYj`EVNHy#{JkJ@v-rH||G*`t!HJ?C04T^!qQ_x^MI8NV0H&Y!({{BW6n z_0*#U&)7xJhj+C3=`((QF>{~Z>Q!5wZcFrp7wTCQOZHiP5fpP*(x79{t17( z>c3EzpCF^`y?sxFy<>!I-f#J!Qn%q!srm8QwsH|6(|>H->m?h%KhEo&6j#Y-OQ8oR z{z&?IoV(pSXWGY~#U@wR*?#6P{1sZ$KolTMU}_eJzP?M3LLv`bELsTZMtb6 z=iD3h3yS?bGtc-ktUB|{fJx)_GGl+ss$I7lGfW;_x{{yhKI!un_H731x0k1s{L@pm z7f?B zY|+OTmoVJ_nRq~I_3>>7*QVaxF8X-U*D9CKE0q{~9v{xKd31B?)6KtnceBkp`*vcT zck%WK7bk8${eMB-?;DpE|IxTK?c7m6-5c)?Zh!P=+B=CmZ3j*`H^UO3D6w#!9u+mGa{E4n!u0vwc<7R`fGA^^#k|xU1`p;jYk-h>|F`?aMrF zYdz3?J9pD<3AuG92mjs5)6!VDuWyfmzFf+an=yX!Y@W+z&-?W_sYaypD0j#44HG?$ zYac31N!%oJ_#c;Td*8zcEE6<;Z=P0RlETj5f8=By3GwHtW OsA`Dg2X7E5H`#JVx=2g8h?w+oN0c6r?V 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 literal 0 HcmV?d00001 diff --git a/assets/main/native/8e/8e24adff-3892-4147-bae4-28046ea905f8.65ac2.png b/assets/main/native/8e/8e24adff-3892-4147-bae4-28046ea905f8.65ac2.png new file mode 100644 index 0000000000000000000000000000000000000000..a13f2014372cdfefb8d2219d282e4ea95f4b9353 GIT binary patch literal 43223 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 literal 0 HcmV?d00001 diff --git a/assets/main/native/a0/a0d8afa0-3e1a-4c59-bed8-189e9f781e66.84404.png b/assets/main/native/a0/a0d8afa0-3e1a-4c59-bed8-189e9f781e66.84404.png new file mode 100644 index 0000000000000000000000000000000000000000..7b6be385329f177f928f559b95fc7fed0f9d6ab9 GIT binary patch literal 94332 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 literal 0 HcmV?d00001 diff --git a/assets/main/native/b3/b3833684-8b23-4dad-abd3-b6d4618b0cd5.57beb.png b/assets/main/native/b3/b3833684-8b23-4dad-abd3-b6d4618b0cd5.57beb.png new file mode 100644 index 0000000000000000000000000000000000000000..1e5ae71e0f8b138fc9a773eb7a3e31a15d54d066 GIT binary patch literal 38299 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%0DIeEoa6}C!XbFK1ATTy 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 KPrz;TmIeSn7SCA# literal 0 HcmV?d00001 diff --git a/assets/main/native/bf/bf5b669b-6a12-47c9-a3eb-025e4a531fda.3938e.png b/assets/main/native/bf/bf5b669b-6a12-47c9-a3eb-025e4a531fda.3938e.png new file mode 100644 index 0000000000000000000000000000000000000000..38bddefa0b8d3c0ca4438a9b8fb7c834454b2e99 GIT binary patch literal 54765 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 TJ?1sf16kgTe~DWM4f{R8H^ literal 0 HcmV?d00001 diff --git a/assets/main/native/ca/caeae136-5f11-4fba-ad76-4c0c2882d26a.78b85.png b/assets/main/native/ca/caeae136-5f11-4fba-ad76-4c0c2882d26a.78b85.png new file mode 100644 index 0000000000000000000000000000000000000000..c59d66c141dcb3495e9f7f6d905e0fdc75833887 GIT binary patch literal 111789 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

      PEZy7%nU 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 J%Q~loCIG_|+noRa literal 0 HcmV?d00001 diff --git a/assets/main/native/d6/d6bbcb8e-6520-4678-8296-f1cae8d6e0d0.0b746.png b/assets/main/native/d6/d6bbcb8e-6520-4678-8296-f1cae8d6e0d0.0b746.png new file mode 100644 index 0000000000000000000000000000000000000000..776e7fadd8682edda629e749960825df52a86cec GIT binary patch literal 30075 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 P3MB05>gTe~DWM4f-#0WM literal 0 HcmV?d00001 diff --git a/assets/main/native/d8/d81ec8ad-247c-4e62-aa3c-d35c4193c7af.cdbc9.png b/assets/main/native/d8/d81ec8ad-247c-4e62-aa3c-d35c4193c7af.cdbc9.png new file mode 100644 index 0000000000000000000000000000000000000000..6f30fe4818f5c9b145bdd10c9162f8c90c167bd7 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0y~yU=RUe7G?$phWh0Ub_@&*`~f~8uI>dspOC;=>E9rA zEG0pH!3-bO*5>Fa^Dr-0Rx>u!*s^u{0xlUZKpniZ1!~Zb6Mw<&;$Tq C`5IjS literal 0 HcmV?d00001 diff --git a/assets/main/native/f5/f5bfe238-3fdd-4d0e-9a96-093a6a31ea43.0a4c5.png b/assets/main/native/f5/f5bfe238-3fdd-4d0e-9a96-093a6a31ea43.0a4c5.png new file mode 100644 index 0000000000000000000000000000000000000000..b2555efc7efa00d321e87210a871d7d87c44fdd4 GIT binary patch literal 5616 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 TW~?^@0|SGntDnm{r-UW|Z%VMr literal 0 HcmV?d00001 diff --git a/assets/resources/config.93f29.json b/assets/resources/config.93f29.json new file mode 100644 index 0000000..8a51e7c --- /dev/null +++ b/assets/resources/config.93f29.json @@ -0,0 +1 @@ +{"paths":{"0":["panel/LinkIconSpr",0]},"types":["cc.Prefab"],"uuids":["41eopZwPxHZ4viv1Eku0uN"],"scenes":{},"redirect":[],"deps":[],"packs":{},"name":"resources","importBase":"import","nativeBase":"native","debug":false,"isZip":false,"encrypted":false,"versions":{"import":[0,"3881a"],"native":[]}} \ No newline at end of file diff --git a/assets/resources/import/41/417a8a59-c0fc-4767-8be2-bf5124bb4b8d.3881a.json b/assets/resources/import/41/417a8a59-c0fc-4767-8be2-bf5124bb4b8d.3881a.json new file mode 100644 index 0000000..fc30fe4 --- /dev/null +++ b/assets/resources/import/41/417a8a59-c0fc-4767-8be2-bf5124bb4b8d.3881a.json @@ -0,0 +1 @@ +[1,0,["node","root","iconSpr1","iconSpr","data"],[["cc.Node",["_name","_components","_prefab","_contentSize","_children","_parent"],2,9,4,5,2,1],["cc.Prefab",["_name"],2],["cc.Sprite",["_sizeMode","node"],2,1],["cc.PrefabInfo",["fileId","root"],2,1],["95474fr0oNDP7SAidILF03q",["node","iconSpr","iconSpr1"],3,1,1,1]],[[3,0,1,2],[0,0,5,1,2,3,2],[2,0,1,2],[1,0,2],[0,0,4,1,2,3,2],[4,0,1,2,1]],[[3,"LinkIconSpr"],[4,"IconSpr",[-5,-6],[[5,-4,-3,-2]],[0,"26HCE6jlZH2JPlJysMpbFK",-1],[5,55,55]],[1,"iconSpr",1,[[2,0,-7]],[0,"dfcxJv8x9NQ4rbq5mCpd2m",1],[5,55,55]],[1,"iconSpr1",1,[[2,0,-8]],[0,"df/Th35hhMw5m4XbK8Sp4o",1],[5,55,55]]],0,[0,1,1,0,2,3,0,3,2,0,0,1,0,-1,2,0,-2,3,0,0,2,0,0,3,0,4,1,8],[],[],[]] \ No newline at end of file diff --git a/assets/resources/index.93f29.js b/assets/resources/index.93f29.js new file mode 100644 index 0000000..3c6e1e1 --- /dev/null +++ b/assets/resources/index.93f29.js @@ -0,0 +1 @@ +(function r(e,n,t){function i(u,f){if(!n[u]){if(!e[u]){var _=u.split("/");if(_=_[_.length-1],!e[_]){var p="function"==typeof __require&&__require;if(!f&&p)return p(_,!0);if(o)return o(_,!0);throw new Error("Cannot find module '"+u+"'")}u=_}var a=n[u]={exports:{}};e[u][0].call(a.exports,function(r){return i(e[u][1][r]||r)},a,a.exports,r,e,n,t)}return n[u].exports}for(var o="function"==typeof __require&&__require,u=0;u= 0; i--) + e.push(cc.v2(t[i].x, t[i].y)); + return e + } + function n(t) { + for (var e = [], i = 0; i < t.length; i++) + e.push(cc.v2(t[i].x, t[i].y)); + return e + } + cc.CardinalSplineTo = cc.Class({ + name: "cc.CardinalSplineTo", + extends: cc.ActionInterval, + ctor: function(t, e, i) { + this._points = [], + this._deltaT = 0, + this._tension = 0, + this._previousPosition = null, + this._accumulatedDiff = null, + void 0 !== i && cc.CardinalSplineTo.prototype.initWithDuration.call(this, t, e, i) + }, + initWithDuration: function(t, e, i) { + return e && 0 !== e.length ? !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this.setPoints(e), + this._tension = i, + !0) : (cc.errorID(1024), + !1) + }, + clone: function() { + var t = new cc.CardinalSplineTo; + return t.initWithDuration(this._duration, n(this._points), this._tension), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._deltaT = 1 / (this._points.length - 1), + this._previousPosition = cc.v2(this.target.x, this.target.y), + this._accumulatedDiff = cc.v2(0, 0) + }, + update: function(i) { + var n, r; + i = this._computeEaseTime(i); + var s = this._points; + if (1 === i) + n = s.length - 1, + r = 1; + else { + var a = this._deltaT; + r = (i - a * (n = 0 | i / a)) / a + } + var o, l, h = t(e(s, n - 1), e(s, n - 0), e(s, n + 1), e(s, n + 2), this._tension, r); + if (cc.macro.ENABLE_STACKABLE_ACTIONS && (o = this.target.x - this._previousPosition.x, + l = this.target.y - this._previousPosition.y, + 0 !== o || 0 !== l)) { + var c = this._accumulatedDiff; + o = c.x + o, + l = c.y + l, + c.x = o, + c.y = l, + h.x += o, + h.y += l + } + this.updatePosition(h) + }, + reverse: function() { + var t = i(this._points); + return cc.cardinalSplineTo(this._duration, t, this._tension) + }, + updatePosition: function(t) { + this.target.setPosition(t), + this._previousPosition = t + }, + getPoints: function() { + return this._points + }, + setPoints: function(t) { + this._points = t + } + }), + cc.cardinalSplineTo = function(t, e, i) { + return new cc.CardinalSplineTo(t,e,i) + } + , + cc.CardinalSplineBy = cc.Class({ + name: "cc.CardinalSplineBy", + extends: cc.CardinalSplineTo, + ctor: function(t, e, i) { + this._startPosition = cc.v2(0, 0), + void 0 !== i && this.initWithDuration(t, e, i) + }, + startWithTarget: function(t) { + cc.CardinalSplineTo.prototype.startWithTarget.call(this, t), + this._startPosition.x = t.x, + this._startPosition.y = t.y + }, + reverse: function() { + for (var t, e = this._points.slice(), n = e[0], r = 1; r < e.length; ++r) + t = e[r], + e[r] = t.sub(n), + n = t; + var s = i(e); + for (n = s[s.length - 1], + s.pop(), + n.x = -n.x, + n.y = -n.y, + s.unshift(n), + r = 1; r < s.length; ++r) + (t = s[r]).x = -t.x, + t.y = -t.y, + t.x += n.x, + t.y += n.y, + s[r] = t, + n = t; + return cc.cardinalSplineBy(this._duration, s, this._tension) + }, + updatePosition: function(t) { + var e = this._startPosition + , i = t.x + e.x + , n = t.y + e.y; + this._previousPosition.x = i, + this._previousPosition.y = n, + this.target.setPosition(i, n) + }, + clone: function() { + var t = new cc.CardinalSplineBy; + return t.initWithDuration(this._duration, n(this._points), this._tension), + t + } + }), + cc.cardinalSplineBy = function(t, e, i) { + return new cc.CardinalSplineBy(t,e,i) + } + , + cc.CatmullRomTo = cc.Class({ + name: "cc.CatmullRomTo", + extends: cc.CardinalSplineTo, + ctor: function(t, e) { + e && this.initWithDuration(t, e) + }, + initWithDuration: function(t, e) { + return cc.CardinalSplineTo.prototype.initWithDuration.call(this, t, e, .5) + }, + clone: function() { + var t = new cc.CatmullRomTo; + return t.initWithDuration(this._duration, n(this._points)), + t + } + }), + cc.catmullRomTo = function(t, e) { + return new cc.CatmullRomTo(t,e) + } + , + cc.CatmullRomBy = cc.Class({ + name: "cc.CatmullRomBy", + extends: cc.CardinalSplineBy, + ctor: function(t, e) { + e && this.initWithDuration(t, e) + }, + initWithDuration: function(t, e) { + return cc.CardinalSplineTo.prototype.initWithDuration.call(this, t, e, .5) + }, + clone: function() { + var t = new cc.CatmullRomBy; + return t.initWithDuration(this._duration, n(this._points)), + t + } + }), + cc.catmullRomBy = function(t, e) { + return new cc.CatmullRomBy(t,e) + } + } + ), {}], + 3: [(function() { + "use strict"; + cc.easeIn = function(t) { + return { + _rate: t, + easing: function(t) { + return Math.pow(t, this._rate) + }, + reverse: function() { + return cc.easeIn(1 / this._rate) + } + } + } + , + cc.easeOut = function(t) { + return { + _rate: t, + easing: function(t) { + return Math.pow(t, 1 / this._rate) + }, + reverse: function() { + return cc.easeOut(1 / this._rate) + } + } + } + , + cc.easeInOut = function(t) { + return { + _rate: t, + easing: function(t) { + return (t *= 2) < 1 ? .5 * Math.pow(t, this._rate) : 1 - .5 * Math.pow(2 - t, this._rate) + }, + reverse: function() { + return cc.easeInOut(this._rate) + } + } + } + ; + var t = { + easing: function(t) { + return 0 === t ? 0 : Math.pow(2, 10 * (t - 1)) + }, + reverse: function() { + return e + } + }; + cc.easeExponentialIn = function() { + return t + } + ; + var e = { + easing: function(t) { + return 1 === t ? 1 : 1 - Math.pow(2, -10 * t) + }, + reverse: function() { + return t + } + }; + cc.easeExponentialOut = function() { + return e + } + ; + var i = { + easing: function(t) { + return 1 !== t && 0 !== t ? (t *= 2) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * (t - 1))) : t + }, + reverse: function() { + return i + } + }; + cc.easeExponentialInOut = function() { + return i + } + ; + var n = { + easing: function(t) { + return 0 === t || 1 === t ? t : -1 * Math.cos(t * Math.PI / 2) + 1 + }, + reverse: function() { + return r + } + }; + cc.easeSineIn = function() { + return n + } + ; + var r = { + easing: function(t) { + return 0 === t || 1 === t ? t : Math.sin(t * Math.PI / 2) + }, + reverse: function() { + return n + } + }; + cc.easeSineOut = function() { + return r + } + ; + var s = { + easing: function(t) { + return 0 === t || 1 === t ? t : -.5 * (Math.cos(Math.PI * t) - 1) + }, + reverse: function() { + return s + } + }; + cc.easeSineInOut = function() { + return s + } + ; + var a = { + easing: function(t) { + return 0 === t || 1 === t ? t : (t -= 1, + -Math.pow(2, 10 * t) * Math.sin((t - .075) * Math.PI * 2 / .3)) + }, + reverse: function() { + return o + } + }; + cc.easeElasticIn = function(t) { + return t && .3 !== t ? { + _period: t, + easing: function(t) { + return 0 === t || 1 === t ? t : (t -= 1, + -Math.pow(2, 10 * t) * Math.sin((t - this._period / 4) * Math.PI * 2 / this._period)) + }, + reverse: function() { + return cc.easeElasticOut(this._period) + } + } : a + } + ; + var o = { + easing: function(t) { + return 0 === t || 1 === t ? t : Math.pow(2, -10 * t) * Math.sin((t - .075) * Math.PI * 2 / .3) + 1 + }, + reverse: function() { + return a + } + }; + function l(t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 + } + cc.easeElasticOut = function(t) { + return t && .3 !== t ? { + _period: t, + easing: function(t) { + return 0 === t || 1 === t ? t : Math.pow(2, -10 * t) * Math.sin((t - this._period / 4) * Math.PI * 2 / this._period) + 1 + }, + reverse: function() { + return cc.easeElasticIn(this._period) + } + } : o + } + , + cc.easeElasticInOut = function(t) { + return { + _period: t = t || .3, + easing: function(t) { + var e = 0 + , i = this._period; + if (0 === t || 1 === t) + e = t; + else { + t *= 2, + i || (i = this._period = .3 * 1.5); + var n = i / 4; + e = (t -= 1) < 0 ? -.5 * Math.pow(2, 10 * t) * Math.sin((t - n) * Math.PI * 2 / i) : Math.pow(2, -10 * t) * Math.sin((t - n) * Math.PI * 2 / i) * .5 + 1 + } + return e + }, + reverse: function() { + return cc.easeElasticInOut(this._period) + } + } + } + ; + var h = { + easing: function(t) { + return 1 - l(1 - t) + }, + reverse: function() { + return c + } + }; + cc.easeBounceIn = function() { + return h + } + ; + var c = { + easing: function(t) { + return l(t) + }, + reverse: function() { + return h + } + }; + cc.easeBounceOut = function() { + return c + } + ; + var u = { + easing: function(t) { + return t < .5 ? .5 * (1 - l(1 - (t *= 2))) : .5 * l(2 * t - 1) + .5 + }, + reverse: function() { + return u + } + }; + cc.easeBounceInOut = function() { + return u + } + ; + var _ = { + easing: function(t) { + return 0 === t || 1 === t ? t : t * t * (2.70158 * t - 1.70158) + }, + reverse: function() { + return f + } + }; + cc.easeBackIn = function() { + return _ + } + ; + var f = { + easing: function(t) { + return 0 === t ? 0 : (t -= 1) * t * (2.70158 * t + 1.70158) + 1 + }, + reverse: function() { + return _ + } + }; + cc.easeBackOut = function() { + return f + } + ; + var d = { + easing: function(t) { + return (t *= 2) < 1 ? t * t * (3.5949095 * t - 2.5949095) / 2 : (t -= 2) * t * (3.5949095 * t + 2.5949095) / 2 + 1 + }, + reverse: function() { + return d + } + }; + cc.easeBackInOut = function() { + return d + } + , + cc.easeBezierAction = function(t, e, i, n) { + return { + easing: function(r) { + return Math.pow(1 - r, 3) * t + 3 * r * Math.pow(1 - r, 2) * e + 3 * Math.pow(r, 2) * (1 - r) * i + Math.pow(r, 3) * n + }, + reverse: function() { + return cc.easeBezierAction(n, i, e, t) + } + } + } + ; + var p = { + easing: function(t) { + return Math.pow(t, 2) + }, + reverse: function() { + return p + } + }; + cc.easeQuadraticActionIn = function() { + return p + } + ; + var m = { + easing: function(t) { + return -t * (t - 2) + }, + reverse: function() { + return m + } + }; + cc.easeQuadraticActionOut = function() { + return m + } + ; + var y = { + easing: function(t) { + return (t *= 2) < 1 ? t * t * .5 : -.5 * (--t * (t - 2) - 1) + }, + reverse: function() { + return y + } + }; + cc.easeQuadraticActionInOut = function() { + return y + } + ; + var v = { + easing: function(t) { + return t * t * t * t + }, + reverse: function() { + return v + } + }; + cc.easeQuarticActionIn = function() { + return v + } + ; + var g = { + easing: function(t) { + return -((t -= 1) * t * t * t - 1) + }, + reverse: function() { + return g + } + }; + cc.easeQuarticActionOut = function() { + return g + } + ; + var A = { + easing: function(t) { + return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2) + }, + reverse: function() { + return A + } + }; + cc.easeQuarticActionInOut = function() { + return A + } + ; + var x = { + easing: function(t) { + return t * t * t * t * t + }, + reverse: function() { + return x + } + }; + cc.easeQuinticActionIn = function() { + return x + } + ; + var b = { + easing: function(t) { + return (t -= 1) * t * t * t * t + 1 + }, + reverse: function() { + return b + } + }; + cc.easeQuinticActionOut = function() { + return b + } + ; + var C = { + easing: function(t) { + return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2) + }, + reverse: function() { + return C + } + }; + cc.easeQuinticActionInOut = function() { + return C + } + ; + var T = { + easing: function(t) { + return -1 * (Math.sqrt(1 - t * t) - 1) + }, + reverse: function() { + return T + } + }; + cc.easeCircleActionIn = function() { + return T + } + ; + var S = { + easing: function(t) { + return t -= 1, + Math.sqrt(1 - t * t) + }, + reverse: function() { + return S + } + }; + cc.easeCircleActionOut = function() { + return S + } + ; + var w = { + easing: function(t) { + return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : (t -= 2, + .5 * (Math.sqrt(1 - t * t) + 1)) + }, + reverse: function() { + return w + } + }; + cc.easeCircleActionInOut = function() { + return w + } + ; + var E = { + easing: function(t) { + return t * t * t + }, + reverse: function() { + return E + } + }; + cc.easeCubicActionIn = function() { + return E + } + ; + var M = { + easing: function(t) { + return (t -= 1) * t * t + 1 + }, + reverse: function() { + return M + } + }; + cc.easeCubicActionOut = function() { + return M + } + ; + var D = { + easing: function(t) { + return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2) + }, + reverse: function() { + return D + } + }; + cc.easeCubicActionInOut = function() { + return D + } + } + ), {}], + 4: [(function() { + "use strict"; + cc.ActionInstant = cc.Class({ + name: "cc.ActionInstant", + extends: cc.FiniteTimeAction, + isDone: function() { + return !0 + }, + step: function() { + this.update(1) + }, + update: function() {}, + reverse: function() { + return this.clone() + }, + clone: function() { + return new cc.ActionInstant + } + }), + cc.Show = cc.Class({ + name: "cc.Show", + extends: cc.ActionInstant, + update: function() { + for (var t = this.target.getComponentsInChildren(cc.RenderComponent), e = 0; e < t.length; ++e) + t[e].enabled = !0 + }, + reverse: function() { + return new cc.Hide + }, + clone: function() { + return new cc.Show + } + }), + cc.show = function() { + return new cc.Show + } + , + cc.Hide = cc.Class({ + name: "cc.Hide", + extends: cc.ActionInstant, + update: function() { + for (var t = this.target.getComponentsInChildren(cc.RenderComponent), e = 0; e < t.length; ++e) + t[e].enabled = !1 + }, + reverse: function() { + return new cc.Show + }, + clone: function() { + return new cc.Hide + } + }), + cc.hide = function() { + return new cc.Hide + } + , + cc.ToggleVisibility = cc.Class({ + name: "cc.ToggleVisibility", + extends: cc.ActionInstant, + update: function() { + for (var t = this.target.getComponentsInChildren(cc.RenderComponent), e = 0; e < t.length; ++e) { + var i = t[e]; + i.enabled = !i.enabled + } + }, + reverse: function() { + return new cc.ToggleVisibility + }, + clone: function() { + return new cc.ToggleVisibility + } + }), + cc.toggleVisibility = function() { + return new cc.ToggleVisibility + } + , + cc.RemoveSelf = cc.Class({ + name: "cc.RemoveSelf", + extends: cc.ActionInstant, + ctor: function(t) { + this._isNeedCleanUp = !0, + void 0 !== t && this.init(t) + }, + update: function() { + this.target.removeFromParent(this._isNeedCleanUp) + }, + init: function(t) { + return this._isNeedCleanUp = t, + !0 + }, + reverse: function() { + return new cc.RemoveSelf(this._isNeedCleanUp) + }, + clone: function() { + return new cc.RemoveSelf(this._isNeedCleanUp) + } + }), + cc.removeSelf = function(t) { + return new cc.RemoveSelf(t) + } + , + cc.DestroySelf = cc.Class({ + name: "cc.DestroySelf", + extends: cc.ActionInstant, + update: function() { + this.target.destroy() + }, + reverse: function() { + return new cc.DestroySelf + }, + clone: function() { + return new cc.DestroySelf + } + }), + cc.destroySelf = function() { + return new cc.DestroySelf + } + , + cc.FlipX = cc.Class({ + name: "cc.FlipX", + extends: cc.ActionInstant, + ctor: function(t) { + this._flippedX = !1, + void 0 !== t && this.initWithFlipX(t) + }, + initWithFlipX: function(t) { + return this._flippedX = t, + !0 + }, + update: function() { + this.target.scaleX = Math.abs(this.target.scaleX) * (this._flippedX ? -1 : 1) + }, + reverse: function() { + return new cc.FlipX(!this._flippedX) + }, + clone: function() { + var t = new cc.FlipX; + return t.initWithFlipX(this._flippedX), + t + } + }), + cc.flipX = function(t) { + return new cc.FlipX(t) + } + , + cc.FlipY = cc.Class({ + name: "cc.FlipY", + extends: cc.ActionInstant, + ctor: function(t) { + this._flippedY = !1, + void 0 !== t && this.initWithFlipY(t) + }, + initWithFlipY: function(t) { + return this._flippedY = t, + !0 + }, + update: function() { + this.target.scaleY = Math.abs(this.target.scaleY) * (this._flippedY ? -1 : 1) + }, + reverse: function() { + return new cc.FlipY(!this._flippedY) + }, + clone: function() { + var t = new cc.FlipY; + return t.initWithFlipY(this._flippedY), + t + } + }), + cc.flipY = function(t) { + return new cc.FlipY(t) + } + , + cc.Place = cc.Class({ + name: "cc.Place", + extends: cc.ActionInstant, + ctor: function(t, e) { + this._x = 0, + this._y = 0, + void 0 !== t && (void 0 !== t.x && (e = t.y, + t = t.x), + this.initWithPosition(t, e)) + }, + initWithPosition: function(t, e) { + return this._x = t, + this._y = e, + !0 + }, + update: function() { + this.target.setPosition(this._x, this._y) + }, + clone: function() { + var t = new cc.Place; + return t.initWithPosition(this._x, this._y), + t + } + }), + cc.place = function(t, e) { + return new cc.Place(t,e) + } + , + cc.CallFunc = cc.Class({ + name: "cc.CallFunc", + extends: cc.ActionInstant, + ctor: function(t, e, i) { + this._selectorTarget = null, + this._function = null, + this._data = null, + this.initWithFunction(t, e, i) + }, + initWithFunction: function(t, e, i) { + return t && (this._function = t), + e && (this._selectorTarget = e), + void 0 !== i && (this._data = i), + !0 + }, + execute: function() { + this._function && this._function.call(this._selectorTarget, this.target, this._data) + }, + update: function() { + this.execute() + }, + getTargetCallback: function() { + return this._selectorTarget + }, + setTargetCallback: function(t) { + t !== this._selectorTarget && (this._selectorTarget && (this._selectorTarget = null), + this._selectorTarget = t) + }, + clone: function() { + var t = new cc.CallFunc; + return t.initWithFunction(this._function, this._selectorTarget, this._data), + t + } + }), + cc.callFunc = function(t, e, i) { + return new cc.CallFunc(t,e,i) + } + } + ), {}], + 5: [(function() { + "use strict"; + function t(t, e, i, n, r) { + return Math.pow(1 - r, 3) * t + 3 * r * Math.pow(1 - r, 2) * e + 3 * Math.pow(r, 2) * (1 - r) * i + Math.pow(r, 3) * n + } + cc.ActionInterval = cc.Class({ + name: "cc.ActionInterval", + extends: cc.FiniteTimeAction, + ctor: function(t) { + this.MAX_VALUE = 2, + this._elapsed = 0, + this._firstTick = !1, + this._easeList = null, + this._speed = 1, + this._timesForRepeat = 1, + this._repeatForever = !1, + this._repeatMethod = !1, + this._speedMethod = !1, + void 0 !== t && cc.ActionInterval.prototype.initWithDuration.call(this, t) + }, + getElapsed: function() { + return this._elapsed + }, + initWithDuration: function(t) { + return this._duration = 0 === t ? cc.macro.FLT_EPSILON : t, + this._elapsed = 0, + this._firstTick = !0, + !0 + }, + isDone: function() { + return this._elapsed >= this._duration + }, + _cloneDecoration: function(t) { + t._repeatForever = this._repeatForever, + t._speed = this._speed, + t._timesForRepeat = this._timesForRepeat, + t._easeList = this._easeList, + t._speedMethod = this._speedMethod, + t._repeatMethod = this._repeatMethod + }, + _reverseEaseList: function(t) { + if (this._easeList) { + t._easeList = []; + for (var e = 0; e < this._easeList.length; e++) + t._easeList.push(this._easeList[e].reverse()) + } + }, + clone: function() { + var t = new cc.ActionInterval(this._duration); + return this._cloneDecoration(t), + t + }, + easing: function() { + this._easeList ? this._easeList.length = 0 : this._easeList = []; + for (var t = 0; t < arguments.length; t++) + this._easeList.push(arguments[t]); + return this + }, + _computeEaseTime: function(t) { + var e = this._easeList; + if (!e || 0 === e.length) + return t; + for (var i = 0, n = e.length; i < n; i++) + t = e[i].easing(t); + return t + }, + step: function(t) { + this._firstTick ? (this._firstTick = !1, + this._elapsed = 0) : this._elapsed += t; + var e = this._elapsed / (this._duration > 1.192092896e-7 ? this._duration : 1.192092896e-7); + e = 1 > e ? e : 1, + this.update(e > 0 ? e : 0), + this._repeatMethod && this._timesForRepeat > 1 && this.isDone() && (this._repeatForever || this._timesForRepeat--, + this.startWithTarget(this.target), + this.step(this._elapsed - this._duration)) + }, + startWithTarget: function(t) { + cc.Action.prototype.startWithTarget.call(this, t), + this._elapsed = 0, + this._firstTick = !0 + }, + reverse: function() { + return cc.logID(1010), + null + }, + setAmplitudeRate: function() { + cc.logID(1011) + }, + getAmplitudeRate: function() { + return cc.logID(1012), + 0 + }, + speed: function(t) { + return t <= 0 ? (cc.logID(1013), + this) : (this._speedMethod = !0, + this._speed *= t, + this) + }, + getSpeed: function() { + return this._speed + }, + setSpeed: function(t) { + return this._speed = t, + this + }, + repeat: function(t) { + return t = Math.round(t), + isNaN(t) || t < 1 ? (cc.logID(1014), + this) : (this._repeatMethod = !0, + this._timesForRepeat *= t, + this) + }, + repeatForever: function() { + return this._repeatMethod = !0, + this._timesForRepeat = this.MAX_VALUE, + this._repeatForever = !0, + this + } + }), + cc.actionInterval = function(t) { + return new cc.ActionInterval(t) + } + , + cc.Sequence = cc.Class({ + name: "cc.Sequence", + extends: cc.ActionInterval, + ctor: function(t) { + this._actions = [], + this._split = null, + this._last = 0, + this._reversed = !1; + var e = t instanceof Array ? t : arguments; + if (1 !== e.length) { + var i = e.length - 1; + if (i >= 0 && null == e[i] && cc.logID(1015), + i >= 0) { + for (var n, r = e[0], s = 1; s < i; s++) + e[s] && (n = r, + r = cc.Sequence._actionOneTwo(n, e[s])); + this.initWithTwoActions(r, e[i]) + } + } else + cc.errorID(1019) + }, + initWithTwoActions: function(t, e) { + if (!t || !e) + return cc.errorID(1025), + !1; + var i = t._duration + , n = e._duration + , r = (i *= t._repeatMethod ? t._timesForRepeat : 1) + (n *= e._repeatMethod ? e._timesForRepeat : 1); + return this.initWithDuration(r), + this._actions[0] = t, + this._actions[1] = e, + !0 + }, + clone: function() { + var t = new cc.Sequence; + return this._cloneDecoration(t), + t.initWithTwoActions(this._actions[0].clone(), this._actions[1].clone()), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._split = this._actions[0]._duration / this._duration, + this._split *= this._actions[0]._repeatMethod ? this._actions[0]._timesForRepeat : 1, + this._last = -1 + }, + stop: function() { + -1 !== this._last && this._actions[this._last].stop(), + cc.Action.prototype.stop.call(this) + }, + update: function(t) { + var e, i, n = 0, r = this._split, s = this._actions, a = this._last; + (t = this._computeEaseTime(t)) < r ? (e = 0 !== r ? t / r : 1, + 0 === n && 1 === a && this._reversed && (s[1].update(0), + s[1].stop())) : (n = 1, + e = 1 === r ? 1 : (t - r) / (1 - r), + -1 === a && (s[0].startWithTarget(this.target), + s[0].update(1), + s[0].stop()), + 0 === a && (s[0].update(1), + s[0].stop())), + i = s[n], + a === n && i.isDone() || (a !== n && i.startWithTarget(this.target), + e *= i._timesForRepeat, + i.update(e > 1 ? e % 1 : e), + this._last = n) + }, + reverse: function() { + var t = cc.Sequence._actionOneTwo(this._actions[1].reverse(), this._actions[0].reverse()); + return this._cloneDecoration(t), + this._reverseEaseList(t), + t._reversed = !0, + t + } + }), + cc.sequence = function(t) { + var e = t instanceof Array ? t : arguments; + if (1 === e.length) + return cc.errorID(1019), + null; + var i = e.length - 1; + i >= 0 && null == e[i] && cc.logID(1015); + var n = null; + if (i >= 0) { + n = e[0]; + for (var r = 1; r <= i; r++) + e[r] && (n = cc.Sequence._actionOneTwo(n, e[r])) + } + return n + } + , + cc.Sequence._actionOneTwo = function(t, e) { + var i = new cc.Sequence; + return i.initWithTwoActions(t, e), + i + } + , + cc.Repeat = cc.Class({ + name: "cc.Repeat", + extends: cc.ActionInterval, + ctor: function(t, e) { + this._times = 0, + this._total = 0, + this._nextDt = 0, + this._actionInstant = !1, + this._innerAction = null, + void 0 !== e && this.initWithAction(t, e) + }, + initWithAction: function(t, e) { + var i = t._duration * e; + return !!this.initWithDuration(i) && (this._times = e, + this._innerAction = t, + t instanceof cc.ActionInstant && (this._actionInstant = !0, + this._times -= 1), + this._total = 0, + !0) + }, + clone: function() { + var t = new cc.Repeat; + return this._cloneDecoration(t), + t.initWithAction(this._innerAction.clone(), this._times), + t + }, + startWithTarget: function(t) { + this._total = 0, + this._nextDt = this._innerAction._duration / this._duration, + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._innerAction.startWithTarget(t) + }, + stop: function() { + this._innerAction.stop(), + cc.Action.prototype.stop.call(this) + }, + update: function(t) { + t = this._computeEaseTime(t); + var e = this._innerAction + , i = this._duration + , n = this._times + , r = this._nextDt; + if (t >= r) { + for (; t > r && this._total < n; ) + e.update(1), + this._total++, + e.stop(), + e.startWithTarget(this.target), + r += e._duration / i, + this._nextDt = r > 1 ? 1 : r; + t >= 1 && this._total < n && (e.update(1), + this._total++), + this._actionInstant || (this._total === n ? e.stop() : e.update(t - (r - e._duration / i))) + } else + e.update(t * n % 1) + }, + isDone: function() { + return this._total === this._times + }, + reverse: function() { + var t = new cc.Repeat(this._innerAction.reverse(),this._times); + return this._cloneDecoration(t), + this._reverseEaseList(t), + t + }, + setInnerAction: function(t) { + this._innerAction !== t && (this._innerAction = t) + }, + getInnerAction: function() { + return this._innerAction + } + }), + cc.repeat = function(t, e) { + return new cc.Repeat(t,e) + } + , + cc.RepeatForever = cc.Class({ + name: "cc.RepeatForever", + extends: cc.ActionInterval, + ctor: function(t) { + this._innerAction = null, + t && this.initWithAction(t) + }, + initWithAction: function(t) { + return t ? (this._innerAction = t, + !0) : (cc.errorID(1026), + !1) + }, + clone: function() { + var t = new cc.RepeatForever; + return this._cloneDecoration(t), + t.initWithAction(this._innerAction.clone()), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._innerAction.startWithTarget(t) + }, + step: function(t) { + var e = this._innerAction; + e.step(t), + e.isDone() && (e.startWithTarget(this.target), + e.step(e.getElapsed() - e._duration)) + }, + isDone: function() { + return !1 + }, + reverse: function() { + var t = new cc.RepeatForever(this._innerAction.reverse()); + return this._cloneDecoration(t), + this._reverseEaseList(t), + t + }, + setInnerAction: function(t) { + this._innerAction !== t && (this._innerAction = t) + }, + getInnerAction: function() { + return this._innerAction + } + }), + cc.repeatForever = function(t) { + return new cc.RepeatForever(t) + } + , + cc.Spawn = cc.Class({ + name: "cc.Spawn", + extends: cc.ActionInterval, + ctor: function(t) { + this._one = null, + this._two = null; + var e = t instanceof Array ? t : arguments; + if (1 !== e.length) { + var i = e.length - 1; + if (i >= 0 && null == e[i] && cc.logID(1015), + i >= 0) { + for (var n, r = e[0], s = 1; s < i; s++) + e[s] && (n = r, + r = cc.Spawn._actionOneTwo(n, e[s])); + this.initWithTwoActions(r, e[i]) + } + } else + cc.errorID(1020) + }, + initWithTwoActions: function(t, e) { + if (!t || !e) + return cc.errorID(1027), + !1; + var i = !1 + , n = t._duration + , r = e._duration; + return this.initWithDuration(Math.max(n, r)) && (this._one = t, + this._two = e, + n > r ? this._two = cc.Sequence._actionOneTwo(e, cc.delayTime(n - r)) : n < r && (this._one = cc.Sequence._actionOneTwo(t, cc.delayTime(r - n))), + i = !0), + i + }, + clone: function() { + var t = new cc.Spawn; + return this._cloneDecoration(t), + t.initWithTwoActions(this._one.clone(), this._two.clone()), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._one.startWithTarget(t), + this._two.startWithTarget(t) + }, + stop: function() { + this._one.stop(), + this._two.stop(), + cc.Action.prototype.stop.call(this) + }, + update: function(t) { + t = this._computeEaseTime(t), + this._one && this._one.update(t), + this._two && this._two.update(t) + }, + reverse: function() { + var t = cc.Spawn._actionOneTwo(this._one.reverse(), this._two.reverse()); + return this._cloneDecoration(t), + this._reverseEaseList(t), + t + } + }), + cc.spawn = function(t) { + var e = t instanceof Array ? t : arguments; + if (1 === e.length) + return cc.errorID(1020), + null; + e.length > 0 && null == e[e.length - 1] && cc.logID(1015); + for (var i = e[0], n = 1; n < e.length; n++) + null != e[n] && (i = cc.Spawn._actionOneTwo(i, e[n])); + return i + } + , + cc.Spawn._actionOneTwo = function(t, e) { + var i = new cc.Spawn; + return i.initWithTwoActions(t, e), + i + } + , + cc.RotateTo = cc.Class({ + name: "cc.RotateTo", + extends: cc.ActionInterval, + statics: { + _reverse: !1 + }, + ctor: function(t, e) { + this._startAngle = 0, + this._dstAngle = 0, + this._angle = 0, + void 0 !== e && this.initWithDuration(t, e) + }, + initWithDuration: function(t, e) { + return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._dstAngle = e, + !0) + }, + clone: function() { + var t = new cc.RotateTo; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._dstAngle), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t); + var e = t.angle % 360 + , i = cc.RotateTo._reverse ? this._dstAngle - e : this._dstAngle + e; + i > 180 && (i -= 360), + i < -180 && (i += 360), + this._startAngle = e, + this._angle = cc.RotateTo._reverse ? i : -i + }, + reverse: function() { + cc.logID(1016) + }, + update: function(t) { + t = this._computeEaseTime(t), + this.target && (this.target.angle = this._startAngle + this._angle * t) + } + }), + cc.rotateTo = function(t, e) { + return new cc.RotateTo(t,e) + } + , + cc.RotateBy = cc.Class({ + name: "cc.RotateBy", + extends: cc.ActionInterval, + statics: { + _reverse: !1 + }, + ctor: function(t, e) { + e *= cc.RotateBy._reverse ? 1 : -1, + this._deltaAngle = 0, + this._startAngle = 0, + void 0 !== e && this.initWithDuration(t, e) + }, + initWithDuration: function(t, e) { + return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._deltaAngle = e, + !0) + }, + clone: function() { + var t = new cc.RotateBy; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._deltaAngle), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._startAngle = t.angle + }, + update: function(t) { + t = this._computeEaseTime(t), + this.target && (this.target.angle = this._startAngle + this._deltaAngle * t) + }, + reverse: function() { + var t = new cc.RotateBy; + return t.initWithDuration(this._duration, -this._deltaAngle), + this._cloneDecoration(t), + this._reverseEaseList(t), + t + } + }), + cc.rotateBy = function(t, e) { + return new cc.RotateBy(t,e) + } + , + cc.MoveBy = cc.Class({ + name: "cc.MoveBy", + extends: cc.ActionInterval, + ctor: function(t, e, i) { + this._positionDelta = cc.v2(0, 0), + this._startPosition = cc.v2(0, 0), + this._previousPosition = cc.v2(0, 0), + void 0 !== e && cc.MoveBy.prototype.initWithDuration.call(this, t, e, i) + }, + initWithDuration: function(t, e, i) { + return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (void 0 !== e.x && (i = e.y, + e = e.x), + this._positionDelta.x = e, + this._positionDelta.y = i, + !0) + }, + clone: function() { + var t = new cc.MoveBy; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._positionDelta), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t); + var e = t.x + , i = t.y; + this._previousPosition.x = e, + this._previousPosition.y = i, + this._startPosition.x = e, + this._startPosition.y = i + }, + update: function(t) { + if (t = this._computeEaseTime(t), + this.target) { + var e = this._positionDelta.x * t + , i = this._positionDelta.y * t + , n = this._startPosition; + if (cc.macro.ENABLE_STACKABLE_ACTIONS) { + var r = this.target.x + , s = this.target.y + , a = this._previousPosition; + n.x = n.x + r - a.x, + n.y = n.y + s - a.y, + e += n.x, + i += n.y, + a.x = e, + a.y = i, + this.target.setPosition(e, i) + } else + this.target.setPosition(n.x + e, n.y + i) + } + }, + reverse: function() { + var t = new cc.MoveBy(this._duration,cc.v2(-this._positionDelta.x, -this._positionDelta.y)); + return this._cloneDecoration(t), + this._reverseEaseList(t), + t + } + }), + cc.moveBy = function(t, e, i) { + return new cc.MoveBy(t,e,i) + } + , + cc.MoveTo = cc.Class({ + name: "cc.MoveTo", + extends: cc.MoveBy, + ctor: function(t, e, i) { + this._endPosition = cc.v2(0, 0), + void 0 !== e && this.initWithDuration(t, e, i) + }, + initWithDuration: function(t, e, i) { + return !!cc.MoveBy.prototype.initWithDuration.call(this, t, e, i) && (void 0 !== e.x && (i = e.y, + e = e.x), + this._endPosition.x = e, + this._endPosition.y = i, + !0) + }, + clone: function() { + var t = new cc.MoveTo; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._endPosition), + t + }, + startWithTarget: function(t) { + cc.MoveBy.prototype.startWithTarget.call(this, t), + this._positionDelta.x = this._endPosition.x - t.x, + this._positionDelta.y = this._endPosition.y - t.y + } + }), + cc.moveTo = function(t, e, i) { + return new cc.MoveTo(t,e,i) + } + , + cc.SkewTo = cc.Class({ + name: "cc.SkewTo", + extends: cc.ActionInterval, + ctor: function(t, e, i) { + this._skewX = 0, + this._skewY = 0, + this._startSkewX = 0, + this._startSkewY = 0, + this._endSkewX = 0, + this._endSkewY = 0, + this._deltaX = 0, + this._deltaY = 0, + void 0 !== i && cc.SkewTo.prototype.initWithDuration.call(this, t, e, i) + }, + initWithDuration: function(t, e, i) { + var n = !1; + return cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._endSkewX = e, + this._endSkewY = i, + n = !0), + n + }, + clone: function() { + var t = new cc.SkewTo; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._endSkewX, this._endSkewY), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._startSkewX = t.skewX % 180, + this._deltaX = this._endSkewX - this._startSkewX, + this._deltaX > 180 && (this._deltaX -= 360), + this._deltaX < -180 && (this._deltaX += 360), + this._startSkewY = t.skewY % 360, + this._deltaY = this._endSkewY - this._startSkewY, + this._deltaY > 180 && (this._deltaY -= 360), + this._deltaY < -180 && (this._deltaY += 360) + }, + update: function(t) { + t = this._computeEaseTime(t), + this.target.skewX = this._startSkewX + this._deltaX * t, + this.target.skewY = this._startSkewY + this._deltaY * t + } + }), + cc.skewTo = function(t, e, i) { + return new cc.SkewTo(t,e,i) + } + , + cc.SkewBy = cc.Class({ + name: "cc.SkewBy", + extends: cc.SkewTo, + ctor: function(t, e, i) { + void 0 !== i && this.initWithDuration(t, e, i) + }, + initWithDuration: function(t, e, i) { + var n = !1; + return cc.SkewTo.prototype.initWithDuration.call(this, t, e, i) && (this._skewX = e, + this._skewY = i, + n = !0), + n + }, + clone: function() { + var t = new cc.SkewBy; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._skewX, this._skewY), + t + }, + startWithTarget: function(t) { + cc.SkewTo.prototype.startWithTarget.call(this, t), + this._deltaX = this._skewX, + this._deltaY = this._skewY, + this._endSkewX = this._startSkewX + this._deltaX, + this._endSkewY = this._startSkewY + this._deltaY + }, + reverse: function() { + var t = new cc.SkewBy(this._duration,-this._skewX,-this._skewY); + return this._cloneDecoration(t), + this._reverseEaseList(t), + t + } + }), + cc.skewBy = function(t, e, i) { + return new cc.SkewBy(t,e,i) + } + , + cc.JumpBy = cc.Class({ + name: "cc.JumpBy", + extends: cc.ActionInterval, + ctor: function(t, e, i, n, r) { + this._startPosition = cc.v2(0, 0), + this._previousPosition = cc.v2(0, 0), + this._delta = cc.v2(0, 0), + this._height = 0, + this._jumps = 0, + void 0 !== n && cc.JumpBy.prototype.initWithDuration.call(this, t, e, i, n, r) + }, + initWithDuration: function(t, e, i, n, r) { + return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (void 0 === r && (r = n, + n = i, + i = e.y, + e = e.x), + this._delta.x = e, + this._delta.y = i, + this._height = n, + this._jumps = r, + !0) + }, + clone: function() { + var t = new cc.JumpBy; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._delta, this._height, this._jumps), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t); + var e = t.x + , i = t.y; + this._previousPosition.x = e, + this._previousPosition.y = i, + this._startPosition.x = e, + this._startPosition.y = i + }, + update: function(t) { + if (t = this._computeEaseTime(t), + this.target) { + var e = t * this._jumps % 1 + , i = 4 * this._height * e * (1 - e); + i += this._delta.y * t; + var n = this._delta.x * t + , r = this._startPosition; + if (cc.macro.ENABLE_STACKABLE_ACTIONS) { + var s = this.target.x + , a = this.target.y + , o = this._previousPosition; + r.x = r.x + s - o.x, + r.y = r.y + a - o.y, + n += r.x, + i += r.y, + o.x = n, + o.y = i, + this.target.setPosition(n, i) + } else + this.target.setPosition(r.x + n, r.y + i) + } + }, + reverse: function() { + var t = new cc.JumpBy(this._duration,cc.v2(-this._delta.x, -this._delta.y),this._height,this._jumps); + return this._cloneDecoration(t), + this._reverseEaseList(t), + t + } + }), + cc.jumpBy = function(t, e, i, n, r) { + return new cc.JumpBy(t,e,i,n,r) + } + , + cc.JumpTo = cc.Class({ + name: "cc.JumpTo", + extends: cc.JumpBy, + ctor: function(t, e, i, n, r) { + this._endPosition = cc.v2(0, 0), + void 0 !== n && this.initWithDuration(t, e, i, n, r) + }, + initWithDuration: function(t, e, i, n, r) { + return !!cc.JumpBy.prototype.initWithDuration.call(this, t, e, i, n, r) && (void 0 === r && (i = e.y, + e = e.x), + this._endPosition.x = e, + this._endPosition.y = i, + !0) + }, + startWithTarget: function(t) { + cc.JumpBy.prototype.startWithTarget.call(this, t), + this._delta.x = this._endPosition.x - this._startPosition.x, + this._delta.y = this._endPosition.y - this._startPosition.y + }, + clone: function() { + var t = new cc.JumpTo; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._endPosition, this._height, this._jumps), + t + } + }), + cc.jumpTo = function(t, e, i, n, r) { + return new cc.JumpTo(t,e,i,n,r) + } + , + cc.BezierBy = cc.Class({ + name: "cc.BezierBy", + extends: cc.ActionInterval, + ctor: function(t, e) { + this._config = [], + this._startPosition = cc.v2(0, 0), + this._previousPosition = cc.v2(0, 0), + e && cc.BezierBy.prototype.initWithDuration.call(this, t, e) + }, + initWithDuration: function(t, e) { + return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._config = e, + !0) + }, + clone: function() { + var t = new cc.BezierBy; + this._cloneDecoration(t); + for (var e = [], i = 0; i < this._config.length; i++) { + var n = this._config[i]; + e.push(cc.v2(n.x, n.y)) + } + return t.initWithDuration(this._duration, e), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t); + var e = t.x + , i = t.y; + this._previousPosition.x = e, + this._previousPosition.y = i, + this._startPosition.x = e, + this._startPosition.y = i + }, + update: function(e) { + if (e = this._computeEaseTime(e), + this.target) { + var i = this._config + , n = i[0].x + , r = i[1].x + , s = i[2].x + , a = i[0].y + , o = i[1].y + , l = i[2].y + , h = t(0, n, r, s, e) + , c = t(0, a, o, l, e) + , u = this._startPosition; + if (cc.macro.ENABLE_STACKABLE_ACTIONS) { + var _ = this.target.x + , f = this.target.y + , d = this._previousPosition; + u.x = u.x + _ - d.x, + u.y = u.y + f - d.y, + h += u.x, + c += u.y, + d.x = h, + d.y = c, + this.target.setPosition(h, c) + } else + this.target.setPosition(u.x + h, u.y + c) + } + }, + reverse: function() { + var t = this._config + , e = t[0].x + , i = t[0].y + , n = t[1].x + , r = t[1].y + , s = t[2].x + , a = t[2].y + , o = [cc.v2(n - s, r - a), cc.v2(e - s, i - a), cc.v2(-s, -a)] + , l = new cc.BezierBy(this._duration,o); + return this._cloneDecoration(l), + this._reverseEaseList(l), + l + } + }), + cc.bezierBy = function(t, e) { + return new cc.BezierBy(t,e) + } + , + cc.BezierTo = cc.Class({ + name: "cc.BezierTo", + extends: cc.BezierBy, + ctor: function(t, e) { + this._toConfig = [], + e && this.initWithDuration(t, e) + }, + initWithDuration: function(t, e) { + return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._toConfig = e, + !0) + }, + clone: function() { + var t = new cc.BezierTo; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._toConfig), + t + }, + startWithTarget: function(t) { + cc.BezierBy.prototype.startWithTarget.call(this, t); + var e = this._startPosition + , i = this._toConfig + , n = this._config; + n[0] = i[0].sub(e), + n[1] = i[1].sub(e), + n[2] = i[2].sub(e) + } + }), + cc.bezierTo = function(t, e) { + return new cc.BezierTo(t,e) + } + , + cc.ScaleTo = cc.Class({ + name: "cc.ScaleTo", + extends: cc.ActionInterval, + ctor: function(t, e, i) { + this._scaleX = 1, + this._scaleY = 1, + this._startScaleX = 1, + this._startScaleY = 1, + this._endScaleX = 0, + this._endScaleY = 0, + this._deltaX = 0, + this._deltaY = 0, + void 0 !== e && cc.ScaleTo.prototype.initWithDuration.call(this, t, e, i) + }, + initWithDuration: function(t, e, i) { + return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._endScaleX = e, + this._endScaleY = null != i ? i : e, + !0) + }, + clone: function() { + var t = new cc.ScaleTo; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._endScaleX, this._endScaleY), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._startScaleX = t.scaleX, + this._startScaleY = t.scaleY, + this._deltaX = this._endScaleX - this._startScaleX, + this._deltaY = this._endScaleY - this._startScaleY + }, + update: function(t) { + t = this._computeEaseTime(t), + this.target && (this.target.scaleX = this._startScaleX + this._deltaX * t, + this.target.scaleY = this._startScaleY + this._deltaY * t) + } + }), + cc.scaleTo = function(t, e, i) { + return new cc.ScaleTo(t,e,i) + } + , + cc.ScaleBy = cc.Class({ + name: "cc.ScaleBy", + extends: cc.ScaleTo, + startWithTarget: function(t) { + cc.ScaleTo.prototype.startWithTarget.call(this, t), + this._deltaX = this._startScaleX * this._endScaleX - this._startScaleX, + this._deltaY = this._startScaleY * this._endScaleY - this._startScaleY + }, + reverse: function() { + var t = new cc.ScaleBy(this._duration,1 / this._endScaleX,1 / this._endScaleY); + return this._cloneDecoration(t), + this._reverseEaseList(t), + t + }, + clone: function() { + var t = new cc.ScaleBy; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._endScaleX, this._endScaleY), + t + } + }), + cc.scaleBy = function(t, e, i) { + return new cc.ScaleBy(t,e,i) + } + , + cc.Blink = cc.Class({ + name: "cc.Blink", + extends: cc.ActionInterval, + ctor: function(t, e) { + this._times = 0, + this._originalState = !1, + void 0 !== e && this.initWithDuration(t, e) + }, + initWithDuration: function(t, e) { + return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._times = e, + !0) + }, + clone: function() { + var t = new cc.Blink; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._times), + t + }, + update: function(t) { + if (t = this._computeEaseTime(t), + this.target && !this.isDone()) { + var e = 1 / this._times + , i = t % e; + this.target.opacity = i > e / 2 ? 255 : 0 + } + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._originalState = t.opacity + }, + stop: function() { + this.target.opacity = this._originalState, + cc.ActionInterval.prototype.stop.call(this) + }, + reverse: function() { + var t = new cc.Blink(this._duration,this._times); + return this._cloneDecoration(t), + this._reverseEaseList(t), + t + } + }), + cc.blink = function(t, e) { + return new cc.Blink(t,e) + } + , + cc.FadeTo = cc.Class({ + name: "cc.FadeTo", + extends: cc.ActionInterval, + ctor: function(t, e) { + this._toOpacity = 0, + this._fromOpacity = 0, + void 0 !== e && cc.FadeTo.prototype.initWithDuration.call(this, t, e) + }, + initWithDuration: function(t, e) { + return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._toOpacity = e, + !0) + }, + clone: function() { + var t = new cc.FadeTo; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._toOpacity), + t + }, + update: function(t) { + t = this._computeEaseTime(t); + var e = void 0 !== this._fromOpacity ? this._fromOpacity : 255; + this.target.opacity = e + (this._toOpacity - e) * t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._fromOpacity = t.opacity + } + }), + cc.fadeTo = function(t, e) { + return new cc.FadeTo(t,e) + } + , + cc.FadeIn = cc.Class({ + name: "cc.FadeIn", + extends: cc.FadeTo, + ctor: function(t) { + null == t && (t = 0), + this._reverseAction = null, + this.initWithDuration(t, 255) + }, + reverse: function() { + var t = new cc.FadeOut; + return t.initWithDuration(this._duration, 0), + this._cloneDecoration(t), + this._reverseEaseList(t), + t + }, + clone: function() { + var t = new cc.FadeIn; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._toOpacity), + t + }, + startWithTarget: function(t) { + this._reverseAction && (this._toOpacity = this._reverseAction._fromOpacity), + cc.FadeTo.prototype.startWithTarget.call(this, t) + } + }), + cc.fadeIn = function(t) { + return new cc.FadeIn(t) + } + , + cc.FadeOut = cc.Class({ + name: "cc.FadeOut", + extends: cc.FadeTo, + ctor: function(t) { + null == t && (t = 0), + this._reverseAction = null, + this.initWithDuration(t, 0) + }, + reverse: function() { + var t = new cc.FadeIn; + return t._reverseAction = this, + t.initWithDuration(this._duration, 255), + this._cloneDecoration(t), + this._reverseEaseList(t), + t + }, + clone: function() { + var t = new cc.FadeOut; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._toOpacity), + t + } + }), + cc.fadeOut = function(t) { + return new cc.FadeOut(t) + } + , + cc.TintTo = cc.Class({ + name: "cc.TintTo", + extends: cc.ActionInterval, + ctor: function(t, e, i, n) { + this._to = cc.color(0, 0, 0), + this._from = cc.color(0, 0, 0), + e instanceof cc.Color && (n = e.b, + i = e.g, + e = e.r), + void 0 !== n && this.initWithDuration(t, e, i, n) + }, + initWithDuration: function(t, e, i, n) { + return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._to = cc.color(e, i, n), + !0) + }, + clone: function() { + var t = new cc.TintTo; + this._cloneDecoration(t); + var e = this._to; + return t.initWithDuration(this._duration, e.r, e.g, e.b), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._from = this.target.color + }, + update: function(t) { + t = this._computeEaseTime(t); + var e = this._from + , i = this._to; + e && (this.target.color = cc.color(e.r + (i.r - e.r) * t, e.g + (i.g - e.g) * t, e.b + (i.b - e.b) * t)) + } + }), + cc.tintTo = function(t, e, i, n) { + return new cc.TintTo(t,e,i,n) + } + , + cc.TintBy = cc.Class({ + name: "cc.TintBy", + extends: cc.ActionInterval, + ctor: function(t, e, i, n) { + this._deltaR = 0, + this._deltaG = 0, + this._deltaB = 0, + this._fromR = 0, + this._fromG = 0, + this._fromB = 0, + void 0 !== n && this.initWithDuration(t, e, i, n) + }, + initWithDuration: function(t, e, i, n) { + return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._deltaR = e, + this._deltaG = i, + this._deltaB = n, + !0) + }, + clone: function() { + var t = new cc.TintBy; + return this._cloneDecoration(t), + t.initWithDuration(this._duration, this._deltaR, this._deltaG, this._deltaB), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t); + var e = t.color; + this._fromR = e.r, + this._fromG = e.g, + this._fromB = e.b + }, + update: function(t) { + t = this._computeEaseTime(t), + this.target.color = cc.color(this._fromR + this._deltaR * t, this._fromG + this._deltaG * t, this._fromB + this._deltaB * t) + }, + reverse: function() { + var t = new cc.TintBy(this._duration,-this._deltaR,-this._deltaG,-this._deltaB); + return this._cloneDecoration(t), + this._reverseEaseList(t), + t + } + }), + cc.tintBy = function(t, e, i, n) { + return new cc.TintBy(t,e,i,n) + } + , + cc.DelayTime = cc.Class({ + name: "cc.DelayTime", + extends: cc.ActionInterval, + update: function() {}, + reverse: function() { + var t = new cc.DelayTime(this._duration); + return this._cloneDecoration(t), + this._reverseEaseList(t), + t + }, + clone: function() { + var t = new cc.DelayTime; + return this._cloneDecoration(t), + t.initWithDuration(this._duration), + t + } + }), + cc.delayTime = function(t) { + return new cc.DelayTime(t) + } + , + cc.ReverseTime = cc.Class({ + name: "cc.ReverseTime", + extends: cc.ActionInterval, + ctor: function(t) { + this._other = null, + t && this.initWithAction(t) + }, + initWithAction: function(t) { + return t ? t === this._other ? (cc.errorID(1029), + !1) : !!cc.ActionInterval.prototype.initWithDuration.call(this, t._duration) && (this._other = t, + !0) : (cc.errorID(1028), + !1) + }, + clone: function() { + var t = new cc.ReverseTime; + return this._cloneDecoration(t), + t.initWithAction(this._other.clone()), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._other.startWithTarget(t) + }, + update: function(t) { + t = this._computeEaseTime(t), + this._other && this._other.update(1 - t) + }, + reverse: function() { + return this._other.clone() + }, + stop: function() { + this._other.stop(), + cc.Action.prototype.stop.call(this) + } + }), + cc.reverseTime = function(t) { + return new cc.ReverseTime(t) + } + , + cc.TargetedAction = cc.Class({ + name: "cc.TargetedAction", + extends: cc.ActionInterval, + ctor: function(t, e) { + this._action = null, + this._forcedTarget = null, + e && this.initWithTarget(t, e) + }, + initWithTarget: function(t, e) { + return !!this.initWithDuration(e._duration) && (this._forcedTarget = t, + this._action = e, + !0) + }, + clone: function() { + var t = new cc.TargetedAction; + return this._cloneDecoration(t), + t.initWithTarget(this._forcedTarget, this._action.clone()), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t), + this._action.startWithTarget(this._forcedTarget) + }, + stop: function() { + this._action.stop() + }, + update: function(t) { + t = this._computeEaseTime(t), + this._action.update(t) + }, + getForcedTarget: function() { + return this._forcedTarget + }, + setForcedTarget: function(t) { + this._forcedTarget !== t && (this._forcedTarget = t) + } + }), + cc.targetedAction = function(t, e) { + return new cc.TargetedAction(t,e) + } + } + ), {}], + 6: [(function(t) { + "use strict"; + t("../core/platform/CCClass"); + var e = t("../core/platform/js") + , i = function() { + this.actions = [], + this.target = null, + this.actionIndex = 0, + this.currentAction = null, + this.paused = !1, + this.lock = !1 + }; + cc.ActionManager = function() { + this._hashTargets = e.createMap(!0), + this._arrayTargets = [], + this._currentTarget = null, + cc.director._scheduler && cc.director._scheduler.enableForTarget(this) + } + , + cc.ActionManager.prototype = { + constructor: cc.ActionManager, + _elementPool: [], + _searchElementByTarget: function(t, e) { + for (var i = 0; i < t.length; i++) + if (e === t[i].target) + return t[i]; + return null + }, + _getElement: function(t, e) { + var n = this._elementPool.pop(); + return n || (n = new i), + n.target = t, + n.paused = !!e, + n + }, + _putElement: function(t) { + t.actions.length = 0, + t.actionIndex = 0, + t.currentAction = null, + t.paused = !1, + t.target = null, + t.lock = !1, + this._elementPool.push(t) + }, + addAction: function(t, e, i) { + if (t && e) { + var n = this._hashTargets[e._id]; + n ? n.actions || (n.actions = []) : (n = this._getElement(e, i), + this._hashTargets[e._id] = n, + this._arrayTargets.push(n)), + n.actions.push(t), + t.startWithTarget(e) + } else + cc.errorID(1e3) + }, + removeAllActions: function() { + for (var t = this._arrayTargets, i = 0; i < t.length; i++) { + var n = t[i]; + n && this._putElement(n) + } + this._arrayTargets.length = 0, + this._hashTargets = e.createMap(!0) + }, + removeAllActionsFromTarget: function(t) { + if (null != t) { + var e = this._hashTargets[t._id]; + e && (e.actions.length = 0, + this._deleteHashElement(e)) + } + }, + removeAction: function(t) { + if (t) { + var e = t.getOriginalTarget() + , i = this._hashTargets[e._id]; + if (i) + for (var n = 0; n < i.actions.length; n++) + if (i.actions[n] === t) { + i.actions.splice(n, 1), + i.actionIndex >= n && i.actionIndex--; + break + } + } + }, + _removeActionByTag: function(t, e, i) { + for (var n = 0, r = e.actions.length; n < r; ++n) { + var s = e.actions[n]; + if (s && s.getTag() === t) { + if (i && s.getOriginalTarget() !== i) + continue; + this._removeActionAtIndex(n, e); + break + } + } + }, + removeActionByTag: function(t, e) { + t === cc.Action.TAG_INVALID && cc.logID(1002); + var i = this._hashTargets; + if (e) { + var n = i[e._id]; + n && this._removeActionByTag(t, n, e) + } else + for (var r in i) { + var s = i[r]; + this._removeActionByTag(t, s) + } + }, + getActionByTag: function(t, e) { + t === cc.Action.TAG_INVALID && cc.logID(1004); + var i = this._hashTargets[e._id]; + if (i) { + if (null != i.actions) + for (var n = 0; n < i.actions.length; ++n) { + var r = i.actions[n]; + if (r && r.getTag() === t) + return r + } + cc.logID(1005, t) + } + return null + }, + getNumberOfRunningActionsInTarget: function(t) { + var e = this._hashTargets[t._id]; + return e && e.actions ? e.actions.length : 0 + }, + pauseTarget: function(t) { + var e = this._hashTargets[t._id]; + e && (e.paused = !0) + }, + resumeTarget: function(t) { + var e = this._hashTargets[t._id]; + e && (e.paused = !1) + }, + pauseAllRunningActions: function() { + for (var t = [], e = this._arrayTargets, i = 0; i < e.length; i++) { + var n = e[i]; + n && !n.paused && (n.paused = !0, + t.push(n.target)) + } + return t + }, + resumeTargets: function(t) { + if (t) + for (var e = 0; e < t.length; e++) + t[e] && this.resumeTarget(t[e]) + }, + pauseTargets: function(t) { + if (t) + for (var e = 0; e < t.length; e++) + t[e] && this.pauseTarget(t[e]) + }, + purgeSharedManager: function() { + cc.director.getScheduler().unscheduleUpdate(this) + }, + _removeActionAtIndex: function(t, e) { + e.actions[t], + e.actions.splice(t, 1), + e.actionIndex >= t && e.actionIndex--, + 0 === e.actions.length && this._deleteHashElement(e) + }, + _deleteHashElement: function(t) { + var e = !1; + if (t && !t.lock && this._hashTargets[t.target._id]) { + delete this._hashTargets[t.target._id]; + for (var i = this._arrayTargets, n = 0, r = i.length; n < r; n++) + if (i[n] === t) { + i.splice(n, 1); + break + } + this._putElement(t), + e = !0 + } + return e + }, + update: function(t) { + for (var e, i = this._arrayTargets, n = 0; n < i.length; n++) { + if (this._currentTarget = i[n], + !(e = this._currentTarget).paused && e.actions) { + for (e.lock = !0, + e.actionIndex = 0; e.actionIndex < e.actions.length; e.actionIndex++) + if (e.currentAction = e.actions[e.actionIndex], + e.currentAction) { + if (e.currentAction.step(t * (e.currentAction._speedMethod ? e.currentAction._speed : 1)), + e.currentAction && e.currentAction.isDone()) { + e.currentAction.stop(); + var r = e.currentAction; + e.currentAction = null, + this.removeAction(r) + } + e.currentAction = null + } + e.lock = !1 + } + 0 === e.actions.length && this._deleteHashElement(e) && n-- + } + } + } + } + ), { + "../core/platform/CCClass": 193, + "../core/platform/js": 214 + }], + 7: [(function(t) { + "use strict"; + t("./CCActionManager"), + t("./CCAction"), + t("./CCActionInterval"), + t("./CCActionInstant"), + t("./CCActionEase"), + t("./CCActionCatmullRom"), + t("./tween") + } + ), { + "./CCAction": 1, + "./CCActionCatmullRom": 2, + "./CCActionEase": 3, + "./CCActionInstant": 4, + "./CCActionInterval": 5, + "./CCActionManager": 6, + "./tween": 8 + }], + 8: [(function(t) { + "use strict"; + var e = t("../animation/bezier") + , i = 0 + , n = cc.Class({ + name: "cc.TweenAction", + extends: cc.ActionInterval, + ctor: function(t, e, i) { + if (this._opts = i = i || Object.create(null), + this._props = Object.create(null), + i.progress = i.progress || this.progress, + i.easing && "string" == typeof i.easing) { + var n = i.easing; + i.easing = cc.easing[n], + !i.easing && cc.warnID(1031, n) + } + var r = this._opts.relative; + for (var s in e) { + var a = e[s] + , o = void 0 + , l = void 0; + if (void 0 !== a.value && (a.easing || a.progress) && ("string" == typeof a.easing ? !(o = cc.easing[a.easing]) && cc.warnID(1031, a.easing) : o = a.easing, + l = a.progress, + a = a.value), + "number" == typeof a || a.lerp && (!r || a.add || a.mul) && a.clone) { + var h = Object.create(null); + h.value = a, + h.easing = o, + h.progress = l, + this._props[s] = h + } else + cc.warn("Can not animate " + s + " property, because it do not have [lerp, (add|mul), clone] function.") + } + this._originProps = e, + this.initWithDuration(t) + }, + clone: function() { + var t = new n(this._duration,this._originProps,this._opts); + return this._cloneDecoration(t), + t + }, + startWithTarget: function(t) { + cc.ActionInterval.prototype.startWithTarget.call(this, t); + var e = !!this._opts.relative + , i = this._props; + for (var n in i) { + var r = t[n] + , s = i[n]; + "number" == typeof r ? (s.start = r, + s.current = r, + s.end = e ? r + s.value : s.value) : (s.start = r.clone(), + s.current = r.clone(), + s.end = e ? (r.add || r.mul).call(r, s.value) : s.value) + } + }, + update: function(t) { + var e = this._opts + , i = t; + e.easing && (i = e.easing(t)); + var n = this.target; + if (n) { + var r = this._props + , s = e.progress; + for (var a in r) { + var o = r[a] + , l = o.easing ? o.easing(t) : i + , h = o.current = (o.progress || s)(o.start, o.end, o.current, l); + n[a] = h + } + var c = e.onUpdate; + c && c(n, t) + } + }, + progress: function(t, e, i, n) { + return "number" == typeof t ? i = t + (e - t) * n : t.lerp(e, n, i), + i + } + }) + , r = cc.Class({ + name: "cc.SetAction", + extends: cc.ActionInstant, + ctor: function(t) { + this._props = {}, + void 0 !== t && this.init(t) + }, + init: function(t) { + for (var e in t) + this._props[e] = t[e]; + return !0 + }, + update: function() { + var t = this._props + , e = this.target; + for (var i in t) + e[i] = t[i] + }, + clone: function() { + var t = new r; + return t.init(this._props), + t + } + }); + function s(t) { + this._actions = [], + this._finalAction = null, + this._target = t, + this._tag = cc.Action.TAG_INVALID + } + s.stopAll = function() { + cc.director.getActionManager().removeAllActions() + } + , + s.stopAllByTag = function(t) { + cc.director.getActionManager().removeActionByTag(t) + } + , + s.stopAllByTarget = function(t) { + cc.director.getActionManager().removeAllActionsFromTarget(t) + } + , + s.prototype.then = function(t) { + return t instanceof cc.Action ? this._actions.push(t.clone()) : this._actions.push(t._union()), + this + } + , + s.prototype.target = function(t) { + return this._target = t, + this + } + , + s.prototype.start = function() { + var t = this._target; + return t ? t instanceof cc.Object && !t.isValid ? void 0 : (this._finalAction && cc.director.getActionManager().removeAction(this._finalAction), + this._finalAction = this._union(), + void 0 === t._id && (t._id = ++i), + this._finalAction.setTag(this._tag), + cc.director.getActionManager().addAction(this._finalAction, t, !1), + this) : (cc.warn("Please set target to tween first"), + this) + } + , + s.prototype.stop = function() { + return this._finalAction && cc.director.getActionManager().removeAction(this._finalAction), + this + } + , + s.prototype.tag = function(t) { + return this._tag = t, + this + } + , + s.prototype.clone = function(t) { + var e = this._union(); + return cc.tween(t).then(e.clone()) + } + , + s.prototype.union = function() { + var t = this._union(); + return this._actions.length = 0, + this._actions.push(t), + this + } + , + s.prototype._union = function() { + var t = this._actions; + return 1 === t.length ? t[0] : cc.sequence(t) + } + , + Object.assign(s.prototype, { + bezierTo: function(t, i, n, r, s) { + var a = i.x + , o = i.y + , l = n.x + , h = n.y; + return (s = s || Object.create(null)).progress = function(t, i, n, r) { + return n.x = (0, + e.bezier)(t.x, a, l, i.x, r), + n.y = (0, + e.bezier)(t.y, o, h, i.y, r), + n + } + , + this.to(t, { + position: r + }, s) + }, + bezierBy: function(t, i, n, r, s) { + var a = i.x + , o = i.y + , l = n.x + , h = n.y; + return (s = s || Object.create(null)).progress = function(t, i, n, r) { + var s = t.x + , c = t.y; + return n.x = (0, + e.bezier)(s, a + s, l + s, i.x, r), + n.y = (0, + e.bezier)(c, o + c, h + c, i.y, r), + n + } + , + this.by(t, { + position: r + }, s) + }, + flipX: function() { + var t = this; + return this.call((function() { + t._target.scaleX *= -1 + } + ), this) + }, + flipY: function() { + var t = this; + return this.call((function() { + t._target.scaleY *= -1 + } + ), this) + }, + blink: function(t, e, i) { + var n = 1 / e; + return (i = i || Object.create(null)).progress = function(t, e, i, r) { + return r >= 1 ? t : r % n > n / 2 ? 255 : 0 + } + , + this.to(t, { + opacity: 1 + }, i) + } + }); + var a = []; + function o(t) { + return function() { + a.length = 0; + for (var e = arguments.length, i = 0; i < e; i++) { + var n = a[i] = arguments[i]; + n instanceof s && (a[i] = n._union()) + } + return t.apply(this, a) + } + } + for (var l = { + to: function(t, e, i) { + return (i = i || Object.create(null)).relative = !1, + new n(t,e,i) + }, + by: function(t, e, i) { + return (i = i || Object.create(null)).relative = !0, + new n(t,e,i) + }, + set: function(t) { + return new r(t) + }, + delay: cc.delayTime, + call: cc.callFunc, + hide: cc.hide, + show: cc.show, + removeSelf: cc.removeSelf, + sequence: o(cc.sequence), + parallel: o(cc.spawn) + }, h = { + repeat: cc.repeat, + repeatForever: function(t) { + return cc.repeat(t, 1e9) + }, + reverseTime: cc.reverseTime + }, c = Object.keys(l), u = function(t) { + var e = c[t]; + s.prototype[e] = function() { + var t = l[e].apply(this, arguments); + return this._actions.push(t), + this + } + }, _ = 0; _ < c.length; _++) + u(_); + c = Object.keys(h); + for (var f = function(t) { + var e = c[t]; + s.prototype[e] = function() { + var t = this._actions + , i = arguments[arguments.length - 1] + , n = arguments.length - 1; + i instanceof cc.Tween ? i = i._union() : i instanceof cc.Action || (i = t[t.length - 1], + t.length -= 1, + n += 1); + for (var r = [i], s = 0; s < n; s++) + r.push(arguments[s]); + return i = h[e].apply(this, r), + t.push(i), + this + } + }, d = 0; d < c.length; d++) + f(d); + cc.tween = function(t) { + return new s(t) + } + , + cc.Tween = s + } + ), { + "../animation/bezier": 14 + }], + 9: [(function(t, e) { + "use strict"; + var i = cc.js + , n = t("./playable") + , r = t("./animation-curves") + , s = r.EventAnimCurve + , a = r.EventInfo + , o = t("./types").WrapModeMask + , l = t("../core/utils/binary-search").binarySearchEpsilon; + function h(t, e) { + n.call(this), + this.target = t, + this.animation = e, + this._anims = new i.array.MutableForwardIterator([]) + } + i.extend(h, n); + var c = h.prototype; + function u(t, e) { + var i = e.clip; + e.duration = i.duration, + e.speed = i.speed, + e.wrapMode = i.wrapMode, + e.frameRate = i.sample, + (e.wrapMode & o.Loop) === o.Loop ? e.repeatCount = 1 / 0 : e.repeatCount = 1; + var n = e.curves = i.createCurves(e, t) + , r = i.events; + if (r) + for (var h, c = 0, u = r.length; c < u; c++) { + h || ((h = new s).target = t, + n.push(h)); + var _ = r[c] + , f = _.frame / e.duration + , d = void 0 + , p = l(h.ratios, f); + p >= 0 ? d = h.events[p] : (d = new a, + h.ratios.push(f), + h.events.push(d)), + d.add(_.func, _.params) + } + } + c.playState = function(t, e) { + t.clip && (t.curveLoaded || u(this.target, t), + t.animator = this, + t.play(), + "number" == typeof e && t.setTime(e), + this.play()) + } + , + c.stopStatesExcept = function(t) { + var e = this._anims + , i = e.array; + for (e.i = 0; e.i < i.length; ++e.i) { + var n = i[e.i]; + n !== t && this.stopState(n) + } + } + , + c.addAnimation = function(t) { + -1 === this._anims.array.indexOf(t) && this._anims.push(t), + t._setEventTarget(this.animation) + } + , + c.removeAnimation = function(t) { + var e = this._anims.array.indexOf(t); + e >= 0 ? (this._anims.fastRemoveAt(e), + 0 === this._anims.array.length && this.stop()) : cc.errorID(3907), + t.animator = null + } + , + c.sample = function() { + var t = this._anims + , e = t.array; + for (t.i = 0; t.i < e.length; ++t.i) + e[t.i].sample() + } + , + c.stopState = function(t) { + t && t.stop() + } + , + c.pauseState = function(t) { + t && t.pause() + } + , + c.resumeState = function(t) { + t && t.resume(), + this.isPaused && this.resume() + } + , + c.setStateTime = function(t, e) { + if (void 0 !== e) + t && (t.setTime(e), + t.sample()); + else { + e = t; + for (var i = this._anims.array, n = 0; n < i.length; ++n) { + var r = i[n]; + r.setTime(e), + r.sample() + } + } + } + , + c.onStop = function() { + var t = this._anims + , e = t.array; + for (t.i = 0; t.i < e.length; ++t.i) + e[t.i].stop() + } + , + c.onPause = function() { + for (var t = this._anims.array, e = 0; e < t.length; ++e) { + var i = t[e]; + i.pause(), + i.animator = null + } + } + , + c.onResume = function() { + for (var t = this._anims.array, e = 0; e < t.length; ++e) { + var i = t[e]; + i.animator = this, + i.resume() + } + } + , + c._reloadClip = function(t) { + u(this.target, t) + } + , + e.exports = h + } + ), { + "../core/utils/binary-search": 260, + "./animation-curves": 11, + "./playable": 18, + "./types": 19 + }], + 10: [(function(t, e) { + "use strict"; + var i = t("./types").WrapMode + , n = t("./animation-curves") + , r = n.DynamicAnimCurve + , s = n.quickFindIndex + , a = t("./motion-path-helper").sampleMotionPaths + , o = t("../core/utils/binary-search").binarySearchEpsilon + , l = cc.Class({ + name: "cc.AnimationClip", + extends: cc.Asset, + properties: { + _duration: { + default: 0, + type: cc.Float + }, + duration: { + get: function() { + return this._duration + } + }, + sample: { + default: 60 + }, + speed: { + default: 1 + }, + wrapMode: { + default: i.Normal + }, + curveData: { + default: {}, + visible: !1 + }, + events: { + default: [], + visible: !1 + } + }, + statics: { + createWithSpriteFrames: function(t, e) { + if (!Array.isArray(t)) + return cc.errorID(3905), + null; + var i = new l; + i.sample = e || i.sample, + i._duration = t.length / i.sample; + for (var n = [], r = 1 / i.sample, s = 0, a = t.length; s < a; s++) + n[s] = { + frame: s * r, + value: t[s] + }; + return i.curveData = { + comps: { + "cc.Sprite": { + spriteFrame: n + } + } + }, + i + } + }, + onLoad: function() { + this._duration = Number.parseFloat(this.duration), + this.speed = Number.parseFloat(this.speed), + this.wrapMode = Number.parseInt(this.wrapMode), + this.frameRate = Number.parseFloat(this.sample) + }, + createPropCurve: function(t, e, i) { + var n = [] + , l = t instanceof cc.Node && "position" === e + , h = new r; + h.target = t, + h.prop = e; + for (var c = 0, u = i.length; c < u; c++) { + var _ = i[c] + , f = _.frame / this.duration; + h.ratios.push(f), + l && n.push(_.motionPath); + var d = _.value; + h.values.push(d); + var p = _.curve; + if (p) { + if ("string" == typeof p) { + h.types.push(p); + continue + } + if (Array.isArray(p)) { + p[0] === p[1] && p[2] === p[3] ? h.types.push(r.Linear) : h.types.push(r.Bezier(p)); + continue + } + } + h.types.push(r.Linear) + } + l && a(n, h, this.duration, this.sample, t); + for (var m, y, v = h.ratios, g = !0, A = 1, x = v.length; A < x; A++) + if (m = v[A] - v[A - 1], + 1 === A) + y = m; + else if (Math.abs(m - y) > 1e-6) { + g = !1; + break + } + h._findFrameIndex = g ? s : o; + var b = h.values[0]; + return null == b || h._lerp || ("number" == typeof b ? h._lerp = r.prototype._lerpNumber : b instanceof cc.Quat ? h._lerp = r.prototype._lerpQuat : b instanceof cc.Vec2 ? h._lerp = r.prototype._lerpVector2 : b instanceof cc.Vec3 ? h._lerp = r.prototype._lerpVector3 : b.lerp && (h._lerp = r.prototype._lerpObject)), + h + }, + createTargetCurves: function(t, e, i) { + var n = e.props + , r = e.comps; + if (n) + for (var s in n) { + var a = n[s] + , o = this.createPropCurve(t, s, a); + i.push(o) + } + if (r) + for (var l in r) { + var h = t.getComponent(l); + if (h) { + var c = r[l]; + for (var u in c) { + var _ = c[u] + , f = this.createPropCurve(h, u, _); + i.push(f) + } + } + } + }, + createCurves: function(t, e) { + var i = this.curveData + , n = i.paths + , r = []; + for (var s in this.createTargetCurves(e, i, r), + n) { + var a = cc.find(s, e); + if (a) { + var o = n[s]; + this.createTargetCurves(a, o, r) + } + } + return r + } + }); + cc.AnimationClip = e.exports = l + } + ), { + "../core/utils/binary-search": 260, + "./animation-curves": 11, + "./motion-path-helper": 17, + "./types": 19 + }], + 11: [(function(t, e) { + "use strict"; + var i = t("./bezier").bezierByTime + , n = t("../core/utils/binary-search").binarySearchEpsilon + , r = t("./types").WrapModeMask + , s = t("./types").WrappedInfo; + function a(t, e) { + if ("string" == typeof e) { + var n = cc.easing[e]; + n ? t = n(t) : cc.errorID(3906, e) + } else + Array.isArray(e) && (t = i(e, t)); + return t + } + var o = cc.Class({ + name: "cc.AnimCurve", + sample: function() {}, + onTimeChangedManually: void 0 + }); + var l, h = cc.Class({ + name: "cc.DynamicAnimCurve", + extends: o, + ctor: function() { + this._cachedIndex = 0 + }, + properties: { + target: null, + prop: "", + values: [], + ratios: [], + types: [] + }, + _findFrameIndex: n, + _lerp: void 0, + _lerpNumber: function(t, e, i) { + return t + (e - t) * i + }, + _lerpObject: function(t, e, i) { + return t.lerp(e, i) + }, + _lerpQuat: (l = cc.quat(), + function(t, e, i) { + return t.lerp(e, i, l) + } + ), + _lerpVector2: (function() { + var t = cc.v2(); + return function(e, i, n) { + return e.lerp(i, n, t) + } + } + )(), + _lerpVector3: (function() { + var t = cc.v3(); + return function(e, i, n) { + return e.lerp(i, n, t) + } + } + )(), + sample: function(t, e) { + var i = this.values + , n = this.ratios + , r = n.length; + if (0 !== r) { + var s, o = !0, l = this._cachedIndex; + if (l < 0 && (l = ~l) > 0 && l < n.length) { + var h = n[l - 1] + , c = n[l]; + e > h && e < c && (o = !1) + } + o && (this._cachedIndex = this._findFrameIndex(n, e)); + var u = this._cachedIndex; + if (u < 0) + if ((u = ~u) <= 0) + s = i[0]; + else if (u >= r) + s = i[r - 1]; + else { + var _ = i[u - 1]; + if (this._lerp) { + var f = n[u - 1] + , d = n[u] + , p = this.types[u - 1] + , m = (e - f) / (d - f); + p && (m = a(m, p)); + var y = i[u]; + s = this._lerp(_, y, m) + } else + s = _ + } + else + s = i[u]; + this.target[this.prop] = s + } + } + }); + h.Linear = null, + h.Bezier = function(t) { + return t + } + ; + var c = function() { + this.events = [] + }; + c.prototype.add = function(t, e) { + this.events.push({ + func: t || "", + params: e || [] + }) + } + ; + var u = cc.Class({ + name: "cc.EventAnimCurve", + extends: o, + properties: { + target: null, + ratios: [], + events: [], + _wrappedInfo: { + default: function() { + return new s + } + }, + _lastWrappedInfo: null, + _ignoreIndex: NaN + }, + _wrapIterations: function(t) { + return t - (0 | t) == 0 && (t -= 1), + 0 | t + }, + sample: function(t, e, i) { + var a = this.ratios.length + , o = i.getWrappedInfo(i.time, this._wrappedInfo) + , l = o.direction + , h = n(this.ratios, o.ratio); + if (h < 0 && (h = ~h - 1, + l < 0 && (h += 1)), + this._ignoreIndex !== h && (this._ignoreIndex = NaN), + o.frameIndex = h, + !this._lastWrappedInfo) + return this._fireEvent(h), + void (this._lastWrappedInfo = new s(o)); + var c = i.wrapMode + , u = this._wrapIterations(o.iterations) + , _ = this._lastWrappedInfo + , f = this._wrapIterations(_.iterations) + , d = _.frameIndex + , p = _.direction + , m = -1 !== f && u !== f; + if (d === h && m && 1 === a) + this._fireEvent(0); + else if (d !== h || m) { + l = p; + do { + if (d !== h) { + if (-1 === l && 0 === d && h > 0 ? ((c & r.PingPong) === r.PingPong ? l *= -1 : d = a, + f++) : 1 === l && d === a - 1 && h < a - 1 && ((c & r.PingPong) === r.PingPong ? l *= -1 : d = -1, + f++), + d === h) + break; + if (f > u) + break + } + d += l, + cc.director.getAnimationManager().pushDelayEvent(this, "_fireEvent", [d]) + } while (d !== h && d > -1 && d < a) + } + this._lastWrappedInfo.set(o) + }, + _fireEvent: function(t) { + if (!(t < 0 || t >= this.events.length || this._ignoreIndex === t)) { + var e = this.events[t].events; + if (this.target.isValid) + for (var i = this.target._components, n = 0; n < e.length; n++) + for (var r = e[n], s = r.func, a = 0; a < i.length; a++) { + var o = i[a] + , l = o[s]; + l && l.apply(o, r.params) + } + } + }, + onTimeChangedManually: function(t, e) { + this._lastWrappedInfo = null, + this._ignoreIndex = NaN; + var i = e.getWrappedInfo(t, this._wrappedInfo) + , r = i.direction + , s = n(this.ratios, i.ratio); + s < 0 && (s = ~s - 1, + r < 0 && (s += 1), + this._ignoreIndex = s) + } + }); + e.exports = { + AnimCurve: o, + DynamicAnimCurve: h, + EventAnimCurve: u, + EventInfo: c, + computeRatioByType: a, + quickFindIndex: function(t, e) { + var i = t.length - 1; + if (0 === i) + return 0; + var n = t[0]; + if (e < n) + return 0; + var r = t[i]; + if (e > r) + return ~t.length; + var s = (e = (e - n) / (r - n)) / (1 / i) + , a = 0 | s; + return s - a < 1e-6 ? a : a + 1 - s < 1e-6 ? a + 1 : ~(a + 1) + } + } + } + ), { + "../core/utils/binary-search": 260, + "./bezier": 14, + "./types": 19 + }], + 12: [(function(t, e) { + "use strict"; + var i = cc.js + , n = cc.Class({ + ctor: function() { + this._anims = new i.array.MutableForwardIterator([]), + this._delayEvents = [], + cc.director._scheduler && cc.director._scheduler.enableForTarget(this) + }, + update: function(t) { + var e = this._anims + , i = e.array; + for (e.i = 0; e.i < i.length; ++e.i) { + var n = i[e.i]; + n._isPlaying && !n._isPaused && n.update(t) + } + for (var r = this._delayEvents, s = 0; s < r.length; s++) { + var a = r[s]; + a.target[a.func].apply(a.target, a.args) + } + r.length = 0 + }, + destruct: function() {}, + addAnimation: function(t) { + -1 === this._anims.array.indexOf(t) && this._anims.push(t) + }, + removeAnimation: function(t) { + var e = this._anims.array.indexOf(t); + e >= 0 ? this._anims.fastRemoveAt(e) : cc.errorID(3907) + }, + pushDelayEvent: function(t, e, i) { + this._delayEvents.push({ + target: t, + func: e, + args: i + }) + } + }); + cc.AnimationManager = e.exports = n + } + ), {}], + 13: [(function(t, e) { + "use strict"; + var i = cc.js + , n = t("./playable") + , r = t("./types") + , s = r.WrappedInfo + , a = r.WrapMode + , o = r.WrapModeMask; + function l(t, e) { + n.call(this), + this._currentFramePlayed = !1, + this._delay = 0, + this._delayTime = 0, + this._wrappedInfo = new s, + this._lastWrappedInfo = null, + this._process = c, + this._clip = t, + this._name = e || t && t.name, + this.animator = null, + this.curves = [], + this.delay = 0, + this.repeatCount = 1, + this.duration = 1, + this.speed = 1, + this.wrapMode = a.Normal, + this.time = 0, + this._target = null, + this._lastframeEventOn = !1, + this.emit = function() { + for (var t = new Array(arguments.length), e = 0, i = t.length; e < i; e++) + t[e] = arguments[e]; + cc.director.getAnimationManager().pushDelayEvent(this, "_emit", t) + } + } + i.extend(l, n); + var h = l.prototype; + function c() { + var t, e = this.sample(); + this._lastframeEventOn && (t = this._lastWrappedInfo ? this._lastWrappedInfo : this._lastWrappedInfo = new s(e), + this.repeatCount > 1 && (0 | e.iterations) > (0 | t.iterations) && this.emit("lastframe", this), + t.set(e)), + e.stopped && (this.stop(), + this.emit("finished", this)) + } + function u() { + var t = this.time + , e = this.duration; + t > e ? 0 == (t %= e) && (t = e) : t < 0 && 0 != (t %= e) && (t += e); + for (var i = t / e, n = this.curves, r = 0, s = n.length; r < s; r++) + n[r].sample(t, i, this); + this._lastframeEventOn && (void 0 === this._lastIterations && (this._lastIterations = i), + (this.time > 0 && this._lastIterations > i || this.time < 0 && this._lastIterations < i) && this.emit("lastframe", this), + this._lastIterations = i) + } + h._emit = function(t, e) { + this._target && this._target.isValid && this._target.emit(t, t, e) + } + , + h.on = function(t, e, i) { + return this._target && this._target.isValid ? ("lastframe" === t && (this._lastframeEventOn = !0), + this._target.on(t, e, i)) : null + } + , + h.once = function(t, e, i) { + if (this._target && this._target.isValid) { + "lastframe" === t && (this._lastframeEventOn = !0); + var n = this; + return this._target.once(t, (function(t) { + e.call(i, t), + n._lastframeEventOn = !1 + } + )) + } + return null + } + , + h.off = function(t, e, i) { + this._target && this._target.isValid && ("lastframe" === t && (this._target.hasEventListener(t) || (this._lastframeEventOn = !1)), + this._target.off(t, e, i)) + } + , + h._setEventTarget = function(t) { + this._target = t + } + , + h.onPlay = function() { + this.setTime(0), + this._delayTime = this._delay, + cc.director.getAnimationManager().addAnimation(this), + this.animator && this.animator.addAnimation(this), + this.emit("play", this) + } + , + h.onStop = function() { + this.isPaused || cc.director.getAnimationManager().removeAnimation(this), + this.animator && this.animator.removeAnimation(this), + this.emit("stop", this) + } + , + h.onResume = function() { + cc.director.getAnimationManager().addAnimation(this), + this.emit("resume", this) + } + , + h.onPause = function() { + cc.director.getAnimationManager().removeAnimation(this), + this.emit("pause", this) + } + , + h.setTime = function(t) { + this._currentFramePlayed = !1, + this.time = t || 0; + for (var e = this.curves, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + r.onTimeChangedManually && r.onTimeChangedManually(t, this) + } + } + , + h.update = function(t) { + this._delayTime > 0 && (this._delayTime -= t, + this._delayTime > 0) || (this._currentFramePlayed ? this.time += t * this.speed : this._currentFramePlayed = !0, + this._process()) + } + , + h._needRevers = function(t) { + var e = this.wrapMode + , i = !1; + return (e & o.PingPong) === o.PingPong && (t - (0 | t) == 0 && t > 0 && (t -= 1), + 1 & t && (i = !i)), + (e & o.Reverse) === o.Reverse && (i = !i), + i + } + , + h.getWrappedInfo = function(t, e) { + e = e || new s; + var i = !1 + , n = this.duration + , r = this.repeatCount + , a = t > 0 ? t / n : -t / n; + if (a >= r) { + a = r, + i = !0; + var l = r - (0 | r); + 0 === l && (l = 1), + t = l * n * (t > 0 ? 1 : -1) + } + if (t > n) { + var h = t % n; + t = 0 === h ? n : h + } else + t < 0 && 0 != (t %= n) && (t += n); + var c = !1 + , u = this._wrapMode & o.ShouldWrap; + u && (c = this._needRevers(a)); + var _ = c ? -1 : 1; + return this.speed < 0 && (_ *= -1), + u && c && (t = n - t), + e.ratio = t / n, + e.time = t, + e.direction = _, + e.stopped = i, + e.iterations = a, + e + } + , + h.sample = function() { + for (var t = this.getWrappedInfo(this.time, this._wrappedInfo), e = this.curves, i = 0, n = e.length; i < n; i++) + e[i].sample(t.time, t.ratio, this); + return t + } + , + i.get(h, "clip", (function() { + return this._clip + } + )), + i.get(h, "name", (function() { + return this._name + } + )), + i.obsolete(h, "AnimationState.length", "duration"), + i.getset(h, "curveLoaded", (function() { + return this.curves.length > 0 + } + ), (function() { + this.curves.length = 0 + } + )), + i.getset(h, "wrapMode", (function() { + return this._wrapMode + } + ), (function(t) { + this._wrapMode = t, + this.time = 0, + t & o.Loop ? this.repeatCount = 1 / 0 : this.repeatCount = 1 + } + )), + i.getset(h, "repeatCount", (function() { + return this._repeatCount + } + ), (function(t) { + this._repeatCount = t; + var e = this._wrapMode & o.ShouldWrap + , i = (this.wrapMode & o.Reverse) === o.Reverse; + this._process = t !== 1 / 0 || e || i ? c : u + } + )), + i.getset(h, "delay", (function() { + return this._delay + } + ), (function(t) { + this._delayTime = this._delay = t + } + )), + cc.AnimationState = e.exports = l + } + ), { + "./playable": 18, + "./types": 19 + }], + 14: [(function(t, e) { + "use strict"; + var i = Math.cos + , n = Math.acos + , r = Math.max + , s = 2 * Math.PI + , a = Math.sqrt; + function o(t) { + return t < 0 ? -Math.pow(-t, 1 / 3) : Math.pow(t, 1 / 3) + } + function l(t, e) { + var l, h, c, u, _ = e - 0, f = e - t[0], d = 3 * _, p = 3 * f, m = 3 * (e - t[2]), y = 1 / (-_ + p - m + (e - 1)), v = (d - 6 * f + m) * y, g = v * (1 / 3), A = (-d + p) * y, x = 1 / 3 * (3 * A - v * v), b = x * (1 / 3), C = (2 * v * v * v - 9 * v * A + _ * y * 27) / 27, T = C / 2, S = T * T + b * b * b; + if (S < 0) { + var w = 1 / 3 * -x + , E = a(w * w * w) + , M = -C / (2 * E) + , D = n(M < -1 ? -1 : M > 1 ? 1 : M) + , B = 2 * o(E); + return h = B * i(D * (1 / 3)) - g, + c = B * i((D + s) * (1 / 3)) - g, + u = B * i((D + 2 * s) * (1 / 3)) - g, + 0 <= h && h <= 1 ? 0 <= c && c <= 1 ? 0 <= u && u <= 1 ? r(h, c, u) : r(h, c) : 0 <= u && u <= 1 ? r(h, u) : h : 0 <= c && c <= 1 ? 0 <= u && u <= 1 ? r(c, u) : c : u + } + if (0 === S) + return c = -(l = T < 0 ? o(-T) : -o(T)) - g, + 0 <= (h = 2 * l - g) && h <= 1 ? 0 <= c && c <= 1 ? r(h, c) : h : c; + var I = a(S); + return (l = o(-T + I)) - o(T + I) - g + } + e.exports = { + bezier: function(t, e, i, n, r) { + var s = 1 - r; + return s * (s * (t + (3 * e - t) * r) + 3 * i * r * r) + n * r * r * r + }, + bezierByTime: function(t, e) { + var i = l(t, e) + , n = t[1]; + return ((1 - i) * (n + (t[3] - n) * i) * 3 + i * i) * i + } + } + } + ), {}], + 15: [(function(t, e) { + "use strict"; + var i = { + constant: function() { + return 0 + }, + linear: function(t) { + return t + }, + quadIn: function(t) { + return t * t + }, + quadOut: function(t) { + return t * (2 - t) + }, + quadInOut: function(t) { + return (t *= 2) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1) + }, + cubicIn: function(t) { + return t * t * t + }, + cubicOut: function(t) { + return --t * t * t + 1 + }, + cubicInOut: function(t) { + return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2) + }, + quartIn: function(t) { + return t * t * t * t + }, + quartOut: function(t) { + return 1 - --t * t * t * t + }, + quartInOut: function(t) { + return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2) + }, + quintIn: function(t) { + return t * t * t * t * t + }, + quintOut: function(t) { + return --t * t * t * t * t + 1 + }, + quintInOut: function(t) { + return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2) + }, + sineIn: function(t) { + return 1 - Math.cos(t * Math.PI / 2) + }, + sineOut: function(t) { + return Math.sin(t * Math.PI / 2) + }, + sineInOut: function(t) { + return .5 * (1 - Math.cos(Math.PI * t)) + }, + expoIn: function(t) { + return 0 === t ? 0 : Math.pow(1024, t - 1) + }, + expoOut: function(t) { + return 1 === t ? 1 : 1 - Math.pow(2, -10 * t) + }, + expoInOut: function(t) { + return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? .5 * Math.pow(1024, t - 1) : .5 * (2 - Math.pow(2, -10 * (t - 1))) + }, + circIn: function(t) { + return 1 - Math.sqrt(1 - t * t) + }, + circOut: function(t) { + return Math.sqrt(1 - --t * t) + }, + circInOut: function(t) { + return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1) + }, + elasticIn: function(t) { + var e, i = .1; + return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, + e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI), + -i * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / .4)) + }, + elasticOut: function(t) { + var e, i = .1; + return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, + e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI), + i * Math.pow(2, -10 * t) * Math.sin(2 * (t - e) * Math.PI / .4) + 1) + }, + elasticInOut: function(t) { + var e, i = .1; + return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, + e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI), + (t *= 2) < 1 ? i * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / .4) * -.5 : i * Math.pow(2, -10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / .4) * .5 + 1) + }, + backIn: function(t) { + var e = 1.70158; + return t * t * ((e + 1) * t - e) + }, + backOut: function(t) { + var e = 1.70158; + return --t * t * ((e + 1) * t + e) + 1 + }, + backInOut: function(t) { + var e = 2.5949095; + return (t *= 2) < 1 ? t * t * ((e + 1) * t - e) * .5 : .5 * ((t -= 2) * t * ((e + 1) * t + e) + 2) + }, + bounceIn: function(t) { + return 1 - i.bounceOut(1 - t) + }, + bounceOut: function(t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 + }, + bounceInOut: function(t) { + return t < .5 ? .5 * i.bounceIn(2 * t) : .5 * i.bounceOut(2 * t - 1) + .5 + }, + smooth: function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : t * t * (3 - 2 * t) + }, + fade: function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : t * t * t * (t * (6 * t - 15) + 10) + } + }; + function n(t, e) { + return function(i) { + return i < .5 ? e(2 * i) / 2 : t(2 * i - 1) / 2 + .5 + } + } + i.quadOutIn = n(i.quadIn, i.quadOut), + i.cubicOutIn = n(i.cubicIn, i.cubicOut), + i.quartOutIn = n(i.quartIn, i.quartOut), + i.quintOutIn = n(i.quintIn, i.quintOut), + i.sineOutIn = n(i.sineIn, i.sineOut), + i.expoOutIn = n(i.expoIn, i.expoOut), + i.circOutIn = n(i.circIn, i.circOut), + i.backOutIn = n(i.backIn, i.backOut), + i.bounceIn = function(t) { + return 1 - i.bounceOut(1 - t) + } + , + i.bounceInOut = function(t) { + return t < .5 ? .5 * i.bounceIn(2 * t) : .5 * i.bounceOut(2 * t - 1) + .5 + } + , + i.bounceOutIn = n(i.bounceIn, i.bounceOut), + cc.easing = e.exports = i + } + ), {}], + 16: [(function(t) { + "use strict"; + t("./bezier"), + t("./easing"), + t("./types"), + t("./motion-path-helper"), + t("./animation-curves"), + t("./animation-clip"), + t("./animation-manager"), + t("./animation-state"), + t("./animation-animator") + } + ), { + "./animation-animator": 9, + "./animation-clip": 10, + "./animation-curves": 11, + "./animation-manager": 12, + "./animation-state": 13, + "./bezier": 14, + "./easing": 15, + "./motion-path-helper": 17, + "./types": 19 + }], + 17: [(function(t, e) { + "use strict"; + var i = t("./animation-curves").DynamicAnimCurve + , n = t("./animation-curves").computeRatioByType + , r = t("./bezier").bezier + , s = t("../core/utils/binary-search").binarySearchEpsilon + , a = cc.v2; + function o(t) { + this.points = t || [], + this.beziers = [], + this.ratios = [], + this.progresses = [], + this.length = 0, + this.computeBeziers() + } + function l() { + this.start = a(), + this.end = a(), + this.startCtrlPoint = a(), + this.endCtrlPoint = a() + } + function h(t) { + if (!Array.isArray(t)) + return !1; + for (var e = 0, i = t.length; e < i; e++) { + var n = t[e]; + if (!Array.isArray(n) || 6 !== n.length) + return !1 + } + return !0 + } + o.prototype.computeBeziers = function() { + var t; + this.beziers.length = 0, + this.ratios.length = 0, + this.progresses.length = 0, + this.length = 0; + for (var e = 1; e < this.points.length; e++) { + var i = this.points[e - 1] + , n = this.points[e]; + (t = new l).start = i.pos, + t.startCtrlPoint = i.out, + t.end = n.pos, + t.endCtrlPoint = n.in, + this.beziers.push(t), + this.length += t.getLength() + } + var r = 0; + for (e = 0; e < this.beziers.length; e++) + t = this.beziers[e], + this.ratios[e] = t.getLength() / this.length, + this.progresses[e] = r += this.ratios[e]; + return this.beziers + } + , + l.prototype.getPointAt = function(t) { + var e = this.getUtoTmapping(t); + return this.getPoint(e) + } + , + l.prototype.getPoint = function(t) { + var e = r(this.start.x, this.startCtrlPoint.x, this.endCtrlPoint.x, this.end.x, t) + , i = r(this.start.y, this.startCtrlPoint.y, this.endCtrlPoint.y, this.end.y, t); + return new a(e,i) + } + , + l.prototype.getLength = function() { + var t = this.getLengths(); + return t[t.length - 1] + } + , + l.prototype.getLengths = function(t) { + if (t || (t = this.__arcLengthDivisions ? this.__arcLengthDivisions : 200), + this.cacheArcLengths && this.cacheArcLengths.length === t + 1) + return this.cacheArcLengths; + var e, i, n = [], r = this.getPoint(0), s = a(), o = 0; + for (n.push(0), + i = 1; i <= t; i++) + e = this.getPoint(i / t), + s.x = r.x - e.x, + s.y = r.y - e.y, + o += s.mag(), + n.push(o), + r = e; + return this.cacheArcLengths = n, + n + } + , + l.prototype.getUtoTmapping = function(t, e) { + var i, n = this.getLengths(), r = 0, s = n.length; + i = e || t * n[s - 1]; + for (var a, o = 0, l = s - 1; o <= l; ) + if ((a = n[r = Math.floor(o + (l - o) / 2)] - i) < 0) + o = r + 1; + else { + if (!(a > 0)) { + l = r; + break + } + l = r - 1 + } + if (n[r = l] === i) + return r / (s - 1); + var h = n[r]; + return (r + (i - h) / (n[r + 1] - h)) / (s - 1) + } + , + e.exports = { + sampleMotionPaths: function(t, e, r, l, c) { + function u(t) { + return t instanceof cc.Vec2 ? { + in: t, + pos: t, + out: t + } : Array.isArray(t) && 6 === t.length ? { + in: a(t[2], t[3]), + pos: a(t[0], t[1]), + out: a(t[4], t[5]) + } : { + in: cc.Vec2.ZERO, + pos: cc.Vec2.ZERO, + out: cc.Vec2.ZERO + } + } + var _ = e.values = e.values.map((function(t) { + return Array.isArray(t) && (t = 2 === t.length ? cc.v2(t[0], t[1]) : cc.v3(t[0], t[1], t[2])), + t + } + )); + if (0 !== t.length && 0 !== _.length) { + for (var f = !1, d = 0; d < t.length; d++) { + var p = t[d]; + if (p && !h(p) && (cc.errorID(3904, c ? c.name : "", "position", d), + p = null), + p && p.length > 0) { + f = !0; + break + } + } + if (f && 1 !== _.length) { + for (var m = e.types, y = e.ratios, v = e.values = [], g = e.types = [], A = e.ratios = [], x = 0, b = i.Linear, C = 0, T = t.length; C < T - 1; C++) { + var S, w = t[C], E = y[C], M = y[C + 1] - E, D = _[C], B = _[C + 1], I = m[C], P = [], R = x / M, O = 1 / (M * r * l); + if (w && w.length > 0) { + var L = []; + L.push(u(D)); + for (var F = 0, V = w.length; F < V; F++) { + var N = u(w[F]); + L.push(N) + } + L.push(u(B)); + var k = new o(L); + k.computeBeziers(); + for (var G = k.progresses; 1 - R > 1e-6; ) { + var U, z, H, W; + if ((S = n(S = R, I)) < 0) + W = (0 - S) * (z = k.beziers[0]).getLength(), + H = z.start.sub(z.endCtrlPoint).normalize(), + U = z.start.add(H.mul(W)); + else if (S > 1) + W = (S - 1) * (z = k.beziers[k.beziers.length - 1]).getLength(), + H = z.end.sub(z.startCtrlPoint).normalize(), + U = z.end.add(H.mul(W)); + else { + var j = s(G, S); + j < 0 && (j = ~j), + S -= j > 0 ? G[j - 1] : 0, + S /= k.ratios[j], + U = k.beziers[j].getPointAt(S) + } + P.push(U), + R += O + } + } else + for (; 1 - R > 1e-6; ) + S = n(S = R, I), + P.push(D.lerp(B, S)), + R += O; + for (b = "constant" === I ? I : i.Linear, + F = 0, + V = P.length; F < V; F++) { + var X = E + x + O * F * M; + Y(P[F], b, X) + } + x = Math.abs(R - 1) > 1e-6 ? (R - 1) * M : 0 + } + y[y.length - 1] !== A[A.length - 1] && Y(_[_.length - 1], b, y[y.length - 1]) + } + } + function Y(t, e, i) { + v.push(t), + g.push(e), + A.push(i) + } + }, + Curve: o, + Bezier: l + } + } + ), { + "../core/utils/binary-search": 260, + "./animation-curves": 11, + "./bezier": 14 + }], + 18: [(function(t, e) { + "use strict"; + var i = cc.js + , n = t("../core/CCDebug"); + function r() { + this._isPlaying = !1, + this._isPaused = !1, + this._stepOnce = !1 + } + var s = r.prototype; + i.get(s, "isPlaying", (function() { + return this._isPlaying + } + ), !0), + i.get(s, "isPaused", (function() { + return this._isPaused + } + ), !0); + var a = function() {}; + s.onPlay = a, + s.onPause = a, + s.onResume = a, + s.onStop = a, + s.onError = a, + s.play = function() { + this._isPlaying ? this._isPaused ? (this._isPaused = !1, + this.onResume()) : this.onError(n.getError(3912)) : (this._isPlaying = !0, + this.onPlay()) + } + , + s.stop = function() { + this._isPlaying && (this._isPlaying = !1, + this.onStop(), + this._isPaused = !1) + } + , + s.pause = function() { + this._isPlaying && !this._isPaused && (this._isPaused = !0, + this.onPause()) + } + , + s.resume = function() { + this._isPlaying && this._isPaused && (this._isPaused = !1, + this.onResume()) + } + , + s.step = function() { + this.pause(), + this._stepOnce = !0, + this._isPlaying || this.play() + } + , + e.exports = r + } + ), { + "../core/CCDebug": 26 + }], + 19: [(function(t, e) { + "use strict"; + var i = { + Loop: 2, + ShouldWrap: 4, + PingPong: 22, + Reverse: 36 + } + , n = cc.Enum({ + Default: 0, + Normal: 1, + Reverse: i.Reverse, + Loop: i.Loop, + LoopReverse: i.Loop | i.Reverse, + PingPong: i.PingPong, + PingPongReverse: i.PingPong | i.Reverse + }); + function r(t) { + t ? this.set(t) : (this.ratio = 0, + this.time = 0, + this.direction = 1, + this.stopped = !0, + this.iterations = 0, + this.frameIndex = void 0) + } + cc.WrapMode = n, + r.prototype.set = function(t) { + this.ratio = t.ratio, + this.time = t.time, + this.direction = t.direction, + this.stopped = t.stopped, + this.iterations = t.iterations, + this.frameIndex = t.frameIndex + } + , + e.exports = { + WrapModeMask: i, + WrapMode: n, + WrappedInfo: r + } + } + ), {}], + 20: [(function(t, e) { + "use strict"; + var i, n, r = t("../core/event/event-target"), s = t("../core/platform/CCSys"), a = t("../core/assets/CCAudioClip").LoadMode, o = !1, l = [], h = function t(e) { + r.call(this), + this._shouldRecycleOnEnded = !1, + this._src = e, + this._element = null, + this.id = 0, + this._state = t.State.INITIALZING; + var i = this; + this._onended = function() { + i._state = t.State.STOPPED, + i.emit("ended") + } + , + this._onendedSecond = function() { + i._unbindEnded(i._onendedSecond), + i._bindEnded() + } + }; + cc.js.extend(h, r), + h.State = { + ERROR: -1, + INITIALZING: 0, + PLAYING: 1, + PAUSED: 2, + STOPPED: 3 + }, + (i = h.prototype)._bindEnded = function(t) { + if (!(t = t || this._onended)._binded) { + t._binded = !0; + var e = this._element; + this._src && e instanceof HTMLAudioElement ? e.addEventListener("ended", t) : e.onended = t + } + } + , + i._unbindEnded = function(t) { + if ((t = t || this._onended)._binded) { + t._binded = !1; + var e = this._element; + e instanceof HTMLAudioElement ? e.removeEventListener("ended", t) : e && (e.onended = null) + } + } + , + i._onLoaded = function() { + this._createElement(), + this._state = h.State.INITIALZING, + this.setVolume(1), + this.setLoop(!1) + } + , + i._createElement = function() { + var t = this._src._nativeAsset; + t instanceof HTMLAudioElement ? (this._element || (this._element = document.createElement("audio")), + this._element.src = t.src) : this._element = new c(t,this) + } + , + i.play = function() { + var t = this; + this._src && this._src._ensureLoaded((function() { + t._state = h.State.PLAYING, + t._bindEnded(); + var e = t._element.play(); + window.Promise && e instanceof Promise && e.catch((function() {} + )), + t._touchToPlay() + } + )) + } + , + i._touchToPlay = function() { + if (this._src && this._src.loadMode === a.DOM_AUDIO && this._element.paused && l.push({ + instance: this, + offset: 0, + audio: this._element + }), + !o) { + o = !0; + var t = "ontouchend"in window ? "touchend" : "mousedown"; + cc.game.canvas.addEventListener(t, (function() { + for (var t; t = l.pop(); ) + t.audio.play(t.offset) + } + )) + } + } + , + i.destroy = function() { + this._element = null + } + , + i.pause = function() { + if (this.getState() === h.State.PLAYING) { + var t = this; + this._src && this._src._ensureLoaded((function() { + t._unbindEnded(), + t._element.pause(), + t._state = h.State.PAUSED + } + )) + } + } + , + i.resume = function() { + if (this.getState() === h.State.PAUSED) { + var t = this; + this._src && this._src._ensureLoaded((function() { + t._bindEnded(), + t._element.play(), + t._state = h.State.PLAYING + } + )) + } + } + , + i.stop = function() { + var t = this; + this._src && this._src._ensureLoaded((function() { + t._element.pause(), + t._element.currentTime = 0; + for (var e = 0; e < l.length; e++) + if (l[e].instance === t) { + l.splice(e, 1); + break + } + t._unbindEnded(), + t.emit("stop"), + t._state = h.State.STOPPED + } + )) + } + , + i.setLoop = function(t) { + var e = this; + this._src && this._src._ensureLoaded((function() { + e._element.loop = t + } + )) + } + , + i.getLoop = function() { + return !!this._element && this._element.loop + } + , + i.setVolume = function(t) { + var e = this; + this._src && this._src._ensureLoaded((function() { + e._element.volume = t + } + )) + } + , + i.getVolume = function() { + return this._element ? this._element.volume : 1 + } + , + i.setCurrentTime = function(t) { + var e = this; + this._src && this._src._ensureLoaded((function() { + e._unbindEnded(), + e._bindEnded(e._onendedSecond), + e._element.currentTime = t + } + )) + } + , + i.getCurrentTime = function() { + return this._element ? this._element.currentTime : 0 + } + , + i.getDuration = function() { + return this._src ? this._src.duration : 0 + } + , + i.getState = function(t) { + return void 0 === t && (t = !0), + t && this._forceUpdatingState(), + this._state + } + , + i._forceUpdatingState = function() { + var t = this._element; + t && (h.State.PLAYING === this._state && t.paused ? this._state = h.State.STOPPED : h.State.STOPPED !== this._state || t.paused || (this._state = h.State.PLAYING)) + } + , + Object.defineProperty(i, "src", { + get: function() { + return this._src + }, + set: function(t) { + if (this._unbindEnded(), + t) { + if (t !== this._src) + if (this._src = t, + t.loaded) + this._onLoaded(); + else { + var e = this; + t.once("load", (function() { + t === e._src && e._onLoaded() + } + )) + } + } else + this._src = null, + this._element instanceof c ? this._element = null : this._element && (this._element.src = ""), + this._state = h.State.INITIALZING; + return t + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i, "paused", { + get: function() { + return !this._element || this._element.paused + }, + enumerable: !0, + configurable: !0 + }), + n = cc.sys.browserType === cc.sys.BROWSER_TYPE_EDGE || cc.sys.browserType === cc.sys.BROWSER_TYPE_BAIDU || cc.sys.browserType === cc.sys.BROWSER_TYPE_UC ? .01 : 0; + var c = function(t, e) { + this._audio = e, + this._context = s.__audioSupport.context, + this._buffer = t, + this._gainObj = this._context.createGain(), + this.volume = 1, + this._gainObj.connect(this._context.destination), + this._loop = !1, + this._startTime = -1, + this._currentSource = null, + this.playedLength = 0, + this._currentTimer = null, + this._endCallback = function() { + this.onended && this.onended(this) + } + .bind(this) + }; + (function(t) { + t.play = function(t) { + this._currentSource && !this.paused && (this._currentSource.onended = null, + this._currentSource.stop(0), + this.playedLength = 0); + var e = this._context.createBufferSource(); + e.buffer = this._buffer, + e.connect(this._gainObj), + e.loop = this._loop, + this._startTime = this._context.currentTime, + (t = t || this.playedLength) && (this._startTime -= t); + var i, n = this._buffer.duration, r = t; + if (this._loop ? e.start ? e.start(0, r) : e.notoGrainOn ? e.noteGrainOn(0, r) : e.noteOn(0, r) : (i = n - t, + e.start ? e.start(0, r, i) : e.noteGrainOn ? e.noteGrainOn(0, r, i) : e.noteOn(0, r, i)), + this._currentSource = e, + e.onended = this._endCallback, + (!e.context.state || "suspended" === e.context.state) && 0 === this._context.currentTime) { + var s = this; + clearTimeout(this._currentTimer), + this._currentTimer = setTimeout((function() { + 0 === s._context.currentTime && l.push({ + instance: s._audio, + offset: t, + audio: s + }) + } + ), 10) + } + var a = cc.sys; + a.os === a.OS_IOS && a.isBrowser && a.isMobile && ("suspended" === e.context.state && 0 !== this._context.currentTime || "interrupted" === e.context.state) && e.context.resume() + } + , + t.pause = function() { + if (clearTimeout(this._currentTimer), + !this.paused) { + this.playedLength = this._context.currentTime - this._startTime, + this.playedLength %= this._buffer.duration; + var t = this._currentSource; + t && (t.onended && (t.onended._binded = !1, + t.onended = null), + t.stop(0)), + this._currentSource = null, + this._startTime = -1 + } + } + , + Object.defineProperty(t, "paused", { + get: function() { + return (!this._currentSource || !this._currentSource.loop) && (-1 === this._startTime || this._context.currentTime - this._startTime > this._buffer.duration) + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(t, "loop", { + get: function() { + return this._loop + }, + set: function(t) { + return this._currentSource && (this._currentSource.loop = t), + this._loop = t + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(t, "volume", { + get: function() { + return this._volume + }, + set: function(t) { + if (this._volume = t, + this._gainObj.gain.setTargetAtTime) + try { + this._gainObj.gain.setTargetAtTime(t, this._context.currentTime, n) + } catch (e) { + this._gainObj.gain.setTargetAtTime(t, this._context.currentTime, .01) + } + else + this._gainObj.gain.value = t; + s.os === s.OS_IOS && !this.paused && this._currentSource && (this._currentSource.onended = null, + this.pause(), + this.play()) + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(t, "currentTime", { + get: function() { + return this.paused ? this.playedLength : (this.playedLength = this._context.currentTime - this._startTime, + this.playedLength %= this._buffer.duration, + this.playedLength) + }, + set: function(t) { + return this.paused ? this.playedLength = t : (this.pause(), + this.playedLength = t, + this.play()), + t + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(t, "duration", { + get: function() { + return this._buffer.duration + }, + enumerable: !0, + configurable: !0 + }) + } + )(c.prototype), + e.exports = cc._Audio = h + } + ), { + "../core/assets/CCAudioClip": 63, + "../core/event/event-target": 140, + "../core/platform/CCSys": 202 + }], + 21: [(function(t, e) { + "use strict"; + var i = t("./CCAudio") + , n = t("../core/assets/CCAudioClip") + , r = cc.js + , s = 0 + , a = r.createMap(!0) + , o = {} + , l = [] + , h = function(t) { + t._shouldRecycleOnEnded && (t._finishCallback = null, + t.off("ended"), + t.off("stop"), + t.src = null, + l.includes(t) || (l.length < 32 ? l.push(t) : t.destroy()), + t._shouldRecycleOnEnded = !1) + } + , c = function(t) { + var e = s++ + , n = o[t]; + if (n || (n = o[t] = []), + f._maxAudioInstance <= n.length) { + var r = n.shift(); + u(r).stop() + } + var c = l.pop() || new i + , _ = function() { + if (u(this.id)) { + delete a[this.id]; + var t = n.indexOf(this.id); + cc.js.array.fastRemoveAt(n, t) + } + h(this) + }; + return c.on("ended", (function() { + this._finishCallback && this._finishCallback(), + this.getLoop() || _.call(this) + } + ), c), + c.on("stop", _, c), + c.id = e, + a[e] = c, + n.push(e), + c + } + , u = function(t) { + return a[t] + } + , _ = function(t) { + return void 0 === t ? t = 1 : "string" == typeof t && (t = Number.parseFloat(t)), + t + } + , f = { + AudioState: i.State, + _maxAudioInstance: 24, + _id2audio: a, + play: function(t, e, i) { + if (!(t instanceof n)) + return cc.error("Wrong type of AudioClip."); + var r = t.nativeUrl + , s = c(r); + return s.src = t, + t._ensureLoaded(), + s._shouldRecycleOnEnded = !0, + s.setLoop(e || !1), + i = _(i), + s.setVolume(i), + s.play(), + s.id + }, + setLoop: function(t, e) { + var i = u(t); + i && i.setLoop && i.setLoop(e) + }, + isLoop: function(t) { + var e = u(t); + return !(!e || !e.getLoop) && e.getLoop() + }, + setVolume: function(t, e) { + var i = u(t); + i && i.setVolume(e) + }, + getVolume: function(t) { + var e = u(t); + return e ? e.getVolume() : 1 + }, + setCurrentTime: function(t, e) { + var i = u(t); + return !!i && (i.setCurrentTime(e), + !0) + }, + getCurrentTime: function(t) { + var e = u(t); + return e ? e.getCurrentTime() : 0 + }, + getDuration: function(t) { + var e = u(t); + return e ? e.getDuration() : 0 + }, + getState: function(t) { + var e = u(t); + return e ? e.getState() : this.AudioState.ERROR + }, + setFinishCallback: function(t, e) { + var i = u(t); + i && (i._finishCallback = e) + }, + pause: function(t) { + var e = u(t); + return !!e && (e.pause(), + !0) + }, + _pauseIDCache: [], + pauseAll: function() { + for (var t in a) { + var e = a[t]; + e.getState() === i.State.PLAYING && (this._pauseIDCache.push(t), + e.pause()) + } + }, + resume: function(t) { + var e = u(t); + e && e.resume() + }, + resumeAll: function() { + for (var t = 0; t < this._pauseIDCache.length; ++t) { + var e = this._pauseIDCache[t] + , i = u(e); + i && i.resume() + } + this._pauseIDCache.length = 0 + }, + stop: function(t) { + var e = u(t); + return !!e && (e.stop(), + !0) + }, + stopAll: function() { + for (var t in a) { + var e = a[t]; + e && e.stop() + } + }, + setMaxAudioInstance: function() {}, + getMaxAudioInstance: function() { + return this._maxAudioInstance + }, + uncache: function(t) { + var e = t; + if ("string" == typeof t) + cc.warnID(8401, "cc.audioEngine", "cc.AudioClip", "AudioClip", "cc.AudioClip", "audio"), + e = t; + else { + if (!t) + return; + e = t.nativeUrl + } + var i = o[e]; + if (i) + for (; i.length > 0; ) { + var n = i.pop() + , r = a[n]; + r && (r.stop(), + delete a[n]) + } + }, + uncacheAll: function() { + var t; + for (var e in this.stopAll(), + a) + (t = a[e]) && t.destroy(); + for (; t = l.pop(); ) + t.destroy(); + a = r.createMap(!0), + o = {} + }, + _breakCache: null, + _break: function() { + for (var t in this._breakCache = [], + a) { + var e = a[t]; + e.getState() === i.State.PLAYING && (this._breakCache.push(t), + e.pause()) + } + }, + _restore: function() { + if (this._breakCache) { + for (; this._breakCache.length > 0; ) { + var t = this._breakCache.pop() + , e = u(t); + e && e.resume && e.resume() + } + this._breakCache = null + } + }, + _music: { + id: -1, + loop: !1, + volume: 1 + }, + _effect: { + volume: 1, + pauseCache: [] + }, + playMusic: function(t, e) { + var i = this._music; + return this.stop(i.id), + i.id = this.play(t, e, i.volume), + i.loop = e, + i.id + }, + stopMusic: function() { + this.stop(this._music.id) + }, + pauseMusic: function() { + return this.pause(this._music.id), + this._music.id + }, + resumeMusic: function() { + return this.resume(this._music.id), + this._music.id + }, + getMusicVolume: function() { + return this._music.volume + }, + setMusicVolume: function(t) { + t = _(t); + var e = this._music; + return e.volume = t, + this.setVolume(e.id, e.volume), + e.volume + }, + isMusicPlaying: function() { + return this.getState(this._music.id) === this.AudioState.PLAYING + }, + playEffect: function(t, e) { + return this.play(t, e || !1, this._effect.volume) + }, + setEffectsVolume: function(t) { + t = _(t); + var e = this._music.id; + for (var i in this._effect.volume = t, + a) { + var n = a[i]; + n && n.id !== e && f.setVolume(i, t) + } + }, + getEffectsVolume: function() { + return this._effect.volume + }, + pauseEffect: function(t) { + return this.pause(t) + }, + pauseAllEffects: function() { + var t = this._music.id + , e = this._effect; + for (var i in e.pauseCache.length = 0, + a) { + var n = a[i]; + n && n.id !== t && n.getState() === this.AudioState.PLAYING && (e.pauseCache.push(i), + n.pause()) + } + }, + resumeEffect: function(t) { + this.resume(t) + }, + resumeAllEffects: function() { + for (var t = this._effect.pauseCache, e = 0; e < t.length; ++e) { + var i = t[e] + , n = a[i]; + n && n.resume() + } + }, + stopEffect: function(t) { + return this.stop(t) + }, + stopAllEffects: function() { + var t = this._music.id; + for (var e in a) { + var i = a[e]; + i && i.id !== t && i.getState() === f.AudioState.PLAYING && i.stop() + } + } + }; + e.exports = cc.audioEngine = f + } + ), { + "../core/assets/CCAudioClip": 63, + "./CCAudio": 20 + }], + 22: [(function(t, e) { + "use strict"; + var i = { + name: "Jacob__Codec" + }; + i.Base64 = t("./base64"), + i.GZip = t("./gzip"), + i.unzip = function() { + return i.GZip.gunzip.apply(i.GZip, arguments) + } + , + i.unzipBase64 = function() { + var t = i.Base64.decode.apply(i.Base64, arguments); + try { + return i.GZip.gunzip.call(i.GZip, t) + } catch (e) { + return t.slice(7) + } + } + , + i.unzipBase64AsArray = function(t, e) { + e = e || 1; + var i, n, r, s = this.unzipBase64(t), a = []; + for (i = 0, + r = s.length / e; i < r; i++) + for (a[i] = 0, + n = e - 1; n >= 0; --n) + a[i] += s.charCodeAt(i * e + n) << 8 * n; + return a + } + , + i.unzipAsArray = function(t, e) { + e = e || 1; + var i, n, r, s = this.unzip(t), a = []; + for (i = 0, + r = s.length / e; i < r; i++) + for (a[i] = 0, + n = e - 1; n >= 0; --n) + a[i] += s.charCodeAt(i * e + n) << 8 * n; + return a + } + , + cc.codec = e.exports = i + } + ), { + "./base64": 23, + "./gzip": 24 + }], + 23: [(function(t, e) { + "use strict"; + var i = t("../core/utils/misc").BASE64_VALUES + , n = { + name: "Jacob__Codec__Base64", + decode: function(t) { + var e, n, r, s, a, o, l = [], h = 0; + for (t = t.replace(/[^A-Za-z0-9\+\/\=]/g, ""); h < t.length; ) + e = i[t.charCodeAt(h++)] << 2 | (s = i[t.charCodeAt(h++)]) >> 4, + n = (15 & s) << 4 | (a = i[t.charCodeAt(h++)]) >> 2, + r = (3 & a) << 6 | (o = i[t.charCodeAt(h++)]), + l.push(String.fromCharCode(e)), + 64 !== a && l.push(String.fromCharCode(n)), + 64 !== o && l.push(String.fromCharCode(r)); + return l.join("") + }, + decodeAsArray: function(t, e) { + var i, n, r, s = this.decode(t), a = []; + for (i = 0, + r = s.length / e; i < r; i++) + for (a[i] = 0, + n = e - 1; n >= 0; --n) + a[i] += s.charCodeAt(i * e + n) << 8 * n; + return a + } + }; + e.exports = n + } + ), { + "../core/utils/misc": 267 + }], + 24: [(function(t, e) { + "use strict"; + var i = function(t) { + this.data = t, + this.debug = !1, + this.gpflags = void 0, + this.files = 0, + this.unzipped = [], + this.buf32k = new Array(32768), + this.bIdx = 0, + this.modeZIP = !1, + this.bytepos = 0, + this.bb = 1, + this.bits = 0, + this.nameBuf = [], + this.fileout = void 0, + this.literalTree = new Array(i.LITERALS), + this.distanceTree = new Array(32), + this.treepos = 0, + this.Places = null, + this.len = 0, + this.fpos = new Array(17), + this.fpos[0] = 0, + this.flens = void 0, + this.fmax = void 0 + }; + i.gunzip = function(t) { + return t.constructor === Array || (t.constructor, + String), + new i(t).gunzip()[0][0] + } + , + i.HufNode = function() { + this.b0 = 0, + this.b1 = 0, + this.jump = null, + this.jumppos = -1 + } + , + i.LITERALS = 288, + i.NAMEMAX = 256, + i.bitReverse = [0, 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, 48, 176, 112, 240, 8, 136, 72, 200, 40, 168, 104, 232, 24, 152, 88, 216, 56, 184, 120, 248, 4, 132, 68, 196, 36, 164, 100, 228, 20, 148, 84, 212, 52, 180, 116, 244, 12, 140, 76, 204, 44, 172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, 66, 194, 34, 162, 98, 226, 18, 146, 82, 210, 50, 178, 114, 242, 10, 138, 74, 202, 42, 170, 106, 234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, 70, 198, 38, 166, 102, 230, 22, 150, 86, 214, 54, 182, 118, 246, 14, 142, 78, 206, 46, 174, 110, 238, 30, 158, 94, 222, 62, 190, 126, 254, 1, 129, 65, 193, 33, 161, 97, 225, 17, 145, 81, 209, 49, 177, 113, 241, 9, 137, 73, 201, 41, 169, 105, 233, 25, 153, 89, 217, 57, 185, 121, 249, 5, 133, 69, 197, 37, 165, 101, 229, 21, 149, 85, 213, 53, 181, 117, 245, 13, 141, 77, 205, 45, 173, 109, 237, 29, 157, 93, 221, 61, 189, 125, 253, 3, 131, 67, 195, 35, 163, 99, 227, 19, 147, 83, 211, 51, 179, 115, 243, 11, 139, 75, 203, 43, 171, 107, 235, 27, 155, 91, 219, 59, 187, 123, 251, 7, 135, 71, 199, 39, 167, 103, 231, 23, 151, 87, 215, 55, 183, 119, 247, 15, 143, 79, 207, 47, 175, 111, 239, 31, 159, 95, 223, 63, 191, 127, 255], + i.cplens = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0], + i.cplext = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99], + i.cpdist = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577], + i.cpdext = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13], + i.border = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], + i.prototype.gunzip = function() { + return this.outputArr = [], + this.nextFile(), + this.unzipped + } + , + i.prototype.readByte = function() { + return this.bits += 8, + this.bytepos < this.data.length ? this.data.charCodeAt(this.bytepos++) : -1 + } + , + i.prototype.byteAlign = function() { + this.bb = 1 + } + , + i.prototype.readBit = function() { + var t; + return this.bits++, + t = 1 & this.bb, + this.bb >>= 1, + 0 === this.bb && (this.bb = this.readByte(), + t = 1 & this.bb, + this.bb = this.bb >> 1 | 128), + t + } + , + i.prototype.readBits = function(t) { + for (var e = 0, n = t; n--; ) + e = e << 1 | this.readBit(); + return t && (e = i.bitReverse[e] >> 8 - t), + e + } + , + i.prototype.flushBuffer = function() { + this.bIdx = 0 + } + , + i.prototype.addBuffer = function(t) { + this.buf32k[this.bIdx++] = t, + this.outputArr.push(String.fromCharCode(t)), + 32768 === this.bIdx && (this.bIdx = 0) + } + , + i.prototype.IsPat = function() { + for (; ; ) { + if (this.fpos[this.len] >= this.fmax) + return -1; + if (this.flens[this.fpos[this.len]] === this.len) + return this.fpos[this.len]++; + this.fpos[this.len]++ + } + } + , + i.prototype.Rec = function() { + var t, e = this.Places[this.treepos]; + if (17 === this.len) + return -1; + if (this.treepos++, + this.len++, + (t = this.IsPat()) >= 0) + e.b0 = t; + else if (e.b0 = 32768, + this.Rec()) + return -1; + if ((t = this.IsPat()) >= 0) + e.b1 = t, + e.jump = null; + else if (e.b1 = 32768, + e.jump = this.Places[this.treepos], + e.jumppos = this.treepos, + this.Rec()) + return -1; + return this.len--, + 0 + } + , + i.prototype.CreateTree = function(t, e, i) { + var n; + for (this.Places = t, + this.treepos = 0, + this.flens = i, + this.fmax = e, + n = 0; n < 17; n++) + this.fpos[n] = 0; + return this.len = 0, + this.Rec() ? -1 : 0 + } + , + i.prototype.DecodeValue = function(t) { + for (var e, i, n = 0, r = t[n]; ; ) + if (this.readBit()) { + if (!(32768 & r.b1)) + return r.b1; + for (r = r.jump, + e = t.length, + i = 0; i < e; i++) + if (t[i] === r) { + n = i; + break + } + } else { + if (!(32768 & r.b0)) + return r.b0; + r = t[++n] + } + return -1 + } + , + i.prototype.DeflateLoop = function() { + var t, e, n; + do { + var r, s; + if (t = this.readBit(), + 0 === (e = this.readBits(2))) + for (this.byteAlign(), + r = this.readByte(), + r |= this.readByte() << 8, + s = this.readByte(), + 65535 & (r ^ ~(s |= this.readByte() << 8)) && document.write("BlockLen checksum mismatch\n"); r--; ) + a = this.readByte(), + this.addBuffer(a); + else if (1 === e) + for (; ; ) + if ((o = i.bitReverse[this.readBits(7)] >> 1) > 23 ? (o = o << 1 | this.readBit()) > 199 ? o = (o -= 128) << 1 | this.readBit() : (o -= 48) > 143 && (o += 136) : o += 256, + o < 256) + this.addBuffer(o); + else { + if (256 === o) + break; + for (o -= 257, + p = this.readBits(i.cplext[o]) + i.cplens[o], + o = i.bitReverse[this.readBits(5)] >> 3, + i.cpdext[o] > 8 ? (m = this.readBits(8), + m |= this.readBits(i.cpdext[o] - 8) << 8) : m = this.readBits(i.cpdext[o]), + m += i.cpdist[o], + o = 0; o < p; o++) { + var a = this.buf32k[this.bIdx - m & 32767]; + this.addBuffer(a) + } + } + else if (2 === e) { + var o, l, h, c, u, _ = new Array(320); + for (h = 257 + this.readBits(5), + c = 1 + this.readBits(5), + u = 4 + this.readBits(4), + o = 0; o < 19; o++) + _[o] = 0; + for (o = 0; o < u; o++) + _[i.border[o]] = this.readBits(3); + for (p = this.distanceTree.length, + n = 0; n < p; n++) + this.distanceTree[n] = new i.HufNode; + if (this.CreateTree(this.distanceTree, 19, _, 0)) + return this.flushBuffer(), + 1; + for (l = h + c, + n = 0; n < l; ) + if ((o = this.DecodeValue(this.distanceTree)) < 16) + _[n++] = o; + else if (16 === o) { + var f; + if (n + (o = 3 + this.readBits(2)) > l) + return this.flushBuffer(), + 1; + for (f = n ? _[n - 1] : 0; o--; ) + _[n++] = f + } else { + if (n + (o = 17 === o ? 3 + this.readBits(3) : 11 + this.readBits(7)) > l) + return this.flushBuffer(), + 1; + for (; o--; ) + _[n++] = 0 + } + for (p = this.literalTree.length, + n = 0; n < p; n++) + this.literalTree[n] = new i.HufNode; + if (this.CreateTree(this.literalTree, h, _, 0)) + return this.flushBuffer(), + 1; + for (p = this.literalTree.length, + n = 0; n < p; n++) + this.distanceTree[n] = new i.HufNode; + var d = new Array; + for (n = h; n < _.length; n++) + d[n - h] = _[n]; + if (this.CreateTree(this.distanceTree, c, d, 0)) + return this.flushBuffer(), + 1; + for (; ; ) + if ((o = this.DecodeValue(this.literalTree)) >= 256) { + var p, m; + if (0 == (o -= 256)) + break; + for (o--, + p = this.readBits(i.cplext[o]) + i.cplens[o], + o = this.DecodeValue(this.distanceTree), + i.cpdext[o] > 8 ? (m = this.readBits(8), + m |= this.readBits(i.cpdext[o] - 8) << 8) : m = this.readBits(i.cpdext[o]), + m += i.cpdist[o]; p--; ) + a = this.buf32k[this.bIdx - m & 32767], + this.addBuffer(a) + } else + this.addBuffer(o) + } + } while (!t);return this.flushBuffer(), + this.byteAlign(), + 0 + } + , + i.prototype.unzipFile = function(t) { + var e; + for (this.gunzip(), + e = 0; e < this.unzipped.length; e++) + if (this.unzipped[e][1] === t) + return this.unzipped[e][0] + } + , + i.prototype.nextFile = function() { + this.outputArr = [], + this.modeZIP = !1; + var t = []; + if (t[0] = this.readByte(), + t[1] = this.readByte(), + 120 === t[0] && 218 === t[1] && (this.DeflateLoop(), + this.unzipped[this.files] = [this.outputArr.join(""), "geonext.gxt"], + this.files++), + 31 === t[0] && 139 === t[1] && (this.skipdir(), + this.unzipped[this.files] = [this.outputArr.join(""), "file"], + this.files++), + 80 === t[0] && 75 === t[1] && (this.modeZIP = !0, + t[2] = this.readByte(), + t[3] = this.readByte(), + 3 === t[2] && 4 === t[3])) { + t[0] = this.readByte(), + t[1] = this.readByte(), + this.gpflags = this.readByte(), + this.gpflags |= this.readByte() << 8; + var e = this.readByte(); + e |= this.readByte() << 8, + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(); + var n = this.readByte(); + n |= this.readByte() << 8; + var r = this.readByte(); + for (r |= this.readByte() << 8, + a = 0, + this.nameBuf = []; n--; ) { + var s = this.readByte(); + "/" === s | ":" === s ? a = 0 : a < i.NAMEMAX - 1 && (this.nameBuf[a++] = String.fromCharCode(s)) + } + this.fileout || (this.fileout = this.nameBuf); + for (var a = 0; a < r; ) + s = this.readByte(), + a++; + 8 === e && (this.DeflateLoop(), + this.unzipped[this.files] = [this.outputArr.join(""), this.nameBuf.join("")], + this.files++), + this.skipdir() + } + } + , + i.prototype.skipdir = function() { + var t, e, n = []; + if (8 & this.gpflags && (n[0] = this.readByte(), + n[1] = this.readByte(), + n[2] = this.readByte(), + n[3] = this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte()), + this.modeZIP && this.nextFile(), + n[0] = this.readByte(), + 8 !== n[0]) + return 0; + if (this.gpflags = this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + 4 & this.gpflags) + for (n[0] = this.readByte(), + n[2] = this.readByte(), + this.len = n[0] + 256 * n[1], + t = 0; t < this.len; t++) + this.readByte(); + if (8 & this.gpflags) + for (t = 0, + this.nameBuf = []; e = this.readByte(); ) + "7" !== e && ":" !== e || (t = 0), + t < i.NAMEMAX - 1 && (this.nameBuf[t++] = e); + if (16 & this.gpflags) + for (; e = this.readByte(); ) + ; + 2 & this.gpflags && (this.readByte(), + this.readByte()), + this.DeflateLoop(), + this.readByte(), + this.readByte(), + this.readByte(), + this.readByte(), + this.modeZIP && this.nextFile() + } + , + e.exports = i + } + ), {}], + 25: [(function(t, e) { + "use strict"; + (function() { + function t(t) { + throw t + } + var e = void 0 + , i = !0 + , n = this; + function r(t, i) { + var r, s = t.split("."), a = n; + !(s[0]in a) && a.execScript && a.execScript("var " + s[0]); + for (; s.length && (r = s.shift()); ) + s.length || i === e ? a = a[r] ? a[r] : a[r] = {} : a[r] = i + } + var s = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Uint32Array; + function a(t) { + if ("string" == typeof t) { + var e, i, n = t.split(""); + for (e = 0, + i = n.length; e < i; e++) + n[e] = (255 & n[e].charCodeAt(0)) >>> 0; + t = n + } + for (var r, s = 1, a = 0, o = t.length, l = 0; 0 < o; ) { + o -= r = 1024 < o ? 1024 : o; + do { + a += s += t[l++] + } while (--r);s %= 65521, + a %= 65521 + } + return (a << 16 | s) >>> 0 + } + function o(e, i) { + this.index = "number" == typeof i ? i : 0, + this.i = 0, + this.buffer = e instanceof (s ? Uint8Array : Array) ? e : new (s ? Uint8Array : Array)(32768), + 2 * this.buffer.length <= this.index && t(Error("invalid index")), + this.buffer.length <= this.index && this.f() + } + o.prototype.f = function() { + var t, e = this.buffer, i = e.length, n = new (s ? Uint8Array : Array)(i << 1); + if (s) + n.set(e); + else + for (t = 0; t < i; ++t) + n[t] = e[t]; + return this.buffer = n + } + , + o.prototype.d = function(t, e, i) { + var n, r = this.buffer, s = this.index, a = this.i, o = r[s]; + if (i && 1 < e && (t = 8 < e ? (f[255 & t] << 24 | f[t >>> 8 & 255] << 16 | f[t >>> 16 & 255] << 8 | f[t >>> 24 & 255]) >> 32 - e : f[t] >> 8 - e), + 8 > e + a) + o = o << e | t, + a += e; + else + for (n = 0; n < e; ++n) + o = o << 1 | t >> e - n - 1 & 1, + 8 == ++a && (a = 0, + r[s++] = f[o], + o = 0, + s === r.length && (r = this.f())); + r[s] = o, + this.buffer = r, + this.i = a, + this.index = s + } + , + o.prototype.finish = function() { + var t, e = this.buffer, i = this.index; + return 0 < this.i && (e[i] <<= 8 - this.i, + e[i] = f[e[i]], + i++), + s ? t = e.subarray(0, i) : (e.length = i, + t = e), + t + } + ; + var l, h = new (s ? Uint8Array : Array)(256); + for (l = 0; 256 > l; ++l) { + for (var c = _ = l, u = 7, _ = _ >>> 1; _; _ >>>= 1) + c <<= 1, + c |= 1 & _, + --u; + h[l] = (c << u & 255) >>> 0 + } + var f = h; + function d(t) { + this.buffer = new (s ? Uint16Array : Array)(2 * t), + this.length = 0 + } + function p(t) { + var e, i, n, r, a, o, l, h, c, u = t.length, _ = 0, f = Number.POSITIVE_INFINITY; + for (h = 0; h < u; ++h) + t[h] > _ && (_ = t[h]), + t[h] < f && (f = t[h]); + for (e = 1 << _, + i = new (s ? Uint32Array : Array)(e), + n = 1, + r = 0, + a = 2; n <= _; ) { + for (h = 0; h < u; ++h) + if (t[h] === n) { + for (o = 0, + l = r, + c = 0; c < n; ++c) + o = o << 1 | 1 & l, + l >>= 1; + for (c = o; c < e; c += a) + i[c] = n << 16 | h; + ++r + } + ++n, + r <<= 1, + a <<= 1 + } + return [i, _, f] + } + function m(t, e) { + this.h = v, + this.w = 0, + this.input = t, + this.b = 0, + e && (e.lazy && (this.w = e.lazy), + "number" == typeof e.compressionType && (this.h = e.compressionType), + e.outputBuffer && (this.a = s && e.outputBuffer instanceof Array ? new Uint8Array(e.outputBuffer) : e.outputBuffer), + "number" == typeof e.outputIndex && (this.b = e.outputIndex)), + this.a || (this.a = new (s ? Uint8Array : Array)(32768)) + } + s && new Uint32Array([0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117]), + d.prototype.getParent = function(t) { + return 2 * ((t - 2) / 4 | 0) + } + , + d.prototype.push = function(t, e) { + var i, n, r, s = this.buffer; + for (i = this.length, + s[this.length++] = e, + s[this.length++] = t; 0 < i && (n = this.getParent(i), + s[i] > s[n]); ) + r = s[i], + s[i] = s[n], + s[n] = r, + r = s[i + 1], + s[i + 1] = s[n + 1], + s[n + 1] = r, + i = n; + return this.length + } + , + d.prototype.pop = function() { + var t, e, i, n, r, s = this.buffer; + for (e = s[0], + t = s[1], + this.length -= 2, + s[0] = s[this.length], + s[1] = s[this.length + 1], + r = 0; !((n = 2 * r + 2) >= this.length) && (n + 2 < this.length && s[n + 2] > s[n] && (n += 2), + s[n] > s[r]); ) + i = s[r], + s[r] = s[n], + s[n] = i, + i = s[r + 1], + s[r + 1] = s[n + 1], + s[n + 1] = i, + r = n; + return { + index: t, + value: e, + length: this.length + } + } + ; + var y, v = 2, g = { + NONE: 0, + r: 1, + j: v, + N: 3 + }, A = []; + for (y = 0; 288 > y; y++) + switch (i) { + case 143 >= y: + A.push([y + 48, 8]); + break; + case 255 >= y: + A.push([y - 144 + 400, 9]); + break; + case 279 >= y: + A.push([y - 256 + 0, 7]); + break; + case 287 >= y: + A.push([y - 280 + 192, 8]); + break; + default: + t("invalid literal: " + y) + } + function x(t, e) { + this.length = t, + this.G = e + } + function b() { + var e = C; + switch (i) { + case 3 === e: + return [257, e - 3, 0]; + case 4 === e: + return [258, e - 4, 0]; + case 5 === e: + return [259, e - 5, 0]; + case 6 === e: + return [260, e - 6, 0]; + case 7 === e: + return [261, e - 7, 0]; + case 8 === e: + return [262, e - 8, 0]; + case 9 === e: + return [263, e - 9, 0]; + case 10 === e: + return [264, e - 10, 0]; + case 12 >= e: + return [265, e - 11, 1]; + case 14 >= e: + return [266, e - 13, 1]; + case 16 >= e: + return [267, e - 15, 1]; + case 18 >= e: + return [268, e - 17, 1]; + case 22 >= e: + return [269, e - 19, 2]; + case 26 >= e: + return [270, e - 23, 2]; + case 30 >= e: + return [271, e - 27, 2]; + case 34 >= e: + return [272, e - 31, 2]; + case 42 >= e: + return [273, e - 35, 3]; + case 50 >= e: + return [274, e - 43, 3]; + case 58 >= e: + return [275, e - 51, 3]; + case 66 >= e: + return [276, e - 59, 3]; + case 82 >= e: + return [277, e - 67, 4]; + case 98 >= e: + return [278, e - 83, 4]; + case 114 >= e: + return [279, e - 99, 4]; + case 130 >= e: + return [280, e - 115, 4]; + case 162 >= e: + return [281, e - 131, 5]; + case 194 >= e: + return [282, e - 163, 5]; + case 226 >= e: + return [283, e - 195, 5]; + case 257 >= e: + return [284, e - 227, 5]; + case 258 === e: + return [285, e - 258, 0]; + default: + t("invalid length: " + e) + } + } + m.prototype.n = function() { + var n, r, a, l, h = this.input; + switch (this.h) { + case 0: + for (a = 0, + l = h.length; a < l; ) { + var c, u, _, f = r = s ? h.subarray(a, a + 65535) : h.slice(a, a + 65535), d = (a += r.length) === l, p = e, m = e, y = this.a, g = this.b; + if (s) { + for (y = new Uint8Array(this.a.buffer); y.length <= g + f.length + 5; ) + y = new Uint8Array(y.length << 1); + y.set(this.a) + } + if (c = d ? 1 : 0, + y[g++] = 0 | c, + _ = 65536 + ~(u = f.length) & 65535, + y[g++] = 255 & u, + y[g++] = u >>> 8 & 255, + y[g++] = 255 & _, + y[g++] = _ >>> 8 & 255, + s) + y.set(f, g), + g += f.length, + y = y.subarray(0, g); + else { + for (p = 0, + m = f.length; p < m; ++p) + y[g++] = f[p]; + y.length = g + } + this.b = g, + this.a = y + } + break; + case 1: + var x = new o(new Uint8Array(this.a.buffer),this.b); + x.d(1, 1, i), + x.d(1, 2, i); + var b, C, T, S = E(this, h); + for (b = 0, + C = S.length; b < C; b++) + if (T = S[b], + o.prototype.d.apply(x, A[T]), + 256 < T) + x.d(S[++b], S[++b], i), + x.d(S[++b], 5), + x.d(S[++b], S[++b], i); + else if (256 === T) + break; + this.a = x.finish(), + this.b = this.a.length; + break; + case v: + var w, B, I, P, R, O, L, F, V, N, k, G, U, z, H, W = new o(new Uint8Array(this.a),this.b), j = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], X = Array(19); + for (w = v, + W.d(1, 1, i), + W.d(w, 2, i), + B = E(this, h), + L = D(O = M(this.L, 15)), + V = D(F = M(this.K, 7)), + I = 286; 257 < I && 0 === O[I - 1]; I--) + ; + for (P = 30; 1 < P && 0 === F[P - 1]; P--) + ; + var Y, q, J, Z, K, Q, $ = I, tt = P, et = new (s ? Uint32Array : Array)($ + tt), it = new (s ? Uint32Array : Array)(316), nt = new (s ? Uint8Array : Array)(19); + for (Y = q = 0; Y < $; Y++) + et[q++] = O[Y]; + for (Y = 0; Y < tt; Y++) + et[q++] = F[Y]; + if (!s) + for (Y = 0, + Z = nt.length; Y < Z; ++Y) + nt[Y] = 0; + for (Y = K = 0, + Z = et.length; Y < Z; Y += q) { + for (q = 1; Y + q < Z && et[Y + q] === et[Y]; ++q) + ; + if (J = q, + 0 === et[Y]) + if (3 > J) + for (; 0 < J--; ) + it[K++] = 0, + nt[0]++; + else + for (; 0 < J; ) + (Q = 138 > J ? J : 138) > J - 3 && Q < J && (Q = J - 3), + 10 >= Q ? (it[K++] = 17, + it[K++] = Q - 3, + nt[17]++) : (it[K++] = 18, + it[K++] = Q - 11, + nt[18]++), + J -= Q; + else if (it[K++] = et[Y], + nt[et[Y]]++, + 3 > --J) + for (; 0 < J--; ) + it[K++] = et[Y], + nt[et[Y]]++; + else + for (; 0 < J; ) + (Q = 6 > J ? J : 6) > J - 3 && Q < J && (Q = J - 3), + it[K++] = 16, + it[K++] = Q - 3, + nt[16]++, + J -= Q + } + for (n = s ? it.subarray(0, K) : it.slice(0, K), + N = M(nt, 7), + z = 0; 19 > z; z++) + X[z] = N[j[z]]; + for (R = 19; 4 < R && 0 === X[R - 1]; R--) + ; + for (k = D(N), + W.d(I - 257, 5, i), + W.d(P - 1, 5, i), + W.d(R - 4, 4, i), + z = 0; z < R; z++) + W.d(X[z], 3, i); + for (z = 0, + H = n.length; z < H; z++) + if (G = n[z], + W.d(k[G], N[G], i), + 16 <= G) { + switch (z++, + G) { + case 16: + U = 2; + break; + case 17: + U = 3; + break; + case 18: + U = 7; + break; + default: + t("invalid code: " + G) + } + W.d(n[z], U, i) + } + var rt, st, at, ot, lt, ht, ct, ut, _t = [L, O], ft = [V, F]; + for (lt = _t[0], + ht = _t[1], + ct = ft[0], + ut = ft[1], + rt = 0, + st = B.length; rt < st; ++rt) + if (at = B[rt], + W.d(lt[at], ht[at], i), + 256 < at) + W.d(B[++rt], B[++rt], i), + ot = B[++rt], + W.d(ct[ot], ut[ot], i), + W.d(B[++rt], B[++rt], i); + else if (256 === at) + break; + this.a = W.finish(), + this.b = this.a.length; + break; + default: + t("invalid compression type") + } + return this.a + } + ; + var C, T, S = []; + for (C = 3; 258 >= C; C++) + T = b(), + S[C] = T[2] << 24 | T[1] << 16 | T[0]; + var w = s ? new Uint32Array(S) : S; + function E(n, r) { + function a(e, n) { + var r, s, a, o, l = e.G, h = [], c = 0; + switch (r = w[e.length], + h[c++] = 65535 & r, + h[c++] = r >> 16 & 255, + h[c++] = r >> 24, + i) { + case 1 === l: + s = [0, l - 1, 0]; + break; + case 2 === l: + s = [1, l - 2, 0]; + break; + case 3 === l: + s = [2, l - 3, 0]; + break; + case 4 === l: + s = [3, l - 4, 0]; + break; + case 6 >= l: + s = [4, l - 5, 1]; + break; + case 8 >= l: + s = [5, l - 7, 1]; + break; + case 12 >= l: + s = [6, l - 9, 2]; + break; + case 16 >= l: + s = [7, l - 13, 2]; + break; + case 24 >= l: + s = [8, l - 17, 3]; + break; + case 32 >= l: + s = [9, l - 25, 3]; + break; + case 48 >= l: + s = [10, l - 33, 4]; + break; + case 64 >= l: + s = [11, l - 49, 4]; + break; + case 96 >= l: + s = [12, l - 65, 5]; + break; + case 128 >= l: + s = [13, l - 97, 5]; + break; + case 192 >= l: + s = [14, l - 129, 6]; + break; + case 256 >= l: + s = [15, l - 193, 6]; + break; + case 384 >= l: + s = [16, l - 257, 7]; + break; + case 512 >= l: + s = [17, l - 385, 7]; + break; + case 768 >= l: + s = [18, l - 513, 8]; + break; + case 1024 >= l: + s = [19, l - 769, 8]; + break; + case 1536 >= l: + s = [20, l - 1025, 9]; + break; + case 2048 >= l: + s = [21, l - 1537, 9]; + break; + case 3072 >= l: + s = [22, l - 2049, 10]; + break; + case 4096 >= l: + s = [23, l - 3073, 10]; + break; + case 6144 >= l: + s = [24, l - 4097, 11]; + break; + case 8192 >= l: + s = [25, l - 6145, 11]; + break; + case 12288 >= l: + s = [26, l - 8193, 12]; + break; + case 16384 >= l: + s = [27, l - 12289, 12]; + break; + case 24576 >= l: + s = [28, l - 16385, 13]; + break; + case 32768 >= l: + s = [29, l - 24577, 13]; + break; + default: + t("invalid distance") + } + for (r = s, + h[c++] = r[0], + h[c++] = r[1], + h[c++] = r[2], + a = 0, + o = h.length; a < o; ++a) + y[v++] = h[a]; + A[h[0]]++, + b[h[3]]++, + g = e.length + n - 1, + d = null + } + var o, l, h, c, u, _, f, d, p, m = {}, y = s ? new Uint16Array(2 * r.length) : [], v = 0, g = 0, A = new (s ? Uint32Array : Array)(286), b = new (s ? Uint32Array : Array)(30), C = n.w; + if (!s) { + for (h = 0; 285 >= h; ) + A[h++] = 0; + for (h = 0; 29 >= h; ) + b[h++] = 0 + } + for (A[256] = 1, + o = 0, + l = r.length; o < l; ++o) { + for (h = u = 0, + c = 3; h < c && o + h !== l; ++h) + u = u << 8 | r[o + h]; + if (m[u] === e && (m[u] = []), + _ = m[u], + !(0 < g--)) { + for (; 0 < _.length && 32768 < o - _[0]; ) + _.shift(); + if (o + 3 >= l) { + for (d && a(d, -1), + h = 0, + c = l - o; h < c; ++h) + p = r[o + h], + y[v++] = p, + ++A[p]; + break + } + if (0 < _.length) { + var T = e + , S = e + , E = 0 + , M = e + , D = e + , B = e + , I = r.length + , P = (D = 0, + _.length); + t: for (; D < P; D++) { + if (T = _[P - D - 1], + M = 3, + 3 < E) { + for (B = E; 3 < B; B--) + if (r[T + B - 1] !== r[o + B - 1]) + continue t; + M = E + } + for (; 258 > M && o + M < I && r[T + M] === r[o + M]; ) + ++M; + if (M > E && (S = T, + E = M), + 258 === M) + break + } + f = new x(E,o - S), + d ? d.length < f.length ? (p = r[o - 1], + y[v++] = p, + ++A[p], + a(f, 0)) : a(d, -1) : f.length < C ? d = f : a(f, 0) + } else + d ? a(d, -1) : (p = r[o], + y[v++] = p, + ++A[p]) + } + _.push(o) + } + return y[v++] = 256, + A[256]++, + n.L = A, + n.K = b, + s ? y.subarray(0, v) : y + } + function M(t, e) { + function i(t) { + var e = C[t][T[t]]; + e === v ? (i(t + 1), + i(t + 1)) : --x[e], + ++T[t] + } + var n, r, a, o, l, h = t.length, c = new d(572), u = new (s ? Uint8Array : Array)(h); + if (!s) + for (o = 0; o < h; o++) + u[o] = 0; + for (o = 0; o < h; ++o) + 0 < t[o] && c.push(o, t[o]); + if (n = Array(c.length / 2), + r = new (s ? Uint32Array : Array)(c.length / 2), + 1 === n.length) + return u[c.pop().index] = 1, + u; + for (o = 0, + l = c.length / 2; o < l; ++o) + n[o] = c.pop(), + r[o] = n[o].value; + var _, f, p, m, y, v = r.length, g = new (s ? Uint16Array : Array)(e), A = new (s ? Uint8Array : Array)(e), x = new (s ? Uint8Array : Array)(v), b = Array(e), C = Array(e), T = Array(e), S = (1 << e) - v, w = 1 << e - 1; + for (g[e - 1] = v, + f = 0; f < e; ++f) + S < w ? A[f] = 0 : (A[f] = 1, + S -= w), + S <<= 1, + g[e - 2 - f] = (g[e - 1 - f] / 2 | 0) + v; + for (g[0] = A[0], + b[0] = Array(g[0]), + C[0] = Array(g[0]), + f = 1; f < e; ++f) + g[f] > 2 * g[f - 1] + A[f] && (g[f] = 2 * g[f - 1] + A[f]), + b[f] = Array(g[f]), + C[f] = Array(g[f]); + for (_ = 0; _ < v; ++_) + x[_] = e; + for (p = 0; p < g[e - 1]; ++p) + b[e - 1][p] = r[p], + C[e - 1][p] = p; + for (_ = 0; _ < e; ++_) + T[_] = 0; + for (1 === A[e - 1] && (--x[0], + ++T[e - 1]), + f = e - 2; 0 <= f; --f) { + for (m = _ = 0, + y = T[f + 1], + p = 0; p < g[f]; p++) + (m = b[f + 1][y] + b[f + 1][y + 1]) > r[_] ? (b[f][p] = m, + C[f][p] = v, + y += 2) : (b[f][p] = r[_], + C[f][p] = _, + ++_); + T[f] = 0, + 1 === A[f] && i(f) + } + for (a = x, + o = 0, + l = n.length; o < l; ++o) + u[n[o].index] = a[o]; + return u + } + function D(e) { + var i, n, r, a, o = new (s ? Uint16Array : Array)(e.length), l = [], h = [], c = 0; + for (i = 0, + n = e.length; i < n; i++) + l[e[i]] = 1 + (0 | l[e[i]]); + for (i = 1, + n = 16; i <= n; i++) + h[i] = c, + (c += 0 | l[i]) > 1 << i && t("overcommitted"), + c <<= 1; + for (65536 > c && t("undercommitted"), + i = 0, + n = e.length; i < n; i++) + for (c = h[e[i]], + h[e[i]] += 1, + r = o[i] = 0, + a = e[i]; r < a; r++) + o[i] = o[i] << 1 | 1 & c, + c >>>= 1; + return o + } + function B(t, e) { + this.input = t, + this.a = new (s ? Uint8Array : Array)(32768), + this.h = I.j; + var i, n = {}; + for (i in !e && (e = {}) || "number" != typeof e.compressionType || (this.h = e.compressionType), + e) + n[i] = e[i]; + n.outputBuffer = this.a, + this.z = new m(this.input,n) + } + var I = g; + function P(e, i) { + switch (this.k = [], + this.l = 32768, + this.e = this.g = this.c = this.q = 0, + this.input = s ? new Uint8Array(e) : e, + this.s = !1, + this.m = O, + this.B = !1, + !i && (i = {}) || (i.index && (this.c = i.index), + i.bufferSize && (this.l = i.bufferSize), + i.bufferType && (this.m = i.bufferType), + i.resize && (this.B = i.resize)), + this.m) { + case R: + this.b = 32768, + this.a = new (s ? Uint8Array : Array)(32768 + this.l + 258); + break; + case O: + this.b = 0, + this.a = new (s ? Uint8Array : Array)(this.l), + this.f = this.J, + this.t = this.H, + this.o = this.I; + break; + default: + t(Error("invalid inflate mode")) + } + } + B.prototype.n = function() { + var e, i, n, r, o, l, h, c = 0; + switch (h = this.a, + e = ct) { + case ct: + i = Math.LOG2E * Math.log(32768) - 8; + break; + default: + t(Error("invalid compression method")) + } + switch (n = i << 4 | e, + h[c++] = n, + e) { + case ct: + switch (this.h) { + case I.NONE: + o = 0; + break; + case I.r: + o = 1; + break; + case I.j: + o = 2; + break; + default: + t(Error("unsupported compression type")) + } + break; + default: + t(Error("invalid compression method")) + } + return r = o << 6 | 0, + h[c++] = r | 31 - (256 * n + r) % 31, + l = a(this.input), + this.z.b = c, + c = (h = this.z.n()).length, + s && ((h = new Uint8Array(h.buffer)).length <= c + 4 && (this.a = new Uint8Array(h.length + 4), + this.a.set(h), + h = this.a), + h = h.subarray(0, c + 4)), + h[c++] = l >> 24 & 255, + h[c++] = l >> 16 & 255, + h[c++] = l >> 8 & 255, + h[c++] = 255 & l, + h + } + , + r("Zlib.Deflate", B), + r("Zlib.Deflate.compress", (function(t, e) { + return new B(t,e).n() + } + )), + r("Zlib.Deflate.CompressionType", I), + r("Zlib.Deflate.CompressionType.NONE", I.NONE), + r("Zlib.Deflate.CompressionType.FIXED", I.r), + r("Zlib.Deflate.CompressionType.DYNAMIC", I.j); + var R = 0 + , O = 1 + , L = { + D: R, + C: O + }; + P.prototype.p = function() { + for (; !this.s; ) { + var n = tt(this, 3); + switch (1 & n && (this.s = i), + n >>>= 1) { + case 0: + var r = this.input + , a = this.c + , o = this.a + , l = this.b + , h = e + , c = e + , u = e + , _ = o.length + , f = e; + switch (this.e = this.g = 0, + (h = r[a++]) === e && t(Error("invalid uncompressed block header: LEN (first byte)")), + c = h, + (h = r[a++]) === e && t(Error("invalid uncompressed block header: LEN (second byte)")), + c |= h << 8, + (h = r[a++]) === e && t(Error("invalid uncompressed block header: NLEN (first byte)")), + u = h, + (h = r[a++]) === e && t(Error("invalid uncompressed block header: NLEN (second byte)")), + c === ~(u |= h << 8) && t(Error("invalid uncompressed block header: length verify")), + a + c > r.length && t(Error("input buffer is broken")), + this.m) { + case R: + for (; l + c > o.length; ) { + if (c -= f = _ - l, + s) + o.set(r.subarray(a, a + f), l), + l += f, + a += f; + else + for (; f--; ) + o[l++] = r[a++]; + this.b = l, + o = this.f(), + l = this.b + } + break; + case O: + for (; l + c > o.length; ) + o = this.f({ + v: 2 + }); + break; + default: + t(Error("invalid inflate mode")) + } + if (s) + o.set(r.subarray(a, a + c), l), + l += c, + a += c; + else + for (; c--; ) + o[l++] = r[a++]; + this.c = a, + this.b = l, + this.a = o; + break; + case 1: + this.o(K, $); + break; + case 2: + it(this); + break; + default: + t(Error("unknown BTYPE: " + n)) + } + } + return this.t() + } + ; + var F, V, N = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], k = s ? new Uint16Array(N) : N, G = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258], U = s ? new Uint16Array(G) : G, z = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0], H = s ? new Uint8Array(z) : z, W = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577], j = s ? new Uint16Array(W) : W, X = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13], Y = s ? new Uint8Array(X) : X, q = new (s ? Uint8Array : Array)(288); + for (F = 0, + V = q.length; F < V; ++F) + q[F] = 143 >= F ? 8 : 255 >= F ? 9 : 279 >= F ? 7 : 8; + var J, Z, K = p(q), Q = new (s ? Uint8Array : Array)(30); + for (J = 0, + Z = Q.length; J < Z; ++J) + Q[J] = 5; + var $ = p(Q); + function tt(i, n) { + for (var r, s = i.g, a = i.e, o = i.input, l = i.c; a < n; ) + (r = o[l++]) === e && t(Error("input buffer is broken")), + s |= r << a, + a += 8; + return r = s & (1 << n) - 1, + i.g = s >>> n, + i.e = a - n, + i.c = l, + r + } + function et(i, n) { + for (var r, s, a, o = i.g, l = i.e, h = i.input, c = i.c, u = n[0], _ = n[1]; l < _; ) + (r = h[c++]) === e && t(Error("input buffer is broken")), + o |= r << l, + l += 8; + return a = (s = u[o & (1 << _) - 1]) >>> 16, + i.g = o >> a, + i.e = l - a, + i.c = c, + 65535 & s + } + function it(t) { + function e(t, e, i) { + var n, r, s, a; + for (a = 0; a < t; ) + switch (n = et(this, e)) { + case 16: + for (s = 3 + tt(this, 2); s--; ) + i[a++] = r; + break; + case 17: + for (s = 3 + tt(this, 3); s--; ) + i[a++] = 0; + r = 0; + break; + case 18: + for (s = 11 + tt(this, 7); s--; ) + i[a++] = 0; + r = 0; + break; + default: + r = i[a++] = n + } + return i + } + var i, n, r, a, o = tt(t, 5) + 257, l = tt(t, 5) + 1, h = tt(t, 4) + 4, c = new (s ? Uint8Array : Array)(k.length); + for (a = 0; a < h; ++a) + c[k[a]] = tt(t, 3); + i = p(c), + n = new (s ? Uint8Array : Array)(o), + r = new (s ? Uint8Array : Array)(l), + t.o(p(e.call(t, o, i, n)), p(e.call(t, l, i, r))) + } + function nt(e, i) { + var n, r; + switch (this.input = e, + this.c = 0, + !i && (i = {}) || (i.index && (this.c = i.index), + i.verify && (this.M = i.verify)), + n = e[this.c++], + r = e[this.c++], + 15 & n) { + case ct: + this.method = ct; + break; + default: + t(Error("unsupported compression method")) + } + 0 != ((n << 8) + r) % 31 && t(Error("invalid fcheck flag:" + ((n << 8) + r) % 31)), + 32 & r && t(Error("fdict flag is not supported")), + this.A = new P(e,{ + index: this.c, + bufferSize: i.bufferSize, + bufferType: i.bufferType, + resize: i.resize + }) + } + P.prototype.o = function(t, e) { + var i = this.a + , n = this.b; + this.u = t; + for (var r, s, a, o, l = i.length - 258; 256 !== (r = et(this, t)); ) + if (256 > r) + n >= l && (this.b = n, + i = this.f(), + n = this.b), + i[n++] = r; + else + for (o = U[s = r - 257], + 0 < H[s] && (o += tt(this, H[s])), + r = et(this, e), + a = j[r], + 0 < Y[r] && (a += tt(this, Y[r])), + n >= l && (this.b = n, + i = this.f(), + n = this.b); o--; ) + i[n] = i[n++ - a]; + for (; 8 <= this.e; ) + this.e -= 8, + this.c--; + this.b = n + } + , + P.prototype.I = function(t, e) { + var i = this.a + , n = this.b; + this.u = t; + for (var r, s, a, o, l = i.length; 256 !== (r = et(this, t)); ) + if (256 > r) + n >= l && (l = (i = this.f()).length), + i[n++] = r; + else + for (o = U[s = r - 257], + 0 < H[s] && (o += tt(this, H[s])), + r = et(this, e), + a = j[r], + 0 < Y[r] && (a += tt(this, Y[r])), + n + o > l && (l = (i = this.f()).length); o--; ) + i[n] = i[n++ - a]; + for (; 8 <= this.e; ) + this.e -= 8, + this.c--; + this.b = n + } + , + P.prototype.f = function() { + var t, e, i = new (s ? Uint8Array : Array)(this.b - 32768), n = this.b - 32768, r = this.a; + if (s) + i.set(r.subarray(32768, i.length)); + else + for (t = 0, + e = i.length; t < e; ++t) + i[t] = r[t + 32768]; + if (this.k.push(i), + this.q += i.length, + s) + r.set(r.subarray(n, n + 32768)); + else + for (t = 0; 32768 > t; ++t) + r[t] = r[n + t]; + return this.b = 32768, + r + } + , + P.prototype.J = function(t) { + var e, i, n, r = this.input.length / this.c + 1 | 0, a = this.input, o = this.a; + return t && ("number" == typeof t.v && (r = t.v), + "number" == typeof t.F && (r += t.F)), + i = 2 > r ? (n = (a.length - this.c) / this.u[2] / 2 * 258 | 0) < o.length ? o.length + n : o.length << 1 : o.length * r, + s ? (e = new Uint8Array(i)).set(o) : e = o, + this.a = e + } + , + P.prototype.t = function() { + var t, e, i, n, r, a = 0, o = this.a, l = this.k, h = new (s ? Uint8Array : Array)(this.q + (this.b - 32768)); + if (0 === l.length) + return s ? this.a.subarray(32768, this.b) : this.a.slice(32768, this.b); + for (e = 0, + i = l.length; e < i; ++e) + for (n = 0, + r = (t = l[e]).length; n < r; ++n) + h[a++] = t[n]; + for (e = 32768, + i = this.b; e < i; ++e) + h[a++] = o[e]; + return this.k = [], + this.buffer = h + } + , + P.prototype.H = function() { + var t, e = this.b; + return s ? this.B ? (t = new Uint8Array(e)).set(this.a.subarray(0, e)) : t = this.a.subarray(0, e) : (this.a.length > e && (this.a.length = e), + t = this.a), + this.buffer = t + } + , + nt.prototype.p = function() { + var e, i = this.input; + return e = this.A.p(), + this.c = this.A.c, + this.M && (i[this.c++] << 24 | i[this.c++] << 16 | i[this.c++] << 8 | i[this.c++]) >>> 0 !== a(e) && t(Error("invalid adler-32 checksum")), + e + } + , + r("Zlib.Inflate", nt), + r("Zlib.Inflate.BufferType", L), + L.ADAPTIVE = L.C, + L.BLOCK = L.D, + r("Zlib.Inflate.prototype.decompress", nt.prototype.p), + s && new Uint16Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), + s && new Uint16Array([3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258]), + s && new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0]), + s && new Uint16Array([1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577]), + s && new Uint8Array([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]); + var rt, st, at = new (s ? Uint8Array : Array)(288); + for (rt = 0, + st = at.length; rt < st; ++rt) + at[rt] = 143 >= rt ? 8 : 255 >= rt ? 9 : 279 >= rt ? 7 : 8; + p(at); + var ot, lt, ht = new (s ? Uint8Array : Array)(30); + for (ot = 0, + lt = ht.length; ot < lt; ++ot) + ht[ot] = 5; + p(ht); + var ct = 8 + } + ).call(window); + var i = window.Zlib; + i.Deflate = i.Deflate, + i.Deflate.compress = i.Deflate.compress, + i.Inflate = i.Inflate, + i.Inflate.BufferType = i.Inflate.BufferType, + i.Inflate.prototype.decompress = i.Inflate.prototype.decompress, + e.exports = i + } + ), {}], + 26: [(function(t, e) { + "use strict"; + var i, n = t("./platform/utils"), r = (t("../../DebugInfos"), + "https://github.com/cocos-creator/engine/blob/master/EngineErrorMap.md"); + function s(t) { + return function() { + var e = arguments[0] + , i = t + " " + e + ", please go to " + r + "#" + e + " to see details."; + if (1 === arguments.length) + return i; + if (2 === arguments.length) + return i + " Arguments: " + arguments[1]; + var n = cc.js.shiftArguments.apply(null, arguments); + return i + " Arguments: " + n.join(", ") + } + } + cc.log = cc.warn = cc.error = cc.assert = console.log.bind ? console.log.bind(console) : console.log, + cc._throw = function(t) { + n.callInNextTick((function() { + throw t + } + )) + } + ; + var a = s("Log"); + cc.logID = function() { + cc.log(a.apply(null, arguments)) + } + ; + var o = s("Warning"); + cc.warnID = function() { + cc.warn(o.apply(null, arguments)) + } + ; + var l = s("Error"); + cc.errorID = function() { + cc.error(l.apply(null, arguments)) + } + ; + var h = s("Assert"); + cc.assertID = function(t) { + t || cc.assert(!1, h.apply(null, cc.js.shiftArguments.apply(null, arguments))) + } + ; + var c = cc.Enum({ + NONE: 0, + INFO: 1, + WARN: 2, + ERROR: 3, + INFO_FOR_WEB_PAGE: 4, + WARN_FOR_WEB_PAGE: 5, + ERROR_FOR_WEB_PAGE: 6 + }); + e.exports = cc.debug = { + DebugMode: c, + _resetDebugSetting: function(t) { + if (cc.log = cc.warn = cc.error = cc.assert = function() {} + , + t !== c.NONE) { + if (t > c.ERROR) { + var e = function(t) { + if (cc.game.canvas) { + if (!i) { + var e = document.createElement("Div"); + e.setAttribute("id", "logInfoDiv"), + e.setAttribute("width", "200"), + e.setAttribute("height", cc.game.canvas.height); + var n = e.style; + n.zIndex = "99999", + n.position = "absolute", + n.top = n.left = "0", + (i = document.createElement("textarea")).setAttribute("rows", "20"), + i.setAttribute("cols", "30"), + i.setAttribute("disabled", "true"); + var r = i.style; + r.backgroundColor = "transparent", + r.borderBottom = "1px solid #cccccc", + r.borderTopWidth = r.borderLeftWidth = r.borderRightWidth = "0px", + r.borderTopStyle = r.borderLeftStyle = r.borderRightStyle = "none", + r.padding = "0px", + r.margin = 0, + e.appendChild(i), + cc.game.canvas.parentNode.appendChild(e) + } + i.value = i.value + t + "\r\n", + i.scrollTop = i.scrollHeight + } + }; + cc.error = function() { + e("ERROR : " + cc.js.formatStr.apply(null, arguments)) + } + , + cc.assert = function(t, i) { + !t && i && (i = cc.js.formatStr.apply(null, cc.js.shiftArguments.apply(null, arguments)), + e("ASSERT: " + i)) + } + , + t !== c.ERROR_FOR_WEB_PAGE && (cc.warn = function() { + e("WARN : " + cc.js.formatStr.apply(null, arguments)) + } + ), + t === c.INFO_FOR_WEB_PAGE && (cc.log = function() { + e(cc.js.formatStr.apply(null, arguments)) + } + ) + } else + console && console.log.apply && (console.error || (console.error = console.log), + console.warn || (console.warn = console.log), + console.error.bind ? cc.error = console.error.bind(console) : cc.error = function() { + return console.error.apply(console, arguments) + } + , + cc.assert = function(t, e) { + if (!t) + throw e && (e = cc.js.formatStr.apply(null, cc.js.shiftArguments.apply(null, arguments))), + new Error(e) + } + ); + t !== c.ERROR && (console.warn.bind ? cc.warn = console.warn.bind(console) : cc.warn = function() { + return console.warn.apply(console, arguments) + } + ), + t === c.INFO && (console.log.bind ? cc.log = console.log.bind(console) : cc.log = function() { + return console.log.apply(console, arguments) + } + ) + } + }, + getError: s("ERROR"), + isDisplayStats: function() { + return !!cc.profiler && cc.profiler.isShowingStats() + }, + setDisplayStats: function(t) { + cc.profiler && cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS && (t ? cc.profiler.showStats() : cc.profiler.hideStats(), + cc.game.config.showFPS = !!t) + } + } + } + ), { + "../../DebugInfos": void 0, + "./platform/utils": 217 + }], + 27: [(function(t, e) { + "use strict"; + var i = t("./event/event-target") + , n = t("./component-scheduler") + , r = t("./node-activator") + , s = t("./platform/CCObject") + , a = t("./CCGame") + , o = t("./renderer") + , l = t("./event-manager") + , h = t("./CCScheduler"); + cc.Director = function() { + i.call(this), + this._paused = !1, + this._purgeDirectorInNextLoop = !1, + this._winSizeInPoints = null, + this._scene = null, + this._loadingScene = "", + this._totalFrames = 0, + this._lastUpdate = 0, + this._deltaTime = 0, + this._startTime = 0, + this._maxParticleDeltaTime = 0, + this._scheduler = null, + this._compScheduler = null, + this._nodeActivator = null, + this._actionManager = null; + var t = this; + a.on(a.EVENT_SHOW, (function() { + t._lastUpdate = performance.now() + } + )), + a.once(a.EVENT_ENGINE_INITED, this.init, this) + } + , + cc.Director.prototype = { + constructor: cc.Director, + init: function() { + return this._totalFrames = 0, + this._lastUpdate = performance.now(), + this._startTime = this._lastUpdate, + this._paused = !1, + this._purgeDirectorInNextLoop = !1, + this._winSizeInPoints = cc.size(0, 0), + this._scheduler = new h, + cc.ActionManager ? (this._actionManager = new cc.ActionManager, + this._scheduler.scheduleUpdate(this._actionManager, h.PRIORITY_SYSTEM, !1)) : this._actionManager = null, + this.sharedInit(), + !0 + }, + sharedInit: function() { + this._compScheduler = new n, + this._nodeActivator = new r, + l && l.setEnabled(!0), + cc.AnimationManager ? (this._animationManager = new cc.AnimationManager, + this._scheduler.scheduleUpdate(this._animationManager, h.PRIORITY_SYSTEM, !1)) : this._animationManager = null, + cc.CollisionManager ? (this._collisionManager = new cc.CollisionManager, + this._scheduler.scheduleUpdate(this._collisionManager, h.PRIORITY_SYSTEM, !1)) : this._collisionManager = null, + cc.PhysicsManager ? (this._physicsManager = new cc.PhysicsManager, + this._scheduler.scheduleUpdate(this._physicsManager, h.PRIORITY_SYSTEM, !1)) : this._physicsManager = null, + cc.Physics3DManager, + this._physics3DManager = null, + cc._widgetManager && cc._widgetManager.init(this) + }, + calculateDeltaTime: function(t) { + t || (t = performance.now()), + this._deltaTime = t > this._lastUpdate ? (t - this._lastUpdate) / 1e3 : 0, + this._lastUpdate = t + }, + convertToGL: function(t) { + var e = a.container + , i = cc.view + , n = e.getBoundingClientRect() + , r = n.left + window.pageXOffset - e.clientLeft + , s = n.top + window.pageYOffset - e.clientTop + , o = i._devicePixelRatio * (t.x - r) + , l = i._devicePixelRatio * (s + n.height - t.y); + return i._isRotated ? cc.v2(i._viewportRect.width - l, o) : cc.v2(o, l) + }, + convertToUI: function(t) { + var e = a.container + , i = cc.view + , n = e.getBoundingClientRect() + , r = n.left + window.pageXOffset - e.clientLeft + , s = n.top + window.pageYOffset - e.clientTop + , o = cc.v2(0, 0); + return i._isRotated ? (o.x = r + t.y / i._devicePixelRatio, + o.y = s + n.height - (i._viewportRect.width - t.x) / i._devicePixelRatio) : (o.x = r + t.x * i._devicePixelRatio, + o.y = s + n.height - t.y * i._devicePixelRatio), + o + }, + end: function() { + this._purgeDirectorInNextLoop = !0 + }, + getWinSize: function() { + return cc.size(cc.winSize) + }, + getWinSizeInPixels: function() { + return cc.size(cc.winSize) + }, + pause: function() { + this._paused || (this._paused = !0) + }, + purgeCachedData: function() { + cc.assetManager.releaseAll() + }, + purgeDirector: function() { + this._scheduler.unscheduleAll(), + this._compScheduler.unscheduleAll(), + this._nodeActivator.reset(), + l && l.setEnabled(!1), + cc.isValid(this._scene) && this._scene.destroy(), + this._scene = null, + cc.renderer.clear(), + cc.assetManager.builtins.clear(), + cc.game.pause(), + cc.assetManager.releaseAll() + }, + reset: function() { + this.purgeDirector(), + l && l.setEnabled(!0), + this._actionManager && this._scheduler.scheduleUpdate(this._actionManager, cc.Scheduler.PRIORITY_SYSTEM, !1), + this._animationManager && this._scheduler.scheduleUpdate(this._animationManager, cc.Scheduler.PRIORITY_SYSTEM, !1), + this._collisionManager && this._scheduler.scheduleUpdate(this._collisionManager, cc.Scheduler.PRIORITY_SYSTEM, !1), + this._physicsManager && this._scheduler.scheduleUpdate(this._physicsManager, cc.Scheduler.PRIORITY_SYSTEM, !1), + cc.game.resume() + }, + runSceneImmediate: function(t, e, i) { + cc.assertID(t instanceof cc.Scene || t instanceof cc.SceneAsset, 1216), + t instanceof cc.SceneAsset && (t = t.scene), + t._load(); + for (var n = Object.keys(a._persistRootNodes).map((function(t) { + return a._persistRootNodes[t] + } + )), r = 0; r < n.length; r++) { + var o = n[r] + , l = t.getChildByUuid(o.uuid); + if (l) { + var h = l.getSiblingIndex(); + l._destroyImmediate(), + t.insertChild(o, h) + } else + o.parent = t + } + var c = this._scene; + cc.assetManager._releaseManager._autoRelease(c, t, a._persistRootNodes), + cc.isValid(c) && c.destroy(), + this._scene = null, + s._deferredDestroy(), + e && e(), + this.emit(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, t), + this._scene = t, + t._activate(), + cc.game.resume(), + i && i(null, t), + this.emit(cc.Director.EVENT_AFTER_SCENE_LAUNCH, t) + }, + runScene: function(t, e, i) { + cc.assertID(t, 1205), + cc.assertID(t instanceof cc.Scene || t instanceof cc.SceneAsset, 1216), + t instanceof cc.SceneAsset && (t = t.scene), + t._load(), + this.once(cc.Director.EVENT_AFTER_DRAW, (function() { + this.runSceneImmediate(t, e, i) + } + ), this) + }, + loadScene: function(t, e, i) { + if (this._loadingScene) + return cc.warnID(1208, t, this._loadingScene), + !1; + var n = cc.assetManager.bundles.find((function(e) { + return e.getSceneInfo(t) + } + )); + if (n) { + this.emit(cc.Director.EVENT_BEFORE_SCENE_LOADING, t), + this._loadingScene = t; + var r = this; + return console.time("LoadScene " + t), + n.loadScene(t, (function(n, s) { + console.timeEnd("LoadScene " + t), + r._loadingScene = "", + n ? (n = "Failed to load scene: " + n, + cc.error(n), + e && e(n)) : r.runSceneImmediate(s, i, e) + } + )), + !0 + } + return cc.errorID(1209, t), + !1 + }, + preloadScene: function(t, e, i) { + var n = cc.assetManager.bundles.find((function(e) { + return e.getSceneInfo(t) + } + )); + if (!n) + return cc.errorID(1209, t), + null; + n.preloadScene(t, null, e, i) + }, + resume: function() { + this._paused && (this._lastUpdate = performance.now(), + this._lastUpdate || cc.logID(1200), + this._paused = !1, + this._deltaTime = 0) + }, + setDepthTest: function(t) { + cc.Camera.main && (cc.Camera.main.depth = !!t) + }, + setClearColor: function(t) { + cc.Camera.main && (cc.Camera.main.backgroundColor = t) + }, + getRunningScene: function() { + return this._scene + }, + getScene: function() { + return this._scene + }, + getAnimationInterval: function() { + return 1e3 / a.getFrameRate() + }, + setAnimationInterval: function(t) { + a.setFrameRate(Math.round(1e3 / t)) + }, + getDeltaTime: function() { + return this._deltaTime + }, + getTotalTime: function() { + return performance.now() - this._startTime + }, + getTotalFrames: function() { + return this._totalFrames + }, + isPaused: function() { + return this._paused + }, + getScheduler: function() { + return this._scheduler + }, + setScheduler: function(t) { + this._scheduler !== t && (this._scheduler = t) + }, + getActionManager: function() { + return this._actionManager + }, + setActionManager: function(t) { + this._actionManager !== t && (this._actionManager && this._scheduler.unscheduleUpdate(this._actionManager), + this._actionManager = t, + this._scheduler.scheduleUpdate(this._actionManager, cc.Scheduler.PRIORITY_SYSTEM, !1)) + }, + getAnimationManager: function() { + return this._animationManager + }, + getCollisionManager: function() { + return this._collisionManager + }, + getPhysicsManager: function() { + return this._physicsManager + }, + getPhysics3DManager: function() { + return this._physics3DManager + }, + startAnimation: function() { + cc.game.resume() + }, + stopAnimation: function() { + cc.game.pause() + }, + _resetDeltaTime: function() { + this._lastUpdate = performance.now(), + this._deltaTime = 0 + }, + mainLoop: function(t) { + this._purgeDirectorInNextLoop ? (this._purgeDirectorInNextLoop = !1, + this.purgeDirector()) : (this.calculateDeltaTime(t), + this._paused || (this.emit(cc.Director.EVENT_BEFORE_UPDATE), + this._compScheduler.startPhase(), + this._compScheduler.updatePhase(this._deltaTime), + this._scheduler.update(this._deltaTime), + this._compScheduler.lateUpdatePhase(this._deltaTime), + this.emit(cc.Director.EVENT_AFTER_UPDATE), + s._deferredDestroy()), + this.emit(cc.Director.EVENT_BEFORE_DRAW), + o.render(this._scene, this._deltaTime), + this.emit(cc.Director.EVENT_AFTER_DRAW), + l.frameUpdateListeners(), + this._totalFrames++) + }, + __fastOn: function(t, e, i) { + this.on(t, e, i) + }, + __fastOff: function(t, e, i) { + this.off(t, e, i) + } + }, + cc.js.addon(cc.Director.prototype, i.prototype), + cc.Director.EVENT_PROJECTION_CHANGED = "director_projection_changed", + cc.Director.EVENT_BEFORE_SCENE_LOADING = "director_before_scene_loading", + cc.Director.EVENT_BEFORE_SCENE_LAUNCH = "director_before_scene_launch", + cc.Director.EVENT_AFTER_SCENE_LAUNCH = "director_after_scene_launch", + cc.Director.EVENT_BEFORE_UPDATE = "director_before_update", + cc.Director.EVENT_AFTER_UPDATE = "director_after_update", + cc.Director.EVENT_BEFORE_VISIT = "director_before_draw", + cc.Director.EVENT_AFTER_VISIT = "director_before_draw", + cc.Director.EVENT_BEFORE_DRAW = "director_before_draw", + cc.Director.EVENT_AFTER_DRAW = "director_after_draw", + cc.Director.PROJECTION_2D = 0, + cc.Director.PROJECTION_3D = 1, + cc.Director.PROJECTION_CUSTOM = 3, + cc.Director.PROJECTION_DEFAULT = cc.Director.PROJECTION_2D, + cc.Director.EVENT_BEFORE_PHYSICS = "director_before_physics", + cc.Director.EVENT_AFTER_PHYSICS = "director_after_physics", + cc.director = new cc.Director, + e.exports = cc.director + } + ), { + "./CCGame": 28, + "./CCScheduler": 32, + "./component-scheduler": 99, + "./event-manager": 138, + "./event/event-target": 140, + "./node-activator": 166, + "./platform/CCObject": 199, + "./renderer": 224 + }], + 28: [(function(t, e) { + "use strict"; + var i = t("./event/event-target"); + t("../audio/CCAudioEngine"); + var n = t("./CCDebug") + , r = t("./renderer/index.js") + , s = t("../core/renderer/utils/dynamic-atlas/manager") + , a = { + EVENT_HIDE: "game_on_hide", + EVENT_SHOW: "game_on_show", + EVENT_RESTART: "game_on_restart", + EVENT_GAME_INITED: "game_inited", + EVENT_ENGINE_INITED: "engine_inited", + EVENT_RENDERER_INITED: "engine_inited", + RENDER_TYPE_CANVAS: 0, + RENDER_TYPE_WEBGL: 1, + RENDER_TYPE_OPENGL: 2, + _persistRootNodes: {}, + _paused: !0, + _configLoaded: !1, + _isCloning: !1, + _prepared: !1, + _rendererInitialized: !1, + _renderContext: null, + _intervalId: null, + _lastTime: null, + _frameTime: null, + frame: null, + container: null, + canvas: null, + renderType: -1, + config: null, + onStart: null, + setFrameRate: function(t) { + this.config.frameRate = t, + this._intervalId && window.cancelAnimFrame(this._intervalId), + this._intervalId = 0, + this._paused = !0, + this._setAnimFrame(), + this._runMainLoop() + }, + getFrameRate: function() { + return this.config.frameRate + }, + step: function() { + cc.director.mainLoop() + }, + pause: function() { + this._paused || (this._paused = !0, + cc.audioEngine && cc.audioEngine._break(), + this._intervalId && window.cancelAnimFrame(this._intervalId), + this._intervalId = 0) + }, + resume: function() { + this._paused && (this._paused = !1, + cc.audioEngine && cc.audioEngine._restore(), + cc.director._resetDeltaTime(), + this._runMainLoop()) + }, + isPaused: function() { + return this._paused + }, + restart: function() { + cc.director.once(cc.Director.EVENT_AFTER_DRAW, (function() { + for (var t in a._persistRootNodes) + a.removePersistRootNode(a._persistRootNodes[t]); + cc.director.getScene().destroy(), + cc.Object._deferredDestroy(), + cc.audioEngine && cc.audioEngine.uncacheAll(), + cc.director.reset(), + a.pause(), + cc.assetManager.builtins.init((function() { + a.onStart(), + a.emit(a.EVENT_RESTART) + } + )) + } + )) + }, + end: function() { + close() + }, + _initEngine: function() { + this._rendererInitialized || (this._initRenderer(), + this._initEvents(), + this.emit(this.EVENT_ENGINE_INITED)) + }, + _loadPreviewScript: function(t) { + t() + }, + _prepareFinished: function(t) { + var e = this; + this._initEngine(), + this._setAnimFrame(), + cc.assetManager.builtins.init((function() { + console.log("Cocos Creator v" + cc.ENGINE_VERSION), + e._prepared = !0, + e._runMainLoop(), + e.emit(e.EVENT_GAME_INITED), + t && t() + } + )) + }, + eventTargetOn: i.prototype.on, + eventTargetOnce: i.prototype.once, + on: function(t, e, i, n) { + this._prepared && t === this.EVENT_ENGINE_INITED || !this._paused && t === this.EVENT_GAME_INITED ? e.call(i) : this.eventTargetOn(t, e, i, n) + }, + once: function(t, e, i) { + this._prepared && t === this.EVENT_ENGINE_INITED || !this._paused && t === this.EVENT_GAME_INITED ? e.call(i) : this.eventTargetOnce(t, e, i) + }, + prepare: function(t) { + var e = this; + this._prepared ? t && t() : this._loadPreviewScript((function() { + e._prepareFinished(t) + } + )) + }, + run: function(t, e) { + this._initConfig(t), + this.onStart = e, + this.prepare(a.onStart && a.onStart.bind(a)) + }, + addPersistRootNode: function(t) { + if (cc.Node.isNode(t) && t.uuid) { + var e = t.uuid; + if (!this._persistRootNodes[e]) { + var i = cc.director._scene; + if (cc.isValid(i)) + if (t.parent) { + if (!(t.parent instanceof cc.Scene)) + return void cc.warnID(3801); + if (t.parent !== i) + return void cc.warnID(3802) + } else + t.parent = i; + this._persistRootNodes[e] = t, + t._persistNode = !0, + cc.assetManager._releaseManager._addPersistNodeRef(t) + } + } else + cc.warnID(3800) + }, + removePersistRootNode: function(t) { + var e = t.uuid || ""; + t === this._persistRootNodes[e] && (delete this._persistRootNodes[e], + t._persistNode = !1, + cc.assetManager._releaseManager._removePersistNodeRef(t)) + }, + isPersistRootNode: function(t) { + return t._persistNode + }, + _setAnimFrame: function() { + this._lastTime = performance.now(); + var t = a.config.frameRate; + this._frameTime = 1e3 / t, + cc.director._maxParticleDeltaTime = this._frameTime / 1e3 * 2; + var e = window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame; + 60 !== t && 30 !== t ? (window.requestAnimFrame = e ? this._stTimeWithRAF : this._stTime, + window.cancelAnimFrame = this._ctTime) : (window.requestAnimFrame = e || this._stTime, + window.cancelAnimFrame = window.cancelAnimationFrame || window.cancelRequestAnimationFrame || window.msCancelRequestAnimationFrame || window.mozCancelRequestAnimationFrame || window.oCancelRequestAnimationFrame || window.webkitCancelRequestAnimationFrame || window.msCancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.oCancelAnimationFrame || this._ctTime) + }, + _stTimeWithRAF: function(t) { + var e = performance.now() + , i = Math.max(0, a._frameTime - (e - a._lastTime)) + , n = window.setTimeout((function() { + window.requestAnimationFrame(t) + } + ), i); + return a._lastTime = e + i, + n + }, + _stTime: function(t) { + var e = performance.now() + , i = Math.max(0, a._frameTime - (e - a._lastTime)) + , n = window.setTimeout((function() { + t() + } + ), i); + return a._lastTime = e + i, + n + }, + _ctTime: function(t) { + window.clearTimeout(t) + }, + _runMainLoop: function() { + if (this._prepared) { + var t, e = this, i = e.config, r = cc.director, s = !0, a = i.frameRate; + n.setDisplayStats(i.showFPS), + t = function(i) { + if (!e._paused) { + if (e._intervalId = window.requestAnimFrame(t), + 30 === a && (s = !s)) + return; + r.mainLoop(i) + } + } + , + e._intervalId = window.requestAnimFrame(t), + e._paused = !1 + } + }, + _initConfig: function(t) { + "number" != typeof t.debugMode && (t.debugMode = 0), + t.exposeClassName = !!t.exposeClassName, + "number" != typeof t.frameRate && (t.frameRate = 60); + var e = t.renderMode; + ("number" != typeof e || e > 2 || e < 0) && (t.renderMode = 0), + "boolean" != typeof t.registerSystemEvent && (t.registerSystemEvent = !0), + t.showFPS = 1 !== e && !!t.showFPS, + this.collisionMatrix = t.collisionMatrix || [], + this.groupList = t.groupList || [], + n._resetDebugSetting(t.debugMode), + this.config = t, + this._configLoaded = !0 + }, + _determineRenderType: function() { + var t = this.config + , e = parseInt(t.renderMode) || 0; + this.renderType = this.RENDER_TYPE_CANVAS; + var i = !1; + if (0 === e ? cc.sys.capabilities.opengl ? (this.renderType = this.RENDER_TYPE_WEBGL, + i = !0) : cc.sys.capabilities.canvas && (this.renderType = this.RENDER_TYPE_CANVAS, + i = !0) : 1 === e && cc.sys.capabilities.canvas ? (this.renderType = this.RENDER_TYPE_CANVAS, + i = !0) : 2 === e && cc.sys.capabilities.opengl && (this.renderType = this.RENDER_TYPE_WEBGL, + i = !0), + !i) + throw new Error(n.getError(3820, e)) + }, + _initRenderer: function() { + if (!this._rendererInitialized) { + var t, e, i, n, a = this.config.id, o = a instanceof HTMLElement ? a : document.querySelector(a) || document.querySelector("#" + a); + if ("CANVAS" === o.tagName ? (t = o.width, + e = o.height, + this.canvas = i = o, + this.container = n = document.createElement("DIV"), + i.parentNode && i.parentNode.insertBefore(n, i)) : ("DIV" !== o.tagName && cc.warnID(3819), + t = o.clientWidth, + e = o.clientHeight, + this.canvas = i = document.createElement("CANVAS"), + this.container = n = document.createElement("DIV"), + o.appendChild(n)), + n.setAttribute("id", "Cocos2dGameContainer"), + n.appendChild(i), + this.frame = n.parentNode === document.body ? document.documentElement : n.parentNode, + (function(t) { + (" " + t.className + " ").indexOf(" gameCanvas ") > -1 || (t.className && (t.className += " "), + t.className += "gameCanvas") + } + )(i), + i.setAttribute("width", t || 480), + i.setAttribute("height", e || 320), + i.setAttribute("tabindex", 99), + this._determineRenderType(), + this.renderType === this.RENDER_TYPE_WEBGL) { + var l = { + stencil: !0, + antialias: cc.macro.ENABLE_WEBGL_ANTIALIAS, + alpha: cc.macro.ENABLE_TRANSPARENT_CANVAS + }; + r.initWebGL(i, l), + this._renderContext = r.device._gl, + !cc.macro.CLEANUP_IMAGE_CACHE && s && (s.enabled = !0) + } + this._renderContext || (this.renderType = this.RENDER_TYPE_CANVAS, + r.initCanvas(i), + this._renderContext = r.device._ctx), + this.canvas.oncontextmenu = function() { + if (!cc._isContextMenuEnable) + return !1 + } + , + this._rendererInitialized = !0 + } + }, + _initEvents: function() { + var t, e = window; + this.config.registerSystemEvent && cc.internal.inputManager.registerSystemEvent(this.canvas), + void 0 !== document.hidden ? t = "hidden" : void 0 !== document.mozHidden ? t = "mozHidden" : void 0 !== document.msHidden ? t = "msHidden" : void 0 !== document.webkitHidden && (t = "webkitHidden"); + var i = !1; + function n() { + i || (i = !0, + a.emit(a.EVENT_HIDE)) + } + function r(t, e, n, r, s) { + i && (i = !1, + a.emit(a.EVENT_SHOW, t, e, n, r, s)) + } + if (t) + for (var s = ["visibilitychange", "mozvisibilitychange", "msvisibilitychange", "webkitvisibilitychange", "qbrowserVisibilityChange"], o = 0; o < s.length; o++) + document.addEventListener(s[o], (function(e) { + var i = document[t]; + (i = i || e.hidden) ? n() : r() + } + )); + else + e.addEventListener("blur", n), + e.addEventListener("focus", r); + navigator.userAgent.indexOf("MicroMessenger") > -1 && (e.onfocus = r), + "onpageshow"in window && "onpagehide"in window && (e.addEventListener("pagehide", n), + e.addEventListener("pageshow", r), + document.addEventListener("pagehide", n), + document.addEventListener("pageshow", r)), + this.on(a.EVENT_HIDE, (function() { + a.pause() + } + )), + this.on(a.EVENT_SHOW, (function() { + a.resume() + } + )) + } + }; + i.call(a), + cc.js.addon(a, i.prototype), + cc.game = e.exports = a + } + ), { + "../audio/CCAudioEngine": 21, + "../core/renderer/utils/dynamic-atlas/manager": 227, + "./CCDebug": 26, + "./event/event-target": 140, + "./renderer/index.js": 224 + }], + 29: [(function(t, e) { + "use strict"; + var i = t("./value-types") + , n = t("./utils/base-node") + , r = t("./utils/prefab-helper") + , s = t("./utils/trans-pool").NodeMemPool + , a = t("./utils/affine-transform") + , o = t("./event-manager") + , l = t("./platform/CCMacro") + , h = t("./platform/js") + , c = (t("./event/event"), + t("./event/event-target")) + , u = t("./renderer/render-flow") + , _ = cc.Object.Flags.Destroying + , f = Math.PI / 180 + , d = !!cc.ActionManager + , p = function() {} + , m = new i.Vec3 + , y = new i.Quat + , v = new i.Vec3 + , g = new i.Vec3 + , A = new i.Quat + , x = new i.Quat + , b = new i.Vec3 + , C = new i.Vec3 + , T = new i.Vec3 + , S = new i.Vec3 + , w = new i.Vec3 + , E = new i.Quat + , M = new i.Quat + , D = new i.Vec3 + , B = new i.Quat + , I = new i.Vec3 + , P = new i.Quat + , R = new i.Vec3 + , O = new i.Vec3 + , L = new i.Quat + , F = new i.Quat + , V = (new i.Quat, + cc.mat4()) + , N = new i.Vec3 + , k = new Array(16); + k.length = 0; + var G = cc.Enum({ + DEBUG: 31 + }) + , U = cc.Enum({ + POSITION: 1, + SCALE: 2, + ROTATION: 4, + SKEW: 8, + TRS: 7, + RS: 6, + TRSS: 15, + PHYSICS_POSITION: 16, + PHYSICS_SCALE: 32, + PHYSICS_ROTATION: 64, + PHYSICS_TRS: 112, + PHYSICS_RS: 96, + ALL_POSITION: 17, + ALL_SCALE: 34, + ALL_ROTATION: 68, + ALL_TRS: 119, + ALL: 65535 + }) + , z = cc.Enum({ + TOUCH_START: "touchstart", + TOUCH_MOVE: "touchmove", + TOUCH_END: "touchend", + TOUCH_CANCEL: "touchcancel", + MOUSE_DOWN: "mousedown", + MOUSE_MOVE: "mousemove", + MOUSE_ENTER: "mouseenter", + MOUSE_LEAVE: "mouseleave", + MOUSE_UP: "mouseup", + MOUSE_WHEEL: "mousewheel", + POSITION_CHANGED: "position-changed", + ROTATION_CHANGED: "rotation-changed", + SCALE_CHANGED: "scale-changed", + SIZE_CHANGED: "size-changed", + ANCHOR_CHANGED: "anchor-changed", + COLOR_CHANGED: "color-changed", + CHILD_ADDED: "child-added", + CHILD_REMOVED: "child-removed", + CHILD_REORDER: "child-reorder", + GROUP_CHANGED: "group-changed", + SIBLING_ORDER_CHANGED: "sibling-order-changed" + }) + , H = [z.TOUCH_START, z.TOUCH_MOVE, z.TOUCH_END, z.TOUCH_CANCEL] + , W = [z.MOUSE_DOWN, z.MOUSE_ENTER, z.MOUSE_MOVE, z.MOUSE_LEAVE, z.MOUSE_UP, z.MOUSE_WHEEL] + , j = !0 + , X = function(t) { + if (0 !== t) { + j && cc.warn("`cc.Node.skewX/Y` is deprecated since v2.2.1, please use 3D node instead.", ""), + j = !1 + } + } + , Y = null + , q = function(t, e) { + var i = t.getLocation() + , n = this.owner; + return !!n._hitTest(i, this) && (e.type = z.TOUCH_START, + e.touch = t, + e.bubbles = !0, + n.dispatchEvent(e), + !0) + } + , J = function(t, e) { + var i = this.owner; + e.type = z.TOUCH_MOVE, + e.touch = t, + e.bubbles = !0, + i.dispatchEvent(e) + } + , Z = function(t, e) { + var i = t.getLocation() + , n = this.owner; + n._hitTest(i, this) ? e.type = z.TOUCH_END : e.type = z.TOUCH_CANCEL, + e.touch = t, + e.bubbles = !0, + n.dispatchEvent(e) + } + , K = function(t, e) { + t.getLocation(); + var i = this.owner; + e.type = z.TOUCH_CANCEL, + e.touch = t, + e.bubbles = !0, + i.dispatchEvent(e) + } + , Q = function(t) { + var e = t.getLocation() + , i = this.owner; + i._hitTest(e, this) && (t.type = z.MOUSE_DOWN, + t.bubbles = !0, + i.dispatchEvent(t)) + } + , $ = function(t) { + var e = t.getLocation() + , i = this.owner; + if (i._hitTest(e, this)) + this._previousIn || (Y && Y._mouseListener && (t.type = z.MOUSE_LEAVE, + Y.dispatchEvent(t), + Y._mouseListener._previousIn = !1), + Y = this.owner, + t.type = z.MOUSE_ENTER, + i.dispatchEvent(t), + this._previousIn = !0), + t.type = z.MOUSE_MOVE, + t.bubbles = !0, + i.dispatchEvent(t); + else { + if (!this._previousIn) + return; + t.type = z.MOUSE_LEAVE, + i.dispatchEvent(t), + this._previousIn = !1, + Y = null + } + t.stopPropagation() + } + , tt = function(t) { + var e = t.getLocation() + , i = this.owner; + i._hitTest(e, this) && (t.type = z.MOUSE_UP, + t.bubbles = !0, + i.dispatchEvent(t), + t.stopPropagation()) + } + , et = function(t) { + var e = t.getLocation() + , i = this.owner; + i._hitTest(e, this) && (t.type = z.MOUSE_WHEEL, + t.bubbles = !0, + i.dispatchEvent(t), + t.stopPropagation()) + }; + function it(t, e) { + if (e) { + for (var i = 0, n = null, r = t; r && cc.Node.isNode(r); r = r._parent, + ++i) + if (r.getComponent(e)) { + var s = { + index: i, + node: r + }; + n ? n.push(s) : n = [s] + } + return n + } + return null + } + function nt(t, e) { + if (!(t._objFlags & _)) { + if (t._bubblingListeners) + for (var i = 0, n = e.length; i < n; ++i) + if (t._bubblingListeners.hasEventListener(e[i])) + return !0; + if (t._capturingListeners) + for (var r = 0, s = e.length; r < s; ++r) + if (t._capturingListeners.hasEventListener(e[r])) + return !0; + return !1 + } + return !0 + } + function rt(t, e) { + var i, n; + for (e.target = t, + k.length = 0, + t._getCapturingTargets(e.type, k), + e.eventPhase = 1, + n = k.length - 1; n >= 0; --n) + if ((i = k[n])._capturingListeners && (e.currentTarget = i, + i._capturingListeners.emit(e.type, e, k), + e._propagationStopped)) + return void (k.length = 0); + if (k.length = 0, + e.eventPhase = 2, + e.currentTarget = t, + t._capturingListeners && t._capturingListeners.emit(e.type, e), + !e._propagationImmediateStopped && t._bubblingListeners && t._bubblingListeners.emit(e.type, e), + !e._propagationStopped && e.bubbles) + for (t._getBubblingTargets(e.type, k), + e.eventPhase = 3, + n = 0; n < k.length; ++n) + if ((i = k[n])._bubblingListeners && (e.currentTarget = i, + i._bubblingListeners.emit(e.type, e), + e._propagationStopped)) + return void (k.length = 0); + k.length = 0 + } + function st(t) { + var e = t.groupIndex; + return 0 === e && t.parent && (e = st(t.parent)), + e + } + function at(t) { + var e = st(t); + t._cullingMask = 1 << e; + for (var i = 0; i < t._children.length; i++) + at(t._children[i]) + } + function ot() { + if (this._localMatDirty & U.TRSS) { + var t = this._matrix + , e = t.m; + if (i.Trs.toMat4(t, this._trs), + this._skewX || this._skewY) { + var n = e[0] + , r = e[1] + , s = e[4] + , a = e[5] + , o = Math.tan(this._skewX * f) + , l = Math.tan(this._skewY * f); + o === 1 / 0 && (o = 99999999), + l === 1 / 0 && (l = 99999999), + e[0] = n + s * l, + e[1] = r + a * l, + e[4] = s + n * o, + e[5] = a + r * o + } + this._localMatDirty &= ~U.TRSS, + this._worldMatDirty = !0 + } + } + function lt() { + var t = this._localMatDirty; + if (t & U.TRSS) { + var e = this._matrix.m + , i = this._trs; + if (t & (U.RS | U.SKEW)) { + var n = -this._eulerAngles.z + , r = this._skewX || this._skewY + , s = i[7] + , a = i[8]; + if (n || r) { + var o = 1 + , l = 0 + , h = 0 + , c = 1; + if (n) { + var u = n * f; + h = Math.sin(u), + o = c = Math.cos(u), + l = -h + } + if (e[0] = o *= s, + e[1] = l *= s, + e[4] = h *= a, + e[5] = c *= a, + r) { + var _ = e[0] + , d = e[1] + , p = e[4] + , m = e[5] + , y = Math.tan(this._skewX * f) + , v = Math.tan(this._skewY * f); + y === 1 / 0 && (y = 99999999), + v === 1 / 0 && (v = 99999999), + e[0] = _ + p * v, + e[1] = d + m * v, + e[4] = p + _ * y, + e[5] = m + d * y + } + } else + e[0] = s, + e[1] = 0, + e[4] = 0, + e[5] = a + } + e[12] = i[0], + e[13] = i[1], + this._localMatDirty &= ~U.TRSS, + this._worldMatDirty = !0 + } + } + function ht() { + if (this._localMatDirty & U.TRSS && this._updateLocalMatrix(), + this._parent) { + var t = this._parent._worldMatrix; + i.Mat4.mul(this._worldMatrix, t, this._matrix) + } else + i.Mat4.copy(this._worldMatrix, this._matrix); + this._worldMatDirty = !1 + } + function ct() { + this._localMatDirty & U.TRSS && this._updateLocalMatrix(); + var t = this._parent; + t ? this._mulMat(this._worldMatrix, t._worldMatrix, this._matrix) : i.Mat4.copy(this._worldMatrix, this._matrix), + this._worldMatDirty = !1 + } + function ut(t, e, i) { + var n = e.m + , r = i.m + , s = t.m + , a = n[0] + , o = n[1] + , l = n[4] + , h = n[5] + , c = n[12] + , u = n[13] + , _ = r[0] + , f = r[1] + , d = r[4] + , p = r[5] + , m = r[12] + , y = r[13]; + 0 !== o || 0 !== l ? (s[0] = _ * a + f * l, + s[1] = _ * o + f * h, + s[4] = d * a + p * l, + s[5] = d * o + p * h, + s[12] = a * m + l * y + c, + s[13] = o * m + h * y + u) : (s[0] = _ * a, + s[1] = f * h, + s[4] = d * a, + s[5] = p * h, + s[12] = a * m + c, + s[13] = h * y + u) + } + var _t = i.Mat4.mul + , ft = { + name: "cc.Node", + extends: n, + properties: { + _opacity: 255, + _color: cc.Color.WHITE, + _contentSize: cc.Size, + _anchorPoint: cc.v2(.5, .5), + _position: void 0, + _scale: void 0, + _trs: null, + _eulerAngles: cc.Vec3, + _skewX: 0, + _skewY: 0, + _zIndex: { + default: void 0, + type: cc.Integer + }, + _localZOrder: { + default: 0, + serializable: !1 + }, + _is3DNode: !1, + _groupIndex: { + default: 0, + formerlySerializedAs: "groupIndex" + }, + groupIndex: { + get: function() { + return this._groupIndex + }, + set: function(t) { + this._groupIndex = t, + at(this), + this.emit(z.GROUP_CHANGED, this) + } + }, + group: { + get: function() { + return cc.game.groupList[this.groupIndex] || "" + }, + set: function(t) { + this.groupIndex = cc.game.groupList.indexOf(t) + } + }, + x: { + get: function() { + return this._trs[0] + }, + set: function(t) { + var e = this._trs; + t !== e[0] && (e[0] = t, + this.setLocalDirty(U.ALL_POSITION), + 1 & this._eventMask && this.emit(z.POSITION_CHANGED)) + } + }, + y: { + get: function() { + return this._trs[1] + }, + set: function(t) { + var e = this._trs; + t !== e[1] && (e[1] = t, + this.setLocalDirty(U.ALL_POSITION), + 1 & this._eventMask && this.emit(z.POSITION_CHANGED)) + } + }, + z: { + get: function() { + return this._trs[2] + }, + set: function(t) { + var e = this._trs; + t !== e[2] && (e[2] = t, + this.setLocalDirty(U.ALL_POSITION), + this._renderFlag |= u.FLAG_WORLD_TRANSFORM, + 1 & this._eventMask && this.emit(z.POSITION_CHANGED)) + } + }, + rotation: { + get: function() { + return -this.angle + }, + set: function(t) { + this.angle = -t + } + }, + angle: { + get: function() { + return this._eulerAngles.z + }, + set: function(t) { + i.Vec3.set(this._eulerAngles, 0, 0, t), + i.Trs.fromAngleZ(this._trs, t), + this.setLocalDirty(U.ALL_ROTATION), + 4 & this._eventMask && this.emit(z.ROTATION_CHANGED) + } + }, + rotationX: { + get: function() { + return this._eulerAngles.x + }, + set: function(t) { + this._eulerAngles.x !== t && (this._eulerAngles.x = t, + this._eulerAngles.x === this._eulerAngles.y ? i.Trs.fromAngleZ(this._trs, -t) : i.Trs.fromEulerNumber(this._trs, t, this._eulerAngles.y, 0), + this.setLocalDirty(U.ALL_ROTATION), + 4 & this._eventMask && this.emit(z.ROTATION_CHANGED)) + } + }, + rotationY: { + get: function() { + return this._eulerAngles.y + }, + set: function(t) { + this._eulerAngles.y !== t && (this._eulerAngles.y = t, + this._eulerAngles.x === this._eulerAngles.y ? i.Trs.fromAngleZ(this._trs, -t) : i.Trs.fromEulerNumber(this._trs, this._eulerAngles.x, t, 0), + this.setLocalDirty(U.ALL_ROTATION), + 4 & this._eventMask && this.emit(z.ROTATION_CHANGED)) + } + }, + eulerAngles: { + get: function() { + return i.Trs.toEuler(this._eulerAngles, this._trs) + }, + set: function(t) { + i.Trs.fromEuler(this._trs, t), + this.setLocalDirty(U.ALL_ROTATION), + this._renderFlag |= u.FLAG_TRANSFORM, + 4 & this._eventMask && this.emit(z.ROTATION_CHANGED) + } + }, + quat: { + get: function() { + var t = this._trs; + return new i.Quat(t[3],t[4],t[5],t[6]) + }, + set: function(t) { + this.setRotation(t) + } + }, + scale: { + get: function() { + return this._trs[7] + }, + set: function(t) { + this.setScale(t) + } + }, + scaleX: { + get: function() { + return this._trs[7] + }, + set: function(t) { + this._trs[7] !== t && (this._trs[7] = t, + this.setLocalDirty(U.ALL_SCALE), + 2 & this._eventMask && this.emit(z.SCALE_CHANGED)) + } + }, + scaleY: { + get: function() { + return this._trs[8] + }, + set: function(t) { + this._trs[8] !== t && (this._trs[8] = t, + this.setLocalDirty(U.ALL_SCALE), + 2 & this._eventMask && this.emit(z.SCALE_CHANGED)) + } + }, + scaleZ: { + get: function() { + return this._trs[9] + }, + set: function(t) { + this._trs[9] !== t && (this._trs[9] = t, + this.setLocalDirty(U.ALL_SCALE), + this._renderFlag |= u.FLAG_TRANSFORM, + 2 & this._eventMask && this.emit(z.SCALE_CHANGED)) + } + }, + skewX: { + get: function() { + return this._skewX + }, + set: function(t) { + X(t), + this._skewX = t, + this.setLocalDirty(U.SKEW) + } + }, + skewY: { + get: function() { + return this._skewY + }, + set: function(t) { + X(t), + this._skewY = t, + this.setLocalDirty(U.SKEW) + } + }, + opacity: { + get: function() { + return this._opacity + }, + set: function(t) { + t = cc.misc.clampf(t, 0, 255), + this._opacity !== t && (this._opacity = t, + this._renderFlag |= u.FLAG_OPACITY_COLOR) + }, + range: [0, 255] + }, + color: { + get: function() { + return this._color.clone() + }, + set: function(t) { + this._color.equals(t) || (this._color.set(t), + this._renderFlag |= u.FLAG_COLOR, + 32 & this._eventMask && this.emit(z.COLOR_CHANGED, t)) + } + }, + anchorX: { + get: function() { + return this._anchorPoint.x + }, + set: function(t) { + var e = this._anchorPoint; + e.x !== t && (e.x = t, + 16 & this._eventMask && this.emit(z.ANCHOR_CHANGED)) + } + }, + anchorY: { + get: function() { + return this._anchorPoint.y + }, + set: function(t) { + var e = this._anchorPoint; + e.y !== t && (e.y = t, + 16 & this._eventMask && this.emit(z.ANCHOR_CHANGED)) + } + }, + width: { + get: function() { + return this._contentSize.width + }, + set: function(t) { + t !== this._contentSize.width && (this._contentSize.width = t, + 8 & this._eventMask && this.emit(z.SIZE_CHANGED)) + } + }, + height: { + get: function() { + return this._contentSize.height + }, + set: function(t) { + t !== this._contentSize.height && (this._contentSize.height = t, + 8 & this._eventMask && this.emit(z.SIZE_CHANGED)) + } + }, + zIndex: { + get: function() { + return this._localZOrder >> 16 + }, + set: function(t) { + t > l.MAX_ZINDEX ? (cc.warnID(1636), + t = l.MAX_ZINDEX) : t < l.MIN_ZINDEX && (cc.warnID(1637), + t = l.MIN_ZINDEX), + this.zIndex !== t && (this._localZOrder = 65535 & this._localZOrder | t << 16, + this.emit(z.SIBLING_ORDER_CHANGED), + this._onSiblingIndexChanged()) + } + }, + is3DNode: { + get: function() { + return this._is3DNode + }, + set: function(t) { + this._is3DNode = t, + this._update3DFunction() + } + }, + up: { + get: function() { + return i.Vec3.transformQuat(I, i.Vec3.UP, this.getWorldRotation(P)).clone() + } + }, + right: { + get: function() { + return i.Vec3.transformQuat(I, i.Vec3.RIGHT, this.getWorldRotation(P)).clone() + } + }, + forward: { + get: function() { + return i.Vec3.transformQuat(I, i.Vec3.FORWARD, this.getWorldRotation(P)).clone() + } + } + }, + ctor: function() { + this._reorderChildDirty = !1, + this._widget = null, + this._renderComponent = null, + this._capturingListeners = null, + this._bubblingListeners = null, + this._touchListener = null, + this._mouseListener = null, + this._initDataFromPool(), + this._eventMask = 0, + this._cullingMask = 1, + this._childArrivalOrder = 1, + this._renderFlag = u.FLAG_TRANSFORM | u.FLAG_OPACITY_COLOR + }, + statics: { + EventType: z, + _LocalDirtyFlag: U, + isNode: function(t) { + return t instanceof dt && (t.constructor === dt || !(t instanceof cc.Scene)) + }, + BuiltinGroupIndex: G + }, + _onSiblingIndexChanged: function() { + this._parent && this._parent._delaySort() + }, + _onPreDestroy: function() { + this._onPreDestroyBase(), + d && cc.director.getActionManager().removeAllActionsFromTarget(this), + Y === this && (Y = null), + this._bubblingListeners && this._bubblingListeners.clear(), + this._capturingListeners && this._capturingListeners.clear(), + (this._touchListener || this._mouseListener) && (o.removeListeners(this), + this._touchListener && (this._touchListener.owner = null, + this._touchListener.mask = null, + this._touchListener = null), + this._mouseListener && (this._mouseListener.owner = null, + this._mouseListener.mask = null, + this._mouseListener = null)), + this._backDataIntoPool(), + this._reorderChildDirty && cc.director.__fastOff(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this) + }, + _onPostActivated: function(t) { + var e = d ? cc.director.getActionManager() : null; + t ? (this._renderFlag |= u.FLAG_WORLD_TRANSFORM, + e && e.resumeTarget(this), + o.resumeTarget(this), + this._checkListenerMask()) : (e && e.pauseTarget(this), + o.pauseTarget(this)) + }, + _onHierarchyChanged: function(t) { + this._updateOrderOfArrival(), + at(this), + this._parent && this._parent._delaySort(), + this._renderFlag |= u.FLAG_WORLD_TRANSFORM, + this._onHierarchyChangedBase(t), + cc._widgetManager && (cc._widgetManager._nodesOrderDirty = !0), + t && this._activeInHierarchy && this._checkListenerMask() + }, + _update3DFunction: function() { + this._is3DNode ? (this._updateLocalMatrix = ot, + this._calculWorldMatrix = ht, + this._mulMat = _t) : (this._updateLocalMatrix = lt, + this._calculWorldMatrix = ct, + this._mulMat = ut), + this._renderComponent && this._renderComponent._on3DNodeChanged && this._renderComponent._on3DNodeChanged(), + this._renderFlag |= u.FLAG_TRANSFORM, + this._localMatDirty = U.ALL + }, + _initDataFromPool: function() { + this._spaceInfo || (this._spaceInfo = s.pop()); + var t = this._spaceInfo; + this._matrix = cc.mat4(t.localMat), + i.Mat4.identity(this._matrix), + this._worldMatrix = cc.mat4(t.worldMat), + i.Mat4.identity(this._worldMatrix), + this._localMatDirty = U.ALL, + this._worldMatDirty = !0; + var e = this._trs = t.trs; + e[0] = 0, + e[1] = 0, + e[2] = 0, + e[3] = 0, + e[4] = 0, + e[5] = 0, + e[6] = 1, + e[7] = 1, + e[8] = 1, + e[9] = 1 + }, + _backDataIntoPool: function() { + s.push(this._spaceInfo), + this._matrix = null, + this._worldMatrix = null, + this._trs = null, + this._spaceInfo = null + }, + _toEuler: function() { + if (this.is3DNode) + i.Trs.toEuler(this._eulerAngles, this._trs); + else { + var t = Math.asin(this._trs[5]) / f * 2; + i.Vec3.set(this._eulerAngles, 0, 0, t) + } + }, + _fromEuler: function() { + this.is3DNode ? i.Trs.fromEuler(this._trs, this._eulerAngles) : i.Trs.fromAngleZ(this._trs, this._eulerAngles.z) + }, + _initProperties: function() { + this._is3DNode && this._update3DFunction(); + var t = this._trs; + if (t) { + var e = t; + t = this._trs = this._spaceInfo.trs, + 11 === e.length ? t.set(e.subarray(1)) : t.set(e) + } else + t = this._trs = this._spaceInfo.trs; + this._fromEuler() + }, + _onBatchCreated: function(t) { + this._initProperties(), + this._cullingMask = 1 << st(this), + this._activeInHierarchy || (d && cc.director.getActionManager().pauseTarget(this), + o.pauseTarget(this)); + for (var e = this._children, i = 0, n = e.length; i < n; i++) { + var s = e[i]; + if (!t) { + var a = s._prefab; + a && a.sync && a.root === s && r.syncWithPrefab(s), + s._updateOrderOfArrival() + } + s._onBatchCreated(t) + } + e.length > 0 && (this._renderFlag |= u.FLAG_CHILDREN) + }, + _checkListenerMask: function() { + if (this._touchListener) { + var t = this._touchListener.mask = it(this, cc.Mask); + this._mouseListener && (this._mouseListener.mask = t) + } else + this._mouseListener && (this._mouseListener.mask = it(this, cc.Mask)) + }, + _checknSetupSysEvent: function(t) { + var e = !1 + , i = !1; + return -1 !== H.indexOf(t) ? (this._touchListener || (this._touchListener = cc.EventListener.create({ + event: cc.EventListener.TOUCH_ONE_BY_ONE, + swallowTouches: !0, + owner: this, + mask: it(this, cc.Mask), + onTouchBegan: q, + onTouchMoved: J, + onTouchEnded: Z, + onTouchCancelled: K + }), + o.addListener(this._touchListener, this), + e = !0), + i = !0) : -1 !== W.indexOf(t) && (this._mouseListener || (this._mouseListener = cc.EventListener.create({ + event: cc.EventListener.MOUSE, + _previousIn: !1, + owner: this, + mask: it(this, cc.Mask), + onMouseDown: Q, + onMouseMove: $, + onMouseUp: tt, + onMouseScroll: et + }), + o.addListener(this._mouseListener, this), + e = !0), + i = !0), + e && !this._activeInHierarchy && cc.director.getScheduler().schedule((function() { + this._activeInHierarchy || o.pauseTarget(this) + } + ), this, 0, 0, 0, !1), + i + }, + on: function(t, e, i, n) { + if (this._checknSetupSysEvent(t)) + return this._onDispatch(t, e, i, n); + switch (t) { + case z.POSITION_CHANGED: + this._eventMask |= 1; + break; + case z.SCALE_CHANGED: + this._eventMask |= 2; + break; + case z.ROTATION_CHANGED: + this._eventMask |= 4; + break; + case z.SIZE_CHANGED: + this._eventMask |= 8; + break; + case z.ANCHOR_CHANGED: + this._eventMask |= 16; + break; + case z.COLOR_CHANGED: + this._eventMask |= 32 + } + return this._bubblingListeners || (this._bubblingListeners = new c), + this._bubblingListeners.on(t, e, i) + }, + once: function(t, e, i, n) { + var r = this + , s = null; + (s = this._checknSetupSysEvent(t) && n ? this._capturingListeners = this._capturingListeners || new c : this._bubblingListeners = this._bubblingListeners || new c).once(t, e, i), + s.once(t, (function() { + r.off(t, e, i) + } + ), void 0) + }, + _onDispatch: function(t, e, i, n) { + if ("boolean" == typeof i ? (n = i, + i = void 0) : n = !!n, + e) { + var r = null; + return (r = n ? this._capturingListeners = this._capturingListeners || new c : this._bubblingListeners = this._bubblingListeners || new c).hasEventListener(t, e, i) || (r.on(t, e, i), + i && i.__eventTargets && i.__eventTargets.push(this)), + e + } + cc.errorID(6800) + }, + off: function(t, e, i, n) { + var r = -1 !== H.indexOf(t) + , s = !r && -1 !== W.indexOf(t); + if (r || s) + this._offDispatch(t, e, i, n), + r ? this._touchListener && !nt(this, H) && (o.removeListener(this._touchListener), + this._touchListener = null) : s && this._mouseListener && !nt(this, W) && (o.removeListener(this._mouseListener), + this._mouseListener = null); + else if (this._bubblingListeners && (this._bubblingListeners.off(t, e, i), + !this._bubblingListeners.hasEventListener(t))) + switch (t) { + case z.POSITION_CHANGED: + this._eventMask &= -2; + break; + case z.SCALE_CHANGED: + this._eventMask &= -3; + break; + case z.ROTATION_CHANGED: + this._eventMask &= -5; + break; + case z.SIZE_CHANGED: + this._eventMask &= -9; + break; + case z.ANCHOR_CHANGED: + this._eventMask &= -17; + break; + case z.COLOR_CHANGED: + this._eventMask &= -33 + } + }, + _offDispatch: function(t, e, i, n) { + if ("boolean" == typeof i ? (n = i, + i = void 0) : n = !!n, + e) { + var r = n ? this._capturingListeners : this._bubblingListeners; + r && (r.off(t, e, i), + i && i.__eventTargets && h.array.fastRemove(i.__eventTargets, this)) + } else + this._capturingListeners && this._capturingListeners.removeAll(t), + this._bubblingListeners && this._bubblingListeners.removeAll(t) + }, + targetOff: function(t) { + var e = this._bubblingListeners; + e && (e.targetOff(t), + 1 & this._eventMask && !e.hasEventListener(z.POSITION_CHANGED) && (this._eventMask &= -2), + 2 & this._eventMask && !e.hasEventListener(z.SCALE_CHANGED) && (this._eventMask &= -3), + 4 & this._eventMask && !e.hasEventListener(z.ROTATION_CHANGED) && (this._eventMask &= -5), + 8 & this._eventMask && !e.hasEventListener(z.SIZE_CHANGED) && (this._eventMask &= -9), + 16 & this._eventMask && !e.hasEventListener(z.ANCHOR_CHANGED) && (this._eventMask &= -17), + 32 & this._eventMask && !e.hasEventListener(z.COLOR_CHANGED) && (this._eventMask &= -33)), + this._capturingListeners && this._capturingListeners.targetOff(t), + t && t.__eventTargets && h.array.fastRemove(t.__eventTargets, this), + this._touchListener && !nt(this, H) && (o.removeListener(this._touchListener), + this._touchListener = null), + this._mouseListener && !nt(this, W) && (o.removeListener(this._mouseListener), + this._mouseListener = null) + }, + hasEventListener: function(t) { + var e = !1; + return this._bubblingListeners && (e = this._bubblingListeners.hasEventListener(t)), + !e && this._capturingListeners && (e = this._capturingListeners.hasEventListener(t)), + e + }, + emit: function(t, e, i, n, r, s) { + this._bubblingListeners && this._bubblingListeners.emit(t, e, i, n, r, s) + }, + dispatchEvent: function(t) { + rt(this, t), + k.length = 0 + }, + pauseSystemEvents: function(t) { + o.pauseTarget(this, t) + }, + resumeSystemEvents: function(t) { + o.resumeTarget(this, t) + }, + _hitTest: function(t, e) { + var n = this._contentSize.width + , r = this._contentSize.height + , s = R + , a = O + , o = cc.Camera.findCamera(this); + if (o ? o.getScreenToWorldPoint(t, s) : s.set(t), + this._updateWorldMatrix(), + !i.Mat4.invert(V, this._worldMatrix)) + return !1; + i.Vec2.transformMat4(a, s, V), + a.x += this._anchorPoint.x * n, + a.y += this._anchorPoint.y * r; + var l = !1; + if (a.x >= 0 && a.y >= 0 && a.x <= n && a.y <= r && (l = !0, + e && e.mask)) + for (var h = e.mask, c = this, u = h ? h.length : 0, _ = 0, f = 0; c && f < u; ++_, + c = c.parent) { + var d = h[f]; + if (_ === d.index) { + if (c !== d.node) { + h.length = f; + break + } + var p = c.getComponent(cc.Mask); + if (p && p._enabled && !p._hitTest(s)) { + l = !1; + break + } + f++ + } else if (_ > d.index) { + h.length = f; + break + } + } + return l + }, + _getCapturingTargets: function(t, e) { + for (var i = this.parent; i; ) + i._capturingListeners && i._capturingListeners.hasEventListener(t) && e.push(i), + i = i.parent + }, + _getBubblingTargets: function(t, e) { + for (var i = this.parent; i; ) + i._bubblingListeners && i._bubblingListeners.hasEventListener(t) && e.push(i), + i = i.parent + }, + runAction: d ? function(t) { + if (this.active) { + cc.assertID(t, 1618); + var e = cc.director.getActionManager(); + return e._suppressDeprecation || (e._suppressDeprecation = !0, + cc.warnID(1639)), + e.addAction(t, this, !1), + t + } + } + : p, + pauseAllActions: d ? function() { + cc.director.getActionManager().pauseTarget(this) + } + : p, + resumeAllActions: d ? function() { + cc.director.getActionManager().resumeTarget(this) + } + : p, + stopAllActions: d ? function() { + cc.director.getActionManager().removeAllActionsFromTarget(this) + } + : p, + stopAction: d ? function(t) { + cc.director.getActionManager().removeAction(t) + } + : p, + stopActionByTag: d ? function(t) { + t !== cc.Action.TAG_INVALID ? cc.director.getActionManager().removeActionByTag(t, this) : cc.logID(1612) + } + : p, + getActionByTag: d ? function(t) { + return t === cc.Action.TAG_INVALID ? (cc.logID(1613), + null) : cc.director.getActionManager().getActionByTag(t, this) + } + : function() { + return null + } + , + getNumberOfRunningActions: d ? function() { + return cc.director.getActionManager().getNumberOfRunningActionsInTarget(this) + } + : function() { + return 0 + } + , + getPosition: function(t) { + return t = t || new i.Vec3, + i.Trs.toPosition(t, this._trs) + }, + setPosition: function(t, e, i) { + var n; + void 0 === e ? (n = t.x, + e = t.y, + i = t.z) : n = t; + var r = this._trs; + void 0 === i && (i = r[2]), + (r[0] !== n || r[1] !== e || r[2] !== i) && (r[0] = n, + r[1] = e, + r[2] = i, + this.setLocalDirty(U.ALL_POSITION), + this._renderFlag |= u.FLAG_WORLD_TRANSFORM, + 1 & this._eventMask && this.emit(z.POSITION_CHANGED)) + }, + getScale: function(t) { + return void 0 !== t ? i.Trs.toScale(t, this._trs) : (cc.errorID(1400, "cc.Node.getScale", "cc.Node.scale or cc.Node.getScale(cc.Vec3)"), + this._trs[7]) + }, + setScale: function(t, e, i) { + var n; + t && "number" != typeof t ? (n = t.x, + e = t.y, + i = t.z) : void 0 !== t && void 0 === e ? (n = t, + e = t, + i = t) : n = t; + var r = this._trs; + void 0 === i && (i = r[9]), + r[7] === n && r[8] === e && r[9] === i || (r[7] = n, + r[8] = e, + r[9] = i, + this.setLocalDirty(U.ALL_SCALE), + this._renderFlag |= u.FLAG_TRANSFORM, + 2 & this._eventMask && this.emit(z.SCALE_CHANGED)) + }, + getRotation: function(t) { + return t instanceof i.Quat ? i.Trs.toRotation(t, this._trs) : -this.angle + }, + setRotation: function(t, e, i, n) { + if ("number" == typeof t && void 0 === e) + this.angle = -t; + else { + var r = t; + void 0 === e && (r = t.x, + e = t.y, + i = t.z, + n = t.w); + var s = this._trs; + s[3] === r && s[4] === e && s[5] === i && s[6] === n || (s[3] = r, + s[4] = e, + s[5] = i, + s[6] = n, + this.setLocalDirty(U.ALL_ROTATION), + 4 & this._eventMask && this.emit(z.ROTATION_CHANGED)) + } + }, + getContentSize: function() { + return cc.size(this._contentSize.width, this._contentSize.height) + }, + setContentSize: function(t, e) { + var i = this._contentSize; + if (void 0 === e) { + if (t.width === i.width && t.height === i.height) + return; + i.width = t.width, + i.height = t.height + } else { + if (t === i.width && e === i.height) + return; + i.width = t, + i.height = e + } + 8 & this._eventMask && this.emit(z.SIZE_CHANGED) + }, + getAnchorPoint: function() { + return cc.v2(this._anchorPoint) + }, + setAnchorPoint: function(t, e) { + var i = this._anchorPoint; + if (void 0 === e) { + if (t.x === i.x && t.y === i.y) + return; + i.x = t.x, + i.y = t.y + } else { + if (t === i.x && e === i.y) + return; + i.x = t, + i.y = e + } + this.setLocalDirty(U.ALL_POSITION), + 16 & this._eventMask && this.emit(z.ANCHOR_CHANGED) + }, + _invTransformPoint: function(t, e) { + this._parent ? this._parent._invTransformPoint(t, e) : i.Vec3.copy(t, e); + var n = this._trs; + return i.Trs.toPosition(v, n), + i.Vec3.sub(t, t, v), + i.Trs.toRotation(A, n), + i.Quat.conjugate(x, A), + i.Vec3.transformQuat(t, t, x), + i.Trs.toScale(v, n), + i.Vec3.inverseSafe(g, v), + i.Vec3.mul(t, t, g), + t + }, + getWorldPosition: function(t) { + i.Trs.toPosition(t, this._trs); + for (var e, n = this._parent; n; ) + e = n._trs, + i.Trs.toScale(m, e), + i.Vec3.mul(t, t, m), + i.Trs.toRotation(y, e), + i.Vec3.transformQuat(t, t, y), + i.Trs.toPosition(m, e), + i.Vec3.add(t, t, m), + n = n._parent; + return t + }, + setWorldPosition: function(t) { + var e = this._trs; + this._parent ? this._parent._invTransformPoint(b, t) : i.Vec3.copy(b, t), + i.Trs.fromPosition(e, b), + this.setLocalDirty(U.ALL_POSITION), + 1 & this._eventMask && this.emit(z.POSITION_CHANGED) + }, + getWorldRotation: function(t) { + i.Trs.toRotation(L, this._trs), + i.Quat.copy(t, L); + for (var e = this._parent; e; ) + i.Trs.toRotation(L, e._trs), + i.Quat.mul(t, L, t), + e = e._parent; + return t + }, + setWorldRotation: function(t) { + this._parent ? (this._parent.getWorldRotation(F), + i.Quat.conjugate(F, F), + i.Quat.mul(F, F, t)) : i.Quat.copy(F, t), + i.Trs.fromRotation(this._trs, F), + this.setLocalDirty(U.ALL_ROTATION) + }, + getWorldScale: function(t) { + i.Trs.toScale(C, this._trs), + i.Vec3.copy(t, C); + for (var e = this._parent; e; ) + i.Trs.toScale(C, e._trs), + i.Vec3.mul(t, t, C), + e = e._parent; + return t + }, + setWorldScale: function(t) { + this._parent ? (this._parent.getWorldScale(T), + i.Vec3.div(T, t, T)) : i.Vec3.copy(T, t), + i.Trs.fromScale(this._trs, T), + this.setLocalDirty(U.ALL_SCALE) + }, + getWorldRT: function(t) { + var e = S + , n = E + , r = this._trs; + i.Trs.toPosition(e, r), + i.Trs.toRotation(n, r); + for (var s = this._parent; s; ) + r = s._trs, + i.Trs.toScale(w, r), + i.Vec3.mul(e, e, w), + i.Trs.toRotation(M, r), + i.Vec3.transformQuat(e, e, M), + i.Trs.toPosition(w, r), + i.Vec3.add(e, e, w), + i.Quat.mul(n, M, n), + s = s._parent; + return i.Mat4.fromRT(t, n, e), + t + }, + lookAt: function(t, e) { + this.getWorldPosition(D), + i.Vec3.sub(D, D, t), + i.Vec3.normalize(D, D), + i.Quat.fromViewUp(B, D, e), + this.setWorldRotation(B) + }, + _updateLocalMatrix: lt, + _calculWorldMatrix: function() { + this._localMatDirty & U.TRSS && this._updateLocalMatrix(); + var t = this._parent; + t ? this._mulMat(this._worldMatrix, t._worldMatrix, this._matrix) : i.Mat4.copy(this._worldMatrix, this._matrix), + this._worldMatDirty = !1 + }, + _mulMat: ut, + _updateWorldMatrix: function() { + if (this._parent && this._parent._updateWorldMatrix(), + this._worldMatDirty) { + this._calculWorldMatrix(); + for (var t = this._children, e = 0, i = t.length; e < i; e++) + t[e]._worldMatDirty = !0 + } + }, + setLocalDirty: function(t) { + this._localMatDirty |= t, + this._worldMatDirty = !0, + t === U.ALL_POSITION || t === U.POSITION ? this._renderFlag |= u.FLAG_WORLD_TRANSFORM : this._renderFlag |= u.FLAG_TRANSFORM + }, + setWorldDirty: function() { + this._worldMatDirty = !0 + }, + getLocalMatrix: function(t) { + return this._updateLocalMatrix(), + i.Mat4.copy(t, this._matrix) + }, + getWorldMatrix: function(t) { + return this._updateWorldMatrix(), + i.Mat4.copy(t, this._worldMatrix) + }, + convertToNodeSpaceAR: function(t, e) { + return this._updateWorldMatrix(), + i.Mat4.invert(V, this._worldMatrix), + t instanceof cc.Vec2 ? (e = e || new cc.Vec2, + i.Vec2.transformMat4(e, t, V)) : (e = e || new cc.Vec3, + i.Vec3.transformMat4(e, t, V)) + }, + convertToWorldSpaceAR: function(t, e) { + return this._updateWorldMatrix(), + t instanceof cc.Vec2 ? (e = e || new cc.Vec2, + i.Vec2.transformMat4(e, t, this._worldMatrix)) : (e = e || new cc.Vec3, + i.Vec3.transformMat4(e, t, this._worldMatrix)) + }, + convertToNodeSpace: function(t) { + this._updateWorldMatrix(), + i.Mat4.invert(V, this._worldMatrix); + var e = new cc.Vec2; + return i.Vec2.transformMat4(e, t, V), + e.x += this._anchorPoint.x * this._contentSize.width, + e.y += this._anchorPoint.y * this._contentSize.height, + e + }, + convertToWorldSpace: function(t) { + this._updateWorldMatrix(); + var e = new cc.Vec2(t.x - this._anchorPoint.x * this._contentSize.width,t.y - this._anchorPoint.y * this._contentSize.height); + return i.Vec2.transformMat4(e, e, this._worldMatrix) + }, + getNodeToParentTransform: function(t) { + t || (t = a.identity()), + this._updateLocalMatrix(); + var e = this._contentSize; + return N.x = -this._anchorPoint.x * e.width, + N.y = -this._anchorPoint.y * e.height, + i.Mat4.copy(V, this._matrix), + i.Mat4.transform(V, V, N), + a.fromMat4(t, V) + }, + getNodeToParentTransformAR: function(t) { + return t || (t = a.identity()), + this._updateLocalMatrix(), + a.fromMat4(t, this._matrix) + }, + getNodeToWorldTransform: function(t) { + t || (t = a.identity()), + this._updateWorldMatrix(); + var e = this._contentSize; + return N.x = -this._anchorPoint.x * e.width, + N.y = -this._anchorPoint.y * e.height, + i.Mat4.copy(V, this._worldMatrix), + i.Mat4.transform(V, V, N), + a.fromMat4(t, V) + }, + getNodeToWorldTransformAR: function(t) { + return t || (t = a.identity()), + this._updateWorldMatrix(), + a.fromMat4(t, this._worldMatrix) + }, + getParentToNodeTransform: function(t) { + return t || (t = a.identity()), + this._updateLocalMatrix(), + i.Mat4.invert(V, this._matrix), + a.fromMat4(t, V) + }, + getWorldToNodeTransform: function(t) { + return t || (t = a.identity()), + this._updateWorldMatrix(), + i.Mat4.invert(V, this._worldMatrix), + a.fromMat4(t, V) + }, + convertTouchToNodeSpace: function(t) { + return this.convertToNodeSpace(t.getLocation()) + }, + convertTouchToNodeSpaceAR: function(t) { + return this.convertToNodeSpaceAR(t.getLocation()) + }, + getBoundingBox: function() { + this._updateLocalMatrix(); + var t = this._contentSize.width + , e = this._contentSize.height + , i = cc.rect(-this._anchorPoint.x * t, -this._anchorPoint.y * e, t, e); + return i.transformMat4(i, this._matrix) + }, + getBoundingBoxToWorld: function() { + return this._parent ? (this._parent._updateWorldMatrix(), + this._getBoundingBoxTo()) : this.getBoundingBox() + }, + _getBoundingBoxTo: function() { + var t = this._contentSize.width + , e = this._contentSize.height + , i = cc.rect(-this._anchorPoint.x * t, -this._anchorPoint.y * e, t, e); + if (this._calculWorldMatrix(), + i.transformMat4(i, this._worldMatrix), + !this._children) + return i; + for (var n = this._children, r = 0; r < n.length; r++) { + var s = n[r]; + if (s && s.active) { + var a = s._getBoundingBoxTo(); + a && i.union(i, a) + } + } + return i + }, + _updateOrderOfArrival: function() { + var t = this._parent ? ++this._parent._childArrivalOrder : 0; + this._localZOrder = 4294901760 & this._localZOrder | t, + this.emit(z.SIBLING_ORDER_CHANGED) + }, + addChild: function(t, e, i) { + cc.assertID(t, 1606), + cc.assertID(null === t._parent, 1605), + t.parent = this, + void 0 !== e && (t.zIndex = e), + void 0 !== i && (t.name = i) + }, + cleanup: function() { + d && cc.director.getActionManager().removeAllActionsFromTarget(this), + o.removeListeners(this); + var t, e, i = this._children.length; + for (t = 0; t < i; ++t) + (e = this._children[t]) && e.cleanup() + }, + sortAllChildren: function() { + if (this._reorderChildDirty) { + this._reorderChildDirty = !1; + var t = this._children; + this._childArrivalOrder = 1; + for (var e = 0, i = t.length; e < i; e++) + t[e]._updateOrderOfArrival(); + if (o._setDirtyForNode(this), + t.length > 1) { + for (var n, r, s = 1, a = t.length; s < a; s++) { + n = t[s]; + for (var l = s; l > 0 && (r = t[l - 1])._localZOrder > n._localZOrder; l--) + t[l] = r; + t[l] = n + } + this.emit(z.CHILD_REORDER, this) + } + cc.director.__fastOff(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this) + } + }, + _delaySort: function() { + this._reorderChildDirty || (this._reorderChildDirty = !0, + cc.director.__fastOn(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this)) + }, + _restoreProperties: !1, + onRestore: !1 + } + , dt = cc.Class(ft) + , pt = dt.prototype; + h.getset(pt, "position", pt.getPosition, pt.setPosition, !1, !0), + cc.Node = e.exports = dt + } + ), { + "./event-manager": 138, + "./event/event": 141, + "./event/event-target": 140, + "./platform/CCMacro": 198, + "./platform/js": 214, + "./renderer/render-flow": 225, + "./utils/affine-transform": 258, + "./utils/base-node": 259, + "./utils/prefab-helper": 270, + "./utils/trans-pool": 276, + "./value-types": 282 + }], + 30: [(function(t, e) { + "use strict"; + var i = t("./CCNode") + , n = t("./renderer/render-flow") + , r = (cc.Object.Flags.HideInHierarchy, + i._LocalDirtyFlag) + , s = cc.Class({ + name: "cc.PrivateNode", + extends: i, + properties: { + x: { + get: function() { + return this._originPos.x + }, + set: function(t) { + var e = this._originPos; + t !== e.x && (e.x = t, + this._posDirty(!0)) + }, + override: !0 + }, + y: { + get: function() { + return this._originPos.y + }, + set: function(t) { + var e = this._originPos; + t !== e.y && (e.y = t, + this._posDirty(!0)) + }, + override: !0 + }, + zIndex: { + get: function() { + return cc.macro.MIN_ZINDEX + }, + set: function() {}, + override: !0 + }, + showInEditor: { + default: !1, + editorOnly: !0, + override: !0 + } + }, + ctor: function() { + this._localZOrder = cc.macro.MIN_ZINDEX << 16, + this._originPos = cc.v2() + }, + _posDirty: function(t) { + this.setLocalDirty(r.POSITION), + this._renderFlag |= n.FLAG_TRANSFORM, + !0 === t && 1 & this._eventMask && this.emit(i.EventType.POSITION_CHANGED) + }, + _updateLocalMatrix: function() { + if (this._localMatDirty) { + var t = this.parent; + t && (this._trs[0] = this._originPos.x - (t._anchorPoint.x - .5) * t._contentSize.width, + this._trs[1] = this._originPos.y - (t._anchorPoint.y - .5) * t._contentSize.height), + this._super() + } + }, + getPosition: function() { + return new cc.Vec2(this._originPos) + }, + setPosition: function(t, e) { + void 0 === e && (e = (t = t.x).y); + var i = this._originPos; + i.x === t && i.y === e || (i.x = t, + i.y = e, + this._posDirty(!0)) + }, + setParent: function(t) { + var e = this._parent; + this._super(t), + e !== t && (e && e.off(i.EventType.ANCHOR_CHANGED, this._posDirty, this), + t && t.on(i.EventType.ANCHOR_CHANGED, this._posDirty, this)) + }, + _updateOrderOfArrival: function() {} + }) + , a = s.prototype; + cc.js.getset(a, "parent", a.getParent, a.setParent), + cc.js.getset(a, "position", a.getPosition, a.setPosition), + cc.PrivateNode = e.exports = s + } + ), { + "./CCNode": 29, + "./renderer/render-flow": 225 + }], + 31: [(function(t, e) { + "use strict"; + cc.Scene = cc.Class({ + name: "cc.Scene", + extends: t("./CCNode"), + properties: { + _is3DNode: { + default: !0, + override: !0 + }, + autoReleaseAssets: !1 + }, + ctor: function() { + this._anchorPoint.x = 0, + this._anchorPoint.y = 0, + this._activeInHierarchy = !1, + this._inited = !cc.game._isCloning, + this.dependAssets = null + }, + destroy: function() { + if (cc.Object.prototype.destroy.call(this)) + for (var t = this._children, e = 0; e < t.length; ++e) + t[e].active = !1; + this._active = !1, + this._activeInHierarchy = !1 + }, + _onHierarchyChanged: function() {}, + _instantiate: null, + _load: function() { + this._inited || (this._onBatchCreated(!1), + this._inited = !0) + }, + _activate: function(t) { + t = !1 !== t, + cc.director._nodeActivator.activateNode(this, t) + } + }), + e.exports = cc.Scene + } + ), { + "./CCNode": 29 + }], + 32: [(function(t, e) { + "use strict"; + var i = t("./platform/js") + , n = new (t("./platform/id-generater"))("Scheduler") + , r = function(t, e, i, n) { + this.target = t, + this.priority = e, + this.paused = i, + this.markedForDeletion = n + } + , s = []; + r.get = function(t, e, i, n) { + var a = s.pop(); + return a ? (a.target = t, + a.priority = e, + a.paused = i, + a.markedForDeletion = n) : a = new r(t,e,i,n), + a + } + , + r.put = function(t) { + s.length < 20 && (t.target = null, + s.push(t)) + } + ; + var a = function(t, e, i, n) { + this.list = t, + this.entry = e, + this.target = i, + this.callback = n + } + , o = []; + a.get = function(t, e, i, n) { + var r = o.pop(); + return r ? (r.list = t, + r.entry = e, + r.target = i, + r.callback = n) : r = new a(t,e,i,n), + r + } + , + a.put = function(t) { + o.length < 20 && (t.list = t.entry = t.target = t.callback = null, + o.push(t)) + } + ; + var l = function(t, e, i, n, r, s) { + var a = this; + a.timers = t, + a.target = e, + a.timerIndex = i, + a.currentTimer = n, + a.currentTimerSalvaged = r, + a.paused = s + } + , h = []; + function c() { + this._lock = !1, + this._scheduler = null, + this._elapsed = -1, + this._runForever = !1, + this._useDelay = !1, + this._timesExecuted = 0, + this._repeat = 0, + this._delay = 0, + this._interval = 0, + this._target = null, + this._callback = null + } + l.get = function(t, e, i, n, r, s) { + var a = h.pop(); + return a ? (a.timers = t, + a.target = e, + a.timerIndex = i, + a.currentTimer = n, + a.currentTimerSalvaged = r, + a.paused = s) : a = new l(t,e,i,n,r,s), + a + } + , + l.put = function(t) { + h.length < 20 && (t.timers = t.target = t.currentTimer = null, + h.push(t)) + } + ; + var u = c.prototype; + u.initWithCallback = function(t, e, i, n, r, s) { + return this._lock = !1, + this._scheduler = t, + this._target = i, + this._callback = e, + this._elapsed = -1, + this._interval = n, + this._delay = s, + this._useDelay = this._delay > 0, + this._repeat = r, + this._runForever = this._repeat === cc.macro.REPEAT_FOREVER, + !0 + } + , + u.getInterval = function() { + return this._interval + } + , + u.setInterval = function(t) { + this._interval = t + } + , + u.update = function(t) { + -1 === this._elapsed ? (this._elapsed = 0, + this._timesExecuted = 0) : (this._elapsed += t, + this._runForever && !this._useDelay ? this._elapsed >= this._interval && (this.trigger(), + this._elapsed = 0) : (this._useDelay ? this._elapsed >= this._delay && (this.trigger(), + this._elapsed -= this._delay, + this._timesExecuted += 1, + this._useDelay = !1) : this._elapsed >= this._interval && (this.trigger(), + this._elapsed = 0, + this._timesExecuted += 1), + this._callback && !this._runForever && this._timesExecuted > this._repeat && this.cancel())) + } + , + u.getCallback = function() { + return this._callback + } + , + u.trigger = function() { + this._target && this._callback && (this._lock = !0, + this._callback.call(this._target, this._elapsed), + this._lock = !1) + } + , + u.cancel = function() { + this._scheduler.unschedule(this._callback, this._target) + } + ; + var _ = []; + c.get = function() { + return _.pop() || new c + } + , + c.put = function(t) { + _.length < 20 && !t._lock && (t._scheduler = t._target = t._callback = null, + _.push(t)) + } + , + cc.Scheduler = function() { + this._timeScale = 1, + this._updatesNegList = [], + this._updates0List = [], + this._updatesPosList = [], + this._hashForUpdates = i.createMap(!0), + this._hashForTimers = i.createMap(!0), + this._currentTarget = null, + this._currentTargetSalvaged = !1, + this._updateHashLocked = !1, + this._arrayForTimers = [] + } + , + cc.Scheduler.prototype = { + constructor: cc.Scheduler, + _removeHashElement: function(t) { + delete this._hashForTimers[t.target._id]; + for (var e = this._arrayForTimers, i = 0, n = e.length; i < n; i++) + if (e[i] === t) { + e.splice(i, 1); + break + } + l.put(t) + }, + _removeUpdateFromHash: function(t) { + var e = t.target._id + , i = this._hashForUpdates[e]; + if (i) { + for (var n = i.list, s = i.entry, o = 0, l = n.length; o < l; o++) + if (n[o] === s) { + n.splice(o, 1); + break + } + delete this._hashForUpdates[e], + r.put(s), + a.put(i) + } + }, + _priorityIn: function(t, e, i) { + for (var n = 0; n < t.length; n++) + if (i < t[n].priority) + return void t.splice(n, 0, e); + t.push(e) + }, + _appendIn: function(t, e) { + t.push(e) + }, + enableForTarget: function(t) { + t._id || (t.__instanceId ? cc.warnID(1513) : t._id = n.getNewId()) + }, + setTimeScale: function(t) { + this._timeScale = t + }, + getTimeScale: function() { + return this._timeScale + }, + update: function(t) { + var e, i, n, r; + for (this._updateHashLocked = !0, + 1 !== this._timeScale && (t *= this._timeScale), + e = 0, + n = (i = this._updatesNegList).length; e < n; e++) + (r = i[e]).paused || r.markedForDeletion || r.target.update(t); + for (e = 0, + n = (i = this._updates0List).length; e < n; e++) + (r = i[e]).paused || r.markedForDeletion || r.target.update(t); + for (e = 0, + n = (i = this._updatesPosList).length; e < n; e++) + (r = i[e]).paused || r.markedForDeletion || r.target.update(t); + var s, a = this._arrayForTimers; + for (e = 0; e < a.length; e++) { + if (s = a[e], + this._currentTarget = s, + this._currentTargetSalvaged = !1, + !s.paused) + for (s.timerIndex = 0; s.timerIndex < s.timers.length; ++s.timerIndex) + s.currentTimer = s.timers[s.timerIndex], + s.currentTimerSalvaged = !1, + s.currentTimer.update(t), + s.currentTimer = null; + this._currentTargetSalvaged && 0 === this._currentTarget.timers.length && (this._removeHashElement(this._currentTarget), + --e) + } + for (e = 0, + i = this._updatesNegList; e < i.length; ) + (r = i[e]).markedForDeletion ? this._removeUpdateFromHash(r) : e++; + for (e = 0, + i = this._updates0List; e < i.length; ) + (r = i[e]).markedForDeletion ? this._removeUpdateFromHash(r) : e++; + for (e = 0, + i = this._updatesPosList; e < i.length; ) + (r = i[e]).markedForDeletion ? this._removeUpdateFromHash(r) : e++; + this._updateHashLocked = !1, + this._currentTarget = null + }, + schedule: function(t, e, i, n, r, s) { + if ("function" != typeof t) { + var a = t; + t = e, + e = a + } + 4 !== arguments.length && 5 !== arguments.length || (s = !!n, + n = cc.macro.REPEAT_FOREVER, + r = 0), + cc.assertID(e, 1502); + var o = e._id; + o || (e.__instanceId ? (cc.warnID(1513), + o = e._id = e.__instanceId) : cc.errorID(1510)); + var h, u, _ = this._hashForTimers[o]; + if (_ ? _.paused !== s && cc.warnID(1511) : (_ = l.get(null, e, 0, null, null, s), + this._arrayForTimers.push(_), + this._hashForTimers[o] = _), + null == _.timers) + _.timers = []; + else + for (u = 0; u < _.timers.length; ++u) + if ((h = _.timers[u]) && t === h._callback) + return cc.logID(1507, h.getInterval(), i), + void (h._interval = i); + (h = c.get()).initWithCallback(this, t, e, i, n, r), + _.timers.push(h), + this._currentTarget === _ && this._currentTargetSalvaged && (this._currentTargetSalvaged = !1) + }, + scheduleUpdate: function(t, e, i) { + var n = t._id; + n || (t.__instanceId ? (cc.warnID(1513), + n = t._id = t.__instanceId) : cc.errorID(1510)); + var s = this._hashForUpdates[n]; + if (s && s.entry) { + if (s.entry.priority === e) + return s.entry.markedForDeletion = !1, + void (s.entry.paused = i); + if (this._updateHashLocked) + return cc.logID(1506), + s.entry.markedForDeletion = !1, + void (s.entry.paused = i); + this.unscheduleUpdate(t) + } + var o, l = r.get(t, e, i, !1); + 0 === e ? (o = this._updates0List, + this._appendIn(o, l)) : (o = e < 0 ? this._updatesNegList : this._updatesPosList, + this._priorityIn(o, l, e)), + this._hashForUpdates[n] = a.get(o, l, t, null) + }, + unschedule: function(t, e) { + if (e && t) { + var i = e._id; + i || (e.__instanceId ? (cc.warnID(1513), + i = e._id = e.__instanceId) : cc.errorID(1510)); + var n = this._hashForTimers[i]; + if (n) + for (var r = n.timers, s = 0, a = r.length; s < a; s++) { + var o = r[s]; + if (t === o._callback) + return o !== n.currentTimer || n.currentTimerSalvaged || (n.currentTimerSalvaged = !0), + r.splice(s, 1), + c.put(o), + n.timerIndex >= s && n.timerIndex--, + void (0 === r.length && (this._currentTarget === n ? this._currentTargetSalvaged = !0 : this._removeHashElement(n))) + } + } + }, + unscheduleUpdate: function(t) { + if (t) { + var e = t._id; + e || (t.__instanceId ? (cc.warnID(1513), + e = t._id = t.__instanceId) : cc.errorID(1510)); + var i = this._hashForUpdates[e]; + i && (this._updateHashLocked ? i.entry.markedForDeletion = !0 : this._removeUpdateFromHash(i.entry)) + } + }, + unscheduleAllForTarget: function(t) { + if (t) { + var e = t._id; + e || (t.__instanceId ? (cc.warnID(1513), + e = t._id = t.__instanceId) : cc.errorID(1510)); + var i = this._hashForTimers[e]; + if (i) { + var n = i.timers; + n.indexOf(i.currentTimer) > -1 && !i.currentTimerSalvaged && (i.currentTimerSalvaged = !0); + for (var r = 0, s = n.length; r < s; r++) + c.put(n[r]); + n.length = 0, + this._currentTarget === i ? this._currentTargetSalvaged = !0 : this._removeHashElement(i) + } + this.unscheduleUpdate(t) + } + }, + unscheduleAll: function() { + this.unscheduleAllWithMinPriority(cc.Scheduler.PRIORITY_SYSTEM) + }, + unscheduleAllWithMinPriority: function(t) { + var e, i, n, r = this._arrayForTimers; + for (e = r.length - 1; e >= 0; e--) + i = r[e], + this.unscheduleAllForTarget(i.target); + var s = 0; + if (t < 0) + for (e = 0; e < this._updatesNegList.length; ) + s = this._updatesNegList.length, + (n = this._updatesNegList[e]) && n.priority >= t && this.unscheduleUpdate(n.target), + s == this._updatesNegList.length && e++; + if (t <= 0) + for (e = 0; e < this._updates0List.length; ) + s = this._updates0List.length, + (n = this._updates0List[e]) && this.unscheduleUpdate(n.target), + s == this._updates0List.length && e++; + for (e = 0; e < this._updatesPosList.length; ) + s = this._updatesPosList.length, + (n = this._updatesPosList[e]) && n.priority >= t && this.unscheduleUpdate(n.target), + s == this._updatesPosList.length && e++ + }, + isScheduled: function(t, e) { + cc.assertID(t, 1508), + cc.assertID(e, 1509); + var i = e._id; + i || (e.__instanceId ? (cc.warnID(1513), + i = e._id = e.__instanceId) : cc.errorID(1510)); + var n = this._hashForTimers[i]; + if (!n) + return !1; + if (null == n.timers) + return !1; + for (var r = n.timers, s = 0; s < r.length; ++s) + if (t === r[s]._callback) + return !0; + return !1 + }, + pauseAllTargets: function() { + return this.pauseAllTargetsWithMinPriority(cc.Scheduler.PRIORITY_SYSTEM) + }, + pauseAllTargetsWithMinPriority: function(t) { + var e, i, n, r, s = [], a = this._arrayForTimers; + for (i = 0, + n = a.length; i < n; i++) + (e = a[i]) && (e.paused = !0, + s.push(e.target)); + if (t < 0) + for (i = 0; i < this._updatesNegList.length; i++) + (r = this._updatesNegList[i]) && r.priority >= t && (r.paused = !0, + s.push(r.target)); + if (t <= 0) + for (i = 0; i < this._updates0List.length; i++) + (r = this._updates0List[i]) && (r.paused = !0, + s.push(r.target)); + for (i = 0; i < this._updatesPosList.length; i++) + (r = this._updatesPosList[i]) && r.priority >= t && (r.paused = !0, + s.push(r.target)); + return s + }, + resumeTargets: function(t) { + if (t) + for (var e = 0; e < t.length; e++) + this.resumeTarget(t[e]) + }, + pauseTarget: function(t) { + cc.assertID(t, 1503); + var e = t._id; + e || (t.__instanceId ? (cc.warnID(1513), + e = t._id = t.__instanceId) : cc.errorID(1510)); + var i = this._hashForTimers[e]; + i && (i.paused = !0); + var n = this._hashForUpdates[e]; + n && (n.entry.paused = !0) + }, + resumeTarget: function(t) { + cc.assertID(t, 1504); + var e = t._id; + e || (t.__instanceId ? (cc.warnID(1513), + e = t._id = t.__instanceId) : cc.errorID(1510)); + var i = this._hashForTimers[e]; + i && (i.paused = !1); + var n = this._hashForUpdates[e]; + n && (n.entry.paused = !1) + }, + isTargetPaused: function(t) { + cc.assertID(t, 1505); + var e = t._id; + e || (t.__instanceId ? (cc.warnID(1513), + e = t._id = t.__instanceId) : cc.errorID(1510)); + var i = this._hashForTimers[e]; + if (i) + return i.paused; + var n = this._hashForUpdates[e]; + return !!n && n.entry.paused + } + }, + cc.Scheduler.PRIORITY_SYSTEM = 1 << 31, + cc.Scheduler.PRIORITY_NON_SYSTEM = cc.Scheduler.PRIORITY_SYSTEM + 1, + e.exports = cc.Scheduler + } + ), { + "./platform/id-generater": 210, + "./platform/js": 214 + }], + 33: [(function(t, e) { + "use strict"; + var i = t("./preprocess") + , n = t("./fetch") + , r = t("./cache") + , s = t("./helper") + , a = t("./releaseManager") + , o = t("./depend-util") + , l = t("./load") + , h = t("./pipeline") + , c = t("./task") + , u = t("./request-item") + , _ = t("./downloader") + , f = t("./parser") + , d = t("./pack-manager") + , p = t("./bundle") + , m = t("./builtins") + , y = t("./factory") + , v = t("./urlTransformer") + , g = v.parse + , A = v.combine + , x = t("./utilities") + , b = x.parseParameters + , C = x.asyncify + , T = t("./shared") + , S = T.assets + , w = T.files + , E = T.parsed + , M = T.pipeline + , D = T.transformPipeline + , B = T.fetchPipeline + , I = T.RequestType + , P = T.bundles + , R = T.BuiltinBundleName; + function O() { + this._preprocessPipe = i, + this._fetchPipe = n, + this._loadPipe = l, + this.pipeline = M.append(i).append(l), + this.fetchPipeline = B.append(i).append(n), + this.transformPipeline = D.append(g).append(A), + this.bundles = P, + this.assets = S, + this._files = w, + this._parsed = E, + this.generalImportBase = "", + this.generalNativeBase = "", + this.dependUtil = o, + this._releaseManager = a, + this.cacheAsset = !0, + this.force = !1, + this.utils = s, + this.downloader = _, + this.parser = f, + this.builtins = m, + this.packManager = d, + this.factory = y, + this.cacheManager = null, + this.presets = { + default: { + priority: 0 + }, + preload: { + maxConcurrency: 2, + maxRequestsPerFrame: 2, + priority: -1 + }, + scene: { + maxConcurrency: 8, + maxRequestsPerFrame: 8, + priority: 1 + }, + bundle: { + maxConcurrency: 8, + maxRequestsPerFrame: 8, + priority: 2 + }, + remote: { + maxRetryCount: 4 + }, + script: { + maxConcurrency: 1024, + maxRequestsPerFrame: 1024, + priority: 2 + } + } + } + O.Pipeline = h, + O.Task = c, + O.Cache = r, + O.RequestItem = u, + O.Bundle = p, + O.BuiltinBundleName = R, + O.prototype = { + constructor: O, + get main() { + return P.get(R.MAIN) + }, + get resources() { + return P.get(R.RESOURCES) + }, + get internal() { + return P.get(R.INTERNAL) + }, + init: function(t) { + t = t || Object.create(null), + this._files.clear(), + this._parsed.clear(), + this._releaseManager.init(), + this.assets.clear(), + this.bundles.clear(), + this.packManager.init(), + this.downloader.init(t.bundleVers, t.server), + this.parser.init(), + this.dependUtil.init(), + this.generalImportBase = t.importBase, + this.generalNativeBase = t.nativeBase + }, + getBundle: function(t) { + return P.get(t) + }, + removeBundle: function(t) { + t._destroy(), + P.remove(t.name) + }, + loadAny: function(t, e, i, n) { + var r = b(e, i, n); + e = r.options, + i = r.onProgress, + n = r.onComplete, + e.preset = e.preset || "default", + t = Array.isArray(t) ? t.concat() : t; + var s = new c({ + input: t, + onProgress: i, + onComplete: C(n), + options: e + }); + M.async(s) + }, + preloadAny: function(t, e, i, n) { + var r = b(e, i, n); + e = r.options, + i = r.onProgress, + n = r.onComplete, + e.preset = e.preset || "preload", + t = Array.isArray(t) ? t.concat() : t; + var s = new c({ + input: t, + onProgress: i, + onComplete: C(n), + options: e + }); + B.async(s) + }, + postLoadNative: function(t, e, i) { + if (!(t instanceof cc.Asset)) + throw new Error("input is not asset"); + var n = b(e, void 0, i); + if (e = n.options, + i = n.onComplete, + !t._native || t._nativeAsset) + return C(i)(null); + var r = o.getNativeDep(t._uuid); + if (r) { + if (!P.has(r.bundle)) { + var s = P.find((function(e) { + return e.getAssetInfo(t._uuid) + } + )); + s && (r.bundle = s.name) + } + this.loadAny(r, e, (function(e, n) { + e ? cc.error(e.message, e.stack) : t.isValid && !t._nativeAsset && (t._nativeAsset = n), + i && i(e) + } + )) + } + }, + loadRemote: function(t, e, i) { + var n = b(e, void 0, i); + if (e = n.options, + i = n.onComplete, + this.assets.has(t)) + return C(i)(null, this.assets.get(t)); + e.__isNative__ = !0, + e.preset = e.preset || "remote", + this.loadAny({ + url: t + }, e, null, (function(n, r) { + n ? (cc.error(n.message, n.stack), + i && i(n, null)) : y.create(t, r, e.ext || cc.path.extname(t), e, (function(t, e) { + i && i(t, e) + } + )) + } + )) + }, + loadScript: function(t, e, i) { + var n = b(e, void 0, i); + e = n.options, + i = n.onComplete, + e.__requestType__ = I.URL, + e.preset = e.preset || "script", + this.loadAny(t, e, i) + }, + loadBundle: function(t, e, i) { + var n = b(e, void 0, i) + , r = (e = n.options, + i = n.onComplete, + cc.path.basename(t)); + if (this.bundles.has(r)) + return C(i)(null, this.getBundle(r)); + e.preset = e.preset || "bundle", + e.ext = "bundle", + this.loadRemote(t, e, i) + }, + releaseAsset: function(t) { + a.tryRelease(t, !0) + }, + releaseUnusedAssets: function() { + S.forEach((function(t) { + a.tryRelease(t) + } + )) + }, + releaseAll: function() { + S.forEach((function(t) { + a.tryRelease(t, !0) + } + )) + }, + _transform: function(t, e) { + var i = c.create({ + input: t, + options: e + }) + , n = []; + try { + for (var r = D.sync(i), s = 0, a = r.length; s < a; s++) { + var o = r[s] + , l = o.url; + o.recycle(), + n.push(l) + } + } catch (h) { + for (s = 0, + a = i.output.length; s < a; s++) + i.output[s].recycle(); + cc.error(h.message, h.stack) + } + return i.recycle(), + n.length > 1 ? n : n[0] + } + }, + cc.AssetManager = O, + cc.assetManager = new O, + Object.defineProperty(cc, "resources", { + get: function() { + return P.get(R.RESOURCES) + } + }), + e.exports = cc.assetManager + } + ), { + "./builtins": 34, + "./bundle": 35, + "./cache": 36, + "./depend-util": 38, + "./downloader": 45, + "./factory": 46, + "./fetch": 47, + "./helper": 49, + "./load": 51, + "./pack-manager": 52, + "./parser": 53, + "./pipeline": 54, + "./preprocess": 55, + "./releaseManager": 56, + "./request-item": 57, + "./shared": 58, + "./task": 59, + "./urlTransformer": 60, + "./utilities": 61 + }], + 34: [(function(t, e) { + "use strict"; + var i = t("./cache") + , n = t("./releaseManager") + , r = t("./shared").BuiltinBundleName + , s = { + _assets: new i({ + material: new i, + effect: new i + }), + _loadBuiltins: function(t, e) { + var i = t + "s" + , n = this._assets.get(t); + return cc.assetManager.internal.loadDir(i, null, null, (function(t, i) { + if (t) + cc.error(t.message, t.stack); + else + for (var r = 0; r < i.length; r++) { + var s = i[r]; + n.add(s.name, s.addRef()) + } + e() + } + )) + }, + init: function(t) { + var e = this; + if (this.clear(), + cc.game.renderType === cc.game.RENDER_TYPE_CANVAS || !cc.assetManager.bundles.has(r.INTERNAL)) + return t && t(); + this._loadBuiltins("effect", (function() { + e._loadBuiltins("material", t) + } + )) + }, + getBuiltin: function(t, e) { + return 0 === arguments.length ? this._assets : 1 === arguments.length ? this._assets.get(t) : this._assets.get(t).get(e) + }, + clear: function() { + this._assets.forEach((function(t) { + t.forEach((function(t) { + n.tryRelease(t, !0) + } + )), + t.clear() + } + )) + } + }; + e.exports = s + } + ), { + "./cache": 36, + "./releaseManager": 56, + "./shared": 58 + }], + 35: [(function(t, e) { + "use strict"; + var i = t("./config") + , n = t("./releaseManager") + , r = t("./utilities") + , s = r.parseParameters + , a = r.parseLoadResArgs + , o = t("./shared") + , l = o.RequestType + , h = o.assets + , c = o.bundles; + function u() { + this._config = new i + } + u.prototype = { + constructor: u, + get name() { + return this._config.name + }, + get deps() { + return this._config.deps + }, + get base() { + return this._config.base + }, + getInfoWithPath: function(t, e) { + return this._config.getInfoWithPath(t, e) + }, + getDirWithPath: function(t, e, i) { + return this._config.getDirWithPath(t, e, i) + }, + getAssetInfo: function(t) { + return this._config.getAssetInfo(t) + }, + getSceneInfo: function(t) { + return this._config.getSceneInfo(t) + }, + init: function(t) { + this._config.init(t), + c.add(t.name, this) + }, + load: function(t, e, i, n) { + var r = a(e, i, n); + e = r.type, + i = r.onProgress, + n = r.onComplete, + cc.assetManager.loadAny(t, { + __requestType__: l.PATH, + type: e, + bundle: this.name, + __outputAsArray__: Array.isArray(t) + }, i, n) + }, + preload: function(t, e, i, n) { + var r = a(e, i, n); + e = r.type, + i = r.onProgress, + n = r.onComplete, + cc.assetManager.preloadAny(t, { + __requestType__: l.PATH, + type: e, + bundle: this.name + }, i, n) + }, + loadDir: function(t, e, i, n) { + var r = a(e, i, n); + e = r.type, + i = r.onProgress, + n = r.onComplete, + cc.assetManager.loadAny(t, { + __requestType__: l.DIR, + type: e, + bundle: this.name, + __outputAsArray__: !0 + }, i, n) + }, + preloadDir: function(t, e, i, n) { + var r = a(e, i, n); + e = r.type, + i = r.onProgress, + n = r.onComplete, + cc.assetManager.preloadAny(t, { + __requestType__: l.DIR, + type: e, + bundle: this.name + }, i, n) + }, + loadScene: function(t, e, i, n) { + var r = s(e, i, n); + e = r.options, + i = r.onProgress, + n = r.onComplete, + e.preset = e.preset || "scene", + e.bundle = this.name, + cc.assetManager.loadAny({ + scene: t + }, e, i, (function(t, e) { + if (t) + cc.error(t.message, t.stack), + n && n(t); + else if (e instanceof cc.SceneAsset) { + var i = e.scene; + i._id = e._uuid, + i._name = e._name, + n && n(null, e) + } else + n && n(new Error("The asset " + e._uuid + " is not a scene")) + } + )) + }, + preloadScene: function(t, e, i, n) { + var r = s(e, i, n); + e = r.options, + i = r.onProgress, + n = r.onComplete, + e.bundle = this.name, + cc.assetManager.preloadAny({ + scene: t + }, e, i, (function(e) { + e && cc.errorID(1210, t, e.message), + n && n(e) + } + )) + }, + get: function(t, e) { + var i = this.getInfoWithPath(t, e); + return h.get(i && i.uuid) + }, + release: function(t, e) { + n.tryRelease(this.get(t, e), !0) + }, + releaseUnusedAssets: function() { + var t = this; + h.forEach((function(e) { + var i = t.getAssetInfo(e._uuid); + i && !i.redirect && n.tryRelease(e) + } + )) + }, + releaseAll: function() { + var t = this; + h.forEach((function(e) { + var i = t.getAssetInfo(e._uuid); + i && !i.redirect && n.tryRelease(e, !0) + } + )) + }, + _destroy: function() { + this._config.destroy() + } + }, + e.exports = u + } + ), { + "./config": 37, + "./releaseManager": 56, + "./shared": 58, + "./utilities": 61 + }], + 36: [(function(t, e) { + "use strict"; + var i = t("../platform/js"); + function n(t) { + t ? (this._map = t, + this._count = Object.keys(t).length) : (this._map = i.createMap(!0), + this._count = 0) + } + n.prototype = { + constructor: n, + add: function(t, e) { + return t in this._map || this._count++, + this._map[t] = e + }, + get: function(t) { + return this._map[t] + }, + has: function(t) { + return t in this._map + }, + remove: function(t) { + var e = this._map[t]; + return t in this._map && (delete this._map[t], + this._count--), + e + }, + clear: function() { + 0 !== this._count && (this._map = i.createMap(!0), + this._count = 0) + }, + forEach: function(t) { + for (var e in this._map) + t(this._map[e], e) + }, + find: function(t) { + for (var e in this._map) + if (t(this._map[e], e)) + return this._map[e]; + return null + }, + get count() { + return this._count + }, + destroy: function() { + this._map = null + } + }, + e.exports = n + } + ), { + "../platform/js": 214 + }], + 37: [(function(t, e) { + "use strict"; + var i = t("../platform/js") + , n = t("./cache") + , r = t("./helper").normalize + , s = t("./utilities").processOptions; + function a() { + this.name = "", + this.base = "", + this.importBase = "", + this.nativeBase = "", + this.deps = null, + this.assetInfos = new n, + this.scenes = new n, + this.paths = new n + } + a.prototype = { + constructor: a, + init: function(t) { + s(t), + this.importBase = t.importBase || "", + this.nativeBase = t.nativeBase || "", + this.base = t.base || "", + this.name = t.name || "", + this.deps = t.deps || [], + this._initUuid(t.uuids), + this._initPath(t.paths), + this._initScene(t.scenes), + this._initPackage(t.packs), + this._initVersion(t.versions), + this._initRedirect(t.redirect) + }, + _initUuid: function(t) { + if (t) { + this.assetInfos.clear(); + for (var e = 0, i = t.length; e < i; e++) { + var n = t[e]; + this.assetInfos.add(n, { + uuid: n + }) + } + } + }, + _initPath: function(t) { + if (t) { + var e = this.paths; + for (var n in e.clear(), + t) { + var r = t[n] + , s = r[0] + , a = r[1] + , o = 3 === r.length + , l = this.assetInfos.get(n); + l.path = s, + l.ctor = i._getClassById(a), + e.has(s) ? o ? e.get(s).push(l) : e.get(s).splice(0, 0, l) : e.add(s, [l]) + } + } + }, + _initScene: function(t) { + if (t) { + var e = this.scenes; + e.clear(); + var i = this.assetInfos; + for (var n in t) { + var r = t[n] + , s = i.get(r); + s.url = n, + e.add(n, s) + } + } + }, + _initPackage: function(t) { + if (t) { + var e = this.assetInfos; + for (var i in t) { + var n = t[i] + , r = { + uuid: i, + packs: n, + ext: ".json" + }; + e.add(i, r); + for (var s = 0, a = n.length; s < a; s++) { + var o = n[s] + , l = e.get(o) + , h = l.packs; + h ? 1 === a ? h.splice(0, 0, r) : h.push(r) : l.packs = [r] + } + } + } + }, + _initVersion: function(t) { + if (t) { + var e = this.assetInfos + , i = t.import; + if (i) + for (var n = 0, r = i.length; n < r; n += 2) { + var s = i[n]; + e.get(s).ver = i[n + 1] + } + if (i = t.native) + for (n = 0, + r = i.length; n < r; n += 2) + s = i[n], + e.get(s).nativeVer = i[n + 1] + } + }, + _initRedirect: function(t) { + if (t) + for (var e = this.assetInfos, i = 0, n = t.length; i < n; i += 2) { + var r = t[i]; + e.get(r).redirect = t[i + 1] + } + }, + getInfoWithPath: function(t, e) { + if (!t) + return null; + t = r(t); + var n = this.paths.get(t); + if (n) { + if (!e) + return n[0]; + for (var s = 0, a = n.length; s < a; s++) { + var o = n[s]; + if (i.isChildClassOf(o.ctor, e)) + return o + } + } + return null + }, + getDirWithPath: function(t, e, n) { + "/" === (t = r(t))[t.length - 1] && (t = t.slice(0, -1)); + var s = n || []; + function a(t, e) { + return !(t.length > e.length) || 47 === t.charCodeAt(e.length) + } + return this.paths.forEach((function(n, r) { + if (r.startsWith(t) && a(r, t) || !t) + for (var o = 0, l = n.length; o < l; o++) { + var h = n[o]; + e && !i.isChildClassOf(h.ctor, e) || s.push(h) + } + } + )), + s + }, + getAssetInfo: function(t) { + return this.assetInfos.get(t) + }, + getSceneInfo: function(t) { + return t.endsWith(".fire") || (t += ".fire"), + "/" === t[0] || t.startsWith("db://") || (t = "/" + t), + this.scenes.find((function(e, i) { + return i.endsWith(t) + } + )) + }, + destroy: function() { + this.paths.destroy(), + this.scenes.destroy(), + this.assetInfos.destroy() + } + }, + e.exports = a + } + ), { + "../platform/js": 214, + "./cache": 36, + "./helper": 49, + "./utilities": 61 + }], + 38: [(function(t, e) { + "use strict"; + var i = (function(t) { + if (t && t.__esModule) + return t; + if (null === t || "object" != typeof t && "function" != typeof t) + return { + default: t + }; + var e = n(); + if (e && e.has(t)) + return e.get(t); + var i = {} + , r = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var s in t) + if (Object.prototype.hasOwnProperty.call(t, s)) { + var a = r ? Object.getOwnPropertyDescriptor(t, s) : null; + a && (a.get || a.set) ? Object.defineProperty(i, s, a) : i[s] = t[s] + } + return i.default = t, + e && e.set(t, i), + i + } + )(t("../platform/deserialize-compiled")); + function n() { + if ("function" != typeof WeakMap) + return null; + var t = new WeakMap; + return n = function() { + return t + } + , + t + } + var r = t("./cache") + , s = t("./deserialize") + , a = t("./shared") + , o = a.files + , l = a.parsed + , h = { + _depends: new r, + init: function() { + this._depends.clear() + }, + getNativeDep: function(t) { + var e = this._depends.get(t); + return e ? e.nativeDep && Object.assign({}, e.nativeDep) : null + }, + getDeps: function(t) { + return this._depends.has(t) ? this._depends.get(t).deps : [] + }, + getDepsRecursively: function(t) { + var e = Object.create(null) + , i = []; + return this._descend(t, e, i), + i + }, + _descend: function(t, e, i) { + for (var n = this.getDeps(t), r = 0; r < n.length; r++) { + var s = n[r]; + e[s] || (e[s] = !0, + i.push(s), + this._descend(s, e, i)) + } + }, + remove: function(t) { + this._depends.remove(t) + }, + parse: function(t, e) { + var n = null; + if (Array.isArray(e) || e.__type__) { + if (n = this._depends.get(t)) + return n; + if (Array.isArray(e) && !(0, + i.hasNativeDep)(e)) + n = { + deps: this._parseDepsFromJson(e) + }; + else + try { + var r = s(e); + (n = this._parseDepsFromAsset(r)).nativeDep && (n.nativeDep.uuid = t), + l.add(t + "@import", r) + } catch (a) { + o.remove(t + "@import"), + n = { + deps: [] + } + } + } else { + if ((n = this._depends.get(t)) && n.parsedFromExistAsset) + return n; + n = this._parseDepsFromAsset(e) + } + return this._depends.add(t, n), + n + }, + _parseDepsFromAsset: function(t) { + for (var e = { + deps: [], + parsedFromExistAsset: !0, + preventPreloadNativeObject: t.constructor.preventPreloadNativeObject, + preventDeferredLoadDependents: t.constructor.preventDeferredLoadDependents + }, i = t.__depends__, n = 0, r = i.length; n < r; n++) { + var s = i[n].uuid; + e.deps.push(s) + } + return t.__nativeDepend__ && (e.nativeDep = t._nativeDep), + e + }, + _parseDepsFromJson: function(t) { + var e = (0, + i.getDependUuidList)(t); + return e.forEach((function(t, i) { + return e[i] = cc.assetManager.utils.decodeUuid(t) + } + )), + e + } + }; + e.exports = h + } + ), { + "../platform/deserialize-compiled": 208, + "./cache": 36, + "./deserialize": 40, + "./shared": 58 + }], + 39: [(function(t) { + "use strict"; + var e = t("../platform/js"); + t("../CCDirector"); + var i = t("./utilities") + , n = t("./depend-util") + , r = t("./releaseManager") + , s = t("./downloader") + , a = t("./factory") + , o = t("./helper") + , l = [".png", ".jpg", ".bmp", ".jpeg", ".gif", ".ico", ".tiff", ".webp", ".image", ".pvr", ".pkm"] + , h = [".mp3", ".ogg", ".wav", ".m4a"]; + function c() { + return !0 + } + var u = { + transformURL: function(t) { + var e = o.getUuidFromURL(t); + if (!e) + return t; + var i = cc.assetManager.bundles.find((function(t) { + return !!t.getAssetInfo(e) + } + )); + if (!i) + return t; + var n, r = i.getAssetInfo(e); + if (!(n = t.startsWith(i.base + i._config.nativeBase) ? r.nativeVer || "" : r.ver || "") || -1 !== t.indexOf(n)) + return t; + var s = !1; + if (".ttf" === cc.path.extname(t) && (s = !0), + s) { + var a = cc.path.dirname(t) + , l = cc.path.basename(t); + t = a + "." + n + "/" + l + } else + t = t.replace(/.*[/\\][0-9a-fA-F]{2}[/\\]([0-9a-fA-F-]{8,})/, (function(t) { + return t + "." + n + } + )); + return t + } + } + , _ = { + onProgress: null, + _autoReleaseSetting: Object.create(null), + get _cache() { + return cc.assetManager.assets._map + }, + load: function(t, e, i) { + void 0 === i && void 0 !== e && (i = e, + e = null), + t = Array.isArray(t) ? t : [t]; + for (var n = 0; n < t.length; n++) { + var r = t[n]; + "string" == typeof r ? t[n] = { + url: r, + __isNative__: !0 + } : (r.type && (r.ext = "." + r.type, + r.type = void 0), + r.url && (r.__isNative__ = !0)) + } + var s = [] + , o = []; + cc.assetManager.loadAny(t, null, (function(t, i, n) { + n.content && (l.includes(n.ext) ? s.push(n.content) : h.includes(n.ext) && o.push(n.content)), + e && e(t, i, n) + } + ), (function(e, n) { + var r = null; + if (!e) { + n = Array.isArray(n) ? n : [n]; + for (var l = 0; l < n.length; l++) { + var h = n[l]; + if (!(h instanceof cc.Asset)) { + var u = h + , _ = t[l].url; + s.includes(u) ? a.create(_, h, ".png", null, (function(t, e) { + u = n[l] = e + } + )) : o.includes(u) && a.create(_, h, ".mp3", null, (function(t, e) { + u = n[l] = e + } + )), + cc.assetManager.assets.add(_, u) + } + } + if (n.length > 1) { + var f = Object.create(null); + n.forEach((function(t) { + f[t._uuid] = t + } + )), + r = { + isCompleted: c, + _map: f + } + } else + r = n[0] + } + i && i(e, r) + } + )) + }, + getXMLHttpRequest: function() { + return new XMLHttpRequest + }, + _parseLoadResArgs: i.parseLoadResArgs, + getItem: function(t) { + return cc.assetManager.assets.has(t) ? { + content: cc.assetManager.assets.get(t) + } : null + }, + loadRes: function(t, e, i, n) { + var r = this._parseLoadResArgs(e, i, n) + , s = (e = r.type, + r.onProgress) + , a = r.onComplete + , o = cc.path.extname(t); + o && (t = t.slice(0, -o.length)), + cc.resources.load(t, e, s, a) + }, + loadResArray: function(t, e, i, n) { + var r = this._parseLoadResArgs(e, i, n) + , s = (e = r.type, + r.onProgress) + , a = r.onComplete; + t.forEach((function(e, i) { + var n = cc.path.extname(e); + n && (t[i] = e.slice(0, -n.length)) + } + )), + cc.resources.load(t, e, s, a) + }, + loadResDir: function(t, e, i, n) { + var r = this._parseLoadResArgs(e, i, n) + , s = (e = r.type, + r.onProgress) + , a = r.onComplete; + cc.resources.loadDir(t, e, s, (function(i, n) { + var r = []; + i || (r = cc.resources.getDirWithPath(t, e).map((function(t) { + return t.path + } + ))), + a && a(i, n, r) + } + )) + }, + getRes: function(t, e) { + return cc.assetManager.assets.has(t) ? cc.assetManager.assets.get(t) : cc.resources.get(t, e) + }, + getResCount: function() { + return cc.assetManager.assets.count + }, + getDependsRecursively: function(t) { + return t ? n.getDepsRecursively("string" == typeof t ? t : t._uuid).concat([t._uuid]) : [] + }, + get assetLoader() {}, + get md5Pipe() { + return u + }, + get downloader() { + return cc.assetManager.downloader + }, + get loader() { + return cc.assetManager.parser + }, + addDownloadHandlers: function(t) { + var e = Object.create(null); + for (var i in t) { + var n = t[i]; + e["." + i] = function(t, e, i) { + n({ + url: t + }, i) + } + } + cc.assetManager.downloader.register(e) + }, + addLoadHandlers: function(t) { + var e = Object.create(null); + for (var i in t) { + var n = t[i]; + e["." + i] = function(t, e, i) { + n({ + content: t + }, i) + } + } + cc.assetManager.parser.register(e) + }, + flowInDeps: function() {}, + release: function(t) { + if (Array.isArray(t)) + for (var e = 0; e < t.length; e++) { + var i = t[e]; + "string" == typeof i && (i = cc.assetManager.assets.get(i)), + cc.assetManager.builtins._assets.find((function(t) { + return t.find((function(t) { + return t === i + } + )) + } + )) || cc.assetManager.releaseAsset(i) + } + else if (t) { + if ("string" == typeof t && (t = cc.assetManager.assets.get(t)), + cc.assetManager.builtins._assets.find((function(e) { + return e.find((function(e) { + return e === t + } + )) + } + ))) + return; + cc.assetManager.releaseAsset(t) + } + }, + releaseAsset: function(t) { + cc.assetManager.releaseAsset(t) + }, + releaseRes: function(t, e) { + cc.resources.release(t, e) + }, + releaseResDir: function() {}, + releaseAll: function() { + cc.assetManager.releaseAll(), + cc.assetManager.assets.clear() + }, + removeItem: function(t) { + cc.assetManager.assets.remove(t) + }, + setAutoRelease: function(t, e) { + "object" == typeof t && (t = t._uuid), + this._autoReleaseSetting[t] = !!e + }, + setAutoReleaseRecursively: function(t, e) { + "object" == typeof t && (t = t._uuid), + e = !!e, + this._autoReleaseSetting[t] = e; + for (var i = n.getDepsRecursively(t), r = 0; r < i.length; r++) { + var s = i[r]; + this._autoReleaseSetting[s] = e + } + }, + isAutoRelease: function(t) { + return "object" == typeof t && (t = t._uuid), + !!this._autoReleaseSetting[t] + } + }; + s.loadSubpackage = function(t, e) { + cc.assetManager.loadBundle(t, null, e) + } + ; + var f = { + init: function(t) { + t.importBase = t.libraryPath, + t.nativeBase = t.rawAssetsBase, + cc.assetManager.init(t), + t.rawAssets && (new cc.AssetManager.Bundle).init({ + name: cc.AssetManager.BuiltinBundleName.RESOURCES, + importBase: t.importBase, + nativeBase: t.nativeBase, + paths: t.rawAssets.assets, + uuids: Object.keys(t.rawAssets.assets) + }) + }, + loadAsset: function(t, e) { + cc.assetManager.loadAny(t, e) + }, + getLibUrlNoExt: function() {}, + queryAssetInfo: function() {} + }; + cc.url = { + normalize: function(t) { + return cc.warnID(1400, "cc.url.normalize", "cc.assetManager.utils.normalize"), + cc.assetManager.utils.normalize(t) + }, + raw: function(t) { + return cc.warnID(1400, "cc.url.raw", "cc.resources.load"), + t.startsWith("resources/") ? cc.assetManager._transform({ + path: cc.path.changeExtname(t.substr(10)), + bundle: cc.AssetManager.BuiltinBundleName.RESOURCES, + __isNative__: !0, + ext: cc.path.extname(t) + }) : "" + } + }, + Object.defineProperties(cc, { + loader: { + get: function() { + return _ + } + }, + AssetLibrary: { + get: function() { + return f + } + }, + LoadingItems: { + get: function() { + return cc.warnID(1400, "cc.LoadingItems", "cc.AssetManager.Task"), + cc.AssetManager.Task + } + }, + Pipeline: { + get: function() { + return cc.warnID(1400, "cc.Pipeline", "cc.AssetManager.Pipeline"), + cc.AssetManager.Pipeline + } + } + }), + e.obsolete(cc, "cc.RawAsset", "cc.Asset"), + e.obsolete(cc.Asset.prototype, "cc.Asset.url", "nativeUrl"), + Object.defineProperties(cc.macro, { + DOWNLOAD_MAX_CONCURRENT: { + get: function() { + return cc.assetManager.downloader.maxConcurrency + }, + set: function(t) { + cc.assetManager.downloader.maxConcurrency = t + } + } + }), + Object.assign(cc.director, { + _getSceneUuid: function(t) { + cc.assetManager.main.getSceneInfo(t) + } + }), + Object.defineProperties(cc.game, { + _sceneInfos: { + get: function() { + var t = []; + return cc.assetManager.main._config.scenes.forEach((function(e) { + t.push(e) + } + )), + t + } + } + }); + var d = i.parseParameters; + i.parseParameters = function(t, e, i) { + var n = d(t, e, i); + return n.onProgress = n.onProgress || _.onProgress, + n + } + ; + var p = r._autoRelease; + r._autoRelease = function() { + p.apply(this, arguments); + for (var t = _._autoReleaseSetting, e = Object.keys(t), i = 0; i < e.length; i++) { + var n = e[i]; + if (!0 === t[n]) { + var s = cc.assetManager.assets.get(n); + s && r.tryRelease(s) + } + } + } + } + ), { + "../CCDirector": 27, + "../platform/js": 214, + "./depend-util": 38, + "./downloader": 45, + "./factory": 46, + "./helper": 49, + "./releaseManager": 56, + "./utilities": 61 + }], + 40: [(function(t, e) { + "use strict"; + var i = t("./helper"); + t("../platform/deserialize"), + e.exports = function(t, e) { + var n; + n = cc._MissingScript.safeFindClass; + var r, s = null, a = (s = cc.deserialize.Details.pool).get(); + try { + r = cc.deserialize(t, a, { + classFinder: n, + customEnv: e + }) + } catch (f) { + throw s.put(a), + f + } + for (var o = a.uuidList, l = a.uuidObjList, h = a.uuidPropList, c = [], u = 0; u < o.length; u++) { + var _ = o[u]; + c[u] = { + uuid: i.decodeUuid(_), + owner: l[u], + prop: h[u] + } + } + return r.__depends__ = c, + r._native && (r.__nativeDepend__ = !0), + s.put(a), + r + } + } + ), { + "../platform/deserialize": 209, + "../platform/deserialize-compiled": 208, + "../platform/deserialize-editor": void 0, + "./helper": 49 + }], + 41: [(function(t, e) { + "use strict"; + var i = cc.sys.__audioSupport + , n = t("./utilities").parseParameters; + e.exports = function(t, e, r) { + var s = n(e, void 0, r) + , a = (e = s.options, + r = s.onComplete, + document.createElement("audio")); + a.src = t; + var o = function() { + clearTimeout(l), + a.removeEventListener("canplaythrough", h, !1), + a.removeEventListener("error", c, !1), + i.USE_LOADER_EVENT && a.removeEventListener(i.USE_LOADER_EVENT, h, !1) + } + , l = setTimeout((function() { + 0 === a.readyState ? c() : h() + } + ), 8e3) + , h = function() { + o(), + r && r(null, a) + } + , c = function() { + o(); + var e = "load audio failure - " + t; + cc.log(e), + r && r(new Error(e)) + }; + return a.addEventListener("canplaythrough", h, !1), + a.addEventListener("error", c, !1), + i.USE_LOADER_EVENT && a.addEventListener(i.USE_LOADER_EVENT, h, !1), + a + } + } + ), { + "./utilities": 61 + }], + 42: [(function(t, e) { + "use strict"; + var i = t("./utilities").parseParameters; + e.exports = function(t, e, n) { + var r = i(e, void 0, n) + , s = (e = r.options, + n = r.onComplete, + new Image); + function a() { + s.removeEventListener("load", a), + s.removeEventListener("error", o), + n && n(null, s) + } + function o() { + s.removeEventListener("load", a), + s.removeEventListener("error", o), + n && n(new Error(cc.debug.getError(4930, t))) + } + return "file:" !== window.location.protocol && (s.crossOrigin = "anonymous"), + s.addEventListener("load", a), + s.addEventListener("error", o), + s.src = t, + s + } + } + ), { + "./utilities": 61 + }], + 43: [(function(t, e) { + "use strict"; + var i = t("./utilities").parseParameters; + e.exports = function(t, e, n, r) { + var s = i(e, n, r) + , a = (e = s.options, + n = s.onProgress, + r = s.onComplete, + new XMLHttpRequest) + , o = "download failed: " + t + ", status: "; + if (a.open("GET", t, !0), + void 0 !== e.responseType && (a.responseType = e.responseType), + void 0 !== e.withCredentials && (a.withCredentials = e.withCredentials), + void 0 !== e.mimeType && a.overrideMimeType && a.overrideMimeType(e.mimeType), + void 0 !== e.timeout && (a.timeout = e.timeout), + e.header) + for (var l in e.header) + a.setRequestHeader(l, e.header[l]); + return a.onload = function() { + 200 === a.status || 0 === a.status ? r && r(null, a.response) : r && r(new Error(o + a.status + "(no response)")) + } + , + n && (a.onprogress = function(t) { + t.lengthComputable && n(t.loaded, t.total) + } + ), + a.onerror = function() { + r && r(new Error(o + a.status + "(error)")) + } + , + a.ontimeout = function() { + r && r(new Error(o + a.status + "(time out)")) + } + , + a.onabort = function() { + r && r(new Error(o + a.status + "(abort)")) + } + , + a.send(null), + a + } + } + ), { + "./utilities": 61 + }], + 44: [(function(t, e) { + "use strict"; + var i = t("./utilities").parseParameters + , n = {}; + e.exports = function(t, e, r) { + var s = i(e, void 0, r); + if (e = s.options, + r = s.onComplete, + n[t]) + return r && r(null); + var a = document + , o = document.createElement("script"); + function l() { + o.parentNode.removeChild(o), + o.removeEventListener("load", l, !1), + o.removeEventListener("error", h, !1), + n[t] = !0, + r && r(null) + } + function h() { + o.parentNode.removeChild(o), + o.removeEventListener("load", l, !1), + o.removeEventListener("error", h, !1), + r && r(new Error(cc.debug.getError(4928, t))) + } + "file:" !== window.location.protocol && (o.crossOrigin = "anonymous"), + o.async = e.async, + o.src = t, + o.addEventListener("load", l, !1), + o.addEventListener("error", h, !1), + a.body.appendChild(o) + } + } + ), { + "./utilities": 61 + }], + 45: [(function(t, e) { + "use strict"; + var i = t("../platform/js") + , n = t("../CCDebug") + , r = t("./font-loader").loadFont + , s = t("../platform/utils").callInNextTick + , a = t("./download-dom-image") + , o = t("./download-dom-audio") + , l = t("./download-file") + , h = t("./download-script.js") + , c = t("./cache") + , u = t("./shared").files + , _ = t("../platform/CCSys") + , f = _.__audioSupport + , d = _.capabilities + , p = t("./utilities") + , m = p.urlAppendTimestamp + , y = p.retry + , v = /^(?:\w+:\/\/|\.+\/).+/ + , g = function(t, e, i) { + e.audioLoadMode !== cc.AudioClip.LoadMode.DOM_AUDIO ? C(t, e, i) : o(t, e, i) + } + , A = (g = 0 === (f.format || []).length ? function(t, e, i) { + i(new Error(n.getError(4927))) + } + : f.WEB_AUDIO ? g : o, + function() { + var t = d.imageBitmap && cc.macro.ALLOW_IMAGE_BITMAP ? x : a; + t.apply(this, arguments) + } + ) + , x = function(t, e, i) { + e.responseType = "blob", + l(t, e, e.onFileProgress, i) + } + , b = function(t, e, i) { + e.responseType = "json", + l(t, e, e.onFileProgress, (function(t, e) { + if (!t && "string" == typeof e) + try { + e = JSON.parse(e) + } catch (n) { + t = n + } + i && i(t, e) + } + )) + } + , C = function(t, e, i) { + e.responseType = "arraybuffer", + l(t, e, e.onFileProgress, i) + } + , T = function(t, e, i) { + e.responseType = "text", + l(t, e, e.onFileProgress, i) + } + , S = function(t, e, i) { + i(null, t) + } + , w = new c + , E = [] + , M = !1 + , D = 0 + , B = 0 + , I = -1 + , P = !1 + , R = function() { + var t = Date.now() + , e = cc.director._deltaTime > L._maxInterval ? L._maxInterval : cc.director._deltaTime; + t - I > 1e3 * e && (B = 0, + I = t) + } + , O = function t(e, i) { + for (P = !1, + R(); E.length > 0 && D < e && B < i; ) { + M && (E.sort((function(t, e) { + return t.priority - e.priority + } + )), + M = !1); + var n = E.pop(); + if (!n) + break; + D++, + B++, + n.invoke() + } + E.length > 0 && D < e && (s(t, e, i), + P = !0) + } + , L = { + _remoteServerAddress: "", + _maxInterval: 1 / 30, + get remoteServerAddress() { + return this._remoteServerAddress + }, + maxConcurrency: 6, + maxRequestsPerFrame: 6, + maxRetryCount: 3, + appendTimeStamp: !1, + limited: !0, + retryInterval: 2e3, + bundleVers: null, + downloadDomImage: a, + downloadDomAudio: o, + downloadFile: l, + downloadScript: h, + init: function(t, e) { + w.clear(), + E.length = 0, + this._remoteServerAddress = e || "", + this.bundleVers = t || Object.create(null) + }, + register: function(t, e) { + "object" == typeof t ? i.mixin(F, t) : F[t] = e + }, + download: function(t, e, i, n, r) { + var a, o, l = F[i] || F.default, h = this; + if (a = u.get(t)) + r(null, a); + else if (o = w.get(t)) { + o.push(r); + for (var c = 0, _ = E.length; c < _; c++) { + var f = E[c]; + if (f.id === t) { + var d = n.priority || 0; + return void (f.priority < d && (f.priority = d, + M = !0)) + } + } + } else { + var p = void 0 !== n.maxRetryCount ? n.maxRetryCount : this.maxRetryCount + , v = void 0 !== n.maxConcurrency ? n.maxConcurrency : this.maxConcurrency + , g = void 0 !== n.maxRequestsPerFrame ? n.maxRequestsPerFrame : this.maxRequestsPerFrame; + y((function(i, a) { + if (0 === i && w.add(t, [r]), + !h.limited) + return l(m(e), n, a); + function o() { + l(m(e), n, (function() { + D--, + !P && E.length > 0 && (s(O, v, g), + P = !0), + a.apply(this, arguments) + } + )) + } + R(), + D < v && B < g ? (o(), + D++, + B++) : (E.push({ + id: t, + priority: n.priority || 0, + invoke: o + }), + M = !0, + !P && D < v && (s(O, v, g), + P = !0)) + } + ), p, this.retryInterval, (function(e, i) { + e || u.add(t, i); + for (var n = w.remove(t), r = 0, s = n.length; r < s; r++) + n[r](e, i) + } + )) + } + } + } + , F = { + ".png": A, + ".jpg": A, + ".bmp": A, + ".jpeg": A, + ".gif": A, + ".ico": A, + ".tiff": A, + ".webp": A, + ".image": A, + ".pvr": C, + ".pkm": C, + ".mp3": g, + ".ogg": g, + ".wav": g, + ".m4a": g, + ".txt": T, + ".xml": T, + ".vsh": T, + ".fsh": T, + ".atlas": T, + ".tmx": T, + ".tsx": T, + ".json": b, + ".ExportJson": b, + ".plist": T, + ".fnt": T, + ".font": r, + ".eot": r, + ".ttf": r, + ".woff": r, + ".svg": r, + ".ttc": r, + ".mp4": S, + ".avi": S, + ".mov": S, + ".mpg": S, + ".mpeg": S, + ".rm": S, + ".rmvb": S, + ".binary": C, + ".bin": C, + ".dbbin": C, + ".skel": C, + ".js": h, + bundle: function(t, e, i) { + var n = cc.path.basename(t) + , r = t; + v.test(r) || (r = "assets/" + n); + var s = e.version || L.bundleVers[n] + , a = 0 + , o = null + , l = null; + b(r + "/config." + (s ? s + "." : "") + "json", e, (function(t, e) { + t && (l = t), + (o = e) && (o.base = r + "/"), + 2 == ++a && i(l, o) + } + )), + h(r + "/index." + (s ? s + "." : "") + "js", e, (function(t) { + t && (l = t), + 2 == ++a && i(l, o) + } + )) + }, + default: T + }; + L._downloaders = F, + e.exports = L + } + ), { + "../CCDebug": 26, + "../platform/CCSys": 202, + "../platform/js": 214, + "../platform/utils": 217, + "./cache": 36, + "./download-dom-audio": 41, + "./download-dom-image": 42, + "./download-file": 43, + "./download-script.js": 44, + "./font-loader": 48, + "./shared": 58, + "./utilities": 61 + }], + 46: [(function(t, e) { + "use strict"; + var i = t("./bundle") + , n = t("./cache") + , r = t("./shared") + , s = r.assets + , a = r.bundles + , o = new n; + function l(t, e, i, n) { + var r = null + , s = null; + try { + (r = new cc.Texture2D)._nativeUrl = t, + r._nativeAsset = e + } catch (a) { + s = a + } + n && n(s, r) + } + function h(t, e, i, n) { + var r = new cc.AudioClip; + r._nativeUrl = t, + r._nativeAsset = e, + r.duration = e.duration, + n && n(null, r) + } + function c(t, e, i, n) { + var r = new cc.JsonAsset; + r.json = e, + n && n(null, r) + } + function u(t, e, i, n) { + var r = new cc.TextAsset; + r.text = e, + n && n(null, r) + } + function _(t, e, i, n) { + var r = new cc.TTFFont; + r._nativeUrl = t, + r._nativeAsset = e, + n && n(null, r) + } + function f(t, e, i, n) { + var r = new cc.BufferAsset; + r._nativeUrl = t, + r._nativeAsset = e, + n && n(null, r) + } + var d = { + register: function(t, e) { + "object" == typeof t ? cc.js.mixin(p, t) : p[t] = e + }, + create: function(t, e, i, n, r) { + var a, l, h = p[i] || p.default; + (a = s.get(t)) ? r(null, a) : (l = o.get(t)) ? l.push(r) : (o.add(t, [r]), + h(t, e, n, (function(e, i) { + !e && i instanceof cc.Asset && (i._uuid = t, + s.add(t, i)); + for (var n = o.remove(t), r = 0, a = n.length; r < a; r++) + n[r](e, i) + } + ))) + } + } + , p = { + ".png": l, + ".jpg": l, + ".bmp": l, + ".jpeg": l, + ".gif": l, + ".ico": l, + ".tiff": l, + ".webp": l, + ".image": l, + ".pvr": l, + ".pkm": l, + ".mp3": h, + ".ogg": h, + ".wav": h, + ".m4a": h, + ".txt": u, + ".xml": u, + ".vsh": u, + ".fsh": u, + ".atlas": u, + ".tmx": u, + ".tsx": u, + ".fnt": u, + ".json": c, + ".ExportJson": c, + ".font": _, + ".eot": _, + ".ttf": _, + ".woff": _, + ".svg": _, + ".ttc": _, + ".binary": f, + ".bin": f, + ".dbbin": f, + ".skel": f, + bundle: function(t, e, n, r) { + var s = a.get(e.name); + s || (s = new i, + e.base = e.base || t + "/", + s.init(e)), + r && r(null, s) + }, + default: function(t, e, i, n) { + var r = new cc.Asset; + r._nativeUrl = t, + r._nativeAsset = e, + n && n(null, r) + } + }; + e.exports = d + } + ), { + "./bundle": 35, + "./cache": 36, + "./shared": 58 + }], + 47: [(function(t, e) { + "use strict"; + var i = t("./pack-manager") + , n = t("./task") + , r = t("./utilities") + , s = r.getDepends + , a = r.clear + , o = r.forEach + , l = t("./shared") + , h = l.assets + , c = l.fetchPipeline; + function u(t) { + for (var e = t.output, i = 0, n = e.length; i < n; i++) + e[i].content && e[i].content.decRef(!1) + } + function _(t, e, i, n, r, a, o) { + var l = e.options.__exclude__ + , h = e.progress; + t.content = i, + t.file = n, + e.output.push(t), + r && (l[t.uuid] = !0, + s(t.uuid, n || i, l, a, !0, !1, t.config), + h.total = o + a.length), + h.canInvoke && e.dispatch("progress", ++h.finish, h.total, t) + } + e.exports = function(t, e) { + var r = !1; + t.progress || (t.progress = { + finish: 0, + total: t.input.length, + canInvoke: !0 + }, + r = !0); + var s = t.options + , l = [] + , f = t.progress + , d = f.total; + s.__exclude__ = s.__exclude__ || Object.create(null), + t.output = [], + o(t.input, (function(n, s) { + if (!n.isNative && h.has(n.uuid)) { + var a = h.get(n.uuid); + return a.addRef(), + _(n, t, a, null, a.__asyncLoadAssets__, l, d), + s() + } + i.load(n, t.options, (function(i, a) { + i ? t.isFinish || (!cc.assetManager.force || r ? (cc.error(i.message, i.stack), + f.canInvoke = !1, + e(i)) : _(n, t, null, null, !1, l, d)) : t.isFinish || _(n, t, null, a, !n.isNative, l, d), + s() + } + )) + } + ), (function() { + if (t.isFinish) + return a(t, !0), + t.dispatch("error"); + if (l.length > 0) { + var i = n.create({ + name: t.name + " dependencies", + input: l, + progress: f, + options: s, + onProgress: t.onProgress, + onError: n.prototype.recycle, + onComplete: function(n) { + n || (t.output.push.apply(t.output, this.output), + i.recycle()), + r && u(t), + e(n) + } + }); + c.async(i) + } else + r && u(t), + e() + } + )) + } + } + ), { + "./pack-manager": 52, + "./shared": 58, + "./task": 59, + "./utilities": 61 + }], + 48: [(function(t, e) { + "use strict"; + var i, n = t("../utils/text-utils"), r = null, s = "BES bswy:->@123\u4e01\u3041\u1101", a = Object.create(null), o = -1, l = [], h = 3e3, c = (i = void 0, + function() { + if (void 0 === i) + if (window.FontFace) { + var t = /Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent) + , e = /OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent) && /Apple/.exec(window.navigator.vendor); + i = t ? parseInt(t[1], 10) > 42 : !e + } else + i = !1; + return i + } + ); + function u() { + for (var t = !0, e = Date.now(), i = l.length - 1; i >= 0; i--) { + var a = l[i] + , c = a.fontFamilyName; + if (e - a.startTime > h) + cc.warnID(4933, c), + a.onComplete(null, c), + l.splice(i, 1); + else { + var u = a.refWidth + , _ = "40px " + c; + r.font = _, + u !== n.safeMeasureText(r, s, _) ? (l.splice(i, 1), + a.onComplete(null, c)) : t = !1 + } + } + t && (clearInterval(o), + o = -1) + } + var _ = { + loadFont: function(t, e, i) { + var f = _._getFontFamily(t); + if (a[f]) + return i(null, f); + if (!r) { + var d = document.createElement("canvas"); + d.width = 100, + d.height = 100, + r = d.getContext("2d") + } + var p = "40px " + f; + r.font = p; + var m = n.safeMeasureText(r, s, p) + , y = document.createElement("style"); + y.type = "text/css"; + var v = ""; + isNaN(f - 0) ? v += "@font-face { font-family:" + f + "; src:" : v += "@font-face { font-family:'" + f + "'; src:", + v += "url('" + t + "');", + y.textContent = v + "}", + document.body.appendChild(y); + var g, A, x, b, C, T, S = document.createElement("div"), w = S.style; + if (w.fontFamily = f, + S.innerHTML = ".", + w.position = "absolute", + w.left = "-100px", + w.top = "-100px", + document.body.appendChild(S), + c()) + g = Date.now(), + A = f, + x = i, + b = new Promise(function(t, e) { + (function i() { + Date.now() - g >= h ? e() : document.fonts.load("40px " + A).then((function(e) { + e.length >= 1 ? t() : setTimeout(i, 100) + } + ), (function() { + e() + } + )) + } + )() + } + ), + C = null, + T = new Promise(function(t, e) { + C = setTimeout(e, h) + } + ), + Promise.race([T, b]).then((function() { + C && (clearTimeout(C), + C = null), + x(null, A) + } + ), (function() { + cc.warnID(4933, A), + x(null, A) + } + )); + else { + var E = { + fontFamilyName: f, + refWidth: m, + onComplete: i, + startTime: Date.now() + }; + l.push(E), + -1 === o && (o = setInterval(u, 100)) + } + a[f] = y + }, + _getFontFamily: function(t) { + var e = t.lastIndexOf(".ttf"); + if (-1 === e) + return t; + var i, n = t.lastIndexOf("/"); + return -1 !== (i = -1 === n ? t.substring(0, e) + "_LABEL" : t.substring(n + 1, e) + "_LABEL").indexOf(" ") && (i = '"' + i + '"'), + i + } + }; + e.exports = _ + } + ), { + "../utils/text-utils": 274 + }], + 49: [(function(t, e) { + "use strict"; + var i, n = t("./shared").bundles, r = { + decodeUuid: t("../utils/decode-uuid"), + getUuidFromURL: (i = /.*[/\\][0-9a-fA-F]{2}[/\\]([0-9a-fA-F-]{8,})/, + function(t) { + var e = t.match(i); + return e ? e[1] : "" + } + ), + getUrlWithUuid: function(t, e) { + (e = e || Object.create(null)).__isNative__ = e.isNative, + e.ext = e.nativeExt; + var i = n.find((function(e) { + return e.getAssetInfo(t) + } + )); + return i && (e.bundle = i.name), + cc.assetManager._transform(t, e) + }, + isScene: function(t) { + return t && (t.constructor === cc.SceneAsset || t instanceof cc.Scene) + }, + normalize: function(t) { + return t && (46 === t.charCodeAt(0) && 47 === t.charCodeAt(1) ? t = t.slice(2) : 47 === t.charCodeAt(0) && (t = t.slice(1))), + t + } + }; + e.exports = r + } + ), { + "../utils/decode-uuid": 262, + "./shared": 58 + }], + 50: [(function(t) { + "use strict"; + t("./deprecated"), + t("./CCAssetManager") + } + ), { + "./CCAssetManager": 33, + "./deprecated": 39 + }], + 51: [(function(t, e) { + "use strict"; + var i = t("./pack-manager") + , n = t("./pipeline") + , r = t("./parser") + , s = t("./utilities") + , a = s.getDepends + , o = s.cache + , l = s.gatherAsset + , h = s.setProperties + , c = s.forEach + , u = s.clear + , _ = s.checkCircleReference + , f = t("./shared") + , d = f.assets + , p = f.files + , m = f.parsed + , y = f.pipeline + , v = t("./task") + , g = new n("loadOneAsset",[function(t, e) { + var n = t.output = t.input + , r = n.options + , s = n.isNative + , a = n.uuid + , o = n.file + , l = r.reload; + if (o || !l && !s && d.has(a)) + return e(); + i.load(n, t.options, (function(t, i) { + n.file = i, + e(t) + } + )) + } + , function(t, e) { + var i = t.output = t.input + , n = t.progress + , s = t.options.__exclude__ + , a = i.id + , o = i.file + , l = i.options; + if (i.isNative) + r.parse(a, o, i.ext, l, (function(r, s) { + if (r) + return e(r); + i.content = s, + n.canInvoke && t.dispatch("progress", ++n.finish, n.total, i), + p.remove(a), + m.remove(a), + e() + } + )); + else { + var h = i.uuid; + if (h in s) { + var c = s[h] + , u = c.finish + , f = c.content + , y = c.err + , v = c.callbacks; + n.canInvoke && t.dispatch("progress", ++n.finish, n.total, i), + u || _(h, h, s) ? (f && f.addRef && f.addRef(), + i.content = f, + e(y)) : v.push({ + done: e, + item: i + }) + } else if (!l.reload && d.has(h)) { + var g = d.get(h); + l.__asyncLoadAssets__ || !g.__asyncLoadAssets__ ? (i.content = g.addRef(), + n.canInvoke && t.dispatch("progress", ++n.finish, n.total, i), + e()) : A(t, g, e, !1) + } else + r.parse(a, o, "import", l, (function(i, n) { + if (i) + return e(i); + n._uuid = h, + A(t, n, e, !0) + } + )) + } + } + ]); + function A(t, e, i, n) { + var r = t.input + , s = t.progress + , l = r.uuid + , c = r.id + , u = r.options + , _ = r.config + , f = u.__asyncLoadAssets__ + , d = u.cacheAsset + , g = []; + e.addRef && e.addRef(), + a(l, e, Object.create(null), g, !1, f, _), + s.canInvoke && t.dispatch("progress", ++s.finish, s.total += g.length, r); + var A = t.options.__exclude__[l] = { + content: e, + finish: !1, + callbacks: [{ + done: i, + item: r + }] + } + , x = v.create({ + input: g, + options: t.options, + onProgress: t.onProgress, + onError: v.prototype.recycle, + progress: s, + onComplete: function(t) { + if (e.decRef && e.decRef(!1), + e.__asyncLoadAssets__ = f, + A.finish = !0, + A.err = t, + !t) { + for (var i = Array.isArray(x.output) ? x.output : [x.output], r = Object.create(null), s = 0, a = i.length; s < a; s++) { + var u = i[s]; + u && (r[u instanceof cc.Asset ? u._uuid + "@import" : l + "@native"] = u) + } + if (n) { + if (!h(l, e, r) && !e.__onLoadInvoked__) + try { + e.onLoad && e.onLoad(), + e.__onLoadInvoked__ = !0 + } catch (b) { + cc.error(b.message, b.stack) + } + p.remove(c), + m.remove(c), + o(l, e, void 0 !== d ? d : cc.assetManager.cacheAsset) + } else if (e.__nativeDepend__ && !e._nativeAsset && !h(l, e, r) && !e.__onLoadInvoked__) + try { + e.onLoad && e.onLoad(), + e.__onLoadInvoked__ = !0 + } catch (b) { + cc.error(b.message, b.stack) + } + x.recycle() + } + for (var _ = A.callbacks, y = 0, v = _.length; y < v; y++) { + var g = _[y]; + e.addRef && e.addRef(), + g.item.content = e, + g.done(t) + } + _.length = 0 + } + }); + y.async(x) + } + e.exports = function(t, e) { + var i = !1; + t.progress || (t.progress = { + finish: 0, + total: t.input.length, + canInvoke: !0 + }, + i = !0); + var n = t.options + , r = t.progress; + n.__exclude__ = n.__exclude__ || Object.create(null), + t.output = [], + c(t.input, (function(s, a) { + var o = v.create({ + input: s, + onProgress: t.onProgress, + options: n, + progress: r, + onComplete: function(n, s) { + n && !t.isFinish && (!cc.assetManager.force || i ? (cc.error(n.message, n.stack), + r.canInvoke = !1, + e(n)) : r.canInvoke && t.dispatch("progress", ++r.finish, r.total, s)), + t.output.push(s), + o.recycle(), + a() + } + }); + g.async(o) + } + ), (function() { + if (n.__exclude__ = null, + t.isFinish) + return u(t, !0), + t.dispatch("error"); + l(t), + u(t, !0), + e() + } + )) + } + } + ), { + "./pack-manager": 52, + "./parser": 53, + "./pipeline": 54, + "./shared": 58, + "./task": 59, + "./utilities": 61 + }], + 52: [(function(t, e) { + "use strict"; + var i = t("../platform/deserialize-compiled") + , n = t("./downloader") + , r = t("./cache") + , s = t("../platform/js") + , a = t("./shared").files + , o = new r; + function l(t) { + return o.has(t.uuid) + } + var h = { + unpackJson: function(t, e, n, r) { + var a = s.createMap(!0) + , o = null; + if (Array.isArray(e)) { + (e = (0, + i.unpackJSONs)(e)).length !== t.length && cc.errorID(4915); + for (var l = 0; l < t.length; l++) + a[t[l] + "@import"] = e[l] + } else { + var h = s._getClassId(cc.Texture2D); + if (e.type === h) { + if (e.data) { + var c = e.data.split("|"); + c.length !== t.length && cc.errorID(4915); + for (var u = 0; u < t.length; u++) + a[t[u] + "@import"] = (0, + i.packCustomObjData)(h, c[u], !0) + } + } else + o = new Error("unmatched type pack!"), + a = null + } + r && r(o, a) + }, + init: function() { + o.clear() + }, + register: function(t, e) { + "object" == typeof t ? s.mixin(c, t) : c[t] = e + }, + unpack: function(t, e, i, n, r) { + e ? (0, + c[i])(t, e, n, r) : r && r(new Error("package data is wrong!")) + }, + load: function(t, e, i) { + if (t.isNative || !t.info || !t.info.packs) + return n.download(t.id, t.url, t.ext, t.options, i); + if (a.has(t.id)) + return i(null, a.get(t.id)); + var r = t.info.packs + , s = r.find(l); + if (s) + return o.get(s.uuid).push({ + onComplete: i, + id: t.id + }); + s = r[0], + o.add(s.uuid, [{ + onComplete: i, + id: t.id + }]); + var c = cc.assetManager._transform(s.uuid, { + ext: s.ext, + bundle: t.config.name + }); + n.download(s.uuid, c, s.ext, t.options, (function(e, i) { + a.remove(s.uuid), + e && cc.error(e.message, e.stack), + h.unpack(s.packs, i, s.ext, t.options, (function(t, e) { + if (!t) + for (var i in e) + a.add(i, e[i]); + for (var n = o.remove(s.uuid), r = 0, l = n.length; r < l; r++) { + var h = n[r]; + if (t) + h.onComplete(t); + else { + var c = e[h.id]; + c ? h.onComplete(null, c) : h.onComplete(new Error("can not retrieve data from package")) + } + } + } + )) + } + )) + } + } + , c = { + ".json": h.unpackJson + }; + e.exports = h + } + ), { + "../platform/deserialize-compiled": 208, + "../platform/js": 214, + "./cache": 36, + "./downloader": 45, + "./shared": 58 + }], + 53: [(function(t, e) { + "use strict"; + var i = t("../platform/CCSAXParser").plistParser + , n = t("../platform/js") + , r = t("./deserialize") + , s = t("./cache") + , a = t("./helper").isScene + , o = t("./shared") + , l = o.parsed + , h = o.files + , c = t("../platform/CCSys") + , u = c.__audioSupport + , _ = c.capabilities + , f = new s + , d = { + parseImage: function(t, e, i) { + if (_.imageBitmap && t instanceof Blob) { + var n = {}; + n.imageOrientation = e.__flipY__ ? "flipY" : "none", + n.premultiplyAlpha = e.__premultiplyAlpha__ ? "premultiply" : "none", + createImageBitmap(t, n).then((function(t) { + t.flipY = !!e.__flipY__, + t.premultiplyAlpha = !!e.__premultiplyAlpha__, + i && i(null, t) + } + ), (function(t) { + i && i(t, null) + } + )) + } else + i && i(null, t) + }, + parseAudio: function(t, e, i) { + t instanceof ArrayBuffer ? u.context.decodeAudioData(t, (function(t) { + i && i(null, t) + } + ), (function(t) { + i && i(t, null) + } + )) : i && i(null, t) + }, + parsePVRTex: function(t, e, i) { + var n = null + , r = null; + try { + var s = t instanceof ArrayBuffer ? t : t.buffer + , a = new Int32Array(s,0,13); + if (55727696 != a[0]) + throw new Error("Invalid magic number in PVR header"); + var o = a[7] + , l = a[6] + , h = a[12] + 52; + r = { + _data: new Uint8Array(s,h), + _compressed: !0, + width: o, + height: l + } + } catch (c) { + n = c + } + i && i(n, r) + }, + parsePKMTex: (function() { + function t(t, e) { + return t[e] << 8 | t[e + 1] + } + return function(e, i, n) { + var r = null + , s = null; + try { + var a = e instanceof ArrayBuffer ? e : e.buffer + , o = new Uint8Array(a) + , l = t(o, 6); + if (0 !== l && 1 !== l && 3 !== l) + return new Error("Invalid magic number in ETC header"); + var h = t(o, 12) + , c = t(o, 14); + t(o, 8), + t(o, 10), + s = { + _data: new Uint8Array(a,16), + _compressed: !0, + width: h, + height: c + } + } catch (u) { + r = u + } + n && n(r, s) + } + } + )(), + parsePlist: function(t, e, n) { + var r = null + , s = i.parse(t); + s || (r = new Error("parse failed")), + n && n(r, s) + }, + parseImport: function(t, e, i) { + if (!t) + return i && i(new Error("Json is empty")); + var n, s = null; + try { + n = r(t, e) + } catch (a) { + s = a + } + i && i(s, n) + }, + init: function() { + f.clear() + }, + register: function(t, e) { + "object" == typeof t ? n.mixin(p, t) : p[t] = e + }, + parse: function(t, e, i, n, r) { + var s, o, c; + (s = l.get(t)) ? r(null, s) : (o = f.get(t)) ? o.push(r) : (c = p[i]) ? (f.add(t, [r]), + c(e, n, (function(e, i) { + e ? h.remove(t) : a(i) || l.add(t, i); + for (var n = f.remove(t), r = 0, s = n.length; r < s; r++) + n[r](e, i) + } + ))) : r(null, e) + } + } + , p = { + ".png": d.parseImage, + ".jpg": d.parseImage, + ".bmp": d.parseImage, + ".jpeg": d.parseImage, + ".gif": d.parseImage, + ".ico": d.parseImage, + ".tiff": d.parseImage, + ".webp": d.parseImage, + ".image": d.parseImage, + ".pvr": d.parsePVRTex, + ".pkm": d.parsePKMTex, + ".mp3": d.parseAudio, + ".ogg": d.parseAudio, + ".wav": d.parseAudio, + ".m4a": d.parseAudio, + ".plist": d.parsePlist, + import: d.parseImport + }; + e.exports = d + } + ), { + "../platform/CCSAXParser": 200, + "../platform/CCSys": 202, + "../platform/js": 214, + "./cache": 36, + "./deserialize": 40, + "./helper": 49, + "./shared": 58 + }], + 54: [(function(t, e) { + "use strict"; + var i = t("./task") + , n = 0; + function r(t, e) { + if (Array.isArray(e)) { + this.id = n++, + this.name = t, + this.pipes = []; + for (var i = 0, r = e.length; i < r; i++) + "function" == typeof e[i] && this.pipes.push(e[i]) + } else + cc.warn("funcs must be an array") + } + r.prototype = { + constructor: r, + insert: function(t, e) { + if (!("function" != typeof t || e > this.pipes.length)) + return this.pipes.splice(e, 0, t), + this; + cc.warnID(4921) + }, + append: function(t) { + if ("function" == typeof t) + return this.pipes.push(t), + this + }, + remove: function(t) { + if ("number" == typeof t) + return this.pipes.splice(t, 1), + this + }, + sync: function(t) { + var e = this.pipes; + if (t instanceof i && 0 !== e.length) { + null != t.output && (t.input = t.output, + t.output = null), + t._isFinish = !1; + for (var n = 0, r = e.length; n < r; ) { + var s = (0, + e[n])(t); + if (s) + return t._isFinish = !0, + s; + ++n !== r && (t.input = t.output, + t.output = null) + } + return t._isFinish = !0, + t.output + } + }, + async: function(t) { + var e = this.pipes; + t instanceof i && 0 !== e.length && (null != t.output && (t.input = t.output, + t.output = null), + t._isFinish = !1, + this._flow(0, t)) + }, + _flow: function(t, e) { + var i = this; + (0, + this.pipes[t])(e, (function(n) { + n ? (e._isFinish = !0, + e.onComplete && e.onComplete(n)) : ++t < i.pipes.length ? (e.input = e.output, + e.output = null, + i._flow(t, e)) : (e._isFinish = !0, + e.onComplete && e.onComplete(n, e.output)) + } + )) + } + }, + e.exports = r + } + ), { + "./task": 59 + }], + 55: [(function(t, e) { + "use strict"; + var i = t("./task") + , n = t("./shared") + , r = n.transformPipeline + , s = n.RequestType; + e.exports = function(t, e) { + var n = t.options + , a = Object.create(null) + , o = Object.create(null); + for (var l in n) + switch (l) { + case s.PATH: + case s.UUID: + case s.DIR: + case s.SCENE: + case s.URL: + break; + case "__requestType__": + case "__isNative__": + case "ext": + case "type": + case "__nativeName__": + case "audioLoadMode": + case "bundle": + a[l] = n[l]; + break; + case "__exclude__": + case "__outputAsArray__": + o[l] = n[l]; + break; + default: + a[l] = n[l], + o[l] = n[l] + } + t.options = o; + var h = i.create({ + input: t.input, + options: a + }) + , c = null; + try { + t.output = t.source = r.sync(h) + } catch (f) { + c = f; + for (var u = 0, _ = h.output.length; u < _; u++) + h.output[u].recycle() + } + h.recycle(), + e(c) + } + } + ), { + "./shared": 58, + "./task": 59 + }], + 56: [(function(t, e) { + "use strict"; + var i = t("./depend-util") + , n = t("./cache"); + t("../assets/CCAsset"); + var r = t("./shared").assets + , s = t("../platform/utils").callInNextTick; + function a(t, e) { + t._uuid && e.push(t._uuid) + } + function o(t, e) { + for (var i = Object.getOwnPropertyNames(t), n = 0; n < i.length; n++) { + var r = i[n]; + if ("node" !== r && "__eventTargets" !== r) { + var s = t[r]; + if ("object" == typeof s && s) + if (Array.isArray(s)) + for (var o = 0; o < s.length; o++) { + var l = s[o]; + l instanceof cc.Asset && a(l, e) + } + else if (s.constructor && s.constructor !== Object) + s instanceof cc.Asset && a(s, e); + else + for (var h = Object.getOwnPropertyNames(s), c = 0; c < h.length; c++) { + var u = s[h[c]]; + u instanceof cc.Asset && a(u, e) + } + } + } + } + var l = []; + function h(t, e) { + for (var i = 0; i < t._components.length; i++) + o(t._components[i], e); + for (var n = 0; n < t._children.length; n++) + h(t._children[n], e) + } + function c(t, e, n, s) { + n.push(t._uuid); + for (var a = i.getDeps(t._uuid), o = 0, l = a.length; o < l; o++) { + var h = r.get(a[o]); + if (h) { + var u = h._uuid; + if (u in e ? e[u] += s : e[u] = h.refCount + s, + n.includes(u)) + continue; + c(h, e, n, s) + } + } + } + function u(t) { + var e = Object.create(null); + if (e[t._uuid] = t.refCount, + c(t, e, l, -1), + l.length = 0, + 0 !== e[t._uuid]) + return e[t._uuid]; + for (var i in e) + 0 !== e[i] && c(r.get(i), e, l, 1); + return l.length = 0, + e[t._uuid] + } + var _ = new n + , f = new n + , d = !1; + function p() { + d = !1, + f.forEach((function(t) { + m._free(t) + } + )), + f.clear() + } + var m = { + init: function() { + _.clear(), + f.clear() + }, + _addPersistNodeRef: function(t) { + var e = []; + h(t, e); + for (var i = 0, n = e.length; i < n; i++) { + var s = r.get(e[i]); + s && s.addRef() + } + _.add(t.uuid, e) + }, + _removePersistNodeRef: function(t) { + if (_.has(t.uuid)) { + for (var e = _.get(t.uuid), i = 0, n = e.length; i < n; i++) { + var s = r.get(e[i]); + s && s.decRef() + } + _.remove(t.uuid) + } + }, + _autoRelease: function(t, e, n) { + if (t) { + for (var s = i.getDeps(t._id), a = 0, o = s.length; a < o; a++) { + var l = r.get(s[a]); + l && l.decRef(t.autoReleaseAssets) + } + var h = i._depends.get(t._id); + if (h && h.persistDeps) + for (var c = h.persistDeps, u = 0, f = c.length; u < f; u++) { + var d = r.get(c[u]); + d && d.decRef(t.autoReleaseAssets) + } + t._id !== e._id && i.remove(t._id) + } + var p = i._depends.get(e._id); + for (var m in p && (p.persistDeps = []), + n) { + for (var y = n[m], v = _.get(y.uuid), g = 0, A = v.length; g < A; g++) { + var x = r.get(v[g]); + x && x.addRef() + } + p && p.persistDeps.push.apply(p.persistDeps, v) + } + }, + _free: function(t, e) { + if (f.remove(t._uuid), + cc.isValid(t, !0) && !(!e && t.refCount > 0 && u(t) > 0)) { + r.remove(t._uuid); + for (var n = i.getDeps(t._uuid), s = 0, a = n.length; s < a; s++) { + var o = r.get(n[s]); + o && (o.decRef(!1), + m._free(o, !1)) + } + t.destroy(), + i.remove(t._uuid) + } + }, + tryRelease: function(t, e) { + t instanceof cc.Asset && (e ? m._free(t, e) : (f.add(t._uuid, t), + d || (d = !0, + s(p)))) + } + }; + e.exports = m + } + ), { + "../assets/CCAsset": 62, + "../platform/utils": 217, + "./cache": 36, + "./depend-util": 38, + "./shared": 58 + }], + 57: [(function(t, e) { + "use strict"; + var i = []; + function n() { + this._id = "", + this.uuid = "", + this.url = "", + this.ext = ".json", + this.content = null, + this.file = null, + this.info = null, + this.config = null, + this.isNative = !1, + this.options = Object.create(null) + } + n.prototype = { + constructor: n, + get id() { + return this._id || (this._id = this.uuid + "@" + (this.isNative ? "native" : "import")), + this._id + }, + recycle: function() { + 500 !== i.length && (this._id = "", + this.uuid = "", + this.url = "", + this.ext = ".json", + this.content = null, + this.file = null, + this.info = null, + this.config = null, + this.isNative = !1, + this.options = Object.create(null), + i.push(this)) + } + }, + n.create = function() { + return 0 !== i.length ? i.pop() : new n + } + , + e.exports = n + } + ), {}], + 58: [(function(t, e) { + "use strict"; + var i = t("./cache") + , n = t("./pipeline") + , r = new i + , s = new i + , a = new i + , o = new i + , l = new n("normal load",[]) + , h = new n("fetch",[]) + , c = new n("transform url",[]); + e.exports = { + assets: r, + files: s, + parsed: a, + pipeline: l, + fetchPipeline: h, + transformPipeline: c, + RequestType: { + UUID: "uuid", + PATH: "path", + DIR: "dir", + URL: "url", + SCENE: "scene" + }, + bundles: o, + BuiltinBundleName: { + RESOURCES: "resources", + INTERNAL: "internal", + MAIN: "main", + START_SCENE: "start-scene" + } + } + } + ), { + "./cache": 36, + "./pipeline": 54 + }], + 59: [(function(t, e) { + "use strict"; + var i = 0 + , n = []; + function r(t) { + this.id = i++, + this._isFinish = !0, + this.onComplete = null, + this.onProgress = null, + this.onError = null, + this.source = null, + this.output = null, + this.input = null, + this.progress = null, + this.options = null, + this.set(t) + } + r.prototype = { + constructor: r, + set: function(t) { + t = t || Object.create(null), + this.onComplete = t.onComplete, + this.onProgress = t.onProgress, + this.onError = t.onError, + this.source = this.input = t.input, + this.output = null, + this.progress = t.progress, + this.options = t.options || Object.create(null) + }, + dispatch: function(t, e, i, n, r) { + switch (t) { + case "complete": + this.onComplete && this.onComplete(e, i, n, r); + break; + case "progress": + this.onProgress && this.onProgress(e, i, n, r); + break; + case "error": + this.onError && this.onError(e, i, n, r); + break; + default: + var s = "on" + t[0].toUpperCase() + t.substr(1); + "function" == typeof this[s] && this[s](e, i, n, r) + } + }, + recycle: function() { + 500 !== n.length && (this.onComplete = null, + this.onProgress = null, + this.onError = null, + this.source = this.output = this.input = null, + this.progress = null, + this.options = null, + n.push(this)) + }, + get isFinish() { + return this._isFinish + } + }, + r.create = function(t) { + var e = null; + return 0 !== n.length ? (e = n.pop()).set(t) : e = new r(t), + e + } + , + e.exports = r + } + ), {}], + 60: [(function(t, e) { + "use strict"; + var i = t("./helper").decodeUuid + , n = t("./request-item") + , r = t("./shared") + , s = r.RequestType + , a = r.bundles; + e.exports = { + parse: function(t) { + var e = t.input + , r = t.options; + e = Array.isArray(e) ? e : [e], + t.output = []; + for (var o = 0; o < e.length; o++) { + var l = e[o] + , h = n.create(); + if ("string" == typeof l && ((l = Object.create(null))[r.__requestType__ || s.UUID] = e[o]), + "object" == typeof l) + for (var c in cc.js.addon(l, r), + l.preset && cc.js.addon(l, cc.assetManager.presets[l.preset]), + l) { + switch (c) { + case s.UUID: + var u = h.uuid = i(l.uuid); + if (a.has(l.bundle)) { + if ((p = (m = a.get(l.bundle)._config).getAssetInfo(u)) && p.redirect) { + if (!a.has(p.redirect)) + throw new Error("Please load bundle " + p.redirect + " first"); + p = (m = a.get(p.redirect)._config).getAssetInfo(u) + } + h.config = m, + h.info = p + } + h.ext = l.ext || ".json"; + break; + case "__requestType__": + case "ext": + case "bundle": + case "preset": + case "type": + break; + case s.DIR: + if (a.has(l.bundle)) { + var _ = []; + a.get(l.bundle)._config.getDirWithPath(l.dir, l.type, _); + for (var f = 0, d = _.length; f < d; f++) { + var p = _[f]; + e.push({ + uuid: p.uuid, + __isNative__: !1, + ext: ".json", + bundle: l.bundle + }) + } + } + h.recycle(), + h = null; + break; + case s.PATH: + if (a.has(l.bundle)) { + if ((p = (m = a.get(l.bundle)._config).getInfoWithPath(l.path, l.type)) && p.redirect) { + if (!a.has(p.redirect)) + throw new Error("you need to load bundle " + p.redirect + " first"); + p = (m = a.get(p.redirect)._config).getAssetInfo(p.uuid) + } + if (!p) + throw h.recycle(), + new Error("Bundle " + l.bundle + " doesn't contain " + l.path); + h.config = m, + h.uuid = p.uuid, + h.info = p + } + h.ext = l.ext || ".json"; + break; + case s.SCENE: + if (a.has(l.bundle)) { + var m; + if ((p = (m = a.get(l.bundle)._config).getSceneInfo(l.scene)) && p.redirect) { + if (!a.has(p.redirect)) + throw new Error("you need to load bundle " + p.redirect + " first"); + p = (m = a.get(p.redirect)._config).getAssetInfo(p.uuid) + } + if (!p) + throw h.recycle(), + new Error("Bundle " + m.name + " doesn't contain scene " + l.scene); + h.config = m, + h.uuid = p.uuid, + h.info = p + } + break; + case "__isNative__": + h.isNative = l.__isNative__; + break; + case s.URL: + h.url = l.url, + h.uuid = l.uuid || l.url, + h.ext = l.ext || cc.path.extname(l.url), + h.isNative = void 0 === l.__isNative__ || l.__isNative__; + break; + default: + h.options[c] = l[c] + } + if (!h) + break + } + if (h && (t.output.push(h), + !h.uuid && !h.url)) + throw new Error("Can not parse this input:" + JSON.stringify(l)) + } + return null + }, + combine: function(t) { + for (var e = t.output = t.input, i = 0; i < e.length; i++) { + var n = e[i]; + if (!n.url) { + var r, s, a = n.config; + s = n.isNative ? a && a.nativeBase ? a.base + a.nativeBase : cc.assetManager.generalNativeBase : a && a.importBase ? a.base + a.importBase : cc.assetManager.generalImportBase; + var o = n.uuid + , l = ""; + n.info && (l = n.isNative ? n.info.nativeVer ? "." + n.info.nativeVer : "" : n.info.ver ? "." + n.info.ver : ""), + r = ".ttf" === n.ext ? s + "/" + o.slice(0, 2) + "/" + o + l + "/" + n.options.__nativeName__ : s + "/" + o.slice(0, 2) + "/" + o + l + n.ext, + n.url = r + } + } + return null + } + } + } + ), { + "./helper": 49, + "./request-item": 57, + "./shared": 58 + }], + 61: [(function(t, e) { + "use strict"; + var i = t("./depend-util") + , n = t("./helper") + , r = n.isScene + , s = n.decodeUuid + , a = t("./shared").assets + , o = t("../platform/utils").callInNextTick; + t("../assets/CCAsset"); + var l = { + processOptions: function(t) { + var e = t.uuids + , i = t.paths + , n = t.types + , r = t.deps + , a = t.paths = Object.create(null); + if (!1 === t.debug) { + for (var o = 0, l = e.length; o < l; o++) + e[o] = s(e[o]); + for (var h in i) { + var c = i[h] + , u = c[1]; + c[1] = n[u] + } + } else { + for (var _ = Object.create(null), f = 0, d = e.length; f < d; f++) { + var p = e[f]; + e[f] = _[p] = s(p) + } + e = _ + } + for (var m in i) { + var y = i[m]; + a[e[m]] = y + } + var v = t.scenes; + for (var g in v) { + var A = v[g]; + v[g] = e[A] + } + var x = t.packs; + for (var b in x) + for (var C = x[b], T = 0; T < C.length; ++T) + C[T] = e[C[T]]; + var S = t.versions; + if (S) + for (var w in S) + for (var E = S[w], M = 0; M < E.length; M += 2) { + var D = E[M]; + E[M] = e[D] || D + } + var B = t.redirect; + if (B) + for (var I = 0; I < B.length; I += 2) + B[I] = e[B[I]], + B[I + 1] = r[B[I + 1]] + }, + clear: function(t, e) { + for (var i = 0, n = t.input.length; i < n; i++) { + var r = t.input[i]; + e && !r.isNative && r.content && r.content.decRef && r.content.decRef(!1), + r.recycle() + } + t.input = null + }, + urlAppendTimestamp: function(t) { + return cc.assetManager.downloader.appendTimeStamp && "string" == typeof t ? /\?/.test(t) ? t + "&_t=" + (new Date - 0) : t + "?_t=" + (new Date - 0) : t + }, + retry: function(t, e, i, n, r) { + t(r = r || 0, (function(s, a) { + r++, + !s || r > e ? n && n(s, a) : setTimeout((function() { + l.retry(t, e, i, n, r) + } + ), i) + } + )) + }, + getDepends: function(t, e, n, r, s, a, o) { + try { + var l = i.parse(t, e) + , h = !0; + if (e instanceof cc.Asset && (!e.__nativeDepend__ || e._nativeAsset) && (h = !1), + s) { + for (var c = 0, u = l.deps.length; c < u; c++) { + var _ = l.deps[c]; + _ in n || (n[_] = !0, + r.push({ + uuid: _, + bundle: o && o.name + })) + } + h && l.nativeDep && (o && (l.nativeDep.bundle = o.name), + r.push(Object.assign({}, l.nativeDep))) + } else { + a = !!e.asyncLoadAssets || a && !l.preventDeferredLoadDependents; + for (var f = 0, d = l.deps.length; f < d; f++) { + var p = l.deps[f]; + p in n || (n[p] = !0, + r.push({ + uuid: p, + __asyncLoadAssets__: a, + bundle: o && o.name + })) + } + h && !a && !l.preventPreloadNativeObject && l.nativeDep && (o && (l.nativeDep.bundle = o.name), + r.push(Object.assign({}, l.nativeDep))) + } + } catch (m) { + cc.error(m.message, m.stack) + } + }, + cache: function(t, e, i) { + e && (!r(e) && i && a.add(t, e)) + }, + setProperties: function(t, e, i) { + var n = !1 + , r = e.__depends__; + if (r) { + for (var s = 0, a = r.length; s < a; s++) { + var o = r[s] + , l = i[o.uuid + "@import"]; + l ? o.owner[o.prop] = l.addRef() : (cc.error("The asset " + o.uuid + " is missing!"), + n = !0) + } + e.__depends__ = void 0 + } + return e.__nativeDepend__ && (e._nativeAsset || (i[t + "@native"] ? e._nativeAsset = i[t + "@native"] : n = !0), + e.__nativeDepend__ = void 0), + n + }, + gatherAsset: function(t) { + var e = t.source; + if (t.options.__outputAsArray__ || 1 !== e.length) + for (var i = t.output = [], n = 0, r = e.length; n < r; n++) + i.push(e[n].content); + else + t.output = e[0].content + }, + forEach: function(t, e, i) { + var n = 0 + , r = []; + 0 === t.length && i && i(r); + for (var s = 0, a = t.length; s < a; s++) + e(t[s], (function(t) { + t && r.push(t), + ++n === a && i && i(r) + } + )) + }, + parseParameters: function(t, e, i) { + if (void 0 === i) { + var n = "function" == typeof t; + e ? (i = e, + n || (e = null)) : void 0 === e && n && (i = t, + t = null, + e = null), + void 0 !== e && n && (e = t, + t = null) + } + return { + options: t = t || Object.create(null), + onProgress: e, + onComplete: i + } + }, + parseLoadResArgs: function(t, e, i) { + if (void 0 === i) { + var n = cc.js.isChildClassOf(t, cc.Asset); + e ? (i = e, + n && (e = null)) : void 0 !== e || n || (i = t, + e = null, + t = null), + void 0 === e || n || (e = t, + t = null) + } + return { + type: t, + onProgress: e, + onComplete: i + } + }, + checkCircleReference: function(t, e, n, r) { + if (r || (r = Object.create(null)), + !n[e] || r[e]) + return !1; + r[e] = !0; + var s = !1 + , a = i.getDeps(e); + if (a) + for (var o = 0, h = a.length; o < h; o++) { + var c = a[o]; + if (c === t || l.checkCircleReference(t, c, n, r)) { + s = !0; + break + } + } + return s + }, + asyncify: function(t) { + return function(e, i) { + if (t) { + var n = []; + Array.isArray(i) ? i.forEach((function(t) { + return t instanceof cc.Asset && n.push(t.addRef()) + } + )) : i instanceof cc.Asset && n.push(i.addRef()), + o((function() { + n.forEach((function(t) { + return t.decRef(!1) + } + )), + t(e, i) + } + )) + } + } + } + }; + e.exports = l + } + ), { + "../assets/CCAsset": 62, + "../platform/utils": 217, + "./depend-util": 38, + "./helper": 49, + "./shared": 58 + }], + 62: [(function(t, e) { + "use strict"; + var i = t("../platform/CCObject"); + cc.Asset = cc.Class({ + name: "cc.Asset", + extends: i, + ctor: function() { + Object.defineProperty(this, "_uuid", { + value: "", + writable: !0 + }), + this.loaded = !0, + this._nativeUrl = "", + this._ref = 0 + }, + properties: { + nativeUrl: { + get: function() { + if (!this._nativeUrl && this._native) { + var t = this._native; + if (47 === t.charCodeAt(0)) + return t.slice(1); + 46 === t.charCodeAt(0) ? this._nativeUrl = cc.assetManager.utils.getUrlWithUuid(this._uuid, { + nativeExt: t, + isNative: !0 + }) : this._nativeUrl = cc.assetManager.utils.getUrlWithUuid(this._uuid, { + __nativeName__: t, + nativeExt: cc.path.extname(t), + isNative: !0 + }) + } + return this._nativeUrl + }, + visible: !1 + }, + refCount: { + get: function() { + return this._ref + } + }, + _native: "", + _nativeAsset: { + get: function() { + return this._$nativeAsset + }, + set: function(t) { + this._$nativeAsset = t + } + }, + _nativeDep: { + get: function() { + if (this._native) + return { + __isNative__: !0, + uuid: this._uuid, + ext: this._native + } + } + } + }, + statics: { + deserialize: !1, + preventDeferredLoadDependents: !1, + preventPreloadNativeObject: !1 + }, + toString: function() { + return this.nativeUrl + }, + serialize: !1, + createNode: null, + _setRawAsset: function(t, e) { + this._native = !1 !== e ? t || void 0 : "/" + t + }, + addRef: function() { + return this._ref++, + this + }, + decRef: function(t) { + return this._ref > 0 && this._ref--, + !1 !== t && cc.assetManager._releaseManager.tryRelease(this), + this + } + }), + e.exports = cc.Asset + } + ), { + "../platform/CCObject": 199 + }], + 63: [(function(t, e) { + "use strict"; + var i = t("./CCAsset") + , n = t("../event/event-target") + , r = cc.Enum({ + WEB_AUDIO: 0, + DOM_AUDIO: 1 + }) + , s = cc.Class({ + name: "cc.AudioClip", + extends: i, + mixins: [n], + ctor: function() { + this._loading = !1, + this.loaded = !1, + this._audio = null + }, + properties: { + duration: 0, + loadMode: { + default: r.WEB_AUDIO, + type: r + }, + _nativeAsset: { + get: function() { + return this._audio + }, + set: function(t) { + t instanceof cc.AudioClip ? this._audio = t._nativeAsset : this._audio = t, + this._audio && (this.loaded = !0, + this.emit("load")) + }, + override: !0 + }, + _nativeDep: { + get: function() { + return { + uuid: this._uuid, + audioLoadMode: this.loadMode, + ext: cc.path.extname(this._native), + __isNative__: !0 + } + }, + override: !0 + } + }, + statics: { + LoadMode: r, + _loadByUrl: function(t, e) { + var i = cc.assetManager.assets.get(t); + i ? e(null, i) : cc.assetManager.loadRemote(t, (function(t, i) { + if (t) + return e(t); + e(null, i) + } + )) + } + }, + _ensureLoaded: function(t) { + if (this.loaded) + return t && t(); + if (t && this.once("load", t), + !this._loading) { + this._loading = !0; + var e = this; + cc.assetManager.postLoadNative(this, (function() { + e._loading = !1 + } + )) + } + }, + destroy: function() { + cc.audioEngine.uncache(this), + this._super() + } + }); + cc.AudioClip = s, + e.exports = s + } + ), { + "../event/event-target": 140, + "./CCAsset": 62 + }], + 64: [(function(t, e) { + "use strict"; + var i = function() { + this.u = 0, + this.v = 0, + this.w = 0, + this.h = 0, + this.offsetX = 0, + this.offsetY = 0, + this.textureID = 0, + this.valid = !1, + this.xAdvance = 0 + } + , n = function(t) { + this._letterDefinitions = {}, + this._texture = t + }; + n.prototype = { + constructor: n, + addLetterDefinitions: function(t, e) { + this._letterDefinitions[t] = e + }, + cloneLetterDefinition: function() { + var t = {}; + for (var e in this._letterDefinitions) { + var n = new i; + cc.js.mixin(n, this._letterDefinitions[e]), + t[e] = n + } + return t + }, + getTexture: function() { + return this._texture + }, + getLetter: function(t) { + return this._letterDefinitions[t] + }, + getLetterDefinitionForChar: function(t) { + var e = t.charCodeAt(0); + return this._letterDefinitions.hasOwnProperty(e) ? this._letterDefinitions[e] : null + }, + clear: function() { + this._letterDefinitions = {} + } + }; + var r = cc.Class({ + name: "cc.BitmapFont", + extends: cc.Font, + properties: { + fntDataStr: { + default: "" + }, + spriteFrame: { + default: null, + type: cc.SpriteFrame + }, + fontSize: { + default: -1 + }, + _fntConfig: null, + _fontDefDictionary: null + }, + onLoad: function() { + var t = this.spriteFrame; + this._fontDefDictionary || (this._fontDefDictionary = new n, + t && (this._fontDefDictionary._texture = t._texture)); + var e = this._fntConfig; + if (e) { + var r = e.fontDefDictionary; + for (var s in r) { + var a = new i + , o = r[s].rect; + a.offsetX = r[s].xOffset, + a.offsetY = r[s].yOffset, + a.w = o.width, + a.h = o.height, + a.u = o.x, + a.v = o.y, + a.textureID = 0, + a.valid = !0, + a.xAdvance = r[s].xAdvance, + this._fontDefDictionary.addLetterDefinitions(s, a) + } + } + } + }); + cc.BitmapFont = r, + cc.BitmapFont.FontLetterDefinition = i, + cc.BitmapFont.FontAtlas = n, + e.exports = r + } + ), {}], + 65: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.BufferAsset", + extends: cc.Asset, + ctor: function() { + this._buffer = null + }, + properties: { + _nativeAsset: { + get: function() { + return this._buffer + }, + set: function(t) { + this._buffer = t.buffer || t + }, + override: !0 + }, + buffer: function() { + return this._buffer + } + } + }); + cc.BufferAsset = e.exports = i + } + ), {}], + 66: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.Font", + extends: cc.Asset + }); + cc.Font = e.exports = i + } + ), {}], + 67: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.JsonAsset", + extends: cc.Asset, + properties: { + json: null + } + }); + e.exports = cc.JsonAsset = i + } + ), {}], + 68: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.LabelAtlas", + extends: cc.BitmapFont, + onLoad: function() { + this.spriteFrame ? this._fntConfig ? this._super() : cc.warnID(9101, this.name) : cc.warnID(9100, this.name) + } + }); + cc.LabelAtlas = i, + e.exports = i + } + ), {}], + 69: [(function(t, e) { + "use strict"; + var i = cc.Enum({ + AUTO: 0, + SINGLE_INSTANCE: 1, + MULTI_INSTANCE: 2 + }) + , n = cc.Class({ + name: "cc.Prefab", + extends: cc.Asset, + ctor: function() { + this._createFunction = null, + this._instantiatedTimes = 0 + }, + properties: { + data: null, + optimizationPolicy: i.AUTO, + asyncLoadAssets: !1, + readonly: { + default: !1, + editorOnly: !0 + } + }, + statics: { + OptimizationPolicy: i, + OptimizationPolicyThreshold: 3 + }, + createNode: !1, + compileCreateFunction: function() { + var e = t("../platform/instantiate-jit"); + this._createFunction = e.compile(this.data) + }, + _doInstantiate: function(t) { + return this.data._prefab || cc.warnID(3700), + this._createFunction || this.compileCreateFunction(), + this._createFunction(t) + }, + _instantiate: function() { + var t; + return this.optimizationPolicy !== i.SINGLE_INSTANCE && (this.optimizationPolicy === i.MULTI_INSTANCE || this._instantiatedTimes + 1 >= n.OptimizationPolicyThreshold) ? (t = this._doInstantiate(), + this.data._instantiate(t)) : t = this.data._instantiate(), + ++this._instantiatedTimes, + t + }, + destroy: function() { + this.data && this.data.destroy(), + this._super() + } + }); + cc.Prefab = e.exports = n, + cc.js.obsolete(cc, "cc._Prefab", "Prefab") + } + ), { + "../platform/instantiate-jit": 212 + }], + 70: [(function(t, e) { + "use strict"; + var i, n = (i = t("../../renderer/gfx")) && i.__esModule ? i : { + default: i + }, r = t("../renderer"), s = t("./CCTexture2D"), a = cc.Enum({ + RB_FMT_D24S8: n.default.RB_FMT_D24S8, + RB_FMT_S8: n.default.RB_FMT_S8, + RB_FMT_D16: n.default.RB_FMT_D16 + }), o = cc.Class({ + name: "cc.RenderTexture", + extends: s, + statics: { + DepthStencilFormat: a + }, + ctor: function() { + this._framebuffer = null + }, + initWithSize: function(t, e, i) { + this.width = Math.floor(t || cc.visibleRect.width), + this.height = Math.floor(e || cc.visibleRect.height), + this._resetUnderlyingMipmaps(); + var s, a = { + colors: [this._texture] + }; + this._depthStencilBuffer && this._depthStencilBuffer.destroy(), + i && (s = new n.default.RenderBuffer(r.device,i,t,e), + i === n.default.RB_FMT_D24S8 ? a.depthStencil = s : i === n.default.RB_FMT_S8 ? a.stencil = s : i === n.default.RB_FMT_D16 && (a.depth = s)), + this._depthStencilBuffer = s, + this._framebuffer && this._framebuffer.destroy(), + this._framebuffer = new n.default.FrameBuffer(r.device,t,e,a), + this._packable = !1, + this.loaded = !0, + this.emit("load") + }, + updateSize: function(t, e) { + this.width = Math.floor(t || cc.visibleRect.width), + this.height = Math.floor(e || cc.visibleRect.height), + this._resetUnderlyingMipmaps(); + var i = this._depthStencilBuffer; + i && i.update(this.width, this.height), + this._framebuffer._width = t, + this._framebuffer._height = e + }, + drawTextureAt: function(t, e, i) { + t._image && 0 !== t._image.width && this._texture.updateSubImage({ + x: e, + y: i, + image: t._image, + width: t.width, + height: t.height, + level: 0, + flipY: !1, + premultiplyAlpha: t._premultiplyAlpha + }) + }, + readPixels: function(t, e, i, n, r) { + if (!this._framebuffer || !this._texture) + return t; + e = e || 0, + i = i || 0; + var s = n || this.width + , a = r || this.height; + t = t || new Uint8Array(s * a * 4); + var o = cc.game._renderContext + , l = o.getParameter(o.FRAMEBUFFER_BINDING); + return o.bindFramebuffer(o.FRAMEBUFFER, this._framebuffer.getHandle()), + o.readPixels(e, i, s, a, o.RGBA, o.UNSIGNED_BYTE, t), + o.bindFramebuffer(o.FRAMEBUFFER, l), + t + }, + destroy: function() { + this._super(), + this._framebuffer && (this._framebuffer.destroy(), + this._framebuffer = null) + } + }); + cc.RenderTexture = e.exports = o + } + ), { + "../../renderer/gfx": 315, + "../renderer": 224, + "./CCTexture2D": 77 + }], + 71: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.SceneAsset", + extends: cc.Asset, + properties: { + scene: null, + asyncLoadAssets: void 0 + } + }); + cc.SceneAsset = i, + e.exports = i + } + ), {}], + 72: [(function() { + "use strict"; + var t = cc.Class({ + name: "cc.Script", + extends: cc.Asset + }); + cc._Script = t; + var e = cc.Class({ + name: "cc.JavaScript", + extends: t + }); + cc._JavaScript = e; + var i = cc.Class({ + name: "cc.TypeScript", + extends: t + }); + cc._TypeScript = i + } + ), {}], + 73: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.SpriteAtlas", + extends: cc.Asset, + properties: { + _spriteFrames: { + default: {} + } + }, + getTexture: function() { + var t = Object.keys(this._spriteFrames); + if (t.length > 0) { + var e = this._spriteFrames[t[0]]; + return e ? e.getTexture() : null + } + return null + }, + getSpriteFrame: function(t) { + var e = this._spriteFrames[t]; + return e ? (e.name || (e.name = t), + e) : null + }, + getSpriteFrames: function() { + var t = [] + , e = this._spriteFrames; + for (var i in e) + t.push(this.getSpriteFrame(i)); + return t + } + }); + cc.SpriteAtlas = i, + e.exports = i + } + ), {}], + 74: [(function(t, e) { + "use strict"; + var i = t("../event/event-target") + , n = [{ + u: 0, + v: 0 + }, { + u: 0, + v: 0 + }, { + u: 0, + v: 0 + }, { + u: 0, + v: 0 + }] + , r = cc.Class({ + name: "cc.SpriteFrame", + extends: t("../assets/CCAsset"), + mixins: [i], + properties: { + _textureSetter: { + set: function(t) { + t && this._texture !== t && this._refreshTexture(t) + } + }, + insetTop: { + get: function() { + return this._capInsets[1] + }, + set: function(t) { + this._capInsets[1] = t, + this._texture && this._calculateSlicedUV() + } + }, + insetBottom: { + get: function() { + return this._capInsets[3] + }, + set: function(t) { + this._capInsets[3] = t, + this._texture && this._calculateSlicedUV() + } + }, + insetLeft: { + get: function() { + return this._capInsets[0] + }, + set: function(t) { + this._capInsets[0] = t, + this._texture && this._calculateSlicedUV() + } + }, + insetRight: { + get: function() { + return this._capInsets[2] + }, + set: function(t) { + this._capInsets[2] = t, + this._texture && this._calculateSlicedUV() + } + } + }, + ctor: function() { + i.call(this); + var t = arguments[0] + , e = arguments[1] + , n = arguments[2] + , r = arguments[3] + , s = arguments[4]; + this._rect = null, + this.uv = [], + this._texture = null, + this._original = null, + this._offset = null, + this._originalSize = null, + this._rotated = !1, + this._flipX = !1, + this._flipY = !1, + this.vertices = null, + this._capInsets = [0, 0, 0, 0], + this.uvSliced = [], + void 0 !== t && this.setTexture(t, e, n, r, s) + }, + textureLoaded: function() { + return this._texture && this._texture.loaded + }, + onTextureLoaded: function(t, e) { + return this.textureLoaded() ? (t.call(e), + !0) : (this.once("load", t, e), + this.ensureLoadTexture(), + !1) + }, + isRotated: function() { + return this._rotated + }, + setRotated: function(t) { + this._rotated = t, + this._texture && this._calculateUV() + }, + isFlipX: function() { + return this._flipX + }, + isFlipY: function() { + return this._flipY + }, + setFlipX: function(t) { + this._flipX = t, + this._texture && this._calculateUV() + }, + setFlipY: function(t) { + this._flipY = t, + this._texture && this._calculateUV() + }, + getRect: function() { + return cc.rect(this._rect) + }, + setRect: function(t) { + this._rect = t, + this._texture && this._calculateUV() + }, + getOriginalSize: function() { + return cc.size(this._originalSize) + }, + setOriginalSize: function(t) { + this._originalSize ? (this._originalSize.width = t.width, + this._originalSize.height = t.height) : this._originalSize = cc.size(t) + }, + getTexture: function() { + return this._texture + }, + _textureLoadedCallback: function() { + var t = this._texture; + if (t) { + var e = t.width + , i = t.height; + this._rect ? this._checkRect(this._texture) : this._rect = cc.rect(0, 0, e, i), + this._originalSize || this.setOriginalSize(cc.size(e, i)), + this._offset || this.setOffset(cc.v2(0, 0)), + this._calculateUV(), + this.emit("load") + } + }, + _refreshTexture: function(t) { + this._texture = t, + t.loaded ? this._textureLoadedCallback() : t.once("load", this._textureLoadedCallback, this) + }, + getOffset: function() { + return cc.v2(this._offset) + }, + setOffset: function(t) { + this._offset = cc.v2(t) + }, + clone: function() { + return new r(this._texture,this.getRect(),this._rotated,this.getOffset(),this.getOriginalSize()) + }, + setTexture: function(t, e, i, n, r) { + if (1 !== arguments.length || t !== this._texture) { + if (this._rect = e || null, + n ? this.setOffset(n) : this._offset = null, + r ? this.setOriginalSize(r) : this._originalSize = null, + this._rotated = i || !1, + "string" != typeof t) + return t instanceof cc.Texture2D && this._refreshTexture(t), + !0; + cc.errorID(3401) + } + }, + ensureLoadTexture: function() { + this._texture && (this._texture.loaded || (this._refreshTexture(this._texture), + cc.assetManager.postLoadNative(this._texture))) + }, + _checkRect: function(t) { + var e = this._rect + , i = e.x + , n = e.y; + this._rotated ? (i += e.height, + n += e.width) : (i += e.width, + n += e.height), + i > t.width && cc.errorID(3300, t.nativeUrl + "/" + this.name, i, t.width), + n > t.height && cc.errorID(3400, t.nativeUrl + "/" + this.name, n, t.height) + }, + _flipXY: function(t) { + if (this._flipX) { + var e = t[0]; + t[0] = t[1], + t[1] = e, + e = t[2], + t[2] = t[3], + t[3] = e + } + if (this._flipY) { + var i = t[0]; + t[0] = t[2], + t[2] = i, + i = t[1], + t[1] = t[3], + t[3] = i + } + }, + _calculateSlicedUV: function() { + var t = this._rect + , e = this._texture.width + , i = this._texture.height + , r = this._capInsets[0] + , s = this._capInsets[2] + , a = t.width - r - s + , o = this._capInsets[1] + , l = this._capInsets[3] + , h = t.height - o - l + , c = this.uvSliced; + if (c.length = 0, + this._rotated) { + n[0].u = t.x / e, + n[1].u = (t.x + l) / e, + n[2].u = (t.x + l + h) / e, + n[3].u = (t.x + t.height) / e, + n[3].v = t.y / i, + n[2].v = (t.y + r) / i, + n[1].v = (t.y + r + a) / i, + n[0].v = (t.y + t.width) / i, + this._flipXY(n); + for (var u = 0; u < 4; ++u) + for (var _ = n[u], f = 0; f < 4; ++f) { + var d = n[3 - f]; + c.push({ + u: _.u, + v: d.v + }) + } + } else { + n[0].u = t.x / e, + n[1].u = (t.x + r) / e, + n[2].u = (t.x + r + a) / e, + n[3].u = (t.x + t.width) / e, + n[3].v = t.y / i, + n[2].v = (t.y + o) / i, + n[1].v = (t.y + o + h) / i, + n[0].v = (t.y + t.height) / i, + this._flipXY(n); + for (var p = 0; p < 4; ++p) + for (var m = n[p], y = 0; y < 4; ++y) { + var v = n[y]; + c.push({ + u: v.u, + v: m.v + }) + } + } + }, + _setDynamicAtlasFrame: function(t) { + t && (this._original = { + _texture: this._texture, + _x: this._rect.x, + _y: this._rect.y + }, + this._texture = t.texture, + this._rect.x = t.x, + this._rect.y = t.y, + this._calculateUV()) + }, + _resetDynamicAtlasFrame: function() { + this._original && (this._rect.x = this._original._x, + this._rect.y = this._original._y, + this._texture = this._original._texture, + this._original = null, + this._calculateUV()) + }, + _calculateUV: function() { + var t = this._rect + , e = this._texture + , i = this.uv + , n = e.width + , r = e.height; + if (this._rotated) { + var s = 0 === n ? 0 : t.x / n + , a = 0 === n ? 0 : (t.x + t.height) / n + , o = 0 === r ? 0 : (t.y + t.width) / r + , l = 0 === r ? 0 : t.y / r; + i[0] = s, + i[1] = l, + i[2] = s, + i[3] = o, + i[4] = a, + i[5] = l, + i[6] = a, + i[7] = o + } else { + var h = 0 === n ? 0 : t.x / n + , c = 0 === n ? 0 : (t.x + t.width) / n + , u = 0 === r ? 0 : (t.y + t.height) / r + , _ = 0 === r ? 0 : t.y / r; + i[0] = h, + i[1] = u, + i[2] = c, + i[3] = u, + i[4] = h, + i[5] = _, + i[6] = c, + i[7] = _ + } + if (this._flipX) { + var f = i[0]; + i[0] = i[2], + i[2] = f, + f = i[1], + i[1] = i[3], + i[3] = f, + f = i[4], + i[4] = i[6], + i[6] = f, + f = i[5], + i[5] = i[7], + i[7] = f + } + if (this._flipY) { + var d = i[0]; + i[0] = i[4], + i[4] = d, + d = i[1], + i[1] = i[5], + i[5] = d, + d = i[2], + i[2] = i[6], + i[6] = d, + d = i[3], + i[3] = i[7], + i[7] = d + } + var p = this.vertices; + if (p) { + p.nu.length = 0, + p.nv.length = 0; + for (var m = 0; m < p.u.length; m++) + p.nu[m] = p.u[m] / n, + p.nv[m] = p.v[m] / r + } + this._calculateSlicedUV() + }, + _serialize: !1, + _deserialize: function(t) { + var e = t.rect; + e && (this._rect = new cc.Rect(e[0],e[1],e[2],e[3])), + t.offset && this.setOffset(new cc.Vec2(t.offset[0],t.offset[1])), + t.originalSize && this.setOriginalSize(new cc.Size(t.originalSize[0],t.originalSize[1])), + this._rotated = 1 === t.rotated, + this._name = t.name; + var i = t.capInsets; + i && (this._capInsets[0] = i[0], + this._capInsets[1] = i[1], + this._capInsets[2] = i[2], + this._capInsets[3] = i[3]), + this.vertices = t.vertices, + this.vertices && (this.vertices.nu = [], + this.vertices.nv = []) + } + }) + , s = r.prototype; + s.copyWithZone = s.clone, + s.copy = s.clone, + s.initWithTexture = s.setTexture, + cc.SpriteFrame = r, + e.exports = r + } + ), { + "../assets/CCAsset": 62, + "../event/event-target": 140 + }], + 75: [(function(t, e) { + "use strict"; + var i = t("./CCFont") + , n = cc.Class({ + name: "cc.TTFFont", + extends: i, + properties: { + _fontFamily: null, + _nativeAsset: { + type: cc.String, + get: function() { + return this._fontFamily + }, + set: function(t) { + this._fontFamily = t || "Arial" + }, + override: !0 + }, + _nativeDep: { + get: function() { + return { + uuid: this._uuid, + __nativeName__: this._native, + ext: cc.path.extname(this._native), + __isNative__: !0 + } + }, + override: !0 + } + } + }); + cc.TTFFont = e.exports = n + } + ), { + "./CCFont": 66 + }], + 76: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.TextAsset", + extends: cc.Asset, + properties: { + text: "" + }, + toString: function() { + return this.text + } + }); + e.exports = cc.TextAsset = i + } + ), {}], + 77: [(function(t, e) { + "use strict"; + var i, n = (i = t("../../renderer/gfx")) && i.__esModule ? i : { + default: i + }, r = t("../event/event-target"), s = t("../renderer"); + t("../platform/CCClass"); + var a = new (t("../platform/id-generater"))("Tex") + , o = 1024 + , l = cc.Enum({ + RGB565: n.default.TEXTURE_FMT_R5_G6_B5, + RGB5A1: n.default.TEXTURE_FMT_R5_G5_B5_A1, + RGBA4444: n.default.TEXTURE_FMT_R4_G4_B4_A4, + RGB888: n.default.TEXTURE_FMT_RGB8, + RGBA8888: n.default.TEXTURE_FMT_RGBA8, + RGBA32F: n.default.TEXTURE_FMT_RGBA32F, + A8: n.default.TEXTURE_FMT_A8, + I8: n.default.TEXTURE_FMT_L8, + AI8: n.default.TEXTURE_FMT_L8_A8, + RGB_PVRTC_2BPPV1: n.default.TEXTURE_FMT_RGB_PVRTC_2BPPV1, + RGBA_PVRTC_2BPPV1: n.default.TEXTURE_FMT_RGBA_PVRTC_2BPPV1, + RGB_A_PVRTC_2BPPV1: o++, + RGB_PVRTC_4BPPV1: n.default.TEXTURE_FMT_RGB_PVRTC_4BPPV1, + RGBA_PVRTC_4BPPV1: n.default.TEXTURE_FMT_RGBA_PVRTC_4BPPV1, + RGB_A_PVRTC_4BPPV1: o++, + RGB_ETC1: n.default.TEXTURE_FMT_RGB_ETC1, + RGBA_ETC1: o++, + RGB_ETC2: n.default.TEXTURE_FMT_RGB_ETC2, + RGBA_ETC2: n.default.TEXTURE_FMT_RGBA_ETC2 + }) + , h = cc.Enum({ + REPEAT: 10497, + CLAMP_TO_EDGE: 33071, + MIRRORED_REPEAT: 33648 + }) + , c = cc.Enum({ + LINEAR: 9729, + NEAREST: 9728 + }) + , u = { + 9728: 0, + 9729: 1 + } + , _ = [] + , f = { + width: void 0, + height: void 0, + minFilter: void 0, + magFilter: void 0, + wrapS: void 0, + wrapT: void 0, + format: void 0, + genMipmaps: void 0, + images: void 0, + image: void 0, + flipY: void 0, + premultiplyAlpha: void 0 + }; + function d() { + for (var t in f) + f[t] = void 0; + return _.length = 0, + f.images = _, + f + } + var p = cc.Class({ + name: "cc.Texture2D", + extends: t("../assets/CCAsset"), + mixins: [r], + properties: { + _nativeAsset: { + get: function() { + return this._image + }, + set: function(t) { + t._compressed && t._data ? this.initWithData(t._data, this._format, t.width, t.height) : this.initWithElement(t) + }, + override: !0 + }, + _format: l.RGBA8888, + _premultiplyAlpha: !1, + _flipY: !1, + _minFilter: c.LINEAR, + _magFilter: c.LINEAR, + _mipFilter: c.LINEAR, + _wrapS: h.CLAMP_TO_EDGE, + _wrapT: h.CLAMP_TO_EDGE, + _isAlphaAtlas: !1, + _genMipmaps: !1, + genMipmaps: { + get: function() { + return this._genMipmaps + }, + set: function(t) { + if (this._genMipmaps !== t) { + var e = d(); + e.genMipmaps = t, + this.update(e) + } + } + }, + _packable: !0, + packable: { + get: function() { + return this._packable + }, + set: function(t) { + this._packable = t + } + }, + _nativeDep: { + get: function() { + return { + __isNative__: !0, + uuid: this._uuid, + ext: this._native, + __flipY__: this._flipY, + __premultiplyAlpha__: this._premultiplyAlpha + } + }, + override: !0 + } + }, + statics: { + PixelFormat: l, + WrapMode: h, + Filter: c, + _FilterIndex: u, + extnames: [".png", ".jpg", ".jpeg", ".bmp", ".webp", ".pvr", ".pkm"], + _parseExt: function(t, e) { + for (var i = cc.renderer.device, n = t.split("_"), r = "", s = "", a = 999, o = e, h = cc.macro.SUPPORT_TEXTURE_FORMATS, c = 0; c < n.length; c++) { + var u = n[c].split("@") + , _ = u[0]; + _ = p.extnames[_.charCodeAt(0) - 48] || _; + var f = h.indexOf(_); + if (-1 !== f && f < a) { + var d = u[1] ? parseInt(u[1]) : e; + if (".pvr" === _ && !i.ext("WEBGL_compressed_texture_pvrtc")) + continue; + if (!(d !== l.RGB_ETC1 && d !== l.RGBA_ETC1 || i.ext("WEBGL_compressed_texture_etc1"))) + continue; + if (!(d !== l.RGB_ETC2 && d !== l.RGBA_ETC2 || i.ext("WEBGL_compressed_texture_etc"))) + continue; + if (".webp" === _ && !cc.sys.capabilities.webp) + continue; + a = f, + s = _, + o = d + } else + r || (r = _) + } + return { + bestExt: s, + bestFormat: o, + defaultExt: r + } + } + }, + ctor: function() { + this._id = a.getNewId(), + this.loaded = !1, + this.width = 0, + this.height = 0, + this._hashDirty = !0, + this._hash = 0, + this._texture = null + }, + getImpl: function() { + return this._texture || (this._texture = new s.Texture2D(s.device,{})), + this._texture + }, + getId: function() { + return this._id + }, + toString: function() { + return this.nativeUrl || "" + }, + update: function(t) { + if (t) { + var e = !1; + void 0 !== t.width && (this.width = t.width), + void 0 !== t.height && (this.height = t.height), + void 0 !== t.minFilter && (this._minFilter = t.minFilter, + t.minFilter = u[t.minFilter]), + void 0 !== t.magFilter && (this._magFilter = t.magFilter, + t.magFilter = u[t.magFilter]), + void 0 !== t.mipFilter && (this._mipFilter = t.mipFilter, + t.mipFilter = u[t.mipFilter]), + void 0 !== t.wrapS && (this._wrapS = t.wrapS), + void 0 !== t.wrapT && (this._wrapT = t.wrapT), + void 0 !== t.format && (this._format = t.format), + void 0 !== t.flipY && (this._flipY = t.flipY, + e = !0), + void 0 !== t.premultiplyAlpha && (this._premultiplyAlpha = t.premultiplyAlpha, + e = !0), + void 0 !== t.genMipmaps && (this._genMipmaps = t.genMipmaps), + cc.sys.capabilities.imageBitmap && this._image instanceof ImageBitmap ? this._checkImageBitmap(this._upload.bind(this, t, e)) : this._upload(t, e) + } + }, + _upload: function(t, e) { + e && this._image && (t.image = this._image), + t.images && t.images.length > 0 ? this._image = t.images[0] : void 0 !== t.image && (this._image = t.image, + t.images || (_.length = 0, + t.images = _), + t.images.push(t.image)), + this._texture && this._texture.update(t), + this._hashDirty = !0 + }, + initWithElement: function(t) { + if (t) + if (this._image = t, + t.complete || t instanceof HTMLCanvasElement) + this.handleLoadedTexture(); + else if (cc.sys.capabilities.imageBitmap && t instanceof ImageBitmap) + this._checkImageBitmap(this.handleLoadedTexture.bind(this)); + else { + var e = this; + t.addEventListener("load", (function() { + e.handleLoadedTexture() + } + )), + t.addEventListener("error", (function(t) { + cc.warnID(3119, t.message) + } + )) + } + }, + initWithData: function(t, e, i, n) { + var r = d(); + return r.image = t, + r.images = [r.image], + r.genMipmaps = this._genMipmaps, + r.premultiplyAlpha = this._premultiplyAlpha, + r.flipY = this._flipY, + r.minFilter = u[this._minFilter], + r.magFilter = u[this._magFilter], + r.wrapS = this._wrapS, + r.wrapT = this._wrapT, + r.format = this._getGFXPixelFormat(e), + r.width = i, + r.height = n, + this._texture ? this._texture.update(r) : this._texture = new s.Texture2D(s.device,r), + this.width = i, + this.height = n, + this._updateFormat(), + this._checkPackable(), + this.loaded = !0, + this.emit("load"), + !0 + }, + getHtmlElementObj: function() { + return this._image + }, + destroy: function() { + cc.sys.capabilities.imageBitmap && this._image instanceof ImageBitmap && this._image.close && this._image.close(), + this._packable && cc.dynamicAtlasManager && cc.dynamicAtlasManager.deleteAtlasTexture(this), + this._image = null, + this._texture && this._texture.destroy(), + this._super() + }, + getPixelFormat: function() { + return this._format + }, + hasPremultipliedAlpha: function() { + return this._premultiplyAlpha || !1 + }, + isAlphaAtlas: function() { + return this._isAlphaAtlas + }, + handleLoadedTexture: function() { + if (this._image && this._image.width && this._image.height) { + this.width = this._image.width, + this.height = this._image.height; + var t = d(); + t.image = this._image, + t.images = [t.image], + t.width = this.width, + t.height = this.height, + t.genMipmaps = this._genMipmaps, + t.format = this._getGFXPixelFormat(this._format), + t.premultiplyAlpha = this._premultiplyAlpha, + t.flipY = this._flipY, + t.minFilter = u[this._minFilter], + t.magFilter = u[this._magFilter], + t.wrapS = this._wrapS, + t.wrapT = this._wrapT, + this._texture ? this._texture.update(t) : this._texture = new s.Texture2D(s.device,t), + this._updateFormat(), + this._checkPackable(), + this.loaded = !0, + this.emit("load"), + cc.macro.CLEANUP_IMAGE_CACHE && (this._image instanceof HTMLImageElement ? this._clearImage() : cc.sys.capabilities.imageBitmap && this._image instanceof ImageBitmap && this._image.close && this._image.close()) + } + }, + description: function() { + return "" + }, + releaseTexture: function() { + this._image = null, + this._texture && this._texture.destroy() + }, + setWrapMode: function(t, e) { + if (this._wrapS !== t || this._wrapT !== e) { + var i = d(); + i.wrapS = t, + i.wrapT = e, + this.update(i) + } + }, + setFilters: function(t, e) { + if (this._minFilter !== t || this._magFilter !== e) { + var i = d(); + i.minFilter = t, + i.magFilter = e, + this.update(i) + } + }, + setFlipY: function(t) { + if (this._flipY !== t) { + var e = d(); + e.flipY = t, + e.premultiplyAlpha = this._premultiplyAlpha, + this.update(e) + } + }, + setPremultiplyAlpha: function(t) { + if (this._premultiplyAlpha !== t) { + var e = d(); + e.flipY = this._flipY, + e.premultiplyAlpha = t, + this.update(e) + } + }, + _updateFormat: function() { + this._isAlphaAtlas = this._format === l.RGBA_ETC1 || this._format === l.RGB_A_PVRTC_4BPPV1 || this._format === l.RGB_A_PVRTC_2BPPV1 + }, + _checkPackable: function() { + var t = cc.dynamicAtlasManager; + if (t) + if (this._isCompressed()) + this._packable = !1; + else { + var e = this.width + , i = this.height; + !this._image || e > t.maxFrameSize || i > t.maxFrameSize || this._getHash() !== t.Atlas.DEFAULT_HASH ? this._packable = !1 : this._image && this._image instanceof HTMLCanvasElement && (this._packable = !0) + } + }, + _getOpts: function() { + var t = d(); + return t.width = this.width, + t.height = this.height, + t.genMipmaps = this._genMipmaps, + t.format = this._format, + t.premultiplyAlpha = this._premultiplyAlpha, + t.anisotropy = this._anisotropy, + t.flipY = this._flipY, + t.minFilter = u[this._minFilter], + t.magFilter = u[this._magFilter], + t.mipFilter = u[this._mipFilter], + t.wrapS = this._wrapS, + t.wrapT = this._wrapT, + t + }, + _getGFXPixelFormat: function(t) { + return t === l.RGBA_ETC1 ? t = l.RGB_ETC1 : t === l.RGB_A_PVRTC_4BPPV1 ? t = l.RGB_PVRTC_4BPPV1 : t === l.RGB_A_PVRTC_2BPPV1 && (t = l.RGB_PVRTC_2BPPV1), + t + }, + _resetUnderlyingMipmaps: function(t) { + var e = this._getOpts(); + e.images = t || [null], + this._texture ? this._texture.update(e) : this._texture = new s.Texture2D(s.device,e) + }, + _serialize: !1, + _deserialize: function(t) { + var e = t.split(",") + , i = e[0]; + if (i) { + var n = p._parseExt(i, this._format); + if (n.bestExt) + this._setRawAsset(n.bestExt), + this._format = n.bestFormat; + else { + if (!n.defaultExt) + throw new Error(cc.debug.getError(3121)); + this._setRawAsset(n.defaultExt), + cc.warnID(3120, n.defaultExt, n.defaultExt) + } + } + 8 === e.length && (this._minFilter = parseInt(e[1]), + this._magFilter = parseInt(e[2]), + this._wrapS = parseInt(e[3]), + this._wrapT = parseInt(e[4]), + this._premultiplyAlpha = 49 === e[5].charCodeAt(0), + this._genMipmaps = 49 === e[6].charCodeAt(0), + this._packable = 49 === e[7].charCodeAt(0)) + }, + _getHash: function() { + if (!this._hashDirty) + return this._hash; + var t = this._genMipmaps ? 1 : 0 + , e = this._premultiplyAlpha ? 1 : 0 + , i = this._flipY ? 1 : 0 + , n = this._minFilter === c.LINEAR ? 1 : 2 + , r = this._magFilter === c.LINEAR ? 1 : 2 + , s = this._wrapS === h.REPEAT ? 1 : this._wrapS === h.CLAMP_TO_EDGE ? 2 : 3 + , a = this._wrapT === h.REPEAT ? 1 : this._wrapT === h.CLAMP_TO_EDGE ? 2 : 3 + , o = this._format; + return this._image, + this._hash = Number("" + n + r + o + s + a + t + e + i), + this._hashDirty = !1, + this._hash + }, + _isCompressed: function() { + return this._format < l.A8 || this._format > l.RGBA32F + }, + _clearImage: function() { + this._image.src = "" + }, + _checkImageBitmap: function(t) { + var e = this + , i = this._image + , n = this._flipY + , r = this._premultiplyAlpha; + this._flipY !== i.flipY || this._premultiplyAlpha !== i.premultiplyAlpha ? createImageBitmap(i, { + imageOrientation: n !== i.flipY ? "flipY" : "none", + premultiplyAlpha: r ? "premultiply" : "none" + }).then((function(s) { + i.close && i.close(), + s.flipY = n, + s.premultiplyAlpha = r, + e._image = s, + t() + } + ), (function(t) { + cc.error(t.message) + } + )) : t() + } + }); + cc.Texture2D = e.exports = p + } + ), { + "../../renderer/gfx": 315, + "../assets/CCAsset": 62, + "../event/event-target": 140, + "../platform/CCClass": 193, + "../platform/id-generater": 210, + "../renderer": 224 + }], + 78: [(function(t) { + "use strict"; + t("./CCAsset"), + t("./CCFont"), + t("./CCPrefab"), + t("./CCAudioClip"), + t("./CCScripts"), + t("./CCSceneAsset"), + t("./CCSpriteFrame"), + t("./CCTexture2D"), + t("./CCRenderTexture"), + t("./CCTTFFont"), + t("./CCSpriteAtlas"), + t("./CCBitmapFont"), + t("./CCLabelAtlas"), + t("./CCTextAsset"), + t("./CCJsonAsset"), + t("./CCBufferAsset"), + t("./material") + } + ), { + "./CCAsset": 62, + "./CCAudioClip": 63, + "./CCBitmapFont": 64, + "./CCBufferAsset": 65, + "./CCFont": 66, + "./CCJsonAsset": 67, + "./CCLabelAtlas": 68, + "./CCPrefab": 69, + "./CCRenderTexture": 70, + "./CCSceneAsset": 71, + "./CCScripts": 72, + "./CCSpriteAtlas": 73, + "./CCSpriteFrame": 74, + "./CCTTFFont": 75, + "./CCTextAsset": 76, + "./CCTexture2D": 77, + "./material": 85 + }], + 79: [(function(t, e) { + "use strict"; + var i, n = (i = t("../CCAsset")) && i.__esModule ? i : { + default: i + }, r = t("./effect-parser"), s = cc.Class({ + name: "cc.EffectAsset", + extends: n.default, + ctor: function() { + this._effect = null + }, + properties: { + properties: Object, + techniques: [], + shaders: [] + }, + onLoad: function() { + if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { + for (var t = cc.renderer._forward._programLib, e = 0; e < this.shaders.length; e++) + t.define(this.shaders[e]); + this._initEffect() + } + }, + _initEffect: function() { + this._effect || (this._effect = (0, + r.parseEffect)(this), + Object.freeze(this._effect)) + }, + getInstantiatedEffect: function() { + return this._initEffect(), + this._effect.clone() + }, + getEffect: function() { + return this._initEffect(), + this._effect + } + }); + e.exports = cc.EffectAsset = s + } + ), { + "../CCAsset": 62, + "./effect-parser": 82 + }], + 80: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = t("../CCAsset") + , r = t("../CCTexture2D") + , s = (r.PixelFormat, + t("./CCEffectAsset")) + , a = (t("../../utils/texture-util"), + cc.gfx) + , o = cc.Enum({ + SPRITE: "2d-sprite", + GRAY_SPRITE: "2d-gray-sprite", + UNLIT: "unlit" + }) + , l = cc.Class({ + name: "cc.Material", + extends: n, + ctor: function() { + this.loaded = !1, + this._manualHash = !1, + this._dirty = !0, + this._effect = null + }, + properties: { + _defines: { + default: void 0, + type: Object + }, + _props: { + default: void 0, + type: Object + }, + _effectAsset: { + type: s, + default: null + }, + _techniqueIndex: 0, + _techniqueData: Object, + effectName: void 0, + effectAsset: { + get: function() { + return this._effectAsset + }, + set: function(t) { + cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS && (this._effectAsset = t, + t ? this._effect = this._effectAsset.getInstantiatedEffect() : cc.error("Can not set an empty effect asset.")) + } + }, + effect: { + get: function() { + return this._effect + } + }, + techniqueIndex: { + get: function() { + return this._techniqueIndex + }, + set: function(t) { + this._techniqueIndex = t, + this._effect.switchTechnique(t) + } + } + }, + statics: { + getBuiltinMaterial: function(t) { + return cc.game.renderType === cc.game.RENDER_TYPE_CANVAS ? new cc.Material : cc.assetManager.builtins.getBuiltin("material", "builtin-" + t) + }, + BUILTIN_NAME: o, + createWithBuiltin: function(t, e) { + void 0 === e && (e = 0); + var i = cc.assetManager.builtins.getBuiltin("effect", "builtin-" + t); + return l.create(i, e) + }, + create: function(t, e) { + if (void 0 === e && (e = 0), + !t) + return null; + var i = new l; + return i.effectAsset = t, + i.techniqueIndex = e, + i + } + }, + setProperty: function(t, e, i, n) { + if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { + if ("string" == typeof i && (i = parseInt(i)), + e instanceof r) { + var s = e.isAlphaAtlas() + , a = "CC_USE_ALPHA_ATLAS_" + t + , o = this.getDefine(a, i); + (s || o) && this.define(a, s), + e.loaded || cc.assetManager.postLoadNative(e) + } + this._effect.setProperty(t, e, i, n) + } + }, + getProperty: function(t, e) { + return "string" == typeof e && (e = parseInt(e)), + this._effect.getProperty(t, e) + }, + define: function(t, e, i, n) { + cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS && ("string" == typeof i && (i = parseInt(i)), + this._effect.define(t, e, i, n)) + }, + getDefine: function(t, e) { + return "string" == typeof e && (e = parseInt(e)), + this._effect.getDefine(t, e) + }, + setCullMode: function(t, e) { + void 0 === t && (t = a.CULL_BACK), + this._effect.setCullMode(t, e) + }, + setDepth: function(t, e, i, n) { + void 0 === t && (t = !1), + void 0 === e && (e = !1), + void 0 === i && (i = a.DS_FUNC_LESS), + this._effect.setDepth(t, e, i, n) + }, + setBlend: function(t, e, i, n, r, s, o, l, h) { + void 0 === t && (t = !1), + void 0 === e && (e = a.BLEND_FUNC_ADD), + void 0 === i && (i = a.BLEND_SRC_ALPHA), + void 0 === n && (n = a.BLEND_ONE_MINUS_SRC_ALPHA), + void 0 === r && (r = a.BLEND_FUNC_ADD), + void 0 === s && (s = a.BLEND_SRC_ALPHA), + void 0 === o && (o = a.BLEND_ONE_MINUS_SRC_ALPHA), + void 0 === l && (l = 4294967295), + this._effect.setBlend(t, e, i, n, r, s, o, l, h) + }, + setStencilEnabled: function(t, e) { + void 0 === t && (t = a.STENCIL_INHERIT), + this._effect.setStencilEnabled(t, e) + }, + setStencil: function(t, e, i, n, r, s, o, l, h) { + void 0 === t && (t = a.STENCIL_INHERIT), + void 0 === e && (e = a.DS_FUNC_ALWAYS), + void 0 === i && (i = 0), + void 0 === n && (n = 255), + void 0 === r && (r = a.STENCIL_OP_KEEP), + void 0 === s && (s = a.STENCIL_OP_KEEP), + void 0 === o && (o = a.STENCIL_OP_KEEP), + void 0 === l && (l = 255), + this._effect.setStencil(t, e, i, n, r, s, o, l, h) + }, + updateHash: function(t) { + this._manualHash = t, + this._effect && this._effect.updateHash(t) + }, + getHash: function() { + return this._manualHash || this._effect && this._effect.getHash() + }, + onLoad: function() { + if (this.effectAsset = this._effectAsset, + this._effect) { + this._techniqueIndex && this._effect.switchTechnique(this._techniqueIndex), + this._techniqueData = this._techniqueData || {}; + var t = this._techniqueData; + for (var e in t) { + var i = t[e = parseInt(e)]; + if (i) { + for (var n in i.defines) + this.define(n, i.defines[n], e); + for (var r in i.props) + this.setProperty(r, i.props[r], e) + } + } + } + } + }) + , h = l; + i.default = h, + cc.Material = l, + e.exports = i.default + } + ), { + "../../utils/texture-util": 275, + "../CCAsset": 62, + "../CCTexture2D": 77, + "./CCEffectAsset": 79 + }], + 81: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../../../renderer/core/pass")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + var a = cc.gfx + , o = (function() { + function t() { + this._dirty = !0, + this._name = "", + this._technique = null + } + var e, i, n = t.prototype; + return n._createPassProp = function(t, e) { + var i = e._properties[t]; + if (i) { + var n = Object.create(null); + return n.name = t, + n.type = i.type, + i.value instanceof Float32Array ? n.value = new Float32Array(i.value) : i.value instanceof Float64Array ? n.value = new Float64Array(i.value) : n.value = i.value, + e._properties[t] = n, + n + } + } + , + n._setPassProperty = function(t, e, i, n) { + var s = i._properties; + return s.hasOwnProperty(t) || this._createPassProp(t, i), + s[t].value === e || (this._dirty = !0, + r.default.prototype.setProperty.call(i, t, e, n)) + } + , + n.setProperty = function(t, e, i, n) { + var r = !1 + , s = this.passes + , a = 0 + , o = s.length; + void 0 !== i && (a = i, + o = i + 1); + for (var l = a; l < o; l++) + this._setPassProperty(t, e, s[l], n) && (r = !0); + r || cc.warnID(9103, this.name, t) + } + , + n.getProperty = function(t, e) { + var i = this.passes; + if (!(e >= i.length)) { + var n = 0 + , r = i.length; + void 0 !== e && (n = e, + r = e + 1); + for (var s = n; s < r; s++) { + var a = i[s].getProperty(t); + if (void 0 !== a) + return a + } + } + } + , + n.define = function(t, e, i, n) { + var r = !1 + , s = this.passes + , a = 0 + , o = s.length; + void 0 !== i && (a = i, + o = i + 1); + for (var l = a; l < o; l++) + s[l].define(t, e, n) && (r = !0); + r || cc.warnID(9104, this.name, t) + } + , + n.getDefine = function(t, e) { + var i = this.passes; + if (!(e >= i.length)) { + var n = 0 + , r = i.length; + void 0 !== e && (n = e, + r = e + 1); + for (var s = n; s < r; s++) { + var a = i[s].getDefine(t); + if (void 0 !== a) + return a + } + } + } + , + n.setCullMode = function(t, e) { + void 0 === t && (t = a.CULL_BACK); + var i = this.passes + , n = 0 + , r = i.length; + void 0 !== e && (n = e, + r = e + 1); + for (var s = n; s < r; s++) + i[s].setCullMode(t); + this._dirty = !0 + } + , + n.setDepth = function(t, e, i, n) { + var r = this.passes + , s = 0 + , a = r.length; + void 0 !== n && (s = n, + a = n + 1); + for (var o = s; o < a; o++) + r[o].setDepth(t, e, i); + this._dirty = !0 + } + , + n.setBlend = function(t, e, i, n, r, s, a, o, l) { + var h = this.passes + , c = 0 + , u = h.length; + void 0 !== l && (c = l, + u = l + 1); + for (var _ = c; _ < u; _++) + h[_].setBlend(t, e, i, n, r, s, a, o); + this._dirty = !0 + } + , + n.setStencilEnabled = function(t, e) { + void 0 === t && (t = a.STENCIL_INHERIT); + var i = this.passes + , n = 0 + , r = i.length; + void 0 !== e && (n = e, + r = e + 1); + for (var s = n; s < r; s++) + i[s].setStencilEnabled(t); + this._dirty = !0 + } + , + n.setStencil = function(t, e, i, n, r, s, a, o, l) { + var h = this.passes + , c = 0 + , u = h.length; + void 0 !== l && (c = l, + u = l + 1); + for (var _ = c; _ < u; _++) { + var f = h[_]; + f.setStencilFront(t, e, i, n, r, s, a, o), + f.setStencilBack(t, e, i, n, r, s, a, o) + } + this._dirty = !0 + } + , + e = t, + (i = [{ + key: "name", + get: function() { + return this._name + } + }, { + key: "technique", + get: function() { + return this._technique + } + }, { + key: "passes", + get: function() { + return [] + } + }]) && s(e.prototype, i), + t + } + )(); + i.default = o, + cc.EffectBase = o, + e.exports = i.default + } + ), { + "../../../renderer/core/pass": 306 + }], + 82: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.parseEffect = function(t) { + var e = _(t); + return new a.default(t.name,e,0,t) + } + ; + var n = l(t("../../../renderer/core/pass")) + , r = t("../../../renderer/types") + , s = l(t("../../../renderer/enums")) + , a = l(t("./effect")) + , o = l(t("../../../renderer/core/technique")); + function l(t) { + return t && t.__esModule ? t : { + default: t + } + } + function h(t) { + return cc.renderer._forward._programLib.getTemplate(t) + } + function c(t, e) { + var i = e.properties || {} + , n = h(e.program) + , a = function(e) { + if (!n.uniforms.find((function(t) { + return t.name === e + } + ))) + return cc.warnID(9107, t.name, e), + "continue" + }; + for (var o in i) + a(o); + var l = {}; + return n.uniforms.forEach((function(t) { + var e, n = t.name, a = l[n] = Object.assign({}, t), o = i[n]; + void 0 === (e = o ? o.type === s.default.PARAM_TEXTURE_2D ? null : o.type === s.default.PARAM_INT || o.type === s.default.PARAM_FLOAT ? Array.isArray(o.value) ? o.value[0] : o.value : new Float32Array(o.value) : r.enums2default[t.type]) && (e = null), + a.value = e + } + )), + l + } + function u(t) { + var e = {}; + return h(t.program).defines.forEach((function(t) { + e[t.name] = r.enums2default[t.type] + } + )), + e + } + function _(t) { + for (var e = t.techniques.length, i = new Array(e), r = 0; r < e; ++r) { + for (var s = t.techniques[r], a = s.name || r, l = s.passes.length, h = new Array(l), _ = 0; _ < l; ++_) { + var f = s.passes[_] + , d = f.name || _ + , p = t.name + "-" + a + "-" + d + , m = f.stage || "opaque" + , y = c(t, f) + , v = u(f) + , g = h[_] = new n.default(d,p,f.program,m,y,v); + f.rasterizerState && g.setCullMode(f.rasterizerState.cullMode); + var A = f.blendState && f.blendState.targets[0]; + A && g.setBlend(A.blend, A.blendEq, A.blendSrc, A.blendDst, A.blendAlphaEq, A.blendSrcAlpha, A.blendDstAlpha, A.blendColor); + var x = f.depthStencilState; + x && (g.setDepth(x.depthTest, x.depthWrite, x.depthFunc), + g.setStencilFront(x.stencilTest, x.stencilFuncFront, x.stencilRefFront, x.stencilMaskFront, x.stencilFailOpFront, x.stencilZFailOpFront, x.stencilZPassOpFront, x.stencilWriteMaskFront), + g.setStencilBack(x.stencilTest, x.stencilFuncBack, x.stencilRefBack, x.stencilMaskBack, x.stencilFailOpBack, x.stencilZFailOpBack, x.stencilZPassOpBack, x.stencilWriteMaskBack)) + } + i[r] = new o.default(a,h) + } + return i + } + } + ), { + "../../../renderer/core/pass": 306, + "../../../renderer/core/technique": 308, + "../../../renderer/enums": 310, + "../../../renderer/types": 338, + "./effect": 84 + }], + 83: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = a(t("../../../renderer/murmurhash2_gc")) + , r = a(t("./utils")) + , s = a(t("./effect-base")); + function a(t) { + return t && t.__esModule ? t : { + default: t + } + } + function o(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + function l(t, e) { + return (l = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + cc.gfx; + var h = (function(t) { + var e, i; + function s(e) { + var i; + return (i = t.call(this) || this)._effect = void 0, + i._passes = [], + i._stagePasses = {}, + i._hash = 0, + i.init(e), + i + } + i = t, + (e = s).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + l(e, i); + var a, h, c = s.prototype; + return c._onEffectChanged = function() {} + , + c.init = function(t) { + if (t instanceof s && (t = t.effect), + this._effect = t, + this._dirty = !0, + t) { + var e = t.passes + , i = this._passes; + i.length = 0; + for (var n = this._stagePasses = {}, r = 0; r < e.length; r++) { + var a = i[r] = Object.setPrototypeOf({}, e[r]); + a._properties = Object.setPrototypeOf({}, e[r]._properties), + a._defines = Object.setPrototypeOf({}, e[r]._defines), + n[a._stage] || (n[a._stage] = []), + n[a._stage].push(a) + } + } + } + , + c.updateHash = function() {} + , + c.getHash = function() { + if (!this._dirty) + return this._hash; + this._dirty = !1; + var t = ""; + t += r.default.serializePasses(this._passes); + var e = this._effect; + return e && (t += r.default.serializePasses(e.passes)), + this._hash = (0, + n.default)(t, 666), + this.updateHash(this._hash), + this._hash + } + , + a = s, + (h = [{ + key: "effect", + get: function() { + return this._effect + } + }, { + key: "name", + get: function() { + return this._effect && this._effect.name + " (variant)" + } + }, { + key: "passes", + get: function() { + return this._passes + } + }, { + key: "stagePasses", + get: function() { + return this._stagePasses + } + }]) && o(a.prototype, h), + s + } + )(s.default); + i.default = h, + cc.EffectVariant = h, + e.exports = i.default + } + ), { + "../../../renderer/murmurhash2_gc": 333, + "./effect-base": 81, + "./utils": 88 + }], + 84: [(function(t, e, i) { + "use strict"; + var n; + function r(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + i.__esModule = !0, + i.default = void 0; + var a = (function(t) { + var e, i; + function n(e, i, n, r) { + var s; + return (s = t.call(this) || this)._techniques = [], + s._asset = null, + s.init(e, i, n, r, !0), + s + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var a, o, l = n.prototype; + return l.init = function(t, e, i, n) { + this._name = t, + this._techniques = e, + this._technique = e[i], + this._asset = n + } + , + l.switchTechnique = function(t) { + t >= this._techniques.length ? cc.warn("Can not switch to technique with index [" + t + "]") : this._technique = this._techniques[t] + } + , + l.clear = function() { + this._techniques = [] + } + , + l.clone = function() { + for (var t = [], e = 0; e < this._techniques.length; e++) + t.push(this._techniques[e].clone()); + var i = this._techniques.indexOf(this._technique); + return new n(this._name,t,i,this._asset) + } + , + a = n, + (o = [{ + key: "technique", + get: function() { + return this._technique + } + }, { + key: "passes", + get: function() { + return this._technique.passes + } + }]) && r(a.prototype, o), + n + } + )(((n = t("./effect-base")) && n.__esModule ? n : { + default: n + }).default); + i.default = a, + cc.Effect = a, + e.exports = i.default + } + ), { + "./effect-base": 81 + }], + 85: [(function(t) { + "use strict"; + t("./CCEffectAsset"), + t("./CCMaterial"), + t("./material-variant") + } + ), { + "./CCEffectAsset": 79, + "./CCMaterial": 80, + "./material-variant": 87 + }], + 86: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = s(t("./utils")) + , r = s(t("../../utils/pool")); + function s(t) { + return t && t.__esModule ? t : { + default: t + } + } + function a(t, e) { + return (a = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var o = new (function(t) { + var e, i; + function r() { + for (var e, i = arguments.length, n = new Array(i), r = 0; r < i; r++) + n[r] = arguments[r]; + return (e = t.call.apply(t, [this].concat(n)) || this).enabled = !1, + e._pool = {}, + e + } + i = t, + (e = r).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + a(e, i); + var s = r.prototype; + return s.get = function(t, e) { + var i, r = this._pool; + if (t instanceof cc.MaterialVariant) { + if (!t._owner) + return t._owner = e, + t; + if (t._owner === e) + return t; + t = t.material + } + if (this.enabled) { + var s = t.effectAsset._uuid; + if (r[s]) { + var a = n.default.serializeDefines(t._effect._defines) + n.default.serializeTechniques(t._effect._techniques); + i = r[s][a] && r[s][a].pop() + } + } + return i ? this.count-- : ((i = new cc.MaterialVariant(t))._name = t._name + " (Instance)", + i._uuid = t._uuid), + i._owner = e, + i + } + , + s.put = function(t) { + if (this.enabled && t._owner) { + var e = this._pool + , i = t.effectAsset._uuid; + e[i] || (e[i] = {}); + var r = n.default.serializeDefines(t._effect._defines) + n.default.serializeTechniques(t._effect._techniques); + e[i][r] || (e[i][r] = []), + this.count > this.maxSize || (this._clean(t), + e[i][r].push(t), + this.count++) + } + } + , + s.clear = function() { + this._pool = {}, + this.count = 0 + } + , + s._clean = function(t) { + t._owner = null + } + , + r + }(r.default)); + r.default.register("material", o); + var l = o; + i.default = l, + e.exports = i.default + } + ), { + "../../utils/pool": 269, + "./utils": 88 + }], + 87: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = o(t("./CCMaterial")), s = o(t("./effect-variant")), a = o(t("./material-pool")); + function o(t) { + return t && t.__esModule ? t : { + default: t + } + } + function l(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + function h(t, e) { + return (h = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var c = (0, + cc._decorator.ccclass)("cc.MaterialVariant")(n = (function(t) { + var e, i, n, o; + function c(e) { + var i; + return (i = t.call(this) || this)._owner = null, + i._material = null, + i.init(e), + i + } + return i = t, + (e = c).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + h(e, i), + c.createWithBuiltin = function(t, e) { + return c.create(r.default.getBuiltinMaterial(t), e) + } + , + c.create = function(t, e) { + return t ? a.default.get(t, e) : null + } + , + c.prototype.init = function(t) { + this._effect = new s.default(t.effect), + this._effectAsset = t._effectAsset, + this._material = t + } + , + n = c, + (o = [{ + key: "uuid", + get: function() { + return this._material._uuid + } + }, { + key: "owner", + get: function() { + return this._owner + } + }, { + key: "material", + get: function() { + return this._material + } + }]) && l(n.prototype, o), + c + } + )(r.default)) || n; + i.default = c, + cc.MaterialVariant = c, + e.exports = i.default + } + ), { + "./CCMaterial": 80, + "./effect-variant": 83, + "./material-pool": 86 + }], + 88: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../../../renderer/enums")) && n.__esModule ? n : { + default: n + }; + function s(t) { + var e = ""; + for (var i in t) + e += i + t[i]; + return e + } + function a(t) { + var e = ""; + for (var i in t) { + var n = t[i] + , s = n.value; + s && (n.type === r.default.PARAM_TEXTURE_2D || n.type === r.default.PARAM_TEXTURE_CUBE ? e += s._id + ";" : e += s.toString() + ";") + } + return e + } + var o = { + serializeDefines: s, + serializePasses: function(t) { + for (var e, i, n = "", r = 0; r < t.length; r++) + n += (void 0, + i = void 0, + i = (e = t[r])._programName + e._cullMode, + e._blend && (i += e._blendEq + e._blendAlphaEq + e._blendSrc + e._blendDst + e._blendSrcAlpha + e._blendDstAlpha + e._blendColor), + e._depthTest && (i += e._depthWrite + e._depthFunc), + e._stencilTest && (i += e._stencilFuncFront + e._stencilRefFront + e._stencilMaskFront + e._stencilFailOpFront + e._stencilZFailOpFront + e._stencilZPassOpFront + e._stencilWriteMaskFront + e._stencilFuncBack + e._stencilRefBack + e._stencilMaskBack + e._stencilFailOpBack + e._stencilZFailOpBack + e._stencilZPassOpBack + e._stencilWriteMaskBack), + i += a(e._properties), + i += s(e._defines)); + return n + }, + serializeUniforms: a + }; + i.default = o, + e.exports = i.default + } + ), { + "../../../renderer/enums": 310 + }], + 89: [(function(t, e) { + "use strict"; + t("../CCNode").EventType; + var i = 56 + , n = 7 + , r = cc.Enum({ + ONCE: 0, + ON_WINDOW_RESIZE: 1, + ALWAYS: 2 + }); + function s(t, e, i, n) { + for (var r = t._parent.scaleX, s = t._parent.scaleY, a = 0, o = 0, l = t._parent; ; ) { + if (a += l.x, + o += l.y, + !(l = l._parent)) + return i.x = i.y = 0, + void (n.x = n.y = 1); + if (l === e) + break; + var h = l.scaleX + , c = l.scaleY; + a *= h, + o *= c, + r *= h, + s *= c + } + n.x = 0 !== r ? 1 / r : 1, + n.y = 0 !== s ? 1 / s : 1, + i.x = -a, + i.y = -o + } + var a = cc.Vec2.ZERO + , o = cc.Vec2.ONE; + function l(t, e) { + var r, l, h, c = e._target; + c ? s(t, r = c, l = a, h = o) : r = t._parent; + var u, _ = (u = r)instanceof cc.Scene ? cc.visibleRect : u._contentSize, f = r._anchorPoint, d = r instanceof cc.Scene, p = t.x, m = t.y, y = t._anchorPoint; + if (e._alignFlags & i) { + var v, g, A = _.width; + d ? (v = cc.visibleRect.left.x, + g = cc.visibleRect.right.x) : g = (v = -f.x * A) + A, + v += e._isAbsLeft ? e._left : e._left * A, + g -= e._isAbsRight ? e._right : e._right * A, + c && (v += l.x, + v *= h.x, + g += l.x, + g *= h.x); + var x, b = y.x, C = t.scaleX; + if (C < 0 && (b = 1 - b, + C = -C), + e.isStretchWidth) + x = g - v, + 0 !== C && (t.width = x / C), + p = v + b * x; + else if (x = t.width * C, + e.isAlignHorizontalCenter) { + var T = e._isAbsHorizontalCenter ? e._horizontalCenter : e._horizontalCenter * A + , S = (.5 - f.x) * _.width; + c && (T *= h.x, + S += l.x, + S *= h.x), + p = S + (b - .5) * x + T + } else + p = e.isAlignLeft ? v + b * x : g + (b - 1) * x + } + if (e._alignFlags & n) { + var w, E, M = _.height; + d ? (E = cc.visibleRect.bottom.y, + w = cc.visibleRect.top.y) : w = (E = -f.y * M) + M, + E += e._isAbsBottom ? e._bottom : e._bottom * M, + w -= e._isAbsTop ? e._top : e._top * M, + c && (E += l.y, + E *= h.y, + w += l.y, + w *= h.y); + var D, B = y.y, I = t.scaleY; + if (I < 0 && (B = 1 - B, + I = -I), + e.isStretchHeight) + D = w - E, + 0 !== I && (t.height = D / I), + m = E + B * D; + else if (D = t.height * I, + e.isAlignVerticalCenter) { + var P = e._isAbsVerticalCenter ? e._verticalCenter : e._verticalCenter * M + , R = (.5 - f.y) * _.height; + c && (P *= h.y, + R += l.y, + R *= h.y), + m = R + (B - .5) * D + P + } else + m = e.isAlignBottom ? E + B * D : w + (B - 1) * D + } + t.setPosition(p, m) + } + function h(t) { + var e = t._widget; + e && (l(t, e), + e.alignMode !== r.ALWAYS ? _.remove(e) : u.push(e)); + for (var i = t._children, n = 0; n < i.length; n++) { + var s = i[n]; + s._active && h(s) + } + } + function c() { + var t = cc.director.getScene(); + if (t) { + if (_.isAligning = !0, + _._nodesOrderDirty) + u.length = 0, + h(t), + _._nodesOrderDirty = !1; + else { + var e, i = _._activeWidgetsIterator; + for (i.i = 0; i.i < u.length; ++i.i) + l((e = u[i.i]).node, e) + } + _.isAligning = !1 + } + } + var u = [] + , _ = cc._widgetManager = e.exports = { + _AlignFlags: { + TOP: 1, + MID: 2, + BOT: 4, + LEFT: 8, + CENTER: 16, + RIGHT: 32 + }, + isAligning: !1, + _nodesOrderDirty: !1, + _activeWidgetsIterator: new cc.js.array.MutableForwardIterator(u), + init: function(t) { + t.on(cc.Director.EVENT_AFTER_UPDATE, c); + var e = this.onResized.bind(this); + cc.view.on("canvas-resize", e), + window.addEventListener("orientationchange", e) + }, + add: function(t) { + t.node._widget = t, + this._nodesOrderDirty = !0 + }, + remove: function(t) { + t.node._widget = null, + this._activeWidgetsIterator.remove(t) + }, + onResized: function() { + var t = cc.director.getScene(); + t && this.refreshWidgetOnResized(t) + }, + refreshWidgetOnResized: function(t) { + var e = cc.Node.isNode(t) && t.getComponent(cc.Widget); + e && e.enabled && e.alignMode === r.ON_WINDOW_RESIZE && this.add(e); + for (var i = t._children, n = 0; n < i.length; n++) { + var s = i[n]; + this.refreshWidgetOnResized(s) + } + }, + updateAlignment: function t(e) { + var i = e._parent; + cc.Node.isNode(i) && t(i); + var n = e._widget || e.getComponent(cc.Widget); + n && i && l(e, n) + }, + AlignMode: r + } + } + ), { + "../CCNode": 29 + }], + 90: [(function(t, e) { + "use strict"; + var i = t("../value-types") + , n = t("../geom-utils") + , r = t("../utils/affine-transform") + , s = t("../renderer/index") + , a = t("../renderer/render-flow") + , o = t("../CCGame") + , l = null; + l = t("../../renderer/scene/camera"); + var h = cc.mat4() + , c = cc.mat4() + , u = cc.v3() + , _ = cc.v3() + , f = cc.v3() + , d = []; + function p() { + for (var t = 0, e = Number.MAX_VALUE; t < d.length; t++) { + var i = d[t]; + i._depth < e && (A.main = i, + e = i._depth) + } + } + var m = null; + function y() { + if (m) { + var t = m.getNode() + , e = cc.game.canvas; + t.z = e.height / 1.1566, + t.x = e.width / 2, + t.y = e.height / 2 + } + } + var v = cc.Enum({ + COLOR: 1, + DEPTH: 2, + STENCIL: 4 + }) + , g = cc.Enum({ + OPAQUE: 1, + TRANSPARENT: 2 + }) + , A = cc.Class({ + name: "cc.Camera", + extends: cc.Component, + ctor: function() { + if (o.renderType !== o.RENDER_TYPE_CANVAS) { + var t = new l; + t.setStages(["opaque"]), + t.dirty = !0, + this._inited = !1, + this._camera = t + } else + this._inited = !0 + }, + editor: !1, + properties: { + _cullingMask: 4294967295, + _clearFlags: v.DEPTH | v.STENCIL, + _backgroundColor: cc.color(0, 0, 0, 255), + _depth: 0, + _zoomRatio: 1, + _targetTexture: null, + _fov: 60, + _orthoSize: 10, + _nearClip: 1, + _farClip: 4096, + _ortho: !0, + _rect: cc.rect(0, 0, 1, 1), + _renderStages: 1, + _alignWithScreen: !0, + zoomRatio: { + get: function() { + return this._zoomRatio + }, + set: function(t) { + this._zoomRatio = t + }, + tooltip: !1 + }, + fov: { + get: function() { + return this._fov + }, + set: function(t) { + this._fov = t + }, + tooltip: !1 + }, + orthoSize: { + get: function() { + return this._orthoSize + }, + set: function(t) { + this._orthoSize = t + }, + tooltip: !1 + }, + nearClip: { + get: function() { + return this._nearClip + }, + set: function(t) { + this._nearClip = t, + this._updateClippingpPlanes() + }, + tooltip: !1 + }, + farClip: { + get: function() { + return this._farClip + }, + set: function(t) { + this._farClip = t, + this._updateClippingpPlanes() + }, + tooltip: !1 + }, + ortho: { + get: function() { + return this._ortho + }, + set: function(t) { + this._ortho = t, + this._updateProjection() + }, + tooltip: !1 + }, + rect: { + get: function() { + return this._rect + }, + set: function(t) { + this._rect = t, + this._updateRect() + }, + tooltip: !1 + }, + cullingMask: { + get: function() { + return this._cullingMask + }, + set: function(t) { + this._cullingMask = t, + this._updateCameraMask() + }, + tooltip: !1 + }, + clearFlags: { + get: function() { + return this._clearFlags + }, + set: function(t) { + this._clearFlags = t, + this._camera && this._camera.setClearFlags(t) + }, + tooltip: !1 + }, + backgroundColor: { + get: function() { + return this._backgroundColor + }, + set: function(t) { + this._backgroundColor.equals(t) || (this._backgroundColor.set(t), + this._updateBackgroundColor()) + }, + tooltip: !1 + }, + depth: { + get: function() { + return this._depth + }, + set: function(t) { + A.main === this ? this._depth < t && p() : A.main && t < A.main._depth && d.includes(this) && (A.main = this), + this._depth = t, + this._camera && this._camera.setPriority(t) + }, + tooltip: !1 + }, + targetTexture: { + get: function() { + return this._targetTexture + }, + set: function(t) { + this._targetTexture = t, + this._updateTargetTexture() + }, + tooltip: !1 + }, + renderStages: { + get: function() { + return this._renderStages + }, + set: function(t) { + this._renderStages = t, + this._updateStages() + }, + tooltip: !1 + }, + alignWithScreen: { + get: function() { + return this._alignWithScreen + }, + set: function(t) { + this._alignWithScreen = t + } + }, + _is3D: { + get: function() { + return this.node && this.node._is3DNode + } + } + }, + statics: { + main: null, + cameras: d, + ClearFlags: v, + findCamera: function(t) { + for (var e = 0, i = d.length; e < i; e++) { + var n = d[e]; + if (n.containsNode(t)) + return n + } + return null + }, + _findRendererCamera: function(t) { + for (var e = s.scene._cameras, i = 0; i < e._count; i++) + if (e._data[i]._cullingMask & t._cullingMask) + return e._data[i]; + return null + }, + _setupDebugCamera: function() { + if (!m && o.renderType !== o.RENDER_TYPE_CANVAS) { + var t = new l; + m = t, + t.setStages(["opaque"]), + t.setFov(60 * Math.PI / 180), + t.setNear(.1), + t.setFar(4096), + t.dirty = !0, + t.cullingMask = 1 << cc.Node.BuiltinGroupIndex.DEBUG, + t.setPriority(cc.macro.MAX_ZINDEX), + t.setClearFlags(0), + t.setColor(0, 0, 0, 0); + var e = new cc.Node; + t.setNode(e), + y(), + cc.view.on("design-resolution-changed", y), + s.scene.addCamera(t) + } + } + }, + _updateCameraMask: function() { + if (this._camera) { + var t = this._cullingMask & ~(1 << cc.Node.BuiltinGroupIndex.DEBUG); + this._camera.cullingMask = t + } + }, + _updateBackgroundColor: function() { + if (this._camera) { + var t = this._backgroundColor; + this._camera.setColor(t.r / 255, t.g / 255, t.b / 255, t.a / 255) + } + }, + _updateTargetTexture: function() { + if (this._camera) { + var t = this._targetTexture; + this._camera.setFrameBuffer(t ? t._framebuffer : null) + } + }, + _updateClippingpPlanes: function() { + this._camera && (this._camera.setNear(this._nearClip), + this._camera.setFar(this._farClip)) + }, + _updateProjection: function() { + if (this._camera) { + var t = this._ortho ? 1 : 0; + this._camera.setType(t) + } + }, + _updateRect: function() { + if (this._camera) { + var t = this._rect; + this._camera.setRect(t.x, t.y, t.width, t.height) + } + }, + _updateStages: function() { + var t = this._renderStages + , e = []; + t & g.OPAQUE && e.push("opaque"), + t & g.TRANSPARENT && e.push("transparent"), + this._camera.setStages(e) + }, + _init: function() { + if (!this._inited) { + this._inited = !0; + var t = this._camera; + t && (t.setNode(this.node), + t.setClearFlags(this._clearFlags), + t.setPriority(this._depth), + this._updateBackgroundColor(), + this._updateCameraMask(), + this._updateTargetTexture(), + this._updateClippingpPlanes(), + this._updateProjection(), + this._updateStages(), + this._updateRect(), + this.beforeDraw()) + } + }, + __preload: function() { + this._init() + }, + onEnable: function() { + o.renderType !== o.RENDER_TYPE_CANVAS && (cc.director.on(cc.Director.EVENT_BEFORE_DRAW, this.beforeDraw, this), + s.scene.addCamera(this._camera)), + d.push(this), + (!A.main || this._depth < A.main._depth) && (A.main = this) + }, + onDisable: function() { + o.renderType !== o.RENDER_TYPE_CANVAS && (cc.director.off(cc.Director.EVENT_BEFORE_DRAW, this.beforeDraw, this), + s.scene.removeCamera(this._camera)), + cc.js.array.fastRemove(d, this), + A.main === this && (A.main = null, + p()) + }, + getScreenToWorldMatrix2D: function(t) { + return this.getWorldToScreenMatrix2D(t), + i.Mat4.invert(t, t), + t + }, + getWorldToScreenMatrix2D: function(t) { + this.node.getWorldRT(h); + var e = this.zoomRatio + , n = h.m; + n[0] *= e, + n[1] *= e, + n[4] *= e, + n[5] *= e; + var r = n[12] + , s = n[13] + , a = cc.visibleRect.center; + return n[12] = a.x - (n[0] * r + n[4] * s), + n[13] = a.y - (n[1] * r + n[5] * s), + t !== h && i.Mat4.copy(t, h), + t + }, + getScreenToWorldPoint: function(t, e) { + return this.node.is3DNode ? (e = e || new cc.Vec3, + this._camera.screenToWorld(e, t, cc.visibleRect.width, cc.visibleRect.height)) : (e = e || new cc.Vec2, + this.getScreenToWorldMatrix2D(h), + i.Vec2.transformMat4(e, t, h)), + e + }, + getWorldToScreenPoint: function(t, e) { + return this.node.is3DNode ? (e = e || new cc.Vec3, + this._camera.worldToScreen(e, t, cc.visibleRect.width, cc.visibleRect.height)) : (e = e || new cc.Vec2, + this.getWorldToScreenMatrix2D(h), + i.Vec2.transformMat4(e, t, h)), + e + }, + getRay: function(t) { + return cc.geomUtils ? (i.Vec3.set(f, t.x, t.y, 1), + this._camera.screenToWorld(_, f, cc.visibleRect.width, cc.visibleRect.height), + this.ortho ? (i.Vec3.set(f, t.x, t.y, -1), + this._camera.screenToWorld(u, f, cc.visibleRect.width, cc.visibleRect.height)) : this.node.getWorldPosition(u), + n.Ray.fromPoints(new n.Ray, u, _)) : t + }, + containsNode: function(t) { + return (t._cullingMask & this.cullingMask) > 0 + }, + render: function(t) { + if (!(t = t || cc.director.getScene())) + return null; + this.node.getWorldMatrix(h), + this.beforeDraw(), + a.renderCamera(this._camera, t) + }, + _onAlignWithScreen: function() { + var t = cc.game.canvas.height / cc.view._scaleY; + this._targetTexture && (t = cc.visibleRect.height); + var e = this._fov * cc.macro.RAD; + this.node.z = t / (2 * Math.tan(e / 2)), + e = 2 * Math.atan(Math.tan(e / 2) / this.zoomRatio), + this._camera.setFov(e), + this._camera.setOrthoHeight(t / 2 / this.zoomRatio), + this.node.setRotation(0, 0, 0, 1) + }, + beforeDraw: function() { + if (this._camera) { + if (this._alignWithScreen) + this._onAlignWithScreen(); + else { + var t = this._fov * cc.macro.RAD; + t = 2 * Math.atan(Math.tan(t / 2) / this.zoomRatio), + this._camera.setFov(t), + this._camera.setOrthoHeight(this._orthoSize / this.zoomRatio) + } + this._camera.dirty = !0 + } + } + }); + cc.js.mixin(A.prototype, { + getNodeToCameraTransform: function(t) { + var e = r.identity(); + return t.getWorldMatrix(c), + this.containsNode(t) && (this.getWorldToCameraMatrix(h), + i.Mat4.mul(c, c, h)), + r.fromMat4(e, c), + e + }, + getCameraToWorldPoint: function(t, e) { + return this.getScreenToWorldPoint(t, e) + }, + getWorldToCameraPoint: function(t, e) { + return this.getWorldToScreenPoint(t, e) + }, + getCameraToWorldMatrix: function(t) { + return this.getScreenToWorldMatrix2D(t) + }, + getWorldToCameraMatrix: function(t) { + return this.getWorldToScreenMatrix2D(t) + } + }), + e.exports = cc.Camera = A + } + ), { + "../../renderer/scene/camera": 335, + "../CCGame": 28, + "../geom-utils": 148, + "../renderer/index": 224, + "../renderer/render-flow": 225, + "../utils/affine-transform": 258, + "../value-types": 282 + }], + 91: [(function(t, e) { + "use strict"; + cc.Collider.Box = cc.Class({ + properties: { + _offset: cc.v2(0, 0), + _size: cc.size(100, 100), + offset: { + tooltip: !1, + get: function() { + return this._offset + }, + set: function(t) { + this._offset = t + }, + type: cc.Vec2 + }, + size: { + tooltip: !1, + get: function() { + return this._size + }, + set: function(t) { + this._size.width = t.width < 0 ? 0 : t.width, + this._size.height = t.height < 0 ? 0 : t.height + }, + type: cc.Size + } + }, + resetInEditor: !1 + }); + var i = cc.Class({ + name: "cc.BoxCollider", + extends: cc.Collider, + mixins: [cc.Collider.Box], + editor: !1 + }); + cc.BoxCollider = e.exports = i + } + ), {}], + 92: [(function(t, e) { + "use strict"; + cc.Collider.Circle = cc.Class({ + properties: { + _offset: cc.v2(0, 0), + _radius: 50, + offset: { + tooltip: !1, + get: function() { + return this._offset + }, + set: function(t) { + this._offset = t + }, + type: cc.Vec2 + }, + radius: { + tooltip: !1, + get: function() { + return this._radius + }, + set: function(t) { + this._radius = t < 0 ? 0 : t + } + } + }, + resetInEditor: !1 + }); + var i = cc.Class({ + name: "cc.CircleCollider", + extends: cc.Collider, + mixins: [cc.Collider.Circle], + editor: !1 + }); + cc.CircleCollider = e.exports = i + } + ), {}], + 93: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.Collider", + extends: cc.Component, + properties: { + editing: { + default: !1, + serializable: !1, + tooltip: !1 + }, + tag: { + tooltip: !1, + default: 0, + range: [0, 1e7], + type: cc.Integer + } + }, + onDisable: function() { + cc.director.getCollisionManager().removeCollider(this) + }, + onEnable: function() { + cc.director.getCollisionManager().addCollider(this) + } + }); + cc.Collider = e.exports = i + } + ), {}], + 94: [(function(t, e) { + "use strict"; + var i, n = (i = t("../value-types/vec2")) && i.__esModule ? i : { + default: i + }, r = t("./CCContact"), s = r.CollisionType, a = t("../CCNode").EventType, o = new n.default; + function l(t, e, i, n, r, s) { + var a = t.x + , o = t.y + , l = t.width + , h = t.height + , c = e.m + , u = c[0] + , _ = c[1] + , f = c[4] + , d = c[5] + , p = u * a + f * o + c[12] + , m = _ * a + d * o + c[13] + , y = u * l + , v = _ * l + , g = f * h + , A = d * h; + n.x = p, + n.y = m, + r.x = y + p, + r.y = v + m, + i.x = g + p, + i.y = A + m, + s.x = y + g + p, + s.y = v + A + m + } + var h = cc.Class({ + mixins: [cc.EventTarget], + properties: { + enabled: !1, + enabledDrawBoundingBox: !1 + }, + ctor: function() { + this._contacts = [], + this._colliders = [], + this._debugDrawer = null, + this._enabledDebugDraw = !1, + cc.director._scheduler && cc.director._scheduler.enableForTarget(this) + }, + update: function() { + if (this.enabled) { + var t, e, i = this._colliders; + for (t = 0, + e = i.length; t < e; t++) + this.updateCollider(i[t]); + var n = this._contacts + , r = []; + for (t = 0, + e = n.length; t < e; t++) { + var a = n[t].updateState(); + a !== s.None && r.push([a, n[t]]) + } + for (t = 0, + e = r.length; t < e; t++) { + var o = r[t]; + this._doCollide(o[0], o[1]) + } + this.drawColliders() + } + }, + _doCollide: function(t, e) { + var i; + switch (t) { + case s.CollisionEnter: + i = "onCollisionEnter"; + break; + case s.CollisionStay: + i = "onCollisionStay"; + break; + case s.CollisionExit: + i = "onCollisionExit" + } + var n, r, a, o = e.collider1, l = e.collider2, h = o.node._components, c = l.node._components; + for (n = 0, + r = h.length; n < r; n++) + (a = h[n])[i] && a[i](l, o); + for (n = 0, + r = c.length; n < r; n++) + (a = c[n])[i] && a[i](o, l) + }, + shouldCollide: function(t, e) { + var i = t.node + , n = e.node + , r = cc.game.collisionMatrix; + return i !== n && r[i.groupIndex][n.groupIndex] + }, + initCollider: function(t) { + if (!t.world) { + var e = t.world = {}; + e.aabb = cc.rect(), + e.preAabb = cc.rect(), + e.matrix = cc.mat4(), + e.radius = 0, + t instanceof cc.BoxCollider ? (e.position = null, + e.points = [cc.v2(), cc.v2(), cc.v2(), cc.v2()]) : t instanceof cc.PolygonCollider ? (e.position = null, + e.points = t.points.map((function(t) { + return cc.v2(t.x, t.y) + } + ))) : t instanceof cc.CircleCollider && (e.position = cc.v2(), + e.points = null) + } + }, + updateCollider: function(t) { + var e = t.offset + , i = t.world + , r = i.aabb + , s = i.matrix; + t.node.getWorldMatrix(s); + var a = i.preAabb; + if (a.x = r.x, + a.y = r.y, + a.width = r.width, + a.height = r.height, + t instanceof cc.BoxCollider) { + var h = t.size; + r.x = e.x - h.width / 2, + r.y = e.y - h.height / 2, + r.width = h.width, + r.height = h.height; + var c = i.points + , u = c[0] + , _ = c[1] + , f = c[2] + , d = c[3]; + l(r, s, u, _, f, d); + var p = Math.min(u.x, _.x, f.x, d.x) + , m = Math.min(u.y, _.y, f.y, d.y) + , y = Math.max(u.x, _.x, f.x, d.x) + , v = Math.max(u.y, _.y, f.y, d.y); + r.x = p, + r.y = m, + r.width = y - p, + r.height = v - m + } else if (t instanceof cc.CircleCollider) { + n.default.transformMat4(o, t.offset, s), + i.position.x = o.x, + i.position.y = o.y; + var g = s.m + , A = g[12] + , x = g[13]; + g[12] = g[13] = 0, + o.x = t.radius, + o.y = 0, + n.default.transformMat4(o, o, s); + var b = Math.sqrt(o.x * o.x + o.y * o.y); + i.radius = b, + r.x = i.position.x - b, + r.y = i.position.y - b, + r.width = 2 * b, + r.height = 2 * b, + g[12] = A, + g[13] = x + } else if (t instanceof cc.PolygonCollider) { + var C = t.points + , T = i.points; + T.length = C.length; + for (var S = 1e6, w = 1e6, E = -1e6, M = -1e6, D = 0, B = C.length; D < B; D++) { + T[D] || (T[D] = cc.v2()), + o.x = C[D].x + e.x, + o.y = C[D].y + e.y, + n.default.transformMat4(o, o, s); + var I = o.x + , P = o.y; + T[D].x = I, + T[D].y = P, + I > E && (E = I), + I < S && (S = I), + P > M && (M = P), + P < w && (w = P) + } + r.x = S, + r.y = w, + r.width = E - S, + r.height = M - w + } + }, + addCollider: function(t) { + var e = this._colliders; + if (-1 === e.indexOf(t)) { + for (var i = 0, n = e.length; i < n; i++) { + var s = e[i]; + if (this.shouldCollide(t, s)) { + var o = new r(t,s); + this._contacts.push(o) + } + } + e.push(t), + this.initCollider(t) + } + t.node.on(a.GROUP_CHANGED, this.onNodeGroupChanged, this) + }, + removeCollider: function(t) { + var e = this._colliders + , i = e.indexOf(t); + if (i >= 0) { + e.splice(i, 1); + for (var n = this._contacts, r = n.length - 1; r >= 0; r--) { + var o = n[r]; + o.collider1 !== t && o.collider2 !== t || (o.touching && this._doCollide(s.CollisionExit, o), + n.splice(r, 1)) + } + t.node.off(a.GROUP_CHANGED, this.onNodeGroupChanged, this) + } else + cc.errorID(6600) + }, + onNodeGroupChanged: function(t) { + for (var e = t.getComponents(cc.Collider), i = 0, n = e.length; i < n; i++) { + var r = e[i]; + cc.PhysicsCollider && r instanceof cc.PhysicsCollider || (this.removeCollider(r), + this.addCollider(r)) + } + }, + drawColliders: function() { + if (this._enabledDebugDraw) { + this._checkDebugDrawValid(); + var t = this._debugDrawer; + t.clear(); + for (var e = this._colliders, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (t.strokeColor = cc.Color.WHITE, + r instanceof cc.BoxCollider || r instanceof cc.PolygonCollider) { + var s = r.world.points; + if (s.length > 0) { + t.moveTo(s[0].x, s[0].y); + for (var a = 1; a < s.length; a++) + t.lineTo(s[a].x, s[a].y); + t.close(), + t.stroke() + } + } else + r instanceof cc.CircleCollider && (t.circle(r.world.position.x, r.world.position.y, r.world.radius), + t.stroke()); + if (this.enabledDrawBoundingBox) { + var o = r.world.aabb; + t.strokeColor = cc.Color.BLUE, + t.moveTo(o.xMin, o.yMin), + t.lineTo(o.xMin, o.yMax), + t.lineTo(o.xMax, o.yMax), + t.lineTo(o.xMax, o.yMin), + t.close(), + t.stroke() + } + } + } + }, + _checkDebugDrawValid: function() { + if (!this._debugDrawer || !this._debugDrawer.isValid) { + var t = new cc.Node("COLLISION_MANAGER_DEBUG_DRAW"); + t.zIndex = cc.macro.MAX_ZINDEX, + cc.game.addPersistRootNode(t), + this._debugDrawer = t.addComponent(cc.Graphics) + } + } + }); + cc.js.getset(h.prototype, "enabledDebugDraw", (function() { + return this._enabledDebugDraw + } + ), (function(t) { + t && !this._enabledDebugDraw ? (this._checkDebugDrawValid(), + this._debugDrawer.node.active = !0) : !t && this._enabledDebugDraw && (this._debugDrawer.clear(!0), + this._debugDrawer.node.active = !1), + this._enabledDebugDraw = t + } + )), + cc.CollisionManager = e.exports = h + } + ), { + "../CCNode": 29, + "../value-types/vec2": 291, + "./CCContact": 95 + }], + 95: [(function(t, e) { + "use strict"; + var i = t("./CCIntersection") + , n = cc.Enum({ + None: 0, + CollisionEnter: 1, + CollisionStay: 2, + CollisionExit: 3 + }); + function r(t, e) { + this.collider1 = t, + this.collider2 = e, + this.touching = !1; + var n = t instanceof cc.BoxCollider || t instanceof cc.PolygonCollider + , r = e instanceof cc.BoxCollider || e instanceof cc.PolygonCollider + , s = t instanceof cc.CircleCollider + , a = e instanceof cc.CircleCollider; + n && r ? this.testFunc = i.polygonPolygon : s && a ? this.testFunc = i.circleCircle : n && a ? this.testFunc = i.polygonCircle : s && r ? (this.testFunc = i.polygonCircle, + this.collider1 = e, + this.collider2 = t) : cc.errorID(6601, cc.js.getClassName(t), cc.js.getClassName(e)) + } + r.prototype.test = function() { + var t = this.collider1.world + , e = this.collider2.world; + return !!t.aabb.intersects(e.aabb) && (this.testFunc === i.polygonPolygon ? this.testFunc(t.points, e.points) : this.testFunc === i.circleCircle ? this.testFunc(t, e) : this.testFunc === i.polygonCircle && this.testFunc(t.points, e)) + } + , + r.prototype.updateState = function() { + var t = this.test() + , e = n.None; + return t && !this.touching ? (this.touching = !0, + e = n.CollisionEnter) : t && this.touching ? e = n.CollisionStay : !t && this.touching && (this.touching = !1, + e = n.CollisionExit), + e + } + , + r.CollisionType = n, + e.exports = r + } + ), { + "./CCIntersection": 96 + }], + 96: [(function(t, e) { + "use strict"; + var i = {}; + function n(t, e, i, n) { + var r = (n.x - i.x) * (t.y - i.y) - (n.y - i.y) * (t.x - i.x) + , s = (e.x - t.x) * (t.y - i.y) - (e.y - t.y) * (t.x - i.x) + , a = (n.y - i.y) * (e.x - t.x) - (n.x - i.x) * (e.y - t.y); + if (0 !== a) { + var o = r / a + , l = s / a; + if (0 <= o && o <= 1 && 0 <= l && l <= 1) + return !0 + } + return !1 + } + function r(t, e, i) { + for (var r = i.length, s = 0; s < r; ++s) + if (n(t, e, i[s], i[(s + 1) % r])) + return !0; + return !1 + } + function s(t, e) { + for (var i = !1, n = t.x, r = t.y, s = e.length, a = 0, o = s - 1; a < s; o = a++) { + var l = e[a].x + , h = e[a].y + , c = e[o].x + , u = e[o].y; + h > r != u > r && n < (c - l) * (r - h) / (u - h) + l && (i = !i) + } + return i + } + function a(t, e, i, n) { + var r, s = i.x - e.x, a = i.y - e.y, o = s * s + a * a, l = ((t.x - e.x) * s + (t.y - e.y) * a) / o; + return r = n ? o ? l < 0 ? e : l > 1 ? i : cc.v2(e.x + l * s, e.y + l * a) : e : cc.v2(e.x + l * s, e.y + l * a), + s = t.x - r.x, + a = t.y - r.y, + Math.sqrt(s * s + a * a) + } + i.lineLine = n, + i.lineRect = function(t, e, i) { + var r = new cc.Vec2(i.x,i.y) + , s = new cc.Vec2(i.x,i.yMax) + , a = new cc.Vec2(i.xMax,i.yMax) + , o = new cc.Vec2(i.xMax,i.y); + return !!(n(t, e, r, s) || n(t, e, s, a) || n(t, e, a, o) || n(t, e, o, r)) + } + , + i.linePolygon = r, + i.rectRect = function(t, e) { + var i = t.x + , n = t.y + , r = t.x + t.width + , s = t.y + t.height + , a = e.x + , o = e.y + , l = e.x + e.width + , h = e.y + e.height; + return i <= l && r >= a && n <= h && s >= o + } + , + i.rectPolygon = function(t, e) { + var i, n, a = new cc.Vec2(t.x,t.y), o = new cc.Vec2(t.x,t.yMax), l = new cc.Vec2(t.xMax,t.yMax), h = new cc.Vec2(t.xMax,t.y); + if (r(a, o, e)) + return !0; + if (r(o, l, e)) + return !0; + if (r(l, h, e)) + return !0; + if (r(h, a, e)) + return !0; + for (i = 0, + n = e.length; i < n; ++i) + if (s(e[i], t)) + return !0; + return !!(s(a, e) || s(o, e) || s(l, e) || s(h, e)) + } + , + i.polygonPolygon = function(t, e) { + var i, n; + for (i = 0, + n = t.length; i < n; ++i) + if (r(t[i], t[(i + 1) % n], e)) + return !0; + for (i = 0, + n = e.length; i < n; ++i) + if (s(e[i], t)) + return !0; + for (i = 0, + n = t.length; i < n; ++i) + if (s(t[i], e)) + return !0; + return !1 + } + , + i.circleCircle = function(t, e) { + return t.position.sub(e.position).mag() < t.radius + e.radius + } + , + i.polygonCircle = function(t, e) { + var i = e.position; + if (s(i, t)) + return !0; + for (var n = 0, r = t.length; n < r; n++) + if (a(i, 0 === n ? t[t.length - 1] : t[n - 1], t[n], !0) < e.radius) + return !0; + return !1 + } + , + i.pointInPolygon = s, + i.pointLineDistance = a, + cc.Intersection = e.exports = i + } + ), {}], + 97: [(function(t, e) { + "use strict"; + cc.Collider.Polygon = cc.Class({ + properties: { + threshold: { + default: 1, + serializable: !1, + visible: !1 + }, + _offset: cc.v2(0, 0), + offset: { + get: function() { + return this._offset + }, + set: function(t) { + this._offset = t + }, + type: cc.Vec2 + }, + points: { + tooltip: !1, + default: function() { + return [cc.v2(-50, -50), cc.v2(50, -50), cc.v2(50, 50), cc.v2(-50, 50)] + }, + type: [cc.Vec2] + } + }, + resetPointsByContour: !1 + }); + var i = cc.Class({ + name: "cc.PolygonCollider", + extends: cc.Collider, + mixins: [cc.Collider.Polygon], + editor: !1 + }); + cc.PolygonCollider = e.exports = i + } + ), {}], + 98: [(function(t) { + "use strict"; + t("./CCCollisionManager"), + t("./CCCollider"), + t("./CCBoxCollider"), + t("./CCCircleCollider"), + t("./CCPolygonCollider") + } + ), { + "./CCBoxCollider": 91, + "./CCCircleCollider": 92, + "./CCCollider": 93, + "./CCCollisionManager": 94, + "./CCPolygonCollider": 97 + }], + 99: [(function(t, e) { + "use strict"; + t("./platform/CCClass"); + var i = t("./platform/CCObject").Flags + , n = t("./platform/js").array + , r = i.IsStartCalled + , s = i.IsOnEnableCalled; + function a(t, e) { + for (var i = e.constructor._executionOrder, n = e._id, r = 0, s = t.length - 1, a = s >>> 1; r <= s; a = r + s >>> 1) { + var o = t[a] + , l = o.constructor._executionOrder; + if (l > i) + s = a - 1; + else if (l < i) + r = a + 1; + else { + var h = o._id; + if (h > n) + s = a - 1; + else { + if (!(h < n)) + return a; + r = a + 1 + } + } + } + return ~r + } + function o(t, e) { + for (var i = t.array, n = t.i + 1; n < i.length; ) { + var r = i[n]; + r._enabled && r.node._activeInHierarchy ? ++n : (t.removeAt(n), + e && (r._objFlags &= ~e)) + } + } + i.IsEditorOnEnableCalled; + var l = cc.Class({ + __ctor__: function(t) { + var e = n.MutableForwardIterator; + this._zero = new e([]), + this._neg = new e([]), + this._pos = new e([]), + this._invoke = t + }, + statics: { + stableRemoveInactive: o + }, + add: null, + remove: null, + invoke: null + }); + function h(t, e) { + return t.constructor._executionOrder - e.constructor._executionOrder + } + var c = cc.Class({ + extends: l, + add: function(t) { + var e = t.constructor._executionOrder; + (0 === e ? this._zero : e < 0 ? this._neg : this._pos).array.push(t) + }, + remove: function(t) { + var e = t.constructor._executionOrder; + (0 === e ? this._zero : e < 0 ? this._neg : this._pos).fastRemove(t) + }, + cancelInactive: function(t) { + o(this._zero, t), + o(this._neg, t), + o(this._pos, t) + }, + invoke: function() { + var t = this._neg; + t.array.length > 0 && (t.array.sort(h), + this._invoke(t), + t.array.length = 0), + this._invoke(this._zero), + this._zero.array.length = 0; + var e = this._pos; + e.array.length > 0 && (e.array.sort(h), + this._invoke(e), + e.array.length = 0) + } + }) + , u = cc.Class({ + extends: l, + add: function(t) { + var e = t.constructor._executionOrder; + if (0 === e) + this._zero.array.push(t); + else { + var i = e < 0 ? this._neg.array : this._pos.array + , n = a(i, t); + n < 0 && i.splice(~n, 0, t) + } + }, + remove: function(t) { + var e = t.constructor._executionOrder; + if (0 === e) + this._zero.fastRemove(t); + else { + var i = e < 0 ? this._neg : this._pos + , n = a(i.array, t); + n >= 0 && i.removeAt(n) + } + }, + invoke: function(t) { + this._neg.array.length > 0 && this._invoke(this._neg, t), + this._invoke(this._zero, t), + this._pos.array.length > 0 && this._invoke(this._pos, t) + } + }); + function _(t, e, i, n) { + var r = "var a=it.array;for(it.i=0;it.i= 0 ? n.fastRemoveAt(this._deferredComps, e) : (!t.start || t._objFlags & r || this.startInvoker.remove(t), + t.update && this.updateInvoker.remove(t), + t.lateUpdate && this.lateUpdateInvoker.remove(t)) + }, + enableComp: function(t, e) { + if (!(t._objFlags & s)) { + if (t.onEnable) { + if (e) + return void e.add(t); + if (t.onEnable(), + !t.node._activeInHierarchy) + return + } + this._onEnabled(t) + } + }, + disableComp: function(t) { + t._objFlags & s && (t.onDisable && t.onDisable(), + this._onDisabled(t)) + }, + _scheduleImmediate: function(t) { + "function" != typeof t.start || t._objFlags & r || this.startInvoker.add(t), + "function" == typeof t.update && this.updateInvoker.add(t), + "function" == typeof t.lateUpdate && this.lateUpdateInvoker.add(t) + }, + _deferredSchedule: function() { + for (var t = this._deferredComps, e = 0, i = t.length; e < i; e++) + this._scheduleImmediate(t[e]); + t.length = 0 + }, + _startForNewComps: function() { + this._deferredComps.length > 0 && (this._deferredSchedule(), + this.startInvoker.invoke()) + }, + startPhase: function() { + this._updating = !0, + this.startInvoker.invoke(), + this._startForNewComps() + }, + updatePhase: function(t) { + this.updateInvoker.invoke(t) + }, + lateUpdatePhase: function(t) { + this.lateUpdateInvoker.invoke(t), + this._updating = !1, + this._startForNewComps() + } + }); + e.exports = y + } + ), { + "./platform/CCClass": 193, + "./platform/CCObject": 199, + "./platform/js": 214, + "./utils/misc": 267 + }], + 100: [(function(t, e) { + "use strict"; + var i = t("../../animation/animation-animator") + , n = t("../../animation/animation-clip") + , r = t("../event/event-target") + , s = t("../platform/js") + , a = function(t, e) { + return t === e + } + , o = cc.Enum({ + PLAY: "play", + STOP: "stop", + PAUSE: "pause", + RESUME: "resume", + LASTFRAME: "lastframe", + FINISHED: "finished" + }) + , l = cc.Class({ + name: "cc.Animation", + extends: t("./CCComponent"), + mixins: [r], + editor: !1, + statics: { + EventType: o + }, + ctor: function() { + cc.EventTarget.call(this), + this._animator = null, + this._nameToState = s.createMap(!0), + this._didInit = !1, + this._currentClip = null + }, + properties: { + _defaultClip: { + default: null, + type: n + }, + defaultClip: { + type: n, + get: function() { + return this._defaultClip + }, + set: function() {}, + tooltip: !1 + }, + currentClip: { + get: function() { + return this._currentClip + }, + set: function(t) { + this._currentClip = t + }, + type: n, + visible: !1 + }, + _writableClips: { + get: function() { + return this._clips + }, + set: function(t) { + this._didInit = !1, + this._clips = t, + this._init() + }, + type: [n] + }, + _clips: { + default: [], + type: [n], + tooltip: !1, + visible: !0 + }, + playOnLoad: { + default: !1, + tooltip: !1 + } + }, + start: function() { + if (this.playOnLoad && this._defaultClip && (!this._animator || !this._animator.isPlaying)) { + var t = this.getAnimationState(this._defaultClip.name); + this._animator.playState(t) + } + }, + onEnable: function() { + this._animator && this._animator.resume() + }, + onDisable: function() { + this._animator && this._animator.pause() + }, + onDestroy: function() { + this.stop() + }, + getClips: function() { + return this._clips + }, + play: function(t, e) { + var i = this.playAdditive(t, e); + return this._animator.stopStatesExcept(i), + i + }, + playAdditive: function(t, e) { + this._init(); + var i = this.getAnimationState(t || this._defaultClip && this._defaultClip.name); + if (i) { + this.enabled = !0; + var n = this._animator; + n.isPlaying && i.isPlaying ? i.isPaused ? n.resumeState(i) : (n.stopState(i), + n.playState(i, e)) : n.playState(i, e), + this.enabledInHierarchy || n.pause(), + this.currentClip = i.clip + } + return i + }, + stop: function(t) { + if (this._didInit) + if (t) { + var e = this._nameToState[t]; + e && this._animator.stopState(e) + } else + this._animator.stop() + }, + pause: function(t) { + if (this._didInit) + if (t) { + var e = this._nameToState[t]; + e && this._animator.pauseState(e) + } else + this.enabled = !1 + }, + resume: function(t) { + if (this._didInit) + if (t) { + var e = this.getAnimationState(t); + e && this._animator.resumeState(e) + } else + this.enabled = !0 + }, + setCurrentTime: function(t, e) { + if (this._init(), + e) { + var i = this.getAnimationState(e); + i && this._animator.setStateTime(i, t) + } else + this._animator.setStateTime(t) + }, + getAnimationState: function(t) { + this._init(); + var e = this._nameToState[t]; + return e && !e.curveLoaded && this._animator._reloadClip(e), + e || null + }, + addClip: function(t, e) { + if (t) { + this._init(), + cc.js.array.contains(this._clips, t) || this._clips.push(t), + e = e || t.name; + var i = this._nameToState[e]; + if (i) { + if (i.clip === t) + return i; + var n = this._clips.indexOf(i.clip); + -1 !== n && this._clips.splice(n, 1) + } + var r = new cc.AnimationState(t,e); + return this._nameToState[e] = r, + r + } + cc.warnID(3900) + }, + removeClip: function(t, e) { + if (t) { + var i; + for (var n in this._init(), + this._nameToState) + if (i = this._nameToState[n], + a(i.clip, t)) + break; + if (t === this._defaultClip) { + if (!e) + return void cc.warnID(3902); + this._defaultClip = null + } + if (i && i.isPlaying) { + if (!e) + return void cc.warnID(3903); + this.stop(i.name) + } + this._clips = this._clips.filter((function(e) { + return !a(e, t) + } + )), + i && delete this._nameToState[i.name] + } else + cc.warnID(3901) + }, + sample: function(t) { + if (this._init(), + t) { + var e = this.getAnimationState(t); + e && e.sample() + } else + this._animator.sample() + }, + on: function(t, e, i, n) { + this._init(); + var r = this._EventTargetOn(t, e, i, n); + if ("lastframe" === t) { + var s = this._nameToState; + for (var a in s) + s[a]._lastframeEventOn = !0 + } + return r + }, + off: function(t, e, i, n) { + if (this._init(), + "lastframe" === t) { + var r = this._nameToState; + for (var s in r) + r[s]._lastframeEventOn = !1 + } + this._EventTargetOff(t, e, i, n) + }, + _init: function() { + this._didInit || (this._didInit = !0, + this._animator = new i(this.node,this), + this._createStates()) + }, + _createStates: function() { + this._nameToState = s.createMap(!0); + for (var t = null, e = !1, i = 0; i < this._clips.length; ++i) { + var n = this._clips[i]; + n && (t = new cc.AnimationState(n), + this._nameToState[t.name] = t, + a(this._defaultClip, n) && (e = t)) + } + this._defaultClip && !e && (t = new cc.AnimationState(this._defaultClip), + this._nameToState[t.name] = t) + } + }); + l.prototype._EventTargetOn = r.prototype.on, + l.prototype._EventTargetOff = r.prototype.off, + cc.Animation = e.exports = l + } + ), { + "../../animation/animation-animator": 9, + "../../animation/animation-clip": 10, + "../event/event-target": 140, + "../platform/js": 214, + "./CCComponent": 105 + }], + 101: [(function(t, e) { + "use strict"; + var i = t("../utils/misc") + , n = t("./CCComponent") + , r = t("../assets/CCAudioClip") + , s = cc.Class({ + name: "cc.AudioSource", + extends: n, + editor: !1, + ctor: function() { + this.audio = new cc._Audio + }, + properties: { + _clip: { + default: null, + type: r + }, + _volume: 1, + _mute: !1, + _loop: !1, + _pausedFlag: { + default: !1, + serializable: !1 + }, + _firstlyEnabled: !0, + isPlaying: { + get: function() { + return this.audio.getState() === cc._Audio.State.PLAYING + }, + visible: !1 + }, + clip: { + get: function() { + return this._clip + }, + set: function(t) { + if (t !== this._clip) { + if (!(t instanceof r)) + return cc.error("Wrong type of AudioClip."); + this._clip = t, + this.audio.stop(), + this.audio.src = this._clip, + this.preload && this._clip._ensureLoaded() + } + }, + type: r, + tooltip: !1, + animatable: !1 + }, + volume: { + get: function() { + return this._volume + }, + set: function(t) { + return t = i.clamp01(t), + this._volume = t, + this._mute || this.audio.setVolume(t), + t + }, + tooltip: !1 + }, + mute: { + get: function() { + return this._mute + }, + set: function(t) { + return this._mute = t, + this.audio.setVolume(t ? 0 : this._volume), + t + }, + animatable: !1, + tooltip: !1 + }, + loop: { + get: function() { + return this._loop + }, + set: function(t) { + return this._loop = t, + this.audio.setLoop(t), + t + }, + animatable: !1, + tooltip: !1 + }, + playOnLoad: { + default: !1, + tooltip: !1, + animatable: !1 + }, + preload: { + default: !1, + animatable: !1 + } + }, + _pausedCallback: function() { + this.audio.getState() === cc._Audio.State.PLAYING && (this.audio.pause(), + this._pausedFlag = !0) + }, + _restoreCallback: function() { + this._pausedFlag && this.audio.resume(), + this._pausedFlag = !1 + }, + onLoad: function() { + this.audio.src || (this.audio.src = this._clip), + this.preload && this._clip._ensureLoaded() + }, + onEnable: function() { + this.playOnLoad && this._firstlyEnabled && (this._firstlyEnabled = !1, + this.play()), + cc.game.on(cc.game.EVENT_HIDE, this._pausedCallback, this), + cc.game.on(cc.game.EVENT_SHOW, this._restoreCallback, this) + }, + onDisable: function() { + this.stop(), + cc.game.off(cc.game.EVENT_HIDE, this._pausedCallback, this), + cc.game.off(cc.game.EVENT_SHOW, this._restoreCallback, this) + }, + onDestroy: function() { + this.audio.destroy() + }, + play: function() { + if (this._clip) { + var t = this.audio; + t.setVolume(this._mute ? 0 : this._volume), + t.setLoop(this._loop), + t.setCurrentTime(0), + t.play() + } + }, + stop: function() { + this.audio.stop() + }, + pause: function() { + this.audio.pause() + }, + resume: function() { + this.audio.resume() + }, + rewind: function() { + this.audio.setCurrentTime(0) + }, + getCurrentTime: function() { + return this.audio.getCurrentTime() + }, + setCurrentTime: function(t) { + return this.audio.setCurrentTime(t), + t + }, + getDuration: function() { + return this.audio.getDuration() + } + }); + cc.AudioSource = e.exports = s + } + ), { + "../assets/CCAudioClip": 63, + "../utils/misc": 267, + "./CCComponent": 105 + }], + 102: [(function(t, e) { + "use strict"; + var i = ["touchstart", "touchmove", "touchend", "mousedown", "mousemove", "mouseup", "mouseenter", "mouseleave", "mousewheel"]; + function n(t) { + t.stopPropagation() + } + var r = cc.Class({ + name: "cc.BlockInputEvents", + extends: t("./CCComponent"), + editor: { + menu: "i18n:MAIN_MENU.component.ui/Block Input Events", + inspector: "packages://inspector/inspectors/comps/block-input-events.js", + help: "i18n:COMPONENT.help_url.block_input_events" + }, + onEnable: function() { + for (var t = 0; t < i.length; t++) + this.node.on(i[t], n, this) + }, + onDisable: function() { + for (var t = 0; t < i.length; t++) + this.node.off(i[t], n, this) + } + }); + cc.BlockInputEvents = e.exports = r + } + ), { + "./CCComponent": 105 + }], + 103: [(function(t, e) { + "use strict"; + var i = t("./CCComponent") + , n = t("../utils/gray-sprite-state") + , r = cc.Enum({ + NONE: 0, + COLOR: 1, + SPRITE: 2, + SCALE: 3 + }) + , s = cc.Enum({ + NORMAL: 0, + HOVER: 1, + PRESSED: 2, + DISABLED: 3 + }) + , a = cc.Class({ + name: "cc.Button", + extends: i, + mixins: [n], + ctor: function() { + this._pressed = !1, + this._hovered = !1, + this._fromColor = null, + this._toColor = null, + this._time = 0, + this._transitionFinished = !0, + this._fromScale = cc.Vec2.ZERO, + this._toScale = cc.Vec2.ZERO, + this._originalScale = null, + this._graySpriteMaterial = null, + this._spriteMaterial = null, + this._sprite = null + }, + editor: !1, + properties: { + interactable: { + default: !0, + tooltip: !1, + notify: function() { + this._updateState(), + this.interactable || this._resetState() + }, + animatable: !1 + }, + _resizeToTarget: { + animatable: !1, + set: function(t) { + t && this._resizeNodeToTargetNode() + } + }, + enableAutoGrayEffect: { + default: !1, + tooltip: !1, + notify: function() { + this._updateDisabledState(!0) + } + }, + transition: { + default: r.NONE, + tooltip: !1, + type: r, + animatable: !1, + notify: function(t) { + this._updateTransition(t) + }, + formerlySerializedAs: "transition" + }, + normalColor: { + default: cc.Color.WHITE, + displayName: "Normal", + tooltip: !1, + notify: function() { + this.transition === r.Color && this._getButtonState() === s.NORMAL && (this._getTarget().opacity = this.normalColor.a), + this._updateState() + } + }, + pressedColor: { + default: cc.color(211, 211, 211), + displayName: "Pressed", + tooltip: !1, + notify: function() { + this.transition === r.Color && this._getButtonState() === s.PRESSED && (this._getTarget().opacity = this.pressedColor.a), + this._updateState() + }, + formerlySerializedAs: "pressedColor" + }, + hoverColor: { + default: cc.Color.WHITE, + displayName: "Hover", + tooltip: !1, + notify: function() { + this.transition === r.Color && this._getButtonState() === s.HOVER && (this._getTarget().opacity = this.hoverColor.a), + this._updateState() + }, + formerlySerializedAs: "hoverColor" + }, + disabledColor: { + default: cc.color(124, 124, 124), + displayName: "Disabled", + tooltip: !1, + notify: function() { + this.transition === r.Color && this._getButtonState() === s.DISABLED && (this._getTarget().opacity = this.disabledColor.a), + this._updateState() + } + }, + duration: { + default: .1, + range: [0, 10], + tooltip: !1 + }, + zoomScale: { + default: 1.2, + tooltip: !1 + }, + normalSprite: { + default: null, + type: cc.SpriteFrame, + displayName: "Normal", + tooltip: !1, + notify: function() { + this._updateState() + } + }, + pressedSprite: { + default: null, + type: cc.SpriteFrame, + displayName: "Pressed", + tooltip: !1, + formerlySerializedAs: "pressedSprite", + notify: function() { + this._updateState() + } + }, + hoverSprite: { + default: null, + type: cc.SpriteFrame, + displayName: "Hover", + tooltip: !1, + formerlySerializedAs: "hoverSprite", + notify: function() { + this._updateState() + } + }, + disabledSprite: { + default: null, + type: cc.SpriteFrame, + displayName: "Disabled", + tooltip: !1, + notify: function() { + this._updateState() + } + }, + target: { + default: null, + type: cc.Node, + tooltip: !1, + notify: function(t) { + this._applyTarget(), + t && this.target !== t && this._unregisterTargetEvent(t) + } + }, + clickEvents: { + default: [], + type: cc.Component.EventHandler, + tooltip: !1 + } + }, + statics: { + Transition: r + }, + __preload: function() { + this._applyTarget(), + this._resetState() + }, + _resetState: function() { + this._pressed = !1, + this._hovered = !1; + var t = this._getTarget() + , e = this.transition + , i = this._originalScale; + e === r.COLOR && this.interactable ? this._setTargetColor(this.normalColor) : e === r.SCALE && i && t.setScale(i.x, i.y), + this._transitionFinished = !0 + }, + onEnable: function() { + this.normalSprite && this.normalSprite.ensureLoadTexture(), + this.hoverSprite && this.hoverSprite.ensureLoadTexture(), + this.pressedSprite && this.pressedSprite.ensureLoadTexture(), + this.disabledSprite && this.disabledSprite.ensureLoadTexture(), + this._registerNodeEvent(), + this._updateState() + }, + onDisable: function() { + this._resetState(), + this._unregisterNodeEvent() + }, + _getTarget: function() { + return this.target ? this.target : this.node + }, + _onTargetSpriteFrameChanged: function(t) { + this.transition === r.SPRITE && this._setCurrentStateSprite(t.spriteFrame) + }, + _onTargetColorChanged: function(t) { + this.transition === r.COLOR && this._setCurrentStateColor(t) + }, + _onTargetScaleChanged: function() { + var t = this._getTarget(); + this._originalScale && (this.transition !== r.SCALE || this._transitionFinished) && (this._originalScale.x = t.scaleX, + this._originalScale.y = t.scaleY) + }, + _setTargetColor: function(t) { + var e = this._getTarget() + , i = t.clone(); + e.opacity = i.a, + i.a = 255, + e.color = i + }, + _getStateColor: function(t) { + switch (t) { + case s.NORMAL: + return this.normalColor; + case s.HOVER: + return this.hoverColor; + case s.PRESSED: + return this.pressedColor; + case s.DISABLED: + return this.disabledColor + } + }, + _getStateSprite: function(t) { + switch (t) { + case s.NORMAL: + return this.normalSprite; + case s.HOVER: + return this.hoverSprite; + case s.PRESSED: + return this.pressedSprite; + case s.DISABLED: + return this.disabledSprite + } + }, + _setCurrentStateColor: function(t) { + switch (this._getButtonState()) { + case s.NORMAL: + this.normalColor = t; + break; + case s.HOVER: + this.hoverColor = t; + break; + case s.PRESSED: + this.pressedColor = t; + break; + case s.DISABLED: + this.disabledColor = t + } + }, + _setCurrentStateSprite: function(t) { + switch (this._getButtonState()) { + case s.NORMAL: + this.normalSprite = t; + break; + case s.HOVER: + this.hoverSprite = t; + break; + case s.PRESSED: + this.pressedSprite = t; + break; + case s.DISABLED: + this.disabledSprite = t + } + }, + update: function(t) { + var e = this._getTarget(); + if (!this._transitionFinished && (this.transition === r.COLOR || this.transition === r.SCALE)) { + this.time += t; + var i = 1; + if (this.duration > 0 && (i = this.time / this.duration), + i >= 1 && (i = 1), + this.transition === r.COLOR) { + var n = this._fromColor.lerp(this._toColor, i); + this._setTargetColor(n) + } else + this.transition === r.SCALE && this._originalScale && (e.scale = this._fromScale.lerp(this._toScale, i)); + 1 === i && (this._transitionFinished = !0) + } + }, + _registerNodeEvent: function() { + this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this), + this.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMove, this), + this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this), + this.node.on(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this), + this.node.on(cc.Node.EventType.MOUSE_ENTER, this._onMouseMoveIn, this), + this.node.on(cc.Node.EventType.MOUSE_LEAVE, this._onMouseMoveOut, this) + }, + _unregisterNodeEvent: function() { + this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this), + this.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMove, this), + this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this), + this.node.off(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this), + this.node.off(cc.Node.EventType.MOUSE_ENTER, this._onMouseMoveIn, this), + this.node.off(cc.Node.EventType.MOUSE_LEAVE, this._onMouseMoveOut, this) + }, + _registerTargetEvent: function(t) { + t.on(cc.Node.EventType.SCALE_CHANGED, this._onTargetScaleChanged, this) + }, + _unregisterTargetEvent: function(t) { + t.off(cc.Node.EventType.SCALE_CHANGED, this._onTargetScaleChanged, this) + }, + _getTargetSprite: function(t) { + var e = null; + return t && (e = t.getComponent(cc.Sprite)), + e + }, + _applyTarget: function() { + var t = this._getTarget(); + this._sprite = this._getTargetSprite(t), + this._originalScale || (this._originalScale = cc.Vec2.ZERO), + this._originalScale.x = t.scaleX, + this._originalScale.y = t.scaleY, + this._registerTargetEvent(t) + }, + _onTouchBegan: function(t) { + this.interactable && this.enabledInHierarchy && (this._pressed = !0, + this._updateState(), + t.stopPropagation()) + }, + _onTouchMove: function(t) { + if (this.interactable && this.enabledInHierarchy && this._pressed) { + var e, i = t.touch, n = this.node._hitTest(i.getLocation()), a = this._getTarget(), o = this._originalScale; + this.transition === r.SCALE && o ? n ? (this._fromScale.x = o.x, + this._fromScale.y = o.y, + this._toScale.x = o.x * this.zoomScale, + this._toScale.y = o.y * this.zoomScale, + this._transitionFinished = !1) : (this.time = 0, + this._transitionFinished = !0, + a.setScale(o.x, o.y)) : (e = n ? s.PRESSED : s.NORMAL, + this._applyTransition(e)), + t.stopPropagation() + } + }, + _onTouchEnded: function(t) { + this.interactable && this.enabledInHierarchy && (this._pressed && (cc.Component.EventHandler.emitEvents(this.clickEvents, t), + this.node.emit("click", this)), + this._pressed = !1, + this._updateState(), + t.stopPropagation()) + }, + _onTouchCancel: function() { + this.interactable && this.enabledInHierarchy && (this._pressed = !1, + this._updateState()) + }, + _onMouseMoveIn: function() { + !this._pressed && this.interactable && this.enabledInHierarchy && (this.transition !== r.SPRITE || this.hoverSprite) && (this._hovered || (this._hovered = !0, + this._updateState())) + }, + _onMouseMoveOut: function() { + this._hovered && (this._hovered = !1, + this._updateState()) + }, + _updateState: function() { + var t = this._getButtonState(); + this._applyTransition(t), + this._updateDisabledState() + }, + _getButtonState: function() { + return this.interactable ? this._pressed ? s.PRESSED : this._hovered ? s.HOVER : s.NORMAL : s.DISABLED + }, + _updateColorTransitionImmediately: function(t) { + var e = this._getStateColor(t); + this._setTargetColor(e), + this._fromColor = e.clone(), + this._toColor = e + }, + _updateColorTransition: function(t) { + if (t === s.DISABLED) + this._updateColorTransitionImmediately(t); + else { + var e = this._getTarget() + , i = this._getStateColor(t); + this._fromColor = e.color.clone(), + this._toColor = i, + this.time = 0, + this._transitionFinished = !1 + } + }, + _updateSpriteTransition: function(t) { + var e = this._getStateSprite(t); + this._sprite && e && (this._sprite.spriteFrame = e) + }, + _updateScaleTransition: function(t) { + t === s.PRESSED ? this._zoomUp() : this._zoomBack() + }, + _zoomUp: function() { + this._originalScale && (this._fromScale.x = this._originalScale.x, + this._fromScale.y = this._originalScale.y, + this._toScale.x = this._originalScale.x * this.zoomScale, + this._toScale.y = this._originalScale.y * this.zoomScale, + this.time = 0, + this._transitionFinished = !1) + }, + _zoomBack: function() { + if (this._originalScale) { + var t = this._getTarget(); + this._fromScale.x = t.scaleX, + this._fromScale.y = t.scaleY, + this._toScale.x = this._originalScale.x, + this._toScale.y = this._originalScale.y, + this.time = 0, + this._transitionFinished = !1 + } + }, + _updateTransition: function(t) { + t === r.COLOR ? this._updateColorTransitionImmediately(s.NORMAL) : t === r.SPRITE && this._updateSpriteTransition(s.NORMAL), + this._updateState() + }, + _applyTransition: function(t) { + var e = this.transition; + e === r.COLOR ? this._updateColorTransition(t) : e === r.SPRITE ? this._updateSpriteTransition(t) : e === r.SCALE && this._updateScaleTransition(t) + }, + _resizeNodeToTargetNode: !1, + _updateDisabledState: function(t) { + if (this._sprite && (this.enableAutoGrayEffect || t)) { + var e = !1; + this.transition === r.SPRITE && this.disabledSprite || (e = this.enableAutoGrayEffect && !this.interactable), + this._switchGrayMaterial(e, this._sprite) + } + } + }); + cc.Button = e.exports = a + } + ), { + "../utils/gray-sprite-state": 264, + "./CCComponent": 105 + }], + 104: [(function(t, e) { + "use strict"; + var i = t("../camera/CCCamera") + , n = t("./CCComponent") + , r = cc.Class({ + name: "cc.Canvas", + extends: n, + editor: !1, + resetInEditor: !1, + statics: { + instance: null + }, + properties: { + _designResolution: cc.size(960, 640), + designResolution: { + get: function() { + return cc.size(this._designResolution) + }, + set: function(t) { + this._designResolution.width = t.width, + this._designResolution.height = t.height, + this.applySettings() + }, + tooltip: !1 + }, + _fitWidth: !1, + _fitHeight: !0, + fitHeight: { + get: function() { + return this._fitHeight + }, + set: function(t) { + this._fitHeight !== t && (this._fitHeight = t, + this.applySettings()) + }, + tooltip: !1 + }, + fitWidth: { + get: function() { + return this._fitWidth + }, + set: function(t) { + this._fitWidth !== t && (this._fitWidth = t, + this.applySettings()) + }, + tooltip: !1 + } + }, + _fitDesignResolution: !1, + __preload: function() { + if (r.instance) + return cc.warnID(6700, this.node.name, r.instance.node.name); + r.instance = this, + this.applySettings(); + var t = this.getComponent(cc.Widget); + t && t.updateAlignment() + }, + start: function() { + if (!i.main && cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { + var t = new cc.Node("Main Camera"); + t.parent = this.node, + t.setSiblingIndex(0); + var e = t.addComponent(i) + , n = i.ClearFlags; + e.clearFlags = n.COLOR | n.DEPTH | n.STENCIL, + e.depth = -1 + } + }, + onDestroy: function() { + r.instance === this && (r.instance = null) + }, + applySettings: function() { + var t, e = cc.ResolutionPolicy; + t = this.fitHeight && this.fitWidth ? e.SHOW_ALL : this.fitHeight || this.fitWidth ? this.fitWidth ? e.FIXED_WIDTH : e.FIXED_HEIGHT : e.NO_BORDER; + var i = this._designResolution; + cc.view.setDesignResolutionSize(i.width, i.height, t) + } + }); + cc.Canvas = e.exports = r + } + ), { + "../camera/CCCamera": 90, + "./CCComponent": 105 + }], + 105: [(function(t, e) { + "use strict"; + var i = t("../platform/CCObject") + , n = t("../platform/js") + , r = new (t("../platform/id-generater"))("Comp") + , s = (i.Flags.IsOnEnableCalled, + i.Flags.IsOnLoadCalled) + , a = !!cc.ActionManager + , o = cc.Class({ + name: "cc.Component", + extends: i, + ctor: function() { + this._id = r.getNewId(), + this.__eventTargets = [] + }, + properties: { + node: { + default: null, + visible: !1 + }, + name: { + get: function() { + if (this._name) + return this._name; + var t = cc.js.getClassName(this) + , e = t.lastIndexOf("."); + return e >= 0 && (t = t.slice(e + 1)), + this.node.name + "<" + t + ">" + }, + set: function(t) { + this._name = t + }, + visible: !1 + }, + uuid: { + get: function() { + return this._id + }, + visible: !1 + }, + __scriptAsset: !1, + _enabled: !0, + enabled: { + get: function() { + return this._enabled + }, + set: function(t) { + if (this._enabled !== t && (this._enabled = t, + this.node._activeInHierarchy)) { + var e = cc.director._compScheduler; + t ? e.enableComp(this) : e.disableComp(this) + } + }, + visible: !1, + animatable: !0 + }, + enabledInHierarchy: { + get: function() { + return this._enabled && this.node._activeInHierarchy + }, + visible: !1 + }, + _isOnLoadCalled: { + get: function() { + return this._objFlags & s + } + } + }, + update: null, + lateUpdate: null, + __preload: null, + onLoad: null, + start: null, + onEnable: null, + onDisable: null, + onDestroy: null, + onFocusInEditor: null, + onLostFocusInEditor: null, + resetInEditor: null, + addComponent: function(t) { + return this.node.addComponent(t) + }, + getComponent: function(t) { + return this.node.getComponent(t) + }, + getComponents: function(t) { + return this.node.getComponents(t) + }, + getComponentInChildren: function(t) { + return this.node.getComponentInChildren(t) + }, + getComponentsInChildren: function(t) { + return this.node.getComponentsInChildren(t) + }, + _getLocalBounds: null, + onRestore: null, + destroy: function() { + this._super() && this._enabled && this.node._activeInHierarchy && cc.director._compScheduler.disableComp(this) + }, + _onPreDestroy: function() { + a && cc.director.getActionManager().removeAllActionsFromTarget(this), + this.unscheduleAllCallbacks(); + for (var t = this.__eventTargets, e = t.length - 1; e >= 0; --e) { + var i = t[e]; + i && i.targetOff(this) + } + t.length = 0, + cc.director._nodeActivator.destroyComp(this), + this.node._removeComponent(this) + }, + _instantiate: function(t) { + return t || (t = cc.instantiate._clone(this, this)), + t.node = null, + t + }, + schedule: function(t, e, i, n) { + cc.assertID(t, 1619), + e = e || 0, + cc.assertID(e >= 0, 1620), + i = isNaN(i) ? cc.macro.REPEAT_FOREVER : i, + n = n || 0; + var r = cc.director.getScheduler() + , s = r.isTargetPaused(this); + r.schedule(t, this, e, i, n, s) + }, + scheduleOnce: function(t, e) { + this.schedule(t, 0, 0, e) + }, + unschedule: function(t) { + t && cc.director.getScheduler().unschedule(t, this) + }, + unscheduleAllCallbacks: function() { + cc.director.getScheduler().unscheduleAllForTarget(this) + } + }); + o._requireComponent = null, + o._executionOrder = 0, + n.value(o, "_registerEditorProps", (function(t, e) { + var i = e.requireComponent; + i && (t._requireComponent = i); + var n = e.executionOrder; + n && "number" == typeof n && (t._executionOrder = n) + } + )), + o.prototype.__scriptUuid = "", + cc.Component = e.exports = o + } + ), { + "../platform/CCObject": 199, + "../platform/id-generater": 210, + "../platform/js": 214 + }], + 106: [(function() { + "use strict"; + cc.Component.EventHandler = cc.Class({ + name: "cc.ClickEvent", + properties: { + target: { + default: null, + type: cc.Node + }, + component: "", + _componentId: "", + _componentName: { + get: function() { + return this._genCompIdIfNeeded(), + this._compId2Name(this._componentId) + }, + set: function(t) { + this._componentId = this._compName2Id(t) + } + }, + handler: { + default: "" + }, + customEventData: { + default: "" + } + }, + statics: { + emitEvents: function(t) { + var e; + if (arguments.length > 0) + for (var i = 0, n = (e = new Array(arguments.length - 1)).length; i < n; i++) + e[i] = arguments[i + 1]; + for (var r = 0, s = t.length; r < s; r++) { + var a = t[r]; + a instanceof cc.Component.EventHandler && a.emit(e) + } + } + }, + emit: function(t) { + var e = this.target; + if (cc.isValid(e)) { + this._genCompIdIfNeeded(); + var i = cc.js._getClassById(this._componentId) + , n = e.getComponent(i); + if (cc.isValid(n)) { + var r = n[this.handler]; + "function" == typeof r && (null != this.customEventData && "" !== this.customEventData && (t = t.slice()).push(this.customEventData), + r.apply(n, t)) + } + } + }, + _compName2Id: function(t) { + var e = cc.js.getClassByName(t); + return cc.js._getClassId(e) + }, + _compId2Name: function(t) { + var e = cc.js._getClassById(t); + return cc.js.getClassName(e) + }, + _genCompIdIfNeeded: function() { + this._componentId || (this._componentName = this.component, + this.component = "") + } + }) + } + ), {}], + 107: [(function(t, e) { + "use strict"; + var i = t("../platform/CCMacro") + , n = t("./CCRenderComponent") + , r = (t("../assets/material/CCMaterial"), + t("../renderer/utils/label/label-frame")) + , s = t("../utils/blend-func") + , a = t("../renderer/utils/utils").deleteFromDynamicAtlas + , o = i.TextAlignment + , l = i.VerticalTextAlignment + , h = cc.Enum({ + NONE: 0, + CLAMP: 1, + SHRINK: 2, + RESIZE_HEIGHT: 3 + }) + , c = cc.Enum({ + NONE: 0, + BITMAP: 1, + CHAR: 2 + }) + , u = cc.Class({ + name: "cc.Label", + extends: n, + mixins: [s], + ctor: function() { + this._actualFontSize = 0, + this._assemblerData = null, + this._frame = null, + this._ttfTexture = null, + this._letterTexture = null, + cc.game.renderType === cc.game.RENDER_TYPE_CANVAS ? this._updateMaterial = this._updateMaterialCanvas : this._updateMaterial = this._updateMaterialWebgl + }, + editor: !1, + properties: { + _string: { + default: "", + formerlySerializedAs: "_N$string" + }, + string: { + get: function() { + return this._string + }, + set: function(t) { + var e = this._string; + this._string = "" + t, + this.string !== e && this.setVertsDirty(), + this._checkStringEmpty() + }, + multiline: !0, + tooltip: !1 + }, + horizontalAlign: { + default: o.LEFT, + type: o, + tooltip: !1, + notify: function(t) { + this.horizontalAlign !== t && this.setVertsDirty() + }, + animatable: !1 + }, + verticalAlign: { + default: l.TOP, + type: l, + tooltip: !1, + notify: function(t) { + this.verticalAlign !== t && this.setVertsDirty() + }, + animatable: !1 + }, + actualFontSize: { + displayName: "Actual Font Size", + animatable: !1, + readonly: !0, + get: function() { + return this._actualFontSize + }, + tooltip: !1 + }, + _fontSize: 40, + fontSize: { + get: function() { + return this._fontSize + }, + set: function(t) { + this._fontSize !== t && (this._fontSize = t, + this.setVertsDirty()) + }, + range: [0, 512], + tooltip: !1 + }, + fontFamily: { + default: "Arial", + tooltip: !1, + notify: function(t) { + this.fontFamily !== t && this.setVertsDirty() + }, + animatable: !1 + }, + _lineHeight: 40, + lineHeight: { + get: function() { + return this._lineHeight + }, + set: function(t) { + this._lineHeight !== t && (this._lineHeight = t, + this.setVertsDirty()) + }, + tooltip: !1 + }, + overflow: { + default: h.NONE, + type: h, + tooltip: !1, + notify: function(t) { + this.overflow !== t && this.setVertsDirty() + }, + animatable: !1 + }, + _enableWrapText: !0, + enableWrapText: { + get: function() { + return this._enableWrapText + }, + set: function(t) { + this._enableWrapText !== t && (this._enableWrapText = t, + this.setVertsDirty()) + }, + animatable: !1, + tooltip: !1 + }, + _N$file: null, + font: { + get: function() { + return this._N$file + }, + set: function(t) { + this.font !== t && (t || (this._isSystemFontUsed = !0), + this._N$file = t, + t && this._isSystemFontUsed && (this._isSystemFontUsed = !1), + this.enabledInHierarchy && this._forceUpdateRenderData()) + }, + type: cc.Font, + tooltip: !1, + animatable: !1 + }, + _isSystemFontUsed: !0, + useSystemFont: { + get: function() { + return this._isSystemFontUsed + }, + set: function(t) { + if (this._isSystemFontUsed !== t) { + if (this._isSystemFontUsed = !!t, + t) { + if (this.font = null, + !this.enabledInHierarchy) + return; + this._forceUpdateRenderData() + } + this.markForValidate() + } + }, + animatable: !1, + tooltip: !1 + }, + _bmFontOriginalSize: { + displayName: "BMFont Original Size", + get: function() { + return this._N$file instanceof cc.BitmapFont ? this._N$file.fontSize : -1 + }, + visible: !0, + animatable: !1 + }, + _spacingX: 0, + spacingX: { + get: function() { + return this._spacingX + }, + set: function(t) { + this._spacingX = t, + this.setVertsDirty() + }, + tooltip: !1 + }, + _batchAsBitmap: !1, + cacheMode: { + default: c.NONE, + type: c, + tooltip: !1, + notify: function(t) { + this.cacheMode !== t && (t !== c.BITMAP || this.font instanceof cc.BitmapFont || this._frame && this._frame._resetDynamicAtlasFrame(), + t === c.CHAR && (this._ttfTexture = null), + this.enabledInHierarchy && this._forceUpdateRenderData()) + }, + animatable: !1 + }, + _styleFlags: 0, + enableBold: { + get: function() { + return !!(1 & this._styleFlags) + }, + set: function(t) { + t ? this._styleFlags |= 1 : this._styleFlags &= -2, + this.setVertsDirty() + }, + animatable: !1, + tooltip: !1 + }, + enableItalic: { + get: function() { + return !!(2 & this._styleFlags) + }, + set: function(t) { + t ? this._styleFlags |= 2 : this._styleFlags &= -3, + this.setVertsDirty() + }, + animatable: !1, + tooltip: !1 + }, + enableUnderline: { + get: function() { + return !!(4 & this._styleFlags) + }, + set: function(t) { + t ? this._styleFlags |= 4 : this._styleFlags &= -5, + this.setVertsDirty() + }, + animatable: !1, + tooltip: !1 + }, + _underlineHeight: 0, + underlineHeight: { + get: function() { + return this._underlineHeight + }, + set: function(t) { + this._underlineHeight !== t && (this._underlineHeight = t, + this.setVertsDirty()) + }, + tooltip: !1 + } + }, + statics: { + HorizontalAlign: o, + VerticalAlign: l, + Overflow: h, + CacheMode: c, + _shareAtlas: null, + clearCharCache: function() { + u._shareAtlas && u._shareAtlas.clearAllCache() + } + }, + onLoad: function() { + this._batchAsBitmap && this.cacheMode === c.NONE && (this.cacheMode = c.BITMAP, + this._batchAsBitmap = !1), + cc.game.renderType === cc.game.RENDER_TYPE_CANVAS && (this.cacheMode = c.NONE) + }, + onEnable: function() { + this._super(), + this.node.on(cc.Node.EventType.SIZE_CHANGED, this._nodeSizeChanged, this), + this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.setVertsDirty, this), + this.node.on(cc.Node.EventType.COLOR_CHANGED, this._nodeColorChanged, this), + this._forceUpdateRenderData() + }, + onDisable: function() { + this._super(), + this.node.off(cc.Node.EventType.SIZE_CHANGED, this._nodeSizeChanged, this), + this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this.setVertsDirty, this), + this.node.off(cc.Node.EventType.COLOR_CHANGED, this._nodeColorChanged, this) + }, + onDestroy: function() { + this._assembler && this._assembler._resetAssemblerData && this._assembler._resetAssemblerData(this._assemblerData), + this._assemblerData = null, + this._letterTexture = null, + this._ttfTexture && (this._ttfTexture.destroy(), + this._ttfTexture = null), + this._super() + }, + _nodeSizeChanged: function() { + this.overflow !== h.NONE && this.setVertsDirty() + }, + _nodeColorChanged: function() { + this.font instanceof cc.BitmapFont || this.setVertsDirty() + }, + setVertsDirty: function() { + this._super() + }, + _updateColor: function() { + this.font instanceof cc.BitmapFont || this._srcBlendFactor === cc.macro.BlendFactor.SRC_ALPHA && this.node._renderFlag & cc.RenderFlow.FLAG_OPACITY || this.setVertsDirty(), + n.prototype._updateColor.call(this) + }, + _validateRender: function() { + if (this.string) { + if (this._materials[0]) { + var t = this.font; + if (!(t instanceof cc.BitmapFont)) + return; + var e = t.spriteFrame; + if (e && e.textureLoaded() && t._fntConfig) + return + } + this.disableRender() + } else + this.disableRender() + }, + _resetAssembler: function() { + this._resetFrame(), + n.prototype._resetAssembler.call(this) + }, + _resetFrame: function() { + !this._frame || this.font instanceof cc.BitmapFont || (a(this, this._frame), + this._frame = null) + }, + _checkStringEmpty: function() { + this.markForRender(!!this.string) + }, + _on3DNodeChanged: function() { + this._resetAssembler(), + this._applyFontTexture() + }, + _onBMFontTextureLoaded: function() { + this._frame._texture = this.font.spriteFrame._texture, + this.markForRender(!0), + this._updateMaterial(), + this._assembler && this._assembler.updateRenderData(this) + }, + _onBlendChanged: function() { + this.useSystemFont && this.enabledInHierarchy && this._forceUpdateRenderData() + }, + _applyFontTexture: function() { + var t = this.font; + if (t instanceof cc.BitmapFont) { + var e = t.spriteFrame; + this._frame = e, + e && e.onTextureLoaded(this._onBMFontTextureLoaded, this) + } else + this._nativeTTF() || (this._frame || (this._frame = new r), + this.cacheMode === c.CHAR ? (this._letterTexture = this._assembler._getAssemblerData(), + this._frame._refreshTexture(this._letterTexture)) : this._ttfTexture || (this._ttfTexture = new cc.Texture2D, + this._assemblerData = this._assembler._getAssemblerData(), + this._ttfTexture.initWithElement(this._assemblerData.canvas)), + this.cacheMode !== c.CHAR && (this._frame._resetDynamicAtlasFrame(), + this._frame._refreshTexture(this._ttfTexture), + this._srcBlendFactor === cc.macro.BlendFactor.ONE && this._ttfTexture.setPremultiplyAlpha(!0)), + this._updateMaterial()), + this._assembler && this._assembler.updateRenderData(this); + this.markForValidate() + }, + _updateMaterialCanvas: function() { + this._frame && (this._frame._texture._nativeUrl = this.uuid + "_texture") + }, + _updateMaterialWebgl: function() { + var t = this.getMaterial(0); + this._nativeTTF() ? t && this._assembler._updateTTFMaterial(this) : this._frame && (t && t.setProperty("texture", this._frame._texture), + s.prototype._updateMaterial.call(this)) + }, + _forceUseCanvas: !1, + _useNativeTTF: function() { + return cc.macro.ENABLE_NATIVE_TTF_RENDERER && !this._forceUseCanvas + }, + _nativeTTF: function() { + return this._useNativeTTF() && !!this._assembler && !!this._assembler._updateTTFMaterial + }, + _forceUpdateRenderData: function() { + this.setVertsDirty(), + this._resetAssembler(), + this._applyFontTexture() + }, + _enableBold: function(t) { + this.enableBold = !!t + }, + _enableItalics: function(t) { + this.enableItalic = !!t + }, + _enableUnderline: function(t) { + this.enableUnderline = !!t + } + }); + cc.Label = e.exports = u + } + ), { + "../assets/material/CCMaterial": 80, + "../platform/CCMacro": 198, + "../renderer/utils/label/label-frame": 229, + "../renderer/utils/utils": 232, + "../utils/blend-func": 261, + "./CCRenderComponent": 115 + }], + 108: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.LabelOutline", + extends: t("./CCComponent"), + editor: !1, + properties: { + _color: cc.Color.WHITE, + _width: 1, + color: { + tooltip: !1, + get: function() { + return this._color.clone() + }, + set: function(t) { + this._color.equals(t) || this._color.set(t), + this._updateRenderData() + } + }, + width: { + tooltip: !1, + get: function() { + return this._width + }, + set: function(t) { + this._width !== t && (this._width = t, + this._updateRenderData()) + }, + range: [0, 512] + } + }, + onEnable: function() { + this._updateRenderData() + }, + onDisable: function() { + this._updateRenderData() + }, + _updateRenderData: function() { + var t = this.node.getComponent(cc.Label); + t && t.setVertsDirty() + } + }); + cc.LabelOutline = e.exports = i + } + ), { + "./CCComponent": 105 + }], + 109: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.LabelShadow", + extends: t("./CCComponent"), + editor: !1, + properties: { + _color: cc.Color.WHITE, + _offset: cc.v2(2, 2), + _blur: 2, + color: { + tooltip: !1, + get: function() { + return this._color.clone() + }, + set: function(t) { + this._color.equals(t) || this._color.set(t), + this._updateRenderData() + } + }, + offset: { + tooltip: !1, + get: function() { + return this._offset + }, + set: function(t) { + this._offset = t, + this._updateRenderData() + } + }, + blur: { + tooltip: !1, + get: function() { + return this._blur + }, + set: function(t) { + this._blur = t, + this._updateRenderData() + }, + range: [0, 1024] + } + }, + onEnable: function() { + this._updateRenderData() + }, + onDisable: function() { + this._updateRenderData() + }, + _updateRenderData: function() { + var t = this.node.getComponent(cc.Label); + t && t.markForRender(!0) + } + }); + cc.LabelShadow = e.exports = i + } + ), { + "./CCComponent": 105 + }], + 110: [(function(t, e) { + "use strict"; + var i = t("../CCNode").EventType + , n = cc.Enum({ + NONE: 0, + HORIZONTAL: 1, + VERTICAL: 2, + GRID: 3 + }) + , r = cc.Enum({ + NONE: 0, + CONTAINER: 1, + CHILDREN: 2 + }) + , s = cc.Enum({ + HORIZONTAL: 0, + VERTICAL: 1 + }) + , a = cc.Enum({ + BOTTOM_TO_TOP: 0, + TOP_TO_BOTTOM: 1 + }) + , o = cc.Enum({ + LEFT_TO_RIGHT: 0, + RIGHT_TO_LEFT: 1 + }) + , l = cc.Class({ + name: "cc.Layout", + extends: t("./CCComponent"), + editor: !1, + properties: { + _layoutSize: cc.size(300, 200), + _layoutDirty: { + default: !0, + serializable: !1 + }, + _resize: r.NONE, + _N$layoutType: n.NONE, + type: { + type: n, + get: function() { + return this._N$layoutType + }, + set: function(t) { + this._N$layoutType = t, + this._doLayoutDirty() + }, + tooltip: !1, + animatable: !1 + }, + resizeMode: { + type: r, + tooltip: !1, + animatable: !1, + get: function() { + return this._resize + }, + set: function(t) { + this.type === n.NONE && t === r.CHILDREN || (this._resize = t, + this._doLayoutDirty()) + } + }, + cellSize: { + default: cc.size(40, 40), + tooltip: !1, + type: cc.Size, + notify: function() { + this._doLayoutDirty() + } + }, + startAxis: { + default: s.HORIZONTAL, + tooltip: !1, + type: s, + notify: function() { + this._doLayoutDirty() + }, + animatable: !1 + }, + paddingLeft: { + default: 0, + tooltip: !1, + notify: function() { + this._doLayoutDirty() + } + }, + paddingRight: { + default: 0, + tooltip: !1, + notify: function() { + this._doLayoutDirty() + } + }, + paddingTop: { + default: 0, + tooltip: !1, + notify: function() { + this._doLayoutDirty() + } + }, + paddingBottom: { + default: 0, + tooltip: !1, + notify: function() { + this._doLayoutDirty() + } + }, + spacingX: { + default: 0, + notify: function() { + this._doLayoutDirty() + }, + tooltip: !1 + }, + spacingY: { + default: 0, + notify: function() { + this._doLayoutDirty() + }, + tooltip: !1 + }, + verticalDirection: { + default: a.TOP_TO_BOTTOM, + type: a, + notify: function() { + this._doLayoutDirty() + }, + tooltip: !1, + animatable: !1 + }, + horizontalDirection: { + default: o.LEFT_TO_RIGHT, + type: o, + notify: function() { + this._doLayoutDirty() + }, + tooltip: !1, + animatable: !1 + }, + affectedByScale: { + default: !1, + notify: function() { + this._doLayoutDirty() + }, + animatable: !1, + tooltip: !1 + } + }, + statics: { + Type: n, + VerticalDirection: a, + HorizontalDirection: o, + ResizeMode: r, + AxisDirection: s + }, + onEnable: function() { + this._addEventListeners(), + this.node.getContentSize().equals(cc.size(0, 0)) && this.node.setContentSize(this._layoutSize), + this._doLayoutDirty() + }, + onDisable: function() { + this._removeEventListeners() + }, + _doLayoutDirty: function() { + this._layoutDirty = !0 + }, + _doScaleDirty: function() { + this._layoutDirty = this._layoutDirty || this.affectedByScale + }, + _addEventListeners: function() { + cc.director.on(cc.Director.EVENT_AFTER_UPDATE, this.updateLayout, this), + this.node.on(i.SIZE_CHANGED, this._resized, this), + this.node.on(i.ANCHOR_CHANGED, this._doLayoutDirty, this), + this.node.on(i.CHILD_ADDED, this._childAdded, this), + this.node.on(i.CHILD_REMOVED, this._childRemoved, this), + this.node.on(i.CHILD_REORDER, this._doLayoutDirty, this), + this._addChildrenEventListeners() + }, + _removeEventListeners: function() { + cc.director.off(cc.Director.EVENT_AFTER_UPDATE, this.updateLayout, this), + this.node.off(i.SIZE_CHANGED, this._resized, this), + this.node.off(i.ANCHOR_CHANGED, this._doLayoutDirty, this), + this.node.off(i.CHILD_ADDED, this._childAdded, this), + this.node.off(i.CHILD_REMOVED, this._childRemoved, this), + this.node.off(i.CHILD_REORDER, this._doLayoutDirty, this), + this._removeChildrenEventListeners() + }, + _addChildrenEventListeners: function() { + for (var t = this.node.children, e = 0; e < t.length; ++e) { + var n = t[e]; + n.on(i.SCALE_CHANGED, this._doScaleDirty, this), + n.on(i.SIZE_CHANGED, this._doLayoutDirty, this), + n.on(i.POSITION_CHANGED, this._doLayoutDirty, this), + n.on(i.ANCHOR_CHANGED, this._doLayoutDirty, this), + n.on("active-in-hierarchy-changed", this._doLayoutDirty, this) + } + }, + _removeChildrenEventListeners: function() { + for (var t = this.node.children, e = 0; e < t.length; ++e) { + var n = t[e]; + n.off(i.SCALE_CHANGED, this._doScaleDirty, this), + n.off(i.SIZE_CHANGED, this._doLayoutDirty, this), + n.off(i.POSITION_CHANGED, this._doLayoutDirty, this), + n.off(i.ANCHOR_CHANGED, this._doLayoutDirty, this), + n.off("active-in-hierarchy-changed", this._doLayoutDirty, this) + } + }, + _childAdded: function(t) { + t.on(i.SCALE_CHANGED, this._doScaleDirty, this), + t.on(i.SIZE_CHANGED, this._doLayoutDirty, this), + t.on(i.POSITION_CHANGED, this._doLayoutDirty, this), + t.on(i.ANCHOR_CHANGED, this._doLayoutDirty, this), + t.on("active-in-hierarchy-changed", this._doLayoutDirty, this), + this._doLayoutDirty() + }, + _childRemoved: function(t) { + t.off(i.SCALE_CHANGED, this._doScaleDirty, this), + t.off(i.SIZE_CHANGED, this._doLayoutDirty, this), + t.off(i.POSITION_CHANGED, this._doLayoutDirty, this), + t.off(i.ANCHOR_CHANGED, this._doLayoutDirty, this), + t.off("active-in-hierarchy-changed", this._doLayoutDirty, this), + this._doLayoutDirty() + }, + _resized: function() { + this._layoutSize = this.node.getContentSize(), + this._doLayoutDirty() + }, + _doLayoutHorizontally: function(t, e, i, s) { + var l = this.node.getAnchorPoint() + , h = this.node.children + , c = 1 + , u = this.paddingLeft + , _ = -l.x * t; + this.horizontalDirection === o.RIGHT_TO_LEFT && (c = -1, + _ = (1 - l.x) * t, + u = this.paddingRight); + for (var f = _ + c * u - c * this.spacingX, d = 0, p = 0, m = 0, y = 0, v = 0, g = 0, A = 0, x = 0; x < h.length; ++x) + (C = h[x]).activeInHierarchy && A++; + var b = this.cellSize.width; + for (this.type !== n.GRID && this.resizeMode === r.CHILDREN && (b = (t - (this.paddingLeft + this.paddingRight) - (A - 1) * this.spacingX) / A), + x = 0; x < h.length; ++x) { + var C = h[x] + , T = this._getUsedScaleValue(C.scaleX) + , S = this._getUsedScaleValue(C.scaleY); + if (C.activeInHierarchy) { + this._resize === r.CHILDREN && (C.width = b / T, + this.type === n.GRID && (C.height = this.cellSize.height / S)); + var w = C.anchorX + , E = C.width * T + , M = C.height * S; + m > p && (p = m), + M >= p && (m = p, + p = M, + g = C.getAnchorPoint().y), + this.horizontalDirection === o.RIGHT_TO_LEFT && (w = 1 - C.anchorX), + f = f + c * w * E + c * this.spacingX; + var D = c * (1 - w) * E; + if (e) { + var B = f + D + c * (c > 0 ? this.paddingRight : this.paddingLeft) + , I = this.horizontalDirection === o.LEFT_TO_RIGHT && B > (1 - l.x) * t + , P = this.horizontalDirection === o.RIGHT_TO_LEFT && B < -l.x * t; + (I || P) && (M >= p ? (0 === m && (m = p), + d += m, + m = p) : (d += p, + m = M, + p = 0), + f = _ + c * (u + w * E), + y++) + } + var R = i(C, d, y); + t >= E + this.paddingLeft + this.paddingRight && s && C.setPosition(cc.v2(f, R)); + var O, L = 1, F = 0 === p ? M : p; + this.verticalDirection === a.TOP_TO_BOTTOM ? (v = v || this.node._contentSize.height, + (O = R + (L = -1) * (F * g + this.paddingBottom)) < v && (v = O)) : (v = v || -this.node._contentSize.height, + (O = R + L * (F * g + this.paddingTop)) > v && (v = O)), + f += D + } + } + return v + }, + _getVerticalBaseHeight: function(t) { + var e = 0 + , i = 0; + if (this.resizeMode === r.CONTAINER) { + for (var n = 0; n < t.length; ++n) { + var s = t[n]; + s.activeInHierarchy && (i++, + e += s.height * this._getUsedScaleValue(s.scaleY)) + } + e += (i - 1) * this.spacingY + this.paddingBottom + this.paddingTop + } else + e = this.node.getContentSize().height; + return e + }, + _doLayoutVertically: function(t, e, i, s) { + var l = this.node.getAnchorPoint() + , h = this.node.children + , c = 1 + , u = this.paddingBottom + , _ = -l.y * t; + this.verticalDirection === a.TOP_TO_BOTTOM && (c = -1, + _ = (1 - l.y) * t, + u = this.paddingTop); + for (var f = _ + c * u - c * this.spacingY, d = 0, p = 0, m = 0, y = 0, v = 0, g = 0, A = 0, x = 0; x < h.length; ++x) + (C = h[x]).activeInHierarchy && A++; + var b = this.cellSize.height; + for (this.type !== n.GRID && this.resizeMode === r.CHILDREN && (b = (t - (this.paddingTop + this.paddingBottom) - (A - 1) * this.spacingY) / A), + x = 0; x < h.length; ++x) { + var C = h[x] + , T = this._getUsedScaleValue(C.scaleX) + , S = this._getUsedScaleValue(C.scaleY); + if (C.activeInHierarchy) { + this.resizeMode === r.CHILDREN && (C.height = b / S, + this.type === n.GRID && (C.width = this.cellSize.width / T)); + var w = C.anchorY + , E = C.width * T + , M = C.height * S; + m > p && (p = m), + E >= p && (m = p, + p = E, + g = C.getAnchorPoint().x), + this.verticalDirection === a.TOP_TO_BOTTOM && (w = 1 - C.anchorY), + f = f + c * w * M + c * this.spacingY; + var D = c * (1 - w) * M; + if (e) { + var B = f + D + c * (c > 0 ? this.paddingTop : this.paddingBottom) + , I = this.verticalDirection === a.BOTTOM_TO_TOP && B > (1 - l.y) * t + , P = this.verticalDirection === a.TOP_TO_BOTTOM && B < -l.y * t; + (I || P) && (E >= p ? (0 === m && (m = p), + d += m, + m = p) : (d += p, + m = E, + p = 0), + f = _ + c * (u + w * M), + y++) + } + var R = i(C, d, y); + t >= M + (this.paddingTop + this.paddingBottom) && s && C.setPosition(cc.v2(R, f)); + var O, L = 1, F = 0 === p ? E : p; + this.horizontalDirection === o.RIGHT_TO_LEFT ? (L = -1, + v = v || this.node._contentSize.width, + (O = R + L * (F * g + this.paddingLeft)) < v && (v = O)) : (v = v || -this.node._contentSize.width, + (O = R + L * (F * g + this.paddingRight)) > v && (v = O)), + f += D + } + } + return v + }, + _doLayoutBasic: function() { + for (var t = this.node.children, e = null, i = 0; i < t.length; ++i) { + var n = t[i]; + n.activeInHierarchy && (e ? e.union(e, n.getBoundingBoxToWorld()) : e = n.getBoundingBoxToWorld()) + } + if (e) { + var r = this.node.convertToNodeSpaceAR(cc.v2(e.x, e.y)); + r = cc.v2(r.x - this.paddingLeft, r.y - this.paddingBottom); + var s = this.node.convertToNodeSpaceAR(cc.v2(e.xMax, e.yMax)) + , a = (s = cc.v2(s.x + this.paddingRight, s.y + this.paddingTop)).sub(r); + if (0 !== (a = cc.size(parseFloat(a.x.toFixed(2)), parseFloat(a.y.toFixed(2)))).width) { + var o = -r.x / a.width; + this.node.anchorX = parseFloat(o.toFixed(2)) + } + if (0 !== a.height) { + var l = -r.y / a.height; + this.node.anchorY = parseFloat(l.toFixed(2)) + } + this.node.setContentSize(a) + } + }, + _doLayoutGridAxisHorizontal: function(t, e) { + var i = e.width + , n = 1 + , s = -t.y * e.height + , o = this.paddingBottom; + this.verticalDirection === a.TOP_TO_BOTTOM && (n = -1, + s = (1 - t.y) * e.height, + o = this.paddingTop); + var l = function(t, e, i) { + return s + n * (e + t.anchorY * t.height * this._getUsedScaleValue(t.scaleY) + o + i * this.spacingY) + } + .bind(this) + , h = 0; + if (this.resizeMode === r.CONTAINER) { + var c = this._doLayoutHorizontally(i, !0, l, !1); + (h = s - c) < 0 && (h *= -1), + s = -t.y * h, + this.verticalDirection === a.TOP_TO_BOTTOM && (n = -1, + s = (1 - t.y) * h) + } + this._doLayoutHorizontally(i, !0, l, !0), + this.resizeMode === r.CONTAINER && this.node.setContentSize(i, h) + }, + _doLayoutGridAxisVertical: function(t, e) { + var i = e.height + , n = 1 + , s = -t.x * e.width + , a = this.paddingLeft; + this.horizontalDirection === o.RIGHT_TO_LEFT && (n = -1, + s = (1 - t.x) * e.width, + a = this.paddingRight); + var l = function(t, e, i) { + return s + n * (e + t.anchorX * t.width * this._getUsedScaleValue(t.scaleX) + a + i * this.spacingX) + } + .bind(this) + , h = 0; + if (this.resizeMode === r.CONTAINER) { + var c = this._doLayoutVertically(i, !0, l, !1); + (h = s - c) < 0 && (h *= -1), + s = -t.x * h, + this.horizontalDirection === o.RIGHT_TO_LEFT && (n = -1, + s = (1 - t.x) * h) + } + this._doLayoutVertically(i, !0, l, !0), + this.resizeMode === r.CONTAINER && this.node.setContentSize(h, i) + }, + _doLayoutGrid: function() { + var t = this.node.getAnchorPoint() + , e = this.node.getContentSize(); + this.startAxis === s.HORIZONTAL ? this._doLayoutGridAxisHorizontal(t, e) : this.startAxis === s.VERTICAL && this._doLayoutGridAxisVertical(t, e) + }, + _getHorizontalBaseWidth: function(t) { + var e = 0 + , i = 0; + if (this.resizeMode === r.CONTAINER) { + for (var n = 0; n < t.length; ++n) { + var s = t[n]; + s.activeInHierarchy && (i++, + e += s.width * this._getUsedScaleValue(s.scaleX)) + } + e += (i - 1) * this.spacingX + this.paddingLeft + this.paddingRight + } else + e = this.node.getContentSize().width; + return e + }, + _doLayout: function() { + if (this.type === n.HORIZONTAL) { + var t = this._getHorizontalBaseWidth(this.node.children); + this._doLayoutHorizontally(t, !1, (function(t) { + return t.y + } + ), !0), + this.node.width = t + } else if (this.type === n.VERTICAL) { + var e = this._getVerticalBaseHeight(this.node.children); + this._doLayoutVertically(e, !1, (function(t) { + return t.x + } + ), !0), + this.node.height = e + } else + this.type === n.NONE ? this.resizeMode === r.CONTAINER && this._doLayoutBasic() : this.type === n.GRID && this._doLayoutGrid() + }, + _getUsedScaleValue: function(t) { + return this.affectedByScale ? Math.abs(t) : 1 + }, + updateLayout: function() { + this._layoutDirty && this.node.children.length > 0 && (this._doLayout(), + this._layoutDirty = !1) + } + }); + cc.Layout = e.exports = l + } + ), { + "../CCNode": 29, + "./CCComponent": 105 + }], + 111: [(function(t, e) { + "use strict"; + var i = a(t("../../renderer/gfx")) + , n = a(t("../value-types/mat4")) + , r = a(t("../value-types/vec2")) + , s = a(t("../assets/material/material-variant")); + function a(t) { + return t && t.__esModule ? t : { + default: t + } + } + var o = t("../utils/misc") + , l = t("./CCRenderComponent") + , h = t("../renderer/render-flow") + , c = t("../graphics/graphics") + , u = new r.default + , _ = new n.default + , f = []; + function d(t, e, i) { + f.length = 0; + for (var n = 2 * Math.PI / i, r = 0; r < i; ++r) + f.push(cc.v2(e.x * Math.cos(n * r) + t.x, e.y * Math.sin(n * r) + t.y)); + return f + } + var p = cc.Enum({ + RECT: 0, + ELLIPSE: 1, + IMAGE_STENCIL: 2 + }) + , m = cc.Class({ + name: "cc.Mask", + extends: l, + editor: !1, + ctor: function() { + this._graphics = null, + this._enableMaterial = null, + this._exitMaterial = null, + this._clearMaterial = null + }, + properties: { + _spriteFrame: { + default: null, + type: cc.SpriteFrame + }, + _type: p.RECT, + type: { + get: function() { + return this._type + }, + set: function(t) { + this._type !== t && this._resetAssembler(), + this._type = t, + this._type !== p.IMAGE_STENCIL && (this.spriteFrame = null, + this.alphaThreshold = 0, + this._updateGraphics()), + this._activateMaterial() + }, + type: p, + tooltip: !1 + }, + spriteFrame: { + type: cc.SpriteFrame, + tooltip: !1, + get: function() { + return this._spriteFrame + }, + set: function(t) { + this._spriteFrame !== t && (this._spriteFrame = t, + this.setVertsDirty(), + this._updateMaterial()) + } + }, + alphaThreshold: { + default: .1, + type: cc.Float, + range: [0, 1, .1], + slide: !0, + tooltip: !1, + notify: function() { + cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS ? this._updateMaterial() : cc.warnID(4201) + } + }, + inverted: { + default: !1, + type: cc.Boolean, + tooltip: !1, + notify: function() { + cc.game.renderType === cc.game.RENDER_TYPE_CANVAS && cc.warnID(4202) + } + }, + _segments: 64, + segements: { + get: function() { + return this._segments + }, + set: function(t) { + this._segments = o.clampf(t, 3, 1e4), + this._updateGraphics() + }, + type: cc.Integer, + tooltip: !1 + }, + _resizeToTarget: { + animatable: !1, + set: function(t) { + t && this._resizeNodeToTargetNode() + } + } + }, + statics: { + Type: p + }, + onRestore: function() { + this._activateMaterial() + }, + onEnable: function() { + this._super(), + this._type !== p.IMAGE_STENCIL && this._updateGraphics(), + this.node.on(cc.Node.EventType.POSITION_CHANGED, this._updateGraphics, this), + this.node.on(cc.Node.EventType.ROTATION_CHANGED, this._updateGraphics, this), + this.node.on(cc.Node.EventType.SCALE_CHANGED, this._updateGraphics, this), + this.node.on(cc.Node.EventType.SIZE_CHANGED, this._updateGraphics, this), + this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this._updateGraphics, this) + }, + onDisable: function() { + this._super(), + this.node.off(cc.Node.EventType.POSITION_CHANGED, this._updateGraphics, this), + this.node.off(cc.Node.EventType.ROTATION_CHANGED, this._updateGraphics, this), + this.node.off(cc.Node.EventType.SCALE_CHANGED, this._updateGraphics, this), + this.node.off(cc.Node.EventType.SIZE_CHANGED, this._updateGraphics, this), + this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this._updateGraphics, this), + this.node._renderFlag &= ~h.FLAG_POST_RENDER + }, + onDestroy: function() { + this._super(), + this._removeGraphics() + }, + _resizeNodeToTargetNode: !1, + _validateRender: function() { + if (this._type === p.IMAGE_STENCIL) { + var t = this._spriteFrame; + t && t.textureLoaded() || this.disableRender() + } + }, + _activateMaterial: function() { + this._createGraphics(); + var t = this._materials[0]; + (t = t ? s.default.create(t, this) : s.default.createWithBuiltin("2d-sprite", this)).define("USE_ALPHA_TEST", !0), + this._type === p.IMAGE_STENCIL ? (t.define("CC_USE_MODEL", !1), + t.define("USE_TEXTURE", !0)) : (t.define("CC_USE_MODEL", !0), + t.define("USE_TEXTURE", !1)), + this._enableMaterial || (this._enableMaterial = s.default.createWithBuiltin("2d-sprite", this)), + this._exitMaterial || (this._exitMaterial = s.default.createWithBuiltin("2d-sprite", this), + this._exitMaterial.setStencilEnabled(i.default.STENCIL_DISABLE)), + this._clearMaterial || (this._clearMaterial = s.default.createWithBuiltin("clear-stencil", this)), + this.setMaterial(0, t), + this._graphics._materials[0] = t, + this._updateMaterial() + }, + _updateMaterial: function() { + var t = this._materials[0]; + if (t) { + if (this._type === p.IMAGE_STENCIL && this.spriteFrame) { + var e = this.spriteFrame.getTexture(); + t.setProperty("texture", e) + } + t.setProperty("alphaThreshold", this.alphaThreshold) + } + }, + _createGraphics: function() { + this._graphics || (this._graphics = new c, + cc.Assembler.init(this._graphics), + this._graphics.node = this.node, + this._graphics.lineWidth = 0, + this._graphics.strokeColor = cc.color(0, 0, 0, 0)) + }, + _updateGraphics: function() { + if (this.enabledInHierarchy) { + var t = this.node + , e = this._graphics; + e.clear(!1); + var i = t._contentSize.width + , n = t._contentSize.height + , r = -i * t._anchorPoint.x + , s = -n * t._anchorPoint.y; + if (this._type === p.RECT) + e.rect(r, s, i, n); + else if (this._type === p.ELLIPSE) { + for (var a = d(cc.v2(r + i / 2, s + n / 2), { + x: i / 2, + y: n / 2 + }, this._segments), o = 0; o < a.length; ++o) { + var l = a[o]; + 0 === o ? e.moveTo(l.x, l.y) : e.lineTo(l.x, l.y) + } + e.close() + } + cc.game.renderType === cc.game.RENDER_TYPE_CANVAS ? e.stroke() : e.fill() + } + }, + _removeGraphics: function() { + this._graphics && (this._graphics.destroy(), + this._graphics._destroyImmediate(), + this._graphics = null) + }, + _hitTest: function(t) { + var e = this.node + , i = e.getContentSize() + , s = i.width + , a = i.height + , o = u; + if (e._updateWorldMatrix(), + !n.default.invert(_, e._worldMatrix)) + return !1; + r.default.transformMat4(o, t, _), + o.x += e._anchorPoint.x * s, + o.y += e._anchorPoint.y * a; + var l = !1; + if (this.type === p.RECT || this.type === p.IMAGE_STENCIL) + l = o.x >= 0 && o.y >= 0 && o.x <= s && o.y <= a; + else if (this.type === p.ELLIPSE) { + var h = s / 2 + , c = a / 2 + , f = o.x - .5 * s + , d = o.y - .5 * a; + l = f * f / (h * h) + d * d / (c * c) < 1 + } + return this.inverted && (l = !l), + l + }, + markForRender: function(t) { + var e = h.FLAG_RENDER | h.FLAG_UPDATE_RENDER_DATA | h.FLAG_POST_RENDER; + t ? (this.node._renderFlag |= e, + this.markForValidate()) : t || (this.node._renderFlag &= ~e) + }, + disableRender: function() { + this.node._renderFlag &= ~(h.FLAG_RENDER | h.FLAG_UPDATE_RENDER_DATA | h.FLAG_POST_RENDER) + } + }); + cc.Mask = e.exports = m + } + ), { + "../../renderer/gfx": 315, + "../assets/material/material-variant": 87, + "../graphics/graphics": 156, + "../renderer/render-flow": 225, + "../utils/misc": 267, + "../value-types/mat4": 284, + "../value-types/vec2": 291, + "./CCRenderComponent": 115 + }], + 112: [(function(t, e) { + "use strict"; + var i = cc.Enum({ + Unified: 0, + Free: 1 + }) + , n = cc.Enum({ + Horizontal: 0, + Vertical: 1 + }) + , r = cc.Enum({ + PAGE_TURNING: 0 + }) + , s = cc.Class({ + name: "cc.PageView", + extends: cc.ScrollView, + editor: !1, + ctor: function() { + this._curPageIdx = 0, + this._lastPageIdx = 0, + this._pages = [], + this._initContentPos = cc.v2(), + this._scrollCenterOffsetX = [], + this._scrollCenterOffsetY = [] + }, + properties: { + sizeMode: { + default: i.Unified, + type: i, + tooltip: !1, + notify: function() { + this._syncSizeMode() + } + }, + direction: { + default: n.Horizontal, + type: n, + tooltip: !1, + notify: function() { + this._syncScrollDirection() + } + }, + scrollThreshold: { + default: .5, + type: cc.Float, + slide: !0, + range: [0, 1, .01], + tooltip: !1 + }, + autoPageTurningThreshold: { + default: 100, + type: cc.Float, + tooltip: !1 + }, + pageTurningEventTiming: { + default: .1, + type: cc.Float, + range: [0, 1, .01], + tooltip: !1 + }, + indicator: { + default: null, + type: cc.PageViewIndicator, + tooltip: !1, + notify: function() { + this.indicator && this.indicator.setPageView(this) + } + }, + pageTurningSpeed: { + default: .3, + type: cc.Float, + tooltip: !1 + }, + pageEvents: { + default: [], + type: cc.Component.EventHandler, + tooltip: !1 + } + }, + statics: { + SizeMode: i, + Direction: n, + EventType: r + }, + onEnable: function() { + this._super(), + this.node.on(cc.Node.EventType.SIZE_CHANGED, this._updateAllPagesSize, this), + this.node.on("scroll-ended-with-threshold", this._dispatchPageTurningEvent, this) + }, + onDisable: function() { + this._super(), + this.node.off(cc.Node.EventType.SIZE_CHANGED, this._updateAllPagesSize, this), + this.node.off("scroll-ended-with-threshold", this._dispatchPageTurningEvent, this) + }, + onLoad: function() { + this._initPages(), + this.indicator && this.indicator.setPageView(this) + }, + getCurrentPageIndex: function() { + return this._curPageIdx + }, + setCurrentPageIndex: function(t) { + this.scrollToPage(t, !0) + }, + getPages: function() { + return this._pages + }, + addPage: function(t) { + t && -1 === this._pages.indexOf(t) && this.content && (this.content.addChild(t), + this._pages.push(t), + this._updatePageView()) + }, + insertPage: function(t, e) { + e < 0 || !t || -1 !== this._pages.indexOf(t) || !this.content || (e >= this._pages.length ? this.addPage(t) : (this._pages.splice(e, 0, t), + this.content.addChild(t), + this._updatePageView())) + }, + removePage: function(t) { + if (t && this.content) { + var e = this._pages.indexOf(t); + -1 !== e ? this.removePageAtIndex(e) : cc.warnID(4300, t.name) + } + }, + removePageAtIndex: function(t) { + var e = this._pages; + if (!(t < 0 || t >= e.length)) { + var i = e[t]; + i && (this.content.removeChild(i), + e.splice(t, 1), + this._updatePageView()) + } + }, + removeAllPages: function() { + if (this.content) { + for (var t = this._pages, e = 0, i = t.length; e < i; e++) + this.content.removeChild(t[e]); + this._pages.length = 0, + this._updatePageView() + } + }, + scrollToPage: function(t, e) { + t < 0 || t >= this._pages.length || (e = void 0 !== e ? e : .3, + this._curPageIdx = t, + this.scrollToOffset(this._moveOffsetValue(t), e, !0), + this.indicator && this.indicator._changedState()) + }, + getScrollEndedEventTiming: function() { + return this.pageTurningEventTiming + }, + _syncScrollDirection: function() { + this.horizontal = this.direction === n.Horizontal, + this.vertical = this.direction === n.Vertical + }, + _syncSizeMode: function() { + if (this.content) { + var t = this.content.getComponent(cc.Layout); + if (t) { + if (this.sizeMode === i.Free && this._pages.length > 0) { + var e = this._pages[this._pages.length - 1]; + this.direction === n.Horizontal ? (t.paddingLeft = (this._view.width - this._pages[0].width) / 2, + t.paddingRight = (this._view.width - e.width) / 2) : this.direction === n.Vertical && (t.paddingTop = (this._view.height - this._pages[0].height) / 2, + t.paddingBottom = (this._view.height - e.height) / 2) + } + t.updateLayout() + } + } + }, + _updatePageView: function() { + var t = this.content.getComponent(cc.Layout); + t && t.enabled && t.updateLayout(); + var e = this._pages.length; + this._curPageIdx >= e && (this._curPageIdx = 0 === e ? 0 : e - 1, + this._lastPageIdx = this._curPageIdx); + for (var i = this._initContentPos, r = 0; r < e; ++r) { + var s = this._pages[r]; + s.setSiblingIndex(r), + this.direction === n.Horizontal ? this._scrollCenterOffsetX[r] = Math.abs(i.x + s.x) : this._scrollCenterOffsetY[r] = Math.abs(i.y + s.y) + } + this.indicator && this.indicator._refresh() + }, + _updateAllPagesSize: function() { + if (this.sizeMode === i.Unified && this._view) + for (var t = this._pages, e = this._view.getContentSize(), n = 0, r = t.length; n < r; n++) + t[n].setContentSize(e) + }, + _initPages: function() { + if (this.content) { + this._initContentPos = this.content.position; + for (var t = this.content.children, e = 0; e < t.length; ++e) { + var i = t[e]; + this._pages.indexOf(i) >= 0 || this._pages.push(i) + } + this._syncScrollDirection(), + this._syncSizeMode(), + this._updatePageView() + } + }, + _dispatchPageTurningEvent: function() { + this._lastPageIdx !== this._curPageIdx && (this._lastPageIdx = this._curPageIdx, + cc.Component.EventHandler.emitEvents(this.pageEvents, this, r.PAGE_TURNING), + this.node.emit("page-turning", this)) + }, + _isScrollable: function(t, e, r) { + if (this.sizeMode === i.Free) { + var s, a; + if (this.direction === n.Horizontal) + return s = this._scrollCenterOffsetX[e], + a = this._scrollCenterOffsetX[r], + Math.abs(t.x) >= Math.abs(s - a) * this.scrollThreshold; + if (this.direction === n.Vertical) + return s = this._scrollCenterOffsetY[e], + a = this._scrollCenterOffsetY[r], + Math.abs(t.y) >= Math.abs(s - a) * this.scrollThreshold + } else { + if (this.direction === n.Horizontal) + return Math.abs(t.x) >= this._view.width * this.scrollThreshold; + if (this.direction === n.Vertical) + return Math.abs(t.y) >= this._view.height * this.scrollThreshold + } + }, + _isQuicklyScrollable: function(t) { + if (this.direction === n.Horizontal) { + if (Math.abs(t.x) > this.autoPageTurningThreshold) + return !0 + } else if (this.direction === n.Vertical && Math.abs(t.y) > this.autoPageTurningThreshold) + return !0; + return !1 + }, + _moveOffsetValue: function(t) { + var e = cc.v2(0, 0); + return this.sizeMode === i.Free ? this.direction === n.Horizontal ? e.x = this._scrollCenterOffsetX[t] : this.direction === n.Vertical && (e.y = this._scrollCenterOffsetY[t]) : this.direction === n.Horizontal ? e.x = t * this._view.width : this.direction === n.Vertical && (e.y = t * this._view.height), + e + }, + _getDragDirection: function(t) { + return this.direction === n.Horizontal ? 0 === t.x ? 0 : t.x > 0 ? 1 : -1 : this.direction === n.Vertical ? 0 === t.y ? 0 : t.y < 0 ? 1 : -1 : void 0 + }, + _handleReleaseLogic: function() { + this._autoScrollToPage(), + this._scrolling && (this._scrolling = !1, + this._autoScrolling || this._dispatchEvent("scroll-ended")) + }, + _autoScrollToPage: function() { + if (this._startBounceBackIfNeeded()) { + var t = this._getHowMuchOutOfBoundary(); + ((t = this._clampDelta(t)).x > 0 || t.y < 0) && (this._curPageIdx = 0 === this._pages.length ? 0 : this._pages.length - 1), + (t.x < 0 || t.y > 0) && (this._curPageIdx = 0), + this.indicator && this.indicator._changedState() + } else { + var e = this._touchBeganPosition.sub(this._touchEndPosition) + , i = this._curPageIdx + , n = i + this._getDragDirection(e) + , r = this.pageTurningSpeed * Math.abs(i - n); + if (n < this._pages.length) { + if (this._isScrollable(e, i, n)) + return void this.scrollToPage(n, r); + var s = this._calculateTouchMoveVelocity(); + if (this._isQuicklyScrollable(s)) + return void this.scrollToPage(n, r) + } + this.scrollToPage(i, r) + } + }, + _onTouchBegan: function(t, e) { + this._touchBeganPosition = t.touch.getLocation(), + this._super(t, e) + }, + _onTouchMoved: function(t, e) { + this._super(t, e) + }, + _onTouchEnded: function(t, e) { + this._touchEndPosition = t.touch.getLocation(), + this._super(t, e) + }, + _onTouchCancelled: function(t, e) { + this._touchEndPosition = t.touch.getLocation(), + this._super(t, e) + }, + _onMouseWheel: function() {} + }); + cc.PageView = e.exports = s + } + ), {}], + 113: [(function(t, e) { + "use strict"; + var i = cc.Enum({ + HORIZONTAL: 0, + VERTICAL: 1 + }) + , n = cc.Class({ + name: "cc.PageViewIndicator", + extends: t("./CCComponent"), + editor: !1, + properties: { + _layout: null, + _pageView: null, + _indicators: [], + spriteFrame: { + default: null, + type: cc.SpriteFrame, + tooltip: !1 + }, + direction: { + default: i.HORIZONTAL, + type: i, + tooltip: !1 + }, + cellSize: { + default: cc.size(20, 20), + tooltip: !1 + }, + spacing: { + default: 0, + tooltip: !1 + } + }, + statics: { + Direction: i + }, + onLoad: function() { + this._updateLayout() + }, + setPageView: function(t) { + this._pageView = t, + this._refresh() + }, + _updateLayout: function() { + this._layout = this.getComponent(cc.Layout), + this._layout || (this._layout = this.addComponent(cc.Layout)), + this.direction === i.HORIZONTAL ? (this._layout.type = cc.Layout.Type.HORIZONTAL, + this._layout.spacingX = this.spacing) : this.direction === i.VERTICAL && (this._layout.type = cc.Layout.Type.VERTICAL, + this._layout.spacingY = this.spacing), + this._layout.resizeMode = cc.Layout.ResizeMode.CONTAINER + }, + _createIndicator: function() { + var t = new cc.Node + , e = t.addComponent(cc.Sprite); + return e.spriteFrame = this.spriteFrame, + e.sizeMode = cc.Sprite.SizeMode.CUSTOM, + t.parent = this.node, + t.width = this.cellSize.width, + t.height = this.cellSize.height, + t + }, + _changedState: function() { + var t = this._indicators; + if (0 !== t.length) { + var e = this._pageView._curPageIdx; + if (!(e >= t.length)) { + for (var i = 0; i < t.length; ++i) + t[i].opacity = 127.5; + t[e].opacity = 255 + } + } + }, + _refresh: function() { + if (this._pageView) { + var t = this._indicators + , e = this._pageView.getPages(); + if (e.length !== t.length) { + var i = 0; + if (e.length > t.length) + for (i = 0; i < e.length; ++i) + t[i] || (t[i] = this._createIndicator()); + else + for (i = t.length - e.length; i > 0; --i) { + var n = t[i - 1]; + this.node.removeChild(n), + t.splice(i - 1, 1) + } + this._layout && this._layout.enabledInHierarchy && this._layout.updateLayout(), + this._changedState() + } + } + } + }); + cc.PageViewIndicator = e.exports = n + } + ), { + "./CCComponent": 105 + }], + 114: [(function(t, e) { + "use strict"; + var i = t("../utils/misc") + , n = t("./CCComponent") + , r = cc.Enum({ + HORIZONTAL: 0, + VERTICAL: 1, + FILLED: 2 + }) + , s = cc.Class({ + name: "cc.ProgressBar", + extends: n, + editor: !1, + _initBarSprite: function() { + if (this.barSprite) { + var t = this.barSprite.node; + if (!t) + return; + var e = this.node.getContentSize() + , i = this.node.getAnchorPoint() + , n = t.getContentSize(); + t.parent === this.node && this.node.setContentSize(n), + this.barSprite.fillType === cc.Sprite.FillType.RADIAL && (this.mode = r.FILLED); + var s = t.getContentSize(); + if (this.mode === r.HORIZONTAL ? this.totalLength = s.width : this.mode === r.VERTICAL ? this.totalLength = s.height : this.totalLength = this.barSprite.fillRange, + t.parent === this.node) { + var a = -e.width * i.x; + t.setPosition(cc.v2(a, 0)) + } + } + }, + _updateBarStatus: function() { + if (this.barSprite) { + var t = this.barSprite.node; + if (!t) + return; + var e, n, s, a = t.getAnchorPoint(), o = t.getContentSize(), l = t.getPosition(), h = cc.v2(0, .5), c = i.clamp01(this.progress), u = this.totalLength * c; + switch (this.mode) { + case r.HORIZONTAL: + this.reverse && (h = cc.v2(1, .5)), + e = cc.size(u, o.height), + n = this.totalLength, + s = o.height; + break; + case r.VERTICAL: + h = this.reverse ? cc.v2(.5, 1) : cc.v2(.5, 0), + e = cc.size(o.width, u), + n = o.width, + s = this.totalLength + } + if (this.mode === r.FILLED) + this.barSprite.type !== cc.Sprite.Type.FILLED ? cc.warn("ProgressBar FILLED mode only works when barSprite's Type is FILLED!") : (this.reverse && (u *= -1), + this.barSprite.fillRange = u); + else if (this.barSprite.type !== cc.Sprite.Type.FILLED) { + var _ = h.x - a.x + , f = h.y - a.y + , d = cc.v2(n * _, s * f); + t.setPosition(l.x + d.x, l.y + d.y), + t.setAnchorPoint(h), + t.setContentSize(e) + } else + cc.warn("ProgressBar non-FILLED mode only works when barSprite's Type is non-FILLED!") + } + }, + properties: { + barSprite: { + default: null, + type: cc.Sprite, + tooltip: !1, + notify: function() { + this._initBarSprite() + }, + animatable: !1 + }, + mode: { + default: r.HORIZONTAL, + type: r, + tooltip: !1, + notify: function() { + if (this.barSprite) { + var t = this.barSprite.node; + if (!t) + return; + var e = t.getContentSize(); + this.mode === r.HORIZONTAL ? this.totalLength = e.width : this.mode === r.VERTICAL ? this.totalLength = e.height : this.mode === r.FILLED && (this.totalLength = this.barSprite.fillRange) + } + }, + animatable: !1 + }, + _N$totalLength: 1, + totalLength: { + range: [0, Number.MAX_VALUE], + tooltip: !1, + get: function() { + return this._N$totalLength + }, + set: function(t) { + this.mode === r.FILLED && (t = i.clamp01(t)), + this._N$totalLength = t, + this._updateBarStatus() + } + }, + progress: { + default: 1, + type: cc.Float, + range: [0, 1, .1], + slide: !0, + tooltip: !1, + notify: function() { + this._updateBarStatus() + } + }, + reverse: { + default: !1, + tooltip: !1, + notify: function() { + this.barSprite && (this.barSprite.fillStart = 1 - this.barSprite.fillStart), + this._updateBarStatus() + }, + animatable: !1 + } + }, + statics: { + Mode: r + } + }); + cc.ProgressBar = e.exports = s + } + ), { + "../utils/misc": 267, + "./CCComponent": 105 + }], + 115: [(function(t, e) { + "use strict"; + var i = s(t("../renderer/assembler")) + , n = s(t("../assets/material/material-variant")) + , r = t("../value-types"); + function s(t) { + return t && t.__esModule ? t : { + default: t + } + } + var a = t("./CCComponent") + , o = t("../renderer/render-flow") + , l = t("../assets/material/CCMaterial") + , h = new r.Color + , c = cc.Class({ + name: "RenderComponent", + extends: a, + editor: !1, + properties: { + _materials: { + default: [], + type: l + }, + materials: { + get: function() { + return this._materials + }, + set: function(t) { + this._materials = t, + this._activateMaterial() + }, + type: [l], + displayName: "Materials", + animatable: !1 + } + }, + ctor: function() { + this._vertsDirty = !0, + this._assembler = null + }, + _resetAssembler: function() { + i.default.init(this), + this._updateColor(), + this.setVertsDirty() + }, + __preload: function() { + this._resetAssembler(), + this._activateMaterial() + }, + onEnable: function() { + this.node._renderComponent && (this.node._renderComponent.enabled = !1), + this.node._renderComponent = this, + this.node._renderFlag |= o.FLAG_OPACITY_COLOR, + this.setVertsDirty() + }, + onDisable: function() { + this.node._renderComponent = null, + this.disableRender() + }, + onDestroy: function() { + for (var t = this._materials, e = 0; e < t.length; e++) + cc.pool.material.put(t[e]); + t.length = 0, + cc.pool.assembler.put(this._assembler) + }, + setVertsDirty: function() { + this._vertsDirty = !0, + this.markForRender(!0) + }, + _on3DNodeChanged: function() { + this._resetAssembler() + }, + _validateRender: function() {}, + markForValidate: function() { + cc.RenderFlow.registerValidate(this) + }, + markForRender: function(t) { + var e = o.FLAG_RENDER | o.FLAG_UPDATE_RENDER_DATA; + t ? (this.node._renderFlag |= e, + this.markForValidate()) : this.node._renderFlag &= ~e + }, + disableRender: function() { + this.node._renderFlag &= ~(o.FLAG_RENDER | o.FLAG_UPDATE_RENDER_DATA) + }, + getMaterial: function(t) { + if (t < 0 || t >= this._materials.length) + return null; + var e = this._materials[t]; + if (!e) + return null; + var i = n.default.create(e, this); + return i !== e && this.setMaterial(t, i), + i + }, + getMaterials: function() { + for (var t = this._materials, e = 0; e < t.length; e++) + t[e] = n.default.create(t[e], this); + return t + }, + setMaterial: function(t, e) { + return e !== this._materials[t] && (e = n.default.create(e, this), + this._materials[t] = e), + this._updateMaterial(), + this.markForRender(!0), + e + }, + _getDefaultMaterial: function() { + return l.getBuiltinMaterial("2d-sprite") + }, + _activateMaterial: function() { + var t = this._materials; + if (!t[0]) { + var e = this._getDefaultMaterial(); + t[0] = e + } + for (var i = 0; i < t.length; i++) + t[i] = n.default.create(t[i], this); + this._updateMaterial() + }, + _updateMaterial: function() {}, + _updateColor: function() { + if (this._assembler.updateColor) { + var t = this.srcBlendFactor === cc.macro.BlendFactor.ONE; + t && r.Color.premultiplyAlpha(h, this.node._color); + var e = t ? h._val : null; + this._assembler.updateColor(this, e) + } + }, + _checkBacth: function(t, e) { + var i = this._materials[0]; + (i && i.getHash() !== t.material.getHash() || t.cullingMask !== e) && (t._flush(), + t.node = i.getDefine("CC_USE_MODEL") ? this.node : t._dummyNode, + t.material = i, + t.cullingMask = e) + } + }); + cc.RenderComponent = e.exports = c + } + ), { + "../assets/material/CCMaterial": 80, + "../assets/material/material-variant": 87, + "../renderer/assembler": 221, + "../renderer/render-flow": 225, + "../value-types": 282, + "./CCComponent": 105 + }], + 116: [(function(t, e) { + "use strict"; + var i = t("../platform/js") + , n = t("../platform/CCMacro") + , r = t("../utils/text-utils") + , s = new (t("../utils/html-text-parser")) + , a = n.TextAlignment + , o = n.VerticalTextAlignment + , l = cc.Label.CacheMode + , h = new i.Pool(function(t) { + if (!cc.isValid(t)) + return !1; + var e = t.getComponent(cc.LabelOutline); + return e && (e.width = 0), + !0 + } + ,20); + h.get = function() { + var t = this._get(); + t || (t = new cc.PrivateNode("RICHTEXT_CHILD")), + t.setPosition(0, 0), + t.setAnchorPoint(.5, .5), + t.skewX = 0; + var e = t.getComponent(cc.Label); + return e || (e = t.addComponent(cc.Label)), + e.string = "", + e.horizontalAlign = a.LEFT, + e.verticalAlign = o.CENTER, + e._forceUseCanvas = !0, + t + } + ; + var c = cc.Class({ + name: "cc.RichText", + extends: cc.Component, + ctor: function() { + this._textArray = null, + this._labelSegments = [], + this._labelSegmentsCache = [], + this._linesWidth = [], + this._updateRichTextStatus = this._updateRichText + }, + editor: !1, + properties: { + string: { + default: "RichText", + multiline: !0, + tooltip: !1, + notify: function() { + this._updateRichTextStatus() + } + }, + horizontalAlign: { + default: a.LEFT, + type: a, + tooltip: !1, + animatable: !1, + notify: function(t) { + this.horizontalAlign !== t && (this._layoutDirty = !0, + this._updateRichTextStatus()) + } + }, + fontSize: { + default: 40, + tooltip: !1, + notify: function(t) { + this.fontSize !== t && (this._layoutDirty = !0, + this._updateRichTextStatus()) + } + }, + _fontFamily: "Arial", + fontFamily: { + tooltip: !1, + get: function() { + return this._fontFamily + }, + set: function(t) { + this._fontFamily !== t && (this._fontFamily = t, + this._layoutDirty = !0, + this._updateRichTextStatus()) + }, + animatable: !1 + }, + font: { + default: null, + type: cc.TTFFont, + tooltip: !1, + notify: function(t) { + this.font !== t && (this._layoutDirty = !0, + this.font ? (this.useSystemFont = !1, + this._onTTFLoaded()) : this.useSystemFont = !0, + this._updateRichTextStatus()) + } + }, + _isSystemFontUsed: !0, + useSystemFont: { + get: function() { + return this._isSystemFontUsed + }, + set: function(t) { + this._isSystemFontUsed !== t && (this._isSystemFontUsed = t, + this._layoutDirty = !0, + this._updateRichTextStatus()) + }, + animatable: !1, + tooltip: !1 + }, + cacheMode: { + default: l.NONE, + type: l, + tooltip: !1, + notify: function(t) { + this.cacheMode !== t && this._updateRichTextStatus() + }, + animatable: !1 + }, + maxWidth: { + default: 0, + tooltip: !1, + notify: function(t) { + this.maxWidth !== t && (this._layoutDirty = !0, + this._updateRichTextStatus()) + } + }, + lineHeight: { + default: 40, + tooltip: !1, + notify: function(t) { + this.lineHeight !== t && (this._layoutDirty = !0, + this._updateRichTextStatus()) + } + }, + imageAtlas: { + default: null, + type: cc.SpriteAtlas, + tooltip: !1, + notify: function(t) { + this.imageAtlas !== t && (this._layoutDirty = !0, + this._updateRichTextStatus()) + } + }, + handleTouchEvent: { + default: !0, + tooltip: !1, + notify: function(t) { + this.handleTouchEvent !== t && this.enabledInHierarchy && (this.handleTouchEvent ? this._addEventListeners() : this._removeEventListeners()) + } + } + }, + statics: { + HorizontalAlign: a, + VerticalAlign: o + }, + onEnable: function() { + this.handleTouchEvent && this._addEventListeners(), + this._updateRichText(), + this._activateChildren(!0) + }, + onDisable: function() { + this.handleTouchEvent && this._removeEventListeners(), + this._activateChildren(!1) + }, + start: function() { + this._onTTFLoaded() + }, + _onColorChanged: function(t) { + this.node.children.forEach((function(e) { + e.color = t + } + )) + }, + _addEventListeners: function() { + this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this), + this.node.on(cc.Node.EventType.COLOR_CHANGED, this._onColorChanged, this) + }, + _removeEventListeners: function() { + this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this), + this.node.off(cc.Node.EventType.COLOR_CHANGED, this._onColorChanged, this) + }, + _updateLabelSegmentTextAttributes: function() { + this._labelSegments.forEach(function(t) { + this._applyTextAttribute(t, null, !0) + } + .bind(this)) + }, + _createFontLabel: function(t) { + return h.get(t, this) + }, + _onTTFLoaded: function() { + if (this.font instanceof cc.TTFFont) + if (this.font._nativeAsset) + this._layoutDirty = !0, + this._updateRichText(); + else { + var t = this; + cc.assetManager.postLoadNative(this.font, (function() { + t._layoutDirty = !0, + t._updateRichText() + } + )) + } + else + this._layoutDirty = !0, + this._updateRichText() + }, + _measureText: function(t, e) { + var i = this + , n = function(e) { + var n; + return 0 === i._labelSegmentsCache.length ? (n = i._createFontLabel(e), + i._labelSegmentsCache.push(n)) : n = i._labelSegmentsCache[0], + n._styleIndex = t, + i._applyTextAttribute(n, e, !0), + n.getContentSize().width + }; + return e ? n(e) : n + }, + _onTouchEnded: function(t) { + for (var e = this, i = this.node.getComponents(cc.Component), n = function(n) { + var r = e._labelSegments[n] + , s = r._clickHandler + , a = r._clickParam; + s && e._containsTouchLocation(r, t.touch.getLocation()) && (i.forEach((function(e) { + e.enabledInHierarchy && e[s] && e[s](t, a) + } + )), + t.stopPropagation()) + }, r = 0; r < this._labelSegments.length; ++r) + n(r) + }, + _containsTouchLocation: function(t, e) { + return t.getBoundingBoxToWorld().contains(e) + }, + _resetState: function() { + for (var t = this.node.children, e = t.length - 1; e >= 0; e--) { + var i = t[e]; + "RICHTEXT_CHILD" !== i.name && "RICHTEXT_Image_CHILD" !== i.name || (i.parent === this.node ? i.parent = null : t.splice(e, 1), + "RICHTEXT_CHILD" === i.name && h.put(i)) + } + this._labelSegments.length = 0, + this._labelSegmentsCache.length = 0, + this._linesWidth.length = 0, + this._lineOffsetX = 0, + this._lineCount = 1, + this._labelWidth = 0, + this._labelHeight = 0, + this._layoutDirty = !0 + }, + onRestore: !1, + _activateChildren: function(t) { + for (var e = this.node.children.length - 1; e >= 0; e--) { + var i = this.node.children[e]; + "RICHTEXT_CHILD" !== i.name && "RICHTEXT_Image_CHILD" !== i.name || (i.active = t) + } + }, + _addLabelSegment: function(t, e) { + var i; + return (i = 0 === this._labelSegmentsCache.length ? this._createFontLabel(t) : this._labelSegmentsCache.pop())._styleIndex = e, + i._lineCount = this._lineCount, + i.active = this.node.active, + i.setAnchorPoint(0, 0), + this._applyTextAttribute(i, t), + this.node.addChild(i), + this._labelSegments.push(i), + i + }, + _updateRichTextWithMaxWidth: function(t, e, i) { + var n = e; + if (this._lineOffsetX > 0 && n + this._lineOffsetX > this.maxWidth) + for (var s = 0; this._lineOffsetX <= this.maxWidth; ) { + var a = this._getFirstWordLen(t, s, t.length) + , o = t.substr(s, a) + , l = this._measureText(i, o); + if (!(this._lineOffsetX + l <= this.maxWidth)) { + if (s > 0) { + var h = t.substr(0, s); + this._addLabelSegment(h, i), + t = t.substr(s, t.length), + n = this._measureText(i, t) + } + this._updateLineInfo(); + break + } + this._lineOffsetX += l, + s += a + } + if (n > this.maxWidth) + for (var c = r.fragmentText(t, n, this.maxWidth, this._measureText(i)), u = 0; u < c.length; ++u) { + var _ = c[u] + , f = this._addLabelSegment(_, i).getContentSize(); + this._lineOffsetX += f.width, + c.length > 1 && u < c.length - 1 && this._updateLineInfo() + } + else + this._lineOffsetX += n, + this._addLabelSegment(t, i) + }, + _isLastComponentCR: function(t) { + return t.length - 1 === t.lastIndexOf("\n") + }, + _updateLineInfo: function() { + this._linesWidth.push(this._lineOffsetX), + this._lineOffsetX = 0, + this._lineCount++ + }, + _needsUpdateTextLayout: function(t) { + if (this._layoutDirty || !this._textArray || !t) + return !0; + if (this._textArray.length !== t.length) + return !0; + for (var e = 0; e < this._textArray.length; ++e) { + var i = this._textArray[e] + , n = t[e]; + if (i.text !== n.text) + return !0; + var r = i.style + , s = n.style; + if (r) { + if (s) { + if (!r.outline != !s.outline) + return !0; + if (r.size !== s.size || !r.italic != !s.italic || r.isImage !== s.isImage) + return !0; + if (r.src !== s.src || r.imageAlign !== s.imageAlign || r.imageHeight !== s.imageHeight || r.imageWidth !== s.imageWidth || r.imageOffset !== s.imageOffset) + return !0 + } else if (r.size || r.italic || r.isImage || r.outline) + return !0 + } else if (s && (s.size || s.italic || s.isImage || s.outline)) + return !0 + } + return !1 + }, + _addRichTextImageElement: function(t) { + var e = t.style.src + , i = this.imageAtlas.getSpriteFrame(e); + if (i) { + var n = new cc.PrivateNode("RICHTEXT_Image_CHILD") + , r = n.addComponent(cc.Sprite); + switch (t.style.imageAlign) { + case "top": + n.setAnchorPoint(0, 1); + break; + case "center": + n.setAnchorPoint(0, .5); + break; + default: + n.setAnchorPoint(0, 0) + } + t.style.imageOffset && (n._imageOffset = t.style.imageOffset), + r.type = cc.Sprite.Type.SLICED, + r.sizeMode = cc.Sprite.SizeMode.CUSTOM, + this.node.addChild(n), + this._labelSegments.push(n); + var s = i.getRect() + , a = 1 + , o = s.width + , l = s.height + , h = t.style.imageWidth + , c = t.style.imageHeight; + c > 0 ? (o *= a = c / l, + l *= a) : (o *= a = this.lineHeight / l, + l *= a), + h > 0 && (o = h), + this.maxWidth > 0 ? (this._lineOffsetX + o > this.maxWidth && this._updateLineInfo(), + this._lineOffsetX += o) : (this._lineOffsetX += o, + this._lineOffsetX > this._labelWidth && (this._labelWidth = this._lineOffsetX)), + r.spriteFrame = i, + n.setContentSize(o, l), + n._lineCount = this._lineCount, + t.style.event ? (t.style.event.click && (n._clickHandler = t.style.event.click), + t.style.event.param ? n._clickParam = t.style.event.param : n._clickParam = "") : n._clickHandler = null + } else + cc.warnID(4400) + }, + _updateRichText: function() { + if (this.enabledInHierarchy) { + var t = s.parse(this.string); + if (!this._needsUpdateTextLayout(t)) + return this._textArray = t, + void this._updateLabelSegmentTextAttributes(); + this._textArray = t, + this._resetState(); + for (var e, i = !1, n = 0; n < this._textArray.length; ++n) { + var a = this._textArray[n] + , o = a.text; + if ("" === o) { + if (a.style && a.style.newline) { + this._updateLineInfo(); + continue + } + if (a.style && a.style.isImage && this.imageAtlas) { + this._addRichTextImageElement(a); + continue + } + } + for (var l = o.split("\n"), h = 0; h < l.length; ++h) { + var c = l[h]; + if ("" !== c) + if (i = !1, + this.maxWidth > 0) { + var u = this._measureText(n, c); + this._updateRichTextWithMaxWidth(c, u, n), + l.length > 1 && h < l.length - 1 && this._updateLineInfo() + } else + e = this._addLabelSegment(c, n).getContentSize(), + this._lineOffsetX += e.width, + this._lineOffsetX > this._labelWidth && (this._labelWidth = this._lineOffsetX), + l.length > 1 && h < l.length - 1 && this._updateLineInfo(); + else { + if (this._isLastComponentCR(o) && h === l.length - 1) + continue; + this._updateLineInfo(), + i = !0 + } + } + } + i || this._linesWidth.push(this._lineOffsetX), + this.maxWidth > 0 && (this._labelWidth = this.maxWidth), + this._labelHeight = (this._lineCount + r.BASELINE_RATIO) * this.lineHeight, + this.node.setContentSize(this._labelWidth, this._labelHeight), + this._updateRichTextPosition(), + this._layoutDirty = !1 + } + }, + _getFirstWordLen: function(t, e, i) { + var n = t.charAt(e); + if (r.isUnicodeCJK(n) || r.isUnicodeSpace(n)) + return 1; + for (var s = 1, a = e + 1; a < i && (n = t.charAt(a), + !r.isUnicodeSpace(n) && !r.isUnicodeCJK(n)); ++a) + s++; + return s + }, + _updateRichTextPosition: function() { + for (var t = 0, e = 1, i = this._lineCount, n = 0; n < this._labelSegments.length; ++n) { + var s = this._labelSegments[n] + , o = s._lineCount; + o > e && (t = 0, + e = o); + var l = 0; + switch (this.horizontalAlign) { + case a.LEFT: + l = -this._labelWidth / 2; + break; + case a.CENTER: + l = -this._linesWidth[o - 1] / 2; + break; + case a.RIGHT: + l = this._labelWidth / 2 - this._linesWidth[o - 1] + } + s.x = t + l; + var h = s.getContentSize(); + if (s.y = this.lineHeight * (i - o) - this._labelHeight / 2, + o === e && (t += h.width), + s.getComponent(cc.Sprite)) { + var c = this.lineHeight + , u = this.lineHeight * (1 + r.BASELINE_RATIO); + switch (s.anchorY) { + case 1: + s.y += c + (u - c) / 2; + break; + case .5: + s.y += u / 2; + break; + default: + s.y += (u - c) / 2 + } + if (s._imageOffset) { + var _ = s._imageOffset.split(","); + if (1 === _.length && _[0]) { + var f = parseFloat(_[0]); + Number.isInteger(f) && (s.y += f) + } else if (2 === _.length) { + var d = parseFloat(_[0]) + , p = parseFloat(_[1]); + Number.isInteger(d) && (s.x += d), + Number.isInteger(p) && (s.y += p) + } + } + } + var m = s.getComponent(cc.LabelOutline); + m && m.width && (s.y = s.y - m.width) + } + }, + _convertLiteralColorValue: function(t) { + var e = t.toUpperCase(); + return cc.Color[e] ? cc.Color[e] : cc.color().fromHEX(t) + }, + _applyTextAttribute: function(t, e, i) { + var n = t.getComponent(cc.Label); + if (n) { + var r = t._styleIndex + , s = null; + if (this._textArray[r] && (s = this._textArray[r].style), + s && s.color ? t.color = this._convertLiteralColorValue(s.color) : t.color = this.node.color, + n.cacheMode = this.cacheMode, + this.font instanceof cc.Font && !this._isSystemFontUsed ? n.font = this.font : n.fontFamily = this.fontFamily, + n.useSystemFont = this._isSystemFontUsed, + n.lineHeight = this.lineHeight, + n.enableBold = s && s.bold, + n.enableItalics = s && s.italic, + s && s.italic && (t.skewX = 12), + n.enableUnderline = s && s.underline, + s && s.outline) { + var a = t.getComponent(cc.LabelOutline); + a || (a = t.addComponent(cc.LabelOutline)), + a.color = this._convertLiteralColorValue(s.outline.color), + a.width = s.outline.width + } + s && s.size ? n.fontSize = s.size : n.fontSize = this.fontSize, + null !== e && ("string" != typeof e && (e = "" + e), + n.string = e), + i && n._forceUpdateRenderData(), + s && s.event ? (s.event.click && (t._clickHandler = s.event.click), + s.event.param ? t._clickParam = s.event.param : t._clickParam = "") : t._clickHandler = null + } + }, + onDestroy: function() { + for (var t = 0; t < this._labelSegments.length; ++t) + this._labelSegments[t].removeFromParent(), + h.put(this._labelSegments[t]) + } + }); + cc.RichText = e.exports = c + } + ), { + "../platform/CCMacro": 198, + "../platform/js": 214, + "../utils/html-text-parser": 265, + "../utils/text-utils": 274 + }], + 117: [(function(t, e) { + "use strict"; + var i = t("../utils/misc") + , n = (t("./CCComponent"), + cc.Enum({ + HORIZONTAL: 0, + VERTICAL: 1 + })) + , r = cc.Class({ + name: "cc.Scrollbar", + extends: t("./CCComponent"), + editor: !1, + properties: { + _scrollView: null, + _touching: !1, + _autoHideRemainingTime: { + default: 0, + serializable: !1 + }, + _opacity: 255, + handle: { + default: null, + type: cc.Sprite, + tooltip: !1, + notify: function() { + this._onScroll(cc.v2(0, 0)) + }, + animatable: !1 + }, + direction: { + default: n.HORIZONTAL, + type: n, + tooltip: !1, + notify: function() { + this._onScroll(cc.v2(0, 0)) + }, + animatable: !1 + }, + enableAutoHide: { + default: !0, + animatable: !1, + tooltip: !1 + }, + autoHideTime: { + default: 1, + animatable: !1, + tooltip: !1 + } + }, + statics: { + Direction: n + }, + setTargetScrollView: function(t) { + this._scrollView = t + }, + _convertToScrollViewSpace: function(t) { + var e = this._scrollView.node + , i = t.convertToWorldSpaceAR(cc.v2(-t.anchorX * t.width, -t.anchorY * t.height)) + , n = e.convertToNodeSpaceAR(i); + return n.x += e.anchorX * e.width, + n.y += e.anchorY * e.height, + n + }, + _setOpacity: function(t) { + this.handle && (this.node.opacity = t, + this.handle.node.opacity = t) + }, + _onScroll: function(t) { + if (this._scrollView) { + var e = this._scrollView.content; + if (e) { + var i = e.getContentSize() + , r = this._scrollView.node.getContentSize() + , s = this.node.getContentSize(); + if (this._conditionalDisableScrollBar(i, r)) + return; + this.enableAutoHide && (this._autoHideRemainingTime = this.autoHideTime, + this._setOpacity(this._opacity)); + var a = 0 + , o = 0 + , l = 0 + , h = 0 + , c = 0; + this.direction === n.HORIZONTAL ? (a = i.width, + o = r.width, + c = s.width, + l = t.x, + h = -this._convertToScrollViewSpace(e).x) : this.direction === n.VERTICAL && (a = i.height, + o = r.height, + c = s.height, + l = t.y, + h = -this._convertToScrollViewSpace(e).y); + var u = this._calculateLength(a, o, c, l) + , _ = this._calculatePosition(a, o, c, h, l, u); + this._updateLength(u), + this._updateHanlderPosition(_) + } + } + }, + _updateHanlderPosition: function(t) { + if (this.handle) { + var e = this._fixupHandlerPosition(); + this.handle.node.setPosition(t.x + e.x, t.y + e.y) + } + }, + _fixupHandlerPosition: function() { + var t = this.node.getContentSize() + , e = this.node.getAnchorPoint() + , i = this.handle.node.getContentSize() + , r = this.handle.node.parent + , s = this.node.convertToWorldSpaceAR(cc.v2(-t.width * e.x, -t.height * e.y)) + , a = r.convertToNodeSpaceAR(s); + return this.direction === n.HORIZONTAL ? a = cc.v2(a.x, a.y + (t.height - i.height) / 2) : this.direction === n.VERTICAL && (a = cc.v2(a.x + (t.width - i.width) / 2, a.y)), + this.handle.node.setPosition(a), + a + }, + _onTouchBegan: function() { + this.enableAutoHide && (this._touching = !0) + }, + _conditionalDisableScrollBar: function(t, e) { + return t.width <= e.width && this.direction === n.HORIZONTAL || t.height <= e.height && this.direction === n.VERTICAL + }, + _onTouchEnded: function() { + if (this.enableAutoHide && (this._touching = !1, + !(this.autoHideTime <= 0))) { + if (this._scrollView) { + var t = this._scrollView.content; + if (t) { + var e = t.getContentSize() + , i = this._scrollView.node.getContentSize(); + if (this._conditionalDisableScrollBar(e, i)) + return + } + } + this._autoHideRemainingTime = this.autoHideTime + } + }, + _calculateLength: function(t, e, i, n) { + var r = t; + return n && (r += 20 * (n > 0 ? n : -n)), + i * (e / r) + }, + _calculatePosition: function(t, e, r, s, a, o) { + var l = t - e; + a && (l += Math.abs(a)); + var h = 0; + l && (h = s / l, + h = i.clamp01(h)); + var c = (r - o) * h; + return this.direction === n.VERTICAL ? cc.v2(0, c) : cc.v2(c, 0) + }, + _updateLength: function(t) { + if (this.handle) { + var e = this.handle.node + , i = e.getContentSize(); + e.setAnchorPoint(cc.v2(0, 0)), + this.direction === n.HORIZONTAL ? e.setContentSize(t, i.height) : e.setContentSize(i.width, t) + } + }, + _processAutoHide: function(t) { + if (this.enableAutoHide && !(this._autoHideRemainingTime <= 0) && !this._touching && (this._autoHideRemainingTime -= t, + this._autoHideRemainingTime <= this.autoHideTime)) { + this._autoHideRemainingTime = Math.max(0, this._autoHideRemainingTime); + var e = this._opacity * (this._autoHideRemainingTime / this.autoHideTime); + this._setOpacity(e) + } + }, + start: function() { + this.enableAutoHide && this._setOpacity(0) + }, + hide: function() { + this._autoHideRemainingTime = 0, + this._setOpacity(0) + }, + show: function() { + this._autoHideRemainingTime = this.autoHideTime, + this._setOpacity(this._opacity) + }, + update: function(t) { + this._processAutoHide(t) + } + }); + cc.Scrollbar = e.exports = r + } + ), { + "../utils/misc": 267, + "./CCComponent": 105 + }], + 118: [(function(t, e) { + "use strict"; + var i = t("../CCNode").EventType + , n = cc.v2() + , r = cc.v2() + , s = function() { + return (new Date).getMilliseconds() + } + , a = cc.Enum({ + SCROLL_TO_TOP: 0, + SCROLL_TO_BOTTOM: 1, + SCROLL_TO_LEFT: 2, + SCROLL_TO_RIGHT: 3, + SCROLLING: 4, + BOUNCE_TOP: 5, + BOUNCE_BOTTOM: 6, + BOUNCE_LEFT: 7, + BOUNCE_RIGHT: 8, + SCROLL_ENDED: 9, + TOUCH_UP: 10, + AUTOSCROLL_ENDED_WITH_THRESHOLD: 11, + SCROLL_BEGAN: 12 + }) + , o = { + "scroll-to-top": a.SCROLL_TO_TOP, + "scroll-to-bottom": a.SCROLL_TO_BOTTOM, + "scroll-to-left": a.SCROLL_TO_LEFT, + "scroll-to-right": a.SCROLL_TO_RIGHT, + scrolling: a.SCROLLING, + "bounce-bottom": a.BOUNCE_BOTTOM, + "bounce-left": a.BOUNCE_LEFT, + "bounce-right": a.BOUNCE_RIGHT, + "bounce-top": a.BOUNCE_TOP, + "scroll-ended": a.SCROLL_ENDED, + "touch-up": a.TOUCH_UP, + "scroll-ended-with-threshold": a.AUTOSCROLL_ENDED_WITH_THRESHOLD, + "scroll-began": a.SCROLL_BEGAN + } + , l = cc.Class({ + name: "cc.ScrollView", + extends: t("./CCViewGroup"), + editor: !1, + ctor: function() { + this._topBoundary = 0, + this._bottomBoundary = 0, + this._leftBoundary = 0, + this._rightBoundary = 0, + this._touchMoveDisplacements = [], + this._touchMoveTimeDeltas = [], + this._touchMovePreviousTimestamp = 0, + this._touchMoved = !1, + this._autoScrolling = !1, + this._autoScrollAttenuate = !1, + this._autoScrollStartPosition = cc.v2(0, 0), + this._autoScrollTargetDelta = cc.v2(0, 0), + this._autoScrollTotalTime = 0, + this._autoScrollAccumulatedTime = 0, + this._autoScrollCurrentlyOutOfBoundary = !1, + this._autoScrollBraking = !1, + this._autoScrollBrakingStartPosition = cc.v2(0, 0), + this._outOfBoundaryAmount = cc.v2(0, 0), + this._outOfBoundaryAmountDirty = !0, + this._stopMouseWheel = !1, + this._mouseWheelEventElapsedTime = 0, + this._isScrollEndedWithThresholdEventFired = !1, + this._scrollEventEmitMask = 0, + this._isBouncing = !1, + this._scrolling = !1 + }, + properties: { + content: { + default: void 0, + type: cc.Node, + tooltip: !1, + formerlySerializedAs: "content", + notify: function() { + this._calculateBoundary() + } + }, + horizontal: { + default: !0, + animatable: !1, + tooltip: !1 + }, + vertical: { + default: !0, + animatable: !1, + tooltip: !1 + }, + inertia: { + default: !0, + tooltip: !1 + }, + brake: { + default: .5, + type: cc.Float, + range: [0, 1, .1], + tooltip: !1 + }, + elastic: { + default: !0, + animatable: !1, + tooltip: !1 + }, + bounceDuration: { + default: 1, + range: [0, 10], + tooltip: !1 + }, + horizontalScrollBar: { + default: void 0, + type: cc.Scrollbar, + tooltip: !1, + notify: function() { + this.horizontalScrollBar && (this.horizontalScrollBar.setTargetScrollView(this), + this._updateScrollBar(0)) + }, + animatable: !1 + }, + verticalScrollBar: { + default: void 0, + type: cc.Scrollbar, + tooltip: !1, + notify: function() { + this.verticalScrollBar && (this.verticalScrollBar.setTargetScrollView(this), + this._updateScrollBar(0)) + }, + animatable: !1 + }, + scrollEvents: { + default: [], + type: cc.Component.EventHandler, + tooltip: !1 + }, + cancelInnerEvents: { + default: !0, + animatable: !1, + tooltip: !1 + }, + _view: { + get: function() { + if (this.content) + return this.content.parent + } + } + }, + statics: { + EventType: a + }, + scrollToBottom: function(t, e) { + var i = this._calculateMovePercentDelta({ + anchor: cc.v2(0, 0), + applyToHorizontal: !1, + applyToVertical: !0 + }); + t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i, !0) + }, + scrollToTop: function(t, e) { + var i = this._calculateMovePercentDelta({ + anchor: cc.v2(0, 1), + applyToHorizontal: !1, + applyToVertical: !0 + }); + t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i) + }, + scrollToLeft: function(t, e) { + var i = this._calculateMovePercentDelta({ + anchor: cc.v2(0, 0), + applyToHorizontal: !0, + applyToVertical: !1 + }); + t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i) + }, + scrollToRight: function(t, e) { + var i = this._calculateMovePercentDelta({ + anchor: cc.v2(1, 0), + applyToHorizontal: !0, + applyToVertical: !1 + }); + t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i) + }, + scrollToTopLeft: function(t, e) { + var i = this._calculateMovePercentDelta({ + anchor: cc.v2(0, 1), + applyToHorizontal: !0, + applyToVertical: !0 + }); + t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i) + }, + scrollToTopRight: function(t, e) { + var i = this._calculateMovePercentDelta({ + anchor: cc.v2(1, 1), + applyToHorizontal: !0, + applyToVertical: !0 + }); + t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i) + }, + scrollToBottomLeft: function(t, e) { + var i = this._calculateMovePercentDelta({ + anchor: cc.v2(0, 0), + applyToHorizontal: !0, + applyToVertical: !0 + }); + t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i) + }, + scrollToBottomRight: function(t, e) { + var i = this._calculateMovePercentDelta({ + anchor: cc.v2(1, 0), + applyToHorizontal: !0, + applyToVertical: !0 + }); + t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i) + }, + scrollToOffset: function(t, e, i) { + var n = this.getMaxScrollOffset() + , r = cc.v2(0, 0); + 0 === n.x ? r.x = 0 : r.x = t.x / n.x, + 0 === n.y ? r.y = 1 : r.y = (n.y - t.y) / n.y, + this.scrollTo(r, e, i) + }, + getScrollOffset: function() { + var t = this._getContentTopBoundary() - this._topBoundary + , e = this._getContentLeftBoundary() - this._leftBoundary; + return cc.v2(e, t) + }, + getMaxScrollOffset: function() { + var t = this._view.getContentSize() + , e = this.content.getContentSize() + , i = e.width - t.width + , n = e.height - t.height; + return i = i >= 0 ? i : 0, + n = n >= 0 ? n : 0, + cc.v2(i, n) + }, + scrollToPercentHorizontal: function(t, e, i) { + var n = this._calculateMovePercentDelta({ + anchor: cc.v2(t, 0), + applyToHorizontal: !0, + applyToVertical: !1 + }); + e ? this._startAutoScroll(n, e, !1 !== i) : this._moveContent(n) + }, + scrollTo: function(t, e, i) { + var n = this._calculateMovePercentDelta({ + anchor: cc.v2(t), + applyToHorizontal: !0, + applyToVertical: !0 + }); + e ? this._startAutoScroll(n, e, !1 !== i) : this._moveContent(n) + }, + scrollToPercentVertical: function(t, e, i) { + var n = this._calculateMovePercentDelta({ + anchor: cc.v2(0, t), + applyToHorizontal: !1, + applyToVertical: !0 + }); + e ? this._startAutoScroll(n, e, !1 !== i) : this._moveContent(n) + }, + stopAutoScroll: function() { + this._autoScrolling = !1, + this._autoScrollAccumulatedTime = this._autoScrollTotalTime + }, + setContentPosition: function(t) { + t.fuzzyEquals(this.getContentPosition(), 1e-4) || (this.content.setPosition(t), + this._outOfBoundaryAmountDirty = !0) + }, + getContentPosition: function() { + return this.content.getPosition() + }, + isScrolling: function() { + return this._scrolling + }, + isAutoScrolling: function() { + return this._autoScrolling + }, + _registerEvent: function() { + this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this, !0), + this.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this, !0), + this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this, !0), + this.node.on(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this, !0), + this.node.on(cc.Node.EventType.MOUSE_WHEEL, this._onMouseWheel, this, !0) + }, + _unregisterEvent: function() { + this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this, !0), + this.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this, !0), + this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this, !0), + this.node.off(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this, !0), + this.node.off(cc.Node.EventType.MOUSE_WHEEL, this._onMouseWheel, this, !0) + }, + _onMouseWheel: function(t, e) { + if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { + var i = cc.v2(0, 0) + , n = -.1; + cc.sys.os === cc.sys.OS_WINDOWS && cc.sys.browserType === cc.sys.BROWSER_TYPE_FIREFOX && (n = -.1 / 3), + this.vertical ? i = cc.v2(0, t.getScrollY() * n) : this.horizontal && (i = cc.v2(t.getScrollY() * n, 0)), + this._mouseWheelEventElapsedTime = 0, + this._processDeltaMove(i), + this._stopMouseWheel || (this._handlePressLogic(), + this.schedule(this._checkMouseWheel, 1 / 60), + this._stopMouseWheel = !0), + this._stopPropagationIfTargetIsMe(t) + } + }, + _checkMouseWheel: function(t) { + if (!this._getHowMuchOutOfBoundary().fuzzyEquals(cc.v2(0, 0), 1e-4)) + return this._processInertiaScroll(), + this.unschedule(this._checkMouseWheel), + this._dispatchEvent("scroll-ended"), + void (this._stopMouseWheel = !1); + this._mouseWheelEventElapsedTime += t, + this._mouseWheelEventElapsedTime > .1 && (this._onScrollBarTouchEnded(), + this.unschedule(this._checkMouseWheel), + this._dispatchEvent("scroll-ended"), + this._stopMouseWheel = !1) + }, + _calculateMovePercentDelta: function(t) { + var e = t.anchor + , i = t.applyToHorizontal + , n = t.applyToVertical; + this._calculateBoundary(), + e = e.clampf(cc.v2(0, 0), cc.v2(1, 1)); + var r = this._view.getContentSize() + , s = this.content.getContentSize() + , a = this._getContentBottomBoundary() - this._bottomBoundary; + a = -a; + var o = this._getContentLeftBoundary() - this._leftBoundary; + o = -o; + var l = cc.v2(0, 0) + , h = 0; + return i && (h = s.width - r.width, + l.x = o - h * e.x), + n && (h = s.height - r.height, + l.y = a - h * e.y), + l + }, + _moveContentToTopLeft: function(t) { + var e = this.content.getContentSize() + , i = this._getContentBottomBoundary() - this._bottomBoundary; + i = -i; + var n = cc.v2(0, 0) + , r = 0 + , s = this._getContentLeftBoundary() - this._leftBoundary; + s = -s, + e.height < t.height && (r = e.height - t.height, + n.y = i - r), + e.width < t.width && (r = e.width - t.width, + n.x = s), + this._updateScrollBarState(), + this._moveContent(n), + this._adjustContentOutOfBoundary() + }, + _calculateBoundary: function() { + if (this.content) { + var t = this.content.getComponent(cc.Layout); + t && t.enabledInHierarchy && t.updateLayout(); + var e = this._view.getContentSize() + , i = e.width * this._view.anchorX + , n = e.height * this._view.anchorY; + this._leftBoundary = -i, + this._bottomBoundary = -n, + this._rightBoundary = this._leftBoundary + e.width, + this._topBoundary = this._bottomBoundary + e.height, + this._moveContentToTopLeft(e) + } + }, + _hasNestedViewGroup: function(t, e) { + if (t.eventPhase === cc.Event.CAPTURING_PHASE) { + if (e) + for (var i = 0; i < e.length; ++i) { + var n = e[i]; + if (this.node === n) + return !!t.target.getComponent(cc.ViewGroup); + if (n.getComponent(cc.ViewGroup)) + return !0 + } + return !1 + } + }, + _stopPropagationIfTargetIsMe: function(t) { + t.eventPhase === cc.Event.AT_TARGET && t.target === this.node && t.stopPropagation() + }, + _onTouchBegan: function(t, e) { + if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { + var i = t.touch; + this.content && this._handlePressLogic(i), + this._touchMoved = !1, + this._stopPropagationIfTargetIsMe(t) + } + }, + _onTouchMoved: function(t, e) { + if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { + var i = t.touch; + if (this.content && this._handleMoveLogic(i), + this.cancelInnerEvents) { + if (i.getLocation().sub(i.getStartLocation()).mag() > 7 && !this._touchMoved && t.target !== this.node) { + var n = new cc.Event.EventTouch(t.getTouches(),t.bubbles); + n.type = cc.Node.EventType.TOUCH_CANCEL, + n.touch = t.touch, + n.simulate = !0, + t.target.dispatchEvent(n), + this._touchMoved = !0 + } + this._stopPropagationIfTargetIsMe(t) + } + } + }, + _onTouchEnded: function(t, e) { + if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { + this._dispatchEvent("touch-up"); + var i = t.touch; + this.content && this._handleReleaseLogic(i), + this._touchMoved ? t.stopPropagation() : this._stopPropagationIfTargetIsMe(t) + } + }, + _onTouchCancelled: function(t, e) { + if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { + if (!t.simulate) { + var i = t.touch; + this.content && this._handleReleaseLogic(i) + } + this._stopPropagationIfTargetIsMe(t) + } + }, + _processDeltaMove: function(t) { + this._scrollChildren(t), + this._gatherTouchMove(t) + }, + _getLocalAxisAlignDelta: function(t) { + return this.node.convertToNodeSpaceAR(t.getLocation(), n), + this.node.convertToNodeSpaceAR(t.getPreviousLocation(), r), + n.sub(r) + }, + _handleMoveLogic: function(t) { + var e = this._getLocalAxisAlignDelta(t); + this._processDeltaMove(e) + }, + _scrollChildren: function(t) { + var e, i = t = this._clampDelta(t); + this.elastic && (e = this._getHowMuchOutOfBoundary(), + i.x *= 0 === e.x ? 1 : .5, + i.y *= 0 === e.y ? 1 : .5), + this.elastic || (e = this._getHowMuchOutOfBoundary(i), + i = i.add(e)); + var n = -1; + i.y > 0 ? this.content.y - this.content.anchorY * this.content.height + i.y >= this._bottomBoundary && (n = "scroll-to-bottom") : i.y < 0 && this.content.y - this.content.anchorY * this.content.height + this.content.height + i.y <= this._topBoundary && (n = "scroll-to-top"), + i.x < 0 ? this.content.x - this.content.anchorX * this.content.width + this.content.width + i.x <= this._rightBoundary && (n = "scroll-to-right") : i.x > 0 && this.content.x - this.content.anchorX * this.content.width + i.x >= this._leftBoundary && (n = "scroll-to-left"), + this._moveContent(i, !1), + 0 === i.x && 0 === i.y || (this._scrolling || (this._scrolling = !0, + this._dispatchEvent("scroll-began")), + this._dispatchEvent("scrolling")), + -1 !== n && this._dispatchEvent(n) + }, + _handlePressLogic: function() { + this._autoScrolling && this._dispatchEvent("scroll-ended"), + this._autoScrolling = !1, + this._isBouncing = !1, + this._touchMovePreviousTimestamp = s(), + this._touchMoveDisplacements.length = 0, + this._touchMoveTimeDeltas.length = 0, + this._onScrollBarTouchBegan() + }, + _clampDelta: function(t) { + var e = this.content.getContentSize() + , i = this._view.getContentSize(); + return e.width < i.width && (t.x = 0), + e.height < i.height && (t.y = 0), + t + }, + _gatherTouchMove: function(t) { + for (t = this._clampDelta(t); this._touchMoveDisplacements.length >= 5; ) + this._touchMoveDisplacements.shift(), + this._touchMoveTimeDeltas.shift(); + this._touchMoveDisplacements.push(t); + var e = s(); + this._touchMoveTimeDeltas.push((e - this._touchMovePreviousTimestamp) / 1e3), + this._touchMovePreviousTimestamp = e + }, + _startBounceBackIfNeeded: function() { + if (!this.elastic) + return !1; + var t = this._getHowMuchOutOfBoundary(); + if ((t = this._clampDelta(t)).fuzzyEquals(cc.v2(0, 0), 1e-4)) + return !1; + var e = Math.max(this.bounceDuration, 0); + return this._startAutoScroll(t, e, !0), + this._isBouncing || (t.y > 0 && this._dispatchEvent("bounce-top"), + t.y < 0 && this._dispatchEvent("bounce-bottom"), + t.x > 0 && this._dispatchEvent("bounce-right"), + t.x < 0 && this._dispatchEvent("bounce-left"), + this._isBouncing = !0), + !0 + }, + _processInertiaScroll: function() { + if (!this._startBounceBackIfNeeded() && this.inertia) { + var t = this._calculateTouchMoveVelocity(); + !t.fuzzyEquals(cc.v2(0, 0), 1e-4) && this.brake < 1 && this._startInertiaScroll(t) + } + this._onScrollBarTouchEnded() + }, + _handleReleaseLogic: function(t) { + var e = this._getLocalAxisAlignDelta(t); + this._gatherTouchMove(e), + this._processInertiaScroll(), + this._scrolling && (this._scrolling = !1, + this._autoScrolling || this._dispatchEvent("scroll-ended")) + }, + _isOutOfBoundary: function() { + return !this._getHowMuchOutOfBoundary().fuzzyEquals(cc.v2(0, 0), 1e-4) + }, + _isNecessaryAutoScrollBrake: function() { + if (this._autoScrollBraking) + return !0; + if (this._isOutOfBoundary()) { + if (!this._autoScrollCurrentlyOutOfBoundary) + return this._autoScrollCurrentlyOutOfBoundary = !0, + this._autoScrollBraking = !0, + this._autoScrollBrakingStartPosition = this.getContentPosition(), + !0 + } else + this._autoScrollCurrentlyOutOfBoundary = !1; + return !1 + }, + getScrollEndedEventTiming: function() { + return 1e-4 + }, + _processAutoScrolling: function(t) { + var e = this._isNecessaryAutoScrollBrake() + , i = e ? .05 : 1; + this._autoScrollAccumulatedTime += t * (1 / i); + var n, r = Math.min(1, this._autoScrollAccumulatedTime / this._autoScrollTotalTime); + this._autoScrollAttenuate && (n = r, + r = (n -= 1) * n * n * n * n + 1); + var s = this._autoScrollStartPosition.add(this._autoScrollTargetDelta.mul(r)) + , a = Math.abs(r - 1) <= 1e-4; + if (Math.abs(r - 1) <= this.getScrollEndedEventTiming() && !this._isScrollEndedWithThresholdEventFired && (this._dispatchEvent("scroll-ended-with-threshold"), + this._isScrollEndedWithThresholdEventFired = !0), + this.elastic) { + var o = s.sub(this._autoScrollBrakingStartPosition); + e && (o = o.mul(i)), + s = this._autoScrollBrakingStartPosition.add(o) + } else { + var l = s.sub(this.getContentPosition()) + , h = this._getHowMuchOutOfBoundary(l); + h.fuzzyEquals(cc.v2(0, 0), 1e-4) || (s = s.add(h), + a = !0) + } + a && (this._autoScrolling = !1); + var c = s.sub(this.getContentPosition()); + this._moveContent(this._clampDelta(c), a), + this._dispatchEvent("scrolling"), + this._autoScrolling || (this._isBouncing = !1, + this._scrolling = !1, + this._dispatchEvent("scroll-ended")) + }, + _startInertiaScroll: function(t) { + var e = t.mul(.7); + this._startAttenuatingAutoScroll(e, t) + }, + _calculateAttenuatedFactor: function(t) { + return this.brake <= 0 ? 1 - this.brake : (1 - this.brake) * (1 / (1 + 14e-6 * t + t * t * 8e-9)) + }, + _startAttenuatingAutoScroll: function(t, e) { + var i = this._calculateAutoScrollTimeByInitalSpeed(e.mag()) + , n = t.normalize() + , r = this.content.getContentSize() + , s = this._view.getContentSize() + , a = r.width - s.width + , o = r.height - s.height + , l = this._calculateAttenuatedFactor(a) + , h = this._calculateAttenuatedFactor(o); + n = cc.v2(n.x * a * (1 - this.brake) * l, n.y * o * h * (1 - this.brake)); + var c = t.mag() + , u = n.mag() / c; + n = n.add(t), + this.brake > 0 && u > 7 && (u = Math.sqrt(u), + n = t.mul(u).add(t)), + this.brake > 0 && u > 3 && (i *= u = 3), + 0 === this.brake && u > 1 && (i *= u), + this._startAutoScroll(n, i, !0) + }, + _calculateAutoScrollTimeByInitalSpeed: function(t) { + return Math.sqrt(Math.sqrt(t / 5)) + }, + _startAutoScroll: function(t, e, i) { + var n = this._flattenVectorByDirection(t); + this._autoScrolling = !0, + this._autoScrollTargetDelta = n, + this._autoScrollAttenuate = i, + this._autoScrollStartPosition = this.getContentPosition(), + this._autoScrollTotalTime = e, + this._autoScrollAccumulatedTime = 0, + this._autoScrollBraking = !1, + this._isScrollEndedWithThresholdEventFired = !1, + this._autoScrollBrakingStartPosition = cc.v2(0, 0), + this._getHowMuchOutOfBoundary().fuzzyEquals(cc.v2(0, 0), 1e-4) || (this._autoScrollCurrentlyOutOfBoundary = !0) + }, + _calculateTouchMoveVelocity: function() { + var t = 0; + if ((t = this._touchMoveTimeDeltas.reduce((function(t, e) { + return t + e + } + ), t)) <= 0 || t >= .5) + return cc.v2(0, 0); + var e = cc.v2(0, 0); + return e = this._touchMoveDisplacements.reduce((function(t, e) { + return t.add(e) + } + ), e), + cc.v2(e.x * (1 - this.brake) / t, e.y * (1 - this.brake) / t) + }, + _flattenVectorByDirection: function(t) { + var e = t; + return e.x = this.horizontal ? e.x : 0, + e.y = this.vertical ? e.y : 0, + e + }, + _moveContent: function(t, e) { + var i = this._flattenVectorByDirection(t) + , n = this.getContentPosition().add(i); + this.setContentPosition(n); + var r = this._getHowMuchOutOfBoundary(); + this._updateScrollBar(r), + this.elastic && e && this._startBounceBackIfNeeded() + }, + _getContentLeftBoundary: function() { + return this.getContentPosition().x - this.content.getAnchorPoint().x * this.content.getContentSize().width + }, + _getContentRightBoundary: function() { + var t = this.content.getContentSize(); + return this._getContentLeftBoundary() + t.width + }, + _getContentTopBoundary: function() { + var t = this.content.getContentSize(); + return this._getContentBottomBoundary() + t.height + }, + _getContentBottomBoundary: function() { + return this.getContentPosition().y - this.content.getAnchorPoint().y * this.content.getContentSize().height + }, + _getHowMuchOutOfBoundary: function(t) { + if ((t = t || cc.v2(0, 0)).fuzzyEquals(cc.v2(0, 0), 1e-4) && !this._outOfBoundaryAmountDirty) + return this._outOfBoundaryAmount; + var e = cc.v2(0, 0); + return this._getContentLeftBoundary() + t.x > this._leftBoundary ? e.x = this._leftBoundary - (this._getContentLeftBoundary() + t.x) : this._getContentRightBoundary() + t.x < this._rightBoundary && (e.x = this._rightBoundary - (this._getContentRightBoundary() + t.x)), + this._getContentTopBoundary() + t.y < this._topBoundary ? e.y = this._topBoundary - (this._getContentTopBoundary() + t.y) : this._getContentBottomBoundary() + t.y > this._bottomBoundary && (e.y = this._bottomBoundary - (this._getContentBottomBoundary() + t.y)), + t.fuzzyEquals(cc.v2(0, 0), 1e-4) && (this._outOfBoundaryAmount = e, + this._outOfBoundaryAmountDirty = !1), + this._clampDelta(e) + }, + _updateScrollBarState: function() { + if (this.content) { + var t = this.content.getContentSize() + , e = this._view.getContentSize(); + this.verticalScrollBar && (t.height < e.height ? this.verticalScrollBar.hide() : this.verticalScrollBar.show()), + this.horizontalScrollBar && (t.width < e.width ? this.horizontalScrollBar.hide() : this.horizontalScrollBar.show()) + } + }, + _updateScrollBar: function(t) { + this.horizontalScrollBar && this.horizontalScrollBar._onScroll(t), + this.verticalScrollBar && this.verticalScrollBar._onScroll(t) + }, + _onScrollBarTouchBegan: function() { + this.horizontalScrollBar && this.horizontalScrollBar._onTouchBegan(), + this.verticalScrollBar && this.verticalScrollBar._onTouchBegan() + }, + _onScrollBarTouchEnded: function() { + this.horizontalScrollBar && this.horizontalScrollBar._onTouchEnded(), + this.verticalScrollBar && this.verticalScrollBar._onTouchEnded() + }, + _dispatchEvent: function(t) { + if ("scroll-ended" === t) + this._scrollEventEmitMask = 0; + else if ("scroll-to-top" === t || "scroll-to-bottom" === t || "scroll-to-left" === t || "scroll-to-right" === t) { + var e = 1 << o[t]; + if (this._scrollEventEmitMask & e) + return; + this._scrollEventEmitMask |= e + } + cc.Component.EventHandler.emitEvents(this.scrollEvents, this, o[t]), + this.node.emit(t, this) + }, + _adjustContentOutOfBoundary: function() { + if (this._outOfBoundaryAmountDirty = !0, + this._isOutOfBoundary()) { + var t = this._getHowMuchOutOfBoundary(cc.v2(0, 0)) + , e = this.getContentPosition().add(t); + this.content && (this.content.setPosition(e), + this._updateScrollBar(0)) + } + }, + start: function() { + this._calculateBoundary(), + this.content && cc.director.once(cc.Director.EVENT_BEFORE_DRAW, this._adjustContentOutOfBoundary, this) + }, + _hideScrollbar: function() { + this.horizontalScrollBar && this.horizontalScrollBar.hide(), + this.verticalScrollBar && this.verticalScrollBar.hide() + }, + onDisable: function() { + this._unregisterEvent(), + this.content && (this.content.off(i.SIZE_CHANGED, this._calculateBoundary, this), + this.content.off(i.SCALE_CHANGED, this._calculateBoundary, this), + this._view && (this._view.off(i.POSITION_CHANGED, this._calculateBoundary, this), + this._view.off(i.SCALE_CHANGED, this._calculateBoundary, this), + this._view.off(i.SIZE_CHANGED, this._calculateBoundary, this))), + this._hideScrollbar(), + this.stopAutoScroll() + }, + onEnable: function() { + this._registerEvent(), + this.content && (this.content.on(i.SIZE_CHANGED, this._calculateBoundary, this), + this.content.on(i.SCALE_CHANGED, this._calculateBoundary, this), + this._view && (this._view.on(i.POSITION_CHANGED, this._calculateBoundary, this), + this._view.on(i.SCALE_CHANGED, this._calculateBoundary, this), + this._view.on(i.SIZE_CHANGED, this._calculateBoundary, this))), + this._updateScrollBarState() + }, + update: function(t) { + this._autoScrolling && this._processAutoScrolling(t) + } + }); + cc.ScrollView = e.exports = l + } + ), { + "../CCNode": 29, + "./CCViewGroup": 125 + }], + 119: [(function(t, e) { + "use strict"; + var i = t("../utils/misc") + , n = t("./CCComponent") + , r = cc.Enum({ + Horizontal: 0, + Vertical: 1 + }) + , s = cc.Class({ + name: "cc.Slider", + extends: n, + editor: !1, + ctor: function() { + this._offset = cc.v2(), + this._touchHandle = !1, + this._dragging = !1 + }, + properties: { + handle: { + default: null, + type: cc.Button, + tooltip: !1, + notify: function() {} + }, + direction: { + default: r.Horizontal, + type: r, + tooltip: !1 + }, + progress: { + default: .5, + type: cc.Float, + range: [0, 1, .1], + slide: !0, + tooltip: !1, + notify: function() { + this._updateHandlePosition() + } + }, + slideEvents: { + default: [], + type: cc.Component.EventHandler, + tooltip: !1 + } + }, + statics: { + Direction: r + }, + __preload: function() { + this._updateHandlePosition() + }, + onEnable: function() { + this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this), + this.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this), + this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this), + this.node.on(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this), + this.handle && this.handle.isValid && (this.handle.node.on(cc.Node.EventType.TOUCH_START, this._onHandleDragStart, this), + this.handle.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this), + this.handle.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this)) + }, + onDisable: function() { + this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this), + this.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this), + this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this), + this.node.off(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this), + this.handle && this.handle.isValid && (this.handle.node.off(cc.Node.EventType.TOUCH_START, this._onHandleDragStart, this), + this.handle.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this), + this.handle.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this)) + }, + _onHandleDragStart: function(t) { + this._dragging = !0, + this._touchHandle = !0, + this._offset = this.handle.node.convertToNodeSpaceAR(t.touch.getLocation()), + t.stopPropagation() + }, + _onTouchBegan: function(t) { + this.handle && (this._dragging = !0, + this._touchHandle || this._handleSliderLogic(t.touch), + t.stopPropagation()) + }, + _onTouchMoved: function(t) { + this._dragging && (this._handleSliderLogic(t.touch), + t.stopPropagation()) + }, + _onTouchEnded: function(t) { + this._dragging = !1, + this._touchHandle = !1, + this._offset = cc.v2(), + t.stopPropagation() + }, + _onTouchCancelled: function(t) { + this._dragging = !1, + t.stopPropagation() + }, + _handleSliderLogic: function(t) { + this._updateProgress(t), + this._emitSlideEvent() + }, + _emitSlideEvent: function() { + cc.Component.EventHandler.emitEvents(this.slideEvents, this), + this.node.emit("slide", this) + }, + _updateProgress: function(t) { + if (this.handle) { + var e = this.node + , n = e.convertToNodeSpaceAR(t.getLocation()); + this.direction === r.Horizontal ? this.progress = i.clamp01((n.x - this._offset.x + e.anchorX * e.width) / e.width) : this.progress = i.clamp01((n.y - this._offset.y + e.anchorY * e.height) / e.height) + } + }, + _updateHandlePosition: function() { + if (this.handle) { + var t; + t = this.direction === r.Horizontal ? cc.v2(-this.node.width * this.node.anchorX + this.progress * this.node.width, 0) : cc.v2(0, -this.node.height * this.node.anchorY + this.progress * this.node.height); + var e = this.node.convertToWorldSpaceAR(t); + this.handle.node.position = this.handle.node.parent.convertToNodeSpaceAR(e) + } + } + }); + cc.Slider = e.exports = s + } + ), { + "../utils/misc": 267, + "./CCComponent": 105 + }], + 120: [(function(t, e) { + "use strict"; + var i = t("../utils/misc") + , n = (t("../CCNode").EventType, + t("./CCRenderComponent")) + , r = t("../utils/blend-func") + , s = cc.Enum({ + SIMPLE: 0, + SLICED: 1, + TILED: 2, + FILLED: 3, + MESH: 4 + }) + , a = cc.Enum({ + HORIZONTAL: 0, + VERTICAL: 1, + RADIAL: 2 + }) + , o = cc.Enum({ + CUSTOM: 0, + TRIMMED: 1, + RAW: 2 + }) + , l = cc.Enum({ + NORMAL: 0, + GRAY: 1 + }) + , h = cc.Class({ + name: "cc.Sprite", + extends: n, + mixins: [r], + editor: !1, + properties: { + _spriteFrame: { + default: null, + type: cc.SpriteFrame + }, + _type: s.SIMPLE, + _sizeMode: o.TRIMMED, + _fillType: 0, + _fillCenter: cc.v2(0, 0), + _fillStart: 0, + _fillRange: 0, + _isTrimmedMode: !0, + _atlas: { + default: null, + type: cc.SpriteAtlas, + tooltip: !1, + editorOnly: !0, + visible: !0, + animatable: !1 + }, + spriteFrame: { + get: function() { + return this._spriteFrame + }, + set: function(t) { + var e = this._spriteFrame; + e !== t && (this._spriteFrame = t, + this._applySpriteFrame(e)) + }, + type: cc.SpriteFrame + }, + type: { + get: function() { + return this._type + }, + set: function(t) { + this._type !== t && (this._type = t, + this.setVertsDirty(), + this._resetAssembler()) + }, + type: s, + animatable: !1, + tooltip: !1 + }, + fillType: { + get: function() { + return this._fillType + }, + set: function(t) { + t !== this._fillType && (this._fillType = t, + this.setVertsDirty(), + this._resetAssembler()) + }, + type: a, + tooltip: !1 + }, + fillCenter: { + get: function() { + return this._fillCenter + }, + set: function(t) { + this._fillCenter.x = t.x, + this._fillCenter.y = t.y, + this._type === s.FILLED && this.setVertsDirty() + }, + tooltip: !1 + }, + fillStart: { + get: function() { + return this._fillStart + }, + set: function(t) { + this._fillStart = i.clampf(t, -1, 1), + this._type === s.FILLED && this.setVertsDirty() + }, + tooltip: !1 + }, + fillRange: { + get: function() { + return this._fillRange + }, + set: function(t) { + this._fillRange = i.clampf(t, -1, 1), + this._type === s.FILLED && this.setVertsDirty() + }, + tooltip: !1 + }, + trim: { + get: function() { + return this._isTrimmedMode + }, + set: function(t) { + this._isTrimmedMode !== t && (this._isTrimmedMode = t, + this._type !== s.SIMPLE && this._type !== s.MESH || this.setVertsDirty()) + }, + animatable: !1, + tooltip: !1 + }, + sizeMode: { + get: function() { + return this._sizeMode + }, + set: function(t) { + this._sizeMode = t, + t !== o.CUSTOM && this._applySpriteSize() + }, + animatable: !1, + type: o, + tooltip: !1 + } + }, + statics: { + FillType: a, + Type: s, + SizeMode: o, + State: l + }, + setVisible: function(t) { + this.enabled = t + }, + setState: function() {}, + getState: function() {}, + __preload: function() { + this._super(), + this._applySpriteFrame() + }, + onEnable: function() { + this._super(), + this._spriteFrame && this._spriteFrame.ensureLoadTexture(), + this.node.on(cc.Node.EventType.SIZE_CHANGED, this.setVertsDirty, this), + this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.setVertsDirty, this) + }, + onDisable: function() { + this._super(), + this.node.off(cc.Node.EventType.SIZE_CHANGED, this.setVertsDirty, this), + this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this.setVertsDirty, this) + }, + _updateMaterial: function() { + var t = null; + this._spriteFrame && (t = this._spriteFrame.getTexture()); + var e = this.getMaterial(0); + e && (void 0 !== e.getDefine("USE_TEXTURE") && e.define("USE_TEXTURE", !0), + e.getProperty("texture") !== t && e.setProperty("texture", t)), + r.prototype._updateMaterial.call(this) + }, + _applyAtlas: !1, + _validateRender: function() { + var t = this._spriteFrame; + this._materials[0] && t && t.textureLoaded() || this.disableRender() + }, + _applySpriteSize: function() { + if (this._spriteFrame && this.isValid) { + if (o.RAW === this._sizeMode) { + var t = this._spriteFrame._originalSize; + this.node.setContentSize(t) + } else if (o.TRIMMED === this._sizeMode) { + var e = this._spriteFrame._rect; + this.node.setContentSize(e.width, e.height) + } + this.setVertsDirty() + } + }, + _applySpriteFrame: function(t) { + if (this.isValid) { + var e = t && t.getTexture(); + e && !e.loaded && t.off("load", this._applySpriteSize, this), + this._updateMaterial(); + var i = this._spriteFrame; + if (i) { + var n = i.getTexture(); + n && n.loaded ? this._applySpriteSize() : (this.disableRender(), + i.once("load", this._applySpriteSize, this)) + } else + this.disableRender() + } + } + }); + cc.Sprite = e.exports = h + } + ), { + "../CCNode": 29, + "../utils/blend-func": 261, + "../utils/misc": 267, + "./CCRenderComponent": 115 + }], + 121: [(function(t, e) { + "use strict"; + var i = cc.Enum({ + NONE: 0, + CHECKBOX: 1, + TEXT_ATLAS: 2, + SLIDER_BAR: 3, + LIST_VIEW: 4, + PAGE_VIEW: 5 + }) + , n = cc.Enum({ + VERTICAL: 0, + HORIZONTAL: 1 + }) + , r = cc.Enum({ + TOP: 0, + CENTER: 1, + BOTTOM: 2 + }) + , s = cc.Enum({ + LEFT: 0, + CENTER: 1, + RIGHT: 2 + }) + , a = cc.Class({ + name: "cc.StudioComponent", + extends: cc.Component, + editor: !1, + properties: !1, + statics: { + ComponentType: i, + ListDirection: n, + VerticalAlign: r, + HorizontalAlign: s + } + }); + cc.StudioComponent = e.exports = a; + var o = cc.Class({ + name: "cc.StudioWidget", + extends: cc.Widget, + editor: !1, + _validateTargetInDEV: function() {} + }); + cc.StudioWidget = e.exports = o + } + ), {}], + 122: [(function(t, e) { + "use strict"; + var i = t("../utils/gray-sprite-state") + , n = cc.Class({ + name: "cc.Toggle", + extends: t("./CCButton"), + mixins: [i], + editor: !1, + properties: { + _N$isChecked: !0, + isChecked: { + get: function() { + return this._N$isChecked + }, + set: function(t) { + if (t !== this._N$isChecked) { + var e = this.toggleGroup || this._toggleContainer; + e && e.enabled && this._N$isChecked && !e.allowSwitchOff || (this._N$isChecked = t, + this._updateCheckMark(), + e && e.enabled && e.updateToggles(this), + cc.Toggle._triggerEventInScript_isChecked && this._emitToggleEvents()) + } + }, + tooltip: !1 + }, + toggleGroup: { + default: null, + tooltip: !1, + type: t("./CCToggleGroup") + }, + checkMark: { + default: null, + type: cc.Sprite, + tooltip: !1 + }, + checkEvents: { + default: [], + type: cc.Component.EventHandler + }, + _resizeToTarget: { + animatable: !1, + set: function(t) { + t && this._resizeNodeToTargetNode() + } + } + }, + statics: { + _triggerEventInScript_check: !1, + _triggerEventInScript_isChecked: !1 + }, + onEnable: function() { + this._super(), + this._registerToggleEvent(), + this.toggleGroup && this.toggleGroup.enabledInHierarchy && this.toggleGroup.addToggle(this) + }, + onDisable: function() { + this._super(), + this._unregisterToggleEvent(), + this.toggleGroup && this.toggleGroup.enabledInHierarchy && this.toggleGroup.removeToggle(this) + }, + _hideCheckMark: function() { + this._N$isChecked = !1, + this._updateCheckMark() + }, + toggle: function(t) { + this.isChecked = !this.isChecked, + cc.Toggle._triggerEventInScript_isChecked || !cc.Toggle._triggerEventInScript_check && !t || this._emitToggleEvents() + }, + check: function() { + this.isChecked = !0, + !cc.Toggle._triggerEventInScript_isChecked && cc.Toggle._triggerEventInScript_check && this._emitToggleEvents() + }, + uncheck: function() { + this.isChecked = !1, + !cc.Toggle._triggerEventInScript_isChecked && cc.Toggle._triggerEventInScript_check && this._emitToggleEvents() + }, + _updateCheckMark: function() { + this.checkMark && (this.checkMark.node.active = !!this.isChecked) + }, + _updateDisabledState: function() { + if (this._super(), + this.enableAutoGrayEffect && this.checkMark) { + var t = !this.interactable; + this._switchGrayMaterial(t, this.checkMark) + } + }, + _registerToggleEvent: function() { + this.node.on("click", this.toggle, this) + }, + _unregisterToggleEvent: function() { + this.node.off("click", this.toggle, this) + }, + _emitToggleEvents: function() { + this.node.emit("toggle", this), + this.checkEvents && cc.Component.EventHandler.emitEvents(this.checkEvents, this) + } + }); + cc.Toggle = e.exports = n, + t("../platform/js").get(n.prototype, "_toggleContainer", (function() { + var t = this.node.parent; + return cc.Node.isNode(t) ? t.getComponent(cc.ToggleContainer) : null + } + )) + } + ), { + "../platform/js": 214, + "../utils/gray-sprite-state": 264, + "./CCButton": 103, + "./CCToggleGroup": 124 + }], + 123: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.ToggleContainer", + extends: cc.Component, + editor: !1, + properties: { + allowSwitchOff: { + tooltip: !1, + default: !1 + }, + checkEvents: { + default: [], + type: cc.Component.EventHandler + } + }, + updateToggles: function(t) { + this.enabledInHierarchy && t.isChecked && (this.toggleItems.forEach((function(e) { + e !== t && e.isChecked && e.enabled && e._hideCheckMark() + } + )), + this.checkEvents && cc.Component.EventHandler.emitEvents(this.checkEvents, t)) + }, + _allowOnlyOneToggleChecked: function() { + var t = !1; + return this.toggleItems.forEach((function(e) { + t ? e._hideCheckMark() : e.isChecked && (t = !0) + } + )), + t + }, + _makeAtLeastOneToggleChecked: function() { + if (!this._allowOnlyOneToggleChecked() && !this.allowSwitchOff) { + var t = this.toggleItems; + t.length > 0 && t[0].check() + } + }, + onEnable: function() { + this._makeAtLeastOneToggleChecked(), + this.node.on("child-added", this._allowOnlyOneToggleChecked, this), + this.node.on("child-removed", this._makeAtLeastOneToggleChecked, this) + }, + onDisable: function() { + this.node.off("child-added", this._allowOnlyOneToggleChecked, this), + this.node.off("child-removed", this._makeAtLeastOneToggleChecked, this) + } + }); + t("../platform/js").get(i.prototype, "toggleItems", (function() { + return this.node._children.map((function(t) { + return t.getComponent(cc.Toggle) + } + )).filter(Boolean) + } + )), + cc.ToggleContainer = e.exports = i + } + ), { + "../platform/js": 214 + }], + 124: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.ToggleGroup", + extends: cc.Component, + ctor: function() { + this._toggleItems = [] + }, + editor: !1, + properties: { + allowSwitchOff: { + tooltip: !1, + default: !1 + }, + toggleItems: { + get: function() { + return this._toggleItems + } + } + }, + updateToggles: function(t) { + this.enabledInHierarchy && this._toggleItems.forEach((function(e) { + t.isChecked && e !== t && e.isChecked && e.enabled && e._hideCheckMark() + } + )) + }, + addToggle: function(t) { + -1 === this._toggleItems.indexOf(t) && this._toggleItems.push(t), + this._allowOnlyOneToggleChecked() + }, + removeToggle: function(t) { + var e = this._toggleItems.indexOf(t); + e > -1 && this._toggleItems.splice(e, 1), + this._makeAtLeastOneToggleChecked() + }, + _allowOnlyOneToggleChecked: function() { + var t = !1; + return this._toggleItems.forEach((function(e) { + t && e.enabled && e._hideCheckMark(), + e.isChecked && e.enabled && (t = !0) + } + )), + t + }, + _makeAtLeastOneToggleChecked: function() { + this._allowOnlyOneToggleChecked() || this.allowSwitchOff || this._toggleItems.length > 0 && (this._toggleItems[0].isChecked = !0) + }, + start: function() { + this._makeAtLeastOneToggleChecked() + } + }) + , n = t("../platform/js") + , r = !1; + n.get(cc, "ToggleGroup", (function() { + return r || (cc.errorID(1405, "cc.ToggleGroup", "cc.ToggleContainer"), + r = !0), + i + } + )), + e.exports = i + } + ), { + "../platform/js": 214 + }], + 125: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.ViewGroup", + extends: t("./CCComponent") + }); + cc.ViewGroup = e.exports = i + } + ), { + "./CCComponent": 105 + }], + 126: [(function(t, e) { + "use strict"; + var i = t("../base-ui/CCWidgetManager") + , n = i.AlignMode + , r = i._AlignFlags + , s = r.TOP + , a = r.MID + , o = r.BOT + , l = r.LEFT + , h = r.CENTER + , c = r.RIGHT + , u = s | o + , _ = l | c + , f = cc.Class({ + name: "cc.Widget", + extends: t("./CCComponent"), + editor: !1, + properties: { + target: { + get: function() { + return this._target + }, + set: function(t) { + this._target = t + }, + type: cc.Node, + tooltip: !1 + }, + isAlignTop: { + get: function() { + return (this._alignFlags & s) > 0 + }, + set: function(t) { + this._setAlign(s, t) + }, + animatable: !1, + tooltip: !1 + }, + isAlignVerticalCenter: { + get: function() { + return (this._alignFlags & a) > 0 + }, + set: function(t) { + t ? (this.isAlignTop = !1, + this.isAlignBottom = !1, + this._alignFlags |= a) : this._alignFlags &= ~a + }, + animatable: !1, + tooltip: !1 + }, + isAlignBottom: { + get: function() { + return (this._alignFlags & o) > 0 + }, + set: function(t) { + this._setAlign(o, t) + }, + animatable: !1, + tooltip: !1 + }, + isAlignLeft: { + get: function() { + return (this._alignFlags & l) > 0 + }, + set: function(t) { + this._setAlign(l, t) + }, + animatable: !1, + tooltip: !1 + }, + isAlignHorizontalCenter: { + get: function() { + return (this._alignFlags & h) > 0 + }, + set: function(t) { + t ? (this.isAlignLeft = !1, + this.isAlignRight = !1, + this._alignFlags |= h) : this._alignFlags &= ~h + }, + animatable: !1, + tooltip: !1 + }, + isAlignRight: { + get: function() { + return (this._alignFlags & c) > 0 + }, + set: function(t) { + this._setAlign(c, t) + }, + animatable: !1, + tooltip: !1 + }, + isStretchWidth: { + get: function() { + return (this._alignFlags & _) === _ + }, + visible: !1 + }, + isStretchHeight: { + get: function() { + return (this._alignFlags & u) === u + }, + visible: !1 + }, + top: { + get: function() { + return this._top + }, + set: function(t) { + this._top = t + }, + tooltip: !1 + }, + bottom: { + get: function() { + return this._bottom + }, + set: function(t) { + this._bottom = t + }, + tooltip: !1 + }, + left: { + get: function() { + return this._left + }, + set: function(t) { + this._left = t + }, + tooltip: !1 + }, + right: { + get: function() { + return this._right + }, + set: function(t) { + this._right = t + }, + tooltip: !1 + }, + horizontalCenter: { + get: function() { + return this._horizontalCenter + }, + set: function(t) { + this._horizontalCenter = t + }, + tooltip: !1 + }, + verticalCenter: { + get: function() { + return this._verticalCenter + }, + set: function(t) { + this._verticalCenter = t + }, + tooltip: !1 + }, + isAbsoluteHorizontalCenter: { + get: function() { + return this._isAbsHorizontalCenter + }, + set: function(t) { + this._isAbsHorizontalCenter = t + }, + animatable: !1 + }, + isAbsoluteVerticalCenter: { + get: function() { + return this._isAbsVerticalCenter + }, + set: function(t) { + this._isAbsVerticalCenter = t + }, + animatable: !1 + }, + isAbsoluteTop: { + get: function() { + return this._isAbsTop + }, + set: function(t) { + this._isAbsTop = t + }, + animatable: !1 + }, + isAbsoluteBottom: { + get: function() { + return this._isAbsBottom + }, + set: function(t) { + this._isAbsBottom = t + }, + animatable: !1 + }, + isAbsoluteLeft: { + get: function() { + return this._isAbsLeft + }, + set: function(t) { + this._isAbsLeft = t + }, + animatable: !1 + }, + isAbsoluteRight: { + get: function() { + return this._isAbsRight + }, + set: function(t) { + this._isAbsRight = t + }, + animatable: !1 + }, + alignMode: { + default: n.ON_WINDOW_RESIZE, + type: n, + tooltip: !1 + }, + _wasAlignOnce: { + default: void 0, + formerlySerializedAs: "isAlignOnce" + }, + _target: null, + _alignFlags: 0, + _left: 0, + _right: 0, + _top: 0, + _bottom: 0, + _verticalCenter: 0, + _horizontalCenter: 0, + _isAbsLeft: !0, + _isAbsRight: !0, + _isAbsTop: !0, + _isAbsBottom: !0, + _isAbsHorizontalCenter: !0, + _isAbsVerticalCenter: !0, + _originalWidth: 0, + _originalHeight: 0 + }, + statics: { + AlignMode: n + }, + onLoad: function() { + void 0 !== this._wasAlignOnce && (this.alignMode = this._wasAlignOnce ? n.ONCE : n.ALWAYS, + this._wasAlignOnce = void 0) + }, + onEnable: function() { + i.add(this) + }, + onDisable: function() { + i.remove(this) + }, + _validateTargetInDEV: !1, + _setAlign: function(t, e) { + if (e !== (this._alignFlags & t) > 0) { + var i = (t & _) > 0; + e ? (this._alignFlags |= t, + i ? (this.isAlignHorizontalCenter = !1, + this.isStretchWidth && (this._originalWidth = this.node.width)) : (this.isAlignVerticalCenter = !1, + this.isStretchHeight && (this._originalHeight = this.node.height))) : (i ? this.isStretchWidth && (this.node.width = this._originalWidth) : this.isStretchHeight && (this.node.height = this._originalHeight), + this._alignFlags &= ~t) + } + }, + updateAlignment: function() { + i.updateAlignment(this.node) + } + }); + Object.defineProperty(f.prototype, "isAlignOnce", { + get: function() { + return this.alignMode === n.ONCE + }, + set: function(t) { + this.alignMode = t ? n.ONCE : n.ALWAYS + } + }), + cc.Widget = e.exports = f + } + ), { + "../base-ui/CCWidgetManager": 89, + "./CCComponent": 105 + }], + 127: [(function(t, e) { + "use strict"; + var i = t("../../platform/CCMacro") + , n = t("../editbox/EditBoxImplBase") + , r = t("../CCLabel") + , s = t("./types") + , a = s.InputMode + , o = s.InputFlag + , l = s.KeyboardReturnType; + function h(t) { + return t.charAt(0).toUpperCase() + t.slice(1) + } + var c = cc.Class({ + name: "cc.EditBox", + extends: cc.Component, + editor: !1, + properties: { + _string: "", + string: { + tooltip: !1, + get: function() { + return this._string + }, + set: function(t) { + t = "" + t, + this.maxLength >= 0 && t.length >= this.maxLength && (t = t.slice(0, this.maxLength)), + this._string = t, + this._updateString(t) + } + }, + textLabel: { + tooltip: !1, + default: null, + type: r, + notify: function(t) { + this.textLabel && this.textLabel !== t && (this._updateTextLabel(), + this._updateLabels()) + } + }, + placeholderLabel: { + tooltip: !1, + default: null, + type: r, + notify: function(t) { + this.placeholderLabel && this.placeholderLabel !== t && (this._updatePlaceholderLabel(), + this._updateLabels()) + } + }, + background: { + tooltip: !1, + default: null, + type: cc.Sprite, + notify: function(t) { + this.background && this.background !== t && this._updateBackgroundSprite() + } + }, + _N$backgroundImage: { + default: void 0, + type: cc.SpriteFrame + }, + backgroundImage: { + get: function() { + return this.background ? this.background.spriteFrame : null + }, + set: function(t) { + this.background && (this.background.spriteFrame = t) + } + }, + returnType: { + default: l.DEFAULT, + tooltip: !1, + displayName: "KeyboardReturnType", + type: l + }, + _N$returnType: { + default: void 0, + type: cc.Float + }, + inputFlag: { + tooltip: !1, + default: o.DEFAULT, + type: o, + notify: function() { + this._updateString(this._string) + } + }, + inputMode: { + tooltip: !1, + default: a.ANY, + type: a, + notify: function(t) { + this.inputMode !== t && (this._updateTextLabel(), + this._updatePlaceholderLabel()) + } + }, + fontSize: { + get: function() { + return this.textLabel ? this.textLabel.fontSize : 0 + }, + set: function(t) { + this.textLabel && (this.textLabel.fontSize = t) + } + }, + _N$fontSize: { + default: void 0, + type: cc.Float + }, + lineHeight: { + get: function() { + return this.textLabel ? this.textLabel.lineHeight : 0 + }, + set: function(t) { + this.textLabel && (this.textLabel.lineHeight = t) + } + }, + _N$lineHeight: { + default: void 0, + type: cc.Float + }, + fontColor: { + get: function() { + return this.textLabel ? this.textLabel.node.color : cc.Color.BLACK + }, + set: function(t) { + this.textLabel && (this.textLabel.node.color = t, + this.textLabel.node.opacity = t.a) + } + }, + _N$fontColor: void 0, + placeholder: { + tooltip: !1, + get: function() { + return this.placeholderLabel ? this.placeholderLabel.string : "" + }, + set: function(t) { + this.placeholderLabel && (this.placeholderLabel.string = t) + } + }, + _N$placeholder: { + default: void 0, + type: cc.String + }, + placeholderFontSize: { + get: function() { + return this.placeholderLabel ? this.placeholderLabel.fontSize : 0 + }, + set: function(t) { + this.placeholderLabel && (this.placeholderLabel.fontSize = t) + } + }, + _N$placeholderFontSize: { + default: void 0, + type: cc.Float + }, + placeholderFontColor: { + get: function() { + return this.placeholderLabel ? this.placeholderLabel.node.color : cc.Color.BLACK + }, + set: function(t) { + this.placeholderLabel && (this.placeholderLabel.node.color = t, + this.placeholderLabel.node.opacity = t.a) + } + }, + _N$placeholderFontColor: void 0, + maxLength: { + tooltip: !1, + default: 20 + }, + _N$maxLength: { + default: void 0, + type: cc.Float + }, + stayOnTop: { + default: !1, + notify: function() { + cc.warn("editBox.stayOnTop is removed since v2.1.") + } + }, + _tabIndex: 0, + tabIndex: { + tooltip: !1, + get: function() { + return this._tabIndex + }, + set: function(t) { + this._tabIndex !== t && (this._tabIndex = t, + this._impl && this._impl.setTabIndex(t)) + } + }, + editingDidBegan: { + default: [], + type: cc.Component.EventHandler + }, + textChanged: { + default: [], + type: cc.Component.EventHandler + }, + editingDidEnded: { + default: [], + type: cc.Component.EventHandler + }, + editingReturn: { + default: [], + type: cc.Component.EventHandler + } + }, + statics: { + _ImplClass: n, + KeyboardReturnType: l, + InputFlag: o, + InputMode: a + }, + _init: function() { + this._upgradeComp(), + this._isLabelVisible = !0, + this.node.on(cc.Node.EventType.SIZE_CHANGED, this._syncSize, this), + (this._impl = new c._ImplClass).init(this), + this._updateString(this._string), + this._syncSize() + }, + _updateBackgroundSprite: function() { + var t = this.background; + if (!t) { + var e = this.node.getChildByName("BACKGROUND_SPRITE"); + e || (e = new cc.Node("BACKGROUND_SPRITE")), + (t = e.getComponent(cc.Sprite)) || (t = e.addComponent(cc.Sprite)), + e.parent = this.node, + this.background = t + } + t.type = cc.Sprite.Type.SLICED, + void 0 !== this._N$backgroundImage && (t.spriteFrame = this._N$backgroundImage, + this._N$backgroundImage = void 0) + }, + _updateTextLabel: function() { + var t = this.textLabel; + if (!t) { + var e = this.node.getChildByName("TEXT_LABEL"); + e || (e = new cc.Node("TEXT_LABEL")), + (t = e.getComponent(r)) || (t = e.addComponent(r)), + e.parent = this.node, + this.textLabel = t + } + t.node.setAnchorPoint(0, 1), + t.overflow = r.Overflow.CLAMP, + this.inputMode === a.ANY ? (t.verticalAlign = i.VerticalTextAlignment.TOP, + t.enableWrapText = !0) : (t.verticalAlign = i.VerticalTextAlignment.CENTER, + t.enableWrapText = !1), + t.string = this._updateLabelStringStyle(this._string), + void 0 !== this._N$fontColor && (t.node.color = this._N$fontColor, + t.node.opacity = this._N$fontColor.a, + this._N$fontColor = void 0), + void 0 !== this._N$fontSize && (t.fontSize = this._N$fontSize, + this._N$fontSize = void 0), + void 0 !== this._N$lineHeight && (t.lineHeight = this._N$lineHeight, + this._N$lineHeight = void 0) + }, + _updatePlaceholderLabel: function() { + var t = this.placeholderLabel; + if (!t) { + var e = this.node.getChildByName("PLACEHOLDER_LABEL"); + e || (e = new cc.Node("PLACEHOLDER_LABEL")), + (t = e.getComponent(r)) || (t = e.addComponent(r)), + e.parent = this.node, + this.placeholderLabel = t + } + t.node.setAnchorPoint(0, 1), + t.overflow = r.Overflow.CLAMP, + this.inputMode === a.ANY ? (t.verticalAlign = i.VerticalTextAlignment.TOP, + t.enableWrapText = !0) : (t.verticalAlign = i.VerticalTextAlignment.CENTER, + t.enableWrapText = !1), + t.string = this.placeholder, + void 0 !== this._N$placeholderFontColor && (t.node.color = this._N$placeholderFontColor, + t.node.opacity = this._N$placeholderFontColor.a, + this._N$placeholderFontColor = void 0), + void 0 !== this._N$placeholderFontSize && (t.fontSize = this._N$placeholderFontSize, + this._N$placeholderFontSize = void 0) + }, + _upgradeComp: function() { + void 0 !== this._N$returnType && (this.returnType = this._N$returnType, + this._N$returnType = void 0), + void 0 !== this._N$maxLength && (this.maxLength = this._N$maxLength, + this._N$maxLength = void 0), + void 0 !== this._N$backgroundImage && this._updateBackgroundSprite(), + void 0 === this._N$fontColor && void 0 === this._N$fontSize && void 0 === this._N$lineHeight || this._updateTextLabel(), + void 0 === this._N$placeholderFontColor && void 0 === this._N$placeholderFontSize || this._updatePlaceholderLabel(), + void 0 !== this._N$placeholder && (this.placeholder = this._N$placeholder, + this._N$placeholder = void 0) + }, + _syncSize: function() { + if (this._impl) { + var t = this.node.getContentSize(); + this._impl.setSize(t.width, t.height) + } + }, + _showLabels: function() { + this._isLabelVisible = !0, + this._updateLabels() + }, + _hideLabels: function() { + this._isLabelVisible = !1, + this.textLabel && (this.textLabel.node.active = !1), + this.placeholderLabel && (this.placeholderLabel.node.active = !1) + }, + _updateLabels: function() { + if (this._isLabelVisible) { + var t = this._string; + this.textLabel && (this.textLabel.node.active = "" !== t), + this.placeholderLabel && (this.placeholderLabel.node.active = "" === t) + } + }, + _updateString: function(t) { + var e = this.textLabel; + if (e) { + var i = t; + i && (i = this._updateLabelStringStyle(i)), + e.string = i, + this._updateLabels() + } + }, + _updateLabelStringStyle: function(t, e) { + var i = this.inputFlag; + if (e || i !== o.PASSWORD) + i === o.INITIAL_CAPS_ALL_CHARACTERS ? t = t.toUpperCase() : i === o.INITIAL_CAPS_WORD ? t = t.replace(/(?:^|\s)\S/g, (function(t) { + return t.toUpperCase() + } + )) : i === o.INITIAL_CAPS_SENTENCE && (t = h(t)); + else { + for (var n = "", r = t.length, s = 0; s < r; ++s) + n += "\u25cf"; + t = n + } + return t + }, + editBoxEditingDidBegan: function() { + cc.Component.EventHandler.emitEvents(this.editingDidBegan, this), + this.node.emit("editing-did-began", this) + }, + editBoxEditingDidEnded: function() { + cc.Component.EventHandler.emitEvents(this.editingDidEnded, this), + this.node.emit("editing-did-ended", this) + }, + editBoxTextChanged: function(t) { + t = this._updateLabelStringStyle(t, !0), + this.string = t, + cc.Component.EventHandler.emitEvents(this.textChanged, t, this), + this.node.emit("text-changed", this) + }, + editBoxEditingReturn: function() { + cc.Component.EventHandler.emitEvents(this.editingReturn, this), + this.node.emit("editing-return", this) + }, + onEnable: function() { + this._registerEvent(), + this._impl && this._impl.enable() + }, + onDisable: function() { + this._unregisterEvent(), + this._impl && this._impl.disable() + }, + onDestroy: function() { + this._impl && this._impl.clear() + }, + __preload: function() { + this._init() + }, + _registerEvent: function() { + this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this), + this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this) + }, + _unregisterEvent: function() { + this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this), + this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this) + }, + _onTouchBegan: function(t) { + t.stopPropagation() + }, + _onTouchCancel: function(t) { + t.stopPropagation() + }, + _onTouchEnded: function(t) { + this._impl && this._impl.beginEditing(), + t.stopPropagation() + }, + setFocus: function() { + cc.errorID(1400, "setFocus()", "focus()"), + this._impl && this._impl.setFocus(!0) + }, + focus: function() { + this._impl && this._impl.setFocus(!0) + }, + blur: function() { + this._impl && this._impl.setFocus(!1) + }, + isFocused: function() { + return !!this._impl && this._impl.isFocused() + }, + update: function() { + this._impl && this._impl.update() + } + }); + cc.EditBox = e.exports = c, + cc.sys.isBrowser && t("./WebEditBoxImpl") + } + ), { + "../../platform/CCMacro": 198, + "../CCLabel": 107, + "../editbox/EditBoxImplBase": 128, + "./WebEditBoxImpl": 129, + "./types": 131 + }], + 128: [(function(t, e) { + "use strict"; + var i = cc.Class({ + ctor: function() { + this._delegate = null, + this._editing = !1 + }, + init: function() {}, + enable: function() {}, + disable: function() { + this._editing && this.endEditing() + }, + clear: function() {}, + update: function() {}, + setTabIndex: function() {}, + setSize: function() {}, + setFocus: function(t) { + t ? this.beginEditing() : this.endEditing() + }, + isFocused: function() { + return this._editing + }, + beginEditing: function() {}, + endEditing: function() {} + }); + e.exports = i + } + ), {}], + 129: [(function(t) { + "use strict"; + var e, i = (e = t("../../value-types/mat4")) && e.__esModule ? e : { + default: e + }, n = t("../../platform/utils"), r = t("../../platform/CCMacro"), s = t("./types"), a = t("../CCLabel"), o = t("./tabIndexUtil"), l = cc.EditBox, h = cc.js, c = s.InputMode, u = s.InputFlag, _ = s.KeyboardReturnType, f = { + zoomInvalid: !1 + }; + cc.sys.OS_ANDROID !== cc.sys.os || cc.sys.browserType !== cc.sys.BROWSER_TYPE_SOUGOU && cc.sys.browserType !== cc.sys.BROWSER_TYPE_360 || (f.zoomInvalid = !0); + var d = 0 + , p = cc.v3() + , m = null + , y = !1 + , v = !1 + , g = l._ImplClass; + function A() { + g.call(this), + this._domId = "EditBoxId_" + ++d, + this._placeholderStyleSheet = null, + this._elem = null, + this._isTextArea = !1, + this._worldMat = new i.default, + this._cameraMat = new i.default, + this._m00 = 0, + this._m01 = 0, + this._m04 = 0, + this._m05 = 0, + this._m12 = 0, + this._m13 = 0, + this._w = 0, + this._h = 0, + this._cacheViewportRect = cc.rect(0, 0, 0, 0), + this._inputMode = null, + this._inputFlag = null, + this._returnType = null, + this._eventListeners = {}, + this._textLabelFont = null, + this._textLabelFontSize = null, + this._textLabelFontColor = null, + this._textLabelAlign = null, + this._placeholderLabelFont = null, + this._placeholderLabelFontSize = null, + this._placeholderLabelFontColor = null, + this._placeholderLabelAlign = null, + this._placeholderLineHeight = null + } + h.extend(A, g), + l._ImplClass = A, + Object.assign(A.prototype, { + init: function(t) { + t && (this._delegate = t, + t.inputMode === c.ANY ? this._createTextArea() : this._createInput(), + o.add(this), + this.setTabIndex(t.tabIndex), + this._initStyleSheet(), + this._registerEventListeners(), + this._addDomToGameContainer(), + y = cc.view.isAutoFullScreenEnabled(), + v = cc.view._resizeWithBrowserSize) + }, + clear: function() { + this._removeEventListeners(), + this._removeDomFromGameContainer(), + o.remove(this), + m === this && (m = null) + }, + update: function() { + this._updateMatrix() + }, + setTabIndex: function(t) { + this._elem.tabIndex = t, + o.resort() + }, + setSize: function(t, e) { + var i = this._elem; + i.style.width = t + "px", + i.style.height = e + "px" + }, + beginEditing: function() { + m && m !== this && m.setFocus(!1), + this._editing = !0, + m = this, + this._delegate.editBoxEditingDidBegan(), + this._showDom(), + this._elem.focus() + }, + endEditing: function() { + this._elem && this._elem.blur() + }, + _createInput: function() { + this._isTextArea = !1, + this._elem = document.createElement("input") + }, + _createTextArea: function() { + this._isTextArea = !0, + this._elem = document.createElement("textarea") + }, + _addDomToGameContainer: function() { + cc.game.container.appendChild(this._elem), + document.head.appendChild(this._placeholderStyleSheet) + }, + _removeDomFromGameContainer: function() { + n.contains(cc.game.container, this._elem) && cc.game.container.removeChild(this._elem), + n.contains(document.head, this._placeholderStyleSheet) && document.head.removeChild(this._placeholderStyleSheet), + delete this._elem, + delete this._placeholderStyleSheet + }, + _showDom: function() { + this._updateMaxLength(), + this._updateInputType(), + this._updateStyleSheet(), + this._elem.style.display = "", + this._delegate._hideLabels(), + cc.sys.isMobile && this._showDomOnMobile() + }, + _hideDom: function() { + this._elem.style.display = "none", + this._delegate._showLabels(), + cc.sys.isMobile && this._hideDomOnMobile() + }, + _showDomOnMobile: function() { + cc.sys.os === cc.sys.OS_ANDROID && (y && (cc.view.enableAutoFullScreen(!1), + cc.screen.exitFullScreen()), + v && cc.view.resizeWithBrowserSize(!1), + this._adjustWindowScroll()) + }, + _hideDomOnMobile: function() { + cc.sys.os === cc.sys.OS_ANDROID && (v && cc.view.resizeWithBrowserSize(!0), + setTimeout((function() { + m || y && cc.view.enableAutoFullScreen(!0) + } + ), 800)), + this._scrollBackWindow() + }, + _adjustWindowScroll: function() { + var t = this; + setTimeout((function() { + window.scrollY < 100 && t._elem.scrollIntoView({ + block: "start", + inline: "nearest", + behavior: "smooth" + }) + } + ), 800) + }, + _scrollBackWindow: function() { + setTimeout((function() { + var t = cc.sys; + t.browserType !== t.BROWSER_TYPE_WECHAT || t.os !== t.OS_IOS ? window.scrollTo(0, 0) : window.top && window.top.scrollTo(0, 0) + } + ), 800) + }, + _updateCameraMatrix: function() { + var t = this._delegate.node; + t.getWorldMatrix(this._worldMat); + var e = this._worldMat + , n = t._contentSize + , r = t._anchorPoint; + p.x = -r.x * n.width, + p.y = -r.y * n.height, + i.default.transform(e, e, p); + var s = cc.Camera.findCamera(t); + return !!s && (s.getWorldToScreenMatrix2D(this._cameraMat), + i.default.mul(this._cameraMat, this._cameraMat, e), + !0) + }, + _updateMatrix: function() { + if (this._updateCameraMatrix()) { + var t = this._cameraMat.m + , e = this._delegate.node + , i = cc.view; + if (this._m00 !== t[0] || this._m01 !== t[1] || this._m04 !== t[4] || this._m05 !== t[5] || this._m12 !== t[12] || this._m13 !== t[13] || this._w !== e._contentSize.width || this._h !== e._contentSize.height || !this._cacheViewportRect.equals(i._viewportRect)) { + this._m00 = t[0], + this._m01 = t[1], + this._m04 = t[4], + this._m05 = t[5], + this._m12 = t[12], + this._m13 = t[13], + this._w = e._contentSize.width, + this._h = e._contentSize.height, + this._cacheViewportRect.set(i._viewportRect); + var n = i._scaleX + , r = i._scaleY + , s = i._viewportRect + , a = i._devicePixelRatio; + n /= a, + r /= a; + var o = cc.game.container + , l = t[0] * n + , h = t[1] + , c = t[4] + , u = t[5] * r + , _ = o && o.style.paddingLeft && parseInt(o.style.paddingLeft); + _ += s.x / a; + var d = o && o.style.paddingBottom && parseInt(o.style.paddingBottom); + d += s.y / a; + var p = t[12] * n + _ + , m = t[13] * r + d; + f.zoomInvalid && (this.setSize(e.width * l, e.height * u), + l = 1, + u = 1); + var y = this._elem + , v = "matrix(" + l + "," + -h + "," + -c + "," + u + "," + p + "," + -m + ")"; + y.style.transform = v, + y.style["-webkit-transform"] = v, + y.style["transform-origin"] = "0px 100% 0px", + y.style["-webkit-transform-origin"] = "0px 100% 0px" + } + } + }, + _updateInputType: function() { + var t = this._delegate + , e = t.inputMode + , i = t.inputFlag + , n = t.returnType + , r = this._elem; + if (this._inputMode !== e || this._inputFlag !== i || this._returnType !== n) { + if (this._inputMode = e, + this._inputFlag = i, + this._returnType = n, + this._isTextArea) { + var s = "none"; + return i === u.INITIAL_CAPS_ALL_CHARACTERS ? s = "uppercase" : i === u.INITIAL_CAPS_WORD && (s = "capitalize"), + void (r.style.textTransform = s) + } + if (i === u.PASSWORD) + return r.type = "password", + void (r.style.textTransform = "none"); + var a = r.type; + e === c.EMAIL_ADDR ? a = "email" : e === c.NUMERIC || e === c.DECIMAL ? a = "number" : e === c.PHONE_NUMBER ? (a = "number", + r.pattern = "[0-9]*") : e === c.URL ? a = "url" : (a = "text", + n === _.SEARCH && (a = "search")), + r.type = a; + var o = "none"; + i === u.INITIAL_CAPS_ALL_CHARACTERS ? o = "uppercase" : i === u.INITIAL_CAPS_WORD && (o = "capitalize"), + r.style.textTransform = o + } + }, + _updateMaxLength: function() { + var t = this._delegate.maxLength; + t < 0 && (t = 65535), + this._elem.maxLength = t + }, + _initStyleSheet: function() { + var t = this._elem; + t.style.display = "none", + t.style.border = 0, + t.style.background = "transparent", + t.style.width = "100%", + t.style.height = "100%", + t.style.active = 0, + t.style.outline = "medium", + t.style.padding = "0", + t.style.textTransform = "none", + t.style.position = "absolute", + t.style.bottom = "0px", + t.style.left = "2px", + t.className = "cocosEditBox", + t.id = this._domId, + this._isTextArea ? (t.style.resize = "none", + t.style.overflow_y = "scroll") : (t.type = "text", + t.style["-moz-appearance"] = "textfield"), + this._placeholderStyleSheet = document.createElement("style") + }, + _updateStyleSheet: function() { + var t = this._delegate + , e = this._elem; + e.value = t.string, + e.placeholder = t.placeholder, + this._updateTextLabel(t.textLabel), + this._updatePlaceholderLabel(t.placeholderLabel) + }, + _updateTextLabel: function(t) { + if (t) { + var e = t.font; + e = !e || e instanceof cc.BitmapFont ? t.fontFamily : e._fontFamily; + var i = t.fontSize * t.node.scaleY; + if (this._textLabelFont !== e || this._textLabelFontSize !== i || this._textLabelFontColor !== t.fontColor || this._textLabelAlign !== t.horizontalAlign) { + this._textLabelFont = e, + this._textLabelFontSize = i, + this._textLabelFontColor = t.fontColor, + this._textLabelAlign = t.horizontalAlign; + var n = this._elem; + switch (n.style.fontSize = i + "px", + n.style.color = t.node.color.toCSS(), + n.style.fontFamily = e, + t.horizontalAlign) { + case a.HorizontalAlign.LEFT: + n.style.textAlign = "left"; + break; + case a.HorizontalAlign.CENTER: + n.style.textAlign = "center"; + break; + case a.HorizontalAlign.RIGHT: + n.style.textAlign = "right" + } + } + } + }, + _updatePlaceholderLabel: function(t) { + if (t) { + var e = t.font; + e = !e || e instanceof cc.BitmapFont ? t.fontFamily : t.font._fontFamily; + var i = t.fontSize * t.node.scaleY; + if (this._placeholderLabelFont !== e || this._placeholderLabelFontSize !== i || this._placeholderLabelFontColor !== t.fontColor || this._placeholderLabelAlign !== t.horizontalAlign || this._placeholderLineHeight !== t.fontSize) { + this._placeholderLabelFont = e, + this._placeholderLabelFontSize = i, + this._placeholderLabelFontColor = t.fontColor, + this._placeholderLabelAlign = t.horizontalAlign, + this._placeholderLineHeight = t.fontSize; + var n, r = this._placeholderStyleSheet, s = t.node.color.toCSS(), o = t.fontSize; + switch (t.horizontalAlign) { + case a.HorizontalAlign.LEFT: + n = "left"; + break; + case a.HorizontalAlign.CENTER: + n = "center"; + break; + case a.HorizontalAlign.RIGHT: + n = "right" + } + r.innerHTML = "#" + this._domId + "::-webkit-input-placeholder,#" + this._domId + "::-moz-placeholder,#" + this._domId + ":-ms-input-placeholder{text-transform: initial; font-family: " + e + "; font-size: " + i + "px; color: " + s + "; line-height: " + o + "px; text-align: " + n + ";}", + cc.sys.browserType === cc.sys.BROWSER_TYPE_EDGE && (r.innerHTML += "#" + this._domId + "::-ms-clear{display: none;}") + } + } + }, + _registerEventListeners: function() { + var t = this + , e = this._elem + , i = !1 + , n = this._eventListeners; + n.compositionStart = function() { + i = !0 + } + , + n.compositionEnd = function() { + i = !1, + t._delegate.editBoxTextChanged(e.value) + } + , + n.onInput = function() { + if (!i) { + var n = t._delegate.maxLength; + n >= 0 && (e.value = e.value.slice(0, n)), + t._delegate.editBoxTextChanged(e.value) + } + } + , + n.onClick = function() { + t._editing && cc.sys.isMobile && t._adjustWindowScroll() + } + , + n.onKeydown = function(i) { + i.keyCode === r.KEY.enter ? (i.stopPropagation(), + t._delegate.editBoxEditingReturn(), + t._isTextArea || e.blur()) : i.keyCode === r.KEY.tab && (i.stopPropagation(), + i.preventDefault(), + o.next(t)) + } + , + n.onBlur = function() { + cc.sys.isMobile && i && n.compositionEnd(), + t._editing = !1, + m = null, + t._hideDom(), + t._delegate.editBoxEditingDidEnded() + } + , + e.addEventListener("compositionstart", n.compositionStart), + e.addEventListener("compositionend", n.compositionEnd), + e.addEventListener("input", n.onInput), + e.addEventListener("keydown", n.onKeydown), + e.addEventListener("blur", n.onBlur), + e.addEventListener("touchstart", n.onClick) + }, + _removeEventListeners: function() { + var t = this._elem + , e = this._eventListeners; + t.removeEventListener("compositionstart", e.compositionStart), + t.removeEventListener("compositionend", e.compositionEnd), + t.removeEventListener("input", e.onInput), + t.removeEventListener("keydown", e.onKeydown), + t.removeEventListener("blur", e.onBlur), + t.removeEventListener("touchstart", e.onClick), + e.compositionStart = null, + e.compositionEnd = null, + e.onInput = null, + e.onKeydown = null, + e.onBlur = null, + e.onClick = null + } + }) + } + ), { + "../../platform/CCMacro": 198, + "../../platform/utils": 217, + "../../value-types/mat4": 284, + "../CCLabel": 107, + "./tabIndexUtil": 130, + "./types": 131 + }], + 130: [(function(t, e) { + "use strict"; + e.exports = { + _tabIndexList: [], + add: function(t) { + var e = this._tabIndexList; + -1 === e.indexOf(t) && e.push(t) + }, + remove: function(t) { + var e = this._tabIndexList + , i = e.indexOf(t); + -1 !== i && e.splice(i, 1) + }, + resort: function() { + this._tabIndexList.sort((function(t, e) { + return t._delegate._tabIndex - e._delegate._tabIndex + } + )) + }, + next: function(t) { + var e = this._tabIndexList + , i = e.indexOf(t); + if (t.setFocus(!1), + -1 !== i) { + var n = e[i + 1]; + n && n._delegate._tabIndex >= 0 && n.setFocus(!0) + } + } + } + } + ), {}], + 131: [(function(t, e) { + "use strict"; + var i = cc.Enum({ + DEFAULT: 0, + DONE: 1, + SEND: 2, + SEARCH: 3, + GO: 4, + NEXT: 5 + }) + , n = cc.Enum({ + ANY: 0, + EMAIL_ADDR: 1, + NUMERIC: 2, + PHONE_NUMBER: 3, + URL: 4, + DECIMAL: 5, + SINGLE_LINE: 6 + }) + , r = cc.Enum({ + PASSWORD: 0, + SENSITIVE: 1, + INITIAL_CAPS_WORD: 2, + INITIAL_CAPS_SENTENCE: 3, + INITIAL_CAPS_ALL_CHARACTERS: 4, + DEFAULT: 5 + }); + e.exports = { + KeyboardReturnType: i, + InputMode: n, + InputFlag: r + } + } + ), {}], + 132: [(function(t, e) { + "use strict"; + t("./CCComponent"), + t("./CCComponentEventHandler"), + t("./missing-script"); + var i = t("./SubContextView"); + i || (i = cc.Class({ + name: "cc.SubContextView", + extends: cc.Component + }), + cc.SubContextView = cc.WXSubContextView = cc.SwanSubContextView = i); + var n = [t("./CCSprite"), t("./CCWidget"), t("./CCCanvas"), t("./CCAudioSource"), t("./CCAnimation"), t("./CCButton"), t("./CCLabel"), t("./CCProgressBar"), t("./CCMask"), t("./CCScrollBar"), t("./CCScrollView"), t("./CCPageViewIndicator"), t("./CCPageView"), t("./CCSlider"), t("./CCLayout"), t("./editbox/CCEditBox"), t("./CCLabelOutline"), t("./CCLabelShadow"), t("./CCRichText"), t("./CCToggleContainer"), t("./CCToggleGroup"), t("./CCToggle"), t("./CCBlockInputEvents"), t("./CCMotionStreak"), t("./CCSafeArea"), i]; + e.exports = n + } + ), { + "./CCAnimation": 100, + "./CCAudioSource": 101, + "./CCBlockInputEvents": 102, + "./CCButton": 103, + "./CCCanvas": 104, + "./CCComponent": 105, + "./CCComponentEventHandler": 106, + "./CCLabel": 107, + "./CCLabelOutline": 108, + "./CCLabelShadow": 109, + "./CCLayout": 110, + "./CCMask": 111, + "./CCMotionStreak": void 0, + "./CCPageView": 112, + "./CCPageViewIndicator": 113, + "./CCProgressBar": 114, + "./CCRichText": 116, + "./CCSafeArea": void 0, + "./CCScrollBar": 117, + "./CCScrollView": 118, + "./CCSlider": 119, + "./CCSprite": 120, + "./CCToggle": 122, + "./CCToggleContainer": 123, + "./CCToggleGroup": 124, + "./CCWidget": 126, + "./SubContextView": void 0, + "./editbox/CCEditBox": 127, + "./missing-script": 133 + }], + 133: [(function(t, e) { + "use strict"; + var i = cc.js + , n = cc.Class({ + name: "cc.MissingScript", + extends: cc.Component, + editor: { + inspector: "packages://inspector/inspectors/comps/missing-script.js" + }, + properties: { + compiled: { + default: !1, + serializable: !1 + }, + _$erialized: { + default: null, + visible: !1, + editorOnly: !0 + } + }, + ctor: !1, + statics: { + safeFindClass: function(t) { + return i._getClassById(t) || (cc.deserialize.reportMissingClass(t), + n) + } + }, + onLoad: function() { + cc.warnID(4600, this.node.name) + } + }); + cc._MissingScript = e.exports = n + } + ), {}], + 134: [(function(t, e) { + "use strict"; + var i = cc.js; + t("../event/event"); + var n = function(t, e) { + cc.Event.call(this, cc.Event.MOUSE, e), + this._eventType = t, + this._button = 0, + this._x = 0, + this._y = 0, + this._prevX = 0, + this._prevY = 0, + this._scrollX = 0, + this._scrollY = 0 + }; + i.extend(n, cc.Event); + var r = n.prototype; + r.setScrollData = function(t, e) { + this._scrollX = t, + this._scrollY = e + } + , + r.getScrollX = function() { + return this._scrollX + } + , + r.getScrollY = function() { + return this._scrollY + } + , + r.setLocation = function(t, e) { + this._x = t, + this._y = e + } + , + r.getLocation = function() { + return cc.v2(this._x, this._y) + } + , + r.getLocationInView = function() { + return cc.v2(this._x, cc.view._designResolutionSize.height - this._y) + } + , + r._setPrevCursor = function(t, e) { + this._prevX = t, + this._prevY = e + } + , + r.getPreviousLocation = function() { + return cc.v2(this._prevX, this._prevY) + } + , + r.getDelta = function() { + return cc.v2(this._x - this._prevX, this._y - this._prevY) + } + , + r.getDeltaX = function() { + return this._x - this._prevX + } + , + r.getDeltaY = function() { + return this._y - this._prevY + } + , + r.setButton = function(t) { + this._button = t + } + , + r.getButton = function() { + return this._button + } + , + r.getLocationX = function() { + return this._x + } + , + r.getLocationY = function() { + return this._y + } + , + n.NONE = 0, + n.DOWN = 1, + n.UP = 2, + n.MOVE = 3, + n.SCROLL = 4, + n.BUTTON_LEFT = 0, + n.BUTTON_RIGHT = 2, + n.BUTTON_MIDDLE = 1, + n.BUTTON_4 = 3, + n.BUTTON_5 = 4, + n.BUTTON_6 = 5, + n.BUTTON_7 = 6, + n.BUTTON_8 = 7; + var s = function(t, e) { + cc.Event.call(this, cc.Event.TOUCH, e), + this._eventCode = 0, + this._touches = t || [], + this.touch = null, + this.currentTouch = null + }; + i.extend(s, cc.Event), + (r = s.prototype).getEventCode = function() { + return this._eventCode + } + , + r.getTouches = function() { + return this._touches + } + , + r._setEventCode = function(t) { + this._eventCode = t + } + , + r._setTouches = function(t) { + this._touches = t + } + , + r.setLocation = function(t, e) { + this.touch && this.touch.setTouchInfo(this.touch.getID(), t, e) + } + , + r.getLocation = function() { + return this.touch ? this.touch.getLocation() : cc.v2() + } + , + r.getLocationInView = function() { + return this.touch ? this.touch.getLocationInView() : cc.v2() + } + , + r.getPreviousLocation = function() { + return this.touch ? this.touch.getPreviousLocation() : cc.v2() + } + , + r.getStartLocation = function() { + return this.touch ? this.touch.getStartLocation() : cc.v2() + } + , + r.getID = function() { + return this.touch ? this.touch.getID() : null + } + , + r.getDelta = function() { + return this.touch ? this.touch.getDelta() : cc.v2() + } + , + r.getDeltaX = function() { + return this.touch ? this.touch.getDelta().x : 0 + } + , + r.getDeltaY = function() { + return this.touch ? this.touch.getDelta().y : 0 + } + , + r.getLocationX = function() { + return this.touch ? this.touch.getLocationX() : 0 + } + , + r.getLocationY = function() { + return this.touch ? this.touch.getLocationY() : 0 + } + , + s.MAX_TOUCHES = 5, + s.BEGAN = 0, + s.MOVED = 1, + s.ENDED = 2, + s.CANCELED = 3; + var a = function(t, e) { + cc.Event.call(this, cc.Event.ACCELERATION, e), + this.acc = t + }; + i.extend(a, cc.Event); + var o = function(t, e, i) { + cc.Event.call(this, cc.Event.KEYBOARD, i), + this.keyCode = t, + this.isPressed = e + }; + i.extend(o, cc.Event), + cc.Event.EventMouse = n, + cc.Event.EventTouch = s, + cc.Event.EventAcceleration = a, + cc.Event.EventKeyboard = o, + e.exports = cc.Event + } + ), { + "../event/event": 141 + }], + 135: [(function(t, e) { + "use strict"; + var i = t("../platform/js"); + cc.EventListener = function(t, e, i) { + this._onEvent = i, + this._type = t || 0, + this._listenerID = e || "", + this._registered = !1, + this._fixedPriority = 0, + this._node = null, + this._target = null, + this._paused = !0, + this._isEnabled = !0 + } + , + cc.EventListener.prototype = { + constructor: cc.EventListener, + _setPaused: function(t) { + this._paused = t + }, + _isPaused: function() { + return this._paused + }, + _setRegistered: function(t) { + this._registered = t + }, + _isRegistered: function() { + return this._registered + }, + _getType: function() { + return this._type + }, + _getListenerID: function() { + return this._listenerID + }, + _setFixedPriority: function(t) { + this._fixedPriority = t + }, + _getFixedPriority: function() { + return this._fixedPriority + }, + _setSceneGraphPriority: function(t) { + this._target = t, + this._node = t + }, + _getSceneGraphPriority: function() { + return this._node + }, + checkAvailable: function() { + return null !== this._onEvent + }, + clone: function() { + return null + }, + setEnabled: function(t) { + this._isEnabled = t + }, + isEnabled: function() { + return this._isEnabled + }, + retain: function() {}, + release: function() {} + }, + cc.EventListener.UNKNOWN = 0, + cc.EventListener.TOUCH_ONE_BY_ONE = 1, + cc.EventListener.TOUCH_ALL_AT_ONCE = 2, + cc.EventListener.KEYBOARD = 3, + cc.EventListener.MOUSE = 4, + cc.EventListener.ACCELERATION = 6, + cc.EventListener.CUSTOM = 8; + var n = cc.EventListener.ListenerID = { + MOUSE: "__cc_mouse", + TOUCH_ONE_BY_ONE: "__cc_touch_one_by_one", + TOUCH_ALL_AT_ONCE: "__cc_touch_all_at_once", + KEYBOARD: "__cc_keyboard", + ACCELERATION: "__cc_acceleration" + } + , r = function(t, e) { + this._onCustomEvent = e, + cc.EventListener.call(this, cc.EventListener.CUSTOM, t, this._callback) + }; + i.extend(r, cc.EventListener), + i.mixin(r.prototype, { + _onCustomEvent: null, + _callback: function(t) { + null !== this._onCustomEvent && this._onCustomEvent(t) + }, + checkAvailable: function() { + return cc.EventListener.prototype.checkAvailable.call(this) && null !== this._onCustomEvent + }, + clone: function() { + return new r(this._listenerID,this._onCustomEvent) + } + }); + var s = function() { + cc.EventListener.call(this, cc.EventListener.MOUSE, n.MOUSE, this._callback) + }; + i.extend(s, cc.EventListener), + i.mixin(s.prototype, { + onMouseDown: null, + onMouseUp: null, + onMouseMove: null, + onMouseScroll: null, + _callback: function(t) { + var e = cc.Event.EventMouse; + switch (t._eventType) { + case e.DOWN: + this.onMouseDown && this.onMouseDown(t); + break; + case e.UP: + this.onMouseUp && this.onMouseUp(t); + break; + case e.MOVE: + this.onMouseMove && this.onMouseMove(t); + break; + case e.SCROLL: + this.onMouseScroll && this.onMouseScroll(t) + } + }, + clone: function() { + var t = new s; + return t.onMouseDown = this.onMouseDown, + t.onMouseUp = this.onMouseUp, + t.onMouseMove = this.onMouseMove, + t.onMouseScroll = this.onMouseScroll, + t + }, + checkAvailable: function() { + return !0 + } + }); + var a = function() { + cc.EventListener.call(this, cc.EventListener.TOUCH_ONE_BY_ONE, n.TOUCH_ONE_BY_ONE, null), + this._claimedTouches = [] + }; + i.extend(a, cc.EventListener), + i.mixin(a.prototype, { + constructor: a, + _claimedTouches: null, + swallowTouches: !1, + onTouchBegan: null, + onTouchMoved: null, + onTouchEnded: null, + onTouchCancelled: null, + setSwallowTouches: function(t) { + this.swallowTouches = t + }, + isSwallowTouches: function() { + return this.swallowTouches + }, + clone: function() { + var t = new a; + return t.onTouchBegan = this.onTouchBegan, + t.onTouchMoved = this.onTouchMoved, + t.onTouchEnded = this.onTouchEnded, + t.onTouchCancelled = this.onTouchCancelled, + t.swallowTouches = this.swallowTouches, + t + }, + checkAvailable: function() { + return !!this.onTouchBegan || (cc.logID(1801), + !1) + } + }); + var o = function() { + cc.EventListener.call(this, cc.EventListener.TOUCH_ALL_AT_ONCE, n.TOUCH_ALL_AT_ONCE, null) + }; + i.extend(o, cc.EventListener), + i.mixin(o.prototype, { + constructor: o, + onTouchesBegan: null, + onTouchesMoved: null, + onTouchesEnded: null, + onTouchesCancelled: null, + clone: function() { + var t = new o; + return t.onTouchesBegan = this.onTouchesBegan, + t.onTouchesMoved = this.onTouchesMoved, + t.onTouchesEnded = this.onTouchesEnded, + t.onTouchesCancelled = this.onTouchesCancelled, + t + }, + checkAvailable: function() { + return null !== this.onTouchesBegan || null !== this.onTouchesMoved || null !== this.onTouchesEnded || null !== this.onTouchesCancelled || (cc.logID(1802), + !1) + } + }); + var l = function(t) { + this._onAccelerationEvent = t, + cc.EventListener.call(this, cc.EventListener.ACCELERATION, n.ACCELERATION, this._callback) + }; + i.extend(l, cc.EventListener), + i.mixin(l.prototype, { + constructor: l, + _onAccelerationEvent: null, + _callback: function(t) { + this._onAccelerationEvent(t.acc, t) + }, + checkAvailable: function() { + return cc.assertID(this._onAccelerationEvent, 1803), + !0 + }, + clone: function() { + return new l(this._onAccelerationEvent) + } + }); + var h = function() { + cc.EventListener.call(this, cc.EventListener.KEYBOARD, n.KEYBOARD, this._callback) + }; + i.extend(h, cc.EventListener), + i.mixin(h.prototype, { + constructor: h, + onKeyPressed: null, + onKeyReleased: null, + _callback: function(t) { + t.isPressed ? this.onKeyPressed && this.onKeyPressed(t.keyCode, t) : this.onKeyReleased && this.onKeyReleased(t.keyCode, t) + }, + clone: function() { + var t = new h; + return t.onKeyPressed = this.onKeyPressed, + t.onKeyReleased = this.onKeyReleased, + t + }, + checkAvailable: function() { + return null !== this.onKeyPressed || null !== this.onKeyReleased || (cc.logID(1800), + !1) + } + }), + cc.EventListener.create = function(t) { + cc.assertID(t && t.event, 1900); + var e = t.event; + delete t.event; + var i = null; + for (var n in e === cc.EventListener.TOUCH_ONE_BY_ONE ? i = new a : e === cc.EventListener.TOUCH_ALL_AT_ONCE ? i = new o : e === cc.EventListener.MOUSE ? i = new s : e === cc.EventListener.CUSTOM ? (i = new r(t.eventName,t.callback), + delete t.eventName, + delete t.callback) : e === cc.EventListener.KEYBOARD ? i = new h : e === cc.EventListener.ACCELERATION && (i = new l(t.callback), + delete t.callback), + t) + i[n] = t[n]; + return i + } + , + e.exports = cc.EventListener + } + ), { + "../platform/js": 214 + }], + 136: [(function(t, e) { + "use strict"; + var i = t("../platform/js"); + t("./CCEventListener"); + var n = cc.EventListener.ListenerID + , r = function() { + this._fixedListeners = [], + this._sceneGraphListeners = [], + this.gt0Index = 0 + }; + r.prototype = { + constructor: r, + size: function() { + return this._fixedListeners.length + this._sceneGraphListeners.length + }, + empty: function() { + return 0 === this._fixedListeners.length && 0 === this._sceneGraphListeners.length + }, + push: function(t) { + 0 === t._getFixedPriority() ? this._sceneGraphListeners.push(t) : this._fixedListeners.push(t) + }, + clearSceneGraphListeners: function() { + this._sceneGraphListeners.length = 0 + }, + clearFixedListeners: function() { + this._fixedListeners.length = 0 + }, + clear: function() { + this._sceneGraphListeners.length = 0, + this._fixedListeners.length = 0 + }, + getFixedPriorityListeners: function() { + return this._fixedListeners + }, + getSceneGraphPriorityListeners: function() { + return this._sceneGraphListeners + } + }; + var s = function(t) { + var e = cc.Event + , i = t.type; + return i === e.ACCELERATION ? n.ACCELERATION : i === e.KEYBOARD ? n.KEYBOARD : i.startsWith(e.MOUSE) ? n.MOUSE : (i.startsWith(e.TOUCH) && cc.logID(2e3), + "") + } + , a = { + DIRTY_NONE: 0, + DIRTY_FIXED_PRIORITY: 1, + DIRTY_SCENE_GRAPH_PRIORITY: 2, + DIRTY_ALL: 3, + _listenersMap: {}, + _priorityDirtyFlagMap: {}, + _nodeListenersMap: {}, + _toAddedListeners: [], + _toRemovedListeners: [], + _dirtyListeners: {}, + _inDispatch: 0, + _isEnabled: !1, + _currentTouch: null, + _currentTouchListener: null, + _internalCustomListenerIDs: [], + _setDirtyForNode: function(t) { + var e = this._nodeListenersMap[t._id]; + if (void 0 !== e) + for (var i = 0, n = e.length; i < n; i++) { + var r = e[i]._getListenerID(); + null == this._dirtyListeners[r] && (this._dirtyListeners[r] = !0) + } + if (t.childrenCount > 0) + for (var s = t._children, a = 0, o = s.length; a < o; a++) + this._setDirtyForNode(s[a]) + }, + pauseTarget: function(t, e) { + if (t instanceof cc._BaseNode) { + var i, n, r = this._nodeListenersMap[t._id]; + if (r) + for (i = 0, + n = r.length; i < n; i++) + r[i]._setPaused(!0); + if (!0 === e) { + var s = t._children; + for (i = 0, + n = s ? s.length : 0; i < n; i++) + this.pauseTarget(s[i], !0) + } + } else + cc.warnID(3506) + }, + resumeTarget: function(t, e) { + if (t instanceof cc._BaseNode) { + var i, n, r = this._nodeListenersMap[t._id]; + if (r) + for (i = 0, + n = r.length; i < n; i++) + r[i]._setPaused(!1); + if (this._setDirtyForNode(t), + !0 === e) { + var s = t._children; + for (i = 0, + n = s ? s.length : 0; i < n; i++) + this.resumeTarget(s[i], !0) + } + } else + cc.warnID(3506) + }, + _addListener: function(t) { + 0 === this._inDispatch ? this._forceAddEventListener(t) : this._toAddedListeners.push(t) + }, + _forceAddEventListener: function(t) { + var e = t._getListenerID() + , i = this._listenersMap[e]; + if (i || (i = new r, + this._listenersMap[e] = i), + i.push(t), + 0 === t._getFixedPriority()) { + this._setDirty(e, this.DIRTY_SCENE_GRAPH_PRIORITY); + var n = t._getSceneGraphPriority(); + null === n && cc.logID(3507), + this._associateNodeAndEventListener(n, t), + n.activeInHierarchy && this.resumeTarget(n) + } else + this._setDirty(e, this.DIRTY_FIXED_PRIORITY) + }, + _getListeners: function(t) { + return this._listenersMap[t] + }, + _updateDirtyFlagForSceneGraph: function() { + var t = this._dirtyListeners; + for (var e in t) + this._setDirty(e, this.DIRTY_SCENE_GRAPH_PRIORITY); + this._dirtyListeners = {} + }, + _removeAllListenersInVector: function(t) { + if (t) + for (var e, i = t.length - 1; i >= 0; i--) + (e = t[i])._setRegistered(!1), + null != e._getSceneGraphPriority() && (this._dissociateNodeAndEventListener(e._getSceneGraphPriority(), e), + e._setSceneGraphPriority(null)), + 0 === this._inDispatch && cc.js.array.removeAt(t, i) + }, + _removeListenersForListenerID: function(t) { + var e, i = this._listenersMap[t]; + if (i) { + var n = i.getFixedPriorityListeners() + , r = i.getSceneGraphPriorityListeners(); + this._removeAllListenersInVector(r), + this._removeAllListenersInVector(n), + delete this._priorityDirtyFlagMap[t], + this._inDispatch || (i.clear(), + delete this._listenersMap[t]) + } + var s, a = this._toAddedListeners; + for (e = a.length - 1; e >= 0; e--) + (s = a[e]) && s._getListenerID() === t && cc.js.array.removeAt(a, e) + }, + _sortEventListeners: function(t) { + var e = this.DIRTY_NONE + , i = this._priorityDirtyFlagMap; + i[t] && (e = i[t]), + e !== this.DIRTY_NONE && (i[t] = this.DIRTY_NONE, + e & this.DIRTY_FIXED_PRIORITY && this._sortListenersOfFixedPriority(t), + e & this.DIRTY_SCENE_GRAPH_PRIORITY && cc.director.getScene() && this._sortListenersOfSceneGraphPriority(t)) + }, + _sortListenersOfSceneGraphPriority: function(t) { + var e = this._getListeners(t); + if (e) { + var i = e.getSceneGraphPriorityListeners(); + i && 0 !== i.length && e.getSceneGraphPriorityListeners().sort(this._sortEventListenersOfSceneGraphPriorityDes) + } + }, + _sortEventListenersOfSceneGraphPriorityDes: function(t, e) { + var i = t._getSceneGraphPriority() + , n = e._getSceneGraphPriority(); + if (!(e && n && n._activeInHierarchy && null !== n._parent)) + return -1; + if (!t || !i || !i._activeInHierarchy || null === i._parent) + return 1; + for (var r = i, s = n, a = !1; r._parent._id !== s._parent._id; ) + r = null === r._parent._parent ? (a = !0) && n : r._parent, + s = null === s._parent._parent ? (a = !0) && i : s._parent; + if (r._id === s._id) { + if (r._id === n._id) + return -1; + if (r._id === i._id) + return 1 + } + return a ? r._localZOrder - s._localZOrder : s._localZOrder - r._localZOrder + }, + _sortListenersOfFixedPriority: function(t) { + var e = this._listenersMap[t]; + if (e) { + var i = e.getFixedPriorityListeners(); + if (i && 0 !== i.length) { + i.sort(this._sortListenersOfFixedPriorityAsc); + for (var n = 0, r = i.length; n < r && !(i[n]._getFixedPriority() >= 0); ) + ++n; + e.gt0Index = n + } + } + }, + _sortListenersOfFixedPriorityAsc: function(t, e) { + return t._getFixedPriority() - e._getFixedPriority() + }, + _onUpdateListeners: function(t) { + var e, i, n, r = t.getFixedPriorityListeners(), s = t.getSceneGraphPriorityListeners(), a = this._toRemovedListeners; + if (s) + for (e = s.length - 1; e >= 0; e--) + (i = s[e])._isRegistered() || (cc.js.array.removeAt(s, e), + -1 !== (n = a.indexOf(i)) && a.splice(n, 1)); + if (r) + for (e = r.length - 1; e >= 0; e--) + (i = r[e])._isRegistered() || (cc.js.array.removeAt(r, e), + -1 !== (n = a.indexOf(i)) && a.splice(n, 1)); + s && 0 === s.length && t.clearSceneGraphListeners(), + r && 0 === r.length && t.clearFixedListeners() + }, + frameUpdateListeners: function() { + var t = this._listenersMap + , e = this._priorityDirtyFlagMap; + for (var i in t) + t[i].empty() && (delete e[i], + delete t[i]); + var n = this._toAddedListeners; + if (0 !== n.length) { + for (var r = 0, s = n.length; r < s; r++) + this._forceAddEventListener(n[r]); + n.length = 0 + } + 0 !== this._toRemovedListeners.length && this._cleanToRemovedListeners() + }, + _updateTouchListeners: function() { + var t = this._inDispatch; + if (cc.assertID(t > 0, 3508), + !(t > 1)) { + var e; + (e = this._listenersMap[n.TOUCH_ONE_BY_ONE]) && this._onUpdateListeners(e), + (e = this._listenersMap[n.TOUCH_ALL_AT_ONCE]) && this._onUpdateListeners(e), + cc.assertID(1 === t, 3509); + var i = this._toAddedListeners; + if (0 !== i.length) { + for (var r = 0, s = i.length; r < s; r++) + this._forceAddEventListener(i[r]); + this._toAddedListeners.length = 0 + } + 0 !== this._toRemovedListeners.length && this._cleanToRemovedListeners() + } + }, + _cleanToRemovedListeners: function() { + for (var t = this._toRemovedListeners, e = 0; e < t.length; e++) { + var i = t[e] + , n = this._listenersMap[i._getListenerID()]; + if (n) { + var r, s = n.getFixedPriorityListeners(), a = n.getSceneGraphPriorityListeners(); + a && -1 !== (r = a.indexOf(i)) && a.splice(r, 1), + s && -1 !== (r = s.indexOf(i)) && s.splice(r, 1) + } + } + t.length = 0 + }, + _onTouchEventCallback: function(t, e) { + if (!t._isRegistered()) + return !1; + var i = e.event + , n = i.currentTouch; + i.currentTarget = t._node; + var r, s = !1, o = i.getEventCode(), l = cc.Event.EventTouch; + if (o === l.BEGAN) { + if (!cc.macro.ENABLE_MULTI_TOUCH && a._currentTouch) { + var h = a._currentTouchListener._node; + if (h && h.activeInHierarchy) + return !1 + } + t.onTouchBegan && (s = t.onTouchBegan(n, i)) && t._registered && (t._claimedTouches.push(n), + a._currentTouchListener = t, + a._currentTouch = n) + } else if (t._claimedTouches.length > 0 && -1 !== (r = t._claimedTouches.indexOf(n))) { + if (s = !0, + !cc.macro.ENABLE_MULTI_TOUCH && a._currentTouch && a._currentTouch !== n) + return !1; + o === l.MOVED && t.onTouchMoved ? t.onTouchMoved(n, i) : o === l.ENDED ? (t.onTouchEnded && t.onTouchEnded(n, i), + t._registered && t._claimedTouches.splice(r, 1), + a._clearCurTouch()) : o === l.CANCELED && (t.onTouchCancelled && t.onTouchCancelled(n, i), + t._registered && t._claimedTouches.splice(r, 1), + a._clearCurTouch()) + } + return i.isStopped() ? (a._updateTouchListeners(i), + !0) : !(!s || !t.swallowTouches || (e.needsMutableSet && e.touches.splice(n, 1), + 0)) + }, + _dispatchTouchEvent: function(t) { + this._sortEventListeners(n.TOUCH_ONE_BY_ONE), + this._sortEventListeners(n.TOUCH_ALL_AT_ONCE); + var e = this._getListeners(n.TOUCH_ONE_BY_ONE) + , i = this._getListeners(n.TOUCH_ALL_AT_ONCE); + if (null !== e || null !== i) { + var r = t.getTouches() + , s = cc.js.array.copy(r) + , a = { + event: t, + needsMutableSet: e && i, + touches: s, + selTouch: null + }; + if (e) + for (var o = 0; o < r.length; o++) + t.currentTouch = r[o], + t._propagationStopped = t._propagationImmediateStopped = !1, + this._dispatchEventToListeners(e, this._onTouchEventCallback, a); + i && s.length > 0 && (this._dispatchEventToListeners(i, this._onTouchesEventCallback, { + event: t, + touches: s + }), + t.isStopped()) || this._updateTouchListeners(t) + } + }, + _onTouchesEventCallback: function(t, e) { + if (!t._registered) + return !1; + var i = cc.Event.EventTouch + , n = e.event + , r = e.touches + , s = n.getEventCode(); + return n.currentTarget = t._node, + s === i.BEGAN && t.onTouchesBegan ? t.onTouchesBegan(r, n) : s === i.MOVED && t.onTouchesMoved ? t.onTouchesMoved(r, n) : s === i.ENDED && t.onTouchesEnded ? t.onTouchesEnded(r, n) : s === i.CANCELED && t.onTouchesCancelled && t.onTouchesCancelled(r, n), + !!n.isStopped() && (a._updateTouchListeners(n), + !0) + }, + _associateNodeAndEventListener: function(t, e) { + var i = this._nodeListenersMap[t._id]; + i || (i = [], + this._nodeListenersMap[t._id] = i), + i.push(e) + }, + _dissociateNodeAndEventListener: function(t, e) { + var i = this._nodeListenersMap[t._id]; + i && (cc.js.array.remove(i, e), + 0 === i.length && delete this._nodeListenersMap[t._id]) + }, + _dispatchEventToListeners: function(t, e, i) { + var n, r, s = !1, a = t.getFixedPriorityListeners(), o = t.getSceneGraphPriorityListeners(), l = 0; + if (a && 0 !== a.length) + for (; l < t.gt0Index; ++l) + if ((r = a[l]).isEnabled() && !r._isPaused() && r._isRegistered() && e(r, i)) { + s = !0; + break + } + if (o && !s) + for (n = 0; n < o.length; n++) + if ((r = o[n]).isEnabled() && !r._isPaused() && r._isRegistered() && e(r, i)) { + s = !0; + break + } + if (a && !s) + for (; l < a.length; ++l) + if ((r = a[l]).isEnabled() && !r._isPaused() && r._isRegistered() && e(r, i)) { + s = !0; + break + } + }, + _setDirty: function(t, e) { + var i = this._priorityDirtyFlagMap; + null == i[t] ? i[t] = e : i[t] = e | i[t] + }, + _sortNumberAsc: function(t, e) { + return t - e + }, + hasEventListener: function(t) { + return !!this._getListeners(t) + }, + addListener: function(t, e) { + if (cc.assertID(t && e, 3503), + cc.js.isNumber(e) || e instanceof cc._BaseNode) { + if (t instanceof cc.EventListener) { + if (t._isRegistered()) + return void cc.logID(3505) + } else + cc.assertID(!cc.js.isNumber(e), 3504), + t = cc.EventListener.create(t); + if (t.checkAvailable()) { + if (cc.js.isNumber(e)) { + if (0 === e) + return void cc.logID(3500); + t._setSceneGraphPriority(null), + t._setFixedPriority(e), + t._setRegistered(!0), + t._setPaused(!1), + this._addListener(t) + } else + t._setSceneGraphPriority(e), + t._setFixedPriority(0), + t._setRegistered(!0), + this._addListener(t); + return t + } + } else + cc.warnID(3506) + }, + addCustomListener: function(t, e) { + var i = new cc.EventListener.create({ + event: cc.EventListener.CUSTOM, + eventName: t, + callback: e + }); + return this.addListener(i, 1), + i + }, + removeListener: function(t) { + if (null != t) { + var e, i = this._listenersMap; + for (var n in i) { + var r = i[n] + , s = r.getFixedPriorityListeners() + , a = r.getSceneGraphPriorityListeners(); + if ((e = this._removeListenerInVector(a, t)) ? this._setDirty(t._getListenerID(), this.DIRTY_SCENE_GRAPH_PRIORITY) : (e = this._removeListenerInVector(s, t)) && this._setDirty(t._getListenerID(), this.DIRTY_FIXED_PRIORITY), + r.empty() && (delete this._priorityDirtyFlagMap[t._getListenerID()], + delete i[n]), + e) + break + } + if (!e) + for (var o = this._toAddedListeners, l = o.length - 1; l >= 0; l--) { + var h = o[l]; + if (h === t) { + cc.js.array.removeAt(o, l), + h._setRegistered(!1); + break + } + } + this._currentTouchListener === t && this._clearCurTouch() + } + }, + _clearCurTouch: function() { + this._currentTouchListener = null, + this._currentTouch = null + }, + _removeListenerInCallback: function(t, e) { + if (null == t) + return !1; + for (var i = t.length - 1; i >= 0; i--) { + var n = t[i]; + if (n._onCustomEvent === e || n._onEvent === e) + return n._setRegistered(!1), + null != n._getSceneGraphPriority() && (this._dissociateNodeAndEventListener(n._getSceneGraphPriority(), n), + n._setSceneGraphPriority(null)), + 0 === this._inDispatch ? cc.js.array.removeAt(t, i) : this._toRemovedListeners.push(n), + !0 + } + return !1 + }, + _removeListenerInVector: function(t, e) { + if (null == t) + return !1; + for (var i = t.length - 1; i >= 0; i--) { + var n = t[i]; + if (n === e) + return n._setRegistered(!1), + null != n._getSceneGraphPriority() && (this._dissociateNodeAndEventListener(n._getSceneGraphPriority(), n), + n._setSceneGraphPriority(null)), + 0 === this._inDispatch ? cc.js.array.removeAt(t, i) : this._toRemovedListeners.push(n), + !0 + } + return !1 + }, + removeListeners: function(t, e) { + var i = this; + if (cc.js.isNumber(t) || t instanceof cc._BaseNode) + if (void 0 !== t._id) { + var r, s = i._nodeListenersMap[t._id]; + if (s) { + var a = cc.js.array.copy(s); + for (r = 0; r < a.length; r++) + i.removeListener(a[r]); + delete i._nodeListenersMap[t._id] + } + var o = i._toAddedListeners; + for (r = 0; r < o.length; ) { + var l = o[r]; + l._getSceneGraphPriority() === t ? (l._setSceneGraphPriority(null), + l._setRegistered(!1), + o.splice(r, 1)) : ++r + } + if (!0 === e) { + var h, c = t.children; + for (r = 0, + h = c.length; r < h; r++) + i.removeListeners(c[r], !0) + } + } else + t === cc.EventListener.TOUCH_ONE_BY_ONE ? i._removeListenersForListenerID(n.TOUCH_ONE_BY_ONE) : t === cc.EventListener.TOUCH_ALL_AT_ONCE ? i._removeListenersForListenerID(n.TOUCH_ALL_AT_ONCE) : t === cc.EventListener.MOUSE ? i._removeListenersForListenerID(n.MOUSE) : t === cc.EventListener.ACCELERATION ? i._removeListenersForListenerID(n.ACCELERATION) : t === cc.EventListener.KEYBOARD ? i._removeListenersForListenerID(n.KEYBOARD) : cc.logID(3501); + else + cc.warnID(3506) + }, + removeCustomListeners: function(t) { + this._removeListenersForListenerID(t) + }, + removeAllListeners: function() { + var t = this._listenersMap + , e = this._internalCustomListenerIDs; + for (var i in t) + -1 === e.indexOf(i) && this._removeListenersForListenerID(i) + }, + setPriority: function(t, e) { + if (null != t) { + var i = this._listenersMap; + for (var n in i) { + var r = i[n].getFixedPriorityListeners(); + if (r && -1 !== r.indexOf(t)) + return null != t._getSceneGraphPriority() && cc.logID(3502), + void (t._getFixedPriority() !== e && (t._setFixedPriority(e), + this._setDirty(t._getListenerID(), this.DIRTY_FIXED_PRIORITY))) + } + } + }, + setEnabled: function(t) { + this._isEnabled = t + }, + isEnabled: function() { + return this._isEnabled + }, + dispatchEvent: function(t) { + if (this._isEnabled) + if (this._updateDirtyFlagForSceneGraph(), + this._inDispatch++, + t && t.getType) { + if (t.getType().startsWith(cc.Event.TOUCH)) + return this._dispatchTouchEvent(t), + void this._inDispatch--; + var e = s(t); + this._sortEventListeners(e); + var i = this._listenersMap[e]; + null != i && (this._dispatchEventToListeners(i, this._onListenerCallback, t), + this._onUpdateListeners(i)), + this._inDispatch-- + } else + cc.errorID(3511) + }, + _onListenerCallback: function(t, e) { + return e.currentTarget = t._target, + t._onEvent(e), + e.isStopped() + }, + dispatchCustomEvent: function(t, e) { + var i = new cc.Event.EventCustom(t); + i.setUserData(e), + this.dispatchEvent(i) + } + }; + i.get(cc, "eventManager", (function() { + return cc.errorID(1405, "cc.eventManager", "cc.EventTarget or cc.systemEvent"), + a + } + )), + e.exports = cc.internal.eventManager = a + } + ), { + "../platform/js": 214, + "./CCEventListener": 135 + }], + 137: [(function() { + "use strict"; + cc.Touch = function(t, e, i) { + this._lastModified = 0, + this.setTouchInfo(i, t, e) + } + , + cc.Touch.prototype = { + constructor: cc.Touch, + getLocation: function() { + return cc.v2(this._point.x, this._point.y) + }, + getLocationX: function() { + return this._point.x + }, + getLocationY: function() { + return this._point.y + }, + getPreviousLocation: function() { + return cc.v2(this._prevPoint.x, this._prevPoint.y) + }, + getStartLocation: function() { + return cc.v2(this._startPoint.x, this._startPoint.y) + }, + getDelta: function() { + return this._point.sub(this._prevPoint) + }, + getLocationInView: function() { + return cc.v2(this._point.x, cc.view._designResolutionSize.height - this._point.y) + }, + getPreviousLocationInView: function() { + return cc.v2(this._prevPoint.x, cc.view._designResolutionSize.height - this._prevPoint.y) + }, + getStartLocationInView: function() { + return cc.v2(this._startPoint.x, cc.view._designResolutionSize.height - this._startPoint.y) + }, + getID: function() { + return this._id + }, + setTouchInfo: function(t, e, i) { + this._prevPoint = this._point, + this._point = cc.v2(e || 0, i || 0), + this._id = t, + this._startPointCaptured || (this._startPoint = cc.v2(this._point), + cc.view._convertPointWithScale(this._startPoint), + this._startPointCaptured = !0) + }, + _setPoint: function(t, e) { + void 0 === e ? (this._point.x = t.x, + this._point.y = t.y) : (this._point.x = t, + this._point.y = e) + }, + _setPrevPoint: function(t, e) { + this._prevPoint = void 0 === e ? cc.v2(t.x, t.y) : cc.v2(t || 0, e || 0) + } + } + } + ), {}], + 138: [(function(t, e) { + "use strict"; + t("./CCEvent"), + t("./CCTouch"), + t("./CCEventListener"); + var i = t("./CCEventManager"); + e.exports = i + } + ), { + "./CCEvent": 134, + "./CCEventListener": 135, + "./CCEventManager": 136, + "./CCTouch": 137 + }], + 139: [(function(t, e) { + "use strict"; + var i = cc.js + , n = t("../platform/callbacks-invoker"); + function r() { + n.call(this) + } + i.extend(r, n), + r.prototype.emit = function(t, e) { + var i = t.type + , n = this._callbackTable[i]; + if (n) { + var r = !n.isInvoking; + n.isInvoking = !0; + for (var s = n.callbackInfos, a = 0, o = s.length; a < o; ++a) { + var l = s[a]; + if (l && l.callback && (l.callback.call(l.target, t, e), + t._propagationImmediateStopped)) + break + } + r && (n.isInvoking = !1, + n.containCanceled && n.purgeCanceled()) + } + } + , + e.exports = r + } + ), { + "../platform/callbacks-invoker": 206 + }], + 140: [(function(t, e) { + "use strict"; + var i = t("../platform/js") + , n = t("../platform/callbacks-invoker") + , r = i.array.fastRemove; + function s() { + n.call(this) + } + i.extend(s, n); + var a = s.prototype; + a.__on = a.on, + a.on = function(t, e, i, n) { + if (e) + return this.hasEventListener(t, e, i) || (this.__on(t, e, i, n), + i && i.__eventTargets && i.__eventTargets.push(this)), + e; + cc.errorID(6800) + } + , + a.__off = a.off, + a.off = function(t, e, i) { + if (e) + this.__off(t, e, i), + i && i.__eventTargets && r(i.__eventTargets, this); + else { + var n = this._callbackTable[t]; + if (!n) + return; + for (var s = n.callbackInfos, a = 0; a < s.length; ++a) { + var o = s[a] && s[a].target; + o && o.__eventTargets && r(o.__eventTargets, this) + } + this.removeAll(t) + } + } + , + a.targetOff = function(t) { + this.removeAll(t), + t && t.__eventTargets && r(t.__eventTargets, this) + } + , + a.once = function(t, e, i) { + this.on(t, e, i, !0) + } + , + a.dispatchEvent = function(t) { + this.emit(t.type, t) + } + , + a.clear = function() { + for (var t in this._callbackTable) + for (var e = this._callbackTable[t].callbackInfos, i = e.length - 1; i >= 0; i--) { + var n = e[i]; + n && this.off(t, n.callback, n.target) + } + } + , + cc.EventTarget = e.exports = s + } + ), { + "../platform/callbacks-invoker": 206, + "../platform/js": 214 + }], + 141: [(function(t, e) { + "use strict"; + var i = t("../platform/js"); + cc.Event = function(t, e) { + this.type = t, + this.bubbles = !!e, + this.target = null, + this.currentTarget = null, + this.eventPhase = 0, + this._propagationStopped = !1, + this._propagationImmediateStopped = !1 + } + , + cc.Event.prototype = { + constructor: cc.Event, + unuse: function() { + this.type = cc.Event.NO_TYPE, + this.target = null, + this.currentTarget = null, + this.eventPhase = cc.Event.NONE, + this._propagationStopped = !1, + this._propagationImmediateStopped = !1 + }, + reuse: function(t, e) { + this.type = t, + this.bubbles = e || !1 + }, + stopPropagation: function() { + this._propagationStopped = !0 + }, + stopPropagationImmediate: function() { + this._propagationImmediateStopped = !0 + }, + isStopped: function() { + return this._propagationStopped || this._propagationImmediateStopped + }, + getCurrentTarget: function() { + return this.currentTarget + }, + getType: function() { + return this.type + } + }, + cc.Event.NO_TYPE = "no_type", + cc.Event.TOUCH = "touch", + cc.Event.MOUSE = "mouse", + cc.Event.KEYBOARD = "keyboard", + cc.Event.ACCELERATION = "acceleration", + cc.Event.NONE = 0, + cc.Event.CAPTURING_PHASE = 1, + cc.Event.AT_TARGET = 2, + cc.Event.BUBBLING_PHASE = 3; + var n = function(t, e) { + cc.Event.call(this, t, e), + this.detail = null + }; + i.extend(n, cc.Event), + n.prototype.reset = n, + n.prototype.setUserData = function(t) { + this.detail = t + } + , + n.prototype.getUserData = function() { + return this.detail + } + , + n.prototype.getEventName = cc.Event.prototype.getType; + var r = new i.Pool(10); + n.put = function(t) { + r.put(t) + } + , + n.get = function(t, e) { + var i = r._get(); + return i ? i.reset(t, e) : i = new n(t,e), + i + } + , + cc.Event.EventCustom = n, + e.exports = cc.Event + } + ), { + "../platform/js": 214 + }], + 142: [(function(t) { + "use strict"; + t("./event"), + t("./event-listeners"), + t("./event-target"), + t("./system-event") + } + ), { + "./event": 141, + "./event-listeners": 139, + "./event-target": 140, + "./system-event": 143 + }], + 143: [(function(t, e) { + "use strict"; + var i = t("../event/event-target") + , n = t("../event-manager") + , r = t("../platform/CCInputManager") + , s = cc.Enum({ + KEY_DOWN: "keydown", + KEY_UP: "keyup", + DEVICEMOTION: "devicemotion" + }) + , a = null + , o = null + , l = cc.Class({ + name: "SystemEvent", + extends: i, + statics: { + EventType: s + }, + setAccelerometerEnabled: function(t) { + t && window.DeviceMotionEvent && "function" == typeof DeviceMotionEvent.requestPermission ? DeviceMotionEvent.requestPermission().then((function(t) { + console.log("Device Motion Event request permission: " + t), + r.setAccelerometerEnabled("granted" === t) + } + )) : r.setAccelerometerEnabled(t) + }, + setAccelerometerInterval: function(t) { + r.setAccelerometerInterval(t) + }, + on: function(t, e, i, r) { + this._super(t, e, i, r), + t !== s.KEY_DOWN && t !== s.KEY_UP || (a || (a = cc.EventListener.create({ + event: cc.EventListener.KEYBOARD, + onKeyPressed: function(t, e) { + e.type = s.KEY_DOWN, + cc.systemEvent.dispatchEvent(e) + }, + onKeyReleased: function(t, e) { + e.type = s.KEY_UP, + cc.systemEvent.dispatchEvent(e) + } + })), + n.hasEventListener(cc.EventListener.ListenerID.KEYBOARD) || n.addListener(a, 1)), + t === s.DEVICEMOTION && (o || (o = cc.EventListener.create({ + event: cc.EventListener.ACCELERATION, + callback: function(t, e) { + e.type = s.DEVICEMOTION, + cc.systemEvent.dispatchEvent(e) + } + })), + n.hasEventListener(cc.EventListener.ListenerID.ACCELERATION) || n.addListener(o, 1)) + }, + off: function(t, e, i) { + if (this._super(t, e, i), + a && (t === s.KEY_DOWN || t === s.KEY_UP)) { + var r = this.hasEventListener(s.KEY_DOWN) + , l = this.hasEventListener(s.KEY_UP); + r || l || n.removeListener(a) + } + o && t === s.DEVICEMOTION && n.removeListener(o) + } + }); + cc.SystemEvent = e.exports = l, + cc.systemEvent = new cc.SystemEvent + } + ), { + "../event-manager": 138, + "../event/event-target": 140, + "../platform/CCInputManager": 197 + }], + 144: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = a(t("../value-types/vec3")) + , r = a(t("../value-types/mat3")) + , s = a(t("./enums")); + function a(t) { + return t && t.__esModule ? t : { + default: t + } + } + var o = new n.default + , l = new n.default + , h = new r.default + , c = function(t, e, i) { + var r = h.m + , s = i.m; + r[0] = Math.abs(s[0]), + r[1] = Math.abs(s[1]), + r[2] = Math.abs(s[2]), + r[3] = Math.abs(s[4]), + r[4] = Math.abs(s[5]), + r[5] = Math.abs(s[6]), + r[6] = Math.abs(s[8]), + r[7] = Math.abs(s[9]), + r[8] = Math.abs(s[10]), + n.default.transformMat3(t, e, h) + } + , u = (function() { + function t(t, e, i, r, a, o) { + this.center = void 0, + this.halfExtents = void 0, + this._type = void 0, + this._type = s.default.SHAPE_AABB, + this.center = new n.default(t,e,i), + this.halfExtents = new n.default(r,a,o) + } + t.create = function(e, i, n, r, s, a) { + return new t(e,i,n,r,s,a) + } + , + t.clone = function(e) { + return new t(e.center.x,e.center.y,e.center.z,e.halfExtents.x,e.halfExtents.y,e.halfExtents.z) + } + , + t.copy = function(t, e) { + return n.default.copy(t.center, e.center), + n.default.copy(t.halfExtents, e.halfExtents), + t + } + , + t.fromPoints = function(t, e, i) { + return n.default.scale(t.center, n.default.add(o, e, i), .5), + n.default.scale(t.halfExtents, n.default.sub(l, i, e), .5), + t + } + , + t.set = function(t, e, i, r, s, a, o) { + return n.default.set(t.center, e, i, r), + n.default.set(t.halfExtents, s, a, o), + t + } + ; + var e = t.prototype; + return e.getBoundary = function(t, e) { + n.default.sub(t, this.center, this.halfExtents), + n.default.add(e, this.center, this.halfExtents) + } + , + e.transform = function(t, e, i, r, s) { + s || (s = this), + n.default.transformMat4(s.center, this.center, t), + c(s.halfExtents, this.halfExtents, t) + } + , + t + } + )(); + i.default = u, + e.exports = i.default + } + ), { + "../value-types/mat3": 283, + "../value-types/vec3": 292, + "./enums": 146 + }], + 145: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.point_plane = _, + i.pt_point_plane = function(t, e, i) { + var r = _(e, i); + return n.Vec3.subtract(t, e, n.Vec3.multiplyScalar(t, i.n, r)) + } + , + i.pt_point_aabb = function(t, e, i) { + return n.Vec3.copy(t, e), + n.Vec3.subtract(l, i.center, i.halfExtents), + n.Vec3.add(h, i.center, i.halfExtents), + t.x = t.x < l.x ? l.x : t.x, + t.y = t.y < l.x ? l.y : t.y, + t.z = t.z < l.x ? l.z : t.z, + t.x = t.x > h.x ? h.x : t.x, + t.y = t.y > h.x ? h.y : t.y, + t.z = t.z > h.x ? h.z : t.z, + t + } + , + i.pt_point_obb = function(t, e, i) { + var l = i.orientation.m; + n.Vec3.set(r, l[0], l[1], l[2]), + n.Vec3.set(s, l[3], l[4], l[5]), + n.Vec3.set(a, l[6], l[7], l[8]), + c[0] = r, + c[1] = s, + c[2] = a, + u[0] = i.halfExtents.x, + u[1] = i.halfExtents.y, + u[2] = i.halfExtents.z, + n.Vec3.subtract(o, e, i.center), + n.Vec3.set(t, i.center.x, i.center.y, i.center.z); + for (var h = 0; h < 3; h++) { + var _ = n.Vec3.dot(o, c[h]); + _ > u[h] && (_ = u[h]), + _ < -u[h] && (_ = -u[h]), + t.x += _ * c[h].x, + t.y += _ * c[h].y, + t.z += _ * c[h].z + } + return t + } + ; + var n = t("../value-types") + , r = new n.Vec3 + , s = new n.Vec3 + , a = new n.Vec3 + , o = new n.Vec3 + , l = new n.Vec3 + , h = new n.Vec3 + , c = new Array(3) + , u = new Array(3); + function _(t, e) { + return n.Vec3.dot(e.n, t) - e.d + } + } + ), { + "../value-types": 282 + }], + 146: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0, + i.default = { + SHAPE_RAY: 1, + SHAPE_LINE: 2, + SHAPE_SPHERE: 4, + SHAPE_AABB: 8, + SHAPE_OBB: 16, + SHAPE_PLANE: 32, + SHAPE_TRIANGLE: 64, + SHAPE_FRUSTUM: 128, + SHAPE_FRUSTUM_ACCURATE: 256 + }, + e.exports = i.default + } + ), {}], + 147: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = t("../value-types") + , r = a(t("./enums")) + , s = a(t("./plane")); + function a(t) { + return t && t.__esModule ? t : { + default: t + } + } + function o(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + var l = new Array(8); + l[0] = new n.Vec3(1,1,1), + l[1] = new n.Vec3(-1,1,1), + l[2] = new n.Vec3(-1,-1,1), + l[3] = new n.Vec3(1,-1,1), + l[4] = new n.Vec3(1,1,-1), + l[5] = new n.Vec3(-1,1,-1), + l[6] = new n.Vec3(-1,-1,-1), + l[7] = new n.Vec3(1,-1,-1); + var h, c = (function() { + function t() { + this.planes = void 0, + this.vertices = void 0, + this._type = void 0, + this._type = r.default.SHAPE_FRUSTUM, + this.planes = new Array(6); + for (var t = 0; t < 6; ++t) + this.planes[t] = s.default.create(0, 0, 0, 0); + this.vertices = new Array(8); + for (var e = 0; e < 8; ++e) + this.vertices[e] = new n.Vec3 + } + t.create = function() { + return new t + } + , + t.clone = function(e) { + return t.copy(new t, e) + } + , + t.copy = function(t, e) { + t._type = e._type; + for (var i = 0; i < 6; ++i) + s.default.copy(t.planes[i], e.planes[i]); + for (var r = 0; r < 8; ++r) + n.Vec3.copy(t.vertices[r], e.vertices[r]); + return t + } + ; + var e, i, a = t.prototype; + return a.update = function(t, e) { + var i = t.m; + if (n.Vec3.set(this.planes[0].n, i[3] + i[0], i[7] + i[4], i[11] + i[8]), + this.planes[0].d = -(i[15] + i[12]), + n.Vec3.set(this.planes[1].n, i[3] - i[0], i[7] - i[4], i[11] - i[8]), + this.planes[1].d = -(i[15] - i[12]), + n.Vec3.set(this.planes[2].n, i[3] + i[1], i[7] + i[5], i[11] + i[9]), + this.planes[2].d = -(i[15] + i[13]), + n.Vec3.set(this.planes[3].n, i[3] - i[1], i[7] - i[5], i[11] - i[9]), + this.planes[3].d = -(i[15] - i[13]), + n.Vec3.set(this.planes[4].n, i[3] + i[2], i[7] + i[6], i[11] + i[10]), + this.planes[4].d = -(i[15] + i[14]), + n.Vec3.set(this.planes[5].n, i[3] - i[2], i[7] - i[6], i[11] - i[10]), + this.planes[5].d = -(i[15] - i[14]), + this._type === r.default.SHAPE_FRUSTUM_ACCURATE) { + for (var s = 0; s < 6; s++) { + var a = this.planes[s] + , o = 1 / a.n.length(); + n.Vec3.multiplyScalar(a.n, a.n, o), + a.d *= o + } + for (var h = 0; h < 8; h++) + n.Vec3.transformMat4(this.vertices[h], l[h], e) + } + } + , + a.transform = function(t) { + if (this._type === r.default.SHAPE_FRUSTUM_ACCURATE) { + for (var e = 0; e < 8; e++) + n.Vec3.transformMat4(this.vertices[e], this.vertices[e], t); + s.default.fromPoints(this.planes[0], this.vertices[1], this.vertices[5], this.vertices[6]), + s.default.fromPoints(this.planes[1], this.vertices[3], this.vertices[7], this.vertices[4]), + s.default.fromPoints(this.planes[2], this.vertices[6], this.vertices[7], this.vertices[3]), + s.default.fromPoints(this.planes[3], this.vertices[0], this.vertices[4], this.vertices[5]), + s.default.fromPoints(this.planes[4], this.vertices[2], this.vertices[3], this.vertices[0]), + s.default.fromPoints(this.planes[0], this.vertices[7], this.vertices[6], this.vertices[5]) + } + } + , + e = t, + (i = [{ + key: "accurate", + set: function(t) { + this._type = t ? r.default.SHAPE_FRUSTUM_ACCURATE : r.default.SHAPE_FRUSTUM + } + }]) && o(e.prototype, i), + t + } + )(); + i.default = c, + c.createOrtho = (h = new n.Vec3, + function(t, e, i, r, a, o) { + var l = e / 2 + , c = i / 2; + n.Vec3.set(h, l, c, r), + n.Vec3.transformMat4(t.vertices[0], h, o), + n.Vec3.set(h, -l, c, r), + n.Vec3.transformMat4(t.vertices[1], h, o), + n.Vec3.set(h, -l, -c, r), + n.Vec3.transformMat4(t.vertices[2], h, o), + n.Vec3.set(h, l, -c, r), + n.Vec3.transformMat4(t.vertices[3], h, o), + n.Vec3.set(h, l, c, a), + n.Vec3.transformMat4(t.vertices[4], h, o), + n.Vec3.set(h, -l, c, a), + n.Vec3.transformMat4(t.vertices[5], h, o), + n.Vec3.set(h, -l, -c, a), + n.Vec3.transformMat4(t.vertices[6], h, o), + n.Vec3.set(h, l, -c, a), + n.Vec3.transformMat4(t.vertices[7], h, o), + s.default.fromPoints(t.planes[0], t.vertices[1], t.vertices[6], t.vertices[5]), + s.default.fromPoints(t.planes[1], t.vertices[3], t.vertices[4], t.vertices[7]), + s.default.fromPoints(t.planes[2], t.vertices[6], t.vertices[3], t.vertices[7]), + s.default.fromPoints(t.planes[3], t.vertices[0], t.vertices[5], t.vertices[4]), + s.default.fromPoints(t.planes[4], t.vertices[2], t.vertices[0], t.vertices[3]), + s.default.fromPoints(t.planes[0], t.vertices[7], t.vertices[5], t.vertices[6]) + } + ), + e.exports = i.default + } + ), { + "../value-types": 282, + "./enums": 146, + "./plane": 152 + }], + 148: [(function(t, e, i) { + "use strict"; + i.__esModule = !0; + var n = { + enums: !0, + Triangle: !0, + Aabb: !0, + Ray: !0, + intersect: !0, + Sphere: !0, + Obb: !0, + Frustum: !0, + Line: !0, + Plane: !0 + }; + i.Plane = i.Line = i.Frustum = i.Obb = i.Sphere = i.intersect = i.Ray = i.Aabb = i.Triangle = i.enums = void 0; + var r = p(t("./enums")); + i.enums = r.default; + var s = p(t("./triangle")); + i.Triangle = s.default; + var a = p(t("./aabb")); + i.Aabb = a.default; + var o = p(t("./ray")); + i.Ray = o.default; + var l = p(t("./intersect")); + i.intersect = l.default; + var h = p(t("./sphere")); + i.Sphere = h.default; + var c = p(t("./obb")); + i.Obb = c.default; + var u = p(t("./frustum")); + i.Frustum = u.default; + var _ = p(t("./line")); + i.Line = _.default; + var f = p(t("./plane")); + i.Plane = f.default; + var d = t("./distance"); + function p(t) { + return t && t.__esModule ? t : { + default: t + } + } + Object.keys(d).forEach((function(t) { + "default" !== t && "__esModule" !== t && (Object.prototype.hasOwnProperty.call(n, t) || t in i && i[t] === d[t] || (i[t] = d[t])) + } + )), + cc.geomUtils = e.exports + } + ), { + "./aabb": 144, + "./distance": 145, + "./enums": 146, + "./frustum": 147, + "./intersect": 149, + "./line": 150, + "./obb": 151, + "./plane": 152, + "./ray": 153, + "./sphere": 154, + "./triangle": 155 + }], + 149: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = _(t("../../renderer/gfx")) + , r = _(t("../../renderer/memop/recycle-pool")) + , s = t("../value-types") + , a = _(t("./aabb")) + , o = (function(t) { + if (t && t.__esModule) + return t; + if (null === t || "object" != typeof t && "function" != typeof t) + return { + default: t + }; + var e = u(); + if (e && e.has(t)) + return e.get(t); + var i = {} + , n = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var r in t) + if (Object.prototype.hasOwnProperty.call(t, r)) { + var s = n ? Object.getOwnPropertyDescriptor(t, r) : null; + s && (s.get || s.set) ? Object.defineProperty(i, r, s) : i[r] = t[r] + } + return i.default = t, + e && e.set(t, i), + i + } + )(t("./distance")) + , l = _(t("./enums")) + , h = _(t("./ray")) + , c = _(t("./triangle")); + function u() { + if ("function" != typeof WeakMap) + return null; + var t = new WeakMap; + return u = function() { + return t + } + , + t + } + function _(t) { + return t && t.__esModule ? t : { + default: t + } + } + var f, d, p, m, y, v, g, A, x, b, C, T, S, w, E, M = (function() { + var t = c.default.create() + , e = 1 / 0; + function i(t, e, i, n) { + s.Vec3.set(t, e[i * n], e[i * n + 1], e[i * n + 2]) + } + return function(r, s) { + e = 1 / 0; + for (var a = s._subMeshes, o = 0; o < a.length; o++) + if (a[o]._primitiveType === n.default.PT_TRIANGLES) + for (var l = s._subDatas[o] || s._subDatas[0], h = s._getAttrMeshData(o, n.default.ATTR_POSITION), c = l.getIData(Uint16Array), u = l.vfm.element(n.default.ATTR_POSITION).num, _ = 0; _ < c.length; _ += 3) { + i(t.a, h, c[_], u), + i(t.b, h, c[_ + 1], u), + i(t.c, h, c[_ + 2], u); + var f = P(r, t); + f > 0 && f < e && (e = f) + } + return e + } + } + )(), D = (function() { + function t(e, i) { + for (var n = e.children, r = n.length - 1; r >= 0; r--) + t(n[r], i); + i(e) + } + function e(t, e) { + return t.distance - e.distance + } + function i(t, e, i) { + var n = i.m + , r = e.x + , s = e.y + , a = e.z + , o = n[3] * r + n[7] * s + n[11] * a; + return o = o ? 1 / o : 1, + t.x = (n[0] * r + n[4] * s + n[8] * a) * o, + t.y = (n[1] * r + n[5] * s + n[9] * a) * o, + t.z = (n[2] * r + n[6] * s + n[10] * a) * o, + t + } + var n = new r.default(function() { + return { + distance: 0, + node: null + } + } + ,1) + , o = [] + , l = a.default.create() + , c = new s.Vec3 + , u = new s.Vec3 + , _ = new h.default + , f = cc.mat4() + , d = cc.mat4() + , p = new s.Vec3; + function m(t) { + return t > 0 && t < 1 / 0 + } + return function(r, h, y, v) { + return n.reset(), + o.length = 0, + t(r = r || cc.director.getScene(), (function(t) { + if (!v || v(t)) { + s.Mat4.invert(d, t.getWorldMatrix(f)), + s.Vec3.transformMat4(_.o, h.o, d), + s.Vec3.normalize(_.d, i(_.d, h.d, d)); + var e = 1 / 0 + , r = t._renderComponent; + if (r instanceof cc.MeshRenderer ? e = V(_, r._boundingBox) : t.width && t.height && (s.Vec3.set(c, -t.width * t.anchorX, -t.height * t.anchorY, t.z), + s.Vec3.set(u, t.width * (1 - t.anchorX), t.height * (1 - t.anchorY), t.z), + a.default.fromPoints(l, c, u), + e = V(_, l)), + m(e) && (y && (e = y(_, t, e)), + m(e))) { + s.Vec3.scale(p, _.d, e), + i(p, p, f); + var g = n.add(); + g.node = t, + g.distance = s.Vec3.mag(p), + o.push(g) + } + } + } + )), + o.sort(e), + o + } + } + )(), B = (f = new s.Vec3(0,0,0), + function(t, e) { + var i = s.Vec3.dot(t.d, e.n); + if (Math.abs(i) < Number.EPSILON) + return 0; + s.Vec3.multiplyScalar(f, e.n, e.d); + var n = s.Vec3.dot(s.Vec3.subtract(f, f, t.o), e.n) / i; + return n < 0 ? 0 : n + } + ), I = (d = new s.Vec3(0,0,0), + function(t, e) { + s.Vec3.subtract(d, t.e, t.s); + var i = (e.d - s.Vec3.dot(t.s, e.n)) / s.Vec3.dot(d, e.n); + return i < 0 || i > 1 ? 0 : i + } + ), P = (function() { + var t = new s.Vec3(0,0,0) + , e = new s.Vec3(0,0,0) + , i = new s.Vec3(0,0,0) + , n = new s.Vec3(0,0,0) + , r = new s.Vec3(0,0,0); + return function(a, o, l) { + s.Vec3.subtract(t, o.b, o.a), + s.Vec3.subtract(e, o.c, o.a), + s.Vec3.cross(i, a.d, e); + var h = s.Vec3.dot(t, i); + if (h < Number.EPSILON && (!l || h > -Number.EPSILON)) + return 0; + var c = 1 / h; + s.Vec3.subtract(n, a.o, o.a); + var u = s.Vec3.dot(n, i) * c; + if (u < 0 || u > 1) + return 0; + s.Vec3.cross(r, n, t); + var _ = s.Vec3.dot(a.d, r) * c; + if (_ < 0 || u + _ > 1) + return 0; + var f = s.Vec3.dot(e, r) * c; + return f < 0 ? 0 : f + } + } + )(), R = P, O = (function() { + var t = new s.Vec3(0,0,0) + , e = new s.Vec3(0,0,0) + , i = new s.Vec3(0,0,0) + , n = new s.Vec3(0,0,0) + , r = new s.Vec3(0,0,0) + , a = new s.Vec3(0,0,0); + return function(o, l, h) { + s.Vec3.subtract(t, l.b, l.a), + s.Vec3.subtract(e, l.c, l.a), + s.Vec3.subtract(i, o.s, o.e), + s.Vec3.cross(r, t, e); + var c = s.Vec3.dot(i, r); + if (c <= 0) + return 0; + s.Vec3.subtract(n, o.s, l.a); + var u = s.Vec3.dot(n, r); + if (u < 0 || u > c) + return 0; + s.Vec3.cross(a, i, n); + var _ = s.Vec3.dot(e, a); + if (_ < 0 || _ > c) + return 0; + var f = -s.Vec3.dot(t, a); + if (f < 0 || _ + f > c) + return 0; + if (h) { + var d = 1 / c + , p = 1 - (_ *= d) - (f *= d); + s.Vec3.set(h, l.a.x * p + l.b.x * _ + l.c.x * f, l.a.y * p + l.b.y * _ + l.c.y * f, l.a.z * p + l.b.z * _ + l.c.z * f) + } + return 1 + } + } + )(), L = (p = new s.Vec3(0,0,0), + m = new s.Vec3(0,0,0), + y = new s.Vec3(0,0,0), + v = new s.Vec3(0,0,0), + g = new s.Vec3(0,0,0), + A = new s.Vec3(0,0,0), + x = new s.Vec3(0,0,0), + function(t, e, i, n, r, a, o) { + s.Vec3.subtract(p, e, t), + s.Vec3.subtract(m, i, t), + s.Vec3.subtract(y, n, t), + s.Vec3.subtract(v, r, t), + s.Vec3.cross(A, v, p); + var l = s.Vec3.dot(m, A); + if (l >= 0) { + var h = -s.Vec3.dot(y, A); + if (h < 0) + return 0; + var c = s.Vec3.dot(s.Vec3.cross(x, p, y), m); + if (c < 0) + return 0; + if (o) { + var u = 1 / (h + l + c); + h *= u, + l *= u, + c *= u, + s.Vec3.set(o, i.x * h + n.x * l + r.x * c, i.y * h + n.y * l + r.y * c, i.z * h + n.z * l + r.z * c) + } + } else { + s.Vec3.subtract(g, a, t); + var _ = s.Vec3.dot(g, A); + if (_ < 0) + return 0; + var f = s.Vec3.dot(s.Vec3.cross(x, p, m), g); + if (f < 0) + return 0; + if (o) { + var d = 1 / (_ + (l = -l) + f); + _ *= d, + l *= d, + f *= d, + s.Vec3.set(o, i.x * _ + a.x * l + r.x * f, i.y * _ + a.y * l + r.y * f, i.z * _ + a.z * l + r.z * f) + } + } + return 1 + } + ), F = (function() { + var t = new s.Vec3(0,0,0); + return function(e, i) { + var n = i.radius + , r = i.center + , a = e.o + , o = e.d + , l = n * n; + s.Vec3.subtract(t, r, a); + var h = t.lengthSqr() + , c = s.Vec3.dot(t, o) + , u = l - (h - c * c); + if (u < 0) + return 0; + var _ = Math.sqrt(u) + , f = h < l ? c + _ : c - _; + return f < 0 ? 0 : f + } + } + )(), V = (b = new s.Vec3, + C = new s.Vec3, + function(t, e) { + var i = t.o + , n = t.d + , r = 1 / n.x + , a = 1 / n.y + , o = 1 / n.z; + s.Vec3.subtract(b, e.center, e.halfExtents), + s.Vec3.add(C, e.center, e.halfExtents); + var l = (b.x - i.x) * r + , h = (C.x - i.x) * r + , c = (b.y - i.y) * a + , u = (C.y - i.y) * a + , _ = (b.z - i.z) * o + , f = (C.z - i.z) * o + , d = Math.max(Math.max(Math.min(l, h), Math.min(c, u)), Math.min(_, f)) + , p = Math.min(Math.min(Math.max(l, h), Math.max(c, u)), Math.max(_, f)); + return p < 0 || d > p ? 0 : d + } + ), N = V, k = (function() { + var t = new s.Vec3 + , e = new s.Vec3 + , i = new s.Vec3 + , n = new s.Vec3 + , r = new s.Vec3 + , a = new s.Vec3 + , o = new s.Vec3 + , l = new Array(3) + , h = new Array(3) + , c = new Array(3) + , u = new Array(6); + return function(_, f) { + l[0] = f.halfExtents.x, + l[1] = f.halfExtents.y, + l[2] = f.halfExtents.z, + t = f.center, + e = _.o, + i = _.d; + var d = f.orientation.m; + s.Vec3.set(n, d[0], d[1], d[2]), + s.Vec3.set(r, d[3], d[4], d[5]), + s.Vec3.set(a, d[6], d[7], d[8]), + s.Vec3.subtract(o, t, e), + h[0] = s.Vec3.dot(n, i), + h[1] = s.Vec3.dot(r, i), + h[2] = s.Vec3.dot(a, i), + c[0] = s.Vec3.dot(n, o), + c[1] = s.Vec3.dot(r, o), + c[2] = s.Vec3.dot(a, o); + for (var p = 0; p < 3; ++p) { + if (0 === h[p]) { + if (-c[p] - l[p] > 0 || -c[p] + l[p] < 0) + return 0; + h[p] = 1e-7 + } + u[2 * p + 0] = (c[p] + l[p]) / h[p], + u[2 * p + 1] = (c[p] - l[p]) / h[p] + } + var m = Math.max(Math.max(Math.min(u[0], u[1]), Math.min(u[2], u[3])), Math.min(u[4], u[5])) + , y = Math.min(Math.min(Math.max(u[0], u[1]), Math.max(u[2], u[3])), Math.max(u[4], u[5])); + return y < 0 || m > y || m < 0 ? 0 : m + } + } + )(), G = (T = new s.Vec3, + S = new s.Vec3, + w = new s.Vec3, + E = new s.Vec3, + function(t, e) { + return s.Vec3.subtract(T, t.center, t.halfExtents), + s.Vec3.add(S, t.center, t.halfExtents), + s.Vec3.subtract(w, e.center, e.halfExtents), + s.Vec3.add(E, e.center, e.halfExtents), + T.x <= E.x && S.x >= w.x && T.y <= E.y && S.y >= w.y && T.z <= E.z && S.z >= w.z + } + ); + function U(t, e, i) { + s.Vec3.set(i[0], t.x, e.y, e.z), + s.Vec3.set(i[1], t.x, e.y, t.z), + s.Vec3.set(i[2], t.x, t.y, e.z), + s.Vec3.set(i[3], t.x, t.y, t.z), + s.Vec3.set(i[4], e.x, e.y, e.z), + s.Vec3.set(i[5], e.x, e.y, t.z), + s.Vec3.set(i[6], e.x, t.y, e.z), + s.Vec3.set(i[7], e.x, t.y, t.z) + } + function z(t, e, i, n, r, a) { + s.Vec3.set(a[0], t.x + i.x * e.x + n.x * e.y + r.x * e.z, t.y + i.y * e.x + n.y * e.y + r.y * e.z, t.z + i.z * e.x + n.z * e.y + r.z * e.z), + s.Vec3.set(a[1], t.x - i.x * e.x + n.x * e.y + r.x * e.z, t.y - i.y * e.x + n.y * e.y + r.y * e.z, t.z - i.z * e.x + n.z * e.y + r.z * e.z), + s.Vec3.set(a[2], t.x + i.x * e.x - n.x * e.y + r.x * e.z, t.y + i.y * e.x - n.y * e.y + r.y * e.z, t.z + i.z * e.x - n.z * e.y + r.z * e.z), + s.Vec3.set(a[3], t.x + i.x * e.x + n.x * e.y - r.x * e.z, t.y + i.y * e.x + n.y * e.y - r.y * e.z, t.z + i.z * e.x + n.z * e.y - r.z * e.z), + s.Vec3.set(a[4], t.x - i.x * e.x - n.x * e.y - r.x * e.z, t.y - i.y * e.x - n.y * e.y - r.y * e.z, t.z - i.z * e.x - n.z * e.y - r.z * e.z), + s.Vec3.set(a[5], t.x + i.x * e.x - n.x * e.y - r.x * e.z, t.y + i.y * e.x - n.y * e.y - r.y * e.z, t.z + i.z * e.x - n.z * e.y - r.z * e.z), + s.Vec3.set(a[6], t.x - i.x * e.x + n.x * e.y - r.x * e.z, t.y - i.y * e.x + n.y * e.y - r.y * e.z, t.z - i.z * e.x + n.z * e.y - r.z * e.z), + s.Vec3.set(a[7], t.x - i.x * e.x - n.x * e.y + r.x * e.z, t.y - i.y * e.x - n.y * e.y + r.y * e.z, t.z - i.z * e.x - n.z * e.y + r.z * e.z) + } + function H(t, e) { + for (var i = s.Vec3.dot(e, t[0]), n = i, r = 1; r < 8; ++r) { + var a = s.Vec3.dot(e, t[r]); + i = a < i ? a : i, + n = a > n ? a : n + } + return [i, n] + } + var W, j = (function() { + for (var t = new Array(15), e = 0; e < 15; e++) + t[e] = new s.Vec3(0,0,0); + for (var i = new Array(8), n = new Array(8), r = 0; r < 8; r++) + i[r] = new s.Vec3(0,0,0), + n[r] = new s.Vec3(0,0,0); + var a = new s.Vec3 + , o = new s.Vec3; + return function(e, r) { + var l = r.orientation.m; + s.Vec3.set(t[0], 1, 0, 0), + s.Vec3.set(t[1], 0, 1, 0), + s.Vec3.set(t[2], 0, 0, 1), + s.Vec3.set(t[3], l[0], l[1], l[2]), + s.Vec3.set(t[4], l[3], l[4], l[5]), + s.Vec3.set(t[5], l[6], l[7], l[8]); + for (var h = 0; h < 3; ++h) + s.Vec3.cross(t[6 + 3 * h], t[h], t[0]), + s.Vec3.cross(t[7 + 3 * h], t[h], t[1]), + s.Vec3.cross(t[7 + 3 * h], t[h], t[2]); + s.Vec3.subtract(a, e.center, e.halfExtents), + s.Vec3.add(o, e.center, e.halfExtents), + U(a, o, i), + z(r.center, r.halfExtents, t[3], t[4], t[5], n); + for (var c = 0; c < 15; ++c) { + var u = H(i, t[c]) + , _ = H(n, t[c]); + if (_[0] > u[1] || u[0] > _[1]) + return 0 + } + return 1 + } + } + )(), X = function(t, e) { + var i = t.halfExtents.x * Math.abs(e.n.x) + t.halfExtents.y * Math.abs(e.n.y) + t.halfExtents.z * Math.abs(e.n.z) + , n = s.Vec3.dot(e.n, t.center); + return n + i < e.d ? -1 : n - i > e.d ? 0 : 1 + }, Y = function(t, e) { + for (var i = 0; i < e.planes.length; i++) + if (-1 === X(t, e.planes[i])) + return 0; + return 1 + }, q = (function() { + for (var t = new Array(8), e = 0, i = 0, n = 0; n < t.length; n++) + t[n] = new s.Vec3(0,0,0); + return function(n, r) { + for (var a = 0, o = !1, l = 0; l < r.planes.length; l++) { + if (-1 === (a = X(n, r.planes[l]))) + return 0; + 1 === a && (o = !0) + } + if (!o) + return 1; + for (var h = 0; h < r.vertices.length; h++) + s.Vec3.subtract(t[h], r.vertices[h], n.center); + e = 0, + i = 0; + for (var c = 0; c < r.vertices.length; c++) + t[c].x > n.halfExtents.x ? e++ : t[c].x < -n.halfExtents.x && i++; + if (e === r.vertices.length || i === r.vertices.length) + return 0; + e = 0, + i = 0; + for (var u = 0; u < r.vertices.length; u++) + t[u].y > n.halfExtents.y ? e++ : t[u].y < -n.halfExtents.y && i++; + if (e === r.vertices.length || i === r.vertices.length) + return 0; + e = 0, + i = 0; + for (var _ = 0; _ < r.vertices.length; _++) + t[_].z > n.halfExtents.z ? e++ : t[_].z < -n.halfExtents.z && i++; + return e === r.vertices.length || i === r.vertices.length ? 0 : 1 + } + } + )(), J = (function() { + var t = new s.Vec3(0,0,0) + , e = new s.Mat3; + return function(i, n) { + return s.Vec3.subtract(t, n, i.center), + s.Vec3.transformMat3(t, t, s.Mat3.transpose(e, i.orientation)), + r = t, + a = i.halfExtents, + Math.abs(r.x) < a.x && Math.abs(r.y) < a.y && Math.abs(r.z) < a.z; + var r, a + } + } + )(), Z = (W = function(t, e, i, n) { + return Math.abs(t.x * e + t.y * i + t.z * n) + } + , + function(t, e) { + var i = t.orientation.m + , n = t.halfExtents.x * W(e.n, i[0], i[1], i[2]) + t.halfExtents.y * W(e.n, i[3], i[4], i[5]) + t.halfExtents.z * W(e.n, i[6], i[7], i[8]) + , r = s.Vec3.dot(e.n, t.center); + return r + n < e.d ? -1 : r - n > e.d ? 0 : 1 + } + ), K = function(t, e) { + for (var i = 0; i < e.planes.length; i++) + if (-1 === Z(t, e.planes[i])) + return 0; + return 1 + }, Q = (function() { + for (var t = new Array(8), e = 0, i = 0, n = 0, r = 0; r < t.length; r++) + t[r] = new s.Vec3(0,0,0); + var a = function(t, e, i, n) { + return t.x * e + t.y * i + t.z * n + }; + return function(r, o) { + for (var l = 0, h = !1, c = 0; c < o.planes.length; c++) { + if (-1 === (l = Z(r, o.planes[c]))) + return 0; + 1 === l && (h = !0) + } + if (!h) + return 1; + for (var u = 0; u < o.vertices.length; u++) + s.Vec3.subtract(t[u], o.vertices[u], r.center); + i = 0, + n = 0; + for (var _ = r.orientation.m, f = 0; f < o.vertices.length; f++) + (e = a(t[f], _[0], _[1], _[2])) > r.halfExtents.x ? i++ : e < -r.halfExtents.x && n++; + if (i === o.vertices.length || n === o.vertices.length) + return 0; + i = 0, + n = 0; + for (var d = 0; d < o.vertices.length; d++) + (e = a(t[d], _[3], _[4], _[5])) > r.halfExtents.y ? i++ : e < -r.halfExtents.y && n++; + if (i === o.vertices.length || n === o.vertices.length) + return 0; + i = 0, + n = 0; + for (var p = 0; p < o.vertices.length; p++) + (e = a(t[p], _[6], _[7], _[8])) > r.halfExtents.z ? i++ : e < -r.halfExtents.z && n++; + return i === o.vertices.length || n === o.vertices.length ? 0 : 1 + } + } + )(), $ = (function() { + for (var t = new Array(15), e = 0; e < 15; e++) + t[e] = new s.Vec3(0,0,0); + for (var i = new Array(8), n = new Array(8), r = 0; r < 8; r++) + i[r] = new s.Vec3(0,0,0), + n[r] = new s.Vec3(0,0,0); + return function(e, r) { + var a = e.orientation.m + , o = r.orientation.m; + s.Vec3.set(t[0], a[0], a[1], a[2]), + s.Vec3.set(t[1], a[3], a[4], a[5]), + s.Vec3.set(t[2], a[6], a[7], a[8]), + s.Vec3.set(t[3], o[0], o[1], o[2]), + s.Vec3.set(t[4], o[3], o[4], o[5]), + s.Vec3.set(t[5], o[6], o[7], o[8]); + for (var l = 0; l < 3; ++l) + s.Vec3.cross(t[6 + 3 * l], t[l], t[0]), + s.Vec3.cross(t[7 + 3 * l], t[l], t[1]), + s.Vec3.cross(t[7 + 3 * l], t[l], t[2]); + z(e.center, e.halfExtents, t[0], t[1], t[2], i), + z(r.center, r.halfExtents, t[3], t[4], t[5], n); + for (var h = 0; h < 15; ++h) { + var c = H(i, t[h]) + , u = H(n, t[h]); + if (u[0] > c[1] || c[0] > u[1]) + return 0 + } + return 1 + } + } + )(), tt = function(t, e) { + var i = s.Vec3.dot(e.n, t.center) + , n = t.radius * e.n.length(); + return i + n < e.d ? -1 : i - n > e.d ? 0 : 1 + }, et = function(t, e) { + for (var i = 0; i < e.planes.length; i++) + if (-1 === tt(t, e.planes[i])) + return 0; + return 1 + }, it = (function() { + var t = new s.Vec3(0,0,0) + , e = [1, -1, 1, -1, 1, -1]; + return function(i, n) { + for (var r = 0; r < 6; r++) { + var a = n.planes[r] + , o = i.radius + , l = i.center + , h = a.n + , c = a.d + , u = s.Vec3.dot(h, l); + if (u + o < c) + return 0; + if (!(u - o > c)) { + s.Vec3.add(t, l, s.Vec3.multiplyScalar(t, h, o)); + for (var _ = 0; _ < 6; _++) + if (_ !== r && _ !== r + e[r]) { + var f = n.planes[_]; + if (s.Vec3.dot(f.n, t) < f.d) + return 0 + } + } + } + return 1 + } + } + )(), nt = function(t, e) { + var i = t.radius + e.radius; + return s.Vec3.squaredDistance(t.center, e.center) < i * i + }, rt = (function() { + var t = new s.Vec3; + return function(e, i) { + return o.pt_point_aabb(t, e.center, i), + s.Vec3.squaredDistance(e.center, t) < e.radius * e.radius + } + } + )(), st = (function() { + var t = new s.Vec3; + return function(e, i) { + return o.pt_point_obb(t, e.center, i), + s.Vec3.squaredDistance(e.center, t) < e.radius * e.radius + } + } + )(), at = { + rayAabb: N, + rayMesh: M, + raycast: D, + rayTriangle: R, + ray_sphere: F, + ray_aabb: V, + ray_obb: k, + ray_plane: B, + ray_triangle: P, + line_plane: I, + line_triangle: O, + line_quad: L, + sphere_sphere: nt, + sphere_aabb: rt, + sphere_obb: st, + sphere_plane: tt, + sphere_frustum: et, + sphere_frustum_accurate: it, + aabb_aabb: G, + aabb_obb: j, + aabb_plane: X, + aabb_frustum: Y, + aabb_frustum_accurate: q, + obb_obb: $, + obb_plane: Z, + obb_frustum: K, + obb_frustum_accurate: Q, + obb_point: J, + resolve: function(t, e, i) { + void 0 === i && (i = null); + var n = t._type + , r = e._type + , s = this[n | r]; + return n < r ? s(t, e, i) : s(e, t, i) + } + }; + at[l.default.SHAPE_RAY | l.default.SHAPE_SPHERE] = F, + at[l.default.SHAPE_RAY | l.default.SHAPE_AABB] = V, + at[l.default.SHAPE_RAY | l.default.SHAPE_OBB] = k, + at[l.default.SHAPE_RAY | l.default.SHAPE_PLANE] = B, + at[l.default.SHAPE_RAY | l.default.SHAPE_TRIANGLE] = P, + at[l.default.SHAPE_LINE | l.default.SHAPE_PLANE] = I, + at[l.default.SHAPE_LINE | l.default.SHAPE_TRIANGLE] = O, + at[l.default.SHAPE_SPHERE] = nt, + at[l.default.SHAPE_SPHERE | l.default.SHAPE_AABB] = rt, + at[l.default.SHAPE_SPHERE | l.default.SHAPE_OBB] = st, + at[l.default.SHAPE_SPHERE | l.default.SHAPE_PLANE] = tt, + at[l.default.SHAPE_SPHERE | l.default.SHAPE_FRUSTUM] = et, + at[l.default.SHAPE_SPHERE | l.default.SHAPE_FRUSTUM_ACCURATE] = it, + at[l.default.SHAPE_AABB] = G, + at[l.default.SHAPE_AABB | l.default.SHAPE_OBB] = j, + at[l.default.SHAPE_AABB | l.default.SHAPE_PLANE] = X, + at[l.default.SHAPE_AABB | l.default.SHAPE_FRUSTUM] = Y, + at[l.default.SHAPE_AABB | l.default.SHAPE_FRUSTUM_ACCURATE] = q, + at[l.default.SHAPE_OBB] = $, + at[l.default.SHAPE_OBB | l.default.SHAPE_PLANE] = Z, + at[l.default.SHAPE_OBB | l.default.SHAPE_FRUSTUM] = K, + at[l.default.SHAPE_OBB | l.default.SHAPE_FRUSTUM_ACCURATE] = Q; + var ot = at; + i.default = ot, + e.exports = i.default + } + ), { + "../../renderer/gfx": 315, + "../../renderer/memop/recycle-pool": 330, + "../value-types": 282, + "./aabb": 144, + "./distance": 145, + "./enums": 146, + "./ray": 153, + "./triangle": 155 + }], + 150: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("../value-types"), s = (n = t("./enums")) && n.__esModule ? n : { + default: n + }, a = (function() { + function t(t, e, i, n, a, o) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + void 0 === a && (a = 0), + void 0 === o && (o = -1), + this.s = void 0, + this.e = void 0, + this._type = void 0, + this._type = s.default.SHAPE_LINE, + this.s = new r.Vec3(t,e,i), + this.e = new r.Vec3(n,a,o) + } + return t.create = function(e, i, n, r, s, a) { + return new t(e,i,n,r,s,a) + } + , + t.clone = function(e) { + return new t(e.s.x,e.s.y,e.s.z,e.e.x,e.e.y,e.e.z) + } + , + t.copy = function(t, e) { + return r.Vec3.copy(t.s, e.s), + r.Vec3.copy(t.e, e.e), + t + } + , + t.fromPoints = function(t, e, i) { + return r.Vec3.copy(t.s, e), + r.Vec3.copy(t.e, i), + t + } + , + t.set = function(t, e, i, n, r, s, a) { + return t.s.x = e, + t.s.y = i, + t.s.z = n, + t.e.x = r, + t.e.y = s, + t.e.z = a, + t + } + , + t.len = function(t) { + return r.Vec3.distance(t.s, t.e) + } + , + t.prototype.length = function() { + return r.Vec3.distance(this.s, this.e) + } + , + t + } + )(); + i.default = a, + e.exports = i.default + } + ), { + "../value-types": 282, + "./enums": 146 + }], + 151: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("../value-types"), s = (n = t("./enums")) && n.__esModule ? n : { + default: n + }; + function a(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + var o = new r.Vec3 + , l = new r.Vec3 + , h = new r.Mat3 + , c = (function() { + function t(t, e, i, n, a, o, l, h, c, u, _, f, d, p, m) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 1), + void 0 === a && (a = 1), + void 0 === o && (o = 1), + void 0 === l && (l = 1), + void 0 === h && (h = 0), + void 0 === c && (c = 0), + void 0 === u && (u = 0), + void 0 === _ && (_ = 1), + void 0 === f && (f = 0), + void 0 === d && (d = 0), + void 0 === p && (p = 0), + void 0 === m && (m = 1), + this.center = void 0, + this.halfExtents = void 0, + this.orientation = void 0, + this._type = void 0, + this._type = s.default.SHAPE_OBB, + this.center = new r.Vec3(t,e,i), + this.halfExtents = new r.Vec3(n,a,o), + this.orientation = new r.Mat3(l,h,c,u,_,f,d,p,m) + } + t.create = function(e, i, n, r, s, a, o, l, h, c, u, _, f, d, p) { + return new t(e,i,n,r,s,a,o,l,h,c,u,_,f,d,p) + } + , + t.clone = function(e) { + var i = e.orientation.m; + return new t(e.center.x,e.center.y,e.center.z,e.halfExtents.x,e.halfExtents.y,e.halfExtents.z,i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8]) + } + , + t.copy = function(t, e) { + return r.Vec3.copy(t.center, e.center), + r.Vec3.copy(t.halfExtents, e.halfExtents), + r.Mat3.copy(t.orientation, e.orientation), + t + } + , + t.fromPoints = function(t, e, i) { + return r.Vec3.multiplyScalar(t.center, r.Vec3.add(o, e, i), .5), + r.Vec3.multiplyScalar(t.halfExtents, r.Vec3.subtract(l, i, e), .5), + r.Mat3.identity(t.orientation), + t + } + , + t.set = function(t, e, i, n, s, a, o, l, h, c, u, _, f, d, p, m) { + return r.Vec3.set(t.center, e, i, n), + r.Vec3.set(t.halfExtents, s, a, o), + r.Mat3.set(t.orientation, l, h, c, u, _, f, d, p, m), + t + } + ; + var e, i, n = t.prototype; + return n.getBoundary = function(t, e) { + var i, n, s, a, l; + i = o, + n = this.halfExtents, + s = this.orientation, + a = h.m, + l = s.m, + a[0] = Math.abs(l[0]), + a[1] = Math.abs(l[1]), + a[2] = Math.abs(l[2]), + a[3] = Math.abs(l[3]), + a[4] = Math.abs(l[4]), + a[5] = Math.abs(l[5]), + a[6] = Math.abs(l[6]), + a[7] = Math.abs(l[7]), + a[8] = Math.abs(l[8]), + r.Vec3.transformMat3(i, n, h), + r.Vec3.subtract(t, this.center, o), + r.Vec3.add(e, this.center, o) + } + , + n.transform = function(t, e, i, n, s) { + r.Vec3.transformMat4(s.center, this.center, t), + r.Mat3.fromQuat(s.orientation, i), + r.Vec3.multiply(s.halfExtents, this.halfExtents, n) + } + , + n.translateAndRotate = function(t, e, i) { + r.Vec3.transformMat4(i.center, this.center, t), + r.Mat3.fromQuat(i.orientation, e) + } + , + n.setScale = function(t, e) { + r.Vec3.multiply(e.halfExtents, this.halfExtents, t) + } + , + e = t, + (i = [{ + key: "type", + get: function() { + return this._type + } + }]) && a(e.prototype, i), + t + } + )(); + i.default = c, + e.exports = i.default + } + ), { + "../value-types": 282, + "./enums": 146 + }], + 152: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("../value-types"), s = (n = t("./enums")) && n.__esModule ? n : { + default: n + }, a = new r.Vec3(0,0,0), o = new r.Vec3(0,0,0), l = cc.mat4(), h = cc.v4(), c = (function() { + function t(t, e, i, n) { + void 0 === t && (t = 0), + void 0 === e && (e = 1), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + this.n = void 0, + this.d = void 0, + this._type = void 0, + this._type = s.default.SHAPE_PLANE, + this.n = new r.Vec3(t,e,i), + this.d = n + } + return t.create = function(e, i, n, r) { + return new t(e,i,n,r) + } + , + t.clone = function(e) { + return new t(e.n.x,e.n.y,e.n.z,e.d) + } + , + t.copy = function(t, e) { + return r.Vec3.copy(t.n, e.n), + t.d = e.d, + t + } + , + t.fromPoints = function(t, e, i, n) { + return r.Vec3.subtract(a, i, e), + r.Vec3.subtract(o, n, e), + r.Vec3.normalize(t.n, r.Vec3.cross(t.n, a, o)), + t.d = r.Vec3.dot(t.n, e), + t + } + , + t.set = function(t, e, i, n, r) { + return t.n.x = e, + t.n.y = i, + t.n.z = n, + t.d = r, + t + } + , + t.fromNormalAndPoint = function(t, e, i) { + return r.Vec3.copy(t.n, e), + t.d = r.Vec3.dot(e, i), + t + } + , + t.normalize = function(t, e) { + var i = e.n.len(); + return r.Vec3.normalize(t.n, e.n), + i > 0 && (t.d = e.d / i), + t + } + , + t.prototype.transform = function(t) { + r.Mat4.invert(l, t), + r.Mat4.transpose(l, l), + r.Vec4.set(h, this.n.x, this.n.y, this.n.z, this.d), + r.Vec4.transformMat4(h, h, l), + r.Vec3.set(this.n, h.x, h.y, h.z), + this.d = h.w + } + , + t + } + )(); + i.default = c, + e.exports = i.default + } + ), { + "../value-types": 282, + "./enums": 146 + }], + 153: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("../value-types"), s = (n = t("./enums")) && n.__esModule ? n : { + default: n + }, a = (function() { + function t(t, e, i, n, a, o) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + void 0 === a && (a = 0), + void 0 === o && (o = -1), + this.o = void 0, + this.d = void 0, + this._type = void 0, + this._type = s.default.SHAPE_RAY, + this.o = new r.Vec3(t,e,i), + this.d = new r.Vec3(n,a,o) + } + return t.create = function(e, i, n, r, s, a) { + return void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + void 0 === r && (r = 0), + void 0 === s && (s = 0), + void 0 === a && (a = 1), + new t(e,i,n,r,s,a) + } + , + t.clone = function(e) { + return new t(e.o.x,e.o.y,e.o.z,e.d.x,e.d.y,e.d.z) + } + , + t.copy = function(t, e) { + return r.Vec3.copy(t.o, e.o), + r.Vec3.copy(t.d, e.d), + t + } + , + t.fromPoints = function(t, e, i) { + return r.Vec3.copy(t.o, e), + r.Vec3.normalize(t.d, r.Vec3.subtract(t.d, i, e)), + t + } + , + t.set = function(t, e, i, n, r, s, a) { + return t.o.x = e, + t.o.y = i, + t.o.z = n, + t.d.x = r, + t.d.y = s, + t.d.z = a, + t + } + , + t.prototype.computeHit = function(t, e) { + r.Vec3.normalize(t, this.d), + r.Vec3.scaleAndAdd(t, this.o, t, e) + } + , + t + } + )(); + i.default = a, + e.exports = i.default + } + ), { + "../value-types": 282, + "./enums": 146 + }], + 154: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("../value-types"), s = (n = t("./enums")) && n.__esModule ? n : { + default: n + }, a = new r.Vec3, o = (function() { + function t(t, e, i, n) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 1), + this.center = void 0, + this.radius = void 0, + this._type = void 0, + this._type = s.default.SHAPE_SPHERE, + this.center = new r.Vec3(t,e,i), + this.radius = n + } + t.create = function(e, i, n, r) { + return new t(e,i,n,r) + } + , + t.clone = function(e) { + return new t(e.center.x,e.center.y,e.center.z,e.radius) + } + , + t.copy = function(t, e) { + return r.Vec3.copy(t.center, e.center), + t.radius = e.radius, + t + } + , + t.fromPoints = function(t, e, i) { + return r.Vec3.multiplyScalar(t.center, r.Vec3.add(a, e, i), .5), + t.radius = .5 * r.Vec3.subtract(a, i, e).len(), + t + } + , + t.set = function(t, e, i, n, r) { + return t.center.x = e, + t.center.y = i, + t.center.z = n, + t.radius = r, + t + } + ; + var e = t.prototype; + return e.clone = function() { + return t.clone(this) + } + , + e.copy = function(e) { + return t.copy(this, e) + } + , + e.getBoundary = function(t, e) { + r.Vec3.set(t, this.center.x - this.radius, this.center.y - this.radius, this.center.z - this.radius), + r.Vec3.set(e, this.center.x + this.radius, this.center.y + this.radius, this.center.z + this.radius) + } + , + e.transform = function(t, e, i, n, s) { + r.Vec3.transformMat4(s.center, this.center, t), + s.radius = this.radius * n.maxAxis() + } + , + e.translateAndRotate = function(t, e, i) { + r.Vec3.transformMat4(i.center, this.center, t) + } + , + e.setScale = function(t, e) { + e.radius = this.radius * t.maxAxis() + } + , + t + } + )(); + i.default = o, + e.exports = i.default + } + ), { + "../value-types": 282, + "./enums": 146 + }], + 155: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = s(t("../value-types/vec3")) + , r = s(t("./enums")); + function s(t) { + return t && t.__esModule ? t : { + default: t + } + } + var a = (function() { + function t(t, e, i, s, a, o, l, h, c) { + this.a = void 0, + this.b = void 0, + this.c = void 0, + this._type = void 0, + this.a = new n.default(t,e,i), + this.b = new n.default(s,a,o), + this.c = new n.default(l,h,c), + this._type = r.default.SHAPE_TRIANGLE + } + return t.create = function(e, i, n, r, s, a, o, l, h) { + return new t(e,i,n,r,s,a,o,l,h) + } + , + t.clone = function(e) { + return new t(e.a.x,e.a.y,e.a.z,e.b.x,e.b.y,e.b.z,e.c.x,e.c.y,e.c.z) + } + , + t.copy = function(t, e) { + return n.default.copy(t.a, e.a), + n.default.copy(t.b, e.b), + n.default.copy(t.c, e.c), + t + } + , + t.fromPoints = function(t, e, i, r) { + return n.default.copy(t.a, e), + n.default.copy(t.b, i), + n.default.copy(t.c, r), + t + } + , + t.set = function(t, e, i, n, r, s, a, o, l, h) { + return t.a.x = e, + t.a.y = i, + t.a.z = n, + t.b.x = r, + t.b.y = s, + t.b.z = a, + t.c.x = o, + t.c.y = l, + t.c.z = h, + t + } + , + t + } + )(); + i.default = a, + e.exports = i.default + } + ), { + "../value-types/vec3": 292, + "./enums": 146 + }], + 156: [(function(t, e) { + "use strict"; + var i = t("../components/CCRenderComponent") + , n = t("../assets/material/CCMaterial") + , r = t("./types") + , s = r.LineCap + , a = r.LineJoin + , o = cc.Class({ + name: "cc.Graphics", + extends: i, + editor: !1, + ctor: function() { + this._impl = new o._Impl(this) + }, + properties: { + _lineWidth: 2, + _strokeColor: cc.Color.BLACK, + _lineJoin: a.MITER, + _lineCap: s.BUTT, + _fillColor: cc.Color.WHITE, + _miterLimit: 10, + lineWidth: { + get: function() { + return this._lineWidth + }, + set: function(t) { + this._lineWidth = t, + this._impl.lineWidth = t + } + }, + lineJoin: { + get: function() { + return this._lineJoin + }, + set: function(t) { + this._lineJoin = t, + this._impl.lineJoin = t + }, + type: a + }, + lineCap: { + get: function() { + return this._lineCap + }, + set: function(t) { + this._lineCap = t, + this._impl.lineCap = t + }, + type: s + }, + strokeColor: { + get: function() { + return this._strokeColor + }, + set: function(t) { + this._impl.strokeColor = this._strokeColor = cc.color(t) + } + }, + fillColor: { + get: function() { + return this._fillColor + }, + set: function(t) { + this._impl.fillColor = this._fillColor = cc.color(t) + } + }, + miterLimit: { + get: function() { + return this._miterLimit + }, + set: function(t) { + this._miterLimit = t, + this._impl.miterLimit = t + } + } + }, + statics: { + LineJoin: a, + LineCap: s + }, + onRestore: function() { + this._impl || (this._impl = new o._Impl(this)) + }, + onDestroy: function() { + this.clear(!0), + this._super(), + this._impl = null + }, + _getDefaultMaterial: function() { + return n.getBuiltinMaterial("2d-graphics") + }, + _updateMaterial: function() { + var t = this._materials[0]; + t && (void 0 !== t.getDefine("CC_USE_MODEL") && t.define("CC_USE_MODEL", !0), + void 0 !== t.getDefine("CC_SUPPORT_standard_derivatives") && cc.sys.glExtension("OES_standard_derivatives") && t.define("CC_SUPPORT_standard_derivatives", !0)) + }, + moveTo: function(t, e) { + this._impl.moveTo(t, e) + }, + lineTo: function(t, e) { + this._impl.lineTo(t, e) + }, + bezierCurveTo: function(t, e, i, n, r, s) { + this._impl.bezierCurveTo(t, e, i, n, r, s) + }, + quadraticCurveTo: function(t, e, i, n) { + this._impl.quadraticCurveTo(t, e, i, n) + }, + arc: function(t, e, i, n, r, s) { + this._impl.arc(t, e, i, n, r, s) + }, + ellipse: function(t, e, i, n) { + this._impl.ellipse(t, e, i, n) + }, + circle: function(t, e, i) { + this._impl.circle(t, e, i) + }, + rect: function(t, e, i, n) { + this._impl.rect(t, e, i, n) + }, + roundRect: function(t, e, i, n, r) { + this._impl.roundRect(t, e, i, n, r) + }, + fillRect: function(t, e, i, n) { + this.rect(t, e, i, n), + this.fill() + }, + clear: function(t) { + this._impl.clear(t), + this._assembler && this._assembler.clear(t) + }, + close: function() { + this._impl.close() + }, + stroke: function() { + this._assembler || this._resetAssembler(), + this._assembler.stroke(this) + }, + fill: function() { + this._assembler || this._resetAssembler(), + this._assembler.fill(this) + } + }); + cc.Graphics = e.exports = o, + cc.Graphics.Types = r, + cc.Graphics.Helper = t("./helper") + } + ), { + "../assets/material/CCMaterial": 80, + "../components/CCRenderComponent": 115, + "./helper": 157, + "./types": 159 + }], + 157: [(function(t, e) { + "use strict"; + var i = t("./types").PointFlags + , n = Math.PI + , r = Math.min + , s = Math.max + , a = Math.cos + , o = Math.sin + , l = Math.abs + , h = Math.sign + , c = .5522847493; + e.exports = { + arc: function(t, e, i, h, c, u, _) { + var f, d, p, m = 0, y = 0, v = 0, g = 0, A = 0, x = 0, b = 0, C = 0, T = 0, S = 0, w = 0, E = 0, M = 0; + if (y = u - c, + _ = _ || !1) + if (l(y) >= 2 * n) + y = 2 * n; + else + for (; y < 0; ) + y += 2 * n; + else if (l(y) >= 2 * n) + y = 2 * -n; + else + for (; y > 0; ) + y -= 2 * n; + for (p = 0 | s(1, r(l(y) / (.5 * n) + .5, 5)), + v = l(4 / 3 * (1 - a(f = y / p / 2)) / o(f)), + _ || (v = -v), + d = 0; d <= p; d++) + x = e + (g = a(m = c + y * (d / p))) * h, + b = i + (A = o(m)) * h, + C = -A * h * v, + T = g * h * v, + 0 === d ? t.moveTo(x, b) : t.bezierCurveTo(S + E, w + M, x - C, b - T, x, b), + S = x, + w = b, + E = C, + M = T + }, + ellipse: function(t, e, i, n, r) { + t.moveTo(e - n, i), + t.bezierCurveTo(e - n, i + r * c, e - n * c, i + r, e, i + r), + t.bezierCurveTo(e + n * c, i + r, e + n, i + r * c, e + n, i), + t.bezierCurveTo(e + n, i - r * c, e + n * c, i - r, e, i - r), + t.bezierCurveTo(e - n * c, i - r, e - n, i - r * c, e - n, i), + t.close() + }, + roundRect: function(t, e, i, n, s, a) { + if (a < .1) + t.rect(e, i, n, s); + else { + var o = r(a, .5 * l(n)) * h(n) + , u = r(a, .5 * l(s)) * h(s); + t.moveTo(e, i + u), + t.lineTo(e, i + s - u), + t.bezierCurveTo(e, i + s - u * (1 - c), e + o * (1 - c), i + s, e + o, i + s), + t.lineTo(e + n - o, i + s), + t.bezierCurveTo(e + n - o * (1 - c), i + s, e + n, i + s - u * (1 - c), e + n, i + s - u), + t.lineTo(e + n, i + u), + t.bezierCurveTo(e + n, i + u * (1 - c), e + n - o * (1 - c), i, e + n - o, i), + t.lineTo(e + o, i), + t.bezierCurveTo(e + o * (1 - c), i, e, i + u * (1 - c), e, i + u), + t.close() + } + }, + tesselateBezier: function t(e, n, r, s, a, o, h, c, u, _, f) { + var d, p, m, y, v, g, A, x, b, C, T, S, w, E, M, D; + _ > 10 || (v = .5 * (o + c), + g = .5 * (h + u), + A = .5 * ((d = .5 * (n + s)) + (m = .5 * (s + o))), + x = .5 * ((p = .5 * (r + a)) + (y = .5 * (a + h))), + ((M = l((s - c) * (E = u - r) - (a - u) * (w = c - n))) + (D = l((o - c) * E - (h - u) * w))) * (M + D) < e._tessTol * (w * w + E * E) ? e._addPoint(c, u, 0 === f ? f | i.PT_BEVEL : f) : (t(e, n, r, d, p, A, x, T = .5 * (A + (b = .5 * (m + v))), S = .5 * (x + (C = .5 * (y + g))), _ + 1, 0), + t(e, T, S, b, C, v, g, c, u, _ + 1, f))) + } + } + } + ), { + "./types": 159 + }], + 158: [(function(t) { + "use strict"; + t("./graphics") + } + ), { + "./graphics": 156 + }], + 159: [(function(t, e) { + "use strict"; + var i = cc.Enum({ + BUTT: 0, + ROUND: 1, + SQUARE: 2 + }) + , n = cc.Enum({ + BEVEL: 0, + ROUND: 1, + MITER: 2 + }) + , r = cc.Enum({ + PT_CORNER: 1, + PT_LEFT: 2, + PT_BEVEL: 4, + PT_INNERBEVEL: 8 + }); + e.exports = { + LineCap: i, + LineJoin: n, + PointFlags: r + } + } + ), {}], + 160: [(function(t) { + "use strict"; + t("./platform"), + t("./assets"), + t("./CCNode"), + t("./CCPrivateNode"), + t("./CCScene"), + t("./components"), + t("./graphics"), + t("./collider"), + t("./collider/CCIntersection"), + t("./physics"), + t("./camera/CCCamera"), + t("./geom-utils"), + t("./mesh"), + t("./3d"), + t("./base-ui/CCWidgetManager") + } + ), { + "./3d": void 0, + "./CCNode": 29, + "./CCPrivateNode": 30, + "./CCScene": 31, + "./assets": 78, + "./base-ui/CCWidgetManager": 89, + "./camera/CCCamera": 90, + "./collider": 98, + "./collider/CCIntersection": 96, + "./components": 132, + "./geom-utils": 148, + "./graphics": 158, + "./mesh": 163, + "./physics": 178, + "./platform": 211 + }], + 161: [(function(t, e) { + "use strict"; + var i = s(t("../../renderer/core/input-assembler")) + , n = s(t("../../renderer/gfx")) + , r = t("./mesh-data"); + function s(t) { + return t && t.__esModule ? t : { + default: t + } + } + var a = t("../renderer") + , o = t("../event/event-target"); + function l(t, e, i) { + t[e] = i._val + } + function h(t, e, i) { + t[e] = i.x, + t[e + 1] = i.y + } + function c(t, e, i) { + t[e] = i.x, + t[e + 1] = i.y, + t[e + 2] = i.z + } + var u, _ = { + 5120: "getInt8", + 5121: "getUint8", + 5122: "getInt16", + 5123: "getUint16", + 5124: "getInt32", + 5125: "getUint32", + 5126: "getFloat32" + }, f = { + 5120: "setInt8", + 5121: "setUint8", + 5122: "setInt16", + 5123: "setUint16", + 5124: "setInt32", + 5125: "setUint32", + 5126: "setFloat32" + }, d = (u = new ArrayBuffer(2), + new DataView(u).setInt16(0, 256, !0), + 256 === new Int16Array(u)[0]), p = cc.Class({ + name: "cc.Mesh", + extends: cc.Asset, + mixins: [o], + properties: { + _nativeAsset: { + override: !0, + get: function() { + return this._buffer + }, + set: function(t) { + this._buffer = ArrayBuffer.isView(t) ? t.buffer : t, + this.initWithBuffer() + } + }, + _vertexBundles: { + default: null, + type: r.VertexBundle + }, + _primitives: { + default: null, + Primitive: r.Primitive + }, + _minPos: cc.v3(), + _maxPos: cc.v3(), + subMeshes: { + get: function() { + return this._subMeshes + }, + set: function(t) { + this._subMeshes = t + } + }, + subDatas: { + get: function() { + return this._subDatas + } + } + }, + ctor: function() { + this._subMeshes = [], + this._subDatas = [], + this.loaded = !1 + }, + initWithBuffer: function() { + this._subMeshes.length = 0; + for (var t = this._primitives, e = 0; e < t.length; e++) { + var s = t[e] + , o = s.data + , l = new Uint8Array(this._buffer,o.offset,o.length) + , h = this._vertexBundles[s.vertexBundleIndices[0]] + , c = h.data + , u = new n.default.VertexFormat(h.formats) + , _ = new Uint8Array(this._buffer,c.offset,c.length) + , f = this._canVertexFormatBatch(u) + , d = new r.MeshData; + d.vData = _, + d.iData = l, + d.vfm = u, + d.offset = c.offset, + d.canBatch = f, + this._subDatas.push(d); + var p = new n.default.VertexBuffer(a.device,u,n.default.USAGE_STATIC,_) + , m = new n.default.IndexBuffer(a.device,s.indexUnit,n.default.USAGE_STATIC,l); + this._subMeshes.push(new i.default(p,m)) + } + this.loaded = !0, + this.emit("load") + }, + _canVertexFormatBatch: function(t) { + var e = t._attr2el[n.default.ATTR_POSITION]; + return !e || e.type === n.default.ATTR_TYPE_FLOAT32 && t._bytes % 4 == 0 + }, + init: function(t, e, s, o) { + void 0 === s && (s = !1), + void 0 === o && (o = 0); + var l = new Uint8Array(t._bytes * e) + , h = new r.MeshData; + h.vData = l, + h.vfm = t, + h.vDirty = !0, + h.canBatch = this._canVertexFormatBatch(t); + var c = new n.default.VertexBuffer(a.device,t,s ? n.default.USAGE_DYNAMIC : n.default.USAGE_STATIC,l); + h.vb = c, + this._subMeshes[o] = new i.default(h.vb); + var u = this._subDatas[o]; + u && (u.vb && u.vb.destroy(), + u.ib && u.ib.destroy()), + this._subDatas[o] = h, + this.loaded = !0, + this.emit("load"), + this.emit("init-format") + }, + setVertices: function(t, e, i) { + i = i || 0; + var r = this._subDatas[i] + , s = r.vfm.element(t); + if (!s) + return cc.warn("Cannot find " + t + " attribute in vertex defines."); + var a, o = "number" == typeof e[0], u = s.num, _ = o ? e.length / u | 0 : e.length; + r.vData.byteLength < _ * s.stride && r.setVData(new Uint8Array(_ * r.vfm._bytes)); + var f = 4; + t === n.default.ATTR_COLOR ? o ? (a = r.getVData(), + f = 1) : a = r.getVData(Uint32Array) : a = r.getVData(Float32Array); + var d = s.stride / f + , p = s.offset / f; + if (o) + for (var m = 0, y = e.length / u; m < y; m++) + for (var v = m * u, g = m * d + p, A = 0; A < u; A++) + a[g + A] = e[v + A]; + else { + var x; + x = t === n.default.ATTR_COLOR ? l : 2 === u ? h : c; + for (var b = 0, C = e.length; b < C; b++) + x(a, b * d + p, e[b]) + } + r.vDirty = !0 + }, + setIndices: function(t, e, i) { + e = e || 0; + var r = t; + t instanceof Uint16Array ? r = new Uint8Array(t.buffer,t.byteOffset,t.byteLength) : Array.isArray(t) && (r = new Uint16Array(t), + r = new Uint8Array(r.buffer,r.byteOffset,r.byteLength)); + var s = i ? n.default.USAGE_DYNAMIC : n.default.USAGE_STATIC + , o = this._subDatas[e]; + if (o.ib) + o.iData = r, + o.iDirty = !0; + else { + o.iData = r; + var l = new n.default.IndexBuffer(a.device,n.default.INDEX_FMT_UINT16,s,r,r.byteLength / n.default.IndexBuffer.BYTES_PER_INDEX[n.default.INDEX_FMT_UINT16]); + o.ib = l, + this._subMeshes[e]._indexBuffer = o.ib + } + }, + setPrimitiveType: function(t, e) { + e = e || 0, + this._subMeshes[e] ? this._subMeshes[e]._primitiveType = t : cc.warn("Do not have sub mesh at index " + e) + }, + clear: function() { + this._subMeshes.length = 0; + for (var t = this._subDatas, e = 0, i = t.length; e < i; e++) { + var n = t[e].vb; + n && n.destroy(); + var r = t[e].ib; + r && r.destroy() + } + t.length = 0 + }, + setBoundingBox: function(t, e) { + this._minPos = t, + this._maxPos = e + }, + destroy: function() { + this.clear() + }, + _uploadData: function() { + for (var t = this._subDatas, e = 0, i = t.length; e < i; e++) { + var n = t[e]; + if (n.vDirty) { + var r = n.vb + , s = n.vData; + r.update(0, s), + n.vDirty = !1 + } + if (n.iDirty) { + var a = n.ib + , o = n.iData; + a.update(0, o), + n.iDirty = !1 + } + } + }, + _getAttrMeshData: function(t, e) { + var i = this._subDatas[t]; + if (!i) + return []; + var n = i.vfm + , r = n.element(e); + if (!r) + return []; + i.attrDatas || (i.attrDatas = {}); + var s = i.attrDatas + , a = s[e]; + if (a) + return a; + a = s[e] = []; + for (var o = i.vData, l = new DataView(o.buffer,o.byteOffset,o.byteLength), h = r.stride, c = r.offset, u = r.num, f = r.bytes / u, p = _[r.type], m = o.byteLength / n._bytes, y = 0; y < m; y++) + for (var v = y * h + c, g = 0; g < u; g++) { + var A = l[p](v + g * f, d); + a.push(A) + } + return a + }, + copyAttribute: function(t, e, i, n, r) { + var s = !1 + , a = this._subDatas[t]; + if (!a) + return s; + var o = a.vfm + , l = o.element(e); + if (!l) + return s; + var h = f[l.type]; + if (!h) + return s; + var c = this._getAttrMeshData(t, e) + , u = a.vData.byteLength / o._bytes + , _ = l.bytes / l.num; + if (c.length > 0) { + for (var p = new DataView(i,r), m = n, y = l.num, v = 0; v < u; ++v) + for (var g = v * y, A = 0; A < y; ++A) { + var x = g + A + , b = m * v + _ * A; + p[h](b, c[x], d) + } + s = !0 + } + return s + }, + copyIndices: function(t, e) { + var i = this._subDatas[t]; + if (!i) + return !1; + for (var r = i.iData, s = r.length / 2, a = new DataView(r.buffer,r.byteOffset,r.byteLength), o = _[n.default.INDEX_FMT_UINT8], l = 0; l < s; ++l) + e[l] = a[o](2 * l); + return !0 + } + }); + cc.Mesh = e.exports = p + } + ), { + "../../renderer/core/input-assembler": 305, + "../../renderer/gfx": 315, + "../event/event-target": 140, + "../renderer": 224, + "./mesh-data": 164 + }], + 162: [(function(t, e) { + "use strict"; + var i = s(t("../../renderer/gfx")) + , n = (s(t("../../renderer/core/input-assembler")), + s(t("../geom-utils/aabb"))) + , r = (s(t("../value-types/vec3")), + s(t("../value-types/mat4")), + s(t("../assets/material/material-variant"))); + function s(t) { + return t && t.__esModule ? t : { + default: t + } + } + var a = t("../components/CCRenderComponent") + , o = t("./CCMesh") + , l = t("../renderer/render-flow") + , h = (t("../renderer"), + t("../assets/material/CCMaterial")) + , c = cc.Enum({ + OFF: 0, + ON: 1 + }) + , u = cc.Class({ + name: "cc.MeshRenderer", + extends: a, + editor: !1, + properties: { + _mesh: { + default: null, + type: o + }, + _receiveShadows: !1, + _shadowCastingMode: c.OFF, + _enableAutoBatch: !1, + mesh: { + get: function() { + return this._mesh + }, + set: function(t) { + this._mesh !== t && (this._setMesh(t), + t ? (this.markForRender(!0), + this.node._renderFlag |= l.FLAG_TRANSFORM) : this.disableRender()) + }, + type: o, + animatable: !1 + }, + textures: { + default: [], + type: cc.Texture2D, + visible: !1 + }, + receiveShadows: { + get: function() { + return this._receiveShadows + }, + set: function(t) { + this._receiveShadows = t, + this._updateReceiveShadow() + }, + animatable: !1 + }, + shadowCastingMode: { + get: function() { + return this._shadowCastingMode + }, + set: function(t) { + this._shadowCastingMode = t, + this._updateCastShadow() + }, + type: c, + animatable: !1 + }, + enableAutoBatch: { + get: function() { + return this._enableAutoBatch + }, + set: function(t) { + this._enableAutoBatch = t + } + } + }, + statics: { + ShadowCastingMode: c + }, + ctor: function() { + this._boundingBox = cc.geomUtils && new n.default + }, + onEnable: function() { + var t = this; + this._super(), + this._mesh && !this._mesh.loaded ? (this.disableRender(), + this._mesh.once("load", (function() { + t.isValid && (t._setMesh(t._mesh), + t.markForRender(!0)) + } + )), + cc.assetManager.postLoadNative(this._mesh)) : this._setMesh(this._mesh), + this._updateRenderNode(), + this._updateMaterial() + }, + onDestroy: function() { + this._setMesh(null), + cc.pool.assembler.put(this._assembler) + }, + _updateRenderNode: function() { + this._assembler.setRenderNode(this.node) + }, + _setMesh: function(t) { + cc.geomUtils && t && n.default.fromPoints(this._boundingBox, t._minPos, t._maxPos), + this._mesh && this._mesh.off("init-format", this._updateMeshAttribute, this), + t && t.on("init-format", this._updateMeshAttribute, this), + this._mesh = t, + this._assembler && (this._assembler._worldDatas = {}), + this._updateMeshAttribute() + }, + _getDefaultMaterial: function() { + return h.getBuiltinMaterial("unlit") + }, + _validateRender: function() { + var t = this._mesh; + t && t._subDatas.length > 0 || this.disableRender() + }, + _updateMaterial: function() { + var t = this.textures; + if (t && t.length > 0) + for (var e = this._getDefaultMaterial(), i = 0; i < t.length; i++) { + var n = this._materials[i]; + n && n._uuid !== e._uuid || (n || (n = r.default.create(e, this), + this.setMaterial(i, n)), + n.setProperty("diffuseTexture", t[i])) + } + this._updateReceiveShadow(), + this._updateCastShadow(), + this._updateMeshAttribute() + }, + _updateReceiveShadow: function() { + for (var t = this.getMaterials(), e = 0; e < t.length; e++) + t[e].define("CC_USE_SHADOW_MAP", this._receiveShadows, void 0, !0) + }, + _updateCastShadow: function() { + for (var t = this.getMaterials(), e = 0; e < t.length; e++) + t[e].define("CC_CASTING_SHADOW", this._shadowCastingMode === c.ON, void 0, !0) + }, + _updateMeshAttribute: function() { + var t = this._mesh && this._mesh.subDatas; + if (t) + for (var e = this.getMaterials(), n = 0; n < e.length && t[n]; n++) { + var r = t[n].vfm + , s = e[n]; + s.define("CC_USE_ATTRIBUTE_COLOR", !!r.element(i.default.ATTR_COLOR), void 0, !0), + s.define("CC_USE_ATTRIBUTE_UV0", !!r.element(i.default.ATTR_UV0), void 0, !0), + s.define("CC_USE_ATTRIBUTE_NORMAL", !!r.element(i.default.ATTR_NORMAL), void 0, !0), + s.define("CC_USE_ATTRIBUTE_TANGENT", !!r.element(i.default.ATTR_TANGENT), void 0, !0) + } + }, + _checkBacth: function() {} + }); + cc.MeshRenderer = e.exports = u + } + ), { + "../../renderer/core/input-assembler": 305, + "../../renderer/gfx": 315, + "../assets/material/CCMaterial": 80, + "../assets/material/material-variant": 87, + "../components/CCRenderComponent": 115, + "../geom-utils/aabb": 144, + "../renderer": 224, + "../renderer/render-flow": 225, + "../value-types/mat4": 284, + "../value-types/vec3": 292, + "./CCMesh": 161 + }], + 163: [(function(t) { + "use strict"; + t("./CCMesh"), + t("./CCMeshRenderer"), + t("./mesh-renderer") + } + ), { + "./CCMesh": 161, + "./CCMeshRenderer": 162, + "./mesh-renderer": 165 + }], + 164: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.MeshData = h, + i.Primitive = i.VertexBundle = i.VertexFormat = i.BufferRange = void 0; + var n, r = (n = t("../../renderer/gfx")) && n.__esModule ? n : { + default: n + }, s = cc.Class({ + name: "cc.BufferRange", + properties: { + offset: 0, + length: 0 + } + }); + i.BufferRange = s; + var a = cc.Class({ + name: "cc.mesh.VertexFormat", + properties: { + name: "", + type: -1, + num: -1, + normalize: !1 + } + }); + i.VertexFormat = a; + var o = cc.Class({ + name: "cc.mesh.VertexBundle", + properties: { + data: { + default: null, + type: s + }, + formats: { + default: [], + type: a + }, + verticesCount: 0 + } + }); + i.VertexBundle = o; + var l = cc.Class({ + name: "cc.mesh.Primitive", + properties: { + vertexBundleIndices: { + default: [], + type: cc.Float + }, + data: { + default: null, + type: s + }, + indexUnit: r.default.INDEX_FMT_UINT16, + topology: r.default.PT_TRIANGLES + } + }); + function h() { + this.vData = null, + this.float32VData = null, + this.uint32VData = null, + this.iData = null, + this.uint16IData = null, + this.vfm = null, + this.offset = 0, + this.vb = null, + this.ib = null, + this.vDirty = !1, + this.iDirty = !1, + this.enable = !0 + } + i.Primitive = l, + h.prototype.setVData = function(t) { + this.vData = t, + this.float32VData = null, + this.uint32VData = null + } + , + h.prototype.getVData = function(t) { + return t === Float32Array ? (this.float32VData || (this.float32VData = new Float32Array(this.vData.buffer,this.vData.byteOffset,this.vData.byteLength / 4)), + this.float32VData) : t === Uint32Array ? (this.uint32VData || (this.uint32VData = new Uint32Array(this.vData.buffer,this.vData.byteOffset,this.vData.byteLength / 4)), + this.uint32VData) : this.vData + } + , + h.prototype.getIData = function(t) { + return t === Uint16Array ? (this.uint16IData || (this.uint16IData = new Uint16Array(this.iData.buffer,this.iData.byteOffset,this.iData.byteLength / 2)), + this.uint16IData) : this.iData + } + } + ), { + "../../renderer/gfx": 315 + }], + 165: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = a(t("../renderer/assembler")) + , r = a(t("../../renderer/gfx")) + , s = a(t("../value-types/vec3")); + function a(t) { + return t && t.__esModule ? t : { + default: t + } + } + function o(t, e) { + return (o = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var l = t("./CCMeshRenderer") + , h = new s.default + , c = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + o(e, i); + var a = n.prototype; + return a.init = function(e) { + t.prototype.init.call(this, e), + this._worldDatas = {}, + this._renderNode = null + } + , + a.setRenderNode = function(t) { + this._renderNode = t + } + , + a.fillBuffers = function(t, e) { + if (t.mesh) { + t.mesh._uploadData(); + for (var i = e.cullingMask === t.node._cullingMask, n = t.enableAutoBatch, s = t._materials, a = t.mesh._subMeshes, o = t.mesh.subDatas, l = 0; l < a.length; l++) { + var h = a[l] + , c = o[l] + , u = s[l] || s[0]; + n && c.canBatch && h._primitiveType === r.default.PT_TRIANGLES ? (i && u.getHash() === e.material.getHash() || e._flush(), + e.material = u, + e.cullingMask = t.node._cullingMask, + e.node = e._dummyNode, + this._fillBuffer(t, c, e, l)) : (e._flush(), + e.material = u, + e.cullingMask = t.node._cullingMask, + e.node = this._renderNode, + e._flushIA(h)) + } + } + } + , + a._fillBuffer = function(t, e, i, n) { + var r = e.getVData(Float32Array) + , s = e.vfm + , a = r.byteLength / s._bytes | 0 + , o = e.getIData(Uint16Array) + , l = o.length + , h = i.getBuffer("mesh", s) + , c = h.request(a, l) + , u = c.indiceOffset + , _ = c.byteOffset >> 2 + , f = c.vertexOffset + , d = h._vData + , p = h._iData; + !i.worldMatDirty && this._worldDatas[n] || this._updateWorldVertices(n, a, r, s, t.node._worldMatrix), + d.set(this._worldDatas[n], _); + for (var m = 0; m < l; m++) + p[u + m] = f + o[m] + } + , + a._updateWorldVertices = function(t, e, i, n, a) { + var o = this._worldDatas[t]; + o || (o = this._worldDatas[t] = new Float32Array(i.length)).set(i); + for (var l = n._bytes / 4, c = n._elements, u = 0, _ = c.length; u < _; u++) { + var f = c[u] + , d = f.offset / 4; + if (f.name === r.default.ATTR_POSITION || f.name === r.default.ATTR_NORMAL) + for (var p = f.name === r.default.ATTR_NORMAL ? s.default.transformMat4Normal : s.default.transformMat4, m = 0; m < e; m++) { + var y = m * l + d; + h.x = i[y], + h.y = i[y + 1], + h.z = i[y + 2], + p(h, h, a), + o[y] = h.x, + o[y + 1] = h.y, + o[y + 2] = h.z + } + } + } + , + a._drawDebugDatas = function(t, e, i) { + var n = t._debugDatas[i]; + if (n) + for (var r = 0; r < n.length; r++) { + var s = n[r]; + if (s) { + var a = s.material; + e.material = a, + e._flushIA(s.ia) + } + } + } + , + n + } + )(n.default); + i.default = c, + n.default.register(l, c), + e.exports = i.default + } + ), { + "../../renderer/gfx": 315, + "../renderer/assembler": 221, + "../value-types/vec3": 292, + "./CCMeshRenderer": 162 + }], + 166: [(function(t, e) { + "use strict"; + var i = t("./component-scheduler") + , n = t("./platform/CCObject").Flags + , r = t("./platform/js") + , s = n.IsPreloadStarted + , a = n.IsOnLoadStarted + , o = n.IsOnLoadCalled + , l = n.Deactivating + , h = cc.Class({ + extends: i.LifeCycleInvoker, + add: function(t) { + this._zero.array.push(t) + }, + remove: function(t) { + this._zero.fastRemove(t) + }, + cancelInactive: function(t) { + i.LifeCycleInvoker.stableRemoveInactive(this._zero, t) + }, + invoke: function() { + this._invoke(this._zero), + this._zero.array.length = 0 + } + }) + , c = i.createInvokeImpl("c.__preload();") + , u = i.createInvokeImpl("c.onLoad();c._objFlags|=" + o, !1, o) + , _ = new r.Pool(4); + function f(t, e, i) { + e ? t._removeComponent(e) : r.array.removeAt(t._components, i) + } + function d() { + this._activatingStack = [] + } + _.get = function() { + var t = this._get() || { + preload: new h(c), + onLoad: new i.OneOffInvoker(u), + onEnable: new i.OneOffInvoker(i.invokeOnEnable) + }; + t.preload._zero.i = -1; + var e = t.onLoad; + return e._zero.i = -1, + e._neg.i = -1, + e._pos.i = -1, + (e = t.onEnable)._zero.i = -1, + e._neg.i = -1, + e._pos.i = -1, + t + } + ; + var p = cc.Class({ + ctor: d, + reset: d, + _activateNodeRecursively: function(t, e, i, n) { + if (t._objFlags & l) + cc.errorID(3816, t.name); + else { + t._activeInHierarchy = !0; + for (var r = t._components.length, s = 0; s < r; ++s) { + var a = t._components[s]; + a instanceof cc.Component ? this.activateComp(a, e, i, n) : (f(t, a, s), + --s, + --r) + } + t._childArrivalOrder = t._children.length; + for (var o = 0, h = t._children.length; o < h; ++o) { + var c = t._children[o]; + c._localZOrder = 4294901760 & c._localZOrder | o + 1, + c._active && this._activateNodeRecursively(c, e, i, n) + } + t._onPostActivated(!0) + } + }, + _deactivateNodeRecursively: function(t) { + t._objFlags |= l, + t._activeInHierarchy = !1; + for (var e = t._components.length, i = 0; i < e; ++i) { + var n = t._components[i]; + if (n._enabled && (cc.director._compScheduler.disableComp(n), + t._activeInHierarchy)) + return void (t._objFlags &= ~l) + } + for (var r = 0, s = t._children.length; r < s; ++r) { + var a = t._children[r]; + if (a._activeInHierarchy && (this._deactivateNodeRecursively(a), + t._activeInHierarchy)) + return void (t._objFlags &= ~l) + } + t._onPostActivated(!1), + t._objFlags &= ~l + }, + activateNode: function(t, e) { + if (e) { + var i = _.get(); + this._activatingStack.push(i), + this._activateNodeRecursively(t, i.preload, i.onLoad, i.onEnable), + i.preload.invoke(), + i.onLoad.invoke(), + i.onEnable.invoke(), + this._activatingStack.pop(), + _.put(i) + } else { + this._deactivateNodeRecursively(t); + for (var n = this._activatingStack, r = 0; r < n.length; r++) { + var o = n[r]; + o.preload.cancelInactive(s), + o.onLoad.cancelInactive(a), + o.onEnable.cancelInactive() + } + } + t.emit("active-in-hierarchy-changed", t) + }, + activateComp: function(t, e, i, n) { + if (cc.isValid(t, !0) && (t._objFlags & s || (t._objFlags |= s, + t.__preload && (e ? e.add(t) : t.__preload())), + t._objFlags & a || (t._objFlags |= a, + t.onLoad ? i ? i.add(t) : (t.onLoad(), + t._objFlags |= o) : t._objFlags |= o), + t._enabled)) { + if (!t.node._activeInHierarchy) + return; + cc.director._compScheduler.enableComp(t, n) + } + }, + destroyComp: function(t) { + cc.director._compScheduler.disableComp(t), + t.onDestroy && t._objFlags & o && t.onDestroy() + }, + resetComp: !1 + }); + e.exports = p + } + ), { + "./component-scheduler": 99, + "./platform/CCObject": 199, + "./platform/js": 214, + "./utils/misc": 267 + }], + 167: [(function(t, e) { + "use strict"; + var i = t("./CCPhysicsTypes").PTM_RATIO + , n = t("./CCPhysicsTypes").ContactType + , r = [] + , s = [cc.v2(), cc.v2()] + , a = new b2.WorldManifold + , o = { + points: [], + separations: [], + normal: cc.v2() + }; + function l() { + this.localPoint = cc.v2(), + this.normalImpulse = 0, + this.tangentImpulse = 0 + } + var h = [new l, new l] + , c = (new b2.Manifold, + { + type: 0, + localPoint: cc.v2(), + localNormal: cc.v2(), + points: [] + }) + , u = { + normalImpulses: [], + tangentImpulses: [] + }; + function _() {} + _.prototype.init = function(t) { + this.colliderA = t.GetFixtureA().collider, + this.colliderB = t.GetFixtureB().collider, + this.disabled = !1, + this.disabledOnce = !1, + this._impulse = null, + this._inverted = !1, + this._b2contact = t, + t._contact = this + } + , + _.prototype.reset = function() { + this.setTangentSpeed(0), + this.resetFriction(), + this.resetRestitution(), + this.colliderA = null, + this.colliderB = null, + this.disabled = !1, + this._impulse = null, + this._b2contact._contact = null, + this._b2contact = null + } + , + _.prototype.getWorldManifold = function() { + var t = o.points + , e = o.separations + , n = o.normal; + this._b2contact.GetWorldManifold(a); + var r = a.points + , l = a.separations + , h = this._b2contact.GetManifold().pointCount; + t.length = e.length = h; + for (var c = 0; c < h; c++) { + var u = s[c]; + u.x = r[c].x * i, + u.y = r[c].y * i, + t[c] = u, + e[c] = l[c] * i + } + return n.x = a.normal.x, + n.y = a.normal.y, + this._inverted && (n.x *= -1, + n.y *= -1), + o + } + , + _.prototype.getManifold = function() { + for (var t = c.points, e = c.localNormal, n = c.localPoint, r = this._b2contact.GetManifold(), s = r.points, a = t.length = r.pointCount, o = 0; o < a; o++) { + var l = h[o] + , u = s[o]; + l.localPoint.x = u.localPoint.x * i, + l.localPoint.Y = u.localPoint.Y * i, + l.normalImpulse = u.normalImpulse * i, + l.tangentImpulse = u.tangentImpulse, + t[o] = l + } + return n.x = r.localPoint.x * i, + n.y = r.localPoint.y * i, + e.x = r.localNormal.x, + e.y = r.localNormal.y, + c.type = r.type, + this._inverted && (e.x *= -1, + e.y *= -1), + c + } + , + _.prototype.getImpulse = function() { + var t = this._impulse; + if (!t) + return null; + for (var e = u.normalImpulses, n = u.tangentImpulses, r = t.count, s = 0; s < r; s++) + e[s] = t.normalImpulses[s] * i, + n[s] = t.tangentImpulses[s]; + return n.length = e.length = r, + u + } + , + _.prototype.emit = function(t) { + var e; + switch (t) { + case n.BEGIN_CONTACT: + e = "onBeginContact"; + break; + case n.END_CONTACT: + e = "onEndContact"; + break; + case n.PRE_SOLVE: + e = "onPreSolve"; + break; + case n.POST_SOLVE: + e = "onPostSolve" + } + var i, r, s, a, o = this.colliderA, l = this.colliderB, h = o.body, c = l.body; + if (h.enabledContactListener) + for (i = h.node._components, + this._inverted = !1, + r = 0, + s = i.length; r < s; r++) + (a = i[r])[e] && a[e](this, o, l); + if (c.enabledContactListener) + for (i = c.node._components, + this._inverted = !0, + r = 0, + s = i.length; r < s; r++) + (a = i[r])[e] && a[e](this, l, o); + (this.disabled || this.disabledOnce) && (this.setEnabled(!1), + this.disabledOnce = !1) + } + , + _.get = function(t) { + var e; + return (e = 0 === r.length ? new cc.PhysicsContact : r.pop()).init(t), + e + } + , + _.put = function(t) { + var e = t._contact; + e && (r.push(e), + e.reset()) + } + ; + var f = _.prototype; + f.setEnabled = function(t) { + this._b2contact.SetEnabled(t) + } + , + f.isTouching = function() { + return this._b2contact.IsTouching() + } + , + f.setTangentSpeed = function(t) { + this._b2contact.SetTangentSpeed(t / i) + } + , + f.getTangentSpeed = function() { + return this._b2contact.GetTangentSpeed() * i + } + , + f.setFriction = function(t) { + this._b2contact.SetFriction(t) + } + , + f.getFriction = function() { + return this._b2contact.GetFriction() + } + , + f.resetFriction = function() { + return this._b2contact.ResetFriction() + } + , + f.setRestitution = function(t) { + this._b2contact.SetRestitution(t) + } + , + f.getRestitution = function() { + return this._b2contact.GetRestitution() + } + , + f.resetRestitution = function() { + return this._b2contact.ResetRestitution() + } + , + _.ContactType = n, + cc.PhysicsContact = e.exports = _ + } + ), { + "./CCPhysicsTypes": 169 + }], + 168: [(function(t, e) { + "use strict"; + var i = t("./CCPhysicsTypes") + , n = i.ContactType + , r = i.BodyType + , s = i.RayCastType + , a = i.DrawBits + , o = i.PTM_RATIO + , l = (i.ANGLE_TO_PHYSICS_ANGLE, + i.PHYSICS_ANGLE_TO_ANGLE) + , h = t("./utils").convertToNodeRotation + , c = t("./platform/CCPhysicsDebugDraw") + , u = new b2.AABB + , _ = new b2.Vec2 + , f = new b2.Vec2 + , d = cc.v2() + , p = cc.Class({ + mixins: [cc.EventTarget], + statics: { + DrawBits: a, + PTM_RATIO: o, + VELOCITY_ITERATIONS: 10, + POSITION_ITERATIONS: 10, + FIXED_TIME_STEP: 1 / 60, + MAX_ACCUMULATOR: .2 + }, + ctor: function() { + this._debugDrawFlags = 0, + this._debugDrawer = null, + this._world = null, + this._bodies = [], + this._joints = [], + this._contactMap = {}, + this._contactID = 0, + this._delayEvents = [], + this._accumulator = 0, + cc.director._scheduler && cc.director._scheduler.enableForTarget(this), + this.enabledAccumulator = !1 + }, + pushDelayEvent: function(t, e, i) { + this._steping ? this._delayEvents.push({ + target: t, + func: e, + args: i + }) : t[e].apply(t, i) + }, + update: function(t) { + var e = this._world; + if (e && this.enabled) { + this.emit("before-step"), + this._steping = !0; + var i = p.VELOCITY_ITERATIONS + , n = p.POSITION_ITERATIONS; + if (this.enabledAccumulator) { + this._accumulator += t; + var r = p.FIXED_TIME_STEP + , s = p.MAX_ACCUMULATOR; + for (this._accumulator > s && (this._accumulator = s); this._accumulator > r; ) + e.Step(r, i, n), + this._accumulator -= r + } else { + var a = 1 / cc.game.config.frameRate; + e.Step(a, i, n) + } + this.debugDrawFlags && (this._checkDebugDrawValid(), + this._debugDrawer.clear(), + e.DrawDebugData()), + this._steping = !1; + for (var o = this._delayEvents, l = 0, h = o.length; l < h; l++) { + var c = o[l]; + c.target[c.func].apply(c.target, c.args) + } + o.length = 0, + this._syncNode() + } + }, + testPoint: function(t) { + var e = _.x = t.x / o + , i = _.y = t.y / o + , n = .2 / o; + u.lowerBound.x = e - n, + u.lowerBound.y = i - n, + u.upperBound.x = e + n, + u.upperBound.y = i + n; + var r = this._aabbQueryCallback; + r.init(_), + this._world.QueryAABB(r, u); + var s = r.getFixture(); + return s ? s.collider : null + }, + testAABB: function(t) { + u.lowerBound.x = t.xMin / o, + u.lowerBound.y = t.yMin / o, + u.upperBound.x = t.xMax / o, + u.upperBound.y = t.yMax / o; + var e = this._aabbQueryCallback; + return e.init(), + this._world.QueryAABB(e, u), + e.getFixtures().map((function(t) { + return t.collider + } + )) + }, + rayCast: function(t, e, i) { + if (t.equals(e)) + return []; + i = i || s.Closest, + _.x = t.x / o, + _.y = t.y / o, + f.x = e.x / o, + f.y = e.y / o; + var n = this._raycastQueryCallback; + n.init(i), + this._world.RayCast(n, _, f); + var r = n.getFixtures(); + if (r.length > 0) { + for (var a = n.getPoints(), l = n.getNormals(), h = n.getFractions(), c = [], u = 0, d = r.length; u < d; u++) { + var p = r[u] + , m = p.collider; + if (i === s.AllClosest) { + var y = c.find((function(t) { + return t.collider === m + } + )); + if (y) { + h[u] < y.fraction && (y.fixtureIndex = m._getFixtureIndex(p), + y.point.x = a[u].x * o, + y.point.y = a[u].y * o, + y.normal.x = l[u].x, + y.normal.y = l[u].y, + y.fraction = h[u]); + continue + } + } + c.push({ + collider: m, + fixtureIndex: m._getFixtureIndex(p), + point: cc.v2(a[u].x * o, a[u].y * o), + normal: cc.v2(l[u]), + fraction: h[u] + }) + } + return c + } + return [] + }, + syncPosition: function() { + for (var t = this._bodies, e = 0; e < t.length; e++) + t[e].syncPosition() + }, + syncRotation: function() { + for (var t = this._bodies, e = 0; e < t.length; e++) + t[e].syncRotation() + }, + _registerContactFixture: function(t) { + this._contactListener.registerContactFixture(t) + }, + _unregisterContactFixture: function(t) { + this._contactListener.unregisterContactFixture(t) + }, + _addBody: function(t, e) { + var i = this._world + , n = t.node; + i && n && (t._b2Body = i.CreateBody(e), + t._b2Body.body = t, + this._bodies.push(t)) + }, + _removeBody: function(t) { + var e = this._world; + e && (t._b2Body.body = null, + e.DestroyBody(t._b2Body), + t._b2Body = null, + cc.js.array.remove(this._bodies, t)) + }, + _addJoint: function(t, e) { + var i = this._world.CreateJoint(e); + i && (i._joint = t, + t._joint = i, + this._joints.push(t)) + }, + _removeJoint: function(t) { + t._isValid() && this._world.DestroyJoint(t._joint), + t._joint && (t._joint._joint = null), + cc.js.array.remove(this._joints, t) + }, + _initCallback: function() { + if (this._world) { + if (!this._contactListener) { + var t = new cc.PhysicsContactListener; + t.setBeginContact(this._onBeginContact), + t.setEndContact(this._onEndContact), + t.setPreSolve(this._onPreSolve), + t.setPostSolve(this._onPostSolve), + this._world.SetContactListener(t), + this._contactListener = t, + this._aabbQueryCallback = new cc.PhysicsAABBQueryCallback, + this._raycastQueryCallback = new cc.PhysicsRayCastCallback + } + } else + cc.warn("Please init PhysicsManager first") + }, + _init: function() { + this.enabled = !0, + this.debugDrawFlags = a.e_shapeBit + }, + _getWorld: function() { + return this._world + }, + _syncNode: function() { + for (var t = this._bodies, e = 0, i = t.length; e < i; e++) { + var n = t[e] + , s = n.node + , a = n._b2Body + , c = a.GetPosition(); + d.x = c.x * o, + d.y = c.y * o; + var u = a.GetAngle() * l; + null !== s.parent.parent && (d = s.parent.convertToNodeSpaceAR(d), + u = h(s.parent, u)); + var _ = s._eventMask; + s._eventMask = 0, + s.position = d, + s.angle = -u, + s._eventMask = _, + n.type === r.Animated && n.resetVelocity() + } + }, + _onBeginContact: function(t) { + cc.PhysicsContact.get(t).emit(n.BEGIN_CONTACT) + }, + _onEndContact: function(t) { + var e = t._contact; + e && (e.emit(n.END_CONTACT), + cc.PhysicsContact.put(t)) + }, + _onPreSolve: function(t) { + var e = t._contact; + e && e.emit(n.PRE_SOLVE) + }, + _onPostSolve: function(t, e) { + var i = t._contact; + i && (i._impulse = e, + i.emit(n.POST_SOLVE), + i._impulse = null) + }, + _checkDebugDrawValid: function() { + if (!this._debugDrawer || !this._debugDrawer.isValid) { + var t = new cc.Node("PHYSICS_MANAGER_DEBUG_DRAW"); + t.zIndex = cc.macro.MAX_ZINDEX, + cc.game.addPersistRootNode(t), + this._debugDrawer = t.addComponent(cc.Graphics); + var e = new c(this._debugDrawer); + e.SetFlags(this.debugDrawFlags), + this._world.SetDebugDraw(e) + } + } + }); + cc.js.getset(p.prototype, "enabled", (function() { + return this._enabled + } + ), (function(t) { + if (t && !this._world) { + var e = new b2.World(new b2.Vec2(0,-10)); + e.SetAllowSleeping(!0), + this._world = e, + this._initCallback() + } + this._enabled = t + } + )), + cc.js.getset(p.prototype, "debugDrawFlags", (function() { + return this._debugDrawFlags + } + ), (function(t) { + t && !this._debugDrawFlags ? this._debugDrawer && this._debugDrawer.node && (this._debugDrawer.node.active = !0) : !t && this._debugDrawFlags && this._debugDrawer && this._debugDrawer.node && (this._debugDrawer.node.active = !1), + t && (this._checkDebugDrawValid(), + this._world.m_debugDraw.SetFlags(t)), + this._debugDrawFlags = t, + t && (this._checkDebugDrawValid(), + this._world.m_debugDraw.SetFlags(t)) + } + )), + cc.js.getset(p.prototype, "gravity", (function() { + if (this._world) { + var t = this._world.GetGravity(); + return cc.v2(t.x * o, t.y * o) + } + return cc.v2() + } + ), (function(t) { + this._world && this._world.SetGravity(new b2.Vec2(t.x / o,t.y / o)) + } + )), + cc.PhysicsManager = e.exports = p + } + ), { + "./CCPhysicsTypes": 169, + "./platform/CCPhysicsDebugDraw": 190, + "./utils": 192 + }], + 169: [(function(t, e) { + "use strict"; + var i = cc.Enum({ + Static: 0, + Kinematic: 1, + Dynamic: 2, + Animated: 3 + }); + cc.RigidBodyType = i; + var n = cc.Enum({ + Closest: 0, + Any: 1, + AllClosest: 2, + All: 3 + }); + cc.RayCastType = n, + e.exports = { + BodyType: i, + ContactType: { + BEGIN_CONTACT: "begin-contact", + END_CONTACT: "end-contact", + PRE_SOLVE: "pre-solve", + POST_SOLVE: "post-solve" + }, + RayCastType: n, + DrawBits: b2.DrawFlags, + PTM_RATIO: 32, + ANGLE_TO_PHYSICS_ANGLE: -Math.PI / 180, + PHYSICS_ANGLE_TO_ANGLE: -180 / Math.PI + } + } + ), {}], + 170: [(function(t, e) { + "use strict"; + function i(t, e) { + var i = e.length; + return e[t < 0 ? i - -t % i : t % i] + } + function n(t, e, n) { + for (var r = []; e < t; ) + e += n.length; + for (; t <= e; ++t) + r.push(i(t, n)); + return r + } + function r(t, e, n) { + if (s(t, n)) { + if (l(i(t, n), i(t - 1, n), i(e, n)) && h(i(t, n), i(t + 1, n), i(e, n))) + return !1 + } else if (h(i(t, n), i(t + 1, n), i(e, n)) || l(i(t, n), i(t - 1, n), i(e, n))) + return !1; + if (s(e, n)) { + if (l(i(e, n), i(e - 1, n), i(t, n)) && h(i(e, n), i(e + 1, n), i(t, n))) + return !1 + } else if (h(i(e, n), i(e + 1, n), i(t, n)) || l(i(e, n), i(e - 1, n), i(t, n))) + return !1; + for (var r = 0; r < n.length; ++r) + if ((r + 1) % n.length != t && r != t && (r + 1) % n.length != e && r != e) { + var a = cc.v2(); + if (p(i(t, n), i(e, n), i(r, n), i(r + 1, n), a)) + return !1 + } + return !0 + } + function s(t, e) { + return a(t, e) + } + function a(t, e, n) { + if (void 0 === n) { + var r = t + , s = e; + t = i(r - 1, s), + e = i(r, s), + n = i(r + 1, s) + } + return m(t, e, n) < 0 + } + function o(t, e, i) { + return m(t, e, i) > 0 + } + function l(t, e, i) { + return m(t, e, i) >= 0 + } + function h(t, e, i) { + return m(t, e, i) <= 0 + } + function c(t, e) { + var i = e.x - t.x + , n = e.y - t.y; + return i * i + n * n + } + function u(t) { + _(t) || t.reverse() + } + function _(t) { + return t.length < 3 || f(t) > 0 + } + function f(t) { + var e, i = 0; + for (e = 0; e < t.length; e++) { + var n = (e + 1) % t.length; + i += t[e].x * t[n].y, + i -= t[e].y * t[n].x + } + return i / 2 + } + function d(t, e, i, n) { + var r, s = cc.v2(), a = e.y - t.y, o = t.x - e.x, l = a * t.x + o * t.y, h = n.y - i.y, c = i.x - n.x, u = h * i.x + c * i.y, _ = a * c - h * o; + return r = _, + 0, + Math.abs(r - 0) <= 1e-6 || (s.x = (c * l - o * u) / _, + s.y = (a * u - h * l) / _), + s + } + function p(t, e, i, n, r) { + if (t == i || t == n || e == i || e == n) + return !1; + var s = t.x + , a = t.y + , o = e.x + , l = e.y + , h = i.x + , c = i.y + , u = n.x + , _ = n.y; + if (Math.max(s, o) < Math.min(h, u) || Math.max(h, u) < Math.min(s, o)) + return !1; + if (Math.max(a, l) < Math.min(c, _) || Math.max(c, _) < Math.min(a, l)) + return !1; + var f = (u - h) * (a - c) - (_ - c) * (s - h) + , d = (o - s) * (a - c) - (l - a) * (s - h) + , p = (_ - c) * (o - s) - (u - h) * (l - a); + return !(Math.abs(p) < 1e-6) && (d /= p, + 0 < (f /= p) && f < 1 && 0 < d && d < 1 && (r.x = s + f * (o - s), + r.y = a + f * (l - a), + !0)) + } + function m(t, e, i) { + return t.x * (e.y - i.y) + e.x * (i.y - t.y) + i.x * (t.y - e.y) + } + e.exports = { + ConvexPartition: function t(e) { + u(e); + for (var _, f, p, m, y, v, g = [], A = cc.v2(), x = cc.v2(), b = 0, C = 0, T = 0; T < e.length; ++T) + if (s(T, e)) { + f = p = 1e8; + for (var S = 0; S < e.length; ++S) + o(i(T - 1, e), i(T, e), i(S, e)) && h(i(T - 1, e), i(T, e), i(S - 1, e)) && (m = d(i(T - 1, e), i(T, e), i(S, e), i(S - 1, e)), + a(i(T + 1, e), i(T, e), m) && (_ = c(i(T, e), m)) < f && (f = _, + A = m, + b = S)), + o(i(T + 1, e), i(T, e), i(S + 1, e)) && h(i(T + 1, e), i(T, e), i(S, e)) && (m = d(i(T + 1, e), i(T, e), i(S, e), i(S + 1, e)), + o(i(T - 1, e), i(T, e), m) && (_ = c(i(T, e), m)) < p && (p = _, + C = S, + x = m)); + if (b == (C + 1) % e.length) { + var w = A.add(x).div(2); + (y = n(T, C, e)).push(w), + (v = n(b, T, e)).push(w) + } else { + for (var E = 0, M = b; C < b; ) + C += e.length; + for (S = b; S <= C; ++S) + if (r(T, S, e)) { + var D = 1 / (c(i(T, e), i(S, e)) + 1); + s(S, e) ? h(i(S - 1, e), i(S, e), i(T, e)) && l(i(S + 1, e), i(S, e), i(T, e)) ? D += 3 : D += 2 : D += 1, + D > E && (M = S, + E = D) + } + y = n(T, M, e), + v = n(M, T, e) + } + return (g = g.concat(t(y))).concat(t(v)) + } + for (g.push(e), + T = g.length - 1; T >= 0; T--) + 0 == g[T].length && g.splice(T, 0); + return g + }, + ForceCounterClockWise: u, + IsCounterClockWise: _ + } + } + ), {}], + 171: [(function(t, e) { + "use strict"; + var i = t("../CCNode").EventType + , n = t("./CCPhysicsTypes").PTM_RATIO + , r = t("./CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE + , s = t("./CCPhysicsTypes").PHYSICS_ANGLE_TO_ANGLE + , a = t("./utils").getWorldRotation + , o = t("./CCPhysicsTypes").BodyType + , l = new b2.Vec2 + , h = new b2.Vec2 + , c = cc.Vec2.ZERO + , u = cc.Class({ + name: "cc.RigidBody", + extends: cc.Component, + editor: !1, + properties: { + _type: o.Dynamic, + _allowSleep: !0, + _gravityScale: 1, + _linearDamping: 0, + _angularDamping: 0, + _linearVelocity: cc.v2(0, 0), + _angularVelocity: 0, + _fixedRotation: !1, + enabled: { + get: function() { + return this._enabled + }, + set: function() { + cc.warnID(8200) + }, + visible: !1, + override: !0 + }, + enabledContactListener: { + default: !1, + tooltip: !1 + }, + bullet: { + default: !1, + tooltip: !1 + }, + type: { + type: o, + tooltip: !1, + get: function() { + return this._type + }, + set: function(t) { + this._type = t, + this._b2Body && (t === o.Animated ? this._b2Body.SetType(o.Kinematic) : this._b2Body.SetType(t)) + } + }, + allowSleep: { + tooltip: !1, + get: function() { + return this._b2Body ? this._b2Body.IsSleepingAllowed() : this._allowSleep + }, + set: function(t) { + this._allowSleep = t, + this._b2Body && this._b2Body.SetSleepingAllowed(t) + } + }, + gravityScale: { + tooltip: !1, + get: function() { + return this._gravityScale + }, + set: function(t) { + this._gravityScale = t, + this._b2Body && this._b2Body.SetGravityScale(t) + } + }, + linearDamping: { + tooltip: !1, + get: function() { + return this._linearDamping + }, + set: function(t) { + this._linearDamping = t, + this._b2Body && this._b2Body.SetLinearDamping(this._linearDamping) + } + }, + angularDamping: { + tooltip: !1, + get: function() { + return this._angularDamping + }, + set: function(t) { + this._angularDamping = t, + this._b2Body && this._b2Body.SetAngularDamping(t) + } + }, + linearVelocity: { + tooltip: !1, + type: cc.Vec2, + get: function() { + var t = this._linearVelocity; + if (this._b2Body) { + var e = this._b2Body.GetLinearVelocity(); + t.x = e.x * n, + t.y = e.y * n + } + return t + }, + set: function(t) { + this._linearVelocity = t; + var e = this._b2Body; + if (e) { + var i = e.m_linearVelocity; + i.Set(t.x / n, t.y / n), + e.SetLinearVelocity(i) + } + } + }, + angularVelocity: { + tooltip: !1, + get: function() { + return this._b2Body ? this._b2Body.GetAngularVelocity() * s : this._angularVelocity + }, + set: function(t) { + this._angularVelocity = t, + this._b2Body && this._b2Body.SetAngularVelocity(t * r) + } + }, + fixedRotation: { + tooltip: !1, + get: function() { + return this._fixedRotation + }, + set: function(t) { + this._fixedRotation = t, + this._b2Body && this._b2Body.SetFixedRotation(t) + } + }, + awake: { + visible: !1, + tooltip: !1, + get: function() { + return !!this._b2Body && this._b2Body.IsAwake() + }, + set: function(t) { + this._b2Body && this._b2Body.SetAwake(t) + } + }, + awakeOnLoad: { + default: !0, + tooltip: !1, + animatable: !1 + }, + active: { + visible: !1, + get: function() { + return !!this._b2Body && this._b2Body.IsActive() + }, + set: function(t) { + this._b2Body && this._b2Body.SetActive(t) + } + } + }, + getLocalPoint: function(t, e) { + if (e = e || cc.v2(), + this._b2Body) { + l.Set(t.x / n, t.y / n); + var i = this._b2Body.GetLocalPoint(l, e); + e.x = i.x * n, + e.y = i.y * n + } + return e + }, + getWorldPoint: function(t, e) { + if (e = e || cc.v2(), + this._b2Body) { + l.Set(t.x / n, t.y / n); + var i = this._b2Body.GetWorldPoint(l, e); + e.x = i.x * n, + e.y = i.y * n + } + return e + }, + getWorldVector: function(t, e) { + if (e = e || cc.v2(), + this._b2Body) { + l.Set(t.x / n, t.y / n); + var i = this._b2Body.GetWorldVector(l, e); + e.x = i.x * n, + e.y = i.y * n + } + return e + }, + getLocalVector: function(t, e) { + if (e = e || cc.v2(), + this._b2Body) { + l.Set(t.x / n, t.y / n); + var i = this._b2Body.GetLocalVector(l, e); + e.x = i.x * n, + e.y = i.y * n + } + return e + }, + getWorldPosition: function(t) { + if (t = t || cc.v2(), + this._b2Body) { + var e = this._b2Body.GetPosition(); + t.x = e.x * n, + t.y = e.y * n + } + return t + }, + getWorldRotation: function() { + return this._b2Body ? this._b2Body.GetAngle() * s : 0 + }, + getLocalCenter: function(t) { + if (t = t || cc.v2(), + this._b2Body) { + var e = this._b2Body.GetLocalCenter(); + t.x = e.x * n, + t.y = e.y * n + } + return t + }, + getWorldCenter: function(t) { + if (t = t || cc.v2(), + this._b2Body) { + var e = this._b2Body.GetWorldCenter(); + t.x = e.x * n, + t.y = e.y * n + } + return t + }, + getLinearVelocityFromWorldPoint: function(t, e) { + if (e = e || cc.v2(), + this._b2Body) { + l.Set(t.x / n, t.y / n); + var i = this._b2Body.GetLinearVelocityFromWorldPoint(l, e); + e.x = i.x * n, + e.y = i.y * n + } + return e + }, + getMass: function() { + return this._b2Body ? this._b2Body.GetMass() : 0 + }, + getInertia: function() { + return this._b2Body ? this._b2Body.GetInertia() * n * n : 0 + }, + getJointList: function() { + if (!this._b2Body) + return []; + var t = [] + , e = this._b2Body.GetJointList(); + if (!e) + return []; + t.push(e.joint._joint); + for (var i = e.prev; i; ) + t.push(i.joint._joint), + i = i.prev; + for (var n = e.next; n; ) + t.push(n.joint._joint), + n = n.next; + return t + }, + applyForce: function(t, e, i) { + this._b2Body && (l.Set(t.x / n, t.y / n), + h.Set(e.x / n, e.y / n), + this._b2Body.ApplyForce(l, h, i)) + }, + applyForceToCenter: function(t, e) { + this._b2Body && (l.Set(t.x / n, t.y / n), + this._b2Body.ApplyForceToCenter(l, e)) + }, + applyTorque: function(t, e) { + this._b2Body && this._b2Body.ApplyTorque(t / n, e) + }, + applyLinearImpulse: function(t, e, i) { + this._b2Body && (l.Set(t.x / n, t.y / n), + h.Set(e.x / n, e.y / n), + this._b2Body.ApplyLinearImpulse(l, h, i)) + }, + applyAngularImpulse: function(t, e) { + this._b2Body && this._b2Body.ApplyAngularImpulse(t / n / n, e) + }, + syncPosition: function(t) { + var e = this._b2Body; + if (e) { + var i, r = this.node.convertToWorldSpaceAR(c); + if ((i = this.type === o.Animated ? e.GetLinearVelocity() : e.GetPosition()).x = r.x / n, + i.y = r.y / n, + this.type === o.Animated && t) { + var s = e.GetPosition() + , a = cc.game.config.frameRate; + i.x = (i.x - s.x) * a, + i.y = (i.y - s.y) * a, + e.SetAwake(!0), + e.SetLinearVelocity(i) + } else + e.SetTransformVec(i, e.GetAngle()) + } + }, + syncRotation: function(t) { + var e = this._b2Body; + if (e) { + var i = r * a(this.node); + if (this.type === o.Animated && t) { + var n = e.GetAngle() + , s = cc.game.config.frameRate; + e.SetAwake(!0), + e.SetAngularVelocity((i - n) * s) + } else + e.SetTransformVec(e.GetPosition(), i) + } + }, + resetVelocity: function() { + var t = this._b2Body; + if (t) { + var e = t.m_linearVelocity; + e.Set(0, 0), + t.SetLinearVelocity(e), + t.SetAngularVelocity(0) + } + }, + onEnable: function() { + this._init() + }, + onDisable: function() { + this._destroy() + }, + _registerNodeEvents: function() { + var t = this.node; + t.on(i.POSITION_CHANGED, this._onNodePositionChanged, this), + t.on(i.ROTATION_CHANGED, this._onNodeRotationChanged, this), + t.on(i.SCALE_CHANGED, this._onNodeScaleChanged, this) + }, + _unregisterNodeEvents: function() { + var t = this.node; + t.off(i.POSITION_CHANGED, this._onNodePositionChanged, this), + t.off(i.ROTATION_CHANGED, this._onNodeRotationChanged, this), + t.off(i.SCALE_CHANGED, this._onNodeScaleChanged, this) + }, + _onNodePositionChanged: function() { + this.syncPosition(!0) + }, + _onNodeRotationChanged: function() { + this.syncRotation(!0) + }, + _onNodeScaleChanged: function() { + if (this._b2Body) + for (var t = this.getComponents(cc.PhysicsCollider), e = 0; e < t.length; e++) + t[e].apply() + }, + _init: function() { + cc.director.getPhysicsManager().pushDelayEvent(this, "__init", []) + }, + _destroy: function() { + cc.director.getPhysicsManager().pushDelayEvent(this, "__destroy", []) + }, + __init: function() { + if (!this._inited) { + this._registerNodeEvents(); + var t = new b2.BodyDef; + this.type === o.Animated ? t.type = o.Kinematic : t.type = this.type, + t.allowSleep = this.allowSleep, + t.gravityScale = this.gravityScale, + t.linearDamping = this.linearDamping, + t.angularDamping = this.angularDamping; + var e = this.linearVelocity; + t.linearVelocity = new b2.Vec2(e.x / n,e.y / n), + t.angularVelocity = this.angularVelocity * r, + t.fixedRotation = this.fixedRotation, + t.bullet = this.bullet; + var i = this.node + , s = i.convertToWorldSpaceAR(c); + t.position = new b2.Vec2(s.x / n,s.y / n), + t.angle = -Math.PI / 180 * a(i), + t.awake = this.awakeOnLoad, + cc.director.getPhysicsManager()._addBody(this, t), + this._inited = !0 + } + }, + __destroy: function() { + this._inited && (cc.director.getPhysicsManager()._removeBody(this), + this._unregisterNodeEvents(), + this._inited = !1) + }, + _getBody: function() { + return this._b2Body + } + }); + cc.RigidBody = e.exports = u + } + ), { + "../CCNode": 29, + "./CCPhysicsTypes": 169, + "./utils": 192 + }], + 172: [(function(t) { + "use strict"; + var e = t("../../../external/box2d/box2d"); + for (var i in window.b2 = {}, + e) + if (-1 === i.indexOf("b2_")) { + var n = i.replace("b2", ""); + b2[n] = e[i] + } + b2.maxPolygonVertices = 8 + } + ), { + "../../../external/box2d/box2d": 377 + }], + 173: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = cc.Class({ + name: "cc.PhysicsBoxCollider", + extends: cc.PhysicsCollider, + mixins: [cc.Collider.Box], + editor: { + menu: !1, + requireComponent: cc.RigidBody + }, + _createShape: function(t) { + var e = Math.abs(t.x) + , n = Math.abs(t.y) + , r = this.size.width / 2 / i * e + , s = this.size.height / 2 / i * n + , a = this.offset.x / i * e + , o = this.offset.y / i * n + , l = new b2.PolygonShape; + return l.SetAsBox(r, s, new b2.Vec2(a,o), 0), + l + } + }); + cc.PhysicsBoxCollider = e.exports = n + } + ), { + "../CCPhysicsTypes": 169 + }], + 174: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = cc.Class({ + name: "cc.PhysicsChainCollider", + extends: cc.PhysicsCollider, + editor: { + menu: !1, + inspector: !1, + requireComponent: cc.RigidBody + }, + properties: { + loop: !1, + points: { + default: function() { + return [cc.v2(-50, 0), cc.v2(50, 0)] + }, + type: [cc.Vec2] + }, + threshold: { + default: 1, + serializable: !1, + visible: !1 + } + }, + _createShape: function(t) { + for (var e = new b2.ChainShape, n = this.points, r = [], s = 0; s < n.length; s++) { + var a = n[s]; + r.push(new b2.Vec2(a.x / i * t.x,a.y / i * t.y)) + } + return this.loop ? e.CreateLoop(r, r.length) : e.CreateChain(r, r.length), + e + }, + resetInEditor: !1, + resetPointsByContour: !1 + }); + cc.PhysicsChainCollider = e.exports = n + } + ), { + "../CCPhysicsTypes": 169 + }], + 175: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = cc.Class({ + name: "cc.PhysicsCircleCollider", + extends: cc.PhysicsCollider, + mixins: [cc.Collider.Circle], + editor: { + menu: !1, + requireComponent: cc.RigidBody + }, + _createShape: function(t) { + var e = Math.abs(t.x) + , n = Math.abs(t.y) + , r = this.offset.x / i * e + , s = this.offset.y / i * n + , a = new b2.CircleShape; + return a.m_radius = this.radius / i * e, + a.m_p = new b2.Vec2(r,s), + a + } + }); + cc.PhysicsCircleCollider = e.exports = n + } + ), { + "../CCPhysicsTypes": 169 + }], + 176: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = t("../utils").getWorldScale + , r = new b2.AABB + , s = cc.Class({ + name: "cc.PhysicsCollider", + extends: cc.Collider, + ctor: function() { + this._fixtures = [], + this._shapes = [], + this._inited = !1, + this._rect = cc.rect() + }, + properties: { + _density: 1, + _sensor: !1, + _friction: .2, + _restitution: 0, + density: { + tooltip: !1, + get: function() { + return this._density + }, + set: function(t) { + this._density = t + } + }, + sensor: { + tooltip: !1, + get: function() { + return this._sensor + }, + set: function(t) { + this._sensor = t + } + }, + friction: { + tooltip: !1, + get: function() { + return this._friction + }, + set: function(t) { + this._friction = t + } + }, + restitution: { + tooltip: !1, + get: function() { + return this._restitution + }, + set: function(t) { + this._restitution = t + } + }, + body: { + default: null, + type: cc.RigidBody, + visible: !1 + } + }, + onDisable: function() { + this._destroy() + }, + onEnable: function() { + this._init() + }, + start: function() { + this._init() + }, + _getFixtureIndex: function(t) { + return this._fixtures.indexOf(t) + }, + _init: function() { + cc.director.getPhysicsManager().pushDelayEvent(this, "__init", []) + }, + _destroy: function() { + cc.director.getPhysicsManager().pushDelayEvent(this, "__destroy", []) + }, + __init: function() { + if (!this._inited) { + var t = this.body || this.getComponent(cc.RigidBody); + if (t) { + var e = t._getBody(); + if (e) { + var i = t.node + , r = n(i); + this._scale = r; + var s = 0 === r.x && 0 === r.y ? [] : this._createShape(r); + s instanceof Array || (s = [s]); + for (var a = 1 << i.groupIndex, o = 0, l = cc.game.collisionMatrix[i.groupIndex], h = 0; h < l.length; h++) + l[h] && (o |= 1 << h); + for (var c = { + categoryBits: a, + maskBits: o, + groupIndex: 0 + }, u = cc.director.getPhysicsManager(), _ = 0; _ < s.length; _++) { + var f = s[_] + , d = new b2.FixtureDef; + d.density = this.density, + d.isSensor = this.sensor, + d.friction = this.friction, + d.restitution = this.restitution, + d.shape = f, + d.filter = c; + var p = e.CreateFixture(d); + p.collider = this, + t.enabledContactListener && u._registerContactFixture(p), + this._shapes.push(f), + this._fixtures.push(p) + } + this.body = t, + this._inited = !0 + } + } + } + }, + __destroy: function() { + if (this._inited) { + for (var t = this._fixtures, e = this.body._getBody(), i = cc.director.getPhysicsManager(), n = t.length - 1; n >= 0; n--) { + var r = t[n]; + r.collider = null, + i._unregisterContactFixture(r), + e && e.DestroyFixture(r) + } + this.body = null, + this._fixtures.length = 0, + this._shapes.length = 0, + this._inited = !1 + } + }, + _createShape: function() {}, + apply: function() { + this._destroy(), + this._init() + }, + getAABB: function() { + for (var t = 1e7, e = 1e7, n = -1e7, s = -1e7, a = this.body._getBody().GetTransform(), o = this._fixtures, l = 0; l < o.length; l++) + for (var h = o[l].GetShape(), c = h.GetChildCount(), u = 0; u < c; u++) + h.ComputeAABB(r, a, u), + r.lowerBound.x < t && (t = r.lowerBound.x), + r.lowerBound.y < e && (e = r.lowerBound.y), + r.upperBound.x > n && (n = r.upperBound.x), + r.upperBound.y > s && (s = r.upperBound.y); + t *= i, + e *= i, + n *= i, + s *= i; + var _ = this._rect; + return _.x = t, + _.y = e, + _.width = n - t, + _.height = s - e, + _ + } + }); + cc.PhysicsCollider = e.exports = s + } + ), { + "../CCPhysicsTypes": 169, + "../utils": 192 + }], + 177: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = t("../CCPolygonSeparator") + , r = cc.Class({ + name: "cc.PhysicsPolygonCollider", + extends: cc.PhysicsCollider, + mixins: [cc.Collider.Polygon], + editor: { + menu: !1, + inspector: !1, + requireComponent: cc.RigidBody + }, + _createShape: function(t) { + var e = [] + , r = this.points; + r.length > 0 && r[0].equals(r[r.length - 1]) && (r.length -= 1); + for (var s = n.ConvexPartition(r), a = this.offset, o = 0; o < s.length; o++) { + for (var l = s[o], h = null, c = [], u = null, _ = 0, f = l.length; _ < f; _++) { + h || (h = new b2.PolygonShape); + var d = l[_] + , p = (d.x + a.x) / i * t.x + , m = (d.y + a.y) / i * t.y + , y = new b2.Vec2(p,m); + c.push(y), + u || (u = y), + c.length === b2.maxPolygonVertices && (h.Set(c, c.length), + e.push(h), + h = null, + _ < f - 1 && (c = [u, c[c.length - 1]])) + } + h && (h.Set(c, c.length), + e.push(h)) + } + return e + } + }); + cc.PhysicsPolygonCollider = e.exports = r + } + ), { + "../CCPhysicsTypes": 169, + "../CCPolygonSeparator": 170 + }], + 178: [(function(t) { + "use strict"; + t("./box2d-adapter"), + t("./CCPhysicsManager"), + t("./CCRigidBody"), + t("./CCPhysicsContact"), + t("./collider/CCPhysicsCollider"), + t("./collider/CCPhysicsChainCollider"), + t("./collider/CCPhysicsCircleCollider"), + t("./collider/CCPhysicsBoxCollider"), + t("./collider/CCPhysicsPolygonCollider"), + t("./joint/CCJoint"), + t("./joint/CCDistanceJoint"), + t("./joint/CCRevoluteJoint"), + t("./joint/CCMouseJoint"), + t("./joint/CCMotorJoint"), + t("./joint/CCPrismaticJoint"), + t("./joint/CCWeldJoint"), + t("./joint/CCWheelJoint"), + t("./joint/CCRopeJoint"), + t("./platform/CCPhysicsContactListner"), + t("./platform/CCPhysicsAABBQueryCallback"), + t("./platform/CCPhysicsRayCastCallback") + } + ), { + "./CCPhysicsContact": 167, + "./CCPhysicsManager": 168, + "./CCRigidBody": 171, + "./box2d-adapter": 172, + "./collider/CCPhysicsBoxCollider": 173, + "./collider/CCPhysicsChainCollider": 174, + "./collider/CCPhysicsCircleCollider": 175, + "./collider/CCPhysicsCollider": 176, + "./collider/CCPhysicsPolygonCollider": 177, + "./joint/CCDistanceJoint": 179, + "./joint/CCJoint": 180, + "./joint/CCMotorJoint": 181, + "./joint/CCMouseJoint": 182, + "./joint/CCPrismaticJoint": 183, + "./joint/CCRevoluteJoint": 184, + "./joint/CCRopeJoint": 185, + "./joint/CCWeldJoint": 186, + "./joint/CCWheelJoint": 187, + "./platform/CCPhysicsAABBQueryCallback": 188, + "./platform/CCPhysicsContactListner": 189, + "./platform/CCPhysicsRayCastCallback": 191 + }], + 179: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = cc.Class({ + name: "cc.DistanceJoint", + extends: cc.Joint, + editor: !1, + properties: { + _distance: 1, + _frequency: 0, + _dampingRatio: 0, + distance: { + tooltip: !1, + get: function() { + return this._distance + }, + set: function(t) { + this._distance = t, + this._joint && this._joint.SetLength(t) + } + }, + frequency: { + tooltip: !1, + get: function() { + return this._frequency + }, + set: function(t) { + this._frequency = t, + this._joint && this._joint.SetFrequency(t) + } + }, + dampingRatio: { + tooltip: !1, + get: function() { + return this._dampingRatio + }, + set: function(t) { + this._dampingRatio = t, + this._joint && this._joint.SetDampingRatio(t) + } + } + }, + _createJointDef: function() { + var t = new b2.DistanceJointDef; + return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i), + t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i), + t.length = this.distance / i, + t.dampingRatio = this.dampingRatio, + t.frequencyHz = this.frequency, + t + } + }); + cc.DistanceJoint = e.exports = n + } + ), { + "../CCPhysicsTypes": 169 + }], + 180: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = cc.Class({ + name: "cc.Joint", + extends: cc.Component, + editor: { + requireComponent: cc.RigidBody + }, + properties: { + anchor: { + default: cc.v2(0, 0), + tooltip: !1 + }, + connectedAnchor: { + default: cc.v2(0, 0), + tooltip: !1 + }, + connectedBody: { + default: null, + type: cc.RigidBody, + tooltip: !1 + }, + collideConnected: { + default: !1, + tooltip: !1 + } + }, + onDisable: function() { + this._destroy() + }, + onEnable: function() { + this._init() + }, + start: function() { + this._init() + }, + apply: function() { + this._destroy(), + this._init() + }, + getWorldAnchor: function() { + if (this._joint) { + var t = this._joint.GetAnchorA(); + return cc.v2(t.x * i, t.y * i) + } + return cc.Vec2.ZERO + }, + getWorldConnectedAnchor: function() { + if (this._joint) { + var t = this._joint.GetAnchorB(); + return cc.v2(t.x * i, t.y * i) + } + return cc.Vec2.ZERO + }, + getReactionForce: function(t) { + var e = cc.v2(); + return this._joint ? this._joint.GetReactionForce(t, e) : e + }, + getReactionTorque: function(t) { + return this._joint ? this._joint.GetReactionTorque(t) : 0 + }, + _init: function() { + cc.director.getPhysicsManager().pushDelayEvent(this, "__init", []) + }, + _destroy: function() { + cc.director.getPhysicsManager().pushDelayEvent(this, "__destroy", []) + }, + __init: function() { + if (!this._inited && (this.body = this.getComponent(cc.RigidBody), + this._isValid())) { + var t = this._createJointDef(); + if (!t) + return; + t.bodyA = this.body._getBody(), + t.bodyB = this.connectedBody._getBody(), + t.collideConnected = this.collideConnected, + cc.director.getPhysicsManager()._addJoint(this, t), + this._inited = !0 + } + }, + __destroy: function() { + this._inited && (cc.director.getPhysicsManager()._removeJoint(this), + this._joint = null, + this._inited = !1) + }, + _createJointDef: function() { + return null + }, + _isValid: function() { + return this.body && this.body._getBody() && this.connectedBody && this.connectedBody._getBody() + } + }); + cc.Joint = e.exports = n + } + ), { + "../CCPhysicsTypes": 169 + }], + 181: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE + , r = cc.Class({ + name: "cc.MotorJoint", + extends: cc.Joint, + editor: !1, + properties: { + _linearOffset: cc.v2(0, 0), + _angularOffset: 0, + _maxForce: 1, + _maxTorque: 1, + _correctionFactor: .3, + anchor: { + tooltip: !1, + default: cc.v2(0, 0), + override: !0, + visible: !1 + }, + connectedAnchor: { + tooltip: !1, + default: cc.v2(0, 0), + override: !0, + visible: !1 + }, + linearOffset: { + tooltip: !1, + get: function() { + return this._linearOffset + }, + set: function(t) { + this._linearOffset = t, + this._joint && this._joint.SetLinearOffset(new b2.Vec2(t.x / i,t.y / i)) + } + }, + angularOffset: { + tooltip: !1, + get: function() { + return this._angularOffset + }, + set: function(t) { + this._angularOffset = t, + this._joint && this._joint.SetAngularOffset(t) + } + }, + maxForce: { + tooltip: !1, + get: function() { + return this._maxForce + }, + set: function(t) { + this._maxForce = t, + this._joint && this._joint.SetMaxForce(t) + } + }, + maxTorque: { + tooltip: !1, + get: function() { + return this._maxTorque + }, + set: function(t) { + this._maxTorque = t, + this._joint && this._joint.SetMaxTorque(t) + } + }, + correctionFactor: { + tooltip: !1, + get: function() { + return this._correctionFactor + }, + set: function(t) { + this._correctionFactor = t, + this._joint && this._joint.SetCorrectionFactor(t) + } + } + }, + _createJointDef: function() { + var t = new b2.MotorJointDef; + return t.linearOffset = new b2.Vec2(this.linearOffset.x / i,this.linearOffset.y / i), + t.angularOffset = this.angularOffset * n, + t.maxForce = this.maxForce, + t.maxTorque = this.maxTorque, + t.correctionFactor = this.correctionFactor, + t + } + }); + cc.MotorJoint = e.exports = r + } + ), { + "../CCPhysicsTypes": 169 + }], + 182: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = new b2.Vec2 + , r = cc.Class({ + name: "cc.MouseJoint", + extends: cc.Joint, + editor: !1, + properties: { + _target: 1, + _frequency: 5, + _dampingRatio: .7, + _maxForce: 0, + connectedBody: { + default: null, + type: cc.RigidBody, + visible: !1, + override: !0 + }, + collideConnected: { + default: !0, + visible: !1, + override: !0 + }, + anchor: { + tooltip: !1, + default: cc.v2(0, 0), + override: !0, + visible: !1 + }, + connectedAnchor: { + tooltip: !1, + default: cc.v2(0, 0), + override: !0, + visible: !1 + }, + mouseRegion: { + tooltip: !1, + default: null, + type: cc.Node + }, + target: { + tooltip: !1, + visible: !1, + get: function() { + return this._target + }, + set: function(t) { + this._target = t, + this._joint && (n.x = t.x / i, + n.y = t.y / i, + this._joint.SetTarget(n)) + } + }, + frequency: { + tooltip: !1, + get: function() { + return this._frequency + }, + set: function(t) { + this._frequency = t, + this._joint && this._joint.SetFrequency(t) + } + }, + dampingRatio: { + tooltip: !1, + get: function() { + return this._dampingRatio + }, + set: function(t) { + this._dampingRatio = t, + this._joint && this._joint.SetDampingRatio(t) + } + }, + maxForce: { + tooltip: !1, + visible: !1, + get: function() { + return this._maxForce + }, + set: function(t) { + this._maxForce = t, + this._joint && this._joint.SetMaxForce(t) + } + } + }, + onLoad: function() { + var t = this.mouseRegion || this.node; + t.on(cc.Node.EventType.TOUCH_START, this.onTouchBegan, this), + t.on(cc.Node.EventType.TOUCH_MOVE, this.onTouchMove, this), + t.on(cc.Node.EventType.TOUCH_END, this.onTouchEnd, this), + t.on(cc.Node.EventType.TOUCH_CANCEL, this.onTouchEnd, this) + }, + onEnable: function() {}, + start: function() {}, + onTouchBegan: function(t) { + var e = cc.director.getPhysicsManager() + , i = this._pressPoint = t.touch.getLocation(); + cc.Camera && cc.Camera.main && (i = cc.Camera.main.getScreenToWorldPoint(i)); + var n = e.testPoint(i); + n && ((this.connectedBody = n.body).awake = !0, + this.maxForce = 1e3 * this.connectedBody.getMass(), + this.target = i, + this._init()) + }, + onTouchMove: function(t) { + this._pressPoint = t.touch.getLocation() + }, + onTouchEnd: function() { + this._destroy(), + this._pressPoint = null + }, + _createJointDef: function() { + var t = new b2.MouseJointDef; + return n.x = this.target.x / i, + n.y = this.target.y / i, + t.target = n, + t.maxForce = this.maxForce, + t.dampingRatio = this.dampingRatio, + t.frequencyHz = this.frequency, + t + }, + update: function() { + if (this._pressPoint && this._isValid()) { + var t = cc.Camera.findCamera(this.node); + this.target = t ? t.getScreenToWorldPoint(this._pressPoint) : this._pressPoint + } + } + }); + cc.MouseJoint = e.exports = r + } + ), { + "../CCPhysicsTypes": 169 + }], + 183: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE + , r = cc.Class({ + name: "cc.PrismaticJoint", + extends: cc.Joint, + editor: !1, + properties: { + localAxisA: { + default: cc.v2(1, 0), + tooltip: !1 + }, + referenceAngle: { + default: 0, + tooltip: !1 + }, + enableLimit: { + default: !1, + tooltip: !1 + }, + enableMotor: { + default: !1, + tooltip: !1 + }, + lowerLimit: { + default: 0, + tooltip: !1 + }, + upperLimit: { + default: 0, + tooltip: !1 + }, + _maxMotorForce: 0, + _motorSpeed: 0, + maxMotorForce: { + tooltip: !1, + get: function() { + return this._maxMotorForce + }, + set: function(t) { + this._maxMotorForce = t, + this._joint && this._joint.SetMaxMotorForce(t) + } + }, + motorSpeed: { + tooltip: !1, + get: function() { + return this._motorSpeed + }, + set: function(t) { + this._motorSpeed = t, + this._joint && this._joint.SetMotorSpeed(t) + } + } + }, + _createJointDef: function() { + var t = new b2.PrismaticJointDef; + return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i), + t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i), + t.localAxisA = new b2.Vec2(this.localAxisA.x,this.localAxisA.y), + t.referenceAngle = this.referenceAngle * n, + t.enableLimit = this.enableLimit, + t.lowerTranslation = this.lowerLimit / i, + t.upperTranslation = this.upperLimit / i, + t.enableMotor = this.enableMotor, + t.maxMotorForce = this.maxMotorForce, + t.motorSpeed = this.motorSpeed, + t + } + }); + cc.PrismaticJoint = e.exports = r + } + ), { + "../CCPhysicsTypes": 169 + }], + 184: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE + , r = t("../CCPhysicsTypes").PHYSICS_ANGLE_TO_ANGLE + , s = cc.Class({ + name: "cc.RevoluteJoint", + extends: cc.Joint, + editor: !1, + properties: { + _maxMotorTorque: 0, + _motorSpeed: 0, + _enableLimit: !1, + _enableMotor: !1, + referenceAngle: { + default: 0, + tooltip: !1 + }, + lowerAngle: { + default: 0, + tooltip: !1 + }, + upperAngle: { + default: 0, + tooltip: !1 + }, + maxMotorTorque: { + tooltip: !1, + get: function() { + return this._maxMotorTorque + }, + set: function(t) { + this._maxMotorTorque = t, + this._joint && this._joint.SetMaxMotorTorque(t) + } + }, + motorSpeed: { + tooltip: !1, + get: function() { + return this._motorSpeed + }, + set: function(t) { + this._motorSpeed = t, + this._joint && this._joint.SetMotorSpeed(t * n) + } + }, + enableLimit: { + tooltip: !1, + get: function() { + return this._enableLimit + }, + set: function(t) { + this._enableLimit = t, + this._joint && this._joint.EnableLimit(t) + } + }, + enableMotor: { + tooltip: !1, + get: function() { + return this._enableMotor + }, + set: function(t) { + this._enableMotor = t, + this._joint && this._joint.EnableMotor(t) + } + } + }, + getJointAngle: function() { + return this._joint ? this._joint.GetJointAngle() * r : 0 + }, + setLimits: function(t, e) { + if (this._joint) + return this._joint.SetLimits(t * n, e * n) + }, + _createJointDef: function() { + var t = new b2.RevoluteJointDef; + return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i), + t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i), + t.lowerAngle = this.upperAngle * n, + t.upperAngle = this.lowerAngle * n, + t.maxMotorTorque = this.maxMotorTorque, + t.motorSpeed = this.motorSpeed * n, + t.enableLimit = this.enableLimit, + t.enableMotor = this.enableMotor, + t.referenceAngle = this.referenceAngle * n, + t + } + }); + cc.RevoluteJoint = e.exports = s + } + ), { + "../CCPhysicsTypes": 169 + }], + 185: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = cc.Class({ + name: "cc.RopeJoint", + extends: cc.Joint, + editor: !1, + properties: { + _maxLength: 1, + maxLength: { + tooltip: !1, + get: function() { + return this._maxLength + }, + set: function(t) { + this._maxLength = t, + this._joint && this._joint.SetMaxLength(t) + } + } + }, + _createJointDef: function() { + var t = new b2.RopeJointDef; + return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i), + t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i), + t.maxLength = this.maxLength / i, + t + } + }); + cc.RopeJoint = e.exports = n + } + ), { + "../CCPhysicsTypes": 169 + }], + 186: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE + , r = cc.Class({ + name: "cc.WeldJoint", + extends: cc.Joint, + editor: !1, + properties: { + referenceAngle: { + default: 0, + tooltip: !1 + }, + _frequency: 0, + _dampingRatio: 0, + frequency: { + tooltip: !1, + get: function() { + return this._frequency + }, + set: function(t) { + this._frequency = t, + this._joint && this._joint.SetFrequency(t) + } + }, + dampingRatio: { + tooltip: !1, + get: function() { + return this._dampingRatio + }, + set: function(t) { + this._dampingRatio = t, + this._joint && this._joint.SetDampingRatio(t) + } + } + }, + _createJointDef: function() { + var t = new b2.WeldJointDef; + return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i), + t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i), + t.referenceAngle = this.referenceAngle * n, + t.frequencyHz = this.frequency, + t.dampingRatio = this.dampingRatio, + t + } + }); + cc.WeldJoint = e.exports = r + } + ), { + "../CCPhysicsTypes": 169 + }], + 187: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE + , r = cc.Class({ + name: "cc.WheelJoint", + extends: cc.Joint, + editor: !1, + properties: { + _maxMotorTorque: 0, + _motorSpeed: 0, + _enableMotor: !1, + _frequency: 2, + _dampingRatio: .7, + localAxisA: { + default: cc.v2(1, 0), + tooltip: !1 + }, + maxMotorTorque: { + tooltip: !1, + get: function() { + return this._maxMotorTorque + }, + set: function(t) { + this._maxMotorTorque = t, + this._joint && this._joint.SetMaxMotorTorque(t) + } + }, + motorSpeed: { + tooltip: !1, + get: function() { + return this._motorSpeed + }, + set: function(t) { + this._motorSpeed = t, + this._joint && this._joint.SetMotorSpeed(t * n) + } + }, + enableMotor: { + tooltip: !1, + get: function() { + return this._enableMotor + }, + set: function(t) { + this._enableMotor = t, + this._joint && this._joint.EnableMotor(t) + } + }, + frequency: { + tooltip: !1, + get: function() { + return this._frequency + }, + set: function(t) { + this._frequency = t, + this._joint && this._joint.SetSpringFrequencyHz(t) + } + }, + dampingRatio: { + tooltip: !1, + get: function() { + return this._dampingRatio + }, + set: function(t) { + this._dampingRatio = t, + this._joint && this._joint.SetDampingRatio(t) + } + } + }, + _createJointDef: function() { + var t = new b2.WheelJointDef; + return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i), + t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i), + t.localAxisA = new b2.Vec2(this.localAxisA.x,this.localAxisA.y), + t.maxMotorTorque = this.maxMotorTorque, + t.motorSpeed = this.motorSpeed * n, + t.enableMotor = this.enableMotor, + t.dampingRatio = this.dampingRatio, + t.frequencyHz = this.frequency, + t + } + }); + cc.WheelJoint = e.exports = r + } + ), { + "../CCPhysicsTypes": 169 + }], + 188: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").BodyType; + function n() { + this._point = new b2.Vec2, + this._isPoint = !1, + this._fixtures = [] + } + n.prototype.init = function(t) { + t ? (this._isPoint = !0, + this._point.x = t.x, + this._point.y = t.y) : this._isPoint = !1, + this._fixtures.length = 0 + } + , + n.prototype.ReportFixture = function(t) { + if (t.GetBody().GetType() === i.Dynamic) + if (this._isPoint) { + if (t.TestPoint(this._point)) + return this._fixtures.push(t), + !1 + } else + this._fixtures.push(t); + return !0 + } + , + n.prototype.getFixture = function() { + return this._fixtures[0] + } + , + n.prototype.getFixtures = function() { + return this._fixtures + } + , + cc.PhysicsAABBQueryCallback = e.exports = n + } + ), { + "../CCPhysicsTypes": 169 + }], + 189: [(function(t, e) { + "use strict"; + function i() { + this._contactFixtures = [] + } + i.prototype.setBeginContact = function(t) { + this._BeginContact = t + } + , + i.prototype.setEndContact = function(t) { + this._EndContact = t + } + , + i.prototype.setPreSolve = function(t) { + this._PreSolve = t + } + , + i.prototype.setPostSolve = function(t) { + this._PostSolve = t + } + , + i.prototype.BeginContact = function(t) { + if (this._BeginContact) { + var e = t.GetFixtureA() + , i = t.GetFixtureB() + , n = this._contactFixtures; + t._shouldReport = !1, + -1 === n.indexOf(e) && -1 === n.indexOf(i) || (t._shouldReport = !0, + this._BeginContact(t)) + } + } + , + i.prototype.EndContact = function(t) { + this._EndContact && t._shouldReport && (t._shouldReport = !1, + this._EndContact(t)) + } + , + i.prototype.PreSolve = function(t, e) { + this._PreSolve && t._shouldReport && this._PreSolve(t, e) + } + , + i.prototype.PostSolve = function(t, e) { + this._PostSolve && t._shouldReport && this._PostSolve(t, e) + } + , + i.prototype.registerContactFixture = function(t) { + this._contactFixtures.push(t) + } + , + i.prototype.unregisterContactFixture = function(t) { + cc.js.array.remove(this._contactFixtures, t) + } + , + cc.PhysicsContactListener = e.exports = i + } + ), {}], + 190: [(function(t, e) { + "use strict"; + var i = t("../CCPhysicsTypes").PTM_RATIO + , n = cc.v2() + , r = cc.Color.GREEN + , s = cc.Color.RED; + function a(t) { + b2.Draw.call(this), + this._drawer = t, + this._xf = this._dxf = new b2.Transform + } + cc.js.extend(a, b2.Draw), + cc.js.mixin(a.prototype, { + _DrawPolygon: function(t, e) { + for (var r = this._drawer, s = 0; s < e; s++) { + b2.Transform.MulXV(this._xf, t[s], n); + var a = n.x * i + , o = n.y * i; + 0 === s ? r.moveTo(a, o) : r.lineTo(a, o) + } + r.close() + }, + DrawPolygon: function(t, e, i) { + this._applyStrokeColor(i), + this._DrawPolygon(t, e), + this._drawer.stroke() + }, + DrawSolidPolygon: function(t, e, i) { + this._applyFillColor(i), + this._DrawPolygon(t, e), + this._drawer.fill(), + this._drawer.stroke() + }, + _DrawCircle: function(t, e) { + var n = this._xf.p; + this._drawer.circle((t.x + n.x) * i, (t.y + n.y) * i, e * i) + }, + DrawCircle: function(t, e, i) { + this._applyStrokeColor(i), + this._DrawCircle(t, e), + this._drawer.stroke() + }, + DrawSolidCircle: function(t, e, i, n) { + this._applyFillColor(n), + this._DrawCircle(t, e), + this._drawer.fill() + }, + DrawSegment: function(t, e, r) { + var s = this._drawer; + if (t.x === e.x && t.y === e.y) + return this._applyFillColor(r), + this._DrawCircle(t, 2 / i), + void s.fill(); + this._applyStrokeColor(r), + b2.Transform.MulXV(this._xf, t, n), + s.moveTo(n.x * i, n.y * i), + b2.Transform.MulXV(this._xf, e, n), + s.lineTo(n.x * i, n.y * i), + s.stroke() + }, + DrawTransform: function(t) { + var e = this._drawer; + e.strokeColor = s, + n.x = n.y = 0, + b2.Transform.MulXV(t, n, n), + e.moveTo(n.x * i, n.y * i), + n.x = 1, + n.y = 0, + b2.Transform.MulXV(t, n, n), + e.lineTo(n.x * i, n.y * i), + e.stroke(), + e.strokeColor = r, + n.x = n.y = 0, + b2.Transform.MulXV(t, n, n), + e.moveTo(n.x * i, n.y * i), + n.x = 0, + n.y = 1, + b2.Transform.MulXV(t, n, n), + e.lineTo(n.x * i, n.y * i), + e.stroke() + }, + DrawPoint: function() {}, + _applyStrokeColor: function(t) { + var e = this._drawer.strokeColor; + e.r = 255 * t.r, + e.g = 255 * t.g, + e.b = 255 * t.b, + e.a = 150, + this._drawer.strokeColor = e + }, + _applyFillColor: function(t) { + var e = this._drawer.fillColor; + e.r = 255 * t.r, + e.g = 255 * t.g, + e.b = 255 * t.b, + e.a = 150, + this._drawer.fillColor = e + }, + PushTransform: function(t) { + this._xf = t + }, + PopTransform: function() { + this._xf = this._dxf + } + }), + e.exports = a + } + ), { + "../CCPhysicsTypes": 169 + }], + 191: [(function(t, e) { + "use strict"; + function i() { + this._type = 0, + this._fixtures = [], + this._points = [], + this._normals = [], + this._fractions = [] + } + i.prototype.init = function(t) { + this._type = t, + this._fixtures.length = 0, + this._points.length = 0, + this._normals.length = 0, + this._fractions.length = 0 + } + , + i.prototype.ReportFixture = function(t, e, i, n) { + return 0 === this._type ? (this._fixtures[0] = t, + this._points[0] = e, + this._normals[0] = i, + this._fractions[0] = n, + n) : (this._fixtures.push(t), + this._points.push(cc.v2(e)), + this._normals.push(cc.v2(i)), + this._fractions.push(n), + 1 === this._type ? 0 : this._type >= 2 ? 1 : n) + } + , + i.prototype.getFixtures = function() { + return this._fixtures + } + , + i.prototype.getPoints = function() { + return this._points + } + , + i.prototype.getNormals = function() { + return this._normals + } + , + i.prototype.getFractions = function() { + return this._fractions + } + , + cc.PhysicsRayCastCallback = e.exports = i + } + ), {}], + 192: [(function(t, e) { + "use strict"; + e.exports = { + getWorldRotation: function(t) { + for (var e = t.angle, i = t.parent; i.parent; ) + e += i.angle, + i = i.parent; + return -e + }, + getWorldScale: function(t) { + for (var e = t.scaleX, i = t.scaleY, n = t.parent; n.parent; ) + e *= n.scaleX, + i *= n.scaleY, + n = n.parent; + return cc.v2(e, i) + }, + convertToNodeRotation: function(t, e) { + e -= -t.angle; + for (var i = t.parent; i.parent; ) + e -= -i.angle, + i = i.parent; + return e + } + } + } + ), {}], + 193: [(function(t, e) { + "use strict"; + var i = t("./js") + , n = t("./CCEnum") + , r = t("./utils") + , s = (r.isPlainEmptyObj_DEV, + r.cloneable_DEV, + t("./attribute")) + , a = s.DELIMETER + , o = t("./preprocess-class"); + t("./requiring-frame"); + var l = ["name", "extends", "mixins", "ctor", "__ctor__", "properties", "statics", "editor", "__ES6__"]; + function h(t, e) { + t.indexOf(e) < 0 && t.push(e) + } + var c = { + datas: null, + push: function(t) { + if (this.datas) + this.datas.push(t); + else { + this.datas = [t]; + var e = this; + setTimeout((function() { + e.init() + } + ), 0) + } + }, + init: function() { + var t = this.datas; + if (t) { + for (var e = 0; e < t.length; ++e) { + var n = t[e] + , r = n.cls + , s = n.props; + "function" == typeof s && (s = s()); + var a = i.getClassName(r); + s ? E(r, a, s, r.$super, n.mixins) : cc.errorID(3633, a) + } + this.datas = null + } + } + }; + function u(t, e) { + h(t.__props__, e) + } + function _(t, e, i, n) { + var r = n.default; + s.setClassAttr(t, i, "default", r), + u(t, i), + B(t, n, 0, i) + } + function f(t, e, n, r, a) { + var o = r.get + , l = r.set + , h = t.prototype + , c = !Object.getOwnPropertyDescriptor(h, n); + o && (B(t, r, 0, n), + s.setClassAttr(t, n, "serializable", !1), + a || i.get(h, n, o, c, c)), + l && (a || i.set(h, n, l, c, c)) + } + function d(t) { + return "function" == typeof t ? t() : t + } + function p(t, e, n) { + for (var r in e) + t.hasOwnProperty(r) || n && !n(r) || Object.defineProperty(t, r, i.getPropertyDescriptor(e, r)) + } + function m(t, e, n, r) { + var a, o, l = r.__ctor__, h = r.ctor, c = r.__ES6__; + c ? (a = [h], + o = h) : (a = l ? [l] : T(e, n, r), + o = C(a, e, t, r), + i.value(o, "extend", (function(t) { + return t.extends = this, + M(t) + } + ), !0)), + i.value(o, "__ctors__", a.length > 0 ? a : null, !0); + var u = o.prototype; + if (e && (c || (i.extend(o, e), + u = o.prototype), + o.$super = e), + n) { + for (var _ = n.length - 1; _ >= 0; _--) { + var f = n[_]; + p(u, f.prototype), + p(o, f, (function(t) { + return f.hasOwnProperty(t) && !0 + } + )), + M._isCCClass(f) && p(s.getClassAttrs(o), s.getClassAttrs(f)) + } + u.constructor = o + } + return c || (u.__initProps__ = b), + i.setClassName(t, o), + o + } + function y(t, e, n, r) { + var s = cc.Component + , a = cc._RF.peek(); + if (a && i.isChildClassOf(e, s)) { + if (i.isChildClassOf(a.cls, s)) + return cc.errorID(3615), + null; + t = t || a.script + } + var o = m(t, e, n, r); + if (a) + if (i.isChildClassOf(e, s)) { + var l = a.uuid; + l && i._setClassId(l, o), + a.cls = o + } else + i.isChildClassOf(a.cls, s) || (a.cls = o); + return o + } + function v(t) { + for (var e = i.getClassName(t), n = t.constructor, r = "new " + e + "(", s = 0; s < n.__props__.length; s++) { + r += t[n.__props__[s]], + s < n.__props__.length - 1 && (r += ",") + } + return r + ")" + } + function g(t) { + return JSON.stringify(t).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029") + } + function A(t, e) { + for (var i = [], n = "", r = 0; r < e.length; r++) { + var s = e[r] + , o = s + a + "default"; + if (o in t) { + var l, h; + l = x.test(s) ? "this." + s + "=" : "this[" + g(s) + "]="; + var c = t[o]; + if ("object" == typeof c && c) + h = c instanceof cc.ValueType ? v(c) : Array.isArray(c) ? "[]" : "{}"; + else if ("function" == typeof c) { + var u = i.length; + i.push(c), + h = "F[" + u + "]()" + } else + h = "string" == typeof c ? g(c) : c; + n += l = l + h + ";\n" + } + } + return 0 === i.length ? Function(n) : Function("F", "return (function(){\n" + n + "})")(i) + } + var x = /^[A-Za-z_$][0-9A-Za-z_$]*$/; + function b(t) { + var e = s.getClassAttrs(t) + , i = t.__props__; + null === i && (c.init(), + i = t.__props__); + var n = A(e, i); + t.prototype.__initProps__ = n, + n.call(this) + } + var C = function(t, e, i, n) { + var r = "return function CCClass(){\n"; + e && w(e, n) && (r += "this._super=null;\n"), + r += "this.__initProps__(CCClass);\n"; + var s = t.length; + if (s > 0) { + var a = "].apply(this,arguments);\n"; + if (1 === s) + r += "CCClass.__ctors__[0" + a; + else { + r += "var cs=CCClass.__ctors__;\n"; + for (var o = 0; o < s; o++) + r += "cs[" + o + a + } + } + return r += "}", + Function(r)() + }; + function T(t, e, i) { + for (var n, r = [], s = [t].concat(e), a = 0; a < s.length; a++) { + var o = s[a]; + if (o) + for (var l = (n = o, + M._isCCClass(n) ? n.__ctors__ || [] : [n]), c = 0; c < l.length; c++) + h(r, l[c]) + } + var u = i.ctor; + return u && r.push(u), + r + } + var S = /xyz/.test((function() { + xyz + } + )) ? /\b\._super\b/ : /.*/; + function w(t, e) { + var n = !1; + for (var r in e) + if (!(l.indexOf(r) >= 0)) { + var s = e[r]; + if ("function" == typeof s) { + var a = i.getPropertyDescriptor(t.prototype, r); + if (a) { + var o = a.value; + if ("function" == typeof o) { + S.test(s) && (n = !0, + e[r] = (function(t, e) { + return function() { + var i = this._super; + this._super = t; + var n = e.apply(this, arguments); + return this._super = i, + n + } + } + )(o, s)); + continue + } + } + } + } + return n + } + function E(t, e, i, n, r, l) { + if (t.__props__ = [], + n && n.__props__ && (t.__props__ = n.__props__.slice()), + r) + for (var h = 0; h < r.length; ++h) { + var c = r[h]; + c.__props__ && (t.__props__ = t.__props__.concat(c.__props__.filter((function(e) { + return t.__props__.indexOf(e) < 0 + } + )))) + } + if (i) + for (var u in o.preprocessAttrs(i, e, t, l), + i) { + var d = i[u]; + "default"in d ? _(t, 0, u, d) : f(t, 0, u, d, l) + } + var p = s.getClassAttrs(t); + t.__values__ = t.__props__.filter((function(t) { + return !1 !== p[t + a + "serializable"] + } + )) + } + function M(t) { + var e = (t = t || {}).name + , n = t.extends + , r = t.mixins + , s = y(e, n, r, t); + e || (e = cc.js.getClassName(s)), + s._sealed = !0, + n && (n._sealed = !1); + var a = t.properties; + "function" == typeof a || n && null === n.__props__ || r && r.some((function(t) { + return null === t.__props__ + } + )) ? (c.push({ + cls: s, + props: a, + mixins: r + }), + s.__props__ = s.__values__ = null) : E(s, e, a, n, t.mixins, t.__ES6__); + var h, u = t.statics; + if (u) + for (h in u) + s[h] = u[h]; + for (var _ in t) + if (!(l.indexOf(_) >= 0)) { + var f = t[_]; + o.validateMethodWithProps(f, _, e, s, n) && i.value(s.prototype, _, f, !0, !0) + } + var d = t.editor; + return d && cc.Component._registerEditorProps(s, d), + s + } + /xyz/.test((function() { + xyz + } + )), + M._isCCClass = function(t) { + return t && t.hasOwnProperty("__ctors__") + } + , + M._fastDefine = function(t, e, n) { + i.setClassName(t, e); + for (var r = e.__props__ = e.__values__ = Object.keys(n), o = s.getClassAttrs(e), l = 0; l < r.length; l++) { + var h = r[l]; + o[h + a + "visible"] = !1, + o[h + a + "default"] = n[h] + } + } + , + M.Attr = s, + M.attr = s.attr, + M.getInheritanceChain = function(t) { + for (var e = []; t = i.getSuper(t); ) + t !== Object && e.push(t); + return e + } + ; + var D = { + Integer: "Number", + Float: "Number", + Boolean: "Boolean", + String: "String" + }; + function B(t, e, i, r) { + var o = null + , l = ""; + function h() { + return l = r + a, + o = s.getClassAttrs(t) + } + var c = e.type; + c && (D[c] ? (o || h())[l + "type"] = c : "Object" === c || (c === s.ScriptUuid ? ((o || h())[l + "type"] = "Script", + o[l + "ctor"] = cc.ScriptAsset) : "object" == typeof c ? n.isEnum(c) && ((o || h())[l + "type"] = "Enum", + o[l + "enumList"] = n.getList(c)) : "function" == typeof c && ((o || h())[l + "type"] = "Object", + o[l + "ctor"] = c))); + function u(t, i) { + if (t in e) { + var n = e[t]; + typeof n === i && ((o || h())[l + t] = n) + } + } + e.editorOnly && ((o || h())[l + "editorOnly"] = !0), + !1 === e.serializable && ((o || h())[l + "serializable"] = !1), + u("formerlySerializedAs", "string"); + var _ = e.range; + _ && Array.isArray(_) && _.length >= 2 && ((o || h())[l + "min"] = _[0], + o[l + "max"] = _[1], + _.length > 2 && (o[l + "step"] = _[2])), + u("min", "number"), + u("max", "number"), + u("step", "number"), + u("userData", "object") + } + cc.Class = M, + e.exports = { + isArray: function(t) { + return t = d(t), + Array.isArray(t) + }, + fastDefine: M._fastDefine, + getNewValueTypeCode: v, + IDENTIFIER_RE: x, + escapeForJS: g, + getDefault: d + } + } + ), { + "./CCEnum": 195, + "./attribute": 205, + "./js": 214, + "./preprocess-class": 215, + "./requiring-frame": 216, + "./utils": 217 + }], + 194: [(function(t, e) { + "use strict"; + t("./CCClass"); + var i = t("./preprocess-class") + , n = t("./js") + , r = "__ccclassCache__"; + function s(t) { + return t + } + function a(t, e) { + return t[e] || (t[e] = {}) + } + function o(t) { + return function(e) { + return "function" == typeof e ? t(e) : function(i) { + return t(i, e) + } + } + } + function l(t, e) { + return function(t) { + return function(i) { + return e(i, t) + } + } + } + var h = l.bind(null, !1); + function c() { + return l.bind(null, !1) + } + var u = c() + , _ = c(); + function f(t) { + return a(t, r) + } + function d(t) { + var e; + try { + e = t() + } catch (i) { + return t + } + return "object" != typeof e || null === e ? e : t + } + function p(t) { + var e; + try { + e = new t + } catch (i) { + return {} + } + return e + } + function m(t, e, r, s, a, o) { + var l, h = a && (a.get || a.set); + s && (l = i.getFullFormOfProperty(s, h)); + var c = e[r] + , u = n.mixin(c || {}, l || s || {}); + if (h) + a.get && (u.get = a.get), + a.set && (u.set = a.set); + else { + var _ = void 0; + if (a) + a.initializer && (_ = d(a.initializer)); + else { + var f = o.default || (o.default = p(t)); + f.hasOwnProperty(r) && (_ = f[r]) + } + u.default = _ + } + e[r] = u + } + var y = o((function(t, e) { + var i = n.getSuper(t); + i === Object && (i = null); + var s = { + name: e, + extends: i, + ctor: t, + __ES6__: !0 + } + , a = t[r]; + if (a) { + var o = a.proto; + o && n.mixin(s, o), + t[r] = void 0 + } + return cc.Class(s) + } + )); + function v(t, e, i) { + return t((function(t, n) { + var r = f(t); + if (r) { + var s = void 0 !== i ? i : n + , o = a(r, "proto"); + a(o, "editor")[e] = s + } + } + ), e) + } + function g(t) { + return t(s) + } + var A = g(o) + , x = v(h, "requireComponent") + , b = g(u) + , C = v(_, "executionOrder") + , T = g(o) + , S = g(o) + , w = g(u) + , E = g(u) + , M = g(u); + cc._decorator = e.exports = { + ccclass: y, + property: function(t, e, i) { + var n = null; + function r(t, e, i) { + var r = f(t.constructor); + if (r) { + var s = a(r, "proto") + , o = a(s, "properties"); + m(t.constructor, o, e, n, i, r) + } + } + if (void 0 === e) + return n = t, + r; + r(t, e, i) + }, + executeInEditMode: A, + requireComponent: x, + menu: b, + executionOrder: C, + disallowMultiple: T, + playOnFocus: S, + inspector: w, + icon: E, + help: M, + mixins: function() { + for (var t = [], e = 0; e < arguments.length; e++) + t[e] = arguments[e]; + return function(e) { + var i = f(e); + i && (a(i, "proto").mixins = t) + } + } + } + } + ), { + "./CCClass": 193, + "./js": 214, + "./preprocess-class": 215, + "./utils": 217 + }], + 195: [(function(t, e) { + "use strict"; + var i = t("./js"); + function n(t) { + if ("__enums__"in t) + return t; + i.value(t, "__enums__", null, !0); + for (var e = -1, n = Object.keys(t), r = 0; r < n.length; r++) { + var s = n[r] + , a = t[s]; + if (-1 === a) + a = ++e, + t[s] = a; + else if ("number" == typeof a) + e = a; + else if ("string" == typeof a && Number.isInteger(parseFloat(s))) + continue; + var o = "" + a; + s !== o && i.value(t, o, s) + } + return t + } + n.isEnum = function(t) { + return t && t.hasOwnProperty("__enums__") + } + , + n.getList = function(t) { + if (t.__enums__) + return t.__enums__; + var e = t.__enums__ = []; + for (var i in t) { + var n = t[i]; + Number.isInteger(n) && e.push({ + name: i, + value: n + }) + } + return e.sort((function(t, e) { + return t.value - e.value + } + )), + e + } + , + e.exports = cc.Enum = n + } + ), { + "./js": 214 + }], + 196: [(function(t) { + "use strict"; + var e, i = t("../event-manager"), n = t("./CCInputManager"); + cc.Acceleration = function(t, e, i, n) { + this.x = t || 0, + this.y = e || 0, + this.z = i || 0, + this.timestamp = n || 0 + } + , + n.setAccelerometerEnabled = function(t) { + var e = this; + if (e._accelEnabled !== t) { + e._accelEnabled = t; + var i = cc.director.getScheduler(); + i.enableForTarget(e), + e._accelEnabled ? (e._registerAccelerometerEvent(), + e._accelCurTime = 0, + i.scheduleUpdate(e)) : (e._unregisterAccelerometerEvent(), + e._accelCurTime = 0, + i.unscheduleUpdate(e)) + } + } + , + n.setAccelerometerInterval = function(t) { + this._accelInterval !== t && (this._accelInterval = t) + } + , + n._registerKeyboardEvent = function() { + cc.game.canvas.addEventListener("keydown", (function(t) { + i.dispatchEvent(new cc.Event.EventKeyboard(t.keyCode,!0)), + t.stopPropagation(), + t.preventDefault() + } + ), !1), + cc.game.canvas.addEventListener("keyup", (function(t) { + i.dispatchEvent(new cc.Event.EventKeyboard(t.keyCode,!1)), + t.stopPropagation(), + t.preventDefault() + } + ), !1) + } + , + n._registerAccelerometerEvent = function() { + var t = window + , i = this; + i._acceleration = new cc.Acceleration, + i._accelDeviceEvent = t.DeviceMotionEvent || t.DeviceOrientationEvent, + cc.sys.browserType === cc.sys.BROWSER_TYPE_MOBILE_QQ && (i._accelDeviceEvent = window.DeviceOrientationEvent); + var n = i._accelDeviceEvent === t.DeviceMotionEvent ? "devicemotion" : "deviceorientation" + , r = navigator.userAgent; + (/Android/.test(r) || /Adr/.test(r) && cc.sys.browserType === cc.BROWSER_TYPE_UC) && (i._minus = -1), + e = i.didAccelerate.bind(i), + t.addEventListener(n, e, !1) + } + , + n._unregisterAccelerometerEvent = function() { + var t = window + , i = this._accelDeviceEvent === t.DeviceMotionEvent ? "devicemotion" : "deviceorientation"; + e && t.removeEventListener(i, e, !1) + } + , + n.didAccelerate = function(t) { + var e = this + , i = window; + if (e._accelEnabled) { + var n, r, s, a = e._acceleration; + if (e._accelDeviceEvent === window.DeviceMotionEvent) { + var o = t.accelerationIncludingGravity; + n = e._accelMinus * o.x * .1, + r = e._accelMinus * o.y * .1, + s = .1 * o.z + } else + n = t.gamma / 90 * .981, + r = -t.beta / 90 * .981, + s = t.alpha / 90 * .981; + if (cc.view._isRotated) { + var l = n; + n = -r, + r = l + } + a.x = n, + a.y = r, + a.z = s, + a.timestamp = t.timeStamp || Date.now(); + var h = a.x; + 90 === i.orientation ? (a.x = -a.y, + a.y = h) : -90 === i.orientation ? (a.x = a.y, + a.y = -h) : 180 === i.orientation && (a.x = -a.x, + a.y = -a.y), + cc.sys.os === cc.sys.OS_ANDROID && cc.sys.browserType !== cc.sys.BROWSER_TYPE_MOBILE_QQ && (a.x = -a.x, + a.y = -a.y) + } + } + } + ), { + "../event-manager": 138, + "./CCInputManager": 197 + }], + 197: [(function(t, e) { + "use strict"; + var i = t("./CCMacro") + , n = t("./CCSys") + , r = t("../event-manager") + , s = i.TOUCH_TIMEOUT + , a = cc.v2() + , o = { + _mousePressed: !1, + _isRegisterEvent: !1, + _preTouchPoint: cc.v2(0, 0), + _prevMousePoint: cc.v2(0, 0), + _preTouchPool: [], + _preTouchPoolPointer: 0, + _touches: [], + _touchesIntegerDict: {}, + _indexBitsUsed: 0, + _maxTouches: 8, + _accelEnabled: !1, + _accelInterval: .2, + _accelMinus: 1, + _accelCurTime: 0, + _acceleration: null, + _accelDeviceEvent: null, + _canvasBoundingRect: { + left: 0, + top: 0, + adjustedLeft: 0, + adjustedTop: 0, + width: 0, + height: 0 + }, + _getUnUsedIndex: function() { + for (var t = this._indexBitsUsed, e = cc.sys.now(), i = 0; i < this._maxTouches; i++) { + if (!(1 & t)) + return this._indexBitsUsed |= 1 << i, + i; + var n = this._touches[i]; + if (e - n._lastModified > s) + return this._removeUsedIndexBit(i), + delete this._touchesIntegerDict[n.getID()], + i; + t >>= 1 + } + return -1 + }, + _removeUsedIndexBit: function(t) { + if (!(t < 0 || t >= this._maxTouches)) { + var e = 1 << t; + e = ~e, + this._indexBitsUsed &= e + } + }, + _glView: null, + _updateCanvasBoundingRect: function() { + var t = cc.game.canvas + , e = this._canvasBoundingRect + , i = document.documentElement + , n = window.pageXOffset - i.clientLeft + , r = window.pageYOffset - i.clientTop; + if (t.getBoundingClientRect) { + var s = t.getBoundingClientRect(); + e.left = s.left + n, + e.top = s.top + r, + e.width = s.width, + e.height = s.height + } else + t instanceof HTMLCanvasElement ? (e.left = n, + e.top = r, + e.width = t.width, + e.height = t.height) : (e.left = n, + e.top = r, + e.width = parseInt(t.style.width), + e.height = parseInt(t.style.height)) + }, + handleTouchesBegin: function(t) { + for (var e, i, s, a = [], o = this._touchesIntegerDict, l = n.now(), h = 0, c = t.length; h < c; h++) + if (null == o[s = (e = t[h]).getID()]) { + var u = this._getUnUsedIndex(); + if (-1 === u) { + cc.logID(2300, u); + continue + } + (i = this._touches[u] = new cc.Touch(e._point.x,e._point.y,e.getID()))._lastModified = l, + i._setPrevPoint(e._prevPoint), + o[s] = u, + a.push(i) + } + if (a.length > 0) { + this._glView._convertTouchesWithScale(a); + var _ = new cc.Event.EventTouch(a); + _._eventCode = cc.Event.EventTouch.BEGAN, + r.dispatchEvent(_) + } + }, + handleTouchesMove: function(t) { + for (var e, i, s, a = [], o = this._touches, l = n.now(), h = 0, c = t.length; h < c; h++) + s = (e = t[h]).getID(), + null != (i = this._touchesIntegerDict[s]) && o[i] && (o[i]._setPoint(e._point), + o[i]._setPrevPoint(e._prevPoint), + o[i]._lastModified = l, + a.push(o[i])); + if (a.length > 0) { + this._glView._convertTouchesWithScale(a); + var u = new cc.Event.EventTouch(a); + u._eventCode = cc.Event.EventTouch.MOVED, + r.dispatchEvent(u) + } + }, + handleTouchesEnd: function(t) { + var e = this.getSetOfTouchesEndOrCancel(t); + if (e.length > 0) { + this._glView._convertTouchesWithScale(e); + var i = new cc.Event.EventTouch(e); + i._eventCode = cc.Event.EventTouch.ENDED, + r.dispatchEvent(i) + } + this._preTouchPool.length = 0 + }, + handleTouchesCancel: function(t) { + var e = this.getSetOfTouchesEndOrCancel(t); + if (e.length > 0) { + this._glView._convertTouchesWithScale(e); + var i = new cc.Event.EventTouch(e); + i._eventCode = cc.Event.EventTouch.CANCELED, + r.dispatchEvent(i) + } + this._preTouchPool.length = 0 + }, + getSetOfTouchesEndOrCancel: function(t) { + for (var e, i, n, r = [], s = this._touches, a = this._touchesIntegerDict, o = 0, l = t.length; o < l; o++) + null != (i = a[n = (e = t[o]).getID()]) && s[i] && (s[i]._setPoint(e._point), + s[i]._setPrevPoint(e._prevPoint), + r.push(s[i]), + this._removeUsedIndexBit(i), + delete a[n]); + return r + }, + getPreTouch: function(t) { + for (var e = null, i = this._preTouchPool, n = t.getID(), r = i.length - 1; r >= 0; r--) + if (i[r].getID() === n) { + e = i[r]; + break + } + return e || (e = t), + e + }, + setPreTouch: function(t) { + for (var e = !1, i = this._preTouchPool, n = t.getID(), r = i.length - 1; r >= 0; r--) + if (i[r].getID() === n) { + i[r] = t, + e = !0; + break + } + e || (i.length <= 50 ? i.push(t) : (i[this._preTouchPoolPointer] = t, + this._preTouchPoolPointer = (this._preTouchPoolPointer + 1) % 50)) + }, + getTouchByXY: function(t, e, i) { + var n = this._preTouchPoint + , r = this._glView.convertToLocationInView(t, e, i) + , s = new cc.Touch(r.x,r.y,0); + return s._setPrevPoint(n.x, n.y), + n.x = r.x, + n.y = r.y, + s + }, + getMouseEvent: function(t, e, i) { + var n = this._prevMousePoint + , r = new cc.Event.EventMouse(i); + return r._setPrevCursor(n.x, n.y), + n.x = t.x, + n.y = t.y, + this._glView._convertMouseToLocationInView(n, e), + r.setLocation(n.x, n.y), + r + }, + getPointByEvent: function(t, e) { + return cc.sys.browserType !== cc.sys.BROWSER_TYPE_QQ && cc.sys.browserType !== cc.sys.BROWSER_TYPE_UC && cc.sys.browserType !== cc.sys.BROWSER_TYPE_SAFARI || this._updateCanvasBoundingRect(), + null != t.pageX ? { + x: t.pageX, + y: t.pageY + } : (e.left -= document.body.scrollLeft, + e.top -= document.body.scrollTop, + { + x: t.clientX, + y: t.clientY + }) + }, + getTouchesByEvent: function(t, e) { + for (var i, r, s, o = [], l = this._glView, h = this._preTouchPoint, c = t.changedTouches.length, u = 0; u < c; u++) + if (i = t.changedTouches[u]) { + var _; + _ = n.BROWSER_TYPE_FIREFOX === n.browserType ? l.convertToLocationInView(i.pageX, i.pageY, e, a) : l.convertToLocationInView(i.clientX, i.clientY, e, a), + null != i.identifier ? (r = new cc.Touch(_.x,_.y,i.identifier), + s = this.getPreTouch(r).getLocation(), + r._setPrevPoint(s.x, s.y), + this.setPreTouch(r)) : (r = new cc.Touch(_.x,_.y))._setPrevPoint(h.x, h.y), + h.x = _.x, + h.y = _.y, + o.push(r) + } + return o + }, + registerSystemEvent: function(t) { + if (!this._isRegisterEvent) { + this._glView = cc.view; + var e = this + , i = this._canvasBoundingRect; + window.addEventListener("resize", this._updateCanvasBoundingRect.bind(this)); + var s = n.isMobile + , a = "mouse"in n.capabilities + , o = "touches"in n.capabilities; + if (a) { + s || (window.addEventListener("mousedown", (function() { + e._mousePressed = !0 + } + ), !1), + window.addEventListener("mouseup", (function(t) { + if (e._mousePressed) { + e._mousePressed = !1; + var n = e.getPointByEvent(t, i); + if (!cc.rect(i.left, i.top, i.width, i.height).contains(n)) { + e.handleTouchesEnd([e.getTouchByXY(n.x, n.y, i)]); + var s = e.getMouseEvent(n, i, cc.Event.EventMouse.UP); + s.setButton(t.button), + r.dispatchEvent(s) + } + } + } + ), !1)); + for (var l = cc.Event.EventMouse, h = [!s && ["mousedown", l.DOWN, function(i, n, r, s) { + e._mousePressed = !0, + e.handleTouchesBegin([e.getTouchByXY(r.x, r.y, s)]), + t.focus() + } + ], !s && ["mouseup", l.UP, function(t, i, n, r) { + e._mousePressed = !1, + e.handleTouchesEnd([e.getTouchByXY(n.x, n.y, r)]) + } + ], !s && ["mousemove", l.MOVE, function(t, i, n, r) { + e.handleTouchesMove([e.getTouchByXY(n.x, n.y, r)]), + e._mousePressed || i.setButton(null) + } + ], ["mousewheel", l.SCROLL, function(t, e) { + e.setScrollData(0, t.wheelDelta) + } + ], ["DOMMouseScroll", l.SCROLL, function(t, e) { + e.setScrollData(0, -120 * t.detail) + } + ]], c = 0; c < h.length; ++c) { + var u = h[c]; + u && (function() { + var n = u[0] + , s = u[1] + , a = u[2]; + t.addEventListener(n, (function(t) { + var n = e.getPointByEvent(t, i) + , o = e.getMouseEvent(n, i, s); + o.setButton(t.button), + a(t, o, n, i), + r.dispatchEvent(o), + t.stopPropagation(), + t.preventDefault() + } + ), !1) + } + )() + } + } + if (window.navigator.msPointerEnabled) { + var _ = { + MSPointerDown: e.handleTouchesBegin, + MSPointerMove: e.handleTouchesMove, + MSPointerUp: e.handleTouchesEnd, + MSPointerCancel: e.handleTouchesCancel + } + , f = function(n) { + var r = _[n]; + t.addEventListener(n, (function(t) { + var n = document.documentElement; + i.adjustedLeft = i.left - n.scrollLeft, + i.adjustedTop = i.top - n.scrollTop, + r.call(e, [e.getTouchByXY(t.clientX, t.clientY, i)]), + t.stopPropagation() + } + ), !1) + }; + for (var d in _) + f(d) + } + if (o) { + var p = { + touchstart: function(i) { + e.handleTouchesBegin(i), + t.focus() + }, + touchmove: function(t) { + e.handleTouchesMove(t) + }, + touchend: function(t) { + e.handleTouchesEnd(t) + }, + touchcancel: function(t) { + e.handleTouchesCancel(t) + } + } + , m = function(n) { + var r = p[n]; + t.addEventListener(n, (function(t) { + if (t.changedTouches) { + var n = document.body; + i.adjustedLeft = i.left - (n.scrollLeft || window.scrollX || 0), + i.adjustedTop = i.top - (n.scrollTop || window.scrollY || 0), + r(e.getTouchesByEvent(t, i)), + t.stopPropagation(), + t.preventDefault() + } + } + ), !1) + }; + for (var y in p) + m(y) + } + this._registerKeyboardEvent(), + this._isRegisterEvent = !0 + } + }, + _registerKeyboardEvent: function() {}, + _registerAccelerometerEvent: function() {}, + update: function(t) { + this._accelCurTime > this._accelInterval && (this._accelCurTime -= this._accelInterval, + r.dispatchEvent(new cc.Event.EventAcceleration(this._acceleration))), + this._accelCurTime += t + } + }; + e.exports = cc.internal.inputManager = o + } + ), { + "../event-manager": 138, + "./CCMacro": 198, + "./CCSys": 202 + }], + 198: [(function(t, e) { + "use strict"; + cc.macro = { + RAD: Math.PI / 180, + DEG: 180 / Math.PI, + REPEAT_FOREVER: Number.MAX_VALUE - 1, + FLT_EPSILON: 1.192092896e-7, + MIN_ZINDEX: -Math.pow(2, 15), + MAX_ZINDEX: Math.pow(2, 15) - 1, + ONE: 1, + ZERO: 0, + SRC_ALPHA: 770, + SRC_ALPHA_SATURATE: 776, + SRC_COLOR: 768, + DST_ALPHA: 772, + DST_COLOR: 774, + ONE_MINUS_SRC_ALPHA: 771, + ONE_MINUS_SRC_COLOR: 769, + ONE_MINUS_DST_ALPHA: 773, + ONE_MINUS_DST_COLOR: 775, + ONE_MINUS_CONSTANT_ALPHA: 32772, + ONE_MINUS_CONSTANT_COLOR: 32770, + ORIENTATION_PORTRAIT: 1, + ORIENTATION_LANDSCAPE: 2, + ORIENTATION_AUTO: 3, + DENSITYDPI_DEVICE: "device-dpi", + DENSITYDPI_HIGH: "high-dpi", + DENSITYDPI_MEDIUM: "medium-dpi", + DENSITYDPI_LOW: "low-dpi", + FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX: !0, + DIRECTOR_STATS_POSITION: cc.v2(0, 0), + ENABLE_STACKABLE_ACTIONS: !0, + TOUCH_TIMEOUT: 5e3, + BATCH_VERTEX_COUNT: 2e4, + ENABLE_TILEDMAP_CULLING: !0, + ENABLE_TRANSPARENT_CANVAS: !1, + ENABLE_WEBGL_ANTIALIAS: !1, + ENABLE_CULLING: !1, + CLEANUP_IMAGE_CACHE: !1, + SHOW_MESH_WIREFRAME: !1, + SHOW_MESH_NORMAL: !1, + ENABLE_MULTI_TOUCH: !0, + ALLOW_IMAGE_BITMAP: !cc.sys.isMobile, + ENABLE_NATIVE_TTF_RENDERER: !0 + }, + Object.defineProperty(cc.macro, "ROTATE_ACTION_CCW", { + set: function(t) { + cc.RotateTo && cc.RotateBy && (cc.RotateTo._reverse = cc.RotateBy._reverse = t) + } + }), + cc.macro.SUPPORT_TEXTURE_FORMATS = [".pkm", ".pvr", ".webp", ".jpg", ".jpeg", ".bmp", ".png"], + cc.macro.KEY = { + none: 0, + back: 6, + menu: 18, + backspace: 8, + tab: 9, + enter: 13, + shift: 16, + ctrl: 17, + alt: 18, + pause: 19, + capslock: 20, + escape: 27, + space: 32, + pageup: 33, + pagedown: 34, + end: 35, + home: 36, + left: 37, + up: 38, + right: 39, + down: 40, + select: 41, + insert: 45, + Delete: 46, + 0: 48, + 1: 49, + 2: 50, + 3: 51, + 4: 52, + 5: 53, + 6: 54, + 7: 55, + 8: 56, + 9: 57, + a: 65, + b: 66, + c: 67, + d: 68, + e: 69, + f: 70, + g: 71, + h: 72, + i: 73, + j: 74, + k: 75, + l: 76, + m: 77, + n: 78, + o: 79, + p: 80, + q: 81, + r: 82, + s: 83, + t: 84, + u: 85, + v: 86, + w: 87, + x: 88, + y: 89, + z: 90, + num0: 96, + num1: 97, + num2: 98, + num3: 99, + num4: 100, + num5: 101, + num6: 102, + num7: 103, + num8: 104, + num9: 105, + "*": 106, + "+": 107, + "-": 109, + numdel: 110, + "/": 111, + f1: 112, + f2: 113, + f3: 114, + f4: 115, + f5: 116, + f6: 117, + f7: 118, + f8: 119, + f9: 120, + f10: 121, + f11: 122, + f12: 123, + numlock: 144, + scrolllock: 145, + ";": 186, + semicolon: 186, + equal: 187, + "=": 187, + ",": 188, + comma: 188, + dash: 189, + ".": 190, + period: 190, + forwardslash: 191, + grave: 192, + "[": 219, + openbracket: 219, + backslash: 220, + "]": 221, + closebracket: 221, + quote: 222, + dpadLeft: 1e3, + dpadRight: 1001, + dpadUp: 1003, + dpadDown: 1004, + dpadCenter: 1005 + }, + cc.macro.ImageFormat = cc.Enum({ + JPG: 0, + PNG: 1, + TIFF: 2, + WEBP: 3, + PVR: 4, + ETC: 5, + S3TC: 6, + ATITC: 7, + TGA: 8, + RAWDATA: 9, + UNKNOWN: 10 + }), + cc.macro.BlendFactor = cc.Enum({ + ONE: 1, + ZERO: 0, + SRC_ALPHA: 770, + SRC_COLOR: 768, + DST_ALPHA: 772, + DST_COLOR: 774, + ONE_MINUS_SRC_ALPHA: 771, + ONE_MINUS_SRC_COLOR: 769, + ONE_MINUS_DST_ALPHA: 773, + ONE_MINUS_DST_COLOR: 775 + }), + cc.macro.TextAlignment = cc.Enum({ + LEFT: 0, + CENTER: 1, + RIGHT: 2 + }), + cc.macro.VerticalTextAlignment = cc.Enum({ + TOP: 0, + CENTER: 1, + BOTTOM: 2 + }), + e.exports = cc.macro + } + ), {}], + 199: [(function(t, e) { + "use strict"; + var i = t("./js") + , n = t("./CCClass") + , r = 1; + function s() { + this._name = "", + this._objFlags = 0 + } + n.fastDefine("cc.Object", s, { + _name: "", + _objFlags: 0 + }), + i.value(s, "Flags", { + Destroyed: r, + DontSave: 8, + EditorOnly: 16, + Dirty: 32, + DontDestroy: 64, + PersistentMask: -4192741, + Destroying: 128, + Deactivating: 256, + LockedInEditor: 512, + HideInHierarchy: 1024, + IsPreloadStarted: 8192, + IsOnLoadStarted: 32768, + IsOnLoadCalled: 16384, + IsOnEnableCalled: 2048, + IsStartCalled: 65536, + IsEditorOnEnableCalled: 4096, + IsPositionLocked: 1 << 21, + IsRotationLocked: 1 << 17, + IsScaleLocked: 1 << 18, + IsAnchorLocked: 1 << 19, + IsSizeLocked: 1 << 20 + }); + var a = []; + i.value(s, "_deferredDestroy", (function() { + for (var t = a.length, e = 0; e < t; ++e) { + var i = a[e]; + i._objFlags & r || i._destroyImmediate() + } + t === a.length ? a.length = 0 : a.splice(0, t) + } + )); + var o = s.prototype; + function l(t, e) { + var i, r = t instanceof cc._BaseNode || t instanceof cc.Component, s = r ? "_id" : null, a = {}; + for (i in t) + if (t.hasOwnProperty(i)) { + if (i === s) + continue; + switch (typeof t[i]) { + case "string": + a[i] = ""; + break; + case "object": + case "function": + a[i] = null + } + } + if (cc.Class._isCCClass(e)) + for (var o = cc.Class.Attr.getClassAttrs(e), l = e.__props__, h = 0; h < l.length; h++) { + var c = (i = l[h]) + cc.Class.Attr.DELIMETER + "default"; + if (c in o) { + if (r && "_id" === i) + continue; + switch (typeof o[c]) { + case "string": + a[i] = ""; + break; + case "object": + case "function": + a[i] = null; + break; + case "undefined": + a[i] = void 0 + } + } + } + var u = ""; + for (i in a) { + var _; + _ = n.IDENTIFIER_RE.test(i) ? "o." + i + "=" : "o[" + n.escapeForJS(i) + "]="; + var f = a[i]; + "" === f && (f = '""'), + u += _ + f + ";\n" + } + return Function("o", u) + } + i.getset(o, "name", (function() { + return this._name + } + ), (function(t) { + this._name = t + } + ), !0), + i.get(o, "isValid", (function() { + return !(this._objFlags & r) + } + ), !0), + o.destroy = function() { + return this._objFlags & r ? (cc.warnID(5e3), + !1) : !(4 & this._objFlags || (this._objFlags |= 4, + a.push(this), + 0)) + } + , + o._destruct = function() { + var t = this.constructor + , e = t.__destruct__; + e || (e = l(this, t), + i.value(t, "__destruct__", e, !0)), + e(this) + } + , + o._onPreDestroy = null, + o._destroyImmediate = function() { + this._objFlags & r ? cc.errorID(5e3) : (this._onPreDestroy && this._onPreDestroy(), + this._destruct(), + this._objFlags |= r) + } + , + o._deserialize = null, + cc.isValid = function(t, e) { + return "object" == typeof t ? !(!t || t._objFlags & (e ? 4 | r : r)) : void 0 !== t + } + , + cc.Object = e.exports = s + } + ), { + "./CCClass": 193, + "./js": 214 + }], + 200: [(function(t, e) { + "use strict"; + var i = t("../platform/js"); + cc.SAXParser = function() { + window.DOMParser ? (this._isSupportDOMParser = !0, + this._parser = new DOMParser) : (this._isSupportDOMParser = !1, + this._parser = null) + } + , + cc.SAXParser.prototype = { + constructor: cc.SAXParser, + parse: function(t) { + return this._parseXML(t) + }, + _parseXML: function(t) { + var e; + return this._isSupportDOMParser ? e = this._parser.parseFromString(t, "text/xml") : ((e = new ActiveXObject("Microsoft.XMLDOM")).async = "false", + e.loadXML(t)), + e + } + }, + cc.PlistParser = function() { + cc.SAXParser.call(this) + } + , + i.extend(cc.PlistParser, cc.SAXParser), + i.mixin(cc.PlistParser.prototype, { + parse: function(t) { + var e = this._parseXML(t) + , i = e.documentElement; + if ("plist" !== i.tagName) + return cc.warnID(5100), + {}; + for (var n = null, r = 0, s = i.childNodes.length; r < s && 1 !== (n = i.childNodes[r]).nodeType; r++) + ; + return e = null, + this._parseNode(n) + }, + _parseNode: function(t) { + var e = null + , i = t.tagName; + if ("dict" === i) + e = this._parseDict(t); + else if ("array" === i) + e = this._parseArray(t); + else if ("string" === i) + if (1 === t.childNodes.length) + e = t.firstChild.nodeValue; + else { + e = ""; + for (var n = 0; n < t.childNodes.length; n++) + e += t.childNodes[n].nodeValue + } + else + "false" === i ? e = !1 : "true" === i ? e = !0 : "real" === i ? e = parseFloat(t.firstChild.nodeValue) : "integer" === i && (e = parseInt(t.firstChild.nodeValue, 10)); + return e + }, + _parseArray: function(t) { + for (var e = [], i = 0, n = t.childNodes.length; i < n; i++) { + var r = t.childNodes[i]; + 1 === r.nodeType && e.push(this._parseNode(r)) + } + return e + }, + _parseDict: function(t) { + for (var e = {}, i = null, n = 0, r = t.childNodes.length; n < r; n++) { + var s = t.childNodes[n]; + 1 === s.nodeType && ("key" === s.tagName ? i = s.firstChild.nodeValue : e[i] = this._parseNode(s)) + } + return e + } + }), + cc.saxParser = new cc.SAXParser, + cc.plistParser = new cc.PlistParser, + e.exports = { + saxParser: cc.saxParser, + plistParser: cc.plistParser + } + } + ), { + "../platform/js": 214 + }], + 201: [(function() { + "use strict"; + cc.screen = { + _supportsFullScreen: !1, + _onfullscreenchange: null, + _onfullscreenerror: null, + _preOnFullScreenChange: null, + _preOnFullScreenError: null, + _preOnTouch: null, + _touchEvent: "", + _fn: null, + _fnMap: [["requestFullscreen", "exitFullscreen", "fullscreenchange", "fullscreenEnabled", "fullscreenElement", "fullscreenerror"], ["requestFullScreen", "exitFullScreen", "fullScreenchange", "fullScreenEnabled", "fullScreenElement", "fullscreenerror"], ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitIsFullScreen", "webkitCurrentFullScreenElement", "webkitfullscreenerror"], ["mozRequestFullScreen", "mozCancelFullScreen", "mozfullscreenchange", "mozFullScreen", "mozFullScreenElement", "mozfullscreenerror"], ["msRequestFullscreen", "msExitFullscreen", "MSFullscreenChange", "msFullscreenEnabled", "msFullscreenElement", "msfullscreenerror"]], + init: function() { + this._fn = {}; + var t, e, i, n, r = this._fnMap; + for (t = 0, + e = r.length; t < e; t++) + if ((i = r[t]) && void 0 !== document[i[1]]) { + for (t = 0, + n = i.length; t < n; t++) + this._fn[r[0][t]] = i[t]; + break + } + this._supportsFullScreen = void 0 !== this._fn.requestFullscreen, + this._touchEvent = "ontouchend"in window ? "touchend" : "mousedown" + }, + fullScreen: function() { + return !!this._supportsFullScreen && !!(document[this._fn.fullscreenElement] || document[this._fn.webkitFullscreenElement] || document[this._fn.mozFullScreenElement]) + }, + requestFullScreen: function(t, e, i) { + if (t && "video" === t.tagName.toLowerCase()) { + if (cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser && t.readyState > 0) + return void (t.webkitEnterFullscreen && t.webkitEnterFullscreen()); + t.setAttribute("x5-video-player-fullscreen", "true") + } + if (this._supportsFullScreen) { + if (t = t || document.documentElement, + e) { + var n = this._fn.fullscreenchange; + this._onfullscreenchange && document.removeEventListener(n, this._onfullscreenchange), + this._onfullscreenchange = e, + document.addEventListener(n, e, !1) + } + if (i) { + var r = this._fn.fullscreenerror; + this._onfullscreenerror && document.removeEventListener(r, this._onfullscreenerror), + this._onfullscreenerror = i, + document.addEventListener(r, i, { + once: !0 + }) + } + var s = t[this._fn.requestFullscreen](); + void 0 === document[this._fn.fullscreenerror] && window.Promise && s instanceof Promise && s.catch((function() {} + )) + } + }, + exitFullScreen: function(t) { + if (t && "video" === t.tagName.toLowerCase()) { + if (cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser) + return void (t.webkitExitFullscreen && t.webkitExitFullscreen()); + t.setAttribute("x5-video-player-fullscreen", "false") + } + return !this._supportsFullScreen || document[this._fn.exitFullscreen]() + }, + autoFullScreen: function(t, e) { + t = t || document.body, + this._ensureFullScreen(t, e), + this.requestFullScreen(t, e) + }, + disableAutoFullScreen: function(t) { + var e = cc.game.canvas || t + , i = this._touchEvent; + this._preOnTouch && (e.removeEventListener(i, this._preOnTouch), + this._preOnTouch = null) + }, + _ensureFullScreen: function(t, e) { + var i = this + , n = cc.game.canvas || t + , r = this._fn.fullscreenerror + , s = this._touchEvent; + function a() { + i._preOnFullScreenError = null, + i._preOnTouch && n.removeEventListener(s, i._preOnTouch), + i._preOnTouch = function() { + i._preOnTouch = null, + i.requestFullScreen(t, e) + } + , + n.addEventListener(s, i._preOnTouch, { + once: !0 + }) + } + this._preOnFullScreenError && t.removeEventListener(r, this._preOnFullScreenError), + this._preOnFullScreenError = a, + t.addEventListener(r, a, { + once: !0 + }) + } + }, + cc.screen.init() + } + ), {}], + 202: [(function(t, e) { + "use strict"; + window._CCSettings && _CCSettings.platform; + var i = "undefined" == typeof window ? global : window + , n = cc && cc.sys ? cc.sys : (function() { + cc.sys = {}; + var t, e, n = cc.sys; + if (n.LANGUAGE_ENGLISH = "en", + n.LANGUAGE_CHINESE = "zh", + n.LANGUAGE_FRENCH = "fr", + n.LANGUAGE_ITALIAN = "it", + n.LANGUAGE_GERMAN = "de", + n.LANGUAGE_SPANISH = "es", + n.LANGUAGE_DUTCH = "du", + n.LANGUAGE_RUSSIAN = "ru", + n.LANGUAGE_KOREAN = "ko", + n.LANGUAGE_JAPANESE = "ja", + n.LANGUAGE_HUNGARIAN = "hu", + n.LANGUAGE_PORTUGUESE = "pt", + n.LANGUAGE_ARABIC = "ar", + n.LANGUAGE_NORWEGIAN = "no", + n.LANGUAGE_POLISH = "pl", + n.LANGUAGE_TURKISH = "tr", + n.LANGUAGE_UKRAINIAN = "uk", + n.LANGUAGE_ROMANIAN = "ro", + n.LANGUAGE_BULGARIAN = "bg", + n.LANGUAGE_UNKNOWN = "unknown", + n.OS_IOS = "iOS", + n.OS_ANDROID = "Android", + n.OS_WINDOWS = "Windows", + n.OS_MARMALADE = "Marmalade", + n.OS_LINUX = "Linux", + n.OS_BADA = "Bada", + n.OS_BLACKBERRY = "Blackberry", + n.OS_OSX = "OS X", + n.OS_WP8 = "WP8", + n.OS_WINRT = "WINRT", + n.OS_UNKNOWN = "Unknown", + n.UNKNOWN = -1, + n.WIN32 = 0, + n.LINUX = 1, + n.MACOS = 2, + n.ANDROID = 3, + n.IPHONE = 4, + n.IPAD = 5, + n.BLACKBERRY = 6, + n.NACL = 7, + n.EMSCRIPTEN = 8, + n.TIZEN = 9, + n.WINRT = 10, + n.WP8 = 11, + n.MOBILE_BROWSER = 100, + n.DESKTOP_BROWSER = 101, + n.EDITOR_PAGE = 102, + n.EDITOR_CORE = 103, + n.WECHAT_GAME = 104, + n.QQ_PLAY = 105, + n.FB_PLAYABLE_ADS = 106, + n.BAIDU_GAME = 107, + n.VIVO_GAME = 108, + n.OPPO_GAME = 109, + n.HUAWEI_GAME = 110, + n.XIAOMI_GAME = 111, + n.JKW_GAME = 112, + n.ALIPAY_GAME = 113, + n.WECHAT_GAME_SUB = 114, + n.BAIDU_GAME_SUB = 115, + n.QTT_GAME = 116, + n.BYTEDANCE_GAME = 117, + n.BYTEDANCE_GAME_SUB = 118, + n.LINKSURE = 119, + n.BROWSER_TYPE_WECHAT = "wechat", + n.BROWSER_TYPE_ANDROID = "androidbrowser", + n.BROWSER_TYPE_IE = "ie", + n.BROWSER_TYPE_EDGE = "edge", + n.BROWSER_TYPE_QQ = "qqbrowser", + n.BROWSER_TYPE_MOBILE_QQ = "mqqbrowser", + n.BROWSER_TYPE_UC = "ucbrowser", + n.BROWSER_TYPE_UCBS = "ucbs", + n.BROWSER_TYPE_360 = "360browser", + n.BROWSER_TYPE_BAIDU_APP = "baiduboxapp", + n.BROWSER_TYPE_BAIDU = "baidubrowser", + n.BROWSER_TYPE_MAXTHON = "maxthon", + n.BROWSER_TYPE_OPERA = "opera", + n.BROWSER_TYPE_OUPENG = "oupeng", + n.BROWSER_TYPE_MIUI = "miuibrowser", + n.BROWSER_TYPE_FIREFOX = "firefox", + n.BROWSER_TYPE_SAFARI = "safari", + n.BROWSER_TYPE_CHROME = "chrome", + n.BROWSER_TYPE_LIEBAO = "liebao", + n.BROWSER_TYPE_QZONE = "qzone", + n.BROWSER_TYPE_SOUGOU = "sogou", + n.BROWSER_TYPE_HUAWEI = "huawei", + n.BROWSER_TYPE_UNKNOWN = "unknown", + n.isNative = !1, + n.isBrowser = "object" == typeof window && "object" == typeof document && !0, + n.glExtension = function(t) { + return !!cc.renderer.device.ext(t) + } + , + n.getMaxJointMatrixSize = function() { + if (!n._maxJointMatrixSize) { + var t = cc.game._renderContext + , e = Math.floor(t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS) / 4) - 10; + n._maxJointMatrixSize = e < 50 ? 0 : 50 + } + return n._maxJointMatrixSize + } + , + n.getSafeAreaRect = function() { + var t = cc.view.getVisibleSize(); + return cc.rect(0, 0, t.width, t.height) + } + , + i.__globalAdapter && i.__globalAdapter.adaptSys) + i.__globalAdapter.adaptSys(n); + else { + var r = window + , s = r.navigator + , a = document + , o = a.documentElement + , l = s.userAgent.toLowerCase(); + n.isMobile = /mobile|android|iphone|ipad/.test(l), + "undefined" != typeof FbPlayableAd ? n.platform = n.FB_PLAYABLE_ADS : n.platform = n.isMobile ? n.MOBILE_BROWSER : n.DESKTOP_BROWSER; + var h = s.language; + h = h || s.browserLanguage, + n.languageCode = h.toLowerCase(), + h = h ? h.split("-")[0] : n.LANGUAGE_ENGLISH, + n.language = h; + var c = !1 + , u = !1 + , _ = "" + , f = 0 + , d = /android\s*(\d+(?:\.\d+)*)/i.exec(l) || /android\s*(\d+(?:\.\d+)*)/i.exec(s.platform); + d && (c = !0, + _ = d[1] || "", + f = parseInt(_) || 0), + (d = /(iPad|iPhone|iPod).*OS ((\d+_?){2,3})/i.exec(l)) ? (u = !0, + _ = d[2] || "", + f = parseInt(_) || 0) : (/(iPhone|iPad|iPod)/.exec(s.platform) || "MacIntel" === s.platform && s.maxTouchPoints && s.maxTouchPoints > 1) && (u = !0, + _ = "", + f = 0); + var p = n.OS_UNKNOWN; + -1 !== s.appVersion.indexOf("Win") ? p = n.OS_WINDOWS : u ? p = n.OS_IOS : -1 !== s.appVersion.indexOf("Mac") ? p = n.OS_OSX : -1 !== s.appVersion.indexOf("X11") && -1 === s.appVersion.indexOf("Linux") ? p = n.OS_UNIX : c ? p = n.OS_ANDROID : -1 === s.appVersion.indexOf("Linux") && -1 === l.indexOf("ubuntu") || (p = n.OS_LINUX), + n.os = p, + n.osVersion = _, + n.osMainVersion = f, + n.browserType = n.BROWSER_TYPE_UNKNOWN, + (function() { + var t = /mqqbrowser|micromessenger|qqbrowser|sogou|qzone|liebao|maxthon|ucbs|360 aphone|360browser|baiduboxapp|baidubrowser|maxthon|mxbrowser|miuibrowser/i.exec(l) || /qq|ucbrowser|ubrowser|edge|HuaweiBrowser/i.exec(l) || /chrome|safari|firefox|trident|opera|opr\/|oupeng/i.exec(l) + , e = t ? t[0].toLowerCase() : n.BROWSER_TYPE_UNKNOWN; + "safari" === e && c ? e = n.BROWSER_TYPE_ANDROID : "qq" === e && l.match(/android.*applewebkit/i) && (e = n.BROWSER_TYPE_ANDROID); + var i = { + micromessenger: n.BROWSER_TYPE_WECHAT, + trident: n.BROWSER_TYPE_IE, + edge: n.BROWSER_TYPE_EDGE, + "360 aphone": n.BROWSER_TYPE_360, + mxbrowser: n.BROWSER_TYPE_MAXTHON, + "opr/": n.BROWSER_TYPE_OPERA, + ubrowser: n.BROWSER_TYPE_UC, + huaweibrowser: n.BROWSER_TYPE_HUAWEI + }; + "qqbrowser" !== e && "mqqbrowser" !== e || l.match(/wechat|micromessenger/i) && (e = n.BROWSER_TYPE_WECHAT), + n.browserType = i[e] || e + } + )(), + n.browserVersion = "", + (e = l.match(/(mqqbrowser|micromessenger|qqbrowser|sogou|qzone|liebao|maxthon|uc|ucbs|360 aphone|360|baiduboxapp|baidu|maxthon|mxbrowser|miui(?:.hybrid)?)(mobile)?(browser)?\/?([\d.]+)/i)) || (e = l.match(/(qq|chrome|safari|firefox|trident|opera|opr\/|oupeng)(mobile)?(browser)?\/?([\d.]+)/i)), + n.browserVersion = e ? e[4] : ""; + var m = window.innerWidth || document.documentElement.clientWidth + , y = window.innerHeight || document.documentElement.clientHeight + , v = window.devicePixelRatio || 1; + n.windowPixelResolution = { + width: v * m, + height: v * y + }, + n._checkWebGLRenderMode = function() { + if (cc.game.renderType !== cc.game.RENDER_TYPE_WEBGL) + throw new Error("This feature supports WebGL render mode only.") + } + ; + var g = document.createElement("canvas"); + try { + var A = n.localStorage = r.localStorage; + A.setItem("storage", ""), + A.removeItem("storage"), + A = null + } catch (M) { + var x = function() { + cc.warnID(5200) + }; + n.localStorage = { + getItem: x, + setItem: x, + removeItem: x, + clear: x + } + } + var b = g.toDataURL("image/webp").startsWith("data:image/webp") + , C = !!g.getContext("2d") + , T = !1; + r.WebGLRenderingContext && (T = !0); + var S, w = n.capabilities = { + canvas: C, + opengl: T, + webp: b, + imageBitmap: !1 + }; + "undefined" != typeof createImageBitmap && "undefined" != typeof Blob && (g.width = g.height = 2, + createImageBitmap(g, {}).then((function(t) { + w.imageBitmap = !0, + t.close && t.close() + } + )).catch((function() {} + ))), + (void 0 !== o.ontouchstart || void 0 !== a.ontouchstart || s.msPointerEnabled) && (w.touches = !0), + void 0 !== o.onmouseup && (w.mouse = !0), + void 0 !== o.onkeyup && (w.keyboard = !0), + (r.DeviceMotionEvent || r.DeviceOrientationEvent) && (w.accelerometer = !0), + (function() { + n.browserVersion; + var t = !!(window.AudioContext || window.webkitAudioContext || window.mozAudioContext); + S = { + ONLY_ONE: !1, + WEB_AUDIO: t, + DELAY_CREATE_CTX: !1 + }, + n.os === n.OS_IOS && (S.USE_LOADER_EVENT = "loadedmetadata"), + n.browserType === n.BROWSER_TYPE_FIREFOX && (S.DELAY_CREATE_CTX = !0, + S.USE_LOADER_EVENT = "canplay"), + n.os === n.OS_ANDROID && n.browserType === n.BROWSER_TYPE_UC && (S.ONE_SOURCE = !0) + } + )(); + try { + S.WEB_AUDIO && (S.context = new (window.AudioContext || window.webkitAudioContext || window.mozAudioContext), + S.DELAY_CREATE_CTX && setTimeout((function() { + S.context = new (window.AudioContext || window.webkitAudioContext || window.mozAudioContext) + } + ), 0)) + } catch (D) { + S.WEB_AUDIO = !1, + cc.logID(5201) + } + var E = []; + (t = document.createElement("audio")).canPlayType && (t.canPlayType('audio/ogg; codecs="vorbis"') && E.push(".ogg"), + t.canPlayType("audio/mpeg") && E.push(".mp3"), + t.canPlayType('audio/wav; codecs="1"') && E.push(".wav"), + t.canPlayType("audio/mp4") && E.push(".mp4"), + t.canPlayType("audio/x-m4a") && E.push(".m4a")), + S.format = E, + n.__audioSupport = S + } + return n.NetworkType = { + NONE: 0, + LAN: 1, + WWAN: 2 + }, + n.getNetworkType = function() { + return n.NetworkType.LAN + } + , + n.getBatteryLevel = function() { + return 1 + } + , + n.garbageCollect = function() {} + , + n.restartVM = function() {} + , + n.isObjectValid = function(t) { + return !!t + } + , + n.dump = function() { + var t = ""; + t += "isMobile : " + this.isMobile + "\r\n", + t += "language : " + this.language + "\r\n", + t += "browserType : " + this.browserType + "\r\n", + t += "browserVersion : " + this.browserVersion + "\r\n", + t += "capabilities : " + JSON.stringify(this.capabilities) + "\r\n", + t += "os : " + this.os + "\r\n", + t += "osVersion : " + this.osVersion + "\r\n", + t += "platform : " + this.platform + "\r\n", + t += "Using " + (cc.game.renderType === cc.game.RENDER_TYPE_WEBGL ? "WEBGL" : "CANVAS") + " renderer.\r\n", + cc.log(t) + } + , + n.openURL = function(t) { + window.open(t) + } + , + n.now = function() { + return Date.now ? Date.now() : +new Date + } + , + n + } + )(); + e.exports = n + } + ), {}], + 203: [(function(t, e) { + "use strict"; + var i = t("../event/event-target") + , n = t("../platform/js") + , r = t("../renderer"); + t("../platform/CCClass"); + var s = { + init: function() { + this.html = document.getElementsByTagName("html")[0] + }, + availWidth: function(t) { + return t && t !== this.html ? t.clientWidth : window.innerWidth + }, + availHeight: function(t) { + return t && t !== this.html ? t.clientHeight : window.innerHeight + }, + meta: { + width: "device-width" + }, + adaptationType: cc.sys.browserType + }; + switch (cc.sys.os === cc.sys.OS_IOS && (s.adaptationType = cc.sys.BROWSER_TYPE_SAFARI), + s.adaptationType) { + case cc.sys.BROWSER_TYPE_SAFARI: + case cc.sys.BROWSER_TYPE_SOUGOU: + case cc.sys.BROWSER_TYPE_UC: + s.meta["minimal-ui"] = "true", + s.availWidth = function(t) { + return t.clientWidth + } + , + s.availHeight = function(t) { + return t.clientHeight + } + } + var a = null + , o = function() { + i.call(this); + var t = this + , e = cc.ContainerStrategy + , n = cc.ContentStrategy; + s.init(this), + t._frameSize = cc.size(0, 0), + t._designResolutionSize = cc.size(0, 0), + t._originalDesignResolutionSize = cc.size(0, 0), + t._scaleX = 1, + t._scaleY = 1, + t._viewportRect = cc.rect(0, 0, 0, 0), + t._visibleRect = cc.rect(0, 0, 0, 0), + t._autoFullScreen = !1, + t._devicePixelRatio = 1, + t._maxPixelRatio = 2, + t._retinaEnabled = !1, + t._resizeCallback = null, + t._resizing = !1, + t._resizeWithBrowserSize = !1, + t._orientationChanging = !0, + t._isRotated = !1, + t._orientation = cc.macro.ORIENTATION_AUTO, + t._isAdjustViewport = !0, + t._antiAliasEnabled = !1, + t._resolutionPolicy = null, + t._rpExactFit = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.EXACT_FIT), + t._rpShowAll = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.SHOW_ALL), + t._rpNoBorder = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.NO_BORDER), + t._rpFixedHeight = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.FIXED_HEIGHT), + t._rpFixedWidth = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.FIXED_WIDTH), + cc.game.once(cc.game.EVENT_ENGINE_INITED, this.init, this) + }; + cc.js.extend(o, i), + cc.js.mixin(o.prototype, { + init: function() { + this._initFrameSize(); + var t = cc.game.canvas.width + , e = cc.game.canvas.height; + this._designResolutionSize.width = t, + this._designResolutionSize.height = e, + this._originalDesignResolutionSize.width = t, + this._originalDesignResolutionSize.height = e, + this._viewportRect.width = t, + this._viewportRect.height = e, + this._visibleRect.width = t, + this._visibleRect.height = e, + cc.winSize.width = this._visibleRect.width, + cc.winSize.height = this._visibleRect.height, + cc.visibleRect && cc.visibleRect.init(this._visibleRect) + }, + _resizeEvent: function(t) { + var e; + e = this.setDesignResolutionSize ? this : cc.view; + var i = cc.sys; + if (i.browserType !== i.BROWSER_TYPE_UC || i.os !== i.OS_IOS) { + var n = e._frameSize.width + , r = e._frameSize.height + , s = e._isRotated; + if (cc.sys.isMobile) { + var a = cc.game.container.style + , o = a.margin; + a.margin = "0", + a.display = "none", + e._initFrameSize(), + a.margin = o, + a.display = "block" + } else + e._initFrameSize(); + if (!0 === t || e._isRotated !== s || e._frameSize.width !== n || e._frameSize.height !== r) { + var l = e._originalDesignResolutionSize.width + , h = e._originalDesignResolutionSize.height; + e._resizing = !0, + l > 0 && e.setDesignResolutionSize(l, h, e._resolutionPolicy), + e._resizing = !1, + e.emit("canvas-resize"), + e._resizeCallback && e._resizeCallback.call() + } + } else + setTimeout((function() { + e._resizeEvent(t) + } + ), 0) + }, + _orientationChange: function() { + cc.view._orientationChanging = !0, + cc.view._resizeEvent(), + cc.sys.browserType === cc.sys.BROWSER_TYPE_SAFARI && cc.sys.isMobile && setTimeout((function() { + window.innerHeight > window.innerWidth && window.scrollTo(0, 1) + } + ), 500) + }, + _resize: function() { + cc.view._resizeEvent(!1) + }, + resizeWithBrowserSize: function(t) { + t ? this._resizeWithBrowserSize || (this._resizeWithBrowserSize = !0, + window.addEventListener("resize", this._resize), + window.addEventListener("orientationchange", this._orientationChange)) : this._resizeWithBrowserSize && (this._resizeWithBrowserSize = !1, + window.removeEventListener("resize", this._resize), + window.removeEventListener("orientationchange", this._orientationChange)) + }, + setResizeCallback: function(t) { + "function" != typeof t && null != t || (this._resizeCallback = t) + }, + setOrientation: function(t) { + if ((t &= cc.macro.ORIENTATION_AUTO) && this._orientation !== t) { + this._orientation = t; + var e = this._originalDesignResolutionSize.width + , i = this._originalDesignResolutionSize.height; + this.setDesignResolutionSize(e, i, this._resolutionPolicy) + } + }, + _initFrameSize: function() { + var t = this._frameSize + , e = s.availWidth(cc.game.frame) + , i = s.availHeight(cc.game.frame) + , n = e >= i; + !cc.sys.isMobile || n && this._orientation & cc.macro.ORIENTATION_LANDSCAPE || !n && this._orientation & cc.macro.ORIENTATION_PORTRAIT ? (t.width = e, + t.height = i, + cc.game.container.style["-webkit-transform"] = "rotate(0deg)", + cc.game.container.style.transform = "rotate(0deg)", + this._isRotated = !1) : (t.width = i, + t.height = e, + cc.game.container.style["-webkit-transform"] = "rotate(90deg)", + cc.game.container.style.transform = "rotate(90deg)", + cc.game.container.style["-webkit-transform-origin"] = "0px 0px 0px", + cc.game.container.style.transformOrigin = "0px 0px 0px", + this._isRotated = !0), + this._orientationChanging && setTimeout((function() { + cc.view._orientationChanging = !1 + } + ), 1e3) + }, + _setViewportMeta: function(t, e) { + var i = document.getElementById("cocosMetaElement"); + i && e && document.head.removeChild(i); + var n, r, s, a = document.getElementsByName("viewport"), o = a ? a[0] : null; + for (r in n = o ? o.content : "", + (i = i || document.createElement("meta")).id = "cocosMetaElement", + i.name = "viewport", + i.content = "", + t) + -1 == n.indexOf(r) ? n += "," + r + "=" + t[r] : e && (s = new RegExp(r + "s*=s*[^,]+"), + n = n.replace(s, r + "=" + t[r])); + /^,/.test(n) && (n = n.substr(1)), + i.content = n, + o && (o.content = n), + document.head.appendChild(i) + }, + _adjustViewportMeta: function() { + this._isAdjustViewport && (this._setViewportMeta(s.meta, !1), + this._isAdjustViewport = !1) + }, + adjustViewportMeta: function(t) { + this._isAdjustViewport = t + }, + enableRetina: function(t) { + this._retinaEnabled = !!t + }, + isRetinaEnabled: function() { + return this._retinaEnabled + }, + enableAntiAlias: function(t) { + if (cc.warnID(9200), + this._antiAliasEnabled !== t) + if (this._antiAliasEnabled = t, + cc.game.renderType === cc.game.RENDER_TYPE_WEBGL) + cc.assetManager.assets.forEach((function(e) { + if (e instanceof cc.Texture2D) { + var i = cc.Texture2D.Filter; + t ? e.setFilters(i.LINEAR, i.LINEAR) : e.setFilters(i.NEAREST, i.NEAREST) + } + } + )); + else if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) { + var e = cc.game.canvas.getContext("2d"); + e.imageSmoothingEnabled = t, + e.mozImageSmoothingEnabled = t + } + }, + isAntiAliasEnabled: function() { + return this._antiAliasEnabled + }, + enableAutoFullScreen: function(t) { + t && t !== this._autoFullScreen && cc.sys.isMobile ? (this._autoFullScreen = !0, + cc.screen.autoFullScreen(cc.game.frame)) : (this._autoFullScreen = !1, + cc.screen.disableAutoFullScreen(cc.game.frame)) + }, + isAutoFullScreenEnabled: function() { + return this._autoFullScreen + }, + setCanvasSize: function(t, e) { + var i = cc.game.canvas + , n = cc.game.container; + i.width = t * this._devicePixelRatio, + i.height = e * this._devicePixelRatio, + i.style.width = t + "px", + i.style.height = e + "px", + n.style.width = t + "px", + n.style.height = e + "px", + this._resizeEvent() + }, + getCanvasSize: function() { + return cc.size(cc.game.canvas.width, cc.game.canvas.height) + }, + getFrameSize: function() { + return cc.size(this._frameSize.width, this._frameSize.height) + }, + setFrameSize: function(t, e) { + this._frameSize.width = t, + this._frameSize.height = e, + cc.game.frame.style.width = t + "px", + cc.game.frame.style.height = e + "px", + this._resizeEvent(!0) + }, + getVisibleSize: function() { + return cc.size(this._visibleRect.width, this._visibleRect.height) + }, + getVisibleSizeInPixel: function() { + return cc.size(this._visibleRect.width * this._scaleX, this._visibleRect.height * this._scaleY) + }, + getVisibleOrigin: function() { + return cc.v2(this._visibleRect.x, this._visibleRect.y) + }, + getVisibleOriginInPixel: function() { + return cc.v2(this._visibleRect.x * this._scaleX, this._visibleRect.y * this._scaleY) + }, + getResolutionPolicy: function() { + return this._resolutionPolicy + }, + setResolutionPolicy: function(t) { + var e = this; + if (t instanceof cc.ResolutionPolicy) + e._resolutionPolicy = t; + else { + var i = cc.ResolutionPolicy; + t === i.EXACT_FIT && (e._resolutionPolicy = e._rpExactFit), + t === i.SHOW_ALL && (e._resolutionPolicy = e._rpShowAll), + t === i.NO_BORDER && (e._resolutionPolicy = e._rpNoBorder), + t === i.FIXED_HEIGHT && (e._resolutionPolicy = e._rpFixedHeight), + t === i.FIXED_WIDTH && (e._resolutionPolicy = e._rpFixedWidth) + } + }, + setDesignResolutionSize: function(t, e, i) { + if (t > 0 && e > 0) { + this.setResolutionPolicy(i); + var n = this._resolutionPolicy; + if (n && n.preApply(this), + cc.sys.isMobile && this._adjustViewportMeta(), + this._orientationChanging = !0, + this._resizing || this._initFrameSize(), + n) { + this._originalDesignResolutionSize.width = this._designResolutionSize.width = t, + this._originalDesignResolutionSize.height = this._designResolutionSize.height = e; + var s = n.apply(this, this._designResolutionSize); + if (s.scale && 2 === s.scale.length && (this._scaleX = s.scale[0], + this._scaleY = s.scale[1]), + s.viewport) { + var a = this._viewportRect + , o = this._visibleRect + , l = s.viewport; + a.x = l.x, + a.y = l.y, + a.width = l.width, + a.height = l.height, + o.x = 0, + o.y = 0, + o.width = l.width / this._scaleX, + o.height = l.height / this._scaleY + } + n.postApply(this), + cc.winSize.width = this._visibleRect.width, + cc.winSize.height = this._visibleRect.height, + cc.visibleRect && cc.visibleRect.init(this._visibleRect), + r.updateCameraViewport(), + cc.internal.inputManager._updateCanvasBoundingRect(), + this.emit("design-resolution-changed") + } else + cc.logID(2201) + } else + cc.errorID(2200) + }, + getDesignResolutionSize: function() { + return cc.size(this._designResolutionSize.width, this._designResolutionSize.height) + }, + setRealPixelResolution: function(t, e, i) { + this._setViewportMeta({ + width: t + }, !0), + document.documentElement.style.width = t + "px", + document.body.style.width = t + "px", + document.body.style.left = "0px", + document.body.style.top = "0px", + this.setDesignResolutionSize(t, e, i) + }, + setViewportInPoints: function(t, e, i, n) { + var r = this._scaleX + , s = this._scaleY; + cc.game._renderContext.viewport(t * r + this._viewportRect.x, e * s + this._viewportRect.y, i * r, n * s) + }, + setScissorInPoints: function(t, e, i, n) { + var r = this._scaleX + , s = this._scaleY + , o = Math.ceil(t * r + this._viewportRect.x) + , l = Math.ceil(e * s + this._viewportRect.y) + , h = Math.ceil(i * r) + , c = Math.ceil(n * s) + , u = cc.game._renderContext; + if (!a) { + var _ = u.getParameter(u.SCISSOR_BOX); + a = cc.rect(_[0], _[1], _[2], _[3]) + } + a.x === o && a.y === l && a.width === h && a.height === c || (a.x = o, + a.y = l, + a.width = h, + a.height = c, + u.scissor(o, l, h, c)) + }, + isScissorEnabled: function() { + return cc.game._renderContext.isEnabled(gl.SCISSOR_TEST) + }, + getScissorRect: function() { + if (!a) { + var t = gl.getParameter(gl.SCISSOR_BOX); + a = cc.rect(t[0], t[1], t[2], t[3]) + } + var e = 1 / this._scaleX + , i = 1 / this._scaleY; + return cc.rect((a.x - this._viewportRect.x) * e, (a.y - this._viewportRect.y) * i, a.width * e, a.height * i) + }, + getViewportRect: function() { + return this._viewportRect + }, + getScaleX: function() { + return this._scaleX + }, + getScaleY: function() { + return this._scaleY + }, + getDevicePixelRatio: function() { + return this._devicePixelRatio + }, + convertToLocationInView: function(t, e, i, n) { + var r = n || cc.v2() + , s = i.adjustedLeft ? i.adjustedLeft : i.left + , a = i.adjustedTop ? i.adjustedTop : i.top + , o = this._devicePixelRatio * (t - s) + , l = this._devicePixelRatio * (a + i.height - e); + return this._isRotated ? (r.x = cc.game.canvas.width - l, + r.y = o) : (r.x = o, + r.y = l), + r + }, + _convertMouseToLocationInView: function(t, e) { + var i = this._viewportRect; + t.x = (this._devicePixelRatio * (t.x - e.left) - i.x) / this._scaleX, + t.y = (this._devicePixelRatio * (e.top + e.height - t.y) - i.y) / this._scaleY + }, + _convertPointWithScale: function(t) { + var e = this._viewportRect; + t.x = (t.x - e.x) / this._scaleX, + t.y = (t.y - e.y) / this._scaleY + }, + _convertTouchesWithScale: function(t) { + for (var e, i, n, r = this._viewportRect, s = this._scaleX, a = this._scaleY, o = 0; o < t.length; o++) + i = (e = t[o])._point, + n = e._prevPoint, + i.x = (i.x - r.x) / s, + i.y = (i.y - r.y) / a, + n.x = (n.x - r.x) / s, + n.y = (n.y - r.y) / a + } + }), + cc.ContainerStrategy = cc.Class({ + name: "ContainerStrategy", + preApply: function() {}, + apply: function() {}, + postApply: function() {}, + _setupContainer: function(t, e, i) { + var n = cc.game.canvas; + this._setupStyle(t, e, i); + var r = t._devicePixelRatio = 1; + t.isRetinaEnabled() && (r = t._devicePixelRatio = Math.min(t._maxPixelRatio, window.devicePixelRatio || 1)), + n.width = e * r, + n.height = i * r + }, + _setupStyle: function(t, e, i) { + var n = cc.game.canvas + , r = cc.game.container; + cc.sys.os === cc.sys.OS_ANDROID && (document.body.style.width = (t._isRotated ? i : e) + "px", + document.body.style.height = (t._isRotated ? e : i) + "px"), + r.style.width = n.style.width = e + "px", + r.style.height = n.style.height = i + "px" + }, + _fixContainer: function() { + document.body.insertBefore(cc.game.container, document.body.firstChild); + var t = document.body.style; + t.width = window.innerWidth + "px", + t.height = window.innerHeight + "px", + t.overflow = "hidden"; + var e = cc.game.container.style; + e.position = "fixed", + e.left = e.top = "0px", + document.body.scrollTop = 0 + } + }), + cc.ContentStrategy = cc.Class({ + name: "ContentStrategy", + ctor: function() { + this._result = { + scale: [1, 1], + viewport: null + } + }, + _buildResult: function(t, e, i, n, r, s) { + Math.abs(t - i) < 2 && (i = t), + Math.abs(e - n) < 2 && (n = e); + var a = cc.rect((t - i) / 2, (e - n) / 2, i, n); + return cc.game.renderType, + cc.game.RENDER_TYPE_CANVAS, + this._result.scale = [r, s], + this._result.viewport = a, + this._result + }, + preApply: function() {}, + apply: function() { + return { + scale: [1, 1] + } + }, + postApply: function() {} + }), + (function() { + var t = cc.Class({ + name: "EqualToFrame", + extends: cc.ContainerStrategy, + apply: function(t) { + var e = t._frameSize.height + , i = cc.game.container.style; + this._setupContainer(t, t._frameSize.width, t._frameSize.height), + t._isRotated ? i.margin = "0 0 0 " + e + "px" : i.margin = "0px", + i.padding = "0px" + } + }) + , e = cc.Class({ + name: "ProportionalToFrame", + extends: cc.ContainerStrategy, + apply: function(t, e) { + var i, n, r = t._frameSize.width, s = t._frameSize.height, a = cc.game.container.style, o = e.width, l = e.height, h = r / o, c = s / l; + h < c ? (i = r, + n = l * h) : (i = o * c, + n = s); + var u = Math.round((r - i) / 2) + , _ = Math.round((s - n) / 2); + i = r - 2 * u, + n = s - 2 * _, + this._setupContainer(t, i, n), + t._isRotated ? a.margin = "0 0 0 " + s + "px" : a.margin = "0px", + a.paddingLeft = u + "px", + a.paddingRight = u + "px", + a.paddingTop = _ + "px", + a.paddingBottom = _ + "px" + } + }) + , i = (cc.Class({ + name: "EqualToWindow", + extends: t, + preApply: function(t) { + this._super(t), + cc.game.frame = document.documentElement + }, + apply: function(t) { + this._super(t), + this._fixContainer() + } + }), + cc.Class({ + name: "ProportionalToWindow", + extends: e, + preApply: function(t) { + this._super(t), + cc.game.frame = document.documentElement + }, + apply: function(t, e) { + this._super(t, e), + this._fixContainer() + } + }), + cc.Class({ + name: "OriginalContainer", + extends: cc.ContainerStrategy, + apply: function(t) { + this._setupContainer(t, cc.game.canvas.width, cc.game.canvas.height) + } + })) + , n = ("undefined" == typeof window ? global : window).__globalAdapter; + n && (n.adaptContainerStrategy && n.adaptContainerStrategy(cc.ContainerStrategy.prototype), + n.adaptView && n.adaptView(o.prototype)), + cc.ContainerStrategy.EQUAL_TO_FRAME = new t, + cc.ContainerStrategy.PROPORTION_TO_FRAME = new e, + cc.ContainerStrategy.ORIGINAL_CONTAINER = new i; + var r = cc.Class({ + name: "ExactFit", + extends: cc.ContentStrategy, + apply: function(t, e) { + var i = cc.game.canvas.width + , n = cc.game.canvas.height + , r = i / e.width + , s = n / e.height; + return this._buildResult(i, n, i, n, r, s) + } + }) + , s = cc.Class({ + name: "ShowAll", + extends: cc.ContentStrategy, + apply: function(t, e) { + var i, n, r = cc.game.canvas.width, s = cc.game.canvas.height, a = e.width, o = e.height, l = r / a, h = s / o, c = 0; + return l < h ? (i = r, + n = o * (c = l)) : (i = a * (c = h), + n = s), + this._buildResult(r, s, i, n, c, c) + } + }) + , a = cc.Class({ + name: "NoBorder", + extends: cc.ContentStrategy, + apply: function(t, e) { + var i, n, r, s = cc.game.canvas.width, a = cc.game.canvas.height, o = e.width, l = e.height, h = s / o, c = a / l; + return h < c ? (n = o * (i = c), + r = a) : (n = s, + r = l * (i = h)), + this._buildResult(s, a, n, r, i, i) + } + }) + , l = cc.Class({ + name: "FixedHeight", + extends: cc.ContentStrategy, + apply: function(t, e) { + var i = cc.game.canvas.width + , n = cc.game.canvas.height + , r = n / e.height + , s = i + , a = n; + return this._buildResult(i, n, s, a, r, r) + } + }) + , h = cc.Class({ + name: "FixedWidth", + extends: cc.ContentStrategy, + apply: function(t, e) { + var i = cc.game.canvas.width + , n = cc.game.canvas.height + , r = i / e.width + , s = i + , a = n; + return this._buildResult(i, n, s, a, r, r) + } + }); + cc.ContentStrategy.EXACT_FIT = new r, + cc.ContentStrategy.SHOW_ALL = new s, + cc.ContentStrategy.NO_BORDER = new a, + cc.ContentStrategy.FIXED_HEIGHT = new l, + cc.ContentStrategy.FIXED_WIDTH = new h + } + )(), + cc.ResolutionPolicy = cc.Class({ + name: "cc.ResolutionPolicy", + ctor: function(t, e) { + this._containerStrategy = null, + this._contentStrategy = null, + this.setContainerStrategy(t), + this.setContentStrategy(e) + }, + preApply: function(t) { + this._containerStrategy.preApply(t), + this._contentStrategy.preApply(t) + }, + apply: function(t, e) { + return this._containerStrategy.apply(t, e), + this._contentStrategy.apply(t, e) + }, + postApply: function(t) { + this._containerStrategy.postApply(t), + this._contentStrategy.postApply(t) + }, + setContainerStrategy: function(t) { + t instanceof cc.ContainerStrategy && (this._containerStrategy = t) + }, + setContentStrategy: function(t) { + t instanceof cc.ContentStrategy && (this._contentStrategy = t) + } + }), + n.get(cc.ResolutionPolicy.prototype, "canvasSize", (function() { + return cc.v2(cc.game.canvas.width, cc.game.canvas.height) + } + )), + cc.ResolutionPolicy.EXACT_FIT = 0, + cc.ResolutionPolicy.NO_BORDER = 1, + cc.ResolutionPolicy.SHOW_ALL = 2, + cc.ResolutionPolicy.FIXED_HEIGHT = 3, + cc.ResolutionPolicy.FIXED_WIDTH = 4, + cc.ResolutionPolicy.UNKNOWN = 5, + cc.view = new o, + cc.winSize = cc.size(), + e.exports = cc.view + } + ), { + "../event/event-target": 140, + "../platform/CCClass": 193, + "../platform/js": 214, + "../renderer": 224 + }], + 204: [(function() { + "use strict"; + cc.visibleRect = { + topLeft: cc.v2(0, 0), + topRight: cc.v2(0, 0), + top: cc.v2(0, 0), + bottomLeft: cc.v2(0, 0), + bottomRight: cc.v2(0, 0), + bottom: cc.v2(0, 0), + center: cc.v2(0, 0), + left: cc.v2(0, 0), + right: cc.v2(0, 0), + width: 0, + height: 0, + init: function(t) { + var e = this.width = t.width + , i = this.height = t.height + , n = t.x + , r = t.y + , s = r + i + , a = n + e; + this.topLeft.x = n, + this.topLeft.y = s, + this.topRight.x = a, + this.topRight.y = s, + this.top.x = n + e / 2, + this.top.y = s, + this.bottomLeft.x = n, + this.bottomLeft.y = r, + this.bottomRight.x = a, + this.bottomRight.y = r, + this.bottom.x = n + e / 2, + this.bottom.y = r, + this.center.x = n + e / 2, + this.center.y = r + i / 2, + this.left.x = n, + this.left.y = r + i / 2, + this.right.x = a, + this.right.y = r + i / 2 + } + } + } + ), {}], + 205: [(function(t, e) { + "use strict"; + var i = t("./js") + , n = (t("./utils").isPlainEmptyObj_DEV, + "$_$"); + function r(t, e) { + var n = e ? Object.create(e) : {}; + return i.value(t, "__attrs__", n), + n + } + function s(t) { + if ("function" != typeof t) + return r(t, a(t.constructor)); + for (var e, i = cc.Class.getInheritanceChain(t), n = i.length - 1; n >= 0; n--) { + var s = i[n]; + s.hasOwnProperty("__attrs__") && s.__attrs__ || r(s, (e = i[n + 1]) && e.__attrs__) + } + return r(t, (e = i[0]) && e.__attrs__), + t.__attrs__ + } + function a(t) { + return t.hasOwnProperty("__attrs__") && t.__attrs__ || s(t) + } + function o(t, e) { + this.name = t, + this.default = e + } + o.prototype.toString = function() { + return this.name + } + , + cc.Integer = new o("Integer",0), + cc.Float = new o("Float",0), + cc.Boolean = new o("Boolean",!1), + cc.String = new o("String",""), + e.exports = { + PrimitiveType: o, + attr: function(t, e) { + var i = a(t) + , r = e + n + , s = {}; + for (var o in i) + o.startsWith(r) && (s[o.slice(r.length)] = i[o]); + return s + }, + getClassAttrs: a, + setClassAttr: function(t, e, i, r) { + a(t)[e + n + i] = r + }, + DELIMETER: n, + getTypeChecker_ET: !1, + getObjTypeChecker_ET: !1, + ScriptUuid: {} + } + } + ), { + "./CCClass": 193, + "./js": 214, + "./utils": 217 + }], + 206: [(function(t, e) { + "use strict"; + var i = t("./js") + , n = i.array.fastRemoveAt; + function r() {} + function s() { + this.callback = r, + this.target = void 0, + this.once = !1 + } + s.prototype.set = function(t, e, i) { + this.callback = t, + this.target = e, + this.once = !!i + } + ; + var a = new i.Pool(function(t) { + return t.callback = r, + t.target = void 0, + t.once = !1, + !0 + } + ,32); + function o() { + this.callbackInfos = [], + this.isInvoking = !1, + this.containCanceled = !1 + } + a.get = function() { + return this._get() || new s + } + ; + var l = o.prototype; + l.removeByCallback = function(t) { + for (var e = 0; e < this.callbackInfos.length; ++e) { + var i = this.callbackInfos[e]; + i && i.callback === t && (a.put(i), + n(this.callbackInfos, e), + --e) + } + } + , + l.removeByTarget = function(t) { + for (var e = 0; e < this.callbackInfos.length; ++e) { + var i = this.callbackInfos[e]; + i && i.target === t && (a.put(i), + n(this.callbackInfos, e), + --e) + } + } + , + l.cancel = function(t) { + var e = this.callbackInfos[t]; + e && (a.put(e), + this.callbackInfos[t] = null), + this.containCanceled = !0 + } + , + l.cancelAll = function() { + for (var t = 0; t < this.callbackInfos.length; t++) { + var e = this.callbackInfos[t]; + e && (a.put(e), + this.callbackInfos[t] = null) + } + this.containCanceled = !0 + } + , + l.purgeCanceled = function() { + for (var t = this.callbackInfos.length - 1; t >= 0; --t) + this.callbackInfos[t] || n(this.callbackInfos, t); + this.containCanceled = !1 + } + , + l.clear = function() { + this.cancelAll(), + this.callbackInfos.length = 0, + this.isInvoking = !1, + this.containCanceled = !1 + } + ; + var h = new i.Pool(function(t) { + return t.callbackInfos = [], + t.isInvoking = !1, + t.containCanceled = !1, + !0 + } + ,16); + function c() { + this._callbackTable = i.createMap(!0) + } + h.get = function() { + return this._get() || new o + } + , + (l = c.prototype).on = function(t, e, i, n) { + var r = this._callbackTable[t]; + r || (r = this._callbackTable[t] = h.get()); + var s = a.get(); + s.set(e, i, n), + r.callbackInfos.push(s) + } + , + l.hasEventListener = function(t, e, i) { + var n = this._callbackTable[t]; + if (!n) + return !1; + var r = n.callbackInfos; + if (!e) { + if (n.isInvoking) { + for (var s = 0; s < r.length; ++s) + if (r[s]) + return !0; + return !1 + } + return r.length > 0 + } + for (var a = 0; a < r.length; ++a) { + var o = r[a]; + if (o && o.callback === e && o.target === i) + return !0 + } + return !1 + } + , + l.removeAll = function(t) { + if ("string" == typeof t) { + var e = this._callbackTable[t]; + e && (e.isInvoking ? e.cancelAll() : (e.clear(), + h.put(e), + delete this._callbackTable[t])) + } else if (t) + for (var i in this._callbackTable) { + var n = this._callbackTable[i]; + if (n.isInvoking) + for (var r = n.callbackInfos, s = 0; s < r.length; ++s) { + var a = r[s]; + a && a.target === t && n.cancel(s) + } + else + n.removeByTarget(t) + } + } + , + l.off = function(t, e, i) { + var r = this._callbackTable[t]; + if (r) + for (var s = r.callbackInfos, o = 0; o < s.length; ++o) { + var l = s[o]; + if (l && l.callback === e && l.target === i) { + r.isInvoking ? r.cancel(o) : (n(s, o), + a.put(l)); + break + } + } + } + , + l.emit = function(t, e, i, n, r, s) { + var a = this._callbackTable[t]; + if (a) { + var o = !a.isInvoking; + a.isInvoking = !0; + for (var l = a.callbackInfos, h = 0, c = l.length; h < c; ++h) { + var u = l[h]; + if (u) { + var _ = u.target + , f = u.callback; + u.once && this.off(t, f, _), + _ ? f.call(_, e, i, n, r, s) : f(e, i, n, r, s) + } + } + o && (a.isInvoking = !1, + a.containCanceled && a.purgeCanceled()) + } + } + , + e.exports = c + } + ), { + "./js": 214 + }], + 207: [(function(t, e) { + "use strict"; + function i(t, e) { + for (var n = 0; n < e.length; n++) { + var r = e[n]; + Array.isArray(r) ? i(t, r) : t.push(r) + } + } + e.exports = { + flattenCodeArray: function(t) { + var e = []; + return i(e, t), + e.join("") + } + } + } + ), {}], + 208: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = O, + i.unpackJSONs = function(t, e) { + if (t[0] < 1) + throw new Error(cc.debug.getError(5304, t[0])); + I(t, !0, e), + P(t); + for (var i = new L(t[0]), n = t[1], r = t[2], s = t[3], a = t[4], o = t[v], l = 0; l < o.length; ++l) + o[l].unshift(i, n, r, s, a); + return o + } + , + i.packCustomObjData = function(t, e, i) { + return [1, f, f, [t], f, i ? [e, -1] : [e], [0], f, [], [], []] + } + , + i.hasNativeDep = function(t) { + var e = t[5] + , i = e[e.length - 1]; + return "number" == typeof i && i < 0 + } + , + i.getDependUuidList = function(t) { + var e = t[1]; + return t[10].map((function(t) { + return e[t] + } + )) + } + ; + var n = _(t("./js")) + , r = _(t("../value-types/vec2")) + , s = _(t("../value-types/vec3")) + , a = _(t("../value-types/vec4")) + , o = _(t("../value-types/color")) + , l = _(t("../value-types/size")) + , h = _(t("../value-types/rect")) + , c = _(t("../value-types/quat")) + , u = _(t("../value-types/mat4")); + function _(t) { + return t && t.__esModule ? t : { + default: t + } + } + var f = 0 + , d = [r.default, s.default, a.default, c.default, o.default, l.default, h.default, u.default]; + function p(t, e) { + t.x = e[1], + t.y = e[2], + t.z = e[3], + t.w = e[4] + } + var m = [function(t, e) { + t.x = e[1], + t.y = e[2] + } + , function(t, e) { + t.x = e[1], + t.y = e[2], + t.z = e[3] + } + , p, p, function(t, e) { + t._val = e[1] + } + , function(t, e) { + t.width = e[1], + t.height = e[2] + } + , function(t, e) { + t.x = e[1], + t.y = e[2], + t.width = e[3], + t.height = e[4] + } + , function(t, e) { + u.default.fromArray(t, e, 1) + } + ] + , y = 0 + , v = 5 + , g = (function() { + function t() { + this.uuidObjList = null, + this.uuidPropList = null, + this.uuidList = null + } + var e = t.prototype; + return e.init = function(t) { + this.uuidObjList = t[8], + this.uuidPropList = t[9], + this.uuidList = t[10] + } + , + e.reset = function() { + this.uuidList = null, + this.uuidObjList = null, + this.uuidPropList = null + } + , + e.push = function(t, e, i) { + this.uuidObjList.push(t), + this.uuidPropList.push(e), + this.uuidList.push(i) + } + , + t + } + )(); + function A(t, e, i) { + for (var n = t.length - 1, r = 0, s = 3 * t[n]; r < s; r += 3) { + var a = t[r] + , o = e[t[r + 2]] + , l = t[r + 1]; + l >= 0 ? a[i[l]] = o : a[~l] = o + } + for (; r < n; r += 3) { + var h = e[t[r]] + , c = e[t[r + 2]] + , u = t[r + 1]; + u >= 0 ? h[i[u]] = c : h[~u] = c + } + } + function x(t, e) { + for (var i = t[4][e[0]], n = i[0], r = new (0, + n[0]), s = n[1], a = n[2], o = i[i.length - 1], l = 1; l < o; ++l) + r[s[i[l]]] = e[l]; + for (; l < e.length; ++l) { + var h = s[i[l]] + , c = n[i[l] + a]; + (0, + E[c])(t, r, h, e[l]) + } + return r + } + function b(t, e, i) { + var r = new e; + return r._deserialize ? r._deserialize(i, t[0]) : cc.errorID(5303, n.default.getClassName(e)), + r + } + function C(t, e, i, n) { + n >= 0 ? e[i] = t[5][n] : t[7][3 * ~n] = e + } + function T(t) { + return function(e, i, n, r) { + i[n] = r; + for (var s = 0; s < r.length; ++s) + t(e, r, s, r[s]) + } + } + function S(t, e, i, n) { + e[i] = null, + t[8][n] = e + } + function w(t, e, i, n) { + e[i] = x(t, n) + } + g.pool = new n.default.Pool(function(t) { + t.reset() + } + ,5), + g.pool.get = function() { + return this._get() || new g + } + ; + var E = new Array(13); + function M(t) { + var e = t[5] + , i = t[6] + , n = 0 === i ? 0 : i.length + , r = e[e.length - 1] + , s = e.length - n; + "number" != typeof r ? r = 0 : (r < 0 && (r = ~r), + --s); + for (var a = 0; a < s; ++a) + e[a] = x(t, e[a]); + for (var o = t[3], l = 0; l < n; ++l, + ++a) { + var h = i[l] + , c = e[a]; + if (h >= 0) { + var u = o[h]; + e[a] = b(t, u, c) + } else + (0, + E[h = ~h])(t, e, a, c) + } + return r + } + function D(t, e) { + return t || O.reportMissingClass(e), + Object + } + function B(t, e, i, n, r, s) { + var a = t(e); + if (!a) { + if (r) + return void (i[n] = (function(e, i, n) { + return function() { + var r = t(n) || D(s, n); + return e[i] = r, + new r + } + } + )(i, n, e)); + a = D(s, e) + } + i[n] = a + } + function I(t, e, i) { + for (var r = i || n.default._getClassById, s = t[3], a = 0; a < s.length; ++a) { + var o = s[a]; + "string" != typeof o ? B(r, o[0], o, y, e, i) : B(r, o, s, a, e, i) + } + } + function P(t) { + var e = t[4]; + if (e) + for (var i = t[3], n = 0; n < e.length; ++n) { + var r = e[n]; + r[0] = i[r[0]] + } + } + function R(t) { + for (var e = t[5], i = t[2], n = t[1], r = t[8], s = t[9], a = t[10], o = 0; o < r.length; ++o) { + var l = r[o]; + "number" == typeof l && (r[o] = e[l]); + var h = s[o]; + "number" == typeof h && (h = h >= 0 ? i[h] : ~h, + s[o] = h); + var c = a[o]; + "number" == typeof c && (a[o] = n[c]) + } + } + function O(t, e, i) { + "string" == typeof t && (t = JSON.parse(t)); + var n = !e; + (e = e || g.pool.get()).init(t), + i = i || {}; + var r = t[0] + , s = !1; + if ("object" == typeof r && (s = r.preprocessed, + r = r.version), + r < 1) + throw new Error(cc.debug.getError(5304, r)); + i._version = r, + i.result = e, + t[0] = i, + s || (I(t, !1, i.classFinder), + P(t)), + cc.game._isCloning = !0; + var a = t[5] + , o = M(t); + return cc.game._isCloning = !1, + t[7] && A(t[7], a, t[2]), + R(t), + n && g.pool.put(e), + a[o] + } + E[0] = function(t, e, i, n) { + e[i] = n + } + , + E[1] = C, + E[2] = T(C), + E[3] = T(S), + E[4] = w, + E[5] = function(t, e, i, n) { + m[n[0]](e[i], n) + } + , + E[6] = S, + E[7] = function(t, e, i, n) { + e[i].set(n) + } + , + E[8] = function(t, e, i, n) { + var r = new d[n[0]]; + m[n[0]](r, n), + e[i] = r + } + , + E[9] = T(w), + E[10] = function(t, e, i, n) { + var r = t[3][n[0]]; + e[i] = b(t, r, n[1]) + } + , + E[11] = function(t, e, i, n) { + var r = n[0]; + e[i] = r; + for (var s = 1; s < n.length; s += 3) { + var a = n[s] + , o = n[s + 1] + , l = n[s + 2]; + (0, + E[o])(t, r, a, l) + } + } + , + E[12] = function(t, e, i, n) { + var r = n[0]; + e[i] = r; + for (var s = 0; s < r.length; ++s) { + var a = r[s] + , o = n[s + 1]; + 0 !== o && (0, + E[o])(t, r, s, a) + } + } + , + O.Details = g; + var L = function(t) { + this.preprocessed = !0, + this.version = t + } + } + ), { + "../value-types/color": 281, + "../value-types/mat4": 284, + "../value-types/quat": 285, + "../value-types/rect": 286, + "../value-types/size": 287, + "../value-types/vec2": 291, + "../value-types/vec3": 292, + "../value-types/vec4": 293, + "./js": 214 + }], + 209: [(function(t) { + "use strict"; + var e, i = (e = t("./deserialize-compiled")) && e.__esModule ? e : { + default: e + }; + i.default.reportMissingClass = function(t) { + cc.warnID(5302, t) + } + , + cc.deserialize = i.default + } + ), { + "./deserialize-compiled": 208, + "./deserialize-editor": void 0 + }], + 210: [(function(t, e) { + "use strict"; + var i = "."; + function n(t) { + this.id = 0 | 998 * Math.random(), + this.prefix = t ? t + i : "" + } + n.prototype.getNewId = function() { + return this.prefix + ++this.id + } + , + n.global = new n("global"), + e.exports = n + } + ), {}], + 211: [(function(t) { + "use strict"; + t("./js"), + t("./CCClass"), + t("./CCClassDecorator"), + t("./CCEnum"), + t("./CCObject"), + t("./callbacks-invoker"), + t("./deserialize"), + t("./instantiate"), + t("./instantiate-jit"), + t("./requiring-frame"), + t("./CCSys"), + t("./CCMacro"), + t("./CCVisibleRect") + } + ), { + "./CCClass": 193, + "./CCClassDecorator": 194, + "./CCEnum": 195, + "./CCMacro": 198, + "./CCObject": 199, + "./CCSys": 202, + "./CCVisibleRect": 204, + "./callbacks-invoker": 206, + "./deserialize": 209, + "./instantiate": 213, + "./instantiate-jit": 212, + "./js": 214, + "./requiring-frame": 216 + }], + 212: [(function(t, e) { + "use strict"; + var i = t("./CCObject") + , n = i.Flags.Destroyed + , r = i.Flags.PersistentMask + , s = t("./attribute") + , a = t("./js") + , o = t("./CCClass") + , l = t("./compiler") + , h = s.DELIMETER + "default" + , c = o.IDENTIFIER_RE + , u = o.escapeForJS + , _ = "var " + , f = "o" + , d = "t" + , p = { + "cc.Node": "cc.Node", + "cc.Sprite": "cc.Sprite", + "cc.Label": "cc.Label", + "cc.Button": "cc.Button", + "cc.Widget": "cc.Widget", + "cc.Animation": "cc.Animation", + "cc.ClickEvent": !1, + "cc.PrefabInfo": !1 + }; + try { + !Float32Array.name && (Float32Array.name = "Float32Array"), + !Float64Array.name && (Float64Array.name = "Float64Array"), + !Int8Array.name && (Int8Array.name = "Int8Array"), + !Int16Array.name && (Int16Array.name = "Int16Array"), + !Int32Array.name && (Int32Array.name = "Int32Array"), + !Uint8Array.name && (Uint8Array.name = "Uint8Array"), + !Uint16Array.name && (Uint16Array.name = "Uint16Array"), + !Uint32Array.name && (Uint32Array.name = "Uint32Array"), + !Uint8ClampedArray.name && (Uint8ClampedArray.name = "Uint8ClampedArray") + } catch (S) {} + function m(t) { + if (t === Float32Array) + return "Float32Array"; + if (t === Float64Array) + return "Float64Array"; + if (t === Int8Array) + return "Int8Array"; + if (t === Int16Array) + return "Int16Array"; + if (t === Int32Array) + return "Int32Array"; + if (t === Uint8Array) + return "Uint8Array"; + if (t === Uint16Array) + return "Uint16Array"; + if (t === Uint32Array) + return "Uint32Array"; + if (t === Uint8ClampedArray) + return "Uint8ClampedArray"; + throw new Error("Unknown TypedArray to instantiate: " + t) + } + function y(t, e) { + this.varName = t, + this.expression = e + } + function v(t, e) { + return e instanceof y ? new y(e.varName,t + e.expression) : t + e + } + function g(t, e, i) { + Array.isArray(i) ? (i[0] = v(e, i[0]), + t.push(i)) : t.push(v(e, i) + ";") + } + function A(t) { + this._exps = [], + this._targetExp = t + } + function x(t, e) { + if ("function" == typeof t) + try { + t = t() + } catch (S) { + return !1 + } + if (t === e) + return !0; + if (t && e && "object" == typeof t && "object" == typeof e && t.constructor === e.constructor) + if (t instanceof cc.ValueType) { + if (t.equals(e)) + return !0 + } else { + if (Array.isArray(t)) + return 0 === t.length && 0 === e.length; + if (t.constructor === Object) + return a.isEmptyObject(t) && a.isEmptyObject(e) + } + return !1 + } + function b(t) { + return c.test(t) ? "." + t : "[" + u(t) + "]" + } + function C(t, e) { + var i; + this.parent = e, + this.objsToClear_iN$t = [], + this.codeArray = [], + this.objs = [], + this.funcs = [], + this.funcModuleCache = a.createMap(), + a.mixin(this.funcModuleCache, p), + this.globalVariables = [], + this.globalVariableId = 0, + this.localVariableId = 0, + this.codeArray.push(_ + f + "," + d + ";", "if(R){", f + "=R;", "}else{", f + "=R=new " + this.getFuncModule(t.constructor, !0) + "();", "}"), + a.value(t, "_iN$t", { + globalVar: "R" + }, !0), + this.objsToClear_iN$t.push(t), + this.enumerateObject(this.codeArray, t), + this.globalVariables.length > 0 && (i = _ + this.globalVariables.join(",") + ";"); + var n = l.flattenCodeArray(["return (function(R){", i || [], this.codeArray, "return o;", "})"]); + this.result = Function("O", "F", n)(this.objs, this.funcs); + for (var r = 0, s = this.objsToClear_iN$t.length; r < s; ++r) + this.objsToClear_iN$t[r]._iN$t = null; + this.objsToClear_iN$t.length = 0 + } + y.prototype.toString = function() { + return _ + this.varName + "=" + this.expression + ";" + } + , + A.prototype.append = function(t, e) { + this._exps.push([t, e]) + } + , + A.prototype.writeCode = function(t) { + var e; + if (this._exps.length > 1) + t.push(d + "=" + this._targetExp + ";"), + e = d; + else { + if (1 !== this._exps.length) + return; + e = this._targetExp + } + for (var i = 0; i < this._exps.length; i++) { + var n = this._exps[i]; + g(t, e + b(n[0]) + "=", n[1]) + } + } + , + A.pool = new a.Pool(function(t) { + t._exps.length = 0, + t._targetExp = null + } + ,1), + A.pool.get = function(t) { + var e = this._get() || new A; + return e._targetExp = t, + e + } + ; + var T = C.prototype; + T.getFuncModule = function(t, e) { + var i = a.getClassName(t); + if (i) { + var n = this.funcModuleCache[i]; + if (n) + return n; + if (void 0 === n) { + var r = -1 !== i.indexOf("."); + if (r) + try { + if (r = t === Function("return " + i)()) + return this.funcModuleCache[i] = i, + i + } catch (S) {} + } + } + var s = this.funcs.indexOf(t); + s < 0 && (s = this.funcs.length, + this.funcs.push(t)); + var o = "F[" + s + "]"; + return e && (o = "(" + o + ")"), + this.funcModuleCache[i] = o, + o + } + , + T.getObjRef = function(t) { + var e = this.objs.indexOf(t); + return e < 0 && (e = this.objs.length, + this.objs.push(t)), + "O[" + e + "]" + } + , + T.setValueType = function(t, e, i, n) { + var r = A.pool.get(n) + , s = e.constructor.__props__; + s || (s = Object.keys(e)); + for (var a = 0; a < s.length; a++) { + var o = s[a] + , l = i[o]; + if (e[o] !== l) { + var h = this.enumerateField(i, o, l); + r.append(o, h) + } + } + r.writeCode(t), + A.pool.put(r) + } + , + T.enumerateCCClass = function(t, e, i) { + for (var n = i.__values__, r = s.getClassAttrs(i), a = 0; a < n.length; a++) { + var l = n[a] + , c = e[l] + , u = r[l + h]; + if (!x(u, c)) + if ("object" == typeof c && c instanceof cc.ValueType && (u = o.getDefault(u)) && u.constructor === c.constructor) { + var _ = f + b(l); + this.setValueType(t, u, c, _) + } else + this.setObjProp(t, e, l, c) + } + } + , + T.instantiateArray = function(t) { + if (0 === t.length) + return "[]"; + var e = "a" + ++this.localVariableId + , i = [new y(e,"new Array(" + t.length + ")")]; + a.value(t, "_iN$t", { + globalVar: "", + source: i + }, !0), + this.objsToClear_iN$t.push(t); + for (var n = 0; n < t.length; ++n) + g(i, e + "[" + n + "]=", this.enumerateField(t, n, t[n])); + return i + } + , + T.instantiateTypedArray = function(t) { + var e = t.constructor.name || m(t.constructor); + if (0 === t.length) + return "new " + e; + var i = "a" + ++this.localVariableId + , n = [new y(i,"new " + e + "(" + t.length + ")")]; + t._iN$t = { + globalVar: "", + source: n + }, + this.objsToClear_iN$t.push(t); + for (var r = 0; r < t.length; ++r) + 0 !== t[r] && g(n, i + "[" + r + "]=", t[r]); + return n + } + , + T.enumerateField = function(t, e, n) { + if ("object" == typeof n && n) { + var s = n._iN$t; + if (s) { + var a = s.globalVar; + if (!a) { + a = s.globalVar = "v" + ++this.globalVariableId, + this.globalVariables.push(a); + var o = s.source[0]; + s.source[0] = v(a + "=", o) + } + return a + } + return ArrayBuffer.isView(n) ? this.instantiateTypedArray(n) : Array.isArray(n) ? this.instantiateArray(n) : this.instantiateObj(n) + } + return "function" == typeof n ? this.getFuncModule(n) : "string" == typeof n ? u(n) : ("_objFlags" === e && t instanceof i && (n &= r), + n) + } + , + T.setObjProp = function(t, e, i, n) { + g(t, f + b(i) + "=", this.enumerateField(e, i, n)) + } + , + T.enumerateObject = function(t, e) { + var i = e.constructor; + if (cc.Class._isCCClass(i)) + this.enumerateCCClass(t, e, i); + else + for (var n in e) + if (e.hasOwnProperty(n) && (95 !== n.charCodeAt(0) || 95 !== n.charCodeAt(1) || "__type__" === n)) { + var r = e[n]; + "object" == typeof r && r && r === e._iN$t || this.setObjProp(t, e, n, r) + } + } + , + T.instantiateObj = function(t) { + if (t instanceof cc.ValueType) + return o.getNewValueTypeCode(t); + if (t instanceof cc.Asset) + return this.getObjRef(t); + if (t._objFlags & n) + return null; + var e, i = t.constructor; + if (cc.Class._isCCClass(i)) { + if (this.parent) + if (this.parent instanceof cc.Component) { + if (t instanceof cc._BaseNode || t instanceof cc.Component) + return this.getObjRef(t) + } else if (this.parent instanceof cc._BaseNode) + if (t instanceof cc._BaseNode) { + if (!t.isChildOf(this.parent)) + return this.getObjRef(t) + } else if (t instanceof cc.Component && !t.node.isChildOf(this.parent)) + return this.getObjRef(t); + e = new y(f,"new " + this.getFuncModule(i, !0) + "()") + } else if (i === Object) + e = new y(f,"{}"); + else { + if (i) + return this.getObjRef(t); + e = new y(f,"Object.create(null)") + } + var r = [e]; + return a.value(t, "_iN$t", { + globalVar: "", + source: r + }, !0), + this.objsToClear_iN$t.push(t), + this.enumerateObject(r, t), + ["(function(){", r, "return o;})();"] + } + , + e.exports = { + compile: function(t) { + return new C(t,t instanceof cc._BaseNode && t).result + }, + equalsToDefault: x + } + } + ), { + "./CCClass": 193, + "./CCObject": 199, + "./attribute": 205, + "./compiler": 207, + "./js": 214 + }], + 213: [(function(t, e) { + "use strict"; + var i = t("./CCObject") + , n = t("../value-types/value-type") + , r = i.Flags.Destroyed + , s = i.Flags.PersistentMask + , a = t("./utils").isDomNode + , o = t("./js"); + function l(t, e) { + if (!e) { + if ("object" != typeof t || Array.isArray(t)) + return null; + if (!t) + return null; + if (!cc.isValid(t)) + return null + } + var n; + if (t instanceof i) { + if (t._instantiate) + return cc.game._isCloning = !0, + n = t._instantiate(null, !0), + cc.game._isCloning = !1, + n; + if (t instanceof cc.Asset) + return null + } + return cc.game._isCloning = !0, + n = c(t), + cc.game._isCloning = !1, + n + } + var h = []; + function c(t, e) { + if (Array.isArray(t)) + return null; + if (a && a(t)) + return null; + var i; + _(t, i = t._iN$t ? t._iN$t : t.constructor ? new (0, + t.constructor) : Object.create(null), e); + for (var n = 0, r = h.length; n < r; ++n) + h[n]._iN$t = null; + return h.length = 0, + i + } + function u(t, e, i, r) { + for (var s = t.__values__, a = 0; a < s.length; a++) { + var o = s[a] + , l = e[o]; + if ("object" == typeof l && l) { + var h = i[o]; + h instanceof n && h.constructor === l.constructor ? h.set(l) : i[o] = l._iN$t || f(l, r) + } else + i[o] = l + } + } + function _(t, e, n) { + o.value(t, "_iN$t", e, !0), + h.push(t); + var r = t.constructor; + if (cc.Class._isCCClass(r)) + u(r, t, e, n); + else + for (var a in t) + if (t.hasOwnProperty(a) && (95 !== a.charCodeAt(0) || 95 !== a.charCodeAt(1) || "__type__" === a)) { + var l = t[a]; + if ("object" == typeof l && l) { + if (l === e) + continue; + e[a] = l._iN$t || f(l, n) + } else + e[a] = l + } + t instanceof i && (e._objFlags &= s) + } + function f(t, e) { + if (t instanceof n) + return t.clone(); + if (t instanceof cc.Asset) + return t; + var i; + if (ArrayBuffer.isView(t)) { + var s = t.length; + i = new t.constructor(s), + t._iN$t = i, + h.push(t); + for (var a = 0; a < s; ++a) + i[a] = t[a]; + return i + } + if (Array.isArray(t)) { + var l = t.length; + i = new Array(l), + o.value(t, "_iN$t", i, !0), + h.push(t); + for (var c = 0; c < l; ++c) { + var u = t[c]; + i[c] = "object" == typeof u && u ? u._iN$t || f(u, e) : u + } + return i + } + if (t._objFlags & r) + return null; + var d = t.constructor; + if (cc.Class._isCCClass(d)) { + if (e) + if (e instanceof cc.Component) { + if (t instanceof cc._BaseNode || t instanceof cc.Component) + return t + } else if (e instanceof cc._BaseNode) + if (t instanceof cc._BaseNode) { + if (!t.isChildOf(e)) + return t + } else if (t instanceof cc.Component && !t.node.isChildOf(e)) + return t; + i = new d + } else if (d === Object) + i = {}; + else { + if (d) + return t; + i = Object.create(null) + } + return _(t, i, e), + i + } + l._clone = c, + cc.instantiate = l, + e.exports = l + } + ), { + "../value-types/value-type": 290, + "./CCObject": 199, + "./js": 214, + "./utils": 217 + }], + 214: [(function(t, e) { + "use strict"; + var i = new (t("./id-generater"))("TmpCId."); + function n(t, e) { + for (; t; ) { + var i = Object.getOwnPropertyDescriptor(t, e); + if (i) + return i; + t = Object.getPrototypeOf(t) + } + return null + } + function r(t, e, i) { + var r = n(e, t); + Object.defineProperty(i, t, r) + } + var s = { + isNumber: function(t) { + return "number" == typeof t || t instanceof Number + }, + isString: function(t) { + return "string" == typeof t || t instanceof String + }, + addon: function(t) { + t = t || {}; + for (var e = 1, i = arguments.length; e < i; e++) { + var n = arguments[e]; + if (n) { + if ("object" != typeof n) { + cc.errorID(5402, n); + continue + } + for (var s in n) + s in t || r(s, n, t) + } + } + return t + }, + mixin: function(t) { + t = t || {}; + for (var e = 1, i = arguments.length; e < i; e++) { + var n = arguments[e]; + if (n) { + if ("object" != typeof n) { + cc.errorID(5403, n); + continue + } + for (var s in n) + r(s, n, t) + } + } + return t + }, + extend: function(t, e) { + for (var i in e) + e.hasOwnProperty(i) && (t[i] = e[i]); + return t.prototype = Object.create(e.prototype, { + constructor: { + value: t, + writable: !0, + configurable: !0 + } + }), + t + }, + getSuper: function(t) { + var e = t.prototype + , i = e && Object.getPrototypeOf(e); + return i && i.constructor + }, + isChildClassOf: function(t, e) { + if (t && e) { + if ("function" != typeof t) + return !1; + if ("function" != typeof e) + return !1; + if (t === e) + return !0; + for (; ; ) { + if (!(t = s.getSuper(t))) + return !1; + if (t === e) + return !0 + } + } + return !1 + }, + clear: function(t) { + for (var e = Object.keys(t), i = 0; i < e.length; i++) + delete t[e[i]] + }, + isEmptyObject: function(t) { + for (var e in t) + return !1; + return !0 + }, + getPropertyDescriptor: n + } + , a = { + value: void 0, + enumerable: !1, + writable: !1, + configurable: !0 + }; + s.value = function(t, e, i, n, r) { + a.value = i, + a.writable = n, + a.enumerable = r, + Object.defineProperty(t, e, a), + a.value = void 0 + } + ; + var o = { + get: null, + set: null, + enumerable: !1 + }; + s.getset = function(t, e, i, n, r, s) { + "function" != typeof n && (r = n, + n = void 0), + o.get = i, + o.set = n, + o.enumerable = r, + o.configurable = s, + Object.defineProperty(t, e, o), + o.get = null, + o.set = null + } + ; + var l = { + get: null, + enumerable: !1, + configurable: !1 + }; + s.get = function(t, e, i, n, r) { + l.get = i, + l.enumerable = n, + l.configurable = r, + Object.defineProperty(t, e, l), + l.get = null + } + ; + var h = { + set: null, + enumerable: !1, + configurable: !1 + }; + s.set = function(t, e, i, n, r) { + h.set = i, + h.enumerable = n, + h.configurable = r, + Object.defineProperty(t, e, h), + h.set = null + } + , + s.getClassName = function(t) { + if ("function" == typeof t) { + var e = t.prototype; + if (e && e.hasOwnProperty("__classname__") && e.__classname__) + return e.__classname__; + var i = ""; + if (t.name && (i = t.name), + t.toString) { + var n, r = t.toString(); + (n = "[" === r.charAt(0) ? r.match(/\[\w+\s*(\w+)\]/) : r.match(/function\s*(\w+)/)) && 2 === n.length && (i = n[1]) + } + return "Object" !== i ? i : "" + } + return t && t.constructor ? s.getClassName(t.constructor) : "" + } + , + (function() { + var t = {} + , e = {}; + function n(t, e, i) { + return s.getset(s, e, (function() { + return Object.assign({}, i) + } + ), (function(t) { + s.clear(i), + Object.assign(i, t) + } + )), + function(e, n) { + if (n.prototype.hasOwnProperty(t) && delete i[n.prototype[t]], + s.value(n.prototype, t, e), + e) { + var r = i[e]; + if (r && r !== n) { + var a = "A Class already exists with the same " + t + ' : "' + e + '".'; + cc.error(a) + } else + i[e] = n + } + } + } + s._setClassId = n("__cid__", "_registeredClassIds", t); + var r = n("__classname__", "_registeredClassNames", e); + s.setClassName = function(t, e) { + if (r(t, e), + !e.prototype.hasOwnProperty("__cid__")) { + var n = t || i.getNewId(); + n && s._setClassId(n, e) + } + } + , + s.unregisterClass = function() { + for (var i = 0; i < arguments.length; i++) { + var n = arguments[i].prototype + , r = n.__cid__; + r && delete t[r]; + var s = n.__classname__; + s && delete e[s] + } + } + , + s._getClassById = function(e) { + return t[e] + } + , + s.getClassByName = function(t) { + return e[t] + } + , + s._getClassId = function(t, e) { + if (e = void 0 === e || e, + "function" == typeof t && t.prototype.hasOwnProperty("__cid__")) + return t.prototype.__cid__; + if (t && t.constructor) { + var i = t.constructor.prototype; + if (i && i.hasOwnProperty("__cid__")) + return t.__cid__ + } + return "" + } + } + )(), + s.obsolete = function(t, e, i, n) { + var r = /([^.]+)$/ + , a = r.exec(e)[0] + , o = r.exec(i)[0]; + function l() { + return this[o] + } + n ? s.getset(t, a, l, (function(t) { + this[o] = t + } + )) : s.get(t, a, l) + } + , + s.obsoletes = function(t, e, i, n) { + for (var r in i) { + var a = i[r]; + s.obsolete(t, e + "." + r, a, n) + } + } + ; + var c = /(%d)|(%s)/ + , u = /%s/; + function _(t, e) { + t.splice(e, 1) + } + function f(t, e) { + var i = t.indexOf(e); + return i >= 0 && (_(t, i), + !0) + } + function d(t, e) { + void 0 === e && (e = t, + t = null), + this.get = null, + this.count = 0, + this._pool = new Array(e), + this._cleanup = t + } + s.formatStr = function() { + var t = arguments.length; + if (0 === t) + return ""; + var e = arguments[0]; + if (1 === t) + return "" + e; + var i = "string" == typeof e && c.test(e); + if (i) + for (var n = 1; n < t; ++n) { + var r = arguments[n] + , s = "number" == typeof r ? c : u; + if (s.test(e)) { + var a = "" + r; + e = e.replace(s, a) + } else + e += " " + r + } + else + for (var o = 1; o < t; ++o) + e += " " + arguments[o]; + return e + } + , + s.shiftArguments = function() { + for (var t = arguments.length - 1, e = new Array(t), i = 0; i < t; ++i) + e[i] = arguments[i + 1]; + return e + } + , + s.createMap = function(t) { + var e = Object.create(null); + return t && (e["."] = !0, + e["/"] = !0, + delete e["."], + delete e["/"]), + e + } + , + s.array = { + remove: f, + fastRemove: function(t, e) { + var i = t.indexOf(e); + i >= 0 && (t[i] = t[t.length - 1], + --t.length) + }, + removeAt: _, + fastRemoveAt: function(t, e) { + var i = t.length; + e < 0 || e >= i || (t[e] = t[i - 1], + t.length = i - 1) + }, + contains: function(t, e) { + return t.indexOf(e) >= 0 + }, + verifyType: function(t, e) { + if (t && t.length > 0) + for (var i = 0; i < t.length; i++) + if (!(t[i]instanceof e)) + return cc.logID(1300), + !1; + return !0 + }, + removeArray: function(t, e) { + for (var i = 0, n = e.length; i < n; i++) + f(t, e[i]) + }, + appendObjectsAt: function(t, e, i) { + return t.splice.apply(t, [i, 0].concat(e)), + t + }, + copy: function(t) { + var e, i = t.length, n = new Array(i); + for (e = 0; e < i; e += 1) + n[e] = t[e]; + return n + }, + MutableForwardIterator: t("../utils/mutable-forward-iterator") + }, + d.prototype._get = function() { + if (this.count > 0) { + --this.count; + var t = this._pool[this.count]; + return this._pool[this.count] = null, + t + } + return null + } + , + d.prototype.put = function(t) { + var e = this._pool; + if (this.count < e.length) { + if (this._cleanup && !1 === this._cleanup(t)) + return; + e[this.count] = t, + ++this.count + } + } + , + d.prototype.resize = function(t) { + t >= 0 && (this._pool.length = t, + this.count > t && (this.count = t)) + } + , + s.Pool = d, + cc.js = s, + e.exports = s + } + ), { + "../utils/mutable-forward-iterator": 268, + "./id-generater": 210 + }], + 215: [(function(t, e, i) { + "use strict"; + var n = t("./js") + , r = t("./attribute") + , s = { + default: {}, + serializable: {}, + editorOnly: {}, + formerlySerializedAs: {} + }; + function a(t, e, i, n) { + if (!t.get && !t.set && t.hasOwnProperty("default")) { + var r = "_N$" + e; + t.get = function() { + return this[r] + } + , + t.set = function(t) { + var e = this[r]; + this[r] = t, + i.call(this, e) + } + ; + var a = {}; + for (var o in n[r] = a, + s) { + var l = s[o]; + t.hasOwnProperty(o) && (a[o] = t[o], + l.canUsedInGet || delete t[o]) + } + } + } + function o(t, e, i, n) { + if (Array.isArray(e)) { + if (!(e.length > 0)) + return cc.errorID(5508, i, n); + t.type = e = e[0] + } + "function" == typeof e && (e === String ? t.type = cc.String : e === Boolean ? t.type = cc.Boolean : e === Number && (t.type = cc.Float)) + } + function l(t, e, i) { + var n = t ? { + _short: !0 + } : { + _short: !0, + default: e + }; + return i && (n.type = i), + n + } + i.getFullFormOfProperty = function(t, e) { + return t && t.constructor === Object ? null : Array.isArray(t) && t.length > 0 ? l(e, [], t) : "function" == typeof t ? l(e, n.isChildClassOf(t, cc.ValueType) ? new t : null, t) : t instanceof r.PrimitiveType ? l(e, t.default) : l(e, t) + } + , + i.preprocessAttrs = function(t, e) { + for (var n in t) { + var r = t[n] + , s = i.getFullFormOfProperty(r, !1); + if (s && (r = t[n] = s), + r) { + var l = r.notify; + l && a(r, n, l, t), + "type"in r && o(r, r.type, e, n) + } + } + } + , + i.validateMethodWithProps = function(t) { + return "function" == typeof t || null === t + } + } + ), { + "./CCClass": 193, + "./attribute": 205, + "./js": 214 + }], + 216: [(function() { + "use strict"; + var t = []; + cc._RF = { + push: function(e, i, n) { + void 0 === n && (n = i, + i = ""), + t.push({ + uuid: i, + script: n, + module: e, + exports: e.exports, + beh: null + }) + }, + pop: function() { + var e = t.pop() + , i = e.module + , n = i.exports; + if (n === e.exports) { + for (var r in n) + return; + i.exports = n = e.cls + } + }, + peek: function() { + return t[t.length - 1] + } + } + } + ), {}], + 217: [(function(t, e) { + "use strict"; + t("./js"), + e.exports = { + contains: function(t, e) { + if ("function" == typeof t.contains) + return t.contains(e); + if ("function" == typeof t.compareDocumentPosition) + return !!(16 & t.compareDocumentPosition(e)); + var i = e.parentNode; + if (i) + do { + if (i === t) + return !0; + i = i.parentNode + } while (null !== i);return !1 + }, + isDomNode: "object" == typeof window && ("function" == typeof Node ? function(t) { + return t instanceof Node + } + : function(t) { + return t && "object" == typeof t && "number" == typeof t.nodeType && "string" == typeof t.nodeName + } + ), + callInNextTick: function(t, e, i) { + t && setTimeout((function() { + t(e, i) + } + ), 0) + } + } + } + ), { + "./js": 214 + }], + 218: [(function(t) { + "use strict"; + t("./platform/js"), + t("./value-types"), + t("./utils"), + t("./platform/CCInputManager"), + t("./platform/CCInputExtension"), + t("./event"), + t("./platform/CCSys"), + t("./platform/CCMacro"), + t("./asset-manager"), + t("./CCDirector"), + t("./renderer"), + t("./platform/CCView"), + t("./platform/CCScreen"), + t("./CCScheduler"), + t("./event-manager") + } + ), { + "./CCDirector": 27, + "./CCScheduler": 32, + "./asset-manager": 50, + "./event": 142, + "./event-manager": 138, + "./platform/CCInputExtension": 196, + "./platform/CCInputManager": 197, + "./platform/CCMacro": 198, + "./platform/CCScreen": 201, + "./platform/CCSys": 202, + "./platform/CCView": 203, + "./platform/js": 214, + "./renderer": 224, + "./utils": 266, + "./value-types": 282 + }], + 219: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = a(t("./assembler")) + , r = a(t("./utils/dynamic-atlas/manager")) + , s = a(t("./webgl/render-data")); + function a(t) { + return t && t.__esModule ? t : { + default: t + } + } + function o(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + function l(t) { + if (void 0 === t) + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t + } + function h(t, e) { + return (h = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + t("../value-types"); + var c = (function(t) { + var e, i; + function n() { + var e; + return (e = t.call(this) || this)._renderData = new s.default, + e._renderData.init(l(e)), + e.initData(), + e.initLocal(), + e + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + h(e, i); + var a, c, u = n.prototype; + return u.initData = function() { + this._renderData.createQuadData(0, this.verticesFloats, this.indicesCount) + } + , + u.initLocal = function() { + this._local = [], + this._local.length = 4 + } + , + u.updateColor = function(t, e) { + var i = this._renderData.uintVDatas[0]; + if (i) { + e = null != e ? e : t.node.color._val; + for (var n = this.floatsPerVert, r = this.colorOffset, s = i.length; r < s; r += n) + i[r] = e + } + } + , + u.getBuffer = function() { + return cc.renderer._handle._meshBuffer + } + , + u.updateWorldVerts = function(t) { + var e = this._local + , i = this._renderData.vDatas[0] + , n = t.node._worldMatrix.m + , r = n[0] + , s = n[1] + , a = n[4] + , o = n[5] + , l = n[12] + , h = n[13] + , c = e[0] + , u = e[2] + , _ = e[1] + , f = e[3] + , d = this.floatsPerVert + , p = 0; + if (1 === r && 0 === s && 0 === a && 1 === o) + i[p] = c + l, + i[p + 1] = _ + h, + i[p += d] = u + l, + i[p + 1] = _ + h, + i[p += d] = c + l, + i[p + 1] = f + h, + i[p += d] = u + l, + i[p + 1] = f + h; + else { + var m = r * c + , y = r * u + , v = s * c + , g = s * u + , A = a * _ + , x = a * f + , b = o * _ + , C = o * f; + i[p] = m + A + l, + i[p + 1] = v + b + h, + i[p += d] = y + A + l, + i[p + 1] = g + b + h, + i[p += d] = m + x + l, + i[p + 1] = v + C + h, + i[p += d] = y + x + l, + i[p + 1] = g + C + h + } + } + , + u.fillBuffers = function(t, e) { + e.worldMatDirty && this.updateWorldVerts(t); + var i = this._renderData + , n = i.vDatas[0] + , r = i.iDatas[0] + , s = this.getBuffer(e) + , a = s.request(this.verticesCount, this.indicesCount) + , o = a.byteOffset >> 2 + , l = s._vData; + n.length + o > l.length ? l.set(n.subarray(0, l.length - o), o) : l.set(n, o); + for (var h = s._iData, c = a.indiceOffset, u = a.vertexOffset, _ = 0, f = r.length; _ < f; _++) + h[c++] = u + r[_] + } + , + u.packToDynamicAtlas = function(t, e) { + if (!e._original && r.default && e._texture.packable) { + var i = r.default.insertSpriteFrame(e); + i && e._setDynamicAtlasFrame(i) + } + var n = t._materials[0]; + n && n.getProperty("texture") !== e._texture && (t._vertsDirty = !0, + t._updateMaterial()) + } + , + a = n, + (c = [{ + key: "verticesFloats", + get: function() { + return this.verticesCount * this.floatsPerVert + } + }]) && o(a.prototype, c), + n + } + )(n.default); + i.default = c, + cc.js.addon(c.prototype, { + floatsPerVert: 5, + verticesCount: 4, + indicesCount: 6, + uvOffset: 2, + colorOffset: 4 + }), + cc.Assembler2D = c, + e.exports = i.default + } + ), { + "../value-types": 282, + "./assembler": 221, + "./utils/dynamic-atlas/manager": 227, + "./webgl/render-data": 254 + }], + 220: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../utils/pool")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var a = 0; + function o(t) { + return Object.getOwnPropertyDescriptor(t, "__assemblerId__") || (t.__assemblerId__ = ++a), + t.__assemblerId__ + } + var l = new (function(t) { + var e, i; + function n() { + for (var e, i = arguments.length, n = new Array(i), r = 0; r < i; r++) + n[r] = arguments[r]; + return (e = t.call.apply(t, [this].concat(n)) || this)._pool = {}, + e + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var r = n.prototype; + return r.put = function(t) { + if (t && this.enabled) { + var e = o(t.constructor) + , i = this._pool; + i[e] || (i[e] = []), + this.count > this.maxSize || (this._clean(t), + i[e].push(t), + this.count++) + } + } + , + r.get = function(t) { + var e; + if (this.enabled) { + var i = this._pool + , n = o(t); + e = i[n] && i[n].pop() + } + return e ? this.count-- : e = new t, + e + } + , + r.clear = function() { + this._pool = {}, + this.count = 0 + } + , + r._clean = function(t) { + t._renderComp = null + } + , + n + }(r.default)); + r.default.register("assembler", l); + var h = l; + i.default = h, + e.exports = i.default + } + ), { + "../utils/pool": 269 + }], + 221: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("./webgl/vertex-format"), s = (n = t("./assembler-pool")) && n.__esModule ? n : { + default: n + }, a = (function() { + function t() { + this._extendNative && this._extendNative() + } + var e = t.prototype; + return e.init = function(t) { + this._renderComp = t + } + , + e.updateRenderData = function() {} + , + e.fillBuffers = function() {} + , + e.getVfmt = function() { + return r.vfmtPosUvColor + } + , + t + } + )(); + i.default = a, + a.register = function(t, e) { + t.__assembler__ = e + } + , + a.init = function(t) { + for (var e = t.constructor, i = e.__assembler__; !i; ) { + if (!(e = e.$super)) + return void cc.warn("Can not find assembler for render component : [" + cc.js.getClassName(t) + "]"); + i = e.__assembler__ + } + if (i.getConstructor && (i = i.getConstructor(t)), + !t._assembler || t._assembler.constructor !== i) { + var n = s.default.get(i); + n.init(t), + t._assembler = n + } + } + , + cc.Assembler = a, + e.exports = i.default + } + ), { + "./assembler-pool": 220, + "./webgl/vertex-format": 256 + }], + 222: [(function(t, e) { + "use strict"; + var i = function(t) { + var e; + try { + e = t.getContext("2d") + } catch (i) { + return void console.error(i) + } + this._canvas = t, + this._ctx = e, + this._caps = {}, + this._stats = { + drawcalls: 0 + }, + this._vx = this._vy = this._vw = this._vh = 0, + this._sx = this._sy = this._sw = this._sh = 0 + }; + i.prototype._restoreTexture = function() {} + , + i.prototype.setViewport = function(t, e, i, n) { + this._vx === t && this._vy === e && this._vw === i && this._vh === n || (this._vx = t, + this._vy = e, + this._vw = i, + this._vh = n) + } + , + i.prototype.setScissor = function(t, e, i, n) { + this._sx === t && this._sy === e && this._sw === i && this._sh === n || (this._sx = t, + this._sy = e, + this._sw = i, + this._sh = n) + } + , + i.prototype.clear = function(t) { + var e = this._ctx; + e.clearRect(this._vx, this._vy, this._vw, this._vh), + !t || 0 === t[0] && 0 === t[1] && 0 === t[2] || (e.fillStyle = "rgb(" + t[0] + "," + t[1] + "," + t[2] + ")", + e.globalAlpha = t[3], + e.fillRect(this._vx, this._vy, this._vw, this._vh)) + } + , + i.prototype.resetDrawCalls = function() { + this._stats.drawcalls = 0 + } + , + i.prototype.getDrawCalls = function() { + return this._stats.drawcalls + } + , + e.exports = i + } + ), {}], + 223: [(function(t, e) { + "use strict"; + var i = function(t, e) { + this._device = t, + this._width = 4, + this._height = 4, + this._image = null, + e && (void 0 !== e.width && (this._width = e.width), + void 0 !== e.height && (this._height = e.height), + this.updateImage(e)) + }; + i.prototype.update = function(t) { + this.updateImage(t) + } + , + i.prototype.updateImage = function(t) { + if (t.images && t.images[0]) { + var e = t.images[0]; + e && e !== this._image && (this._image = e) + } + } + , + i.prototype.destroy = function() { + this._image = null + } + , + e.exports = i + } + ), {}], + 224: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = a(t("../../renderer/gfx")) + , r = a(t("../../renderer/core/input-assembler")) + , s = a(t("../../renderer/core/pass")); + function a(t) { + return t && t.__esModule ? t : { + default: t + } + } + var o = cc.renderer = { + Texture2D: null, + InputAssembler: r.default, + Pass: s.default, + renderEngine: null, + canvas: null, + device: null, + scene: null, + drawCalls: 0, + _handle: null, + _cameraNode: null, + _camera: null, + _forward: null, + _flow: null, + initWebGL: function(e, i) { + t("./webgl/assemblers"); + var r = t("./webgl/model-batcher"); + this.Texture2D = n.default.Texture2D, + this.canvas = e, + this._flow = cc.RenderFlow; + var s = t("../../renderer/scene/scene") + , a = t("../../renderer/renderers/forward-renderer"); + this.device = new n.default.Device(e,i), + this.scene = new s; + var o, l = (o = this.device, + { + defaultTexture: new n.default.Texture2D(o,{ + images: [], + width: 128, + height: 128, + wrapS: n.default.WRAP_REPEAT, + wrapT: n.default.WRAP_REPEAT, + format: n.default.TEXTURE_FMT_RGB8, + genMipmaps: !1 + }), + programTemplates: [], + programChunks: {} + }); + this._forward = new a(this.device,l), + this._handle = new r(this.device,this.scene), + this._flow.init(this._handle, this._forward) + }, + initCanvas: function(e) { + var i = t("./canvas") + , n = t("./canvas/Texture2D") + , r = t("./canvas/Device"); + this.Device = r, + this.Texture2D = n, + this.canvas = e, + this.device = new r(e), + this._camera = { + a: 1, + b: 0, + c: 0, + d: 1, + tx: 0, + ty: 0 + }, + this._handle = new i.RenderComponentHandle(this.device,this._camera), + this._forward = new i.ForwardRenderer, + this._flow = cc.RenderFlow, + this._flow.init(this._handle, this._forward) + }, + updateCameraViewport: function() { + if (cc.director) { + var t = cc.director.getScene(); + t && t.setScale(1, 1, 1) + } + if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) { + var e = cc.view.getViewportRect(); + this.device.setViewport(e.x, e.y, e.width, e.height), + this._camera.a = cc.view.getScaleX(), + this._camera.d = cc.view.getScaleY(), + this._camera.tx = e.x, + this._camera.ty = e.y + e.height + } + }, + render: function(t, e) { + this.device.resetDrawCalls(), + t && (this._flow.render(t, e), + this.drawCalls = this.device.getDrawCalls()) + }, + clear: function() { + this._handle.reset(), + this._forward.clear() + } + }; + i.default = o, + e.exports = i.default + } + ), { + "../../renderer/core/input-assembler": 305, + "../../renderer/core/pass": 306, + "../../renderer/gfx": 315, + "../../renderer/renderers/forward-renderer": 334, + "../../renderer/scene/scene": 337, + "./canvas": void 0, + "./canvas/Device": 222, + "./canvas/Texture2D": 223, + "./webgl/assemblers": 236, + "./webgl/model-batcher": 252 + }], + 225: [(function(t, e) { + "use strict"; + var i, n, r = 0, s = 1 << r++, a = 1 << r++, o = 1 << r++, l = 1 << r++, h = o | l, c = 1 << r++, u = 1 << r++, _ = 1 << r++, f = u | _, d = 1 << r++, p = 1 << r++, m = 1 << r++, y = 1 << r++, v = 0; + function g() { + this._func = S, + this._next = null + } + var A = g.prototype; + A._doNothing = function() {} + , + A._localTransform = function(t) { + t._updateLocalMatrix(), + t._renderFlag &= ~o, + this._next._func(t) + } + , + A._worldTransform = function(t) { + i.worldMatDirty++; + var e = t._matrix + , n = t._trs + , r = e.m; + r[12] = n[0], + r[13] = n[1], + r[14] = n[2], + t._mulMat(t._worldMatrix, t._parent._worldMatrix, e), + t._renderFlag &= ~l, + this._next._func(t), + i.worldMatDirty-- + } + , + A._opacity = function(t) { + i.parentOpacityDirty++, + this._next._func(t), + t._renderFlag &= ~u, + i.parentOpacityDirty-- + } + , + A._color = function(t) { + var e = t._renderComponent; + e && e._updateColor(), + t._renderFlag &= ~_, + this._next._func(t) + } + , + A._updateRenderData = function(t) { + var e = t._renderComponent; + e._assembler.updateRenderData(e), + t._renderFlag &= ~c, + this._next._func(t) + } + , + A._render = function(t) { + var e = t._renderComponent; + e._checkBacth(i, t._cullingMask), + e._assembler.fillBuffers(e, i), + this._next._func(t) + } + , + A._children = function(t) { + for (var e = v, n = i, r = n.parentOpacity, s = n.parentOpacity *= t._opacity / 255, a = (n.worldMatDirty ? l : 0) | (n.parentOpacityDirty ? f : 0), o = t._children, h = 0, c = o.length; h < c; h++) { + var u = o[h]; + if (u._renderFlag |= a, + u._activeInHierarchy && 0 !== u._opacity) { + v = u._cullingMask = 0 === u.groupIndex ? e : 1 << u.groupIndex; + var _ = u._color._val; + u._color._fastSetA(u._opacity * s), + b[u._renderFlag]._func(u), + u._color._val = _ + } + } + n.parentOpacity = r, + this._next._func(t) + } + , + A._postRender = function(t) { + var e = t._renderComponent; + e._checkBacth(i, t._cullingMask), + e._assembler.postFillBuffers(e, i), + this._next._func(t) + } + ; + var x = new g; + x._func = x._doNothing, + x._next = x; + var b = {}; + function C(t, e) { + var i = new g; + switch (i._next = e || x, + t) { + case s: + case a: + i._func = i._doNothing; + break; + case o: + i._func = i._localTransform; + break; + case l: + i._func = i._worldTransform; + break; + case u: + i._func = i._opacity; + break; + case _: + i._func = i._color; + break; + case c: + i._func = i._updateRenderData; + break; + case d: + i._func = i._render; + break; + case p: + i._func = i._children; + break; + case m: + i._func = i._postRender + } + return i + } + function T(t) { + for (var e = null, i = y; i > 0; ) + i & t && (e = C(i, e)), + i >>= 1; + return e + } + function S(t) { + var e = t._renderFlag; + (b[e] = T(e))._func(t) + } + g.flows = b, + g.createFlow = C; + var w = []; + g.registerValidate = function(t) { + t._inValidateList || (w.push(t), + t._inValidateList = !0) + } + , + g.validateRenderers = function() { + for (var t = 0, e = w.length; t < e; t++) { + var i = w[t]; + i.isValid && (i.enabledInHierarchy ? i._validateRender() : i.disableRender(), + i._inValidateList = !1) + } + w.length = 0 + } + , + g.visitRootNode = function(t) { + g.validateRenderers(); + var e = v; + v = t._cullingMask, + t._renderFlag & l ? (i.worldMatDirty++, + t._calculWorldMatrix(), + t._renderFlag &= ~l, + b[t._renderFlag]._func(t), + i.worldMatDirty--) : b[t._renderFlag]._func(t), + v = e + } + , + g.render = function(t, e) { + i.reset(), + i.walking = !0, + g.visitRootNode(t), + i.terminate(), + i.walking = !1, + n.render(i._renderScene, e) + } + , + g.renderCamera = function(t, e) { + i.reset(), + i.walking = !0, + g.visitRootNode(e), + i.terminate(), + i.walking = !1, + n.renderCamera(t, i._renderScene) + } + , + g.init = function(t, e) { + i = t, + n = e, + b[0] = x; + for (var r = 1; r < y; r++) + b[r] = new g + } + , + g.getBachther = function() { + return i + } + , + g.FLAG_DONOTHING = s, + g.FLAG_BREAK_FLOW = a, + g.FLAG_LOCAL_TRANSFORM = o, + g.FLAG_WORLD_TRANSFORM = l, + g.FLAG_TRANSFORM = h, + g.FLAG_OPACITY = u, + g.FLAG_COLOR = _, + g.FLAG_OPACITY_COLOR = f, + g.FLAG_UPDATE_RENDER_DATA = c, + g.FLAG_RENDER = d, + g.FLAG_CHILDREN = p, + g.FLAG_POST_RENDER = m, + g.FLAG_FINAL = y, + e.exports = cc.RenderFlow = g + } + ), {}], + 226: [(function(t, e) { + "use strict"; + var i = t("../../../assets/CCRenderTexture") + , n = 2; + function r(t, e) { + var r = new i; + r.initWithSize(t, e), + r.update(), + this._texture = r, + this._x = n, + this._y = n, + this._nexty = n, + this._width = t, + this._height = e, + this._innerTextureInfos = {}, + this._innerSpriteFrames = [], + this._count = 0 + } + r.DEFAULT_HASH = (new i)._getHash(), + cc.js.mixin(r.prototype, { + insertSpriteFrame: function(t) { + var e = t._rect + , i = t._texture + , r = this._innerTextureInfos[i._id] + , s = e.x + , a = e.y; + if (r) + s += r.x, + a += r.y; + else { + var o = i.width + , l = i.height; + if (this._x + o + n > this._width && (this._x = n, + this._y = this._nexty), + this._y + l + n > this._nexty && (this._nexty = this._y + l + n), + this._nexty > this._height) + return null; + cc.dynamicAtlasManager.textureBleeding && ((o <= 8 || l <= 8) && (this._texture.drawTextureAt(i, this._x - 1, this._y - 1), + this._texture.drawTextureAt(i, this._x - 1, this._y + 1), + this._texture.drawTextureAt(i, this._x + 1, this._y - 1), + this._texture.drawTextureAt(i, this._x + 1, this._y + 1)), + this._texture.drawTextureAt(i, this._x - 1, this._y), + this._texture.drawTextureAt(i, this._x + 1, this._y), + this._texture.drawTextureAt(i, this._x, this._y - 1), + this._texture.drawTextureAt(i, this._x, this._y + 1)), + this._texture.drawTextureAt(i, this._x, this._y), + this._innerTextureInfos[i._id] = { + x: this._x, + y: this._y, + texture: i + }, + this._count++, + s += this._x, + a += this._y, + this._x += o + n, + this._dirty = !0 + } + var h = { + x: s, + y: a, + texture: this._texture + }; + return this._innerSpriteFrames.push(t), + h + }, + update: function() { + this._dirty && (this._texture.update(), + this._dirty = !1) + }, + deleteInnerTexture: function(t) { + t && this._innerTextureInfos[t._id] && (delete this._innerTextureInfos[t._id], + this._count--) + }, + isEmpty: function() { + return this._count <= 0 + }, + reset: function() { + this._x = n, + this._y = n, + this._nexty = n; + for (var t = this._innerSpriteFrames, e = 0, i = t.length; e < i; e++) { + var r = t[e]; + r.isValid && r._resetDynamicAtlasFrame() + } + this._innerSpriteFrames.length = 0, + this._innerTextureInfos = {} + }, + destroy: function() { + this.reset(), + this._texture.destroy() + } + }), + e.exports = r + } + ), { + "../../../assets/CCRenderTexture": 70 + }], + 227: [(function(t, e) { + "use strict"; + var i = t("./atlas") + , n = [] + , r = -1 + , s = 5 + , a = 2048 + , o = 512 + , l = !0; + function h() { + var t = n[++r]; + return t || (t = new i(a,a), + n.push(t)), + t + } + function c() { + _.reset() + } + var u = !1 + , _ = { + Atlas: i, + get enabled() { + return u + }, + set enabled(t) { + u !== t && (t ? (this.reset(), + cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, c)) : cc.director.off(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, c), + u = t) + }, + get maxAtlasCount() { + return s + }, + set maxAtlasCount(t) { + s = t + }, + get atlasCount() { + return n.length + }, + get textureBleeding() { + return l + }, + set textureBleeding(t) { + l = t + }, + get textureSize() { + return a + }, + set textureSize(t) { + a = t + }, + get maxFrameSize() { + return o + }, + set maxFrameSize(t) { + o = t + }, + insertSpriteFrame: function(t) { + if (!u || r === s || !t || t._original) + return null; + if (!t._texture.packable) + return null; + var e = n[r]; + e || (e = h()); + var i = e.insertSpriteFrame(t); + return i || r === s ? i : (e = h()).insertSpriteFrame(t) + }, + reset: function() { + for (var t = 0, e = n.length; t < e; t++) + n[t].destroy(); + n.length = 0, + r = -1 + }, + deleteAtlasSpriteFrame: function(t) { + if (t._original) { + var e = t._original._texture; + this.deleteAtlasTexture(e) + } + }, + deleteAtlasTexture: function(t) { + if (t) + for (var e = n.length - 1; e >= 0; e--) + n[e].deleteInnerTexture(t), + n[e].isEmpty() && (n[e].destroy(), + n.splice(e, 1), + r--) + }, + showDebug: !1, + update: function() { + if (this.enabled) + for (var t = 0; t <= r; t++) + n[t].update() + } + }; + e.exports = cc.dynamicAtlasManager = _ + } + ), { + "./atlas": 226 + }], + 228: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../../assembler-2d")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var a = t("../../../utils/text-utils") + , o = t("../../../platform/CCMacro") + , l = t("../../../components/CCLabel").Overflow + , h = t("../utils").shareLabelInfo + , c = function() { + this.char = "", + this.valid = !0, + this.x = 0, + this.y = 0, + this.line = 0, + this.hash = "" + } + , u = cc.rect() + , _ = null + , f = [] + , d = [] + , p = [] + , m = [] + , y = null + , v = 0 + , g = 0 + , A = 0 + , x = 0 + , b = 0 + , C = 1 + , T = null + , S = cc.size() + , w = "" + , E = 0 + , M = 0 + , D = 0 + , B = 0 + , I = 0 + , P = 0 + , R = 0 + , O = !1 + , L = 0 + , F = 0 + , V = 0 + , N = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var r = n.prototype; + return r.updateRenderData = function(t) { + t._vertsDirty && _ !== t && (_ = t, + this._reserveQuads(t, t.string.toString().length), + this._updateFontFamily(t), + this._updateProperties(t), + this._updateLabelInfo(t), + this._updateContent(), + this.updateWorldVerts(t), + _._actualFontSize = E, + _.node.setContentSize(S), + _._vertsDirty = !1, + _ = null, + this._resetProperties()) + } + , + r._updateFontScale = function() { + C = E / M + } + , + r._updateFontFamily = function(t) { + var e = t.font; + T = e.spriteFrame, + y = e._fntConfig, + h.fontAtlas = e._fontDefDictionary, + this.packToDynamicAtlas(t, T) + } + , + r._updateLabelInfo = function() { + h.hash = "", + h.margin = 0 + } + , + r._updateProperties = function(t) { + w = t.string.toString(), + E = t.fontSize, + M = y ? y.fontSize : t.fontSize, + D = t.horizontalAlign, + B = t.verticalAlign, + I = t.spacingX, + R = t.overflow, + P = t._lineHeight, + S.width = t.node.width, + S.height = t.node.height, + R === l.NONE ? (O = !1, + S.width += 2 * h.margin, + S.height += 2 * h.margin) : R === l.RESIZE_HEIGHT ? (O = !0, + S.height += 2 * h.margin) : O = t.enableWrapText, + h.lineHeight = P, + h.fontSize = E, + this._setupBMFontOverflowMetrics() + } + , + r._resetProperties = function() { + y = null, + T = null, + h.hash = "", + h.margin = 0 + } + , + r._updateContent = function() { + this._updateFontScale(), + this._computeHorizontalKerningForText(), + this._alignText() + } + , + r._computeHorizontalKerningForText = function() { + var t, e = w, i = e.length, n = f; + if (y && (t = y.kerningDict), + t && !cc.js.isEmptyObject(t)) + for (var r = -1, s = 0; s < i; ++s) { + var a = e.charCodeAt(s) + , o = t[r << 16 | 65535 & a] || 0; + n[s] = s < i - 1 ? o : 0, + r = a + } + else + n.length = 0 + } + , + r._multilineTextWrap = function(t) { + for (var e = w.length, i = 0, n = 0, r = 0, s = 0, o = 0, c = 0, u = 0, _ = null, d = cc.v2(0, 0), m = 0; m < e; ) { + var A = w.charAt(m); + if ("\n" !== A) { + for (var T = t(w, m, e), E = c, M = u, D = o, B = n, N = !1, k = 0; k < T; ++k) { + var G = m + k; + if ("\r" !== (A = w.charAt(G))) + if (_ = h.fontAtlas.getLetterDefinitionForChar(A, h)) { + var U = B + _.offsetX * C - h.margin; + if (O && V > 0 && n > 0 && U + _.w * C > V && !a.isUnicodeSpace(A)) { + p.push(o), + o = 0, + i++, + n = 0, + r -= P * this._getFontScale() + 0, + N = !0; + break + } + d.x = U, + d.y = r - _.offsetY * C + h.margin, + this._recordLetterInfo(d, A, G, i), + G + 1 < f.length && G < e - 1 && (B += f[G + 1]), + B += _.xAdvance * C + I - 2 * h.margin, + D = d.x + _.w * C - h.margin, + E < d.y && (E = d.y), + M > d.y - _.h * C && (M = d.y - _.h * C) + } else { + this._recordPlaceholderInfo(G, A); + var z = ""; + y && (z = y.atlasName), + console.log("Can't find letter definition in texture atlas " + z + " for letter:" + A) + } + else + this._recordPlaceholderInfo(G, A) + } + N || (n = B, + c < E && (c = E), + u > M && (u = M), + s < (o = D) && (s = o), + m += T) + } else + p.push(o), + o = 0, + i++, + n = 0, + r -= P * this._getFontScale() + 0, + this._recordPlaceholderInfo(m, A), + m++ + } + return p.push(o), + g = (v = i + 1) * P * this._getFontScale(), + v > 1 && (g += 0 * (v - 1)), + S.width = L, + S.height = F, + L <= 0 && (S.width = parseFloat(s.toFixed(2)) + 2 * h.margin), + F <= 0 && (S.height = parseFloat(g.toFixed(2)) + 2 * h.margin), + x = S.height, + b = 0, + R !== l.CLAMP && (c > 0 && (x = S.height + c), + u < -g && (b = g + u)), + !0 + } + , + r._getFirstCharLen = function() { + return 1 + } + , + r._getFontScale = function() { + return R === l.SHRINK ? C : 1 + } + , + r._getFirstWordLen = function(t, e, i) { + var n = t.charAt(e); + if (a.isUnicodeCJK(n) || "\n" === n || a.isUnicodeSpace(n)) + return 1; + var r = 1 + , s = h.fontAtlas.getLetterDefinitionForChar(n, h); + if (!s) + return r; + for (var o = s.xAdvance * C + I, l = e + 1; l < i && (n = t.charAt(l), + s = h.fontAtlas.getLetterDefinitionForChar(n, h)); ++l) { + if (o + s.offsetX * C + s.w * C > V && !a.isUnicodeSpace(n) && V > 0) + return r; + if (o += s.xAdvance * C + I, + "\n" === n || a.isUnicodeSpace(n) || a.isUnicodeCJK(n)) + break; + r++ + } + return r + } + , + r._multilineTextWrapByWord = function() { + return this._multilineTextWrap(this._getFirstWordLen) + } + , + r._multilineTextWrapByChar = function() { + return this._multilineTextWrap(this._getFirstCharLen) + } + , + r._recordPlaceholderInfo = function(t, e) { + if (t >= d.length) { + var i = new c; + d.push(i) + } + d[t].char = e, + d[t].hash = e.charCodeAt(0) + h.hash, + d[t].valid = !1 + } + , + r._recordLetterInfo = function(t, e, i, n) { + if (i >= d.length) { + var r = new c; + d.push(r) + } + var s = e.charCodeAt(0) + h.hash; + d[i].line = n, + d[i].char = e, + d[i].hash = s, + d[i].valid = h.fontAtlas.getLetter(s).valid, + d[i].x = t.x, + d[i].y = t.y + } + , + r._alignText = function() { + g = 0, + p.length = 0, + this._multilineTextWrapByWord(), + this._computeAlignmentOffset(), + R === l.SHRINK && E > 0 && this._isVerticalClamp() && this._shrinkLabelToContentSize(this._isVerticalClamp), + this._updateQuads() || R === l.SHRINK && this._shrinkLabelToContentSize(this._isHorizontalClamp) + } + , + r._scaleFontSizeDown = function(t) { + var e = !0; + t || (t = .1, + e = !1), + E = t, + e && this._updateContent() + } + , + r._shrinkLabelToContentSize = function(t) { + for (var e = 0, i = 0 | E, n = 0; e < i; ) { + var r = n = e + i + 1 >> 1; + if (r <= 0) + break; + C = r / M, + this._multilineTextWrapByWord(), + this._computeAlignmentOffset(), + t() ? i = n - 1 : e = n + } + var s = e; + s >= 0 && this._scaleFontSizeDown(s) + } + , + r._isVerticalClamp = function() { + return g > S.height + } + , + r._isHorizontalClamp = function() { + for (var t = !1, e = 0, i = w.length; e < i; ++e) { + var n = d[e]; + if (n.valid) { + var r = h.fontAtlas.getLetter(n.hash) + , s = n.x + r.w * C + , a = n.line; + if (L > 0) + if (O) { + if (p[a] > S.width && (s > S.width || s < 0)) { + t = !0; + break + } + } else if (s > S.width) { + t = !0; + break + } + } + } + return t + } + , + r._isHorizontalClamped = function(t, e) { + var i = p[e] + , n = t > S.width || t < 0; + return O ? i > S.width && n : n + } + , + r._updateQuads = function() { + var t = T ? T._texture : h.fontAtlas.getTexture() + , e = _.node; + this.verticesCount = this.indicesCount = 0, + this._renderData && (this._renderData.dataLength = 0); + for (var i = S, n = e._anchorPoint.x * i.width, r = e._anchorPoint.y * i.height, s = !0, a = 0, o = w.length; a < o; ++a) { + var c = d[a]; + if (c.valid) { + var f = h.fontAtlas.getLetter(c.hash); + u.height = f.h, + u.width = f.w, + u.x = f.u, + u.y = f.v; + var p = c.y + A; + if (F > 0) { + if (p > x) { + var y = p - x; + u.y += y, + u.height -= y, + p -= y + } + p - f.h * C < b && R === l.CLAMP && (u.height = p < b ? 0 : (p - b) / C) + } + var v = c.line + , g = c.x + f.w / 2 * C + m[v]; + if (L > 0 && this._isHorizontalClamped(g, v)) + if (R === l.CLAMP) + u.width = 0; + else if (R === l.SHRINK) { + if (S.width > f.w) { + s = !1; + break + } + u.width = 0 + } + if (u.height > 0 && u.width > 0) { + var E = this._determineRect(u) + , M = c.x + m[c.line]; + this.appendQuad(_, t, u, E, M - n, p - r, C) + } + } + } + return this._quadsUpdated(_), + s + } + , + r._determineRect = function(t) { + var e = T.isRotated() + , i = T._originalSize + , n = T._rect + , r = T._offset + , s = r.x + (i.width - n.width) / 2 + , a = r.y - (i.height - n.height) / 2; + if (e) { + var o = t.x; + t.x = n.x + n.height - t.y - t.height - a, + t.y = o + n.y - s, + t.y < 0 && (t.height = t.height + a) + } else + t.x += n.x - s, + t.y += n.y + a; + return e + } + , + r._computeAlignmentOffset = function() { + switch (m.length = 0, + D) { + case o.TextAlignment.LEFT: + for (var t = 0; t < v; ++t) + m.push(0); + break; + case o.TextAlignment.CENTER: + for (var e = 0, i = p.length; e < i; e++) + m.push((S.width - p[e]) / 2); + break; + case o.TextAlignment.RIGHT: + for (var n = 0, r = p.length; n < r; n++) + m.push(S.width - p[n]) + } + if (A = S.height, + B !== o.VerticalTextAlignment.TOP) { + var s = S.height - g + P * this._getFontScale() - M * C; + B === o.VerticalTextAlignment.BOTTOM ? A -= s : A -= s / 2 + } + } + , + r._setupBMFontOverflowMetrics = function() { + var t = S.width + , e = S.height; + R === l.RESIZE_HEIGHT && (e = 0), + R === l.NONE && (t = 0, + e = 0), + L = t, + F = e, + V = t + } + , + r.updateWorldVerts = function() {} + , + r.appendQuad = function() {} + , + r._quadsUpdated = function() {} + , + r._reserveQuads = function() {} + , + n + } + )(r.default); + i.default = N, + e.exports = i.default + } + ), { + "../../../components/CCLabel": 107, + "../../../platform/CCMacro": 198, + "../../../utils/text-utils": 274, + "../../assembler-2d": 219, + "../utils": 232 + }], + 229: [(function(t, e) { + "use strict"; + function i() { + this._rect = null, + this.uv = [], + this._texture = null, + this._original = null + } + i.prototype = { + constructor: i, + getRect: function() { + return cc.rect(this._rect) + }, + setRect: function(t) { + this._rect = t, + this._texture && this._calculateUV() + }, + _setDynamicAtlasFrame: function(t) { + t && (this._original = { + _texture: this._texture, + _x: this._rect.x, + _y: this._rect.y + }, + this._texture = t.texture, + this._rect.x = t.x, + this._rect.y = t.y, + this._calculateUV()) + }, + _resetDynamicAtlasFrame: function() { + this._original && (this._rect.x = this._original._x, + this._rect.y = this._original._y, + this._texture = this._original._texture, + this._original = null, + this._calculateUV()) + }, + _refreshTexture: function(t) { + this._texture = t, + this._rect = cc.rect(0, 0, t.width, t.height), + this._calculateUV() + }, + _calculateUV: function() { + var t = this._rect + , e = this._texture + , i = this.uv + , n = e.width + , r = e.height + , s = 0 === n ? 0 : t.x / n + , a = 0 === n ? 0 : (t.x + t.width) / n + , o = 0 === r ? 0 : (t.y + t.height) / r + , l = 0 === r ? 0 : t.y / r; + i[0] = s, + i[1] = o, + i[2] = a, + i[3] = o, + i[4] = s, + i[5] = l, + i[6] = a, + i[7] = l + } + }, + e.exports = i + } + ), {}], + 230: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../../webgl/assemblers/label/2d/bmfont")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var a = t("../../../components/CCLabel") + , o = t("../../../components/CCLabelOutline") + , l = t("../../../utils/text-utils") + , h = t("../../../components/CCComponent") + , c = t("../../../assets/CCRenderTexture") + , u = cc.js.isChildClassOf(o, h) + , _ = t("../utils").getFontFamily + , f = t("../utils").shareLabelInfo + , d = cc.BitmapFont.FontLetterDefinition + , p = cc.BitmapFont.FontAtlas + , m = cc.Color.WHITE + , y = 0 + , v = (1 / 255).toFixed(3); + function g(t, e) { + this._texture = null, + this._labelInfo = e, + this._char = t, + this._hash = null, + this._data = null, + this._canvas = null, + this._context = null, + this._width = 0, + this._height = 0, + this._offsetY = 0, + this._hash = t.charCodeAt(0) + e.hash + } + function A(t, e) { + var i = new c; + i.initWithSize(t, e), + i.update(), + this._fontDefDictionary = new p(i), + this._x = y, + this._y = y, + this._nexty = y, + this._width = t, + this._height = e, + cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, this.beforeSceneLoad, this) + } + g.prototype = { + constructor: g, + updateRenderData: function() { + this._updateProperties(), + this._updateTexture() + }, + _updateProperties: function() { + this._texture = new cc.Texture2D, + this._data = a._canvasPool.get(), + this._canvas = this._data.canvas, + this._context = this._data.context, + this._context.font = this._labelInfo.fontDesc; + var t = l.safeMeasureText(this._context, this._char, this._labelInfo.fontDesc) + , e = 2 * this._labelInfo.margin + 2; + this._width = parseFloat(t.toFixed(2)) + e, + this._height = (1 + l.BASELINE_RATIO) * this._labelInfo.fontSize + e, + this._offsetY = -this._labelInfo.fontSize * l.BASELINE_RATIO / 2, + this._canvas.width !== this._width && (this._canvas.width = this._width), + this._canvas.height !== this._height && (this._canvas.height = this._height), + this._texture.initWithElement(this._canvas) + }, + _updateTexture: function() { + var t = this._context + , e = this._labelInfo + , i = this._canvas.width + , n = this._canvas.height + , r = this._labelInfo.fontSize + , s = i / 2 + , a = n / 2 + r * l.MIDDLE_RATIO + r * l.BASELINE_OFFSET + , o = e.color; + if (t.lineJoin = "round", + t.textAlign = "center", + t.clearRect(0, 0, i, n), + t.fillStyle = "rgba(" + o.r + ", " + o.g + ", " + o.b + ", " + v + ")", + t.fillRect(0, 0, i, n), + t.font = e.fontDesc, + t.fillStyle = "rgba(" + o.r + ", " + o.g + ", " + o.b + ", 1)", + e.isOutlined && e.margin > 0) { + var h = e.out || m; + t.strokeStyle = "rgba(" + h.r + ", " + h.g + ", " + h.b + ", " + h.a / 255 + ")", + t.lineWidth = 2 * e.margin, + t.strokeText(this._char, s, a) + } + t.fillText(this._char, s, a), + this._texture.handleLoadedTexture() + }, + destroy: function() { + this._texture.destroy(), + this._texture = null, + a._canvasPool.put(this._data) + } + }, + cc.js.mixin(A.prototype, { + insertLetterTexture: function(t) { + var e = t._texture + , i = e.width + , n = e.height; + if (this._x + i + y > this._width && (this._x = y, + this._y = this._nexty), + this._y + n > this._nexty && (this._nexty = this._y + n + y), + this._nexty > this._height) + return null; + this._fontDefDictionary._texture.drawTextureAt(e, this._x, this._y), + this._dirty = !0; + var r = new d; + return r.u = this._x + 1, + r.v = this._y + 1, + r.texture = this._fontDefDictionary._texture, + r.valid = !0, + r.w = t._width - 2, + r.h = t._height - 2, + r.xAdvance = r.w, + r.offsetY = t._offsetY, + this._x += i + y, + this._fontDefDictionary.addLetterDefinitions(t._hash, r), + r + }, + update: function() { + this._dirty && (this._fontDefDictionary._texture.update(), + this._dirty = !1) + }, + reset: function() { + this._x = y, + this._y = y, + this._nexty = y; + for (var t = this._fontDefDictionary._letterDefinitions, e = 0, i = t.length; e < i; e++) { + var n = t[e]; + n.isValid && n.destroy() + } + this._fontDefDictionary.clear() + }, + destroy: function() { + this.reset(), + this._fontDefDictionary._texture.destroy(), + this._fontDefDictionary._texture = null + }, + beforeSceneLoad: function() { + this.clearAllCache() + }, + clearAllCache: function() { + this.destroy(); + var t = new c; + t.initWithSize(this._width, this._height), + t.update(), + this._fontDefDictionary._texture = t + }, + getLetter: function(t) { + return this._fontDefDictionary._letterDefinitions[t] + }, + getTexture: function() { + return this._fontDefDictionary.getTexture() + }, + getLetterDefinitionForChar: function(t, e) { + var i = t.charCodeAt(0) + e.hash + , n = this._fontDefDictionary._letterDefinitions[i]; + if (!n) { + var r = new g(t,e); + r.updateRenderData(), + n = this.insertLetterTexture(r), + r.destroy() + } + return n + } + }); + var x = null + , b = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var r = n.prototype; + return r._getAssemblerData = function() { + return x || (x = new A(2048,2048), + cc.Label._shareAtlas = x), + x.getTexture() + } + , + r._updateFontFamily = function(t) { + f.fontAtlas = x, + f.fontFamily = _(t); + var e = u && t.getComponent(o); + e && e.enabled ? (f.isOutlined = !0, + f.margin = e.width, + f.out = e.color.clone(), + f.out.a = e.color.a * t.node.color.a / 255) : (f.isOutlined = !1, + f.margin = 0) + } + , + r._updateLabelInfo = function(t) { + var e, i, n; + f.fontDesc = this._getFontDesc(), + f.color = t.node.color, + f.hash = (i = (e = f).color.toHEX(), + n = "", + e.isOutlined && e.margin > 0 && (n = n + e.margin + e.out.toHEX()), + "" + e.fontSize + e.fontFamily + i + n) + } + , + r._getFontDesc = function() { + return f.fontSize.toString() + "px " + f.fontFamily + } + , + r._computeHorizontalKerningForText = function() {} + , + r._determineRect = function() { + return !1 + } + , + n + } + )(r.default); + i.default = b, + e.exports = i.default + } + ), { + "../../../assets/CCRenderTexture": 70, + "../../../components/CCComponent": 105, + "../../../components/CCLabel": 107, + "../../../components/CCLabelOutline": 108, + "../../../utils/text-utils": 274, + "../../webgl/assemblers/label/2d/bmfont": 237, + "../utils": 232 + }], + 231: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../../assembler-2d")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var a, o = t("../../../utils/text-utils"), l = t("../../../platform/CCMacro"), h = t("../../../components/CCLabel"), c = t("../../../components/CCLabelOutline"), u = t("../../../components/CCLabelShadow"), _ = h.Overflow, f = t("../utils").deleteFromDynamicAtlas, d = t("../utils").getFontFamily, p = (1 / 255).toFixed(3), m = null, y = null, v = null, g = "", A = "", x = 0, b = 0, C = [], T = cc.Size.ZERO, S = 0, w = 0, E = 0, M = null, D = "", B = _.NONE, I = !1, P = !1, R = null, O = cc.Color.WHITE, L = null, F = cc.Color.BLACK, V = cc.rect(), N = cc.Size.ZERO, k = cc.Size.ZERO, G = !1, U = !1, z = !1, H = 0, W = cc.Vec2.ZERO, j = 0, X = ["left", "center", "right"], Y = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var r = n.prototype; + return r._getAssemblerData = function() { + return (a = h._canvasPool.get()).canvas.width = a.canvas.height = 1, + a + } + , + r._resetAssemblerData = function(t) { + t && h._canvasPool.put(t) + } + , + r.updateRenderData = function(e) { + t.prototype.updateRenderData.call(this, e), + e._vertsDirty && (this._updateProperties(e), + this._calculateLabelFont(), + this._updateLabelDimensions(), + this._updateTexture(e), + this._calDynamicAtlas(e), + e._actualFontSize = x, + e.node.setContentSize(k), + this.updateVerts(e), + e._vertsDirty = !1, + m = null, + y = null, + v = null) + } + , + r.updateVerts = function() {} + , + r._updatePaddingRect = function() { + var t = 0 + , e = 0 + , i = 0 + , n = 0 + , r = 0; + if (N.width = N.height = 0, + R && (t = e = i = n = r = R.width, + N.width = N.height = 2 * r), + L) { + var s = L.blur + r; + i = Math.max(i, -L._offset.x + s), + n = Math.max(n, L._offset.x + s), + t = Math.max(t, L._offset.y + s), + e = Math.max(e, -L._offset.y + s) + } + if (U) { + var a = b * Math.tan(.20943951); + n += a, + N.width += a + } + V.x = i, + V.y = t, + V.width = i + n, + V.height = t + e + } + , + r._updateProperties = function(t) { + var e = t._assemblerData; + m = e.context, + y = e.canvas, + v = t._frame._original ? t._frame._original._texture : t._frame._texture, + A = t.string.toString(), + x = t._fontSize, + b = x, + H = t.underlineHeight || b / 8, + B = t.overflow, + T.width = t.node.width, + T.height = t.node.height, + k = t.node.getContentSize(), + S = t._lineHeight, + w = t.horizontalAlign, + E = t.verticalAlign, + M = t.node.color, + G = t.enableBold, + U = t.enableItalic, + z = t.enableUnderline, + D = d(t), + P = t.srcBlendFactor === cc.macro.BlendFactor.ONE, + I = B !== _.NONE && (B === _.RESIZE_HEIGHT || t.enableWrapText), + (R = (R = c && t.getComponent(c)) && R.enabled && R.width > 0 ? R : null) && O.set(R.color), + (L = (L = u && t.getComponent(u)) && L.enabled ? L : null) && (F.set(L.color), + F.a = F.a * t.node.color.a / 255), + this._updatePaddingRect() + } + , + r._calculateFillTextStartPosition = function() { + var t = 0; + w === l.TextAlignment.RIGHT ? t = T.width - V.width : w === l.TextAlignment.CENTER && (t = (T.width - V.width) / 2); + var e = this._getLineHeight() * (C.length - 1) + , i = x * (1 - o.BASELINE_RATIO / 2); + if (E !== l.VerticalTextAlignment.TOP) { + var n = e + V.height + x - T.height; + E === l.VerticalTextAlignment.BOTTOM ? i -= n += o.BASELINE_RATIO / 2 * x : i -= n / 2 + } + return i += o.BASELINE_OFFSET * x, + cc.v2(t + V.x, i + V.y) + } + , + r._setupOutline = function() { + m.strokeStyle = "rgba(" + O.r + ", " + O.g + ", " + O.b + ", " + O.a / 255 + ")", + m.lineWidth = 2 * R.width + } + , + r._setupShadow = function() { + m.shadowColor = "rgba(" + F.r + ", " + F.g + ", " + F.b + ", " + F.a / 255 + ")", + m.shadowBlur = L.blur, + m.shadowOffsetX = L.offset.x, + m.shadowOffsetY = -L.offset.y + } + , + r._drawTextEffect = function(t, e) { + if (L || R || z) { + var i = C.length > 1 && L + , n = this._measureText(m, g) + , r = 0 + , s = 0; + L && this._setupShadow(), + R && this._setupOutline(); + for (var a = 0; a < C.length; ++a) + r = t.x, + s = t.y + a * e, + i && (R && m.strokeText(C[a], r, s), + m.fillText(C[a], r, s)), + z && (j = n(C[a]), + w === l.TextAlignment.RIGHT ? W.x = t.x - j : w === l.TextAlignment.CENTER ? W.x = t.x - j / 2 : W.x = t.x, + W.y = s + b / 8, + m.fillRect(W.x, W.y, j, H)); + i && (m.shadowColor = "transparent") + } + } + , + r._updateTexture = function() { + if (m.clearRect(0, 0, y.width, y.height), + m.lineJoin = "round", + P) + m.fillStyle = "rgba(" + M.r + ", " + M.g + ", " + M.b + ", " + M.a / 255 + ")"; + else { + var t = R ? O : M; + m.fillStyle = "rgba(" + t.r + ", " + t.g + ", " + t.b + ", " + p + ")", + m.fillRect(0, 0, y.width, y.height), + m.fillStyle = "rgba(" + M.r + ", " + M.g + ", " + M.b + ", 1)" + } + var e = this._calculateFillTextStartPosition() + , i = this._getLineHeight() + , n = e.x + , r = 0; + this._drawTextEffect(e, i); + for (var s = 0; s < C.length; ++s) + r = e.y + s * i, + R && m.strokeText(C[s], n, r), + m.fillText(C[s], n, r); + L && (m.shadowColor = "transparent"), + v.handleLoadedTexture() + } + , + r._calDynamicAtlas = function(t) { + if (t.cacheMode === h.CacheMode.BITMAP) { + var e = t._frame; + f(t, e), + e._original || e.setRect(cc.rect(0, 0, y.width, y.height)), + this.packToDynamicAtlas(t, e) + } + } + , + r._updateLabelDimensions = function() { + T.width = Math.min(T.width, 2048), + T.height = Math.min(T.height, 2048); + var t = !1; + y.width !== T.width && (y.width = T.width, + t = !0), + y.height !== T.height && (y.height = T.height, + t = !0), + t && (m.font = g), + m.textAlign = X[w] + } + , + r._getFontDesc = function() { + var t = x.toString() + "px "; + return t += D, + G && (t = "bold " + t), + U && (t = "italic " + t), + t + } + , + r._getLineHeight = function() { + return 0 | (0 === S ? x : S * x / b) + } + , + r._calculateParagraphLength = function(t, e) { + for (var i = [], n = 0; n < t.length; ++n) { + var r = o.safeMeasureText(e, t[n], g); + i.push(r) + } + return i + } + , + r._measureText = function(t, e) { + return function(i) { + return o.safeMeasureText(t, i, e) + } + } + , + r._calculateShrinkFont = function(t) { + var e = this._calculateParagraphLength(t, m) + , i = 0 + , n = 0 + , r = 0; + if (I) { + var s = k.width + , a = k.height; + if (s < 0 || a < 0) + return; + n = a + 1; + for (var l = 0, h = 0 | x + 1, c = 0; l < h; ) { + if ((c = l + h + 1 >> 1) <= 0) { + cc.logID(4003); + break + } + x = c, + g = this._getFontDesc(), + m.font = g; + var u = this._getLineHeight(); + for (n = 0, + i = 0; i < t.length; ++i) { + var _ = o.safeMeasureText(m, t[i], g); + n += o.fragmentText(t[i], _, s, this._measureText(m, g)).length * u + } + n > a ? h = c - 1 : l = c + } + 0 === l ? cc.logID(4003) : (x = l, + g = this._getFontDesc(), + m.font = g) + } else { + for (n = t.length * this._getLineHeight(), + i = 0; i < t.length; ++i) + r < e[i] && (r = e[i]); + var f = (T.width - V.width) / r + , d = T.height / n; + x = b * Math.min(1, f, d) | 0, + g = this._getFontDesc(), + m.font = g + } + } + , + r._calculateWrapText = function(t) { + if (I) { + C = []; + for (var e = k.width, i = 0; i < t.length; ++i) { + var n = o.safeMeasureText(m, t[i], g) + , r = o.fragmentText(t[i], n, e, this._measureText(m, g)); + C = C.concat(r) + } + } + } + , + r._calculateLabelFont = function() { + var t = A.split("\n"); + switch (C = t, + g = this._getFontDesc(), + m.font = g, + B) { + case _.NONE: + for (var e = 0, i = 0, n = 0; n < t.length; ++n) { + var r = o.safeMeasureText(m, t[n], g); + e = e > r ? e : r + } + i = (C.length + o.BASELINE_RATIO) * this._getLineHeight(); + var s = parseFloat(e.toFixed(2)) + , a = parseFloat(i.toFixed(2)); + T.width = s + V.width, + T.height = a + V.height, + k.width = s + N.width, + k.height = a + N.height; + break; + case _.SHRINK: + this._calculateShrinkFont(t), + this._calculateWrapText(t); + break; + case _.CLAMP: + this._calculateWrapText(t); + break; + case _.RESIZE_HEIGHT: + this._calculateWrapText(t); + var l = (C.length + o.BASELINE_RATIO) * this._getLineHeight(); + T.height = l + V.height, + k.height = l + N.height + } + } + , + n + } + )(r.default); + i.default = Y, + e.exports = i.default + } + ), { + "../../../components/CCLabel": 107, + "../../../components/CCLabelOutline": 108, + "../../../components/CCLabelShadow": 109, + "../../../platform/CCMacro": 198, + "../../../utils/text-utils": 274, + "../../assembler-2d": 219, + "../utils": 232 + }], + 232: [(function(t, e) { + "use strict"; + var i = t("./dynamic-atlas/manager") + , n = cc.Color.WHITE + , r = { + fontAtlas: null, + fontSize: 0, + lineHeight: 0, + hAlign: 0, + vAlign: 0, + hash: "", + fontFamily: "", + fontDesc: "Arial", + color: n, + isOutlined: !1, + out: n, + margin: 0 + }; + e.exports = { + deleteFromDynamicAtlas: function(t, e) { + e && e._original && i && (i.deleteAtlasSpriteFrame(e), + e._resetDynamicAtlasFrame()) + }, + getFontFamily: function(t) { + return t.useSystemFont ? t.fontFamily || "Arial" : t.font ? t.font._nativeAsset ? t.font._nativeAsset : (cc.assetManager.postLoadNative(t.font, (function() { + t.isValid && t.setVertsDirty() + } + )), + "Arial") : "Arial" + }, + shareLabelInfo: r + } + } + ), { + "./dynamic-atlas/manager": 227 + }], + 233: [(function(t, e) { + "use strict"; + function i(t, e, i) { + i = i || 2; + var r, a, o, l, h, u, _, f = e && e.length, d = f ? e[0] * i : t.length, p = n(t, 0, d, i, !0), m = []; + if (!p) + return m; + if (f && (p = c(t, e, p, i)), + t.length > 80 * i) { + r = o = t[0], + a = l = t[1]; + for (var y = i; y < d; y += i) + (h = t[y]) < r && (r = h), + (u = t[y + 1]) < a && (a = u), + h > o && (o = h), + u > l && (l = u); + _ = Math.max(o - r, l - a) + } + return s(p, m, i, r, a, _), + m + } + function n(t, e, i, n, r) { + var s, a; + if (r === B(t, e, i, n) > 0) + for (s = e; s < i; s += n) + a = E(s, t[s], t[s + 1], a); + else + for (s = i - n; s >= e; s -= n) + a = E(s, t[s], t[s + 1], a); + return a && x(a, a.next) && (M(a), + a = a.next), + a + } + function r(t, e) { + if (!t) + return t; + e || (e = t); + var i, n = t; + do { + if (i = !1, + n.steiner || !x(n, n.next) && 0 !== A(n.prev, n, n.next)) + n = n.next; + else { + if (M(n), + (n = e = n.prev) === n.next) + return null; + i = !0 + } + } while (i || n !== e);return e + } + function s(t, e, i, n, c, u, _) { + if (t) { + !_ && u && d(t, n, c, u); + for (var f, p, m = t; t.prev !== t.next; ) + if (f = t.prev, + p = t.next, + u ? o(t, n, c, u) : a(t)) + e.push(f.i / i), + e.push(t.i / i), + e.push(p.i / i), + M(t), + t = p.next, + m = p.next; + else if ((t = p) === m) { + _ ? 1 === _ ? s(t = l(t, e, i), e, i, n, c, u, 2) : 2 === _ && h(t, e, i, n, c, u) : s(r(t), e, i, n, c, u, 1); + break + } + } + } + function a(t) { + var e = t.prev + , i = t + , n = t.next; + if (A(e, i, n) >= 0) + return !1; + for (var r = t.next.next; r !== t.prev; ) { + if (v(e.x, e.y, i.x, i.y, n.x, n.y, r.x, r.y) && A(r.prev, r, r.next) >= 0) + return !1; + r = r.next + } + return !0 + } + function o(t, e, i, n) { + var r = t.prev + , s = t + , a = t.next; + if (A(r, s, a) >= 0) + return !1; + for (var o = r.x < s.x ? r.x < a.x ? r.x : a.x : s.x < a.x ? s.x : a.x, l = r.y < s.y ? r.y < a.y ? r.y : a.y : s.y < a.y ? s.y : a.y, h = r.x > s.x ? r.x > a.x ? r.x : a.x : s.x > a.x ? s.x : a.x, c = r.y > s.y ? r.y > a.y ? r.y : a.y : s.y > a.y ? s.y : a.y, u = m(o, l, e, i, n), _ = m(h, c, e, i, n), f = t.nextZ; f && f.z <= _; ) { + if (f !== t.prev && f !== t.next && v(r.x, r.y, s.x, s.y, a.x, a.y, f.x, f.y) && A(f.prev, f, f.next) >= 0) + return !1; + f = f.nextZ + } + for (f = t.prevZ; f && f.z >= u; ) { + if (f !== t.prev && f !== t.next && v(r.x, r.y, s.x, s.y, a.x, a.y, f.x, f.y) && A(f.prev, f, f.next) >= 0) + return !1; + f = f.prevZ + } + return !0 + } + function l(t, e, i) { + var n = t; + do { + var r = n.prev + , s = n.next.next; + !x(r, s) && b(r, n, n.next, s) && T(r, s) && T(s, r) && (e.push(r.i / i), + e.push(n.i / i), + e.push(s.i / i), + M(n), + M(n.next), + n = t = s), + n = n.next + } while (n !== t);return n + } + function h(t, e, i, n, a, o) { + var l = t; + do { + for (var h = l.next.next; h !== l.prev; ) { + if (l.i !== h.i && g(l, h)) { + var c = w(l, h); + return l = r(l, l.next), + c = r(c, c.next), + s(l, e, i, n, a, o), + void s(c, e, i, n, a, o) + } + h = h.next + } + l = l.next + } while (l !== t) + } + function c(t, e, i, s) { + var a, o, l, h = []; + for (a = 0, + o = e.length; a < o; a++) + (l = n(t, e[a] * s, a < o - 1 ? e[a + 1] * s : t.length, s, !1)) === l.next && (l.steiner = !0), + h.push(y(l)); + for (h.sort(u), + a = 0; a < h.length; a++) + _(h[a], i), + i = r(i, i.next); + return i + } + function u(t, e) { + return t.x - e.x + } + function _(t, e) { + if (e = f(t, e)) { + var i = w(e, t); + r(i, i.next) + } + } + function f(t, e) { + var i, n = e, r = t.x, s = t.y, a = -1 / 0; + do { + if (s <= n.y && s >= n.next.y) { + var o = n.x + (s - n.y) * (n.next.x - n.x) / (n.next.y - n.y); + if (o <= r && o > a) { + if (a = o, + o === r) { + if (s === n.y) + return n; + if (s === n.next.y) + return n.next + } + i = n.x < n.next.x ? n : n.next + } + } + n = n.next + } while (n !== e);if (!i) + return null; + if (r === a) + return i.prev; + var l, h = i, c = i.x, u = i.y, _ = 1 / 0; + for (n = i.next; n !== h; ) + r >= n.x && n.x >= c && v(s < u ? r : a, s, c, u, s < u ? a : r, s, n.x, n.y) && ((l = Math.abs(s - n.y) / (r - n.x)) < _ || l === _ && n.x > i.x) && T(n, t) && (i = n, + _ = l), + n = n.next; + return i + } + function d(t, e, i, n) { + var r = t; + do { + null === r.z && (r.z = m(r.x, r.y, e, i, n)), + r.prevZ = r.prev, + r.nextZ = r.next, + r = r.next + } while (r !== t);r.prevZ.nextZ = null, + r.prevZ = null, + p(r) + } + function p(t) { + var e, i, n, r, s, a, o, l, h = 1; + do { + for (i = t, + t = null, + s = null, + a = 0; i; ) { + for (a++, + n = i, + o = 0, + e = 0; e < h && (o++, + n = n.nextZ); e++) + ; + for (l = h; o > 0 || l > 0 && n; ) + 0 === o ? (r = n, + n = n.nextZ, + l--) : 0 !== l && n ? i.z <= n.z ? (r = i, + i = i.nextZ, + o--) : (r = n, + n = n.nextZ, + l--) : (r = i, + i = i.nextZ, + o--), + s ? s.nextZ = r : t = r, + r.prevZ = s, + s = r; + i = n + } + s.nextZ = null, + h *= 2 + } while (a > 1);return t + } + function m(t, e, i, n, r) { + return (t = 1431655765 & ((t = 858993459 & ((t = 252645135 & ((t = 16711935 & ((t = 32767 * (t - i) / r) | t << 8)) | t << 4)) | t << 2)) | t << 1)) | (e = 1431655765 & ((e = 858993459 & ((e = 252645135 & ((e = 16711935 & ((e = 32767 * (e - n) / r) | e << 8)) | e << 4)) | e << 2)) | e << 1)) << 1 + } + function y(t) { + var e = t + , i = t; + do { + e.x < i.x && (i = e), + e = e.next + } while (e !== t);return i + } + function v(t, e, i, n, r, s, a, o) { + return (r - a) * (e - o) - (t - a) * (s - o) >= 0 && (t - a) * (n - o) - (i - a) * (e - o) >= 0 && (i - a) * (s - o) - (r - a) * (n - o) >= 0 + } + function g(t, e) { + return t.next.i !== e.i && t.prev.i !== e.i && !C(t, e) && T(t, e) && T(e, t) && S(t, e) + } + function A(t, e, i) { + return (e.y - t.y) * (i.x - e.x) - (e.x - t.x) * (i.y - e.y) + } + function x(t, e) { + return t.x === e.x && t.y === e.y + } + function b(t, e, i, n) { + return !!(x(t, e) && x(i, n) || x(t, n) && x(i, e)) || A(t, e, i) > 0 != A(t, e, n) > 0 && A(i, n, t) > 0 != A(i, n, e) > 0 + } + function C(t, e) { + var i = t; + do { + if (i.i !== t.i && i.next.i !== t.i && i.i !== e.i && i.next.i !== e.i && b(i, i.next, t, e)) + return !0; + i = i.next + } while (i !== t);return !1 + } + function T(t, e) { + return A(t.prev, t, t.next) < 0 ? A(t, e, t.next) >= 0 && A(t, t.prev, e) >= 0 : A(t, e, t.prev) < 0 || A(t, t.next, e) < 0 + } + function S(t, e) { + var i = t + , n = !1 + , r = (t.x + e.x) / 2 + , s = (t.y + e.y) / 2; + do { + i.y > s != i.next.y > s && r < (i.next.x - i.x) * (s - i.y) / (i.next.y - i.y) + i.x && (n = !n), + i = i.next + } while (i !== t);return n + } + function w(t, e) { + var i = new D(t.i,t.x,t.y) + , n = new D(e.i,e.x,e.y) + , r = t.next + , s = e.prev; + return t.next = e, + e.prev = t, + i.next = r, + r.prev = i, + n.next = i, + i.prev = n, + s.next = n, + n.prev = s, + n + } + function E(t, e, i, n) { + var r = new D(t,e,i); + return n ? (r.next = n.next, + r.prev = n, + n.next.prev = r, + n.next = r) : (r.prev = r, + r.next = r), + r + } + function M(t) { + t.next.prev = t.prev, + t.prev.next = t.next, + t.prevZ && (t.prevZ.nextZ = t.nextZ), + t.nextZ && (t.nextZ.prevZ = t.prevZ) + } + function D(t, e, i) { + this.i = t, + this.x = e, + this.y = i, + this.prev = null, + this.next = null, + this.z = null, + this.prevZ = null, + this.nextZ = null, + this.steiner = !1 + } + function B(t, e, i, n) { + for (var r = 0, s = e, a = i - n; s < i; s += n) + r += (t[a] - t[s]) * (t[s + 1] + t[a + 1]), + a = s; + return r + } + cc.Graphics.earcut = e.exports = i, + i.deviation = function(t, e, i, n) { + var r = e && e.length + , s = r ? e[0] * i : t.length + , a = Math.abs(B(t, 0, s, i)); + if (r) + for (var o = 0, l = e.length; o < l; o++) { + var h = e[o] * i + , c = o < l - 1 ? e[o + 1] * i : t.length; + a -= Math.abs(B(t, h, c, i)) + } + var u = 0; + for (o = 0; o < n.length; o += 3) { + var _ = n[o] * i + , f = n[o + 1] * i + , d = n[o + 2] * i; + u += Math.abs((t[_] - t[d]) * (t[f + 1] - t[_ + 1]) - (t[_] - t[f]) * (t[d + 1] - t[_ + 1])) + } + return 0 === a && 0 === u ? 0 : Math.abs((u - a) / a) + } + , + i.flatten = function(t) { + for (var e = t[0][0].length, i = { + vertices: [], + holes: [], + dimensions: e + }, n = 0, r = 0; r < t.length; r++) { + for (var s = 0; s < t[r].length; s++) + for (var a = 0; a < e; a++) + i.vertices.push(t[r][s][a]); + r > 0 && (n += t[r - 1].length, + i.holes.push(n)) + } + return i + } + } + ), {}], + 234: [(function(t, e) { + "use strict"; + var i = t("../../../../graphics/helper") + , n = t("../../../../graphics/types").PointFlags + , r = cc.Graphics.Point = cc.Class({ + name: "cc.GraphicsPoint", + extends: cc.Vec2, + ctor: function() { + this.reset() + }, + reset: function() { + this.dx = 0, + this.dy = 0, + this.dmx = 0, + this.dmy = 0, + this.flags = 0, + this.len = 0 + } + }); + function s() { + this.reset() + } + function a() { + this._tessTol = .25, + this._distTol = .01, + this._updatePathOffset = !1, + this._paths = null, + this._pathLength = 0, + this._pathOffset = 0, + this._points = null, + this._pointsOffset = 0, + this._commandx = 0, + this._commandy = 0, + this._paths = [], + this._points = [] + } + cc.js.mixin(s.prototype, { + reset: function() { + this.closed = !1, + this.nbevel = 0, + this.complex = !0, + this.points ? this.points.length = 0 : this.points = [] + } + }), + cc.js.mixin(a.prototype, { + moveTo: function(t, e) { + this._updatePathOffset && (this._pathOffset = this._pathLength, + this._updatePathOffset = !1), + this._addPath(), + this._addPoint(t, e, n.PT_CORNER), + this._commandx = t, + this._commandy = e + }, + lineTo: function(t, e) { + this._addPoint(t, e, n.PT_CORNER), + this._commandx = t, + this._commandy = e + }, + bezierCurveTo: function(t, e, r, s, a, o) { + var l = this._curPath + , h = l.points[l.points.length - 1]; + h.x !== t || h.y !== e || r !== a || s !== o ? (i.tesselateBezier(this, h.x, h.y, t, e, r, s, a, o, 0, n.PT_CORNER), + this._commandx = a, + this._commandy = o) : this.lineTo(a, o) + }, + quadraticCurveTo: function(t, e, i, n) { + var r = this._commandx + , s = this._commandy; + this.bezierCurveTo(r + 2 / 3 * (t - r), s + 2 / 3 * (e - s), i + 2 / 3 * (t - i), n + 2 / 3 * (e - n), i, n) + }, + arc: function(t, e, n, r, s, a) { + i.arc(this, t, e, n, r, s, a) + }, + ellipse: function(t, e, n, r) { + i.ellipse(this, t, e, n, r), + this._curPath.complex = !1 + }, + circle: function(t, e, n) { + i.ellipse(this, t, e, n, n), + this._curPath.complex = !1 + }, + rect: function(t, e, i, n) { + this.moveTo(t, e), + this.lineTo(t, e + n), + this.lineTo(t + i, e + n), + this.lineTo(t + i, e), + this.close(), + this._curPath.complex = !1 + }, + roundRect: function(t, e, n, r, s) { + i.roundRect(this, t, e, n, r, s), + this._curPath.complex = !1 + }, + clear: function(t) { + this._pathLength = 0, + this._pathOffset = 0, + this._pointsOffset = 0, + this._curPath = null, + t && (this._paths.length = 0, + this._points.length = 0) + }, + close: function() { + this._curPath.closed = !0 + }, + _addPath: function() { + var t = this._pathLength + , e = this._paths[t]; + return e ? e.reset() : (e = new s, + this._paths.push(e)), + this._pathLength++, + this._curPath = e, + e + }, + _addPoint: function(t, e, i) { + var n = this._curPath; + if (n) { + var s, a = this._points, o = n.points; + (s = a[this._pointsOffset++]) ? (s.x = t, + s.y = e) : (s = new r(t,e), + a.push(s)), + s.flags = i, + o.push(s) + } + } + }), + cc.Graphics._Impl = a, + e.exports = a + } + ), { + "../../../../graphics/helper": 157, + "../../../../graphics/types": 159 + }], + 235: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = s(t("../../../assembler")) + , r = s(t("../../../../../renderer/core/input-assembler")); + function s(t) { + return t && t.__esModule ? t : { + default: t + } + } + function a(t, e) { + return (a = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var o = t("../../mesh-buffer") + , l = t("../../../index") + , h = t("../../../../graphics/graphics") + , c = t("../../../../graphics/types").PointFlags + , u = h.LineJoin + , _ = h.LineCap + , f = t("./earcut"); + t("./impl"); + var d = Math.PI + , p = Math.min + , m = Math.max + , y = Math.ceil + , v = Math.acos + , g = Math.cos + , A = Math.sin + , x = Math.atan2; + function b(t, e, i) { + return t < e ? e : t > i ? i : t + } + var C = cc.gfx + , T = new C.VertexFormat([{ + name: C.ATTR_POSITION, + type: C.ATTR_TYPE_FLOAT32, + num: 2 + }, { + name: C.ATTR_COLOR, + type: C.ATTR_TYPE_UINT8, + num: 4, + normalize: !0 + }, { + name: "a_dist", + type: C.ATTR_TYPE_FLOAT32, + num: 1 + }]); + T.name = "vfmtPosColorSdf"; + var S = (function(t) { + var e, i; + function n(e) { + var i; + return (i = t.call(this, e) || this)._buffer = null, + i._buffers = [], + i._bufferOffset = 0, + i + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + a(e, i); + var s = n.prototype; + return s.getVfmt = function() { + return T + } + , + s.getVfmtFloatCount = function() { + return 4 + } + , + s.requestBuffer = function() { + var t = { + indiceStart: 0, + vertexStart: 0 + } + , e = new o(l._handle,this.getVfmt()); + t.meshbuffer = e; + var i = new r.default(e._vb,e._ib); + return t.ia = i, + this._buffers.push(t), + t + } + , + s.getBuffers = function() { + return 0 === this._buffers.length && this.requestBuffer(), + this._buffers + } + , + s.clear = function(t) { + this._bufferOffset = 0; + var e = this._buffers; + if (t) { + for (var i = 0, n = e.length; i < n; i++) { + var r = e[i]; + r.meshbuffer.destroy(), + r.meshbuffer = null + } + e.length = 0 + } else + for (var s = 0, a = e.length; s < a; s++) { + var o = e[s]; + o.indiceStart = 0, + o.vertexStart = 0, + o.meshbuffer.reset() + } + } + , + s.fillBuffers = function(t, e) { + e._flush(), + e.node = t.node, + e.material = t._materials[0]; + for (var i = this.getBuffers(), n = 0, r = i.length; n < r; n++) { + var s = i[n] + , a = s.meshbuffer; + s.ia._count = s.indiceStart, + e._flushIA(s.ia), + a.uploadData() + } + } + , + s.genBuffer = function(t, e) { + var i = this.getBuffers() + , n = i[this._bufferOffset] + , r = n.meshbuffer + , s = n.vertexStart + e; + return (s > 65535 || 3 * s > 131070) && (++this._bufferOffset, + s = e, + this._bufferOffset < i.length ? n = i[this._bufferOffset] : (n = this.requestBuffer(t), + i[this._bufferOffset] = n), + r = n.meshbuffer), + s > r.vertexOffset && r.requestStatic(e, 3 * e), + this._buffer = n, + n + } + , + s.stroke = function(t) { + this._curColor = t._strokeColor._val, + this._flattenPaths(t._impl), + this._expandStroke(t), + t._impl._updatePathOffset = !0 + } + , + s.fill = function(t) { + this._curColor = t._fillColor._val, + this._expandFill(t), + t._impl._updatePathOffset = !0 + } + , + s._expandStroke = function(t) { + var e, i, n, r, s = .5 * t.lineWidth, a = t.lineCap, o = t.lineJoin, l = t.miterLimit, h = t._impl, f = (e = s, + i = d, + n = h._tessTol, + r = 2 * v(e / (e + n)), + m(2, y(i / r))); + this._calculateJoins(h, s, o, l); + for (var p = h._paths, g = 0, A = h._pathOffset, x = h._pathLength; A < x; A++) { + var b = p[A] + , C = b.points.length; + o === u.ROUND ? g += 2 * (C + b.nbevel * (f + 2) + 1) : g += 2 * (C + 5 * b.nbevel + 1), + b.closed || (a === _.ROUND ? g += 2 * (2 * f + 2) : g += 12) + } + for (var T = this.genBuffer(t, g), S = T.meshbuffer, w = S._vData, E = S._iData, M = h._pathOffset, D = h._pathLength; M < D; M++) { + var B, I = p[M], P = I.points, R = P.length, O = T.vertexStart, L = void 0, F = void 0, V = void 0, N = void 0; + if ((B = I.closed) ? (L = P[R - 1], + F = P[0], + V = 0, + N = R) : (L = P[0], + F = P[1], + V = 1, + N = R - 1), + F = F || L, + !B) { + var k = F.sub(L); + k.normalizeSelf(); + var G = k.x + , U = k.y; + a === _.BUTT ? this._buttCapStart(L, G, U, s, 0) : a === _.SQUARE ? this._buttCapStart(L, G, U, s, s) : a === _.ROUND && this._roundCapStart(L, G, U, s, f) + } + for (var z = V; z < N; ++z) + o === u.ROUND ? this._roundJoin(L, F, s, s, f) : 0 != (F.flags & (c.PT_BEVEL | c.PT_INNERBEVEL)) ? this._bevelJoin(L, F, s, s) : (this._vset(F.x + F.dmx * s, F.y + F.dmy * s, 1), + this._vset(F.x - F.dmx * s, F.y - F.dmy * s, -1)), + L = F, + F = P[z + 1]; + if (B) { + var H = this.getVfmtFloatCount() + , W = O * H; + this._vset(w[W], w[W + 1], 1), + this._vset(w[W + H], w[W + H + 1], -1) + } else { + var j = F.sub(L); + j.normalizeSelf(); + var X = j.x + , Y = j.y; + a === _.BUTT ? this._buttCapEnd(F, X, Y, s, 0) : a === _.SQUARE ? this._buttCapEnd(F, X, Y, s, s) : a === _.ROUND && this._roundCapEnd(F, X, Y, s, f) + } + for (var q = T.indiceStart, J = O + 2, Z = T.vertexStart; J < Z; J++) + E[q++] = J - 2, + E[q++] = J - 1, + E[q++] = J; + T.indiceStart = q + } + } + , + s._expandFill = function(t) { + for (var e = t._impl, i = e._paths, n = 0, r = e._pathOffset, s = e._pathLength; r < s; r++) + n += i[r].points.length; + for (var a = this.genBuffer(t, n), o = a.meshbuffer, l = o._vData, h = o._iData, c = e._pathOffset, u = e._pathLength; c < u; c++) { + var _ = i[c] + , d = _.points + , p = d.length; + if (0 !== p) { + for (var m = a.vertexStart, y = 0; y < p; ++y) + this._vset(d[y].x, d[y].y); + var v = a.indiceStart; + if (_.complex) { + for (var g = [], A = this.getVfmtFloatCount(), x = m, b = a.vertexStart; x < b; x++) { + var C = x * A; + g.push(l[C]), + g.push(l[C + 1]) + } + var T = f(g, null, 2); + if (!T || 0 === T.length) + continue; + for (var S = 0, w = T.length; S < w; S++) + h[v++] = T[S] + m + } else + for (var E = m, M = m + 2, D = a.vertexStart; M < D; M++) + h[v++] = E, + h[v++] = M - 1, + h[v++] = M; + a.indiceStart = v + } + } + } + , + s._calculateJoins = function(t, e, i, n) { + var r = 0; + e > 0 && (r = 1 / e); + for (var s = t._paths, a = t._pathOffset, o = t._pathLength; a < o; a++) { + var l = s[a] + , h = l.points + , _ = h.length + , f = h[_ - 1] + , d = h[0]; + l.nbevel = 0; + for (var y = 0; y < _; y++) { + var v, g, A = f.dy, x = -f.dx, b = d.dy, C = -d.dx; + if (d.dmx = .5 * (A + b), + d.dmy = .5 * (x + C), + (v = d.dmx * d.dmx + d.dmy * d.dmy) > 1e-6) { + var T = 1 / v; + T > 600 && (T = 600), + d.dmx *= T, + d.dmy *= T + } + d.dx * f.dy - f.dx * d.dy > 0 && (d.flags |= c.PT_LEFT), + v * (g = m(11, p(f.len, d.len) * r)) * g < 1 && (d.flags |= c.PT_INNERBEVEL); + var S = d.dmx * e + , w = d.dmy * e + , E = S * S + w * w; + (E > d.len * d.len || E > f.len * f.len) && (d.flags |= c.PT_INNERBEVEL), + d.flags & c.PT_CORNER && (v * n * n < 1 || i === u.BEVEL || i === u.ROUND) && (d.flags |= c.PT_BEVEL), + 0 != (d.flags & (c.PT_BEVEL | c.PT_INNERBEVEL)) && l.nbevel++, + f = d, + d = h[y + 1] + } + } + } + , + s._flattenPaths = function(t) { + for (var e = t._paths, i = t._pathOffset, n = t._pathLength; i < n; i++) { + var r = e[i] + , s = r.points + , a = s[s.length - 1] + , o = s[0]; + s.length > 2 && a.equals(o) && (r.closed = !0, + s.pop(), + a = s[s.length - 1]); + for (var l = 0, h = s.length; l < h; l++) { + var c = o.sub(a); + a.len = c.mag(), + (c.x || c.y) && c.normalizeSelf(), + a.dx = c.x, + a.dy = c.y, + a = o, + o = s[l + 1] + } + } + } + , + s._chooseBevel = function(t, e, i, n) { + var r, s, a, o, l = i.x, h = i.y; + return 0 !== t ? (r = l + e.dy * n, + s = h - e.dx * n, + a = l + i.dy * n, + o = h - i.dx * n) : (r = a = l + i.dmx * n, + s = o = h + i.dmy * n), + [r, s, a, o] + } + , + s._buttCapStart = function(t, e, i, n, r) { + var s = t.x - e * r + , a = t.y - i * r + , o = i + , l = -e; + this._vset(s + o * n, a + l * n, 1), + this._vset(s - o * n, a - l * n, -1) + } + , + s._buttCapEnd = function(t, e, i, n, r) { + var s = t.x + e * r + , a = t.y + i * r + , o = i + , l = -e; + this._vset(s + o * n, a + l * n, 1), + this._vset(s - o * n, a - l * n, -1) + } + , + s._roundCapStart = function(t, e, i, n, r) { + for (var s = t.x, a = t.y, o = i, l = -e, h = 0; h < r; h++) { + var c = h / (r - 1) * d + , u = g(c) * n + , _ = A(c) * n; + this._vset(s - o * u - e * _, a - l * u - i * _, 1), + this._vset(s, a, 0) + } + this._vset(s + o * n, a + l * n, 1), + this._vset(s - o * n, a - l * n, -1) + } + , + s._roundCapEnd = function(t, e, i, n, r) { + var s = t.x + , a = t.y + , o = i + , l = -e; + this._vset(s + o * n, a + l * n, 1), + this._vset(s - o * n, a - l * n, -1); + for (var h = 0; h < r; h++) { + var c = h / (r - 1) * d + , u = g(c) * n + , _ = A(c) * n; + this._vset(s, a, 0), + this._vset(s - o * u + e * _, a - l * u + i * _, 1) + } + } + , + s._roundJoin = function(t, e, i, n, r) { + var s = t.dy + , a = -t.dx + , o = e.dy + , l = -e.dx + , h = e.x + , u = e.y; + if (0 != (e.flags & c.PT_LEFT)) { + var _ = this._chooseBevel(e.flags & c.PT_INNERBEVEL, t, e, i) + , f = _[0] + , p = _[1] + , m = _[2] + , v = _[3] + , C = x(-a, -s) + , T = x(-l, -o); + T > C && (T -= 2 * d), + this._vset(f, p, 1), + this._vset(h - s * n, e.y - a * n, -1); + for (var S = b(y((C - T) / d) * r, 2, r), w = 0; w < S; w++) { + var E = C + w / (S - 1) * (T - C) + , M = h + g(E) * n + , D = u + A(E) * n; + this._vset(h, u, 0), + this._vset(M, D, -1) + } + this._vset(m, v, 1), + this._vset(h - o * n, u - l * n, -1) + } else { + var B = this._chooseBevel(e.flags & c.PT_INNERBEVEL, t, e, -n) + , I = B[0] + , P = B[1] + , R = B[2] + , O = B[3] + , L = x(a, s) + , F = x(l, o); + F < L && (F += 2 * d), + this._vset(h + s * n, u + a * n, 1), + this._vset(I, P, -1); + for (var V = b(y((F - L) / d) * r, 2, r), N = 0; N < V; N++) { + var k = L + N / (V - 1) * (F - L) + , G = h + g(k) * i + , U = u + A(k) * i; + this._vset(G, U, 1), + this._vset(h, u, 0) + } + this._vset(h + o * n, u + l * n, 1), + this._vset(R, O, -1) + } + } + , + s._bevelJoin = function(t, e, i, n) { + var r, s, a, o, l, h, u, _, f = t.dy, d = -t.dx, p = e.dy, m = -e.dx; + if (e.flags & c.PT_LEFT) { + var y = this._chooseBevel(e.flags & c.PT_INNERBEVEL, t, e, i); + l = y[0], + h = y[1], + u = y[2], + _ = y[3], + this._vset(l, h, 1), + this._vset(e.x - f * n, e.y - d * n, -1), + this._vset(u, _, 1), + this._vset(e.x - p * n, e.y - m * n, -1) + } else { + var v = this._chooseBevel(e.flags & c.PT_INNERBEVEL, t, e, -n); + r = v[0], + s = v[1], + a = v[2], + o = v[3], + this._vset(e.x + f * i, e.y + d * i, 1), + this._vset(r, s, -1), + this._vset(e.x + p * i, e.y + m * i, 1), + this._vset(a, o, -1) + } + } + , + s._vset = function(t, e, i) { + void 0 === i && (i = 0); + var n = this._buffer + , r = n.meshbuffer + , s = n.vertexStart * this.getVfmtFloatCount() + , a = r._vData + , o = r._uintVData; + a[s] = t, + a[s + 1] = e, + o[s + 2] = this._curColor, + a[s + 3] = i, + n.vertexStart++, + r._dirty = !0 + } + , + n + } + )(n.default); + i.default = S, + n.default.register(cc.Graphics, S), + e.exports = i.default + } + ), { + "../../../../../renderer/core/input-assembler": 305, + "../../../../graphics/graphics": 156, + "../../../../graphics/types": 159, + "../../../assembler": 221, + "../../../index": 224, + "../../mesh-buffer": 251, + "./earcut": 233, + "./impl": 234 + }], + 236: [(function(t) { + "use strict"; + cc.assemblers = {}, + t("./sprite"), + t("./mask-assembler"), + t("./graphics"), + t("./label"), + t("./motion-streak") + } + ), { + "./graphics": 235, + "./label": 241, + "./mask-assembler": 242, + "./motion-streak": void 0, + "./sprite": 249 + }], + 237: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../../../../utils/label/bmfont")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var a = 0 + , o = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var r = n.prototype; + return r.initData = function() { + this._renderData.createFlexData(0, 4, 6, this.getVfmt()) + } + , + r._reserveQuads = function(t, e) { + var i = 4 * e + , n = 6 * e + , r = this._renderData._flexBuffer; + r.reserve(i, n), + r.used(i, n); + for (var s = this._renderData.iDatas[0], o = 0, l = 0, h = n; o < h; o += 6, + l += 4) + s[o] = l, + s[o + 1] = l + 1, + s[o + 2] = l + 2, + s[o + 3] = l + 1, + s[o + 4] = l + 3, + s[o + 5] = l + 2; + a = 0 + } + , + r._quadsUpdated = function() { + a = 0, + this._renderData._flexBuffer.used(this.verticesCount, this.indicesCount) + } + , + r._getColor = function(t) { + return t.node._color._val + } + , + r.appendQuad = function(t, e, i, n, r, s, o) { + var l = this._renderData + , h = l.vDatas[0] + , c = l.uintVDatas[0]; + this.verticesCount += 4, + this.indicesCount = this.verticesCount / 2 * 3; + var u, _, f, d, p = e.width, m = e.height, y = i.width, v = i.height, g = this._getColor(t), A = this.floatsPerVert, x = a + this.uvOffset; + n ? (u = i.x / p, + f = (i.x + v) / p, + _ = (i.y + y) / m, + d = i.y / m, + h[x] = u, + h[x + 1] = d, + h[x += A] = u, + h[x + 1] = _, + h[x += A] = f, + h[x + 1] = d, + h[x += A] = f, + h[x + 1] = _) : (u = i.x / p, + f = (i.x + y) / p, + _ = (i.y + v) / m, + d = i.y / m, + h[x] = u, + h[x + 1] = _, + h[x += A] = f, + h[x + 1] = _, + h[x += A] = u, + h[x + 1] = d, + h[x += A] = f, + h[x + 1] = d), + u = r, + f = r + y * o, + _ = s - v * o, + d = s, + this.appendVerts(t, a, u, f, _, d); + for (var b = a + this.colorOffset, C = 0; C < 4; C++) + c[b] = g, + b += A; + a += 4 * this.floatsPerVert + } + , + r.appendVerts = function(t, e, i, n, r, s) { + var a = this._local + , o = this.floatsPerVert; + a[e] = i, + a[e + 1] = r, + a[e += o] = n, + a[e + 1] = r, + a[e += o] = i, + a[e + 1] = s, + a[e += o] = n, + a[e + 1] = s + } + , + r.updateWorldVerts = function(t) { + for (var e = t.node._worldMatrix.m, i = e[0], n = e[1], r = e[4], s = e[5], a = e[12], o = e[13], l = this._local, h = this._renderData.vDatas[0], c = this.floatsPerVert, u = 0; u < l.length; u += c) { + var _ = l[u] + , f = l[u + 1]; + h[u] = _ * i + f * r + a, + h[u + 1] = _ * n + f * s + o + } + } + , + n + } + )(r.default); + i.default = o, + e.exports = i.default + } + ), { + "../../../../utils/label/bmfont": 228 + }], + 238: [(function(t, e, i) { + "use strict"; + function n(t, e) { + return (n = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + i.__esModule = !0, + i.default = void 0, + t("../../../../../platform/js"), + t("./bmfont"); + var r = t("../../../../utils/label/letter-font") + , s = cc.color(255, 255, 255, 255) + , a = (function(t) { + var e, i; + function r() { + return t.apply(this, arguments) || this + } + i = t, + (e = r).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + n(e, i); + var a = r.prototype; + return a.createData = function(t) { + return t.requestRenderData() + } + , + a._getColor = function(t) { + return s._fastSetA(t.node._color.a), + s._val + } + , + a.updateColor = function(e) { + var i = this._getColor(e); + t.prototype.updateColor.call(this, e, i) + } + , + r + } + )(r); + i.default = a, + e.exports = i.default + } + ), { + "../../../../../platform/js": 214, + "../../../../utils/label/letter-font": 230, + "./bmfont": 237 + }], + 239: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../../../../../assets/material/material-variant")) && n.__esModule ? n : { + default: n + }; + t("../../../../../components/CCLabel"), + t("../../../../../components/CCLabelShadow"), + t("../../../../../components/CCLabelOutline"), + t("../../../../../assets/material/CCMaterial"); + var s = (function() { + function t() {} + var e = t.prototype; + return e.init = function(t) { + this.labelMaterial = null, + this._label = this._renderComp = t, + renderer.CustomAssembler.prototype.ctor.call(this), + t.node._proxy.setAssembler(this), + this._layout = new jsb.LabelRenderer, + this._layout.init(t), + this._cfg = new DataView(this._layout._cfg), + this._layoutInfo = new DataView(this._layout._layout), + this._cfgFields = jsb.LabelRenderer._cfgFields, + this._layoutFields = jsb.LabelRenderer._layoutFields, + this._layout.bindNodeProxy(t.node._proxy), + this._bindMaterial(t) + } + , + e._setBufferFlag = function(t, e, i, n, r) { + if ("int8" == n && 1 == i) { + var s = t.getInt8(e); + t.setInt8(e, r | s) + } else if ("int32" == n && 4 == i) { + var a = t.getInt32(e, jsb.__isLittleEndian__); + t.setInt32(e, r | a, jsb.__isLittleEndian__) + } else + cc.warn("flag storage type should be int8/int32 only, type/size -> " + n + "/" + i + ".") + } + , + e._updateCfgFlag = function(t) { + var e = this._cfgFields.updateFlags; + this._setBufferFlag(this._cfg, e.offset, e.size, e.type, t) + } + , + e._setBufferValue = function(t, e, i, n, r) { + "float" == n && 4 == i ? t.setFloat32(e, r, jsb.__isLittleEndian__) : "int32" == n && 4 == i ? t.setInt32(e, r, jsb.__isLittleEndian__) : "bool" == n && 1 == i ? t.setInt8(e, r ? 1 : 0, jsb.__isLittleEndian__) : "Color4B" == n && 4 == i ? (t.setUint8(e, r.r), + t.setUint8(e + 1, r.g), + t.setUint8(e + 2, r.b), + t.setUint8(e + 3, r.a)) : "int8" == n && 1 == i ? t.setUint8(e, r) : cc.warn("dont know how to set value to buffer, type/size -> " + n + "/" + i + ".") + } + , + e._setFieldValue = function(t, e, i, n) { + var r = e[i]; + this._setBufferValue(t, r.offset, r.size, r.type, n) + } + , + e._getBufferValue = function(t, e, i, n) { + return "float" == n && 4 == i ? t.getFloat32(e, jsb.__isLittleEndian__) : "int32" == n && 4 == i ? t.getInt32(e, jsb.__isLittleEndian__) : "bool" == n && 1 == i ? 0 != t.getInt8(e, jsb.__isLittleEndian__) : "Color4B" == n && 4 == i ? { + r: t.getUint8(e), + g: t.getUint8(e + 1), + b: t.getUint8(e + 2), + a: t.getUint8(e + 3) + } : "int8" == n && 1 == i ? t.getUint8(e) : void cc.warn("dont know how to get value from buffer, type/size -> " + n + "/" + i + ".") + } + , + e._getFieldValue = function(t, e, i) { + var n = e[i]; + return this._getBufferValue(t, n.offset, n.size, n.type) + } + , + e._getLayoutValue = function(t) { + return this._getFieldValue(this._layoutInfo, this._layoutFields, t) + } + , + e._setLayoutValue = function(t, e) { + return this._setFieldValue(this._layoutInfo, this._layoutFields, t, e) + } + , + e._updateCfgFlag_Content = function() { + this._updateCfgFlag(1) + } + , + e._updateCfgFlag_Font = function() { + this._updateCfgFlag(2) + } + , + e._colorEqual = function(t, e) { + return t.r == e.r && t.g == e.g && t.b == e.b && t.a == e.a + } + , + e._colorToObj = function(t, e, i, n) { + return { + r: t, + g: e, + b: i, + a: n + } + } + , + e.setString = function(t) { + t != this._layout.string && (this._layout.string = t, + this._updateCfgFlag_Content()) + } + , + e.setFontPath = function(t) { + t != this._layout.fontPath && (this._layout.fontPath = t, + this._updateCfgFlag_Font()) + } + , + e.setFontSize = function(t, e) { + this._getFieldValue(this._cfg, this._cfgFields, "fontSize") != t && (this._setFieldValue(this._cfg, this._cfgFields, "fontSize", t), + this._setFieldValue(this._cfg, this._cfgFields, "fontSizeRetina", e), + this._updateCfgFlag_Font()) + } + , + e.setOutline = function(t) { + var e = this._getLayoutValue("outlineSize"); + e > 0 != t > 0 && this._updateCfgFlag_Font(), + e != t && (this._updateCfgFlag_Content(), + this._setLayoutValue("outlineSize", t)) + } + , + e.setOutlineColor = function(t) { + var e = this._getLayoutValue("outlineColor"); + this._colorEqual(e, t) || (this._setLayoutValue("outlineColor", t), + this._updateCfgFlag_Content()) + } + , + e.setLineHeight = function(t) { + this._getLayoutValue("lineHeight") != t && (this._setLayoutValue("lineHeight", t), + this._updateCfgFlag_Content()) + } + , + e.setOverFlow = function(t) { + this._getLayoutValue("overflow") != t && (this._setLayoutValue("overflow", t), + this._updateCfgFlag_Content()) + } + , + e.setEnableWrap = function(t) { + this._getLayoutValue("wrap") != t && (this._setLayoutValue("wrap", t), + this._updateCfgFlag_Content()) + } + , + e.setVerticalAlign = function(t) { + this._getLayoutValue("valign") != t && (this._setLayoutValue("valign", t), + this._updateCfgFlag_Content()) + } + , + e.setHorizontalAlign = function(t) { + this._getLayoutValue("halign") != t && (this._setLayoutValue("halign", t), + this._updateCfgFlag_Content()) + } + , + e.setContentSize = function(t, e) { + var i = this._getLayoutValue("width") + , n = this._getLayoutValue("height"); + i == t && n == e || (this._setLayoutValue("height", e), + this._setLayoutValue("width", t), + this._updateCfgFlag_Content()) + } + , + e.setAnchorPoint = function(t, e) { + var i = this._getLayoutValue("anchorX") + , n = this._getLayoutValue("anchorY"); + i == t && n == e || (this._setLayoutValue("anchorX", t), + this._setLayoutValue("anchorY", e), + this._updateCfgFlag_Content()) + } + , + e.setColor = function(t) { + var e = this._getLayoutValue("color"); + this._colorEqual(e, t) || (this._setLayoutValue("color", t), + this._updateCfgFlag_Content()) + } + , + e.setShadow = function(t, e, i) { + var n = this._getLayoutValue("shadowBlur") + , r = this._getLayoutValue("shadowX") + , s = this._getLayoutValue("shadowY"); + n > 0 != i > 0 && this._updateCfgFlag_Font(); + var a = !1; + n != i && (this._setLayoutValue("shadowBlur", i), + a = !0), + r != t && (this._setLayoutValue("shadowX", t), + a = !0), + s != e && (this._setLayoutValue("shadowY", e), + a = !0), + a && this._updateCfgFlag_Content() + } + , + e.setShadowColor = function(t) { + var e = this._getLayoutValue("shadowColor"); + this._colorEqual(e, t) || (this._setLayoutValue("shadowColor", t), + this._updateCfgFlag_Content()) + } + , + e.setItalic = function(t) { + this._getLayoutValue("italic") != t && (this._setLayoutValue("italic", t), + this._updateCfgFlag_Content()) + } + , + e.setBold = function(t) { + this._getLayoutValue("bold") != t && (this._setLayoutValue("bold", t), + this._updateCfgFlag_Content(), + this._updateCfgFlag_Font()) + } + , + e.setUnderline = function(t) { + this._getLayoutValue("underline") != t && (this._setLayoutValue("underline", t), + this._updateCfgFlag_Content()) + } + , + e.setSpacingX = function(t) { + this._getLayoutValue("spaceX") == t || "number" != typeof t || isNaN(t) || (this._setLayoutValue("spaceX", t), + this._updateCfgFlag_Content()) + } + , + e.updateRenderData = function(t) { + if (t._vertsDirty) { + t.font && t.font.nativeUrl && this.setFontPath(cc.assetManager.cacheManager.getCache(t.font.nativeUrl) || t.font.nativeUrl); + var e = this._layout + , i = t.node.color + , n = t.node + , r = t.fontSize; + this.setString(t.string), + this.setFontSize(t.fontSize, r / 72 * t.fontSize), + this.setLineHeight(t.lineHeight), + this.setEnableWrap(t.enableWrapText), + this.setItalic(t.enableItalic), + this.setUnderline(t.enableUnderline), + this.setBold(t.enableBold), + this.setOverFlow(t.overflow), + this.setVerticalAlign(t.verticalAlign), + this.setHorizontalAlign(t.horizontalAlign), + this.setSpacingX(t.spacingX), + this.setContentSize(n.getContentSize().width, n.getContentSize().height), + this.setAnchorPoint(n.anchorX, n.anchorY), + this.setColor(this._colorToObj(i.getR(), i.getG(), i.getB(), Math.ceil(i.getA() * n.opacity / 255))); + var s = n.getComponent(cc.LabelShadow); + if (s && s.enabled) { + var a = s.color; + this.setShadow(s.offset.x, s.offset.y, s.blur), + this.setShadowColor(this._colorToObj(a.getR(), a.getG(), a.getB(), Math.ceil(a.getA() * n.opacity / 255))) + } else + this.setShadow(0, 0, -1); + this._updateTTFMaterial(t), + e.render() + } + } + , + e._bindMaterial = function(t) { + var e = this.labelMaterial; + return e || (e = r.default.createWithBuiltin("2d-label", t), + this.labelMaterial = e), + e + } + , + e._updateTTFMaterial = function(t) { + var e = this._bindMaterial(t) + , i = this._label.node + , n = this._layout + , r = i.getComponent(cc.LabelOutline) + , s = 0; + if (r && r.enabled && r.width > 0) { + s = Math.max(Math.min(r.width / 10, .4), .1); + var a = r.color; + this.setOutlineColor(this._colorToObj(a.getR(), a.getG(), a.getB(), Math.ceil(a.getA() * i.opacity / 255))) + } + this.setOutline(s), + e.define("CC_USE_MODEL", !0), + e.define("USE_TEXTURE_ALPHAONLY", !0), + e.define("USE_SDF", s > 0 || t.enableBold), + e.define("USE_SDF_EXTEND", t.enableBold ? 1 : 0), + void 0 !== e.getDefine("CC_SUPPORT_standard_derivatives") && cc.sys.glExtension("OES_standard_derivatives") && e.define("CC_SUPPORT_standard_derivatives", !0), + n.setEffect(e.effect._nativeObj) + } + , + e.fillBuffers = function() { + this._layout.render() + } + , + e.getVfmt = function() {} + , + t + } + )(); + i.default = s, + e.exports = i.default + } + ), { + "../../../../../assets/material/CCMaterial": 80, + "../../../../../assets/material/material-variant": 87, + "../../../../../components/CCLabel": 107, + "../../../../../components/CCLabelOutline": 108, + "../../../../../components/CCLabelShadow": 109 + }], + 240: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../../../../utils/label/ttf")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var a = t("../../../../../components/CCLabelShadow") + , o = cc.color(255, 255, 255, 255) + , l = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var r = n.prototype; + return r.updateUVs = function(t) { + for (var e = this._renderData.vDatas[0], i = t._frame.uv, n = this.uvOffset, r = this.floatsPerVert, s = 0; s < 4; s++) { + var a = 2 * s + , o = r * s + n; + e[o] = i[a], + e[o + 1] = i[a + 1] + } + } + , + r.updateColor = function(e) { + o._fastSetA(e.node._color.a); + var i = o._val; + t.prototype.updateColor.call(this, e, i) + } + , + r.updateVerts = function(t) { + var e = t.node + , i = t._ttfTexture.width + , n = t._ttfTexture.height + , r = e.anchorX * e.width + , s = e.anchorY * e.height + , o = a && t.getComponent(a); + if (o && o._enabled) { + var l = (i - e.width) / 2 + , h = (n - e.height) / 2 + , c = o.offset; + -c.x > l ? r += i - e.width : l > c.x && (r += l - c.x), + -c.y > h ? s += n - e.height : h > c.y && (s += h - c.y) + } + var u = this._local; + u[0] = -r, + u[1] = -s, + u[2] = i - r, + u[3] = n - s, + this.updateUVs(t), + this.updateWorldVerts(t) + } + , + n + } + )(r.default); + i.default = l, + e.exports = i.default + } + ), { + "../../../../../components/CCLabelShadow": 109, + "../../../../utils/label/ttf": 231 + }], + 241: [(function(t) { + "use strict"; + var e = h(t("../../../assembler")) + , i = h(t("../../../../components/CCLabel")) + , n = h(t("./2d/ttf")) + , r = h(t("./2d/bmfont")) + , s = h(t("./2d/letter")) + , a = h(t("./3d/ttf")) + , o = h(t("./3d/bmfont")) + , l = h(t("./3d/letter")); + function h(t) { + return t && t.__esModule ? t : { + default: t + } + } + i.default._canvasPool = { + pool: [], + get: function() { + var t = this.pool.pop(); + if (!t) { + var e = document.createElement("canvas") + , i = e.getContext("2d"); + t = { + canvas: e, + context: i + }, + i.textBaseline = "alphabetic" + } + return t + }, + put: function(t) { + this.pool.length >= 32 || this.pool.push(t) + } + }, + e.default.register(cc.Label, { + getConstructor: function(t) { + var e = t.node.is3DNode + , h = e ? a.default : n.default; + return t.font instanceof cc.BitmapFont ? h = e ? o.default : r.default : t.cacheMode === i.default.CacheMode.CHAR && (cc.sys.platform === cc.sys.WECHAT_GAME_SUB ? cc.warn("sorry, subdomain does not support CHAR mode currently!") : h = e ? l.default : s.default), + h + }, + TTF: n.default, + Bmfont: r.default, + Letter: s.default, + TTF3D: a.default, + Bmfont3D: o.default, + Letter3D: l.default, + NativeTTF: void 0 + }) + } + ), { + "../../../../components/CCLabel": 107, + "../../../assembler": 221, + "./2d/bmfont": 237, + "./2d/letter": 238, + "./2d/nativeTTF": 239, + "./2d/ttf": 240, + "./3d/bmfont": void 0, + "./3d/letter": void 0, + "./3d/ttf": void 0 + }], + 242: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.MaskAssembler = void 0; + var n, r = (n = t("../../assembler")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var a = t("../../../components/CCMask") + , o = t("../../render-flow") + , l = t("./sprite/2d/simple") + , h = t("./graphics") + , c = t("../../../../renderer/gfx") + , u = t("../vertex-format").vfmtPos + , _ = 8 + , f = []; + function d() { + return 1 << f.length - 1 + } + function p() { + for (var t = 0, e = 0; e < f.length; ++e) + t += 1 << e; + return t + } + function m(t, e, i, n, r, s) { + var a = t.effect + , o = c.STENCIL_OP_KEEP + , l = c.STENCIL_OP_KEEP; + a.setStencil(c.STENCIL_ENABLE, e, n, r, i, o, l, s) + } + function y(t) { + f.length + 1 > _ && cc.errorID(9e3, _), + f.push(t) + } + function v(t, e) { + 0 === f.length && cc.errorID(9001), + f.pop(), + 0 === f.length ? e._flushMaterial(t._exitMaterial) : x(e) + } + function g(t, e) { + var i = c.DS_FUNC_NEVER + , n = d() + , r = n + , s = n + , a = t.inverted ? c.STENCIL_OP_REPLACE : c.STENCIL_OP_ZERO; + m(t._clearMaterial, i, a, n, r, s); + var o = e.getBuffer("mesh", u) + , l = o.request(4, 6) + , h = l.indiceOffset + , _ = l.byteOffset >> 2 + , f = l.vertexOffset + , p = o._vData + , y = o._iData; + p[_++] = -1, + p[_++] = -1, + p[_++] = -1, + p[_++] = 1, + p[_++] = 1, + p[_++] = 1, + p[_++] = 1, + p[_++] = -1, + y[h++] = f, + y[h++] = f + 3, + y[h++] = f + 1, + y[h++] = f + 1, + y[h++] = f + 3, + y[h++] = f + 2, + e.node = e._dummyNode, + e.material = t._clearMaterial, + e._flush() + } + function A(t, e) { + var i = c.DS_FUNC_NEVER + , n = d() + , r = n + , s = n + , o = t.inverted ? c.STENCIL_OP_ZERO : c.STENCIL_OP_REPLACE; + m(t._materials[0], i, o, n, r, s), + e.material = t._materials[0], + t._type === a.Type.IMAGE_STENCIL ? (e.node = e._dummyNode, + l.prototype.fillBuffers.call(t._assembler, t, e), + e._flush()) : (e.node = t.node, + h.prototype.fillBuffers.call(t._graphics._assembler, t._graphics, e)) + } + function x(t) { + var e = c.DS_FUNC_EQUAL + , i = c.STENCIL_OP_KEEP + , n = p() + , r = n + , s = d() + , a = f[f.length - 1]; + m(a._enableMaterial, e, i, n, r, s), + t._flushMaterial(a._enableMaterial) + } + var b = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var r = n.prototype; + return r.updateRenderData = function(t) { + t._type === a.Type.IMAGE_STENCIL ? t.spriteFrame ? l.prototype.updateRenderData.call(this, t) : t.setMaterial(0, null) : (t._graphics.setMaterial(0, t._materials[0]), + h.prototype.updateRenderData.call(t._graphics._assembler, t._graphics, t._graphics)) + } + , + r.fillBuffers = function(t, e) { + (t._type !== a.Type.IMAGE_STENCIL || t.spriteFrame) && (y(t), + g(t, e), + A(t, e), + x(e)), + t.node._renderFlag |= o.FLAG_UPDATE_RENDER_DATA + } + , + r.postFillBuffers = function(t, e) { + (t._type !== a.Type.IMAGE_STENCIL || t.spriteFrame) && v(t, e), + t.node._renderFlag |= o.FLAG_UPDATE_RENDER_DATA + } + , + n + } + )(l); + i.MaskAssembler = b, + r.default.register(a, b) + } + ), { + "../../../../renderer/gfx": 315, + "../../../components/CCMask": 111, + "../../assembler": 221, + "../../render-flow": 225, + "../vertex-format": 256, + "./graphics": 235, + "./sprite/2d/simple": 246 + }], + 243: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../../../../assembler-2d")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var a = t("../../../../../components/CCSprite").FillType + , o = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var r = n.prototype; + return r.updateRenderData = function(t) { + var e = t._spriteFrame; + if (this.packToDynamicAtlas(t, e), + t._vertsDirty) { + var i = t._fillStart + , n = t._fillRange; + n < 0 && (i += n, + n = -n), + n = (n = (n = i + n) > 1 ? 1 : n) < 0 ? 0 : n; + var r = (i = (i = i > 1 ? 1 : i) < 0 ? 0 : i) + (n = (n -= i) < 0 ? 0 : n); + r = r > 1 ? 1 : r, + this.updateUVs(t, i, r), + this.updateVerts(t, i, r), + t._vertsDirty = !1 + } + } + , + r.updateUVs = function(t, e, i) { + var n, r, s, o, l, h, c, u, _, f, d = t._spriteFrame, p = d._texture.width, m = d._texture.height, y = d._rect; + d._rotated ? (n = y.x / p, + r = (y.y + y.width) / m, + s = l = n, + c = _ = (y.x + y.height) / p, + h = f = r, + o = u = y.y / m) : (n = y.x / p, + r = (y.y + y.height) / m, + s = c = n, + l = _ = (y.x + y.width) / p, + o = h = r, + u = f = y.y / m); + var v = this._renderData.vDatas[0] + , g = this.uvOffset + , A = this.floatsPerVert; + switch (t._fillType) { + case a.HORIZONTAL: + v[g] = s + (l - s) * e, + v[g + 1] = o + (h - o) * e, + v[g + A] = s + (l - s) * i, + v[g + A + 1] = o + (h - o) * i, + v[g + 2 * A] = c + (_ - c) * e, + v[g + 2 * A + 1] = u + (f - u) * e, + v[g + 3 * A] = c + (_ - c) * i, + v[g + 3 * A + 1] = u + (f - u) * i; + break; + case a.VERTICAL: + v[g] = s + (c - s) * e, + v[g + 1] = o + (u - o) * e, + v[g + A] = l + (_ - l) * e, + v[g + A + 1] = h + (f - h) * e, + v[g + 2 * A] = s + (c - s) * i, + v[g + 2 * A + 1] = o + (u - o) * i, + v[g + 3 * A] = l + (_ - l) * i, + v[g + 3 * A + 1] = h + (f - h) * i; + break; + default: + cc.errorID(2626) + } + } + , + r.updateVerts = function(t, e, i) { + var n, r = t.node, s = r.width, o = r.height, l = r.anchorX * s, h = r.anchorY * o, c = -l, u = -h, _ = s - l, f = o - h; + switch (t._fillType) { + case a.HORIZONTAL: + n = c + (_ - c) * i, + c += (_ - c) * e, + _ = n; + break; + case a.VERTICAL: + n = u + (f - u) * i, + u += (f - u) * e, + f = n; + break; + default: + cc.errorID(2626) + } + var d = this._local; + d[0] = c, + d[1] = u, + d[2] = _, + d[3] = f, + this.updateWorldVerts(t) + } + , + n + } + )(r.default); + i.default = o, + e.exports = i.default + } + ), { + "../../../../../components/CCSprite": 120, + "../../../../assembler-2d": 219 + }], + 244: [(function(t, e, i) { + "use strict"; + var n; + function r(t, e) { + return (r = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + i.__esModule = !0, + i.default = void 0; + var s = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + r(e, i); + var s = n.prototype; + return s.initData = function() { + this._renderData.createFlexData(0, 4, 6, this.getVfmt()) + } + , + s.updateRenderData = function(t) { + this.packToDynamicAtlas(t, t._spriteFrame); + var e = t.spriteFrame; + if (e) { + var i = e.vertices; + if (i) { + this.verticesCount = i.x.length, + this.indicesCount = i.triangles.length; + var n = this._renderData._flexBuffer; + n.reserve(this.verticesCount, this.indicesCount) && (this.updateColor(t), + t._vertsDirty = !0), + n.used(this.verticesCount, this.indicesCount), + this.updateIndices(i.triangles), + t._vertsDirty && (this.updateUVs(t), + this.updateVerts(t), + this.updateWorldVerts(t), + t._vertsDirty = !1) + } + } + } + , + s.updateIndices = function(t) { + this._renderData.iDatas[0].set(t) + } + , + s.updateUVs = function(t) { + for (var e = t.spriteFrame.vertices, i = e.nu, n = e.nv, r = this.uvOffset, s = this.floatsPerVert, a = this._renderData.vDatas[0], o = 0; o < i.length; o++) { + var l = s * o + r; + a[l] = i[o], + a[l + 1] = n[o] + } + } + , + s.updateVerts = function(t) { + var e = t.node + , i = Math.abs(e.width) + , n = Math.abs(e.height) + , r = e.anchorX * i + , s = e.anchorY * n + , a = t.spriteFrame + , o = a.vertices + , l = o.x + , h = o.y + , c = a._originalSize.width + , u = a._originalSize.height + , _ = a._rect.width + , f = a._rect.height + , d = a._offset.x + (c - _) / 2 + , p = a._offset.y + (u - f) / 2 + , m = i / (t.trim ? _ : c) + , y = n / (t.trim ? f : u) + , v = this._local; + if (t.trim) + for (var g = 0, A = l.length; g < A; g++) { + var x = 2 * g; + v[x] = (l[g] - d) * m - r, + v[x + 1] = (u - h[g] - p) * y - s + } + else + for (var b = 0, C = l.length; b < C; b++) { + var T = 2 * b; + v[T] = l[b] * m - r, + v[T + 1] = (u - h[b]) * y - s + } + if (a._flipX) + for (var S = 0, w = this.verticesCount; S < w; S++) + v[2 * S] = i - v[2 * S] - 2 * r; + if (a._flipY) + for (var E = 0, M = this.verticesCount; E < M; E++) + v[2 * E + 1] = n - v[2 * E + 1] - 2 * s + } + , + s.updateWorldVerts = function(t) { + for (var e = t.node._worldMatrix.m, i = e[0], n = e[1], r = e[4], s = e[5], a = e[12], o = e[13], l = this._local, h = this._renderData.vDatas[0], c = this.floatsPerVert, u = 0, _ = this.verticesCount; u < _; u++) { + var f = l[2 * u] + , d = l[2 * u + 1]; + h[c * u] = f * i + d * r + a, + h[c * u + 1] = f * n + d * s + o + } + } + , + n + } + )(((n = t("../../../../assembler-2d")) && n.__esModule ? n : { + default: n + }).default); + i.default = s, + e.exports = i.default + } + ), { + "../../../../assembler-2d": 219 + }], + 245: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../../../../assembler-2d")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var a = 2 * Math.PI + , o = [cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0)] + , l = [0, 0, 0, 0] + , h = [0, 0, 0, 0, 0, 0, 0, 0] + , c = [cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0)] + , u = [cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0)] + , _ = cc.v2(0, 0) + , f = []; + function d(t, e, i, n, r, s, a) { + var o, l, h = Math.sin(s), c = Math.cos(s); + if (0 !== Math.cos(s)) { + if (o = h / c, + (t - r.x) * c > 0) { + var u = r.y + o * (t - r.x); + a[0].x = t, + a[0].y = u + } + if ((e - r.x) * c > 0) { + var _ = r.y + o * (e - r.x); + a[2].x = e, + a[2].y = _ + } + } + if (0 !== Math.sin(s)) { + if (l = c / h, + (n - r.y) * h > 0) { + var f = r.x + l * (n - r.y); + a[3].x = f, + a[3].y = n + } + if ((i - r.y) * h > 0) { + var d = r.x + l * (i - r.y); + a[1].x = d, + a[1].y = i + } + } + } + function p(t) { + var e = t.node + , i = e.width + , n = e.height + , r = e.anchorX * i + , s = e.anchorY * n + , a = -r + , h = -s + , c = i - r + , u = n - s + , d = l; + d[0] = a, + d[1] = h, + d[2] = c, + d[3] = u; + var p = t._fillCenter + , m = _.x = Math.min(Math.max(0, p.x), 1) * (c - a) + a + , y = _.y = Math.min(Math.max(0, p.y), 1) * (u - h) + h; + o[0].x = o[3].x = a, + o[1].x = o[2].x = c, + o[0].y = o[1].y = h, + o[2].y = o[3].y = u, + f.length = 0, + m !== d[0] && (f[0] = [3, 0]), + m !== d[2] && (f[2] = [1, 2]), + y !== d[1] && (f[1] = [0, 1]), + y !== d[3] && (f[3] = [2, 3]) + } + function m(t, e) { + var i, n; + if (i = e.x - t.x, + n = e.y - t.y, + 0 !== i || 0 !== n) { + if (0 === i) + return n > 0 ? .5 * Math.PI : 1.5 * Math.PI; + var r = Math.atan(n / i); + return i < 0 && (r += Math.PI), + r + } + } + var y = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var r = n.prototype; + return r.initData = function() { + this._renderData.createFlexData(0, 4, 6, this.getVfmt()), + this.updateIndices() + } + , + r.updateRenderData = function(e) { + t.prototype.updateRenderData.call(this, e); + var i, n, r, s, o, f, m, y, v, g = e.spriteFrame; + if (this.packToDynamicAtlas(e, g), + e._vertsDirty) { + var A = e._fillStart + , x = e._fillRange; + for (x < 0 && (A += x, + x = -x); A >= 1; ) + A -= 1; + for (; A < 0; ) + A += 1; + A *= a, + x *= a, + p(e), + f = (i = g)._texture.width, + m = i._texture.height, + y = i._rect, + v = h, + i._rotated ? (n = y.x / f, + r = (y.x + y.height) / f, + s = y.y / m, + o = (y.y + y.width) / m, + v[0] = v[2] = n, + v[4] = v[6] = r, + v[3] = v[7] = o, + v[1] = v[5] = s) : (n = y.x / f, + r = (y.x + y.width) / f, + s = y.y / m, + o = (y.y + y.height) / m, + v[0] = v[4] = n, + v[2] = v[6] = r, + v[1] = v[3] = o, + v[5] = v[7] = s), + d(l[0], l[2], l[1], l[3], _, A, c), + d(l[0], l[2], l[1], l[3], _, A + x, u), + this.updateVerts(e, A, x), + e._vertsDirty = !1 + } + } + , + r.updateVerts = function(t, e, i) { + var n = e + i + , r = this._local; + r.length = 0; + for (var s = 0, l = 3 * this.floatsPerVert, h = 0; h < 4; ++h) { + var d = f[h]; + if (d) + if (i >= a) + r.length = s + l, + this._generateTriangle(r, s, _, o[d[0]], o[d[1]]), + s += l; + else { + var p = m(_, o[d[0]]) + , y = m(_, o[d[1]]); + y < p && (y += a), + p -= a, + y -= a; + for (var v = 0; v < 3; ++v) + p >= n || (p >= e ? (r.length = s + l, + y >= n ? this._generateTriangle(r, s, _, o[d[0]], u[h]) : this._generateTriangle(r, s, _, o[d[0]], o[d[1]]), + s += l) : y <= e || (y <= n ? (r.length = s + l, + this._generateTriangle(r, s, _, c[h], o[d[1]]), + s += l) : (r.length = s + l, + this._generateTriangle(r, s, _, c[h], u[h]), + s += l))), + p += a, + y += a + } + } + this.allocWorldVerts(t), + this.updateWorldVerts(t) + } + , + r.allocWorldVerts = function(t) { + var e = t.node._color._val + , i = this._renderData + , n = this.floatsPerVert + , r = this._local + , s = r.length / n; + this.verticesCount = this.indicesCount = s; + var a = i._flexBuffer; + a.reserve(s, s) && this.updateIndices(), + a.used(this.verticesCount, this.indicesCount); + for (var o = i.vDatas[0], l = i.uintVDatas[0], h = this.uvOffset, c = 0; c < r.length; c += n) { + var u = c + h; + o[u] = r[u], + o[u + 1] = r[u + 1], + l[u + 2] = e + } + } + , + r.updateIndices = function() { + for (var t = this._renderData.iDatas[0], e = 0; e < t.length; e++) + t[e] = e + } + , + r.updateWorldVerts = function(t) { + for (var e = t.node._worldMatrix.m, i = e[0], n = e[1], r = e[4], s = e[5], a = e[12], o = e[13], l = this._local, h = this._renderData.vDatas[0], c = this.floatsPerVert, u = 0; u < l.length; u += c) { + var _ = l[u] + , f = l[u + 1]; + h[u] = _ * i + f * r + a, + h[u + 1] = _ * n + f * s + o + } + } + , + r._generateTriangle = function(t, e, i, n, r) { + var s = l + , a = s[0] + , o = s[1] + , h = s[2] + , c = s[3] + , u = this.floatsPerVert; + t[e] = i.x, + t[e + 1] = i.y, + t[e + u] = n.x, + t[e + u + 1] = n.y, + t[e + 2 * u] = r.x, + t[e + 2 * u + 1] = r.y; + var _, f, d = this.uvOffset; + _ = (i.x - a) / (h - a), + f = (i.y - o) / (c - o), + this._generateUV(_, f, t, e + d), + _ = (n.x - a) / (h - a), + f = (n.y - o) / (c - o), + this._generateUV(_, f, t, e + u + d), + _ = (r.x - a) / (h - a), + f = (r.y - o) / (c - o), + this._generateUV(_, f, t, e + 2 * u + d) + } + , + r._generateUV = function(t, e, i, n) { + var r = h[0] + (h[2] - h[0]) * t + , s = h[4] + (h[6] - h[4]) * t + , a = h[1] + (h[3] - h[1]) * t + , o = h[5] + (h[7] - h[5]) * t; + i[n] = r + (s - r) * e, + i[n + 1] = a + (o - a) * e + } + , + n + } + )(r.default); + i.default = y, + e.exports = i.default + } + ), { + "../../../../assembler-2d": 219 + }], + 246: [(function(t, e, i) { + "use strict"; + var n; + function r(t, e) { + return (r = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + i.__esModule = !0, + i.default = void 0; + var s = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + r(e, i); + var s = n.prototype; + return s.updateRenderData = function(t) { + this.packToDynamicAtlas(t, t._spriteFrame), + t._vertsDirty && (this.updateUVs(t), + this.updateVerts(t), + t._vertsDirty = !1) + } + , + s.updateUVs = function(t) { + for (var e = t._spriteFrame.uv, i = this.uvOffset, n = this.floatsPerVert, r = this._renderData.vDatas[0], s = 0; s < 4; s++) { + var a = 2 * s + , o = n * s + i; + r[o] = e[a], + r[o + 1] = e[a + 1] + } + } + , + s.updateVerts = function(t) { + var e, i, n, r, s = t.node, a = s.width, o = s.height, l = s.anchorX * a, h = s.anchorY * o; + if (t.trim) + e = -l, + i = -h, + n = a - l, + r = o - h; + else { + var c = t.spriteFrame + , u = c._originalSize.width + , _ = c._originalSize.height + , f = c._rect.width + , d = c._rect.height + , p = c._offset + , m = a / u + , y = o / _ + , v = p.x + (u - f) / 2 + , g = p.x - (u - f) / 2; + e = v * m - l, + i = (p.y + (_ - d) / 2) * y - h, + n = a + g * m - l, + r = o + (p.y - (_ - d) / 2) * y - h + } + var A = this._local; + A[0] = e, + A[1] = i, + A[2] = n, + A[3] = r, + this.updateWorldVerts(t) + } + , + n + } + )(((n = t("../../../../assembler-2d")) && n.__esModule ? n : { + default: n + }).default); + i.default = s, + e.exports = i.default + } + ), { + "../../../../assembler-2d": 219 + }], + 247: [(function(t, e, i) { + "use strict"; + var n; + function r(t, e) { + return (r = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + i.__esModule = !0, + i.default = void 0; + var s = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + r(e, i); + var s = n.prototype; + return s.initData = function() { + if (!(this._renderData.meshCount > 0)) { + this._renderData.createData(0, this.verticesFloats, this.indicesCount); + for (var t = this._renderData.iDatas[0], e = 0, i = 0; i < 3; ++i) + for (var n = 0; n < 3; ++n) { + var r = 4 * i + n; + t[e++] = r, + t[e++] = r + 1, + t[e++] = r + 4, + t[e++] = r + 1, + t[e++] = r + 5, + t[e++] = r + 4 + } + } + } + , + s.initLocal = function() { + this._local = [], + this._local.length = 8 + } + , + s.updateRenderData = function(t) { + var e = t._spriteFrame; + this.packToDynamicAtlas(t, e), + t._vertsDirty && (this.updateUVs(t), + this.updateVerts(t), + t._vertsDirty = !1) + } + , + s.updateVerts = function(t) { + var e = t.node + , i = e.width + , n = e.height + , r = e.anchorX * i + , s = e.anchorY * n + , a = t.spriteFrame + , o = a.insetLeft + , l = a.insetRight + , h = a.insetTop + , c = a.insetBottom + , u = i - o - l + , _ = n - h - c + , f = i / (o + l) + , d = n / (h + c); + f = isNaN(f) || f > 1 ? 1 : f, + d = isNaN(d) || d > 1 ? 1 : d, + u = u < 0 ? 0 : u, + _ = _ < 0 ? 0 : _; + var p = this._local; + p[0] = -r, + p[1] = -s, + p[2] = o * f - r, + p[3] = c * d - s, + p[4] = p[2] + u, + p[5] = p[3] + _, + p[6] = i - r, + p[7] = n - s, + this.updateWorldVerts(t) + } + , + s.updateUVs = function(t) { + for (var e = this._renderData.vDatas[0], i = t.spriteFrame.uvSliced, n = this.uvOffset, r = this.floatsPerVert, s = 0; s < 4; ++s) + for (var a = 0; a < 4; ++a) { + var o = 4 * s + a + , l = i[o] + , h = o * r; + e[h + n] = l.u, + e[h + n + 1] = l.v + } + } + , + s.updateWorldVerts = function(t) { + for (var e = t.node._worldMatrix.m, i = e[0], n = e[1], r = e[4], s = e[5], a = e[12], o = e[13], l = this._local, h = this._renderData.vDatas[0], c = this.floatsPerVert, u = 0; u < 4; ++u) + for (var _ = l[2 * u + 1], f = 0; f < 4; ++f) { + var d = l[2 * f] + , p = (4 * u + f) * c; + h[p] = d * i + _ * r + a, + h[p + 1] = d * n + _ * s + o + } + } + , + n + } + )(((n = t("../../../../assembler-2d")) && n.__esModule ? n : { + default: n + }).default); + i.default = s, + Object.assign(s.prototype, { + verticesCount: 16, + indicesCount: 54 + }), + e.exports = i.default + } + ), { + "../../../../assembler-2d": 219 + }], + 248: [(function(t, e, i) { + "use strict"; + var n; + function r(t, e) { + return (r = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + i.__esModule = !0, + i.default = void 0; + var s = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + r(e, i); + var s = n.prototype; + return s.initData = function() { + this.verticesCount = 0, + this.contentWidth = 0, + this.contentHeight = 0, + this.rectWidth = 0, + this.rectHeight = 0, + this.hRepeat = 0, + this.vRepeat = 0, + this.row = 0, + this.col = 0, + this._renderData.createFlexData(0, 4, 6, this.getVfmt()), + this._updateIndices() + } + , + s.initLocal = function() { + this._local = { + x: [], + y: [] + } + } + , + s._updateIndices = function() { + for (var t = this._renderData.iDatas[0], e = 0, i = 0, n = t.length; e < n; e += 6, + i += 4) + t[e] = i, + t[e + 1] = i + 1, + t[e + 2] = i + 2, + t[e + 3] = i + 1, + t[e + 4] = i + 3, + t[e + 5] = i + 2 + } + , + s.updateRenderData = function(t) { + var e = t._spriteFrame; + this.packToDynamicAtlas(t, e); + var i = t.node + , n = this.contentWidth = Math.abs(i.width) + , r = this.contentHeight = Math.abs(i.height) + , s = e._rect + , a = e.insetLeft + , o = e.insetRight + , l = s.width - a - o + , h = e.insetTop + , c = e.insetBottom + , u = s.height - h - c; + this.sizableWidth = n - a - o, + this.sizableHeight = r - h - c, + this.sizableWidth = this.sizableWidth > 0 ? this.sizableWidth : 0, + this.sizableHeight = this.sizableHeight > 0 ? this.sizableHeight : 0; + var _ = this.hRepeat = 0 === l ? this.sizableWidth : this.sizableWidth / l + , f = this.vRepeat = 0 === u ? this.sizableHeight : this.sizableHeight / u + , d = (this.row = Math.ceil(f + 2)) * (this.col = Math.ceil(_ + 2)); + this.verticesCount = 4 * d, + this.indicesCount = 6 * d; + var p = this._renderData._flexBuffer; + p.reserve(this.verticesCount, this.indicesCount) && (this._updateIndices(), + this.updateColor(t)), + p.used(this.verticesCount, this.indicesCount), + t._vertsDirty && (this.updateUVs(t), + this.updateVerts(t), + t._vertsDirty = !1) + } + , + s.updateVerts = function(t) { + var e = t._spriteFrame + , i = e._rect + , n = t.node + , r = n.anchorX * n.width + , s = n.anchorY * n.height + , a = this.row + , o = this.col + , l = this.contentWidth + , h = this.contentHeight + , c = this._local + , u = c.x + , _ = c.y; + u.length = _.length = 0; + var f, d, p = e.insetLeft, m = e.insetRight, y = i.width - p - m, v = e.insetTop, g = e.insetBottom, A = i.height - v - g, x = n.width / (p + m) > 1 ? 1 : n.width / (p + m), b = n.height / (v + g) > 1 ? 1 : n.height / (v + g); + f = y > 0 ? Math.floor(1e3 * this.sizableWidth) / 1e3 % y == 0 ? y : this.sizableWidth % y : this.sizableWidth, + d = A > 0 ? Math.floor(1e3 * this.sizableHeight) / 1e3 % A == 0 ? A : this.sizableHeight % A : this.sizableHeight; + for (var C = 0; C <= o; C++) + 0 === C ? u[C] = -r : C > 0 && C < o ? u[C] = 1 === C ? p * x + Math.min(y, this.sizableWidth) - r : y > 0 ? C === o - 1 ? p + f + y * (C - 2) - r : p + Math.min(y, this.sizableWidth) + y * (C - 2) - r : p + this.sizableWidth - r : C === o && (u[C] = Math.min(p + this.sizableWidth + m, l) - r); + for (var T = 0; T <= a; T++) + 0 === T ? _[T] = -s : T > 0 && T < a ? _[T] = 1 === T ? g * b + Math.min(A, this.sizableHeight) - s : A > 0 ? T === a - 1 ? g + d + (T - 2) * A - s : g + Math.min(A, this.sizableHeight) + (T - 2) * A - s : g + this.sizableHeight - s : T === a && (_[T] = Math.min(g + this.sizableHeight + v, h) - s); + this.updateWorldVerts(t) + } + , + s.updateWorldVerts = function(t) { + for (var e, i, n, r, s = this._renderData, a = this._local, o = a.x, l = a.y, h = s.vDatas[0], c = this.row, u = this.col, _ = t.node._worldMatrix.m, f = _[0], d = _[1], p = _[4], m = _[5], y = _[12], v = _[13], g = this.floatsPerVert, A = 0, x = 0, b = c; x < b; ++x) { + n = l[x], + r = l[x + 1]; + for (var C = 0, T = u; C < T; ++C) + e = o[C], + i = o[C + 1], + h[A] = e * f + n * p + y, + h[A + 1] = e * d + n * m + v, + h[A += g] = i * f + n * p + y, + h[A + 1] = i * d + n * m + v, + h[A += g] = e * f + r * p + y, + h[A + 1] = e * d + r * m + v, + h[A += g] = i * f + r * p + y, + h[A + 1] = i * d + r * m + v, + A += g + } + } + , + s.updateUVs = function(t) { + var e = this._renderData.vDatas[0]; + if (e) + for (var i = t._spriteFrame, n = i._rect, r = i.insetLeft, s = i.insetRight, a = n.width - r - s, o = i.insetTop, l = i.insetBottom, h = n.height - o - l, c = this.row, u = this.col, _ = this.hRepeat, f = this.vRepeat, d = 0, p = 0, m = t.spriteFrame.uv, y = t.spriteFrame.uvSliced, v = t.spriteFrame._rotated, g = this.floatsPerVert, A = this.uvOffset, x = [], b = [], C = 0, T = c; C < T; ++C) { + p = this.sizableHeight > h ? this.sizableHeight >= C * h ? 1 : f % 1 : f; + for (var S = 0, w = u; S < w; ++S) + d = this.sizableWidth > a ? this.sizableWidth >= S * a ? 1 : _ % 1 : _, + v ? (0 === C ? (x[0] = y[0].u, + x[1] = y[0].u, + x[2] = y[4].u + (y[8].u - y[4].u) * p) : C < c - 1 ? (x[0] = y[4].u, + x[1] = y[4].u, + x[2] = y[4].u + (y[8].u - y[4].u) * p) : C === c - 1 && (x[0] = y[8].u, + x[1] = y[8].u, + x[2] = y[12].u), + 0 === S ? (b[0] = y[0].v, + b[1] = y[1].v + (y[2].v - y[1].v) * d, + b[2] = y[0].v) : S < u - 1 ? (b[0] = y[1].v, + b[1] = y[1].v + (y[2].v - y[1].v) * d, + b[2] = y[1].v) : S === u - 1 && (b[0] = y[2].v, + b[1] = y[3].v, + b[2] = y[2].v), + x[3] = x[2], + b[3] = b[1]) : (0 === S ? (x[0] = y[0].u, + x[1] = y[1].u + (y[2].u - y[1].u) * d, + x[2] = m[0]) : S < u - 1 ? (x[0] = y[1].u, + x[1] = y[1].u + (y[2].u - y[1].u) * d, + x[2] = y[1].u) : S === u - 1 && (x[0] = y[2].u, + x[1] = y[3].u, + x[2] = y[2].u), + 0 === C ? (b[0] = y[0].v, + b[1] = y[0].v, + b[2] = y[4].v + (y[8].v - y[4].v) * p) : C < c - 1 ? (b[0] = y[4].v, + b[1] = y[4].v, + b[2] = y[4].v + (y[8].v - y[4].v) * p) : C === c - 1 && (b[0] = y[8].v, + b[1] = y[8].v, + b[2] = y[12].v), + x[3] = x[1], + b[3] = b[2]), + e[A] = x[0], + e[A + 1] = b[0], + e[A += g] = x[1], + e[A + 1] = b[1], + e[A += g] = x[2], + e[A + 1] = b[2], + e[A += g] = x[3], + e[A + 1] = b[3], + A += g + } + } + , + n + } + )(((n = t("../../../../assembler-2d")) && n.__esModule ? n : { + default: n + }).default); + i.default = s, + e.exports = i.default + } + ), { + "../../../../assembler-2d": 219 + }], + 249: [(function(t) { + "use strict"; + var e = p(t("../../../assembler")) + , i = t("../../../../components/CCSprite") + , n = p(t("./2d/simple")) + , r = p(t("./2d/sliced")) + , s = p(t("./2d/tiled")) + , a = p(t("./2d/radial-filled")) + , o = p(t("./2d/bar-filled")) + , l = p(t("./2d/mesh")) + , h = p(t("./3d/simple")) + , c = p(t("./3d/sliced")) + , u = p(t("./3d/tiled")) + , _ = p(t("./3d/radial-filled")) + , f = p(t("./3d/bar-filled")) + , d = p(t("./3d/mesh")); + function p(t) { + return t && t.__esModule ? t : { + default: t + } + } + var m = { + getConstructor: function(t) { + var e = t.node.is3DNode + , p = e ? h.default : n.default; + switch (t.type) { + case i.Type.SLICED: + p = e ? c.default : r.default; + break; + case i.Type.TILED: + p = e ? u.default : s.default; + break; + case i.Type.FILLED: + p = t._fillType === i.FillType.RADIAL ? e ? _.default : a.default : e ? f.default : o.default; + break; + case i.Type.MESH: + p = e ? d.default : l.default + } + return p + }, + Simple: n.default, + Sliced: r.default, + Tiled: s.default, + RadialFilled: a.default, + BarFilled: o.default, + Mesh: l.default, + Simple3D: h.default, + Sliced3D: c.default, + Tiled3D: u.default, + RadialFilled3D: _.default, + BarFilled3D: f.default, + Mesh3D: d.default + }; + e.default.register(cc.Sprite, m) + } + ), { + "../../../../components/CCSprite": 120, + "../../../assembler": 221, + "./2d/bar-filled": 243, + "./2d/mesh": 244, + "./2d/radial-filled": 245, + "./2d/simple": 246, + "./2d/sliced": 247, + "./2d/tiled": 248, + "./3d/bar-filled": void 0, + "./3d/mesh": void 0, + "./3d/radial-filled": void 0, + "./3d/simple": void 0, + "./3d/sliced": void 0, + "./3d/tiled": void 0 + }], + 250: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = (function() { + function t(t, e, i, n, r) { + this._handler = t, + this._index = e, + this._vfmt = r, + this._verticesBytes = r._bytes, + this._initVerticesCount = i, + this._initIndicesCount = n, + this.reset() + } + var e = t.prototype; + return e._reallocVData = function(t, e) { + this.vData = new Float32Array(t), + this.uintVData = new Uint32Array(this.vData.buffer), + e && this.vData.set(e), + this._handler.updateMesh(this._index, this.vData, this.iData) + } + , + e._reallocIData = function(t, e) { + this.iData = new Uint16Array(t), + e && this.iData.set(e), + this._handler.updateMesh(this._index, this.vData, this.iData) + } + , + e.reserve = function(t, e) { + var i = t * this._verticesBytes >> 2 + , n = this.vData.length + , r = !1; + if (i > n) { + for (; n < i; ) + n *= 2; + this._reallocVData(n, this.vData), + r = !0 + } + var s = this.iData.length; + if (e > s) { + for (; s < e; ) + s *= 2; + this._reallocIData(e, this.iData), + r = !0 + } + return r + } + , + e.used = function(t, e) { + this.usedVertices = t, + this.usedIndices = e, + this.usedVerticesFloats = t * this._verticesBytes >> 2, + this._handler.updateMeshRange(t, e) + } + , + e.reset = function() { + var t = this._initVerticesCount * this._verticesBytes >> 2; + this._reallocVData(t), + this._reallocIData(this._initIndicesCount), + this.usedVertices = 0, + this.usedVerticesFloats = 0, + this.usedIndices = 0 + } + , + t + } + )(); + i.default = n, + cc.FlexBuffer = n, + e.exports = i.default + } + ), {}], + 251: [(function(t, e) { + "use strict"; + var i, n = (i = t("../../../renderer/gfx")) && i.__esModule ? i : { + default: i + }, r = (cc.sys.os === cc.sys.OS_IOS || cc.sys.os === cc.sys.OS_OSX) && cc.sys.isBrowser && /(OS 1[4-9])|(Version\/1[4-9])/.test(window.navigator.userAgent), s = cc.Class({ + name: "cc.MeshBuffer", + ctor: function(t, e) { + this.init(t, e) + }, + init: function(t, e) { + this.byteOffset = 0, + this.indiceOffset = 0, + this.vertexOffset = 0, + this.indiceStart = 0, + this._dirty = !1, + this._vertexFormat = e, + this._vertexBytes = this._vertexFormat._bytes, + this._arrOffset = 0, + this._vbArr = [], + this._vb = new n.default.VertexBuffer(t._device,e,n.default.USAGE_DYNAMIC,new ArrayBuffer,0), + this._vbArr[0] = this._vb, + this._ibArr = [], + this._ib = new n.default.IndexBuffer(t._device,n.default.INDEX_FMT_UINT16,n.default.USAGE_STATIC,new ArrayBuffer,0), + this._ibArr[0] = this._ib, + this._vData = null, + this._uintVData = null, + this._iData = null, + this._batcher = t, + this._initVDataCount = 256 * e._bytes, + this._initIDataCount = 1536, + this._offsetInfo = { + byteOffset: 0, + vertexOffset: 0, + indiceOffset: 0 + }, + this._reallocBuffer() + }, + uploadData: function() { + if (0 !== this.byteOffset && this._dirty) { + var t = new Float32Array(this._vData.buffer,0,this.byteOffset >> 2) + , e = new Uint16Array(this._iData.buffer,0,this.indiceOffset); + this._vb.update(0, t), + this._ib.update(0, e), + this._dirty = !1 + } + }, + switchBuffer: function() { + var t = ++this._arrOffset; + this.byteOffset = 0, + this.vertexOffset = 0, + this.indiceOffset = 0, + this.indiceStart = 0, + t < this._vbArr.length ? (this._vb = this._vbArr[t], + this._ib = this._ibArr[t]) : (this._vb = new n.default.VertexBuffer(this._batcher._device,this._vertexFormat,n.default.USAGE_DYNAMIC,new ArrayBuffer,0), + this._vbArr[t] = this._vb, + this._ib = new n.default.IndexBuffer(this._batcher._device,n.default.INDEX_FMT_UINT16,n.default.USAGE_STATIC,new ArrayBuffer,0), + this._ibArr[t] = this._ib) + }, + checkAndSwitchBuffer: function(t) { + this.vertexOffset + t > 65535 && (this.uploadData(), + this._batcher._flush(), + this.switchBuffer()) + }, + requestStatic: function(t, e) { + this.checkAndSwitchBuffer(t); + var i = this.byteOffset + t * this._vertexBytes + , n = this.indiceOffset + e + , r = this._vData.byteLength + , s = this._iData.length; + if (i > r || n > s) { + for (; r < i || s < n; ) + this._initVDataCount *= 2, + this._initIDataCount *= 2, + r = 4 * this._initVDataCount, + s = this._initIDataCount; + this._reallocBuffer() + } + this._updateOffset(t, e, i) + }, + _updateOffset: function(t, e, i) { + var n = this._offsetInfo; + n.vertexOffset = this.vertexOffset, + this.vertexOffset += t, + n.indiceOffset = this.indiceOffset, + this.indiceOffset += e, + n.byteOffset = this.byteOffset, + this.byteOffset = i, + this._dirty = !0 + }, + request: function(t, e) { + return this._batcher._buffer !== this && (this._batcher._flush(), + this._batcher._buffer = this), + this.requestStatic(t, e), + this._offsetInfo + }, + _reallocBuffer: function() { + this._reallocVData(!0), + this._reallocIData(!0) + }, + _reallocVData: function(t) { + var e; + this._vData && (e = new Uint8Array(this._vData.buffer)), + this._vData = new Float32Array(this._initVDataCount), + this._uintVData = new Uint32Array(this._vData.buffer); + var i = new Uint8Array(this._uintVData.buffer); + if (e && t) + for (var n = 0, r = e.length; n < r; n++) + i[n] = e[n] + }, + _reallocIData: function(t) { + var e = this._iData; + if (this._iData = new Uint16Array(this._initIDataCount), + e && t) + for (var i = this._iData, n = 0, r = e.length; n < r; n++) + i[n] = e[n] + }, + reset: function() { + this._arrOffset = 0, + this._vb = this._vbArr[0], + this._ib = this._ibArr[0], + this.byteOffset = 0, + this.indiceOffset = 0, + this.vertexOffset = 0, + this.indiceStart = 0, + this._dirty = !1 + }, + destroy: function() { + this.reset(); + for (var t = 0; t < this._vbArr.length; t++) + this._vbArr[t].destroy(); + this._vbArr = null; + for (var e = 0; e < this._ibArr.length; e++) + this._ibArr[e].destroy(); + this._ibArr = null, + this._ib = null, + this._vb = null + }, + forwardIndiceStartToOffset: function() { + this.indiceStart = this.indiceOffset + } + }); + r && (s.prototype.checkAndSwitchBuffer = function(t) { + this.vertexOffset + t > 65535 && (this.uploadData(), + this._batcher._flush()) + } + , + s.prototype.forwardIndiceStartToOffset = function() { + this.uploadData(), + this.switchBuffer() + } + ), + cc.MeshBuffer = e.exports = s + } + ), { + "../../../renderer/gfx": 315 + }], + 252: [(function(t, e) { + "use strict"; + var i = s(t("../../../renderer/core/input-assembler")) + , n = s(t("../../../renderer/memop/recycle-pool")) + , r = s(t("../../../renderer/scene/model")); + function s(t) { + return t && t.__esModule ? t : { + default: t + } + } + var a = t("./vertex-format") + , o = a.vfmtPosUvColor + , l = a.vfmt3D + , h = t("./quad-buffer") + , c = t("./mesh-buffer") + , u = t("./spine-buffer") + , _ = t("../../assets/material/CCMaterial") + , f = (new (t("../../platform/id-generater"))("VertextFormat"), + {}) + , d = new _ + , p = new i.default; + p._count = 0; + var m = function(t, e) { + this._renderScene = e, + this._device = t, + this.walking = !1, + this.material = d, + this.cullingMask = 1, + this._iaPool = new n.default(function() { + return new i.default + } + ,16), + this._modelPool = new n.default(function() { + return new r.default + } + ,16), + this._quadBuffer = this.getBuffer("quad", o), + this._meshBuffer = this.getBuffer("mesh", o), + this._quadBuffer3D = this.getBuffer("quad", l), + this._meshBuffer3D = this.getBuffer("mesh", l), + this._buffer = this._meshBuffer, + this._batchedModels = [], + this._dummyNode = new cc.Node, + this._sortKey = 0, + this.node = this._dummyNode, + this.parentOpacity = 1, + this.parentOpacityDirty = 0, + this.worldMatDirty = 0 + }; + m.prototype = { + constructor: m, + reset: function() { + this._iaPool.reset(); + for (var t = this._renderScene, e = this._batchedModels, i = 0; i < e.length; ++i) + e[i].setInputAssembler(null), + e[i].setEffect(null), + t.removeModel(e[i]); + for (var n in this._modelPool.reset(), + e.length = 0, + this._sortKey = 0, + f) + f[n].reset(); + this._buffer = this._meshBuffer, + this.node = this._dummyNode, + this.material = d, + this.cullingMask = 1, + this.parentOpacity = 1, + this.parentOpacityDirty = 0, + this.worldMatDirty = 0 + }, + _flushMaterial: function(t) { + if (t) { + this.material = t; + var e = t.effect; + if (e) { + var i = this._modelPool.add(); + this._batchedModels.push(i), + i.sortKey = this._sortKey++, + i._cullingMask = this.cullingMask, + i.setNode(this.node), + i.setEffect(e, null), + i.setInputAssembler(p), + this._renderScene.addModel(i) + } + } + }, + _flush: function() { + var t = this.material + , e = this._buffer + , i = e.indiceOffset - e.indiceStart; + if (this.walking && t && !(i <= 0)) { + var n = t.effect; + if (n) { + var r = this._iaPool.add(); + r._vertexBuffer = e._vb, + r._indexBuffer = e._ib, + r._start = e.indiceStart, + r._count = i; + var s = this._modelPool.add(); + this._batchedModels.push(s), + s.sortKey = this._sortKey++, + s._cullingMask = this.cullingMask, + s.setNode(this.node), + s.setEffect(n), + s.setInputAssembler(r), + this._renderScene.addModel(s), + e.forwardIndiceStartToOffset() + } + } + }, + _flushIA: function(t) { + if (t) { + var e = this.material.effect; + if (e) { + var i = this._modelPool.add(); + this._batchedModels.push(i), + i.sortKey = this._sortKey++, + i._cullingMask = this.cullingMask, + i.setNode(this.node), + i.setEffect(e), + i.setInputAssembler(t), + this._renderScene.addModel(i) + } + } + }, + terminate: function() { + for (var t in cc.dynamicAtlasManager && cc.dynamicAtlasManager.enabled && cc.dynamicAtlasManager.update(), + this._flush(), + f) + f[t].uploadData(); + this.walking = !1 + }, + getBuffer: function(t, e) { + var i = t + e.getHash() + , n = f[i]; + if (!n) { + if ("mesh" === t) + n = new c(this,e); + else if ("quad" === t) + n = new h(this,e); + else { + if ("spine" !== t) + return cc.error("Not support buffer type [" + t + "]"), + null; + n = new u(this,e) + } + f[i] = n + } + return n + } + }, + e.exports = m + } + ), { + "../../../renderer/core/input-assembler": 305, + "../../../renderer/memop/recycle-pool": 330, + "../../../renderer/scene/model": 336, + "../../assets/material/CCMaterial": 80, + "../../platform/id-generater": 210, + "./mesh-buffer": 251, + "./quad-buffer": 253, + "./spine-buffer": 255, + "./vertex-format": 256 + }], + 253: [(function(t, e) { + "use strict"; + var i = t("./mesh-buffer") + , n = cc.Class({ + name: "cc.QuadBuffer", + extends: i, + _fillQuadBuffer: function() { + for (var t = this._initIDataCount / 6, e = this._iData, i = 0, n = 0; i < t; i++) { + var r = 4 * i; + e[n++] = r, + e[n++] = r + 1, + e[n++] = r + 2, + e[n++] = r + 1, + e[n++] = r + 3, + e[n++] = r + 2 + } + var s = new Uint16Array(this._iData.buffer,0,6 * t); + this._ib.update(0, s) + }, + uploadData: function() { + if (0 !== this.byteOffset && this._dirty) { + var t = new Float32Array(this._vData.buffer,0,this.byteOffset >> 2); + this._vb.update(0, t), + this._dirty = !1 + } + }, + switchBuffer: function() { + this._super(); + var t = new Uint16Array(this._iData.buffer,0,this._initIDataCount); + this._ib.update(0, t) + }, + _reallocBuffer: function() { + this._reallocVData(!0), + this._reallocIData(), + this._fillQuadBuffer() + } + }); + cc.QuadBuffer = e.exports = n + } + ), { + "./mesh-buffer": 251 + }], + 254: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = a; + var n, r = (n = t("./flex-buffer")) && n.__esModule ? n : { + default: n + }, s = t("./vertex-format"); + function a() { + this.vDatas = [], + this.uintVDatas = [], + this.iDatas = [], + this.meshCount = 0, + this._infos = null, + this._flexBuffer = null + } + cc.js.mixin(a.prototype, { + init: function() {}, + clear: function() { + this.vDatas.length = 0, + this.iDatas.length = 0, + this.uintVDatas.length = 0, + this.meshCount = 0, + this._infos = null, + this._flexBuffer && this._flexBuffer.reset() + }, + updateMesh: function(t, e, i) { + this.vDatas[t] = e, + this.uintVDatas[t] = new Uint32Array(e.buffer,0,e.length), + this.iDatas[t] = i, + this.meshCount = this.vDatas.length + }, + updateMeshRange: function() {}, + createData: function(t, e, i) { + var n = new Float32Array(e) + , r = new Uint16Array(i); + this.updateMesh(t, n, r) + }, + createQuadData: function(t, e, i) { + this.createData(t, e, i), + this.initQuadIndices(this.iDatas[t]) + }, + createFlexData: function(t, e, i, n) { + n = n || s.vfmtPosUvColor, + this._flexBuffer = new r.default(this,t,e,i,n) + }, + initQuadIndices: function(t) { + for (var e = t.length / 6, i = 0, n = 0; i < e; i++) { + var r = 4 * i; + t[n++] = r, + t[n++] = r + 1, + t[n++] = r + 2, + t[n++] = r + 1, + t[n++] = r + 3, + t[n++] = r + 2 + } + } + }), + cc.RenderData = a, + e.exports = i.default + } + ), { + "./flex-buffer": 250, + "./vertex-format": 256 + }], + 255: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.SpineBuffer", + extends: t("./mesh-buffer"), + requestStatic: function(t, e) { + this.checkAndSwitchBuffer(t); + var i = this.byteOffset + t * this._vertexBytes + , n = this.indiceOffset + e + , r = this._vData.byteLength + , s = this._iData.length; + if (i > r || n > s) { + for (; r < i || s < n; ) + this._initVDataCount *= 2, + this._initIDataCount *= 2, + r = 4 * this._initVDataCount, + s = this._initIDataCount; + this._reallocBuffer() + } + var a = this._offsetInfo; + a.vertexOffset = this.vertexOffset, + a.indiceOffset = this.indiceOffset, + a.byteOffset = this.byteOffset + }, + adjust: function(t, e) { + this.vertexOffset += t, + this.indiceOffset += e, + this.byteOffset = this.byteOffset + t * this._vertexBytes, + this._dirty = !0 + } + }); + cc.SpineBuffer = e.exports = i + } + ), { + "./mesh-buffer": 251 + }], + 256: [(function(t, e) { + "use strict"; + var i, n = (i = t("../../../renderer/gfx")) && i.__esModule ? i : { + default: i + }, r = new n.default.VertexFormat([{ + name: n.default.ATTR_POSITION, + type: n.default.ATTR_TYPE_FLOAT32, + num: 3 + }, { + name: n.default.ATTR_UV0, + type: n.default.ATTR_TYPE_FLOAT32, + num: 2 + }, { + name: n.default.ATTR_COLOR, + type: n.default.ATTR_TYPE_UINT8, + num: 4, + normalize: !0 + }]); + r.name = "vfmt3D", + n.default.VertexFormat.XYZ_UV_Color = r; + var s = new n.default.VertexFormat([{ + name: n.default.ATTR_POSITION, + type: n.default.ATTR_TYPE_FLOAT32, + num: 2 + }, { + name: n.default.ATTR_UV0, + type: n.default.ATTR_TYPE_FLOAT32, + num: 2 + }, { + name: n.default.ATTR_COLOR, + type: n.default.ATTR_TYPE_UINT8, + num: 4, + normalize: !0 + }]); + s.name = "vfmtPosUvColor", + n.default.VertexFormat.XY_UV_Color = s; + var a = new n.default.VertexFormat([{ + name: n.default.ATTR_POSITION, + type: n.default.ATTR_TYPE_FLOAT32, + num: 2 + }, { + name: n.default.ATTR_UV0, + type: n.default.ATTR_TYPE_FLOAT32, + num: 2 + }, { + name: n.default.ATTR_COLOR, + type: n.default.ATTR_TYPE_UINT8, + num: 4, + normalize: !0 + }, { + name: n.default.ATTR_COLOR0, + type: n.default.ATTR_TYPE_UINT8, + num: 4, + normalize: !0 + }]); + a.name = "vfmtPosUvTwoColor", + n.default.VertexFormat.XY_UV_Two_Color = a; + var o = new n.default.VertexFormat([{ + name: n.default.ATTR_POSITION, + type: n.default.ATTR_TYPE_FLOAT32, + num: 2 + }, { + name: n.default.ATTR_UV0, + type: n.default.ATTR_TYPE_FLOAT32, + num: 2 + }]); + o.name = "vfmtPosUv", + n.default.VertexFormat.XY_UV = o; + var l = new n.default.VertexFormat([{ + name: n.default.ATTR_POSITION, + type: n.default.ATTR_TYPE_FLOAT32, + num: 2 + }, { + name: n.default.ATTR_COLOR, + type: n.default.ATTR_TYPE_UINT8, + num: 4, + normalize: !0 + }]); + l.name = "vfmtPosColor", + n.default.VertexFormat.XY_Color = l; + var h = new n.default.VertexFormat([{ + name: n.default.ATTR_POSITION, + type: n.default.ATTR_TYPE_FLOAT32, + num: 2 + }]); + h.name = "vfmtPos", + n.default.VertexFormat.XY = h, + e.exports = { + vfmt3D: r, + vfmtPosUvColor: s, + vfmtPosUvTwoColor: a, + vfmtPosUv: o, + vfmtPosColor: l, + vfmtPos: h + } + } + ), { + "../../../renderer/gfx": 315 + }], + 257: [(function(t, e) { + "use strict"; + t("../platform/CCSys"); + var i = /(\.[^\.\/\?\\]*)(\?.*)?$/ + , n = /((.*)(\/|\\|\\\\))?(.*?\..*$)?/ + , r = /[^\.\/]+\/\.\.\//; + cc.path = { + join: function() { + for (var t = arguments.length, e = "", i = 0; i < t; i++) + e = (e + ("" === e ? "" : "/") + arguments[i]).replace(/(\/|\\\\)$/, ""); + return e + }, + extname: function(t) { + var e = i.exec(t); + return e ? e[1] : "" + }, + mainFileName: function(t) { + if (t) { + var e = t.lastIndexOf("."); + if (-1 !== e) + return t.substring(0, e) + } + return t + }, + basename: function(t, e) { + var i = t.indexOf("?"); + i > 0 && (t = t.substring(0, i)); + var n = /(\/|\\)([^\/\\]+)$/g.exec(t.replace(/(\/|\\)$/, "")); + if (!n) + return t; + var r = n[2]; + return e && t.substring(t.length - e.length).toLowerCase() === e.toLowerCase() ? r.substring(0, r.length - e.length) : r + }, + dirname: function(t) { + var e = n.exec(t); + return e ? e[2] : "" + }, + changeExtname: function(t, e) { + e = e || ""; + var i = t.indexOf("?") + , n = ""; + return i > 0 && (n = t.substring(i), + t = t.substring(0, i)), + (i = t.lastIndexOf(".")) < 0 ? t + e + n : t.substring(0, i) + e + n + }, + changeBasename: function(t, e, i) { + if (0 === e.indexOf(".")) + return this.changeExtname(t, e); + var n = t.indexOf("?") + , r = "" + , s = i ? this.extname(t) : ""; + return n > 0 && (r = t.substring(n), + t = t.substring(0, n)), + n = (n = t.lastIndexOf("/")) <= 0 ? 0 : n + 1, + t.substring(0, n) + e + s + r + }, + _normalize: function(t) { + var e = t = String(t); + do { + e = t, + t = t.replace(r, "") + } while (e.length !== t.length);return t + }, + sep: cc.sys.os === cc.sys.OS_WINDOWS ? "\\" : "/", + stripSep: function(t) { + return t.replace(/[\/\\]$/, "") + } + }, + e.exports = cc.path + } + ), { + "../platform/CCSys": 202 + }], + 258: [(function(t, e) { + "use strict"; + var i = function(t, e, i, n, r, s) { + this.a = t, + this.b = e, + this.c = i, + this.d = n, + this.tx = r, + this.ty = s + }; + i.create = function(t, e, i, n, r, s) { + return { + a: t, + b: e, + c: i, + d: n, + tx: r, + ty: s + } + } + , + i.identity = function() { + return { + a: 1, + b: 0, + c: 0, + d: 1, + tx: 0, + ty: 0 + } + } + , + i.clone = function(t) { + return { + a: t.a, + b: t.b, + c: t.c, + d: t.d, + tx: t.tx, + ty: t.ty + } + } + , + i.concat = function(t, e, i) { + var n = e.a + , r = e.b + , s = e.c + , a = e.d + , o = e.tx + , l = e.ty; + return t.a = n * i.a + r * i.c, + t.b = n * i.b + r * i.d, + t.c = s * i.a + a * i.c, + t.d = s * i.b + a * i.d, + t.tx = o * i.a + l * i.c + i.tx, + t.ty = o * i.b + l * i.d + i.ty, + t + } + , + i.invert = function(t, e) { + var i = e.a + , n = e.b + , r = e.c + , s = e.d + , a = 1 / (i * s - n * r) + , o = e.tx + , l = e.ty; + return t.a = a * s, + t.b = -a * n, + t.c = -a * r, + t.d = a * i, + t.tx = a * (r * l - s * o), + t.ty = a * (n * o - i * l), + t + } + , + i.fromMat4 = function(t, e) { + var i = e.m; + return t.a = i[0], + t.b = i[1], + t.c = i[4], + t.d = i[5], + t.tx = i[12], + t.ty = i[13], + t + } + , + i.transformVec2 = function(t, e, i, n) { + var r, s; + return void 0 === n ? (n = i, + r = e.x, + s = e.y) : (r = e, + s = i), + t.x = n.a * r + n.c * s + n.tx, + t.y = n.b * r + n.d * s + n.ty, + t + } + , + i.transformSize = function(t, e, i) { + return t.width = i.a * e.width + i.c * e.height, + t.height = i.b * e.width + i.d * e.height, + t + } + , + i.transformRect = function(t, e, i) { + var n = e.x + , r = e.y + , s = n + e.width + , a = r + e.height + , o = i.a * n + i.c * r + i.tx + , l = i.b * n + i.d * r + i.ty + , h = i.a * s + i.c * r + i.tx + , c = i.b * s + i.d * r + i.ty + , u = i.a * n + i.c * a + i.tx + , _ = i.b * n + i.d * a + i.ty + , f = i.a * s + i.c * a + i.tx + , d = i.b * s + i.d * a + i.ty + , p = Math.min(o, h, u, f) + , m = Math.max(o, h, u, f) + , y = Math.min(l, c, _, d) + , v = Math.max(l, c, _, d); + return t.x = p, + t.y = y, + t.width = m - p, + t.height = v - y, + t + } + , + i.transformObb = function(t, e, i, n, r, s) { + var a = r.x + , o = r.y + , l = r.width + , h = r.height + , c = s.a * a + s.c * o + s.tx + , u = s.b * a + s.d * o + s.ty + , _ = s.a * l + , f = s.b * l + , d = s.c * h + , p = s.d * h; + e.x = c, + e.y = u, + i.x = _ + c, + i.y = f + u, + t.x = d + c, + t.y = p + u, + n.x = _ + d + c, + n.y = f + p + u + } + , + cc.AffineTransform = e.exports = i + } + ), {}], + 259: [(function(t, e) { + "use strict"; + var i = t("../platform/CCObject").Flags + , n = t("./misc") + , r = t("../platform/js") + , s = t("../platform/id-generater") + , a = t("../event-manager") + , o = t("../renderer/render-flow") + , l = i.Destroying + , h = i.DontDestroy + , c = i.Deactivating + , u = new s("Node"); + function _(t) { + return t ? "string" == typeof t ? r.getClassByName(t) : t : (cc.errorID(3804), + null) + } + function f(t, e) { + if (e._sealed) + for (var i = 0; i < t._components.length; ++i) { + var n = t._components[i]; + if (n.constructor === e) + return n + } + else + for (var r = 0; r < t._components.length; ++r) { + var s = t._components[r]; + if (s instanceof e) + return s + } + return null + } + function d(t, e, i) { + if (e._sealed) + for (var n = 0; n < t._components.length; ++n) { + var r = t._components[n]; + r.constructor === e && i.push(r) + } + else + for (var s = 0; s < t._components.length; ++s) { + var a = t._components[s]; + a instanceof e && i.push(a) + } + } + function p(t, e) { + for (var i = 0; i < t.length; ++i) { + var n = t[i] + , r = f(n, e); + if (r) + return r; + if (n._children.length > 0 && (r = p(n._children, e))) + return r + } + return null + } + function m(t, e, i) { + for (var n = 0; n < t.length; ++n) { + var r = t[n]; + d(r, e, i), + r._children.length > 0 && m(r._children, e, i) + } + } + var y = cc.Class({ + name: "cc._BaseNode", + extends: cc.Object, + properties: { + _parent: null, + _children: [], + _active: !0, + _components: [], + _prefab: null, + _persistNode: { + get: function() { + return (this._objFlags & h) > 0 + }, + set: function(t) { + t ? this._objFlags |= h : this._objFlags &= ~h + } + }, + name: { + get: function() { + return this._name + }, + set: function(t) { + this._name = t + } + }, + uuid: { + get: function() { + return this._id + } + }, + children: { + get: function() { + return this._children + } + }, + childrenCount: { + get: function() { + return this._children.length + } + }, + active: { + get: function() { + return this._active + }, + set: function(t) { + if (t = !!t, + this._active !== t) { + this._active = t; + var e = this._parent; + e && e._activeInHierarchy && cc.director._nodeActivator.activateNode(this, t) + } + } + }, + activeInHierarchy: { + get: function() { + return this._activeInHierarchy + } + } + }, + ctor: function(t) { + this._name = void 0 !== t ? t : "New Node", + this._activeInHierarchy = !1, + this._id = u.getNewId(), + cc.director._scheduler && cc.director._scheduler.enableForTarget(this), + this.__eventTargets = [] + }, + getParent: function() { + return this._parent + }, + setParent: function(t) { + if (this._parent !== t) { + var e = this._parent; + if (this._parent = t || null, + this._onSetParent(t), + t && (a._setDirtyForNode(this), + t._children.push(this), + t.emit && t.emit("child-added", this), + t._renderFlag |= o.FLAG_CHILDREN), + e) { + if (!(e._objFlags & l)) { + var i = e._children.indexOf(this); + e._children.splice(i, 1), + e.emit && e.emit("child-removed", this), + this._onHierarchyChanged(e), + 0 === e._children.length && (e._renderFlag &= ~o.FLAG_CHILDREN) + } + } else + t && this._onHierarchyChanged(null) + } + }, + attr: function(t) { + r.mixin(this, t) + }, + getChildByUuid: function(t) { + if (!t) + return cc.log("Invalid uuid"), + null; + for (var e = this._children, i = 0, n = e.length; i < n; i++) + if (e[i]._id === t) + return e[i]; + return null + }, + getChildByName: function(t) { + if (!t) + return cc.log("Invalid name"), + null; + for (var e = this._children, i = 0, n = e.length; i < n; i++) + if (e[i]._name === t) + return e[i]; + return null + }, + addChild: function(t) { + cc.assertID(t, 1606), + cc.assertID(null === t._parent, 1605), + t.setParent(this) + }, + insertChild: function(t, e) { + t.parent = this, + t.setSiblingIndex(e) + }, + getSiblingIndex: function() { + return this._parent ? this._parent._children.indexOf(this) : 0 + }, + setSiblingIndex: function(t) { + if (this._parent) + if (this._parent._objFlags & c) + cc.errorID(3821); + else { + var e = this._parent._children; + t = -1 !== t ? t : e.length - 1; + var i = e.indexOf(this); + t !== i && (e.splice(i, 1), + t < e.length ? e.splice(t, 0, this) : e.push(this), + this._onSiblingIndexChanged && this._onSiblingIndexChanged(t)) + } + }, + walk: function(t, e) { + var i, n, r, s, a = cc._BaseNode, o = 1, l = a._stacks[a._stackId]; + l || (l = [], + a._stacks.push(l)), + a._stackId++, + l.length = 0, + l[0] = this; + var h = null; + for (s = !1; o; ) + if (n = l[--o]) + if (!s && t ? t(n) : s && e && e(n), + l[o] = null, + s) { + if (h === this._parent) + break; + if (s = !1, + i) + if (i[++r]) + l[o] = i[r], + o++; + else if (h && (l[o] = h, + o++, + s = !0, + h._parent ? (r = (i = h._parent._children).indexOf(h), + h = h._parent) : (h = null, + i = null), + r < 0)) + break + } else + n._children.length > 0 ? (h = n, + i = n._children, + r = 0, + l[o] = i[r], + o++) : (l[o] = n, + o++, + s = !0); + l.length = 0, + a._stackId-- + }, + cleanup: function() {}, + removeFromParent: function(t) { + this._parent && (void 0 === t && (t = !0), + this._parent.removeChild(this, t)) + }, + removeChild: function(t, e) { + this._children.indexOf(t) > -1 && ((e || void 0 === e) && t.cleanup(), + t.parent = null) + }, + removeAllChildren: function(t) { + var e = this._children; + void 0 === t && (t = !0); + for (var i = e.length - 1; i >= 0; i--) { + var n = e[i]; + n && (t && n.cleanup(), + n.parent = null) + } + this._children.length = 0 + }, + isChildOf: function(t) { + var e = this; + do { + if (e === t) + return !0; + e = e._parent + } while (e);return !1 + }, + getComponent: function(t) { + var e = _(t); + return e ? f(this, e) : null + }, + getComponents: function(t) { + var e = _(t) + , i = []; + return e && d(this, e, i), + i + }, + getComponentInChildren: function(t) { + var e = _(t); + return e ? p(this._children, e) : null + }, + getComponentsInChildren: function(t) { + var e = _(t) + , i = []; + return e && (d(this, e, i), + m(this._children, e, i)), + i + }, + _checkMultipleComp: !1, + addComponent: function(t) { + var e; + if ("string" == typeof t) { + if (!(e = r.getClassByName(t))) + return cc.errorID(3807, t), + cc._RFpeek() && cc.errorID(3808, t), + null + } else { + if (!t) + return cc.errorID(3804), + null; + e = t + } + if ("function" != typeof e) + return cc.errorID(3809), + null; + if (!r.isChildClassOf(e, cc.Component)) + return cc.errorID(3810), + null; + var i = e._requireComponent; + if (i && !this.getComponent(i) && !this.addComponent(i)) + return null; + var n = new e; + return n.node = this, + this._components.push(n), + this._activeInHierarchy && cc.director._nodeActivator.activateComp(n), + n + }, + _addComponentAt: !1, + removeComponent: function(t) { + t ? (t instanceof cc.Component || (t = this.getComponent(t)), + t && t.destroy()) : cc.errorID(3813) + }, + _getDependComponent: !1, + _removeComponent: function(t) { + if (t) { + if (!(this._objFlags & l)) { + var e = this._components.indexOf(t); + -1 !== e ? this._components.splice(e, 1) : t.node !== this && cc.errorID(3815) + } + } else + cc.errorID(3814) + }, + destroy: function() { + cc.Object.prototype.destroy.call(this) && (this.active = !1) + }, + destroyAllChildren: function() { + for (var t = this._children, e = 0; e < t.length; ++e) + t[e].destroy() + }, + _onSetParent: function() {}, + _onPostActivated: function() {}, + _onBatchCreated: function() {}, + _onHierarchyChanged: function() { + var t = this._parent; + !this._persistNode || t instanceof cc.Scene || cc.game.removePersistRootNode(this); + var e = this._active && !(!t || !t._activeInHierarchy); + this._activeInHierarchy !== e && cc.director._nodeActivator.activateNode(this, e) + }, + _instantiate: function(t, e) { + return t || (t = cc.instantiate._clone(this, this)), + t._prefab, + t._parent = null, + t._onBatchCreated(e), + t + }, + _registerIfAttached: !1, + _onPreDestroy: function() { + var t, e; + this._objFlags |= l; + var i = this._parent + , n = i && i._objFlags & l + , r = this._children; + for (t = 0, + e = r.length; t < e; ++t) + r[t]._destroyImmediate(); + for (t = 0, + e = this._components.length; t < e; ++t) + this._components[t]._destroyImmediate(); + var s = this.__eventTargets; + for (t = 0, + e = s.length; t < e; ++t) { + var a = s[t]; + a && a.targetOff(this) + } + if (s.length = 0, + this._persistNode && cc.game.removePersistRootNode(this), + !n && i) { + var o = i._children.indexOf(this); + i._children.splice(o, 1), + i.emit && i.emit("child-removed", this) + } + return n + }, + onRestore: !1 + }); + y.idGenerater = u, + y._stacks = [[]], + y._stackId = 0, + y.prototype._onPreDestroyBase = y.prototype._onPreDestroy, + y.prototype._onHierarchyChangedBase = y.prototype._onHierarchyChanged, + n.propertyDefine(y, ["parent", "name", "children", "childrenCount"], {}), + cc._BaseNode = e.exports = y + } + ), { + "../event-manager": 138, + "../platform/CCObject": 199, + "../platform/id-generater": 210, + "../platform/js": 214, + "../renderer/render-flow": 225, + "./misc": 267 + }], + 260: [(function(t, e) { + "use strict"; + e.exports = { + binarySearchEpsilon: function(t, e) { + for (var i = 0, n = t.length - 1, r = n >>> 1; i <= n; r = i + n >>> 1) { + var s = t[r]; + if (s > e + 1e-6) + n = r - 1; + else { + if (!(s < e - 1e-6)) + return r; + i = r + 1 + } + } + return ~i + } + } + } + ), {}], + 261: [(function(t, e) { + "use strict"; + var i = t("../components/CCRenderComponent") + , n = t("../platform/CCMacro").BlendFactor + , r = t("../../renderer/gfx") + , s = cc.Class({ + properties: { + _srcBlendFactor: n.SRC_ALPHA, + _dstBlendFactor: n.ONE_MINUS_SRC_ALPHA, + srcBlendFactor: { + get: function() { + return this._srcBlendFactor + }, + set: function(t) { + this._srcBlendFactor !== t && (this._srcBlendFactor = t, + this._updateBlendFunc(!0), + this._onBlendChanged && this._onBlendChanged()) + }, + animatable: !1, + type: n, + tooltip: !1, + visible: !0 + }, + dstBlendFactor: { + get: function() { + return this._dstBlendFactor + }, + set: function(t) { + this._dstBlendFactor !== t && (this._dstBlendFactor = t, + this._updateBlendFunc(!0)) + }, + animatable: !1, + type: n, + tooltip: !1, + visible: !0 + } + }, + setMaterial: function(t, e) { + var r = i.prototype.setMaterial.call(this, t, e); + return this._srcBlendFactor === n.SRC_ALPHA && this._dstBlendFactor === n.ONE_MINUS_SRC_ALPHA || this._updateMaterialBlendFunc(r), + r + }, + _updateMaterial: function() { + this._updateBlendFunc() + }, + _updateBlendFunc: function(t) { + if (t || this._srcBlendFactor !== n.SRC_ALPHA || this._dstBlendFactor !== n.ONE_MINUS_SRC_ALPHA) + for (var e = this.getMaterials(), i = 0; i < e.length; i++) { + var r = e[i]; + this._updateMaterialBlendFunc(r) + } + }, + _updateMaterialBlendFunc: function(t) { + t.setBlend(!0, r.BLEND_FUNC_ADD, this._srcBlendFactor, this._dstBlendFactor, r.BLEND_FUNC_ADD, this._srcBlendFactor, this._dstBlendFactor) + } + }); + e.exports = cc.BlendFunc = s + } + ), { + "../../renderer/gfx": 315, + "../components/CCRenderComponent": 115, + "../platform/CCMacro": 198 + }], + 262: [(function(t, e) { + "use strict"; + var i = t("./misc").BASE64_VALUES + , n = "0123456789abcdef".split("") + , r = ["", "", "", ""] + , s = r.concat(r, "-", r, "-", r, "-", r, "-", r, r, r) + , a = s.map((function(t, e) { + return "-" === t ? NaN : e + } + )).filter(isFinite); + e.exports = function(t) { + if (22 !== t.length) + return t; + s[0] = t[0], + s[1] = t[1]; + for (var e = 2, r = 2; e < 22; e += 2) { + var o = i[t.charCodeAt(e)] + , l = i[t.charCodeAt(e + 1)]; + s[a[r++]] = n[o >> 2], + s[a[r++]] = n[(3 & o) << 2 | l >> 4], + s[a[r++]] = n[15 & l] + } + return s.join("") + } + } + ), { + "./misc": 267 + }], + 263: [(function(t, e) { + "use strict"; + cc.find = e.exports = function(t, e) { + if (null == t) + return cc.errorID(3814), + null; + if (e) + ; + else { + var i = cc.director.getScene(); + if (!i) + return null; + e = i + } + for (var n = e, r = "/" !== t[0] ? 0 : 1, s = t.split("/"), a = r; a < s.length; a++) { + var o = s[a] + , l = n._children; + n = null; + for (var h = 0, c = l.length; h < c; ++h) { + var u = l[h]; + if (u.name === o) { + n = u; + break + } + } + if (!n) + return null + } + return n + } + } + ), {}], + 264: [(function(t, e) { + "use strict"; + var i, n = (i = t("../assets/material/material-variant")) && i.__esModule ? i : { + default: i + }, r = t("../assets/material/CCMaterial"), s = cc.Class({ + properties: { + _normalMaterial: null, + normalMaterial: { + get: function() { + return this._normalMaterial + }, + set: function(t) { + this._normalMaterial = t, + this._updateDisabledState && this._updateDisabledState() + }, + type: r, + tooltip: !1, + animatable: !1 + }, + _grayMaterial: null, + grayMaterial: { + get: function() { + return this._grayMaterial + }, + set: function(t) { + this._grayMaterial = t, + this._updateDisabledState && this._updateDisabledState() + }, + type: r, + tooltip: !1, + animatable: !1 + } + }, + _switchGrayMaterial: function(t, e) { + var i; + t ? ((i = this._grayMaterial) || (i = r.getBuiltinMaterial("2d-gray-sprite")), + i = this._grayMaterial = n.default.create(i, e)) : ((i = this._normalMaterial) || (i = r.getBuiltinMaterial("2d-sprite", e)), + i = this._normalMaterial = n.default.create(i, e)), + e.setMaterial(0, i) + } + }); + e.exports = s + } + ), { + "../assets/material/CCMaterial": 80, + "../assets/material/material-variant": 87 + }], + 265: [(function(t, e) { + "use strict"; + var i = /^(click)(\s)*=|(param)(\s)*=/ + , n = /(\s)*src(\s)*=|(\s)*height(\s)*=|(\s)*width(\s)*=|(\s)*align(\s)*=|(\s)*offset(\s)*=|(\s)*click(\s)*=|(\s)*param(\s)*=/ + , r = function() { + this._parsedObject = {}, + this._specialSymbolArray = [], + this._specialSymbolArray.push([/</g, "<"]), + this._specialSymbolArray.push([/>/g, ">"]), + this._specialSymbolArray.push([/&/g, "&"]), + this._specialSymbolArray.push([/"/g, '"']), + this._specialSymbolArray.push([/'/g, "'"]), + this._specialSymbolArray.push([/ /g, " "]) + }; + r.prototype = { + constructor: r, + parse: function(t) { + this._resultObjectArray = [], + this._stack = []; + for (var e = 0, i = t.length; e < i; ) { + var n = t.indexOf(">", e) + , r = -1; + if (n >= 0 && (r = t.lastIndexOf("<", n)) < e - 1 && (r = t.indexOf("<", n + 1), + n = t.indexOf(">", r + 1)), + r < 0) + this._stack.pop(), + this._processResult(t.substring(e)), + e = i; + else { + var s = t.substring(e, r) + , a = t.substring(r + 1, n); + "" === a && (s = t.substring(e, n + 1)), + this._processResult(s), + -1 === n ? n = r : "/" === t.charAt(r + 1) ? this._stack.pop() : this._addToStack(a), + e = n + 1 + } + } + return this._resultObjectArray + }, + _attributeToObject: function(t) { + var e, i, r, s, a = {}, o = (t = t.trim()).match(/^(color|size)(\s)*=/); + if (o) { + if (e = o[0], + "" === (t = t.substring(e.length).trim())) + return a; + switch (i = t.indexOf(" "), + e[0]) { + case "c": + a.color = i > -1 ? t.substring(0, i).trim() : t; + break; + case "s": + a.size = parseInt(t) + } + return i > -1 && (s = t.substring(i + 1).trim(), + r = this._processEventHandler(s), + a.event = r), + a + } + if ((o = t.match(/^(br(\s)*\/)/)) && o[0].length > 0 && (e = o[0].trim()).startsWith("br") && "/" === e[e.length - 1]) + return a.isNewLine = !0, + this._resultObjectArray.push({ + text: "", + style: { + newline: !0 + } + }), + a; + if ((o = t.match(/^(img(\s)*src(\s)*=[^>]+\/)/)) && o[0].length > 0 && (e = o[0].trim()).startsWith("img") && "/" === e[e.length - 1]) { + var l; + o = t.match(n); + for (var h = !1; o; ) { + if (e = (t = t.substring(t.indexOf(o[0]))).substr(0, o[0].length), + u = (i = (l = t.substring(e.length).trim()).indexOf(" ")) > -1 ? l.substr(0, i) : l, + e = (e = e.replace(/[^a-zA-Z]/g, "").trim()).toLocaleLowerCase(), + t = l.substring(i).trim(), + u.endsWith("/") && (u = u.slice(0, -1)), + "src" === e) { + switch (u.charCodeAt(0)) { + case 34: + case 39: + h = !0, + u = u.slice(1, -1) + } + a.isImage = !0, + a.src = u + } else if ("height" === e) + a.imageHeight = parseInt(u); + else if ("width" === e) + a.imageWidth = parseInt(u); + else if ("align" === e) { + switch (u.charCodeAt(0)) { + case 34: + case 39: + u = u.slice(1, -1) + } + a.imageAlign = u.toLocaleLowerCase() + } else + "offset" === e ? a.imageOffset = u : "click" === e && (a.event = this._processEventHandler(e + "=" + u)); + a.event && "param" === e && (a.event.param = u.replace(/^\"|\"$/g, "")), + o = t.match(n) + } + return h && a.isImage && this._resultObjectArray.push({ + text: "", + style: a + }), + {} + } + if (o = t.match(/^(outline(\s)*[^>]*)/)) { + var c = { + color: "#ffffff", + width: 1 + }; + if (t = o[0].substring("outline".length).trim()) { + var u, _ = /(\s)*color(\s)*=|(\s)*width(\s)*=|(\s)*click(\s)*=|(\s)*param(\s)*=/; + for (o = t.match(_); o; ) + e = (t = t.substring(t.indexOf(o[0]))).substr(0, o[0].length), + u = (i = (l = t.substring(e.length).trim()).indexOf(" ")) > -1 ? l.substr(0, i) : l, + e = (e = e.replace(/[^a-zA-Z]/g, "").trim()).toLocaleLowerCase(), + t = l.substring(i).trim(), + "click" === e ? a.event = this._processEventHandler(e + "=" + u) : "color" === e ? c.color = u : "width" === e && (c.width = parseInt(u)), + a.event && "param" === e && (a.event.param = u.replace(/^\"|\"$/g, "")), + o = t.match(_) + } + a.outline = c + } + if ((o = t.match(/^(on|u|b|i)(\s)*/)) && o[0].length > 0) { + switch (e = o[0], + t = t.substring(e.length).trim(), + e[0]) { + case "u": + a.underline = !0; + break; + case "i": + a.italic = !0; + break; + case "b": + a.bold = !0 + } + if ("" === t) + return a; + r = this._processEventHandler(t), + a.event = r + } + return a + }, + _processEventHandler: function(t) { + for (var e = 0, n = {}, r = t.match(i), s = !1; r; ) { + var a = r[0] + , o = ""; + if (s = !1, + '"' === (t = t.substring(a.length).trim()).charAt(0)) + (e = t.indexOf('"', 1)) > -1 && (o = t.substring(1, e).trim(), + s = !0), + e++; + else if ("'" === t.charAt(0)) + (e = t.indexOf("'", 1)) > -1 && (o = t.substring(1, e).trim(), + s = !0), + e++; + else { + var l = t.match(/(\S)+/); + e = (o = l ? l[0] : "").length + } + s && (n[a = a.substring(0, a.length - 1).trim()] = o), + r = (t = t.substring(e).trim()).match(i) + } + return n + }, + _addToStack: function(t) { + var e = this._attributeToObject(t); + if (0 === this._stack.length) + this._stack.push(e); + else { + if (e.isNewLine || e.isImage) + return; + var i = this._stack[this._stack.length - 1]; + for (var n in i) + e[n] || (e[n] = i[n]); + this._stack.push(e) + } + }, + _processResult: function(t) { + "" !== t && (t = this._escapeSpecialSymbol(t), + this._stack.length > 0 ? this._resultObjectArray.push({ + text: t, + style: this._stack[this._stack.length - 1] + }) : this._resultObjectArray.push({ + text: t + })) + }, + _escapeSpecialSymbol: function(t) { + for (var e = 0; e < this._specialSymbolArray.length; ++e) { + var i = this._specialSymbolArray[e][0] + , n = this._specialSymbolArray[e][1]; + t = t.replace(i, n) + } + return t + } + }, + e.exports = r + } + ), {}], + 266: [(function(t) { + "use strict"; + t("./CCPath"), + t("./profiler/CCProfiler"), + t("./find"), + t("./mutable-forward-iterator") + } + ), { + "./CCPath": 257, + "./find": 263, + "./mutable-forward-iterator": 268, + "./profiler/CCProfiler": 271 + }], + 267: [(function(t, e) { + "use strict"; + for (var i = t("../platform/js"), n = { + propertyDefine: function(t, e, n) { + function r(t, e, n, r) { + var s = Object.getOwnPropertyDescriptor(t, e); + if (s) + s.get && (t[n] = s.get), + s.set && r && (t[r] = s.set); + else { + var a = t[n]; + i.getset(t, e, a, t[r]) + } + } + for (var s, a = t.prototype, o = 0; o < e.length; o++) { + var l = (s = e[o])[0].toUpperCase() + s.slice(1); + r(a, s, "get" + l, "set" + l) + } + for (s in n) { + var h = n[s]; + r(a, s, h[0], h[1]) + } + }, + NextPOT: function(t) { + return t -= 1, + t |= t >> 1, + t |= t >> 2, + t |= t >> 4, + t |= t >> 8, + 1 + (t |= t >> 16) + }, + BUILTIN_CLASSID_RE: /^(?:cc|dragonBones|sp|ccsg)\..+/ + }, r = new Array(123), s = 0; s < 123; ++s) + r[s] = 64; + for (var a = 0; a < 64; ++a) + r["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charCodeAt(a)] = a; + n.BASE64_VALUES = r, + n.pushToMap = function(t, e, i, n) { + var r = t[e]; + r ? Array.isArray(r) ? n ? (r.push(r[0]), + r[0] = i) : r.push(i) : t[e] = n ? [i, r] : [r, i] : t[e] = i + } + , + n.clampf = function(t, e, i) { + if (e > i) { + var n = e; + e = i, + i = n + } + return t < e ? e : t < i ? t : i + } + , + n.clamp01 = function(t) { + return t < 0 ? 0 : t < 1 ? t : 1 + } + , + n.lerp = function(t, e, i) { + return t + (e - t) * i + } + , + n.degreesToRadians = function(t) { + return t * cc.macro.RAD + } + , + n.radiansToDegrees = function(t) { + return t * cc.macro.DEG + } + , + cc.misc = e.exports = n + } + ), { + "../platform/js": 214 + }], + 268: [(function(t, e) { + "use strict"; + function i(t) { + this.i = 0, + this.array = t + } + var n = i.prototype; + n.remove = function(t) { + var e = this.array.indexOf(t); + e >= 0 && this.removeAt(e) + } + , + n.removeAt = function(t) { + this.array.splice(t, 1), + t <= this.i && --this.i + } + , + n.fastRemove = function(t) { + var e = this.array.indexOf(t); + e >= 0 && this.fastRemoveAt(e) + } + , + n.fastRemoveAt = function(t) { + var e = this.array; + e[t] = e[e.length - 1], + --e.length, + t <= this.i && --this.i + } + , + n.push = function(t) { + this.array.push(t) + } + , + e.exports = i + } + ), {}], + 269: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = (function() { + function t() { + this.enabled = !1, + this.count = 0, + this.maxSize = 1024 + } + var e = t.prototype; + return e.get = function() {} + , + e.put = function() {} + , + e.clear = function() {} + , + t + } + )(); + i.default = n, + cc.pool = {}, + n.register = function(t, e) { + cc.pool[t] = e + } + , + e.exports = i.default + } + ), {}], + 270: [(function(t, e) { + "use strict"; + cc._PrefabInfo = cc.Class({ + name: "cc.PrefabInfo", + properties: { + root: null, + asset: null, + fileId: "", + sync: !1 + } + }), + e.exports = { + syncWithPrefab: function(t) { + var e = t._prefab; + if (!e.asset) + return cc.errorID(3701, t.name), + void (t._prefab = null); + var i = t._objFlags + , n = t._parent + , r = t._id + , s = t._name + , a = t._active + , o = t._eulerAngles.x + , l = t._eulerAngles.y + , h = t._eulerAngles.z + , c = t._localZOrder + , u = t._trs + , _ = u[0] + , f = u[1] + , d = u[2]; + cc.game._isCloning = !0, + e.asset._doInstantiate(t), + cc.game._isCloning = !1, + t._objFlags = i, + t._parent = n, + t._id = r, + t._prefab = e, + t._name = s, + t._active = a, + t._localZOrder = c, + (u = t._trs)[0] = _, + u[1] = f, + u[2] = d, + t._eulerAngles.x = o, + t._eulerAngles.y = l, + t._eulerAngles.z = h + } + } + } + ), {}], + 271: [(function(t, e) { + "use strict"; + var i = t("../../platform/CCMacro") + , n = t("./perf-counter") + , r = !1 + , s = 15 + , a = null + , o = null + , l = null; + function h() { + if (!a) { + a = { + fps: { + desc: "Framerate (FPS)", + below: 30, + average: 500 + }, + draws: { + desc: "Draw Call" + }, + frame: { + desc: "Frame time (ms)", + min: 0, + max: 50, + average: 500 + }, + logic: { + desc: "Game Logic (ms)", + min: 0, + max: 50, + average: 500, + color: "#080" + }, + render: { + desc: "Renderer (ms)", + min: 0, + max: 50, + average: 500, + color: "#f90" + }, + mode: { + desc: cc.game.renderType === cc.game.RENDER_TYPE_WEBGL ? "WebGL" : "Canvas", + min: 1 + } + }; + var t = performance.now(); + for (var e in a) + a[e]._counter = new n(e,a[e],t) + } + } + function c() { + if (!o || !o.isValid) { + (o = new cc.Node("PROFILER-NODE")).x = o.y = 10, + o.groupIndex = cc.Node.BuiltinGroupIndex.DEBUG, + cc.Camera._setupDebugCamera(), + o.zIndex = i.MAX_ZINDEX, + cc.game.addPersistRootNode(o); + var t = new cc.Node("LEFT-PANEL"); + t.anchorX = t.anchorY = 0; + var e = t.addComponent(cc.Label); + e.fontSize = s, + e.lineHeight = s, + t.parent = o; + var n = new cc.Node("RIGHT-PANEL"); + n.anchorX = 1, + n.anchorY = 0, + n.x = 200; + var r = n.addComponent(cc.Label); + r.horizontalAlign = cc.Label.HorizontalAlign.RIGHT, + r.fontSize = s, + r.lineHeight = s, + n.parent = o, + cc.sys.platform !== cc.sys.BAIDU_GAME_SUB && cc.sys.platform !== cc.sys.WECHAT_GAME_SUB && (e.cacheMode = cc.Label.CacheMode.CHAR, + r.cacheMode = cc.Label.CacheMode.CHAR), + l = { + left: e, + right: r + } + } + } + function u() { + c(); + var t = cc.director._lastUpdate; + a.frame._counter.start(t), + a.logic._counter.start(t) + } + function _() { + var t = performance.now(); + cc.director.isPaused() ? a.frame._counter.start(t) : a.logic._counter.end(t), + a.render._counter.start(t) + } + function f() { + var t = performance.now(); + a.render._counter.end(t), + a.draws._counter.value = cc.renderer.drawCalls, + a.frame._counter.end(t), + a.fps._counter.frame(t); + var e = "" + , i = ""; + for (var n in a) { + var r = a[n]; + r._counter.sample(t), + e += r.desc + "\n", + i += r._counter.human() + "\n" + } + l && (l.left.string = e, + l.right.string = i) + } + cc.profiler = e.exports = { + isShowingStats: function() { + return r + }, + hideStats: function() { + r && (o && (o.active = !1), + cc.director.off(cc.Director.EVENT_BEFORE_UPDATE, u), + cc.director.off(cc.Director.EVENT_AFTER_UPDATE, _), + cc.director.off(cc.Director.EVENT_AFTER_DRAW, f), + r = !1) + }, + showStats: function() { + r || (h(), + o && (o.active = !0), + cc.director.on(cc.Director.EVENT_BEFORE_UPDATE, u), + cc.director.on(cc.Director.EVENT_AFTER_UPDATE, _), + cc.director.on(cc.Director.EVENT_AFTER_DRAW, f), + r = !0) + } + } + } + ), { + "../../platform/CCMacro": 198, + "./perf-counter": 273 + }], + 272: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.Counter", + ctor: function(t, e, i) { + this._id = t, + this._opts = e || {}, + this._value = 0, + this._total = 0, + this._averageValue = 0, + this._accumValue = 0, + this._accumSamples = 0, + this._accumStart = i + }, + properties: { + value: { + get: function() { + return this._value + }, + set: function(t) { + this._value = t + } + } + }, + _average: function(t, e) { + if (this._opts.average) { + this._accumValue += t, + ++this._accumSamples; + var i = e; + i - this._accumStart >= this._opts.average && (this._averageValue = this._accumValue / this._accumSamples, + this._accumValue = 0, + this._accumStart = i, + this._accumSamples = 0) + } + }, + sample: function(t) { + this._average(this._value, t) + }, + human: function() { + var t = this._opts.average ? this._averageValue : this._value; + return Math.round(100 * t) / 100 + }, + alarm: function() { + return this._opts.below && this._value < this._opts.below || this._opts.over && this._value > this._opts.over + } + }); + e.exports = i + } + ), {}], + 273: [(function(t, e) { + "use strict"; + var i = t("./counter") + , n = cc.Class({ + name: "cc.PerfCounter", + extends: i, + ctor: function(t, e, i) { + this._time = i + }, + start: function(t) { + this._time = t + }, + end: function(t) { + this._value = t - this._time, + this._average(this._value) + }, + tick: function() { + this.end(), + this.start() + }, + frame: function(t) { + var e = t + , i = e - this._time; + this._total++, + i > (this._opts.average || 1e3) && (this._value = 1e3 * this._total / i, + this._total = 0, + this._time = e, + this._average(this._value)) + } + }); + e.exports = n + } + ), { + "./counter": 272 + }], + 274: [(function(t, e) { + "use strict"; + var i, n = new (((i = t("../platform/js")) && i.__esModule ? i : { + default: i + }).default.Pool)(2); + function r(t) { + this.count = 0, + this.limit = t, + this.datas = {}, + this.head = null, + this.tail = null + } + n.get = function() { + return this._get() || { + key: null, + value: null, + prev: null, + next: null + } + } + , + r.prototype.moveToHead = function(t) { + t.next = this.head, + t.prev = null, + null !== this.head && (this.head.prev = t), + this.head = t, + null === this.tail && (this.tail = t), + this.count++, + this.datas[t.key] = t + } + , + r.prototype.put = function(t, e) { + var i = n.get(); + if (i.key = t, + i.value = e, + this.count >= this.limit) { + var r = this.tail; + delete this.datas[r.key], + this.count--, + this.tail = r.prev, + this.tail.next = null, + r.prev = null, + r.next = null, + n.put(r) + } + this.moveToHead(i) + } + , + r.prototype.remove = function(t) { + null !== t.prev ? t.prev.next = t.next : this.head = t.next, + null !== t.next ? t.next.prev = t.prev : this.tail = t.prev, + delete this.datas[t.key], + this.count-- + } + , + r.prototype.get = function(t) { + var e = this.datas[t]; + return e ? (this.remove(e), + this.moveToHead(e), + e.value) : null + } + , + r.prototype.clear = function() { + this.count = 0, + this.datas = {}, + this.head = null, + this.tail = null + } + , + r.prototype.has = function(t) { + return !!this.datas[t] + } + , + r.prototype.delete = function(t) { + var e = this.datas[t]; + this.remove(e) + } + ; + var s = new r(100) + , a = { + BASELINE_RATIO: .26, + MIDDLE_RATIO: .37, + BASELINE_OFFSET: 0, + label_wordRex: /([a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430-\u044f\u0410-\u042f\u0401\u0451]+|\S)/, + label_symbolRex: /^[!,.:;'}\]%\?>\u3001\u2018\u201c\u300b\uff1f\u3002\uff0c\uff01]/, + label_lastWordRex: /([a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]+|\S)$/, + label_lastEnglish: /[a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]+$/, + label_firstEnglish: /^[a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]/, + highSurrogateRex: /[\uD800-\uDBFF]/, + lowSurrogateRex: /[\uDC00-\uDFFF]/, + label_wrapinspection: !0, + __CHINESE_REG: /^[\u4E00-\u9FFF\u3400-\u4DFF]+$/, + __JAPANESE_REG: /[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]|[\u2605-\u2606]|[\u2190-\u2195]|\u203B/g, + __KOREAN_REG: /^[\u1100-\u11FF]|[\u3130-\u318F]|[\uA960-\uA97F]|[\uAC00-\uD7AF]|[\uD7B0-\uD7FF]+$/, + isUnicodeCJK: function(t) { + return this.__CHINESE_REG.test(t) || this.__JAPANESE_REG.test(t) || this.__KOREAN_REG.test(t) + }, + isUnicodeSpace: function(t) { + return (t = t.charCodeAt(0)) >= 9 && t <= 13 || 32 === t || 133 === t || 160 === t || 5760 === t || t >= 8192 && t <= 8202 || 8232 === t || 8233 === t || 8239 === t || 8287 === t || 12288 === t + }, + safeMeasureText: function(t, e, i) { + var n = (i || t.font) + "\ud83c\udfae" + e + , r = s.get(n); + if (null !== r) + return r; + var a = t.measureText(e) + , o = a && a.width || 0; + return s.put(n, o), + o + }, + _safeSubstring: function(t, e, i) { + var n = e + , r = i + , s = t[e]; + if (this.lowSurrogateRex.test(s) && n--, + void 0 !== i) + if (i - 1 !== e) { + var a = t[i - 1]; + this.highSurrogateRex.test(a) && r-- + } else + this.highSurrogateRex.test(s) && r++; + return t.substring(n, r) + }, + fragmentText: function(t, e, i, n) { + var r = []; + if (0 === t.length || i < 0) + return r.push(""), + r; + for (var s = t; e > i && s.length > 1; ) { + for (var a = s.length * (i / e) | 0, o = this._safeSubstring(s, a), l = e - n(o), h = o, c = 0, u = 0; l > i && u++ < 10; ) + a *= i / l, + a |= 0, + l = e - n(o = this._safeSubstring(s, a)); + for (u = 0; l <= i && u++ < 10; ) { + if (o) { + var _ = this.label_wordRex.exec(o); + c = _ ? _[0].length : 1, + h = o + } + a += c, + l = e - n(o = this._safeSubstring(s, a)) + } + 0 == (a -= c) ? (a = 1, + h = this._safeSubstring(s, 1)) : 1 === a && this.highSurrogateRex.test(s[0]) && (a = 2, + h = this._safeSubstring(s, 2)); + var f, d = this._safeSubstring(s, 0, a); + this.label_wrapinspection && this.label_symbolRex.test(h || o) && (0 == (a -= (f = this.label_lastWordRex.exec(d)) ? f[0].length : 0) && (a = 1), + h = this._safeSubstring(s, a), + d = this._safeSubstring(s, 0, a)), + this.label_firstEnglish.test(h) && (f = this.label_lastEnglish.exec(d)) && d !== f[0] && (a -= f[0].length, + h = this._safeSubstring(s, a), + d = this._safeSubstring(s, 0, a)), + 0 === r.length ? r.push(d) : (d = d.trimLeft()).length > 0 && r.push(d), + e = n(s = h || o) + } + return 0 === r.length ? r.push(s) : (s = s.trimLeft()).length > 0 && r.push(s), + r + } + }; + cc.textUtils = e.exports = a + } + ), { + "../platform/js": 214 + }], + 275: [(function(t, e) { + "use strict"; + var i = t("../assets/CCTexture2D") + , n = { + loadImage: function(t, e, i) { + cc.assertID(t, 3103); + var n = cc.assetManager.assets.get(t); + if (n) + return n.loaded ? (e && e.call(i, null, n), + n) : (n.once("load", (function() { + e && e.call(i, null, n) + } + ), i), + n); + cc.assetManager.loadRemote(t, (function(t, n) { + e && e.call(i, t, n) + } + )) + }, + cacheImage: function(t, e) { + if (t && e) { + var n = new i; + return n.initWithElement(e), + cc.assetManager.assets.add(t, n), + n + } + }, + postLoadTexture: function(t, e) { + t.loaded ? e && e() : t.nativeUrl ? cc.assetManager.postLoadNative(t, e) : e && e() + } + }; + e.exports = n + } + ), { + "../assets/CCTexture2D": 77 + }], + 276: [(function(t, e) { + "use strict"; + var i = t("./node-unit") + , n = t("./node-mem-pool"); + e.exports = { + NodeMemPool: new n(i) + } + } + ), { + "./node-mem-pool": 278, + "./node-unit": 279 + }], + 277: [(function(t, e) { + "use strict"; + var i = function(t) { + this._unitClass = t, + this._pool = [], + this._findOrder = [] + } + , n = i.prototype; + n._initNative = function() { + this._nativeMemPool = new renderer.MemPool + } + , + n._buildUnit = function(t) { + return new this._unitClass(t,this) + } + , + n._destroyUnit = function(t) { + this._pool[t] = null; + for (var e = 0, i = this._findOrder.length; e < i; e++) { + var n = this._findOrder[e]; + if (n && n.unitID == t) { + this._findOrder.splice(e, 1); + break + } + } + } + , + n._findUnitID = function() { + for (var t = 0, e = this._pool; e[t]; ) + t++; + return t + } + , + n.pop = function() { + for (var t = null, e = 0, i = this._findOrder, n = this._pool, r = i.length; e < r; e++) { + var s = i[e]; + if (s && s.hasSpace()) { + t = s; + break + } + } + if (!t) { + var a = this._findUnitID(); + t = this._buildUnit(a), + n[a] = t, + i.push(t), + e = i.length - 1 + } + var o = i[0]; + return o !== t && (i[0] = t, + i[e] = o), + t.pop() + } + , + n.push = function(t) { + var e = this._pool[t.unitID]; + return e.push(t.index), + this._findOrder.length > 1 && e.isAllFree() && this._destroyUnit(t.unitID), + e + } + , + e.exports = i + } + ), {}], + 278: [(function(t, e) { + "use strict"; + var i, n = t("./mem-pool"), r = function(t) { + n.call(this, t) + }; + (i = function() {} + ).prototype = n.prototype; + var s = r.prototype = new i; + s._initNative = function() { + this._nativeMemPool = new renderer.NodeMemPool + } + , + s._destroyUnit = function(t) { + n.prototype._destroyUnit.call(this, t) + } + , + e.exports = r + } + ), { + "./mem-pool": 277 + }], + 279: [(function(t, e) { + "use strict"; + var i, n = t("../../value-types/utils"), r = (Uint32Array, + 10 * n.FLOAT_BYTES), s = 16 * n.FLOAT_BYTES, a = 16 * n.FLOAT_BYTES, o = (Uint32Array, + Uint32Array, + Int32Array, + Uint8Array, + Uint8Array, + Uint32Array, + n.FLOAT_BYTES, + t("./unit-base")), l = function(t, e) { + o.call(this, t, e); + var i = this._contentNum; + this.trsList = new n.FLOAT_ARRAY_TYPE(10 * i), + this.localMatList = new n.FLOAT_ARRAY_TYPE(16 * i), + this.worldMatList = new n.FLOAT_ARRAY_TYPE(16 * i); + for (var l = 0; l < i; l++) { + var h = this._spacesData[l]; + h.trs = new n.FLOAT_ARRAY_TYPE(this.trsList.buffer,l * r,10), + h.localMat = new n.FLOAT_ARRAY_TYPE(this.localMatList.buffer,l * s,16), + h.worldMat = new n.FLOAT_ARRAY_TYPE(this.worldMatList.buffer,l * a,16) + } + }; + (i = function() {} + ).prototype = o.prototype, + l.prototype = new i, + e.exports = l + } + ), { + "../../value-types/utils": 289, + "./unit-base": 280 + }], + 280: [(function(t, e) { + "use strict"; + var i = function(t, e, i) { + i = i || 128, + this.unitID = t, + this._memPool = e, + this._data = new Uint16Array(2), + this._data[0] = 0, + this._data[1] = 0, + this._contentNum = i, + this._signData = new Uint16Array(2 * this._contentNum), + this._spacesData = []; + for (var n = 0; n < i; n++) { + var r = 2 * n; + this._signData[r + 0] = n + 1, + this._signData[r + 1] = 0, + this._spacesData[n] = { + index: n, + unitID: t + } + } + this._signData[2 * (i - 1)] = 65535 + } + , n = i.prototype; + n.hasSpace = function() { + return 65535 !== this._data[0] + } + , + n.isAllFree = function() { + return 0 == this._data[1] + } + , + n.pop = function() { + var t = this._data[0]; + if (65535 === t) + return null; + var e = t + , i = 2 * e + , n = this._spacesData[e]; + return this._signData[i + 1] = 1, + this._data[0] = this._signData[i + 0], + this._data[1]++, + n + } + , + n.push = function(t) { + var e = 2 * t; + this._signData[e + 1] = 0, + this._signData[e + 0] = this._data[0], + this._data[0] = t, + this._data[1]-- + } + , + n.dump = function() { + for (var t = 0, e = this._data[0], i = ""; 65535 != e; ) + t++, + i += e + "->", + e = this._signData[2 * e + 0]; + for (var n = 0, r = "", s = this._contentNum, a = 0; a < s; a++) + 1 == this._signData[2 * a + 1] && (n++, + r += a + "->"); + var o = t + n; + console.log("unitID:", this.unitID, "spaceNum:", t, "calc using num:", n, "store using num:", this._data[1], "calc total num:", o, "actually total num:", this._contentNum), + console.log("free info:", i), + console.log("using info:", r), + n != this._data[1] && cc.error("using num error", "calc using num:", n, "store using num:", this._data[1]), + t + n != this._contentNum && cc.error("total num error", "calc total num:", o, "actually total num:", this._contentNum) + } + , + e.exports = i + } + ), {}], + 281: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = a(t("./value-type")) + , r = a(t("../platform/CCClass")) + , s = a(t("../utils/misc")); + function a(t) { + return t && t.__esModule ? t : { + default: t + } + } + function o(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + function l(t, e) { + return (l = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var h = (function(t) { + var e, i; + function n(e, i, n, r) { + var s; + return void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + void 0 === r && (r = 255), + (s = t.call(this) || this)._val = 0, + "object" == typeof e && (i = e.g, + n = e.b, + r = e.a, + e = e.r), + s._val = (r << 24 >>> 0) + (n << 16) + (i << 8) + (0 | e), + s + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + l(e, i), + n.copy = function(t, e) { + return t.r = e.r, + t.g = e.g, + t.b = e.b, + t.a = e.a, + t + } + , + n.clone = function(t) { + return new n(t.r,t.g,t.b,t.a) + } + , + n.set = function(t, e, i, n, r) { + return void 0 === e && (e = 255), + void 0 === i && (i = 255), + void 0 === n && (n = 255), + void 0 === r && (r = 255), + t.r = e, + t.g = i, + t.b = n, + t.a = r, + t + } + , + n.fromHex = function(t, e) { + var i = (e >> 24) / 255 + , n = (e >> 16 & 255) / 255 + , r = (e >> 8 & 255) / 255 + , s = (255 & e) / 255; + return t.r = i, + t.g = n, + t.b = r, + t.a = s, + t + } + , + n.fromHEX = function(t, e) { + return e = 0 === e.indexOf("#") ? e.substring(1) : e, + t.r = parseInt(e.substr(0, 2), 16) || 0, + t.g = parseInt(e.substr(2, 2), 16) || 0, + t.b = parseInt(e.substr(4, 2), 16) || 0, + t.a = parseInt(e.substr(6, 2), 16) || 255, + t._val = (t.a << 24 >>> 0) + (t.b << 16) + (t.g << 8) + t.r, + t + } + , + n.add = function(t, e, i) { + return t.r = e.r + i.r, + t.g = e.g + i.g, + t.b = e.b + i.b, + t.a = e.a + i.a, + t + } + , + n.subtract = function(t, e, i) { + return t.r = e.r - i.r, + t.g = e.g - i.g, + t.b = e.b - i.b, + t.a = e.a - i.a, + t + } + , + n.multiply = function(t, e, i) { + return t.r = e.r * i.r, + t.g = e.g * i.g, + t.b = e.b * i.b, + t.a = e.a * i.a, + t + } + , + n.divide = function(t, e, i) { + return t.r = e.r / i.r, + t.g = e.g / i.g, + t.b = e.b / i.b, + t.a = e.a / i.a, + t + } + , + n.scale = function(t, e, i) { + return t.r = e.r * i, + t.g = e.g * i, + t.b = e.b * i, + t.a = e.a * i, + t + } + , + n.lerp = function(t, e, i, n) { + var r = e.r + , s = e.g + , a = e.b + , o = e.a; + return t.r = r + n * (i.r - r), + t.g = s + n * (i.g - s), + t.b = a + n * (i.b - a), + t.a = o + n * (i.a - o), + t + } + , + n.toArray = function(t, e, i) { + void 0 === i && (i = 0); + var r = e instanceof n || e.a > 1 ? 1 / 255 : 1; + return t[i + 0] = e.r * r, + t[i + 1] = e.g * r, + t[i + 2] = e.b * r, + t[i + 3] = e.a * r, + t + } + , + n.fromArray = function(t, e, i) { + return void 0 === i && (i = 0), + e.r = 255 * t[i + 0], + e.g = 255 * t[i + 1], + e.b = 255 * t[i + 2], + e.a = 255 * t[i + 3], + e + } + , + n.premultiplyAlpha = function(t, e) { + var i = e.a / 255; + return t.r = e.r * i, + t.g = e.g * i, + t.b = e.b * i, + t._fastSetA(e.a), + t + } + ; + var r, a, h, c = n.prototype; + return c.clone = function() { + var t = new n; + return t._val = this._val, + t + } + , + c.equals = function(t) { + return t && this._val === t._val + } + , + c.lerp = function(t, e, i) { + i = i || new n; + var r = this.r + , s = this.g + , a = this.b + , o = this.a; + return i.r = r + (t.r - r) * e, + i.g = s + (t.g - s) * e, + i.b = a + (t.b - a) * e, + i.a = o + (t.a - o) * e, + i + } + , + c.toString = function() { + return "rgba(" + this.r.toFixed() + ", " + this.g.toFixed() + ", " + this.b.toFixed() + ", " + this.a.toFixed() + ")" + } + , + c.getR = function() { + return 255 & this._val + } + , + c.setR = function(t) { + return t = ~~s.default.clampf(t, 0, 255), + this._val = (4294967040 & this._val | t) >>> 0, + this + } + , + c.getG = function() { + return (65280 & this._val) >> 8 + } + , + c.setG = function(t) { + return t = ~~s.default.clampf(t, 0, 255), + this._val = (4294902015 & this._val | t << 8) >>> 0, + this + } + , + c.getB = function() { + return (16711680 & this._val) >> 16 + } + , + c.setB = function(t) { + return t = ~~s.default.clampf(t, 0, 255), + this._val = (4278255615 & this._val | t << 16) >>> 0, + this + } + , + c.getA = function() { + return (4278190080 & this._val) >>> 24 + } + , + c.setA = function(t) { + return t = ~~s.default.clampf(t, 0, 255), + this._val = (16777215 & this._val | t << 24) >>> 0, + this + } + , + c.toCSS = function(t) { + return t && "rgba" !== t ? "rgb" === t ? "rgb(" + this.r + "," + this.g + "," + this.b + ")" : "#" + this.toHEX(t) : "rgba(" + this.r + "," + this.g + "," + this.b + "," + (this.a / 255).toFixed(2) + ")" + } + , + c.fromHEX = function(t) { + t = 0 === t.indexOf("#") ? t.substring(1) : t; + var e = parseInt(t.substr(0, 2), 16) || 0 + , i = parseInt(t.substr(2, 2), 16) || 0 + , n = parseInt(t.substr(4, 2), 16) || 0 + , r = parseInt(t.substr(6, 2), 16) || 255; + return this._val = (r << 24 >>> 0) + (n << 16) + (i << 8) + e, + this + } + , + c.toHEX = function(t) { + var e = [(this.r < 16 ? "0" : "") + this.r.toString(16), (this.g < 16 ? "0" : "") + this.g.toString(16), (this.b < 16 ? "0" : "") + this.b.toString(16)]; + return "#rgb" === t ? (e[0] = e[0][0], + e[1] = e[1][0], + e[2] = e[2][0]) : "#rrggbbaa" === t && e.push((this.a < 16 ? "0" : "") + this.a.toString(16)), + e.join("") + } + , + c.toRGBValue = function() { + return 16777215 & this._val + } + , + c.fromHSV = function(t, e, i) { + var n, r, s; + if (0 === e) + n = r = s = i; + else if (0 === i) + n = r = s = 0; + else { + 1 === t && (t = 0), + t *= 6; + var a = Math.floor(t) + , o = t - a + , l = i * (1 - e) + , h = i * (1 - e * o) + , c = i * (1 - e * (1 - o)); + switch (a) { + case 0: + n = i, + r = c, + s = l; + break; + case 1: + n = h, + r = i, + s = l; + break; + case 2: + n = l, + r = i, + s = c; + break; + case 3: + n = l, + r = h, + s = i; + break; + case 4: + n = c, + r = l, + s = i; + break; + case 5: + n = i, + r = l, + s = h + } + } + return n *= 255, + r *= 255, + s *= 255, + this._val = (this.a << 24 >>> 0) + (s << 16) + (r << 8) + (0 | n), + this + } + , + c.toHSV = function() { + var t = this.r / 255 + , e = this.g / 255 + , i = this.b / 255 + , n = { + h: 0, + s: 0, + v: 0 + } + , r = Math.max(t, e, i) + , s = Math.min(t, e, i) + , a = 0; + return n.v = r, + n.s = r ? (r - s) / r : 0, + n.s ? (a = r - s, + n.h = t === r ? (e - i) / a : e === r ? 2 + (i - t) / a : 4 + (t - e) / a, + n.h /= 6, + n.h < 0 && (n.h += 1)) : n.h = 0, + n + } + , + c.set = function(t) { + return t._val ? this._val = t._val : (this.r = t.r, + this.g = t.g, + this.b = t.b, + this.a = t.a), + this + } + , + c._fastSetA = function(t) { + this._val = (16777215 & this._val | t << 24) >>> 0 + } + , + c.multiply = function(t) { + var e = (255 & this._val) * t.r >> 8 + , i = (65280 & this._val) * t.g >> 8 + , n = (16711680 & this._val) * t.b >> 8 + , r = ((4278190080 & this._val) >>> 8) * t.a; + return this._val = 4278190080 & r | 16711680 & n | 65280 & i | 255 & e, + this + } + , + r = n, + h = [{ + key: "WHITE", + get: function() { + return new n(255,255,255,255) + } + }, { + key: "BLACK", + get: function() { + return new n(0,0,0,255) + } + }, { + key: "TRANSPARENT", + get: function() { + return new n(0,0,0,0) + } + }, { + key: "GRAY", + get: function() { + return new n(127.5,127.5,127.5) + } + }, { + key: "RED", + get: function() { + return new n(255,0,0) + } + }, { + key: "GREEN", + get: function() { + return new n(0,255,0) + } + }, { + key: "BLUE", + get: function() { + return new n(0,0,255) + } + }, { + key: "YELLOW", + get: function() { + return new n(255,235,4) + } + }, { + key: "ORANGE", + get: function() { + return new n(255,127,0) + } + }, { + key: "CYAN", + get: function() { + return new n(0,255,255) + } + }, { + key: "MAGENTA", + get: function() { + return new n(255,0,255) + } + }], + (a = [{ + key: "r", + get: function() { + return this.getR() + }, + set: function(t) { + this.setR(t) + } + }, { + key: "g", + get: function() { + return this.getG() + }, + set: function(t) { + this.setG(t) + } + }, { + key: "b", + get: function() { + return this.getB() + }, + set: function(t) { + this.setB(t) + } + }, { + key: "a", + get: function() { + return this.getA() + }, + set: function(t) { + this.setA(t) + } + }]) && o(r.prototype, a), + h && o(r, h), + n + } + )(n.default); + i.default = h, + h.div = h.divide, + h.sub = h.subtract, + h.mul = h.multiply, + h.WHITE_R = h.WHITE, + h.BLACK_R = h.BLACK, + h.TRANSPARENT_R = h.TRANSPARENT, + h.GRAY_R = h.GRAY, + h.RED_R = h.RED, + h.GREEN_R = h.GREEN, + h.BLUE_R = h.BLUE, + h.YELLOW_R = h.YELLOW, + h.ORANGE_R = h.ORANGE, + h.CYAN_R = h.CYAN, + h.MAGENTA_R = h.MAGENTA, + r.default.fastDefine("cc.Color", h, { + r: 0, + g: 0, + b: 0, + a: 255 + }), + cc.Color = h, + cc.color = function(t, e, i, n) { + return "string" == typeof t ? (new h).fromHEX(t) : "object" == typeof t ? new h(t.r,t.g,t.b,t.a) : new h(t,e,i,n) + } + , + e.exports = i.default + } + ), { + "../platform/CCClass": 193, + "../utils/misc": 267, + "./value-type": 290 + }], + 282: [(function(t, e, i) { + "use strict"; + i.__esModule = !0; + var n = { + Vec2: !0, + Vec3: !0, + Vec4: !0, + Mat4: !0, + Mat3: !0, + Rect: !0, + Size: !0, + Color: !0, + Quat: !0, + Trs: !0 + }; + i.Trs = i.Quat = i.Color = i.Size = i.Rect = i.Mat3 = i.Mat4 = i.Vec4 = i.Vec3 = i.Vec2 = void 0; + var r = p(t("./vec2")); + i.Vec2 = r.default; + var s = p(t("./vec3")); + i.Vec3 = s.default; + var a = p(t("./vec4")); + i.Vec4 = a.default; + var o = p(t("./mat4")); + i.Mat4 = o.default; + var l = p(t("./mat3")); + i.Mat3 = l.default; + var h = p(t("./rect")); + i.Rect = h.default; + var c = p(t("./size")); + i.Size = c.default; + var u = p(t("./color")); + i.Color = u.default; + var _ = p(t("./quat")); + i.Quat = _.default; + var f = p(t("./trs")); + i.Trs = f.default; + var d = t("./utils"); + function p(t) { + return t && t.__esModule ? t : { + default: t + } + } + Object.keys(d).forEach((function(t) { + "default" !== t && "__esModule" !== t && (Object.prototype.hasOwnProperty.call(n, t) || t in i && i[t] === d[t] || (i[t] = d[t])) + } + )), + cc.math = e.exports + } + ), { + "./color": 281, + "./mat3": 283, + "./mat4": 284, + "./quat": 285, + "./rect": 286, + "./size": 287, + "./trs": 288, + "./utils": 289, + "./vec2": 291, + "./vec3": 292, + "./vec4": 293 + }], + 283: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("../value-types/utils"), s = (n = t("./vec3")) && n.__esModule ? n : { + default: n + }, a = (function() { + function t(t, e, i, n, s, a, o, l, h) { + if (void 0 === t && (t = 1), + void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + void 0 === s && (s = 1), + void 0 === a && (a = 0), + void 0 === o && (o = 0), + void 0 === l && (l = 0), + void 0 === h && (h = 1), + this.m = void 0, + t instanceof r.FLOAT_ARRAY_TYPE) + this.m = t; + else { + this.m = new r.FLOAT_ARRAY_TYPE(9); + var c = this.m; + c[0] = t, + c[1] = e, + c[2] = i, + c[3] = n, + c[4] = s, + c[5] = a, + c[6] = o, + c[7] = l, + c[8] = h + } + } + return t.create = function(e, i, n, r, s, a, o, l, h) { + return void 0 === e && (e = 1), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + void 0 === r && (r = 0), + void 0 === s && (s = 1), + void 0 === a && (a = 0), + void 0 === o && (o = 0), + void 0 === l && (l = 0), + void 0 === h && (h = 1), + new t(e,i,n,r,s,a,o,l,h) + } + , + t.clone = function(e) { + var i = e.m; + return new t(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8]) + } + , + t.copy = function(t, e) { + return t.m.set(e.m), + t + } + , + t.set = function(t, e, i, n, r, s, a, o, l, h) { + var c = t.m; + return c[0] = e, + c[1] = i, + c[2] = n, + c[3] = r, + c[4] = s, + c[5] = a, + c[6] = o, + c[7] = l, + c[8] = h, + t + } + , + t.identity = function(t) { + var e = t.m; + return e[0] = 1, + e[1] = 0, + e[2] = 0, + e[3] = 0, + e[4] = 1, + e[5] = 0, + e[6] = 0, + e[7] = 0, + e[8] = 1, + t + } + , + t.transpose = function(t, e) { + var i = e.m + , n = t.m; + if (t === e) { + var r = i[1] + , s = i[2] + , a = i[5]; + n[1] = i[3], + n[2] = i[6], + n[3] = r, + n[5] = i[7], + n[6] = s, + n[7] = a + } else + n[0] = i[0], + n[1] = i[3], + n[2] = i[6], + n[3] = i[1], + n[4] = i[4], + n[5] = i[7], + n[6] = i[2], + n[7] = i[5], + n[8] = i[8]; + return t + } + , + t.invert = function(t, e) { + var i = e.m + , n = t.m + , r = i[0] + , s = i[1] + , a = i[2] + , o = i[3] + , l = i[4] + , h = i[5] + , c = i[6] + , u = i[7] + , _ = i[8] + , f = _ * l - h * u + , d = -_ * o + h * c + , p = u * o - l * c + , m = r * f + s * d + a * p; + return m ? (m = 1 / m, + n[0] = f * m, + n[1] = (-_ * s + a * u) * m, + n[2] = (h * s - a * l) * m, + n[3] = d * m, + n[4] = (_ * r - a * c) * m, + n[5] = (-h * r + a * o) * m, + n[6] = p * m, + n[7] = (-u * r + s * c) * m, + n[8] = (l * r - s * o) * m, + t) : t + } + , + t.adjoint = function(t, e) { + var i = e.m + , n = t.m + , r = i[0] + , s = i[1] + , a = i[2] + , o = i[3] + , l = i[4] + , h = i[5] + , c = i[6] + , u = i[7] + , _ = i[8]; + return n[0] = l * _ - h * u, + n[1] = a * u - s * _, + n[2] = s * h - a * l, + n[3] = h * c - o * _, + n[4] = r * _ - a * c, + n[5] = a * o - r * h, + n[6] = o * u - l * c, + n[7] = s * c - r * u, + n[8] = r * l - s * o, + t + } + , + t.determinant = function(t) { + var e = t.m + , i = e[0] + , n = e[1] + , r = e[2] + , s = e[3] + , a = e[4] + , o = e[5] + , l = e[6] + , h = e[7] + , c = e[8]; + return i * (c * a - o * h) + n * (-c * s + o * l) + r * (h * s - a * l) + } + , + t.multiply = function(t, e, i) { + var n = e.m + , r = i.m + , s = t.m + , a = n[0] + , o = n[1] + , l = n[2] + , h = n[3] + , c = n[4] + , u = n[5] + , _ = n[6] + , f = n[7] + , d = n[8] + , p = r[0] + , m = r[1] + , y = r[2] + , v = r[3] + , g = r[4] + , A = r[5] + , x = r[6] + , b = r[7] + , C = r[8]; + return s[0] = p * a + m * h + y * _, + s[1] = p * o + m * c + y * f, + s[2] = p * l + m * u + y * d, + s[3] = v * a + g * h + A * _, + s[4] = v * o + g * c + A * f, + s[5] = v * l + g * u + A * d, + s[6] = x * a + b * h + C * _, + s[7] = x * o + b * c + C * f, + s[8] = x * l + b * u + C * d, + t + } + , + t.multiplyMat4 = function(t, e, i) { + var n = e.m + , r = i.m + , s = t.m + , a = n[0] + , o = n[1] + , l = n[2] + , h = n[3] + , c = n[4] + , u = n[5] + , _ = n[6] + , f = n[7] + , d = n[8] + , p = r[0] + , m = r[1] + , y = r[2] + , v = r[4] + , g = r[5] + , A = r[6] + , x = r[8] + , b = r[9] + , C = r[10]; + return s[0] = p * a + m * h + y * _, + s[1] = p * o + m * c + y * f, + s[2] = p * l + m * u + y * d, + s[3] = v * a + g * h + A * _, + s[4] = v * o + g * c + A * f, + s[5] = v * l + g * u + A * d, + s[6] = x * a + b * h + C * _, + s[7] = x * o + b * c + C * f, + s[8] = x * l + b * u + C * d, + t + } + , + t.translate = function(t, e, i) { + var n = e.m + , r = t.m + , s = n[0] + , a = n[1] + , o = n[2] + , l = n[3] + , h = n[4] + , c = n[5] + , u = n[6] + , _ = n[7] + , f = n[8] + , d = i.x + , p = i.y; + return r[0] = s, + r[1] = a, + r[2] = o, + r[3] = l, + r[4] = h, + r[5] = c, + r[6] = d * s + p * l + u, + r[7] = d * a + p * h + _, + r[8] = d * o + p * c + f, + t + } + , + t.rotate = function(t, e, i) { + var n = e.m + , r = t.m + , s = n[0] + , a = n[1] + , o = n[2] + , l = n[3] + , h = n[4] + , c = n[5] + , u = n[6] + , _ = n[7] + , f = n[8] + , d = Math.sin(i) + , p = Math.cos(i); + return r[0] = p * s + d * l, + r[1] = p * a + d * h, + r[2] = p * o + d * c, + r[3] = p * l - d * s, + r[4] = p * h - d * a, + r[5] = p * c - d * o, + r[6] = u, + r[7] = _, + r[8] = f, + t + } + , + t.scale = function(t, e, i) { + var n = i.x + , r = i.y + , s = e.m + , a = t.m; + return a[0] = n * s[0], + a[1] = n * s[1], + a[2] = n * s[2], + a[3] = r * s[3], + a[4] = r * s[4], + a[5] = r * s[5], + a[6] = s[6], + a[7] = s[7], + a[8] = s[8], + t + } + , + t.fromMat4 = function(t, e) { + var i = e.m + , n = t.m; + return n[0] = i[0], + n[1] = i[1], + n[2] = i[2], + n[3] = i[4], + n[4] = i[5], + n[5] = i[6], + n[6] = i[8], + n[7] = i[9], + n[8] = i[10], + t + } + , + t.fromTranslation = function(t, e) { + var i = t.m; + return i[0] = 1, + i[1] = 0, + i[2] = 0, + i[3] = 0, + i[4] = 1, + i[5] = 0, + i[6] = e.x, + i[7] = e.y, + i[8] = 1, + t + } + , + t.fromRotation = function(t, e) { + var i = Math.sin(e) + , n = Math.cos(e) + , r = t.m; + return r[0] = n, + r[1] = i, + r[2] = 0, + r[3] = -i, + r[4] = n, + r[5] = 0, + r[6] = 0, + r[7] = 0, + r[8] = 1, + t + } + , + t.fromScaling = function(t, e) { + var i = t.m; + return i[0] = e.x, + i[1] = 0, + i[2] = 0, + i[3] = 0, + i[4] = e.y, + i[5] = 0, + i[6] = 0, + i[7] = 0, + i[8] = 1, + t + } + , + t.fromQuat = function(t, e) { + var i = t.m + , n = e.x + , r = e.y + , s = e.z + , a = e.w + , o = n + n + , l = r + r + , h = s + s + , c = n * o + , u = r * o + , _ = r * l + , f = s * o + , d = s * l + , p = s * h + , m = a * o + , y = a * l + , v = a * h; + return i[0] = 1 - _ - p, + i[3] = u - v, + i[6] = f + y, + i[1] = u + v, + i[4] = 1 - c - p, + i[7] = d - m, + i[2] = f - y, + i[5] = d + m, + i[8] = 1 - c - _, + t + } + , + t.fromViewUp = function(e, i, n) { + var a, o, l; + return (a = new s.default(0,1,0), + o = new s.default, + l = new s.default, + function(e, i, n) { + return s.default.lengthSqr(i) < r.EPSILON * r.EPSILON ? (t.identity(e), + e) : (n = n || a, + s.default.normalize(o, s.default.cross(o, n, i)), + s.default.lengthSqr(o) < r.EPSILON * r.EPSILON ? (t.identity(e), + e) : (s.default.cross(l, i, o), + t.set(e, o.x, o.y, o.z, l.x, l.y, l.z, i.x, i.y, i.z), + e)) + } + )(e, i, n) + } + , + t.normalFromMat4 = function(t, e) { + var i = e.m + , n = t.m + , r = i[0] + , s = i[1] + , a = i[2] + , o = i[3] + , l = i[4] + , h = i[5] + , c = i[6] + , u = i[7] + , _ = i[8] + , f = i[9] + , d = i[10] + , p = i[11] + , m = i[12] + , y = i[13] + , v = i[14] + , g = i[15] + , A = r * h - s * l + , x = r * c - a * l + , b = r * u - o * l + , C = s * c - a * h + , T = s * u - o * h + , S = a * u - o * c + , w = _ * y - f * m + , E = _ * v - d * m + , M = _ * g - p * m + , D = f * v - d * y + , B = f * g - p * y + , I = d * g - p * v + , P = A * I - x * B + b * D + C * M - T * E + S * w; + return P ? (P = 1 / P, + n[0] = (h * I - c * B + u * D) * P, + n[1] = (c * M - l * I - u * E) * P, + n[2] = (l * B - h * M + u * w) * P, + n[3] = (a * B - s * I - o * D) * P, + n[4] = (r * I - a * M + o * E) * P, + n[5] = (s * M - r * B - o * w) * P, + n[6] = (y * S - v * T + g * C) * P, + n[7] = (v * b - m * S - g * x) * P, + n[8] = (m * T - y * b + g * A) * P, + t) : t + } + , + t.frob = function(t) { + var e = t.m; + return Math.sqrt(Math.pow(e[0], 2) + Math.pow(e[1], 2) + Math.pow(e[2], 2) + Math.pow(e[3], 2) + Math.pow(e[4], 2) + Math.pow(e[5], 2) + Math.pow(e[6], 2) + Math.pow(e[7], 2) + Math.pow(e[8], 2)) + } + , + t.add = function(t, e, i) { + var n = e.m + , r = i.m + , s = t.m; + return s[0] = n[0] + r[0], + s[1] = n[1] + r[1], + s[2] = n[2] + r[2], + s[3] = n[3] + r[3], + s[4] = n[4] + r[4], + s[5] = n[5] + r[5], + s[6] = n[6] + r[6], + s[7] = n[7] + r[7], + s[8] = n[8] + r[8], + t + } + , + t.subtract = function(t, e, i) { + var n = e.m + , r = i.m + , s = t.m; + return s[0] = n[0] - r[0], + s[1] = n[1] - r[1], + s[2] = n[2] - r[2], + s[3] = n[3] - r[3], + s[4] = n[4] - r[4], + s[5] = n[5] - r[5], + s[6] = n[6] - r[6], + s[7] = n[7] - r[7], + s[8] = n[8] - r[8], + t + } + , + t.multiplyScalar = function(t, e, i) { + var n = e.m + , r = t.m; + return r[0] = n[0] * i, + r[1] = n[1] * i, + r[2] = n[2] * i, + r[3] = n[3] * i, + r[4] = n[4] * i, + r[5] = n[5] * i, + r[6] = n[6] * i, + r[7] = n[7] * i, + r[8] = n[8] * i, + t + } + , + t.multiplyScalarAndAdd = function(t, e, i, n) { + var r = e.m + , s = i.m + , a = t.m; + return a[0] = r[0] + s[0] * n, + a[1] = r[1] + s[1] * n, + a[2] = r[2] + s[2] * n, + a[3] = r[3] + s[3] * n, + a[4] = r[4] + s[4] * n, + a[5] = r[5] + s[5] * n, + a[6] = r[6] + s[6] * n, + a[7] = r[7] + s[7] * n, + a[8] = r[8] + s[8] * n, + t + } + , + t.exactEquals = function(t, e) { + var i = t.m + , n = e.m; + return i[0] === n[0] && i[1] === n[1] && i[2] === n[2] && i[3] === n[3] && i[4] === n[4] && i[5] === n[5] && i[6] === n[6] && i[7] === n[7] && i[8] === n[8] + } + , + t.equals = function(t, e) { + var i = t.m + , n = e.m + , s = i[0] + , a = i[1] + , o = i[2] + , l = i[3] + , h = i[4] + , c = i[5] + , u = i[6] + , _ = i[7] + , f = i[8] + , d = n[0] + , p = n[1] + , m = n[2] + , y = n[3] + , v = n[4] + , g = n[5] + , A = n[6] + , x = n[7] + , b = n[8]; + return Math.abs(s - d) <= r.EPSILON * Math.max(1, Math.abs(s), Math.abs(d)) && Math.abs(a - p) <= r.EPSILON * Math.max(1, Math.abs(a), Math.abs(p)) && Math.abs(o - m) <= r.EPSILON * Math.max(1, Math.abs(o), Math.abs(m)) && Math.abs(l - y) <= r.EPSILON * Math.max(1, Math.abs(l), Math.abs(y)) && Math.abs(h - v) <= r.EPSILON * Math.max(1, Math.abs(h), Math.abs(v)) && Math.abs(c - g) <= r.EPSILON * Math.max(1, Math.abs(c), Math.abs(g)) && Math.abs(u - A) <= r.EPSILON * Math.max(1, Math.abs(u), Math.abs(A)) && Math.abs(_ - x) <= r.EPSILON * Math.max(1, Math.abs(_), Math.abs(x)) && Math.abs(f - b) <= r.EPSILON * Math.max(1, Math.abs(f), Math.abs(b)) + } + , + t.toArray = function(t, e, i) { + void 0 === i && (i = 0); + for (var n = e.m, r = 0; r < 9; r++) + t[i + r] = n[r]; + return t + } + , + t.fromArray = function(t, e, i) { + void 0 === i && (i = 0); + for (var n = t.m, r = 0; r < 9; r++) + n[r] = e[i + r]; + return t + } + , + t.prototype.toString = function() { + var t = this.m; + return "mat3(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + t[3] + ", " + t[4] + ", " + t[5] + ", " + t[6] + ", " + t[7] + ", " + t[8] + ")" + } + , + t + } + )(); + i.default = a, + a.sub = a.subtract, + a.mul = a.multiply, + a.IDENTITY = Object.freeze(new a), + cc.Mat3 = a, + e.exports = i.default + } + ), { + "../value-types/utils": 289, + "./vec3": 292 + }], + 284: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = h(t("./value-type")) + , r = h(t("../platform/CCClass")) + , s = h(t("./vec3")) + , a = h(t("./quat")) + , o = t("./utils") + , l = h(t("./mat3")); + function h(t) { + return t && t.__esModule ? t : { + default: t + } + } + function c(t, e) { + return (c = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var u = 0 + , _ = 0 + , f = 0 + , d = 0 + , p = 0 + , m = 0 + , y = 0 + , v = 0 + , g = 0 + , A = 0 + , x = 0 + , b = 0 + , C = 0 + , T = 0 + , S = 0 + , w = 0 + , E = (function(t) { + var e, i; + i = t, + (e = r).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + c(e, i); + var n = r.prototype; + function r(e, i, n, r, s, a, l, h, c, u, _, f, d, p, m, y) { + var v; + if (void 0 === e && (e = 1), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + void 0 === r && (r = 0), + void 0 === s && (s = 0), + void 0 === a && (a = 1), + void 0 === l && (l = 0), + void 0 === h && (h = 0), + void 0 === c && (c = 0), + void 0 === u && (u = 0), + void 0 === _ && (_ = 1), + void 0 === f && (f = 0), + void 0 === d && (d = 0), + void 0 === p && (p = 0), + void 0 === m && (m = 0), + void 0 === y && (y = 1), + (v = t.call(this) || this).m = void 0, + e instanceof o.FLOAT_ARRAY_TYPE) + v.m = e; + else { + v.m = new o.FLOAT_ARRAY_TYPE(16); + var g = v.m; + g[0] = e, + g[1] = i, + g[2] = n, + g[3] = r, + g[4] = s, + g[5] = a, + g[6] = l, + g[7] = h, + g[8] = c, + g[9] = u, + g[10] = _, + g[11] = f, + g[12] = d, + g[13] = p, + g[14] = m, + g[15] = y + } + return v + } + return n.mul = function(t, e) { + return r.multiply(e || new r, this, t) + } + , + n.mulScalar = function(t, e) { + r.multiplyScalar(e || new r, this, t) + } + , + n.sub = function(t, e) { + r.subtract(e || new r, this, t) + } + , + r.clone = function(t) { + var e = t.m; + return new r(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]) + } + , + r.copy = function(t, e) { + var i = t.m + , n = e.m; + return i[0] = n[0], + i[1] = n[1], + i[2] = n[2], + i[3] = n[3], + i[4] = n[4], + i[5] = n[5], + i[6] = n[6], + i[7] = n[7], + i[8] = n[8], + i[9] = n[9], + i[10] = n[10], + i[11] = n[11], + i[12] = n[12], + i[13] = n[13], + i[14] = n[14], + i[15] = n[15], + t + } + , + r.set = function(t, e, i, n, r, s, a, o, l, h, c, u, _, f, d, p, m) { + var y = t.m; + return y[0] = e, + y[1] = i, + y[2] = n, + y[3] = r, + y[4] = s, + y[5] = a, + y[6] = o, + y[7] = l, + y[8] = h, + y[9] = c, + y[10] = u, + y[11] = _, + y[12] = f, + y[13] = d, + y[14] = p, + y[15] = m, + t + } + , + r.identity = function(t) { + var e = t.m; + return e[0] = 1, + e[1] = 0, + e[2] = 0, + e[3] = 0, + e[4] = 0, + e[5] = 1, + e[6] = 0, + e[7] = 0, + e[8] = 0, + e[9] = 0, + e[10] = 1, + e[11] = 0, + e[12] = 0, + e[13] = 0, + e[14] = 0, + e[15] = 1, + t + } + , + r.transpose = function(t, e) { + var i = t.m + , n = e.m; + if (t === e) { + var r = n[1] + , s = n[2] + , a = n[3] + , o = n[6] + , l = n[7] + , h = n[11]; + i[1] = n[4], + i[2] = n[8], + i[3] = n[12], + i[4] = r, + i[6] = n[9], + i[7] = n[13], + i[8] = s, + i[9] = o, + i[11] = n[14], + i[12] = a, + i[13] = l, + i[14] = h + } else + i[0] = n[0], + i[1] = n[4], + i[2] = n[8], + i[3] = n[12], + i[4] = n[1], + i[5] = n[5], + i[6] = n[9], + i[7] = n[13], + i[8] = n[2], + i[9] = n[6], + i[10] = n[10], + i[11] = n[14], + i[12] = n[3], + i[13] = n[7], + i[14] = n[11], + i[15] = n[15]; + return t + } + , + r.invert = function(t, e) { + var i = e.m; + u = i[0], + _ = i[1], + f = i[2], + d = i[3], + p = i[4], + m = i[5], + y = i[6], + v = i[7], + g = i[8], + A = i[9], + x = i[10], + b = i[11], + C = i[12], + T = i[13], + S = i[14], + w = i[15]; + var n = u * m - _ * p + , r = u * y - f * p + , s = u * v - d * p + , a = _ * y - f * m + , o = _ * v - d * m + , l = f * v - d * y + , h = g * T - A * C + , c = g * S - x * C + , E = g * w - b * C + , M = A * S - x * T + , D = A * w - b * T + , B = x * w - b * S + , I = n * B - r * D + s * M + a * E - o * c + l * h; + if (0 === I) + return null; + I = 1 / I; + var P = t.m; + return P[0] = (m * B - y * D + v * M) * I, + P[1] = (f * D - _ * B - d * M) * I, + P[2] = (T * l - S * o + w * a) * I, + P[3] = (x * o - A * l - b * a) * I, + P[4] = (y * E - p * B - v * c) * I, + P[5] = (u * B - f * E + d * c) * I, + P[6] = (S * s - C * l - w * r) * I, + P[7] = (g * l - x * s + b * r) * I, + P[8] = (p * D - m * E + v * h) * I, + P[9] = (_ * E - u * D - d * h) * I, + P[10] = (C * o - T * s + w * n) * I, + P[11] = (A * s - g * o - b * n) * I, + P[12] = (m * c - p * M - y * h) * I, + P[13] = (u * M - _ * c + f * h) * I, + P[14] = (T * r - C * a - S * n) * I, + P[15] = (g * a - A * r + x * n) * I, + t + } + , + r.determinant = function(t) { + var e = t.m; + return u = e[0], + _ = e[1], + f = e[2], + d = e[3], + p = e[4], + m = e[5], + y = e[6], + v = e[7], + g = e[8], + A = e[9], + x = e[10], + b = e[11], + C = e[12], + T = e[13], + S = e[14], + w = e[15], + (u * m - _ * p) * (x * w - b * S) - (u * y - f * p) * (A * w - b * T) + (u * v - d * p) * (A * S - x * T) + (_ * y - f * m) * (g * w - b * C) - (_ * v - d * m) * (g * S - x * C) + (f * v - d * y) * (g * T - A * C) + } + , + r.multiply = function(t, e, i) { + var n = t.m + , r = e.m + , s = i.m; + u = r[0], + _ = r[1], + f = r[2], + d = r[3], + p = r[4], + m = r[5], + y = r[6], + v = r[7], + g = r[8], + A = r[9], + x = r[10], + b = r[11], + C = r[12], + T = r[13], + S = r[14], + w = r[15]; + var a = s[0] + , o = s[1] + , l = s[2] + , h = s[3]; + return n[0] = a * u + o * p + l * g + h * C, + n[1] = a * _ + o * m + l * A + h * T, + n[2] = a * f + o * y + l * x + h * S, + n[3] = a * d + o * v + l * b + h * w, + a = s[4], + o = s[5], + l = s[6], + h = s[7], + n[4] = a * u + o * p + l * g + h * C, + n[5] = a * _ + o * m + l * A + h * T, + n[6] = a * f + o * y + l * x + h * S, + n[7] = a * d + o * v + l * b + h * w, + a = s[8], + o = s[9], + l = s[10], + h = s[11], + n[8] = a * u + o * p + l * g + h * C, + n[9] = a * _ + o * m + l * A + h * T, + n[10] = a * f + o * y + l * x + h * S, + n[11] = a * d + o * v + l * b + h * w, + a = s[12], + o = s[13], + l = s[14], + h = s[15], + n[12] = a * u + o * p + l * g + h * C, + n[13] = a * _ + o * m + l * A + h * T, + n[14] = a * f + o * y + l * x + h * S, + n[15] = a * d + o * v + l * b + h * w, + t + } + , + r.transform = function(t, e, i) { + var n = i.x + , r = i.y + , s = i.z + , a = t.m + , o = e.m; + return e === t ? (a[12] = o[0] * n + o[4] * r + o[8] * s + o[12], + a[13] = o[1] * n + o[5] * r + o[9] * s + o[13], + a[14] = o[2] * n + o[6] * r + o[10] * s + o[14], + a[15] = o[3] * n + o[7] * r + o[11] * s + o[15]) : (u = o[0], + _ = o[1], + f = o[2], + d = o[3], + p = o[4], + m = o[5], + y = o[6], + v = o[7], + g = o[8], + A = o[9], + x = o[10], + b = o[11], + C = o[12], + T = o[13], + S = o[14], + w = o[15], + a[0] = u, + a[1] = _, + a[2] = f, + a[3] = d, + a[4] = p, + a[5] = m, + a[6] = y, + a[7] = v, + a[8] = g, + a[9] = A, + a[10] = x, + a[11] = b, + a[12] = u * n + p * r + g * s + o[12], + a[13] = _ * n + m * r + A * s + o[13], + a[14] = f * n + y * r + x * s + o[14], + a[15] = d * n + v * r + b * s + o[15]), + t + } + , + r.translate = function(t, e, i) { + var n = t.m + , r = e.m; + return e === t ? (n[12] += i.x, + n[13] += i.y, + n[14] += i.z) : (n[0] = r[0], + n[1] = r[1], + n[2] = r[2], + n[3] = r[3], + n[4] = r[4], + n[5] = r[5], + n[6] = r[6], + n[7] = r[7], + n[8] = r[8], + n[9] = r[9], + n[10] = r[10], + n[11] = r[11], + n[12] += i.x, + n[13] += i.y, + n[14] += i.z, + n[15] = r[15]), + t + } + , + r.scale = function(t, e, i) { + var n = i.x + , r = i.y + , s = i.z + , a = t.m + , o = e.m; + return a[0] = o[0] * n, + a[1] = o[1] * n, + a[2] = o[2] * n, + a[3] = o[3] * n, + a[4] = o[4] * r, + a[5] = o[5] * r, + a[6] = o[6] * r, + a[7] = o[7] * r, + a[8] = o[8] * s, + a[9] = o[9] * s, + a[10] = o[10] * s, + a[11] = o[11] * s, + a[12] = o[12], + a[13] = o[13], + a[14] = o[14], + a[15] = o[15], + t + } + , + r.rotate = function(t, e, i, n) { + var r = n.x + , s = n.y + , a = n.z + , l = Math.sqrt(r * r + s * s + a * a); + if (Math.abs(l) < o.EPSILON) + return null; + r *= l = 1 / l, + s *= l, + a *= l; + var h = Math.sin(i) + , c = Math.cos(i) + , C = 1 - c + , T = e.m; + u = T[0], + _ = T[1], + f = T[2], + d = T[3], + p = T[4], + m = T[5], + y = T[6], + v = T[7], + g = T[8], + A = T[9], + x = T[10], + b = T[11]; + var S = r * r * C + c + , w = s * r * C + a * h + , E = a * r * C - s * h + , M = r * s * C - a * h + , D = s * s * C + c + , B = a * s * C + r * h + , I = r * a * C + s * h + , P = s * a * C - r * h + , R = a * a * C + c + , O = t.m; + return O[0] = u * S + p * w + g * E, + O[1] = _ * S + m * w + A * E, + O[2] = f * S + y * w + x * E, + O[3] = d * S + v * w + b * E, + O[4] = u * M + p * D + g * B, + O[5] = _ * M + m * D + A * B, + O[6] = f * M + y * D + x * B, + O[7] = d * M + v * D + b * B, + O[8] = u * I + p * P + g * R, + O[9] = _ * I + m * P + A * R, + O[10] = f * I + y * P + x * R, + O[11] = d * I + v * P + b * R, + e !== t && (O[12] = T[12], + O[13] = T[13], + O[14] = T[14], + O[15] = T[15]), + t + } + , + r.rotateX = function(t, e, i) { + var n = t.m + , r = e.m + , s = Math.sin(i) + , a = Math.cos(i) + , o = r[4] + , l = r[5] + , h = r[6] + , c = r[7] + , u = r[8] + , _ = r[9] + , f = r[10] + , d = r[11]; + return e !== t && (n[0] = r[0], + n[1] = r[1], + n[2] = r[2], + n[3] = r[3], + n[12] = r[12], + n[13] = r[13], + n[14] = r[14], + n[15] = r[15]), + n[4] = o * a + u * s, + n[5] = l * a + _ * s, + n[6] = h * a + f * s, + n[7] = c * a + d * s, + n[8] = u * a - o * s, + n[9] = _ * a - l * s, + n[10] = f * a - h * s, + n[11] = d * a - c * s, + t + } + , + r.rotateY = function(t, e, i) { + var n = t.m + , r = e.m + , s = Math.sin(i) + , a = Math.cos(i) + , o = r[0] + , l = r[1] + , h = r[2] + , c = r[3] + , u = r[8] + , _ = r[9] + , f = r[10] + , d = r[11]; + return e !== t && (n[4] = r[4], + n[5] = r[5], + n[6] = r[6], + n[7] = r[7], + n[12] = r[12], + n[13] = r[13], + n[14] = r[14], + n[15] = r[15]), + n[0] = o * a - u * s, + n[1] = l * a - _ * s, + n[2] = h * a - f * s, + n[3] = c * a - d * s, + n[8] = o * s + u * a, + n[9] = l * s + _ * a, + n[10] = h * s + f * a, + n[11] = c * s + d * a, + t + } + , + r.rotateZ = function(t, e, i) { + var n = e.m + , r = t.m + , s = Math.sin(i) + , a = Math.cos(i) + , o = e.m[0] + , l = e.m[1] + , h = e.m[2] + , c = e.m[3] + , u = e.m[4] + , _ = e.m[5] + , f = e.m[6] + , d = e.m[7]; + return e !== t && (r[8] = n[8], + r[9] = n[9], + r[10] = n[10], + r[11] = n[11], + r[12] = n[12], + r[13] = n[13], + r[14] = n[14], + r[15] = n[15]), + r[0] = o * a + u * s, + r[1] = l * a + _ * s, + r[2] = h * a + f * s, + r[3] = c * a + d * s, + r[4] = u * a - o * s, + r[5] = _ * a - l * s, + r[6] = f * a - h * s, + r[7] = d * a - c * s, + t + } + , + r.fromTranslation = function(t, e) { + var i = t.m; + return i[0] = 1, + i[1] = 0, + i[2] = 0, + i[3] = 0, + i[4] = 0, + i[5] = 1, + i[6] = 0, + i[7] = 0, + i[8] = 0, + i[9] = 0, + i[10] = 1, + i[11] = 0, + i[12] = e.x, + i[13] = e.y, + i[14] = e.z, + i[15] = 1, + t + } + , + r.fromScaling = function(t, e) { + var i = t.m; + return i[0] = e.x, + i[1] = 0, + i[2] = 0, + i[3] = 0, + i[4] = 0, + i[5] = e.y, + i[6] = 0, + i[7] = 0, + i[8] = 0, + i[9] = 0, + i[10] = e.z, + i[11] = 0, + i[12] = 0, + i[13] = 0, + i[14] = 0, + i[15] = 1, + t + } + , + r.fromRotation = function(t, e, i) { + var n = i.x + , r = i.y + , s = i.z + , a = Math.sqrt(n * n + r * r + s * s); + if (Math.abs(a) < o.EPSILON) + return null; + n *= a = 1 / a, + r *= a, + s *= a; + var l = Math.sin(e) + , h = Math.cos(e) + , c = 1 - h + , u = t.m; + return u[0] = n * n * c + h, + u[1] = r * n * c + s * l, + u[2] = s * n * c - r * l, + u[3] = 0, + u[4] = n * r * c - s * l, + u[5] = r * r * c + h, + u[6] = s * r * c + n * l, + u[7] = 0, + u[8] = n * s * c + r * l, + u[9] = r * s * c - n * l, + u[10] = s * s * c + h, + u[11] = 0, + u[12] = 0, + u[13] = 0, + u[14] = 0, + u[15] = 1, + t + } + , + r.fromXRotation = function(t, e) { + var i = Math.sin(e) + , n = Math.cos(e) + , r = t.m; + return r[0] = 1, + r[1] = 0, + r[2] = 0, + r[3] = 0, + r[4] = 0, + r[5] = n, + r[6] = i, + r[7] = 0, + r[8] = 0, + r[9] = -i, + r[10] = n, + r[11] = 0, + r[12] = 0, + r[13] = 0, + r[14] = 0, + r[15] = 1, + t + } + , + r.fromYRotation = function(t, e) { + var i = Math.sin(e) + , n = Math.cos(e) + , r = t.m; + return r[0] = n, + r[1] = 0, + r[2] = -i, + r[3] = 0, + r[4] = 0, + r[5] = 1, + r[6] = 0, + r[7] = 0, + r[8] = i, + r[9] = 0, + r[10] = n, + r[11] = 0, + r[12] = 0, + r[13] = 0, + r[14] = 0, + r[15] = 1, + t + } + , + r.fromZRotation = function(t, e) { + var i = Math.sin(e) + , n = Math.cos(e) + , r = t.m; + return r[0] = n, + r[1] = i, + r[2] = 0, + r[3] = 0, + r[4] = -i, + r[5] = n, + r[6] = 0, + r[7] = 0, + r[8] = 0, + r[9] = 0, + r[10] = 1, + r[11] = 0, + r[12] = 0, + r[13] = 0, + r[14] = 0, + r[15] = 1, + t + } + , + r.fromRT = function(t, e, i) { + var n = e.x + , r = e.y + , s = e.z + , a = e.w + , o = n + n + , l = r + r + , h = s + s + , c = n * o + , u = n * l + , _ = n * h + , f = r * l + , d = r * h + , p = s * h + , m = a * o + , y = a * l + , v = a * h + , g = t.m; + return g[0] = 1 - (f + p), + g[1] = u + v, + g[2] = _ - y, + g[3] = 0, + g[4] = u - v, + g[5] = 1 - (c + p), + g[6] = d + m, + g[7] = 0, + g[8] = _ + y, + g[9] = d - m, + g[10] = 1 - (c + f), + g[11] = 0, + g[12] = i.x, + g[13] = i.y, + g[14] = i.z, + g[15] = 1, + t + } + , + r.getTranslation = function(t, e) { + var i = e.m; + return t.x = i[12], + t.y = i[13], + t.z = i[14], + t + } + , + r.getScaling = function(t, e) { + var i = e.m + , n = D.m + , r = n[0] = i[0] + , s = n[1] = i[1] + , a = n[2] = i[2] + , o = n[3] = i[4] + , h = n[4] = i[5] + , c = n[5] = i[6] + , u = n[6] = i[8] + , _ = n[7] = i[9] + , f = n[8] = i[10]; + return t.x = Math.sqrt(r * r + s * s + a * a), + t.y = Math.sqrt(o * o + h * h + c * c), + t.z = Math.sqrt(u * u + _ * _ + f * f), + l.default.determinant(D) < 0 && (t.x *= -1), + t + } + , + r.getRotation = function(t, e) { + var i = e.m + , n = i[0] + i[5] + i[10] + , r = 0; + return n > 0 ? (r = 2 * Math.sqrt(n + 1), + t.w = .25 * r, + t.x = (i[6] - i[9]) / r, + t.y = (i[8] - i[2]) / r, + t.z = (i[1] - i[4]) / r) : i[0] > i[5] && i[0] > i[10] ? (r = 2 * Math.sqrt(1 + i[0] - i[5] - i[10]), + t.w = (i[6] - i[9]) / r, + t.x = .25 * r, + t.y = (i[1] + i[4]) / r, + t.z = (i[8] + i[2]) / r) : i[5] > i[10] ? (r = 2 * Math.sqrt(1 + i[5] - i[0] - i[10]), + t.w = (i[8] - i[2]) / r, + t.x = (i[1] + i[4]) / r, + t.y = .25 * r, + t.z = (i[6] + i[9]) / r) : (r = 2 * Math.sqrt(1 + i[10] - i[0] - i[5]), + t.w = (i[1] - i[4]) / r, + t.x = (i[8] + i[2]) / r, + t.y = (i[6] + i[9]) / r, + t.z = .25 * r), + t + } + , + r.toRTS = function(t, e, i, n) { + var r = t.m + , o = D.m; + n.x = s.default.set(M, r[0], r[1], r[2]).mag(), + o[0] = r[0] / n.x, + o[1] = r[1] / n.x, + o[2] = r[2] / n.x, + n.y = s.default.set(M, r[4], r[5], r[6]).mag(), + o[3] = r[4] / n.y, + o[4] = r[5] / n.y, + o[5] = r[6] / n.y, + n.z = s.default.set(M, r[8], r[9], r[10]).mag(), + o[6] = r[8] / n.z, + o[7] = r[9] / n.z, + o[8] = r[10] / n.z, + l.default.determinant(D) < 0 && (n.x *= -1, + o[0] *= -1, + o[1] *= -1, + o[2] *= -1), + a.default.fromMat3(e, D), + s.default.set(i, r[12], r[13], r[14]) + } + , + r.fromRTS = function(t, e, i, n) { + var r = e.x + , s = e.y + , a = e.z + , o = e.w + , l = r + r + , h = s + s + , c = a + a + , u = r * l + , _ = r * h + , f = r * c + , d = s * h + , p = s * c + , m = a * c + , y = o * l + , v = o * h + , g = o * c + , A = n.x + , x = n.y + , b = n.z + , C = t.m; + return C[0] = (1 - (d + m)) * A, + C[1] = (_ + g) * A, + C[2] = (f - v) * A, + C[3] = 0, + C[4] = (_ - g) * x, + C[5] = (1 - (u + m)) * x, + C[6] = (p + y) * x, + C[7] = 0, + C[8] = (f + v) * b, + C[9] = (p - y) * b, + C[10] = (1 - (u + d)) * b, + C[11] = 0, + C[12] = i.x, + C[13] = i.y, + C[14] = i.z, + C[15] = 1, + t + } + , + r.fromRTSOrigin = function(t, e, i, n, r) { + var s = e.x + , a = e.y + , o = e.z + , l = e.w + , h = s + s + , c = a + a + , u = o + o + , _ = s * h + , f = s * c + , d = s * u + , p = a * c + , m = a * u + , y = o * u + , v = l * h + , g = l * c + , A = l * u + , x = n.x + , b = n.y + , C = n.z + , T = r.x + , S = r.y + , w = r.z + , E = t.m; + return E[0] = (1 - (p + y)) * x, + E[1] = (f + A) * x, + E[2] = (d - g) * x, + E[3] = 0, + E[4] = (f - A) * b, + E[5] = (1 - (_ + y)) * b, + E[6] = (m + v) * b, + E[7] = 0, + E[8] = (d + g) * C, + E[9] = (m - v) * C, + E[10] = (1 - (_ + p)) * C, + E[11] = 0, + E[12] = i.x + T - (E[0] * T + E[4] * S + E[8] * w), + E[13] = i.y + S - (E[1] * T + E[5] * S + E[9] * w), + E[14] = i.z + w - (E[2] * T + E[6] * S + E[10] * w), + E[15] = 1, + t + } + , + r.fromQuat = function(t, e) { + var i = e.x + , n = e.y + , r = e.z + , s = e.w + , a = i + i + , o = n + n + , l = r + r + , h = i * a + , c = n * a + , u = n * o + , _ = r * a + , f = r * o + , d = r * l + , p = s * a + , m = s * o + , y = s * l + , v = t.m; + return v[0] = 1 - u - d, + v[1] = c + y, + v[2] = _ - m, + v[3] = 0, + v[4] = c - y, + v[5] = 1 - h - d, + v[6] = f + p, + v[7] = 0, + v[8] = _ + m, + v[9] = f - p, + v[10] = 1 - h - u, + v[11] = 0, + v[12] = 0, + v[13] = 0, + v[14] = 0, + v[15] = 1, + t + } + , + r.frustum = function(t, e, i, n, r, s, a) { + var o = 1 / (i - e) + , l = 1 / (r - n) + , h = 1 / (s - a) + , c = t.m; + return c[0] = 2 * s * o, + c[1] = 0, + c[2] = 0, + c[3] = 0, + c[4] = 0, + c[5] = 2 * s * l, + c[6] = 0, + c[7] = 0, + c[8] = (i + e) * o, + c[9] = (r + n) * l, + c[10] = (a + s) * h, + c[11] = -1, + c[12] = 0, + c[13] = 0, + c[14] = a * s * 2 * h, + c[15] = 0, + t + } + , + r.perspective = function(t, e, i, n, r) { + var s = 1 / Math.tan(e / 2) + , a = 1 / (n - r) + , o = t.m; + return o[0] = s / i, + o[1] = 0, + o[2] = 0, + o[3] = 0, + o[4] = 0, + o[5] = s, + o[6] = 0, + o[7] = 0, + o[8] = 0, + o[9] = 0, + o[10] = (r + n) * a, + o[11] = -1, + o[12] = 0, + o[13] = 0, + o[14] = 2 * r * n * a, + o[15] = 0, + t + } + , + r.ortho = function(t, e, i, n, r, s, a) { + var o = 1 / (e - i) + , l = 1 / (n - r) + , h = 1 / (s - a) + , c = t.m; + return c[0] = -2 * o, + c[1] = 0, + c[2] = 0, + c[3] = 0, + c[4] = 0, + c[5] = -2 * l, + c[6] = 0, + c[7] = 0, + c[8] = 0, + c[9] = 0, + c[10] = 2 * h, + c[11] = 0, + c[12] = (e + i) * o, + c[13] = (r + n) * l, + c[14] = (a + s) * h, + c[15] = 1, + t + } + , + r.lookAt = function(t, e, i, n) { + var r = e.x + , s = e.y + , a = e.z + , o = n.x + , l = n.y + , h = n.z + , c = r - i.x + , u = s - i.y + , _ = a - i.z + , f = 1 / Math.sqrt(c * c + u * u + _ * _) + , d = l * (_ *= f) - h * (u *= f) + , p = h * (c *= f) - o * _ + , m = o * u - l * c + , y = u * (m *= f = 1 / Math.sqrt(d * d + p * p + m * m)) - _ * (p *= f) + , v = _ * (d *= f) - c * m + , g = c * p - u * d + , A = t.m; + return A[0] = d, + A[1] = y, + A[2] = c, + A[3] = 0, + A[4] = p, + A[5] = v, + A[6] = u, + A[7] = 0, + A[8] = m, + A[9] = g, + A[10] = _, + A[11] = 0, + A[12] = -(d * r + p * s + m * a), + A[13] = -(y * r + v * s + g * a), + A[14] = -(c * r + u * s + _ * a), + A[15] = 1, + t + } + , + r.inverseTranspose = function(t, e) { + var i = e.m; + u = i[0], + _ = i[1], + f = i[2], + d = i[3], + p = i[4], + m = i[5], + y = i[6], + v = i[7], + g = i[8], + A = i[9], + x = i[10], + b = i[11], + C = i[12], + T = i[13], + S = i[14], + w = i[15]; + var n = u * m - _ * p + , r = u * y - f * p + , s = u * v - d * p + , a = _ * y - f * m + , o = _ * v - d * m + , l = f * v - d * y + , h = g * T - A * C + , c = g * S - x * C + , E = g * w - b * C + , M = A * S - x * T + , D = A * w - b * T + , B = x * w - b * S + , I = n * B - r * D + s * M + a * E - o * c + l * h; + return I ? (I = 1 / I, + (i = t.m)[0] = (m * B - y * D + v * M) * I, + i[1] = (y * E - p * B - v * c) * I, + i[2] = (p * D - m * E + v * h) * I, + i[3] = 0, + i[4] = (f * D - _ * B - d * M) * I, + i[5] = (u * B - f * E + d * c) * I, + i[6] = (_ * E - u * D - d * h) * I, + i[7] = 0, + i[8] = (T * l - S * o + w * a) * I, + i[9] = (S * s - C * l - w * r) * I, + i[10] = (C * o - T * s + w * n) * I, + i[11] = 0, + i[12] = 0, + i[13] = 0, + i[14] = 0, + i[15] = 1, + t) : null + } + , + r.add = function(t, e, i) { + var n = t.m + , r = e.m + , s = i.m; + return n[0] = r[0] + s[0], + n[1] = r[1] + s[1], + n[2] = r[2] + s[2], + n[3] = r[3] + s[3], + n[4] = r[4] + s[4], + n[5] = r[5] + s[5], + n[6] = r[6] + s[6], + n[7] = r[7] + s[7], + n[8] = r[8] + s[8], + n[9] = r[9] + s[9], + n[10] = r[10] + s[10], + n[11] = r[11] + s[11], + n[12] = r[12] + s[12], + n[13] = r[13] + s[13], + n[14] = r[14] + s[14], + n[15] = r[15] + s[15], + t + } + , + r.subtract = function(t, e, i) { + var n = t.m + , r = e.m + , s = i.m; + return n[0] = r[0] - s[0], + n[1] = r[1] - s[1], + n[2] = r[2] - s[2], + n[3] = r[3] - s[3], + n[4] = r[4] - s[4], + n[5] = r[5] - s[5], + n[6] = r[6] - s[6], + n[7] = r[7] - s[7], + n[8] = r[8] - s[8], + n[9] = r[9] - s[9], + n[10] = r[10] - s[10], + n[11] = r[11] - s[11], + n[12] = r[12] - s[12], + n[13] = r[13] - s[13], + n[14] = r[14] - s[14], + n[15] = r[15] - s[15], + t + } + , + r.multiplyScalar = function(t, e, i) { + var n = t.m + , r = e.m; + return n[0] = r[0] * i, + n[1] = r[1] * i, + n[2] = r[2] * i, + n[3] = r[3] * i, + n[4] = r[4] * i, + n[5] = r[5] * i, + n[6] = r[6] * i, + n[7] = r[7] * i, + n[8] = r[8] * i, + n[9] = r[9] * i, + n[10] = r[10] * i, + n[11] = r[11] * i, + n[12] = r[12] * i, + n[13] = r[13] * i, + n[14] = r[14] * i, + n[15] = r[15] * i, + t + } + , + r.multiplyScalarAndAdd = function(t, e, i, n) { + var r = t.m + , s = e.m + , a = i.m; + return r[0] = s[0] + a[0] * n, + r[1] = s[1] + a[1] * n, + r[2] = s[2] + a[2] * n, + r[3] = s[3] + a[3] * n, + r[4] = s[4] + a[4] * n, + r[5] = s[5] + a[5] * n, + r[6] = s[6] + a[6] * n, + r[7] = s[7] + a[7] * n, + r[8] = s[8] + a[8] * n, + r[9] = s[9] + a[9] * n, + r[10] = s[10] + a[10] * n, + r[11] = s[11] + a[11] * n, + r[12] = s[12] + a[12] * n, + r[13] = s[13] + a[13] * n, + r[14] = s[14] + a[14] * n, + r[15] = s[15] + a[15] * n, + t + } + , + r.strictEquals = function(t, e) { + var i = t.m + , n = e.m; + return i[0] === n[0] && i[1] === n[1] && i[2] === n[2] && i[3] === n[3] && i[4] === n[4] && i[5] === n[5] && i[6] === n[6] && i[7] === n[7] && i[8] === n[8] && i[9] === n[9] && i[10] === n[10] && i[11] === n[11] && i[12] === n[12] && i[13] === n[13] && i[14] === n[14] && i[15] === n[15] + } + , + r.equals = function(t, e, i) { + void 0 === i && (i = o.EPSILON); + var n = t.m + , r = e.m; + return Math.abs(n[0] - r[0]) <= i * Math.max(1, Math.abs(n[0]), Math.abs(r[0])) && Math.abs(n[1] - r[1]) <= i * Math.max(1, Math.abs(n[1]), Math.abs(r[1])) && Math.abs(n[2] - r[2]) <= i * Math.max(1, Math.abs(n[2]), Math.abs(r[2])) && Math.abs(n[3] - r[3]) <= i * Math.max(1, Math.abs(n[3]), Math.abs(r[3])) && Math.abs(n[4] - r[4]) <= i * Math.max(1, Math.abs(n[4]), Math.abs(r[4])) && Math.abs(n[5] - r[5]) <= i * Math.max(1, Math.abs(n[5]), Math.abs(r[5])) && Math.abs(n[6] - r[6]) <= i * Math.max(1, Math.abs(n[6]), Math.abs(r[6])) && Math.abs(n[7] - r[7]) <= i * Math.max(1, Math.abs(n[7]), Math.abs(r[7])) && Math.abs(n[8] - r[8]) <= i * Math.max(1, Math.abs(n[8]), Math.abs(r[8])) && Math.abs(n[9] - r[9]) <= i * Math.max(1, Math.abs(n[9]), Math.abs(r[9])) && Math.abs(n[10] - r[10]) <= i * Math.max(1, Math.abs(n[10]), Math.abs(r[10])) && Math.abs(n[11] - r[11]) <= i * Math.max(1, Math.abs(n[11]), Math.abs(r[11])) && Math.abs(n[12] - r[12]) <= i * Math.max(1, Math.abs(n[12]), Math.abs(r[12])) && Math.abs(n[13] - r[13]) <= i * Math.max(1, Math.abs(n[13]), Math.abs(r[13])) && Math.abs(n[14] - r[14]) <= i * Math.max(1, Math.abs(n[14]), Math.abs(r[14])) && Math.abs(n[15] - r[15]) <= i * Math.max(1, Math.abs(n[15]), Math.abs(r[15])) + } + , + r.adjoint = function(t, e) { + var i = e.m + , n = t.m + , r = i[0] + , s = i[1] + , a = i[2] + , o = i[3] + , l = i[4] + , h = i[5] + , c = i[6] + , u = i[7] + , _ = i[8] + , f = i[9] + , d = i[10] + , p = i[11] + , m = i[12] + , y = i[13] + , v = i[14] + , g = i[15]; + return n[0] = h * (d * g - p * v) - f * (c * g - u * v) + y * (c * p - u * d), + n[1] = -(s * (d * g - p * v) - f * (a * g - o * v) + y * (a * p - o * d)), + n[2] = s * (c * g - u * v) - h * (a * g - o * v) + y * (a * u - o * c), + n[3] = -(s * (c * p - u * d) - h * (a * p - o * d) + f * (a * u - o * c)), + n[4] = -(l * (d * g - p * v) - _ * (c * g - u * v) + m * (c * p - u * d)), + n[5] = r * (d * g - p * v) - _ * (a * g - o * v) + m * (a * p - o * d), + n[6] = -(r * (c * g - u * v) - l * (a * g - o * v) + m * (a * u - o * c)), + n[7] = r * (c * p - u * d) - l * (a * p - o * d) + _ * (a * u - o * c), + n[8] = l * (f * g - p * y) - _ * (h * g - u * y) + m * (h * p - u * f), + n[9] = -(r * (f * g - p * y) - _ * (s * g - o * y) + m * (s * p - o * f)), + n[10] = r * (h * g - u * y) - l * (s * g - o * y) + m * (s * u - o * h), + n[11] = -(r * (h * p - u * f) - l * (s * p - o * f) + _ * (s * u - o * h)), + n[12] = -(l * (f * v - d * y) - _ * (h * v - c * y) + m * (h * d - c * f)), + n[13] = r * (f * v - d * y) - _ * (s * v - a * y) + m * (s * d - a * f), + n[14] = -(r * (h * v - c * y) - l * (s * v - a * y) + m * (s * c - a * h)), + n[15] = r * (h * d - c * f) - l * (s * d - a * f) + _ * (s * c - a * h), + t + } + , + r.toArray = function(t, e, i) { + void 0 === i && (i = 0); + for (var n = e.m, r = 0; r < 16; r++) + t[i + r] = n[r]; + return t + } + , + r.fromArray = function(t, e, i) { + void 0 === i && (i = 0); + for (var n = t.m, r = 0; r < 16; r++) + n[r] = e[i + r]; + return t + } + , + n.clone = function() { + var t = this.m; + return new r(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]) + } + , + n.set = function(t) { + var e = this.m + , i = t.m; + return e[0] = i[0], + e[1] = i[1], + e[2] = i[2], + e[3] = i[3], + e[4] = i[4], + e[5] = i[5], + e[6] = i[6], + e[7] = i[7], + e[8] = i[8], + e[9] = i[9], + e[10] = i[10], + e[11] = i[11], + e[12] = i[12], + e[13] = i[13], + e[14] = i[14], + e[15] = i[15], + this + } + , + n.equals = function(t) { + return r.strictEquals(this, t) + } + , + n.fuzzyEquals = function(t) { + return r.equals(this, t) + } + , + n.toString = function() { + var t = this.m; + return t ? "[\n" + t[0] + ", " + t[1] + ", " + t[2] + ", " + t[3] + ",\n" + t[4] + ", " + t[5] + ", " + t[6] + ", " + t[7] + ",\n" + t[8] + ", " + t[9] + ", " + t[10] + ", " + t[11] + ",\n" + t[12] + ", " + t[13] + ", " + t[14] + ", " + t[15] + "\n]" : "[\n1, 0, 0, 0\n0, 1, 0, 0\n0, 0, 1, 0\n0, 0, 0, 1\n]" + } + , + n.identity = function() { + return r.identity(this) + } + , + n.transpose = function(t) { + return t = t || new r, + r.transpose(t, this) + } + , + n.invert = function(t) { + return t = t || new r, + r.invert(t, this) + } + , + n.adjoint = function(t) { + return t = t || new r, + r.adjoint(t, this) + } + , + n.determinant = function() { + return r.determinant(this) + } + , + n.add = function(t, e) { + return e = e || new r, + r.add(e, this, t) + } + , + n.subtract = function(t) { + return r.subtract(this, this, t) + } + , + n.multiply = function(t) { + return r.multiply(this, this, t) + } + , + n.multiplyScalar = function(t) { + return r.multiplyScalar(this, this, t) + } + , + n.translate = function(t, e) { + return e = e || new r, + r.translate(e, this, t) + } + , + n.scale = function(t, e) { + return e = e || new r, + r.scale(e, this, t) + } + , + n.rotate = function(t, e, i) { + return i = i || new r, + r.rotate(i, this, t, e) + } + , + n.getTranslation = function(t) { + return t = t || new s.default, + r.getTranslation(t, this) + } + , + n.getScale = function(t) { + return t = t || new s.default, + r.getScaling(t, this) + } + , + n.getRotation = function(t) { + return t = t || new a.default, + r.getRotation(t, this) + } + , + n.fromRTS = function(t, e, i) { + return r.fromRTS(this, t, e, i) + } + , + n.fromQuat = function(t) { + return r.fromQuat(this, t) + } + , + r + } + )(n.default); + i.default = E, + E.mul = E.multiply, + E.sub = E.subtract, + E.IDENTITY = Object.freeze(new E); + var M = new s.default + , D = new l.default; + r.default.fastDefine("cc.Mat4", E, { + m00: 1, + m01: 0, + m02: 0, + m03: 0, + m04: 0, + m05: 1, + m06: 0, + m07: 0, + m08: 0, + m09: 0, + m10: 1, + m11: 0, + m12: 0, + m13: 0, + m14: 0, + m15: 1 + }); + for (var B = function(t) { + Object.defineProperty(E.prototype, "m" + t, { + get: function() { + return this.m[t] + }, + set: function(e) { + this.m[t] = e + } + }) + }, I = 0; I < 16; I++) + B(I); + cc.mat4 = function(t, e, i, n, r, s, a, o, l, h, c, u, _, f, d, p) { + var m = new E(t,e,i,n,r,s,a,o,l,h,c,u,_,f,d,p); + return void 0 === t && E.identity(m), + m + } + , + cc.Mat4 = E, + e.exports = i.default + } + ), { + "../platform/CCClass": 193, + "./mat3": 283, + "./quat": 285, + "./utils": 289, + "./value-type": 290, + "./vec3": 292 + }], + 285: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = l(t("./value-type")) + , r = l(t("../platform/CCClass")) + , s = l(t("./vec3")) + , a = l(t("./mat3")) + , o = t("./utils"); + function l(t) { + return t && t.__esModule ? t : { + default: t + } + } + function h(t, e) { + return (h = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var c = 0 + , u = 0 + , _ = 0 + , f = 0 + , d = (function(t) { + var e, i; + i = t, + (e = r).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + h(e, i); + var n = r.prototype; + function r(e, i, n, r) { + var s; + return void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + void 0 === r && (r = 1), + (s = t.call(this) || this).x = void 0, + s.y = void 0, + s.z = void 0, + s.w = void 0, + e && "object" == typeof e ? (s.x = e.x, + s.y = e.y, + s.z = e.z, + s.w = e.w) : (s.x = e, + s.y = i, + s.z = n, + s.w = r), + s + } + return n.mul = function(t, e) { + return r.multiply(e || new r, this, t) + } + , + r.clone = function(t) { + return new r(t.x,t.y,t.z,t.w) + } + , + r.copy = function(t, e) { + return t.x = e.x, + t.y = e.y, + t.z = e.z, + t.w = e.w, + t + } + , + r.set = function(t, e, i, n, r) { + return t.x = e, + t.y = i, + t.z = n, + t.w = r, + t + } + , + r.identity = function(t) { + return t.x = 0, + t.y = 0, + t.z = 0, + t.w = 1, + t + } + , + r.rotationTo = function(t, e, i) { + var n = s.default.dot(e, i); + return n < -.999999 ? (s.default.cross(y, s.default.RIGHT, e), + y.mag() < 1e-6 && s.default.cross(y, s.default.UP, e), + s.default.normalize(y, y), + r.fromAxisAngle(t, y, Math.PI), + t) : n > .999999 ? (t.x = 0, + t.y = 0, + t.z = 0, + t.w = 1, + t) : (s.default.cross(y, e, i), + t.x = y.x, + t.y = y.y, + t.z = y.z, + t.w = 1 + n, + r.normalize(t, t)) + } + , + r.getAxisAngle = function(t, e) { + var i = 2 * Math.acos(e.w) + , n = Math.sin(i / 2); + return 0 !== n ? (t.x = e.x / n, + t.y = e.y / n, + t.z = e.z / n) : (t.x = 1, + t.y = 0, + t.z = 0), + i + } + , + r.multiply = function(t, e, i) { + return c = e.x * i.w + e.w * i.x + e.y * i.z - e.z * i.y, + u = e.y * i.w + e.w * i.y + e.z * i.x - e.x * i.z, + _ = e.z * i.w + e.w * i.z + e.x * i.y - e.y * i.x, + f = e.w * i.w - e.x * i.x - e.y * i.y - e.z * i.z, + t.x = c, + t.y = u, + t.z = _, + t.w = f, + t + } + , + r.multiplyScalar = function(t, e, i) { + return t.x = e.x * i, + t.y = e.y * i, + t.z = e.z * i, + t.w = e.w * i, + t + } + , + r.scaleAndAdd = function(t, e, i, n) { + return t.x = e.x + i.x * n, + t.y = e.y + i.y * n, + t.z = e.z + i.z * n, + t.w = e.w + i.w * n, + t + } + , + r.rotateX = function(t, e, i) { + i *= .5; + var n = Math.sin(i) + , r = Math.cos(i); + return c = e.x * r + e.w * n, + u = e.y * r + e.z * n, + _ = e.z * r - e.y * n, + f = e.w * r - e.x * n, + t.x = c, + t.y = u, + t.z = _, + t.w = f, + t + } + , + r.rotateY = function(t, e, i) { + i *= .5; + var n = Math.sin(i) + , r = Math.cos(i); + return c = e.x * r - e.z * n, + u = e.y * r + e.w * n, + _ = e.z * r + e.x * n, + f = e.w * r - e.y * n, + t.x = c, + t.y = u, + t.z = _, + t.w = f, + t + } + , + r.rotateZ = function(t, e, i) { + i *= .5; + var n = Math.sin(i) + , r = Math.cos(i); + return c = e.x * r + e.y * n, + u = e.y * r - e.x * n, + _ = e.z * r + e.w * n, + f = e.w * r - e.z * n, + t.x = c, + t.y = u, + t.z = _, + t.w = f, + t + } + , + r.rotateAround = function(t, e, i, n) { + return r.invert(p, e), + s.default.transformQuat(y, i, p), + r.fromAxisAngle(p, y, n), + r.multiply(t, e, p), + t + } + , + r.rotateAroundLocal = function(t, e, i, n) { + return r.fromAxisAngle(p, i, n), + r.multiply(t, e, p), + t + } + , + r.calculateW = function(t, e) { + return t.x = e.x, + t.y = e.y, + t.z = e.z, + t.w = Math.sqrt(Math.abs(1 - e.x * e.x - e.y * e.y - e.z * e.z)), + t + } + , + r.dot = function(t, e) { + return t.x * e.x + t.y * e.y + t.z * e.z + t.w * e.w + } + , + r.lerp = function(t, e, i, n) { + return t.x = e.x + n * (i.x - e.x), + t.y = e.y + n * (i.y - e.y), + t.z = e.z + n * (i.z - e.z), + t.w = e.w + n * (i.w - e.w), + t + } + , + r.slerp = function(t, e, i, n) { + var r = 0 + , s = 0 + , a = e.x * i.x + e.y * i.y + e.z * i.z + e.w * i.w; + if (a < 0 && (a = -a, + i.x = -i.x, + i.y = -i.y, + i.z = -i.z, + i.w = -i.w), + 1 - a > 1e-6) { + var o = Math.acos(a) + , l = Math.sin(o); + r = Math.sin((1 - n) * o) / l, + s = Math.sin(n * o) / l + } else + r = 1 - n, + s = n; + return t.x = r * e.x + s * i.x, + t.y = r * e.y + s * i.y, + t.z = r * e.z + s * i.z, + t.w = r * e.w + s * i.w, + t + } + , + r.sqlerp = function(t, e, i, n, s, a) { + return r.slerp(p, e, s, a), + r.slerp(m, i, n, a), + r.slerp(t, p, m, 2 * a * (1 - a)), + t + } + , + r.invert = function(t, e) { + var i = e.x * e.x + e.y * e.y + e.z * e.z + e.w * e.w + , n = i ? 1 / i : 0; + return t.x = -e.x * n, + t.y = -e.y * n, + t.z = -e.z * n, + t.w = e.w * n, + t + } + , + r.conjugate = function(t, e) { + return t.x = -e.x, + t.y = -e.y, + t.z = -e.z, + t.w = e.w, + t + } + , + r.len = function(t) { + return Math.sqrt(t.x * t.x + t.y * t.y + t.z * t.z + t.w * t.w) + } + , + r.lengthSqr = function(t) { + return t.x * t.x + t.y * t.y + t.z * t.z + t.w * t.w + } + , + r.normalize = function(t, e) { + var i = e.x * e.x + e.y * e.y + e.z * e.z + e.w * e.w; + return i > 0 && (i = 1 / Math.sqrt(i), + t.x = e.x * i, + t.y = e.y * i, + t.z = e.z * i, + t.w = e.w * i), + t + } + , + r.fromAxes = function(t, e, i, n) { + return a.default.set(v, e.x, e.y, e.z, i.x, i.y, i.z, n.x, n.y, n.z), + r.normalize(t, r.fromMat3(t, v)) + } + , + r.fromViewUp = function(t, e, i) { + return a.default.fromViewUp(v, e, i), + r.normalize(t, r.fromMat3(t, v)) + } + , + r.fromAxisAngle = function(t, e, i) { + i *= .5; + var n = Math.sin(i); + return t.x = n * e.x, + t.y = n * e.y, + t.z = n * e.z, + t.w = Math.cos(i), + t + } + , + r.fromAngleZ = function(t, e) { + return e *= g, + t.x = t.y = 0, + t.z = Math.sin(e), + t.w = Math.cos(e), + t + } + , + r.fromMat3 = function(t, e) { + var i = e.m + , n = i[0] + , r = i[1] + , s = i[2] + , a = i[3] + , o = i[4] + , l = i[5] + , h = i[6] + , c = i[7] + , u = i[8] + , _ = n + o + u; + if (_ > 0) { + var f = .5 / Math.sqrt(_ + 1); + t.w = .25 / f, + t.x = (l - c) * f, + t.y = (h - s) * f, + t.z = (r - a) * f + } else if (n > o && n > u) { + var d = 2 * Math.sqrt(1 + n - o - u); + t.w = (l - c) / d, + t.x = .25 * d, + t.y = (a + r) / d, + t.z = (h + s) / d + } else if (o > u) { + var p = 2 * Math.sqrt(1 + o - n - u); + t.w = (h - s) / p, + t.x = (a + r) / p, + t.y = .25 * p, + t.z = (c + l) / p + } else { + var m = 2 * Math.sqrt(1 + u - n - o); + t.w = (r - a) / m, + t.x = (h + s) / m, + t.y = (c + l) / m, + t.z = .25 * m + } + return t + } + , + r.fromEuler = function(t, e, i, n) { + e *= g, + i *= g, + n *= g; + var r = Math.sin(e) + , s = Math.cos(e) + , a = Math.sin(i) + , o = Math.cos(i) + , l = Math.sin(n) + , h = Math.cos(n); + return t.x = r * o * h + s * a * l, + t.y = s * a * h + r * o * l, + t.z = s * o * l - r * a * h, + t.w = s * o * h - r * a * l, + t + } + , + r.toAxisX = function(t, e) { + var i = 2 * e.y + , n = 2 * e.z; + return t.x = 1 - i * e.y - n * e.z, + t.y = i * e.x + n * e.w, + t.z = n * e.x + i * e.w, + t + } + , + r.toAxisY = function(t, e) { + var i = 2 * e.x + , n = 2 * e.y + , r = 2 * e.z; + return t.x = n * e.x - r * e.w, + t.y = 1 - i * e.x - r * e.z, + t.z = r * e.y + i * e.w, + t + } + , + r.toAxisZ = function(t, e) { + var i = 2 * e.x + , n = 2 * e.y + , r = 2 * e.z; + return t.x = r * e.x - n * e.w, + t.y = r * e.y - i * e.w, + t.z = 1 - i * e.x - n * e.y, + t + } + , + r.toEuler = function(t, e, i) { + var n = e.x + , r = e.y + , s = e.z + , a = e.w + , l = 0 + , h = 0 + , c = 0 + , u = n * r + s * a; + if (u > .499999) + l = 0, + h = (0, + o.toDegree)(2 * Math.atan2(n, a)), + c = 90; + else if (u < -.499999) + l = 0, + h = -(0, + o.toDegree)(2 * Math.atan2(n, a)), + c = -90; + else { + var _ = n * n + , f = r * r + , d = s * s; + l = (0, + o.toDegree)(Math.atan2(2 * n * a - 2 * r * s, 1 - 2 * _ - 2 * d)), + h = (0, + o.toDegree)(Math.atan2(2 * r * a - 2 * n * s, 1 - 2 * f - 2 * d)), + c = (0, + o.toDegree)(Math.asin(2 * u)), + i && (l = -180 * Math.sign(l + 1e-6) + l, + h = -180 * Math.sign(h + 1e-6) + h, + c = 180 * Math.sign(c + 1e-6) - c) + } + return t.x = l, + t.y = h, + t.z = c, + t + } + , + r.strictEquals = function(t, e) { + return t.x === e.x && t.y === e.y && t.z === e.z && t.w === e.w + } + , + r.equals = function(t, e, i) { + return void 0 === i && (i = o.EPSILON), + Math.abs(t.x - e.x) <= i * Math.max(1, Math.abs(t.x), Math.abs(e.x)) && Math.abs(t.y - e.y) <= i * Math.max(1, Math.abs(t.y), Math.abs(e.y)) && Math.abs(t.z - e.z) <= i * Math.max(1, Math.abs(t.z), Math.abs(e.z)) && Math.abs(t.w - e.w) <= i * Math.max(1, Math.abs(t.w), Math.abs(e.w)) + } + , + r.toArray = function(t, e, i) { + return void 0 === i && (i = 0), + t[i + 0] = e.x, + t[i + 1] = e.y, + t[i + 2] = e.z, + t[i + 3] = e.w, + t + } + , + r.fromArray = function(t, e, i) { + return void 0 === i && (i = 0), + t.x = e[i + 0], + t.y = e[i + 1], + t.z = e[i + 2], + t.w = e[i + 3], + t + } + , + n.clone = function() { + return new r(this.x,this.y,this.z,this.w) + } + , + n.set = function(t) { + return this.x = t.x, + this.y = t.y, + this.z = t.z, + this.w = t.w, + this + } + , + n.equals = function(t) { + return t && this.x === t.x && this.y === t.y && this.z === t.z && this.w === t.w + } + , + n.toEuler = function(t) { + return r.toEuler(t, this) + } + , + n.fromEuler = function(t) { + return r.fromEuler(this, t.x, t.y, t.z) + } + , + n.lerp = function(t, e, i) { + return i = i || new r, + r.slerp(i, this, t, e), + i + } + , + n.multiply = function(t) { + return r.multiply(this, this, t) + } + , + n.rotateAround = function(t, e, i, n) { + return n = n || new r, + r.rotateAround(n, t, e, i) + } + , + r + } + )(n.default); + i.default = d, + d.mul = d.multiply, + d.scale = d.multiplyScalar, + d.mag = d.len, + d.IDENTITY = Object.freeze(new d); + var p = new d + , m = new d + , y = new s.default + , v = new a.default + , g = .5 * Math.PI / 180; + r.default.fastDefine("cc.Quat", d, { + x: 0, + y: 0, + z: 0, + w: 1 + }), + cc.quat = function(t, e, i, n) { + return new d(t,e,i,n) + } + , + cc.Quat = d, + e.exports = i.default + } + ), { + "../platform/CCClass": 193, + "./mat3": 283, + "./utils": 289, + "./value-type": 290, + "./vec3": 292 + }], + 286: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = o(t("./value-type")) + , r = o(t("../platform/CCClass")) + , s = o(t("./vec2")) + , a = o(t("./size")); + function o(t) { + return t && t.__esModule ? t : { + default: t + } + } + function l(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + function h(t, e) { + return (h = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var c = (function(t) { + var e, i; + function n(e, i, n, r) { + var s; + return void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + void 0 === r && (r = 0), + (s = t.call(this) || this).x = void 0, + s.y = void 0, + s.width = void 0, + s.height = void 0, + e && "object" == typeof e && (i = e.y, + n = e.width, + r = e.height, + e = e.x), + s.x = e || 0, + s.y = i || 0, + s.width = n || 0, + s.height = r || 0, + s + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + h(e, i), + n.fromMinMax = function(t, e) { + var i = Math.min(t.x, e.x) + , r = Math.min(t.y, e.y); + return new n(i,r,Math.max(t.x, e.x) - i,Math.max(t.y, e.y) - r) + } + ; + var r, o, c = n.prototype; + return c.clone = function() { + return new n(this.x,this.y,this.width,this.height) + } + , + c.equals = function(t) { + return t && this.x === t.x && this.y === t.y && this.width === t.width && this.height === t.height + } + , + c.lerp = function(t, e, i) { + i = i || new n; + var r = this.x + , s = this.y + , a = this.width + , o = this.height; + return i.x = r + (t.x - r) * e, + i.y = s + (t.y - s) * e, + i.width = a + (t.width - a) * e, + i.height = o + (t.height - o) * e, + i + } + , + c.set = function(t) { + return this.x = t.x, + this.y = t.y, + this.width = t.width, + this.height = t.height, + this + } + , + c.intersects = function(t) { + var e = this.x + this.width + , i = this.y + this.height + , n = t.x + t.width + , r = t.y + t.height; + return !(e < t.x || n < this.x || i < t.y || r < this.y) + } + , + c.intersection = function(t, e) { + var i = this.x + , n = this.y + , r = this.x + this.width + , s = this.y + this.height + , a = e.x + , o = e.y + , l = e.x + e.width + , h = e.y + e.height; + return t.x = Math.max(i, a), + t.y = Math.max(n, o), + t.width = Math.min(r, l) - t.x, + t.height = Math.min(s, h) - t.y, + t + } + , + c.contains = function(t) { + return this.x <= t.x && this.x + this.width >= t.x && this.y <= t.y && this.y + this.height >= t.y + } + , + c.containsRect = function(t) { + return this.x <= t.x && this.x + this.width >= t.x + t.width && this.y <= t.y && this.y + this.height >= t.y + t.height + } + , + c.union = function(t, e) { + var i = this.x + , n = this.y + , r = this.width + , s = this.height + , a = e.x + , o = e.y + , l = e.width + , h = e.height; + return t.x = Math.min(i, a), + t.y = Math.min(n, o), + t.width = Math.max(i + r, a + l) - t.x, + t.height = Math.max(n + s, o + h) - t.y, + t + } + , + c.transformMat4 = function(t, e) { + var i = this.x + , n = this.y + , r = i + this.width + , s = n + this.height + , a = e.m + , o = a[0] * i + a[4] * n + a[12] + , l = a[1] * i + a[5] * n + a[13] + , h = a[0] * r + a[4] * n + a[12] + , c = a[1] * r + a[5] * n + a[13] + , u = a[0] * i + a[4] * s + a[12] + , _ = a[1] * i + a[5] * s + a[13] + , f = a[0] * r + a[4] * s + a[12] + , d = a[1] * r + a[5] * s + a[13] + , p = Math.min(o, h, u, f) + , m = Math.max(o, h, u, f) + , y = Math.min(l, c, _, d) + , v = Math.max(l, c, _, d); + return t.x = p, + t.y = y, + t.width = m - p, + t.height = v - y, + t + } + , + c.toString = function() { + return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.width.toFixed(2) + ", " + this.height.toFixed(2) + ")" + } + , + r = n, + (o = [{ + key: "xMin", + get: function() { + return this.x + }, + set: function(t) { + this.width += this.x - t, + this.x = t + } + }, { + key: "yMin", + get: function() { + return this.y + }, + set: function(t) { + this.height += this.y - t, + this.y = t + } + }, { + key: "xMax", + get: function() { + return this.x + this.width + }, + set: function(t) { + this.width = t - this.x + } + }, { + key: "yMax", + get: function() { + return this.y + this.height + }, + set: function(t) { + this.height = t - this.y + } + }, { + key: "center", + get: function() { + return new s.default(this.x + .5 * this.width,this.y + .5 * this.height) + }, + set: function(t) { + this.x = t.x - .5 * this.width, + this.y = t.y - .5 * this.height + } + }, { + key: "origin", + get: function() { + return new s.default(this.x,this.y) + }, + set: function(t) { + this.x = t.x, + this.y = t.y + } + }, { + key: "size", + get: function() { + return new a.default(this.width,this.height) + }, + set: function(t) { + this.width = t.width, + this.height = t.height + } + }]) && l(r.prototype, o), + n + } + )(n.default); + i.default = c, + r.default.fastDefine("cc.Rect", c, { + x: 0, + y: 0, + width: 0, + height: 0 + }), + cc.Rect = c, + cc.rect = function(t, e, i, n) { + return new c(t,e,i,n) + } + , + e.exports = i.default + } + ), { + "../platform/CCClass": 193, + "./size": 287, + "./value-type": 290, + "./vec2": 291 + }], + 287: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = s(t("./value-type")) + , r = s(t("../platform/CCClass")); + function s(t) { + return t && t.__esModule ? t : { + default: t + } + } + function a(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + function o(t, e) { + return (o = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var l = (function(t) { + var e, i; + function n(e, i) { + var n; + return void 0 === e && (e = 0), + void 0 === i && (i = 0), + (n = t.call(this) || this).width = void 0, + n.height = void 0, + e && "object" == typeof e ? (n.width = e.width, + n.height = e.height) : (n.width = e || 0, + n.height = i || 0), + n + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + o(e, i); + var r, s, l = n.prototype; + return l.clone = function() { + return new n(this.width,this.height) + } + , + l.equals = function(t) { + return t && this.width === t.width && this.height === t.height + } + , + l.lerp = function(t, e, i) { + i = i || new n; + var r = this.width + , s = this.height; + return i.width = r + (t.width - r) * e, + i.height = s + (t.height - s) * e, + i + } + , + l.set = function(t) { + return this.width = t.width, + this.height = t.height, + this + } + , + l.toString = function() { + return "(" + this.width.toFixed(2) + ", " + this.height.toFixed(2) + ")" + } + , + r = n, + s = [{ + key: "ZERO", + get: function() { + return new n + } + }], + null && a(r.prototype, null), + s && a(r, s), + n + } + )(n.default); + i.default = l, + l.ZERO_R = l.ZERO, + r.default.fastDefine("cc.Size", l, { + width: 0, + height: 0 + }), + cc.size = function(t, e) { + return new l(t,e) + } + , + cc.Size = l, + e.exports = i.default + } + ), { + "../platform/CCClass": 193, + "./value-type": 290 + }], + 288: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("./quat")) && n.__esModule ? n : { + default: n + }, s = new r.default, a = (function() { + function t() {} + return t.toRotation = function(t, e) { + return t.x = e[3], + t.y = e[4], + t.z = e[5], + t.w = e[6], + t + } + , + t.fromRotation = function(t, e) { + return t[3] = e.x, + t[4] = e.y, + t[5] = e.z, + t[6] = e.w, + t + } + , + t.toEuler = function(e, i) { + return t.toRotation(s, i), + r.default.toEuler(e, s), + e + } + , + t.fromEuler = function(e, i) { + return r.default.fromEuler(s, i.x, i.y, i.z), + t.fromRotation(e, s), + e + } + , + t.fromEulerNumber = function(e, i, n, a) { + return r.default.fromEuler(s, i, n, a), + t.fromRotation(e, s), + e + } + , + t.toScale = function(t, e) { + return t.x = e[7], + t.y = e[8], + t.z = e[9], + t + } + , + t.fromScale = function(t, e) { + return t[7] = e.x, + t[8] = e.y, + t[9] = e.z, + t + } + , + t.toPosition = function(t, e) { + return t.x = e[0], + t.y = e[1], + t.z = e[2], + t + } + , + t.fromPosition = function(t, e) { + return t[0] = e.x, + t[1] = e.y, + t[2] = e.z, + t + } + , + t.fromAngleZ = function(e, i) { + return r.default.fromAngleZ(s, i), + t.fromRotation(e, s), + e + } + , + t.toMat4 = function(t, e) { + var i = e[3] + , n = e[4] + , r = e[5] + , s = e[6] + , a = i + i + , o = n + n + , l = r + r + , h = i * a + , c = i * o + , u = i * l + , _ = n * o + , f = n * l + , d = r * l + , p = s * a + , m = s * o + , y = s * l + , v = e[7] + , g = e[8] + , A = e[9] + , x = t.m; + return x[0] = (1 - (_ + d)) * v, + x[1] = (c + y) * v, + x[2] = (u - m) * v, + x[3] = 0, + x[4] = (c - y) * g, + x[5] = (1 - (h + d)) * g, + x[6] = (f + p) * g, + x[7] = 0, + x[8] = (u + m) * A, + x[9] = (f - p) * A, + x[10] = (1 - (h + _)) * A, + x[11] = 0, + x[12] = e[0], + x[13] = e[1], + x[14] = e[2], + x[15] = 1, + t + } + , + t + } + )(); + i.default = a, + cc.Trs = a, + e.exports = i.default + } + ), { + "./quat": 285 + }], + 289: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.equals = function(t, e) { + return Math.abs(t - e) <= s * Math.max(1, Math.abs(t), Math.abs(e)) + } + , + i.approx = function(t, e, i) { + return i = i || s, + Math.abs(t - e) <= i + } + , + i.clamp = function(t, e, i) { + return t < e ? e : t > i ? i : t + } + , + i.clamp01 = function(t) { + return t < 0 ? 0 : t > 1 ? 1 : t + } + , + i.lerp = function(t, e, i) { + return t + (e - t) * i + } + , + i.toRadian = function(t) { + return t * n + } + , + i.toDegree = function(t) { + return t * r + } + , + i.randomRange = l, + i.randomRangeInt = function(t, e) { + return Math.floor(l(t, e)) + } + , + i.pseudoRandom = h, + i.pseudoRandomRange = c, + i.pseudoRandomRangeInt = function(t, e, i) { + return Math.floor(c(t, e, i)) + } + , + i.nextPow2 = function(t) { + return --t, + t |= t >> 1, + t |= t >> 2, + t |= t >> 4, + t |= t >> 8, + t |= t >> 16, + ++t + } + , + i.repeat = u, + i.pingPong = function(t, e) { + return t = u(t, 2 * e), + e - Math.abs(t - e) + } + , + i.inverseLerp = function(t, e, i) { + return (i - t) / (e - t) + } + , + i.sign = function(t) { + return (t > 0) - (t < 0) + } + , + i.random = i.FLOAT_BYTES = i.FLOAT_ARRAY_TYPE = i.INT_MIN = i.INT_MAX = i.INT_BITS = i.EPSILON = void 0; + var n = Math.PI / 180 + , r = 180 / Math.PI + , s = 1e-6; + i.EPSILON = s, + i.INT_BITS = 32, + i.INT_MAX = 2147483647, + i.INT_MIN = -1 << 31; + var a = Float64Array; + i.FLOAT_ARRAY_TYPE = a, + i.FLOAT_BYTES = 8; + var o = Math.random; + function l(t, e) { + return Math.random() * (e - t) + t + } + function h(t) { + return (t = (9301 * t + 49297) % 233280) / 233280 + } + function c(t, e, i) { + return h(t) * (i - e) + e + } + function u(t, e) { + return t - Math.floor(t / e) * e + } + i.random = o + } + ), {}], + 290: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../platform/js")) && n.__esModule ? n : { + default: n + }, s = (function() { + function t() {} + var e = t.prototype; + return e.clone = function() { + return cc.errorID("0100", r.default.getClassName(this) + ".clone"), + null + } + , + e.equals = function() { + return cc.errorID("0100", r.default.getClassName(this) + ".equals"), + !1 + } + , + e.lerp = function() { + return cc.errorID("0100", r.default.getClassName(this) + ".lerp"), + this.clone() + } + , + e.set = function() { + cc.errorID("0100", r.default.getClassName(this) + ".set") + } + , + e.toString = function() { + return "" + {} + } + , + t + } + )(); + i.default = s, + r.default.setClassName("cc.ValueType", s), + cc.ValueType = s, + e.exports = i.default + } + ), { + "../platform/js": 214 + }], + 291: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = o(t("./value-type")) + , r = o(t("../platform/CCClass")) + , s = o(t("../utils/misc")) + , a = t("./utils"); + function o(t) { + return t && t.__esModule ? t : { + default: t + } + } + function l(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + function h(t, e) { + return (h = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var c = 0 + , u = 0 + , _ = (function(t) { + var e, i; + i = t, + (e = _).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + h(e, i); + var n, r, o = _.prototype; + function _(e, i) { + var n; + return void 0 === e && (e = 0), + void 0 === i && (i = 0), + (n = t.call(this) || this).mag = _.prototype.len, + n.magSqr = _.prototype.lengthSqr, + n.subSelf = _.prototype.subtract, + n.mulSelf = _.prototype.multiplyScalar, + n.divSelf = _.prototype.divide, + n.scaleSelf = _.prototype.multiply, + n.negSelf = _.prototype.negate, + n.x = void 0, + n.y = void 0, + n.z = 0, + e && "object" == typeof e ? (n.x = e.x || 0, + n.y = e.y || 0) : (n.x = e || 0, + n.y = i || 0), + n + } + return o.sub = function(t, e) { + return _.subtract(e || new _, this, t) + } + , + o.mul = function(t, e) { + return _.multiplyScalar(e || new _, this, t) + } + , + o.div = function(t, e) { + return _.multiplyScalar(e || new _, this, 1 / t) + } + , + o.scale = function(t, e) { + return _.multiply(e || new _, this, t) + } + , + o.neg = function(t) { + return _.negate(t || new _, this) + } + , + _.clone = function(t) { + return new _(t.x,t.y) + } + , + _.copy = function(t, e) { + return t.x = e.x, + t.y = e.y, + t + } + , + _.set = function(t, e, i) { + return t.x = e, + t.y = i, + t + } + , + _.add = function(t, e, i) { + return t.x = e.x + i.x, + t.y = e.y + i.y, + t + } + , + _.subtract = function(t, e, i) { + return t.x = e.x - i.x, + t.y = e.y - i.y, + t + } + , + _.multiply = function(t, e, i) { + return t.x = e.x * i.x, + t.y = e.y * i.y, + t + } + , + _.divide = function(t, e, i) { + return t.x = e.x / i.x, + t.y = e.y / i.y, + t + } + , + _.ceil = function(t, e) { + return t.x = Math.ceil(e.x), + t.y = Math.ceil(e.y), + t + } + , + _.floor = function(t, e) { + return t.x = Math.floor(e.x), + t.y = Math.floor(e.y), + t + } + , + _.min = function(t, e, i) { + return t.x = Math.min(e.x, i.x), + t.y = Math.min(e.y, i.y), + t + } + , + _.max = function(t, e, i) { + return t.x = Math.max(e.x, i.x), + t.y = Math.max(e.y, i.y), + t + } + , + _.round = function(t, e) { + return t.x = Math.round(e.x), + t.y = Math.round(e.y), + t + } + , + _.multiplyScalar = function(t, e, i) { + return t.x = e.x * i, + t.y = e.y * i, + t + } + , + _.scaleAndAdd = function(t, e, i, n) { + return t.x = e.x + i.x * n, + t.y = e.y + i.y * n, + t + } + , + _.distance = function(t, e) { + return c = e.x - t.x, + u = e.y - t.y, + Math.sqrt(c * c + u * u) + } + , + _.squaredDistance = function(t, e) { + return c = e.x - t.x, + u = e.y - t.y, + c * c + u * u + } + , + _.len = function(t) { + return c = t.x, + u = t.y, + Math.sqrt(c * c + u * u) + } + , + _.lengthSqr = function(t) { + return c = t.x, + u = t.y, + c * c + u * u + } + , + _.negate = function(t, e) { + return t.x = -e.x, + t.y = -e.y, + t + } + , + _.inverse = function(t, e) { + return t.x = 1 / e.x, + t.y = 1 / e.y, + t + } + , + _.inverseSafe = function(t, e) { + return c = e.x, + u = e.y, + Math.abs(c) < a.EPSILON ? t.x = 0 : t.x = 1 / c, + Math.abs(u) < a.EPSILON ? t.y = 0 : t.y = 1 / u, + t + } + , + _.normalize = function(t, e) { + c = e.x, + u = e.y; + var i = c * c + u * u; + return i > 0 && (i = 1 / Math.sqrt(i), + t.x = c * i, + t.y = u * i), + t + } + , + _.dot = function(t, e) { + return t.x * e.x + t.y * e.y + } + , + _.cross = function(t, e, i) { + return t.x = t.y = 0, + t.z = e.x * i.y - e.y * i.x, + t + } + , + _.lerp = function(t, e, i, n) { + return c = e.x, + u = e.y, + t.x = c + n * (i.x - c), + t.y = u + n * (i.y - u), + t + } + , + _.random = function(t, e) { + e = e || 1; + var i = 2 * (0, + a.random)() * Math.PI; + return t.x = Math.cos(i) * e, + t.y = Math.sin(i) * e, + t + } + , + _.transformMat3 = function(t, e, i) { + c = e.x, + u = e.y; + var n = i.m; + return t.x = n[0] * c + n[3] * u + n[6], + t.y = n[1] * c + n[4] * u + n[7], + t + } + , + _.transformMat4 = function(t, e, i) { + c = e.x, + u = e.y; + var n = i.m; + return t.x = n[0] * c + n[4] * u + n[12], + t.y = n[1] * c + n[5] * u + n[13], + t + } + , + _.strictEquals = function(t, e) { + return t.x === e.x && t.y === e.y + } + , + _.equals = function(t, e, i) { + return void 0 === i && (i = a.EPSILON), + Math.abs(t.x - e.x) <= i * Math.max(1, Math.abs(t.x), Math.abs(e.x)) && Math.abs(t.y - e.y) <= i * Math.max(1, Math.abs(t.y), Math.abs(e.y)) + } + , + _.angle = function(t, e) { + _.normalize(f, t), + _.normalize(d, e); + var i = _.dot(f, d); + return i > 1 ? 0 : i < -1 ? Math.PI : Math.acos(i) + } + , + _.toArray = function(t, e, i) { + return void 0 === i && (i = 0), + t[i + 0] = e.x, + t[i + 1] = e.y, + t + } + , + _.fromArray = function(t, e, i) { + return void 0 === i && (i = 0), + t.x = e[i + 0], + t.y = e[i + 1], + t + } + , + o.clone = function() { + return new _(this.x,this.y) + } + , + o.set = function(t) { + return this.x = t.x, + this.y = t.y, + this + } + , + o.equals = function(t) { + return t && this.x === t.x && this.y === t.y + } + , + o.fuzzyEquals = function(t, e) { + return this.x - e <= t.x && t.x <= this.x + e && this.y - e <= t.y && t.y <= this.y + e + } + , + o.toString = function() { + return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ")" + } + , + o.lerp = function(t, e, i) { + i = i || new _; + var n = this.x + , r = this.y; + return i.x = n + (t.x - n) * e, + i.y = r + (t.y - r) * e, + i + } + , + o.clampf = function(t, e) { + return this.x = s.default.clampf(this.x, t.x, e.x), + this.y = s.default.clampf(this.y, t.y, e.y), + this + } + , + o.add = function(t, e) { + return (e = e || new _).x = this.x + t.x, + e.y = this.y + t.y, + e + } + , + o.addSelf = function(t) { + return this.x += t.x, + this.y += t.y, + this + } + , + o.subtract = function(t) { + return this.x -= t.x, + this.y -= t.y, + this + } + , + o.multiplyScalar = function(t) { + return this.x *= t, + this.y *= t, + this + } + , + o.multiply = function(t) { + return this.x *= t.x, + this.y *= t.y, + this + } + , + o.divide = function(t) { + return this.x /= t, + this.y /= t, + this + } + , + o.negate = function() { + return this.x = -this.x, + this.y = -this.y, + this + } + , + o.dot = function(t) { + return this.x * t.x + this.y * t.y + } + , + o.cross = function(t) { + return this.x * t.y - this.y * t.x + } + , + o.len = function() { + return Math.sqrt(this.x * this.x + this.y * this.y) + } + , + o.lengthSqr = function() { + return this.x * this.x + this.y * this.y + } + , + o.normalizeSelf = function() { + var t = this.x * this.x + this.y * this.y; + if (1 === t) + return this; + if (0 === t) + return this; + var e = 1 / Math.sqrt(t); + return this.x *= e, + this.y *= e, + this + } + , + o.normalize = function(t) { + return (t = t || new _).x = this.x, + t.y = this.y, + t.normalizeSelf(), + t + } + , + o.angle = function(t) { + var e = this.magSqr() + , i = t.magSqr(); + if (0 === e || 0 === i) + return console.warn("Can't get angle between zero vector"), + 0; + var n = this.dot(t) / Math.sqrt(e * i); + return n = s.default.clampf(n, -1, 1), + Math.acos(n) + } + , + o.signAngle = function(t) { + var e = this.angle(t); + return this.cross(t) < 0 ? -e : e + } + , + o.rotate = function(t, e) { + return (e = e || new _).x = this.x, + e.y = this.y, + e.rotateSelf(t) + } + , + o.rotateSelf = function(t) { + var e = Math.sin(t) + , i = Math.cos(t) + , n = this.x; + return this.x = i * n - e * this.y, + this.y = e * n + i * this.y, + this + } + , + o.project = function(t) { + return t.multiplyScalar(this.dot(t) / t.dot(t)) + } + , + o.transformMat4 = function(t, e) { + return e = e || new _, + _.transformMat4(e, this, t), + e + } + , + o.maxAxis = function() { + return Math.max(this.x, this.y) + } + , + n = _, + r = [{ + key: "ONE", + get: function() { + return new _(1,1) + } + }, { + key: "ZERO", + get: function() { + return new _(0,0) + } + }, { + key: "UP", + get: function() { + return new _(0,1) + } + }, { + key: "RIGHT", + get: function() { + return new _(1,0) + } + }], + null && l(n.prototype, null), + r && l(n, r), + _ + } + )(n.default); + i.default = _, + _.sub = _.subtract, + _.mul = _.multiply, + _.scale = _.multiplyScalar, + _.mag = _.len, + _.squaredMagnitude = _.lengthSqr, + _.div = _.divide, + _.ONE_R = _.ONE, + _.ZERO_R = _.ZERO, + _.UP_R = _.UP, + _.RIGHT_R = _.RIGHT; + var f = new _ + , d = new _; + r.default.fastDefine("cc.Vec2", _, { + x: 0, + y: 0 + }), + cc.v2 = function(t, e) { + return new _(t,e) + } + , + cc.Vec2 = _, + e.exports = i.default + } + ), { + "../platform/CCClass": 193, + "../utils/misc": 267, + "./utils": 289, + "./value-type": 290 + }], + 292: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = l(t("./value-type")) + , r = l(t("../platform/CCClass")) + , s = l(t("../utils/misc")) + , a = l(t("./vec2")) + , o = t("./utils"); + function l(t) { + return t && t.__esModule ? t : { + default: t + } + } + function h(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + function c(t, e) { + return (c = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var u = 0 + , _ = 0 + , f = 0 + , d = (function(t) { + var e, i; + i = t, + (e = d).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + c(e, i); + var n, r, l = d.prototype; + function d(e, i, n) { + var r; + return void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + (r = t.call(this) || this).mag = d.prototype.len, + r.magSqr = d.prototype.lengthSqr, + r.subSelf = d.prototype.subtract, + r.mulSelf = d.prototype.multiplyScalar, + r.divSelf = d.prototype.divide, + r.scaleSelf = d.prototype.multiply, + r.negSelf = d.prototype.negate, + r.x = void 0, + r.y = void 0, + r.z = void 0, + r.angle = a.default.prototype.angle, + r.project = a.default.prototype.project, + e && "object" == typeof e ? (r.x = e.x, + r.y = e.y, + r.z = e.z) : (r.x = e, + r.y = i, + r.z = n), + r + } + return l.sub = function(t, e) { + return d.subtract(e || new d, this, t) + } + , + l.mul = function(t, e) { + return d.multiplyScalar(e || new d, this, t) + } + , + l.div = function(t, e) { + return d.multiplyScalar(e || new d, this, 1 / t) + } + , + l.scale = function(t, e) { + return d.multiply(e || new d, this, t) + } + , + l.neg = function(t) { + return d.negate(t || new d, this) + } + , + d.zero = function(t) { + return t.x = 0, + t.y = 0, + t.z = 0, + t + } + , + d.clone = function(t) { + return new d(t.x,t.y,t.z) + } + , + d.copy = function(t, e) { + return t.x = e.x, + t.y = e.y, + t.z = e.z, + t + } + , + d.set = function(t, e, i, n) { + return t.x = e, + t.y = i, + t.z = n, + t + } + , + d.add = function(t, e, i) { + return t.x = e.x + i.x, + t.y = e.y + i.y, + t.z = e.z + i.z, + t + } + , + d.subtract = function(t, e, i) { + return t.x = e.x - i.x, + t.y = e.y - i.y, + t.z = e.z - i.z, + t + } + , + d.multiply = function(t, e, i) { + return t.x = e.x * i.x, + t.y = e.y * i.y, + t.z = e.z * i.z, + t + } + , + d.divide = function(t, e, i) { + return t.x = e.x / i.x, + t.y = e.y / i.y, + t.z = e.z / i.z, + t + } + , + d.ceil = function(t, e) { + return t.x = Math.ceil(e.x), + t.y = Math.ceil(e.y), + t.z = Math.ceil(e.z), + t + } + , + d.floor = function(t, e) { + return t.x = Math.floor(e.x), + t.y = Math.floor(e.y), + t.z = Math.floor(e.z), + t + } + , + d.min = function(t, e, i) { + return t.x = Math.min(e.x, i.x), + t.y = Math.min(e.y, i.y), + t.z = Math.min(e.z, i.z), + t + } + , + d.max = function(t, e, i) { + return t.x = Math.max(e.x, i.x), + t.y = Math.max(e.y, i.y), + t.z = Math.max(e.z, i.z), + t + } + , + d.round = function(t, e) { + return t.x = Math.round(e.x), + t.y = Math.round(e.y), + t.z = Math.round(e.z), + t + } + , + d.multiplyScalar = function(t, e, i) { + return t.x = e.x * i, + t.y = e.y * i, + t.z = e.z * i, + t + } + , + d.scaleAndAdd = function(t, e, i, n) { + return t.x = e.x + i.x * n, + t.y = e.y + i.y * n, + t.z = e.z + i.z * n, + t + } + , + d.distance = function(t, e) { + return u = e.x - t.x, + _ = e.y - t.y, + f = e.z - t.z, + Math.sqrt(u * u + _ * _ + f * f) + } + , + d.squaredDistance = function(t, e) { + return u = e.x - t.x, + _ = e.y - t.y, + f = e.z - t.z, + u * u + _ * _ + f * f + } + , + d.len = function(t) { + return u = t.x, + _ = t.y, + f = t.z, + Math.sqrt(u * u + _ * _ + f * f) + } + , + d.lengthSqr = function(t) { + return u = t.x, + _ = t.y, + f = t.z, + u * u + _ * _ + f * f + } + , + d.negate = function(t, e) { + return t.x = -e.x, + t.y = -e.y, + t.z = -e.z, + t + } + , + d.inverse = function(t, e) { + return t.x = 1 / e.x, + t.y = 1 / e.y, + t.z = 1 / e.z, + t + } + , + d.inverseSafe = function(t, e) { + return u = e.x, + _ = e.y, + f = e.z, + Math.abs(u) < o.EPSILON ? t.x = 0 : t.x = 1 / u, + Math.abs(_) < o.EPSILON ? t.y = 0 : t.y = 1 / _, + Math.abs(f) < o.EPSILON ? t.z = 0 : t.z = 1 / f, + t + } + , + d.normalize = function(t, e) { + u = e.x, + _ = e.y, + f = e.z; + var i = u * u + _ * _ + f * f; + return i > 0 && (i = 1 / Math.sqrt(i), + t.x = u * i, + t.y = _ * i, + t.z = f * i), + t + } + , + d.dot = function(t, e) { + return t.x * e.x + t.y * e.y + t.z * e.z + } + , + d.cross = function(t, e, i) { + var n = e.x + , r = e.y + , s = e.z + , a = i.x + , o = i.y + , l = i.z; + return t.x = r * l - s * o, + t.y = s * a - n * l, + t.z = n * o - r * a, + t + } + , + d.lerp = function(t, e, i, n) { + return t.x = e.x + n * (i.x - e.x), + t.y = e.y + n * (i.y - e.y), + t.z = e.z + n * (i.z - e.z), + t + } + , + d.random = function(t, e) { + e = e || 1; + var i = 2 * (0, + o.random)() * Math.PI + , n = 2 * (0, + o.random)() - 1 + , r = Math.sqrt(1 - n * n); + return t.x = r * Math.cos(i) * e, + t.y = r * Math.sin(i) * e, + t.z = n * e, + t + } + , + d.transformMat4 = function(t, e, i) { + u = e.x, + _ = e.y, + f = e.z; + var n = i.m + , r = n[3] * u + n[7] * _ + n[11] * f + n[15]; + return r = r ? 1 / r : 1, + t.x = (n[0] * u + n[4] * _ + n[8] * f + n[12]) * r, + t.y = (n[1] * u + n[5] * _ + n[9] * f + n[13]) * r, + t.z = (n[2] * u + n[6] * _ + n[10] * f + n[14]) * r, + t + } + , + d.transformMat4Normal = function(t, e, i) { + u = e.x, + _ = e.y, + f = e.z; + var n = i.m + , r = n[3] * u + n[7] * _ + n[11] * f; + return r = r ? 1 / r : 1, + t.x = (n[0] * u + n[4] * _ + n[8] * f) * r, + t.y = (n[1] * u + n[5] * _ + n[9] * f) * r, + t.z = (n[2] * u + n[6] * _ + n[10] * f) * r, + t + } + , + d.transformMat3 = function(t, e, i) { + u = e.x, + _ = e.y, + f = e.z; + var n = i.m; + return t.x = u * n[0] + _ * n[3] + f * n[6], + t.y = u * n[1] + _ * n[4] + f * n[7], + t.z = u * n[2] + _ * n[5] + f * n[8], + t + } + , + d.transformAffine = function(t, e, i) { + u = e.x, + _ = e.y, + f = e.z; + var n = i.m; + return t.x = n[0] * u + n[1] * _ + n[2] * f + n[3], + t.y = n[4] * u + n[5] * _ + n[6] * f + n[7], + t.x = n[8] * u + n[9] * _ + n[10] * f + n[11], + t + } + , + d.transformQuat = function(t, e, i) { + var n = i.w * e.x + i.y * e.z - i.z * e.y + , r = i.w * e.y + i.z * e.x - i.x * e.z + , s = i.w * e.z + i.x * e.y - i.y * e.x + , a = -i.x * e.x - i.y * e.y - i.z * e.z; + return t.x = n * i.w + a * -i.x + r * -i.z - s * -i.y, + t.y = r * i.w + a * -i.y + s * -i.x - n * -i.z, + t.z = s * i.w + a * -i.z + n * -i.y - r * -i.x, + t + } + , + d.transformRTS = function(t, e, i, n, r) { + var s = e.x * r.x + , a = e.y * r.y + , o = e.z * r.z + , l = i.w * s + i.y * o - i.z * a + , h = i.w * a + i.z * s - i.x * o + , c = i.w * o + i.x * a - i.y * s + , u = -i.x * s - i.y * a - i.z * o; + return t.x = l * i.w + u * -i.x + h * -i.z - c * -i.y + n.x, + t.y = h * i.w + u * -i.y + c * -i.x - l * -i.z + n.y, + t.z = c * i.w + u * -i.z + l * -i.y - h * -i.x + n.z, + t + } + , + d.transformInverseRTS = function(t, e, i, n, r) { + var s = e.x - n.x + , a = e.y - n.y + , o = e.z - n.z + , l = i.w * s - i.y * o + i.z * a + , h = i.w * a - i.z * s + i.x * o + , c = i.w * o - i.x * a + i.y * s + , u = i.x * s + i.y * a + i.z * o; + return t.x = (l * i.w + u * i.x + h * i.z - c * i.y) / r.x, + t.y = (h * i.w + u * i.y + c * i.x - l * i.z) / r.y, + t.z = (c * i.w + u * i.z + l * i.y - h * i.x) / r.z, + t + } + , + d.rotateX = function(t, e, i, n) { + u = e.x - i.x, + _ = e.y - i.y, + f = e.z - i.z; + var r = Math.cos(n) + , s = Math.sin(n) + , a = u + , o = _ * r - f * s + , l = _ * s + f * r; + return t.x = a + i.x, + t.y = o + i.y, + t.z = l + i.z, + t + } + , + d.rotateY = function(t, e, i, n) { + u = e.x - i.x, + _ = e.y - i.y, + f = e.z - i.z; + var r = Math.cos(n) + , s = Math.sin(n) + , a = f * s + u * r + , o = _ + , l = f * r - u * s; + return t.x = a + i.x, + t.y = o + i.y, + t.z = l + i.z, + t + } + , + d.rotateZ = function(t, e, i, n) { + u = e.x - i.x, + _ = e.y - i.y, + f = e.z - i.z; + var r = Math.cos(n) + , s = Math.sin(n) + , a = u * r - _ * s + , o = u * s + _ * r + , l = f; + return t.x = a + i.x, + t.y = o + i.y, + t.z = l + i.z, + t + } + , + d.strictEquals = function(t, e) { + return t.x === e.x && t.y === e.y && t.z === e.z + } + , + d.equals = function(t, e, i) { + void 0 === i && (i = o.EPSILON); + var n = t.x + , r = t.y + , s = t.z + , a = e.x + , l = e.y + , h = e.z; + return Math.abs(n - a) <= i * Math.max(1, Math.abs(n), Math.abs(a)) && Math.abs(r - l) <= i * Math.max(1, Math.abs(r), Math.abs(l)) && Math.abs(s - h) <= i * Math.max(1, Math.abs(s), Math.abs(h)) + } + , + d.angle = function(t, e) { + d.normalize(p, t), + d.normalize(m, e); + var i = d.dot(p, m); + return i > 1 ? 0 : i < -1 ? Math.PI : Math.acos(i) + } + , + d.projectOnPlane = function(t, e, i) { + return d.subtract(t, e, d.project(t, e, i)) + } + , + d.project = function(t, e, i) { + var n = d.lengthSqr(i); + return n < 1e-6 ? d.set(t, 0, 0, 0) : d.multiplyScalar(t, i, d.dot(e, i) / n) + } + , + d.toArray = function(t, e, i) { + return void 0 === i && (i = 0), + t[i + 0] = e.x, + t[i + 1] = e.y, + t[i + 2] = e.z, + t + } + , + d.fromArray = function(t, e, i) { + return void 0 === i && (i = 0), + t.x = e[i + 0], + t.y = e[i + 1], + t.z = e[i + 2], + t + } + , + l.clone = function() { + return new d(this.x,this.y,this.z) + } + , + l.set = function(t) { + return this.x = t.x, + this.y = t.y, + this.z = t.z, + this + } + , + l.equals = function(t) { + return t && this.x === t.x && this.y === t.y && this.z === t.z + } + , + l.fuzzyEquals = function(t, e) { + return this.x - e <= t.x && t.x <= this.x + e && this.y - e <= t.y && t.y <= this.y + e && this.z - e <= t.z && t.z <= this.z + e + } + , + l.toString = function() { + return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.z.toFixed(2) + ")" + } + , + l.lerp = function(t, e, i) { + return i = i || new d, + d.lerp(i, this, t, e), + i + } + , + l.clampf = function(t, e) { + return this.x = s.default.clampf(this.x, t.x, e.x), + this.y = s.default.clampf(this.y, t.y, e.y), + this.z = s.default.clampf(this.z, t.z, e.z), + this + } + , + l.addSelf = function(t) { + return this.x += t.x, + this.y += t.y, + this.z += t.z, + this + } + , + l.add = function(t, e) { + return (e = e || new d).x = this.x + t.x, + e.y = this.y + t.y, + e.z = this.z + t.z, + e + } + , + l.subtract = function(t) { + return this.x -= t.x, + this.y -= t.y, + this.z -= t.z, + this + } + , + l.multiplyScalar = function(t) { + return this.x *= t, + this.y *= t, + this.z *= t, + this + } + , + l.multiply = function(t) { + return this.x *= t.x, + this.y *= t.y, + this.z *= t.z, + this + } + , + l.divide = function(t) { + return this.x /= t, + this.y /= t, + this.z /= t, + this + } + , + l.negate = function() { + return this.x = -this.x, + this.y = -this.y, + this.z = -this.z, + this + } + , + l.dot = function(t) { + return this.x * t.x + this.y * t.y + this.z * t.z + } + , + l.cross = function(t, e) { + return e = e || new d, + d.cross(e, this, t), + e + } + , + l.len = function() { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z) + } + , + l.lengthSqr = function() { + return this.x * this.x + this.y * this.y + this.z * this.z + } + , + l.normalizeSelf = function() { + return d.normalize(this, this), + this + } + , + l.normalize = function(t) { + return t = t || new d, + d.normalize(t, this), + t + } + , + l.transformMat4 = function(t, e) { + return e = e || new d, + d.transformMat4(e, this, t), + e + } + , + l.maxAxis = function() { + return Math.max(this.x, this.y, this.z) + } + , + l.signAngle = function(t) { + cc.warnID(1408, "vec3.signAngle", "v2.1", "cc.v2(selfVector).signAngle(vector)"); + var e = new a.default(this.x,this.y) + , i = new a.default(t.x,t.y); + return e.signAngle(i) + } + , + l.rotate = function(t, e) { + return cc.warnID(1408, "vec3.rotate", "v2.1", "cc.v2(selfVector).rotate(radians, out)"), + a.default.prototype.rotate.call(this, t, e) + } + , + l.rotateSelf = function(t) { + return cc.warnID(1408, "vec3.rotateSelf", "v2.1", "cc.v2(selfVector).rotateSelf(radians)"), + a.default.prototype.rotateSelf.call(this, t) + } + , + n = d, + r = [{ + key: "ONE", + get: function() { + return new d(1,1,1) + } + }, { + key: "ZERO", + get: function() { + return new d + } + }, { + key: "UP", + get: function() { + return new d(0,1,0) + } + }, { + key: "RIGHT", + get: function() { + return new d(1,0,0) + } + }, { + key: "FORWARD", + get: function() { + return new d(0,0,1) + } + }], + null && h(n.prototype, null), + r && h(n, r), + d + } + )(n.default); + i.default = d, + d.sub = d.subtract, + d.mul = d.multiply, + d.scale = d.multiplyScalar, + d.mag = d.len, + d.squaredMagnitude = d.lengthSqr, + d.div = d.divide, + d.ONE_R = d.ONE, + d.ZERO_R = d.ZERO, + d.UP_R = d.UP, + d.RIGHT_R = d.RIGHT, + d.FRONT_R = d.FORWARD; + var p = new d + , m = new d; + r.default.fastDefine("cc.Vec3", d, { + x: 0, + y: 0, + z: 0 + }), + cc.v3 = function(t, e, i) { + return new d(t,e,i) + } + , + cc.Vec3 = d, + e.exports = i.default + } + ), { + "../platform/CCClass": 193, + "../utils/misc": 267, + "./utils": 289, + "./value-type": 290, + "./vec2": 291 + }], + 293: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.v4 = d, + i.default = void 0; + var n = a(t("../platform/CCClass")) + , r = a(t("./value-type")) + , s = t("./utils"); + function a(t) { + return t && t.__esModule ? t : { + default: t + } + } + function o(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + function l(t, e) { + return (l = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var h = 0 + , c = 0 + , u = 0 + , _ = 0 + , f = (function(t) { + var e, i; + i = t, + (e = f).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + l(e, i); + var n, r, a = f.prototype; + function f(e, i, n, r) { + var s; + return void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + void 0 === r && (r = 0), + (s = t.call(this) || this).mag = f.prototype.len, + s.magSqr = f.prototype.lengthSqr, + s.subSelf = f.prototype.subtract, + s.mulSelf = f.prototype.multiplyScalar, + s.divSelf = f.prototype.divide, + s.scaleSelf = f.prototype.multiply, + s.negSelf = f.prototype.negate, + s.x = void 0, + s.y = void 0, + s.z = void 0, + s.w = void 0, + e && "object" == typeof e ? (s.x = e.x, + s.y = e.y, + s.z = e.z, + s.w = e.w) : (s.x = e, + s.y = i, + s.z = n, + s.w = r), + s + } + return a.sub = function(t, e) { + return f.subtract(e || new f, this, t) + } + , + a.mul = function(t, e) { + return f.multiplyScalar(e || new f, this, t) + } + , + a.div = function(t, e) { + return f.multiplyScalar(e || new f, this, 1 / t) + } + , + a.scale = function(t, e) { + return f.multiply(e || new f, this, t) + } + , + a.neg = function(t) { + return f.negate(t || new f, this) + } + , + f.clone = function(t) { + return new f(t.x,t.y,t.z,t.w) + } + , + f.copy = function(t, e) { + return t.x = e.x, + t.y = e.y, + t.z = e.z, + t.w = e.w, + t + } + , + f.set = function(t, e, i, n, r) { + return t.x = e, + t.y = i, + t.z = n, + t.w = r, + t + } + , + f.add = function(t, e, i) { + return t.x = e.x + i.x, + t.y = e.y + i.y, + t.z = e.z + i.z, + t.w = e.w + i.w, + t + } + , + f.subtract = function(t, e, i) { + return t.x = e.x - i.x, + t.y = e.y - i.y, + t.z = e.z - i.z, + t.w = e.w - i.w, + t + } + , + f.multiply = function(t, e, i) { + return t.x = e.x * i.x, + t.y = e.y * i.y, + t.z = e.z * i.z, + t.w = e.w * i.w, + t + } + , + f.divide = function(t, e, i) { + return t.x = e.x / i.x, + t.y = e.y / i.y, + t.z = e.z / i.z, + t.w = e.w / i.w, + t + } + , + f.ceil = function(t, e) { + return t.x = Math.ceil(e.x), + t.y = Math.ceil(e.y), + t.z = Math.ceil(e.z), + t.w = Math.ceil(e.w), + t + } + , + f.floor = function(t, e) { + return t.x = Math.floor(e.x), + t.y = Math.floor(e.y), + t.z = Math.floor(e.z), + t.w = Math.floor(e.w), + t + } + , + f.min = function(t, e, i) { + return t.x = Math.min(e.x, i.x), + t.y = Math.min(e.y, i.y), + t.z = Math.min(e.z, i.z), + t.w = Math.min(e.w, i.w), + t + } + , + f.max = function(t, e, i) { + return t.x = Math.max(e.x, i.x), + t.y = Math.max(e.y, i.y), + t.z = Math.max(e.z, i.z), + t.w = Math.max(e.w, i.w), + t + } + , + f.round = function(t, e) { + return t.x = Math.round(e.x), + t.y = Math.round(e.y), + t.z = Math.round(e.z), + t.w = Math.round(e.w), + t + } + , + f.multiplyScalar = function(t, e, i) { + return t.x = e.x * i, + t.y = e.y * i, + t.z = e.z * i, + t.w = e.w * i, + t + } + , + f.scaleAndAdd = function(t, e, i, n) { + return t.x = e.x + i.x * n, + t.y = e.y + i.y * n, + t.z = e.z + i.z * n, + t.w = e.w + i.w * n, + t + } + , + f.distance = function(t, e) { + var i = e.x - t.x + , n = e.y - t.y + , r = e.z - t.z + , s = e.w - t.w; + return Math.sqrt(i * i + n * n + r * r + s * s) + } + , + f.squaredDistance = function(t, e) { + var i = e.x - t.x + , n = e.y - t.y + , r = e.z - t.z + , s = e.w - t.w; + return i * i + n * n + r * r + s * s + } + , + f.len = function(t) { + return h = t.x, + c = t.y, + u = t.z, + _ = t.w, + Math.sqrt(h * h + c * c + u * u + _ * _) + } + , + f.lengthSqr = function(t) { + return h = t.x, + c = t.y, + u = t.z, + _ = t.w, + h * h + c * c + u * u + _ * _ + } + , + f.negate = function(t, e) { + return t.x = -e.x, + t.y = -e.y, + t.z = -e.z, + t.w = -e.w, + t + } + , + f.inverse = function(t, e) { + return t.x = 1 / e.x, + t.y = 1 / e.y, + t.z = 1 / e.z, + t.w = 1 / e.w, + t + } + , + f.inverseSafe = function(t, e) { + return h = e.x, + c = e.y, + u = e.z, + _ = e.w, + Math.abs(h) < s.EPSILON ? t.x = 0 : t.x = 1 / h, + Math.abs(c) < s.EPSILON ? t.y = 0 : t.y = 1 / c, + Math.abs(u) < s.EPSILON ? t.z = 0 : t.z = 1 / u, + Math.abs(_) < s.EPSILON ? t.w = 0 : t.w = 1 / _, + t + } + , + f.normalize = function(t, e) { + h = e.x, + c = e.y, + u = e.z, + _ = e.w; + var i = h * h + c * c + u * u + _ * _; + return i > 0 && (i = 1 / Math.sqrt(i), + t.x = h * i, + t.y = c * i, + t.z = u * i, + t.w = _ * i), + t + } + , + f.dot = function(t, e) { + return t.x * e.x + t.y * e.y + t.z * e.z + t.w * e.w + } + , + f.lerp = function(t, e, i, n) { + return t.x = e.x + n * (i.x - e.x), + t.y = e.y + n * (i.y - e.y), + t.z = e.z + n * (i.z - e.z), + t.w = e.w + n * (i.w - e.w), + t + } + , + f.random = function(t, e) { + e = e || 1; + var i = 2 * (0, + s.random)() * Math.PI + , n = 2 * (0, + s.random)() - 1 + , r = Math.sqrt(1 - n * n); + return t.x = r * Math.cos(i) * e, + t.y = r * Math.sin(i) * e, + t.z = n * e, + t.w = 0, + t + } + , + f.transformMat4 = function(t, e, i) { + h = e.x, + c = e.y, + u = e.z, + _ = e.w; + var n = i.m; + return t.x = n[0] * h + n[4] * c + n[8] * u + n[12] * _, + t.y = n[1] * h + n[5] * c + n[9] * u + n[13] * _, + t.z = n[2] * h + n[6] * c + n[10] * u + n[14] * _, + t.w = n[3] * h + n[7] * c + n[11] * u + n[15] * _, + t + } + , + f.transformAffine = function(t, e, i) { + h = e.x, + c = e.y, + u = e.z, + _ = e.w; + var n = i.m; + return t.x = n[0] * h + n[1] * c + n[2] * u + n[3] * _, + t.y = n[4] * h + n[5] * c + n[6] * u + n[7] * _, + t.x = n[8] * h + n[9] * c + n[10] * u + n[11] * _, + t.w = e.w, + t + } + , + f.transformQuat = function(t, e, i) { + var n = e.x + , r = e.y + , s = e.z; + h = i.x, + c = i.y, + u = i.z; + var a = (_ = i.w) * n + c * s - u * r + , o = _ * r + u * n - h * s + , l = _ * s + h * r - c * n + , f = -h * n - c * r - u * s; + return t.x = a * _ + f * -h + o * -u - l * -c, + t.y = o * _ + f * -c + l * -h - a * -u, + t.z = l * _ + f * -u + a * -c - o * -h, + t.w = e.w, + t + } + , + f.strictEquals = function(t, e) { + return t.x === e.x && t.y === e.y && t.z === e.z && t.w === e.w + } + , + f.equals = function(t, e, i) { + return void 0 === i && (i = s.EPSILON), + Math.abs(t.x - e.x) <= i * Math.max(1, Math.abs(t.x), Math.abs(e.x)) && Math.abs(t.y - e.y) <= i * Math.max(1, Math.abs(t.y), Math.abs(e.y)) && Math.abs(t.z - e.z) <= i * Math.max(1, Math.abs(t.z), Math.abs(e.z)) && Math.abs(t.w - e.w) <= i * Math.max(1, Math.abs(t.w), Math.abs(e.w)) + } + , + f.toArray = function(t, e, i) { + return void 0 === i && (i = 0), + t[i + 0] = e.x, + t[i + 1] = e.y, + t[i + 2] = e.z, + t[i + 3] = e.w, + t + } + , + f.fromArray = function(t, e, i) { + return void 0 === i && (i = 0), + t.x = e[i + 0], + t.y = e[i + 1], + t.z = e[i + 2], + t.w = e[i + 3], + t + } + , + a.clone = function() { + return new f(this.x,this.y,this.z,this.w) + } + , + a.set = function(t, e, i, n) { + return t && "object" == typeof t ? (this.x = t.x, + this.y = t.y, + this.z = t.z, + this.w = t.w) : (this.x = t || 0, + this.y = e || 0, + this.z = i || 0, + this.w = n || 0), + this + } + , + a.equals = function(t, e) { + return void 0 === e && (e = s.EPSILON), + Math.abs(this.x - t.x) <= e * Math.max(1, Math.abs(this.x), Math.abs(t.x)) && Math.abs(this.y - t.y) <= e * Math.max(1, Math.abs(this.y), Math.abs(t.y)) && Math.abs(this.z - t.z) <= e * Math.max(1, Math.abs(this.z), Math.abs(t.z)) && Math.abs(this.w - t.w) <= e * Math.max(1, Math.abs(this.w), Math.abs(t.w)) + } + , + a.equals4f = function(t, e, i, n, r) { + return void 0 === r && (r = s.EPSILON), + Math.abs(this.x - t) <= r * Math.max(1, Math.abs(this.x), Math.abs(t)) && Math.abs(this.y - e) <= r * Math.max(1, Math.abs(this.y), Math.abs(e)) && Math.abs(this.z - i) <= r * Math.max(1, Math.abs(this.z), Math.abs(i)) && Math.abs(this.w - n) <= r * Math.max(1, Math.abs(this.w), Math.abs(n)) + } + , + a.strictEquals = function(t) { + return this.x === t.x && this.y === t.y && this.z === t.z && this.w === t.w + } + , + a.strictEquals4f = function(t, e, i, n) { + return this.x === t && this.y === e && this.z === i && this.w === n + } + , + a.lerp = function(t, e) { + return h = this.x, + c = this.y, + u = this.z, + _ = this.w, + this.x = h + e * (t.x - h), + this.y = c + e * (t.y - c), + this.z = u + e * (t.z - u), + this.w = _ + e * (t.w - _), + this + } + , + a.toString = function() { + return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.z.toFixed(2) + ", " + this.w.toFixed(2) + ")" + } + , + a.clampf = function(t, e) { + return this.x = (0, + s.clamp)(this.x, t.x, e.x), + this.y = (0, + s.clamp)(this.y, t.y, e.y), + this.z = (0, + s.clamp)(this.z, t.z, e.z), + this.w = (0, + s.clamp)(this.w, t.w, e.w), + this + } + , + a.addSelf = function(t) { + return this.x += t.x, + this.y += t.y, + this.z += t.z, + this.w += t.w, + this + } + , + a.add = function(t, e) { + return (e = e || new f).x = this.x + t.x, + e.y = this.y + t.y, + e.z = this.z + t.z, + e.w = this.w + t.w, + e + } + , + a.subtract = function(t, e) { + return (e = e || new f).x = this.x - t.x, + e.y = this.y - t.y, + e.z = this.z - t.z, + e.w = this.w - t.w, + e + } + , + a.multiplyScalar = function(t) { + return this.x *= t, + this.y *= t, + this.z *= t, + this.w *= t, + this + } + , + a.multiply = function(t) { + return this.x *= t.x, + this.y *= t.y, + this.z *= t.z, + this.w *= t.w, + this + } + , + a.divide = function(t) { + return this.x /= t, + this.y /= t, + this.z /= t, + this.w /= t, + this + } + , + a.negate = function() { + return this.x = -this.x, + this.y = -this.y, + this.z = -this.z, + this.w = -this.w, + this + } + , + a.dot = function(t) { + return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w + } + , + a.cross = function(t, e) { + e = e || new f; + var i = this.x + , n = this.y + , r = this.z + , s = t.x + , a = t.y + , o = t.z; + return e.x = n * o - r * a, + e.y = r * s - i * o, + e.z = i * a - n * s, + e + } + , + a.len = function() { + var t = this.x + , e = this.y + , i = this.z + , n = this.w; + return Math.sqrt(t * t + e * e + i * i + n * n) + } + , + a.lengthSqr = function() { + var t = this.x + , e = this.y + , i = this.z + , n = this.w; + return t * t + e * e + i * i + n * n + } + , + a.normalizeSelf = function() { + return this.normalize(this), + this + } + , + a.normalize = function(t) { + t = t || new f, + h = this.x, + c = this.y, + u = this.z, + _ = this.w; + var e = h * h + c * c + u * u + _ * _; + return e > 0 && (e = 1 / Math.sqrt(e), + t.x = h * e, + t.y = c * e, + t.z = u * e, + t.w = _ * e), + t + } + , + a.transformMat4 = function(t, e) { + e = e || new f, + h = this.x, + c = this.y, + u = this.z, + _ = this.w; + var i = t.m; + return e.x = i[0] * h + i[4] * c + i[8] * u + i[12] * _, + e.y = i[1] * h + i[5] * c + i[9] * u + i[13] * _, + e.z = i[2] * h + i[6] * c + i[10] * u + i[14] * _, + e.w = i[3] * h + i[7] * c + i[11] * u + i[15] * _, + e + } + , + a.maxAxis = function() { + return Math.max(this.x, this.y, this.z, this.w) + } + , + n = f, + r = [{ + key: "ZERO", + get: function() { + return new f(0,0,0,0) + } + }, { + key: "ONE", + get: function() { + return new f(1,1,1,1) + } + }, { + key: "NEG_ONE", + get: function() { + return new f(-1,-1,-1,-1) + } + }], + null && o(n.prototype, null), + r && o(n, r), + f + } + )(r.default); + function d(t, e, i, n) { + return new f(t,e,i,n) + } + i.default = f, + f.sub = f.subtract, + f.mul = f.multiply, + f.div = f.divide, + f.scale = f.multiplyScalar, + f.mag = f.len, + f.squaredMagnitude = f.lengthSqr, + f.ZERO_R = f.ZERO, + f.ONE_R = f.ONE, + f.NEG_ONE_R = f.NEG_ONE, + n.default.fastDefine("cc.Vec4", f, { + x: 0, + y: 0, + z: 0, + w: 0 + }), + cc.v4 = d, + cc.Vec4 = f + } + ), { + "../platform/CCClass": 193, + "./utils": 289, + "./value-type": 290 + }], + 294: [(function() { + "use strict"; + cc.js + } + ), {}], + 295: [(function(t) { + "use strict"; + t("./core/CCGame"), + t("./actions") + } + ), { + "./actions": 7, + "./core/CCGame": 28 + }], + 296: [(function(t, e) { + "use strict"; + var i = t("../compression/zlib.min") + , n = t("../core/CCDebug") + , r = function(t) { + var e, i, r, s, a, o, l, h, c, u, _, f, d; + for (this.data = t, + this.pos = 8, + this.palette = [], + this.imgData = [], + this.transparency = {}, + this.animation = null, + this.text = {}, + a = null; ; ) { + switch (e = this.readUInt32(), + h = function() { + var t, e; + for (e = [], + t = 0; t < 4; ++t) + e.push(String.fromCharCode(this.data[this.pos++])); + return e + } + .call(this).join("")) { + case "IHDR": + this.width = this.readUInt32(), + this.height = this.readUInt32(), + this.bits = this.data[this.pos++], + this.colorType = this.data[this.pos++], + this.compressionMethod = this.data[this.pos++], + this.filterMethod = this.data[this.pos++], + this.interlaceMethod = this.data[this.pos++]; + break; + case "acTL": + this.animation = { + numFrames: this.readUInt32(), + numPlays: this.readUInt32() || 1 / 0, + frames: [] + }; + break; + case "PLTE": + this.palette = this.read(e); + break; + case "fcTL": + a && this.animation.frames.push(a), + this.pos += 4, + a = { + width: this.readUInt32(), + height: this.readUInt32(), + xOffset: this.readUInt32(), + yOffset: this.readUInt32() + }, + s = this.readUInt16(), + r = this.readUInt16() || 100, + a.delay = 1e3 * s / r, + a.disposeOp = this.data[this.pos++], + a.blendOp = this.data[this.pos++], + a.data = []; + break; + case "IDAT": + case "fdAT": + for ("fdAT" === h && (this.pos += 4, + e -= 4), + t = (null != a ? a.data : void 0) || this.imgData, + _ = 0; 0 <= e ? _ < e : _ > e; 0 <= e ? ++_ : --_) + t.push(this.data[this.pos++]); + break; + case "tRNS": + switch (this.transparency = {}, + this.colorType) { + case 3: + if (this.transparency.indexed = this.read(e), + (c = 255 - this.transparency.indexed.length) > 0) + for (f = 0; 0 <= c ? f < c : f > c; 0 <= c ? ++f : --f) + this.transparency.indexed.push(255); + break; + case 0: + this.transparency.grayscale = this.read(e)[0]; + break; + case 2: + this.transparency.rgb = this.read(e) + } + break; + case "tEXt": + o = (u = this.read(e)).indexOf(0), + l = String.fromCharCode.apply(String, u.slice(0, o)), + this.text[l] = String.fromCharCode.apply(String, u.slice(o + 1)); + break; + case "IEND": + return a && this.animation.frames.push(a), + this.colors = function() { + switch (this.colorType) { + case 0: + case 3: + case 4: + return 1; + case 2: + case 6: + return 3 + } + } + .call(this), + this.hasAlphaChannel = 4 === (d = this.colorType) || 6 === d, + i = this.colors + (this.hasAlphaChannel ? 1 : 0), + this.pixelBitlength = this.bits * i, + this.colorSpace = function() { + switch (this.colors) { + case 1: + return "DeviceGray"; + case 3: + return "DeviceRGB" + } + } + .call(this), + void (Uint8Array != Array && (this.imgData = new Uint8Array(this.imgData))); + default: + this.pos += e + } + if (this.pos += 4, + this.pos > this.data.length) + throw new Error(n.getError(6017)) + } + }; + r.prototype = { + constructor: r, + read: function(t) { + var e, i; + for (i = [], + e = 0; 0 <= t ? e < t : e > t; 0 <= t ? ++e : --e) + i.push(this.data[this.pos++]); + return i + }, + readUInt32: function() { + return this.data[this.pos++] << 24 | this.data[this.pos++] << 16 | this.data[this.pos++] << 8 | this.data[this.pos++] + }, + readUInt16: function() { + return this.data[this.pos++] << 8 | this.data[this.pos++] + }, + decodePixels: function(t) { + var e, r, s, a, o, l, h, c, u, _, f, d, p, m, y, v, g, A, x, b, C, T, S; + if (null == t && (t = this.imgData), + 0 === t.length) + return new Uint8Array(0); + for (t = new i.Inflate(t,{ + index: 0, + verify: !1 + }).decompress(), + v = (d = this.pixelBitlength / 8) * this.width, + p = new Uint8Array(v * this.height), + l = t.length, + y = 0, + m = 0, + r = 0; m < l; ) { + switch (t[m++]) { + case 0: + for (a = x = 0; x < v; a = x += 1) + p[r++] = t[m++]; + break; + case 1: + for (a = b = 0; b < v; a = b += 1) + e = t[m++], + o = a < d ? 0 : p[r - d], + p[r++] = (e + o) % 256; + break; + case 2: + for (a = C = 0; C < v; a = C += 1) + e = t[m++], + s = (a - a % d) / d, + g = y && p[(y - 1) * v + s * d + a % d], + p[r++] = (g + e) % 256; + break; + case 3: + for (a = T = 0; T < v; a = T += 1) + e = t[m++], + s = (a - a % d) / d, + o = a < d ? 0 : p[r - d], + g = y && p[(y - 1) * v + s * d + a % d], + p[r++] = (e + Math.floor((o + g) / 2)) % 256; + break; + case 4: + for (a = S = 0; S < v; a = S += 1) + e = t[m++], + s = (a - a % d) / d, + o = a < d ? 0 : p[r - d], + 0 === y ? g = A = 0 : (g = p[(y - 1) * v + s * d + a % d], + A = s && p[(y - 1) * v + (s - 1) * d + a % d]), + h = o + g - A, + c = Math.abs(h - o), + _ = Math.abs(h - g), + f = Math.abs(h - A), + u = c <= _ && c <= f ? o : _ <= f ? g : A, + p[r++] = (e + u) % 256; + break; + default: + throw new Error(n.getError(6018, t[m - 1])) + } + y++ + } + return p + }, + copyToImageData: function(t, e) { + var i, n, r, s, a, o, l, h, c, u, _; + if (n = this.colors, + c = null, + i = this.hasAlphaChannel, + this.palette.length && (c = null != (_ = this._decodedPalette) ? _ : this._decodedPalette = this.decodePalette(), + n = 4, + i = !0), + h = (r = t.data || t).length, + a = c || e, + s = o = 0, + 1 === n) + for (; s < h; ) + l = c ? 4 * e[s / 4] : o, + u = a[l++], + r[s++] = u, + r[s++] = u, + r[s++] = u, + r[s++] = i ? a[l++] : 255, + o = l; + else + for (; s < h; ) + l = c ? 4 * e[s / 4] : o, + r[s++] = a[l++], + r[s++] = a[l++], + r[s++] = a[l++], + r[s++] = i ? a[l++] : 255, + o = l + }, + decodePalette: function() { + var t, e, i, n, r, s, a, o, l; + for (i = this.palette, + s = this.transparency.indexed || [], + r = new Uint8Array((s.length || 0) + i.length), + n = 0, + t = 0, + e = a = 0, + o = i.length; a < o; e = a += 3) + r[n++] = i[e], + r[n++] = i[e + 1], + r[n++] = i[e + 2], + r[n++] = null != (l = s[t++]) ? l : 255; + return r + }, + render: function(t) { + var e, i; + return t.width = this.width, + t.height = this.height, + i = (e = t.getContext("2d")).createImageData(this.width, this.height), + this.copyToImageData(i, this.decodePixels()), + e.putImageData(i, 0, 0) + } + }, + e.exports = r + } + ), { + "../compression/zlib.min": 25, + "../core/CCDebug": 26 + }], + 297: [(function(t, e) { + "use strict"; + var i = t("../core/assets/CCAsset") + , n = t("../core/assets/CCSpriteFrame") + , r = cc.Class({ + name: "cc.ParticleAsset", + extends: i, + properties: { + spriteFrame: { + default: null, + type: n + } + } + }); + cc.ParticleAsset = e.exports = r + } + ), { + "../core/assets/CCAsset": 62, + "../core/assets/CCSpriteFrame": 74 + }], + 298: [(function(t, e) { + "use strict"; + var i = t("../core/platform/CCMacro") + , n = t("./CCParticleAsset") + , r = t("../core/components/CCRenderComponent") + , s = t("../compression/ZipUtils") + , a = t("./CCPNGReader") + , o = t("./CCTIFFReader") + , l = t("../core/utils/texture-util") + , h = (t("../core/renderer/render-flow"), + t("./particle-simulator")) + , c = (t("../core/assets/material/CCMaterial"), + t("../core/utils/blend-func")) + , u = cc.Enum({ + GRAVITY: 0, + RADIUS: 1 + }) + , _ = cc.Enum({ + FREE: 0, + RELATIVE: 1, + GROUPED: 2 + }) + , f = { + preview: { + default: !0, + editorOnly: !0, + notify: !1, + animatable: !1, + tooltip: !1 + }, + _custom: !1, + custom: { + get: function() { + return this._custom + }, + set: function(t) { + this._custom !== t && (this._custom = t, + this._applyFile()) + }, + animatable: !1, + tooltip: !1 + }, + _file: { + default: null, + type: n + }, + file: { + get: function() { + return this._file + }, + set: function(t) { + this._file !== t && (this._file = t, + t ? this._applyFile() : this.custom = !0) + }, + animatable: !1, + type: n, + tooltip: !1 + }, + _spriteFrame: { + default: null, + type: cc.SpriteFrame + }, + spriteFrame: { + get: function() { + return this._spriteFrame + }, + set: function(t) { + var e = this._renderSpriteFrame; + e !== t && (this._renderSpriteFrame = t, + t && !t._uuid || (this._spriteFrame = t), + this._applySpriteFrame(e)) + }, + type: cc.SpriteFrame, + tooltip: !1 + }, + _texture: { + default: null, + type: cc.Texture2D, + editorOnly: !0 + }, + texture: { + get: function() { + return this._getTexture() + }, + set: function(t) { + t && cc.warnID(6017) + }, + type: cc.Texture2D, + tooltip: !1, + readonly: !0, + visible: !1, + animatable: !1 + }, + particleCount: { + visible: !1, + get: function() { + return this._simulator.particles.length + }, + readonly: !0 + }, + _stopped: !0, + stopped: { + get: function() { + return this._stopped + }, + animatable: !1, + visible: !1 + }, + playOnLoad: !0, + autoRemoveOnFinish: { + default: !1, + animatable: !1, + tooltip: !1 + }, + active: { + get: function() { + return this._simulator.active + }, + visible: !1 + }, + totalParticles: 150, + duration: -1, + emissionRate: 10, + life: 1, + lifeVar: 0, + _startColor: null, + startColor: { + type: cc.Color, + get: function() { + return this._startColor + }, + set: function(t) { + this._startColor.r = t.r, + this._startColor.g = t.g, + this._startColor.b = t.b, + this._startColor.a = t.a + } + }, + _startColorVar: null, + startColorVar: { + type: cc.Color, + get: function() { + return this._startColorVar + }, + set: function(t) { + this._startColorVar.r = t.r, + this._startColorVar.g = t.g, + this._startColorVar.b = t.b, + this._startColorVar.a = t.a + } + }, + _endColor: null, + endColor: { + type: cc.Color, + get: function() { + return this._endColor + }, + set: function(t) { + this._endColor.r = t.r, + this._endColor.g = t.g, + this._endColor.b = t.b, + this._endColor.a = t.a + } + }, + _endColorVar: null, + endColorVar: { + type: cc.Color, + get: function() { + return this._endColorVar + }, + set: function(t) { + this._endColorVar.r = t.r, + this._endColorVar.g = t.g, + this._endColorVar.b = t.b, + this._endColorVar.a = t.a + } + }, + angle: 90, + angleVar: 20, + startSize: 50, + startSizeVar: 0, + endSize: 0, + endSizeVar: 0, + startSpin: 0, + startSpinVar: 0, + endSpin: 0, + endSpinVar: 0, + sourcePos: cc.Vec2.ZERO, + posVar: cc.Vec2.ZERO, + _positionType: { + default: _.FREE, + formerlySerializedAs: "positionType" + }, + positionType: { + type: _, + get: function() { + return this._positionType + }, + set: function(t) { + this._positionType = t, + this._updateMaterial() + } + }, + emitterMode: { + default: u.GRAVITY, + type: u + }, + gravity: cc.Vec2.ZERO, + speed: 180, + speedVar: 50, + tangentialAccel: 80, + tangentialAccelVar: 0, + radialAccel: 0, + radialAccelVar: 0, + rotationIsDir: !1, + startRadius: 0, + startRadiusVar: 0, + endRadius: 0, + endRadiusVar: 0, + rotatePerS: 0, + rotatePerSVar: 0 + } + , d = cc.Class({ + name: "cc.ParticleSystem", + extends: r, + mixins: [c], + editor: !1, + ctor: function() { + this.initProperties() + }, + initProperties: function() { + this._previewTimer = null, + this._focused = !1, + this._aspectRatio = 1, + this._simulator = new h(this), + this._startColor = cc.color(255, 255, 255, 255), + this._startColorVar = cc.color(0, 0, 0, 0), + this._endColor = cc.color(255, 255, 255, 0), + this._endColorVar = cc.color(0, 0, 0, 0), + this._renderSpriteFrame = null + }, + properties: f, + statics: { + DURATION_INFINITY: -1, + START_SIZE_EQUAL_TO_END_SIZE: -1, + START_RADIUS_EQUAL_TO_END_RADIUS: -1, + EmitterMode: u, + PositionType: _, + _PNGReader: a, + _TIFFReader: o + }, + onFocusInEditor: !1, + onLostFocusInEditor: !1, + _startPreview: !1, + _stopPreview: !1, + _convertTextureToSpriteFrame: !1, + __preload: function() { + this._super(), + this._custom && this.spriteFrame && !this._renderSpriteFrame ? this._applySpriteFrame(this.spriteFrame) : this._file && (this._custom ? !this._getTexture() && this._applyFile() : this._applyFile()), + this.playOnLoad && this.resetSystem() + }, + onDestroy: function() { + this.autoRemoveOnFinish && (this.autoRemoveOnFinish = !1), + this._buffer && (this._buffer.destroy(), + this._buffer = null), + this._simulator._uvFilled = 0, + this._super() + }, + lateUpdate: function(t) { + this._simulator.finished || this._simulator.step(t) + }, + addParticle: function() {}, + stopSystem: function() { + this._stopped = !0, + this._simulator.stop() + }, + resetSystem: function() { + this._stopped = !1, + this._simulator.reset(), + this.markForRender(!0) + }, + isFull: function() { + return this.particleCount >= this.totalParticles + }, + setTextureWithRect: function(t, e) { + t instanceof cc.Texture2D && (this.spriteFrame = new cc.SpriteFrame(t,e)) + }, + _applyFile: function() { + var t = this._file; + if (t) { + var e = this; + cc.assetManager.postLoadNative(t, (function(i) { + !i && t._nativeAsset ? e.isValid && (e._plistFile = t.nativeUrl, + e._custom || (e._spriteFrame !== t.spriteFrame && (e.spriteFrame = t.spriteFrame), + e._initWithDictionary(t._nativeAsset)), + e._spriteFrame ? !e._renderSpriteFrame && e._spriteFrame && e._applySpriteFrame(e.spriteFrame) : t.spriteFrame ? e.spriteFrame = t.spriteFrame : e._custom && e._initTextureWithDictionary(t._nativeAsset)) : cc.errorID(6029) + } + )) + } + }, + _initTextureWithDictionary: function(t) { + var e, n = cc.path.changeBasename(this._plistFile, t.textureFileName || ""); + if (t.textureFileName) + l.loadImage(n, (function(e, i) { + e ? (t.textureFileName = void 0, + this._initTextureWithDictionary(t)) : (cc.assetManager.assets.add(n, i), + this.spriteFrame = new cc.SpriteFrame(i)) + } + ), this); + else if (t.textureImageData) { + var r = t.textureImageData; + if (!(r && r.length > 0)) + return !1; + var h = cc.assetManager.assets.get(n); + if (!h) { + var c = s.unzipBase64AsArray(r, 1); + if (!c) + return cc.warnID(6030, this._file.name), + !1; + var u = (e = c).length > 8 && 137 === e[0] && 80 === e[1] && 78 === e[2] && 71 === e[3] && 13 === e[4] && 10 === e[5] && 26 === e[6] && 10 === e[7] ? i.ImageFormat.PNG : e.length > 2 && (73 === e[0] && 73 === e[1] || 77 === e[0] && 77 === e[1] || 255 === e[0] && 216 === e[1]) ? i.ImageFormat.TIFF : i.ImageFormat.UNKNOWN; + if (u !== i.ImageFormat.TIFF && u !== i.ImageFormat.PNG) + return cc.warnID(6031, this._file.name), + !1; + var _ = document.createElement("canvas"); + u === i.ImageFormat.PNG ? new a(c).render(_) : o.parseTIFF(c, _), + h = l.cacheImage(n, _) + } + h || cc.warnID(6032, this._file.name), + this.spriteFrame = new cc.SpriteFrame(h) + } + return !0 + }, + _initWithDictionary: function(t) { + this.totalParticles = parseInt(t.maxParticles || 0), + this.life = parseFloat(t.particleLifespan || 0), + this.lifeVar = parseFloat(t.particleLifespanVariance || 0); + var e = t.emissionRate; + this.emissionRate = e || Math.min(this.totalParticles / this.life, Number.MAX_VALUE), + this.duration = parseFloat(t.duration || 0), + this.srcBlendFactor = parseInt(t.blendFuncSource || i.SRC_ALPHA), + this.dstBlendFactor = parseInt(t.blendFuncDestination || i.ONE_MINUS_SRC_ALPHA); + var n = this._startColor; + n.r = 255 * parseFloat(t.startColorRed || 0), + n.g = 255 * parseFloat(t.startColorGreen || 0), + n.b = 255 * parseFloat(t.startColorBlue || 0), + n.a = 255 * parseFloat(t.startColorAlpha || 0); + var r = this._startColorVar; + r.r = 255 * parseFloat(t.startColorVarianceRed || 0), + r.g = 255 * parseFloat(t.startColorVarianceGreen || 0), + r.b = 255 * parseFloat(t.startColorVarianceBlue || 0), + r.a = 255 * parseFloat(t.startColorVarianceAlpha || 0); + var s = this._endColor; + s.r = 255 * parseFloat(t.finishColorRed || 0), + s.g = 255 * parseFloat(t.finishColorGreen || 0), + s.b = 255 * parseFloat(t.finishColorBlue || 0), + s.a = 255 * parseFloat(t.finishColorAlpha || 0); + var a = this._endColorVar; + if (a.r = 255 * parseFloat(t.finishColorVarianceRed || 0), + a.g = 255 * parseFloat(t.finishColorVarianceGreen || 0), + a.b = 255 * parseFloat(t.finishColorVarianceBlue || 0), + a.a = 255 * parseFloat(t.finishColorVarianceAlpha || 0), + this.startSize = parseFloat(t.startParticleSize || 0), + this.startSizeVar = parseFloat(t.startParticleSizeVariance || 0), + this.endSize = parseFloat(t.finishParticleSize || 0), + this.endSizeVar = parseFloat(t.finishParticleSizeVariance || 0), + this.positionType = parseFloat(void 0 !== t.positionType ? t.positionType : _.RELATIVE), + this.sourcePos.x = 0, + this.sourcePos.y = 0, + this.posVar.x = parseFloat(t.sourcePositionVariancex || 0), + this.posVar.y = parseFloat(t.sourcePositionVariancey || 0), + this.angle = parseFloat(t.angle || 0), + this.angleVar = parseFloat(t.angleVariance || 0), + this.startSpin = parseFloat(t.rotationStart || 0), + this.startSpinVar = parseFloat(t.rotationStartVariance || 0), + this.endSpin = parseFloat(t.rotationEnd || 0), + this.endSpinVar = parseFloat(t.rotationEndVariance || 0), + this.emitterMode = parseInt(t.emitterType || u.GRAVITY), + this.emitterMode === u.GRAVITY) { + this.gravity.x = parseFloat(t.gravityx || 0), + this.gravity.y = parseFloat(t.gravityy || 0), + this.speed = parseFloat(t.speed || 0), + this.speedVar = parseFloat(t.speedVariance || 0), + this.radialAccel = parseFloat(t.radialAcceleration || 0), + this.radialAccelVar = parseFloat(t.radialAccelVariance || 0), + this.tangentialAccel = parseFloat(t.tangentialAcceleration || 0), + this.tangentialAccelVar = parseFloat(t.tangentialAccelVariance || 0); + var o = t.rotationIsDir || ""; + null !== o ? (o = o.toString().toLowerCase(), + this.rotationIsDir = "true" === o || "1" === o) : this.rotationIsDir = !1 + } else { + if (this.emitterMode !== u.RADIUS) + return cc.warnID(6009), + !1; + this.startRadius = parseFloat(t.maxRadius || 0), + this.startRadiusVar = parseFloat(t.maxRadiusVariance || 0), + this.endRadius = parseFloat(t.minRadius || 0), + this.endRadiusVar = parseFloat(t.minRadiusVariance || 0), + this.rotatePerS = parseFloat(t.rotatePerSecond || 0), + this.rotatePerSVar = parseFloat(t.rotatePerSecondVariance || 0) + } + return this._initTextureWithDictionary(t), + !0 + }, + _validateRender: function() { + var t = this._getTexture(); + t && t.loaded ? this._super() : this.disableRender() + }, + _onTextureLoaded: function() { + this._simulator.updateUVs(!0), + this._syncAspect(), + this._updateMaterial(), + this.markForRender(!0) + }, + _syncAspect: function() { + var t = this._renderSpriteFrame._rect; + this._aspectRatio = t.width / t.height + }, + _applySpriteFrame: function() { + this._renderSpriteFrame = this._renderSpriteFrame || this._spriteFrame, + this._renderSpriteFrame && (this._renderSpriteFrame.textureLoaded() ? this._onTextureLoaded() : this._renderSpriteFrame.onTextureLoaded(this._onTextureLoaded, this)) + }, + _getTexture: function() { + return this._renderSpriteFrame && this._renderSpriteFrame.getTexture() || this._texture + }, + _updateMaterial: function() { + var t = this.getMaterial(0); + t && (t.define("CC_USE_MODEL", this._positionType !== _.FREE), + t.setProperty("texture", this._getTexture()), + c.prototype._updateMaterial.call(this)) + }, + _finishedSimulation: function() { + this.resetSystem(), + this.stopSystem(), + this.disableRender(), + this.autoRemoveOnFinish && this._stopped && this.node.destroy() + } + }); + cc.ParticleSystem = e.exports = d + } + ), { + "../compression/ZipUtils": 22, + "../core/assets/material/CCMaterial": 80, + "../core/components/CCRenderComponent": 115, + "../core/platform/CCMacro": 198, + "../core/renderer/render-flow": 225, + "../core/utils/blend-func": 261, + "../core/utils/texture-util": 275, + "./CCPNGReader": 296, + "./CCParticleAsset": 297, + "./CCTIFFReader": 299, + "./particle-simulator": 301, + "fire-url": void 0 + }], + 299: [(function(t, e) { + "use strict"; + var i = t("../core/CCDebug") + , n = { + _littleEndian: !1, + _tiffData: null, + _fileDirectories: [], + getUint8: function(t) { + return this._tiffData[t] + }, + getUint16: function(t) { + return this._littleEndian ? this._tiffData[t + 1] << 8 | this._tiffData[t] : this._tiffData[t] << 8 | this._tiffData[t + 1] + }, + getUint32: function(t) { + var e = this._tiffData; + return this._littleEndian ? e[t + 3] << 24 | e[t + 2] << 16 | e[t + 1] << 8 | e[t] : e[t] << 24 | e[t + 1] << 16 | e[t + 2] << 8 | e[t + 3] + }, + checkLittleEndian: function() { + var t = this.getUint16(0); + if (18761 === t) + this.littleEndian = !0; + else { + if (19789 !== t) + throw console.log(t), + TypeError(i.getError(6019)); + this.littleEndian = !1 + } + return this.littleEndian + }, + hasTowel: function() { + if (42 !== this.getUint16(2)) + throw RangeError(i.getError(6020)); + return !0 + }, + getFieldTypeName: function(t) { + var e = this.fieldTypeNames; + return t in e ? e[t] : null + }, + getFieldTagName: function(t) { + var e = this.fieldTagNames; + return t in e ? e[t] : (cc.logID(6021, t), + "Tag" + t) + }, + getFieldTypeLength: function(t) { + return -1 !== ["BYTE", "ASCII", "SBYTE", "UNDEFINED"].indexOf(t) ? 1 : -1 !== ["SHORT", "SSHORT"].indexOf(t) ? 2 : -1 !== ["LONG", "SLONG", "FLOAT"].indexOf(t) ? 4 : -1 !== ["RATIONAL", "SRATIONAL", "DOUBLE"].indexOf(t) ? 8 : null + }, + getFieldValues: function(t, e, i, n) { + var r = [] + , s = this.getFieldTypeLength(e); + if (s * i <= 4) + !1 === this.littleEndian ? r.push(n >>> 8 * (4 - s)) : r.push(n); + else + for (var a = 0; a < i; a++) { + var o = s * a; + s >= 8 ? -1 !== ["RATIONAL", "SRATIONAL"].indexOf(e) ? (r.push(this.getUint32(n + o)), + r.push(this.getUint32(n + o + 4))) : cc.logID(8e3) : r.push(this.getBytes(s, n + o)) + } + return "ASCII" === e && r.forEach((function(t, e, i) { + i[e] = String.fromCharCode(t) + } + )), + r + }, + getBytes: function(t, e) { + if (t <= 0) + cc.logID(8001); + else { + if (t <= 1) + return this.getUint8(e); + if (t <= 2) + return this.getUint16(e); + if (t <= 3) + return this.getUint32(e) >>> 8; + if (t <= 4) + return this.getUint32(e); + cc.logID(8002) + } + }, + getBits: function(t, e, i) { + i = i || 0; + var n, r, s = e + Math.floor(i / 8), a = i + t, o = 32 - t; + return a <= 0 ? cc.logID(6023) : a <= 8 ? (n = 24 + i, + r = this.getUint8(s)) : a <= 16 ? (n = 16 + i, + r = this.getUint16(s)) : a <= 32 ? (n = i, + r = this.getUint32(s)) : cc.logID(6022), + { + bits: r << n >>> o, + byteOffset: s + Math.floor(a / 8), + bitOffset: a % 8 + } + }, + parseFileDirectory: function(t) { + for (var e = this.getUint16(t), i = [], n = t + 2, r = 0; r < e; n += 12, + r++) { + var s = this.getUint16(n) + , a = this.getUint16(n + 2) + , o = this.getUint32(n + 4) + , l = this.getUint32(n + 8) + , h = this.getFieldTagName(s) + , c = this.getFieldTypeName(a) + , u = this.getFieldValues(h, c, o, l); + i[h] = { + type: c, + values: u + } + } + this._fileDirectories.push(i); + var _ = this.getUint32(n); + 0 !== _ && this.parseFileDirectory(_) + }, + clampColorSample: function(t, e) { + var i = Math.pow(2, 8 - e); + return Math.floor(t * i + (i - 1)) + }, + parseTIFF: function(t, e) { + if (e = e || document.createElement("canvas"), + this._tiffData = t, + this.canvas = e, + this.checkLittleEndian(), + this.hasTowel()) { + var n = this.getUint32(4); + this._fileDirectories.length = 0, + this.parseFileDirectory(n); + var r = this._fileDirectories[0] + , s = r.ImageWidth.values[0] + , a = r.ImageLength.values[0]; + this.canvas.width = s, + this.canvas.height = a; + var o = [] + , l = r.Compression ? r.Compression.values[0] : 1 + , h = r.SamplesPerPixel.values[0] + , c = [] + , u = 0 + , _ = !1; + if (r.BitsPerSample.values.forEach((function(t, e) { + c[e] = { + bitsPerSample: t, + hasBytesPerSample: !1, + bytesPerSample: void 0 + }, + t % 8 == 0 && (c[e].hasBytesPerSample = !0, + c[e].bytesPerSample = t / 8), + u += t + } + ), this), + u % 8 == 0) { + _ = !0; + var f = u / 8 + } + var d = r.StripOffsets.values + , p = d.length; + if (r.StripByteCounts) + var m = r.StripByteCounts.values; + else { + if (cc.logID(8003), + 1 !== p) + throw Error(i.getError(6024)); + m = [Math.ceil(s * a * u / 8)] + } + for (var y = 0; y < p; y++) { + var v = d[y]; + o[y] = []; + for (var g = m[y], A = 0, x = 0, b = 1, C = !0, T = [], S = 0, w = 0, E = 0; A < g; A += b) + switch (l) { + case 1: + var M = 0; + for (T = []; M < h; M++) { + if (!c[M].hasBytesPerSample) { + var D = this.getBits(c[M].bitsPerSample, v + A, x); + throw T.push(D.bits), + A = D.byteOffset - v, + x = D.bitOffset, + RangeError(i.getError(6025)) + } + var B = c[M].bytesPerSample * M; + T.push(this.getBytes(c[M].bytesPerSample, v + A + B)) + } + if (o[y].push(T), + !_) + throw b = 0, + RangeError(i.getError(6026)); + b = f; + break; + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + break; + case 32773: + if (C) { + C = !1; + var I = 1 + , P = 1 + , R = this.getInt8(v + A); + R >= 0 && R <= 127 ? I = R + 1 : R >= -127 && R <= -1 ? P = 1 - R : C = !0 + } else { + var O = this.getUint8(v + A); + for (M = 0; M < P; M++) { + if (!c[w].hasBytesPerSample) + throw RangeError(i.getError(6025)); + E = E << 8 * S | O, + ++S === c[w].bytesPerSample && (T.push(E), + E = S = 0, + w++), + w === h && (o[y].push(T), + T = [], + w = 0) + } + 0 == --I && (C = !0) + } + b = 1 + } + } + if (e.getContext) { + var L = this.canvas.getContext("2d"); + L.fillStyle = "rgba(255, 255, 255, 0)"; + var F = r.RowsPerStrip ? r.RowsPerStrip.values[0] : a + , V = o.length + , N = a % F + , k = 0 === N ? F : N + , G = F + , U = 0 + , z = r.PhotometricInterpretation.values[0] + , H = [] + , W = 0; + if (r.ExtraSamples && (W = (H = r.ExtraSamples.values).length), + r.ColorMap) + var j = r.ColorMap.values + , X = Math.pow(2, c[0].bitsPerSample); + for (y = 0; y < V; y++) { + y + 1 === V && (G = k); + for (var Y = o[y].length, q = U * y, J = 0, Z = 0; Z < Y; J++) + for (var K = 0; K < s; K++, + Z++) { + var Q = o[y][Z] + , $ = 0 + , tt = 0 + , et = 0 + , it = 1; + if (W > 0) + for (var nt = 0; nt < W; nt++) + if (1 === H[nt] || 2 === H[nt]) { + it = Q[3 + nt] / 256; + break + } + switch (z) { + case 0: + if (c[0].hasBytesPerSample) + var rt = Math.pow(16, 2 * c[0].bytesPerSample); + Q.forEach((function(t, e, i) { + i[e] = rt - t + } + )); + case 1: + $ = tt = et = this.clampColorSample(Q[0], c[0].bitsPerSample); + break; + case 2: + $ = this.clampColorSample(Q[0], c[0].bitsPerSample), + tt = this.clampColorSample(Q[1], c[1].bitsPerSample), + et = this.clampColorSample(Q[2], c[2].bitsPerSample); + break; + case 3: + if (void 0 === j) + throw Error(i.getError(6027)); + var st = Q[0]; + $ = this.clampColorSample(j[st], 16), + tt = this.clampColorSample(j[X + st], 16), + et = this.clampColorSample(j[2 * X + st], 16); + break; + default: + throw RangeError(i.getError(6028, z)) + } + L.fillStyle = "rgba(" + $ + ", " + tt + ", " + et + ", " + it + ")", + L.fillRect(K, q + J, 1, 1) + } + U = G + } + } + return this.canvas + } + }, + fieldTagNames: { + 315: "Artist", + 258: "BitsPerSample", + 265: "CellLength", + 264: "CellWidth", + 320: "ColorMap", + 259: "Compression", + 33432: "Copyright", + 306: "DateTime", + 338: "ExtraSamples", + 266: "FillOrder", + 289: "FreeByteCounts", + 288: "FreeOffsets", + 291: "GrayResponseCurve", + 290: "GrayResponseUnit", + 316: "HostComputer", + 270: "ImageDescription", + 257: "ImageLength", + 256: "ImageWidth", + 271: "Make", + 281: "MaxSampleValue", + 280: "MinSampleValue", + 272: "Model", + 254: "NewSubfileType", + 274: "Orientation", + 262: "PhotometricInterpretation", + 284: "PlanarConfiguration", + 296: "ResolutionUnit", + 278: "RowsPerStrip", + 277: "SamplesPerPixel", + 305: "Software", + 279: "StripByteCounts", + 273: "StripOffsets", + 255: "SubfileType", + 263: "Threshholding", + 282: "XResolution", + 283: "YResolution", + 326: "BadFaxLines", + 327: "CleanFaxData", + 343: "ClipPath", + 328: "ConsecutiveBadFaxLines", + 433: "Decode", + 434: "DefaultImageColor", + 269: "DocumentName", + 336: "DotRange", + 321: "HalftoneHints", + 346: "Indexed", + 347: "JPEGTables", + 285: "PageName", + 297: "PageNumber", + 317: "Predictor", + 319: "PrimaryChromaticities", + 532: "ReferenceBlackWhite", + 339: "SampleFormat", + 559: "StripRowCounts", + 330: "SubIFDs", + 292: "T4Options", + 293: "T6Options", + 325: "TileByteCounts", + 323: "TileLength", + 324: "TileOffsets", + 322: "TileWidth", + 301: "TransferFunction", + 318: "WhitePoint", + 344: "XClipPathUnits", + 286: "XPosition", + 529: "YCbCrCoefficients", + 531: "YCbCrPositioning", + 530: "YCbCrSubSampling", + 345: "YClipPathUnits", + 287: "YPosition", + 37378: "ApertureValue", + 40961: "ColorSpace", + 36868: "DateTimeDigitized", + 36867: "DateTimeOriginal", + 34665: "Exif IFD", + 36864: "ExifVersion", + 33434: "ExposureTime", + 41728: "FileSource", + 37385: "Flash", + 40960: "FlashpixVersion", + 33437: "FNumber", + 42016: "ImageUniqueID", + 37384: "LightSource", + 37500: "MakerNote", + 37377: "ShutterSpeedValue", + 37510: "UserComment", + 33723: "IPTC", + 34675: "ICC Profile", + 700: "XMP", + 42112: "GDAL_METADATA", + 42113: "GDAL_NODATA", + 34377: "Photoshop" + }, + fieldTypeNames: { + 1: "BYTE", + 2: "ASCII", + 3: "SHORT", + 4: "LONG", + 5: "RATIONAL", + 6: "SBYTE", + 7: "UNDEFINED", + 8: "SSHORT", + 9: "SLONG", + 10: "SRATIONAL", + 11: "FLOAT", + 12: "DOUBLE" + } + }; + e.exports = n + } + ), { + "../core/CCDebug": 26 + }], + 300: [(function(t) { + "use strict"; + t("./CCParticleAsset"), + t("./CCParticleSystem"), + t("./particle-simulator"), + t("./particle-system-assembler") + } + ), { + "./CCParticleAsset": 297, + "./CCParticleSystem": 298, + "./particle-simulator": 301, + "./particle-system-assembler": 302 + }], + 301: [(function(t, e) { + "use strict"; + var i = t("../core/platform/js") + , n = t("../core/utils/misc") + , r = cc.v2(0, 0) + , s = cc.v2() + , a = cc.v2() + , o = cc.v2() + , l = cc.v2() + , h = function() { + this.pos = cc.v2(0, 0), + this.startPos = cc.v2(0, 0), + this.color = cc.color(0, 0, 0, 255), + this.deltaColor = { + r: 0, + g: 0, + b: 0, + a: 255 + }, + this.preciseColor = { + r: 0, + g: 0, + b: 0, + a: 255 + }, + this.size = 0, + this.deltaSize = 0, + this.rotation = 0, + this.deltaRotation = 0, + this.timeToLive = 0, + this.drawPos = cc.v2(0, 0), + this.aspectRatio = 1, + this.dir = cc.v2(0, 0), + this.radialAccel = 0, + this.tangentialAccel = 0, + this.angle = 0, + this.degreesPerSecond = 0, + this.radius = 0, + this.deltaRadius = 0 + } + , c = new i.Pool(function(t) { + t.pos.set(r), + t.startPos.set(r), + t.color._val = 4278190080, + t.deltaColor.r = t.deltaColor.g = t.deltaColor.b = 0, + t.deltaColor.a = 255, + t.size = 0, + t.deltaSize = 0, + t.rotation = 0, + t.deltaRotation = 0, + t.timeToLive = 0, + t.drawPos.set(r), + t.aspectRatio = 1, + t.dir.set(r), + t.radialAccel = 0, + t.tangentialAccel = 0, + t.angle = 0, + t.degreesPerSecond = 0, + t.radius = 0, + t.deltaRadius = 0 + } + ,1024); + c.get = function() { + return this._get() || new h + } + ; + var u = function(t) { + this.sys = t, + this.particles = [], + this.active = !1, + this.readyToPlay = !0, + this.finished = !1, + this.elapsed = 0, + this.emitCounter = 0, + this._uvFilled = 0, + this._worldRotation = 0 + }; + function _(t) { + for (var e = 0, i = t; i; ) + e += i.angle, + i = i.parent; + return e + } + u.prototype.stop = function() { + this.active = !1, + this.readyToPlay = !1, + this.elapsed = this.sys.duration, + this.emitCounter = 0 + } + , + u.prototype.reset = function() { + this.active = !0, + this.readyToPlay = !0, + this.elapsed = 0, + this.emitCounter = 0, + this.finished = !1; + for (var t = this.particles, e = 0; e < t.length; ++e) + c.put(t[e]); + t.length = 0 + } + , + u.prototype.emitParticle = function(t) { + var e = this.sys + , i = n.clampf + , r = c.get(); + this.particles.push(r), + r.timeToLive = e.life + e.lifeVar * (Math.random() - .5) * 2; + var s, a, o, l, h = r.timeToLive = Math.max(0, r.timeToLive); + r.pos.x = e.sourcePos.x + e.posVar.x * (Math.random() - .5) * 2, + r.pos.y = e.sourcePos.y + e.posVar.y * (Math.random() - .5) * 2; + var u = e._startColor + , _ = e._startColorVar + , f = e._endColor + , d = e._endColorVar; + r.color.r = s = i(u.r + _.r * (Math.random() - .5) * 2, 0, 255), + r.color.g = a = i(u.g + _.g * (Math.random() - .5) * 2, 0, 255), + r.color.b = o = i(u.b + _.b * (Math.random() - .5) * 2, 0, 255), + r.color.a = l = i(u.a + _.a * (Math.random() - .5) * 2, 0, 255); + var p = r.color + , m = r.preciseColor; + m.r = p.r, + m.g = p.g, + m.b = p.b, + m.a = p.a, + r.deltaColor.r = (i(f.r + d.r * (Math.random() - .5) * 2, 0, 255) - s) / h, + r.deltaColor.g = (i(f.g + d.g * (Math.random() - .5) * 2, 0, 255) - a) / h, + r.deltaColor.b = (i(f.b + d.b * (Math.random() - .5) * 2, 0, 255) - o) / h, + r.deltaColor.a = (i(f.a + d.a * (Math.random() - .5) * 2, 0, 255) - l) / h; + var y = e.startSize + e.startSizeVar * (Math.random() - .5) * 2; + if (y = Math.max(0, y), + r.size = y, + e.endSize === cc.ParticleSystem.START_SIZE_EQUAL_TO_END_SIZE) + r.deltaSize = 0; + else { + var v = e.endSize + e.endSizeVar * (Math.random() - .5) * 2; + v = Math.max(0, v), + r.deltaSize = (v - y) / h + } + var g = e.startSpin + e.startSpinVar * (Math.random() - .5) * 2 + , A = e.endSpin + e.endSpinVar * (Math.random() - .5) * 2; + r.rotation = g, + r.deltaRotation = (A - g) / h, + r.startPos.x = t.x, + r.startPos.y = t.y, + r.aspectRatio = e._aspectRatio || 1; + var x = n.degreesToRadians(e.angle + this._worldRotation + e.angleVar * (Math.random() - .5) * 2); + if (e.emitterMode === cc.ParticleSystem.EmitterMode.GRAVITY) { + var b = e.speed + e.speedVar * (Math.random() - .5) * 2; + r.dir.x = Math.cos(x), + r.dir.y = Math.sin(x), + r.dir.mulSelf(b), + r.radialAccel = e.radialAccel + e.radialAccelVar * (Math.random() - .5) * 2, + r.tangentialAccel = e.tangentialAccel + e.tangentialAccelVar * (Math.random() - .5) * 2, + e.rotationIsDir && (r.rotation = -n.radiansToDegrees(Math.atan2(r.dir.y, r.dir.x))) + } else { + var C = e.startRadius + e.startRadiusVar * (Math.random() - .5) * 2 + , T = e.endRadius + e.endRadiusVar * (Math.random() - .5) * 2; + r.radius = C, + r.deltaRadius = e.endRadius === cc.ParticleSystem.START_RADIUS_EQUAL_TO_END_RADIUS ? 0 : (T - C) / h, + r.angle = x, + r.degreesPerSecond = n.degreesToRadians(e.rotatePerS + e.rotatePerSVar * (Math.random() - .5) * 2) + } + } + , + u.prototype.updateUVs = function(t) { + var e = this.sys._assembler; + if (e) { + var i = e.getBuffer(); + if (i && this.sys._renderSpriteFrame) { + for (var n = 4 * e._vfmt._bytes / 4, r = i._vData, s = this.sys._renderSpriteFrame.uv, a = t ? 0 : this._uvFilled, o = this.particles.length, l = a; l < o; l++) { + var h = l * n; + r[h + 2] = s[0], + r[h + 3] = s[1], + r[h + 7] = s[2], + r[h + 8] = s[3], + r[h + 12] = s[4], + r[h + 13] = s[5], + r[h + 17] = s[6], + r[h + 18] = s[7] + } + this._uvFilled = o + } + } + } + , + u.prototype.updateParticleBuffer = function(t, e, i, r) { + var s = i._vData + , a = i._uintVData + , o = e.x + , l = e.y + , h = t.size + , c = h + , u = t.aspectRatio; + u > 1 ? c = h / u : h = c * u; + var _ = h / 2 + , f = c / 2; + if (t.rotation) { + var d = -_ + , p = -f + , m = _ + , y = f + , v = -n.degreesToRadians(t.rotation) + , g = Math.cos(v) + , A = Math.sin(v); + s[r] = d * g - p * A + o, + s[r + 1] = d * A + p * g + l, + s[r + 5] = m * g - p * A + o, + s[r + 6] = m * A + p * g + l, + s[r + 10] = d * g - y * A + o, + s[r + 11] = d * A + y * g + l, + s[r + 15] = m * g - y * A + o, + s[r + 16] = m * A + y * g + l + } else + s[r] = o - _, + s[r + 1] = l - f, + s[r + 5] = o + _, + s[r + 6] = l - f, + s[r + 10] = o - _, + s[r + 11] = l + f, + s[r + 15] = o + _, + s[r + 16] = l + f; + a[r + 4] = t.color._val, + a[r + 9] = t.color._val, + a[r + 14] = t.color._val, + a[r + 19] = t.color._val + } + , + u.prototype.step = function(t) { + t = t > cc.director._maxParticleDeltaTime ? cc.director._maxParticleDeltaTime : t; + var e = this.sys + , i = e.node + , n = this.particles + , r = 4 * this.sys._assembler._vfmt._bytes / 4 + , h = cc.ParticleSystem.PositionType; + if (i._updateWorldMatrix(), + e.positionType === h.FREE) { + this._worldRotation = _(i); + var u = i._worldMatrix.m; + s.x = u[12], + s.y = u[13] + } else + e.positionType === h.RELATIVE ? (this._worldRotation = i.angle, + s.x = i.x, + s.y = i.y) : this._worldRotation = 0; + if (this.active && e.emissionRate) { + var f = 1 / e.emissionRate; + for (n.length < e.totalParticles && (this.emitCounter += t); n.length < e.totalParticles && this.emitCounter > f; ) + this.emitParticle(s), + this.emitCounter -= f; + this.elapsed += t, + -1 !== e.duration && e.duration < this.elapsed && e.stopSystem() + } + var d = e._assembler.getBuffer() + , p = n.length; + d.reset(), + d.request(4 * p, 6 * p), + p > this._uvFilled && this.updateUVs(); + for (var m = 0; m < n.length; ) { + a.x = a.y = o.x = o.y = l.x = l.y = 0; + var y = n[m]; + if (y.timeToLive -= t, + y.timeToLive > 0) { + if (e.emitterMode === cc.ParticleSystem.EmitterMode.GRAVITY) { + var v = l + , g = a + , A = o; + (y.pos.x || y.pos.y) && (g.set(y.pos), + g.normalizeSelf()), + A.set(g), + g.mulSelf(y.radialAccel); + var x = A.x; + A.x = -A.y, + A.y = x, + A.mulSelf(y.tangentialAccel), + v.set(g), + v.addSelf(A), + v.addSelf(e.gravity), + v.mulSelf(t), + y.dir.addSelf(v), + v.set(y.dir), + v.mulSelf(t), + y.pos.addSelf(v) + } else + y.angle += y.degreesPerSecond * t, + y.radius += y.deltaRadius * t, + y.pos.x = -Math.cos(y.angle) * y.radius, + y.pos.y = -Math.sin(y.angle) * y.radius; + var b = y.preciseColor + , C = y.deltaColor; + b.r += C.r * t, + b.g += C.g * t, + b.b += C.b * t, + b.a += C.a * t; + var T = y.color; + T.r = b.r, + T.g = b.g, + T.b = b.b, + T.a = b.a, + y.size += y.deltaSize * t, + y.size < 0 && (y.size = 0), + y.rotation += y.deltaRotation * t; + var S = a; + S.set(y.pos), + e.positionType !== h.GROUPED && S.addSelf(y.startPos); + var w = r * m; + this.updateParticleBuffer(y, S, d, w), + ++m + } else { + var E = n[m]; + m !== n.length - 1 && (n[m] = n[n.length - 1]), + c.put(E), + n.length-- + } + } + e._assembler._ia._count = 6 * n.length, + n.length > 0 ? d.uploadData() : this.active || this.readyToPlay || (this.finished = !0, + e._finishedSimulation()) + } + , + e.exports = u + } + ), { + "../core/platform/js": 214, + "../core/utils/misc": 267 + }], + 302: [(function(t, e) { + "use strict"; + var i = r(t("../core/renderer/assembler")) + , n = r(t("../renderer/core/input-assembler")); + function r(t) { + return t && t.__esModule ? t : { + default: t + } + } + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var a = t("./CCParticleSystem") + , o = t("../core/renderer/") + , l = t("../core/renderer/webgl/quad-buffer") + , h = t("../core/renderer/webgl/vertex-format").vfmtPosUvColor + , c = (function(t) { + var e, i; + function r(e) { + var i; + return (i = t.call(this, e) || this)._buffer = null, + i._ia = null, + i._vfmt = h, + i + } + i = t, + (e = r).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var a = r.prototype; + return a.getBuffer = function() { + return this._buffer || (this._buffer = new l(o._handle,h), + this._ia = new n.default, + this._ia._vertexBuffer = this._buffer._vb, + this._ia._indexBuffer = this._buffer._ib, + this._ia._start = 0, + this._ia._count = 0), + this._buffer + } + , + a.fillBuffers = function(t, e) { + if (this._ia) { + var i = cc.ParticleSystem.PositionType; + t.positionType === i.RELATIVE ? e.node = t.node.parent : e.node = t.node, + e.material = t._materials[0], + e._flushIA(this._ia) + } + } + , + r + } + )(i.default); + i.default.register(a, c), + e.exports = c + } + ), { + "../core/renderer/": 224, + "../core/renderer/assembler": 221, + "../core/renderer/webgl/quad-buffer": 253, + "../core/renderer/webgl/vertex-format": 256, + "../renderer/core/input-assembler": 305, + "./CCParticleSystem": 298 + }], + 303: [(function(t, e) { + "use strict"; + var i, n, r, s, a, o, l, h, c, u, _, f, d, p, m, y, v, g, A, x, b, C, T, S, w, E, M, D, B, I, P, R, O, L, F, V, N, k, G, U, z, H; + (function(t) { + t[t.COMPRESSED_RGB_S3TC_DXT1_EXT = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT", + t[t.COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777] = "COMPRESSED_RGBA_S3TC_DXT1_EXT", + t[t.COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778] = "COMPRESSED_RGBA_S3TC_DXT3_EXT", + t[t.COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT", + t[t.COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916] = "COMPRESSED_SRGB_S3TC_DXT1_EXT", + t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT", + t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT", + t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT", + t[t.COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840] = "COMPRESSED_RGB_PVRTC_4BPPV1_IMG", + t[t.COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841] = "COMPRESSED_RGB_PVRTC_2BPPV1_IMG", + t[t.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842] = "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG", + t[t.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843] = "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG", + t[t.COMPRESSED_RGB_ETC1_WEBGL = 36196] = "COMPRESSED_RGB_ETC1_WEBGL" + } + )(i || (i = {})), + (function(t) { + t[t.UNKNOWN = 0] = "UNKNOWN", + t[t.BUFFER = 1] = "BUFFER", + t[t.TEXTURE = 2] = "TEXTURE", + t[t.TEXTURE_VIEW = 3] = "TEXTURE_VIEW", + t[t.RENDER_PASS = 4] = "RENDER_PASS", + t[t.FRAMEBUFFER = 5] = "FRAMEBUFFER", + t[t.SAMPLER = 6] = "SAMPLER", + t[t.SHADER = 7] = "SHADER", + t[t.PIPELINE_LAYOUT = 8] = "PIPELINE_LAYOUT", + t[t.PIPELINE_STATE = 9] = "PIPELINE_STATE", + t[t.BINDING_LAYOUT = 10] = "BINDING_LAYOUT", + t[t.INPUT_ASSEMBLER = 11] = "INPUT_ASSEMBLER", + t[t.COMMAND_ALLOCATOR = 12] = "COMMAND_ALLOCATOR", + t[t.COMMAND_BUFFER = 13] = "COMMAND_BUFFER", + t[t.QUEUE = 14] = "QUEUE", + t[t.WINDOW = 15] = "WINDOW" + } + )(n || (n = {})), + (function(t) { + t[t.UNREADY = 0] = "UNREADY", + t[t.FAILED = 1] = "FAILED", + t[t.SUCCESS = 2] = "SUCCESS" + } + )(r || (r = {})), + (function() { + function t(t) { + this._gfxType = n.UNKNOWN, + this._status = r.UNREADY, + this._gfxType = t + } + Object.defineProperty(t.prototype, "gfxType", { + get: function() { + return this._gfxType + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(t.prototype, "status", { + get: function() { + return this._status + }, + enumerable: !0, + configurable: !0 + }) + } + )(), + (function(t) { + t.ATTR_POSITION = "a_position", + t.ATTR_NORMAL = "a_normal", + t.ATTR_TANGENT = "a_tangent", + t.ATTR_BITANGENT = "a_bitangent", + t.ATTR_WEIGHTS = "a_weights", + t.ATTR_JOINTS = "a_joints", + t.ATTR_COLOR = "a_color", + t.ATTR_COLOR1 = "a_color1", + t.ATTR_COLOR2 = "a_color2", + t.ATTR_TEX_COORD = "a_texCoord", + t.ATTR_TEX_COORD1 = "a_texCoord1", + t.ATTR_TEX_COORD2 = "a_texCoord2", + t.ATTR_TEX_COORD3 = "a_texCoord3", + t.ATTR_TEX_COORD4 = "a_texCoord4", + t.ATTR_TEX_COORD5 = "a_texCoord5", + t.ATTR_TEX_COORD6 = "a_texCoord6", + t.ATTR_TEX_COORD7 = "a_texCoord7", + t.ATTR_TEX_COORD8 = "a_texCoord8" + } + )(s || (s = {})), + (function(t) { + t[t.UNKNOWN = 0] = "UNKNOWN", + t[t.BOOL = 1] = "BOOL", + t[t.BOOL2 = 2] = "BOOL2", + t[t.BOOL3 = 3] = "BOOL3", + t[t.BOOL4 = 4] = "BOOL4", + t[t.INT = 5] = "INT", + t[t.INT2 = 6] = "INT2", + t[t.INT3 = 7] = "INT3", + t[t.INT4 = 8] = "INT4", + t[t.UINT = 9] = "UINT", + t[t.UINT2 = 10] = "UINT2", + t[t.UINT3 = 11] = "UINT3", + t[t.UINT4 = 12] = "UINT4", + t[t.FLOAT = 13] = "FLOAT", + t[t.FLOAT2 = 14] = "FLOAT2", + t[t.FLOAT3 = 15] = "FLOAT3", + t[t.FLOAT4 = 16] = "FLOAT4", + t[t.COLOR4 = 17] = "COLOR4", + t[t.MAT2 = 18] = "MAT2", + t[t.MAT2X3 = 19] = "MAT2X3", + t[t.MAT2X4 = 20] = "MAT2X4", + t[t.MAT3X2 = 21] = "MAT3X2", + t[t.MAT3 = 22] = "MAT3", + t[t.MAT3X4 = 23] = "MAT3X4", + t[t.MAT4X2 = 24] = "MAT4X2", + t[t.MAT4X3 = 25] = "MAT4X3", + t[t.MAT4 = 26] = "MAT4", + t[t.SAMPLER1D = 27] = "SAMPLER1D", + t[t.SAMPLER1D_ARRAY = 28] = "SAMPLER1D_ARRAY", + t[t.SAMPLER2D = 29] = "SAMPLER2D", + t[t.SAMPLER2D_ARRAY = 30] = "SAMPLER2D_ARRAY", + t[t.SAMPLER3D = 31] = "SAMPLER3D", + t[t.SAMPLER_CUBE = 32] = "SAMPLER_CUBE", + t[t.COUNT = 33] = "COUNT" + } + )(a || (a = {})), + (function(t) { + t[t.UNKNOWN = 0] = "UNKNOWN", + t[t.A8 = 1] = "A8", + t[t.L8 = 2] = "L8", + t[t.LA8 = 3] = "LA8", + t[t.R8 = 4] = "R8", + t[t.R8SN = 5] = "R8SN", + t[t.R8UI = 6] = "R8UI", + t[t.R8I = 7] = "R8I", + t[t.R16F = 8] = "R16F", + t[t.R16UI = 9] = "R16UI", + t[t.R16I = 10] = "R16I", + t[t.R32F = 11] = "R32F", + t[t.R32UI = 12] = "R32UI", + t[t.R32I = 13] = "R32I", + t[t.RG8 = 14] = "RG8", + t[t.RG8SN = 15] = "RG8SN", + t[t.RG8UI = 16] = "RG8UI", + t[t.RG8I = 17] = "RG8I", + t[t.RG16F = 18] = "RG16F", + t[t.RG16UI = 19] = "RG16UI", + t[t.RG16I = 20] = "RG16I", + t[t.RG32F = 21] = "RG32F", + t[t.RG32UI = 22] = "RG32UI", + t[t.RG32I = 23] = "RG32I", + t[t.RGB8 = 24] = "RGB8", + t[t.SRGB8 = 25] = "SRGB8", + t[t.RGB8SN = 26] = "RGB8SN", + t[t.RGB8UI = 27] = "RGB8UI", + t[t.RGB8I = 28] = "RGB8I", + t[t.RGB16F = 29] = "RGB16F", + t[t.RGB16UI = 30] = "RGB16UI", + t[t.RGB16I = 31] = "RGB16I", + t[t.RGB32F = 32] = "RGB32F", + t[t.RGB32UI = 33] = "RGB32UI", + t[t.RGB32I = 34] = "RGB32I", + t[t.RGBA8 = 35] = "RGBA8", + t[t.SRGB8_A8 = 36] = "SRGB8_A8", + t[t.RGBA8SN = 37] = "RGBA8SN", + t[t.RGBA8UI = 38] = "RGBA8UI", + t[t.RGBA8I = 39] = "RGBA8I", + t[t.RGBA16F = 40] = "RGBA16F", + t[t.RGBA16UI = 41] = "RGBA16UI", + t[t.RGBA16I = 42] = "RGBA16I", + t[t.RGBA32F = 43] = "RGBA32F", + t[t.RGBA32UI = 44] = "RGBA32UI", + t[t.RGBA32I = 45] = "RGBA32I", + t[t.R5G6B5 = 46] = "R5G6B5", + t[t.R11G11B10F = 47] = "R11G11B10F", + t[t.RGB5A1 = 48] = "RGB5A1", + t[t.RGBA4 = 49] = "RGBA4", + t[t.RGB10A2 = 50] = "RGB10A2", + t[t.RGB10A2UI = 51] = "RGB10A2UI", + t[t.RGB9E5 = 52] = "RGB9E5", + t[t.D16 = 53] = "D16", + t[t.D16S8 = 54] = "D16S8", + t[t.D24 = 55] = "D24", + t[t.D24S8 = 56] = "D24S8", + t[t.D32F = 57] = "D32F", + t[t.D32F_S8 = 58] = "D32F_S8", + t[t.BC1 = 59] = "BC1", + t[t.BC1_ALPHA = 60] = "BC1_ALPHA", + t[t.BC1_SRGB = 61] = "BC1_SRGB", + t[t.BC1_SRGB_ALPHA = 62] = "BC1_SRGB_ALPHA", + t[t.BC2 = 63] = "BC2", + t[t.BC2_SRGB = 64] = "BC2_SRGB", + t[t.BC3 = 65] = "BC3", + t[t.BC3_SRGB = 66] = "BC3_SRGB", + t[t.BC4 = 67] = "BC4", + t[t.BC4_SNORM = 68] = "BC4_SNORM", + t[t.BC5 = 69] = "BC5", + t[t.BC5_SNORM = 70] = "BC5_SNORM", + t[t.BC6H_UF16 = 71] = "BC6H_UF16", + t[t.BC6H_SF16 = 72] = "BC6H_SF16", + t[t.BC7 = 73] = "BC7", + t[t.BC7_SRGB = 74] = "BC7_SRGB", + t[t.ETC_RGB8 = 75] = "ETC_RGB8", + t[t.ETC2_RGB8 = 76] = "ETC2_RGB8", + t[t.ETC2_SRGB8 = 77] = "ETC2_SRGB8", + t[t.ETC2_RGB8_A1 = 78] = "ETC2_RGB8_A1", + t[t.ETC2_SRGB8_A1 = 79] = "ETC2_SRGB8_A1", + t[t.ETC2_RGBA8 = 80] = "ETC2_RGBA8", + t[t.ETC2_SRGB8_A8 = 81] = "ETC2_SRGB8_A8", + t[t.EAC_R11 = 82] = "EAC_R11", + t[t.EAC_R11SN = 83] = "EAC_R11SN", + t[t.EAC_RG11 = 84] = "EAC_RG11", + t[t.EAC_RG11SN = 85] = "EAC_RG11SN", + t[t.PVRTC_RGB2 = 86] = "PVRTC_RGB2", + t[t.PVRTC_RGBA2 = 87] = "PVRTC_RGBA2", + t[t.PVRTC_RGB4 = 88] = "PVRTC_RGB4", + t[t.PVRTC_RGBA4 = 89] = "PVRTC_RGBA4", + t[t.PVRTC2_2BPP = 90] = "PVRTC2_2BPP", + t[t.PVRTC2_4BPP = 91] = "PVRTC2_4BPP" + } + )(o || (o = {})), + (function(t) { + t[t.NONE = 0] = "NONE", + t[t.TRANSFER_SRC = 1] = "TRANSFER_SRC", + t[t.TRANSFER_DST = 2] = "TRANSFER_DST", + t[t.INDEX = 4] = "INDEX", + t[t.VERTEX = 8] = "VERTEX", + t[t.UNIFORM = 16] = "UNIFORM", + t[t.STORAGE = 32] = "STORAGE", + t[t.INDIRECT = 64] = "INDIRECT" + } + )(l || (l = {})), + (function(t) { + t[t.NONE = 0] = "NONE", + t[t.DEVICE = 1] = "DEVICE", + t[t.HOST = 2] = "HOST" + } + )(h || (h = {})), + (function(t) { + t[t.NONE = 0] = "NONE", + t[t.READ = 1] = "READ", + t[t.WRITE = 2] = "WRITE" + } + )(c || (c = {})), + (function(t) { + t[t.POINT_LIST = 0] = "POINT_LIST", + t[t.LINE_LIST = 1] = "LINE_LIST", + t[t.LINE_STRIP = 2] = "LINE_STRIP", + t[t.LINE_LOOP = 3] = "LINE_LOOP", + t[t.LINE_LIST_ADJACENCY = 4] = "LINE_LIST_ADJACENCY", + t[t.LINE_STRIP_ADJACENCY = 5] = "LINE_STRIP_ADJACENCY", + t[t.ISO_LINE_LIST = 6] = "ISO_LINE_LIST", + t[t.TRIANGLE_LIST = 7] = "TRIANGLE_LIST", + t[t.TRIANGLE_STRIP = 8] = "TRIANGLE_STRIP", + t[t.TRIANGLE_FAN = 9] = "TRIANGLE_FAN", + t[t.TRIANGLE_LIST_ADJACENCY = 10] = "TRIANGLE_LIST_ADJACENCY", + t[t.TRIANGLE_STRIP_ADJACENCY = 11] = "TRIANGLE_STRIP_ADJACENCY", + t[t.TRIANGLE_PATCH_ADJACENCY = 12] = "TRIANGLE_PATCH_ADJACENCY", + t[t.QUAD_PATCH_LIST = 13] = "QUAD_PATCH_LIST" + } + )(u || (u = {})), + (function(t) { + t[t.FILL = 0] = "FILL", + t[t.POINT = 1] = "POINT", + t[t.LINE = 2] = "LINE" + } + )(_ || (_ = {})), + (function(t) { + t[t.GOURAND = 0] = "GOURAND", + t[t.FLAT = 1] = "FLAT" + } + )(f || (f = {})), + (function(t) { + t[t.NONE = 0] = "NONE", + t[t.FRONT = 1] = "FRONT", + t[t.BACK = 2] = "BACK" + } + )(d || (d = {})), + (function(t) { + t[t.NEVER = 0] = "NEVER", + t[t.LESS = 1] = "LESS", + t[t.EQUAL = 2] = "EQUAL", + t[t.LESS_EQUAL = 3] = "LESS_EQUAL", + t[t.GREATER = 4] = "GREATER", + t[t.NOT_EQUAL = 5] = "NOT_EQUAL", + t[t.GREATER_EQUAL = 6] = "GREATER_EQUAL", + t[t.ALWAYS = 7] = "ALWAYS" + } + )(p || (p = {})), + (function(t) { + t[t.ZERO = 0] = "ZERO", + t[t.KEEP = 1] = "KEEP", + t[t.REPLACE = 2] = "REPLACE", + t[t.INCR = 3] = "INCR", + t[t.DECR = 4] = "DECR", + t[t.INVERT = 5] = "INVERT", + t[t.INCR_WRAP = 6] = "INCR_WRAP", + t[t.DECR_WRAP = 7] = "DECR_WRAP" + } + )(m || (m = {})), + (function(t) { + t[t.ADD = 0] = "ADD", + t[t.SUB = 1] = "SUB", + t[t.REV_SUB = 2] = "REV_SUB", + t[t.MIN = 3] = "MIN", + t[t.MAX = 4] = "MAX" + } + )(y || (y = {})), + (function(t) { + t[t.ZERO = 0] = "ZERO", + t[t.ONE = 1] = "ONE", + t[t.SRC_ALPHA = 2] = "SRC_ALPHA", + t[t.DST_ALPHA = 3] = "DST_ALPHA", + t[t.ONE_MINUS_SRC_ALPHA = 4] = "ONE_MINUS_SRC_ALPHA", + t[t.ONE_MINUS_DST_ALPHA = 5] = "ONE_MINUS_DST_ALPHA", + t[t.SRC_COLOR = 6] = "SRC_COLOR", + t[t.DST_COLOR = 7] = "DST_COLOR", + t[t.ONE_MINUS_SRC_COLOR = 8] = "ONE_MINUS_SRC_COLOR", + t[t.ONE_MINUS_DST_COLOR = 9] = "ONE_MINUS_DST_COLOR", + t[t.SRC_ALPHA_SATURATE = 10] = "SRC_ALPHA_SATURATE", + t[t.CONSTANT_COLOR = 11] = "CONSTANT_COLOR", + t[t.ONE_MINUS_CONSTANT_COLOR = 12] = "ONE_MINUS_CONSTANT_COLOR", + t[t.CONSTANT_ALPHA = 13] = "CONSTANT_ALPHA", + t[t.ONE_MINUS_CONSTANT_ALPHA = 14] = "ONE_MINUS_CONSTANT_ALPHA" + } + )(v || (v = {})), + (function(t) { + t[t.NONE = 0] = "NONE", + t[t.R = 1] = "R", + t[t.G = 2] = "G", + t[t.B = 4] = "B", + t[t.A = 8] = "A", + t[t.ALL = 15] = "ALL" + } + )(g || (g = {})), + (function(t) { + t[t.NONE = 0] = "NONE", + t[t.POINT = 1] = "POINT", + t[t.LINEAR = 2] = "LINEAR", + t[t.ANISOTROPIC = 3] = "ANISOTROPIC" + } + )(A || (A = {})), + (function(t) { + t[t.WRAP = 0] = "WRAP", + t[t.MIRROR = 1] = "MIRROR", + t[t.CLAMP = 2] = "CLAMP", + t[t.BORDER = 3] = "BORDER" + } + )(x || (x = {})), + (function(t) { + t[t.TEX1D = 0] = "TEX1D", + t[t.TEX2D = 1] = "TEX2D", + t[t.TEX3D = 2] = "TEX3D" + } + )(b || (b = {})), + (function(t) { + t[t.NONE = 0] = "NONE", + t[t.TRANSFER_SRC = 1] = "TRANSFER_SRC", + t[t.TRANSFER_DST = 2] = "TRANSFER_DST", + t[t.SAMPLED = 4] = "SAMPLED", + t[t.STORAGE = 8] = "STORAGE", + t[t.COLOR_ATTACHMENT = 16] = "COLOR_ATTACHMENT", + t[t.DEPTH_STENCIL_ATTACHMENT = 32] = "DEPTH_STENCIL_ATTACHMENT", + t[t.TRANSIENT_ATTACHMENT = 64] = "TRANSIENT_ATTACHMENT", + t[t.INPUT_ATTACHMENT = 128] = "INPUT_ATTACHMENT" + } + )(C || (C = {})), + (function(t) { + t[t.X1 = 0] = "X1", + t[t.X2 = 1] = "X2", + t[t.X4 = 2] = "X4", + t[t.X8 = 3] = "X8", + t[t.X16 = 4] = "X16", + t[t.X32 = 5] = "X32", + t[t.X64 = 6] = "X64" + } + )(T || (T = {})), + (function(t) { + t[t.NONE = 0] = "NONE", + t[t.GEN_MIPMAP = 1] = "GEN_MIPMAP", + t[t.CUBEMAP = 2] = "CUBEMAP", + t[t.BAKUP_BUFFER = 4] = "BAKUP_BUFFER" + } + )(S || (S = {})), + (function(t) { + t[t.TV1D = 0] = "TV1D", + t[t.TV2D = 1] = "TV2D", + t[t.TV3D = 2] = "TV3D", + t[t.CUBE = 3] = "CUBE", + t[t.TV1D_ARRAY = 4] = "TV1D_ARRAY", + t[t.TV2D_ARRAY = 5] = "TV2D_ARRAY" + } + )(w || (w = {})), + (function(t) { + t[t.VERTEX = 0] = "VERTEX", + t[t.HULL = 1] = "HULL", + t[t.DOMAIN = 2] = "DOMAIN", + t[t.GEOMETRY = 3] = "GEOMETRY", + t[t.FRAGMENT = 4] = "FRAGMENT", + t[t.COMPUTE = 5] = "COMPUTE", + t[t.COUNT = 6] = "COUNT" + } + )(E || (E = {})), + (function(t) { + t[t.UNKNOWN = 0] = "UNKNOWN", + t[t.UNIFORM_BUFFER = 1] = "UNIFORM_BUFFER", + t[t.SAMPLER = 2] = "SAMPLER", + t[t.STORAGE_BUFFER = 3] = "STORAGE_BUFFER" + } + )(M || (M = {})), + (function(t) { + t[t.PRIMARY = 0] = "PRIMARY", + t[t.SECONDARY = 1] = "SECONDARY" + } + )(D || (D = {})), + (function(t) { + t[t.LOAD = 0] = "LOAD", + t[t.CLEAR = 1] = "CLEAR", + t[t.DISCARD = 2] = "DISCARD" + } + )(B || (B = {})), + (function(t) { + t[t.STORE = 0] = "STORE", + t[t.DISCARD = 1] = "DISCARD" + } + )(I || (I = {})), + (function(t) { + t[t.UNDEFINED = 0] = "UNDEFINED", + t[t.GENERAL = 1] = "GENERAL", + t[t.COLOR_ATTACHMENT_OPTIMAL = 2] = "COLOR_ATTACHMENT_OPTIMAL", + t[t.DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3] = "DEPTH_STENCIL_ATTACHMENT_OPTIMAL", + t[t.DEPTH_STENCIL_READONLY_OPTIMAL = 4] = "DEPTH_STENCIL_READONLY_OPTIMAL", + t[t.SHADER_READONLY_OPTIMAL = 5] = "SHADER_READONLY_OPTIMAL", + t[t.TRANSFER_SRC_OPTIMAL = 6] = "TRANSFER_SRC_OPTIMAL", + t[t.TRANSFER_DST_OPTIMAL = 7] = "TRANSFER_DST_OPTIMAL", + t[t.PREINITIALIZED = 8] = "PREINITIALIZED", + t[t.PRESENT_SRC = 9] = "PRESENT_SRC" + } + )(P || (P = {})), + (function(t) { + t[t.GRAPHICS = 0] = "GRAPHICS", + t[t.COMPUTE = 1] = "COMPUTE", + t[t.RAY_TRACING = 2] = "RAY_TRACING" + } + )(R || (R = {})), + (function(t) { + t[t.VIEWPORT = 0] = "VIEWPORT", + t[t.SCISSOR = 1] = "SCISSOR", + t[t.LINE_WIDTH = 2] = "LINE_WIDTH", + t[t.DEPTH_BIAS = 3] = "DEPTH_BIAS", + t[t.BLEND_CONSTANTS = 4] = "BLEND_CONSTANTS", + t[t.DEPTH_BOUNDS = 5] = "DEPTH_BOUNDS", + t[t.STENCIL_WRITE_MASK = 6] = "STENCIL_WRITE_MASK", + t[t.STENCIL_COMPARE_MASK = 7] = "STENCIL_COMPARE_MASK" + } + )(O || (O = {})), + (function(t) { + t[t.FRONT = 0] = "FRONT", + t[t.BACK = 1] = "BACK", + t[t.ALL = 2] = "ALL" + } + )(L || (L = {})), + (function(t) { + t[t.GRAPHICS = 0] = "GRAPHICS", + t[t.COMPUTE = 1] = "COMPUTE", + t[t.TRANSFER = 2] = "TRANSFER" + } + )(F || (F = {})), + (function(t) { + t[t.NONE = 0] = "NONE", + t[t.COLOR = 1] = "COLOR", + t[t.DEPTH = 2] = "DEPTH", + t[t.STENCIL = 4] = "STENCIL", + t[t.DEPTH_STENCIL = 6] = "DEPTH_STENCIL", + t[t.ALL = 7] = "ALL" + } + )(V || (V = {})), + (function(t) { + t[t.DEFAULT = 100] = "DEFAULT" + } + )(N || (N = {})), + (function(t) { + t[t.MIN = 0] = "MIN", + t[t.MAX = 255] = "MAX", + t[t.DEFAULT = 128] = "DEFAULT" + } + )(k || (k = {})), + (function(t) { + t[t.UBO_GLOBAL = 23] = "UBO_GLOBAL", + t[t.UBO_SHADOW = 22] = "UBO_SHADOW", + t[t.UBO_LOCAL = 21] = "UBO_LOCAL", + t[t.UBO_FORWARD_LIGHTS = 20] = "UBO_FORWARD_LIGHTS", + t[t.UBO_SKINNING = 19] = "UBO_SKINNING", + t[t.UBO_SKINNING_TEXTURE = 18] = "UBO_SKINNING_TEXTURE", + t[t.UBO_UI = 17] = "UBO_UI", + t[t.SAMPLER_JOINTS = 25] = "SAMPLER_JOINTS", + t[t.SAMPLER_ENVIRONMENT = 26] = "SAMPLER_ENVIRONMENT", + t[t.CUSTUM_UBO_BINDING_END_POINT = 17] = "CUSTUM_UBO_BINDING_END_POINT", + t[t.CUSTOM_SAMPLER_BINDING_START_POINT = 30] = "CUSTOM_SAMPLER_BINDING_START_POINT" + } + )(G || (G = {})), + (function(t) { + t[t.minFilter = 0] = "minFilter", + t[t.magFilter = 1] = "magFilter", + t[t.mipFilter = 2] = "mipFilter", + t[t.addressU = 3] = "addressU", + t[t.addressV = 4] = "addressV", + t[t.addressW = 5] = "addressW", + t[t.maxAnisotropy = 6] = "maxAnisotropy", + t[t.cmpFunc = 7] = "cmpFunc", + t[t.minLOD = 8] = "minLOD", + t[t.maxLOD = 9] = "maxLOD", + t[t.mipLODBias = 10] = "mipLODBias", + t[t.borderColor = 11] = "borderColor", + t[t.total = 15] = "total" + } + )(H || (H = {})); + var W = {}; + W[W.bool = a.BOOL] = "bool", + W[W.int = a.INT] = "int", + W[W.ivec2 = a.INT2] = "ivec2invTypeParams", + W[W.ivec3 = a.INT3] = "ivec3", + W[W.ivec4 = a.INT4] = "ivec4", + W[W.float = a.FLOAT] = "float", + W[W.vec2 = a.FLOAT2] = "vec2", + W[W.vec3 = a.FLOAT3] = "vec3", + W[W.vec4 = a.FLOAT4] = "vec4", + W[W.mat2 = a.MAT2] = "mat2", + W[W.mat3 = a.MAT3] = "mat3", + W[W.mat4 = a.MAT4] = "mat4", + W[W.sampler2D = a.SAMPLER2D] = "sampler2D", + W[W.samplerCube = a.SAMPLER_CUBE] = "samplerCube"; + var j = ((U = {})[a.BOOL] = 4, + U[a.INT] = 4, + U[a.INT2] = 8, + U[a.INT3] = 12, + U[a.INT4] = 16, + U[a.FLOAT] = 4, + U[a.FLOAT2] = 8, + U[a.FLOAT3] = 12, + U[a.FLOAT4] = 16, + U[a.MAT2] = 16, + U[a.MAT3] = 36, + U[a.MAT4] = 64, + U[a.SAMPLER2D] = 4, + U[a.SAMPLER_CUBE] = 4, + U) + , X = ((z = {})[a.BOOL] = o.R32I, + z[a.INT] = o.R32I, + z[a.INT2] = o.RG32I, + z[a.INT3] = o.RGB32I, + z[a.INT4] = o.RGBA32I, + z[a.FLOAT] = o.R32F, + z[a.FLOAT2] = o.RG32F, + z[a.FLOAT3] = o.RGB32F, + z[a.FLOAT4] = o.RGBA32F, + z) + , Y = { + BACK: 1029, + FRONT: 1028, + NONE: 0, + ADD: 32774, + SUB: 32778, + REV_SUB: 32779, + ZERO: 0, + ONE: 1, + SRC_COLOR: 768, + ONE_MINUS_SRC_COLOR: 769, + DST_COLOR: 774, + ONE_MINUS_DST_COLOR: 775, + SRC_ALPHA: 770, + ONE_MINUS_SRC_ALPHA: 771, + DST_ALPHA: 772, + ONE_MINUS_DST_ALPHA: 773, + CONSTANT_COLOR: 32769, + ONE_MINUS_CONSTANT_COLOR: 32770, + CONSTANT_ALPHA: 32771, + ONE_MINUS_CONSTANT_ALPHA: 32772, + SRC_ALPHA_SATURATE: 776, + NEVER: 512, + LESS: 513, + EQUAL: 514, + LEQUAL: 515, + GREATER: 516, + NOTEQUAL: 517, + GEQUAL: 518, + ALWAYS: 519, + KEEP: 7680, + REPLACE: 7681, + INCR: 7682, + INCR_WRAP: 34055, + DECR: 7683, + DECR_WRAP: 34056, + INVERT: 5386 + }; + Object.assign(Y, N); + var q = { + murmurhash2_32_gc: function(t, e) { + for (var i, n = t.length, r = e ^ n, s = 0; n >= 4; ) + i = 1540483477 * (65535 & (i = 255 & t.charCodeAt(s) | (255 & t.charCodeAt(++s)) << 8 | (255 & t.charCodeAt(++s)) << 16 | (255 & t.charCodeAt(++s)) << 24)) + ((1540483477 * (i >>> 16) & 65535) << 16), + r = 1540483477 * (65535 & r) + ((1540483477 * (r >>> 16) & 65535) << 16) ^ (i = 1540483477 * (65535 & (i ^= i >>> 24)) + ((1540483477 * (i >>> 16) & 65535) << 16)), + n -= 4, + ++s; + switch (n) { + case 3: + r ^= (255 & t.charCodeAt(s + 2)) << 16; + case 2: + r ^= (255 & t.charCodeAt(s + 1)) << 8; + case 1: + r = 1540483477 * (65535 & (r ^= 255 & t.charCodeAt(s))) + ((1540483477 * (r >>> 16) & 65535) << 16) + } + return r = 1540483477 * (65535 & (r ^= r >>> 13)) + ((1540483477 * (r >>> 16) & 65535) << 16), + (r ^= r >>> 15) >>> 0 + }, + SamplerInfoIndex: H, + effectStructure: { + $techniques: [{ + $passes: [{ + depthStencilState: {}, + rasterizerState: {}, + blendState: { + targets: [{}] + }, + properties: { + any: { + sampler: {}, + inspector: {} + } + } + }] + }] + }, + typeMap: W, + sizeMap: j, + formatMap: X, + passParams: Y, + RenderQueue: { + OPAQUE: 0, + TRANSPARENT: 1, + OVERLAY: 2 + }, + RenderPriority: k, + GFXGetTypeSize: function(t) { + switch (t) { + case a.BOOL: + case a.INT: + case a.UINT: + case a.FLOAT: + return 4; + case a.BOOL2: + case a.INT2: + case a.UINT2: + case a.FLOAT2: + return 8; + case a.BOOL3: + case a.INT3: + case a.UINT3: + case a.FLOAT3: + return 12; + case a.BOOL4: + case a.INT4: + case a.UINT4: + case a.FLOAT4: + case a.MAT2: + return 16; + case a.MAT2X3: + return 24; + case a.MAT2X4: + return 32; + case a.MAT3X2: + return 24; + case a.MAT3: + return 36; + case a.MAT3X4: + return 48; + case a.MAT4X2: + case a.MAT4X2: + return 32; + case a.MAT4: + return 64; + case a.SAMPLER1D: + case a.SAMPLER1D_ARRAY: + case a.SAMPLER2D: + case a.SAMPLER2D_ARRAY: + case a.SAMPLER3D: + case a.SAMPLER_CUBE: + return 4; + default: + return 0 + } + }, + UniformBinding: G + }; + e.exports = q + } + ), {}], + 304: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = t("../memop") + , r = h(t("../enums")) + , s = t("../../core/value-types") + , a = h(t("./program-lib")) + , o = h(t("./view")) + , l = h(t("../gfx")); + function h(t) { + return t && t.__esModule ? t : { + default: t + } + } + var c = new s.Mat4 + , u = new n.RecyclePool(function() { + return { + stage: null, + items: null + } + } + ,8) + , _ = new n.RecyclePool(function() { + return new Float32Array(2) + } + ,8) + , f = new n.RecyclePool(function() { + return new Float32Array(3) + } + ,8) + , d = new n.RecyclePool(function() { + return new Float32Array(4) + } + ,8) + , p = new n.RecyclePool(function() { + return new Float32Array(9) + } + ,8) + , m = new n.RecyclePool(function() { + return new Float32Array(16) + } + ,8) + , y = new n.RecyclePool(function() { + return new Float32Array(64) + } + ,8) + , v = new n.RecyclePool(function() { + return new Int32Array(2) + } + ,8) + , g = new n.RecyclePool(function() { + return new Int32Array(3) + } + ,8) + , A = new n.RecyclePool(function() { + return new Int32Array(4) + } + ,8) + , x = new n.RecyclePool(function() { + return new Int32Array(64) + } + ,8) + , b = (function() { + function t(t, e) { + var i; + this._device = t, + this._programLib = new a.default(t), + this._opts = e, + this._type2defaultValue = ((i = {})[r.default.PARAM_INT] = 0, + i[r.default.PARAM_INT2] = new s.Vec2(0,0), + i[r.default.PARAM_INT3] = new s.Vec3(0,0,0), + i[r.default.PARAM_INT4] = new s.Vec4(0,0,0,0), + i[r.default.PARAM_FLOAT] = 0, + i[r.default.PARAM_FLOAT2] = new s.Vec2(0,0), + i[r.default.PARAM_FLOAT3] = new s.Vec3(0,0,0), + i[r.default.PARAM_FLOAT4] = new s.Vec4(0,0,0,0), + i[r.default.PARAM_COLOR4] = new s.Color(0,0,0,1), + i[r.default.PARAM_MAT3] = new s.Mat3, + i[r.default.PARAM_MAT4] = new s.Mat4, + i[r.default.PARAM_TEXTURE_2D] = e.defaultTexture, + i[r.default.PARAM_TEXTURE_CUBE] = e.defaultTextureCube, + i), + this._stage2fn = {}, + this._usedTextureUnits = 0, + this._viewPools = new n.RecyclePool(function() { + return new o.default + } + ,8), + this._drawItemsPools = new n.RecyclePool(function() { + return { + model: null, + node: null, + ia: null, + effect: null, + defines: null, + uniforms: null + } + } + ,100), + this._stageItemsPools = new n.RecyclePool(function() { + return new n.RecyclePool(function() { + return { + model: null, + node: null, + ia: null, + effect: null, + defines: null, + passes: [], + sortKey: -1, + uniforms: null + } + } + ,100) + } + ,16), + this._definesChanged = !1 + } + var e = t.prototype; + return e._resetTextuerUnit = function() { + this._usedTextureUnits = 0 + } + , + e._allocTextureUnit = function() { + var t = this._device + , e = this._usedTextureUnits; + return e >= t._caps.maxTextureUnits && console.warn("Trying to use " + e + " texture units while this GPU supports only " + t._caps.maxTextureUnits), + this._usedTextureUnits += 1, + e + } + , + e._registerStage = function(t, e) { + this._stage2fn[t] = e + } + , + e.clear = function() { + this._programLib.clear(), + this.reset() + } + , + e.reset = function() { + this._viewPools.reset(), + this._stageItemsPools.reset(), + this._definesChanged = !1 + } + , + e._requestView = function() { + return this._viewPools.add() + } + , + e._render = function(t, e) { + var i = this._device; + i.setFrameBuffer(t._framebuffer), + i.setViewport(t._rect.x, t._rect.y, t._rect.w, t._rect.h); + var n = {}; + t._clearFlags & r.default.CLEAR_COLOR && (n.color = s.Vec4.toArray([], t._color)), + t._clearFlags & r.default.CLEAR_DEPTH && (n.depth = t._depth), + t._clearFlags & r.default.CLEAR_STENCIL && (n.stencil = t._stencil), + i.clear(n), + this._drawItemsPools.reset(); + for (var a = 0; a < e._models.length; ++a) { + var o = e._models.data[a]; + if (0 != (o._cullingMask & t._cullingMask)) { + var l = this._drawItemsPools.add(); + o.extractDrawItem(l) + } + } + u.reset(); + for (var h = 0; h < t._stages.length; ++h) { + var c = t._stages[h] + , _ = this._stageItemsPools.add(); + _.reset(); + for (var f = 0; f < this._drawItemsPools.length; ++f) { + var d = this._drawItemsPools.data[f] + , p = d.effect.stagePasses[c]; + if (p && 0 !== p.length) { + var m = _.add(); + m.passes = p, + m.model = d.model, + m.node = d.node, + m.ia = d.ia, + m.effect = d.effect, + m.defines = d.defines, + m.sortKey = -1, + m.uniforms = d.uniforms + } + } + var y = u.add(); + y.stage = c, + y.items = _ + } + for (var v = 0; v < u.length; ++v) { + var g = u.data[v]; + (0, + this._stage2fn[g.stage])(t, g.items) + } + } + , + e._setProperty = function(t) { + var e = this._device + , i = t.value; + if (void 0 === i && (i = t.val), + void 0 === i && (i = this._type2defaultValue[t.type]), + void 0 !== i) + if (t.type === r.default.PARAM_TEXTURE_2D || t.type === r.default.PARAM_TEXTURE_CUBE) + if (Array.isArray(i)) { + if (i.length > t.count) + return void console.error("Failed to set property [" + t.name + "] : The length of texture array [" + i.length + "] is bigger than [" + t.count + "]."); + for (var n = x.add(), s = 0; s < i.length; ++s) + n[s] = this._allocTextureUnit(); + e.setTextureArray(t.name, i, n) + } else + e.setTexture(t.name, i, this._allocTextureUnit()); + else + t.directly ? e.setUniformDirectly(t.name, i) : e.setUniform(t.name, i); + else + console.warn("Failed to set technique property " + t.name + ", value not found.") + } + , + e._draw = function(t) { + var e = this._device + , i = this._programLib + , n = t.node + , r = t.ia + , a = t.passes + , o = t.effect; + _.reset(), + f.reset(), + d.reset(), + p.reset(), + m.reset(), + y.reset(), + v.reset(), + g.reset(), + A.reset(), + x.reset(), + n.getWorldMatrix(c), + e.setUniform("cc_matWorld", s.Mat4.toArray(m.add(), c)), + s.Mat4.invert(c, c), + s.Mat4.transpose(c, c), + e.setUniform("cc_matWorldIT", s.Mat4.toArray(m.add(), c)); + for (var h = this._defines, u = 0; u < a.length; ++u) { + var b = a[u]; + this._definesChanged && (b._programKey = null); + var C = r.count; + r._vertexBuffer && e.setVertexBuffer(0, r._vertexBuffer), + r._indexBuffer && e.setIndexBuffer(r._indexBuffer), + e.setPrimitiveType(r._primitiveType), + Object.setPrototypeOf(h, b._defines); + var T = i.getProgram(b, h, o.name); + e.setProgram(T); + for (var S = T._uniforms, w = b._properties, E = 0; E < S.length; E++) { + var M = w[S[E].name]; + void 0 !== M && this._setProperty(M) + } + e.setCullMode(b._cullMode), + b._blend && (e.enableBlend(), + e.setBlendFuncSep(b._blendSrc, b._blendDst, b._blendSrcAlpha, b._blendDstAlpha), + e.setBlendEqSep(b._blendEq, b._blendAlphaEq), + e.setBlendColor32(b._blendColor)), + b._depthTest && (e.enableDepthTest(), + e.setDepthFunc(b._depthFunc)), + b._depthWrite && e.enableDepthWrite(), + e.setStencilTest(b._stencilTest), + b._stencilTest === l.default.STENCIL_ENABLE && (e.setStencilFuncFront(b._stencilFuncFront, b._stencilRefFront, b._stencilMaskFront), + e.setStencilOpFront(b._stencilFailOpFront, b._stencilZFailOpFront, b._stencilZPassOpFront, b._stencilWriteMaskFront), + e.setStencilFuncBack(b._stencilFuncBack, b._stencilRefBack, b._stencilMaskBack), + e.setStencilOpBack(b._stencilFailOpBack, b._stencilZFailOpBack, b._stencilZPassOpBack, b._stencilWriteMaskBack)), + e.draw(r._start, C), + this._resetTextuerUnit() + } + } + , + t + } + )(); + i.default = b, + e.exports = i.default + } + ), { + "../../core/value-types": 282, + "../enums": 310, + "../gfx": 315, + "../memop": 327, + "./program-lib": 307, + "./view": 309 + }], + 305: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../gfx")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + var a = (function() { + function t(t, e, i) { + void 0 === i && (i = r.default.PT_TRIANGLES), + this._vertexBuffer = t, + this._indexBuffer = e, + this._primitiveType = i, + this._start = 0, + this._count = -1 + } + var e, i; + return e = t, + (i = [{ + key: "count", + get: function() { + return -1 !== this._count ? this._count : this._indexBuffer ? this._indexBuffer.count : this._vertexBuffer ? this._vertexBuffer.count : 0 + } + }]) && s(e.prototype, i), + t + } + )(); + i.default = a, + e.exports = i.default + } + ), { + "../gfx": 315 + }], + 306: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = a(t("../gfx")) + , r = a(t("../enums")) + , s = a(t("../../core/value-types/value-type")); + function a(t) { + return t && t.__esModule ? t : { + default: t + } + } + var o = (function() { + function t(t, e, i, r, s, a) { + void 0 === s && (s = {}), + void 0 === a && (a = {}), + this._name = t, + this._detailName = e, + this._programName = i, + this._programKey = null, + this._stage = r, + this._properties = s, + this._defines = a, + this._cullMode = n.default.CULL_BACK, + this._blend = !1, + this._blendEq = n.default.BLEND_FUNC_ADD, + this._blendAlphaEq = n.default.BLEND_FUNC_ADD, + this._blendSrc = n.default.BLEND_SRC_ALPHA, + this._blendDst = n.default.BLEND_ONE_MINUS_SRC_ALPHA, + this._blendSrcAlpha = n.default.BLEND_SRC_ALPHA, + this._blendDstAlpha = n.default.BLEND_ONE_MINUS_SRC_ALPHA, + this._blendColor = 4294967295, + this._depthTest = !1, + this._depthWrite = !1, + this._depthFunc = n.default.DS_FUNC_LESS, + this._stencilTest = n.default.STENCIL_INHERIT, + this._stencilFuncFront = n.default.DS_FUNC_ALWAYS, + this._stencilRefFront = 0, + this._stencilMaskFront = 255, + this._stencilFailOpFront = n.default.STENCIL_OP_KEEP, + this._stencilZFailOpFront = n.default.STENCIL_OP_KEEP, + this._stencilZPassOpFront = n.default.STENCIL_OP_KEEP, + this._stencilWriteMaskFront = 255, + this._stencilFuncBack = n.default.DS_FUNC_ALWAYS, + this._stencilRefBack = 0, + this._stencilMaskBack = 255, + this._stencilFailOpBack = n.default.STENCIL_OP_KEEP, + this._stencilZFailOpBack = n.default.STENCIL_OP_KEEP, + this._stencilZPassOpBack = n.default.STENCIL_OP_KEEP, + this._stencilWriteMaskBack = 255 + } + var e = t.prototype; + return e.setCullMode = function(t) { + void 0 === t && (t = n.default.CULL_BACK), + this._cullMode = t + } + , + e.setBlend = function(t, e, i, r, s, a, o, l) { + void 0 === t && (t = !1), + void 0 === e && (e = n.default.BLEND_FUNC_ADD), + void 0 === i && (i = n.default.BLEND_SRC_ALPHA), + void 0 === r && (r = n.default.BLEND_ONE_MINUS_SRC_ALPHA), + void 0 === s && (s = n.default.BLEND_FUNC_ADD), + void 0 === a && (a = n.default.BLEND_SRC_ALPHA), + void 0 === o && (o = n.default.BLEND_ONE_MINUS_SRC_ALPHA), + void 0 === l && (l = 4294967295), + this._blend = t, + this._blendEq = e, + this._blendSrc = i, + this._blendDst = r, + this._blendAlphaEq = s, + this._blendSrcAlpha = a, + this._blendDstAlpha = o, + this._blendColor = l + } + , + e.setDepth = function(t, e, i) { + void 0 === t && (t = !1), + void 0 === e && (e = !1), + void 0 === i && (i = n.default.DS_FUNC_LESS), + this._depthTest = t, + this._depthWrite = e, + this._depthFunc = i + } + , + e.setStencilFront = function(t, e, i, r, s, a, o, l) { + void 0 === t && (t = n.default.STENCIL_INHERIT), + void 0 === e && (e = n.default.DS_FUNC_ALWAYS), + void 0 === i && (i = 0), + void 0 === r && (r = 255), + void 0 === s && (s = n.default.STENCIL_OP_KEEP), + void 0 === a && (a = n.default.STENCIL_OP_KEEP), + void 0 === o && (o = n.default.STENCIL_OP_KEEP), + void 0 === l && (l = 255), + this._stencilTest = t, + this._stencilFuncFront = e, + this._stencilRefFront = i, + this._stencilMaskFront = r, + this._stencilFailOpFront = s, + this._stencilZFailOpFront = a, + this._stencilZPassOpFront = o, + this._stencilWriteMaskFront = l + } + , + e.setStencilEnabled = function(t) { + void 0 === t && (t = n.default.STENCIL_INHERIT), + this._stencilTest = t + } + , + e.setStencilBack = function(t, e, i, r, s, a, o, l) { + void 0 === t && (t = n.default.STENCIL_INHERIT), + void 0 === e && (e = n.default.DS_FUNC_ALWAYS), + void 0 === i && (i = 0), + void 0 === r && (r = 255), + void 0 === s && (s = n.default.STENCIL_OP_KEEP), + void 0 === a && (a = n.default.STENCIL_OP_KEEP), + void 0 === o && (o = n.default.STENCIL_OP_KEEP), + void 0 === l && (l = 255), + this._stencilTest = t, + this._stencilFuncBack = e, + this._stencilRefBack = i, + this._stencilMaskBack = r, + this._stencilFailOpBack = s, + this._stencilZFailOpBack = a, + this._stencilZPassOpBack = o, + this._stencilWriteMaskBack = l + } + , + e.setStage = function(t) { + this._stage = t + } + , + e.setProperties = function(t) { + this._properties = t + } + , + e.getProperty = function(t) { + if (this._properties[t]) + return this._properties[t].value + } + , + e.setProperty = function(t, e, i) { + var n = this._properties[t]; + if (!n) + return !1; + if (n.directly = i, + Array.isArray(e)) { + var a = n.value; + if (a.length !== e.length) + return void cc.warnID(9105, this._name, t); + for (var o = 0; o < e.length; o++) + a[o] = e[o] + } else + e && !ArrayBuffer.isView(e) ? n.type === r.default.PARAM_TEXTURE_2D ? n.value = e.getImpl() : e instanceof s.default ? e.constructor.toArray(n.value, e) : ("object" == typeof e && cc.warnID(9106, this._name, t), + n.value = e) : n.value = e; + return !0 + } + , + e.getDefine = function(t) { + return this._defines[t] + } + , + e.define = function(t, e, i) { + var n = this._defines[t]; + return !(!i && void 0 === n || (n !== e && (this._defines[t] = e, + this._programKey = null), + 0)) + } + , + e.clone = function() { + var e = new t(this._programName); + Object.assign(e, this); + var i = {} + , n = this._properties; + for (var r in n) { + var s = n[r] + , a = i[r] = {} + , o = s.value; + for (var l in Array.isArray(o) ? a.value = o.concat() : ArrayBuffer.isView(o) ? a.value = new o.__proto__.constructor(o) : a.value = o, + s) + "value" !== l && (a[l] = s[l]) + } + return e._properties = i, + e._defines = Object.assign({}, this._defines), + e + } + , + t + } + )(); + i.default = o, + e.exports = i.default + } + ), { + "../../core/value-types/value-type": 290, + "../enums": 310, + "../gfx": 315 + }], + 307: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../gfx")) && n.__esModule ? n : { + default: n + }, s = 0; + function a(t, e) { + for (var i = [], n = 0; n < t.length; n++) { + var r = t[n].name + , s = e[r]; + "number" != typeof s && (s = s ? 1 : 0), + i.push("#define " + r + " " + s) + } + return i.join("\n") + "\n" + } + function o(t, e, i) { + for (var n = t, r = 0; r < e.length; r++) { + var s = e[r].name + , a = i[s]; + if (Number.isInteger(a)) { + var o = new RegExp(s,"g"); + n = n.replace(o, a) + } + } + return n + } + function l(t) { + return t.replace(/#pragma for (\w+) in range\(\s*(\d+)\s*,\s*(\d+)\s*\)([\s\S]+?)#pragma endFor/g, (function(t, e, i, n, r) { + var s = "" + , a = parseInt(i) + , o = parseInt(n); + (a.isNaN || o.isNaN) && console.error("Unroll For Loops Error: begin and end of range must be an int num."); + for (var l = a; l < o; ++l) + s += r.replace(new RegExp("{" + e + "}","g"), l); + return s + } + )) + } + function h(t) { + return t.replace(/\bhighp\b/g, "mediump") + } + var c = (function() { + function t(t) { + this._device = t, + this._templates = {}, + this._cache = {}, + this._checkPrecision() + } + var e = t.prototype; + return e.clear = function() { + this._templates = {}, + this._cache = {} + } + , + e.define = function(t) { + var e = t.name + , i = t.defines + , n = t.glsl1 || t + , r = n.vert + , a = n.frag; + if (!this._templates[e]) { + for (var o = ++s, l = 0, h = 0; h < i.length; ++h) { + var c = i[h] + , u = 1; + if ("number" === c.type) { + var _ = c.range || []; + c.min = _[0] || 0, + c.max = _[1] || 4, + u = Math.ceil(Math.log2(c.max - c.min)), + c._map = function(t) { + return t - this.min << this._offset + } + .bind(c) + } else + c._map = function(t) { + return t ? 1 << this._offset : 0 + } + .bind(c); + c._offset = l, + l += u + } + var f = t.uniforms || []; + if (t.samplers) + for (var d = 0; d < t.samplers.length; d++) + f.push(t.samplers[d]); + if (t.blocks) + for (var p = 0; p < t.blocks.length; p++) + for (var m = t.blocks[p].defines, y = t.blocks[p].members, v = 0; v < y.length; v++) + f.push({ + defines: m, + name: y[v].name, + type: y[v].type + }); + this._templates[e] = { + id: o, + name: e, + vert: r, + frag: a, + defines: i, + attributes: t.attributes, + uniforms: f, + extensions: t.extensions + } + } + } + , + e.getTemplate = function(t) { + return this._templates[t] + } + , + e.hasProgram = function(t) { + return void 0 !== this._templates[t] + } + , + e.getKey = function(t, e) { + for (var i = this._templates[t], n = 0, r = 0; r < i.defines.length; ++r) { + var s = i.defines[r] + , a = e[s.name]; + void 0 !== a && (n |= s._map(a)) + } + return i.id + ":" + n + } + , + e.getProgram = function(t, e, i) { + var n = t._programKey = t._programKey || this.getKey(t._programName, e) + , s = this._cache[n]; + if (s) + return s; + var c = this._templates[t._programName] + , u = a(c.defines, e) + , _ = o(c.vert, c.defines, e); + _ = u + l(_), + this._highpSupported || (_ = h(_)); + var f = o(c.frag, c.defines, e); + f = u + l(f), + this._highpSupported || (f = h(f)); + var d = (s = new r.default.Program(this._device,{ + vert: _, + frag: f + })).link(); + if (d) { + var p = _.split("\n") + , m = f.split("\n") + , y = c.defines.length; + d.forEach((function(t) { + var e = t.line - 1 + , n = t.line - y + , r = ("vs" === t.type ? p : m)[e] + , s = t.info || "Failed to compile " + t.type + " " + t.fileID + " (ln " + n + "): \n " + t.message + ": \n " + r; + cc.error(i + " : " + s) + } + )) + } + return this._cache[n] = s, + s + } + , + e._checkPrecision = function() { + var t = this._device._gl + , e = !1; + if (t.getShaderPrecisionFormat) { + var i = t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.HIGH_FLOAT) + , n = t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.HIGH_FLOAT); + e = i && i.precision > 0 && n && n.precision > 0 + } + e || cc.warnID(9102), + this._highpSupported = e + } + , + t + } + )(); + i.default = c, + e.exports = i.default + } + ), { + "../gfx": 315 + }], + 308: [(function(t, e, i) { + "use strict"; + function n(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + i.__esModule = !0, + i.default = void 0; + var r = (function() { + function t(t, e) { + this._name = t, + this._passes = e + } + var e, i; + return t.prototype.clone = function() { + for (var e = [], i = 0; i < this._passes.length; i++) + e.push(this._passes[i].clone()); + return new t(this._name,e) + } + , + e = t, + (i = [{ + key: "name", + get: function() { + return this._name + } + }, { + key: "passes", + get: function() { + return this._passes + } + }]) && n(e.prototype, i), + t + } + )(); + i.default = r, + e.exports = i.default + } + ), {}], + 309: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("../../core/value-types"), s = (n = t("../enums")) && n.__esModule ? n : { + default: n + }, a = new r.Mat4, o = 0, l = (function() { + function t() { + this._id = o++, + this._priority = 0, + this._rect = { + x: 0, + y: 0, + w: 1, + h: 1 + }, + this._color = new r.Vec4(.3,.3,.3,1), + this._depth = 1, + this._stencil = 0, + this._clearFlags = s.default.CLEAR_COLOR | s.default.CLEAR_DEPTH, + this._clearModel = null, + this._matView = cc.mat4(), + this._matViewInv = cc.mat4(), + this._matProj = cc.mat4(), + this._matViewProj = cc.mat4(), + this._matInvViewProj = cc.mat4(), + this._stages = [], + this._cullingByID = !1, + this._framebuffer = null, + this._shadowLight = null, + this._cullingMask = 4294967295 + } + var e = t.prototype; + return e.getForward = function(t) { + var e = this._matView.m; + return r.Vec3.set(t, -e[2], -e[6], -e[10]) + } + , + e.getPosition = function(t) { + return r.Mat4.invert(a, this._matView), + r.Mat4.getTranslation(t, a) + } + , + t + } + )(); + i.default = l, + e.exports = i.default + } + ), { + "../../core/value-types": 282, + "../enums": 310 + }], + 310: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = t("./build/mappings") + , r = { + PROJ_PERSPECTIVE: 0, + PROJ_ORTHO: 1, + LIGHT_DIRECTIONAL: 0, + LIGHT_POINT: 1, + LIGHT_SPOT: 2, + LIGHT_AMBIENT: 3, + SHADOW_NONE: 0, + SHADOW_HARD: 1, + SHADOW_SOFT: 2, + PARAM_INT: n.typeMap.int, + PARAM_INT2: n.typeMap.ivec2, + PARAM_INT3: n.typeMap.ivec3, + PARAM_INT4: n.typeMap.ivec4, + PARAM_FLOAT: n.typeMap.float, + PARAM_FLOAT2: n.typeMap.vec2, + PARAM_FLOAT3: n.typeMap.vec3, + PARAM_FLOAT4: n.typeMap.vec4, + PARAM_MAT2: n.typeMap.mat2, + PARAM_MAT3: n.typeMap.mat3, + PARAM_MAT4: n.typeMap.mat4, + PARAM_TEXTURE_2D: n.typeMap.sampler2D, + PARAM_TEXTURE_CUBE: n.typeMap.samplerCube, + CLEAR_COLOR: 1, + CLEAR_DEPTH: 2, + CLEAR_STENCIL: 4, + CLEAR_SKYBOX: 8, + BUFFER_VIEW_INT8: 0, + BUFFER_VIEW_UINT8: 1, + BUFFER_VIEW_INT16: 2, + BUFFER_VIEW_UINT16: 3, + BUFFER_VIEW_INT32: 4, + BUFFER_VIEW_UINT32: 5, + BUFFER_VIEW_FLOAT32: 6 + }; + i.default = r, + e.exports = i.default + } + ), { + "./build/mappings": 303 + }], + 311: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r, s = h(t("./state")), a = t("./enums"), o = h(t("./texture-2d")), l = h(t("./texture-cube")); + function h(t) { + return t && t.__esModule ? t : { + default: t + } + } + function c(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + var u = ((n = {})[5124] = function(t, e, i) { + t.uniform1i(e, i) + } + , + n[5126] = function(t, e, i) { + t.uniform1f(e, i) + } + , + n[35664] = function(t, e, i) { + t.uniform2fv(e, i) + } + , + n[35665] = function(t, e, i) { + t.uniform3fv(e, i) + } + , + n[35666] = function(t, e, i) { + t.uniform4fv(e, i) + } + , + n[35667] = function(t, e, i) { + t.uniform2iv(e, i) + } + , + n[35668] = function(t, e, i) { + t.uniform3iv(e, i) + } + , + n[35669] = function(t, e, i) { + t.uniform4iv(e, i) + } + , + n[35670] = function(t, e, i) { + t.uniform1i(e, i) + } + , + n[35671] = function(t, e, i) { + t.uniform2iv(e, i) + } + , + n[35672] = function(t, e, i) { + t.uniform3iv(e, i) + } + , + n[35673] = function(t, e, i) { + t.uniform4iv(e, i) + } + , + n[35674] = function(t, e, i) { + t.uniformMatrix2fv(e, !1, i) + } + , + n[35675] = function(t, e, i) { + t.uniformMatrix3fv(e, !1, i) + } + , + n[35676] = function(t, e, i) { + t.uniformMatrix4fv(e, !1, i) + } + , + n[35678] = function(t, e, i) { + t.uniform1i(e, i) + } + , + n[35680] = function(t, e, i) { + t.uniform1i(e, i) + } + , + n) + , _ = ((r = {})[5124] = function(t, e, i) { + t.uniform1iv(e, i) + } + , + r[5126] = function(t, e, i) { + t.uniform1fv(e, i) + } + , + r[35664] = function(t, e, i) { + t.uniform2fv(e, i) + } + , + r[35665] = function(t, e, i) { + t.uniform3fv(e, i) + } + , + r[35666] = function(t, e, i) { + t.uniform4fv(e, i) + } + , + r[35667] = function(t, e, i) { + t.uniform2iv(e, i) + } + , + r[35668] = function(t, e, i) { + t.uniform3iv(e, i) + } + , + r[35669] = function(t, e, i) { + t.uniform4iv(e, i) + } + , + r[35670] = function(t, e, i) { + t.uniform1iv(e, i) + } + , + r[35671] = function(t, e, i) { + t.uniform2iv(e, i) + } + , + r[35672] = function(t, e, i) { + t.uniform3iv(e, i) + } + , + r[35673] = function(t, e, i) { + t.uniform4iv(e, i) + } + , + r[35674] = function(t, e, i) { + t.uniformMatrix2fv(e, !1, i) + } + , + r[35675] = function(t, e, i) { + t.uniformMatrix3fv(e, !1, i) + } + , + r[35676] = function(t, e, i) { + t.uniformMatrix4fv(e, !1, i) + } + , + r[35678] = function(t, e, i) { + t.uniform1iv(e, i) + } + , + r[35680] = function(t, e, i) { + t.uniform1iv(e, i) + } + , + r); + function f(t, e, i) { + if (e.blend !== i.blend) + return i.blend ? (t.enable(t.BLEND), + i.blendSrc !== a.enums.BLEND_CONSTANT_COLOR && i.blendSrc !== a.enums.BLEND_ONE_MINUS_CONSTANT_COLOR && i.blendDst !== a.enums.BLEND_CONSTANT_COLOR && i.blendDst !== a.enums.BLEND_ONE_MINUS_CONSTANT_COLOR || t.blendColor((i.blendColor >> 24) / 255, (i.blendColor >> 16 & 255) / 255, (i.blendColor >> 8 & 255) / 255, (255 & i.blendColor) / 255), + void (i.blendSep ? (t.blendFuncSeparate(i.blendSrc, i.blendDst, i.blendSrcAlpha, i.blendDstAlpha), + t.blendEquationSeparate(i.blendEq, i.blendAlphaEq)) : (t.blendFunc(i.blendSrc, i.blendDst), + t.blendEquation(i.blendEq)))) : void t.disable(t.BLEND); + !1 !== i.blend && (e.blendColor !== i.blendColor && t.blendColor((i.blendColor >> 24) / 255, (i.blendColor >> 16 & 255) / 255, (i.blendColor >> 8 & 255) / 255, (255 & i.blendColor) / 255), + e.blendSep === i.blendSep ? i.blendSep ? (e.blendSrc === i.blendSrc && e.blendDst === i.blendDst && e.blendSrcAlpha === i.blendSrcAlpha && e.blendDstAlpha === i.blendDstAlpha || t.blendFuncSeparate(i.blendSrc, i.blendDst, i.blendSrcAlpha, i.blendDstAlpha), + e.blendEq === i.blendEq && e.blendAlphaEq === i.blendAlphaEq || t.blendEquationSeparate(i.blendEq, i.blendAlphaEq)) : (e.blendSrc === i.blendSrc && e.blendDst === i.blendDst || t.blendFunc(i.blendSrc, i.blendDst), + e.blendEq !== i.blendEq && t.blendEquation(i.blendEq)) : i.blendSep ? (t.blendFuncSeparate(i.blendSrc, i.blendDst, i.blendSrcAlpha, i.blendDstAlpha), + t.blendEquationSeparate(i.blendEq, i.blendAlphaEq)) : (t.blendFunc(i.blendSrc, i.blendDst), + t.blendEquation(i.blendEq))) + } + function d(t, e, i) { + if (e.depthTest !== i.depthTest) + return i.depthTest ? (t.enable(t.DEPTH_TEST), + t.depthFunc(i.depthFunc), + void t.depthMask(i.depthWrite)) : void t.disable(t.DEPTH_TEST); + e.depthWrite !== i.depthWrite && t.depthMask(i.depthWrite), + !1 !== i.depthTest ? e.depthFunc !== i.depthFunc && t.depthFunc(i.depthFunc) : i.depthWrite && (i.depthTest = !0, + i.depthFunc = a.enums.DS_FUNC_ALWAYS, + t.enable(t.DEPTH_TEST), + t.depthFunc(i.depthFunc)) + } + function p(t, e, i) { + if (i.stencilTest !== a.enums.STENCIL_INHERIT) + return i.stencilTest !== e.stencilTest ? i.stencilTest === a.enums.STENCIL_DISABLE ? void t.disable(t.STENCIL_TEST) : (t.enable(t.STENCIL_TEST), + void (i.stencilSep ? (t.stencilFuncSeparate(t.FRONT, i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront), + t.stencilMaskSeparate(t.FRONT, i.stencilWriteMaskFront), + t.stencilOpSeparate(t.FRONT, i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront), + t.stencilFuncSeparate(t.BACK, i.stencilFuncBack, i.stencilRefBack, i.stencilMaskBack), + t.stencilMaskSeparate(t.BACK, i.stencilWriteMaskBack), + t.stencilOpSeparate(t.BACK, i.stencilFailOpBack, i.stencilZFailOpBack, i.stencilZPassOpBack)) : (t.stencilFunc(i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront), + t.stencilMask(i.stencilWriteMaskFront), + t.stencilOp(i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront)))) : void (i.stencilTest !== a.enums.STENCIL_DISABLE && (e.stencilSep === i.stencilSep ? i.stencilSep ? (e.stencilFuncFront === i.stencilFuncFront && e.stencilRefFront === i.stencilRefFront && e.stencilMaskFront === i.stencilMaskFront || t.stencilFuncSeparate(t.FRONT, i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront), + e.stencilWriteMaskFront !== i.stencilWriteMaskFront && t.stencilMaskSeparate(t.FRONT, i.stencilWriteMaskFront), + e.stencilFailOpFront === i.stencilFailOpFront && e.stencilZFailOpFront === i.stencilZFailOpFront && e.stencilZPassOpFront === i.stencilZPassOpFront || t.stencilOpSeparate(t.FRONT, i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront), + e.stencilFuncBack === i.stencilFuncBack && e.stencilRefBack === i.stencilRefBack && e.stencilMaskBack === i.stencilMaskBack || t.stencilFuncSeparate(t.BACK, i.stencilFuncBack, i.stencilRefBack, i.stencilMaskBack), + e.stencilWriteMaskBack !== i.stencilWriteMaskBack && t.stencilMaskSeparate(t.BACK, i.stencilWriteMaskBack), + e.stencilFailOpBack === i.stencilFailOpBack && e.stencilZFailOpBack === i.stencilZFailOpBack && e.stencilZPassOpBack === i.stencilZPassOpBack || t.stencilOpSeparate(t.BACK, i.stencilFailOpBack, i.stencilZFailOpBack, i.stencilZPassOpBack)) : (e.stencilFuncFront === i.stencilFuncFront && e.stencilRefFront === i.stencilRefFront && e.stencilMaskFront === i.stencilMaskFront || t.stencilFunc(i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront), + e.stencilWriteMaskFront !== i.stencilWriteMaskFront && t.stencilMask(i.stencilWriteMaskFront), + e.stencilFailOpFront === i.stencilFailOpFront && e.stencilZFailOpFront === i.stencilZFailOpFront && e.stencilZPassOpFront === i.stencilZPassOpFront || t.stencilOp(i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront)) : i.stencilSep ? (t.stencilFuncSeparate(t.FRONT, i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront), + t.stencilMaskSeparate(t.FRONT, i.stencilWriteMaskFront), + t.stencilOpSeparate(t.FRONT, i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront), + t.stencilFuncSeparate(t.BACK, i.stencilFuncBack, i.stencilRefBack, i.stencilMaskBack), + t.stencilMaskSeparate(t.BACK, i.stencilWriteMaskBack), + t.stencilOpSeparate(t.BACK, i.stencilFailOpBack, i.stencilZFailOpBack, i.stencilZPassOpBack)) : (t.stencilFunc(i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront), + t.stencilMask(i.stencilWriteMaskFront), + t.stencilOp(i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront)))) + } + function m(t, e, i) { + e.cullMode !== i.cullMode && (i.cullMode !== a.enums.CULL_NONE ? (t.enable(t.CULL_FACE), + t.cullFace(i.cullMode)) : t.disable(t.CULL_FACE)) + } + function y(t, e, i, n) { + var r = !1; + if (-1 !== n.maxStream) { + if (i.maxStream !== n.maxStream) + r = !0; + else if (i.program !== n.program) + r = !0; + else + for (var s = 0; s < n.maxStream + 1; ++s) + if (i.vertexBuffers[s] !== n.vertexBuffers[s] || i.vertexBufferOffsets[s] !== n.vertexBufferOffsets[s]) { + r = !0; + break + } + if (r) { + for (var a = 0; a < t._caps.maxVertexAttribs; ++a) + t._newAttributes[a] = 0; + for (var o = 0; o < n.maxStream + 1; ++o) { + var l = n.vertexBuffers[o] + , h = n.vertexBufferOffsets[o]; + if (l && -1 !== l._glID) { + e.bindBuffer(e.ARRAY_BUFFER, l._glID); + for (var c = 0; c < n.program._attributes.length; ++c) { + var u = n.program._attributes[c] + , _ = l._format.element(u.name); + _ ? (0 === t._enabledAttributes[u.location] && (e.enableVertexAttribArray(u.location), + t._enabledAttributes[u.location] = 1), + t._newAttributes[u.location] = 1, + e.vertexAttribPointer(u.location, _.num, _.type, _.normalize, _.stride, _.offset + h * _.stride)) : console.warn("Can not find vertex attribute: " + u.name) + } + } + } + for (var f = 0; f < t._caps.maxVertexAttribs; ++f) + t._enabledAttributes[f] !== t._newAttributes[f] && (e.disableVertexAttribArray(f), + t._enabledAttributes[f] = 0) + } + } + } + function v(t, e, i) { + for (var n = 0; n < i.maxTextureSlot + 1; ++n) + if (e.textureUnits[n] !== i.textureUnits[n]) { + var r = i.textureUnits[n]; + r && -1 !== r._glID && (t.activeTexture(t.TEXTURE0 + n), + t.bindTexture(r._target, r._glID)) + } + } + function g(t, e, i, n) { + void 0 === n && (n = 0), + i instanceof o.default ? t.framebufferTexture2D(t.FRAMEBUFFER, e, t.TEXTURE_2D, i._glID, 0) : i instanceof l.default ? t.framebufferTexture2D(t.FRAMEBUFFER, e, t.TEXTURE_CUBE_MAP_POSITIVE_X + n, i._glID, 0) : t.framebufferRenderbuffer(t.FRAMEBUFFER, e, t.RENDERBUFFER, i._glID) + } + var A = (function() { + function t(t, e) { + var i; + void 0 === (e = e || {}).alpha && (e.alpha = !1), + void 0 === e.stencil && (e.stencil = !0), + void 0 === e.depth && (e.depth = !0), + void 0 === e.antialias && (e.antialias = !1), + void 0 === e.preserveDrawingBuffer && (e.preserveDrawingBuffer = !1); + try { + i = t.getContext("webgl", e) || t.getContext("experimental-webgl", e) || t.getContext("webkit-3d", e) || t.getContext("moz-webgl", e) + } catch (r) { + return void console.error(r) + } + i || console.error("This device does not support webgl"), + this._gl = i, + this._extensions = {}, + this._caps = {}, + this._stats = { + texture: 0, + vb: 0, + ib: 0, + drawcalls: 0 + }, + this._initExtensions(["EXT_texture_filter_anisotropic", "EXT_shader_texture_lod", "OES_standard_derivatives", "OES_texture_float", "OES_texture_float_linear", "OES_texture_half_float", "OES_texture_half_float_linear", "OES_vertex_array_object", "WEBGL_compressed_texture_atc", "WEBGL_compressed_texture_etc", "WEBGL_compressed_texture_etc1", "WEBGL_compressed_texture_pvrtc", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", "WEBGL_draw_buffers"]), + this._initCaps(), + this._initStates(), + s.default.initDefault(this), + this._current = new s.default(this), + this._next = new s.default(this), + this._uniforms = {}, + this._vx = this._vy = this._vw = this._vh = 0, + this._sx = this._sy = this._sw = this._sh = 0, + this._framebuffer = null, + this._enabledAttributes = new Array(this._caps.maxVertexAttribs), + this._newAttributes = new Array(this._caps.maxVertexAttribs); + for (var n = 0; n < this._caps.maxVertexAttribs; ++n) + this._enabledAttributes[n] = 0, + this._newAttributes[n] = 0 + } + var e, i, n = t.prototype; + return n._initExtensions = function(t) { + for (var e = this._gl, i = 0; i < t.length; ++i) + for (var n = t[i], r = ["", "WEBKIT_", "MOZ_"], s = 0; s < r.length; s++) + try { + var a = e.getExtension(r[s] + n); + if (a) { + this._extensions[n] = a; + break + } + } catch (o) { + console.error(o) + } + } + , + n._initCaps = function() { + var t = this._gl + , e = this.ext("WEBGL_draw_buffers"); + this._caps.maxVertexStreams = 4, + this._caps.maxVertexTextures = t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS), + this._caps.maxFragUniforms = t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS), + this._caps.maxTextureUnits = t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS), + this._caps.maxVertexAttribs = t.getParameter(t.MAX_VERTEX_ATTRIBS), + this._caps.maxTextureSize = t.getParameter(t.MAX_TEXTURE_SIZE), + this._caps.maxDrawBuffers = e ? t.getParameter(e.MAX_DRAW_BUFFERS_WEBGL) : 1, + this._caps.maxColorAttachments = e ? t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL) : 1 + } + , + n._initStates = function() { + var t = this._gl; + t.disable(t.BLEND), + t.blendFunc(t.ONE, t.ZERO), + t.blendEquation(t.FUNC_ADD), + t.blendColor(1, 1, 1, 1), + t.colorMask(!0, !0, !0, !0), + t.enable(t.CULL_FACE), + t.cullFace(t.BACK), + t.disable(t.DEPTH_TEST), + t.depthFunc(t.LESS), + t.depthMask(!1), + t.disable(t.POLYGON_OFFSET_FILL), + t.depthRange(0, 1), + t.disable(t.STENCIL_TEST), + t.stencilFunc(t.ALWAYS, 0, 255), + t.stencilMask(255), + t.stencilOp(t.KEEP, t.KEEP, t.KEEP), + t.clearDepth(1), + t.clearColor(0, 0, 0, 0), + t.clearStencil(0), + t.disable(t.SCISSOR_TEST) + } + , + n._restoreTexture = function(t) { + var e = this._gl + , i = this._current.textureUnits[t]; + i && -1 !== i._glID ? e.bindTexture(i._target, i._glID) : e.bindTexture(e.TEXTURE_2D, null) + } + , + n._restoreIndexBuffer = function() { + var t = this._gl + , e = this._current.indexBuffer; + e && -1 !== e._glID ? t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, e._glID) : t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, null) + } + , + n.ext = function(t) { + return this._extensions[t] + } + , + n.allowFloatTexture = function() { + return null != this.ext("OES_texture_float") + } + , + n.setFrameBuffer = function(t) { + if (this._framebuffer !== t) { + this._framebuffer = t; + var e = this._gl; + if (t) { + e.bindFramebuffer(e.FRAMEBUFFER, t._glID); + for (var i = t._colors.length, n = 0; n < i; ++n) { + var r = t._colors[n]; + g(e, e.COLOR_ATTACHMENT0 + n, r) + } + for (var s = i; s < this._caps.maxColorAttachments; ++s) + e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0 + s, e.TEXTURE_2D, null, 0); + t._depth && g(e, e.DEPTH_ATTACHMENT, t._depth), + t._stencil && g(e, e.STENCIL_ATTACHMENT, t._stencil), + t._depthStencil && g(e, e.DEPTH_STENCIL_ATTACHMENT, t._depthStencil) + } else + e.bindFramebuffer(e.FRAMEBUFFER, null) + } + } + , + n.setViewport = function(t, e, i, n) { + this._vx === t && this._vy === e && this._vw === i && this._vh === n || (this._gl.viewport(t, e, i, n), + this._vx = t, + this._vy = e, + this._vw = i, + this._vh = n) + } + , + n.setScissor = function(t, e, i, n) { + this._sx === t && this._sy === e && this._sw === i && this._sh === n || (this._gl.scissor(t, e, i, n), + this._sx = t, + this._sy = e, + this._sw = i, + this._sh = n) + } + , + n.clear = function(t) { + if (void 0 !== t.color || void 0 !== t.depth || void 0 !== t.stencil) { + var e = this._gl + , i = 0; + void 0 !== t.color && (i |= e.COLOR_BUFFER_BIT, + e.clearColor(t.color[0], t.color[1], t.color[2], t.color[3])), + void 0 !== t.depth && (i |= e.DEPTH_BUFFER_BIT, + e.clearDepth(t.depth), + e.enable(e.DEPTH_TEST), + e.depthMask(!0), + e.depthFunc(e.ALWAYS)), + void 0 !== t.stencil && (i |= e.STENCIL_BUFFER_BIT, + e.clearStencil(t.stencil)), + e.clear(i), + void 0 !== t.depth && (!1 === this._current.depthTest ? e.disable(e.DEPTH_TEST) : (!1 === this._current.depthWrite && e.depthMask(!1), + this._current.depthFunc !== a.enums.DS_FUNC_ALWAYS && e.depthFunc(this._current.depthFunc))) + } + } + , + n.enableBlend = function() { + this._next.blend = !0 + } + , + n.enableDepthTest = function() { + this._next.depthTest = !0 + } + , + n.enableDepthWrite = function() { + this._next.depthWrite = !0 + } + , + n.setStencilTest = function(t) { + this._next.stencilTest = t + } + , + n.setStencilFunc = function(t, e, i) { + this._next.stencilSep = !1, + this._next.stencilFuncFront = this._next.stencilFuncBack = t, + this._next.stencilRefFront = this._next.stencilRefBack = e, + this._next.stencilMaskFront = this._next.stencilMaskBack = i + } + , + n.setStencilFuncFront = function(t, e, i) { + this._next.stencilSep = !0, + this._next.stencilFuncFront = t, + this._next.stencilRefFront = e, + this._next.stencilMaskFront = i + } + , + n.setStencilFuncBack = function(t, e, i) { + this._next.stencilSep = !0, + this._next.stencilFuncBack = t, + this._next.stencilRefBack = e, + this._next.stencilMaskBack = i + } + , + n.setStencilOp = function(t, e, i, n) { + this._next.stencilFailOpFront = this._next.stencilFailOpBack = t, + this._next.stencilZFailOpFront = this._next.stencilZFailOpBack = e, + this._next.stencilZPassOpFront = this._next.stencilZPassOpBack = i, + this._next.stencilWriteMaskFront = this._next.stencilWriteMaskBack = n + } + , + n.setStencilOpFront = function(t, e, i, n) { + this._next.stencilSep = !0, + this._next.stencilFailOpFront = t, + this._next.stencilZFailOpFront = e, + this._next.stencilZPassOpFront = i, + this._next.stencilWriteMaskFront = n + } + , + n.setStencilOpBack = function(t, e, i, n) { + this._next.stencilSep = !0, + this._next.stencilFailOpBack = t, + this._next.stencilZFailOpBack = e, + this._next.stencilZPassOpBack = i, + this._next.stencilWriteMaskBack = n + } + , + n.setDepthFunc = function(t) { + this._next.depthFunc = t + } + , + n.setBlendColor32 = function(t) { + this._next.blendColor = t + } + , + n.setBlendColor = function(t, e, i, n) { + this._next.blendColor = (255 * t << 24 | 255 * e << 16 | 255 * i << 8 | 255 * n) >>> 0 + } + , + n.setBlendFunc = function(t, e) { + this._next.blendSep = !1, + this._next.blendSrc = t, + this._next.blendDst = e + } + , + n.setBlendFuncSep = function(t, e, i, n) { + this._next.blendSep = !0, + this._next.blendSrc = t, + this._next.blendDst = e, + this._next.blendSrcAlpha = i, + this._next.blendDstAlpha = n + } + , + n.setBlendEq = function(t) { + this._next.blendSep = !1, + this._next.blendEq = t + } + , + n.setBlendEqSep = function(t, e) { + this._next.blendSep = !0, + this._next.blendEq = t, + this._next.blendAlphaEq = e + } + , + n.setCullMode = function(t) { + this._next.cullMode = t + } + , + n.setVertexBuffer = function(t, e, i) { + void 0 === i && (i = 0), + this._next.vertexBuffers[t] = e, + this._next.vertexBufferOffsets[t] = i, + this._next.maxStream < t && (this._next.maxStream = t) + } + , + n.setIndexBuffer = function(t) { + this._next.indexBuffer = t + } + , + n.setProgram = function(t) { + this._next.program = t + } + , + n.setTexture = function(t, e, i) { + i >= this._caps.maxTextureUnits ? console.warn("Can not set texture " + t + " at stage " + i + ", max texture exceed: " + this._caps.maxTextureUnits) : (this._next.textureUnits[i] = e, + this.setUniform(t, i), + this._next.maxTextureSlot < i && (this._next.maxTextureSlot = i)) + } + , + n.setTextureArray = function(t, e, i) { + var n = e.length; + if (n >= this._caps.maxTextureUnits) + console.warn("Can not set " + n + " textures for " + t + ", max texture exceed: " + this._caps.maxTextureUnits); + else { + for (var r = 0; r < n; ++r) { + var s = i[r]; + this._next.textureUnits[s] = e[r], + this._next.maxTextureSlot < s && (this._next.maxTextureSlot = s) + } + this.setUniform(t, i) + } + } + , + n.setUniform = function(t, e) { + var i = this._uniforms[t] + , n = !1 + , r = !1 + , s = !1 + , a = !1; + do { + if (!i) + break; + if (s = Array.isArray(e) || e instanceof Float32Array, + a = e instanceof Int32Array, + r = s || a, + i.isArray !== r) + break; + if (i.isArray && i.value.length !== e.length) + break; + n = !0 + } while (0);if (n) { + var o = i.value + , l = !1; + if (i.isArray) + for (var h = 0, c = o.length; h < c; h++) + o[h] !== e[h] && (l = !0, + o[h] = e[h]); + else + o !== e && (l = !0, + i.value = e); + l && (i.dirty = !0) + } else { + var u = e; + s ? u = new Float32Array(e) : a && (u = new Int32Array(e)), + i = { + dirty: !0, + value: u, + isArray: r + } + } + this._uniforms[t] = i + } + , + n.setUniformDirectly = function(t, e) { + var i = this._uniforms[t]; + i || (this._uniforms[t] = i = {}), + i.dirty = !0, + i.value = e + } + , + n.setPrimitiveType = function(t) { + this._next.primitiveType = t + } + , + n.resetDrawCalls = function() { + this._stats.drawcalls = 0 + } + , + n.getDrawCalls = function() { + return this._stats.drawcalls + } + , + n.draw = function(t, e) { + var i = this._gl + , n = this._current + , r = this._next; + f(i, n, r), + d(i, n, r), + p(i, n, r), + m(i, n, r), + y(this, i, n, r), + n.indexBuffer !== r.indexBuffer && i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, r.indexBuffer && -1 !== r.indexBuffer._glID ? r.indexBuffer._glID : null); + var s = !1; + n.program !== r.program && (r.program._linked ? i.useProgram(r.program._glID) : console.warn("Failed to use program: has not linked yet."), + s = !0), + v(i, n, r); + for (var a = 0; a < r.program._uniforms.length; ++a) { + var o = r.program._uniforms[a] + , l = this._uniforms[o.name]; + if (l && (s || l.dirty)) { + l.dirty = !1; + var h = void 0 === o.size ? u[o.type] : _[o.type]; + h ? h(i, o.location, l.value) : console.warn("Can not find commit function for uniform " + o.name) + } + } + e && (r.indexBuffer ? i.drawElements(this._next.primitiveType, e, r.indexBuffer._format, t * r.indexBuffer._bytesPerIndex) : i.drawArrays(this._next.primitiveType, t, e), + this._stats.drawcalls++), + n.set(r), + r.reset() + } + , + e = t, + (i = [{ + key: "caps", + get: function() { + return this._caps + } + }]) && c(e.prototype, i), + t + } + )(); + i.default = A, + e.exports = i.default + } + ), { + "./enums": 312, + "./state": 319, + "./texture-2d": 320, + "./texture-cube": 321 + }], + 312: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.attrTypeBytes = function(t) { + return t === s.ATTR_TYPE_INT8 ? 1 : t === s.ATTR_TYPE_UINT8 ? 1 : t === s.ATTR_TYPE_INT16 ? 2 : t === s.ATTR_TYPE_UINT16 ? 2 : t === s.ATTR_TYPE_INT32 ? 4 : t === s.ATTR_TYPE_UINT32 ? 4 : t === s.ATTR_TYPE_FLOAT32 ? 4 : (console.warn("Unknown ATTR_TYPE: " + t), + 0) + } + , + i.glFilter = function(t, e, i) { + void 0 === i && (i = -1); + var r = n[e][i + 1]; + return void 0 === r ? (console.warn("Unknown FILTER: " + e), + -1 === i ? t.LINEAR : t.LINEAR_MIPMAP_LINEAR) : r + } + , + i.glTextureFmt = function(t) { + var e = r[t]; + return void 0 === e ? (console.warn("Unknown TEXTURE_FMT: " + t), + r[s.TEXTURE_FMT_RGBA8]) : e + } + , + i.enums = void 0; + var n = [[9728, 9984, 9986], [9729, 9985, 9987]] + , r = [{ + format: 6407, + internalFormat: 33776, + pixelType: null + }, { + format: 6408, + internalFormat: 33777, + pixelType: null + }, { + format: 6408, + internalFormat: 33778, + pixelType: null + }, { + format: 6408, + internalFormat: 33779, + pixelType: null + }, { + format: 6407, + internalFormat: 36196, + pixelType: null + }, { + format: 6407, + internalFormat: 35841, + pixelType: null + }, { + format: 6408, + internalFormat: 35843, + pixelType: null + }, { + format: 6407, + internalFormat: 35840, + pixelType: null + }, { + format: 6408, + internalFormat: 35842, + pixelType: null + }, { + format: 6406, + internalFormat: 6406, + pixelType: 5121 + }, { + format: 6409, + internalFormat: 6409, + pixelType: 5121 + }, { + format: 6410, + internalFormat: 6410, + pixelType: 5121 + }, { + format: 6407, + internalFormat: 6407, + pixelType: 33635 + }, { + format: 6408, + internalFormat: 6408, + pixelType: 32820 + }, { + format: 6408, + internalFormat: 6408, + pixelType: 32819 + }, { + format: 6407, + internalFormat: 6407, + pixelType: 5121 + }, { + format: 6408, + internalFormat: 6408, + pixelType: 5121 + }, { + format: 6407, + internalFormat: 6407, + pixelType: 36193 + }, { + format: 6408, + internalFormat: 6408, + pixelType: 36193 + }, { + format: 6407, + internalFormat: 6407, + pixelType: 5126 + }, { + format: 6408, + internalFormat: 6408, + pixelType: 5126 + }, { + format: null, + internalFormat: null, + pixelType: null + }, { + format: null, + internalFormat: null, + pixelType: null + }, { + format: null, + internalFormat: null, + pixelType: null + }, { + format: null, + internalFormat: null, + pixelType: null + }, { + format: 6402, + internalFormat: 6402, + pixelType: 5123 + }, { + format: 6402, + internalFormat: 6402, + pixelType: 5125 + }, { + format: 6402, + internalFormat: 6402, + pixelType: 5125 + }, { + format: 6407, + internalFormat: 37492, + pixelType: null + }, { + format: 6408, + internalFormat: 37496, + pixelType: null + }] + , s = { + USAGE_STATIC: 35044, + USAGE_DYNAMIC: 35048, + USAGE_STREAM: 35040, + INDEX_FMT_UINT8: 5121, + INDEX_FMT_UINT16: 5123, + INDEX_FMT_UINT32: 5125, + ATTR_POSITION: "a_position", + ATTR_NORMAL: "a_normal", + ATTR_TANGENT: "a_tangent", + ATTR_BITANGENT: "a_bitangent", + ATTR_WEIGHTS: "a_weights", + ATTR_JOINTS: "a_joints", + ATTR_COLOR: "a_color", + ATTR_COLOR0: "a_color0", + ATTR_COLOR1: "a_color1", + ATTR_UV: "a_uv", + ATTR_UV0: "a_uv0", + ATTR_UV1: "a_uv1", + ATTR_UV2: "a_uv2", + ATTR_UV3: "a_uv3", + ATTR_UV4: "a_uv4", + ATTR_UV5: "a_uv5", + ATTR_UV6: "a_uv6", + ATTR_UV7: "a_uv7", + ATTR_TEX_COORD: "a_texCoord", + ATTR_TEX_COORD1: "a_texCoord1", + ATTR_TEX_COORD2: "a_texCoord2", + ATTR_TEX_COORD3: "a_texCoord3", + ATTR_TEX_COORD4: "a_texCoord4", + ATTR_TEX_COORD5: "a_texCoord5", + ATTR_TEX_COORD6: "a_texCoord6", + ATTR_TEX_COORD7: "a_texCoord7", + ATTR_TEX_COORD8: "a_texCoord8", + ATTR_TYPE_INT8: 5120, + ATTR_TYPE_UINT8: 5121, + ATTR_TYPE_INT16: 5122, + ATTR_TYPE_UINT16: 5123, + ATTR_TYPE_INT32: 5124, + ATTR_TYPE_UINT32: 5125, + ATTR_TYPE_FLOAT32: 5126, + FILTER_NEAREST: 0, + FILTER_LINEAR: 1, + WRAP_REPEAT: 10497, + WRAP_CLAMP: 33071, + WRAP_MIRROR: 33648, + TEXTURE_FMT_RGB_DXT1: 0, + TEXTURE_FMT_RGBA_DXT1: 1, + TEXTURE_FMT_RGBA_DXT3: 2, + TEXTURE_FMT_RGBA_DXT5: 3, + TEXTURE_FMT_RGB_ETC1: 4, + TEXTURE_FMT_RGB_PVRTC_2BPPV1: 5, + TEXTURE_FMT_RGBA_PVRTC_2BPPV1: 6, + TEXTURE_FMT_RGB_PVRTC_4BPPV1: 7, + TEXTURE_FMT_RGBA_PVRTC_4BPPV1: 8, + TEXTURE_FMT_A8: 9, + TEXTURE_FMT_L8: 10, + TEXTURE_FMT_L8_A8: 11, + TEXTURE_FMT_R5_G6_B5: 12, + TEXTURE_FMT_R5_G5_B5_A1: 13, + TEXTURE_FMT_R4_G4_B4_A4: 14, + TEXTURE_FMT_RGB8: 15, + TEXTURE_FMT_RGBA8: 16, + TEXTURE_FMT_RGB16F: 17, + TEXTURE_FMT_RGBA16F: 18, + TEXTURE_FMT_RGB32F: 19, + TEXTURE_FMT_RGBA32F: 20, + TEXTURE_FMT_R32F: 21, + TEXTURE_FMT_111110F: 22, + TEXTURE_FMT_SRGB: 23, + TEXTURE_FMT_SRGBA: 24, + TEXTURE_FMT_D16: 25, + TEXTURE_FMT_D32: 26, + TEXTURE_FMT_D24S8: 27, + TEXTURE_FMT_RGB_ETC2: 28, + TEXTURE_FMT_RGBA_ETC2: 29, + DS_FUNC_NEVER: 512, + DS_FUNC_LESS: 513, + DS_FUNC_EQUAL: 514, + DS_FUNC_LEQUAL: 515, + DS_FUNC_GREATER: 516, + DS_FUNC_NOTEQUAL: 517, + DS_FUNC_GEQUAL: 518, + DS_FUNC_ALWAYS: 519, + RB_FMT_RGBA4: 32854, + RB_FMT_RGB5_A1: 32855, + RB_FMT_RGB565: 36194, + RB_FMT_D16: 33189, + RB_FMT_S8: 36168, + RB_FMT_D24S8: 34041, + BLEND_FUNC_ADD: 32774, + BLEND_FUNC_SUBTRACT: 32778, + BLEND_FUNC_REVERSE_SUBTRACT: 32779, + BLEND_ZERO: 0, + BLEND_ONE: 1, + BLEND_SRC_COLOR: 768, + BLEND_ONE_MINUS_SRC_COLOR: 769, + BLEND_DST_COLOR: 774, + BLEND_ONE_MINUS_DST_COLOR: 775, + BLEND_SRC_ALPHA: 770, + BLEND_ONE_MINUS_SRC_ALPHA: 771, + BLEND_DST_ALPHA: 772, + BLEND_ONE_MINUS_DST_ALPHA: 773, + BLEND_CONSTANT_COLOR: 32769, + BLEND_ONE_MINUS_CONSTANT_COLOR: 32770, + BLEND_CONSTANT_ALPHA: 32771, + BLEND_ONE_MINUS_CONSTANT_ALPHA: 32772, + BLEND_SRC_ALPHA_SATURATE: 776, + STENCIL_DISABLE: 0, + STENCIL_ENABLE: 1, + STENCIL_INHERIT: 2, + STENCIL_OP_KEEP: 7680, + STENCIL_OP_ZERO: 0, + STENCIL_OP_REPLACE: 7681, + STENCIL_OP_INCR: 7682, + STENCIL_OP_INCR_WRAP: 34055, + STENCIL_OP_DECR: 7683, + STENCIL_OP_DECR_WRAP: 34056, + STENCIL_OP_INVERT: 5386, + CULL_NONE: 0, + CULL_FRONT: 1028, + CULL_BACK: 1029, + CULL_FRONT_AND_BACK: 1032, + PT_POINTS: 0, + PT_LINES: 1, + PT_LINE_LOOP: 2, + PT_LINE_STRIP: 3, + PT_TRIANGLES: 4, + PT_TRIANGLE_STRIP: 5, + PT_TRIANGLE_FAN: 6 + }; + i.enums = s + } + ), {}], + 313: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = (function() { + function t(t, e, i, n) { + this._device = t, + this._width = e, + this._height = i, + this._colors = n.colors || [], + this._depth = n.depth || null, + this._stencil = n.stencil || null, + this._depthStencil = n.depthStencil || null, + this._glID = t._gl.createFramebuffer() + } + var e = t.prototype; + return e.destroy = function() { + null !== this._glID ? (this._device._gl.deleteFramebuffer(this._glID), + this._glID = null) : console.error("The frame-buffer already destroyed") + } + , + e.getHandle = function() { + return this._glID + } + , + t + } + )(); + i.default = n, + e.exports = i.default + } + ), {}], + 314: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("./enums"); + function s(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + var a = ((n = {})[r.enums.INDEX_FMT_UINT8] = 1, + n[r.enums.INDEX_FMT_UINT16] = 2, + n[r.enums.INDEX_FMT_UINT32] = 4, + n) + , o = (function() { + function t(t, e, i, n) { + this._device = t, + this._format = e, + this._usage = i, + this._bytesPerIndex = a[e], + this._bytes = n.byteLength, + this._numIndices = this._bytes / this._bytesPerIndex, + this._needExpandDataStore = !0, + this._glID = t._gl.createBuffer(), + this.update(0, n), + t._stats.ib += this._bytes + } + var e, i, n = t.prototype; + return n.destroy = function() { + -1 !== this._glID ? (this._device._gl.deleteBuffer(this._glID), + this._device._stats.ib -= this.bytes, + this._glID = -1) : console.error("The buffer already destroyed") + } + , + n.update = function(t, e) { + if (-1 !== this._glID) { + if (0 !== e.byteLength) { + if (t + e.byteLength > this._bytes) { + if (t) + return void console.error("Failed to update data, bytes exceed."); + this._needExpandDataStore = !0, + this._bytes = t + e.byteLength, + this._numIndices = this._bytes / this._bytesPerIndex + } + var i = this._device._gl + , n = this._usage; + i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, this._glID), + this._needExpandDataStore ? (i.bufferData(i.ELEMENT_ARRAY_BUFFER, e, n), + this._needExpandDataStore = !1) : i.bufferSubData(i.ELEMENT_ARRAY_BUFFER, t, e), + this._device._restoreIndexBuffer() + } + } else + console.error("The buffer is destroyed") + } + , + n.setUsage = function(t) { + this._usage = t + } + , + e = t, + (i = [{ + key: "count", + get: function() { + return this._numIndices + } + }]) && s(e.prototype, i), + t + } + )(); + o.BYTES_PER_INDEX = a; + var l = o; + i.default = l, + e.exports = i.default + } + ), { + "./enums": 312 + }], + 315: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("./enums"); + n = { + VertexFormat: t("./vertex-format"), + IndexBuffer: t("./index-buffer"), + VertexBuffer: t("./vertex-buffer"), + Program: t("./program"), + Texture: t("./texture"), + Texture2D: t("./texture-2d"), + TextureCube: t("./texture-cube"), + RenderBuffer: t("./render-buffer"), + FrameBuffer: t("./frame-buffer"), + Device: t("./device"), + attrTypeBytes: r.attrTypeBytes, + glFilter: r.glFilter, + glTextureFmt: r.glTextureFmt + }, + Object.assign(n, r.enums); + var s = n; + i.default = s, + cc.gfx = n, + e.exports = i.default + } + ), { + "./device": 311, + "./enums": 312, + "./frame-buffer": 313, + "./index-buffer": 314, + "./program": 317, + "./render-buffer": 318, + "./texture": 322, + "./texture-2d": 320, + "./texture-cube": 321, + "./vertex-buffer": 323, + "./vertex-format": 324 + }], + 316: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.isPow2 = function(t) { + return !(t & t - 1 || !t) + } + } + ), {}], + 317: [(function(t, e, i) { + "use strict"; + function n(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + i.__esModule = !0, + i.default = void 0; + var r = 0; + function s(t, e, i) { + i && i.split("\n").forEach((function(i) { + if (!(i.length < 5)) { + var n = /^ERROR:\s+(\d+):(\d+):\s*(.*)$/.exec(i); + n ? t.push({ + type: e, + fileID: 0 | n[1], + line: 0 | n[2], + message: n[3].trim() + }) : i.length > 0 && t.push({ + type: e, + fileID: -1, + line: 0, + message: i + }) + } + } + )) + } + var a = (function() { + function t(t, e) { + this._device = t, + this._attributes = [], + this._uniforms = [], + this._samplers = [], + this._errors = [], + this._linked = !1, + this._vertSource = e.vert, + this._fragSource = e.frag, + this._glID = null, + this._id = r++ + } + var e, i, a = t.prototype; + return a.link = function() { + if (!this._linked) { + var t = this._device._gl + , e = o(t, t.VERTEX_SHADER, this._vertSource) + , i = o(t, t.FRAGMENT_SHADER, this._fragSource) + , n = t.createProgram(); + t.attachShader(n, e), + t.attachShader(n, i), + t.linkProgram(n); + var r = !1 + , a = this._errors; + if (t.getShaderParameter(e, t.COMPILE_STATUS) || (s(a, "vs", t.getShaderInfoLog(e)), + r = !0), + t.getShaderParameter(i, t.COMPILE_STATUS) || (s(a, "fs", t.getShaderInfoLog(i)), + r = !0), + t.deleteShader(e), + t.deleteShader(i), + r) + return a; + if (!t.getProgramParameter(n, t.LINK_STATUS)) + return a.push({ + info: "Failed to link shader program: " + t.getProgramInfoLog(n) + }), + a; + this._glID = n; + for (var l = t.getProgramParameter(n, t.ACTIVE_ATTRIBUTES), h = 0; h < l; ++h) { + var c = t.getActiveAttrib(n, h) + , u = t.getAttribLocation(n, c.name); + this._attributes.push({ + name: c.name, + location: u, + type: c.type + }) + } + for (var _ = t.getProgramParameter(n, t.ACTIVE_UNIFORMS), f = 0; f < _; ++f) { + var d = t.getActiveUniform(n, f) + , p = d.name + , m = t.getUniformLocation(n, p) + , y = "[0]" === p.substr(p.length - 3); + y && (p = p.substr(0, p.length - 3)); + var v = { + name: p, + location: m, + type: d.type, + size: y ? d.size : void 0 + }; + this._uniforms.push(v) + } + this._linked = !0 + } + } + , + a.destroy = function() { + this._device._gl.deleteProgram(this._glID), + this._linked = !1, + this._glID = null, + this._attributes = [], + this._uniforms = [], + this._samplers = [] + } + , + e = t, + (i = [{ + key: "id", + get: function() { + return this._id + } + }]) && n(e.prototype, i), + t + } + )(); + function o(t, e, i) { + var n = t.createShader(e); + return t.shaderSource(n, i), + t.compileShader(n), + n + } + i.default = a, + e.exports = i.default + } + ), {}], + 318: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = (function() { + function t(t, e, i, n) { + this._device = t, + this._format = e, + this._glID = t._gl.createRenderbuffer(), + this.update(i, n) + } + var e = t.prototype; + return e.update = function(t, e) { + this._width = t, + this._height = e; + var i = this._device._gl; + i.bindRenderbuffer(i.RENDERBUFFER, this._glID), + i.renderbufferStorage(i.RENDERBUFFER, this._format, t, e), + i.bindRenderbuffer(i.RENDERBUFFER, null) + } + , + e.destroy = function() { + if (null !== this._glID) { + var t = this._device._gl; + t.bindRenderbuffer(t.RENDERBUFFER, null), + t.deleteRenderbuffer(this._glID), + this._glID = null + } else + console.error("The render-buffer already destroyed") + } + , + t + } + )(); + i.default = n, + e.exports = i.default + } + ), {}], + 319: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = t("./enums") + , r = { + blend: !1, + blendSep: !1, + blendColor: 4294967295, + blendEq: n.enums.BLEND_FUNC_ADD, + blendAlphaEq: n.enums.BLEND_FUNC_ADD, + blendSrc: n.enums.BLEND_ONE, + blendDst: n.enums.BLEND_ZERO, + blendSrcAlpha: n.enums.BLEND_ONE, + blendDstAlpha: n.enums.BLEND_ZERO, + depthTest: !1, + depthWrite: !1, + depthFunc: n.enums.DS_FUNC_LESS, + stencilTest: !1, + stencilSep: !1, + stencilFuncFront: n.enums.DS_FUNC_ALWAYS, + stencilRefFront: 0, + stencilMaskFront: 255, + stencilFailOpFront: n.enums.STENCIL_OP_KEEP, + stencilZFailOpFront: n.enums.STENCIL_OP_KEEP, + stencilZPassOpFront: n.enums.STENCIL_OP_KEEP, + stencilWriteMaskFront: 255, + stencilFuncBack: n.enums.DS_FUNC_ALWAYS, + stencilRefBack: 0, + stencilMaskBack: 255, + stencilFailOpBack: n.enums.STENCIL_OP_KEEP, + stencilZFailOpBack: n.enums.STENCIL_OP_KEEP, + stencilZPassOpBack: n.enums.STENCIL_OP_KEEP, + stencilWriteMaskBack: 255, + cullMode: n.enums.CULL_BACK, + primitiveType: n.enums.PT_TRIANGLES, + maxStream: -1, + vertexBuffers: [], + vertexBufferOffsets: [], + indexBuffer: null, + maxTextureSlot: -1, + textureUnits: [], + program: null + } + , s = (function() { + function t(t) { + this.vertexBuffers = new Array(t._caps.maxVertexStreams), + this.vertexBufferOffsets = new Array(t._caps.maxVertexStreams), + this.textureUnits = new Array(t._caps.maxTextureUnits), + this.set(r) + } + t.initDefault = function(t) { + r.vertexBuffers = new Array(t._caps.maxVertexStreams), + r.vertexBufferOffsets = new Array(t._caps.maxVertexStreams), + r.textureUnits = new Array(t._caps.maxTextureUnits) + } + ; + var e = t.prototype; + return e.reset = function() { + this.set(r) + } + , + e.set = function(t) { + this.blend = t.blend, + this.blendSep = t.blendSep, + this.blendColor = t.blendColor, + this.blendEq = t.blendEq, + this.blendAlphaEq = t.blendAlphaEq, + this.blendSrc = t.blendSrc, + this.blendDst = t.blendDst, + this.blendSrcAlpha = t.blendSrcAlpha, + this.blendDstAlpha = t.blendDstAlpha, + this.depthTest = t.depthTest, + this.depthWrite = t.depthWrite, + this.depthFunc = t.depthFunc, + this.stencilTest = t.stencilTest, + this.stencilSep = t.stencilSep, + this.stencilFuncFront = t.stencilFuncFront, + this.stencilRefFront = t.stencilRefFront, + this.stencilMaskFront = t.stencilMaskFront, + this.stencilFailOpFront = t.stencilFailOpFront, + this.stencilZFailOpFront = t.stencilZFailOpFront, + this.stencilZPassOpFront = t.stencilZPassOpFront, + this.stencilWriteMaskFront = t.stencilWriteMaskFront, + this.stencilFuncBack = t.stencilFuncBack, + this.stencilRefBack = t.stencilRefBack, + this.stencilMaskBack = t.stencilMaskBack, + this.stencilFailOpBack = t.stencilFailOpBack, + this.stencilZFailOpBack = t.stencilZFailOpBack, + this.stencilZPassOpBack = t.stencilZPassOpBack, + this.stencilWriteMaskBack = t.stencilWriteMaskBack, + this.cullMode = t.cullMode, + this.primitiveType = t.primitiveType, + this.maxStream = t.maxStream; + for (var e = 0; e < t.vertexBuffers.length; ++e) + this.vertexBuffers[e] = t.vertexBuffers[e]; + for (var i = 0; i < t.vertexBufferOffsets.length; ++i) + this.vertexBufferOffsets[i] = t.vertexBufferOffsets[i]; + this.indexBuffer = t.indexBuffer, + this.maxTextureSlot = t.maxTextureSlot; + for (var n = 0; n < t.textureUnits.length; ++n) + this.textureUnits[n] = t.textureUnits[n]; + this.program = t.program + } + , + t + } + )(); + i.default = s, + e.exports = i.default + } + ), { + "./enums": 312 + }], + 320: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("./texture")) && n.__esModule ? n : { + default: n + }, s = t("./enums"), a = t("./misc"); + function o(t, e) { + return (o = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var l = (function(t) { + var e, i; + function n(e, i) { + var n, r = (n = t.call(this, e) || this)._device._gl; + return n._target = r.TEXTURE_2D, + n._glID = r.createTexture(), + i.images = i.images || [null], + n.update(i), + n + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + o(e, i); + var r = n.prototype; + return r.update = function(t) { + var e = this._device._gl + , i = this._genMipmap; + if (t) { + void 0 !== t.width && (this._width = t.width), + void 0 !== t.height && (this._height = t.height), + void 0 !== t.anisotropy && (this._anisotropy = t.anisotropy), + void 0 !== t.minFilter && (this._minFilter = t.minFilter), + void 0 !== t.magFilter && (this._magFilter = t.magFilter), + void 0 !== t.mipFilter && (this._mipFilter = t.mipFilter), + void 0 !== t.wrapS && (this._wrapS = t.wrapS), + void 0 !== t.wrapT && (this._wrapT = t.wrapT), + void 0 !== t.format && (this._format = t.format, + this._compressed = this._format >= s.enums.TEXTURE_FMT_RGB_DXT1 && this._format <= s.enums.TEXTURE_FMT_RGBA_PVRTC_4BPPV1 || this._format >= s.enums.TEXTURE_FMT_RGB_ETC2 && this._format <= s.enums.TEXTURE_FMT_RGBA_ETC2), + void 0 !== t.genMipmaps && (this._genMipmap = t.genMipmaps, + i = t.genMipmaps); + var n = this._device.caps.maxTextureSize || Number.MAX_VALUE + , r = Math.max(t.width || 0, t.height || 0); + n < r && console.warn("The current texture size " + r + " exceeds the maximum size [" + n + "] supported on the device."), + void 0 !== t.images && t.images.length > 1 && (i = !1, + (t.width > t.height ? t.width : t.height) >> t.images.length - 1 != 1 && console.error("texture-2d mipmap is invalid, should have a 1x1 mipmap.")) + } + (0, + a.isPow2)(this._width) && (0, + a.isPow2)(this._height) || (i = !1), + e.activeTexture(e.TEXTURE0), + e.bindTexture(e.TEXTURE_2D, this._glID), + void 0 !== t.images && t.images.length > 0 && (this._setMipmap(t.images, t.flipY, t.premultiplyAlpha), + t.images.length > 1 && (this._genMipmap = !0)), + i && (e.hint(e.GENERATE_MIPMAP_HINT, e.NICEST), + e.generateMipmap(e.TEXTURE_2D), + this._genMipmap = !0), + this._setTexInfo(), + this._device._restoreTexture(0) + } + , + r.updateSubImage = function(t) { + var e = this._device._gl + , i = (0, + s.glTextureFmt)(this._format); + e.activeTexture(e.TEXTURE0), + e.bindTexture(e.TEXTURE_2D, this._glID), + this._setSubImage(i, t), + this._device._restoreTexture(0) + } + , + r.updateImage = function(t) { + var e = this._device._gl + , i = (0, + s.glTextureFmt)(this._format); + e.activeTexture(e.TEXTURE0), + e.bindTexture(e.TEXTURE_2D, this._glID), + this._setImage(i, t), + this._device._restoreTexture(0) + } + , + r._setSubImage = function(t, e) { + var i = this._device._gl + , n = e.flipY + , r = e.premultiplyAlpha + , s = e.image; + !s || ArrayBuffer.isView(s) || s instanceof ArrayBuffer ? (void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n), + void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r), + this._compressed ? i.compressedTexSubImage2D(i.TEXTURE_2D, e.level, e.x, e.y, e.width, e.height, t.format, s) : i.texSubImage2D(i.TEXTURE_2D, e.level, e.x, e.y, e.width, e.height, t.format, t.pixelType, s)) : (void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !0) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n), + void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r), + i.texSubImage2D(i.TEXTURE_2D, e.level, e.x, e.y, t.format, t.pixelType, s)) + } + , + r._setImage = function(t, e) { + var i = this._device._gl + , n = e.flipY + , r = e.premultiplyAlpha + , s = e.image; + !s || ArrayBuffer.isView(s) || s instanceof ArrayBuffer ? (void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n), + void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r), + this._compressed ? i.compressedTexImage2D(i.TEXTURE_2D, e.level, t.internalFormat, e.width, e.height, 0, s) : i.texImage2D(i.TEXTURE_2D, e.level, t.internalFormat, e.width, e.height, 0, t.format, t.pixelType, s)) : (void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !0) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n), + void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r), + i.texImage2D(i.TEXTURE_2D, e.level, t.internalFormat, t.format, t.pixelType, s)) + } + , + r._setMipmap = function(t, e, i) { + for (var n = (0, + s.glTextureFmt)(this._format), r = { + width: this._width, + height: this._height, + flipY: e, + premultiplyAlpha: i, + level: 0, + image: null + }, a = 0; a < t.length; ++a) + r.level = a, + r.width = this._width >> a, + r.height = this._height >> a, + r.image = t[a], + this._setImage(n, r) + } + , + r._setTexInfo = function() { + var t = this._device._gl + , e = (0, + a.isPow2)(this._width) && (0, + a.isPow2)(this._height); + e || this._wrapS === s.enums.WRAP_CLAMP && this._wrapT === s.enums.WRAP_CLAMP || (console.warn("WebGL1 doesn't support all wrap modes with NPOT textures"), + this._wrapS = s.enums.WRAP_CLAMP, + this._wrapT = s.enums.WRAP_CLAMP); + var i = this._genMipmap ? this._mipFilter : -1; + e || -1 === i || (console.warn("NPOT textures do not support mipmap filter"), + i = -1), + t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, (0, + s.glFilter)(t, this._minFilter, i)), + t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, (0, + s.glFilter)(t, this._magFilter, -1)), + t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, this._wrapS), + t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, this._wrapT); + var n = this._device.ext("EXT_texture_filter_anisotropic"); + n && t.texParameteri(t.TEXTURE_2D, n.TEXTURE_MAX_ANISOTROPY_EXT, this._anisotropy) + } + , + n + } + )(r.default); + i.default = l, + e.exports = i.default + } + ), { + "./enums": 312, + "./misc": 316, + "./texture": 322 + }], + 321: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("./texture")) && n.__esModule ? n : { + default: n + }, s = t("./enums"), a = t("./misc"); + function o(t, e) { + return (o = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var l = (function(t) { + var e, i; + function n(e, i) { + var n, r = (n = t.call(this, e) || this)._device._gl; + return n._target = r.TEXTURE_CUBE_MAP, + n._glID = r.createTexture(), + n.update(i), + n + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + o(e, i); + var r = n.prototype; + return r.update = function(t) { + var e = this._device._gl + , i = this._genMipmaps; + t && (void 0 !== t.width && (this._width = t.width), + void 0 !== t.height && (this._height = t.height), + void 0 !== t.anisotropy && (this._anisotropy = t.anisotropy), + void 0 !== t.minFilter && (this._minFilter = t.minFilter), + void 0 !== t.magFilter && (this._magFilter = t.magFilter), + void 0 !== t.mipFilter && (this._mipFilter = t.mipFilter), + void 0 !== t.wrapS && (this._wrapS = t.wrapS), + void 0 !== t.wrapT && (this._wrapT = t.wrapT), + void 0 !== t.format && (this._format = t.format, + this._compressed = this._format >= s.enums.TEXTURE_FMT_RGB_DXT1 && this._format <= s.enums.TEXTURE_FMT_RGBA_PVRTC_4BPPV1 || this._format >= s.enums.TEXTURE_FMT_RGB_ETC2 && this._format <= s.enums.TEXTURE_FMT_RGBA_ETC2), + void 0 !== t.genMipmaps && (this._genMipmaps = t.genMipmaps, + i = t.genMipmaps), + void 0 !== t.images && t.images.length > 1 && (i = !1, + t.width !== t.height && console.warn("texture-cube width and height should be identical."), + t.width >> t.images.length - 1 != 1 && console.error("texture-cube mipmap is invalid. please set mipmap as 1x1, 2x2, 4x4 ... nxn"))), + (0, + a.isPow2)(this._width) && (0, + a.isPow2)(this._height) || (i = !1), + e.activeTexture(e.TEXTURE0), + e.bindTexture(e.TEXTURE_CUBE_MAP, this._glID), + void 0 !== t.images && t.images.length > 0 && (this._setMipmap(t.images, t.flipY, t.premultiplyAlpha), + t.images.length > 1 && (this._genMipmaps = !0)), + i && (e.hint(e.GENERATE_MIPMAP_HINT, e.NICEST), + e.generateMipmap(e.TEXTURE_CUBE_MAP), + this._genMipmaps = !0), + this._setTexInfo(), + this._device._restoreTexture(0) + } + , + r.updateSubImage = function(t) { + var e = this._device._gl + , i = (0, + s.glTextureFmt)(this._format); + e.activeTexture(e.TEXTURE0), + e.bindTexture(e.TEXTURE_CUBE_MAP, this._glID), + this._setSubImage(i, t), + this._device._restoreTexture(0) + } + , + r.updateImage = function(t) { + var e = this._device._gl + , i = (0, + s.glTextureFmt)(this._format); + e.activeTexture(e.TEXTURE0), + e.bindTexture(e.TEXTURE_CUBE_MAP, this._glID), + this._setImage(i, t), + this._device._restoreTexture(0) + } + , + r._setSubImage = function(t, e) { + var i = this._device._gl + , n = e.flipY + , r = e.premultiplyAlpha + , s = e.faceIndex + , a = e.image; + void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n), + void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r), + !a || ArrayBuffer.isView(a) || a instanceof ArrayBuffer ? this._compressed ? i.compressedTexSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, e.x, e.y, e.width, e.height, t.format, a) : i.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, e.x, e.y, e.width, e.height, t.format, t.pixelType, a) : i.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, e.x, e.y, t.format, t.pixelType, a) + } + , + r._setImage = function(t, e) { + var i = this._device._gl + , n = e.flipY + , r = e.premultiplyAlpha + , s = e.faceIndex + , a = e.image; + void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n), + void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r), + !a || ArrayBuffer.isView(a) || a instanceof ArrayBuffer ? this._compressed ? i.compressedTexImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, e.width, e.height, 0, a) : i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, e.width, e.height, 0, t.format, t.pixelType, a) : i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, t.format, t.pixelType, a) + } + , + r._setMipmap = function(t, e, i) { + for (var n = (0, + s.glTextureFmt)(this._format), r = { + width: this._width, + height: this._height, + faceIndex: 0, + flipY: e, + premultiplyAlpha: i, + level: 0, + image: null + }, a = 0; a < t.length; ++a) { + var o = t[a]; + r.level = a, + r.width = this._width >> a, + r.height = this._height >> a; + for (var l = 0; l < 6; ++l) + r.faceIndex = l, + r.image = o[l], + this._setImage(n, r) + } + } + , + r._setTexInfo = function() { + var t = this._device._gl + , e = (0, + a.isPow2)(this._width) && (0, + a.isPow2)(this._height); + e || this._wrapS === s.enums.WRAP_CLAMP && this._wrapT === s.enums.WRAP_CLAMP || (console.warn("WebGL1 doesn't support all wrap modes with NPOT textures"), + this._wrapS = s.enums.WRAP_CLAMP, + this._wrapT = s.enums.WRAP_CLAMP); + var i = this._genMipmaps ? this._mipFilter : -1; + e || -1 === i || (console.warn("NPOT textures do not support mipmap filter"), + i = -1), + t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MIN_FILTER, (0, + s.glFilter)(t, this._minFilter, i)), + t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MAG_FILTER, (0, + s.glFilter)(t, this._magFilter, -1)), + t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_WRAP_S, this._wrapS), + t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_WRAP_T, this._wrapT); + var n = this._device.ext("EXT_texture_filter_anisotropic"); + n && t.texParameteri(t.TEXTURE_CUBE_MAP, n.TEXTURE_MAX_ANISOTROPY_EXT, this._anisotropy) + } + , + n + } + )(r.default); + i.default = l, + e.exports = i.default + } + ), { + "./enums": 312, + "./misc": 316, + "./texture": 322 + }], + 322: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = t("./enums") + , r = 0 + , s = (function() { + function t(t) { + this._device = t, + this._width = 4, + this._height = 4, + this._genMipmaps = !1, + this._compressed = !1, + this._anisotropy = 1, + this._minFilter = n.enums.FILTER_LINEAR, + this._magFilter = n.enums.FILTER_LINEAR, + this._mipFilter = n.enums.FILTER_LINEAR, + this._wrapS = n.enums.WRAP_REPEAT, + this._wrapT = n.enums.WRAP_REPEAT, + this._format = n.enums.TEXTURE_FMT_RGBA8, + this._target = -1, + this._id = r++ + } + return t.prototype.destroy = function() { + null !== this._glID ? (this._device._gl.deleteTexture(this._glID), + this._device._stats.tex -= this.bytes, + this._glID = null) : console.error("The texture already destroyed") + } + , + t + } + )(); + i.default = s, + e.exports = i.default + } + ), { + "./enums": 312 + }], + 323: [(function(t, e, i) { + "use strict"; + function n(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + i.__esModule = !0, + i.default = void 0, + t("./enums"); + var r = (function() { + function t(t, e, i, n) { + this._device = t, + this._format = e, + this._usage = i, + this._bytesPerVertex = this._format._bytes, + this._bytes = n.byteLength, + this._numVertices = this._bytes / this._bytesPerVertex, + this._needExpandDataStore = !0, + this._glID = t._gl.createBuffer(), + this.update(0, n), + t._stats.vb += this._bytes + } + var e, i, r = t.prototype; + return r.destroy = function() { + -1 !== this._glID ? (this._device._gl.deleteBuffer(this._glID), + this._device._stats.vb -= this.bytes, + this._glID = -1) : console.error("The buffer already destroyed") + } + , + r.update = function(t, e) { + if (-1 !== this._glID) { + if (0 !== e.byteLength) { + if (t + e.byteLength > this._bytes) { + if (t) + return void console.error("Failed to update data, bytes exceed."); + this._needExpandDataStore = !0, + this._bytes = t + e.byteLength, + this._numVertices = this._bytes / this._bytesPerVertex + } + var i = this._device._gl + , n = this._usage; + i.bindBuffer(i.ARRAY_BUFFER, this._glID), + this._needExpandDataStore ? (i.bufferData(i.ARRAY_BUFFER, e, n), + this._needExpandDataStore = !1) : i.bufferSubData(i.ARRAY_BUFFER, t, e), + i.bindBuffer(i.ARRAY_BUFFER, null) + } + } else + console.error("The buffer is destroyed") + } + , + r.getFormat = function(t) { + return this._format.element(t) + } + , + r.setUsage = function(t) { + this._usage = t + } + , + e = t, + (i = [{ + key: "count", + get: function() { + return this._numVertices + } + }]) && n(e.prototype, i), + t + } + )(); + i.default = r, + e.exports = i.default + } + ), { + "./enums": 312 + }], + 324: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("./enums"), s = (n = t("../murmurhash2_gc")) && n.__esModule ? n : { + default: n + }, a = (function() { + function t(t) { + this._attr2el = {}, + this._elements = [], + this._bytes = 0; + for (var e = "", i = 0, n = t.length; i < n; ++i) { + var a = t[i] + , o = { + name: a.name, + offset: this._bytes, + stride: 0, + stream: -1, + type: a.type, + num: a.num, + normalize: void 0 !== a.normalize && a.normalize, + bytes: a.num * (0, + r.attrTypeBytes)(a.type) + }; + this._attr2el[o.name] = o, + this._elements.push(o), + this._bytes += o.bytes, + e += o.name + ":" + o.num + ":" + o.type + ":" + o.normalize + } + for (var l = 0, h = this._elements.length; l < h; ++l) + this._elements[l].stride = this._bytes; + this._hash = (0, + s.default)(e, 666) + } + var e = t.prototype; + return e.element = function(t) { + return this._attr2el[t] + } + , + e.getHash = function() { + return this._hash + } + , + t + } + )(); + i.default = a, + e.exports = i.default + } + ), { + "../murmurhash2_gc": 333, + "./enums": 312 + }], + 325: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = (function() { + function t(t, e) { + this._cursor = 0, + this._data = new Array(e); + for (var i = 0; i < e; ++i) + this._data[i] = t() + } + return t.prototype.request = function() { + var t = this._data[this._cursor]; + return this._cursor = (this._cursor + 1) % this._data.length, + t + } + , + t + } + )(); + i.default = n, + e.exports = i.default + } + ), {}], + 326: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("./timsort")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + var a = (function() { + function t(t) { + this._count = 0, + this._data = new Array(t) + } + var e, i, n = t.prototype; + return n._resize = function(t) { + if (t > this._data.length) + for (var e = this._data.length; e < t; ++e) + this._data[e] = void 0 + } + , + n.reset = function() { + for (var t = 0; t < this._count; ++t) + this._data[t] = void 0; + this._count = 0 + } + , + n.push = function(t) { + this._count >= this._data.length && this._resize(2 * this._data.length), + this._data[this._count] = t, + ++this._count + } + , + n.pop = function() { + --this._count, + this._count < 0 && (this._count = 0); + var t = this._data[this._count]; + return this._data[this._count] = void 0, + t + } + , + n.fastRemove = function(t) { + if (!(t >= this._count || t < 0)) { + var e = this._count - 1; + this._data[t] = this._data[e], + this._data[e] = void 0, + this._count -= 1 + } + } + , + n.indexOf = function(t) { + return this._data.indexOf(t) + } + , + n.sort = function(t) { + return (0, + r.default)(this._data, 0, this._count, t) + } + , + e = t, + (i = [{ + key: "length", + get: function() { + return this._count + } + }, { + key: "data", + get: function() { + return this._data + } + }]) && s(e.prototype, i), + t + } + )(); + i.default = a, + e.exports = i.default + } + ), { + "./timsort": 331 + }], + 327: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.TypedArrayPool = i.RecyclePool = i.Pool = i.LinkedArray = i.FixedArray = i.CircularPool = void 0; + var n = h(t("./circular-pool")); + i.CircularPool = n.default; + var r = h(t("./fixed-array")); + i.FixedArray = r.default; + var s = h(t("./linked-array")); + i.LinkedArray = s.default; + var a = h(t("./pool")); + i.Pool = a.default; + var o = h(t("./recycle-pool")); + i.RecyclePool = o.default; + var l = h(t("./typed-array-pool")); + function h(t) { + return t && t.__esModule ? t : { + default: t + } + } + i.TypedArrayPool = l.default + } + ), { + "./circular-pool": 325, + "./fixed-array": 326, + "./linked-array": 328, + "./pool": 329, + "./recycle-pool": 330, + "./typed-array-pool": 332 + }], + 328: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("./pool")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + var a = (function() { + function t(t, e) { + this._fn = t, + this._count = 0, + this._head = null, + this._tail = null, + this._pool = new r.default(t,e) + } + var e, i, n = t.prototype; + return n.add = function() { + var t = this._pool.alloc(); + return this._tail ? (this._tail._next = t, + t._prev = this._tail) : this._head = t, + this._tail = t, + this._count += 1, + t + } + , + n.remove = function(t) { + t._prev ? t._prev._next = t._next : this._head = t._next, + t._next ? t._next._prev = t._prev : this._tail = t._prev, + t._next = null, + t._prev = null, + this._pool.free(t), + this._count -= 1 + } + , + n.forEach = function(t, e) { + var i = this._head; + if (i) { + e && (t = t.bind(e)); + for (var n = 0, r = i; i; ) + r = i._next, + t(i, n, this), + i = r, + ++n + } + } + , + e = t, + (i = [{ + key: "head", + get: function() { + return this._head + } + }, { + key: "tail", + get: function() { + return this._tail + } + }, { + key: "length", + get: function() { + return this._count + } + }]) && s(e.prototype, i), + t + } + )(); + i.default = a, + e.exports = i.default + } + ), { + "./pool": 329 + }], + 329: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = (function() { + function t(t, e) { + this._fn = t, + this._idx = e - 1, + this._frees = new Array(e); + for (var i = 0; i < e; ++i) + this._frees[i] = t() + } + var e = t.prototype; + return e._expand = function(t) { + var e = this._frees; + this._frees = new Array(t); + for (var i = t - e.length, n = 0; n < i; ++n) + this._frees[n] = this._fn(); + for (var r = i, s = 0; r < t; ++r, + ++s) + this._frees[r] = e[s]; + this._idx += i + } + , + e.alloc = function() { + this._idx < 0 && this._expand(Math.round(1.2 * this._frees.length) + 1); + var t = this._frees[this._idx]; + return this._frees[this._idx] = null, + --this._idx, + t + } + , + e.free = function(t) { + ++this._idx, + this._frees[this._idx] = t + } + , + e.clear = function(t) { + for (var e = 0; e <= this._idx; e++) + t && t(this._frees[e]); + this._frees.length = 0, + this._idx = -1 + } + , + t + } + )(); + i.default = n, + e.exports = i.default + } + ), {}], + 330: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("./timsort")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + var a = (function() { + function t(t, e) { + this._fn = t, + this._count = 0, + this._data = new Array(e); + for (var i = 0; i < e; ++i) + this._data[i] = t() + } + var e, i, n = t.prototype; + return n.reset = function() { + this._count = 0 + } + , + n.resize = function(t) { + if (t > this._data.length) + for (var e = this._data.length; e < t; ++e) + this._data[e] = this._fn() + } + , + n.add = function() { + return this._count >= this._data.length && this.resize(2 * this._data.length), + this._data[this._count++] + } + , + n.remove = function(t) { + if (!(t >= this._count)) { + var e = this._count - 1 + , i = this._data[t]; + this._data[t] = this._data[e], + this._data[e] = i, + this._count -= 1 + } + } + , + n.sort = function(t) { + return (0, + r.default)(this._data, 0, this._count, t) + } + , + e = t, + (i = [{ + key: "length", + get: function() { + return this._count + } + }, { + key: "data", + get: function() { + return this._data + } + }]) && s(e.prototype, i), + t + } + )(); + i.default = a, + cc.RecyclePool = a, + e.exports = i.default + } + ), { + "./timsort": 331 + }], + 331: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = function(t, e, i, r) { + if (!Array.isArray(t)) + throw new TypeError("Can only sort arrays"); + void 0 === e && (e = 0), + void 0 === i && (i = t.length), + void 0 === r && (r = l); + var s = i - e; + if (!(s < 2)) { + var a = 0; + if (s < n) + return void _(t, e, i, e + (a = c(t, e, i, r)), r); + var o = new p(t,r) + , u = h(s); + do { + if ((a = c(t, e, i, r)) < u) { + var f = s; + f > u && (f = u), + _(t, e, e + f, e + a, r), + a = f + } + o.pushRun(e, a), + o.mergeRuns(), + s -= a, + e += a + } while (0 !== s);o.forceMergeRuns() + } + } + ; + var n = 32 + , r = 7 + , s = 256 + , a = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9]; + function o(t) { + return t < 1e5 ? t < 100 ? t < 10 ? 0 : 1 : t < 1e4 ? t < 1e3 ? 2 : 3 : 4 : t < 1e7 ? t < 1e6 ? 5 : 6 : t < 1e9 ? t < 1e8 ? 7 : 8 : 9 + } + function l(t, e) { + if (t === e) + return 0; + if (~~t === t && ~~e === e) { + if (0 === t || 0 === e) + return t < e ? -1 : 1; + if (t < 0 || e < 0) { + if (e >= 0) + return -1; + if (t >= 0) + return 1; + t = -t, + e = -e + } + var i = o(t) + , n = o(e) + , r = 0; + return i < n ? (t *= a[n - i - 1], + e /= 10, + r = -1) : i > n && (e *= a[i - n - 1], + t /= 10, + r = 1), + t === e ? r : t < e ? -1 : 1 + } + var s = String(t) + , l = String(e); + return s === l ? 0 : s < l ? -1 : 1 + } + function h(t) { + for (var e = 0; t >= n; ) + e |= 1 & t, + t >>= 1; + return t + e + } + function c(t, e, i, n) { + var r = e + 1; + if (r === i) + return 1; + if (n(t[r++], t[e]) < 0) { + for (; r < i && n(t[r], t[r - 1]) < 0; ) + r++; + u(t, e, r) + } else + for (; r < i && n(t[r], t[r - 1]) >= 0; ) + r++; + return r - e + } + function u(t, e, i) { + for (i--; e < i; ) { + var n = t[e]; + t[e++] = t[i], + t[i--] = n + } + } + function _(t, e, i, n, r) { + for (n === e && n++; n < i; n++) { + for (var s = t[n], a = e, o = n; a < o; ) { + var l = a + o >>> 1; + r(s, t[l]) < 0 ? o = l : a = l + 1 + } + var h = n - a; + switch (h) { + case 3: + t[a + 3] = t[a + 2]; + case 2: + t[a + 2] = t[a + 1]; + case 1: + t[a + 1] = t[a]; + break; + default: + for (; h > 0; ) + t[a + h] = t[a + h - 1], + h-- + } + t[a] = s + } + } + function f(t, e, i, n, r, s) { + var a = 0 + , o = 0 + , l = 1; + if (s(t, e[i + r]) > 0) { + for (o = n - r; l < o && s(t, e[i + r + l]) > 0; ) + a = l, + (l = 1 + (l << 1)) <= 0 && (l = o); + l > o && (l = o), + a += r, + l += r + } else { + for (o = r + 1; l < o && s(t, e[i + r - l]) <= 0; ) + a = l, + (l = 1 + (l << 1)) <= 0 && (l = o); + l > o && (l = o); + var h = a; + a = r - l, + l = r - h + } + for (a++; a < l; ) { + var c = a + (l - a >>> 1); + s(t, e[i + c]) > 0 ? a = c + 1 : l = c + } + return l + } + function d(t, e, i, n, r, s) { + var a = 0 + , o = 0 + , l = 1; + if (s(t, e[i + r]) < 0) { + for (o = r + 1; l < o && s(t, e[i + r - l]) < 0; ) + a = l, + (l = 1 + (l << 1)) <= 0 && (l = o); + l > o && (l = o); + var h = a; + a = r - l, + l = r - h + } else { + for (o = n - r; l < o && s(t, e[i + r + l]) >= 0; ) + a = l, + (l = 1 + (l << 1)) <= 0 && (l = o); + l > o && (l = o), + a += r, + l += r + } + for (a++; a < l; ) { + var c = a + (l - a >>> 1); + s(t, e[i + c]) < 0 ? l = c : a = c + 1 + } + return l + } + var p = (function() { + function t(t, e) { + this.array = t, + this.compare = e, + this.minGallop = r, + this.length = t.length, + this.tmpStorageLength = s, + this.length < 2 * s && (this.tmpStorageLength = this.length >>> 1), + this.tmp = new Array(this.tmpStorageLength), + this.stackLength = this.length < 120 ? 5 : this.length < 1542 ? 10 : this.length < 119151 ? 19 : 40, + this.runStart = new Array(this.stackLength), + this.runLength = new Array(this.stackLength), + this.stackSize = 0 + } + var e = t.prototype; + return e.pushRun = function(t, e) { + this.runStart[this.stackSize] = t, + this.runLength[this.stackSize] = e, + this.stackSize += 1 + } + , + e.mergeRuns = function() { + for (; this.stackSize > 1; ) { + var t = this.stackSize - 2; + if (t >= 1 && this.runLength[t - 1] <= this.runLength[t] + this.runLength[t + 1] || t >= 2 && this.runLength[t - 2] <= this.runLength[t] + this.runLength[t - 1]) + this.runLength[t - 1] < this.runLength[t + 1] && t--; + else if (this.runLength[t] > this.runLength[t + 1]) + break; + this.mergeAt(t) + } + } + , + e.forceMergeRuns = function() { + for (; this.stackSize > 1; ) { + var t = this.stackSize - 2; + t > 0 && this.runLength[t - 1] < this.runLength[t + 1] && t--, + this.mergeAt(t) + } + } + , + e.mergeAt = function(t) { + var e = this.compare + , i = this.array + , n = this.runStart[t] + , r = this.runLength[t] + , s = this.runStart[t + 1] + , a = this.runLength[t + 1]; + this.runLength[t] = r + a, + t === this.stackSize - 3 && (this.runStart[t + 1] = this.runStart[t + 2], + this.runLength[t + 1] = this.runLength[t + 2]), + this.stackSize--; + var o = d(i[s], i, n, r, 0, e); + n += o, + 0 != (r -= o) && 0 !== (a = f(i[n + r - 1], i, s, a, a - 1, e)) && (r <= a ? this.mergeLow(n, r, s, a) : this.mergeHigh(n, r, s, a)) + } + , + e.mergeLow = function(t, e, i, n) { + var s = this.compare + , a = this.array + , o = this.tmp + , l = 0; + for (l = 0; l < e; l++) + o[l] = a[t + l]; + var h = 0 + , c = i + , u = t; + if (a[u++] = a[c++], + 0 != --n) + if (1 !== e) { + for (var _ = this.minGallop; ; ) { + var p = 0 + , m = 0 + , y = !1; + do { + if (s(a[c], o[h]) < 0) { + if (a[u++] = a[c++], + m++, + p = 0, + 0 == --n) { + y = !0; + break + } + } else if (a[u++] = o[h++], + p++, + m = 0, + 1 == --e) { + y = !0; + break + } + } while ((p | m) < _);if (y) + break; + do { + if (0 !== (p = d(a[c], o, h, e, 0, s))) { + for (l = 0; l < p; l++) + a[u + l] = o[h + l]; + if (u += p, + h += p, + (e -= p) <= 1) { + y = !0; + break + } + } + if (a[u++] = a[c++], + 0 == --n) { + y = !0; + break + } + if (0 !== (m = f(o[h], a, c, n, 0, s))) { + for (l = 0; l < m; l++) + a[u + l] = a[c + l]; + if (u += m, + c += m, + 0 == (n -= m)) { + y = !0; + break + } + } + if (a[u++] = o[h++], + 1 == --e) { + y = !0; + break + } + _-- + } while (p >= r || m >= r);if (y) + break; + _ < 0 && (_ = 0), + _ += 2 + } + if (this.minGallop = _, + _ < 1 && (this.minGallop = 1), + 1 === e) { + for (l = 0; l < n; l++) + a[u + l] = a[c + l]; + a[u + n] = o[h] + } else { + if (0 === e) + throw new Error("mergeLow preconditions were not respected"); + for (l = 0; l < e; l++) + a[u + l] = o[h + l] + } + } else { + for (l = 0; l < n; l++) + a[u + l] = a[c + l]; + a[u + n] = o[h] + } + else + for (l = 0; l < e; l++) + a[u + l] = o[h + l] + } + , + e.mergeHigh = function(t, e, i, n) { + var s = this.compare + , a = this.array + , o = this.tmp + , l = 0; + for (l = 0; l < n; l++) + o[l] = a[i + l]; + var h = t + e - 1 + , c = n - 1 + , u = i + n - 1 + , _ = 0 + , p = 0; + if (a[u--] = a[h--], + 0 != --e) + if (1 !== n) { + for (var m = this.minGallop; ; ) { + var y = 0 + , v = 0 + , g = !1; + do { + if (s(o[c], a[h]) < 0) { + if (a[u--] = a[h--], + y++, + v = 0, + 0 == --e) { + g = !0; + break + } + } else if (a[u--] = o[c--], + v++, + y = 0, + 1 == --n) { + g = !0; + break + } + } while ((y | v) < m);if (g) + break; + do { + if (0 != (y = e - d(o[c], a, t, e, e - 1, s))) { + for (e -= y, + p = 1 + (u -= y), + _ = 1 + (h -= y), + l = y - 1; l >= 0; l--) + a[p + l] = a[_ + l]; + if (0 === e) { + g = !0; + break + } + } + if (a[u--] = o[c--], + 1 == --n) { + g = !0; + break + } + if (0 != (v = n - f(a[h], o, 0, n, n - 1, s))) { + for (n -= v, + p = 1 + (u -= v), + _ = 1 + (c -= v), + l = 0; l < v; l++) + a[p + l] = o[_ + l]; + if (n <= 1) { + g = !0; + break + } + } + if (a[u--] = a[h--], + 0 == --e) { + g = !0; + break + } + m-- + } while (y >= r || v >= r);if (g) + break; + m < 0 && (m = 0), + m += 2 + } + if (this.minGallop = m, + m < 1 && (this.minGallop = 1), + 1 === n) { + for (p = 1 + (u -= e), + _ = 1 + (h -= e), + l = e - 1; l >= 0; l--) + a[p + l] = a[_ + l]; + a[u] = o[c] + } else { + if (0 === n) + throw new Error("mergeHigh preconditions were not respected"); + for (_ = u - (n - 1), + l = 0; l < n; l++) + a[_ + l] = o[l] + } + } else { + for (p = 1 + (u -= e), + _ = 1 + (h -= e), + l = e - 1; l >= 0; l--) + a[p + l] = a[_ + l]; + a[u] = o[c] + } + else + for (_ = u - (n - 1), + l = 0; l < n; l++) + a[_ + l] = o[l] + } + , + t + } + )(); + e.exports = i.default + } + ), {}], + 332: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + for (var n = Array(8), r = 0; r < 8; ++r) + n[r] = []; + function s(t) { + for (var e = 16; e <= 1 << 28; e *= 16) + if (t <= e) + return e; + return 0 + } + function a(t) { + var e, i; + return e = (t > 65535) << 4, + e |= i = ((t >>>= e) > 255) << 3, + e |= i = ((t >>>= i) > 15) << 2, + (e |= i = ((t >>>= i) > 3) << 1) | (t >>>= i) >> 1 + } + function o(t) { + var e = s(t) + , i = n[a(e) >> 2]; + return i.length > 0 ? i.pop() : new ArrayBuffer(e) + } + var l = { + alloc_int8: function(t) { + var e = new Int8Array(o(t),0,t); + return e.length !== t ? e.subarray(0, t) : e + }, + alloc_uint8: function(t) { + var e = new Uint8Array(o(t),0,t); + return e.length !== t ? e.subarray(0, t) : e + }, + alloc_int16: function(t) { + var e = new Int16Array(o(2 * t),0,t); + return e.length !== t ? e.subarray(0, t) : e + }, + alloc_uint16: function(t) { + var e = new Uint16Array(o(2 * t),0,t); + return e.length !== t ? e.subarray(0, t) : e + }, + alloc_int32: function(t) { + var e = new Int32Array(o(4 * t),0,t); + return e.length !== t ? e.subarray(0, t) : e + }, + alloc_uint32: function(t) { + var e = new Uint32Array(o(4 * t),0,t); + return e.length !== t ? e.subarray(0, t) : e + }, + alloc_float32: function(t) { + var e = new Float32Array(o(4 * t),0,t); + return e.length !== t ? e.subarray(0, t) : e + }, + alloc_float64: function(t) { + var e = new Float64Array(o(8 * t),0,t); + return e.length !== t ? e.subarray(0, t) : e + }, + alloc_dataview: function(t) { + var e = new DataView(o(t),0,t); + return e.length !== t ? e.subarray(0, t) : e + }, + free: function(t) { + var e; + e = t.buffer, + n[a(e.byteLength) >> 2].push(e) + }, + reset: function() { + for (var t = Array(8), e = 0; e < 8; ++e) + t[e] = [] + } + }; + i.default = l, + e.exports = i.default + } + ), {}], + 333: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = function(t, e) { + for (var i, n = t.length, r = e ^ n, s = 0; n >= 4; ) + i = 1540483477 * (65535 & (i = 255 & t.charCodeAt(s) | (255 & t.charCodeAt(++s)) << 8 | (255 & t.charCodeAt(++s)) << 16 | (255 & t.charCodeAt(++s)) << 24)) + ((1540483477 * (i >>> 16) & 65535) << 16), + r = 1540483477 * (65535 & r) + ((1540483477 * (r >>> 16) & 65535) << 16) ^ (i = 1540483477 * (65535 & (i ^= i >>> 24)) + ((1540483477 * (i >>> 16) & 65535) << 16)), + n -= 4, + ++s; + switch (n) { + case 3: + r ^= (255 & t.charCodeAt(s + 2)) << 16; + case 2: + r ^= (255 & t.charCodeAt(s + 1)) << 8; + case 1: + r = 1540483477 * (65535 & (r ^= 255 & t.charCodeAt(s))) + ((1540483477 * (r >>> 16) & 65535) << 16) + } + return r = 1540483477 * (65535 & (r ^= r >>> 13)) + ((1540483477 * (r >>> 16) & 65535) << 16), + (r ^= r >>> 15) >>> 0 + } + , + e.exports = i.default + } + ), {}], + 334: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = t("../../core/value-types") + , r = o(t("../core/base-renderer")) + , s = o(t("../enums")) + , a = t("../memop"); + function o(t) { + return t && t.__esModule ? t : { + default: t + } + } + function l(t) { + if (void 0 === t) + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t + } + function h(t, e) { + return (h = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var c = new Float32Array(16) + , u = new Float32Array(16) + , _ = new Float32Array(16) + , f = new Float32Array(16) + , d = new Float32Array(4) + , p = new Float32Array(64) + , m = [] + , y = new Float32Array(4) + , v = new n.Vec4(0,0,0,0) + , g = new n.Vec3(0,0,0) + , A = new n.Vec3(0,0,0) + , x = new a.RecyclePool(function() { + return new Float32Array(16) + } + ,8); + function b(t, e) { + return t._priority - e._priority + } + var C = (function(t) { + var e, i; + function r(e, i) { + var n; + return (n = t.call(this, e, i) || this)._time = new Float32Array(4), + n._lights = [], + n._shadowLights = [], + n._numLights = 0, + n._defines = {}, + n._registerStage("shadowcast", n._shadowStage.bind(l(n))), + n._registerStage("opaque", n._opaqueStage.bind(l(n))), + n._registerStage("transparent", n._transparentStage.bind(l(n))), + n + } + i = t, + (e = r).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + h(e, i); + var a = r.prototype; + return a.reset = function() { + x.reset(), + t.prototype.reset.call(this) + } + , + a.render = function(t, e) { + this.reset(), + e && (this._time[0] += e, + this._time[1] = e, + this._time[2]++), + this._device.setUniform("cc_time", this._time), + this._updateLights(t); + for (var i = this._device._gl.canvas, n = 0; n < t._cameras.length; ++n) { + var r = this._requestView() + , s = i.width + , a = i.height; + t._cameras.data[n].extractView(r, s, a) + } + this._viewPools.sort(b); + for (var o = 0; o < this._viewPools.length; ++o) { + var l = this._viewPools.data[o]; + this._render(l, t) + } + } + , + a.renderCamera = function(t, e) { + this.reset(), + this._updateLights(e); + var i = this._device._gl.canvas + , n = i.width + , r = i.height + , s = this._requestView(); + t.extractView(s, n, r), + this._viewPools.sort(b); + for (var a = 0; a < this._viewPools.length; ++a) { + var o = this._viewPools.data[a]; + this._render(o, e) + } + } + , + a._updateLights = function(t) { + this._lights.length = 0, + this._shadowLights.length = 0; + for (var e = t._lights, i = 0; i < e.length; ++i) { + var n = e.data[i]; + if (n.update(this._device), + n.shadowType !== s.default.SHADOW_NONE) { + this._shadowLights.length < 2 && this._shadowLights.splice(0, 0, n); + var r = this._requestView(); + n.extractView(r, ["shadowcast"]), + this._lights.splice(0, 0, n) + } else + this._lights.push(n) + } + this._updateLightDefines(), + this._numLights = e._count + } + , + a._updateLightDefines = function() { + for (var t = this._defines, e = 0; e < this._lights.length; ++e) { + var i = this._lights[e] + , n = "CC_LIGHT_" + e + "_TYPE" + , r = "CC_SHADOW_" + e + "_TYPE"; + t[n] !== i._type && (t[n] = i._type, + this._definesChanged = !0), + t[r] !== i._shadowType && (t[r] = i._shadowType, + this._definesChanged = !0) + } + var s = Math.min(4, this._lights.length); + t.CC_NUM_LIGHTS !== s && (t.CC_NUM_LIGHTS = s, + this._definesChanged = !0), + s = Math.min(4, this._shadowLights.length), + t.CC_NUM_SHADOW_LIGHTS !== s && (t.CC_NUM_SHADOW_LIGHTS = s, + this._definesChanged = !0) + } + , + a._submitLightsUniforms = function() { + var t = this._device; + if (this._lights.length > 0) { + for (var e = x.add(), i = x.add(), n = x.add(), r = Math.min(4, this._lights.length), a = 0; a < r; ++a) { + var o = this._lights[a] + , l = 4 * a; + n.set(o._colorUniform, l), + i.set(o._directionUniform, l), + e.set(o._positionUniform, l), + e[l + 3] = o._range, + o._type === s.default.LIGHT_SPOT ? (i[l + 3] = o._spotUniform[0], + n[l + 3] = o._spotUniform[1]) : (i[l + 3] = 0, + n[l + 3] = 0) + } + t.setUniform("cc_lightDirection", i), + t.setUniform("cc_lightColor", n), + t.setUniform("cc_lightPositionAndRange", e) + } + } + , + a._submitShadowStageUniforms = function(t) { + var e = t._shadowLight + , i = y; + i[0] = e.shadowMinDepth, + i[1] = e.shadowMaxDepth, + i[2] = e.shadowDepthScale, + i[3] = e.shadowDarkness, + this._device.setUniform("cc_shadow_map_lightViewProjMatrix", n.Mat4.toArray(f, t._matViewProj)), + this._device.setUniform("cc_shadow_map_info", i), + this._device.setUniform("cc_shadow_map_bias", e.shadowBias), + this._defines.CC_SHADOW_TYPE = e._shadowType + } + , + a._submitOtherStagesUniforms = function() { + for (var t = x.add(), e = 0; e < this._shadowLights.length; ++e) { + var i = this._shadowLights[e] + , r = m[e]; + r || (r = m[e] = new Float32Array(p.buffer,64 * e,16)), + n.Mat4.toArray(r, i.viewProjMatrix); + var s = 4 * e; + t[s] = i.shadowMinDepth, + t[s + 1] = i.shadowMaxDepth, + t[s + 2] = i._shadowResolution, + t[s + 3] = i.shadowDarkness + } + this._device.setUniform("cc_shadow_lightViewProjMatrix", p), + this._device.setUniform("cc_shadow_info", t) + } + , + a._sortItems = function(t) { + t.sort((function(t, e) { + return t.passes.length !== e.passes.length ? t.passes.length - e.passes.length : t.sortKey - e.sortKey + } + )) + } + , + a._shadowStage = function(t, e) { + this._submitShadowStageUniforms(t); + for (var i = 0; i < e.length; ++i) { + var n = e.data[i]; + n.effect.getDefine("CC_CASTING_SHADOW") && this._draw(n) + } + } + , + a._drawItems = function(t, e) { + var i = this._shadowLights; + if (0 === i.length && 0 === this._numLights) + for (var n = 0; n < e.length; ++n) { + var r = e.data[n]; + this._draw(r) + } + else + for (var s = 0; s < e.length; ++s) { + for (var a = e.data[s], o = 0; o < i.length; ++o) + this._device.setTexture("cc_shadow_map_" + o, i[o].shadowMap, this._allocTextureUnit()); + this._draw(a) + } + } + , + a._opaqueStage = function(t, e) { + t.getPosition(v), + this._device.setUniform("cc_matView", n.Mat4.toArray(c, t._matView)), + this._device.setUniform("cc_matViewInv", n.Mat4.toArray(u, t._matViewInv)), + this._device.setUniform("cc_matProj", n.Mat4.toArray(_, t._matProj)), + this._device.setUniform("cc_matViewProj", n.Mat4.toArray(f, t._matViewProj)), + this._device.setUniform("cc_cameraPos", n.Vec4.toArray(d, v)), + this._submitLightsUniforms(), + this._submitOtherStagesUniforms(), + this._drawItems(t, e) + } + , + a._transparentStage = function(t, e) { + t.getPosition(v), + t.getForward(g), + this._device.setUniform("cc_matView", n.Mat4.toArray(c, t._matView)), + this._device.setUniform("cc_matViewInv", n.Mat4.toArray(u, t._matViewInv)), + this._device.setUniform("cc_matProj", n.Mat4.toArray(_, t._matProj)), + this._device.setUniform("cc_matViewProj", n.Mat4.toArray(f, t._matViewProj)), + this._device.setUniform("cc_cameraPos", n.Vec4.toArray(d, v)), + this._submitLightsUniforms(), + this._submitOtherStagesUniforms(); + for (var i = 0; i < e.length; ++i) { + var r = e.data[i]; + r.node.getWorldPosition(A), + n.Vec3.sub(A, A, v), + r.sortKey = -n.Vec3.dot(A, g) + } + this._sortItems(e), + this._drawItems(t, e) + } + , + r + } + )(r.default); + i.default = C, + e.exports = i.default + } + ), { + "../../core/value-types": 282, + "../core/base-renderer": 304, + "../enums": 310, + "../memop": 327 + }], + 335: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = t("../../core/value-types"), s = t("../../core/geom-utils"), a = (n = t("../enums")) && n.__esModule ? n : { + default: n + }; + function o(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, + n.configurable = !0, + "value"in n && (n.writable = !0), + Object.defineProperty(t, n.key, n) + } + } + var l = new r.Mat4 + , h = new r.Mat4 + , c = new r.Mat4 + , u = new r.Mat4 + , _ = new r.Mat4 + , f = new r.Mat4 + , d = new r.Vec3 + , p = new r.Vec3 + , m = (function() { + function t() { + this._poolID = -1, + this._node = null, + this._projection = a.default.PROJ_PERSPECTIVE, + this._priority = 0, + this._color = new r.Vec4(.2,.3,.47,1), + this._depth = 1, + this._stencil = 0, + this._clearFlags = a.default.CLEAR_COLOR | a.default.CLEAR_DEPTH, + this._clearModel = null, + this._stages = [], + this._framebuffer = null, + this._near = .01, + this._far = 1e3, + this._fov = Math.PI / 4, + this._rect = { + x: 0, + y: 0, + w: 1, + h: 1 + }, + this._orthoHeight = 10, + this._cullingMask = 4294967295 + } + var e, i, n = t.prototype; + return n.setCullingMask = function(t) { + this._cullingMask = t + } + , + n.getNode = function() { + return this._node + } + , + n.setNode = function(t) { + this._node = t + } + , + n.getType = function() { + return this._projection + } + , + n.setType = function(t) { + this._projection = t + } + , + n.getPriority = function() { + return this._priority + } + , + n.setPriority = function(t) { + this._priority = t + } + , + n.getOrthoHeight = function() { + return this._orthoHeight + } + , + n.setOrthoHeight = function(t) { + this._orthoHeight = t + } + , + n.getFov = function() { + return this._fov + } + , + n.setFov = function(t) { + this._fov = t + } + , + n.getNear = function() { + return this._near + } + , + n.setNear = function(t) { + this._near = t + } + , + n.getFar = function() { + return this._far + } + , + n.setFar = function(t) { + this._far = t + } + , + n.getColor = function(t) { + return r.Vec4.copy(t, this._color) + } + , + n.setColor = function(t, e, i, n) { + r.Vec4.set(this._color, t, e, i, n) + } + , + n.getDepth = function() { + return this._depth + } + , + n.setDepth = function(t) { + this._depth = t + } + , + n.getStencil = function() { + return this._stencil + } + , + n.setStencil = function(t) { + this._stencil = t + } + , + n.getClearFlags = function() { + return this._clearFlags + } + , + n.setClearFlags = function(t) { + this._clearFlags = t + } + , + n.getRect = function(t) { + return t.x = this._rect.x, + t.y = this._rect.y, + t.w = this._rect.w, + t.h = this._rect.h, + t + } + , + n.setRect = function(t, e, i, n) { + this._rect.x = t, + this._rect.y = e, + this._rect.w = i, + this._rect.h = n + } + , + n.getStages = function() { + return this._stages + } + , + n.setStages = function(t) { + this._stages = t + } + , + n.getFramebuffer = function() { + return this._framebuffer + } + , + n.setFrameBuffer = function(t) { + this._framebuffer = t + } + , + n._calcMatrices = function(t, e) { + this._node.getWorldRT(c), + r.Mat4.invert(h, c); + var i = t / e; + if (this._projection === a.default.PROJ_PERSPECTIVE) + r.Mat4.perspective(u, this._fov, i, this._near, this._far); + else { + var n = this._orthoHeight * i + , s = this._orthoHeight; + r.Mat4.ortho(u, -n, n, -s, s, this._near, this._far) + } + r.Mat4.mul(_, u, h), + r.Mat4.invert(f, _) + } + , + n.extractView = function(t, e, i) { + this._framebuffer && (e = this._framebuffer._width, + i = this._framebuffer._height), + t._priority = this._priority, + t._rect.x = this._rect.x * e, + t._rect.y = this._rect.y * i, + t._rect.w = this._rect.w * e, + t._rect.h = this._rect.h * i, + this.getColor(t._color), + t._depth = this._depth, + t._stencil = this._stencil, + t._clearFlags = this._clearFlags, + t._clearModel = this._clearModel, + t._stages = this._stages, + t._framebuffer = this._framebuffer, + this._calcMatrices(e, i), + r.Mat4.copy(t._matView, h), + r.Mat4.copy(t._matViewInv, c), + r.Mat4.copy(t._matProj, u), + r.Mat4.copy(t._matViewProj, _), + r.Mat4.copy(t._matInvViewProj, f), + t._cullingMask = this._cullingMask + } + , + n.screenPointToRay = function(t, e, i, n, o) { + if (!cc.geomUtils) + return o; + o = o || new s.Ray, + this._calcMatrices(i, n); + var l = this._rect.x * i + , h = this._rect.y * n + , c = this._rect.w * i + , u = this._rect.h * n; + return r.Vec3.set(p, (t - l) / c * 2 - 1, (e - h) / u * 2 - 1, 1), + r.Vec3.transformMat4(p, p, f), + this._projection === a.default.PROJ_PERSPECTIVE ? this._node.getWorldPosition(d) : (r.Vec3.set(d, (t - l) / c * 2 - 1, (e - h) / u * 2 - 1, -1), + r.Vec3.transformMat4(d, d, f)), + s.Ray.fromPoints(o, d, p) + } + , + n.screenToWorld = function(t, e, i, n) { + this._calcMatrices(i, n); + var s = this._rect.x * i + , o = this._rect.y * n + , l = this._rect.w * i + , h = this._rect.h * n; + return this._projection === a.default.PROJ_PERSPECTIVE ? (r.Vec3.set(t, (e.x - s) / l * 2 - 1, (e.y - o) / h * 2 - 1, .9999), + r.Vec3.transformMat4(t, t, f), + this._node.getWorldPosition(d), + r.Vec3.lerp(t, d, t, (0, + r.lerp)(this._near / this._far, 1, e.z))) : (r.Vec3.set(t, (e.x - s) / l * 2 - 1, (e.y - o) / h * 2 - 1, 2 * e.z - 1), + r.Vec3.transformMat4(t, t, f)), + t + } + , + n.worldToScreen = function(t, e, i, n) { + this._calcMatrices(i, n); + var s = this._rect.x * i + , a = this._rect.y * n + , o = this._rect.w * i + , l = this._rect.h * n; + return r.Vec3.transformMat4(t, e, _), + t.x = s + .5 * (t.x + 1) * o, + t.y = a + .5 * (t.y + 1) * l, + t.z = .5 * t.z + .5, + t + } + , + n.worldMatrixToScreen = function(t, e, i, n) { + this._calcMatrices(i, n), + r.Mat4.mul(t, _, e); + var s = i / 2 + , a = n / 2; + return r.Mat4.identity(l), + r.Mat4.transform(l, l, r.Vec3.set(d, s, a, 0)), + r.Mat4.scale(l, l, r.Vec3.set(d, s, a, 1)), + r.Mat4.mul(t, l, t), + t + } + , + e = t, + (i = [{ + key: "cullingMask", + get: function() { + return this._cullingMask + }, + set: function(t) { + this._cullingMask = t + } + }]) && o(e.prototype, i), + t + } + )(); + i.default = m, + e.exports = i.default + } + ), { + "../../core/geom-utils": 148, + "../../core/value-types": 282, + "../enums": 310 + }], + 336: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = (function() { + function t() { + this._type = "default", + this._poolID = -1, + this._node = null, + this._inputAssembler = null, + this._effect = null, + this._viewID = -1, + this._cameraID = -1, + this._userKey = -1, + this._castShadow = !1, + this._boundingShape = null + } + var e = t.prototype; + return e.setNode = function(t) { + this._node = t + } + , + e.setInputAssembler = function(t) { + this._inputAssembler = t + } + , + e.setEffect = function(t) { + this._effect = t + } + , + e.setUserKey = function(t) { + this._userKey = t + } + , + e.extractDrawItem = function(t) { + t.model = this, + t.node = this._node, + t.ia = this._inputAssembler, + t.effect = this._effect + } + , + t + } + )(); + i.default = n, + e.exports = i.default + } + ), {}], + 337: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = t("../memop") + , r = (function() { + function t(t) { + this._lights = new n.FixedArray(16), + this._models = new n.FixedArray(16), + this._cameras = new n.FixedArray(16), + this._debugCamera = null, + this._app = t, + this._views = [] + } + var e = t.prototype; + return e._add = function(t, e) { + -1 === e._poolID && (t.push(e), + e._poolID = t.length - 1) + } + , + e._remove = function(t, e) { + -1 !== e._poolID && (t.data[t.length - 1]._poolID = e._poolID, + t.fastRemove(e._poolID), + e._poolID = -1) + } + , + e.reset = function() { + for (var t = 0; t < this._models.length; ++t) + this._models.data[t]._viewID = -1 + } + , + e.setDebugCamera = function(t) { + this._debugCamera = t + } + , + e.getCameraCount = function() { + return this._cameras.length + } + , + e.getCamera = function(t) { + return this._cameras.data[t] + } + , + e.addCamera = function(t) { + this._add(this._cameras, t) + } + , + e.removeCamera = function(t) { + this._remove(this._cameras, t) + } + , + e.getModelCount = function() { + return this._models.length + } + , + e.getModel = function(t) { + return this._models.data[t] + } + , + e.addModel = function(t) { + this._add(this._models, t) + } + , + e.removeModel = function(t) { + this._remove(this._models, t) + } + , + e.getLightCount = function() { + return this._lights.length + } + , + e.getLight = function(t) { + return this._lights.data[t] + } + , + e.addLight = function(t) { + this._add(this._lights, t) + } + , + e.removeLight = function(t) { + this._remove(this._lights, t) + } + , + e.addView = function(t) { + -1 === this._views.indexOf(t) && this._views.push(t) + } + , + e.removeView = function(t) { + var e = this._views.indexOf(t); + -1 !== e && this._views.splice(e, 1) + } + , + t + } + )(); + i.default = r, + e.exports = i.default + } + ), { + "../memop": 327 + }], + 338: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.getInspectorProps = function(t) { + var e = { + type: t.type + }; + Object.assign(e, t.editor || t.inspector), + e.defines = t.defines, + e.value = v(e.type)(t.value), + t.range && (e.range = t.range); + var i = g(e.type); + return e.typeName = A[i] || i, + e.valueCtor = d[e.type], + "cc.Texture2D" == e.typeName && (e.typeName = "cc.Asset", + e.assetType = "cc.Texture2D"), + e + } + , + i.getClassName = i.getInstanceCtor = i.getInstanceType = i.enums2default = i.ctor2enums = void 0; + var n, r, s, a, o = c(t("./enums")), l = t("../core/value-types"), h = c(t("../core/assets/CCTexture2D")); + function c(t) { + return t && t.__esModule ? t : { + default: t + } + } + var u; + u = t("./gfx/texture-2d"); + var _ = cc.Object + , f = ((n = {})[Boolean] = function(t) { + return t || !1 + } + , + n[Number] = function(t) { + return t ? ArrayBuffer.isView(t) ? t[0] : t : 0 + } + , + n[l.Vec2] = function(t) { + return t ? cc.v2(t[0], t[1]) : cc.v2() + } + , + n[l.Vec3] = function(t) { + return t ? cc.v3(t[0], t[1], t[2]) : cc.v3() + } + , + n[l.Vec4] = function(t) { + return t ? cc.v4(t[0], t[1], t[2], t[3]) : cc.v4() + } + , + n[l.Color] = function(t) { + return t ? cc.color(255 * t[0], 255 * t[1], 255 * t[2], 255 * (t[3] || 1)) : cc.color() + } + , + n[l.Mat4] = function(t) { + return t ? cc.mat4(t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15]) : cc.mat4() + } + , + n[h.default] = function() { + return null + } + , + n[_] = function() { + return null + } + , + n) + , d = ((r = {})[o.default.PARAM_INT] = Number, + r[o.default.PARAM_INT2] = l.Vec2, + r[o.default.PARAM_INT3] = l.Vec3, + r[o.default.PARAM_INT4] = l.Vec4, + r[o.default.PARAM_FLOAT] = Number, + r[o.default.PARAM_FLOAT2] = l.Vec2, + r[o.default.PARAM_FLOAT3] = l.Vec3, + r[o.default.PARAM_FLOAT4] = l.Vec4, + r[o.default.PARAM_MAT4] = l.Mat4, + r[o.default.PARAM_TEXTURE_2D] = h.default, + r.color = l.Color, + r.number = Number, + r.boolean = Boolean, + r.default = _, + r) + , p = ((s = {})[Number] = o.default.PARAM_FLOAT, + s[l.Vec2] = o.default.PARAM_FLOAT2, + s[l.Vec3] = o.default.PARAM_FLOAT3, + s[l.Vec4] = o.default.PARAM_FLOAT4, + s[l.Color] = o.default.PARAM_COLOR3, + s[l.Color] = o.default.PARAM_COLOR4, + s[l.Mat4] = o.default.PARAM_MAT4, + s[h.default] = o.default.PARAM_TEXTURE_2D, + s[u] = o.default.PARAM_TEXTURE_2D, + s); + i.ctor2enums = p; + var m = ((a = {})[o.default.PARAM_INT] = new Uint32Array([0]), + a[o.default.PARAM_INT2] = new Uint32Array([0, 0]), + a[o.default.PARAM_INT3] = new Uint32Array([0, 0, 0]), + a[o.default.PARAM_INT4] = new Uint32Array([0, 0, 0, 0]), + a[o.default.PARAM_FLOAT] = new Float32Array([0]), + a[o.default.PARAM_FLOAT2] = new Float32Array([0, 0]), + a[o.default.PARAM_FLOAT3] = new Float32Array([0, 0, 0]), + a[o.default.PARAM_FLOAT4] = new Float32Array([0, 0, 0, 0]), + a[o.default.PARAM_MAT4] = cc.mat4().m, + a[o.default.PARAM_TEXTURE_2D] = null, + a.number = 0, + a.boolean = !1, + a); + i.enums2default = m; + var y = function(t) { + return d[t] || d.default + }; + i.getInstanceType = y; + var v = function(t) { + return f[y(t)] + }; + i.getInstanceCtor = v; + var g = function(t) { + return cc.js.getClassName(y(t)) + }; + i.getClassName = g; + var A = { + Number: "number", + Boolean: "boolean" + } + } + ), { + "../core/assets/CCTexture2D": 77, + "../core/value-types": 282, + "./enums": 310, + "./gfx/texture-2d": 320 + }], + 339: [(function(t) { + "use strict"; + var e = t("../compression/ZipUtils") + , i = t("../compression/zlib.min") + , n = t("../core/platform/js"); + function r(t) { + if (t.length % 4 != 0) + return null; + for (var e = t.length / 4, i = window.Uint32Array ? new Uint32Array(e) : [], n = 0; n < e; n++) { + var r = 4 * n; + i[n] = t[r] + 256 * t[r + 1] + 65536 * t[r + 2] + t[r + 3] * (1 << 24) + } + return i + } + function s(t) { + var e = cc.Label.HorizontalAlign; + switch (t) { + case "center": + return e.CENTER; + case "right": + return e.RIGHT; + default: + return e.LEFT + } + } + function a(t) { + var e = cc.Label.VerticalAlign; + switch (t) { + case "center": + return e.CENTER; + case "bottom": + return e.BOTTOM; + default: + return e.TOP + } + } + function o(t) { + if (!t) + return cc.color(0, 0, 0, 255); + if (8 === (t = -1 !== t.indexOf("#") ? t.substring(1) : t).length) { + var e = parseInt(t.substr(0, 2), 16) || 255 + , i = parseInt(t.substr(2, 2), 16) || 0 + , n = parseInt(t.substr(4, 2), 16) || 0 + , r = parseInt(t.substr(6, 2), 16) || 0; + return cc.color(i, n, r, e) + } + var s = parseInt(t.substr(0, 2), 16) || 0 + , a = parseInt(t.substr(2, 2), 16) || 0 + , o = parseInt(t.substr(4, 2), 16) || 0; + return cc.color(s, a, o, 255) + } + function l(t, e) { + for (var i = [], n = t.getElementsByTagName("properties"), r = 0; r < n.length; ++r) + for (var s = n[r].getElementsByTagName("property"), a = 0; a < s.length; ++a) + i.push(s[a]); + e = e || {}; + for (var l = 0; l < i.length; l++) { + var h = i[l] + , c = h.getAttribute("name") + , u = h.getAttribute("type") || "string" + , _ = h.getAttribute("value"); + "int" === u ? _ = parseInt(_) : "float" === u ? _ = parseFloat(_) : "bool" === u ? _ = "true" === _ : "color" === u && (_ = o(_)), + e[c] = _ + } + return e + } + t("../core/platform/CCSAXParser"), + cc.TMXLayerInfo = function() { + this.properties = {}, + this.name = "", + this._layerSize = null, + this._tiles = [], + this.visible = !0, + this._opacity = 0, + this.ownTiles = !0, + this._minGID = 1e5, + this._maxGID = 0, + this.offset = cc.v2(0, 0) + } + , + cc.TMXLayerInfo.prototype = { + constructor: cc.TMXLayerInfo, + getProperties: function() { + return this.properties + }, + setProperties: function(t) { + this.properties = t + } + }, + cc.TMXImageLayerInfo = function() { + this.name = "", + this.visible = !0, + this.width = 0, + this.height = 0, + this.offset = cc.v2(0, 0), + this._opacity = 0, + this._trans = new cc.Color(255,255,255,255), + this.sourceImage = null + } + , + cc.TMXObjectGroupInfo = function() { + this.properties = {}, + this.name = "", + this._objects = [], + this.visible = !0, + this._opacity = 0, + this._color = new cc.Color(255,255,255,255), + this.offset = cc.v2(0, 0), + this._draworder = "topdown" + } + , + cc.TMXObjectGroupInfo.prototype = { + constructor: cc.TMXObjectGroupInfo, + getProperties: function() { + return this.properties + }, + setProperties: function(t) { + this.properties = t + } + }, + cc.TMXTilesetInfo = function() { + this.name = "", + this.firstGid = 0, + this.spacing = 0, + this.margin = 0, + this.sourceImage = null, + this.imageSize = cc.size(0, 0), + this.tileOffset = cc.v2(0, 0), + this._tileSize = cc.size(0, 0) + } + , + cc.TMXTilesetInfo.prototype = { + constructor: cc.TMXTilesetInfo, + rectForGID: function(t, e) { + var i = e || cc.rect(0, 0, 0, 0); + i.width = this._tileSize.width, + i.height = this._tileSize.height, + t &= cc.TiledMap.TileFlag.FLIPPED_MASK, + t -= parseInt(this.firstGid, 10); + var n = parseInt((this.imageSize.width - 2 * this.margin + this.spacing) / (this._tileSize.width + this.spacing), 10); + return i.x = parseInt(t % n * (this._tileSize.width + this.spacing) + this.margin, 10), + i.y = parseInt(parseInt(t / n, 10) * (this._tileSize.height + this.spacing) + this.margin, 10), + i + } + }, + cc.TMXMapInfo = function(t, e, i, n, r) { + this.properties = [], + this.orientation = null, + this.parentElement = null, + this.parentGID = null, + this.layerAttrs = 0, + this.storingCharacters = !1, + this.currentString = null, + this.renderOrder = cc.TiledMap.RenderOrder.RightDown, + this._supportVersion = [1, 2, 0], + this._parser = new cc.SAXParser, + this._objectGroups = [], + this._allChildren = [], + this._mapSize = cc.size(0, 0), + this._tileSize = cc.size(0, 0), + this._layers = [], + this._tilesets = [], + this._imageLayers = [], + this._tileProperties = {}, + this._tileAnimations = {}, + this._tsxMap = null, + this._textures = null, + this._staggerAxis = null, + this._staggerIndex = null, + this._hexSideLength = 0, + this._imageLayerTextures = null, + this.initWithXML(t, e, i, n, r) + } + , + cc.TMXMapInfo.prototype = { + constructor: cc.TMXMapInfo, + getOrientation: function() { + return this.orientation + }, + setOrientation: function(t) { + this.orientation = t + }, + getStaggerAxis: function() { + return this._staggerAxis + }, + setStaggerAxis: function(t) { + this._staggerAxis = t + }, + getStaggerIndex: function() { + return this._staggerIndex + }, + setStaggerIndex: function(t) { + this._staggerIndex = t + }, + getHexSideLength: function() { + return this._hexSideLength + }, + setHexSideLength: function(t) { + this._hexSideLength = t + }, + getMapSize: function() { + return cc.size(this._mapSize.width, this._mapSize.height) + }, + setMapSize: function(t) { + this._mapSize.width = t.width, + this._mapSize.height = t.height + }, + _getMapWidth: function() { + return this._mapSize.width + }, + _setMapWidth: function(t) { + this._mapSize.width = t + }, + _getMapHeight: function() { + return this._mapSize.height + }, + _setMapHeight: function(t) { + this._mapSize.height = t + }, + getTileSize: function() { + return cc.size(this._tileSize.width, this._tileSize.height) + }, + setTileSize: function(t) { + this._tileSize.width = t.width, + this._tileSize.height = t.height + }, + _getTileWidth: function() { + return this._tileSize.width + }, + _setTileWidth: function(t) { + this._tileSize.width = t + }, + _getTileHeight: function() { + return this._tileSize.height + }, + _setTileHeight: function(t) { + this._tileSize.height = t + }, + getLayers: function() { + return this._layers + }, + setLayers: function(t) { + this._allChildren.push(t), + this._layers.push(t) + }, + getImageLayers: function() { + return this._imageLayers + }, + setImageLayers: function(t) { + this._allChildren.push(t), + this._imageLayers.push(t) + }, + getTilesets: function() { + return this._tilesets + }, + setTilesets: function(t) { + this._tilesets.push(t) + }, + getObjectGroups: function() { + return this._objectGroups + }, + setObjectGroups: function(t) { + this._allChildren.push(t), + this._objectGroups.push(t) + }, + getAllChildren: function() { + return this._allChildren + }, + getParentElement: function() { + return this.parentElement + }, + setParentElement: function(t) { + this.parentElement = t + }, + getParentGID: function() { + return this.parentGID + }, + setParentGID: function(t) { + this.parentGID = t + }, + getLayerAttribs: function() { + return this.layerAttrs + }, + setLayerAttribs: function(t) { + this.layerAttrs = t + }, + getStoringCharacters: function() { + return this.storingCharacters + }, + setStoringCharacters: function(t) { + this.storingCharacters = t + }, + getProperties: function() { + return this.properties + }, + setProperties: function(t) { + this.properties = t + }, + initWithXML: function(t, e, i, n, r) { + return this._tilesets.length = 0, + this._layers.length = 0, + this._imageLayers.length = 0, + this._tsxMap = e, + this._textures = i, + this._imageLayerTextures = r, + this._textureSizes = n, + this._objectGroups.length = 0, + this._allChildren.length = 0, + this.properties.length = 0, + this._tileProperties = {}, + this._tileAnimations = {}, + this.currentString = "", + this.storingCharacters = !1, + this.layerAttrs = cc.TMXLayerInfo.ATTRIB_NONE, + this.parentElement = cc.TiledMap.NONE, + this.parseXMLString(t) + }, + parseXMLString: function(t, e) { + var i, n = this._parser._parseXML(t).documentElement, r = n.getAttribute("orientation"), s = n.getAttribute("staggeraxis"), a = n.getAttribute("staggerindex"), o = n.getAttribute("hexsidelength"), h = n.getAttribute("renderorder"), c = n.getAttribute("version") || "1.0.0"; + if ("map" === n.nodeName) { + for (var u = c.split("."), _ = this._supportVersion, f = 0; f < _.length; f++) { + var d = parseInt(u[f]) || 0; + if (_[f] < d) { + cc.logID(7216, c); + break + } + } + "orthogonal" === r ? this.orientation = cc.TiledMap.Orientation.ORTHO : "isometric" === r ? this.orientation = cc.TiledMap.Orientation.ISO : "hexagonal" === r ? this.orientation = cc.TiledMap.Orientation.HEX : null !== r && cc.logID(7217, r), + this.renderOrder = "right-up" === h ? cc.TiledMap.RenderOrder.RightUp : "left-up" === h ? cc.TiledMap.RenderOrder.LeftUp : "left-down" === h ? cc.TiledMap.RenderOrder.LeftDown : cc.TiledMap.RenderOrder.RightDown, + "x" === s ? this.setStaggerAxis(cc.TiledMap.StaggerAxis.STAGGERAXIS_X) : "y" === s && this.setStaggerAxis(cc.TiledMap.StaggerAxis.STAGGERAXIS_Y), + "odd" === a ? this.setStaggerIndex(cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD) : "even" === a && this.setStaggerIndex(cc.TiledMap.StaggerIndex.STAGGERINDEX_EVEN), + o && this.setHexSideLength(parseFloat(o)); + var p = cc.size(0, 0); + p.width = parseFloat(n.getAttribute("width")), + p.height = parseFloat(n.getAttribute("height")), + this.setMapSize(p), + (p = cc.size(0, 0)).width = parseFloat(n.getAttribute("tilewidth")), + p.height = parseFloat(n.getAttribute("tileheight")), + this.setTileSize(p), + this.properties = l(n) + } + var m = n.getElementsByTagName("tileset"); + for ("map" !== n.nodeName && (m = []).push(n), + i = 0; i < m.length; i++) { + var y = m[i] + , v = y.getAttribute("source"); + if (v) { + var g = parseInt(y.getAttribute("firstgid")) + , A = this._tsxMap[v]; + A && this.parseXMLString(A, g) + } else { + var x = y.getElementsByTagName("image") + , b = x.length > 1 + , C = x[0] + , T = C.getAttribute("source"); + T = T.replace(/\\/g, "/"); + var S = y.getElementsByTagName("tile") + , w = S && S.length || 1 + , E = null + , M = y.getAttribute("name") || "" + , D = parseInt(y.getAttribute("spacing")) || 0 + , B = parseInt(y.getAttribute("margin")) || 0 + , I = parseInt(e); + I || (I = parseInt(y.getAttribute("firstgid")) || 0); + var P = cc.size(0, 0); + P.width = parseFloat(y.getAttribute("tilewidth")), + P.height = parseFloat(y.getAttribute("tileheight")); + var R = y.getElementsByTagName("tileoffset")[0] + , O = cc.v2(0, 0); + R && (O.x = parseFloat(R.getAttribute("x")), + O.y = parseFloat(R.getAttribute("y"))); + for (var L = null, F = 0; F < w; F++) + if (L && !b || ((L = new cc.TMXTilesetInfo).name = M, + L.firstGid = I, + L.spacing = D, + L.margin = B, + L._tileSize = P, + L.tileOffset = O, + L.sourceImage = this._textures[T], + L.imageSize = this._textureSizes[T] || L.imageSize, + L.sourceImage || cc.errorID(7221, T), + this.setTilesets(L)), + E = S && S[F]) { + this.parentGID = parseInt(I) + parseInt(E.getAttribute("id") || 0); + var V = E.getElementsByTagName("image"); + if (V && V.length > 0) { + var N = (C = V[0]).getAttribute("source"); + N = N.replace(/\\/g, "/"), + L.sourceImage = this._textures[N], + L.sourceImage || cc.errorID(7221, N); + var k = cc.size(0, 0); + k.width = parseFloat(C.getAttribute("width")), + k.height = parseFloat(C.getAttribute("height")), + L._tileSize = k, + L.firstGid = this.parentGID + } + this._tileProperties[this.parentGID] = l(E); + var G = E.getElementsByTagName("animation"); + if (G && G.length > 0) { + var U = G[0].getElementsByTagName("frame") + , z = { + frames: [], + dt: 0, + frameIdx: 0 + }; + this._tileAnimations[this.parentGID] = z; + for (var H = z.frames, W = 0; W < U.length; W++) { + var j = U[W] + , X = parseInt(I) + parseInt(j.getAttribute("tileid")) + , Y = parseFloat(j.getAttribute("duration")); + H.push({ + tileid: X, + duration: Y / 1e3, + grid: null + }) + } + } + } + } + } + var q = n.childNodes; + for (i = 0; i < q.length; i++) { + var J = q[i]; + if (!this._shouldIgnoreNode(J)) { + if ("imagelayer" === J.nodeName) { + var Z = this._parseImageLayer(J); + Z && this.setImageLayers(Z) + } + if ("layer" === J.nodeName) { + var K = this._parseLayer(J); + this.setLayers(K) + } + if ("objectgroup" === J.nodeName) { + var Q = this._parseObjectGroup(J); + this.setObjectGroups(Q) + } + } + } + return n + }, + _shouldIgnoreNode: function(t) { + return 3 === t.nodeType || 8 === t.nodeType || 4 === t.nodeType + }, + _parseImageLayer: function(t) { + var e = t.getElementsByTagName("image"); + if (!e || 0 == e.length) + return null; + var i = new cc.TMXImageLayerInfo; + i.name = t.getAttribute("name"), + i.offset.x = parseFloat(t.getAttribute("offsetx")) || 0, + i.offset.y = parseFloat(t.getAttribute("offsety")) || 0; + var n = t.getAttribute("visible"); + i.visible = !("0" === n); + var r = t.getAttribute("opacity") || 1; + i.opacity = parseInt(255 * parseFloat(r)) || 255; + var s = e[0] + , a = s.getAttribute("source"); + return i.sourceImage = this._imageLayerTextures[a], + i.width = parseInt(s.getAttribute("width")) || 0, + i.height = parseInt(s.getAttribute("height")) || 0, + i.trans = o(s.getAttribute("trans")), + i.sourceImage ? i : (cc.errorID(7221, a), + null) + }, + _parseLayer: function(t) { + var n = t.getElementsByTagName("data")[0] + , s = new cc.TMXLayerInfo; + s.name = t.getAttribute("name"); + var a = cc.size(0, 0); + a.width = parseFloat(t.getAttribute("width")), + a.height = parseFloat(t.getAttribute("height")), + s._layerSize = a; + var o = t.getAttribute("visible"); + s.visible = !("0" === o); + var h = t.getAttribute("opacity") || 1; + s._opacity = h ? parseInt(255 * parseFloat(h)) : 255, + s.offset = cc.v2(parseFloat(t.getAttribute("offsetx")) || 0, parseFloat(t.getAttribute("offsety")) || 0); + for (var c = "", u = 0; u < n.childNodes.length; u++) + c += n.childNodes[u].nodeValue; + c = c.trim(); + var _, f = n.getAttribute("compression"), d = n.getAttribute("encoding"); + if (f && "gzip" !== f && "zlib" !== f) + return cc.logID(7218), + null; + switch (f) { + case "gzip": + _ = e.unzipBase64AsArray(c, 4); + break; + case "zlib": + _ = r(new i.Inflate(e.Base64.decodeAsArray(c, 1)).decompress()); + break; + case null: + case "": + if ("base64" === d) + _ = e.Base64.decodeAsArray(c, 4); + else if ("csv" === d) { + _ = []; + for (var p = c.split(","), m = 0; m < p.length; m++) + _.push(parseInt(p[m])) + } else { + var y = n.getElementsByTagName("tile"); + _ = []; + for (var v = 0; v < y.length; v++) + _.push(parseInt(y[v].getAttribute("gid"))) + } + break; + default: + this.layerAttrs === cc.TMXLayerInfo.ATTRIB_NONE && cc.logID(7219) + } + return _ && (s._tiles = new Uint32Array(_)), + s.properties = l(t), + s + }, + _parseObjectGroup: function(t) { + var e = new cc.TMXObjectGroupInfo; + e.name = t.getAttribute("name") || "", + e.offset = cc.v2(parseFloat(t.getAttribute("offsetx")), parseFloat(t.getAttribute("offsety"))); + var i = t.getAttribute("opacity") || 1; + e._opacity = i ? parseInt(255 * parseFloat(i)) : 255; + var n = t.getAttribute("visible"); + n && 0 === parseInt(n) && (e.visible = !1); + var r = t.getAttribute("color"); + r && e._color.fromHEX(r); + var h = t.getAttribute("draworder"); + h && (e._draworder = h), + e.setProperties(l(t)); + var c = t.getElementsByTagName("object"); + if (c) { + for (var u = 0; u < c.length; u++) { + var _ = c[u] + , f = {}; + f.id = _.getAttribute("id") || u, + f.name = _.getAttribute("name") || "", + f.width = parseFloat(_.getAttribute("width")) || 0, + f.height = parseFloat(_.getAttribute("height")) || 0, + f.x = parseFloat(_.getAttribute("x")) || 0, + f.y = parseFloat(_.getAttribute("y")) || 0, + f.rotation = parseFloat(_.getAttribute("rotation")) || 0, + l(_, f); + var d = _.getAttribute("visible"); + f.visible = !(d && 0 === parseInt(d)); + var p = _.getElementsByTagName("text"); + if (p && p.length > 0) { + var m = p[0]; + f.type = cc.TiledMap.TMXObjectType.TEXT, + f.wrap = "1" == m.getAttribute("wrap"), + f.color = o(m.getAttribute("color")), + f.halign = s(m.getAttribute("halign")), + f.valign = a(m.getAttribute("valign")), + f.pixelsize = parseInt(m.getAttribute("pixelsize")) || 16, + f.text = m.childNodes[0].nodeValue + } + var y = _.getAttribute("gid"); + y && (f.gid = parseInt(y), + f.type = cc.TiledMap.TMXObjectType.IMAGE); + var v = _.getElementsByTagName("ellipse"); + v && v.length > 0 && (f.type = cc.TiledMap.TMXObjectType.ELLIPSE); + var g = _.getElementsByTagName("polygon"); + if (g && g.length > 0) { + f.type = cc.TiledMap.TMXObjectType.POLYGON; + var A = g[0].getAttribute("points"); + A && (f.points = this._parsePointsString(A)) + } + var x = _.getElementsByTagName("polyline"); + if (x && x.length > 0) { + f.type = cc.TiledMap.TMXObjectType.POLYLINE; + var b = x[0].getAttribute("points"); + b && (f.polylinePoints = this._parsePointsString(b)) + } + f.type || (f.type = cc.TiledMap.TMXObjectType.RECT), + e._objects.push(f) + } + "index" !== h && e._objects.sort((function(t, e) { + return t.y - e.y + } + )) + } + return e + }, + _parsePointsString: function(t) { + if (!t) + return null; + for (var e = [], i = t.split(" "), n = 0; n < i.length; n++) { + var r = i[n].split(","); + e.push({ + x: parseFloat(r[0]), + y: parseFloat(r[1]) + }) + } + return e + }, + setTileAnimations: function(t) { + this._tileAnimations = t + }, + getTileAnimations: function() { + return this._tileAnimations + }, + getTileProperties: function() { + return this._tileProperties + }, + setTileProperties: function(t) { + this._tileProperties = t + }, + getCurrentString: function() { + return this.currentString + }, + setCurrentString: function(t) { + this.currentString = t + } + }; + var h = cc.TMXMapInfo.prototype; + n.getset(h, "mapWidth", h._getMapWidth, h._setMapWidth), + n.getset(h, "mapHeight", h._getMapHeight, h._setMapHeight), + n.getset(h, "tileWidth", h._getTileWidth, h._setTileWidth), + n.getset(h, "tileHeight", h._getTileHeight, h._setTileHeight), + cc.TMXLayerInfo.ATTRIB_NONE = 1, + cc.TMXLayerInfo.ATTRIB_BASE64 = 2, + cc.TMXLayerInfo.ATTRIB_GZIP = 4, + cc.TMXLayerInfo.ATTRIB_ZLIB = 8 + } + ), { + "../compression/ZipUtils": 22, + "../compression/zlib.min": 25, + "../core/platform/CCSAXParser": 200, + "../core/platform/js": 214 + }], + 340: [(function(t, e) { + "use strict"; + var i, n = t("../core/value-types"), r = (i = t("../core/assets/material/material-variant")) && i.__esModule ? i : { + default: i + }, s = t("../core/components/CCRenderComponent"), a = t("../core/assets/material/CCMaterial"), o = t("../core/renderer/render-flow"), l = cc.mat4(), h = cc.v2(), c = cc.v2(), u = cc.v2(), _ = { + row: 0, + col: 0 + }, f = cc.Class({ + name: "cc.TiledUserNodeData", + extends: cc.Component, + ctor: function() { + this._index = -1, + this._row = -1, + this._col = -1, + this._tiledLayer = null + } + }), d = cc.Class({ + name: "cc.TiledLayer", + extends: s, + editor: { + inspector: "packages://inspector/inspectors/comps/tiled-layer.js" + }, + ctor: function() { + this._userNodeGrid = {}, + this._userNodeMap = {}, + this._userNodeDirty = !1, + this._tiledTiles = [], + this._tilesetIndexArr = [], + this._tilesetIndexToArrIndex = {}, + this._texIdToMatIndex = {}, + this._viewPort = { + x: -1, + y: -1, + width: -1, + height: -1 + }, + this._cullingRect = { + leftDown: { + row: -1, + col: -1 + }, + rightTop: { + row: -1, + col: -1 + } + }, + this._cullingDirty = !0, + this._rightTop = { + row: -1, + col: -1 + }, + this._layerInfo = null, + this._mapInfo = null, + this._topOffset = 0, + this._downOffset = 0, + this._leftOffset = 0, + this._rightOffset = 0, + this._tiles = [], + this._vertices = [], + this._verticesDirty = !0, + this._layerName = "", + this._layerOrientation = null, + this._texGrids = null, + this._textures = null, + this._tilesets = null, + this._leftDownToCenterX = 0, + this._leftDownToCenterY = 0, + this._hasTiledNodeGrid = !1, + this._hasAniGrid = !1, + this._animations = null, + this._enableCulling = cc.macro.ENABLE_TILEDMAP_CULLING + }, + _hasTiledNode: function() { + return this._hasTiledNodeGrid + }, + _hasAnimation: function() { + return this._hasAniGrid + }, + enableCulling: function(t) { + this._enableCulling != t && (this._enableCulling = t, + this._cullingDirty = !0) + }, + addUserNode: function(t) { + var e = t.getComponent(f); + return e ? (cc.warn("CCTiledLayer:addUserNode node has been added"), + !1) : (e = t.addComponent(f), + t.parent = this.node, + t._renderFlag |= o.FLAG_BREAK_FLOW, + this._userNodeMap[t._id] = e, + e._row = -1, + e._col = -1, + e._tiledLayer = this, + this._nodeLocalPosToLayerPos(t, h), + this._positionToRowCol(h.x, h.y, _), + this._addUserNodeToGrid(e, _), + this._updateCullingOffsetByUserNode(t), + t.on(cc.Node.EventType.POSITION_CHANGED, this._userNodePosChange, e), + t.on(cc.Node.EventType.SIZE_CHANGED, this._userNodeSizeChange, e), + !0) + }, + removeUserNode: function(t) { + var e = t.getComponent(f); + return e ? (t.off(cc.Node.EventType.POSITION_CHANGED, this._userNodePosChange, e), + t.off(cc.Node.EventType.SIZE_CHANGED, this._userNodeSizeChange, e), + this._removeUserNodeFromGrid(e), + delete this._userNodeMap[t._id], + t._removeComponent(e), + e.destroy(), + t.removeFromParent(!0), + t._renderFlag &= ~o.FLAG_BREAK_FLOW, + !0) : (cc.warn("CCTiledLayer:removeUserNode node is not exist"), + !1) + }, + destroyUserNode: function(t) { + this.removeUserNode(t), + t.destroy() + }, + _nodeLocalPosToLayerPos: function(t, e) { + e.x = t.x + this._leftDownToCenterX, + e.y = t.y + this._leftDownToCenterY + }, + _getNodesByRowCol: function(t, e) { + var i = this._userNodeGrid[t]; + return i ? i[e] : null + }, + _getNodesCountByRow: function(t) { + var e = this._userNodeGrid[t]; + return e ? e.count : 0 + }, + _updateAllUserNode: function() { + for (var t in this._userNodeGrid = {}, + this._userNodeMap) { + var e = this._userNodeMap[t]; + this._nodeLocalPosToLayerPos(e.node, h), + this._positionToRowCol(h.x, h.y, _), + this._addUserNodeToGrid(e, _), + this._updateCullingOffsetByUserNode(e.node) + } + }, + _updateCullingOffsetByUserNode: function(t) { + this._topOffset < t.height && (this._topOffset = t.height), + this._downOffset < t.height && (this._downOffset = t.height), + this._leftOffset < t.width && (this._leftOffset = t.width), + this._rightOffset < t.width && (this._rightOffset = t.width) + }, + _userNodeSizeChange: function() { + var t = this.node; + this._tiledLayer._updateCullingOffsetByUserNode(t) + }, + _userNodePosChange: function() { + var t = this.node + , e = this._tiledLayer; + e._nodeLocalPosToLayerPos(t, h), + e._positionToRowCol(h.x, h.y, _), + e._limitInLayer(_), + _.row === this._row && _.col === this._col || (e._removeUserNodeFromGrid(this), + e._addUserNodeToGrid(this, _)) + }, + _removeUserNodeFromGrid: function(t) { + var e = t._row + , i = t._col + , n = t._index + , r = this._userNodeGrid[e] + , s = r && r[i]; + s && (r.count--, + s.count--, + s.list[n] = null, + s.count <= 0 && (s.list.length = 0, + s.count = 0)), + t._row = -1, + t._col = -1, + t._index = -1, + this._userNodeDirty = !0 + }, + _limitInLayer: function(t) { + var e = t.row + , i = t.col; + e < 0 && (t.row = 0), + e > this._rightTop.row && (t.row = this._rightTop.row), + i < 0 && (t.col = 0), + i > this._rightTop.col && (t.col = this._rightTop.col) + }, + _addUserNodeToGrid: function(t, e) { + var i = e.row + , n = e.col + , r = this._userNodeGrid[i] = this._userNodeGrid[i] || { + count: 0 + } + , s = r[n] = r[n] || { + count: 0, + list: [] + }; + t._row = i, + t._col = n, + t._index = s.list.length, + r.count++, + s.count++, + s.list.push(t), + this._userNodeDirty = !0 + }, + _isUserNodeDirty: function() { + return this._userNodeDirty + }, + _setUserNodeDirty: function(t) { + this._userNodeDirty = t + }, + onEnable: function() { + this._super(), + this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this._syncAnchorPoint, this), + this._activateMaterial() + }, + onDisable: function() { + this._super(), + this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this._syncAnchorPoint, this) + }, + _syncAnchorPoint: function() { + var t = this.node; + this._leftDownToCenterX = t.width * t.anchorX * t.scaleX, + this._leftDownToCenterY = t.height * t.anchorY * t.scaleY, + this._cullingDirty = !0 + }, + onDestroy: function() { + this._super(), + this._buffer && (this._buffer.destroy(), + this._buffer = null), + this._renderDataList = null + }, + getLayerName: function() { + return this._layerName + }, + setLayerName: function(t) { + this._layerName = t + }, + getProperty: function(t) { + return this._properties[t] + }, + getPositionAt: function(t, e) { + var i, n; + switch (void 0 !== e ? (i = Math.floor(t), + e = Math.floor(e)) : (i = Math.floor(t.x), + e = Math.floor(t.y)), + this._layerOrientation) { + case cc.TiledMap.Orientation.ORTHO: + n = this._positionForOrthoAt(i, e); + break; + case cc.TiledMap.Orientation.ISO: + n = this._positionForIsoAt(i, e); + break; + case cc.TiledMap.Orientation.HEX: + n = this._positionForHexAt(i, e) + } + return n + }, + _isInvalidPosition: function(t, e) { + if (t && "object" == typeof t) { + var i = t; + e = i.y, + t = i.x + } + return t >= this._layerSize.width || e >= this._layerSize.height || t < 0 || e < 0 + }, + _positionForIsoAt: function(t, e) { + var i = 0 + , n = 0 + , r = Math.floor(t) + Math.floor(e) * this._layerSize.width + , s = this._tiles[r]; + if (s) { + var a = (s & cc.TiledMap.TileFlag.FLIPPED_MASK) >>> 0 + , o = this._texGrids[a].tileset.tileOffset; + i = o.x, + n = o.y + } + return cc.v2(.5 * this._mapTileSize.width * (this._layerSize.height + t - e - 1) + i, .5 * this._mapTileSize.height * (this._layerSize.width - t + this._layerSize.height - e - 2) - n) + }, + _positionForOrthoAt: function(t, e) { + var i = 0 + , n = 0 + , r = Math.floor(t) + Math.floor(e) * this._layerSize.width + , s = this._tiles[r]; + if (s) { + var a = (s & cc.TiledMap.TileFlag.FLIPPED_MASK) >>> 0 + , o = this._texGrids[a].tileset.tileOffset; + i = o.x, + n = o.y + } + return cc.v2(t * this._mapTileSize.width + i, (this._layerSize.height - e - 1) * this._mapTileSize.height - n) + }, + _positionForHexAt: function(t, e) { + var i, n = this._mapTileSize.width, r = this._mapTileSize.height, s = this._layerSize.height, a = Math.floor(t) + Math.floor(e) * this._layerSize.width, o = this._tiles[a]; + i = this._texGrids[o] ? this._texGrids[o].tileset.tileOffset : { + x: 0, + y: 0 + }; + var l = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD ? 1 : -1 + , h = 0 + , c = 0 + , u = 0 + , _ = 0; + switch (this._staggerAxis) { + case cc.TiledMap.StaggerAxis.STAGGERAXIS_Y: + u = 0, + e % 2 == 1 && (u = n / 2 * l), + h = t * n + u + i.x, + c = (s - e - 1) * (r - (r - this._hexSideLength) / 2) - i.y; + break; + case cc.TiledMap.StaggerAxis.STAGGERAXIS_X: + _ = 0, + t % 2 == 1 && (_ = r / 2 * -l), + h = t * (n - (n - this._hexSideLength) / 2) + i.x, + c = (s - e - 1) * r + _ - i.y + } + return cc.v2(h, c) + }, + setTilesGIDAt: function(t, e, i, n) { + if (t && 0 !== t.length && !(n <= 0)) { + i < 0 && (i = 0), + e < 0 && (e = 0); + for (var r = 0, s = e + n, a = i; ; a++) + for (var o = e; o < s; o++) { + if (r >= t.length) + return; + this._updateTileForGID(t[r], o, a), + r++ + } + } + }, + setTileGIDAt: function(t, e, i, n) { + if (void 0 === e) + throw new Error("cc.TiledLayer.setTileGIDAt(): pos should be non-null"); + var r; + void 0 === n && e instanceof cc.Vec2 ? (r = e, + n = i) : (u.x = e, + u.y = i, + r = u); + var s = t & cc.TiledMap.TileFlag.FLIPPED_MASK; + if (r.x = Math.floor(r.x), + r.y = Math.floor(r.y), + this._isInvalidPosition(r)) + throw new Error("cc.TiledLayer.setTileGIDAt(): invalid position"); + this._tiles && this._tilesets && 0 != this._tilesets.length ? 0 !== s && s < this._tilesets[0].firstGid ? cc.logID(7239, t) : (n = n || 0, + this._updateTileForGID((t | n) >>> 0, r.x, r.y)) : cc.logID(7238) + }, + _updateTileForGID: function(t, e, i) { + var n = 0 | e + i * this._layerSize.width; + if (!(n >= this._tiles.length) && t !== this._tiles[n]) { + var r = (t & cc.TiledMap.TileFlag.FLIPPED_MASK) >>> 0 + , s = this._texGrids[r] + , a = s && s.texId; + s ? (this._tiles[n] = t, + this._updateVertex(e, i), + this._buildMaterial(a)) : this._tiles[n] = 0, + this._cullingDirty = !0 + } + }, + getTiles: function() { + return this._tiles + }, + getTileGIDAt: function(t, e) { + if (void 0 === t) + throw new Error("cc.TiledLayer.getTileGIDAt(): pos should be non-null"); + var i = t; + if (void 0 === e && (i = t.x, + e = t.y), + this._isInvalidPosition(i, e)) + throw new Error("cc.TiledLayer.getTileGIDAt(): invalid position"); + if (!this._tiles) + return cc.logID(7237), + null; + var n = Math.floor(i) + Math.floor(e) * this._layerSize.width; + return (this._tiles[n] & cc.TiledMap.TileFlag.FLIPPED_MASK) >>> 0 + }, + getTileFlagsAt: function(t, e) { + if (!t) + throw new Error("TiledLayer.getTileFlagsAt: pos should be non-null"); + if (void 0 !== e && (t = cc.v2(t, e)), + this._isInvalidPosition(t)) + throw new Error("TiledLayer.getTileFlagsAt: invalid position"); + if (!this._tiles) + return cc.logID(7240), + null; + var i = Math.floor(t.x) + Math.floor(t.y) * this._layerSize.width; + return (this._tiles[i] & cc.TiledMap.TileFlag.FLIPPED_ALL) >>> 0 + }, + _setCullingDirty: function(t) { + this._cullingDirty = t + }, + _isCullingDirty: function() { + return this._cullingDirty + }, + _updateViewPort: function(t, e, i, n) { + if (this._viewPort.width !== i || this._viewPort.height !== n || this._viewPort.x !== t || this._viewPort.y !== e) { + this._viewPort.x = t, + this._viewPort.y = e, + this._viewPort.width = i, + this._viewPort.height = n; + var r = 1; + this._layerOrientation === cc.TiledMap.Orientation.ISO && (r = 2); + var s = this._viewPort.x - this._offset.x + this._leftDownToCenterX + , a = this._viewPort.y - this._offset.y + this._leftDownToCenterY + , o = s - this._leftOffset + , l = a - this._downOffset + , h = s + i + this._rightOffset + , c = a + n + this._topOffset + , u = this._cullingRect.leftDown + , f = this._cullingRect.rightTop; + o < 0 && (o = 0), + l < 0 && (l = 0), + this._positionToRowCol(o, l, _), + _.row -= r, + _.col -= r, + _.row = _.row > 0 ? _.row : 0, + _.col = _.col > 0 ? _.col : 0, + _.row === u.row && _.col === u.col || (u.row = _.row, + u.col = _.col, + this._cullingDirty = !0), + h < 0 || c < 0 ? (_.row = -1, + _.col = -1) : (this._positionToRowCol(h, c, _), + _.row++, + _.col++), + _.row > this._rightTop.row && (_.row = this._rightTop.row), + _.col > this._rightTop.col && (_.col = this._rightTop.col), + _.row === f.row && _.col === f.col || (f.row = _.row, + f.col = _.col, + this._cullingDirty = !0) + } + }, + _positionToRowCol: function(t, e, i) { + var n = cc.TiledMap + , r = n.Orientation + , s = n.StaggerAxis + , a = this._mapTileSize.width + , o = this._mapTileSize.height + , l = .5 * a + , h = .5 * o + , c = 0 + , u = 0 + , _ = 0 + , f = 0 + , d = this._staggerAxis; + switch (this._layerSize.width, + this._layerOrientation) { + case r.ORTHO: + u = Math.floor(t / a), + c = Math.floor(e / o); + break; + case r.ISO: + u = Math.floor(t / l), + c = Math.floor(e / h); + break; + case r.HEX: + d === s.STAGGERAXIS_Y ? (_ = (c = Math.floor(e / (o - this._diffY1))) % 2 == 1 ? l * this._odd_even : 0, + u = Math.floor((t - _) / a)) : (f = (u = Math.floor(t / (a - this._diffX1))) % 2 == 1 ? h * -this._odd_even : 0, + c = Math.floor((e - f) / o)) + } + return i.row = c, + i.col = u, + i + }, + _updateCulling: function() { + if (this._enableCulling) { + this.node._updateWorldMatrix(), + n.Mat4.invert(l, this.node._worldMatrix); + var t = cc.visibleRect + , e = cc.Camera.findCamera(this.node); + e && (h.x = 0, + h.y = 0, + c.x = h.x + t.width, + c.y = h.y + t.height, + e.getScreenToWorldPoint(h, h), + e.getScreenToWorldPoint(c, c), + n.Vec2.transformMat4(h, h, l), + n.Vec2.transformMat4(c, c, l), + this._updateViewPort(h.x, h.y, c.x - h.x, c.y - h.y)) + } + }, + getLayerOrientation: function() { + return this._layerOrientation + }, + getProperties: function() { + return this._properties + }, + _updateVertex: function(t, e) { + var i = cc.TiledMap + , n = i.TileFlag.FLIPPED_MASK + , r = i.StaggerAxis + , s = i.Orientation + , a = this._vertices + , o = this._layerOrientation + , l = this._tiles; + if (l) { + var h, c, u, _, f, d, p, m = this._rightTop, y = this._mapTileSize.width, v = this._mapTileSize.height, g = .5 * y, A = .5 * v, x = this._layerSize.height, b = this._layerSize.width, C = this._texGrids; + o === s.HEX && (_ = this._staggerAxis, + f = this._diffX1, + d = this._diffY1, + p = this._odd_even); + var T, S, w, E, M = 0, D = 0, B = 0, I = 0, P = e * b + t; + if (h = C[S = (l[P] & n) >>> 0]) { + switch (this._animations[S] && (this._hasAniGrid = this._hasAniGrid || !0), + o) { + case s.ORTHO: + c = (M = t) * y, + u = (D = x - e - 1) * v; + break; + case s.ISO: + c = g * (M = x + t - e - 1), + u = A * (D = x + b - t - e - 2); + break; + case s.HEX: + c = t * (y - f) + (_ === r.STAGGERAXIS_Y && e % 2 == 1 ? g * p : 0), + u = (x - e - 1) * (v - d) + (_ === r.STAGGERAXIS_X && t % 2 == 1 ? A * -p : 0), + M = t, + D = x - e - 1 + } + var R = a[D] = a[D] || { + minCol: 0, + maxCol: 0 + } + , O = R[M] = R[M] || {}; + R.minCol > M && (R.minCol = M), + R.maxCol < M && (R.maxCol = M), + m.row < D && (m.row = D), + m.col < M && (m.col = M), + T = h.tileset.tileOffset, + c += this._offset.x + T.x, + u += this._offset.y - T.y, + B = (B = -T.y + h.tileset._tileSize.height - v) < 0 ? 0 : B, + w = T.y < 0 ? 0 : T.y, + E = -T.x < 0 ? 0 : -T.x, + I = (I = T.x + h.tileset._tileSize.width - y) < 0 ? 0 : I, + this._rightOffset < E && (this._rightOffset = E), + this._leftOffset < I && (this._leftOffset = I), + this._topOffset < w && (this._topOffset = w), + this._downOffset < B && (this._downOffset = B), + O.left = c, + O.bottom = u, + O.index = P, + this._cullingDirty = !0 + } + } + }, + _updateVertices: function() { + if (this._vertices.length = 0, + this._tiles) { + var t = this._rightTop; + t.row = -1, + t.col = -1; + var e = this._layerSize.height + , i = this._layerSize.width; + this._topOffset = 0, + this._downOffset = 0, + this._leftOffset = 0, + this._rightOffset = 0, + this._hasAniGrid = !1; + for (var n = 0; n < e; ++n) + for (var r = 0; r < i; ++r) + this._updateVertex(r, n); + this._verticesDirty = !1 + } + }, + getTiledTileAt: function(t, e, i) { + if (this._isInvalidPosition(t, e)) + throw new Error("TiledLayer.getTiledTileAt: invalid position"); + if (!this._tiles) + return cc.logID(7236), + null; + var n = Math.floor(t) + Math.floor(e) * this._layerSize.width + , r = this._tiledTiles[n]; + if (!r && i) { + var s = new cc.Node; + return (r = s.addComponent(cc.TiledTile))._x = t, + r._y = e, + r._layer = this, + r._updateInfo(), + s.parent = this.node, + r + } + return r + }, + setTiledTileAt: function(t, e, i) { + if (this._isInvalidPosition(t, e)) + throw new Error("TiledLayer.setTiledTileAt: invalid position"); + if (!this._tiles) + return cc.logID(7236), + null; + var n = Math.floor(t) + Math.floor(e) * this._layerSize.width; + return this._tiledTiles[n] = i, + this._cullingDirty = !0, + this._hasTiledNodeGrid = !!i || this._tiledTiles.some((function(t) { + return !!t + } + )), + i + }, + getTexture: function(t) { + return t = t || 0, + this._textures && t >= 0 && this._textures.length > t ? this._textures[t] : null + }, + getTextures: function() { + return this._textures + }, + setTexture: function(t) { + this.setTextures([t]) + }, + setTextures: function(t) { + this._textures = t, + this._activateMaterial() + }, + getLayerSize: function() { + return this._layerSize + }, + getMapTileSize: function() { + return this._mapTileSize + }, + getTileSet: function(t) { + return t = t || 0, + this._tilesets && t >= 0 && this._tilesets.length > t ? this._tilesets[t] : null + }, + getTileSets: function() { + return this._tilesets + }, + setTileSet: function(t) { + this.setTileSets([t]) + }, + setTileSets: function(t) { + this._tilesets = t; + for (var e = this._textures = [], i = this._texGrids = [], n = 0; n < t.length; n++) { + var r = t[n]; + r && (e[n] = r.sourceImage) + } + cc.TiledMap.loadAllTextures(e, function() { + for (var e = 0, n = t.length; e < n; ++e) { + var r = t[e]; + r && cc.TiledMap.fillTextureGrids(r, i, e) + } + this._prepareToRender() + } + .bind(this)) + }, + _traverseAllGrid: function() { + var t = this._tiles + , e = this._texGrids + , i = this._tilesetIndexArr + , n = this._tilesetIndexToArrIndex = {} + , r = cc.TiledMap.TileFlag.FLIPPED_MASK; + i.length = 0; + for (var s = 0; s < t.length; s++) { + var a = t[s]; + if (0 !== a) { + var o = e[a = (a & r) >>> 0]; + if (o) { + var l = o.texId; + void 0 === n[l] && (n[l] = i.length, + i.push(l)) + } else + cc.error("CCTiledLayer:_traverseAllGrid grid is null, gid is:", a) + } + } + }, + _init: function(t, e, i, n, r) { + this._cullingDirty = !0, + this._layerInfo = t, + this._mapInfo = e; + var s = t._layerSize; + this._layerName = t.name, + this._tiles = t._tiles, + this._properties = t.properties, + this._layerSize = s, + this._minGID = t._minGID, + this._maxGID = t._maxGID, + this._opacity = t._opacity, + this._renderOrder = e.renderOrder, + this._staggerAxis = e.getStaggerAxis(), + this._staggerIndex = e.getStaggerIndex(), + this._hexSideLength = e.getHexSideLength(), + this._animations = e.getTileAnimations(), + this._tilesets = i, + this._textures = n, + this._texGrids = r, + this._layerOrientation = e.orientation, + this._mapTileSize = e.getTileSize(); + var a = this._mapTileSize.width + , o = this._mapTileSize.height + , l = this._layerSize.width + , h = this._layerSize.height; + if (this._layerOrientation === cc.TiledMap.Orientation.HEX) { + var c = cc.TiledMap + , u = c.StaggerAxis + , _ = c.StaggerIndex + , f = 0 + , d = 0; + this._odd_even = this._staggerIndex === _.STAGGERINDEX_ODD ? 1 : -1, + this._staggerAxis === u.STAGGERAXIS_X ? (this._diffX1 = (a - this._hexSideLength) / 2, + this._diffY1 = 0, + d = o * (h + .5), + f = (a + this._hexSideLength) * Math.floor(l / 2) + a * (l % 2)) : (this._diffX1 = 0, + this._diffY1 = (o - this._hexSideLength) / 2, + f = a * (l + .5), + d = (o + this._hexSideLength) * Math.floor(h / 2) + o * (h % 2)), + this.node.setContentSize(f, d) + } else if (this._layerOrientation === cc.TiledMap.Orientation.ISO) { + var p = l + h; + this.node.setContentSize(.5 * a * p, .5 * o * p) + } else + this.node.setContentSize(l * a, h * o); + this._offset = cc.v2(t.offset.x, -t.offset.y), + this._useAutomaticVertexZ = !1, + this._vertexZvalue = 0, + this._syncAnchorPoint(), + this._prepareToRender() + }, + _prepareToRender: function() { + this._updateVertices(), + this._traverseAllGrid(), + this._updateAllUserNode(), + this._activateMaterial() + }, + _buildMaterial: function(t) { + var e = this._texIdToMatIndex; + if (void 0 !== e[t]) + return null; + var i = this._tilesetIndexArr + , n = this._tilesetIndexToArrIndex + , s = n[t]; + void 0 === s && (n[t] = s = i.length, + i.push(t)); + var o = this._textures[t] + , l = this._materials[s]; + return l || (l = a.getBuiltinMaterial("2d-sprite")), + (l = r.default.create(l, this)).define("CC_USE_MODEL", !0), + l.setProperty("texture", o), + this._materials[s] = l, + e[t] = s, + l + }, + _activateMaterial: function() { + var t = this._tilesetIndexArr; + if (0 !== t.length) { + for (var e = t.length, i = 0; i < e; i++) + this._buildMaterial(t[i]); + this._materials.length = e, + this.markForRender(!0) + } else + this.disableRender() + } + }); + cc.TiledLayer = e.exports = d + } + ), { + "../core/assets/material/CCMaterial": 80, + "../core/assets/material/material-variant": 87, + "../core/components/CCRenderComponent": 115, + "../core/renderer/render-flow": 225, + "../core/value-types": 282 + }], + 341: [(function(t, e) { + "use strict"; + t("./CCTMXXMLParser"), + t("./CCTiledMapAsset"), + t("./CCTiledLayer"), + t("./CCTiledTile"), + t("./CCTiledObjectGroup"); + var i = cc.Enum({ + ORTHO: 0, + HEX: 1, + ISO: 2 + }) + , n = cc.Enum({ + NONE: 0, + MAP: 1, + LAYER: 2, + OBJECTGROUP: 3, + OBJECT: 4, + TILE: 5 + }) + , r = cc.Enum({ + HORIZONTAL: 2147483648, + VERTICAL: 1073741824, + DIAGONAL: 536870912, + FLIPPED_ALL: 4026531840, + FLIPPED_MASK: 268435455 + }) + , s = cc.Enum({ + STAGGERAXIS_X: 0, + STAGGERAXIS_Y: 1 + }) + , a = cc.Enum({ + STAGGERINDEX_ODD: 0, + STAGGERINDEX_EVEN: 1 + }) + , o = cc.Enum({ + RightDown: 0, + RightUp: 1, + LeftDown: 2, + LeftUp: 3 + }) + , l = cc.Enum({ + RECT: 0, + ELLIPSE: 1, + POLYGON: 2, + POLYLINE: 3, + IMAGE: 4, + TEXT: 5 + }) + , h = cc.Class({ + name: "cc.TiledMap", + extends: cc.Component, + editor: !1, + ctor: function() { + this._texGrids = [], + this._textures = [], + this._tilesets = [], + this._animations = [], + this._imageLayers = [], + this._layers = [], + this._groups = [], + this._images = [], + this._properties = [], + this._tileProperties = [], + this._mapSize = cc.size(0, 0), + this._tileSize = cc.size(0, 0) + }, + statics: { + Orientation: i, + Property: n, + TileFlag: r, + StaggerAxis: s, + StaggerIndex: a, + TMXObjectType: l, + RenderOrder: o + }, + properties: { + _tmxFile: { + default: null, + type: cc.TiledMapAsset + }, + tmxAsset: { + get: function() { + return this._tmxFile + }, + set: function(t) { + this._tmxFile !== t && (this._tmxFile = t, + this._applyFile()) + }, + type: cc.TiledMapAsset + } + }, + getMapSize: function() { + return this._mapSize + }, + getTileSize: function() { + return this._tileSize + }, + getMapOrientation: function() { + return this._mapOrientation + }, + getObjectGroups: function() { + return this._groups + }, + getObjectGroup: function(t) { + for (var e = this._groups, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r && r.getGroupName() === t) + return r + } + return null + }, + enableCulling: function(t) { + for (var e = this._layers, i = 0; i < e.length; ++i) + e[i].enableCulling(t) + }, + getProperties: function() { + return this._properties + }, + getLayers: function() { + return this._layers + }, + getLayer: function(t) { + for (var e = this._layers, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r && r.getLayerName() === t) + return r + } + return null + }, + _changeLayer: function(t, e) { + for (var i = this._layers, n = 0, r = i.length; n < r; n++) { + var s = i[n]; + if (s && s.getLayerName() === t) + return void (i[n] = e) + } + }, + getProperty: function(t) { + return this._properties[t.toString()] + }, + getPropertiesForGID: function(t) { + return this._tileProperties[t] + }, + __preload: function() { + this._tmxFile && this._applyFile() + }, + onEnable: function() { + this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this._syncAnchorPoint, this) + }, + onDisable: function() { + this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this._syncAnchorPoint, this) + }, + _applyFile: function() { + var t = this._tmxFile; + if (t) { + for (var e = t.textures, i = t.textureNames, n = t.textureSizes, r = {}, s = {}, a = 0; a < e.length; ++a) { + var o = i[a]; + r[o] = e[a], + s[o] = n[a] + } + var l = {}; + e = t.imageLayerTextures, + i = t.imageLayerTextureNames; + for (var h = 0; h < e.length; ++h) + l[i[h]] = e[h]; + for (var c = t.tsxFileNames, u = t.tsxFiles, _ = {}, f = 0; f < c.length; ++f) + c[f].length > 0 && (_[c[f]] = u[f].text); + var d = new cc.TMXMapInfo(t.tmxXmlStr,_,r,s,l) + , p = d.getTilesets(); + p && 0 !== p.length || cc.logID(7241), + this._buildWithMapInfo(d) + } else + this._releaseMapInfo() + }, + _releaseMapInfo: function() { + for (var t = this._layers, e = 0, i = t.length; e < i; e++) + t[e].node.removeFromParent(!0), + t[e].node.destroy(); + t.length = 0; + for (var n = this._groups, r = 0, s = n.length; r < s; r++) + n[r].node.removeFromParent(!0), + n[r].node.destroy(); + n.length = 0; + for (var a = this._images, o = 0, l = a.length; o < l; o++) + a[o].removeFromParent(!0), + a[o].destroy(); + a.length = 0 + }, + _syncAnchorPoint: function() { + var t, e, i = this.node.getAnchorPoint(), n = this.node.width * i.x, r = this.node.height * (1 - i.y); + for (t = 0, + e = this._layers.length; t < e; t++) + this._layers[t].node.setAnchorPoint(i); + for (t = 0, + e = this._groups.length; t < e; t++) { + var s = this._groups[t] + , a = s.node; + a.anchorX = .5, + a.anchorY = .5, + a.x = s._offset.x - n + a.width * a.anchorX, + a.y = s._offset.y + r - a.height * a.anchorY + } + for (t = 0, + e = this._images.length; t < e; t++) { + var o = this._images[t]; + o.anchorX = .5, + o.anchorY = .5, + o.x = o._offset.x - n + o.width * o.anchorX, + o.y = o._offset.y + r - o.height * o.anchorY + } + }, + _fillAniGrids: function(t, e) { + for (var i in e) { + var n = e[i]; + if (n) + for (var r = n.frames, s = 0; s < r.length; s++) { + var a = r[s]; + a.grid = t[a.tileid] + } + } + }, + _buildLayerAndGroup: function() { + var t = this._tilesets + , e = this._texGrids + , i = this._animations; + e.length = 0; + for (var n = 0, r = t.length; n < r; ++n) { + var s = t[n]; + s && cc.TiledMap.fillTextureGrids(s, e, n) + } + this._fillAniGrids(e, i); + for (var a = this._layers, o = this._groups, l = this._images, h = {}, c = 0, u = a.length; c < u; c++) + h[a[c].node._name] = !0; + for (var _ = 0, f = o.length; _ < f; _++) + h[o[_].node._name] = !0; + for (var d = 0, p = l.length; d < p; d++) + h[l[d]._name] = !0; + a = this._layers = [], + o = this._groups = [], + l = this._images = []; + var m = this._mapInfo + , y = this.node + , v = m.getAllChildren() + , g = this._textures + , A = 0 + , x = 0; + if (v && v.length > 0) + for (var b = 0, C = v.length; b < C; b++) { + var T = v[b] + , S = T.name + , w = this.node.getChildByName(S); + if (h[S] = !1, + w || ((w = new cc.Node).name = S, + y.addChild(w)), + w.setSiblingIndex(b), + w.active = T.visible, + T instanceof cc.TMXLayerInfo) { + var E = w.getComponent(cc.TiledLayer); + E || (E = w.addComponent(cc.TiledLayer)), + E._init(T, m, t, g, e), + T.ownTiles = !1, + a.push(E) + } else if (T instanceof cc.TMXObjectGroupInfo) { + var M = w.getComponent(cc.TiledObjectGroup); + M || (M = w.addComponent(cc.TiledObjectGroup)), + M._init(T, m, e), + o.push(M) + } else if (T instanceof cc.TMXImageLayerInfo) { + var D = T.sourceImage; + w.opacity = T.opacity, + w.layerInfo = T, + w._offset = cc.v2(T.offset.x, -T.offset.y); + var B = w.getComponent(cc.Sprite); + B || (B = w.addComponent(cc.Sprite)); + var I = B.spriteFrame || new cc.SpriteFrame; + I.setTexture(D), + B.spriteFrame = I, + w.width = D.width, + w.height = D.height, + l.push(w) + } + A = Math.max(A, w.width), + x = Math.max(x, w.height) + } + for (var P = y.children, R = 0, O = P.length; R < O; R++) { + var L = P[R]; + h[L._name] && L.destroy() + } + this.node.width = A, + this.node.height = x, + this._syncAnchorPoint() + }, + _buildWithMapInfo: function(t) { + this._mapInfo = t, + this._mapSize = t.getMapSize(), + this._tileSize = t.getTileSize(), + this._mapOrientation = t.orientation, + this._properties = t.properties, + this._tileProperties = t.getTileProperties(), + this._imageLayers = t.getImageLayers(), + this._animations = t.getTileAnimations(), + this._tilesets = t.getTilesets(); + var e = this._tilesets; + this._textures.length = 0; + for (var i = [], n = 0, r = e.length; n < r; ++n) { + var s = e[n]; + s && s.sourceImage && (this._textures[n] = s.sourceImage, + i.push(s.sourceImage)) + } + for (var a = 0; a < this._imageLayers.length; a++) { + var o = this._imageLayers[a]; + o && o.sourceImage && i.push(o.sourceImage) + } + cc.TiledMap.loadAllTextures(i, function() { + this._buildLayerAndGroup() + } + .bind(this)) + }, + update: function(t) { + var e = this._animations + , i = this._texGrids; + for (var n in e) { + var r = e[n] + , s = r.frames + , a = s[r.frameIdx]; + r.dt += t, + a.duration < r.dt && (r.dt = 0, + r.frameIdx++, + r.frameIdx >= s.length && (r.frameIdx = 0), + a = s[r.frameIdx]), + i[n] = a.grid + } + } + }); + cc.TiledMap = e.exports = h, + cc.TiledMap.loadAllTextures = function(t, e) { + var i = t.length; + if (0 !== i) + for (var n = 0, r = function() { + ++n >= i && e() + }, s = 0; s < i; s++) { + var a = t[s]; + a.loaded ? r() : a.once("load", (function() { + r() + } + )) + } + else + e() + } + , + cc.TiledMap.fillTextureGrids = function(t, e, i) { + var n = t.sourceImage; + t.imageSize.width && t.imageSize.height || (t.imageSize.width = n.width, + t.imageSize.height = n.height); + var r = t._tileSize.width + , s = t._tileSize.height + , a = n.width + , o = n.height + , l = t.spacing + , h = t.margin + , c = Math.floor((a - 2 * h + l) / (r + l)) + , u = Math.floor((o - 2 * h + l) / (s + l)) * c + , _ = t.firstGid + , f = null + , d = !!e[_] + , p = cc.macro.FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX ? .5 : 0; + u <= 0 && (u = 1); + for (var m = t.firstGid + u; _ < m && (d && !e[_] && (d = !1), + d || !e[_]); ++_) + f = { + texId: i, + tileset: t, + x: 0, + y: 0, + width: r, + height: s, + t: 0, + l: 0, + r: 0, + b: 0, + gid: _ + }, + t.rectForGID(_, f), + f.x += p, + f.y += p, + f.width -= 2 * p, + f.height -= 2 * p, + f.t = f.y / o, + f.l = f.x / a, + f.r = (f.x + f.width) / a, + f.b = (f.y + f.height) / o, + e[_] = f + } + , + cc.js.obsolete(cc.TiledMap.prototype, "cc.TiledMap.tmxFile", "tmxAsset", !0), + cc.js.get(cc.TiledMap.prototype, "mapLoaded", (function() { + return cc.errorID(7203), + [] + } + ), !1) + } + ), { + "./CCTMXXMLParser": 339, + "./CCTiledLayer": 340, + "./CCTiledMapAsset": 342, + "./CCTiledObjectGroup": 344, + "./CCTiledTile": 345 + }], + 342: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.TiledMapAsset", + extends: cc.Asset, + properties: { + tmxXmlStr: "", + textures: { + default: [], + type: [cc.Texture2D] + }, + textureNames: [cc.String], + textureSizes: { + default: [], + type: [cc.Size] + }, + imageLayerTextures: { + default: [], + type: [cc.Texture2D] + }, + imageLayerTextureNames: [cc.String], + tsxFiles: [cc.TextAsset], + tsxFileNames: [cc.String] + }, + statics: { + preventDeferredLoadDependents: !0 + }, + createNode: !1 + }); + cc.TiledMapAsset = i, + e.exports = i + } + ), {}], + 343: [(function(t, e) { + "use strict"; + var i, n = (i = t("../renderer/core/input-assembler")) && i.__esModule ? i : { + default: i + }, r = cc.Class({ + name: "cc.TiledMapRenderDataList", + ctor: function() { + this._dataList = [], + this._offset = 0 + }, + _pushRenderData: function() { + var t = {}; + t.ia = new n.default, + t.nodesRenderList = [], + this._dataList.push(t) + }, + popRenderData: function(t) { + this._offset >= this._dataList.length && this._pushRenderData(); + var e = this._dataList[this._offset]; + e.nodesRenderList.length = 0; + var i = e.ia; + return i._vertexBuffer = t._vb, + i._indexBuffer = t._ib, + i._start = t.indiceOffset, + i._count = 0, + this._offset++, + e + }, + pushNodesList: function(t, e) { + t.nodesRenderList.push(e) + }, + reset: function() { + this._offset = 0 + } + }); + cc.TiledMapRenderDataList = e.exports = r + } + ), { + "../renderer/core/input-assembler": 305 + }], + 344: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.TiledObjectGroup", + extends: cc.Component, + getPositionOffset: function() { + return this._positionOffset + }, + getProperties: function() { + this._properties + }, + getGroupName: function() { + return this._groupName + }, + getProperty: function(t) { + return this._properties[t.toString()] + }, + getObject: function(t) { + for (var e = 0, i = this._objects.length; e < i; e++) { + var n = this._objects[e]; + if (n && n.name === t) + return n + } + return null + }, + getObjects: function() { + return this._objects + }, + _init: function(t, e, i) { + var n = cc.TiledMap + , r = n.TMXObjectType + , s = n.Orientation + , a = n.StaggerAxis + , o = n.TileFlag + , l = o.FLIPPED_MASK + , h = o.HORIZONTAL + , c = o.VERTICAL; + this._groupName = t.name, + this._positionOffset = t.offset, + this._mapInfo = e, + this._properties = t.getProperties(), + this._offset = cc.v2(t.offset.x, -t.offset.y), + this._opacity = t._opacity; + var u = e._mapSize + , _ = e._tileSize + , f = 0 + , d = 0; + if (e.orientation === s.HEX) + e.getStaggerAxis() === a.STAGGERAXIS_X ? (d = _.height * (u.height + .5), + f = (_.width + e.getHexSideLength()) * Math.floor(u.width / 2) + _.width * (u.width % 2)) : (f = _.width * (u.width + .5), + d = (_.height + e.getHexSideLength()) * Math.floor(u.height / 2) + _.height * (u.height % 2)); + else if (e.orientation === s.ISO) { + var p = u.width + u.height; + f = .5 * _.width * p, + d = .5 * _.height * p + } else + f = u.width * _.width, + d = u.height * _.height; + this.node.setContentSize(f, d); + for (var m = f * this.node.anchorX, y = d * (1 - this.node.anchorY), v = t._objects, g = {}, A = 0, x = v.length; A < x; A++) { + var b = v[A] + , C = b.type; + b.offset = cc.v2(b.x, b.y); + var T = b.points || b.polylinePoints; + if (T) + for (var S = 0; S < T.length; S++) + T[S].y *= -1; + if (s.ISO !== e.orientation) + b.y = d - b.y; + else { + var w = b.x / _.height + , E = b.y / _.height; + b.x = .5 * _.width * (u.height + w - E), + b.y = .5 * _.height * (u.width + u.height - w - E) + } + if (C === r.TEXT) { + var M = "text" + b.id; + g[M] = !0; + var D = this.node.getChildByName(M); + D || (D = new cc.Node), + D.active = b.visible, + D.anchorX = 0, + D.anchorY = 1, + D.angle = -b.rotation, + D.x = b.x - m, + D.y = b.y - y, + D.name = M, + D.parent = this.node, + D.color = b.color, + D.opacity = this._opacity, + D.setSiblingIndex(A); + var B = D.getComponent(cc.Label); + B || (B = D.addComponent(cc.Label)), + B.overflow = cc.Label.Overflow.SHRINK, + B.lineHeight = b.height, + B.string = b.text, + B.horizontalAlign = b.halign, + B.verticalAlign = b.valign, + B.fontSize = b.pixelsize, + D.width = b.width, + D.height = b.height + } + if (C === r.IMAGE) { + var I = b.gid + , P = i[(I & l) >>> 0]; + if (!P) + continue; + var R = P.tileset + , O = "img" + b.id; + g[O] = !0; + var L = this.node.getChildByName(O) + , F = b.width || P.width + , V = b.height || P.height + , N = R.tileOffset.x + , k = R.tileOffset.y; + L instanceof cc.PrivateNode && (L.removeFromParent(), + L.destroy(), + L = null), + L || (L = new cc.Node), + s.ISO == e.orientation ? (L.anchorX = .5 + N / F, + L.anchorY = k / V) : (L.anchorX = N / F, + L.anchorY = k / V), + L.active = b.visible, + L.angle = -b.rotation, + L.x = b.x - m, + L.y = b.y - y, + L.name = O, + L.parent = this.node, + L.opacity = this._opacity, + L.setSiblingIndex(A); + var G = L.getComponent(cc.Sprite); + G || (G = L.addComponent(cc.Sprite)); + var U = G.spriteFrame; + U || (U = new cc.SpriteFrame), + (I & h) >>> 0 ? U.setFlipX(!0) : U.setFlipX(!1), + (I & c) >>> 0 ? U.setFlipY(!0) : U.setFlipY(!1), + U.setTexture(P.tileset.sourceImage, cc.rect(P)), + G.spriteFrame = U, + G.setVertsDirty(), + L.width = F, + L.height = V + } + } + this._objects = v; + for (var z = this.node.children, H = /^(?:img|text)\d+$/, W = 0, j = z.length; W < j; W++) { + var X = z[W] + , Y = X._name; + H.test(Y) && !g[Y] && X.destroy() + } + } + }); + cc.TiledObjectGroup = e.exports = i + } + ), {}], + 345: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.TiledTile", + extends: cc.Component, + editor: !1, + ctor: function() { + this._layer = null + }, + properties: { + _x: 0, + _y: 0, + x: { + get: function() { + return this._x + }, + set: function(t) { + t !== this._x && (this._layer && this._layer._isInvalidPosition(t, this._y) ? cc.warn("Invalid x, the valid value is between [%s] ~ [%s]", 0, this._layer._layerSize.width) : (this._resetTile(), + this._x = t, + this._updateInfo())) + }, + type: cc.Integer + }, + y: { + get: function() { + return this._y + }, + set: function(t) { + t !== this._y && (this._layer && this._layer._isInvalidPosition(this._x, t) ? cc.warn("Invalid y, the valid value is between [%s] ~ [%s]", 0, this._layer._layerSize.height) : (this._resetTile(), + this._y = t, + this._updateInfo())) + }, + type: cc.Integer + }, + gid: { + get: function() { + return this._layer ? this._layer.getTileGIDAt(this._x, this._y) : 0 + }, + set: function(t) { + this._layer && this._layer.setTileGIDAt(t, this._x, this._y) + }, + type: cc.Integer + } + }, + onEnable: function() { + var t = this.node.parent; + this._layer = t.getComponent(cc.TiledLayer), + this._resetTile(), + this._updateInfo() + }, + onDisable: function() { + this._resetTile() + }, + _resetTile: function() { + this._layer && this._layer.getTiledTileAt(this._x, this._y) === this && this._layer.setTiledTileAt(this._x, this._y, null) + }, + _updateInfo: function() { + if (this._layer) { + var t = this._x + , e = this._y; + this._layer.getTiledTileAt(t, e) ? cc.warn("There is already a TiledTile at [%s, %s]", t, e) : (this.node.setPosition(this._layer.getPositionAt(t, e)), + this._layer.setTiledTileAt(t, e, this)) + } + } + }); + cc.TiledTile = e.exports = i + } + ), {}], + 346: [(function(t) { + "use strict"; + t("./CCTiledMap"), + t("./CCTiledMapRenderDataList"), + t("./tiledmap-buffer"), + t("./tmx-layer-assembler") + } + ), { + "./CCTiledMap": 341, + "./CCTiledMapRenderDataList": 343, + "./tiledmap-buffer": 347, + "./tmx-layer-assembler": 348 + }], + 347: [(function(t, e) { + "use strict"; + var i = cc.Class({ + name: "cc.TiledMapBuffer", + extends: t("../core/renderer/webgl/quad-buffer"), + _updateOffset: function() { + var t = this._offsetInfo; + t.vertexOffset = this.vertexOffset, + t.indiceOffset = this.indiceOffset, + t.byteOffset = this.byteOffset + }, + adjust: function(t, e) { + this.vertexOffset += t, + this.indiceOffset += e, + this.indiceStart = this.indiceOffset, + this.byteOffset = this.byteOffset + t * this._vertexBytes, + this._dirty = !0 + } + }); + cc.TiledMapBuffer = e.exports = i + } + ), { + "../core/renderer/webgl/quad-buffer": 253 + }], + 348: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../core/renderer/assembler")) && n.__esModule ? n : { + default: n + }, s = t("../core/value-types"); + function a(t, e) { + return (a = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var o = t("./CCTiledLayer") + , l = t("./CCTiledMap") + , h = l.TileFlag + , c = h.FLIPPED_MASK + , u = t("../core/renderer/") + , _ = t("../core/renderer/webgl/vertex-format").vfmtPosUvColor + , f = parseInt(10922.5) + , d = l.RenderOrder + , p = t("../core/renderer/render-flow") + , m = cc.mat4() + , y = cc.v3() + , v = { + row: 0, + col: 0 + } + , g = { + x: 0, + y: 0 + } + , A = { + x: 0, + y: 0 + } + , x = { + x: 0, + y: 0 + } + , b = { + x: 0, + y: 0 + } + , C = null + , T = null + , S = 0 + , w = 0 + , E = 0 + , M = 0 + , D = null + , B = null + , I = null + , P = null + , R = null + , O = null + , L = null + , F = null; + function V(t) { + t._updateLocalMatrix(), + s.Mat4.mul(t._worldMatrix, D, t._matrix), + t._renderFlag &= ~(p.FLAG_TRANSFORM | p.FLAG_BREAK_FLOW), + p.visitRootNode(t), + t._renderFlag |= p.FLAG_BREAK_FLOW + } + function N() { + 0 !== T._count && (B.material = C.material, + B.node = O.node, + B._flushIA(C.ia), + S >= f ? (P.uploadData(), + P.switchBuffer(), + L = P._vData, + F = P._uintVData, + C = I.popRenderData(P), + T = C.ia, + w = 0, + S = 0) : (C = I.popRenderData(P), + T = C.ia), + C.material = R) + } + function k(t, e) { + var i = O._getNodesByRowCol(t, e); + if (i && 0 != i.count) { + var n = i.list + , r = 0 + , s = 0; + for (N(), + B.worldMatDirty++; r < i.count; ) { + var a = n[s]; + s++, + a && (V(a.node), + r !== s && (n[r] = a, + a._index = r), + r++) + } + n.length = r, + B.worldMatDirty--, + I.pushNodesList(C, n), + B._flush(), + B.node = O.node + } + } + function G(t, e) { + g.x = t.l, + g.y = t.t, + A.x = t.r, + A.y = t.t, + x.x = t.l, + x.y = t.b, + b.x = t.r, + b.y = t.b; + var i = null; + (e & h.DIAGONAL) >>> 0 && (i = A, + A = x, + x = i), + (e & h.HORIZONTAL) >>> 0 && (i = g, + g = A, + A = i, + i = x, + x = b, + b = i), + (e & h.VERTICAL) >>> 0 && (i = g, + g = x, + x = i, + i = A, + A = b, + b = i) + } + var U = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + a(e, i); + var r = n.prototype; + return r.updateRenderData = function(t) { + t._renderDataList || (t._buffer = new cc.TiledMapBuffer(u._handle,_), + t._renderDataList = new cc.TiledMapRenderDataList) + } + , + r.fillBuffers = function(t, e) { + if (0 !== t._vertices.length) { + t._updateCulling(); + var i = t.node; + if (E = t._leftDownToCenterX, + M = t._leftDownToCenterY, + D = i._worldMatrix, + B = e, + O = t, + I = t._renderDataList, + P = t._buffer, + t._isCullingDirty() || t._isUserNodeDirty() || t._hasAnimation() || t._hasTiledNode()) { + var n, r; + if (P.reset(), + t._enableCulling) { + var s = t._cullingRect; + n = s.leftDown, + r = s.rightTop + } else + n = v, + r = t._rightTop; + var a = (r.row - n.row + 1) * (r.col - n.col + 1); + switch (a > f && (a = f), + P.request(4 * a, 6 * a), + t._renderOrder) { + case d.RightDown: + this.traverseGrids(n, r, -1, 1); + break; + case d.LeftDown: + this.traverseGrids(n, r, -1, -1); + break; + case d.RightUp: + this.traverseGrids(n, r, 1, 1); + break; + case d.LeftUp: + this.traverseGrids(n, r, 1, -1) + } + t._setCullingDirty(!1), + t._setUserNodeDirty(!1) + } else + for (var o = null, l = null, h = null, c = 0; c < I._offset; c++) { + if ((l = (o = I._dataList[c]).nodesRenderList).length > 0) { + e.worldMatDirty++; + for (var u = 0; u < l.length; u++) + if (h = l[u]) + for (var _ = 0; _ < h.length; _++) { + var p = h[_]; + p && V(p.node) + } + e.worldMatDirty--, + e._flush() + } + o.ia._count > 0 && (e.material = o.material, + e.node = i, + e._flushIA(o.ia)) + } + C = null, + T = null, + D = null, + B = null, + I = null, + P = null, + R = null, + O = null, + L = null, + F = null + } + } + , + r.traverseGrids = function(t, e, i, n) { + if (I.reset(), + !(e.row < 0 || e.col < 0)) { + C = I.popRenderData(P), + T = C.ia, + L = P._vData, + F = P._uintVData, + S = 0, + w = 0, + R = null; + var r = O.node + , s = (r.parent ? r.parent._opacity / 255 : 1) * r._opacity; + r._color._fastSetA(s); + var a, o, l, h, u, _, d, p, m = r._color._val, y = O._tiledTiles, v = O._texGrids, D = O._tiles, V = O._texIdToMatIndex, U = O._materials, z = O._vertices, H = null, W = 0, j = 0, X = 0, Y = 0, q = 0, J = null, Z = -1, K = 0, Q = !0; + for (-1 == i ? (h = e.row, + u = t.row) : (h = t.row, + u = e.row); (u - h) * i >= 0; h += i) + for (a = z[h], + Q = 0 == (K = O._getNodesCountByRow(h)) && null != a, + 1 == n ? (o = Q && t.col < a.minCol ? a.minCol : t.col, + l = Q && e.col > a.maxCol ? a.maxCol : e.col) : (o = Q && e.col > a.maxCol ? a.maxCol : e.col, + l = Q && t.col < a.minCol ? a.minCol : t.col); (l - o) * n >= 0; o += n) + (_ = a && a[o]) ? (H = v[((W = D[_.index]) & c) >>> 0]) && (Z !== H.texId && (-1 !== Z && N(), + p = V[Z = H.texId], + R = U[p], + C.material = R), + R && (j = _.left - E, + X = _.bottom - M, + Y = j + (d = H.tileset._tileSize).width, + q = X + d.height, + (J = y[_.index]) ? J.node.active && (J.node._color._fastSetA(J.node._opacity * s / 255), + this.fillByTiledNode(J.node, L, F, j, Y, q, X)) : (L[w] = j, + L[w + 1] = q, + F[w + 4] = m, + L[w + 5] = j, + L[w + 6] = X, + F[w + 9] = m, + L[w + 10] = Y, + L[w + 11] = q, + F[w + 14] = m, + L[w + 15] = Y, + L[w + 16] = X, + F[w + 19] = m), + G(H, W), + L[w + 2] = g.x, + L[w + 3] = g.y, + L[w + 7] = x.x, + L[w + 8] = x.y, + L[w + 12] = A.x, + L[w + 13] = A.y, + L[w + 17] = b.x, + L[w + 18] = b.y, + w += 20, + P.adjust(4, 6), + T._count += 6, + S++, + K > 0 && k(h, o), + S >= f && N())) : K > 0 && k(h, o); + P.uploadData(), + T._count > 0 && (B.material = C.material, + B.node = O.node, + B._flushIA(C.ia)) + } + } + , + r.fillByTiledNode = function(t, e, i, n, r, a, o) { + t._updateLocalMatrix(), + s.Mat4.copy(m, t._matrix), + s.Vec3.set(y, -(n + E), -(o + M), 0), + s.Mat4.transform(m, m, y); + var l = m.m + , h = l[0] + , c = l[1] + , u = l[4] + , _ = l[5] + , f = l[12] + , d = l[13] + , p = t._color._val; + e[w] = n * h + a * u + f, + e[w + 1] = n * c + a * _ + d, + i[w + 4] = p, + e[w + 5] = n * h + o * u + f, + e[w + 6] = n * c + o * _ + d, + i[w + 9] = p, + e[w + 10] = r * h + a * u + f, + e[w + 11] = r * c + a * _ + d, + i[w + 14] = p, + e[w + 15] = r * h + o * u + f, + e[w + 16] = r * c + o * _ + d, + i[w + 19] = p + } + , + n + } + )(r.default); + i.default = U, + r.default.register(o, U), + e.exports = i.default + } + ), { + "../core/renderer/": 224, + "../core/renderer/assembler": 221, + "../core/renderer/render-flow": 225, + "../core/renderer/webgl/vertex-format": 256, + "../core/value-types": 282, + "./CCTiledLayer": 340, + "./CCTiledMap": 341 + }], + 349: [(function(t, e) { + "use strict"; + var i = t("./video-player-impl") + , n = i.EventType + , r = cc.Enum({ + REMOTE: 0, + LOCAL: 1 + }) + , s = cc.Class({ + name: "cc.VideoPlayer", + extends: cc.Component, + editor: !1, + properties: { + _resourceType: r.REMOTE, + resourceType: { + tooltip: !1, + type: r, + set: function(t) { + this._resourceType = t, + this._updateVideoSource() + }, + get: function() { + return this._resourceType + } + }, + _remoteURL: "", + remoteURL: { + tooltip: !1, + type: cc.String, + set: function(t) { + this._remoteURL = t, + this._updateVideoSource() + }, + get: function() { + return this._remoteURL + } + }, + _clip: { + default: null, + type: cc.Asset + }, + clip: { + tooltip: !1, + get: function() { + return this._clip + }, + set: function(t) { + this._clip = t, + this._updateVideoSource() + }, + type: cc.Asset + }, + currentTime: { + tooltip: !1, + type: cc.Float, + set: function(t) { + this._impl && this._impl.seekTo(t) + }, + get: function() { + return this._impl ? this._currentStatus === n.NONE || this._currentStatus === n.STOPPED || this._currentStatus === n.META_LOADED || this._currentStatus === n.READY_TO_PLAY ? 0 : this._currentStatus === n.COMPLETED ? this._impl.duration() : this._impl.currentTime() : -1 + } + }, + _volume: 1, + volume: { + get: function() { + return this._volume + }, + set: function(t) { + this._volume = t, + this.isPlaying() && !this._mute && this._syncVolume() + }, + range: [0, 1], + type: cc.Float, + tooltip: !1 + }, + _mute: !1, + mute: { + get: function() { + return this._mute + }, + set: function(t) { + this._mute = t, + this._syncVolume() + }, + tooltip: !1 + }, + keepAspectRatio: { + tooltip: !1, + default: !0, + type: cc.Boolean, + notify: function() { + this._impl && this._impl.setKeepAspectRatioEnabled(this.keepAspectRatio) + } + }, + _isFullscreen: { + default: !1, + formerlySerializedAs: "_N$isFullscreen" + }, + isFullscreen: { + get: function() { + return this._isFullscreen = this._impl && this._impl.isFullScreenEnabled(), + this._isFullscreen + }, + set: function(t) { + this._isFullscreen = t, + this._impl && this._impl.setFullScreenEnabled(t) + }, + animatable: !1, + tooltip: !1 + }, + _stayOnBottom: !1, + stayOnBottom: { + get: function() { + return this._stayOnBottom + }, + set: function(t) { + this._stayOnBottom = t, + this._impl && this._impl.setStayOnBottom(t) + }, + animatable: !1, + tooltip: !1 + }, + videoPlayerEvent: { + default: [], + type: cc.Component.EventHandler + } + }, + statics: { + EventType: n, + ResourceType: r, + Impl: i + }, + ctor: function() { + this._impl = new i, + this._currentStatus = n.NONE + }, + _syncVolume: function() { + var t = this._impl; + if (t) { + var e = this._mute ? 0 : this._volume; + t.setVolume(e) + } + }, + _updateVideoSource: function() { + var t = ""; + this.resourceType === r.REMOTE ? t = this.remoteURL : this._clip && (t = this._clip.nativeUrl), + this._impl.setURL(t, this._mute || 0 === this._volume), + this._impl.setKeepAspectRatioEnabled(this.keepAspectRatio) + }, + onLoad: function() { + var t = this._impl; + t && (t.createDomElementIfNeeded(this._mute || 0 === this._volume), + t.setStayOnBottom(this._stayOnBottom), + this._updateVideoSource(), + t.seekTo(this.currentTime), + t.setFullScreenEnabled(this._isFullscreen), + this.pause(), + t.setEventListener(n.PLAYING, this.onPlaying.bind(this)), + t.setEventListener(n.PAUSED, this.onPasued.bind(this)), + t.setEventListener(n.STOPPED, this.onStopped.bind(this)), + t.setEventListener(n.COMPLETED, this.onCompleted.bind(this)), + t.setEventListener(n.META_LOADED, this.onMetaLoaded.bind(this)), + t.setEventListener(n.CLICKED, this.onClicked.bind(this)), + t.setEventListener(n.READY_TO_PLAY, this.onReadyToPlay.bind(this))) + }, + onRestore: function() { + this._impl || (this._impl = new i) + }, + onEnable: function() { + this._impl && this._impl.enable() + }, + onDisable: function() { + this._impl && this._impl.disable() + }, + onDestroy: function() { + this._impl && (this._impl.destroy(), + this._impl = null) + }, + update: function() { + this._impl && this._impl.updateMatrix(this.node) + }, + onReadyToPlay: function() { + this._currentStatus = n.READY_TO_PLAY, + cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.READY_TO_PLAY), + this.node.emit("ready-to-play", this) + }, + onMetaLoaded: function() { + this._currentStatus = n.META_LOADED, + cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.META_LOADED), + this.node.emit("meta-loaded", this) + }, + onClicked: function() { + this._currentStatus = n.CLICKED, + cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.CLICKED), + this.node.emit("clicked", this) + }, + onPlaying: function() { + this._currentStatus = n.PLAYING, + cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.PLAYING), + this.node.emit("playing", this) + }, + onPasued: function() { + this._currentStatus = n.PAUSED, + cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.PAUSED), + this.node.emit("paused", this) + }, + onStopped: function() { + this._currentStatus = n.STOPPED, + cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.STOPPED), + this.node.emit("stopped", this) + }, + onCompleted: function() { + this._currentStatus = n.COMPLETED, + cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.COMPLETED), + this.node.emit("completed", this) + }, + play: function() { + this._impl && (this._syncVolume(), + this._impl.play()) + }, + resume: function() { + this._impl && (this._syncVolume(), + this._impl.resume()) + }, + pause: function() { + this._impl && this._impl.pause() + }, + stop: function() { + this._impl && this._impl.stop() + }, + getDuration: function() { + return this._impl ? this._impl.duration() : -1 + }, + isPlaying: function() { + return !!this._impl && this._impl.isPlaying() + } + }); + cc.VideoPlayer = e.exports = s + } + ), { + "./video-player-impl": 350 + }], + 350: [(function(t, e) { + "use strict"; + var i = t("../core/platform/utils") + , n = t("../core/platform/CCSys") + , r = t("../core/platform/CCMacro") + , s = 1 + , a = 4 + , o = cc.mat4() + , l = cc.Class({ + name: "VideoPlayerImpl", + ctor: function() { + this._EventList = {}, + this._video = null, + this._url = "", + this._waitingFullscreen = !1, + this._fullScreenEnabled = !1, + this._stayOnBottom = !1, + this._loadedmeta = !1, + this._loaded = !1, + this._visible = !1, + this._playing = !1, + this._ignorePause = !1, + this._forceUpdate = !1, + this._m00 = 0, + this._m01 = 0, + this._m04 = 0, + this._m05 = 0, + this._m12 = 0, + this._m13 = 0, + this._w = 0, + this._h = 0, + this.__eventListeners = {} + }, + _bindEvent: function() { + var t = this._video + , e = this + , i = this.__eventListeners; + i.loadedmetadata = function() { + e._loadedmeta = !0, + e._forceUpdate = !0, + e._waitingFullscreen && (e._waitingFullscreen = !1, + e._toggleFullscreen(!0)), + e._dispatchEvent(l.EventType.META_LOADED) + } + , + i.ended = function() { + e._video === t && (e._playing = !1, + e._dispatchEvent(l.EventType.COMPLETED)) + } + , + i.play = function() { + e._video === t && (e._playing = !0, + e._updateVisibility(), + e._dispatchEvent(l.EventType.PLAYING)) + } + , + i.pause = function() { + e._video === t && (e._playing = !1, + e._ignorePause || e._dispatchEvent(l.EventType.PAUSED)) + } + , + i.click = function() { + e._dispatchEvent(l.EventType.CLICKED) + } + , + t.addEventListener("loadedmetadata", i.loadedmetadata), + t.addEventListener("ended", i.ended), + t.addEventListener("play", i.play), + t.addEventListener("pause", i.pause), + t.addEventListener("click", i.click), + i.onCanPlay = function() { + if (!e._loaded && !e._playing) { + var t = e._video; + t.readyState !== a && t.readyState !== s || (t.currentTime = 0, + e._loaded = !0, + e._forceUpdate = !0, + e._dispatchEvent(l.EventType.READY_TO_PLAY), + e._updateVisibility()) + } + } + , + t.addEventListener("canplay", i.onCanPlay), + t.addEventListener("canplaythrough", i.onCanPlay), + t.addEventListener("suspend", i.onCanPlay) + }, + _updateVisibility: function() { + var t = this._video; + t && (this._visible ? t.style.visibility = "visible" : (t.style.visibility = "hidden", + t.pause(), + this._playing = !1)) + }, + _updateSize: function(t, e) { + var i = this._video; + i && (i.style.width = t + "px", + i.style.height = e + "px") + }, + _createDom: function(t) { + var e = document.createElement("video"); + e.style.position = "absolute", + e.style.bottom = "0px", + e.style.left = "0px", + e.style["z-index"] = this._stayOnBottom ? r.MIN_ZINDEX : 0, + e.className = "cocosVideo", + e.setAttribute("preload", "auto"), + e.setAttribute("webkit-playsinline", ""), + e.setAttribute("x5-playsinline", ""), + e.setAttribute("playsinline", ""), + t && e.setAttribute("muted", ""), + this._video = e, + cc.game.container.appendChild(e) + }, + createDomElementIfNeeded: function(t) { + this._video || this._createDom(t) + }, + removeDom: function() { + var t = this._video; + if (t) { + i.contains(cc.game.container, t) && cc.game.container.removeChild(t); + var e = this.__eventListeners; + t.removeEventListener("loadedmetadata", e.loadedmetadata), + t.removeEventListener("ended", e.ended), + t.removeEventListener("play", e.play), + t.removeEventListener("pause", e.pause), + t.removeEventListener("click", e.click), + t.removeEventListener("canplay", e.onCanPlay), + t.removeEventListener("canplaythrough", e.onCanPlay), + t.removeEventListener("suspend", e.onCanPlay), + e.loadedmetadata = null, + e.ended = null, + e.play = null, + e.pause = null, + e.click = null, + e.onCanPlay = null + } + this._video = null, + this._url = "" + }, + setURL: function(t, e) { + var i, n; + if (this._url !== t) { + this.removeDom(), + this._url = t, + this.createDomElementIfNeeded(e), + this._bindEvent(); + var r = this._video; + r.style.visibility = "hidden", + this._loaded = !1, + this._playing = !1, + this._loadedmeta = !1, + (i = document.createElement("source")).src = t, + r.appendChild(i), + n = cc.path.extname(t); + for (var s = l._polyfill, a = 0; a < s.canPlayType.length; a++) + n !== s.canPlayType[a] && ((i = document.createElement("source")).src = t.replace(n, s.canPlayType[a]), + r.appendChild(i)) + } + }, + getURL: function() { + return this._url + }, + play: function() { + var t = this._video; + t && this._visible && !this._playing && t.play() + }, + pause: function() { + var t = this._video; + this._playing && t && t.pause() + }, + resume: function() { + this.play() + }, + stop: function() { + var t = this._video; + t && this._visible && (this._ignorePause = !0, + t.currentTime = 0, + t.pause(), + setTimeout(function() { + this._dispatchEvent(l.EventType.STOPPED), + this._ignorePause = !1 + } + .bind(this), 0)) + }, + setVolume: function(t) { + var e = this._video; + e && (e.volume = t) + }, + seekTo: function(t) { + var e = this._video; + e && (this._loaded ? e.currentTime = t : e.addEventListener(l._polyfill.event, (function i() { + e.currentTime = t, + e.removeEventListener(l._polyfill.event, i) + } + ))) + }, + isPlaying: function() { + return this._playing + }, + duration: function() { + var t = this._video + , e = -1; + return t ? ((e = t.duration) <= 0 && cc.logID(7702), + e) : e + }, + currentTime: function() { + var t = this._video; + return t ? t.currentTime : -1 + }, + setKeepAspectRatioEnabled: function() { + cc.logID(7700) + }, + isKeepAspectRatioEnabled: function() { + return !0 + }, + _toggleFullscreen: function(t) { + var e = this + , i = this._video; + i && (t ? (n.browserType === n.BROWSER_TYPE_IE && (i.style.transform = ""), + cc.screen.requestFullScreen(i, (function() { + var t = n.browserType === n.BROWSER_TYPE_IE ? document.msFullscreenElement : document.fullscreenElement; + e._fullScreenEnabled = t === i + } + ), (function() { + e._fullScreenEnabled = !1 + } + ))) : cc.screen.fullScreen() && cc.screen.exitFullScreen(i)) + }, + setStayOnBottom: function(t) { + this._stayOnBottom = t, + this._video && (this._video.style["z-index"] = t ? r.MIN_ZINDEX : 0) + }, + setFullScreenEnabled: function(t) { + !this._loadedmeta && t ? this._waitingFullscreen = !0 : this._toggleFullscreen(t) + }, + isFullScreenEnabled: function() { + return this._fullScreenEnabled + }, + setEventListener: function(t, e) { + this._EventList[t] = e + }, + removeEventListener: function(t) { + this._EventList[t] = null + }, + _dispatchEvent: function(t) { + var e = this._EventList[t]; + e && e.call(this, this, this._video.src) + }, + onPlayEvent: function() { + this._EventList[l.EventType.PLAYING].call(this, this, this._video.src) + }, + enable: function() { + var t = l.elements; + -1 === t.indexOf(this) && t.push(this), + this.setVisible(!0) + }, + disable: function() { + var t = l.elements + , e = t.indexOf(this); + -1 !== e && t.splice(e, 1), + this.setVisible(!1) + }, + destroy: function() { + this.disable(), + this.removeDom() + }, + setVisible: function(t) { + this._visible !== t && (this._visible = !!t, + this._updateVisibility()) + }, + updateMatrix: function(t) { + if (this._video && this._visible && !this._fullScreenEnabled) { + t.getWorldMatrix(o); + var e = cc.Camera._findRendererCamera(t); + e && e.worldMatrixToScreen(o, o, cc.game.canvas.width, cc.game.canvas.height); + var i = o.m; + if (this._forceUpdate || this._m00 !== i[0] || this._m01 !== i[1] || this._m04 !== i[4] || this._m05 !== i[5] || this._m12 !== i[12] || this._m13 !== i[13] || this._w !== t._contentSize.width || this._h !== t._contentSize.height) { + this._m00 = i[0], + this._m01 = i[1], + this._m04 = i[4], + this._m05 = i[5], + this._m12 = i[12], + this._m13 = i[13], + this._w = t._contentSize.width, + this._h = t._contentSize.height; + var r, s, a = cc.view._devicePixelRatio, h = 1 / a, c = 1 / a, u = cc.game.container, _ = i[0] * h, f = i[1], d = i[4], p = i[5] * c, m = u && u.style.paddingLeft ? parseInt(u.style.paddingLeft) : 0, y = u && u.style.paddingBottom ? parseInt(u.style.paddingBottom) : 0; + l._polyfill.zoomInvalid ? (this._updateSize(this._w * _, this._h * p), + _ = 1, + p = 1, + r = this._w * h, + s = this._h * c) : (r = this._w * h, + s = this._h * c, + this._updateSize(this._w, this._h)); + var v = r * i[0] * t._anchorPoint.x + , g = s * i[5] * t._anchorPoint.y + , A = "matrix(" + _ + "," + -f + "," + -d + "," + p + "," + (i[12] * h - v + m) + "," + -(i[13] * c - g + y) + ")"; + this._video.style.transform = A, + this._video.style["-webkit-transform"] = A, + this._video.style["transform-origin"] = "0px 100% 0px", + this._video.style["-webkit-transform-origin"] = "0px 100% 0px", + n.browserType !== n.BROWSER_TYPE_IE && (this._forceUpdate = !1) + } + } + } + }); + l.EventType = { + NONE: -1, + PLAYING: 0, + PAUSED: 1, + STOPPED: 2, + COMPLETED: 3, + META_LOADED: 4, + CLICKED: 5, + READY_TO_PLAY: 6 + }, + l.elements = [], + l.pauseElements = [], + cc.game.on(cc.game.EVENT_HIDE, (function() { + for (var t, e = l.elements, i = 0; i < e.length; i++) + (t = e[i]).isPlaying() && (t.pause(), + l.pauseElements.push(t)) + } + )), + cc.game.on(cc.game.EVENT_SHOW, (function() { + for (var t = l.pauseElements, e = t.pop(); e; ) + e.play(), + e = t.pop() + } + )), + l._polyfill = { + devicePixelRatio: !1, + event: "canplay", + canPlayType: [] + }; + var h = document.createElement("video"); + h.canPlayType && (h.canPlayType("video/ogg") && (l._polyfill.canPlayType.push(".ogg"), + l._polyfill.canPlayType.push(".ogv")), + h.canPlayType("video/mp4") && l._polyfill.canPlayType.push(".mp4"), + h.canPlayType("video/webm") && l._polyfill.canPlayType.push(".webm")), + n.OS_ANDROID !== n.os || n.browserType !== n.BROWSER_TYPE_SOUGOU && n.browserType !== n.BROWSER_TYPE_360 || (l._polyfill.zoomInvalid = !0); + var c = document.createElement("style"); + c.innerHTML = ".cocosVideo:-moz-full-screen{transform:matrix(1,0,0,1,0,0) !important;}.cocosVideo:full-screen{transform:matrix(1,0,0,1,0,0) !important;}.cocosVideo:-webkit-full-screen{transform:matrix(1,0,0,1,0,0) !important;}", + document.head.appendChild(c), + e.exports = l + } + ), { + "../core/platform/CCMacro": 198, + "../core/platform/CCSys": 202, + "../core/platform/utils": 217 + }], + 351: [(function(t, e) { + "use strict"; + var i = t("./webview-impl") + , n = i.EventType; + function r() {} + var s = cc.Class({ + name: "cc.WebView", + extends: cc.Component, + editor: !1, + properties: { + _url: "", + url: { + type: cc.String, + tooltip: !1, + get: function() { + return this._url + }, + set: function(t) { + this._url = t; + var e = this._impl; + e && e.loadURL(t) + } + }, + webviewEvents: { + default: [], + type: cc.Component.EventHandler + } + }, + statics: { + EventType: n, + Impl: i + }, + ctor: function() { + this._impl = new s.Impl + }, + onRestore: function() { + this._impl || (this._impl = new s.Impl) + }, + onEnable: function() { + var t = this._impl; + t.createDomElementIfNeeded(this.node.width, this.node.height), + t.setEventListener(n.LOADED, this._onWebViewLoaded.bind(this)), + t.setEventListener(n.LOADING, this._onWebViewLoading.bind(this)), + t.setEventListener(n.ERROR, this._onWebViewLoadError.bind(this)), + t.loadURL(this._url), + t.setVisible(!0) + }, + onDisable: function() { + var t = this._impl; + t.setVisible(!1), + t.setEventListener(n.LOADED, r), + t.setEventListener(n.LOADING, r), + t.setEventListener(n.ERROR, r) + }, + onDestroy: function() { + this._impl && (this._impl.destroy(), + this._impl = null) + }, + update: function() { + this._impl && this._impl.updateMatrix(this.node) + }, + _onWebViewLoaded: function() { + cc.Component.EventHandler.emitEvents(this.webviewEvents, this, n.LOADED), + this.node.emit("loaded", this) + }, + _onWebViewLoading: function() { + return cc.Component.EventHandler.emitEvents(this.webviewEvents, this, n.LOADING), + this.node.emit("loading", this), + !0 + }, + _onWebViewLoadError: function() { + cc.Component.EventHandler.emitEvents(this.webviewEvents, this, n.ERROR), + this.node.emit("error", this) + }, + setJavascriptInterfaceScheme: function(t) { + this._impl && this._impl.setJavascriptInterfaceScheme(t) + }, + setOnJSCallback: function(t) { + this._impl && this._impl.setOnJSCallback(t) + }, + evaluateJS: function(t) { + this._impl && this._impl.evaluateJS(t) + } + }); + cc.WebView = e.exports = s + } + ), { + "./webview-impl": 352 + }], + 352: [(function(t, e) { + "use strict"; + var i = t("../core/platform/utils") + , n = t("../core/platform/CCSys") + , r = cc.mat4() + , s = cc.Class({ + name: "WebViewImpl", + ctor: function() { + this._EventList = {}, + this._visible = !1, + this._parent = null, + this._div = null, + this._iframe = null, + this._listener = null, + this._forceUpdate = !1, + this._m00 = 0, + this._m01 = 0, + this._m04 = 0, + this._m05 = 0, + this._m12 = 0, + this._m13 = 0, + this._w = 0, + this._h = 0, + this.__eventListeners = {} + }, + _updateVisibility: function() { + if (this._div) { + var t = this._div; + this._visible ? t.style.visibility = "visible" : t.style.visibility = "hidden" + } + }, + _updateSize: function(t, e) { + var i = this._div; + i && (i.style.width = t + "px", + i.style.height = e + "px") + }, + _initEvent: function() { + var t = this._iframe; + if (t) { + var e = this.__eventListeners + , i = this; + e.load = function() { + i._forceUpdate = !0, + i._dispatchEvent(s.EventType.LOADED) + } + , + e.error = function() { + i._dispatchEvent(s.EventType.ERROR) + } + , + t.addEventListener("load", e.load), + t.addEventListener("error", e.error) + } + }, + _initStyle: function() { + if (this._div) { + var t = this._div; + t.style.position = "absolute", + t.style.bottom = "0px", + t.style.left = "0px" + } + }, + _setOpacity: function(t) { + var e = this._iframe; + e && e.style && (e.style.opacity = t / 255) + }, + _createDom: function(t, e) { + s._polyfill.enableDiv ? (this._div = document.createElement("div"), + this._div.style["-webkit-overflow"] = "auto", + this._div.style["-webkit-overflow-scrolling"] = "touch", + this._iframe = document.createElement("iframe"), + this._div.appendChild(this._iframe), + this._iframe.style.width = "100%", + this._iframe.style.height = "100%") : this._div = this._iframe = document.createElement("iframe"), + s._polyfill.enableBG && (this._div.style.background = "#FFF"), + this._div.style.height = e + "px", + this._div.style.width = t + "px", + this._div.style.overflow = "scroll", + this._iframe.style.border = "none", + cc.game.container.appendChild(this._div), + this._updateVisibility() + }, + _createNativeControl: function(t, e) { + this._createDom(t, e), + this._initStyle(), + this._initEvent() + }, + createDomElementIfNeeded: function(t, e) { + this._div ? this._updateSize(t, e) : this._createNativeControl(t, e) + }, + removeDom: function() { + var t = this._div; + t && (i.contains(cc.game.container, t) && cc.game.container.removeChild(t), + this._div = null); + var e = this._iframe; + if (e) { + var n = this.__eventListeners; + e.removeEventListener("load", n.load), + e.removeEventListener("error", n.error), + n.load = null, + n.error = null, + this._iframe = null + } + }, + setOnJSCallback: function() {}, + setJavascriptInterfaceScheme: function() {}, + loadData: function() {}, + loadHTMLString: function() {}, + loadURL: function(t) { + var e = this._iframe; + if (e) { + e.src = t; + var i = this; + e.addEventListener("load", (function t() { + i._loaded = !0, + i._updateVisibility(), + e.removeEventListener("load", t) + } + )), + this._dispatchEvent(s.EventType.LOADING) + } + }, + stopLoading: function() { + cc.logID(7800) + }, + reload: function() { + var t = this._iframe; + if (t) { + var e = t.contentWindow; + e && e.location && e.location.reload() + } + }, + canGoBack: function() { + return cc.logID(7801), + !0 + }, + canGoForward: function() { + return cc.logID(7802), + !0 + }, + goBack: function() { + try { + if (s._polyfill.closeHistory) + return cc.logID(7803); + var t = this._iframe; + if (t) { + var e = t.contentWindow; + e && e.location && e.history.back.call(e) + } + } catch (i) { + cc.log(i) + } + }, + goForward: function() { + try { + if (s._polyfill.closeHistory) + return cc.logID(7804); + var t = this._iframe; + if (t) { + var e = t.contentWindow; + e && e.location && e.history.forward.call(e) + } + } catch (i) { + cc.log(i) + } + }, + evaluateJS: function(t) { + var e = this._iframe; + if (e) { + var i = e.contentWindow; + try { + i.eval(t), + this._dispatchEvent(s.EventType.JS_EVALUATED) + } catch (n) { + console.error(n) + } + } + }, + setScalesPageToFit: function() { + cc.logID(7805) + }, + setEventListener: function(t, e) { + this._EventList[t] = e + }, + removeEventListener: function(t) { + this._EventList[t] = null + }, + _dispatchEvent: function(t) { + var e = this._EventList[t]; + e && e.call(this, this, this._iframe.src) + }, + _createRenderCmd: function() { + return new s.RenderCmd(this) + }, + destroy: function() { + this.removeDom() + }, + setVisible: function(t) { + this._visible !== t && (this._visible = !!t, + this._updateVisibility()) + }, + updateMatrix: function(t) { + if (this._div && this._visible) { + t.getWorldMatrix(r); + var e = cc.Camera._findRendererCamera(t); + e && e.worldMatrixToScreen(r, r, cc.game.canvas.width, cc.game.canvas.height); + var i = r.m; + if (this._forceUpdate || this._m00 !== i[0] || this._m01 !== i[1] || this._m04 !== i[4] || this._m05 !== i[5] || this._m12 !== i[12] || this._m13 !== i[13] || this._w !== t._contentSize.width || this._h !== t._contentSize.height) { + this._m00 = i[0], + this._m01 = i[1], + this._m04 = i[4], + this._m05 = i[5], + this._m12 = i[12], + this._m13 = i[13], + this._w = t._contentSize.width, + this._h = t._contentSize.height; + var n = cc.view._devicePixelRatio + , s = 1 / n + , a = 1 / n + , o = cc.game.container + , l = i[0] * s + , h = i[1] + , c = i[4] + , u = i[5] * a + , _ = o && o.style.paddingLeft ? parseInt(o.style.paddingLeft) : 0 + , f = o && o.style.paddingBottom ? parseInt(o.style.paddingBottom) : 0; + this._updateSize(this._w, this._h); + var d = this._w * s + , p = this._h * a + , m = d * i[0] * t._anchorPoint.x + , y = p * i[5] * t._anchorPoint.y + , v = "matrix(" + l + "," + -h + "," + -c + "," + u + "," + (i[12] * s - m + _) + "," + -(i[13] * a - y + f) + ")"; + this._div.style.transform = v, + this._div.style["-webkit-transform"] = v, + this._div.style["transform-origin"] = "0px 100% 0px", + this._div.style["-webkit-transform-origin"] = "0px 100% 0px", + this._setOpacity(t.opacity), + this._forceUpdate = !1 + } + } + } + }); + s.EventType = { + LOADING: 0, + LOADED: 1, + ERROR: 2, + JS_EVALUATED: 3 + }; + var a = s._polyfill = { + devicePixelRatio: !1, + enableDiv: !1 + }; + n.os === n.OS_IOS && (a.enableDiv = !0), + n.isMobile ? n.browserType === n.BROWSER_TYPE_FIREFOX && (a.enableBG = !0) : n.browserType === n.BROWSER_TYPE_IE && (a.closeHistory = !0), + e.exports = s + } + ), { + "../core/platform/CCSys": 202, + "../core/platform/utils": 217 + }], + 353: [(function(t) { + "use strict"; + t("./cocos2d/core"), + t("./cocos2d/animation"), + t("./cocos2d/particle"), + t("./cocos2d/tilemap"), + t("./cocos2d/videoplayer/CCVideoPlayer"), + t("./cocos2d/webview/CCWebView"), + t("./cocos2d/core/components/CCStudioComponent"), + t("./extensions/ccpool/CCNodePool"), + t("./cocos2d/actions"), + t("./extensions/spine"), + t("./extensions/dragonbones"), + t("./cocos2d/deprecated") + } + ), { + "./cocos2d/actions": 7, + "./cocos2d/animation": 16, + "./cocos2d/core": 160, + "./cocos2d/core/components/CCStudioComponent": 121, + "./cocos2d/deprecated": 294, + "./cocos2d/particle": 300, + "./cocos2d/particle/CCParticleAsset": 297, + "./cocos2d/tilemap": 346, + "./cocos2d/tilemap/CCTiledMapAsset": 342, + "./cocos2d/videoplayer/CCVideoPlayer": 349, + "./cocos2d/webview/CCWebView": 351, + "./extensions/ccpool/CCNodePool": 354, + "./extensions/dragonbones": 364, + "./extensions/spine": 369 + }], + 354: [(function(t, e) { + "use strict"; + cc.NodePool = function(t) { + this.poolHandlerComp = t, + this._pool = [] + } + , + cc.NodePool.prototype = { + constructor: cc.NodePool, + size: function() { + return this._pool.length + }, + clear: function() { + for (var t = this._pool.length, e = 0; e < t; ++e) + this._pool[e].destroy(); + this._pool.length = 0 + }, + put: function(t) { + if (t && -1 === this._pool.indexOf(t)) { + t.removeFromParent(!1); + var e = this.poolHandlerComp ? t.getComponent(this.poolHandlerComp) : null; + e && e.unuse && e.unuse(), + this._pool.push(t) + } + }, + get: function() { + var t = this._pool.length - 1; + if (t < 0) + return null; + var e = this._pool[t]; + this._pool.length = t; + var i = this.poolHandlerComp ? e.getComponent(this.poolHandlerComp) : null; + return i && i.reuse && i.reuse.apply(i, arguments), + e + } + }, + e.exports = cc.NodePool + } + ), {}], + 355: [(function(t, e) { + "use strict"; + var i, n, r = [], s = [], a = 0, o = 0, l = 0, h = null, c = null, u = 0, _ = 0, f = 0, d = 0, p = null, m = cc.Class({ + ctor: function() { + this._privateMode = !1, + this._inited = !1, + this._invalid = !0, + this._enableCacheAttachedInfo = !1, + this.frames = [], + this.totalTime = 0, + this.isCompleted = !1, + this._frameIdx = -1, + this._armatureInfo = null, + this._animationName = null, + this._tempSegments = null, + this._tempColors = null, + this._tempBoneInfos = null + }, + init: function(t, e) { + this._inited = !0, + this._armatureInfo = t, + this._animationName = e + }, + clear: function() { + this._inited = !1; + for (var t = 0, e = this.frames.length; t < e; t++) + this.frames[t].segments.length = 0; + this.invalidAllFrame() + }, + begin: function() { + if (this._invalid) { + var t = this._armatureInfo + , e = t.curAnimationCache; + e && e != this && (this._privateMode ? e.invalidAllFrame() : e.updateToFrame()), + t.armature.animation.play(this._animationName, 1), + t.curAnimationCache = this, + this._invalid = !1, + this._frameIdx = -1, + this.totalTime = 0, + this.isCompleted = !1 + } + }, + end: function() { + this._needToUpdate() || (this._armatureInfo.curAnimationCache = null, + this.frames.length = this._frameIdx + 1, + this.isCompleted = !0) + }, + _needToUpdate: function(t) { + return !this._armatureInfo.armature.animation.isCompleted && this.totalTime < 30 && (null == t || this._frameIdx < t) + }, + updateToFrame: function(t) { + if (this._inited && (this.begin(), + this._needToUpdate(t))) { + var e = this._armatureInfo.armature; + do { + e.advanceTime(1 / 60), + this._frameIdx++, + this._updateFrame(e, this._frameIdx), + this.totalTime += 1 / 60 + } while (this._needToUpdate(t));this.end() + } + }, + isInited: function() { + return this._inited + }, + isInvalid: function() { + return this._invalid + }, + invalidAllFrame: function() { + this.isCompleted = !1, + this._invalid = !0 + }, + updateAllFrame: function() { + this.invalidAllFrame(), + this.updateToFrame() + }, + enableCacheAttachedInfo: function() { + this._enableCacheAttachedInfo || (this._enableCacheAttachedInfo = !0, + this.invalidAllFrame()) + }, + _updateFrame: function(t, e) { + l = 0, + a = 0, + o = 0, + h = null, + c = null, + u = 0, + _ = 0, + f = 0, + d = 0, + p = null, + this.frames[e] = this.frames[e] || { + segments: [], + colors: [], + boneInfos: [], + vertices: null, + uintVert: null, + indices: null + }; + var i = this.frames[e] + , n = this._tempSegments = i.segments + , m = this._tempColors = i.colors + , y = this._tempBoneInfos = i.boneInfos; + this._traverseArmature(t, 1), + d > 0 && (m[d - 1].vfOffset = l), + m.length = d, + y.length = a; + var v = f - 1; + if (v >= 0) + if (_ > 0) { + var g = n[v]; + g.indexCount = _, + g.vfCount = 5 * u, + g.vertexCount = u, + n.length = f + } else + n.length = f - 1; + if (0 !== n.length) { + var A = i.vertices + , x = i.uintVert; + (!A || A.length < l) && (A = i.vertices = new Float32Array(l), + x = i.uintVert = new Uint32Array(A.buffer)); + for (var b = 0, C = 0; b < l; ) + A[b++] = r[C++], + A[b++] = r[C++], + A[b++] = r[C++], + A[b++] = r[C++], + x[b++] = r[C++]; + var T = i.indices; + (!T || T.length < o) && (T = i.indices = new Uint16Array(o)); + for (var S = 0; S < o; S++) + T[S] = s[S]; + i.vertices = A, + i.uintVert = x, + i.indices = T + } + }, + _traverseArmature: function(t, e) { + var m, y, v, g, A, x, b, C, T, S = this._tempColors, w = this._tempSegments, E = this._tempBoneInfos, M = r, D = s, B = t._slots, I = t._bones; + if (this._enableCacheAttachedInfo) + for (var P = 0, R = I.length; P < R; P++, + a++) { + var O = I[P] + , L = E[a]; + L || (L = E[a] = { + globalTransformMatrix: new dragonBones.Matrix + }); + var F = O.globalTransformMatrix; + L.globalTransformMatrix.copyFrom(F) + } + for (var V = 0, N = B.length; V < N; V++) + if ((v = B[V])._visible && v._displayData) + if (v.updateWorldMatrix(), + A = v._color, + v.childArmature) + this._traverseArmature(v.childArmature, e * A.a / 255); + else if (b = v.getTexture()) { + h === b.nativeUrl && c === v._blendMode || (h = b.nativeUrl, + c = v._blendMode, + (C = f - 1) >= 0 && (_ > 0 ? ((T = w[C]).indexCount = _, + T.vertexCount = u, + T.vfCount = 5 * u) : f--), + w[f] = { + tex: b, + blendMode: v._blendMode, + indexCount: 0, + vertexCount: 0, + vfCount: 0 + }, + f++, + _ = 0, + u = 0), + x = (A.a * e << 24 >>> 0) + (A.b << 16) + (A.g << 8) + A.r, + p !== x && (p = x, + d > 0 && (S[d - 1].vfOffset = l), + S[d++] = { + r: A.r, + g: A.g, + b: A.b, + a: A.a * e, + vfOffset: 0 + }), + m = v._localVertices, + y = v._indices, + g = v._worldMatrix.m; + for (var k = 0, G = m.length; k < G; ) + i = m[k++], + n = m[k++], + M[l++] = i * g[0] + n * g[4] + g[12], + M[l++] = i * g[1] + n * g[5] + g[13], + M[l++] = m[k++], + M[l++] = m[k++], + M[l++] = x; + for (var U = 0, z = y.length; U < z; U++) + D[o++] = u + y[U]; + _ += y.length, + u += m.length / 4 + } + } + }), y = cc.Class({ + ctor: function() { + this._privateMode = !1, + this._animationPool = {}, + this._armatureCache = {} + }, + enablePrivateMode: function() { + this._privateMode = !0 + }, + dispose: function() { + for (var t in this._armatureCache) { + var e = this._armatureCache[t]; + if (e) { + var i = e.armature; + i && i.dispose() + } + } + this._armatureCache = null, + this._animationPool = null + }, + _removeArmature: function(t) { + var e = this._armatureCache[t] + , i = e.animationsCache; + for (var n in i) { + var r = i[n]; + r && (this._animationPool[t + "#" + n] = r, + r.clear()) + } + var s = e.armature; + s && s.dispose(), + delete this._armatureCache[t] + }, + resetArmature: function(t) { + for (var e in this._armatureCache) + -1 != e.indexOf(t) && this._removeArmature(e) + }, + getArmatureCache: function(t, e, i) { + var n, r = this._armatureCache[e]; + if (r) + n = r.armature; + else { + var s = dragonBones.CCFactory.getInstance().buildArmatureDisplay(t, e, "", i); + if (!s || !s._armature) + return; + if (n = s._armature, + !y.canCache(n)) + return void n.dispose(); + this._armatureCache[e] = { + armature: n, + animationsCache: {}, + curAnimationCache: null + } + } + return n + }, + getAnimationCache: function(t, e) { + var i = this._armatureCache[t]; + return i ? i.animationsCache[e] : null + }, + initAnimationCache: function(t, e) { + if (!e) + return null; + var i = this._armatureCache[t] + , n = i && i.armature; + if (!n) + return null; + if (!n.animation.hasAnimation(e)) + return null; + var r = i.animationsCache + , s = r[e]; + if (!s) { + var a = t + "#" + e; + (s = this._animationPool[a]) ? delete this._animationPool[a] : (s = new m)._privateMode = this._privateMode, + s.init(i, e), + r[e] = s + } + return s + }, + invalidAnimationCache: function(t) { + var e = this._armatureCache[t]; + if (!e || !e.armature) + return null; + var i = e.animationsCache; + for (var n in i) + i[n].invalidAllFrame() + }, + updateAnimationCache: function(t, e) { + if (e) { + var i = this.initAnimationCache(t, e); + if (!i) + return; + i.updateAllFrame() + } else { + var n = this._armatureCache[t]; + if (!n || !n.armature) + return null; + var r = n.animationsCache; + for (var s in r) + r[s].updateAllFrame() + } + } + }); + y.FrameTime = 1 / 60, + y.sharedCache = new y, + y.canCache = function(t) { + for (var e = t._slots, i = 0, n = e.length; i < n; i++) + if (e[i].childArmature) + return !1; + return !0 + } + , + e.exports = y + } + ), {}], + 356: [(function(t, e) { + "use strict"; + var i = t("../../cocos2d/core/components/CCRenderComponent") + , n = t("../../cocos2d/core/event/event-target") + , r = t("../../cocos2d/core/graphics/graphics") + , s = t("../../cocos2d/core/renderer/render-flow").FLAG_POST_RENDER + , a = t("./ArmatureCache") + , o = t("./AttachUtil") + , l = cc.Enum({ + default: -1 + }) + , h = cc.Enum({ + "": 0 + }) + , c = (cc.Enum({ + REALTIME: 0 + }), + cc.Enum({ + REALTIME: 0, + SHARED_CACHE: 1, + PRIVATE_CACHE: 2 + })) + , u = cc.Class({ + name: "dragonBones.ArmatureDisplay", + extends: i, + editor: !1, + statics: { + AnimationCacheMode: c + }, + properties: { + _factory: { + default: null, + type: dragonBones.CCFactory, + serializable: !1 + }, + dragonAsset: { + default: null, + type: dragonBones.DragonBonesAsset, + notify: function() { + this._refresh() + }, + tooltip: !1 + }, + dragonAtlasAsset: { + default: null, + type: dragonBones.DragonBonesAtlasAsset, + notify: function() { + this._parseDragonAtlasAsset(), + this._refresh() + }, + tooltip: !1 + }, + _armatureName: "", + armatureName: { + get: function() { + return this._armatureName + }, + set: function(t) { + this._armatureName = t; + var e = this.getAnimationNames(this._armatureName); + (!this.animationName || e.indexOf(this.animationName) < 0) && (this.animationName = ""), + this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.remove(this._armature), + this._refresh(), + this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.add(this._armature) + }, + visible: !1 + }, + _animationName: "", + animationName: { + get: function() { + return this._animationName + }, + set: function(t) { + this._animationName = t + }, + visible: !1 + }, + _defaultArmatureIndex: { + default: 0, + notify: function() { + var t = ""; + if (this.dragonAsset) { + var e; + if (this.dragonAsset && (e = this.dragonAsset.getArmatureEnum()), + !e) + return cc.errorID(7400, this.name); + t = e[this._defaultArmatureIndex] + } + void 0 !== t ? this.armatureName = t : cc.errorID(7401, this.name) + }, + type: l, + visible: !0, + editorOnly: !0, + animatable: !1, + displayName: "Armature", + tooltip: !1 + }, + _animationIndex: { + default: 0, + notify: function() { + var t; + if (0 !== this._animationIndex) { + if (this.dragonAsset && (t = this.dragonAsset.getAnimsEnum(this.armatureName)), + t) { + var e = t[this._animationIndex]; + void 0 !== e ? this.playAnimation(e, this.playTimes) : cc.errorID(7402, this.name) + } + } else + this.animationName = "" + }, + type: h, + visible: !0, + editorOnly: !0, + animatable: !1, + displayName: "Animation", + tooltip: !1 + }, + _preCacheMode: -1, + _cacheMode: c.REALTIME, + _defaultCacheMode: { + default: 0, + type: c, + notify: function() { + if (this._defaultCacheMode !== c.REALTIME && this._armature && !a.canCache(this._armature)) + return this._defaultCacheMode = c.REALTIME, + void cc.warn("Animation cache mode doesn't support skeletal nesting"); + this.setAnimationCacheMode(this._defaultCacheMode) + }, + editorOnly: !0, + visible: !0, + animatable: !1, + displayName: "Animation Cache Mode", + tooltip: !1 + }, + timeScale: { + default: 1, + notify: function() { + this._armature && !this.isAnimationCached() && (this._armature.animation.timeScale = this.timeScale) + }, + tooltip: !1 + }, + playTimes: { + default: -1, + tooltip: !1 + }, + premultipliedAlpha: { + default: !1, + tooltip: !1 + }, + debugBones: { + default: !1, + notify: function() { + this._updateDebugDraw() + }, + tooltip: !1 + }, + enableBatch: { + default: !1, + notify: function() { + this._updateBatch() + }, + tooltip: !1 + }, + _armatureKey: "", + _accTime: 0, + _playCount: 0, + _frameCache: null, + _curFrame: null, + _playing: !1, + _armatureCache: null + }, + ctor: function() { + this._eventTarget = new n, + this._materialCache = {}, + this._inited = !1, + this.attachUtil = new o, + this._factory = dragonBones.CCFactory.getInstance() + }, + onLoad: function() { + for (var t = this.node.children, e = 0, i = t.length; e < i; e++) { + var n = t[e]; + 0 === (n._name && n._name.search("CHILD_ARMATURE-")) && n.destroy() + } + }, + _updateBatch: function() { + var t = this.getMaterial(0); + t && t.define("CC_USE_MODEL", !this.enableBatch), + this._materialCache = {} + }, + _updateMaterial: function() { + var t = this.getMaterial(0); + if (t) { + t.define("CC_USE_MODEL", !this.enableBatch), + t.define("USE_TEXTURE", !0); + var e = this.premultipliedAlpha ? cc.gfx.BLEND_ONE : cc.gfx.BLEND_SRC_ALPHA + , i = cc.gfx.BLEND_ONE_MINUS_SRC_ALPHA; + t.setBlend(!0, cc.gfx.BLEND_FUNC_ADD, e, e, cc.gfx.BLEND_FUNC_ADD, i, i) + } + this._materialCache = {} + }, + disableRender: function() { + this._super(), + this.node._renderFlag &= ~s + }, + markForRender: function(t) { + this._super(t), + t ? this.node._renderFlag |= s : this.node._renderFlag &= ~s + }, + _validateRender: function() { + var t = this.dragonAtlasAsset && this.dragonAtlasAsset.texture; + t && t.loaded ? this._super() : this.disableRender() + }, + __preload: function() { + this._init() + }, + _init: function() { + if (!this._inited) { + this._inited = !0, + this._resetAssembler(), + this._activateMaterial(), + this._parseDragonAtlasAsset(), + this._refresh(); + for (var t = this.node.children, e = 0, i = t.length; e < i; e++) { + var n = t[e]; + n && "DEBUG_DRAW_NODE" === n._name && n.destroy() + } + this._updateDebugDraw() + } + }, + getArmatureKey: function() { + return this._armatureKey + }, + setAnimationCacheMode: function(t) { + this._preCacheMode !== t && (this._cacheMode = t, + this._buildArmature(), + this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.add(this._armature)) + }, + isAnimationCached: function() { + return this._cacheMode !== c.REALTIME + }, + onEnable: function() { + this._super(), + this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.add(this._armature) + }, + onDisable: function() { + this._super(), + this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.remove(this._armature) + }, + _emitCacheCompleteEvent: function() { + this._eventTarget.emit(dragonBones.EventObject.LOOP_COMPLETE), + this._eventTarget.emit(dragonBones.EventObject.COMPLETE) + }, + update: function(t) { + if (this.isAnimationCached() && this._frameCache) { + var e = this._frameCache; + if (e.isInited()) { + var i = e.frames; + if (this._playing) { + var n = a.FrameTime; + 0 == this._accTime && 0 == this._playCount && this._eventTarget.emit(dragonBones.EventObject.START); + var r = dragonBones.timeScale; + this._accTime += t * this.timeScale * r; + var s = Math.floor(this._accTime / n); + if (e.isCompleted || e.updateToFrame(s), + e.isCompleted && s >= i.length) { + if (this._playCount++, + this.playTimes > 0 && this._playCount >= this.playTimes) + return this._curFrame = i[i.length - 1], + this._accTime = 0, + this._playing = !1, + this._playCount = 0, + void this._emitCacheCompleteEvent(); + this._accTime = 0, + s = 0, + this._emitCacheCompleteEvent() + } + this._curFrame = i[s] + } else + e.isInvalid() && (e.updateToFrame(), + this._curFrame = i[i.length - 1]) + } + } + }, + onDestroy: function() { + this._super(), + this._inited = !1, + this._cacheMode === c.PRIVATE_CACHE ? (this._armatureCache.dispose(), + this._armatureCache = null, + this._armature = null) : this._cacheMode === c.SHARED_CACHE ? (this._armatureCache = null, + this._armature = null) : this._armature && (this._armature.dispose(), + this._armature = null) + }, + _updateDebugDraw: function() { + if (this.debugBones) { + if (!this._debugDraw) { + var t = new cc.PrivateNode; + t.name = "DEBUG_DRAW_NODE"; + var e = t.addComponent(r); + e.lineWidth = 1, + e.strokeColor = cc.color(255, 0, 0, 255), + this._debugDraw = e + } + this._debugDraw.node.parent = this.node + } else + this._debugDraw && (this._debugDraw.node.parent = null) + }, + _buildArmature: function() { + if (this.dragonAsset && this.dragonAtlasAsset && this.armatureName) { + this._armature && (this._preCacheMode === c.PRIVATE_CACHE ? this._armatureCache.dispose() : this._preCacheMode === c.REALTIME && this._armature.dispose(), + this._armatureCache = null, + this._armature = null, + this._displayProxy = null, + this._frameCache = null, + this._curFrame = null, + this._playing = !1, + this._preCacheMode = null), + this._cacheMode === c.SHARED_CACHE ? this._armatureCache = a.sharedCache : this._cacheMode === c.PRIVATE_CACHE && (this._armatureCache = new a, + this._armatureCache.enablePrivateMode()); + var t = this.dragonAtlasAsset._uuid; + if (this._armatureKey = this.dragonAsset.init(this._factory, t), + this.isAnimationCached() && (this._armature = this._armatureCache.getArmatureCache(this.armatureName, this._armatureKey, t), + this._armature || (this._cacheMode = c.REALTIME)), + this._preCacheMode = this._cacheMode, + this._cacheMode === c.REALTIME) { + if (this._displayProxy = this._factory.buildArmatureDisplay(this.armatureName, this._armatureKey, "", t), + !this._displayProxy) + return; + this._displayProxy._ccNode = this.node, + this._displayProxy.setEventTarget(this._eventTarget), + this._armature = this._displayProxy._armature, + this._armature.animation.timeScale = this.timeScale + } + if (this._cacheMode !== c.REALTIME && this.debugBones && cc.warn("Debug bones is invalid in cached mode"), + this._armature) { + var e = this._armature.armatureData.aabb; + this.node.setContentSize(e.width, e.height) + } + this._updateBatch(), + this.attachUtil.init(this), + this.attachUtil._associateAttachedNode(), + this.animationName && this.playAnimation(this.animationName, this.playTimes), + this.markForRender(!0) + } + }, + _parseDragonAtlasAsset: function() { + this.dragonAtlasAsset && this.dragonAtlasAsset.init(this._factory) + }, + _refresh: function() { + this._buildArmature() + }, + _updateCacheModeEnum: !1, + _updateAnimEnum: !1, + _updateArmatureEnum: !1, + playAnimation: function(t, e) { + if (this.playTimes = void 0 === e ? -1 : e, + this.animationName = t, + this.isAnimationCached()) { + var i = this._armatureCache.getAnimationCache(this._armatureKey, t); + i || (i = this._armatureCache.initAnimationCache(this._armatureKey, t)), + i && (this._accTime = 0, + this._playCount = 0, + this._frameCache = i, + this.attachUtil._hasAttachedNode() && this._frameCache.enableCacheAttachedInfo(), + this._frameCache.updateToFrame(0), + this._playing = !0, + this._curFrame = this._frameCache.frames[0]) + } else if (this._armature) + return this._armature.animation.play(t, this.playTimes) + }, + updateAnimationCache: function(t) { + this.isAnimationCached() && this._armatureCache.updateAnimationCache(this._armatureKey, t) + }, + invalidAnimationCache: function() { + this.isAnimationCached() && this._armatureCache.invalidAnimationCache(this._armatureKey) + }, + getArmatureNames: function() { + var t = this._factory.getDragonBonesData(this._armatureKey); + return t && t.armatureNames || [] + }, + getAnimationNames: function(t) { + var e = [] + , i = this._factory.getDragonBonesData(this._armatureKey); + if (i) { + var n = i.getArmature(t); + if (n) + for (var r in n.animations) + n.animations.hasOwnProperty(r) && e.push(r) + } + return e + }, + on: function(t, e, i) { + this.addEventListener(t, e, i) + }, + off: function(t, e, i) { + this.removeEventListener(t, e, i) + }, + once: function(t, e, i) { + this._eventTarget.once(t, e, i) + }, + addEventListener: function(t, e, i) { + this._eventTarget.on(t, e, i) + }, + removeEventListener: function(t, e, i) { + this._eventTarget.off(t, e, i) + }, + buildArmature: function(t, e) { + return this._factory.createArmatureNode(this, t, e) + }, + armature: function() { + return this._armature + } + }); + e.exports = dragonBones.ArmatureDisplay = u + } + ), { + "../../cocos2d/core/components/CCRenderComponent": 115, + "../../cocos2d/core/event/event-target": 140, + "../../cocos2d/core/graphics/graphics": 156, + "../../cocos2d/core/renderer/render-flow": 225, + "./ArmatureCache": 355, + "./AttachUtil": 357 + }], + 357: [(function(t, e) { + "use strict"; + var i, n = (i = t("../../cocos2d/core/value-types/mat4")) && i.__esModule ? i : { + default: i + }, r = t("../../cocos2d/core/renderer/render-flow").FLAG_TRANSFORM, s = function() {}, a = function(t) { + Object.defineProperty(t, "_worldMatDirty", { + get: function() { + return !0 + }, + set: function() {} + }), + t._calculWorldMatrix = s, + t._mulMat = s + }, o = new n.default, l = cc.Class({ + name: "dragonBones.AttachUtil", + ctor: function() { + this._inited = !1, + this._armature = null, + this._armatureNode = null, + this._armatureDisplay = null, + this._attachedRootNode = null, + this._attachedNodeArray = [], + this._boneIndexToNode = {} + }, + init: function(t) { + this._inited = !0, + this._armature = t._armature, + this._armatureNode = t.node, + this._armatureDisplay = t + }, + reset: function() { + this._inited = !1, + this._armature = null, + this._armatureNode = null, + this._armatureDisplay = null + }, + _prepareAttachNode: function() { + if (this._armature) { + var t = this._armatureNode.getChildByName("ATTACHED_NODE_TREE"); + return t && t.isValid || (t = new cc.Node("ATTACHED_NODE_TREE"), + a(t), + this._armatureNode.addChild(t)), + this._armatureDisplay.isAnimationCached() && this._armatureDisplay._frameCache && this._armatureDisplay._frameCache.enableCacheAttachedInfo(), + this._attachedRootNode = t, + t + } + }, + _buildBoneAttachedNode: function(t, e) { + var i = "ATTACHED_NODE:" + t.name + , n = new cc.Node(i); + return this._buildBoneRelation(n, t, e), + n + }, + _buildBoneRelation: function(t, e, i) { + a(t), + t._bone = e, + t._boneIndex = i, + this._attachedNodeArray.push(t), + this._boneIndexToNode[i] = t + }, + getAttachedRootNode: function() { + return this._attachedRootNode + }, + getAttachedNodes: function(t) { + var e = this._attachedNodeArray + , i = []; + if (!this._inited) + return i; + for (var n = 0, r = e.length; n < r; n++) { + var s = e[n]; + s && s.isValid && s.name === "ATTACHED_NODE:" + t && i.push(s) + } + return i + }, + _rebuildNodeArray: function() { + for (var t = this._boneIndexToNode = {}, e = this._attachedNodeArray, i = this._attachedNodeArray = [], n = 0, r = e.length; n < r; n++) { + var s = e[n]; + s && s.isValid && !s._toRemove && (i.push(s), + t[s._boneIndex] = s) + } + }, + _sortNodeArray: function() { + this._attachedNodeArray.sort((function(t, e) { + return t._boneIndex < e._boneIndex ? -1 : 1 + } + )) + }, + _getNodeByBoneIndex: function(t) { + var e = this._boneIndexToNode[t]; + return e && e.isValid ? e : null + }, + destroyAttachedNodes: function(t) { + if (this._inited) { + for (var e = this._attachedNodeArray, i = function t(e) { + for (var i = e.children, n = 0, r = i.length; n < r; n++) { + var s = i[n]; + s && t(s) + } + e._toRemove = !0 + }, n = 0, r = e.length; n < r; n++) { + var s = e[n]; + s && s.isValid && s.name.split("ATTACHED_NODE:")[1] === t && (i(s), + s.removeFromParent(!0), + s.destroy(), + e[n] = null) + } + this._rebuildNodeArray() + } + }, + generateAttachedNodes: function(t) { + var e = []; + if (!this._inited) + return e; + var i = this._prepareAttachNode(); + if (!i) + return e; + var n = 0 + , r = [] + , s = function(e) { + if (e) { + for (var i, a = e.getBones(), o = 0, l = a.length; o < l; o++) + (i = a[o])._boneIndex = n++, + t === i.name && r.push(i); + for (var h, c = e.getSlots(), u = 0, _ = c.length; u < _; u++) + (h = c[u]).childArmature && s(h.childArmature) + } + } + .bind(this); + s(this._armature); + for (var a = function(t) { + if (t) { + var e = this._getNodeByBoneIndex(t._boneIndex); + if (e) + return e; + e = this._buildBoneAttachedNode(t, t._boneIndex); + var n = null; + t.armature.parent && (n = t.armature.parent.parent); + var r = a(t.parent || n) || i; + return e.parent = r, + t.parent ? e._rootNode = r._rootNode : e._rootNode = r, + e + } + } + .bind(this), o = 0, l = r.length; o < l; o++) { + var h = a(r[o]); + h && e.push(h) + } + return this._sortNodeArray(), + e + }, + destroyAllAttachedNodes: function() { + if (this._attachedRootNode = null, + this._attachedNodeArray.length = 0, + this._boneIndexToNode = {}, + this._inited) { + var t = this._armatureNode.getChildByName("ATTACHED_NODE_TREE"); + t && (t.removeFromParent(!0), + t.destroy(), + t = null) + } + }, + generateAllAttachedNodes: function() { + if (this._inited) { + this._boneIndexToNode = {}, + this._attachedNodeArray.length = 0; + var t = this._prepareAttachNode(); + if (t) { + var e = 0 + , i = function(n) { + if (n) { + var r = t; + n.parent && (r = n.parent.parent._attachedNode); + for (var s, a = n.getBones(), o = 0, l = a.length; o < l; o++) { + var h = e++; + (s = a[o])._attachedNode = null; + var c = null; + if (c = s.parent ? s.parent._attachedNode : r) { + var u = c.getChildByName("ATTACHED_NODE:" + s.name); + u && u.isValid ? this._buildBoneRelation(u, s, h) : (u = this._buildBoneAttachedNode(s, h), + c.addChild(u)), + u._rootNode = r, + s._attachedNode = u + } + } + for (var _, f = n.getSlots(), d = 0, p = f.length; d < p; d++) + (_ = f[d]).childArmature && i(_.childArmature) + } + } + .bind(this); + return i(this._armature), + t + } + } + }, + _hasAttachedNode: function() { + return !!this._inited && !!this._armatureNode.getChildByName("ATTACHED_NODE_TREE") + }, + _associateAttachedNode: function() { + if (this._inited) { + var t = this._armatureNode.getChildByName("ATTACHED_NODE_TREE"); + if (t && t.isValid) { + this._attachedRootNode = t, + this._boneIndexToNode = {}, + this._attachedNodeArray.length = 0; + var e = this._armature; + if (e) { + a(t), + this._armatureDisplay.isAnimationCached() && this._armatureDisplay._frameCache && this._armatureDisplay._frameCache.enableCacheAttachedInfo(); + var i = 0 + , n = function(e) { + if (e) { + var r = t; + e.parent && (r = e.parent.parent._attachedNode); + for (var s, a = e.getBones(), o = 0, l = a.length; o < l; o++) { + var h = i++; + (s = a[o])._attachedNode = null; + var c = null; + if (c = s.parent ? s.parent._attachedNode : r) { + var u = c.getChildByName("ATTACHED_NODE:" + s.name); + u && u.isValid && (this._buildBoneRelation(u, s, h), + u._rootNode = r, + s._attachedNode = u) + } + } + for (var _, f = e.getSlots(), d = 0, p = f.length; d < p; d++) + (_ = f[d]).childArmature && n(_.childArmature) + } + } + .bind(this); + n(e) + } + } + } + }, + _syncAttachedNode: function() { + if (this._inited) { + var t = this._attachedRootNode + , e = this._attachedNodeArray; + if (!t || !t.isValid) + return this._attachedRootNode = null, + void (e.length = 0); + var i = this._armatureNode._worldMatrix; + n.default.copy(t._worldMatrix, i), + t._renderFlag &= ~r; + var s = null + , a = this._armatureDisplay.isAnimationCached(); + if (!a || (s = this._armatureDisplay._curFrame && this._armatureDisplay._curFrame.boneInfos)) { + for (var l, h, c, u, _ = this._armatureNode._mulMat, f = !1, d = 0, p = e.length; d < p; d++) { + var m = e[d]; + if (m && m.isValid) { + var y = a ? s[m._boneIndex] : m._bone; + y && !y._isInPool ? (l = m._worldMatrix, + h = m._rootNode._worldMatrix, + c = y.globalTransformMatrix, + u = void 0, + (u = o.m)[0] = c.a, + u[1] = c.b, + u[4] = -c.c, + u[5] = -c.d, + u[12] = c.tx, + u[13] = c.ty, + _(l, h, o), + m._renderFlag &= ~r) : (m.removeFromParent(!0), + m.destroy(), + e[d] = null, + f = !0) + } else + e[d] = null, + f = !0 + } + f && this._rebuildNodeArray() + } + } + } + }); + e.exports = dragonBones.AttachUtil = l + } + ), { + "../../cocos2d/core/renderer/render-flow": 225, + "../../cocos2d/core/value-types/mat4": 284 + }], + 358: [(function(t) { + "use strict"; + var e = t("../../cocos2d/core/event/event-target"); + dragonBones.CCArmatureDisplay = cc.Class({ + name: "dragonBones.CCArmatureDisplay", + properties: { + node: { + get: function() { + return this + } + } + }, + ctor: function() { + this._eventTarget = new e + }, + setEventTarget: function(t) { + this._eventTarget = t + }, + getRootDisplay: function() { + var t, e = this._armature._parent; + if (!e) + return this; + for (; e; ) + t = e, + e = e._armature._parent; + return t._armature.getDisplay() + }, + convertToRootSpace: function(t) { + var e = this._armature._parent; + if (!e) + return t; + e.updateWorldMatrix(); + var i = e._worldMatrix.m + , n = cc.v2(0, 0); + return n.x = t.x * i[0] + t.y * i[4] + i[12], + n.y = t.x * i[1] + t.y * i[5] + i[13], + n + }, + convertToWorldSpace: function(t) { + var e = this.convertToRootSpace(t); + return this.getRootNode().convertToWorldSpaceAR(e) + }, + getRootNode: function() { + var t = this.getRootDisplay(); + return t && t._ccNode + }, + dbInit: function(t) { + this._armature = t + }, + dbClear: function() { + this._armature = null + }, + dbUpdate: function() {}, + advanceTimeBySelf: function(t) { + this.shouldAdvanced = !!t + }, + hasDBEventListener: function(t) { + return this._eventTarget.hasEventListener(t) + }, + addDBEventListener: function(t, e, i) { + this._eventTarget.on(t, e, i) + }, + removeDBEventListener: function(t, e, i) { + this._eventTarget.off(t, e, i) + }, + dispatchDBEvent: function(t, e) { + this._eventTarget.emit(t, e) + } + }) + } + ), { + "../../cocos2d/core/event/event-target": 140 + }], + 359: [(function() { + "use strict"; + var t = dragonBones.BaseObject + , e = dragonBones.BaseFactory + , i = dragonBones.CCFactory = cc.Class({ + name: "dragonBones.CCFactory", + extends: e, + statics: { + _factory: null, + getInstance: function() { + return i._factory || (i._factory = new i), + i._factory + } + }, + ctor: function() { + var t = new dragonBones.CCArmatureDisplay; + this._dragonBones = new dragonBones.DragonBones(t), + cc.director._scheduler && (cc.game.on(cc.game.EVENT_RESTART, this.initUpdate, this), + this.initUpdate()) + }, + initUpdate: function() { + cc.director._scheduler.enableForTarget(this), + cc.director._scheduler.scheduleUpdate(this, cc.Scheduler.PRIORITY_SYSTEM, !1) + }, + update: function(t) { + this._dragonBones.advanceTime(t) + }, + getDragonBonesDataByRawData: function(t) { + return (t instanceof ArrayBuffer ? e._binaryParser : this._dataParser).parseDragonBonesData(t, 1) + }, + buildArmatureDisplay: function(t, e, i, n) { + var r = this.buildArmature(t, e, i, n); + return r && r._display + }, + createArmatureNode: function(t, e, i) { + var n = (i = i || new cc.Node).getComponent(dragonBones.ArmatureDisplay); + return n || (n = i.addComponent(dragonBones.ArmatureDisplay)), + i.name = e, + n._armatureName = e, + n._N$dragonAsset = t.dragonAsset, + n._N$dragonAtlasAsset = t.dragonAtlasAsset, + n._init(), + n + }, + _buildTextureAtlasData: function(e, i) { + return e ? e.renderTexture = i : e = t.borrowObject(dragonBones.CCTextureAtlasData), + e + }, + _sortSlots: function() { + for (var t = this._slots, e = [], i = 0, n = t.length; i < n; i++) { + for (var r = t[i], s = r._zOrder, a = !1, o = e.length - 1; o >= 0; o--) + if (s >= e[o]._zOrder) { + e.splice(o + 1, 0, r), + a = !0; + break + } + a || e.splice(0, 0, r) + } + this._slots = e + }, + _buildArmature: function(e) { + var i = t.borrowObject(dragonBones.Armature); + i._skinData = e.skin, + i._animation = t.borrowObject(dragonBones.Animation), + i._animation._armature = i, + i._animation.animations = e.armature.animations, + i._isChildArmature = !1; + var n = new dragonBones.CCArmatureDisplay; + return i.init(e.armature, n, n, this._dragonBones), + i + }, + _buildSlot: function(e, i, n) { + var r = t.borrowObject(dragonBones.CCSlot) + , s = r; + return r.init(i, n, s, s), + r + }, + getDragonBonesDataByUUID: function(t) { + for (var e in this._dragonBonesDataMap) + if (-1 != e.indexOf(t)) + return this._dragonBonesDataMap[e]; + return null + }, + removeDragonBonesDataByUUID: function(t, e) { + for (var i in void 0 === e && (e = !0), + this._dragonBonesDataMap) + -1 !== i.indexOf(t) && (e && this._dragonBones.bufferObject(this._dragonBonesDataMap[i]), + delete this._dragonBonesDataMap[i]) + } + }) + } + ), {}], + 360: [(function(t) { + "use strict"; + var e, i = (e = t("../../cocos2d/core/value-types/mat4")) && e.__esModule ? e : { + default: e + }, n = dragonBones.BinaryOffset, r = dragonBones.BoneType; + dragonBones.CCSlot = cc.Class({ + name: "dragonBones.CCSlot", + extends: dragonBones.Slot, + ctor: function() { + this._localVertices = [], + this._indices = [], + this._matrix = cc.mat4(), + this._worldMatrix = cc.mat4(), + this._worldMatrixDirty = !0, + this._visible = !1, + this._color = cc.color() + }, + _onClear: function() { + this._super(), + this._localVertices.length = 0, + this._indices.length = 0, + i.default.identity(this._matrix), + i.default.identity(this._worldMatrix), + this._worldMatrixDirty = !0, + this._color = cc.color(), + this._visible = !1 + }, + statics: { + toString: function() { + return "[class dragonBones.CCSlot]" + } + }, + _onUpdateDisplay: function() {}, + _initDisplay: function() {}, + _addDisplay: function() { + this._visible = !0 + }, + _replaceDisplay: function() {}, + _removeDisplay: function() { + this._visible = !1 + }, + _disposeDisplay: function() {}, + _updateVisible: function() { + this._visible = this.parent._visible + }, + _updateZOrder: function() {}, + _updateBlendMode: function() { + if (this._childArmature) + for (var t = this._childArmature.getSlots(), e = 0, i = t.length; e < i; e++) { + var n = t[e]; + n._blendMode = this._blendMode, + n._updateBlendMode() + } + }, + _updateColor: function() { + var t = this._color; + t.r = 255 * this._colorTransform.redMultiplier, + t.g = 255 * this._colorTransform.greenMultiplier, + t.b = 255 * this._colorTransform.blueMultiplier, + t.a = 255 * this._colorTransform.alphaMultiplier + }, + getTexture: function() { + return this._textureData && this._textureData.spriteFrame && this._textureData.spriteFrame.getTexture() + }, + _updateFrame: function() { + this._indices.length = 0; + var t = this._indices + , e = this._localVertices + , i = 0 + , r = 0 + , s = this._textureData; + if (this._display && !(this._displayIndex < 0) && s && s.spriteFrame) { + var a = s.spriteFrame.getTexture() + , o = a.width + , l = a.height + , h = s.region + , c = null !== this._deformVertices && this._display === this._meshDisplay ? this._deformVertices.verticesData : null; + if (c) { + var u = c.data + , _ = u.intArray + , f = u.floatArray + , d = _[c.offset + n.MeshVertexCount] + , p = _[c.offset + n.MeshTriangleCount] + , m = _[c.offset + n.MeshFloatOffset]; + m < 0 && (m += 65536); + for (var y = m + 2 * d, v = this._armature._armatureData.scale, g = 0, A = 2 * d; g < A; g += 2) + e[r++] = f[m + g] * v, + e[r++] = -f[m + g + 1] * v, + c.rotated ? (e[r++] = (h.x + (1 - f[y + g]) * h.width) / o, + e[r++] = (h.y + f[y + g + 1] * h.height) / l) : (e[r++] = (h.x + f[y + g] * h.width) / o, + e[r++] = (h.y + f[y + g + 1] * h.height) / l); + for (var x = 0; x < 3 * p; ++x) + t[i++] = _[c.offset + n.MeshVertexIndices + x]; + e.length = r, + t.length = i, + c.weight && this._identityTransform() + } else { + var b = h.x / o + , C = (h.y + h.height) / l + , T = (h.x + h.width) / o + , S = h.y / l; + e[r++] = 0, + e[r++] = 0, + e[r++] = b, + e[r++] = C, + e[r++] = h.width, + e[r++] = 0, + e[r++] = T, + e[r++] = C, + e[r++] = 0, + e[r++] = h.height, + e[r++] = b, + e[r++] = S, + e[r++] = h.width, + e[r++] = h.height, + e[r++] = T, + e[r++] = S, + t[0] = 0, + t[1] = 1, + t[2] = 2, + t[3] = 1, + t[4] = 3, + t[5] = 2, + e.length = r, + t.length = 6 + } + this._visibleDirty = !0, + this._blendModeDirty = !0, + this._colorDirty = !0 + } + }, + _updateMesh: function() { + var t = this._armature._armatureData.scale + , e = this._deformVertices.vertices + , i = this._deformVertices.bones + , s = this._deformVertices.verticesData + , a = s.weight + , o = e.length > 0 && s.inheritDeform + , l = this._localVertices; + if (a) { + var h = s.data + , c = h.intArray + , u = h.floatArray + , _ = c[s.offset + n.MeshVertexCount] + , f = c[a.offset + n.WeigthFloatOffset]; + f < 0 && (f += 65536); + for (var d = 0, p = a.offset + n.WeigthBoneIndices + i.length, m = f, y = 0, v = 0; d < _; d++, + v += 4) { + for (var g = c[p++], A = 0, x = 0, b = 0; b < g; ++b) { + var C = i[c[p++]]; + if (null !== C) { + var T = C.globalTransformMatrix + , S = u[m++] + , w = u[m++] * t + , E = u[m++] * t; + o && (w += e[y++], + E += e[y++]), + A += (T.a * w + T.c * E + T.tx) * S, + x += (T.b * w + T.d * E + T.ty) * S + } + } + l[v] = A, + l[v + 1] = -x + } + } else if (o) { + var M = this._parent._boneData.type !== r.Bone + , D = s.data + , B = D.intArray + , I = D.floatArray + , P = B[s.offset + n.MeshVertexCount] + , R = B[s.offset + n.MeshFloatOffset]; + R < 0 && (R += 65536); + for (var O = 0, L = P, F = 0; O < L; O++, + F += 4) { + var V = I[R + 2 * O] * t + e[2 * O] + , N = I[R + 2 * O + 1] * t + e[2 * O + 1]; + if (M) { + var k = this._parent._getGlobalTransformMatrix(V, N); + l[F] = k.a * V + k.c * N + k.tx, + l[F + 1] = -k.b * V + k.d * N + k.ty + } else + l[F] = V, + l[F + 1] = -N + } + } + a && this._identityTransform() + }, + _identityTransform: function() { + var t = this._matrix.m; + t[0] = 1, + t[1] = 0, + t[4] = -0, + t[5] = -1, + t[12] = 0, + t[13] = 0, + this._worldMatrixDirty = !0 + }, + _updateTransform: function() { + var t = this._matrix.m; + t[0] = this.globalTransformMatrix.a, + t[1] = this.globalTransformMatrix.b, + t[4] = -this.globalTransformMatrix.c, + t[5] = -this.globalTransformMatrix.d, + this._childArmature ? (t[12] = this.globalTransformMatrix.tx, + t[13] = this.globalTransformMatrix.ty) : (t[12] = this.globalTransformMatrix.tx - (this.globalTransformMatrix.a * this._pivotX - this.globalTransformMatrix.c * this._pivotY), + t[13] = this.globalTransformMatrix.ty - (this.globalTransformMatrix.b * this._pivotX - this.globalTransformMatrix.d * this._pivotY)), + this._worldMatrixDirty = !0 + }, + updateWorldMatrix: function() { + if (this._armature) { + var t = this._armature._parent; + if (t && t.updateWorldMatrix(), + this._worldMatrixDirty) { + this.calculWorldMatrix(); + var e = this.childArmature; + if (!e) + return; + for (var i = e.getSlots(), n = 0, r = i.length; n < r; n++) { + var s = i[n]; + s && (s._worldMatrixDirty = !0) + } + } + } + }, + _mulMat: function(t, e, i) { + var n = e.m + , r = i.m + , s = t.m + , a = n[0] + , o = n[1] + , l = n[4] + , h = n[5] + , c = n[12] + , u = n[13] + , _ = r[0] + , f = r[1] + , d = r[4] + , p = r[5] + , m = r[12] + , y = r[13]; + 0 !== o || 0 !== l ? (s[0] = _ * a + f * l, + s[1] = _ * o + f * h, + s[4] = d * a + p * l, + s[5] = d * o + p * h, + s[12] = a * m + l * y + c, + s[13] = o * m + h * y + u) : (s[0] = _ * a, + s[1] = f * h, + s[4] = d * a, + s[5] = p * h, + s[12] = a * m + c, + s[13] = h * y + u) + }, + calculWorldMatrix: function() { + var t = this._armature._parent; + t ? this._mulMat(this._worldMatrix, t._worldMatrix, this._matrix) : i.default.copy(this._worldMatrix, this._matrix), + this._worldMatrixDirty = !1 + } + }) + } + ), { + "../../cocos2d/core/value-types/mat4": 284 + }], + 361: [(function() { + "use strict"; + dragonBones.CCTextureAtlasData = cc.Class({ + extends: dragonBones.TextureAtlasData, + name: "dragonBones.CCTextureAtlasData", + properties: { + _renderTexture: { + default: null, + serializable: !1 + }, + renderTexture: { + get: function() { + return this._renderTexture + }, + set: function(t) { + if (this._renderTexture = t, + t) + for (var e in this.textures) { + var i = this.textures[e]; + if (!i.spriteFrame) { + var n; + n = i.rotated ? cc.rect(i.region.x, i.region.y, i.region.height, i.region.width) : cc.rect(i.region.x, i.region.y, i.region.width, i.region.height); + var r = cc.v2(0, 0) + , s = cc.size(n.width, n.height); + i.spriteFrame = new cc.SpriteFrame, + i.spriteFrame.setTexture(t, n, !1, r, s) + } + } + else + for (var a in this.textures) + this.textures[a].spriteFrame = null + } + } + }, + statics: { + toString: function() { + return "[class dragonBones.CCTextureAtlasData]" + } + }, + _onClear: function() { + dragonBones.TextureAtlasData.prototype._onClear.call(this), + this.renderTexture = null + }, + createTexture: function() { + return dragonBones.BaseObject.borrowObject(dragonBones.CCTextureData) + } + }), + dragonBones.CCTextureData = cc.Class({ + extends: dragonBones.TextureData, + name: "dragonBones.CCTextureData", + properties: { + spriteFrame: { + default: null, + serializable: !1 + } + }, + statics: { + toString: function() { + return "[class dragonBones.CCTextureData]" + } + }, + _onClear: function() { + dragonBones.TextureData.prototype._onClear.call(this), + this.spriteFrame = null + } + }) + } + ), {}], + 362: [(function(t, e) { + "use strict"; + var i = t("./ArmatureCache").sharedCache + , n = cc.Class({ + name: "dragonBones.DragonBonesAsset", + extends: cc.Asset, + ctor: function() { + this.reset() + }, + properties: { + _dragonBonesJson: "", + dragonBonesJson: { + get: function() { + return this._dragonBonesJson + }, + set: function(t) { + this._dragonBonesJson = t, + this._dragonBonesJsonData = JSON.parse(t), + this.reset() + } + }, + _nativeAsset: { + get: function() { + return this._buffer + }, + set: function(t) { + this._buffer = t.buffer || t, + this.reset() + }, + override: !0 + } + }, + statics: { + preventDeferredLoadDependents: !0 + }, + createNode: !1, + reset: function() { + this._clear() + }, + init: function(t, e) { + this._factory = t, + !this._dragonBonesJsonData && this.dragonBonesJson && (this._dragonBonesJsonData = JSON.parse(this.dragonBonesJson)); + var i; + if (i = this._dragonBonesJsonData ? this._dragonBonesJsonData : this._nativeAsset, + !this._uuid) { + var n = this._factory.getDragonBonesDataByRawData(i); + n ? this._uuid = n.name : cc.warn("dragonbones name is empty") + } + var r = this._uuid + "#" + e; + return this._factory.getDragonBonesData(r) ? r : (this._factory.parseDragonBonesData(i, r), + r) + }, + getArmatureEnum: !1, + getAnimsEnum: !1, + _clear: function() { + this._factory && (i.resetArmature(this._uuid), + this._factory.removeDragonBonesDataByUUID(this._uuid, !0)) + }, + destroy: function() { + this._clear(), + this._super() + } + }); + dragonBones.DragonBonesAsset = e.exports = n + } + ), { + "./ArmatureCache": 355 + }], + 363: [(function(t, e) { + "use strict"; + var i = t("./ArmatureCache").sharedCache + , n = cc.Class({ + name: "dragonBones.DragonBonesAtlasAsset", + extends: cc.Asset, + ctor: function() { + this._clear() + }, + properties: { + _atlasJson: "", + atlasJson: { + get: function() { + return this._atlasJson + }, + set: function(t) { + this._atlasJson = t, + this._atlasJsonData = JSON.parse(this.atlasJson), + this._clear() + } + }, + _texture: { + default: null, + type: cc.Texture2D, + formerlySerializedAs: "texture" + }, + texture: { + get: function() { + return this._texture + }, + set: function(t) { + this._texture = t, + this._clear() + } + }, + _textureAtlasData: null + }, + statics: { + preventDeferredLoadDependents: !0 + }, + createNode: !1, + init: function(t) { + this._factory = t, + this._atlasJsonData || (this._atlasJsonData = JSON.parse(this.atlasJson)); + var e = this._atlasJsonData; + this._uuid = this._uuid || e.name, + this._textureAtlasData ? t.addTextureAtlasData(this._textureAtlasData, this._uuid) : this._textureAtlasData = t.parseTextureAtlasData(e, this.texture, this._uuid) + }, + _clear: function() { + this._factory && (i.resetArmature(this._uuid), + this._factory.removeTextureAtlasData(this._uuid, !0), + this._factory.removeDragonBonesDataByUUID(this._uuid, !0)), + this._textureAtlasData = null + }, + destroy: function() { + this._clear(), + this._super() + } + }); + dragonBones.DragonBonesAtlasAsset = e.exports = n + } + ), { + "./ArmatureCache": 355 + }], + 364: [(function(t) { + "use strict"; + var e = "undefined" == typeof window ? global : window; + e.dragonBones = t("./lib/dragonBones"), + void 0 !== e.dragonBones && (dragonBones._timeScale = 1, + Object.defineProperty(dragonBones, "timeScale", { + get: function() { + return this._timeScale + }, + set: function(t) { + this._timeScale = t, + this.CCFactory.getInstance()._dragonBones.clock.timeScale = t + }, + configurable: !0 + }), + dragonBones.DisplayType = { + Image: 0, + Armature: 1, + Mesh: 2 + }, + dragonBones.ArmatureType = { + Armature: 0, + MovieClip: 1, + Stage: 2 + }, + dragonBones.ExtensionType = { + FFD: 0, + AdjustColor: 10, + BevelFilter: 11, + BlurFilter: 12, + DropShadowFilter: 13, + GlowFilter: 14, + GradientBevelFilter: 15, + GradientGlowFilter: 16 + }, + dragonBones.EventType = { + Frame: 0, + Sound: 1 + }, + dragonBones.ActionType = { + Play: 0, + Stop: 1, + GotoAndPlay: 2, + GotoAndStop: 3, + FadeIn: 4, + FadeOut: 5 + }, + dragonBones.AnimationFadeOutMode = { + None: 0, + SameLayer: 1, + SameGroup: 2, + SameLayerAndGroup: 3, + All: 4 + }, + dragonBones.BinaryOffset = { + WeigthBoneCount: 0, + WeigthFloatOffset: 1, + WeigthBoneIndices: 2, + MeshVertexCount: 0, + MeshTriangleCount: 1, + MeshFloatOffset: 2, + MeshWeightOffset: 3, + MeshVertexIndices: 4, + TimelineScale: 0, + TimelineOffset: 1, + TimelineKeyFrameCount: 2, + TimelineFrameValueCount: 3, + TimelineFrameValueOffset: 4, + TimelineFrameOffset: 5, + FramePosition: 0, + FrameTweenType: 1, + FrameTweenEasingOrCurveSampleCount: 2, + FrameCurveSamples: 3, + DeformMeshOffset: 0, + DeformCount: 1, + DeformValueCount: 2, + DeformValueOffset: 3, + DeformFloatOffset: 4 + }, + dragonBones.BoneType = { + Bone: 0, + Surface: 1 + }, + t("./CCFactory"), + t("./CCSlot"), + t("./CCTextureData"), + t("./CCArmatureDisplay"), + t("./ArmatureCache"), + t("./DragonBonesAsset"), + t("./DragonBonesAtlasAsset"), + t("./ArmatureDisplay"), + t("./webgl-assembler")) + } + ), { + "./ArmatureCache": 355, + "./ArmatureDisplay": 356, + "./CCArmatureDisplay": 358, + "./CCFactory": 359, + "./CCSlot": 360, + "./CCTextureData": 361, + "./DragonBonesAsset": 362, + "./DragonBonesAtlasAsset": 363, + "./lib/dragonBones": 365, + "./webgl-assembler": 366 + }], + 365: [(function(t, e) { + "use strict"; + var i, n, r, s = Object.setPrototypeOf || Array; + r || (r = {}), + (function(t) { + var e = (function() { + function e(i) { + this._clock = new t.WorldClock, + this._events = [], + this._objects = [], + this._eventManager = null, + this._eventManager = i, + console.info("DragonBones: " + e.VERSION + "\nWebsite: http://dragonbones.com/\nSource and Demo: https://github.com/DragonBones/") + } + return e.prototype.advanceTime = function(e) { + if (this._objects.length > 0) { + for (var i = 0, n = this._objects; i < n.length; i++) + n[i].returnToPool(); + this._objects.length = 0 + } + if (this._clock.advanceTime(e), + this._events.length > 0) { + for (var r = 0; r < this._events.length; ++r) { + var s = this._events[r] + , a = s.armature; + null !== a._armatureData && (a.eventDispatcher.dispatchDBEvent(s.type, s), + s.type === t.EventObject.SOUND_EVENT && this._eventManager.dispatchDBEvent(s.type, s)), + this.bufferObject(s) + } + this._events.length = 0 + } + } + , + e.prototype.bufferEvent = function(t) { + this._events.indexOf(t) < 0 && this._events.push(t) + } + , + e.prototype.bufferObject = function(t) { + this._objects.indexOf(t) < 0 && this._objects.push(t) + } + , + Object.defineProperty(e.prototype, "clock", { + get: function() { + return this._clock + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "eventManager", { + get: function() { + return this._eventManager + }, + enumerable: !0, + configurable: !0 + }), + e.VERSION = "5.6.300", + e.yDown = !1, + e.debug = !1, + e.debugDraw = !1, + e.webAssembly = !1, + e + } + )(); + t.DragonBones = e + } + )(r || (r = {})), + console.warn || (console.warn = function() {} + ), + console.assert || (console.assert = function() {} + ), + Date.now || (Date.now = function() { + return (new Date).getTime() + } + ), + s = function(t, e) { + function i() { + this.constructor = t + } + for (var n in e) + e.hasOwnProperty(n) && (t[n] = e[n]); + i.prototype = e.prototype, + t.prototype = new i + } + , + (function(t) { + var e = (function() { + function t() { + this.hashCode = t._hashCode++, + this._isInPool = !1 + } + return t._returnObject = function(e) { + var i = String(e.constructor) + , n = i in t._maxCountMap ? t._maxCountMap[i] : t._defaultMaxCount + , r = t._poolsMap[i] = t._poolsMap[i] || []; + r.length < n && (e._isInPool ? console.warn("The object is already in the pool.") : (e._isInPool = !0, + r.push(e))) + } + , + t.toString = function() { + throw new Error + } + , + t.setMaxCount = function(e, i) { + if ((i < 0 || i != i) && (i = 0), + null !== e) + null !== (r = (n = String(e))in t._poolsMap ? t._poolsMap[n] : null) && r.length > i && (r.length = i), + t._maxCountMap[n] = i; + else + for (var n in t._defaultMaxCount = i, + t._poolsMap) { + var r; + (r = t._poolsMap[n]).length > i && (r.length = i), + n in t._maxCountMap && (t._maxCountMap[n] = i) + } + } + , + t.clearPool = function(e) { + if (void 0 === e && (e = null), + null !== e) { + var i = String(e); + null !== (r = i in t._poolsMap ? t._poolsMap[i] : null) && r.length > 0 && (r.length = 0) + } else + for (var n in t._poolsMap) { + var r; + (r = t._poolsMap[n]).length = 0 + } + } + , + t.borrowObject = function(e) { + var i = String(e) + , n = i in t._poolsMap ? t._poolsMap[i] : null; + if (null !== n && n.length > 0) { + var r = n.pop(); + return r._isInPool = !1, + r + } + var s = new e; + return s._onClear(), + s + } + , + t.prototype.returnToPool = function() { + this._onClear(), + t._returnObject(this) + } + , + t._hashCode = 0, + t._defaultMaxCount = 3e3, + t._maxCountMap = {}, + t._poolsMap = {}, + t + } + )(); + t.BaseObject = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function t(t, e, i, n, r, s) { + void 0 === t && (t = 1), + void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 1), + void 0 === r && (r = 0), + void 0 === s && (s = 0), + this.a = t, + this.b = e, + this.c = i, + this.d = n, + this.tx = r, + this.ty = s + } + return t.prototype.toString = function() { + return "[object dragonBones.Matrix] a:" + this.a + " b:" + this.b + " c:" + this.c + " d:" + this.d + " tx:" + this.tx + " ty:" + this.ty + } + , + t.prototype.copyFrom = function(t) { + return this.a = t.a, + this.b = t.b, + this.c = t.c, + this.d = t.d, + this.tx = t.tx, + this.ty = t.ty, + this + } + , + t.prototype.copyFromArray = function(t, e) { + return void 0 === e && (e = 0), + this.a = t[e], + this.b = t[e + 1], + this.c = t[e + 2], + this.d = t[e + 3], + this.tx = t[e + 4], + this.ty = t[e + 5], + this + } + , + t.prototype.identity = function() { + return this.a = this.d = 1, + this.b = this.c = 0, + this.tx = this.ty = 0, + this + } + , + t.prototype.concat = function(t) { + var e = this.a * t.a + , i = 0 + , n = 0 + , r = this.d * t.d + , s = this.tx * t.a + t.tx + , a = this.ty * t.d + t.ty; + return 0 === this.b && 0 === this.c || (e += this.b * t.c, + i += this.b * t.d, + n += this.c * t.a, + r += this.c * t.b), + 0 === t.b && 0 === t.c || (i += this.a * t.b, + n += this.d * t.c, + s += this.ty * t.c, + a += this.tx * t.b), + this.a = e, + this.b = i, + this.c = n, + this.d = r, + this.tx = s, + this.ty = a, + this + } + , + t.prototype.invert = function() { + var t = this.a + , e = this.b + , i = this.c + , n = this.d + , r = this.tx + , s = this.ty; + if (0 === e && 0 === i) + return this.b = this.c = 0, + 0 === t || 0 === n ? this.a = this.b = this.tx = this.ty = 0 : (t = this.a = 1 / t, + n = this.d = 1 / n, + this.tx = -t * r, + this.ty = -n * s), + this; + var a = t * n - e * i; + if (0 === a) + return this.a = this.d = 1, + this.b = this.c = 0, + this.tx = this.ty = 0, + this; + a = 1 / a; + var o = this.a = n * a; + return e = this.b = -e * a, + i = this.c = -i * a, + n = this.d = t * a, + this.tx = -(o * r + i * s), + this.ty = -(e * r + n * s), + this + } + , + t.prototype.transformPoint = function(t, e, i, n) { + void 0 === n && (n = !1), + i.x = this.a * t + this.c * e, + i.y = this.b * t + this.d * e, + n || (i.x += this.tx, + i.y += this.ty) + } + , + t.prototype.transformRectangle = function(t, e) { + void 0 === e && (e = !1); + var i = this.a + , n = this.b + , r = this.c + , s = this.d + , a = e ? 0 : this.tx + , o = e ? 0 : this.ty + , l = t.x + , h = t.y + , c = l + t.width + , u = h + t.height + , _ = i * l + r * h + a + , f = n * l + s * h + o + , d = i * c + r * h + a + , p = n * c + s * h + o + , m = i * c + r * u + a + , y = n * c + s * u + o + , v = i * l + r * u + a + , g = n * l + s * u + o + , A = 0; + _ > d && (A = _, + _ = d, + d = A), + m > v && (A = m, + m = v, + v = A), + t.x = Math.floor(_ < m ? _ : m), + t.width = Math.ceil((d > v ? d : v) - t.x), + f > p && (A = f, + f = p, + p = A), + y > g && (A = y, + y = g, + g = A), + t.y = Math.floor(f < y ? f : y), + t.height = Math.ceil((p > g ? p : g) - t.y) + } + , + t + } + )(); + t.Matrix = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function t(t, e, i, n, r, s) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + void 0 === r && (r = 1), + void 0 === s && (s = 1), + this.x = t, + this.y = e, + this.skew = i, + this.rotation = n, + this.scaleX = r, + this.scaleY = s + } + return t.normalizeRadian = function(t) { + return (t = (t + Math.PI) % (2 * Math.PI)) + (t > 0 ? -Math.PI : Math.PI) + } + , + t.prototype.toString = function() { + return "[object dragonBones.Transform] x:" + this.x + " y:" + this.y + " skewX:" + 180 * this.skew / Math.PI + " skewY:" + 180 * this.rotation / Math.PI + " scaleX:" + this.scaleX + " scaleY:" + this.scaleY + } + , + t.prototype.copyFrom = function(t) { + return this.x = t.x, + this.y = t.y, + this.skew = t.skew, + this.rotation = t.rotation, + this.scaleX = t.scaleX, + this.scaleY = t.scaleY, + this + } + , + t.prototype.identity = function() { + return this.x = this.y = 0, + this.skew = this.rotation = 0, + this.scaleX = this.scaleY = 1, + this + } + , + t.prototype.add = function(t) { + return this.x += t.x, + this.y += t.y, + this.skew += t.skew, + this.rotation += t.rotation, + this.scaleX *= t.scaleX, + this.scaleY *= t.scaleY, + this + } + , + t.prototype.minus = function(t) { + return this.x -= t.x, + this.y -= t.y, + this.skew -= t.skew, + this.rotation -= t.rotation, + this.scaleX /= t.scaleX, + this.scaleY /= t.scaleY, + this + } + , + t.prototype.fromMatrix = function(e) { + var i = this.scaleX + , n = this.scaleY + , r = t.PI_Q; + this.x = e.tx, + this.y = e.ty, + this.rotation = Math.atan(e.b / e.a); + var s = Math.atan(-e.c / e.d); + return this.scaleX = this.rotation > -r && this.rotation < r ? e.a / Math.cos(this.rotation) : e.b / Math.sin(this.rotation), + this.scaleY = s > -r && s < r ? e.d / Math.cos(s) : -e.c / Math.sin(s), + i >= 0 && this.scaleX < 0 && (this.scaleX = -this.scaleX, + this.rotation = this.rotation - Math.PI), + n >= 0 && this.scaleY < 0 && (this.scaleY = -this.scaleY, + s -= Math.PI), + this.skew = s - this.rotation, + this + } + , + t.prototype.toMatrix = function(t) { + return 0 === this.rotation ? (t.a = 1, + t.b = 0) : (t.a = Math.cos(this.rotation), + t.b = Math.sin(this.rotation)), + 0 === this.skew ? (t.c = -t.b, + t.d = t.a) : (t.c = -Math.sin(this.skew + this.rotation), + t.d = Math.cos(this.skew + this.rotation)), + 1 !== this.scaleX && (t.a *= this.scaleX, + t.b *= this.scaleX), + 1 !== this.scaleY && (t.c *= this.scaleY, + t.d *= this.scaleY), + t.tx = this.x, + t.ty = this.y, + this + } + , + t.PI = Math.PI, + t.PI_D = 2 * Math.PI, + t.PI_H = Math.PI / 2, + t.PI_Q = Math.PI / 4, + t.RAD_DEG = 180 / Math.PI, + t.DEG_RAD = Math.PI / 180, + t + } + )(); + t.Transform = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function t(t, e, i, n, r, s, a, o) { + void 0 === t && (t = 1), + void 0 === e && (e = 1), + void 0 === i && (i = 1), + void 0 === n && (n = 1), + void 0 === r && (r = 0), + void 0 === s && (s = 0), + void 0 === a && (a = 0), + void 0 === o && (o = 0), + this.alphaMultiplier = t, + this.redMultiplier = e, + this.greenMultiplier = i, + this.blueMultiplier = n, + this.alphaOffset = r, + this.redOffset = s, + this.greenOffset = a, + this.blueOffset = o + } + return t.prototype.copyFrom = function(t) { + this.alphaMultiplier = t.alphaMultiplier, + this.redMultiplier = t.redMultiplier, + this.greenMultiplier = t.greenMultiplier, + this.blueMultiplier = t.blueMultiplier, + this.alphaOffset = t.alphaOffset, + this.redOffset = t.redOffset, + this.greenOffset = t.greenOffset, + this.blueOffset = t.blueOffset + } + , + t.prototype.identity = function() { + this.alphaMultiplier = this.redMultiplier = this.greenMultiplier = this.blueMultiplier = 1, + this.alphaOffset = this.redOffset = this.greenOffset = this.blueOffset = 0 + } + , + t + } + )(); + t.ColorTransform = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function t(t, e) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + this.x = t, + this.y = e + } + return t.prototype.copyFrom = function(t) { + this.x = t.x, + this.y = t.y + } + , + t.prototype.clear = function() { + this.x = this.y = 0 + } + , + t + } + )(); + t.Point = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function t(t, e, i, n) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + this.x = t, + this.y = e, + this.width = i, + this.height = n + } + return t.prototype.copyFrom = function(t) { + this.x = t.x, + this.y = t.y, + this.width = t.width, + this.height = t.height + } + , + t.prototype.clear = function() { + this.x = this.y = 0, + this.width = this.height = 0 + } + , + t + } + )(); + t.Rectangle = e + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.ints = [], + e.floats = [], + e.strings = [], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.UserData]" + } + , + e.prototype._onClear = function() { + this.ints.length = 0, + this.floats.length = 0, + this.strings.length = 0 + } + , + e.prototype.addInt = function(t) { + this.ints.push(t) + } + , + e.prototype.addFloat = function(t) { + this.floats.push(t) + } + , + e.prototype.addString = function(t) { + this.strings.push(t) + } + , + e.prototype.getInt = function(t) { + return void 0 === t && (t = 0), + t >= 0 && t < this.ints.length ? this.ints[t] : 0 + } + , + e.prototype.getFloat = function(t) { + return void 0 === t && (t = 0), + t >= 0 && t < this.floats.length ? this.floats[t] : 0 + } + , + e.prototype.getString = function(t) { + return void 0 === t && (t = 0), + t >= 0 && t < this.strings.length ? this.strings[t] : "" + } + , + e + } + )(t.BaseObject); + t.UserData = e; + var i = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.data = null, + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.ActionData]" + } + , + e.prototype._onClear = function() { + null !== this.data && this.data.returnToPool(), + this.type = 0, + this.name = "", + this.bone = null, + this.slot = null, + this.data = null + } + , + e + } + )(t.BaseObject); + t.ActionData = i + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.frameIndices = [], + e.cachedFrames = [], + e.armatureNames = [], + e.armatures = {}, + e.userData = null, + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.DragonBonesData]" + } + , + e.prototype._onClear = function() { + for (var t in this.armatures) + this.armatures[t].returnToPool(), + delete this.armatures[t]; + null !== this.userData && this.userData.returnToPool(), + this.autoSearch = !1, + this.frameRate = 0, + this.version = "", + this.name = "", + this.stage = null, + this.frameIndices.length = 0, + this.cachedFrames.length = 0, + this.armatureNames.length = 0, + this.binary = null, + this.intArray = null, + this.floatArray = null, + this.frameIntArray = null, + this.frameFloatArray = null, + this.frameArray = null, + this.timelineArray = null, + this.userData = null + } + , + e.prototype.addArmature = function(t) { + t.name in this.armatures ? console.warn("Same armature: " + t.name) : (t.parent = this, + this.armatures[t.name] = t, + this.armatureNames.push(t.name)) + } + , + e.prototype.getArmature = function(t) { + return t in this.armatures ? this.armatures[t] : null + } + , + e.prototype.dispose = function() { + console.warn("\u5df2\u5e9f\u5f03"), + this.returnToPool() + } + , + e + } + )(t.BaseObject); + t.DragonBonesData = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i() { + var i = null !== e && e.apply(this, arguments) || this; + return i.aabb = new t.Rectangle, + i.animationNames = [], + i.sortedBones = [], + i.sortedSlots = [], + i.defaultActions = [], + i.actions = [], + i.bones = {}, + i.slots = {}, + i.constraints = {}, + i.skins = {}, + i.animations = {}, + i.canvas = null, + i.userData = null, + i + } + return s(i, e), + i.toString = function() { + return "[class dragonBones.ArmatureData]" + } + , + i.prototype._onClear = function() { + for (var t = 0, e = this.defaultActions; t < e.length; t++) + e[t].returnToPool(); + for (var i = 0, n = this.actions; i < n.length; i++) + n[i].returnToPool(); + for (var r in this.bones) + this.bones[r].returnToPool(), + delete this.bones[r]; + for (var r in this.slots) + this.slots[r].returnToPool(), + delete this.slots[r]; + for (var r in this.constraints) + this.constraints[r].returnToPool(), + delete this.constraints[r]; + for (var r in this.skins) + this.skins[r].returnToPool(), + delete this.skins[r]; + for (var r in this.animations) + this.animations[r].returnToPool(), + delete this.animations[r]; + null !== this.canvas && this.canvas.returnToPool(), + null !== this.userData && this.userData.returnToPool(), + this.type = 0, + this.frameRate = 0, + this.cacheFrameRate = 0, + this.scale = 1, + this.name = "", + this.aabb.clear(), + this.animationNames.length = 0, + this.sortedBones.length = 0, + this.sortedSlots.length = 0, + this.defaultActions.length = 0, + this.actions.length = 0, + this.defaultSkin = null, + this.defaultAnimation = null, + this.canvas = null, + this.userData = null, + this.parent = null + } + , + i.prototype.sortBones = function() { + var t = this.sortedBones.length; + if (!(t <= 0)) { + var e = this.sortedBones.concat() + , i = 0 + , n = 0; + for (this.sortedBones.length = 0; n < t; ) { + var r = e[i++]; + if (i >= t && (i = 0), + !(this.sortedBones.indexOf(r) >= 0)) { + var s = !1; + for (var a in this.constraints) { + var o = this.constraints[a]; + if (o.root === r && this.sortedBones.indexOf(o.target) < 0) { + s = !0; + break + } + } + s || null !== r.parent && this.sortedBones.indexOf(r.parent) < 0 || (this.sortedBones.push(r), + n++) + } + } + } + } + , + i.prototype.cacheFrames = function(t) { + if (!(this.cacheFrameRate > 0)) + for (var e in this.cacheFrameRate = t, + this.animations) + this.animations[e].cacheFrames(this.cacheFrameRate) + } + , + i.prototype.setCacheFrame = function(t, e) { + var i = this.parent.cachedFrames + , n = i.length; + return i.length += 10, + i[n] = t.a, + i[n + 1] = t.b, + i[n + 2] = t.c, + i[n + 3] = t.d, + i[n + 4] = t.tx, + i[n + 5] = t.ty, + i[n + 6] = e.rotation, + i[n + 7] = e.skew, + i[n + 8] = e.scaleX, + i[n + 9] = e.scaleY, + n + } + , + i.prototype.getCacheFrame = function(t, e, i) { + var n = this.parent.cachedFrames; + t.a = n[i], + t.b = n[i + 1], + t.c = n[i + 2], + t.d = n[i + 3], + t.tx = n[i + 4], + t.ty = n[i + 5], + e.rotation = n[i + 6], + e.skew = n[i + 7], + e.scaleX = n[i + 8], + e.scaleY = n[i + 9], + e.x = t.tx, + e.y = t.ty + } + , + i.prototype.addBone = function(t) { + t.name in this.bones ? console.warn("Same bone: " + t.name) : (this.bones[t.name] = t, + this.sortedBones.push(t)) + } + , + i.prototype.addSlot = function(t) { + t.name in this.slots ? console.warn("Same slot: " + t.name) : (this.slots[t.name] = t, + this.sortedSlots.push(t)) + } + , + i.prototype.addConstraint = function(t) { + t.name in this.constraints ? console.warn("Same constraint: " + t.name) : this.constraints[t.name] = t + } + , + i.prototype.addSkin = function(t) { + t.name in this.skins ? console.warn("Same skin: " + t.name) : (t.parent = this, + this.skins[t.name] = t, + null === this.defaultSkin && (this.defaultSkin = t), + "default" === t.name && (this.defaultSkin = t)) + } + , + i.prototype.addAnimation = function(t) { + t.name in this.animations ? console.warn("Same animation: " + t.name) : (t.parent = this, + this.animations[t.name] = t, + this.animationNames.push(t.name), + null === this.defaultAnimation && (this.defaultAnimation = t)) + } + , + i.prototype.addAction = function(t, e) { + e ? this.defaultActions.push(t) : this.actions.push(t) + } + , + i.prototype.getBone = function(t) { + return t in this.bones ? this.bones[t] : null + } + , + i.prototype.getSlot = function(t) { + return t in this.slots ? this.slots[t] : null + } + , + i.prototype.getConstraint = function(t) { + return t in this.constraints ? this.constraints[t] : null + } + , + i.prototype.getSkin = function(t) { + return t in this.skins ? this.skins[t] : null + } + , + i.prototype.getMesh = function(t, e, i) { + var n = this.getSkin(t); + return null === n ? null : n.getDisplay(e, i) + } + , + i.prototype.getAnimation = function(t) { + return t in this.animations ? this.animations[t] : null + } + , + i + } + )(t.BaseObject); + t.ArmatureData = e; + var i = (function(e) { + function i() { + var i = null !== e && e.apply(this, arguments) || this; + return i.transform = new t.Transform, + i.userData = null, + i + } + return s(i, e), + i.toString = function() { + return "[class dragonBones.BoneData]" + } + , + i.prototype._onClear = function() { + null !== this.userData && this.userData.returnToPool(), + this.inheritTranslation = !1, + this.inheritRotation = !1, + this.inheritScale = !1, + this.inheritReflection = !1, + this.type = 0, + this.length = 0, + this.name = "", + this.transform.identity(), + this.userData = null, + this.parent = null + } + , + i + } + )(t.BaseObject); + t.BoneData = i; + var n = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.vertices = [], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.SurfaceData]" + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.type = 1, + this.segmentX = 0, + this.segmentY = 0, + this.vertices.length = 0 + } + , + e + } + )(i); + t.SurfaceData = n; + var r = (function(e) { + function i() { + var t = null !== e && e.apply(this, arguments) || this; + return t.color = null, + t.userData = null, + t + } + return s(i, e), + i.createColor = function() { + return new t.ColorTransform + } + , + i.toString = function() { + return "[class dragonBones.SlotData]" + } + , + i.prototype._onClear = function() { + null !== this.userData && this.userData.returnToPool(), + this.blendMode = 0, + this.displayIndex = 0, + this.zOrder = 0, + this.name = "", + this.color = null, + this.userData = null, + this.parent = null + } + , + i.DEFAULT_COLOR = new t.ColorTransform, + i + } + )(t.BaseObject); + t.SlotData = r + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.prototype._onClear = function() { + this.order = 0, + this.name = "", + this.type = 0, + this.target = null, + this.root = null, + this.bone = null + } + , + e + } + )(t.BaseObject); + t.ConstraintData = e; + var i = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.IKConstraintData]" + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.scaleEnabled = !1, + this.bendPositive = !1, + this.weight = 1 + } + , + e + } + )(e); + t.IKConstraintData = i; + var n = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.bones = [], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.PathConstraintData]" + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.pathSlot = null, + this.pathDisplayData = null, + this.bones.length = 0, + this.positionMode = 0, + this.spacingMode = 1, + this.rotateMode = 1, + this.position = 0, + this.spacing = 0, + this.rotateOffset = 0, + this.rotateMix = 0, + this.translateMix = 0 + } + , + e.prototype.AddBone = function(t) { + this.bones.push(t) + } + , + e + } + )(e); + t.PathConstraintData = n + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.CanvasData]" + } + , + e.prototype._onClear = function() { + this.hasBackground = !1, + this.color = 0, + this.x = 0, + this.y = 0, + this.width = 0, + this.height = 0 + } + , + e + } + )(t.BaseObject); + t.CanvasData = e + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.displays = {}, + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.SkinData]" + } + , + e.prototype._onClear = function() { + for (var t in this.displays) { + for (var e = 0, i = this.displays[t]; e < i.length; e++) { + var n = i[e]; + null !== n && n.returnToPool() + } + delete this.displays[t] + } + this.name = "", + this.parent = null + } + , + e.prototype.addDisplay = function(t, e) { + t in this.displays || (this.displays[t] = []), + null !== e && (e.parent = this), + this.displays[t].push(e) + } + , + e.prototype.getDisplay = function(t, e) { + var i = this.getDisplays(t); + if (null !== i) + for (var n = 0, r = i; n < r.length; n++) { + var s = r[n]; + if (null !== s && s.name === e) + return s + } + return null + } + , + e.prototype.getDisplays = function(t) { + return t in this.displays ? this.displays[t] : null + } + , + e + } + )(t.BaseObject); + t.SkinData = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function t() { + this.weight = null + } + return t.prototype.clear = function() { + this.isShared || null === this.weight || this.weight.returnToPool(), + this.isShared = !1, + this.inheritDeform = !1, + this.offset = 0, + this.data = null, + this.weight = null + } + , + t.prototype.shareFrom = function(t) { + this.isShared = !0, + this.offset = t.offset, + this.weight = t.weight + } + , + t + } + )(); + t.VerticesData = e; + var i = (function(e) { + function i() { + var i = null !== e && e.apply(this, arguments) || this; + return i.transform = new t.Transform, + i + } + return s(i, e), + i.prototype._onClear = function() { + this.name = "", + this.path = "", + this.transform.identity(), + this.parent = null + } + , + i + } + )(t.BaseObject); + t.DisplayData = i; + var n = (function(e) { + function i() { + var i = null !== e && e.apply(this, arguments) || this; + return i.pivot = new t.Point, + i + } + return s(i, e), + i.toString = function() { + return "[class dragonBones.ImageDisplayData]" + } + , + i.prototype._onClear = function() { + e.prototype._onClear.call(this), + this.type = 0, + this.pivot.clear(), + this.texture = null + } + , + i + } + )(i); + t.ImageDisplayData = n; + var r = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.actions = [], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.ArmatureDisplayData]" + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this); + for (var e = 0, i = this.actions; e < i.length; e++) + i[e].returnToPool(); + this.type = 1, + this.inheritAnimation = !1, + this.actions.length = 0, + this.armature = null + } + , + e.prototype.addAction = function(t) { + this.actions.push(t) + } + , + e + } + )(i); + t.ArmatureDisplayData = r; + var a = (function(t) { + function i() { + var i = null !== t && t.apply(this, arguments) || this; + return i.vertices = new e, + i + } + return s(i, t), + i.toString = function() { + return "[class dragonBones.MeshDisplayData]" + } + , + i.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.type = 2, + this.vertices.clear(), + this.texture = null + } + , + i + } + )(i); + t.MeshDisplayData = a; + var o = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.boundingBox = null, + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.BoundingBoxDisplayData]" + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + null !== this.boundingBox && this.boundingBox.returnToPool(), + this.type = 3, + this.boundingBox = null + } + , + e + } + )(i); + t.BoundingBoxDisplayData = o; + var l = (function(t) { + function i() { + var i = null !== t && t.apply(this, arguments) || this; + return i.vertices = new e, + i.curveLengths = [], + i + } + return s(i, t), + i.toString = function() { + return "[class dragonBones.PathDisplayData]" + } + , + i.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.type = 4, + this.closed = !1, + this.constantSpeed = !1, + this.vertices.clear(), + this.curveLengths.length = 0 + } + , + i + } + )(i); + t.PathDisplayData = l; + var h = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.bones = [], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.WeightData]" + } + , + e.prototype._onClear = function() { + this.count = 0, + this.offset = 0, + this.bones.length = 0 + } + , + e.prototype.addBone = function(t) { + this.bones.push(t) + } + , + e + } + )(t.BaseObject); + t.WeightData = h + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.prototype._onClear = function() { + this.color = 0, + this.width = 0, + this.height = 0 + } + , + e + } + )(t.BaseObject); + t.BoundingBoxData = e; + var i = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.RectangleBoundingBoxData]" + } + , + e._computeOutCode = function(t, e, i, n, r, s) { + var a = 0; + return t < i ? a |= 1 : t > r && (a |= 2), + e < n ? a |= 4 : e > s && (a |= 8), + a + } + , + e.rectangleIntersectsSegment = function(t, i, n, r, s, a, o, l, h, c, u) { + void 0 === h && (h = null), + void 0 === c && (c = null), + void 0 === u && (u = null); + var _ = t > s && t < o && i > a && i < l + , f = n > s && n < o && r > a && r < l; + if (_ && f) + return -1; + for (var d = 0, p = e._computeOutCode(t, i, s, a, o, l), m = e._computeOutCode(n, r, s, a, o, l); ; ) { + if (0 == (p | m)) { + d = 2; + break + } + if (0 != (p & m)) + break; + var y = 0 + , v = 0 + , g = 0 + , A = 0 !== p ? p : m; + 0 != (4 & A) ? (y = t + (n - t) * (a - i) / (r - i), + v = a, + null !== u && (g = .5 * -Math.PI)) : 0 != (8 & A) ? (y = t + (n - t) * (l - i) / (r - i), + v = l, + null !== u && (g = .5 * Math.PI)) : 0 != (2 & A) ? (v = i + (r - i) * (o - t) / (n - t), + y = o, + null !== u && (g = 0)) : 0 != (1 & A) && (v = i + (r - i) * (s - t) / (n - t), + y = s, + null !== u && (g = Math.PI)), + A === p ? (t = y, + i = v, + p = e._computeOutCode(t, i, s, a, o, l), + null !== u && (u.x = g)) : (n = y, + r = v, + m = e._computeOutCode(n, r, s, a, o, l), + null !== u && (u.y = g)) + } + return d && (_ ? (d = 2, + null !== h && (h.x = n, + h.y = r), + null !== c && (c.x = n, + c.y = n), + null !== u && (u.x = u.y + Math.PI)) : f ? (d = 1, + null !== h && (h.x = t, + h.y = i), + null !== c && (c.x = t, + c.y = i), + null !== u && (u.y = u.x + Math.PI)) : (d = 3, + null !== h && (h.x = t, + h.y = i), + null !== c && (c.x = n, + c.y = r))), + d + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.type = 0 + } + , + e.prototype.containsPoint = function(t, e) { + var i = .5 * this.width; + if (t >= -i && t <= i) { + var n = .5 * this.height; + if (e >= -n && e <= n) + return !0 + } + return !1 + } + , + e.prototype.intersectsSegment = function(t, i, n, r, s, a, o) { + void 0 === s && (s = null), + void 0 === a && (a = null), + void 0 === o && (o = null); + var l = .5 * this.width + , h = .5 * this.height; + return e.rectangleIntersectsSegment(t, i, n, r, -l, -h, l, h, s, a, o) + } + , + e + } + )(e); + t.RectangleBoundingBoxData = i; + var n = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.EllipseData]" + } + , + e.ellipseIntersectsSegment = function(t, e, i, n, r, s, a, o, l, h, c) { + void 0 === l && (l = null), + void 0 === h && (h = null), + void 0 === c && (c = null); + var u = a / o + , _ = u * u + , f = i - t + , d = (n *= u) - (e *= u) + , p = Math.sqrt(f * f + d * d) + , m = f / p + , y = d / p + , v = (r - t) * m + (s - e) * y + , g = a * a + , A = g - (t * t + e * e) + v * v + , x = 0; + if (A >= 0) { + var b = Math.sqrt(A) + , C = v - b + , T = v + b + , S = C < 0 ? -1 : C <= p ? 0 : 1 + , w = T < 0 ? -1 : T <= p ? 0 : 1 + , E = S * w; + if (E < 0) + return -1; + 0 === E && (-1 === S ? (x = 2, + i = t + T * m, + n = (e + T * y) / u, + null !== l && (l.x = i, + l.y = n), + null !== h && (h.x = i, + h.y = n), + null !== c && (c.x = Math.atan2(n / g * _, i / g), + c.y = c.x + Math.PI)) : 1 === w ? (x = 1, + t += C * m, + e = (e + C * y) / u, + null !== l && (l.x = t, + l.y = e), + null !== h && (h.x = t, + h.y = e), + null !== c && (c.x = Math.atan2(e / g * _, t / g), + c.y = c.x + Math.PI)) : (x = 3, + null !== l && (l.x = t + C * m, + l.y = (e + C * y) / u, + null !== c && (c.x = Math.atan2(l.y / g * _, l.x / g))), + null !== h && (h.x = t + T * m, + h.y = (e + T * y) / u, + null !== c && (c.y = Math.atan2(h.y / g * _, h.x / g))))) + } + return x + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.type = 1 + } + , + e.prototype.containsPoint = function(t, e) { + var i = .5 * this.width; + if (t >= -i && t <= i) { + var n = .5 * this.height; + if (e >= -n && e <= n) + return e *= i / n, + Math.sqrt(t * t + e * e) <= i + } + return !1 + } + , + e.prototype.intersectsSegment = function(t, i, n, r, s, a, o) { + return void 0 === s && (s = null), + void 0 === a && (a = null), + void 0 === o && (o = null), + e.ellipseIntersectsSegment(t, i, n, r, 0, 0, .5 * this.width, .5 * this.height, s, a, o) + } + , + e + } + )(e); + t.EllipseBoundingBoxData = n; + var r = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.vertices = [], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.PolygonBoundingBoxData]" + } + , + e.polygonIntersectsSegment = function(t, e, i, n, r, s, a, o) { + void 0 === s && (s = null), + void 0 === a && (a = null), + void 0 === o && (o = null), + t === i && (t = i + 1e-6), + e === n && (e = n + 1e-6); + for (var l = r.length, h = t - i, c = e - n, u = t * n - e * i, _ = 0, f = r[l - 2], d = r[l - 1], p = 0, m = 0, y = 0, v = 0, g = 0, A = 0, x = 0; x < l; x += 2) { + var b = r[x] + , C = r[x + 1]; + f === b && (f = b + 1e-4), + d === C && (d = C + 1e-4); + var T = f - b + , S = d - C + , w = f * C - d * b + , E = h * S - c * T + , M = (u * T - h * w) / E; + if ((M >= f && M <= b || M >= b && M <= f) && (0 === h || M >= t && M <= i || M >= i && M <= t)) { + var D = (u * S - c * w) / E; + if ((D >= d && D <= C || D >= C && D <= d) && (0 === c || D >= e && D <= n || D >= n && D <= e)) { + if (null === a) { + y = M, + v = D, + g = M, + A = D, + _++, + null !== o && (o.x = Math.atan2(C - d, b - f) - .5 * Math.PI, + o.y = o.x); + break + } + var B = M - t; + B < 0 && (B = -B), + 0 === _ ? (p = B, + m = B, + y = M, + v = D, + g = M, + A = D, + null !== o && (o.x = Math.atan2(C - d, b - f) - .5 * Math.PI, + o.y = o.x)) : (B < p && (p = B, + y = M, + v = D, + null !== o && (o.x = Math.atan2(C - d, b - f) - .5 * Math.PI)), + B > m && (m = B, + g = M, + A = D, + null !== o && (o.y = Math.atan2(C - d, b - f) - .5 * Math.PI))), + _++ + } + } + f = b, + d = C + } + return 1 === _ ? (null !== s && (s.x = y, + s.y = v), + null !== a && (a.x = y, + a.y = v), + null !== o && (o.y = o.x + Math.PI)) : _ > 1 && (_++, + null !== s && (s.x = y, + s.y = v), + null !== a && (a.x = g, + a.y = A)), + _ + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.type = 2, + this.x = 0, + this.y = 0, + this.vertices.length = 0 + } + , + e.prototype.containsPoint = function(t, e) { + var i = !1; + if (t >= this.x && t <= this.width && e >= this.y && e <= this.height) + for (var n = 0, r = this.vertices.length, s = r - 2; n < r; n += 2) { + var a = this.vertices[s + 1] + , o = this.vertices[n + 1]; + if (o < e && a >= e || a < e && o >= e) { + var l = this.vertices[s] + , h = this.vertices[n]; + (e - o) * (l - h) / (a - o) + h < t && (i = !i) + } + s = n + } + return i + } + , + e.prototype.intersectsSegment = function(t, n, r, s, a, o, l) { + void 0 === a && (a = null), + void 0 === o && (o = null), + void 0 === l && (l = null); + var h = 0; + return 0 !== i.rectangleIntersectsSegment(t, n, r, s, this.x, this.y, this.x + this.width, this.y + this.height, null, null, null) && (h = e.polygonIntersectsSegment(t, n, r, s, this.vertices, a, o, l)), + h + } + , + e + } + )(e); + t.PolygonBoundingBoxData = r + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.cachedFrames = [], + e.boneTimelines = {}, + e.surfaceTimelines = {}, + e.slotTimelines = {}, + e.constraintTimelines = {}, + e.animationTimelines = {}, + e.boneCachedFrameIndices = {}, + e.slotCachedFrameIndices = {}, + e.actionTimeline = null, + e.zOrderTimeline = null, + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.AnimationData]" + } + , + e.prototype._onClear = function() { + for (var t in this.boneTimelines) { + for (var e = 0, i = this.boneTimelines[t]; e < i.length; e++) + i[e].returnToPool(); + delete this.boneTimelines[t] + } + for (var t in this.surfaceTimelines) { + for (var n = 0, r = this.surfaceTimelines[t]; n < r.length; n++) + r[n].returnToPool(); + delete this.surfaceTimelines[t] + } + for (var t in this.slotTimelines) { + for (var s = 0, a = this.slotTimelines[t]; s < a.length; s++) + a[s].returnToPool(); + delete this.slotTimelines[t] + } + for (var t in this.constraintTimelines) { + for (var o = 0, l = this.constraintTimelines[t]; o < l.length; o++) + l[o].returnToPool(); + delete this.constraintTimelines[t] + } + for (var t in this.animationTimelines) { + for (var h = 0, c = this.animationTimelines[t]; h < c.length; h++) + c[h].returnToPool(); + delete this.animationTimelines[t] + } + for (var t in this.boneCachedFrameIndices) + delete this.boneCachedFrameIndices[t]; + for (var t in this.slotCachedFrameIndices) + delete this.slotCachedFrameIndices[t]; + null !== this.actionTimeline && this.actionTimeline.returnToPool(), + null !== this.zOrderTimeline && this.zOrderTimeline.returnToPool(), + this.frameIntOffset = 0, + this.frameFloatOffset = 0, + this.frameOffset = 0, + this.frameCount = 0, + this.playTimes = 0, + this.duration = 0, + this.scale = 1, + this.fadeInTime = 0, + this.cacheFrameRate = 0, + this.name = "", + this.cachedFrames.length = 0, + this.actionTimeline = null, + this.zOrderTimeline = null, + this.parent = null + } + , + e.prototype.cacheFrames = function(t) { + if (!(this.cacheFrameRate > 0)) { + this.cacheFrameRate = Math.max(Math.ceil(t * this.scale), 1); + var e = Math.ceil(this.cacheFrameRate * this.duration) + 1; + this.cachedFrames.length = e; + for (var i = 0, n = this.cacheFrames.length; i < n; ++i) + this.cachedFrames[i] = !1; + for (var r = 0, s = this.parent.sortedBones; r < s.length; r++) { + var a = s[r]; + for (i = 0, + n = (h = new Array(e)).length; i < n; ++i) + h[i] = -1; + this.boneCachedFrameIndices[a.name] = h + } + for (var o = 0, l = this.parent.sortedSlots; o < l.length; o++) { + var h, c = l[o]; + for (i = 0, + n = (h = new Array(e)).length; i < n; ++i) + h[i] = -1; + this.slotCachedFrameIndices[c.name] = h + } + } + } + , + e.prototype.addBoneTimeline = function(t, e) { + var i = t.name in this.boneTimelines ? this.boneTimelines[t.name] : this.boneTimelines[t.name] = []; + i.indexOf(e) < 0 && i.push(e) + } + , + e.prototype.addSurfaceTimeline = function(t, e) { + var i = t.name in this.surfaceTimelines ? this.surfaceTimelines[t.name] : this.surfaceTimelines[t.name] = []; + i.indexOf(e) < 0 && i.push(e) + } + , + e.prototype.addSlotTimeline = function(t, e) { + var i = t.name in this.slotTimelines ? this.slotTimelines[t.name] : this.slotTimelines[t.name] = []; + i.indexOf(e) < 0 && i.push(e) + } + , + e.prototype.addConstraintTimeline = function(t, e) { + var i = t.name in this.constraintTimelines ? this.constraintTimelines[t.name] : this.constraintTimelines[t.name] = []; + i.indexOf(e) < 0 && i.push(e) + } + , + e.prototype.addAnimationTimeline = function(t, e) { + var i = t in this.animationTimelines ? this.animationTimelines[t] : this.animationTimelines[t] = []; + i.indexOf(e) < 0 && i.push(e) + } + , + e.prototype.getBoneTimelines = function(t) { + return t in this.boneTimelines ? this.boneTimelines[t] : null + } + , + e.prototype.getSurfaceTimelines = function(t) { + return t in this.surfaceTimelines ? this.surfaceTimelines[t] : null + } + , + e.prototype.getSlotTimelines = function(t) { + return t in this.slotTimelines ? this.slotTimelines[t] : null + } + , + e.prototype.getConstraintTimelines = function(t) { + return t in this.constraintTimelines ? this.constraintTimelines[t] : null + } + , + e.prototype.getAnimationTimelines = function(t) { + return t in this.animationTimelines ? this.animationTimelines[t] : null + } + , + e.prototype.getBoneCachedFrameIndices = function(t) { + return t in this.boneCachedFrameIndices ? this.boneCachedFrameIndices[t] : null + } + , + e.prototype.getSlotCachedFrameIndices = function(t) { + return t in this.slotCachedFrameIndices ? this.slotCachedFrameIndices[t] : null + } + , + e + } + )(t.BaseObject); + t.AnimationData = e; + var i = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.TimelineData]" + } + , + e.prototype._onClear = function() { + this.type = 10, + this.offset = 0, + this.frameIndicesOffset = -1 + } + , + e + } + )(t.BaseObject); + t.TimelineData = i + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.boneMask = [], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.AnimationConfig]" + } + , + e.prototype._onClear = function() { + this.pauseFadeOut = !0, + this.fadeOutMode = 4, + this.fadeOutTweenType = 1, + this.fadeOutTime = -1, + this.actionEnabled = !0, + this.additiveBlending = !1, + this.displayControl = !0, + this.pauseFadeIn = !0, + this.resetToPose = !0, + this.fadeInTweenType = 1, + this.playTimes = -1, + this.layer = 0, + this.position = 0, + this.duration = -1, + this.timeScale = -100, + this.weight = 1, + this.fadeInTime = -1, + this.autoFadeOutTime = -1, + this.name = "", + this.animation = "", + this.group = "", + this.boneMask.length = 0 + } + , + e.prototype.clear = function() { + this._onClear() + } + , + e.prototype.copyFrom = function(t) { + this.pauseFadeOut = t.pauseFadeOut, + this.fadeOutMode = t.fadeOutMode, + this.autoFadeOutTime = t.autoFadeOutTime, + this.fadeOutTweenType = t.fadeOutTweenType, + this.actionEnabled = t.actionEnabled, + this.additiveBlending = t.additiveBlending, + this.displayControl = t.displayControl, + this.pauseFadeIn = t.pauseFadeIn, + this.resetToPose = t.resetToPose, + this.playTimes = t.playTimes, + this.layer = t.layer, + this.position = t.position, + this.duration = t.duration, + this.timeScale = t.timeScale, + this.fadeInTime = t.fadeInTime, + this.fadeOutTime = t.fadeOutTime, + this.fadeInTweenType = t.fadeInTweenType, + this.weight = t.weight, + this.name = t.name, + this.animation = t.animation, + this.group = t.group, + this.boneMask.length = t.boneMask.length; + for (var e = 0, i = this.boneMask.length; e < i; ++e) + this.boneMask[e] = t.boneMask[e] + } + , + e.prototype.containsBoneMask = function(t) { + return 0 === this.boneMask.length || this.boneMask.indexOf(t) >= 0 + } + , + e.prototype.addBoneMask = function(t, e, i) { + void 0 === i && (i = !0); + var n = t.getBone(e); + if (null !== n && (this.boneMask.indexOf(e) < 0 && this.boneMask.push(e), + i)) + for (var r = 0, s = t.getBones(); r < s.length; r++) { + var a = s[r]; + this.boneMask.indexOf(a.name) < 0 && n.contains(a) && this.boneMask.push(a.name) + } + } + , + e.prototype.removeBoneMask = function(t, e, i) { + void 0 === i && (i = !0); + var n = this.boneMask.indexOf(e); + if (n >= 0 && this.boneMask.splice(n, 1), + i) { + var r = t.getBone(e); + if (null !== r) + if (this.boneMask.length > 0) + for (var s = 0, a = t.getBones(); s < a.length; s++) { + var o = a[s] + , l = this.boneMask.indexOf(o.name); + l >= 0 && r.contains(o) && this.boneMask.splice(l, 1) + } + else + for (var h = 0, c = t.getBones(); h < c.length; h++) + (o = c[h]) !== r && (r.contains(o) || this.boneMask.push(o.name)) + } + } + , + e + } + )(t.BaseObject); + t.AnimationConfig = e + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.textures = {}, + e + } + return s(e, t), + e.prototype._onClear = function() { + for (var t in this.textures) + this.textures[t].returnToPool(), + delete this.textures[t]; + this.autoSearch = !1, + this.width = 0, + this.height = 0, + this.scale = 1, + this.name = "", + this.imagePath = "" + } + , + e.prototype.copyFrom = function(t) { + for (var e in this.autoSearch = t.autoSearch, + this.scale = t.scale, + this.width = t.width, + this.height = t.height, + this.name = t.name, + this.imagePath = t.imagePath, + this.textures) + this.textures[e].returnToPool(), + delete this.textures[e]; + for (var e in t.textures) { + var i = this.createTexture(); + i.copyFrom(t.textures[e]), + this.textures[e] = i + } + } + , + e.prototype.addTexture = function(t) { + t.name in this.textures ? console.warn("Same texture: " + t.name) : (t.parent = this, + this.textures[t.name] = t) + } + , + e.prototype.getTexture = function(t) { + return t in this.textures ? this.textures[t] : null + } + , + e + } + )(t.BaseObject); + t.TextureAtlasData = e; + var i = (function(e) { + function i() { + var i = null !== e && e.apply(this, arguments) || this; + return i.region = new t.Rectangle, + i.frame = null, + i + } + return s(i, e), + i.createRectangle = function() { + return new t.Rectangle + } + , + i.prototype._onClear = function() { + this.rotated = !1, + this.name = "", + this.region.clear(), + this.parent = null, + this.frame = null + } + , + i.prototype.copyFrom = function(t) { + this.rotated = t.rotated, + this.name = t.name, + this.region.copyFrom(t.region), + this.parent = t.parent, + null === this.frame && null !== t.frame ? this.frame = i.createRectangle() : null !== this.frame && null === t.frame && (this.frame = null), + null !== this.frame && null !== t.frame && this.frame.copyFrom(t.frame) + } + , + i + } + )(t.BaseObject); + t.TextureData = i + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.vertices = [], + e.bones = [], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.DeformVertices]" + } + , + e.prototype._onClear = function() { + this.verticesDirty = !1, + this.vertices.length = 0, + this.bones.length = 0, + this.verticesData = null + } + , + e.prototype.init = function(t, e) { + if (this.verticesData = t, + null !== this.verticesData) { + var i; + i = null !== this.verticesData.weight ? 2 * this.verticesData.weight.count : 2 * this.verticesData.data.intArray[this.verticesData.offset + 0], + this.verticesDirty = !0, + this.vertices.length = i, + this.bones.length = 0; + for (var n = 0, r = this.vertices.length; n < r; ++n) + this.vertices[n] = 0; + if (null !== this.verticesData.weight) + for (n = 0, + r = this.verticesData.weight.bones.length; n < r; ++n) { + var s = e.getBone(this.verticesData.weight.bones[n].name); + this.bones.push(s) + } + } else + this.verticesDirty = !1, + this.vertices.length = 0, + this.bones.length = 0, + this.verticesData = null + } + , + e.prototype.isBonesUpdate = function() { + for (var t = 0, e = this.bones; t < e.length; t++) { + var i = e[t]; + if (null !== i && i._childrenTransformDirty) + return !0 + } + return !1 + } + , + e + } + )(t.BaseObject); + t.DeformVertices = e + } + )(r || (r = {})), + n = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e._bones = [], + e._slots = [], + e._constraints = [], + e._actions = [], + e._animation = null, + e._proxy = null, + e._replaceTextureAtlasData = null, + e._clock = null, + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.Armature]" + } + , + e._onSortSlots = function(t, e) { + return t._zOrder > e._zOrder ? 1 : -1 + } + , + e.prototype._onClear = function() { + null !== this._clock && this._clock.remove(this); + for (var t = 0, e = this._bones; t < e.length; t++) + e[t].returnToPool(); + for (var i = 0, n = this._slots; i < n.length; i++) + n[i].returnToPool(); + for (var r = 0, s = this._constraints; r < s.length; r++) + s[r].returnToPool(); + for (var a = 0, o = this._actions; a < o.length; a++) + o[a].returnToPool(); + null !== this._animation && this._animation.returnToPool(), + null !== this._proxy && this._proxy.dbClear(), + null !== this._replaceTextureAtlasData && this._replaceTextureAtlasData.returnToPool(), + this.inheritAnimation = !0, + this.userData = null, + this._lockUpdate = !1, + this._slotsDirty = !0, + this._zOrderDirty = !1, + this._flipX = !1, + this._flipY = !1, + this._cacheFrameIndex = -1, + this._bones.length = 0, + this._slots.length = 0, + this._constraints.length = 0, + this._actions.length = 0, + this._armatureData = null, + this._animation = null, + this._proxy = null, + this._display = null, + this._replaceTextureAtlasData = null, + this._replacedTexture = null, + this._dragonBones = null, + this._clock = null, + this._parent = null + } + , + e.prototype._sortZOrder = function(t, e) { + var i = this._armatureData.sortedSlots + , n = null === t; + if (this._zOrderDirty || !n) { + for (var r = 0, s = i.length; r < s; ++r) { + var a = n ? r : t[e + r]; + if (!(a < 0 || a >= s)) { + var o = i[a] + , l = this.getSlot(o.name); + null !== l && l._setZorder(r) + } + } + this._slotsDirty = !0, + this._zOrderDirty = !n + } + } + , + e.prototype._addBone = function(t) { + this._bones.indexOf(t) < 0 && this._bones.push(t) + } + , + e.prototype._addSlot = function(t) { + this._slots.indexOf(t) < 0 && this._slots.push(t) + } + , + e.prototype._addConstraint = function(t) { + this._constraints.indexOf(t) < 0 && this._constraints.push(t) + } + , + e.prototype._bufferAction = function(t, e) { + this._actions.indexOf(t) < 0 && (e ? this._actions.push(t) : this._actions.unshift(t)) + } + , + e.prototype.dispose = function() { + null !== this._armatureData && (this._lockUpdate = !0, + this._dragonBones.bufferObject(this)) + } + , + e.prototype.init = function(t, e, n, r) { + null === this._armatureData && (this._armatureData = t, + this._animation = i.BaseObject.borrowObject(i.Animation), + this._proxy = e, + this._display = n, + this._dragonBones = r, + this._proxy.dbInit(this), + this._animation.init(this), + this._animation.animations = this._armatureData.animations) + } + , + e.prototype.advanceTime = function(t) { + if (!this._lockUpdate) + if (null !== this._armatureData) + if (null !== this._armatureData.parent) { + var i = this._cacheFrameIndex; + if (this._animation.advanceTime(t), + this._slotsDirty && (this._slotsDirty = !1, + this._slots.sort(e._onSortSlots)), + this._cacheFrameIndex < 0 || this._cacheFrameIndex !== i) { + var n = 0 + , r = 0; + for (n = 0, + r = this._bones.length; n < r; ++n) + this._bones[n].update(this._cacheFrameIndex); + for (n = 0, + r = this._slots.length; n < r; ++n) + this._slots[n].update(this._cacheFrameIndex) + } + if (this._actions.length > 0) { + this._lockUpdate = !0; + for (var s = 0, a = this._actions; s < a.length; s++) { + var o = a[s] + , l = o.actionData; + if (null !== l && 0 === l.type) + if (null !== o.slot) + null !== (u = o.slot.childArmature) && u.animation.fadeIn(l.name); + else if (null !== o.bone) + for (var h = 0, c = this.getSlots(); h < c.length; h++) { + var u, _ = c[h]; + _.parent === o.bone && null !== (u = _.childArmature) && u.animation.fadeIn(l.name) + } + else + this._animation.fadeIn(l.name); + o.returnToPool() + } + this._actions.length = 0, + this._lockUpdate = !1 + } + this._proxy.dbUpdate() + } else + console.warn("The armature data has been disposed.\nPlease make sure dispose armature before call factory.clear()."); + else + console.warn("The armature has been disposed.") + } + , + e.prototype.invalidUpdate = function(t, e) { + if (void 0 === t && (t = null), + void 0 === e && (e = !1), + null !== t && t.length > 0) { + if (null !== (a = this.getBone(t)) && (a.invalidUpdate(), + e)) + for (var i = 0, n = this._slots; i < n.length; i++) + (h = n[i]).parent === a && h.invalidUpdate() + } else { + for (var r = 0, s = this._bones; r < s.length; r++) { + var a; + (a = s[r]).invalidUpdate() + } + if (e) + for (var o = 0, l = this._slots; o < l.length; o++) { + var h; + (h = l[o]).invalidUpdate() + } + } + } + , + e.prototype.containsPoint = function(t, e) { + for (var i = 0, n = this._slots; i < n.length; i++) { + var r = n[i]; + if (r.containsPoint(t, e)) + return r + } + return null + } + , + e.prototype.intersectsSegment = function(t, e, i, n, r, s, a) { + void 0 === r && (r = null), + void 0 === s && (s = null), + void 0 === a && (a = null); + for (var o = t === i, l = 0, h = 0, c = 0, u = 0, _ = 0, f = 0, d = 0, p = 0, m = null, y = null, v = 0, g = this._slots; v < g.length; v++) { + var A = g[v]; + if (A.intersectsSegment(t, e, i, n, r, s, a) > 0) { + if (null === r && null === s) { + m = A; + break + } + var x; + null !== r && ((x = o ? r.y - e : r.x - t) < 0 && (x = -x), + (null === m || x < l) && (l = x, + c = r.x, + u = r.y, + m = A, + a && (d = a.x))), + null !== s && ((x = s.x - t) < 0 && (x = -x), + (null === y || x > h) && (h = x, + _ = s.x, + f = s.y, + y = A, + null !== a && (p = a.y))) + } + } + return null !== m && null !== r && (r.x = c, + r.y = u, + null !== a && (a.x = d)), + null !== y && null !== s && (s.x = _, + s.y = f, + null !== a && (a.y = p)), + m + } + , + e.prototype.getBone = function(t) { + for (var e = 0, i = this._bones; e < i.length; e++) { + var n = i[e]; + if (n.name === t) + return n + } + return null + } + , + e.prototype.getBoneByDisplay = function(t) { + var e = this.getSlotByDisplay(t); + return null !== e ? e.parent : null + } + , + e.prototype.getSlot = function(t) { + for (var e = 0, i = this._slots; e < i.length; e++) { + var n = i[e]; + if (n.name === t) + return n + } + return null + } + , + e.prototype.getSlotByDisplay = function(t) { + if (null !== t) + for (var e = 0, i = this._slots; e < i.length; e++) { + var n = i[e]; + if (n.display === t) + return n + } + return null + } + , + e.prototype.getBones = function() { + return this._bones + } + , + e.prototype.getSlots = function() { + return this._slots + } + , + Object.defineProperty(e.prototype, "flipX", { + get: function() { + return this._flipX + }, + set: function(t) { + this._flipX !== t && (this._flipX = t, + this.invalidUpdate()) + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "flipY", { + get: function() { + return this._flipY + }, + set: function(t) { + this._flipY !== t && (this._flipY = t, + this.invalidUpdate()) + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "cacheFrameRate", { + get: function() { + return this._armatureData.cacheFrameRate + }, + set: function(t) { + if (this._armatureData.cacheFrameRate !== t) { + this._armatureData.cacheFrames(t); + for (var e = 0, i = this._slots; e < i.length; e++) { + var n = i[e].childArmature; + null !== n && (n.cacheFrameRate = t) + } + } + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "name", { + get: function() { + return this._armatureData.name + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "armatureData", { + get: function() { + return this._armatureData + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "animation", { + get: function() { + return this._animation + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "proxy", { + get: function() { + return this._proxy + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "eventDispatcher", { + get: function() { + return this._proxy + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "display", { + get: function() { + return this._display + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "replacedTexture", { + get: function() { + return this._replacedTexture + }, + set: function(t) { + if (this._replacedTexture !== t) { + null !== this._replaceTextureAtlasData && (this._replaceTextureAtlasData.returnToPool(), + this._replaceTextureAtlasData = null), + this._replacedTexture = t; + for (var e = 0, i = this._slots; e < i.length; e++) { + var n = i[e]; + n.invalidUpdate(), + n.update(-1) + } + } + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "clock", { + get: function() { + return this._clock + }, + set: function(t) { + if (this._clock !== t) { + null !== this._clock && this._clock.remove(this), + this._clock = t, + this._clock && this._clock.add(this); + for (var e = 0, i = this._slots; e < i.length; e++) { + var n = i[e].childArmature; + null !== n && (n.clock = this._clock) + } + } + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "parent", { + get: function() { + return this._parent + }, + enumerable: !0, + configurable: !0 + }), + e.prototype.replaceTexture = function(t) { + this.replacedTexture = t + } + , + e.prototype.hasEventListener = function(t) { + return this._proxy.hasDBEventListener(t) + } + , + e.prototype.addEventListener = function(t, e, i) { + this._proxy.addDBEventListener(t, e, i) + } + , + e.prototype.removeEventListener = function(t, e, i) { + this._proxy.removeDBEventListener(t, e, i) + } + , + e.prototype.enableAnimationCache = function(t) { + console.warn("Deprecated."), + this.cacheFrameRate = t + } + , + e.prototype.getDisplay = function() { + return this._display + } + , + e + } + )((i = r || (r = {})).BaseObject), + i.Armature = n, + (function(t) { + var e = (function(e) { + function i() { + var i = null !== e && e.apply(this, arguments) || this; + return i.globalTransformMatrix = new t.Matrix, + i.global = new t.Transform, + i.offset = new t.Transform, + i + } + return s(i, e), + i.prototype._onClear = function() { + this.globalTransformMatrix.identity(), + this.global.identity(), + this.offset.identity(), + this.origin = null, + this.userData = null, + this._globalDirty = !1, + this._armature = null + } + , + i.prototype.updateGlobalTransform = function() { + this._globalDirty && (this._globalDirty = !1, + this.global.fromMatrix(this.globalTransformMatrix)) + } + , + Object.defineProperty(i.prototype, "armature", { + get: function() { + return this._armature + }, + enumerable: !0, + configurable: !0 + }), + i._helpMatrix = new t.Matrix, + i._helpTransform = new t.Transform, + i._helpPoint = new t.Point, + i + } + )(t.BaseObject); + t.TransformObject = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i() { + var i = null !== e && e.apply(this, arguments) || this; + return i.animationPose = new t.Transform, + i._blendState = new t.BlendState, + i + } + return s(i, e), + i.toString = function() { + return "[class dragonBones.Bone]" + } + , + i.prototype._onClear = function() { + e.prototype._onClear.call(this), + this.offsetMode = 1, + this.animationPose.identity(), + this._transformDirty = !1, + this._childrenTransformDirty = !1, + this._localDirty = !0, + this._hasConstraint = !1, + this._visible = !0, + this._cachedFrameIndex = -1, + this._blendState.clear(), + this._boneData = null, + this._parent = null, + this._cachedFrameIndices = null + } + , + i.prototype._updateGlobalTransformMatrix = function(e) { + var i = this._boneData + , n = this.global + , r = this.globalTransformMatrix + , s = this.origin + , a = this.offset + , o = this.animationPose + , l = this._parent + , h = this._armature.flipX + , c = this._armature.flipY === t.DragonBones.yDown + , u = null !== l + , _ = 0; + if (1 === this.offsetMode ? null !== s ? (n.x = s.x + a.x + o.x, + n.scaleX = s.scaleX * a.scaleX * o.scaleX, + n.scaleY = s.scaleY * a.scaleY * o.scaleY, + t.DragonBones.yDown ? (n.y = s.y + a.y + o.y, + n.skew = s.skew + a.skew + o.skew, + n.rotation = s.rotation + a.rotation + o.rotation) : (n.y = s.y - a.y + o.y, + n.skew = s.skew - a.skew + o.skew, + n.rotation = s.rotation - a.rotation + o.rotation)) : (n.copyFrom(a), + t.DragonBones.yDown || (n.y = -n.y, + n.skew = -n.skew, + n.rotation = -n.rotation), + n.add(o)) : 0 === this.offsetMode ? null !== s ? n.copyFrom(s).add(o) : n.copyFrom(o) : (u = !1, + n.copyFrom(a), + t.DragonBones.yDown || (n.y = -n.y, + n.skew = -n.skew, + n.rotation = -n.rotation)), + u) { + var f = 0 === l._boneData.type ? l.globalTransformMatrix : l._getGlobalTransformMatrix(n.x, n.y); + if (i.inheritScale) + i.inheritRotation || (l.updateGlobalTransform(), + _ = h && c ? n.rotation - (l.global.rotation + Math.PI) : h ? n.rotation + l.global.rotation + Math.PI : c ? n.rotation + l.global.rotation : n.rotation - l.global.rotation, + n.rotation = _), + n.toMatrix(r), + r.concat(f), + i.inheritTranslation ? (n.x = r.tx, + n.y = r.ty) : (r.tx = n.x, + r.ty = n.y), + e ? n.fromMatrix(r) : this._globalDirty = !0; + else { + if (i.inheritTranslation) { + var d = n.x + , p = n.y; + n.x = f.a * d + f.c * p + f.tx, + n.y = f.b * d + f.d * p + f.ty + } else + h && (n.x = -n.x), + c && (n.y = -n.y); + i.inheritRotation ? (l.updateGlobalTransform(), + _ = l.global.scaleX < 0 ? n.rotation + l.global.rotation + Math.PI : n.rotation + l.global.rotation, + f.a * f.d - f.b * f.c < 0 && (_ -= 2 * n.rotation, + (h !== c || i.inheritReflection) && (n.skew += Math.PI), + t.DragonBones.yDown || (n.skew = -n.skew)), + n.rotation = _) : (h || c) && (h && c ? _ = n.rotation + Math.PI : (_ = h ? Math.PI - n.rotation : -n.rotation, + n.skew += Math.PI), + n.rotation = _), + n.toMatrix(r) + } + } else + (h || c) && (h && (n.x = -n.x), + c && (n.y = -n.y), + h && c ? _ = n.rotation + Math.PI : (_ = h ? Math.PI - n.rotation : -n.rotation, + n.skew += Math.PI), + n.rotation = _), + n.toMatrix(r) + } + , + i.prototype.init = function(t, e) { + null === this._boneData && (this._boneData = t, + this._armature = e, + null !== this._boneData.parent && (this._parent = this._armature.getBone(this._boneData.parent.name)), + this._armature._addBone(this), + this.origin = this._boneData.transform) + } + , + i.prototype.update = function(t) { + if (this._blendState.dirty = !1, + t >= 0 && null !== this._cachedFrameIndices) { + var e = this._cachedFrameIndices[t]; + if (e >= 0 && this._cachedFrameIndex === e) + this._transformDirty = !1; + else if (e >= 0) + this._transformDirty = !0, + this._cachedFrameIndex = e; + else { + if (this._hasConstraint) + for (var i = 0, n = this._armature._constraints; i < n.length; i++) + (a = n[i])._root === this && a.update(); + this._transformDirty || null !== this._parent && this._parent._childrenTransformDirty ? (this._transformDirty = !0, + this._cachedFrameIndex = -1) : this._cachedFrameIndex >= 0 ? (this._transformDirty = !1, + this._cachedFrameIndices[t] = this._cachedFrameIndex) : (this._transformDirty = !0, + this._cachedFrameIndex = -1) + } + } else { + if (this._hasConstraint) + for (var r = 0, s = this._armature._constraints; r < s.length; r++) { + var a; + (a = s[r])._root === this && a.update() + } + (this._transformDirty || null !== this._parent && this._parent._childrenTransformDirty) && (t = -1, + this._transformDirty = !0, + this._cachedFrameIndex = -1) + } + if (this._transformDirty) + if (this._transformDirty = !1, + this._childrenTransformDirty = !0, + this._cachedFrameIndex < 0) { + var o = t >= 0; + this._localDirty && this._updateGlobalTransformMatrix(o), + o && null !== this._cachedFrameIndices && (this._cachedFrameIndex = this._cachedFrameIndices[t] = this._armature._armatureData.setCacheFrame(this.globalTransformMatrix, this.global)) + } else + this._armature._armatureData.getCacheFrame(this.globalTransformMatrix, this.global, this._cachedFrameIndex); + else + this._childrenTransformDirty && (this._childrenTransformDirty = !1); + this._localDirty = !0 + } + , + i.prototype.updateByConstraint = function() { + this._localDirty && (this._localDirty = !1, + (this._transformDirty || null !== this._parent && this._parent._childrenTransformDirty) && this._updateGlobalTransformMatrix(!0), + this._transformDirty = !0) + } + , + i.prototype.invalidUpdate = function() { + this._transformDirty = !0 + } + , + i.prototype.contains = function(t) { + if (t === this) + return !1; + for (var e = t; e !== this && null !== e; ) + e = e.parent; + return e === this + } + , + Object.defineProperty(i.prototype, "boneData", { + get: function() { + return this._boneData + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "visible", { + get: function() { + return this._visible + }, + set: function(t) { + if (this._visible !== t) { + this._visible = t; + for (var e = 0, i = this._armature.getSlots(); e < i.length; e++) { + var n = i[e]; + n.parent === this && n._updateVisible() + } + } + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "name", { + get: function() { + return this._boneData.name + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "parent", { + get: function() { + return this._parent + }, + enumerable: !0, + configurable: !0 + }), + i.prototype.getBones = function() { + console.warn("Deprecated."); + for (var t = new Array, e = 0, i = this._armature.getBones(); e < i.length; e++) { + var n = i[e]; + n.parent === this && t.push(n) + } + return t + } + , + i.prototype.getSlots = function() { + console.warn("Deprecated."); + for (var t = new Array, e = 0, i = this._armature.getSlots(); e < i.length; e++) { + var n = i[e]; + n.parent === this && t.push(n) + } + return t + } + , + Object.defineProperty(i.prototype, "slot", { + get: function() { + console.warn("Deprecated."); + for (var t = 0, e = this._armature.getSlots(); t < e.length; t++) { + var i = e[t]; + if (i.parent === this) + return i + } + return null + }, + enumerable: !0, + configurable: !0 + }), + i + } + )(t.TransformObject); + t.Bone = e + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e._vertices = [], + e._deformVertices = [], + e._hullCache = [], + e._matrixCahce = [], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.Surface]" + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this._dX = 0, + this._dY = 0, + this._k = 0, + this._kX = 0, + this._kY = 0, + this._vertices.length = 0, + this._deformVertices.length = 0, + this._matrixCahce.length = 0, + this._hullCache.length = 0 + } + , + e.prototype._getAffineTransform = function(t, e, i, n, r, s, a, o, l, h, c, u, _) { + var f = a - r + , d = o - s + , p = l - r + , m = h - s; + c.rotation = Math.atan2(d, f), + c.skew = Math.atan2(m, p) - .5 * Math.PI - c.rotation, + _ && (c.rotation += Math.PI), + c.scaleX = Math.sqrt(f * f + d * d) / i, + c.scaleY = Math.sqrt(p * p + m * m) / n, + c.toMatrix(u), + c.x = u.tx = r - (u.a * t + u.c * e), + c.y = u.ty = s - (u.b * t + u.d * e) + } + , + e.prototype._updateVertices = function() { + var t = this._boneData.vertices + , e = this._vertices + , i = this._deformVertices; + if (null !== this._parent) + if (1 === this._parent._boneData.type) + for (var n = 0, r = t.length; n < r; n += 2) { + var s = t[n] + i[n] + , a = t[n + 1] + i[n] + , o = this._parent._getGlobalTransformMatrix(s, a); + e[n] = o.a * s + o.c * a + o.tx, + e[n + 1] = o.b * s + o.d * a + o.ty + } + else { + var l = this._parent.globalTransformMatrix; + for (n = 0, + r = t.length; n < r; n += 2) + s = t[n] + i[n], + a = t[n + 1] + i[n + 1], + e[n] = l.a * s + l.c * a + l.tx, + e[n + 1] = l.b * s + l.d * a + l.ty + } + else + for (n = 0, + r = t.length; n < r; n += 2) + e[n] = t[n] + i[n], + e[n + 1] = t[n + 1] + i[n + 1] + } + , + e.prototype._updateGlobalTransformMatrix = function() { + var t = 2 * this._boneData.segmentX + , e = this._vertices.length - 2 + , i = this._vertices[0] + , n = this._vertices[1] + , r = this._vertices[t] + , s = this._vertices[t + 1] + , a = this._vertices[e] + , o = this._vertices[e + 1] + , l = this._vertices[e - t] + , h = this._vertices[e - t + 1] + , c = i + .5 * (a - i) + , u = n + .5 * (o - n) + , _ = c + .5 * (r + .5 * (l - r) - c) + , f = u + .5 * (s + .5 * (h - s) - u) + , d = r + .5 * (a - r) + , p = s + .5 * (o - s) + , m = l + .5 * (a - l) + , y = h + .5 * (o - h); + this._globalDirty = !1, + this._getAffineTransform(0, 0, 200, 200, _, f, d, p, m, y, this.global, this.globalTransformMatrix, !1) + } + , + e.prototype._getGlobalTransformMatrix = function(t, i) { + var n = 1e3; + if (t < -n || n < t || i < -n || n < i) + return this.globalTransformMatrix; + var r = !1 + , s = 200 + , a = this._boneData + , o = a.segmentX + , l = a.segmentY + , h = 2 * a.segmentX + , c = this._dX + , u = this._dY + , _ = Math.floor((t + s) / c) + , f = Math.floor((i + s) / u) + , d = 0 + , p = _ * c - s + , m = f * u - s + , y = this._matrixCahce + , v = e._helpMatrix; + if (t < -s) { + if (i < -s || i >= s) + return this.globalTransformMatrix; + if (d = 7 * (2 * (o * (l + 1) + 2 * o + l + f) + ((r = i > this._kX * (t + s) + m) ? 1 : 0)), + this._matrixCahce[d] > 0) + v.copyFromArray(y, d + 1); + else { + var g = f * (h + 2) + , A = this._hullCache[4] + , x = this._hullCache[5] + , b = this._hullCache[2] - (l - f) * A + , C = this._hullCache[3] - (l - f) * x + , T = this._vertices; + r ? this._getAffineTransform(-s, m + u, 800, u, T[g + h + 2], T[g + h + 3], b + A, C + x, T[g], T[g + 1], e._helpTransform, v, !0) : this._getAffineTransform(-n, m, 800, u, b, C, T[g], T[g + 1], b + A, C + x, e._helpTransform, v, !1), + y[d] = 1, + y[d + 1] = v.a, + y[d + 2] = v.b, + y[d + 3] = v.c, + y[d + 4] = v.d, + y[d + 5] = v.tx, + y[d + 6] = v.ty + } + } else if (t >= s) { + if (i < -s || i >= s) + return this.globalTransformMatrix; + d = 7 * (2 * (o * (l + 1) + o + f) + ((r = i > this._kX * (t - n) + m) ? 1 : 0)), + this._matrixCahce[d] > 0 ? v.copyFromArray(y, d + 1) : (g = (f + 1) * (h + 2) - 2, + A = this._hullCache[4], + x = this._hullCache[5], + b = this._hullCache[0] + f * A, + C = this._hullCache[1] + f * x, + T = this._vertices, + r ? this._getAffineTransform(n, m + u, 800, u, b + A, C + x, T[g + h + 2], T[g + h + 3], b, C, e._helpTransform, v, !0) : this._getAffineTransform(s, m, 800, u, T[g], T[g + 1], b, C, T[g + h + 2], T[g + h + 3], e._helpTransform, v, !1), + y[d] = 1, + y[d + 1] = v.a, + y[d + 2] = v.b, + y[d + 3] = v.c, + y[d + 4] = v.d, + y[d + 5] = v.tx, + y[d + 6] = v.ty) + } else if (i < -s) { + if (t < -s || t >= s) + return this.globalTransformMatrix; + d = 7 * (o * (l + 1) + 2 * _ + ((r = i > this._kY * (t - p - c) - n) ? 1 : 0)), + this._matrixCahce[d] > 0 ? v.copyFromArray(y, d + 1) : (g = 2 * _, + A = this._hullCache[10], + x = this._hullCache[11], + b = this._hullCache[8] + _ * A, + C = this._hullCache[9] + _ * x, + T = this._vertices, + r ? this._getAffineTransform(p + c, -s, c, 800, T[g + 2], T[g + 3], T[g], T[g + 1], b + A, C + x, e._helpTransform, v, !0) : this._getAffineTransform(p, -n, c, 800, b, C, b + A, C + x, T[g], T[g + 1], e._helpTransform, v, !1), + y[d] = 1, + y[d + 1] = v.a, + y[d + 2] = v.b, + y[d + 3] = v.c, + y[d + 4] = v.d, + y[d + 5] = v.tx, + y[d + 6] = v.ty) + } else if (i >= s) { + if (t < -s || t >= s) + return this.globalTransformMatrix; + d = 7 * (2 * (o * (l + 1) + o + l + f) + ((r = i > this._kY * (t - p - c) + s) ? 1 : 0)), + this._matrixCahce[d] > 0 ? v.copyFromArray(y, d + 1) : (g = l * (h + 2) + 2 * _, + A = this._hullCache[10], + x = this._hullCache[11], + b = this._hullCache[6] - (o - _) * A, + C = this._hullCache[7] - (o - _) * x, + T = this._vertices, + r ? this._getAffineTransform(p + c, n, c, 800, b + A, C + x, b, C, T[g + 2], T[g + 3], e._helpTransform, v, !0) : this._getAffineTransform(p, s, c, 800, T[g], T[g + 1], T[g + 2], T[g + 3], b, C, e._helpTransform, v, !1), + y[d] = 1, + y[d + 1] = v.a, + y[d + 2] = v.b, + y[d + 3] = v.c, + y[d + 4] = v.d, + y[d + 5] = v.tx, + y[d + 6] = v.ty) + } else + d = 7 * (2 * (o * f + _) + ((r = i > this._k * (t - p - c) + m) ? 1 : 0)), + this._matrixCahce[d] > 0 ? v.copyFromArray(y, d + 1) : (g = 2 * _ + f * (h + 2), + T = this._vertices, + r ? this._getAffineTransform(p + c, m + u, c, u, T[g + h + 4], T[g + h + 5], T[g + h + 2], T[g + h + 3], T[g + 2], T[g + 3], e._helpTransform, v, !0) : this._getAffineTransform(p, m, c, u, T[g], T[g + 1], T[g + 2], T[g + 3], T[g + h + 2], T[g + h + 3], e._helpTransform, v, !1), + y[d] = 1, + y[d + 1] = v.a, + y[d + 2] = v.b, + y[d + 3] = v.c, + y[d + 4] = v.d, + y[d + 5] = v.tx, + y[d + 6] = v.ty); + return v + } + , + e.prototype.init = function(e, i) { + if (null === this._boneData) { + t.prototype.init.call(this, e, i); + var n = e.segmentX + , r = e.segmentY + , s = e.vertices.length; + this._dX = 400 / n, + this._dY = 400 / r, + this._k = -this._dY / this._dX, + this._kX = -this._dY / 800, + this._kY = -800 / this._dX, + this._vertices.length = s, + this._deformVertices.length = s, + this._matrixCahce.length = 14 * (n * r + 2 * n + 2 * r), + this._hullCache.length = 10; + for (var a = 0; a < s; ++a) + this._deformVertices[a] = 0 + } + } + , + e.prototype.update = function(t) { + if (this._blendState.dirty = !1, + t >= 0 && null !== this._cachedFrameIndices) { + var i = this._cachedFrameIndices[t]; + if (i >= 0 && this._cachedFrameIndex === i) + this._transformDirty = !1; + else if (i >= 0) + this._transformDirty = !0, + this._cachedFrameIndex = i; + else { + if (this._hasConstraint) + for (var n = 0, r = this._armature._constraints; n < r.length; n++) + (o = r[n])._root === this && o.update(); + this._transformDirty || null !== this._parent && this._parent._childrenTransformDirty ? (this._transformDirty = !0, + this._cachedFrameIndex = -1) : this._cachedFrameIndex >= 0 ? (this._transformDirty = !1, + this._cachedFrameIndices[t] = this._cachedFrameIndex) : (this._transformDirty = !0, + this._cachedFrameIndex = -1) + } + } else { + if (this._hasConstraint) + for (var s = 0, a = this._armature._constraints; s < a.length; s++) { + var o; + (o = a[s])._root === this && o.update() + } + (this._transformDirty || null !== this._parent && this._parent._childrenTransformDirty) && (t = -1, + this._transformDirty = !0, + this._cachedFrameIndex = -1) + } + if (this._transformDirty) { + this._transformDirty = !1, + this._childrenTransformDirty = !0; + for (var l = 0, h = this._matrixCahce.length; l < h; l += 7) + this._matrixCahce[l] = -1; + if (this._updateVertices(), + this._cachedFrameIndex < 0) { + var c = t >= 0; + this._localDirty && this._updateGlobalTransformMatrix(c), + c && null !== this._cachedFrameIndices && (this._cachedFrameIndex = this._cachedFrameIndices[t] = this._armature._armatureData.setCacheFrame(this.globalTransformMatrix, this.global)) + } else + this._armature._armatureData.getCacheFrame(this.globalTransformMatrix, this.global, this._cachedFrameIndex); + var u = 2 * this.global.x + , _ = 2 * this.global.y + , f = e._helpPoint; + this.globalTransformMatrix.transformPoint(1e3, -200, f), + this._hullCache[0] = f.x, + this._hullCache[1] = f.y, + this._hullCache[2] = u - f.x, + this._hullCache[3] = _ - f.y, + this.globalTransformMatrix.transformPoint(0, this._dY, f, !0), + this._hullCache[4] = f.x, + this._hullCache[5] = f.y, + this.globalTransformMatrix.transformPoint(200, 1e3, f), + this._hullCache[6] = f.x, + this._hullCache[7] = f.y, + this._hullCache[8] = u - f.x, + this._hullCache[9] = _ - f.y, + this.globalTransformMatrix.transformPoint(this._dX, 0, f, !0), + this._hullCache[10] = f.x, + this._hullCache[11] = f.y + } else + this._childrenTransformDirty && (this._childrenTransformDirty = !1); + this._localDirty = !0 + } + , + e + } + )(t.Bone); + t.Surface = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i() { + var i = null !== e && e.apply(this, arguments) || this; + return i._localMatrix = new t.Matrix, + i._colorTransform = new t.ColorTransform, + i._displayDatas = [], + i._displayList = [], + i._deformVertices = null, + i._rawDisplay = null, + i._meshDisplay = null, + i + } + return s(i, e), + i.prototype._onClear = function() { + e.prototype._onClear.call(this); + for (var i = [], n = 0, r = this._displayList; n < r.length; n++) + null !== (o = r[n]) && o !== this._rawDisplay && o !== this._meshDisplay && i.indexOf(o) < 0 && i.push(o); + for (var s = 0, a = i; s < a.length; s++) { + var o; + (o = a[s])instanceof t.Armature ? o.dispose() : this._disposeDisplay(o, !0) + } + null !== this._deformVertices && this._deformVertices.returnToPool(), + null !== this._meshDisplay && this._meshDisplay !== this._rawDisplay && this._disposeDisplay(this._meshDisplay, !1), + null !== this._rawDisplay && this._disposeDisplay(this._rawDisplay, !1), + this.displayController = null, + this._displayDirty = !1, + this._zOrderDirty = !1, + this._blendModeDirty = !1, + this._colorDirty = !1, + this._transformDirty = !1, + this._visible = !0, + this._blendMode = 0, + this._displayIndex = -1, + this._animationDisplayIndex = -1, + this._zOrder = 0, + this._cachedFrameIndex = -1, + this._pivotX = 0, + this._pivotY = 0, + this._localMatrix.identity(), + this._colorTransform.identity(), + this._displayList.length = 0, + this._displayDatas.length = 0, + this._slotData = null, + this._rawDisplayDatas = null, + this._displayData = null, + this._boundingBoxData = null, + this._textureData = null, + this._deformVertices = null, + this._rawDisplay = null, + this._meshDisplay = null, + this._display = null, + this._childArmature = null, + this._parent = null, + this._cachedFrameIndices = null + } + , + i.prototype._getDefaultRawDisplayData = function(t) { + var e = this._armature._armatureData.defaultSkin; + if (null !== e) { + var i = e.getDisplays(this._slotData.name); + if (null !== i) + return t < i.length ? i[t] : null + } + return null + } + , + i.prototype._updateDisplayData = function() { + var e = this._displayData + , n = null !== this._deformVertices ? this._deformVertices.verticesData : null + , r = this._textureData + , s = null + , a = null; + if (this._displayData = null, + this._boundingBoxData = null, + this._textureData = null, + this._displayIndex >= 0 && (null !== this._rawDisplayDatas && (s = this._displayIndex < this._rawDisplayDatas.length ? this._rawDisplayDatas[this._displayIndex] : null), + null === s && (s = this._getDefaultRawDisplayData(this._displayIndex)), + this._displayIndex < this._displayDatas.length && (this._displayData = this._displayDatas[this._displayIndex])), + null !== this._displayData && (2 === this._displayData.type ? a = this._displayData.vertices : 4 === this._displayData.type ? a = this._displayData.vertices : null !== s && (2 === s.type ? a = s.vertices : 4 === s.type && (a = s.vertices)), + 3 === this._displayData.type ? this._boundingBoxData = this._displayData.boundingBox : null !== s && 3 === s.type && (this._boundingBoxData = s.boundingBox), + 0 === this._displayData.type ? this._textureData = this._displayData.texture : 2 === this._displayData.type && (this._textureData = this._displayData.texture)), + this._displayData !== e || a !== n || this._textureData !== r) { + if (null === a && null !== this._textureData) { + var o = this._displayData + , l = this._textureData.parent.scale * this._armature._armatureData.scale + , h = this._textureData.frame; + this._pivotX = o.pivot.x, + this._pivotY = o.pivot.y; + var c = null !== h ? h : this._textureData.region + , u = c.width + , _ = c.height; + this._textureData.rotated && null === h && (u = c.height, + _ = c.width), + this._pivotX *= u * l, + this._pivotY *= _ * l, + null !== h && (this._pivotX += h.x * l, + this._pivotY += h.y * l), + null !== this._displayData && null !== s && this._displayData !== s && (s.transform.toMatrix(i._helpMatrix), + i._helpMatrix.invert(), + i._helpMatrix.transformPoint(0, 0, i._helpPoint), + this._pivotX -= i._helpPoint.x, + this._pivotY -= i._helpPoint.y, + this._displayData.transform.toMatrix(i._helpMatrix), + i._helpMatrix.invert(), + i._helpMatrix.transformPoint(0, 0, i._helpPoint), + this._pivotX += i._helpPoint.x, + this._pivotY += i._helpPoint.y), + t.DragonBones.yDown || (this._pivotY = (this._textureData.rotated ? this._textureData.region.width : this._textureData.region.height) * l - this._pivotY) + } else + this._pivotX = 0, + this._pivotY = 0; + null !== s ? this.origin = s.transform : null !== this._displayData ? this.origin = this._displayData.transform : this.origin = null, + a !== n ? (null === this._deformVertices && (this._deformVertices = t.BaseObject.borrowObject(t.DeformVertices)), + this._deformVertices.init(a, this._armature)) : null !== this._deformVertices && this._textureData !== r && (this._deformVertices.verticesDirty = !0), + this._displayDirty = !0, + this._transformDirty = !0 + } + } + , + i.prototype._updateDisplay = function() { + var e = null !== this._display ? this._display : this._rawDisplay + , i = this._childArmature; + this._displayIndex >= 0 && this._displayIndex < this._displayList.length ? (this._display = this._displayList[this._displayIndex], + null !== this._display && this._display instanceof t.Armature ? (this._childArmature = this._display, + this._display = this._childArmature.display) : this._childArmature = null) : (this._display = null, + this._childArmature = null); + var n = null !== this._display ? this._display : this._rawDisplay; + if (n !== e && (this._onUpdateDisplay(), + this._replaceDisplay(e), + this._transformDirty = !0, + this._visibleDirty = !0, + this._blendModeDirty = !0, + this._colorDirty = !0), + n !== this._rawDisplay && n !== this._meshDisplay || this._updateFrame(), + this._childArmature !== i && (null !== i && (i._parent = null, + i.clock = null, + i.inheritAnimation && i.animation.reset()), + null !== this._childArmature && (this._childArmature._parent = this, + this._childArmature.clock = this._armature.clock, + this._childArmature.inheritAnimation))) { + if (0 === this._childArmature.cacheFrameRate) { + var r = this._armature.cacheFrameRate; + 0 !== r && (this._childArmature.cacheFrameRate = r) + } + var s = null; + if (null !== this._displayData && 1 === this._displayData.type) + s = this._displayData.actions; + else if (this._displayIndex >= 0 && null !== this._rawDisplayDatas) { + var a = this._displayIndex < this._rawDisplayDatas.length ? this._rawDisplayDatas[this._displayIndex] : null; + null === a && (a = this._getDefaultRawDisplayData(this._displayIndex)), + null !== a && 1 === a.type && (s = a.actions) + } + if (null !== s && s.length > 0) + for (var o = 0, l = s; o < l.length; o++) { + var h = l[o] + , c = t.BaseObject.borrowObject(t.EventObject); + t.EventObject.actionDataToInstance(h, c, this._armature), + c.slot = this, + this._armature._bufferAction(c, !1) + } + else + this._childArmature.animation.play() + } + } + , + i.prototype._updateGlobalTransformMatrix = function(t) { + var e = 0 === this._parent._boneData.type ? this._parent.globalTransformMatrix : this._parent._getGlobalTransformMatrix(this.global.x, this.global.y); + this.globalTransformMatrix.copyFrom(this._localMatrix), + this.globalTransformMatrix.concat(e), + t ? this.global.fromMatrix(this.globalTransformMatrix) : this._globalDirty = !0 + } + , + i.prototype._setDisplayIndex = function(t, e) { + if (void 0 === e && (e = !1), + e) { + if (this._animationDisplayIndex === t) + return !1; + this._animationDisplayIndex = t + } + return this._displayIndex !== t && (this._displayIndex = t, + this._displayDirty = !0, + this._updateDisplayData(), + this._displayDirty) + } + , + i.prototype._setZorder = function(t) { + return this._zOrder, + this._zOrder = t, + this._zOrderDirty = !0, + this._zOrderDirty + } + , + i.prototype._setColor = function(t) { + return this._colorTransform.copyFrom(t), + this._colorDirty = !0, + this._colorDirty + } + , + i.prototype._setDisplayList = function(e) { + if (null !== e && e.length > 0) { + this._displayList.length !== e.length && (this._displayList.length = e.length); + for (var i = 0, n = e.length; i < n; ++i) { + var r = e[i]; + null !== r && r !== this._rawDisplay && r !== this._meshDisplay && !(r instanceof t.Armature) && this._displayList.indexOf(r) < 0 && this._initDisplay(r, !0), + this._displayList[i] = r + } + } else + this._displayList.length > 0 && (this._displayList.length = 0); + return this._displayIndex >= 0 && this._displayIndex < this._displayList.length ? this._displayDirty = this._display !== this._displayList[this._displayIndex] : this._displayDirty = null !== this._display, + this._updateDisplayData(), + this._displayDirty + } + , + i.prototype.init = function(t, e, i, n) { + if (null === this._slotData) { + this._slotData = t, + this._isFromCache = !1, + this._visibleDirty = !0, + this._blendModeDirty = !0, + this._colorDirty = !0, + this._blendMode = this._slotData.blendMode, + this._zOrder = this._slotData.zOrder, + this._colorTransform.copyFrom(this._slotData.color), + this._rawDisplay = i, + this._meshDisplay = n, + this._armature = e; + var r = this._armature.getBone(this._slotData.parent.name); + null !== r && (this._parent = r), + this._armature._addSlot(this), + this._initDisplay(this._rawDisplay, !1), + this._rawDisplay !== this._meshDisplay && this._initDisplay(this._meshDisplay, !1), + this._onUpdateDisplay(), + this._addDisplay() + } + } + , + i.prototype.update = function(t) { + if (this._isFromCache = !1, + this._displayDirty && (this._displayDirty = !1, + this._updateDisplay(), + this._transformDirty && (null !== this.origin ? this.global.copyFrom(this.origin).add(this.offset).toMatrix(this._localMatrix) : this.global.copyFrom(this.offset).toMatrix(this._localMatrix))), + this._zOrderDirty && (this._zOrderDirty = !1, + this._updateZOrder()), + t >= 0 && null !== this._cachedFrameIndices) { + var e = this._cachedFrameIndices[t]; + e >= 0 && this._cachedFrameIndex === e ? this._transformDirty = !1 : e >= 0 ? (this._transformDirty = !0, + this._cachedFrameIndex = e) : this._transformDirty || this._parent._childrenTransformDirty ? (this._transformDirty = !0, + this._cachedFrameIndex = -1) : this._cachedFrameIndex >= 0 ? (this._transformDirty = !1, + this._cachedFrameIndices[t] = this._cachedFrameIndex) : (this._transformDirty = !0, + this._cachedFrameIndex = -1) + } else + (this._transformDirty || this._parent._childrenTransformDirty) && (t = -1, + this._transformDirty = !0, + this._cachedFrameIndex = -1); + if (null !== this._display) { + if (this._visibleDirty && (this._visibleDirty = !1, + this._updateVisible()), + this._blendModeDirty && (this._blendModeDirty = !1, + this._updateBlendMode()), + this._colorDirty && (this._colorDirty = !1, + this._updateColor()), + null !== this._deformVertices && null !== this._deformVertices.verticesData && this._display === this._meshDisplay) { + var i = null !== this._deformVertices.verticesData.weight + , n = 0 !== this._parent._boneData.type; + if ((this._deformVertices.verticesDirty || i && this._deformVertices.isBonesUpdate() || n && this._parent._childrenTransformDirty) && (this._deformVertices.verticesDirty = !1, + this._updateMesh()), + i || n) + return + } + if (this._transformDirty) { + if (this._transformDirty = !1, + this._cachedFrameIndex < 0) { + var r = t >= 0; + this._updateGlobalTransformMatrix(r), + r && null !== this._cachedFrameIndices && (this._cachedFrameIndex = this._cachedFrameIndices[t] = this._armature._armatureData.setCacheFrame(this.globalTransformMatrix, this.global)) + } else + this._isFromCache = !0, + this._armature._armatureData.getCacheFrame(this.globalTransformMatrix, this.global, this._cachedFrameIndex); + this._updateTransform() + } + } + } + , + i.prototype.updateTransformAndMatrix = function() { + this._transformDirty && (this._transformDirty = !1, + this._updateGlobalTransformMatrix(!1)) + } + , + i.prototype.replaceDisplayData = function(t, e) { + if (void 0 === e && (e = -1), + e < 0 && (e = this._displayIndex < 0 ? 0 : this._displayIndex), + this._displayDatas.length <= e) { + this._displayDatas.length = e + 1; + for (var i = 0, n = this._displayDatas.length; i < n; ++i) + this._displayDatas[i] || (this._displayDatas[i] = null) + } + this._displayDatas[e] = t + } + , + i.prototype.containsPoint = function(t, e) { + return null !== this._boundingBoxData && (this.updateTransformAndMatrix(), + i._helpMatrix.copyFrom(this.globalTransformMatrix), + i._helpMatrix.invert(), + i._helpMatrix.transformPoint(t, e, i._helpPoint), + this._boundingBoxData.containsPoint(i._helpPoint.x, i._helpPoint.y)) + } + , + i.prototype.intersectsSegment = function(t, e, n, r, s, a, o) { + if (void 0 === s && (s = null), + void 0 === a && (a = null), + void 0 === o && (o = null), + null === this._boundingBoxData) + return 0; + this.updateTransformAndMatrix(), + i._helpMatrix.copyFrom(this.globalTransformMatrix), + i._helpMatrix.invert(), + i._helpMatrix.transformPoint(t, e, i._helpPoint), + t = i._helpPoint.x, + e = i._helpPoint.y, + i._helpMatrix.transformPoint(n, r, i._helpPoint), + n = i._helpPoint.x, + r = i._helpPoint.y; + var l = this._boundingBoxData.intersectsSegment(t, e, n, r, s, a, o); + return l > 0 && (1 === l || 2 === l ? null !== s ? (this.globalTransformMatrix.transformPoint(s.x, s.y, s), + null !== a && (a.x = s.x, + a.y = s.y)) : null !== a && this.globalTransformMatrix.transformPoint(a.x, a.y, a) : (null !== s && this.globalTransformMatrix.transformPoint(s.x, s.y, s), + null !== a && this.globalTransformMatrix.transformPoint(a.x, a.y, a)), + null !== o && (this.globalTransformMatrix.transformPoint(Math.cos(o.x), Math.sin(o.x), i._helpPoint, !0), + o.x = Math.atan2(i._helpPoint.y, i._helpPoint.x), + this.globalTransformMatrix.transformPoint(Math.cos(o.y), Math.sin(o.y), i._helpPoint, !0), + o.y = Math.atan2(i._helpPoint.y, i._helpPoint.x))), + l + } + , + i.prototype.invalidUpdate = function() { + this._displayDirty = !0, + this._transformDirty = !0 + } + , + Object.defineProperty(i.prototype, "visible", { + get: function() { + return this._visible + }, + set: function(t) { + this._visible !== t && (this._visible = t, + this._updateVisible()) + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "displayIndex", { + get: function() { + return this._displayIndex + }, + set: function(t) { + this._setDisplayIndex(t) && this.update(-1) + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "name", { + get: function() { + return this._slotData.name + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "displayList", { + get: function() { + return this._displayList.concat() + }, + set: function(e) { + var i = this._displayList.concat() + , n = new Array; + this._setDisplayList(e) && this.update(-1); + for (var r = 0, s = i; r < s.length; r++) + null !== (l = s[r]) && l !== this._rawDisplay && l !== this._meshDisplay && this._displayList.indexOf(l) < 0 && n.indexOf(l) < 0 && n.push(l); + for (var a = 0, o = n; a < o.length; a++) { + var l; + (l = o[a])instanceof t.Armature || this._disposeDisplay(l, !0) + } + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "slotData", { + get: function() { + return this._slotData + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "rawDisplayDatas", { + get: function() { + return this._rawDisplayDatas + }, + set: function(t) { + if (this._rawDisplayDatas !== t) + if (this._displayDirty = !0, + this._rawDisplayDatas = t, + null !== this._rawDisplayDatas) { + this._displayDatas.length = this._rawDisplayDatas.length; + for (var e = 0, i = this._displayDatas.length; e < i; ++e) { + var n = this._rawDisplayDatas[e]; + null === n && (n = this._getDefaultRawDisplayData(e)), + this._displayDatas[e] = n + } + } else + this._displayDatas.length = 0 + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "displayData", { + get: function() { + return this._displayData + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "boundingBoxData", { + get: function() { + return this._boundingBoxData + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "rawDisplay", { + get: function() { + return this._rawDisplay + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "meshDisplay", { + get: function() { + return this._meshDisplay + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "display", { + get: function() { + return this._display + }, + set: function(t) { + if (this._display !== t) { + var e = this._displayList.length; + if (this._displayIndex < 0 && 0 === e && (this._displayIndex = 0), + !(this._displayIndex < 0)) { + var i = this.displayList; + e <= this._displayIndex && (i.length = this._displayIndex + 1), + i[this._displayIndex] = t, + this.displayList = i + } + } + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "childArmature", { + get: function() { + return this._childArmature + }, + set: function(t) { + this._childArmature !== t && (this.display = t) + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "parent", { + get: function() { + return this._parent + }, + enumerable: !0, + configurable: !0 + }), + i.prototype.getDisplay = function() { + return this._display + } + , + i.prototype.setDisplay = function(t) { + this.display = t + } + , + i + } + )(t.TransformObject); + t.Slot = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i() { + return null !== e && e.apply(this, arguments) || this + } + return s(i, e), + i.prototype._onClear = function() { + this._armature = null, + this._target = null, + this._root = null, + this._bone = null + } + , + Object.defineProperty(i.prototype, "name", { + get: function() { + return this._constraintData.name + }, + enumerable: !0, + configurable: !0 + }), + i._helpMatrix = new t.Matrix, + i._helpTransform = new t.Transform, + i._helpPoint = new t.Point, + i + } + )(t.BaseObject); + t.Constraint = e; + var i = (function(e) { + function i() { + return null !== e && e.apply(this, arguments) || this + } + return s(i, e), + i.toString = function() { + return "[class dragonBones.IKConstraint]" + } + , + i.prototype._onClear = function() { + e.prototype._onClear.call(this), + this._scaleEnabled = !1, + this._bendPositive = !1, + this._weight = 1, + this._constraintData = null + } + , + i.prototype._computeA = function() { + var e = this._target.global + , i = this._root.global + , n = this._root.globalTransformMatrix + , r = Math.atan2(e.y - i.y, e.x - i.x); + i.scaleX < 0 && (r += Math.PI), + i.rotation += t.Transform.normalizeRadian(r - i.rotation) * this._weight, + i.toMatrix(n) + } + , + i.prototype._computeB = function() { + var e = this._bone._boneData.length + , i = this._root + , n = this._target.global + , r = i.global + , s = this._bone.global + , a = this._bone.globalTransformMatrix + , o = a.a * e + , l = a.b * e + , h = o * o + l * l + , c = Math.sqrt(h) + , u = s.x - r.x + , _ = s.y - r.y + , f = u * u + _ * _ + , d = Math.sqrt(f) + , p = s.rotation + , m = r.rotation + , y = Math.atan2(_, u) + , v = (u = n.x - r.x) * u + (_ = n.y - r.y) * _ + , g = Math.sqrt(v) + , A = 0; + if (c + d <= g || g + c <= d || g + d <= c) + A = Math.atan2(n.y - r.y, n.x - r.x), + c + d <= g || d < c && (A += Math.PI); + else { + var x = (f - h + v) / (2 * v) + , b = Math.sqrt(f - x * x * v) / g + , C = r.x + u * x + , T = r.y + _ * x + , S = -_ * b + , w = u * b + , E = !1 + , M = i.parent; + if (null !== M) { + var D = M.globalTransformMatrix; + E = D.a * D.d - D.b * D.c < 0 + } + E !== this._bendPositive ? (s.x = C - S, + s.y = T - w) : (s.x = C + S, + s.y = T + w), + A = Math.atan2(s.y - r.y, s.x - r.x) + } + var B = t.Transform.normalizeRadian(A - y); + r.rotation = m + B * this._weight, + r.toMatrix(i.globalTransformMatrix); + var I = y + B * this._weight; + s.x = r.x + Math.cos(I) * d, + s.y = r.y + Math.sin(I) * d; + var P = Math.atan2(n.y - s.y, n.x - s.x); + s.scaleX < 0 && (P += Math.PI), + s.rotation = r.rotation + p - m + t.Transform.normalizeRadian(P - B - p) * this._weight, + s.toMatrix(a) + } + , + i.prototype.init = function(t, e) { + if (null === this._constraintData) { + this._constraintData = t, + this._armature = e, + this._target = this._armature.getBone(this._constraintData.target.name), + this._root = this._armature.getBone(this._constraintData.root.name), + this._bone = null !== this._constraintData.bone ? this._armature.getBone(this._constraintData.bone.name) : null; + var i = this._constraintData; + this._scaleEnabled = i.scaleEnabled, + this._bendPositive = i.bendPositive, + this._weight = i.weight, + this._root._hasConstraint = !0 + } + } + , + i.prototype.update = function() { + this._root.updateByConstraint(), + null !== this._bone ? (this._bone.updateByConstraint(), + this._computeB()) : this._computeA() + } + , + i.prototype.invalidUpdate = function() { + this._root.invalidUpdate(), + null !== this._bone && this._bone.invalidUpdate() + } + , + i + } + )(e); + t.IKConstraint = i; + var n = (function(e) { + function i() { + var t = null !== e && e.apply(this, arguments) || this; + return t._bones = [], + t._spaces = [], + t._positions = [], + t._curves = [], + t._boneLengths = [], + t._pathGlobalVertices = [], + t._segments = [10], + t + } + return s(i, e), + i.toString = function() { + return "[class dragonBones.PathConstraint]" + } + , + i.prototype._onClear = function() { + e.prototype._onClear.call(this), + this.dirty = !1, + this.pathOffset = 0, + this.position = 0, + this.spacing = 0, + this.rotateOffset = 0, + this.rotateMix = 1, + this.translateMix = 1, + this._pathSlot = null, + this._bones.length = 0, + this._spaces.length = 0, + this._positions.length = 0, + this._curves.length = 0, + this._boneLengths.length = 0, + this._pathGlobalVertices.length = 0 + } + , + i.prototype._updatePathVertices = function(t) { + var e = this._armature + , i = e.armatureData.parent + , n = e.armatureData.scale + , r = i.intArray + , s = i.floatArray + , a = t.offset + , o = r[a + 0] + , l = r[a + 2]; + this._pathGlobalVertices.length = 2 * o; + var h = t.weight; + if (null !== h) + for (var c = this._pathSlot._deformVertices.bones, u = h.bones.length, _ = h.offset, f = r[_ + 1], d = _ + 2 + u, p = (T = 0, + 0); T < o; T++) { + for (var m = 0, y = 0, v = 0, g = r[d++]; v < g; v++) { + var A = c[r[d++]]; + if (null !== A) { + A.updateByConstraint(), + C = A.globalTransformMatrix; + var x = s[f++]; + w = s[f++] * n, + E = s[f++] * n, + m += (C.a * w + C.c * E + C.tx) * x, + y += (C.b * w + C.d * E + C.ty) * x + } + } + this._pathGlobalVertices[p++] = m, + this._pathGlobalVertices[p++] = y + } + else { + var b = this._pathSlot.parent; + b.updateByConstraint(); + for (var C = b.globalTransformMatrix, T = 0, S = l; T < o; T += 2) { + var w = s[S++] * n + , E = s[S++] * n + , M = C.a * w + C.c * E + C.tx + , D = C.b * w + C.d * E + C.ty; + this._pathGlobalVertices[T] = M, + this._pathGlobalVertices[T + 1] = D + } + } + } + , + i.prototype._computeVertices = function(t, e, i, n) { + for (var r = i, s = t; r < e; r += 2) + n[r] = this._pathGlobalVertices[s++], + n[r + 1] = this._pathGlobalVertices[s++] + } + , + i.prototype._computeBezierCurve = function(t, e, i, n, r) { + var s = this._armature.armatureData.parent.intArray[t.vertices.offset + 0] + , a = this._positions + , o = this._spaces + , l = t.closed + , h = Array() + , c = 2 * s + , u = c / 6 + , _ = -1 + , f = this.position; + a.length = 3 * e + 2; + var d = 0; + if (t.constantSpeed) { + l ? (c += 2, + h.length = s, + this._computeVertices(2, c - 4, 0, h), + this._computeVertices(0, 2, c - 4, h), + h[c - 2] = h[0], + h[c - 1] = h[1]) : (u--, + c -= 4, + h.length = c, + this._computeVertices(2, c, 0, h)); + var p = new Array(u); + d = 0; + for (var m, y, v, g, A, x, b, C, T = h[0], S = h[1], w = 0, E = 0, M = 0, D = 0, B = 0, I = 0, P = (z = 0, + 2); z < u; z++, + P += 6) + w = h[P], + E = h[P + 1], + M = h[P + 2], + D = h[P + 3], + A = 2 * (m = .1875 * (T - 2 * w + M)) + (v = .09375 * (3 * (w - M) - T + (B = h[P + 4]))), + x = 2 * (y = .1875 * (S - 2 * E + D)) + (g = .09375 * (3 * (E - D) - S + (I = h[P + 5]))), + b = .75 * (w - T) + m + .16666667 * v, + C = .75 * (E - S) + y + .16666667 * g, + d += Math.sqrt(b * b + C * C), + b += A, + C += x, + A += v, + x += g, + d += Math.sqrt(b * b + C * C), + b += A, + C += x, + d += Math.sqrt(b * b + C * C), + b += A + v, + C += x + g, + d += Math.sqrt(b * b + C * C), + p[z] = d, + T = B, + S = I; + if (n && (f *= d), + r) + for (z = 0; z < e; z++) + o[z] *= d; + for (var R = this._segments, O = 0, L = (z = 0, + H = 0, + W = 0, + 0); z < e; z++, + H += 3) { + var F = f += o[z]; + if (l) + (F %= d) < 0 && (F += d), + W = 0; + else { + if (F < 0) + continue; + if (F > d) + continue + } + for (; ; W++) { + var V = p[W]; + if (!(F > V)) { + 0 === W ? F /= V : F = (F - (G = p[W - 1])) / (V - G); + break + } + } + if (W !== _) { + _ = W; + var N = 6 * W; + for (T = h[N], + S = h[N + 1], + w = h[N + 2], + E = h[N + 3], + M = h[N + 4], + D = h[N + 5], + A = 2 * (m = .03 * (T - 2 * w + M)) + (v = .006 * (3 * (w - M) - T + (B = h[N + 6]))), + x = 2 * (y = .03 * (S - 2 * E + D)) + (g = .006 * (3 * (E - D) - S + (I = h[N + 7]))), + b = .3 * (w - T) + m + .16666667 * v, + C = .3 * (E - S) + y + .16666667 * g, + O = Math.sqrt(b * b + C * C), + R[0] = O, + N = 1; N < 8; N++) + b += A, + C += x, + A += v, + x += g, + O += Math.sqrt(b * b + C * C), + R[N] = O; + b += A, + C += x, + O += Math.sqrt(b * b + C * C), + R[8] = O, + b += A + v, + C += x + g, + O += Math.sqrt(b * b + C * C), + R[9] = O, + L = 0 + } + for (F *= O; ; L++) { + var k = R[L]; + if (!(F > k)) { + var G; + 0 === L ? F /= k : F = L + (F - (G = R[L - 1])) / (k - G); + break + } + } + this.addCurvePosition(.1 * F, T, S, w, E, M, D, B, I, a, H, i) + } + } else { + var U = t.curveLengths; + if (d = U[u -= l ? 1 : 2], + n && (f *= d), + r) + for (var z = 0; z < e; z++) + o[z] *= d; + h.length = 8; + z = 0; + for (var H = 0, W = 0; z < e; z++, + H += 3) { + if (f += o[z], + l) + (f %= d) < 0 && (f += d), + W = 0; + else { + if (f < 0) + continue; + if (f > d) + continue + } + for (var j = 0; ; W++) { + var X = U[W]; + if (!(f > X)) { + if (0 === W) + j = f / X; + else { + var Y = U[W - 1]; + j = (f - Y) / (X - Y) + } + break + } + } + W !== _ && (_ = W, + l && W === u ? (this._computeVertices(c - 4, 4, 0, h), + this._computeVertices(0, 4, 4, h)) : this._computeVertices(6 * W + 2, 8, 0, h)), + this.addCurvePosition(j, h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7], a, H, i) + } + } + } + , + i.prototype.addCurvePosition = function(t, e, i, n, r, s, a, o, l, h, c, u) { + if (0 === t) + return h[c] = e, + h[c + 1] = i, + void (h[c + 2] = 0); + if (1 === t) + return h[c] = o, + h[c + 1] = l, + void (h[c + 2] = 0); + var _ = 1 - t + , f = _ * _ + , d = t * t + , p = f * _ + , m = f * t * 3 + , y = _ * d * 3 + , v = t * d + , g = p * e + m * n + y * s + v * o + , A = p * i + m * r + y * a + v * l; + h[c] = g, + h[c + 1] = A, + h[c + 2] = u ? Math.atan2(A - (p * i + m * r + y * a), g - (p * e + m * n + y * s)) : 0 + } + , + i.prototype.init = function(t, e) { + this._constraintData = t, + this._armature = e; + var i = t; + this.pathOffset = i.pathDisplayData.vertices.offset, + this.position = i.position, + this.spacing = i.spacing, + this.rotateOffset = i.rotateOffset, + this.rotateMix = i.rotateMix, + this.translateMix = i.translateMix, + this._root = this._armature.getBone(i.root.name), + this._target = this._armature.getBone(i.target.name), + this._pathSlot = this._armature.getSlot(i.pathSlot.name); + for (var n = 0, r = i.bones.length; n < r; n++) { + var s = this._armature.getBone(i.bones[n].name); + null !== s && this._bones.push(s) + } + 2 === i.rotateMode && (this._boneLengths.length = this._bones.length), + this._root._hasConstraint = !0 + } + , + i.prototype.update = function() { + var e = this._pathSlot; + if (null !== e._deformVertices && null !== e._deformVertices.verticesData && e._deformVertices.verticesData.offset === this.pathOffset) { + var i = this._constraintData + , n = e._displayData + , r = !1 + , s = e._deformVertices; + if (this._root._childrenTransformDirty ? (this._updatePathVertices(n.vertices), + r = !0) : null !== s && (s.verticesDirty || s.isBonesUpdate()) && (this._updatePathVertices(n.vertices), + s.verticesDirty = !1, + r = !0), + r || this.dirty) { + var a = i.positionMode + , o = i.spacingMode + , l = i.rotateMode + , h = this._bones + , c = 0 === o + , u = 2 === l + , _ = 0 === l + , f = h.length + , d = _ ? f : f + 1 + , p = this.spacing + , m = this._spaces; + if (m.length = d, + u || c) { + m[0] = 0; + for (var y = 0, v = d - 1; y < v; y++) { + (I = h[y]).updateByConstraint(); + var g = I._boneData.length + , A = g * (P = I.globalTransformMatrix).a + , x = g * P.b + , b = Math.sqrt(A * A + x * x); + u && (this._boneLengths[y] = b), + m[y + 1] = (g + p) * b / g + } + } else + for (y = 0; y < d; y++) + m[y] = p; + this._computeBezierCurve(n, d, _, 1 === a, 2 === o); + var C, T = this._positions, S = this.rotateOffset, w = T[0], E = T[1]; + 0 === S ? C = 1 === l : (C = !1, + null !== (I = e.parent) && (S *= (P = I.globalTransformMatrix).a * P.d - P.b * P.c > 0 ? t.Transform.DEG_RAD : -t.Transform.DEG_RAD)); + for (var M = this.rotateMix, D = this.translateMix, B = (y = 0, + 3); y < f; y++, + B += 3) { + var I, P; + (I = h[y]).updateByConstraint(), + (P = I.globalTransformMatrix).tx += (w - P.tx) * D, + P.ty += (E - P.ty) * D; + var R = (A = T[B]) - w + , O = (x = T[B + 1]) - E; + if (u) { + var L = this._boneLengths[y] + , F = (Math.sqrt(R * R + O * O) / L - 1) * M + 1; + P.a *= F, + P.b *= F + } + if (w = A, + E = x, + M > 0) { + var V = P.a + , N = P.b + , k = P.c + , G = P.d + , U = void 0 + , z = void 0 + , H = void 0; + if (U = _ ? T[B - 1] : Math.atan2(O, R), + U -= Math.atan2(N, V), + C) { + z = Math.cos(U), + H = Math.sin(U); + var W = I._boneData.length; + w += (W * (z * V - H * N) - R) * M, + E += (W * (H * V + z * N) - O) * M + } else + U += S; + U > t.Transform.PI ? U -= t.Transform.PI_D : U < -t.Transform.PI && (U += t.Transform.PI_D), + U *= M, + z = Math.cos(U), + H = Math.sin(U), + P.a = z * V - H * N, + P.b = H * V + z * N, + P.c = z * k - H * G, + P.d = H * k + z * G + } + I.global.fromMatrix(P) + } + this.dirty = !1 + } + } + } + , + i.prototype.invalidUpdate = function() {} + , + i + } + )(e); + t.PathConstraint = n + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function t(t) { + void 0 === t && (t = 0), + this.time = 0, + this.timeScale = 1, + this._systemTime = 0, + this._animatebles = [], + this._clock = null, + this.time = t, + this._systemTime = .001 * (new Date).getTime() + } + return t.prototype.advanceTime = function(t) { + t != t && (t = 0); + var e = .001 * Date.now(); + if (t < 0 && (t = e - this._systemTime), + this._systemTime = e, + 1 !== this.timeScale && (t *= this.timeScale), + 0 !== t) { + t < 0 ? this.time -= t : this.time += t; + for (var i = 0, n = 0, r = this._animatebles.length; i < r; ++i) { + var s = this._animatebles[i]; + null !== s ? (n > 0 && (this._animatebles[i - n] = s, + this._animatebles[i] = null), + s.advanceTime(t)) : n++ + } + if (n > 0) { + for (r = this._animatebles.length; i < r; ++i) { + var a = this._animatebles[i]; + null !== a ? this._animatebles[i - n] = a : n++ + } + this._animatebles.length -= n + } + } + } + , + t.prototype.contains = function(t) { + if (t === this) + return !1; + for (var e = t; e !== this && null !== e; ) + e = e.clock; + return e === this + } + , + t.prototype.add = function(t) { + this._animatebles.indexOf(t) < 0 && (this._animatebles.push(t), + t.clock = this) + } + , + t.prototype.remove = function(t) { + var e = this._animatebles.indexOf(t); + e >= 0 && (this._animatebles[e] = null, + t.clock = null) + } + , + t.prototype.clear = function() { + for (var t = 0, e = this._animatebles; t < e.length; t++) { + var i = e[t]; + null !== i && (i.clock = null) + } + } + , + Object.defineProperty(t.prototype, "clock", { + get: function() { + return this._clock + }, + set: function(t) { + this._clock !== t && (null !== this._clock && this._clock.remove(this), + this._clock = t, + null !== this._clock && this._clock.add(this)) + }, + enumerable: !0, + configurable: !0 + }), + t.clock = new t, + t + } + )(); + t.WorldClock = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i() { + var t = null !== e && e.apply(this, arguments) || this; + return t._animationNames = [], + t._animationStates = [], + t._animations = {}, + t._animationConfig = null, + t + } + return s(i, e), + i.toString = function() { + return "[class dragonBones.Animation]" + } + , + i.prototype._onClear = function() { + for (var t = 0, e = this._animationStates; t < e.length; t++) + e[t].returnToPool(); + for (var i in this._animations) + delete this._animations[i]; + null !== this._animationConfig && this._animationConfig.returnToPool(), + this.timeScale = 1, + this._lockUpdate = !1, + this._animationDirty = !1, + this._inheritTimeScale = 1, + this._animationNames.length = 0, + this._animationStates.length = 0, + this._armature = null, + this._animationConfig = null, + this._lastAnimationState = null + } + , + i.prototype._fadeOut = function(t) { + switch (t.fadeOutMode) { + case 1: + for (var e = 0, i = this._animationStates; e < i.length; e++) + null === (h = i[e])._parent && h.layer === t.layer && h.fadeOut(t.fadeOutTime, t.pauseFadeOut); + break; + case 2: + for (var n = 0, r = this._animationStates; n < r.length; n++) + null === (h = r[n])._parent && h.group === t.group && h.fadeOut(t.fadeOutTime, t.pauseFadeOut); + break; + case 3: + for (var s = 0, a = this._animationStates; s < a.length; s++) + null === (h = a[s])._parent && h.layer === t.layer && h.group === t.group && h.fadeOut(t.fadeOutTime, t.pauseFadeOut); + break; + case 4: + for (var o = 0, l = this._animationStates; o < l.length; o++) { + var h; + null === (h = l[o])._parent && h.fadeOut(t.fadeOutTime, t.pauseFadeOut) + } + } + } + , + i.prototype.init = function(e) { + null === this._armature && (this._armature = e, + this._animationConfig = t.BaseObject.borrowObject(t.AnimationConfig)) + } + , + i.prototype.advanceTime = function(t) { + t < 0 && (t = -t), + this._armature.inheritAnimation && null !== this._armature._parent ? this._inheritTimeScale = this._armature._parent._armature.animation._inheritTimeScale * this.timeScale : this._inheritTimeScale = this.timeScale, + 1 !== this._inheritTimeScale && (t *= this._inheritTimeScale); + var e = this._animationStates.length; + if (1 === e) + if ((d = this._animationStates[0])._fadeState > 0 && d._subFadeState > 0) + this._armature._dragonBones.bufferObject(d), + this._animationStates.length = 0, + this._lastAnimationState = null; + else { + var i = d._animationData + , n = i.cacheFrameRate; + if (this._animationDirty && n > 0) { + this._animationDirty = !1; + for (var r = 0, s = this._armature.getBones(); r < s.length; r++) { + var a = s[r]; + a._cachedFrameIndices = i.getBoneCachedFrameIndices(a.name) + } + for (var o = 0, l = this._armature.getSlots(); o < l.length; o++) { + var h = l[o] + , c = h.rawDisplayDatas; + if (null !== c && c.length > 0) { + var u = c[0]; + if (null !== u && u.parent === this._armature.armatureData.defaultSkin) { + h._cachedFrameIndices = i.getSlotCachedFrameIndices(h.name); + continue + } + } + h._cachedFrameIndices = null + } + } + d.advanceTime(t, n) + } + else if (e > 1) { + for (var _ = 0, f = 0; _ < e; ++_) { + var d; + (d = this._animationStates[_])._fadeState > 0 && d._subFadeState > 0 ? (f++, + this._armature._dragonBones.bufferObject(d), + this._animationDirty = !0, + this._lastAnimationState === d && (this._lastAnimationState = null)) : (f > 0 && (this._animationStates[_ - f] = d), + d.advanceTime(t, 0)), + _ === e - 1 && f > 0 && (this._animationStates.length -= f, + null === this._lastAnimationState && this._animationStates.length > 0 && (this._lastAnimationState = this._animationStates[this._animationStates.length - 1])) + } + this._armature._cacheFrameIndex = -1 + } else + this._armature._cacheFrameIndex = -1 + } + , + i.prototype.reset = function() { + for (var t = 0, e = this._animationStates; t < e.length; t++) + e[t].returnToPool(); + this._animationDirty = !1, + this._animationConfig.clear(), + this._animationStates.length = 0, + this._lastAnimationState = null + } + , + i.prototype.stop = function(t) { + if (void 0 === t && (t = null), + null !== t) + null !== (n = this.getState(t)) && n.stop(); + else + for (var e = 0, i = this._animationStates; e < i.length; e++) { + var n; + (n = i[e]).stop() + } + } + , + i.prototype.playConfig = function(e) { + var i = e.animation; + if (!(i in this._animations)) + return console.warn("Non-existent animation.\n", "DragonBones name: " + this._armature.armatureData.parent.name, "Armature name: " + this._armature.name, "Animation name: " + i), + null; + var n = this._animations[i]; + if (5 === e.fadeOutMode) + for (var r = 0, s = this._animationStates; r < s.length; r++) { + var a = s[r]; + if (a._animationData === n) + return a + } + 0 === this._animationStates.length ? e.fadeInTime = 0 : e.fadeInTime < 0 && (e.fadeInTime = n.fadeInTime), + e.fadeOutTime < 0 && (e.fadeOutTime = e.fadeInTime), + e.timeScale <= -100 && (e.timeScale = 1 / n.scale), + n.frameCount > 1 ? (e.position < 0 ? (e.position %= n.duration, + e.position = n.duration - e.position) : e.position === n.duration ? e.position -= 1e-6 : e.position > n.duration && (e.position %= n.duration), + e.duration > 0 && e.position + e.duration > n.duration && (e.duration = n.duration - e.position), + e.playTimes < 0 && (e.playTimes = n.playTimes)) : (e.playTimes = 1, + e.position = 0, + e.duration > 0 && (e.duration = 0)), + 0 === e.duration && (e.duration = -1), + this._fadeOut(e); + var o = t.BaseObject.borrowObject(t.AnimationState); + if (o.init(this._armature, n, e), + this._animationDirty = !0, + this._armature._cacheFrameIndex = -1, + this._animationStates.length > 0) { + for (var l = !1, h = 0, c = this._animationStates.length; h < c; ++h) { + if (o.layer > this._animationStates[h].layer) { + l = !0, + this._animationStates.splice(h, 0, o); + break + } + if (h !== c - 1 && o.layer > this._animationStates[h + 1].layer) { + l = !0, + this._animationStates.splice(h + 1, 0, o); + break + } + } + l || this._animationStates.push(o) + } else + this._animationStates.push(o); + for (var u = 0, _ = this._armature.getSlots(); u < _.length; u++) { + var f = _[u].childArmature; + null !== f && f.inheritAnimation && f.animation.hasAnimation(i) && null === f.animation.getState(i) && f.animation.fadeIn(i) + } + var d = !1; + for (var p in n.animationTimelines) { + this._lockUpdate || (d = !0, + this._lockUpdate = !0); + var m = this.fadeIn(p, e.fadeInTime, 1, o.layer, null, 0); + null !== m && (m.resetToPose = !1, + m._parent = o, + m.stop()) + } + return d && (this._lockUpdate = !1), + this._lockUpdate || (e.fadeInTime <= 0 && this._armature.advanceTime(0), + this._lastAnimationState = o), + o + } + , + i.prototype.play = function(t, e) { + if (void 0 === t && (t = null), + void 0 === e && (e = -1), + this._animationConfig.clear(), + this._animationConfig.resetToPose = !0, + this._animationConfig.playTimes = e, + this._animationConfig.fadeInTime = 0, + this._animationConfig.animation = null !== t ? t : "", + null !== t && t.length > 0) + this.playConfig(this._animationConfig); + else if (null === this._lastAnimationState) { + var i = this._armature.armatureData.defaultAnimation; + null !== i && (this._animationConfig.animation = i.name, + this.playConfig(this._animationConfig)) + } else + this._lastAnimationState.isPlaying || this._lastAnimationState.isCompleted ? (this._animationConfig.animation = this._lastAnimationState.name, + this.playConfig(this._animationConfig)) : this._lastAnimationState.play(); + return this._lastAnimationState + } + , + i.prototype.fadeIn = function(t, e, i, n, r, s) { + return void 0 === e && (e = -1), + void 0 === i && (i = -1), + void 0 === n && (n = 0), + void 0 === r && (r = null), + void 0 === s && (s = 3), + this._animationConfig.clear(), + this._animationConfig.fadeOutMode = s, + this._animationConfig.playTimes = i, + this._animationConfig.layer = n, + this._animationConfig.fadeInTime = e, + this._animationConfig.animation = t, + this._animationConfig.group = null !== r ? r : "", + this.playConfig(this._animationConfig) + } + , + i.prototype.gotoAndPlayByTime = function(t, e, i) { + return void 0 === e && (e = 0), + void 0 === i && (i = -1), + this._animationConfig.clear(), + this._animationConfig.resetToPose = !0, + this._animationConfig.playTimes = i, + this._animationConfig.position = e, + this._animationConfig.fadeInTime = 0, + this._animationConfig.animation = t, + this.playConfig(this._animationConfig) + } + , + i.prototype.gotoAndPlayByFrame = function(t, e, i) { + void 0 === e && (e = 0), + void 0 === i && (i = -1), + this._animationConfig.clear(), + this._animationConfig.resetToPose = !0, + this._animationConfig.playTimes = i, + this._animationConfig.fadeInTime = 0, + this._animationConfig.animation = t; + var n = t in this._animations ? this._animations[t] : null; + return null !== n && (this._animationConfig.position = n.duration * e / n.frameCount), + this.playConfig(this._animationConfig) + } + , + i.prototype.gotoAndPlayByProgress = function(t, e, i) { + void 0 === e && (e = 0), + void 0 === i && (i = -1), + this._animationConfig.clear(), + this._animationConfig.resetToPose = !0, + this._animationConfig.playTimes = i, + this._animationConfig.fadeInTime = 0, + this._animationConfig.animation = t; + var n = t in this._animations ? this._animations[t] : null; + return null !== n && (this._animationConfig.position = n.duration * (e > 0 ? e : 0)), + this.playConfig(this._animationConfig) + } + , + i.prototype.gotoAndStopByTime = function(t, e) { + void 0 === e && (e = 0); + var i = this.gotoAndPlayByTime(t, e, 1); + return null !== i && i.stop(), + i + } + , + i.prototype.gotoAndStopByFrame = function(t, e) { + void 0 === e && (e = 0); + var i = this.gotoAndPlayByFrame(t, e, 1); + return null !== i && i.stop(), + i + } + , + i.prototype.gotoAndStopByProgress = function(t, e) { + void 0 === e && (e = 0); + var i = this.gotoAndPlayByProgress(t, e, 1); + return null !== i && i.stop(), + i + } + , + i.prototype.getState = function(t) { + for (var e = this._animationStates.length; e--; ) { + var i = this._animationStates[e]; + if (i.name === t) + return i + } + return null + } + , + i.prototype.hasAnimation = function(t) { + return t in this._animations + } + , + i.prototype.getStates = function() { + return this._animationStates + } + , + Object.defineProperty(i.prototype, "isPlaying", { + get: function() { + for (var t = 0, e = this._animationStates; t < e.length; t++) + if (e[t].isPlaying) + return !0; + return !1 + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "isCompleted", { + get: function() { + for (var t = 0, e = this._animationStates; t < e.length; t++) + if (!e[t].isCompleted) + return !1; + return this._animationStates.length > 0 + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "lastAnimationName", { + get: function() { + return null !== this._lastAnimationState ? this._lastAnimationState.name : "" + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "animationNames", { + get: function() { + return this._animationNames + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "animations", { + get: function() { + return this._animations + }, + set: function(t) { + if (this._animations !== t) { + for (var e in this._animationNames.length = 0, + this._animations) + delete this._animations[e]; + for (var e in t) + this._animationNames.push(e), + this._animations[e] = t[e] + } + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "animationConfig", { + get: function() { + return this._animationConfig.clear(), + this._animationConfig + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "lastAnimationState", { + get: function() { + return this._lastAnimationState + }, + enumerable: !0, + configurable: !0 + }), + i.prototype.gotoAndPlay = function(t, e, i, n, r, s, a, o, l) { + void 0 === e && (e = -1), + void 0 === i && (i = -1), + void 0 === n && (n = -1), + void 0 === r && (r = 0), + void 0 === s && (s = null), + void 0 === a && (a = 3), + void 0 === o && (o = !0), + void 0 === l && (l = !0), + console.warn("Deprecated."), + this._animationConfig.clear(), + this._animationConfig.resetToPose = !0, + this._animationConfig.fadeOutMode = a, + this._animationConfig.playTimes = n, + this._animationConfig.layer = r, + this._animationConfig.fadeInTime = e, + this._animationConfig.animation = t, + this._animationConfig.group = null !== s ? s : ""; + var h = this._animations[t]; + return h && i > 0 && (this._animationConfig.timeScale = h.duration / i), + this.playConfig(this._animationConfig) + } + , + i.prototype.gotoAndStop = function(t, e) { + return void 0 === e && (e = 0), + console.warn("Deprecated."), + this.gotoAndStopByTime(t, e) + } + , + Object.defineProperty(i.prototype, "animationList", { + get: function() { + return console.warn("Deprecated."), + this._animationNames + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(i.prototype, "animationDataList", { + get: function() { + console.warn("Deprecated."); + for (var t = [], e = 0, i = this._animationNames.length; e < i; ++e) + t.push(this._animations[this._animationNames[e]]); + return t + }, + enumerable: !0, + configurable: !0 + }), + i + } + )(t.BaseObject); + t.Animation = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function r() { + var t = null !== e && e.apply(this, arguments) || this; + return t._blendState = new n, + t._boneMask = [], + t._boneTimelines = [], + t._surfaceTimelines = [], + t._slotTimelines = [], + t._constraintTimelines = [], + t._animationTimelines = [], + t._poseTimelines = [], + t._bonePoses = {}, + t._actionTimeline = null, + t._zOrderTimeline = null, + t._parent = null, + t + } + return s(r, e), + r.toString = function() { + return "[class dragonBones.AnimationState]" + } + , + r.prototype._onClear = function() { + for (var t = 0, e = this._boneTimelines; t < e.length; t++) + e[t].returnToPool(); + for (var i = 0, n = this._surfaceTimelines; i < n.length; i++) + n[i].returnToPool(); + for (var r = 0, s = this._slotTimelines; r < s.length; r++) + s[r].returnToPool(); + for (var a = 0, o = this._constraintTimelines; a < o.length; a++) + o[a].returnToPool(); + for (var l = 0, h = this._animationTimelines; l < h.length; l++) + h[l].returnToPool(); + for (var c in this._bonePoses) + this._bonePoses[c].returnToPool(), + delete this._bonePoses[c]; + null !== this._actionTimeline && this._actionTimeline.returnToPool(), + null !== this._zOrderTimeline && this._zOrderTimeline.returnToPool(), + this.actionEnabled = !1, + this.additiveBlending = !1, + this.displayControl = !1, + this.resetToPose = !1, + this.playTimes = 1, + this.layer = 0, + this.timeScale = 1, + this.weight = 1, + this.autoFadeOutTime = 0, + this.fadeTotalTime = 0, + this.name = "", + this.group = "", + this._timelineDirty = 2, + this._playheadState = 0, + this._fadeState = -1, + this._subFadeState = -1, + this._position = 0, + this._duration = 0, + this._fadeTime = 0, + this._time = 0, + this._fadeProgress = 0, + this._weightResult = 0, + this._blendState.clear(), + this._boneMask.length = 0, + this._boneTimelines.length = 0, + this._surfaceTimelines.length = 0, + this._slotTimelines.length = 0, + this._constraintTimelines.length = 0, + this._animationTimelines.length = 0, + this._poseTimelines.length = 0, + this._animationData = null, + this._armature = null, + this._actionTimeline = null, + this._zOrderTimeline = null, + this._parent = null + } + , + r.prototype._updateTimelines = function() { + for (var e = 0, i = this._armature._constraints; e < i.length; e++) { + var n = i[e]; + if (null !== (l = this._animationData.getConstraintTimelines(n.name))) + for (var r = 0, s = l; r < s.length; r++) + switch ((_ = s[r]).type) { + case 30: + (f = t.BaseObject.borrowObject(t.IKConstraintTimelineState)).constraint = n, + f.init(this._armature, this, _), + this._constraintTimelines.push(f) + } + else + this.resetToPose && ((f = t.BaseObject.borrowObject(t.IKConstraintTimelineState)).constraint = n, + f.init(this._armature, this, null), + this._constraintTimelines.push(f), + this._poseTimelines.push(f)) + } + for (var a = 0, o = this._armature.animation.getStates(); a < o.length; a++) { + var l, h = o[a]; + if (h._parent === this && null !== (l = this._animationData.getAnimationTimelines(h.name))) + for (var c = 0, u = l; c < u.length; c++) { + var _; + switch ((_ = u[c]).type) { + case 40: + var f; + (f = t.BaseObject.borrowObject(t.AnimationTimelineState)).animationState = h, + f.init(this._armature, this, _), + this._animationTimelines.push(f) + } + } + } + } + , + r.prototype._updateBoneAndSlotTimelines = function() { + for (var e = {}, n = 0, r = this._boneTimelines; n < r.length; n++) + (l = (v = r[n]).bone.name)in e || (e[l] = []), + e[l].push(v); + for (var s = 0, a = this._armature.getBones(); s < a.length; s++) { + var o = a[s] + , l = o.name; + if (this.containsBoneMask(l)) + if (l in e) + delete e[l]; + else if (0 === o._boneData.type) { + var h = this._animationData.getBoneTimelines(l) + , c = l in this._bonePoses ? this._bonePoses[l] : this._bonePoses[l] = t.BaseObject.borrowObject(i); + if (null !== h) + for (var u = 0, _ = h; u < _.length; u++) + switch ((I = _[u]).type) { + case 10: + (v = t.BaseObject.borrowObject(t.BoneAllTimelineState)).bone = o, + v.bonePose = c, + v.init(this._armature, this, I), + this._boneTimelines.push(v); + break; + case 11: + (v = t.BaseObject.borrowObject(t.BoneTranslateTimelineState)).bone = o, + v.bonePose = c, + v.init(this._armature, this, I), + this._boneTimelines.push(v); + break; + case 12: + (v = t.BaseObject.borrowObject(t.BoneRotateTimelineState)).bone = o, + v.bonePose = c, + v.init(this._armature, this, I), + this._boneTimelines.push(v); + break; + case 13: + (v = t.BaseObject.borrowObject(t.BoneScaleTimelineState)).bone = o, + v.bonePose = c, + v.init(this._armature, this, I), + this._boneTimelines.push(v) + } + else + this.resetToPose && ((v = t.BaseObject.borrowObject(t.BoneAllTimelineState)).bone = o, + v.bonePose = c, + v.init(this._armature, this, null), + this._boneTimelines.push(v), + this._poseTimelines.push(v)) + } else if (1 === o._boneData.type) + if (null !== (h = this._animationData.getSurfaceTimelines(l))) + for (var f = 0, d = h; f < d.length; f++) + switch ((I = d[f]).type) { + case 50: + (v = t.BaseObject.borrowObject(t.SurfaceTimelineState)).surface = o, + v.init(this._armature, this, I), + this._surfaceTimelines.push(v) + } + else + this.resetToPose && ((v = t.BaseObject.borrowObject(t.SurfaceTimelineState)).surface = o, + v.init(this._armature, this, null), + this._surfaceTimelines.push(v), + this._poseTimelines.push(v)) + } + for (var p in e) + for (var m = 0, y = e[p]; m < y.length; m++) { + var v = y[m]; + this._boneTimelines.splice(this._boneTimelines.indexOf(v), 1), + v.returnToPool() + } + for (var g = {}, A = [], x = 0, b = this._slotTimelines; x < b.length; x++) + (l = (v = b[x]).slot.name)in g || (g[l] = []), + g[l].push(v); + for (var C = 0, T = this._armature.getSlots(); C < T.length; C++) { + var S = T[C] + , w = S.parent.name; + if (this.containsBoneMask(w)) + if (l = S.name, + h = this._animationData.getSlotTimelines(l), + l in g) + delete g[l]; + else { + var E = !1 + , M = !1; + if (A.length = 0, + null !== h) + for (var D = 0, B = h; D < B.length; D++) { + var I; + switch ((I = B[D]).type) { + case 20: + (v = t.BaseObject.borrowObject(t.SlotDislayTimelineState)).slot = S, + v.init(this._armature, this, I), + this._slotTimelines.push(v), + E = !0; + break; + case 21: + (v = t.BaseObject.borrowObject(t.SlotColorTimelineState)).slot = S, + v.init(this._armature, this, I), + this._slotTimelines.push(v), + M = !0; + break; + case 22: + (v = t.BaseObject.borrowObject(t.DeformTimelineState)).slot = S, + v.init(this._armature, this, I), + this._slotTimelines.push(v), + A.push(v.vertexOffset) + } + } + if (this.resetToPose && (E || ((v = t.BaseObject.borrowObject(t.SlotDislayTimelineState)).slot = S, + v.init(this._armature, this, null), + this._slotTimelines.push(v), + this._poseTimelines.push(v)), + M || ((v = t.BaseObject.borrowObject(t.SlotColorTimelineState)).slot = S, + v.init(this._armature, this, null), + this._slotTimelines.push(v), + this._poseTimelines.push(v)), + null !== S.rawDisplayDatas)) + for (var P = 0, R = S.rawDisplayDatas; P < R.length; P++) { + var O = R[P]; + if (null !== O && 2 === O.type) { + var L = O.vertices.offset; + A.indexOf(L) < 0 && ((v = t.BaseObject.borrowObject(t.DeformTimelineState)).vertexOffset = L, + v.slot = S, + v.init(this._armature, this, null), + this._slotTimelines.push(v), + this._poseTimelines.push(v)) + } + } + } + } + for (var p in g) + for (var F = 0, V = g[p]; F < V.length; F++) + v = V[F], + this._slotTimelines.splice(this._slotTimelines.indexOf(v), 1), + v.returnToPool() + } + , + r.prototype._advanceFadeTime = function(e) { + var i, n = this._fadeState > 0; + if (this._subFadeState < 0) { + this._subFadeState = 0; + var r = n ? t.EventObject.FADE_OUT : t.EventObject.FADE_IN; + this._armature.eventDispatcher.hasDBEventListener(r) && ((i = t.BaseObject.borrowObject(t.EventObject)).type = r, + i.armature = this._armature, + i.animationState = this, + this._armature._dragonBones.bufferEvent(i)) + } + (e < 0 && (e = -e), + this._fadeTime += e, + this._fadeTime >= this.fadeTotalTime ? (this._subFadeState = 1, + this._fadeProgress = n ? 0 : 1) : this._fadeTime > 0 ? this._fadeProgress = n ? 1 - this._fadeTime / this.fadeTotalTime : this._fadeTime / this.fadeTotalTime : this._fadeProgress = n ? 1 : 0, + this._subFadeState > 0) && (n || (this._playheadState |= 1, + this._fadeState = 0), + r = n ? t.EventObject.FADE_OUT_COMPLETE : t.EventObject.FADE_IN_COMPLETE, + this._armature.eventDispatcher.hasDBEventListener(r) && ((i = t.BaseObject.borrowObject(t.EventObject)).type = r, + i.armature = this._armature, + i.animationState = this, + this._armature._dragonBones.bufferEvent(i))) + } + , + r.prototype.init = function(e, i, n) { + if (null === this._armature) { + if (this._armature = e, + this._animationData = i, + this.resetToPose = n.resetToPose, + this.additiveBlending = n.additiveBlending, + this.displayControl = n.displayControl, + this.actionEnabled = n.actionEnabled, + this.layer = n.layer, + this.playTimes = n.playTimes, + this.timeScale = n.timeScale, + this.fadeTotalTime = n.fadeInTime, + this.autoFadeOutTime = n.autoFadeOutTime, + this.weight = n.weight, + this.name = n.name.length > 0 ? n.name : n.animation, + this.group = n.group, + n.pauseFadeIn ? this._playheadState = 2 : this._playheadState = 3, + n.duration < 0 ? (this._position = 0, + this._duration = this._animationData.duration, + 0 !== n.position ? this.timeScale >= 0 ? this._time = n.position : this._time = n.position - this._duration : this._time = 0) : (this._position = n.position, + this._duration = n.duration, + this._time = 0), + this.timeScale < 0 && 0 === this._time && (this._time = -1e-6), + this.fadeTotalTime <= 0 && (this._fadeProgress = .999999), + n.boneMask.length > 0) { + this._boneMask.length = n.boneMask.length; + for (var r = 0, s = this._boneMask.length; r < s; ++r) + this._boneMask[r] = n.boneMask[r] + } + this._actionTimeline = t.BaseObject.borrowObject(t.ActionTimelineState), + this._actionTimeline.init(this._armature, this, this._animationData.actionTimeline), + this._actionTimeline.currentTime = this._time, + this._actionTimeline.currentTime < 0 && (this._actionTimeline.currentTime = this._duration - this._actionTimeline.currentTime), + null !== this._animationData.zOrderTimeline && (this._zOrderTimeline = t.BaseObject.borrowObject(t.ZOrderTimelineState), + this._zOrderTimeline.init(this._armature, this, this._animationData.zOrderTimeline)) + } + } + , + r.prototype.advanceTime = function(e, i) { + if (this._blendState.dirty = !1, + 0 === this._fadeState && 0 === this._subFadeState || this._advanceFadeTime(e), + 3 === this._playheadState && (1 !== this.timeScale && (e *= this.timeScale), + this._time += e), + 0 !== this._timelineDirty && (2 === this._timelineDirty && this._updateTimelines(), + this._timelineDirty = 0, + this._updateBoneAndSlotTimelines()), + 0 !== this.weight) { + var n = 0 === this._fadeState && i > 0 + , r = !0 + , s = !0 + , a = this._time; + if (this._weightResult = this.weight * this._fadeProgress, + null !== this._parent && (this._weightResult *= this._parent._weightResult / this._parent._fadeProgress), + this._actionTimeline.playState <= 0 && this._actionTimeline.update(a), + n) { + var o = 2 * i; + this._actionTimeline.currentTime = Math.floor(this._actionTimeline.currentTime * o) / o + } + if (null !== this._zOrderTimeline && this._zOrderTimeline.playState <= 0 && this._zOrderTimeline.update(a), + n) { + var l = Math.floor(this._actionTimeline.currentTime * i); + this._armature._cacheFrameIndex === l ? (r = !1, + s = !1) : (this._armature._cacheFrameIndex = l, + this._animationData.cachedFrames[l] ? s = !1 : this._animationData.cachedFrames[l] = !0) + } + if (r) { + if (s) + for (var h = 0, c = this._boneTimelines.length; h < c; ++h) + (p = this._boneTimelines[h]).playState <= 0 && p.update(a), + (h === c - 1 || p.bone !== this._boneTimelines[h + 1].bone) && 0 !== (u = p.bone._blendState.update(this._weightResult, this.layer)) && p.blend(u); + for (h = 0, + c = this._surfaceTimelines.length; h < c; ++h) { + var u = (p = this._surfaceTimelines[h]).surface._blendState.update(this._weightResult, this.layer); + p.playState <= 0 && p.update(a), + 0 !== u && p.blend(u) + } + if (this.displayControl) + for (h = 0, + c = this._slotTimelines.length; h < c; ++h) { + var _ = (p = this._slotTimelines[h]).slot.displayController; + null !== _ && _ !== this.name && _ !== this.group || p.playState <= 0 && p.update(a) + } + for (h = 0, + c = this._constraintTimelines.length; h < c; ++h) + (p = this._constraintTimelines[h]).playState <= 0 && p.update(a); + for (h = 0, + c = this._animationTimelines.length; h < c; ++h) + u = (p = this._animationTimelines[h]).animationState._blendState.update(this._weightResult, this.layer), + p.playState <= 0 && p.update(a), + 0 !== u && p.blend(u) + } + if (0 === this._fadeState) { + if (this._subFadeState > 0 && (this._subFadeState = 0, + this._poseTimelines.length > 0)) { + for (var f = 0, d = this._poseTimelines; f < d.length; f++) { + var p; + (p = d[f])instanceof t.BoneTimelineState ? this._boneTimelines.splice(this._boneTimelines.indexOf(p), 1) : p instanceof t.SurfaceTimelineState ? this._surfaceTimelines.splice(this._surfaceTimelines.indexOf(p), 1) : p instanceof t.SlotTimelineState ? this._slotTimelines.splice(this._slotTimelines.indexOf(p), 1) : p instanceof t.ConstraintTimelineState && this._constraintTimelines.splice(this._constraintTimelines.indexOf(p), 1), + p.returnToPool() + } + this._poseTimelines.length = 0 + } + this._actionTimeline.playState > 0 && this.autoFadeOutTime >= 0 && this.fadeOut(this.autoFadeOutTime) + } + } + } + , + r.prototype.play = function() { + this._playheadState = 3 + } + , + r.prototype.stop = function() { + this._playheadState &= 1 + } + , + r.prototype.fadeOut = function(t, e) { + if (void 0 === e && (e = !0), + t < 0 && (t = 0), + e && (this._playheadState &= 2), + this._fadeState > 0) { + if (t > this.fadeTotalTime - this._fadeTime) + return + } else { + this._fadeState = 1, + this._subFadeState = -1, + (t <= 0 || this._fadeProgress <= 0) && (this._fadeProgress = 1e-6); + for (var i = 0, n = this._boneTimelines; i < n.length; i++) + (_ = n[i]).fadeOut(); + for (var r = 0, s = this._surfaceTimelines; r < s.length; r++) + (_ = s[r]).fadeOut(); + for (var a = 0, o = this._slotTimelines; a < o.length; a++) + (_ = o[a]).fadeOut(); + for (var l = 0, h = this._constraintTimelines; l < h.length; l++) + (_ = h[l]).fadeOut(); + for (var c = 0, u = this._animationTimelines; c < u.length; c++) { + var _; + (_ = u[c]).animationState.fadeOut(t, e), + _.fadeOut() + } + } + this.displayControl = !1, + this.fadeTotalTime = this._fadeProgress > 1e-6 ? t / this._fadeProgress : 0, + this._fadeTime = this.fadeTotalTime * (1 - this._fadeProgress) + } + , + r.prototype.containsBoneMask = function(t) { + return 0 === this._boneMask.length || this._boneMask.indexOf(t) >= 0 + } + , + r.prototype.addBoneMask = function(t, e) { + void 0 === e && (e = !0); + var i = this._armature.getBone(t); + if (null !== i) { + if (this._boneMask.indexOf(t) < 0 && this._boneMask.push(t), + e) + for (var n = 0, r = this._armature.getBones(); n < r.length; n++) { + var s = r[n]; + this._boneMask.indexOf(s.name) < 0 && i.contains(s) && this._boneMask.push(s.name) + } + this._timelineDirty = 1 + } + } + , + r.prototype.removeBoneMask = function(t, e) { + void 0 === e && (e = !0); + var i = this._boneMask.indexOf(t); + if (i >= 0 && this._boneMask.splice(i, 1), + e) { + var n = this._armature.getBone(t); + if (null !== n) { + var r = this._armature.getBones(); + if (this._boneMask.length > 0) + for (var s = 0, a = r; s < a.length; s++) { + var o = a[s] + , l = this._boneMask.indexOf(o.name); + l >= 0 && n.contains(o) && this._boneMask.splice(l, 1) + } + else + for (var h = 0, c = r; h < c.length; h++) + (o = c[h]) !== n && (n.contains(o) || this._boneMask.push(o.name)) + } + } + this._timelineDirty = 1 + } + , + r.prototype.removeAllBoneMask = function() { + this._boneMask.length = 0, + this._timelineDirty = 1 + } + , + Object.defineProperty(r.prototype, "isFadeIn", { + get: function() { + return this._fadeState < 0 + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(r.prototype, "isFadeOut", { + get: function() { + return this._fadeState > 0 + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(r.prototype, "isFadeComplete", { + get: function() { + return 0 === this._fadeState + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(r.prototype, "isPlaying", { + get: function() { + return 0 != (2 & this._playheadState) && this._actionTimeline.playState <= 0 + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(r.prototype, "isCompleted", { + get: function() { + return this._actionTimeline.playState > 0 + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(r.prototype, "currentPlayTimes", { + get: function() { + return this._actionTimeline.currentPlayTimes + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(r.prototype, "totalTime", { + get: function() { + return this._duration + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(r.prototype, "currentTime", { + get: function() { + return this._actionTimeline.currentTime + }, + set: function(t) { + var e = this._actionTimeline.currentPlayTimes - (this._actionTimeline.playState > 0 ? 1 : 0); + if ((t < 0 || this._duration < t) && (t = t % this._duration + e * this._duration) < 0 && (t += this._duration), + this.playTimes > 0 && e === this.playTimes - 1 && t === this._duration && (t = this._duration - 1e-6), + this._time !== t) { + this._time = t, + this._actionTimeline.setCurrentTime(this._time), + null !== this._zOrderTimeline && (this._zOrderTimeline.playState = -1); + for (var i = 0, n = this._boneTimelines; i < n.length; i++) + n[i].playState = -1; + for (var r = 0, s = this._slotTimelines; r < s.length; r++) + s[r].playState = -1 + } + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(r.prototype, "animationData", { + get: function() { + return this._animationData + }, + enumerable: !0, + configurable: !0 + }), + r + } + )(t.BaseObject); + t.AnimationState = e; + var i = (function(e) { + function i() { + var i = null !== e && e.apply(this, arguments) || this; + return i.current = new t.Transform, + i.delta = new t.Transform, + i.result = new t.Transform, + i + } + return s(i, e), + i.toString = function() { + return "[class dragonBones.BonePose]" + } + , + i.prototype._onClear = function() { + this.current.identity(), + this.delta.identity(), + this.result.identity() + } + , + i + } + )(t.BaseObject); + t.BonePose = i; + var n = (function() { + function t() {} + return t.prototype.update = function(t, e) { + if (this.dirty) { + if (!(this.leftWeight > 0)) + return 0; + if (this.layer !== e) { + if (this.layerWeight >= this.leftWeight) + return this.leftWeight = 0, + 0; + this.layer = e, + this.leftWeight -= this.layerWeight, + this.layerWeight = 0 + } + return t *= this.leftWeight, + this.layerWeight += t, + this.blendWeight = t, + 2 + } + return this.dirty = !0, + this.layer = e, + this.layerWeight = t, + this.leftWeight = 1, + this.blendWeight = t, + 1 + } + , + t.prototype.clear = function() { + this.dirty = !1, + this.layer = 0, + this.leftWeight = 0, + this.layerWeight = 0, + this.blendWeight = 0 + } + , + t + } + )(); + t.BlendState = n + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.prototype._onClear = function() { + this.playState = -1, + this.currentPlayTimes = -1, + this.currentTime = -1, + this._tweenState = 0, + this._frameRate = 0, + this._frameValueOffset = 0, + this._frameCount = 0, + this._frameOffset = 0, + this._frameIndex = -1, + this._frameRateR = 0, + this._position = 0, + this._duration = 0, + this._timeScale = 1, + this._timeOffset = 0, + this._dragonBonesData = null, + this._animationData = null, + this._timelineData = null, + this._armature = null, + this._animationState = null, + this._actionTimeline = null, + this._frameArray = null, + this._frameIntArray = null, + this._frameFloatArray = null, + this._timelineArray = null, + this._frameIndices = null + } + , + e.prototype._setCurrentTime = function(t) { + var e = this.playState + , i = this.currentPlayTimes + , n = this.currentTime; + if (null !== this._actionTimeline && this._frameCount <= 1) + this.playState = this._actionTimeline.playState >= 0 ? 1 : -1, + this.currentPlayTimes = 1, + this.currentTime = this._actionTimeline.currentTime; + else if (null === this._actionTimeline || 1 !== this._timeScale || 0 !== this._timeOffset) { + var r = this._animationState.playTimes + , s = r * this._duration; + t *= this._timeScale, + 0 !== this._timeOffset && (t += this._timeOffset * this._animationData.duration), + r > 0 && (t >= s || t <= -s) ? (this.playState <= 0 && 3 === this._animationState._playheadState && (this.playState = 1), + this.currentPlayTimes = r, + this.currentTime = t < 0 ? 0 : this._duration + 1e-6) : (0 !== this.playState && 3 === this._animationState._playheadState && (this.playState = 0), + t < 0 ? (t = -t, + this.currentPlayTimes = Math.floor(t / this._duration), + this.currentTime = this._duration - t % this._duration) : (this.currentPlayTimes = Math.floor(t / this._duration), + this.currentTime = t % this._duration)), + this.currentTime += this._position + } else + this.playState = this._actionTimeline.playState, + this.currentPlayTimes = this._actionTimeline.currentPlayTimes, + this.currentTime = this._actionTimeline.currentTime; + return (this.currentPlayTimes !== i || this.currentTime !== n) && ((e < 0 && this.playState !== e || this.playState <= 0 && this.currentPlayTimes !== i) && (this._frameIndex = -1), + !0) + } + , + e.prototype.init = function(t, e, i) { + this._armature = t, + this._animationState = e, + this._timelineData = i, + this._actionTimeline = this._animationState._actionTimeline, + this === this._actionTimeline && (this._actionTimeline = null), + this._animationData = this._animationState._animationData, + this._frameRate = this._animationData.parent.frameRate, + this._frameRateR = 1 / this._frameRate, + this._position = this._animationState._position, + this._duration = this._animationState._duration, + this._dragonBonesData = this._animationData.parent.parent, + null !== this._timelineData && (this._frameIntArray = this._dragonBonesData.frameIntArray, + this._frameFloatArray = this._dragonBonesData.frameFloatArray, + this._frameArray = this._dragonBonesData.frameArray, + this._timelineArray = this._dragonBonesData.timelineArray, + this._frameIndices = this._dragonBonesData.frameIndices, + this._frameCount = this._timelineArray[this._timelineData.offset + 2], + this._frameValueOffset = this._timelineArray[this._timelineData.offset + 4], + this._timeScale = 100 / this._timelineArray[this._timelineData.offset + 0], + this._timeOffset = .01 * this._timelineArray[this._timelineData.offset + 1]) + } + , + e.prototype.fadeOut = function() {} + , + e.prototype.update = function(t) { + if (this._setCurrentTime(t)) { + if (this._frameCount > 1) { + var e = Math.floor(this.currentTime * this._frameRate) + , i = this._frameIndices[this._timelineData.frameIndicesOffset + e]; + this._frameIndex !== i && (this._frameIndex = i, + this._frameOffset = this._animationData.frameOffset + this._timelineArray[this._timelineData.offset + 5 + this._frameIndex], + this._onArriveAtFrame()) + } else + this._frameIndex < 0 && (this._frameIndex = 0, + null !== this._timelineData && (this._frameOffset = this._animationData.frameOffset + this._timelineArray[this._timelineData.offset + 5]), + this._onArriveAtFrame()); + 0 !== this._tweenState && this._onUpdateFrame() + } + } + , + e + } + )(t.BaseObject); + t.TimelineState = e; + var i = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e._getEasingValue = function(t, e, i) { + var n = e; + switch (t) { + case 3: + n = Math.pow(e, 2); + break; + case 4: + n = 1 - Math.pow(1 - e, 2); + break; + case 5: + n = .5 * (1 - Math.cos(e * Math.PI)) + } + return (n - e) * i + e + } + , + e._getEasingCurveValue = function(t, e, i, n) { + if (t <= 0) + return 0; + if (t >= 1) + return 1; + var r = i + 1 + , s = Math.floor(t * r) + , a = 0 === s ? 0 : e[n + s - 1]; + return 1e-4 * (a + ((s === r - 1 ? 1e4 : e[n + s]) - a) * (t * r - s)) + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this._tweenType = 0, + this._curveCount = 0, + this._framePosition = 0, + this._frameDurationR = 0, + this._tweenProgress = 0, + this._tweenEasing = 0 + } + , + e.prototype._onArriveAtFrame = function() { + if (this._frameCount > 1 && (this._frameIndex !== this._frameCount - 1 || 0 === this._animationState.playTimes || this._animationState.currentPlayTimes < this._animationState.playTimes - 1)) + if (this._tweenType = this._frameArray[this._frameOffset + 1], + this._tweenState = 0 === this._tweenType ? 1 : 2, + 2 === this._tweenType ? this._curveCount = this._frameArray[this._frameOffset + 2] : 0 !== this._tweenType && 1 !== this._tweenType && (this._tweenEasing = .01 * this._frameArray[this._frameOffset + 2]), + this._framePosition = this._frameArray[this._frameOffset] * this._frameRateR, + this._frameIndex === this._frameCount - 1) + this._frameDurationR = 1 / (this._animationData.duration - this._framePosition); + else { + var t = this._animationData.frameOffset + this._timelineArray[this._timelineData.offset + 5 + this._frameIndex + 1] + , e = this._frameArray[t] * this._frameRateR - this._framePosition; + this._frameDurationR = e > 0 ? 1 / e : 0 + } + else + this._tweenState = 1 + } + , + e.prototype._onUpdateFrame = function() { + 2 === this._tweenState ? (this._tweenProgress = (this.currentTime - this._framePosition) * this._frameDurationR, + 2 === this._tweenType ? this._tweenProgress = e._getEasingCurveValue(this._tweenProgress, this._frameArray, this._curveCount, this._frameOffset + 3) : 1 !== this._tweenType && (this._tweenProgress = e._getEasingValue(this._tweenType, this._tweenProgress, this._tweenEasing))) : this._tweenProgress = 0 + } + , + e + } + )(e); + t.TweenTimelineState = i; + var n = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.bone = null, + this.bonePose = null + } + , + e.prototype.blend = function(t) { + var e = this.bone._blendState.blendWeight + , i = this.bone.animationPose + , n = this.bonePose.result; + 2 === t ? (i.x += n.x * e, + i.y += n.y * e, + i.rotation += n.rotation * e, + i.skew += n.skew * e, + i.scaleX += (n.scaleX - 1) * e, + i.scaleY += (n.scaleY - 1) * e) : 1 !== e ? (i.x = n.x * e, + i.y = n.y * e, + i.rotation = n.rotation * e, + i.skew = n.skew * e, + i.scaleX = (n.scaleX - 1) * e + 1, + i.scaleY = (n.scaleY - 1) * e + 1) : (i.x = n.x, + i.y = n.y, + i.rotation = n.rotation, + i.skew = n.skew, + i.scaleX = n.scaleX, + i.scaleY = n.scaleY), + 0 === this._animationState._fadeState && 0 === this._animationState._subFadeState || (this.bone._transformDirty = !0) + } + , + e + } + )(i); + t.BoneTimelineState = n; + var r = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.slot = null + } + , + e + } + )(i); + t.SlotTimelineState = r; + var a = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.constraint = null + } + , + e + } + )(i); + t.ConstraintTimelineState = a + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i() { + return null !== e && e.apply(this, arguments) || this + } + return s(i, e), + i.toString = function() { + return "[class dragonBones.ActionTimelineState]" + } + , + i.prototype._onCrossFrame = function(e) { + var i = this._armature.eventDispatcher; + if (this._animationState.actionEnabled) + for (var n = this._animationData.frameOffset + this._timelineArray[this._timelineData.offset + 5 + e], r = this._frameArray[n + 1], s = this._animationData.parent.actions, a = 0; a < r; ++a) { + var o = s[this._frameArray[n + 2 + a]]; + if (0 === o.type) + (l = t.BaseObject.borrowObject(t.EventObject)).time = this._frameArray[n] / this._frameRate, + l.animationState = this._animationState, + t.EventObject.actionDataToInstance(o, l, this._armature), + this._armature._bufferAction(l, !0); + else { + var l, h = 10 === o.type ? t.EventObject.FRAME_EVENT : t.EventObject.SOUND_EVENT; + (11 === o.type || i.hasDBEventListener(h)) && ((l = t.BaseObject.borrowObject(t.EventObject)).time = this._frameArray[n] / this._frameRate, + l.animationState = this._animationState, + t.EventObject.actionDataToInstance(o, l, this._armature), + this._armature._dragonBones.bufferEvent(l)) + } + } + } + , + i.prototype._onArriveAtFrame = function() {} + , + i.prototype._onUpdateFrame = function() {} + , + i.prototype.update = function(e) { + var i = this.playState + , n = this.currentPlayTimes + , r = this.currentTime; + if (this._setCurrentTime(e)) { + var s = this._armature.eventDispatcher; + if (i < 0) { + if (this.playState === i) + return; + if (this._animationState.displayControl && this._animationState.resetToPose && this._armature._sortZOrder(null, 0), + n = this.currentPlayTimes, + s.hasDBEventListener(t.EventObject.START)) { + var a = t.BaseObject.borrowObject(t.EventObject); + a.type = t.EventObject.START, + a.armature = this._armature, + a.animationState = this._animationState, + this._armature._dragonBones.bufferEvent(a) + } + } + var o = this._animationState.timeScale < 0 + , l = null + , h = null; + if (this.currentPlayTimes !== n && (s.hasDBEventListener(t.EventObject.LOOP_COMPLETE) && ((l = t.BaseObject.borrowObject(t.EventObject)).type = t.EventObject.LOOP_COMPLETE, + l.armature = this._armature, + l.animationState = this._animationState), + this.playState > 0 && s.hasDBEventListener(t.EventObject.COMPLETE) && ((h = t.BaseObject.borrowObject(t.EventObject)).type = t.EventObject.COMPLETE, + h.armature = this._armature, + h.animationState = this._animationState)), + this._frameCount > 1) { + var c = this._timelineData + , u = Math.floor(this.currentTime * this._frameRate) + , _ = this._frameIndices[c.frameIndicesOffset + u]; + if (this._frameIndex !== _) { + var f = this._frameIndex; + if (this._frameIndex = _, + null !== this._timelineArray) + if (this._frameOffset = this._animationData.frameOffset + this._timelineArray[c.offset + 5 + this._frameIndex], + o) { + if (f < 0) { + var d = Math.floor(r * this._frameRate); + f = this._frameIndices[c.frameIndicesOffset + d], + this.currentPlayTimes === n && f === _ && (f = -1) + } + for (; f >= 0; ) { + var p = this._animationData.frameOffset + this._timelineArray[c.offset + 5 + f] + , m = this._frameArray[p] / this._frameRate; + if (this._position <= m && m <= this._position + this._duration && this._onCrossFrame(f), + null !== l && 0 === f && (this._armature._dragonBones.bufferEvent(l), + l = null), + f > 0 ? f-- : f = this._frameCount - 1, + f === _) + break + } + } else + for (f < 0 && (d = Math.floor(r * this._frameRate), + f = this._frameIndices[c.frameIndicesOffset + d], + p = this._animationData.frameOffset + this._timelineArray[c.offset + 5 + f], + m = this._frameArray[p] / this._frameRate, + this.currentPlayTimes === n && (r <= m ? f > 0 ? f-- : f = this._frameCount - 1 : f === _ && (f = -1))); f >= 0 && (f < this._frameCount - 1 ? f++ : f = 0, + p = this._animationData.frameOffset + this._timelineArray[c.offset + 5 + f], + m = this._frameArray[p] / this._frameRate, + this._position <= m && m <= this._position + this._duration && this._onCrossFrame(f), + null !== l && 0 === f && (this._armature._dragonBones.bufferEvent(l), + l = null), + f !== _); ) + ; + } + } else + this._frameIndex < 0 && (this._frameIndex = 0, + null !== this._timelineData) && (this._frameOffset = this._animationData.frameOffset + this._timelineArray[this._timelineData.offset + 5], + m = this._frameArray[this._frameOffset] / this._frameRate, + this.currentPlayTimes === n ? r <= m && this._onCrossFrame(this._frameIndex) : this._position <= m && (o || null === l || (this._armature._dragonBones.bufferEvent(l), + l = null), + this._onCrossFrame(this._frameIndex))); + null !== l && this._armature._dragonBones.bufferEvent(l), + null !== h && this._armature._dragonBones.bufferEvent(h) + } + } + , + i.prototype.setCurrentTime = function(t) { + this._setCurrentTime(t), + this._frameIndex = -1 + } + , + i + } + )(t.TimelineState); + t.ActionTimelineState = e; + var i = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.ZOrderTimelineState]" + } + , + e.prototype._onArriveAtFrame = function() { + this.playState >= 0 && (this._frameArray[this._frameOffset + 1] > 0 ? this._armature._sortZOrder(this._frameArray, this._frameOffset + 2) : this._armature._sortZOrder(null, 0)) + } + , + e.prototype._onUpdateFrame = function() {} + , + e + } + )(t.TimelineState); + t.ZOrderTimelineState = i; + var n = (function(e) { + function i() { + return null !== e && e.apply(this, arguments) || this + } + return s(i, e), + i.toString = function() { + return "[class dragonBones.BoneAllTimelineState]" + } + , + i.prototype._onArriveAtFrame = function() { + if (e.prototype._onArriveAtFrame.call(this), + null !== this._timelineData) { + var t = this._animationData.frameFloatOffset + this._frameValueOffset + 6 * this._frameIndex + , i = this._armature._armatureData.scale + , n = this._frameFloatArray + , r = this.bonePose.current + , s = this.bonePose.delta; + r.x = n[t++] * i, + r.y = n[t++] * i, + r.rotation = n[t++], + r.skew = n[t++], + r.scaleX = n[t++], + r.scaleY = n[t++], + 2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 && (t = this._animationData.frameFloatOffset + this._frameValueOffset), + s.x = n[t++] * i - r.x, + s.y = n[t++] * i - r.y, + s.rotation = n[t++] - r.rotation, + s.skew = n[t++] - r.skew, + s.scaleX = n[t++] - r.scaleX, + s.scaleY = n[t++] - r.scaleY) : (s.x = 0, + s.y = 0, + s.rotation = 0, + s.skew = 0, + s.scaleX = 0, + s.scaleY = 0) + } else + r = this.bonePose.current, + s = this.bonePose.delta, + r.x = 0, + r.y = 0, + r.rotation = 0, + r.skew = 0, + r.scaleX = 1, + r.scaleY = 1, + s.x = 0, + s.y = 0, + s.rotation = 0, + s.skew = 0, + s.scaleX = 0, + s.scaleY = 0 + } + , + i.prototype._onUpdateFrame = function() { + e.prototype._onUpdateFrame.call(this); + var t = this.bonePose.current + , i = this.bonePose.delta + , n = this.bonePose.result; + this.bone._transformDirty = !0, + 2 !== this._tweenState && (this._tweenState = 0), + n.x = t.x + i.x * this._tweenProgress, + n.y = t.y + i.y * this._tweenProgress, + n.rotation = t.rotation + i.rotation * this._tweenProgress, + n.skew = t.skew + i.skew * this._tweenProgress, + n.scaleX = t.scaleX + i.scaleX * this._tweenProgress, + n.scaleY = t.scaleY + i.scaleY * this._tweenProgress + } + , + i.prototype.fadeOut = function() { + var e = this.bonePose.result; + e.rotation = t.Transform.normalizeRadian(e.rotation), + e.skew = t.Transform.normalizeRadian(e.skew) + } + , + i + } + )(t.BoneTimelineState); + t.BoneAllTimelineState = n; + var r = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.BoneTranslateTimelineState]" + } + , + e.prototype._onArriveAtFrame = function() { + if (t.prototype._onArriveAtFrame.call(this), + null !== this._timelineData) { + var e = this._animationData.frameFloatOffset + this._frameValueOffset + 2 * this._frameIndex + , i = this._armature._armatureData.scale + , n = this._frameFloatArray + , r = this.bonePose.current + , s = this.bonePose.delta; + r.x = n[e++] * i, + r.y = n[e++] * i, + 2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 && (e = this._animationData.frameFloatOffset + this._frameValueOffset), + s.x = n[e++] * i - r.x, + s.y = n[e++] * i - r.y) : (s.x = 0, + s.y = 0) + } else + r = this.bonePose.current, + s = this.bonePose.delta, + r.x = 0, + r.y = 0, + s.x = 0, + s.y = 0 + } + , + e.prototype._onUpdateFrame = function() { + t.prototype._onUpdateFrame.call(this); + var e = this.bonePose.current + , i = this.bonePose.delta + , n = this.bonePose.result; + this.bone._transformDirty = !0, + 2 !== this._tweenState && (this._tweenState = 0), + n.x = e.x + i.x * this._tweenProgress, + n.y = e.y + i.y * this._tweenProgress + } + , + e + } + )(t.BoneTimelineState); + t.BoneTranslateTimelineState = r; + var a = (function(e) { + function i() { + return null !== e && e.apply(this, arguments) || this + } + return s(i, e), + i.toString = function() { + return "[class dragonBones.BoneRotateTimelineState]" + } + , + i.prototype._onArriveAtFrame = function() { + if (e.prototype._onArriveAtFrame.call(this), + null !== this._timelineData) { + var i = this._animationData.frameFloatOffset + this._frameValueOffset + 2 * this._frameIndex + , n = this._frameFloatArray + , r = this.bonePose.current + , s = this.bonePose.delta; + r.rotation = n[i++], + r.skew = n[i++], + 2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 ? (i = this._animationData.frameFloatOffset + this._frameValueOffset, + s.rotation = t.Transform.normalizeRadian(n[i++] - r.rotation)) : s.rotation = n[i++] - r.rotation, + s.skew = n[i++] - r.skew) : (s.rotation = 0, + s.skew = 0) + } else + r = this.bonePose.current, + s = this.bonePose.delta, + r.rotation = 0, + r.skew = 0, + s.rotation = 0, + s.skew = 0 + } + , + i.prototype._onUpdateFrame = function() { + e.prototype._onUpdateFrame.call(this); + var t = this.bonePose.current + , i = this.bonePose.delta + , n = this.bonePose.result; + this.bone._transformDirty = !0, + 2 !== this._tweenState && (this._tweenState = 0), + n.rotation = t.rotation + i.rotation * this._tweenProgress, + n.skew = t.skew + i.skew * this._tweenProgress + } + , + i.prototype.fadeOut = function() { + var e = this.bonePose.result; + e.rotation = t.Transform.normalizeRadian(e.rotation), + e.skew = t.Transform.normalizeRadian(e.skew) + } + , + i + } + )(t.BoneTimelineState); + t.BoneRotateTimelineState = a; + var o = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.BoneScaleTimelineState]" + } + , + e.prototype._onArriveAtFrame = function() { + if (t.prototype._onArriveAtFrame.call(this), + null !== this._timelineData) { + var e = this._animationData.frameFloatOffset + this._frameValueOffset + 2 * this._frameIndex + , i = this._frameFloatArray + , n = this.bonePose.current + , r = this.bonePose.delta; + n.scaleX = i[e++], + n.scaleY = i[e++], + 2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 && (e = this._animationData.frameFloatOffset + this._frameValueOffset), + r.scaleX = i[e++] - n.scaleX, + r.scaleY = i[e++] - n.scaleY) : (r.scaleX = 0, + r.scaleY = 0) + } else + n = this.bonePose.current, + r = this.bonePose.delta, + n.scaleX = 1, + n.scaleY = 1, + r.scaleX = 0, + r.scaleY = 0 + } + , + e.prototype._onUpdateFrame = function() { + t.prototype._onUpdateFrame.call(this); + var e = this.bonePose.current + , i = this.bonePose.delta + , n = this.bonePose.result; + this.bone._transformDirty = !0, + 2 !== this._tweenState && (this._tweenState = 0), + n.scaleX = e.scaleX + i.scaleX * this._tweenProgress, + n.scaleY = e.scaleY + i.scaleY * this._tweenProgress + } + , + e + } + )(t.BoneTimelineState); + t.BoneScaleTimelineState = o; + var l = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e._current = [], + e._delta = [], + e._result = [], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.SurfaceTimelineState]" + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.surface = null, + this._frameFloatOffset = 0, + this._valueCount = 0, + this._deformCount = 0, + this._valueOffset = 0, + this._current.length = 0, + this._delta.length = 0, + this._result.length = 0 + } + , + e.prototype._onArriveAtFrame = function() { + if (t.prototype._onArriveAtFrame.call(this), + null !== this._timelineData) { + var e = this._animationData.frameFloatOffset + this._frameValueOffset + this._frameIndex * this._valueCount + , i = this._armature._armatureData.scale + , n = this._frameFloatArray; + if (2 === this._tweenState) { + var r = e + this._valueCount; + this._frameIndex === this._frameCount - 1 && (r = this._animationData.frameFloatOffset + this._frameValueOffset); + for (var s = 0; s < this._valueCount; ++s) + this._delta[s] = n[r + s] * i - (this._current[s] = n[e + s] * i) + } else + for (s = 0; s < this._valueCount; ++s) + this._current[s] = n[e + s] * i + } else + for (s = 0; s < this._valueCount; ++s) + this._current[s] = 0 + } + , + e.prototype._onUpdateFrame = function() { + t.prototype._onUpdateFrame.call(this), + this.surface._transformDirty = !0, + 2 !== this._tweenState && (this._tweenState = 0); + for (var e = 0; e < this._valueCount; ++e) + this._result[e] = this._current[e] + this._delta[e] * this._tweenProgress + } + , + e.prototype.init = function(e, i, n) { + if (t.prototype.init.call(this, e, i, n), + null !== this._timelineData) { + var r = this._animationData.frameIntOffset + this._timelineArray[this._timelineData.offset + 3]; + this._deformCount = this._frameIntArray[r + 1], + this._valueCount = this._frameIntArray[r + 2], + this._valueOffset = this._frameIntArray[r + 3], + this._frameFloatOffset = this._frameIntArray[r + 4] + this._animationData.frameFloatOffset + } else + this._deformCount = this.surface._deformVertices.length, + this._valueCount = this._deformCount, + this._valueOffset = 0, + this._frameFloatOffset = 0; + this._current.length = this._valueCount, + this._delta.length = this._valueCount, + this._result.length = this._valueCount; + for (var s = 0; s < this._valueCount; ++s) + this._delta[s] = 0 + } + , + e.prototype.blend = function(t) { + for (var e = this.surface._blendState.blendWeight, i = this.surface._deformVertices, n = 0; n < this._deformCount; ++n) { + var r; + r = n < this._valueOffset ? this._frameFloatArray[this._frameFloatOffset + n] : n < this._valueOffset + this._valueCount ? this._result[n - this._valueOffset] : this._frameFloatArray[this._frameFloatOffset + n - this._valueCount], + 2 === t ? i[n] += r * e : i[n] = 1 !== e ? r * e : r + } + 0 === this._animationState._fadeState && 0 === this._animationState._subFadeState || (this.surface._transformDirty = !0) + } + , + e + } + )(t.TweenTimelineState); + t.SurfaceTimelineState = l; + var h = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.SlotDislayTimelineState]" + } + , + e.prototype._onArriveAtFrame = function() { + if (this.playState >= 0) { + var t = null !== this._timelineData ? this._frameArray[this._frameOffset + 1] : this.slot._slotData.displayIndex; + this.slot.displayIndex !== t && this.slot._setDisplayIndex(t, !0) + } + } + , + e + } + )(t.SlotTimelineState); + t.SlotDislayTimelineState = h; + var c = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e._current = [0, 0, 0, 0, 0, 0, 0, 0], + e._delta = [0, 0, 0, 0, 0, 0, 0, 0], + e._result = [0, 0, 0, 0, 0, 0, 0, 0], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.SlotColorTimelineState]" + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this._dirty = !1 + } + , + e.prototype._onArriveAtFrame = function() { + if (t.prototype._onArriveAtFrame.call(this), + null !== this._timelineData) { + var e = this._dragonBonesData.intArray + , i = this._frameIntArray + , n = this._animationData.frameIntOffset + this._frameValueOffset + 1 * this._frameIndex + , r = i[n]; + r < 0 && (r += 65536), + this._current[0] = e[r++], + this._current[1] = e[r++], + this._current[2] = e[r++], + this._current[3] = e[r++], + this._current[4] = e[r++], + this._current[5] = e[r++], + this._current[6] = e[r++], + this._current[7] = e[r++], + 2 === this._tweenState && ((r = this._frameIndex === this._frameCount - 1 ? i[this._animationData.frameIntOffset + this._frameValueOffset] : i[n + 1]) < 0 && (r += 65536), + this._delta[0] = e[r++] - this._current[0], + this._delta[1] = e[r++] - this._current[1], + this._delta[2] = e[r++] - this._current[2], + this._delta[3] = e[r++] - this._current[3], + this._delta[4] = e[r++] - this._current[4], + this._delta[5] = e[r++] - this._current[5], + this._delta[6] = e[r++] - this._current[6], + this._delta[7] = e[r++] - this._current[7]) + } else { + var s = this.slot._slotData.color; + this._current[0] = 100 * s.alphaMultiplier, + this._current[1] = 100 * s.redMultiplier, + this._current[2] = 100 * s.greenMultiplier, + this._current[3] = 100 * s.blueMultiplier, + this._current[4] = s.alphaOffset, + this._current[5] = s.redOffset, + this._current[6] = s.greenOffset, + this._current[7] = s.blueOffset + } + } + , + e.prototype._onUpdateFrame = function() { + t.prototype._onUpdateFrame.call(this), + this._dirty = !0, + 2 !== this._tweenState && (this._tweenState = 0), + this._result[0] = .01 * (this._current[0] + this._delta[0] * this._tweenProgress), + this._result[1] = .01 * (this._current[1] + this._delta[1] * this._tweenProgress), + this._result[2] = .01 * (this._current[2] + this._delta[2] * this._tweenProgress), + this._result[3] = .01 * (this._current[3] + this._delta[3] * this._tweenProgress), + this._result[4] = this._current[4] + this._delta[4] * this._tweenProgress, + this._result[5] = this._current[5] + this._delta[5] * this._tweenProgress, + this._result[6] = this._current[6] + this._delta[6] * this._tweenProgress, + this._result[7] = this._current[7] + this._delta[7] * this._tweenProgress + } + , + e.prototype.fadeOut = function() { + this._tweenState = 0, + this._dirty = !1 + } + , + e.prototype.update = function(e) { + if (t.prototype.update.call(this, e), + 0 !== this._tweenState || this._dirty) { + var i = this.slot._colorTransform; + if (0 !== this._animationState._fadeState || 0 !== this._animationState._subFadeState) { + if (i.alphaMultiplier !== this._result[0] || i.redMultiplier !== this._result[1] || i.greenMultiplier !== this._result[2] || i.blueMultiplier !== this._result[3] || i.alphaOffset !== this._result[4] || i.redOffset !== this._result[5] || i.greenOffset !== this._result[6] || i.blueOffset !== this._result[7]) { + var n = Math.pow(this._animationState._fadeProgress, 4); + i.alphaMultiplier += (this._result[0] - i.alphaMultiplier) * n, + i.redMultiplier += (this._result[1] - i.redMultiplier) * n, + i.greenMultiplier += (this._result[2] - i.greenMultiplier) * n, + i.blueMultiplier += (this._result[3] - i.blueMultiplier) * n, + i.alphaOffset += (this._result[4] - i.alphaOffset) * n, + i.redOffset += (this._result[5] - i.redOffset) * n, + i.greenOffset += (this._result[6] - i.greenOffset) * n, + i.blueOffset += (this._result[7] - i.blueOffset) * n, + this.slot._colorDirty = !0 + } + } else + this._dirty && (this._dirty = !1, + i.alphaMultiplier === this._result[0] && i.redMultiplier === this._result[1] && i.greenMultiplier === this._result[2] && i.blueMultiplier === this._result[3] && i.alphaOffset === this._result[4] && i.redOffset === this._result[5] && i.greenOffset === this._result[6] && i.blueOffset === this._result[7] || (i.alphaMultiplier = this._result[0], + i.redMultiplier = this._result[1], + i.greenMultiplier = this._result[2], + i.blueMultiplier = this._result[3], + i.alphaOffset = this._result[4], + i.redOffset = this._result[5], + i.greenOffset = this._result[6], + i.blueOffset = this._result[7], + this.slot._colorDirty = !0)) + } + } + , + e + } + )(t.SlotTimelineState); + t.SlotColorTimelineState = c; + var u = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e._current = [], + e._delta = [], + e._result = [], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.DeformTimelineState]" + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.vertexOffset = 0, + this._dirty = !1, + this._frameFloatOffset = 0, + this._valueCount = 0, + this._deformCount = 0, + this._valueOffset = 0, + this._current.length = 0, + this._delta.length = 0, + this._result.length = 0 + } + , + e.prototype._onArriveAtFrame = function() { + if (t.prototype._onArriveAtFrame.call(this), + null !== this._timelineData) { + var e = this._animationData.frameFloatOffset + this._frameValueOffset + this._frameIndex * this._valueCount + , i = this._armature._armatureData.scale + , n = this._frameFloatArray; + if (2 === this._tweenState) { + var r = e + this._valueCount; + this._frameIndex === this._frameCount - 1 && (r = this._animationData.frameFloatOffset + this._frameValueOffset); + for (var s = 0; s < this._valueCount; ++s) + this._delta[s] = n[r + s] * i - (this._current[s] = n[e + s] * i) + } else + for (s = 0; s < this._valueCount; ++s) + this._current[s] = n[e + s] * i + } else + for (s = 0; s < this._valueCount; ++s) + this._current[s] = 0 + } + , + e.prototype._onUpdateFrame = function() { + t.prototype._onUpdateFrame.call(this), + this._dirty = !0, + 2 !== this._tweenState && (this._tweenState = 0); + for (var e = 0; e < this._valueCount; ++e) + this._result[e] = this._current[e] + this._delta[e] * this._tweenProgress + } + , + e.prototype.init = function(e, i, n) { + if (t.prototype.init.call(this, e, i, n), + null !== this._timelineData) { + var r = this._animationData.frameIntOffset + this._timelineArray[this._timelineData.offset + 3]; + this.vertexOffset = this._frameIntArray[r + 0], + this.vertexOffset < 0 && (this.vertexOffset += 65536), + this._deformCount = this._frameIntArray[r + 1], + this._valueCount = this._frameIntArray[r + 2], + this._valueOffset = this._frameIntArray[r + 3], + this._frameFloatOffset = this._frameIntArray[r + 4] + this._animationData.frameFloatOffset + } else { + var s = this.slot._deformVertices; + this._deformCount = null !== s ? s.vertices.length : 0, + this._valueCount = this._deformCount, + this._valueOffset = 0, + this._frameFloatOffset = 0 + } + this._current.length = this._valueCount, + this._delta.length = this._valueCount, + this._result.length = this._valueCount; + for (var a = 0; a < this._valueCount; ++a) + this._delta[a] = 0 + } + , + e.prototype.fadeOut = function() { + this._tweenState = 0, + this._dirty = !1 + } + , + e.prototype.update = function(e) { + var i = this.slot._deformVertices; + if (null !== i && null !== i.verticesData && i.verticesData.offset === this.vertexOffset && (t.prototype.update.call(this, e), + 0 !== this._tweenState || this._dirty)) { + var n = i.vertices; + if (0 !== this._animationState._fadeState || 0 !== this._animationState._subFadeState) { + for (var r = Math.pow(this._animationState._fadeProgress, 2), s = 0; s < this._deformCount; ++s) + s < this._valueOffset ? n[s] += (this._frameFloatArray[this._frameFloatOffset + s] - n[s]) * r : s < this._valueOffset + this._valueCount ? n[s] += (this._result[s - this._valueOffset] - n[s]) * r : n[s] += (this._frameFloatArray[this._frameFloatOffset + s - this._valueCount] - n[s]) * r; + i.verticesDirty = !0 + } else if (this._dirty) { + for (this._dirty = !1, + s = 0; s < this._deformCount; ++s) + s < this._valueOffset ? n[s] = this._frameFloatArray[this._frameFloatOffset + s] : s < this._valueOffset + this._valueCount ? n[s] = this._result[s - this._valueOffset] : n[s] = this._frameFloatArray[this._frameFloatOffset + s - this._valueCount]; + i.verticesDirty = !0 + } + } + } + , + e + } + )(t.SlotTimelineState); + t.DeformTimelineState = u; + var _ = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.IKConstraintTimelineState]" + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this._current = 0, + this._delta = 0 + } + , + e.prototype._onArriveAtFrame = function() { + t.prototype._onArriveAtFrame.call(this); + var e = this.constraint; + if (null !== this._timelineData) { + var i = this._animationData.frameIntOffset + this._frameValueOffset + 2 * this._frameIndex + , n = this._frameIntArray + , r = 0 !== n[i++]; + this._current = .01 * n[i++], + 2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 && (i = this._animationData.frameIntOffset + this._frameValueOffset), + this._delta = .01 * n[i + 1] - this._current) : this._delta = 0, + e._bendPositive = r + } else { + var s = e._constraintData; + this._current = s.weight, + this._delta = 0, + e._bendPositive = s.bendPositive + } + e.invalidUpdate() + } + , + e.prototype._onUpdateFrame = function() { + t.prototype._onUpdateFrame.call(this), + 2 !== this._tweenState && (this._tweenState = 0); + var e = this.constraint; + e._weight = this._current + this._delta * this._tweenProgress, + e.invalidUpdate() + } + , + e + } + )(t.ConstraintTimelineState); + t.IKConstraintTimelineState = _; + var f = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e._floats = [0, 0, 0, 0, 0, 0], + e + } + return s(e, t), + e.toString = function() { + return "[class dragonBones.AnimationTimelineState]" + } + , + e.prototype._onClear = function() { + t.prototype._onClear.call(this), + this.animationState = null + } + , + e.prototype._onArriveAtFrame = function() { + if (t.prototype._onArriveAtFrame.call(this), + null !== this._timelineData) { + var e = this._animationData.frameIntOffset + this._frameValueOffset + 2 * this._frameIndex + , i = 1 / this.animationState._animationData.parent.frameRate + , n = this._frameIntArray; + this._floats[0] = n[e++] * i, + this._floats[3] = .01 * n[e++], + 2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 && (e = this._animationData.frameIntOffset + this._frameValueOffset), + this._floats[1] = n[e++] * i - this._floats[0], + this._floats[4] = .01 * n[e++] - this._floats[3]) : (this._floats[1] = 0, + this._floats[4] = 0) + } + } + , + e.prototype._onUpdateFrame = function() { + t.prototype._onUpdateFrame.call(this), + 2 !== this._tweenState && (this._tweenState = 0), + this._floats[0] >= 0 && (this._floats[2] = this._floats[0] + this._floats[1] * this._tweenProgress), + this._floats[5] = this._floats[3] + this._floats[4] * this._tweenProgress + } + , + e.prototype.blend = function(t) { + var e = this.animationState + , i = e._blendState.blendWeight; + 2 === t ? (e.weight += this._floats[5] * i, + e.currentTime += this._floats[2] * i) : (e.weight = this._floats[5] * i, + e.currentTime = this._floats[2] * i) + } + , + e + } + )(t.TweenTimelineState); + t.AnimationTimelineState = f + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.actionDataToInstance = function(t, i, n) { + 0 === t.type ? i.type = e.FRAME_EVENT : i.type = 10 === t.type ? e.FRAME_EVENT : e.SOUND_EVENT, + i.name = t.name, + i.armature = n, + i.actionData = t, + i.data = t.data, + null !== t.bone && (i.bone = n.getBone(t.bone.name)), + null !== t.slot && (i.slot = n.getSlot(t.slot.name)) + } + , + e.toString = function() { + return "[class dragonBones.EventObject]" + } + , + e.prototype._onClear = function() { + this.time = 0, + this.type = "", + this.name = "", + this.armature = null, + this.bone = null, + this.slot = null, + this.animationState = null, + this.actionData = null, + this.data = null + } + , + e.START = "start", + e.LOOP_COMPLETE = "loopComplete", + e.COMPLETE = "complete", + e.FADE_IN = "fadeIn", + e.FADE_IN_COMPLETE = "fadeInComplete", + e.FADE_OUT = "fadeOut", + e.FADE_OUT_COMPLETE = "fadeOutComplete", + e.FRAME_EVENT = "frameEvent", + e.SOUND_EVENT = "soundEvent", + e + } + )(t.BaseObject); + t.EventObject = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e() {} + return e._getArmatureType = function(t) { + switch (t.toLowerCase()) { + case "stage": + return 2; + case "armature": + return 0; + case "movieclip": + return 1; + default: + return 0 + } + } + , + e._getBoneType = function(t) { + switch (t.toLowerCase()) { + case "bone": + return 0; + case "surface": + return 1; + default: + return 0 + } + } + , + e._getDisplayType = function(t) { + switch (t.toLowerCase()) { + case "image": + return 0; + case "mesh": + return 2; + case "armature": + return 1; + case "boundingbox": + return 3; + case "path": + return 4; + default: + return 0 + } + } + , + e._getBoundingBoxType = function(t) { + switch (t.toLowerCase()) { + case "rectangle": + return 0; + case "ellipse": + return 1; + case "polygon": + return 2; + default: + return 0 + } + } + , + e._getActionType = function(t) { + switch (t.toLowerCase()) { + case "play": + return 0; + case "frame": + return 10; + case "sound": + return 11; + default: + return 0 + } + } + , + e._getBlendMode = function(t) { + switch (t.toLowerCase()) { + case "normal": + return 0; + case "add": + return 1; + case "alpha": + return 2; + case "darken": + return 3; + case "difference": + return 4; + case "erase": + return 5; + case "hardlight": + return 6; + case "invert": + return 7; + case "layer": + return 8; + case "lighten": + return 9; + case "multiply": + return 10; + case "overlay": + return 11; + case "screen": + return 12; + case "subtract": + return 13; + default: + return 0 + } + } + , + e._getPositionMode = function(t) { + switch (t.toLocaleLowerCase()) { + case "percent": + return 1; + case "fixed": + return 0; + default: + return 1 + } + } + , + e._getSpacingMode = function(t) { + switch (t.toLocaleLowerCase()) { + case "length": + return 0; + case "percent": + return 2; + case "fixed": + return 1; + default: + return 0 + } + } + , + e._getRotateMode = function(t) { + switch (t.toLocaleLowerCase()) { + case "tangent": + return 0; + case "chain": + return 1; + case "chainscale": + return 2; + default: + return 0 + } + } + , + e.parseDragonBonesData = function(e) { + return console.warn("Deprecated."), + e instanceof ArrayBuffer ? t.BinaryDataParser.getInstance().parseDragonBonesData(e) : t.ObjectDataParser.getInstance().parseDragonBonesData(e) + } + , + e.parseTextureAtlasData = function(i, n) { + void 0 === n && (n = 1), + console.warn("\u5df2\u5e9f\u5f03"); + for (var r = {}, s = i[e.SUB_TEXTURE], a = 0, o = s.length; a < o; a++) { + var l = s[a] + , h = l[e.NAME] + , c = new t.Rectangle + , u = null; + c.x = l[e.X] / n, + c.y = l[e.Y] / n, + c.width = l[e.WIDTH] / n, + c.height = l[e.HEIGHT] / n, + e.FRAME_WIDTH in l && ((u = new t.Rectangle).x = l[e.FRAME_X] / n, + u.y = l[e.FRAME_Y] / n, + u.width = l[e.FRAME_WIDTH] / n, + u.height = l[e.FRAME_HEIGHT] / n), + r[h] = { + region: c, + frame: u, + rotated: !1 + } + } + return r + } + , + e.DATA_VERSION_2_3 = "2.3", + e.DATA_VERSION_3_0 = "3.0", + e.DATA_VERSION_4_0 = "4.0", + e.DATA_VERSION_4_5 = "4.5", + e.DATA_VERSION_5_0 = "5.0", + e.DATA_VERSION_5_5 = "5.5", + e.DATA_VERSION = e.DATA_VERSION_5_5, + e.DATA_VERSIONS = [e.DATA_VERSION_4_0, e.DATA_VERSION_4_5, e.DATA_VERSION_5_0, e.DATA_VERSION_5_5], + e.TEXTURE_ATLAS = "textureAtlas", + e.SUB_TEXTURE = "SubTexture", + e.FORMAT = "format", + e.IMAGE_PATH = "imagePath", + e.WIDTH = "width", + e.HEIGHT = "height", + e.ROTATED = "rotated", + e.FRAME_X = "frameX", + e.FRAME_Y = "frameY", + e.FRAME_WIDTH = "frameWidth", + e.FRAME_HEIGHT = "frameHeight", + e.DRADON_BONES = "dragonBones", + e.USER_DATA = "userData", + e.ARMATURE = "armature", + e.BONE = "bone", + e.SURFACE = "surface", + e.SLOT = "slot", + e.CONSTRAINT = "constraint", + e.IK = "ik", + e.PATH_CONSTRAINT = "path", + e.SKIN = "skin", + e.DISPLAY = "display", + e.ANIMATION = "animation", + e.Z_ORDER = "zOrder", + e.FFD = "ffd", + e.FRAME = "frame", + e.TRANSLATE_FRAME = "translateFrame", + e.ROTATE_FRAME = "rotateFrame", + e.SCALE_FRAME = "scaleFrame", + e.DISPLAY_FRAME = "displayFrame", + e.COLOR_FRAME = "colorFrame", + e.DEFAULT_ACTIONS = "defaultActions", + e.ACTIONS = "actions", + e.EVENTS = "events", + e.INTS = "ints", + e.FLOATS = "floats", + e.STRINGS = "strings", + e.CANVAS = "canvas", + e.TRANSFORM = "transform", + e.PIVOT = "pivot", + e.AABB = "aabb", + e.COLOR = "color", + e.VERSION = "version", + e.COMPATIBLE_VERSION = "compatibleVersion", + e.FRAME_RATE = "frameRate", + e.TYPE = "type", + e.SUB_TYPE = "subType", + e.NAME = "name", + e.PARENT = "parent", + e.TARGET = "target", + e.STAGE = "stage", + e.SHARE = "share", + e.PATH = "path", + e.LENGTH = "length", + e.DISPLAY_INDEX = "displayIndex", + e.BLEND_MODE = "blendMode", + e.INHERIT_TRANSLATION = "inheritTranslation", + e.INHERIT_ROTATION = "inheritRotation", + e.INHERIT_SCALE = "inheritScale", + e.INHERIT_REFLECTION = "inheritReflection", + e.INHERIT_ANIMATION = "inheritAnimation", + e.INHERIT_DEFORM = "inheritDeform", + e.SEGMENT_X = "segmentX", + e.SEGMENT_Y = "segmentY", + e.BEND_POSITIVE = "bendPositive", + e.CHAIN = "chain", + e.WEIGHT = "weight", + e.FADE_IN_TIME = "fadeInTime", + e.PLAY_TIMES = "playTimes", + e.SCALE = "scale", + e.OFFSET = "offset", + e.POSITION = "position", + e.DURATION = "duration", + e.TWEEN_EASING = "tweenEasing", + e.TWEEN_ROTATE = "tweenRotate", + e.TWEEN_SCALE = "tweenScale", + e.CLOCK_WISE = "clockwise", + e.CURVE = "curve", + e.SOUND = "sound", + e.EVENT = "event", + e.ACTION = "action", + e.X = "x", + e.Y = "y", + e.SKEW_X = "skX", + e.SKEW_Y = "skY", + e.SCALE_X = "scX", + e.SCALE_Y = "scY", + e.VALUE = "value", + e.ROTATE = "rotate", + e.SKEW = "skew", + e.ALPHA_OFFSET = "aO", + e.RED_OFFSET = "rO", + e.GREEN_OFFSET = "gO", + e.BLUE_OFFSET = "bO", + e.ALPHA_MULTIPLIER = "aM", + e.RED_MULTIPLIER = "rM", + e.GREEN_MULTIPLIER = "gM", + e.BLUE_MULTIPLIER = "bM", + e.UVS = "uvs", + e.VERTICES = "vertices", + e.TRIANGLES = "triangles", + e.WEIGHTS = "weights", + e.SLOT_POSE = "slotPose", + e.BONE_POSE = "bonePose", + e.GLUE_WEIGHTS = "glueWeights", + e.GLUE_MESHES = "glueMeshes", + e.BONES = "bones", + e.POSITION_MODE = "positionMode", + e.SPACING_MODE = "spacingMode", + e.ROTATE_MODE = "rotateMode", + e.SPACING = "spacing", + e.ROTATE_OFFSET = "rotateOffset", + e.ROTATE_MIX = "rotateMix", + e.TRANSLATE_MIX = "translateMix", + e.TARGET_DISPLAY = "targetDisplay", + e.CLOSED = "closed", + e.CONSTANT_SPEED = "constantSpeed", + e.VERTEX_COUNT = "vertexCount", + e.LENGTHS = "lengths", + e.GOTO_AND_PLAY = "gotoAndPlay", + e.DEFAULT_NAME = "default", + e + } + )(); + t.DataParser = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function n() { + var i = null !== e && e.apply(this, arguments) || this; + return i._rawTextureAtlasIndex = 0, + i._rawBones = [], + i._data = null, + i._armature = null, + i._bone = null, + i._surface = null, + i._slot = null, + i._skin = null, + i._mesh = null, + i._animation = null, + i._timeline = null, + i._rawTextureAtlases = null, + i._defaultColorOffset = -1, + i._prevClockwise = 0, + i._prevRotation = 0, + i._helpMatrixA = new t.Matrix, + i._helpMatrixB = new t.Matrix, + i._helpTransform = new t.Transform, + i._helpColorTransform = new t.ColorTransform, + i._helpPoint = new t.Point, + i._helpArray = [], + i._intArray = [], + i._floatArray = [], + i._frameIntArray = [], + i._frameFloatArray = [], + i._frameArray = [], + i._timelineArray = [], + i._cacheRawMeshes = [], + i._cacheMeshes = [], + i._actionFrames = [], + i._weightSlotPose = {}, + i._weightBonePoses = {}, + i._cacheBones = {}, + i._slotChildActions = {}, + i + } + return s(n, e), + n._getBoolean = function(t, e, i) { + if (e in t) { + var n = t[e] + , r = typeof n; + if ("boolean" === r) + return n; + if ("string" !== r) + return !!n; + switch (n) { + case "0": + case "NaN": + case "": + case "false": + case "null": + case "undefined": + return !1; + default: + return !0 + } + } + return i + } + , + n._getNumber = function(t, e, i) { + if (e in t) { + var n = t[e]; + return null === n || "NaN" === n ? i : +n || 0 + } + return i + } + , + n._getString = function(e, i, n) { + if (i in e) { + var r = e[i]; + if ("string" == typeof r) { + if (t.DragonBones.webAssembly) + for (var s = 0, a = r.length; s < a; ++s) + if (r.charCodeAt(s) > 255) + return encodeURI(r); + return r + } + return String(r) + } + return n + } + , + n.prototype._getCurvePoint = function(t, e, i, n, r, s, a, o, l, h) { + var c = 1 - l + , u = c * c + , _ = l * l + , f = c * u + , d = 3 * l * u + , p = 3 * c * _ + , m = l * _; + h.x = f * t + d * i + p * r + m * a, + h.y = f * e + d * n + p * s + m * o + } + , + n.prototype._samplingEasingCurve = function(t, e) { + for (var i = t.length, n = -2, r = 0, s = e.length; r < s; ++r) { + for (var a = (r + 1) / (s + 1); (n + 6 < i ? t[n + 6] : 1) < a; ) + n += 6; + for (var o = n >= 0 && n + 6 < i, l = o ? t[n] : 0, h = o ? t[n + 1] : 0, c = t[n + 2], u = t[n + 3], _ = t[n + 4], f = t[n + 5], d = o ? t[n + 6] : 1, p = o ? t[n + 7] : 1, m = 0, y = 1; y - m > 1e-4; ) { + var v = .5 * (y + m); + this._getCurvePoint(l, h, c, u, _, f, d, p, v, this._helpPoint), + a - this._helpPoint.x > 0 ? m = v : y = v + } + e[r] = this._helpPoint.y + } + } + , + n.prototype._parseActionDataInFrame = function(e, i, n, r) { + t.DataParser.EVENT in e && this._mergeActionFrame(e[t.DataParser.EVENT], i, 10, n, r), + t.DataParser.SOUND in e && this._mergeActionFrame(e[t.DataParser.SOUND], i, 11, n, r), + t.DataParser.ACTION in e && this._mergeActionFrame(e[t.DataParser.ACTION], i, 0, n, r), + t.DataParser.EVENTS in e && this._mergeActionFrame(e[t.DataParser.EVENTS], i, 10, n, r), + t.DataParser.ACTIONS in e && this._mergeActionFrame(e[t.DataParser.ACTIONS], i, 0, n, r) + } + , + n.prototype._mergeActionFrame = function(e, n, r, s, a) { + for (var o = t.DragonBones.webAssembly ? this._armature.actions.size() : this._armature.actions.length, l = this._parseActionData(e, r, s, a), h = 0, c = null, u = 0, _ = l; u < _.length; u++) { + var f = _[u]; + this._armature.addAction(f, !1) + } + 0 === this._actionFrames.length && ((c = new i).frameStart = 0, + this._actionFrames.push(c), + c = null); + for (var d = 0, p = this._actionFrames; d < p.length; d++) { + var m = p[d]; + if (m.frameStart === n) { + c = m; + break + } + if (m.frameStart > n) + break; + h++ + } + null === c && ((c = new i).frameStart = n, + this._actionFrames.splice(h + 1, 0, c)); + for (var y = 0; y < l.length; ++y) + c.actions.push(o + y) + } + , + n.prototype._parseArmature = function(e, i) { + var r = t.BaseObject.borrowObject(t.ArmatureData); + if (r.name = n._getString(e, t.DataParser.NAME, ""), + r.frameRate = n._getNumber(e, t.DataParser.FRAME_RATE, this._data.frameRate), + r.scale = i, + t.DataParser.TYPE in e && "string" == typeof e[t.DataParser.TYPE] ? r.type = t.DataParser._getArmatureType(e[t.DataParser.TYPE]) : r.type = n._getNumber(e, t.DataParser.TYPE, 0), + 0 === r.frameRate && (r.frameRate = 24), + this._armature = r, + t.DataParser.CANVAS in e) { + var s = e[t.DataParser.CANVAS] + , a = t.BaseObject.borrowObject(t.CanvasData); + t.DataParser.COLOR in s ? a.hasBackground = !0 : a.hasBackground = !1, + a.color = n._getNumber(s, t.DataParser.COLOR, 0), + a.x = n._getNumber(s, t.DataParser.X, 0) * r.scale, + a.y = n._getNumber(s, t.DataParser.Y, 0) * r.scale, + a.width = n._getNumber(s, t.DataParser.WIDTH, 0) * r.scale, + a.height = n._getNumber(s, t.DataParser.HEIGHT, 0) * r.scale, + r.canvas = a + } + if (t.DataParser.AABB in e) { + var o = e[t.DataParser.AABB]; + r.aabb.x = n._getNumber(o, t.DataParser.X, 0) * r.scale, + r.aabb.y = n._getNumber(o, t.DataParser.Y, 0) * r.scale, + r.aabb.width = n._getNumber(o, t.DataParser.WIDTH, 0) * r.scale, + r.aabb.height = n._getNumber(o, t.DataParser.HEIGHT, 0) * r.scale + } + if (t.DataParser.BONE in e) + for (var l = 0, h = e[t.DataParser.BONE]; l < h.length; l++) { + var c = h[l] + , u = n._getString(c, t.DataParser.PARENT, "") + , _ = this._parseBone(c); + if (u.length > 0) { + var f = r.getBone(u); + null !== f ? _.parent = f : (u in this._cacheBones || (this._cacheBones[u] = []), + this._cacheBones[u].push(_)) + } + if (_.name in this._cacheBones) { + for (var d = 0, p = this._cacheBones[_.name]; d < p.length; d++) + p[d].parent = _; + delete this._cacheBones[_.name] + } + r.addBone(_), + this._rawBones.push(_) + } + if (t.DataParser.IK in e) + for (var m = 0, y = e[t.DataParser.IK]; m < y.length; m++) { + var v = y[m]; + (M = this._parseIKConstraint(v)) && r.addConstraint(M) + } + if (r.sortBones(), + t.DataParser.SLOT in e) + for (var g = 0, A = 0, x = e[t.DataParser.SLOT]; A < x.length; A++) { + var b = x[A]; + r.addSlot(this._parseSlot(b, g++)) + } + if (t.DataParser.SKIN in e) + for (var C = 0, T = e[t.DataParser.SKIN]; C < T.length; C++) { + var S = T[C]; + r.addSkin(this._parseSkin(S)) + } + if (t.DataParser.PATH_CONSTRAINT in e) + for (var w = 0, E = e[t.DataParser.PATH_CONSTRAINT]; w < E.length; w++) { + var M, D = E[w]; + (M = this._parsePathConstraint(D)) && r.addConstraint(M) + } + for (var B = 0, I = this._cacheRawMeshes.length; B < I; ++B) { + var P = this._cacheRawMeshes[B]; + t.DataParser.GLUE_WEIGHTS in P && t.DataParser.GLUE_MESHES in P && this._parseMeshGlue(P, this._cacheMeshes[B]) + } + for (B = 0, + I = this._cacheRawMeshes.length; B < I; ++B) { + var R = this._cacheRawMeshes[B] + , O = n._getString(R, t.DataParser.SHARE, ""); + if (0 !== O.length) { + var L = n._getString(R, t.DataParser.SKIN, t.DataParser.DEFAULT_NAME); + 0 === L.length && (L = t.DataParser.DEFAULT_NAME); + var F = r.getMesh(L, "", O); + null !== F && this._cacheMeshes[B].vertices.shareFrom(F.vertices) + } + } + if (t.DataParser.ANIMATION in e) + for (var V = 0, N = e[t.DataParser.ANIMATION]; V < N.length; V++) { + var k = N[V] + , G = this._parseAnimation(k); + r.addAnimation(G) + } + if (t.DataParser.DEFAULT_ACTIONS in e) + for (var U = 0, z = this._parseActionData(e[t.DataParser.DEFAULT_ACTIONS], 0, null, null); U < z.length; U++) { + var H = z[U]; + r.addAction(H, !0), + 0 === H.type && null !== (G = r.getAnimation(H.name)) && (r.defaultAnimation = G) + } + if (t.DataParser.ACTIONS in e) + for (var W = 0, j = this._parseActionData(e[t.DataParser.ACTIONS], 0, null, null); W < j.length; W++) + H = j[W], + r.addAction(H, !1); + for (var X in this._rawBones.length = 0, + this._cacheRawMeshes.length = 0, + this._cacheMeshes.length = 0, + this._armature = null, + this._weightSlotPose) + delete this._weightSlotPose[X]; + for (var X in this._weightBonePoses) + delete this._weightBonePoses[X]; + for (var X in this._cacheBones) + delete this._cacheBones[X]; + for (var X in this._slotChildActions) + delete this._slotChildActions[X]; + return r + } + , + n.prototype._parseBone = function(e) { + var i = this._armature.scale; + if (0 === (t.DataParser.TYPE in e && "string" == typeof e[t.DataParser.TYPE] ? t.DataParser._getBoneType(e[t.DataParser.TYPE]) : n._getNumber(e, t.DataParser.TYPE, 0))) { + var r = t.BaseObject.borrowObject(t.BoneData); + return r.inheritTranslation = n._getBoolean(e, t.DataParser.INHERIT_TRANSLATION, !0), + r.inheritRotation = n._getBoolean(e, t.DataParser.INHERIT_ROTATION, !0), + r.inheritScale = n._getBoolean(e, t.DataParser.INHERIT_SCALE, !0), + r.inheritReflection = n._getBoolean(e, t.DataParser.INHERIT_REFLECTION, !0), + r.length = n._getNumber(e, t.DataParser.LENGTH, 0) * i, + r.name = n._getString(e, t.DataParser.NAME, ""), + t.DataParser.TRANSFORM in e && this._parseTransform(e[t.DataParser.TRANSFORM], r.transform, i), + r + } + var s = t.BaseObject.borrowObject(t.SurfaceData); + if (s.name = n._getString(e, t.DataParser.NAME, ""), + s.segmentX = n._getNumber(e, t.DataParser.SEGMENT_X, 0), + s.segmentY = n._getNumber(e, t.DataParser.SEGMENT_Y, 0), + s.vertices.length = (s.segmentX + 1) * (s.segmentY + 1) * 2, + t.DataParser.VERTICES in e) + for (var a = e[t.DataParser.VERTICES], o = 0, l = s.vertices.length; o < l; ++o) + o < a.length ? s.vertices[o] = a[o] * i : s.vertices[o] = 0; + return s + } + , + n.prototype._parseIKConstraint = function(e) { + var i = this._armature.getBone(n._getString(e, t.DataParser.BONE, "")); + if (null === i) + return null; + var r = this._armature.getBone(n._getString(e, t.DataParser.TARGET, "")); + if (null === r) + return null; + var s = t.BaseObject.borrowObject(t.IKConstraintData); + return s.scaleEnabled = n._getBoolean(e, t.DataParser.SCALE, !1), + s.bendPositive = n._getBoolean(e, t.DataParser.BEND_POSITIVE, !0), + s.weight = n._getNumber(e, t.DataParser.WEIGHT, 1), + s.name = n._getString(e, t.DataParser.NAME, ""), + s.type = 0, + s.target = r, + n._getNumber(e, t.DataParser.CHAIN, 0) > 0 && null !== i.parent ? (s.root = i.parent, + s.bone = i) : (s.root = i, + s.bone = null), + s + } + , + n.prototype._parsePathConstraint = function(e) { + var i = this._armature.getSlot(n._getString(e, t.DataParser.TARGET, "")); + if (null === i) + return null; + var r = this._armature.defaultSkin; + if (null === r) + return null; + var s = r.getDisplay(i.name, n._getString(e, t.DataParser.TARGET_DISPLAY, i.name)); + if (null === s || !(s instanceof t.PathDisplayData)) + return null; + var a = e[t.DataParser.BONES]; + if (null === a || 0 === a.length) + return null; + var o = t.BaseObject.borrowObject(t.PathConstraintData); + o.name = n._getString(e, t.DataParser.NAME, ""), + o.type = 1, + o.pathSlot = i, + o.pathDisplayData = s, + o.target = i.parent, + o.positionMode = t.DataParser._getPositionMode(n._getString(e, t.DataParser.POSITION_MODE, "")), + o.spacingMode = t.DataParser._getSpacingMode(n._getString(e, t.DataParser.SPACING_MODE, "")), + o.rotateMode = t.DataParser._getRotateMode(n._getString(e, t.DataParser.ROTATE_MODE, "")), + o.position = n._getNumber(e, t.DataParser.POSITION, 0), + o.spacing = n._getNumber(e, t.DataParser.SPACING, 0), + o.rotateOffset = n._getNumber(e, t.DataParser.ROTATE_OFFSET, 0), + o.rotateMix = n._getNumber(e, t.DataParser.ROTATE_MIX, 1), + o.translateMix = n._getNumber(e, t.DataParser.TRANSLATE_MIX, 1); + for (var l = 0, h = a; l < h.length; l++) { + var c = h[l] + , u = this._armature.getBone(c); + null !== u && (o.AddBone(u), + null === o.root && (o.root = u)) + } + return o + } + , + n.prototype._parseSlot = function(e, i) { + var r = t.BaseObject.borrowObject(t.SlotData); + return r.displayIndex = n._getNumber(e, t.DataParser.DISPLAY_INDEX, 0), + r.zOrder = i, + r.name = n._getString(e, t.DataParser.NAME, ""), + r.parent = this._armature.getBone(n._getString(e, t.DataParser.PARENT, "")), + t.DataParser.BLEND_MODE in e && "string" == typeof e[t.DataParser.BLEND_MODE] ? r.blendMode = t.DataParser._getBlendMode(e[t.DataParser.BLEND_MODE]) : r.blendMode = n._getNumber(e, t.DataParser.BLEND_MODE, 0), + t.DataParser.COLOR in e ? (r.color = t.SlotData.createColor(), + this._parseColorTransform(e[t.DataParser.COLOR], r.color)) : r.color = t.SlotData.DEFAULT_COLOR, + t.DataParser.ACTIONS in e && (this._slotChildActions[r.name] = this._parseActionData(e[t.DataParser.ACTIONS], 0, null, null)), + r + } + , + n.prototype._parseSkin = function(e) { + var i = t.BaseObject.borrowObject(t.SkinData); + if (i.name = n._getString(e, t.DataParser.NAME, t.DataParser.DEFAULT_NAME), + 0 === i.name.length && (i.name = t.DataParser.DEFAULT_NAME), + t.DataParser.SLOT in e) { + var r = e[t.DataParser.SLOT]; + this._skin = i; + for (var s = 0, a = r; s < a.length; s++) { + var o = a[s] + , l = n._getString(o, t.DataParser.NAME, "") + , h = this._armature.getSlot(l); + if (null !== h) { + if (this._slot = h, + t.DataParser.DISPLAY in o) + for (var c = 0, u = o[t.DataParser.DISPLAY]; c < u.length; c++) { + var _ = u[c]; + _ ? i.addDisplay(l, this._parseDisplay(_)) : i.addDisplay(l, null) + } + this._slot = null + } + } + this._skin = null + } + return i + } + , + n.prototype._parseDisplay = function(e) { + var i = n._getString(e, t.DataParser.NAME, "") + , r = n._getString(e, t.DataParser.PATH, "") + , s = 0 + , a = null; + switch (s = t.DataParser.TYPE in e && "string" == typeof e[t.DataParser.TYPE] ? t.DataParser._getDisplayType(e[t.DataParser.TYPE]) : n._getNumber(e, t.DataParser.TYPE, s)) { + case 0: + var o = a = t.BaseObject.borrowObject(t.ImageDisplayData); + o.name = i, + o.path = r.length > 0 ? r : i, + this._parsePivot(e, o); + break; + case 1: + var l = a = t.BaseObject.borrowObject(t.ArmatureDisplayData); + if (l.name = i, + l.path = r.length > 0 ? r : i, + l.inheritAnimation = !0, + t.DataParser.ACTIONS in e) + for (var h = 0, c = this._parseActionData(e[t.DataParser.ACTIONS], 0, null, null); h < c.length; h++) { + var u = c[h]; + l.addAction(u) + } + else if (this._slot.name in this._slotChildActions) { + var _ = this._skin.getDisplays(this._slot.name); + if (null === _ ? 0 === this._slot.displayIndex : this._slot.displayIndex === _.length) { + for (var f = 0, d = this._slotChildActions[this._slot.name]; f < d.length; f++) + u = d[f], + l.addAction(u); + delete this._slotChildActions[this._slot.name] + } + } + break; + case 2: + var p = a = t.BaseObject.borrowObject(t.MeshDisplayData); + p.vertices.inheritDeform = n._getBoolean(e, t.DataParser.INHERIT_DEFORM, !0), + p.name = i, + p.path = r.length > 0 ? r : i, + p.vertices.data = this._data, + t.DataParser.SHARE in e ? (this._cacheRawMeshes.push(e), + this._cacheMeshes.push(p)) : this._parseMesh(e, p), + t.DataParser.GLUE_WEIGHTS in e && t.DataParser.GLUE_MESHES in e && (this._cacheRawMeshes.push(e), + this._cacheMeshes.push(p)); + break; + case 3: + var m = this._parseBoundingBox(e); + if (null !== m) { + var y = a = t.BaseObject.borrowObject(t.BoundingBoxDisplayData); + y.name = i, + y.path = r.length > 0 ? r : i, + y.boundingBox = m + } + break; + case 4: + var v = e[t.DataParser.LENGTHS] + , g = a = t.BaseObject.borrowObject(t.PathDisplayData); + g.closed = n._getBoolean(e, t.DataParser.CLOSED, !1), + g.constantSpeed = n._getBoolean(e, t.DataParser.CONSTANT_SPEED, !1), + g.name = i, + g.path = r.length > 0 ? r : i, + g.vertices.data = this._data, + g.curveLengths.length = v.length; + for (var A = 0, x = v.length; A < x; ++A) + g.curveLengths[A] = v[A]; + this._parsePath(e, g) + } + return null !== a && t.DataParser.TRANSFORM in e && this._parseTransform(e[t.DataParser.TRANSFORM], a.transform, this._armature.scale), + a + } + , + n.prototype._parsePath = function(e, i) { + var r = e[t.DataParser.VERTICES] + , s = n._getNumber(e, t.DataParser.VERTEX_COUNT, 0) + , a = this._floatArray.length + , o = this._intArray.length; + if (i.vertices.offset = o, + this._intArray.length += 2, + this._intArray[o + 0] = s, + this._intArray[o + 2] = a, + t.DataParser.WEIGHTS in e) { + var l = e[t.DataParser.WEIGHTS] + , h = e[t.DataParser.BONES] + , c = h.length + , u = Math.floor(l.length - s) / 2 + , _ = this._intArray.length + , f = this._floatArray.length + , d = this._armature.sortedBones + , p = t.BaseObject.borrowObject(t.WeightData); + for (p.count = u, + p.offset = _, + this._intArray.length += 2 + c + s + u, + this._intArray[_ + 0] = c, + this._intArray[_ + 1] = f, + M = 0; M < c; M++) { + var m = h[M] + , y = this._rawBones[m]; + p.addBone(y), + this._intArray[_ + 2 + M] = d.indexOf(y) + } + this._floatArray.length += 3 * u, + M = 0; + for (var v = 0, g = 0, A = _ + 2 + c, x = f; M < u; M++) { + var b = l[v++]; + this._intArray[A++] = b; + for (var C = 0; C < b; C++) { + var T = l[v++] + , S = l[v++] + , w = r[g++] + , E = r[g++]; + this._intArray[A++] = h.indexOf(T), + this._floatArray[x++] = S, + this._floatArray[x++] = w, + this._floatArray[x++] = E + } + } + i.vertices.weight = p + } else { + this._floatArray.length += r.length; + for (var M = 0, D = r.length; M < D; ++M) + this._floatArray[a + M] = r[M] + } + } + , + n.prototype._parsePivot = function(e, i) { + if (t.DataParser.PIVOT in e) { + var r = e[t.DataParser.PIVOT]; + i.pivot.x = n._getNumber(r, t.DataParser.X, 0), + i.pivot.y = n._getNumber(r, t.DataParser.Y, 0) + } else + i.pivot.x = .5, + i.pivot.y = .5 + } + , + n.prototype._parseMesh = function(e, i) { + var n = e[t.DataParser.VERTICES] + , r = e[t.DataParser.UVS] + , s = e[t.DataParser.TRIANGLES] + , a = Math.floor(n.length / 2) + , o = Math.floor(s.length / 3) + , l = this._floatArray.length + , h = l + 2 * a + , c = this._intArray.length + , u = this._skin.name + "_" + this._slot.name + "_" + i.name; + i.vertices.offset = c, + this._intArray.length += 4 + 3 * o, + this._intArray[c + 0] = a, + this._intArray[c + 1] = o, + this._intArray[c + 2] = l; + for (var _ = 0, f = 3 * o; _ < f; ++_) + this._intArray[c + 4 + _] = s[_]; + for (this._floatArray.length += 2 * a + 2 * a, + _ = 0, + f = 2 * a; _ < f; ++_) + this._floatArray[l + _] = n[_], + this._floatArray[h + _] = r[_]; + if (t.DataParser.WEIGHTS in e) { + var d = e[t.DataParser.WEIGHTS] + , p = e[t.DataParser.SLOT_POSE] + , m = e[t.DataParser.BONE_POSE] + , y = this._armature.sortedBones + , v = new Array + , g = Math.floor(m.length / 7) + , A = this._floatArray.length + , x = Math.floor(d.length - a) / 2 + , b = this._intArray.length + , C = t.BaseObject.borrowObject(t.WeightData); + for (C.count = x, + C.offset = b, + v.length = g, + this._intArray.length += 2 + g + a + x, + this._intArray[b + 1] = A, + _ = 0; _ < g; ++_) { + var T = m[7 * _] + , S = this._rawBones[T]; + C.addBone(S), + v[_] = T, + this._intArray[b + 2 + _] = y.indexOf(S) + } + this._floatArray.length += 3 * x, + this._helpMatrixA.copyFromArray(p, 0), + _ = 0; + for (var w = 0, E = b + 2 + g, M = A; _ < a; ++_) { + var D = 2 * _ + , B = this._intArray[E++] = d[w++] + , I = this._floatArray[l + D] + , P = this._floatArray[l + D + 1]; + this._helpMatrixA.transformPoint(I, P, this._helpPoint), + I = this._helpPoint.x, + P = this._helpPoint.y; + for (var R = 0; R < B; ++R) { + T = d[w++]; + var O = v.indexOf(T); + this._helpMatrixB.copyFromArray(m, 7 * O + 1), + this._helpMatrixB.invert(), + this._helpMatrixB.transformPoint(I, P, this._helpPoint), + this._intArray[E++] = O, + this._floatArray[M++] = d[w++], + this._floatArray[M++] = this._helpPoint.x, + this._floatArray[M++] = this._helpPoint.y + } + } + i.vertices.weight = C, + this._weightSlotPose[u] = p, + this._weightBonePoses[u] = m + } + } + , + n.prototype._parseMeshGlue = function() {} + , + n.prototype._parseBoundingBox = function(e) { + var i = null + , r = 0; + switch (r = t.DataParser.SUB_TYPE in e && "string" == typeof e[t.DataParser.SUB_TYPE] ? t.DataParser._getBoundingBoxType(e[t.DataParser.SUB_TYPE]) : n._getNumber(e, t.DataParser.SUB_TYPE, r)) { + case 0: + i = t.BaseObject.borrowObject(t.RectangleBoundingBoxData); + break; + case 1: + i = t.BaseObject.borrowObject(t.EllipseBoundingBoxData); + break; + case 2: + i = this._parsePolygonBoundingBox(e) + } + return null !== i && (i.color = n._getNumber(e, t.DataParser.COLOR, 0), + 0 !== i.type && 1 !== i.type || (i.width = n._getNumber(e, t.DataParser.WIDTH, 0), + i.height = n._getNumber(e, t.DataParser.HEIGHT, 0))), + i + } + , + n.prototype._parsePolygonBoundingBox = function(e) { + var i = t.BaseObject.borrowObject(t.PolygonBoundingBoxData); + if (t.DataParser.VERTICES in e) { + var n = this._armature.scale + , r = e[t.DataParser.VERTICES] + , s = i.vertices; + t.DragonBones.webAssembly ? s.resize(r.length, 0) : s.length = r.length; + for (var a = 0, o = r.length; a < o; a += 2) { + var l = r[a] * n + , h = r[a + 1] * n; + t.DragonBones.webAssembly ? (s.set(a, l), + s.set(a + 1, h)) : (s[a] = l, + s[a + 1] = h), + 0 === a ? (i.x = l, + i.y = h, + i.width = l, + i.height = h) : (l < i.x ? i.x = l : l > i.width && (i.width = l), + h < i.y ? i.y = h : h > i.height && (i.height = h)) + } + i.width -= i.x, + i.height -= i.y + } else + console.warn("Data error.\n Please reexport DragonBones Data to fixed the bug."); + return i + } + , + n.prototype._parseAnimation = function(e) { + var i = t.BaseObject.borrowObject(t.AnimationData); + if (i.frameCount = Math.max(n._getNumber(e, t.DataParser.DURATION, 1), 1), + i.playTimes = n._getNumber(e, t.DataParser.PLAY_TIMES, 1), + i.duration = i.frameCount / this._armature.frameRate, + i.fadeInTime = n._getNumber(e, t.DataParser.FADE_IN_TIME, 0), + i.scale = n._getNumber(e, t.DataParser.SCALE, 1), + i.name = n._getString(e, t.DataParser.NAME, t.DataParser.DEFAULT_NAME), + 0 === i.name.length && (i.name = t.DataParser.DEFAULT_NAME), + i.frameIntOffset = this._frameIntArray.length, + i.frameFloatOffset = this._frameFloatArray.length, + i.frameOffset = this._frameArray.length, + this._animation = i, + t.DataParser.FRAME in e) { + var r = e[t.DataParser.FRAME] + , s = r.length; + if (s > 0) + for (var a = 0, o = 0; a < s; ++a) { + var l = r[a]; + this._parseActionDataInFrame(l, o, null, null), + o += n._getNumber(l, t.DataParser.DURATION, 1) + } + } + if (t.DataParser.Z_ORDER in e && (this._animation.zOrderTimeline = this._parseTimeline(e[t.DataParser.Z_ORDER], null, t.DataParser.FRAME, 1, !1, !1, 0, this._parseZOrderFrame)), + t.DataParser.BONE in e) + for (var h = 0, c = e[t.DataParser.BONE]; h < c.length; h++) { + var u = c[h]; + this._parseBoneTimeline(u) + } + if (t.DataParser.SURFACE in e) + for (var _ = 0, f = e[t.DataParser.SURFACE]; _ < f.length; _++) { + u = f[_]; + var d = n._getString(u, t.DataParser.NAME, ""); + this._surface = this._armature.getBone(d), + null !== this._surface && (null !== (M = this._parseTimeline(u, null, t.DataParser.FRAME, 50, !1, !0, 0, this._parseSurfaceFrame)) && this._animation.addSurfaceTimeline(this._surface, M), + this._surface = null) + } + if (t.DataParser.SLOT in e) + for (var p = 0, m = e[t.DataParser.SLOT]; p < m.length; p++) + u = m[p], + this._parseSlotTimeline(u); + if (t.DataParser.FFD in e) + for (var y = 0, v = e[t.DataParser.FFD]; y < v.length; y++) { + u = v[y]; + var g = n._getString(u, t.DataParser.SKIN, t.DataParser.DEFAULT_NAME) + , A = n._getString(u, t.DataParser.SLOT, "") + , x = n._getString(u, t.DataParser.NAME, ""); + 0 === g.length && (g = t.DataParser.DEFAULT_NAME), + this._slot = this._armature.getSlot(A), + this._mesh = this._armature.getMesh(g, A, x), + null !== this._slot && null !== this._mesh && (null !== (M = this._parseTimeline(u, null, t.DataParser.FRAME, 22, !1, !0, 0, this._parseSlotFFDFrame)) && this._animation.addSlotTimeline(this._slot, M), + this._slot = null, + this._mesh = null) + } + if (t.DataParser.IK in e) + for (var b = 0, C = e[t.DataParser.IK]; b < C.length; b++) { + u = C[b]; + var T = n._getString(u, t.DataParser.NAME, "") + , S = this._armature.getConstraint(T); + null !== S && null !== (M = this._parseTimeline(u, null, t.DataParser.FRAME, 30, !0, !1, 2, this._parseIKConstraintFrame)) && this._animation.addConstraintTimeline(S, M) + } + if (t.DataParser.ANIMATION in e) + for (var w = 0, E = e[t.DataParser.ANIMATION]; w < E.length; w++) { + u = E[w]; + var M, D = n._getString(u, t.DataParser.NAME, ""); + null !== (M = this._parseTimeline(u, null, t.DataParser.FRAME, 40, !0, !1, 2, this._parseAnimationFrame)) && this._animation.addAnimationTimeline(D, M) + } + return this._actionFrames.length > 0 && (this._animation.actionTimeline = this._parseTimeline(null, this._actionFrames, "", 0, !1, !1, 0, this._parseActionFrame), + this._actionFrames.length = 0), + this._animation = null, + i + } + , + n.prototype._parseTimeline = function(e, r, s, a, o, l, h, c) { + if (null !== e && s.length > 0 && s in e && (r = e[s]), + null === r) + return null; + var u = r.length; + if (0 === u) + return null; + var _ = this._frameIntArray.length + , f = this._frameFloatArray.length + , d = t.BaseObject.borrowObject(t.TimelineData) + , p = this._timelineArray.length; + if (this._timelineArray.length += 5 + u, + null !== e ? (this._timelineArray[p + 0] = Math.round(100 * n._getNumber(e, t.DataParser.SCALE, 1)), + this._timelineArray[p + 1] = Math.round(100 * n._getNumber(e, t.DataParser.OFFSET, 0))) : (this._timelineArray[p + 0] = 100, + this._timelineArray[p + 1] = 0), + this._timelineArray[p + 2] = u, + this._timelineArray[p + 3] = h, + this._timelineArray[p + 4] = o ? _ - this._animation.frameIntOffset : l ? f - this._animation.frameFloatOffset : 0, + this._timeline = d, + d.type = a, + d.offset = p, + 1 === u) + d.frameIndicesOffset = -1, + this._timelineArray[p + 5 + 0] = c.call(this, r[0], 0, 0) - this._animation.frameOffset; + else { + var m = this._animation.frameCount + 1 + , y = this._data.frameIndices + , v = 0; + t.DragonBones.webAssembly ? (v = y.size(), + y.resize(v + m, 0)) : (v = y.length, + y.length += m), + d.frameIndicesOffset = v; + for (var g = 0, A = 0, x = 0, b = 0; g < m; ++g) { + if (x + b <= g && A < u) { + var C = r[A]; + x = g, + b = A === u - 1 ? this._animation.frameCount - x : C instanceof i ? this._actionFrames[A + 1].frameStart - x : n._getNumber(C, t.DataParser.DURATION, 1), + this._timelineArray[p + 5 + A] = c.call(this, C, x, b) - this._animation.frameOffset, + A++ + } + t.DragonBones.webAssembly ? y.set(v + g, A - 1) : y[v + g] = A - 1 + } + } + return this._timeline = null, + d + } + , + n.prototype._parseBoneTimeline = function(e) { + var i, r = this._armature.getBone(n._getString(e, t.DataParser.NAME, "")); + null !== r && (this._bone = r, + this._slot = this._armature.getSlot(this._bone.name), + t.DataParser.TRANSLATE_FRAME in e && null !== (i = this._parseTimeline(e, null, t.DataParser.TRANSLATE_FRAME, 11, !1, !0, 2, this._parseBoneTranslateFrame)) && this._animation.addBoneTimeline(r, i), + t.DataParser.ROTATE_FRAME in e && null !== (i = this._parseTimeline(e, null, t.DataParser.ROTATE_FRAME, 12, !1, !0, 2, this._parseBoneRotateFrame)) && this._animation.addBoneTimeline(r, i), + t.DataParser.SCALE_FRAME in e && null !== (i = this._parseTimeline(e, null, t.DataParser.SCALE_FRAME, 13, !1, !0, 2, this._parseBoneScaleFrame)) && this._animation.addBoneTimeline(r, i), + t.DataParser.FRAME in e && null !== (i = this._parseTimeline(e, null, t.DataParser.FRAME, 10, !1, !0, 6, this._parseBoneAllFrame)) && this._animation.addBoneTimeline(r, i), + this._bone = null, + this._slot = null) + } + , + n.prototype._parseSlotTimeline = function(e) { + var i = this._armature.getSlot(n._getString(e, t.DataParser.NAME, "")); + if (null !== i) { + this._slot = i; + var r; + null !== (r = t.DataParser.DISPLAY_FRAME in e ? this._parseTimeline(e, null, t.DataParser.DISPLAY_FRAME, 20, !1, !1, 0, this._parseSlotDisplayFrame) : this._parseTimeline(e, null, t.DataParser.FRAME, 20, !1, !1, 0, this._parseSlotDisplayFrame)) && this._animation.addSlotTimeline(i, r); + var s; + null !== (s = t.DataParser.COLOR_FRAME in e ? this._parseTimeline(e, null, t.DataParser.COLOR_FRAME, 21, !0, !1, 1, this._parseSlotColorFrame) : this._parseTimeline(e, null, t.DataParser.FRAME, 21, !0, !1, 1, this._parseSlotColorFrame)) && this._animation.addSlotTimeline(i, s), + this._slot = null + } + } + , + n.prototype._parseFrame = function(t, e) { + var i = this._frameArray.length; + return this._frameArray.length += 1, + this._frameArray[i + 0] = e, + i + } + , + n.prototype._parseTweenFrame = function(e, i, r) { + var s = this._parseFrame(e, i, r); + if (r > 0) + if (t.DataParser.CURVE in e) { + var a = r + 1; + this._helpArray.length = a, + this._samplingEasingCurve(e[t.DataParser.CURVE], this._helpArray), + this._frameArray.length += 2 + this._helpArray.length, + this._frameArray[s + 1] = 2, + this._frameArray[s + 2] = a; + for (var o = 0; o < a; ++o) + this._frameArray[s + 3 + o] = Math.round(1e4 * this._helpArray[o]) + } else { + var l = -2; + t.DataParser.TWEEN_EASING in e && (l = n._getNumber(e, t.DataParser.TWEEN_EASING, -2)), + -2 === l ? (this._frameArray.length += 1, + this._frameArray[s + 1] = 0) : 0 === l ? (this._frameArray.length += 1, + this._frameArray[s + 1] = 1) : l < 0 ? (this._frameArray.length += 2, + this._frameArray[s + 1] = 3, + this._frameArray[s + 2] = Math.round(100 * -l)) : l <= 1 ? (this._frameArray.length += 2, + this._frameArray[s + 1] = 4, + this._frameArray[s + 2] = Math.round(100 * l)) : (this._frameArray.length += 2, + this._frameArray[s + 1] = 5, + this._frameArray[s + 2] = Math.round(100 * l - 100)) + } + else + this._frameArray.length += 1, + this._frameArray[s + 1] = 0; + return s + } + , + n.prototype._parseActionFrame = function(t, e) { + var i = this._frameArray.length + , n = t.actions.length; + this._frameArray.length += 2 + n, + this._frameArray[i + 0] = e, + this._frameArray[i + 0 + 1] = n; + for (var r = 0; r < n; ++r) + this._frameArray[i + 0 + 2 + r] = t.actions[r]; + return i + } + , + n.prototype._parseZOrderFrame = function(e, i, n) { + var r = this._parseFrame(e, i, n); + if (t.DataParser.Z_ORDER in e) { + var s = e[t.DataParser.Z_ORDER]; + if (s.length > 0) { + for (var a = this._armature.sortedSlots.length, o = new Array(a - s.length / 2), l = new Array(a), h = 0; h < o.length; ++h) + o[h] = 0; + for (var c = 0; c < a; ++c) + l[c] = -1; + for (var u = 0, _ = 0, f = 0, d = s.length; f < d; f += 2) { + for (var p = s[f], m = s[f + 1]; u !== p; ) + o[_++] = u++; + l[u + m] = u++ + } + for (; u < a; ) + o[_++] = u++; + this._frameArray.length += 1 + a, + this._frameArray[r + 1] = a; + for (var y = a; y--; ) + -1 === l[y] ? this._frameArray[r + 2 + y] = o[--_] || 0 : this._frameArray[r + 2 + y] = l[y] || 0; + return r + } + } + return this._frameArray.length += 1, + this._frameArray[r + 1] = 0, + r + } + , + n.prototype._parseBoneAllFrame = function(e, i, r) { + this._helpTransform.identity(), + t.DataParser.TRANSFORM in e && this._parseTransform(e[t.DataParser.TRANSFORM], this._helpTransform, 1); + var s = this._helpTransform.rotation; + 0 !== i && (0 === this._prevClockwise ? s = this._prevRotation + t.Transform.normalizeRadian(s - this._prevRotation) : ((this._prevClockwise > 0 ? s >= this._prevRotation : s <= this._prevRotation) && (this._prevClockwise = this._prevClockwise > 0 ? this._prevClockwise - 1 : this._prevClockwise + 1), + s = this._prevRotation + s - this._prevRotation + t.Transform.PI_D * this._prevClockwise)), + this._prevClockwise = n._getNumber(e, t.DataParser.TWEEN_ROTATE, 0), + this._prevRotation = s; + var a = this._parseTweenFrame(e, i, r) + , o = this._frameFloatArray.length; + return this._frameFloatArray.length += 6, + this._frameFloatArray[o++] = this._helpTransform.x, + this._frameFloatArray[o++] = this._helpTransform.y, + this._frameFloatArray[o++] = s, + this._frameFloatArray[o++] = this._helpTransform.skew, + this._frameFloatArray[o++] = this._helpTransform.scaleX, + this._frameFloatArray[o++] = this._helpTransform.scaleY, + this._parseActionDataInFrame(e, i, this._bone, this._slot), + a + } + , + n.prototype._parseBoneTranslateFrame = function(e, i, r) { + var s = this._parseTweenFrame(e, i, r) + , a = this._frameFloatArray.length; + return this._frameFloatArray.length += 2, + this._frameFloatArray[a++] = n._getNumber(e, t.DataParser.X, 0), + this._frameFloatArray[a++] = n._getNumber(e, t.DataParser.Y, 0), + s + } + , + n.prototype._parseBoneRotateFrame = function(e, i, r) { + var s = n._getNumber(e, t.DataParser.ROTATE, 0) * t.Transform.DEG_RAD; + 0 !== i && (0 === this._prevClockwise ? s = this._prevRotation + t.Transform.normalizeRadian(s - this._prevRotation) : ((this._prevClockwise > 0 ? s >= this._prevRotation : s <= this._prevRotation) && (this._prevClockwise = this._prevClockwise > 0 ? this._prevClockwise - 1 : this._prevClockwise + 1), + s = this._prevRotation + s - this._prevRotation + t.Transform.PI_D * this._prevClockwise)), + this._prevClockwise = n._getNumber(e, t.DataParser.CLOCK_WISE, 0), + this._prevRotation = s; + var a = this._parseTweenFrame(e, i, r) + , o = this._frameFloatArray.length; + return this._frameFloatArray.length += 2, + this._frameFloatArray[o++] = s, + this._frameFloatArray[o++] = n._getNumber(e, t.DataParser.SKEW, 0) * t.Transform.DEG_RAD, + a + } + , + n.prototype._parseBoneScaleFrame = function(e, i, r) { + var s = this._parseTweenFrame(e, i, r) + , a = this._frameFloatArray.length; + return this._frameFloatArray.length += 2, + this._frameFloatArray[a++] = n._getNumber(e, t.DataParser.X, 1), + this._frameFloatArray[a++] = n._getNumber(e, t.DataParser.Y, 1), + s + } + , + n.prototype._parseSurfaceFrame = function(e, i, r) { + var s = this._frameFloatArray.length + , a = this._parseTweenFrame(e, i, r) + , o = e[t.DataParser.VERTICES] + , l = n._getNumber(e, t.DataParser.OFFSET, 0) + , h = this._surface.vertices.length / 2 + , c = 0 + , u = 0; + this._frameFloatArray.length += 2 * h; + for (var _ = 0; _ < 2 * h; _ += 2) + c = _ < l || _ - l >= o.length ? 0 : o[_ - l], + u = _ + 1 < l || _ + 1 - l >= o.length ? 0 : o[_ + 1 - l], + this._frameFloatArray[s + _] = c, + this._frameFloatArray[s + _ + 1] = u; + if (0 === i) { + var f = this._frameIntArray.length; + this._frameIntArray.length += 5, + this._frameIntArray[f + 0] = 0, + this._frameIntArray[f + 1] = this._frameFloatArray.length - s, + this._frameIntArray[f + 2] = this._frameFloatArray.length - s, + this._frameIntArray[f + 3] = 0, + this._frameIntArray[f + 4] = s - this._animation.frameFloatOffset, + this._timelineArray[this._timeline.offset + 3] = f - this._animation.frameIntOffset + } + return a + } + , + n.prototype._parseSlotDisplayFrame = function(e, i, r) { + var s = this._parseFrame(e, i, r); + return this._frameArray.length += 1, + t.DataParser.VALUE in e ? this._frameArray[s + 1] = n._getNumber(e, t.DataParser.VALUE, 0) : this._frameArray[s + 1] = n._getNumber(e, t.DataParser.DISPLAY_INDEX, 0), + this._parseActionDataInFrame(e, i, this._slot.parent, this._slot), + s + } + , + n.prototype._parseSlotColorFrame = function(e, i, n) { + var r = this._parseTweenFrame(e, i, n) + , s = -1; + if (t.DataParser.VALUE in e || t.DataParser.COLOR in e) { + var a = t.DataParser.VALUE in e ? e[t.DataParser.VALUE] : e[t.DataParser.COLOR]; + for (var o in a) { + this._parseColorTransform(a, this._helpColorTransform), + s = this._intArray.length, + this._intArray.length += 8, + this._intArray[s++] = Math.round(100 * this._helpColorTransform.alphaMultiplier), + this._intArray[s++] = Math.round(100 * this._helpColorTransform.redMultiplier), + this._intArray[s++] = Math.round(100 * this._helpColorTransform.greenMultiplier), + this._intArray[s++] = Math.round(100 * this._helpColorTransform.blueMultiplier), + this._intArray[s++] = Math.round(this._helpColorTransform.alphaOffset), + this._intArray[s++] = Math.round(this._helpColorTransform.redOffset), + this._intArray[s++] = Math.round(this._helpColorTransform.greenOffset), + this._intArray[s++] = Math.round(this._helpColorTransform.blueOffset), + s -= 8; + break + } + } + s < 0 && (this._defaultColorOffset < 0 && (this._defaultColorOffset = s = this._intArray.length, + this._intArray.length += 8, + this._intArray[s++] = 100, + this._intArray[s++] = 100, + this._intArray[s++] = 100, + this._intArray[s++] = 100, + this._intArray[s++] = 0, + this._intArray[s++] = 0, + this._intArray[s++] = 0, + this._intArray[s++] = 0), + s = this._defaultColorOffset); + var l = this._frameIntArray.length; + return this._frameIntArray.length += 1, + this._frameIntArray[l] = s, + r + } + , + n.prototype._parseSlotFFDFrame = function(e, i, r) { + var s = this._frameFloatArray.length + , a = this._parseTweenFrame(e, i, r) + , o = t.DataParser.VERTICES in e ? e[t.DataParser.VERTICES] : null + , l = n._getNumber(e, t.DataParser.OFFSET, 0) + , h = this._intArray[this._mesh.vertices.offset + 0] + , c = this._mesh.parent.name + "_" + this._slot.name + "_" + this._mesh.name + , u = this._mesh.vertices.weight + , _ = 0 + , f = 0 + , d = 0 + , p = 0; + if (null !== u) { + var m = this._weightSlotPose[c]; + this._helpMatrixA.copyFromArray(m, 0), + this._frameFloatArray.length += 2 * u.count, + d = u.offset + 2 + u.bones.length + } else + this._frameFloatArray.length += 2 * h; + for (var y = 0; y < 2 * h; y += 2) + if (null === o ? (_ = 0, + f = 0) : (_ = y < l || y - l >= o.length ? 0 : o[y - l], + f = y + 1 < l || y + 1 - l >= o.length ? 0 : o[y + 1 - l]), + null !== u) { + var v = this._weightBonePoses[c] + , g = this._intArray[d++]; + this._helpMatrixA.transformPoint(_, f, this._helpPoint, !0), + _ = this._helpPoint.x, + f = this._helpPoint.y; + for (var A = 0; A < g; ++A) { + var x = this._intArray[d++]; + this._helpMatrixB.copyFromArray(v, 7 * x + 1), + this._helpMatrixB.invert(), + this._helpMatrixB.transformPoint(_, f, this._helpPoint, !0), + this._frameFloatArray[s + p++] = this._helpPoint.x, + this._frameFloatArray[s + p++] = this._helpPoint.y + } + } else + this._frameFloatArray[s + y] = _, + this._frameFloatArray[s + y + 1] = f; + if (0 === i) { + var b = this._frameIntArray.length; + this._frameIntArray.length += 5, + this._frameIntArray[b + 0] = this._mesh.vertices.offset, + this._frameIntArray[b + 1] = this._frameFloatArray.length - s, + this._frameIntArray[b + 2] = this._frameFloatArray.length - s, + this._frameIntArray[b + 3] = 0, + this._frameIntArray[b + 4] = s - this._animation.frameFloatOffset, + this._timelineArray[this._timeline.offset + 3] = b - this._animation.frameIntOffset + } + return a + } + , + n.prototype._parseIKConstraintFrame = function(e, i, r) { + var s = this._parseTweenFrame(e, i, r) + , a = this._frameIntArray.length; + return this._frameIntArray.length += 2, + this._frameIntArray[a++] = n._getBoolean(e, t.DataParser.BEND_POSITIVE, !0) ? 1 : 0, + this._frameIntArray[a++] = Math.round(100 * n._getNumber(e, t.DataParser.WEIGHT, 1)), + s + } + , + n.prototype._parseAnimationFrame = function(e, i, r) { + var s = this._parseTweenFrame(e, i, r) + , a = this._frameIntArray.length; + return this._frameIntArray.length += 2, + this._frameIntArray[a++] = n._getNumber(e, t.DataParser.VALUE, 0), + this._frameIntArray[a++] = Math.round(100 * n._getNumber(e, t.DataParser.WEIGHT, 1)), + s + } + , + n.prototype._parseActionData = function(e, i, r, s) { + var a = new Array; + if ("string" == typeof e) + (c = t.BaseObject.borrowObject(t.ActionData)).type = i, + c.name = e, + c.bone = r, + c.slot = s, + a.push(c); + else if (e instanceof Array) + for (var o = 0, l = e; o < l.length; o++) { + var h = l[o] + , c = t.BaseObject.borrowObject(t.ActionData); + if (t.DataParser.GOTO_AND_PLAY in h ? (c.type = 0, + c.name = n._getString(h, t.DataParser.GOTO_AND_PLAY, "")) : (t.DataParser.TYPE in h && "string" == typeof h[t.DataParser.TYPE] ? c.type = t.DataParser._getActionType(h[t.DataParser.TYPE]) : c.type = n._getNumber(h, t.DataParser.TYPE, i), + c.name = n._getString(h, t.DataParser.NAME, "")), + t.DataParser.BONE in h) { + var u = n._getString(h, t.DataParser.BONE, ""); + c.bone = this._armature.getBone(u) + } else + c.bone = r; + if (t.DataParser.SLOT in h) { + var _ = n._getString(h, t.DataParser.SLOT, ""); + c.slot = this._armature.getSlot(_) + } else + c.slot = s; + var f = null; + if (t.DataParser.INTS in h) { + null === f && (f = t.BaseObject.borrowObject(t.UserData)); + for (var d = 0, p = h[t.DataParser.INTS]; d < p.length; d++) { + var m = p[d]; + f.addInt(m) + } + } + if (t.DataParser.FLOATS in h) { + null === f && (f = t.BaseObject.borrowObject(t.UserData)); + for (var y = 0, v = h[t.DataParser.FLOATS]; y < v.length; y++) + m = v[y], + f.addFloat(m) + } + if (t.DataParser.STRINGS in h) { + null === f && (f = t.BaseObject.borrowObject(t.UserData)); + for (var g = 0, A = h[t.DataParser.STRINGS]; g < A.length; g++) + m = A[g], + f.addString(m) + } + c.data = f, + a.push(c) + } + return a + } + , + n.prototype._parseTransform = function(e, i, r) { + i.x = n._getNumber(e, t.DataParser.X, 0) * r, + i.y = n._getNumber(e, t.DataParser.Y, 0) * r, + t.DataParser.ROTATE in e || t.DataParser.SKEW in e ? (i.rotation = t.Transform.normalizeRadian(n._getNumber(e, t.DataParser.ROTATE, 0) * t.Transform.DEG_RAD), + i.skew = t.Transform.normalizeRadian(n._getNumber(e, t.DataParser.SKEW, 0) * t.Transform.DEG_RAD)) : (t.DataParser.SKEW_X in e || t.DataParser.SKEW_Y in e) && (i.rotation = t.Transform.normalizeRadian(n._getNumber(e, t.DataParser.SKEW_Y, 0) * t.Transform.DEG_RAD), + i.skew = t.Transform.normalizeRadian(n._getNumber(e, t.DataParser.SKEW_X, 0) * t.Transform.DEG_RAD) - i.rotation), + i.scaleX = n._getNumber(e, t.DataParser.SCALE_X, 1), + i.scaleY = n._getNumber(e, t.DataParser.SCALE_Y, 1) + } + , + n.prototype._parseColorTransform = function(e, i) { + i.alphaMultiplier = .01 * n._getNumber(e, t.DataParser.ALPHA_MULTIPLIER, 100), + i.redMultiplier = .01 * n._getNumber(e, t.DataParser.RED_MULTIPLIER, 100), + i.greenMultiplier = .01 * n._getNumber(e, t.DataParser.GREEN_MULTIPLIER, 100), + i.blueMultiplier = .01 * n._getNumber(e, t.DataParser.BLUE_MULTIPLIER, 100), + i.alphaOffset = n._getNumber(e, t.DataParser.ALPHA_OFFSET, 0), + i.redOffset = n._getNumber(e, t.DataParser.RED_OFFSET, 0), + i.greenOffset = n._getNumber(e, t.DataParser.GREEN_OFFSET, 0), + i.blueOffset = n._getNumber(e, t.DataParser.BLUE_OFFSET, 0) + } + , + n.prototype._parseArray = function() { + this._intArray.length = 0, + this._floatArray.length = 0, + this._frameIntArray.length = 0, + this._frameFloatArray.length = 0, + this._frameArray.length = 0, + this._timelineArray.length = 0 + } + , + n.prototype._modifyArray = function() { + this._intArray.length % Int16Array.BYTES_PER_ELEMENT != 0 && this._intArray.push(0), + this._frameIntArray.length % Int16Array.BYTES_PER_ELEMENT != 0 && this._frameIntArray.push(0), + this._frameArray.length % Int16Array.BYTES_PER_ELEMENT != 0 && this._frameArray.push(0), + this._timelineArray.length % Uint16Array.BYTES_PER_ELEMENT != 0 && this._timelineArray.push(0); + var e = this._intArray.length * Int16Array.BYTES_PER_ELEMENT + , i = this._floatArray.length * Float32Array.BYTES_PER_ELEMENT + , n = this._frameIntArray.length * Int16Array.BYTES_PER_ELEMENT + , r = this._frameFloatArray.length * Float32Array.BYTES_PER_ELEMENT + , s = this._frameArray.length * Int16Array.BYTES_PER_ELEMENT + , a = this._timelineArray.length * Uint16Array.BYTES_PER_ELEMENT + , o = e + i + n + r + s + a; + if (t.DragonBones.webAssembly) { + for (var l = t.webAssemblyModule.HEAP16.buffer, h = t.webAssemblyModule._malloc(o), c = new Int16Array(l,h,this._intArray.length), u = new Float32Array(l,h + e,this._floatArray.length), _ = new Int16Array(l,h + e + i,this._frameIntArray.length), f = new Float32Array(l,h + e + i + n,this._frameFloatArray.length), d = new Int16Array(l,h + e + i + n + r,this._frameArray.length), p = new Uint16Array(l,h + e + i + n + r + s,this._timelineArray.length), m = 0, y = this._intArray.length; m < y; ++m) + c[m] = this._intArray[m]; + for (m = 0, + y = this._floatArray.length; m < y; ++m) + u[m] = this._floatArray[m]; + for (m = 0, + y = this._frameIntArray.length; m < y; ++m) + _[m] = this._frameIntArray[m]; + for (m = 0, + y = this._frameFloatArray.length; m < y; ++m) + f[m] = this._frameFloatArray[m]; + for (m = 0, + y = this._frameArray.length; m < y; ++m) + d[m] = this._frameArray[m]; + for (m = 0, + y = this._timelineArray.length; m < y; ++m) + p[m] = this._timelineArray[m]; + t.webAssemblyModule.setDataBinary(this._data, h, e, i, n, r, s, a) + } else { + var v = new ArrayBuffer(o); + for (c = new Int16Array(v,0,this._intArray.length), + u = new Float32Array(v,e,this._floatArray.length), + _ = new Int16Array(v,e + i,this._frameIntArray.length), + f = new Float32Array(v,e + i + n,this._frameFloatArray.length), + d = new Int16Array(v,e + i + n + r,this._frameArray.length), + p = new Uint16Array(v,e + i + n + r + s,this._timelineArray.length), + m = 0, + y = this._intArray.length; m < y; ++m) + c[m] = this._intArray[m]; + for (m = 0, + y = this._floatArray.length; m < y; ++m) + u[m] = this._floatArray[m]; + for (m = 0, + y = this._frameIntArray.length; m < y; ++m) + _[m] = this._frameIntArray[m]; + for (m = 0, + y = this._frameFloatArray.length; m < y; ++m) + f[m] = this._frameFloatArray[m]; + for (m = 0, + y = this._frameArray.length; m < y; ++m) + d[m] = this._frameArray[m]; + for (m = 0, + y = this._timelineArray.length; m < y; ++m) + p[m] = this._timelineArray[m]; + this._data.binary = v, + this._data.intArray = c, + this._data.floatArray = u, + this._data.frameIntArray = _, + this._data.frameFloatArray = f, + this._data.frameArray = d, + this._data.timelineArray = p + } + this._defaultColorOffset = -1 + } + , + n.prototype.parseDragonBonesData = function(e, i) { + void 0 === i && (i = 1), + console.assert(null != e, "Data error."); + var r = n._getString(e, t.DataParser.VERSION, "") + , s = n._getString(e, t.DataParser.COMPATIBLE_VERSION, ""); + if (t.DataParser.DATA_VERSIONS.indexOf(r) >= 0 || t.DataParser.DATA_VERSIONS.indexOf(s) >= 0) { + var a = t.BaseObject.borrowObject(t.DragonBonesData); + if (a.version = r, + a.name = n._getString(e, t.DataParser.NAME, ""), + a.frameRate = n._getNumber(e, t.DataParser.FRAME_RATE, 24), + 0 === a.frameRate && (a.frameRate = 24), + t.DataParser.ARMATURE in e) { + this._data = a, + this._parseArray(e); + for (var o = 0, l = e[t.DataParser.ARMATURE]; o < l.length; o++) { + var h = l[o]; + a.addArmature(this._parseArmature(h, i)) + } + this._data.binary || this._modifyArray(), + t.DataParser.STAGE in e ? a.stage = a.getArmature(n._getString(e, t.DataParser.STAGE, "")) : a.armatureNames.length > 0 && (a.stage = a.getArmature(a.armatureNames[0])), + this._data = null + } + return t.DataParser.TEXTURE_ATLAS in e && (this._rawTextureAtlases = e[t.DataParser.TEXTURE_ATLAS]), + a + } + return console.assert(!1, "Nonsupport data version: " + r + "\nPlease convert DragonBones data to support version.\nRead more: https://github.com/DragonBones/Tools/"), + null + } + , + n.prototype.parseTextureAtlasData = function(e, i, r) { + if (void 0 === r && (r = 1), + console.assert(void 0 !== e), + null === e) { + if (null === this._rawTextureAtlases || 0 === this._rawTextureAtlases.length) + return !1; + var s = this._rawTextureAtlases[this._rawTextureAtlasIndex++]; + return this.parseTextureAtlasData(s, i, r), + this._rawTextureAtlasIndex >= this._rawTextureAtlases.length && (this._rawTextureAtlasIndex = 0, + this._rawTextureAtlases = null), + !0 + } + if (i.width = n._getNumber(e, t.DataParser.WIDTH, 0), + i.height = n._getNumber(e, t.DataParser.HEIGHT, 0), + i.scale = 1 === r ? 1 / n._getNumber(e, t.DataParser.SCALE, 1) : r, + i.name = n._getString(e, t.DataParser.NAME, ""), + i.imagePath = n._getString(e, t.DataParser.IMAGE_PATH, ""), + t.DataParser.SUB_TEXTURE in e) + for (var a = e[t.DataParser.SUB_TEXTURE], o = 0, l = a.length; o < l; ++o) { + var h = a[o] + , c = i.createTexture(); + c.rotated = n._getBoolean(h, t.DataParser.ROTATED, !1), + c.name = n._getString(h, t.DataParser.NAME, ""), + c.region.x = n._getNumber(h, t.DataParser.X, 0), + c.region.y = n._getNumber(h, t.DataParser.Y, 0), + c.region.width = n._getNumber(h, t.DataParser.WIDTH, 0), + c.region.height = n._getNumber(h, t.DataParser.HEIGHT, 0); + var u = n._getNumber(h, t.DataParser.FRAME_WIDTH, -1) + , _ = n._getNumber(h, t.DataParser.FRAME_HEIGHT, -1); + u > 0 && _ > 0 && (c.frame = t.TextureData.createRectangle(), + c.frame.x = n._getNumber(h, t.DataParser.FRAME_X, 0), + c.frame.y = n._getNumber(h, t.DataParser.FRAME_Y, 0), + c.frame.width = u, + c.frame.height = _), + i.addTexture(c) + } + return !0 + } + , + n.getInstance = function() { + return null === n._objectDataParserInstance && (n._objectDataParserInstance = new n), + n._objectDataParserInstance + } + , + n._objectDataParserInstance = null, + n + } + )(t.DataParser); + t.ObjectDataParser = e; + var i = function() { + this.frameStart = 0, + this.actions = [] + }; + t.ActionFrame = i + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i() { + return null !== e && e.apply(this, arguments) || this + } + return s(i, e), + i.prototype._inRange = function(t, e, i) { + return e <= t && t <= i + } + , + i.prototype._decodeUTF8 = function(t) { + for (var e, i = 0, n = "", r = 0, s = 0, a = 0, o = 0; t.length > i; ) { + var l = t[i++]; + if (-1 === l) + e = 0 !== s ? 65533 : -1; + else if (0 === s) + this._inRange(l, 0, 127) ? e = l : (this._inRange(l, 194, 223) ? (s = 1, + o = 128, + r = l - 192) : this._inRange(l, 224, 239) ? (s = 2, + o = 2048, + r = l - 224) : this._inRange(l, 240, 244) && (s = 3, + o = 65536, + r = l - 240), + r *= Math.pow(64, s), + e = null); + else if (this._inRange(l, 128, 191)) + if (a += 1, + r += (l - 128) * Math.pow(64, s - a), + a !== s) + e = null; + else { + var h = r + , c = o; + r = 0, + s = 0, + a = 0, + o = 0, + e = this._inRange(h, c, 1114111) && !this._inRange(h, 55296, 57343) ? h : l + } + else + r = 0, + s = 0, + a = 0, + o = 0, + i--, + e = l; + null !== e && -1 !== e && (e <= 65535 ? e > 0 && (n += String.fromCharCode(e)) : (e -= 65536, + n += String.fromCharCode(55296 + (e >> 10 & 1023)), + n += String.fromCharCode(56320 + (1023 & e)))) + } + return n + } + , + i.prototype._getUTF16Key = function(t) { + for (var e = 0, i = t.length; e < i; ++e) + if (t.charCodeAt(e) > 255) + return encodeURI(t); + return t + } + , + i.prototype._parseBinaryTimeline = function(e, i, n) { + void 0 === n && (n = null); + var r = null !== n ? n : t.BaseObject.borrowObject(t.TimelineData); + r.type = e, + r.offset = i, + this._timeline = r; + var s = this._timelineArrayBuffer[r.offset + 2]; + if (1 === s) + r.frameIndicesOffset = -1; + else { + var a = 0 + , o = this._animation.frameCount + 1 + , l = this._data.frameIndices; + t.DragonBones.webAssembly ? (a = l.size(), + l.resize(a + o, 0)) : (a = l.length, + l.length += o), + r.frameIndicesOffset = a; + for (var h = 0, c = 0, u = 0, _ = 0; h < o; ++h) + u + _ <= h && c < s && (u = this._frameArrayBuffer[this._animation.frameOffset + this._timelineArrayBuffer[r.offset + 5 + c]], + _ = c === s - 1 ? this._animation.frameCount - u : this._frameArrayBuffer[this._animation.frameOffset + this._timelineArrayBuffer[r.offset + 5 + c + 1]] - u, + c++), + t.DragonBones.webAssembly ? l.set(a + h, c - 1) : l[a + h] = c - 1 + } + return this._timeline = null, + r + } + , + i.prototype._parseVertices = function(e, i) { + i.offset = e[t.DataParser.OFFSET]; + var n = this._intArrayBuffer[i.offset + 3]; + if (n >= 0) { + var r = t.BaseObject.borrowObject(t.WeightData) + , s = this._intArrayBuffer[i.offset + 0] + , a = this._intArrayBuffer[n + 0]; + r.offset = n; + for (var o = 0; o < a; ++o) { + var l = this._intArrayBuffer[n + 2 + o]; + r.addBone(this._rawBones[l]) + } + for (var h = n + 2 + a, c = 0, u = (o = 0, + s); o < u; ++o) { + var _ = this._intArrayBuffer[h++]; + c += _, + h += _ + } + r.count = c, + i.weight = r + } + } + , + i.prototype._parseMesh = function(t, e) { + this._parseVertices(t, e.vertices) + } + , + i.prototype._parsePath = function(t, e) { + this._parseVertices(t, e.vertices) + } + , + i.prototype._parseAnimation = function(e) { + var i = t.BaseObject.borrowObject(t.AnimationData); + i.frameCount = Math.max(t.ObjectDataParser._getNumber(e, t.DataParser.DURATION, 1), 1), + i.playTimes = t.ObjectDataParser._getNumber(e, t.DataParser.PLAY_TIMES, 1), + i.duration = i.frameCount / this._armature.frameRate, + i.fadeInTime = t.ObjectDataParser._getNumber(e, t.DataParser.FADE_IN_TIME, 0), + i.scale = t.ObjectDataParser._getNumber(e, t.DataParser.SCALE, 1), + i.name = t.ObjectDataParser._getString(e, t.DataParser.NAME, t.DataParser.DEFAULT_NAME), + 0 === i.name.length && (i.name = t.DataParser.DEFAULT_NAME); + var n = e[t.DataParser.OFFSET]; + if (i.frameIntOffset = n[0], + i.frameFloatOffset = n[1], + i.frameOffset = n[2], + this._animation = i, + t.DataParser.ACTION in e && (i.actionTimeline = this._parseBinaryTimeline(0, e[t.DataParser.ACTION])), + t.DataParser.Z_ORDER in e && (i.zOrderTimeline = this._parseBinaryTimeline(1, e[t.DataParser.Z_ORDER])), + t.DataParser.BONE in e) { + var r = e[t.DataParser.BONE]; + for (var s in r) { + var a = r[s]; + t.DragonBones.webAssembly && (s = this._getUTF16Key(s)); + var o = this._armature.getBone(s); + if (null !== o) + for (var l = 0, h = a.length; l < h; l += 2) { + var c = a[l] + , u = a[l + 1] + , _ = this._parseBinaryTimeline(c, u); + this._animation.addBoneTimeline(o, _) + } + } + } + if (t.DataParser.SURFACE in e) + for (var s in r = e[t.DataParser.SURFACE]) { + a = r[s], + t.DragonBones.webAssembly && (s = this._getUTF16Key(s)); + var f = this._armature.getBone(s); + if (null !== f) + for (l = 0, + h = a.length; l < h; l += 2) + c = a[l], + u = a[l + 1], + _ = this._parseBinaryTimeline(c, u), + this._animation.addSurfaceTimeline(f, _) + } + if (t.DataParser.SLOT in e) + for (var s in r = e[t.DataParser.SLOT]) { + a = r[s], + t.DragonBones.webAssembly && (s = this._getUTF16Key(s)); + var d = this._armature.getSlot(s); + if (null !== d) + for (l = 0, + h = a.length; l < h; l += 2) + c = a[l], + u = a[l + 1], + _ = this._parseBinaryTimeline(c, u), + this._animation.addSlotTimeline(d, _) + } + if (t.DataParser.CONSTRAINT in e) + for (var s in r = e[t.DataParser.CONSTRAINT]) { + a = r[s], + t.DragonBones.webAssembly && (s = this._getUTF16Key(s)); + var p = this._armature.getConstraint(s); + if (null !== p) + for (l = 0, + h = a.length; l < h; l += 2) + c = a[l], + u = a[l + 1], + _ = this._parseBinaryTimeline(c, u), + this._animation.addConstraintTimeline(p, _) + } + if (t.DataParser.ANIMATION in e) + for (var s in r = e[t.DataParser.ANIMATION]) + for (a = r[s], + t.DragonBones.webAssembly && (s = this._getUTF16Key(s)), + l = 0, + h = a.length; l < h; l += 2) + c = a[l], + u = a[l + 1], + _ = this._parseBinaryTimeline(c, u), + this._animation.addAnimationTimeline(s, _); + return this._animation = null, + i + } + , + i.prototype._parseArray = function(e) { + var i = e[t.DataParser.OFFSET] + , n = i[1] + , r = i[3] + , s = i[5] + , a = i[7] + , o = i[9] + , l = i[11] + , h = new Int16Array(this._binary,this._binaryOffset + i[0],n / Int16Array.BYTES_PER_ELEMENT) + , c = new Float32Array(this._binary,this._binaryOffset + i[2],r / Float32Array.BYTES_PER_ELEMENT) + , u = new Int16Array(this._binary,this._binaryOffset + i[4],s / Int16Array.BYTES_PER_ELEMENT) + , _ = new Float32Array(this._binary,this._binaryOffset + i[6],a / Float32Array.BYTES_PER_ELEMENT) + , f = new Int16Array(this._binary,this._binaryOffset + i[8],o / Int16Array.BYTES_PER_ELEMENT) + , d = new Uint16Array(this._binary,this._binaryOffset + i[10],l / Uint16Array.BYTES_PER_ELEMENT); + if (t.DragonBones.webAssembly) { + for (var p = n + r + s + a + o + l, m = t.webAssemblyModule._malloc(p), y = new Uint8Array(this._binary,this._binaryOffset,p / Uint8Array.BYTES_PER_ELEMENT), v = new Uint8Array(t.webAssemblyModule.HEAP16.buffer,m,y.length), g = 0, A = y.length; g < A; ++g) + v[g] = y[g]; + t.webAssemblyModule.setDataBinary(this._data, m, n, r, s, a, o, l), + this._intArrayBuffer = h, + this._floatArrayBuffer = c, + this._frameIntArrayBuffer = u, + this._frameFloatArrayBuffer = _, + this._frameArrayBuffer = f, + this._timelineArrayBuffer = d + } else + this._data.binary = this._binary, + this._data.intArray = this._intArrayBuffer = h, + this._data.floatArray = this._floatArrayBuffer = c, + this._data.frameIntArray = this._frameIntArrayBuffer = u, + this._data.frameFloatArray = this._frameFloatArrayBuffer = _, + this._data.frameArray = this._frameArrayBuffer = f, + this._data.timelineArray = this._timelineArrayBuffer = d + } + , + i.prototype.parseDragonBonesData = function(t, i) { + void 0 === i && (i = 1), + console.assert(null != t && t instanceof ArrayBuffer, "Data error."); + var n = new Uint8Array(t,0,8); + if (n[0] !== "D".charCodeAt(0) || n[1] !== "B".charCodeAt(0) || n[2] !== "D".charCodeAt(0) || n[3] !== "T".charCodeAt(0)) + return console.assert(!1, "Nonsupport data."), + null; + var r = new Uint32Array(t,8,1)[0] + , s = new Uint8Array(t,12,r) + , a = this._decodeUTF8(s) + , o = JSON.parse(a); + return this._binaryOffset = 12 + r, + this._binary = t, + e.prototype.parseDragonBonesData.call(this, o, i) + } + , + i.getInstance = function() { + return null === i._binaryDataParserInstance && (i._binaryDataParserInstance = new i), + i._binaryDataParserInstance + } + , + i._binaryDataParserInstance = null, + i + } + )(t.ObjectDataParser); + t.BinaryDataParser = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(i) { + void 0 === i && (i = null), + this.autoSearch = !1, + this._dragonBonesDataMap = {}, + this._textureAtlasDataMap = {}, + this._dragonBones = null, + this._dataParser = null, + null === e._objectParser && (e._objectParser = new t.ObjectDataParser), + null === e._binaryParser && (e._binaryParser = new t.BinaryDataParser), + this._dataParser = null !== i ? i : e._objectParser + } + return e.prototype._isSupportMesh = function() { + return !0 + } + , + e.prototype._getTextureData = function(t, e) { + if (t in this._textureAtlasDataMap) + for (var i = 0, n = this._textureAtlasDataMap[t]; i < n.length; i++) + if (null !== (l = (o = n[i]).getTexture(e))) + return l; + if (this.autoSearch) + for (var r in this._textureAtlasDataMap) + for (var s = 0, a = this._textureAtlasDataMap[r]; s < a.length; s++) { + var o, l; + if ((o = a[s]).autoSearch && null !== (l = o.getTexture(e))) + return l + } + return null + } + , + e.prototype._fillBuildArmaturePackage = function(t, e, i, n, r) { + var s = null + , a = null; + if (e.length > 0 && e in this._dragonBonesDataMap && (a = (s = this._dragonBonesDataMap[e]).getArmature(i)), + null === a && (0 === e.length || this.autoSearch)) + for (var o in this._dragonBonesDataMap) + if (s = this._dragonBonesDataMap[o], + (0 === e.length || s.autoSearch) && null !== (a = s.getArmature(i))) { + e = o; + break + } + if (null !== a) { + if (t.dataName = e, + t.textureAtlasName = r, + t.data = s, + t.armature = a, + t.skin = null, + n.length > 0 && (t.skin = a.getSkin(n), + null === t.skin && this.autoSearch)) + for (var o in this._dragonBonesDataMap) { + var l = this._dragonBonesDataMap[o].getArmature(n); + if (null !== l) { + t.skin = l.defaultSkin; + break + } + } + return null === t.skin && (t.skin = a.defaultSkin), + !0 + } + return !1 + } + , + e.prototype._buildBones = function(e, i) { + for (var n = 0, r = e.armature.sortedBones; n < r.length; n++) { + var s = r[n]; + t.BaseObject.borrowObject(0 === s.type ? t.Bone : t.Surface).init(s, i) + } + } + , + e.prototype._buildSlots = function(e, i) { + var n = e.skin + , r = e.armature.defaultSkin; + if (null !== n && null !== r) { + var s = {}; + for (var a in r.displays) { + var o = r.getDisplays(a); + s[a] = o + } + if (n !== r) + for (var a in n.displays) + o = n.getDisplays(a), + s[a] = o; + for (var l = 0, h = e.armature.sortedSlots; l < h.length; l++) { + var c = h[l] + , u = c.name in s ? s[c.name] : null + , _ = this._buildSlot(e, c, i); + if (_.rawDisplayDatas = u, + null !== u) { + for (var f = new Array, d = 0, p = t.DragonBones.webAssembly ? u.size() : u.length; d < p; ++d) { + var m = t.DragonBones.webAssembly ? u.get(d) : u[d]; + null !== m ? f.push(this._getSlotDisplay(e, m, null, _)) : f.push(null) + } + _._setDisplayList(f) + } + _._setDisplayIndex(c.displayIndex, !0) + } + } + } + , + e.prototype._buildConstraints = function(e, i) { + var n = e.armature.constraints; + for (var r in n) { + var s = n[r]; + switch (s.type) { + case 0: + var a = t.BaseObject.borrowObject(t.IKConstraint); + a.init(s, i), + i._addConstraint(a); + break; + case 1: + var o = t.BaseObject.borrowObject(t.PathConstraint); + o.init(s, i), + i._addConstraint(o); + break; + default: + var l = t.BaseObject.borrowObject(t.IKConstraint); + l.init(s, i), + i._addConstraint(l) + } + } + } + , + e.prototype._buildChildArmature = function(t, e, i) { + return this.buildArmature(i.path, null !== t ? t.dataName : "", "", null !== t ? t.textureAtlasName : "") + } + , + e.prototype._getSlotDisplay = function(e, i, n, r) { + var s = null !== e ? e.dataName : i.parent.parent.parent.name + , a = null; + switch (i.type) { + case 0: + var o = i; + null !== e && e.textureAtlasName.length > 0 && (o.texture = this._getTextureData(e.textureAtlasName, i.path)), + null === o.texture && (o.texture = this._getTextureData(s, i.path)), + a = null !== n && 2 === n.type && this._isSupportMesh() ? r.meshDisplay : r.rawDisplay; + break; + case 2: + var l = i; + null !== e && e.textureAtlasName.length > 0 && (l.texture = this._getTextureData(e.textureAtlasName, l.path)), + null === l.texture && (l.texture = this._getTextureData(s, l.path)), + a = this._isSupportMesh() ? r.meshDisplay : r.rawDisplay; + break; + case 1: + var h = i + , c = this._buildChildArmature(e, r, i); + if (null !== c) { + if (c.inheritAnimation = h.inheritAnimation, + !c.inheritAnimation) { + var u = h.actions.length > 0 ? h.actions : c.armatureData.defaultActions; + if (u.length > 0) + for (var _ = 0, f = u; _ < f.length; _++) { + var d = f[_] + , p = t.BaseObject.borrowObject(t.EventObject); + t.EventObject.actionDataToInstance(d, p, r.armature), + p.slot = r, + r.armature._bufferAction(p, !1) + } + else + c.animation.play() + } + h.armature = c.armatureData + } + a = c + } + return a + } + , + e.prototype.parseDragonBonesData = function(t, i, n) { + void 0 === i && (i = null), + void 0 === n && (n = 1); + for (var r = t instanceof ArrayBuffer ? e._binaryParser : this._dataParser, s = r.parseDragonBonesData(t, n); ; ) { + var a = this._buildTextureAtlasData(null, null); + if (!r.parseTextureAtlasData(null, a, n)) { + a.returnToPool(); + break + } + this.addTextureAtlasData(a, i) + } + return null !== s && this.addDragonBonesData(s, i), + s + } + , + e.prototype.parseTextureAtlasData = function(t, e, i, n) { + void 0 === i && (i = null), + void 0 === n && (n = 1); + var r = this._buildTextureAtlasData(null, null); + return this._dataParser.parseTextureAtlasData(t, r, n), + this._buildTextureAtlasData(r, e || null), + this.addTextureAtlasData(r, i), + r + } + , + e.prototype.updateTextureAtlasData = function(t, e) { + var i = this.getTextureAtlasData(t); + if (null !== i) + for (var n = 0, r = i.length; n < r; ++n) + n < e.length && this._buildTextureAtlasData(i[n], e[n]) + } + , + e.prototype.getDragonBonesData = function(t) { + return t in this._dragonBonesDataMap ? this._dragonBonesDataMap[t] : null + } + , + e.prototype.addDragonBonesData = function(t, e) { + if (void 0 === e && (e = null), + (e = null !== e ? e : t.name)in this._dragonBonesDataMap) { + if (this._dragonBonesDataMap[e] === t) + return; + console.warn("Can not add same name data: " + e) + } else + this._dragonBonesDataMap[e] = t + } + , + e.prototype.removeDragonBonesData = function(t, e) { + void 0 === e && (e = !0), + t in this._dragonBonesDataMap && (e && this._dragonBones.bufferObject(this._dragonBonesDataMap[t]), + delete this._dragonBonesDataMap[t]) + } + , + e.prototype.getTextureAtlasData = function(t) { + return t in this._textureAtlasDataMap ? this._textureAtlasDataMap[t] : null + } + , + e.prototype.addTextureAtlasData = function(t, e) { + void 0 === e && (e = null); + var i = (e = null !== e ? e : t.name)in this._textureAtlasDataMap ? this._textureAtlasDataMap[e] : this._textureAtlasDataMap[e] = []; + i.indexOf(t) < 0 && i.push(t) + } + , + e.prototype.removeTextureAtlasData = function(t, e) { + if (void 0 === e && (e = !0), + t in this._textureAtlasDataMap) { + var i = this._textureAtlasDataMap[t]; + if (e) + for (var n = 0, r = i; n < r.length; n++) { + var s = r[n]; + this._dragonBones.bufferObject(s) + } + delete this._textureAtlasDataMap[t] + } + } + , + e.prototype.getArmatureData = function(t, e) { + void 0 === e && (e = ""); + var n = new i; + return this._fillBuildArmaturePackage(n, e, t, "", "") ? n.armature : null + } + , + e.prototype.clear = function(t) { + for (var e in void 0 === t && (t = !0), + this._dragonBonesDataMap) + t && this._dragonBones.bufferObject(this._dragonBonesDataMap[e]), + delete this._dragonBonesDataMap[e]; + for (var e in this._textureAtlasDataMap) { + if (t) + for (var i = 0, n = this._textureAtlasDataMap[e]; i < n.length; i++) { + var r = n[i]; + this._dragonBones.bufferObject(r) + } + delete this._textureAtlasDataMap[e] + } + } + , + e.prototype.buildArmature = function(t, e, n, r) { + void 0 === e && (e = ""), + void 0 === n && (n = ""), + void 0 === r && (r = ""); + var s = new i; + if (!this._fillBuildArmaturePackage(s, e || "", t, n || "", r || "")) + return console.warn("No armature data: " + t + ", " + (null !== e ? e : "")), + null; + var a = this._buildArmature(s); + return this._buildBones(s, a), + this._buildSlots(s, a), + this._buildConstraints(s, a), + a.invalidUpdate(null, !0), + a.advanceTime(0), + a + } + , + e.prototype.replaceDisplay = function(e, i, n) { + void 0 === n && (n = -1), + n < 0 && (n = e.displayIndex), + n < 0 && (n = 0), + e.replaceDisplayData(i, n); + var r = e.displayList; + if (r.length <= n) { + r.length = n + 1; + for (var s = 0, a = r.length; s < a; ++s) + r[s] || (r[s] = null) + } + if (null !== i) { + var o = e.rawDisplayDatas + , l = null; + o && (t.DragonBones.webAssembly ? n < o.size() && (l = o.get(n)) : n < o.length && (l = o[n])), + r[n] = this._getSlotDisplay(null, i, l, e) + } else + r[n] = null; + e.displayList = r + } + , + e.prototype.replaceSlotDisplay = function(t, e, i, n, r, s) { + void 0 === s && (s = -1); + var a = this.getArmatureData(e, t || ""); + if (!a || !a.defaultSkin) + return !1; + var o = a.defaultSkin.getDisplay(i, n); + return !!o && (this.replaceDisplay(r, o, s), + !0) + } + , + e.prototype.replaceSlotDisplayList = function(e, i, n, r) { + var s = this.getArmatureData(i, e || ""); + if (!s || !s.defaultSkin) + return !1; + var a = s.defaultSkin.getDisplays(n); + if (!a) + return !1; + for (var o = 0, l = 0, h = t.DragonBones.webAssembly ? a.size() : a.length; l < h; ++l) { + var c = t.DragonBones.webAssembly ? a.get(l) : a[l]; + this.replaceDisplay(r, c, o++) + } + return !0 + } + , + e.prototype.replaceSkin = function(e, i, n, r) { + void 0 === n && (n = !1), + void 0 === r && (r = null); + for (var s = !1, a = i.parent.defaultSkin, o = 0, l = e.getSlots(); o < l.length; o++) { + var h = l[o]; + if (!(null !== r && r.indexOf(h.name) >= 0)) { + var c = i.getDisplays(h.name); + if (c || (null !== a && i !== a && (c = a.getDisplays(h.name)), + c)) { + var u = t.DragonBones.webAssembly ? c.size() : c.length + , _ = h.displayList; + _.length = u; + for (var f = 0, d = u; f < d; ++f) { + var p = t.DragonBones.webAssembly ? c.get(f) : c[f]; + _[f] = null !== p ? this._getSlotDisplay(null, p, null, h) : null + } + s = !0, + h.rawDisplayDatas = c, + h.displayList = _ + } else + n && (h.rawDisplayDatas = null, + h.displayList = []) + } + } + return s + } + , + e.prototype.replaceAnimation = function(e, i, n) { + void 0 === n && (n = !0); + var r = i.defaultSkin; + if (null === r) + return !1; + if (n) + e.animation.animations = i.animations; + else { + var s = e.animation.animations + , a = {}; + for (var o in s) + a[o] = s[o]; + for (var o in i.animations) + a[o] = i.animations[o]; + e.animation.animations = a + } + for (var l = 0, h = e.getSlots(); l < h.length; l++) + for (var c = h[l], u = 0, _ = 0, f = c.displayList; _ < f.length; _++) { + var d = f[_]; + if (d instanceof t.Armature) { + var p = r.getDisplays(c.name); + if (null !== p && u < (t.DragonBones.webAssembly ? p.size() : p.length)) { + var m = t.DragonBones.webAssembly ? p.get(u) : p[u]; + if (null !== m && 1 === m.type) { + var y = this.getArmatureData(m.path, m.parent.parent.parent.name); + y && this.replaceAnimation(d, y, n) + } + } + } + u++ + } + return !0 + } + , + e.prototype.getAllDragonBonesData = function() { + return this._dragonBonesDataMap + } + , + e.prototype.getAllTextureAtlasData = function() { + return this._textureAtlasDataMap + } + , + Object.defineProperty(e.prototype, "clock", { + get: function() { + return this._dragonBones.clock + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(e.prototype, "dragonBones", { + get: function() { + return this._dragonBones + }, + enumerable: !0, + configurable: !0 + }), + e.prototype.changeSkin = function(t, e, i) { + return void 0 === i && (i = null), + this.replaceSkin(t, e, !1, i) + } + , + e.prototype.copyAnimationsToArmature = function(t, e, i, n, r) { + void 0 === i && (i = ""), + void 0 === n && (n = ""), + void 0 === r && (r = !0); + var s = this.getArmatureData(e, n); + return !!s && this.replaceAnimation(t, s, r) + } + , + e._objectParser = null, + e._binaryParser = null, + e + } + )(); + t.BaseFactory = e; + var i = function() { + this.dataName = "", + this.textureAtlasName = "", + this.skin = null + }; + t.BuildArmaturePackage = i + } + )(r || (r = {})), + e.exports = r + } + ), {}], + 366: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n = s(t("../../cocos2d/core/renderer/assembler")) + , r = s(t("../../cocos2d/core/value-types/mat4")); + function s(t) { + return t && t.__esModule ? t : { + default: t + } + } + function a(t, e) { + return (a = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var o, l, h, c, u, _, f, d, p, m, y, v, g, A, x, b, C, T, S, w, E, M, D, B, I, P, R, O, L, F, V = t("./ArmatureDisplay"), N = t("../../cocos2d/core/renderer/render-flow"), k = cc.gfx, G = cc.color(255, 0, 0, 255), U = cc.color(0, 0, 255, 255), z = cc.color(0, 255, 0, 255); + function H(t, e) { + if (!t) + return null; + var i, n; + switch (e) { + case 1: + i = u ? cc.macro.ONE : cc.macro.SRC_ALPHA, + n = cc.macro.ONE; + break; + case 10: + i = cc.macro.DST_COLOR, + n = cc.macro.ONE_MINUS_SRC_ALPHA; + break; + case 12: + i = cc.macro.ONE, + n = cc.macro.ONE_MINUS_SRC_COLOR; + break; + case 0: + default: + i = u ? cc.macro.ONE : cc.macro.SRC_ALPHA, + n = cc.macro.ONE_MINUS_SRC_ALPHA + } + var r = !y.enableBatch + , s = y._materials[0]; + if (!s) + return null; + var a = y._materialCache + , o = t.getId() + i + n + r + , l = a[o]; + return l || (a.baseMaterial ? l = cc.MaterialVariant.create(s) : (l = s, + a.baseMaterial = s), + l.define("CC_USE_MODEL", r), + l.setProperty("texture", t), + l.setBlend(!0, k.BLEND_FUNC_ADD, i, n, k.BLEND_FUNC_ADD, i, n), + a[o] = l), + l + } + function W(t, e) { + D = t.a * e * c, + _ = u ? D / 255 : 1, + w = t.r * o * _, + E = t.g * l * _, + M = t.b * h * _, + S = (D << 24 >>> 0) + (M << 16) + (E << 8) + w + } + var j = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + a(e, i); + var s = n.prototype; + return s.updateRenderData = function() {} + , + s.realTimeTraverse = function(t, e, i) { + for (var n, s, a, o, l, h, c, u, _, y, w = t._slots, E = 0, M = w.length; E < M; E++) + if (c = (u = w[E])._color, + u._visible && u._displayData) + if (e ? u._mulMat(u._worldMatrix, e, u._matrix) : r.default.copy(u._worldMatrix, u._matrix), + u.childArmature) + this.realTimeTraverse(u.childArmature, u._worldMatrix, i * c.a / 255); + else if (o = H(u.getTexture(), u._blendMode)) { + (f || o.getHash() !== m.material.getHash()) && (f = !1, + m._flush(), + m.node = p, + m.material = o), + W(c, i), + _ = u._worldMatrix.m, + l = u._localVertices, + x = l.length >> 2, + h = u._indices, + b = h.length, + y = d.request(x, b), + g = y.indiceOffset, + v = y.byteOffset >> 2, + A = y.vertexOffset, + n = d._vData, + s = d._iData, + a = d._uintVData, + I = _[0], + P = _[4], + R = _[12], + O = _[1], + L = _[5], + F = _[13]; + for (var D = 0, B = l.length; D < B; ) + C = l[D++], + T = l[D++], + n[v++] = C * I + T * P + R, + n[v++] = C * O + T * L + F, + n[v++] = l[D++], + n[v++] = l[D++], + a[v++] = S; + for (var V = 0, N = h.length; V < N; V++) + s[g++] = A + h[V] + } + } + , + s.cacheTraverse = function(t, e) { + if (t) { + var i = t.segments; + if (0 != i.length) { + var n, r, s, a, o, l = t.vertices, h = t.indices, c = 0, u = 0, _ = 0; + if (e) { + var y = e.m; + I = y[0], + O = y[1], + P = y[4], + L = y[5], + R = y[12], + F = y[13] + } + var w = 16 & B + , E = w && 1 === I && 0 === O && 0 === P && 1 === L + , M = 0 + , D = t.colors + , V = D[M++] + , N = V.vfOffset; + W(V, 1); + for (var k = 0, G = i.length; k < G; k++) { + var U = i[k]; + a = H(U.tex, U.blendMode), + (f || a.getHash() !== m.material.getHash()) && (f = !1, + m._flush(), + m.node = p, + m.material = a), + x = U.vertexCount, + b = U.indexCount, + o = d.request(x, b), + g = o.indiceOffset, + A = o.vertexOffset, + v = o.byteOffset >> 2, + n = d._vData, + r = d._iData, + s = d._uintVData; + for (var z = g, j = g + b; z < j; z++) + r[z] = A + h[u++]; + if (_ = U.vfCount, + n.set(l.subarray(c, c + _), v), + c += _, + E) + for (var X = v, Y = v + _; X < Y; X += 5) + n[X] += R, + n[X + 1] += F; + else if (w) + for (var q = v, J = v + _; q < J; q += 5) + C = n[q], + T = n[q + 1], + n[q] = C * I + T * P + R, + n[q + 1] = C * O + T * L + F; + if (1 & B) + for (var Z = c - _, K = v + 4, Q = v + 4 + _; K < Q; K += 5, + Z += 5) + Z >= N && (W(V = D[M++], 1), + N = V.vfOffset), + s[K] = S + } + } + } + } + , + s.fillBuffers = function(t, e) { + t.node._renderFlag |= N.FLAG_UPDATE_RENDER_DATA; + var i = t._armature; + if (i) { + f = !0, + u = t.premultipliedAlpha, + p = t.node, + d = e._meshBuffer, + m = e, + y = t, + B = 0; + var n = p._color; + o = n.r / 255, + l = n.g / 255, + h = n.b / 255, + c = n.a / 255, + 4294967295 !== n._val && (B |= 1); + var r = void 0; + if (y.enableBatch && (r = p._worldMatrix, + f = !1, + B |= 16), + t.isAnimationCached()) + this.cacheTraverse(t._curFrame, r); + else { + this.realTimeTraverse(i, r, 1); + var s = t._debugDraw; + if (t.debugBones && s) { + s.clear(), + s.lineWidth = 5, + s.strokeColor = G, + s.fillColor = U; + for (var a = i.getBones(), _ = 0, v = a.length; _ < v; _++) { + var g = a[_] + , A = Math.max(g.boneData.length, 5) + , x = g.globalTransformMatrix.tx + , b = g.globalTransformMatrix.ty + , C = x + g.globalTransformMatrix.a * A + , T = b + g.globalTransformMatrix.b * A; + s.moveTo(x, b), + s.lineTo(C, T), + s.stroke(), + s.circle(x, b, 2 * Math.PI), + s.fill(), + 0 === _ && (s.fillColor = z) + } + } + } + e.worldMatDirty++, + t.attachUtil._syncAttachedNode(), + p = void 0, + d = void 0, + m = void 0, + y = void 0 + } + } + , + s.postFillBuffers = function(t, e) { + e.worldMatDirty-- + } + , + n + } + )(n.default); + i.default = j, + n.default.register(V, j), + e.exports = i.default + } + ), { + "../../cocos2d/core/renderer/assembler": 221, + "../../cocos2d/core/renderer/render-flow": 225, + "../../cocos2d/core/value-types/mat4": 284, + "./ArmatureDisplay": 356 + }], + 367: [(function(t, e) { + "use strict"; + var i, n = (i = t("../../cocos2d/core/value-types/mat4")) && i.__esModule ? i : { + default: i + }, r = t("../../cocos2d/core/renderer/render-flow").FLAG_TRANSFORM, s = function() {}, a = function(t) { + Object.defineProperty(t, "_worldMatDirty", { + get: function() { + return !0 + }, + set: function() {} + }), + t._calculWorldMatrix = s, + t._mulMat = s + }, o = new n.default, l = cc.Class({ + name: "sp.AttachUtil", + ctor: function() { + this._inited = !1, + this._skeleton = null, + this._skeletonNode = null, + this._skeletonComp = null, + this._attachedRootNode = null, + this._attachedNodeArray = [], + this._boneIndexToNode = {} + }, + init: function(t) { + this._inited = !0, + this._skeleton = t._skeleton, + this._skeletonNode = t.node, + this._skeletonComp = t + }, + reset: function() { + this._inited = !1, + this._skeleton = null, + this._skeletonNode = null, + this._skeletonComp = null + }, + _prepareAttachNode: function() { + if (this._skeleton) { + var t = this._skeletonNode.getChildByName("ATTACHED_NODE_TREE"); + return t && t.isValid || (t = new cc.Node("ATTACHED_NODE_TREE"), + a(t), + this._skeletonNode.addChild(t)), + this._skeletonComp.isAnimationCached() && this._skeletonComp._frameCache && this._skeletonComp._frameCache.enableCacheAttachedInfo(), + this._attachedRootNode = t, + t + } + }, + _buildBoneAttachedNode: function(t, e) { + var i = "ATTACHED_NODE:" + t.data.name + , n = new cc.Node(i); + return this._buildBoneRelation(n, t, e), + n + }, + _buildBoneRelation: function(t, e, i) { + a(t), + t._bone = e, + t._boneIndex = i, + this._attachedNodeArray.push(t), + this._boneIndexToNode[i] = t + }, + getAttachedRootNode: function() { + return this._attachedRootNode + }, + getAttachedNodes: function(t) { + var e = this._attachedNodeArray + , i = []; + if (!this._inited) + return i; + for (var n = 0, r = e.length; n < r; n++) { + var s = e[n]; + s && s.isValid && s.name === "ATTACHED_NODE:" + t && i.push(s) + } + return i + }, + _rebuildNodeArray: function() { + for (var t = this._boneIndexToNode = {}, e = this._attachedNodeArray, i = this._attachedNodeArray = [], n = 0, r = e.length; n < r; n++) { + var s = e[n]; + s && s.isValid && !s._toRemove && (i.push(s), + t[s._boneIndex] = s) + } + }, + _sortNodeArray: function() { + this._attachedNodeArray.sort((function(t, e) { + return t._boneIndex < e._boneIndex ? -1 : 1 + } + )) + }, + _getNodeByBoneIndex: function(t) { + var e = this._boneIndexToNode[t]; + return e && e.isValid ? e : null + }, + destroyAttachedNodes: function(t) { + if (this._inited) { + for (var e = this._attachedNodeArray, i = function t(e) { + for (var i = e.children, n = 0, r = i.length; n < r; n++) { + var s = i[n]; + s && t(s) + } + e._toRemove = !0 + }, n = 0, r = e.length; n < r; n++) { + var s = e[n]; + s && s.isValid && s.name.split("ATTACHED_NODE:")[1] === t && (i(s), + s.removeFromParent(!0), + s.destroy(), + e[n] = null) + } + this._rebuildNodeArray() + } + }, + generateAttachedNodes: function(t) { + var e = []; + if (!this._inited) + return e; + var i = this._prepareAttachNode(); + if (!i) + return e; + for (var n = [], r = this._skeleton.bones, s = 0, a = r.length; s < a; s++) { + var o = r[s]; + o.data.name == t && n.push(o) + } + for (var l = function(t) { + if (t) { + var e = t.data + , n = this._getNodeByBoneIndex(e.index); + if (n) + return n; + n = this._buildBoneAttachedNode(t, e.index); + var r = l(t.parent) || i; + return n.parent = r, + n + } + } + .bind(this), h = 0, c = n.length; h < c; h++) { + var u = l(n[h]); + e.push(u) + } + return this._sortNodeArray(), + e + }, + destroyAllAttachedNodes: function() { + if (this._attachedRootNode = null, + this._attachedNodeArray.length = 0, + this._boneIndexToNode = {}, + this._inited) { + var t = this._skeletonNode.getChildByName("ATTACHED_NODE_TREE"); + t && (t.removeFromParent(!0), + t.destroy(), + t = null) + } + }, + generateAllAttachedNodes: function() { + if (this._inited) { + this._boneIndexToNode = {}, + this._attachedNodeArray.length = 0; + var t = this._prepareAttachNode(); + if (t) { + for (var e = this._skeleton.bones, i = 0, n = e.length; i < n; i++) { + var r = e[i] + , s = r.data + , a = null; + if (r.parent) { + var o = r.parent.data.index; + a = this._boneIndexToNode[o] + } else + a = t; + if (a) { + var l = a.getChildByName("ATTACHED_NODE:" + s.name); + l && l.isValid ? this._buildBoneRelation(l, r, s.index) : (l = this._buildBoneAttachedNode(r, s.index), + a.addChild(l)) + } + } + return t + } + } + }, + _hasAttachedNode: function() { + return !!this._inited && !!this._skeletonNode.getChildByName("ATTACHED_NODE_TREE") + }, + _associateAttachedNode: function() { + if (this._inited) { + var t = this._skeletonNode.getChildByName("ATTACHED_NODE_TREE"); + if (t && t.isValid) { + this._attachedRootNode = t, + this._boneIndexToNode = {}, + this._attachedNodeArray.length = 0, + a(t), + this._skeletonComp.isAnimationCached() && this._skeletonComp._frameCache && this._skeletonComp._frameCache.enableCacheAttachedInfo(); + for (var e = this._skeleton.bones, i = 0, n = e.length; i < n; i++) { + var r = e[i] + , s = r.data + , o = null; + if (r.parent) { + var l = r.parent.data.index; + o = this._boneIndexToNode[l] + } else + o = t; + if (o) { + var h = o.getChildByName("ATTACHED_NODE:" + s.name); + h && h.isValid && this._buildBoneRelation(h, r, s.index) + } + } + } + } + }, + _syncAttachedNode: function() { + if (this._inited) { + var t = this._attachedRootNode + , e = this._attachedNodeArray; + if (!t || !t.isValid) + return this._attachedRootNode = null, + void (e.length = 0); + var i = this._skeletonNode._worldMatrix; + n.default.copy(t._worldMatrix, i), + t._renderFlag &= ~r; + var s; + if (s = this._skeletonComp.isAnimationCached() ? this._skeletonComp._curFrame && this._skeletonComp._curFrame.boneInfos : this._skeleton.bones) { + for (var a = this._skeletonNode._mulMat, l = function(t, e, i) { + var n = o.m; + n[0] = i.a, + n[1] = i.c, + n[4] = i.b, + n[5] = i.d, + n[12] = i.worldX, + n[13] = i.worldY, + a(t, e, o) + }, h = !1, c = 0, u = e.length; c < u; c++) { + var _ = e[c]; + if (_ && _.isValid) { + var f = s[_._boneIndex]; + f ? (l(_._worldMatrix, t._worldMatrix, f), + _._renderFlag &= ~r) : (_.removeFromParent(!0), + _.destroy(), + e[c] = null, + h = !0) + } else + e[c] = null, + h = !0 + } + h && this._rebuildNodeArray() + } + } + } + }); + e.exports = sp.AttachUtil = l + } + ), { + "../../cocos2d/core/renderer/render-flow": 225, + "../../cocos2d/core/value-types/mat4": 284 + }], + 368: [(function(t, e) { + "use strict"; + var i = t("./track-entry-listeners") + , n = t("../../cocos2d/core/components/CCRenderComponent") + , r = t("./lib/spine") + , s = t("../../cocos2d/core/graphics/graphics") + , a = t("../../cocos2d/core/renderer/render-flow").FLAG_POST_RENDER + , o = t("./skeleton-cache") + , l = t("./AttachUtil") + , h = cc.Enum({ + default: -1 + }) + , c = cc.Enum({ + "": 0 + }) + , u = cc.Enum({ + REALTIME: 0, + SHARED_CACHE: 1, + PRIVATE_CACHE: 2 + }); + sp.Skeleton = cc.Class({ + name: "sp.Skeleton", + extends: n, + editor: !1, + statics: { + AnimationCacheMode: u + }, + properties: { + paused: { + default: !1, + visible: !1 + }, + skeletonData: { + default: null, + type: sp.SkeletonData, + notify: function() { + this.defaultSkin = "", + this.defaultAnimation = "", + this._updateSkeletonData() + }, + tooltip: !1 + }, + defaultSkin: { + default: "", + visible: !1 + }, + defaultAnimation: { + default: "", + visible: !1 + }, + animation: { + get: function() { + if (this.isAnimationCached()) + return this._animationName; + var t = this.getCurrent(0); + return t && t.animation.name || "" + }, + set: function(t) { + this.defaultAnimation = t, + t ? this.setAnimation(0, t, this.loop) : this.isAnimationCached() || (this.clearTrack(0), + this.setToSetupPose()) + }, + visible: !1 + }, + _defaultSkinIndex: { + get: function() { + if (this.skeletonData) { + var t = this.skeletonData.getSkinsEnum(); + if (t) + if ("" === this.defaultSkin) { + if (t.hasOwnProperty(0)) + return this._defaultSkinIndex = 0, + 0 + } else { + var e = t[this.defaultSkin]; + if (void 0 !== e) + return e + } + } + return 0 + }, + set: function(t) { + var e; + if (this.skeletonData && (e = this.skeletonData.getSkinsEnum()), + !e) + return cc.errorID("", this.name); + var i = e[t]; + void 0 !== i ? (this.defaultSkin = i, + this.setSkin(this.defaultSkin)) : cc.errorID(7501, this.name) + }, + type: h, + visible: !0, + animatable: !1, + displayName: "Default Skin", + tooltip: !1 + }, + _animationIndex: { + get: function() { + var t = this.animation; + if (this.skeletonData && t) { + var e = this.skeletonData.getAnimsEnum(); + if (e) { + var i = e[t]; + if (void 0 !== i) + return i + } + } + return 0 + }, + set: function(t) { + if (0 !== t) { + var e; + if (this.skeletonData && (e = this.skeletonData.getAnimsEnum()), + !e) + return cc.errorID(7502, this.name); + var i = e[t]; + void 0 !== i ? this.animation = i : cc.errorID(7503, this.name) + } else + this.animation = "" + }, + type: c, + visible: !0, + animatable: !1, + displayName: "Animation", + tooltip: !1 + }, + _preCacheMode: -1, + _cacheMode: u.REALTIME, + _defaultCacheMode: { + default: 0, + type: u, + notify: function() { + this.setAnimationCacheMode(this._defaultCacheMode) + }, + editorOnly: !0, + visible: !0, + animatable: !1, + displayName: "Animation Cache Mode", + tooltip: !1 + }, + loop: { + default: !0, + tooltip: !1 + }, + premultipliedAlpha: { + default: !0, + tooltip: !1 + }, + timeScale: { + default: 1, + tooltip: !1 + }, + debugSlots: { + default: !1, + editorOnly: !0, + tooltip: !1, + notify: function() { + this._updateDebugDraw() + } + }, + debugBones: { + default: !1, + editorOnly: !0, + tooltip: !1, + notify: function() { + this._updateDebugDraw() + } + }, + debugMesh: { + default: !1, + editorOnly: !0, + tooltip: !1, + notify: function() { + this._updateDebugDraw() + } + }, + useTint: { + default: !1, + tooltip: !1, + notify: function() { + this._updateUseTint() + } + }, + enableBatch: { + default: !1, + notify: function() { + this._updateBatch() + }, + tooltip: !1 + }, + _accTime: 0, + _playCount: 0, + _frameCache: null, + _curFrame: null, + _skeletonCache: null, + _animationName: "", + _animationQueue: [], + _headAniInfo: null, + _playTimes: 0, + _isAniComplete: !0 + }, + ctor: function() { + this._effectDelegate = null, + this._skeleton = null, + this._rootBone = null, + this._listener = null, + this._materialCache = {}, + this._debugRenderer = null, + this._startSlotIndex = -1, + this._endSlotIndex = -1, + this._startEntry = { + animation: { + name: "" + }, + trackIndex: 0 + }, + this._endEntry = { + animation: { + name: "" + }, + trackIndex: 0 + }, + this.attachUtil = new l + }, + _getDefaultMaterial: function() { + return cc.Material.getBuiltinMaterial("2d-spine") + }, + _updateMaterial: function() { + var t = this.useTint || this.isAnimationCached() && !0 + , e = this.getMaterial(0); + if (e) { + e.define("USE_TINT", t), + e.define("CC_USE_MODEL", !this.enableBatch); + var i = this.premultipliedAlpha ? cc.gfx.BLEND_ONE : cc.gfx.BLEND_SRC_ALPHA + , n = cc.gfx.BLEND_ONE_MINUS_SRC_ALPHA; + e.setBlend(!0, cc.gfx.BLEND_FUNC_ADD, i, i, cc.gfx.BLEND_FUNC_ADD, n, n) + } + this._materialCache = {} + }, + disableRender: function() { + this._super(), + this.node._renderFlag &= ~a + }, + markForRender: function(t) { + this._super(t), + t ? this.node._renderFlag |= a : this.node._renderFlag &= ~a + }, + _updateUseTint: function() { + var t = this.getMaterial(0); + if (t) { + var e = this.useTint || this.isAnimationCached() && !0; + t.define("USE_TINT", e) + } + this._materialCache = {} + }, + _updateBatch: function() { + var t = this.getMaterial(0); + t && t.define("CC_USE_MODEL", !this.enableBatch), + this._materialCache = {} + }, + _validateRender: function() { + var t = this.skeletonData; + t && t.isTexturesLoaded() ? this._super() : this.disableRender() + }, + setSkeletonData: function(t) { + if (null != t.width && null != t.height && this.node.setContentSize(t.width, t.height), + this._cacheMode === u.SHARED_CACHE ? this._skeletonCache = o.sharedCache : this._cacheMode === u.PRIVATE_CACHE && (this._skeletonCache = new o, + this._skeletonCache.enablePrivateMode()), + this.isAnimationCached()) { + (this.debugBones || this.debugSlots) && cc.warn("Debug bones or slots is invalid in cached mode"); + var e = this._skeletonCache.getSkeletonCache(this.skeletonData._uuid, t); + this._skeleton = e.skeleton, + this._clipper = e.clipper, + this._rootBone = this._skeleton.getRootBone() + } else + this._skeleton = new r.Skeleton(t), + this._clipper = new r.SkeletonClipping, + this._rootBone = this._skeleton.getRootBone(); + this.markForRender(!0) + }, + setSlotsRange: function(t, e) { + this.isAnimationCached() ? cc.warn("Slots visible range can not be modified in cached mode.") : (this._startSlotIndex = t, + this._endSlotIndex = e) + }, + setAnimationStateData: function(t) { + if (this.isAnimationCached()) + cc.warn("'setAnimationStateData' interface can not be invoked in cached mode."); + else { + var e = new r.AnimationState(t); + this._listener && (this._state && this._state.removeListener(this._listener), + e.addListener(this._listener)), + this._state = e + } + }, + __preload: function() { + this._super(); + for (var t = this.node.children, e = 0, i = t.length; e < i; e++) { + var n = t[e]; + n && "DEBUG_DRAW_NODE" === n._name && n.destroy() + } + this._updateSkeletonData(), + this._updateDebugDraw(), + this._updateUseTint(), + this._updateBatch() + }, + setAnimationCacheMode: function(t) { + this._preCacheMode !== t && (this._cacheMode = t, + this._updateSkeletonData(), + this._updateUseTint()) + }, + isAnimationCached: function() { + return this._cacheMode !== u.REALTIME + }, + update: function(t) { + if (!this.paused) + if (t *= this.timeScale * sp.timeScale, + this.isAnimationCached()) { + if (this._isAniComplete) { + if (0 === this._animationQueue.length && !this._headAniInfo) { + var e = this._frameCache; + if (e && e.isInvalid()) { + e.updateToFrame(); + var i = e.frames; + this._curFrame = i[i.length - 1] + } + return + } + if (this._headAniInfo || (this._headAniInfo = this._animationQueue.shift()), + this._accTime += t, + this._accTime > this._headAniInfo.delay) { + var n = this._headAniInfo; + this._headAniInfo = null, + this.setAnimation(0, n.animationName, n.loop) + } + return + } + this._updateCache(t) + } else + this._updateRealtime(t) + }, + _emitCacheCompleteEvent: function() { + this._listener && (this._endEntry.animation.name = this._animationName, + this._listener.complete && this._listener.complete(this._endEntry), + this._listener.end && this._listener.end(this._endEntry)) + }, + _updateCache: function(t) { + var e = this._frameCache; + if (e.isInited()) { + var i = e.frames + , n = o.FrameTime; + 0 == this._accTime && 0 == this._playCount && (this._startEntry.animation.name = this._animationName, + this._listener && this._listener.start && this._listener.start(this._startEntry)), + this._accTime += t; + var r = Math.floor(this._accTime / n); + if (e.isCompleted || e.updateToFrame(r), + e.isCompleted && r >= i.length) { + if (this._playCount++, + this._playTimes > 0 && this._playCount >= this._playTimes) + return this._curFrame = i[i.length - 1], + this._accTime = 0, + this._playCount = 0, + this._isAniComplete = !0, + void this._emitCacheCompleteEvent(); + this._accTime = 0, + r = 0, + this._emitCacheCompleteEvent() + } + this._curFrame = i[r] + } + }, + _updateRealtime: function(t) { + var e = this._skeleton + , i = this._state; + e && (e.update(t), + i && (i.update(t), + i.apply(e))) + }, + setVertexEffectDelegate: function(t) { + this._effectDelegate = t + }, + updateWorldTransform: function() { + this.isAnimationCached() && this._skeleton && this._skeleton.updateWorldTransform() + }, + setToSetupPose: function() { + this._skeleton && this._skeleton.setToSetupPose() + }, + setBonesToSetupPose: function() { + this._skeleton && this._skeleton.setBonesToSetupPose() + }, + setSlotsToSetupPose: function() { + this._skeleton && this._skeleton.setSlotsToSetupPose() + }, + updateAnimationCache: function(t) { + if (this.isAnimationCached()) { + var e = this.skeletonData._uuid; + this._skeletonCache && this._skeletonCache.updateAnimationCache(e, t) + } + }, + invalidAnimationCache: function() { + this.isAnimationCached() && this._skeletonCache && this._skeletonCache.invalidAnimationCache(this.skeletonData._uuid) + }, + findBone: function(t) { + return this._skeleton ? this._skeleton.findBone(t) : null + }, + findSlot: function(t) { + return this._skeleton ? this._skeleton.findSlot(t) : null + }, + setSkin: function(t) { + this._skeleton && (this._skeleton.setSkinByName(t), + this._skeleton.setSlotsToSetupPose()), + this.invalidAnimationCache() + }, + getAttachment: function(t, e) { + return this._skeleton ? this._skeleton.getAttachmentByName(t, e) : null + }, + setAttachment: function(t, e) { + this._skeleton && this._skeleton.setAttachment(t, e), + this.invalidAnimationCache() + }, + getTextureAtlas: function(t) { + return t.region + }, + setMix: function(t, e, i) { + this._state && this._state.data.setMix(t, e, i) + }, + setAnimation: function(t, e, i) { + if (this._playTimes = i ? 0 : 1, + this._animationName = e, + this.isAnimationCached()) { + if (0 !== t && cc.warn("Track index can not greater than 0 in cached mode."), + !this._skeletonCache) + return null; + var n = this._skeletonCache.getAnimationCache(this.skeletonData._uuid, e); + n || (n = this._skeletonCache.initAnimationCache(this.skeletonData._uuid, e)), + n && (this._isAniComplete = !1, + this._accTime = 0, + this._playCount = 0, + this._frameCache = n, + this.attachUtil._hasAttachedNode() && this._frameCache.enableCacheAttachedInfo(), + this._frameCache.updateToFrame(0), + this._curFrame = this._frameCache.frames[0]) + } else if (this._skeleton) { + var r = this._skeleton.data.findAnimation(e); + if (!r) + return cc.logID(7509, e), + null; + var s = this._state.setAnimationWith(t, r, i); + return this._state.apply(this._skeleton), + s + } + return null + }, + addAnimation: function(t, e, i, n) { + if (n = n || 0, + this.isAnimationCached()) + 0 !== t && cc.warn("Track index can not greater than 0 in cached mode."), + this._animationQueue.push({ + animationName: e, + loop: i, + delay: n + }); + else if (this._skeleton) { + var r = this._skeleton.data.findAnimation(e); + return r ? this._state.addAnimationWith(t, r, i, n) : (cc.logID(7510, e), + null) + } + return null + }, + findAnimation: function(t) { + return this._skeleton ? this._skeleton.data.findAnimation(t) : null + }, + getCurrent: function(t) { + if (this.isAnimationCached()) + cc.warn("'getCurrent' interface can not be invoked in cached mode."); + else if (this._state) + return this._state.getCurrent(t); + return null + }, + clearTracks: function() { + this.isAnimationCached() ? cc.warn("'clearTracks' interface can not be invoked in cached mode.") : this._state && this._state.clearTracks() + }, + clearTrack: function(t) { + this.isAnimationCached() ? cc.warn("'clearTrack' interface can not be invoked in cached mode.") : this._state && this._state.clearTrack(t) + }, + setStartListener: function(t) { + this._ensureListener(), + this._listener.start = t + }, + setInterruptListener: function(t) { + this._ensureListener(), + this._listener.interrupt = t + }, + setEndListener: function(t) { + this._ensureListener(), + this._listener.end = t + }, + setDisposeListener: function(t) { + this._ensureListener(), + this._listener.dispose = t + }, + setCompleteListener: function(t) { + this._ensureListener(), + this._listener.complete = t + }, + setEventListener: function(t) { + this._ensureListener(), + this._listener.event = t + }, + setTrackStartListener: function(t, e) { + i.getListeners(t).start = e + }, + setTrackInterruptListener: function(t, e) { + i.getListeners(t).interrupt = e + }, + setTrackEndListener: function(t, e) { + i.getListeners(t).end = e + }, + setTrackDisposeListener: function(t, e) { + i.getListeners(t).dispose = e + }, + setTrackCompleteListener: function(t, e) { + i.getListeners(t).complete = function(t) { + var i = Math.floor(t.trackTime / t.animationEnd); + e(t, i) + } + }, + setTrackEventListener: function(t, e) { + i.getListeners(t).event = e + }, + getState: function() { + return this._state + }, + _updateAnimEnum: !1, + _updateSkinEnum: !1, + _ensureListener: function() { + this._listener || (this._listener = new i, + this._state && this._state.addListener(this._listener)) + }, + _updateSkeletonData: function() { + if (this.skeletonData) { + var t = this.skeletonData.getRuntimeData(); + if (t) { + try { + this.setSkeletonData(t), + this.isAnimationCached() || this.setAnimationStateData(new r.AnimationStateData(this._skeleton.data)), + this.defaultSkin && this.setSkin(this.defaultSkin) + } catch (e) { + cc.warn(e) + } + this.attachUtil.init(this), + this.attachUtil._associateAttachedNode(), + this._preCacheMode = this._cacheMode, + this.animation = this.defaultAnimation + } else + this.disableRender() + } else + this.disableRender() + }, + _refreshInspector: function() { + this._updateAnimEnum(), + this._updateSkinEnum(), + Editor.Utils.refreshSelectedInspector("node", this.node.uuid) + }, + _updateDebugDraw: function() { + if (this.debugBones || this.debugSlots) { + if (!this._debugRenderer) { + var t = new cc.PrivateNode; + t.name = "DEBUG_DRAW_NODE"; + var e = t.addComponent(s); + e.lineWidth = 1, + e.strokeColor = cc.color(255, 0, 0, 255), + this._debugRenderer = e + } + this._debugRenderer.node.parent = this.node, + this.isAnimationCached() && cc.warn("Debug bones or slots is invalid in cached mode") + } else + this._debugRenderer && (this._debugRenderer.node.parent = null) + } + }), + e.exports = sp.Skeleton + } + ), { + "../../cocos2d/core/components/CCRenderComponent": 115, + "../../cocos2d/core/graphics/graphics": 156, + "../../cocos2d/core/renderer/render-flow": 225, + "./AttachUtil": 367, + "./lib/spine": 370, + "./skeleton-cache": 371, + "./track-entry-listeners": 375 + }], + 369: [(function(t) { + "use strict"; + var e = "undefined" == typeof window ? global : window; + e.spine = t("./lib/spine"), + e.sp = {}, + sp._timeScale = 1, + Object.defineProperty(sp, "timeScale", { + get: function() { + return this._timeScale + }, + set: function(t) { + this._timeScale = t + }, + configurable: !0 + }), + sp.ATTACHMENT_TYPE = { + REGION: 0, + BOUNDING_BOX: 1, + MESH: 2, + SKINNED_MESH: 3 + }, + sp.AnimationEventType = cc.Enum({ + START: 0, + INTERRUPT: 1, + END: 2, + DISPOSE: 3, + COMPLETE: 4, + EVENT: 5 + }), + sp.spine = e.spine, + t("./skeleton-texture"), + t("./skeleton-data"), + t("./vertex-effect-delegate"), + t("./Skeleton"), + t("./spine-assembler") + } + ), { + "./Skeleton": 368, + "./lib/spine": 370, + "./skeleton-data": 372, + "./skeleton-texture": 373, + "./spine-assembler": 374, + "./vertex-effect-delegate": 376 + }], + 370: [(function(t, e) { + "use strict"; + var i, n, r, s = (i = function(t, e) { + return (i = Object.setPrototypeOf || { + __proto__: [] + }instanceof Array && function(t, e) { + t.__proto__ = e + } + || function(t, e) { + for (var i in e) + e.hasOwnProperty(i) && (t[i] = e[i]) + } + )(t, e) + } + , + function(t, e) { + function n() { + this.constructor = t + } + i(t, e), + t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, + new n) + } + ); + (function(t) { + var e, i, n, r = (function() { + function t(t, e, i) { + if (null == t) + throw new Error("name cannot be null."); + if (null == e) + throw new Error("timelines cannot be null."); + this.name = t, + this.timelines = e, + this.timelineIds = []; + for (var n = 0; n < e.length; n++) + this.timelineIds[e[n].getPropertyId()] = !0; + this.duration = i + } + return t.prototype.hasTimeline = function(t) { + return 1 == this.timelineIds[t] + } + , + t.prototype.apply = function(t, e, i, n, r, s, a, o) { + if (null == t) + throw new Error("skeleton cannot be null."); + n && 0 != this.duration && (i %= this.duration, + e > 0 && (e %= this.duration)); + for (var l = this.timelines, h = 0, c = l.length; h < c; h++) + l[h].apply(t, e, i, r, s, a, o) + } + , + t.binarySearch = function(t, e, i) { + void 0 === i && (i = 1); + var n = 0 + , r = t.length / i - 2; + if (0 == r) + return i; + for (var s = r >>> 1; ; ) { + if (t[(s + 1) * i] <= e ? n = s + 1 : r = s, + n == r) + return (n + 1) * i; + s = n + r >>> 1 + } + } + , + t.linearSearch = function(t, e, i) { + for (var n = 0, r = t.length - i; n <= r; n += i) + if (t[n] > e) + return n; + return -1 + } + , + t + } + )(); + t.Animation = r, + (function(t) { + t[t.setup = 0] = "setup", + t[t.first = 1] = "first", + t[t.replace = 2] = "replace", + t[t.add = 3] = "add" + } + )(e = t.MixBlend || (t.MixBlend = {})), + (function(t) { + t[t.mixIn = 0] = "mixIn", + t[t.mixOut = 1] = "mixOut" + } + )(i = t.MixDirection || (t.MixDirection = {})), + (function(t) { + t[t.rotate = 0] = "rotate", + t[t.translate = 1] = "translate", + t[t.scale = 2] = "scale", + t[t.shear = 3] = "shear", + t[t.attachment = 4] = "attachment", + t[t.color = 5] = "color", + t[t.deform = 6] = "deform", + t[t.event = 7] = "event", + t[t.drawOrder = 8] = "drawOrder", + t[t.ikConstraint = 9] = "ikConstraint", + t[t.transformConstraint = 10] = "transformConstraint", + t[t.pathConstraintPosition = 11] = "pathConstraintPosition", + t[t.pathConstraintSpacing = 12] = "pathConstraintSpacing", + t[t.pathConstraintMix = 13] = "pathConstraintMix", + t[t.twoColor = 14] = "twoColor" + } + )(n = t.TimelineType || (t.TimelineType = {})); + var a = (function() { + function e(i) { + if (i <= 0) + throw new Error("frameCount must be > 0: " + i); + this.curves = t.Utils.newFloatArray((i - 1) * e.BEZIER_SIZE) + } + return e.prototype.getFrameCount = function() { + return this.curves.length / e.BEZIER_SIZE + 1 + } + , + e.prototype.setLinear = function(t) { + this.curves[t * e.BEZIER_SIZE] = e.LINEAR + } + , + e.prototype.setStepped = function(t) { + this.curves[t * e.BEZIER_SIZE] = e.STEPPED + } + , + e.prototype.getCurveType = function(t) { + var i = t * e.BEZIER_SIZE; + if (i == this.curves.length) + return e.LINEAR; + var n = this.curves[i]; + return n == e.LINEAR ? e.LINEAR : n == e.STEPPED ? e.STEPPED : e.BEZIER + } + , + e.prototype.setCurve = function(t, i, n, r, s) { + var a = .03 * (2 * -i + r) + , o = .03 * (2 * -n + s) + , l = .006 * (3 * (i - r) + 1) + , h = .006 * (3 * (n - s) + 1) + , c = 2 * a + l + , u = 2 * o + h + , _ = .3 * i + a + .16666667 * l + , f = .3 * n + o + .16666667 * h + , d = t * e.BEZIER_SIZE + , p = this.curves; + p[d++] = e.BEZIER; + for (var m = _, y = f, v = d + e.BEZIER_SIZE - 1; d < v; d += 2) + p[d] = m, + p[d + 1] = y, + _ += c, + f += u, + c += l, + u += h, + m += _, + y += f + } + , + e.prototype.getCurvePercent = function(i, n) { + n = t.MathUtils.clamp(n, 0, 1); + var r = this.curves + , s = i * e.BEZIER_SIZE + , a = r[s]; + if (a == e.LINEAR) + return n; + if (a == e.STEPPED) + return 0; + for (var o = 0, l = ++s, h = s + e.BEZIER_SIZE - 1; s < h; s += 2) + if ((o = r[s]) >= n) { + var c = void 0 + , u = void 0; + return s == l ? (c = 0, + u = 0) : (c = r[s - 2], + u = r[s - 1]), + u + (r[s + 1] - u) * (n - c) / (o - c) + } + var _ = r[s - 1]; + return _ + (1 - _) * (n - o) / (1 - o) + } + , + e.LINEAR = 0, + e.STEPPED = 1, + e.BEZIER = 2, + e.BEZIER_SIZE = 19, + e + } + )(); + t.CurveTimeline = a; + var o = (function(i) { + function a(e) { + var n = i.call(this, e) || this; + return n.frames = t.Utils.newFloatArray(e << 1), + n + } + return s(a, i), + a.prototype.getPropertyId = function() { + return (n.rotate << 24) + this.boneIndex + } + , + a.prototype.setFrame = function(t, e, i) { + t <<= 1, + this.frames[t] = e, + this.frames[t + a.ROTATION] = i + } + , + a.prototype.apply = function(t, i, n, s, o, l) { + var h = this.frames + , c = t.bones[this.boneIndex]; + if (c.active) + if (n < h[0]) + switch (l) { + case e.setup: + return void (c.rotation = c.data.rotation); + case e.first: + var u = c.data.rotation - c.rotation; + c.rotation += (u - 360 * (16384 - (16384.499999999996 - u / 360 | 0))) * o + } + else if (n >= h[h.length - a.ENTRIES]) { + var _ = h[h.length + a.PREV_ROTATION]; + switch (l) { + case e.setup: + c.rotation = c.data.rotation + _ * o; + break; + case e.first: + case e.replace: + _ += c.data.rotation - c.rotation, + _ -= 360 * (16384 - (16384.499999999996 - _ / 360 | 0)); + case e.add: + c.rotation += _ * o + } + } else { + var f = r.binarySearch(h, n, a.ENTRIES) + , d = h[f + a.PREV_ROTATION] + , p = h[f] + , m = this.getCurvePercent((f >> 1) - 1, 1 - (n - p) / (h[f + a.PREV_TIME] - p)) + , y = h[f + a.ROTATION] - d; + switch (y = d + (y - 360 * (16384 - (16384.499999999996 - y / 360 | 0))) * m, + l) { + case e.setup: + c.rotation = c.data.rotation + (y - 360 * (16384 - (16384.499999999996 - y / 360 | 0))) * o; + break; + case e.first: + case e.replace: + y += c.data.rotation - c.rotation; + case e.add: + c.rotation += (y - 360 * (16384 - (16384.499999999996 - y / 360 | 0))) * o + } + } + } + , + a.ENTRIES = 2, + a.PREV_TIME = -2, + a.PREV_ROTATION = -1, + a.ROTATION = 1, + a + } + )(a); + t.RotateTimeline = o; + var l = (function(i) { + function a(e) { + var n = i.call(this, e) || this; + return n.frames = t.Utils.newFloatArray(e * a.ENTRIES), + n + } + return s(a, i), + a.prototype.getPropertyId = function() { + return (n.translate << 24) + this.boneIndex + } + , + a.prototype.setFrame = function(t, e, i, n) { + t *= a.ENTRIES, + this.frames[t] = e, + this.frames[t + a.X] = i, + this.frames[t + a.Y] = n + } + , + a.prototype.apply = function(t, i, n, s, o, l) { + var h = this.frames + , c = t.bones[this.boneIndex]; + if (c.active) + if (n < h[0]) + switch (l) { + case e.setup: + return c.x = c.data.x, + void (c.y = c.data.y); + case e.first: + c.x += (c.data.x - c.x) * o, + c.y += (c.data.y - c.y) * o + } + else { + var u = 0 + , _ = 0; + if (n >= h[h.length - a.ENTRIES]) + u = h[h.length + a.PREV_X], + _ = h[h.length + a.PREV_Y]; + else { + var f = r.binarySearch(h, n, a.ENTRIES); + u = h[f + a.PREV_X], + _ = h[f + a.PREV_Y]; + var d = h[f] + , p = this.getCurvePercent(f / a.ENTRIES - 1, 1 - (n - d) / (h[f + a.PREV_TIME] - d)); + u += (h[f + a.X] - u) * p, + _ += (h[f + a.Y] - _) * p + } + switch (l) { + case e.setup: + c.x = c.data.x + u * o, + c.y = c.data.y + _ * o; + break; + case e.first: + case e.replace: + c.x += (c.data.x + u - c.x) * o, + c.y += (c.data.y + _ - c.y) * o; + break; + case e.add: + c.x += u * o, + c.y += _ * o + } + } + } + , + a.ENTRIES = 3, + a.PREV_TIME = -3, + a.PREV_X = -2, + a.PREV_Y = -1, + a.X = 1, + a.Y = 2, + a + } + )(a); + t.TranslateTimeline = l; + var h = (function(a) { + function o(t) { + return a.call(this, t) || this + } + return s(o, a), + o.prototype.getPropertyId = function() { + return (n.scale << 24) + this.boneIndex + } + , + o.prototype.apply = function(n, s, a, l, h, c, u) { + var _ = this.frames + , f = n.bones[this.boneIndex]; + if (f.active) + if (a < _[0]) + switch (c) { + case e.setup: + return f.scaleX = f.data.scaleX, + void (f.scaleY = f.data.scaleY); + case e.first: + f.scaleX += (f.data.scaleX - f.scaleX) * h, + f.scaleY += (f.data.scaleY - f.scaleY) * h + } + else { + var d = 0 + , p = 0; + if (a >= _[_.length - o.ENTRIES]) + d = _[_.length + o.PREV_X] * f.data.scaleX, + p = _[_.length + o.PREV_Y] * f.data.scaleY; + else { + var m = r.binarySearch(_, a, o.ENTRIES); + d = _[m + o.PREV_X], + p = _[m + o.PREV_Y]; + var y = _[m] + , v = this.getCurvePercent(m / o.ENTRIES - 1, 1 - (a - y) / (_[m + o.PREV_TIME] - y)); + d = (d + (_[m + o.X] - d) * v) * f.data.scaleX, + p = (p + (_[m + o.Y] - p) * v) * f.data.scaleY + } + if (1 == h) + c == e.add ? (f.scaleX += d - f.data.scaleX, + f.scaleY += p - f.data.scaleY) : (f.scaleX = d, + f.scaleY = p); + else { + var g = 0 + , A = 0; + if (u == i.mixOut) + switch (c) { + case e.setup: + g = f.data.scaleX, + A = f.data.scaleY, + f.scaleX = g + (Math.abs(d) * t.MathUtils.signum(g) - g) * h, + f.scaleY = A + (Math.abs(p) * t.MathUtils.signum(A) - A) * h; + break; + case e.first: + case e.replace: + g = f.scaleX, + A = f.scaleY, + f.scaleX = g + (Math.abs(d) * t.MathUtils.signum(g) - g) * h, + f.scaleY = A + (Math.abs(p) * t.MathUtils.signum(A) - A) * h; + break; + case e.add: + g = f.scaleX, + A = f.scaleY, + f.scaleX = g + (Math.abs(d) * t.MathUtils.signum(g) - f.data.scaleX) * h, + f.scaleY = A + (Math.abs(p) * t.MathUtils.signum(A) - f.data.scaleY) * h + } + else + switch (c) { + case e.setup: + g = Math.abs(f.data.scaleX) * t.MathUtils.signum(d), + A = Math.abs(f.data.scaleY) * t.MathUtils.signum(p), + f.scaleX = g + (d - g) * h, + f.scaleY = A + (p - A) * h; + break; + case e.first: + case e.replace: + g = Math.abs(f.scaleX) * t.MathUtils.signum(d), + A = Math.abs(f.scaleY) * t.MathUtils.signum(p), + f.scaleX = g + (d - g) * h, + f.scaleY = A + (p - A) * h; + break; + case e.add: + g = t.MathUtils.signum(d), + A = t.MathUtils.signum(p), + f.scaleX = Math.abs(f.scaleX) * g + (d - Math.abs(f.data.scaleX) * g) * h, + f.scaleY = Math.abs(f.scaleY) * A + (p - Math.abs(f.data.scaleY) * A) * h + } + } + } + } + , + o + } + )(l); + t.ScaleTimeline = h; + var c = (function(t) { + function i(e) { + return t.call(this, e) || this + } + return s(i, t), + i.prototype.getPropertyId = function() { + return (n.shear << 24) + this.boneIndex + } + , + i.prototype.apply = function(t, n, s, a, o, l) { + var h = this.frames + , c = t.bones[this.boneIndex]; + if (c.active) + if (s < h[0]) + switch (l) { + case e.setup: + return c.shearX = c.data.shearX, + void (c.shearY = c.data.shearY); + case e.first: + c.shearX += (c.data.shearX - c.shearX) * o, + c.shearY += (c.data.shearY - c.shearY) * o + } + else { + var u = 0 + , _ = 0; + if (s >= h[h.length - i.ENTRIES]) + u = h[h.length + i.PREV_X], + _ = h[h.length + i.PREV_Y]; + else { + var f = r.binarySearch(h, s, i.ENTRIES); + u = h[f + i.PREV_X], + _ = h[f + i.PREV_Y]; + var d = h[f] + , p = this.getCurvePercent(f / i.ENTRIES - 1, 1 - (s - d) / (h[f + i.PREV_TIME] - d)); + u += (h[f + i.X] - u) * p, + _ += (h[f + i.Y] - _) * p + } + switch (l) { + case e.setup: + c.shearX = c.data.shearX + u * o, + c.shearY = c.data.shearY + _ * o; + break; + case e.first: + case e.replace: + c.shearX += (c.data.shearX + u - c.shearX) * o, + c.shearY += (c.data.shearY + _ - c.shearY) * o; + break; + case e.add: + c.shearX += u * o, + c.shearY += _ * o + } + } + } + , + i + } + )(l); + t.ShearTimeline = c; + var u = (function(i) { + function a(e) { + var n = i.call(this, e) || this; + return n.frames = t.Utils.newFloatArray(e * a.ENTRIES), + n + } + return s(a, i), + a.prototype.getPropertyId = function() { + return (n.color << 24) + this.slotIndex + } + , + a.prototype.setFrame = function(t, e, i, n, r, s) { + t *= a.ENTRIES, + this.frames[t] = e, + this.frames[t + a.R] = i, + this.frames[t + a.G] = n, + this.frames[t + a.B] = r, + this.frames[t + a.A] = s + } + , + a.prototype.apply = function(t, i, n, s, o, l) { + var h = t.slots[this.slotIndex]; + if (h.bone.active) { + var c = this.frames; + if (n < c[0]) + switch (l) { + case e.setup: + return void h.color.setFromColor(h.data.color); + case e.first: + var u = h.color + , _ = h.data.color; + u.add((_.r - u.r) * o, (_.g - u.g) * o, (_.b - u.b) * o, (_.a - u.a) * o) + } + else { + var f = 0 + , d = 0 + , p = 0 + , m = 0; + if (n >= c[c.length - a.ENTRIES]) { + var y = c.length; + f = c[y + a.PREV_R], + d = c[y + a.PREV_G], + p = c[y + a.PREV_B], + m = c[y + a.PREV_A] + } else { + var v = r.binarySearch(c, n, a.ENTRIES); + f = c[v + a.PREV_R], + d = c[v + a.PREV_G], + p = c[v + a.PREV_B], + m = c[v + a.PREV_A]; + var g = c[v] + , A = this.getCurvePercent(v / a.ENTRIES - 1, 1 - (n - g) / (c[v + a.PREV_TIME] - g)); + f += (c[v + a.R] - f) * A, + d += (c[v + a.G] - d) * A, + p += (c[v + a.B] - p) * A, + m += (c[v + a.A] - m) * A + } + 1 == o ? h.color.set(f, d, p, m) : (u = h.color, + l == e.setup && u.setFromColor(h.data.color), + u.add((f - u.r) * o, (d - u.g) * o, (p - u.b) * o, (m - u.a) * o)) + } + } + } + , + a.ENTRIES = 5, + a.PREV_TIME = -5, + a.PREV_R = -4, + a.PREV_G = -3, + a.PREV_B = -2, + a.PREV_A = -1, + a.R = 1, + a.G = 2, + a.B = 3, + a.A = 4, + a + } + )(a); + t.ColorTimeline = u; + var _ = (function(i) { + function a(e) { + var n = i.call(this, e) || this; + return n.frames = t.Utils.newFloatArray(e * a.ENTRIES), + n + } + return s(a, i), + a.prototype.getPropertyId = function() { + return (n.twoColor << 24) + this.slotIndex + } + , + a.prototype.setFrame = function(t, e, i, n, r, s, o, l, h) { + t *= a.ENTRIES, + this.frames[t] = e, + this.frames[t + a.R] = i, + this.frames[t + a.G] = n, + this.frames[t + a.B] = r, + this.frames[t + a.A] = s, + this.frames[t + a.R2] = o, + this.frames[t + a.G2] = l, + this.frames[t + a.B2] = h + } + , + a.prototype.apply = function(t, i, n, s, o, l) { + var h = t.slots[this.slotIndex]; + if (h.bone.active) { + var c = this.frames; + if (n < c[0]) + switch (l) { + case e.setup: + return h.color.setFromColor(h.data.color), + void h.darkColor.setFromColor(h.data.darkColor); + case e.first: + var u = h.color + , _ = h.darkColor + , f = h.data.color + , d = h.data.darkColor; + u.add((f.r - u.r) * o, (f.g - u.g) * o, (f.b - u.b) * o, (f.a - u.a) * o), + _.add((d.r - _.r) * o, (d.g - _.g) * o, (d.b - _.b) * o, 0) + } + else { + var p = 0 + , m = 0 + , y = 0 + , v = 0 + , g = 0 + , A = 0 + , x = 0; + if (n >= c[c.length - a.ENTRIES]) { + var b = c.length; + p = c[b + a.PREV_R], + m = c[b + a.PREV_G], + y = c[b + a.PREV_B], + v = c[b + a.PREV_A], + g = c[b + a.PREV_R2], + A = c[b + a.PREV_G2], + x = c[b + a.PREV_B2] + } else { + var C = r.binarySearch(c, n, a.ENTRIES); + p = c[C + a.PREV_R], + m = c[C + a.PREV_G], + y = c[C + a.PREV_B], + v = c[C + a.PREV_A], + g = c[C + a.PREV_R2], + A = c[C + a.PREV_G2], + x = c[C + a.PREV_B2]; + var T = c[C] + , S = this.getCurvePercent(C / a.ENTRIES - 1, 1 - (n - T) / (c[C + a.PREV_TIME] - T)); + p += (c[C + a.R] - p) * S, + m += (c[C + a.G] - m) * S, + y += (c[C + a.B] - y) * S, + v += (c[C + a.A] - v) * S, + g += (c[C + a.R2] - g) * S, + A += (c[C + a.G2] - A) * S, + x += (c[C + a.B2] - x) * S + } + 1 == o ? (h.color.set(p, m, y, v), + h.darkColor.set(g, A, x, 1)) : (u = h.color, + _ = h.darkColor, + l == e.setup && (u.setFromColor(h.data.color), + _.setFromColor(h.data.darkColor)), + u.add((p - u.r) * o, (m - u.g) * o, (y - u.b) * o, (v - u.a) * o), + _.add((g - _.r) * o, (A - _.g) * o, (x - _.b) * o, 0)) + } + } + } + , + a.ENTRIES = 8, + a.PREV_TIME = -8, + a.PREV_R = -7, + a.PREV_G = -6, + a.PREV_B = -5, + a.PREV_A = -4, + a.PREV_R2 = -3, + a.PREV_G2 = -2, + a.PREV_B2 = -1, + a.R = 1, + a.G = 2, + a.B = 3, + a.A = 4, + a.R2 = 5, + a.G2 = 6, + a.B2 = 7, + a + } + )(a); + t.TwoColorTimeline = _; + var f = (function() { + function s(e) { + this.frames = t.Utils.newFloatArray(e), + this.attachmentNames = new Array(e) + } + return s.prototype.getPropertyId = function() { + return (n.attachment << 24) + this.slotIndex + } + , + s.prototype.getFrameCount = function() { + return this.frames.length + } + , + s.prototype.setFrame = function(t, e, i) { + this.frames[t] = e, + this.attachmentNames[t] = i + } + , + s.prototype.apply = function(t, n, s, a, o, l, h) { + var c = t.slots[this.slotIndex]; + if (c.bone.active) + if (h != i.mixOut || l != e.setup) { + var u = this.frames; + if (s < u[0]) { + if (l == e.setup || l == e.first) { + var _ = c.data.attachmentName; + c.setAttachment(null == _ ? null : t.getAttachment(this.slotIndex, _)) + } + } else { + var f; + f = s >= u[u.length - 1] ? u.length - 1 : r.binarySearch(u, s, 1) - 1; + var d = this.attachmentNames[f]; + t.slots[this.slotIndex].setAttachment(null == d ? null : t.getAttachment(this.slotIndex, d)) + } + } else { + var p = c.data.attachmentName; + c.setAttachment(null == p ? null : t.getAttachment(this.slotIndex, p)) + } + } + , + s + } + )(); + t.AttachmentTimeline = f; + var d = null + , p = (function(i) { + function a(e) { + var n = i.call(this, e) || this; + return n.frames = t.Utils.newFloatArray(e), + n.frameVertices = new Array(e), + null == d && (d = t.Utils.newFloatArray(64)), + n + } + return s(a, i), + a.prototype.getPropertyId = function() { + return (n.deform << 27) + +this.attachment.id + this.slotIndex + } + , + a.prototype.setFrame = function(t, e, i) { + this.frames[t] = e, + this.frameVertices[t] = i + } + , + a.prototype.apply = function(i, n, s, a, o, l) { + var h = i.slots[this.slotIndex]; + if (h.bone.active) { + var c = h.getAttachment(); + if (c instanceof t.VertexAttachment && c.deformAttachment == this.attachment) { + var u = h.deform; + 0 == u.length && (l = e.setup); + var _ = this.frameVertices + , f = _[0].length + , d = this.frames; + if (s < d[0]) { + var p = c; + switch (l) { + case e.setup: + return void (u.length = 0); + case e.first: + if (1 == o) { + u.length = 0; + break + } + var m = t.Utils.setArraySize(u, f); + if (null == p.bones) + for (var y = p.vertices, v = 0; v < f; v++) + m[v] += (y[v] - m[v]) * o; + else + for (o = 1 - o, + v = 0; v < f; v++) + m[v] *= o + } + } else { + var g = t.Utils.setArraySize(u, f); + if (s >= d[d.length - 1]) { + var A = _[d.length - 1]; + if (1 == o) + if (l == e.add) + if (null == (p = c).bones) { + y = p.vertices; + for (var x = 0; x < f; x++) + g[x] += A[x] - y[x] + } else + for (var b = 0; b < f; b++) + g[b] += A[b]; + else + t.Utils.arrayCopy(A, 0, g, 0, f); + else + switch (l) { + case e.setup: + var C = c; + if (null == C.bones) { + y = C.vertices; + for (var T = 0; T < f; T++) { + var S = y[T]; + g[T] = S + (A[T] - S) * o + } + } else + for (var w = 0; w < f; w++) + g[w] = A[w] * o; + break; + case e.first: + case e.replace: + for (var E = 0; E < f; E++) + g[E] += (A[E] - g[E]) * o; + case e.add: + if (null == (p = c).bones) { + y = p.vertices; + for (var M = 0; M < f; M++) + g[M] += (A[M] - y[M]) * o + } else + for (var D = 0; D < f; D++) + g[D] += A[D] * o + } + } else { + var B = r.binarySearch(d, s) + , I = _[B - 1] + , P = _[B] + , R = d[B] + , O = this.getCurvePercent(B - 1, 1 - (s - R) / (d[B - 1] - R)); + if (1 == o) + if (l == e.add) + if (null == (p = c).bones) { + y = p.vertices; + for (var L = 0; L < f; L++) { + var F = I[L]; + g[L] += F + (P[L] - F) * O - y[L] + } + } else + for (var V = 0; V < f; V++) + F = I[V], + g[V] += F + (P[V] - F) * O; + else + for (var N = 0; N < f; N++) + F = I[N], + g[N] = F + (P[N] - F) * O; + else + switch (l) { + case e.setup: + var k = c; + if (null == k.bones) { + y = k.vertices; + for (var G = 0; G < f; G++) + F = I[G], + S = y[G], + g[G] = S + (F + (P[G] - F) * O - S) * o + } else + for (var U = 0; U < f; U++) + F = I[U], + g[U] = (F + (P[U] - F) * O) * o; + break; + case e.first: + case e.replace: + for (var z = 0; z < f; z++) + F = I[z], + g[z] += (F + (P[z] - F) * O - g[z]) * o; + break; + case e.add: + if (null == (p = c).bones) { + y = p.vertices; + for (var H = 0; H < f; H++) + F = I[H], + g[H] += (F + (P[H] - F) * O - y[H]) * o + } else + for (var W = 0; W < f; W++) + F = I[W], + g[W] += (F + (P[W] - F) * O) * o + } + } + } + } + } + } + , + a + } + )(a); + t.DeformTimeline = p; + var m = (function() { + function e(e) { + this.frames = t.Utils.newFloatArray(e), + this.events = new Array(e) + } + return e.prototype.getPropertyId = function() { + return n.event << 24 + } + , + e.prototype.getFrameCount = function() { + return this.frames.length + } + , + e.prototype.setFrame = function(t, e) { + this.frames[t] = e.time, + this.events[t] = e + } + , + e.prototype.apply = function(t, e, i, n, s, a, o) { + if (null != n) { + var l = this.frames + , h = this.frames.length; + if (e > i) + this.apply(t, e, Number.MAX_VALUE, n, s, a, o), + e = -1; + else if (e >= l[h - 1]) + return; + if (!(i < l[0])) { + var c = 0; + if (e < l[0]) + c = 0; + else + for (var u = l[c = r.binarySearch(l, e)]; c > 0 && l[c - 1] == u; ) + c--; + for (; c < h && i >= l[c]; c++) + n.push(this.events[c]) + } + } + } + , + e + } + )(); + t.EventTimeline = m; + var y = (function() { + function s(e) { + this.frames = t.Utils.newFloatArray(e), + this.drawOrders = new Array(e) + } + return s.prototype.getPropertyId = function() { + return n.drawOrder << 24 + } + , + s.prototype.getFrameCount = function() { + return this.frames.length + } + , + s.prototype.setFrame = function(t, e, i) { + this.frames[t] = e, + this.drawOrders[t] = i + } + , + s.prototype.apply = function(n, s, a, o, l, h, c) { + var u = n.drawOrder + , _ = n.slots; + if (c != i.mixOut || h != e.setup) { + var f = this.frames; + if (a < f[0]) + h != e.setup && h != e.first || t.Utils.arrayCopy(n.slots, 0, n.drawOrder, 0, n.slots.length); + else { + var d; + d = a >= f[f.length - 1] ? f.length - 1 : r.binarySearch(f, a) - 1; + var p = this.drawOrders[d]; + if (null == p) + t.Utils.arrayCopy(_, 0, u, 0, _.length); + else + for (var m = 0, y = p.length; m < y; m++) + u[m] = _[p[m]] + } + } else + t.Utils.arrayCopy(n.slots, 0, n.drawOrder, 0, n.slots.length) + } + , + s + } + )(); + t.DrawOrderTimeline = y; + var v = (function(a) { + function o(e) { + var i = a.call(this, e) || this; + return i.frames = t.Utils.newFloatArray(e * o.ENTRIES), + i + } + return s(o, a), + o.prototype.getPropertyId = function() { + return (n.ikConstraint << 24) + this.ikConstraintIndex + } + , + o.prototype.setFrame = function(t, e, i, n, r, s, a) { + t *= o.ENTRIES, + this.frames[t] = e, + this.frames[t + o.MIX] = i, + this.frames[t + o.SOFTNESS] = n, + this.frames[t + o.BEND_DIRECTION] = r, + this.frames[t + o.COMPRESS] = s ? 1 : 0, + this.frames[t + o.STRETCH] = a ? 1 : 0 + } + , + o.prototype.apply = function(t, n, s, a, l, h, c) { + var u = this.frames + , _ = t.ikConstraints[this.ikConstraintIndex]; + if (_.active) + if (s < u[0]) + switch (h) { + case e.setup: + return _.mix = _.data.mix, + _.softness = _.data.softness, + _.bendDirection = _.data.bendDirection, + _.compress = _.data.compress, + void (_.stretch = _.data.stretch); + case e.first: + _.mix += (_.data.mix - _.mix) * l, + _.softness += (_.data.softness - _.softness) * l, + _.bendDirection = _.data.bendDirection, + _.compress = _.data.compress, + _.stretch = _.data.stretch + } + else if (s >= u[u.length - o.ENTRIES]) + h == e.setup ? (_.mix = _.data.mix + (u[u.length + o.PREV_MIX] - _.data.mix) * l, + _.softness = _.data.softness + (u[u.length + o.PREV_SOFTNESS] - _.data.softness) * l, + c == i.mixOut ? (_.bendDirection = _.data.bendDirection, + _.compress = _.data.compress, + _.stretch = _.data.stretch) : (_.bendDirection = u[u.length + o.PREV_BEND_DIRECTION], + _.compress = 0 != u[u.length + o.PREV_COMPRESS], + _.stretch = 0 != u[u.length + o.PREV_STRETCH])) : (_.mix += (u[u.length + o.PREV_MIX] - _.mix) * l, + _.softness += (u[u.length + o.PREV_SOFTNESS] - _.softness) * l, + c == i.mixIn && (_.bendDirection = u[u.length + o.PREV_BEND_DIRECTION], + _.compress = 0 != u[u.length + o.PREV_COMPRESS], + _.stretch = 0 != u[u.length + o.PREV_STRETCH])); + else { + var f = r.binarySearch(u, s, o.ENTRIES) + , d = u[f + o.PREV_MIX] + , p = u[f + o.PREV_SOFTNESS] + , m = u[f] + , y = this.getCurvePercent(f / o.ENTRIES - 1, 1 - (s - m) / (u[f + o.PREV_TIME] - m)); + h == e.setup ? (_.mix = _.data.mix + (d + (u[f + o.MIX] - d) * y - _.data.mix) * l, + _.softness = _.data.softness + (p + (u[f + o.SOFTNESS] - p) * y - _.data.softness) * l, + c == i.mixOut ? (_.bendDirection = _.data.bendDirection, + _.compress = _.data.compress, + _.stretch = _.data.stretch) : (_.bendDirection = u[f + o.PREV_BEND_DIRECTION], + _.compress = 0 != u[f + o.PREV_COMPRESS], + _.stretch = 0 != u[f + o.PREV_STRETCH])) : (_.mix += (d + (u[f + o.MIX] - d) * y - _.mix) * l, + _.softness += (p + (u[f + o.SOFTNESS] - p) * y - _.softness) * l, + c == i.mixIn && (_.bendDirection = u[f + o.PREV_BEND_DIRECTION], + _.compress = 0 != u[f + o.PREV_COMPRESS], + _.stretch = 0 != u[f + o.PREV_STRETCH])) + } + } + , + o.ENTRIES = 6, + o.PREV_TIME = -6, + o.PREV_MIX = -5, + o.PREV_SOFTNESS = -4, + o.PREV_BEND_DIRECTION = -3, + o.PREV_COMPRESS = -2, + o.PREV_STRETCH = -1, + o.MIX = 1, + o.SOFTNESS = 2, + o.BEND_DIRECTION = 3, + o.COMPRESS = 4, + o.STRETCH = 5, + o + } + )(a); + t.IkConstraintTimeline = v; + var g = (function(i) { + function a(e) { + var n = i.call(this, e) || this; + return n.frames = t.Utils.newFloatArray(e * a.ENTRIES), + n + } + return s(a, i), + a.prototype.getPropertyId = function() { + return (n.transformConstraint << 24) + this.transformConstraintIndex + } + , + a.prototype.setFrame = function(t, e, i, n, r, s) { + t *= a.ENTRIES, + this.frames[t] = e, + this.frames[t + a.ROTATE] = i, + this.frames[t + a.TRANSLATE] = n, + this.frames[t + a.SCALE] = r, + this.frames[t + a.SHEAR] = s + } + , + a.prototype.apply = function(t, i, n, s, o, l) { + var h = this.frames + , c = t.transformConstraints[this.transformConstraintIndex]; + if (c.active) + if (n < h[0]) { + var u = c.data; + switch (l) { + case e.setup: + return c.rotateMix = u.rotateMix, + c.translateMix = u.translateMix, + c.scaleMix = u.scaleMix, + void (c.shearMix = u.shearMix); + case e.first: + c.rotateMix += (u.rotateMix - c.rotateMix) * o, + c.translateMix += (u.translateMix - c.translateMix) * o, + c.scaleMix += (u.scaleMix - c.scaleMix) * o, + c.shearMix += (u.shearMix - c.shearMix) * o + } + } else { + var _ = 0 + , f = 0 + , d = 0 + , p = 0; + if (n >= h[h.length - a.ENTRIES]) { + var m = h.length; + _ = h[m + a.PREV_ROTATE], + f = h[m + a.PREV_TRANSLATE], + d = h[m + a.PREV_SCALE], + p = h[m + a.PREV_SHEAR] + } else { + var y = r.binarySearch(h, n, a.ENTRIES); + _ = h[y + a.PREV_ROTATE], + f = h[y + a.PREV_TRANSLATE], + d = h[y + a.PREV_SCALE], + p = h[y + a.PREV_SHEAR]; + var v = h[y] + , g = this.getCurvePercent(y / a.ENTRIES - 1, 1 - (n - v) / (h[y + a.PREV_TIME] - v)); + _ += (h[y + a.ROTATE] - _) * g, + f += (h[y + a.TRANSLATE] - f) * g, + d += (h[y + a.SCALE] - d) * g, + p += (h[y + a.SHEAR] - p) * g + } + l == e.setup ? (u = c.data, + c.rotateMix = u.rotateMix + (_ - u.rotateMix) * o, + c.translateMix = u.translateMix + (f - u.translateMix) * o, + c.scaleMix = u.scaleMix + (d - u.scaleMix) * o, + c.shearMix = u.shearMix + (p - u.shearMix) * o) : (c.rotateMix += (_ - c.rotateMix) * o, + c.translateMix += (f - c.translateMix) * o, + c.scaleMix += (d - c.scaleMix) * o, + c.shearMix += (p - c.shearMix) * o) + } + } + , + a.ENTRIES = 5, + a.PREV_TIME = -5, + a.PREV_ROTATE = -4, + a.PREV_TRANSLATE = -3, + a.PREV_SCALE = -2, + a.PREV_SHEAR = -1, + a.ROTATE = 1, + a.TRANSLATE = 2, + a.SCALE = 3, + a.SHEAR = 4, + a + } + )(a); + t.TransformConstraintTimeline = g; + var A = (function(i) { + function a(e) { + var n = i.call(this, e) || this; + return n.frames = t.Utils.newFloatArray(e * a.ENTRIES), + n + } + return s(a, i), + a.prototype.getPropertyId = function() { + return (n.pathConstraintPosition << 24) + this.pathConstraintIndex + } + , + a.prototype.setFrame = function(t, e, i) { + t *= a.ENTRIES, + this.frames[t] = e, + this.frames[t + a.VALUE] = i + } + , + a.prototype.apply = function(t, i, n, s, o, l) { + var h = this.frames + , c = t.pathConstraints[this.pathConstraintIndex]; + if (c.active) + if (n < h[0]) + switch (l) { + case e.setup: + return void (c.position = c.data.position); + case e.first: + c.position += (c.data.position - c.position) * o + } + else { + var u = 0; + if (n >= h[h.length - a.ENTRIES]) + u = h[h.length + a.PREV_VALUE]; + else { + var _ = r.binarySearch(h, n, a.ENTRIES); + u = h[_ + a.PREV_VALUE]; + var f = h[_] + , d = this.getCurvePercent(_ / a.ENTRIES - 1, 1 - (n - f) / (h[_ + a.PREV_TIME] - f)); + u += (h[_ + a.VALUE] - u) * d + } + l == e.setup ? c.position = c.data.position + (u - c.data.position) * o : c.position += (u - c.position) * o + } + } + , + a.ENTRIES = 2, + a.PREV_TIME = -2, + a.PREV_VALUE = -1, + a.VALUE = 1, + a + } + )(a); + t.PathConstraintPositionTimeline = A; + var x = (function(t) { + function i(e) { + return t.call(this, e) || this + } + return s(i, t), + i.prototype.getPropertyId = function() { + return (n.pathConstraintSpacing << 24) + this.pathConstraintIndex + } + , + i.prototype.apply = function(t, n, s, a, o, l) { + var h = this.frames + , c = t.pathConstraints[this.pathConstraintIndex]; + if (c.active) + if (s < h[0]) + switch (l) { + case e.setup: + return void (c.spacing = c.data.spacing); + case e.first: + c.spacing += (c.data.spacing - c.spacing) * o + } + else { + var u = 0; + if (s >= h[h.length - i.ENTRIES]) + u = h[h.length + i.PREV_VALUE]; + else { + var _ = r.binarySearch(h, s, i.ENTRIES); + u = h[_ + i.PREV_VALUE]; + var f = h[_] + , d = this.getCurvePercent(_ / i.ENTRIES - 1, 1 - (s - f) / (h[_ + i.PREV_TIME] - f)); + u += (h[_ + i.VALUE] - u) * d + } + l == e.setup ? c.spacing = c.data.spacing + (u - c.data.spacing) * o : c.spacing += (u - c.spacing) * o + } + } + , + i + } + )(A); + t.PathConstraintSpacingTimeline = x; + var b = (function(i) { + function a(e) { + var n = i.call(this, e) || this; + return n.frames = t.Utils.newFloatArray(e * a.ENTRIES), + n + } + return s(a, i), + a.prototype.getPropertyId = function() { + return (n.pathConstraintMix << 24) + this.pathConstraintIndex + } + , + a.prototype.setFrame = function(t, e, i, n) { + t *= a.ENTRIES, + this.frames[t] = e, + this.frames[t + a.ROTATE] = i, + this.frames[t + a.TRANSLATE] = n + } + , + a.prototype.apply = function(t, i, n, s, o, l) { + var h = this.frames + , c = t.pathConstraints[this.pathConstraintIndex]; + if (c.active) + if (n < h[0]) + switch (l) { + case e.setup: + return c.rotateMix = c.data.rotateMix, + void (c.translateMix = c.data.translateMix); + case e.first: + c.rotateMix += (c.data.rotateMix - c.rotateMix) * o, + c.translateMix += (c.data.translateMix - c.translateMix) * o + } + else { + var u = 0 + , _ = 0; + if (n >= h[h.length - a.ENTRIES]) + u = h[h.length + a.PREV_ROTATE], + _ = h[h.length + a.PREV_TRANSLATE]; + else { + var f = r.binarySearch(h, n, a.ENTRIES); + u = h[f + a.PREV_ROTATE], + _ = h[f + a.PREV_TRANSLATE]; + var d = h[f] + , p = this.getCurvePercent(f / a.ENTRIES - 1, 1 - (n - d) / (h[f + a.PREV_TIME] - d)); + u += (h[f + a.ROTATE] - u) * p, + _ += (h[f + a.TRANSLATE] - _) * p + } + l == e.setup ? (c.rotateMix = c.data.rotateMix + (u - c.data.rotateMix) * o, + c.translateMix = c.data.translateMix + (_ - c.data.translateMix) * o) : (c.rotateMix += (u - c.rotateMix) * o, + c.translateMix += (_ - c.translateMix) * o) + } + } + , + a.ENTRIES = 3, + a.PREV_TIME = -3, + a.PREV_ROTATE = -2, + a.PREV_TRANSLATE = -1, + a.ROTATE = 1, + a.TRANSLATE = 2, + a + } + )(a); + t.PathConstraintMixTimeline = b + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(e) { + this.tracks = new Array, + this.timeScale = 1, + this.events = new Array, + this.listeners = new Array, + this.queue = new r(this), + this.propertyIDs = new t.IntSet, + this.animationsChanged = !1, + this.trackEntryPool = new t.Pool(function() { + return new i + } + ), + this.data = e + } + return e.prototype.update = function(t) { + t *= this.timeScale; + for (var e = this.tracks, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (null != r) { + r.animationLast = r.nextAnimationLast, + r.trackLast = r.nextTrackLast; + var s = t * r.timeScale; + if (r.delay > 0) { + if (r.delay -= s, + r.delay > 0) + continue; + s = -r.delay, + r.delay = 0 + } + var a = r.next; + if (null != a) { + var o = r.trackLast - a.delay; + if (o >= 0) { + for (a.delay = 0, + a.trackTime += 0 == r.timeScale ? 0 : (o / r.timeScale + t) * a.timeScale, + r.trackTime += s, + this.setCurrent(i, a, !0); null != a.mixingFrom; ) + a.mixTime += t, + a = a.mixingFrom; + continue + } + } else if (r.trackLast >= r.trackEnd && null == r.mixingFrom) { + e[i] = null, + this.queue.end(r), + this.disposeNext(r); + continue + } + if (null != r.mixingFrom && this.updateMixingFrom(r, t)) { + var l = r.mixingFrom; + for (r.mixingFrom = null, + null != l && (l.mixingTo = null); null != l; ) + this.queue.end(l), + l = l.mixingFrom + } + r.trackTime += s + } + } + this.queue.drain() + } + , + e.prototype.updateMixingFrom = function(t, e) { + var i = t.mixingFrom; + if (null == i) + return !0; + var n = this.updateMixingFrom(i, e); + return i.animationLast = i.nextAnimationLast, + i.trackLast = i.nextTrackLast, + t.mixTime > 0 && t.mixTime >= t.mixDuration ? (0 != i.totalAlpha && 0 != t.mixDuration || (t.mixingFrom = i.mixingFrom, + null != i.mixingFrom && (i.mixingFrom.mixingTo = t), + t.interruptAlpha = i.interruptAlpha, + this.queue.end(i)), + n) : (i.trackTime += e * i.timeScale, + t.mixTime += e, + !1) + } + , + e.prototype.apply = function(i) { + if (null == i) + throw new Error("skeleton cannot be null."); + this.animationsChanged && this._animationsChanged(); + for (var n = this.events, r = this.tracks, s = !1, a = 0, o = r.length; a < o; a++) { + var l = r[a]; + if (!(null == l || l.delay > 0)) { + s = !0; + var h = 0 == a ? t.MixBlend.first : l.mixBlend + , c = l.alpha; + null != l.mixingFrom ? c *= this.applyMixingFrom(l, i, h) : l.trackTime >= l.trackEnd && null == l.next && (c = 0); + var u = l.animationLast + , _ = l.getAnimationTime() + , f = l.animation.timelines.length + , d = l.animation.timelines; + if (0 == a && 1 == c || h == t.MixBlend.add) + for (var p = 0; p < f; p++) + t.Utils.webkit602BugfixHelper(c, h), + d[p].apply(i, u, _, n, c, h, t.MixDirection.mixIn); + else { + var m = l.timelineMode + , y = 0 == l.timelinesRotation.length; + y && t.Utils.setArraySize(l.timelinesRotation, f << 1, null); + var v = l.timelinesRotation; + for (p = 0; p < f; p++) { + var g = d[p] + , A = (m[p] & e.NOT_LAST - 1) == e.SUBSEQUENT ? h : t.MixBlend.setup; + g instanceof t.RotateTimeline ? this.applyRotateTimeline(g, i, _, c, A, v, p << 1, y) : (t.Utils.webkit602BugfixHelper(c, h), + g.apply(i, u, _, n, c, A, t.MixDirection.mixIn)) + } + } + this.queueEvents(l, _), + n.length = 0, + l.nextAnimationLast = _, + l.nextTrackLast = l.trackTime + } + } + return this.queue.drain(), + s + } + , + e.prototype.applyMixingFrom = function(i, n, r) { + var s = i.mixingFrom; + null != s.mixingFrom && this.applyMixingFrom(s, n, r); + var a = 0; + 0 == i.mixDuration ? (a = 1, + r == t.MixBlend.first && (r = t.MixBlend.setup)) : ((a = i.mixTime / i.mixDuration) > 1 && (a = 1), + r != t.MixBlend.first && (r = s.mixBlend)); + var o = a < s.eventThreshold ? this.events : null + , l = a < s.attachmentThreshold + , h = a < s.drawOrderThreshold + , c = s.animationLast + , u = s.getAnimationTime() + , _ = s.animation.timelines.length + , f = s.animation.timelines + , d = s.alpha * i.interruptAlpha + , p = d * (1 - a); + if (r == t.MixBlend.add) + for (var m = 0; m < _; m++) + f[m].apply(n, c, u, o, p, r, t.MixDirection.mixOut); + else { + var y = s.timelineMode + , v = s.timelineHoldMix + , g = 0 == s.timelinesRotation.length; + g && t.Utils.setArraySize(s.timelinesRotation, _ << 1, null); + var A = s.timelinesRotation; + for (s.totalAlpha = 0, + m = 0; m < _; m++) { + var x = f[m] + , b = t.MixDirection.mixOut + , C = void 0 + , T = 0; + switch (y[m] & e.NOT_LAST - 1) { + case e.SUBSEQUENT: + if (C = r, + !l && x instanceof t.AttachmentTimeline) { + if ((y[m] & e.NOT_LAST) == e.NOT_LAST) + continue; + C = t.MixBlend.setup + } + if (!h && x instanceof t.DrawOrderTimeline) + continue; + T = p; + break; + case e.FIRST: + C = t.MixBlend.setup, + T = p; + break; + case e.HOLD: + C = t.MixBlend.setup, + T = d; + break; + default: + C = t.MixBlend.setup; + var S = v[m]; + T = d * Math.max(0, 1 - S.mixTime / S.mixDuration) + } + s.totalAlpha += T, + x instanceof t.RotateTimeline ? this.applyRotateTimeline(x, n, u, T, C, A, m << 1, g) : (t.Utils.webkit602BugfixHelper(T, r), + C == t.MixBlend.setup && (x instanceof t.AttachmentTimeline ? (l || (y[m] & e.NOT_LAST) == e.NOT_LAST) && (b = t.MixDirection.mixIn) : x instanceof t.DrawOrderTimeline && h && (b = t.MixDirection.mixIn)), + x.apply(n, c, u, o, T, C, b)) + } + } + return i.mixDuration > 0 && this.queueEvents(s, u), + this.events.length = 0, + s.nextAnimationLast = u, + s.nextTrackLast = s.trackTime, + a + } + , + e.prototype.applyRotateTimeline = function(e, i, n, r, s, a, o, l) { + if (l && (a[o] = 0), + 1 != r) { + var h = e + , c = h.frames + , u = i.bones[h.boneIndex]; + if (u.active) { + var _ = 0 + , f = 0; + if (n < c[0]) + switch (s) { + case t.MixBlend.setup: + u.rotation = u.data.rotation; + default: + return; + case t.MixBlend.first: + _ = u.rotation, + f = u.data.rotation + } + else if (_ = s == t.MixBlend.setup ? u.data.rotation : u.rotation, + n >= c[c.length - t.RotateTimeline.ENTRIES]) + f = u.data.rotation + c[c.length + t.RotateTimeline.PREV_ROTATION]; + else { + var d = t.Animation.binarySearch(c, n, t.RotateTimeline.ENTRIES) + , p = c[d + t.RotateTimeline.PREV_ROTATION] + , m = c[d] + , y = h.getCurvePercent((d >> 1) - 1, 1 - (n - m) / (c[d + t.RotateTimeline.PREV_TIME] - m)); + f = c[d + t.RotateTimeline.ROTATION] - p, + f = p + (f -= 360 * (16384 - (16384.499999999996 - f / 360 | 0))) * y + u.data.rotation, + f -= 360 * (16384 - (16384.499999999996 - f / 360 | 0)) + } + var v = 0 + , g = f - _; + if (0 == (g -= 360 * (16384 - (16384.499999999996 - g / 360 | 0)))) + v = a[o]; + else { + var A = 0 + , x = 0; + l ? (A = 0, + x = g) : (A = a[o], + x = a[o + 1]); + var b = g > 0 + , C = A >= 0; + t.MathUtils.signum(x) != t.MathUtils.signum(g) && Math.abs(x) <= 90 && (Math.abs(A) > 180 && (A += 360 * t.MathUtils.signum(A)), + C = b), + v = g + A - A % 360, + C != b && (v += 360 * t.MathUtils.signum(A)), + a[o] = v + } + a[o + 1] = g, + _ += v * r, + u.rotation = _ - 360 * (16384 - (16384.499999999996 - _ / 360 | 0)) + } + } else + e.apply(i, 0, n, null, 1, s, t.MixDirection.mixIn) + } + , + e.prototype.queueEvents = function(t, e) { + for (var i = t.animationStart, n = t.animationEnd, r = n - i, s = t.trackLast % r, a = this.events, o = 0, l = a.length; o < l; o++) { + var h = a[o]; + if (h.time < s) + break; + h.time > n || this.queue.event(t, h) + } + for ((t.loop ? 0 == r || s > t.trackTime % r : e >= n && t.animationLast < n) && this.queue.complete(t); o < l; o++) + a[o].time < i || this.queue.event(t, a[o]) + } + , + e.prototype.clearTracks = function() { + var t = this.queue.drainDisabled; + this.queue.drainDisabled = !0; + for (var e = 0, i = this.tracks.length; e < i; e++) + this.clearTrack(e); + this.tracks.length = 0, + this.queue.drainDisabled = t, + this.queue.drain() + } + , + e.prototype.clearTrack = function(t) { + if (!(t >= this.tracks.length)) { + var e = this.tracks[t]; + if (null != e) { + this.queue.end(e), + this.disposeNext(e); + for (var i = e; ; ) { + var n = i.mixingFrom; + if (null == n) + break; + this.queue.end(n), + i.mixingFrom = null, + i.mixingTo = null, + i = n + } + this.tracks[e.trackIndex] = null, + this.queue.drain() + } + } + } + , + e.prototype.setCurrent = function(t, e, i) { + var n = this.expandToIndex(t); + this.tracks[t] = e, + null != n && (i && this.queue.interrupt(n), + e.mixingFrom = n, + n.mixingTo = e, + e.mixTime = 0, + null != n.mixingFrom && n.mixDuration > 0 && (e.interruptAlpha *= Math.min(1, n.mixTime / n.mixDuration)), + n.timelinesRotation.length = 0), + this.queue.start(e) + } + , + e.prototype.setAnimation = function(t, e, i) { + var n = this.data.skeletonData.findAnimation(e); + if (null == n) + throw new Error("Animation not found: " + e); + return this.setAnimationWith(t, n, i) + } + , + e.prototype.setAnimationWith = function(t, e, i) { + if (null == e) + throw new Error("animation cannot be null."); + var n = !0 + , r = this.expandToIndex(t); + null != r && (-1 == r.nextTrackLast ? (this.tracks[t] = r.mixingFrom, + this.queue.interrupt(r), + this.queue.end(r), + this.disposeNext(r), + r = r.mixingFrom, + n = !1) : this.disposeNext(r)); + var s = this.trackEntry(t, e, i, r); + return this.setCurrent(t, s, n), + this.queue.drain(), + s + } + , + e.prototype.addAnimation = function(t, e, i, n) { + var r = this.data.skeletonData.findAnimation(e); + if (null == r) + throw new Error("Animation not found: " + e); + return this.addAnimationWith(t, r, i, n) + } + , + e.prototype.addAnimationWith = function(t, e, i, n) { + if (null == e) + throw new Error("animation cannot be null."); + var r = this.expandToIndex(t); + if (null != r) + for (; null != r.next; ) + r = r.next; + var s = this.trackEntry(t, e, i, r); + if (null == r) + this.setCurrent(t, s, !0), + this.queue.drain(); + else if (r.next = s, + n <= 0) { + var a = r.animationEnd - r.animationStart; + 0 != a ? (r.loop ? n += a * (1 + (r.trackTime / a | 0)) : n += Math.max(a, r.trackTime), + n -= this.data.getMix(r.animation, e)) : n = r.trackTime + } + return s.delay = n, + s + } + , + e.prototype.setEmptyAnimation = function(t, i) { + var n = this.setAnimationWith(t, e.emptyAnimation, !1); + return n.mixDuration = i, + n.trackEnd = i, + n + } + , + e.prototype.addEmptyAnimation = function(t, i, n) { + n <= 0 && (n -= i); + var r = this.addAnimationWith(t, e.emptyAnimation, !1, n); + return r.mixDuration = i, + r.trackEnd = i, + r + } + , + e.prototype.setEmptyAnimations = function(t) { + var e = this.queue.drainDisabled; + this.queue.drainDisabled = !0; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var r = this.tracks[i]; + null != r && this.setEmptyAnimation(r.trackIndex, t) + } + this.queue.drainDisabled = e, + this.queue.drain() + } + , + e.prototype.expandToIndex = function(e) { + return e < this.tracks.length ? this.tracks[e] : (t.Utils.ensureArrayCapacity(this.tracks, e + 1, null), + this.tracks.length = e + 1, + null) + } + , + e.prototype.trackEntry = function(t, e, i, n) { + var r = this.trackEntryPool.obtain(); + return r.trackIndex = t, + r.animation = e, + r.loop = i, + r.holdPrevious = !1, + r.eventThreshold = 0, + r.attachmentThreshold = 0, + r.drawOrderThreshold = 0, + r.animationStart = 0, + r.animationEnd = e.duration, + r.animationLast = -1, + r.nextAnimationLast = -1, + r.delay = 0, + r.trackTime = 0, + r.trackLast = -1, + r.nextTrackLast = -1, + r.trackEnd = Number.MAX_VALUE, + r.timeScale = 1, + r.alpha = 1, + r.interruptAlpha = 1, + r.mixTime = 0, + r.mixDuration = null == n ? 0 : this.data.getMix(n.animation, e), + r + } + , + e.prototype.disposeNext = function(t) { + for (var e = t.next; null != e; ) + this.queue.dispose(e), + e = e.next; + t.next = null + } + , + e.prototype._animationsChanged = function() { + this.animationsChanged = !1, + this.propertyIDs.clear(); + for (var e = 0, i = this.tracks.length; e < i; e++) + if (null != (n = this.tracks[e])) { + for (; null != n.mixingFrom; ) + n = n.mixingFrom; + do { + null != n.mixingFrom && n.mixBlend == t.MixBlend.add || this.computeHold(n), + n = n.mixingTo + } while (null != n) + } + for (this.propertyIDs.clear(), + e = this.tracks.length - 1; e >= 0; e--) + for (var n = this.tracks[e]; null != n; ) + this.computeNotLast(n), + n = n.mixingFrom + } + , + e.prototype.computeHold = function(i) { + var n = i.mixingTo + , r = i.animation.timelines + , s = i.animation.timelines.length + , a = t.Utils.setArraySize(i.timelineMode, s); + i.timelineHoldMix.length = 0; + var o = t.Utils.setArraySize(i.timelineHoldMix, s) + , l = this.propertyIDs; + if (null != n && n.holdPrevious) + for (var h = 0; h < s; h++) + l.add(r[h].getPropertyId()), + a[h] = e.HOLD; + else + t: for (h = 0; h < s; h++) { + var c = r[h] + , u = c.getPropertyId(); + if (l.add(u)) + if (null == n || c instanceof t.AttachmentTimeline || c instanceof t.DrawOrderTimeline || c instanceof t.EventTimeline || !n.animation.hasTimeline(u)) + a[h] = e.FIRST; + else { + for (var _ = n.mixingTo; null != _; _ = _.mixingTo) + if (!_.animation.hasTimeline(u)) { + if (i.mixDuration > 0) { + a[h] = e.HOLD_MIX, + o[h] = _; + continue t + } + break + } + a[h] = e.HOLD + } + else + a[h] = e.SUBSEQUENT + } + } + , + e.prototype.computeNotLast = function(i) { + for (var n = i.animation.timelines, r = i.animation.timelines.length, s = i.timelineMode, a = this.propertyIDs, o = 0; o < r; o++) + if (n[o]instanceof t.AttachmentTimeline) { + var l = n[o]; + a.add(l.slotIndex) || (s[o] |= e.NOT_LAST) + } + } + , + e.prototype.getCurrent = function(t) { + return t >= this.tracks.length ? null : this.tracks[t] + } + , + e.prototype.addListener = function(t) { + if (null == t) + throw new Error("listener cannot be null."); + this.listeners.push(t) + } + , + e.prototype.removeListener = function(t) { + var e = this.listeners.indexOf(t); + e >= 0 && this.listeners.splice(e, 1) + } + , + e.prototype.clearListeners = function() { + this.listeners.length = 0 + } + , + e.prototype.clearListenerNotifications = function() { + this.queue.clear() + } + , + e.emptyAnimation = new t.Animation("",[],0), + e.SUBSEQUENT = 0, + e.FIRST = 1, + e.HOLD = 2, + e.HOLD_MIX = 3, + e.NOT_LAST = 4, + e + } + )(); + t.AnimationState = e; + var i = (function() { + function e() { + this.mixBlend = t.MixBlend.replace, + this.timelineMode = new Array, + this.timelineHoldMix = new Array, + this.timelinesRotation = new Array + } + return e.prototype.reset = function() { + this.next = null, + this.mixingFrom = null, + this.mixingTo = null, + this.animation = null, + this.listener = null, + this.timelineMode.length = 0, + this.timelineHoldMix.length = 0, + this.timelinesRotation.length = 0 + } + , + e.prototype.getAnimationTime = function() { + if (this.loop) { + var t = this.animationEnd - this.animationStart; + return 0 == t ? this.animationStart : this.trackTime % t + this.animationStart + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd) + } + , + e.prototype.setAnimationLast = function(t) { + this.animationLast = t, + this.nextAnimationLast = t + } + , + e.prototype.isComplete = function() { + return this.trackTime >= this.animationEnd - this.animationStart + } + , + e.prototype.resetRotationDirections = function() { + this.timelinesRotation.length = 0 + } + , + e + } + )(); + t.TrackEntry = i; + var n, r = (function() { + function t(t) { + this.objects = [], + this.drainDisabled = !1, + this.animState = t + } + return t.prototype.start = function(t) { + this.objects.push(n.start), + this.objects.push(t), + this.animState.animationsChanged = !0 + } + , + t.prototype.interrupt = function(t) { + this.objects.push(n.interrupt), + this.objects.push(t) + } + , + t.prototype.end = function(t) { + this.objects.push(n.end), + this.objects.push(t), + this.animState.animationsChanged = !0 + } + , + t.prototype.dispose = function(t) { + this.objects.push(n.dispose), + this.objects.push(t) + } + , + t.prototype.complete = function(t) { + this.objects.push(n.complete), + this.objects.push(t) + } + , + t.prototype.event = function(t, e) { + this.objects.push(n.event), + this.objects.push(t), + this.objects.push(e) + } + , + t.prototype.drain = function() { + if (!this.drainDisabled) { + this.drainDisabled = !0; + for (var t = this.objects, e = this.animState.listeners, i = 0; i < t.length; i += 2) { + var r = t[i] + , s = t[i + 1]; + switch (r) { + case n.start: + null != s.listener && s.listener.start && s.listener.start(s); + for (var a = 0; a < e.length; a++) + e[a].start && e[a].start(s); + break; + case n.interrupt: + for (null != s.listener && s.listener.interrupt && s.listener.interrupt(s), + a = 0; a < e.length; a++) + e[a].interrupt && e[a].interrupt(s); + break; + case n.end: + for (null != s.listener && s.listener.end && s.listener.end(s), + a = 0; a < e.length; a++) + e[a].end && e[a].end(s); + case n.dispose: + for (null != s.listener && s.listener.dispose && s.listener.dispose(s), + a = 0; a < e.length; a++) + e[a].dispose && e[a].dispose(s); + this.animState.trackEntryPool.free(s); + break; + case n.complete: + for (null != s.listener && s.listener.complete && s.listener.complete(s), + a = 0; a < e.length; a++) + e[a].complete && e[a].complete(s); + break; + case n.event: + var o = t[2 + i++]; + for (null != s.listener && s.listener.event && s.listener.event(s, o), + a = 0; a < e.length; a++) + e[a].event && e[a].event(s, o) + } + } + this.clear(), + this.drainDisabled = !1 + } + } + , + t.prototype.clear = function() { + this.objects.length = 0 + } + , + t + } + )(); + t.EventQueue = r, + (function(t) { + t[t.start = 0] = "start", + t[t.interrupt = 1] = "interrupt", + t[t.end = 2] = "end", + t[t.dispose = 3] = "dispose", + t[t.complete = 4] = "complete", + t[t.event = 5] = "event" + } + )(n = t.EventType || (t.EventType = {})); + var s = (function() { + function t() {} + return t.prototype.start = function() {} + , + t.prototype.interrupt = function() {} + , + t.prototype.end = function() {} + , + t.prototype.dispose = function() {} + , + t.prototype.complete = function() {} + , + t.prototype.event = function() {} + , + t + } + )(); + t.AnimationStateAdapter = s + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function t(t) { + if (this.animationToMixTime = {}, + this.defaultMix = 0, + null == t) + throw new Error("skeletonData cannot be null."); + this.skeletonData = t + } + return t.prototype.setMix = function(t, e, i) { + var n = this.skeletonData.findAnimation(t); + if (null == n) + throw new Error("Animation not found: " + t); + var r = this.skeletonData.findAnimation(e); + if (null == r) + throw new Error("Animation not found: " + e); + this.setMixWith(n, r, i) + } + , + t.prototype.setMixWith = function(t, e, i) { + if (null == t) + throw new Error("from cannot be null."); + if (null == e) + throw new Error("to cannot be null."); + var n = t.name + "." + e.name; + this.animationToMixTime[n] = i + } + , + t.prototype.getMix = function(t, e) { + var i = t.name + "." + e.name + , n = this.animationToMixTime[i]; + return void 0 === n ? this.defaultMix : n + } + , + t + } + )(); + t.AnimationStateData = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(t, e) { + void 0 === e && (e = ""), + this.assets = {}, + this.errors = {}, + this.toLoad = 0, + this.loaded = 0, + this.textureLoader = t, + this.pathPrefix = e + } + return e.downloadText = function(t, e, i) { + var n = new XMLHttpRequest; + n.open("GET", t, !0), + n.onload = function() { + 200 == n.status ? e(n.responseText) : i(n.status, n.responseText) + } + , + n.onerror = function() { + i(n.status, n.responseText) + } + , + n.send() + } + , + e.downloadBinary = function(t, e, i) { + var n = new XMLHttpRequest; + n.open("GET", t, !0), + n.responseType = "arraybuffer", + n.onload = function() { + 200 == n.status ? e(new Uint8Array(n.response)) : i(n.status, n.responseText) + } + , + n.onerror = function() { + i(n.status, n.responseText) + } + , + n.send() + } + , + e.prototype.loadBinary = function(t, i, n) { + var r = this; + void 0 === i && (i = null), + void 0 === n && (n = null), + t = this.pathPrefix + t, + this.toLoad++, + e.downloadBinary(t, (function(e) { + r.assets[t] = e, + i && i(t, e), + r.toLoad--, + r.loaded++ + } + ), (function(e, i) { + r.errors[t] = "Couldn't load binary " + t + ": status " + status + ", " + i, + n && n(t, "Couldn't load binary " + t + ": status " + status + ", " + i), + r.toLoad--, + r.loaded++ + } + )) + } + , + e.prototype.loadText = function(t, i, n) { + var r = this; + void 0 === i && (i = null), + void 0 === n && (n = null), + t = this.pathPrefix + t, + this.toLoad++, + e.downloadText(t, (function(e) { + r.assets[t] = e, + i && i(t, e), + r.toLoad--, + r.loaded++ + } + ), (function(e, i) { + r.errors[t] = "Couldn't load text " + t + ": status " + status + ", " + i, + n && n(t, "Couldn't load text " + t + ": status " + status + ", " + i), + r.toLoad--, + r.loaded++ + } + )) + } + , + e.prototype.loadTexture = function(t, e, i) { + var n = this; + void 0 === e && (e = null), + void 0 === i && (i = null), + t = this.pathPrefix + t, + this.toLoad++; + var r = new Image; + r.crossOrigin = "anonymous", + r.onload = function() { + var i = n.textureLoader(r); + n.assets[t] = i, + n.toLoad--, + n.loaded++, + e && e(t, r) + } + , + r.onerror = function() { + n.errors[t] = "Couldn't load image " + t, + n.toLoad--, + n.loaded++, + i && i(t, "Couldn't load image " + t) + } + , + r.src = t + } + , + e.prototype.loadTextureData = function(t, e, i, n) { + var r = this; + void 0 === i && (i = null), + void 0 === n && (n = null), + t = this.pathPrefix + t, + this.toLoad++; + var s = new Image; + s.onload = function() { + var e = r.textureLoader(s); + r.assets[t] = e, + r.toLoad--, + r.loaded++, + i && i(t, s) + } + , + s.onerror = function() { + r.errors[t] = "Couldn't load image " + t, + r.toLoad--, + r.loaded++, + n && n(t, "Couldn't load image " + t) + } + , + s.src = e + } + , + e.prototype.loadTextureAtlas = function(i, n, r) { + var s = this; + void 0 === n && (n = null), + void 0 === r && (r = null); + var a = i.lastIndexOf("/") >= 0 ? i.substring(0, i.lastIndexOf("/")) : ""; + i = this.pathPrefix + i, + this.toLoad++, + e.downloadText(i, (function(e) { + var o = { + count: 0 + } + , l = new Array; + try { + new t.TextureAtlas(e,function(e) { + l.push(a + "/" + e); + var i = document.createElement("img"); + return i.width = 16, + i.height = 16, + new t.FakeTexture(i) + } + ) + } catch (f) { + var h = f; + return s.errors[i] = "Couldn't load texture atlas " + i + ": " + h.message, + r && r(i, "Couldn't load texture atlas " + i + ": " + h.message), + s.toLoad--, + void s.loaded++ + } + for (var c = function(h) { + var c = !1; + s.loadTexture(h, (function(h) { + if (o.count++, + o.count == l.length) + if (c) + s.errors[i] = "Couldn't load texture atlas page " + h + "} of atlas " + i, + r && r(i, "Couldn't load texture atlas page " + h + " of atlas " + i), + s.toLoad--, + s.loaded++; + else + try { + var u = new t.TextureAtlas(e,function(t) { + return s.get(a + "/" + t) + } + ); + s.assets[i] = u, + n && n(i, u), + s.toLoad--, + s.loaded++ + } catch (f) { + var _ = f; + s.errors[i] = "Couldn't load texture atlas " + i + ": " + _.message, + r && r(i, "Couldn't load texture atlas " + i + ": " + _.message), + s.toLoad--, + s.loaded++ + } + } + ), (function(t) { + c = !0, + o.count++, + o.count == l.length && (s.errors[i] = "Couldn't load texture atlas page " + t + "} of atlas " + i, + r && r(i, "Couldn't load texture atlas page " + t + " of atlas " + i), + s.toLoad--, + s.loaded++) + } + )) + }, u = 0, _ = l; u < _.length; u++) + c(_[u]) + } + ), (function(t, e) { + s.errors[i] = "Couldn't load texture atlas " + i + ": status " + status + ", " + e, + r && r(i, "Couldn't load texture atlas " + i + ": status " + status + ", " + e), + s.toLoad--, + s.loaded++ + } + )) + } + , + e.prototype.get = function(t) { + return t = this.pathPrefix + t, + this.assets[t] + } + , + e.prototype.remove = function(t) { + t = this.pathPrefix + t; + var e = this.assets[t]; + e.dispose && e.dispose(), + this.assets[t] = null + } + , + e.prototype.removeAll = function() { + for (var t in this.assets) { + var e = this.assets[t]; + e.dispose && e.dispose() + } + this.assets = {} + } + , + e.prototype.isLoadingComplete = function() { + return 0 == this.toLoad + } + , + e.prototype.getToLoad = function() { + return this.toLoad + } + , + e.prototype.getLoaded = function() { + return this.loaded + } + , + e.prototype.dispose = function() { + this.removeAll() + } + , + e.prototype.hasErrors = function() { + return Object.keys(this.errors).length > 0 + } + , + e.prototype.getErrors = function() { + return this.errors + } + , + e + } + )(); + t.AssetManager = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(t) { + this.atlas = t + } + return e.prototype.newRegionAttachment = function(e, i, n) { + var r = this.atlas.findRegion(n); + if (null == r) + return null; + r.renderObject = r; + var s = new t.RegionAttachment(i); + return s.setRegion(r), + s + } + , + e.prototype.newMeshAttachment = function(e, i, n) { + var r = this.atlas.findRegion(n); + if (null == r) + return null; + r.renderObject = r; + var s = new t.MeshAttachment(i); + return s.region = r, + s + } + , + e.prototype.newBoundingBoxAttachment = function(e, i) { + return new t.BoundingBoxAttachment(i) + } + , + e.prototype.newPathAttachment = function(e, i) { + return new t.PathAttachment(i) + } + , + e.prototype.newPointAttachment = function(e, i) { + return new t.PointAttachment(i) + } + , + e.prototype.newClippingAttachment = function(e, i) { + return new t.ClippingAttachment(i) + } + , + e + } + )(); + t.AtlasAttachmentLoader = e + } + )(r || (r = {})), + (function(t) { + (function(t) { + t[t.Normal = 0] = "Normal", + t[t.Additive = 1] = "Additive", + t[t.Multiply = 2] = "Multiply", + t[t.Screen = 3] = "Screen" + } + )(t.BlendMode || (t.BlendMode = {})) + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(t, e, i) { + if (this.children = new Array, + this.x = 0, + this.y = 0, + this.rotation = 0, + this.scaleX = 0, + this.scaleY = 0, + this.shearX = 0, + this.shearY = 0, + this.ax = 0, + this.ay = 0, + this.arotation = 0, + this.ascaleX = 0, + this.ascaleY = 0, + this.ashearX = 0, + this.ashearY = 0, + this.appliedValid = !1, + this.a = 0, + this.b = 0, + this.c = 0, + this.d = 0, + this.worldY = 0, + this.worldX = 0, + this.sorted = !1, + this.active = !1, + null == t) + throw new Error("data cannot be null."); + if (null == e) + throw new Error("skeleton cannot be null."); + this.data = t, + this.skeleton = e, + this.parent = i, + this.setToSetupPose() + } + return e.prototype.isActive = function() { + return this.active + } + , + e.prototype.update = function() { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY) + } + , + e.prototype.updateWorldTransform = function() { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY) + } + , + e.prototype.updateWorldTransformWith = function(e, i, n, r, s, a, o) { + this.ax = e, + this.ay = i, + this.arotation = n, + this.ascaleX = r, + this.ascaleY = s, + this.ashearX = a, + this.ashearY = o, + this.appliedValid = !0; + var l = this.parent; + if (null == l) { + var h = this.skeleton + , c = n + 90 + o + , u = h.scaleX + , _ = h.scaleY; + return this.a = t.MathUtils.cosDeg(n + a) * r * u, + this.b = t.MathUtils.cosDeg(c) * s * u, + this.c = t.MathUtils.sinDeg(n + a) * r * _, + this.d = t.MathUtils.sinDeg(c) * s * _, + this.worldX = e * u + h.x, + void (this.worldY = i * _ + h.y) + } + var f = l.a + , d = l.b + , p = l.c + , m = l.d; + switch (this.worldX = f * e + d * i + l.worldX, + this.worldY = p * e + m * i + l.worldY, + this.data.transformMode) { + case t.TransformMode.Normal: + c = n + 90 + o; + var y = t.MathUtils.cosDeg(n + a) * r + , v = t.MathUtils.cosDeg(c) * s + , g = t.MathUtils.sinDeg(n + a) * r + , A = t.MathUtils.sinDeg(c) * s; + return this.a = f * y + d * g, + this.b = f * v + d * A, + this.c = p * y + m * g, + void (this.d = p * v + m * A); + case t.TransformMode.OnlyTranslation: + c = n + 90 + o, + this.a = t.MathUtils.cosDeg(n + a) * r, + this.b = t.MathUtils.cosDeg(c) * s, + this.c = t.MathUtils.sinDeg(n + a) * r, + this.d = t.MathUtils.sinDeg(c) * s; + break; + case t.TransformMode.NoRotationOrReflection: + var x = 0; + (T = f * f + p * p) > 1e-4 ? (d = p * (T = Math.abs(f * m - d * p) / T), + m = f * T, + x = Math.atan2(p, f) * t.MathUtils.radDeg) : (f = 0, + p = 0, + x = 90 - Math.atan2(m, d) * t.MathUtils.radDeg); + var b = n + a - x + , C = n + o - x + 90; + y = t.MathUtils.cosDeg(b) * r, + v = t.MathUtils.cosDeg(C) * s, + g = t.MathUtils.sinDeg(b) * r, + A = t.MathUtils.sinDeg(C) * s, + this.a = f * y - d * g, + this.b = f * v - d * A, + this.c = p * y + m * g, + this.d = p * v + m * A; + break; + case t.TransformMode.NoScale: + case t.TransformMode.NoScaleOrReflection: + var T, S = t.MathUtils.cosDeg(n), w = t.MathUtils.sinDeg(n), E = (f * S + d * w) / this.skeleton.scaleX, M = (p * S + m * w) / this.skeleton.scaleY; + (T = Math.sqrt(E * E + M * M)) > 1e-5 && (T = 1 / T), + E *= T, + M *= T, + T = Math.sqrt(E * E + M * M), + this.data.transformMode == t.TransformMode.NoScale && f * m - d * p < 0 != (this.skeleton.scaleX < 0 != this.skeleton.scaleY < 0) && (T = -T); + var D = Math.PI / 2 + Math.atan2(M, E) + , B = Math.cos(D) * T + , I = Math.sin(D) * T; + y = t.MathUtils.cosDeg(a) * r, + v = t.MathUtils.cosDeg(90 + o) * s, + g = t.MathUtils.sinDeg(a) * r, + A = t.MathUtils.sinDeg(90 + o) * s, + this.a = E * y + B * g, + this.b = E * v + B * A, + this.c = M * y + I * g, + this.d = M * v + I * A + } + this.a *= this.skeleton.scaleX, + this.b *= this.skeleton.scaleX, + this.c *= this.skeleton.scaleY, + this.d *= this.skeleton.scaleY + } + , + e.prototype.setToSetupPose = function() { + var t = this.data; + this.x = t.x, + this.y = t.y, + this.rotation = t.rotation, + this.scaleX = t.scaleX, + this.scaleY = t.scaleY, + this.shearX = t.shearX, + this.shearY = t.shearY + } + , + e.prototype.getWorldRotationX = function() { + return Math.atan2(this.c, this.a) * t.MathUtils.radDeg + } + , + e.prototype.getWorldRotationY = function() { + return Math.atan2(this.d, this.b) * t.MathUtils.radDeg + } + , + e.prototype.getWorldScaleX = function() { + return Math.sqrt(this.a * this.a + this.c * this.c) + } + , + e.prototype.getWorldScaleY = function() { + return Math.sqrt(this.b * this.b + this.d * this.d) + } + , + e.prototype.updateAppliedTransform = function() { + this.appliedValid = !0; + var e = this.parent; + if (null == e) + return this.ax = this.worldX, + this.ay = this.worldY, + this.arotation = Math.atan2(this.c, this.a) * t.MathUtils.radDeg, + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c), + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d), + this.ashearX = 0, + void (this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * t.MathUtils.radDeg); + var i = e.a + , n = e.b + , r = e.c + , s = e.d + , a = 1 / (i * s - n * r) + , o = this.worldX - e.worldX + , l = this.worldY - e.worldY; + this.ax = o * s * a - l * n * a, + this.ay = l * i * a - o * r * a; + var h = a * s + , c = a * i + , u = a * n + , _ = a * r + , f = h * this.a - u * this.c + , d = h * this.b - u * this.d + , p = c * this.c - _ * this.a + , m = c * this.d - _ * this.b; + if (this.ashearX = 0, + this.ascaleX = Math.sqrt(f * f + p * p), + this.ascaleX > 1e-4) { + var y = f * m - d * p; + this.ascaleY = y / this.ascaleX, + this.ashearY = Math.atan2(f * d + p * m, y) * t.MathUtils.radDeg, + this.arotation = Math.atan2(p, f) * t.MathUtils.radDeg + } else + this.ascaleX = 0, + this.ascaleY = Math.sqrt(d * d + m * m), + this.ashearY = 0, + this.arotation = 90 - Math.atan2(m, d) * t.MathUtils.radDeg + } + , + e.prototype.worldToLocal = function(t) { + var e = this.a + , i = this.b + , n = this.c + , r = this.d + , s = 1 / (e * r - i * n) + , a = t.x - this.worldX + , o = t.y - this.worldY; + return t.x = a * r * s - o * i * s, + t.y = o * e * s - a * n * s, + t + } + , + e.prototype.localToWorld = function(t) { + var e = t.x + , i = t.y; + return t.x = e * this.a + i * this.b + this.worldX, + t.y = e * this.c + i * this.d + this.worldY, + t + } + , + e.prototype.worldToLocalRotation = function(e) { + var i = t.MathUtils.sinDeg(e) + , n = t.MathUtils.cosDeg(e); + return Math.atan2(this.a * i - this.c * n, this.d * n - this.b * i) * t.MathUtils.radDeg + this.rotation - this.shearX + } + , + e.prototype.localToWorldRotation = function(e) { + e -= this.rotation - this.shearX; + var i = t.MathUtils.sinDeg(e) + , n = t.MathUtils.cosDeg(e); + return Math.atan2(n * this.c + i * this.d, n * this.a + i * this.b) * t.MathUtils.radDeg + } + , + e.prototype.rotateWorld = function(e) { + var i = this.a + , n = this.b + , r = this.c + , s = this.d + , a = t.MathUtils.cosDeg(e) + , o = t.MathUtils.sinDeg(e); + this.a = a * i - o * r, + this.b = a * n - o * s, + this.c = o * i + a * r, + this.d = o * n + a * s, + this.appliedValid = !1 + } + , + e + } + )(); + t.Bone = e + } + )(r || (r = {})), + (function(t) { + var e; + t.BoneData = function(i, n, r) { + if (this.x = 0, + this.y = 0, + this.rotation = 0, + this.scaleX = 1, + this.scaleY = 1, + this.shearX = 0, + this.shearY = 0, + this.transformMode = e.Normal, + this.skinRequired = !1, + this.color = new t.Color, + i < 0) + throw new Error("index must be >= 0."); + if (null == n) + throw new Error("name cannot be null."); + this.index = i, + this.name = n, + this.parent = r + } + , + (function(t) { + t[t.Normal = 0] = "Normal", + t[t.OnlyTranslation = 1] = "OnlyTranslation", + t[t.NoRotationOrReflection = 2] = "NoRotationOrReflection", + t[t.NoScale = 3] = "NoScale", + t[t.NoScaleOrReflection = 4] = "NoScaleOrReflection" + } + )(e = t.TransformMode || (t.TransformMode = {})) + } + )(r || (r = {})), + (function(t) { + t.ConstraintData = function(t, e, i) { + this.name = t, + this.order = e, + this.skinRequired = i + } + } + )(r || (r = {})), + (function(t) { + t.Event = function(t, e) { + if (null == e) + throw new Error("data cannot be null."); + this.time = t, + this.data = e + } + } + )(r || (r = {})), + (function(t) { + t.EventData = function(t) { + this.name = t + } + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(t, e) { + if (this.bendDirection = 0, + this.compress = !1, + this.stretch = !1, + this.mix = 1, + this.softness = 0, + this.active = !1, + null == t) + throw new Error("data cannot be null."); + if (null == e) + throw new Error("skeleton cannot be null."); + this.data = t, + this.mix = t.mix, + this.softness = t.softness, + this.bendDirection = t.bendDirection, + this.compress = t.compress, + this.stretch = t.stretch, + this.bones = new Array; + for (var i = 0; i < t.bones.length; i++) + this.bones.push(e.findBone(t.bones[i].name)); + this.target = e.findBone(t.target.name) + } + return e.prototype.isActive = function() { + return this.active + } + , + e.prototype.apply = function() { + this.update() + } + , + e.prototype.update = function() { + var t = this.target + , e = this.bones; + switch (e.length) { + case 1: + this.apply1(e[0], t.worldX, t.worldY, this.compress, this.stretch, this.data.uniform, this.mix); + break; + case 2: + this.apply2(e[0], e[1], t.worldX, t.worldY, this.bendDirection, this.stretch, this.softness, this.mix) + } + } + , + e.prototype.apply1 = function(e, i, n, r, s, a, o) { + e.appliedValid || e.updateAppliedTransform(); + var l = e.parent + , h = 1 / (l.a * l.d - l.b * l.c) + , c = i - l.worldX + , u = n - l.worldY + , _ = (c * l.d - u * l.b) * h - e.ax + , f = (u * l.a - c * l.c) * h - e.ay + , d = Math.atan2(f, _) * t.MathUtils.radDeg - e.ashearX - e.arotation; + e.ascaleX < 0 && (d += 180), + d > 180 ? d -= 360 : d < -180 && (d += 360); + var p = e.ascaleX + , m = e.ascaleY; + if (r || s) { + var y = e.data.length * p + , v = Math.sqrt(_ * _ + f * f); + if (r && v < y || s && v > y && y > 1e-4) { + var g = (v / y - 1) * o + 1; + p *= g, + a && (m *= g) + } + } + e.updateWorldTransformWith(e.ax, e.ay, e.arotation + d * o, p, m, e.ashearX, e.ashearY) + } + , + e.prototype.apply2 = function(e, i, n, r, s, a, o, l) { + if (0 != l) { + e.appliedValid || e.updateAppliedTransform(), + i.appliedValid || i.updateAppliedTransform(); + var h = e.ax + , c = e.ay + , u = e.ascaleX + , _ = u + , f = e.ascaleY + , d = i.ascaleX + , p = 0 + , m = 0 + , y = 0; + u < 0 ? (u = -u, + p = 180, + y = -1) : (p = 0, + y = 1), + f < 0 && (f = -f, + y = -y), + d < 0 ? (d = -d, + m = 180) : m = 0; + var v = i.ax + , g = 0 + , A = 0 + , x = 0 + , b = e.a + , C = e.b + , T = e.c + , S = e.d + , w = Math.abs(u - f) <= 1e-4; + w ? (A = b * v + C * (g = i.ay) + e.worldX, + x = T * v + S * g + e.worldY) : (g = 0, + A = b * v + e.worldX, + x = T * v + e.worldY); + var E = e.parent; + b = E.a, + C = E.b, + T = E.c; + var M, D, B = 1 / (b * (S = E.d) - C * T), I = A - E.worldX, P = x - E.worldY, R = (I * S - P * C) * B - h, O = (P * b - I * T) * B - c, L = Math.sqrt(R * R + O * O), F = i.data.length * d; + if (L < 1e-4) + return this.apply1(e, n, r, !1, a, !1, l), + void i.updateWorldTransformWith(v, g, 0, i.ascaleX, i.ascaleY, i.ashearX, i.ashearY); + var V = ((I = n - E.worldX) * S - (P = r - E.worldY) * C) * B - h + , N = (P * b - I * T) * B - c + , k = V * V + N * N; + if (0 != o) { + o *= u * (d + 1) / 2; + var G = Math.sqrt(k) + , U = G - L - F * u + o; + if (U > 0) { + var z = Math.min(1, U / (2 * o)) - 1; + k = (V -= (z = (U - o * (1 - z * z)) / G) * V) * V + (N -= z * N) * N + } + } + t: if (w) { + var H = (k - L * L - (F *= u) * F) / (2 * L * F); + H < -1 ? H = -1 : H > 1 && (H = 1, + a && (_ *= (Math.sqrt(k) / (L + F) - 1) * l + 1)), + D = Math.acos(H) * s, + b = L + F * H, + C = F * Math.sin(D), + M = Math.atan2(N * b - V * C, V * b + N * C) + } else { + var W = (b = u * F) * b + , j = (C = f * F) * C + , X = Math.atan2(N, V) + , Y = -2 * j * L + , q = j - W; + if ((S = Y * Y - 4 * q * (T = j * L * L + W * k - W * j)) >= 0) { + var J = Math.sqrt(S); + Y < 0 && (J = -J); + var Z = (J = -(Y + J) / 2) / q + , K = T / J + , Q = Math.abs(Z) < Math.abs(K) ? Z : K; + if (Q * Q <= k) { + P = Math.sqrt(k - Q * Q) * s, + M = X - Math.atan2(P, Q), + D = Math.atan2(P / f, (Q - L) / u); + break t + } + } + var $ = t.MathUtils.PI + , tt = L - b + , et = tt * tt + , it = 0 + , nt = 0 + , rt = L + b + , st = rt * rt + , at = 0; + (T = -b * L / (W - j)) >= -1 && T <= 1 && (T = Math.acos(T), + (S = (I = b * Math.cos(T) + L) * I + (P = C * Math.sin(T)) * P) < et && ($ = T, + et = S, + tt = I, + it = P), + S > st && (nt = T, + st = S, + rt = I, + at = P)), + k <= (et + st) / 2 ? (M = X - Math.atan2(it * s, tt), + D = $ * s) : (M = X - Math.atan2(at * s, rt), + D = nt * s) + } + var ot = Math.atan2(g, v) * y + , lt = e.arotation; + (M = (M - ot) * t.MathUtils.radDeg + p - lt) > 180 ? M -= 360 : M < -180 && (M += 360), + e.updateWorldTransformWith(h, c, lt + M * l, _, e.ascaleY, 0, 0), + lt = i.arotation, + (D = ((D + ot) * t.MathUtils.radDeg - i.ashearX) * y + m - lt) > 180 ? D -= 360 : D < -180 && (D += 360), + i.updateWorldTransformWith(v, g, lt + D * l, i.ascaleX, i.ascaleY, i.ashearX, i.ashearY) + } else + i.updateWorldTransform() + } + , + e + } + )(); + t.IkConstraint = e + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e(e) { + var i = t.call(this, e, 0, !1) || this; + return i.bones = new Array, + i.bendDirection = 1, + i.compress = !1, + i.stretch = !1, + i.uniform = !1, + i.mix = 1, + i.softness = 0, + i + } + return s(e, t), + e + } + )(t.ConstraintData); + t.IkConstraintData = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(t, e) { + if (this.position = 0, + this.spacing = 0, + this.rotateMix = 0, + this.translateMix = 0, + this.spaces = new Array, + this.positions = new Array, + this.world = new Array, + this.curves = new Array, + this.lengths = new Array, + this.segments = new Array, + this.active = !1, + null == t) + throw new Error("data cannot be null."); + if (null == e) + throw new Error("skeleton cannot be null."); + this.data = t, + this.bones = new Array; + for (var i = 0, n = t.bones.length; i < n; i++) + this.bones.push(e.findBone(t.bones[i].name)); + this.target = e.findSlot(t.target.name), + this.position = t.position, + this.spacing = t.spacing, + this.rotateMix = t.rotateMix, + this.translateMix = t.translateMix + } + return e.prototype.isActive = function() { + return this.active + } + , + e.prototype.apply = function() { + this.update() + } + , + e.prototype.update = function() { + var i = this.target.getAttachment(); + if (i instanceof t.PathAttachment) { + var n = this.rotateMix + , r = this.translateMix + , s = n > 0; + if (r > 0 || s) { + var a = this.data + , o = a.spacingMode == t.SpacingMode.Percent + , l = a.rotateMode + , h = l == t.RotateMode.Tangent + , c = l == t.RotateMode.ChainScale + , u = this.bones.length + , _ = h ? u : u + 1 + , f = this.bones + , d = t.Utils.setArraySize(this.spaces, _) + , p = null + , m = this.spacing; + if (c || !o) { + c && (p = t.Utils.setArraySize(this.lengths, u)); + for (var y = a.spacingMode == t.SpacingMode.Length, v = 0, g = _ - 1; v < g; ) { + var A = (I = f[v]).data.length; + if (A < e.epsilon) + c && (p[v] = 0), + d[++v] = 0; + else if (o) { + if (c) { + var x = A * I.a + , b = A * I.c + , C = Math.sqrt(x * x + b * b); + p[v] = C + } + d[++v] = m + } else { + x = A * I.a, + b = A * I.c; + var T = Math.sqrt(x * x + b * b); + c && (p[v] = T), + d[++v] = (y ? A + m : m) * T / A + } + } + } else + for (v = 1; v < _; v++) + d[v] = m; + var S = this.computeWorldPositions(i, _, h, a.positionMode == t.PositionMode.Percent, o) + , w = S[0] + , E = S[1] + , M = a.offsetRotation + , D = !1; + 0 == M ? D = l == t.RotateMode.Chain : (D = !1, + M *= (B = this.target.bone).a * B.d - B.b * B.c > 0 ? t.MathUtils.degRad : -t.MathUtils.degRad), + v = 0; + for (var B = 3; v < u; v++, + B += 3) { + var I; + (I = f[v]).worldX += (w - I.worldX) * r, + I.worldY += (E - I.worldY) * r; + var P = (x = S[B]) - w + , R = (b = S[B + 1]) - E; + if (c) { + var O = p[v]; + if (0 != O) { + var L = (Math.sqrt(P * P + R * R) / O - 1) * n + 1; + I.a *= L, + I.c *= L + } + } + if (w = x, + E = b, + s) { + var F = I.a + , V = I.b + , N = I.c + , k = I.d + , G = 0 + , U = 0 + , z = 0; + if (G = h ? S[B - 1] : 0 == d[v + 1] ? S[B + 2] : Math.atan2(R, P), + G -= Math.atan2(N, F), + D) { + U = Math.cos(G), + z = Math.sin(G); + var H = I.data.length; + w += (H * (U * F - z * N) - P) * n, + E += (H * (z * F + U * N) - R) * n + } else + G += M; + G > t.MathUtils.PI ? G -= t.MathUtils.PI2 : G < -t.MathUtils.PI && (G += t.MathUtils.PI2), + G *= n, + U = Math.cos(G), + z = Math.sin(G), + I.a = U * F - z * N, + I.b = U * V - z * k, + I.c = z * F + U * N, + I.d = z * V + U * k + } + I.appliedValid = !1 + } + } + } + } + , + e.prototype.computeWorldPositions = function(i, n, r, s, a) { + var o = this.target + , l = this.position + , h = this.spaces + , c = t.Utils.setArraySize(this.positions, 3 * n + 2) + , u = null + , _ = i.closed + , f = i.worldVerticesLength + , d = f / 6 + , p = e.NONE; + if (!i.constantSpeed) { + var m = i.lengths + , y = m[d -= _ ? 1 : 2]; + if (s && (l *= y), + a) + for (var v = 1; v < n; v++) + h[v] *= y; + u = t.Utils.setArraySize(this.world, 8), + v = 0; + for (var g = 0, A = 0; v < n; v++, + g += 3) { + var x = l += j = h[v]; + if (_) + (x %= y) < 0 && (x += y), + A = 0; + else { + if (x < 0) { + p != e.BEFORE && (p = e.BEFORE, + i.computeWorldVertices(o, 2, 4, u, 0, 2)), + this.addBeforePosition(x, u, 0, c, g); + continue + } + if (x > y) { + p != e.AFTER && (p = e.AFTER, + i.computeWorldVertices(o, f - 6, 4, u, 0, 2)), + this.addAfterPosition(x - y, u, 0, c, g); + continue + } + } + for (; ; A++) { + var b = m[A]; + if (!(x > b)) { + 0 == A ? x /= b : x = (x - (J = m[A - 1])) / (b - J); + break + } + } + A != p && (p = A, + _ && A == d ? (i.computeWorldVertices(o, f - 4, 4, u, 0, 2), + i.computeWorldVertices(o, 0, 4, u, 4, 2)) : i.computeWorldVertices(o, 6 * A + 2, 8, u, 0, 2)), + this.addCurvePosition(x, u[0], u[1], u[2], u[3], u[4], u[5], u[6], u[7], c, g, r || v > 0 && 0 == j) + } + return c + } + _ ? (f += 2, + u = t.Utils.setArraySize(this.world, f), + i.computeWorldVertices(o, 2, f - 4, u, 0, 2), + i.computeWorldVertices(o, 0, 2, u, f - 4, 2), + u[f - 2] = u[0], + u[f - 1] = u[1]) : (d--, + f -= 4, + u = t.Utils.setArraySize(this.world, f), + i.computeWorldVertices(o, 2, f, u, 0, 2)); + for (var C = t.Utils.setArraySize(this.curves, d), T = 0, S = u[0], w = u[1], E = 0, M = 0, D = 0, B = 0, I = 0, P = 0, R = 0, O = 0, L = 0, F = 0, V = 0, N = 0, k = 0, G = 0, U = (v = 0, + 2); v < d; v++, + U += 6) + E = u[U], + M = u[U + 1], + D = u[U + 2], + B = u[U + 3], + V = 2 * (R = .1875 * (S - 2 * E + D)) + (L = .09375 * (3 * (E - D) - S + (I = u[U + 4]))), + N = 2 * (O = .1875 * (w - 2 * M + B)) + (F = .09375 * (3 * (M - B) - w + (P = u[U + 5]))), + k = .75 * (E - S) + R + .16666667 * L, + G = .75 * (M - w) + O + .16666667 * F, + T += Math.sqrt(k * k + G * G), + k += V, + G += N, + V += L, + N += F, + T += Math.sqrt(k * k + G * G), + k += V, + G += N, + T += Math.sqrt(k * k + G * G), + k += V + L, + G += N + F, + T += Math.sqrt(k * k + G * G), + C[v] = T, + S = I, + w = P; + if (l *= s ? T : T / i.lengths[d - 1], + a) + for (v = 1; v < n; v++) + h[v] *= T; + for (var z = this.segments, H = 0, W = (v = 0, + g = 0, + A = 0, + 0); v < n; v++, + g += 3) { + var j; + if (x = l += j = h[v], + _) + (x %= T) < 0 && (x += T), + A = 0; + else { + if (x < 0) { + this.addBeforePosition(x, u, 0, c, g); + continue + } + if (x > T) { + this.addAfterPosition(x - T, u, f - 4, c, g); + continue + } + } + for (; ; A++) { + var X = C[A]; + if (!(x > X)) { + 0 == A ? x /= X : x = (x - (J = C[A - 1])) / (X - J); + break + } + } + if (A != p) { + p = A; + var Y = 6 * A; + for (S = u[Y], + w = u[Y + 1], + E = u[Y + 2], + M = u[Y + 3], + D = u[Y + 4], + B = u[Y + 5], + V = 2 * (R = .03 * (S - 2 * E + D)) + (L = .006 * (3 * (E - D) - S + (I = u[Y + 6]))), + N = 2 * (O = .03 * (w - 2 * M + B)) + (F = .006 * (3 * (M - B) - w + (P = u[Y + 7]))), + k = .3 * (E - S) + R + .16666667 * L, + G = .3 * (M - w) + O + .16666667 * F, + H = Math.sqrt(k * k + G * G), + z[0] = H, + Y = 1; Y < 8; Y++) + k += V, + G += N, + V += L, + N += F, + H += Math.sqrt(k * k + G * G), + z[Y] = H; + k += V, + G += N, + H += Math.sqrt(k * k + G * G), + z[8] = H, + k += V + L, + G += N + F, + H += Math.sqrt(k * k + G * G), + z[9] = H, + W = 0 + } + for (x *= H; ; W++) { + var q = z[W]; + if (!(x > q)) { + var J; + 0 == W ? x /= q : x = W + (x - (J = z[W - 1])) / (q - J); + break + } + } + this.addCurvePosition(.1 * x, S, w, E, M, D, B, I, P, c, g, r || v > 0 && 0 == j) + } + return c + } + , + e.prototype.addBeforePosition = function(t, e, i, n, r) { + var s = e[i] + , a = e[i + 1] + , o = e[i + 2] - s + , l = e[i + 3] - a + , h = Math.atan2(l, o); + n[r] = s + t * Math.cos(h), + n[r + 1] = a + t * Math.sin(h), + n[r + 2] = h + } + , + e.prototype.addAfterPosition = function(t, e, i, n, r) { + var s = e[i + 2] + , a = e[i + 3] + , o = s - e[i] + , l = a - e[i + 1] + , h = Math.atan2(l, o); + n[r] = s + t * Math.cos(h), + n[r + 1] = a + t * Math.sin(h), + n[r + 2] = h + } + , + e.prototype.addCurvePosition = function(t, e, i, n, r, s, a, o, l, h, c, u) { + if (0 == t || isNaN(t)) + return h[c] = e, + h[c + 1] = i, + void (h[c + 2] = Math.atan2(r - i, n - e)); + var _ = t * t + , f = _ * t + , d = 1 - t + , p = d * d + , m = p * d + , y = d * t + , v = 3 * y + , g = d * v + , A = v * t + , x = e * m + n * g + s * A + o * f + , b = i * m + r * g + a * A + l * f; + h[c] = x, + h[c + 1] = b, + u && (h[c + 2] = t < .001 ? Math.atan2(r - i, n - e) : Math.atan2(b - (i * p + r * y * 2 + a * _), x - (e * p + n * y * 2 + s * _))) + } + , + e.NONE = -1, + e.BEFORE = -2, + e.AFTER = -3, + e.epsilon = 1e-5, + e + } + )(); + t.PathConstraint = e + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e(e) { + var i = t.call(this, e, 0, !1) || this; + return i.bones = new Array, + i + } + return s(e, t), + e + } + )(t.ConstraintData); + t.PathConstraintData = e, + (function(t) { + t[t.Fixed = 0] = "Fixed", + t[t.Percent = 1] = "Percent" + } + )(t.PositionMode || (t.PositionMode = {})), + (function(t) { + t[t.Length = 0] = "Length", + t[t.Fixed = 1] = "Fixed", + t[t.Percent = 2] = "Percent" + } + )(t.SpacingMode || (t.SpacingMode = {})), + (function(t) { + t[t.Tangent = 0] = "Tangent", + t[t.Chain = 1] = "Chain", + t[t.ChainScale = 2] = "ChainScale" + } + )(t.RotateMode || (t.RotateMode = {})) + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function t(t) { + this.toLoad = new Array, + this.assets = {}, + this.clientId = t + } + return t.prototype.loaded = function() { + var t = 0; + for (var e in this.assets) + t++; + return t + } + , + t + } + )() + , i = (function() { + function t(t) { + void 0 === t && (t = ""), + this.clientAssets = {}, + this.queuedAssets = {}, + this.rawAssets = {}, + this.errors = {}, + this.pathPrefix = t + } + return t.prototype.queueAsset = function(t, i, n) { + var r = this.clientAssets[t]; + return null == r && (r = new e(t), + this.clientAssets[t] = r), + null !== i && (r.textureLoader = i), + r.toLoad.push(n), + this.queuedAssets[n] !== n && (this.queuedAssets[n] = n, + !0) + } + , + t.prototype.loadText = function(t, e) { + var i = this; + if (e = this.pathPrefix + e, + this.queueAsset(t, null, e)) { + var n = new XMLHttpRequest; + n.onreadystatechange = function() { + n.readyState == XMLHttpRequest.DONE && (n.status >= 200 && n.status < 300 ? i.rawAssets[e] = n.responseText : i.errors[e] = "Couldn't load text " + e + ": status " + n.status + ", " + n.responseText) + } + , + n.open("GET", e, !0), + n.send() + } + } + , + t.prototype.loadJson = function(t, e) { + var i = this; + if (e = this.pathPrefix + e, + this.queueAsset(t, null, e)) { + var n = new XMLHttpRequest; + n.onreadystatechange = function() { + n.readyState == XMLHttpRequest.DONE && (n.status >= 200 && n.status < 300 ? i.rawAssets[e] = JSON.parse(n.responseText) : i.errors[e] = "Couldn't load text " + e + ": status " + n.status + ", " + n.responseText) + } + , + n.open("GET", e, !0), + n.send() + } + } + , + t.prototype.loadTexture = function(t, e, i) { + var n = this; + if (i = this.pathPrefix + i, + this.queueAsset(t, e, i)) { + var r = new Image; + r.src = i, + r.crossOrigin = "anonymous", + r.onload = function() { + n.rawAssets[i] = r + } + , + r.onerror = function() { + n.errors[i] = "Couldn't load image " + i + } + } + } + , + t.prototype.get = function(t, e) { + e = this.pathPrefix + e; + var i = this.clientAssets[t]; + return null == i || i.assets[e] + } + , + t.prototype.updateClientAssets = function(t) { + for (var e = 0; e < t.toLoad.length; e++) { + var i = t.toLoad[e]; + if (null == t.assets[i]) { + var n = this.rawAssets[i]; + if (null == n) + continue; + n instanceof HTMLImageElement ? t.assets[i] = t.textureLoader(n) : t.assets[i] = n + } + } + } + , + t.prototype.isLoadingComplete = function(t) { + var e = this.clientAssets[t]; + return null == e || (this.updateClientAssets(e), + e.toLoad.length == e.loaded()) + } + , + t.prototype.dispose = function() {} + , + t.prototype.hasErrors = function() { + return Object.keys(this.errors).length > 0 + } + , + t.prototype.getErrors = function() { + return this.errors + } + , + t + } + )(); + t.SharedAssetManager = i + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(e) { + if (this._updateCache = new Array, + this.updateCacheReset = new Array, + this.time = 0, + this.scaleX = 1, + this.scaleY = 1, + this.x = 0, + this.y = 0, + null == e) + throw new Error("data cannot be null."); + this.data = e, + this.bones = new Array; + for (var i = 0; i < e.bones.length; i++) { + var n = e.bones[i] + , r = void 0; + if (null == n.parent) + r = new t.Bone(n,this,null); + else { + var s = this.bones[n.parent.index]; + r = new t.Bone(n,this,s), + s.children.push(r) + } + this.bones.push(r) + } + for (this.slots = new Array, + this.drawOrder = new Array, + i = 0; i < e.slots.length; i++) { + var a = e.slots[i] + , o = (r = this.bones[a.boneData.index], + new t.Slot(a,r)); + this.slots.push(o), + this.drawOrder.push(o) + } + for (this.ikConstraints = new Array, + i = 0; i < e.ikConstraints.length; i++) { + var l = e.ikConstraints[i]; + this.ikConstraints.push(new t.IkConstraint(l,this)) + } + for (this.transformConstraints = new Array, + i = 0; i < e.transformConstraints.length; i++) { + var h = e.transformConstraints[i]; + this.transformConstraints.push(new t.TransformConstraint(h,this)) + } + for (this.pathConstraints = new Array, + i = 0; i < e.pathConstraints.length; i++) { + var c = e.pathConstraints[i]; + this.pathConstraints.push(new t.PathConstraint(c,this)) + } + this.color = new t.Color(1,1,1,1), + this.updateCache() + } + return e.prototype.updateCache = function() { + this._updateCache.length = 0, + this.updateCacheReset.length = 0; + for (var t = this.bones, e = 0, i = t.length; e < i; e++) + (r = t[e]).sorted = r.data.skinRequired, + r.active = !r.sorted; + if (null != this.skin) { + var n = this.skin.bones; + for (e = 0, + i = this.skin.bones.length; e < i; e++) { + var r = this.bones[n[e].index]; + do { + r.sorted = !1, + r.active = !0, + r = r.parent + } while (null != r) + } + } + var s = this.ikConstraints + , a = this.transformConstraints + , o = this.pathConstraints + , l = s.length + , h = a.length + , c = o.length + , u = l + h + c; + t: for (e = 0; e < u; e++) { + for (var _ = 0; _ < l; _++) + if ((f = s[_]).data.order == e) { + this.sortIkConstraint(f); + continue t + } + for (_ = 0; _ < h; _++) + if ((f = a[_]).data.order == e) { + this.sortTransformConstraint(f); + continue t + } + for (_ = 0; _ < c; _++) { + var f; + if ((f = o[_]).data.order == e) { + this.sortPathConstraint(f); + continue t + } + } + } + for (e = 0, + i = t.length; e < i; e++) + this.sortBone(t[e]) + } + , + e.prototype.sortIkConstraint = function(e) { + if (e.active = e.target.isActive() && (!e.data.skinRequired || null != this.skin && t.Utils.contains(this.skin.constraints, e.data, !0)), + e.active) { + var i = e.target; + this.sortBone(i); + var n = e.bones + , r = n[0]; + if (this.sortBone(r), + n.length > 1) { + var s = n[n.length - 1]; + this._updateCache.indexOf(s) > -1 || this.updateCacheReset.push(s) + } + this._updateCache.push(e), + this.sortReset(r.children), + n[n.length - 1].sorted = !0 + } + } + , + e.prototype.sortPathConstraint = function(e) { + if (e.active = e.target.bone.isActive() && (!e.data.skinRequired || null != this.skin && t.Utils.contains(this.skin.constraints, e.data, !0)), + e.active) { + var i = e.target + , n = i.data.index + , r = i.bone; + null != this.skin && this.sortPathConstraintAttachment(this.skin, n, r), + null != this.data.defaultSkin && this.data.defaultSkin != this.skin && this.sortPathConstraintAttachment(this.data.defaultSkin, n, r); + for (var s = 0, a = this.data.skins.length; s < a; s++) + this.sortPathConstraintAttachment(this.data.skins[s], n, r); + var o = i.getAttachment(); + o instanceof t.PathAttachment && this.sortPathConstraintAttachmentWith(o, r); + var l = e.bones + , h = l.length; + for (s = 0; s < h; s++) + this.sortBone(l[s]); + for (this._updateCache.push(e), + s = 0; s < h; s++) + this.sortReset(l[s].children); + for (s = 0; s < h; s++) + l[s].sorted = !0 + } + } + , + e.prototype.sortTransformConstraint = function(e) { + if (e.active = e.target.isActive() && (!e.data.skinRequired || null != this.skin && t.Utils.contains(this.skin.constraints, e.data, !0)), + e.active) { + this.sortBone(e.target); + var i = e.bones + , n = i.length; + if (e.data.local) + for (var r = 0; r < n; r++) { + var s = i[r]; + this.sortBone(s.parent), + this._updateCache.indexOf(s) > -1 || this.updateCacheReset.push(s) + } + else + for (r = 0; r < n; r++) + this.sortBone(i[r]); + this._updateCache.push(e); + for (var a = 0; a < n; a++) + this.sortReset(i[a].children); + for (a = 0; a < n; a++) + i[a].sorted = !0 + } + } + , + e.prototype.sortPathConstraintAttachment = function(t, e, i) { + var n = t.attachments[e]; + if (n) + for (var r in n) + this.sortPathConstraintAttachmentWith(n[r], i) + } + , + e.prototype.sortPathConstraintAttachmentWith = function(e, i) { + if (e instanceof t.PathAttachment) { + var n = e.bones; + if (null == n) + this.sortBone(i); + else + for (var r = this.bones, s = 0; s < n.length; ) + for (var a = n[s++], o = s + a; s < o; s++) { + var l = n[s]; + this.sortBone(r[l]) + } + } + } + , + e.prototype.sortBone = function(t) { + if (!t.sorted) { + var e = t.parent; + null != e && this.sortBone(e), + t.sorted = !0, + this._updateCache.push(t) + } + } + , + e.prototype.sortReset = function(t) { + for (var e = 0, i = t.length; e < i; e++) { + var n = t[e]; + n.active && (n.sorted && this.sortReset(n.children), + n.sorted = !1) + } + } + , + e.prototype.updateWorldTransform = function() { + for (var t = this.updateCacheReset, e = 0, i = t.length; e < i; e++) { + var n = t[e]; + n.ax = n.x, + n.ay = n.y, + n.arotation = n.rotation, + n.ascaleX = n.scaleX, + n.ascaleY = n.scaleY, + n.ashearX = n.shearX, + n.ashearY = n.shearY, + n.appliedValid = !0 + } + var r = this._updateCache; + for (e = 0, + i = r.length; e < i; e++) + r[e].update() + } + , + e.prototype.setToSetupPose = function() { + this.setBonesToSetupPose(), + this.setSlotsToSetupPose() + } + , + e.prototype.setBonesToSetupPose = function() { + for (var t = this.bones, e = 0, i = t.length; e < i; e++) + t[e].setToSetupPose(); + var n = this.ikConstraints; + for (e = 0, + i = n.length; e < i; e++) + (o = n[e]).mix = o.data.mix, + o.softness = o.data.softness, + o.bendDirection = o.data.bendDirection, + o.compress = o.data.compress, + o.stretch = o.data.stretch; + var r = this.transformConstraints; + for (e = 0, + i = r.length; e < i; e++) { + var s = (o = r[e]).data; + o.rotateMix = s.rotateMix, + o.translateMix = s.translateMix, + o.scaleMix = s.scaleMix, + o.shearMix = s.shearMix + } + var a = this.pathConstraints; + for (e = 0, + i = a.length; e < i; e++) { + var o; + s = (o = a[e]).data, + o.position = s.position, + o.spacing = s.spacing, + o.rotateMix = s.rotateMix, + o.translateMix = s.translateMix + } + } + , + e.prototype.setSlotsToSetupPose = function() { + var e = this.slots; + t.Utils.arrayCopy(e, 0, this.drawOrder, 0, e.length); + for (var i = 0, n = e.length; i < n; i++) + e[i].setToSetupPose() + } + , + e.prototype.getRootBone = function() { + return 0 == this.bones.length ? null : this.bones[0] + } + , + e.prototype.findBone = function(t) { + if (null == t) + throw new Error("boneName cannot be null."); + for (var e = this.bones, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.data.name == t) + return r + } + return null + } + , + e.prototype.findBoneIndex = function(t) { + if (null == t) + throw new Error("boneName cannot be null."); + for (var e = this.bones, i = 0, n = e.length; i < n; i++) + if (e[i].data.name == t) + return i; + return -1 + } + , + e.prototype.findSlot = function(t) { + if (null == t) + throw new Error("slotName cannot be null."); + for (var e = this.slots, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.data.name == t) + return r + } + return null + } + , + e.prototype.findSlotIndex = function(t) { + if (null == t) + throw new Error("slotName cannot be null."); + for (var e = this.slots, i = 0, n = e.length; i < n; i++) + if (e[i].data.name == t) + return i; + return -1 + } + , + e.prototype.setSkinByName = function(t) { + var e = this.data.findSkin(t); + if (null == e) + throw new Error("Skin not found: " + t); + this.setSkin(e) + } + , + e.prototype.setSkin = function(t) { + if (t != this.skin) { + if (null != t) + if (null != this.skin) + t.attachAll(this, this.skin); + else + for (var e = this.slots, i = 0, n = e.length; i < n; i++) { + var r = e[i] + , s = r.data.attachmentName; + if (null != s) { + var a = t.getAttachment(i, s); + null != a && r.setAttachment(a) + } + } + this.skin = t, + this.updateCache() + } + } + , + e.prototype.getAttachmentByName = function(t, e) { + return this.getAttachment(this.data.findSlotIndex(t), e) + } + , + e.prototype.getAttachment = function(t, e) { + if (null == e) + throw new Error("attachmentName cannot be null."); + if (null != this.skin) { + var i = this.skin.getAttachment(t, e); + if (null != i) + return i + } + return null != this.data.defaultSkin ? this.data.defaultSkin.getAttachment(t, e) : null + } + , + e.prototype.setAttachment = function(t, e) { + if (null == t) + throw new Error("slotName cannot be null."); + for (var i = this.slots, n = 0, r = i.length; n < r; n++) { + var s = i[n]; + if (s.data.name == t) { + var a = null; + if (null != e && null == (a = this.getAttachment(n, e))) + throw new Error("Attachment not found: " + e + ", for slot: " + t); + return void s.setAttachment(a) + } + } + throw new Error("Slot not found: " + t) + } + , + e.prototype.findIkConstraint = function(t) { + if (null == t) + throw new Error("constraintName cannot be null."); + for (var e = this.ikConstraints, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.data.name == t) + return r + } + return null + } + , + e.prototype.findTransformConstraint = function(t) { + if (null == t) + throw new Error("constraintName cannot be null."); + for (var e = this.transformConstraints, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.data.name == t) + return r + } + return null + } + , + e.prototype.findPathConstraint = function(t) { + if (null == t) + throw new Error("constraintName cannot be null."); + for (var e = this.pathConstraints, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.data.name == t) + return r + } + return null + } + , + e.prototype.getBounds = function(e, i, n) { + if (void 0 === n && (n = new Array(2)), + null == e) + throw new Error("offset cannot be null."); + if (null == i) + throw new Error("size cannot be null."); + for (var r = this.drawOrder, s = Number.POSITIVE_INFINITY, a = Number.POSITIVE_INFINITY, o = Number.NEGATIVE_INFINITY, l = Number.NEGATIVE_INFINITY, h = 0, c = r.length; h < c; h++) { + var u = r[h]; + if (u.bone.active) { + var _ = 0 + , f = null + , d = u.getAttachment(); + if (d instanceof t.RegionAttachment) + _ = 8, + f = t.Utils.setArraySize(n, _, 0), + d.computeWorldVertices(u.bone, f, 0, 2); + else if (d instanceof t.MeshAttachment) { + var p = d; + _ = p.worldVerticesLength, + f = t.Utils.setArraySize(n, _, 0), + p.computeWorldVertices(u, 0, _, f, 0, 2) + } + if (null != f) + for (var m = 0, y = f.length; m < y; m += 2) { + var v = f[m] + , g = f[m + 1]; + s = Math.min(s, v), + a = Math.min(a, g), + o = Math.max(o, v), + l = Math.max(l, g) + } + } + } + e.set(s, a), + i.set(o - s, l - a) + } + , + e.prototype.update = function(t) { + this.time += t + } + , + e + } + )(); + t.Skeleton = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(t) { + this.scale = 1, + this.linkedMeshes = new Array, + this.attachmentLoader = t + } + return e.prototype.readSkeletonData = function(n) { + var r = this.scale + , s = new t.SkeletonData; + s.name = ""; + var a = new i(n); + s.hash = a.readString(), + s.version = a.readString(), + s.x = a.readFloat(), + s.y = a.readFloat(), + s.width = a.readFloat(), + s.height = a.readFloat(); + var o = a.readBoolean(); + o && (s.fps = a.readFloat(), + s.imagesPath = a.readString(), + s.audioPath = a.readString()); + var l = 0; + l = a.readInt(!0); + for (var h = 0; h < l; h++) + a.strings.push(a.readString()); + for (l = a.readInt(!0), + h = 0; h < l; h++) { + var c = a.readString() + , u = 0 == h ? null : s.bones[a.readInt(!0)]; + (d = new t.BoneData(h,c,u)).rotation = a.readFloat(), + d.x = a.readFloat() * r, + d.y = a.readFloat() * r, + d.scaleX = a.readFloat(), + d.scaleY = a.readFloat(), + d.shearX = a.readFloat(), + d.shearY = a.readFloat(), + d.length = a.readFloat() * r, + d.transformMode = e.TransformModeValues[a.readInt(!0)], + d.skinRequired = a.readBoolean(), + o && t.Color.rgba8888ToColor(d.color, a.readInt32()), + s.bones.push(d) + } + for (l = a.readInt(!0), + h = 0; h < l; h++) { + var _ = a.readString() + , f = s.bones[a.readInt(!0)] + , d = new t.SlotData(h,_,f); + t.Color.rgba8888ToColor(d.color, a.readInt32()); + var p = a.readInt32(); + -1 != p && t.Color.rgb888ToColor(d.darkColor = new t.Color, p), + d.attachmentName = a.readStringRef(), + d.blendMode = e.BlendModeValues[a.readInt(!0)], + s.slots.push(d) + } + l = a.readInt(!0), + h = 0; + for (var m = void 0; h < l; h++) { + (d = new t.IkConstraintData(a.readString())).order = a.readInt(!0), + d.skinRequired = a.readBoolean(), + m = a.readInt(!0); + for (var y = 0; y < m; y++) + d.bones.push(s.bones[a.readInt(!0)]); + d.target = s.bones[a.readInt(!0)], + d.mix = a.readFloat(), + d.softness = a.readFloat() * r, + d.bendDirection = a.readByte(), + d.compress = a.readBoolean(), + d.stretch = a.readBoolean(), + d.uniform = a.readBoolean(), + s.ikConstraints.push(d) + } + for (l = a.readInt(!0), + h = 0, + m = void 0; h < l; h++) { + for ((d = new t.TransformConstraintData(a.readString())).order = a.readInt(!0), + d.skinRequired = a.readBoolean(), + m = a.readInt(!0), + y = 0; y < m; y++) + d.bones.push(s.bones[a.readInt(!0)]); + d.target = s.bones[a.readInt(!0)], + d.local = a.readBoolean(), + d.relative = a.readBoolean(), + d.offsetRotation = a.readFloat(), + d.offsetX = a.readFloat() * r, + d.offsetY = a.readFloat() * r, + d.offsetScaleX = a.readFloat(), + d.offsetScaleY = a.readFloat(), + d.offsetShearY = a.readFloat(), + d.rotateMix = a.readFloat(), + d.translateMix = a.readFloat(), + d.scaleMix = a.readFloat(), + d.shearMix = a.readFloat(), + s.transformConstraints.push(d) + } + for (l = a.readInt(!0), + h = 0, + m = void 0; h < l; h++) { + for ((d = new t.PathConstraintData(a.readString())).order = a.readInt(!0), + d.skinRequired = a.readBoolean(), + m = a.readInt(!0), + y = 0; y < m; y++) + d.bones.push(s.bones[a.readInt(!0)]); + d.target = s.slots[a.readInt(!0)], + d.positionMode = e.PositionModeValues[a.readInt(!0)], + d.spacingMode = e.SpacingModeValues[a.readInt(!0)], + d.rotateMode = e.RotateModeValues[a.readInt(!0)], + d.offsetRotation = a.readFloat(), + d.position = a.readFloat(), + d.positionMode == t.PositionMode.Fixed && (d.position *= r), + d.spacing = a.readFloat(), + d.spacingMode != t.SpacingMode.Length && d.spacingMode != t.SpacingMode.Fixed || (d.spacing *= r), + d.rotateMix = a.readFloat(), + d.translateMix = a.readFloat(), + s.pathConstraints.push(d) + } + var v = this.readSkin(a, s, !0, o); + for (null != v && (s.defaultSkin = v, + s.skins.push(v)), + h = s.skins.length, + t.Utils.setArraySize(s.skins, l = h + a.readInt(!0)); h < l; h++) + s.skins[h] = this.readSkin(a, s, !1, o); + for (l = this.linkedMeshes.length, + h = 0; h < l; h++) { + var g = this.linkedMeshes[h] + , A = null == g.skin ? s.defaultSkin : s.findSkin(g.skin); + if (null == A) + throw new Error("Skin not found: " + g.skin); + var x = A.getAttachment(g.slotIndex, g.parent); + if (null == x) + throw new Error("Parent mesh not found: " + g.parent); + g.mesh.deformAttachment = g.inheritDeform ? x : g.mesh, + g.mesh.setParentMesh(x), + g.mesh.updateUVs() + } + for (this.linkedMeshes.length = 0, + l = a.readInt(!0), + h = 0; h < l; h++) + (d = new t.EventData(a.readStringRef())).intValue = a.readInt(!1), + d.floatValue = a.readFloat(), + d.stringValue = a.readString(), + d.audioPath = a.readString(), + null != d.audioPath && (d.volume = a.readFloat(), + d.balance = a.readFloat()), + s.events.push(d); + for (l = a.readInt(!0), + h = 0; h < l; h++) + s.animations.push(this.readAnimation(a, a.readString(), s)); + return s + } + , + e.prototype.readSkin = function(e, i, n, r) { + var s = null + , a = 0; + if (n) { + if (0 == (a = e.readInt(!0))) + return null; + s = new t.Skin("default") + } else { + (s = new t.Skin(e.readStringRef())).bones.length = e.readInt(!0); + for (var o = 0, l = s.bones.length; o < l; o++) + s.bones[o] = i.bones[e.readInt(!0)]; + for (o = 0, + l = e.readInt(!0); o < l; o++) + s.constraints.push(i.ikConstraints[e.readInt(!0)]); + for (o = 0, + l = e.readInt(!0); o < l; o++) + s.constraints.push(i.transformConstraints[e.readInt(!0)]); + for (o = 0, + l = e.readInt(!0); o < l; o++) + s.constraints.push(i.pathConstraints[e.readInt(!0)]); + a = e.readInt(!0) + } + for (o = 0; o < a; o++) + for (var h = e.readInt(!0), c = 0, u = e.readInt(!0); c < u; c++) { + var _ = e.readStringRef() + , f = this.readAttachment(e, i, s, h, _, r); + null != f && s.setAttachment(h, _, f) + } + return s + } + , + e.prototype.readAttachment = function(i, r, s, a, o, l) { + var h = this.scale + , c = i.readStringRef(); + null == c && (c = o); + var u = i.readByte(); + switch (e.AttachmentTypeValues[u]) { + case t.AttachmentType.Region: + var _ = i.readStringRef() + , f = i.readFloat() + , d = i.readFloat() + , p = i.readFloat() + , m = i.readFloat() + , y = i.readFloat() + , v = i.readFloat() + , g = i.readFloat() + , A = i.readInt32(); + null == _ && (_ = c); + var x = this.attachmentLoader.newRegionAttachment(s, c, _); + return null == x ? null : (x.path = _, + x.x = d * h, + x.y = p * h, + x.scaleX = m, + x.scaleY = y, + x.rotation = f, + x.width = v * h, + x.height = g * h, + t.Color.rgba8888ToColor(x.color, A), + x.updateOffset(), + x); + case t.AttachmentType.BoundingBox: + var b = i.readInt(!0) + , C = this.readVertices(i, b) + , T = (A = l ? i.readInt32() : 0, + this.attachmentLoader.newBoundingBoxAttachment(s, c)); + return null == T ? null : (T.worldVerticesLength = b << 1, + T.vertices = C.vertices, + T.bones = C.bones, + l && t.Color.rgba8888ToColor(T.color, A), + T); + case t.AttachmentType.Mesh: + _ = i.readStringRef(), + A = i.readInt32(), + b = i.readInt(!0); + var S = this.readFloatArray(i, b << 1, 1) + , w = this.readShortArray(i) + , E = (C = this.readVertices(i, b), + i.readInt(!0)) + , M = null; + return v = 0, + g = 0, + l && (M = this.readShortArray(i), + v = i.readFloat(), + g = i.readFloat()), + null == _ && (_ = c), + null == (D = this.attachmentLoader.newMeshAttachment(s, c, _)) ? null : (D.path = _, + t.Color.rgba8888ToColor(D.color, A), + D.bones = C.bones, + D.vertices = C.vertices, + D.worldVerticesLength = b << 1, + D.triangles = w, + D.regionUVs = S, + D.updateUVs(), + D.hullLength = E << 1, + l && (D.edges = M, + D.width = v * h, + D.height = g * h), + D); + case t.AttachmentType.LinkedMesh: + _ = i.readStringRef(), + A = i.readInt32(); + var D, B = i.readStringRef(), I = i.readStringRef(), P = i.readBoolean(); + return v = 0, + g = 0, + l && (v = i.readFloat(), + g = i.readFloat()), + null == _ && (_ = c), + null == (D = this.attachmentLoader.newMeshAttachment(s, c, _)) ? null : (D.path = _, + t.Color.rgba8888ToColor(D.color, A), + l && (D.width = v * h, + D.height = g * h), + this.linkedMeshes.push(new n(D,B,a,I,P)), + D); + case t.AttachmentType.Path: + for (var R = i.readBoolean(), O = i.readBoolean(), L = (b = i.readInt(!0), + C = this.readVertices(i, b), + t.Utils.newArray(b / 3, 0)), F = 0, V = L.length; F < V; F++) + L[F] = i.readFloat() * h; + return A = l ? i.readInt32() : 0, + null == (_ = this.attachmentLoader.newPathAttachment(s, c)) ? null : (_.closed = R, + _.constantSpeed = O, + _.worldVerticesLength = b << 1, + _.vertices = C.vertices, + _.bones = C.bones, + _.lengths = L, + l && t.Color.rgba8888ToColor(_.color, A), + _); + case t.AttachmentType.Point: + f = i.readFloat(), + d = i.readFloat(), + p = i.readFloat(), + A = l ? i.readInt32() : 0; + var N = this.attachmentLoader.newPointAttachment(s, c); + return null == N ? null : (N.x = d * h, + N.y = p * h, + N.rotation = f, + l && t.Color.rgba8888ToColor(N.color, A), + N); + case t.AttachmentType.Clipping: + var k = i.readInt(!0) + , G = (b = i.readInt(!0), + C = this.readVertices(i, b), + A = l ? i.readInt32() : 0, + this.attachmentLoader.newClippingAttachment(s, c)); + return null == G ? null : (G.endSlot = r.slots[k], + G.worldVerticesLength = b << 1, + G.vertices = C.vertices, + G.bones = C.bones, + l && t.Color.rgba8888ToColor(G.color, A), + G) + } + return null + } + , + e.prototype.readVertices = function(e, i) { + var n = i << 1 + , s = new r + , a = this.scale; + if (!e.readBoolean()) + return s.vertices = this.readFloatArray(e, n, a), + s; + for (var o = new Array, l = new Array, h = 0; h < i; h++) { + var c = e.readInt(!0); + l.push(c); + for (var u = 0; u < c; u++) + l.push(e.readInt(!0)), + o.push(e.readFloat() * a), + o.push(e.readFloat() * a), + o.push(e.readFloat()) + } + return s.vertices = t.Utils.toFloatArray(o), + s.bones = l, + s + } + , + e.prototype.readFloatArray = function(t, e, i) { + var n = new Array(e); + if (1 == i) + for (var r = 0; r < e; r++) + n[r] = t.readFloat(); + else + for (r = 0; r < e; r++) + n[r] = t.readFloat() * i; + return n + } + , + e.prototype.readShortArray = function(t) { + for (var e = t.readInt(!0), i = new Array(e), n = 0; n < e; n++) + i[n] = t.readShort(); + return i + } + , + e.prototype.readAnimation = function(i, n, r) { + for (var s = new Array, a = this.scale, o = 0, l = new t.Color, h = new t.Color, c = 0, u = i.readInt(!0); c < u; c++) + for (var _ = i.readInt(!0), f = 0, d = i.readInt(!0); f < d; f++) { + var p = i.readByte() + , m = i.readInt(!0); + switch (p) { + case e.SLOT_ATTACHMENT: + (A = new t.AttachmentTimeline(m)).slotIndex = _; + for (var y = 0; y < m; y++) + A.setFrame(y, i.readFloat(), i.readStringRef()); + s.push(A), + o = Math.max(o, A.frames[m - 1]); + break; + case e.SLOT_COLOR: + for ((A = new t.ColorTimeline(m)).slotIndex = _, + y = 0; y < m; y++) { + var v = i.readFloat(); + t.Color.rgba8888ToColor(l, i.readInt32()), + A.setFrame(y, v, l.r, l.g, l.b, l.a), + y < m - 1 && this.readCurve(i, y, A) + } + s.push(A), + o = Math.max(o, A.frames[(m - 1) * t.ColorTimeline.ENTRIES]); + break; + case e.SLOT_TWO_COLOR: + for ((A = new t.TwoColorTimeline(m)).slotIndex = _, + y = 0; y < m; y++) + v = i.readFloat(), + t.Color.rgba8888ToColor(l, i.readInt32()), + t.Color.rgb888ToColor(h, i.readInt32()), + A.setFrame(y, v, l.r, l.g, l.b, l.a, h.r, h.g, h.b), + y < m - 1 && this.readCurve(i, y, A); + s.push(A), + o = Math.max(o, A.frames[(m - 1) * t.TwoColorTimeline.ENTRIES]) + } + } + for (c = 0, + u = i.readInt(!0); c < u; c++) { + var g = i.readInt(!0); + for (f = 0, + d = i.readInt(!0); f < d; f++) + switch (p = i.readByte(), + m = i.readInt(!0), + p) { + case e.BONE_ROTATE: + for ((A = new t.RotateTimeline(m)).boneIndex = g, + y = 0; y < m; y++) + A.setFrame(y, i.readFloat(), i.readFloat()), + y < m - 1 && this.readCurve(i, y, A); + s.push(A), + o = Math.max(o, A.frames[(m - 1) * t.RotateTimeline.ENTRIES]); + break; + case e.BONE_TRANSLATE: + case e.BONE_SCALE: + case e.BONE_SHEAR: + var A = void 0 + , x = 1; + for (p == e.BONE_SCALE ? A = new t.ScaleTimeline(m) : p == e.BONE_SHEAR ? A = new t.ShearTimeline(m) : (A = new t.TranslateTimeline(m), + x = a), + A.boneIndex = g, + y = 0; y < m; y++) + A.setFrame(y, i.readFloat(), i.readFloat() * x, i.readFloat() * x), + y < m - 1 && this.readCurve(i, y, A); + s.push(A), + o = Math.max(o, A.frames[(m - 1) * t.TranslateTimeline.ENTRIES]) + } + } + for (c = 0, + u = i.readInt(!0); c < u; c++) { + var b = i.readInt(!0); + for (m = i.readInt(!0), + (A = new t.IkConstraintTimeline(m)).ikConstraintIndex = b, + y = 0; y < m; y++) + A.setFrame(y, i.readFloat(), i.readFloat(), i.readFloat() * a, i.readByte(), i.readBoolean(), i.readBoolean()), + y < m - 1 && this.readCurve(i, y, A); + s.push(A), + o = Math.max(o, A.frames[(m - 1) * t.IkConstraintTimeline.ENTRIES]) + } + for (c = 0, + u = i.readInt(!0); c < u; c++) { + for (b = i.readInt(!0), + m = i.readInt(!0), + (A = new t.TransformConstraintTimeline(m)).transformConstraintIndex = b, + y = 0; y < m; y++) + A.setFrame(y, i.readFloat(), i.readFloat(), i.readFloat(), i.readFloat(), i.readFloat()), + y < m - 1 && this.readCurve(i, y, A); + s.push(A), + o = Math.max(o, A.frames[(m - 1) * t.TransformConstraintTimeline.ENTRIES]) + } + for (c = 0, + u = i.readInt(!0); c < u; c++) { + b = i.readInt(!0); + var C = r.pathConstraints[b]; + for (f = 0, + d = i.readInt(!0); f < d; f++) + switch (p = i.readByte(), + m = i.readInt(!0), + p) { + case e.PATH_POSITION: + case e.PATH_SPACING: + for (A = void 0, + x = 1, + p == e.PATH_SPACING ? (A = new t.PathConstraintSpacingTimeline(m), + C.spacingMode != t.SpacingMode.Length && C.spacingMode != t.SpacingMode.Fixed || (x = a)) : (A = new t.PathConstraintPositionTimeline(m), + C.positionMode == t.PositionMode.Fixed && (x = a)), + A.pathConstraintIndex = b, + y = 0; y < m; y++) + A.setFrame(y, i.readFloat(), i.readFloat() * x), + y < m - 1 && this.readCurve(i, y, A); + s.push(A), + o = Math.max(o, A.frames[(m - 1) * t.PathConstraintPositionTimeline.ENTRIES]); + break; + case e.PATH_MIX: + for ((A = new t.PathConstraintMixTimeline(m)).pathConstraintIndex = b, + y = 0; y < m; y++) + A.setFrame(y, i.readFloat(), i.readFloat(), i.readFloat()), + y < m - 1 && this.readCurve(i, y, A); + s.push(A), + o = Math.max(o, A.frames[(m - 1) * t.PathConstraintMixTimeline.ENTRIES]) + } + } + for (c = 0, + u = i.readInt(!0); c < u; c++) { + var T = r.skins[i.readInt(!0)]; + for (f = 0, + d = i.readInt(!0); f < d; f++) { + _ = i.readInt(!0); + for (var S = 0, w = i.readInt(!0); S < w; S++) { + var E = T.getAttachment(_, i.readStringRef()) + , M = null != E.bones + , D = E.vertices + , B = M ? D.length / 3 * 2 : D.length; + for (m = i.readInt(!0), + (A = new t.DeformTimeline(m)).slotIndex = _, + A.attachment = E, + y = 0; y < m; y++) { + v = i.readFloat(); + var I = void 0 + , P = i.readInt(!0); + if (0 == P) + I = M ? t.Utils.newFloatArray(B) : D; + else { + I = t.Utils.newFloatArray(B); + var R = i.readInt(!0); + if (P += R, + 1 == a) + for (var O = R; O < P; O++) + I[O] = i.readFloat(); + else + for (O = R; O < P; O++) + I[O] = i.readFloat() * a; + if (!M) { + O = 0; + for (var L = I.length; O < L; O++) + I[O] += D[O] + } + } + A.setFrame(y, v, I), + y < m - 1 && this.readCurve(i, y, A) + } + s.push(A), + o = Math.max(o, A.frames[m - 1]) + } + } + } + var F = i.readInt(!0); + if (F > 0) { + A = new t.DrawOrderTimeline(F); + var V = r.slots.length; + for (c = 0; c < F; c++) { + v = i.readFloat(); + var N = i.readInt(!0) + , k = t.Utils.newArray(V, 0); + for (f = V - 1; f >= 0; f--) + k[f] = -1; + var G = t.Utils.newArray(V - N, 0) + , U = 0 + , z = 0; + for (f = 0; f < N; f++) { + for (_ = i.readInt(!0); U != _; ) + G[z++] = U++; + k[U + i.readInt(!0)] = U++ + } + for (; U < V; ) + G[z++] = U++; + for (f = V - 1; f >= 0; f--) + -1 == k[f] && (k[f] = G[--z]); + A.setFrame(c, v, k) + } + s.push(A), + o = Math.max(o, A.frames[F - 1]) + } + var H = i.readInt(!0); + if (H > 0) { + for (A = new t.EventTimeline(H), + c = 0; c < H; c++) { + v = i.readFloat(); + var W = r.events[i.readInt(!0)] + , j = new t.Event(v,W); + j.intValue = i.readInt(!1), + j.floatValue = i.readFloat(), + j.stringValue = i.readBoolean() ? i.readString() : W.stringValue, + null != j.data.audioPath && (j.volume = i.readFloat(), + j.balance = i.readFloat()), + A.setFrame(c, j) + } + s.push(A), + o = Math.max(o, A.frames[H - 1]) + } + return new t.Animation(n,s,o) + } + , + e.prototype.readCurve = function(t, i, n) { + switch (t.readByte()) { + case e.CURVE_STEPPED: + n.setStepped(i); + break; + case e.CURVE_BEZIER: + this.setCurve(n, i, t.readFloat(), t.readFloat(), t.readFloat(), t.readFloat()) + } + } + , + e.prototype.setCurve = function(t, e, i, n, r, s) { + t.setCurve(e, i, n, r, s) + } + , + e.AttachmentTypeValues = [0, 1, 2, 3, 4, 5, 6], + e.TransformModeValues = [t.TransformMode.Normal, t.TransformMode.OnlyTranslation, t.TransformMode.NoRotationOrReflection, t.TransformMode.NoScale, t.TransformMode.NoScaleOrReflection], + e.PositionModeValues = [t.PositionMode.Fixed, t.PositionMode.Percent], + e.SpacingModeValues = [t.SpacingMode.Length, t.SpacingMode.Fixed, t.SpacingMode.Percent], + e.RotateModeValues = [t.RotateMode.Tangent, t.RotateMode.Chain, t.RotateMode.ChainScale], + e.BlendModeValues = [t.BlendMode.Normal, t.BlendMode.Additive, t.BlendMode.Multiply, t.BlendMode.Screen], + e.BONE_ROTATE = 0, + e.BONE_TRANSLATE = 1, + e.BONE_SCALE = 2, + e.BONE_SHEAR = 3, + e.SLOT_ATTACHMENT = 0, + e.SLOT_COLOR = 1, + e.SLOT_TWO_COLOR = 2, + e.PATH_POSITION = 0, + e.PATH_SPACING = 1, + e.PATH_MIX = 2, + e.CURVE_LINEAR = 0, + e.CURVE_STEPPED = 1, + e.CURVE_BEZIER = 2, + e + } + )(); + t.SkeletonBinary = e; + var i = (function() { + function t(t, e, i, n) { + void 0 === e && (e = new Array), + void 0 === i && (i = 0), + void 0 === n && (n = new DataView(t.buffer)), + this.strings = e, + this.index = i, + this.buffer = n + } + return t.prototype.readByte = function() { + return this.buffer.getInt8(this.index++) + } + , + t.prototype.readShort = function() { + var t = this.buffer.getInt16(this.index); + return this.index += 2, + t + } + , + t.prototype.readInt32 = function() { + var t = this.buffer.getInt32(this.index); + return this.index += 4, + t + } + , + t.prototype.readInt = function(t) { + var e = this.readByte() + , i = 127 & e; + return 0 != (128 & e) && (i |= (127 & (e = this.readByte())) << 7, + 0 != (128 & e) && (i |= (127 & (e = this.readByte())) << 14, + 0 != (128 & e) && (i |= (127 & (e = this.readByte())) << 21, + 0 != (128 & e) && (i |= (127 & (e = this.readByte())) << 28)))), + t ? i : i >>> 1 ^ -(1 & i) + } + , + t.prototype.readStringRef = function() { + var t = this.readInt(!0); + return 0 == t ? null : this.strings[t - 1] + } + , + t.prototype.readString = function() { + var t = this.readInt(!0); + switch (t) { + case 0: + return null; + case 1: + return "" + } + t--; + for (var e = "", i = 0; i < t; ) { + var n = this.readByte(); + switch (n >> 4) { + case 12: + case 13: + e += String.fromCharCode((31 & n) << 6 | 63 & this.readByte()), + i += 2; + break; + case 14: + e += String.fromCharCode((15 & n) << 12 | (63 & this.readByte()) << 6 | 63 & this.readByte()), + i += 3; + break; + default: + e += String.fromCharCode(n), + i++ + } + } + return e + } + , + t.prototype.readFloat = function() { + var t = this.buffer.getFloat32(this.index); + return this.index += 4, + t + } + , + t.prototype.readBoolean = function() { + return 0 != this.readByte() + } + , + t + } + )() + , n = function(t, e, i, n, r) { + this.mesh = t, + this.skin = e, + this.slotIndex = i, + this.parent = n, + this.inheritDeform = r + } + , r = function(t, e) { + void 0 === t && (t = null), + void 0 === e && (e = null), + this.bones = t, + this.vertices = e + } + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e() { + this.minX = 0, + this.minY = 0, + this.maxX = 0, + this.maxY = 0, + this.boundingBoxes = new Array, + this.polygons = new Array, + this.polygonPool = new t.Pool(function() { + return t.Utils.newFloatArray(16) + } + ) + } + return e.prototype.update = function(e, i) { + if (null == e) + throw new Error("skeleton cannot be null."); + var n = this.boundingBoxes + , r = this.polygons + , s = this.polygonPool + , a = e.slots + , o = a.length; + n.length = 0, + s.freeAll(r), + r.length = 0; + for (var l = 0; l < o; l++) { + var h = a[l]; + if (h.bone.active) { + var c = h.getAttachment(); + if (c instanceof t.BoundingBoxAttachment) { + var u = c; + n.push(u); + var _ = s.obtain(); + _.length != u.worldVerticesLength && (_ = t.Utils.newFloatArray(u.worldVerticesLength)), + r.push(_), + u.computeWorldVertices(h, 0, u.worldVerticesLength, _, 0, 2) + } + } + } + i ? this.aabbCompute() : (this.minX = Number.POSITIVE_INFINITY, + this.minY = Number.POSITIVE_INFINITY, + this.maxX = Number.NEGATIVE_INFINITY, + this.maxY = Number.NEGATIVE_INFINITY) + } + , + e.prototype.aabbCompute = function() { + for (var t = Number.POSITIVE_INFINITY, e = Number.POSITIVE_INFINITY, i = Number.NEGATIVE_INFINITY, n = Number.NEGATIVE_INFINITY, r = this.polygons, s = 0, a = r.length; s < a; s++) + for (var o = r[s], l = o, h = 0, c = o.length; h < c; h += 2) { + var u = l[h] + , _ = l[h + 1]; + t = Math.min(t, u), + e = Math.min(e, _), + i = Math.max(i, u), + n = Math.max(n, _) + } + this.minX = t, + this.minY = e, + this.maxX = i, + this.maxY = n + } + , + e.prototype.aabbContainsPoint = function(t, e) { + return t >= this.minX && t <= this.maxX && e >= this.minY && e <= this.maxY + } + , + e.prototype.aabbIntersectsSegment = function(t, e, i, n) { + var r = this.minX + , s = this.minY + , a = this.maxX + , o = this.maxY; + if (t <= r && i <= r || e <= s && n <= s || t >= a && i >= a || e >= o && n >= o) + return !1; + var l = (n - e) / (i - t) + , h = l * (r - t) + e; + if (h > s && h < o) + return !0; + if ((h = l * (a - t) + e) > s && h < o) + return !0; + var c = (s - e) / l + t; + return c > r && c < a || (c = (o - e) / l + t) > r && c < a + } + , + e.prototype.aabbIntersectsSkeleton = function(t) { + return this.minX < t.maxX && this.maxX > t.minX && this.minY < t.maxY && this.maxY > t.minY + } + , + e.prototype.containsPoint = function(t, e) { + for (var i = this.polygons, n = 0, r = i.length; n < r; n++) + if (this.containsPointPolygon(i[n], t, e)) + return this.boundingBoxes[n]; + return null + } + , + e.prototype.containsPointPolygon = function(t, e, i) { + for (var n = t, r = t.length, s = r - 2, a = !1, o = 0; o < r; o += 2) { + var l = n[o + 1] + , h = n[s + 1]; + if (l < i && h >= i || h < i && l >= i) { + var c = n[o]; + c + (i - l) / (h - l) * (n[s] - c) < e && (a = !a) + } + s = o + } + return a + } + , + e.prototype.intersectsSegment = function(t, e, i, n) { + for (var r = this.polygons, s = 0, a = r.length; s < a; s++) + if (this.intersectsSegmentPolygon(r[s], t, e, i, n)) + return this.boundingBoxes[s]; + return null + } + , + e.prototype.intersectsSegmentPolygon = function(t, e, i, n, r) { + for (var s = t, a = t.length, o = e - n, l = i - r, h = e * r - i * n, c = s[a - 2], u = s[a - 1], _ = 0; _ < a; _ += 2) { + var f = s[_] + , d = s[_ + 1] + , p = c * d - u * f + , m = c - f + , y = u - d + , v = o * y - l * m + , g = (h * m - o * p) / v; + if ((g >= c && g <= f || g >= f && g <= c) && (g >= e && g <= n || g >= n && g <= e)) { + var A = (h * y - l * p) / v; + if ((A >= u && A <= d || A >= d && A <= u) && (A >= i && A <= r || A >= r && A <= i)) + return !0 + } + c = f, + u = d + } + return !1 + } + , + e.prototype.getPolygon = function(t) { + if (null == t) + throw new Error("boundingBox cannot be null."); + var e = this.boundingBoxes.indexOf(t); + return -1 == e ? null : this.polygons[e] + } + , + e.prototype.getWidth = function() { + return this.maxX - this.minX + } + , + e.prototype.getHeight = function() { + return this.maxY - this.minY + } + , + e + } + )(); + t.SkeletonBounds = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e() { + this.triangulator = new t.Triangulator, + this.clippingPolygon = new Array, + this.clipOutput = new Array, + this.clippedVertices = new Array, + this.clippedTriangles = new Array, + this.scratch = new Array + } + return e.prototype.clipStart = function(i, n) { + if (null != this.clipAttachment) + return 0; + this.clipAttachment = n; + var r = n.worldVerticesLength + , s = t.Utils.setArraySize(this.clippingPolygon, r); + n.computeWorldVertices(i, 0, r, s, 0, 2); + var a = this.clippingPolygon; + e.makeClockwise(a); + for (var o = this.clippingPolygons = this.triangulator.decompose(a, this.triangulator.triangulate(a)), l = 0, h = o.length; l < h; l++) { + var c = o[l]; + e.makeClockwise(c), + c.push(c[0]), + c.push(c[1]) + } + return o.length + } + , + e.prototype.clipEndWithSlot = function(t) { + null != this.clipAttachment && this.clipAttachment.endSlot == t.data && this.clipEnd() + } + , + e.prototype.clipEnd = function() { + null != this.clipAttachment && (this.clipAttachment = null, + this.clippingPolygons = null, + this.clippedVertices.length = 0, + this.clippedTriangles.length = 0, + this.clippingPolygon.length = 0) + } + , + e.prototype.isClipping = function() { + return null != this.clipAttachment + } + , + e.prototype.clipTriangles = function(e, i, n, r, s, a, o, l, h, c, u, _) { + var f = this.clipOutput + , d = this.clippedVertices + , p = this.clippedTriangles + , m = this.clippingPolygons + , y = this.clippingPolygons.length + , v = l ? 12 : 8 + , g = 0; + c = c || 0, + u = u || 0, + _ = _ || 0, + d.length = 0, + p.length = 0; + t: for (var A = c, x = c + r; A < x; A += 3) { + var b = n[A] * h + , C = b + u + , T = b + _ + , S = e[C] + , w = e[C + 1] + , E = s[T] + , M = s[T + 1]; + T = (b = n[A + 1] * h) + _; + var D = e[C = b + u] + , B = e[C + 1] + , I = s[T] + , P = s[T + 1]; + T = (b = n[A + 2] * h) + _; + for (var R = e[C = b + u], O = e[C + 1], L = s[T], F = s[T + 1], V = 0; V < y; V++) { + var N = d.length; + if (!this.clip(S, w, D, B, R, O, m[V], f)) { + (Y = t.Utils.setArraySize(d, N + 3 * v))[N] = S, + Y[N + 1] = w, + Y[N + 2] = a.r, + Y[N + 3] = a.g, + Y[N + 4] = a.b, + Y[N + 5] = a.a, + l ? (Y[N + 6] = E, + Y[N + 7] = M, + Y[N + 8] = o.r, + Y[N + 9] = o.g, + Y[N + 10] = o.b, + Y[N + 11] = o.a, + Y[N + 12] = D, + Y[N + 13] = B, + Y[N + 14] = a.r, + Y[N + 15] = a.g, + Y[N + 16] = a.b, + Y[N + 17] = a.a, + Y[N + 18] = I, + Y[N + 19] = P, + Y[N + 20] = o.r, + Y[N + 21] = o.g, + Y[N + 22] = o.b, + Y[N + 23] = o.a, + Y[N + 24] = R, + Y[N + 25] = O, + Y[N + 26] = a.r, + Y[N + 27] = a.g, + Y[N + 28] = a.b, + Y[N + 29] = a.a, + Y[N + 30] = L, + Y[N + 31] = F, + Y[N + 32] = o.r, + Y[N + 33] = o.g, + Y[N + 34] = o.b, + Y[N + 35] = o.a) : (Y[N + 6] = E, + Y[N + 7] = M, + Y[N + 8] = D, + Y[N + 9] = B, + Y[N + 10] = a.r, + Y[N + 11] = a.g, + Y[N + 12] = a.b, + Y[N + 13] = a.a, + Y[N + 14] = I, + Y[N + 15] = P, + Y[N + 16] = R, + Y[N + 17] = O, + Y[N + 18] = a.r, + Y[N + 19] = a.g, + Y[N + 20] = a.b, + Y[N + 21] = a.a, + Y[N + 22] = L, + Y[N + 23] = F), + N = p.length, + (it = t.Utils.setArraySize(p, N + 3))[N] = g, + it[N + 1] = g + 1, + it[N + 2] = g + 2, + g += 3; + continue t + } + var k = f.length; + if (0 != k) { + for (var G = B - O, U = R - D, z = S - R, H = O - w, W = 1 / (G * z + U * (w - O)), j = k >> 1, X = this.clipOutput, Y = t.Utils.setArraySize(d, N + j * v), q = 0; q < k; q += 2) { + var J = X[q] + , Z = X[q + 1]; + Y[N] = J, + Y[N + 1] = Z, + Y[N + 2] = a.r, + Y[N + 3] = a.g, + Y[N + 4] = a.b, + Y[N + 5] = a.a; + var K = J - R + , Q = Z - O + , $ = (G * K + U * Q) * W + , tt = (H * K + z * Q) * W + , et = 1 - $ - tt; + Y[N + 6] = E * $ + I * tt + L * et, + Y[N + 7] = M * $ + P * tt + F * et, + l && (Y[N + 8] = o.r, + Y[N + 9] = o.g, + Y[N + 10] = o.b, + Y[N + 11] = o.a), + N += v + } + N = p.length; + var it = t.Utils.setArraySize(p, N + 3 * (j - 2)); + for (j--, + q = 1; q < j; q++) + it[N] = g, + it[N + 1] = g + q, + it[N + 2] = g + q + 1, + N += 3; + g += j + 1 + } + } + } + } + , + e.prototype.clip = function(t, e, i, n, r, s, a, o) { + var l = o + , h = !1 + , c = null; + a.length % 4 >= 2 ? (c = o, + o = this.scratch) : c = this.scratch, + c.length = 0, + c.push(t), + c.push(e), + c.push(i), + c.push(n), + c.push(r), + c.push(s), + c.push(t), + c.push(e), + o.length = 0; + for (var u = a, _ = a.length - 4, f = 0; ; f += 2) { + for (var d = u[f], p = u[f + 1], m = u[f + 2], y = u[f + 3], v = d - m, g = p - y, A = c, x = c.length - 2, b = o.length, C = 0; C < x; C += 2) { + var T = A[C] + , S = A[C + 1] + , w = A[C + 2] + , E = A[C + 3] + , M = v * (E - y) - g * (w - m) > 0; + if (v * (S - y) - g * (T - m) > 0) { + if (M) { + o.push(w), + o.push(E); + continue + } + var D = (I = E - S) * (m - d) - (P = w - T) * (y - p); + if (Math.abs(D) > 1e-6) { + var B = (P * (p - S) - I * (d - T)) / D; + o.push(d + (m - d) * B), + o.push(p + (y - p) * B) + } else + o.push(d), + o.push(p) + } else if (M) { + var I, P; + D = (I = E - S) * (m - d) - (P = w - T) * (y - p), + Math.abs(D) > 1e-6 ? (B = (P * (p - S) - I * (d - T)) / D, + o.push(d + (m - d) * B), + o.push(p + (y - p) * B)) : (o.push(d), + o.push(p)), + o.push(w), + o.push(E) + } + h = !0 + } + if (b == o.length) + return l.length = 0, + !0; + if (o.push(o[0]), + o.push(o[1]), + f == _) + break; + var R = o; + (o = c).length = 0, + c = R + } + if (l != o) { + l.length = 0, + f = 0; + for (var O = o.length - 2; f < O; f++) + l[f] = o[f] + } else + l.length = l.length - 2; + return h + } + , + e.makeClockwise = function(t) { + for (var e = t, i = t.length, n = e[i - 2] * e[1] - e[0] * e[i - 1], r = 0, s = 0, a = 0, o = 0, l = i - 3; o < l; o += 2) + r = e[o], + s = e[o + 1], + a = e[o + 2], + n += r * e[o + 3] - a * s; + if (!(n < 0)) { + o = 0; + var h = i - 2; + for (l = i >> 1; o < l; o += 2) { + var c = e[o] + , u = e[o + 1] + , _ = h - o; + e[o] = e[_], + e[o + 1] = e[_ + 1], + e[_] = c, + e[_ + 1] = u + } + } + } + , + e + } + )(); + t.SkeletonClipping = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function t() { + this.bones = new Array, + this.slots = new Array, + this.skins = new Array, + this.events = new Array, + this.animations = new Array, + this.ikConstraints = new Array, + this.transformConstraints = new Array, + this.pathConstraints = new Array, + this.fps = 0 + } + return t.prototype.findBone = function(t) { + if (null == t) + throw new Error("boneName cannot be null."); + for (var e = this.bones, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.name == t) + return r + } + return null + } + , + t.prototype.findBoneIndex = function(t) { + if (null == t) + throw new Error("boneName cannot be null."); + for (var e = this.bones, i = 0, n = e.length; i < n; i++) + if (e[i].name == t) + return i; + return -1 + } + , + t.prototype.findSlot = function(t) { + if (null == t) + throw new Error("slotName cannot be null."); + for (var e = this.slots, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.name == t) + return r + } + return null + } + , + t.prototype.findSlotIndex = function(t) { + if (null == t) + throw new Error("slotName cannot be null."); + for (var e = this.slots, i = 0, n = e.length; i < n; i++) + if (e[i].name == t) + return i; + return -1 + } + , + t.prototype.findSkin = function(t) { + if (null == t) + throw new Error("skinName cannot be null."); + for (var e = this.skins, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.name == t) + return r + } + return null + } + , + t.prototype.findEvent = function(t) { + if (null == t) + throw new Error("eventDataName cannot be null."); + for (var e = this.events, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.name == t) + return r + } + return null + } + , + t.prototype.findAnimation = function(t) { + if (null == t) + throw new Error("animationName cannot be null."); + for (var e = this.animations, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.name == t) + return r + } + return null + } + , + t.prototype.findIkConstraint = function(t) { + if (null == t) + throw new Error("constraintName cannot be null."); + for (var e = this.ikConstraints, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.name == t) + return r + } + return null + } + , + t.prototype.findTransformConstraint = function(t) { + if (null == t) + throw new Error("constraintName cannot be null."); + for (var e = this.transformConstraints, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.name == t) + return r + } + return null + } + , + t.prototype.findPathConstraint = function(t) { + if (null == t) + throw new Error("constraintName cannot be null."); + for (var e = this.pathConstraints, i = 0, n = e.length; i < n; i++) { + var r = e[i]; + if (r.name == t) + return r + } + return null + } + , + t.prototype.findPathConstraintIndex = function(t) { + if (null == t) + throw new Error("pathConstraintName cannot be null."); + for (var e = this.pathConstraints, i = 0, n = e.length; i < n; i++) + if (e[i].name == t) + return i; + return -1 + } + , + t + } + )(); + t.SkeletonData = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(t) { + this.scale = 1, + this.linkedMeshes = new Array, + this.attachmentLoader = t + } + return e.prototype.readSkeletonData = function(i) { + var n = this.scale + , r = new t.SkeletonData + , s = "string" == typeof i ? JSON.parse(i) : i + , a = s.skeleton; + if (null != a && (r.hash = a.hash, + r.version = a.spine, + r.x = a.x, + r.y = a.y, + r.width = a.width, + r.height = a.height, + r.fps = a.fps, + r.imagesPath = a.images), + s.bones) + for (var o = 0; o < s.bones.length; o++) { + var l = s.bones[o] + , h = null + , c = this.getValue(l, "parent", null); + if (null != c && null == (h = r.findBone(c))) + throw new Error("Parent bone not found: " + c); + (d = new t.BoneData(r.bones.length,l.name,h)).length = this.getValue(l, "length", 0) * n, + d.x = this.getValue(l, "x", 0) * n, + d.y = this.getValue(l, "y", 0) * n, + d.rotation = this.getValue(l, "rotation", 0), + d.scaleX = this.getValue(l, "scaleX", 1), + d.scaleY = this.getValue(l, "scaleY", 1), + d.shearX = this.getValue(l, "shearX", 0), + d.shearY = this.getValue(l, "shearY", 0), + d.transformMode = e.transformModeFromString(this.getValue(l, "transform", "normal")), + d.skinRequired = this.getValue(l, "skin", !1), + r.bones.push(d) + } + if (s.slots) + for (o = 0; o < s.slots.length; o++) { + var u = (D = s.slots[o]).name + , _ = D.bone + , f = r.findBone(_); + if (null == f) + throw new Error("Slot bone not found: " + _); + var d = new t.SlotData(r.slots.length,u,f) + , p = this.getValue(D, "color", null); + null != p && d.color.setFromString(p); + var m = this.getValue(D, "dark", null); + null != m && (d.darkColor = new t.Color(1,1,1,1), + d.darkColor.setFromString(m)), + d.attachmentName = this.getValue(D, "attachment", null), + d.blendMode = e.blendModeFromString(this.getValue(D, "blend", "normal")), + r.slots.push(d) + } + if (s.ik) + for (o = 0; o < s.ik.length; o++) { + var y = s.ik[o]; + (d = new t.IkConstraintData(y.name)).order = this.getValue(y, "order", 0), + d.skinRequired = this.getValue(y, "skin", !1); + for (var v = 0; v < y.bones.length; v++) { + if (_ = y.bones[v], + null == (w = r.findBone(_))) + throw new Error("IK bone not found: " + _); + d.bones.push(w) + } + var g = y.target; + if (d.target = r.findBone(g), + null == d.target) + throw new Error("IK target bone not found: " + g); + d.mix = this.getValue(y, "mix", 1), + d.softness = this.getValue(y, "softness", 0) * n, + d.bendDirection = this.getValue(y, "bendPositive", !0) ? 1 : -1, + d.compress = this.getValue(y, "compress", !1), + d.stretch = this.getValue(y, "stretch", !1), + d.uniform = this.getValue(y, "uniform", !1), + r.ikConstraints.push(d) + } + if (s.transform) + for (o = 0; o < s.transform.length; o++) { + for (y = s.transform[o], + (d = new t.TransformConstraintData(y.name)).order = this.getValue(y, "order", 0), + d.skinRequired = this.getValue(y, "skin", !1), + v = 0; v < y.bones.length; v++) { + if (_ = y.bones[v], + null == (w = r.findBone(_))) + throw new Error("Transform constraint bone not found: " + _); + d.bones.push(w) + } + if (g = y.target, + d.target = r.findBone(g), + null == d.target) + throw new Error("Transform constraint target bone not found: " + g); + d.local = this.getValue(y, "local", !1), + d.relative = this.getValue(y, "relative", !1), + d.offsetRotation = this.getValue(y, "rotation", 0), + d.offsetX = this.getValue(y, "x", 0) * n, + d.offsetY = this.getValue(y, "y", 0) * n, + d.offsetScaleX = this.getValue(y, "scaleX", 0), + d.offsetScaleY = this.getValue(y, "scaleY", 0), + d.offsetShearY = this.getValue(y, "shearY", 0), + d.rotateMix = this.getValue(y, "rotateMix", 1), + d.translateMix = this.getValue(y, "translateMix", 1), + d.scaleMix = this.getValue(y, "scaleMix", 1), + d.shearMix = this.getValue(y, "shearMix", 1), + r.transformConstraints.push(d) + } + if (s.path) + for (o = 0; o < s.path.length; o++) { + for (y = s.path[o], + (d = new t.PathConstraintData(y.name)).order = this.getValue(y, "order", 0), + d.skinRequired = this.getValue(y, "skin", !1), + v = 0; v < y.bones.length; v++) { + if (_ = y.bones[v], + null == (w = r.findBone(_))) + throw new Error("Transform constraint bone not found: " + _); + d.bones.push(w) + } + if (g = y.target, + d.target = r.findSlot(g), + null == d.target) + throw new Error("Path target slot not found: " + g); + d.positionMode = e.positionModeFromString(this.getValue(y, "positionMode", "percent")), + d.spacingMode = e.spacingModeFromString(this.getValue(y, "spacingMode", "length")), + d.rotateMode = e.rotateModeFromString(this.getValue(y, "rotateMode", "tangent")), + d.offsetRotation = this.getValue(y, "rotation", 0), + d.position = this.getValue(y, "position", 0), + d.positionMode == t.PositionMode.Fixed && (d.position *= n), + d.spacing = this.getValue(y, "spacing", 0), + d.spacingMode != t.SpacingMode.Length && d.spacingMode != t.SpacingMode.Fixed || (d.spacing *= n), + d.rotateMix = this.getValue(y, "rotateMix", 1), + d.translateMix = this.getValue(y, "translateMix", 1), + r.pathConstraints.push(d) + } + if (s.skins) { + var A = s.skins; + if (!(A instanceof Array)) { + var x = []; + for (var b in A) + x.push({ + name: b, + attachments: A[b] + }); + A = x + } + for (o = 0; o < A.length; o++) { + var C = A[o] + , T = new t.Skin(C.name); + if (C.bones) + for (var S = 0; S < C.bones.length; S++) { + var w; + if (null == (w = r.findBone(C.bones[S]))) + throw new Error("Skin bone not found: " + C.bones[o]); + T.bones.push(w) + } + if (C.ik) + for (S = 0; S < C.ik.length; S++) { + if (null == (E = r.findIkConstraint(C.ik[S]))) + throw new Error("Skin IK constraint not found: " + C.ik[o]); + T.constraints.push(E) + } + if (C.transform) + for (S = 0; S < C.transform.length; S++) { + if (null == (E = r.findTransformConstraint(C.transform[S]))) + throw new Error("Skin transform constraint not found: " + C.transform[o]); + T.constraints.push(E) + } + if (C.path) + for (S = 0; S < C.path.length; S++) { + var E; + if (null == (E = r.findPathConstraint(C.path[S]))) + throw new Error("Skin path constraint not found: " + C.path[o]); + T.constraints.push(E) + } + for (var u in C.attachments) { + var M = r.findSlot(u); + if (null == M) + throw new Error("Slot not found: " + u); + var D = C.attachments[u]; + for (var B in D) { + var I = this.readAttachment(D[B], T, M.index, B, r); + null != I && T.setAttachment(M.index, B, I) + } + } + r.skins.push(T), + "default" == T.name && (r.defaultSkin = T) + } + } + o = 0; + for (var P = this.linkedMeshes.length; o < P; o++) { + var R = this.linkedMeshes[o]; + if (null == (T = null == R.skin ? r.defaultSkin : r.findSkin(R.skin))) + throw new Error("Skin not found: " + R.skin); + var O = T.getAttachment(R.slotIndex, R.parent); + if (null == O) + throw new Error("Parent mesh not found: " + R.parent); + R.mesh.deformAttachment = R.inheritDeform ? O : R.mesh, + R.mesh.setParentMesh(O), + R.mesh.updateUVs() + } + if (this.linkedMeshes.length = 0, + s.events) + for (var L in s.events) { + var F = s.events[L]; + (d = new t.EventData(L)).intValue = this.getValue(F, "int", 0), + d.floatValue = this.getValue(F, "float", 0), + d.stringValue = this.getValue(F, "string", ""), + d.audioPath = this.getValue(F, "audio", null), + null != d.audioPath && (d.volume = this.getValue(F, "volume", 1), + d.balance = this.getValue(F, "balance", 0)), + r.events.push(d) + } + if (s.animations) + for (var V in s.animations) { + var N = s.animations[V]; + this.readAnimation(N, V, r) + } + return r + } + , + e.prototype.readAttachment = function(e, n, r, s, a) { + var o = this.scale; + switch (s = this.getValue(e, "name", s), + this.getValue(e, "type", "region")) { + case "region": + var l = this.getValue(e, "path", s) + , h = this.attachmentLoader.newRegionAttachment(n, s, l); + return null == h ? null : (h.path = l, + h.x = this.getValue(e, "x", 0) * o, + h.y = this.getValue(e, "y", 0) * o, + h.scaleX = this.getValue(e, "scaleX", 1), + h.scaleY = this.getValue(e, "scaleY", 1), + h.rotation = this.getValue(e, "rotation", 0), + h.width = e.width * o, + h.height = e.height * o, + null != (g = this.getValue(e, "color", null)) && h.color.setFromString(g), + h.updateOffset(), + h); + case "boundingbox": + var c = this.attachmentLoader.newBoundingBoxAttachment(n, s); + return null == c ? null : (this.readVertices(e, c, e.vertexCount << 1), + null != (g = this.getValue(e, "color", null)) && c.color.setFromString(g), + c); + case "mesh": + case "linkedmesh": + l = this.getValue(e, "path", s); + var u = this.attachmentLoader.newMeshAttachment(n, s, l); + if (null == u) + return null; + u.path = l, + null != (g = this.getValue(e, "color", null)) && u.color.setFromString(g), + u.width = this.getValue(e, "width", 0) * o, + u.height = this.getValue(e, "height", 0) * o; + var _ = this.getValue(e, "parent", null); + if (null != _) + return this.linkedMeshes.push(new i(u,this.getValue(e, "skin", null),r,_,this.getValue(e, "deform", !0))), + u; + var f = e.uvs; + return this.readVertices(e, u, f.length), + u.triangles = e.triangles, + u.regionUVs = f, + u.updateUVs(), + u.edges = this.getValue(e, "edges", null), + u.hullLength = 2 * this.getValue(e, "hull", 0), + u; + case "path": + if (null == (l = this.attachmentLoader.newPathAttachment(n, s))) + return null; + l.closed = this.getValue(e, "closed", !1), + l.constantSpeed = this.getValue(e, "constantSpeed", !0); + var d = e.vertexCount; + this.readVertices(e, l, d << 1); + for (var p = t.Utils.newArray(d / 3, 0), m = 0; m < e.lengths.length; m++) + p[m] = e.lengths[m] * o; + return l.lengths = p, + null != (g = this.getValue(e, "color", null)) && l.color.setFromString(g), + l; + case "point": + var y = this.attachmentLoader.newPointAttachment(n, s); + return null == y ? null : (y.x = this.getValue(e, "x", 0) * o, + y.y = this.getValue(e, "y", 0) * o, + y.rotation = this.getValue(e, "rotation", 0), + null != (g = this.getValue(e, "color", null)) && y.color.setFromString(g), + y); + case "clipping": + var v = this.attachmentLoader.newClippingAttachment(n, s); + if (null == v) + return null; + var g, A = this.getValue(e, "end", null); + if (null != A) { + var x = a.findSlot(A); + if (null == x) + throw new Error("Clipping end slot not found: " + A); + v.endSlot = x + } + return d = e.vertexCount, + this.readVertices(e, v, d << 1), + null != (g = this.getValue(e, "color", null)) && v.color.setFromString(g), + v + } + return null + } + , + e.prototype.readVertices = function(e, i, n) { + var r = this.scale; + i.worldVerticesLength = n; + var s = e.vertices; + if (n != s.length) { + var a = new Array + , o = new Array; + for (u = 0, + _ = s.length; u < _; ) { + var l = s[u++]; + o.push(l); + for (var h = u + 4 * l; u < h; u += 4) + o.push(s[u]), + a.push(s[u + 1] * r), + a.push(s[u + 2] * r), + a.push(s[u + 3]) + } + i.bones = o, + i.vertices = t.Utils.toFloatArray(a) + } else { + var c = t.Utils.toFloatArray(s); + if (1 != r) + for (var u = 0, _ = s.length; u < _; u++) + c[u] *= r; + i.vertices = c + } + } + , + e.prototype.readAnimation = function(e, i, n) { + var r = this.scale + , s = new Array + , a = 0; + if (e.slots) + for (var o in e.slots) { + var l = e.slots[o]; + if (-1 == (K = n.findSlotIndex(o))) + throw new Error("Slot not found: " + o); + for (var h in l) { + var c = l[h]; + if ("attachment" == h) { + (A = new t.AttachmentTimeline(c.length)).slotIndex = K; + for (var u = 0, _ = 0; _ < c.length; _++) { + var f = c[_]; + A.setFrame(u++, this.getValue(f, "time", 0), f.name) + } + s.push(A), + a = Math.max(a, A.frames[A.getFrameCount() - 1]) + } else if ("color" == h) { + for ((A = new t.ColorTimeline(c.length)).slotIndex = K, + u = 0, + _ = 0; _ < c.length; _++) { + f = c[_]; + var d = new t.Color; + d.setFromString(f.color), + A.setFrame(u, this.getValue(f, "time", 0), d.r, d.g, d.b, d.a), + this.readCurve(f, A, u), + u++ + } + s.push(A), + a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.ColorTimeline.ENTRIES]) + } else { + if ("twoColor" != h) + throw new Error("Invalid timeline type for a slot: " + h + " (" + o + ")"); + for ((A = new t.TwoColorTimeline(c.length)).slotIndex = K, + u = 0, + _ = 0; _ < c.length; _++) { + f = c[_]; + var p = new t.Color + , m = new t.Color; + p.setFromString(f.light), + m.setFromString(f.dark), + A.setFrame(u, this.getValue(f, "time", 0), p.r, p.g, p.b, p.a, m.r, m.g, m.b), + this.readCurve(f, A, u), + u++ + } + s.push(A), + a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.TwoColorTimeline.ENTRIES]) + } + } + } + if (e.bones) + for (var y in e.bones) { + var v = e.bones[y] + , g = n.findBoneIndex(y); + if (-1 == g) + throw new Error("Bone not found: " + y); + for (var h in v) + if (c = v[h], + "rotate" === h) { + for ((A = new t.RotateTimeline(c.length)).boneIndex = g, + u = 0, + _ = 0; _ < c.length; _++) + f = c[_], + A.setFrame(u, this.getValue(f, "time", 0), this.getValue(f, "angle", 0)), + this.readCurve(f, A, u), + u++; + s.push(A), + a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.RotateTimeline.ENTRIES]) + } else { + if ("translate" !== h && "scale" !== h && "shear" !== h) + throw new Error("Invalid timeline type for a bone: " + h + " (" + y + ")"); + var A = null + , x = 1 + , b = 0; + for ("scale" === h ? (A = new t.ScaleTimeline(c.length), + b = 1) : "shear" === h ? A = new t.ShearTimeline(c.length) : (A = new t.TranslateTimeline(c.length), + x = r), + A.boneIndex = g, + u = 0, + _ = 0; _ < c.length; _++) { + f = c[_]; + var C = this.getValue(f, "x", b) + , T = this.getValue(f, "y", b); + A.setFrame(u, this.getValue(f, "time", 0), C * x, T * x), + this.readCurve(f, A, u), + u++ + } + s.push(A), + a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.TranslateTimeline.ENTRIES]) + } + } + if (e.ik) + for (var S in e.ik) { + var w = e.ik[S] + , E = n.findIkConstraint(S); + for ((A = new t.IkConstraintTimeline(w.length)).ikConstraintIndex = n.ikConstraints.indexOf(E), + u = 0, + _ = 0; _ < w.length; _++) + f = w[_], + A.setFrame(u, this.getValue(f, "time", 0), this.getValue(f, "mix", 1), this.getValue(f, "softness", 0) * r, this.getValue(f, "bendPositive", !0) ? 1 : -1, this.getValue(f, "compress", !1), this.getValue(f, "stretch", !1)), + this.readCurve(f, A, u), + u++; + s.push(A), + a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.IkConstraintTimeline.ENTRIES]) + } + if (e.transform) + for (var S in e.transform) { + for (w = e.transform[S], + E = n.findTransformConstraint(S), + (A = new t.TransformConstraintTimeline(w.length)).transformConstraintIndex = n.transformConstraints.indexOf(E), + u = 0, + _ = 0; _ < w.length; _++) + f = w[_], + A.setFrame(u, this.getValue(f, "time", 0), this.getValue(f, "rotateMix", 1), this.getValue(f, "translateMix", 1), this.getValue(f, "scaleMix", 1), this.getValue(f, "shearMix", 1)), + this.readCurve(f, A, u), + u++; + s.push(A), + a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.TransformConstraintTimeline.ENTRIES]) + } + var M = e.path || e.paths; + if (M) + for (var S in M) { + w = M[S]; + var D = n.findPathConstraintIndex(S); + if (-1 == D) + throw new Error("Path constraint not found: " + S); + var B = n.pathConstraints[D]; + for (var h in w) + if (c = w[h], + "position" === h || "spacing" === h) { + for (A = null, + x = 1, + "spacing" === h ? (A = new t.PathConstraintSpacingTimeline(c.length), + B.spacingMode != t.SpacingMode.Length && B.spacingMode != t.SpacingMode.Fixed || (x = r)) : (A = new t.PathConstraintPositionTimeline(c.length), + B.positionMode == t.PositionMode.Fixed && (x = r)), + A.pathConstraintIndex = D, + u = 0, + _ = 0; _ < c.length; _++) + f = c[_], + A.setFrame(u, this.getValue(f, "time", 0), this.getValue(f, h, 0) * x), + this.readCurve(f, A, u), + u++; + s.push(A), + a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.PathConstraintPositionTimeline.ENTRIES]) + } else if ("mix" === h) { + for ((A = new t.PathConstraintMixTimeline(c.length)).pathConstraintIndex = D, + u = 0, + _ = 0; _ < c.length; _++) + f = c[_], + A.setFrame(u, this.getValue(f, "time", 0), this.getValue(f, "rotateMix", 1), this.getValue(f, "translateMix", 1)), + this.readCurve(f, A, u), + u++; + s.push(A), + a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.PathConstraintMixTimeline.ENTRIES]) + } + } + if (e.deform) + for (var I in e.deform) { + var P = e.deform[I] + , R = n.findSkin(I); + if (null == R) + throw new Error("Skin not found: " + I); + for (var o in P) { + if (l = P[o], + -1 == (K = n.findSlotIndex(o))) + throw new Error("Slot not found: " + l.name); + for (var h in l) { + c = l[h]; + var O = R.getAttachment(K, h); + if (null != O) { + var L = null != O.bones + , F = O.vertices + , V = L ? F.length / 3 * 2 : F.length; + (A = new t.DeformTimeline(c.length)).slotIndex = K, + A.attachment = O, + u = 0; + for (var N = 0; N < c.length; N++) { + f = c[N]; + var k = void 0 + , G = this.getValue(f, "vertices", null); + if (null == G) + k = L ? t.Utils.newFloatArray(V) : F; + else { + k = t.Utils.newFloatArray(V); + var U = this.getValue(f, "offset", 0); + if (t.Utils.arrayCopy(G, 0, k, U, G.length), + 1 != r) + for (var z = (_ = U) + G.length; _ < z; _++) + k[_] *= r; + if (!L) + for (_ = 0; _ < V; _++) + k[_] += F[_] + } + A.setFrame(u, this.getValue(f, "time", 0), k), + this.readCurve(f, A, u), + u++ + } + s.push(A), + a = Math.max(a, A.frames[A.getFrameCount() - 1]) + } + } + } + } + var H = e.drawOrder; + if (null == H && (H = e.draworder), + null != H) { + A = new t.DrawOrderTimeline(H.length); + var W = n.slots.length; + for (u = 0, + N = 0; N < H.length; N++) { + var j = H[N] + , X = null + , Y = this.getValue(j, "offsets", null); + if (null != Y) { + X = t.Utils.newArray(W, -1); + var q = t.Utils.newArray(W - Y.length, 0) + , J = 0 + , Z = 0; + for (_ = 0; _ < Y.length; _++) { + var K, Q = Y[_]; + if (-1 == (K = n.findSlotIndex(Q.slot))) + throw new Error("Slot not found: " + Q.slot); + for (; J != K; ) + q[Z++] = J++; + X[J + Q.offset] = J++ + } + for (; J < W; ) + q[Z++] = J++; + for (_ = W - 1; _ >= 0; _--) + -1 == X[_] && (X[_] = q[--Z]) + } + A.setFrame(u++, this.getValue(j, "time", 0), X) + } + s.push(A), + a = Math.max(a, A.frames[A.getFrameCount() - 1]) + } + if (e.events) { + for (A = new t.EventTimeline(e.events.length), + u = 0, + _ = 0; _ < e.events.length; _++) { + var $ = e.events[_] + , tt = n.findEvent($.name); + if (null == tt) + throw new Error("Event not found: " + $.name); + var et = new t.Event(t.Utils.toSinglePrecision(this.getValue($, "time", 0)),tt); + et.intValue = this.getValue($, "int", tt.intValue), + et.floatValue = this.getValue($, "float", tt.floatValue), + et.stringValue = this.getValue($, "string", tt.stringValue), + null != et.data.audioPath && (et.volume = this.getValue($, "volume", 1), + et.balance = this.getValue($, "balance", 0)), + A.setFrame(u++, et) + } + s.push(A), + a = Math.max(a, A.frames[A.getFrameCount() - 1]) + } + if (isNaN(a)) + throw new Error("Error while parsing animation, duration is NaN"); + n.animations.push(new t.Animation(i,s,a)) + } + , + e.prototype.readCurve = function(t, e, i) { + var n = t.curve; + n && ("stepped" == n ? e.setStepped(i) : "[object Array]" === Object.prototype.toString.call(n) ? e.setCurve(i, n[0], n[1], n[2], n[3]) : e.setCurve(i, n, this.getValue(t, "c2", 0), this.getValue(t, "c3", 1), this.getValue(t, "c4", 1))) + } + , + e.prototype.getValue = function(t, e, i) { + return void 0 !== t[e] ? t[e] : i + } + , + e.blendModeFromString = function(e) { + if ("normal" == (e = e.toLowerCase())) + return t.BlendMode.Normal; + if ("additive" == e) + return t.BlendMode.Additive; + if ("multiply" == e) + return t.BlendMode.Multiply; + if ("screen" == e) + return t.BlendMode.Screen; + throw new Error("Unknown blend mode: " + e) + } + , + e.positionModeFromString = function(e) { + if ("fixed" == (e = e.toLowerCase())) + return t.PositionMode.Fixed; + if ("percent" == e) + return t.PositionMode.Percent; + throw new Error("Unknown position mode: " + e) + } + , + e.spacingModeFromString = function(e) { + if ("length" == (e = e.toLowerCase())) + return t.SpacingMode.Length; + if ("fixed" == e) + return t.SpacingMode.Fixed; + if ("percent" == e) + return t.SpacingMode.Percent; + throw new Error("Unknown position mode: " + e) + } + , + e.rotateModeFromString = function(e) { + if ("tangent" == (e = e.toLowerCase())) + return t.RotateMode.Tangent; + if ("chain" == e) + return t.RotateMode.Chain; + if ("chainscale" == e) + return t.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + e) + } + , + e.transformModeFromString = function(e) { + if ("normal" == (e = e.toLowerCase())) + return t.TransformMode.Normal; + if ("onlytranslation" == e) + return t.TransformMode.OnlyTranslation; + if ("norotationorreflection" == e) + return t.TransformMode.NoRotationOrReflection; + if ("noscale" == e) + return t.TransformMode.NoScale; + if ("noscaleorreflection" == e) + return t.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + e) + } + , + e + } + )(); + t.SkeletonJson = e; + var i = function(t, e, i, n, r) { + this.mesh = t, + this.skin = e, + this.slotIndex = i, + this.parent = n, + this.inheritDeform = r + } + } + )(r || (r = {})), + (function(t) { + var e = function(t, e, i) { + this.slotIndex = t, + this.name = e, + this.attachment = i + }; + t.SkinEntry = e; + var i = (function() { + function i(t) { + if (this.attachments = new Array, + this.bones = Array(), + this.constraints = new Array, + null == t) + throw new Error("name cannot be null."); + this.name = t + } + return i.prototype.setAttachment = function(t, e, i) { + if (null == i) + throw new Error("attachment cannot be null."); + var n = this.attachments; + t >= n.length && (n.length = t + 1), + n[t] || (n[t] = {}), + n[t][e] = i + } + , + i.prototype.addSkin = function(t) { + for (var e = 0; e < t.bones.length; e++) { + for (var i = t.bones[e], n = !1, r = 0; r < this.bones.length; r++) + if (this.bones[r] == i) { + n = !0; + break + } + n || this.bones.push(i) + } + for (e = 0; e < t.constraints.length; e++) { + var s = t.constraints[e]; + for (n = !1, + r = 0; r < this.constraints.length; r++) + if (this.constraints[r] == s) { + n = !0; + break + } + n || this.constraints.push(s) + } + var a = t.getAttachments(); + for (e = 0; e < a.length; e++) { + var o = a[e]; + this.setAttachment(o.slotIndex, o.name, o.attachment) + } + } + , + i.prototype.copySkin = function(e) { + for (var i = 0; i < e.bones.length; i++) { + for (var n = e.bones[i], r = !1, s = 0; s < this.bones.length; s++) + if (this.bones[s] == n) { + r = !0; + break + } + r || this.bones.push(n) + } + for (i = 0; i < e.constraints.length; i++) { + var a = e.constraints[i]; + for (r = !1, + s = 0; s < this.constraints.length; s++) + if (this.constraints[s] == a) { + r = !0; + break + } + r || this.constraints.push(a) + } + var o = e.getAttachments(); + for (i = 0; i < o.length; i++) { + var l = o[i]; + null != l.attachment && (l.attachment instanceof t.MeshAttachment ? (l.attachment = l.attachment.newLinkedMesh(), + this.setAttachment(l.slotIndex, l.name, l.attachment)) : (l.attachment = l.attachment.copy(), + this.setAttachment(l.slotIndex, l.name, l.attachment))) + } + } + , + i.prototype.getAttachment = function(t, e) { + var i = this.attachments[t]; + return i ? i[e] : null + } + , + i.prototype.removeAttachment = function(t, e) { + var i = this.attachments[t]; + i && (i[e] = null) + } + , + i.prototype.getAttachments = function() { + for (var t = new Array, i = 0; i < this.attachments.length; i++) { + var n = this.attachments[i]; + if (n) + for (var r in n) { + var s = n[r]; + s && t.push(new e(i,r,s)) + } + } + return t + } + , + i.prototype.getAttachmentsForSlot = function(t, i) { + var n = this.attachments[t]; + if (n) + for (var r in n) { + var s = n[r]; + s && i.push(new e(t,r,s)) + } + } + , + i.prototype.clear = function() { + this.attachments.length = 0, + this.bones.length = 0, + this.constraints.length = 0 + } + , + i.prototype.attachAll = function(t, e) { + for (var i = 0, n = 0; n < t.slots.length; n++) { + var r = t.slots[n] + , s = r.getAttachment(); + if (s && i < e.attachments.length) { + var a = e.attachments[i]; + for (var o in a) + if (s == a[o]) { + var l = this.getAttachment(i, o); + null != l && r.setAttachment(l); + break + } + } + i++ + } + } + , + i + } + )(); + t.Skin = i + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(e, i) { + if (this.deform = new Array, + null == e) + throw new Error("data cannot be null."); + if (null == i) + throw new Error("bone cannot be null."); + this.data = e, + this.bone = i, + this.color = new t.Color, + this.darkColor = null == e.darkColor ? null : new t.Color, + this.setToSetupPose() + } + return e.prototype.getSkeleton = function() { + return this.bone.skeleton + } + , + e.prototype.getAttachment = function() { + return this.attachment + } + , + e.prototype.setAttachment = function(t) { + this.attachment != t && (this.attachment = t, + this.attachmentTime = this.bone.skeleton.time, + this.deform.length = 0) + } + , + e.prototype.setAttachmentTime = function(t) { + this.attachmentTime = this.bone.skeleton.time - t + } + , + e.prototype.getAttachmentTime = function() { + return this.bone.skeleton.time - this.attachmentTime + } + , + e.prototype.setToSetupPose = function() { + this.color.setFromColor(this.data.color), + null != this.darkColor && this.darkColor.setFromColor(this.data.darkColor), + null == this.data.attachmentName ? this.attachment = null : (this.attachment = null, + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName))) + } + , + e + } + )(); + t.Slot = e + } + )(r || (r = {})), + (function(t) { + t.SlotData = function(e, i, n) { + if (this.color = new t.Color(1,1,1,1), + e < 0) + throw new Error("index must be >= 0."); + if (null == i) + throw new Error("name cannot be null."); + if (null == n) + throw new Error("boneData cannot be null."); + this.index = e, + this.name = i, + this.boneData = n + } + } + )(r || (r = {})), + (function(t) { + var e, i, n = (function() { + function t(t) { + this._image = t + } + return t.prototype.getImage = function() { + return this._image + } + , + t.filterFromString = function(t) { + switch (t.toLowerCase()) { + case "nearest": + return e.Nearest; + case "linear": + return e.Linear; + case "mipmap": + return e.MipMap; + case "mipmapnearestnearest": + return e.MipMapNearestNearest; + case "mipmaplinearnearest": + return e.MipMapLinearNearest; + case "mipmapnearestlinear": + return e.MipMapNearestLinear; + case "mipmaplinearlinear": + return e.MipMapLinearLinear; + default: + throw new Error("Unknown texture filter " + t) + } + } + , + t.wrapFromString = function(t) { + switch (t.toLowerCase()) { + case "mirroredtepeat": + return i.MirroredRepeat; + case "clamptoedge": + return i.ClampToEdge; + case "repeat": + return i.Repeat; + default: + throw new Error("Unknown texture wrap " + t) + } + } + , + t + } + )(); + t.Texture = n, + (function(t) { + t[t.Nearest = 9728] = "Nearest", + t[t.Linear = 9729] = "Linear", + t[t.MipMap = 9987] = "MipMap", + t[t.MipMapNearestNearest = 9984] = "MipMapNearestNearest", + t[t.MipMapLinearNearest = 9985] = "MipMapLinearNearest", + t[t.MipMapNearestLinear = 9986] = "MipMapNearestLinear", + t[t.MipMapLinearLinear = 9987] = "MipMapLinearLinear" + } + )(e = t.TextureFilter || (t.TextureFilter = {})), + (function(t) { + t[t.MirroredRepeat = 33648] = "MirroredRepeat", + t[t.ClampToEdge = 33071] = "ClampToEdge", + t[t.Repeat = 10497] = "Repeat" + } + )(i = t.TextureWrap || (t.TextureWrap = {})); + t.TextureRegion = function() { + this.u = 0, + this.v = 0, + this.u2 = 0, + this.v2 = 0, + this.width = 0, + this.height = 0, + this.rotate = !1, + this.offsetX = 0, + this.offsetY = 0, + this.originalWidth = 0, + this.originalHeight = 0 + } + ; + var r = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e.prototype.setFilters = function() {} + , + e.prototype.setWraps = function() {} + , + e.prototype.dispose = function() {} + , + e + } + )(n); + t.FakeTexture = r + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(t, e) { + this.pages = new Array, + this.regions = new Array, + this.load(t, e) + } + return e.prototype.load = function(e, s) { + if (null == s) + throw new Error("textureLoader cannot be null."); + for (var a = new i(e), o = new Array(4), l = null; ; ) { + var h = a.readLine(); + if (null == h) + break; + if (0 == (h = h.trim()).length) + l = null; + else if (l) { + var c = new r; + c.name = h, + c.page = l; + var u = a.readValue(); + "true" == u.toLocaleLowerCase() ? c.degrees = 90 : "false" == u.toLocaleLowerCase() ? c.degrees = 0 : c.degrees = parseFloat(u), + c.rotate = 90 == c.degrees, + a.readTuple(o); + var _ = parseInt(o[0]) + , f = parseInt(o[1]); + a.readTuple(o); + var d = parseInt(o[0]) + , p = parseInt(o[1]); + c.u = _ / l.width, + c.v = f / l.height, + c.rotate ? (c.u2 = (_ + p) / l.width, + c.v2 = (f + d) / l.height) : (c.u2 = (_ + d) / l.width, + c.v2 = (f + p) / l.height), + c.x = _, + c.y = f, + c.width = Math.abs(d), + c.height = Math.abs(p), + 4 == a.readTuple(o) && 4 == a.readTuple(o) && a.readTuple(o), + c.originalWidth = parseInt(o[0]), + c.originalHeight = parseInt(o[1]), + a.readTuple(o), + c.offsetX = parseInt(o[0]), + c.offsetY = parseInt(o[1]), + c.index = parseInt(a.readValue()), + c.texture = l.texture, + this.regions.push(c) + } else { + (l = new n).name = h, + 2 == a.readTuple(o) && (l.width = parseInt(o[0]), + l.height = parseInt(o[1]), + a.readTuple(o)), + a.readTuple(o), + l.minFilter = t.Texture.filterFromString(o[0]), + l.magFilter = t.Texture.filterFromString(o[1]); + var m = a.readValue(); + l.uWrap = t.TextureWrap.ClampToEdge, + l.vWrap = t.TextureWrap.ClampToEdge, + "x" == m ? l.uWrap = t.TextureWrap.Repeat : "y" == m ? l.vWrap = t.TextureWrap.Repeat : "xy" == m && (l.uWrap = l.vWrap = t.TextureWrap.Repeat), + l.texture = s(h), + l.texture.setFilters(l.minFilter, l.magFilter), + l.texture.setWraps(l.uWrap, l.vWrap), + l.width = l.texture.getImage().width, + l.height = l.texture.getImage().height, + this.pages.push(l) + } + } + } + , + e.prototype.findRegion = function(t) { + for (var e = 0; e < this.regions.length; e++) + if (this.regions[e].name == t) + return this.regions[e]; + return null + } + , + e.prototype.dispose = function() { + for (var t = 0; t < this.pages.length; t++) + this.pages[t].texture.dispose() + } + , + e + } + )(); + t.TextureAtlas = e; + var i = (function() { + function t(t) { + this.index = 0, + this.lines = t.split(/\r\n|\r|\n/) + } + return t.prototype.readLine = function() { + return this.index >= this.lines.length ? null : this.lines[this.index++] + } + , + t.prototype.readValue = function() { + var t = this.readLine() + , e = t.indexOf(":"); + if (-1 == e) + throw new Error("Invalid line: " + t); + return t.substring(e + 1).trim() + } + , + t.prototype.readTuple = function(t) { + var e = this.readLine() + , i = e.indexOf(":"); + if (-1 == i) + throw new Error("Invalid line: " + e); + for (var n = 0, r = i + 1; n < 3; n++) { + var s = e.indexOf(",", r); + if (-1 == s) + break; + t[n] = e.substr(r, s - r).trim(), + r = s + 1 + } + return t[n] = e.substring(r).trim(), + n + 1 + } + , + t + } + )() + , n = function() {}; + t.TextureAtlasPage = n; + var r = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return s(e, t), + e + } + )(t.TextureRegion); + t.TextureAtlasRegion = r + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(e, i) { + if (this.rotateMix = 0, + this.translateMix = 0, + this.scaleMix = 0, + this.shearMix = 0, + this.temp = new t.Vector2, + this.active = !1, + null == e) + throw new Error("data cannot be null."); + if (null == i) + throw new Error("skeleton cannot be null."); + this.data = e, + this.rotateMix = e.rotateMix, + this.translateMix = e.translateMix, + this.scaleMix = e.scaleMix, + this.shearMix = e.shearMix, + this.bones = new Array; + for (var n = 0; n < e.bones.length; n++) + this.bones.push(i.findBone(e.bones[n].name)); + this.target = i.findBone(e.target.name) + } + return e.prototype.isActive = function() { + return this.active + } + , + e.prototype.apply = function() { + this.update() + } + , + e.prototype.update = function() { + this.data.local ? this.data.relative ? this.applyRelativeLocal() : this.applyAbsoluteLocal() : this.data.relative ? this.applyRelativeWorld() : this.applyAbsoluteWorld() + } + , + e.prototype.applyAbsoluteWorld = function() { + for (var e = this.rotateMix, i = this.translateMix, n = this.scaleMix, r = this.shearMix, s = this.target, a = s.a, o = s.b, l = s.c, h = s.d, c = a * h - o * l > 0 ? t.MathUtils.degRad : -t.MathUtils.degRad, u = this.data.offsetRotation * c, _ = this.data.offsetShearY * c, f = this.bones, d = 0, p = f.length; d < p; d++) { + var m = f[d] + , y = !1; + if (0 != e) { + var v = m.a + , g = m.b + , A = m.c + , x = m.d; + (E = Math.atan2(l, a) - Math.atan2(A, v) + u) > t.MathUtils.PI ? E -= t.MathUtils.PI2 : E < -t.MathUtils.PI && (E += t.MathUtils.PI2), + E *= e; + var b = Math.cos(E) + , C = Math.sin(E); + m.a = b * v - C * A, + m.b = b * g - C * x, + m.c = C * v + b * A, + m.d = C * g + b * x, + y = !0 + } + if (0 != i) { + var T = this.temp; + s.localToWorld(T.set(this.data.offsetX, this.data.offsetY)), + m.worldX += (T.x - m.worldX) * i, + m.worldY += (T.y - m.worldY) * i, + y = !0 + } + if (n > 0) { + var S = Math.sqrt(m.a * m.a + m.c * m.c) + , w = Math.sqrt(a * a + l * l); + S > 1e-5 && (S = (S + (w - S + this.data.offsetScaleX) * n) / S), + m.a *= S, + m.c *= S, + S = Math.sqrt(m.b * m.b + m.d * m.d), + w = Math.sqrt(o * o + h * h), + S > 1e-5 && (S = (S + (w - S + this.data.offsetScaleY) * n) / S), + m.b *= S, + m.d *= S, + y = !0 + } + if (r > 0) { + g = m.b, + x = m.d; + var E, M = Math.atan2(x, g); + (E = Math.atan2(h, o) - Math.atan2(l, a) - (M - Math.atan2(m.c, m.a))) > t.MathUtils.PI ? E -= t.MathUtils.PI2 : E < -t.MathUtils.PI && (E += t.MathUtils.PI2), + E = M + (E + _) * r, + S = Math.sqrt(g * g + x * x), + m.b = Math.cos(E) * S, + m.d = Math.sin(E) * S, + y = !0 + } + y && (m.appliedValid = !1) + } + } + , + e.prototype.applyRelativeWorld = function() { + for (var e = this.rotateMix, i = this.translateMix, n = this.scaleMix, r = this.shearMix, s = this.target, a = s.a, o = s.b, l = s.c, h = s.d, c = a * h - o * l > 0 ? t.MathUtils.degRad : -t.MathUtils.degRad, u = this.data.offsetRotation * c, _ = this.data.offsetShearY * c, f = this.bones, d = 0, p = f.length; d < p; d++) { + var m, y = f[d], v = !1; + if (0 != e) { + var g = y.a + , A = y.b + , x = y.c + , b = y.d; + (m = Math.atan2(l, a) + u) > t.MathUtils.PI ? m -= t.MathUtils.PI2 : m < -t.MathUtils.PI && (m += t.MathUtils.PI2), + m *= e; + var C = Math.cos(m) + , T = Math.sin(m); + y.a = C * g - T * x, + y.b = C * A - T * b, + y.c = T * g + C * x, + y.d = T * A + C * b, + v = !0 + } + if (0 != i) { + var S = this.temp; + s.localToWorld(S.set(this.data.offsetX, this.data.offsetY)), + y.worldX += S.x * i, + y.worldY += S.y * i, + v = !0 + } + if (n > 0) { + var w = (Math.sqrt(a * a + l * l) - 1 + this.data.offsetScaleX) * n + 1; + y.a *= w, + y.c *= w, + w = (Math.sqrt(o * o + h * h) - 1 + this.data.offsetScaleY) * n + 1, + y.b *= w, + y.d *= w, + v = !0 + } + if (r > 0) + (m = Math.atan2(h, o) - Math.atan2(l, a)) > t.MathUtils.PI ? m -= t.MathUtils.PI2 : m < -t.MathUtils.PI && (m += t.MathUtils.PI2), + A = y.b, + b = y.d, + m = Math.atan2(b, A) + (m - t.MathUtils.PI / 2 + _) * r, + w = Math.sqrt(A * A + b * b), + y.b = Math.cos(m) * w, + y.d = Math.sin(m) * w, + v = !0; + v && (y.appliedValid = !1) + } + } + , + e.prototype.applyAbsoluteLocal = function() { + var t = this.rotateMix + , e = this.translateMix + , i = this.scaleMix + , n = this.shearMix + , r = this.target; + r.appliedValid || r.updateAppliedTransform(); + for (var s = this.bones, a = 0, o = s.length; a < o; a++) { + var l = s[a]; + l.appliedValid || l.updateAppliedTransform(); + var h = l.arotation; + if (0 != t) { + var c = r.arotation - h + this.data.offsetRotation; + h += (c -= 360 * (16384 - (16384.499999999996 - c / 360 | 0))) * t + } + var u = l.ax + , _ = l.ay; + 0 != e && (u += (r.ax - u + this.data.offsetX) * e, + _ += (r.ay - _ + this.data.offsetY) * e); + var f = l.ascaleX + , d = l.ascaleY; + 0 != i && (f > 1e-5 && (f = (f + (r.ascaleX - f + this.data.offsetScaleX) * i) / f), + d > 1e-5 && (d = (d + (r.ascaleY - d + this.data.offsetScaleY) * i) / d)); + var p = l.ashearY; + 0 != n && (c = r.ashearY - p + this.data.offsetShearY, + c -= 360 * (16384 - (16384.499999999996 - c / 360 | 0)), + l.shearY += c * n), + l.updateWorldTransformWith(u, _, h, f, d, l.ashearX, p) + } + } + , + e.prototype.applyRelativeLocal = function() { + var t = this.rotateMix + , e = this.translateMix + , i = this.scaleMix + , n = this.shearMix + , r = this.target; + r.appliedValid || r.updateAppliedTransform(); + for (var s = this.bones, a = 0, o = s.length; a < o; a++) { + var l = s[a]; + l.appliedValid || l.updateAppliedTransform(); + var h = l.arotation; + 0 != t && (h += (r.arotation + this.data.offsetRotation) * t); + var c = l.ax + , u = l.ay; + 0 != e && (c += (r.ax + this.data.offsetX) * e, + u += (r.ay + this.data.offsetY) * e); + var _ = l.ascaleX + , f = l.ascaleY; + 0 != i && (_ > 1e-5 && (_ *= (r.ascaleX - 1 + this.data.offsetScaleX) * i + 1), + f > 1e-5 && (f *= (r.ascaleY - 1 + this.data.offsetScaleY) * i + 1)); + var d = l.ashearY; + 0 != n && (d += (r.ashearY + this.data.offsetShearY) * n), + l.updateWorldTransformWith(c, u, h, _, f, l.ashearX, d) + } + } + , + e + } + )(); + t.TransformConstraint = e + } + )(r || (r = {})), + (function(t) { + var e = (function(t) { + function e(e) { + var i = t.call(this, e, 0, !1) || this; + return i.bones = new Array, + i.rotateMix = 0, + i.translateMix = 0, + i.scaleMix = 0, + i.shearMix = 0, + i.offsetRotation = 0, + i.offsetX = 0, + i.offsetY = 0, + i.offsetScaleX = 0, + i.offsetScaleY = 0, + i.offsetShearY = 0, + i.relative = !1, + i.local = !1, + i + } + return s(e, t), + e + } + )(t.ConstraintData); + t.TransformConstraintData = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e() { + this.convexPolygons = new Array, + this.convexPolygonsIndices = new Array, + this.indicesArray = new Array, + this.isConcaveArray = new Array, + this.triangles = new Array, + this.polygonPool = new t.Pool(function() { + return new Array + } + ), + this.polygonIndicesPool = new t.Pool(function() { + return new Array + } + ) + } + return e.prototype.triangulate = function(t) { + var i = t + , n = t.length >> 1 + , r = this.indicesArray; + r.length = 0; + for (var s = 0; s < n; s++) + r[s] = s; + var a = this.isConcaveArray; + a.length = 0, + s = 0; + for (var o = n; s < o; ++s) + a[s] = e.isConcave(s, n, i, r); + var l = this.triangles; + for (l.length = 0; n > 3; ) { + for (var h = n - 1, c = (s = 0, + 1); ; ) { + t: if (!a[s]) { + for (var u = r[h] << 1, _ = r[s] << 1, f = r[c] << 1, d = i[u], p = i[u + 1], m = i[_], y = i[_ + 1], v = i[f], g = i[f + 1], A = (c + 1) % n; A != h; A = (A + 1) % n) + if (a[A]) { + var x = r[A] << 1 + , b = i[x] + , C = i[x + 1]; + if (e.positiveArea(v, g, d, p, b, C) && e.positiveArea(d, p, m, y, b, C) && e.positiveArea(m, y, v, g, b, C)) + break t + } + break + } + if (0 == c) { + do { + if (!a[s]) + break; + s-- + } while (s > 0);break + } + h = s, + s = c, + c = (c + 1) % n + } + l.push(r[(n + s - 1) % n]), + l.push(r[s]), + l.push(r[(s + 1) % n]), + r.splice(s, 1), + a.splice(s, 1); + var T = (--n + s - 1) % n + , S = s == n ? 0 : s; + a[T] = e.isConcave(T, n, i, r), + a[S] = e.isConcave(S, n, i, r) + } + return 3 == n && (l.push(r[2]), + l.push(r[0]), + l.push(r[1])), + l + } + , + e.prototype.decompose = function(t, i) { + var n = t + , r = this.convexPolygons; + this.polygonPool.freeAll(r), + r.length = 0; + var s = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(s), + s.length = 0; + var a = this.polygonIndicesPool.obtain(); + a.length = 0; + var o = this.polygonPool.obtain(); + o.length = 0; + for (var l = -1, h = 0, c = 0, u = i.length; c < u; c += 3) { + var _ = i[c] << 1 + , f = i[c + 1] << 1 + , d = i[c + 2] << 1 + , p = n[_] + , m = n[_ + 1] + , y = n[f] + , v = n[f + 1] + , g = n[d] + , A = n[d + 1] + , x = !1; + if (l == _) { + var b = o.length - 4 + , C = e.winding(o[b], o[b + 1], o[b + 2], o[b + 3], g, A) + , T = e.winding(g, A, o[0], o[1], o[2], o[3]); + C == h && T == h && (o.push(g), + o.push(A), + a.push(d), + x = !0) + } + x || (o.length > 0 ? (r.push(o), + s.push(a)) : (this.polygonPool.free(o), + this.polygonIndicesPool.free(a)), + (o = this.polygonPool.obtain()).length = 0, + o.push(p), + o.push(m), + o.push(y), + o.push(v), + o.push(g), + o.push(A), + (a = this.polygonIndicesPool.obtain()).length = 0, + a.push(_), + a.push(f), + a.push(d), + h = e.winding(p, m, y, v, g, A), + l = _) + } + for (o.length > 0 && (r.push(o), + s.push(a)), + c = 0, + u = r.length; c < u; c++) + if (0 != (a = s[c]).length) + for (var S = a[0], w = a[a.length - 1], E = (o = r[c])[b = o.length - 4], M = o[b + 1], D = o[b + 2], B = o[b + 3], I = o[0], P = o[1], R = o[2], O = o[3], L = e.winding(E, M, D, B, I, P), F = 0; F < u; F++) + if (F != c) { + var V = s[F]; + if (3 == V.length) { + var N = V[0] + , k = V[1] + , G = V[2] + , U = r[F]; + g = U[U.length - 2], + A = U[U.length - 1], + N == S && k == w && (C = e.winding(E, M, D, B, g, A), + T = e.winding(g, A, I, P, R, O), + C == L && T == L && (U.length = 0, + V.length = 0, + o.push(g), + o.push(A), + a.push(G), + E = D, + M = B, + D = g, + B = A, + F = 0)) + } + } + for (c = r.length - 1; c >= 0; c--) + 0 == (o = r[c]).length && (r.splice(c, 1), + this.polygonPool.free(o), + a = s[c], + s.splice(c, 1), + this.polygonIndicesPool.free(a)); + return r + } + , + e.isConcave = function(t, e, i, n) { + var r = n[(e + t - 1) % e] << 1 + , s = n[t] << 1 + , a = n[(t + 1) % e] << 1; + return !this.positiveArea(i[r], i[r + 1], i[s], i[s + 1], i[a], i[a + 1]) + } + , + e.positiveArea = function(t, e, i, n, r, s) { + return t * (s - n) + i * (e - s) + r * (n - e) >= 0 + } + , + e.winding = function(t, e, i, n, r, s) { + var a = i - t + , o = n - e; + return r * o - s * a + a * e - t * o >= 0 ? 1 : -1 + } + , + e + } + )(); + t.Triangulator = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function t() { + this.array = new Array + } + return t.prototype.add = function(t) { + var e = this.contains(t); + return this.array[0 | t] = 0 | t, + !e + } + , + t.prototype.contains = function(t) { + return null != this.array[0 | t] + } + , + t.prototype.remove = function(t) { + this.array[0 | t] = void 0 + } + , + t.prototype.clear = function() { + this.array.length = 0 + } + , + t + } + )(); + t.IntSet = e; + var i = (function() { + function t(t, e, i, n) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + void 0 === i && (i = 0), + void 0 === n && (n = 0), + this.r = t, + this.g = e, + this.b = i, + this.a = n + } + return t.prototype.set = function(t, e, i, n) { + return this.r = t, + this.g = e, + this.b = i, + this.a = n, + this.clamp(), + this + } + , + t.prototype.setFromColor = function(t) { + return this.r = t.r, + this.g = t.g, + this.b = t.b, + this.a = t.a, + this + } + , + t.prototype.setFromString = function(t) { + return t = "#" == t.charAt(0) ? t.substr(1) : t, + this.r = parseInt(t.substr(0, 2), 16) / 255, + this.g = parseInt(t.substr(2, 2), 16) / 255, + this.b = parseInt(t.substr(4, 2), 16) / 255, + this.a = (8 != t.length ? 255 : parseInt(t.substr(6, 2), 16)) / 255, + this + } + , + t.prototype.add = function(t, e, i, n) { + return this.r += t, + this.g += e, + this.b += i, + this.a += n, + this.clamp(), + this + } + , + t.prototype.clamp = function() { + return this.r < 0 ? this.r = 0 : this.r > 1 && (this.r = 1), + this.g < 0 ? this.g = 0 : this.g > 1 && (this.g = 1), + this.b < 0 ? this.b = 0 : this.b > 1 && (this.b = 1), + this.a < 0 ? this.a = 0 : this.a > 1 && (this.a = 1), + this + } + , + t.rgba8888ToColor = function(t, e) { + t.r = ((4278190080 & e) >>> 24) / 255, + t.g = ((16711680 & e) >>> 16) / 255, + t.b = ((65280 & e) >>> 8) / 255, + t.a = (255 & e) / 255 + } + , + t.rgb888ToColor = function(t, e) { + t.r = ((16711680 & e) >>> 16) / 255, + t.g = ((65280 & e) >>> 8) / 255, + t.b = (255 & e) / 255 + } + , + t.WHITE = new t(1,1,1,1), + t.RED = new t(1,0,0,1), + t.GREEN = new t(0,1,0,1), + t.BLUE = new t(0,0,1,1), + t.MAGENTA = new t(1,0,1,1), + t + } + )(); + t.Color = i; + var n = (function() { + function t() {} + return t.clamp = function(t, e, i) { + return t < e ? e : t > i ? i : t + } + , + t.cosDeg = function(e) { + return Math.cos(e * t.degRad) + } + , + t.sinDeg = function(e) { + return Math.sin(e * t.degRad) + } + , + t.signum = function(t) { + return t > 0 ? 1 : t < 0 ? -1 : 0 + } + , + t.toInt = function(t) { + return t > 0 ? Math.floor(t) : Math.ceil(t) + } + , + t.cbrt = function(t) { + var e = Math.pow(Math.abs(t), 1 / 3); + return t < 0 ? -e : e + } + , + t.randomTriangular = function(e, i) { + return t.randomTriangularWith(e, i, .5 * (e + i)) + } + , + t.randomTriangularWith = function(t, e, i) { + var n = Math.random() + , r = e - t; + return n <= (i - t) / r ? t + Math.sqrt(n * r * (i - t)) : e - Math.sqrt((1 - n) * r * (e - i)) + } + , + t.PI = 3.1415927, + t.PI2 = 2 * t.PI, + t.radiansToDegrees = 180 / t.PI, + t.radDeg = t.radiansToDegrees, + t.degreesToRadians = t.PI / 180, + t.degRad = t.degreesToRadians, + t + } + )(); + t.MathUtils = n; + var r = (function() { + function t() {} + return t.prototype.apply = function(t, e, i) { + return t + (e - t) * this.applyInternal(i) + } + , + t + } + )(); + t.Interpolation = r; + var a = (function(t) { + function e(e) { + var i = t.call(this) || this; + return i.power = 2, + i.power = e, + i + } + return s(e, t), + e.prototype.applyInternal = function(t) { + return t <= .5 ? Math.pow(2 * t, this.power) / 2 : Math.pow(2 * (t - 1), this.power) / (this.power % 2 == 0 ? -2 : 2) + 1 + } + , + e + } + )(r); + t.Pow = a; + var o = (function(t) { + function e(e) { + return t.call(this, e) || this + } + return s(e, t), + e.prototype.applyInternal = function(t) { + return Math.pow(t - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1 + } + , + e + } + )(a); + t.PowOut = o; + var l = (function() { + function t() {} + return t.arrayCopy = function(t, e, i, n, r) { + for (var s = e, a = n; s < e + r; s++, + a++) + i[a] = t[s] + } + , + t.setArraySize = function(t, e, i) { + void 0 === i && (i = 0); + var n = t.length; + if (n == e) + return t; + if (t.length = e, + n < e) + for (var r = n; r < e; r++) + t[r] = i; + return t + } + , + t.ensureArrayCapacity = function(e, i, n) { + return void 0 === n && (n = 0), + e.length >= i ? e : t.setArraySize(e, i, n) + } + , + t.newArray = function(t, e) { + for (var i = new Array(t), n = 0; n < t; n++) + i[n] = e; + return i + } + , + t.newFloatArray = function(e) { + if (t.SUPPORTS_TYPED_ARRAYS) + return new Float32Array(e); + for (var i = new Array(e), n = 0; n < i.length; n++) + i[n] = 0; + return i + } + , + t.newShortArray = function(e) { + if (t.SUPPORTS_TYPED_ARRAYS) + return new Int16Array(e); + for (var i = new Array(e), n = 0; n < i.length; n++) + i[n] = 0; + return i + } + , + t.toFloatArray = function(e) { + return t.SUPPORTS_TYPED_ARRAYS ? new Float32Array(e) : e + } + , + t.toSinglePrecision = function(e) { + return t.SUPPORTS_TYPED_ARRAYS ? Math.fround(e) : e + } + , + t.webkit602BugfixHelper = function() {} + , + t.contains = function(t, e, i) { + void 0 === i && (i = !0); + for (var n = 0; n < t.length; n++) + if (t[n] == e) + return !0; + return !1 + } + , + t.SUPPORTS_TYPED_ARRAYS = "undefined" != typeof Float32Array, + t + } + )(); + t.Utils = l; + var h = (function() { + function t() {} + return t.logBones = function(t) { + for (var e = 0; e < t.bones.length; e++) { + var i = t.bones[e]; + console.log(i.data.name + ", " + i.a + ", " + i.b + ", " + i.c + ", " + i.d + ", " + i.worldX + ", " + i.worldY) + } + } + , + t + } + )(); + t.DebugUtils = h; + var c = (function() { + function t(t) { + this.items = new Array, + this.instantiator = t + } + return t.prototype.obtain = function() { + return this.items.length > 0 ? this.items.pop() : this.instantiator() + } + , + t.prototype.free = function(t) { + t.reset && t.reset(), + this.items.push(t) + } + , + t.prototype.freeAll = function(t) { + for (var e = 0; e < t.length; e++) + t[e].reset && t[e].reset(), + this.items[e] = t[e] + } + , + t.prototype.clear = function() { + this.items.length = 0 + } + , + t + } + )(); + t.Pool = c; + var u = (function() { + function t(t, e) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + this.x = t, + this.y = e + } + return t.prototype.set = function(t, e) { + return this.x = t, + this.y = e, + this + } + , + t.prototype.length = function() { + var t = this.x + , e = this.y; + return Math.sqrt(t * t + e * e) + } + , + t.prototype.normalize = function() { + var t = this.length(); + return 0 != t && (this.x /= t, + this.y /= t), + this + } + , + t + } + )(); + t.Vector2 = u; + var _ = (function() { + function t() { + this.maxDelta = .064, + this.framesPerSecond = 0, + this.delta = 0, + this.totalTime = 0, + this.lastTime = Date.now() / 1e3, + this.frameCount = 0, + this.frameTime = 0 + } + return t.prototype.update = function() { + var t = Date.now() / 1e3; + this.delta = t - this.lastTime, + this.frameTime += this.delta, + this.totalTime += this.delta, + this.delta > this.maxDelta && (this.delta = this.maxDelta), + this.lastTime = t, + this.frameCount++, + this.frameTime > 1 && (this.framesPerSecond = this.frameCount / this.frameTime, + this.frameTime = 0, + this.frameCount = 0) + } + , + t + } + )(); + t.TimeKeeper = _; + var f = (function() { + function t(t) { + void 0 === t && (t = 32), + this.addedValues = 0, + this.lastValue = 0, + this.mean = 0, + this.dirty = !0, + this.values = new Array(t) + } + return t.prototype.hasEnoughData = function() { + return this.addedValues >= this.values.length + } + , + t.prototype.addValue = function(t) { + this.addedValues < this.values.length && this.addedValues++, + this.values[this.lastValue++] = t, + this.lastValue > this.values.length - 1 && (this.lastValue = 0), + this.dirty = !0 + } + , + t.prototype.getMean = function() { + if (this.hasEnoughData()) { + if (this.dirty) { + for (var t = 0, e = 0; e < this.values.length; e++) + t += this.values[e]; + this.mean = t / this.values.length, + this.dirty = !1 + } + return this.mean + } + return 0 + } + , + t + } + )(); + t.WindowedMean = f + } + )(r || (r = {})), + Math.fround || (Math.fround = (n = new Float32Array(1), + function(t) { + return n[0] = t, + n[0] + } + )), + (function(t) { + var e = function(t) { + if (null == t) + throw new Error("name cannot be null."); + this.name = t + }; + t.Attachment = e; + var i = (function(e) { + function i(t) { + var n = e.call(this, t) || this; + return n.id = (65535 & i.nextID++) << 11, + n.worldVerticesLength = 0, + n.deformAttachment = n, + n + } + return s(i, e), + i.prototype.computeWorldVertices = function(t, e, i, n, r, s) { + i = r + (i >> 1) * s; + var a = t.bone.skeleton + , o = t.deform + , l = this.vertices + , h = this.bones; + if (null != h) { + for (var c = 0, u = 0, _ = 0; _ < e; _ += 2) + c += (m = h[c]) + 1, + u += m; + var f = a.bones; + if (0 == o.length) + for (M = r, + T = 3 * u; M < i; M += s) { + var d = 0 + , p = 0 + , m = h[c++]; + for (m += c; c < m; c++, + T += 3) { + A = f[h[c]], + D = l[T], + B = l[T + 1]; + var y = l[T + 2]; + d += (D * A.a + B * A.b + A.worldX) * y, + p += (D * A.c + B * A.d + A.worldY) * y + } + n[M] = d, + n[M + 1] = p + } + else + for (var v = o, g = (M = r, + T = 3 * u, + u << 1); M < i; M += s) { + for (d = 0, + p = 0, + m = h[c++], + m += c; c < m; c++, + T += 3, + g += 2) + A = f[h[c]], + D = l[T] + v[g], + B = l[T + 1] + v[g + 1], + y = l[T + 2], + d += (D * A.a + B * A.b + A.worldX) * y, + p += (D * A.c + B * A.d + A.worldY) * y; + n[M] = d, + n[M + 1] = p + } + } else { + o.length > 0 && (l = o); + for (var A, x = (A = t.bone).worldX, b = A.worldY, C = A.a, T = A.b, S = A.c, w = A.d, E = e, M = r; M < i; E += 2, + M += s) { + var D = l[E] + , B = l[E + 1]; + n[M] = D * C + B * T + x, + n[M + 1] = D * S + B * w + b + } + } + } + , + i.prototype.copyTo = function(e) { + null != this.bones ? (e.bones = new Array(this.bones.length), + t.Utils.arrayCopy(this.bones, 0, e.bones, 0, this.bones.length)) : e.bones = null, + null != this.vertices ? (e.vertices = t.Utils.newFloatArray(this.vertices.length), + t.Utils.arrayCopy(this.vertices, 0, e.vertices, 0, this.vertices.length)) : e.vertices = null, + e.worldVerticesLength = this.worldVerticesLength, + e.deformAttachment = this.deformAttachment + } + , + i.nextID = 0, + i + } + )(e); + t.VertexAttachment = i + } + )(r || (r = {})), + (function(t) { + (function(t) { + t[t.Region = 0] = "Region", + t[t.BoundingBox = 1] = "BoundingBox", + t[t.Mesh = 2] = "Mesh", + t[t.LinkedMesh = 3] = "LinkedMesh", + t[t.Path = 4] = "Path", + t[t.Point = 5] = "Point", + t[t.Clipping = 6] = "Clipping" + } + )(t.AttachmentType || (t.AttachmentType = {})) + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i(i) { + var n = e.call(this, i) || this; + return n.color = new t.Color(1,1,1,1), + n + } + return s(i, e), + i.prototype.copy = function() { + var t = new i(name); + return this.copyTo(t), + t.color.setFromColor(this.color), + t + } + , + i + } + )(t.VertexAttachment); + t.BoundingBoxAttachment = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i(i) { + var n = e.call(this, i) || this; + return n.color = new t.Color(.2275,.2275,.8078,1), + n + } + return s(i, e), + i.prototype.copy = function() { + var t = new i(name); + return this.copyTo(t), + t.endSlot = this.endSlot, + t.color.setFromColor(this.color), + t + } + , + i + } + )(t.VertexAttachment); + t.ClippingAttachment = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i(i) { + var n = e.call(this, i) || this; + return n.color = new t.Color(1,1,1,1), + n.tempColor = new t.Color(0,0,0,0), + n + } + return s(i, e), + i.prototype.updateUVs = function() { + var e = this.regionUVs; + null != this.uvs && this.uvs.length == e.length || (this.uvs = t.Utils.newFloatArray(e.length)); + var i = this.uvs + , n = this.uvs.length + , r = this.region.u + , s = this.region.v + , a = 0 + , o = 0; + if (this.region instanceof t.TextureAtlasRegion) { + var l = this.region + , h = l.texture.getImage().width + , c = l.texture.getImage().height; + switch (l.degrees) { + case 90: + r -= (l.originalHeight - l.offsetY - l.height) / h, + s -= (l.originalWidth - l.offsetX - l.width) / c, + a = l.originalHeight / h, + o = l.originalWidth / c; + for (var u = 0; u < n; u += 2) + i[u] = r + e[u + 1] * a, + i[u + 1] = s + (1 - e[u]) * o; + return; + case 180: + for (r -= (l.originalWidth - l.offsetX - l.width) / h, + s -= l.offsetY / c, + a = l.originalWidth / h, + o = l.originalHeight / c, + u = 0; u < n; u += 2) + i[u] = r + (1 - e[u]) * a, + i[u + 1] = s + (1 - e[u + 1]) * o; + return; + case 270: + for (r -= l.offsetY / h, + s -= l.offsetX / c, + a = l.originalHeight / h, + o = l.originalWidth / c, + u = 0; u < n; u += 2) + i[u] = r + (1 - e[u + 1]) * a, + i[u + 1] = s + e[u] * o; + return + } + r -= l.offsetX / h, + s -= (l.originalHeight - l.offsetY - l.height) / c, + a = l.originalWidth / h, + o = l.originalHeight / c + } else + null == this.region ? (r = s = 0, + a = o = 1) : (a = this.region.u2 - r, + o = this.region.v2 - s); + for (u = 0; u < n; u += 2) + i[u] = r + e[u] * a, + i[u + 1] = s + e[u + 1] * o + } + , + i.prototype.getParentMesh = function() { + return this.parentMesh + } + , + i.prototype.setParentMesh = function(t) { + this.parentMesh = t, + null != t && (this.bones = t.bones, + this.vertices = t.vertices, + this.worldVerticesLength = t.worldVerticesLength, + this.regionUVs = t.regionUVs, + this.triangles = t.triangles, + this.hullLength = t.hullLength, + this.worldVerticesLength = t.worldVerticesLength) + } + , + i.prototype.copy = function() { + if (null != this.parentMesh) + return this.newLinkedMesh(); + var e = new i(this.name); + return e.region = this.region, + e.path = this.path, + e.color.setFromColor(this.color), + this.copyTo(e), + e.regionUVs = new Array(this.regionUVs.length), + t.Utils.arrayCopy(this.regionUVs, 0, e.regionUVs, 0, this.regionUVs.length), + e.uvs = new Array(this.uvs.length), + t.Utils.arrayCopy(this.uvs, 0, e.uvs, 0, this.uvs.length), + e.triangles = new Array(this.triangles.length), + t.Utils.arrayCopy(this.triangles, 0, e.triangles, 0, this.triangles.length), + e.hullLength = this.hullLength, + null != this.edges && (e.edges = new Array(this.edges.length), + t.Utils.arrayCopy(this.edges, 0, e.edges, 0, this.edges.length)), + e.width = this.width, + e.height = this.height, + e + } + , + i.prototype.newLinkedMesh = function() { + var t = new i(this.name); + return t.region = this.region, + t.path = this.path, + t.color.setFromColor(this.color), + t.deformAttachment = this.deformAttachment, + t.setParentMesh(null != this.parentMesh ? this.parentMesh : this), + t.updateUVs(), + t + } + , + i + } + )(t.VertexAttachment); + t.MeshAttachment = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i(i) { + var n = e.call(this, i) || this; + return n.closed = !1, + n.constantSpeed = !1, + n.color = new t.Color(1,1,1,1), + n + } + return s(i, e), + i.prototype.copy = function() { + var e = new i(name); + return this.copyTo(e), + e.lengths = new Array(this.lengths.length), + t.Utils.arrayCopy(this.lengths, 0, e.lengths, 0, this.lengths.length), + e.closed = closed, + e.constantSpeed = this.constantSpeed, + e.color.setFromColor(this.color), + e + } + , + i + } + )(t.VertexAttachment); + t.PathAttachment = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i(i) { + var n = e.call(this, i) || this; + return n.color = new t.Color(.38,.94,0,1), + n + } + return s(i, e), + i.prototype.computeWorldPosition = function(t, e) { + return e.x = this.x * t.a + this.y * t.b + t.worldX, + e.y = this.x * t.c + this.y * t.d + t.worldY, + e + } + , + i.prototype.computeWorldRotation = function(e) { + var i = t.MathUtils.cosDeg(this.rotation) + , n = t.MathUtils.sinDeg(this.rotation) + , r = i * e.a + n * e.b + , s = i * e.c + n * e.d; + return Math.atan2(s, r) * t.MathUtils.radDeg + } + , + i.prototype.copy = function() { + var t = new i(name); + return t.x = this.x, + t.y = this.y, + t.rotation = this.rotation, + t.color.setFromColor(this.color), + t + } + , + i + } + )(t.VertexAttachment); + t.PointAttachment = e + } + )(r || (r = {})), + (function(t) { + var e = (function(e) { + function i(i) { + var n = e.call(this, i) || this; + return n.x = 0, + n.y = 0, + n.scaleX = 1, + n.scaleY = 1, + n.rotation = 0, + n.width = 0, + n.height = 0, + n.color = new t.Color(1,1,1,1), + n.offset = t.Utils.newFloatArray(8), + n.uvs = t.Utils.newFloatArray(8), + n.tempColor = new t.Color(1,1,1,1), + n + } + return s(i, e), + i.prototype.updateOffset = function() { + var t = this.width / this.region.originalWidth * this.scaleX + , e = this.height / this.region.originalHeight * this.scaleY + , n = -this.width / 2 * this.scaleX + this.region.offsetX * t + , r = -this.height / 2 * this.scaleY + this.region.offsetY * e + , s = n + this.region.width * t + , a = r + this.region.height * e + , o = this.rotation * Math.PI / 180 + , l = Math.cos(o) + , h = Math.sin(o) + , c = n * l + this.x + , u = n * h + , _ = r * l + this.y + , f = r * h + , d = s * l + this.x + , p = s * h + , m = a * l + this.y + , y = a * h + , v = this.offset; + v[i.OX1] = c - f, + v[i.OY1] = _ + u, + v[i.OX2] = c - y, + v[i.OY2] = m + u, + v[i.OX3] = d - y, + v[i.OY3] = m + p, + v[i.OX4] = d - f, + v[i.OY4] = _ + p + } + , + i.prototype.setRegion = function(t) { + this.region = t; + var e = this.uvs; + t.rotate ? (e[2] = t.u, + e[3] = t.v2, + e[4] = t.u, + e[5] = t.v, + e[6] = t.u2, + e[7] = t.v, + e[0] = t.u2, + e[1] = t.v2) : (e[0] = t.u, + e[1] = t.v2, + e[2] = t.u, + e[3] = t.v, + e[4] = t.u2, + e[5] = t.v, + e[6] = t.u2, + e[7] = t.v2) + } + , + i.prototype.computeWorldVertices = function(t, e, n, r) { + var s = this.offset + , a = t.worldX + , o = t.worldY + , l = t.a + , h = t.b + , c = t.c + , u = t.d + , _ = 0 + , f = 0; + _ = s[i.OX1], + f = s[i.OY1], + e[n] = _ * l + f * h + a, + e[n + 1] = _ * c + f * u + o, + n += r, + _ = s[i.OX2], + f = s[i.OY2], + e[n] = _ * l + f * h + a, + e[n + 1] = _ * c + f * u + o, + n += r, + _ = s[i.OX3], + f = s[i.OY3], + e[n] = _ * l + f * h + a, + e[n + 1] = _ * c + f * u + o, + n += r, + _ = s[i.OX4], + f = s[i.OY4], + e[n] = _ * l + f * h + a, + e[n + 1] = _ * c + f * u + o + } + , + i.prototype.copy = function() { + var e = new i(name); + return e.region = this.region, + e.rendererObject = this.rendererObject, + e.path = this.path, + e.x = this.x, + e.y = this.y, + e.scaleX = this.scaleX, + e.scaleY = this.scaleY, + e.rotation = this.rotation, + e.width = this.width, + e.height = this.height, + t.Utils.arrayCopy(this.uvs, 0, e.uvs, 0, 8), + t.Utils.arrayCopy(this.offset, 0, e.offset, 0, 8), + e.color.setFromColor(this.color), + e + } + , + i.OX1 = 0, + i.OY1 = 1, + i.OX2 = 2, + i.OY2 = 3, + i.OX3 = 4, + i.OY3 = 5, + i.OX4 = 6, + i.OY4 = 7, + i.X1 = 0, + i.Y1 = 1, + i.C1R = 2, + i.C1G = 3, + i.C1B = 4, + i.C1A = 5, + i.U1 = 6, + i.V1 = 7, + i.X2 = 8, + i.Y2 = 9, + i.C2R = 10, + i.C2G = 11, + i.C2B = 12, + i.C2A = 13, + i.U2 = 14, + i.V2 = 15, + i.X3 = 16, + i.Y3 = 17, + i.C3R = 18, + i.C3G = 19, + i.C3B = 20, + i.C3A = 21, + i.U3 = 22, + i.V3 = 23, + i.X4 = 24, + i.Y4 = 25, + i.C4R = 26, + i.C4G = 27, + i.C4B = 28, + i.C4A = 29, + i.U4 = 30, + i.V4 = 31, + i + } + )(t.Attachment); + t.RegionAttachment = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(t, e) { + this.jitterX = 0, + this.jitterY = 0, + this.jitterX = t, + this.jitterY = e + } + return e.prototype.begin = function() {} + , + e.prototype.transform = function(e) { + e.x += t.MathUtils.randomTriangular(-this.jitterX, this.jitterY), + e.y += t.MathUtils.randomTriangular(-this.jitterX, this.jitterY) + } + , + e.prototype.end = function() {} + , + e + } + )(); + t.JitterEffect = e + } + )(r || (r = {})), + (function(t) { + var e = (function() { + function e(t, e) { + this.centerX = 0, + this.centerY = 0, + this.radius = 0, + this.angle = 0, + this.worldX = 0, + this.worldY = 0, + this.radius = t, + this.interpolation = e + } + return e.prototype.begin = function(t) { + this.worldX = t.x + this.centerX, + this.worldY = t.y + this.centerY + } + , + e.prototype.transform = function(e) { + var i = this.angle * t.MathUtils.degreesToRadians + , n = e.x - this.worldX + , r = e.y - this.worldY + , s = Math.sqrt(n * n + r * r); + if (s < this.radius) { + var a = this.interpolation.apply(0, i, (this.radius - s) / this.radius) + , o = Math.cos(a) + , l = Math.sin(a); + e.x = o * n - l * r + this.worldX, + e.y = l * n + o * r + this.worldY + } + } + , + e.prototype.end = function() {} + , + e.interpolation = new t.PowOut(2), + e + } + )(); + t.SwirlEffect = e + } + )(r || (r = {})), + e.exports = r + } + ), {}], + 371: [(function(t, e) { + "use strict"; + var i, n, r, s, a, o, l = t("./track-entry-listeners"), h = t("./lib/spine"), c = [], u = [], _ = 0, f = 0, d = 0, p = null, m = null, y = 0, v = 0, g = 0, A = 0, x = null, b = null, C = 0, T = 0, S = new h.Color(1,1,1,1), w = new h.Color(1,1,1,1), E = [0, 1, 2, 2, 3, 0], M = cc.Class({ + ctor: function() { + this._privateMode = !1, + this._inited = !1, + this._invalid = !0, + this._enableCacheAttachedInfo = !1, + this.frames = [], + this.totalTime = 0, + this._frameIdx = -1, + this.isCompleted = !1, + this._skeletonInfo = null, + this._animationName = null, + this._tempSegments = null, + this._tempColors = null, + this._tempBoneInfos = null + }, + init: function(t, e) { + this._inited = !0, + this._animationName = e, + this._skeletonInfo = t + }, + clear: function() { + this._inited = !1; + for (var t = 0, e = this.frames.length; t < e; t++) + this.frames[t].segments.length = 0; + this.invalidAllFrame() + }, + bind: function(t) { + var e = function(t) { + t && t.animation.name === this._animationName && (this.isCompleted = !0) + } + .bind(this); + t.complete = e + }, + unbind: function(t) { + t.complete = null + }, + begin: function() { + if (this._invalid) { + var t = this._skeletonInfo + , e = t.curAnimationCache; + e && e !== this && (this._privateMode ? e.invalidAllFrame() : e.updateToFrame()); + var i = t.skeleton + , n = t.listener + , r = t.state + , s = i.data.findAnimation(this._animationName); + r.setAnimationWith(0, s, !1), + this.bind(n), + t.curAnimationCache = this, + this._frameIdx = -1, + this.isCompleted = !1, + this.totalTime = 0, + this._invalid = !1 + } + }, + end: function() { + this._needToUpdate() || (this._skeletonInfo.curAnimationCache = null, + this.frames.length = this._frameIdx + 1, + this.isCompleted = !0, + this.unbind(this._skeletonInfo.listener)) + }, + _needToUpdate: function(t) { + return !this.isCompleted && this.totalTime < 30 && (null == t || this._frameIdx < t) + }, + updateToFrame: function(t) { + if (this._inited && (this.begin(), + this._needToUpdate(t))) { + var e = this._skeletonInfo + , i = e.skeleton + , n = e.clipper + , r = e.state; + do { + i.update(1 / 60), + r.update(1 / 60), + r.apply(i), + i.updateWorldTransform(), + this._frameIdx++, + this._updateFrame(i, n, this._frameIdx), + this.totalTime += 1 / 60 + } while (this._needToUpdate(t));this.end() + } + }, + isInited: function() { + return this._inited + }, + isInvalid: function() { + return this._invalid + }, + invalidAllFrame: function() { + this.isCompleted = !1, + this._invalid = !0 + }, + updateAllFrame: function() { + this.invalidAllFrame(), + this.updateToFrame() + }, + enableCacheAttachedInfo: function() { + this._enableCacheAttachedInfo || (this._enableCacheAttachedInfo = !0, + this.invalidAllFrame()) + }, + _updateFrame: function(t, e, i) { + d = 0, + _ = 0, + f = 0, + p = null, + m = null, + y = 0, + v = 0, + g = 0, + A = 0, + x = null, + b = null, + this.frames[i] = this.frames[i] || { + segments: [], + colors: [], + boneInfos: [], + vertices: null, + uintVert: null, + indices: null + }; + var n = this.frames[i] + , r = this._tempSegments = n.segments + , s = this._tempColors = n.colors + , a = this._tempBoneInfos = n.boneInfos; + this._traverseSkeleton(t, e), + A > 0 && (s[A - 1].vfOffset = d), + s.length = A, + a.length = _; + var o = g - 1; + if (o >= 0) + if (v > 0) { + var l = r[o]; + l.indexCount = v, + l.vfCount = 6 * y, + l.vertexCount = y, + r.length = g + } else + r.length = g - 1; + if (0 != r.length) { + var h = n.vertices + , C = n.uintVert; + (!h || h.length < d) && (h = n.vertices = new Float32Array(d), + C = n.uintVert = new Uint32Array(h.buffer)); + for (var T = 0, S = 0; T < d; ) + h[T++] = c[S++], + h[T++] = c[S++], + h[T++] = c[S++], + h[T++] = c[S++], + C[T++] = c[S++], + C[T++] = c[S++]; + var w = n.indices; + (!w || w.length < f) && (w = n.indices = new Uint16Array(f)); + for (var E = 0; E < f; E++) + w[E] = u[E]; + n.vertices = h, + n.uintVert = C, + n.indices = w + } + }, + fillVertices: function(t, e, l, h, _) { + if (s = l.a * e.a * t.a * 255, + i = e.r * t.r * 255, + n = e.g * t.g * 255, + r = e.b * t.b * 255, + S.r = i * l.r, + S.g = n * l.g, + S.b = r * l.b, + S.a = s, + null == _.darkColor ? w.set(0, 0, 0, 1) : (w.r = _.darkColor.r * i, + w.g = _.darkColor.g * n, + w.b = _.darkColor.b * r), + w.a = 0, + a = (S.a << 24 >>> 0) + (S.b << 16) + (S.g << 8) + S.r, + o = (w.a << 24 >>> 0) + (w.b << 16) + (w.g << 8) + w.r, + x !== a || b !== o) { + var p = this._tempColors; + x = a, + b = o, + A > 0 && (p[A - 1].vfOffset = d), + p[A++] = { + fr: S.r, + fg: S.g, + fb: S.b, + fa: S.a, + dr: w.r, + dg: w.g, + db: w.b, + da: w.a, + vfOffset: 0 + } + } + if (h.isClipping()) { + h.clipTriangles(c, C, u, T, c, S, w, !0, 6, f, d, d + 2); + var m = h.clippedVertices + , y = h.clippedTriangles; + T = y.length, + C = m.length / 12 * 6; + for (var v = 0, g = f, E = y.length; v < E; ) + u[g++] = y[v++]; + for (var M = 0, D = m.length, B = d; M < D; M += 12, + B += 6) + c[B] = m[M], + c[B + 1] = m[M + 1], + c[B + 2] = m[M + 6], + c[B + 3] = m[M + 7], + c[B + 4] = a, + c[B + 5] = o + } else + for (var I = d, P = d + C; I < P; I += 6) + c[I + 4] = a, + c[I + 5] = o + }, + _traverseSkeleton: function(t, e) { + var i, n, r, s, a, o, l, A, x, b, S, w, M = this._tempSegments, D = this._tempBoneInfos, B = t.color, I = t.bones; + if (this._enableCacheAttachedInfo) + for (var P = 0, R = I.length; P < R; P++, + _++) { + var O = I[P] + , L = D[_]; + L || (L = D[_] = {}), + L.a = O.a, + L.b = O.b, + L.c = O.c, + L.d = O.d, + L.worldX = O.worldX, + L.worldY = O.worldY + } + for (var F = 0, V = t.drawOrder.length; F < V; F++) + if (w = t.drawOrder[F], + C = 0, + T = 0, + i = w.getAttachment()) + if (o = i instanceof h.RegionAttachment, + l = i instanceof h.MeshAttachment, + i instanceof h.ClippingAttachment) + e.clipStart(w, i); + else if (o || l) + if (A = i.region.texture._texture) + if (S = w.data.blendMode, + p === A.nativeUrl && m === S || (p = A.nativeUrl, + m = S, + (x = g - 1) >= 0 && (v > 0 ? ((b = M[x]).indexCount = v, + b.vertexCount = y, + b.vfCount = 6 * y) : g--), + M[g] = { + tex: A, + blendMode: S, + indexCount: 0, + vertexCount: 0, + vfCount: 0 + }, + g++, + v = 0, + y = 0), + o ? (a = E, + C = 24, + T = 6, + i.computeWorldVertices(w.bone, c, d, 6)) : l && (a = i.triangles, + C = 6 * (i.worldVerticesLength >> 1), + T = a.length, + i.computeWorldVertices(w, 0, i.worldVerticesLength, c, d, 6)), + 0 != C && 0 != T) { + for (var N = 0, k = f, G = a.length; N < G; ) + u[k++] = a[N++]; + s = i.uvs; + for (var U = d, z = d + C, H = 0; U < z; U += 6, + H += 2) + c[U + 2] = s[H], + c[U + 3] = s[H + 1]; + if (n = i.color, + r = w.color, + this.fillVertices(B, n, r, e, w), + T > 0) { + for (var W = f, j = f + T; W < j; W++) + u[W] += y; + f += T, + d += C, + v += T, + y += C / 6 + } + e.clipEndWithSlot(w) + } else + e.clipEndWithSlot(w); + else + e.clipEndWithSlot(w); + else + e.clipEndWithSlot(w); + else + e.clipEndWithSlot(w); + e.clipEnd() + } + }), D = cc.Class({ + ctor: function() { + this._privateMode = !1, + this._animationPool = {}, + this._skeletonCache = {} + }, + enablePrivateMode: function() { + this._privateMode = !0 + }, + clear: function() { + this._animationPool = {}, + this._skeletonCache = {} + }, + removeSkeleton: function(t) { + var e = this._skeletonCache[t]; + if (e) { + var i = e.animationsCache; + for (var n in i) { + var r = i[n]; + r && (this._animationPool[t + "#" + n] = r, + r.clear()) + } + delete this._skeletonCache[t] + } + }, + getSkeletonCache: function(t, e) { + var i = this._skeletonCache[t]; + if (!i) { + var n = new h.Skeleton(e) + , r = new h.SkeletonClipping + , s = new h.AnimationStateData(n.data) + , a = new h.AnimationState(s) + , o = new l; + a.addListener(o), + this._skeletonCache[t] = i = { + skeleton: n, + clipper: r, + state: a, + listener: o, + animationsCache: {}, + curAnimationCache: null + } + } + return i + }, + getAnimationCache: function(t, e) { + var i = this._skeletonCache[t]; + return i ? i.animationsCache[e] : null + }, + invalidAnimationCache: function(t) { + var e = this._skeletonCache[t]; + if (e && e.skeleton) { + var i = e.animationsCache; + for (var n in i) + i[n].invalidAllFrame() + } + }, + initAnimationCache: function(t, e) { + if (!e) + return null; + var i = this._skeletonCache[t] + , n = i && i.skeleton; + if (!n) + return null; + if (!n.data.findAnimation(e)) + return null; + var r = i.animationsCache + , s = r[e]; + if (!s) { + var a = t + "#" + e; + (s = this._animationPool[a]) ? delete this._animationPool[a] : (s = new M)._privateMode = this._privateMode, + s.init(i, e), + r[e] = s + } + return s + }, + updateAnimationCache: function(t, e) { + if (e) { + var i = this.initAnimationCache(t, e); + if (!i) + return null; + i.updateAllFrame() + } else { + var n = this._skeletonCache[t]; + if (!n || !n.skeleton) + return; + var r = n.animationsCache; + for (var s in r) + r[s].updateAllFrame() + } + } + }); + D.FrameTime = 1 / 60, + D.sharedCache = new D, + e.exports = D + } + ), { + "./lib/spine": 370, + "./track-entry-listeners": 375 + }], + 372: [(function(t, e) { + "use strict"; + var i = t("./skeleton-cache").sharedCache + , n = cc.Class({ + name: "sp.SkeletonData", + extends: cc.Asset, + ctor: function() { + this.reset() + }, + properties: { + _skeletonJson: null, + skeletonJsonStr: { + get: function() { + return this._skeletonJson ? JSON.stringify(this._skeletonJson) : "" + } + }, + skeletonJson: { + get: function() { + return this._skeletonJson + }, + set: function(t) { + this.reset(), + this._skeletonJson = "string" == typeof t ? JSON.parse(t) : t, + !this._uuid && t.skeleton && (this._uuid = t.skeleton.hash) + } + }, + _atlasText: "", + atlasText: { + get: function() { + return this._atlasText + }, + set: function(t) { + this._atlasText = t, + this.reset() + } + }, + textures: { + default: [], + type: [cc.Texture2D] + }, + textureNames: { + default: [], + type: [cc.String] + }, + scale: 1, + _nativeAsset: { + get: function() { + return this._buffer + }, + set: function(t) { + this._buffer = t.buffer || t, + this.reset() + }, + override: !0 + } + }, + statics: { + preventDeferredLoadDependents: !0 + }, + createNode: !1, + reset: function() { + this._skeletonCache = null, + this._atlasCache = null + }, + ensureTexturesLoaded: function(t, e) { + var i = this.textures + , n = i.length; + if (0 != n) + for (var r = 0, s = function() { + ++r >= n && (t && t.call(e, !0), + t = null) + }, a = 0; a < n; a++) { + var o = i[a]; + o.loaded ? s() : o.once("load", s) + } + else + t.call(e, !1) + }, + isTexturesLoaded: function() { + for (var t = this.textures, e = t.length, i = 0; i < e; i++) + if (!t[i].loaded) + return !1; + return !0 + }, + getRuntimeData: function(t) { + if (this._skeletonCache) + return this._skeletonCache; + if (!(this.textures && this.textures.length > 0) && this.textureNames && this.textureNames.length > 0) + return t || cc.errorID(7507, this.name), + null; + var e = this._getAtlas(t); + if (!e) + return null; + var i = new sp.spine.AtlasAttachmentLoader(e) + , n = null + , r = null; + return this.skeletonJson ? (r = new sp.spine.SkeletonJson(i), + n = this.skeletonJson) : (r = new sp.spine.SkeletonBinary(i), + n = new Uint8Array(this._nativeAsset)), + r.scale = this.scale, + this._skeletonCache = r.readSkeletonData(n), + e.dispose(), + this._skeletonCache + }, + getSkinsEnum: !1, + getAnimsEnum: !1, + _getTexture: function(t) { + for (var e = this.textureNames, i = 0; i < e.length; i++) + if (e[i] === t) { + var n = this.textures[i] + , r = new sp.SkeletonTexture({ + width: n.width, + height: n.height + }); + return r.setRealTexture(n), + r + } + return cc.errorID(7506, t), + null + }, + _getAtlas: function(t) { + return this._atlasCache ? this._atlasCache : this.atlasText ? this._atlasCache = new sp.spine.TextureAtlas(this.atlasText,this._getTexture.bind(this)) : (t || cc.errorID(7508, this.name), + null) + }, + destroy: function() { + i.removeSkeleton(this._uuid), + this._super() + } + }); + sp.SkeletonData = e.exports = n + } + ), { + "./skeleton-cache": 371 + }], + 373: [(function() { + "use strict"; + sp.SkeletonTexture = cc.Class({ + name: "sp.SkeletonTexture", + extends: sp.spine.Texture, + _texture: null, + _material: null, + setRealTexture: function(t) { + this._texture = t + }, + getRealTexture: function() { + return this._texture + }, + setFilters: function(t, e) { + this._texture && this._texture.setFilters(t, e) + }, + setWraps: function(t, e) { + this._texture && this._texture.setWrapMode(t, e) + }, + dispose: function() {} + }) + } + ), {}], + 374: [(function(t, e, i) { + "use strict"; + i.__esModule = !0, + i.default = void 0; + var n, r = (n = t("../../cocos2d/core/renderer/assembler")) && n.__esModule ? n : { + default: n + }; + function s(t, e) { + return (s = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, + t + } + )(t, e) + } + var a, o, l, h, c, u, _, f, d, p, m, y, v, g, A, x, b, C = t("./Skeleton"), T = t("./lib/spine"), S = t("../../cocos2d/core/renderer/render-flow"), w = t("../../cocos2d/core/renderer/webgl/vertex-format"), E = w.vfmtPosUvColor, M = w.vfmtPosUvTwoColor, D = cc.gfx, B = 0, I = [0, 1, 2, 2, 3, 0], P = cc.color(0, 0, 255, 255), R = cc.color(255, 0, 0, 255), O = cc.color(0, 255, 0, 255), L = cc.color(255, 255, 0, 255), F = null, V = null, N = null, k = null; + F = new T.Color(1,1,1,1), + V = new T.Color(1,1,1,1), + N = new T.Vector2, + k = new T.Vector2; + var G, U, z, H, W, j, X, Y, q, J, Z, K, Q, $, tt, et, it, nt, rt, st, at, ot, lt, ht, ct, ut, _t, ft, dt, pt = 0, mt = 0, yt = 0, vt = 0, gt = 0, At = 0, xt = 0; + function bt(t, e) { + var i, n; + switch (e) { + case T.BlendMode.Additive: + i = a ? cc.macro.ONE : cc.macro.SRC_ALPHA, + n = cc.macro.ONE; + break; + case T.BlendMode.Multiply: + i = cc.macro.DST_COLOR, + n = cc.macro.ONE_MINUS_SRC_ALPHA; + break; + case T.BlendMode.Screen: + i = cc.macro.ONE, + n = cc.macro.ONE_MINUS_SRC_COLOR; + break; + case T.BlendMode.Normal: + default: + i = a ? cc.macro.ONE : cc.macro.SRC_ALPHA, + n = cc.macro.ONE_MINUS_SRC_ALPHA + } + var r = !ht.enableBatch + , s = ht._materials[0]; + if (!s) + return null; + var o = t.getId() + i + n + c + r + , l = ht._materialCache + , h = l[o]; + return h || (l.baseMaterial ? h = cc.MaterialVariant.create(s) : (h = s, + l.baseMaterial = s), + h.define("CC_USE_MODEL", r), + h.define("USE_TINT", c), + h.setProperty("texture", t), + h.setBlend(!0, D.BLEND_FUNC_ADD, i, n, D.BLEND_FUNC_ADD, i, n), + l[o] = h), + h + } + function Ct(t) { + st = t.fa * y, + $ = d * (o = a ? st / 255 : 1), + tt = p * o, + et = m * o, + it = t.fr * $, + nt = t.fg * tt, + rt = t.fb * et, + v = (st << 24 >>> 0) + (rt << 16) + (nt << 8) + it, + at = t.dr * $, + ot = t.dg * tt, + lt = t.db * et, + g = ((a ? 255 : 0) << 24 >>> 0) + (lt << 16) + (ot << 8) + at + } + function Tt(t) { + return (t.a << 24 >>> 0) + (t.b << 16) + (t.g << 8) + t.r + } + var St = (function(t) { + var e, i; + function n() { + return t.apply(this, arguments) || this + } + i = t, + (e = n).prototype = Object.create(i.prototype), + e.prototype.constructor = e, + s(e, i); + var r = n.prototype; + return r.updateRenderData = function(t) { + if (!t.isAnimationCached()) { + var e = t._skeleton; + e && e.updateWorldTransform() + } + } + , + r.fillVertices = function(t, e, i, n, r) { + var s, l = ct._vData, h = ct._iData, u = ct._uintVData; + if (F.a = i.a * e.a * t.a * y * 255, + o = a ? F.a : 255, + G = d * e.r * t.r * o, + U = p * e.g * t.g * o, + z = m * e.b * t.b * o, + F.r = G * i.r, + F.g = U * i.g, + F.b = z * i.b, + null == r.darkColor ? V.set(0, 0, 0, 1) : (V.r = r.darkColor.r * G, + V.g = r.darkColor.g * U, + V.b = r.darkColor.b * z), + V.a = a ? 255 : 0, + n.isClipping()) { + var _ = l.subarray(yt + 2); + n.clipTriangles(l.subarray(yt), pt, h.subarray(At), gt, _, F, V, c, x); + var f = new Float32Array(n.clippedVertices) + , A = n.clippedTriangles; + if (gt = A.length, + pt = f.length / b * x, + s = ct.request(pt / x, gt), + At = s.indiceOffset, + vt = s.vertexOffset, + yt = s.byteOffset >> 2, + l = ct._vData, + h = ct._iData, + u = ct._uintVData, + h.set(A, At), + dt) + for (var C = 0, T = f.length, S = yt; C < T; C += b, + S += x) + N.x = f[C], + N.y = f[C + 1], + F.set(f[C + 2], f[C + 3], f[C + 4], f[C + 5]), + k.x = f[C + 6], + k.y = f[C + 7], + c ? V.set(f[C + 8], f[C + 9], f[C + 10], f[C + 11]) : V.set(0, 0, 0, 0), + dt.transform(N, k, F, V), + l[S] = N.x, + l[S + 1] = N.y, + l[S + 2] = k.x, + l[S + 3] = k.y, + u[S + 4] = Tt(F), + c && (u[S + 5] = Tt(V)); + else + for (var w = 0, E = f.length, M = yt; w < E; w += b, + M += x) + l[M] = f[w], + l[M + 1] = f[w + 1], + l[M + 2] = f[w + 6], + l[M + 3] = f[w + 7], + v = (f[w + 5] << 24 >>> 0) + (f[w + 4] << 16) + (f[w + 3] << 8) + f[w + 2], + u[M + 4] = v, + c && (g = (f[w + 11] << 24 >>> 0) + (f[w + 10] << 16) + (f[w + 9] << 8) + f[w + 8], + u[M + 5] = g) + } else if (dt) + for (var D = yt, B = yt + pt; D < B; D += x) + N.x = l[D], + N.y = l[D + 1], + k.x = l[D + 2], + k.y = l[D + 3], + dt.transform(N, k, F, V), + l[D] = N.x, + l[D + 1] = N.y, + l[D + 2] = k.x, + l[D + 3] = k.y, + u[D + 4] = Tt(F), + c && (u[D + 5] = Tt(V)); + else { + v = Tt(F), + g = Tt(V); + for (var I = yt, P = yt + pt; I < P; I += x) + u[I + 4] = v, + c && (u[I + 5] = g) + } + } + , + r.realTimeTraverse = function(t) { + var e, i, n, r, s, a, o, d, p, m, y, v, g = ht._skeleton, A = g.color, C = ht._debugRenderer, S = ht._clipper, w = null; + l = ht._startSlotIndex, + h = ht._endSlotIndex, + H = !1, + -1 == l && (H = !0), + u = ht.debugSlots, + _ = ht.debugBones, + f = ht.debugMesh, + C && (_ || u || f) && (C.clear(), + C.lineWidth = 2), + b = c ? 12 : 8, + pt = 0, + yt = 0, + vt = 0, + gt = 0, + At = 0; + for (var E = 0, M = g.drawOrder.length; E < M; E++) + if (null != (y = g.drawOrder[E])) + if (l >= 0 && l == y.data.index && (H = !0), + H) + if (h >= 0 && h == y.data.index && (H = !1), + pt = 0, + gt = 0, + n = y.getAttachment()) + if (d = n instanceof T.RegionAttachment, + p = n instanceof T.MeshAttachment, + n instanceof T.ClippingAttachment) + S.clipStart(y, n); + else if (d || p) + if (w = bt(n.region.texture._texture, y.data.blendMode)) { + if ((W || w.getHash() !== ut.material.getHash()) && (W = !1, + ut._flush(), + ut.node = _t, + ut.material = w), + d) { + if (o = I, + pt = 4 * x, + gt = 6, + m = ct.request(4, 6), + At = m.indiceOffset, + vt = m.vertexOffset, + yt = m.byteOffset >> 2, + e = ct._vData, + i = ct._iData, + n.computeWorldVertices(y.bone, e, yt, x), + C && u) { + C.strokeColor = P, + C.moveTo(e[yt], e[yt + 1]); + for (var D = yt + x, B = yt + pt; D < B; D += x) + C.lineTo(e[D], e[D + 1]); + C.close(), + C.stroke() + } + } else if (p && (o = n.triangles, + pt = (n.worldVerticesLength >> 1) * x, + gt = o.length, + m = ct.request(pt / x, gt), + At = m.indiceOffset, + vt = m.vertexOffset, + yt = m.byteOffset >> 2, + e = ct._vData, + i = ct._iData, + n.computeWorldVertices(y, 0, n.worldVerticesLength, e, yt, x), + C && f)) { + C.strokeColor = L; + for (var F = 0, V = o.length; F < V; F += 3) { + var N = o[F] * x + yt + , k = o[F + 1] * x + yt + , G = o[F + 2] * x + yt; + C.moveTo(e[N], e[N + 1]), + C.lineTo(e[k], e[k + 1]), + C.lineTo(e[G], e[G + 1]), + C.close(), + C.stroke() + } + } + if (0 != pt && 0 != gt) { + i.set(o, At), + a = n.uvs; + for (var U = yt, z = yt + pt, $ = 0; U < z; U += x, + $ += 2) + e[U + 2] = a[$], + e[U + 3] = a[$ + 1]; + if (r = n.color, + s = y.color, + this.fillVertices(A, r, s, S, y), + e = ct._vData, + i = ct._iData, + gt > 0) { + for (var tt = At, et = At + gt; tt < et; tt++) + i[tt] += vt; + if (t) { + v = t.m, + Y = v[0], + q = v[4], + J = v[12], + Z = v[1], + K = v[5], + Q = v[13]; + for (var it = yt, nt = yt + pt; it < nt; it += x) + j = e[it], + X = e[it + 1], + e[it] = j * Y + X * q + J, + e[it + 1] = j * Z + X * K + Q + } + ct.adjust(pt / x, gt) + } + S.clipEndWithSlot(y) + } else + S.clipEndWithSlot(y) + } else + S.clipEndWithSlot(y); + else + S.clipEndWithSlot(y); + else + S.clipEndWithSlot(y); + else + S.clipEndWithSlot(y); + if (S.clipEnd(), + C && _) { + var rt; + C.strokeColor = R, + C.fillColor = P; + for (var st = 0, at = g.bones.length; st < at; st++) { + var ot = (rt = g.bones[st]).data.length * rt.a + rt.worldX + , lt = rt.data.length * rt.c + rt.worldY; + C.moveTo(rt.worldX, rt.worldY), + C.lineTo(ot, lt), + C.stroke(), + C.circle(rt.worldX, rt.worldY, 1.5 * Math.PI), + C.fill(), + 0 === st && (C.fillColor = O) + } + } + } + , + r.cacheTraverse = function(t) { + var e = ht._curFrame; + if (e) { + var i = e.segments; + if (0 != i.length) { + var n, r, s, a, o, l, h = e.vertices, c = e.indices, u = 0, _ = 0, f = 0; + t && (l = t.m, + Y = l[0], + Z = l[1], + q = l[4], + K = l[5], + J = l[12], + Q = l[13]); + var d = 16 & B + , p = d && 1 === Y && 0 === Z && 0 === q && 1 === K + , m = 0 + , y = e.colors + , A = y[m++] + , x = A.vfOffset; + Ct(A); + for (var b = 0, C = i.length; b < C; b++) { + var T = i[b]; + if (a = bt(T.tex, T.blendMode)) { + (W || a.getHash() !== ut.material.getHash()) && (W = !1, + ut._flush(), + ut.node = _t, + ut.material = a), + mt = T.vertexCount, + gt = T.indexCount, + o = ct.request(mt, gt), + At = o.indiceOffset, + vt = o.vertexOffset, + xt = o.byteOffset >> 2, + n = ct._vData, + r = ct._iData, + s = ct._uintVData; + for (var S = At, w = At + gt; S < w; S++) + r[S] = vt + c[_++]; + if (f = T.vfCount, + n.set(h.subarray(u, u + f), xt), + u += f, + p) + for (var E = xt, M = xt + f; E < M; E += 6) + n[E] += J, + n[E + 1] += Q; + else if (d) + for (var D = xt, I = xt + f; D < I; D += 6) + j = n[D], + X = n[D + 1], + n[D] = j * Y + X * q + J, + n[D + 1] = j * Z + X * K + Q; + if (ct.adjust(mt, gt), + ft) + for (var P = u - f, R = xt + 4, O = xt + 4 + f; R < O; R += 6, + P += 6) + P >= x && (Ct(A = y[m++]), + x = A.vfOffset), + s[R] = v, + s[R + 1] = g + } + } + } + } + } + , + r.fillBuffers = function(t, e) { + var i = t.node; + if (i._renderFlag |= S.FLAG_UPDATE_RENDER_DATA, + t._skeleton) { + var n = i._color; + d = n.r / 255, + p = n.g / 255, + m = n.b / 255, + y = n.a / 255, + c = t.useTint || t.isAnimationCached(), + A = c ? M : E, + x = c ? 6 : 5, + _t = t.node, + ct = e.getBuffer("spine", A), + ut = e, + ht = t, + W = !0, + a = t.premultipliedAlpha, + o = 1, + B = 0, + ft = !1, + dt = t._effectDelegate && t._effectDelegate._vertexEffect, + (4294967295 !== n._val || a) && (ft = !0), + c && (B |= 1); + var r = void 0; + ht.enableBatch && (r = _t._worldMatrix, + W = !1, + B |= 16), + t.isAnimationCached() ? this.cacheTraverse(r) : (dt && dt.begin(t._skeleton), + this.realTimeTraverse(r), + dt && dt.end()), + e.worldMatDirty++, + t.attachUtil._syncAttachedNode(), + _t = void 0, + ct = void 0, + ut = void 0, + ht = void 0, + dt = null + } + } + , + r.postFillBuffers = function(t, e) { + e.worldMatDirty-- + } + , + n + } + )(r.default); + i.default = St, + r.default.register(C, St), + e.exports = i.default + } + ), { + "../../cocos2d/core/renderer/assembler": 221, + "../../cocos2d/core/renderer/render-flow": 225, + "../../cocos2d/core/renderer/webgl/vertex-format": 256, + "./Skeleton": 368, + "./lib/spine": 370 + }], + 375: [(function(t, e) { + "use strict"; + var i = function() { + this.start = null, + this.end = null, + this.complete = null, + this.event = null, + this.interrupt = null, + this.dispose = null + }; + i.getListeners = function(t) { + return t.listener || (t.listener = new i), + t.listener + } + , + e.exports = i + } + ), {}], + 376: [(function(t, e) { + "use strict"; + var i = t("./lib/spine"); + sp.VertexEffectDelegate = cc.Class({ + name: "sp.VertexEffectDelegate", + ctor: function() { + this._vertexEffect = null, + this._interpolation = null, + this._effectType = "none" + }, + clear: function() { + this._vertexEffect = null, + this._interpolation = null, + this._effectType = "none" + }, + initJitter: function(t, e) { + return this._effectType = "jitter", + this._vertexEffect = new i.JitterEffect(t,e), + this._vertexEffect + }, + initSwirlWithPow: function(t, e) { + return this._interpolation = new i.Pow(e), + this._vertexEffect = new i.SwirlEffect(t,this._interpolation), + this._vertexEffect + }, + initSwirlWithPowOut: function(t, e) { + return this._interpolation = new i.PowOut(e), + this._vertexEffect = new i.SwirlEffect(t,this._interpolation), + this._vertexEffect + }, + getJitterVertexEffect: function() { + return this._vertexEffect + }, + getSwirlVertexEffect: function() { + return this._vertexEffect + }, + getVertexEffect: function() { + return this._vertexEffect + }, + getEffectType: function() { + return this._effectType + } + }), + e.exports = sp.VertexEffectDelegate + } + ), { + "./lib/spine": 370 + }], + 377: [(function(t, e, i) { + "use strict"; + var n; + n = function(t) { + function e(t, e) { + return void 0 !== t ? t : e + } + var i = 1e37 + , n = 1e-5 + , r = n * n + , s = 3.14159265359 + , a = 2 + , o = 8 + , l = .008 + , h = 2 / 180 * s + , c = 2 * l + , u = -1 + , _ = (function() { + function t(t, e, i) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + void 0 === i && (i = 0), + this.major = 0, + this.minor = 0, + this.revision = 0, + this.major = t, + this.minor = e, + this.revision = i + } + return t.prototype.toString = function() { + return this.major + "." + this.minor + "." + this.revision + } + , + t + } + )() + , f = new _(2,3,2); + function d(t, e) { + for (var i = [], n = 0; n < t; ++n) + i.push(e(n)); + return i + } + function p(t, e) { + void 0 === e && (e = 0); + for (var i = [], n = 0; n < t; ++n) + i.push(e); + return i + } + var m = Math.abs + , y = Math.min + , v = Math.max; + function g(t, e, i) { + return t < e ? e : t > i ? i : t + } + var A = isFinite; + function x(t) { + return t * t + } + function b(t) { + return 1 / Math.sqrt(t) + } + var C, T = Math.sqrt, S = Math.pow, w = Math.cos, E = Math.sin, M = Math.acos, D = Math.asin, B = Math.atan2, I = (function() { + function t(t, e) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + this.x = t, + this.y = e + } + return t.prototype.Clone = function() { + return new t(this.x,this.y) + } + , + t.prototype.SetZero = function() { + return this.x = 0, + this.y = 0, + this + } + , + t.prototype.Set = function(t, e) { + return this.x = t, + this.y = e, + this + } + , + t.prototype.Copy = function(t) { + return this.x = t.x, + this.y = t.y, + this + } + , + t.prototype.SelfAdd = function(t) { + return this.x += t.x, + this.y += t.y, + this + } + , + t.prototype.SelfAddXY = function(t, e) { + return this.x += t, + this.y += e, + this + } + , + t.prototype.SelfSub = function(t) { + return this.x -= t.x, + this.y -= t.y, + this + } + , + t.prototype.SelfSubXY = function(t, e) { + return this.x -= t, + this.y -= e, + this + } + , + t.prototype.SelfMul = function(t) { + return this.x *= t, + this.y *= t, + this + } + , + t.prototype.SelfMulAdd = function(t, e) { + return this.x += t * e.x, + this.y += t * e.y, + this + } + , + t.prototype.SelfMulSub = function(t, e) { + return this.x -= t * e.x, + this.y -= t * e.y, + this + } + , + t.prototype.Dot = function(t) { + return this.x * t.x + this.y * t.y + } + , + t.prototype.Cross = function(t) { + return this.x * t.y - this.y * t.x + } + , + t.prototype.Length = function() { + var t = this.x + , e = this.y; + return Math.sqrt(t * t + e * e) + } + , + t.prototype.LengthSquared = function() { + var t = this.x + , e = this.y; + return t * t + e * e + } + , + t.prototype.Normalize = function() { + var t = this.Length(); + if (t >= n) { + var e = 1 / t; + this.x *= e, + this.y *= e + } + return t + } + , + t.prototype.SelfNormalize = function() { + var t = this.Length(); + if (t >= n) { + var e = 1 / t; + this.x *= e, + this.y *= e + } + return this + } + , + t.prototype.SelfRotate = function(t) { + var e = Math.cos(t) + , i = Math.sin(t) + , n = this.x; + return this.x = e * n - i * this.y, + this.y = i * n + e * this.y, + this + } + , + t.prototype.IsValid = function() { + return isFinite(this.x) && isFinite(this.y) + } + , + t.prototype.SelfCrossVS = function(t) { + var e = this.x; + return this.x = t * this.y, + this.y = -t * e, + this + } + , + t.prototype.SelfCrossSV = function(t) { + var e = this.x; + return this.x = -t * this.y, + this.y = t * e, + this + } + , + t.prototype.SelfMinV = function(t) { + return this.x = y(this.x, t.x), + this.y = y(this.y, t.y), + this + } + , + t.prototype.SelfMaxV = function(t) { + return this.x = v(this.x, t.x), + this.y = v(this.y, t.y), + this + } + , + t.prototype.SelfAbs = function() { + return this.x = m(this.x), + this.y = m(this.y), + this + } + , + t.prototype.SelfNeg = function() { + return this.x = -this.x, + this.y = -this.y, + this + } + , + t.prototype.SelfSkew = function() { + var t = this.x; + return this.x = -this.y, + this.y = t, + this + } + , + t.MakeArray = function(e) { + return d(e, (function() { + return new t + } + )) + } + , + t.AbsV = function(t, e) { + return e.x = m(t.x), + e.y = m(t.y), + e + } + , + t.MinV = function(t, e, i) { + return i.x = y(t.x, e.x), + i.y = y(t.y, e.y), + i + } + , + t.MaxV = function(t, e, i) { + return i.x = v(t.x, e.x), + i.y = v(t.y, e.y), + i + } + , + t.ClampV = function(t, e, i, n) { + return n.x = g(t.x, e.x, i.x), + n.y = g(t.y, e.y, i.y), + n + } + , + t.RotateV = function(t, e, i) { + var n = t.x + , r = t.y + , s = Math.cos(e) + , a = Math.sin(e); + return i.x = s * n - a * r, + i.y = a * n + s * r, + i + } + , + t.DotVV = function(t, e) { + return t.x * e.x + t.y * e.y + } + , + t.CrossVV = function(t, e) { + return t.x * e.y - t.y * e.x + } + , + t.CrossVS = function(t, e, i) { + var n = t.x; + return i.x = e * t.y, + i.y = -e * n, + i + } + , + t.CrossVOne = function(t, e) { + var i = t.x; + return e.x = t.y, + e.y = -i, + e + } + , + t.CrossSV = function(t, e, i) { + var n = e.x; + return i.x = -t * e.y, + i.y = t * n, + i + } + , + t.CrossOneV = function(t, e) { + var i = t.x; + return e.x = -t.y, + e.y = i, + e + } + , + t.AddVV = function(t, e, i) { + return i.x = t.x + e.x, + i.y = t.y + e.y, + i + } + , + t.SubVV = function(t, e, i) { + return i.x = t.x - e.x, + i.y = t.y - e.y, + i + } + , + t.MulSV = function(t, e, i) { + return i.x = e.x * t, + i.y = e.y * t, + i + } + , + t.MulVS = function(t, e, i) { + return i.x = t.x * e, + i.y = t.y * e, + i + } + , + t.AddVMulSV = function(t, e, i, n) { + return n.x = t.x + e * i.x, + n.y = t.y + e * i.y, + n + } + , + t.SubVMulSV = function(t, e, i, n) { + return n.x = t.x - e * i.x, + n.y = t.y - e * i.y, + n + } + , + t.AddVCrossSV = function(t, e, i, n) { + var r = i.x; + return n.x = t.x - e * i.y, + n.y = t.y + e * r, + n + } + , + t.MidVV = function(t, e, i) { + return i.x = .5 * (t.x + e.x), + i.y = .5 * (t.y + e.y), + i + } + , + t.ExtVV = function(t, e, i) { + return i.x = .5 * (e.x - t.x), + i.y = .5 * (e.y - t.y), + i + } + , + t.IsEqualToV = function(t, e) { + return t.x === e.x && t.y === e.y + } + , + t.DistanceVV = function(t, e) { + var i = t.x - e.x + , n = t.y - e.y; + return Math.sqrt(i * i + n * n) + } + , + t.DistanceSquaredVV = function(t, e) { + var i = t.x - e.x + , n = t.y - e.y; + return i * i + n * n + } + , + t.NegV = function(t, e) { + return e.x = -t.x, + e.y = -t.y, + e + } + , + t.ZERO = new t(0,0), + t.UNITX = new t(1,0), + t.UNITY = new t(0,1), + t.s_t0 = new t, + t.s_t1 = new t, + t.s_t2 = new t, + t.s_t3 = new t, + t + } + )(), P = new I(0,0), R = (function() { + function t(t, e, i) { + void 0 === t && (t = 0), + void 0 === e && (e = 0), + void 0 === i && (i = 0), + this.x = t, + this.y = e, + this.z = i + } + return t.prototype.Clone = function() { + return new t(this.x,this.y,this.z) + } + , + t.prototype.SetZero = function() { + return this.x = 0, + this.y = 0, + this.z = 0, + this + } + , + t.prototype.SetXYZ = function(t, e, i) { + return this.x = t, + this.y = e, + this.z = i, + this + } + , + t.prototype.Copy = function(t) { + return this.x = t.x, + this.y = t.y, + this.z = t.z, + this + } + , + t.prototype.SelfNeg = function() { + return this.x = -this.x, + this.y = -this.y, + this.z = -this.z, + this + } + , + t.prototype.SelfAdd = function(t) { + return this.x += t.x, + this.y += t.y, + this.z += t.z, + this + } + , + t.prototype.SelfAddXYZ = function(t, e, i) { + return this.x += t, + this.y += e, + this.z += i, + this + } + , + t.prototype.SelfSub = function(t) { + return this.x -= t.x, + this.y -= t.y, + this.z -= t.z, + this + } + , + t.prototype.SelfSubXYZ = function(t, e, i) { + return this.x -= t, + this.y -= e, + this.z -= i, + this + } + , + t.prototype.SelfMul = function(t) { + return this.x *= t, + this.y *= t, + this.z *= t, + this + } + , + t.DotV3V3 = function(t, e) { + return t.x * e.x + t.y * e.y + t.z * e.z + } + , + t.CrossV3V3 = function(t, e, i) { + var n = t.x + , r = t.y + , s = t.z + , a = e.x + , o = e.y + , l = e.z; + return i.x = r * l - s * o, + i.y = s * a - n * l, + i.z = n * o - r * a, + i + } + , + t.ZERO = new t(0,0,0), + t.s_t0 = new t, + t + } + )(), O = (function() { + function t() { + this.ex = new I(1,0), + this.ey = new I(0,1) + } + return t.prototype.Clone = function() { + return (new t).Copy(this) + } + , + t.FromVV = function(e, i) { + return (new t).SetVV(e, i) + } + , + t.FromSSSS = function(e, i, n, r) { + return (new t).SetSSSS(e, i, n, r) + } + , + t.FromAngle = function(e) { + return (new t).SetAngle(e) + } + , + t.prototype.SetSSSS = function(t, e, i, n) { + return this.ex.Set(t, i), + this.ey.Set(e, n), + this + } + , + t.prototype.SetVV = function(t, e) { + return this.ex.Copy(t), + this.ey.Copy(e), + this + } + , + t.prototype.SetAngle = function(t) { + var e = Math.cos(t) + , i = Math.sin(t); + return this.ex.Set(e, i), + this.ey.Set(-i, e), + this + } + , + t.prototype.Copy = function(t) { + return this.ex.Copy(t.ex), + this.ey.Copy(t.ey), + this + } + , + t.prototype.SetIdentity = function() { + return this.ex.Set(1, 0), + this.ey.Set(0, 1), + this + } + , + t.prototype.SetZero = function() { + return this.ex.SetZero(), + this.ey.SetZero(), + this + } + , + t.prototype.GetAngle = function() { + return Math.atan2(this.ex.y, this.ex.x) + } + , + t.prototype.GetInverse = function(t) { + var e = this.ex.x + , i = this.ey.x + , n = this.ex.y + , r = this.ey.y + , s = e * r - i * n; + return 0 !== s && (s = 1 / s), + t.ex.x = s * r, + t.ey.x = -s * i, + t.ex.y = -s * n, + t.ey.y = s * e, + t + } + , + t.prototype.Solve = function(t, e, i) { + var n = this.ex.x + , r = this.ey.x + , s = this.ex.y + , a = this.ey.y + , o = n * a - r * s; + return 0 !== o && (o = 1 / o), + i.x = o * (a * t - r * e), + i.y = o * (n * e - s * t), + i + } + , + t.prototype.SelfAbs = function() { + return this.ex.SelfAbs(), + this.ey.SelfAbs(), + this + } + , + t.prototype.SelfInv = function() { + return this.GetInverse(this), + this + } + , + t.prototype.SelfAddM = function(t) { + return this.ex.SelfAdd(t.ex), + this.ey.SelfAdd(t.ey), + this + } + , + t.prototype.SelfSubM = function(t) { + return this.ex.SelfSub(t.ex), + this.ey.SelfSub(t.ey), + this + } + , + t.AbsM = function(t, e) { + var i = t.ex + , n = t.ey; + return e.ex.x = m(i.x), + e.ex.y = m(i.y), + e.ey.x = m(n.x), + e.ey.y = m(n.y), + e + } + , + t.MulMV = function(t, e, i) { + var n = t.ex + , r = t.ey + , s = e.x + , a = e.y; + return i.x = n.x * s + r.x * a, + i.y = n.y * s + r.y * a, + i + } + , + t.MulTMV = function(t, e, i) { + var n = t.ex + , r = t.ey + , s = e.x + , a = e.y; + return i.x = n.x * s + n.y * a, + i.y = r.x * s + r.y * a, + i + } + , + t.AddMM = function(t, e, i) { + var n = t.ex + , r = t.ey + , s = e.ex + , a = e.ey; + return i.ex.x = n.x + s.x, + i.ex.y = n.y + s.y, + i.ey.x = r.x + a.x, + i.ey.y = r.y + a.y, + i + } + , + t.MulMM = function(t, e, i) { + var n = t.ex.x + , r = t.ex.y + , s = t.ey.x + , a = t.ey.y + , o = e.ex.x + , l = e.ex.y + , h = e.ey.x + , c = e.ey.y; + return i.ex.x = n * o + s * l, + i.ex.y = r * o + a * l, + i.ey.x = n * h + s * c, + i.ey.y = r * h + a * c, + i + } + , + t.MulTMM = function(t, e, i) { + var n = t.ex.x + , r = t.ex.y + , s = t.ey.x + , a = t.ey.y + , o = e.ex.x + , l = e.ex.y + , h = e.ey.x + , c = e.ey.y; + return i.ex.x = n * o + r * l, + i.ex.y = s * o + a * l, + i.ey.x = n * h + r * c, + i.ey.y = s * h + a * c, + i + } + , + t.IDENTITY = new t, + t + } + )(), L = (function() { + function t() { + this.ex = new R(1,0,0), + this.ey = new R(0,1,0), + this.ez = new R(0,0,1) + } + return t.prototype.Clone = function() { + return (new t).Copy(this) + } + , + t.prototype.SetVVV = function(t, e, i) { + return this.ex.Copy(t), + this.ey.Copy(e), + this.ez.Copy(i), + this + } + , + t.prototype.Copy = function(t) { + return this.ex.Copy(t.ex), + this.ey.Copy(t.ey), + this.ez.Copy(t.ez), + this + } + , + t.prototype.SetIdentity = function() { + return this.ex.SetXYZ(1, 0, 0), + this.ey.SetXYZ(0, 1, 0), + this.ez.SetXYZ(0, 0, 1), + this + } + , + t.prototype.SetZero = function() { + return this.ex.SetZero(), + this.ey.SetZero(), + this.ez.SetZero(), + this + } + , + t.prototype.SelfAddM = function(t) { + return this.ex.SelfAdd(t.ex), + this.ey.SelfAdd(t.ey), + this.ez.SelfAdd(t.ez), + this + } + , + t.prototype.Solve33 = function(t, e, i, n) { + var r = this.ex.x + , s = this.ex.y + , a = this.ex.z + , o = this.ey.x + , l = this.ey.y + , h = this.ey.z + , c = this.ez.x + , u = this.ez.y + , _ = this.ez.z + , f = r * (l * _ - h * u) + s * (h * c - o * _) + a * (o * u - l * c); + return 0 !== f && (f = 1 / f), + n.x = f * (t * (l * _ - h * u) + e * (h * c - o * _) + i * (o * u - l * c)), + n.y = f * (r * (e * _ - i * u) + s * (i * c - t * _) + a * (t * u - e * c)), + n.z = f * (r * (l * i - h * e) + s * (h * t - o * i) + a * (o * e - l * t)), + n + } + , + t.prototype.Solve22 = function(t, e, i) { + var n = this.ex.x + , r = this.ey.x + , s = this.ex.y + , a = this.ey.y + , o = n * a - r * s; + return 0 !== o && (o = 1 / o), + i.x = o * (a * t - r * e), + i.y = o * (n * e - s * t), + i + } + , + t.prototype.GetInverse22 = function(t) { + var e = this.ex.x + , i = this.ey.x + , n = this.ex.y + , r = this.ey.y + , s = e * r - i * n; + 0 !== s && (s = 1 / s), + t.ex.x = s * r, + t.ey.x = -s * i, + t.ex.z = 0, + t.ex.y = -s * n, + t.ey.y = s * e, + t.ey.z = 0, + t.ez.x = 0, + t.ez.y = 0, + t.ez.z = 0 + } + , + t.prototype.GetSymInverse33 = function(t) { + var e = R.DotV3V3(this.ex, R.CrossV3V3(this.ey, this.ez, R.s_t0)); + 0 !== e && (e = 1 / e); + var i = this.ex.x + , n = this.ey.x + , r = this.ez.x + , s = this.ey.y + , a = this.ez.y + , o = this.ez.z; + t.ex.x = e * (s * o - a * a), + t.ex.y = e * (r * a - n * o), + t.ex.z = e * (n * a - r * s), + t.ey.x = t.ex.y, + t.ey.y = e * (i * o - r * r), + t.ey.z = e * (r * n - i * a), + t.ez.x = t.ex.z, + t.ez.y = t.ey.z, + t.ez.z = e * (i * s - n * n) + } + , + t.MulM33V3 = function(t, e, i) { + var n = e.x + , r = e.y + , s = e.z; + return i.x = t.ex.x * n + t.ey.x * r + t.ez.x * s, + i.y = t.ex.y * n + t.ey.y * r + t.ez.y * s, + i.z = t.ex.z * n + t.ey.z * r + t.ez.z * s, + i + } + , + t.MulM33XYZ = function(t, e, i, n, r) { + return r.x = t.ex.x * e + t.ey.x * i + t.ez.x * n, + r.y = t.ex.y * e + t.ey.y * i + t.ez.y * n, + r.z = t.ex.z * e + t.ey.z * i + t.ez.z * n, + r + } + , + t.MulM33V2 = function(t, e, i) { + var n = e.x + , r = e.y; + return i.x = t.ex.x * n + t.ey.x * r, + i.y = t.ex.y * n + t.ey.y * r, + i + } + , + t.MulM33XY = function(t, e, i, n) { + return n.x = t.ex.x * e + t.ey.x * i, + n.y = t.ex.y * e + t.ey.y * i, + n + } + , + t.IDENTITY = new t, + t + } + )(), F = (function() { + function t(t) { + void 0 === t && (t = 0), + this.s = 0, + this.c = 1, + t && (this.s = Math.sin(t), + this.c = Math.cos(t)) + } + return t.prototype.Clone = function() { + return (new t).Copy(this) + } + , + t.prototype.Copy = function(t) { + return this.s = t.s, + this.c = t.c, + this + } + , + t.prototype.SetAngle = function(t) { + return this.s = Math.sin(t), + this.c = Math.cos(t), + this + } + , + t.prototype.SetIdentity = function() { + return this.s = 0, + this.c = 1, + this + } + , + t.prototype.GetAngle = function() { + return Math.atan2(this.s, this.c) + } + , + t.prototype.GetXAxis = function(t) { + return t.x = this.c, + t.y = this.s, + t + } + , + t.prototype.GetYAxis = function(t) { + return t.x = -this.s, + t.y = this.c, + t + } + , + t.MulRR = function(t, e, i) { + var n = t.c + , r = t.s + , s = e.c + , a = e.s; + return i.s = r * s + n * a, + i.c = n * s - r * a, + i + } + , + t.MulTRR = function(t, e, i) { + var n = t.c + , r = t.s + , s = e.c + , a = e.s; + return i.s = n * a - r * s, + i.c = n * s + r * a, + i + } + , + t.MulRV = function(t, e, i) { + var n = t.c + , r = t.s + , s = e.x + , a = e.y; + return i.x = n * s - r * a, + i.y = r * s + n * a, + i + } + , + t.MulTRV = function(t, e, i) { + var n = t.c + , r = t.s + , s = e.x + , a = e.y; + return i.x = n * s + r * a, + i.y = -r * s + n * a, + i + } + , + t.IDENTITY = new t, + t + } + )(), V = (function() { + function t() { + this.p = new I, + this.q = new F + } + return t.prototype.Clone = function() { + return (new t).Copy(this) + } + , + t.prototype.Copy = function(t) { + return this.p.Copy(t.p), + this.q.Copy(t.q), + this + } + , + t.prototype.SetIdentity = function() { + return this.p.SetZero(), + this.q.SetIdentity(), + this + } + , + t.prototype.SetPositionRotation = function(t, e) { + return this.p.Copy(t), + this.q.Copy(e), + this + } + , + t.prototype.SetPositionAngle = function(t, e) { + return this.p.Copy(t), + this.q.SetAngle(e), + this + } + , + t.prototype.SetPosition = function(t) { + return this.p.Copy(t), + this + } + , + t.prototype.SetPositionXY = function(t, e) { + return this.p.Set(t, e), + this + } + , + t.prototype.SetRotation = function(t) { + return this.q.Copy(t), + this + } + , + t.prototype.SetRotationAngle = function(t) { + return this.q.SetAngle(t), + this + } + , + t.prototype.GetPosition = function() { + return this.p + } + , + t.prototype.GetRotation = function() { + return this.q + } + , + t.prototype.GetRotationAngle = function() { + return this.q.GetAngle() + } + , + t.prototype.GetAngle = function() { + return this.q.GetAngle() + } + , + t.MulXV = function(t, e, i) { + var n = t.q.c + , r = t.q.s + , s = e.x + , a = e.y; + return i.x = n * s - r * a + t.p.x, + i.y = r * s + n * a + t.p.y, + i + } + , + t.MulTXV = function(t, e, i) { + var n = t.q.c + , r = t.q.s + , s = e.x - t.p.x + , a = e.y - t.p.y; + return i.x = n * s + r * a, + i.y = -r * s + n * a, + i + } + , + t.MulXX = function(t, e, i) { + return F.MulRR(t.q, e.q, i.q), + I.AddVV(F.MulRV(t.q, e.p, i.p), t.p, i.p), + i + } + , + t.MulTXX = function(t, e, i) { + return F.MulTRR(t.q, e.q, i.q), + F.MulTRV(t.q, I.SubVV(e.p, t.p, i.p), i.p), + i + } + , + t.IDENTITY = new t, + t + } + )(), N = (function() { + function t() { + this.localCenter = new I, + this.c0 = new I, + this.c = new I, + this.a0 = 0, + this.a = 0, + this.alpha0 = 0 + } + return t.prototype.Clone = function() { + return (new t).Copy(this) + } + , + t.prototype.Copy = function(t) { + return this.localCenter.Copy(t.localCenter), + this.c0.Copy(t.c0), + this.c.Copy(t.c), + this.a0 = t.a0, + this.a = t.a, + this.alpha0 = t.alpha0, + this + } + , + t.prototype.GetTransform = function(t, e) { + var i = 1 - e; + t.p.x = i * this.c0.x + e * this.c.x, + t.p.y = i * this.c0.y + e * this.c.y; + var n = i * this.a0 + e * this.a; + return t.q.SetAngle(n), + t.p.SelfSub(F.MulRV(t.q, this.localCenter, I.s_t0)), + t + } + , + t.prototype.Advance = function(t) { + var e = (t - this.alpha0) / (1 - this.alpha0) + , i = 1 - e; + this.c0.x = i * this.c0.x + e * this.c.x, + this.c0.y = i * this.c0.y + e * this.c.y, + this.a0 = i * this.a0 + e * this.a, + this.alpha0 = t + } + , + t.prototype.Normalize = function() { + var t = 6.28318530718 * Math.floor(this.a0 / 6.28318530718); + this.a0 -= t, + this.a -= t + } + , + t + } + )(), k = (function() { + function t(t, e, i, n) { + void 0 === t && (t = .5), + void 0 === e && (e = .5), + void 0 === i && (i = .5), + void 0 === n && (n = 1), + this.r = t, + this.g = e, + this.b = i, + this.a = n + } + return t.prototype.Clone = function() { + return (new t).Copy(this) + } + , + t.prototype.Copy = function(t) { + return this.r = t.r, + this.g = t.g, + this.b = t.b, + this.a = t.a, + this + } + , + t.prototype.IsEqual = function(t) { + return this.r === t.r && this.g === t.g && this.b === t.b && this.a === t.a + } + , + t.prototype.IsZero = function() { + return 0 === this.r && 0 === this.g && 0 === this.b && 0 === this.a + } + , + t.prototype.Set = function(t, e, i, n) { + void 0 === n && (n = this.a), + this.SetRGBA(t, e, i, n) + } + , + t.prototype.SetByteRGB = function(t, e, i) { + return this.r = t / 255, + this.g = e / 255, + this.b = i / 255, + this + } + , + t.prototype.SetByteRGBA = function(t, e, i, n) { + return this.r = t / 255, + this.g = e / 255, + this.b = i / 255, + this.a = n / 255, + this + } + , + t.prototype.SetRGB = function(t, e, i) { + return this.r = t, + this.g = e, + this.b = i, + this + } + , + t.prototype.SetRGBA = function(t, e, i, n) { + return this.r = t, + this.g = e, + this.b = i, + this.a = n, + this + } + , + t.prototype.SelfAdd = function(t) { + return this.r += t.r, + this.g += t.g, + this.b += t.b, + this.a += t.a, + this + } + , + t.prototype.Add = function(t, e) { + return e.r = this.r + t.r, + e.g = this.g + t.g, + e.b = this.b + t.b, + e.a = this.a + t.a, + e + } + , + t.prototype.SelfSub = function(t) { + return this.r -= t.r, + this.g -= t.g, + this.b -= t.b, + this.a -= t.a, + this + } + , + t.prototype.Sub = function(t, e) { + return e.r = this.r - t.r, + e.g = this.g - t.g, + e.b = this.b - t.b, + e.a = this.a - t.a, + e + } + , + t.prototype.SelfMul = function(t) { + return this.r *= t, + this.g *= t, + this.b *= t, + this.a *= t, + this + } + , + t.prototype.Mul = function(t, e) { + return e.r = this.r * t, + e.g = this.g * t, + e.b = this.b * t, + e.a = this.a * t, + e + } + , + t.prototype.Mix = function(e, i) { + t.MixColors(this, e, i) + } + , + t.MixColors = function(t, e, i) { + var n = i * (e.r - t.r) + , r = i * (e.g - t.g) + , s = i * (e.b - t.b) + , a = i * (e.a - t.a); + t.r += n, + t.g += r, + t.b += s, + t.a += a, + e.r -= n, + e.g -= r, + e.b -= s, + e.a -= a + } + , + t.prototype.MakeStyleString = function(e) { + return void 0 === e && (e = this.a), + t.MakeStyleString(this.r, this.g, this.b, e) + } + , + t.MakeStyleString = function(t, e, i, n) { + return void 0 === n && (n = 1), + t *= 255, + e *= 255, + i *= 255, + n < 1 ? "rgba(" + t + "," + e + "," + i + "," + n + ")" : "rgb(" + t + "," + e + "," + i + ")" + } + , + t.ZERO = new t(0,0,0,0), + t.RED = new t(1,0,0), + t.GREEN = new t(0,1,0), + t.BLUE = new t(0,0,1), + t + } + )(); + (C = t.b2DrawFlags || (t.b2DrawFlags = {}))[C.e_none = 0] = "e_none", + C[C.e_shapeBit = 1] = "e_shapeBit", + C[C.e_jointBit = 2] = "e_jointBit", + C[C.e_aabbBit = 4] = "e_aabbBit", + C[C.e_pairBit = 8] = "e_pairBit", + C[C.e_centerOfMassBit = 16] = "e_centerOfMassBit", + C[C.e_particleBit = 32] = "e_particleBit", + C[C.e_controllerBit = 64] = "e_controllerBit", + C[C.e_all = 63] = "e_all"; + var G = (function() { + function t() { + this.m_drawFlags = 0 + } + return t.prototype.SetFlags = function(t) { + this.m_drawFlags = t + } + , + t.prototype.GetFlags = function() { + return this.m_drawFlags + } + , + t.prototype.AppendFlags = function(t) { + this.m_drawFlags |= t + } + , + t.prototype.ClearFlags = function(t) { + this.m_drawFlags &= ~t + } + , + t + } + )() + , U = (function() { + function t() { + this.m_start = Date.now() + } + return t.prototype.Reset = function() { + return this.m_start = Date.now(), + this + } + , + t.prototype.GetMilliseconds = function() { + return Date.now() - this.m_start + } + , + t + } + )() + , z = (function() { + function t() { + this.m_count = 0, + this.m_min_count = 0, + this.m_max_count = 0 + } + return t.prototype.GetCount = function() { + return this.m_count + } + , + t.prototype.GetMinCount = function() { + return this.m_min_count + } + , + t.prototype.GetMaxCount = function() { + return this.m_max_count + } + , + t.prototype.ResetCount = function() { + var t = this.m_count; + return this.m_count = 0, + t + } + , + t.prototype.ResetMinCount = function() { + this.m_min_count = 0 + } + , + t.prototype.ResetMaxCount = function() { + this.m_max_count = 0 + } + , + t.prototype.Increment = function() { + this.m_count++, + this.m_max_count < this.m_count && (this.m_max_count = this.m_count) + } + , + t.prototype.Decrement = function() { + this.m_count--, + this.m_min_count > this.m_count && (this.m_min_count = this.m_count) + } + , + t + } + )() + , H = (function() { + function t(t) { + this.m_stack = [], + this.m_count = 0, + this.m_stack = d(t, (function() { + return null + } + )), + this.m_count = 0 + } + return t.prototype.Reset = function() { + return this.m_count = 0, + this + } + , + t.prototype.Push = function(t) { + this.m_stack[this.m_count] = t, + this.m_count++ + } + , + t.prototype.Pop = function() { + this.m_count--; + var t = this.m_stack[this.m_count]; + if (this.m_stack[this.m_count] = null, + null === t) + throw new Error; + return t + } + , + t.prototype.GetCount = function() { + return this.m_count + } + , + t + } + )() + , W = (function() { + function t() { + this.m_buffer = I.MakeArray(2), + this.m_vertices = this.m_buffer, + this.m_count = 0, + this.m_radius = 0 + } + return t.prototype.Copy = function(t) { + return t.m_vertices === t.m_buffer ? (this.m_vertices = this.m_buffer, + this.m_buffer[0].Copy(t.m_buffer[0]), + this.m_buffer[1].Copy(t.m_buffer[1])) : this.m_vertices = t.m_vertices, + this.m_count = t.m_count, + this.m_radius = t.m_radius, + this + } + , + t.prototype.Reset = function() { + return this.m_vertices = this.m_buffer, + this.m_count = 0, + this.m_radius = 0, + this + } + , + t.prototype.SetShape = function(t, e) { + t.SetupDistanceProxy(this, e) + } + , + t.prototype.SetVerticesRadius = function(t, e, i) { + this.m_vertices = t, + this.m_count = e, + this.m_radius = i + } + , + t.prototype.GetSupport = function(t) { + for (var e = 0, i = I.DotVV(this.m_vertices[0], t), n = 1; n < this.m_count; ++n) { + var r = I.DotVV(this.m_vertices[n], t); + r > i && (e = n, + i = r) + } + return e + } + , + t.prototype.GetSupportVertex = function(t) { + for (var e = 0, i = I.DotVV(this.m_vertices[0], t), n = 1; n < this.m_count; ++n) { + var r = I.DotVV(this.m_vertices[n], t); + r > i && (e = n, + i = r) + } + return this.m_vertices[e] + } + , + t.prototype.GetVertexCount = function() { + return this.m_count + } + , + t.prototype.GetVertex = function(t) { + return this.m_vertices[t] + } + , + t + } + )() + , j = (function() { + function t() { + this.metric = 0, + this.count = 0, + this.indexA = [0, 0, 0], + this.indexB = [0, 0, 0] + } + return t.prototype.Reset = function() { + return this.metric = 0, + this.count = 0, + this + } + , + t + } + )() + , X = (function() { + function t() { + this.proxyA = new W, + this.proxyB = new W, + this.transformA = new V, + this.transformB = new V, + this.useRadii = !1 + } + return t.prototype.Reset = function() { + return this.proxyA.Reset(), + this.proxyB.Reset(), + this.transformA.SetIdentity(), + this.transformB.SetIdentity(), + this.useRadii = !1, + this + } + , + t + } + )() + , Y = (function() { + function t() { + this.pointA = new I, + this.pointB = new I, + this.distance = 0, + this.iterations = 0 + } + return t.prototype.Reset = function() { + return this.pointA.SetZero(), + this.pointB.SetZero(), + this.distance = 0, + this.iterations = 0, + this + } + , + t + } + )(); + t.b2_gjkCalls = 0, + t.b2_gjkIters = 0, + t.b2_gjkMaxIters = 0; + var q = (function() { + function t() { + this.wA = new I, + this.wB = new I, + this.w = new I, + this.a = 0, + this.indexA = 0, + this.indexB = 0 + } + return t.prototype.Copy = function(t) { + return this.wA.Copy(t.wA), + this.wB.Copy(t.wB), + this.w.Copy(t.w), + this.a = t.a, + this.indexA = t.indexA, + this.indexB = t.indexB, + this + } + , + t + } + )() + , J = (function() { + function t() { + this.m_v1 = new q, + this.m_v2 = new q, + this.m_v3 = new q, + this.m_vertices = [], + this.m_count = 0, + this.m_vertices[0] = this.m_v1, + this.m_vertices[1] = this.m_v2, + this.m_vertices[2] = this.m_v3 + } + return t.prototype.ReadCache = function(t, e, i, r, s) { + this.m_count = t.count; + for (var a = this.m_vertices, o = 0; o < this.m_count; ++o) { + (_ = a[o]).indexA = t.indexA[o], + _.indexB = t.indexB[o]; + var l = e.GetVertex(_.indexA) + , h = r.GetVertex(_.indexB); + V.MulXV(i, l, _.wA), + V.MulXV(s, h, _.wB), + I.SubVV(_.wB, _.wA, _.w), + _.a = 0 + } + if (this.m_count > 1) { + var c = t.metric + , u = this.GetMetric(); + (u < .5 * c || 2 * c < u || u < n) && (this.m_count = 0) + } + var _; + 0 === this.m_count && ((_ = a[0]).indexA = 0, + _.indexB = 0, + l = e.GetVertex(0), + h = r.GetVertex(0), + V.MulXV(i, l, _.wA), + V.MulXV(s, h, _.wB), + I.SubVV(_.wB, _.wA, _.w), + _.a = 1, + this.m_count = 1) + } + , + t.prototype.WriteCache = function(t) { + t.metric = this.GetMetric(), + t.count = this.m_count; + for (var e = this.m_vertices, i = 0; i < this.m_count; ++i) + t.indexA[i] = e[i].indexA, + t.indexB[i] = e[i].indexB + } + , + t.prototype.GetSearchDirection = function(t) { + switch (this.m_count) { + case 1: + return I.NegV(this.m_v1.w, t); + case 2: + var e = I.SubVV(this.m_v2.w, this.m_v1.w, t); + return I.CrossVV(e, I.NegV(this.m_v1.w, I.s_t0)) > 0 ? I.CrossOneV(e, t) : I.CrossVOne(e, t); + default: + return t.SetZero() + } + } + , + t.prototype.GetClosestPoint = function(t) { + switch (this.m_count) { + case 0: + return t.SetZero(); + case 1: + return t.Copy(this.m_v1.w); + case 2: + return t.Set(this.m_v1.a * this.m_v1.w.x + this.m_v2.a * this.m_v2.w.x, this.m_v1.a * this.m_v1.w.y + this.m_v2.a * this.m_v2.w.y); + case 3: + default: + return t.SetZero() + } + } + , + t.prototype.GetWitnessPoints = function(t, e) { + switch (this.m_count) { + case 0: + break; + case 1: + t.Copy(this.m_v1.wA), + e.Copy(this.m_v1.wB); + break; + case 2: + t.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x, + t.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y, + e.x = this.m_v1.a * this.m_v1.wB.x + this.m_v2.a * this.m_v2.wB.x, + e.y = this.m_v1.a * this.m_v1.wB.y + this.m_v2.a * this.m_v2.wB.y; + break; + case 3: + e.x = t.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x + this.m_v3.a * this.m_v3.wA.x, + e.y = t.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y + this.m_v3.a * this.m_v3.wA.y + } + } + , + t.prototype.GetMetric = function() { + switch (this.m_count) { + case 0: + case 1: + return 0; + case 2: + return I.DistanceVV(this.m_v1.w, this.m_v2.w); + case 3: + return I.CrossVV(I.SubVV(this.m_v2.w, this.m_v1.w, I.s_t0), I.SubVV(this.m_v3.w, this.m_v1.w, I.s_t1)); + default: + return 0 + } + } + , + t.prototype.Solve2 = function() { + var e = this.m_v1.w + , i = this.m_v2.w + , n = I.SubVV(i, e, t.s_e12) + , r = -I.DotVV(e, n); + if (r <= 0) + return this.m_v1.a = 1, + void (this.m_count = 1); + var s = I.DotVV(i, n); + if (s <= 0) + return this.m_v2.a = 1, + this.m_count = 1, + void this.m_v1.Copy(this.m_v2); + var a = 1 / (s + r); + this.m_v1.a = s * a, + this.m_v2.a = r * a, + this.m_count = 2 + } + , + t.prototype.Solve3 = function() { + var e = this.m_v1.w + , i = this.m_v2.w + , n = this.m_v3.w + , r = I.SubVV(i, e, t.s_e12) + , s = I.DotVV(e, r) + , a = I.DotVV(i, r) + , o = -s + , l = I.SubVV(n, e, t.s_e13) + , h = I.DotVV(e, l) + , c = I.DotVV(n, l) + , u = -h + , _ = I.SubVV(n, i, t.s_e23) + , f = I.DotVV(i, _) + , d = I.DotVV(n, _) + , p = -f + , m = I.CrossVV(r, l) + , y = m * I.CrossVV(i, n) + , v = m * I.CrossVV(n, e) + , g = m * I.CrossVV(e, i); + if (o <= 0 && u <= 0) + return this.m_v1.a = 1, + void (this.m_count = 1); + if (a > 0 && o > 0 && g <= 0) { + var A = 1 / (a + o); + return this.m_v1.a = a * A, + this.m_v2.a = o * A, + void (this.m_count = 2) + } + if (c > 0 && u > 0 && v <= 0) { + var x = 1 / (c + u); + return this.m_v1.a = c * x, + this.m_v3.a = u * x, + this.m_count = 2, + void this.m_v2.Copy(this.m_v3) + } + if (a <= 0 && p <= 0) + return this.m_v2.a = 1, + this.m_count = 1, + void this.m_v1.Copy(this.m_v2); + if (c <= 0 && d <= 0) + return this.m_v3.a = 1, + this.m_count = 1, + void this.m_v1.Copy(this.m_v3); + if (d > 0 && p > 0 && y <= 0) { + var b = 1 / (d + p); + return this.m_v2.a = d * b, + this.m_v3.a = p * b, + this.m_count = 2, + void this.m_v1.Copy(this.m_v3) + } + var C = 1 / (y + v + g); + this.m_v1.a = y * C, + this.m_v2.a = v * C, + this.m_v3.a = g * C, + this.m_count = 3 + } + , + t.s_e12 = new I, + t.s_e13 = new I, + t.s_e23 = new I, + t + } + )() + , Z = new J + , K = [0, 0, 0] + , Q = [0, 0, 0] + , $ = new I + , tt = new I + , et = new I + , it = new I + , nt = new I; + function rt(e, i, s) { + ++t.b2_gjkCalls; + var a = s.proxyA + , o = s.proxyB + , l = s.transformA + , h = s.transformB + , c = Z; + c.ReadCache(i, a, l, o, h); + for (var u = c.m_vertices, _ = K, f = Q, d = 0, p = 0; p < 20; ) { + d = c.m_count; + for (var m = 0; m < d; ++m) + _[m] = u[m].indexA, + f[m] = u[m].indexB; + switch (c.m_count) { + case 1: + break; + case 2: + c.Solve2(); + break; + case 3: + c.Solve3() + } + if (3 === c.m_count) + break; + var y = c.GetSearchDirection(tt); + if (y.LengthSquared() < r) + break; + var g = u[c.m_count]; + g.indexA = a.GetSupport(F.MulTRV(l.q, I.NegV(y, I.s_t0), it)), + V.MulXV(l, a.GetVertex(g.indexA), g.wA), + g.indexB = o.GetSupport(F.MulTRV(h.q, y, nt)), + V.MulXV(h, o.GetVertex(g.indexB), g.wB), + I.SubVV(g.wB, g.wA, g.w), + ++p, + ++t.b2_gjkIters; + var A = !1; + for (m = 0; m < d; ++m) + if (g.indexA === _[m] && g.indexB === f[m]) { + A = !0; + break + } + if (A) + break; + ++c.m_count + } + if (t.b2_gjkMaxIters = v(t.b2_gjkMaxIters, p), + c.GetWitnessPoints(e.pointA, e.pointB), + e.distance = I.DistanceVV(e.pointA, e.pointB), + e.iterations = p, + c.WriteCache(i), + s.useRadii) { + var x = a.m_radius + , b = o.m_radius; + if (e.distance > x + b && e.distance > n) { + e.distance -= x + b; + var C = I.SubVV(e.pointB, e.pointA, et); + C.Normalize(), + e.pointA.SelfMulAdd(x, C), + e.pointB.SelfMulSub(b, C) + } else { + var T = I.MidVV(e.pointA, e.pointB, $); + e.pointA.Copy(T), + e.pointB.Copy(T), + e.distance = 0 + } + } + } + var st, at = new I, ot = new J, lt = new I, ht = new I, ct = new I, ut = new I, _t = new I, ft = new I; + (st = t.b2ContactFeatureType || (t.b2ContactFeatureType = {}))[st.e_vertex = 0] = "e_vertex", + st[st.e_face = 1] = "e_face"; + var dt, pt = (function() { + function t() { + this._key = 0, + this._key_invalid = !1, + this._indexA = 0, + this._indexB = 0, + this._typeA = 0, + this._typeB = 0 + } + return Object.defineProperty(t.prototype, "key", { + get: function() { + return this._key_invalid && (this._key_invalid = !1, + this._key = this._indexA | this._indexB << 8 | this._typeA << 16 | this._typeB << 24), + this._key + }, + set: function(t) { + this._key = t, + this._key_invalid = !1, + this._indexA = 255 & this._key, + this._indexB = this._key >> 8 & 255, + this._typeA = this._key >> 16 & 255, + this._typeB = this._key >> 24 & 255 + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(t.prototype, "indexA", { + get: function() { + return this._indexA + }, + set: function(t) { + this._indexA = t, + this._key_invalid = !0 + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(t.prototype, "indexB", { + get: function() { + return this._indexB + }, + set: function(t) { + this._indexB = t, + this._key_invalid = !0 + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(t.prototype, "typeA", { + get: function() { + return this._typeA + }, + set: function(t) { + this._typeA = t, + this._key_invalid = !0 + }, + enumerable: !0, + configurable: !0 + }), + Object.defineProperty(t.prototype, "typeB", { + get: function() { + return this._typeB + }, + set: function(t) { + this._typeB = t, + this._key_invalid = !0 + }, + enumerable: !0, + configurable: !0 + }), + t + } + )(), mt = (function() { + function t() { + this.cf = new pt + } + return t.prototype.Copy = function(t) { + return this.key = t.key, + this + } + , + t.prototype.Clone = function() { + return (new t).Copy(this) + } + , + Object.defineProperty(t.prototype, "key", { + get: function() { + return this.cf.key + }, + set: function(t) { + this.cf.key = t + }, + enumerable: !0, + configurable: !0 + }), + t + } + )(), yt = (function() { + function t() { + this.localPoint = new I, + this.normalImpulse = 0, + this.tangentImpulse = 0, + this.id = new mt + } + return t.MakeArray = function(e) { + return d(e, (function() { + return new t + } + )) + } + , + t.prototype.Reset = function() { + this.localPoint.SetZero(), + this.normalImpulse = 0, + this.tangentImpulse = 0, + this.id.key = 0 + } + , + t.prototype.Copy = function(t) { + return this.localPoint.Copy(t.localPoint), + this.normalImpulse = t.normalImpulse, + this.tangentImpulse = t.tangentImpulse, + this.id.Copy(t.id), + this + } + , + t + } + )(); + (dt = t.b2ManifoldType || (t.b2ManifoldType = {}))[dt.e_unknown = -1] = "e_unknown", + dt[dt.e_circles = 0] = "e_circles", + dt[dt.e_faceA = 1] = "e_faceA", + dt[dt.e_faceB = 2] = "e_faceB"; + var vt, gt = (function() { + function e() { + this.points = yt.MakeArray(a), + this.localNormal = new I, + this.localPoint = new I, + this.type = t.b2ManifoldType.e_unknown, + this.pointCount = 0 + } + return e.prototype.Reset = function() { + for (var e = 0; e < a; ++e) + this.points[e].Reset(); + this.localNormal.SetZero(), + this.localPoint.SetZero(), + this.type = t.b2ManifoldType.e_unknown, + this.pointCount = 0 + } + , + e.prototype.Copy = function(t) { + this.pointCount = t.pointCount; + for (var e = 0; e < a; ++e) + this.points[e].Copy(t.points[e]); + return this.localNormal.Copy(t.localNormal), + this.localPoint.Copy(t.localPoint), + this.type = t.type, + this + } + , + e.prototype.Clone = function() { + return (new e).Copy(this) + } + , + e + } + )(), At = (function() { + function e() { + this.normal = new I, + this.points = I.MakeArray(a), + this.separations = p(a) + } + return e.prototype.Initialize = function(i, n, s, a, o) { + if (0 !== i.pointCount) + switch (i.type) { + case t.b2ManifoldType.e_circles: + this.normal.Set(1, 0); + var l = V.MulXV(n, i.localPoint, e.Initialize_s_pointA) + , h = V.MulXV(a, i.points[0].localPoint, e.Initialize_s_pointB); + I.DistanceSquaredVV(l, h) > r && I.SubVV(h, l, this.normal).SelfNormalize(); + var c = I.AddVMulSV(l, s, this.normal, e.Initialize_s_cA) + , u = I.SubVMulSV(h, o, this.normal, e.Initialize_s_cB); + I.MidVV(c, u, this.points[0]), + this.separations[0] = I.DotVV(I.SubVV(u, c, I.s_t0), this.normal); + break; + case t.b2ManifoldType.e_faceA: + F.MulRV(n.q, i.localNormal, this.normal); + for (var _ = V.MulXV(n, i.localPoint, e.Initialize_s_planePoint), f = 0; f < i.pointCount; ++f) { + var d = V.MulXV(a, i.points[f].localPoint, e.Initialize_s_clipPoint) + , p = s - I.DotVV(I.SubVV(d, _, I.s_t0), this.normal); + c = I.AddVMulSV(d, p, this.normal, e.Initialize_s_cA), + u = I.SubVMulSV(d, o, this.normal, e.Initialize_s_cB), + I.MidVV(c, u, this.points[f]), + this.separations[f] = I.DotVV(I.SubVV(u, c, I.s_t0), this.normal) + } + break; + case t.b2ManifoldType.e_faceB: + for (F.MulRV(a.q, i.localNormal, this.normal), + _ = V.MulXV(a, i.localPoint, e.Initialize_s_planePoint), + f = 0; f < i.pointCount; ++f) + d = V.MulXV(n, i.points[f].localPoint, e.Initialize_s_clipPoint), + p = o - I.DotVV(I.SubVV(d, _, I.s_t0), this.normal), + u = I.AddVMulSV(d, p, this.normal, e.Initialize_s_cB), + c = I.SubVMulSV(d, s, this.normal, e.Initialize_s_cA), + I.MidVV(c, u, this.points[f]), + this.separations[f] = I.DotVV(I.SubVV(c, u, I.s_t0), this.normal); + this.normal.SelfNeg() + } + } + , + e.Initialize_s_pointA = new I, + e.Initialize_s_pointB = new I, + e.Initialize_s_cA = new I, + e.Initialize_s_cB = new I, + e.Initialize_s_planePoint = new I, + e.Initialize_s_clipPoint = new I, + e + } + )(); + (vt = t.b2PointState || (t.b2PointState = {}))[vt.b2_nullState = 0] = "b2_nullState", + vt[vt.b2_addState = 1] = "b2_addState", + vt[vt.b2_persistState = 2] = "b2_persistState", + vt[vt.b2_removeState = 3] = "b2_removeState"; + var xt = (function() { + function t() { + this.v = new I, + this.id = new mt + } + return t.MakeArray = function(e) { + return d(e, (function() { + return new t + } + )) + } + , + t.prototype.Copy = function(t) { + return this.v.Copy(t.v), + this.id.Copy(t.id), + this + } + , + t + } + )() + , bt = (function() { + function t() { + this.p1 = new I, + this.p2 = new I, + this.maxFraction = 1 + } + return t.prototype.Copy = function(t) { + return this.p1.Copy(t.p1), + this.p2.Copy(t.p2), + this.maxFraction = t.maxFraction, + this + } + , + t + } + )() + , Ct = (function() { + function t() { + this.normal = new I, + this.fraction = 0 + } + return t.prototype.Copy = function(t) { + return this.normal.Copy(t.normal), + this.fraction = t.fraction, + this + } + , + t + } + )() + , Tt = (function() { + function t() { + this.lowerBound = new I, + this.upperBound = new I, + this.m_cache_center = new I, + this.m_cache_extent = new I + } + return t.prototype.Copy = function(t) { + return this.lowerBound.Copy(t.lowerBound), + this.upperBound.Copy(t.upperBound), + this + } + , + t.prototype.IsValid = function() { + var t = this.upperBound.x - this.lowerBound.x + , e = this.upperBound.y - this.lowerBound.y + , i = t >= 0 && e >= 0; + return i && this.lowerBound.IsValid() && this.upperBound.IsValid() + } + , + t.prototype.GetCenter = function() { + return I.MidVV(this.lowerBound, this.upperBound, this.m_cache_center) + } + , + t.prototype.GetExtents = function() { + return I.ExtVV(this.lowerBound, this.upperBound, this.m_cache_extent) + } + , + t.prototype.GetPerimeter = function() { + return 2 * (this.upperBound.x - this.lowerBound.x + (this.upperBound.y - this.lowerBound.y)) + } + , + t.prototype.Combine1 = function(t) { + return this.lowerBound.x = y(this.lowerBound.x, t.lowerBound.x), + this.lowerBound.y = y(this.lowerBound.y, t.lowerBound.y), + this.upperBound.x = v(this.upperBound.x, t.upperBound.x), + this.upperBound.y = v(this.upperBound.y, t.upperBound.y), + this + } + , + t.prototype.Combine2 = function(t, e) { + return this.lowerBound.x = y(t.lowerBound.x, e.lowerBound.x), + this.lowerBound.y = y(t.lowerBound.y, e.lowerBound.y), + this.upperBound.x = v(t.upperBound.x, e.upperBound.x), + this.upperBound.y = v(t.upperBound.y, e.upperBound.y), + this + } + , + t.Combine = function(t, e, i) { + return i.Combine2(t, e), + i + } + , + t.prototype.Contains = function(t) { + var e = !0; + return (e = (e = (e = e && this.lowerBound.x <= t.lowerBound.x) && this.lowerBound.y <= t.lowerBound.y) && t.upperBound.x <= this.upperBound.x) && t.upperBound.y <= this.upperBound.y + } + , + t.prototype.RayCast = function(t, e) { + var r, s, a = -i, o = i, l = e.p1.x, h = e.p1.y, c = e.p2.x - e.p1.x, u = e.p2.y - e.p1.y, _ = m(c), f = m(u), d = t.normal; + if (_ < n) { + if (l < this.lowerBound.x || this.upperBound.x < l) + return !1 + } else { + var p = 1 / c + , v = -1; + if ((r = (this.lowerBound.x - l) * p) > (s = (this.upperBound.x - l) * p)) { + var g = r; + r = s, + s = g, + v = 1 + } + if (r > a && (d.x = v, + d.y = 0, + a = r), + a > (o = y(o, s))) + return !1 + } + if (f < n) { + if (h < this.lowerBound.y || this.upperBound.y < h) + return !1 + } else if (p = 1 / u, + v = -1, + (r = (this.lowerBound.y - h) * p) > (s = (this.upperBound.y - h) * p) && (g = r, + r = s, + s = g, + v = 1), + r > a && (d.x = 0, + d.y = v, + a = r), + a > (o = y(o, s))) + return !1; + return !(a < 0 || e.maxFraction < a || (t.fraction = a, + 0)) + } + , + t.prototype.TestContain = function(t) { + return !(t.x < this.lowerBound.x || this.upperBound.x < t.x || t.y < this.lowerBound.y || this.upperBound.y < t.y) + } + , + t.prototype.TestOverlap = function(t) { + var e = t.lowerBound.x - this.upperBound.x + , i = t.lowerBound.y - this.upperBound.y + , n = this.lowerBound.x - t.upperBound.x + , r = this.lowerBound.y - t.upperBound.y; + return !(e > 0 || i > 0 || n > 0 || r > 0) + } + , + t + } + )(); + function St(t, e) { + var i = e.lowerBound.x - t.upperBound.x + , n = e.lowerBound.y - t.upperBound.y + , r = t.lowerBound.x - e.upperBound.x + , s = t.lowerBound.y - e.upperBound.y; + return !(i > 0 || n > 0 || r > 0 || s > 0) + } + function wt(e, i, n, r, s) { + var a = 0 + , o = i[0] + , l = i[1] + , h = I.DotVV(n, o.v) - r + , c = I.DotVV(n, l.v) - r; + if (h <= 0 && e[a++].Copy(o), + c <= 0 && e[a++].Copy(l), + h * c < 0) { + var u = h / (h - c) + , _ = e[a].v; + _.x = o.v.x + u * (l.v.x - o.v.x), + _.y = o.v.y + u * (l.v.y - o.v.y); + var f = e[a].id; + f.cf.indexA = s, + f.cf.indexB = o.id.cf.indexB, + f.cf.typeA = t.b2ContactFeatureType.e_vertex, + f.cf.typeB = t.b2ContactFeatureType.e_face, + ++a + } + return a + } + var Et = new X + , Mt = new j + , Dt = new Y; + function Bt(t, e, i, r, s, a) { + var o = Et.Reset(); + o.proxyA.SetShape(t, e), + o.proxyB.SetShape(i, r), + o.transformA.Copy(s), + o.transformB.Copy(a), + o.useRadii = !0; + var l = Mt.Reset(); + l.count = 0; + var h = Dt.Reset(); + return rt(h, l, o), + h.distance < 10 * n + } + function It(t) { + if (null === t) + throw new Error; + return t + } + var Pt = (function() { + function t(t) { + void 0 === t && (t = 0), + this.m_id = 0, + this.aabb = new Tt, + this.parent = null, + this.child1 = null, + this.child2 = null, + this.height = 0, + this.m_id = t + } + return t.prototype.IsLeaf = function() { + return null === this.child1 + } + , + t + } + )() + , Rt = (function() { + function t() { + this.m_root = null, + this.m_freeList = null, + this.m_path = 0, + this.m_insertionCount = 0, + this.m_stack = new H(256) + } + return t.prototype.Query = function(t, e) { + if (null !== this.m_root) { + var i = this.m_stack.Reset(); + for (i.Push(this.m_root); i.GetCount() > 0; ) { + var n = i.Pop(); + if (n.aabb.TestOverlap(t)) + if (n.IsLeaf()) { + if (!e(n)) + return + } else + i.Push(It(n.child1)), + i.Push(It(n.child2)) + } + } + } + , + t.prototype.QueryPoint = function(t, e) { + if (null !== this.m_root) { + var i = this.m_stack.Reset(); + for (i.Push(this.m_root); i.GetCount() > 0; ) { + var n = i.Pop(); + if (n.aabb.TestContain(t)) + if (n.IsLeaf()) { + if (!e(n)) + return + } else + i.Push(It(n.child1)), + i.Push(It(n.child2)) + } + } + } + , + t.prototype.RayCast = function(e, i) { + if (null !== this.m_root) { + var n = e.p1 + , r = e.p2 + , s = I.SubVV(r, n, t.s_r); + s.Normalize(); + var a = I.CrossOneV(s, t.s_v) + , o = I.AbsV(a, t.s_abs_v) + , l = e.maxFraction + , h = t.s_segmentAABB + , c = n.x + l * (r.x - n.x) + , u = n.y + l * (r.y - n.y); + h.lowerBound.x = y(n.x, c), + h.lowerBound.y = y(n.y, u), + h.upperBound.x = v(n.x, c), + h.upperBound.y = v(n.y, u); + var _ = this.m_stack.Reset(); + for (_.Push(this.m_root); _.GetCount() > 0; ) { + var f = _.Pop(); + if (St(f.aabb, h)) { + var d = f.aabb.GetCenter() + , p = f.aabb.GetExtents(); + if (!(m(I.DotVV(a, I.SubVV(n, d, I.s_t0))) - I.DotVV(o, p) > 0)) + if (f.IsLeaf()) { + var g = t.s_subInput; + g.p1.Copy(e.p1), + g.p2.Copy(e.p2), + g.maxFraction = l; + var A = i(g, f); + if (0 === A) + return; + A > 0 && (l = A, + c = n.x + l * (r.x - n.x), + u = n.y + l * (r.y - n.y), + h.lowerBound.x = y(n.x, c), + h.lowerBound.y = y(n.y, u), + h.upperBound.x = v(n.x, c), + h.upperBound.y = v(n.y, u)) + } else + _.Push(It(f.child1)), + _.Push(It(f.child2)) + } + } + } + } + , + t.prototype.AllocateNode = function() { + if (this.m_freeList) { + var e = this.m_freeList; + return this.m_freeList = e.parent, + e.parent = null, + e.child1 = null, + e.child2 = null, + e.height = 0, + delete e.userData, + e + } + return new Pt(t.s_node_id++) + } + , + t.prototype.FreeNode = function(t) { + t.parent = this.m_freeList, + t.child1 = null, + t.child2 = null, + t.height = -1, + delete t.userData, + this.m_freeList = t + } + , + t.prototype.CreateProxy = function(t, e) { + var i = this.AllocateNode(); + return i.aabb.lowerBound.x = t.lowerBound.x - .1, + i.aabb.lowerBound.y = t.lowerBound.y - .1, + i.aabb.upperBound.x = t.upperBound.x + .1, + i.aabb.upperBound.y = t.upperBound.y + .1, + i.userData = e, + i.height = 0, + this.InsertLeaf(i), + i + } + , + t.prototype.DestroyProxy = function(t) { + this.RemoveLeaf(t), + this.FreeNode(t) + } + , + t.prototype.MoveProxy = function(t, e, i) { + if (t.aabb.Contains(e)) + return !1; + this.RemoveLeaf(t); + var n = .1 + 2 * (i.x > 0 ? i.x : -i.x) + , r = .1 + 2 * (i.y > 0 ? i.y : -i.y); + return t.aabb.lowerBound.x = e.lowerBound.x - n, + t.aabb.lowerBound.y = e.lowerBound.y - r, + t.aabb.upperBound.x = e.upperBound.x + n, + t.aabb.upperBound.y = e.upperBound.y + r, + this.InsertLeaf(t), + !0 + } + , + t.prototype.InsertLeaf = function(e) { + if (++this.m_insertionCount, + null === this.m_root) + return this.m_root = e, + void (this.m_root.parent = null); + for (var i = e.aabb, n = this.m_root; !n.IsLeaf(); ) { + var r = It(n.child1) + , s = It(n.child2) + , a = n.aabb.GetPerimeter() + , o = t.s_combinedAABB; + o.Combine2(n.aabb, i); + var l = o.GetPerimeter() + , h = 2 * l + , c = 2 * (l - a) + , u = void 0 + , _ = t.s_aabb + , f = void 0; + r.IsLeaf() ? (_.Combine2(i, r.aabb), + u = _.GetPerimeter() + c) : (_.Combine2(i, r.aabb), + f = r.aabb.GetPerimeter(), + u = _.GetPerimeter() - f + c); + var d = void 0; + if (s.IsLeaf() ? (_.Combine2(i, s.aabb), + d = _.GetPerimeter() + c) : (_.Combine2(i, s.aabb), + f = s.aabb.GetPerimeter(), + d = _.GetPerimeter() - f + c), + h < u && h < d) + break; + n = u < d ? r : s + } + var p = n + , m = p.parent + , y = this.AllocateNode(); + y.parent = m, + delete y.userData, + y.aabb.Combine2(i, p.aabb), + y.height = p.height + 1, + m ? (m.child1 === p ? m.child1 = y : m.child2 = y, + y.child1 = p, + y.child2 = e, + p.parent = y, + e.parent = y) : (y.child1 = p, + y.child2 = e, + p.parent = y, + e.parent = y, + this.m_root = y); + for (var g = e.parent; null !== g; ) + r = It((g = this.Balance(g)).child1), + s = It(g.child2), + g.height = 1 + v(r.height, s.height), + g.aabb.Combine2(r.aabb, s.aabb), + g = g.parent + } + , + t.prototype.RemoveLeaf = function(t) { + if (t !== this.m_root) { + var e, i = It(t.parent), n = i && i.parent; + if (e = i.child1 === t ? It(i.child2) : It(i.child1), + n) { + n.child1 === i ? n.child1 = e : n.child2 = e, + e.parent = n, + this.FreeNode(i); + for (var r = n; r; ) { + var s = It((r = this.Balance(r)).child1) + , a = It(r.child2); + r.aabb.Combine2(s.aabb, a.aabb), + r.height = 1 + v(s.height, a.height), + r = r.parent + } + } else + this.m_root = e, + e.parent = null, + this.FreeNode(i) + } else + this.m_root = null + } + , + t.prototype.Balance = function(t) { + if (t.IsLeaf() || t.height < 2) + return t; + var e = It(t.child1) + , i = It(t.child2) + , n = i.height - e.height; + if (n > 1) { + var r = It(i.child1) + , s = It(i.child2); + return i.child1 = t, + i.parent = t.parent, + t.parent = i, + null !== i.parent ? i.parent.child1 === t ? i.parent.child1 = i : i.parent.child2 = i : this.m_root = i, + r.height > s.height ? (i.child2 = r, + t.child2 = s, + s.parent = t, + t.aabb.Combine2(e.aabb, s.aabb), + i.aabb.Combine2(t.aabb, r.aabb), + t.height = 1 + v(e.height, s.height), + i.height = 1 + v(t.height, r.height)) : (i.child2 = s, + t.child2 = r, + r.parent = t, + t.aabb.Combine2(e.aabb, r.aabb), + i.aabb.Combine2(t.aabb, s.aabb), + t.height = 1 + v(e.height, r.height), + i.height = 1 + v(t.height, s.height)), + i + } + if (n < -1) { + var a = It(e.child1) + , o = It(e.child2); + return e.child1 = t, + e.parent = t.parent, + t.parent = e, + null !== e.parent ? e.parent.child1 === t ? e.parent.child1 = e : e.parent.child2 = e : this.m_root = e, + a.height > o.height ? (e.child2 = a, + t.child1 = o, + o.parent = t, + t.aabb.Combine2(i.aabb, o.aabb), + e.aabb.Combine2(t.aabb, a.aabb), + t.height = 1 + v(i.height, o.height), + e.height = 1 + v(t.height, a.height)) : (e.child2 = o, + t.child1 = a, + a.parent = t, + t.aabb.Combine2(i.aabb, a.aabb), + e.aabb.Combine2(t.aabb, o.aabb), + t.height = 1 + v(i.height, a.height), + e.height = 1 + v(t.height, o.height)), + e + } + return t + } + , + t.prototype.GetHeight = function() { + return null === this.m_root ? 0 : this.m_root.height + } + , + t.GetAreaNode = function(e) { + if (null === e) + return 0; + if (e.IsLeaf()) + return 0; + var i = e.aabb.GetPerimeter(); + return (i += t.GetAreaNode(e.child1)) + t.GetAreaNode(e.child2) + } + , + t.prototype.GetAreaRatio = function() { + if (null === this.m_root) + return 0; + var e = this.m_root.aabb.GetPerimeter(); + return t.GetAreaNode(this.m_root) / e + } + , + t.prototype.ComputeHeightNode = function(t) { + if (!t || t.IsLeaf()) + return 0; + var e = this.ComputeHeightNode(t.child1) + , i = this.ComputeHeightNode(t.child2); + return 1 + v(e, i) + } + , + t.prototype.ComputeHeight = function() { + return this.ComputeHeightNode(this.m_root) + } + , + t.prototype.ValidateStructure = function(t) { + if (null !== t) { + this.m_root; + var e = t; + if (!e.IsLeaf()) { + var i = It(e.child1) + , n = It(e.child2); + this.ValidateStructure(i), + this.ValidateStructure(n) + } + } + } + , + t.prototype.ValidateMetrics = function(e) { + if (null !== e) { + var i = e; + if (!i.IsLeaf()) { + var n = It(i.child1) + , r = It(i.child2); + t.s_aabb.Combine2(n.aabb, r.aabb), + this.ValidateMetrics(n), + this.ValidateMetrics(r) + } + } + } + , + t.prototype.Validate = function() {} + , + t.GetMaxBalanceNode = function(t, e) { + if (null === t) + return e; + if (t.height <= 1) + return e; + var i = It(t.child1) + , n = It(t.child2) + , r = m(n.height - i.height); + return v(e, r) + } + , + t.prototype.GetMaxBalance = function() { + return t.GetMaxBalanceNode(this.m_root, 0) + } + , + t.prototype.RebuildBottomUp = function() { + this.Validate() + } + , + t.ShiftOriginNode = function(e, i) { + if (null !== e && !(e.height <= 1)) { + var n = e.child1 + , r = e.child2; + t.ShiftOriginNode(n, i), + t.ShiftOriginNode(r, i), + e.aabb.lowerBound.SelfSub(i), + e.aabb.upperBound.SelfSub(i) + } + } + , + t.prototype.ShiftOrigin = function(e) { + t.ShiftOriginNode(this.m_root, e) + } + , + t.s_r = new I, + t.s_v = new I, + t.s_abs_v = new I, + t.s_segmentAABB = new Tt, + t.s_subInput = new bt, + t.s_combinedAABB = new Tt, + t.s_aabb = new Tt, + t.s_node_id = 0, + t + } + )() + , Ot = function(t, e) { + this.proxyA = t, + this.proxyB = e + } + , Lt = (function() { + function t() { + this.m_tree = new Rt, + this.m_proxyCount = 0, + this.m_moveCount = 0, + this.m_moveBuffer = [], + this.m_pairCount = 0, + this.m_pairBuffer = [] + } + return t.prototype.CreateProxy = function(t, e) { + var i = this.m_tree.CreateProxy(t, e); + return ++this.m_proxyCount, + this.BufferMove(i), + i + } + , + t.prototype.DestroyProxy = function(t) { + this.UnBufferMove(t), + --this.m_proxyCount, + this.m_tree.DestroyProxy(t) + } + , + t.prototype.MoveProxy = function(t, e, i) { + this.m_tree.MoveProxy(t, e, i) && this.BufferMove(t) + } + , + t.prototype.TouchProxy = function(t) { + this.BufferMove(t) + } + , + t.prototype.GetProxyCount = function() { + return this.m_proxyCount + } + , + t.prototype.UpdatePairs = function(t) { + var e = this; + this.m_pairCount = 0; + for (var i = function(t) { + var i = n.m_moveBuffer[t]; + if (null === i) + return "continue"; + var r = i.aabb; + n.m_tree.Query(r, (function(t) { + if (t.m_id === i.m_id) + return !0; + var n, r; + if (t.m_id < i.m_id ? (n = t, + r = i) : (n = i, + r = t), + e.m_pairCount === e.m_pairBuffer.length) + e.m_pairBuffer[e.m_pairCount] = new Ot(n,r); + else { + var s = e.m_pairBuffer[e.m_pairCount]; + s.proxyA = n, + s.proxyB = r + } + return ++e.m_pairCount, + !0 + } + )) + }, n = this, r = 0; r < this.m_moveCount; ++r) + i(r); + this.m_moveCount = 0, + this.m_pairBuffer.length = this.m_pairCount, + this.m_pairBuffer.sort(Ft); + for (var s = 0; s < this.m_pairCount; ) { + var a = this.m_pairBuffer[s] + , o = a.proxyA.userData + , l = a.proxyB.userData; + for (o && l && t(o, l), + ++s; s < this.m_pairCount; ) { + var h = this.m_pairBuffer[s]; + if (h.proxyA.m_id !== a.proxyA.m_id || h.proxyB.m_id !== a.proxyB.m_id) + break; + ++s + } + } + } + , + t.prototype.Query = function(t, e) { + this.m_tree.Query(t, e) + } + , + t.prototype.QueryPoint = function(t, e) { + this.m_tree.QueryPoint(t, e) + } + , + t.prototype.RayCast = function(t, e) { + this.m_tree.RayCast(t, e) + } + , + t.prototype.GetTreeHeight = function() { + return this.m_tree.GetHeight() + } + , + t.prototype.GetTreeBalance = function() { + return this.m_tree.GetMaxBalance() + } + , + t.prototype.GetTreeQuality = function() { + return this.m_tree.GetAreaRatio() + } + , + t.prototype.ShiftOrigin = function(t) { + this.m_tree.ShiftOrigin(t) + } + , + t.prototype.BufferMove = function(t) { + this.m_moveBuffer[this.m_moveCount] = t, + ++this.m_moveCount + } + , + t.prototype.UnBufferMove = function(t) { + var e = this.m_moveBuffer.indexOf(t); + this.m_moveBuffer[e] = null + } + , + t + } + )(); + function Ft(t, e) { + return t.proxyA.m_id === e.proxyA.m_id ? t.proxyB.m_id - e.proxyB.m_id : t.proxyA.m_id - e.proxyA.m_id + } + t.b2_toiTime = 0, + t.b2_toiMaxTime = 0, + t.b2_toiCalls = 0, + t.b2_toiIters = 0, + t.b2_toiMaxIters = 0, + t.b2_toiRootIters = 0, + t.b2_toiMaxRootIters = 0; + var Vt, Nt = new V, kt = new V, Gt = new I, Ut = new I, zt = new I, Ht = new I, Wt = new I, jt = function() { + this.proxyA = new W, + this.proxyB = new W, + this.sweepA = new N, + this.sweepB = new N, + this.tMax = 0 + }; + (Vt = t.b2TOIOutputState || (t.b2TOIOutputState = {}))[Vt.e_unknown = 0] = "e_unknown", + Vt[Vt.e_failed = 1] = "e_failed", + Vt[Vt.e_overlapped = 2] = "e_overlapped", + Vt[Vt.e_touching = 3] = "e_touching", + Vt[Vt.e_separated = 4] = "e_separated"; + var Xt, Yt = function() { + this.state = t.b2TOIOutputState.e_unknown, + this.t = 0 + }; + (Xt = t.b2SeparationFunctionType || (t.b2SeparationFunctionType = {}))[Xt.e_unknown = -1] = "e_unknown", + Xt[Xt.e_points = 0] = "e_points", + Xt[Xt.e_faceA = 1] = "e_faceA", + Xt[Xt.e_faceB = 2] = "e_faceB"; + var qt = (function() { + function e() { + this.m_sweepA = new N, + this.m_sweepB = new N, + this.m_type = t.b2SeparationFunctionType.e_unknown, + this.m_localPoint = new I, + this.m_axis = new I + } + return e.prototype.Initialize = function(e, i, n, r, s, a) { + this.m_proxyA = i, + this.m_proxyB = r; + var o = e.count; + this.m_sweepA.Copy(n), + this.m_sweepB.Copy(s); + var l = Nt + , h = kt; + if (this.m_sweepA.GetTransform(l, a), + this.m_sweepB.GetTransform(h, a), + 1 === o) { + this.m_type = t.b2SeparationFunctionType.e_points; + var c = this.m_proxyA.GetVertex(e.indexA[0]) + , u = this.m_proxyB.GetVertex(e.indexB[0]) + , _ = V.MulXV(l, c, Gt) + , f = V.MulXV(h, u, Ut); + I.SubVV(f, _, this.m_axis); + var d = this.m_axis.Normalize(); + return this.m_localPoint.SetZero(), + d + } + if (e.indexA[0] === e.indexA[1]) { + this.m_type = t.b2SeparationFunctionType.e_faceB; + var p = this.m_proxyB.GetVertex(e.indexB[0]) + , m = this.m_proxyB.GetVertex(e.indexB[1]); + I.CrossVOne(I.SubVV(m, p, I.s_t0), this.m_axis).SelfNormalize(); + var y = F.MulRV(h.q, this.m_axis, zt); + return I.MidVV(p, m, this.m_localPoint), + f = V.MulXV(h, this.m_localPoint, Ut), + c = this.m_proxyA.GetVertex(e.indexA[0]), + _ = V.MulXV(l, c, Gt), + (d = I.DotVV(I.SubVV(_, f, I.s_t0), y)) < 0 && (this.m_axis.SelfNeg(), + d = -d), + d + } + this.m_type = t.b2SeparationFunctionType.e_faceA; + var v = this.m_proxyA.GetVertex(e.indexA[0]) + , g = this.m_proxyA.GetVertex(e.indexA[1]); + return I.CrossVOne(I.SubVV(g, v, I.s_t0), this.m_axis).SelfNormalize(), + y = F.MulRV(l.q, this.m_axis, zt), + I.MidVV(v, g, this.m_localPoint), + _ = V.MulXV(l, this.m_localPoint, Gt), + u = this.m_proxyB.GetVertex(e.indexB[0]), + f = V.MulXV(h, u, Ut), + (d = I.DotVV(I.SubVV(f, _, I.s_t0), y)) < 0 && (this.m_axis.SelfNeg(), + d = -d), + d + } + , + e.prototype.FindMinSeparation = function(e, i, n) { + var r = Nt + , s = kt; + switch (this.m_sweepA.GetTransform(r, n), + this.m_sweepB.GetTransform(s, n), + this.m_type) { + case t.b2SeparationFunctionType.e_points: + var a = F.MulTRV(r.q, this.m_axis, Ht) + , o = F.MulTRV(s.q, I.NegV(this.m_axis, I.s_t0), Wt); + e[0] = this.m_proxyA.GetSupport(a), + i[0] = this.m_proxyB.GetSupport(o); + var l = this.m_proxyA.GetVertex(e[0]) + , h = this.m_proxyB.GetVertex(i[0]) + , c = V.MulXV(r, l, Gt) + , u = V.MulXV(s, h, Ut); + return I.DotVV(I.SubVV(u, c, I.s_t0), this.m_axis); + case t.b2SeparationFunctionType.e_faceA: + var _ = F.MulRV(r.q, this.m_axis, zt); + return c = V.MulXV(r, this.m_localPoint, Gt), + o = F.MulTRV(s.q, I.NegV(_, I.s_t0), Wt), + e[0] = -1, + i[0] = this.m_proxyB.GetSupport(o), + h = this.m_proxyB.GetVertex(i[0]), + u = V.MulXV(s, h, Ut), + I.DotVV(I.SubVV(u, c, I.s_t0), _); + case t.b2SeparationFunctionType.e_faceB: + return _ = F.MulRV(s.q, this.m_axis, zt), + u = V.MulXV(s, this.m_localPoint, Ut), + a = F.MulTRV(r.q, I.NegV(_, I.s_t0), Ht), + i[0] = -1, + e[0] = this.m_proxyA.GetSupport(a), + l = this.m_proxyA.GetVertex(e[0]), + c = V.MulXV(r, l, Gt), + I.DotVV(I.SubVV(c, u, I.s_t0), _); + default: + return e[0] = -1, + i[0] = -1, + 0 + } + } + , + e.prototype.Evaluate = function(e, i, n) { + var r = Nt + , s = kt; + switch (this.m_sweepA.GetTransform(r, n), + this.m_sweepB.GetTransform(s, n), + this.m_type) { + case t.b2SeparationFunctionType.e_points: + var a = this.m_proxyA.GetVertex(e) + , o = this.m_proxyB.GetVertex(i) + , l = V.MulXV(r, a, Gt) + , h = V.MulXV(s, o, Ut); + return I.DotVV(I.SubVV(h, l, I.s_t0), this.m_axis); + case t.b2SeparationFunctionType.e_faceA: + var c = F.MulRV(r.q, this.m_axis, zt); + return l = V.MulXV(r, this.m_localPoint, Gt), + o = this.m_proxyB.GetVertex(i), + h = V.MulXV(s, o, Ut), + I.DotVV(I.SubVV(h, l, I.s_t0), c); + case t.b2SeparationFunctionType.e_faceB: + return c = F.MulRV(s.q, this.m_axis, zt), + h = V.MulXV(s, this.m_localPoint, Ut), + a = this.m_proxyA.GetVertex(e), + l = V.MulXV(r, a, Gt), + I.DotVV(I.SubVV(l, h, I.s_t0), c); + default: + return 0 + } + } + , + e + } + )() + , Jt = new U + , Zt = new j + , Kt = new X + , Qt = new Y + , $t = new qt + , te = [0] + , ee = [0] + , ie = new N + , ne = new N; + function re(e, i) { + var n = Jt.Reset(); + ++t.b2_toiCalls, + e.state = t.b2TOIOutputState.e_unknown, + e.t = i.tMax; + var r = i.proxyA + , s = i.proxyB + , a = ie.Copy(i.sweepA) + , h = ne.Copy(i.sweepB); + a.Normalize(), + h.Normalize(); + var c = i.tMax + , u = r.m_radius + s.m_radius + , _ = v(l, u - 3 * l) + , f = .25 * l + , d = 0 + , p = 0 + , y = Zt; + y.count = 0; + var g = Kt; + for (g.proxyA.Copy(i.proxyA), + g.proxyB.Copy(i.proxyB), + g.useRadii = !1; ; ) { + var A = Nt + , x = kt; + a.GetTransform(A, d), + h.GetTransform(x, d), + g.transformA.Copy(A), + g.transformB.Copy(x); + var b = Qt; + if (rt(b, y, g), + b.distance <= 0) { + e.state = t.b2TOIOutputState.e_overlapped, + e.t = 0; + break + } + if (b.distance < _ + f) { + e.state = t.b2TOIOutputState.e_touching, + e.t = d; + break + } + var C = $t; + C.Initialize(y, r, a, s, h, d); + for (var T = !1, S = c, w = 0; ; ) { + var E = te + , M = ee + , D = C.FindMinSeparation(E, M, S); + if (D > _ + f) { + e.state = t.b2TOIOutputState.e_separated, + e.t = c, + T = !0; + break + } + if (D > _ - f) { + d = S; + break + } + var B = C.Evaluate(E[0], M[0], d); + if (B < _ - f) { + e.state = t.b2TOIOutputState.e_failed, + e.t = d, + T = !0; + break + } + if (B <= _ + f) { + e.state = t.b2TOIOutputState.e_touching, + e.t = d, + T = !0; + break + } + for (var I = 0, P = d, R = S; ; ) { + var O; + O = 1 & I ? P + (_ - B) * (R - P) / (D - B) : .5 * (P + R), + ++I, + ++t.b2_toiRootIters; + var L = C.Evaluate(E[0], M[0], O); + if (m(L - _) < f) { + S = O; + break + } + if (L > _ ? (P = O, + B = L) : (R = O, + D = L), + 50 === I) + break + } + if (t.b2_toiMaxRootIters = v(t.b2_toiMaxRootIters, I), + ++w === o) + break + } + if (++p, + ++t.b2_toiIters, + T) + break; + if (20 === p) { + e.state = t.b2TOIOutputState.e_failed, + e.t = d; + break + } + } + t.b2_toiMaxIters = v(t.b2_toiMaxIters, p); + var F = n.GetMilliseconds(); + t.b2_toiMaxTime = v(t.b2_toiMaxTime, F), + t.b2_toiTime += F + } + var se = new I + , ae = new I; + function oe(e, i, n, r, s) { + e.pointCount = 0; + var a = V.MulXV(n, i.m_p, se) + , o = V.MulXV(s, r.m_p, ae) + , l = I.DistanceSquaredVV(a, o) + , h = i.m_radius + r.m_radius; + l > h * h || (e.type = t.b2ManifoldType.e_circles, + e.localPoint.Copy(i.m_p), + e.localNormal.SetZero(), + e.pointCount = 1, + e.points[0].localPoint.Copy(r.m_p), + e.points[0].id.key = 0) + } + var le = new I + , he = new I + , ce = new I; + function ue(e, r, s, a, o) { + e.pointCount = 0; + for (var l = V.MulXV(o, a.m_p, le), h = V.MulTXV(s, l, he), c = 0, u = -i, _ = r.m_radius + a.m_radius, f = r.m_count, d = r.m_vertices, p = r.m_normals, m = 0; m < f; ++m) { + var y = I.DotVV(p[m], I.SubVV(h, d[m], I.s_t0)); + if (y > _) + return; + y > u && (u = y, + c = m) + } + var v = c + , g = (v + 1) % f + , A = d[v] + , x = d[g]; + if (u < n) + return e.pointCount = 1, + e.type = t.b2ManifoldType.e_faceA, + e.localNormal.Copy(p[c]), + I.MidVV(A, x, e.localPoint), + e.points[0].localPoint.Copy(a.m_p), + void (e.points[0].id.key = 0); + var b = I.DotVV(I.SubVV(h, A, I.s_t0), I.SubVV(x, A, I.s_t1)) + , C = I.DotVV(I.SubVV(h, x, I.s_t0), I.SubVV(A, x, I.s_t1)); + if (b <= 0) { + if (I.DistanceSquaredVV(h, A) > _ * _) + return; + e.pointCount = 1, + e.type = t.b2ManifoldType.e_faceA, + I.SubVV(h, A, e.localNormal).SelfNormalize(), + e.localPoint.Copy(A), + e.points[0].localPoint.Copy(a.m_p), + e.points[0].id.key = 0 + } else if (C <= 0) { + if (I.DistanceSquaredVV(h, x) > _ * _) + return; + e.pointCount = 1, + e.type = t.b2ManifoldType.e_faceA, + I.SubVV(h, x, e.localNormal).SelfNormalize(), + e.localPoint.Copy(x), + e.points[0].localPoint.Copy(a.m_p), + e.points[0].id.key = 0 + } else { + var T = I.MidVV(A, x, ce); + if (I.DotVV(I.SubVV(h, T, I.s_t1), p[v]) > _) + return; + e.pointCount = 1, + e.type = t.b2ManifoldType.e_faceA, + e.localNormal.Copy(p[v]).SelfNormalize(), + e.localPoint.Copy(T), + e.points[0].localPoint.Copy(a.m_p), + e.points[0].id.key = 0 + } + } + var _e = new I + , fe = new I + , de = new I + , pe = new I; + function me(t, e, n, r, s) { + for (var a = t.m_vertices, o = t.m_normals, l = r.m_count, h = r.m_vertices, c = F.MulRV(e.q, o[n], _e), u = F.MulTRV(s.q, c, fe), _ = 0, f = i, d = 0; d < l; ++d) { + var p = I.DotVV(h[d], u); + p < f && (f = p, + _ = d) + } + var m = V.MulXV(e, a[n], de) + , y = V.MulXV(s, h[_], pe); + return I.DotVV(I.SubVV(y, m, I.s_t0), c) + } + var ye = new I + , ve = new I; + function ge(t, e, n, r, s) { + for (var a = e.m_count, o = e.m_normals, l = I.SubVV(V.MulXV(s, r.m_centroid, I.s_t0), V.MulXV(n, e.m_centroid, I.s_t1), ye), h = F.MulTRV(n.q, l, ve), c = 0, u = -i, _ = 0; _ < a; ++_) { + var f = I.DotVV(o[_], h); + f > u && (u = f, + c = _) + } + var d = me(e, n, c, r, s) + , p = (c + a - 1) % a + , m = me(e, n, p, r, s) + , y = (c + 1) % a + , v = me(e, n, y, r, s) + , g = 0 + , A = 0 + , x = 0; + if (m > d && m > v) + x = -1, + g = p, + A = m; + else { + if (!(v > d)) + return t[0] = c, + d; + x = 1, + g = y, + A = v + } + for (; (d = me(e, n, c = -1 === x ? (g + a - 1) % a : (g + 1) % a, r, s)) > A; ) + g = c, + A = d; + return t[0] = g, + A + } + var Ae = new I; + function xe(e, n, r, s, a, o) { + for (var l = n.m_normals, h = a.m_count, c = a.m_vertices, u = a.m_normals, _ = F.MulTRV(o.q, F.MulRV(r.q, l[s], I.s_t0), Ae), f = 0, d = i, p = 0; p < h; ++p) { + var m = I.DotVV(_, u[p]); + m < d && (d = m, + f = p) + } + var y = f + , v = (y + 1) % h + , g = e[0]; + V.MulXV(o, c[y], g.v); + var A = g.id.cf; + A.indexA = s, + A.indexB = y, + A.typeA = t.b2ContactFeatureType.e_face, + A.typeB = t.b2ContactFeatureType.e_vertex; + var x = e[1]; + V.MulXV(o, c[v], x.v); + var b = x.id.cf; + b.indexA = s, + b.indexB = v, + b.typeA = t.b2ContactFeatureType.e_face, + b.typeB = t.b2ContactFeatureType.e_vertex + } + var be = xt.MakeArray(2) + , Ce = xt.MakeArray(2) + , Te = xt.MakeArray(2) + , Se = [0] + , we = [0] + , Ee = new I + , Me = new I + , De = new I + , Be = new I + , Ie = new I + , Pe = new I + , Re = new I + , Oe = new I; + function Le(e, i, n, r, s) { + e.pointCount = 0; + var o = i.m_radius + r.m_radius + , l = Se; + l[0] = 0; + var h = ge(l, i, n, r, s); + if (!(h > o)) { + var c = we; + c[0] = 0; + var u = ge(c, r, s, i, n); + if (!(u > o)) { + var _, f, d, p, m = 0, y = 0; + u > .98 * h + .001 ? (_ = r, + f = i, + d = s, + p = n, + m = c[0], + e.type = t.b2ManifoldType.e_faceB, + y = 1) : (_ = i, + f = r, + d = n, + p = s, + m = l[0], + e.type = t.b2ManifoldType.e_faceA, + y = 0); + var v = be; + xe(v, _, d, m, f, p); + var g = _.m_count + , A = _.m_vertices + , x = m + , b = (m + 1) % g + , C = A[x] + , T = A[b] + , S = I.SubVV(T, C, Ee); + S.Normalize(); + var w = I.CrossVOne(S, Me) + , E = I.MidVV(C, T, De) + , M = F.MulRV(d.q, S, Ie) + , D = I.CrossVOne(M, Be) + , B = V.MulXV(d, C, Re) + , P = V.MulXV(d, T, Oe) + , R = I.DotVV(D, B) + , O = -I.DotVV(M, B) + o + , L = I.DotVV(M, P) + o + , N = Ce + , k = Te; + if (!(wt(N, v, I.NegV(M, Pe), O, x) < 2 || wt(k, N, M, L, b) < 2)) { + e.localNormal.Copy(w), + e.localPoint.Copy(E); + for (var G = 0, U = 0; U < a; ++U) { + var z = k[U]; + if (I.DotVV(D, z.v) - R <= o) { + var H = e.points[G]; + if (V.MulTXV(p, z.v, H.localPoint), + H.id.Copy(z.id), + y) { + var W = H.id.cf; + H.id.cf.indexA = W.indexB, + H.id.cf.indexB = W.indexA, + H.id.cf.typeA = W.typeB, + H.id.cf.typeB = W.typeA + } + ++G + } + } + e.pointCount = G + } + } + } + } + var Fe = new I + , Ve = new I + , Ne = new I + , ke = new I + , Ge = new I + , Ue = new I + , ze = new I + , He = new mt; + function We(e, i, n, r, s) { + e.pointCount = 0; + var a = V.MulTXV(n, V.MulXV(s, r.m_p, I.s_t0), Fe) + , o = i.m_vertex1 + , l = i.m_vertex2 + , h = I.SubVV(l, o, Ve) + , c = I.DotVV(h, I.SubVV(l, a, I.s_t0)) + , u = I.DotVV(h, I.SubVV(a, o, I.s_t0)) + , _ = i.m_radius + r.m_radius + , f = He; + if (f.cf.indexB = 0, + f.cf.typeB = t.b2ContactFeatureType.e_vertex, + u <= 0) { + var d = o + , p = I.SubVV(a, d, Ne); + if (I.DotVV(p, p) > _ * _) + return; + if (i.m_hasVertex0) { + var m = i.m_vertex0 + , y = o + , v = I.SubVV(y, m, ke); + if (I.DotVV(v, I.SubVV(y, a, I.s_t0)) > 0) + return + } + return f.cf.indexA = 0, + f.cf.typeA = t.b2ContactFeatureType.e_vertex, + e.pointCount = 1, + e.type = t.b2ManifoldType.e_circles, + e.localNormal.SetZero(), + e.localPoint.Copy(d), + e.points[0].id.Copy(f), + void e.points[0].localPoint.Copy(r.m_p) + } + if (c <= 0) { + var g = l + , A = I.SubVV(a, g, Ne); + if (I.DotVV(A, A) > _ * _) + return; + if (i.m_hasVertex3) { + var x = i.m_vertex3 + , b = l + , C = I.SubVV(x, b, Ge); + if (I.DotVV(C, I.SubVV(a, b, I.s_t0)) > 0) + return + } + return f.cf.indexA = 1, + f.cf.typeA = t.b2ContactFeatureType.e_vertex, + e.pointCount = 1, + e.type = t.b2ManifoldType.e_circles, + e.localNormal.SetZero(), + e.localPoint.Copy(g), + e.points[0].id.Copy(f), + void e.points[0].localPoint.Copy(r.m_p) + } + var T = I.DotVV(h, h) + , S = Ue; + S.x = 1 / T * (c * o.x + u * l.x), + S.y = 1 / T * (c * o.y + u * l.y); + var w = I.SubVV(a, S, Ne); + if (!(I.DotVV(w, w) > _ * _)) { + var E = ze.Set(-h.y, h.x); + I.DotVV(E, I.SubVV(a, o, I.s_t0)) < 0 && E.Set(-E.x, -E.y), + E.Normalize(), + f.cf.indexA = 0, + f.cf.typeA = t.b2ContactFeatureType.e_face, + e.pointCount = 1, + e.type = t.b2ManifoldType.e_faceA, + e.localNormal.Copy(E), + e.localPoint.Copy(o), + e.points[0].id.Copy(f), + e.points[0].localPoint.Copy(r.m_p) + } + } + var je = function() { + this.type = 0, + this.index = 0, + this.separation = 0 + } + , Xe = function() { + this.vertices = I.MakeArray(o), + this.normals = I.MakeArray(o), + this.count = 0 + } + , Ye = function() { + this.i1 = 0, + this.i2 = 0, + this.v1 = new I, + this.v2 = new I, + this.normal = new I, + this.sideNormal1 = new I, + this.sideOffset1 = 0, + this.sideNormal2 = new I, + this.sideOffset2 = 0 + } + , qe = new (function() { + function e() { + this.m_polygonB = new Xe, + this.m_xf = new V, + this.m_centroidB = new I, + this.m_v0 = new I, + this.m_v1 = new I, + this.m_v2 = new I, + this.m_v3 = new I, + this.m_normal0 = new I, + this.m_normal1 = new I, + this.m_normal2 = new I, + this.m_normal = new I, + this.m_type1 = 0, + this.m_type2 = 0, + this.m_lowerLimit = new I, + this.m_upperLimit = new I, + this.m_radius = 0, + this.m_front = !1 + } + return e.prototype.Collide = function(i, n, r, s, o) { + V.MulTXX(r, o, this.m_xf), + V.MulXV(this.m_xf, s.m_centroid, this.m_centroidB), + this.m_v0.Copy(n.m_vertex0), + this.m_v1.Copy(n.m_vertex1), + this.m_v2.Copy(n.m_vertex2), + this.m_v3.Copy(n.m_vertex3); + var l = n.m_hasVertex0 + , h = n.m_hasVertex3 + , c = I.SubVV(this.m_v2, this.m_v1, e.s_edge1); + c.Normalize(), + this.m_normal1.Set(c.y, -c.x); + var u = I.DotVV(this.m_normal1, I.SubVV(this.m_centroidB, this.m_v1, I.s_t0)) + , _ = 0 + , f = 0 + , d = !1 + , p = !1; + if (l) { + var m = I.SubVV(this.m_v1, this.m_v0, e.s_edge0); + m.Normalize(), + this.m_normal0.Set(m.y, -m.x), + d = I.CrossVV(m, c) >= 0, + _ = I.DotVV(this.m_normal0, I.SubVV(this.m_centroidB, this.m_v0, I.s_t0)) + } + if (h) { + var y = I.SubVV(this.m_v3, this.m_v2, e.s_edge2); + y.Normalize(), + this.m_normal2.Set(y.y, -y.x), + p = I.CrossVV(c, y) > 0, + f = I.DotVV(this.m_normal2, I.SubVV(this.m_centroidB, this.m_v2, I.s_t0)) + } + l && h ? d && p ? (this.m_front = _ >= 0 || u >= 0 || f >= 0, + this.m_front ? (this.m_normal.Copy(this.m_normal1), + this.m_lowerLimit.Copy(this.m_normal0), + this.m_upperLimit.Copy(this.m_normal2)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(), + this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(), + this.m_upperLimit.Copy(this.m_normal1).SelfNeg())) : d ? (this.m_front = _ >= 0 || u >= 0 && f >= 0, + this.m_front ? (this.m_normal.Copy(this.m_normal1), + this.m_lowerLimit.Copy(this.m_normal0), + this.m_upperLimit.Copy(this.m_normal1)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(), + this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(), + this.m_upperLimit.Copy(this.m_normal1).SelfNeg())) : p ? (this.m_front = f >= 0 || _ >= 0 && u >= 0, + this.m_front ? (this.m_normal.Copy(this.m_normal1), + this.m_lowerLimit.Copy(this.m_normal1), + this.m_upperLimit.Copy(this.m_normal2)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(), + this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(), + this.m_upperLimit.Copy(this.m_normal0).SelfNeg())) : (this.m_front = _ >= 0 && u >= 0 && f >= 0, + this.m_front ? (this.m_normal.Copy(this.m_normal1), + this.m_lowerLimit.Copy(this.m_normal1), + this.m_upperLimit.Copy(this.m_normal1)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(), + this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(), + this.m_upperLimit.Copy(this.m_normal0).SelfNeg())) : l ? d ? (this.m_front = _ >= 0 || u >= 0, + this.m_front ? (this.m_normal.Copy(this.m_normal1), + this.m_lowerLimit.Copy(this.m_normal0), + this.m_upperLimit.Copy(this.m_normal1).SelfNeg()) : (this.m_normal.Copy(this.m_normal1).SelfNeg(), + this.m_lowerLimit.Copy(this.m_normal1), + this.m_upperLimit.Copy(this.m_normal1).SelfNeg())) : (this.m_front = _ >= 0 && u >= 0, + this.m_front ? (this.m_normal.Copy(this.m_normal1), + this.m_lowerLimit.Copy(this.m_normal1), + this.m_upperLimit.Copy(this.m_normal1).SelfNeg()) : (this.m_normal.Copy(this.m_normal1).SelfNeg(), + this.m_lowerLimit.Copy(this.m_normal1), + this.m_upperLimit.Copy(this.m_normal0).SelfNeg())) : h ? p ? (this.m_front = u >= 0 || f >= 0, + this.m_front ? (this.m_normal.Copy(this.m_normal1), + this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(), + this.m_upperLimit.Copy(this.m_normal2)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(), + this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(), + this.m_upperLimit.Copy(this.m_normal1))) : (this.m_front = u >= 0 && f >= 0, + this.m_front ? (this.m_normal.Copy(this.m_normal1), + this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(), + this.m_upperLimit.Copy(this.m_normal1)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(), + this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(), + this.m_upperLimit.Copy(this.m_normal1))) : (this.m_front = u >= 0, + this.m_front ? (this.m_normal.Copy(this.m_normal1), + this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(), + this.m_upperLimit.Copy(this.m_normal1).SelfNeg()) : (this.m_normal.Copy(this.m_normal1).SelfNeg(), + this.m_lowerLimit.Copy(this.m_normal1), + this.m_upperLimit.Copy(this.m_normal1))), + this.m_polygonB.count = s.m_count; + for (var v = 0; v < s.m_count; ++v) + V.MulXV(this.m_xf, s.m_vertices[v], this.m_polygonB.vertices[v]), + F.MulRV(this.m_xf.q, s.m_normals[v], this.m_polygonB.normals[v]); + this.m_radius = s.m_radius + n.m_radius, + i.pointCount = 0; + var g = this.ComputeEdgeSeparation(e.s_edgeAxis); + if (0 !== g.type && !(g.separation > this.m_radius)) { + var A = this.ComputePolygonSeparation(e.s_polygonAxis); + if (!(0 !== A.type && A.separation > this.m_radius)) { + var x; + x = 0 === A.type ? g : A.separation > .98 * g.separation + .001 ? A : g; + var b = e.s_ie + , C = e.s_rf; + if (1 === x.type) { + i.type = t.b2ManifoldType.e_faceA; + var T = 0 + , S = I.DotVV(this.m_normal, this.m_polygonB.normals[0]); + for (v = 1; v < this.m_polygonB.count; ++v) { + var w = I.DotVV(this.m_normal, this.m_polygonB.normals[v]); + w < S && (S = w, + T = v) + } + var E = T + , M = (E + 1) % this.m_polygonB.count; + (D = b[0]).v.Copy(this.m_polygonB.vertices[E]), + D.id.cf.indexA = 0, + D.id.cf.indexB = E, + D.id.cf.typeA = t.b2ContactFeatureType.e_face, + D.id.cf.typeB = t.b2ContactFeatureType.e_vertex, + (B = b[1]).v.Copy(this.m_polygonB.vertices[M]), + B.id.cf.indexA = 0, + B.id.cf.indexB = M, + B.id.cf.typeA = t.b2ContactFeatureType.e_face, + B.id.cf.typeB = t.b2ContactFeatureType.e_vertex, + this.m_front ? (C.i1 = 0, + C.i2 = 1, + C.v1.Copy(this.m_v1), + C.v2.Copy(this.m_v2), + C.normal.Copy(this.m_normal1)) : (C.i1 = 1, + C.i2 = 0, + C.v1.Copy(this.m_v2), + C.v2.Copy(this.m_v1), + C.normal.Copy(this.m_normal1).SelfNeg()) + } else { + var D, B; + i.type = t.b2ManifoldType.e_faceB, + (D = b[0]).v.Copy(this.m_v1), + D.id.cf.indexA = 0, + D.id.cf.indexB = x.index, + D.id.cf.typeA = t.b2ContactFeatureType.e_vertex, + D.id.cf.typeB = t.b2ContactFeatureType.e_face, + (B = b[1]).v.Copy(this.m_v2), + B.id.cf.indexA = 0, + B.id.cf.indexB = x.index, + B.id.cf.typeA = t.b2ContactFeatureType.e_vertex, + B.id.cf.typeB = t.b2ContactFeatureType.e_face, + C.i1 = x.index, + C.i2 = (C.i1 + 1) % this.m_polygonB.count, + C.v1.Copy(this.m_polygonB.vertices[C.i1]), + C.v2.Copy(this.m_polygonB.vertices[C.i2]), + C.normal.Copy(this.m_polygonB.normals[C.i1]) + } + C.sideNormal1.Set(C.normal.y, -C.normal.x), + C.sideNormal2.Copy(C.sideNormal1).SelfNeg(), + C.sideOffset1 = I.DotVV(C.sideNormal1, C.v1), + C.sideOffset2 = I.DotVV(C.sideNormal2, C.v2); + var P = e.s_clipPoints1 + , R = e.s_clipPoints2; + if (!(wt(P, b, C.sideNormal1, C.sideOffset1, C.i1) < a || wt(R, P, C.sideNormal2, C.sideOffset2, C.i2) < a)) { + 1 === x.type ? (i.localNormal.Copy(C.normal), + i.localPoint.Copy(C.v1)) : (i.localNormal.Copy(s.m_normals[C.i1]), + i.localPoint.Copy(s.m_vertices[C.i1])); + var O = 0; + for (v = 0; v < a; ++v) + if (I.DotVV(C.normal, I.SubVV(R[v].v, C.v1, I.s_t0)) <= this.m_radius) { + var L = i.points[O]; + 1 === x.type ? (V.MulTXV(this.m_xf, R[v].v, L.localPoint), + L.id = R[v].id) : (L.localPoint.Copy(R[v].v), + L.id.cf.typeA = R[v].id.cf.typeB, + L.id.cf.typeB = R[v].id.cf.typeA, + L.id.cf.indexA = R[v].id.cf.indexB, + L.id.cf.indexB = R[v].id.cf.indexA), + ++O + } + i.pointCount = O + } + } + } + } + , + e.prototype.ComputeEdgeSeparation = function(t) { + var e = t; + e.type = 1, + e.index = this.m_front ? 0 : 1, + e.separation = i; + for (var n = 0; n < this.m_polygonB.count; ++n) { + var r = I.DotVV(this.m_normal, I.SubVV(this.m_polygonB.vertices[n], this.m_v1, I.s_t0)); + r < e.separation && (e.separation = r) + } + return e + } + , + e.prototype.ComputePolygonSeparation = function(t) { + var n = t; + n.type = 0, + n.index = -1, + n.separation = -i; + for (var r = e.s_perp.Set(-this.m_normal.y, this.m_normal.x), s = 0; s < this.m_polygonB.count; ++s) { + var a = I.NegV(this.m_polygonB.normals[s], e.s_n) + , o = I.DotVV(a, I.SubVV(this.m_polygonB.vertices[s], this.m_v1, I.s_t0)) + , l = I.DotVV(a, I.SubVV(this.m_polygonB.vertices[s], this.m_v2, I.s_t0)) + , c = y(o, l); + if (c > this.m_radius) + return n.type = 2, + n.index = s, + n.separation = c, + n; + if (I.DotVV(a, r) >= 0) { + if (I.DotVV(I.SubVV(a, this.m_upperLimit, I.s_t0), this.m_normal) < -h) + continue + } else if (I.DotVV(I.SubVV(a, this.m_lowerLimit, I.s_t0), this.m_normal) < -h) + continue; + c > n.separation && (n.type = 2, + n.index = s, + n.separation = c) + } + return n + } + , + e.s_edge1 = new I, + e.s_edge0 = new I, + e.s_edge2 = new I, + e.s_ie = xt.MakeArray(2), + e.s_rf = new Ye, + e.s_clipPoints1 = xt.MakeArray(2), + e.s_clipPoints2 = xt.MakeArray(2), + e.s_edgeAxis = new je, + e.s_polygonAxis = new je, + e.s_n = new I, + e.s_perp = new I, + e + }()); + function Je(t, e, i, n, r) { + qe.Collide(t, e, i, n, r) + } + var Ze, Ke = function() { + this.mass = 0, + this.center = new I(0,0), + this.I = 0 + }; + (Ze = t.b2ShapeType || (t.b2ShapeType = {}))[Ze.e_unknown = -1] = "e_unknown", + Ze[Ze.e_circleShape = 0] = "e_circleShape", + Ze[Ze.e_edgeShape = 1] = "e_edgeShape", + Ze[Ze.e_polygonShape = 2] = "e_polygonShape", + Ze[Ze.e_chainShape = 3] = "e_chainShape", + Ze[Ze.e_shapeTypeCount = 4] = "e_shapeTypeCount"; + var Qe = (function() { + function e(e, i) { + this.m_type = t.b2ShapeType.e_unknown, + this.m_radius = 0, + this.m_type = e, + this.m_radius = i + } + return e.prototype.Copy = function(t) { + return this.m_radius = t.m_radius, + this + } + , + e.prototype.GetType = function() { + return this.m_type + } + , + e + } + )() + , $e = Object.setPrototypeOf || { + __proto__: [] + }instanceof Array && function(t, e) { + t.__proto__ = e + } + || function(t, e) { + for (var i in e) + e.hasOwnProperty(i) && (t[i] = e[i]) + } + ; + function ti(t, e) { + function i() { + this.constructor = t + } + $e(t, e), + t.prototype = null === e ? Object.create(e) : (i.prototype = e.prototype, + new i) + } + var ei, ii = (function(e) { + function i(i) { + void 0 === i && (i = 0); + var n = e.call(this, t.b2ShapeType.e_circleShape, i) || this; + return n.m_p = new I, + n + } + return ti(i, e), + i.prototype.Set = function(t, e) { + return void 0 === e && (e = this.m_radius), + this.m_p.Copy(t), + this.m_radius = e, + this + } + , + i.prototype.Clone = function() { + return (new i).Copy(this) + } + , + i.prototype.Copy = function(t) { + return e.prototype.Copy.call(this, t), + this.m_p.Copy(t.m_p), + this + } + , + i.prototype.GetChildCount = function() { + return 1 + } + , + i.prototype.TestPoint = function(t, e) { + var n = V.MulXV(t, this.m_p, i.TestPoint_s_center) + , r = I.SubVV(e, n, i.TestPoint_s_d); + return I.DotVV(r, r) <= x(this.m_radius) + } + , + i.prototype.ComputeDistance = function(t, e, n) { + var r = V.MulXV(t, this.m_p, i.ComputeDistance_s_center); + return I.SubVV(e, r, n), + n.Normalize() - this.m_radius + } + , + i.prototype.RayCast = function(t, e, r) { + var s = V.MulXV(r, this.m_p, i.RayCast_s_position) + , a = I.SubVV(e.p1, s, i.RayCast_s_s) + , o = I.DotVV(a, a) - x(this.m_radius) + , l = I.SubVV(e.p2, e.p1, i.RayCast_s_r) + , h = I.DotVV(a, l) + , c = I.DotVV(l, l) + , u = h * h - c * o; + if (u < 0 || c < n) + return !1; + var _ = -(h + T(u)); + return 0 <= _ && _ <= e.maxFraction * c && (_ /= c, + t.fraction = _, + I.AddVMulSV(a, _, l, t.normal).SelfNormalize(), + !0) + } + , + i.prototype.ComputeAABB = function(t, e) { + var n = V.MulXV(e, this.m_p, i.ComputeAABB_s_p); + t.lowerBound.Set(n.x - this.m_radius, n.y - this.m_radius), + t.upperBound.Set(n.x + this.m_radius, n.y + this.m_radius) + } + , + i.prototype.ComputeMass = function(t, e) { + var i = x(this.m_radius); + t.mass = e * s * i, + t.center.Copy(this.m_p), + t.I = t.mass * (.5 * i + I.DotVV(this.m_p, this.m_p)) + } + , + i.prototype.SetupDistanceProxy = function(t) { + t.m_vertices = t.m_buffer, + t.m_vertices[0].Copy(this.m_p), + t.m_count = 1, + t.m_radius = this.m_radius + } + , + i.prototype.ComputeSubmergedArea = function(t, e, i, r) { + var a = V.MulXV(i, this.m_p, new I) + , o = -(I.DotVV(t, a) - e); + if (o < -this.m_radius + n) + return 0; + if (o > this.m_radius) + return r.Copy(a), + s * this.m_radius * this.m_radius; + var l = this.m_radius * this.m_radius + , h = o * o + , c = l * (D(o / this.m_radius) + s / 2) + o * T(l - h) + , u = -2 / 3 * S(l - h, 1.5) / c; + return r.x = a.x + t.x * u, + r.y = a.y + t.y * u, + c + } + , + i.prototype.Dump = function(t) { + t(" const shape: b2CircleShape = new b2CircleShape();\n"), + t(" shape.m_radius = %.15f;\n", this.m_radius), + t(" shape.m_p.Set(%.15f, %.15f);\n", this.m_p.x, this.m_p.y) + } + , + i.TestPoint_s_center = new I, + i.TestPoint_s_d = new I, + i.ComputeDistance_s_center = new I, + i.RayCast_s_position = new I, + i.RayCast_s_s = new I, + i.RayCast_s_r = new I, + i.ComputeAABB_s_p = new I, + i + } + )(Qe), ni = (function(e) { + function r() { + var i = e.call(this, t.b2ShapeType.e_polygonShape, c) || this; + return i.m_centroid = new I(0,0), + i.m_vertices = [], + i.m_normals = [], + i.m_count = 0, + i + } + return ti(r, e), + r.prototype.Clone = function() { + return (new r).Copy(this) + } + , + r.prototype.Copy = function(t) { + e.prototype.Copy.call(this, t), + this.m_centroid.Copy(t.m_centroid), + this.m_count = t.m_count, + this.m_vertices = I.MakeArray(this.m_count), + this.m_normals = I.MakeArray(this.m_count); + for (var i = 0; i < this.m_count; ++i) + this.m_vertices[i].Copy(t.m_vertices[i]), + this.m_normals[i].Copy(t.m_normals[i]); + return this + } + , + r.prototype.GetChildCount = function() { + return 1 + } + , + r.prototype.Set = function(t, e, i) { + if (void 0 === e && (e = t.length), + void 0 === i && (i = 0), + e < 3) + return this.SetAsBox(1, 1); + for (var n = y(e, o), s = r.Set_s_ps, a = 0, h = 0; h < n; ++h) { + for (var c = t[i + h], u = !0, _ = 0; _ < a; ++_) + if (I.DistanceSquaredVV(c, s[_]) < .25 * l * l) { + u = !1; + break + } + u && s[a++].Copy(c) + } + if ((n = a) < 3) + return this.SetAsBox(1, 1); + var f = 0 + , d = s[0].x; + for (h = 1; h < n; ++h) { + var p = s[h].x; + (p > d || p === d && s[h].y < s[f].y) && (f = h, + d = p) + } + for (var m = r.Set_s_hull, v = 0, g = f; ; ) { + m[v] = g; + var A = 0; + for (_ = 1; _ < n; ++_) + if (A !== g) { + var x = I.SubVV(s[A], s[m[v]], r.Set_s_r) + , b = (c = I.SubVV(s[_], s[m[v]], r.Set_s_v), + I.CrossVV(x, c)); + b < 0 && (A = _), + 0 === b && c.LengthSquared() > x.LengthSquared() && (A = _) + } else + A = _; + if (++v, + g = A, + A === f) + break + } + for (this.m_count = v, + this.m_vertices = I.MakeArray(this.m_count), + this.m_normals = I.MakeArray(this.m_count), + h = 0; h < v; ++h) + this.m_vertices[h].Copy(s[m[h]]); + for (h = 0; h < v; ++h) { + var C = this.m_vertices[h] + , T = this.m_vertices[(h + 1) % v] + , S = I.SubVV(T, C, I.s_t0); + I.CrossVOne(S, this.m_normals[h]).SelfNormalize() + } + return r.ComputeCentroid(this.m_vertices, v, this.m_centroid), + this + } + , + r.prototype.SetAsArray = function(t, e) { + return void 0 === e && (e = t.length), + this.Set(t, e) + } + , + r.prototype.SetAsBox = function(t, e, i, n) { + if (void 0 === n && (n = 0), + this.m_count = 4, + this.m_vertices = I.MakeArray(this.m_count), + this.m_normals = I.MakeArray(this.m_count), + this.m_vertices[0].Set(-t, -e), + this.m_vertices[1].Set(t, -e), + this.m_vertices[2].Set(t, e), + this.m_vertices[3].Set(-t, e), + this.m_normals[0].Set(0, -1), + this.m_normals[1].Set(1, 0), + this.m_normals[2].Set(0, 1), + this.m_normals[3].Set(-1, 0), + this.m_centroid.SetZero(), + i) { + this.m_centroid.Copy(i); + var r = new V; + r.SetPosition(i), + r.SetRotationAngle(n); + for (var s = 0; s < this.m_count; ++s) + V.MulXV(r, this.m_vertices[s], this.m_vertices[s]), + F.MulRV(r.q, this.m_normals[s], this.m_normals[s]) + } + return this + } + , + r.prototype.TestPoint = function(t, e) { + for (var i = V.MulTXV(t, e, r.TestPoint_s_pLocal), n = 0; n < this.m_count; ++n) + if (I.DotVV(this.m_normals[n], I.SubVV(i, this.m_vertices[n], I.s_t0)) > 0) + return !1; + return !0 + } + , + r.prototype.ComputeDistance = function(t, e, n) { + for (var s = V.MulTXV(t, e, r.ComputeDistance_s_pLocal), a = -i, o = r.ComputeDistance_s_normalForMaxDistance.Copy(s), l = 0; l < this.m_count; ++l) { + var h = I.DotVV(this.m_normals[l], I.SubVV(s, this.m_vertices[l], I.s_t0)); + h > a && (a = h, + o.Copy(this.m_normals[l])) + } + if (a > 0) { + var c = r.ComputeDistance_s_minDistance.Copy(o) + , u = a * a; + for (l = 0; l < this.m_count; ++l) { + var _ = I.SubVV(s, this.m_vertices[l], r.ComputeDistance_s_distance) + , f = _.LengthSquared(); + u > f && (c.Copy(_), + u = f) + } + return F.MulRV(t.q, c, n), + n.Normalize(), + Math.sqrt(u) + } + return F.MulRV(t.q, o, n), + a + } + , + r.prototype.RayCast = function(t, e, i) { + for (var n = V.MulTXV(i, e.p1, r.RayCast_s_p1), s = V.MulTXV(i, e.p2, r.RayCast_s_p2), a = I.SubVV(s, n, r.RayCast_s_d), o = 0, l = e.maxFraction, h = -1, c = 0; c < this.m_count; ++c) { + var u = I.DotVV(this.m_normals[c], I.SubVV(this.m_vertices[c], n, I.s_t0)) + , _ = I.DotVV(this.m_normals[c], a); + if (0 === _) { + if (u < 0) + return !1 + } else + _ < 0 && u < o * _ ? (o = u / _, + h = c) : _ > 0 && u < l * _ && (l = u / _); + if (l < o) + return !1 + } + return h >= 0 && (t.fraction = o, + F.MulRV(i.q, this.m_normals[h], t.normal), + !0) + } + , + r.prototype.ComputeAABB = function(t, e) { + for (var i = V.MulXV(e, this.m_vertices[0], t.lowerBound), n = t.upperBound.Copy(i), s = 0; s < this.m_count; ++s) { + var a = V.MulXV(e, this.m_vertices[s], r.ComputeAABB_s_v); + I.MinV(a, i, i), + I.MaxV(a, n, n) + } + var o = this.m_radius; + i.SelfSubXY(o, o), + n.SelfAddXY(o, o) + } + , + r.prototype.ComputeMass = function(t, e) { + for (var i = r.ComputeMass_s_center.SetZero(), n = 0, s = 0, a = r.ComputeMass_s_s.SetZero(), o = 0; o < this.m_count; ++o) + a.SelfAdd(this.m_vertices[o]); + for (a.SelfMul(1 / this.m_count), + o = 0; o < this.m_count; ++o) { + var l = I.SubVV(this.m_vertices[o], a, r.ComputeMass_s_e1) + , h = I.SubVV(this.m_vertices[(o + 1) % this.m_count], a, r.ComputeMass_s_e2) + , c = I.CrossVV(l, h) + , u = .5 * c; + n += u, + i.SelfAdd(I.MulSV(u * (1 / 3), I.AddVV(l, h, I.s_t0), I.s_t1)); + var _ = l.x + , f = l.y + , d = h.x + , p = h.y; + s += 1 / 3 * .25 * c * (_ * _ + d * _ + d * d + f * f + p * f + p * p) + } + t.mass = e * n, + i.SelfMul(1 / n), + I.AddVV(i, a, t.center), + t.I = e * s, + t.I += t.mass * (I.DotVV(t.center, t.center) - I.DotVV(i, i)) + } + , + r.prototype.Validate = function() { + for (var t = 0; t < this.m_count; ++t) + for (var e = t, i = (t + 1) % this.m_count, n = this.m_vertices[e], s = I.SubVV(this.m_vertices[i], n, r.Validate_s_e), a = 0; a < this.m_count; ++a) + if (a !== e && a !== i) { + var o = I.SubVV(this.m_vertices[a], n, r.Validate_s_v); + if (I.CrossVV(s, o) < 0) + return !1 + } + return !0 + } + , + r.prototype.SetupDistanceProxy = function(t) { + t.m_vertices = this.m_vertices, + t.m_count = this.m_count, + t.m_radius = this.m_radius + } + , + r.prototype.ComputeSubmergedArea = function(t, e, i, s) { + for (var a = F.MulTRV(i.q, t, r.ComputeSubmergedArea_s_normalL), o = e - I.DotVV(t, i.p), l = r.ComputeSubmergedArea_s_depths, h = 0, c = -1, u = -1, _ = !1, f = 0; f < this.m_count; ++f) { + l[f] = I.DotVV(a, this.m_vertices[f]) - o; + var d = l[f] < -n; + f > 0 && (d ? _ || (c = f - 1, + h++) : _ && (u = f - 1, + h++)), + _ = d + } + switch (h) { + case 0: + if (_) { + var p = r.ComputeSubmergedArea_s_md; + return this.ComputeMass(p, 1), + V.MulXV(i, p.center, s), + p.mass + } + return 0; + case 1: + -1 === c ? c = this.m_count - 1 : u = this.m_count - 1 + } + for (var m, y = (c + 1) % this.m_count, v = (u + 1) % this.m_count, g = (0 - l[c]) / (l[y] - l[c]), A = (0 - l[u]) / (l[v] - l[u]), x = r.ComputeSubmergedArea_s_intoVec.Set(this.m_vertices[c].x * (1 - g) + this.m_vertices[y].x * g, this.m_vertices[c].y * (1 - g) + this.m_vertices[y].y * g), b = r.ComputeSubmergedArea_s_outoVec.Set(this.m_vertices[u].x * (1 - A) + this.m_vertices[v].x * A, this.m_vertices[u].y * (1 - A) + this.m_vertices[v].y * A), C = 0, T = r.ComputeSubmergedArea_s_center.SetZero(), S = this.m_vertices[y], w = y; w !== v; ) { + m = (w = (w + 1) % this.m_count) === v ? b : this.m_vertices[w]; + var E = .5 * ((S.x - x.x) * (m.y - x.y) - (S.y - x.y) * (m.x - x.x)); + C += E, + T.x += E * (x.x + S.x + m.x) / 3, + T.y += E * (x.y + S.y + m.y) / 3, + S = m + } + return T.SelfMul(1 / C), + V.MulXV(i, T, s), + C + } + , + r.prototype.Dump = function(t) { + t(" const shape: b2PolygonShape = new b2PolygonShape();\n"), + t(" const vs: b2Vec2[] = b2Vec2.MakeArray(%d);\n", o); + for (var e = 0; e < this.m_count; ++e) + t(" vs[%d].Set(%.15f, %.15f);\n", e, this.m_vertices[e].x, this.m_vertices[e].y); + t(" shape.Set(vs, %d);\n", this.m_count) + } + , + r.ComputeCentroid = function(t, e, i) { + var n = i; + n.SetZero(); + for (var s = 0, a = r.ComputeCentroid_s_pRef.SetZero(), o = 0; o < e; ++o) { + var l = a + , h = t[o] + , c = t[(o + 1) % e] + , u = I.SubVV(h, l, r.ComputeCentroid_s_e1) + , _ = I.SubVV(c, l, r.ComputeCentroid_s_e2) + , f = .5 * I.CrossVV(u, _); + s += f, + n.x += f * (1 / 3) * (l.x + h.x + c.x), + n.y += f * (1 / 3) * (l.y + h.y + c.y) + } + return n.SelfMul(1 / s), + n + } + , + r.Set_s_ps = I.MakeArray(o), + r.Set_s_hull = p(o), + r.Set_s_r = new I, + r.Set_s_v = new I, + r.TestPoint_s_pLocal = new I, + r.ComputeDistance_s_pLocal = new I, + r.ComputeDistance_s_normalForMaxDistance = new I, + r.ComputeDistance_s_minDistance = new I, + r.ComputeDistance_s_distance = new I, + r.RayCast_s_p1 = new I, + r.RayCast_s_p2 = new I, + r.RayCast_s_d = new I, + r.ComputeAABB_s_v = new I, + r.ComputeMass_s_center = new I, + r.ComputeMass_s_s = new I, + r.ComputeMass_s_e1 = new I, + r.ComputeMass_s_e2 = new I, + r.Validate_s_e = new I, + r.Validate_s_v = new I, + r.ComputeSubmergedArea_s_normalL = new I, + r.ComputeSubmergedArea_s_depths = p(o), + r.ComputeSubmergedArea_s_md = new Ke, + r.ComputeSubmergedArea_s_intoVec = new I, + r.ComputeSubmergedArea_s_outoVec = new I, + r.ComputeSubmergedArea_s_center = new I, + r.ComputeCentroid_s_pRef = new I, + r.ComputeCentroid_s_e1 = new I, + r.ComputeCentroid_s_e2 = new I, + r + } + )(Qe), ri = (function(e) { + function i() { + var i = e.call(this, t.b2ShapeType.e_edgeShape, c) || this; + return i.m_vertex1 = new I, + i.m_vertex2 = new I, + i.m_vertex0 = new I, + i.m_vertex3 = new I, + i.m_hasVertex0 = !1, + i.m_hasVertex3 = !1, + i + } + return ti(i, e), + i.prototype.Set = function(t, e) { + return this.m_vertex1.Copy(t), + this.m_vertex2.Copy(e), + this.m_hasVertex0 = !1, + this.m_hasVertex3 = !1, + this + } + , + i.prototype.Clone = function() { + return (new i).Copy(this) + } + , + i.prototype.Copy = function(t) { + return e.prototype.Copy.call(this, t), + this.m_vertex1.Copy(t.m_vertex1), + this.m_vertex2.Copy(t.m_vertex2), + this.m_vertex0.Copy(t.m_vertex0), + this.m_vertex3.Copy(t.m_vertex3), + this.m_hasVertex0 = t.m_hasVertex0, + this.m_hasVertex3 = t.m_hasVertex3, + this + } + , + i.prototype.GetChildCount = function() { + return 1 + } + , + i.prototype.TestPoint = function() { + return !1 + } + , + i.prototype.ComputeDistance = function(t, e, n) { + var r = V.MulXV(t, this.m_vertex1, i.ComputeDistance_s_v1) + , s = V.MulXV(t, this.m_vertex2, i.ComputeDistance_s_v2) + , a = I.SubVV(e, r, i.ComputeDistance_s_d) + , o = I.SubVV(s, r, i.ComputeDistance_s_s) + , l = I.DotVV(a, o); + if (l > 0) { + var h = I.DotVV(o, o); + l > h ? I.SubVV(e, s, a) : a.SelfMulSub(l / h, o) + } + return n.Copy(a), + n.Normalize() + } + , + i.prototype.RayCast = function(t, e, n) { + var r = V.MulTXV(n, e.p1, i.RayCast_s_p1) + , s = V.MulTXV(n, e.p2, i.RayCast_s_p2) + , a = I.SubVV(s, r, i.RayCast_s_d) + , o = this.m_vertex1 + , l = this.m_vertex2 + , h = I.SubVV(l, o, i.RayCast_s_e) + , c = t.normal.Set(h.y, -h.x).SelfNormalize() + , u = I.DotVV(c, I.SubVV(o, r, I.s_t0)) + , _ = I.DotVV(c, a); + if (0 === _) + return !1; + var f = u / _; + if (f < 0 || e.maxFraction < f) + return !1; + var d = I.AddVMulSV(r, f, a, i.RayCast_s_q) + , p = I.SubVV(l, o, i.RayCast_s_r) + , m = I.DotVV(p, p); + if (0 === m) + return !1; + var y = I.DotVV(I.SubVV(d, o, I.s_t0), p) / m; + return !(y < 0 || 1 < y || (t.fraction = f, + F.MulRV(n.q, t.normal, t.normal), + u > 0 && t.normal.SelfNeg(), + 0)) + } + , + i.prototype.ComputeAABB = function(t, e) { + var n = V.MulXV(e, this.m_vertex1, i.ComputeAABB_s_v1) + , r = V.MulXV(e, this.m_vertex2, i.ComputeAABB_s_v2); + I.MinV(n, r, t.lowerBound), + I.MaxV(n, r, t.upperBound); + var s = this.m_radius; + t.lowerBound.SelfSubXY(s, s), + t.upperBound.SelfAddXY(s, s) + } + , + i.prototype.ComputeMass = function(t) { + t.mass = 0, + I.MidVV(this.m_vertex1, this.m_vertex2, t.center), + t.I = 0 + } + , + i.prototype.SetupDistanceProxy = function(t) { + t.m_vertices = t.m_buffer, + t.m_vertices[0].Copy(this.m_vertex1), + t.m_vertices[1].Copy(this.m_vertex2), + t.m_count = 2, + t.m_radius = this.m_radius + } + , + i.prototype.ComputeSubmergedArea = function(t, e, i, n) { + return n.SetZero(), + 0 + } + , + i.prototype.Dump = function(t) { + t(" const shape: b2EdgeShape = new b2EdgeShape();\n"), + t(" shape.m_radius = %.15f;\n", this.m_radius), + t(" shape.m_vertex0.Set(%.15f, %.15f);\n", this.m_vertex0.x, this.m_vertex0.y), + t(" shape.m_vertex1.Set(%.15f, %.15f);\n", this.m_vertex1.x, this.m_vertex1.y), + t(" shape.m_vertex2.Set(%.15f, %.15f);\n", this.m_vertex2.x, this.m_vertex2.y), + t(" shape.m_vertex3.Set(%.15f, %.15f);\n", this.m_vertex3.x, this.m_vertex3.y), + t(" shape.m_hasVertex0 = %s;\n", this.m_hasVertex0), + t(" shape.m_hasVertex3 = %s;\n", this.m_hasVertex3) + } + , + i.ComputeDistance_s_v1 = new I, + i.ComputeDistance_s_v2 = new I, + i.ComputeDistance_s_d = new I, + i.ComputeDistance_s_s = new I, + i.RayCast_s_p1 = new I, + i.RayCast_s_p2 = new I, + i.RayCast_s_d = new I, + i.RayCast_s_e = new I, + i.RayCast_s_q = new I, + i.RayCast_s_r = new I, + i.ComputeAABB_s_v1 = new I, + i.ComputeAABB_s_v2 = new I, + i + } + )(Qe), si = (function(e) { + function i() { + var i = e.call(this, t.b2ShapeType.e_chainShape, c) || this; + return i.m_vertices = [], + i.m_count = 0, + i.m_prevVertex = new I, + i.m_nextVertex = new I, + i.m_hasPrevVertex = !1, + i.m_hasNextVertex = !1, + i + } + return ti(i, e), + i.prototype.CreateLoop = function(t, e, i) { + if (void 0 === e && (e = t.length), + void 0 === i && (i = 0), + e < 3) + return this; + this.m_count = e + 1, + this.m_vertices = I.MakeArray(this.m_count); + for (var n = 0; n < e; ++n) + this.m_vertices[n].Copy(t[i + n]); + return this.m_vertices[e].Copy(this.m_vertices[0]), + this.m_prevVertex.Copy(this.m_vertices[this.m_count - 2]), + this.m_nextVertex.Copy(this.m_vertices[1]), + this.m_hasPrevVertex = !0, + this.m_hasNextVertex = !0, + this + } + , + i.prototype.CreateChain = function(t, e, i) { + void 0 === e && (e = t.length), + void 0 === i && (i = 0), + this.m_count = e, + this.m_vertices = I.MakeArray(e); + for (var n = 0; n < e; ++n) + this.m_vertices[n].Copy(t[i + n]); + return this.m_hasPrevVertex = !1, + this.m_hasNextVertex = !1, + this.m_prevVertex.SetZero(), + this.m_nextVertex.SetZero(), + this + } + , + i.prototype.SetPrevVertex = function(t) { + return this.m_prevVertex.Copy(t), + this.m_hasPrevVertex = !0, + this + } + , + i.prototype.SetNextVertex = function(t) { + return this.m_nextVertex.Copy(t), + this.m_hasNextVertex = !0, + this + } + , + i.prototype.Clone = function() { + return (new i).Copy(this) + } + , + i.prototype.Copy = function(t) { + return e.prototype.Copy.call(this, t), + this.CreateChain(t.m_vertices, t.m_count), + this.m_prevVertex.Copy(t.m_prevVertex), + this.m_nextVertex.Copy(t.m_nextVertex), + this.m_hasPrevVertex = t.m_hasPrevVertex, + this.m_hasNextVertex = t.m_hasNextVertex, + this + } + , + i.prototype.GetChildCount = function() { + return this.m_count - 1 + } + , + i.prototype.GetChildEdge = function(e, i) { + e.m_type = t.b2ShapeType.e_edgeShape, + e.m_radius = this.m_radius, + e.m_vertex1.Copy(this.m_vertices[i]), + e.m_vertex2.Copy(this.m_vertices[i + 1]), + i > 0 ? (e.m_vertex0.Copy(this.m_vertices[i - 1]), + e.m_hasVertex0 = !0) : (e.m_vertex0.Copy(this.m_prevVertex), + e.m_hasVertex0 = this.m_hasPrevVertex), + i < this.m_count - 2 ? (e.m_vertex3.Copy(this.m_vertices[i + 2]), + e.m_hasVertex3 = !0) : (e.m_vertex3.Copy(this.m_nextVertex), + e.m_hasVertex3 = this.m_hasNextVertex) + } + , + i.prototype.TestPoint = function() { + return !1 + } + , + i.prototype.ComputeDistance = function(t, e, n, r) { + var s = i.ComputeDistance_s_edgeShape; + return this.GetChildEdge(s, r), + s.ComputeDistance(t, e, n, 0) + } + , + i.prototype.RayCast = function(t, e, n, r) { + var s = i.RayCast_s_edgeShape; + return s.m_vertex1.Copy(this.m_vertices[r]), + s.m_vertex2.Copy(this.m_vertices[(r + 1) % this.m_count]), + s.RayCast(t, e, n, 0) + } + , + i.prototype.ComputeAABB = function(t, e, n) { + var r = this.m_vertices[n] + , s = this.m_vertices[(n + 1) % this.m_count] + , a = V.MulXV(e, r, i.ComputeAABB_s_v1) + , o = V.MulXV(e, s, i.ComputeAABB_s_v2); + I.MinV(a, o, t.lowerBound), + I.MaxV(a, o, t.upperBound) + } + , + i.prototype.ComputeMass = function(t) { + t.mass = 0, + t.center.SetZero(), + t.I = 0 + } + , + i.prototype.SetupDistanceProxy = function(t, e) { + t.m_vertices = t.m_buffer, + t.m_vertices[0].Copy(this.m_vertices[e]), + e + 1 < this.m_count ? t.m_vertices[1].Copy(this.m_vertices[e + 1]) : t.m_vertices[1].Copy(this.m_vertices[0]), + t.m_count = 2, + t.m_radius = this.m_radius + } + , + i.prototype.ComputeSubmergedArea = function(t, e, i, n) { + return n.SetZero(), + 0 + } + , + i.prototype.Dump = function(t) { + t(" const shape: b2ChainShape = new b2ChainShape();\n"), + t(" const vs: b2Vec2[] = b2Vec2.MakeArray(%d);\n", o); + for (var e = 0; e < this.m_count; ++e) + t(" vs[%d].Set(%.15f, %.15f);\n", e, this.m_vertices[e].x, this.m_vertices[e].y); + t(" shape.CreateChain(vs, %d);\n", this.m_count), + t(" shape.m_prevVertex.Set(%.15f, %.15f);\n", this.m_prevVertex.x, this.m_prevVertex.y), + t(" shape.m_nextVertex.Set(%.15f, %.15f);\n", this.m_nextVertex.x, this.m_nextVertex.y), + t(" shape.m_hasPrevVertex = %s;\n", this.m_hasPrevVertex ? "true" : "false"), + t(" shape.m_hasNextVertex = %s;\n", this.m_hasNextVertex ? "true" : "false") + } + , + i.ComputeDistance_s_edgeShape = new ri, + i.RayCast_s_edgeShape = new ri, + i.ComputeAABB_s_v1 = new I, + i.ComputeAABB_s_v2 = new I, + i + } + )(Qe), ai = (function() { + function t() { + this.categoryBits = 1, + this.maskBits = 65535, + this.groupIndex = 0 + } + return t.prototype.Clone = function() { + return (new t).Copy(this) + } + , + t.prototype.Copy = function(t) { + return this.categoryBits = t.categoryBits, + this.maskBits = t.maskBits, + this.groupIndex = t.groupIndex || 0, + this + } + , + t.DEFAULT = new t, + t + } + )(), oi = function() { + this.userData = null, + this.friction = .2, + this.restitution = 0, + this.density = 0, + this.isSensor = !1, + this.filter = new ai + }, li = function(t) { + this.aabb = new Tt, + this.childIndex = 0, + this.fixture = t + }, hi = (function() { + function t(t, e) { + this.m_density = 0, + this.m_next = null, + this.m_friction = 0, + this.m_restitution = 0, + this.m_proxies = [], + this.m_proxyCount = 0, + this.m_filter = new ai, + this.m_isSensor = !1, + this.m_userData = null, + this.m_body = e, + this.m_shape = t.shape.Clone() + } + return t.prototype.GetType = function() { + return this.m_shape.GetType() + } + , + t.prototype.GetShape = function() { + return this.m_shape + } + , + t.prototype.SetSensor = function(t) { + t !== this.m_isSensor && (this.m_body.SetAwake(!0), + this.m_isSensor = t) + } + , + t.prototype.IsSensor = function() { + return this.m_isSensor + } + , + t.prototype.SetFilterData = function(t) { + this.m_filter.Copy(t), + this.Refilter() + } + , + t.prototype.GetFilterData = function() { + return this.m_filter + } + , + t.prototype.Refilter = function() { + for (var t = this.m_body.GetContactList(); t; ) { + var e = t.contact + , i = e.GetFixtureA() + , n = e.GetFixtureB(); + i !== this && n !== this || e.FlagForFiltering(), + t = t.next + } + var r = this.m_body.GetWorld(); + if (null !== r) + for (var s = r.m_contactManager.m_broadPhase, a = 0; a < this.m_proxyCount; ++a) + s.TouchProxy(this.m_proxies[a].treeNode) + } + , + t.prototype.GetBody = function() { + return this.m_body + } + , + t.prototype.GetNext = function() { + return this.m_next + } + , + t.prototype.GetUserData = function() { + return this.m_userData + } + , + t.prototype.SetUserData = function(t) { + this.m_userData = t + } + , + t.prototype.TestPoint = function(t) { + return this.m_shape.TestPoint(this.m_body.GetTransform(), t) + } + , + t.prototype.ComputeDistance = function(t, e, i) { + return this.m_shape.ComputeDistance(this.m_body.GetTransform(), t, e, i) + } + , + t.prototype.RayCast = function(t, e, i) { + return this.m_shape.RayCast(t, e, this.m_body.GetTransform(), i) + } + , + t.prototype.GetMassData = function(t) { + return void 0 === t && (t = new Ke), + this.m_shape.ComputeMass(t, this.m_density), + t + } + , + t.prototype.SetDensity = function(t) { + this.m_density = t + } + , + t.prototype.GetDensity = function() { + return this.m_density + } + , + t.prototype.GetFriction = function() { + return this.m_friction + } + , + t.prototype.SetFriction = function(t) { + this.m_friction = t + } + , + t.prototype.GetRestitution = function() { + return this.m_restitution + } + , + t.prototype.SetRestitution = function(t) { + this.m_restitution = t + } + , + t.prototype.GetAABB = function(t) { + return this.m_proxies[t].aabb + } + , + t.prototype.Dump = function(t, e) { + t(" const fd: b2FixtureDef = new b2FixtureDef();\n"), + t(" fd.friction = %.15f;\n", this.m_friction), + t(" fd.restitution = %.15f;\n", this.m_restitution), + t(" fd.density = %.15f;\n", this.m_density), + t(" fd.isSensor = %s;\n", this.m_isSensor ? "true" : "false"), + t(" fd.filter.categoryBits = %d;\n", this.m_filter.categoryBits), + t(" fd.filter.maskBits = %d;\n", this.m_filter.maskBits), + t(" fd.filter.groupIndex = %d;\n", this.m_filter.groupIndex), + this.m_shape.Dump(t), + t("\n"), + t(" fd.shape = shape;\n"), + t("\n"), + t(" bodies[%d].CreateFixture(fd);\n", e) + } + , + t.prototype.Create = function(t) { + var i = this; + this.m_userData = t.userData, + this.m_friction = e(t.friction, .2), + this.m_restitution = e(t.restitution, 0), + this.m_next = null, + this.m_filter.Copy(e(t.filter, ai.DEFAULT)), + this.m_isSensor = e(t.isSensor, !1), + this.m_proxies = d(this.m_shape.GetChildCount(), (function() { + return new li(i) + } + )), + this.m_proxyCount = 0, + this.m_density = e(t.density, 0) + } + , + t.prototype.Destroy = function() {} + , + t.prototype.CreateProxies = function(t) { + var e = this.m_body.m_world.m_contactManager.m_broadPhase; + this.m_proxyCount = this.m_shape.GetChildCount(); + for (var i = 0; i < this.m_proxyCount; ++i) { + var n = this.m_proxies[i] = new li(this); + this.m_shape.ComputeAABB(n.aabb, t, i), + n.treeNode = e.CreateProxy(n.aabb, n), + n.childIndex = i + } + } + , + t.prototype.DestroyProxies = function() { + for (var t = this.m_body.m_world.m_contactManager.m_broadPhase, e = 0; e < this.m_proxyCount; ++e) { + var i = this.m_proxies[e]; + delete i.treeNode.userData, + t.DestroyProxy(i.treeNode), + delete i.treeNode + } + this.m_proxyCount = 0 + } + , + t.prototype.TouchProxies = function() { + for (var t = this.m_body.m_world.m_contactManager.m_broadPhase, e = this.m_proxyCount, i = 0; i < e; ++i) + t.TouchProxy(this.m_proxies[i].treeNode) + } + , + t.prototype.Synchronize = function(e, i) { + if (0 !== this.m_proxyCount) + for (var n = this.m_body.m_world.m_contactManager.m_broadPhase, r = 0; r < this.m_proxyCount; ++r) { + var s = this.m_proxies[r] + , a = t.Synchronize_s_aabb1 + , o = t.Synchronize_s_aabb2; + this.m_shape.ComputeAABB(a, e, r), + this.m_shape.ComputeAABB(o, i, r), + s.aabb.Combine2(a, o); + var l = I.SubVV(i.p, e.p, t.Synchronize_s_displacement); + n.MoveProxy(s.treeNode, s.aabb, l) + } + } + , + t.Synchronize_s_aabb1 = new Tt, + t.Synchronize_s_aabb2 = new Tt, + t.Synchronize_s_displacement = new I, + t + } + )(); + (ei = t.b2BodyType || (t.b2BodyType = {}))[ei.b2_unknown = -1] = "b2_unknown", + ei[ei.b2_staticBody = 0] = "b2_staticBody", + ei[ei.b2_kinematicBody = 1] = "b2_kinematicBody", + ei[ei.b2_dynamicBody = 2] = "b2_dynamicBody"; + var ci, ui, _i = (function() { + function i(i, n) { + this.m_type = t.b2BodyType.b2_staticBody, + this.m_islandFlag = !1, + this.m_awakeFlag = !1, + this.m_autoSleepFlag = !1, + this.m_bulletFlag = !1, + this.m_fixedRotationFlag = !1, + this.m_activeFlag = !1, + this.m_toiFlag = !1, + this.m_islandIndex = 0, + this.m_xf = new V, + this.m_xf0 = new V, + this.m_sweep = new N, + this.m_linearVelocity = new I, + this.m_angularVelocity = 0, + this.m_force = new I, + this.m_torque = 0, + this.m_prev = null, + this.m_next = null, + this.m_fixtureList = null, + this.m_fixtureCount = 0, + this.m_jointList = null, + this.m_contactList = null, + this.m_mass = 1, + this.m_invMass = 1, + this.m_I = 0, + this.m_invI = 0, + this.m_linearDamping = 0, + this.m_angularDamping = 0, + this.m_gravityScale = 1, + this.m_sleepTime = 0, + this.m_userData = null, + this.m_controllerList = null, + this.m_controllerCount = 0, + this.m_bulletFlag = e(i.bullet, !1), + this.m_fixedRotationFlag = e(i.fixedRotation, !1), + this.m_autoSleepFlag = e(i.allowSleep, !0), + this.m_awakeFlag = e(i.awake, !0), + this.m_activeFlag = e(i.active, !0), + this.m_world = n, + this.m_xf.p.Copy(e(i.position, I.ZERO)), + this.m_xf.q.SetAngle(e(i.angle, 0)), + this.m_xf0.Copy(this.m_xf), + this.m_sweep.localCenter.SetZero(), + this.m_sweep.c0.Copy(this.m_xf.p), + this.m_sweep.c.Copy(this.m_xf.p), + this.m_sweep.a0 = this.m_sweep.a = this.m_xf.q.GetAngle(), + this.m_sweep.alpha0 = 0, + this.m_linearVelocity.Copy(e(i.linearVelocity, I.ZERO)), + this.m_angularVelocity = e(i.angularVelocity, 0), + this.m_linearDamping = e(i.linearDamping, 0), + this.m_angularDamping = e(i.angularDamping, 0), + this.m_gravityScale = e(i.gravityScale, 1), + this.m_force.SetZero(), + this.m_torque = 0, + this.m_sleepTime = 0, + this.m_type = e(i.type, t.b2BodyType.b2_staticBody), + i.type === t.b2BodyType.b2_dynamicBody ? (this.m_mass = 1, + this.m_invMass = 1) : (this.m_mass = 0, + this.m_invMass = 0), + this.m_I = 0, + this.m_invI = 0, + this.m_userData = i.userData, + this.m_fixtureList = null, + this.m_fixtureCount = 0, + this.m_controllerList = null, + this.m_controllerCount = 0 + } + return i.prototype.CreateFixture = function(t, e) { + return void 0 === e && (e = 0), + t instanceof Qe ? this.CreateFixtureShapeDensity(t, e) : this.CreateFixtureDef(t) + } + , + i.prototype.CreateFixtureDef = function(t) { + if (this.m_world.IsLocked()) + throw new Error; + var e = new hi(t,this); + return e.Create(t), + this.m_activeFlag && e.CreateProxies(this.m_xf), + e.m_next = this.m_fixtureList, + this.m_fixtureList = e, + ++this.m_fixtureCount, + e.m_density > 0 && this.ResetMassData(), + this.m_world.m_newFixture = !0, + e + } + , + i.prototype.CreateFixtureShapeDensity = function(t, e) { + void 0 === e && (e = 0); + var n = i.CreateFixtureShapeDensity_s_def; + return n.shape = t, + n.density = e, + this.CreateFixtureDef(n) + } + , + i.prototype.DestroyFixture = function(t) { + if (this.m_world.IsLocked()) + throw new Error; + for (var e = this.m_fixtureList, i = null; null !== e; ) { + if (e === t) { + i ? i.m_next = t.m_next : this.m_fixtureList = t.m_next; + break + } + i = e, + e = e.m_next + } + for (var n = this.m_contactList; n; ) { + var r = n.contact; + n = n.next; + var s = r.GetFixtureA() + , a = r.GetFixtureB(); + t !== s && t !== a || this.m_world.m_contactManager.Destroy(r) + } + this.m_activeFlag && t.DestroyProxies(), + t.m_next = null, + t.Destroy(), + --this.m_fixtureCount, + this.ResetMassData() + } + , + i.prototype.SetTransformVec = function(t, e) { + this.SetTransformXY(t.x, t.y, e) + } + , + i.prototype.SetTransformXY = function(t, e, i) { + if (this.m_world.IsLocked()) + throw new Error; + this.m_xf.q.SetAngle(i), + this.m_xf.p.Set(t, e), + this.m_xf0.Copy(this.m_xf), + V.MulXV(this.m_xf, this.m_sweep.localCenter, this.m_sweep.c), + this.m_sweep.a = i, + this.m_sweep.c0.Copy(this.m_sweep.c), + this.m_sweep.a0 = i; + for (var n = this.m_fixtureList; n; n = n.m_next) + n.Synchronize(this.m_xf, this.m_xf); + this.m_world.m_contactManager.FindNewContacts() + } + , + i.prototype.SetTransform = function(t) { + this.SetTransformVec(t.p, t.GetAngle()) + } + , + i.prototype.GetTransform = function() { + return this.m_xf + } + , + i.prototype.GetPosition = function() { + return this.m_xf.p + } + , + i.prototype.SetPosition = function(t) { + this.SetTransformVec(t, this.GetAngle()) + } + , + i.prototype.SetPositionXY = function(t, e) { + this.SetTransformXY(t, e, this.GetAngle()) + } + , + i.prototype.GetAngle = function() { + return this.m_sweep.a + } + , + i.prototype.SetAngle = function(t) { + this.SetTransformVec(this.GetPosition(), t) + } + , + i.prototype.GetWorldCenter = function() { + return this.m_sweep.c + } + , + i.prototype.GetLocalCenter = function() { + return this.m_sweep.localCenter + } + , + i.prototype.SetLinearVelocity = function(e) { + this.m_type !== t.b2BodyType.b2_staticBody && (I.DotVV(e, e) > 0 && this.SetAwake(!0), + this.m_linearVelocity.Copy(e)) + } + , + i.prototype.GetLinearVelocity = function() { + return this.m_linearVelocity + } + , + i.prototype.SetAngularVelocity = function(e) { + this.m_type !== t.b2BodyType.b2_staticBody && (e * e > 0 && this.SetAwake(!0), + this.m_angularVelocity = e) + } + , + i.prototype.GetAngularVelocity = function() { + return this.m_angularVelocity + } + , + i.prototype.GetDefinition = function(t) { + return t.type = this.GetType(), + t.allowSleep = this.m_autoSleepFlag, + t.angle = this.GetAngle(), + t.angularDamping = this.m_angularDamping, + t.gravityScale = this.m_gravityScale, + t.angularVelocity = this.m_angularVelocity, + t.fixedRotation = this.m_fixedRotationFlag, + t.bullet = this.m_bulletFlag, + t.awake = this.m_awakeFlag, + t.linearDamping = this.m_linearDamping, + t.linearVelocity.Copy(this.GetLinearVelocity()), + t.position.Copy(this.GetPosition()), + t.userData = this.GetUserData(), + t + } + , + i.prototype.ApplyForce = function(e, i, n) { + void 0 === n && (n = !0), + this.m_type === t.b2BodyType.b2_dynamicBody && (n && !this.m_awakeFlag && this.SetAwake(!0), + this.m_awakeFlag && (this.m_force.x += e.x, + this.m_force.y += e.y, + this.m_torque += (i.x - this.m_sweep.c.x) * e.y - (i.y - this.m_sweep.c.y) * e.x)) + } + , + i.prototype.ApplyForceToCenter = function(e, i) { + void 0 === i && (i = !0), + this.m_type === t.b2BodyType.b2_dynamicBody && (i && !this.m_awakeFlag && this.SetAwake(!0), + this.m_awakeFlag && (this.m_force.x += e.x, + this.m_force.y += e.y)) + } + , + i.prototype.ApplyTorque = function(e, i) { + void 0 === i && (i = !0), + this.m_type === t.b2BodyType.b2_dynamicBody && (i && !this.m_awakeFlag && this.SetAwake(!0), + this.m_awakeFlag && (this.m_torque += e)) + } + , + i.prototype.ApplyLinearImpulse = function(e, i, n) { + void 0 === n && (n = !0), + this.m_type === t.b2BodyType.b2_dynamicBody && (n && !this.m_awakeFlag && this.SetAwake(!0), + this.m_awakeFlag && (this.m_linearVelocity.x += this.m_invMass * e.x, + this.m_linearVelocity.y += this.m_invMass * e.y, + this.m_angularVelocity += this.m_invI * ((i.x - this.m_sweep.c.x) * e.y - (i.y - this.m_sweep.c.y) * e.x))) + } + , + i.prototype.ApplyLinearImpulseToCenter = function(e, i) { + void 0 === i && (i = !0), + this.m_type === t.b2BodyType.b2_dynamicBody && (i && !this.m_awakeFlag && this.SetAwake(!0), + this.m_awakeFlag && (this.m_linearVelocity.x += this.m_invMass * e.x, + this.m_linearVelocity.y += this.m_invMass * e.y)) + } + , + i.prototype.ApplyAngularImpulse = function(e, i) { + void 0 === i && (i = !0), + this.m_type === t.b2BodyType.b2_dynamicBody && (i && !this.m_awakeFlag && this.SetAwake(!0), + this.m_awakeFlag && (this.m_angularVelocity += this.m_invI * e)) + } + , + i.prototype.GetMass = function() { + return this.m_mass + } + , + i.prototype.GetInertia = function() { + return this.m_I + this.m_mass * I.DotVV(this.m_sweep.localCenter, this.m_sweep.localCenter) + } + , + i.prototype.GetMassData = function(t) { + return t.mass = this.m_mass, + t.I = this.m_I + this.m_mass * I.DotVV(this.m_sweep.localCenter, this.m_sweep.localCenter), + t.center.Copy(this.m_sweep.localCenter), + t + } + , + i.prototype.SetMassData = function(e) { + if (this.m_world.IsLocked()) + throw new Error; + if (this.m_type === t.b2BodyType.b2_dynamicBody) { + this.m_invMass = 0, + this.m_I = 0, + this.m_invI = 0, + this.m_mass = e.mass, + this.m_mass <= 0 && (this.m_mass = 1), + this.m_invMass = 1 / this.m_mass, + e.I > 0 && !this.m_fixedRotationFlag && (this.m_I = e.I - this.m_mass * I.DotVV(e.center, e.center), + this.m_invI = 1 / this.m_I); + var n = i.SetMassData_s_oldCenter.Copy(this.m_sweep.c); + this.m_sweep.localCenter.Copy(e.center), + V.MulXV(this.m_xf, this.m_sweep.localCenter, this.m_sweep.c), + this.m_sweep.c0.Copy(this.m_sweep.c), + I.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, I.SubVV(this.m_sweep.c, n, I.s_t0), this.m_linearVelocity) + } + } + , + i.prototype.ResetMassData = function() { + if (this.m_mass = 0, + this.m_invMass = 0, + this.m_I = 0, + this.m_invI = 0, + this.m_sweep.localCenter.SetZero(), + this.m_type === t.b2BodyType.b2_staticBody || this.m_type === t.b2BodyType.b2_kinematicBody) + return this.m_sweep.c0.Copy(this.m_xf.p), + this.m_sweep.c.Copy(this.m_xf.p), + void (this.m_sweep.a0 = this.m_sweep.a); + for (var e = i.ResetMassData_s_localCenter.SetZero(), n = this.m_fixtureList; n; n = n.m_next) + if (0 !== n.m_density) { + var r = n.GetMassData(i.ResetMassData_s_massData); + this.m_mass += r.mass, + e.x += r.center.x * r.mass, + e.y += r.center.y * r.mass, + this.m_I += r.I + } + this.m_mass > 0 ? (this.m_invMass = 1 / this.m_mass, + e.x *= this.m_invMass, + e.y *= this.m_invMass) : (this.m_mass = 1, + this.m_invMass = 1), + this.m_I > 0 && !this.m_fixedRotationFlag ? (this.m_I -= this.m_mass * I.DotVV(e, e), + this.m_invI = 1 / this.m_I) : (this.m_I = 0, + this.m_invI = 0); + var s = i.ResetMassData_s_oldCenter.Copy(this.m_sweep.c); + this.m_sweep.localCenter.Copy(e), + V.MulXV(this.m_xf, this.m_sweep.localCenter, this.m_sweep.c), + this.m_sweep.c0.Copy(this.m_sweep.c), + I.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, I.SubVV(this.m_sweep.c, s, I.s_t0), this.m_linearVelocity) + } + , + i.prototype.GetWorldPoint = function(t, e) { + return V.MulXV(this.m_xf, t, e) + } + , + i.prototype.GetWorldVector = function(t, e) { + return F.MulRV(this.m_xf.q, t, e) + } + , + i.prototype.GetLocalPoint = function(t, e) { + return V.MulTXV(this.m_xf, t, e) + } + , + i.prototype.GetLocalVector = function(t, e) { + return F.MulTRV(this.m_xf.q, t, e) + } + , + i.prototype.GetLinearVelocityFromWorldPoint = function(t, e) { + return I.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, I.SubVV(t, this.m_sweep.c, I.s_t0), e) + } + , + i.prototype.GetLinearVelocityFromLocalPoint = function(t, e) { + return this.GetLinearVelocityFromWorldPoint(this.GetWorldPoint(t, e), e) + } + , + i.prototype.GetLinearDamping = function() { + return this.m_linearDamping + } + , + i.prototype.SetLinearDamping = function(t) { + this.m_linearDamping = t + } + , + i.prototype.GetAngularDamping = function() { + return this.m_angularDamping + } + , + i.prototype.SetAngularDamping = function(t) { + this.m_angularDamping = t + } + , + i.prototype.GetGravityScale = function() { + return this.m_gravityScale + } + , + i.prototype.SetGravityScale = function(t) { + this.m_gravityScale = t + } + , + i.prototype.SetType = function(e) { + if (this.m_world.IsLocked()) + throw new Error; + if (this.m_type !== e) { + this.m_type = e, + this.ResetMassData(), + this.m_type === t.b2BodyType.b2_staticBody && (this.m_linearVelocity.SetZero(), + this.m_angularVelocity = 0, + this.m_sweep.a0 = this.m_sweep.a, + this.m_sweep.c0.Copy(this.m_sweep.c), + this.SynchronizeFixtures()), + this.SetAwake(!0), + this.m_force.SetZero(), + this.m_torque = 0; + for (var i = this.m_contactList; i; ) { + var n = i; + i = i.next, + this.m_world.m_contactManager.Destroy(n.contact) + } + this.m_contactList = null; + for (var r = this.m_fixtureList; r; r = r.m_next) + r.TouchProxies() + } + } + , + i.prototype.GetType = function() { + return this.m_type + } + , + i.prototype.SetBullet = function(t) { + this.m_bulletFlag = t + } + , + i.prototype.IsBullet = function() { + return this.m_bulletFlag + } + , + i.prototype.SetSleepingAllowed = function(t) { + this.m_autoSleepFlag = t, + t || this.SetAwake(!0) + } + , + i.prototype.IsSleepingAllowed = function() { + return this.m_autoSleepFlag + } + , + i.prototype.SetAwake = function(t) { + t ? (this.m_awakeFlag = !0, + this.m_sleepTime = 0) : (this.m_awakeFlag = !1, + this.m_sleepTime = 0, + this.m_linearVelocity.SetZero(), + this.m_angularVelocity = 0, + this.m_force.SetZero(), + this.m_torque = 0) + } + , + i.prototype.IsAwake = function() { + return this.m_awakeFlag + } + , + i.prototype.SetActive = function(t) { + if (this.m_world.IsLocked()) + throw new Error; + if (t !== this.IsActive()) + if (this.m_activeFlag = t, + t) + for (var e = this.m_fixtureList; e; e = e.m_next) + e.CreateProxies(this.m_xf); + else { + for (e = this.m_fixtureList; e; e = e.m_next) + e.DestroyProxies(); + for (var i = this.m_contactList; i; ) { + var n = i; + i = i.next, + this.m_world.m_contactManager.Destroy(n.contact) + } + this.m_contactList = null + } + } + , + i.prototype.IsActive = function() { + return this.m_activeFlag + } + , + i.prototype.SetFixedRotation = function(t) { + this.m_fixedRotationFlag !== t && (this.m_fixedRotationFlag = t, + this.m_angularVelocity = 0, + this.ResetMassData()) + } + , + i.prototype.IsFixedRotation = function() { + return this.m_fixedRotationFlag + } + , + i.prototype.GetFixtureList = function() { + return this.m_fixtureList + } + , + i.prototype.GetJointList = function() { + return this.m_jointList + } + , + i.prototype.GetContactList = function() { + return this.m_contactList + } + , + i.prototype.GetNext = function() { + return this.m_next + } + , + i.prototype.GetUserData = function() { + return this.m_userData + } + , + i.prototype.SetUserData = function(t) { + this.m_userData = t + } + , + i.prototype.GetWorld = function() { + return this.m_world + } + , + i.prototype.Dump = function(e) { + var i = this.m_islandIndex; + e("{\n"), + e(" const bd: b2BodyDef = new b2BodyDef();\n"); + var n = ""; + switch (this.m_type) { + case t.b2BodyType.b2_staticBody: + n = "b2BodyType.b2_staticBody"; + break; + case t.b2BodyType.b2_kinematicBody: + n = "b2BodyType.b2_kinematicBody"; + break; + case t.b2BodyType.b2_dynamicBody: + n = "b2BodyType.b2_dynamicBody" + } + e(" bd.type = %s;\n", n), + e(" bd.position.Set(%.15f, %.15f);\n", this.m_xf.p.x, this.m_xf.p.y), + e(" bd.angle = %.15f;\n", this.m_sweep.a), + e(" bd.linearVelocity.Set(%.15f, %.15f);\n", this.m_linearVelocity.x, this.m_linearVelocity.y), + e(" bd.angularVelocity = %.15f;\n", this.m_angularVelocity), + e(" bd.linearDamping = %.15f;\n", this.m_linearDamping), + e(" bd.angularDamping = %.15f;\n", this.m_angularDamping), + e(" bd.allowSleep = %s;\n", this.m_autoSleepFlag ? "true" : "false"), + e(" bd.awake = %s;\n", this.m_awakeFlag ? "true" : "false"), + e(" bd.fixedRotation = %s;\n", this.m_fixedRotationFlag ? "true" : "false"), + e(" bd.bullet = %s;\n", this.m_bulletFlag ? "true" : "false"), + e(" bd.active = %s;\n", this.m_activeFlag ? "true" : "false"), + e(" bd.gravityScale = %.15f;\n", this.m_gravityScale), + e("\n"), + e(" bodies[%d] = this.m_world.CreateBody(bd);\n", this.m_islandIndex), + e("\n"); + for (var r = this.m_fixtureList; r; r = r.m_next) + e(" {\n"), + r.Dump(e, i), + e(" }\n"); + e("}\n") + } + , + i.prototype.SynchronizeFixtures = function() { + var t = i.SynchronizeFixtures_s_xf1; + t.q.SetAngle(this.m_sweep.a0), + F.MulRV(t.q, this.m_sweep.localCenter, t.p), + I.SubVV(this.m_sweep.c0, t.p, t.p); + for (var e = this.m_fixtureList; e; e = e.m_next) + e.Synchronize(t, this.m_xf) + } + , + i.prototype.SynchronizeTransform = function() { + this.m_xf.q.SetAngle(this.m_sweep.a), + F.MulRV(this.m_xf.q, this.m_sweep.localCenter, this.m_xf.p), + I.SubVV(this.m_sweep.c, this.m_xf.p, this.m_xf.p) + } + , + i.prototype.ShouldCollide = function(e) { + return (this.m_type !== t.b2BodyType.b2_staticBody || e.m_type !== t.b2BodyType.b2_staticBody) && this.ShouldCollideConnected(e) + } + , + i.prototype.ShouldCollideConnected = function(t) { + for (var e = this.m_jointList; e; e = e.next) + if (e.other === t && !e.joint.m_collideConnected) + return !1; + return !0 + } + , + i.prototype.Advance = function(t) { + this.m_sweep.Advance(t), + this.m_sweep.c.Copy(this.m_sweep.c0), + this.m_sweep.a = this.m_sweep.a0, + this.m_xf.q.SetAngle(this.m_sweep.a), + F.MulRV(this.m_xf.q, this.m_sweep.localCenter, this.m_xf.p), + I.SubVV(this.m_sweep.c, this.m_xf.p, this.m_xf.p) + } + , + i.prototype.GetControllerList = function() { + return this.m_controllerList + } + , + i.prototype.GetControllerCount = function() { + return this.m_controllerCount + } + , + i.CreateFixtureShapeDensity_s_def = new oi, + i.SetMassData_s_oldCenter = new I, + i.ResetMassData_s_localCenter = new I, + i.ResetMassData_s_oldCenter = new I, + i.ResetMassData_s_massData = new Ke, + i.SynchronizeFixtures_s_xf1 = new V, + i + } + )(); + (ci = t.b2JointType || (t.b2JointType = {}))[ci.e_unknownJoint = 0] = "e_unknownJoint", + ci[ci.e_revoluteJoint = 1] = "e_revoluteJoint", + ci[ci.e_prismaticJoint = 2] = "e_prismaticJoint", + ci[ci.e_distanceJoint = 3] = "e_distanceJoint", + ci[ci.e_pulleyJoint = 4] = "e_pulleyJoint", + ci[ci.e_mouseJoint = 5] = "e_mouseJoint", + ci[ci.e_gearJoint = 6] = "e_gearJoint", + ci[ci.e_wheelJoint = 7] = "e_wheelJoint", + ci[ci.e_weldJoint = 8] = "e_weldJoint", + ci[ci.e_frictionJoint = 9] = "e_frictionJoint", + ci[ci.e_ropeJoint = 10] = "e_ropeJoint", + ci[ci.e_motorJoint = 11] = "e_motorJoint", + ci[ci.e_areaJoint = 12] = "e_areaJoint", + (ui = t.b2LimitState || (t.b2LimitState = {}))[ui.e_inactiveLimit = 0] = "e_inactiveLimit", + ui[ui.e_atLowerLimit = 1] = "e_atLowerLimit", + ui[ui.e_atUpperLimit = 2] = "e_atUpperLimit", + ui[ui.e_equalLimits = 3] = "e_equalLimits"; + var fi = (function() { + function t() { + this.linear = new I, + this.angularA = 0, + this.angularB = 0 + } + return t.prototype.SetZero = function() { + return this.linear.SetZero(), + this.angularA = 0, + this.angularB = 0, + this + } + , + t.prototype.Set = function(t, e, i) { + return this.linear.Copy(t), + this.angularA = e, + this.angularB = i, + this + } + , + t + } + )() + , di = function(t, e) { + this.prev = null, + this.next = null, + this.joint = t, + this.other = e + } + , pi = function(e) { + this.type = t.b2JointType.e_unknownJoint, + this.userData = null, + this.collideConnected = !1, + this.type = e + } + , mi = (function() { + function i(i) { + this.m_type = t.b2JointType.e_unknownJoint, + this.m_prev = null, + this.m_next = null, + this.m_index = 0, + this.m_islandFlag = !1, + this.m_collideConnected = !1, + this.m_userData = null, + this.m_type = i.type, + this.m_edgeA = new di(this,i.bodyB), + this.m_edgeB = new di(this,i.bodyA), + this.m_bodyA = i.bodyA, + this.m_bodyB = i.bodyB, + this.m_collideConnected = e(i.collideConnected, !1), + this.m_userData = i.userData + } + return i.prototype.GetType = function() { + return this.m_type + } + , + i.prototype.GetBodyA = function() { + return this.m_bodyA + } + , + i.prototype.GetBodyB = function() { + return this.m_bodyB + } + , + i.prototype.GetNext = function() { + return this.m_next + } + , + i.prototype.GetUserData = function() { + return this.m_userData + } + , + i.prototype.SetUserData = function(t) { + this.m_userData = t + } + , + i.prototype.IsActive = function() { + return this.m_bodyA.IsActive() && this.m_bodyB.IsActive() + } + , + i.prototype.GetCollideConnected = function() { + return this.m_collideConnected + } + , + i.prototype.Dump = function(t) { + t("// Dump is not supported for this joint type.\n") + } + , + i.prototype.ShiftOrigin = function() {} + , + i + } + )() + , yi = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_distanceJoint) || this; + return i.localAnchorA = new I, + i.localAnchorB = new I, + i.length = 1, + i.frequencyHz = 0, + i.dampingRatio = 0, + i + } + return ti(i, e), + i.prototype.Initialize = function(t, e, i, n) { + this.bodyA = t, + this.bodyB = e, + this.bodyA.GetLocalPoint(i, this.localAnchorA), + this.bodyB.GetLocalPoint(n, this.localAnchorB), + this.length = I.DistanceVV(i, n), + this.frequencyHz = 0, + this.dampingRatio = 0 + } + , + i + } + )(pi) + , vi = (function(t) { + function i(i) { + var n = t.call(this, i) || this; + return n.m_frequencyHz = 0, + n.m_dampingRatio = 0, + n.m_bias = 0, + n.m_localAnchorA = new I, + n.m_localAnchorB = new I, + n.m_gamma = 0, + n.m_impulse = 0, + n.m_length = 0, + n.m_indexA = 0, + n.m_indexB = 0, + n.m_u = new I, + n.m_rA = new I, + n.m_rB = new I, + n.m_localCenterA = new I, + n.m_localCenterB = new I, + n.m_invMassA = 0, + n.m_invMassB = 0, + n.m_invIA = 0, + n.m_invIB = 0, + n.m_mass = 0, + n.m_qA = new F, + n.m_qB = new F, + n.m_lalcA = new I, + n.m_lalcB = new I, + n.m_frequencyHz = e(i.frequencyHz, 0), + n.m_dampingRatio = e(i.dampingRatio, 0), + n.m_localAnchorA.Copy(i.localAnchorA), + n.m_localAnchorB.Copy(i.localAnchorB), + n.m_length = i.length, + n + } + return ti(i, t), + i.prototype.GetAnchorA = function(t) { + return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t) + } + , + i.prototype.GetAnchorB = function(t) { + return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t) + } + , + i.prototype.GetReactionForce = function(t, e) { + return e.x = t * this.m_impulse * this.m_u.x, + e.y = t * this.m_impulse * this.m_u.y, + e + } + , + i.prototype.GetReactionTorque = function() { + return 0 + } + , + i.prototype.GetLocalAnchorA = function() { + return this.m_localAnchorA + } + , + i.prototype.GetLocalAnchorB = function() { + return this.m_localAnchorB + } + , + i.prototype.SetLength = function(t) { + this.m_length = t + } + , + i.prototype.Length = function() { + return this.m_length + } + , + i.prototype.SetFrequency = function(t) { + this.m_frequencyHz = t + } + , + i.prototype.GetFrequency = function() { + return this.m_frequencyHz + } + , + i.prototype.SetDampingRatio = function(t) { + this.m_dampingRatio = t + } + , + i.prototype.GetDampingRatio = function() { + return this.m_dampingRatio + } + , + i.prototype.Dump = function(t) { + var e = this.m_bodyA.m_islandIndex + , i = this.m_bodyB.m_islandIndex; + t(" const jd: b2DistanceJointDef = new b2DistanceJointDef();\n"), + t(" jd.bodyA = bodies[%d];\n", e), + t(" jd.bodyB = bodies[%d];\n", i), + t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"), + t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y), + t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y), + t(" jd.length = %.15f;\n", this.m_length), + t(" jd.frequencyHz = %.15f;\n", this.m_frequencyHz), + t(" jd.dampingRatio = %.15f;\n", this.m_dampingRatio), + t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index) + } + , + i.prototype.InitVelocityConstraints = function(t) { + this.m_indexA = this.m_bodyA.m_islandIndex, + this.m_indexB = this.m_bodyB.m_islandIndex, + this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter), + this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter), + this.m_invMassA = this.m_bodyA.m_invMass, + this.m_invMassB = this.m_bodyB.m_invMass, + this.m_invIA = this.m_bodyA.m_invI, + this.m_invIB = this.m_bodyB.m_invI; + var e = t.positions[this.m_indexA].c + , n = t.positions[this.m_indexA].a + , r = t.velocities[this.m_indexA].v + , a = t.velocities[this.m_indexA].w + , o = t.positions[this.m_indexB].c + , h = t.positions[this.m_indexB].a + , c = t.velocities[this.m_indexB].v + , u = t.velocities[this.m_indexB].w + , _ = this.m_qA.SetAngle(n) + , f = this.m_qB.SetAngle(h); + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA), + F.MulRV(_, this.m_lalcA, this.m_rA), + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB), + F.MulRV(f, this.m_lalcB, this.m_rB), + this.m_u.x = o.x + this.m_rB.x - e.x - this.m_rA.x, + this.m_u.y = o.y + this.m_rB.y - e.y - this.m_rA.y; + var d = this.m_u.Length(); + d > l ? this.m_u.SelfMul(1 / d) : this.m_u.SetZero(); + var p = I.CrossVV(this.m_rA, this.m_u) + , m = I.CrossVV(this.m_rB, this.m_u) + , y = this.m_invMassA + this.m_invIA * p * p + this.m_invMassB + this.m_invIB * m * m; + if (this.m_mass = 0 !== y ? 1 / y : 0, + this.m_frequencyHz > 0) { + var v = d - this.m_length + , g = 2 * s * this.m_frequencyHz + , A = 2 * this.m_mass * this.m_dampingRatio * g + , x = this.m_mass * g * g + , b = t.step.dt; + this.m_gamma = b * (A + b * x), + this.m_gamma = 0 !== this.m_gamma ? 1 / this.m_gamma : 0, + this.m_bias = v * b * x * this.m_gamma, + y += this.m_gamma, + this.m_mass = 0 !== y ? 1 / y : 0 + } else + this.m_gamma = 0, + this.m_bias = 0; + if (t.step.warmStarting) { + this.m_impulse *= t.step.dtRatio; + var C = I.MulSV(this.m_impulse, this.m_u, i.InitVelocityConstraints_s_P); + r.SelfMulSub(this.m_invMassA, C), + a -= this.m_invIA * I.CrossVV(this.m_rA, C), + c.SelfMulAdd(this.m_invMassB, C), + u += this.m_invIB * I.CrossVV(this.m_rB, C) + } else + this.m_impulse = 0; + t.velocities[this.m_indexA].w = a, + t.velocities[this.m_indexB].w = u + } + , + i.prototype.SolveVelocityConstraints = function(t) { + var e = t.velocities[this.m_indexA].v + , n = t.velocities[this.m_indexA].w + , r = t.velocities[this.m_indexB].v + , s = t.velocities[this.m_indexB].w + , a = I.AddVCrossSV(e, n, this.m_rA, i.SolveVelocityConstraints_s_vpA) + , o = I.AddVCrossSV(r, s, this.m_rB, i.SolveVelocityConstraints_s_vpB) + , l = I.DotVV(this.m_u, I.SubVV(o, a, I.s_t0)) + , h = -this.m_mass * (l + this.m_bias + this.m_gamma * this.m_impulse); + this.m_impulse += h; + var c = I.MulSV(h, this.m_u, i.SolveVelocityConstraints_s_P); + e.SelfMulSub(this.m_invMassA, c), + n -= this.m_invIA * I.CrossVV(this.m_rA, c), + r.SelfMulAdd(this.m_invMassB, c), + s += this.m_invIB * I.CrossVV(this.m_rB, c), + t.velocities[this.m_indexA].w = n, + t.velocities[this.m_indexB].w = s + } + , + i.prototype.SolvePositionConstraints = function(t) { + if (this.m_frequencyHz > 0) + return !0; + var e = t.positions[this.m_indexA].c + , n = t.positions[this.m_indexA].a + , r = t.positions[this.m_indexB].c + , s = t.positions[this.m_indexB].a + , a = this.m_qA.SetAngle(n) + , o = this.m_qB.SetAngle(s) + , h = F.MulRV(a, this.m_lalcA, this.m_rA) + , c = F.MulRV(o, this.m_lalcB, this.m_rB) + , u = this.m_u; + u.x = r.x + c.x - e.x - h.x, + u.y = r.y + c.y - e.y - h.y; + var _ = this.m_u.Normalize() - this.m_length; + _ = g(_, -.2, .2); + var f = -this.m_mass * _ + , d = I.MulSV(f, u, i.SolvePositionConstraints_s_P); + return e.SelfMulSub(this.m_invMassA, d), + n -= this.m_invIA * I.CrossVV(h, d), + r.SelfMulAdd(this.m_invMassB, d), + s += this.m_invIB * I.CrossVV(c, d), + t.positions[this.m_indexA].a = n, + t.positions[this.m_indexB].a = s, + m(_) < l + } + , + i.InitVelocityConstraints_s_P = new I, + i.SolveVelocityConstraints_s_vpA = new I, + i.SolveVelocityConstraints_s_vpB = new I, + i.SolveVelocityConstraints_s_P = new I, + i.SolvePositionConstraints_s_P = new I, + i + } + )(mi) + , gi = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_areaJoint) || this; + return i.bodies = [], + i.frequencyHz = 0, + i.dampingRatio = 0, + i + } + return ti(i, e), + i.prototype.AddBody = function(t) { + this.bodies.push(t), + 1 === this.bodies.length ? this.bodyA = t : 2 === this.bodies.length && (this.bodyB = t) + } + , + i + } + )(pi) + , Ai = (function(t) { + function i(i) { + var n = t.call(this, i) || this; + n.m_frequencyHz = 0, + n.m_dampingRatio = 0, + n.m_impulse = 0, + n.m_targetArea = 0, + n.m_bodies = i.bodies, + n.m_frequencyHz = e(i.frequencyHz, 0), + n.m_dampingRatio = e(i.dampingRatio, 0), + n.m_targetLengths = p(i.bodies.length), + n.m_normals = I.MakeArray(i.bodies.length), + n.m_joints = [], + n.m_deltas = I.MakeArray(i.bodies.length), + n.m_delta = new I; + var r = new yi; + r.frequencyHz = n.m_frequencyHz, + r.dampingRatio = n.m_dampingRatio, + n.m_targetArea = 0; + for (var s = 0; s < n.m_bodies.length; ++s) { + var a = n.m_bodies[s] + , o = n.m_bodies[(s + 1) % n.m_bodies.length] + , l = a.GetWorldCenter() + , h = o.GetWorldCenter(); + n.m_targetLengths[s] = I.DistanceVV(l, h), + n.m_targetArea += I.CrossVV(l, h), + r.Initialize(a, o, l, h), + n.m_joints[s] = a.GetWorld().CreateJoint(r) + } + return n.m_targetArea *= .5, + n + } + return ti(i, t), + i.prototype.GetAnchorA = function(t) { + return t + } + , + i.prototype.GetAnchorB = function(t) { + return t + } + , + i.prototype.GetReactionForce = function(t, e) { + return e + } + , + i.prototype.GetReactionTorque = function() { + return 0 + } + , + i.prototype.SetFrequency = function(t) { + this.m_frequencyHz = t; + for (var e = 0; e < this.m_joints.length; ++e) + this.m_joints[e].SetFrequency(t) + } + , + i.prototype.GetFrequency = function() { + return this.m_frequencyHz + } + , + i.prototype.SetDampingRatio = function(t) { + this.m_dampingRatio = t; + for (var e = 0; e < this.m_joints.length; ++e) + this.m_joints[e].SetDampingRatio(t) + } + , + i.prototype.GetDampingRatio = function() { + return this.m_dampingRatio + } + , + i.prototype.Dump = function(t) { + t("Area joint dumping is not supported.\n") + } + , + i.prototype.InitVelocityConstraints = function(t) { + for (var e = 0; e < this.m_bodies.length; ++e) { + var i = this.m_bodies[(e + this.m_bodies.length - 1) % this.m_bodies.length] + , n = this.m_bodies[(e + 1) % this.m_bodies.length] + , r = t.positions[i.m_islandIndex].c + , s = t.positions[n.m_islandIndex].c + , a = this.m_deltas[e]; + I.SubVV(s, r, a) + } + if (t.step.warmStarting) + for (this.m_impulse *= t.step.dtRatio, + e = 0; e < this.m_bodies.length; ++e) { + var o = this.m_bodies[e] + , l = t.velocities[o.m_islandIndex].v; + a = this.m_deltas[e], + l.x += o.m_invMass * a.y * .5 * this.m_impulse, + l.y += o.m_invMass * -a.x * .5 * this.m_impulse + } + else + this.m_impulse = 0 + } + , + i.prototype.SolveVelocityConstraints = function(t) { + for (var e = 0, i = 0, n = 0; n < this.m_bodies.length; ++n) { + var r = this.m_bodies[n] + , s = t.velocities[r.m_islandIndex].v; + e += (o = this.m_deltas[n]).LengthSquared() / r.GetMass(), + i += I.CrossVV(s, o) + } + var a = -2 * i / e; + for (this.m_impulse += a, + n = 0; n < this.m_bodies.length; ++n) { + r = this.m_bodies[n], + s = t.velocities[r.m_islandIndex].v; + var o = this.m_deltas[n]; + s.x += r.m_invMass * o.y * .5 * a, + s.y += r.m_invMass * -o.x * .5 * a + } + } + , + i.prototype.SolvePositionConstraints = function(t) { + for (var e = 0, i = 0, r = 0; r < this.m_bodies.length; ++r) { + var s = this.m_bodies[r] + , a = this.m_bodies[(r + 1) % this.m_bodies.length] + , o = t.positions[s.m_islandIndex].c + , h = t.positions[a.m_islandIndex].c + , c = (f = I.SubVV(h, o, this.m_delta)).Length(); + c < n && (c = 1), + this.m_normals[r].x = f.y / c, + this.m_normals[r].y = -f.x / c, + e += c, + i += I.CrossVV(o, h) + } + i *= .5; + var u = .5 * (this.m_targetArea - i) / e + , _ = !0; + for (r = 0; r < this.m_bodies.length; ++r) { + s = this.m_bodies[r], + o = t.positions[s.m_islandIndex].c; + var f, d = (r + 1) % this.m_bodies.length; + (f = I.AddVV(this.m_normals[r], this.m_normals[d], this.m_delta)).SelfMul(u); + var p = f.LengthSquared(); + p > x(.2) && f.SelfMul(.2 / T(p)), + p > x(l) && (_ = !1), + o.x += f.x, + o.y += f.y + } + return _ + } + , + i + } + )(mi) + , xi = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_frictionJoint) || this; + return i.localAnchorA = new I, + i.localAnchorB = new I, + i.maxForce = 0, + i.maxTorque = 0, + i + } + return ti(i, e), + i.prototype.Initialize = function(t, e, i) { + this.bodyA = t, + this.bodyB = e, + this.bodyA.GetLocalPoint(i, this.localAnchorA), + this.bodyB.GetLocalPoint(i, this.localAnchorB) + } + , + i + } + )(pi) + , bi = (function(t) { + function i(i) { + var n = t.call(this, i) || this; + return n.m_localAnchorA = new I, + n.m_localAnchorB = new I, + n.m_linearImpulse = new I, + n.m_angularImpulse = 0, + n.m_maxForce = 0, + n.m_maxTorque = 0, + n.m_indexA = 0, + n.m_indexB = 0, + n.m_rA = new I, + n.m_rB = new I, + n.m_localCenterA = new I, + n.m_localCenterB = new I, + n.m_invMassA = 0, + n.m_invMassB = 0, + n.m_invIA = 0, + n.m_invIB = 0, + n.m_linearMass = new O, + n.m_angularMass = 0, + n.m_qA = new F, + n.m_qB = new F, + n.m_lalcA = new I, + n.m_lalcB = new I, + n.m_K = new O, + n.m_localAnchorA.Copy(i.localAnchorA), + n.m_localAnchorB.Copy(i.localAnchorB), + n.m_linearImpulse.SetZero(), + n.m_maxForce = e(i.maxForce, 0), + n.m_maxTorque = e(i.maxTorque, 0), + n.m_linearMass.SetZero(), + n + } + return ti(i, t), + i.prototype.InitVelocityConstraints = function(t) { + this.m_indexA = this.m_bodyA.m_islandIndex, + this.m_indexB = this.m_bodyB.m_islandIndex, + this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter), + this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter), + this.m_invMassA = this.m_bodyA.m_invMass, + this.m_invMassB = this.m_bodyB.m_invMass, + this.m_invIA = this.m_bodyA.m_invI, + this.m_invIB = this.m_bodyB.m_invI; + var e = t.positions[this.m_indexA].a + , i = t.velocities[this.m_indexA].v + , n = t.velocities[this.m_indexA].w + , r = t.positions[this.m_indexB].a + , s = t.velocities[this.m_indexB].v + , a = t.velocities[this.m_indexB].w + , o = this.m_qA.SetAngle(e) + , l = this.m_qB.SetAngle(r); + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); + var h = F.MulRV(o, this.m_lalcA, this.m_rA); + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); + var c = F.MulRV(l, this.m_lalcB, this.m_rB) + , u = this.m_invMassA + , _ = this.m_invMassB + , f = this.m_invIA + , d = this.m_invIB + , p = this.m_K; + if (p.ex.x = u + _ + f * h.y * h.y + d * c.y * c.y, + p.ex.y = -f * h.x * h.y - d * c.x * c.y, + p.ey.x = p.ex.y, + p.ey.y = u + _ + f * h.x * h.x + d * c.x * c.x, + p.GetInverse(this.m_linearMass), + this.m_angularMass = f + d, + this.m_angularMass > 0 && (this.m_angularMass = 1 / this.m_angularMass), + t.step.warmStarting) { + this.m_linearImpulse.SelfMul(t.step.dtRatio), + this.m_angularImpulse *= t.step.dtRatio; + var m = this.m_linearImpulse; + i.SelfMulSub(u, m), + n -= f * (I.CrossVV(this.m_rA, m) + this.m_angularImpulse), + s.SelfMulAdd(_, m), + a += d * (I.CrossVV(this.m_rB, m) + this.m_angularImpulse) + } else + this.m_linearImpulse.SetZero(), + this.m_angularImpulse = 0; + t.velocities[this.m_indexA].w = n, + t.velocities[this.m_indexB].w = a + } + , + i.prototype.SolveVelocityConstraints = function(t) { + var e = t.velocities[this.m_indexA].v + , n = t.velocities[this.m_indexA].w + , r = t.velocities[this.m_indexB].v + , s = t.velocities[this.m_indexB].w + , a = this.m_invMassA + , o = this.m_invMassB + , l = this.m_invIA + , h = this.m_invIB + , c = t.step.dt + , u = s - n + , _ = -this.m_angularMass * u + , f = this.m_angularImpulse + , d = c * this.m_maxTorque; + this.m_angularImpulse = g(this.m_angularImpulse + _, -d, d), + n -= l * (_ = this.m_angularImpulse - f), + s += h * _; + var p = I.SubVV(I.AddVCrossSV(r, s, this.m_rB, I.s_t0), I.AddVCrossSV(e, n, this.m_rA, I.s_t1), i.SolveVelocityConstraints_s_Cdot_v2) + , m = O.MulMV(this.m_linearMass, p, i.SolveVelocityConstraints_s_impulseV).SelfNeg() + , y = i.SolveVelocityConstraints_s_oldImpulseV.Copy(this.m_linearImpulse); + this.m_linearImpulse.SelfAdd(m), + d = c * this.m_maxForce, + this.m_linearImpulse.LengthSquared() > d * d && (this.m_linearImpulse.Normalize(), + this.m_linearImpulse.SelfMul(d)), + I.SubVV(this.m_linearImpulse, y, m), + e.SelfMulSub(a, m), + n -= l * I.CrossVV(this.m_rA, m), + r.SelfMulAdd(o, m), + s += h * I.CrossVV(this.m_rB, m), + t.velocities[this.m_indexA].w = n, + t.velocities[this.m_indexB].w = s + } + , + i.prototype.SolvePositionConstraints = function() { + return !0 + } + , + i.prototype.GetAnchorA = function(t) { + return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t) + } + , + i.prototype.GetAnchorB = function(t) { + return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t) + } + , + i.prototype.GetReactionForce = function(t, e) { + return e.x = t * this.m_linearImpulse.x, + e.y = t * this.m_linearImpulse.y, + e + } + , + i.prototype.GetReactionTorque = function(t) { + return t * this.m_angularImpulse + } + , + i.prototype.GetLocalAnchorA = function() { + return this.m_localAnchorA + } + , + i.prototype.GetLocalAnchorB = function() { + return this.m_localAnchorB + } + , + i.prototype.SetMaxForce = function(t) { + this.m_maxForce = t + } + , + i.prototype.GetMaxForce = function() { + return this.m_maxForce + } + , + i.prototype.SetMaxTorque = function(t) { + this.m_maxTorque = t + } + , + i.prototype.GetMaxTorque = function() { + return this.m_maxTorque + } + , + i.prototype.Dump = function(t) { + var e = this.m_bodyA.m_islandIndex + , i = this.m_bodyB.m_islandIndex; + t(" const jd: b2FrictionJointDef = new b2FrictionJointDef();\n"), + t(" jd.bodyA = bodies[%d];\n", e), + t(" jd.bodyB = bodies[%d];\n", i), + t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"), + t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y), + t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y), + t(" jd.maxForce = %.15f;\n", this.m_maxForce), + t(" jd.maxTorque = %.15f;\n", this.m_maxTorque), + t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index) + } + , + i.SolveVelocityConstraints_s_Cdot_v2 = new I, + i.SolveVelocityConstraints_s_impulseV = new I, + i.SolveVelocityConstraints_s_oldImpulseV = new I, + i + } + )(mi) + , Ci = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_gearJoint) || this; + return i.ratio = 1, + i + } + return ti(i, e), + i + } + )(pi) + , Ti = (function(i) { + function n(n) { + var r, s, a = i.call(this, n) || this; + a.m_typeA = t.b2JointType.e_unknownJoint, + a.m_typeB = t.b2JointType.e_unknownJoint, + a.m_localAnchorA = new I, + a.m_localAnchorB = new I, + a.m_localAnchorC = new I, + a.m_localAnchorD = new I, + a.m_localAxisC = new I, + a.m_localAxisD = new I, + a.m_referenceAngleA = 0, + a.m_referenceAngleB = 0, + a.m_constant = 0, + a.m_ratio = 0, + a.m_impulse = 0, + a.m_indexA = 0, + a.m_indexB = 0, + a.m_indexC = 0, + a.m_indexD = 0, + a.m_lcA = new I, + a.m_lcB = new I, + a.m_lcC = new I, + a.m_lcD = new I, + a.m_mA = 0, + a.m_mB = 0, + a.m_mC = 0, + a.m_mD = 0, + a.m_iA = 0, + a.m_iB = 0, + a.m_iC = 0, + a.m_iD = 0, + a.m_JvAC = new I, + a.m_JvBD = new I, + a.m_JwA = 0, + a.m_JwB = 0, + a.m_JwC = 0, + a.m_JwD = 0, + a.m_mass = 0, + a.m_qA = new F, + a.m_qB = new F, + a.m_qC = new F, + a.m_qD = new F, + a.m_lalcA = new I, + a.m_lalcB = new I, + a.m_lalcC = new I, + a.m_lalcD = new I, + a.m_joint1 = n.joint1, + a.m_joint2 = n.joint2, + a.m_typeA = a.m_joint1.GetType(), + a.m_typeB = a.m_joint2.GetType(), + a.m_bodyC = a.m_joint1.GetBodyA(), + a.m_bodyA = a.m_joint1.GetBodyB(); + var o = a.m_bodyA.m_xf + , l = a.m_bodyA.m_sweep.a + , h = a.m_bodyC.m_xf + , c = a.m_bodyC.m_sweep.a; + if (a.m_typeA === t.b2JointType.e_revoluteJoint) { + var u = n.joint1; + a.m_localAnchorC.Copy(u.m_localAnchorA), + a.m_localAnchorA.Copy(u.m_localAnchorB), + a.m_referenceAngleA = u.m_referenceAngle, + a.m_localAxisC.SetZero(), + r = l - c - a.m_referenceAngleA + } else { + var _ = n.joint1; + a.m_localAnchorC.Copy(_.m_localAnchorA), + a.m_localAnchorA.Copy(_.m_localAnchorB), + a.m_referenceAngleA = _.m_referenceAngle, + a.m_localAxisC.Copy(_.m_localXAxisA); + var f = a.m_localAnchorC + , d = F.MulTRV(h.q, I.AddVV(F.MulRV(o.q, a.m_localAnchorA, I.s_t0), I.SubVV(o.p, h.p, I.s_t1), I.s_t0), I.s_t0); + r = I.DotVV(I.SubVV(d, f, I.s_t0), a.m_localAxisC) + } + a.m_bodyD = a.m_joint2.GetBodyA(), + a.m_bodyB = a.m_joint2.GetBodyB(); + var p = a.m_bodyB.m_xf + , m = a.m_bodyB.m_sweep.a + , y = a.m_bodyD.m_xf + , v = a.m_bodyD.m_sweep.a; + if (a.m_typeB === t.b2JointType.e_revoluteJoint) + u = n.joint2, + a.m_localAnchorD.Copy(u.m_localAnchorA), + a.m_localAnchorB.Copy(u.m_localAnchorB), + a.m_referenceAngleB = u.m_referenceAngle, + a.m_localAxisD.SetZero(), + s = m - v - a.m_referenceAngleB; + else { + _ = n.joint2, + a.m_localAnchorD.Copy(_.m_localAnchorA), + a.m_localAnchorB.Copy(_.m_localAnchorB), + a.m_referenceAngleB = _.m_referenceAngle, + a.m_localAxisD.Copy(_.m_localXAxisA); + var g = a.m_localAnchorD + , A = F.MulTRV(y.q, I.AddVV(F.MulRV(p.q, a.m_localAnchorB, I.s_t0), I.SubVV(p.p, y.p, I.s_t1), I.s_t0), I.s_t0); + s = I.DotVV(I.SubVV(A, g, I.s_t0), a.m_localAxisD) + } + return a.m_ratio = e(n.ratio, 1), + a.m_constant = r + a.m_ratio * s, + a.m_impulse = 0, + a + } + return ti(n, i), + n.prototype.InitVelocityConstraints = function(e) { + this.m_indexA = this.m_bodyA.m_islandIndex, + this.m_indexB = this.m_bodyB.m_islandIndex, + this.m_indexC = this.m_bodyC.m_islandIndex, + this.m_indexD = this.m_bodyD.m_islandIndex, + this.m_lcA.Copy(this.m_bodyA.m_sweep.localCenter), + this.m_lcB.Copy(this.m_bodyB.m_sweep.localCenter), + this.m_lcC.Copy(this.m_bodyC.m_sweep.localCenter), + this.m_lcD.Copy(this.m_bodyD.m_sweep.localCenter), + this.m_mA = this.m_bodyA.m_invMass, + this.m_mB = this.m_bodyB.m_invMass, + this.m_mC = this.m_bodyC.m_invMass, + this.m_mD = this.m_bodyD.m_invMass, + this.m_iA = this.m_bodyA.m_invI, + this.m_iB = this.m_bodyB.m_invI, + this.m_iC = this.m_bodyC.m_invI, + this.m_iD = this.m_bodyD.m_invI; + var i = e.positions[this.m_indexA].a + , r = e.velocities[this.m_indexA].v + , s = e.velocities[this.m_indexA].w + , a = e.positions[this.m_indexB].a + , o = e.velocities[this.m_indexB].v + , l = e.velocities[this.m_indexB].w + , h = e.positions[this.m_indexC].a + , c = e.velocities[this.m_indexC].v + , u = e.velocities[this.m_indexC].w + , _ = e.positions[this.m_indexD].a + , f = e.velocities[this.m_indexD].v + , d = e.velocities[this.m_indexD].w + , p = this.m_qA.SetAngle(i) + , m = this.m_qB.SetAngle(a) + , y = this.m_qC.SetAngle(h) + , v = this.m_qD.SetAngle(_); + if (this.m_mass = 0, + this.m_typeA === t.b2JointType.e_revoluteJoint) + this.m_JvAC.SetZero(), + this.m_JwA = 1, + this.m_JwC = 1, + this.m_mass += this.m_iA + this.m_iC; + else { + var g = F.MulRV(y, this.m_localAxisC, n.InitVelocityConstraints_s_u); + I.SubVV(this.m_localAnchorC, this.m_lcC, this.m_lalcC); + var A = F.MulRV(y, this.m_lalcC, n.InitVelocityConstraints_s_rC); + I.SubVV(this.m_localAnchorA, this.m_lcA, this.m_lalcA); + var x = F.MulRV(p, this.m_lalcA, n.InitVelocityConstraints_s_rA); + this.m_JvAC.Copy(g), + this.m_JwC = I.CrossVV(A, g), + this.m_JwA = I.CrossVV(x, g), + this.m_mass += this.m_mC + this.m_mA + this.m_iC * this.m_JwC * this.m_JwC + this.m_iA * this.m_JwA * this.m_JwA + } + if (this.m_typeB === t.b2JointType.e_revoluteJoint) + this.m_JvBD.SetZero(), + this.m_JwB = this.m_ratio, + this.m_JwD = this.m_ratio, + this.m_mass += this.m_ratio * this.m_ratio * (this.m_iB + this.m_iD); + else { + g = F.MulRV(v, this.m_localAxisD, n.InitVelocityConstraints_s_u), + I.SubVV(this.m_localAnchorD, this.m_lcD, this.m_lalcD); + var b = F.MulRV(v, this.m_lalcD, n.InitVelocityConstraints_s_rD); + I.SubVV(this.m_localAnchorB, this.m_lcB, this.m_lalcB); + var C = F.MulRV(m, this.m_lalcB, n.InitVelocityConstraints_s_rB); + I.MulSV(this.m_ratio, g, this.m_JvBD), + this.m_JwD = this.m_ratio * I.CrossVV(b, g), + this.m_JwB = this.m_ratio * I.CrossVV(C, g), + this.m_mass += this.m_ratio * this.m_ratio * (this.m_mD + this.m_mB) + this.m_iD * this.m_JwD * this.m_JwD + this.m_iB * this.m_JwB * this.m_JwB + } + this.m_mass = this.m_mass > 0 ? 1 / this.m_mass : 0, + e.step.warmStarting ? (r.SelfMulAdd(this.m_mA * this.m_impulse, this.m_JvAC), + s += this.m_iA * this.m_impulse * this.m_JwA, + o.SelfMulAdd(this.m_mB * this.m_impulse, this.m_JvBD), + l += this.m_iB * this.m_impulse * this.m_JwB, + c.SelfMulSub(this.m_mC * this.m_impulse, this.m_JvAC), + u -= this.m_iC * this.m_impulse * this.m_JwC, + f.SelfMulSub(this.m_mD * this.m_impulse, this.m_JvBD), + d -= this.m_iD * this.m_impulse * this.m_JwD) : this.m_impulse = 0, + e.velocities[this.m_indexA].w = s, + e.velocities[this.m_indexB].w = l, + e.velocities[this.m_indexC].w = u, + e.velocities[this.m_indexD].w = d + } + , + n.prototype.SolveVelocityConstraints = function(t) { + var e = t.velocities[this.m_indexA].v + , i = t.velocities[this.m_indexA].w + , n = t.velocities[this.m_indexB].v + , r = t.velocities[this.m_indexB].w + , s = t.velocities[this.m_indexC].v + , a = t.velocities[this.m_indexC].w + , o = t.velocities[this.m_indexD].v + , l = t.velocities[this.m_indexD].w + , h = I.DotVV(this.m_JvAC, I.SubVV(e, s, I.s_t0)) + I.DotVV(this.m_JvBD, I.SubVV(n, o, I.s_t0)); + h += this.m_JwA * i - this.m_JwC * a + (this.m_JwB * r - this.m_JwD * l); + var c = -this.m_mass * h; + this.m_impulse += c, + e.SelfMulAdd(this.m_mA * c, this.m_JvAC), + i += this.m_iA * c * this.m_JwA, + n.SelfMulAdd(this.m_mB * c, this.m_JvBD), + r += this.m_iB * c * this.m_JwB, + s.SelfMulSub(this.m_mC * c, this.m_JvAC), + a -= this.m_iC * c * this.m_JwC, + o.SelfMulSub(this.m_mD * c, this.m_JvBD), + l -= this.m_iD * c * this.m_JwD, + t.velocities[this.m_indexA].w = i, + t.velocities[this.m_indexB].w = r, + t.velocities[this.m_indexC].w = a, + t.velocities[this.m_indexD].w = l + } + , + n.prototype.SolvePositionConstraints = function(e) { + var i, r, s, a, o, h, c = e.positions[this.m_indexA].c, u = e.positions[this.m_indexA].a, _ = e.positions[this.m_indexB].c, f = e.positions[this.m_indexB].a, d = e.positions[this.m_indexC].c, p = e.positions[this.m_indexC].a, m = e.positions[this.m_indexD].c, y = e.positions[this.m_indexD].a, v = this.m_qA.SetAngle(u), g = this.m_qB.SetAngle(f), A = this.m_qC.SetAngle(p), x = this.m_qD.SetAngle(y), b = this.m_JvAC, C = this.m_JvBD, T = 0; + if (this.m_typeA === t.b2JointType.e_revoluteJoint) + b.SetZero(), + s = 1, + o = 1, + T += this.m_iA + this.m_iC, + i = u - p - this.m_referenceAngleA; + else { + var S = F.MulRV(A, this.m_localAxisC, n.SolvePositionConstraints_s_u) + , w = F.MulRV(A, this.m_lalcC, n.SolvePositionConstraints_s_rC) + , E = F.MulRV(v, this.m_lalcA, n.SolvePositionConstraints_s_rA); + b.Copy(S), + o = I.CrossVV(w, S), + s = I.CrossVV(E, S), + T += this.m_mC + this.m_mA + this.m_iC * o * o + this.m_iA * s * s; + var M = this.m_lalcC + , D = F.MulTRV(A, I.AddVV(E, I.SubVV(c, d, I.s_t0), I.s_t0), I.s_t0); + i = I.DotVV(I.SubVV(D, M, I.s_t0), this.m_localAxisC) + } + if (this.m_typeB === t.b2JointType.e_revoluteJoint) + C.SetZero(), + a = this.m_ratio, + h = this.m_ratio, + T += this.m_ratio * this.m_ratio * (this.m_iB + this.m_iD), + r = f - y - this.m_referenceAngleB; + else { + S = F.MulRV(x, this.m_localAxisD, n.SolvePositionConstraints_s_u); + var B = F.MulRV(x, this.m_lalcD, n.SolvePositionConstraints_s_rD) + , P = F.MulRV(g, this.m_lalcB, n.SolvePositionConstraints_s_rB); + I.MulSV(this.m_ratio, S, C), + h = this.m_ratio * I.CrossVV(B, S), + a = this.m_ratio * I.CrossVV(P, S), + T += this.m_ratio * this.m_ratio * (this.m_mD + this.m_mB) + this.m_iD * h * h + this.m_iB * a * a; + var R = this.m_lalcD + , O = F.MulTRV(x, I.AddVV(P, I.SubVV(_, m, I.s_t0), I.s_t0), I.s_t0); + r = I.DotVV(I.SubVV(O, R, I.s_t0), this.m_localAxisD) + } + var L = i + this.m_ratio * r - this.m_constant + , V = 0; + return T > 0 && (V = -L / T), + c.SelfMulAdd(this.m_mA * V, b), + u += this.m_iA * V * s, + _.SelfMulAdd(this.m_mB * V, C), + f += this.m_iB * V * a, + d.SelfMulSub(this.m_mC * V, b), + p -= this.m_iC * V * o, + m.SelfMulSub(this.m_mD * V, C), + y -= this.m_iD * V * h, + e.positions[this.m_indexA].a = u, + e.positions[this.m_indexB].a = f, + e.positions[this.m_indexC].a = p, + e.positions[this.m_indexD].a = y, + 0 < l + } + , + n.prototype.GetAnchorA = function(t) { + return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t) + } + , + n.prototype.GetAnchorB = function(t) { + return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t) + } + , + n.prototype.GetReactionForce = function(t, e) { + return I.MulSV(t * this.m_impulse, this.m_JvAC, e) + } + , + n.prototype.GetReactionTorque = function(t) { + return t * this.m_impulse * this.m_JwA + } + , + n.prototype.GetJoint1 = function() { + return this.m_joint1 + } + , + n.prototype.GetJoint2 = function() { + return this.m_joint2 + } + , + n.prototype.GetRatio = function() { + return this.m_ratio + } + , + n.prototype.SetRatio = function(t) { + this.m_ratio = t + } + , + n.prototype.Dump = function(t) { + var e = this.m_bodyA.m_islandIndex + , i = this.m_bodyB.m_islandIndex + , n = this.m_joint1.m_index + , r = this.m_joint2.m_index; + t(" const jd: b2GearJointDef = new b2GearJointDef();\n"), + t(" jd.bodyA = bodies[%d];\n", e), + t(" jd.bodyB = bodies[%d];\n", i), + t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"), + t(" jd.joint1 = joints[%d];\n", n), + t(" jd.joint2 = joints[%d];\n", r), + t(" jd.ratio = %.15f;\n", this.m_ratio), + t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index) + } + , + n.InitVelocityConstraints_s_u = new I, + n.InitVelocityConstraints_s_rA = new I, + n.InitVelocityConstraints_s_rB = new I, + n.InitVelocityConstraints_s_rC = new I, + n.InitVelocityConstraints_s_rD = new I, + n.SolvePositionConstraints_s_u = new I, + n.SolvePositionConstraints_s_rA = new I, + n.SolvePositionConstraints_s_rB = new I, + n.SolvePositionConstraints_s_rC = new I, + n.SolvePositionConstraints_s_rD = new I, + n + } + )(mi) + , Si = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_motorJoint) || this; + return i.linearOffset = new I(0,0), + i.angularOffset = 0, + i.maxForce = 1, + i.maxTorque = 1, + i.correctionFactor = .3, + i + } + return ti(i, e), + i.prototype.Initialize = function(t, e) { + this.bodyA = t, + this.bodyB = e, + this.bodyA.GetLocalPoint(this.bodyB.GetPosition(), this.linearOffset); + var i = this.bodyA.GetAngle() + , n = this.bodyB.GetAngle(); + this.angularOffset = n - i + } + , + i + } + )(pi) + , wi = (function(t) { + function i(i) { + var n = t.call(this, i) || this; + return n.m_linearOffset = new I, + n.m_angularOffset = 0, + n.m_linearImpulse = new I, + n.m_angularImpulse = 0, + n.m_maxForce = 0, + n.m_maxTorque = 0, + n.m_correctionFactor = .3, + n.m_indexA = 0, + n.m_indexB = 0, + n.m_rA = new I, + n.m_rB = new I, + n.m_localCenterA = new I, + n.m_localCenterB = new I, + n.m_linearError = new I, + n.m_angularError = 0, + n.m_invMassA = 0, + n.m_invMassB = 0, + n.m_invIA = 0, + n.m_invIB = 0, + n.m_linearMass = new O, + n.m_angularMass = 0, + n.m_qA = new F, + n.m_qB = new F, + n.m_K = new O, + n.m_linearOffset.Copy(e(i.linearOffset, I.ZERO)), + n.m_linearImpulse.SetZero(), + n.m_maxForce = e(i.maxForce, 0), + n.m_maxTorque = e(i.maxTorque, 0), + n.m_correctionFactor = e(i.correctionFactor, .3), + n + } + return ti(i, t), + i.prototype.GetAnchorA = function(t) { + var e = this.m_bodyA.GetPosition(); + return t.x = e.x, + t.y = e.y, + t + } + , + i.prototype.GetAnchorB = function(t) { + var e = this.m_bodyB.GetPosition(); + return t.x = e.x, + t.y = e.y, + t + } + , + i.prototype.GetReactionForce = function(t, e) { + return I.MulSV(t, this.m_linearImpulse, e) + } + , + i.prototype.GetReactionTorque = function(t) { + return t * this.m_angularImpulse + } + , + i.prototype.SetLinearOffset = function(t) { + I.IsEqualToV(t, this.m_linearOffset) || (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_linearOffset.Copy(t)) + } + , + i.prototype.GetLinearOffset = function() { + return this.m_linearOffset + } + , + i.prototype.SetAngularOffset = function(t) { + t !== this.m_angularOffset && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_angularOffset = t) + } + , + i.prototype.GetAngularOffset = function() { + return this.m_angularOffset + } + , + i.prototype.SetMaxForce = function(t) { + this.m_maxForce = t + } + , + i.prototype.GetMaxForce = function() { + return this.m_maxForce + } + , + i.prototype.SetMaxTorque = function(t) { + this.m_maxTorque = t + } + , + i.prototype.GetMaxTorque = function() { + return this.m_maxTorque + } + , + i.prototype.InitVelocityConstraints = function(t) { + this.m_indexA = this.m_bodyA.m_islandIndex, + this.m_indexB = this.m_bodyB.m_islandIndex, + this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter), + this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter), + this.m_invMassA = this.m_bodyA.m_invMass, + this.m_invMassB = this.m_bodyB.m_invMass, + this.m_invIA = this.m_bodyA.m_invI, + this.m_invIB = this.m_bodyB.m_invI; + var e = t.positions[this.m_indexA].c + , i = t.positions[this.m_indexA].a + , n = t.velocities[this.m_indexA].v + , r = t.velocities[this.m_indexA].w + , s = t.positions[this.m_indexB].c + , a = t.positions[this.m_indexB].a + , o = t.velocities[this.m_indexB].v + , l = t.velocities[this.m_indexB].w + , h = this.m_qA.SetAngle(i) + , c = this.m_qB.SetAngle(a) + , u = F.MulRV(h, I.SubVV(this.m_linearOffset, this.m_localCenterA, I.s_t0), this.m_rA) + , _ = F.MulRV(c, I.NegV(this.m_localCenterB, I.s_t0), this.m_rB) + , f = this.m_invMassA + , d = this.m_invMassB + , p = this.m_invIA + , m = this.m_invIB + , y = this.m_K; + if (y.ex.x = f + d + p * u.y * u.y + m * _.y * _.y, + y.ex.y = -p * u.x * u.y - m * _.x * _.y, + y.ey.x = y.ex.y, + y.ey.y = f + d + p * u.x * u.x + m * _.x * _.x, + y.GetInverse(this.m_linearMass), + this.m_angularMass = p + m, + this.m_angularMass > 0 && (this.m_angularMass = 1 / this.m_angularMass), + I.SubVV(I.AddVV(s, _, I.s_t0), I.AddVV(e, u, I.s_t1), this.m_linearError), + this.m_angularError = a - i - this.m_angularOffset, + t.step.warmStarting) { + this.m_linearImpulse.SelfMul(t.step.dtRatio), + this.m_angularImpulse *= t.step.dtRatio; + var v = this.m_linearImpulse; + n.SelfMulSub(f, v), + r -= p * (I.CrossVV(u, v) + this.m_angularImpulse), + o.SelfMulAdd(d, v), + l += m * (I.CrossVV(_, v) + this.m_angularImpulse) + } else + this.m_linearImpulse.SetZero(), + this.m_angularImpulse = 0; + t.velocities[this.m_indexA].w = r, + t.velocities[this.m_indexB].w = l + } + , + i.prototype.SolveVelocityConstraints = function(t) { + var e = t.velocities[this.m_indexA].v + , n = t.velocities[this.m_indexA].w + , r = t.velocities[this.m_indexB].v + , s = t.velocities[this.m_indexB].w + , a = this.m_invMassA + , o = this.m_invMassB + , l = this.m_invIA + , h = this.m_invIB + , c = t.step.dt + , u = t.step.inv_dt + , _ = s - n + u * this.m_correctionFactor * this.m_angularError + , f = -this.m_angularMass * _ + , d = this.m_angularImpulse + , p = c * this.m_maxTorque; + this.m_angularImpulse = g(this.m_angularImpulse + f, -p, p), + n -= l * (f = this.m_angularImpulse - d), + s += h * f; + var m = this.m_rA + , y = this.m_rB + , v = I.AddVV(I.SubVV(I.AddVV(r, I.CrossSV(s, y, I.s_t0), I.s_t0), I.AddVV(e, I.CrossSV(n, m, I.s_t1), I.s_t1), I.s_t2), I.MulSV(u * this.m_correctionFactor, this.m_linearError, I.s_t3), i.SolveVelocityConstraints_s_Cdot_v2) + , A = O.MulMV(this.m_linearMass, v, i.SolveVelocityConstraints_s_impulse_v2).SelfNeg() + , x = i.SolveVelocityConstraints_s_oldImpulse_v2.Copy(this.m_linearImpulse); + this.m_linearImpulse.SelfAdd(A), + p = c * this.m_maxForce, + this.m_linearImpulse.LengthSquared() > p * p && (this.m_linearImpulse.Normalize(), + this.m_linearImpulse.SelfMul(p)), + I.SubVV(this.m_linearImpulse, x, A), + e.SelfMulSub(a, A), + n -= l * I.CrossVV(m, A), + r.SelfMulAdd(o, A), + s += h * I.CrossVV(y, A), + t.velocities[this.m_indexA].w = n, + t.velocities[this.m_indexB].w = s + } + , + i.prototype.SolvePositionConstraints = function() { + return !0 + } + , + i.prototype.Dump = function(t) { + var e = this.m_bodyA.m_islandIndex + , i = this.m_bodyB.m_islandIndex; + t(" const jd: b2MotorJointDef = new b2MotorJointDef();\n"), + t(" jd.bodyA = bodies[%d];\n", e), + t(" jd.bodyB = bodies[%d];\n", i), + t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"), + t(" jd.linearOffset.Set(%.15f, %.15f);\n", this.m_linearOffset.x, this.m_linearOffset.y), + t(" jd.angularOffset = %.15f;\n", this.m_angularOffset), + t(" jd.maxForce = %.15f;\n", this.m_maxForce), + t(" jd.maxTorque = %.15f;\n", this.m_maxTorque), + t(" jd.correctionFactor = %.15f;\n", this.m_correctionFactor), + t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index) + } + , + i.SolveVelocityConstraints_s_Cdot_v2 = new I, + i.SolveVelocityConstraints_s_impulse_v2 = new I, + i.SolveVelocityConstraints_s_oldImpulse_v2 = new I, + i + } + )(mi) + , Ei = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_mouseJoint) || this; + return i.target = new I, + i.maxForce = 0, + i.frequencyHz = 5, + i.dampingRatio = .7, + i + } + return ti(i, e), + i + } + )(pi) + , Mi = (function(t) { + function i(i) { + var n = t.call(this, i) || this; + return n.m_localAnchorB = new I, + n.m_targetA = new I, + n.m_frequencyHz = 0, + n.m_dampingRatio = 0, + n.m_beta = 0, + n.m_impulse = new I, + n.m_maxForce = 0, + n.m_gamma = 0, + n.m_indexA = 0, + n.m_indexB = 0, + n.m_rB = new I, + n.m_localCenterB = new I, + n.m_invMassB = 0, + n.m_invIB = 0, + n.m_mass = new O, + n.m_C = new I, + n.m_qB = new F, + n.m_lalcB = new I, + n.m_K = new O, + n.m_targetA.Copy(e(i.target, I.ZERO)), + V.MulTXV(n.m_bodyB.GetTransform(), n.m_targetA, n.m_localAnchorB), + n.m_maxForce = e(i.maxForce, 0), + n.m_impulse.SetZero(), + n.m_frequencyHz = e(i.frequencyHz, 0), + n.m_dampingRatio = e(i.dampingRatio, 0), + n.m_beta = 0, + n.m_gamma = 0, + n + } + return ti(i, t), + i.prototype.SetTarget = function(t) { + this.m_bodyB.IsAwake() || this.m_bodyB.SetAwake(!0), + this.m_targetA.Copy(t) + } + , + i.prototype.GetTarget = function() { + return this.m_targetA + } + , + i.prototype.SetMaxForce = function(t) { + this.m_maxForce = t + } + , + i.prototype.GetMaxForce = function() { + return this.m_maxForce + } + , + i.prototype.SetFrequency = function(t) { + this.m_frequencyHz = t + } + , + i.prototype.GetFrequency = function() { + return this.m_frequencyHz + } + , + i.prototype.SetDampingRatio = function(t) { + this.m_dampingRatio = t + } + , + i.prototype.GetDampingRatio = function() { + return this.m_dampingRatio + } + , + i.prototype.InitVelocityConstraints = function(t) { + this.m_indexB = this.m_bodyB.m_islandIndex, + this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter), + this.m_invMassB = this.m_bodyB.m_invMass, + this.m_invIB = this.m_bodyB.m_invI; + var e = t.positions[this.m_indexB].c + , i = t.positions[this.m_indexB].a + , n = t.velocities[this.m_indexB].v + , r = t.velocities[this.m_indexB].w + , a = this.m_qB.SetAngle(i) + , o = this.m_bodyB.GetMass() + , l = 2 * s * this.m_frequencyHz + , h = 2 * o * this.m_dampingRatio * l + , c = o * l * l + , u = t.step.dt; + this.m_gamma = u * (h + u * c), + 0 !== this.m_gamma && (this.m_gamma = 1 / this.m_gamma), + this.m_beta = u * c * this.m_gamma, + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB), + F.MulRV(a, this.m_lalcB, this.m_rB); + var _ = this.m_K; + _.ex.x = this.m_invMassB + this.m_invIB * this.m_rB.y * this.m_rB.y + this.m_gamma, + _.ex.y = -this.m_invIB * this.m_rB.x * this.m_rB.y, + _.ey.x = _.ex.y, + _.ey.y = this.m_invMassB + this.m_invIB * this.m_rB.x * this.m_rB.x + this.m_gamma, + _.GetInverse(this.m_mass), + this.m_C.x = e.x + this.m_rB.x - this.m_targetA.x, + this.m_C.y = e.y + this.m_rB.y - this.m_targetA.y, + this.m_C.SelfMul(this.m_beta), + r *= .98, + t.step.warmStarting ? (this.m_impulse.SelfMul(t.step.dtRatio), + n.x += this.m_invMassB * this.m_impulse.x, + n.y += this.m_invMassB * this.m_impulse.y, + r += this.m_invIB * I.CrossVV(this.m_rB, this.m_impulse)) : this.m_impulse.SetZero(), + t.velocities[this.m_indexB].w = r + } + , + i.prototype.SolveVelocityConstraints = function(t) { + var e = t.velocities[this.m_indexB].v + , n = t.velocities[this.m_indexB].w + , r = I.AddVCrossSV(e, n, this.m_rB, i.SolveVelocityConstraints_s_Cdot) + , s = O.MulMV(this.m_mass, I.AddVV(r, I.AddVV(this.m_C, I.MulSV(this.m_gamma, this.m_impulse, I.s_t0), I.s_t0), I.s_t0).SelfNeg(), i.SolveVelocityConstraints_s_impulse) + , a = i.SolveVelocityConstraints_s_oldImpulse.Copy(this.m_impulse); + this.m_impulse.SelfAdd(s); + var o = t.step.dt * this.m_maxForce; + this.m_impulse.LengthSquared() > o * o && this.m_impulse.SelfMul(o / this.m_impulse.Length()), + I.SubVV(this.m_impulse, a, s), + e.SelfMulAdd(this.m_invMassB, s), + n += this.m_invIB * I.CrossVV(this.m_rB, s), + t.velocities[this.m_indexB].w = n + } + , + i.prototype.SolvePositionConstraints = function() { + return !0 + } + , + i.prototype.GetAnchorA = function(t) { + return t.x = this.m_targetA.x, + t.y = this.m_targetA.y, + t + } + , + i.prototype.GetAnchorB = function(t) { + return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t) + } + , + i.prototype.GetReactionForce = function(t, e) { + return I.MulSV(t, this.m_impulse, e) + } + , + i.prototype.GetReactionTorque = function() { + return 0 + } + , + i.prototype.Dump = function(t) { + t("Mouse joint dumping is not supported.\n") + } + , + i.prototype.ShiftOrigin = function(t) { + this.m_targetA.SelfSub(t) + } + , + i.SolveVelocityConstraints_s_Cdot = new I, + i.SolveVelocityConstraints_s_impulse = new I, + i.SolveVelocityConstraints_s_oldImpulse = new I, + i + } + )(mi) + , Di = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_prismaticJoint) || this; + return i.localAnchorA = new I, + i.localAnchorB = new I, + i.localAxisA = new I(1,0), + i.referenceAngle = 0, + i.enableLimit = !1, + i.lowerTranslation = 0, + i.upperTranslation = 0, + i.enableMotor = !1, + i.maxMotorForce = 0, + i.motorSpeed = 0, + i + } + return ti(i, e), + i.prototype.Initialize = function(t, e, i, n) { + this.bodyA = t, + this.bodyB = e, + this.bodyA.GetLocalPoint(i, this.localAnchorA), + this.bodyB.GetLocalPoint(i, this.localAnchorB), + this.bodyA.GetLocalVector(n, this.localAxisA), + this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle() + } + , + i + } + )(pi) + , Bi = (function(i) { + function n(n) { + var r = i.call(this, n) || this; + return r.m_localAnchorA = new I, + r.m_localAnchorB = new I, + r.m_localXAxisA = new I, + r.m_localYAxisA = new I, + r.m_referenceAngle = 0, + r.m_impulse = new R(0,0,0), + r.m_motorImpulse = 0, + r.m_lowerTranslation = 0, + r.m_upperTranslation = 0, + r.m_maxMotorForce = 0, + r.m_motorSpeed = 0, + r.m_enableLimit = !1, + r.m_enableMotor = !1, + r.m_limitState = t.b2LimitState.e_inactiveLimit, + r.m_indexA = 0, + r.m_indexB = 0, + r.m_localCenterA = new I, + r.m_localCenterB = new I, + r.m_invMassA = 0, + r.m_invMassB = 0, + r.m_invIA = 0, + r.m_invIB = 0, + r.m_axis = new I(0,0), + r.m_perp = new I(0,0), + r.m_s1 = 0, + r.m_s2 = 0, + r.m_a1 = 0, + r.m_a2 = 0, + r.m_K = new L, + r.m_K3 = new L, + r.m_K2 = new O, + r.m_motorMass = 0, + r.m_qA = new F, + r.m_qB = new F, + r.m_lalcA = new I, + r.m_lalcB = new I, + r.m_rA = new I, + r.m_rB = new I, + r.m_localAnchorA.Copy(e(n.localAnchorA, I.ZERO)), + r.m_localAnchorB.Copy(e(n.localAnchorB, I.ZERO)), + r.m_localXAxisA.Copy(e(n.localAxisA, new I(1,0))).SelfNormalize(), + I.CrossOneV(r.m_localXAxisA, r.m_localYAxisA), + r.m_referenceAngle = e(n.referenceAngle, 0), + r.m_lowerTranslation = e(n.lowerTranslation, 0), + r.m_upperTranslation = e(n.upperTranslation, 0), + r.m_maxMotorForce = e(n.maxMotorForce, 0), + r.m_motorSpeed = e(n.motorSpeed, 0), + r.m_enableLimit = e(n.enableLimit, !1), + r.m_enableMotor = e(n.enableMotor, !1), + r + } + return ti(n, i), + n.prototype.InitVelocityConstraints = function(e) { + this.m_indexA = this.m_bodyA.m_islandIndex, + this.m_indexB = this.m_bodyB.m_islandIndex, + this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter), + this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter), + this.m_invMassA = this.m_bodyA.m_invMass, + this.m_invMassB = this.m_bodyB.m_invMass, + this.m_invIA = this.m_bodyA.m_invI, + this.m_invIB = this.m_bodyB.m_invI; + var i = e.positions[this.m_indexA].c + , r = e.positions[this.m_indexA].a + , s = e.velocities[this.m_indexA].v + , a = e.velocities[this.m_indexA].w + , o = e.positions[this.m_indexB].c + , h = e.positions[this.m_indexB].a + , c = e.velocities[this.m_indexB].v + , u = e.velocities[this.m_indexB].w + , _ = this.m_qA.SetAngle(r) + , f = this.m_qB.SetAngle(h); + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); + var d = F.MulRV(_, this.m_lalcA, this.m_rA); + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); + var p = F.MulRV(f, this.m_lalcB, this.m_rB) + , y = I.AddVV(I.SubVV(o, i, I.s_t0), I.SubVV(p, d, I.s_t1), n.InitVelocityConstraints_s_d) + , v = this.m_invMassA + , g = this.m_invMassB + , A = this.m_invIA + , x = this.m_invIB; + if (F.MulRV(_, this.m_localXAxisA, this.m_axis), + this.m_a1 = I.CrossVV(I.AddVV(y, d, I.s_t0), this.m_axis), + this.m_a2 = I.CrossVV(p, this.m_axis), + this.m_motorMass = v + g + A * this.m_a1 * this.m_a1 + x * this.m_a2 * this.m_a2, + this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass), + F.MulRV(_, this.m_localYAxisA, this.m_perp), + this.m_s1 = I.CrossVV(I.AddVV(y, d, I.s_t0), this.m_perp), + this.m_s2 = I.CrossVV(p, this.m_perp), + this.m_K.ex.x = v + g + A * this.m_s1 * this.m_s1 + x * this.m_s2 * this.m_s2, + this.m_K.ex.y = A * this.m_s1 + x * this.m_s2, + this.m_K.ex.z = A * this.m_s1 * this.m_a1 + x * this.m_s2 * this.m_a2, + this.m_K.ey.x = this.m_K.ex.y, + this.m_K.ey.y = A + x, + 0 === this.m_K.ey.y && (this.m_K.ey.y = 1), + this.m_K.ey.z = A * this.m_a1 + x * this.m_a2, + this.m_K.ez.x = this.m_K.ex.z, + this.m_K.ez.y = this.m_K.ey.z, + this.m_K.ez.z = v + g + A * this.m_a1 * this.m_a1 + x * this.m_a2 * this.m_a2, + this.m_enableLimit) { + var b = I.DotVV(this.m_axis, y); + m(this.m_upperTranslation - this.m_lowerTranslation) < 2 * l ? this.m_limitState = t.b2LimitState.e_equalLimits : b <= this.m_lowerTranslation ? this.m_limitState !== t.b2LimitState.e_atLowerLimit && (this.m_limitState = t.b2LimitState.e_atLowerLimit, + this.m_impulse.z = 0) : b >= this.m_upperTranslation ? this.m_limitState !== t.b2LimitState.e_atUpperLimit && (this.m_limitState = t.b2LimitState.e_atUpperLimit, + this.m_impulse.z = 0) : (this.m_limitState = t.b2LimitState.e_inactiveLimit, + this.m_impulse.z = 0) + } else + this.m_limitState = t.b2LimitState.e_inactiveLimit, + this.m_impulse.z = 0; + if (this.m_enableMotor || (this.m_motorImpulse = 0), + e.step.warmStarting) { + this.m_impulse.SelfMul(e.step.dtRatio), + this.m_motorImpulse *= e.step.dtRatio; + var C = I.AddVV(I.MulSV(this.m_impulse.x, this.m_perp, I.s_t0), I.MulSV(this.m_motorImpulse + this.m_impulse.z, this.m_axis, I.s_t1), n.InitVelocityConstraints_s_P) + , T = this.m_impulse.x * this.m_s1 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a1 + , S = this.m_impulse.x * this.m_s2 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a2; + s.SelfMulSub(v, C), + a -= A * T, + c.SelfMulAdd(g, C), + u += x * S + } else + this.m_impulse.SetZero(), + this.m_motorImpulse = 0; + e.velocities[this.m_indexA].w = a, + e.velocities[this.m_indexB].w = u + } + , + n.prototype.SolveVelocityConstraints = function(e) { + var i = e.velocities[this.m_indexA].v + , r = e.velocities[this.m_indexA].w + , s = e.velocities[this.m_indexB].v + , a = e.velocities[this.m_indexB].w + , o = this.m_invMassA + , l = this.m_invMassB + , h = this.m_invIA + , c = this.m_invIB; + if (this.m_enableMotor && this.m_limitState !== t.b2LimitState.e_equalLimits) { + var u = I.DotVV(this.m_axis, I.SubVV(s, i, I.s_t0)) + this.m_a2 * a - this.m_a1 * r + , _ = this.m_motorMass * (this.m_motorSpeed - u) + , f = this.m_motorImpulse + , d = e.step.dt * this.m_maxMotorForce; + this.m_motorImpulse = g(this.m_motorImpulse + _, -d, d), + _ = this.m_motorImpulse - f; + var p = I.MulSV(_, this.m_axis, n.SolveVelocityConstraints_s_P) + , m = _ * this.m_a1 + , A = _ * this.m_a2; + i.SelfMulSub(o, p), + r -= h * m, + s.SelfMulAdd(l, p), + a += c * A + } + var x = I.DotVV(this.m_perp, I.SubVV(s, i, I.s_t0)) + this.m_s2 * a - this.m_s1 * r + , b = a - r; + if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit) { + var C = I.DotVV(this.m_axis, I.SubVV(s, i, I.s_t0)) + this.m_a2 * a - this.m_a1 * r + , T = n.SolveVelocityConstraints_s_f1.Copy(this.m_impulse) + , S = this.m_K.Solve33(-x, -b, -C, n.SolveVelocityConstraints_s_df3); + this.m_impulse.SelfAdd(S), + this.m_limitState === t.b2LimitState.e_atLowerLimit ? this.m_impulse.z = v(this.m_impulse.z, 0) : this.m_limitState === t.b2LimitState.e_atUpperLimit && (this.m_impulse.z = y(this.m_impulse.z, 0)); + var w = -x - (this.m_impulse.z - T.z) * this.m_K.ez.x + , E = -b - (this.m_impulse.z - T.z) * this.m_K.ez.y + , M = this.m_K.Solve22(w, E, n.SolveVelocityConstraints_s_f2r); + M.x += T.x, + M.y += T.y, + this.m_impulse.x = M.x, + this.m_impulse.y = M.y, + S.x = this.m_impulse.x - T.x, + S.y = this.m_impulse.y - T.y, + S.z = this.m_impulse.z - T.z, + p = I.AddVV(I.MulSV(S.x, this.m_perp, I.s_t0), I.MulSV(S.z, this.m_axis, I.s_t1), n.SolveVelocityConstraints_s_P), + m = S.x * this.m_s1 + S.y + S.z * this.m_a1, + A = S.x * this.m_s2 + S.y + S.z * this.m_a2, + i.SelfMulSub(o, p), + r -= h * m, + s.SelfMulAdd(l, p), + a += c * A + } else { + var D = this.m_K.Solve22(-x, -b, n.SolveVelocityConstraints_s_df2); + this.m_impulse.x += D.x, + this.m_impulse.y += D.y, + p = I.MulSV(D.x, this.m_perp, n.SolveVelocityConstraints_s_P), + m = D.x * this.m_s1 + D.y, + A = D.x * this.m_s2 + D.y, + i.SelfMulSub(o, p), + r -= h * m, + s.SelfMulAdd(l, p), + a += c * A + } + e.velocities[this.m_indexA].w = r, + e.velocities[this.m_indexB].w = a + } + , + n.prototype.SolvePositionConstraints = function(t) { + var e = t.positions[this.m_indexA].c + , i = t.positions[this.m_indexA].a + , r = t.positions[this.m_indexB].c + , s = t.positions[this.m_indexB].a + , a = this.m_qA.SetAngle(i) + , o = this.m_qB.SetAngle(s) + , c = this.m_invMassA + , u = this.m_invMassB + , _ = this.m_invIA + , f = this.m_invIB + , d = F.MulRV(a, this.m_lalcA, this.m_rA) + , p = F.MulRV(o, this.m_lalcB, this.m_rB) + , y = I.SubVV(I.AddVV(r, p, I.s_t0), I.AddVV(e, d, I.s_t1), n.SolvePositionConstraints_s_d) + , A = F.MulRV(a, this.m_localXAxisA, this.m_axis) + , x = I.CrossVV(I.AddVV(y, d, I.s_t0), A) + , b = I.CrossVV(p, A) + , C = F.MulRV(a, this.m_localYAxisA, this.m_perp) + , T = I.CrossVV(I.AddVV(y, d, I.s_t0), C) + , S = I.CrossVV(p, C) + , w = n.SolvePositionConstraints_s_impulse + , E = I.DotVV(C, y) + , M = s - i - this.m_referenceAngle + , D = m(E) + , B = m(M) + , P = !1 + , R = 0; + if (this.m_enableLimit) { + var O = I.DotVV(A, y); + m(this.m_upperTranslation - this.m_lowerTranslation) < 2 * l ? (R = g(O, -.2, .2), + D = v(D, m(O)), + P = !0) : O <= this.m_lowerTranslation ? (R = g(O - this.m_lowerTranslation + l, -.2, 0), + D = v(D, this.m_lowerTranslation - O), + P = !0) : O >= this.m_upperTranslation && (R = g(O - this.m_upperTranslation - l, 0, .2), + D = v(D, O - this.m_upperTranslation), + P = !0) + } + if (P) { + var L = c + u + _ * T * T + f * S * S + , V = _ * T + f * S + , N = _ * T * x + f * S * b; + 0 === (z = _ + f) && (z = 1); + var k = _ * x + f * b + , G = c + u + _ * x * x + f * b * b + , U = this.m_K3; + U.ex.SetXYZ(L, V, N), + U.ey.SetXYZ(V, z, k), + U.ez.SetXYZ(N, k, G), + w = U.Solve33(-E, -M, -R, w) + } else { + var z; + L = c + u + _ * T * T + f * S * S, + V = _ * T + f * S, + 0 === (z = _ + f) && (z = 1); + var H = this.m_K2; + H.ex.Set(L, V), + H.ey.Set(V, z); + var W = H.Solve(-E, -M, n.SolvePositionConstraints_s_impulse1); + w.x = W.x, + w.y = W.y, + w.z = 0 + } + var j = I.AddVV(I.MulSV(w.x, C, I.s_t0), I.MulSV(w.z, A, I.s_t1), n.SolvePositionConstraints_s_P) + , X = w.x * T + w.y + w.z * x + , Y = w.x * S + w.y + w.z * b; + return e.SelfMulSub(c, j), + i -= _ * X, + r.SelfMulAdd(u, j), + s += f * Y, + t.positions[this.m_indexA].a = i, + t.positions[this.m_indexB].a = s, + D <= l && B <= h + } + , + n.prototype.GetAnchorA = function(t) { + return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t) + } + , + n.prototype.GetAnchorB = function(t) { + return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t) + } + , + n.prototype.GetReactionForce = function(t, e) { + return e.x = t * (this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.x), + e.y = t * (this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.y), + e + } + , + n.prototype.GetReactionTorque = function(t) { + return t * this.m_impulse.y + } + , + n.prototype.GetLocalAnchorA = function() { + return this.m_localAnchorA + } + , + n.prototype.GetLocalAnchorB = function() { + return this.m_localAnchorB + } + , + n.prototype.GetLocalAxisA = function() { + return this.m_localXAxisA + } + , + n.prototype.GetReferenceAngle = function() { + return this.m_referenceAngle + } + , + n.prototype.GetJointTranslation = function() { + var t = this.m_bodyA.GetWorldPoint(this.m_localAnchorA, n.GetJointTranslation_s_pA) + , e = this.m_bodyB.GetWorldPoint(this.m_localAnchorB, n.GetJointTranslation_s_pB) + , i = I.SubVV(e, t, n.GetJointTranslation_s_d) + , r = this.m_bodyA.GetWorldVector(this.m_localXAxisA, n.GetJointTranslation_s_axis); + return I.DotVV(i, r) + } + , + n.prototype.GetJointSpeed = function() { + var t = this.m_bodyA + , e = this.m_bodyB; + I.SubVV(this.m_localAnchorA, t.m_sweep.localCenter, this.m_lalcA); + var i = F.MulRV(t.m_xf.q, this.m_lalcA, this.m_rA); + I.SubVV(this.m_localAnchorB, e.m_sweep.localCenter, this.m_lalcB); + var n = F.MulRV(e.m_xf.q, this.m_lalcB, this.m_rB) + , r = I.AddVV(t.m_sweep.c, i, I.s_t0) + , s = I.AddVV(e.m_sweep.c, n, I.s_t1) + , a = I.SubVV(s, r, I.s_t2) + , o = t.GetWorldVector(this.m_localXAxisA, this.m_axis) + , l = t.m_linearVelocity + , h = e.m_linearVelocity + , c = t.m_angularVelocity + , u = e.m_angularVelocity; + return I.DotVV(a, I.CrossSV(c, o, I.s_t0)) + I.DotVV(o, I.SubVV(I.AddVCrossSV(h, u, n, I.s_t0), I.AddVCrossSV(l, c, i, I.s_t1), I.s_t0)) + } + , + n.prototype.IsLimitEnabled = function() { + return this.m_enableLimit + } + , + n.prototype.EnableLimit = function(t) { + t !== this.m_enableLimit && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_enableLimit = t, + this.m_impulse.z = 0) + } + , + n.prototype.GetLowerLimit = function() { + return this.m_lowerTranslation + } + , + n.prototype.GetUpperLimit = function() { + return this.m_upperTranslation + } + , + n.prototype.SetLimits = function(t, e) { + t === this.m_lowerTranslation && e === this.m_upperTranslation || (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_lowerTranslation = t, + this.m_upperTranslation = e, + this.m_impulse.z = 0) + } + , + n.prototype.IsMotorEnabled = function() { + return this.m_enableMotor + } + , + n.prototype.EnableMotor = function(t) { + t !== this.m_enableMotor && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_enableMotor = t) + } + , + n.prototype.SetMotorSpeed = function(t) { + t !== this.m_motorSpeed && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_motorSpeed = t) + } + , + n.prototype.GetMotorSpeed = function() { + return this.m_motorSpeed + } + , + n.prototype.SetMaxMotorForce = function(t) { + t !== this.m_maxMotorForce && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_maxMotorForce = t) + } + , + n.prototype.GetMaxMotorForce = function() { + return this.m_maxMotorForce + } + , + n.prototype.GetMotorForce = function(t) { + return t * this.m_motorImpulse + } + , + n.prototype.Dump = function(t) { + var e = this.m_bodyA.m_islandIndex + , i = this.m_bodyB.m_islandIndex; + t(" const jd: b2PrismaticJointDef = new b2PrismaticJointDef();\n"), + t(" jd.bodyA = bodies[%d];\n", e), + t(" jd.bodyB = bodies[%d];\n", i), + t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"), + t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y), + t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y), + t(" jd.localAxisA.Set(%.15f, %.15f);\n", this.m_localXAxisA.x, this.m_localXAxisA.y), + t(" jd.referenceAngle = %.15f;\n", this.m_referenceAngle), + t(" jd.enableLimit = %s;\n", this.m_enableLimit ? "true" : "false"), + t(" jd.lowerTranslation = %.15f;\n", this.m_lowerTranslation), + t(" jd.upperTranslation = %.15f;\n", this.m_upperTranslation), + t(" jd.enableMotor = %s;\n", this.m_enableMotor ? "true" : "false"), + t(" jd.motorSpeed = %.15f;\n", this.m_motorSpeed), + t(" jd.maxMotorForce = %.15f;\n", this.m_maxMotorForce), + t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index) + } + , + n.InitVelocityConstraints_s_d = new I, + n.InitVelocityConstraints_s_P = new I, + n.SolveVelocityConstraints_s_P = new I, + n.SolveVelocityConstraints_s_f2r = new I, + n.SolveVelocityConstraints_s_f1 = new R, + n.SolveVelocityConstraints_s_df3 = new R, + n.SolveVelocityConstraints_s_df2 = new I, + n.SolvePositionConstraints_s_d = new I, + n.SolvePositionConstraints_s_impulse = new R, + n.SolvePositionConstraints_s_impulse1 = new I, + n.SolvePositionConstraints_s_P = new I, + n.GetJointTranslation_s_pA = new I, + n.GetJointTranslation_s_pB = new I, + n.GetJointTranslation_s_d = new I, + n.GetJointTranslation_s_axis = new I, + n + } + )(mi) + , Ii = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_pulleyJoint) || this; + return i.groundAnchorA = new I(-1,1), + i.groundAnchorB = new I(1,1), + i.localAnchorA = new I(-1,0), + i.localAnchorB = new I(1,0), + i.lengthA = 0, + i.lengthB = 0, + i.ratio = 1, + i.collideConnected = !0, + i + } + return ti(i, e), + i.prototype.Initialize = function(t, e, i, n, r, s, a) { + this.bodyA = t, + this.bodyB = e, + this.groundAnchorA.Copy(i), + this.groundAnchorB.Copy(n), + this.bodyA.GetLocalPoint(r, this.localAnchorA), + this.bodyB.GetLocalPoint(s, this.localAnchorB), + this.lengthA = I.DistanceVV(r, i), + this.lengthB = I.DistanceVV(s, n), + this.ratio = a + } + , + i + } + )(pi) + , Pi = (function(t) { + function i(i) { + var n = t.call(this, i) || this; + return n.m_groundAnchorA = new I, + n.m_groundAnchorB = new I, + n.m_lengthA = 0, + n.m_lengthB = 0, + n.m_localAnchorA = new I, + n.m_localAnchorB = new I, + n.m_constant = 0, + n.m_ratio = 0, + n.m_impulse = 0, + n.m_indexA = 0, + n.m_indexB = 0, + n.m_uA = new I, + n.m_uB = new I, + n.m_rA = new I, + n.m_rB = new I, + n.m_localCenterA = new I, + n.m_localCenterB = new I, + n.m_invMassA = 0, + n.m_invMassB = 0, + n.m_invIA = 0, + n.m_invIB = 0, + n.m_mass = 0, + n.m_qA = new F, + n.m_qB = new F, + n.m_lalcA = new I, + n.m_lalcB = new I, + n.m_groundAnchorA.Copy(e(i.groundAnchorA, new I(-1,1))), + n.m_groundAnchorB.Copy(e(i.groundAnchorB, new I(1,0))), + n.m_localAnchorA.Copy(e(i.localAnchorA, new I(-1,0))), + n.m_localAnchorB.Copy(e(i.localAnchorB, new I(1,0))), + n.m_lengthA = e(i.lengthA, 0), + n.m_lengthB = e(i.lengthB, 0), + n.m_ratio = e(i.ratio, 1), + n.m_constant = e(i.lengthA, 0) + n.m_ratio * e(i.lengthB, 0), + n.m_impulse = 0, + n + } + return ti(i, t), + i.prototype.InitVelocityConstraints = function(t) { + this.m_indexA = this.m_bodyA.m_islandIndex, + this.m_indexB = this.m_bodyB.m_islandIndex, + this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter), + this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter), + this.m_invMassA = this.m_bodyA.m_invMass, + this.m_invMassB = this.m_bodyB.m_invMass, + this.m_invIA = this.m_bodyA.m_invI, + this.m_invIB = this.m_bodyB.m_invI; + var e = t.positions[this.m_indexA].c + , n = t.positions[this.m_indexA].a + , r = t.velocities[this.m_indexA].v + , s = t.velocities[this.m_indexA].w + , a = t.positions[this.m_indexB].c + , o = t.positions[this.m_indexB].a + , h = t.velocities[this.m_indexB].v + , c = t.velocities[this.m_indexB].w + , u = this.m_qA.SetAngle(n) + , _ = this.m_qB.SetAngle(o); + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA), + F.MulRV(u, this.m_lalcA, this.m_rA), + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB), + F.MulRV(_, this.m_lalcB, this.m_rB), + this.m_uA.Copy(e).SelfAdd(this.m_rA).SelfSub(this.m_groundAnchorA), + this.m_uB.Copy(a).SelfAdd(this.m_rB).SelfSub(this.m_groundAnchorB); + var f = this.m_uA.Length() + , d = this.m_uB.Length(); + f > 10 * l ? this.m_uA.SelfMul(1 / f) : this.m_uA.SetZero(), + d > 10 * l ? this.m_uB.SelfMul(1 / d) : this.m_uB.SetZero(); + var p = I.CrossVV(this.m_rA, this.m_uA) + , m = I.CrossVV(this.m_rB, this.m_uB) + , y = this.m_invMassA + this.m_invIA * p * p + , v = this.m_invMassB + this.m_invIB * m * m; + if (this.m_mass = y + this.m_ratio * this.m_ratio * v, + this.m_mass > 0 && (this.m_mass = 1 / this.m_mass), + t.step.warmStarting) { + this.m_impulse *= t.step.dtRatio; + var g = I.MulSV(-this.m_impulse, this.m_uA, i.InitVelocityConstraints_s_PA) + , A = I.MulSV(-this.m_ratio * this.m_impulse, this.m_uB, i.InitVelocityConstraints_s_PB); + r.SelfMulAdd(this.m_invMassA, g), + s += this.m_invIA * I.CrossVV(this.m_rA, g), + h.SelfMulAdd(this.m_invMassB, A), + c += this.m_invIB * I.CrossVV(this.m_rB, A) + } else + this.m_impulse = 0; + t.velocities[this.m_indexA].w = s, + t.velocities[this.m_indexB].w = c + } + , + i.prototype.SolveVelocityConstraints = function(t) { + var e = t.velocities[this.m_indexA].v + , n = t.velocities[this.m_indexA].w + , r = t.velocities[this.m_indexB].v + , s = t.velocities[this.m_indexB].w + , a = I.AddVCrossSV(e, n, this.m_rA, i.SolveVelocityConstraints_s_vpA) + , o = I.AddVCrossSV(r, s, this.m_rB, i.SolveVelocityConstraints_s_vpB) + , l = -I.DotVV(this.m_uA, a) - this.m_ratio * I.DotVV(this.m_uB, o) + , h = -this.m_mass * l; + this.m_impulse += h; + var c = I.MulSV(-h, this.m_uA, i.SolveVelocityConstraints_s_PA) + , u = I.MulSV(-this.m_ratio * h, this.m_uB, i.SolveVelocityConstraints_s_PB); + e.SelfMulAdd(this.m_invMassA, c), + n += this.m_invIA * I.CrossVV(this.m_rA, c), + r.SelfMulAdd(this.m_invMassB, u), + s += this.m_invIB * I.CrossVV(this.m_rB, u), + t.velocities[this.m_indexA].w = n, + t.velocities[this.m_indexB].w = s + } + , + i.prototype.SolvePositionConstraints = function(t) { + var e = t.positions[this.m_indexA].c + , n = t.positions[this.m_indexA].a + , r = t.positions[this.m_indexB].c + , s = t.positions[this.m_indexB].a + , a = this.m_qA.SetAngle(n) + , o = this.m_qB.SetAngle(s); + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); + var h = F.MulRV(a, this.m_lalcA, this.m_rA); + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); + var c = F.MulRV(o, this.m_lalcB, this.m_rB) + , u = this.m_uA.Copy(e).SelfAdd(h).SelfSub(this.m_groundAnchorA) + , _ = this.m_uB.Copy(r).SelfAdd(c).SelfSub(this.m_groundAnchorB) + , f = u.Length() + , d = _.Length(); + f > 10 * l ? u.SelfMul(1 / f) : u.SetZero(), + d > 10 * l ? _.SelfMul(1 / d) : _.SetZero(); + var p = I.CrossVV(h, u) + , y = I.CrossVV(c, _) + , v = this.m_invMassA + this.m_invIA * p * p + , g = this.m_invMassB + this.m_invIB * y * y + , A = v + this.m_ratio * this.m_ratio * g; + A > 0 && (A = 1 / A); + var x = this.m_constant - f - this.m_ratio * d + , b = m(x) + , C = -A * x + , T = I.MulSV(-C, u, i.SolvePositionConstraints_s_PA) + , S = I.MulSV(-this.m_ratio * C, _, i.SolvePositionConstraints_s_PB); + return e.SelfMulAdd(this.m_invMassA, T), + n += this.m_invIA * I.CrossVV(h, T), + r.SelfMulAdd(this.m_invMassB, S), + s += this.m_invIB * I.CrossVV(c, S), + t.positions[this.m_indexA].a = n, + t.positions[this.m_indexB].a = s, + b < l + } + , + i.prototype.GetAnchorA = function(t) { + return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t) + } + , + i.prototype.GetAnchorB = function(t) { + return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t) + } + , + i.prototype.GetReactionForce = function(t, e) { + return e.x = t * this.m_impulse * this.m_uB.x, + e.y = t * this.m_impulse * this.m_uB.y, + e + } + , + i.prototype.GetReactionTorque = function() { + return 0 + } + , + i.prototype.GetGroundAnchorA = function() { + return this.m_groundAnchorA + } + , + i.prototype.GetGroundAnchorB = function() { + return this.m_groundAnchorB + } + , + i.prototype.GetLengthA = function() { + return this.m_lengthA + } + , + i.prototype.GetLengthB = function() { + return this.m_lengthB + } + , + i.prototype.GetRatio = function() { + return this.m_ratio + } + , + i.prototype.GetCurrentLengthA = function() { + var t = this.m_bodyA.GetWorldPoint(this.m_localAnchorA, i.GetCurrentLengthA_s_p) + , e = this.m_groundAnchorA; + return I.DistanceVV(t, e) + } + , + i.prototype.GetCurrentLengthB = function() { + var t = this.m_bodyB.GetWorldPoint(this.m_localAnchorB, i.GetCurrentLengthB_s_p) + , e = this.m_groundAnchorB; + return I.DistanceVV(t, e) + } + , + i.prototype.Dump = function(t) { + var e = this.m_bodyA.m_islandIndex + , i = this.m_bodyB.m_islandIndex; + t(" const jd: b2PulleyJointDef = new b2PulleyJointDef();\n"), + t(" jd.bodyA = bodies[%d];\n", e), + t(" jd.bodyB = bodies[%d];\n", i), + t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"), + t(" jd.groundAnchorA.Set(%.15f, %.15f);\n", this.m_groundAnchorA.x, this.m_groundAnchorA.y), + t(" jd.groundAnchorB.Set(%.15f, %.15f);\n", this.m_groundAnchorB.x, this.m_groundAnchorB.y), + t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y), + t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y), + t(" jd.lengthA = %.15f;\n", this.m_lengthA), + t(" jd.lengthB = %.15f;\n", this.m_lengthB), + t(" jd.ratio = %.15f;\n", this.m_ratio), + t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index) + } + , + i.prototype.ShiftOrigin = function(t) { + this.m_groundAnchorA.SelfSub(t), + this.m_groundAnchorB.SelfSub(t) + } + , + i.InitVelocityConstraints_s_PA = new I, + i.InitVelocityConstraints_s_PB = new I, + i.SolveVelocityConstraints_s_vpA = new I, + i.SolveVelocityConstraints_s_vpB = new I, + i.SolveVelocityConstraints_s_PA = new I, + i.SolveVelocityConstraints_s_PB = new I, + i.SolvePositionConstraints_s_PA = new I, + i.SolvePositionConstraints_s_PB = new I, + i.GetCurrentLengthA_s_p = new I, + i.GetCurrentLengthB_s_p = new I, + i + } + )(mi) + , Ri = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_revoluteJoint) || this; + return i.localAnchorA = new I(0,0), + i.localAnchorB = new I(0,0), + i.referenceAngle = 0, + i.enableLimit = !1, + i.lowerAngle = 0, + i.upperAngle = 0, + i.enableMotor = !1, + i.motorSpeed = 0, + i.maxMotorTorque = 0, + i + } + return ti(i, e), + i.prototype.Initialize = function(t, e, i) { + this.bodyA = t, + this.bodyB = e, + this.bodyA.GetLocalPoint(i, this.localAnchorA), + this.bodyB.GetLocalPoint(i, this.localAnchorB), + this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle() + } + , + i + } + )(pi) + , Oi = (function(i) { + function n(n) { + var r = i.call(this, n) || this; + return r.m_localAnchorA = new I, + r.m_localAnchorB = new I, + r.m_impulse = new R, + r.m_motorImpulse = 0, + r.m_enableMotor = !1, + r.m_maxMotorTorque = 0, + r.m_motorSpeed = 0, + r.m_enableLimit = !1, + r.m_referenceAngle = 0, + r.m_lowerAngle = 0, + r.m_upperAngle = 0, + r.m_indexA = 0, + r.m_indexB = 0, + r.m_rA = new I, + r.m_rB = new I, + r.m_localCenterA = new I, + r.m_localCenterB = new I, + r.m_invMassA = 0, + r.m_invMassB = 0, + r.m_invIA = 0, + r.m_invIB = 0, + r.m_mass = new L, + r.m_motorMass = 0, + r.m_limitState = t.b2LimitState.e_inactiveLimit, + r.m_qA = new F, + r.m_qB = new F, + r.m_lalcA = new I, + r.m_lalcB = new I, + r.m_K = new O, + r.m_localAnchorA.Copy(e(n.localAnchorA, I.ZERO)), + r.m_localAnchorB.Copy(e(n.localAnchorB, I.ZERO)), + r.m_referenceAngle = e(n.referenceAngle, 0), + r.m_impulse.SetZero(), + r.m_motorImpulse = 0, + r.m_lowerAngle = e(n.lowerAngle, 0), + r.m_upperAngle = e(n.upperAngle, 0), + r.m_maxMotorTorque = e(n.maxMotorTorque, 0), + r.m_motorSpeed = e(n.motorSpeed, 0), + r.m_enableLimit = e(n.enableLimit, !1), + r.m_enableMotor = e(n.enableMotor, !1), + r.m_limitState = t.b2LimitState.e_inactiveLimit, + r + } + return ti(n, i), + n.prototype.InitVelocityConstraints = function(e) { + this.m_indexA = this.m_bodyA.m_islandIndex, + this.m_indexB = this.m_bodyB.m_islandIndex, + this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter), + this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter), + this.m_invMassA = this.m_bodyA.m_invMass, + this.m_invMassB = this.m_bodyB.m_invMass, + this.m_invIA = this.m_bodyA.m_invI, + this.m_invIB = this.m_bodyB.m_invI; + var i = e.positions[this.m_indexA].a + , r = e.velocities[this.m_indexA].v + , s = e.velocities[this.m_indexA].w + , a = e.positions[this.m_indexB].a + , o = e.velocities[this.m_indexB].v + , l = e.velocities[this.m_indexB].w + , c = this.m_qA.SetAngle(i) + , u = this.m_qB.SetAngle(a); + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA), + F.MulRV(c, this.m_lalcA, this.m_rA), + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB), + F.MulRV(u, this.m_lalcB, this.m_rB); + var _ = this.m_invMassA + , f = this.m_invMassB + , d = this.m_invIA + , p = this.m_invIB + , y = d + p === 0; + if (this.m_mass.ex.x = _ + f + this.m_rA.y * this.m_rA.y * d + this.m_rB.y * this.m_rB.y * p, + this.m_mass.ey.x = -this.m_rA.y * this.m_rA.x * d - this.m_rB.y * this.m_rB.x * p, + this.m_mass.ez.x = -this.m_rA.y * d - this.m_rB.y * p, + this.m_mass.ex.y = this.m_mass.ey.x, + this.m_mass.ey.y = _ + f + this.m_rA.x * this.m_rA.x * d + this.m_rB.x * this.m_rB.x * p, + this.m_mass.ez.y = this.m_rA.x * d + this.m_rB.x * p, + this.m_mass.ex.z = this.m_mass.ez.x, + this.m_mass.ey.z = this.m_mass.ez.y, + this.m_mass.ez.z = d + p, + this.m_motorMass = d + p, + this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass), + this.m_enableMotor && !y || (this.m_motorImpulse = 0), + this.m_enableLimit && !y) { + var v = a - i - this.m_referenceAngle; + m(this.m_upperAngle - this.m_lowerAngle) < 2 * h ? this.m_limitState = t.b2LimitState.e_equalLimits : v <= this.m_lowerAngle ? (this.m_limitState !== t.b2LimitState.e_atLowerLimit && (this.m_impulse.z = 0), + this.m_limitState = t.b2LimitState.e_atLowerLimit) : v >= this.m_upperAngle ? (this.m_limitState !== t.b2LimitState.e_atUpperLimit && (this.m_impulse.z = 0), + this.m_limitState = t.b2LimitState.e_atUpperLimit) : (this.m_limitState = t.b2LimitState.e_inactiveLimit, + this.m_impulse.z = 0) + } else + this.m_limitState = t.b2LimitState.e_inactiveLimit; + if (e.step.warmStarting) { + this.m_impulse.SelfMul(e.step.dtRatio), + this.m_motorImpulse *= e.step.dtRatio; + var g = n.InitVelocityConstraints_s_P.Set(this.m_impulse.x, this.m_impulse.y); + r.SelfMulSub(_, g), + s -= d * (I.CrossVV(this.m_rA, g) + this.m_motorImpulse + this.m_impulse.z), + o.SelfMulAdd(f, g), + l += p * (I.CrossVV(this.m_rB, g) + this.m_motorImpulse + this.m_impulse.z) + } else + this.m_impulse.SetZero(), + this.m_motorImpulse = 0; + e.velocities[this.m_indexA].w = s, + e.velocities[this.m_indexB].w = l + } + , + n.prototype.SolveVelocityConstraints = function(e) { + var i = e.velocities[this.m_indexA].v + , r = e.velocities[this.m_indexA].w + , s = e.velocities[this.m_indexB].v + , a = e.velocities[this.m_indexB].w + , o = this.m_invMassA + , l = this.m_invMassB + , h = this.m_invIA + , c = this.m_invIB + , u = h + c === 0; + if (this.m_enableMotor && this.m_limitState !== t.b2LimitState.e_equalLimits && !u) { + var _ = a - r - this.m_motorSpeed + , f = -this.m_motorMass * _ + , d = this.m_motorImpulse + , p = e.step.dt * this.m_maxMotorTorque; + this.m_motorImpulse = g(this.m_motorImpulse + f, -p, p), + r -= h * (f = this.m_motorImpulse - d), + a += c * f + } + if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit && !u) { + var m = I.SubVV(I.AddVCrossSV(s, a, this.m_rB, I.s_t0), I.AddVCrossSV(i, r, this.m_rA, I.s_t1), n.SolveVelocityConstraints_s_Cdot1) + , y = a - r + , v = this.m_mass.Solve33(m.x, m.y, y, n.SolveVelocityConstraints_s_impulse_v3).SelfNeg(); + if (this.m_limitState === t.b2LimitState.e_equalLimits) + this.m_impulse.SelfAdd(v); + else if (this.m_limitState === t.b2LimitState.e_atLowerLimit) + if (this.m_impulse.z + v.z < 0) { + var A = -m.x + this.m_impulse.z * this.m_mass.ez.x + , x = -m.y + this.m_impulse.z * this.m_mass.ez.y + , b = this.m_mass.Solve22(A, x, n.SolveVelocityConstraints_s_reduced_v2); + v.x = b.x, + v.y = b.y, + v.z = -this.m_impulse.z, + this.m_impulse.x += b.x, + this.m_impulse.y += b.y, + this.m_impulse.z = 0 + } else + this.m_impulse.SelfAdd(v); + else + this.m_limitState === t.b2LimitState.e_atUpperLimit && (this.m_impulse.z + v.z > 0 ? (A = -m.x + this.m_impulse.z * this.m_mass.ez.x, + x = -m.y + this.m_impulse.z * this.m_mass.ez.y, + b = this.m_mass.Solve22(A, x, n.SolveVelocityConstraints_s_reduced_v2), + v.x = b.x, + v.y = b.y, + v.z = -this.m_impulse.z, + this.m_impulse.x += b.x, + this.m_impulse.y += b.y, + this.m_impulse.z = 0) : this.m_impulse.SelfAdd(v)); + var C = n.SolveVelocityConstraints_s_P.Set(v.x, v.y); + i.SelfMulSub(o, C), + r -= h * (I.CrossVV(this.m_rA, C) + v.z), + s.SelfMulAdd(l, C), + a += c * (I.CrossVV(this.m_rB, C) + v.z) + } else { + var T = I.SubVV(I.AddVCrossSV(s, a, this.m_rB, I.s_t0), I.AddVCrossSV(i, r, this.m_rA, I.s_t1), n.SolveVelocityConstraints_s_Cdot_v2) + , S = this.m_mass.Solve22(-T.x, -T.y, n.SolveVelocityConstraints_s_impulse_v2); + this.m_impulse.x += S.x, + this.m_impulse.y += S.y, + i.SelfMulSub(o, S), + r -= h * I.CrossVV(this.m_rA, S), + s.SelfMulAdd(l, S), + a += c * I.CrossVV(this.m_rB, S) + } + e.velocities[this.m_indexA].w = r, + e.velocities[this.m_indexB].w = a + } + , + n.prototype.SolvePositionConstraints = function(e) { + var i, r = e.positions[this.m_indexA].c, s = e.positions[this.m_indexA].a, a = e.positions[this.m_indexB].c, o = e.positions[this.m_indexB].a, c = this.m_qA.SetAngle(s), u = this.m_qB.SetAngle(o), _ = 0, f = this.m_invIA + this.m_invIB === 0; + if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit && !f) { + var d = o - s - this.m_referenceAngle + , p = 0; + if (this.m_limitState === t.b2LimitState.e_equalLimits) { + var y = g(d - this.m_lowerAngle, -.13962634015955555, .13962634015955555); + p = -this.m_motorMass * y, + _ = m(y) + } else + this.m_limitState === t.b2LimitState.e_atLowerLimit ? (_ = -(y = d - this.m_lowerAngle), + y = g(y + h, -.13962634015955555, 0), + p = -this.m_motorMass * y) : this.m_limitState === t.b2LimitState.e_atUpperLimit && (_ = y = d - this.m_upperAngle, + y = g(y - h, 0, .13962634015955555), + p = -this.m_motorMass * y); + s -= this.m_invIA * p, + o += this.m_invIB * p + } + c.SetAngle(s), + u.SetAngle(o), + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); + var v = F.MulRV(c, this.m_lalcA, this.m_rA); + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); + var A = F.MulRV(u, this.m_lalcB, this.m_rB) + , x = I.SubVV(I.AddVV(a, A, I.s_t0), I.AddVV(r, v, I.s_t1), n.SolvePositionConstraints_s_C_v2); + i = x.Length(); + var b = this.m_invMassA + , C = this.m_invMassB + , T = this.m_invIA + , S = this.m_invIB + , w = this.m_K; + w.ex.x = b + C + T * v.y * v.y + S * A.y * A.y, + w.ex.y = -T * v.x * v.y - S * A.x * A.y, + w.ey.x = w.ex.y, + w.ey.y = b + C + T * v.x * v.x + S * A.x * A.x; + var E = w.Solve(x.x, x.y, n.SolvePositionConstraints_s_impulse).SelfNeg(); + return r.SelfMulSub(b, E), + s -= T * I.CrossVV(v, E), + a.SelfMulAdd(C, E), + o += S * I.CrossVV(A, E), + e.positions[this.m_indexA].a = s, + e.positions[this.m_indexB].a = o, + i <= l && _ <= h + } + , + n.prototype.GetAnchorA = function(t) { + return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t) + } + , + n.prototype.GetAnchorB = function(t) { + return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t) + } + , + n.prototype.GetReactionForce = function(t, e) { + return e.x = t * this.m_impulse.x, + e.y = t * this.m_impulse.y, + e + } + , + n.prototype.GetReactionTorque = function(t) { + return t * this.m_impulse.z + } + , + n.prototype.GetLocalAnchorA = function() { + return this.m_localAnchorA + } + , + n.prototype.GetLocalAnchorB = function() { + return this.m_localAnchorB + } + , + n.prototype.GetReferenceAngle = function() { + return this.m_referenceAngle + } + , + n.prototype.GetJointAngle = function() { + return this.m_bodyB.m_sweep.a - this.m_bodyA.m_sweep.a - this.m_referenceAngle + } + , + n.prototype.GetJointSpeed = function() { + return this.m_bodyB.m_angularVelocity - this.m_bodyA.m_angularVelocity + } + , + n.prototype.IsMotorEnabled = function() { + return this.m_enableMotor + } + , + n.prototype.EnableMotor = function(t) { + t !== this.m_enableMotor && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_enableMotor = t) + } + , + n.prototype.GetMotorTorque = function(t) { + return t * this.m_motorImpulse + } + , + n.prototype.GetMotorSpeed = function() { + return this.m_motorSpeed + } + , + n.prototype.SetMaxMotorTorque = function(t) { + t !== this.m_maxMotorTorque && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_maxMotorTorque = t) + } + , + n.prototype.GetMaxMotorTorque = function() { + return this.m_maxMotorTorque + } + , + n.prototype.IsLimitEnabled = function() { + return this.m_enableLimit + } + , + n.prototype.EnableLimit = function(t) { + t !== this.m_enableLimit && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_enableLimit = t, + this.m_impulse.z = 0) + } + , + n.prototype.GetLowerLimit = function() { + return this.m_lowerAngle + } + , + n.prototype.GetUpperLimit = function() { + return this.m_upperAngle + } + , + n.prototype.SetLimits = function(t, e) { + t === this.m_lowerAngle && e === this.m_upperAngle || (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_impulse.z = 0, + this.m_lowerAngle = t, + this.m_upperAngle = e) + } + , + n.prototype.SetMotorSpeed = function(t) { + t !== this.m_motorSpeed && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_motorSpeed = t) + } + , + n.prototype.Dump = function(t) { + var e = this.m_bodyA.m_islandIndex + , i = this.m_bodyB.m_islandIndex; + t(" const jd: b2RevoluteJointDef = new b2RevoluteJointDef();\n"), + t(" jd.bodyA = bodies[%d];\n", e), + t(" jd.bodyB = bodies[%d];\n", i), + t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"), + t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y), + t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y), + t(" jd.referenceAngle = %.15f;\n", this.m_referenceAngle), + t(" jd.enableLimit = %s;\n", this.m_enableLimit ? "true" : "false"), + t(" jd.lowerAngle = %.15f;\n", this.m_lowerAngle), + t(" jd.upperAngle = %.15f;\n", this.m_upperAngle), + t(" jd.enableMotor = %s;\n", this.m_enableMotor ? "true" : "false"), + t(" jd.motorSpeed = %.15f;\n", this.m_motorSpeed), + t(" jd.maxMotorTorque = %.15f;\n", this.m_maxMotorTorque), + t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index) + } + , + n.InitVelocityConstraints_s_P = new I, + n.SolveVelocityConstraints_s_P = new I, + n.SolveVelocityConstraints_s_Cdot_v2 = new I, + n.SolveVelocityConstraints_s_Cdot1 = new I, + n.SolveVelocityConstraints_s_impulse_v3 = new R, + n.SolveVelocityConstraints_s_reduced_v2 = new I, + n.SolveVelocityConstraints_s_impulse_v2 = new I, + n.SolvePositionConstraints_s_C_v2 = new I, + n.SolvePositionConstraints_s_impulse = new I, + n + } + )(mi) + , Li = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_ropeJoint) || this; + return i.localAnchorA = new I(-1,0), + i.localAnchorB = new I(1,0), + i.maxLength = 0, + i + } + return ti(i, e), + i + } + )(pi) + , Fi = (function(i) { + function n(n) { + var r = i.call(this, n) || this; + return r.m_localAnchorA = new I, + r.m_localAnchorB = new I, + r.m_maxLength = 0, + r.m_length = 0, + r.m_impulse = 0, + r.m_indexA = 0, + r.m_indexB = 0, + r.m_u = new I, + r.m_rA = new I, + r.m_rB = new I, + r.m_localCenterA = new I, + r.m_localCenterB = new I, + r.m_invMassA = 0, + r.m_invMassB = 0, + r.m_invIA = 0, + r.m_invIB = 0, + r.m_mass = 0, + r.m_state = t.b2LimitState.e_inactiveLimit, + r.m_qA = new F, + r.m_qB = new F, + r.m_lalcA = new I, + r.m_lalcB = new I, + r.m_localAnchorA.Copy(e(n.localAnchorA, new I(-1,0))), + r.m_localAnchorB.Copy(e(n.localAnchorB, new I(1,0))), + r.m_maxLength = e(n.maxLength, 0), + r + } + return ti(n, i), + n.prototype.InitVelocityConstraints = function(e) { + this.m_indexA = this.m_bodyA.m_islandIndex, + this.m_indexB = this.m_bodyB.m_islandIndex, + this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter), + this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter), + this.m_invMassA = this.m_bodyA.m_invMass, + this.m_invMassB = this.m_bodyB.m_invMass, + this.m_invIA = this.m_bodyA.m_invI, + this.m_invIB = this.m_bodyB.m_invI; + var i = e.positions[this.m_indexA].c + , r = e.positions[this.m_indexA].a + , s = e.velocities[this.m_indexA].v + , a = e.velocities[this.m_indexA].w + , o = e.positions[this.m_indexB].c + , h = e.positions[this.m_indexB].a + , c = e.velocities[this.m_indexB].v + , u = e.velocities[this.m_indexB].w + , _ = this.m_qA.SetAngle(r) + , f = this.m_qB.SetAngle(h); + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA), + F.MulRV(_, this.m_lalcA, this.m_rA), + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB), + F.MulRV(f, this.m_lalcB, this.m_rB), + this.m_u.Copy(o).SelfAdd(this.m_rB).SelfSub(i).SelfSub(this.m_rA), + this.m_length = this.m_u.Length(); + var d = this.m_length - this.m_maxLength; + if (this.m_state = d > 0 ? t.b2LimitState.e_atUpperLimit : t.b2LimitState.e_inactiveLimit, + !(this.m_length > l)) + return this.m_u.SetZero(), + this.m_mass = 0, + void (this.m_impulse = 0); + this.m_u.SelfMul(1 / this.m_length); + var p = I.CrossVV(this.m_rA, this.m_u) + , m = I.CrossVV(this.m_rB, this.m_u) + , y = this.m_invMassA + this.m_invIA * p * p + this.m_invMassB + this.m_invIB * m * m; + if (this.m_mass = 0 !== y ? 1 / y : 0, + e.step.warmStarting) { + this.m_impulse *= e.step.dtRatio; + var v = I.MulSV(this.m_impulse, this.m_u, n.InitVelocityConstraints_s_P); + s.SelfMulSub(this.m_invMassA, v), + a -= this.m_invIA * I.CrossVV(this.m_rA, v), + c.SelfMulAdd(this.m_invMassB, v), + u += this.m_invIB * I.CrossVV(this.m_rB, v) + } else + this.m_impulse = 0; + e.velocities[this.m_indexA].w = a, + e.velocities[this.m_indexB].w = u + } + , + n.prototype.SolveVelocityConstraints = function(t) { + var e = t.velocities[this.m_indexA].v + , i = t.velocities[this.m_indexA].w + , r = t.velocities[this.m_indexB].v + , s = t.velocities[this.m_indexB].w + , a = I.AddVCrossSV(e, i, this.m_rA, n.SolveVelocityConstraints_s_vpA) + , o = I.AddVCrossSV(r, s, this.m_rB, n.SolveVelocityConstraints_s_vpB) + , l = this.m_length - this.m_maxLength + , h = I.DotVV(this.m_u, I.SubVV(o, a, I.s_t0)); + l < 0 && (h += t.step.inv_dt * l); + var c = -this.m_mass * h + , u = this.m_impulse; + this.m_impulse = y(0, this.m_impulse + c), + c = this.m_impulse - u; + var _ = I.MulSV(c, this.m_u, n.SolveVelocityConstraints_s_P); + e.SelfMulSub(this.m_invMassA, _), + i -= this.m_invIA * I.CrossVV(this.m_rA, _), + r.SelfMulAdd(this.m_invMassB, _), + s += this.m_invIB * I.CrossVV(this.m_rB, _), + t.velocities[this.m_indexA].w = i, + t.velocities[this.m_indexB].w = s + } + , + n.prototype.SolvePositionConstraints = function(t) { + var e = t.positions[this.m_indexA].c + , i = t.positions[this.m_indexA].a + , r = t.positions[this.m_indexB].c + , s = t.positions[this.m_indexB].a + , a = this.m_qA.SetAngle(i) + , o = this.m_qB.SetAngle(s); + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); + var h = F.MulRV(a, this.m_lalcA, this.m_rA); + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); + var c = F.MulRV(o, this.m_lalcB, this.m_rB) + , u = this.m_u.Copy(r).SelfAdd(c).SelfSub(e).SelfSub(h) + , _ = u.Normalize() + , f = _ - this.m_maxLength; + f = g(f, 0, .2); + var d = -this.m_mass * f + , p = I.MulSV(d, u, n.SolvePositionConstraints_s_P); + return e.SelfMulSub(this.m_invMassA, p), + i -= this.m_invIA * I.CrossVV(h, p), + r.SelfMulAdd(this.m_invMassB, p), + s += this.m_invIB * I.CrossVV(c, p), + t.positions[this.m_indexA].a = i, + t.positions[this.m_indexB].a = s, + _ - this.m_maxLength < l + } + , + n.prototype.GetAnchorA = function(t) { + return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t) + } + , + n.prototype.GetAnchorB = function(t) { + return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t) + } + , + n.prototype.GetReactionForce = function(t, e) { + return I.MulSV(t * this.m_impulse, this.m_u, e) + } + , + n.prototype.GetReactionTorque = function() { + return 0 + } + , + n.prototype.GetLocalAnchorA = function() { + return this.m_localAnchorA + } + , + n.prototype.GetLocalAnchorB = function() { + return this.m_localAnchorB + } + , + n.prototype.SetMaxLength = function(t) { + this.m_maxLength = t + } + , + n.prototype.GetMaxLength = function() { + return this.m_maxLength + } + , + n.prototype.GetLimitState = function() { + return this.m_state + } + , + n.prototype.Dump = function(t) { + var e = this.m_bodyA.m_islandIndex + , i = this.m_bodyB.m_islandIndex; + t(" const jd: b2RopeJointDef = new b2RopeJointDef();\n"), + t(" jd.bodyA = bodies[%d];\n", e), + t(" jd.bodyB = bodies[%d];\n", i), + t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"), + t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y), + t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y), + t(" jd.maxLength = %.15f;\n", this.m_maxLength), + t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index) + } + , + n.InitVelocityConstraints_s_P = new I, + n.SolveVelocityConstraints_s_vpA = new I, + n.SolveVelocityConstraints_s_vpB = new I, + n.SolveVelocityConstraints_s_P = new I, + n.SolvePositionConstraints_s_P = new I, + n + } + )(mi) + , Vi = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_weldJoint) || this; + return i.localAnchorA = new I, + i.localAnchorB = new I, + i.referenceAngle = 0, + i.frequencyHz = 0, + i.dampingRatio = 0, + i + } + return ti(i, e), + i.prototype.Initialize = function(t, e, i) { + this.bodyA = t, + this.bodyB = e, + this.bodyA.GetLocalPoint(i, this.localAnchorA), + this.bodyB.GetLocalPoint(i, this.localAnchorB), + this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle() + } + , + i + } + )(pi) + , Ni = (function(t) { + function i(i) { + var n = t.call(this, i) || this; + return n.m_frequencyHz = 0, + n.m_dampingRatio = 0, + n.m_bias = 0, + n.m_localAnchorA = new I, + n.m_localAnchorB = new I, + n.m_referenceAngle = 0, + n.m_gamma = 0, + n.m_impulse = new R(0,0,0), + n.m_indexA = 0, + n.m_indexB = 0, + n.m_rA = new I, + n.m_rB = new I, + n.m_localCenterA = new I, + n.m_localCenterB = new I, + n.m_invMassA = 0, + n.m_invMassB = 0, + n.m_invIA = 0, + n.m_invIB = 0, + n.m_mass = new L, + n.m_qA = new F, + n.m_qB = new F, + n.m_lalcA = new I, + n.m_lalcB = new I, + n.m_K = new L, + n.m_frequencyHz = e(i.frequencyHz, 0), + n.m_dampingRatio = e(i.dampingRatio, 0), + n.m_localAnchorA.Copy(e(i.localAnchorA, I.ZERO)), + n.m_localAnchorB.Copy(e(i.localAnchorB, I.ZERO)), + n.m_referenceAngle = e(i.referenceAngle, 0), + n.m_impulse.SetZero(), + n + } + return ti(i, t), + i.prototype.InitVelocityConstraints = function(t) { + this.m_indexA = this.m_bodyA.m_islandIndex, + this.m_indexB = this.m_bodyB.m_islandIndex, + this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter), + this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter), + this.m_invMassA = this.m_bodyA.m_invMass, + this.m_invMassB = this.m_bodyB.m_invMass, + this.m_invIA = this.m_bodyA.m_invI, + this.m_invIB = this.m_bodyB.m_invI; + var e = t.positions[this.m_indexA].a + , n = t.velocities[this.m_indexA].v + , r = t.velocities[this.m_indexA].w + , a = t.positions[this.m_indexB].a + , o = t.velocities[this.m_indexB].v + , l = t.velocities[this.m_indexB].w + , h = this.m_qA.SetAngle(e) + , c = this.m_qB.SetAngle(a); + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA), + F.MulRV(h, this.m_lalcA, this.m_rA), + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB), + F.MulRV(c, this.m_lalcB, this.m_rB); + var u = this.m_invMassA + , _ = this.m_invMassB + , f = this.m_invIA + , d = this.m_invIB + , p = this.m_K; + if (p.ex.x = u + _ + this.m_rA.y * this.m_rA.y * f + this.m_rB.y * this.m_rB.y * d, + p.ey.x = -this.m_rA.y * this.m_rA.x * f - this.m_rB.y * this.m_rB.x * d, + p.ez.x = -this.m_rA.y * f - this.m_rB.y * d, + p.ex.y = p.ey.x, + p.ey.y = u + _ + this.m_rA.x * this.m_rA.x * f + this.m_rB.x * this.m_rB.x * d, + p.ez.y = this.m_rA.x * f + this.m_rB.x * d, + p.ex.z = p.ez.x, + p.ey.z = p.ez.y, + p.ez.z = f + d, + this.m_frequencyHz > 0) { + p.GetInverse22(this.m_mass); + var m = f + d + , y = m > 0 ? 1 / m : 0 + , v = a - e - this.m_referenceAngle + , g = 2 * s * this.m_frequencyHz + , A = 2 * y * this.m_dampingRatio * g + , x = y * g * g + , b = t.step.dt; + this.m_gamma = b * (A + b * x), + this.m_gamma = 0 !== this.m_gamma ? 1 / this.m_gamma : 0, + this.m_bias = v * b * x * this.m_gamma, + m += this.m_gamma, + this.m_mass.ez.z = 0 !== m ? 1 / m : 0 + } else + p.GetSymInverse33(this.m_mass), + this.m_gamma = 0, + this.m_bias = 0; + if (t.step.warmStarting) { + this.m_impulse.SelfMul(t.step.dtRatio); + var C = i.InitVelocityConstraints_s_P.Set(this.m_impulse.x, this.m_impulse.y); + n.SelfMulSub(u, C), + r -= f * (I.CrossVV(this.m_rA, C) + this.m_impulse.z), + o.SelfMulAdd(_, C), + l += d * (I.CrossVV(this.m_rB, C) + this.m_impulse.z) + } else + this.m_impulse.SetZero(); + t.velocities[this.m_indexA].w = r, + t.velocities[this.m_indexB].w = l + } + , + i.prototype.SolveVelocityConstraints = function(t) { + var e = t.velocities[this.m_indexA].v + , n = t.velocities[this.m_indexA].w + , r = t.velocities[this.m_indexB].v + , s = t.velocities[this.m_indexB].w + , a = this.m_invMassA + , o = this.m_invMassB + , l = this.m_invIA + , h = this.m_invIB; + if (this.m_frequencyHz > 0) { + var c = s - n + , u = -this.m_mass.ez.z * (c + this.m_bias + this.m_gamma * this.m_impulse.z); + this.m_impulse.z += u, + n -= l * u, + s += h * u; + var _ = I.SubVV(I.AddVCrossSV(r, s, this.m_rB, I.s_t0), I.AddVCrossSV(e, n, this.m_rA, I.s_t1), i.SolveVelocityConstraints_s_Cdot1) + , f = L.MulM33XY(this.m_mass, _.x, _.y, i.SolveVelocityConstraints_s_impulse1).SelfNeg(); + this.m_impulse.x += f.x, + this.m_impulse.y += f.y; + var d = f; + e.SelfMulSub(a, d), + n -= l * I.CrossVV(this.m_rA, d), + r.SelfMulAdd(o, d), + s += h * I.CrossVV(this.m_rB, d) + } else { + _ = I.SubVV(I.AddVCrossSV(r, s, this.m_rB, I.s_t0), I.AddVCrossSV(e, n, this.m_rA, I.s_t1), i.SolveVelocityConstraints_s_Cdot1), + c = s - n; + var p = L.MulM33XYZ(this.m_mass, _.x, _.y, c, i.SolveVelocityConstraints_s_impulse).SelfNeg(); + this.m_impulse.SelfAdd(p), + d = i.SolveVelocityConstraints_s_P.Set(p.x, p.y), + e.SelfMulSub(a, d), + n -= l * (I.CrossVV(this.m_rA, d) + p.z), + r.SelfMulAdd(o, d), + s += h * (I.CrossVV(this.m_rB, d) + p.z) + } + t.velocities[this.m_indexA].w = n, + t.velocities[this.m_indexB].w = s + } + , + i.prototype.SolvePositionConstraints = function(t) { + var e = t.positions[this.m_indexA].c + , n = t.positions[this.m_indexA].a + , r = t.positions[this.m_indexB].c + , s = t.positions[this.m_indexB].a + , a = this.m_qA.SetAngle(n) + , o = this.m_qB.SetAngle(s) + , c = this.m_invMassA + , u = this.m_invMassB + , _ = this.m_invIA + , f = this.m_invIB; + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); + var d = F.MulRV(a, this.m_lalcA, this.m_rA); + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); + var p, y, v = F.MulRV(o, this.m_lalcB, this.m_rB), g = this.m_K; + if (g.ex.x = c + u + d.y * d.y * _ + v.y * v.y * f, + g.ey.x = -d.y * d.x * _ - v.y * v.x * f, + g.ez.x = -d.y * _ - v.y * f, + g.ex.y = g.ey.x, + g.ey.y = c + u + d.x * d.x * _ + v.x * v.x * f, + g.ez.y = d.x * _ + v.x * f, + g.ex.z = g.ez.x, + g.ey.z = g.ez.y, + g.ez.z = _ + f, + this.m_frequencyHz > 0) { + p = (x = I.SubVV(I.AddVV(r, v, I.s_t0), I.AddVV(e, d, I.s_t1), i.SolvePositionConstraints_s_C1)).Length(), + y = 0; + var A = g.Solve22(x.x, x.y, i.SolvePositionConstraints_s_P).SelfNeg(); + e.SelfMulSub(c, A), + n -= _ * I.CrossVV(d, A), + r.SelfMulAdd(u, A), + s += f * I.CrossVV(v, A) + } else { + var x = I.SubVV(I.AddVV(r, v, I.s_t0), I.AddVV(e, d, I.s_t1), i.SolvePositionConstraints_s_C1) + , b = s - n - this.m_referenceAngle; + p = x.Length(), + y = m(b); + var C = g.Solve33(x.x, x.y, b, i.SolvePositionConstraints_s_impulse).SelfNeg(); + A = i.SolvePositionConstraints_s_P.Set(C.x, C.y), + e.SelfMulSub(c, A), + n -= _ * (I.CrossVV(this.m_rA, A) + C.z), + r.SelfMulAdd(u, A), + s += f * (I.CrossVV(this.m_rB, A) + C.z) + } + return t.positions[this.m_indexA].a = n, + t.positions[this.m_indexB].a = s, + p <= l && y <= h + } + , + i.prototype.GetAnchorA = function(t) { + return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t) + } + , + i.prototype.GetAnchorB = function(t) { + return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t) + } + , + i.prototype.GetReactionForce = function(t, e) { + return e.x = t * this.m_impulse.x, + e.y = t * this.m_impulse.y, + e + } + , + i.prototype.GetReactionTorque = function(t) { + return t * this.m_impulse.z + } + , + i.prototype.GetLocalAnchorA = function() { + return this.m_localAnchorA + } + , + i.prototype.GetLocalAnchorB = function() { + return this.m_localAnchorB + } + , + i.prototype.GetReferenceAngle = function() { + return this.m_referenceAngle + } + , + i.prototype.SetFrequency = function(t) { + this.m_frequencyHz = t + } + , + i.prototype.GetFrequency = function() { + return this.m_frequencyHz + } + , + i.prototype.SetDampingRatio = function(t) { + this.m_dampingRatio = t + } + , + i.prototype.GetDampingRatio = function() { + return this.m_dampingRatio + } + , + i.prototype.Dump = function(t) { + var e = this.m_bodyA.m_islandIndex + , i = this.m_bodyB.m_islandIndex; + t(" const jd: b2WeldJointDef = new b2WeldJointDef();\n"), + t(" jd.bodyA = bodies[%d];\n", e), + t(" jd.bodyB = bodies[%d];\n", i), + t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"), + t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y), + t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y), + t(" jd.referenceAngle = %.15f;\n", this.m_referenceAngle), + t(" jd.frequencyHz = %.15f;\n", this.m_frequencyHz), + t(" jd.dampingRatio = %.15f;\n", this.m_dampingRatio), + t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index) + } + , + i.InitVelocityConstraints_s_P = new I, + i.SolveVelocityConstraints_s_Cdot1 = new I, + i.SolveVelocityConstraints_s_impulse1 = new I, + i.SolveVelocityConstraints_s_impulse = new R, + i.SolveVelocityConstraints_s_P = new I, + i.SolvePositionConstraints_s_C1 = new I, + i.SolvePositionConstraints_s_P = new I, + i.SolvePositionConstraints_s_impulse = new R, + i + } + )(mi) + , ki = (function(e) { + function i() { + var i = e.call(this, t.b2JointType.e_wheelJoint) || this; + return i.localAnchorA = new I(0,0), + i.localAnchorB = new I(0,0), + i.localAxisA = new I(1,0), + i.enableMotor = !1, + i.maxMotorTorque = 0, + i.motorSpeed = 0, + i.frequencyHz = 2, + i.dampingRatio = .7, + i + } + return ti(i, e), + i.prototype.Initialize = function(t, e, i, n) { + this.bodyA = t, + this.bodyB = e, + this.bodyA.GetLocalPoint(i, this.localAnchorA), + this.bodyB.GetLocalPoint(i, this.localAnchorB), + this.bodyA.GetLocalVector(n, this.localAxisA) + } + , + i + } + )(pi) + , Gi = (function(t) { + function i(i) { + var n = t.call(this, i) || this; + return n.m_frequencyHz = 0, + n.m_dampingRatio = 0, + n.m_localAnchorA = new I, + n.m_localAnchorB = new I, + n.m_localXAxisA = new I, + n.m_localYAxisA = new I, + n.m_impulse = 0, + n.m_motorImpulse = 0, + n.m_springImpulse = 0, + n.m_maxMotorTorque = 0, + n.m_motorSpeed = 0, + n.m_enableMotor = !1, + n.m_indexA = 0, + n.m_indexB = 0, + n.m_localCenterA = new I, + n.m_localCenterB = new I, + n.m_invMassA = 0, + n.m_invMassB = 0, + n.m_invIA = 0, + n.m_invIB = 0, + n.m_ax = new I, + n.m_ay = new I, + n.m_sAx = 0, + n.m_sBx = 0, + n.m_sAy = 0, + n.m_sBy = 0, + n.m_mass = 0, + n.m_motorMass = 0, + n.m_springMass = 0, + n.m_bias = 0, + n.m_gamma = 0, + n.m_qA = new F, + n.m_qB = new F, + n.m_lalcA = new I, + n.m_lalcB = new I, + n.m_rA = new I, + n.m_rB = new I, + n.m_frequencyHz = e(i.frequencyHz, 2), + n.m_dampingRatio = e(i.dampingRatio, .7), + n.m_localAnchorA.Copy(e(i.localAnchorA, I.ZERO)), + n.m_localAnchorB.Copy(e(i.localAnchorB, I.ZERO)), + n.m_localXAxisA.Copy(e(i.localAxisA, I.UNITX)), + I.CrossOneV(n.m_localXAxisA, n.m_localYAxisA), + n.m_maxMotorTorque = e(i.maxMotorTorque, 0), + n.m_motorSpeed = e(i.motorSpeed, 0), + n.m_enableMotor = e(i.enableMotor, !1), + n.m_ax.SetZero(), + n.m_ay.SetZero(), + n + } + return ti(i, t), + i.prototype.GetMotorSpeed = function() { + return this.m_motorSpeed + } + , + i.prototype.GetMaxMotorTorque = function() { + return this.m_maxMotorTorque + } + , + i.prototype.SetSpringFrequencyHz = function(t) { + this.m_frequencyHz = t + } + , + i.prototype.GetSpringFrequencyHz = function() { + return this.m_frequencyHz + } + , + i.prototype.SetSpringDampingRatio = function(t) { + this.m_dampingRatio = t + } + , + i.prototype.GetSpringDampingRatio = function() { + return this.m_dampingRatio + } + , + i.prototype.InitVelocityConstraints = function(t) { + this.m_indexA = this.m_bodyA.m_islandIndex, + this.m_indexB = this.m_bodyB.m_islandIndex, + this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter), + this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter), + this.m_invMassA = this.m_bodyA.m_invMass, + this.m_invMassB = this.m_bodyB.m_invMass, + this.m_invIA = this.m_bodyA.m_invI, + this.m_invIB = this.m_bodyB.m_invI; + var e = this.m_invMassA + , n = this.m_invMassB + , r = this.m_invIA + , a = this.m_invIB + , o = t.positions[this.m_indexA].c + , l = t.positions[this.m_indexA].a + , h = t.velocities[this.m_indexA].v + , c = t.velocities[this.m_indexA].w + , u = t.positions[this.m_indexB].c + , _ = t.positions[this.m_indexB].a + , f = t.velocities[this.m_indexB].v + , d = t.velocities[this.m_indexB].w + , p = this.m_qA.SetAngle(l) + , m = this.m_qB.SetAngle(_); + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); + var y = F.MulRV(p, this.m_lalcA, this.m_rA); + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); + var v = F.MulRV(m, this.m_lalcB, this.m_rB) + , g = I.SubVV(I.AddVV(u, v, I.s_t0), I.AddVV(o, y, I.s_t1), i.InitVelocityConstraints_s_d); + if (F.MulRV(p, this.m_localYAxisA, this.m_ay), + this.m_sAy = I.CrossVV(I.AddVV(g, y, I.s_t0), this.m_ay), + this.m_sBy = I.CrossVV(v, this.m_ay), + this.m_mass = e + n + r * this.m_sAy * this.m_sAy + a * this.m_sBy * this.m_sBy, + this.m_mass > 0 && (this.m_mass = 1 / this.m_mass), + this.m_springMass = 0, + this.m_bias = 0, + this.m_gamma = 0, + this.m_frequencyHz > 0) { + F.MulRV(p, this.m_localXAxisA, this.m_ax), + this.m_sAx = I.CrossVV(I.AddVV(g, y, I.s_t0), this.m_ax), + this.m_sBx = I.CrossVV(v, this.m_ax); + var A = e + n + r * this.m_sAx * this.m_sAx + a * this.m_sBx * this.m_sBx; + if (A > 0) { + this.m_springMass = 1 / A; + var x = I.DotVV(g, this.m_ax) + , b = 2 * s * this.m_frequencyHz + , C = 2 * this.m_springMass * this.m_dampingRatio * b + , T = this.m_springMass * b * b + , S = t.step.dt; + this.m_gamma = S * (C + S * T), + this.m_gamma > 0 && (this.m_gamma = 1 / this.m_gamma), + this.m_bias = x * S * T * this.m_gamma, + this.m_springMass = A + this.m_gamma, + this.m_springMass > 0 && (this.m_springMass = 1 / this.m_springMass) + } + } else + this.m_springImpulse = 0; + if (this.m_enableMotor ? (this.m_motorMass = r + a, + this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass)) : (this.m_motorMass = 0, + this.m_motorImpulse = 0), + t.step.warmStarting) { + this.m_impulse *= t.step.dtRatio, + this.m_springImpulse *= t.step.dtRatio, + this.m_motorImpulse *= t.step.dtRatio; + var w = I.AddVV(I.MulSV(this.m_impulse, this.m_ay, I.s_t0), I.MulSV(this.m_springImpulse, this.m_ax, I.s_t1), i.InitVelocityConstraints_s_P) + , E = this.m_impulse * this.m_sAy + this.m_springImpulse * this.m_sAx + this.m_motorImpulse + , M = this.m_impulse * this.m_sBy + this.m_springImpulse * this.m_sBx + this.m_motorImpulse; + h.SelfMulSub(this.m_invMassA, w), + c -= this.m_invIA * E, + f.SelfMulAdd(this.m_invMassB, w), + d += this.m_invIB * M + } else + this.m_impulse = 0, + this.m_springImpulse = 0, + this.m_motorImpulse = 0; + t.velocities[this.m_indexA].w = c, + t.velocities[this.m_indexB].w = d + } + , + i.prototype.SolveVelocityConstraints = function(t) { + var e = this.m_invMassA + , n = this.m_invMassB + , r = this.m_invIA + , s = this.m_invIB + , a = t.velocities[this.m_indexA].v + , o = t.velocities[this.m_indexA].w + , l = t.velocities[this.m_indexB].v + , h = t.velocities[this.m_indexB].w + , c = I.DotVV(this.m_ax, I.SubVV(l, a, I.s_t0)) + this.m_sBx * h - this.m_sAx * o + , u = -this.m_springMass * (c + this.m_bias + this.m_gamma * this.m_springImpulse); + this.m_springImpulse += u; + var _ = I.MulSV(u, this.m_ax, i.SolveVelocityConstraints_s_P) + , f = u * this.m_sAx + , d = u * this.m_sBx; + a.SelfMulSub(e, _), + o -= r * f, + l.SelfMulAdd(n, _), + c = (h += s * d) - o - this.m_motorSpeed, + u = -this.m_motorMass * c; + var p = this.m_motorImpulse + , m = t.step.dt * this.m_maxMotorTorque; + this.m_motorImpulse = g(this.m_motorImpulse + u, -m, m), + o -= r * (u = this.m_motorImpulse - p), + h += s * u, + c = I.DotVV(this.m_ay, I.SubVV(l, a, I.s_t0)) + this.m_sBy * h - this.m_sAy * o, + u = -this.m_mass * c, + this.m_impulse += u, + _ = I.MulSV(u, this.m_ay, i.SolveVelocityConstraints_s_P), + f = u * this.m_sAy, + d = u * this.m_sBy, + a.SelfMulSub(e, _), + o -= r * f, + l.SelfMulAdd(n, _), + h += s * d, + t.velocities[this.m_indexA].w = o, + t.velocities[this.m_indexB].w = h + } + , + i.prototype.SolvePositionConstraints = function(t) { + var e = t.positions[this.m_indexA].c + , n = t.positions[this.m_indexA].a + , r = t.positions[this.m_indexB].c + , s = t.positions[this.m_indexB].a + , a = this.m_qA.SetAngle(n) + , o = this.m_qB.SetAngle(s); + I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); + var h = F.MulRV(a, this.m_lalcA, this.m_rA); + I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); + var c, u = F.MulRV(o, this.m_lalcB, this.m_rB), _ = I.AddVV(I.SubVV(r, e, I.s_t0), I.SubVV(u, h, I.s_t1), i.SolvePositionConstraints_s_d), f = F.MulRV(a, this.m_localYAxisA, this.m_ay), d = I.CrossVV(I.AddVV(_, h, I.s_t0), f), p = I.CrossVV(u, f), y = I.DotVV(_, this.m_ay), v = this.m_invMassA + this.m_invMassB + this.m_invIA * this.m_sAy * this.m_sAy + this.m_invIB * this.m_sBy * this.m_sBy; + c = 0 !== v ? -y / v : 0; + var g = I.MulSV(c, f, i.SolvePositionConstraints_s_P) + , A = c * d + , x = c * p; + return e.SelfMulSub(this.m_invMassA, g), + n -= this.m_invIA * A, + r.SelfMulAdd(this.m_invMassB, g), + s += this.m_invIB * x, + t.positions[this.m_indexA].a = n, + t.positions[this.m_indexB].a = s, + m(y) <= l + } + , + i.prototype.GetDefinition = function(t) { + return t + } + , + i.prototype.GetAnchorA = function(t) { + return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t) + } + , + i.prototype.GetAnchorB = function(t) { + return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t) + } + , + i.prototype.GetReactionForce = function(t, e) { + return e.x = t * (this.m_impulse * this.m_ay.x + this.m_springImpulse * this.m_ax.x), + e.y = t * (this.m_impulse * this.m_ay.y + this.m_springImpulse * this.m_ax.y), + e + } + , + i.prototype.GetReactionTorque = function(t) { + return t * this.m_motorImpulse + } + , + i.prototype.GetLocalAnchorA = function() { + return this.m_localAnchorA + } + , + i.prototype.GetLocalAnchorB = function() { + return this.m_localAnchorB + } + , + i.prototype.GetLocalAxisA = function() { + return this.m_localXAxisA + } + , + i.prototype.GetJointTranslation = function() { + return this.GetPrismaticJointTranslation() + } + , + i.prototype.GetJointLinearSpeed = function() { + return this.GetPrismaticJointSpeed() + } + , + i.prototype.GetJointAngle = function() { + return this.GetRevoluteJointAngle() + } + , + i.prototype.GetJointAngularSpeed = function() { + return this.GetRevoluteJointSpeed() + } + , + i.prototype.GetPrismaticJointTranslation = function() { + var t = this.m_bodyA + , e = this.m_bodyB + , i = t.GetWorldPoint(this.m_localAnchorA, new I) + , n = e.GetWorldPoint(this.m_localAnchorB, new I) + , r = I.SubVV(n, i, new I) + , s = t.GetWorldVector(this.m_localXAxisA, new I); + return I.DotVV(r, s) + } + , + i.prototype.GetPrismaticJointSpeed = function() { + var t = this.m_bodyA + , e = this.m_bodyB; + I.SubVV(this.m_localAnchorA, t.m_sweep.localCenter, this.m_lalcA); + var i = F.MulRV(t.m_xf.q, this.m_lalcA, this.m_rA); + I.SubVV(this.m_localAnchorB, e.m_sweep.localCenter, this.m_lalcB); + var n = F.MulRV(e.m_xf.q, this.m_lalcB, this.m_rB) + , r = I.AddVV(t.m_sweep.c, i, I.s_t0) + , s = I.AddVV(e.m_sweep.c, n, I.s_t1) + , a = I.SubVV(s, r, I.s_t2) + , o = t.GetWorldVector(this.m_localXAxisA, new I) + , l = t.m_linearVelocity + , h = e.m_linearVelocity + , c = t.m_angularVelocity + , u = e.m_angularVelocity; + return I.DotVV(a, I.CrossSV(c, o, I.s_t0)) + I.DotVV(o, I.SubVV(I.AddVCrossSV(h, u, n, I.s_t0), I.AddVCrossSV(l, c, i, I.s_t1), I.s_t0)) + } + , + i.prototype.GetRevoluteJointAngle = function() { + return this.m_bodyB.m_sweep.a - this.m_bodyA.m_sweep.a + } + , + i.prototype.GetRevoluteJointSpeed = function() { + var t = this.m_bodyA.m_angularVelocity; + return this.m_bodyB.m_angularVelocity - t + } + , + i.prototype.IsMotorEnabled = function() { + return this.m_enableMotor + } + , + i.prototype.EnableMotor = function(t) { + t !== this.m_enableMotor && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_enableMotor = t) + } + , + i.prototype.SetMotorSpeed = function(t) { + t !== this.m_motorSpeed && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_motorSpeed = t) + } + , + i.prototype.SetMaxMotorTorque = function(t) { + t !== this.m_maxMotorTorque && (this.m_bodyA.SetAwake(!0), + this.m_bodyB.SetAwake(!0), + this.m_maxMotorTorque = t) + } + , + i.prototype.GetMotorTorque = function(t) { + return t * this.m_motorImpulse + } + , + i.prototype.Dump = function(t) { + var e = this.m_bodyA.m_islandIndex + , i = this.m_bodyB.m_islandIndex; + t(" const jd: b2WheelJointDef = new b2WheelJointDef();\n"), + t(" jd.bodyA = bodies[%d];\n", e), + t(" jd.bodyB = bodies[%d];\n", i), + t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"), + t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y), + t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y), + t(" jd.localAxisA.Set(%.15f, %.15f);\n", this.m_localXAxisA.x, this.m_localXAxisA.y), + t(" jd.enableMotor = %s;\n", this.m_enableMotor ? "true" : "false"), + t(" jd.motorSpeed = %.15f;\n", this.m_motorSpeed), + t(" jd.maxMotorTorque = %.15f;\n", this.m_maxMotorTorque), + t(" jd.frequencyHz = %.15f;\n", this.m_frequencyHz), + t(" jd.dampingRatio = %.15f;\n", this.m_dampingRatio), + t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index) + } + , + i.InitVelocityConstraints_s_d = new I, + i.InitVelocityConstraints_s_P = new I, + i.SolveVelocityConstraints_s_P = new I, + i.SolvePositionConstraints_s_d = new I, + i.SolvePositionConstraints_s_P = new I, + i + } + )(mi); + function Ui(t, e) { + return T(t * e) + } + function zi(t, e) { + return t > e ? t : e + } + var Hi, Wi = function(t) { + this.prev = null, + this.next = null, + this.contact = t + }, ji = (function() { + function t() { + this.m_islandFlag = !1, + this.m_touchingFlag = !1, + this.m_enabledFlag = !1, + this.m_filterFlag = !1, + this.m_bulletHitFlag = !1, + this.m_toiFlag = !1, + this.m_prev = null, + this.m_next = null, + this.m_indexA = 0, + this.m_indexB = 0, + this.m_manifold = new gt, + this.m_toiCount = 0, + this.m_toi = 0, + this.m_friction = 0, + this.m_restitution = 0, + this.m_tangentSpeed = 0, + this.m_oldManifold = new gt, + this.m_nodeA = new Wi(this), + this.m_nodeB = new Wi(this) + } + return t.prototype.GetManifold = function() { + return this.m_manifold + } + , + t.prototype.GetWorldManifold = function(t) { + var e = this.m_fixtureA.GetBody() + , i = this.m_fixtureB.GetBody() + , n = this.m_fixtureA.GetShape() + , r = this.m_fixtureB.GetShape(); + t.Initialize(this.m_manifold, e.GetTransform(), n.m_radius, i.GetTransform(), r.m_radius) + } + , + t.prototype.IsTouching = function() { + return this.m_touchingFlag + } + , + t.prototype.SetEnabled = function(t) { + this.m_enabledFlag = t + } + , + t.prototype.IsEnabled = function() { + return this.m_enabledFlag + } + , + t.prototype.GetNext = function() { + return this.m_next + } + , + t.prototype.GetFixtureA = function() { + return this.m_fixtureA + } + , + t.prototype.GetChildIndexA = function() { + return this.m_indexA + } + , + t.prototype.GetFixtureB = function() { + return this.m_fixtureB + } + , + t.prototype.GetChildIndexB = function() { + return this.m_indexB + } + , + t.prototype.FlagForFiltering = function() { + this.m_filterFlag = !0 + } + , + t.prototype.SetFriction = function(t) { + this.m_friction = t + } + , + t.prototype.GetFriction = function() { + return this.m_friction + } + , + t.prototype.ResetFriction = function() { + this.m_friction = Ui(this.m_fixtureA.m_friction, this.m_fixtureB.m_friction) + } + , + t.prototype.SetRestitution = function(t) { + this.m_restitution = t + } + , + t.prototype.GetRestitution = function() { + return this.m_restitution + } + , + t.prototype.ResetRestitution = function() { + this.m_restitution = zi(this.m_fixtureA.m_restitution, this.m_fixtureB.m_restitution) + } + , + t.prototype.SetTangentSpeed = function(t) { + this.m_tangentSpeed = t + } + , + t.prototype.GetTangentSpeed = function() { + return this.m_tangentSpeed + } + , + t.prototype.Reset = function(t, e, i, n) { + this.m_islandFlag = !1, + this.m_touchingFlag = !1, + this.m_enabledFlag = !0, + this.m_filterFlag = !1, + this.m_bulletHitFlag = !1, + this.m_toiFlag = !1, + this.m_fixtureA = t, + this.m_fixtureB = i, + this.m_indexA = e, + this.m_indexB = n, + this.m_manifold.pointCount = 0, + this.m_prev = null, + this.m_next = null, + delete this.m_nodeA.contact, + this.m_nodeA.prev = null, + this.m_nodeA.next = null, + delete this.m_nodeA.other, + delete this.m_nodeB.contact, + this.m_nodeB.prev = null, + this.m_nodeB.next = null, + delete this.m_nodeB.other, + this.m_toiCount = 0, + this.m_friction = Ui(this.m_fixtureA.m_friction, this.m_fixtureB.m_friction), + this.m_restitution = zi(this.m_fixtureA.m_restitution, this.m_fixtureB.m_restitution) + } + , + t.prototype.Update = function(t) { + var e = this.m_oldManifold; + this.m_oldManifold = this.m_manifold, + this.m_manifold = e, + this.m_enabledFlag = !0; + var i = !1 + , n = this.m_touchingFlag + , r = this.m_fixtureA.IsSensor() + , s = this.m_fixtureB.IsSensor() + , a = r || s + , o = this.m_fixtureA.GetBody() + , l = this.m_fixtureB.GetBody() + , h = o.GetTransform() + , c = l.GetTransform(); + if (a) { + var u = this.m_fixtureA.GetShape() + , _ = this.m_fixtureB.GetShape(); + i = Bt(u, this.m_indexA, _, this.m_indexB, h, c), + this.m_manifold.pointCount = 0 + } else { + this.Evaluate(this.m_manifold, h, c), + i = this.m_manifold.pointCount > 0; + for (var f = 0; f < this.m_manifold.pointCount; ++f) { + var d = this.m_manifold.points[f]; + d.normalImpulse = 0, + d.tangentImpulse = 0; + for (var p = d.id, m = 0; m < this.m_oldManifold.pointCount; ++m) { + var y = this.m_oldManifold.points[m]; + if (y.id.key === p.key) { + d.normalImpulse = y.normalImpulse, + d.tangentImpulse = y.tangentImpulse; + break + } + } + } + i !== n && (o.SetAwake(!0), + l.SetAwake(!0)) + } + this.m_touchingFlag = i, + !n && i && t && t.BeginContact(this), + n && !i && t && t.EndContact(this), + !a && i && t && t.PreSolve(this, this.m_oldManifold) + } + , + t.prototype.ComputeTOI = function(e, i) { + var n = t.ComputeTOI_s_input; + n.proxyA.SetShape(this.m_fixtureA.GetShape(), this.m_indexA), + n.proxyB.SetShape(this.m_fixtureB.GetShape(), this.m_indexB), + n.sweepA.Copy(e), + n.sweepB.Copy(i), + n.tMax = l; + var r = t.ComputeTOI_s_output; + return re(r, n), + r.t + } + , + t.ComputeTOI_s_input = new jt, + t.ComputeTOI_s_output = new Yt, + t + } + )(), Xi = (function(t) { + function e() { + return t.call(this) || this + } + return ti(e, t), + e.Create = function() { + return new e + } + , + e.Destroy = function() {} + , + e.prototype.Reset = function(e, i, n, r) { + t.prototype.Reset.call(this, e, i, n, r) + } + , + e.prototype.Evaluate = function(t, e, i) { + oe(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i) + } + , + e + } + )(ji), Yi = (function(t) { + function e() { + return t.call(this) || this + } + return ti(e, t), + e.Create = function() { + return new e + } + , + e.Destroy = function() {} + , + e.prototype.Reset = function(e, i, n, r) { + t.prototype.Reset.call(this, e, i, n, r) + } + , + e.prototype.Evaluate = function(t, e, i) { + Le(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i) + } + , + e + } + )(ji), qi = (function(t) { + function e() { + return t.call(this) || this + } + return ti(e, t), + e.Create = function() { + return new e + } + , + e.Destroy = function() {} + , + e.prototype.Reset = function(e, i, n, r) { + t.prototype.Reset.call(this, e, i, n, r) + } + , + e.prototype.Evaluate = function(t, e, i) { + ue(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i) + } + , + e + } + )(ji), Ji = (function(t) { + function e() { + return t.call(this) || this + } + return ti(e, t), + e.Create = function() { + return new e + } + , + e.Destroy = function() {} + , + e.prototype.Reset = function(e, i, n, r) { + t.prototype.Reset.call(this, e, i, n, r) + } + , + e.prototype.Evaluate = function(t, e, i) { + We(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i) + } + , + e + } + )(ji), Zi = (function(t) { + function e() { + return t.call(this) || this + } + return ti(e, t), + e.Create = function() { + return new e + } + , + e.Destroy = function() {} + , + e.prototype.Reset = function(e, i, n, r) { + t.prototype.Reset.call(this, e, i, n, r) + } + , + e.prototype.Evaluate = function(t, e, i) { + Je(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i) + } + , + e + } + )(ji), Ki = (function(t) { + function e() { + return t.call(this) || this + } + return ti(e, t), + e.Create = function() { + return new e + } + , + e.Destroy = function() {} + , + e.prototype.Reset = function(e, i, n, r) { + t.prototype.Reset.call(this, e, i, n, r) + } + , + e.prototype.Evaluate = function(t, i, n) { + var r = this.m_fixtureA.GetShape() + , s = this.m_fixtureB.GetShape() + , a = r + , o = e.Evaluate_s_edge; + a.GetChildEdge(o, this.m_indexA), + We(t, o, i, s, n) + } + , + e.Evaluate_s_edge = new ri, + e + } + )(ji), Qi = (function(t) { + function e() { + return t.call(this) || this + } + return ti(e, t), + e.Create = function() { + return new e + } + , + e.Destroy = function() {} + , + e.prototype.Reset = function(e, i, n, r) { + t.prototype.Reset.call(this, e, i, n, r) + } + , + e.prototype.Evaluate = function(t, i, n) { + var r = this.m_fixtureA.GetShape() + , s = this.m_fixtureB.GetShape() + , a = r + , o = e.Evaluate_s_edge; + a.GetChildEdge(o, this.m_indexA), + Je(t, o, i, s, n) + } + , + e.Evaluate_s_edge = new ri, + e + } + )(ji), $i = function() { + this.createFcn = null, + this.destroyFcn = null, + this.primary = !1 + }, tn = (function() { + function e(t) { + this.m_allocator = null, + this.m_allocator = t, + this.InitializeRegisters() + } + return e.prototype.AddType = function(t, e, i, n) { + var r = this + , s = d(256, (function() { + return t(r.m_allocator) + } + )); + function a(e) { + return s.pop() || t(e) + } + function o(t) { + s.push(t) + } + this.m_registers[i][n].createFcn = a, + this.m_registers[i][n].destroyFcn = o, + this.m_registers[i][n].primary = !0, + i !== n && (this.m_registers[n][i].createFcn = a, + this.m_registers[n][i].destroyFcn = o, + this.m_registers[n][i].primary = !1) + } + , + e.prototype.InitializeRegisters = function() { + this.m_registers = []; + for (var e = 0; e < t.b2ShapeType.e_shapeTypeCount; e++) { + this.m_registers[e] = []; + for (var i = 0; i < t.b2ShapeType.e_shapeTypeCount; i++) + this.m_registers[e][i] = new $i + } + this.AddType(Xi.Create, Xi.Destroy, t.b2ShapeType.e_circleShape, t.b2ShapeType.e_circleShape), + this.AddType(qi.Create, qi.Destroy, t.b2ShapeType.e_polygonShape, t.b2ShapeType.e_circleShape), + this.AddType(Yi.Create, Yi.Destroy, t.b2ShapeType.e_polygonShape, t.b2ShapeType.e_polygonShape), + this.AddType(Ji.Create, Ji.Destroy, t.b2ShapeType.e_edgeShape, t.b2ShapeType.e_circleShape), + this.AddType(Zi.Create, Zi.Destroy, t.b2ShapeType.e_edgeShape, t.b2ShapeType.e_polygonShape), + this.AddType(Ki.Create, Ki.Destroy, t.b2ShapeType.e_chainShape, t.b2ShapeType.e_circleShape), + this.AddType(Qi.Create, Qi.Destroy, t.b2ShapeType.e_chainShape, t.b2ShapeType.e_polygonShape) + } + , + e.prototype.Create = function(t, e, i, n) { + var r = t.GetType() + , s = i.GetType() + , a = this.m_registers[r][s]; + if (a.createFcn) { + var o = a.createFcn(this.m_allocator); + return a.primary ? o.Reset(t, e, i, n) : o.Reset(i, n, t, e), + o + } + return null + } + , + e.prototype.Destroy = function(t) { + var e = t.m_fixtureA + , i = t.m_fixtureB; + t.m_manifold.pointCount > 0 && !e.IsSensor() && !i.IsSensor() && (e.GetBody().SetAwake(!0), + i.GetBody().SetAwake(!0)); + var n = e.GetType() + , r = i.GetType() + , s = this.m_registers[n][r]; + s.destroyFcn && s.destroyFcn(t, this.m_allocator) + } + , + e + } + )(), en = (function() { + function t() {} + return t.prototype.SayGoodbyeJoint = function() {} + , + t.prototype.SayGoodbyeFixture = function() {} + , + t.prototype.SayGoodbyeParticleGroup = function() {} + , + t.prototype.SayGoodbyeParticle = function() {} + , + t + } + )(), nn = (function() { + function e() {} + return e.prototype.ShouldCollide = function(e, i) { + var n = e.GetBody() + , r = i.GetBody(); + if (r.GetType() === t.b2BodyType.b2_staticBody && n.GetType() === t.b2BodyType.b2_staticBody) + return !1; + if (!r.ShouldCollideConnected(n)) + return !1; + var s = e.GetFilterData() + , a = i.GetFilterData(); + return s.groupIndex === a.groupIndex && 0 !== s.groupIndex ? s.groupIndex > 0 : 0 != (s.maskBits & a.categoryBits) && 0 != (s.categoryBits & a.maskBits) + } + , + e.prototype.ShouldCollideFixtureParticle = function() { + return !0 + } + , + e.prototype.ShouldCollideParticleParticle = function() { + return !0 + } + , + e.b2_defaultFilter = new e, + e + } + )(), rn = function() { + this.normalImpulses = p(a), + this.tangentImpulses = p(a), + this.count = 0 + }, sn = (function() { + function t() {} + return t.prototype.BeginContact = function() {} + , + t.prototype.EndContact = function() {} + , + t.prototype.BeginContactFixtureParticle = function() {} + , + t.prototype.EndContactFixtureParticle = function() {} + , + t.prototype.BeginContactParticleParticle = function() {} + , + t.prototype.EndContactParticleParticle = function() {} + , + t.prototype.PreSolve = function() {} + , + t.prototype.PostSolve = function() {} + , + t.b2_defaultListener = new t, + t + } + )(), an = (function() { + function t() {} + return t.prototype.ReportFixture = function() { + return !0 + } + , + t.prototype.ReportParticle = function() { + return !1 + } + , + t.prototype.ShouldQueryParticleSystem = function() { + return !0 + } + , + t + } + )(), on = (function() { + function t() {} + return t.prototype.ReportFixture = function(t, e, i, n) { + return n + } + , + t.prototype.ReportParticle = function() { + return 0 + } + , + t.prototype.ShouldQueryParticleSystem = function() { + return !0 + } + , + t + } + )(), ln = (function() { + function e() { + this.m_broadPhase = new Lt, + this.m_contactList = null, + this.m_contactCount = 0, + this.m_contactFilter = nn.b2_defaultFilter, + this.m_contactListener = sn.b2_defaultListener, + this.m_allocator = null, + this.m_contactFactory = new tn(this.m_allocator) + } + return e.prototype.AddPair = function(t, e) { + var i = t.fixture + , n = e.fixture + , r = t.childIndex + , s = e.childIndex + , a = i.GetBody() + , o = n.GetBody(); + if (a !== o) { + for (var l = o.GetContactList(); l; ) { + if (l.other === a) { + var h = l.contact.GetFixtureA() + , c = l.contact.GetFixtureB() + , u = l.contact.GetChildIndexA() + , _ = l.contact.GetChildIndexB(); + if (h === i && c === n && u === r && _ === s) + return; + if (h === n && c === i && u === s && _ === r) + return + } + l = l.next + } + if (!this.m_contactFilter || this.m_contactFilter.ShouldCollide(i, n)) { + var f = this.m_contactFactory.Create(i, r, n, s); + null !== f && (i = f.GetFixtureA(), + n = f.GetFixtureB(), + r = f.GetChildIndexA(), + s = f.GetChildIndexB(), + a = i.m_body, + o = n.m_body, + f.m_prev = null, + f.m_next = this.m_contactList, + null !== this.m_contactList && (this.m_contactList.m_prev = f), + this.m_contactList = f, + f.m_nodeA.contact = f, + f.m_nodeA.other = o, + f.m_nodeA.prev = null, + f.m_nodeA.next = a.m_contactList, + null !== a.m_contactList && (a.m_contactList.prev = f.m_nodeA), + a.m_contactList = f.m_nodeA, + f.m_nodeB.contact = f, + f.m_nodeB.other = a, + f.m_nodeB.prev = null, + f.m_nodeB.next = o.m_contactList, + null !== o.m_contactList && (o.m_contactList.prev = f.m_nodeB), + o.m_contactList = f.m_nodeB, + i.IsSensor() || n.IsSensor() || (a.SetAwake(!0), + o.SetAwake(!0)), + ++this.m_contactCount) + } + } + } + , + e.prototype.FindNewContacts = function() { + var t = this; + this.m_broadPhase.UpdatePairs((function(e, i) { + t.AddPair(e, i) + } + )) + } + , + e.prototype.Destroy = function(t) { + var e = t.GetFixtureA() + , i = t.GetFixtureB() + , n = e.GetBody() + , r = i.GetBody(); + this.m_contactListener && t.IsTouching() && this.m_contactListener.EndContact(t), + t.m_prev && (t.m_prev.m_next = t.m_next), + t.m_next && (t.m_next.m_prev = t.m_prev), + t === this.m_contactList && (this.m_contactList = t.m_next), + t.m_nodeA.prev && (t.m_nodeA.prev.next = t.m_nodeA.next), + t.m_nodeA.next && (t.m_nodeA.next.prev = t.m_nodeA.prev), + t.m_nodeA === n.m_contactList && (n.m_contactList = t.m_nodeA.next), + t.m_nodeB.prev && (t.m_nodeB.prev.next = t.m_nodeB.next), + t.m_nodeB.next && (t.m_nodeB.next.prev = t.m_nodeB.prev), + t.m_nodeB === r.m_contactList && (r.m_contactList = t.m_nodeB.next), + this.m_contactFactory.Destroy(t), + --this.m_contactCount + } + , + e.prototype.Collide = function() { + for (var e = this.m_contactList; e; ) { + var i = e.GetFixtureA() + , n = e.GetFixtureB() + , r = e.GetChildIndexA() + , s = e.GetChildIndexB() + , a = i.GetBody() + , o = n.GetBody(); + if (e.m_filterFlag) { + if (this.m_contactFilter && !this.m_contactFilter.ShouldCollide(i, n)) { + e = (c = e).m_next, + this.Destroy(c); + continue + } + e.m_filterFlag = !1 + } + var l = a.IsAwake() && a.m_type !== t.b2BodyType.b2_staticBody + , h = o.IsAwake() && o.m_type !== t.b2BodyType.b2_staticBody; + if (l || h) { + var c, u = i.m_proxies[r].treeNode, _ = n.m_proxies[s].treeNode; + St(u.aabb, _.aabb) ? (e.Update(this.m_contactListener), + e = e.m_next) : (e = (c = e).m_next, + this.Destroy(c)) + } else + e = e.m_next + } + } + , + e + } + )(), hn = (function() { + function t() { + this.step = 0, + this.collide = 0, + this.solve = 0, + this.solveInit = 0, + this.solveVelocity = 0, + this.solvePosition = 0, + this.broadphase = 0, + this.solveTOI = 0 + } + return t.prototype.Reset = function() { + return this.step = 0, + this.collide = 0, + this.solve = 0, + this.solveInit = 0, + this.solveVelocity = 0, + this.solvePosition = 0, + this.broadphase = 0, + this.solveTOI = 0, + this + } + , + t + } + )(), cn = (function() { + function t() { + this.dt = 0, + this.inv_dt = 0, + this.dtRatio = 0, + this.velocityIterations = 0, + this.positionIterations = 0, + this.particleIterations = 0, + this.warmStarting = !1 + } + return t.prototype.Copy = function(t) { + return this.dt = t.dt, + this.inv_dt = t.inv_dt, + this.dtRatio = t.dtRatio, + this.positionIterations = t.positionIterations, + this.velocityIterations = t.velocityIterations, + this.particleIterations = t.particleIterations, + this.warmStarting = t.warmStarting, + this + } + , + t + } + )(), un = (function() { + function t() { + this.c = new I, + this.a = 0 + } + return t.MakeArray = function(e) { + return d(e, (function() { + return new t + } + )) + } + , + t + } + )(), _n = (function() { + function t() { + this.v = new I, + this.w = 0 + } + return t.MakeArray = function(e) { + return d(e, (function() { + return new t + } + )) + } + , + t + } + )(), fn = function() { + this.step = new cn + }, dn = (function() { + function t() { + this.rA = new I, + this.rB = new I, + this.normalImpulse = 0, + this.tangentImpulse = 0, + this.normalMass = 0, + this.tangentMass = 0, + this.velocityBias = 0 + } + return t.MakeArray = function(e) { + return d(e, (function() { + return new t + } + )) + } + , + t + } + )(), pn = (function() { + function t() { + this.points = dn.MakeArray(a), + this.normal = new I, + this.tangent = new I, + this.normalMass = new O, + this.K = new O, + this.indexA = 0, + this.indexB = 0, + this.invMassA = 0, + this.invMassB = 0, + this.invIA = 0, + this.invIB = 0, + this.friction = 0, + this.restitution = 0, + this.tangentSpeed = 0, + this.pointCount = 0, + this.contactIndex = 0 + } + return t.MakeArray = function(e) { + return d(e, (function() { + return new t + } + )) + } + , + t + } + )(), mn = (function() { + function e() { + this.localPoints = I.MakeArray(a), + this.localNormal = new I, + this.localPoint = new I, + this.indexA = 0, + this.indexB = 0, + this.invMassA = 0, + this.invMassB = 0, + this.localCenterA = new I, + this.localCenterB = new I, + this.invIA = 0, + this.invIB = 0, + this.type = t.b2ManifoldType.e_unknown, + this.radiusA = 0, + this.radiusB = 0, + this.pointCount = 0 + } + return e.MakeArray = function(t) { + return d(t, (function() { + return new e + } + )) + } + , + e + } + )(), yn = function() { + this.step = new cn, + this.count = 0, + this.allocator = null + }, vn = (function() { + function e() { + this.normal = new I, + this.point = new I, + this.separation = 0 + } + return e.prototype.Initialize = function(i, n, r, s) { + var a = e.Initialize_s_pointA + , o = e.Initialize_s_pointB + , l = e.Initialize_s_planePoint + , h = e.Initialize_s_clipPoint; + switch (i.type) { + case t.b2ManifoldType.e_circles: + V.MulXV(n, i.localPoint, a), + V.MulXV(r, i.localPoints[0], o), + I.SubVV(o, a, this.normal).SelfNormalize(), + I.MidVV(a, o, this.point), + this.separation = I.DotVV(I.SubVV(o, a, I.s_t0), this.normal) - i.radiusA - i.radiusB; + break; + case t.b2ManifoldType.e_faceA: + F.MulRV(n.q, i.localNormal, this.normal), + V.MulXV(n, i.localPoint, l), + V.MulXV(r, i.localPoints[s], h), + this.separation = I.DotVV(I.SubVV(h, l, I.s_t0), this.normal) - i.radiusA - i.radiusB, + this.point.Copy(h); + break; + case t.b2ManifoldType.e_faceB: + F.MulRV(r.q, i.localNormal, this.normal), + V.MulXV(r, i.localPoint, l), + V.MulXV(n, i.localPoints[s], h), + this.separation = I.DotVV(I.SubVV(h, l, I.s_t0), this.normal) - i.radiusA - i.radiusB, + this.point.Copy(h), + this.normal.SelfNeg() + } + } + , + e.Initialize_s_pointA = new I, + e.Initialize_s_pointB = new I, + e.Initialize_s_planePoint = new I, + e.Initialize_s_clipPoint = new I, + e + } + )(), gn = (function() { + function t() { + this.m_step = new cn, + this.m_allocator = null, + this.m_positionConstraints = mn.MakeArray(1024), + this.m_velocityConstraints = pn.MakeArray(1024), + this.m_count = 0 + } + return t.prototype.Initialize = function(t) { + if (this.m_step.Copy(t.step), + this.m_allocator = t.allocator, + this.m_count = t.count, + this.m_positionConstraints.length < this.m_count) + for (var e = v(2 * this.m_positionConstraints.length, this.m_count); this.m_positionConstraints.length < e; ) + this.m_positionConstraints[this.m_positionConstraints.length] = new mn; + if (this.m_velocityConstraints.length < this.m_count) + for (e = v(2 * this.m_velocityConstraints.length, this.m_count); this.m_velocityConstraints.length < e; ) + this.m_velocityConstraints[this.m_velocityConstraints.length] = new pn; + this.m_positions = t.positions, + this.m_velocities = t.velocities, + this.m_contacts = t.contacts; + for (var i = 0; i < this.m_count; ++i) { + var n = this.m_contacts[i] + , r = n.m_fixtureA + , s = n.m_fixtureB + , a = r.GetShape() + , o = s.GetShape() + , l = a.m_radius + , h = o.m_radius + , c = r.GetBody() + , u = s.GetBody() + , _ = n.GetManifold() + , f = _.pointCount + , d = this.m_velocityConstraints[i]; + d.friction = n.m_friction, + d.restitution = n.m_restitution, + d.tangentSpeed = n.m_tangentSpeed, + d.indexA = c.m_islandIndex, + d.indexB = u.m_islandIndex, + d.invMassA = c.m_invMass, + d.invMassB = u.m_invMass, + d.invIA = c.m_invI, + d.invIB = u.m_invI, + d.contactIndex = i, + d.pointCount = f, + d.K.SetZero(), + d.normalMass.SetZero(); + var p = this.m_positionConstraints[i]; + p.indexA = c.m_islandIndex, + p.indexB = u.m_islandIndex, + p.invMassA = c.m_invMass, + p.invMassB = u.m_invMass, + p.localCenterA.Copy(c.m_sweep.localCenter), + p.localCenterB.Copy(u.m_sweep.localCenter), + p.invIA = c.m_invI, + p.invIB = u.m_invI, + p.localNormal.Copy(_.localNormal), + p.localPoint.Copy(_.localPoint), + p.pointCount = f, + p.radiusA = l, + p.radiusB = h, + p.type = _.type; + for (var m = 0; m < f; ++m) { + var y = _.points[m] + , g = d.points[m]; + this.m_step.warmStarting ? (g.normalImpulse = this.m_step.dtRatio * y.normalImpulse, + g.tangentImpulse = this.m_step.dtRatio * y.tangentImpulse) : (g.normalImpulse = 0, + g.tangentImpulse = 0), + g.rA.SetZero(), + g.rB.SetZero(), + g.normalMass = 0, + g.tangentMass = 0, + g.velocityBias = 0, + p.localPoints[m].Copy(y.localPoint) + } + } + return this + } + , + t.prototype.InitializeVelocityConstraints = function() { + for (var e = t.InitializeVelocityConstraints_s_xfA, i = t.InitializeVelocityConstraints_s_xfB, n = t.InitializeVelocityConstraints_s_worldManifold, r = 0; r < this.m_count; ++r) { + var s = this.m_velocityConstraints[r] + , a = this.m_positionConstraints[r] + , o = a.radiusA + , l = a.radiusB + , h = this.m_contacts[s.contactIndex].GetManifold() + , c = s.indexA + , u = s.indexB + , _ = s.invMassA + , f = s.invMassB + , d = s.invIA + , p = s.invIB + , m = a.localCenterA + , y = a.localCenterB + , v = this.m_positions[c].c + , g = this.m_positions[c].a + , A = this.m_velocities[c].v + , x = this.m_velocities[c].w + , b = this.m_positions[u].c + , C = this.m_positions[u].a + , T = this.m_velocities[u].v + , S = this.m_velocities[u].w; + e.q.SetAngle(g), + i.q.SetAngle(C), + I.SubVV(v, F.MulRV(e.q, m, I.s_t0), e.p), + I.SubVV(b, F.MulRV(i.q, y, I.s_t0), i.p), + n.Initialize(h, e, o, i, l), + s.normal.Copy(n.normal), + I.CrossVOne(s.normal, s.tangent); + for (var w = s.pointCount, E = 0; E < w; ++E) { + var M = s.points[E]; + I.SubVV(n.points[E], v, M.rA), + I.SubVV(n.points[E], b, M.rB); + var D = I.CrossVV(M.rA, s.normal) + , B = I.CrossVV(M.rB, s.normal) + , P = _ + f + d * D * D + p * B * B; + M.normalMass = P > 0 ? 1 / P : 0; + var R = s.tangent + , O = I.CrossVV(M.rA, R) + , L = I.CrossVV(M.rB, R) + , V = _ + f + d * O * O + p * L * L; + M.tangentMass = V > 0 ? 1 / V : 0, + M.velocityBias = 0; + var N = I.DotVV(s.normal, I.SubVV(I.AddVCrossSV(T, S, M.rB, I.s_t0), I.AddVCrossSV(A, x, M.rA, I.s_t1), I.s_t0)); + N < -1 && (M.velocityBias += -s.restitution * N) + } + s.pointCount + } + } + , + t.prototype.WarmStart = function() { + for (var e = t.WarmStart_s_P, i = 0; i < this.m_count; ++i) { + for (var n = this.m_velocityConstraints[i], r = n.indexA, s = n.indexB, a = n.invMassA, o = n.invIA, l = n.invMassB, h = n.invIB, c = n.pointCount, u = this.m_velocities[r].v, _ = this.m_velocities[r].w, f = this.m_velocities[s].v, d = this.m_velocities[s].w, p = n.normal, m = n.tangent, y = 0; y < c; ++y) { + var v = n.points[y]; + I.AddVV(I.MulSV(v.normalImpulse, p, I.s_t0), I.MulSV(v.tangentImpulse, m, I.s_t1), e), + _ -= o * I.CrossVV(v.rA, e), + u.SelfMulSub(a, e), + d += h * I.CrossVV(v.rB, e), + f.SelfMulAdd(l, e) + } + this.m_velocities[r].w = _, + this.m_velocities[s].w = d + } + } + , + t.prototype.SolveVelocityConstraints = function() { + for (var e = t.SolveVelocityConstraints_s_dv, i = (t.SolveVelocityConstraints_s_dv1, + t.SolveVelocityConstraints_s_dv2, + t.SolveVelocityConstraints_s_P), n = (t.SolveVelocityConstraints_s_a, + t.SolveVelocityConstraints_s_b, + t.SolveVelocityConstraints_s_x, + t.SolveVelocityConstraints_s_d, + t.SolveVelocityConstraints_s_P1, + t.SolveVelocityConstraints_s_P2, + t.SolveVelocityConstraints_s_P1P2, + 0); n < this.m_count; ++n) { + for (var r = this.m_velocityConstraints[n], s = r.indexA, a = r.indexB, o = r.invMassA, l = r.invIA, h = r.invMassB, c = r.invIB, u = r.pointCount, _ = this.m_velocities[s].v, f = this.m_velocities[s].w, d = this.m_velocities[a].v, p = this.m_velocities[a].w, m = r.normal, y = r.tangent, A = r.friction, x = 0; x < u; ++x) { + var b = r.points[x]; + I.SubVV(I.AddVCrossSV(d, p, b.rB, I.s_t0), I.AddVCrossSV(_, f, b.rA, I.s_t1), e); + var C = I.DotVV(e, y) - r.tangentSpeed + , T = b.tangentMass * -C + , S = A * b.normalImpulse; + T = (w = g(b.tangentImpulse + T, -S, S)) - b.tangentImpulse, + b.tangentImpulse = w, + I.MulSV(T, y, i), + _.SelfMulSub(o, i), + f -= l * I.CrossVV(b.rA, i), + d.SelfMulAdd(h, i), + p += c * I.CrossVV(b.rB, i) + } + for (r.pointCount, + x = 0; x < u; ++x) { + b = r.points[x], + I.SubVV(I.AddVCrossSV(d, p, b.rB, I.s_t0), I.AddVCrossSV(_, f, b.rA, I.s_t1), e); + var w, E = I.DotVV(e, m); + T = -b.normalMass * (E - b.velocityBias), + T = (w = v(b.normalImpulse + T, 0)) - b.normalImpulse, + b.normalImpulse = w, + I.MulSV(T, m, i), + _.SelfMulSub(o, i), + f -= l * I.CrossVV(b.rA, i), + d.SelfMulAdd(h, i), + p += c * I.CrossVV(b.rB, i) + } + this.m_velocities[s].w = f, + this.m_velocities[a].w = p + } + } + , + t.prototype.StoreImpulses = function() { + for (var t = 0; t < this.m_count; ++t) + for (var e = this.m_velocityConstraints[t], i = this.m_contacts[e.contactIndex].GetManifold(), n = 0; n < e.pointCount; ++n) + i.points[n].normalImpulse = e.points[n].normalImpulse, + i.points[n].tangentImpulse = e.points[n].tangentImpulse + } + , + t.prototype.SolvePositionConstraints = function() { + for (var e = t.SolvePositionConstraints_s_xfA, i = t.SolvePositionConstraints_s_xfB, n = t.SolvePositionConstraints_s_psm, r = t.SolvePositionConstraints_s_rA, s = t.SolvePositionConstraints_s_rB, a = t.SolvePositionConstraints_s_P, o = 0, h = 0; h < this.m_count; ++h) { + for (var c = this.m_positionConstraints[h], u = c.indexA, _ = c.indexB, f = c.localCenterA, d = c.invMassA, p = c.invIA, m = c.localCenterB, v = c.invMassB, A = c.invIB, x = c.pointCount, b = this.m_positions[u].c, C = this.m_positions[u].a, T = this.m_positions[_].c, S = this.m_positions[_].a, w = 0; w < x; ++w) { + e.q.SetAngle(C), + i.q.SetAngle(S), + I.SubVV(b, F.MulRV(e.q, f, I.s_t0), e.p), + I.SubVV(T, F.MulRV(i.q, m, I.s_t0), i.p), + n.Initialize(c, e, i, w); + var E = n.normal + , M = n.point + , D = n.separation; + I.SubVV(M, b, r), + I.SubVV(M, T, s), + o = y(o, D); + var B = g(.2 * (D + l), -.2, 0) + , P = I.CrossVV(r, E) + , R = I.CrossVV(s, E) + , O = d + v + p * P * P + A * R * R + , L = O > 0 ? -B / O : 0; + I.MulSV(L, E, a), + b.SelfMulSub(d, a), + C -= p * I.CrossVV(r, a), + T.SelfMulAdd(v, a), + S += A * I.CrossVV(s, a) + } + this.m_positions[u].a = C, + this.m_positions[_].a = S + } + return o > -3 * l + } + , + t.prototype.SolveTOIPositionConstraints = function(e, i) { + for (var n = t.SolveTOIPositionConstraints_s_xfA, r = t.SolveTOIPositionConstraints_s_xfB, s = t.SolveTOIPositionConstraints_s_psm, a = t.SolveTOIPositionConstraints_s_rA, o = t.SolveTOIPositionConstraints_s_rB, h = t.SolveTOIPositionConstraints_s_P, c = 0, u = 0; u < this.m_count; ++u) { + var _ = this.m_positionConstraints[u] + , f = _.indexA + , d = _.indexB + , p = _.localCenterA + , m = _.localCenterB + , v = _.pointCount + , A = 0 + , x = 0; + f !== e && f !== i || (A = _.invMassA, + x = _.invIA); + var b = 0 + , C = 0; + d !== e && d !== i || (b = _.invMassB, + C = _.invIB); + for (var T = this.m_positions[f].c, S = this.m_positions[f].a, w = this.m_positions[d].c, E = this.m_positions[d].a, M = 0; M < v; ++M) { + n.q.SetAngle(S), + r.q.SetAngle(E), + I.SubVV(T, F.MulRV(n.q, p, I.s_t0), n.p), + I.SubVV(w, F.MulRV(r.q, m, I.s_t0), r.p), + s.Initialize(_, n, r, M); + var D = s.normal + , B = s.point + , P = s.separation; + I.SubVV(B, T, a), + I.SubVV(B, w, o), + c = y(c, P); + var R = g(.75 * (P + l), -.2, 0) + , O = I.CrossVV(a, D) + , L = I.CrossVV(o, D) + , V = A + b + x * O * O + C * L * L + , N = V > 0 ? -R / V : 0; + I.MulSV(N, D, h), + T.SelfMulSub(A, h), + S -= x * I.CrossVV(a, h), + w.SelfMulAdd(b, h), + E += C * I.CrossVV(o, h) + } + this.m_positions[f].a = S, + this.m_positions[d].a = E + } + return c >= -1.5 * l + } + , + t.InitializeVelocityConstraints_s_xfA = new V, + t.InitializeVelocityConstraints_s_xfB = new V, + t.InitializeVelocityConstraints_s_worldManifold = new At, + t.WarmStart_s_P = new I, + t.SolveVelocityConstraints_s_dv = new I, + t.SolveVelocityConstraints_s_dv1 = new I, + t.SolveVelocityConstraints_s_dv2 = new I, + t.SolveVelocityConstraints_s_P = new I, + t.SolveVelocityConstraints_s_a = new I, + t.SolveVelocityConstraints_s_b = new I, + t.SolveVelocityConstraints_s_x = new I, + t.SolveVelocityConstraints_s_d = new I, + t.SolveVelocityConstraints_s_P1 = new I, + t.SolveVelocityConstraints_s_P2 = new I, + t.SolveVelocityConstraints_s_P1P2 = new I, + t.SolvePositionConstraints_s_xfA = new V, + t.SolvePositionConstraints_s_xfB = new V, + t.SolvePositionConstraints_s_psm = new vn, + t.SolvePositionConstraints_s_rA = new I, + t.SolvePositionConstraints_s_rB = new I, + t.SolvePositionConstraints_s_P = new I, + t.SolveTOIPositionConstraints_s_xfA = new V, + t.SolveTOIPositionConstraints_s_xfB = new V, + t.SolveTOIPositionConstraints_s_psm = new vn, + t.SolveTOIPositionConstraints_s_rA = new I, + t.SolveTOIPositionConstraints_s_rB = new I, + t.SolveTOIPositionConstraints_s_P = new I, + t + } + )(), An = (function() { + function e() { + this.m_allocator = null, + this.m_bodies = [], + this.m_contacts = [], + this.m_joints = [], + this.m_positions = un.MakeArray(1024), + this.m_velocities = _n.MakeArray(1024), + this.m_bodyCount = 0, + this.m_jointCount = 0, + this.m_contactCount = 0, + this.m_bodyCapacity = 0, + this.m_contactCapacity = 0, + this.m_jointCapacity = 0 + } + return e.prototype.Initialize = function(t, e, i, n, r) { + if (this.m_bodyCapacity = t, + this.m_contactCapacity = e, + this.m_jointCapacity = i, + this.m_bodyCount = 0, + this.m_contactCount = 0, + this.m_jointCount = 0, + this.m_allocator = n, + this.m_listener = r, + this.m_positions.length < t) + for (var s = v(2 * this.m_positions.length, t); this.m_positions.length < s; ) + this.m_positions[this.m_positions.length] = new un; + if (this.m_velocities.length < t) + for (s = v(2 * this.m_velocities.length, t); this.m_velocities.length < s; ) + this.m_velocities[this.m_velocities.length] = new _n + } + , + e.prototype.Clear = function() { + this.m_bodyCount = 0, + this.m_contactCount = 0, + this.m_jointCount = 0 + } + , + e.prototype.AddBody = function(t) { + t.m_islandIndex = this.m_bodyCount, + this.m_bodies[this.m_bodyCount++] = t + } + , + e.prototype.AddContact = function(t) { + this.m_contacts[this.m_contactCount++] = t + } + , + e.prototype.AddJoint = function(t) { + this.m_joints[this.m_jointCount++] = t + } + , + e.prototype.Solve = function(n, r, s, a) { + for (var o = e.s_timer.Reset(), l = r.dt, h = 0; h < this.m_bodyCount; ++h) { + var c = this.m_bodies[h]; + this.m_positions[h].c.Copy(c.m_sweep.c); + var u = c.m_sweep.a + , _ = this.m_velocities[h].v.Copy(c.m_linearVelocity) + , f = c.m_angularVelocity; + c.m_sweep.c0.Copy(c.m_sweep.c), + c.m_sweep.a0 = c.m_sweep.a, + c.m_type === t.b2BodyType.b2_dynamicBody && (_.x += l * (c.m_gravityScale * s.x + c.m_invMass * c.m_force.x), + _.y += l * (c.m_gravityScale * s.y + c.m_invMass * c.m_force.y), + f += l * c.m_invI * c.m_torque, + _.SelfMul(1 / (1 + l * c.m_linearDamping)), + f *= 1 / (1 + l * c.m_angularDamping)), + this.m_positions[h].a = u, + this.m_velocities[h].w = f + } + o.Reset(); + var d = e.s_solverData; + d.step.Copy(r), + d.positions = this.m_positions, + d.velocities = this.m_velocities; + var p = e.s_contactSolverDef; + p.step.Copy(r), + p.contacts = this.m_contacts, + p.count = this.m_contactCount, + p.positions = this.m_positions, + p.velocities = this.m_velocities, + p.allocator = this.m_allocator; + var v = e.s_contactSolver.Initialize(p); + for (v.InitializeVelocityConstraints(), + r.warmStarting && v.WarmStart(), + h = 0; h < this.m_jointCount; ++h) + this.m_joints[h].InitVelocityConstraints(d); + for (n.solveInit = o.GetMilliseconds(), + o.Reset(), + h = 0; h < r.velocityIterations; ++h) { + for (var g = 0; g < this.m_jointCount; ++g) + this.m_joints[g].SolveVelocityConstraints(d); + v.SolveVelocityConstraints() + } + for (v.StoreImpulses(), + n.solveVelocity = o.GetMilliseconds(), + h = 0; h < this.m_bodyCount; ++h) { + var A = this.m_positions[h].c + , x = (u = this.m_positions[h].a, + _ = this.m_velocities[h].v, + f = this.m_velocities[h].w, + I.MulSV(l, _, e.s_translation)); + if (I.DotVV(x, x) > 4) { + var b = 2 / x.Length(); + _.SelfMul(b) + } + var C = l * f; + C * C > 2.4674011002726646 && (f *= b = 1.570796326795 / m(C)), + A.x += l * _.x, + A.y += l * _.y, + u += l * f, + this.m_positions[h].a = u, + this.m_velocities[h].w = f + } + o.Reset(); + var T = !1; + for (h = 0; h < r.positionIterations; ++h) { + var S = v.SolvePositionConstraints() + , w = !0; + for (g = 0; g < this.m_jointCount; ++g) { + var E = this.m_joints[g].SolvePositionConstraints(d); + w = w && E + } + if (S && w) { + T = !0; + break + } + } + for (h = 0; h < this.m_bodyCount; ++h) { + var M = this.m_bodies[h]; + M.m_sweep.c.Copy(this.m_positions[h].c), + M.m_sweep.a = this.m_positions[h].a, + M.m_linearVelocity.Copy(this.m_velocities[h].v), + M.m_angularVelocity = this.m_velocities[h].w, + M.SynchronizeTransform() + } + if (n.solvePosition = o.GetMilliseconds(), + this.Report(v.m_velocityConstraints), + a) { + var D = i; + for (h = 0; h < this.m_bodyCount; ++h) + (c = this.m_bodies[h]).GetType() !== t.b2BodyType.b2_staticBody && (!c.m_autoSleepFlag || c.m_angularVelocity * c.m_angularVelocity > .0012184696791469947 || I.DotVV(c.m_linearVelocity, c.m_linearVelocity) > 1e-4 ? (c.m_sleepTime = 0, + D = 0) : (c.m_sleepTime += l, + D = y(D, c.m_sleepTime))); + if (D >= .5 && T) + for (h = 0; h < this.m_bodyCount; ++h) + (c = this.m_bodies[h]).SetAwake(!1) + } + } + , + e.prototype.SolveTOI = function(t, i, n) { + for (var r = 0; r < this.m_bodyCount; ++r) { + var s = this.m_bodies[r]; + this.m_positions[r].c.Copy(s.m_sweep.c), + this.m_positions[r].a = s.m_sweep.a, + this.m_velocities[r].v.Copy(s.m_linearVelocity), + this.m_velocities[r].w = s.m_angularVelocity + } + var a = e.s_contactSolverDef; + a.contacts = this.m_contacts, + a.count = this.m_contactCount, + a.allocator = this.m_allocator, + a.step.Copy(t), + a.positions = this.m_positions, + a.velocities = this.m_velocities; + var o = e.s_contactSolver.Initialize(a); + for (r = 0; r < t.positionIterations && !o.SolveTOIPositionConstraints(i, n); ++r) + ; + for (this.m_bodies[i].m_sweep.c0.Copy(this.m_positions[i].c), + this.m_bodies[i].m_sweep.a0 = this.m_positions[i].a, + this.m_bodies[n].m_sweep.c0.Copy(this.m_positions[n].c), + this.m_bodies[n].m_sweep.a0 = this.m_positions[n].a, + o.InitializeVelocityConstraints(), + r = 0; r < t.velocityIterations; ++r) + o.SolveVelocityConstraints(); + var l = t.dt; + for (r = 0; r < this.m_bodyCount; ++r) { + var h = this.m_positions[r].c + , c = this.m_positions[r].a + , u = this.m_velocities[r].v + , _ = this.m_velocities[r].w + , f = I.MulSV(l, u, e.s_translation); + if (I.DotVV(f, f) > 4) { + var d = 2 / f.Length(); + u.SelfMul(d) + } + var p = l * _; + p * p > 2.4674011002726646 && (_ *= d = 1.570796326795 / m(p)), + h.SelfMulAdd(l, u), + c += l * _, + this.m_positions[r].a = c, + this.m_velocities[r].w = _; + var y = this.m_bodies[r]; + y.m_sweep.c.Copy(h), + y.m_sweep.a = c, + y.m_linearVelocity.Copy(u), + y.m_angularVelocity = _, + y.SynchronizeTransform() + } + this.Report(o.m_velocityConstraints) + } + , + e.prototype.Report = function(t) { + if (null !== this.m_listener) + for (var i = 0; i < this.m_contactCount; ++i) { + var n = this.m_contacts[i]; + if (n) { + var r = t[i] + , s = e.s_impulse; + s.count = r.pointCount; + for (var a = 0; a < r.pointCount; ++a) + s.normalImpulses[a] = r.points[a].normalImpulse, + s.tangentImpulses[a] = r.points[a].tangentImpulse; + this.m_listener.PostSolve(n, s) + } + } + } + , + e.s_timer = new U, + e.s_solverData = new fn, + e.s_contactSolverDef = new yn, + e.s_contactSolver = new gn, + e.s_translation = new I, + e.s_impulse = new rn, + e + } + )(); + (Hi = t.b2ParticleFlag || (t.b2ParticleFlag = {}))[Hi.b2_waterParticle = 0] = "b2_waterParticle", + Hi[Hi.b2_zombieParticle = 2] = "b2_zombieParticle", + Hi[Hi.b2_wallParticle = 4] = "b2_wallParticle", + Hi[Hi.b2_springParticle = 8] = "b2_springParticle", + Hi[Hi.b2_elasticParticle = 16] = "b2_elasticParticle", + Hi[Hi.b2_viscousParticle = 32] = "b2_viscousParticle", + Hi[Hi.b2_powderParticle = 64] = "b2_powderParticle", + Hi[Hi.b2_tensileParticle = 128] = "b2_tensileParticle", + Hi[Hi.b2_colorMixingParticle = 256] = "b2_colorMixingParticle", + Hi[Hi.b2_destructionListenerParticle = 512] = "b2_destructionListenerParticle", + Hi[Hi.b2_barrierParticle = 1024] = "b2_barrierParticle", + Hi[Hi.b2_staticPressureParticle = 2048] = "b2_staticPressureParticle", + Hi[Hi.b2_reactiveParticle = 4096] = "b2_reactiveParticle", + Hi[Hi.b2_repulsiveParticle = 8192] = "b2_repulsiveParticle", + Hi[Hi.b2_fixtureContactListenerParticle = 16384] = "b2_fixtureContactListenerParticle", + Hi[Hi.b2_particleContactListenerParticle = 32768] = "b2_particleContactListenerParticle", + Hi[Hi.b2_fixtureContactFilterParticle = 65536] = "b2_fixtureContactFilterParticle", + Hi[Hi.b2_particleContactFilterParticle = 131072] = "b2_particleContactFilterParticle"; + var xn = function() { + this.flags = 0, + this.position = new I, + this.velocity = new I, + this.color = new k(0,0,0,0), + this.lifetime = 0, + this.userData = null, + this.group = null + }; + function bn(t, e, i) { + return g(Math.ceil(Math.sqrt(t / (.01 * e)) * i), 1, 8) + } + var Cn, Tn = (function() { + function t() { + this.m_index = u + } + return t.prototype.GetIndex = function() { + return this.m_index + } + , + t.prototype.SetIndex = function(t) { + this.m_index = t + } + , + t + } + )(); + (Cn = t.b2ParticleGroupFlag || (t.b2ParticleGroupFlag = {}))[Cn.b2_solidParticleGroup = 1] = "b2_solidParticleGroup", + Cn[Cn.b2_rigidParticleGroup = 2] = "b2_rigidParticleGroup", + Cn[Cn.b2_particleGroupCanBeEmpty = 4] = "b2_particleGroupCanBeEmpty", + Cn[Cn.b2_particleGroupWillBeDestroyed = 8] = "b2_particleGroupWillBeDestroyed", + Cn[Cn.b2_particleGroupNeedsUpdateDepth = 16] = "b2_particleGroupNeedsUpdateDepth", + Cn[Cn.b2_particleGroupInternalMask = 24] = "b2_particleGroupInternalMask"; + var Sn = function() { + this.flags = 0, + this.groupFlags = 0, + this.position = new I, + this.angle = 0, + this.linearVelocity = new I, + this.angularVelocity = 0, + this.color = new k, + this.strength = 1, + this.shapeCount = 0, + this.stride = 0, + this.particleCount = 0, + this.lifetime = 0, + this.userData = null, + this.group = null + } + , wn = (function() { + function e(t) { + this.m_firstIndex = 0, + this.m_lastIndex = 0, + this.m_groupFlags = 0, + this.m_strength = 1, + this.m_prev = null, + this.m_next = null, + this.m_timestamp = -1, + this.m_mass = 0, + this.m_inertia = 0, + this.m_center = new I, + this.m_linearVelocity = new I, + this.m_angularVelocity = 0, + this.m_transform = new V, + this.m_userData = null, + this.m_system = t + } + return e.prototype.GetNext = function() { + return this.m_next + } + , + e.prototype.GetParticleSystem = function() { + return this.m_system + } + , + e.prototype.GetParticleCount = function() { + return this.m_lastIndex - this.m_firstIndex + } + , + e.prototype.GetBufferIndex = function() { + return this.m_firstIndex + } + , + e.prototype.ContainsParticle = function(t) { + return this.m_firstIndex <= t && t < this.m_lastIndex + } + , + e.prototype.GetAllParticleFlags = function() { + if (!this.m_system.m_flagsBuffer.data) + throw new Error; + for (var t = 0, e = this.m_firstIndex; e < this.m_lastIndex; e++) + t |= this.m_system.m_flagsBuffer.data[e]; + return t + } + , + e.prototype.GetGroupFlags = function() { + return this.m_groupFlags + } + , + e.prototype.SetGroupFlags = function(e) { + e |= this.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupInternalMask, + this.m_system.SetGroupFlags(this, e) + } + , + e.prototype.GetMass = function() { + return this.UpdateStatistics(), + this.m_mass + } + , + e.prototype.GetInertia = function() { + return this.UpdateStatistics(), + this.m_inertia + } + , + e.prototype.GetCenter = function() { + return this.UpdateStatistics(), + this.m_center + } + , + e.prototype.GetLinearVelocity = function() { + return this.UpdateStatistics(), + this.m_linearVelocity + } + , + e.prototype.GetAngularVelocity = function() { + return this.UpdateStatistics(), + this.m_angularVelocity + } + , + e.prototype.GetTransform = function() { + return this.m_transform + } + , + e.prototype.GetPosition = function() { + return this.m_transform.p + } + , + e.prototype.GetAngle = function() { + return this.m_transform.q.GetAngle() + } + , + e.prototype.GetLinearVelocityFromWorldPoint = function(t, i) { + var n = e.GetLinearVelocityFromWorldPoint_s_t0; + return this.UpdateStatistics(), + I.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, I.SubVV(t, this.m_center, n), i) + } + , + e.prototype.GetUserData = function() { + return this.m_userData + } + , + e.prototype.SetUserData = function(t) { + this.m_userData = t + } + , + e.prototype.ApplyForce = function(t) { + this.m_system.ApplyForce(this.m_firstIndex, this.m_lastIndex, t) + } + , + e.prototype.ApplyLinearImpulse = function(t) { + this.m_system.ApplyLinearImpulse(this.m_firstIndex, this.m_lastIndex, t) + } + , + e.prototype.DestroyParticles = function(t) { + if (this.m_system.m_world.IsLocked()) + throw new Error; + for (var e = this.m_firstIndex; e < this.m_lastIndex; e++) + this.m_system.DestroyParticle(e, t) + } + , + e.prototype.UpdateStatistics = function() { + if (!this.m_system.m_positionBuffer.data) + throw new Error; + if (!this.m_system.m_velocityBuffer.data) + throw new Error; + var t = new I + , e = new I; + if (this.m_timestamp !== this.m_system.m_timestamp) { + var i = this.m_system.GetParticleMass(); + this.m_mass = i * (this.m_lastIndex - this.m_firstIndex), + this.m_center.SetZero(), + this.m_linearVelocity.SetZero(); + for (var n = this.m_firstIndex; n < this.m_lastIndex; n++) + this.m_center.SelfMulAdd(i, this.m_system.m_positionBuffer.data[n]), + this.m_linearVelocity.SelfMulAdd(i, this.m_system.m_velocityBuffer.data[n]); + if (this.m_mass > 0) { + var r = 1 / this.m_mass; + this.m_center.SelfMul(r), + this.m_linearVelocity.SelfMul(r) + } + for (this.m_inertia = 0, + this.m_angularVelocity = 0, + n = this.m_firstIndex; n < this.m_lastIndex; n++) + I.SubVV(this.m_system.m_positionBuffer.data[n], this.m_center, t), + I.SubVV(this.m_system.m_velocityBuffer.data[n], this.m_linearVelocity, e), + this.m_inertia += i * I.DotVV(t, t), + this.m_angularVelocity += i * I.CrossVV(t, e); + this.m_inertia > 0 && (this.m_angularVelocity *= 1 / this.m_inertia), + this.m_timestamp = this.m_system.m_timestamp + } + } + , + e.GetLinearVelocityFromWorldPoint_s_t0 = new I, + e + } + )() + , En = (function() { + function t(t) { + this.m_front = 0, + this.m_back = 0, + this.m_capacity = 0, + this.m_buffer = d(t, (function() { + return null + } + )), + this.m_capacity = t + } + return t.prototype.Push = function(t) { + if (this.m_back >= this.m_capacity) { + for (var e = this.m_front; e < this.m_back; e++) + this.m_buffer[e - this.m_front] = this.m_buffer[e]; + this.m_back -= this.m_front, + this.m_front = 0, + this.m_back >= this.m_capacity && (this.m_capacity > 0 ? (this.m_buffer.concat(d(this.m_capacity, (function() { + return null + } + ))), + this.m_capacity *= 2) : (this.m_buffer.concat(d(1, (function() { + return null + } + ))), + this.m_capacity = 1)) + } + this.m_buffer[this.m_back] = t, + this.m_back++ + } + , + t.prototype.Pop = function() { + this.m_buffer[this.m_front] = null, + this.m_front++ + } + , + t.prototype.Empty = function() { + return this.m_front === this.m_back + } + , + t.prototype.Front = function() { + var t = this.m_buffer[this.m_front]; + if (!t) + throw new Error; + return t + } + , + t + } + )() + , Mn = (function() { + function t(e) { + this.m_generatorCapacity = 0, + this.m_generatorCount = 0, + this.m_countX = 0, + this.m_countY = 0, + this.m_diagram = [], + this.m_generatorBuffer = d(e, (function() { + return new t.Generator + } + )), + this.m_generatorCapacity = e + } + return t.prototype.AddGenerator = function(t, e, i) { + var n = this.m_generatorBuffer[this.m_generatorCount++]; + n.center.Copy(t), + n.tag = e, + n.necessary = i + } + , + t.prototype.Generate = function(e, n) { + for (var r = 1 / e, s = new I(+i,+i), a = new I(-i,-i), o = 0, l = 0; l < this.m_generatorCount; l++) + (f = this.m_generatorBuffer[l]).necessary && (I.MinV(s, f.center, s), + I.MaxV(a, f.center, a), + ++o); + if (0 === o) + return this.m_countX = 0, + void (this.m_countY = 0); + s.x -= n, + s.y -= n, + a.x += n, + a.y += n, + this.m_countX = 1 + Math.floor(r * (a.x - s.x)), + this.m_countY = 1 + Math.floor(r * (a.y - s.y)), + this.m_diagram = []; + var h = new En(4 * this.m_countX * this.m_countY); + for (l = 0; l < this.m_generatorCount; l++) { + (f = this.m_generatorBuffer[l]).center.SelfSub(s).SelfMul(r); + var c = Math.floor(f.center.x) + , u = Math.floor(f.center.y); + c >= 0 && u >= 0 && c < this.m_countX && u < this.m_countY && h.Push(new t.Task(c,u,c + u * this.m_countX,f)) + } + for (; !h.Empty(); ) { + c = (d = h.Front()).m_x, + u = d.m_y; + var _ = d.m_i + , f = d.m_generator; + h.Pop(), + this.m_diagram[_] || (this.m_diagram[_] = f, + c > 0 && h.Push(new t.Task(c - 1,u,_ - 1,f)), + u > 0 && h.Push(new t.Task(c,u - 1,_ - this.m_countX,f)), + c < this.m_countX - 1 && h.Push(new t.Task(c + 1,u,_ + 1,f)), + u < this.m_countY - 1 && h.Push(new t.Task(c,u + 1,_ + this.m_countX,f))) + } + for (u = 0; u < this.m_countY; u++) + for (c = 0; c < this.m_countX - 1; c++) + _ = c + u * this.m_countX, + (p = this.m_diagram[_]) !== (m = this.m_diagram[_ + 1]) && (h.Push(new t.Task(c,u,_,m)), + h.Push(new t.Task(c + 1,u,_ + 1,p))); + for (u = 0; u < this.m_countY - 1; u++) + for (c = 0; c < this.m_countX; c++) + _ = c + u * this.m_countX, + (p = this.m_diagram[_]) !== (m = this.m_diagram[_ + this.m_countX]) && (h.Push(new t.Task(c,u,_,m)), + h.Push(new t.Task(c,u + 1,_ + this.m_countX,p))); + for (; !h.Empty(); ) { + var d, p, m; + if (c = (d = h.Front()).m_x, + u = d.m_y, + _ = d.m_i, + l = d.m_generator, + h.Pop(), + (p = this.m_diagram[_]) !== (m = l)) { + var y = p.center.x - c + , v = p.center.y - u + , g = m.center.x - c + , A = m.center.y - u; + y * y + v * v > g * g + A * A && (this.m_diagram[_] = m, + c > 0 && h.Push(new t.Task(c - 1,u,_ - 1,m)), + u > 0 && h.Push(new t.Task(c,u - 1,_ - this.m_countX,m)), + c < this.m_countX - 1 && h.Push(new t.Task(c + 1,u,_ + 1,m)), + u < this.m_countY - 1 && h.Push(new t.Task(c,u + 1,_ + this.m_countX,m))) + } + } + } + , + t.prototype.GetNodes = function(t) { + for (var e = 0; e < this.m_countY - 1; e++) + for (var i = 0; i < this.m_countX - 1; i++) { + var n = i + e * this.m_countX + , r = this.m_diagram[n] + , s = this.m_diagram[n + 1] + , a = this.m_diagram[n + this.m_countX] + , o = this.m_diagram[n + 1 + this.m_countX]; + s !== a && (r !== s && r !== a && (r.necessary || s.necessary || a.necessary) && t(r.tag, s.tag, a.tag), + o !== s && o !== a && (r.necessary || s.necessary || a.necessary) && t(s.tag, o.tag, a.tag)) + } + } + , + t + } + )(); + function Dn(t, e, i) { + var n = t[e]; + t[e] = t[i], + t[i] = n + } + function Bn(t, e) { + return t < e + } + function In(t, e, i, n) { + void 0 === e && (e = 0), + void 0 === i && (i = t.length - e), + void 0 === n && (n = Bn); + for (var r = e, s = [], a = 0; ; ) { + for (; r + 1 < i; i++) { + var o = t[r + Math.floor(Math.random() * (i - r))]; + s[a++] = i; + for (var l = r - 1; ; ) { + for (; n(t[++l], o); ) + ; + for (; n(o, t[--i]); ) + ; + if (l >= i) + break; + Dn(t, l, i) + } + } + if (0 === a) + break; + r = i, + i = s[--a] + } + return t + } + function Pn(t, e, i, n) { + return void 0 === e && (e = 0), + void 0 === i && (i = t.length - e), + void 0 === n && (n = Bn), + In(t, e, i, n) + } + function Rn(t, e, i) { + void 0 === i && (i = t.length); + for (var n = 0, r = 0; r < i; ++r) + e(t[r]) || (r !== n ? Dn(t, n++, r) : ++n); + return n + } + function On(t, e, i, n, r) { + void 0 === r && (r = Bn); + for (var s = i - e; s > 0; ) { + var a = Math.floor(s / 2) + , o = e + a; + r(t[o], n) ? (e = ++o, + s -= a + 1) : s = a + } + return e + } + function Ln(t, e, i, n, r) { + void 0 === r && (r = Bn); + for (var s = i - e; s > 0; ) { + var a = Math.floor(s / 2) + , o = e + a; + r(n, t[o]) ? s = a : (e = ++o, + s -= a + 1) + } + return e + } + function Fn(t, e, i, n) { + for (var r = i; e !== r; ) + Dn(t, e++, r++), + r === n ? r = i : e === i && (i = r) + } + function Vn(t, e, i, n) { + if (e === i) + return i; + for (var r = e; ++e !== i; ) + n(t[r], t[e]) || Dn(t, ++r, e); + return ++r + } + (function(t) { + t.Generator = function() { + this.center = new I, + this.tag = 0, + this.necessary = !1 + } + ; + t.Task = function(t, e, i, n) { + this.m_x = t, + this.m_y = e, + this.m_i = i, + this.m_generator = n + } + } + )(Mn || (Mn = {})); + var Nn = (function() { + function t(t) { + this.data = [], + this.count = 0, + this.capacity = 0, + this.allocator = t + } + return t.prototype.Append = function() { + return this.count >= this.capacity && this.Grow(), + this.count++ + } + , + t.prototype.Reserve = function(t) { + if (!(this.capacity >= t)) { + for (var e = this.capacity; e < t; ++e) + this.data[e] = this.allocator(); + this.capacity = t + } + } + , + t.prototype.Grow = function() { + var t = this.capacity ? 2 * this.capacity : 256; + this.Reserve(t) + } + , + t.prototype.Free = function() { + 0 !== this.data.length && (this.data = [], + this.capacity = 0, + this.count = 0) + } + , + t.prototype.Shorten = function() {} + , + t.prototype.Data = function() { + return this.data + } + , + t.prototype.GetCount = function() { + return this.count + } + , + t.prototype.SetCount = function(t) { + this.count = t + } + , + t.prototype.GetCapacity = function() { + return this.capacity + } + , + t.prototype.RemoveIf = function(t) { + this.count = Rn(this.data, t, this.count) + } + , + t.prototype.Unique = function(t) { + this.count = Vn(this.data, 0, this.count, t) + } + , + t + } + )() + , kn = (function(t) { + function e(e) { + var i = t.call(this) || this; + return i.m_system = e, + i + } + return ti(e, t), + e.prototype.ShouldQueryParticleSystem = function() { + return !1 + } + , + e.prototype.ReportFixture = function(t) { + if (t.IsSensor()) + return !0; + for (var e = t.GetShape().GetChildCount(), i = 0; i < e; i++) + for (var n = t.GetAABB(i), r = this.m_system.GetInsideBoundsEnumerator(n), s = void 0; (s = r.GetNext()) >= 0; ) + this.ReportFixtureAndParticle(t, i, s); + return !0 + } + , + e.prototype.ReportParticle = function() { + return !1 + } + , + e.prototype.ReportFixtureAndParticle = function() {} + , + e + } + )(an) + , Gn = (function() { + function t() { + this.indexA = 0, + this.indexB = 0, + this.weight = 0, + this.normal = new I, + this.flags = 0 + } + return t.prototype.SetIndices = function(t, e) { + this.indexA = t, + this.indexB = e + } + , + t.prototype.SetWeight = function(t) { + this.weight = t + } + , + t.prototype.SetNormal = function(t) { + this.normal.Copy(t) + } + , + t.prototype.SetFlags = function(t) { + this.flags = t + } + , + t.prototype.GetIndexA = function() { + return this.indexA + } + , + t.prototype.GetIndexB = function() { + return this.indexB + } + , + t.prototype.GetWeight = function() { + return this.weight + } + , + t.prototype.GetNormal = function() { + return this.normal + } + , + t.prototype.GetFlags = function() { + return this.flags + } + , + t.prototype.IsEqual = function(t) { + return this.indexA === t.indexA && this.indexB === t.indexB && this.flags === t.flags && this.weight === t.weight && this.normal.x === t.normal.x && this.normal.y === t.normal.y + } + , + t.prototype.IsNotEqual = function(t) { + return !this.IsEqual(t) + } + , + t.prototype.ApproximatelyEqual = function(t) { + return this.indexA === t.indexA && this.indexB === t.indexB && this.flags === t.flags && m(this.weight - t.weight) < .01 && I.DistanceSquaredVV(this.normal, t.normal) < 1e-4 + } + , + t + } + )() + , Un = function() { + this.index = 0, + this.weight = 0, + this.normal = new I, + this.mass = 0 + } + , zn = function() { + this.indexA = 0, + this.indexB = 0, + this.flags = 0, + this.strength = 0, + this.distance = 0 + } + , Hn = function() { + this.indexA = 0, + this.indexB = 0, + this.indexC = 0, + this.flags = 0, + this.strength = 0, + this.pa = new I(0,0), + this.pb = new I(0,0), + this.pc = new I(0,0), + this.ka = 0, + this.kb = 0, + this.kc = 0, + this.s = 0 + } + , Wn = (function() { + function t() { + this.strictContactCheck = !1, + this.density = 1, + this.gravityScale = 1, + this.radius = 1, + this.maxCount = 0, + this.pressureStrength = .005, + this.dampingStrength = 1, + this.elasticStrength = .25, + this.springStrength = .25, + this.viscousStrength = .25, + this.surfaceTensionPressureStrength = .2, + this.surfaceTensionNormalStrength = .2, + this.repulsiveStrength = 1, + this.powderStrength = .5, + this.ejectionStrength = .5, + this.staticPressureStrength = .2, + this.staticPressureRelaxation = .2, + this.staticPressureIterations = 8, + this.colorMixingStrength = .5, + this.destroyByAge = !0, + this.lifetimeGranularity = 1 / 60 + } + return t.prototype.Copy = function(t) { + return this.strictContactCheck = t.strictContactCheck, + this.density = t.density, + this.gravityScale = t.gravityScale, + this.radius = t.radius, + this.maxCount = t.maxCount, + this.pressureStrength = t.pressureStrength, + this.dampingStrength = t.dampingStrength, + this.elasticStrength = t.elasticStrength, + this.springStrength = t.springStrength, + this.viscousStrength = t.viscousStrength, + this.surfaceTensionPressureStrength = t.surfaceTensionPressureStrength, + this.surfaceTensionNormalStrength = t.surfaceTensionNormalStrength, + this.repulsiveStrength = t.repulsiveStrength, + this.powderStrength = t.powderStrength, + this.ejectionStrength = t.ejectionStrength, + this.staticPressureStrength = t.staticPressureStrength, + this.staticPressureRelaxation = t.staticPressureRelaxation, + this.staticPressureIterations = t.staticPressureIterations, + this.colorMixingStrength = t.colorMixingStrength, + this.destroyByAge = t.destroyByAge, + this.lifetimeGranularity = t.lifetimeGranularity, + this + } + , + t.prototype.Clone = function() { + return (new t).Copy(this) + } + , + t + } + )(); + t.b2ParticleSystem = (function() { + function n(t, e) { + this.m_paused = !1, + this.m_timestamp = 0, + this.m_allParticleFlags = 0, + this.m_needsUpdateAllParticleFlags = !1, + this.m_allGroupFlags = 0, + this.m_needsUpdateAllGroupFlags = !1, + this.m_hasForce = !1, + this.m_iterationIndex = 0, + this.m_inverseDensity = 0, + this.m_particleDiameter = 0, + this.m_inverseDiameter = 0, + this.m_squaredDiameter = 0, + this.m_count = 0, + this.m_internalAllocatedCapacity = 0, + this.m_handleIndexBuffer = new n.UserOverridableBuffer, + this.m_flagsBuffer = new n.UserOverridableBuffer, + this.m_positionBuffer = new n.UserOverridableBuffer, + this.m_velocityBuffer = new n.UserOverridableBuffer, + this.m_forceBuffer = [], + this.m_weightBuffer = [], + this.m_staticPressureBuffer = [], + this.m_accumulationBuffer = [], + this.m_accumulation2Buffer = [], + this.m_depthBuffer = [], + this.m_colorBuffer = new n.UserOverridableBuffer, + this.m_groupBuffer = [], + this.m_userDataBuffer = new n.UserOverridableBuffer, + this.m_stuckThreshold = 0, + this.m_lastBodyContactStepBuffer = new n.UserOverridableBuffer, + this.m_bodyContactCountBuffer = new n.UserOverridableBuffer, + this.m_consecutiveContactStepsBuffer = new n.UserOverridableBuffer, + this.m_stuckParticleBuffer = new Nn(function() { + return 0 + } + ), + this.m_proxyBuffer = new Nn(function() { + return new n.Proxy + } + ), + this.m_contactBuffer = new Nn(function() { + return new Gn + } + ), + this.m_bodyContactBuffer = new Nn(function() { + return new Un + } + ), + this.m_pairBuffer = new Nn(function() { + return new zn + } + ), + this.m_triadBuffer = new Nn(function() { + return new Hn + } + ), + this.m_expirationTimeBuffer = new n.UserOverridableBuffer, + this.m_indexByExpirationTimeBuffer = new n.UserOverridableBuffer, + this.m_timeElapsed = 0, + this.m_expirationTimeBufferRequiresSorting = !1, + this.m_groupCount = 0, + this.m_groupList = null, + this.m_def = new Wn, + this.m_prev = null, + this.m_next = null, + this.SetStrictContactCheck(t.strictContactCheck), + this.SetDensity(t.density), + this.SetGravityScale(t.gravityScale), + this.SetRadius(t.radius), + this.SetMaxParticleCount(t.maxCount), + this.m_def = t.Clone(), + this.m_world = e, + this.SetDestructionByAge(this.m_def.destroyByAge) + } + return n.computeTag = function(t, e) { + return (e + n.yOffset >>> 0 << n.yShift) + (n.xScale * t + n.xOffset >>> 0) >>> 0 + } + , + n.computeRelativeTag = function(t, e, i) { + return t + (i << n.yShift) + (e << n.xShift) >>> 0 + } + , + n.prototype.Drop = function() { + for (; this.m_groupList; ) + this.DestroyParticleGroup(this.m_groupList); + this.FreeUserOverridableBuffer(this.m_handleIndexBuffer), + this.FreeUserOverridableBuffer(this.m_flagsBuffer), + this.FreeUserOverridableBuffer(this.m_lastBodyContactStepBuffer), + this.FreeUserOverridableBuffer(this.m_bodyContactCountBuffer), + this.FreeUserOverridableBuffer(this.m_consecutiveContactStepsBuffer), + this.FreeUserOverridableBuffer(this.m_positionBuffer), + this.FreeUserOverridableBuffer(this.m_velocityBuffer), + this.FreeUserOverridableBuffer(this.m_colorBuffer), + this.FreeUserOverridableBuffer(this.m_userDataBuffer), + this.FreeUserOverridableBuffer(this.m_expirationTimeBuffer), + this.FreeUserOverridableBuffer(this.m_indexByExpirationTimeBuffer), + this.FreeBuffer(this.m_forceBuffer, this.m_internalAllocatedCapacity), + this.FreeBuffer(this.m_weightBuffer, this.m_internalAllocatedCapacity), + this.FreeBuffer(this.m_staticPressureBuffer, this.m_internalAllocatedCapacity), + this.FreeBuffer(this.m_accumulationBuffer, this.m_internalAllocatedCapacity), + this.FreeBuffer(this.m_accumulation2Buffer, this.m_internalAllocatedCapacity), + this.FreeBuffer(this.m_depthBuffer, this.m_internalAllocatedCapacity), + this.FreeBuffer(this.m_groupBuffer, this.m_internalAllocatedCapacity) + } + , + n.prototype.CreateParticle = function(t) { + if (this.m_world.IsLocked()) + throw new Error; + if (this.m_count >= this.m_internalAllocatedCapacity) { + var i = this.m_count ? 2 * this.m_count : 256; + this.ReallocateInternalAllocatedBuffers(i) + } + if (this.m_count >= this.m_internalAllocatedCapacity) { + if (!this.m_def.destroyByAge) + return u; + this.DestroyOldestParticle(0, !1), + this.SolveZombie() + } + var n = this.m_count++; + if (!this.m_flagsBuffer.data) + throw new Error; + if (this.m_flagsBuffer.data[n] = 0, + this.m_lastBodyContactStepBuffer.data && (this.m_lastBodyContactStepBuffer.data[n] = 0), + this.m_bodyContactCountBuffer.data && (this.m_bodyContactCountBuffer.data[n] = 0), + this.m_consecutiveContactStepsBuffer.data && (this.m_consecutiveContactStepsBuffer.data[n] = 0), + !this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + this.m_positionBuffer.data[n] = (this.m_positionBuffer.data[n] || new I).Copy(e(t.position, I.ZERO)), + this.m_velocityBuffer.data[n] = (this.m_velocityBuffer.data[n] || new I).Copy(e(t.velocity, I.ZERO)), + this.m_weightBuffer[n] = 0, + this.m_forceBuffer[n] = (this.m_forceBuffer[n] || new I).SetZero(), + this.m_staticPressureBuffer && (this.m_staticPressureBuffer[n] = 0), + this.m_depthBuffer && (this.m_depthBuffer[n] = 0); + var r = (new k).Copy(e(t.color, k.ZERO)); + !this.m_colorBuffer.data && r.IsZero() || (this.m_colorBuffer.data = this.RequestBuffer(this.m_colorBuffer.data), + this.m_colorBuffer.data[n] = (this.m_colorBuffer.data[n] || new k).Copy(r)), + (this.m_userDataBuffer.data || t.userData) && (this.m_userDataBuffer.data = this.RequestBuffer(this.m_userDataBuffer.data), + this.m_userDataBuffer.data[n] = t.userData), + this.m_handleIndexBuffer.data && (this.m_handleIndexBuffer.data[n] = null); + var s = this.m_proxyBuffer.data[this.m_proxyBuffer.Append()] + , a = e(t.lifetime, 0) + , o = a > 0; + if (this.m_expirationTimeBuffer.data || o) { + if (this.SetParticleLifetime(n, o ? a : this.ExpirationTimeToLifetime(-this.GetQuantizedTimeElapsed())), + !this.m_indexByExpirationTimeBuffer.data) + throw new Error; + this.m_indexByExpirationTimeBuffer.data[n] = n + } + s.index = n; + var l = e(t.group, null); + return this.m_groupBuffer[n] = l, + l && (l.m_firstIndex < l.m_lastIndex ? (this.RotateBuffer(l.m_firstIndex, l.m_lastIndex, n), + l.m_lastIndex = n + 1) : (l.m_firstIndex = n, + l.m_lastIndex = n + 1)), + this.SetParticleFlags(n, e(t.flags, 0)), + n + } + , + n.prototype.GetParticleHandleFromIndex = function(t) { + this.m_handleIndexBuffer.data = this.RequestBuffer(this.m_handleIndexBuffer.data); + var e = this.m_handleIndexBuffer.data[t]; + return e || ((e = new Tn).SetIndex(t), + this.m_handleIndexBuffer.data[t] = e, + e) + } + , + n.prototype.DestroyParticle = function(e, i) { + if (void 0 === i && (i = !1), + !this.m_flagsBuffer.data) + throw new Error; + var n = t.b2ParticleFlag.b2_zombieParticle; + i && (n |= t.b2ParticleFlag.b2_destructionListenerParticle), + this.SetParticleFlags(e, this.m_flagsBuffer.data[e] | n) + } + , + n.prototype.DestroyOldestParticle = function(t, e) { + void 0 === e && (e = !1); + var i = this.GetParticleCount(); + if (!this.m_indexByExpirationTimeBuffer.data) + throw new Error; + if (!this.m_expirationTimeBuffer.data) + throw new Error; + var n = this.m_indexByExpirationTimeBuffer.data[i - (t + 1)] + , r = this.m_indexByExpirationTimeBuffer.data[t]; + this.DestroyParticle(this.m_expirationTimeBuffer.data[n] > 0 ? n : r, e) + } + , + n.prototype.DestroyParticlesInShape = function(t, e, i) { + void 0 === i && (i = !1); + var r = n.DestroyParticlesInShape_s_aabb; + if (this.m_world.IsLocked()) + throw new Error; + var s = new n.DestroyParticlesInShapeCallback(this,t,e,i) + , a = r; + return t.ComputeAABB(a, e, 0), + this.m_world.QueryAABB(s, a), + s.Destroyed() + } + , + n.prototype.CreateParticleGroup = function(t) { + var i = n.CreateParticleGroup_s_transform; + if (this.m_world.IsLocked()) + throw new Error; + var r = i; + r.SetPositionAngle(e(t.position, I.ZERO), e(t.angle, 0)); + var s = this.m_count; + if (t.shape && this.CreateParticlesWithShapeForGroup(t.shape, t, r), + t.shapes && this.CreateParticlesWithShapesForGroup(t.shapes, e(t.shapeCount, t.shapes.length), t, r), + t.positionData) + for (var a = e(t.particleCount, t.positionData.length), o = 0; o < a; o++) { + var l = t.positionData[o]; + this.CreateParticleForGroup(t, r, l) + } + var h = this.m_count + , c = new wn(this); + for (c.m_firstIndex = s, + c.m_lastIndex = h, + c.m_strength = e(t.strength, 1), + c.m_userData = t.userData, + c.m_transform.Copy(r), + c.m_prev = null, + c.m_next = this.m_groupList, + this.m_groupList && (this.m_groupList.m_prev = c), + this.m_groupList = c, + ++this.m_groupCount, + o = s; o < h; o++) + this.m_groupBuffer[o] = c; + this.SetGroupFlags(c, e(t.groupFlags, 0)); + var u = new n.ConnectionFilter; + return this.UpdateContacts(!0), + this.UpdatePairsAndTriads(s, h, u), + t.group && (this.JoinParticleGroups(t.group, c), + c = t.group), + c + } + , + n.prototype.JoinParticleGroups = function(t, e) { + if (this.m_world.IsLocked()) + throw new Error; + this.RotateBuffer(e.m_firstIndex, e.m_lastIndex, this.m_count), + this.RotateBuffer(t.m_firstIndex, t.m_lastIndex, e.m_firstIndex); + var i = new n.JoinParticleGroupsFilter(e.m_firstIndex); + this.UpdateContacts(!0), + this.UpdatePairsAndTriads(t.m_firstIndex, e.m_lastIndex, i); + for (var r = e.m_firstIndex; r < e.m_lastIndex; r++) + this.m_groupBuffer[r] = t; + var s = t.m_groupFlags | e.m_groupFlags; + this.SetGroupFlags(t, s), + t.m_lastIndex = e.m_lastIndex, + e.m_firstIndex = e.m_lastIndex, + this.DestroyParticleGroup(e) + } + , + n.prototype.SplitParticleGroup = function(t) { + this.UpdateContacts(!0); + var e = d(t.GetParticleCount(), (function() { + return new n.ParticleListNode + } + )); + n.InitializeParticleLists(t, e), + this.MergeParticleListsInContact(t, e); + var i = n.FindLongestParticleList(t, e); + this.MergeZombieParticleListNodes(t, e, i), + this.CreateParticleGroupsFromParticleList(t, e, i), + this.UpdatePairsAndTriadsWithParticleList(t, e) + } + , + n.prototype.GetParticleGroupList = function() { + return this.m_groupList + } + , + n.prototype.GetParticleGroupCount = function() { + return this.m_groupCount + } + , + n.prototype.GetParticleCount = function() { + return this.m_count + } + , + n.prototype.GetMaxParticleCount = function() { + return this.m_def.maxCount + } + , + n.prototype.SetMaxParticleCount = function(t) { + this.m_def.maxCount = t + } + , + n.prototype.GetAllParticleFlags = function() { + return this.m_allParticleFlags + } + , + n.prototype.GetAllGroupFlags = function() { + return this.m_allGroupFlags + } + , + n.prototype.SetPaused = function(t) { + this.m_paused = t + } + , + n.prototype.GetPaused = function() { + return this.m_paused + } + , + n.prototype.SetDensity = function(t) { + this.m_def.density = t, + this.m_inverseDensity = 1 / this.m_def.density + } + , + n.prototype.GetDensity = function() { + return this.m_def.density + } + , + n.prototype.SetGravityScale = function(t) { + this.m_def.gravityScale = t + } + , + n.prototype.GetGravityScale = function() { + return this.m_def.gravityScale + } + , + n.prototype.SetDamping = function(t) { + this.m_def.dampingStrength = t + } + , + n.prototype.GetDamping = function() { + return this.m_def.dampingStrength + } + , + n.prototype.SetStaticPressureIterations = function(t) { + this.m_def.staticPressureIterations = t + } + , + n.prototype.GetStaticPressureIterations = function() { + return this.m_def.staticPressureIterations + } + , + n.prototype.SetRadius = function(t) { + this.m_particleDiameter = 2 * t, + this.m_squaredDiameter = this.m_particleDiameter * this.m_particleDiameter, + this.m_inverseDiameter = 1 / this.m_particleDiameter + } + , + n.prototype.GetRadius = function() { + return this.m_particleDiameter / 2 + } + , + n.prototype.GetPositionBuffer = function() { + if (!this.m_positionBuffer.data) + throw new Error; + return this.m_positionBuffer.data + } + , + n.prototype.GetVelocityBuffer = function() { + if (!this.m_velocityBuffer.data) + throw new Error; + return this.m_velocityBuffer.data + } + , + n.prototype.GetColorBuffer = function() { + return this.m_colorBuffer.data = this.RequestBuffer(this.m_colorBuffer.data), + this.m_colorBuffer.data + } + , + n.prototype.GetGroupBuffer = function() { + return this.m_groupBuffer + } + , + n.prototype.GetWeightBuffer = function() { + return this.m_weightBuffer + } + , + n.prototype.GetUserDataBuffer = function() { + return this.m_userDataBuffer.data = this.RequestBuffer(this.m_userDataBuffer.data), + this.m_userDataBuffer.data + } + , + n.prototype.GetFlagsBuffer = function() { + if (!this.m_flagsBuffer.data) + throw new Error; + return this.m_flagsBuffer.data + } + , + n.prototype.SetParticleFlags = function(e, i) { + if (!this.m_flagsBuffer.data) + throw new Error; + this.m_flagsBuffer.data[e] & ~i && (this.m_needsUpdateAllParticleFlags = !0), + ~this.m_allParticleFlags & i && (i & t.b2ParticleFlag.b2_tensileParticle && (this.m_accumulation2Buffer = this.RequestBuffer(this.m_accumulation2Buffer)), + i & t.b2ParticleFlag.b2_colorMixingParticle && (this.m_colorBuffer.data = this.RequestBuffer(this.m_colorBuffer.data)), + this.m_allParticleFlags |= i), + this.m_flagsBuffer.data[e] = i + } + , + n.prototype.GetParticleFlags = function(t) { + if (!this.m_flagsBuffer.data) + throw new Error; + return this.m_flagsBuffer.data[t] + } + , + n.prototype.SetFlagsBuffer = function(t, e) { + this.SetUserOverridableBuffer(this.m_flagsBuffer, t, e) + } + , + n.prototype.SetPositionBuffer = function(t, e) { + this.SetUserOverridableBuffer(this.m_positionBuffer, t, e) + } + , + n.prototype.SetVelocityBuffer = function(t, e) { + this.SetUserOverridableBuffer(this.m_velocityBuffer, t, e) + } + , + n.prototype.SetColorBuffer = function(t, e) { + this.SetUserOverridableBuffer(this.m_colorBuffer, t, e) + } + , + n.prototype.SetUserDataBuffer = function(t, e) { + this.SetUserOverridableBuffer(this.m_userDataBuffer, t, e) + } + , + n.prototype.GetContacts = function() { + return this.m_contactBuffer.data + } + , + n.prototype.GetContactCount = function() { + return this.m_contactBuffer.count + } + , + n.prototype.GetBodyContacts = function() { + return this.m_bodyContactBuffer.data + } + , + n.prototype.GetBodyContactCount = function() { + return this.m_bodyContactBuffer.count + } + , + n.prototype.GetPairs = function() { + return this.m_pairBuffer.data + } + , + n.prototype.GetPairCount = function() { + return this.m_pairBuffer.count + } + , + n.prototype.GetTriads = function() { + return this.m_triadBuffer.data + } + , + n.prototype.GetTriadCount = function() { + return this.m_triadBuffer.count + } + , + n.prototype.SetStuckThreshold = function(t) { + this.m_stuckThreshold = t, + t > 0 && (this.m_lastBodyContactStepBuffer.data = this.RequestBuffer(this.m_lastBodyContactStepBuffer.data), + this.m_bodyContactCountBuffer.data = this.RequestBuffer(this.m_bodyContactCountBuffer.data), + this.m_consecutiveContactStepsBuffer.data = this.RequestBuffer(this.m_consecutiveContactStepsBuffer.data)) + } + , + n.prototype.GetStuckCandidates = function() { + return this.m_stuckParticleBuffer.Data() + } + , + n.prototype.GetStuckCandidateCount = function() { + return this.m_stuckParticleBuffer.GetCount() + } + , + n.prototype.ComputeCollisionEnergy = function() { + if (!this.m_velocityBuffer.data) + throw new Error; + for (var t = n.ComputeCollisionEnergy_s_v, e = this.m_velocityBuffer.data, i = 0, r = 0; r < this.m_contactBuffer.count; r++) { + var s = this.m_contactBuffer.data[r] + , a = s.indexA + , o = s.indexB + , l = s.normal + , h = I.SubVV(e[o], e[a], t) + , c = I.DotVV(h, l); + c < 0 && (i += c * c) + } + return .5 * this.GetParticleMass() * i + } + , + n.prototype.SetStrictContactCheck = function(t) { + this.m_def.strictContactCheck = t + } + , + n.prototype.GetStrictContactCheck = function() { + return this.m_def.strictContactCheck + } + , + n.prototype.SetParticleLifetime = function(t, e) { + var i = null === this.m_indexByExpirationTimeBuffer.data; + if (this.m_expirationTimeBuffer.data = this.RequestBuffer(this.m_expirationTimeBuffer.data), + this.m_indexByExpirationTimeBuffer.data = this.RequestBuffer(this.m_indexByExpirationTimeBuffer.data), + i) + for (var n = this.GetParticleCount(), r = 0; r < n; ++r) + this.m_indexByExpirationTimeBuffer.data[r] = r; + var s = e / this.m_def.lifetimeGranularity + , a = s > 0 ? this.GetQuantizedTimeElapsed() + s : s; + a !== this.m_expirationTimeBuffer.data[t] && (this.m_expirationTimeBuffer.data[t] = a, + this.m_expirationTimeBufferRequiresSorting = !0) + } + , + n.prototype.GetParticleLifetime = function(t) { + return this.ExpirationTimeToLifetime(this.GetExpirationTimeBuffer()[t]) + } + , + n.prototype.SetDestructionByAge = function(t) { + t && this.GetExpirationTimeBuffer(), + this.m_def.destroyByAge = t + } + , + n.prototype.GetDestructionByAge = function() { + return this.m_def.destroyByAge + } + , + n.prototype.GetExpirationTimeBuffer = function() { + return this.m_expirationTimeBuffer.data = this.RequestBuffer(this.m_expirationTimeBuffer.data), + this.m_expirationTimeBuffer.data + } + , + n.prototype.ExpirationTimeToLifetime = function(t) { + return (t > 0 ? t - this.GetQuantizedTimeElapsed() : t) * this.m_def.lifetimeGranularity + } + , + n.prototype.GetIndexByExpirationTimeBuffer = function() { + if (this.GetParticleCount() ? this.SetParticleLifetime(0, this.GetParticleLifetime(0)) : this.m_indexByExpirationTimeBuffer.data = this.RequestBuffer(this.m_indexByExpirationTimeBuffer.data), + !this.m_indexByExpirationTimeBuffer.data) + throw new Error; + return this.m_indexByExpirationTimeBuffer.data + } + , + n.prototype.ParticleApplyLinearImpulse = function(t, e) { + this.ApplyLinearImpulse(t, t + 1, e) + } + , + n.prototype.ApplyLinearImpulse = function(t, e, i) { + if (!this.m_velocityBuffer.data) + throw new Error; + for (var n = this.m_velocityBuffer.data, r = (e - t) * this.GetParticleMass(), s = (new I).Copy(i).SelfMul(1 / r), a = t; a < e; a++) + n[a].SelfAdd(s) + } + , + n.IsSignificantForce = function(t) { + return 0 !== t.x || 0 !== t.y + } + , + n.prototype.ParticleApplyForce = function(t, e) { + if (!this.m_flagsBuffer.data) + throw new Error; + n.IsSignificantForce(e) && this.ForceCanBeApplied(this.m_flagsBuffer.data[t]) && (this.PrepareForceBuffer(), + this.m_forceBuffer[t].SelfAdd(e)) + } + , + n.prototype.ApplyForce = function(t, e, i) { + var r = (new I).Copy(i).SelfMul(1 / (e - t)); + if (n.IsSignificantForce(r)) { + this.PrepareForceBuffer(); + for (var s = t; s < e; s++) + this.m_forceBuffer[s].SelfAdd(r) + } + } + , + n.prototype.GetNext = function() { + return this.m_next + } + , + n.prototype.QueryAABB = function(t, e) { + if (0 !== this.m_proxyBuffer.count) { + var i = this.m_proxyBuffer.count + , r = On(this.m_proxyBuffer.data, 0, i, n.computeTag(this.m_inverseDiameter * e.lowerBound.x, this.m_inverseDiameter * e.lowerBound.y), n.Proxy.CompareProxyTag) + , s = Ln(this.m_proxyBuffer.data, r, i, n.computeTag(this.m_inverseDiameter * e.upperBound.x, this.m_inverseDiameter * e.upperBound.y), n.Proxy.CompareTagProxy); + if (!this.m_positionBuffer.data) + throw new Error; + for (var a = this.m_positionBuffer.data, o = r; o < s; ++o) { + var l = this.m_proxyBuffer.data[o].index + , h = a[l]; + if (e.lowerBound.x < h.x && h.x < e.upperBound.x && e.lowerBound.y < h.y && h.y < e.upperBound.y && !t.ReportParticle(this, l)) + break + } + } + } + , + n.prototype.QueryShapeAABB = function(t, e, i, r) { + void 0 === r && (r = 0); + var s = n.QueryShapeAABB_s_aabb; + e.ComputeAABB(s, i, r), + this.QueryAABB(t, s) + } + , + n.prototype.QueryPointAABB = function(t, e, i) { + void 0 === i && (i = l); + var r = n.QueryPointAABB_s_aabb; + r.lowerBound.Set(e.x - i, e.y - i), + r.upperBound.Set(e.x + i, e.y + i), + this.QueryAABB(t, r) + } + , + n.prototype.RayCast = function(t, e, i) { + var r = n.RayCast_s_aabb + , s = n.RayCast_s_p + , a = n.RayCast_s_v + , o = n.RayCast_s_n + , l = n.RayCast_s_point; + if (0 !== this.m_proxyBuffer.count) { + if (!this.m_positionBuffer.data) + throw new Error; + var h = this.m_positionBuffer.data + , c = r; + I.MinV(e, i, c.lowerBound), + I.MaxV(e, i, c.upperBound); + for (var u, _ = 1, f = I.SubVV(i, e, a), d = I.DotVV(f, f), p = this.GetInsideBoundsEnumerator(c); (u = p.GetNext()) >= 0; ) { + var m = I.SubVV(e, h[u], s) + , v = I.DotVV(m, f) + , g = v * v - d * (I.DotVV(m, m) - this.m_squaredDiameter); + if (g >= 0) { + var A = T(g) + , x = (-v - A) / d; + if (x > _) + continue; + if (x < 0 && ((x = (-v + A) / d) < 0 || x > _)) + continue; + var b = I.AddVMulSV(m, x, f, o); + b.Normalize(); + var C = t.ReportParticle(this, u, I.AddVMulSV(e, x, f, l), b, x); + if ((_ = y(_, C)) <= 0) + break + } + } + } + } + , + n.prototype.ComputeAABB = function(t) { + var e = this.GetParticleCount(); + if (t.lowerBound.x = +i, + t.lowerBound.y = +i, + t.upperBound.x = -i, + t.upperBound.y = -i, + !this.m_positionBuffer.data) + throw new Error; + for (var n = this.m_positionBuffer.data, r = 0; r < e; r++) { + var s = n[r]; + I.MinV(t.lowerBound, s, t.lowerBound), + I.MaxV(t.upperBound, s, t.upperBound) + } + t.lowerBound.x -= this.m_particleDiameter, + t.lowerBound.y -= this.m_particleDiameter, + t.upperBound.x += this.m_particleDiameter, + t.upperBound.y += this.m_particleDiameter + } + , + n.prototype.FreeBuffer = function(t) { + null !== t && (t.length = 0) + } + , + n.prototype.FreeUserOverridableBuffer = function(t) { + 0 === t.userSuppliedCapacity && this.FreeBuffer(t.data, this.m_internalAllocatedCapacity) + } + , + n.prototype.ReallocateBuffer3 = function(t, e, i) { + if (i <= e) + throw new Error; + var n = t ? t.slice() : []; + return n.length = i, + n + } + , + n.prototype.ReallocateBuffer5 = function(t, e, i, n, r) { + if (n <= i) + throw new Error; + if (e && !(n <= e)) + throw new Error; + return r && !t || e || (t = this.ReallocateBuffer3(t, i, n)), + t + } + , + n.prototype.ReallocateBuffer4 = function(t, e, i, n) { + return this.ReallocateBuffer5(t.data, t.userSuppliedCapacity, e, i, n) + } + , + n.prototype.RequestBuffer = function(t) { + return t || (0 === this.m_internalAllocatedCapacity && this.ReallocateInternalAllocatedBuffers(256), + (t = []).length = this.m_internalAllocatedCapacity), + t + } + , + n.prototype.ReallocateHandleBuffers = function(t) { + this.m_handleIndexBuffer.data = this.ReallocateBuffer4(this.m_handleIndexBuffer, this.m_internalAllocatedCapacity, t, !0) + } + , + n.prototype.ReallocateInternalAllocatedBuffers = function(t) { + function e(t, e) { + return e && t > e ? e : t + } + if (t = e(t, this.m_def.maxCount), + t = e(t, this.m_flagsBuffer.userSuppliedCapacity), + t = e(t, this.m_positionBuffer.userSuppliedCapacity), + t = e(t, this.m_velocityBuffer.userSuppliedCapacity), + t = e(t, this.m_colorBuffer.userSuppliedCapacity), + t = e(t, this.m_userDataBuffer.userSuppliedCapacity), + this.m_internalAllocatedCapacity < t) { + this.ReallocateHandleBuffers(t), + this.m_flagsBuffer.data = this.ReallocateBuffer4(this.m_flagsBuffer, this.m_internalAllocatedCapacity, t, !1); + var i = this.m_stuckThreshold > 0; + this.m_lastBodyContactStepBuffer.data = this.ReallocateBuffer4(this.m_lastBodyContactStepBuffer, this.m_internalAllocatedCapacity, t, i), + this.m_bodyContactCountBuffer.data = this.ReallocateBuffer4(this.m_bodyContactCountBuffer, this.m_internalAllocatedCapacity, t, i), + this.m_consecutiveContactStepsBuffer.data = this.ReallocateBuffer4(this.m_consecutiveContactStepsBuffer, this.m_internalAllocatedCapacity, t, i), + this.m_positionBuffer.data = this.ReallocateBuffer4(this.m_positionBuffer, this.m_internalAllocatedCapacity, t, !1), + this.m_velocityBuffer.data = this.ReallocateBuffer4(this.m_velocityBuffer, this.m_internalAllocatedCapacity, t, !1), + this.m_forceBuffer = this.ReallocateBuffer5(this.m_forceBuffer, 0, this.m_internalAllocatedCapacity, t, !1), + this.m_weightBuffer = this.ReallocateBuffer5(this.m_weightBuffer, 0, this.m_internalAllocatedCapacity, t, !1), + this.m_staticPressureBuffer = this.ReallocateBuffer5(this.m_staticPressureBuffer, 0, this.m_internalAllocatedCapacity, t, !0), + this.m_accumulationBuffer = this.ReallocateBuffer5(this.m_accumulationBuffer, 0, this.m_internalAllocatedCapacity, t, !1), + this.m_accumulation2Buffer = this.ReallocateBuffer5(this.m_accumulation2Buffer, 0, this.m_internalAllocatedCapacity, t, !0), + this.m_depthBuffer = this.ReallocateBuffer5(this.m_depthBuffer, 0, this.m_internalAllocatedCapacity, t, !0), + this.m_colorBuffer.data = this.ReallocateBuffer4(this.m_colorBuffer, this.m_internalAllocatedCapacity, t, !0), + this.m_groupBuffer = this.ReallocateBuffer5(this.m_groupBuffer, 0, this.m_internalAllocatedCapacity, t, !1), + this.m_userDataBuffer.data = this.ReallocateBuffer4(this.m_userDataBuffer, this.m_internalAllocatedCapacity, t, !0), + this.m_expirationTimeBuffer.data = this.ReallocateBuffer4(this.m_expirationTimeBuffer, this.m_internalAllocatedCapacity, t, !0), + this.m_indexByExpirationTimeBuffer.data = this.ReallocateBuffer4(this.m_indexByExpirationTimeBuffer, this.m_internalAllocatedCapacity, t, !1), + this.m_internalAllocatedCapacity = t + } + } + , + n.prototype.CreateParticleForGroup = function(t, i, n) { + var r = new xn; + r.flags = e(t.flags, 0), + V.MulXV(i, n, r.position), + I.AddVV(e(t.linearVelocity, I.ZERO), I.CrossSV(e(t.angularVelocity, 0), I.SubVV(r.position, e(t.position, I.ZERO), I.s_t0), I.s_t0), r.velocity), + r.color.Copy(e(t.color, k.ZERO)), + r.lifetime = e(t.lifetime, 0), + r.userData = t.userData, + this.CreateParticle(r) + } + , + n.prototype.CreateParticlesStrokeShapeForGroup = function(i, r, s) { + var a = n.CreateParticlesStrokeShapeForGroup_s_edge + , o = n.CreateParticlesStrokeShapeForGroup_s_d + , l = n.CreateParticlesStrokeShapeForGroup_s_p + , h = e(r.stride, 0); + 0 === h && (h = this.GetParticleStride()); + for (var c = 0, u = i.GetChildCount(), _ = 0; _ < u; _++) { + var f = null; + i.GetType() === t.b2ShapeType.e_edgeShape ? f = i : (f = a, + i.GetChildEdge(f, _)); + for (var d = I.SubVV(f.m_vertex2, f.m_vertex1, o), p = d.Length(); c < p; ) { + var m = I.AddVMulSV(f.m_vertex1, c / p, d, l); + this.CreateParticleForGroup(r, s, m), + c += h + } + c -= p + } + } + , + n.prototype.CreateParticlesFillShapeForGroup = function(t, i, r) { + var s = n.CreateParticlesFillShapeForGroup_s_aabb + , a = n.CreateParticlesFillShapeForGroup_s_p + , o = e(i.stride, 0); + 0 === o && (o = this.GetParticleStride()); + var l = V.IDENTITY + , h = s; + t.ComputeAABB(h, l, 0); + for (var c = Math.floor(h.lowerBound.y / o) * o; c < h.upperBound.y; c += o) + for (var u = Math.floor(h.lowerBound.x / o) * o; u < h.upperBound.x; u += o) { + var _ = a.Set(u, c); + t.TestPoint(l, _) && this.CreateParticleForGroup(i, r, _) + } + } + , + n.prototype.CreateParticlesWithShapeForGroup = function(e, i, n) { + switch (e.GetType()) { + case t.b2ShapeType.e_edgeShape: + case t.b2ShapeType.e_chainShape: + this.CreateParticlesStrokeShapeForGroup(e, i, n); + break; + case t.b2ShapeType.e_polygonShape: + case t.b2ShapeType.e_circleShape: + this.CreateParticlesFillShapeForGroup(e, i, n) + } + } + , + n.prototype.CreateParticlesWithShapesForGroup = function(t, e, i, r) { + var s = new n.CompositeShape(t,e); + this.CreateParticlesFillShapeForGroup(s, i, r) + } + , + n.prototype.CloneParticle = function(t, e) { + var i = new xn; + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + i.flags = this.m_flagsBuffer.data[t], + i.position.Copy(this.m_positionBuffer.data[t]), + i.velocity.Copy(this.m_velocityBuffer.data[t]), + this.m_colorBuffer.data && i.color.Copy(this.m_colorBuffer.data[t]), + this.m_userDataBuffer.data && (i.userData = this.m_userDataBuffer.data[t]), + i.group = e; + var n = this.CreateParticle(i); + if (this.m_handleIndexBuffer.data) { + var r = this.m_handleIndexBuffer.data[t]; + r && r.SetIndex(n), + this.m_handleIndexBuffer.data[n] = r, + this.m_handleIndexBuffer.data[t] = null + } + return this.m_lastBodyContactStepBuffer.data && (this.m_lastBodyContactStepBuffer.data[n] = this.m_lastBodyContactStepBuffer.data[t]), + this.m_bodyContactCountBuffer.data && (this.m_bodyContactCountBuffer.data[n] = this.m_bodyContactCountBuffer.data[t]), + this.m_consecutiveContactStepsBuffer.data && (this.m_consecutiveContactStepsBuffer.data[n] = this.m_consecutiveContactStepsBuffer.data[t]), + this.m_hasForce && this.m_forceBuffer[n].Copy(this.m_forceBuffer[t]), + this.m_staticPressureBuffer && (this.m_staticPressureBuffer[n] = this.m_staticPressureBuffer[t]), + this.m_depthBuffer && (this.m_depthBuffer[n] = this.m_depthBuffer[t]), + this.m_expirationTimeBuffer.data && (this.m_expirationTimeBuffer.data[n] = this.m_expirationTimeBuffer.data[t]), + n + } + , + n.prototype.DestroyParticlesInGroup = function(t, e) { + void 0 === e && (e = !1); + for (var i = t.m_firstIndex; i < t.m_lastIndex; i++) + this.DestroyParticle(i, e) + } + , + n.prototype.DestroyParticleGroup = function(t) { + this.m_world.m_destructionListener && this.m_world.m_destructionListener.SayGoodbyeParticleGroup(t), + this.SetGroupFlags(t, 0); + for (var e = t.m_firstIndex; e < t.m_lastIndex; e++) + this.m_groupBuffer[e] = null; + t.m_prev && (t.m_prev.m_next = t.m_next), + t.m_next && (t.m_next.m_prev = t.m_prev), + t === this.m_groupList && (this.m_groupList = t.m_next), + --this.m_groupCount + } + , + n.ParticleCanBeConnected = function(e, i) { + return 0 != (e & (t.b2ParticleFlag.b2_wallParticle | t.b2ParticleFlag.b2_springParticle | t.b2ParticleFlag.b2_elasticParticle)) || null !== i && 0 != (i.GetGroupFlags() & t.b2ParticleGroupFlag.b2_rigidParticleGroup) + } + , + n.prototype.UpdatePairsAndTriads = function(e, i, r) { + var s = n.UpdatePairsAndTriads_s_dab + , a = n.UpdatePairsAndTriads_s_dbc + , o = n.UpdatePairsAndTriads_s_dca; + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var l = this.m_positionBuffer.data, h = 0, c = e; c < i; c++) + h |= this.m_flagsBuffer.data[c]; + if (h & n.k_pairFlags) + for (var u = 0; u < this.m_contactBuffer.count; u++) { + var _ = this.m_contactBuffer.data[u] + , f = _.indexA + , d = _.indexB + , p = this.m_flagsBuffer.data[f] + , m = this.m_flagsBuffer.data[d] + , v = this.m_groupBuffer[f] + , g = this.m_groupBuffer[d]; + if (f >= e && f < i && d >= e && d < i && !((p | m) & t.b2ParticleFlag.b2_zombieParticle) && (p | m) & n.k_pairFlags && (r.IsNecessary(f) || r.IsNecessary(d)) && n.ParticleCanBeConnected(p, v) && n.ParticleCanBeConnected(m, g) && r.ShouldCreatePair(f, d)) { + var A = this.m_pairBuffer.data[this.m_pairBuffer.Append()]; + A.indexA = f, + A.indexB = d, + A.flags = _.flags, + A.strength = y(v ? v.m_strength : 1, g ? g.m_strength : 1), + A.distance = I.DistanceVV(l[f], l[d]) + } + Pn(this.m_pairBuffer.data, 0, this.m_pairBuffer.count, n.ComparePairIndices), + this.m_pairBuffer.Unique(n.MatchPairIndices) + } + if (h & n.k_triadFlags) { + var x = new Mn(i - e); + for (c = e; c < i; c++) { + var b = this.m_flagsBuffer.data[c] + , C = this.m_groupBuffer[c]; + b & t.b2ParticleFlag.b2_zombieParticle || !n.ParticleCanBeConnected(b, C) || x.AddGenerator(l[c], c, r.IsNecessary(c)) + } + var T = this.GetParticleStride(); + x.Generate(T / 2, 2 * T); + var S = this; + x.GetNodes((function(t, e, i) { + if (!S.m_flagsBuffer.data) + throw new Error; + var h = S.m_flagsBuffer.data[t] + , c = S.m_flagsBuffer.data[e] + , u = S.m_flagsBuffer.data[i]; + if ((h | c | u) & n.k_triadFlags && r.ShouldCreateTriad(t, e, i)) { + var _ = l[t] + , f = l[e] + , d = l[i] + , p = I.SubVV(_, f, s) + , m = I.SubVV(f, d, a) + , v = I.SubVV(d, _, o) + , g = 4 * S.m_squaredDiameter; + if (I.DotVV(p, p) > g || I.DotVV(m, m) > g || I.DotVV(v, v) > g) + return; + var A = S.m_groupBuffer[t] + , x = S.m_groupBuffer[e] + , b = S.m_groupBuffer[i] + , C = S.m_triadBuffer.data[S.m_triadBuffer.Append()]; + C.indexA = t, + C.indexB = e, + C.indexC = i, + C.flags = h | c | u, + C.strength = y(y(A ? A.m_strength : 1, x ? x.m_strength : 1), b ? b.m_strength : 1); + var T = (_.x + f.x + d.x) / 3 + , w = (_.y + f.y + d.y) / 3; + C.pa.x = _.x - T, + C.pa.y = _.y - w, + C.pb.x = f.x - T, + C.pb.y = f.y - w, + C.pc.x = d.x - T, + C.pc.y = d.y - w, + C.ka = -I.DotVV(v, p), + C.kb = -I.DotVV(p, m), + C.kc = -I.DotVV(m, v), + C.s = I.CrossVV(_, f) + I.CrossVV(f, d) + I.CrossVV(d, _) + } + } + )), + Pn(this.m_triadBuffer.data, 0, this.m_triadBuffer.count, n.CompareTriadIndices), + this.m_triadBuffer.Unique(n.MatchTriadIndices) + } + } + , + n.prototype.UpdatePairsAndTriadsWithReactiveParticles = function() { + var e = new n.ReactiveFilter(this.m_flagsBuffer); + if (this.UpdatePairsAndTriads(0, this.m_count, e), + !this.m_flagsBuffer.data) + throw new Error; + for (var i = 0; i < this.m_count; i++) + this.m_flagsBuffer.data[i] &= ~t.b2ParticleFlag.b2_reactiveParticle; + this.m_allParticleFlags &= ~t.b2ParticleFlag.b2_reactiveParticle + } + , + n.ComparePairIndices = function(t, e) { + var i = t.indexA - e.indexA; + return 0 !== i ? i < 0 : t.indexB < e.indexB + } + , + n.MatchPairIndices = function(t, e) { + return t.indexA === e.indexA && t.indexB === e.indexB + } + , + n.CompareTriadIndices = function(t, e) { + var i = t.indexA - e.indexA; + if (0 !== i) + return i < 0; + var n = t.indexB - e.indexB; + return 0 !== n ? n < 0 : t.indexC < e.indexC + } + , + n.MatchTriadIndices = function(t, e) { + return t.indexA === e.indexA && t.indexB === e.indexB && t.indexC === e.indexC + } + , + n.InitializeParticleLists = function(t, e) { + for (var i = t.GetBufferIndex(), n = t.GetParticleCount(), r = 0; r < n; r++) { + var s = e[r]; + s.list = s, + s.next = null, + s.count = 1, + s.index = r + i + } + } + , + n.prototype.MergeParticleListsInContact = function(t, e) { + for (var i = t.GetBufferIndex(), r = 0; r < this.m_contactBuffer.count; r++) { + var s = this.m_contactBuffer.data[r] + , a = s.indexA + , o = s.indexB; + if (t.ContainsParticle(a) && t.ContainsParticle(o)) { + var l = e[a - i].list + , h = e[o - i].list; + if (l !== h) { + if (l.count < h.count) { + var c = l; + l = h, + h = c + } + n.MergeParticleLists(l, h) + } + } + } + } + , + n.MergeParticleLists = function(t, e) { + for (var i = e; ; ) { + i.list = t; + var n = i.next; + if (!n) { + i.next = t.next; + break + } + i = n + } + t.next = e, + t.count += e.count, + e.count = 0 + } + , + n.FindLongestParticleList = function(t, e) { + for (var i = t.GetParticleCount(), n = e[0], r = 0; r < i; r++) { + var s = e[r]; + n.count < s.count && (n = s) + } + return n + } + , + n.prototype.MergeZombieParticleListNodes = function(e, i, r) { + if (!this.m_flagsBuffer.data) + throw new Error; + for (var s = e.GetParticleCount(), a = 0; a < s; a++) { + var o = i[a]; + o !== r && this.m_flagsBuffer.data[o.index] & t.b2ParticleFlag.b2_zombieParticle && n.MergeParticleListAndNode(r, o) + } + } + , + n.MergeParticleListAndNode = function(t, e) { + e.list = t, + e.next = t.next, + t.next = e, + t.count++, + e.count = 0 + } + , + n.prototype.CreateParticleGroupsFromParticleList = function(e, i, n) { + if (!this.m_flagsBuffer.data) + throw new Error; + var r = e.GetParticleCount() + , s = new Sn; + s.groupFlags = e.GetGroupFlags(), + s.userData = e.GetUserData(); + for (var a = 0; a < r; a++) { + var o = i[a]; + if (o.count && o !== n) + for (var l = this.CreateParticleGroup(s), h = o; h; h = h.next) { + var c = h.index + , u = this.CloneParticle(c, l); + this.m_flagsBuffer.data[c] |= t.b2ParticleFlag.b2_zombieParticle, + h.index = u + } + } + } + , + n.prototype.UpdatePairsAndTriadsWithParticleList = function(t, e) { + for (var i = t.GetBufferIndex(), n = 0; n < this.m_pairBuffer.count; n++) { + var r = this.m_pairBuffer.data[n] + , s = r.indexA + , a = r.indexB; + t.ContainsParticle(s) && (r.indexA = e[s - i].index), + t.ContainsParticle(a) && (r.indexB = e[a - i].index) + } + for (n = 0; n < this.m_triadBuffer.count; n++) { + var o = this.m_triadBuffer.data[n] + , l = (s = o.indexA, + a = o.indexB, + o.indexC); + t.ContainsParticle(s) && (o.indexA = e[s - i].index), + t.ContainsParticle(a) && (o.indexB = e[a - i].index), + t.ContainsParticle(l) && (o.indexC = e[l - i].index) + } + } + , + n.prototype.ComputeDepth = function() { + for (var e = [], n = 0, r = 0; r < this.m_contactBuffer.count; r++) { + var s = (v = this.m_contactBuffer.data[r]).indexA + , a = v.indexB + , o = this.m_groupBuffer[s] + , l = this.m_groupBuffer[a]; + o && o === l && o.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth && (e[n++] = v) + } + for (var h = [], c = 0, u = this.m_groupList; u; u = u.GetNext()) + if (u.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth) { + h[c++] = u, + this.SetGroupFlags(u, u.m_groupFlags & ~t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth); + for (var _ = u.m_firstIndex; _ < u.m_lastIndex; _++) + this.m_accumulationBuffer[_] = 0 + } + for (r = 0; r < n; r++) { + s = (v = e[r]).indexA, + a = v.indexB; + var f = v.weight; + this.m_accumulationBuffer[s] += f, + this.m_accumulationBuffer[a] += f + } + for (_ = 0; _ < c; _++) + for (var d = (u = h[_]).m_firstIndex; d < u.m_lastIndex; d++) + f = this.m_accumulationBuffer[d], + this.m_depthBuffer[d] = f < .8 ? 0 : i; + for (var p = T(this.m_count) >> 0, m = 0; m < p; m++) { + var y = !1; + for (r = 0; r < n; r++) { + s = (v = e[r]).indexA, + a = v.indexB; + var v, g = 1 - v.weight, A = this.m_depthBuffer[s], x = this.m_depthBuffer[a], b = x + g, C = A + g; + A > b && (this.m_depthBuffer[s] = b, + y = !0), + x > C && (this.m_depthBuffer[a] = C, + y = !0) + } + if (!y) + break + } + for (_ = 0; _ < c; _++) + for (var S = (u = h[_]).m_firstIndex; S < u.m_lastIndex; S++) + this.m_depthBuffer[S] < i ? this.m_depthBuffer[S] *= this.m_particleDiameter : this.m_depthBuffer[S] = 0 + } + , + n.prototype.GetInsideBoundsEnumerator = function(t) { + var e = n.computeTag(this.m_inverseDiameter * t.lowerBound.x - 1, this.m_inverseDiameter * t.lowerBound.y - 1) + , i = n.computeTag(this.m_inverseDiameter * t.upperBound.x + 1, this.m_inverseDiameter * t.upperBound.y + 1) + , r = this.m_proxyBuffer.count + , s = On(this.m_proxyBuffer.data, 0, r, e, n.Proxy.CompareProxyTag) + , a = Ln(this.m_proxyBuffer.data, 0, r, i, n.Proxy.CompareTagProxy); + return new n.InsideBoundsEnumerator(this,e,i,s,a) + } + , + n.prototype.UpdateAllParticleFlags = function() { + if (!this.m_flagsBuffer.data) + throw new Error; + this.m_allParticleFlags = 0; + for (var t = 0; t < this.m_count; t++) + this.m_allParticleFlags |= this.m_flagsBuffer.data[t]; + this.m_needsUpdateAllParticleFlags = !1 + } + , + n.prototype.UpdateAllGroupFlags = function() { + this.m_allGroupFlags = 0; + for (var t = this.m_groupList; t; t = t.GetNext()) + this.m_allGroupFlags |= t.m_groupFlags; + this.m_needsUpdateAllGroupFlags = !1 + } + , + n.prototype.AddContact = function(t, e) { + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_positionBuffer.data) + throw new Error; + var i = n.AddContact_s_d + , r = this.m_positionBuffer.data + , s = I.SubVV(r[e], r[t], i) + , a = I.DotVV(s, s); + if (a < this.m_squaredDiameter) { + var o = b(a); + isFinite(o) || (o = 198177537e11); + var l = this.m_contactBuffer.data[this.m_contactBuffer.Append()]; + l.indexA = t, + l.indexB = e, + l.flags = this.m_flagsBuffer.data[t] | this.m_flagsBuffer.data[e], + l.weight = 1 - a * o * this.m_inverseDiameter, + I.MulSV(o, s, l.normal) + } + } + , + n.prototype.FindContacts_Reference = function() { + var t = this.m_proxyBuffer.count; + this.m_contactBuffer.count = 0; + for (var e = 0, i = 0; e < t; e++) { + for (var r = n.computeRelativeTag(this.m_proxyBuffer.data[e].tag, 1, 0), s = e + 1; s < t && !(r < this.m_proxyBuffer.data[s].tag); s++) + this.AddContact(this.m_proxyBuffer.data[e].index, this.m_proxyBuffer.data[s].index, this.m_contactBuffer); + for (var a = n.computeRelativeTag(this.m_proxyBuffer.data[e].tag, -1, 1); i < t && !(a <= this.m_proxyBuffer.data[i].tag); i++) + ; + var o = n.computeRelativeTag(this.m_proxyBuffer.data[e].tag, 1, 1); + for (s = i; s < t && !(o < this.m_proxyBuffer.data[s].tag); s++) + this.AddContact(this.m_proxyBuffer.data[e].index, this.m_proxyBuffer.data[s].index, this.m_contactBuffer) + } + } + , + n.prototype.FindContacts = function(t) { + this.FindContacts_Reference(t) + } + , + n.prototype.UpdateProxies_Reference = function() { + if (!this.m_positionBuffer.data) + throw new Error; + for (var t = this.m_positionBuffer.data, e = this.m_inverseDiameter, i = 0; i < this.m_proxyBuffer.count; ++i) { + var r = this.m_proxyBuffer.data[i] + , s = t[r.index]; + r.tag = n.computeTag(e * s.x, e * s.y) + } + } + , + n.prototype.UpdateProxies = function(t) { + this.UpdateProxies_Reference(t) + } + , + n.prototype.SortProxies = function() { + In(this.m_proxyBuffer.data, 0, this.m_proxyBuffer.count, n.Proxy.CompareProxyProxy) + } + , + n.prototype.FilterContacts = function() { + var e = this.GetParticleContactFilter(); + if (null !== e) { + var i = this; + this.m_contactBuffer.RemoveIf((function(n) { + return 0 != (n.flags & t.b2ParticleFlag.b2_particleContactFilterParticle) && !e.ShouldCollideParticleParticle(i, n.indexA, n.indexB) + } + )) + } + } + , + n.prototype.NotifyContactListenerPreContact = function(t) { + if (null !== this.GetParticleContactListener()) + throw t.Initialize(this.m_contactBuffer, this.m_flagsBuffer), + new Error + } + , + n.prototype.NotifyContactListenerPostContact = function() { + var t = this.GetParticleContactListener(); + if (null !== t) { + for (var e = 0; e < this.m_contactBuffer.count; ++e) { + var i = this.m_contactBuffer.data[e]; + t.BeginContactParticleParticle(this, i) + } + throw new Error + } + } + , + n.b2ParticleContactIsZombie = function(e) { + return (e.flags & t.b2ParticleFlag.b2_zombieParticle) === t.b2ParticleFlag.b2_zombieParticle + } + , + n.prototype.UpdateContacts = function(t) { + this.UpdateProxies(this.m_proxyBuffer), + this.SortProxies(this.m_proxyBuffer); + var e = new n.b2ParticlePairSet; + this.NotifyContactListenerPreContact(e), + this.FindContacts(this.m_contactBuffer), + this.FilterContacts(this.m_contactBuffer), + this.NotifyContactListenerPostContact(e), + t && this.m_contactBuffer.RemoveIf(n.b2ParticleContactIsZombie) + } + , + n.prototype.NotifyBodyContactListenerPreContact = function(t) { + if (null !== this.GetFixtureContactListener()) + throw t.Initialize(this.m_bodyContactBuffer, this.m_flagsBuffer), + new Error + } + , + n.prototype.NotifyBodyContactListenerPostContact = function() { + var t = this.GetFixtureContactListener(); + if (null !== t) { + for (var e = 0; e < this.m_bodyContactBuffer.count; e++) { + var i = this.m_bodyContactBuffer.data[e]; + t.BeginContactFixtureParticle(this, i) + } + throw new Error + } + } + , + n.prototype.UpdateBodyContacts = function() { + var t = n.UpdateBodyContacts_s_aabb + , e = new n.FixtureParticleSet; + if (this.NotifyBodyContactListenerPreContact(e), + this.m_stuckThreshold > 0) { + if (!this.m_bodyContactCountBuffer.data) + throw new Error; + if (!this.m_lastBodyContactStepBuffer.data) + throw new Error; + if (!this.m_consecutiveContactStepsBuffer.data) + throw new Error; + for (var i = this.GetParticleCount(), r = 0; r < i; r++) + this.m_bodyContactCountBuffer.data[r] = 0, + this.m_timestamp > this.m_lastBodyContactStepBuffer.data[r] + 1 && (this.m_consecutiveContactStepsBuffer.data[r] = 0) + } + this.m_bodyContactBuffer.SetCount(0), + this.m_stuckParticleBuffer.SetCount(0); + var s = t; + this.ComputeAABB(s); + var a = new n.UpdateBodyContactsCallback(this,this.GetFixtureContactFilter()); + this.m_world.QueryAABB(a, s), + this.m_def.strictContactCheck && this.RemoveSpuriousBodyContacts(), + this.NotifyBodyContactListenerPostContact(e) + } + , + n.prototype.Solve = function(e) { + var i = n.Solve_s_subStep; + if (0 !== this.m_count && (this.m_expirationTimeBuffer.data && this.SolveLifetimes(e), + this.m_allParticleFlags & t.b2ParticleFlag.b2_zombieParticle && this.SolveZombie(), + this.m_needsUpdateAllParticleFlags && this.UpdateAllParticleFlags(), + this.m_needsUpdateAllGroupFlags && this.UpdateAllGroupFlags(), + !this.m_paused)) + for (this.m_iterationIndex = 0; this.m_iterationIndex < e.particleIterations; this.m_iterationIndex++) { + ++this.m_timestamp; + var r = i.Copy(e); + if (r.dt /= e.particleIterations, + r.inv_dt *= e.particleIterations, + this.UpdateContacts(!1), + this.UpdateBodyContacts(), + this.ComputeWeight(), + this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth && this.ComputeDepth(), + this.m_allParticleFlags & t.b2ParticleFlag.b2_reactiveParticle && this.UpdatePairsAndTriadsWithReactiveParticles(), + this.m_hasForce && this.SolveForce(r), + this.m_allParticleFlags & t.b2ParticleFlag.b2_viscousParticle && this.SolveViscous(), + this.m_allParticleFlags & t.b2ParticleFlag.b2_repulsiveParticle && this.SolveRepulsive(r), + this.m_allParticleFlags & t.b2ParticleFlag.b2_powderParticle && this.SolvePowder(r), + this.m_allParticleFlags & t.b2ParticleFlag.b2_tensileParticle && this.SolveTensile(r), + this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_solidParticleGroup && this.SolveSolid(r), + this.m_allParticleFlags & t.b2ParticleFlag.b2_colorMixingParticle && this.SolveColorMixing(), + this.SolveGravity(r), + this.m_allParticleFlags & t.b2ParticleFlag.b2_staticPressureParticle && this.SolveStaticPressure(r), + this.SolvePressure(r), + this.SolveDamping(r), + this.m_allParticleFlags & n.k_extraDampingFlags && this.SolveExtraDamping(), + this.m_allParticleFlags & t.b2ParticleFlag.b2_elasticParticle && this.SolveElastic(r), + this.m_allParticleFlags & t.b2ParticleFlag.b2_springParticle && this.SolveSpring(r), + this.LimitVelocity(r), + this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup && this.SolveRigidDamping(), + this.m_allParticleFlags & t.b2ParticleFlag.b2_barrierParticle && this.SolveBarrier(r), + this.SolveCollision(r), + this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup && this.SolveRigid(r), + this.m_allParticleFlags & t.b2ParticleFlag.b2_wallParticle && this.SolveWall(), + !this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var s = 0; s < this.m_count; s++) + this.m_positionBuffer.data[s].SelfMulAdd(r.dt, this.m_velocityBuffer.data[s]) + } + } + , + n.prototype.SolveCollision = function(t) { + var e = n.SolveCollision_s_aabb; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + var r = this.m_positionBuffer.data + , s = this.m_velocityBuffer.data + , a = e; + a.lowerBound.x = +i, + a.lowerBound.y = +i, + a.upperBound.x = -i, + a.upperBound.y = -i; + for (var o = 0; o < this.m_count; o++) { + var l = s[o] + , h = r[o] + , c = h.x + t.dt * l.x + , u = h.y + t.dt * l.y; + a.lowerBound.x = y(a.lowerBound.x, y(h.x, c)), + a.lowerBound.y = y(a.lowerBound.y, y(h.y, u)), + a.upperBound.x = v(a.upperBound.x, v(h.x, c)), + a.upperBound.y = v(a.upperBound.y, v(h.y, u)) + } + var _ = new n.SolveCollisionCallback(this,t); + this.m_world.QueryAABB(_, a) + } + , + n.prototype.LimitVelocity = function(t) { + if (!this.m_velocityBuffer.data) + throw new Error; + for (var e = this.m_velocityBuffer.data, i = this.GetCriticalVelocitySquared(t), n = 0; n < this.m_count; n++) { + var r = e[n] + , s = I.DotVV(r, r); + s > i && r.SelfMul(T(i / s)) + } + } + , + n.prototype.SolveGravity = function(t) { + if (!this.m_velocityBuffer.data) + throw new Error; + for (var e = n.SolveGravity_s_gravity, i = this.m_velocityBuffer.data, r = I.MulSV(t.dt * this.m_def.gravityScale, this.m_world.GetGravity(), e), s = 0; s < this.m_count; s++) + i[s].SelfAdd(r) + } + , + n.prototype.SolveBarrier = function(e) { + var i = n.SolveBarrier_s_aabb + , r = n.SolveBarrier_s_va + , s = n.SolveBarrier_s_vb + , a = n.SolveBarrier_s_pba + , o = n.SolveBarrier_s_vba + , l = n.SolveBarrier_s_vc + , h = n.SolveBarrier_s_pca + , c = n.SolveBarrier_s_vca + , u = n.SolveBarrier_s_qba + , _ = n.SolveBarrier_s_qca + , f = n.SolveBarrier_s_dv + , d = n.SolveBarrier_s_f; + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var p = this.m_positionBuffer.data, m = this.m_velocityBuffer.data, y = 0; y < this.m_count; y++) + 0 != (this.m_flagsBuffer.data[y] & n.k_barrierWallFlags) && m[y].SetZero(); + for (var v = 2.5 * e.dt, g = this.GetParticleMass(), A = 0; A < this.m_pairBuffer.count; A++) { + var x = this.m_pairBuffer.data[A]; + if (x.flags & t.b2ParticleFlag.b2_barrierParticle) { + var b = x.indexA + , C = x.indexB + , S = p[b] + , w = p[C] + , E = i; + I.MinV(S, w, E.lowerBound), + I.MaxV(S, w, E.upperBound); + for (var M = this.m_groupBuffer[b], D = this.m_groupBuffer[C], B = this.GetLinearVelocity(M, b, S, r), P = this.GetLinearVelocity(D, C, w, s), R = I.SubVV(w, S, a), O = I.SubVV(P, B, o), L = this.GetInsideBoundsEnumerator(E), F = void 0; (F = L.GetNext()) >= 0; ) { + var V = p[F] + , N = this.m_groupBuffer[F]; + if (M !== N && D !== N) { + var k = this.GetLinearVelocity(N, F, V, l) + , G = I.SubVV(V, S, h) + , U = I.SubVV(k, B, c) + , z = I.CrossVV(O, U) + , H = I.CrossVV(R, U) - I.CrossVV(G, O) + , W = I.CrossVV(R, G) + , j = void 0 + , X = void 0 + , Y = u + , q = _; + if (0 === z) { + if (0 === H) + continue; + if (!((X = -W / H) >= 0 && X < v)) + continue; + if (I.AddVMulSV(R, X, O, Y), + I.AddVMulSV(G, X, U, q), + !((j = I.DotVV(Y, q) / I.DotVV(Y, Y)) >= 0 && j <= 1)) + continue + } else { + var J = H * H - 4 * W * z; + if (J < 0) + continue; + var Z = T(J) + , K = (-H - Z) / (2 * z) + , Q = (-H + Z) / (2 * z); + if (K > Q) { + var $ = K; + K = Q, + Q = $ + } + if (X = K, + I.AddVMulSV(R, X, O, Y), + I.AddVMulSV(G, X, U, q), + j = I.DotVV(Y, q) / I.DotVV(Y, Y), + !(X >= 0 && X < v && j >= 0 && j <= 1)) { + if (!((X = Q) >= 0 && X < v)) + continue; + if (I.AddVMulSV(R, X, O, Y), + I.AddVMulSV(G, X, U, q), + !((j = I.DotVV(Y, q) / I.DotVV(Y, Y)) >= 0 && j <= 1)) + continue + } + } + var tt = f; + tt.x = B.x + j * O.x - k.x, + tt.y = B.y + j * O.y - k.y; + var et = I.MulSV(g, tt, d); + if (N && this.IsRigidGroup(N)) { + var it = N.GetMass() + , nt = N.GetInertia(); + it > 0 && N.m_linearVelocity.SelfMulAdd(1 / it, et), + nt > 0 && (N.m_angularVelocity += I.CrossVV(I.SubVV(V, N.GetCenter(), I.s_t0), et) / nt) + } else + m[F].SelfAdd(tt); + this.ParticleApplyForce(F, et.SelfMul(-e.inv_dt)) + } + } + } + } + } + , + n.prototype.SolveStaticPressure = function(e) { + if (!this.m_flagsBuffer.data) + throw new Error; + this.m_staticPressureBuffer = this.RequestBuffer(this.m_staticPressureBuffer); + for (var i = this.GetCriticalPressure(e), n = this.m_def.staticPressureStrength * i, r = .25 * i, s = this.m_def.staticPressureRelaxation, a = 0; a < this.m_def.staticPressureIterations; a++) { + for (var o = 0; o < this.m_count; o++) + this.m_accumulationBuffer[o] = 0; + for (var l = 0; l < this.m_contactBuffer.count; l++) { + var h = this.m_contactBuffer.data[l]; + if (h.flags & t.b2ParticleFlag.b2_staticPressureParticle) { + var c = h.indexA + , u = h.indexB + , _ = h.weight; + this.m_accumulationBuffer[c] += _ * this.m_staticPressureBuffer[u], + this.m_accumulationBuffer[u] += _ * this.m_staticPressureBuffer[c] + } + } + for (o = 0; o < this.m_count; o++) + if (_ = this.m_weightBuffer[o], + this.m_flagsBuffer.data[o] & t.b2ParticleFlag.b2_staticPressureParticle) { + var f = (this.m_accumulationBuffer[o] + n * (_ - 1)) / (_ + s); + this.m_staticPressureBuffer[o] = g(f, 0, r) + } else + this.m_staticPressureBuffer[o] = 0 + } + } + , + n.prototype.ComputeWeight = function() { + for (var t = 0; t < this.m_count; t++) + this.m_weightBuffer[t] = 0; + for (t = 0; t < this.m_bodyContactBuffer.count; t++) { + var e = (n = this.m_bodyContactBuffer.data[t]).index + , i = n.weight; + this.m_weightBuffer[e] += i + } + for (t = 0; t < this.m_contactBuffer.count; t++) { + e = (n = this.m_contactBuffer.data[t]).indexA; + var n, r = n.indexB; + i = n.weight, + this.m_weightBuffer[e] += i, + this.m_weightBuffer[r] += i + } + } + , + n.prototype.SolvePressure = function(e) { + var i = n.SolvePressure_s_f; + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, a = this.GetCriticalPressure(e), o = this.m_def.pressureStrength * a, l = .25 * a, h = 0; h < this.m_count; h++) { + var c = this.m_weightBuffer[h] + , u = o * v(0, c - 1); + this.m_accumulationBuffer[h] = y(u, l) + } + if (this.m_allParticleFlags & n.k_noPressureFlags) + for (h = 0; h < this.m_count; h++) + this.m_flagsBuffer.data[h] & n.k_noPressureFlags && (this.m_accumulationBuffer[h] = 0); + if (this.m_allParticleFlags & t.b2ParticleFlag.b2_staticPressureParticle) + for (h = 0; h < this.m_count; h++) + this.m_flagsBuffer.data[h] & t.b2ParticleFlag.b2_staticPressureParticle && (this.m_accumulationBuffer[h] += this.m_staticPressureBuffer[h]); + for (var _ = e.dt / (this.m_def.density * this.m_particleDiameter), f = this.GetParticleInvMass(), d = 0; d < this.m_bodyContactBuffer.count; d++) { + var p = (C = this.m_bodyContactBuffer.data[d]).index + , m = C.body + , g = (c = C.weight, + C.mass) + , A = C.normal + , x = r[p] + , b = (u = this.m_accumulationBuffer[p] + o * c, + I.MulSV(_ * c * g * u, A, i)); + s[p].SelfMulSub(f, b), + m.ApplyLinearImpulse(b, x, !0) + } + for (d = 0; d < this.m_contactBuffer.count; d++) { + var C; + p = (C = this.m_contactBuffer.data[d]).indexA, + m = C.indexB, + c = C.weight, + A = C.normal, + u = this.m_accumulationBuffer[p] + this.m_accumulationBuffer[m], + b = I.MulSV(_ * c * u, A, i), + s[p].SelfSub(b), + s[m].SelfAdd(b) + } + } + , + n.prototype.SolveDamping = function(t) { + var e = n.SolveDamping_s_v + , i = n.SolveDamping_s_f; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, a = this.m_def.dampingStrength, o = 1 / this.GetCriticalVelocity(t), l = this.GetParticleInvMass(), h = 0; h < this.m_bodyContactBuffer.count; h++) { + var c = (x = this.m_bodyContactBuffer.data[h]).index + , u = x.body + , _ = x.weight + , f = x.mass + , d = x.normal + , p = r[c] + , m = I.SubVV(u.GetLinearVelocityFromWorldPoint(p, I.s_t0), s[c], e); + if ((b = I.DotVV(m, d)) < 0) { + var g = v(a * _, y(-o * b, .5)) + , A = I.MulSV(g * f * b, d, i); + s[c].SelfMulAdd(l, A), + u.ApplyLinearImpulse(A.SelfNeg(), p, !0) + } + } + for (h = 0; h < this.m_contactBuffer.count; h++) { + var x, b; + c = (x = this.m_contactBuffer.data[h]).indexA, + u = x.indexB, + _ = x.weight, + d = x.normal, + m = I.SubVV(s[u], s[c], e), + (b = I.DotVV(m, d)) < 0 && (g = v(a * _, y(-o * b, .5)), + A = I.MulSV(g * b, d, i), + s[c].SelfAdd(A), + s[u].SelfSub(A)) + } + } + , + n.prototype.SolveRigidDamping = function() { + var t = n.SolveRigidDamping_s_t0 + , e = n.SolveRigidDamping_s_t1 + , i = n.SolveRigidDamping_s_p + , r = n.SolveRigidDamping_s_v + , s = [0] + , a = [0] + , o = [0] + , l = [0] + , h = [0] + , c = [0]; + if (!this.m_positionBuffer.data) + throw new Error; + for (var u = this.m_positionBuffer.data, _ = this.m_def.dampingStrength, f = 0; f < this.m_bodyContactBuffer.count; f++) { + var d = (b = this.m_bodyContactBuffer.data[f]).index; + if ((T = this.m_groupBuffer[d]) && this.IsRigidGroup(T)) { + var p = b.body + , m = b.normal + , v = b.weight + , g = u[d] + , A = I.SubVV(p.GetLinearVelocityFromWorldPoint(g, t), T.GetLinearVelocityFromWorldPoint(g, e), r); + if ((C = I.DotVV(A, m)) < 0) { + this.InitDampingParameterWithRigidGroupOrParticle(s, a, o, !0, T, d, g, m), + this.InitDampingParameter(l, h, c, p.GetMass(), p.GetInertia() - p.GetMass() * p.GetLocalCenter().LengthSquared(), p.GetWorldCenter(), g, m); + var x = _ * y(v, 1) * this.ComputeDampingImpulse(s[0], a[0], o[0], l[0], h[0], c[0], C); + this.ApplyDamping(s[0], a[0], o[0], !0, T, d, x, m), + p.ApplyLinearImpulse(I.MulSV(-x, m, I.s_t0), g, !0) + } + } + } + for (f = 0; f < this.m_contactBuffer.count; f++) { + d = (b = this.m_contactBuffer.data[f]).indexA, + p = b.indexB, + m = b.normal, + v = b.weight; + var b, C, T = this.m_groupBuffer[d], S = this.m_groupBuffer[p], w = this.IsRigidGroup(T), E = this.IsRigidGroup(S); + T !== S && (w || E) && (g = I.MidVV(u[d], u[p], i), + A = I.SubVV(this.GetLinearVelocity(S, p, g, t), this.GetLinearVelocity(T, d, g, e), r), + (C = I.DotVV(A, m)) < 0 && (this.InitDampingParameterWithRigidGroupOrParticle(s, a, o, w, T, d, g, m), + this.InitDampingParameterWithRigidGroupOrParticle(l, h, c, E, S, p, g, m), + x = _ * v * this.ComputeDampingImpulse(s[0], a[0], o[0], l[0], h[0], c[0], C), + this.ApplyDamping(s[0], a[0], o[0], w, T, d, x, m), + this.ApplyDamping(l[0], h[0], c[0], E, S, p, -x, m))) + } + } + , + n.prototype.SolveExtraDamping = function() { + var t = n.SolveExtraDamping_s_v + , e = n.SolveExtraDamping_s_f; + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var i = this.m_velocityBuffer.data, r = this.m_positionBuffer.data, s = this.GetParticleInvMass(), a = 0; a < this.m_bodyContactBuffer.count; a++) { + var o = this.m_bodyContactBuffer.data[a] + , l = o.index; + if (this.m_flagsBuffer.data[l] & n.k_extraDampingFlags) { + var h = o.body + , c = o.mass + , u = o.normal + , _ = r[l] + , f = I.SubVV(h.GetLinearVelocityFromWorldPoint(_, I.s_t0), i[l], t) + , d = I.DotVV(f, u); + if (d < 0) { + var p = I.MulSV(.5 * c * d, u, e); + i[l].SelfMulAdd(s, p), + h.ApplyLinearImpulse(p.SelfNeg(), _, !0) + } + } + } + } + , + n.prototype.SolveWall = function() { + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var e = this.m_velocityBuffer.data, i = 0; i < this.m_count; i++) + this.m_flagsBuffer.data[i] & t.b2ParticleFlag.b2_wallParticle && e[i].SetZero() + } + , + n.prototype.SolveRigid = function(e) { + var i = n.SolveRigid_s_position + , r = n.SolveRigid_s_rotation + , s = n.SolveRigid_s_transform + , a = n.SolveRigid_s_velocityTransform; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var o = this.m_positionBuffer.data, l = this.m_velocityBuffer.data, h = this.m_groupList; h; h = h.GetNext()) + if (h.m_groupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup) { + h.UpdateStatistics(); + var c = r; + c.SetAngle(e.dt * h.m_angularVelocity); + var u = I.AddVV(h.m_center, I.SubVV(I.MulSV(e.dt, h.m_linearVelocity, I.s_t0), F.MulRV(c, h.m_center, I.s_t1), I.s_t0), i) + , _ = s; + _.SetPositionRotation(u, c), + V.MulXX(_, h.m_transform, h.m_transform); + var f = a; + f.p.x = e.inv_dt * _.p.x, + f.p.y = e.inv_dt * _.p.y, + f.q.s = e.inv_dt * _.q.s, + f.q.c = e.inv_dt * (_.q.c - 1); + for (var d = h.m_firstIndex; d < h.m_lastIndex; d++) + V.MulXV(f, o[d], l[d]) + } + } + , + n.prototype.SolveElastic = function(e) { + var i = n.SolveElastic_s_pa + , r = n.SolveElastic_s_pb + , s = n.SolveElastic_s_pc + , a = n.SolveElastic_s_r + , o = n.SolveElastic_s_t0; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var l = this.m_positionBuffer.data, h = this.m_velocityBuffer.data, c = e.inv_dt * this.m_def.elasticStrength, u = 0; u < this.m_triadBuffer.count; u++) { + var _ = this.m_triadBuffer.data[u]; + if (_.flags & t.b2ParticleFlag.b2_elasticParticle) { + var f = _.indexA + , d = _.indexB + , p = _.indexC + , m = _.pa + , y = _.pb + , v = _.pc + , g = i.Copy(l[f]) + , A = r.Copy(l[d]) + , x = s.Copy(l[p]) + , C = h[f] + , T = h[d] + , S = h[p]; + g.SelfMulAdd(e.dt, C), + A.SelfMulAdd(e.dt, T), + x.SelfMulAdd(e.dt, S); + var w = (g.x + A.x + x.x) / 3 + , E = (g.y + A.y + x.y) / 3; + g.x -= w, + g.y -= E, + A.x -= w, + A.y -= E, + x.x -= w, + x.y -= E; + var M = a; + M.s = I.CrossVV(m, g) + I.CrossVV(y, A) + I.CrossVV(v, x), + M.c = I.DotVV(m, g) + I.DotVV(y, A) + I.DotVV(v, x); + var D = b(M.s * M.s + M.c * M.c); + isFinite(D) || (D = 198177537e11), + M.s *= D, + M.c *= D; + var B = c * _.strength; + F.MulRV(M, m, o), + I.SubVV(o, g, o), + I.MulSV(B, o, o), + C.SelfAdd(o), + F.MulRV(M, y, o), + I.SubVV(o, A, o), + I.MulSV(B, o, o), + T.SelfAdd(o), + F.MulRV(M, v, o), + I.SubVV(o, x, o), + I.MulSV(B, o, o), + S.SelfAdd(o) + } + } + } + , + n.prototype.SolveSpring = function(e) { + var i = n.SolveSpring_s_pa + , r = n.SolveSpring_s_pb + , s = n.SolveSpring_s_d + , a = n.SolveSpring_s_f; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var o = this.m_positionBuffer.data, l = this.m_velocityBuffer.data, h = e.inv_dt * this.m_def.springStrength, c = 0; c < this.m_pairBuffer.count; c++) { + var u = this.m_pairBuffer.data[c]; + if (u.flags & t.b2ParticleFlag.b2_springParticle) { + var _ = u.indexA + , f = u.indexB + , d = i.Copy(o[_]) + , p = r.Copy(o[f]) + , m = l[_] + , y = l[f]; + d.SelfMulAdd(e.dt, m), + p.SelfMulAdd(e.dt, y); + var v = I.SubVV(p, d, s) + , g = u.distance + , A = v.Length() + , x = h * u.strength + , b = I.MulSV(x * (g - A) / A, v, a); + m.SelfSub(b), + y.SelfAdd(b) + } + } + } + , + n.prototype.SolveTensile = function(e) { + var i = n.SolveTensile_s_weightedNormal + , r = n.SolveTensile_s_s + , s = n.SolveTensile_s_f; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var a = this.m_velocityBuffer.data, o = 0; o < this.m_count; o++) + this.m_accumulation2Buffer[o] = new I, + this.m_accumulation2Buffer[o].SetZero(); + for (var l = 0; l < this.m_contactBuffer.count; l++) + if ((g = this.m_contactBuffer.data[l]).flags & t.b2ParticleFlag.b2_tensileParticle) { + var h = g.indexA + , c = g.indexB + , u = g.weight + , _ = g.normal + , f = I.MulSV((1 - u) * u, _, i); + this.m_accumulation2Buffer[h].SelfSub(f), + this.m_accumulation2Buffer[c].SelfAdd(f) + } + var d = this.GetCriticalVelocity(e) + , p = this.m_def.surfaceTensionPressureStrength * d + , m = this.m_def.surfaceTensionNormalStrength * d + , v = .5 * d; + for (l = 0; l < this.m_contactBuffer.count; l++) { + var g; + if ((g = this.m_contactBuffer.data[l]).flags & t.b2ParticleFlag.b2_tensileParticle) { + h = g.indexA, + c = g.indexB, + u = g.weight, + _ = g.normal; + var A = this.m_weightBuffer[h] + this.m_weightBuffer[c] + , x = I.SubVV(this.m_accumulation2Buffer[c], this.m_accumulation2Buffer[h], r) + , b = y(p * (A - 2) + m * I.DotVV(x, _), v) * u + , C = I.MulSV(b, _, s); + a[h].SelfSub(C), + a[c].SelfAdd(C) + } + } + } + , + n.prototype.SolveViscous = function() { + var e = n.SolveViscous_s_v + , i = n.SolveViscous_s_f; + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, a = this.m_def.viscousStrength, o = this.GetParticleInvMass(), l = 0; l < this.m_bodyContactBuffer.count; l++) { + var h = (m = this.m_bodyContactBuffer.data[l]).index; + if (this.m_flagsBuffer.data[h] & t.b2ParticleFlag.b2_viscousParticle) { + var c = m.body + , u = m.weight + , _ = m.mass + , f = r[h] + , d = I.SubVV(c.GetLinearVelocityFromWorldPoint(f, I.s_t0), s[h], e) + , p = I.MulSV(a * _ * u, d, i); + s[h].SelfMulAdd(o, p), + c.ApplyLinearImpulse(p.SelfNeg(), f, !0) + } + } + for (l = 0; l < this.m_contactBuffer.count; l++) { + var m; + (m = this.m_contactBuffer.data[l]).flags & t.b2ParticleFlag.b2_viscousParticle && (h = m.indexA, + c = m.indexB, + u = m.weight, + d = I.SubVV(s[c], s[h], e), + p = I.MulSV(a * u, d, i), + s[h].SelfAdd(p), + s[c].SelfSub(p)) + } + } + , + n.prototype.SolveRepulsive = function(e) { + var i = n.SolveRepulsive_s_f; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var r = this.m_velocityBuffer.data, s = this.m_def.repulsiveStrength * this.GetCriticalVelocity(e), a = 0; a < this.m_contactBuffer.count; a++) { + var o = this.m_contactBuffer.data[a]; + if (o.flags & t.b2ParticleFlag.b2_repulsiveParticle) { + var l = o.indexA + , h = o.indexB; + if (this.m_groupBuffer[l] !== this.m_groupBuffer[h]) { + var c = o.weight + , u = o.normal + , _ = I.MulSV(s * c, u, i); + r[l].SelfSub(_), + r[h].SelfAdd(_) + } + } + } + } + , + n.prototype.SolvePowder = function(e) { + var i = n.SolvePowder_s_f; + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, a = this.m_def.powderStrength * this.GetCriticalVelocity(e), o = this.GetParticleInvMass(), l = 0; l < this.m_bodyContactBuffer.count; l++) { + var h = (p = this.m_bodyContactBuffer.data[l]).index; + if (this.m_flagsBuffer.data[h] & t.b2ParticleFlag.b2_powderParticle && (m = p.weight) > .25) { + var c = p.body + , u = p.mass + , _ = r[h] + , f = p.normal + , d = I.MulSV(a * u * (m - .25), f, i); + s[h].SelfMulSub(o, d), + c.ApplyLinearImpulse(d, _, !0) + } + } + for (l = 0; l < this.m_contactBuffer.count; l++) { + var p, m; + (p = this.m_contactBuffer.data[l]).flags & t.b2ParticleFlag.b2_powderParticle && (m = p.weight) > .25 && (h = p.indexA, + c = p.indexB, + f = p.normal, + d = I.MulSV(a * (m - .25), f, i), + s[h].SelfSub(d), + s[c].SelfAdd(d)) + } + } + , + n.prototype.SolveSolid = function(t) { + var e = n.SolveSolid_s_f; + if (!this.m_velocityBuffer.data) + throw new Error; + var i = this.m_velocityBuffer.data; + this.m_depthBuffer = this.RequestBuffer(this.m_depthBuffer); + for (var r = t.inv_dt * this.m_def.ejectionStrength, s = 0; s < this.m_contactBuffer.count; s++) { + var a = this.m_contactBuffer.data[s] + , o = a.indexA + , l = a.indexB; + if (this.m_groupBuffer[o] !== this.m_groupBuffer[l]) { + var h = a.weight + , c = a.normal + , u = this.m_depthBuffer[o] + this.m_depthBuffer[l] + , _ = I.MulSV(r * u * h, c, e); + i[o].SelfSub(_), + i[l].SelfAdd(_) + } + } + } + , + n.prototype.SolveForce = function(t) { + if (!this.m_velocityBuffer.data) + throw new Error; + for (var e = this.m_velocityBuffer.data, i = t.dt * this.GetParticleInvMass(), n = 0; n < this.m_count; n++) + e[n].SelfMulAdd(i, this.m_forceBuffer[n]); + this.m_hasForce = !1 + } + , + n.prototype.SolveColorMixing = function() { + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_colorBuffer.data) + throw new Error; + var e = .5 * this.m_def.colorMixingStrength; + if (e) + for (var i = 0; i < this.m_contactBuffer.count; i++) { + var n = this.m_contactBuffer.data[i] + , r = n.indexA + , s = n.indexB; + if (this.m_flagsBuffer.data[r] & this.m_flagsBuffer.data[s] & t.b2ParticleFlag.b2_colorMixingParticle) { + var a = this.m_colorBuffer.data[r] + , o = this.m_colorBuffer.data[s]; + k.MixColors(a, o, e) + } + } + } + , + n.prototype.SolveZombie = function() { + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + for (var e = 0, i = [], n = 0; n < this.m_count; n++) + i[n] = u; + var r = 0; + for (n = 0; n < this.m_count; n++) { + var s = this.m_flagsBuffer.data[n]; + if (s & t.b2ParticleFlag.b2_zombieParticle) { + var a = this.m_world.m_destructionListener; + s & t.b2ParticleFlag.b2_destructionListenerParticle && a && a.SayGoodbyeParticle(this, n), + this.m_handleIndexBuffer.data && (o = this.m_handleIndexBuffer.data[n]) && (o.SetIndex(u), + this.m_handleIndexBuffer.data[n] = null), + i[n] = u + } else { + var o; + i[n] = e, + n !== e && (this.m_handleIndexBuffer.data && ((o = this.m_handleIndexBuffer.data[n]) && o.SetIndex(e), + this.m_handleIndexBuffer.data[e] = o), + this.m_flagsBuffer.data[e] = this.m_flagsBuffer.data[n], + this.m_lastBodyContactStepBuffer.data && (this.m_lastBodyContactStepBuffer.data[e] = this.m_lastBodyContactStepBuffer.data[n]), + this.m_bodyContactCountBuffer.data && (this.m_bodyContactCountBuffer.data[e] = this.m_bodyContactCountBuffer.data[n]), + this.m_consecutiveContactStepsBuffer.data && (this.m_consecutiveContactStepsBuffer.data[e] = this.m_consecutiveContactStepsBuffer.data[n]), + this.m_positionBuffer.data[e].Copy(this.m_positionBuffer.data[n]), + this.m_velocityBuffer.data[e].Copy(this.m_velocityBuffer.data[n]), + this.m_groupBuffer[e] = this.m_groupBuffer[n], + this.m_hasForce && this.m_forceBuffer[e].Copy(this.m_forceBuffer[n]), + this.m_staticPressureBuffer && (this.m_staticPressureBuffer[e] = this.m_staticPressureBuffer[n]), + this.m_depthBuffer && (this.m_depthBuffer[e] = this.m_depthBuffer[n]), + this.m_colorBuffer.data && this.m_colorBuffer.data[e].Copy(this.m_colorBuffer.data[n]), + this.m_userDataBuffer.data && (this.m_userDataBuffer.data[e] = this.m_userDataBuffer.data[n]), + this.m_expirationTimeBuffer.data && (this.m_expirationTimeBuffer.data[e] = this.m_expirationTimeBuffer.data[n])), + e++, + r |= s + } + } + for (var l = 0; l < this.m_proxyBuffer.count; l++) { + var h = this.m_proxyBuffer.data[l]; + h.index = i[h.index] + } + for (this.m_proxyBuffer.RemoveIf((function(t) { + return t.index < 0 + } + )), + l = 0; l < this.m_contactBuffer.count; l++) + (c = this.m_contactBuffer.data[l]).indexA = i[c.indexA], + c.indexB = i[c.indexB]; + for (this.m_contactBuffer.RemoveIf((function(t) { + return t.indexA < 0 || t.indexB < 0 + } + )), + l = 0; l < this.m_bodyContactBuffer.count; l++) { + var c; + (c = this.m_bodyContactBuffer.data[l]).index = i[c.index] + } + for (this.m_bodyContactBuffer.RemoveIf((function(t) { + return t.index < 0 + } + )), + l = 0; l < this.m_pairBuffer.count; l++) { + var _ = this.m_pairBuffer.data[l]; + _.indexA = i[_.indexA], + _.indexB = i[_.indexB] + } + for (this.m_pairBuffer.RemoveIf((function(t) { + return t.indexA < 0 || t.indexB < 0 + } + )), + l = 0; l < this.m_triadBuffer.count; l++) { + var f = this.m_triadBuffer.data[l]; + f.indexA = i[f.indexA], + f.indexB = i[f.indexB], + f.indexC = i[f.indexC] + } + if (this.m_triadBuffer.RemoveIf((function(t) { + return t.indexA < 0 || t.indexB < 0 || t.indexC < 0 + } + )), + this.m_indexByExpirationTimeBuffer.data) + for (var d = 0, p = 0; p < this.m_count; p++) { + var m = i[this.m_indexByExpirationTimeBuffer.data[p]]; + m !== u && (this.m_indexByExpirationTimeBuffer.data[d++] = m) + } + for (var g = this.m_groupList; g; g = g.GetNext()) { + var A = e + , x = 0 + , b = !1; + for (n = g.m_firstIndex; n < g.m_lastIndex; n++) { + var C = i[n]; + C >= 0 ? (A = y(A, C), + x = v(x, C + 1)) : b = !0 + } + A < x ? (g.m_firstIndex = A, + g.m_lastIndex = x, + b && g.m_groupFlags & t.b2ParticleGroupFlag.b2_solidParticleGroup && this.SetGroupFlags(g, g.m_groupFlags | t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth)) : (g.m_firstIndex = 0, + g.m_lastIndex = 0, + g.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupCanBeEmpty || this.SetGroupFlags(g, g.m_groupFlags | t.b2ParticleGroupFlag.b2_particleGroupWillBeDestroyed)) + } + for (this.m_count = e, + this.m_allParticleFlags = r, + this.m_needsUpdateAllParticleFlags = !1, + g = this.m_groupList; g; ) { + var T = g.GetNext(); + g.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupWillBeDestroyed && this.DestroyParticleGroup(g), + g = T + } + } + , + n.prototype.SolveLifetimes = function(t) { + if (!this.m_expirationTimeBuffer.data) + throw new Error; + if (!this.m_indexByExpirationTimeBuffer.data) + throw new Error; + this.m_timeElapsed = this.LifetimeToExpirationTime(t.dt); + var e = this.GetQuantizedTimeElapsed() + , i = this.m_expirationTimeBuffer.data + , n = this.m_indexByExpirationTimeBuffer.data + , r = this.GetParticleCount(); + this.m_expirationTimeBufferRequiresSorting && (In(n, 0, r, (function(t, e) { + var n = i[t] + , r = i[e] + , s = n <= 0; + return s === r <= 0 ? n > r : s + } + )), + this.m_expirationTimeBufferRequiresSorting = !1); + for (var s = r - 1; s >= 0; --s) { + var a = n[s] + , o = i[a]; + if (e < o || o <= 0) + break; + this.DestroyParticle(a) + } + } + , + n.prototype.RotateBuffer = function(t, e, i) { + if (t !== e && e !== i) { + if (!this.m_flagsBuffer.data) + throw new Error; + if (!this.m_positionBuffer.data) + throw new Error; + if (!this.m_velocityBuffer.data) + throw new Error; + if (Fn(this.m_flagsBuffer.data, t, e, i), + this.m_lastBodyContactStepBuffer.data && Fn(this.m_lastBodyContactStepBuffer.data, t, e, i), + this.m_bodyContactCountBuffer.data && Fn(this.m_bodyContactCountBuffer.data, t, e, i), + this.m_consecutiveContactStepsBuffer.data && Fn(this.m_consecutiveContactStepsBuffer.data, t, e, i), + Fn(this.m_positionBuffer.data, t, e, i), + Fn(this.m_velocityBuffer.data, t, e, i), + Fn(this.m_groupBuffer, t, e, i), + this.m_hasForce && Fn(this.m_forceBuffer, t, e, i), + this.m_staticPressureBuffer && Fn(this.m_staticPressureBuffer, t, e, i), + this.m_depthBuffer && Fn(this.m_depthBuffer, t, e, i), + this.m_colorBuffer.data && Fn(this.m_colorBuffer.data, t, e, i), + this.m_userDataBuffer.data && Fn(this.m_userDataBuffer.data, t, e, i), + this.m_handleIndexBuffer.data) { + Fn(this.m_handleIndexBuffer.data, t, e, i); + for (var n = t; n < i; ++n) { + var r = this.m_handleIndexBuffer.data[n]; + r && r.SetIndex(f(r.GetIndex())) + } + } + if (this.m_expirationTimeBuffer.data) { + Fn(this.m_expirationTimeBuffer.data, t, e, i); + var s = this.GetParticleCount(); + if (!this.m_indexByExpirationTimeBuffer.data) + throw new Error; + var a = this.m_indexByExpirationTimeBuffer.data; + for (n = 0; n < s; ++n) + a[n] = f(a[n]) + } + for (var o = 0; o < this.m_proxyBuffer.count; o++) { + var l = this.m_proxyBuffer.data[o]; + l.index = f(l.index) + } + for (o = 0; o < this.m_contactBuffer.count; o++) + (h = this.m_contactBuffer.data[o]).indexA = f(h.indexA), + h.indexB = f(h.indexB); + for (o = 0; o < this.m_bodyContactBuffer.count; o++) { + var h; + (h = this.m_bodyContactBuffer.data[o]).index = f(h.index) + } + for (o = 0; o < this.m_pairBuffer.count; o++) { + var c = this.m_pairBuffer.data[o]; + c.indexA = f(c.indexA), + c.indexB = f(c.indexB) + } + for (o = 0; o < this.m_triadBuffer.count; o++) { + var u = this.m_triadBuffer.data[o]; + u.indexA = f(u.indexA), + u.indexB = f(u.indexB), + u.indexC = f(u.indexC) + } + for (var _ = this.m_groupList; _; _ = _.GetNext()) + _.m_firstIndex = f(_.m_firstIndex), + _.m_lastIndex = f(_.m_lastIndex - 1) + 1 + } + function f(n) { + return n < t ? n : n < e ? n + i - e : n < i ? n + t - e : n + } + } + , + n.prototype.GetCriticalVelocity = function(t) { + return this.m_particleDiameter * t.inv_dt + } + , + n.prototype.GetCriticalVelocitySquared = function(t) { + var e = this.GetCriticalVelocity(t); + return e * e + } + , + n.prototype.GetCriticalPressure = function(t) { + return this.m_def.density * this.GetCriticalVelocitySquared(t) + } + , + n.prototype.GetParticleStride = function() { + return .75 * this.m_particleDiameter + } + , + n.prototype.GetParticleMass = function() { + var t = this.GetParticleStride(); + return this.m_def.density * t * t + } + , + n.prototype.GetParticleInvMass = function() { + var t = this.m_inverseDiameter * (1 / .75); + return this.m_inverseDensity * t * t + } + , + n.prototype.GetFixtureContactFilter = function() { + return this.m_allParticleFlags & t.b2ParticleFlag.b2_fixtureContactFilterParticle ? this.m_world.m_contactManager.m_contactFilter : null + } + , + n.prototype.GetParticleContactFilter = function() { + return this.m_allParticleFlags & t.b2ParticleFlag.b2_particleContactFilterParticle ? this.m_world.m_contactManager.m_contactFilter : null + } + , + n.prototype.GetFixtureContactListener = function() { + return this.m_allParticleFlags & t.b2ParticleFlag.b2_fixtureContactListenerParticle ? this.m_world.m_contactManager.m_contactListener : null + } + , + n.prototype.GetParticleContactListener = function() { + return this.m_allParticleFlags & t.b2ParticleFlag.b2_particleContactListenerParticle ? this.m_world.m_contactManager.m_contactListener : null + } + , + n.prototype.SetUserOverridableBuffer = function(t, e, i) { + t.data = e, + t.userSuppliedCapacity = i + } + , + n.prototype.SetGroupFlags = function(e, i) { + var n = e.m_groupFlags; + (n ^ i) & t.b2ParticleGroupFlag.b2_solidParticleGroup && (i |= t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth), + n & ~i && (this.m_needsUpdateAllGroupFlags = !0), + ~this.m_allGroupFlags & i && (i & t.b2ParticleGroupFlag.b2_solidParticleGroup && (this.m_depthBuffer = this.RequestBuffer(this.m_depthBuffer)), + this.m_allGroupFlags |= i), + e.m_groupFlags = i + } + , + n.BodyContactCompare = function(t, e) { + return t.index === e.index ? t.weight > e.weight : t.index < e.index + } + , + n.prototype.RemoveSpuriousBodyContacts = function() { + In(this.m_bodyContactBuffer.data, 0, this.m_bodyContactBuffer.count, n.BodyContactCompare); + var t = n.RemoveSpuriousBodyContacts_s_n + , e = n.RemoveSpuriousBodyContacts_s_pos + , i = n.RemoveSpuriousBodyContacts_s_normal + , r = this + , s = -1 + , a = 0; + this.m_bodyContactBuffer.count = Rn(this.m_bodyContactBuffer.data, (function(n) { + if (n.index !== s && (a = 0, + s = n.index), + a++ > 3) + return !0; + var o = t.Copy(n.normal); + if (o.SelfMul(r.m_particleDiameter * (1 - n.weight)), + !r.m_positionBuffer.data) + throw new Error; + var h = I.AddVV(r.m_positionBuffer.data[n.index], o, e); + if (!n.fixture.TestPoint(h)) { + for (var c = n.fixture.GetShape().GetChildCount(), u = 0; u < c; u++) { + var _ = i; + if (n.fixture.ComputeDistance(h, _, u) < l) + return !1 + } + return !0 + } + return !1 + } + ), this.m_bodyContactBuffer.count) + } + , + n.prototype.DetectStuckParticle = function(t) { + if (!(this.m_stuckThreshold <= 0)) { + if (!this.m_bodyContactCountBuffer.data) + throw new Error; + if (!this.m_consecutiveContactStepsBuffer.data) + throw new Error; + if (!this.m_lastBodyContactStepBuffer.data) + throw new Error; + ++this.m_bodyContactCountBuffer.data[t], + 2 === this.m_bodyContactCountBuffer.data[t] && (++this.m_consecutiveContactStepsBuffer.data[t], + this.m_consecutiveContactStepsBuffer.data[t] > this.m_stuckThreshold && (this.m_stuckParticleBuffer.data[this.m_stuckParticleBuffer.Append()] = t)), + this.m_lastBodyContactStepBuffer.data[t] = this.m_timestamp + } + } + , + n.prototype.ValidateParticleIndex = function(t) { + return t >= 0 && t < this.GetParticleCount() && t !== u + } + , + n.prototype.GetQuantizedTimeElapsed = function() { + return Math.floor(this.m_timeElapsed / 4294967296) + } + , + n.prototype.LifetimeToExpirationTime = function(t) { + return this.m_timeElapsed + Math.floor(t / this.m_def.lifetimeGranularity * 4294967296) + } + , + n.prototype.ForceCanBeApplied = function(e) { + return !(e & t.b2ParticleFlag.b2_wallParticle) + } + , + n.prototype.PrepareForceBuffer = function() { + if (!this.m_hasForce) { + for (var t = 0; t < this.m_count; t++) + this.m_forceBuffer[t].SetZero(); + this.m_hasForce = !0 + } + } + , + n.prototype.IsRigidGroup = function(e) { + return null !== e && 0 != (e.m_groupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup) + } + , + n.prototype.GetLinearVelocity = function(t, e, i, n) { + if (t && this.IsRigidGroup(t)) + return t.GetLinearVelocityFromWorldPoint(i, n); + if (!this.m_velocityBuffer.data) + throw new Error; + return n.Copy(this.m_velocityBuffer.data[e]) + } + , + n.prototype.InitDampingParameter = function(t, e, i, n, r, s, a, o) { + t[0] = n > 0 ? 1 / n : 0, + e[0] = r > 0 ? 1 / r : 0, + i[0] = I.CrossVV(I.SubVV(a, s, I.s_t0), o) + } + , + n.prototype.InitDampingParameterWithRigidGroupOrParticle = function(e, i, n, r, s, a, o, l) { + if (s && r) + this.InitDampingParameter(e, i, n, s.GetMass(), s.GetInertia(), s.GetCenter(), o, l); + else { + if (!this.m_flagsBuffer.data) + throw new Error; + var h = this.m_flagsBuffer.data[a]; + this.InitDampingParameter(e, i, n, h & t.b2ParticleFlag.b2_wallParticle ? 0 : this.GetParticleMass(), 0, o, o, l) + } + } + , + n.prototype.ComputeDampingImpulse = function(t, e, i, n, r, s, a) { + var o = t + e * i * i + n + r * s * s; + return o > 0 ? a / o : 0 + } + , + n.prototype.ApplyDamping = function(t, e, i, n, r, s, a, o) { + if (r && n) + r.m_linearVelocity.SelfMulAdd(a * t, o), + r.m_angularVelocity += a * i * e; + else { + if (!this.m_velocityBuffer.data) + throw new Error; + this.m_velocityBuffer.data[s].SelfMulAdd(a * t, o) + } + } + , + n.xTruncBits = 12, + n.yTruncBits = 12, + n.tagBits = 32, + n.yOffset = 1 << n.yTruncBits - 1, + n.yShift = n.tagBits - n.yTruncBits, + n.xShift = n.tagBits - n.yTruncBits - n.xTruncBits, + n.xScale = 1 << n.xShift, + n.xOffset = n.xScale * (1 << n.xTruncBits - 1), + n.yMask = (1 << n.yTruncBits) - 1 << n.yShift, + n.xMask = ~n.yMask, + n.DestroyParticlesInShape_s_aabb = new Tt, + n.CreateParticleGroup_s_transform = new V, + n.ComputeCollisionEnergy_s_v = new I, + n.QueryShapeAABB_s_aabb = new Tt, + n.QueryPointAABB_s_aabb = new Tt, + n.RayCast_s_aabb = new Tt, + n.RayCast_s_p = new I, + n.RayCast_s_v = new I, + n.RayCast_s_n = new I, + n.RayCast_s_point = new I, + n.k_pairFlags = t.b2ParticleFlag.b2_springParticle, + n.k_triadFlags = t.b2ParticleFlag.b2_elasticParticle, + n.k_noPressureFlags = t.b2ParticleFlag.b2_powderParticle | t.b2ParticleFlag.b2_tensileParticle, + n.k_extraDampingFlags = t.b2ParticleFlag.b2_staticPressureParticle, + n.k_barrierWallFlags = t.b2ParticleFlag.b2_barrierParticle | t.b2ParticleFlag.b2_wallParticle, + n.CreateParticlesStrokeShapeForGroup_s_edge = new ri, + n.CreateParticlesStrokeShapeForGroup_s_d = new I, + n.CreateParticlesStrokeShapeForGroup_s_p = new I, + n.CreateParticlesFillShapeForGroup_s_aabb = new Tt, + n.CreateParticlesFillShapeForGroup_s_p = new I, + n.UpdatePairsAndTriads_s_dab = new I, + n.UpdatePairsAndTriads_s_dbc = new I, + n.UpdatePairsAndTriads_s_dca = new I, + n.AddContact_s_d = new I, + n.UpdateBodyContacts_s_aabb = new Tt, + n.Solve_s_subStep = new cn, + n.SolveCollision_s_aabb = new Tt, + n.SolveGravity_s_gravity = new I, + n.SolveBarrier_s_aabb = new Tt, + n.SolveBarrier_s_va = new I, + n.SolveBarrier_s_vb = new I, + n.SolveBarrier_s_pba = new I, + n.SolveBarrier_s_vba = new I, + n.SolveBarrier_s_vc = new I, + n.SolveBarrier_s_pca = new I, + n.SolveBarrier_s_vca = new I, + n.SolveBarrier_s_qba = new I, + n.SolveBarrier_s_qca = new I, + n.SolveBarrier_s_dv = new I, + n.SolveBarrier_s_f = new I, + n.SolvePressure_s_f = new I, + n.SolveDamping_s_v = new I, + n.SolveDamping_s_f = new I, + n.SolveRigidDamping_s_t0 = new I, + n.SolveRigidDamping_s_t1 = new I, + n.SolveRigidDamping_s_p = new I, + n.SolveRigidDamping_s_v = new I, + n.SolveExtraDamping_s_v = new I, + n.SolveExtraDamping_s_f = new I, + n.SolveRigid_s_position = new I, + n.SolveRigid_s_rotation = new F, + n.SolveRigid_s_transform = new V, + n.SolveRigid_s_velocityTransform = new V, + n.SolveElastic_s_pa = new I, + n.SolveElastic_s_pb = new I, + n.SolveElastic_s_pc = new I, + n.SolveElastic_s_r = new F, + n.SolveElastic_s_t0 = new I, + n.SolveSpring_s_pa = new I, + n.SolveSpring_s_pb = new I, + n.SolveSpring_s_d = new I, + n.SolveSpring_s_f = new I, + n.SolveTensile_s_weightedNormal = new I, + n.SolveTensile_s_s = new I, + n.SolveTensile_s_f = new I, + n.SolveViscous_s_v = new I, + n.SolveViscous_s_f = new I, + n.SolveRepulsive_s_f = new I, + n.SolvePowder_s_f = new I, + n.SolveSolid_s_f = new I, + n.RemoveSpuriousBodyContacts_s_n = new I, + n.RemoveSpuriousBodyContacts_s_pos = new I, + n.RemoveSpuriousBodyContacts_s_normal = new I, + n + } + )(), + (function(e) { + e.UserOverridableBuffer = function() { + this.data = null, + this.userSuppliedCapacity = 0 + } + ; + var n = (function() { + function t() { + this.index = u, + this.tag = 0 + } + return t.CompareProxyProxy = function(t, e) { + return t.tag < e.tag + } + , + t.CompareTagProxy = function(t, e) { + return t < e.tag + } + , + t.CompareProxyTag = function(t, e) { + return t.tag < e + } + , + t + } + )(); + e.Proxy = n; + var r = (function() { + function t(t, i, n, r, s) { + this.m_system = t, + this.m_xLower = (i & e.xMask) >>> 0, + this.m_xUpper = (n & e.xMask) >>> 0, + this.m_yLower = (i & e.yMask) >>> 0, + this.m_yUpper = (n & e.yMask) >>> 0, + this.m_first = r, + this.m_last = s + } + return t.prototype.GetNext = function() { + for (; this.m_first < this.m_last; ) { + var t = (this.m_system.m_proxyBuffer.data[this.m_first].tag & e.xMask) >>> 0; + if (t >= this.m_xLower && t <= this.m_xUpper) + return this.m_system.m_proxyBuffer.data[this.m_first++].index; + this.m_first++ + } + return u + } + , + t + } + )(); + e.InsideBoundsEnumerator = r; + e.ParticleListNode = function() { + this.next = null, + this.count = 0, + this.index = 0 + } + ; + var s = (function() { + function t() {} + return t.prototype.Allocate = function(t, e) { + return e + } + , + t.prototype.Clear = function() {} + , + t.prototype.GetCount = function() { + return 0 + } + , + t.prototype.Invalidate = function() {} + , + t.prototype.GetValidBuffer = function() { + return [] + } + , + t.prototype.GetBuffer = function() { + return [] + } + , + t.prototype.SetCount = function() {} + , + t + } + )(); + e.FixedSetAllocator = s; + e.FixtureParticle = function(t, e) { + this.second = u, + this.first = t, + this.second = e + } + ; + var a = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return ti(e, t), + e.prototype.Initialize = function() {} + , + e.prototype.Find = function() { + return u + } + , + e + } + )(e.FixedSetAllocator); + e.FixtureParticleSet = a; + e.ParticlePair = function(t, e) { + this.first = u, + this.second = u, + this.first = t, + this.second = e + } + ; + var o = (function(t) { + function e() { + return null !== t && t.apply(this, arguments) || this + } + return ti(e, t), + e.prototype.Initialize = function() {} + , + e.prototype.Find = function() { + return u + } + , + e + } + )(e.FixedSetAllocator); + e.b2ParticlePairSet = o; + var h = (function() { + function t() {} + return t.prototype.IsNecessary = function() { + return !0 + } + , + t.prototype.ShouldCreatePair = function() { + return !0 + } + , + t.prototype.ShouldCreateTriad = function() { + return !0 + } + , + t + } + )(); + e.ConnectionFilter = h; + var c = (function(t) { + function e(e, i, n, r) { + var s = t.call(this) || this; + return s.m_callDestructionListener = !1, + s.m_destroyed = 0, + s.m_system = e, + s.m_shape = i, + s.m_xf = n, + s.m_callDestructionListener = r, + s.m_destroyed = 0, + s + } + return ti(e, t), + e.prototype.ReportFixture = function() { + return !1 + } + , + e.prototype.ReportParticle = function(t, e) { + if (t !== this.m_system) + return !1; + if (!this.m_system.m_positionBuffer.data) + throw new Error; + return this.m_shape.TestPoint(this.m_xf, this.m_system.m_positionBuffer.data[e]) && (this.m_system.DestroyParticle(e, this.m_callDestructionListener), + this.m_destroyed++), + !0 + } + , + e.prototype.Destroyed = function() { + return this.m_destroyed + } + , + e + } + )(an); + e.DestroyParticlesInShapeCallback = c; + var _ = (function(t) { + function e(e) { + var i = t.call(this) || this; + return i.m_threshold = 0, + i.m_threshold = e, + i + } + return ti(e, t), + e.prototype.ShouldCreatePair = function(t, e) { + return t < this.m_threshold && this.m_threshold <= e || e < this.m_threshold && this.m_threshold <= t + } + , + e.prototype.ShouldCreateTriad = function(t, e, i) { + return (t < this.m_threshold || e < this.m_threshold || i < this.m_threshold) && (this.m_threshold <= t || this.m_threshold <= e || this.m_threshold <= i) + } + , + e + } + )(e.ConnectionFilter); + e.JoinParticleGroupsFilter = _; + var f = (function(e) { + function n(i, n) { + void 0 === n && (n = i.length); + var r = e.call(this, t.b2ShapeType.e_unknown, 0) || this; + return r.m_shapeCount = 0, + r.m_shapes = i, + r.m_shapeCount = n, + r + } + return ti(n, e), + n.prototype.Clone = function() { + throw new Error + } + , + n.prototype.GetChildCount = function() { + return 1 + } + , + n.prototype.TestPoint = function(t, e) { + for (var i = 0; i < this.m_shapeCount; i++) + if (this.m_shapes[i].TestPoint(t, e)) + return !0; + return !1 + } + , + n.prototype.ComputeDistance = function() { + return 0 + } + , + n.prototype.RayCast = function() { + return !1 + } + , + n.prototype.ComputeAABB = function(t, e) { + var n = new Tt; + t.lowerBound.x = +i, + t.lowerBound.y = +i, + t.upperBound.x = -i, + t.upperBound.y = -i; + for (var r = 0; r < this.m_shapeCount; r++) + for (var s = this.m_shapes[r].GetChildCount(), a = 0; a < s; a++) { + var o = n; + this.m_shapes[r].ComputeAABB(o, e, a), + t.Combine1(o) + } + } + , + n.prototype.ComputeMass = function() {} + , + n.prototype.SetupDistanceProxy = function() {} + , + n.prototype.ComputeSubmergedArea = function() { + return 0 + } + , + n.prototype.Dump = function() {} + , + n + } + )(Qe); + e.CompositeShape = f; + var d = (function(e) { + function i(t) { + var i = e.call(this) || this; + return i.m_flagsBuffer = t, + i + } + return ti(i, e), + i.prototype.IsNecessary = function(e) { + if (!this.m_flagsBuffer.data) + throw new Error; + return 0 != (this.m_flagsBuffer.data[e] & t.b2ParticleFlag.b2_reactiveParticle) + } + , + i + } + )(e.ConnectionFilter); + e.ReactiveFilter = d; + var p = (function(i) { + function n(t, e) { + var n = i.call(this, t) || this; + return n.m_contactFilter = e, + n + } + return ti(n, i), + n.prototype.ShouldCollideFixtureParticle = function(e, i, n) { + return !(this.m_contactFilter && this.m_system.GetFlagsBuffer()[n] & t.b2ParticleFlag.b2_fixtureContactFilterParticle) || this.m_contactFilter.ShouldCollideFixtureParticle(e, this.m_system, n) + } + , + n.prototype.ReportFixtureAndParticle = function(i, n, r) { + var s = e.UpdateBodyContactsCallback.ReportFixtureAndParticle_s_n + , a = e.UpdateBodyContactsCallback.ReportFixtureAndParticle_s_rp; + if (!this.m_system.m_flagsBuffer.data) + throw new Error; + if (!this.m_system.m_positionBuffer.data) + throw new Error; + var o = this.m_system.m_positionBuffer.data[r] + , l = s + , h = i.ComputeDistance(o, l, n); + if (h < this.m_system.m_particleDiameter && this.ShouldCollideFixtureParticle(i, this.m_system, r)) { + var c = i.GetBody() + , u = c.GetWorldCenter() + , _ = c.GetMass() + , f = c.GetInertia() - _ * c.GetLocalCenter().LengthSquared() + , d = _ > 0 ? 1 / _ : 0 + , p = f > 0 ? 1 / f : 0 + , m = this.m_system.m_flagsBuffer.data[r] & t.b2ParticleFlag.b2_wallParticle ? 0 : this.m_system.GetParticleInvMass() + , y = I.SubVV(o, u, a) + , v = I.CrossVV(y, l) + , g = m + d + p * v * v + , A = this.m_system.m_bodyContactBuffer.data[this.m_system.m_bodyContactBuffer.Append()]; + A.index = r, + A.body = c, + A.fixture = i, + A.weight = 1 - h * this.m_system.m_inverseDiameter, + A.normal.Copy(l.SelfNeg()), + A.mass = g > 0 ? 1 / g : 0, + this.m_system.DetectStuckParticle(r) + } + } + , + n.ReportFixtureAndParticle_s_n = new I, + n.ReportFixtureAndParticle_s_rp = new I, + n + } + )(kn); + e.UpdateBodyContactsCallback = p; + var m = (function(i) { + function n(t, e) { + var n = i.call(this, t) || this; + return n.m_step = e, + n + } + return ti(n, i), + n.prototype.ReportFixtureAndParticle = function(i, n, r) { + var s = e.SolveCollisionCallback.ReportFixtureAndParticle_s_p1 + , a = e.SolveCollisionCallback.ReportFixtureAndParticle_s_output + , o = e.SolveCollisionCallback.ReportFixtureAndParticle_s_input + , h = e.SolveCollisionCallback.ReportFixtureAndParticle_s_p + , c = e.SolveCollisionCallback.ReportFixtureAndParticle_s_v + , u = e.SolveCollisionCallback.ReportFixtureAndParticle_s_f + , _ = i.GetBody(); + if (!this.m_system.m_positionBuffer.data) + throw new Error; + if (!this.m_system.m_velocityBuffer.data) + throw new Error; + var f = this.m_system.m_positionBuffer.data[r] + , d = this.m_system.m_velocityBuffer.data[r] + , p = a + , m = o; + if (0 === this.m_system.m_iterationIndex) { + var y = V.MulTXV(_.m_xf0, f, s); + i.GetShape().GetType() === t.b2ShapeType.e_circleShape && (y.SelfSub(_.GetLocalCenter()), + F.MulRV(_.m_xf0.q, y, y), + F.MulTRV(_.m_xf.q, y, y), + y.SelfAdd(_.GetLocalCenter())), + V.MulXV(_.m_xf, y, m.p1) + } else + m.p1.Copy(f); + if (I.AddVMulSV(f, this.m_step.dt, d, m.p2), + m.maxFraction = 1, + i.RayCast(p, m, n)) { + var v = p.normal + , g = h; + g.x = (1 - p.fraction) * m.p1.x + p.fraction * m.p2.x + l * v.x, + g.y = (1 - p.fraction) * m.p1.y + p.fraction * m.p2.y + l * v.y; + var A = c; + A.x = this.m_step.inv_dt * (g.x - f.x), + A.y = this.m_step.inv_dt * (g.y - f.y), + this.m_system.m_velocityBuffer.data[r].Copy(A); + var x = u; + x.x = this.m_step.inv_dt * this.m_system.GetParticleMass() * (d.x - A.x), + x.y = this.m_step.inv_dt * this.m_system.GetParticleMass() * (d.y - A.y), + this.m_system.ParticleApplyForce(r, x) + } + } + , + n.prototype.ReportParticle = function() { + return !1 + } + , + n.ReportFixtureAndParticle_s_p1 = new I, + n.ReportFixtureAndParticle_s_output = new Ct, + n.ReportFixtureAndParticle_s_input = new bt, + n.ReportFixtureAndParticle_s_p = new I, + n.ReportFixtureAndParticle_s_v = new I, + n.ReportFixtureAndParticle_s_f = new I, + n + } + )(kn); + e.SolveCollisionCallback = m + } + )(t.b2ParticleSystem || (t.b2ParticleSystem = {})); + var jn = (function() { + function e(t) { + this.m_newFixture = !1, + this.m_locked = !1, + this.m_clearForces = !0, + this.m_contactManager = new ln, + this.m_bodyList = null, + this.m_jointList = null, + this.m_particleSystemList = null, + this.m_bodyCount = 0, + this.m_jointCount = 0, + this.m_gravity = new I, + this.m_allowSleep = !0, + this.m_destructionListener = null, + this.m_debugDraw = null, + this.m_inv_dt0 = 0, + this.m_warmStarting = !0, + this.m_continuousPhysics = !0, + this.m_subStepping = !1, + this.m_stepComplete = !0, + this.m_profile = new hn, + this.m_island = new An, + this.s_stack = [], + this.m_controllerList = null, + this.m_controllerCount = 0, + this.m_gravity.Copy(t) + } + return e.prototype.SetDestructionListener = function(t) { + this.m_destructionListener = t + } + , + e.prototype.SetContactFilter = function(t) { + this.m_contactManager.m_contactFilter = t + } + , + e.prototype.SetContactListener = function(t) { + this.m_contactManager.m_contactListener = t + } + , + e.prototype.SetDebugDraw = function(t) { + this.m_debugDraw = t + } + , + e.prototype.CreateBody = function(t) { + if (void 0 === t && (t = {}), + this.IsLocked()) + throw new Error; + var e = new _i(t,this); + return e.m_prev = null, + e.m_next = this.m_bodyList, + this.m_bodyList && (this.m_bodyList.m_prev = e), + this.m_bodyList = e, + ++this.m_bodyCount, + e + } + , + e.prototype.DestroyBody = function(t) { + if (this.IsLocked()) + throw new Error; + for (var e = t.m_jointList; e; ) { + var i = e; + e = e.next, + this.m_destructionListener && this.m_destructionListener.SayGoodbyeJoint(i.joint), + this.DestroyJoint(i.joint), + t.m_jointList = e + } + t.m_jointList = null; + for (var n = t.m_controllerList; n; ) { + var r = n; + n = n.nextController, + r.controller.RemoveBody(t) + } + for (var s = t.m_contactList; s; ) { + var a = s; + s = s.next, + this.m_contactManager.Destroy(a.contact) + } + t.m_contactList = null; + for (var o = t.m_fixtureList; o; ) { + var l = o; + o = o.m_next, + this.m_destructionListener && this.m_destructionListener.SayGoodbyeFixture(l), + l.DestroyProxies(), + l.Destroy(), + t.m_fixtureList = o, + t.m_fixtureCount -= 1 + } + t.m_fixtureList = null, + t.m_fixtureCount = 0, + t.m_prev && (t.m_prev.m_next = t.m_next), + t.m_next && (t.m_next.m_prev = t.m_prev), + t === this.m_bodyList && (this.m_bodyList = t.m_next), + --this.m_bodyCount + } + , + e._Joint_Create = function(e) { + switch (e.type) { + case t.b2JointType.e_distanceJoint: + return new vi(e); + case t.b2JointType.e_mouseJoint: + return new Mi(e); + case t.b2JointType.e_prismaticJoint: + return new Bi(e); + case t.b2JointType.e_revoluteJoint: + return new Oi(e); + case t.b2JointType.e_pulleyJoint: + return new Pi(e); + case t.b2JointType.e_gearJoint: + return new Ti(e); + case t.b2JointType.e_wheelJoint: + return new Gi(e); + case t.b2JointType.e_weldJoint: + return new Ni(e); + case t.b2JointType.e_frictionJoint: + return new bi(e); + case t.b2JointType.e_ropeJoint: + return new Fi(e); + case t.b2JointType.e_motorJoint: + return new wi(e); + case t.b2JointType.e_areaJoint: + return new Ai(e) + } + throw new Error + } + , + e._Joint_Destroy = function() {} + , + e.prototype.CreateJoint = function(t) { + if (this.IsLocked()) + throw new Error; + var i = e._Joint_Create(t, null); + i.m_prev = null, + i.m_next = this.m_jointList, + this.m_jointList && (this.m_jointList.m_prev = i), + this.m_jointList = i, + ++this.m_jointCount, + i.m_edgeA.prev = null, + i.m_edgeA.next = i.m_bodyA.m_jointList, + i.m_bodyA.m_jointList && (i.m_bodyA.m_jointList.prev = i.m_edgeA), + i.m_bodyA.m_jointList = i.m_edgeA, + i.m_edgeB.prev = null, + i.m_edgeB.next = i.m_bodyB.m_jointList, + i.m_bodyB.m_jointList && (i.m_bodyB.m_jointList.prev = i.m_edgeB), + i.m_bodyB.m_jointList = i.m_edgeB; + var n = t.bodyA + , r = t.bodyB; + if (!t.collideConnected) + for (var s = r.GetContactList(); s; ) + s.other === n && s.contact.FlagForFiltering(), + s = s.next; + return i + } + , + e.prototype.DestroyJoint = function(t) { + if (this.IsLocked()) + throw new Error; + var i = t.m_collideConnected; + t.m_prev && (t.m_prev.m_next = t.m_next), + t.m_next && (t.m_next.m_prev = t.m_prev), + t === this.m_jointList && (this.m_jointList = t.m_next); + var n = t.m_bodyA + , r = t.m_bodyB; + if (n.SetAwake(!0), + r.SetAwake(!0), + t.m_edgeA.prev && (t.m_edgeA.prev.next = t.m_edgeA.next), + t.m_edgeA.next && (t.m_edgeA.next.prev = t.m_edgeA.prev), + t.m_edgeA === n.m_jointList && (n.m_jointList = t.m_edgeA.next), + t.m_edgeA.prev = null, + t.m_edgeA.next = null, + t.m_edgeB.prev && (t.m_edgeB.prev.next = t.m_edgeB.next), + t.m_edgeB.next && (t.m_edgeB.next.prev = t.m_edgeB.prev), + t.m_edgeB === r.m_jointList && (r.m_jointList = t.m_edgeB.next), + t.m_edgeB.prev = null, + t.m_edgeB.next = null, + e._Joint_Destroy(t, null), + --this.m_jointCount, + !i) + for (var s = r.GetContactList(); s; ) + s.other === n && s.contact.FlagForFiltering(), + s = s.next + } + , + e.prototype.CreateParticleSystem = function(e) { + if (this.IsLocked()) + throw new Error; + var i = new t.b2ParticleSystem(e,this); + return i.m_prev = null, + i.m_next = this.m_particleSystemList, + this.m_particleSystemList && (this.m_particleSystemList.m_prev = i), + this.m_particleSystemList = i, + i + } + , + e.prototype.DestroyParticleSystem = function(t) { + if (this.IsLocked()) + throw new Error; + t.m_prev && (t.m_prev.m_next = t.m_next), + t.m_next && (t.m_next.m_prev = t.m_prev), + t === this.m_particleSystemList && (this.m_particleSystemList = t.m_next) + } + , + e.prototype.CalculateReasonableParticleIterations = function(t) { + return null === this.m_particleSystemList ? 1 : bn(this.m_gravity.Length(), (function(t) { + for (var e = i, n = t.GetParticleSystemList(); null !== n; n = n.m_next) + e = y(e, n.GetRadius()); + return e + } + )(this), t) + } + , + e.prototype.Step = function(t, i, n, r) { + void 0 === r && (r = this.CalculateReasonableParticleIterations(t)); + var s = e.Step_s_stepTimer.Reset(); + this.m_newFixture && (this.m_contactManager.FindNewContacts(), + this.m_newFixture = !1), + this.m_locked = !0; + var a = e.Step_s_step; + a.dt = t, + a.velocityIterations = i, + a.positionIterations = n, + a.particleIterations = r, + a.inv_dt = t > 0 ? 1 / t : 0, + a.dtRatio = this.m_inv_dt0 * t, + a.warmStarting = this.m_warmStarting; + var o = e.Step_s_timer.Reset(); + if (this.m_contactManager.Collide(), + this.m_profile.collide = o.GetMilliseconds(), + this.m_stepComplete && a.dt > 0) { + for (var l = e.Step_s_timer.Reset(), h = this.m_particleSystemList; h; h = h.m_next) + h.Solve(a); + this.Solve(a), + this.m_profile.solve = l.GetMilliseconds() + } + if (this.m_continuousPhysics && a.dt > 0) { + var c = e.Step_s_timer.Reset(); + this.SolveTOI(a), + this.m_profile.solveTOI = c.GetMilliseconds() + } + a.dt > 0 && (this.m_inv_dt0 = a.inv_dt), + this.m_clearForces && this.ClearForces(), + this.m_locked = !1, + this.m_profile.step = s.GetMilliseconds() + } + , + e.prototype.ClearForces = function() { + for (var t = this.m_bodyList; t; t = t.m_next) + t.m_force.SetZero(), + t.m_torque = 0 + } + , + e.prototype.DrawParticleSystem = function(t) { + if (null !== this.m_debugDraw) { + var e = t.GetParticleCount(); + if (e) { + var i = t.GetRadius() + , n = t.GetPositionBuffer(); + if (t.m_colorBuffer.data) { + var r = t.GetColorBuffer(); + this.m_debugDraw.DrawParticles(n, i, r, e) + } else + this.m_debugDraw.DrawParticles(n, i, null, e) + } + } + } + , + e.prototype.DrawDebugData = function() { + if (null !== this.m_debugDraw) { + var i = this.m_debugDraw.GetFlags() + , n = e.DrawDebugData_s_color.SetRGB(0, 0, 0); + if (i & t.b2DrawFlags.e_shapeBit) + for (var r = this.m_bodyList; r; r = r.m_next) { + var s = r.m_xf; + this.m_debugDraw.PushTransform(s); + for (var a = r.GetFixtureList(); a; a = a.m_next) + r.IsActive() ? r.GetType() === t.b2BodyType.b2_staticBody ? (n.SetRGB(.5, .9, .5), + this.DrawShape(a, n)) : r.GetType() === t.b2BodyType.b2_kinematicBody ? (n.SetRGB(.5, .5, .9), + this.DrawShape(a, n)) : r.IsAwake() ? (n.SetRGB(.9, .7, .7), + this.DrawShape(a, n)) : (n.SetRGB(.6, .6, .6), + this.DrawShape(a, n)) : (n.SetRGB(.5, .5, .3), + this.DrawShape(a, n)); + this.m_debugDraw.PopTransform(s) + } + if (i & t.b2DrawFlags.e_particleBit) + for (var o = this.m_particleSystemList; o; o = o.m_next) + this.DrawParticleSystem(o); + if (i & t.b2DrawFlags.e_jointBit) + for (var l = this.m_jointList; l; l = l.m_next) + this.DrawJoint(l); + if (i & t.b2DrawFlags.e_aabbBit) { + n.SetRGB(.9, .3, .9); + var h = e.DrawDebugData_s_vs; + for (r = this.m_bodyList; r; r = r.m_next) + if (r.IsActive()) + for (a = r.GetFixtureList(); a; a = a.m_next) + for (var c = 0; c < a.m_proxyCount; ++c) { + var u = a.m_proxies[c].treeNode.aabb; + h[0].Set(u.lowerBound.x, u.lowerBound.y), + h[1].Set(u.upperBound.x, u.lowerBound.y), + h[2].Set(u.upperBound.x, u.upperBound.y), + h[3].Set(u.lowerBound.x, u.upperBound.y), + this.m_debugDraw.DrawPolygon(h, 4, n) + } + } + if (i & t.b2DrawFlags.e_centerOfMassBit) + for (r = this.m_bodyList; r; r = r.m_next) + (s = e.DrawDebugData_s_xf).q.Copy(r.m_xf.q), + s.p.Copy(r.GetWorldCenter()), + this.m_debugDraw.DrawTransform(s); + if (i & t.b2DrawFlags.e_controllerBit) + for (var _ = this.m_controllerList; _; _ = _.m_next) + _.Draw(this.m_debugDraw) + } + } + , + e.prototype.QueryAABB = function(t, e, i) { + if (this.m_contactManager.m_broadPhase.Query(e, (function(e) { + var n = e.userData.fixture; + return t ? t.ReportFixture(n) : !i || i(n) + } + )), + t instanceof an) + for (var n = this.m_particleSystemList; n; n = n.m_next) + t.ShouldQueryParticleSystem(n) && n.QueryAABB(t, e) + } + , + e.prototype.QueryAllAABB = function(t, e) { + return void 0 === e && (e = []), + this.QueryAABB(null, t, (function(t) { + return e.push(t), + !0 + } + )), + e + } + , + e.prototype.QueryPointAABB = function(t, e, i) { + if (this.m_contactManager.m_broadPhase.QueryPoint(e, (function(e) { + var n = e.userData.fixture; + return t ? t.ReportFixture(n) : !i || i(n) + } + )), + t instanceof an) + for (var n = this.m_particleSystemList; n; n = n.m_next) + t.ShouldQueryParticleSystem(n) && n.QueryPointAABB(t, e) + } + , + e.prototype.QueryAllPointAABB = function(t, e) { + return void 0 === e && (e = []), + this.QueryPointAABB(null, t, (function(t) { + return e.push(t), + !0 + } + )), + e + } + , + e.prototype.QueryFixtureShape = function(t, i, n, r, s) { + var a = e.QueryFixtureShape_s_aabb; + if (i.ComputeAABB(a, r, n), + this.m_contactManager.m_broadPhase.Query(a, (function(e) { + var a = e.userData + , o = a.fixture; + if (Bt(i, n, o.GetShape(), a.childIndex, r, o.GetBody().GetTransform())) { + if (t) + return t.ReportFixture(o); + if (s) + return s(o) + } + return !0 + } + )), + t instanceof an) + for (var o = this.m_particleSystemList; o; o = o.m_next) + t.ShouldQueryParticleSystem(o) && o.QueryAABB(t, a) + } + , + e.prototype.QueryAllFixtureShape = function(t, e, i, n) { + return void 0 === n && (n = []), + this.QueryFixtureShape(null, t, e, i, (function(t) { + return n.push(t), + !0 + } + )), + n + } + , + e.prototype.QueryFixturePoint = function(t, e, i) { + if (this.m_contactManager.m_broadPhase.QueryPoint(e, (function(n) { + var r = n.userData.fixture; + if (r.TestPoint(e)) { + if (t) + return t.ReportFixture(r); + if (i) + return i(r) + } + return !0 + } + )), + t) + for (var n = this.m_particleSystemList; n; n = n.m_next) + t.ShouldQueryParticleSystem(n) && n.QueryPointAABB(t, e) + } + , + e.prototype.QueryAllFixturePoint = function(t, e) { + return void 0 === e && (e = []), + this.QueryFixturePoint(null, t, (function(t) { + return e.push(t), + !0 + } + )), + e + } + , + e.prototype.RayCast = function(t, i, n, r) { + var s = e.RayCast_s_input; + if (s.maxFraction = 1, + s.p1.Copy(i), + s.p2.Copy(n), + this.m_contactManager.m_broadPhase.RayCast(s, (function(s, a) { + var o = a.userData + , l = o.fixture + , h = o.childIndex + , c = e.RayCast_s_output; + if (l.RayCast(c, s, h)) { + var u = c.fraction + , _ = e.RayCast_s_point; + if (_.Set((1 - u) * i.x + u * n.x, (1 - u) * i.y + u * n.y), + t) + return t.ReportFixture(l, _, c.normal, u); + if (r) + return r(l, _, c.normal, u) + } + return s.maxFraction + } + )), + t) + for (var a = this.m_particleSystemList; a; a = a.m_next) + t.ShouldQueryParticleSystem(a) && a.RayCast(t, i, n) + } + , + e.prototype.RayCastOne = function(t, e) { + var i = null + , n = 1; + return this.RayCast(null, t, e, (function(t, e, r, s) { + return s < n && (n = s, + i = t), + n + } + )), + i + } + , + e.prototype.RayCastAll = function(t, e, i) { + return void 0 === i && (i = []), + this.RayCast(null, t, e, (function(t) { + return i.push(t), + 1 + } + )), + i + } + , + e.prototype.GetBodyList = function() { + return this.m_bodyList + } + , + e.prototype.GetJointList = function() { + return this.m_jointList + } + , + e.prototype.GetParticleSystemList = function() { + return this.m_particleSystemList + } + , + e.prototype.GetContactList = function() { + return this.m_contactManager.m_contactList + } + , + e.prototype.SetAllowSleeping = function(t) { + if (t !== this.m_allowSleep && (this.m_allowSleep = t, + !this.m_allowSleep)) + for (var e = this.m_bodyList; e; e = e.m_next) + e.SetAwake(!0) + } + , + e.prototype.GetAllowSleeping = function() { + return this.m_allowSleep + } + , + e.prototype.SetWarmStarting = function(t) { + this.m_warmStarting = t + } + , + e.prototype.GetWarmStarting = function() { + return this.m_warmStarting + } + , + e.prototype.SetContinuousPhysics = function(t) { + this.m_continuousPhysics = t + } + , + e.prototype.GetContinuousPhysics = function() { + return this.m_continuousPhysics + } + , + e.prototype.SetSubStepping = function(t) { + this.m_subStepping = t + } + , + e.prototype.GetSubStepping = function() { + return this.m_subStepping + } + , + e.prototype.GetProxyCount = function() { + return this.m_contactManager.m_broadPhase.GetProxyCount() + } + , + e.prototype.GetBodyCount = function() { + return this.m_bodyCount + } + , + e.prototype.GetJointCount = function() { + return this.m_jointCount + } + , + e.prototype.GetContactCount = function() { + return this.m_contactManager.m_contactCount + } + , + e.prototype.GetTreeHeight = function() { + return this.m_contactManager.m_broadPhase.GetTreeHeight() + } + , + e.prototype.GetTreeBalance = function() { + return this.m_contactManager.m_broadPhase.GetTreeBalance() + } + , + e.prototype.GetTreeQuality = function() { + return this.m_contactManager.m_broadPhase.GetTreeQuality() + } + , + e.prototype.SetGravity = function(t, e) { + if (void 0 === e && (e = !0), + !I.IsEqualToV(this.m_gravity, t) && (this.m_gravity.Copy(t), + e)) + for (var i = this.m_bodyList; i; i = i.m_next) + i.SetAwake(!0) + } + , + e.prototype.GetGravity = function() { + return this.m_gravity + } + , + e.prototype.IsLocked = function() { + return this.m_locked + } + , + e.prototype.SetAutoClearForces = function(t) { + this.m_clearForces = t + } + , + e.prototype.GetAutoClearForces = function() { + return this.m_clearForces + } + , + e.prototype.ShiftOrigin = function(t) { + if (this.IsLocked()) + throw new Error; + for (var e = this.m_bodyList; e; e = e.m_next) + e.m_xf.p.SelfSub(t), + e.m_sweep.c0.SelfSub(t), + e.m_sweep.c.SelfSub(t); + for (var i = this.m_jointList; i; i = i.m_next) + i.ShiftOrigin(t); + this.m_contactManager.m_broadPhase.ShiftOrigin(t) + } + , + e.prototype.GetContactManager = function() { + return this.m_contactManager + } + , + e.prototype.GetProfile = function() { + return this.m_profile + } + , + e.prototype.Dump = function(e) { + if (!this.m_locked) { + e("const g: b2Vec2 = new b2Vec2(%.15f, %.15f);\n", this.m_gravity.x, this.m_gravity.y), + e("this.m_world.SetGravity(g);\n"), + e("const bodies: b2Body[] = [];\n"), + e("const joints: b2Joint[] = [];\n"); + for (var i = 0, n = this.m_bodyList; n; n = n.m_next) + n.m_islandIndex = i, + n.Dump(e), + ++i; + i = 0; + for (var r = this.m_jointList; r; r = r.m_next) + r.m_index = i, + ++i; + for (r = this.m_jointList; r; r = r.m_next) + r.m_type !== t.b2JointType.e_gearJoint && (e("{\n"), + r.Dump(e), + e("}\n")); + for (r = this.m_jointList; r; r = r.m_next) + r.m_type === t.b2JointType.e_gearJoint && (e("{\n"), + r.Dump(e), + e("}\n")) + } + } + , + e.prototype.DrawJoint = function(i) { + if (null !== this.m_debugDraw) { + var n = i.GetBodyA() + , r = i.GetBodyB() + , s = n.m_xf + , a = r.m_xf + , o = s.p + , l = a.p + , h = i.GetAnchorA(e.DrawJoint_s_p1) + , c = i.GetAnchorB(e.DrawJoint_s_p2) + , u = e.DrawJoint_s_color.SetRGB(.5, .8, .8); + switch (i.m_type) { + case t.b2JointType.e_distanceJoint: + this.m_debugDraw.DrawSegment(h, c, u); + break; + case t.b2JointType.e_pulleyJoint: + var _ = i + , f = _.GetGroundAnchorA() + , d = _.GetGroundAnchorB(); + this.m_debugDraw.DrawSegment(f, h, u), + this.m_debugDraw.DrawSegment(d, c, u), + this.m_debugDraw.DrawSegment(f, d, u); + break; + case t.b2JointType.e_mouseJoint: + var p = e.DrawJoint_s_c; + p.Set(0, 1, 0), + this.m_debugDraw.DrawPoint(h, 4, p), + this.m_debugDraw.DrawPoint(c, 4, p), + p.Set(.8, .8, .8), + this.m_debugDraw.DrawSegment(h, c, p); + break; + default: + this.m_debugDraw.DrawSegment(o, h, u), + this.m_debugDraw.DrawSegment(h, c, u), + this.m_debugDraw.DrawSegment(l, c, u) + } + } + } + , + e.prototype.DrawShape = function(i, n) { + if (null !== this.m_debugDraw) { + var r = i.GetShape(); + switch (r.m_type) { + case t.b2ShapeType.e_circleShape: + var s = r + , a = s.m_p + , o = s.m_radius + , l = I.UNITX; + this.m_debugDraw.DrawSolidCircle(a, o, l, n); + break; + case t.b2ShapeType.e_edgeShape: + var h = r + , c = h.m_vertex1 + , u = h.m_vertex2; + this.m_debugDraw.DrawSegment(c, u, n); + break; + case t.b2ShapeType.e_chainShape: + var _ = r + , f = _.m_count + , d = _.m_vertices + , p = e.DrawShape_s_ghostColor.SetRGBA(.75 * n.r, .75 * n.g, .75 * n.b, n.a); + if (c = d[0], + this.m_debugDraw.DrawPoint(c, 4, n), + _.m_hasPrevVertex) { + var m = _.m_prevVertex; + this.m_debugDraw.DrawSegment(m, c, p), + this.m_debugDraw.DrawCircle(m, .1, p) + } + for (var y = 1; y < f; ++y) + u = d[y], + this.m_debugDraw.DrawSegment(c, u, n), + this.m_debugDraw.DrawPoint(u, 4, n), + c = u; + if (_.m_hasNextVertex) { + var v = _.m_nextVertex; + this.m_debugDraw.DrawSegment(v, c, p), + this.m_debugDraw.DrawCircle(v, .1, p) + } + break; + case t.b2ShapeType.e_polygonShape: + var g = r + , A = g.m_count; + d = g.m_vertices, + this.m_debugDraw.DrawSolidPolygon(d, A, n) + } + } + } + , + e.prototype.Solve = function(e) { + for (var i = this.m_bodyList; i; i = i.m_next) + i.m_xf0.Copy(i.m_xf); + for (var n = this.m_controllerList; n; n = n.m_next) + n.Step(e); + this.m_profile.solveInit = 0, + this.m_profile.solveVelocity = 0, + this.m_profile.solvePosition = 0; + var r = this.m_island; + for (r.Initialize(this.m_bodyCount, this.m_contactManager.m_contactCount, this.m_jointCount, null, this.m_contactManager.m_contactListener), + i = this.m_bodyList; i; i = i.m_next) + i.m_islandFlag = !1; + for (var s = this.m_contactManager.m_contactList; s; s = s.m_next) + s.m_islandFlag = !1; + for (var a = this.m_jointList; a; a = a.m_next) + a.m_islandFlag = !1; + for (var o = this.s_stack, l = this.m_bodyList; l; l = l.m_next) + if (!l.m_islandFlag && l.IsAwake() && l.IsActive() && l.GetType() !== t.b2BodyType.b2_staticBody) { + r.Clear(); + var h = 0; + for (o[h++] = l, + l.m_islandFlag = !0; h > 0; ) { + if (!(i = o[--h])) + throw new Error; + if (r.AddBody(i), + i.m_awakeFlag = !0, + i.GetType() !== t.b2BodyType.b2_staticBody) { + for (var c = i.m_contactList; c; c = c.next) { + var u = c.contact; + if (!u.m_islandFlag && u.IsEnabled() && u.IsTouching()) { + var _ = u.m_fixtureA.m_isSensor + , f = u.m_fixtureB.m_isSensor; + if (!_ && !f) { + if (r.AddContact(u), + u.m_islandFlag = !0, + !(p = c.other)) + throw new Error; + p.m_islandFlag || (o[h++] = p, + p.m_islandFlag = !0) + } + } + } + for (var d = i.m_jointList; d; d = d.next) { + var p; + d.joint.m_islandFlag || (p = d.other).IsActive() && (r.AddJoint(d.joint), + d.joint.m_islandFlag = !0, + p.m_islandFlag || (o[h++] = p, + p.m_islandFlag = !0)) + } + } + } + var m = new hn; + r.Solve(m, e, this.m_gravity, this.m_allowSleep), + this.m_profile.solveInit += m.solveInit, + this.m_profile.solveVelocity += m.solveVelocity, + this.m_profile.solvePosition += m.solvePosition; + for (var y = 0; y < r.m_bodyCount; ++y) + (i = r.m_bodies[y]).GetType() === t.b2BodyType.b2_staticBody && (i.m_islandFlag = !1) + } + for (y = 0; y < o.length && o[y]; ++y) + o[y] = null; + var v = new U; + for (i = this.m_bodyList; i; i = i.m_next) + i.m_islandFlag && i.GetType() !== t.b2BodyType.b2_staticBody && i.SynchronizeFixtures(); + this.m_contactManager.FindNewContacts(), + this.m_profile.broadphase = v.GetMilliseconds() + } + , + e.prototype.SolveTOI = function(i) { + var r = this.m_island; + if (r.Initialize(64, 32, 0, null, this.m_contactManager.m_contactListener), + this.m_stepComplete) { + for (var s = this.m_bodyList; s; s = s.m_next) + s.m_islandFlag = !1, + s.m_sweep.alpha0 = 0; + for (var a = this.m_contactManager.m_contactList; a; a = a.m_next) + a.m_toiFlag = !1, + a.m_islandFlag = !1, + a.m_toiCount = 0, + a.m_toi = 1 + } + for (; ; ) { + var o = null + , l = 1; + for (a = this.m_contactManager.m_contactList; a; a = a.m_next) + if (a.IsEnabled() && !(a.m_toiCount > 8)) { + var h = 1; + if (a.m_toiFlag) + h = a.m_toi; + else { + var c = a.GetFixtureA() + , u = a.GetFixtureB(); + if (c.IsSensor() || u.IsSensor()) + continue; + var _ = c.GetBody() + , f = u.GetBody() + , d = _.m_type + , p = f.m_type + , m = _.IsAwake() && d !== t.b2BodyType.b2_staticBody + , v = f.IsAwake() && p !== t.b2BodyType.b2_staticBody; + if (!m && !v) + continue; + var g = _.IsBullet() || d !== t.b2BodyType.b2_dynamicBody + , A = f.IsBullet() || p !== t.b2BodyType.b2_dynamicBody; + if (!g && !A) + continue; + var x = _.m_sweep.alpha0; + _.m_sweep.alpha0 < f.m_sweep.alpha0 ? (x = f.m_sweep.alpha0, + _.m_sweep.Advance(x)) : f.m_sweep.alpha0 < _.m_sweep.alpha0 && (x = _.m_sweep.alpha0, + f.m_sweep.Advance(x)); + var b = a.GetChildIndexA() + , C = a.GetChildIndexB() + , T = e.SolveTOI_s_toi_input; + T.proxyA.SetShape(c.GetShape(), b), + T.proxyB.SetShape(u.GetShape(), C), + T.sweepA.Copy(_.m_sweep), + T.sweepB.Copy(f.m_sweep), + T.tMax = 1; + var S = e.SolveTOI_s_toi_output; + re(S, T); + var w = S.t; + h = S.state === t.b2TOIOutputState.e_touching ? y(x + (1 - x) * w, 1) : 1, + a.m_toi = h, + a.m_toiFlag = !0 + } + h < l && (o = a, + l = h) + } + if (null === o || 1 - 10 * n < l) { + this.m_stepComplete = !0; + break + } + var E = o.GetFixtureA() + , M = o.GetFixtureB() + , D = E.GetBody() + , B = M.GetBody() + , I = e.SolveTOI_s_backup1.Copy(D.m_sweep) + , P = e.SolveTOI_s_backup2.Copy(B.m_sweep); + if (D.Advance(l), + B.Advance(l), + o.Update(this.m_contactManager.m_contactListener), + o.m_toiFlag = !1, + ++o.m_toiCount, + o.IsEnabled() && o.IsTouching()) { + D.SetAwake(!0), + B.SetAwake(!0), + r.Clear(), + r.AddBody(D), + r.AddBody(B), + r.AddContact(o), + D.m_islandFlag = !0, + B.m_islandFlag = !0, + o.m_islandFlag = !0; + for (var R = 0; R < 2; ++R) + if ((U = 0 === R ? D : B).m_type === t.b2BodyType.b2_dynamicBody) + for (var O = U.m_contactList; O && r.m_bodyCount !== r.m_bodyCapacity && r.m_contactCount !== r.m_contactCapacity; O = O.next) { + var L = O.contact; + if (!L.m_islandFlag) { + var F = O.other; + if (F.m_type !== t.b2BodyType.b2_dynamicBody || U.IsBullet() || F.IsBullet()) { + var V = L.m_fixtureA.m_isSensor + , N = L.m_fixtureB.m_isSensor; + if (!V && !N) { + var k = e.SolveTOI_s_backup.Copy(F.m_sweep); + F.m_islandFlag || F.Advance(l), + L.Update(this.m_contactManager.m_contactListener), + L.IsEnabled() && L.IsTouching() ? (L.m_islandFlag = !0, + r.AddContact(L), + F.m_islandFlag || (F.m_islandFlag = !0, + F.m_type !== t.b2BodyType.b2_staticBody && F.SetAwake(!0), + r.AddBody(F))) : (F.m_sweep.Copy(k), + F.SynchronizeTransform()) + } + } + } + } + var G = e.SolveTOI_s_subStep; + for (G.dt = (1 - l) * i.dt, + G.inv_dt = 1 / G.dt, + G.dtRatio = 1, + G.positionIterations = 20, + G.velocityIterations = i.velocityIterations, + G.particleIterations = i.particleIterations, + G.warmStarting = !1, + r.SolveTOI(G, D.m_islandIndex, B.m_islandIndex), + R = 0; R < r.m_bodyCount; ++R) { + var U; + if ((U = r.m_bodies[R]).m_islandFlag = !1, + U.m_type === t.b2BodyType.b2_dynamicBody) + for (U.SynchronizeFixtures(), + O = U.m_contactList; O; O = O.next) + O.contact.m_toiFlag = !1, + O.contact.m_islandFlag = !1 + } + if (this.m_contactManager.FindNewContacts(), + this.m_subStepping) { + this.m_stepComplete = !1; + break + } + } else + o.SetEnabled(!1), + D.m_sweep.Copy(I), + B.m_sweep.Copy(P), + D.SynchronizeTransform(), + B.SynchronizeTransform() + } + } + , + e.prototype.AddController = function(t) { + return t.m_next = this.m_controllerList, + t.m_prev = null, + this.m_controllerList && (this.m_controllerList.m_prev = t), + this.m_controllerList = t, + ++this.m_controllerCount, + t + } + , + e.prototype.RemoveController = function(t) { + return t.m_prev && (t.m_prev.m_next = t.m_next), + t.m_next && (t.m_next.m_prev = t.m_prev), + this.m_controllerList === t && (this.m_controllerList = t.m_next), + --this.m_controllerCount, + t.m_prev = null, + t.m_next = null, + t + } + , + e.Step_s_step = new cn, + e.Step_s_stepTimer = new U, + e.Step_s_timer = new U, + e.DrawDebugData_s_color = new k(0,0,0), + e.DrawDebugData_s_vs = I.MakeArray(4), + e.DrawDebugData_s_xf = new V, + e.QueryFixtureShape_s_aabb = new Tt, + e.RayCast_s_input = new bt, + e.RayCast_s_output = new Ct, + e.RayCast_s_point = new I, + e.DrawJoint_s_p1 = new I, + e.DrawJoint_s_p2 = new I, + e.DrawJoint_s_color = new k(.5,.8,.8), + e.DrawJoint_s_c = new k, + e.DrawShape_s_ghostColor = new k, + e.SolveTOI_s_subStep = new cn, + e.SolveTOI_s_backup = new N, + e.SolveTOI_s_backup1 = new N, + e.SolveTOI_s_backup2 = new N, + e.SolveTOI_s_toi_input = new jt, + e.SolveTOI_s_toi_output = new Yt, + e + } + )() + , Xn = function(t, e) { + this.prevBody = null, + this.nextBody = null, + this.prevController = null, + this.nextController = null, + this.controller = t, + this.body = e + } + , Yn = (function() { + function t() { + this.m_bodyList = null, + this.m_bodyCount = 0, + this.m_prev = null, + this.m_next = null + } + return t.prototype.GetNext = function() { + return this.m_next + } + , + t.prototype.GetPrev = function() { + return this.m_prev + } + , + t.prototype.GetBodyList = function() { + return this.m_bodyList + } + , + t.prototype.AddBody = function(t) { + var e = new Xn(this,t); + e.nextBody = this.m_bodyList, + e.prevBody = null, + this.m_bodyList && (this.m_bodyList.prevBody = e), + this.m_bodyList = e, + ++this.m_bodyCount, + e.nextController = t.m_controllerList, + e.prevController = null, + t.m_controllerList && (t.m_controllerList.prevController = e), + t.m_controllerList = e, + ++t.m_controllerCount + } + , + t.prototype.RemoveBody = function(t) { + if (this.m_bodyCount <= 0) + throw new Error; + for (var e = this.m_bodyList; e && e.body !== t; ) + e = e.nextBody; + if (null === e) + throw new Error; + e.prevBody && (e.prevBody.nextBody = e.nextBody), + e.nextBody && (e.nextBody.prevBody = e.prevBody), + this.m_bodyList === e && (this.m_bodyList = e.nextBody), + --this.m_bodyCount, + e.nextController && (e.nextController.prevController = e.prevController), + e.prevController && (e.prevController.nextController = e.nextController), + t.m_controllerList === e && (t.m_controllerList = e.nextController), + --t.m_controllerCount + } + , + t.prototype.Clear = function() { + for (; this.m_bodyList; ) + this.RemoveBody(this.m_bodyList.body); + this.m_bodyCount = 0 + } + , + t + } + )() + , qn = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.normal = new I(0,1), + e.offset = 0, + e.density = 0, + e.velocity = new I(0,0), + e.linearDrag = 0, + e.angularDrag = 0, + e.useDensity = !1, + e.useWorldGravity = !0, + e.gravity = new I(0,0), + e + } + return ti(e, t), + e.prototype.Step = function() { + if (this.m_bodyList) { + this.useWorldGravity && this.gravity.Copy(this.m_bodyList.body.GetWorld().GetGravity()); + for (var t = this.m_bodyList; t; t = t.nextBody) { + var e = t.body; + if (e.IsAwake()) { + for (var i = new I, r = new I, s = 0, a = 0, o = e.GetFixtureList(); o; o = o.m_next) { + var l = new I + , h = o.GetShape().ComputeSubmergedArea(this.normal, this.offset, e.GetTransform(), l); + s += h, + i.x += h * l.x, + i.y += h * l.y; + var c; + a += h * (c = this.useDensity ? o.GetDensity() : 1), + r.x += h * l.x * c, + r.y += h * l.y * c + } + if (i.x /= s, + i.y /= s, + r.x /= a, + r.y /= a, + !(s < n)) { + var u = this.gravity.Clone().SelfNeg(); + u.SelfMul(this.density * s), + e.ApplyForce(u, r); + var _ = e.GetLinearVelocityFromWorldPoint(i, new I); + _.SelfSub(this.velocity), + _.SelfMul(-this.linearDrag * s), + e.ApplyForce(_, i), + e.ApplyTorque(-e.GetInertia() / e.GetMass() * s * e.GetAngularVelocity() * this.angularDrag) + } + } + } + } + } + , + e.prototype.Draw = function(t) { + var e = 100 + , i = new I + , n = new I; + i.x = this.normal.x * this.offset + this.normal.y * e, + i.y = this.normal.y * this.offset - this.normal.x * e, + n.x = this.normal.x * this.offset - this.normal.y * e, + n.y = this.normal.y * this.offset + this.normal.x * e; + var r = new k(0,0,.8); + t.DrawSegment(i, n, r) + } + , + e + } + )(Yn) + , Jn = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.A = new I(0,0), + e + } + return ti(e, t), + e.prototype.Step = function(t) { + for (var i = I.MulSV(t.dt, this.A, e.Step_s_dtA), n = this.m_bodyList; n; n = n.nextBody) { + var r = n.body; + r.IsAwake() && r.SetLinearVelocity(I.AddVV(r.GetLinearVelocity(), i, I.s_t0)) + } + } + , + e.prototype.Draw = function() {} + , + e.Step_s_dtA = new I, + e + } + )(Yn) + , Zn = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.F = new I(0,0), + e + } + return ti(e, t), + e.prototype.Step = function() { + for (var t = this.m_bodyList; t; t = t.nextBody) { + var e = t.body; + e.IsAwake() && e.ApplyForce(this.F, e.GetWorldCenter()) + } + } + , + e.prototype.Draw = function() {} + , + e + } + )(Yn) + , Kn = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.G = 1, + e.invSqr = !0, + e + } + return ti(e, t), + e.prototype.Step = function() { + if (this.invSqr) + for (var t = this.m_bodyList; t; t = t.nextBody) + for (var i = (l = t.body).GetWorldCenter(), r = l.GetMass(), s = this.m_bodyList; s && s !== t; s = s.nextBody) { + var a = (h = s.body).GetWorldCenter() + , o = h.GetMass(); + (_ = (c = a.x - i.x) * c + (u = a.y - i.y) * u) < n || ((f = e.Step_s_f.Set(c, u)).SelfMul(this.G / _ / T(_) * r * o), + l.IsAwake() && l.ApplyForce(f, i), + h.IsAwake() && h.ApplyForce(f.SelfMul(-1), a)) + } + else + for (t = this.m_bodyList; t; t = t.nextBody) { + var l; + for (i = (l = t.body).GetWorldCenter(), + r = l.GetMass(), + s = this.m_bodyList; s && s !== t; s = s.nextBody) { + var h, c, u, _, f; + a = (h = s.body).GetWorldCenter(), + o = h.GetMass(), + (_ = (c = a.x - i.x) * c + (u = a.y - i.y) * u) < n || ((f = e.Step_s_f.Set(c, u)).SelfMul(this.G / _ * r * o), + l.IsAwake() && l.ApplyForce(f, i), + h.IsAwake() && h.ApplyForce(f.SelfMul(-1), a)) + } + } + } + , + e.prototype.Draw = function() {} + , + e.Step_s_f = new I, + e + } + )(Yn) + , Qn = (function(t) { + function e() { + var e = null !== t && t.apply(this, arguments) || this; + return e.T = new O, + e.maxTimestep = 0, + e + } + return ti(e, t), + e.prototype.Step = function(t) { + var i = t.dt; + if (!(i <= n)) { + i > this.maxTimestep && this.maxTimestep > 0 && (i = this.maxTimestep); + for (var r = this.m_bodyList; r; r = r.nextBody) { + var s = r.body; + if (s.IsAwake()) { + var a = s.GetWorldVector(O.MulMV(this.T, s.GetLocalVector(s.GetLinearVelocity(), I.s_t0), I.s_t1), e.Step_s_damping); + s.SetLinearVelocity(I.AddVV(s.GetLinearVelocity(), I.MulSV(i, a, I.s_t0), I.s_t1)) + } + } + } + } + , + e.prototype.Draw = function() {} + , + e.prototype.SetAxisAligned = function(t, e) { + this.T.ex.x = -t, + this.T.ex.y = 0, + this.T.ey.x = 0, + this.T.ey.y = -e, + this.maxTimestep = t > 0 || e > 0 ? 1 / v(t, e) : 0 + } + , + e.Step_s_damping = new I, + e + } + )(Yn) + , $n = (function() { + function t() { + this.m_count = 0, + this.m_ps = [], + this.m_p0s = [], + this.m_vs = [], + this.m_ims = [], + this.m_Ls = [], + this.m_as = [], + this.m_gravity = new I, + this.m_damping = 0, + this.m_k2 = 1, + this.m_k3 = .1 + } + return t.prototype.GetVertexCount = function() { + return this.m_count + } + , + t.prototype.GetVertices = function() { + return this.m_ps + } + , + t.prototype.Initialize = function(t) { + this.m_count = t.count, + this.m_ps = I.MakeArray(this.m_count), + this.m_p0s = I.MakeArray(this.m_count), + this.m_vs = I.MakeArray(this.m_count), + this.m_ims = p(this.m_count); + for (var e = 0; e < this.m_count; ++e) { + this.m_ps[e].Copy(t.vertices[e]), + this.m_p0s[e].Copy(t.vertices[e]), + this.m_vs[e].SetZero(); + var i = t.masses[e]; + this.m_ims[e] = i > 0 ? 1 / i : 0 + } + var n = this.m_count - 1 + , r = this.m_count - 2; + for (this.m_Ls = p(n), + this.m_as = p(r), + e = 0; e < n; ++e) { + var s = this.m_ps[e] + , a = this.m_ps[e + 1]; + this.m_Ls[e] = I.DistanceVV(s, a) + } + for (e = 0; e < r; ++e) { + s = this.m_ps[e], + a = this.m_ps[e + 1]; + var o = this.m_ps[e + 2] + , l = I.SubVV(a, s, I.s_t0) + , h = I.SubVV(o, a, I.s_t1) + , c = I.CrossVV(l, h) + , u = I.DotVV(l, h); + this.m_as[e] = B(c, u) + } + this.m_gravity.Copy(t.gravity), + this.m_damping = t.damping, + this.m_k2 = t.k2, + this.m_k3 = t.k3 + } + , + t.prototype.Step = function(t, e) { + if (0 !== t) { + for (var i = Math.exp(-t * this.m_damping), n = 0; n < this.m_count; ++n) + this.m_p0s[n].Copy(this.m_ps[n]), + this.m_ims[n] > 0 && this.m_vs[n].SelfMulAdd(t, this.m_gravity), + this.m_vs[n].SelfMul(i), + this.m_ps[n].SelfMulAdd(t, this.m_vs[n]); + for (n = 0; n < e; ++n) + this.SolveC2(), + this.SolveC3(), + this.SolveC2(); + var r = 1 / t; + for (n = 0; n < this.m_count; ++n) + I.MulSV(r, I.SubVV(this.m_ps[n], this.m_p0s[n], I.s_t0), this.m_vs[n]) + } + } + , + t.prototype.SolveC2 = function() { + for (var e = this.m_count - 1, i = 0; i < e; ++i) { + var n = this.m_ps[i] + , r = this.m_ps[i + 1] + , s = I.SubVV(r, n, t.s_d) + , a = s.Normalize() + , o = this.m_ims[i] + , l = this.m_ims[i + 1]; + if (o + l !== 0) { + var h = o / (o + l) + , c = l / (o + l); + n.SelfMulSub(this.m_k2 * h * (this.m_Ls[i] - a), s), + r.SelfMulAdd(this.m_k2 * c * (this.m_Ls[i] - a), s) + } + } + } + , + t.prototype.SetAngle = function(t) { + for (var e = this.m_count - 2, i = 0; i < e; ++i) + this.m_as[i] = t + } + , + t.prototype.SolveC3 = function() { + for (var e = this.m_count - 2, i = 0; i < e; ++i) { + var n = this.m_ps[i] + , r = this.m_ps[i + 1] + , a = this.m_ps[i + 2] + , o = this.m_ims[i] + , l = this.m_ims[i + 1] + , h = this.m_ims[i + 2] + , c = I.SubVV(r, n, t.s_d1) + , u = I.SubVV(a, r, t.s_d2) + , _ = c.LengthSquared() + , f = u.LengthSquared(); + if (_ * f != 0) { + var d = I.CrossVV(c, u) + , p = I.DotVV(c, u) + , m = B(d, p) + , y = I.MulSV(-1 / _, c.SelfSkew(), t.s_Jd1) + , v = I.MulSV(1 / f, u.SelfSkew(), t.s_Jd2) + , g = I.NegV(y, t.s_J1) + , A = I.SubVV(y, v, t.s_J2) + , x = v + , b = o * I.DotVV(g, g) + l * I.DotVV(A, A) + h * I.DotVV(x, x); + if (0 !== b) { + b = 1 / b; + for (var C = m - this.m_as[i]; C > s; ) + C = (m -= 2 * s) - this.m_as[i]; + for (; C < -s; ) + C = (m += 2 * s) - this.m_as[i]; + var T = -this.m_k3 * b * C; + n.SelfMulAdd(o * T, g), + r.SelfMulAdd(l * T, A), + a.SelfMulAdd(h * T, x) + } + } + } + } + , + t.prototype.Draw = function(t) { + for (var e = new k(.4,.5,.7), i = 0; i < this.m_count - 1; ++i) + t.DrawSegment(this.m_ps[i], this.m_ps[i + 1], e) + } + , + t.s_d = new I, + t.s_d1 = new I, + t.s_d2 = new I, + t.s_Jd1 = new I, + t.s_Jd2 = new I, + t.s_J1 = new I, + t.s_J2 = new I, + t + } + )(); + t.b2Assert = function(t) { + for (var e = [], i = 1; i < arguments.length; i++) + e[i - 1] = arguments[i]; + if (!t) + throw new (Error.bind.apply(Error, [void 0].concat(e))) + } + , + t.b2Maybe = e, + t.b2_maxFloat = i, + t.b2_epsilon = n, + t.b2_epsilon_sq = r, + t.b2_pi = s, + t.b2_maxManifoldPoints = a, + t.b2_maxPolygonVertices = o, + t.b2_aabbExtension = .1, + t.b2_aabbMultiplier = 2, + t.b2_linearSlop = l, + t.b2_angularSlop = h, + t.b2_polygonRadius = c, + t.b2_maxSubSteps = 8, + t.b2_maxTOIContacts = 32, + t.b2_velocityThreshold = 1, + t.b2_maxLinearCorrection = .2, + t.b2_maxAngularCorrection = .13962634015955555, + t.b2_maxTranslation = 2, + t.b2_maxTranslationSquared = 4, + t.b2_maxRotation = 1.570796326795, + t.b2_maxRotationSquared = 2.4674011002726646, + t.b2_baumgarte = .2, + t.b2_toiBaumgarte = .75, + t.b2_invalidParticleIndex = u, + t.b2_maxParticleIndex = 2147483647, + t.b2_particleStride = .75, + t.b2_minParticleWeight = 1, + t.b2_maxParticlePressure = .25, + t.b2_maxParticleForce = .5, + t.b2_maxTriadDistance = 2, + t.b2_maxTriadDistanceSquared = 4, + t.b2_minParticleSystemBufferCapacity = 256, + t.b2_barrierCollisionTime = 2.5, + t.b2_timeToSleep = .5, + t.b2_linearSleepTolerance = .01, + t.b2_angularSleepTolerance = .03490658503988889, + t.b2Alloc = function() { + return null + } + , + t.b2Free = function() {} + , + t.b2Log = function(t) { + for (var e = [], i = 1; i < arguments.length; i++) + e[i - 1] = arguments[i] + } + , + t.b2Version = _, + t.b2_version = f, + t.b2_branch = "master", + t.b2_commit = "fbf51801d80fc389d43dc46524520e89043b6faf", + t.b2ParseInt = function(t) { + return parseInt(t, 10) + } + , + t.b2ParseUInt = function(t) { + return Math.abs(parseInt(t, 10)) + } + , + t.b2MakeArray = d, + t.b2MakeNullArray = function(t) { + for (var e = [], i = 0; i < t; ++i) + e.push(null); + return e + } + , + t.b2MakeNumberArray = p, + t.b2_pi_over_180 = .017453292519944444, + t.b2_180_over_pi = 57.29577951307855, + t.b2_two_pi = 6.28318530718, + t.b2Abs = m, + t.b2Min = y, + t.b2Max = v, + t.b2Clamp = g, + t.b2Swap = function(t, e) { + var i = t[0]; + t[0] = e[0], + e[0] = i + } + , + t.b2IsValid = A, + t.b2Sq = x, + t.b2InvSqrt = b, + t.b2Sqrt = T, + t.b2Pow = S, + t.b2DegToRad = function(t) { + return .017453292519944444 * t + } + , + t.b2RadToDeg = function(t) { + return 57.29577951307855 * t + } + , + t.b2Cos = w, + t.b2Sin = E, + t.b2Acos = M, + t.b2Asin = D, + t.b2Atan2 = B, + t.b2NextPowerOfTwo = function(t) { + return t |= t >> 1 & 2147483647, + t |= t >> 2 & 1073741823, + t |= t >> 4 & 268435455, + 1 + ((t |= t >> 8 & 16777215) | t >> 16 & 65535) + } + , + t.b2IsPowerOfTwo = function(t) { + return t > 0 && 0 == (t & t - 1) + } + , + t.b2Random = function() { + return 2 * Math.random() - 1 + } + , + t.b2RandomRange = function(t, e) { + return (e - t) * Math.random() + t + } + , + t.b2Vec2 = I, + t.b2Vec2_zero = P, + t.b2Vec3 = R, + t.b2Mat22 = O, + t.b2Mat33 = L, + t.b2Rot = F, + t.b2Transform = V, + t.b2Sweep = N, + t.b2Color = k, + t.b2Draw = G, + t.b2Timer = U, + t.b2Counter = z, + t.b2GrowableStack = H, + t.b2BlockAllocator = function() {} + , + t.b2StackAllocator = function() {} + , + t.b2ContactFeature = pt, + t.b2ContactID = mt, + t.b2ManifoldPoint = yt, + t.b2Manifold = gt, + t.b2WorldManifold = At, + t.b2GetPointStates = function(e, i, n, r) { + var s; + for (s = 0; s < n.pointCount; ++s) { + var o = n.points[s].id.key; + e[s] = t.b2PointState.b2_removeState; + for (var l = 0, h = r.pointCount; l < h; ++l) + if (r.points[l].id.key === o) { + e[s] = t.b2PointState.b2_persistState; + break + } + } + for (; s < a; ++s) + e[s] = t.b2PointState.b2_nullState; + for (s = 0; s < r.pointCount; ++s) + for (o = r.points[s].id.key, + i[s] = t.b2PointState.b2_addState, + l = 0, + h = n.pointCount; l < h; ++l) + if (n.points[l].id.key === o) { + i[s] = t.b2PointState.b2_persistState; + break + } + for (; s < a; ++s) + i[s] = t.b2PointState.b2_nullState + } + , + t.b2ClipVertex = xt, + t.b2RayCastInput = bt, + t.b2RayCastOutput = Ct, + t.b2AABB = Tt, + t.b2TestOverlapAABB = St, + t.b2ClipSegmentToLine = wt, + t.b2TestOverlapShape = Bt, + t.b2DistanceProxy = W, + t.b2SimplexCache = j, + t.b2DistanceInput = X, + t.b2DistanceOutput = Y, + t.b2ShapeCastInput = function() { + this.proxyA = new W, + this.proxyB = new W, + this.transformA = new V, + this.transformB = new V, + this.translationB = new I + } + , + t.b2ShapeCastOutput = function() { + this.point = new I, + this.normal = new I, + this.lambda = 0, + this.iterations = 0 + } + , + t.b2_gjk_reset = function() { + t.b2_gjkCalls = 0, + t.b2_gjkIters = 0, + t.b2_gjkMaxIters = 0 + } + , + t.b2SimplexVertex = q, + t.b2Simplex = J, + t.b2Distance = rt, + t.b2ShapeCast = function(t, e) { + t.iterations = 0, + t.lambda = 1, + t.normal.SetZero(), + t.point.SetZero(); + var i = e.proxyA + , n = e.proxyB + , r = v(i.m_radius, c) + v(n.m_radius, c) + , s = e.transformA + , a = e.transformB + , o = e.translationB + , h = at.Set(0, 0) + , u = 0 + , _ = ot; + _.m_count = 0; + for (var f = _.m_vertices, d = i.GetSupport(F.MulTRV(s.q, I.NegV(o, I.s_t1), I.s_t0)), p = V.MulXV(s, i.GetVertex(d), lt), y = n.GetSupport(F.MulTRV(a.q, o, I.s_t0)), g = V.MulXV(a, n.GetVertex(y), ht), A = I.SubVV(p, g, ct), x = v(c, r - c), b = .5 * l, C = 0; C < 20 && m(A.Length() - x) > b; ) { + t.iterations += 1, + d = i.GetSupport(F.MulTRV(s.q, I.NegV(A, I.s_t1), I.s_t0)), + p = V.MulXV(s, i.GetVertex(d), lt), + y = n.GetSupport(F.MulTRV(a.q, A, I.s_t0)), + g = V.MulXV(a, n.GetVertex(y), ht); + var T = I.SubVV(p, g, ut); + A.Normalize(); + var S = I.DotVV(A, T) + , w = I.DotVV(A, o); + if (S - x > u * w) { + if (w <= 0) + return !1; + if ((u = (S - x) / w) > 1) + return !1; + h.Copy(A).SelfNeg(), + _.m_count = 0 + } + var E = f[_.m_count]; + switch (E.indexA = y, + E.wA.Copy(g).SelfMulAdd(u, o), + E.indexB = d, + E.wB.Copy(p), + E.w.Copy(E.wB).SelfSub(E.wA), + E.a = 1, + _.m_count += 1, + _.m_count) { + case 1: + break; + case 2: + _.Solve2(); + break; + case 3: + _.Solve3() + } + if (3 === _.m_count) + return !1; + _.GetClosestPoint(A), + ++C + } + var M = _t + , D = ft; + return _.GetWitnessPoints(M, D), + A.LengthSquared() > 0 && (h.Copy(A).SelfNeg(), + h.Normalize()), + t.normal.Copy(h), + t.lambda = u, + t.iterations = C, + !0 + } + , + t.b2Pair = Ot, + t.b2BroadPhase = Lt, + t.b2PairLessThan = Ft, + t.b2TreeNode = Pt, + t.b2DynamicTree = Rt, + t.b2_toi_reset = function() { + t.b2_toiTime = 0, + t.b2_toiMaxTime = 0, + t.b2_toiCalls = 0, + t.b2_toiIters = 0, + t.b2_toiMaxIters = 0, + t.b2_toiRootIters = 0, + t.b2_toiMaxRootIters = 0 + } + , + t.b2TOIInput = jt, + t.b2TOIOutput = Yt, + t.b2SeparationFunction = qt, + t.b2TimeOfImpact = re, + t.b2CollideCircles = oe, + t.b2CollidePolygonAndCircle = ue, + t.b2CollidePolygons = Le, + t.b2CollideEdgeAndCircle = We, + t.b2CollideEdgeAndPolygon = Je, + t.b2MassData = Ke, + t.b2Shape = Qe, + t.b2CircleShape = ii, + t.b2PolygonShape = ni, + t.b2EdgeShape = ri, + t.b2ChainShape = si, + t.b2Filter = ai, + t.b2FixtureDef = oi, + t.b2FixtureProxy = li, + t.b2Fixture = hi, + t.b2BodyDef = function() { + this.type = t.b2BodyType.b2_staticBody, + this.position = new I(0,0), + this.angle = 0, + this.linearVelocity = new I(0,0), + this.angularVelocity = 0, + this.linearDamping = 0, + this.angularDamping = 0, + this.allowSleep = !0, + this.awake = !0, + this.fixedRotation = !1, + this.bullet = !1, + this.active = !0, + this.userData = null, + this.gravityScale = 1 + } + , + t.b2Body = _i, + t.b2World = jn, + t.b2DestructionListener = en, + t.b2ContactFilter = nn, + t.b2ContactImpulse = rn, + t.b2ContactListener = sn, + t.b2QueryCallback = an, + t.b2RayCastCallback = on, + t.b2Island = An, + t.b2Profile = hn, + t.b2TimeStep = cn, + t.b2Position = un, + t.b2Velocity = _n, + t.b2SolverData = fn, + t.b2ContactManager = ln, + t.b2MixFriction = Ui, + t.b2MixRestitution = zi, + t.b2ContactEdge = Wi, + t.b2Contact = ji, + t.b2ContactRegister = $i, + t.b2ContactFactory = tn, + t.g_blockSolve = !1, + t.b2VelocityConstraintPoint = dn, + t.b2ContactVelocityConstraint = pn, + t.b2ContactPositionConstraint = mn, + t.b2ContactSolverDef = yn, + t.b2PositionSolverManifold = vn, + t.b2ContactSolver = gn, + t.b2CircleContact = Xi, + t.b2PolygonContact = Yi, + t.b2PolygonAndCircleContact = qi, + t.b2EdgeAndCircleContact = Ji, + t.b2EdgeAndPolygonContact = Zi, + t.b2ChainAndCircleContact = Ki, + t.b2ChainAndPolygonContact = Qi, + t.b2Jacobian = fi, + t.b2JointEdge = di, + t.b2JointDef = pi, + t.b2Joint = mi, + t.b2AreaJointDef = gi, + t.b2AreaJoint = Ai, + t.b2DistanceJointDef = yi, + t.b2DistanceJoint = vi, + t.b2FrictionJointDef = xi, + t.b2FrictionJoint = bi, + t.b2GearJointDef = Ci, + t.b2GearJoint = Ti, + t.b2MotorJointDef = Si, + t.b2MotorJoint = wi, + t.b2MouseJointDef = Ei, + t.b2MouseJoint = Mi, + t.b2PrismaticJointDef = Di, + t.b2PrismaticJoint = Bi, + t.b2_minPulleyLength = 2, + t.b2PulleyJointDef = Ii, + t.b2PulleyJoint = Pi, + t.b2RevoluteJointDef = Ri, + t.b2RevoluteJoint = Oi, + t.b2RopeJointDef = Li, + t.b2RopeJoint = Fi, + t.b2WeldJointDef = Vi, + t.b2WeldJoint = Ni, + t.b2WheelJointDef = ki, + t.b2WheelJoint = Gi, + t.b2ControllerEdge = Xn, + t.b2Controller = Yn, + t.b2BuoyancyController = qn, + t.b2ConstantAccelController = Jn, + t.b2ConstantForceController = Zn, + t.b2GravityController = Kn, + t.b2TensorDampingController = Qn, + t.b2ParticleDef = xn, + t.b2CalculateParticleIterations = bn, + t.b2ParticleHandle = Tn, + t.b2ParticleGroupDef = Sn, + t.b2ParticleGroup = wn, + t.b2GrowableBuffer = Nn, + t.b2FixtureParticleQueryCallback = kn, + t.b2ParticleContact = Gn, + t.b2ParticleBodyContact = Un, + t.b2ParticlePair = zn, + t.b2ParticleTriad = Hn, + t.b2ParticleSystemDef = Wn, + t.b2RopeDef = function() { + this.vertices = [], + this.count = 0, + this.masses = [], + this.gravity = new I(0,0), + this.damping = .1, + this.k2 = .9, + this.k3 = .1 + } + , + t.b2Rope = $n, + Object.defineProperty(t, "__esModule", { + value: !0 + }) + } + , + "object" == typeof i && void 0 !== e ? n(i) : "function" == typeof define && define.amd ? define(["exports"], n) : n((void 0).box2d = {}) + } + ), {}], + 378: [(function(t, e) { + "use strict"; + var i = "undefined" == typeof window ? global : window; + i.cc = i.cc || {}, + cc.internal = cc.internal || {}, + t("./predefine"), + t("./polyfill/string"), + t("./polyfill/misc"), + t("./polyfill/array"), + t("./polyfill/object"), + t("./polyfill/array-buffer"), + t("./polyfill/number"), + t("./polyfill/typescript"), + t("./cocos2d/core/predefine"), + t("./cocos2d"), + t("./extends"), + e.exports = i.cc + } + ), { + "./cocos2d": 295, + "./cocos2d/core/predefine": 218, + "./extends": 353, + "./package": void 0, + "./polyfill/array": 380, + "./polyfill/array-buffer": 379, + "./polyfill/misc": 381, + "./polyfill/number": 382, + "./polyfill/object": 383, + "./polyfill/string": 384, + "./polyfill/typescript": void 0, + "./predefine": 385 + }], + 379: [(function() { + "use strict"; + if (!ArrayBuffer.isView) { + var t = Object.getPrototypeOf(Int8Array); + ArrayBuffer.isView = "function" == typeof t ? function(e) { + return e instanceof t + } + : function(t) { + if ("object" != typeof t) + return !1; + var e = t.constructor; + return e === Float64Array || e === Float32Array || e === Uint8Array || e === Uint32Array || e === Int8Array + } + } + } + ), {}], + 380: [(function() { + "use strict"; + Array.isArray || (Array.isArray = function(t) { + return "[object Array]" === Object.prototype.toString.call(t) + } + ), + Array.prototype.find || (Array.prototype.find = function(t) { + for (var e = this.length, i = 0; i < e; i++) { + var n = this[i]; + if (t.call(this, n, i, this)) + return n + } + } + ), + Array.prototype.includes || (Array.prototype.includes = function(t) { + return -1 !== this.indexOf(t) + } + ) + } + ), {}], + 381: [(function() { + "use strict"; + if (Math.sign || (Math.sign = function(t) { + return 0 == (t = +t) || isNaN(t) ? t : t > 0 ? 1 : -1 + } + ), + Math.log2 || (Math.log2 = function(t) { + return Math.log(t) * Math.LOG2E + } + ), + Number.isInteger || (Number.isInteger = function(t) { + return "number" == typeof t && isFinite(t) && Math.floor(t) === t + } + ), + !console.time) { + var t = window.performance || Date + , e = Object.create(null); + console.time = function(i) { + e[i] = t.now() + } + , + console.timeEnd = function(i) { + var n = e[i] + , r = t.now() - n; + console.log(i + ": " + r + "ms") + } + } + } + ), {}], + 382: [(function() { + "use strict"; + Number.parseFloat = Number.parseFloat || parseFloat, + Number.parseInt = Number.parseInt || parseInt + } + ), {}], + 383: [(function() { + "use strict"; + Object.assign || (Object.assign = function(t, e) { + return cc.js.mixin(t, e) + } + ), + Object.getOwnPropertyDescriptors || (Object.getOwnPropertyDescriptors = function(t) { + var e = {} + , i = Object.getOwnPropertyNames(t); + Object.getOwnPropertySymbols && (i = i.concat(Object.getOwnPropertySymbols(t))); + for (var n = 0; n < i.length; ++n) { + var r = i[n]; + e[r] = Object.getOwnPropertyDescriptor(t, r) + } + return e + } + ) + } + ), {}], + 384: [(function() { + "use strict"; + String.prototype.startsWith || (String.prototype.startsWith = function(t, e) { + return e = e || 0, + this.lastIndexOf(t, e) === e + } + ), + String.prototype.endsWith || (String.prototype.endsWith = function(t, e) { + (void 0 === e || e > this.length) && (e = this.length), + e -= t.length; + var i = this.indexOf(t, e); + return -1 !== i && i === e + } + ), + String.prototype.trimLeft || (String.prototype.trimLeft = function() { + return this.replace(/^\s+/, "") + } + ) + } + ), {}], + 385: [(function() { + "use strict"; + var t = "undefined" == typeof window ? global : window; + function e(e, i) { + void 0 === t[e] && Object.defineProperty(t, e, { + get: function() { + var t; + return "CC_WECHATGAMESUB" === e ? t = "cc.sys.platform === cc.sys.WECHAT_GAME_SUB" : "CC_WECHATGAME" === e ? t = "cc.sys.platform === cc.sys.WECHAT_GAME" : "CC_QQPLAY" === e && (t = "cc.sys.platform === cc.sys.QQ_PLAY"), + cc.warnID(1400, e, t), + i + } + }) + } + function i(e) { + return "object" == typeof t[e] + } + (function(e, i) { + void 0 === t[e] && (t[e] = i) + } + )("CC_BUILD", !1), + t.CC_BUILD = !0, + t.CC_DEV = !1, + t.CC_DEBUG = !1, + t.CC_JSB = !1, + t.CC_NATIVERENDERER = !1, + t.CC_SUPPORT_JIT = !0, + t.CC_PHYSICS_BUILTIN = !1, + t.CC_PHYSICS_CANNON = !1, + t.CC_EDITOR = !1, + t.CC_PREVIEW = !1, + t.CC_TEST = !1, + t.CC_RUNTIME = !1, + t.CC_JSB = !1; + var n = !(!i("wx") || !wx.getSharedCanvas) + , r = !(!i("wx") || !wx.getSystemInfoSync && !wx.getSharedCanvas) + , s = i("bk"); + e("CC_WECHATGAMESUB", n), + e("CC_WECHATGAME", r), + e("CC_QQPLAY", s), + t.CocosEngine = cc.ENGINE_VERSION = "2.4.5" + } + ), {}] +}, {}, [378]); diff --git a/f.txt b/f.txt new file mode 100644 index 0000000..744574b --- /dev/null +++ b/f.txt @@ -0,0 +1,248 @@ +(function(sttc){/* + + Copyright The Closure Library Authors. + SPDX-License-Identifier: Apache-2.0 +*/ +var aa,ba;function ca(a){var b=0;return function(){return b>>0,ia[d]=ha?fa.Symbol(d):"$jscp$"+a+"$"+d),da(f,ia[d],{configurable:!0,writable:!0,value:b})))}} +ja("Symbol",function(a){function b(f){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(f||"")+"_"+e++,f)}function c(f,g){this.h=f;da(this,"description",{configurable:!0,writable:!0,value:g})}if(a)return a;c.prototype.toString=function(){return this.h};var d="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",e=0;return b},"es6"); +ja("Symbol.iterator",function(a){if(a)return a;a=(0,n.Symbol)("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c=e}},"es6");ja("globalThis",function(a){return a||fa},"es_2020"); +ja("Array.prototype.keys",function(a){return a?a:function(){return va(this,function(b){return b})}},"es6");ja("Array.prototype.values",function(a){return a?a:function(){return va(this,function(b,c){return c})}},"es8");ja("Promise.prototype.finally",function(a){return a?a:function(b){return this.then(function(c){return n.Promise.resolve(b()).then(function(){return c})},function(c){return n.Promise.resolve(b()).then(function(){throw c;})})}},"es9");var v=this||self; +function xa(a){a=a.split(".");for(var b=v,c=0;c>>0),Ba=0;function Ca(a,b,c){return a.call.apply(a.bind,arguments)} +function Da(a,b,c){if(!a)throw Error();if(2b?1:0};function Ma(){var a=v.navigator;return a&&(a=a.userAgent)?a:""}function w(a){return-1!=Ma().indexOf(a)};function Na(){return w("Trident")||w("MSIE")}function Oa(){return(w("Chrome")||w("CriOS"))&&!w("Edge")||w("Silk")}function Pa(a){var b={};a.forEach(function(c){b[c[0]]=c[1]});return function(c){return b[p(c,"find").call(c,function(d){return d in b})]||""}} +function Qa(){var a=Ma();if(Na()){var b=/rv: *([\d\.]*)/.exec(a);if(b&&b[1])a=b[1];else{b="";var c=/MSIE +([\d\.]+)/.exec(a);if(c&&c[1])if(a=/Trident\/(\d.\d)/.exec(a),"7.0"==c[1])if(a&&a[1])switch(a[1]){case "4.0":b="8.0";break;case "5.0":b="9.0";break;case "6.0":b="10.0";break;case "7.0":b="11.0"}else b="7.0";else b=c[1];a=b}return a}c=RegExp("([A-Z][\\w ]+)/([^\\s]+)\\s*(?:\\((.*?)\\))?","g");b=[];for(var d;d=c.exec(a);)b.push([d[1],d[2],d[3]||void 0]);a=Pa(b);return w("Opera")?a(["Version","Opera"]): +w("Edge")?a(["Edge"]):w("Edg/")?a(["Edg"]):w("Silk")?a(["Silk"]):Oa()?a(["Chrome","CriOS","HeadlessChrome"]):(a=b[2])&&a[1]||""};function Ra(a,b){for(var c=a.length,d="string"===typeof a?a.split(""):a,e=0;eb?null:"string"===typeof a?a.charAt(b):a[b]} +function Wa(a,b){a:{for(var c="string"===typeof a?a.split(""):a,d=a.length-1;0<=d;d--)if(d in c&&b.call(void 0,c[d],d,a)){b=d;break a}b=-1}return 0>b?null:"string"===typeof a?a.charAt(b):a[b]}function Xa(a,b){a:if("string"===typeof a)a="string"!==typeof b||1!=b.length?-1:a.indexOf(b,0);else{for(var c=0;ce;e++){var f=c.concat(d[e].split(""));ab[e]=f;for(var g=0;g>2];k=b[(k&3)<<4|l>>4];l=b[(l&15)<<2|h>>6];h=b[h&63];c[e++]=g+k+l+h}g=0;h=d;switch(a.length-f){case 2:g=a[f+1],h=b[(g&15)<<2]||d;case 1:a=a[f],c[e]=b[a>>2]+b[(a&3)<<4|g>>4]+h+d}return c.join("")}}return a};function jb(a,b){if(null!=a)return Array.isArray(a)||fb(a)?kb(a,b):b(a)}function kb(a,b){if(Array.isArray(a)){for(var c=Array(a.length),d=0;d=a.m?a.j?a.j[b]:void 0:(void 0===c?0:c)&&a.j&&a.j[b]?a.j[b]:a.i[b+a.l]}function qb(a,b,c){c=void 0===c?!1:c;var d=z(a,b,c);null==d&&(d=ob);d===ob&&(d=eb(d.slice()),B(a,b,d,c));return d}function rb(a,b){a=z(a,b);return null==a?a:!!a}function C(a,b,c){a=z(a,b);return null==a?c:a}function sb(a,b,c){a=rb(a,b);return null==a?void 0===c?!1:c:a} +function tb(a,b,c){a=z(a,b);a=null==a?a:+a;return null==a?void 0===c?0:c:a}function B(a,b,c,d){(void 0===d?0:d)||b>=a.m?(pb(a),a.j[b]=c):a.i[b+a.l]=c;return a}function ub(a,b,c){var d=void 0===d?!1:d;return B(a,b,null==c?eb([]):Array.isArray(c)?eb(c):c,d)}function vb(a,b,c){0!==c?B(a,b,c):B(a,b,void 0,!1);return a}function wb(a,b,c,d){(c=xb(a,c))&&c!==b&&null!=d&&(a.h&&c in a.h&&(a.h[c]=void 0),B(a,c,void 0));return B(a,b,d)} +function xb(a,b){for(var c=0,d=0;da.length?"&":"")+encodeURIComponent(d)+"="+encodeURIComponent(String(g)))}}return b};/* + + SPDX-License-Identifier: Apache-2.0 +*/ +var Yb={};function Zb(){var a="undefined"!==typeof window?window.trustedTypes:void 0;return null!==a&&void 0!==a?a:null}var $b;function ac(){var a,b;if(void 0===$b)try{$b=null!==(b=null===(a=Zb())||void 0===a?void 0:a.createPolicy("google#safe",{createHTML:function(c){return c},createScript:function(c){return c},createScriptURL:function(c){return c}}))&&void 0!==b?b:null}catch(c){$b=null}return $b};function bc(){}function cc(a){this.h=a}u(cc,bc);cc.prototype.toString=function(){return this.h.toString()};function dc(a){var b,c=null===(b=ac())||void 0===b?void 0:b.createScriptURL(a);return new cc(null!==c&&void 0!==c?c:a,Yb)}function ec(a){if(a instanceof cc)return a.h;throw Error("");};function fc(a){var b=ta.apply(1,arguments);if(0===b.length)return dc(a[0]);for(var c=[a[0]],d=0;dc)return null;d=a.indexOf("&",c);if(0>d||d>b)d=b;c+=7;return decodeURIComponent(a.substr(c,d-c).replace(/\+/g," "))};function wc(a){try{var b;if(b=!!a&&null!=a.location.href)a:{try{Za(a.foo);b=!0;break a}catch(c){}b=!1}return b}catch(c){return!1}}function xc(a){return wc(a.top)?a.top:null} +function yc(a,b){var c=zc("SCRIPT",a);c.src=gc(b);var d;b=(c.ownerDocument&&c.ownerDocument.defaultView||window).document;var e=null===(d=b.querySelector)||void 0===d?void 0:d.call(b,"script[nonce]");(d=e?e.nonce||e.getAttribute("nonce")||"":"")&&c.setAttribute("nonce",d);return(a=a.getElementsByTagName("script")[0])&&a.parentNode?(a.parentNode.insertBefore(c,a),c):null}function Ac(a,b){return b.getComputedStyle?b.getComputedStyle(a,null):a.currentStyle} +function Bc(a,b){if(!Cc()&&!Dc()){var c=Math.random();if(c>2)+a.charCodeAt(d)&4294967295;return 0Math.random()});function Ic(a,b){var c=-1;try{a&&(c=parseInt(a.getItem(b),10))}catch(d){return null}return 0<=c&&1E3>c?c:null} +function Jc(a,b){var c=Dc()?null:Math.floor(1E3*Ec());var d;if(d=null!=c&&a)a:{var e=String(c);try{if(a){a.setItem(b,e);d=e;break a}}catch(f){}d=null}return d?c:null}var Cc=ic(function(){return Hc("MSIE")});function Hc(a){return-1!=Ma().indexOf(a)}var Kc=/^([0-9.]+)px$/,Lc=/^(-?[0-9.]{1,30})$/;function Mc(a){return Lc.test(a)&&(a=Number(a),!isNaN(a))?a:null}function H(a){return(a=Kc.exec(a))?+a[1]:null} +function Nc(a,b){for(var c=0;50>c;++c){try{var d=!(!a.frames||!a.frames[b])}catch(g){d=!1}if(d)return a;a:{try{var e=a.parent;if(e&&e!=a){var f=e;break a}}catch(g){}f=null}if(!(a=f))break}return null}var Oc=ic(function(){return rc()?2:sc()?1:0});function Pc(a){Fc({display:"none"},function(b,c){a.style.setProperty(c,b,"important")})}var Qc=[];function Rc(){var a=Qc;Qc=[];a=r(a);for(var b=a.next();!b.done;b=a.next()){b=b.value;try{b()}catch(c){}}} +function Sc(a,b){b=void 0===b?window.document:b;0!=a.length&&b.head&&a.forEach(function(c){if(c){var d=b;d=void 0===d?window.document:d;if(c&&d.head){var e=zc("META");d.head.appendChild(e);e.httpEquiv="origin-trial";e.content=c}}})}function Tc(a){if("number"!==typeof a.goog_pvsid)try{Object.defineProperty(a,"goog_pvsid",{value:Math.floor(Math.random()*Math.pow(2,52)),configurable:!1})}catch(b){}return Number(a.goog_pvsid)||-1} +function Uc(a){var b=Vc;"complete"===b.readyState||"interactive"===b.readyState?(Qc.push(a),1==Qc.length&&(n.Promise?n.Promise.resolve().then(Rc):window.setImmediate?setImmediate(Rc):setTimeout(Rc,0))):b.addEventListener("DOMContentLoaded",a)}function zc(a,b){b=void 0===b?document:b;return b.createElement(String(a).toLowerCase())};var Wc=null;var Vc=document,I=window;var Xc=null;function Yc(a,b){b=void 0===b?[]:b;var c=!1;v.google_logging_queue||(c=!0,v.google_logging_queue=[]);v.google_logging_queue.push([a,b]);if(a=c){if(null==Xc){Xc=!1;try{var d=xc(v);d&&-1!==d.location.hash.indexOf("google_logging")&&(Xc=!0);v.localStorage.getItem("google_logging")&&(Xc=!0)}catch(e){}}a=Xc}a&&(d=v.document,a=new Kb(Lb,"https://pagead2.googlesyndication.com/pagead/js/logging_library.js"),a=Wb(a instanceof Kb&&a.constructor===Kb&&a.h===Mb?a.i:"type_error:Const"),yc(d,a))};function Zc(a,b){var c=void 0===c?{}:c;this.error=a;this.context=b.context;this.msg=b.message||"";this.id=b.id||"jserror";this.meta=c}function $c(a){return!!(a.error&&a.meta&&a.id)};var ad=RegExp("^https?://(\\w|-)+\\.cdn\\.ampproject\\.(net|org)(\\?|/|$)");function bd(a,b){this.h=a;this.i=b}function cd(a,b,c){this.url=a;this.ba=b;this.Ia=!!c;this.depth=null};function dd(a,b){a.google_image_requests||(a.google_image_requests=[]);var c=zc("IMG",a.document);c.src=b;a.google_image_requests.push(c)}function ed(a,b){var c="https://pagead2.googlesyndication.com/pagead/gen_204?id="+b;Fc(a,function(d,e){d&&(c+="&"+e+"="+encodeURIComponent(d))});fd(c)}function fd(a){var b=window;b.fetch?b.fetch(a,{keepalive:!0,credentials:"include",redirect:"follow",method:"get",mode:"no-cors"}):dd(b,a)};function gd(){this.j="&";this.i={};this.l=0;this.h=[]}function hd(a,b){var c={};c[a]=b;return[c]}function id(a,b,c,d,e){var f=[];Fc(a,function(g,h){(g=jd(g,b,c,d,e))&&f.push(h+"="+g)});return f.join(b)} +function jd(a,b,c,d,e){if(null==a)return"";b=b||"&";c=c||",$";"string"==typeof c&&(c=c.split(""));if(a instanceof Array){if(d=d||0,de?encodeURIComponent(id(a,b,c,d,e+1)):"...";return encodeURIComponent(String(a))} +function kd(a,b){var c="https://pagead2.googlesyndication.com"+b,d=ld(a)-b.length;if(0>d)return"";a.h.sort(function(m,q){return m-q});b=null;for(var e="",f=0;f=l.length){d-=l.length;c+=l;e=a.j;break}b=null==b?g:b}}a="";null!=b&&(a=e+"trn="+b);return c+a}function ld(a){var b=1,c;for(c in a.i)b=c.length>b?c.length:b;return 3997-b-a.j.length-1};function md(){this.h=Math.random()}function nd(){var a=od,b=v.google_srt;0<=b&&1>=b&&(a.h=b)}function pd(a,b,c,d,e){if((d?a.h:Math.random())<(e||.01))try{if(c instanceof gd)var f=c;else f=new gd,Fc(c,function(h,k){var l=f,m=l.l++;h=hd(k,h);l.h.push(m);l.i[m]=h});var g=kd(f,"/pagead/gen_204?id="+b+"&");g&&dd(v,g)}catch(h){}};var qd=null;function rd(){if(null===qd){qd="";try{var a="";try{a=v.top.location.hash}catch(c){a=v.location.hash}if(a){var b=a.match(/\bdeid=([\d,]+)/);qd=b?b[1]:""}}catch(c){}}return qd};function sd(){var a=v.performance;return a&&a.now&&a.timing?Math.floor(a.now()+a.timing.navigationStart):Date.now()}function td(){var a=void 0===a?v:a;return(a=a.performance)&&a.now?a.now():null};function ud(a,b){var c=td()||sd();this.label=a;this.type=b;this.value=c;this.duration=0;this.uniqueId=Math.random();this.slotId=void 0};var vd=v.performance,wd=!!(vd&&vd.mark&&vd.measure&&vd.clearMarks),xd=ic(function(){var a;if(a=wd)a=rd(),a=!!a.indexOf&&0<=a.indexOf("1337");return a});function yd(){this.events=[];this.i=v||v;var a=null;v&&(v.google_js_reporting_queue=v.google_js_reporting_queue||[],this.events=v.google_js_reporting_queue,a=v.google_measure_js_timing);this.h=xd()||(null!=a?a:1>Math.random())} +function zd(a){a&&vd&&xd()&&(vd.clearMarks("goog_"+a.label+"_"+a.uniqueId+"_start"),vd.clearMarks("goog_"+a.label+"_"+a.uniqueId+"_end"))}yd.prototype.start=function(a,b){if(!this.h)return null;a=new ud(a,b);b="goog_"+a.label+"_"+a.uniqueId+"_start";vd&&xd()&&vd.mark(b);return a};yd.prototype.end=function(a){if(this.h&&"number"===typeof a.value){a.duration=(td()||sd())-a.value;var b="goog_"+a.label+"_"+a.uniqueId+"_end";vd&&xd()&&vd.mark(b);!this.h||2048a;case 12:return Fd(a)&&Fd(e)&&(new RegExp(a)).test(e);case 10:return null!=e&&-1===Ka(String(e),a);case 11:return null!=e&&1===Ka(String(e),a)}}}}function Td(a,b){return!a||!(!b||!Rd(a,b))};function Ud(a){y.call(this,a,-1,Vd)}u(Ud,y);var Vd=[4];function Wd(a){y.call(this,a)}u(Wd,y);function Xd(a){y.call(this,a,-1,Yd)}u(Xd,y);var Yd=[5],Zd=[1,2,3,6,7];function $d(a){a.jb.apply(a,ma(ta.apply(1,arguments).map(function(b){return{qb:4,message:b}})))};function ae(a){return function(){var b=ta.apply(0,arguments);try{return a.apply(this,b)}catch(c){}}}var be=ae(function(a){var b=[],c={};a=r(a);for(var d=a.next();!d.done;c={ca:c.ca},d=a.next())c.ca=d.value,ae(function(e){return function(){b.push('[{"'+e.ca.qb+'":'+Cb(e.ca.message)+"}]")}}(c))();return"[["+b.join(",")+"]]"});function ce(a,b){if(n.globalThis.fetch)n.globalThis.fetch(a,{method:"POST",body:b,keepalive:65536>b.length,credentials:"omit",mode:"no-cors",redirect:"follow"});else{var c=new XMLHttpRequest;c.open("POST",a,!0);c.send(b)}};function de(a){var b=void 0===b?ce:b;this.l=void 0===a?1E3:a;this.j=b;this.i=[];this.h=null}de.prototype.jb=function(){var a=ta.apply(0,arguments),b=this;ae(function(){b.i.push.apply(b.i,ma(a));var c=ae(function(){var d=be(b.i);b.j("https://pagead2.googlesyndication.com/pagead/ping?e=1",d);b.i=[];b.h=null});100<=b.i.length?(null!==b.h&&clearTimeout(b.h),b.h=setTimeout(c,0)):null===b.h&&(b.h=setTimeout(c,b.l))})()};function ee(a){y.call(this,a,-1,fe)}u(ee,y);function ge(a){y.call(this,a)}u(ge,y);ge.prototype.$=function(){return C(this,1,0)};function he(a){y.call(this,a)}u(he,y);var fe=[2,4,5],ie=[1,2];function je(a){y.call(this,a,-1,ke)}u(je,y);function le(a){y.call(this,a,-1,me)}u(le,y);var ke=[2,3],me=[5],ne=[1,2,3,4];function oe(a){y.call(this,a)}u(oe,y);oe.prototype.getTagSessionCorrelator=function(){return C(this,2,0)};var zb=[4,5,7];function pe(a,b,c){var d=void 0===d?new de(b):d;this.i=a;this.m=c;this.j=d;this.h=[];this.l=0Math.random()&&ed({stack:Error().stack,aswift:window.google_async_iframe_id},"badpubwin");return zf}function Bf(){var a=void 0===a?I:a;if(!a)return!1;try{return!(!a.navigator.standalone&&!a.top.navigator.standalone)}catch(b){return!1}} +function Cf(a){if(!a)return"";a=a.toLowerCase();"ca-"!=a.substring(0,3)&&(a="ca-"+a);return a};function Hf(){this.i=new If(this);this.h=0}Hf.prototype.resolve=function(a){Jf(this);this.h=1;this.l=a;Kf(this.i)};Hf.prototype.reject=function(a){Jf(this);this.h=2;this.j=a;Kf(this.i)};function Jf(a){if(0!=a.h)throw Error("Already resolved/rejected.");}function If(a){this.h=a}If.prototype.then=function(a,b){if(this.i)throw Error("Then functions already set.");this.i=a;this.j=b;Kf(this)}; +function Kf(a){switch(a.h.h){case 0:break;case 1:a.i&&a.i(a.h.l);break;case 2:a.j&&a.j(a.h.j);break;default:throw Error("Unhandled deferred state.");}};function Lf(a){this.h=a.slice(0)}Lf.prototype.apply=function(a){return new Lf(a(this.h.slice(0)))};Lf.prototype.get=function(a){return this.h[a]};Lf.prototype.add=function(a){var b=this.h.slice(0);b.push(a);return new Lf(b)};function Mf(a,b){for(var c=[],d=a.length,e=0;e=d.length?d:d.slice(0,19)+"_"))}a=new eg(null,{google_placement_id:a.join("~")})}return a};var ig={},jg=new eg(["google-auto-placed"],(ig.google_reactive_ad_format=40,ig.google_tag_origin="qs",ig));function kg(a){y.call(this,a)}u(kg,y);function lg(a){y.call(this,a)}u(lg,y);lg.prototype.getName=function(){return z(this,4)};function mg(a){y.call(this,a)}u(mg,y);function ng(a){y.call(this,a)}u(ng,y);function og(a){y.call(this,a)}u(og,y);var pg=[1,2,3];function qg(a){y.call(this,a)}u(qg,y);function rg(a){y.call(this,a,-1,sg)}u(rg,y);var sg=[6,7,9,10,11];function tg(a){y.call(this,a,-1,ug)}u(tg,y);function vg(a){y.call(this,a)}u(vg,y);function wg(a){y.call(this,a)}u(wg,y);var ug=[1],xg=[1,2];function yg(a){y.call(this,a,-1,zg)}u(yg,y);function Ag(a){y.call(this,a)}u(Ag,y);function Bg(a){y.call(this,a,-1,Cg)}u(Bg,y);function Dg(a){y.call(this,a)}u(Dg,y);function Eg(a){y.call(this,a)}u(Eg,y);function Fg(a){y.call(this,a)}u(Fg,y);function Gg(a){y.call(this,a)}u(Gg,y);var zg=[1,2,5,7],Cg=[2,5,6,11];function Hg(a){y.call(this,a)}u(Hg,y);function Ig(a){if(1!=a.nodeType)var b=!1;else if(b="INS"==a.tagName)a:{b=["adsbygoogle-placeholder"];a=a.className?a.className.split(/\s+/):[];for(var c={},d=0;df}function e(f){f=Uh(f);return null==f?!1:ctf(a)))return 4;if(!(a.innerHeight>=a.innerWidth))return 5;var f=tf(a);if(!f||(f-c)/f>d)a=6;else{if(c="true"!=e.google_full_width_responsive)a:{c=tf(a);for(b=b.parentElement;b;b=b.parentElement)if((d=Ac(b,a))&&(e=H(d.width))&&!(e>=c)&&"visible"!=d.overflow){c=!0;break a}c=!1}a=c?7:!0}return a} +function di(a,b,c,d){var e=ci(b,c,a,.3,d);!0!==e?a=e:"true"==d.google_full_width_responsive||Xh(c,b)?(b=tf(b),a=b-a,a=b&&0<=a?!0:b?-10>a?11:0>a?14:12:10):a=9;return a}function ei(a,b,c){a=a.style;"rtl"==b?Q(yh)?a.setProperty("margin-right",c,"important"):a.marginRight=c:Q(yh)?a.setProperty("margin-left",c,"important"):a.marginLeft=c} +function fi(a,b){if(3==b.nodeType)return/\S/.test(b.data);if(1==b.nodeType){if(/^(script|style)$/i.test(b.nodeName))return!1;try{var c=Ac(b,a)}catch(d){}return!c||"none"!=c.display&&!("absolute"==c.position&&("hidden"==c.visibility||"collapse"==c.visibility))}return!1}function gi(a,b,c){a=ai(b,a);return"rtl"==c?-a.x:a.x} +function hi(a,b){var c;c=(c=b.parentElement)?(c=Ac(c,a))?c.direction:"":"";if(c){b.style.border=b.style.borderStyle=b.style.outline=b.style.outlineStyle=b.style.transition="none";b.style.borderSpacing=b.style.padding="0";ei(b,c,"0px");b.style.width=tf(a)+"px";if(0!==gi(a,b,c)){ei(b,c,"0px");var d=gi(a,b,c);ei(b,c,-1*d+"px");a=gi(a,b,c);0!==a&&a!==d&&ei(b,c,d/(a-d)*d+"px")}b.style.zIndex=30}};function S(a,b){this.l=a;this.j=b}S.prototype.minWidth=function(){return this.l};S.prototype.height=function(){return this.j};S.prototype.h=function(a){return 300=f)}}function ni(a){return function(b){return b.height()<=a}}function li(a,b){return $h(a,b)c&&(c+=b.length),b=0<=c&&cf&&(f+=e.length);0<=f&&fe)){e=!0;break b}e=!1}g=e?g.eatfAbg=!0:!1}else g=h;if(g)return!0;g=new Wf([2]);for(e=0;e=c.offsetWidth);f=!c}if(!(c= +f)){c=a.v;f=z(b,2);g=za(d);g=c.i.h.get(g);if(!(g=g?g.contains(f):!1))a:{if(c.h.contains(za(d)))switch(f){case 2:case 3:g=!0;break a;default:g=!1;break a}for(f=d.parentElement;f;){if(c.h.contains(za(f))){g=!0;break a}f=f.parentElement}g=!1}c=g}if(c)return null;c=D(b,qg,3);f={};c&&(f.Sa=z(c,1),f.Fa=z(c,2),f.Za=!!rb(c,3));c=D(b,dg,4)&&z(D(b,dg,4),2)?z(D(b,dg,4),2):null;c=gg(c);g=null==z(b,12)?null:z(b,12);g=null==g?null:new eg(null,{google_ml_rank:g});b=Xi(a,b);b=fg(a.m,c,g,b);c=a.h;a=a.A;var h=c.document, +k=f.Za||!1;g=pc((new qc(h)).h,"DIV");var l=g.style;l.width="100%";l.height="auto";l.clear=k?"both":"none";k=g.style;k.textAlign="center";f.hb&&ri(k,f.hb);h=pc((new qc(h)).h,"INS");k=h.style;k.display="block";k.margin="auto";k.backgroundColor="transparent";f.Sa&&(k.marginTop=f.Sa);f.Fa&&(k.marginBottom=f.Fa);f.Wa&&ri(k,f.Wa);g.appendChild(h);f={pa:g,fa:h};f.fa.setAttribute("data-ad-format","auto");g=[];if(h=b&&b.Ga)f.pa.className=h.join(" ");h=f.fa;h.className="adsbygoogle";h.setAttribute("data-ad-client", +a);g.length&&h.setAttribute("data-ad-channel",g.join("+"));a:{try{var m=f.pa;var q=void 0===q?0:q;if(Q(bh)){q=void 0===q?0:q;var t=Th(d,e,q);if(t.init){var x=t.init;for(d=x;d=t.ha(d);)x=d;var F={anchor:x,position:t.la}}else F={anchor:d,position:e};m["google-ama-order-assurance"]=q;Jg(m,F.anchor,F.position)}else Jg(m,d,e);b:{var A=f.fa;A.dataset.adsbygoogleStatus="reserved";A.className+=" adsbygoogle-noablate";m={element:A};var E=b&&b.Ma;if(A.hasAttribute("data-pub-vars")){try{E=JSON.parse(A.getAttribute("data-pub-vars"))}catch(P){break b}A.removeAttribute("data-pub-vars")}E&& +(m.params=E);(c.adsbygoogle=c.adsbygoogle||[]).push(m)}}catch(P){(A=f.pa)&&A.parentNode&&(E=A.parentNode,E.removeChild(A),Ig(E)&&(E.style.display=E.getAttribute("data-init-display")||"none"));A=!1;break a}A=!0}return A?f:null}function Xi(a,b){return Qf(Tf(Ei(b).map(hg),function(c){Ci(a.h).exception=c}))};function Yi(a){if(Q(ah))var b=null;else try{b=a.getItem("google_ama_config")}catch(d){b=null}try{var c=b?nb(yg,b?JSON.parse(b):null):null}catch(d){c=null}return c};function Zi(a){y.call(this,a)}u(Zi,y);function $i(a){try{var b=a.localStorage.getItem("google_auto_fc_cmp_setting")||null}catch(d){b=null}var c=b;return c?Vf(function(){return nb(Zi,c?JSON.parse(c):null)}):Sf(null)};function aj(){this.S={}}function bj(){if(cj)return cj;var a=vf()||Af(),b=a.google_persistent_state_async;return null!=b&&"object"==typeof b&&null!=b.S&&"object"==typeof b.S?cj=b:a.google_persistent_state_async=cj=new aj}function dj(a){return ej[a]||"google_ps_"+a}function fj(a,b,c){b=dj(b);a=a.S;var d=a[b];return void 0===d?a[b]=c:d}var cj=null,gj={},ej=(gj[8]="google_prev_ad_formats_by_region",gj[9]="google_prev_ad_slotnames_by_region",gj);function hj(a){this.h=a||{cookie:""}} +hj.prototype.set=function(a,b,c){var d=!1;if("object"===typeof c){var e=c.Cb;d=c.Db||!1;var f=c.domain||void 0;var g=c.path||void 0;var h=c.fb}if(/[;=\s]/.test(a))throw Error('Invalid cookie name "'+a+'"');if(/[;\r\n]/.test(b))throw Error('Invalid cookie value "'+b+'"');void 0===h&&(h=-1);this.h.cookie=a+"="+b+(f?";domain="+f:"")+(g?";path="+g:"")+(0>h?"":0==h?";expires="+(new Date(1970,1,1)).toUTCString():";expires="+(new Date(Date.now()+1E3*h)).toUTCString())+(d?";secure":"")+(null!=e?";samesite="+ +e:"")};hj.prototype.get=function(a,b){for(var c=a+"=",d=(this.h.cookie||"").split(";"),e=0,f;ewindow.top.postMessage('"+a+"', '*');\n \n

      ")};/* + + Copyright 2019 The AMP HTML Authors. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS-IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +var Ak={},Bk=(Ak.image_stacked=1/1.91,Ak.image_sidebyside=1/3.82,Ak.mobile_banner_image_sidebyside=1/3.82,Ak.pub_control_image_stacked=1/1.91,Ak.pub_control_image_sidebyside=1/3.82,Ak.pub_control_image_card_stacked=1/1.91,Ak.pub_control_image_card_sidebyside=1/3.74,Ak.pub_control_text=0,Ak.pub_control_text_card=0,Ak),Ck={},Dk=(Ck.image_stacked=80,Ck.image_sidebyside=0,Ck.mobile_banner_image_sidebyside=0,Ck.pub_control_image_stacked=80,Ck.pub_control_image_sidebyside=0,Ck.pub_control_image_card_stacked= +85,Ck.pub_control_image_card_sidebyside=0,Ck.pub_control_text=80,Ck.pub_control_text_card=80,Ck),Ek={},Fk=(Ek.pub_control_image_stacked=100,Ek.pub_control_image_sidebyside=200,Ek.pub_control_image_card_stacked=150,Ek.pub_control_image_card_sidebyside=250,Ek.pub_control_text=100,Ek.pub_control_text_card=150,Ek); +function Gk(a){var b=0;a.K&&b++;a.F&&b++;a.G&&b++;if(3>b)return{J:"Tags data-matched-content-ui-type, data-matched-content-columns-num and data-matched-content-rows-num should be set together."};b=a.K.split(",");var c=a.G.split(",");a=a.F.split(",");if(b.length!==c.length||b.length!==a.length)return{J:'Lengths of parameters data-matched-content-ui-type, data-matched-content-columns-num and data-matched-content-rows-num must match. Example: \n data-matched-content-rows-num="4,2"\ndata-matched-content-columns-num="1,6"\ndata-matched-content-ui-type="image_stacked,image_card_sidebyside"'}; +if(2a?c?(c=a-8-8,c=Math.floor(c/1.91+70)+Math.floor(11*(c*Bk.mobile_banner_image_sidebyside+Dk.mobile_banner_image_sidebyside)+96),a={X:a,V:c,F:1,G:12,K:"mobile_banner_image_sidebyside"}):(a=Hk(a),a={X:a.width,V:a.height,F:1,G:13,K:"image_sidebyside"}):(a=Hk(a),a={X:a.width,V:a.height,F:4,G:2,K:"image_stacked"});Mk(b,a);return new yk(9,new Jk(a.X,a.V))} +function Nk(a,b){Lk(a,b);var c=Gk({G:b.google_content_recommendation_rows_num,F:b.google_content_recommendation_columns_num,K:b.google_content_recommendation_ui_type});if(c.J)a={X:0,V:0,F:0,G:0,K:"image_stacked",J:c.J};else{var d=2===c.Ka.length&&468<=a?1:0;var e=c.Ka[d];e=0===e.indexOf("pub_control_")?e:"pub_control_"+e;var f=Fk[e];for(var g=c.F[d];a/g=a)throw new J("Invalid responsive width from Matched Content slot "+b.google_ad_slot+": "+a+". Please ensure to put this Matched Content slot into a non-zero width div container.");} +function Mk(a,b){a.google_content_recommendation_ui_type=b.K;a.google_content_recommendation_columns_num=b.F;a.google_content_recommendation_rows_num=b.G};function Ok(a,b){S.call(this,a,b)}u(Ok,S);Ok.prototype.h=function(){return this.minWidth()};Ok.prototype.i=function(a,b,c){hi(a,c);b.google_ad_resize||(c.style.height=this.height()+"px",b.rpe=!0)};var Pk={"image-top":function(a){return 600>=a?284+.414*(a-250):429},"image-middle":function(a){return 500>=a?196-.13*(a-250):164+.2*(a-500)},"image-side":function(a){return 500>=a?205-.28*(a-250):134+.21*(a-500)},"text-only":function(a){return 500>=a?187-.228*(a-250):130},"in-article":function(a){return 420>=a?a/1.2:460>=a?a/1.91+130:800>=a?a/4:200}};function Qk(a,b){S.call(this,a,b)}u(Qk,S);Qk.prototype.h=function(){return Math.min(1200,this.minWidth())}; +function Rk(a,b,c,d,e){var f=e.google_ad_layout||"image-top";if("in-article"==f){var g=a;if("false"==e.google_full_width_responsive)a=g;else if(a=ci(b,c,g,.2,e),!0!==a)e.gfwrnwer=a,a=g;else if(a=tf(b))if(e.google_full_width_responsive_allowed=!0,c.parentElement){b:{g=c;for(var h=0;100>h&&g.parentElement;++h){for(var k=g.parentElement.childNodes,l=0;la)throw new J("Fluid responsive ads must be at least 250px wide: availableWidth="+ +a);a=Math.min(1200,Math.floor(a));if(d&&"in-article"!=f){f=Math.ceil(d);if(50>f)throw new J("Fluid responsive ads must be at least 50px tall: height="+f);return new yk(11,new S(a,f))}if("in-article"!=f&&(d=e.google_ad_layout_key)){f=""+d;b=Math.pow(10,3);if(d=(c=f.match(/([+-][0-9a-z]+)/g))&&c.length){e=[];for(g=0;g=a/Math.min(1200,tf(c))?4:3:bi(b);var g=!1,h=!1;if(488>tf(c)){var k=Xh(d,c);var l=li(d,c);g=!l&&k;h=l&&k}l=[ji(a),wk(b)];l.push(ki(488>tf(c),c,d,h));null!=e.google_max_responsive_height&&l.push(ni(e.google_max_responsive_height));var m=[function(t){return!t.eb}];if(g||h)g=oi(c,d),m.push(ni(g));var q=Tk(Sk(l),Sk(m));if(!q)throw new J("No slot size for availableWidth="+a);l=jf(248,function(){var t;a:if(f){if(e.gfwrnh&&(t=H(e.gfwrnh))){t={W:new Ok(a,t),T:!0}; +break a}t=a/1.2;var x=Math;var F=x.min;if(e.google_resizing_allowed||"true"==e.google_full_width_responsive)var A=Infinity;else{A=d;var E=Infinity;do{var P=ii(A,c,"height",H);P&&(E=Math.min(E,P));(P=ii(A,c,"maxHeight",H))&&(E=Math.min(E,P))}while((A=A.parentElement)&&"HTML"!=A.tagName);A=E}x=F.call(x,t,A);if(x<.5*t||100>x)x=t;Q(vh)&&!li(d,c)&&(x=Math.max(x,.5*sf(c).clientHeight));t={W:new Ok(a,Math.floor(x)),T:xa*d.height()?new V(b.minWidth(),b.height(),1):d}function $k(a){return Q(th)||a.location&&"#hffwroe2etoq"==a.location.hash};function bl(a,b,c,d,e){var f;(f=tf(b))?488>tf(b)?b.innerHeight>=b.innerWidth?(e.google_full_width_responsive_allowed=!0,hi(b,c),f={B:f,C:!0}):f={B:a,C:5}:f={B:a,C:4}:f={B:a,C:10};var g=f;f=g.B;g=g.C;if(!0!==g||a==f)return new yk(12,new S(a,d),null,null,!0,g,100);a=Yk(f,"auto",b,c,e,!0);return new yk(1,a.W,a.na,2,!0,g,a.T)};function cl(a,b){var c=b.google_ad_format;if("autorelaxed"==c){a:{if("pedestal"!=b.google_content_recommendation_ui_type)for(a=r(Ik),c=a.next();!c.done;c=a.next())if(null!=b[c.value]){b=!0;break a}b=!1}return b?9:5}if(Wk(c))return 1;if("link"===c)return 4;if("fluid"==c){if(c="in-article"===b.google_ad_layout)c=Q(uh)||Q(th)||a.location&&("#hffwroe2etop"==a.location.hash||"#hffwroe2etoq"==a.location.hash);return c?(dl(b),1):8}if(27===b.google_reactive_ad_format)return dl(b),1} +function el(a,b,c,d,e){e=b.offsetWidth||(c.google_ad_resize||(void 0===e?!1:e))&&ii(b,d,"width",H)||c.google_ad_width||0;4===a&&(c.google_ad_format="auto",a=1);var f=(f=fl(a,e,b,c,d))?f:Xk(e,c.google_ad_format,d,b,c);f.size().i(d,c,b);zk(f,e,c);1!=a&&(a=f.size().height(),b.style.height=a+"px")} +function fl(a,b,c,d,e){var f=d.google_ad_height||ii(c,e,"height",H);switch(a){case 5:return f=jf(247,function(){return Vk(b,d.google_ad_format,e,c,d)}),a=f.B,f=f.C,!0===f&&b!=a&&hi(e,c),!0===f?d.google_full_width_responsive_allowed=!0:(d.google_full_width_responsive_allowed=!1,d.gfwrnwer=f),Kk(a,d);case 9:return Nk(b,d);case 8:return Rk(b,e,c,f,d);case 10:return bl(b,e,c,f,d)}}function dl(a){a.google_ad_format="auto";a.armr=3};function gl(a,b){var c=xc(b);if(c){c=tf(c);var d=Ac(a,b)||{},e=d.direction;if("0px"===d.width&&"none"!==d.cssFloat)return-1;if("ltr"===e&&c)return Math.floor(Math.min(1200,c-a.getBoundingClientRect().left));if("rtl"===e&&c)return a=b.document.body.getBoundingClientRect().right-a.getBoundingClientRect().right,Math.floor(Math.min(1200,c-a-Math.floor((c-b.document.body.clientWidth)/2)))}return-1};var hl=la(["https://pagead2.googlesyndication.com/pagead/managed/js/adsense/","/slotcar_library",".js"]),il=la(["https://googleads.g.doubleclick.net/pagead/html/","/","/zrt_lookup.html"]),jl=la(["https://pagead2.googlesyndication.com/pagead/managed/js/adsense/","/show_ads_impl",".js"]),kl=la(["https://pagead2.googlesyndication.com/pagead/managed/js/adsense/","/show_ads_impl_with_ama",".js"]),ll=la(["https://pagead2.googlesyndication.com/pagead/managed/js/adsense/","/show_ads_impl_instrumented",".js"]);function ml(a){y.call(this,a)}u(ml,y);function nl(a){y.call(this,a,-1,ol)}u(nl,y);var ol=[1];function pl(a){y.call(this,a,-1,ql)}u(pl,y);pl.prototype.getId=function(){return C(this,1,0)};pl.prototype.$=function(){return C(this,7,0)};var ql=[2];function rl(a){y.call(this,a,-1,sl)}u(rl,y);rl.prototype.$=function(){return C(this,5,0)};var sl=[2];function tl(a){y.call(this,a,-1,ul)}u(tl,y);function vl(a){y.call(this,a,-1,wl)}u(vl,y);vl.prototype.$=function(){return C(this,1,0)};function xl(a){y.call(this,a)}u(xl,y);var ul=[1,4,2,3],wl=[2];function yl(a){y.call(this,a,-1,zl)}u(yl,y);var zl=[19],Al=[13,14];var Bl=void 0;function Cl(){Ed(Bl,Dd);return Bl}function Dl(a){Ed(Bl,Gd);Bl=a};function El(a,b,c,d){c=void 0===c?"":c;return 1===b&&Fl(c,void 0===d?null:d)?!0:Gl(a,c,function(e){return Ua(G(e,Jb,2),function(f){return z(f,1)===b})})}function Fl(a,b){return b?13===xb(b,Al)?sb(Gb(b,ml,13,Al),1):14===xb(b,Al)&&""!==a&&1===qb(Gb(b,nl,14,Al),1).length&&qb(Gb(b,nl,14,Al),1)[0]===a?sb(D(Gb(b,nl,14,Al),ml,2),1):!1:!1}function Hl(a,b){b=C(b,18,0);-1!==b&&(a.tmod=b)} +function Il(a){var b=void 0===b?"":b;var c=xc(I)||I;return Jl(c,a)?!0:Gl(I,b,function(d){return Ua(qb(d,3),function(e){return e===a})})}function Kl(a){return Gl(v,void 0===a?"":a,function(){return!0})}function Jl(a,b){a=(a=(a=a.location&&a.location.hash)&&a.match(/forced_clientside_labs=([\d,]+)/))&&a[1];return!!a&&Xa(a.split(","),b.toString())} +function Gl(a,b,c){a=xc(a)||a;var d=Ll(a);b&&(b=Cf(String(b)));return Ob(d,function(e,f){return Object.prototype.hasOwnProperty.call(d,f)&&(!b||b===f)&&c(e)})}function Ll(a){a=Ml(a);var b={};Fc(a,function(c,d){try{var e=new Hb(c);b[d]=e}catch(f){}});return b}function Ml(a){return Q(Mg)?(a=sj({ba:a,ka:Cl()}),null!=a.h?(Nl("ok"),a=Ol(a.h.value)):(Nl(a.i.message),a={}),a):Ol(a.localStorage)} +function Ol(a){try{var b=a.getItem("google_adsense_settings");if(!b)return{};var c=JSON.parse(b);return c!==Object(c)?{}:Nb(c,function(d,e){return Object.prototype.hasOwnProperty.call(c,e)&&"string"===typeof e&&Array.isArray(d)})}catch(d){return{}}}function Nl(a){Q(Lg)&&lf("abg_adsensesettings_lserr",{s:a,g:Q(Mg),c:Cl(),r:.01},.01)};function Pl(a,b){return a instanceof HTMLScriptElement&&b.test(a.src)?0:1}function Ql(a){var b=I.document;if(b.currentScript)return Pl(b.currentScript,a);b=r(b.scripts);for(var c=b.next();!c.done;c=b.next())if(0===Pl(c.value,a))return 0;return 1};function Rl(a,b){var c={},d={},e={},f={};return f[Md]=(c[55]=function(){return 0===a},c[23]=function(g){return El(I,Number(g))},c[24]=function(g){return Il(Number(g))},c[61]=function(){return sb(b,6)},c[63]=function(){return sb(b,6)||".google.ch"===Eb(b,8)},c),f[Nd]=(d[7]=function(g){try{var h=window.localStorage}catch(l){h=null}g=Number(g);g=void 0===g?0:g;g=0!=g?"google_experiment_mod"+g:"google_experiment_mod";var k=Ic(h,g);h=null===k?Jc(h,g):k;return null!==h&&void 0!==h?h:void 0},d),f[Od]=(e[6]= +function(){return Eb(b,15)},e),f};function Sl(a){a=void 0===a?v:a;return a.ggeac||(a.ggeac={})};function Tl(a,b){try{var c=a.split(".");a=v;for(var d=0,e;null!=a&&d=e)return null;d=cm(a,d,c/e);a.m[b]=d?0:e-c;return d}function cm(a,b,c){var d=a.j,e=Va(b,function(f){return!!d[f.getId()]});return e?e:a.D?null:Bc(b,c)} +function em(a,b){M(Le,function(c){a.j[c]=!0},b);M(Oe,function(c,d){return Xl(a,c,d)},b);M(Pe,function(c){return(a.i[c]||[]).concat(a.i[4])},b);M(Ye,function(c){return am(a,c)},b);M(Me,function(c,d){return $l(a,c,d)},b)}function Yl(a,b){return(a=Va(a,function(c){return c.$()==b}))&&G(a,rl,2)||[]}function bm(a,b){var c=G(a,pl,2),d=c.length,e=C(a,8,0);a=d*C(a,1,0)-1;b=void 0!==b?b:Math.floor(1E3*Ec());d=(b-e)%d;if(b=a)return null;c=c[d];e=K(te).h;return!c||e&&!Td(D(c,Hd,3),e)?null:c};function fm(){this.h=function(){}}function gm(a){K(fm).h(a)};var hm,im,jm,km,lm,mm; +function nm(a,b,c,d){var e=1;d=void 0===d?Sl():d;e=void 0===e?0:e;var f=void 0===f?new pe(null!=(km=null==(hm=D(a,xl,5))?void 0:C(hm,2,0))?km:0,null!=(lm=null==(im=D(a,xl,5))?void 0:C(im,4,0))?lm:0,null!=(mm=null==(jm=D(a,xl,5))?void 0:sb(jm,3))?mm:!1):f;d.hasOwnProperty("init-done")?(af(Ye,d)(Ta(G(a,vl,2),function(g){return g.toJSON()})),af(Ze,d)(Ta(G(a,Xd,1),function(g){return g.toJSON()}),e),b&&af($e,d)(b),om(d,e)):(em(K(Wl).init(G(a,vl,2),e,f,c),d),bf(d),cf(d),df(d),om(d,e),He(G(a,Xd,1),[e],f, +void 0,!0),ue=ue||!(!c||!c.cb),gm(K(Ul)),b&&gm(b))}function om(a,b){a=void 0===a?Sl():a;b=void 0===b?0:b;var c=a,d=b;d=void 0===d?0:d;ff(K(ef),c,d);pm(a,b);K(fm).h=af($e,a);K(Rh).m()}function pm(a,b){var c=K(Rh);c.i=function(d,e){return af(Re,a,function(){return!1})(d,e,b)};c.j=function(d,e){return af(Se,a,function(){return 0})(d,e,b)};c.l=function(d,e){return af(Te,a,function(){return""})(d,e,b)};c.h=function(d,e){return af(Ue,a,function(){return[]})(d,e,b)};c.m=function(){af(Ne,a)(b)}};function qm(a,b,c){var d=U(a);if(d.plle)om(Sl(a),1);else{d.plle=!0;try{var e=a.localStorage}catch(f){e=null}d=e;null==Ic(d,"goog_pem_mod")&&Jc(d,"goog_pem_mod");d=D(b,tl,12);e=sb(b,9);nm(d,Rl(c,b),{Ha:e&&!!a.google_disable_experiments,cb:e},Sl(a));if(c=Eb(b,15))c=Number(c),K(ef).l(c);if(c=Eb(b,10))c=Number(c),K(ef).i(c);b=r(qb(b,19));for(c=b.next();!c.done;c=b.next())c=c.value,K(ef).i(c);K(ef).j(12);K(ef).j(10);a=xc(a)||a;fk(a.location,"google_mc_lab")&&K(ef).i(44738307)}};function rm(a){gf.Oa(function(b){b.shv=String(a);b.mjsv="m202112060101";var c=K(ef).h(),d=U(v);d.eids||(d.eids=[]);b.eid=c.concat(d.eids).join(",")})};function sm(a){var b=a.kb;return a.$a||("dev"===b?"dev":"")};var tm={},um=(tm.google_ad_modifications=!0,tm.google_analytics_domain_name=!0,tm.google_analytics_uacct=!0,tm.google_pause_ad_requests=!0,tm.google_user_agent_client_hint=!0,tm);function vm(a){return(a=a.innerText||a.innerHTML)&&(a=a.replace(/^\s+/,"").split(/\r?\n/,1)[0].match(/^\x3c!--+(.*?)(?:--+>)?\s*$/))&&RegExp("google_ad_client").test(a[1])?a[1]:null} +function wm(a){if(a=a.innerText||a.innerHTML)if(a=a.replace(/^\s+|\s+$/g,"").replace(/\s*(\r?\n)+\s*/g,";"),(a=a.match(/^\x3c!--+(.*?)(?:--+>)?$/)||a.match(/^\/*\s*)?$/i))&&RegExp("google_ad_client").test(a[1]))return a[1];return null} +function xm(a){switch(a){case "true":return!0;case "false":return!1;case "null":return null;case "undefined":break;default:try{var b=a.match(/^(?:'(.*)'|"(.*)")$/);if(b)return b[1]||b[2]||"";if(/^[-+]?\d*(\.\d+)?$/.test(a)){var c=parseFloat(a);return c===c?c:void 0}}catch(d){}}};function ym(){var a,b,c,d;if(I.google_ad_client)return String(I.google_ad_client);var e=U(I).head_tag_slot_vars;if(null!==(c=null!==(a=null===e||void 0===e?void 0:e.google_ad_client)&&void 0!==a?a:null===(b=I.document.querySelector(".adsbygoogle[data-ad-client]"))||void 0===b?void 0:b.getAttribute("data-ad-client"))&&void 0!==c)e=c;else{b:{e=I.document.getElementsByTagName("script");var f=I.navigator&&I.navigator.userAgent||"";f=RegExp("appbankapppuzdradb|daumapps|fban|fbios|fbav|fb_iab|gsa/|messengerforios|naver|niftyappmobile|nonavigation|pinterest|twitter|ucbrowser|yjnewsapp|youtube", +"i").test(f)||/i(phone|pad|pod)/i.test(f)&&/applewebkit/i.test(f)&&!/version|safari/i.test(f)&&!Bf()?vm:wm;for(var g=e.length-1;0<=g;g--){var h=e[g];if(!h.google_parsed_script_for_pub_code&&(h.google_parsed_script_for_pub_code=!0,h=f(h))){e=h;break b}}e=null}if(e){f=/(google_\w+) *= *(['"]?[\w.-]+['"]?) *(?:;|$)/gm;for(g={};h=f.exec(e);)g[h[1]]=xm(h[2]);e=g.google_ad_client?g.google_ad_client:""}else e=""}return null!==(d=e)&&void 0!==d?d:""};var zm="undefined"===typeof sttc?void 0:sttc;function Am(a){var b=gf;try{return Ed(a,Fd),new yl(JSON.parse(a))}catch(c){b.I(838,c instanceof Error?c:Error(String(c)),void 0,function(d){d.jspb=String(a)})}return new yl};var Bm=K(Rh).h(zh.h,zh.defaultValue);function Cm(){var a=I.document;a=void 0===a?window.document:a;Sc(Bm,a)};var Dm=K(Rh).h(Ah.h,Ah.defaultValue);function Em(){var a=I.document;a=void 0===a?window.document:a;Sc(Dm,a)};var Fm=la(["https://pagead2.googlesyndication.com/pagead/js/err_rep.js"]);function Gm(){this.h=null;this.j=!1;this.l=Math.random();this.i=this.I;this.m=null}aa=Gm.prototype;aa.Oa=function(a){this.h=a};aa.Qa=function(a){this.j=a};aa.Pa=function(a){this.i=a}; +aa.I=function(a,b,c,d,e){if((this.j?this.l:Math.random())>(void 0===c?.01:c))return!1;$c(b)||(b=new Zc(b,{context:a,id:void 0===e?"jserror":e}));if(d||this.h)b.meta={},this.h&&this.h(b.meta),d&&d(b.meta);v.google_js_errors=v.google_js_errors||[];v.google_js_errors.push(b);if(!v.error_rep_loaded){a=fc(Fm);var f;yc(v.document,null!=(f=this.m)?f:Wb(gc(a).toString()));v.error_rep_loaded=!0}return!1};aa.ma=function(a,b,c){try{var d=b()}catch(e){if(!this.i(a,e,.01,c,"jserror"))throw e;}return d}; +aa.La=function(a,b,c,d){var e=this;return function(){var f=ta.apply(0,arguments);return e.ma(a,function(){return b.apply(c,f)},d)}};function Hm(a,b,c){var d=window;return function(){var e=td(),f=3;try{var g=b.apply(this,arguments)}catch(h){f=13;if(c)return c(a,h),g;throw h;}finally{d.google_measure_js_timing&&e&&(e={label:a.toString(),value:e,duration:(td()||0)-e,type:f},f=d.google_js_reporting_queue=d.google_js_reporting_queue||[],2048>f.length&&f.push(e))}return g}}function Im(a,b){return Hm(a,b,function(c,d){(new Gm).I(c,d)})};function Jm(a,b){return null==b?"&"+a+"=null":"&"+a+"="+Math.floor(b)}function Km(a,b){return"&"+a+"="+b.toFixed(3)}function Lm(){var a=new n.Set,b=Fi();try{if(!b)return a;for(var c=b.pubads(),d=r(c.getSlots()),e=d.next();!e.done;e=d.next())a.add(e.value.getSlotId().getDomId())}catch(f){}return a}function Mm(a){a=a.id;return null!=a&&(Lm().has(a)||p(a,"startsWith").call(a,"google_ads_iframe_")||p(a,"startsWith").call(a,"aswift"))} +function Nm(a,b,c){if(!a.sources)return!1;var d=R(Fh);switch(Om(a)){case 2:var e=Pm(a);if(e)return c.some(function(g){return Qm(e,g,d)});case 1:var f=Rm(a);if(f)return b.some(function(g){return Qm(f,g,d)})}return!1}function Om(a){if(!a.sources)return 0;a=a.sources.filter(function(b){return b.previousRect&&b.currentRect});if(1<=a.length){a=a[0];if(a.previousRect.topa.currentRect.top)return 1}return 0} +function Rm(a){return Sm(a,function(b){return b.currentRect})}function Pm(a){return Sm(a,function(b){return b.previousRect})}function Sm(a,b){return a.sources.reduce(function(c,d){d=b(d);return c?d&&0!==d.width*d.height?d.topf.N&&(f.N=Number(e.value));f.O+=1;var g=Nm(e,c,d);g&&(f.m+=e.value,f.xa++);if(5E3f.R&&(f.R=f.h,f.Ca=f.i,f.Ba=e.startTime+e.duration)}break;case "largest-contentful-paint":a.va=Math.floor(e.renderTime||e.loadTime);a.ua=e.size;break;case "first-input":a.sa=Number((e.processingStart-e.startTime).toFixed(3));a.ta=!0;break;case "longtask":e=Math.max(0,e.duration-50),a.A+=e,a.M=Math.max(a.M,e),a.P+=1}})));return a.l} +function Wm(a){var b=Im(641,function(){var f=document;2==(Q(Bh)&&f.prerendering?3:{visible:1,hidden:2,prerender:3,preview:4,unloaded:5}[f.visibilityState||f.webkitVisibilityState||f.mozVisibilityState||""]||0)&&an(a)}),c=Im(641,function(){return void an(a)});document.addEventListener("visibilitychange",b);document.addEventListener("unload",c);var d=R(Gh),e;0=d||0>=a?!1:100*d*a/((b.right-b.left)*(b.bottom-b.top))>=c} +function $m(){var a=[].concat(ma(document.getElementsByTagName("iframe"))).filter(Mm),b=[].concat(ma(Lm())).map(function(c){return document.getElementById(c)}).filter(function(c){return null!==c});Xm=window.scrollX;Ym=window.scrollY;return Zm=[].concat(ma(a),ma(b)).map(function(c){return c.getBoundingClientRect()})}var Xm=void 0,Ym=void 0,Zm=[];function bn(a){a=void 0===a?window:a;return!a.PeriodicSyncManager}function cn(){var a=void 0===a?window:a;if(!bn(a)&&Q(Ih)||bn(a)&&Q(Jh)){a=a.navigator.userAgent;var b=/Chrome/.test(a);return/Android/.test(a)&&b}return!1} +var X={issuerOrigin:"https://attestation.android.com",issuancePath:"/att/i",redemptionPath:"/att/r",shouldRedeemToken:function(){return cn()},shouldRequestToken:function(){return cn()}},Y={issuerOrigin:"https://pagead2.googlesyndication.com",issuancePath:"/dtt/i",redemptionPath:"/dtt/r",getStatePath:"/dtt/s",shouldRedeemToken:function(){return!0},shouldRequestToken:function(){return!0}};var dn=K(Rh).h(Oh.h,Oh.defaultValue);function en(a){a=void 0===a?!1:a;kj.call(this);var b=this;this.h=a;a=[];cn()&&a.push(X);Q(Lh)&&a.push(Y);if(document.hasTrustToken&&!Q(Kh)&&!Array.isArray(window.goog_tt_state)){var c=a.map(function(d){return{issuerOrigin:d.issuerOrigin,state:b.h?1:12}});Object.defineProperty(window,"goog_tt_state",{configurable:!1,get:function(){return c.slice()}})}}u(en,kj);function fn(){var a=void 0===a?window.document:a;Sc(dn,a)} +function gn(a,b){return Q(Mh)||a&&(Q(Ph)||".google.de"!=b)||".google.ch"===b||"function"===typeof I.__tcfapi}function Z(a,b,c){var d=p(window.goog_tt_state,"find").call(window.goog_tt_state,function(e){return e.issuerOrigin===a});d&&(d.state=b,void 0!=c&&(d.hasRedemptionRecord=c))}function hn(){var a=window.goog_tt_state;return Array.isArray(a)&&a.some(function(b){return 1!=b.state})} +function jn(){var a=X.issuerOrigin+X.redemptionPath,b={keepalive:!0,trustToken:{type:"token-redemption",issuer:X.issuerOrigin,refreshPolicy:"none"}};Z(X.issuerOrigin,2);return window.fetch(a,b).then(function(c){if(!c.ok)throw Error(c.status+": Network response was not ok!");Z(X.issuerOrigin,6,!0)}).catch(function(c){c&&"NoModificationAllowedError"===c.name?Z(X.issuerOrigin,6,!0):Z(X.issuerOrigin,5)})} +function kn(){var a=X.issuerOrigin+X.issuancePath;Z(X.issuerOrigin,8);return window.fetch(a,{keepalive:!0,trustToken:{type:"token-request"}}).then(function(b){if(!b.ok)throw Error(b.status+": Network response was not ok!");Z(X.issuerOrigin,10);return jn()}).catch(function(b){if(b&&"NoModificationAllowedError"===b.name)return Z(X.issuerOrigin,10),jn();Z(X.issuerOrigin,9)})}function ln(){Z(X.issuerOrigin,13);return document.hasTrustToken(X.issuerOrigin).then(function(a){return a?jn():kn()})} +function mn(){Z(Y.issuerOrigin,13);if(n.Promise){var a=document.hasTrustToken(Y.issuerOrigin).then(function(e){return e}).catch(function(e){return n.Promise.reject({state:19,error:e})}),b=Y.issuerOrigin+Y.redemptionPath,c={keepalive:!0,trustToken:{type:"token-redemption",refreshPolicy:"none"}};Z(Y.issuerOrigin,16);a=a.then(function(e){return window.fetch(b,c).then(function(f){if(!f.ok)throw Error(f.status+": Network response was not ok!");Z(Y.issuerOrigin,18,!0)}).catch(function(f){if(f&&"NoModificationAllowedError"=== +f.name)Z(Y.issuerOrigin,18,!0);else{if(e)return n.Promise.reject({state:17,error:f});Z(Y.issuerOrigin,17)}})}).then(function(){return document.hasTrustToken(Y.issuerOrigin).then(function(e){return e}).catch(function(e){return n.Promise.reject({state:19,error:e})})}).then(function(e){var f=Y.issuerOrigin+Y.getStatePath;Z(Y.issuerOrigin,20);return window.fetch(f+"?ht="+e,{trustToken:{type:"send-redemption-record",issuers:[Y.issuerOrigin]}}).then(function(g){if(!g.ok)throw Error(g.status+": Network response was not ok!"); +Z(Y.issuerOrigin,22);return g.text().then(function(h){return JSON.parse(h)})}).catch(function(g){return n.Promise.reject({state:21,error:g})})});var d=Tc(window);return a.then(function(e){var f=Y.issuerOrigin+Y.issuancePath;return e&&e.srqt&&e.cs?(Z(Y.issuerOrigin,23),window.fetch(f+"?cs="+e.cs+"&correlator="+d,{keepalive:!0,trustToken:{type:"token-request"}}).then(function(g){if(!g.ok)throw Error(g.status+": Network response was not ok!");Z(Y.issuerOrigin,25);return e}).catch(function(g){return n.Promise.reject({state:24, +error:g})})):e}).then(function(e){if(e&&e.srdt&&e.cs)return Z(Y.issuerOrigin,26),window.fetch(b+"?cs="+e.cs+"&correlator="+d,{keepalive:!0,trustToken:{type:"token-redemption",refreshPolicy:"refresh"}}).then(function(f){if(!f.ok)throw Error(f.status+": Network response was not ok!");Z(Y.issuerOrigin,28,!0)}).catch(function(f){return n.Promise.reject({state:27,error:f})})}).then(function(){Z(Y.issuerOrigin,29)}).catch(function(e){if(e instanceof Object&&e.hasOwnProperty("state")&&e.hasOwnProperty("error"))if("number"=== +typeof e.state&&e.error instanceof Error){Z(Y.issuerOrigin,e.state);var f=R(Nh);Math.random()<=f&&ed({state:e.state,err:e.error.toString()},"dtt_err")}else throw Error(e);else throw e;})}} +function nn(a){if(document.hasTrustToken&&!Q(Kh)&&a.h){if(hn())return window.goog_tt_promise;a=[];cn()&&a.push(ln());Q(Lh)&&a.push(mn());if(n.Promise&&n.Promise.all)return a=n.Promise.all(a),"object"!=typeof window.goog_tt_promise&&Object.defineProperty(window,"goog_tt_promise",{configurable:!1,value:a,writable:!1}),a}};var on="platform platformVersion architecture model uaFullVersion bitness".split(" ");function pn(){return I.navigator&&I.navigator.userAgentData&&"function"===typeof I.navigator.userAgentData.getHighEntropyValues?I.navigator.userAgentData.getHighEntropyValues(on).then(function(a){var b=new Cj;b=B(b,1,a.platform);b=B(b,2,a.platformVersion);b=B(b,3,a.architecture);b=B(b,4,a.model);b=B(b,5,a.uaFullVersion);return B(b,9,a.bitness)}):null};function qn(a,b){b.google_ad_host||(a=a.document.querySelector('meta[name="google-adsense-platform-account"]'))&&(b.google_ad_host=a.getAttribute("content"))}function rn(a,b,c){c=void 0===c?"":c;I.google_sa_impl&&!I.document.getElementById("google_shimpl")&&(I.google_sa_queue=null,I.google_sl_win=null,I.google_sa_impl=null);I.google_sa_queue||(I.google_sa_queue=[],I.google_sl_win=I,I.google_process_slots=kf(215,function(){return sn(I)}),a=tn(c,a,b),yc(I.document,a).id="google_shimpl")} +function sn(a){var b=a.google_sa_queue,c=b.shift();a.google_sa_impl||lf("shimpl",{t:"no_fn"});"function"===typeof c&&jf(216,c);b.length&&a.setTimeout(kf(215,function(){return sn(a)}),0)}function un(a,b,c){a.google_sa_queue=a.google_sa_queue||[];a.google_sa_impl?c(b):a.google_sa_queue.push(b)} +function tn(a,b,c){var d=Math.random()b.length;++g)b.push(e.frames[g])}catch(l){}}for(b=0;bc?e-c:1;a.google_sv_map=a.google_sv_map||{};a.google_sv_map[f]=b;b.dninfo=b.google_loader_used;c=(d=!!a.document.getElementById(f+"_anchor"))?function(h){return h()}:function(h){return window.setTimeout(h,0)};b.dninfo+="_"+d;var g={pubWin:a,iframeWin:null,vars:b};un(a,function(){var h=!!a.document.getElementById(f+"_anchor");b.dninfo+="_"+h; +(h=a.google_sa_impl(g))&&h.catch&&h.catch(mf(911))},c)} +function zn(a,b,c){var d=c.google_ad_output,e=c.google_ad_format,f=c.google_ad_width||0,g=c.google_ad_height||0;e||"html"!=d&&null!=d||(e=f+"x"+g);d=!c.google_ad_slot||c.google_override_format||!uk[c.google_ad_width+"x"+c.google_ad_height]&&"aa"==c.google_loader_used;e&&d?e=e.toLowerCase():e="";c.google_ad_format=e;if("number"!==typeof c.google_reactive_sra_index||!c.google_ad_unit_key){e=[c.google_ad_slot,c.google_orig_ad_format||c.google_ad_format,c.google_ad_type,c.google_orig_ad_width||c.google_ad_width, +c.google_orig_ad_height||c.google_ad_height];d=[];f=0;for(g=b;g&&25>f;g=g.parentNode,++f)9===g.nodeType?d.push(""):d.push(g.id);(d=d.join())&&e.push(d);c.google_ad_unit_key=Gc(e.join(":")).toString();var h=void 0===h?!1:h;e=[];for(d=0;b&&25>d;++d){f="";void 0!==h&&h||(f=(f=9!==b.nodeType&&b.id)?"/"+f:"");a:{if(b&&b.nodeName&&b.parentElement){g=b.nodeName.toString().toLowerCase();for(var k=b.parentElement.childNodes,l=0,m=0;me;++e){var x=t.frames;for(d=0;df){var g=parseInt(a.style.height,10);e=!!uk[e+"x"+g];var h=f;if(e){var k=vk(f,g);if(k)h=k,b.google_ad_format=k+"x"+g+"_0ads_al";else throw new J("No slot size for availableWidth="+f);}b.google_ad_resize=!0;b.google_ad_width=h;e||(b.google_ad_format=null,b.google_override_format=!0);f=h;a.style.width=f+"px";g=Xk(f,"auto",c,a,b);h=f;g.size().i(c,b, +a);zk(g,h,b);g=g.size();b.google_responsive_formats=null;g.minWidth()>f&&!e&&(b.google_ad_width=g.minWidth(),a.style.width=g.minWidth()+"px")}}e=a.offsetWidth||ii(a,c,"width",H)||b.google_ad_width||0;f=Fa(Xk,e,"auto",c,a,b,!1,!0);!(g=Q(ih)||!(488>tf(c))&&!Q(qh))&&(g=Q(sh))&&(g=c===c.top,g||(xc(c)?b.gfwrnwer=3:b.gfwrnwer=16,g=!1),g=!g);if(g)d=!1;else{g=xc(c)||c;h=b.google_ad_client;d=g.location&&"#ftptohbh"===g.location.hash?2:fk(g.location,"google_responsive_slot_preview")||Q(rh)?1:Q(ph)?2:El(g,1, +h,d)?1:0;if(g=0!==d)b:if(b.google_reactive_ad_format||cl(c,b)||Zh(a,b))g=!1;else{for(g=a;g;g=g.parentElement){h=Ac(g,c);if(!h){b.gfwrnwer=18;g=!1;break b}if(!Xa(["static","relative"],h.position)){b.gfwrnwer=17;g=!1;break b}}if(!Q(qh)&&(g=ci(c,a,e,.3,b),!0!==g)){b.gfwrnwer=g;g=!1;break b}g=c===c.top?!0:!1}g?(b.google_resizing_allowed=!0,b.ovlp=!0,2===d?(d={},zk(f(),e,d),b.google_resizing_width=d.google_ad_width,b.google_resizing_height=d.google_ad_height,b.iaaso=!1):(b.google_ad_format="auto",b.iaaso= +!0,b.armr=1),d=!0):d=!1}if(e=cl(c,b))el(e,a,b,c,d);else{if(Zh(a,b)){if(d=Ac(a,c))a.style.width=d.width,a.style.height=d.height,Yh(d,b);b.google_ad_width||(b.google_ad_width=a.offsetWidth);b.google_ad_height||(b.google_ad_height=a.offsetHeight);b.google_loader_features_used=256;b.google_responsive_auto_format=En(c)}else Yh(a.style,b);c.location&&"#gfwmrp"==c.location.hash||12==b.google_responsive_auto_format&&"true"==b.google_full_width_responsive?el(10,a,b,c,!1):.01>Math.random()&&12===b.google_responsive_auto_format&& +(a=di(a.offsetWidth||parseInt(a.style.width,10)||b.google_ad_width,c,a,b),!0!==a?(b.efwr=!1,b.gfwrnwer=a):b.efwr=!0)}};function Gn(a){var b=window;var c=void 0===c?null:c;kc(b,"message",function(d){try{var e=JSON.parse(d.data)}catch(f){return}!e||"sc-cnf"!==e.googMsgType||c&&/[:|%3A]javascript\(/i.test(d.data)&&!c(e,d)||a(e,d)})};function Hn(a,b){b=void 0===b?500:b;kj.call(this);this.i=a;this.Ra=b;this.h=null;this.m={};this.l=null}u(Hn,kj);Hn.prototype.j=function(){this.m={};this.l&&(lc(this.i,this.l),delete this.l);delete this.m;delete this.i;delete this.h;kj.prototype.j.call(this)};function In(a){kj.call(this);this.h=a;this.i=null;this.l=!1}u(In,kj);var Jn=null,Kn=[],Ln=new n.Map,Mn=-1;function Nn(a){return qi.test(a.className)&&"done"!=a.dataset.adsbygoogleStatus}function On(a,b,c){a.dataset.adsbygoogleStatus="done";Pn(a,b,c)} +function Pn(a,b,c){var d=window,e=Af();e.google_spfd||(e.google_spfd=Fn);(e=b.google_reactive_ads_config)||Fn(a,b,d,c);qn(d,b);if(!Qn(a,b,d)){e||(d.google_lpabyc=$h(a,d)+ii(a,d,"height",H));if(e){e=e.page_level_pubvars||{};if(U(I).page_contains_reactive_tag&&!U(I).allow_second_reactive_tag){if(e.pltais){dk(!1);return}throw new J("Only one 'enable_page_level_ads' allowed per page.");}U(I).page_contains_reactive_tag=!0;dk(7===e.google_pgb_reactive)}b.google_unique_id=wf(d);Fc(um,function(f,g){b[g]= +b[g]||d[g]});b.google_loader_used="aa";b.google_reactive_tag_first=1===(U(I).first_tag_on_page||0);jf(164,function(){xn(d,b,a,c)})}} +function Qn(a,b,c){var d=b.google_reactive_ads_config,e="string"===typeof a.className&&RegExp("(\\W|^)adsbygoogle-noablate(\\W|$)").test(a.className),f=ak(c);if(f&&f.Da&&"on"!=b.google_adtest&&!e){e=$h(a,c);var g=sf(c).clientHeight;if(!f.oa||f.oa&&((0==g?null:e/g)||0)>=f.oa)return a.className+=" adsbygoogle-ablated-ad-slot",c=c.google_sv_map=c.google_sv_map||{},d=za(a),b.google_element_uid=d,c[b.google_element_uid]=b,a.setAttribute("google_element_uid",d),"slot"==f.pb&&(null!==Mc(a.getAttribute("width"))&& +a.setAttribute("width",0),null!==Mc(a.getAttribute("height"))&&a.setAttribute("height",0),a.style.width="0px",a.style.height="0px"),!0}if((f=Ac(a,c))&&"none"==f.display&&!("on"==b.google_adtest||0 + + + + + 召唤神龙 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + +
      + + + + + + +
      + + + +
      + +
      + +
      + + + + + + + + + + + + + + + + diff --git a/main.js b/main.js new file mode 100644 index 0000000..47d5398 --- /dev/null +++ b/main.js @@ -0,0 +1,164 @@ +var loadingNum = 0; +window.boot = function () { + var settings = window._CCSettings; + window._CCSettings = undefined; + var onProgress = null; + + var RESOURCES = cc.AssetManager.BuiltinBundleName.RESOURCES; + var INTERNAL = cc.AssetManager.BuiltinBundleName.INTERNAL; + var MAIN = cc.AssetManager.BuiltinBundleName.MAIN; + + + function setLoadingDisplay () { + // Loading splash scene + var splash = document.getElementById('splash'); + var loadintT = document.getElementById("loadingText") + // var progressBar = splash.querySelector('.progress-bar span'); + cc.loader.onProgress = function (finish, total, item) { + loadData.completedCount = finish; + loadData.totalCount = total; + + var percent = 100 * finish / total; + if(loadingNum >= 1 && total > 1){ + if(percent.toFixed(0) >= 100){ + loadintT.innerHTML = 'loading......100' + '%'; + clearInterval(timer); + setTimeout(function(){ + loadintT.remove(); + },0.1 * 1000); + } + } + loadingNum++; + }; + splash.style.display = 'block'; + // progressBar.style.width = '0%'; + + cc.director.once(cc.Director.EVENT_AFTER_SCENE_LAUNCH, function () { + splash.style.display = 'none'; + }); + } + + var onStart = function () { + + cc.view.enableRetina(true); + cc.view.resizeWithBrowserSize(true); + + if (cc.sys.isBrowser) { + setLoadingDisplay(); + } + + if (cc.sys.isMobile) { + if (settings.orientation === 'landscape') { + cc.view.setOrientation(cc.macro.ORIENTATION_LANDSCAPE); + } + else if (settings.orientation === 'portrait') { + cc.view.setOrientation(cc.macro.ORIENTATION_PORTRAIT); + } + // cc.view.enableAutoFullScreen([ + // cc.sys.BROWSER_TYPE_BAIDU, + // cc.sys.BROWSER_TYPE_BAIDU_APP, + // cc.sys.BROWSER_TYPE_WECHAT, + // cc.sys.BROWSER_TYPE_MOBILE_QQ, + // cc.sys.BROWSER_TYPE_MIUI, + // cc.sys.BROWSER_TYPE_HUAWEI, + // cc.sys.BROWSER_TYPE_UC, + // ].indexOf(cc.sys.browserType) < 0); + cc.view.enableAutoFullScreen(false); + } + + // Limit downloading max concurrent task to 2, + // more tasks simultaneously may cause performance draw back on some android system / browsers. + // You can adjust the number based on your own test result, you have to set it before any loading process to take effect. + if (cc.sys.isBrowser && cc.sys.os === cc.sys.OS_ANDROID) { + cc.assetManager.downloader.maxConcurrency = 2; + cc.assetManager.downloader.maxRequestsPerFrame = 2; + } + + var launchScene = settings.launchScene; + var bundle = cc.assetManager.bundles.find(function (b) { + return b.getSceneInfo(launchScene); + }); + var canvas; + if (cc.sys.isBrowser) { + canvas = document.getElementById('GameCanvas'); + } + + var MainManger = __require("MainManage"); + MainManger.init(launchScene,cc.sys.isBrowser,canvas.style.visibility); + // bundle.loadScene(launchScene, null, onProgress, + // function (err, scene) { + // if (!err) { + // cc.director.runSceneImmediate(scene); + // if (cc.sys.isBrowser) { + // // show canvas + // var canvas = document.getElementById('GameCanvas'); + // canvas.style.visibility = ''; + // var div = document.getElementById('GameDiv'); + // if (div) { + // div.style.backgroundImage = ''; + // } + // console.log('Success to load scene: ' + launchScene); + // } + // } + // } + // ); + }; + + var option = { + id: 'GameCanvas', + debugMode: settings.debug ? cc.debug.DebugMode.INFO : cc.debug.DebugMode.ERROR, + showFPS: settings.debug, + frameRate: 60, + groupList: settings.groupList, + collisionMatrix: settings.collisionMatrix, + }; + + cc.assetManager.init({ + bundleVers: settings.bundleVers, + remoteBundles: settings.remoteBundles, + server: settings.server + }); + + var bundleRoot = [INTERNAL]; + settings.hasResourcesBundle && bundleRoot.push(RESOURCES); + + var count = 0; + function cb (err) { + if (err) return console.error(err.message, err.stack); + count++; + if (count === bundleRoot.length + 1) { + cc.assetManager.loadBundle(MAIN, function (err) { + if (!err) cc.game.run(option, onStart); + }); + } + } + + cc.assetManager.loadScript(settings.jsList.map(function (x) { return 'src/' + x;}), cb); + + for (var i = 0; i < bundleRoot.length; i++) { + cc.assetManager.loadBundle(bundleRoot[i], cb); + } +}; + +if (window.jsb) { + var isRuntime = (typeof loadRuntime === 'function'); + if (isRuntime) { + require('src/settings.js'); + require('src/cocos2d-runtime.js'); + if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) { + require('src/physics.js'); + } + require('jsb-adapter/engine/index.js'); + } + else { + require('src/settings.js'); + require('src/cocos2d-jsb.js'); + if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) { + require('src/physics.js'); + } + require('jsb-adapter/jsb-engine.js'); + } + + cc.macro.CLEANUP_IMAGE_CACHE = true; + window.boot(); +} \ No newline at end of file diff --git a/res/loading.gif b/res/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..915c1984cb8541c40f28762a09970b6578632aa3 GIT binary patch literal 3897 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 literal 0 HcmV?d00001 diff --git a/settings.js b/settings.js new file mode 100644 index 0000000..7bd7b50 --- /dev/null +++ b/settings.js @@ -0,0 +1 @@ +window._CCSettings={platform:"web-mobile",groupList:["default","move","UI","fish"],collisionMatrix:[[true,true,true,true],[true,true,null,true],[true,false,false],[true,true,false,false]],hasResourcesBundle:true,hasStartSceneBundle:false,remoteBundles:[],subpackages:[],launchScene:"db://assets/Scene/MainGameScene.fire",orientation:"portrait",jsList:[],bundleVers:{internal:"803f8",resources:"93f29",main:"fbdd2"}}; \ No newline at end of file diff --git a/singleColor.png b/singleColor.png new file mode 100644 index 0000000000000000000000000000000000000000..fa6376e6316ae9bd38595b550b5fdf78a6fa6d6b GIT binary patch literal 82 zcmeAS@N?(olHy`uVBq!ia0y~yU|<4aMrH;E29JvQ=?n}E%mF?juK)l4Uw%aT1Oo#D hm#2$k2*>qgkU|y)Mukhd`3wvU44$rjF6*2UngE$#5+ncs literal 0 HcmV?d00001 diff --git a/src/settings.js b/src/settings.js new file mode 100644 index 0000000..7bd7b50 --- /dev/null +++ b/src/settings.js @@ -0,0 +1 @@ +window._CCSettings={platform:"web-mobile",groupList:["default","move","UI","fish"],collisionMatrix:[[true,true,true,true],[true,true,null,true],[true,false,false],[true,true,false,false]],hasResourcesBundle:true,hasStartSceneBundle:false,remoteBundles:[],subpackages:[],launchScene:"db://assets/Scene/MainGameScene.fire",orientation:"portrait",jsList:[],bundleVers:{internal:"803f8",resources:"93f29",main:"fbdd2"}}; \ No newline at end of file diff --git a/style-mobile.css b/style-mobile.css new file mode 100644 index 0000000..65a314a --- /dev/null +++ b/style-mobile.css @@ -0,0 +1,127 @@ +html { + -ms-touch-action: none; +} + +body, canvas, div { + display: block; + outline: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + -khtml-user-select: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +/* Remove spin of input type number */ +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + /* display: none; <- Crashes Chrome on hover */ + -webkit-appearance: none; + margin: 0; /* <-- Apparently some margin are still there even though it's hidden */ +} + +body { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0; + border: 0; + margin: 0; + + cursor: default; + color: #888; + background-color: #333; + + text-align: center; + font-family: Helvetica, Verdana, Arial, sans-serif; + + display: flex; + flex-direction: column; + + /* fix bug: https://github.com/cocos-creator/2d-tasks/issues/791 */ + /* overflow cannot be applied in Cocos2dGameContainer, + otherwise child elements will be hidden when Cocos2dGameContainer rotated 90 deg */ + overflow: hidden; +} + +#Cocos2dGameContainer { + position: absolute; + margin: 0; + left: 0px; + top: 0px; + + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: center; + -webkit-box-pack: center; +} + +canvas { + background-color: rgba(0, 0, 0, 0); +} + +a:link, a:visited { + color: #666; +} + +a:active, a:hover { + color: #666; +} + +p.header { + font-size: small; +} + +p.footer { + font-size: x-small; +} + +#splash { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #ffffff url(./singleColor.png) no-repeat center; + background-size: 100%; +} + +.progress-bar { + background-color: #1a1a1a; + position: absolute; + left: 25%; + top: 80%; + height: 15px; + padding: 5px; + width: 50%; + /*margin: 0 -175px; */ + border-radius: 5px; + box-shadow: 0 1px 5px #000 inset, 0 1px 0 #444; +} + +.progress-bar span { + display: block; + height: 100%; + border-radius: 3px; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset; + transition: width .4s ease-in-out; + background-color: #34c2e3; +} + +.stripes span { + background-size: 30px 30px; + background-image: linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%, + transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, + transparent 75%, transparent); + + animation: animate-stripes 1s linear infinite; +} + +@keyframes animate-stripes { + 0% {background-position: 0 0;} 100% {background-position: 60px 0;} +}

      Hp;wStGbM#EB#niYU0e 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 vp@jj>umNgk literal 0 HcmV?d00001 diff --git a/assets/main/native/c6/c6961c9e-ea38-4407-bb17-8d485d15154f.75d5c.png b/assets/main/native/c6/c6961c9e-ea38-4407-bb17-8d485d15154f.75d5c.png new file mode 100644 index 0000000000000000000000000000000000000000..a46cd11c6f8e69c9f74cb730668fc76e356fe7f8 GIT binary patch literal 48602 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