From 591f398085e4d43faaf8b9447c3f6c192d7b5897 Mon Sep 17 00:00:00 2001 From: han_han9 Date: Fri, 10 Oct 2025 22:33:40 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=20=E6=B5=8B=E8=AF=95=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/web-mobile/assets/internal/config.json | 2 +- .../assets/internal/import/05/05ebfd70c.json | 1 + .../assets/internal/import/06/0619905d3.json | 1 - .../OpenSans-Regular.ttf | Bin 0 -> 217360 bytes .../OpenSans-Italic.ttf | Bin 0 -> 212896 bytes .../OpenSans-BoldItalic.ttf | Bin 0 -> 213292 bytes .../OpenSans-Bold.ttf | Bin 0 -> 224592 bytes build/web-mobile/assets/main/config.json | 2 +- .../ba21476f-2866-4f81-9c4d-6e359316e448.json | 1 - .../cocos-js/_virtual_cc-tJPAyuI0.js | 1 + .../assets/bullet.release.wasm-BWZhVGCB.wasm | Bin 0 -> 469148 bytes .../assets/meshopt_decoder.wasm-Dt74TiIT.wasm | Bin 0 -> 4895 bytes .../cocos-js/assets/spine-BUh5FZoK.wasm | Bin 0 -> 201755 bytes .../cocos-js/assets/spine.js.mem-DnIU7NNm.bin | Bin 0 -> 19853 bytes .../cocos-js/bullet.release.asm-7Qravfvx.js | 1 + .../cocos-js/bullet.release.wasm-CDcKKiom.js | 1 + .../cocos-js/bullet.release.wasm-vGDNSL-o.js | 1 + build/web-mobile/cocos-js/cc.js | 2 +- .../cocos-js/meshopt_decoder.asm-aNd0r3pq.js | 1 + .../cocos-js/meshopt_decoder.wasm-Cvy1kpGq.js | 1 + .../cocos-js/meshopt_decoder.wasm-DKe5VOQW.js | 1 + build/web-mobile/cocos-js/spine-B64FaKrv.js | 1 + .../web-mobile/cocos-js/spine.asm-CuMHFj9t.js | 1 + build/web-mobile/cocos-js/spine.js-BXJrVNao.js | 1 + .../web-mobile/cocos-js/spine.wasm-Bnkn32to.js | 1 + build/web-mobile/src/settings.json | 2 +- 26 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 build/web-mobile/assets/internal/import/05/05ebfd70c.json delete mode 100644 build/web-mobile/assets/internal/import/06/0619905d3.json create mode 100644 build/web-mobile/assets/internal/native/08/0835f102-5471-47a3-9a76-01c07ac9cdb2/OpenSans-Regular.ttf create mode 100644 build/web-mobile/assets/internal/native/0e/0ed97c56-390e-4dd1-96b7-e7f2d93a98ed/OpenSans-Italic.ttf create mode 100644 build/web-mobile/assets/internal/native/b2/b23391b6-52eb-46a6-8da1-6244d9d315fb/OpenSans-BoldItalic.ttf create mode 100644 build/web-mobile/assets/internal/native/b5/b5475517-23b9-4873-bc1a-968d96616081/OpenSans-Bold.ttf delete mode 100644 build/web-mobile/assets/main/import/ba/ba21476f-2866-4f81-9c4d-6e359316e448.json create mode 100644 build/web-mobile/cocos-js/_virtual_cc-tJPAyuI0.js create mode 100644 build/web-mobile/cocos-js/assets/bullet.release.wasm-BWZhVGCB.wasm create mode 100644 build/web-mobile/cocos-js/assets/meshopt_decoder.wasm-Dt74TiIT.wasm create mode 100644 build/web-mobile/cocos-js/assets/spine-BUh5FZoK.wasm create mode 100644 build/web-mobile/cocos-js/assets/spine.js.mem-DnIU7NNm.bin create mode 100644 build/web-mobile/cocos-js/bullet.release.asm-7Qravfvx.js create mode 100644 build/web-mobile/cocos-js/bullet.release.wasm-CDcKKiom.js create mode 100644 build/web-mobile/cocos-js/bullet.release.wasm-vGDNSL-o.js create mode 100644 build/web-mobile/cocos-js/meshopt_decoder.asm-aNd0r3pq.js create mode 100644 build/web-mobile/cocos-js/meshopt_decoder.wasm-Cvy1kpGq.js create mode 100644 build/web-mobile/cocos-js/meshopt_decoder.wasm-DKe5VOQW.js create mode 100644 build/web-mobile/cocos-js/spine-B64FaKrv.js create mode 100644 build/web-mobile/cocos-js/spine.asm-CuMHFj9t.js create mode 100644 build/web-mobile/cocos-js/spine.js-BXJrVNao.js create mode 100644 build/web-mobile/cocos-js/spine.wasm-Bnkn32to.js diff --git a/build/web-mobile/assets/internal/config.json b/build/web-mobile/assets/internal/config.json index 343d578..ddb5bee 100644 --- a/build/web-mobile/assets/internal/config.json +++ b/build/web-mobile/assets/internal/config.json @@ -1 +1 @@ -{"importBase":"import","nativeBase":"native","name":"internal","deps":[],"uuids":["0619905d3","97CwWYvLBHFJH7LoFEDczY","a3zQCfCrBCDZJ4uf2rk5u8","bc1kzGLdlD9qu+ZjGNMyAy","d9MFkNu5JMyIvRI80Cf57f"],"paths":{"1":["db:/internal/effects/util/splash-screen",0,1],"2":["db:/internal/effects/builtin-unlit",0,1],"3":["db:/internal/default_materials/missing-effect-material",1,1],"4":["db:/internal/default_materials/missing-material",1,1]},"scenes":{},"packs":{"0619905d3":[1,2,3,4]},"versions":{"import":[],"native":[]},"redirect":[],"debug":false,"extensionMap":{},"hasPreloadScript":true,"dependencyRelationships":{},"types":["cc.EffectAsset","cc.Material"]} \ No newline at end of file +{"importBase":"import","nativeBase":"native","name":"internal","deps":[],"uuids":["05ebfd70c","08HKsx3M1CjoZS8kBMyBxH","08NfECVHFHo5p2AcB6yc2y","0e2XxWOQ5N0Za35/LZOpjt","142hclxMJCtKsI7grraJiz","173rzDCmtLirAL3Fi4hVge","1cAq5vRJJJFbj4dJKjseTN","1dCO9ipQNM4ouaRskIc/fT","4btIDdg4RLyZh/3mfMUwUq","509DSLyINOL48RziM7hZ+h","51HSYzCadL3axC93gDISSz","5dRaoA4GRJOLMUQmXwwiWM","609xlc7CpF67qUiVX2DoHQ","71Hr4R9nNM2ZqDY8YLpUxb","784FhKQ0NHJ4834U5lwqLb","81Dpbk5FZEaJtZ9OjzlzLA","87HDtsc3lBnb2jeUsjmrkN","8bvbzdXNRBALbVt8liW2EH","93Yf2QulJPhKqTboeP1XbK","97CwWYvLBHFJH7LoFEDczY","97G9sjP/ZD67QiHDAWWjZj","a3zQCfCrBCDZJ4uf2rk5u8","b2M5G2UutGpo2hYkTZ0xX7","b5R1UXI7lIc7walo2WYWCB","b51hFfA3BNfKrTwZTMcc+Y","baIUdvKGZPgZxNbjWTFuRI","bc1kzGLdlD9qu+ZjGNMyAy","c0FDkGmu1EfpQ2KuhRLRtu","c2chXYaDVLaL+7verGEAwE","d1NGQ2rJZCcbhjH0/erZWw","d9MFkNu5JMyIvRI80Cf57f","d9k35ZYf5OxpKresWhnImw","ddOhRNq39B8IK4LkOgkNSW","e9qpo+WytKx6LHBz3isrJP","ef6OKj6s5Ce7Txy4qTfsd9","f0QW5oAgBLd6kmT50W5JTa","f9KAbXF2hEP6/oErzehNDw","fdoJXLgx1GAa2UhGATlj3o","ffm+GQIKROSLaMduPHz/CF"],"paths":{"1":["db:/internal/default_materials/default-trail-material",1,1],"2":["db:/internal/default_fonts/builtin-freetype/OpenSans-Regular",2,1],"3":["db:/internal/default_fonts/builtin-freetype/OpenSans-Italic",2,1],"4":["db:/internal/default_materials/default-particle-gpu-material",1,1],"5":["db:/internal/effects/particles/builtin-particle-trail",0,1],"6":["db:/internal/effects/internal/builtin-graphics",0,1],"7":["db:/internal/effects/legacy/terrain",0,1],"8":["db:/internal/effects/internal/builtin-geometry-renderer",0,1],"9":["db:/internal/default_materials/ui-alpha-test-material",1,1],"10":["db:/internal/effects/pipeline/skybox",0,1],"11":["db:/internal/effects/pipeline/deferred-lighting",0,1],"12":["db:/internal/effects/for2d/builtin-sprite",0,1],"13":["db:/internal/effects/particles/builtin-billboard",0,1],"14":["db:/internal/default_materials/default-billboard-material",1,1],"15":["db:/internal/effects/internal/builtin-clear-stencil",0,1],"16":["db:/internal/effects/util/profiler",0,1],"17":["db:/internal/default_materials/default-clear-stencil",1,1],"18":["db:/internal/effects/pipeline/planar-shadow",0,1],"19":["db:/internal/effects/util/splash-screen",0,1],"20":["db:/internal/effects/particles/builtin-particle-gpu",0,1],"21":["db:/internal/effects/builtin-unlit",0,1],"22":["db:/internal/default_fonts/builtin-freetype/OpenSans-BoldItalic",2,1],"23":["db:/internal/default_fonts/builtin-freetype/OpenSans-Bold",2,1],"24":["db:/internal/default_materials/default-spine-material",1,1],"25":["db:/internal/physics/default-physics-material",3,1],"26":["db:/internal/default_materials/missing-effect-material",1,1],"27":["db:/internal/default_materials/default-particle-material",1,1],"28":["db:/internal/effects/for2d/builtin-spine",0,1],"29":["db:/internal/effects/particles/builtin-particle",0,1],"30":["db:/internal/default_materials/missing-material",1,1],"31":["db:/internal/effects/internal/builtin-occlusion-query",0,1],"32":["db:/internal/default_materials/ui-sprite-gray-alpha-sep-material",1,1],"33":["db:/internal/default_materials/ui-base-material",1,1],"34":["db:/internal/default_materials/ui-sprite-gray-material",1,1],"35":["db:/internal/default_materials/ui-graphics-material",1,1],"36":["db:/internal/default_materials/ui-sprite-alpha-sep-material",1,1],"37":["db:/internal/default_materials/ui-sprite-material",1,1],"38":["db:/internal/effects/internal/builtin-debug-renderer",0,1]},"scenes":{},"packs":{"05ebfd70c":[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,32,33,34,35,36,37,38]},"versions":{"import":[],"native":[]},"redirect":[],"debug":false,"extensionMap":{},"hasPreloadScript":true,"dependencyRelationships":{},"types":["cc.EffectAsset","cc.Material","cc.TTFFont","cc.PhysicsMaterial"]} \ No newline at end of file diff --git a/build/web-mobile/assets/internal/import/05/05ebfd70c.json b/build/web-mobile/assets/internal/import/05/05ebfd70c.json new file mode 100644 index 0000000..7c7d520 --- /dev/null +++ b/build/web-mobile/assets/internal/import/05/05ebfd70c.json @@ -0,0 +1 @@ +[1,["609xlc7CpF67qUiVX2DoHQ","a3zQCfCrBCDZJ4uf2rk5u8","173rzDCmtLirAL3Fi4hVge","97G9sjP/ZD67QiHDAWWjZj","71Hr4R9nNM2ZqDY8YLpUxb","81Dpbk5FZEaJtZ9OjzlzLA","c2chXYaDVLaL+7verGEAwE","d1NGQ2rJZCcbhjH0/erZWw","1cAq5vRJJJFbj4dJKjseTN"],["_effectAsset"],[["cc.EffectAsset",["_name","shaders","techniques","combinations"],-1],["cc.Material",["_name","_props","_states","_defines"],-1],["cc.Material",["_name","_states","_defines","_props"],0,12],["cc.TTFFont",["_name","_native"],1],["cc.PhysicsMaterial",["_name","_friction","_rollingFriction","_spinningFriction","_restitution"],-2]],[[0,0,1,2,4],[1,0,1,2,3,5],[3,0,1,3],[2,0,1,2,3,4],[0,0,3,1,2,5],[4,0,1,2,3,4,6]],[[[[1,"default-trail-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{}]]],0,0,[0],[0],[2]],[[[2,"OpenSans-Regular","OpenSans-Regular.ttf"],-1],0,0,[],[],[]],[[[2,"OpenSans-Italic","OpenSans-Italic.ttf"],-1],0,0,[],[],[]],[[[1,"default-particle-gpu-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{}]]],0,0,[0],[0],[3]],[[[0,"particles/builtin-particle-trail",[{"hash":2100859085,"name":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|tinted-fs:add","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_texCoord","format":44,"location":1,"defines":[]},{"name":"a_texCoord1","format":32,"location":2,"defines":[]},{"name":"a_texCoord2","format":32,"location":3,"defines":[]},{"name":"a_color","format":44,"location":4,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump 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":"\n precision mediump float;\n layout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n };\n layout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n };\n vec4 CCFragOutput (vec4 color) {\n return color;\n }\n in vec2 uv;\n in vec4 color;\n #if CC_DRAW_WIRE_FRAME\n in vec3 vBarycentric;\n #endif\n uniform sampler2D mainTexture;\n layout(std140) uniform FragConstants {\n vec4 tintColor;\n };\n vec4 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 }\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = add(); }"},"glsl1":{"vert":"\nprecision mediump float;\n uniform vec4 mainTiling_Offset;\nuniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump 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":"\n precision mediump float;\n vec4 CCFragOutput (vec4 color) {\n return color;\n }\n varying vec2 uv;\n varying vec4 color;\n #if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n #endif\n uniform sampler2D mainTexture;\n uniform vec4 tintColor;\n vec4 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":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":60,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":43}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_DRAW_WIRE_FRAME","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"}]},{"hash":3093758986,"name":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|tinted-fs:multiply","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_texCoord","format":44,"location":1,"defines":[]},{"name":"a_texCoord1","format":32,"location":2,"defines":[]},{"name":"a_texCoord2","format":32,"location":3,"defines":[]},{"name":"a_color","format":44,"location":4,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump 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":"\n precision mediump float;\n layout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n };\n layout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n };\n vec4 CCFragOutput (vec4 color) {\n return color;\n }\n in vec2 uv;\n in vec4 color;\n #if CC_DRAW_WIRE_FRAME\n in vec3 vBarycentric;\n #endif\n uniform sampler2D mainTexture;\n layout(std140) uniform FragConstants {\n vec4 tintColor;\n };\n vec4 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 }\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = multiply(); }"},"glsl1":{"vert":"\nprecision mediump float;\n uniform vec4 mainTiling_Offset;\nuniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump 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":"\n precision mediump float;\n vec4 CCFragOutput (vec4 color) {\n return color;\n }\n varying vec2 uv;\n varying vec4 color;\n #if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n #endif\n uniform sampler2D mainTexture;\n uniform vec4 tintColor;\n vec4 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":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":60,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":43}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_DRAW_WIRE_FRAME","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"}]},{"hash":915995403,"name":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|no-tint-fs:addSmooth","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":1,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_texCoord","format":44,"location":1,"defines":[]},{"name":"a_texCoord1","format":32,"location":2,"defines":[]},{"name":"a_texCoord2","format":32,"location":3,"defines":[]},{"name":"a_color","format":44,"location":4,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":1,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump 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;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return 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}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = addSmooth(); }"},"glsl1":{"vert":"\nprecision mediump float;\n uniform vec4 mainTiling_Offset;\nuniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump 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 return 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":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":60,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_DRAW_WIRE_FRAME","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"}]},{"hash":2435723114,"name":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|no-tint-fs:premultiplied","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":1,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_texCoord","format":44,"location":1,"defines":[]},{"name":"a_texCoord1","format":32,"location":2,"defines":[]},{"name":"a_texCoord2","format":32,"location":3,"defines":[]},{"name":"a_color","format":44,"location":4,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":1,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump 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;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return 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}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = premultiplied(); }"},"glsl1":{"vert":"\nprecision mediump float;\n uniform vec4 mainTiling_Offset;\nuniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump 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 return 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":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":60,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_DRAW_WIRE_FRAME","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"}]}],[{"name":"add","passes":[{"program":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"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]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"alpha-blend","passes":[{"program":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"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]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"add-multiply","passes":[{"program":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|tinted-fs:multiply","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"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]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|tinted-fs:multiply","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"add-smooth","passes":[{"program":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|no-tint-fs:addSmooth","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|no-tint-fs:addSmooth","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"premultiply-blend","passes":[{"program":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|no-tint-fs:premultiplied","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle-trail|builtin/internal/particle-trail:vs_main|no-tint-fs:premultiplied","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[0,"internal/builtin-graphics",[{"hash":586721616,"name":"internal/builtin-graphics|vs:vert|fs:frag","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_color","format":44,"location":1,"defines":[]},{"name":"a_dist","format":11,"location":2,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":1,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":1,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\nin float a_dist;\nout float v_dist;\nvec4 vert () {\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 return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nin vec4 v_color;\nin float v_dist;\nvec4 frag () {\n vec4 o = v_color;\n float aa = fwidth(v_dist);\n float alpha = 1. - smoothstep(-aa, 0., abs(v_dist) - 1.0);\n o.rgb *= o.a;\n o *= alpha;\n return o;\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\nuniform highp mat4 cc_matViewProj;\nuniform highp mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\nattribute float a_dist;\nvarying float v_dist;\nvec4 vert () {\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 return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives: enable\n#endif\nprecision highp float;\nvarying vec4 v_color;\nvarying float v_dist;\nvec4 frag () {\n vec4 o = v_color;\n #ifdef GL_OES_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 return o;\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":56,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":0}},"defines":[]}],[{"passes":[{"program":"internal/builtin-graphics|vs:vert|fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":false,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[0,"legacy/terrain",[{"hash":1013815347,"name":"legacy/terrain|terrain-vs|terrain-fs","blocks":[{"name":"TexCoords","stageFlags":1,"binding":0,"members":[{"name":"UVScale","type":16,"count":1},{"name":"lightMapUVParam","type":16,"count":1}],"defines":[]},{"name":"PbrParams","stageFlags":16,"binding":1,"members":[{"name":"metallic","type":16,"count":1},{"name":"roughness","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"weightMap","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]},{"name":"detailMap0","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":3,"defines":[]},{"name":"detailMap1","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":4,"defines":[]},{"name":"detailMap2","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":5,"defines":[]},{"name":"detailMap3","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":6,"defines":[]},{"name":"normalMap0","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":7,"defines":[]},{"name":"normalMap1","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":8,"defines":[]},{"name":"normalMap2","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":9,"defines":[]},{"name":"normalMap3","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":10,"defines":[]}],"samplers":[],"textures":[],"buffers":[{"name":"b_ccLightsBuffer","memoryAccess":1,"stageFlags":16,"binding":11,"defines":["CC_FORWARD_ADD","CC_ENABLE_CLUSTERED_LIGHT_CULLING"]},{"name":"b_clusterLightIndicesBuffer","memoryAccess":1,"stageFlags":16,"binding":12,"defines":["CC_FORWARD_ADD","CC_ENABLE_CLUSTERED_LIGHT_CULLING"]},{"name":"b_clusterLightGridBuffer","memoryAccess":1,"stageFlags":16,"binding":13,"defines":["CC_FORWARD_ADD","CC_ENABLE_CLUSTERED_LIGHT_CULLING"]}],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_normal","format":32,"location":1,"defines":[]},{"name":"a_texCoord","format":21,"location":2,"defines":[]}],"fragColors":[{"name":"fragColorX","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":["CC_FORWARD_ADD"]},{"name":"albedoOut","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":1,"defines":["CC_FORWARD_ADD","CC_PIPELINE_TYPE"]},{"name":"emissiveOut","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":2,"defines":["CC_FORWARD_ADD","CC_PIPELINE_TYPE"]},{"name":"normalOut","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":3,"defines":["CC_FORWARD_ADD","CC_PIPELINE_TYPE"]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":17,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]},{"name":"CCSH","stageFlags":16,"tags":{"builtin":"local"},"members":[{"name":"cc_sh_linear_const_r","typename":"vec4","type":16,"count":1},{"name":"cc_sh_linear_const_g","typename":"vec4","type":16,"count":1},{"name":"cc_sh_linear_const_b","typename":"vec4","type":16,"count":1},{"name":"cc_sh_quadratic_r","typename":"vec4","type":16,"count":1},{"name":"cc_sh_quadratic_g","typename":"vec4","type":16,"count":1},{"name":"cc_sh_quadratic_b","typename":"vec4","type":16,"count":1},{"name":"cc_sh_quadratic_a","typename":"vec4","type":16,"count":1}],"defines":["CC_USE_LIGHT_PROBE","!USE_INSTANCING"]},{"name":"CCForwardLight","stageFlags":16,"tags":{"builtin":"local"},"members":[{"name":"cc_lightPos","typename":"vec4","type":16,"count":0,"precision":"highp ","isArray":true},{"name":"cc_lightColor","typename":"vec4","type":16,"count":0,"isArray":true},{"name":"cc_lightSizeRangeAngle","typename":"vec4","type":16,"count":0,"isArray":true},{"name":"cc_lightDir","typename":"vec4","type":16,"count":0,"isArray":true},{"name":"cc_lightBoundingSizeVS","typename":"vec4","type":16,"count":0,"isArray":true}],"defines":["CC_FORWARD_ADD","CC_ENABLE_CLUSTERED_LIGHT_CULLING"]}],"samplerTextures":[{"name":"cc_reflectionProbeCubemap","typename":"samplerCube","type":31,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_REFLECTION_PROBE"]},{"name":"cc_reflectionProbePlanarMap","typename":"sampler2D","type":28,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_REFLECTION_PROBE"]},{"name":"cc_reflectionProbeDataMap","typename":"sampler2D","type":28,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_REFLECTION_PROBE"]},{"name":"cc_lightingMap","typename":"sampler2D","type":28,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_LIGHTMAP","!CC_FORWARD_ADD"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"TexCoords","stageFlags":1,"binding":0,"members":[{"name":"UVScale","type":16,"count":1},{"name":"lightMapUVParam","type":16,"count":1}],"defines":[]},{"name":"PbrParams","stageFlags":16,"binding":1,"members":[{"name":"metallic","type":16,"count":1},{"name":"roughness","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"weightMap","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]},{"name":"detailMap0","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":3,"defines":[]},{"name":"detailMap1","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":4,"defines":[]},{"name":"detailMap2","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":5,"defines":[]},{"name":"detailMap3","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":6,"defines":[]},{"name":"normalMap0","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":7,"defines":[]},{"name":"normalMap1","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":8,"defines":[]},{"name":"normalMap2","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":9,"defines":[]},{"name":"normalMap3","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":10,"defines":[]}],"samplers":[],"textures":[],"buffers":[{"name":"b_ccLightsBuffer","memoryAccess":1,"stageFlags":16,"binding":11,"defines":["CC_FORWARD_ADD","CC_ENABLE_CLUSTERED_LIGHT_CULLING"]},{"name":"b_clusterLightIndicesBuffer","memoryAccess":1,"stageFlags":16,"binding":12,"defines":["CC_FORWARD_ADD","CC_ENABLE_CLUSTERED_LIGHT_CULLING"]},{"name":"b_clusterLightGridBuffer","memoryAccess":1,"stageFlags":16,"binding":13,"defines":["CC_FORWARD_ADD","CC_ENABLE_CLUSTERED_LIGHT_CULLING"]}],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCShadow","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matLightView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matLightViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_shadowInvProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowNFLSInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowWHPBInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowLPNNInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowColor","typename":"vec4","type":16,"count":1,"precision":"lowp "},{"name":"cc_planarNDInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCSM","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_csmViewDir0","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmViewDir1","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmViewDir2","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmAtlas","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_matCSMViewProj","typename":"mat4","type":25,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmProjDepthInfo","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmProjInfo","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmSplitsInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_SUPPORT_CASCADED_SHADOW_MAP"]}],"samplerTextures":[{"name":"cc_shadowMap","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":17,"sampleType":0,"tags":{"builtin":"global"},"defines":["CC_RECEIVE_SHADOW"]},{"name":"cc_spotShadowMap","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":17,"sampleType":0,"tags":{"builtin":"global"},"defines":["CC_RECEIVE_SHADOW"]},{"name":"cc_environment","typename":"samplerCube","type":31,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"global"},"defines":[]},{"name":"cc_diffuseMap","typename":"samplerCube","type":31,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"global"},"defines":["CC_USE_IBL","CC_USE_DIFFUSEMAP"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\n#if !CC_USE_ACCURATE_FOG\nout mediump float v_fog_factor;\n#endif\nvoid CC_TRANSFER_FOG(vec4 pos) {\n#if !CC_USE_ACCURATE_FOG\n CC_TRANSFER_FOG_BASE(pos, v_fog_factor);\n#endif\n}\nout highp vec4 v_shadowPos;\nlayout(std140) uniform CCShadow {\n highp mat4 cc_matLightView;\n highp mat4 cc_matLightViewProj;\n highp vec4 cc_shadowInvProjDepthInfo;\n highp vec4 cc_shadowProjDepthInfo;\n highp vec4 cc_shadowProjInfo;\n mediump vec4 cc_shadowNFLSInfo;\n mediump vec4 cc_shadowWHPBInfo;\n mediump vec4 cc_shadowLPNNInfo;\n lowp vec4 cc_shadowColor;\n mediump vec4 cc_planarNDInfo;\n};\n#if CC_SUPPORT_CASCADED_SHADOW_MAP\n layout(std140) uniform CCCSM {\n highp vec4 cc_csmViewDir0[4];\n highp vec4 cc_csmViewDir1[4];\n highp vec4 cc_csmViewDir2[4];\n highp vec4 cc_csmAtlas[4];\n highp mat4 cc_matCSMViewProj[4];\n highp vec4 cc_csmProjDepthInfo[4];\n highp vec4 cc_csmProjInfo[4];\n highp vec4 cc_csmSplitsInfo;\n };\n#endif\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\n#if defined(CC_USE_METAL) || defined(CC_USE_WGPU)\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y) y = -y\n#else\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y)\n#endif\n#if CC_RECEIVE_SHADOW\n uniform highp sampler2D cc_shadowMap;\n uniform highp sampler2D cc_spotShadowMap;\n #define UnpackBitFromFloat(value, bit) (mod(floor(value / pow(10.0, float(bit))), 10.0) > 0.0)\n #if CC_SUPPORT_CASCADED_SHADOW_MAP\n #else\n #endif\n#endif\n#if CC_RECEIVE_SHADOW\n#endif\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\n#if CC_RECEIVE_SHADOW\n out vec2 v_shadowBias;\n#endif\nout highp vec3 v_position;\nout mediump vec3 v_normal;\nout mediump vec2 uvw;\nout mediump vec2 uv0;\nout mediump vec2 uv1;\nout mediump vec2 uv2;\nout mediump vec2 uv3;\nout mediump vec3 luv;\nout mediump vec3 diffuse;\nlayout(std140) uniform TexCoords {\n vec4 UVScale;\n vec4 lightMapUVParam;\n};\nvoid main () {\n vec3 worldPos;\n worldPos.x = cc_matWorld[3][0] + a_position.x;\n worldPos.y = cc_matWorld[3][1] + a_position.y;\n worldPos.z = cc_matWorld[3][2] + a_position.z;\n vec4 pos = vec4(worldPos, 1.0);\n pos = cc_matViewProj * pos;\n uvw = a_texCoord;\n uv0 = a_position.xz * UVScale.x;\n uv1 = a_position.xz * UVScale.y;\n uv2 = a_position.xz * UVScale.z;\n uv3 = a_position.xz * UVScale.w;\n #if CC_USE_LIGHTMAP\n luv.xy = cc_lightingMapUVParam.xy + a_texCoord * cc_lightingMapUVParam.z;\n luv.z = cc_lightingMapUVParam.w;\n #endif\n v_position = worldPos;\n v_normal = a_normal;\n CC_TRANSFER_FOG(vec4(worldPos, 1.0));\n #if CC_RECEIVE_SHADOW\n v_shadowBias = vec2(0.0, 0.0);\n #endif\n v_shadowPos = cc_matLightViewProj * vec4(worldPos, 1.0);\n gl_Position = pos;\n}","frag":"\nprecision highp float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nvec3 SRGBToLinear (vec3 gamma) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return gamma;\n }\n #endif\n#endif\n return gamma * gamma;\n}\nvec3 LinearToSRGB(vec3 linear) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return linear;\n }\n #endif\n#endif\n return sqrt(linear);\n}\nlayout(std140) uniform CCShadow {\n highp mat4 cc_matLightView;\n highp mat4 cc_matLightViewProj;\n highp vec4 cc_shadowInvProjDepthInfo;\n highp vec4 cc_shadowProjDepthInfo;\n highp vec4 cc_shadowProjInfo;\n mediump vec4 cc_shadowNFLSInfo;\n mediump vec4 cc_shadowWHPBInfo;\n mediump vec4 cc_shadowLPNNInfo;\n lowp vec4 cc_shadowColor;\n mediump vec4 cc_planarNDInfo;\n};\n#if CC_SUPPORT_CASCADED_SHADOW_MAP\n layout(std140) uniform CCCSM {\n highp vec4 cc_csmViewDir0[4];\n highp vec4 cc_csmViewDir1[4];\n highp vec4 cc_csmViewDir2[4];\n highp vec4 cc_csmAtlas[4];\n highp mat4 cc_matCSMViewProj[4];\n highp vec4 cc_csmProjDepthInfo[4];\n highp vec4 cc_csmProjInfo[4];\n highp vec4 cc_csmSplitsInfo;\n };\n#endif\n#if defined(CC_USE_METAL) || defined(CC_USE_WGPU)\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y) y = -y\n#else\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y)\n#endif\nvec2 GetPlanarReflectScreenUV(vec3 worldPos, mat4 matVirtualCameraViewProj, float flipNDCSign, vec3 viewDir, vec3 reflectDir)\n{\n vec4 clipPos = matVirtualCameraViewProj * vec4(worldPos, 1.0);\n vec2 screenUV = clipPos.xy / clipPos.w * 0.5 + 0.5;\n screenUV = vec2(1.0 - screenUV.x, screenUV.y);\n screenUV = flipNDCSign == 1.0 ? vec2(screenUV.x, 1.0 - screenUV.y) : screenUV;\n return screenUV;\n}\nfloat GetLinearDepthFromViewSpace(vec3 viewPos, float near, float far) {\n float dist = length(viewPos);\n return (dist - near) / (far - near);\n}\nvec3 RotationVecFromAxisY(vec3 v, float cosTheta, float sinTheta)\n{\n vec3 result;\n result.x = dot(v, vec3(cosTheta, 0.0, -sinTheta));\n result.y = v.y;\n result.z = dot(v, vec3(sinTheta, 0.0, cosTheta));\n return result;\n}\nvec3 RotationVecFromAxisY(vec3 v, float rotateAngleArc)\n{\n return RotationVecFromAxisY(v, cos(rotateAngleArc), sin(rotateAngleArc));\n}\nfloat CCGetLinearDepth(vec3 worldPos, float viewSpaceBias) {\n\tvec4 viewPos = cc_matLightView * vec4(worldPos.xyz, 1.0);\n viewPos.z += viewSpaceBias;\n\treturn GetLinearDepthFromViewSpace(viewPos.xyz, cc_shadowNFLSInfo.x, cc_shadowNFLSInfo.y);\n}\nfloat CCGetLinearDepth(vec3 worldPos) {\n\treturn CCGetLinearDepth(worldPos, 0.0);\n}\n#if CC_RECEIVE_SHADOW\n uniform highp sampler2D cc_shadowMap;\n uniform highp sampler2D cc_spotShadowMap;\n #define UnpackBitFromFloat(value, bit) (mod(floor(value / pow(10.0, float(bit))), 10.0) > 0.0)\n highp float unpackHighpData (float mainPart, float modPart) {\n highp float data = mainPart;\n return data + modPart;\n }\n void packHighpData (out float mainPart, out float modPart, highp float data) {\n mainPart = fract(data);\n modPart = data - mainPart;\n }\n highp float unpackHighpData (float mainPart, float modPart, const float modValue) {\n highp float data = mainPart * modValue;\n return data + modPart * modValue;\n }\n void packHighpData (out float mainPart, out float modPart, highp float data, const float modValue) {\n highp float divide = data / modValue;\n mainPart = floor(divide);\n modPart = (data - mainPart * modValue) / modValue;\n }\n highp vec2 unpackHighpData (vec2 mainPart, vec2 modPart) {\n highp vec2 data = mainPart;\n return data + modPart;\n }\n void packHighpData (out vec2 mainPart, out vec2 modPart, highp vec2 data) {\n mainPart = fract(data);\n modPart = data - mainPart;\n }\n highp vec2 unpackHighpData (vec2 mainPart, vec2 modPart, const float modValue) {\n highp vec2 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n void packHighpData (out vec2 mainPart, out vec2 modPart, highp vec2 data, const float modValue) {\n highp vec2 divide = data / modValue;\n mainPart = floor(divide);\n modPart = (data - mainPart * modValue) / modValue;\n }\n highp vec3 unpackHighpData (vec3 mainPart, vec3 modPart) {\n highp vec3 data = mainPart;\n return data + modPart;\n }\n void packHighpData (out vec3 mainPart, out vec3 modPart, highp vec3 data) {\n mainPart = fract(data);\n modPart = data - mainPart;\n }\n highp vec3 unpackHighpData (vec3 mainPart, vec3 modPart, const float modValue) {\n highp vec3 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n void packHighpData (out vec3 mainPart, out vec3 modPart, highp vec3 data, const float modValue) {\n highp vec3 divide = data / modValue;\n mainPart = floor(divide);\n modPart = (data - mainPart * modValue) / modValue;\n }\n highp vec4 unpackHighpData (vec4 mainPart, vec4 modPart) {\n highp vec4 data = mainPart;\n return data + modPart;\n }\n void packHighpData (out vec4 mainPart, out vec4 modPart, highp vec4 data) {\n mainPart = fract(data);\n modPart = data - mainPart;\n }\n highp vec4 unpackHighpData (vec4 mainPart, vec4 modPart, const float modValue) {\n highp vec4 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n void packHighpData (out vec4 mainPart, out vec4 modPart, highp vec4 data, const float modValue) {\n highp vec4 divide = data / modValue;\n mainPart = floor(divide);\n modPart = (data - mainPart * modValue) / modValue;\n }\n vec4 shadowTexure(highp sampler2D shadowMap, vec2 coord) {\n #if defined(CC_USE_WGPU)\n return textureLod(shadowMap, coord, 0.0);\n #else\n return texture(shadowMap, coord);\n #endif\n }\n float NativePCFShadowFactorHard (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n #if CC_SHADOWMAP_FORMAT == 1\n return step(shadowNDCPos.z, dot(shadowTexure(shadowMap, shadowNDCPos.xy), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n return step(shadowNDCPos.z, shadowTexure(shadowMap, shadowNDCPos.xy).x);\n #endif\n }\n float NativePCFShadowFactorSoft (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n vec2 shadowNDCPos_offset = shadowNDCPos.xy + oneTap;\n float block0, block1, block2, block3;\n #if CC_SHADOWMAP_FORMAT == 1\n block0 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos_offset.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block0 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)).x);\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos.y)).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset.y)).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos_offset.y)).x);\n #endif\n float coefX = mod(shadowNDCPos.x, oneTap.x) * shadowMapResolution.x;\n float resultX = mix(block0, block1, coefX);\n float resultY = mix(block2, block3, coefX);\n float coefY = mod(shadowNDCPos.y, oneTap.y) * shadowMapResolution.y;\n return mix(resultX, resultY, coefY);\n }\n float NativePCFShadowFactorSoft3X (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n float shadowNDCPos_offset_L = shadowNDCPos.x - oneTap.x;\n float shadowNDCPos_offset_R = shadowNDCPos.x + oneTap.x;\n float shadowNDCPos_offset_U = shadowNDCPos.y - oneTap.y;\n float shadowNDCPos_offset_D = shadowNDCPos.y + oneTap.y;\n float block0, block1, block2, block3, block4, block5, block6, block7, block8;\n #if CC_SHADOWMAP_FORMAT == 1\n block0 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block4 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block5 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block6 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block7 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block8 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block0 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_U)).x);\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_U)).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_U)).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos.y)).x);\n block4 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)).x);\n block5 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos.y)).x);\n block6 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_D)).x);\n block7 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_D)).x);\n block8 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_D)).x);\n #endif\n float coefX = mod(shadowNDCPos.x, oneTap.x) * shadowMapResolution.x;\n float coefY = mod(shadowNDCPos.y, oneTap.y) * shadowMapResolution.y;\n float shadow = 0.0;\n float resultX = mix(block0, block1, coefX);\n float resultY = mix(block3, block4, coefX);\n shadow += mix(resultX , resultY, coefY);\n resultX = mix(block1, block2, coefX);\n resultY = mix(block4, block5, coefX);\n shadow += mix(resultX , resultY, coefY);\n resultX = mix(block3, block4, coefX);\n resultY = mix(block6, block7, coefX);\n shadow += mix(resultX, resultY, coefY);\n resultX = mix(block4, block5, coefX);\n resultY = mix(block7, block8, coefX);\n shadow += mix(resultX, resultY, coefY);\n return shadow * 0.25;\n }\n float NativePCFShadowFactorSoft5X (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n vec2 twoTap = oneTap * 2.0;\n vec2 offset1 = shadowNDCPos.xy + vec2(-twoTap.x, -twoTap.y);\n vec2 offset2 = shadowNDCPos.xy + vec2(-oneTap.x, -twoTap.y);\n vec2 offset3 = shadowNDCPos.xy + vec2(0.0, -twoTap.y);\n vec2 offset4 = shadowNDCPos.xy + vec2(oneTap.x, -twoTap.y);\n vec2 offset5 = shadowNDCPos.xy + vec2(twoTap.x, -twoTap.y);\n vec2 offset6 = shadowNDCPos.xy + vec2(-twoTap.x, -oneTap.y);\n vec2 offset7 = shadowNDCPos.xy + vec2(-oneTap.x, -oneTap.y);\n vec2 offset8 = shadowNDCPos.xy + vec2(0.0, -oneTap.y);\n vec2 offset9 = shadowNDCPos.xy + vec2(oneTap.x, -oneTap.y);\n vec2 offset10 = shadowNDCPos.xy + vec2(twoTap.x, -oneTap.y);\n vec2 offset11 = shadowNDCPos.xy + vec2(-twoTap.x, 0.0);\n vec2 offset12 = shadowNDCPos.xy + vec2(-oneTap.x, 0.0);\n vec2 offset13 = shadowNDCPos.xy + vec2(0.0, 0.0);\n vec2 offset14 = shadowNDCPos.xy + vec2(oneTap.x, 0.0);\n vec2 offset15 = shadowNDCPos.xy + vec2(twoTap.x, 0.0);\n vec2 offset16 = shadowNDCPos.xy + vec2(-twoTap.x, oneTap.y);\n vec2 offset17 = shadowNDCPos.xy + vec2(-oneTap.x, oneTap.y);\n vec2 offset18 = shadowNDCPos.xy + vec2(0.0, oneTap.y);\n vec2 offset19 = shadowNDCPos.xy + vec2(oneTap.x, oneTap.y);\n vec2 offset20 = shadowNDCPos.xy + vec2(twoTap.x, oneTap.y);\n vec2 offset21 = shadowNDCPos.xy + vec2(-twoTap.x, twoTap.y);\n vec2 offset22 = shadowNDCPos.xy + vec2(-oneTap.x, twoTap.y);\n vec2 offset23 = shadowNDCPos.xy + vec2(0.0, twoTap.y);\n vec2 offset24 = shadowNDCPos.xy + vec2(oneTap.x, twoTap.y);\n vec2 offset25 = shadowNDCPos.xy + vec2(twoTap.x, twoTap.y);\n float block1, block2, block3, block4, block5, block6, block7, block8, block9, block10, block11, block12, block13, block14, block15, block16, block17, block18, block19, block20, block21, block22, block23, block24, block25;\n #if CC_SHADOWMAP_FORMAT == 1\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset1), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset2), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset3), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block4 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset4), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block5 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset5), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block6 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset6), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block7 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset7), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block8 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset8), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block9 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset9), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block10 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset10), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block11 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset11), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block12 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset12), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block13 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset13), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block14 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset14), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block15 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset15), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block16 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset16), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block17 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset17), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block18 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset18), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block19 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset19), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block20 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset20), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block21 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset21), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block22 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset22), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block23 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset23), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block24 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset24), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block25 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset25), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset1).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset2).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset3).x);\n block4 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset4).x);\n block5 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset5).x);\n block6 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset6).x);\n block7 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset7).x);\n block8 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset8).x);\n block9 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset9).x);\n block10 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset10).x);\n block11 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset11).x);\n block12 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset12).x);\n block13 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset13).x);\n block14 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset14).x);\n block15 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset15).x);\n block16 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset16).x);\n block17 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset17).x);\n block18 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset18).x);\n block19 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset19).x);\n block20 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset20).x);\n block21 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset21).x);\n block22 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset22).x);\n block23 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset23).x);\n block24 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset24).x);\n block25 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset25).x);\n #endif\n vec2 coef = fract(shadowNDCPos.xy * shadowMapResolution);\n vec2 v1X1 = mix(vec2(block1, block6), vec2(block2, block7), coef.xx);\n vec2 v1X2 = mix(vec2(block2, block7), vec2(block3, block8), coef.xx);\n vec2 v1X3 = mix(vec2(block3, block8), vec2(block4, block9), coef.xx);\n vec2 v1X4 = mix(vec2(block4, block9), vec2(block5, block10), coef.xx);\n float v1 = mix(v1X1.x, v1X1.y, coef.y) + mix(v1X2.x, v1X2.y, coef.y) + mix(v1X3.x, v1X3.y, coef.y) + mix(v1X4.x, v1X4.y, coef.y);\n vec2 v2X1 = mix(vec2(block6, block11), vec2(block7, block12), coef.xx);\n vec2 v2X2 = mix(vec2(block7, block12), vec2(block8, block13), coef.xx);\n vec2 v2X3 = mix(vec2(block8, block13), vec2(block9, block14), coef.xx);\n vec2 v2X4 = mix(vec2(block9, block14), vec2(block10, block15), coef.xx);\n float v2 = mix(v2X1.x, v2X1.y, coef.y) + mix(v2X2.x, v2X2.y, coef.y) + mix(v2X3.x, v2X3.y, coef.y) + mix(v2X4.x, v2X4.y, coef.y);\n vec2 v3X1 = mix(vec2(block11, block16), vec2(block12, block17), coef.xx);\n vec2 v3X2 = mix(vec2(block12, block17), vec2(block13, block18), coef.xx);\n vec2 v3X3 = mix(vec2(block13, block18), vec2(block14, block19), coef.xx);\n vec2 v3X4 = mix(vec2(block14, block19), vec2(block15, block20), coef.xx);\n float v3 = mix(v3X1.x, v3X1.y, coef.y) + mix(v3X2.x, v3X2.y, coef.y) + mix(v3X3.x, v3X3.y, coef.y) + mix(v3X4.x, v3X4.y, coef.y);\n vec2 v4X1 = mix(vec2(block16, block21), vec2(block17, block22), coef.xx);\n vec2 v4X2 = mix(vec2(block17, block22), vec2(block18, block23), coef.xx);\n vec2 v4X3 = mix(vec2(block18, block23), vec2(block19, block24), coef.xx);\n vec2 v4X4 = mix(vec2(block19, block24), vec2(block20, block25), coef.xx);\n float v4 = mix(v4X1.x, v4X1.y, coef.y) + mix(v4X2.x, v4X2.y, coef.y) + mix(v4X3.x, v4X3.y, coef.y) + mix(v4X4.x, v4X4.y, coef.y);\n float fAvg = (v1 + v2 + v3 + v4) * 0.0625;\n return fAvg;\n }\n bool GetShadowNDCPos(out vec3 shadowNDCPos, vec4 shadowPosWithDepthBias)\n {\n \tshadowNDCPos = shadowPosWithDepthBias.xyz / shadowPosWithDepthBias.w * 0.5 + 0.5;\n \tif (shadowNDCPos.x < 0.0 || shadowNDCPos.x > 1.0 ||\n \t\tshadowNDCPos.y < 0.0 || shadowNDCPos.y > 1.0 ||\n \t\tshadowNDCPos.z < 0.0 || shadowNDCPos.z > 1.0) {\n \t\treturn false;\n \t}\n \tshadowNDCPos.xy = cc_cameraPos.w == 1.0 ? vec2(shadowNDCPos.xy.x, 1.0 - shadowNDCPos.xy.y) : shadowNDCPos.xy;\n \treturn true;\n }\n vec4 ApplyShadowDepthBias_FaceNormal(vec4 shadowPos, vec3 worldNormal, float normalBias, vec3 matViewDir0, vec3 matViewDir1, vec3 matViewDir2, vec2 projScaleXY)\n {\n vec4 newShadowPos = shadowPos;\n if (normalBias > EPSILON_LOWP)\n {\n vec3 viewNormal = vec3(dot(matViewDir0, worldNormal), dot(matViewDir1, worldNormal), dot(matViewDir2, worldNormal));\n if (viewNormal.z < 0.1)\n newShadowPos.xy += viewNormal.xy * projScaleXY * normalBias * clamp(viewNormal.z, 0.001, 0.1);\n }\n return newShadowPos;\n }\n vec4 ApplyShadowDepthBias_FaceNormal(vec4 shadowPos, vec3 worldNormal, float normalBias, mat4 matLightView, vec2 projScaleXY)\n {\n \tvec4 newShadowPos = shadowPos;\n \tif (normalBias > EPSILON_LOWP)\n \t{\n \t\tvec4 viewNormal = matLightView * vec4(worldNormal, 0.0);\n \t\tif (viewNormal.z < 0.1)\n \t\t\tnewShadowPos.xy += viewNormal.xy * projScaleXY * normalBias * clamp(viewNormal.z, 0.001, 0.1);\n \t}\n \treturn newShadowPos;\n }\n float GetViewSpaceDepthFromNDCDepth_Orthgraphic(float NDCDepth, float projScaleZ, float projBiasZ)\n {\n \treturn (NDCDepth - projBiasZ) / projScaleZ;\n }\n float GetViewSpaceDepthFromNDCDepth_Perspective(float NDCDepth, float homogenousDividW, float invProjScaleZ, float invProjBiasZ)\n {\n \treturn NDCDepth * invProjScaleZ + homogenousDividW * invProjBiasZ;\n }\n vec4 ApplyShadowDepthBias_Perspective(vec4 shadowPos, float viewspaceDepthBias)\n {\n \tvec3 viewSpacePos;\n \tviewSpacePos.xy = shadowPos.xy * cc_shadowProjInfo.zw;\n \tviewSpacePos.z = GetViewSpaceDepthFromNDCDepth_Perspective(shadowPos.z, shadowPos.w, cc_shadowInvProjDepthInfo.x, cc_shadowInvProjDepthInfo.y);\n \tviewSpacePos.xyz += cc_shadowProjDepthInfo.z * normalize(viewSpacePos.xyz) * viewspaceDepthBias;\n \tvec4 clipSpacePos;\n \tclipSpacePos.xy = viewSpacePos.xy * cc_shadowProjInfo.xy;\n \tclipSpacePos.zw = viewSpacePos.z * cc_shadowProjDepthInfo.xz + vec2(cc_shadowProjDepthInfo.y, 0.0);\n \t#if CC_SHADOWMAP_USE_LINEAR_DEPTH\n \t\tclipSpacePos.z = GetLinearDepthFromViewSpace(viewSpacePos.xyz, cc_shadowNFLSInfo.x, cc_shadowNFLSInfo.y);\n \t\tclipSpacePos.z = (clipSpacePos.z * 2.0 - 1.0) * clipSpacePos.w;\n \t#endif\n \treturn clipSpacePos;\n }\n vec4 ApplyShadowDepthBias_Orthographic(vec4 shadowPos, float viewspaceDepthBias, float projScaleZ, float projBiasZ)\n {\n \tfloat coeffA = projScaleZ;\n \tfloat coeffB = projBiasZ;\n \tfloat viewSpacePos_z = GetViewSpaceDepthFromNDCDepth_Orthgraphic(shadowPos.z, projScaleZ, projBiasZ);\n \tviewSpacePos_z += viewspaceDepthBias;\n \tvec4 result = shadowPos;\n \tresult.z = viewSpacePos_z * coeffA + coeffB;\n \treturn result;\n }\n vec4 ApplyShadowDepthBias_PerspectiveLinearDepth(vec4 shadowPos, float viewspaceDepthBias, vec3 worldPos)\n {\n shadowPos.z = CCGetLinearDepth(worldPos, viewspaceDepthBias) * 2.0 - 1.0;\n shadowPos.z *= shadowPos.w;\n return shadowPos;\n }\n float CCGetDirLightShadowFactorHard (vec4 shadowPosWithDepthBias) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorHard(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft (vec4 shadowPosWithDepthBias) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft3X (vec4 shadowPosWithDepthBias) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft3X(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft5X (vec4 shadowPosWithDepthBias) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft5X(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorHard (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorHard(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft3X (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft3X(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft5X (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft5X(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCSpotShadowFactorBase(out vec4 shadowPosWithDepthBias, vec4 shadowPos, vec3 worldPos, vec2 shadowBias)\n {\n float pcf = cc_shadowWHPBInfo.z;\n vec4 pos = vec4(1.0);\n #if CC_SHADOWMAP_USE_LINEAR_DEPTH\n pos = ApplyShadowDepthBias_PerspectiveLinearDepth(shadowPos, shadowBias.x, worldPos);\n #else\n pos = ApplyShadowDepthBias_Perspective(shadowPos, shadowBias.x);\n #endif\n float realtimeShadow = 1.0;\n if (pcf > 2.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft5X(pos, worldPos);\n }else if (pcf > 1.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft3X(pos, worldPos);\n }else if (pcf > 0.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft(pos, worldPos);\n }else {\n realtimeShadow = CCGetSpotLightShadowFactorHard(pos, worldPos);\n }\n shadowPosWithDepthBias = pos;\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n }\n float CCShadowFactorBase(out vec4 shadowPosWithDepthBias, vec4 shadowPos, vec3 N, vec2 shadowBias)\n {\n vec4 pos = ApplyShadowDepthBias_FaceNormal(shadowPos, N, shadowBias.y, cc_matLightView, cc_shadowProjInfo.xy);\n pos = ApplyShadowDepthBias_Orthographic(pos, shadowBias.x, cc_shadowProjDepthInfo.x, cc_shadowProjDepthInfo.y);\n float realtimeShadow = 1.0;\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n realtimeShadow = CCGetDirLightShadowFactorSoft5X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n realtimeShadow = CCGetDirLightShadowFactorSoft3X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n realtimeShadow = CCGetDirLightShadowFactorSoft(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n realtimeShadow = CCGetDirLightShadowFactorHard(pos);\n #endif\n shadowPosWithDepthBias = pos;\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n }\n #if CC_SUPPORT_CASCADED_SHADOW_MAP\n bool CCGetCSMLevelWithTransition(out highp float ratio, vec3 clipPos) {\n highp float maxRange = 1.0 - cc_csmSplitsInfo.x;\n highp float minRange = cc_csmSplitsInfo.x;\n highp float thresholdInvert = 1.0 / cc_csmSplitsInfo.x;\n ratio = 0.0;\n if (clipPos.x <= minRange) {\n ratio = clipPos.x * thresholdInvert;\n return true;\n }\n if (clipPos.x >= maxRange) {\n ratio = 1.0 - (clipPos.x - maxRange) * thresholdInvert;\n return true;\n }\n if (clipPos.y <= minRange) {\n ratio = clipPos.y * thresholdInvert;\n return true;\n }\n if (clipPos.y >= maxRange) {\n ratio = 1.0 - (clipPos.y - maxRange) * thresholdInvert;\n return true;\n }\n return false;\n }\n bool CCHasCSMLevel(int level, vec3 worldPos) {\n highp float layerThreshold = cc_csmViewDir0[0].w;\n bool hasLevel = false;\n for (int i = 0; i < 4; i++) {\n if (i == level) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0) {\n hasLevel = true;\n }\n }\n }\n return hasLevel;\n }\n void CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos, int level) {\n highp float layerThreshold = cc_csmViewDir0[0].w;\n for (int i = 0; i < 4; i++) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0 && i == level) {\n csmPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n csmPos.xy = csmPos.xy * cc_csmAtlas[i].xy + cc_csmAtlas[i].zw;\n shadowProjDepthInfo = cc_csmProjDepthInfo[i];\n shadowProjInfo = cc_csmProjInfo[i];\n shadowViewDir0 = cc_csmViewDir0[i].xyz;\n shadowViewDir1 = cc_csmViewDir1[i].xyz;\n shadowViewDir2 = cc_csmViewDir2[i].xyz;\n }\n }\n }\n int CCGetCSMLevel(out bool isTransitionArea, out highp float transitionRatio, out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos)\n {\n int level = -1;\n highp float layerThreshold = cc_csmViewDir0[0].w;\n for (int i = 0; i < 4; i++) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0 && level < 0) {\n #if CC_CASCADED_LAYERS_TRANSITION\n isTransitionArea = CCGetCSMLevelWithTransition(transitionRatio, clipPos);\n #endif\n csmPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n csmPos.xy = csmPos.xy * cc_csmAtlas[i].xy + cc_csmAtlas[i].zw;\n shadowProjDepthInfo = cc_csmProjDepthInfo[i];\n shadowProjInfo = cc_csmProjInfo[i];\n shadowViewDir0 = cc_csmViewDir0[i].xyz;\n shadowViewDir1 = cc_csmViewDir1[i].xyz;\n shadowViewDir2 = cc_csmViewDir2[i].xyz;\n level = i;\n }\n }\n return level;\n }\n int CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos)\n {\n bool isTransitionArea = false;\n highp float transitionRatio = 0.0;\n return CCGetCSMLevel(isTransitionArea, transitionRatio, csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n }\n float CCCSMFactorBase(out vec4 csmPos, out vec4 csmPosWithBias, vec3 worldPos, vec3 N, vec2 shadowBias)\n {\n bool isTransitionArea = false;\n highp float ratio = 0.0;\n csmPos = vec4(1.0);\n vec4 shadowProjDepthInfo, shadowProjInfo;\n vec3 shadowViewDir0, shadowViewDir1, shadowViewDir2;\n int level = -1;\n #if CC_CASCADED_LAYERS_TRANSITION\n level = CCGetCSMLevel(isTransitionArea, ratio, csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n #else\n level = CCGetCSMLevel(csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n #endif\n if (level < 0) { return 1.0; }\n vec4 pos = ApplyShadowDepthBias_FaceNormal(csmPos, N, shadowBias.y, shadowViewDir0, shadowViewDir1, shadowViewDir2, shadowProjInfo.xy);\n pos = ApplyShadowDepthBias_Orthographic(pos, shadowBias.x, shadowProjDepthInfo.x, shadowProjDepthInfo.y);\n csmPosWithBias = pos;\n float realtimeShadow = 1.0;\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n realtimeShadow = CCGetDirLightShadowFactorSoft5X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n realtimeShadow = CCGetDirLightShadowFactorSoft3X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n realtimeShadow = CCGetDirLightShadowFactorSoft(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n realtimeShadow = CCGetDirLightShadowFactorHard(pos);\n #endif\n #if CC_CASCADED_LAYERS_TRANSITION\n vec4 nextCSMPos = vec4(1.0);\n vec4 nextShadowProjDepthInfo, nextShadowProjInfo;\n vec3 nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2;\n float nextRealtimeShadow = 1.0;\n CCGetCSMLevel(nextCSMPos, nextShadowProjDepthInfo, nextShadowProjInfo, nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2, worldPos, level + 1);\n bool hasNextLevel = CCHasCSMLevel(level + 1, worldPos);\n if (hasNextLevel && isTransitionArea) {\n vec4 nexPos = ApplyShadowDepthBias_FaceNormal(nextCSMPos, N, shadowBias.y, nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2, nextShadowProjInfo.xy);\n nexPos = ApplyShadowDepthBias_Orthographic(nexPos, shadowBias.x, nextShadowProjDepthInfo.x, nextShadowProjDepthInfo.y);\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft5X(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft3X(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n nextRealtimeShadow = CCGetDirLightShadowFactorHard(nexPos);\n #endif\n return mix(mix(nextRealtimeShadow, realtimeShadow, ratio), 1.0, cc_shadowNFLSInfo.w);\n }\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n #else\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n #endif\n }\n #else\n int CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos) {\n return -1;\n }\n float CCCSMFactorBase(out vec4 csmPos, out vec4 csmPosWithBias, vec3 worldPos, vec3 N, vec2 shadowBias) {\n csmPos = cc_matLightViewProj * vec4(worldPos, 1.0);\n return CCShadowFactorBase(csmPosWithBias, csmPos, N, shadowBias);\n }\n #endif\n float CCShadowFactorBase(vec4 shadowPos, vec3 N, vec2 shadowBias) {\n vec4 shadowPosWithDepthBias;\n return CCShadowFactorBase(shadowPosWithDepthBias, shadowPos, N, shadowBias);\n }\n float CCCSMFactorBase(vec3 worldPos, vec3 N, vec2 shadowBias) {\n vec4 csmPos, csmPosWithBias;\n return CCCSMFactorBase(csmPos, csmPosWithBias, worldPos, N, shadowBias);\n }\n float CCSpotShadowFactorBase(vec4 shadowPos, vec3 worldPos, vec2 shadowBias)\n {\n vec4 shadowPosWithDepthBias;\n return CCSpotShadowFactorBase(shadowPosWithDepthBias, shadowPos, worldPos, shadowBias);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\nvec4 packRGBE (vec3 rgb) {\n highp float maxComp = max(max(rgb.r, rgb.g), rgb.b);\n highp float e = 128.0;\n if (maxComp > 0.0001) {\n e = log(maxComp) / log(1.1);\n e = ceil(e);\n e = clamp(e + 128.0, 0.0, 255.0);\n }\n highp float sc = 1.0 / pow(1.1, e - 128.0);\n vec3 encode = clamp(rgb * sc, vec3(0.0), vec3(1.0)) * 255.0;\n vec3 encode_rounded = floor(encode) + step(encode - floor(encode), vec3(0.5));\n return vec4(encode_rounded, e) / 255.0;\n}\nvec3 unpackRGBE (vec4 rgbe) {\n return rgbe.rgb * pow(1.1, rgbe.a * 255.0 - 128.0);\n}\nvec4 fragTextureLod (sampler2D tex, vec2 coord, float lod) {\n return textureLod(tex, coord, lod);\n}\nvec4 fragTextureLod (samplerCube tex, vec3 coord, float lod) {\n return textureLod(tex, coord, lod);\n}\nuniform samplerCube cc_environment;\nvec3 CalculateReflectDirection(vec3 N, vec3 V, float NoV)\n{\n float sideSign = NoV < 0.0 ? -1.0 : 1.0;\n N *= sideSign;\n return reflect(-V, N);\n}\nvec3 CalculatePlanarReflectPositionOnPlane(vec3 N, vec3 V, vec3 worldPos, vec4 plane, vec3 cameraPos, float probeReflectedDepth)\n{\n float distPixelToPlane = -dot(plane, vec4(worldPos, 1.0));\n plane.w += distPixelToPlane;\n float distCameraToPlane = abs(-dot(plane, vec4(cameraPos, 1.0)));\n vec3 planeN = plane.xyz;\n vec3 virtualCameraPos = cameraPos - 2.0 * distCameraToPlane * planeN;\n vec3 bumpedR = normalize(reflect(-V, N));\n vec3 reflectedPointPos = worldPos + probeReflectedDepth * bumpedR;\n vec3 virtualCameraToReflectedPoint = normalize(reflectedPointPos - virtualCameraPos);\n float y = distCameraToPlane / max(EPSILON_LOWP, dot(planeN, virtualCameraToReflectedPoint));\n return virtualCameraPos + y * virtualCameraToReflectedPoint;\n}\nvec4 CalculateBoxProjectedDirection(vec3 R, vec3 worldPos, vec3 cubeCenterPos, vec3 cubeBoxHalfSize)\n{\n vec3 W = worldPos - cubeCenterPos;\n vec3 projectedLength = (sign(R) * cubeBoxHalfSize - W) / (R + vec3(EPSILON));\n float len = min(min(projectedLength.x, projectedLength.y), projectedLength.z);\n vec3 P = W + len * R;\n float weight = len < 0.0 ? 0.0 : 1.0;\n return vec4(P, weight);\n}\n#if CC_USE_IBL\n #if CC_USE_DIFFUSEMAP\n uniform samplerCube cc_diffuseMap;\n #endif\n#endif\n#if CC_USE_REFLECTION_PROBE\n uniform samplerCube cc_reflectionProbeCubemap;\n uniform sampler2D cc_reflectionProbePlanarMap;\n uniform sampler2D cc_reflectionProbeDataMap;\n layout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n };\n vec4 GetTexData(sampler2D dataMap, float dataMapWidth, float x, float uv_y)\n {\n return vec4(\n decode32(texture(dataMap, vec2(((x + 0.5)/dataMapWidth), uv_y))),\n decode32(texture(dataMap, vec2(((x + 1.5)/dataMapWidth), uv_y))),\n decode32(texture(dataMap, vec2(((x + 2.5)/dataMapWidth), uv_y))),\n decode32(texture(dataMap, vec2(((x + 3.5)/dataMapWidth), uv_y)))\n );\n }\n void GetPlanarReflectionProbeData(out vec4 plane, out float planarReflectionDepthScale, out float mipCount, float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData1 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 0.0, uv_y);\n vec4 texData2 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 4.0, uv_y);\n plane.xyz = texData1.xyz;\n plane.w = texData2.x;\n planarReflectionDepthScale = texData2.y;\n mipCount = texData2.z;\n #else\n plane = cc_reflectionProbeData1;\n planarReflectionDepthScale = cc_reflectionProbeData2.x;\n mipCount = cc_reflectionProbeData2.w;\n #endif\n }\n void GetCubeReflectionProbeData(out vec3 centerPos, out vec3 boxHalfSize, out float mipCount, float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData1 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 0.0, uv_y);\n vec4 texData2 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 4.0, uv_y);\n vec4 texData3 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 8.0, uv_y);\n centerPos = texData1.xyz;\n boxHalfSize = texData2.xyz;\n mipCount = texData3.x;\n #else\n centerPos = cc_reflectionProbeData1.xyz;\n boxHalfSize = cc_reflectionProbeData2.xyz;\n mipCount = cc_reflectionProbeData2.w;\n #endif\n if (mipCount > 1000.0) mipCount -= 1000.0;\n }\n bool isReflectProbeUsingRGBE(float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData3 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 8.0, uv_y);\n return texData3.x > 1000.0;\n #else\n return cc_reflectionProbeData2.w > 1000.0;\n #endif\n }\n#endif\n#if CC_USE_LIGHT_PROBE\n#if CC_USE_LIGHT_PROBE\n #if USE_INSTANCING\n in mediump vec4 v_sh_linear_const_r;\n in mediump vec4 v_sh_linear_const_g;\n in mediump vec4 v_sh_linear_const_b;\n #else\n layout(std140) uniform CCSH {\n vec4 cc_sh_linear_const_r;\n vec4 cc_sh_linear_const_g;\n vec4 cc_sh_linear_const_b;\n vec4 cc_sh_quadratic_r;\n vec4 cc_sh_quadratic_g;\n vec4 cc_sh_quadratic_b;\n vec4 cc_sh_quadratic_a;\n };\n #endif\n #if CC_USE_LIGHT_PROBE\n vec3 SHEvaluate(vec3 normal)\n {\n vec3 result;\n #if USE_INSTANCING\n vec4 normal4 = vec4(normal, 1.0);\n result.r = dot(v_sh_linear_const_r, normal4);\n result.g = dot(v_sh_linear_const_g, normal4);\n result.b = dot(v_sh_linear_const_b, normal4);\n #else\n vec4 normal4 = vec4(normal, 1.0);\n result.r = dot(cc_sh_linear_const_r, normal4);\n result.g = dot(cc_sh_linear_const_g, normal4);\n result.b = dot(cc_sh_linear_const_b, normal4);\n vec4 n14 = normal.xyzz * normal.yzzx;\n float n5 = normal.x * normal.x - normal.y * normal.y;\n result.r += dot(cc_sh_quadratic_r, n14);\n result.g += dot(cc_sh_quadratic_g, n14);\n result.b += dot(cc_sh_quadratic_b, n14);\n result += (cc_sh_quadratic_a.rgb * n5);\n #endif\n #if CC_USE_HDR\n result *= cc_exposure.w * cc_exposure.x;\n #endif\n return result;\n }\n #endif\n#endif\n#endif\nfloat GGXMobile (float roughness, float NoH, vec3 H, vec3 N) {\n vec3 NxH = cross(N, H);\n float OneMinusNoHSqr = dot(NxH, NxH);\n float a = roughness * roughness;\n float n = NoH * a;\n float p = a / max(EPSILON, OneMinusNoHSqr + n * n);\n return p * p;\n}\nfloat CalcSpecular (float roughness, float NoH, vec3 H, vec3 N) {\n return (roughness * 0.25 + 0.25) * GGXMobile(roughness, NoH, H, N);\n}\nvec3 BRDFApprox (vec3 specular, float roughness, float NoV) {\n const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);\n const vec4 c1 = vec4(1.0, 0.0425, 1.04, -0.04);\n vec4 r = roughness * c0 + c1;\n float a004 = min(r.x * r.x, exp2(-9.28 * NoV)) * r.x + r.y;\n vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;\n AB.y *= clamp(50.0 * specular.g, 0.0, 1.0);\n return max(vec3(0.0), specular * AB.x + AB.y);\n}\n#if USE_REFLECTION_DENOISE\n vec3 GetEnvReflectionWithMipFiltering(vec3 R, float roughness, float mipCount, float denoiseIntensity, vec2 screenUV) {\n #if CC_USE_IBL\n \tfloat mip = roughness * (mipCount - 1.0);\n \tfloat delta = (dot(dFdx(R), dFdy(R))) * 1000.0;\n \tfloat mipBias = mix(0.0, 5.0, clamp(delta, 0.0, 1.0));\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_CUBE\n vec4 biased = fragTextureLod(cc_reflectionProbeCubemap, R, mip + mipBias);\n \t vec4 filtered = texture(cc_reflectionProbeCubemap, R);\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_PLANAR\n vec4 biased = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, mip + mipBias);\n vec4 filtered = texture(cc_reflectionProbePlanarMap, screenUV);\n #else\n vec4 biased = fragTextureLod(cc_environment, R, mip + mipBias);\n \t vec4 filtered = texture(cc_environment, R);\n #endif\n #if CC_USE_IBL == 2 || CC_USE_REFLECTION_PROBE != REFLECTION_PROBE_TYPE_NONE\n biased.rgb = unpackRGBE(biased);\n \tfiltered.rgb = unpackRGBE(filtered);\n #else\n \tbiased.rgb = SRGBToLinear(biased.rgb);\n \tfiltered.rgb = SRGBToLinear(filtered.rgb);\n #endif\n return mix(biased.rgb, filtered.rgb, denoiseIntensity);\n #else\n return vec3(0.0, 0.0, 0.0);\n #endif\n }\n#endif\nstruct StandardSurface {\n vec4 albedo;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n vec3 position, position_fract_part;\n #else\n vec3 position;\n #endif\n vec3 normal;\n vec3 emissive;\n vec4 lightmap;\n float lightmap_test;\n float roughness;\n float metallic;\n float occlusion;\n float specularIntensity;\n #if CC_RECEIVE_SHADOW\n vec2 shadowBias;\n #endif\n #if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n float reflectionProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND || CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n float reflectionProbeBlendId;\n float reflectionProbeBlendFactor;\n #endif\n};\n vec3 SampleReflectionProbe(samplerCube tex, vec3 R, float roughness, float mipCount, bool isRGBE) {\n vec4 envmap = fragTextureLod(tex, R, roughness * (mipCount - 1.0));\n if (isRGBE)\n return unpackRGBE(envmap);\n else\n return SRGBToLinear(envmap.rgb);\n }\nvec4 CCStandardShadingBase (StandardSurface s, vec4 shadowPos) {\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.08 * s.specularIntensity), s.albedo.rgb, s.metallic);\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n vec3 L = normalize(-cc_mainLitDir.xyz);\n float NL = max(dot(N, L), 0.0);\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (NL > 0.0 && cc_mainLitDir.w > 0.0) {\n #if CC_DIR_LIGHT_SHADOW_TYPE == 2\n shadow = CCCSMFactorBase(position, N, s.shadowBias);\n #endif\n #if CC_DIR_LIGHT_SHADOW_TYPE == 1\n shadow = CCShadowFactorBase(shadowPos, N, s.shadowBias);\n #endif\n }\n #endif\n vec3 finalColor = vec3(0.0);\n #if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n vec3 lightmap = s.lightmap.rgb;\n #if CC_USE_HDR\n lightmap.rgb *= cc_exposure.w * cc_exposure.x;\n #endif\n #if CC_USE_LIGHTMAP == LIGHT_MAP_TYPE_INDIRECT_OCCLUSION\n shadow *= s.lightmap.a;\n finalColor += diffuse * lightmap.rgb;\n #else\n finalColor += diffuse * lightmap.rgb * shadow;\n #endif\n s.occlusion *= s.lightmap_test;\n #endif\n #if !CC_DISABLE_DIRECTIONAL_LIGHT\n float NV = max(abs(dot(N, V)), 0.0);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 H = normalize(L + V);\n float NH = max(dot(N, H), 0.0);\n vec3 lightingColor = NL * cc_mainLitColor.rgb * cc_mainLitColor.w;\n vec3 diffuseContrib = diffuse / PI;\n vec3 specularContrib = specular * CalcSpecular(s.roughness, NH, H, N);\n vec3 dirlightContrib = (diffuseContrib + specularContrib);\n dirlightContrib *= shadow;\n finalColor += lightingColor * dirlightContrib;\n #endif\n float fAmb = max(EPSILON, 0.5 - N.y * 0.5);\n vec3 ambDiff = mix(cc_ambientSky.rgb, cc_ambientGround.rgb, fAmb);\n vec3 env = vec3(0.0), rotationDir;\n #if CC_USE_IBL\n #if CC_USE_DIFFUSEMAP && !CC_USE_LIGHT_PROBE\n rotationDir = RotationVecFromAxisY(N.xyz, cc_surfaceTransform.z, cc_surfaceTransform.w);\n vec4 diffuseMap = texture(cc_diffuseMap, rotationDir);\n #if CC_USE_DIFFUSEMAP == 2\n ambDiff = unpackRGBE(diffuseMap);\n #else\n ambDiff = SRGBToLinear(diffuseMap.rgb);\n #endif\n #endif\n #if !CC_USE_REFLECTION_PROBE\n vec3 R = normalize(reflect(-V, N));\n rotationDir = RotationVecFromAxisY(R.xyz, cc_surfaceTransform.z, cc_surfaceTransform.w);\n #if USE_REFLECTION_DENOISE && !CC_IBL_CONVOLUTED\n env = GetEnvReflectionWithMipFiltering(rotationDir, s.roughness, cc_ambientGround.w, 0.6, vec2(0.0));\n #else\n vec4 envmap = fragTextureLod(cc_environment, rotationDir, s.roughness * (cc_ambientGround.w - 1.0));\n #if CC_USE_IBL == 2\n env = unpackRGBE(envmap);\n #else\n env = SRGBToLinear(envmap.rgb);\n #endif\n #endif\n #endif\n #endif\n float lightIntensity = cc_ambientSky.w;\n #if CC_USE_REFLECTION_PROBE\n vec4 probe = vec4(0.0);\n vec3 R = normalize(reflect(-V, N));\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_CUBE\n if(s.reflectionProbeId < 0.0){\n env = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2);\n }else{\n vec3 centerPos, boxHalfSize;\n float mipCount;\n GetCubeReflectionProbeData(centerPos, boxHalfSize, mipCount, s.reflectionProbeId);\n vec4 fixedR = CalculateBoxProjectedDirection(R, position, centerPos, boxHalfSize);\n env = mix(SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2) * lightIntensity,\n SampleReflectionProbe(cc_reflectionProbeCubemap, fixedR.xyz, s.roughness, mipCount, isReflectProbeUsingRGBE(s.reflectionProbeId)), fixedR.w);\n }\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_PLANAR\n if(s.reflectionProbeId < 0.0){\n vec2 screenUV = GetPlanarReflectScreenUV(s.position, cc_matViewProj, cc_cameraPos.w, V, R);\n probe = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, 1.0);\n }else{\n vec4 plane;\n float planarReflectionDepthScale, mipCount;\n GetPlanarReflectionProbeData(plane, planarReflectionDepthScale, mipCount, s.reflectionProbeId);\n R = normalize(CalculateReflectDirection(N, V, max(abs(dot(N, V)), 0.0)));\n vec3 worldPosOffset = CalculatePlanarReflectPositionOnPlane(N, V, s.position, plane, cc_cameraPos.xyz, planarReflectionDepthScale);\n vec2 screenUV = GetPlanarReflectScreenUV(worldPosOffset, cc_matViewProj, cc_cameraPos.w, V, R);\n probe = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, mipCount);\n }\n env = unpackRGBE(probe);\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND || CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n if (s.reflectionProbeId < 0.0) {\n env = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2);\n } else {\n vec3 centerPos, boxHalfSize;\n float mipCount;\n GetCubeReflectionProbeData(centerPos, boxHalfSize, mipCount, s.reflectionProbeId);\n vec4 fixedR = CalculateBoxProjectedDirection(R, s.position, centerPos, boxHalfSize);\n env = SampleReflectionProbe(cc_reflectionProbeCubemap, fixedR.xyz, s.roughness, mipCount, isReflectProbeUsingRGBE(s.reflectionProbeId));\n if (s.reflectionProbeBlendId < 0.0) {\n vec3 skyBoxEnv = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2) * lightIntensity;\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n env = mix(env, skyBoxEnv, s.reflectionProbeBlendFactor);\n #else\n env = mix(skyBoxEnv, env, fixedR.w);\n #endif\n }\n }\n #endif\n #endif\n #if CC_USE_REFLECTION_PROBE\n lightIntensity = s.reflectionProbeId < 0.0 ? lightIntensity : 1.0;\n #endif\n finalColor += env * lightIntensity * specular * s.occlusion;\n#if CC_USE_LIGHT_PROBE\n finalColor += SHEvaluate(N) * diffuse * s.occlusion;\n#endif\n finalColor += ambDiff.rgb * cc_ambientSky.w * diffuse * s.occlusion;\n finalColor += s.emissive;\n return vec4(finalColor, s.albedo.a);\n}\nvec3 ACESToneMap (vec3 color) {\n color = min(color, vec3(8.0));\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\nvec4 CCFragOutput (vec4 color) {\n #if CC_USE_RGBE_OUTPUT\n color = packRGBE(color.rgb);\n #elif !CC_USE_FLOAT_OUTPUT\n #if CC_USE_HDR && CC_TONE_MAPPING_TYPE == HDR_TONE_MAPPING_ACES\n color.rgb = ACESToneMap(color.rgb);\n #endif\n color.rgb = LinearToSRGB(color.rgb);\n #endif\n return color;\n}\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\nvoid CC_APPLY_FOG_BASE(inout vec4 color, float factor) {\n\tcolor = vec4(mix(cc_fogColor.rgb, color.rgb, factor), color.a);\n}\n#if !CC_USE_ACCURATE_FOG\nin mediump float v_fog_factor;\n#endif\nvoid CC_APPLY_FOG(inout vec4 color) {\n#if !CC_USE_ACCURATE_FOG\n CC_APPLY_FOG_BASE(color, v_fog_factor);\n#endif\n}\nvoid CC_APPLY_FOG(inout vec4 color, vec3 worldPos) {\n#if CC_USE_ACCURATE_FOG\n float factor;\n CC_TRANSFER_FOG_BASE(vec4(worldPos, 1.0), factor);\n#else\n float factor = v_fog_factor;\n#endif\n CC_APPLY_FOG_BASE(color, factor);\n}\nin highp vec4 v_shadowPos;\n#if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n#endif\n#if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n in vec3 v_luv;\n uniform sampler2D cc_lightingMap;\n void SampleAndDecodeLightMapColor(out vec3 lightmapColor, out float dirShadow, out float ao, sampler2D lightingMap, vec2 luv, float lum, vec3 worldNormal)\n {\n #if CC_LIGHT_MAP_VERSION > 2\n #elif CC_LIGHT_MAP_VERSION > 1\n \tvec4 dataLow = texture(lightingMap, luv);\n \tvec4 dataHigh = texture(lightingMap, luv + vec2(0.5, 0.0));\n \tlightmapColor.xyz = dataLow.xyz + dataHigh.xyz * 0.00392156862745098;\n lightmapColor.rgb *= lum;\n \tdirShadow = dataLow.a;\n \tao = dataHigh.a;\n #else\n vec4 lightmap = texture(lightingMap, luv);\n lightmapColor = lightmap.rgb * lum;\n \tdirShadow = lightmap.a;\n \tao = 1.0;\n #endif\n }\n#endif\nin highp vec3 v_position;\nin mediump vec3 v_normal;\n#if CC_RECEIVE_SHADOW\n in vec2 v_shadowBias;\n#endif\nin mediump vec2 uvw;\nin mediump vec2 uv0;\nin mediump vec2 uv1;\nin mediump vec2 uv2;\nin mediump vec2 uv3;\nin mediump vec3 diffuse;\nin mediump vec3 luv;\nlayout(std140) uniform PbrParams {\n vec4 metallic;\n vec4 roughness;\n};\nuniform sampler2D weightMap;\nuniform sampler2D detailMap0;\nuniform sampler2D detailMap1;\nuniform sampler2D detailMap2;\nuniform sampler2D detailMap3;\nuniform sampler2D normalMap0;\nuniform sampler2D normalMap1;\nuniform sampler2D normalMap2;\nuniform sampler2D normalMap3;\nvoid surf (out StandardSurface s) {\n #if LAYERS > 1\n vec4 w = texture(weightMap, uvw);\n #endif\n vec4 baseColor = vec4(0, 0, 0, 0);\n #if LAYERS == 1\n baseColor = texture(detailMap0, uv0);\n #elif LAYERS == 2\n baseColor += texture(detailMap0, uv0) * w.r;\n baseColor += texture(detailMap1, uv1) * w.g;\n #elif LAYERS == 3\n baseColor += texture(detailMap0, uv0) * w.r;\n baseColor += texture(detailMap1, uv1) * w.g;\n baseColor += texture(detailMap2, uv2) * w.b;\n #elif LAYERS == 4\n baseColor += texture(detailMap0, uv0) * w.r;\n baseColor += texture(detailMap1, uv1) * w.g;\n baseColor += texture(detailMap2, uv2) * w.b;\n baseColor += texture(detailMap3, uv3) * w.a;\n #else\n baseColor = texture(detailMap0, uv0);\n #endif\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n packHighpData(s.position, s.position_fract_part, v_position);\n #else\n s.position = v_position;\n #endif\n #if USE_NORMALMAP\n vec4 baseNormal = vec4(0, 0, 0, 0);\n #if LAYERS == 1\n baseNormal = texture(normalMap0, uv0);\n #elif LAYERS == 2\n baseNormal += texture(normalMap0, uv0) * w.r;\n baseNormal += texture(normalMap1, uv1) * w.g;\n #elif LAYERS == 3\n baseNormal += texture(normalMap0, uv0) * w.r;\n baseNormal += texture(normalMap1, uv1) * w.g;\n baseNormal += texture(normalMap2, uv2) * w.b;\n #elif LAYERS == 4\n baseNormal += texture(normalMap0, uv0) * w.r;\n baseNormal += texture(normalMap1, uv1) * w.g;\n baseNormal += texture(normalMap2, uv2) * w.b;\n baseNormal += texture(normalMap3, uv3) * w.a;\n #else\n baseNormal = texture(normalMap0, uv0);\n #endif\n vec3 tangent = vec3(1.0, 0.0, 0.0);\n vec3 binormal = vec3(0.0, 0.0, 1.0);\n binormal = cross(tangent, v_normal);\n tangent = cross(v_normal, binormal);\n vec3 nmmp = baseNormal.xyz - vec3(0.5);\n s.normal =\n nmmp.x * normalize(tangent) +\n nmmp.y * normalize(binormal) +\n nmmp.z * normalize(v_normal);\n #else\n s.normal = v_normal;\n #endif\n #if CC_RECEIVE_SHADOW\n s.shadowBias = v_shadowBias;\n #endif\n s.albedo = vec4(SRGBToLinear(baseColor.rgb), 1.0);\n s.occlusion = 1.0;\n #if USE_PBR\n s.roughness = 0.0;\n #if LAYERS == 1\n s.roughness = roughness.x;\n #elif LAYERS == 2\n s.roughness += roughness.x * w.r;\n s.roughness += roughness.y * w.g;\n #elif LAYERS == 3\n s.roughness += roughness.x * w.r;\n s.roughness += roughness.y * w.g;\n s.roughness += roughness.z * w.b;\n #elif LAYERS == 4\n s.roughness += roughness.x * w.r;\n s.roughness += roughness.y * w.g;\n s.roughness += roughness.z * w.b;\n s.roughness += roughness.w * w.a;\n #else\n s.roughness = 1.0;\n #endif\n s.specularIntensity = 0.5;\n s.metallic = 0.0;\n #if LAYERS == 1\n s.specularIntensity = 0.5;\n s.metallic = metallic.x;\n #elif LAYERS == 2\n s.metallic += metallic.x * w.r;\n s.metallic += metallic.y * w.g;\n #elif LAYERS == 3\n s.metallic += metallic.x * w.r;\n s.metallic += metallic.y * w.g;\n s.metallic += metallic.z * w.b;\n #elif LAYERS == 4\n s.metallic += metallic.x * w.r;\n s.metallic += metallic.y * w.g;\n s.metallic += metallic.z * w.b;\n s.metallic += metallic.w * w.a;\n #else\n s.specularIntensity = 0.5;\n s.metallic = 0.0;\n #endif\n #else\n s.roughness = 1.0;\n s.specularIntensity = 0.5;\n s.metallic = 0.0;\n #endif\n s.emissive = vec3(0.0, 0.0, 0.0);\n #if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n SampleAndDecodeLightMapColor(s.lightmap.rgb, s.lightmap.a, s.lightmap_test, cc_lightingMap, luv.xy, luv.z, s.normal);\n #endif\n}\n#if CC_FORWARD_ADD\n #if CC_PIPELINE_TYPE == 0\n #define LIGHTS_PER_PASS 1\n #else\n #define LIGHTS_PER_PASS 10\n #endif\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 0\n layout(std140) uniform CCForwardLight {\n highp vec4 cc_lightPos[LIGHTS_PER_PASS];\n vec4 cc_lightColor[LIGHTS_PER_PASS];\n vec4 cc_lightSizeRangeAngle[LIGHTS_PER_PASS];\n vec4 cc_lightDir[LIGHTS_PER_PASS];\n vec4 cc_lightBoundingSizeVS[LIGHTS_PER_PASS];\n };\n #endif\n float SmoothDistAtt (float distSqr, float invSqrAttRadius) {\n float factor = distSqr * invSqrAttRadius;\n float smoothFactor = clamp(1.0 - factor * factor, 0.0, 1.0);\n return smoothFactor * smoothFactor;\n }\n float GetDistAtt (float distSqr, float invSqrAttRadius) {\n float attenuation = 1.0 / max(distSqr, 0.01*0.01);\n attenuation *= SmoothDistAtt(distSqr , invSqrAttRadius);\n return attenuation;\n }\n float GetAngleAtt (vec3 L, vec3 litDir, float litAngleScale, float litAngleOffset) {\n float cd = dot(litDir, L);\n float attenuation = clamp(cd * litAngleScale + litAngleOffset, 0.0, 1.0);\n return (attenuation * attenuation);\n }\n float GetOutOfRange (vec3 worldPos, vec3 lightPos, vec3 lookAt, vec3 right, vec3 BoundingHalfSizeVS) {\n vec3 v = vec3(0.0);\n vec3 up = cross(right, lookAt);\n worldPos -= lightPos;\n v.x = dot(worldPos, right);\n v.y = dot(worldPos, up);\n v.z = dot(worldPos, lookAt);\n vec3 result = step(abs(v), BoundingHalfSizeVS);\n return result.x * result.y * result.z;\n }\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 0\n vec4 CCStandardShadingAdditive (StandardSurface s, vec4 shadowPos) {\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.04), s.albedo.rgb, s.metallic);\n vec3 diffuseContrib = diffuse / PI;\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n float NV = max(abs(dot(N, V)), 0.0);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 finalColor = vec3(0.0);\n int numLights = CC_PIPELINE_TYPE == 0 ? LIGHTS_PER_PASS : int(cc_lightDir[0].w);\n for (int i = 0; i < LIGHTS_PER_PASS; i++) {\n if (i >= numLights) break;\n vec3 SLU = IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w) ? -cc_lightDir[i].xyz : cc_lightPos[i].xyz - position;\n vec3 SL = normalize(SLU);\n vec3 SH = normalize(SL + V);\n float SNL = max(dot(N, SL), 0.0);\n float SNH = max(dot(N, SH), 0.0);\n vec3 lspec = specular * CalcSpecular(s.roughness, SNH, SH, N);\n float illum = 1.0;\n float att = 1.0;\n if (IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w)) {\n att = GetOutOfRange(position, cc_lightPos[i].xyz, cc_lightDir[i].xyz, cc_lightSizeRangeAngle[i].xyz, cc_lightBoundingSizeVS[i].xyz);\n } else {\n float distSqr = dot(SLU, SLU);\n float litRadius = cc_lightSizeRangeAngle[i].x;\n float litRadiusSqr = litRadius * litRadius;\n illum = (IS_POINT_LIGHT(cc_lightPos[i].w) || IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w)) ? 1.0 : litRadiusSqr / max(litRadiusSqr, distSqr);\n float attRadiusSqrInv = 1.0 / max(cc_lightSizeRangeAngle[i].y, 0.01);\n attRadiusSqrInv *= attRadiusSqrInv;\n att = GetDistAtt(distSqr, attRadiusSqrInv);\n if (IS_SPOT_LIGHT(cc_lightPos[i].w)) {\n float cosInner = max(dot(-cc_lightDir[i].xyz, SL), 0.01);\n float cosOuter = cc_lightSizeRangeAngle[i].z;\n float strength = clamp(cc_lightBoundingSizeVS[i].w, 0.0, 1.0);\n float litAngleScale = 1.0 / max(0.001, mix(cosInner, 1.0, strength) - cosOuter);\n float litAngleOffset = -cosOuter * litAngleScale;\n att *= GetAngleAtt(SL, -cc_lightDir[i].xyz, litAngleScale, litAngleOffset);\n }\n }\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (IS_SPOT_LIGHT(cc_lightPos[i].w) && cc_lightSizeRangeAngle[i].w > 0.0) {\n shadow = CCSpotShadowFactorBase(shadowPos, position, s.shadowBias);\n }\n #endif\n finalColor += SNL * cc_lightColor[i].rgb * shadow * cc_lightColor[i].w * illum * att * (diffuseContrib + lspec);\n }\n return vec4(finalColor, 0.0);\n }\n #endif\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 1\n layout(std430, binding = 0) readonly buffer b_ccLightsBuffer { vec4 b_ccLights[]; };\n layout(std430, binding = 1) readonly buffer b_clusterLightIndicesBuffer { uint b_clusterLightIndices[]; };\n layout(std430, binding = 2) readonly buffer b_clusterLightGridBuffer { uvec4 b_clusterLightGrid[]; };\n struct CCLight\n {\n vec4 cc_lightPos;\n vec4 cc_lightColor;\n vec4 cc_lightSizeRangeAngle;\n vec4 cc_lightDir;\n vec4 cc_lightBoundingSizeVS;\n };\n struct Cluster\n {\n vec3 minBounds;\n vec3 maxBounds;\n };\n struct LightGrid\n {\n uint offset;\n uint ccLights;\n };\n CCLight getCCLight(uint i)\n {\n CCLight light;\n light.cc_lightPos = b_ccLights[5u * i + 0u];\n light.cc_lightColor = b_ccLights[5u * i + 1u];\n light.cc_lightSizeRangeAngle = b_ccLights[5u * i + 2u];\n light.cc_lightDir = b_ccLights[5u * i + 3u];\n light.cc_lightBoundingSizeVS = b_ccLights[5u * i + 4u];\n return light;\n }\n LightGrid getLightGrid(uint cluster)\n {\n uvec4 gridvec = b_clusterLightGrid[cluster];\n LightGrid grid;\n grid.offset = gridvec.x;\n grid.ccLights = gridvec.y;\n return grid;\n }\n uint getGridLightIndex(uint start, uint offset)\n {\n return b_clusterLightIndices[start + offset];\n }\n uint getClusterZIndex(vec4 worldPos)\n {\n float scale = float(24u) / log(cc_nearFar.y / cc_nearFar.x);\n float bias = -(float(24u) * log(cc_nearFar.x) / log(cc_nearFar.y / cc_nearFar.x));\n float eyeDepth = -(cc_matView * worldPos).z;\n uint zIndex = uint(max(log(eyeDepth) * scale + bias, 0.0));\n return zIndex;\n }\n uint getClusterIndex(vec4 fragCoord, vec4 worldPos)\n {\n uint zIndex = getClusterZIndex(worldPos);\n float clusterSizeX = ceil(cc_viewPort.z / float(16u));\n float clusterSizeY = ceil(cc_viewPort.w / float(8u));\n uvec3 indices = uvec3(uvec2(fragCoord.xy / vec2(clusterSizeX, clusterSizeY)), zIndex);\n uint cluster = (16u * 8u) * indices.z + 16u * indices.y + indices.x;\n return cluster;\n }\n vec4 CCClusterShadingAdditive (StandardSurface s, vec4 shadowPos) {\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.04), s.albedo.rgb, s.metallic);\n vec3 diffuseContrib = diffuse / PI;\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n float NV = max(abs(dot(N, V)), 0.001);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 finalColor = vec3(0.0);\n uint cluster = getClusterIndex(gl_FragCoord, vec4(position, 1.0));\n LightGrid grid = getLightGrid(cluster);\n uint numLights = grid.ccLights;\n for (uint i = 0u; i < 200u; i++) {\n if (i >= numLights) break;\n uint lightIndex = getGridLightIndex(grid.offset, i);\n CCLight light = getCCLight(lightIndex);\n vec3 SLU = light.cc_lightPos.xyz - position;\n vec3 SL = normalize(SLU);\n vec3 SH = normalize(SL + V);\n float SNL = max(dot(N, SL), 0.001);\n float SNH = max(dot(N, SH), 0.0);\n float distSqr = dot(SLU, SLU);\n float litRadius = light.cc_lightSizeRangeAngle.x;\n float litRadiusSqr = litRadius * litRadius;\n float illum = PI * (litRadiusSqr / max(litRadiusSqr , distSqr));\n float attRadiusSqrInv = 1.0 / max(light.cc_lightSizeRangeAngle.y, 0.01);\n attRadiusSqrInv *= attRadiusSqrInv;\n float att = GetDistAtt(distSqr, attRadiusSqrInv);\n vec3 lspec = specular * CalcSpecular(s.roughness, SNH, SH, N);\n if (IS_SPOT_LIGHT(light.cc_lightPos.w)) {\n float cosInner = max(dot(-light.cc_lightDir.xyz, SL), 0.01);\n float cosOuter = light.cc_lightSizeRangeAngle.z;\n float litAngleScale = 1.0 / max(0.001, cosInner - cosOuter);\n float litAngleOffset = -cosOuter * litAngleScale;\n att *= GetAngleAtt(SL, -light.cc_lightDir.xyz, litAngleScale, litAngleOffset);\n }\n vec3 lightColor = light.cc_lightColor.rgb;\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (IS_SPOT_LIGHT(light.cc_lightPos.w) && light.cc_lightSizeRangeAngle.w > 0.0) {\n shadow = CCSpotShadowFactorBase(shadowPos, position, s.shadowBias);\n }\n #endif\n lightColor *= shadow;\n finalColor += SNL * lightColor * light.cc_lightColor.w * illum * att * (diffuseContrib + lspec);\n }\n return vec4(finalColor, 0.0);\n }\n #endif\n layout(location = 0) out vec4 fragColorX;\n void main () {\n StandardSurface s; surf(s);\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 1\n vec4 color = CCClusterShadingAdditive(s, v_shadowPos);\n #else\n vec4 color = CCStandardShadingAdditive(s, v_shadowPos);\n #endif\n fragColorX = CCFragOutput(color);\n }\n#elif (CC_PIPELINE_TYPE == 0 || CC_FORCE_FORWARD_SHADING)\n layout(location = 0) out vec4 fragColorX;\n void main () {\n StandardSurface s; surf(s);\n vec4 color = CCStandardShadingBase(s, v_shadowPos);\n #if CC_USE_FOG != 4\n #if CC_USE_FLOAT_OUTPUT\n CC_APPLY_FOG(color, s.position.xyz);\n #elif !CC_FORWARD_ADD\n CC_APPLY_FOG(color, s.position.xyz);\n #endif\n #endif\n fragColorX = CCFragOutput(color);\n }\n#elif CC_PIPELINE_TYPE == 1\n vec2 signNotZero(vec2 v) {\n return vec2((v.x >= 0.0) ? +1.0 : -1.0, (v.y >= 0.0) ? +1.0 : -1.0);\n }\n vec2 float32x3_to_oct(in vec3 v) {\n vec2 p = v.xy * (1.0 / (abs(v.x) + abs(v.y) + abs(v.z)));\n return (v.z <= 0.0) ? ((1.0 - abs(p.yx)) * signNotZero(p)) : p;\n }\n layout(location = 0) out vec4 albedoOut;\n layout(location = 1) out vec4 emissiveOut;\n layout(location = 2) out vec4 normalOut;\n void main () {\n StandardSurface s; surf(s);\n albedoOut = s.albedo;\n normalOut = vec4(float32x3_to_oct(s.normal), s.roughness, s.metallic);\n emissiveOut = vec4(s.emissive, s.occlusion);\n }\n#endif"},"glsl1":{"vert":"\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod: enable\n#endif\nprecision mediump float;\nuniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\n uniform mediump vec4 cc_fogBase;\n uniform mediump vec4 cc_fogAdd;\nuniform highp mat4 cc_matWorld;\n uniform highp vec4 cc_lightingMapUVParam;\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\n#if !CC_USE_ACCURATE_FOG\nvarying mediump float v_fog_factor;\n#endif\nvoid CC_TRANSFER_FOG(vec4 pos) {\n#if !CC_USE_ACCURATE_FOG\n CC_TRANSFER_FOG_BASE(pos, v_fog_factor);\n#endif\n}\nvarying highp vec4 v_shadowPos;\nuniform highp mat4 cc_matLightViewProj;\n#if CC_SUPPORT_CASCADED_SHADOW_MAP\n #endif\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\n#if defined(CC_USE_METAL) || defined(CC_USE_WGPU)\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y) y = -y\n#else\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y)\n#endif\n#if CC_RECEIVE_SHADOW\n uniform highp sampler2D cc_shadowMap;\n uniform highp sampler2D cc_spotShadowMap;\n #define UnpackBitFromFloat(value, bit) (mod(floor(value / pow(10.0, float(bit))), 10.0) > 0.0)\n #if CC_SUPPORT_CASCADED_SHADOW_MAP\n #else\n #endif\n#endif\n#if CC_RECEIVE_SHADOW\n#endif\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\n#if CC_RECEIVE_SHADOW\n varying vec2 v_shadowBias;\n#endif\nvarying highp vec3 v_position;\nvarying mediump vec3 v_normal;\nvarying mediump vec2 uvw;\nvarying mediump vec2 uv0;\nvarying mediump vec2 uv1;\nvarying mediump vec2 uv2;\nvarying mediump vec2 uv3;\nvarying mediump vec3 luv;\nvarying mediump vec3 diffuse;\n uniform vec4 UVScale;\nvoid main () {\n vec3 worldPos;\n worldPos.x = cc_matWorld[3][0] + a_position.x;\n worldPos.y = cc_matWorld[3][1] + a_position.y;\n worldPos.z = cc_matWorld[3][2] + a_position.z;\n vec4 pos = vec4(worldPos, 1.0);\n pos = cc_matViewProj * pos;\n uvw = a_texCoord;\n uv0 = a_position.xz * UVScale.x;\n uv1 = a_position.xz * UVScale.y;\n uv2 = a_position.xz * UVScale.z;\n uv3 = a_position.xz * UVScale.w;\n #if CC_USE_LIGHTMAP\n luv.xy = cc_lightingMapUVParam.xy + a_texCoord * cc_lightingMapUVParam.z;\n luv.z = cc_lightingMapUVParam.w;\n #endif\n v_position = worldPos;\n v_normal = a_normal;\n CC_TRANSFER_FOG(vec4(worldPos, 1.0));\n #if CC_RECEIVE_SHADOW\n v_shadowBias = vec2(0.0, 0.0);\n #endif\n v_shadowPos = cc_matLightViewProj * vec4(worldPos, 1.0);\n gl_Position = pos;\n}","frag":"\n#ifdef GL_EXT_draw_buffers\n#extension GL_EXT_draw_buffers: enable\n#endif\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives: enable\n#endif\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod: enable\n#endif\nprecision highp float;\nuniform mediump vec4 cc_probeInfo;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\n uniform mediump vec4 cc_surfaceTransform;\n uniform mediump vec4 cc_exposure;\n uniform mediump vec4 cc_mainLitDir;\n uniform mediump vec4 cc_mainLitColor;\n uniform mediump vec4 cc_ambientSky;\n uniform mediump vec4 cc_ambientGround;\n uniform mediump vec4 cc_fogColor;\n uniform mediump vec4 cc_fogBase;\n uniform mediump vec4 cc_fogAdd;\n uniform mediump vec4 cc_nearFar;\n uniform mediump vec4 cc_viewPort;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nvec3 SRGBToLinear (vec3 gamma) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return gamma;\n }\n #endif\n#endif\n return gamma * gamma;\n}\nvec3 LinearToSRGB(vec3 linear) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return linear;\n }\n #endif\n#endif\n return sqrt(linear);\n}\nuniform highp mat4 cc_matLightView;\n uniform highp mat4 cc_matLightViewProj;\n uniform highp vec4 cc_shadowInvProjDepthInfo;\n uniform highp vec4 cc_shadowProjDepthInfo;\n uniform highp vec4 cc_shadowProjInfo;\n uniform mediump vec4 cc_shadowNFLSInfo;\n uniform mediump vec4 cc_shadowWHPBInfo;\n#if CC_SUPPORT_CASCADED_SHADOW_MAP\n uniform highp vec4 cc_csmViewDir0[4];\n uniform highp vec4 cc_csmViewDir1[4];\n uniform highp vec4 cc_csmViewDir2[4];\n uniform highp vec4 cc_csmAtlas[4];\n uniform highp mat4 cc_matCSMViewProj[4];\n uniform highp vec4 cc_csmProjDepthInfo[4];\n uniform highp vec4 cc_csmProjInfo[4];\n uniform highp vec4 cc_csmSplitsInfo;\n#endif\n#if defined(CC_USE_METAL) || defined(CC_USE_WGPU)\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y) y = -y\n#else\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y)\n#endif\nvec2 GetPlanarReflectScreenUV(vec3 worldPos, mat4 matVirtualCameraViewProj, float flipNDCSign, vec3 viewDir, vec3 reflectDir)\n{\n vec4 clipPos = matVirtualCameraViewProj * vec4(worldPos, 1.0);\n vec2 screenUV = clipPos.xy / clipPos.w * 0.5 + 0.5;\n screenUV = vec2(1.0 - screenUV.x, screenUV.y);\n screenUV = flipNDCSign == 1.0 ? vec2(screenUV.x, 1.0 - screenUV.y) : screenUV;\n return screenUV;\n}\nfloat GetLinearDepthFromViewSpace(vec3 viewPos, float near, float far) {\n float dist = length(viewPos);\n return (dist - near) / (far - near);\n}\nvec3 RotationVecFromAxisY(vec3 v, float cosTheta, float sinTheta)\n{\n vec3 result;\n result.x = dot(v, vec3(cosTheta, 0.0, -sinTheta));\n result.y = v.y;\n result.z = dot(v, vec3(sinTheta, 0.0, cosTheta));\n return result;\n}\nvec3 RotationVecFromAxisY(vec3 v, float rotateAngleArc)\n{\n return RotationVecFromAxisY(v, cos(rotateAngleArc), sin(rotateAngleArc));\n}\nfloat CCGetLinearDepth(vec3 worldPos, float viewSpaceBias) {\n\tvec4 viewPos = cc_matLightView * vec4(worldPos.xyz, 1.0);\n viewPos.z += viewSpaceBias;\n\treturn GetLinearDepthFromViewSpace(viewPos.xyz, cc_shadowNFLSInfo.x, cc_shadowNFLSInfo.y);\n}\nfloat CCGetLinearDepth(vec3 worldPos) {\n\treturn CCGetLinearDepth(worldPos, 0.0);\n}\n#if CC_RECEIVE_SHADOW\n uniform highp sampler2D cc_shadowMap;\n uniform highp sampler2D cc_spotShadowMap;\n #define UnpackBitFromFloat(value, bit) (mod(floor(value / pow(10.0, float(bit))), 10.0) > 0.0)\n highp float unpackHighpData (float mainPart, float modPart) {\n highp float data = mainPart;\n return data + modPart;\n }\n void packHighpData (out float mainPart, out float modPart, highp float data) {\n mainPart = fract(data);\n modPart = data - mainPart;\n }\n highp float unpackHighpData (float mainPart, float modPart, const float modValue) {\n highp float data = mainPart * modValue;\n return data + modPart * modValue;\n }\n void packHighpData (out float mainPart, out float modPart, highp float data, const float modValue) {\n highp float divide = data / modValue;\n mainPart = floor(divide);\n modPart = (data - mainPart * modValue) / modValue;\n }\n highp vec2 unpackHighpData (vec2 mainPart, vec2 modPart) {\n highp vec2 data = mainPart;\n return data + modPart;\n }\n void packHighpData (out vec2 mainPart, out vec2 modPart, highp vec2 data) {\n mainPart = fract(data);\n modPart = data - mainPart;\n }\n highp vec2 unpackHighpData (vec2 mainPart, vec2 modPart, const float modValue) {\n highp vec2 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n void packHighpData (out vec2 mainPart, out vec2 modPart, highp vec2 data, const float modValue) {\n highp vec2 divide = data / modValue;\n mainPart = floor(divide);\n modPart = (data - mainPart * modValue) / modValue;\n }\n highp vec3 unpackHighpData (vec3 mainPart, vec3 modPart) {\n highp vec3 data = mainPart;\n return data + modPart;\n }\n void packHighpData (out vec3 mainPart, out vec3 modPart, highp vec3 data) {\n mainPart = fract(data);\n modPart = data - mainPart;\n }\n highp vec3 unpackHighpData (vec3 mainPart, vec3 modPart, const float modValue) {\n highp vec3 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n void packHighpData (out vec3 mainPart, out vec3 modPart, highp vec3 data, const float modValue) {\n highp vec3 divide = data / modValue;\n mainPart = floor(divide);\n modPart = (data - mainPart * modValue) / modValue;\n }\n highp vec4 unpackHighpData (vec4 mainPart, vec4 modPart) {\n highp vec4 data = mainPart;\n return data + modPart;\n }\n void packHighpData (out vec4 mainPart, out vec4 modPart, highp vec4 data) {\n mainPart = fract(data);\n modPart = data - mainPart;\n }\n highp vec4 unpackHighpData (vec4 mainPart, vec4 modPart, const float modValue) {\n highp vec4 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n void packHighpData (out vec4 mainPart, out vec4 modPart, highp vec4 data, const float modValue) {\n highp vec4 divide = data / modValue;\n mainPart = floor(divide);\n modPart = (data - mainPart * modValue) / modValue;\n }\n vec4 shadowTexure(highp sampler2D shadowMap, vec2 coord) {\n #if defined(CC_USE_WGPU)\n return texture2DLod(shadowMap, coord, 0.0);\n #else\n return texture2D(shadowMap, coord);\n #endif\n }\n float NativePCFShadowFactorHard (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n #if CC_SHADOWMAP_FORMAT == 1\n return step(shadowNDCPos.z, dot(shadowTexure(shadowMap, shadowNDCPos.xy), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n return step(shadowNDCPos.z, shadowTexure(shadowMap, shadowNDCPos.xy).x);\n #endif\n }\n float NativePCFShadowFactorSoft (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n vec2 shadowNDCPos_offset = shadowNDCPos.xy + oneTap;\n float block0, block1, block2, block3;\n #if CC_SHADOWMAP_FORMAT == 1\n block0 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos_offset.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block0 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)).x);\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos.y)).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset.y)).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos_offset.y)).x);\n #endif\n float coefX = mod(shadowNDCPos.x, oneTap.x) * shadowMapResolution.x;\n float resultX = mix(block0, block1, coefX);\n float resultY = mix(block2, block3, coefX);\n float coefY = mod(shadowNDCPos.y, oneTap.y) * shadowMapResolution.y;\n return mix(resultX, resultY, coefY);\n }\n float NativePCFShadowFactorSoft3X (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n float shadowNDCPos_offset_L = shadowNDCPos.x - oneTap.x;\n float shadowNDCPos_offset_R = shadowNDCPos.x + oneTap.x;\n float shadowNDCPos_offset_U = shadowNDCPos.y - oneTap.y;\n float shadowNDCPos_offset_D = shadowNDCPos.y + oneTap.y;\n float block0, block1, block2, block3, block4, block5, block6, block7, block8;\n #if CC_SHADOWMAP_FORMAT == 1\n block0 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block4 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block5 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block6 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block7 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block8 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block0 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_U)).x);\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_U)).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_U)).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos.y)).x);\n block4 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)).x);\n block5 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos.y)).x);\n block6 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_D)).x);\n block7 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_D)).x);\n block8 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_D)).x);\n #endif\n float coefX = mod(shadowNDCPos.x, oneTap.x) * shadowMapResolution.x;\n float coefY = mod(shadowNDCPos.y, oneTap.y) * shadowMapResolution.y;\n float shadow = 0.0;\n float resultX = mix(block0, block1, coefX);\n float resultY = mix(block3, block4, coefX);\n shadow += mix(resultX , resultY, coefY);\n resultX = mix(block1, block2, coefX);\n resultY = mix(block4, block5, coefX);\n shadow += mix(resultX , resultY, coefY);\n resultX = mix(block3, block4, coefX);\n resultY = mix(block6, block7, coefX);\n shadow += mix(resultX, resultY, coefY);\n resultX = mix(block4, block5, coefX);\n resultY = mix(block7, block8, coefX);\n shadow += mix(resultX, resultY, coefY);\n return shadow * 0.25;\n }\n float NativePCFShadowFactorSoft5X (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n vec2 twoTap = oneTap * 2.0;\n vec2 offset1 = shadowNDCPos.xy + vec2(-twoTap.x, -twoTap.y);\n vec2 offset2 = shadowNDCPos.xy + vec2(-oneTap.x, -twoTap.y);\n vec2 offset3 = shadowNDCPos.xy + vec2(0.0, -twoTap.y);\n vec2 offset4 = shadowNDCPos.xy + vec2(oneTap.x, -twoTap.y);\n vec2 offset5 = shadowNDCPos.xy + vec2(twoTap.x, -twoTap.y);\n vec2 offset6 = shadowNDCPos.xy + vec2(-twoTap.x, -oneTap.y);\n vec2 offset7 = shadowNDCPos.xy + vec2(-oneTap.x, -oneTap.y);\n vec2 offset8 = shadowNDCPos.xy + vec2(0.0, -oneTap.y);\n vec2 offset9 = shadowNDCPos.xy + vec2(oneTap.x, -oneTap.y);\n vec2 offset10 = shadowNDCPos.xy + vec2(twoTap.x, -oneTap.y);\n vec2 offset11 = shadowNDCPos.xy + vec2(-twoTap.x, 0.0);\n vec2 offset12 = shadowNDCPos.xy + vec2(-oneTap.x, 0.0);\n vec2 offset13 = shadowNDCPos.xy + vec2(0.0, 0.0);\n vec2 offset14 = shadowNDCPos.xy + vec2(oneTap.x, 0.0);\n vec2 offset15 = shadowNDCPos.xy + vec2(twoTap.x, 0.0);\n vec2 offset16 = shadowNDCPos.xy + vec2(-twoTap.x, oneTap.y);\n vec2 offset17 = shadowNDCPos.xy + vec2(-oneTap.x, oneTap.y);\n vec2 offset18 = shadowNDCPos.xy + vec2(0.0, oneTap.y);\n vec2 offset19 = shadowNDCPos.xy + vec2(oneTap.x, oneTap.y);\n vec2 offset20 = shadowNDCPos.xy + vec2(twoTap.x, oneTap.y);\n vec2 offset21 = shadowNDCPos.xy + vec2(-twoTap.x, twoTap.y);\n vec2 offset22 = shadowNDCPos.xy + vec2(-oneTap.x, twoTap.y);\n vec2 offset23 = shadowNDCPos.xy + vec2(0.0, twoTap.y);\n vec2 offset24 = shadowNDCPos.xy + vec2(oneTap.x, twoTap.y);\n vec2 offset25 = shadowNDCPos.xy + vec2(twoTap.x, twoTap.y);\n float block1, block2, block3, block4, block5, block6, block7, block8, block9, block10, block11, block12, block13, block14, block15, block16, block17, block18, block19, block20, block21, block22, block23, block24, block25;\n #if CC_SHADOWMAP_FORMAT == 1\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset1), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset2), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset3), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block4 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset4), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block5 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset5), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block6 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset6), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block7 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset7), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block8 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset8), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block9 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset9), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block10 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset10), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block11 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset11), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block12 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset12), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block13 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset13), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block14 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset14), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block15 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset15), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block16 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset16), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block17 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset17), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block18 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset18), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block19 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset19), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block20 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset20), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block21 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset21), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block22 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset22), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block23 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset23), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block24 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset24), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block25 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset25), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset1).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset2).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset3).x);\n block4 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset4).x);\n block5 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset5).x);\n block6 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset6).x);\n block7 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset7).x);\n block8 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset8).x);\n block9 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset9).x);\n block10 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset10).x);\n block11 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset11).x);\n block12 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset12).x);\n block13 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset13).x);\n block14 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset14).x);\n block15 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset15).x);\n block16 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset16).x);\n block17 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset17).x);\n block18 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset18).x);\n block19 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset19).x);\n block20 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset20).x);\n block21 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset21).x);\n block22 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset22).x);\n block23 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset23).x);\n block24 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset24).x);\n block25 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset25).x);\n #endif\n vec2 coef = fract(shadowNDCPos.xy * shadowMapResolution);\n vec2 v1X1 = mix(vec2(block1, block6), vec2(block2, block7), coef.xx);\n vec2 v1X2 = mix(vec2(block2, block7), vec2(block3, block8), coef.xx);\n vec2 v1X3 = mix(vec2(block3, block8), vec2(block4, block9), coef.xx);\n vec2 v1X4 = mix(vec2(block4, block9), vec2(block5, block10), coef.xx);\n float v1 = mix(v1X1.x, v1X1.y, coef.y) + mix(v1X2.x, v1X2.y, coef.y) + mix(v1X3.x, v1X3.y, coef.y) + mix(v1X4.x, v1X4.y, coef.y);\n vec2 v2X1 = mix(vec2(block6, block11), vec2(block7, block12), coef.xx);\n vec2 v2X2 = mix(vec2(block7, block12), vec2(block8, block13), coef.xx);\n vec2 v2X3 = mix(vec2(block8, block13), vec2(block9, block14), coef.xx);\n vec2 v2X4 = mix(vec2(block9, block14), vec2(block10, block15), coef.xx);\n float v2 = mix(v2X1.x, v2X1.y, coef.y) + mix(v2X2.x, v2X2.y, coef.y) + mix(v2X3.x, v2X3.y, coef.y) + mix(v2X4.x, v2X4.y, coef.y);\n vec2 v3X1 = mix(vec2(block11, block16), vec2(block12, block17), coef.xx);\n vec2 v3X2 = mix(vec2(block12, block17), vec2(block13, block18), coef.xx);\n vec2 v3X3 = mix(vec2(block13, block18), vec2(block14, block19), coef.xx);\n vec2 v3X4 = mix(vec2(block14, block19), vec2(block15, block20), coef.xx);\n float v3 = mix(v3X1.x, v3X1.y, coef.y) + mix(v3X2.x, v3X2.y, coef.y) + mix(v3X3.x, v3X3.y, coef.y) + mix(v3X4.x, v3X4.y, coef.y);\n vec2 v4X1 = mix(vec2(block16, block21), vec2(block17, block22), coef.xx);\n vec2 v4X2 = mix(vec2(block17, block22), vec2(block18, block23), coef.xx);\n vec2 v4X3 = mix(vec2(block18, block23), vec2(block19, block24), coef.xx);\n vec2 v4X4 = mix(vec2(block19, block24), vec2(block20, block25), coef.xx);\n float v4 = mix(v4X1.x, v4X1.y, coef.y) + mix(v4X2.x, v4X2.y, coef.y) + mix(v4X3.x, v4X3.y, coef.y) + mix(v4X4.x, v4X4.y, coef.y);\n float fAvg = (v1 + v2 + v3 + v4) * 0.0625;\n return fAvg;\n }\n bool GetShadowNDCPos(out vec3 shadowNDCPos, vec4 shadowPosWithDepthBias)\n {\n \tshadowNDCPos = shadowPosWithDepthBias.xyz / shadowPosWithDepthBias.w * 0.5 + 0.5;\n \tif (shadowNDCPos.x < 0.0 || shadowNDCPos.x > 1.0 ||\n \t\tshadowNDCPos.y < 0.0 || shadowNDCPos.y > 1.0 ||\n \t\tshadowNDCPos.z < 0.0 || shadowNDCPos.z > 1.0) {\n \t\treturn false;\n \t}\n \tshadowNDCPos.xy = cc_cameraPos.w == 1.0 ? vec2(shadowNDCPos.xy.x, 1.0 - shadowNDCPos.xy.y) : shadowNDCPos.xy;\n \treturn true;\n }\n vec4 ApplyShadowDepthBias_FaceNormal(vec4 shadowPos, vec3 worldNormal, float normalBias, vec3 matViewDir0, vec3 matViewDir1, vec3 matViewDir2, vec2 projScaleXY)\n {\n vec4 newShadowPos = shadowPos;\n if (normalBias > EPSILON_LOWP)\n {\n vec3 viewNormal = vec3(dot(matViewDir0, worldNormal), dot(matViewDir1, worldNormal), dot(matViewDir2, worldNormal));\n if (viewNormal.z < 0.1)\n newShadowPos.xy += viewNormal.xy * projScaleXY * normalBias * clamp(viewNormal.z, 0.001, 0.1);\n }\n return newShadowPos;\n }\n vec4 ApplyShadowDepthBias_FaceNormal(vec4 shadowPos, vec3 worldNormal, float normalBias, mat4 matLightView, vec2 projScaleXY)\n {\n \tvec4 newShadowPos = shadowPos;\n \tif (normalBias > EPSILON_LOWP)\n \t{\n \t\tvec4 viewNormal = matLightView * vec4(worldNormal, 0.0);\n \t\tif (viewNormal.z < 0.1)\n \t\t\tnewShadowPos.xy += viewNormal.xy * projScaleXY * normalBias * clamp(viewNormal.z, 0.001, 0.1);\n \t}\n \treturn newShadowPos;\n }\n float GetViewSpaceDepthFromNDCDepth_Orthgraphic(float NDCDepth, float projScaleZ, float projBiasZ)\n {\n \treturn (NDCDepth - projBiasZ) / projScaleZ;\n }\n float GetViewSpaceDepthFromNDCDepth_Perspective(float NDCDepth, float homogenousDividW, float invProjScaleZ, float invProjBiasZ)\n {\n \treturn NDCDepth * invProjScaleZ + homogenousDividW * invProjBiasZ;\n }\n vec4 ApplyShadowDepthBias_Perspective(vec4 shadowPos, float viewspaceDepthBias)\n {\n \tvec3 viewSpacePos;\n \tviewSpacePos.xy = shadowPos.xy * cc_shadowProjInfo.zw;\n \tviewSpacePos.z = GetViewSpaceDepthFromNDCDepth_Perspective(shadowPos.z, shadowPos.w, cc_shadowInvProjDepthInfo.x, cc_shadowInvProjDepthInfo.y);\n \tviewSpacePos.xyz += cc_shadowProjDepthInfo.z * normalize(viewSpacePos.xyz) * viewspaceDepthBias;\n \tvec4 clipSpacePos;\n \tclipSpacePos.xy = viewSpacePos.xy * cc_shadowProjInfo.xy;\n \tclipSpacePos.zw = viewSpacePos.z * cc_shadowProjDepthInfo.xz + vec2(cc_shadowProjDepthInfo.y, 0.0);\n \t#if CC_SHADOWMAP_USE_LINEAR_DEPTH\n \t\tclipSpacePos.z = GetLinearDepthFromViewSpace(viewSpacePos.xyz, cc_shadowNFLSInfo.x, cc_shadowNFLSInfo.y);\n \t\tclipSpacePos.z = (clipSpacePos.z * 2.0 - 1.0) * clipSpacePos.w;\n \t#endif\n \treturn clipSpacePos;\n }\n vec4 ApplyShadowDepthBias_Orthographic(vec4 shadowPos, float viewspaceDepthBias, float projScaleZ, float projBiasZ)\n {\n \tfloat coeffA = projScaleZ;\n \tfloat coeffB = projBiasZ;\n \tfloat viewSpacePos_z = GetViewSpaceDepthFromNDCDepth_Orthgraphic(shadowPos.z, projScaleZ, projBiasZ);\n \tviewSpacePos_z += viewspaceDepthBias;\n \tvec4 result = shadowPos;\n \tresult.z = viewSpacePos_z * coeffA + coeffB;\n \treturn result;\n }\n vec4 ApplyShadowDepthBias_PerspectiveLinearDepth(vec4 shadowPos, float viewspaceDepthBias, vec3 worldPos)\n {\n shadowPos.z = CCGetLinearDepth(worldPos, viewspaceDepthBias) * 2.0 - 1.0;\n shadowPos.z *= shadowPos.w;\n return shadowPos;\n }\n float CCGetDirLightShadowFactorHard (vec4 shadowPosWithDepthBias) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorHard(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft (vec4 shadowPosWithDepthBias) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft3X (vec4 shadowPosWithDepthBias) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft3X(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft5X (vec4 shadowPosWithDepthBias) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft5X(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorHard (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorHard(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft3X (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft3X(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft5X (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n\t vec3 shadowNDCPos;\n\t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n\t\t return 1.0;\n\t }\n return NativePCFShadowFactorSoft5X(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCSpotShadowFactorBase(out vec4 shadowPosWithDepthBias, vec4 shadowPos, vec3 worldPos, vec2 shadowBias)\n {\n float pcf = cc_shadowWHPBInfo.z;\n vec4 pos = vec4(1.0);\n #if CC_SHADOWMAP_USE_LINEAR_DEPTH\n pos = ApplyShadowDepthBias_PerspectiveLinearDepth(shadowPos, shadowBias.x, worldPos);\n #else\n pos = ApplyShadowDepthBias_Perspective(shadowPos, shadowBias.x);\n #endif\n float realtimeShadow = 1.0;\n if (pcf > 2.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft5X(pos, worldPos);\n }else if (pcf > 1.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft3X(pos, worldPos);\n }else if (pcf > 0.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft(pos, worldPos);\n }else {\n realtimeShadow = CCGetSpotLightShadowFactorHard(pos, worldPos);\n }\n shadowPosWithDepthBias = pos;\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n }\n float CCShadowFactorBase(out vec4 shadowPosWithDepthBias, vec4 shadowPos, vec3 N, vec2 shadowBias)\n {\n vec4 pos = ApplyShadowDepthBias_FaceNormal(shadowPos, N, shadowBias.y, cc_matLightView, cc_shadowProjInfo.xy);\n pos = ApplyShadowDepthBias_Orthographic(pos, shadowBias.x, cc_shadowProjDepthInfo.x, cc_shadowProjDepthInfo.y);\n float realtimeShadow = 1.0;\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n realtimeShadow = CCGetDirLightShadowFactorSoft5X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n realtimeShadow = CCGetDirLightShadowFactorSoft3X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n realtimeShadow = CCGetDirLightShadowFactorSoft(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n realtimeShadow = CCGetDirLightShadowFactorHard(pos);\n #endif\n shadowPosWithDepthBias = pos;\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n }\n #if CC_SUPPORT_CASCADED_SHADOW_MAP\n bool CCGetCSMLevelWithTransition(out highp float ratio, vec3 clipPos) {\n highp float maxRange = 1.0 - cc_csmSplitsInfo.x;\n highp float minRange = cc_csmSplitsInfo.x;\n highp float thresholdInvert = 1.0 / cc_csmSplitsInfo.x;\n ratio = 0.0;\n if (clipPos.x <= minRange) {\n ratio = clipPos.x * thresholdInvert;\n return true;\n }\n if (clipPos.x >= maxRange) {\n ratio = 1.0 - (clipPos.x - maxRange) * thresholdInvert;\n return true;\n }\n if (clipPos.y <= minRange) {\n ratio = clipPos.y * thresholdInvert;\n return true;\n }\n if (clipPos.y >= maxRange) {\n ratio = 1.0 - (clipPos.y - maxRange) * thresholdInvert;\n return true;\n }\n return false;\n }\n bool CCHasCSMLevel(int level, vec3 worldPos) {\n highp float layerThreshold = cc_csmViewDir0[0].w;\n bool hasLevel = false;\n for (int i = 0; i < 4; i++) {\n if (i == level) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0) {\n hasLevel = true;\n }\n }\n }\n return hasLevel;\n }\n void CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos, int level) {\n highp float layerThreshold = cc_csmViewDir0[0].w;\n for (int i = 0; i < 4; i++) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0 && i == level) {\n csmPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n csmPos.xy = csmPos.xy * cc_csmAtlas[i].xy + cc_csmAtlas[i].zw;\n shadowProjDepthInfo = cc_csmProjDepthInfo[i];\n shadowProjInfo = cc_csmProjInfo[i];\n shadowViewDir0 = cc_csmViewDir0[i].xyz;\n shadowViewDir1 = cc_csmViewDir1[i].xyz;\n shadowViewDir2 = cc_csmViewDir2[i].xyz;\n }\n }\n }\n int CCGetCSMLevel(out bool isTransitionArea, out highp float transitionRatio, out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos)\n {\n int level = -1;\n highp float layerThreshold = cc_csmViewDir0[0].w;\n for (int i = 0; i < 4; i++) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0 && level < 0) {\n #if CC_CASCADED_LAYERS_TRANSITION\n isTransitionArea = CCGetCSMLevelWithTransition(transitionRatio, clipPos);\n #endif\n csmPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n csmPos.xy = csmPos.xy * cc_csmAtlas[i].xy + cc_csmAtlas[i].zw;\n shadowProjDepthInfo = cc_csmProjDepthInfo[i];\n shadowProjInfo = cc_csmProjInfo[i];\n shadowViewDir0 = cc_csmViewDir0[i].xyz;\n shadowViewDir1 = cc_csmViewDir1[i].xyz;\n shadowViewDir2 = cc_csmViewDir2[i].xyz;\n level = i;\n }\n }\n return level;\n }\n int CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos)\n {\n bool isTransitionArea = false;\n highp float transitionRatio = 0.0;\n return CCGetCSMLevel(isTransitionArea, transitionRatio, csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n }\n float CCCSMFactorBase(out vec4 csmPos, out vec4 csmPosWithBias, vec3 worldPos, vec3 N, vec2 shadowBias)\n {\n bool isTransitionArea = false;\n highp float ratio = 0.0;\n csmPos = vec4(1.0);\n vec4 shadowProjDepthInfo, shadowProjInfo;\n vec3 shadowViewDir0, shadowViewDir1, shadowViewDir2;\n int level = -1;\n #if CC_CASCADED_LAYERS_TRANSITION\n level = CCGetCSMLevel(isTransitionArea, ratio, csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n #else\n level = CCGetCSMLevel(csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n #endif\n if (level < 0) { return 1.0; }\n vec4 pos = ApplyShadowDepthBias_FaceNormal(csmPos, N, shadowBias.y, shadowViewDir0, shadowViewDir1, shadowViewDir2, shadowProjInfo.xy);\n pos = ApplyShadowDepthBias_Orthographic(pos, shadowBias.x, shadowProjDepthInfo.x, shadowProjDepthInfo.y);\n csmPosWithBias = pos;\n float realtimeShadow = 1.0;\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n realtimeShadow = CCGetDirLightShadowFactorSoft5X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n realtimeShadow = CCGetDirLightShadowFactorSoft3X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n realtimeShadow = CCGetDirLightShadowFactorSoft(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n realtimeShadow = CCGetDirLightShadowFactorHard(pos);\n #endif\n #if CC_CASCADED_LAYERS_TRANSITION\n vec4 nextCSMPos = vec4(1.0);\n vec4 nextShadowProjDepthInfo, nextShadowProjInfo;\n vec3 nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2;\n float nextRealtimeShadow = 1.0;\n CCGetCSMLevel(nextCSMPos, nextShadowProjDepthInfo, nextShadowProjInfo, nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2, worldPos, level + 1);\n bool hasNextLevel = CCHasCSMLevel(level + 1, worldPos);\n if (hasNextLevel && isTransitionArea) {\n vec4 nexPos = ApplyShadowDepthBias_FaceNormal(nextCSMPos, N, shadowBias.y, nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2, nextShadowProjInfo.xy);\n nexPos = ApplyShadowDepthBias_Orthographic(nexPos, shadowBias.x, nextShadowProjDepthInfo.x, nextShadowProjDepthInfo.y);\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft5X(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft3X(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n nextRealtimeShadow = CCGetDirLightShadowFactorHard(nexPos);\n #endif\n return mix(mix(nextRealtimeShadow, realtimeShadow, ratio), 1.0, cc_shadowNFLSInfo.w);\n }\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n #else\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n #endif\n }\n #else\n int CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos) {\n return -1;\n }\n float CCCSMFactorBase(out vec4 csmPos, out vec4 csmPosWithBias, vec3 worldPos, vec3 N, vec2 shadowBias) {\n csmPos = cc_matLightViewProj * vec4(worldPos, 1.0);\n return CCShadowFactorBase(csmPosWithBias, csmPos, N, shadowBias);\n }\n #endif\n float CCShadowFactorBase(vec4 shadowPos, vec3 N, vec2 shadowBias) {\n vec4 shadowPosWithDepthBias;\n return CCShadowFactorBase(shadowPosWithDepthBias, shadowPos, N, shadowBias);\n }\n float CCCSMFactorBase(vec3 worldPos, vec3 N, vec2 shadowBias) {\n vec4 csmPos, csmPosWithBias;\n return CCCSMFactorBase(csmPos, csmPosWithBias, worldPos, N, shadowBias);\n }\n float CCSpotShadowFactorBase(vec4 shadowPos, vec3 worldPos, vec2 shadowBias)\n {\n vec4 shadowPosWithDepthBias;\n return CCSpotShadowFactorBase(shadowPosWithDepthBias, shadowPos, worldPos, shadowBias);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\nvec4 packRGBE (vec3 rgb) {\n highp float maxComp = max(max(rgb.r, rgb.g), rgb.b);\n highp float e = 128.0;\n if (maxComp > 0.0001) {\n e = log(maxComp) / log(1.1);\n e = ceil(e);\n e = clamp(e + 128.0, 0.0, 255.0);\n }\n highp float sc = 1.0 / pow(1.1, e - 128.0);\n vec3 encode = clamp(rgb * sc, vec3(0.0), vec3(1.0)) * 255.0;\n vec3 encode_rounded = floor(encode) + step(encode - floor(encode), vec3(0.5));\n return vec4(encode_rounded, e) / 255.0;\n}\nvec3 unpackRGBE (vec4 rgbe) {\n return rgbe.rgb * pow(1.1, rgbe.a * 255.0 - 128.0);\n}\nvec4 fragTextureLod (sampler2D tex, vec2 coord, float lod) {\n #ifdef GL_EXT_shader_texture_lod\n return texture2DLodEXT(tex, coord, lod);\n #else\n return texture2D(tex, coord, lod);\n #endif\n}\nvec4 fragTextureLod (samplerCube tex, vec3 coord, float lod) {\n #ifdef GL_EXT_shader_texture_lod\n return textureCubeLodEXT(tex, coord, lod);\n #else\n return textureCube(tex, coord, lod);\n #endif\n}\nuniform samplerCube cc_environment;\nvec3 CalculateReflectDirection(vec3 N, vec3 V, float NoV)\n{\n float sideSign = NoV < 0.0 ? -1.0 : 1.0;\n N *= sideSign;\n return reflect(-V, N);\n}\nvec3 CalculatePlanarReflectPositionOnPlane(vec3 N, vec3 V, vec3 worldPos, vec4 plane, vec3 cameraPos, float probeReflectedDepth)\n{\n float distPixelToPlane = -dot(plane, vec4(worldPos, 1.0));\n plane.w += distPixelToPlane;\n float distCameraToPlane = abs(-dot(plane, vec4(cameraPos, 1.0)));\n vec3 planeN = plane.xyz;\n vec3 virtualCameraPos = cameraPos - 2.0 * distCameraToPlane * planeN;\n vec3 bumpedR = normalize(reflect(-V, N));\n vec3 reflectedPointPos = worldPos + probeReflectedDepth * bumpedR;\n vec3 virtualCameraToReflectedPoint = normalize(reflectedPointPos - virtualCameraPos);\n float y = distCameraToPlane / max(EPSILON_LOWP, dot(planeN, virtualCameraToReflectedPoint));\n return virtualCameraPos + y * virtualCameraToReflectedPoint;\n}\nvec4 CalculateBoxProjectedDirection(vec3 R, vec3 worldPos, vec3 cubeCenterPos, vec3 cubeBoxHalfSize)\n{\n vec3 W = worldPos - cubeCenterPos;\n vec3 projectedLength = (sign(R) * cubeBoxHalfSize - W) / (R + vec3(EPSILON));\n float len = min(min(projectedLength.x, projectedLength.y), projectedLength.z);\n vec3 P = W + len * R;\n float weight = len < 0.0 ? 0.0 : 1.0;\n return vec4(P, weight);\n}\n#if CC_USE_IBL\n #if CC_USE_DIFFUSEMAP\n uniform samplerCube cc_diffuseMap;\n #endif\n#endif\n#if CC_USE_REFLECTION_PROBE\n uniform samplerCube cc_reflectionProbeCubemap;\n uniform sampler2D cc_reflectionProbePlanarMap;\n uniform sampler2D cc_reflectionProbeDataMap;\n uniform highp vec4 cc_reflectionProbeData1;\n uniform highp vec4 cc_reflectionProbeData2;\n vec4 GetTexData(sampler2D dataMap, float dataMapWidth, float x, float uv_y)\n {\n return vec4(\n decode32(texture2D(dataMap, vec2(((x + 0.5)/dataMapWidth), uv_y))),\n decode32(texture2D(dataMap, vec2(((x + 1.5)/dataMapWidth), uv_y))),\n decode32(texture2D(dataMap, vec2(((x + 2.5)/dataMapWidth), uv_y))),\n decode32(texture2D(dataMap, vec2(((x + 3.5)/dataMapWidth), uv_y)))\n );\n }\n void GetPlanarReflectionProbeData(out vec4 plane, out float planarReflectionDepthScale, out float mipCount, float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData1 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 0.0, uv_y);\n vec4 texData2 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 4.0, uv_y);\n plane.xyz = texData1.xyz;\n plane.w = texData2.x;\n planarReflectionDepthScale = texData2.y;\n mipCount = texData2.z;\n #else\n plane = cc_reflectionProbeData1;\n planarReflectionDepthScale = cc_reflectionProbeData2.x;\n mipCount = cc_reflectionProbeData2.w;\n #endif\n }\n void GetCubeReflectionProbeData(out vec3 centerPos, out vec3 boxHalfSize, out float mipCount, float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData1 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 0.0, uv_y);\n vec4 texData2 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 4.0, uv_y);\n vec4 texData3 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 8.0, uv_y);\n centerPos = texData1.xyz;\n boxHalfSize = texData2.xyz;\n mipCount = texData3.x;\n #else\n centerPos = cc_reflectionProbeData1.xyz;\n boxHalfSize = cc_reflectionProbeData2.xyz;\n mipCount = cc_reflectionProbeData2.w;\n #endif\n if (mipCount > 1000.0) mipCount -= 1000.0;\n }\n bool isReflectProbeUsingRGBE(float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData3 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 8.0, uv_y);\n return texData3.x > 1000.0;\n #else\n return cc_reflectionProbeData2.w > 1000.0;\n #endif\n }\n#endif\n#if CC_USE_LIGHT_PROBE\n#if CC_USE_LIGHT_PROBE\n #if USE_INSTANCING\n varying mediump vec4 v_sh_linear_const_r;\n varying mediump vec4 v_sh_linear_const_g;\n varying mediump vec4 v_sh_linear_const_b;\n #else\n uniform vec4 cc_sh_linear_const_r;\n uniform vec4 cc_sh_linear_const_g;\n uniform vec4 cc_sh_linear_const_b;\n uniform vec4 cc_sh_quadratic_r;\n uniform vec4 cc_sh_quadratic_g;\n uniform vec4 cc_sh_quadratic_b;\n uniform vec4 cc_sh_quadratic_a;\n #endif\n #if CC_USE_LIGHT_PROBE\n vec3 SHEvaluate(vec3 normal)\n {\n vec3 result;\n #if USE_INSTANCING\n vec4 normal4 = vec4(normal, 1.0);\n result.r = dot(v_sh_linear_const_r, normal4);\n result.g = dot(v_sh_linear_const_g, normal4);\n result.b = dot(v_sh_linear_const_b, normal4);\n #else\n vec4 normal4 = vec4(normal, 1.0);\n result.r = dot(cc_sh_linear_const_r, normal4);\n result.g = dot(cc_sh_linear_const_g, normal4);\n result.b = dot(cc_sh_linear_const_b, normal4);\n vec4 n14 = normal.xyzz * normal.yzzx;\n float n5 = normal.x * normal.x - normal.y * normal.y;\n result.r += dot(cc_sh_quadratic_r, n14);\n result.g += dot(cc_sh_quadratic_g, n14);\n result.b += dot(cc_sh_quadratic_b, n14);\n result += (cc_sh_quadratic_a.rgb * n5);\n #endif\n #if CC_USE_HDR\n result *= cc_exposure.w * cc_exposure.x;\n #endif\n return result;\n }\n #endif\n#endif\n#endif\nfloat GGXMobile (float roughness, float NoH, vec3 H, vec3 N) {\n vec3 NxH = cross(N, H);\n float OneMinusNoHSqr = dot(NxH, NxH);\n float a = roughness * roughness;\n float n = NoH * a;\n float p = a / max(EPSILON, OneMinusNoHSqr + n * n);\n return p * p;\n}\nfloat CalcSpecular (float roughness, float NoH, vec3 H, vec3 N) {\n return (roughness * 0.25 + 0.25) * GGXMobile(roughness, NoH, H, N);\n}\nvec3 BRDFApprox (vec3 specular, float roughness, float NoV) {\n const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);\n const vec4 c1 = vec4(1.0, 0.0425, 1.04, -0.04);\n vec4 r = roughness * c0 + c1;\n float a004 = min(r.x * r.x, exp2(-9.28 * NoV)) * r.x + r.y;\n vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;\n AB.y *= clamp(50.0 * specular.g, 0.0, 1.0);\n return max(vec3(0.0), specular * AB.x + AB.y);\n}\n#if USE_REFLECTION_DENOISE\n vec3 GetEnvReflectionWithMipFiltering(vec3 R, float roughness, float mipCount, float denoiseIntensity, vec2 screenUV) {\n #if CC_USE_IBL\n \tfloat mip = roughness * (mipCount - 1.0);\n \tfloat delta = (dot(dFdx(R), dFdy(R))) * 1000.0;\n \tfloat mipBias = mix(0.0, 5.0, clamp(delta, 0.0, 1.0));\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_CUBE\n vec4 biased = fragTextureLod(cc_reflectionProbeCubemap, R, mip + mipBias);\n \t vec4 filtered = textureCube(cc_reflectionProbeCubemap, R);\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_PLANAR\n vec4 biased = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, mip + mipBias);\n vec4 filtered = texture2D(cc_reflectionProbePlanarMap, screenUV);\n #else\n vec4 biased = fragTextureLod(cc_environment, R, mip + mipBias);\n \t vec4 filtered = textureCube(cc_environment, R);\n #endif\n #if CC_USE_IBL == 2 || CC_USE_REFLECTION_PROBE != REFLECTION_PROBE_TYPE_NONE\n biased.rgb = unpackRGBE(biased);\n \tfiltered.rgb = unpackRGBE(filtered);\n #else\n \tbiased.rgb = SRGBToLinear(biased.rgb);\n \tfiltered.rgb = SRGBToLinear(filtered.rgb);\n #endif\n return mix(biased.rgb, filtered.rgb, denoiseIntensity);\n #else\n return vec3(0.0, 0.0, 0.0);\n #endif\n }\n#endif\nstruct StandardSurface {\n vec4 albedo;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n vec3 position, position_fract_part;\n #else\n vec3 position;\n #endif\n vec3 normal;\n vec3 emissive;\n vec4 lightmap;\n float lightmap_test;\n float roughness;\n float metallic;\n float occlusion;\n float specularIntensity;\n #if CC_RECEIVE_SHADOW\n vec2 shadowBias;\n #endif\n #if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n float reflectionProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND || CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n float reflectionProbeBlendId;\n float reflectionProbeBlendFactor;\n #endif\n};\n vec3 SampleReflectionProbe(samplerCube tex, vec3 R, float roughness, float mipCount, bool isRGBE) {\n vec4 envmap = fragTextureLod(tex, R, roughness * (mipCount - 1.0));\n if (isRGBE)\n return unpackRGBE(envmap);\n else\n return SRGBToLinear(envmap.rgb);\n }\nvec4 CCStandardShadingBase (StandardSurface s, vec4 shadowPos) {\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.08 * s.specularIntensity), s.albedo.rgb, s.metallic);\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n vec3 L = normalize(-cc_mainLitDir.xyz);\n float NL = max(dot(N, L), 0.0);\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (NL > 0.0 && cc_mainLitDir.w > 0.0) {\n #if CC_DIR_LIGHT_SHADOW_TYPE == 2\n shadow = CCCSMFactorBase(position, N, s.shadowBias);\n #endif\n #if CC_DIR_LIGHT_SHADOW_TYPE == 1\n shadow = CCShadowFactorBase(shadowPos, N, s.shadowBias);\n #endif\n }\n #endif\n vec3 finalColor = vec3(0.0);\n #if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n vec3 lightmap = s.lightmap.rgb;\n #if CC_USE_HDR\n lightmap.rgb *= cc_exposure.w * cc_exposure.x;\n #endif\n #if CC_USE_LIGHTMAP == LIGHT_MAP_TYPE_INDIRECT_OCCLUSION\n shadow *= s.lightmap.a;\n finalColor += diffuse * lightmap.rgb;\n #else\n finalColor += diffuse * lightmap.rgb * shadow;\n #endif\n s.occlusion *= s.lightmap_test;\n #endif\n #if !CC_DISABLE_DIRECTIONAL_LIGHT\n float NV = max(abs(dot(N, V)), 0.0);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 H = normalize(L + V);\n float NH = max(dot(N, H), 0.0);\n vec3 lightingColor = NL * cc_mainLitColor.rgb * cc_mainLitColor.w;\n vec3 diffuseContrib = diffuse / PI;\n vec3 specularContrib = specular * CalcSpecular(s.roughness, NH, H, N);\n vec3 dirlightContrib = (diffuseContrib + specularContrib);\n dirlightContrib *= shadow;\n finalColor += lightingColor * dirlightContrib;\n #endif\n float fAmb = max(EPSILON, 0.5 - N.y * 0.5);\n vec3 ambDiff = mix(cc_ambientSky.rgb, cc_ambientGround.rgb, fAmb);\n vec3 env = vec3(0.0), rotationDir;\n #if CC_USE_IBL\n #if CC_USE_DIFFUSEMAP && !CC_USE_LIGHT_PROBE\n rotationDir = RotationVecFromAxisY(N.xyz, cc_surfaceTransform.z, cc_surfaceTransform.w);\n vec4 diffuseMap = textureCube(cc_diffuseMap, rotationDir);\n #if CC_USE_DIFFUSEMAP == 2\n ambDiff = unpackRGBE(diffuseMap);\n #else\n ambDiff = SRGBToLinear(diffuseMap.rgb);\n #endif\n #endif\n #if !CC_USE_REFLECTION_PROBE\n vec3 R = normalize(reflect(-V, N));\n rotationDir = RotationVecFromAxisY(R.xyz, cc_surfaceTransform.z, cc_surfaceTransform.w);\n #if USE_REFLECTION_DENOISE && !CC_IBL_CONVOLUTED\n env = GetEnvReflectionWithMipFiltering(rotationDir, s.roughness, cc_ambientGround.w, 0.6, vec2(0.0));\n #else\n vec4 envmap = fragTextureLod(cc_environment, rotationDir, s.roughness * (cc_ambientGround.w - 1.0));\n #if CC_USE_IBL == 2\n env = unpackRGBE(envmap);\n #else\n env = SRGBToLinear(envmap.rgb);\n #endif\n #endif\n #endif\n #endif\n float lightIntensity = cc_ambientSky.w;\n #if CC_USE_REFLECTION_PROBE\n vec4 probe = vec4(0.0);\n vec3 R = normalize(reflect(-V, N));\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_CUBE\n if(s.reflectionProbeId < 0.0){\n env = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2);\n }else{\n vec3 centerPos, boxHalfSize;\n float mipCount;\n GetCubeReflectionProbeData(centerPos, boxHalfSize, mipCount, s.reflectionProbeId);\n vec4 fixedR = CalculateBoxProjectedDirection(R, position, centerPos, boxHalfSize);\n env = mix(SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2) * lightIntensity,\n SampleReflectionProbe(cc_reflectionProbeCubemap, fixedR.xyz, s.roughness, mipCount, isReflectProbeUsingRGBE(s.reflectionProbeId)), fixedR.w);\n }\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_PLANAR\n if(s.reflectionProbeId < 0.0){\n vec2 screenUV = GetPlanarReflectScreenUV(s.position, cc_matViewProj, cc_cameraPos.w, V, R);\n probe = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, 1.0);\n }else{\n vec4 plane;\n float planarReflectionDepthScale, mipCount;\n GetPlanarReflectionProbeData(plane, planarReflectionDepthScale, mipCount, s.reflectionProbeId);\n R = normalize(CalculateReflectDirection(N, V, max(abs(dot(N, V)), 0.0)));\n vec3 worldPosOffset = CalculatePlanarReflectPositionOnPlane(N, V, s.position, plane, cc_cameraPos.xyz, planarReflectionDepthScale);\n vec2 screenUV = GetPlanarReflectScreenUV(worldPosOffset, cc_matViewProj, cc_cameraPos.w, V, R);\n probe = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, mipCount);\n }\n env = unpackRGBE(probe);\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND || CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n if (s.reflectionProbeId < 0.0) {\n env = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2);\n } else {\n vec3 centerPos, boxHalfSize;\n float mipCount;\n GetCubeReflectionProbeData(centerPos, boxHalfSize, mipCount, s.reflectionProbeId);\n vec4 fixedR = CalculateBoxProjectedDirection(R, s.position, centerPos, boxHalfSize);\n env = SampleReflectionProbe(cc_reflectionProbeCubemap, fixedR.xyz, s.roughness, mipCount, isReflectProbeUsingRGBE(s.reflectionProbeId));\n if (s.reflectionProbeBlendId < 0.0) {\n vec3 skyBoxEnv = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2) * lightIntensity;\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n env = mix(env, skyBoxEnv, s.reflectionProbeBlendFactor);\n #else\n env = mix(skyBoxEnv, env, fixedR.w);\n #endif\n }\n }\n #endif\n #endif\n #if CC_USE_REFLECTION_PROBE\n lightIntensity = s.reflectionProbeId < 0.0 ? lightIntensity : 1.0;\n #endif\n finalColor += env * lightIntensity * specular * s.occlusion;\n#if CC_USE_LIGHT_PROBE\n finalColor += SHEvaluate(N) * diffuse * s.occlusion;\n#endif\n finalColor += ambDiff.rgb * cc_ambientSky.w * diffuse * s.occlusion;\n finalColor += s.emissive;\n return vec4(finalColor, s.albedo.a);\n}\nvec3 ACESToneMap (vec3 color) {\n color = min(color, vec3(8.0));\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\nvec4 CCFragOutput (vec4 color) {\n #if CC_USE_RGBE_OUTPUT\n color = packRGBE(color.rgb);\n #elif !CC_USE_FLOAT_OUTPUT\n #if CC_USE_HDR && CC_TONE_MAPPING_TYPE == HDR_TONE_MAPPING_ACES\n color.rgb = ACESToneMap(color.rgb);\n #endif\n color.rgb = LinearToSRGB(color.rgb);\n #endif\n return color;\n}\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\nvoid CC_APPLY_FOG_BASE(inout vec4 color, float factor) {\n\tcolor = vec4(mix(cc_fogColor.rgb, color.rgb, factor), color.a);\n}\n#if !CC_USE_ACCURATE_FOG\nvarying mediump float v_fog_factor;\n#endif\nvoid CC_APPLY_FOG(inout vec4 color) {\n#if !CC_USE_ACCURATE_FOG\n CC_APPLY_FOG_BASE(color, v_fog_factor);\n#endif\n}\nvoid CC_APPLY_FOG(inout vec4 color, vec3 worldPos) {\n#if CC_USE_ACCURATE_FOG\n float factor;\n CC_TRANSFER_FOG_BASE(vec4(worldPos, 1.0), factor);\n#else\n float factor = v_fog_factor;\n#endif\n CC_APPLY_FOG_BASE(color, factor);\n}\nvarying highp vec4 v_shadowPos;\n#if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n#endif\n#if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n varying vec3 v_luv;\n uniform sampler2D cc_lightingMap;\n void SampleAndDecodeLightMapColor(out vec3 lightmapColor, out float dirShadow, out float ao, sampler2D lightingMap, vec2 luv, float lum, vec3 worldNormal)\n {\n #if CC_LIGHT_MAP_VERSION > 2\n #elif CC_LIGHT_MAP_VERSION > 1\n \tvec4 dataLow = texture2D(lightingMap, luv);\n \tvec4 dataHigh = texture2D(lightingMap, luv + vec2(0.5, 0.0));\n \tlightmapColor.xyz = dataLow.xyz + dataHigh.xyz * 0.00392156862745098;\n lightmapColor.rgb *= lum;\n \tdirShadow = dataLow.a;\n \tao = dataHigh.a;\n #else\n vec4 lightmap = texture2D(lightingMap, luv);\n lightmapColor = lightmap.rgb * lum;\n \tdirShadow = lightmap.a;\n \tao = 1.0;\n #endif\n }\n#endif\nvarying highp vec3 v_position;\nvarying mediump vec3 v_normal;\n#if CC_RECEIVE_SHADOW\n varying vec2 v_shadowBias;\n#endif\nvarying mediump vec2 uvw;\nvarying mediump vec2 uv0;\nvarying mediump vec2 uv1;\nvarying mediump vec2 uv2;\nvarying mediump vec2 uv3;\nvarying mediump vec3 diffuse;\nvarying mediump vec3 luv;\n uniform vec4 metallic;\n uniform vec4 roughness;\nuniform sampler2D weightMap;\nuniform sampler2D detailMap0;\nuniform sampler2D detailMap1;\nuniform sampler2D detailMap2;\nuniform sampler2D detailMap3;\nuniform sampler2D normalMap0;\nuniform sampler2D normalMap1;\nuniform sampler2D normalMap2;\nuniform sampler2D normalMap3;\nvoid surf (out StandardSurface s) {\n #if LAYERS > 1\n vec4 w = texture2D(weightMap, uvw);\n #endif\n vec4 baseColor = vec4(0, 0, 0, 0);\n #if LAYERS == 1\n baseColor = texture2D(detailMap0, uv0);\n #elif LAYERS == 2\n baseColor += texture2D(detailMap0, uv0) * w.r;\n baseColor += texture2D(detailMap1, uv1) * w.g;\n #elif LAYERS == 3\n baseColor += texture2D(detailMap0, uv0) * w.r;\n baseColor += texture2D(detailMap1, uv1) * w.g;\n baseColor += texture2D(detailMap2, uv2) * w.b;\n #elif LAYERS == 4\n baseColor += texture2D(detailMap0, uv0) * w.r;\n baseColor += texture2D(detailMap1, uv1) * w.g;\n baseColor += texture2D(detailMap2, uv2) * w.b;\n baseColor += texture2D(detailMap3, uv3) * w.a;\n #else\n baseColor = texture2D(detailMap0, uv0);\n #endif\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n packHighpData(s.position, s.position_fract_part, v_position);\n #else\n s.position = v_position;\n #endif\n #if USE_NORMALMAP\n vec4 baseNormal = vec4(0, 0, 0, 0);\n #if LAYERS == 1\n baseNormal = texture2D(normalMap0, uv0);\n #elif LAYERS == 2\n baseNormal += texture2D(normalMap0, uv0) * w.r;\n baseNormal += texture2D(normalMap1, uv1) * w.g;\n #elif LAYERS == 3\n baseNormal += texture2D(normalMap0, uv0) * w.r;\n baseNormal += texture2D(normalMap1, uv1) * w.g;\n baseNormal += texture2D(normalMap2, uv2) * w.b;\n #elif LAYERS == 4\n baseNormal += texture2D(normalMap0, uv0) * w.r;\n baseNormal += texture2D(normalMap1, uv1) * w.g;\n baseNormal += texture2D(normalMap2, uv2) * w.b;\n baseNormal += texture2D(normalMap3, uv3) * w.a;\n #else\n baseNormal = texture2D(normalMap0, uv0);\n #endif\n vec3 tangent = vec3(1.0, 0.0, 0.0);\n vec3 binormal = vec3(0.0, 0.0, 1.0);\n binormal = cross(tangent, v_normal);\n tangent = cross(v_normal, binormal);\n vec3 nmmp = baseNormal.xyz - vec3(0.5);\n s.normal =\n nmmp.x * normalize(tangent) +\n nmmp.y * normalize(binormal) +\n nmmp.z * normalize(v_normal);\n #else\n s.normal = v_normal;\n #endif\n #if CC_RECEIVE_SHADOW\n s.shadowBias = v_shadowBias;\n #endif\n s.albedo = vec4(SRGBToLinear(baseColor.rgb), 1.0);\n s.occlusion = 1.0;\n #if USE_PBR\n s.roughness = 0.0;\n #if LAYERS == 1\n s.roughness = roughness.x;\n #elif LAYERS == 2\n s.roughness += roughness.x * w.r;\n s.roughness += roughness.y * w.g;\n #elif LAYERS == 3\n s.roughness += roughness.x * w.r;\n s.roughness += roughness.y * w.g;\n s.roughness += roughness.z * w.b;\n #elif LAYERS == 4\n s.roughness += roughness.x * w.r;\n s.roughness += roughness.y * w.g;\n s.roughness += roughness.z * w.b;\n s.roughness += roughness.w * w.a;\n #else\n s.roughness = 1.0;\n #endif\n s.specularIntensity = 0.5;\n s.metallic = 0.0;\n #if LAYERS == 1\n s.specularIntensity = 0.5;\n s.metallic = metallic.x;\n #elif LAYERS == 2\n s.metallic += metallic.x * w.r;\n s.metallic += metallic.y * w.g;\n #elif LAYERS == 3\n s.metallic += metallic.x * w.r;\n s.metallic += metallic.y * w.g;\n s.metallic += metallic.z * w.b;\n #elif LAYERS == 4\n s.metallic += metallic.x * w.r;\n s.metallic += metallic.y * w.g;\n s.metallic += metallic.z * w.b;\n s.metallic += metallic.w * w.a;\n #else\n s.specularIntensity = 0.5;\n s.metallic = 0.0;\n #endif\n #else\n s.roughness = 1.0;\n s.specularIntensity = 0.5;\n s.metallic = 0.0;\n #endif\n s.emissive = vec3(0.0, 0.0, 0.0);\n #if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n SampleAndDecodeLightMapColor(s.lightmap.rgb, s.lightmap.a, s.lightmap_test, cc_lightingMap, luv.xy, luv.z, s.normal);\n #endif\n}\n#if CC_FORWARD_ADD\n #if CC_PIPELINE_TYPE == 0\n #define LIGHTS_PER_PASS 1\n #else\n #define LIGHTS_PER_PASS 10\n #endif\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 0\n uniform highp vec4 cc_lightPos[LIGHTS_PER_PASS];\n uniform vec4 cc_lightColor[LIGHTS_PER_PASS];\n uniform vec4 cc_lightSizeRangeAngle[LIGHTS_PER_PASS];\n uniform vec4 cc_lightDir[LIGHTS_PER_PASS];\n uniform vec4 cc_lightBoundingSizeVS[LIGHTS_PER_PASS];\n #endif\n float SmoothDistAtt (float distSqr, float invSqrAttRadius) {\n float factor = distSqr * invSqrAttRadius;\n float smoothFactor = clamp(1.0 - factor * factor, 0.0, 1.0);\n return smoothFactor * smoothFactor;\n }\n float GetDistAtt (float distSqr, float invSqrAttRadius) {\n float attenuation = 1.0 / max(distSqr, 0.01*0.01);\n attenuation *= SmoothDistAtt(distSqr , invSqrAttRadius);\n return attenuation;\n }\n float GetAngleAtt (vec3 L, vec3 litDir, float litAngleScale, float litAngleOffset) {\n float cd = dot(litDir, L);\n float attenuation = clamp(cd * litAngleScale + litAngleOffset, 0.0, 1.0);\n return (attenuation * attenuation);\n }\n float GetOutOfRange (vec3 worldPos, vec3 lightPos, vec3 lookAt, vec3 right, vec3 BoundingHalfSizeVS) {\n vec3 v = vec3(0.0);\n vec3 up = cross(right, lookAt);\n worldPos -= lightPos;\n v.x = dot(worldPos, right);\n v.y = dot(worldPos, up);\n v.z = dot(worldPos, lookAt);\n vec3 result = step(abs(v), BoundingHalfSizeVS);\n return result.x * result.y * result.z;\n }\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 0\n vec4 CCStandardShadingAdditive (StandardSurface s, vec4 shadowPos) {\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.04), s.albedo.rgb, s.metallic);\n vec3 diffuseContrib = diffuse / PI;\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n float NV = max(abs(dot(N, V)), 0.0);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 finalColor = vec3(0.0);\n int numLights = CC_PIPELINE_TYPE == 0 ? LIGHTS_PER_PASS : int(cc_lightDir[0].w);\n for (int i = 0; i < LIGHTS_PER_PASS; i++) {\n if (i >= numLights) break;\n vec3 SLU = IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w) ? -cc_lightDir[i].xyz : cc_lightPos[i].xyz - position;\n vec3 SL = normalize(SLU);\n vec3 SH = normalize(SL + V);\n float SNL = max(dot(N, SL), 0.0);\n float SNH = max(dot(N, SH), 0.0);\n vec3 lspec = specular * CalcSpecular(s.roughness, SNH, SH, N);\n float illum = 1.0;\n float att = 1.0;\n if (IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w)) {\n att = GetOutOfRange(position, cc_lightPos[i].xyz, cc_lightDir[i].xyz, cc_lightSizeRangeAngle[i].xyz, cc_lightBoundingSizeVS[i].xyz);\n } else {\n float distSqr = dot(SLU, SLU);\n float litRadius = cc_lightSizeRangeAngle[i].x;\n float litRadiusSqr = litRadius * litRadius;\n illum = (IS_POINT_LIGHT(cc_lightPos[i].w) || IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w)) ? 1.0 : litRadiusSqr / max(litRadiusSqr, distSqr);\n float attRadiusSqrInv = 1.0 / max(cc_lightSizeRangeAngle[i].y, 0.01);\n attRadiusSqrInv *= attRadiusSqrInv;\n att = GetDistAtt(distSqr, attRadiusSqrInv);\n if (IS_SPOT_LIGHT(cc_lightPos[i].w)) {\n float cosInner = max(dot(-cc_lightDir[i].xyz, SL), 0.01);\n float cosOuter = cc_lightSizeRangeAngle[i].z;\n float strength = clamp(cc_lightBoundingSizeVS[i].w, 0.0, 1.0);\n float litAngleScale = 1.0 / max(0.001, mix(cosInner, 1.0, strength) - cosOuter);\n float litAngleOffset = -cosOuter * litAngleScale;\n att *= GetAngleAtt(SL, -cc_lightDir[i].xyz, litAngleScale, litAngleOffset);\n }\n }\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (IS_SPOT_LIGHT(cc_lightPos[i].w) && cc_lightSizeRangeAngle[i].w > 0.0) {\n shadow = CCSpotShadowFactorBase(shadowPos, position, s.shadowBias);\n }\n #endif\n finalColor += SNL * cc_lightColor[i].rgb * shadow * cc_lightColor[i].w * illum * att * (diffuseContrib + lspec);\n }\n return vec4(finalColor, 0.0);\n }\n #endif\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 1\n readonly buffer b_ccLightsBuffer { vec4 b_ccLights[]; };\n readonly buffer b_clusterLightIndicesBuffer { uint b_clusterLightIndices[]; };\n readonly buffer b_clusterLightGridBuffer { uvec4 b_clusterLightGrid[]; };\n struct CCLight\n {\n vec4 cc_lightPos;\n vec4 cc_lightColor;\n vec4 cc_lightSizeRangeAngle;\n vec4 cc_lightDir;\n vec4 cc_lightBoundingSizeVS;\n };\n struct Cluster\n {\n vec3 minBounds;\n vec3 maxBounds;\n };\n struct LightGrid\n {\n uint offset;\n uint ccLights;\n };\n CCLight getCCLight(uint i)\n {\n CCLight light;\n light.cc_lightPos = b_ccLights[5u * i + 0u];\n light.cc_lightColor = b_ccLights[5u * i + 1u];\n light.cc_lightSizeRangeAngle = b_ccLights[5u * i + 2u];\n light.cc_lightDir = b_ccLights[5u * i + 3u];\n light.cc_lightBoundingSizeVS = b_ccLights[5u * i + 4u];\n return light;\n }\n LightGrid getLightGrid(uint cluster)\n {\n uvec4 gridvec = b_clusterLightGrid[cluster];\n LightGrid grid;\n grid.offset = gridvec.x;\n grid.ccLights = gridvec.y;\n return grid;\n }\n uint getGridLightIndex(uint start, uint offset)\n {\n return b_clusterLightIndices[start + offset];\n }\n uint getClusterZIndex(vec4 worldPos)\n {\n float scale = float(24u) / log(cc_nearFar.y / cc_nearFar.x);\n float bias = -(float(24u) * log(cc_nearFar.x) / log(cc_nearFar.y / cc_nearFar.x));\n float eyeDepth = -(cc_matView * worldPos).z;\n uint zIndex = uint(max(log(eyeDepth) * scale + bias, 0.0));\n return zIndex;\n }\n uint getClusterIndex(vec4 fragCoord, vec4 worldPos)\n {\n uint zIndex = getClusterZIndex(worldPos);\n float clusterSizeX = ceil(cc_viewPort.z / float(16u));\n float clusterSizeY = ceil(cc_viewPort.w / float(8u));\n uvec3 indices = uvec3(uvec2(fragCoord.xy / vec2(clusterSizeX, clusterSizeY)), zIndex);\n uint cluster = (16u * 8u) * indices.z + 16u * indices.y + indices.x;\n return cluster;\n }\n vec4 CCClusterShadingAdditive (StandardSurface s, vec4 shadowPos) {\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.04), s.albedo.rgb, s.metallic);\n vec3 diffuseContrib = diffuse / PI;\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n float NV = max(abs(dot(N, V)), 0.001);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 finalColor = vec3(0.0);\n uint cluster = getClusterIndex(gl_FragCoord, vec4(position, 1.0));\n LightGrid grid = getLightGrid(cluster);\n uint numLights = grid.ccLights;\n for (uint i = 0u; i < 200u; i++) {\n if (i >= numLights) break;\n uint lightIndex = getGridLightIndex(grid.offset, i);\n CCLight light = getCCLight(lightIndex);\n vec3 SLU = light.cc_lightPos.xyz - position;\n vec3 SL = normalize(SLU);\n vec3 SH = normalize(SL + V);\n float SNL = max(dot(N, SL), 0.001);\n float SNH = max(dot(N, SH), 0.0);\n float distSqr = dot(SLU, SLU);\n float litRadius = light.cc_lightSizeRangeAngle.x;\n float litRadiusSqr = litRadius * litRadius;\n float illum = PI * (litRadiusSqr / max(litRadiusSqr , distSqr));\n float attRadiusSqrInv = 1.0 / max(light.cc_lightSizeRangeAngle.y, 0.01);\n attRadiusSqrInv *= attRadiusSqrInv;\n float att = GetDistAtt(distSqr, attRadiusSqrInv);\n vec3 lspec = specular * CalcSpecular(s.roughness, SNH, SH, N);\n if (IS_SPOT_LIGHT(light.cc_lightPos.w)) {\n float cosInner = max(dot(-light.cc_lightDir.xyz, SL), 0.01);\n float cosOuter = light.cc_lightSizeRangeAngle.z;\n float litAngleScale = 1.0 / max(0.001, cosInner - cosOuter);\n float litAngleOffset = -cosOuter * litAngleScale;\n att *= GetAngleAtt(SL, -light.cc_lightDir.xyz, litAngleScale, litAngleOffset);\n }\n vec3 lightColor = light.cc_lightColor.rgb;\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (IS_SPOT_LIGHT(light.cc_lightPos.w) && light.cc_lightSizeRangeAngle.w > 0.0) {\n shadow = CCSpotShadowFactorBase(shadowPos, position, s.shadowBias);\n }\n #endif\n lightColor *= shadow;\n finalColor += SNL * lightColor * light.cc_lightColor.w * illum * att * (diffuseContrib + lspec);\n }\n return vec4(finalColor, 0.0);\n }\n #endif\n void main () {\n StandardSurface s; surf(s);\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 1\n vec4 color = CCClusterShadingAdditive(s, v_shadowPos);\n #else\n vec4 color = CCStandardShadingAdditive(s, v_shadowPos);\n #endif\n gl_FragData[0] = CCFragOutput(color);\n }\n#elif (CC_PIPELINE_TYPE == 0 || CC_FORCE_FORWARD_SHADING)\n void main () {\n StandardSurface s; surf(s);\n vec4 color = CCStandardShadingBase(s, v_shadowPos);\n #if CC_USE_FOG != 4\n #if CC_USE_FLOAT_OUTPUT\n CC_APPLY_FOG(color, s.position.xyz);\n #elif !CC_FORWARD_ADD\n CC_APPLY_FOG(color, s.position.xyz);\n #endif\n #endif\n gl_FragData[0] = CCFragOutput(color);\n }\n#elif CC_PIPELINE_TYPE == 1\n vec2 signNotZero(vec2 v) {\n return vec2((v.x >= 0.0) ? +1.0 : -1.0, (v.y >= 0.0) ? +1.0 : -1.0);\n }\n vec2 float32x3_to_oct(in vec3 v) {\n vec2 p = v.xy * (1.0 / (abs(v.x) + abs(v.y) + abs(v.z)));\n return (v.z <= 0.0) ? ((1.0 - abs(p.yx)) * signNotZero(p)) : p;\n }\n void main () {\n StandardSurface s; surf(s);\n gl_FragData[0] = s.albedo;\n gl_FragData[2] = vec4(float32x3_to_oct(s.normal), s.roughness, s.metallic);\n gl_FragData[1] = vec4(s.emissive, s.occlusion);\n }\n#endif"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]},{"name":"CCShadow","defines":[]},{"name":"CCCSM","defines":["CC_SUPPORT_CASCADED_SHADOW_MAP"]}],"samplerTextures":[{"name":"cc_shadowMap","defines":["CC_RECEIVE_SHADOW"]},{"name":"cc_spotShadowMap","defines":["CC_RECEIVE_SHADOW"]},{"name":"cc_environment","defines":[]},{"name":"cc_diffuseMap","defines":["CC_USE_IBL","CC_USE_DIFFUSEMAP"]}],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]},{"name":"CCSH","defines":["CC_USE_LIGHT_PROBE","!USE_INSTANCING"]},{"name":"CCForwardLight","defines":["CC_FORWARD_ADD","CC_ENABLE_CLUSTERED_LIGHT_CULLING"]}],"samplerTextures":[{"name":"cc_reflectionProbeCubemap","defines":["CC_USE_REFLECTION_PROBE"]},{"name":"cc_reflectionProbePlanarMap","defines":["CC_USE_REFLECTION_PROBE"]},{"name":"cc_reflectionProbeDataMap","defines":["CC_USE_REFLECTION_PROBE"]},{"name":"cc_lightingMap","defines":["CC_USE_LIGHTMAP","!CC_FORWARD_ADD"]}],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":115,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":122}},"defines":[{"name":"CC_USE_FOG","type":"number","range":[0,4]},{"name":"CC_USE_ACCURATE_FOG","type":"boolean"},{"name":"CC_SUPPORT_CASCADED_SHADOW_MAP","type":"boolean"},{"name":"CC_RECEIVE_SHADOW","type":"boolean"},{"name":"CC_USE_LIGHTMAP","type":"number","range":[0,3]},{"name":"CC_USE_DEBUG_VIEW","type":"number","range":[0,3]},{"name":"CC_SURFACES_ENABLE_DEBUG_VIEW","type":"boolean"},{"name":"CC_SHADOWMAP_FORMAT","type":"number","range":[0,3]},{"name":"CC_SHADOWMAP_USE_LINEAR_DEPTH","type":"boolean"},{"name":"CC_DIR_SHADOW_PCF_TYPE","type":"number","range":[0,3]},{"name":"CC_CASCADED_LAYERS_TRANSITION","type":"boolean"},{"name":"CC_USE_IBL","type":"number","range":[0,2]},{"name":"CC_USE_DIFFUSEMAP","type":"number","range":[0,2]},{"name":"CC_USE_REFLECTION_PROBE","type":"number","range":[0,3]},{"name":"USE_INSTANCING","type":"boolean"},{"name":"CC_USE_LIGHT_PROBE","type":"boolean","default":0},{"name":"CC_USE_HDR","type":"boolean"},{"name":"USE_REFLECTION_DENOISE","type":"boolean"},{"name":"CC_SHADOW_TYPE","type":"number","range":[0,3]},{"name":"CC_DIR_LIGHT_SHADOW_TYPE","type":"number","range":[0,3]},{"name":"CC_FORWARD_ADD","type":"boolean"},{"name":"CC_DISABLE_DIRECTIONAL_LIGHT","type":"boolean"},{"name":"CC_IBL_CONVOLUTED","type":"boolean"},{"name":"CC_USE_RGBE_OUTPUT","type":"boolean"},{"name":"CC_USE_FLOAT_OUTPUT","type":"boolean"},{"name":"CC_TONE_MAPPING_TYPE","type":"number","range":[0,3]},{"name":"HDR_TONE_MAPPING_ACES","type":"boolean"},{"name":"CC_LIGHT_MAP_VERSION","type":"number","range":[0,3]},{"name":"LAYERS","type":"number","range":[0,4]},{"name":"USE_NORMALMAP","type":"boolean"},{"name":"USE_PBR","type":"boolean"},{"name":"CC_PIPELINE_TYPE","type":"number","range":[0,1]},{"name":"CC_FORCE_FORWARD_SHADING","type":"boolean"},{"name":"CC_ENABLE_CLUSTERED_LIGHT_CULLING","type":"number","range":[0,3]}]},{"hash":816809058,"name":"legacy/terrain|shadow-caster-vs:vert|shadow-caster-fs:frag","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_normal","format":32,"location":1,"defines":[]},{"name":"a_texCoord","format":21,"location":2,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":1,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":1,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCShadow","stageFlags":1,"tags":{"builtin":"global"},"members":[{"name":"cc_matLightView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matLightViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_shadowInvProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowNFLSInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowWHPBInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowLPNNInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowColor","typename":"vec4","type":16,"count":1,"precision":"lowp "},{"name":"cc_planarNDInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nlayout(std140) uniform CCShadow {\n highp mat4 cc_matLightView;\n highp mat4 cc_matLightViewProj;\n highp vec4 cc_shadowInvProjDepthInfo;\n highp vec4 cc_shadowProjDepthInfo;\n highp vec4 cc_shadowProjInfo;\n mediump vec4 cc_shadowNFLSInfo;\n mediump vec4 cc_shadowWHPBInfo;\n mediump vec4 cc_shadowLPNNInfo;\n lowp vec4 cc_shadowColor;\n mediump vec4 cc_planarNDInfo;\n};\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\nout highp vec2 v_clip_depth;\nvec4 vert () {\n vec4 worldPos;\n worldPos.x = cc_matWorld[3][0] + a_position.x;\n worldPos.y = cc_matWorld[3][1] + a_position.y;\n worldPos.z = cc_matWorld[3][2] + a_position.z;\n worldPos.w = 1.0;\n vec4 clipPos = cc_matLightViewProj * worldPos;\n v_clip_depth = clipPos.zw;\n return clipPos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nvec4 packDepthToRGBA (float depth) {\n vec4 ret = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth;\n ret = fract(ret);\n ret -= vec4(ret.yzw, 0.0) / 255.0;\n return ret;\n}\n#define UnpackBitFromFloat(value, bit) (mod(floor(value / pow(10.0, float(bit))), 10.0) > 0.0)\nin highp vec2 v_clip_depth;\nvec4 frag () {\n highp float clipDepth = v_clip_depth.x / v_clip_depth.y * 0.5 + 0.5;\n #if CC_SHADOWMAP_FORMAT == 1\n return packDepthToRGBA(clipDepth);\n #else\n return vec4(clipDepth, 1.0, 1.0, 1.0);\n #endif\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\nuniform highp mat4 cc_matWorld;\nuniform highp mat4 cc_matLightViewProj;\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nvarying highp vec2 v_clip_depth;\nvec4 vert () {\n vec4 worldPos;\n worldPos.x = cc_matWorld[3][0] + a_position.x;\n worldPos.y = cc_matWorld[3][1] + a_position.y;\n worldPos.z = cc_matWorld[3][2] + a_position.z;\n worldPos.w = 1.0;\n vec4 clipPos = cc_matLightViewProj * worldPos;\n v_clip_depth = clipPos.zw;\n return clipPos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nvec4 packDepthToRGBA (float depth) {\n vec4 ret = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth;\n ret = fract(ret);\n ret -= vec4(ret.yzw, 0.0) / 255.0;\n return ret;\n}\n#define UnpackBitFromFloat(value, bit) (mod(floor(value / pow(10.0, float(bit))), 10.0) > 0.0)\nvarying highp vec2 v_clip_depth;\nvec4 frag () {\n highp float clipDepth = v_clip_depth.x / v_clip_depth.y * 0.5 + 0.5;\n #if CC_SHADOWMAP_FORMAT == 1\n return packDepthToRGBA(clipDepth);\n #else\n return vec4(clipDepth, 1.0, 1.0, 1.0);\n #endif\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]},{"name":"CCShadow","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":72,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":0}},"defines":[{"name":"CC_SHADOWMAP_FORMAT","type":"number","range":[0,3]}]}],[{"name":"opaque","passes":[{"program":"legacy/terrain|terrain-vs|terrain-fs","properties":{"UVScale":{"type":16,"value":[1,1,1,1]},"metallic":{"type":16,"value":[0,0,0,0]},"roughness":{"type":16,"value":[1,1,1,1]},"weightMap":{"value":"black","type":28},"detailMap0":{"value":"grey","type":28},"detailMap1":{"value":"grey","type":28},"detailMap2":{"value":"grey","type":28},"detailMap3":{"value":"grey","type":28},"normalMap0":{"value":"normal","type":28},"normalMap1":{"value":"normal","type":28},"normalMap2":{"value":"normal","type":28},"normalMap3":{"value":"normal","type":28}}},{"phase":"forward-add","propertyIndex":0,"program":"legacy/terrain|terrain-vs|terrain-fs","embeddedMacros":{"CC_FORWARD_ADD":true},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":1,"blendSrcAlpha":0,"blendDstAlpha":1}]},"depthStencilState":{"depthFunc":2,"depthTest":true,"depthWrite":false},"properties":{"UVScale":{"type":16,"value":[1,1,1,1]},"metallic":{"type":16,"value":[0,0,0,0]},"roughness":{"type":16,"value":[1,1,1,1]},"weightMap":{"value":"black","type":28},"detailMap0":{"value":"grey","type":28},"detailMap1":{"value":"grey","type":28},"detailMap2":{"value":"grey","type":28},"detailMap3":{"value":"grey","type":28},"normalMap0":{"value":"normal","type":28},"normalMap1":{"value":"normal","type":28},"normalMap2":{"value":"normal","type":28},"normalMap3":{"value":"normal","type":28}}},{"phase":"shadow-add","propertyIndex":0,"program":"legacy/terrain|shadow-caster-vs:vert|shadow-caster-fs:frag","rasterizerState":{"cullMode":2}},{"phase":"deferred-forward","propertyIndex":0,"program":"legacy/terrain|terrain-vs|terrain-fs"}]}]]],0,0,[],[],[]],[[[0,"internal/builtin-geometry-renderer",[{"hash":229754059,"name":"internal/builtin-geometry-renderer|line-vs:vert|line-fs:front","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_color","format":44,"location":1,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nin highp vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n pos.z -= 0.000001;\n v_color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec4 v_color;\nvec4 front() {\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(v_color);\n #else\n return v_color;\n #endif\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = front(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform highp mat4 cc_matViewProj;\nattribute highp vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n pos.z -= 0.000001;\n v_color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec4 v_color;\nvec4 front() {\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(v_color);\n #else\n return v_color;\n #endif\n}\nvoid main() { gl_FragColor = front(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":42,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"USE_FORWARD_PIPELINE","type":"boolean"}]},{"hash":2666573058,"name":"internal/builtin-geometry-renderer|line-vs:vert|line-fs:back","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_color","format":44,"location":1,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nin highp vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n pos.z -= 0.000001;\n v_color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec4 v_color;\nvec4 back() {\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(vec4(v_color.rgb, v_color.a * 0.2));\n #else\n return vec4(v_color.rgb, v_color.a * 0.2);\n #endif\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = back(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform highp mat4 cc_matViewProj;\nattribute highp vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n pos.z -= 0.000001;\n v_color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec4 v_color;\nvec4 back() {\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(vec4(v_color.rgb, v_color.a * 0.2));\n #else\n return vec4(v_color.rgb, v_color.a * 0.2);\n #endif\n}\nvoid main() { gl_FragColor = back(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":42,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"USE_FORWARD_PIPELINE","type":"boolean"}]},{"hash":3460055559,"name":"internal/builtin-geometry-renderer|dashed-line-vs:vert|dashed-line-fs:front","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_color","format":44,"location":1,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nin highp vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\nout float v_distance;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n pos.z -= 0.000001;\n v_color = a_color;\n v_distance = dot(a_position, vec3(1.0, 1.0, 1.0));\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec4 v_color;\nin float v_distance;\nvec4 front() {\n if (fract(v_distance) > 0.5) {\n discard;\n }\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(v_color);\n #else\n return v_color;\n #endif\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = front(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform highp mat4 cc_matViewProj;\nattribute highp vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\nvarying float v_distance;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n pos.z -= 0.000001;\n v_color = a_color;\n v_distance = dot(a_position, vec3(1.0, 1.0, 1.0));\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec4 v_color;\nvarying float v_distance;\nvec4 front() {\n if (fract(v_distance) > 0.5) {\n discard;\n }\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(v_color);\n #else\n return v_color;\n #endif\n}\nvoid main() { gl_FragColor = front(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":42,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"USE_FORWARD_PIPELINE","type":"boolean"}]},{"hash":1205971479,"name":"internal/builtin-geometry-renderer|dashed-line-vs:vert|dashed-line-fs:back","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_color","format":44,"location":1,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nin highp vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\nout float v_distance;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n pos.z -= 0.000001;\n v_color = a_color;\n v_distance = dot(a_position, vec3(1.0, 1.0, 1.0));\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec4 v_color;\nin float v_distance;\nvec4 back() {\n if (fract(v_distance) > 0.5) {\n discard;\n }\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(vec4(v_color.rgb, v_color.a * 0.2));\n #else\n return vec4(v_color.rgb, v_color.a * 0.2);\n #endif\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = back(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform highp mat4 cc_matViewProj;\nattribute highp vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\nvarying float v_distance;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n pos.z -= 0.000001;\n v_color = a_color;\n v_distance = dot(a_position, vec3(1.0, 1.0, 1.0));\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec4 v_color;\nvarying float v_distance;\nvec4 back() {\n if (fract(v_distance) > 0.5) {\n discard;\n }\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(vec4(v_color.rgb, v_color.a * 0.2));\n #else\n return vec4(v_color.rgb, v_color.a * 0.2);\n #endif\n}\nvoid main() { gl_FragColor = back(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":42,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"USE_FORWARD_PIPELINE","type":"boolean"}]},{"hash":2950611753,"name":"internal/builtin-geometry-renderer|triangle-vs:vert|triangle-fs:front","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_normal","format":44,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nin highp vec3 a_position;\nin vec4 a_normal;\nin vec4 a_color;\nout vec4 v_color;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n v_color = a_color;\n float intensity = dot(vec3(1, 2, 4), a_normal.xyz);\n v_color.rgb -= a_normal.w * intensity * 0.1;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec4 v_color;\nvec4 front() {\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(v_color);\n #else\n return v_color;\n #endif\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = front(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform highp mat4 cc_matViewProj;\nattribute highp vec3 a_position;\nattribute vec4 a_normal;\nattribute vec4 a_color;\nvarying vec4 v_color;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n v_color = a_color;\n float intensity = dot(vec3(1, 2, 4), a_normal.xyz);\n v_color.rgb -= a_normal.w * intensity * 0.1;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec4 v_color;\nvec4 front() {\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(v_color);\n #else\n return v_color;\n #endif\n}\nvoid main() { gl_FragColor = front(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":42,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"USE_FORWARD_PIPELINE","type":"boolean"}]},{"hash":319171560,"name":"internal/builtin-geometry-renderer|triangle-vs:vert|triangle-fs:back","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_normal","format":44,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nin highp vec3 a_position;\nin vec4 a_normal;\nin vec4 a_color;\nout vec4 v_color;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n v_color = a_color;\n float intensity = dot(vec3(1, 2, 4), a_normal.xyz);\n v_color.rgb -= a_normal.w * intensity * 0.1;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec4 v_color;\nvec4 back() {\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(vec4(v_color.rgb, v_color.a * 0.2));\n #else\n return vec4(v_color.rgb, v_color.a * 0.2);\n #endif\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = back(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform highp mat4 cc_matViewProj;\nattribute highp vec3 a_position;\nattribute vec4 a_normal;\nattribute vec4 a_color;\nvarying vec4 v_color;\nvec4 vert () {\n vec4 pos = cc_matViewProj * vec4(a_position, 1);\n v_color = a_color;\n float intensity = dot(vec3(1, 2, 4), a_normal.xyz);\n v_color.rgb -= a_normal.w * intensity * 0.1;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec4 v_color;\nvec4 back() {\n #if USE_FORWARD_PIPELINE\n return CCFragOutput(vec4(v_color.rgb, v_color.a * 0.2));\n #else\n return vec4(v_color.rgb, v_color.a * 0.2);\n #endif\n}\nvoid main() { gl_FragColor = back(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":42,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"USE_FORWARD_PIPELINE","type":"boolean"}]}],[{"passes":[{"primitive":1,"program":"internal/builtin-geometry-renderer|line-vs:vert|line-fs:front","priority":245,"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":false,"depthWrite":false}}]},{"passes":[{"primitive":1,"program":"internal/builtin-geometry-renderer|line-vs:vert|line-fs:front","priority":245,"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}},{"primitive":1,"program":"internal/builtin-geometry-renderer|line-vs:vert|line-fs:back","priority":245,"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false,"depthFunc":4}}]},{"passes":[{"primitive":1,"program":"internal/builtin-geometry-renderer|dashed-line-vs:vert|dashed-line-fs:front","priority":245,"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":false,"depthWrite":false}}]},{"passes":[{"primitive":1,"program":"internal/builtin-geometry-renderer|dashed-line-vs:vert|dashed-line-fs:front","priority":245,"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}},{"primitive":1,"program":"internal/builtin-geometry-renderer|dashed-line-vs:vert|dashed-line-fs:back","priority":245,"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false,"depthFunc":4}}]},{"passes":[{"program":"internal/builtin-geometry-renderer|triangle-vs:vert|triangle-fs:front","priority":245,"rasterizerState":{"cullMode":2},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":false,"depthWrite":false}}]},{"passes":[{"program":"internal/builtin-geometry-renderer|triangle-vs:vert|triangle-fs:front","priority":245,"rasterizerState":{"cullMode":2},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}},{"program":"internal/builtin-geometry-renderer|triangle-vs:vert|triangle-fs:back","priority":245,"rasterizerState":{"cullMode":2},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false,"depthFunc":4}}]}]]],0,0,[],[],[]],[[[1,"ui-alpha-test-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_ALPHA_TEST":true,"USE_TEXTURE":true,"IS_GRAY":false,"CC_USE_EMBEDDED_ALPHA":false}]]],0,0,[0],[0],[0]],[[[0,"pipeline/skybox",[{"hash":4049110380,"name":"pipeline/skybox|sky-vs:vert|sky-fs:frag","blocks":[],"samplerTextures":[{"name":"environmentMap","type":31,"count":1,"stageFlags":16,"sampleType":0,"binding":0,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_normal","format":32,"location":1,"defines":[]},{"name":"a_texCoord","format":21,"location":2,"defines":[]},{"name":"a_tangent","format":44,"location":3,"defines":[]},{"name":"a_joints","location":4,"defines":["CC_USE_SKINNING"]},{"name":"a_weights","format":44,"location":5,"defines":["CC_USE_SKINNING"]},{"name":"a_jointAnimInfo","format":44,"isInstanced":true,"location":6,"defines":["USE_INSTANCING","CC_USE_BAKED_ANIMATION"]},{"name":"a_matWorld0","format":44,"isInstanced":true,"location":7,"defines":["USE_INSTANCING"]},{"name":"a_matWorld1","format":44,"isInstanced":true,"location":8,"defines":["USE_INSTANCING"]},{"name":"a_matWorld2","format":44,"isInstanced":true,"location":9,"defines":["USE_INSTANCING"]},{"name":"a_lightingMapUVParam","format":44,"isInstanced":true,"location":10,"defines":["USE_INSTANCING","CC_USE_LIGHTMAP"]},{"name":"a_localShadowBiasAndProbeId","format":44,"isInstanced":true,"location":11,"defines":["USE_INSTANCING"]},{"name":"a_reflectionProbeData","format":44,"isInstanced":true,"location":12,"defines":["USE_INSTANCING","CC_USE_REFLECTION_PROBE"]},{"name":"a_sh_linear_const_r","format":44,"isInstanced":true,"location":13,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_g","format":44,"isInstanced":true,"location":14,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_b","format":44,"isInstanced":true,"location":15,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_vertexId","format":11,"location":16,"defines":["CC_USE_MORPH"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[{"name":"environmentMap","type":31,"count":1,"stageFlags":16,"sampleType":0,"binding":0,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[{"name":"cc_environment","typename":"samplerCube","type":31,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"global"},"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\nin vec4 a_tangent;\n#if CC_USE_SKINNING\n in vec4 a_joints;\n in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n in highp vec4 a_jointAnimInfo;\n #endif\n in vec4 a_matWorld0;\n in vec4 a_matWorld1;\n in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n in vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n in vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n in vec4 a_sh_linear_const_r;\n in vec4 a_sh_linear_const_g;\n in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n in float a_vertexId;\n#endif\nout mediump vec4 viewDir;\nvec4 vert () {\n viewDir = vec4(a_position, 1.0);\n mat4 matViewRotOnly = mat4(mat3(cc_matView));\n vec4 pos = matViewRotOnly * viewDir;\n if (cc_matProj[3].w > 0.0) {\n mat4 matProj = cc_matProj;\n matProj[0].x = 5.2;\n matProj[1].y = 2.6;\n matProj[2].zw = vec2(-1.0);\n matProj[3].zw = vec2(0.0);\n pos = matProj * pos;\n } else {\n pos = cc_matProj * pos;\n }\n pos.z = 0.99999 * pos.w;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nuniform samplerCube cc_environment;\nvec4 fragTextureLod (sampler2D tex, vec2 coord, float lod) {\n return textureLod(tex, coord, lod);\n}\nvec4 fragTextureLod (samplerCube tex, vec3 coord, float lod) {\n return textureLod(tex, coord, lod);\n}\nvec4 packRGBE (vec3 rgb) {\n highp float maxComp = max(max(rgb.r, rgb.g), rgb.b);\n highp float e = 128.0;\n if (maxComp > 0.0001) {\n e = log(maxComp) / log(1.1);\n e = ceil(e);\n e = clamp(e + 128.0, 0.0, 255.0);\n }\n highp float sc = 1.0 / pow(1.1, e - 128.0);\n vec3 encode = clamp(rgb * sc, vec3(0.0), vec3(1.0)) * 255.0;\n vec3 encode_rounded = floor(encode) + step(encode - floor(encode), vec3(0.5));\n return vec4(encode_rounded, e) / 255.0;\n}\nvec3 unpackRGBE (vec4 rgbe) {\n return rgbe.rgb * pow(1.1, rgbe.a * 255.0 - 128.0);\n}\nvec3 SRGBToLinear (vec3 gamma) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return gamma;\n }\n #endif\n#endif\n return gamma * gamma;\n}\nvec3 LinearToSRGB(vec3 linear) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return linear;\n }\n #endif\n#endif\n return sqrt(linear);\n}\nvec3 ACESToneMap (vec3 color) {\n color = min(color, vec3(8.0));\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\nvec3 HDRToLDR(vec3 color)\n{\n #if CC_USE_HDR\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (IS_DEBUG_VIEW_COMPOSITE_ENABLE_TONE_MAPPING)\n #endif\n {\n #if CC_TONE_MAPPING_TYPE == HDR_TONE_MAPPING_ACES\n color.rgb = ACESToneMap(color.rgb);\n #endif\n }\n #endif\n return color;\n}\n#if defined(CC_USE_METAL) || defined(CC_USE_WGPU)\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y) y = -y\n#else\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y)\n#endif\nvec3 RotationVecFromAxisY(vec3 v, float cosTheta, float sinTheta)\n{\n vec3 result;\n result.x = dot(v, vec3(cosTheta, 0.0, -sinTheta));\n result.y = v.y;\n result.z = dot(v, vec3(sinTheta, 0.0, cosTheta));\n return result;\n}\nvec3 RotationVecFromAxisY(vec3 v, float rotateAngleArc)\n{\n return RotationVecFromAxisY(v, cos(rotateAngleArc), sin(rotateAngleArc));\n}\nin mediump vec4 viewDir;\nuniform samplerCube environmentMap;\nvec4 frag () {\n vec3 rotationDir = RotationVecFromAxisY(viewDir.xyz, cc_surfaceTransform.z, cc_surfaceTransform.w);\n #if USE_RGBE_CUBEMAP\n vec3 c = unpackRGBE(fragTextureLod(environmentMap, rotationDir.xyz, 0.0));\n #else\n vec3 c = SRGBToLinear(fragTextureLod(environmentMap, rotationDir.xyz, 0.0).rgb);\n #endif\n vec4 color = vec4(c * cc_ambientSky.w, 1.0);\n #if CC_USE_RGBE_OUTPUT\n color = packRGBE(color.rgb);\n #else\n color.rgb = HDRToLDR(color.rgb);\n color.rgb = LinearToSRGB(color.rgb);\n #endif\n return color;\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matProj;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nattribute vec4 a_tangent;\n#if CC_USE_SKINNING\n attribute vec4 a_joints;\n attribute vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n attribute highp vec4 a_jointAnimInfo;\n #endif\n attribute vec4 a_matWorld0;\n attribute vec4 a_matWorld1;\n attribute vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n attribute vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n attribute vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n attribute vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n attribute vec4 a_sh_linear_const_r;\n attribute vec4 a_sh_linear_const_g;\n attribute vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n attribute float a_vertexId;\n#endif\nvarying mediump vec4 viewDir;\nvec4 vert () {\n viewDir = vec4(a_position, 1.0);\n mat4 matViewRotOnly = mat4(mat3(cc_matView));\n vec4 pos = matViewRotOnly * viewDir;\n if (cc_matProj[3].w > 0.0) {\n mat4 matProj = cc_matProj;\n matProj[0].x = 5.2;\n matProj[1].y = 2.6;\n matProj[2].zw = vec2(-1.0);\n matProj[3].zw = vec2(0.0);\n pos = matProj * pos;\n } else {\n pos = cc_matProj * pos;\n }\n pos.z = 0.99999 * pos.w;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod: enable\n#endif\nprecision mediump float;\nuniform mediump vec4 cc_surfaceTransform;\n uniform mediump vec4 cc_ambientSky;\nuniform samplerCube cc_environment;\nvec4 fragTextureLod (sampler2D tex, vec2 coord, float lod) {\n #ifdef GL_EXT_shader_texture_lod\n return texture2DLodEXT(tex, coord, lod);\n #else\n return texture2D(tex, coord, lod);\n #endif\n}\nvec4 fragTextureLod (samplerCube tex, vec3 coord, float lod) {\n #ifdef GL_EXT_shader_texture_lod\n return textureCubeLodEXT(tex, coord, lod);\n #else\n return textureCube(tex, coord, lod);\n #endif\n}\nvec4 packRGBE (vec3 rgb) {\n highp float maxComp = max(max(rgb.r, rgb.g), rgb.b);\n highp float e = 128.0;\n if (maxComp > 0.0001) {\n e = log(maxComp) / log(1.1);\n e = ceil(e);\n e = clamp(e + 128.0, 0.0, 255.0);\n }\n highp float sc = 1.0 / pow(1.1, e - 128.0);\n vec3 encode = clamp(rgb * sc, vec3(0.0), vec3(1.0)) * 255.0;\n vec3 encode_rounded = floor(encode) + step(encode - floor(encode), vec3(0.5));\n return vec4(encode_rounded, e) / 255.0;\n}\nvec3 unpackRGBE (vec4 rgbe) {\n return rgbe.rgb * pow(1.1, rgbe.a * 255.0 - 128.0);\n}\nvec3 SRGBToLinear (vec3 gamma) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return gamma;\n }\n #endif\n#endif\n return gamma * gamma;\n}\nvec3 LinearToSRGB(vec3 linear) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return linear;\n }\n #endif\n#endif\n return sqrt(linear);\n}\nvec3 ACESToneMap (vec3 color) {\n color = min(color, vec3(8.0));\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\nvec3 HDRToLDR(vec3 color)\n{\n #if CC_USE_HDR\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (IS_DEBUG_VIEW_COMPOSITE_ENABLE_TONE_MAPPING)\n #endif\n {\n #if CC_TONE_MAPPING_TYPE == HDR_TONE_MAPPING_ACES\n color.rgb = ACESToneMap(color.rgb);\n #endif\n }\n #endif\n return color;\n}\n#if defined(CC_USE_METAL) || defined(CC_USE_WGPU)\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y) y = -y\n#else\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y)\n#endif\nvec3 RotationVecFromAxisY(vec3 v, float cosTheta, float sinTheta)\n{\n vec3 result;\n result.x = dot(v, vec3(cosTheta, 0.0, -sinTheta));\n result.y = v.y;\n result.z = dot(v, vec3(sinTheta, 0.0, cosTheta));\n return result;\n}\nvec3 RotationVecFromAxisY(vec3 v, float rotateAngleArc)\n{\n return RotationVecFromAxisY(v, cos(rotateAngleArc), sin(rotateAngleArc));\n}\nvarying mediump vec4 viewDir;\nuniform samplerCube environmentMap;\nvec4 frag () {\n vec3 rotationDir = RotationVecFromAxisY(viewDir.xyz, cc_surfaceTransform.z, cc_surfaceTransform.w);\n #if USE_RGBE_CUBEMAP\n vec3 c = unpackRGBE(fragTextureLod(environmentMap, rotationDir.xyz, 0.0));\n #else\n vec3 c = SRGBToLinear(fragTextureLod(environmentMap, rotationDir.xyz, 0.0).rgb);\n #endif\n vec4 color = vec4(c * cc_ambientSky.w, 1.0);\n #if CC_USE_RGBE_OUTPUT\n color = packRGBE(color.rgb);\n #else\n color.rgb = HDRToLDR(color.rgb);\n color.rgb = LinearToSRGB(color.rgb);\n #endif\n return color;\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[{"name":"cc_environment","defines":[]}],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":42,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"USE_INSTANCING","type":"boolean"},{"name":"CC_USE_SKINNING","type":"boolean"},{"name":"CC_USE_BAKED_ANIMATION","type":"boolean"},{"name":"CC_USE_LIGHTMAP","type":"boolean"},{"name":"CC_USE_REFLECTION_PROBE","type":"boolean"},{"name":"CC_RECEIVE_SHADOW","type":"boolean"},{"name":"CC_USE_LIGHT_PROBE","type":"boolean"},{"name":"CC_USE_MORPH","type":"boolean"},{"name":"CC_USE_IBL","type":"number","range":[0,2]},{"name":"CC_USE_DEBUG_VIEW","type":"number","range":[0,3]},{"name":"CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC","type":"boolean"},{"name":"CC_SURFACES_ENABLE_DEBUG_VIEW","type":"boolean"},{"name":"CC_USE_HDR","type":"boolean"},{"name":"CC_TONE_MAPPING_TYPE","type":"number","range":[0,3]},{"name":"HDR_TONE_MAPPING_ACES","type":"boolean"},{"name":"USE_RGBE_CUBEMAP","type":"boolean"},{"name":"CC_USE_RGBE_OUTPUT","type":"boolean"}]}],[{"passes":[{"program":"pipeline/skybox|sky-vs:vert|sky-fs:frag","priority":245,"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"environmentMap":{"value":"grey","type":31}}},{"propertyIndex":0,"phase":"deferred-forward","program":"pipeline/skybox|sky-vs:vert|sky-fs:frag","priority":245,"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":true,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[0,"pipeline/deferred-lighting",[{"hash":2709771666,"name":"pipeline/deferred-lighting|lighting-vs|lighting-fs","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_normal","format":32,"location":1,"defines":[]},{"name":"a_texCoord","format":21,"location":2,"defines":[]},{"name":"a_tangent","format":44,"location":3,"defines":[]},{"name":"a_joints","location":4,"defines":["CC_USE_SKINNING"]},{"name":"a_weights","format":44,"location":5,"defines":["CC_USE_SKINNING"]},{"name":"a_jointAnimInfo","format":44,"isInstanced":true,"location":6,"defines":["USE_INSTANCING","CC_USE_BAKED_ANIMATION"]},{"name":"a_matWorld0","format":44,"isInstanced":true,"location":7,"defines":["USE_INSTANCING"]},{"name":"a_matWorld1","format":44,"isInstanced":true,"location":8,"defines":["USE_INSTANCING"]},{"name":"a_matWorld2","format":44,"isInstanced":true,"location":9,"defines":["USE_INSTANCING"]},{"name":"a_lightingMapUVParam","format":44,"isInstanced":true,"location":10,"defines":["USE_INSTANCING","CC_USE_LIGHTMAP"]},{"name":"a_localShadowBiasAndProbeId","format":44,"isInstanced":true,"location":11,"defines":["USE_INSTANCING"]},{"name":"a_reflectionProbeData","format":44,"isInstanced":true,"location":12,"defines":["USE_INSTANCING","CC_USE_REFLECTION_PROBE"]},{"name":"a_sh_linear_const_r","format":44,"isInstanced":true,"location":13,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_g","format":44,"isInstanced":true,"location":14,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_b","format":44,"isInstanced":true,"location":15,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_vertexId","format":11,"location":16,"defines":["CC_USE_MORPH"]}],"fragColors":[{"name":"fragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":16,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_USE_REFLECTION_PROBE"]},{"name":"CCSH","stageFlags":16,"tags":{"builtin":"local"},"members":[{"name":"cc_sh_linear_const_r","typename":"vec4","type":16,"count":1},{"name":"cc_sh_linear_const_g","typename":"vec4","type":16,"count":1},{"name":"cc_sh_linear_const_b","typename":"vec4","type":16,"count":1},{"name":"cc_sh_quadratic_r","typename":"vec4","type":16,"count":1},{"name":"cc_sh_quadratic_g","typename":"vec4","type":16,"count":1},{"name":"cc_sh_quadratic_b","typename":"vec4","type":16,"count":1},{"name":"cc_sh_quadratic_a","typename":"vec4","type":16,"count":1}],"defines":["CC_USE_LIGHT_PROBE","!USE_INSTANCING"]},{"name":"CCForwardLight","stageFlags":16,"tags":{"builtin":"local"},"members":[{"name":"cc_lightPos","typename":"vec4","type":16,"count":0,"precision":"highp ","isArray":true},{"name":"cc_lightColor","typename":"vec4","type":16,"count":0,"isArray":true},{"name":"cc_lightSizeRangeAngle","typename":"vec4","type":16,"count":0,"isArray":true},{"name":"cc_lightDir","typename":"vec4","type":16,"count":0,"isArray":true},{"name":"cc_lightBoundingSizeVS","typename":"vec4","type":16,"count":0,"isArray":true}],"defines":["CC_ENABLE_CLUSTERED_LIGHT_CULLING"]}],"samplerTextures":[{"name":"cc_reflectionProbeCubemap","typename":"samplerCube","type":31,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_REFLECTION_PROBE"]},{"name":"cc_reflectionProbePlanarMap","typename":"sampler2D","type":28,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_REFLECTION_PROBE"]},{"name":"cc_reflectionProbeDataMap","typename":"sampler2D","type":28,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_REFLECTION_PROBE"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCShadow","stageFlags":16,"tags":{"builtin":"global"},"members":[{"name":"cc_matLightView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matLightViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_shadowInvProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowNFLSInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowWHPBInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowLPNNInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowColor","typename":"vec4","type":16,"count":1,"precision":"lowp "},{"name":"cc_planarNDInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCSM","stageFlags":16,"tags":{"builtin":"global"},"members":[{"name":"cc_csmViewDir0","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmViewDir1","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmViewDir2","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmAtlas","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_matCSMViewProj","typename":"mat4","type":25,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmProjDepthInfo","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmProjInfo","typename":"vec4","type":16,"count":4,"precision":"highp ","isArray":true},{"name":"cc_csmSplitsInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_SUPPORT_CASCADED_SHADOW_MAP"]}],"samplerTextures":[{"name":"cc_shadowMap","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":16,"sampleType":0,"tags":{"builtin":"global"},"defines":["CC_RECEIVE_SHADOW"]},{"name":"cc_spotShadowMap","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":16,"sampleType":0,"tags":{"builtin":"global"},"defines":["CC_RECEIVE_SHADOW"]},{"name":"cc_environment","typename":"samplerCube","type":31,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"global"},"defines":[]},{"name":"cc_diffuseMap","typename":"samplerCube","type":31,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"global"},"defines":["CC_USE_IBL","CC_USE_DIFFUSEMAP"]},{"name":"albedoMap","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":0,"defines":[]},{"name":"normalMap","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":1,"defines":[]},{"name":"emissiveMap","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]},{"name":"depthStencil","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":3,"defines":[]}],"samplers":[],"textures":[],"buffers":[{"name":"b_ccLightsBuffer","memoryAccess":1,"stageFlags":16,"binding":4,"defines":["CC_ENABLE_CLUSTERED_LIGHT_CULLING"]},{"name":"b_clusterLightIndicesBuffer","memoryAccess":1,"stageFlags":16,"binding":5,"defines":["CC_ENABLE_CLUSTERED_LIGHT_CULLING"]},{"name":"b_clusterLightGridBuffer","memoryAccess":1,"stageFlags":16,"binding":6,"defines":["CC_ENABLE_CLUSTERED_LIGHT_CULLING"]}],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\nin vec4 a_tangent;\n#if CC_USE_SKINNING\n in vec4 a_joints;\n in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n in highp vec4 a_jointAnimInfo;\n #endif\n in vec4 a_matWorld0;\n in vec4 a_matWorld1;\n in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n in vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n in vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n in vec4 a_sh_linear_const_r;\n in vec4 a_sh_linear_const_g;\n in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n in float a_vertexId;\n#endif\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nout vec2 v_uv;\nvoid main () {\n vec4 position;\n position = vec4(a_position, 1.0);\n position.xy = cc_cameraPos.w == 0.0 ? vec2(position.xy.x, -position.xy.y) : position.xy;\n gl_Position = vec4(position.x, position.y, 1.0, 1.0);\n v_uv = a_texCoord;\n}","frag":"\n precision highp float;\n layout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n };\n layout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n };\n #define QUATER_PI 0.78539816340\n #define HALF_PI 1.57079632679\n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define PI4 12.5663706144\n #define INV_QUATER_PI 1.27323954474\n #define INV_HALF_PI 0.63661977237\n #define INV_PI 0.31830988618\n #define INV_PI2 0.15915494309\n #define INV_PI4 0.07957747155\n #define EPSILON 1e-6\n #define EPSILON_LOWP 1e-4\n #define LOG2 1.442695\n #define EXP_VALUE 2.71828183\n #define FP_MAX 65504.0\n #define FP_SCALE 0.0009765625\n #define FP_SCALE_INV 1024.0\n #define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n #define LIGHT_MAP_TYPE_DISABLED 0\n #define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n #define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n #define REFLECTION_PROBE_TYPE_NONE 0\n #define REFLECTION_PROBE_TYPE_CUBE 1\n #define REFLECTION_PROBE_TYPE_PLANAR 2\n #define REFLECTION_PROBE_TYPE_BLEND 3\n #define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n #define LIGHT_TYPE_DIRECTIONAL 0.0\n #define LIGHT_TYPE_SPHERE 1.0\n #define LIGHT_TYPE_SPOT 2.0\n #define LIGHT_TYPE_POINT 3.0\n #define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n #define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n #define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n #define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n #define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n #define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n #define TONE_MAPPING_ACES 0\n #define TONE_MAPPING_LINEAR 1\n #define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n #ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n #endif\n #ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n #endif\n vec3 SRGBToLinear (vec3 gamma) {\n #ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return gamma;\n }\n #endif\n #endif\n return gamma * gamma;\n }\n vec3 LinearToSRGB(vec3 linear) {\n #ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return linear;\n }\n #endif\n #endif\n return sqrt(linear);\n }\n layout(std140) uniform CCShadow {\n highp mat4 cc_matLightView;\n highp mat4 cc_matLightViewProj;\n highp vec4 cc_shadowInvProjDepthInfo;\n highp vec4 cc_shadowProjDepthInfo;\n highp vec4 cc_shadowProjInfo;\n mediump vec4 cc_shadowNFLSInfo;\n mediump vec4 cc_shadowWHPBInfo;\n mediump vec4 cc_shadowLPNNInfo;\n lowp vec4 cc_shadowColor;\n mediump vec4 cc_planarNDInfo;\n };\n #if CC_SUPPORT_CASCADED_SHADOW_MAP\n layout(std140) uniform CCCSM {\n highp vec4 cc_csmViewDir0[4];\n highp vec4 cc_csmViewDir1[4];\n highp vec4 cc_csmViewDir2[4];\n highp vec4 cc_csmAtlas[4];\n highp mat4 cc_matCSMViewProj[4];\n highp vec4 cc_csmProjDepthInfo[4];\n highp vec4 cc_csmProjInfo[4];\n highp vec4 cc_csmSplitsInfo;\n };\n #endif\n #if defined(CC_USE_METAL) || defined(CC_USE_WGPU)\n #define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y) y = -y\n #else\n #define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y)\n #endif\n vec2 GetPlanarReflectScreenUV(vec3 worldPos, mat4 matVirtualCameraViewProj, float flipNDCSign, vec3 viewDir, vec3 reflectDir)\n {\n vec4 clipPos = matVirtualCameraViewProj * vec4(worldPos, 1.0);\n vec2 screenUV = clipPos.xy / clipPos.w * 0.5 + 0.5;\n screenUV = vec2(1.0 - screenUV.x, screenUV.y);\n screenUV = flipNDCSign == 1.0 ? vec2(screenUV.x, 1.0 - screenUV.y) : screenUV;\n return screenUV;\n }\n float GetCameraDepthRH(float depthHS, mat4 matProj)\n {\n return -matProj[3][2] / (depthHS + matProj[2][2]);\n }\n float GetCameraDepthRH(float depthHS, float matProj32, float matProj22)\n {\n return -matProj32 / (depthHS + matProj22);\n }\n vec4 GetWorldPosFromNDCPosRH(vec3 posHS, mat4 matProj, mat4 matViewProjInv)\n {\n float w = -GetCameraDepthRH(posHS.z, matProj);\n return matViewProjInv * vec4(posHS * w, w);\n }\n float GetLinearDepthFromViewSpace(vec3 viewPos, float near, float far) {\n float dist = length(viewPos);\n return (dist - near) / (far - near);\n }\n vec3 RotationVecFromAxisY(vec3 v, float cosTheta, float sinTheta)\n {\n vec3 result;\n result.x = dot(v, vec3(cosTheta, 0.0, -sinTheta));\n result.y = v.y;\n result.z = dot(v, vec3(sinTheta, 0.0, cosTheta));\n return result;\n }\n vec3 RotationVecFromAxisY(vec3 v, float rotateAngleArc)\n {\n return RotationVecFromAxisY(v, cos(rotateAngleArc), sin(rotateAngleArc));\n }\n float CCGetLinearDepth(vec3 worldPos, float viewSpaceBias) {\n \tvec4 viewPos = cc_matLightView * vec4(worldPos.xyz, 1.0);\n viewPos.z += viewSpaceBias;\n \treturn GetLinearDepthFromViewSpace(viewPos.xyz, cc_shadowNFLSInfo.x, cc_shadowNFLSInfo.y);\n }\n float CCGetLinearDepth(vec3 worldPos) {\n \treturn CCGetLinearDepth(worldPos, 0.0);\n }\n #if CC_RECEIVE_SHADOW\n uniform highp sampler2D cc_shadowMap;\n uniform highp sampler2D cc_spotShadowMap;\n #define UnpackBitFromFloat(value, bit) (mod(floor(value / pow(10.0, float(bit))), 10.0) > 0.0)\n highp float unpackHighpData (float mainPart, float modPart) {\n highp float data = mainPart;\n return data + modPart;\n }\n highp float unpackHighpData (float mainPart, float modPart, const float modValue) {\n highp float data = mainPart * modValue;\n return data + modPart * modValue;\n }\n highp vec2 unpackHighpData (vec2 mainPart, vec2 modPart) {\n highp vec2 data = mainPart;\n return data + modPart;\n }\n highp vec2 unpackHighpData (vec2 mainPart, vec2 modPart, const float modValue) {\n highp vec2 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n highp vec3 unpackHighpData (vec3 mainPart, vec3 modPart) {\n highp vec3 data = mainPart;\n return data + modPart;\n }\n highp vec3 unpackHighpData (vec3 mainPart, vec3 modPart, const float modValue) {\n highp vec3 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n highp vec4 unpackHighpData (vec4 mainPart, vec4 modPart) {\n highp vec4 data = mainPart;\n return data + modPart;\n }\n highp vec4 unpackHighpData (vec4 mainPart, vec4 modPart, const float modValue) {\n highp vec4 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n vec4 shadowTexure(highp sampler2D shadowMap, vec2 coord) {\n #if defined(CC_USE_WGPU)\n return textureLod(shadowMap, coord, 0.0);\n #else\n return texture(shadowMap, coord);\n #endif\n }\n float NativePCFShadowFactorHard (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n #if CC_SHADOWMAP_FORMAT == 1\n return step(shadowNDCPos.z, dot(shadowTexure(shadowMap, shadowNDCPos.xy), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n return step(shadowNDCPos.z, shadowTexure(shadowMap, shadowNDCPos.xy).x);\n #endif\n }\n float NativePCFShadowFactorSoft (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n vec2 shadowNDCPos_offset = shadowNDCPos.xy + oneTap;\n float block0, block1, block2, block3;\n #if CC_SHADOWMAP_FORMAT == 1\n block0 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos_offset.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block0 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)).x);\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos.y)).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset.y)).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos_offset.y)).x);\n #endif\n float coefX = mod(shadowNDCPos.x, oneTap.x) * shadowMapResolution.x;\n float resultX = mix(block0, block1, coefX);\n float resultY = mix(block2, block3, coefX);\n float coefY = mod(shadowNDCPos.y, oneTap.y) * shadowMapResolution.y;\n return mix(resultX, resultY, coefY);\n }\n float NativePCFShadowFactorSoft3X (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n float shadowNDCPos_offset_L = shadowNDCPos.x - oneTap.x;\n float shadowNDCPos_offset_R = shadowNDCPos.x + oneTap.x;\n float shadowNDCPos_offset_U = shadowNDCPos.y - oneTap.y;\n float shadowNDCPos_offset_D = shadowNDCPos.y + oneTap.y;\n float block0, block1, block2, block3, block4, block5, block6, block7, block8;\n #if CC_SHADOWMAP_FORMAT == 1\n block0 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block4 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block5 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block6 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block7 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block8 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block0 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_U)).x);\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_U)).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_U)).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos.y)).x);\n block4 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)).x);\n block5 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos.y)).x);\n block6 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_D)).x);\n block7 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_D)).x);\n block8 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_D)).x);\n #endif\n float coefX = mod(shadowNDCPos.x, oneTap.x) * shadowMapResolution.x;\n float coefY = mod(shadowNDCPos.y, oneTap.y) * shadowMapResolution.y;\n float shadow = 0.0;\n float resultX = mix(block0, block1, coefX);\n float resultY = mix(block3, block4, coefX);\n shadow += mix(resultX , resultY, coefY);\n resultX = mix(block1, block2, coefX);\n resultY = mix(block4, block5, coefX);\n shadow += mix(resultX , resultY, coefY);\n resultX = mix(block3, block4, coefX);\n resultY = mix(block6, block7, coefX);\n shadow += mix(resultX, resultY, coefY);\n resultX = mix(block4, block5, coefX);\n resultY = mix(block7, block8, coefX);\n shadow += mix(resultX, resultY, coefY);\n return shadow * 0.25;\n }\n float NativePCFShadowFactorSoft5X (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n vec2 twoTap = oneTap * 2.0;\n vec2 offset1 = shadowNDCPos.xy + vec2(-twoTap.x, -twoTap.y);\n vec2 offset2 = shadowNDCPos.xy + vec2(-oneTap.x, -twoTap.y);\n vec2 offset3 = shadowNDCPos.xy + vec2(0.0, -twoTap.y);\n vec2 offset4 = shadowNDCPos.xy + vec2(oneTap.x, -twoTap.y);\n vec2 offset5 = shadowNDCPos.xy + vec2(twoTap.x, -twoTap.y);\n vec2 offset6 = shadowNDCPos.xy + vec2(-twoTap.x, -oneTap.y);\n vec2 offset7 = shadowNDCPos.xy + vec2(-oneTap.x, -oneTap.y);\n vec2 offset8 = shadowNDCPos.xy + vec2(0.0, -oneTap.y);\n vec2 offset9 = shadowNDCPos.xy + vec2(oneTap.x, -oneTap.y);\n vec2 offset10 = shadowNDCPos.xy + vec2(twoTap.x, -oneTap.y);\n vec2 offset11 = shadowNDCPos.xy + vec2(-twoTap.x, 0.0);\n vec2 offset12 = shadowNDCPos.xy + vec2(-oneTap.x, 0.0);\n vec2 offset13 = shadowNDCPos.xy + vec2(0.0, 0.0);\n vec2 offset14 = shadowNDCPos.xy + vec2(oneTap.x, 0.0);\n vec2 offset15 = shadowNDCPos.xy + vec2(twoTap.x, 0.0);\n vec2 offset16 = shadowNDCPos.xy + vec2(-twoTap.x, oneTap.y);\n vec2 offset17 = shadowNDCPos.xy + vec2(-oneTap.x, oneTap.y);\n vec2 offset18 = shadowNDCPos.xy + vec2(0.0, oneTap.y);\n vec2 offset19 = shadowNDCPos.xy + vec2(oneTap.x, oneTap.y);\n vec2 offset20 = shadowNDCPos.xy + vec2(twoTap.x, oneTap.y);\n vec2 offset21 = shadowNDCPos.xy + vec2(-twoTap.x, twoTap.y);\n vec2 offset22 = shadowNDCPos.xy + vec2(-oneTap.x, twoTap.y);\n vec2 offset23 = shadowNDCPos.xy + vec2(0.0, twoTap.y);\n vec2 offset24 = shadowNDCPos.xy + vec2(oneTap.x, twoTap.y);\n vec2 offset25 = shadowNDCPos.xy + vec2(twoTap.x, twoTap.y);\n float block1, block2, block3, block4, block5, block6, block7, block8, block9, block10, block11, block12, block13, block14, block15, block16, block17, block18, block19, block20, block21, block22, block23, block24, block25;\n #if CC_SHADOWMAP_FORMAT == 1\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset1), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset2), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset3), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block4 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset4), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block5 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset5), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block6 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset6), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block7 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset7), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block8 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset8), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block9 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset9), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block10 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset10), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block11 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset11), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block12 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset12), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block13 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset13), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block14 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset14), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block15 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset15), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block16 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset16), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block17 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset17), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block18 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset18), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block19 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset19), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block20 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset20), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block21 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset21), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block22 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset22), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block23 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset23), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block24 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset24), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block25 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset25), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset1).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset2).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset3).x);\n block4 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset4).x);\n block5 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset5).x);\n block6 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset6).x);\n block7 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset7).x);\n block8 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset8).x);\n block9 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset9).x);\n block10 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset10).x);\n block11 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset11).x);\n block12 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset12).x);\n block13 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset13).x);\n block14 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset14).x);\n block15 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset15).x);\n block16 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset16).x);\n block17 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset17).x);\n block18 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset18).x);\n block19 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset19).x);\n block20 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset20).x);\n block21 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset21).x);\n block22 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset22).x);\n block23 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset23).x);\n block24 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset24).x);\n block25 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset25).x);\n #endif\n vec2 coef = fract(shadowNDCPos.xy * shadowMapResolution);\n vec2 v1X1 = mix(vec2(block1, block6), vec2(block2, block7), coef.xx);\n vec2 v1X2 = mix(vec2(block2, block7), vec2(block3, block8), coef.xx);\n vec2 v1X3 = mix(vec2(block3, block8), vec2(block4, block9), coef.xx);\n vec2 v1X4 = mix(vec2(block4, block9), vec2(block5, block10), coef.xx);\n float v1 = mix(v1X1.x, v1X1.y, coef.y) + mix(v1X2.x, v1X2.y, coef.y) + mix(v1X3.x, v1X3.y, coef.y) + mix(v1X4.x, v1X4.y, coef.y);\n vec2 v2X1 = mix(vec2(block6, block11), vec2(block7, block12), coef.xx);\n vec2 v2X2 = mix(vec2(block7, block12), vec2(block8, block13), coef.xx);\n vec2 v2X3 = mix(vec2(block8, block13), vec2(block9, block14), coef.xx);\n vec2 v2X4 = mix(vec2(block9, block14), vec2(block10, block15), coef.xx);\n float v2 = mix(v2X1.x, v2X1.y, coef.y) + mix(v2X2.x, v2X2.y, coef.y) + mix(v2X3.x, v2X3.y, coef.y) + mix(v2X4.x, v2X4.y, coef.y);\n vec2 v3X1 = mix(vec2(block11, block16), vec2(block12, block17), coef.xx);\n vec2 v3X2 = mix(vec2(block12, block17), vec2(block13, block18), coef.xx);\n vec2 v3X3 = mix(vec2(block13, block18), vec2(block14, block19), coef.xx);\n vec2 v3X4 = mix(vec2(block14, block19), vec2(block15, block20), coef.xx);\n float v3 = mix(v3X1.x, v3X1.y, coef.y) + mix(v3X2.x, v3X2.y, coef.y) + mix(v3X3.x, v3X3.y, coef.y) + mix(v3X4.x, v3X4.y, coef.y);\n vec2 v4X1 = mix(vec2(block16, block21), vec2(block17, block22), coef.xx);\n vec2 v4X2 = mix(vec2(block17, block22), vec2(block18, block23), coef.xx);\n vec2 v4X3 = mix(vec2(block18, block23), vec2(block19, block24), coef.xx);\n vec2 v4X4 = mix(vec2(block19, block24), vec2(block20, block25), coef.xx);\n float v4 = mix(v4X1.x, v4X1.y, coef.y) + mix(v4X2.x, v4X2.y, coef.y) + mix(v4X3.x, v4X3.y, coef.y) + mix(v4X4.x, v4X4.y, coef.y);\n float fAvg = (v1 + v2 + v3 + v4) * 0.0625;\n return fAvg;\n }\n bool GetShadowNDCPos(out vec3 shadowNDCPos, vec4 shadowPosWithDepthBias)\n {\n \tshadowNDCPos = shadowPosWithDepthBias.xyz / shadowPosWithDepthBias.w * 0.5 + 0.5;\n \tif (shadowNDCPos.x < 0.0 || shadowNDCPos.x > 1.0 ||\n \t\tshadowNDCPos.y < 0.0 || shadowNDCPos.y > 1.0 ||\n \t\tshadowNDCPos.z < 0.0 || shadowNDCPos.z > 1.0) {\n \t\treturn false;\n \t}\n \tshadowNDCPos.xy = cc_cameraPos.w == 1.0 ? vec2(shadowNDCPos.xy.x, 1.0 - shadowNDCPos.xy.y) : shadowNDCPos.xy;\n \treturn true;\n }\n vec4 ApplyShadowDepthBias_FaceNormal(vec4 shadowPos, vec3 worldNormal, float normalBias, vec3 matViewDir0, vec3 matViewDir1, vec3 matViewDir2, vec2 projScaleXY)\n {\n vec4 newShadowPos = shadowPos;\n if (normalBias > EPSILON_LOWP)\n {\n vec3 viewNormal = vec3(dot(matViewDir0, worldNormal), dot(matViewDir1, worldNormal), dot(matViewDir2, worldNormal));\n if (viewNormal.z < 0.1)\n newShadowPos.xy += viewNormal.xy * projScaleXY * normalBias * clamp(viewNormal.z, 0.001, 0.1);\n }\n return newShadowPos;\n }\n vec4 ApplyShadowDepthBias_FaceNormal(vec4 shadowPos, vec3 worldNormal, float normalBias, mat4 matLightView, vec2 projScaleXY)\n {\n \tvec4 newShadowPos = shadowPos;\n \tif (normalBias > EPSILON_LOWP)\n \t{\n \t\tvec4 viewNormal = matLightView * vec4(worldNormal, 0.0);\n \t\tif (viewNormal.z < 0.1)\n \t\t\tnewShadowPos.xy += viewNormal.xy * projScaleXY * normalBias * clamp(viewNormal.z, 0.001, 0.1);\n \t}\n \treturn newShadowPos;\n }\n float GetViewSpaceDepthFromNDCDepth_Orthgraphic(float NDCDepth, float projScaleZ, float projBiasZ)\n {\n \treturn (NDCDepth - projBiasZ) / projScaleZ;\n }\n float GetViewSpaceDepthFromNDCDepth_Perspective(float NDCDepth, float homogenousDividW, float invProjScaleZ, float invProjBiasZ)\n {\n \treturn NDCDepth * invProjScaleZ + homogenousDividW * invProjBiasZ;\n }\n vec4 ApplyShadowDepthBias_Perspective(vec4 shadowPos, float viewspaceDepthBias)\n {\n \tvec3 viewSpacePos;\n \tviewSpacePos.xy = shadowPos.xy * cc_shadowProjInfo.zw;\n \tviewSpacePos.z = GetViewSpaceDepthFromNDCDepth_Perspective(shadowPos.z, shadowPos.w, cc_shadowInvProjDepthInfo.x, cc_shadowInvProjDepthInfo.y);\n \tviewSpacePos.xyz += cc_shadowProjDepthInfo.z * normalize(viewSpacePos.xyz) * viewspaceDepthBias;\n \tvec4 clipSpacePos;\n \tclipSpacePos.xy = viewSpacePos.xy * cc_shadowProjInfo.xy;\n \tclipSpacePos.zw = viewSpacePos.z * cc_shadowProjDepthInfo.xz + vec2(cc_shadowProjDepthInfo.y, 0.0);\n \t#if CC_SHADOWMAP_USE_LINEAR_DEPTH\n \t\tclipSpacePos.z = GetLinearDepthFromViewSpace(viewSpacePos.xyz, cc_shadowNFLSInfo.x, cc_shadowNFLSInfo.y);\n \t\tclipSpacePos.z = (clipSpacePos.z * 2.0 - 1.0) * clipSpacePos.w;\n \t#endif\n \treturn clipSpacePos;\n }\n vec4 ApplyShadowDepthBias_Orthographic(vec4 shadowPos, float viewspaceDepthBias, float projScaleZ, float projBiasZ)\n {\n \tfloat coeffA = projScaleZ;\n \tfloat coeffB = projBiasZ;\n \tfloat viewSpacePos_z = GetViewSpaceDepthFromNDCDepth_Orthgraphic(shadowPos.z, projScaleZ, projBiasZ);\n \tviewSpacePos_z += viewspaceDepthBias;\n \tvec4 result = shadowPos;\n \tresult.z = viewSpacePos_z * coeffA + coeffB;\n \treturn result;\n }\n vec4 ApplyShadowDepthBias_PerspectiveLinearDepth(vec4 shadowPos, float viewspaceDepthBias, vec3 worldPos)\n {\n shadowPos.z = CCGetLinearDepth(worldPos, viewspaceDepthBias) * 2.0 - 1.0;\n shadowPos.z *= shadowPos.w;\n return shadowPos;\n }\n float CCGetDirLightShadowFactorHard (vec4 shadowPosWithDepthBias) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorHard(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft (vec4 shadowPosWithDepthBias) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft3X (vec4 shadowPosWithDepthBias) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft3X(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft5X (vec4 shadowPosWithDepthBias) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft5X(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorHard (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorHard(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft3X (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft3X(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft5X (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft5X(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCSpotShadowFactorBase(out vec4 shadowPosWithDepthBias, vec4 shadowPos, vec3 worldPos, vec2 shadowBias)\n {\n float pcf = cc_shadowWHPBInfo.z;\n vec4 pos = vec4(1.0);\n #if CC_SHADOWMAP_USE_LINEAR_DEPTH\n pos = ApplyShadowDepthBias_PerspectiveLinearDepth(shadowPos, shadowBias.x, worldPos);\n #else\n pos = ApplyShadowDepthBias_Perspective(shadowPos, shadowBias.x);\n #endif\n float realtimeShadow = 1.0;\n if (pcf > 2.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft5X(pos, worldPos);\n }else if (pcf > 1.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft3X(pos, worldPos);\n }else if (pcf > 0.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft(pos, worldPos);\n }else {\n realtimeShadow = CCGetSpotLightShadowFactorHard(pos, worldPos);\n }\n shadowPosWithDepthBias = pos;\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n }\n float CCShadowFactorBase(out vec4 shadowPosWithDepthBias, vec4 shadowPos, vec3 N, vec2 shadowBias)\n {\n vec4 pos = ApplyShadowDepthBias_FaceNormal(shadowPos, N, shadowBias.y, cc_matLightView, cc_shadowProjInfo.xy);\n pos = ApplyShadowDepthBias_Orthographic(pos, shadowBias.x, cc_shadowProjDepthInfo.x, cc_shadowProjDepthInfo.y);\n float realtimeShadow = 1.0;\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n realtimeShadow = CCGetDirLightShadowFactorSoft5X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n realtimeShadow = CCGetDirLightShadowFactorSoft3X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n realtimeShadow = CCGetDirLightShadowFactorSoft(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n realtimeShadow = CCGetDirLightShadowFactorHard(pos);\n #endif\n shadowPosWithDepthBias = pos;\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n }\n #if CC_SUPPORT_CASCADED_SHADOW_MAP\n bool CCGetCSMLevelWithTransition(out highp float ratio, vec3 clipPos) {\n highp float maxRange = 1.0 - cc_csmSplitsInfo.x;\n highp float minRange = cc_csmSplitsInfo.x;\n highp float thresholdInvert = 1.0 / cc_csmSplitsInfo.x;\n ratio = 0.0;\n if (clipPos.x <= minRange) {\n ratio = clipPos.x * thresholdInvert;\n return true;\n }\n if (clipPos.x >= maxRange) {\n ratio = 1.0 - (clipPos.x - maxRange) * thresholdInvert;\n return true;\n }\n if (clipPos.y <= minRange) {\n ratio = clipPos.y * thresholdInvert;\n return true;\n }\n if (clipPos.y >= maxRange) {\n ratio = 1.0 - (clipPos.y - maxRange) * thresholdInvert;\n return true;\n }\n return false;\n }\n bool CCHasCSMLevel(int level, vec3 worldPos) {\n highp float layerThreshold = cc_csmViewDir0[0].w;\n bool hasLevel = false;\n for (int i = 0; i < 4; i++) {\n if (i == level) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0) {\n hasLevel = true;\n }\n }\n }\n return hasLevel;\n }\n void CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos, int level) {\n highp float layerThreshold = cc_csmViewDir0[0].w;\n for (int i = 0; i < 4; i++) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0 && i == level) {\n csmPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n csmPos.xy = csmPos.xy * cc_csmAtlas[i].xy + cc_csmAtlas[i].zw;\n shadowProjDepthInfo = cc_csmProjDepthInfo[i];\n shadowProjInfo = cc_csmProjInfo[i];\n shadowViewDir0 = cc_csmViewDir0[i].xyz;\n shadowViewDir1 = cc_csmViewDir1[i].xyz;\n shadowViewDir2 = cc_csmViewDir2[i].xyz;\n }\n }\n }\n int CCGetCSMLevel(out bool isTransitionArea, out highp float transitionRatio, out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos)\n {\n int level = -1;\n highp float layerThreshold = cc_csmViewDir0[0].w;\n for (int i = 0; i < 4; i++) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0 && level < 0) {\n #if CC_CASCADED_LAYERS_TRANSITION\n isTransitionArea = CCGetCSMLevelWithTransition(transitionRatio, clipPos);\n #endif\n csmPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n csmPos.xy = csmPos.xy * cc_csmAtlas[i].xy + cc_csmAtlas[i].zw;\n shadowProjDepthInfo = cc_csmProjDepthInfo[i];\n shadowProjInfo = cc_csmProjInfo[i];\n shadowViewDir0 = cc_csmViewDir0[i].xyz;\n shadowViewDir1 = cc_csmViewDir1[i].xyz;\n shadowViewDir2 = cc_csmViewDir2[i].xyz;\n level = i;\n }\n }\n return level;\n }\n int CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos)\n {\n bool isTransitionArea = false;\n highp float transitionRatio = 0.0;\n return CCGetCSMLevel(isTransitionArea, transitionRatio, csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n }\n float CCCSMFactorBase(out vec4 csmPos, out vec4 csmPosWithBias, vec3 worldPos, vec3 N, vec2 shadowBias)\n {\n bool isTransitionArea = false;\n highp float ratio = 0.0;\n csmPos = vec4(1.0);\n vec4 shadowProjDepthInfo, shadowProjInfo;\n vec3 shadowViewDir0, shadowViewDir1, shadowViewDir2;\n int level = -1;\n #if CC_CASCADED_LAYERS_TRANSITION\n level = CCGetCSMLevel(isTransitionArea, ratio, csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n #else\n level = CCGetCSMLevel(csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n #endif\n if (level < 0) { return 1.0; }\n vec4 pos = ApplyShadowDepthBias_FaceNormal(csmPos, N, shadowBias.y, shadowViewDir0, shadowViewDir1, shadowViewDir2, shadowProjInfo.xy);\n pos = ApplyShadowDepthBias_Orthographic(pos, shadowBias.x, shadowProjDepthInfo.x, shadowProjDepthInfo.y);\n csmPosWithBias = pos;\n float realtimeShadow = 1.0;\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n realtimeShadow = CCGetDirLightShadowFactorSoft5X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n realtimeShadow = CCGetDirLightShadowFactorSoft3X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n realtimeShadow = CCGetDirLightShadowFactorSoft(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n realtimeShadow = CCGetDirLightShadowFactorHard(pos);\n #endif\n #if CC_CASCADED_LAYERS_TRANSITION\n vec4 nextCSMPos = vec4(1.0);\n vec4 nextShadowProjDepthInfo, nextShadowProjInfo;\n vec3 nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2;\n float nextRealtimeShadow = 1.0;\n CCGetCSMLevel(nextCSMPos, nextShadowProjDepthInfo, nextShadowProjInfo, nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2, worldPos, level + 1);\n bool hasNextLevel = CCHasCSMLevel(level + 1, worldPos);\n if (hasNextLevel && isTransitionArea) {\n vec4 nexPos = ApplyShadowDepthBias_FaceNormal(nextCSMPos, N, shadowBias.y, nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2, nextShadowProjInfo.xy);\n nexPos = ApplyShadowDepthBias_Orthographic(nexPos, shadowBias.x, nextShadowProjDepthInfo.x, nextShadowProjDepthInfo.y);\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft5X(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft3X(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n nextRealtimeShadow = CCGetDirLightShadowFactorHard(nexPos);\n #endif\n return mix(mix(nextRealtimeShadow, realtimeShadow, ratio), 1.0, cc_shadowNFLSInfo.w);\n }\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n #else\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n #endif\n }\n #else\n int CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos) {\n return -1;\n }\n float CCCSMFactorBase(out vec4 csmPos, out vec4 csmPosWithBias, vec3 worldPos, vec3 N, vec2 shadowBias) {\n csmPos = cc_matLightViewProj * vec4(worldPos, 1.0);\n return CCShadowFactorBase(csmPosWithBias, csmPos, N, shadowBias);\n }\n #endif\n float CCShadowFactorBase(vec4 shadowPos, vec3 N, vec2 shadowBias) {\n vec4 shadowPosWithDepthBias;\n return CCShadowFactorBase(shadowPosWithDepthBias, shadowPos, N, shadowBias);\n }\n float CCCSMFactorBase(vec3 worldPos, vec3 N, vec2 shadowBias) {\n vec4 csmPos, csmPosWithBias;\n return CCCSMFactorBase(csmPos, csmPosWithBias, worldPos, N, shadowBias);\n }\n float CCSpotShadowFactorBase(vec4 shadowPos, vec3 worldPos, vec2 shadowBias)\n {\n vec4 shadowPosWithDepthBias;\n return CCSpotShadowFactorBase(shadowPosWithDepthBias, shadowPos, worldPos, shadowBias);\n }\n #endif\n highp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 packRGBE (vec3 rgb) {\n highp float maxComp = max(max(rgb.r, rgb.g), rgb.b);\n highp float e = 128.0;\n if (maxComp > 0.0001) {\n e = log(maxComp) / log(1.1);\n e = ceil(e);\n e = clamp(e + 128.0, 0.0, 255.0);\n }\n highp float sc = 1.0 / pow(1.1, e - 128.0);\n vec3 encode = clamp(rgb * sc, vec3(0.0), vec3(1.0)) * 255.0;\n vec3 encode_rounded = floor(encode) + step(encode - floor(encode), vec3(0.5));\n return vec4(encode_rounded, e) / 255.0;\n }\n vec3 unpackRGBE (vec4 rgbe) {\n return rgbe.rgb * pow(1.1, rgbe.a * 255.0 - 128.0);\n }\n vec4 fragTextureLod (sampler2D tex, vec2 coord, float lod) {\n return textureLod(tex, coord, lod);\n }\n vec4 fragTextureLod (samplerCube tex, vec3 coord, float lod) {\n return textureLod(tex, coord, lod);\n }\n uniform samplerCube cc_environment;\n vec3 CalculateReflectDirection(vec3 N, vec3 V, float NoV)\n {\n float sideSign = NoV < 0.0 ? -1.0 : 1.0;\n N *= sideSign;\n return reflect(-V, N);\n }\n vec3 CalculatePlanarReflectPositionOnPlane(vec3 N, vec3 V, vec3 worldPos, vec4 plane, vec3 cameraPos, float probeReflectedDepth)\n {\n float distPixelToPlane = -dot(plane, vec4(worldPos, 1.0));\n plane.w += distPixelToPlane;\n float distCameraToPlane = abs(-dot(plane, vec4(cameraPos, 1.0)));\n vec3 planeN = plane.xyz;\n vec3 virtualCameraPos = cameraPos - 2.0 * distCameraToPlane * planeN;\n vec3 bumpedR = normalize(reflect(-V, N));\n vec3 reflectedPointPos = worldPos + probeReflectedDepth * bumpedR;\n vec3 virtualCameraToReflectedPoint = normalize(reflectedPointPos - virtualCameraPos);\n float y = distCameraToPlane / max(EPSILON_LOWP, dot(planeN, virtualCameraToReflectedPoint));\n return virtualCameraPos + y * virtualCameraToReflectedPoint;\n }\n vec4 CalculateBoxProjectedDirection(vec3 R, vec3 worldPos, vec3 cubeCenterPos, vec3 cubeBoxHalfSize)\n {\n vec3 W = worldPos - cubeCenterPos;\n vec3 projectedLength = (sign(R) * cubeBoxHalfSize - W) / (R + vec3(EPSILON));\n float len = min(min(projectedLength.x, projectedLength.y), projectedLength.z);\n vec3 P = W + len * R;\n float weight = len < 0.0 ? 0.0 : 1.0;\n return vec4(P, weight);\n }\n #if CC_USE_IBL\n #if CC_USE_DIFFUSEMAP\n uniform samplerCube cc_diffuseMap;\n #endif\n #endif\n #if CC_USE_REFLECTION_PROBE\n uniform samplerCube cc_reflectionProbeCubemap;\n uniform sampler2D cc_reflectionProbePlanarMap;\n uniform sampler2D cc_reflectionProbeDataMap;\n layout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n };\n vec4 GetTexData(sampler2D dataMap, float dataMapWidth, float x, float uv_y)\n {\n return vec4(\n decode32(texture(dataMap, vec2(((x + 0.5)/dataMapWidth), uv_y))),\n decode32(texture(dataMap, vec2(((x + 1.5)/dataMapWidth), uv_y))),\n decode32(texture(dataMap, vec2(((x + 2.5)/dataMapWidth), uv_y))),\n decode32(texture(dataMap, vec2(((x + 3.5)/dataMapWidth), uv_y)))\n );\n }\n void GetPlanarReflectionProbeData(out vec4 plane, out float planarReflectionDepthScale, out float mipCount, float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData1 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 0.0, uv_y);\n vec4 texData2 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 4.0, uv_y);\n plane.xyz = texData1.xyz;\n plane.w = texData2.x;\n planarReflectionDepthScale = texData2.y;\n mipCount = texData2.z;\n #else\n plane = cc_reflectionProbeData1;\n planarReflectionDepthScale = cc_reflectionProbeData2.x;\n mipCount = cc_reflectionProbeData2.w;\n #endif\n }\n void GetCubeReflectionProbeData(out vec3 centerPos, out vec3 boxHalfSize, out float mipCount, float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData1 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 0.0, uv_y);\n vec4 texData2 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 4.0, uv_y);\n vec4 texData3 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 8.0, uv_y);\n centerPos = texData1.xyz;\n boxHalfSize = texData2.xyz;\n mipCount = texData3.x;\n #else\n centerPos = cc_reflectionProbeData1.xyz;\n boxHalfSize = cc_reflectionProbeData2.xyz;\n mipCount = cc_reflectionProbeData2.w;\n #endif\n if (mipCount > 1000.0) mipCount -= 1000.0;\n }\n bool isReflectProbeUsingRGBE(float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData3 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 8.0, uv_y);\n return texData3.x > 1000.0;\n #else\n return cc_reflectionProbeData2.w > 1000.0;\n #endif\n }\n #endif\n #if CC_USE_LIGHT_PROBE\n #if CC_USE_LIGHT_PROBE\n #if USE_INSTANCING\n in mediump vec4 v_sh_linear_const_r;\n in mediump vec4 v_sh_linear_const_g;\n in mediump vec4 v_sh_linear_const_b;\n #else\n layout(std140) uniform CCSH {\n vec4 cc_sh_linear_const_r;\n vec4 cc_sh_linear_const_g;\n vec4 cc_sh_linear_const_b;\n vec4 cc_sh_quadratic_r;\n vec4 cc_sh_quadratic_g;\n vec4 cc_sh_quadratic_b;\n vec4 cc_sh_quadratic_a;\n };\n #endif\n #if CC_USE_LIGHT_PROBE\n vec3 SHEvaluate(vec3 normal)\n {\n vec3 result;\n #if USE_INSTANCING\n vec4 normal4 = vec4(normal, 1.0);\n result.r = dot(v_sh_linear_const_r, normal4);\n result.g = dot(v_sh_linear_const_g, normal4);\n result.b = dot(v_sh_linear_const_b, normal4);\n #else\n vec4 normal4 = vec4(normal, 1.0);\n result.r = dot(cc_sh_linear_const_r, normal4);\n result.g = dot(cc_sh_linear_const_g, normal4);\n result.b = dot(cc_sh_linear_const_b, normal4);\n vec4 n14 = normal.xyzz * normal.yzzx;\n float n5 = normal.x * normal.x - normal.y * normal.y;\n result.r += dot(cc_sh_quadratic_r, n14);\n result.g += dot(cc_sh_quadratic_g, n14);\n result.b += dot(cc_sh_quadratic_b, n14);\n result += (cc_sh_quadratic_a.rgb * n5);\n #endif\n #if CC_USE_HDR\n result *= cc_exposure.w * cc_exposure.x;\n #endif\n return result;\n }\n #endif\n #endif\n #endif\n float GGXMobile (float roughness, float NoH, vec3 H, vec3 N) {\n vec3 NxH = cross(N, H);\n float OneMinusNoHSqr = dot(NxH, NxH);\n float a = roughness * roughness;\n float n = NoH * a;\n float p = a / max(EPSILON, OneMinusNoHSqr + n * n);\n return p * p;\n }\n float CalcSpecular (float roughness, float NoH, vec3 H, vec3 N) {\n return (roughness * 0.25 + 0.25) * GGXMobile(roughness, NoH, H, N);\n }\n vec3 BRDFApprox (vec3 specular, float roughness, float NoV) {\n const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);\n const vec4 c1 = vec4(1.0, 0.0425, 1.04, -0.04);\n vec4 r = roughness * c0 + c1;\n float a004 = min(r.x * r.x, exp2(-9.28 * NoV)) * r.x + r.y;\n vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;\n AB.y *= clamp(50.0 * specular.g, 0.0, 1.0);\n return max(vec3(0.0), specular * AB.x + AB.y);\n }\n #if USE_REFLECTION_DENOISE\n vec3 GetEnvReflectionWithMipFiltering(vec3 R, float roughness, float mipCount, float denoiseIntensity, vec2 screenUV) {\n #if CC_USE_IBL\n \tfloat mip = roughness * (mipCount - 1.0);\n \tfloat delta = (dot(dFdx(R), dFdy(R))) * 1000.0;\n \tfloat mipBias = mix(0.0, 5.0, clamp(delta, 0.0, 1.0));\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_CUBE\n vec4 biased = fragTextureLod(cc_reflectionProbeCubemap, R, mip + mipBias);\n \t vec4 filtered = texture(cc_reflectionProbeCubemap, R);\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_PLANAR\n vec4 biased = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, mip + mipBias);\n vec4 filtered = texture(cc_reflectionProbePlanarMap, screenUV);\n #else\n vec4 biased = fragTextureLod(cc_environment, R, mip + mipBias);\n \t vec4 filtered = texture(cc_environment, R);\n #endif\n #if CC_USE_IBL == 2 || CC_USE_REFLECTION_PROBE != REFLECTION_PROBE_TYPE_NONE\n biased.rgb = unpackRGBE(biased);\n \tfiltered.rgb = unpackRGBE(filtered);\n #else\n \tbiased.rgb = SRGBToLinear(biased.rgb);\n \tfiltered.rgb = SRGBToLinear(filtered.rgb);\n #endif\n return mix(biased.rgb, filtered.rgb, denoiseIntensity);\n #else\n return vec3(0.0, 0.0, 0.0);\n #endif\n }\n #endif\n struct StandardSurface {\n vec4 albedo;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n vec3 position, position_fract_part;\n #else\n vec3 position;\n #endif\n vec3 normal;\n vec3 emissive;\n vec4 lightmap;\n float lightmap_test;\n float roughness;\n float metallic;\n float occlusion;\n float specularIntensity;\n #if CC_RECEIVE_SHADOW\n vec2 shadowBias;\n #endif\n #if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n float reflectionProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND || CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n float reflectionProbeBlendId;\n float reflectionProbeBlendFactor;\n #endif\n };\n vec3 SampleReflectionProbe(samplerCube tex, vec3 R, float roughness, float mipCount, bool isRGBE) {\n vec4 envmap = fragTextureLod(tex, R, roughness * (mipCount - 1.0));\n if (isRGBE)\n return unpackRGBE(envmap);\n else\n return SRGBToLinear(envmap.rgb);\n }\n vec4 CCStandardShadingBase (StandardSurface s, vec4 shadowPos) {\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.08 * s.specularIntensity), s.albedo.rgb, s.metallic);\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n vec3 L = normalize(-cc_mainLitDir.xyz);\n float NL = max(dot(N, L), 0.0);\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (NL > 0.0 && cc_mainLitDir.w > 0.0) {\n #if CC_DIR_LIGHT_SHADOW_TYPE == 2\n shadow = CCCSMFactorBase(position, N, s.shadowBias);\n #endif\n #if CC_DIR_LIGHT_SHADOW_TYPE == 1\n shadow = CCShadowFactorBase(shadowPos, N, s.shadowBias);\n #endif\n }\n #endif\n vec3 finalColor = vec3(0.0);\n #if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n vec3 lightmap = s.lightmap.rgb;\n #if CC_USE_HDR\n lightmap.rgb *= cc_exposure.w * cc_exposure.x;\n #endif\n #if CC_USE_LIGHTMAP == LIGHT_MAP_TYPE_INDIRECT_OCCLUSION\n shadow *= s.lightmap.a;\n finalColor += diffuse * lightmap.rgb;\n #else\n finalColor += diffuse * lightmap.rgb * shadow;\n #endif\n s.occlusion *= s.lightmap_test;\n #endif\n #if !CC_DISABLE_DIRECTIONAL_LIGHT\n float NV = max(abs(dot(N, V)), 0.0);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 H = normalize(L + V);\n float NH = max(dot(N, H), 0.0);\n vec3 lightingColor = NL * cc_mainLitColor.rgb * cc_mainLitColor.w;\n vec3 diffuseContrib = diffuse / PI;\n vec3 specularContrib = specular * CalcSpecular(s.roughness, NH, H, N);\n vec3 dirlightContrib = (diffuseContrib + specularContrib);\n dirlightContrib *= shadow;\n finalColor += lightingColor * dirlightContrib;\n #endif\n float fAmb = max(EPSILON, 0.5 - N.y * 0.5);\n vec3 ambDiff = mix(cc_ambientSky.rgb, cc_ambientGround.rgb, fAmb);\n vec3 env = vec3(0.0), rotationDir;\n #if CC_USE_IBL\n #if CC_USE_DIFFUSEMAP && !CC_USE_LIGHT_PROBE\n rotationDir = RotationVecFromAxisY(N.xyz, cc_surfaceTransform.z, cc_surfaceTransform.w);\n vec4 diffuseMap = texture(cc_diffuseMap, rotationDir);\n #if CC_USE_DIFFUSEMAP == 2\n ambDiff = unpackRGBE(diffuseMap);\n #else\n ambDiff = SRGBToLinear(diffuseMap.rgb);\n #endif\n #endif\n #if !CC_USE_REFLECTION_PROBE\n vec3 R = normalize(reflect(-V, N));\n rotationDir = RotationVecFromAxisY(R.xyz, cc_surfaceTransform.z, cc_surfaceTransform.w);\n #if USE_REFLECTION_DENOISE && !CC_IBL_CONVOLUTED\n env = GetEnvReflectionWithMipFiltering(rotationDir, s.roughness, cc_ambientGround.w, 0.6, vec2(0.0));\n #else\n vec4 envmap = fragTextureLod(cc_environment, rotationDir, s.roughness * (cc_ambientGround.w - 1.0));\n #if CC_USE_IBL == 2\n env = unpackRGBE(envmap);\n #else\n env = SRGBToLinear(envmap.rgb);\n #endif\n #endif\n #endif\n #endif\n float lightIntensity = cc_ambientSky.w;\n #if CC_USE_REFLECTION_PROBE\n vec4 probe = vec4(0.0);\n vec3 R = normalize(reflect(-V, N));\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_CUBE\n if(s.reflectionProbeId < 0.0){\n env = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2);\n }else{\n vec3 centerPos, boxHalfSize;\n float mipCount;\n GetCubeReflectionProbeData(centerPos, boxHalfSize, mipCount, s.reflectionProbeId);\n vec4 fixedR = CalculateBoxProjectedDirection(R, position, centerPos, boxHalfSize);\n env = mix(SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2) * lightIntensity,\n SampleReflectionProbe(cc_reflectionProbeCubemap, fixedR.xyz, s.roughness, mipCount, isReflectProbeUsingRGBE(s.reflectionProbeId)), fixedR.w);\n }\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_PLANAR\n if(s.reflectionProbeId < 0.0){\n vec2 screenUV = GetPlanarReflectScreenUV(s.position, cc_matViewProj, cc_cameraPos.w, V, R);\n probe = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, 1.0);\n }else{\n vec4 plane;\n float planarReflectionDepthScale, mipCount;\n GetPlanarReflectionProbeData(plane, planarReflectionDepthScale, mipCount, s.reflectionProbeId);\n R = normalize(CalculateReflectDirection(N, V, max(abs(dot(N, V)), 0.0)));\n vec3 worldPosOffset = CalculatePlanarReflectPositionOnPlane(N, V, s.position, plane, cc_cameraPos.xyz, planarReflectionDepthScale);\n vec2 screenUV = GetPlanarReflectScreenUV(worldPosOffset, cc_matViewProj, cc_cameraPos.w, V, R);\n probe = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, mipCount);\n }\n env = unpackRGBE(probe);\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND || CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n if (s.reflectionProbeId < 0.0) {\n env = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2);\n } else {\n vec3 centerPos, boxHalfSize;\n float mipCount;\n GetCubeReflectionProbeData(centerPos, boxHalfSize, mipCount, s.reflectionProbeId);\n vec4 fixedR = CalculateBoxProjectedDirection(R, s.position, centerPos, boxHalfSize);\n env = SampleReflectionProbe(cc_reflectionProbeCubemap, fixedR.xyz, s.roughness, mipCount, isReflectProbeUsingRGBE(s.reflectionProbeId));\n if (s.reflectionProbeBlendId < 0.0) {\n vec3 skyBoxEnv = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2) * lightIntensity;\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n env = mix(env, skyBoxEnv, s.reflectionProbeBlendFactor);\n #else\n env = mix(skyBoxEnv, env, fixedR.w);\n #endif\n }\n }\n #endif\n #endif\n #if CC_USE_REFLECTION_PROBE\n lightIntensity = s.reflectionProbeId < 0.0 ? lightIntensity : 1.0;\n #endif\n finalColor += env * lightIntensity * specular * s.occlusion;\n #if CC_USE_LIGHT_PROBE\n finalColor += SHEvaluate(N) * diffuse * s.occlusion;\n #endif\n finalColor += ambDiff.rgb * cc_ambientSky.w * diffuse * s.occlusion;\n finalColor += s.emissive;\n return vec4(finalColor, s.albedo.a);\n }\n #if CC_PIPELINE_TYPE == 0\n #define LIGHTS_PER_PASS 1\n #else\n #define LIGHTS_PER_PASS 10\n #endif\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 0\n layout(std140) uniform CCForwardLight {\n highp vec4 cc_lightPos[LIGHTS_PER_PASS];\n vec4 cc_lightColor[LIGHTS_PER_PASS];\n vec4 cc_lightSizeRangeAngle[LIGHTS_PER_PASS];\n vec4 cc_lightDir[LIGHTS_PER_PASS];\n vec4 cc_lightBoundingSizeVS[LIGHTS_PER_PASS];\n };\n #endif\n float SmoothDistAtt (float distSqr, float invSqrAttRadius) {\n float factor = distSqr * invSqrAttRadius;\n float smoothFactor = clamp(1.0 - factor * factor, 0.0, 1.0);\n return smoothFactor * smoothFactor;\n }\n float GetDistAtt (float distSqr, float invSqrAttRadius) {\n float attenuation = 1.0 / max(distSqr, 0.01*0.01);\n attenuation *= SmoothDistAtt(distSqr , invSqrAttRadius);\n return attenuation;\n }\n float GetAngleAtt (vec3 L, vec3 litDir, float litAngleScale, float litAngleOffset) {\n float cd = dot(litDir, L);\n float attenuation = clamp(cd * litAngleScale + litAngleOffset, 0.0, 1.0);\n return (attenuation * attenuation);\n }\n float GetOutOfRange (vec3 worldPos, vec3 lightPos, vec3 lookAt, vec3 right, vec3 BoundingHalfSizeVS) {\n vec3 v = vec3(0.0);\n vec3 up = cross(right, lookAt);\n worldPos -= lightPos;\n v.x = dot(worldPos, right);\n v.y = dot(worldPos, up);\n v.z = dot(worldPos, lookAt);\n vec3 result = step(abs(v), BoundingHalfSizeVS);\n return result.x * result.y * result.z;\n }\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 0\n vec4 CCStandardShadingAdditive (StandardSurface s, vec4 shadowPos) {\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.04), s.albedo.rgb, s.metallic);\n vec3 diffuseContrib = diffuse / PI;\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n float NV = max(abs(dot(N, V)), 0.0);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 finalColor = vec3(0.0);\n int numLights = CC_PIPELINE_TYPE == 0 ? LIGHTS_PER_PASS : int(cc_lightDir[0].w);\n for (int i = 0; i < LIGHTS_PER_PASS; i++) {\n if (i >= numLights) break;\n vec3 SLU = IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w) ? -cc_lightDir[i].xyz : cc_lightPos[i].xyz - position;\n vec3 SL = normalize(SLU);\n vec3 SH = normalize(SL + V);\n float SNL = max(dot(N, SL), 0.0);\n float SNH = max(dot(N, SH), 0.0);\n vec3 lspec = specular * CalcSpecular(s.roughness, SNH, SH, N);\n float illum = 1.0;\n float att = 1.0;\n if (IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w)) {\n att = GetOutOfRange(position, cc_lightPos[i].xyz, cc_lightDir[i].xyz, cc_lightSizeRangeAngle[i].xyz, cc_lightBoundingSizeVS[i].xyz);\n } else {\n float distSqr = dot(SLU, SLU);\n float litRadius = cc_lightSizeRangeAngle[i].x;\n float litRadiusSqr = litRadius * litRadius;\n illum = (IS_POINT_LIGHT(cc_lightPos[i].w) || IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w)) ? 1.0 : litRadiusSqr / max(litRadiusSqr, distSqr);\n float attRadiusSqrInv = 1.0 / max(cc_lightSizeRangeAngle[i].y, 0.01);\n attRadiusSqrInv *= attRadiusSqrInv;\n att = GetDistAtt(distSqr, attRadiusSqrInv);\n if (IS_SPOT_LIGHT(cc_lightPos[i].w)) {\n float cosInner = max(dot(-cc_lightDir[i].xyz, SL), 0.01);\n float cosOuter = cc_lightSizeRangeAngle[i].z;\n float strength = clamp(cc_lightBoundingSizeVS[i].w, 0.0, 1.0);\n float litAngleScale = 1.0 / max(0.001, mix(cosInner, 1.0, strength) - cosOuter);\n float litAngleOffset = -cosOuter * litAngleScale;\n att *= GetAngleAtt(SL, -cc_lightDir[i].xyz, litAngleScale, litAngleOffset);\n }\n }\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (IS_SPOT_LIGHT(cc_lightPos[i].w) && cc_lightSizeRangeAngle[i].w > 0.0) {\n shadow = CCSpotShadowFactorBase(shadowPos, position, s.shadowBias);\n }\n #endif\n finalColor += SNL * cc_lightColor[i].rgb * shadow * cc_lightColor[i].w * illum * att * (diffuseContrib + lspec);\n }\n return vec4(finalColor, 0.0);\n }\n #endif\n#if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 1\n layout(std430, binding = 0) readonly buffer b_ccLightsBuffer { vec4 b_ccLights[]; };\n layout(std430, binding = 1) readonly buffer b_clusterLightIndicesBuffer { uint b_clusterLightIndices[]; };\n layout(std430, binding = 2) readonly buffer b_clusterLightGridBuffer { uvec4 b_clusterLightGrid[]; };\n struct CCLight\n {\n vec4 cc_lightPos;\n vec4 cc_lightColor;\n vec4 cc_lightSizeRangeAngle;\n vec4 cc_lightDir;\n vec4 cc_lightBoundingSizeVS;\n };\n struct Cluster\n {\n vec3 minBounds;\n vec3 maxBounds;\n };\n struct LightGrid\n {\n uint offset;\n uint ccLights;\n };\n CCLight getCCLight(uint i)\n {\n CCLight light;\n light.cc_lightPos = b_ccLights[5u * i + 0u];\n light.cc_lightColor = b_ccLights[5u * i + 1u];\n light.cc_lightSizeRangeAngle = b_ccLights[5u * i + 2u];\n light.cc_lightDir = b_ccLights[5u * i + 3u];\n light.cc_lightBoundingSizeVS = b_ccLights[5u * i + 4u];\n return light;\n }\n LightGrid getLightGrid(uint cluster)\n {\n uvec4 gridvec = b_clusterLightGrid[cluster];\n LightGrid grid;\n grid.offset = gridvec.x;\n grid.ccLights = gridvec.y;\n return grid;\n }\n uint getGridLightIndex(uint start, uint offset)\n {\n return b_clusterLightIndices[start + offset];\n }\n uint getClusterZIndex(vec4 worldPos)\n {\n float scale = float(24u) / log(cc_nearFar.y / cc_nearFar.x);\n float bias = -(float(24u) * log(cc_nearFar.x) / log(cc_nearFar.y / cc_nearFar.x));\n float eyeDepth = -(cc_matView * worldPos).z;\n uint zIndex = uint(max(log(eyeDepth) * scale + bias, 0.0));\n return zIndex;\n }\n uint getClusterIndex(vec4 fragCoord, vec4 worldPos)\n {\n uint zIndex = getClusterZIndex(worldPos);\n float clusterSizeX = ceil(cc_viewPort.z / float(16u));\n float clusterSizeY = ceil(cc_viewPort.w / float(8u));\n uvec3 indices = uvec3(uvec2(fragCoord.xy / vec2(clusterSizeX, clusterSizeY)), zIndex);\n uint cluster = (16u * 8u) * indices.z + 16u * indices.y + indices.x;\n return cluster;\n }\n vec4 CCClusterShadingAdditive (StandardSurface s, vec4 shadowPos) {\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.04), s.albedo.rgb, s.metallic);\n vec3 diffuseContrib = diffuse / PI;\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n float NV = max(abs(dot(N, V)), 0.001);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 finalColor = vec3(0.0);\n uint cluster = getClusterIndex(gl_FragCoord, vec4(position, 1.0));\n LightGrid grid = getLightGrid(cluster);\n uint numLights = grid.ccLights;\n for (uint i = 0u; i < 200u; i++) {\n if (i >= numLights) break;\n uint lightIndex = getGridLightIndex(grid.offset, i);\n CCLight light = getCCLight(lightIndex);\n vec3 SLU = light.cc_lightPos.xyz - position;\n vec3 SL = normalize(SLU);\n vec3 SH = normalize(SL + V);\n float SNL = max(dot(N, SL), 0.001);\n float SNH = max(dot(N, SH), 0.0);\n float distSqr = dot(SLU, SLU);\n float litRadius = light.cc_lightSizeRangeAngle.x;\n float litRadiusSqr = litRadius * litRadius;\n float illum = PI * (litRadiusSqr / max(litRadiusSqr , distSqr));\n float attRadiusSqrInv = 1.0 / max(light.cc_lightSizeRangeAngle.y, 0.01);\n attRadiusSqrInv *= attRadiusSqrInv;\n float att = GetDistAtt(distSqr, attRadiusSqrInv);\n vec3 lspec = specular * CalcSpecular(s.roughness, SNH, SH, N);\n if (IS_SPOT_LIGHT(light.cc_lightPos.w)) {\n float cosInner = max(dot(-light.cc_lightDir.xyz, SL), 0.01);\n float cosOuter = light.cc_lightSizeRangeAngle.z;\n float litAngleScale = 1.0 / max(0.001, cosInner - cosOuter);\n float litAngleOffset = -cosOuter * litAngleScale;\n att *= GetAngleAtt(SL, -light.cc_lightDir.xyz, litAngleScale, litAngleOffset);\n }\n vec3 lightColor = light.cc_lightColor.rgb;\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (IS_SPOT_LIGHT(light.cc_lightPos.w) && light.cc_lightSizeRangeAngle.w > 0.0) {\n shadow = CCSpotShadowFactorBase(shadowPos, position, s.shadowBias);\n }\n #endif\n lightColor *= shadow;\n finalColor += SNL * lightColor * light.cc_lightColor.w * illum * att * (diffuseContrib + lspec);\n }\n return vec4(finalColor, 0.0);\n }\n#endif\n vec3 ACESToneMap (vec3 color) {\n color = min(color, vec3(8.0));\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n }\n vec4 CCFragOutput (vec4 color) {\n #if CC_USE_RGBE_OUTPUT\n color = packRGBE(color.rgb);\n #elif !CC_USE_FLOAT_OUTPUT\n #if CC_USE_HDR && CC_TONE_MAPPING_TYPE == HDR_TONE_MAPPING_ACES\n color.rgb = ACESToneMap(color.rgb);\n #endif\n color.rgb = LinearToSRGB(color.rgb);\n #endif\n return color;\n }\n #if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n #endif\n void CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n {\n #if CC_USE_FOG == 0\n \tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n #elif CC_USE_FOG == 1\n \tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n #elif CC_USE_FOG == 2\n \tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n #elif CC_USE_FOG == 3\n \tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n #else\n \tfactor = 1.0;\n #endif\n }\n void CC_APPLY_FOG_BASE(inout vec4 color, float factor) {\n \tcolor = vec4(mix(cc_fogColor.rgb, color.rgb, factor), color.a);\n }\n vec2 signNotZero(vec2 v) {\n return vec2((v.x >= 0.0) ? +1.0 : -1.0, (v.y >= 0.0) ? +1.0 : -1.0);\n }\n vec3 oct_to_float32x3(vec2 e) {\n vec3 v = vec3(e.xy, 1.0 - abs(e.x) - abs(e.y));\n if (v.z < 0.0) v.xy = (1.0 - abs(v.yx)) * signNotZero(v.xy);\n return normalize(v);\n }\n in vec2 v_uv;\n uniform sampler2D albedoMap;\n uniform sampler2D normalMap;\n uniform sampler2D emissiveMap;\n uniform sampler2D depthStencil;\n layout(location = 0) out vec4 fragColor;\n vec4 screen2WS(vec3 coord) {\n vec3 ndc = vec3(\n 2.0 * (coord.x - cc_viewPort.x) / cc_viewPort.z - 1.0,\n 2.0 * (coord.y - cc_viewPort.y) / cc_viewPort.w - 1.0,\n 2.0 * coord.z - 1.0);\n CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(ndc.y);\n return GetWorldPosFromNDCPosRH(ndc, cc_matProj, cc_matViewProjInv);\n }\n void main () {\n StandardSurface s;\n vec4 albedo = texture(albedoMap, v_uv);\n vec4 normal = texture(normalMap, v_uv);\n vec4 emissive = texture(emissiveMap, v_uv);\n float depth = texture(depthStencil, v_uv).x;\n s.albedo = albedo;\n vec3 position = screen2WS(vec3(gl_FragCoord.xy, depth)).xyz;\n s.position = position;\n s.roughness = normal.z;\n s.normal = oct_to_float32x3(normal.xy);\n s.specularIntensity = 0.5;\n s.metallic = normal.w;\n s.emissive = emissive.xyz;\n s.occlusion = emissive.w;\n#if CC_RECEIVE_SHADOW\n s.shadowBias = vec2(0, 0);\n#endif\n float fogFactor;\n CC_TRANSFER_FOG_BASE(vec4(position, 1), fogFactor);\n vec4 shadowPos;\n shadowPos = cc_matLightViewProj * vec4(position, 1);\n vec4 color = CCStandardShadingBase(s, shadowPos) +\n#if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 1\n CCClusterShadingAdditive(s, shadowPos);\n#else\n CCStandardShadingAdditive(s, shadowPos);\n#endif\n CC_APPLY_FOG_BASE(color, fogFactor);\n color = CCFragOutput(color);\n#if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_SINGLE\n color = vec4(albedoMap.rgb, 1.0);\n#endif\n fragColor = color;\n }"},"glsl1":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nattribute vec4 a_tangent;\n#if CC_USE_SKINNING\n attribute vec4 a_joints;\n attribute vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n attribute highp vec4 a_jointAnimInfo;\n #endif\n attribute vec4 a_matWorld0;\n attribute vec4 a_matWorld1;\n attribute vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n attribute vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n attribute vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n attribute vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n attribute vec4 a_sh_linear_const_r;\n attribute vec4 a_sh_linear_const_g;\n attribute vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n attribute float a_vertexId;\n#endif\nuniform highp vec4 cc_cameraPos;\nvarying vec2 v_uv;\nvoid main () {\n vec4 position;\n position = vec4(a_position, 1.0);\n position.xy = cc_cameraPos.w == 0.0 ? vec2(position.xy.x, -position.xy.y) : position.xy;\n gl_Position = vec4(position.x, position.y, 1.0, 1.0);\n v_uv = a_texCoord;\n}","frag":"\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives: enable\n#endif\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod: enable\n#endif\n precision highp float;\n uniform mediump vec4 cc_probeInfo;\n uniform highp mat4 cc_matView;\n uniform highp mat4 cc_matProj;\n uniform highp mat4 cc_matViewProj;\n uniform highp mat4 cc_matViewProjInv;\n uniform highp vec4 cc_cameraPos;\n uniform mediump vec4 cc_surfaceTransform;\n uniform mediump vec4 cc_exposure;\n uniform mediump vec4 cc_mainLitDir;\n uniform mediump vec4 cc_mainLitColor;\n uniform mediump vec4 cc_ambientSky;\n uniform mediump vec4 cc_ambientGround;\n uniform mediump vec4 cc_fogColor;\n uniform mediump vec4 cc_fogBase;\n uniform mediump vec4 cc_fogAdd;\n uniform mediump vec4 cc_nearFar;\n uniform mediump vec4 cc_viewPort;\n #define QUATER_PI 0.78539816340\n #define HALF_PI 1.57079632679\n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define PI4 12.5663706144\n #define INV_QUATER_PI 1.27323954474\n #define INV_HALF_PI 0.63661977237\n #define INV_PI 0.31830988618\n #define INV_PI2 0.15915494309\n #define INV_PI4 0.07957747155\n #define EPSILON 1e-6\n #define EPSILON_LOWP 1e-4\n #define LOG2 1.442695\n #define EXP_VALUE 2.71828183\n #define FP_MAX 65504.0\n #define FP_SCALE 0.0009765625\n #define FP_SCALE_INV 1024.0\n #define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n #define LIGHT_MAP_TYPE_DISABLED 0\n #define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n #define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n #define REFLECTION_PROBE_TYPE_NONE 0\n #define REFLECTION_PROBE_TYPE_CUBE 1\n #define REFLECTION_PROBE_TYPE_PLANAR 2\n #define REFLECTION_PROBE_TYPE_BLEND 3\n #define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n #define LIGHT_TYPE_DIRECTIONAL 0.0\n #define LIGHT_TYPE_SPHERE 1.0\n #define LIGHT_TYPE_SPOT 2.0\n #define LIGHT_TYPE_POINT 3.0\n #define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n #define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n #define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n #define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n #define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n #define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n #define TONE_MAPPING_ACES 0\n #define TONE_MAPPING_LINEAR 1\n #define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n #ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n #endif\n #ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n #endif\n vec3 SRGBToLinear (vec3 gamma) {\n #ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return gamma;\n }\n #endif\n #endif\n return gamma * gamma;\n }\n vec3 LinearToSRGB(vec3 linear) {\n #ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return linear;\n }\n #endif\n #endif\n return sqrt(linear);\n }\n uniform highp mat4 cc_matLightView;\n uniform highp mat4 cc_matLightViewProj;\n uniform highp vec4 cc_shadowInvProjDepthInfo;\n uniform highp vec4 cc_shadowProjDepthInfo;\n uniform highp vec4 cc_shadowProjInfo;\n uniform mediump vec4 cc_shadowNFLSInfo;\n uniform mediump vec4 cc_shadowWHPBInfo;\n #if CC_SUPPORT_CASCADED_SHADOW_MAP\n uniform highp vec4 cc_csmViewDir0[4];\n uniform highp vec4 cc_csmViewDir1[4];\n uniform highp vec4 cc_csmViewDir2[4];\n uniform highp vec4 cc_csmAtlas[4];\n uniform highp mat4 cc_matCSMViewProj[4];\n uniform highp vec4 cc_csmProjDepthInfo[4];\n uniform highp vec4 cc_csmProjInfo[4];\n uniform highp vec4 cc_csmSplitsInfo;\n #endif\n #if defined(CC_USE_METAL) || defined(CC_USE_WGPU)\n #define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y) y = -y\n #else\n #define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y)\n #endif\n vec2 GetPlanarReflectScreenUV(vec3 worldPos, mat4 matVirtualCameraViewProj, float flipNDCSign, vec3 viewDir, vec3 reflectDir)\n {\n vec4 clipPos = matVirtualCameraViewProj * vec4(worldPos, 1.0);\n vec2 screenUV = clipPos.xy / clipPos.w * 0.5 + 0.5;\n screenUV = vec2(1.0 - screenUV.x, screenUV.y);\n screenUV = flipNDCSign == 1.0 ? vec2(screenUV.x, 1.0 - screenUV.y) : screenUV;\n return screenUV;\n }\n float GetCameraDepthRH(float depthHS, mat4 matProj)\n {\n return -matProj[3][2] / (depthHS + matProj[2][2]);\n }\n float GetCameraDepthRH(float depthHS, float matProj32, float matProj22)\n {\n return -matProj32 / (depthHS + matProj22);\n }\n vec4 GetWorldPosFromNDCPosRH(vec3 posHS, mat4 matProj, mat4 matViewProjInv)\n {\n float w = -GetCameraDepthRH(posHS.z, matProj);\n return matViewProjInv * vec4(posHS * w, w);\n }\n float GetLinearDepthFromViewSpace(vec3 viewPos, float near, float far) {\n float dist = length(viewPos);\n return (dist - near) / (far - near);\n }\n vec3 RotationVecFromAxisY(vec3 v, float cosTheta, float sinTheta)\n {\n vec3 result;\n result.x = dot(v, vec3(cosTheta, 0.0, -sinTheta));\n result.y = v.y;\n result.z = dot(v, vec3(sinTheta, 0.0, cosTheta));\n return result;\n }\n vec3 RotationVecFromAxisY(vec3 v, float rotateAngleArc)\n {\n return RotationVecFromAxisY(v, cos(rotateAngleArc), sin(rotateAngleArc));\n }\n float CCGetLinearDepth(vec3 worldPos, float viewSpaceBias) {\n \tvec4 viewPos = cc_matLightView * vec4(worldPos.xyz, 1.0);\n viewPos.z += viewSpaceBias;\n \treturn GetLinearDepthFromViewSpace(viewPos.xyz, cc_shadowNFLSInfo.x, cc_shadowNFLSInfo.y);\n }\n float CCGetLinearDepth(vec3 worldPos) {\n \treturn CCGetLinearDepth(worldPos, 0.0);\n }\n #if CC_RECEIVE_SHADOW\n uniform highp sampler2D cc_shadowMap;\n uniform highp sampler2D cc_spotShadowMap;\n #define UnpackBitFromFloat(value, bit) (mod(floor(value / pow(10.0, float(bit))), 10.0) > 0.0)\n highp float unpackHighpData (float mainPart, float modPart) {\n highp float data = mainPart;\n return data + modPart;\n }\n highp float unpackHighpData (float mainPart, float modPart, const float modValue) {\n highp float data = mainPart * modValue;\n return data + modPart * modValue;\n }\n highp vec2 unpackHighpData (vec2 mainPart, vec2 modPart) {\n highp vec2 data = mainPart;\n return data + modPart;\n }\n highp vec2 unpackHighpData (vec2 mainPart, vec2 modPart, const float modValue) {\n highp vec2 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n highp vec3 unpackHighpData (vec3 mainPart, vec3 modPart) {\n highp vec3 data = mainPart;\n return data + modPart;\n }\n highp vec3 unpackHighpData (vec3 mainPart, vec3 modPart, const float modValue) {\n highp vec3 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n highp vec4 unpackHighpData (vec4 mainPart, vec4 modPart) {\n highp vec4 data = mainPart;\n return data + modPart;\n }\n highp vec4 unpackHighpData (vec4 mainPart, vec4 modPart, const float modValue) {\n highp vec4 data = mainPart * modValue;\n return data + modPart * modValue;\n }\n vec4 shadowTexure(highp sampler2D shadowMap, vec2 coord) {\n #if defined(CC_USE_WGPU)\n return texture2DLod(shadowMap, coord, 0.0);\n #else\n return texture2D(shadowMap, coord);\n #endif\n }\n float NativePCFShadowFactorHard (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n #if CC_SHADOWMAP_FORMAT == 1\n return step(shadowNDCPos.z, dot(shadowTexure(shadowMap, shadowNDCPos.xy), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n return step(shadowNDCPos.z, shadowTexure(shadowMap, shadowNDCPos.xy).x);\n #endif\n }\n float NativePCFShadowFactorSoft (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n vec2 shadowNDCPos_offset = shadowNDCPos.xy + oneTap;\n float block0, block1, block2, block3;\n #if CC_SHADOWMAP_FORMAT == 1\n block0 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos_offset.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block0 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)).x);\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos.y)).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset.y)).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset.x, shadowNDCPos_offset.y)).x);\n #endif\n float coefX = mod(shadowNDCPos.x, oneTap.x) * shadowMapResolution.x;\n float resultX = mix(block0, block1, coefX);\n float resultY = mix(block2, block3, coefX);\n float coefY = mod(shadowNDCPos.y, oneTap.y) * shadowMapResolution.y;\n return mix(resultX, resultY, coefY);\n }\n float NativePCFShadowFactorSoft3X (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n float shadowNDCPos_offset_L = shadowNDCPos.x - oneTap.x;\n float shadowNDCPos_offset_R = shadowNDCPos.x + oneTap.x;\n float shadowNDCPos_offset_U = shadowNDCPos.y - oneTap.y;\n float shadowNDCPos_offset_D = shadowNDCPos.y + oneTap.y;\n float block0, block1, block2, block3, block4, block5, block6, block7, block8;\n #if CC_SHADOWMAP_FORMAT == 1\n block0 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_U)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block4 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block5 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos.y)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block6 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block7 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block8 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_D)), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block0 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_U)).x);\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_U)).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_U)).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos.y)).x);\n block4 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos.y)).x);\n block5 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos.y)).x);\n block6 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_L, shadowNDCPos_offset_D)).x);\n block7 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos.x, shadowNDCPos_offset_D)).x);\n block8 = step(shadowNDCPos.z, shadowTexure(shadowMap, vec2(shadowNDCPos_offset_R, shadowNDCPos_offset_D)).x);\n #endif\n float coefX = mod(shadowNDCPos.x, oneTap.x) * shadowMapResolution.x;\n float coefY = mod(shadowNDCPos.y, oneTap.y) * shadowMapResolution.y;\n float shadow = 0.0;\n float resultX = mix(block0, block1, coefX);\n float resultY = mix(block3, block4, coefX);\n shadow += mix(resultX , resultY, coefY);\n resultX = mix(block1, block2, coefX);\n resultY = mix(block4, block5, coefX);\n shadow += mix(resultX , resultY, coefY);\n resultX = mix(block3, block4, coefX);\n resultY = mix(block6, block7, coefX);\n shadow += mix(resultX, resultY, coefY);\n resultX = mix(block4, block5, coefX);\n resultY = mix(block7, block8, coefX);\n shadow += mix(resultX, resultY, coefY);\n return shadow * 0.25;\n }\n float NativePCFShadowFactorSoft5X (vec3 shadowNDCPos, highp sampler2D shadowMap, vec2 shadowMapResolution)\n {\n vec2 oneTap = 1.0 / shadowMapResolution;\n vec2 twoTap = oneTap * 2.0;\n vec2 offset1 = shadowNDCPos.xy + vec2(-twoTap.x, -twoTap.y);\n vec2 offset2 = shadowNDCPos.xy + vec2(-oneTap.x, -twoTap.y);\n vec2 offset3 = shadowNDCPos.xy + vec2(0.0, -twoTap.y);\n vec2 offset4 = shadowNDCPos.xy + vec2(oneTap.x, -twoTap.y);\n vec2 offset5 = shadowNDCPos.xy + vec2(twoTap.x, -twoTap.y);\n vec2 offset6 = shadowNDCPos.xy + vec2(-twoTap.x, -oneTap.y);\n vec2 offset7 = shadowNDCPos.xy + vec2(-oneTap.x, -oneTap.y);\n vec2 offset8 = shadowNDCPos.xy + vec2(0.0, -oneTap.y);\n vec2 offset9 = shadowNDCPos.xy + vec2(oneTap.x, -oneTap.y);\n vec2 offset10 = shadowNDCPos.xy + vec2(twoTap.x, -oneTap.y);\n vec2 offset11 = shadowNDCPos.xy + vec2(-twoTap.x, 0.0);\n vec2 offset12 = shadowNDCPos.xy + vec2(-oneTap.x, 0.0);\n vec2 offset13 = shadowNDCPos.xy + vec2(0.0, 0.0);\n vec2 offset14 = shadowNDCPos.xy + vec2(oneTap.x, 0.0);\n vec2 offset15 = shadowNDCPos.xy + vec2(twoTap.x, 0.0);\n vec2 offset16 = shadowNDCPos.xy + vec2(-twoTap.x, oneTap.y);\n vec2 offset17 = shadowNDCPos.xy + vec2(-oneTap.x, oneTap.y);\n vec2 offset18 = shadowNDCPos.xy + vec2(0.0, oneTap.y);\n vec2 offset19 = shadowNDCPos.xy + vec2(oneTap.x, oneTap.y);\n vec2 offset20 = shadowNDCPos.xy + vec2(twoTap.x, oneTap.y);\n vec2 offset21 = shadowNDCPos.xy + vec2(-twoTap.x, twoTap.y);\n vec2 offset22 = shadowNDCPos.xy + vec2(-oneTap.x, twoTap.y);\n vec2 offset23 = shadowNDCPos.xy + vec2(0.0, twoTap.y);\n vec2 offset24 = shadowNDCPos.xy + vec2(oneTap.x, twoTap.y);\n vec2 offset25 = shadowNDCPos.xy + vec2(twoTap.x, twoTap.y);\n float block1, block2, block3, block4, block5, block6, block7, block8, block9, block10, block11, block12, block13, block14, block15, block16, block17, block18, block19, block20, block21, block22, block23, block24, block25;\n #if CC_SHADOWMAP_FORMAT == 1\n block1 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset1), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block2 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset2), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block3 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset3), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block4 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset4), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block5 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset5), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block6 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset6), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block7 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset7), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block8 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset8), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block9 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset9), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block10 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset10), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block11 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset11), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block12 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset12), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block13 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset13), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block14 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset14), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block15 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset15), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block16 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset16), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block17 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset17), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block18 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset18), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block19 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset19), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block20 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset20), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block21 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset21), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block22 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset22), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block23 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset23), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block24 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset24), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n block25 = step(shadowNDCPos.z, dot(shadowTexure(shadowMap, offset25), vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)));\n #else\n block1 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset1).x);\n block2 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset2).x);\n block3 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset3).x);\n block4 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset4).x);\n block5 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset5).x);\n block6 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset6).x);\n block7 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset7).x);\n block8 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset8).x);\n block9 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset9).x);\n block10 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset10).x);\n block11 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset11).x);\n block12 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset12).x);\n block13 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset13).x);\n block14 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset14).x);\n block15 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset15).x);\n block16 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset16).x);\n block17 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset17).x);\n block18 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset18).x);\n block19 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset19).x);\n block20 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset20).x);\n block21 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset21).x);\n block22 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset22).x);\n block23 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset23).x);\n block24 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset24).x);\n block25 = step(shadowNDCPos.z, shadowTexure(shadowMap, offset25).x);\n #endif\n vec2 coef = fract(shadowNDCPos.xy * shadowMapResolution);\n vec2 v1X1 = mix(vec2(block1, block6), vec2(block2, block7), coef.xx);\n vec2 v1X2 = mix(vec2(block2, block7), vec2(block3, block8), coef.xx);\n vec2 v1X3 = mix(vec2(block3, block8), vec2(block4, block9), coef.xx);\n vec2 v1X4 = mix(vec2(block4, block9), vec2(block5, block10), coef.xx);\n float v1 = mix(v1X1.x, v1X1.y, coef.y) + mix(v1X2.x, v1X2.y, coef.y) + mix(v1X3.x, v1X3.y, coef.y) + mix(v1X4.x, v1X4.y, coef.y);\n vec2 v2X1 = mix(vec2(block6, block11), vec2(block7, block12), coef.xx);\n vec2 v2X2 = mix(vec2(block7, block12), vec2(block8, block13), coef.xx);\n vec2 v2X3 = mix(vec2(block8, block13), vec2(block9, block14), coef.xx);\n vec2 v2X4 = mix(vec2(block9, block14), vec2(block10, block15), coef.xx);\n float v2 = mix(v2X1.x, v2X1.y, coef.y) + mix(v2X2.x, v2X2.y, coef.y) + mix(v2X3.x, v2X3.y, coef.y) + mix(v2X4.x, v2X4.y, coef.y);\n vec2 v3X1 = mix(vec2(block11, block16), vec2(block12, block17), coef.xx);\n vec2 v3X2 = mix(vec2(block12, block17), vec2(block13, block18), coef.xx);\n vec2 v3X3 = mix(vec2(block13, block18), vec2(block14, block19), coef.xx);\n vec2 v3X4 = mix(vec2(block14, block19), vec2(block15, block20), coef.xx);\n float v3 = mix(v3X1.x, v3X1.y, coef.y) + mix(v3X2.x, v3X2.y, coef.y) + mix(v3X3.x, v3X3.y, coef.y) + mix(v3X4.x, v3X4.y, coef.y);\n vec2 v4X1 = mix(vec2(block16, block21), vec2(block17, block22), coef.xx);\n vec2 v4X2 = mix(vec2(block17, block22), vec2(block18, block23), coef.xx);\n vec2 v4X3 = mix(vec2(block18, block23), vec2(block19, block24), coef.xx);\n vec2 v4X4 = mix(vec2(block19, block24), vec2(block20, block25), coef.xx);\n float v4 = mix(v4X1.x, v4X1.y, coef.y) + mix(v4X2.x, v4X2.y, coef.y) + mix(v4X3.x, v4X3.y, coef.y) + mix(v4X4.x, v4X4.y, coef.y);\n float fAvg = (v1 + v2 + v3 + v4) * 0.0625;\n return fAvg;\n }\n bool GetShadowNDCPos(out vec3 shadowNDCPos, vec4 shadowPosWithDepthBias)\n {\n \tshadowNDCPos = shadowPosWithDepthBias.xyz / shadowPosWithDepthBias.w * 0.5 + 0.5;\n \tif (shadowNDCPos.x < 0.0 || shadowNDCPos.x > 1.0 ||\n \t\tshadowNDCPos.y < 0.0 || shadowNDCPos.y > 1.0 ||\n \t\tshadowNDCPos.z < 0.0 || shadowNDCPos.z > 1.0) {\n \t\treturn false;\n \t}\n \tshadowNDCPos.xy = cc_cameraPos.w == 1.0 ? vec2(shadowNDCPos.xy.x, 1.0 - shadowNDCPos.xy.y) : shadowNDCPos.xy;\n \treturn true;\n }\n vec4 ApplyShadowDepthBias_FaceNormal(vec4 shadowPos, vec3 worldNormal, float normalBias, vec3 matViewDir0, vec3 matViewDir1, vec3 matViewDir2, vec2 projScaleXY)\n {\n vec4 newShadowPos = shadowPos;\n if (normalBias > EPSILON_LOWP)\n {\n vec3 viewNormal = vec3(dot(matViewDir0, worldNormal), dot(matViewDir1, worldNormal), dot(matViewDir2, worldNormal));\n if (viewNormal.z < 0.1)\n newShadowPos.xy += viewNormal.xy * projScaleXY * normalBias * clamp(viewNormal.z, 0.001, 0.1);\n }\n return newShadowPos;\n }\n vec4 ApplyShadowDepthBias_FaceNormal(vec4 shadowPos, vec3 worldNormal, float normalBias, mat4 matLightView, vec2 projScaleXY)\n {\n \tvec4 newShadowPos = shadowPos;\n \tif (normalBias > EPSILON_LOWP)\n \t{\n \t\tvec4 viewNormal = matLightView * vec4(worldNormal, 0.0);\n \t\tif (viewNormal.z < 0.1)\n \t\t\tnewShadowPos.xy += viewNormal.xy * projScaleXY * normalBias * clamp(viewNormal.z, 0.001, 0.1);\n \t}\n \treturn newShadowPos;\n }\n float GetViewSpaceDepthFromNDCDepth_Orthgraphic(float NDCDepth, float projScaleZ, float projBiasZ)\n {\n \treturn (NDCDepth - projBiasZ) / projScaleZ;\n }\n float GetViewSpaceDepthFromNDCDepth_Perspective(float NDCDepth, float homogenousDividW, float invProjScaleZ, float invProjBiasZ)\n {\n \treturn NDCDepth * invProjScaleZ + homogenousDividW * invProjBiasZ;\n }\n vec4 ApplyShadowDepthBias_Perspective(vec4 shadowPos, float viewspaceDepthBias)\n {\n \tvec3 viewSpacePos;\n \tviewSpacePos.xy = shadowPos.xy * cc_shadowProjInfo.zw;\n \tviewSpacePos.z = GetViewSpaceDepthFromNDCDepth_Perspective(shadowPos.z, shadowPos.w, cc_shadowInvProjDepthInfo.x, cc_shadowInvProjDepthInfo.y);\n \tviewSpacePos.xyz += cc_shadowProjDepthInfo.z * normalize(viewSpacePos.xyz) * viewspaceDepthBias;\n \tvec4 clipSpacePos;\n \tclipSpacePos.xy = viewSpacePos.xy * cc_shadowProjInfo.xy;\n \tclipSpacePos.zw = viewSpacePos.z * cc_shadowProjDepthInfo.xz + vec2(cc_shadowProjDepthInfo.y, 0.0);\n \t#if CC_SHADOWMAP_USE_LINEAR_DEPTH\n \t\tclipSpacePos.z = GetLinearDepthFromViewSpace(viewSpacePos.xyz, cc_shadowNFLSInfo.x, cc_shadowNFLSInfo.y);\n \t\tclipSpacePos.z = (clipSpacePos.z * 2.0 - 1.0) * clipSpacePos.w;\n \t#endif\n \treturn clipSpacePos;\n }\n vec4 ApplyShadowDepthBias_Orthographic(vec4 shadowPos, float viewspaceDepthBias, float projScaleZ, float projBiasZ)\n {\n \tfloat coeffA = projScaleZ;\n \tfloat coeffB = projBiasZ;\n \tfloat viewSpacePos_z = GetViewSpaceDepthFromNDCDepth_Orthgraphic(shadowPos.z, projScaleZ, projBiasZ);\n \tviewSpacePos_z += viewspaceDepthBias;\n \tvec4 result = shadowPos;\n \tresult.z = viewSpacePos_z * coeffA + coeffB;\n \treturn result;\n }\n vec4 ApplyShadowDepthBias_PerspectiveLinearDepth(vec4 shadowPos, float viewspaceDepthBias, vec3 worldPos)\n {\n shadowPos.z = CCGetLinearDepth(worldPos, viewspaceDepthBias) * 2.0 - 1.0;\n shadowPos.z *= shadowPos.w;\n return shadowPos;\n }\n float CCGetDirLightShadowFactorHard (vec4 shadowPosWithDepthBias) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorHard(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft (vec4 shadowPosWithDepthBias) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft3X (vec4 shadowPosWithDepthBias) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft3X(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetDirLightShadowFactorSoft5X (vec4 shadowPosWithDepthBias) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft5X(shadowNDCPos, cc_shadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorHard (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorHard(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft3X (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft3X(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCGetSpotLightShadowFactorSoft5X (vec4 shadowPosWithDepthBias, vec3 worldPos) {\n \t vec3 shadowNDCPos;\n \t if (!GetShadowNDCPos(shadowNDCPos, shadowPosWithDepthBias)) {\n \t\t return 1.0;\n \t }\n return NativePCFShadowFactorSoft5X(shadowNDCPos, cc_spotShadowMap, cc_shadowWHPBInfo.xy);\n }\n float CCSpotShadowFactorBase(out vec4 shadowPosWithDepthBias, vec4 shadowPos, vec3 worldPos, vec2 shadowBias)\n {\n float pcf = cc_shadowWHPBInfo.z;\n vec4 pos = vec4(1.0);\n #if CC_SHADOWMAP_USE_LINEAR_DEPTH\n pos = ApplyShadowDepthBias_PerspectiveLinearDepth(shadowPos, shadowBias.x, worldPos);\n #else\n pos = ApplyShadowDepthBias_Perspective(shadowPos, shadowBias.x);\n #endif\n float realtimeShadow = 1.0;\n if (pcf > 2.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft5X(pos, worldPos);\n }else if (pcf > 1.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft3X(pos, worldPos);\n }else if (pcf > 0.9) {\n realtimeShadow = CCGetSpotLightShadowFactorSoft(pos, worldPos);\n }else {\n realtimeShadow = CCGetSpotLightShadowFactorHard(pos, worldPos);\n }\n shadowPosWithDepthBias = pos;\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n }\n float CCShadowFactorBase(out vec4 shadowPosWithDepthBias, vec4 shadowPos, vec3 N, vec2 shadowBias)\n {\n vec4 pos = ApplyShadowDepthBias_FaceNormal(shadowPos, N, shadowBias.y, cc_matLightView, cc_shadowProjInfo.xy);\n pos = ApplyShadowDepthBias_Orthographic(pos, shadowBias.x, cc_shadowProjDepthInfo.x, cc_shadowProjDepthInfo.y);\n float realtimeShadow = 1.0;\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n realtimeShadow = CCGetDirLightShadowFactorSoft5X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n realtimeShadow = CCGetDirLightShadowFactorSoft3X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n realtimeShadow = CCGetDirLightShadowFactorSoft(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n realtimeShadow = CCGetDirLightShadowFactorHard(pos);\n #endif\n shadowPosWithDepthBias = pos;\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n }\n #if CC_SUPPORT_CASCADED_SHADOW_MAP\n bool CCGetCSMLevelWithTransition(out highp float ratio, vec3 clipPos) {\n highp float maxRange = 1.0 - cc_csmSplitsInfo.x;\n highp float minRange = cc_csmSplitsInfo.x;\n highp float thresholdInvert = 1.0 / cc_csmSplitsInfo.x;\n ratio = 0.0;\n if (clipPos.x <= minRange) {\n ratio = clipPos.x * thresholdInvert;\n return true;\n }\n if (clipPos.x >= maxRange) {\n ratio = 1.0 - (clipPos.x - maxRange) * thresholdInvert;\n return true;\n }\n if (clipPos.y <= minRange) {\n ratio = clipPos.y * thresholdInvert;\n return true;\n }\n if (clipPos.y >= maxRange) {\n ratio = 1.0 - (clipPos.y - maxRange) * thresholdInvert;\n return true;\n }\n return false;\n }\n bool CCHasCSMLevel(int level, vec3 worldPos) {\n highp float layerThreshold = cc_csmViewDir0[0].w;\n bool hasLevel = false;\n for (int i = 0; i < 4; i++) {\n if (i == level) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0) {\n hasLevel = true;\n }\n }\n }\n return hasLevel;\n }\n void CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos, int level) {\n highp float layerThreshold = cc_csmViewDir0[0].w;\n for (int i = 0; i < 4; i++) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0 && i == level) {\n csmPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n csmPos.xy = csmPos.xy * cc_csmAtlas[i].xy + cc_csmAtlas[i].zw;\n shadowProjDepthInfo = cc_csmProjDepthInfo[i];\n shadowProjInfo = cc_csmProjInfo[i];\n shadowViewDir0 = cc_csmViewDir0[i].xyz;\n shadowViewDir1 = cc_csmViewDir1[i].xyz;\n shadowViewDir2 = cc_csmViewDir2[i].xyz;\n }\n }\n }\n int CCGetCSMLevel(out bool isTransitionArea, out highp float transitionRatio, out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos)\n {\n int level = -1;\n highp float layerThreshold = cc_csmViewDir0[0].w;\n for (int i = 0; i < 4; i++) {\n vec4 shadowPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n vec3 clipPos = shadowPos.xyz / shadowPos.w * 0.5 + 0.5;\n if (clipPos.x >= layerThreshold && clipPos.x <= (1.0 - layerThreshold) &&\n clipPos.y >= layerThreshold && clipPos.y <= (1.0 - layerThreshold) &&\n clipPos.z >= 0.0 && clipPos.z <= 1.0 && level < 0) {\n #if CC_CASCADED_LAYERS_TRANSITION\n isTransitionArea = CCGetCSMLevelWithTransition(transitionRatio, clipPos);\n #endif\n csmPos = cc_matCSMViewProj[i] * vec4(worldPos.xyz, 1.0);\n csmPos.xy = csmPos.xy * cc_csmAtlas[i].xy + cc_csmAtlas[i].zw;\n shadowProjDepthInfo = cc_csmProjDepthInfo[i];\n shadowProjInfo = cc_csmProjInfo[i];\n shadowViewDir0 = cc_csmViewDir0[i].xyz;\n shadowViewDir1 = cc_csmViewDir1[i].xyz;\n shadowViewDir2 = cc_csmViewDir2[i].xyz;\n level = i;\n }\n }\n return level;\n }\n int CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos)\n {\n bool isTransitionArea = false;\n highp float transitionRatio = 0.0;\n return CCGetCSMLevel(isTransitionArea, transitionRatio, csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n }\n float CCCSMFactorBase(out vec4 csmPos, out vec4 csmPosWithBias, vec3 worldPos, vec3 N, vec2 shadowBias)\n {\n bool isTransitionArea = false;\n highp float ratio = 0.0;\n csmPos = vec4(1.0);\n vec4 shadowProjDepthInfo, shadowProjInfo;\n vec3 shadowViewDir0, shadowViewDir1, shadowViewDir2;\n int level = -1;\n #if CC_CASCADED_LAYERS_TRANSITION\n level = CCGetCSMLevel(isTransitionArea, ratio, csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n #else\n level = CCGetCSMLevel(csmPos, shadowProjDepthInfo, shadowProjInfo, shadowViewDir0, shadowViewDir1, shadowViewDir2, worldPos);\n #endif\n if (level < 0) { return 1.0; }\n vec4 pos = ApplyShadowDepthBias_FaceNormal(csmPos, N, shadowBias.y, shadowViewDir0, shadowViewDir1, shadowViewDir2, shadowProjInfo.xy);\n pos = ApplyShadowDepthBias_Orthographic(pos, shadowBias.x, shadowProjDepthInfo.x, shadowProjDepthInfo.y);\n csmPosWithBias = pos;\n float realtimeShadow = 1.0;\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n realtimeShadow = CCGetDirLightShadowFactorSoft5X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n realtimeShadow = CCGetDirLightShadowFactorSoft3X(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n realtimeShadow = CCGetDirLightShadowFactorSoft(pos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n realtimeShadow = CCGetDirLightShadowFactorHard(pos);\n #endif\n #if CC_CASCADED_LAYERS_TRANSITION\n vec4 nextCSMPos = vec4(1.0);\n vec4 nextShadowProjDepthInfo, nextShadowProjInfo;\n vec3 nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2;\n float nextRealtimeShadow = 1.0;\n CCGetCSMLevel(nextCSMPos, nextShadowProjDepthInfo, nextShadowProjInfo, nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2, worldPos, level + 1);\n bool hasNextLevel = CCHasCSMLevel(level + 1, worldPos);\n if (hasNextLevel && isTransitionArea) {\n vec4 nexPos = ApplyShadowDepthBias_FaceNormal(nextCSMPos, N, shadowBias.y, nextShadowViewDir0, nextShadowViewDir1, nextShadowViewDir2, nextShadowProjInfo.xy);\n nexPos = ApplyShadowDepthBias_Orthographic(nexPos, shadowBias.x, nextShadowProjDepthInfo.x, nextShadowProjDepthInfo.y);\n #if CC_DIR_SHADOW_PCF_TYPE == 3\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft5X(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 2\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft3X(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 1\n nextRealtimeShadow = CCGetDirLightShadowFactorSoft(nexPos);\n #endif\n #if CC_DIR_SHADOW_PCF_TYPE == 0\n nextRealtimeShadow = CCGetDirLightShadowFactorHard(nexPos);\n #endif\n return mix(mix(nextRealtimeShadow, realtimeShadow, ratio), 1.0, cc_shadowNFLSInfo.w);\n }\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n #else\n return mix(realtimeShadow, 1.0, cc_shadowNFLSInfo.w);\n #endif\n }\n #else\n int CCGetCSMLevel(out vec4 csmPos, out vec4 shadowProjDepthInfo, out vec4 shadowProjInfo, out vec3 shadowViewDir0, out vec3 shadowViewDir1, out vec3 shadowViewDir2, vec3 worldPos) {\n return -1;\n }\n float CCCSMFactorBase(out vec4 csmPos, out vec4 csmPosWithBias, vec3 worldPos, vec3 N, vec2 shadowBias) {\n csmPos = cc_matLightViewProj * vec4(worldPos, 1.0);\n return CCShadowFactorBase(csmPosWithBias, csmPos, N, shadowBias);\n }\n #endif\n float CCShadowFactorBase(vec4 shadowPos, vec3 N, vec2 shadowBias) {\n vec4 shadowPosWithDepthBias;\n return CCShadowFactorBase(shadowPosWithDepthBias, shadowPos, N, shadowBias);\n }\n float CCCSMFactorBase(vec3 worldPos, vec3 N, vec2 shadowBias) {\n vec4 csmPos, csmPosWithBias;\n return CCCSMFactorBase(csmPos, csmPosWithBias, worldPos, N, shadowBias);\n }\n float CCSpotShadowFactorBase(vec4 shadowPos, vec3 worldPos, vec2 shadowBias)\n {\n vec4 shadowPosWithDepthBias;\n return CCSpotShadowFactorBase(shadowPosWithDepthBias, shadowPos, worldPos, shadowBias);\n }\n #endif\n highp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 packRGBE (vec3 rgb) {\n highp float maxComp = max(max(rgb.r, rgb.g), rgb.b);\n highp float e = 128.0;\n if (maxComp > 0.0001) {\n e = log(maxComp) / log(1.1);\n e = ceil(e);\n e = clamp(e + 128.0, 0.0, 255.0);\n }\n highp float sc = 1.0 / pow(1.1, e - 128.0);\n vec3 encode = clamp(rgb * sc, vec3(0.0), vec3(1.0)) * 255.0;\n vec3 encode_rounded = floor(encode) + step(encode - floor(encode), vec3(0.5));\n return vec4(encode_rounded, e) / 255.0;\n }\n vec3 unpackRGBE (vec4 rgbe) {\n return rgbe.rgb * pow(1.1, rgbe.a * 255.0 - 128.0);\n }\n vec4 fragTextureLod (sampler2D tex, vec2 coord, float lod) {\n #ifdef GL_EXT_shader_texture_lod\n return texture2DLodEXT(tex, coord, lod);\n #else\n return texture2D(tex, coord, lod);\n #endif\n }\n vec4 fragTextureLod (samplerCube tex, vec3 coord, float lod) {\n #ifdef GL_EXT_shader_texture_lod\n return textureCubeLodEXT(tex, coord, lod);\n #else\n return textureCube(tex, coord, lod);\n #endif\n }\n uniform samplerCube cc_environment;\n vec3 CalculateReflectDirection(vec3 N, vec3 V, float NoV)\n {\n float sideSign = NoV < 0.0 ? -1.0 : 1.0;\n N *= sideSign;\n return reflect(-V, N);\n }\n vec3 CalculatePlanarReflectPositionOnPlane(vec3 N, vec3 V, vec3 worldPos, vec4 plane, vec3 cameraPos, float probeReflectedDepth)\n {\n float distPixelToPlane = -dot(plane, vec4(worldPos, 1.0));\n plane.w += distPixelToPlane;\n float distCameraToPlane = abs(-dot(plane, vec4(cameraPos, 1.0)));\n vec3 planeN = plane.xyz;\n vec3 virtualCameraPos = cameraPos - 2.0 * distCameraToPlane * planeN;\n vec3 bumpedR = normalize(reflect(-V, N));\n vec3 reflectedPointPos = worldPos + probeReflectedDepth * bumpedR;\n vec3 virtualCameraToReflectedPoint = normalize(reflectedPointPos - virtualCameraPos);\n float y = distCameraToPlane / max(EPSILON_LOWP, dot(planeN, virtualCameraToReflectedPoint));\n return virtualCameraPos + y * virtualCameraToReflectedPoint;\n }\n vec4 CalculateBoxProjectedDirection(vec3 R, vec3 worldPos, vec3 cubeCenterPos, vec3 cubeBoxHalfSize)\n {\n vec3 W = worldPos - cubeCenterPos;\n vec3 projectedLength = (sign(R) * cubeBoxHalfSize - W) / (R + vec3(EPSILON));\n float len = min(min(projectedLength.x, projectedLength.y), projectedLength.z);\n vec3 P = W + len * R;\n float weight = len < 0.0 ? 0.0 : 1.0;\n return vec4(P, weight);\n }\n #if CC_USE_IBL\n #if CC_USE_DIFFUSEMAP\n uniform samplerCube cc_diffuseMap;\n #endif\n #endif\n #if CC_USE_REFLECTION_PROBE\n uniform samplerCube cc_reflectionProbeCubemap;\n uniform sampler2D cc_reflectionProbePlanarMap;\n uniform sampler2D cc_reflectionProbeDataMap;\n uniform highp vec4 cc_reflectionProbeData1;\n uniform highp vec4 cc_reflectionProbeData2;\n vec4 GetTexData(sampler2D dataMap, float dataMapWidth, float x, float uv_y)\n {\n return vec4(\n decode32(texture2D(dataMap, vec2(((x + 0.5)/dataMapWidth), uv_y))),\n decode32(texture2D(dataMap, vec2(((x + 1.5)/dataMapWidth), uv_y))),\n decode32(texture2D(dataMap, vec2(((x + 2.5)/dataMapWidth), uv_y))),\n decode32(texture2D(dataMap, vec2(((x + 3.5)/dataMapWidth), uv_y)))\n );\n }\n void GetPlanarReflectionProbeData(out vec4 plane, out float planarReflectionDepthScale, out float mipCount, float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData1 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 0.0, uv_y);\n vec4 texData2 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 4.0, uv_y);\n plane.xyz = texData1.xyz;\n plane.w = texData2.x;\n planarReflectionDepthScale = texData2.y;\n mipCount = texData2.z;\n #else\n plane = cc_reflectionProbeData1;\n planarReflectionDepthScale = cc_reflectionProbeData2.x;\n mipCount = cc_reflectionProbeData2.w;\n #endif\n }\n void GetCubeReflectionProbeData(out vec3 centerPos, out vec3 boxHalfSize, out float mipCount, float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData1 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 0.0, uv_y);\n vec4 texData2 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 4.0, uv_y);\n vec4 texData3 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 8.0, uv_y);\n centerPos = texData1.xyz;\n boxHalfSize = texData2.xyz;\n mipCount = texData3.x;\n #else\n centerPos = cc_reflectionProbeData1.xyz;\n boxHalfSize = cc_reflectionProbeData2.xyz;\n mipCount = cc_reflectionProbeData2.w;\n #endif\n if (mipCount > 1000.0) mipCount -= 1000.0;\n }\n bool isReflectProbeUsingRGBE(float probeId)\n {\n #if USE_INSTANCING\n float uv_y = (probeId + 0.5) / cc_probeInfo.x;\n float dataMapWidth = 12.0;\n vec4 texData3 = GetTexData(cc_reflectionProbeDataMap, dataMapWidth, 8.0, uv_y);\n return texData3.x > 1000.0;\n #else\n return cc_reflectionProbeData2.w > 1000.0;\n #endif\n }\n #endif\n #if CC_USE_LIGHT_PROBE\n #if CC_USE_LIGHT_PROBE\n #if USE_INSTANCING\n varying mediump vec4 v_sh_linear_const_r;\n varying mediump vec4 v_sh_linear_const_g;\n varying mediump vec4 v_sh_linear_const_b;\n #else\n uniform vec4 cc_sh_linear_const_r;\n uniform vec4 cc_sh_linear_const_g;\n uniform vec4 cc_sh_linear_const_b;\n uniform vec4 cc_sh_quadratic_r;\n uniform vec4 cc_sh_quadratic_g;\n uniform vec4 cc_sh_quadratic_b;\n uniform vec4 cc_sh_quadratic_a;\n #endif\n #if CC_USE_LIGHT_PROBE\n vec3 SHEvaluate(vec3 normal)\n {\n vec3 result;\n #if USE_INSTANCING\n vec4 normal4 = vec4(normal, 1.0);\n result.r = dot(v_sh_linear_const_r, normal4);\n result.g = dot(v_sh_linear_const_g, normal4);\n result.b = dot(v_sh_linear_const_b, normal4);\n #else\n vec4 normal4 = vec4(normal, 1.0);\n result.r = dot(cc_sh_linear_const_r, normal4);\n result.g = dot(cc_sh_linear_const_g, normal4);\n result.b = dot(cc_sh_linear_const_b, normal4);\n vec4 n14 = normal.xyzz * normal.yzzx;\n float n5 = normal.x * normal.x - normal.y * normal.y;\n result.r += dot(cc_sh_quadratic_r, n14);\n result.g += dot(cc_sh_quadratic_g, n14);\n result.b += dot(cc_sh_quadratic_b, n14);\n result += (cc_sh_quadratic_a.rgb * n5);\n #endif\n #if CC_USE_HDR\n result *= cc_exposure.w * cc_exposure.x;\n #endif\n return result;\n }\n #endif\n #endif\n #endif\n float GGXMobile (float roughness, float NoH, vec3 H, vec3 N) {\n vec3 NxH = cross(N, H);\n float OneMinusNoHSqr = dot(NxH, NxH);\n float a = roughness * roughness;\n float n = NoH * a;\n float p = a / max(EPSILON, OneMinusNoHSqr + n * n);\n return p * p;\n }\n float CalcSpecular (float roughness, float NoH, vec3 H, vec3 N) {\n return (roughness * 0.25 + 0.25) * GGXMobile(roughness, NoH, H, N);\n }\n vec3 BRDFApprox (vec3 specular, float roughness, float NoV) {\n const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);\n const vec4 c1 = vec4(1.0, 0.0425, 1.04, -0.04);\n vec4 r = roughness * c0 + c1;\n float a004 = min(r.x * r.x, exp2(-9.28 * NoV)) * r.x + r.y;\n vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;\n AB.y *= clamp(50.0 * specular.g, 0.0, 1.0);\n return max(vec3(0.0), specular * AB.x + AB.y);\n }\n #if USE_REFLECTION_DENOISE\n vec3 GetEnvReflectionWithMipFiltering(vec3 R, float roughness, float mipCount, float denoiseIntensity, vec2 screenUV) {\n #if CC_USE_IBL\n \tfloat mip = roughness * (mipCount - 1.0);\n \tfloat delta = (dot(dFdx(R), dFdy(R))) * 1000.0;\n \tfloat mipBias = mix(0.0, 5.0, clamp(delta, 0.0, 1.0));\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_CUBE\n vec4 biased = fragTextureLod(cc_reflectionProbeCubemap, R, mip + mipBias);\n \t vec4 filtered = textureCube(cc_reflectionProbeCubemap, R);\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_PLANAR\n vec4 biased = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, mip + mipBias);\n vec4 filtered = texture2D(cc_reflectionProbePlanarMap, screenUV);\n #else\n vec4 biased = fragTextureLod(cc_environment, R, mip + mipBias);\n \t vec4 filtered = textureCube(cc_environment, R);\n #endif\n #if CC_USE_IBL == 2 || CC_USE_REFLECTION_PROBE != REFLECTION_PROBE_TYPE_NONE\n biased.rgb = unpackRGBE(biased);\n \tfiltered.rgb = unpackRGBE(filtered);\n #else\n \tbiased.rgb = SRGBToLinear(biased.rgb);\n \tfiltered.rgb = SRGBToLinear(filtered.rgb);\n #endif\n return mix(biased.rgb, filtered.rgb, denoiseIntensity);\n #else\n return vec3(0.0, 0.0, 0.0);\n #endif\n }\n #endif\n struct StandardSurface {\n vec4 albedo;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n vec3 position, position_fract_part;\n #else\n vec3 position;\n #endif\n vec3 normal;\n vec3 emissive;\n vec4 lightmap;\n float lightmap_test;\n float roughness;\n float metallic;\n float occlusion;\n float specularIntensity;\n #if CC_RECEIVE_SHADOW\n vec2 shadowBias;\n #endif\n #if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n float reflectionProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND || CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n float reflectionProbeBlendId;\n float reflectionProbeBlendFactor;\n #endif\n };\n vec3 SampleReflectionProbe(samplerCube tex, vec3 R, float roughness, float mipCount, bool isRGBE) {\n vec4 envmap = fragTextureLod(tex, R, roughness * (mipCount - 1.0));\n if (isRGBE)\n return unpackRGBE(envmap);\n else\n return SRGBToLinear(envmap.rgb);\n }\n vec4 CCStandardShadingBase (StandardSurface s, vec4 shadowPos) {\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.08 * s.specularIntensity), s.albedo.rgb, s.metallic);\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n vec3 L = normalize(-cc_mainLitDir.xyz);\n float NL = max(dot(N, L), 0.0);\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (NL > 0.0 && cc_mainLitDir.w > 0.0) {\n #if CC_DIR_LIGHT_SHADOW_TYPE == 2\n shadow = CCCSMFactorBase(position, N, s.shadowBias);\n #endif\n #if CC_DIR_LIGHT_SHADOW_TYPE == 1\n shadow = CCShadowFactorBase(shadowPos, N, s.shadowBias);\n #endif\n }\n #endif\n vec3 finalColor = vec3(0.0);\n #if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n vec3 lightmap = s.lightmap.rgb;\n #if CC_USE_HDR\n lightmap.rgb *= cc_exposure.w * cc_exposure.x;\n #endif\n #if CC_USE_LIGHTMAP == LIGHT_MAP_TYPE_INDIRECT_OCCLUSION\n shadow *= s.lightmap.a;\n finalColor += diffuse * lightmap.rgb;\n #else\n finalColor += diffuse * lightmap.rgb * shadow;\n #endif\n s.occlusion *= s.lightmap_test;\n #endif\n #if !CC_DISABLE_DIRECTIONAL_LIGHT\n float NV = max(abs(dot(N, V)), 0.0);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 H = normalize(L + V);\n float NH = max(dot(N, H), 0.0);\n vec3 lightingColor = NL * cc_mainLitColor.rgb * cc_mainLitColor.w;\n vec3 diffuseContrib = diffuse / PI;\n vec3 specularContrib = specular * CalcSpecular(s.roughness, NH, H, N);\n vec3 dirlightContrib = (diffuseContrib + specularContrib);\n dirlightContrib *= shadow;\n finalColor += lightingColor * dirlightContrib;\n #endif\n float fAmb = max(EPSILON, 0.5 - N.y * 0.5);\n vec3 ambDiff = mix(cc_ambientSky.rgb, cc_ambientGround.rgb, fAmb);\n vec3 env = vec3(0.0), rotationDir;\n #if CC_USE_IBL\n #if CC_USE_DIFFUSEMAP && !CC_USE_LIGHT_PROBE\n rotationDir = RotationVecFromAxisY(N.xyz, cc_surfaceTransform.z, cc_surfaceTransform.w);\n vec4 diffuseMap = textureCube(cc_diffuseMap, rotationDir);\n #if CC_USE_DIFFUSEMAP == 2\n ambDiff = unpackRGBE(diffuseMap);\n #else\n ambDiff = SRGBToLinear(diffuseMap.rgb);\n #endif\n #endif\n #if !CC_USE_REFLECTION_PROBE\n vec3 R = normalize(reflect(-V, N));\n rotationDir = RotationVecFromAxisY(R.xyz, cc_surfaceTransform.z, cc_surfaceTransform.w);\n #if USE_REFLECTION_DENOISE && !CC_IBL_CONVOLUTED\n env = GetEnvReflectionWithMipFiltering(rotationDir, s.roughness, cc_ambientGround.w, 0.6, vec2(0.0));\n #else\n vec4 envmap = fragTextureLod(cc_environment, rotationDir, s.roughness * (cc_ambientGround.w - 1.0));\n #if CC_USE_IBL == 2\n env = unpackRGBE(envmap);\n #else\n env = SRGBToLinear(envmap.rgb);\n #endif\n #endif\n #endif\n #endif\n float lightIntensity = cc_ambientSky.w;\n #if CC_USE_REFLECTION_PROBE\n vec4 probe = vec4(0.0);\n vec3 R = normalize(reflect(-V, N));\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_CUBE\n if(s.reflectionProbeId < 0.0){\n env = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2);\n }else{\n vec3 centerPos, boxHalfSize;\n float mipCount;\n GetCubeReflectionProbeData(centerPos, boxHalfSize, mipCount, s.reflectionProbeId);\n vec4 fixedR = CalculateBoxProjectedDirection(R, position, centerPos, boxHalfSize);\n env = mix(SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2) * lightIntensity,\n SampleReflectionProbe(cc_reflectionProbeCubemap, fixedR.xyz, s.roughness, mipCount, isReflectProbeUsingRGBE(s.reflectionProbeId)), fixedR.w);\n }\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_PLANAR\n if(s.reflectionProbeId < 0.0){\n vec2 screenUV = GetPlanarReflectScreenUV(s.position, cc_matViewProj, cc_cameraPos.w, V, R);\n probe = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, 1.0);\n }else{\n vec4 plane;\n float planarReflectionDepthScale, mipCount;\n GetPlanarReflectionProbeData(plane, planarReflectionDepthScale, mipCount, s.reflectionProbeId);\n R = normalize(CalculateReflectDirection(N, V, max(abs(dot(N, V)), 0.0)));\n vec3 worldPosOffset = CalculatePlanarReflectPositionOnPlane(N, V, s.position, plane, cc_cameraPos.xyz, planarReflectionDepthScale);\n vec2 screenUV = GetPlanarReflectScreenUV(worldPosOffset, cc_matViewProj, cc_cameraPos.w, V, R);\n probe = fragTextureLod(cc_reflectionProbePlanarMap, screenUV, mipCount);\n }\n env = unpackRGBE(probe);\n #elif CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND || CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n if (s.reflectionProbeId < 0.0) {\n env = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2);\n } else {\n vec3 centerPos, boxHalfSize;\n float mipCount;\n GetCubeReflectionProbeData(centerPos, boxHalfSize, mipCount, s.reflectionProbeId);\n vec4 fixedR = CalculateBoxProjectedDirection(R, s.position, centerPos, boxHalfSize);\n env = SampleReflectionProbe(cc_reflectionProbeCubemap, fixedR.xyz, s.roughness, mipCount, isReflectProbeUsingRGBE(s.reflectionProbeId));\n if (s.reflectionProbeBlendId < 0.0) {\n vec3 skyBoxEnv = SampleReflectionProbe(cc_environment, R, s.roughness, cc_ambientGround.w, CC_USE_IBL == 2) * lightIntensity;\n #if CC_USE_REFLECTION_PROBE == REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX\n env = mix(env, skyBoxEnv, s.reflectionProbeBlendFactor);\n #else\n env = mix(skyBoxEnv, env, fixedR.w);\n #endif\n }\n }\n #endif\n #endif\n #if CC_USE_REFLECTION_PROBE\n lightIntensity = s.reflectionProbeId < 0.0 ? lightIntensity : 1.0;\n #endif\n finalColor += env * lightIntensity * specular * s.occlusion;\n #if CC_USE_LIGHT_PROBE\n finalColor += SHEvaluate(N) * diffuse * s.occlusion;\n #endif\n finalColor += ambDiff.rgb * cc_ambientSky.w * diffuse * s.occlusion;\n finalColor += s.emissive;\n return vec4(finalColor, s.albedo.a);\n }\n #if CC_PIPELINE_TYPE == 0\n #define LIGHTS_PER_PASS 1\n #else\n #define LIGHTS_PER_PASS 10\n #endif\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 0\n uniform highp vec4 cc_lightPos[LIGHTS_PER_PASS];\n uniform vec4 cc_lightColor[LIGHTS_PER_PASS];\n uniform vec4 cc_lightSizeRangeAngle[LIGHTS_PER_PASS];\n uniform vec4 cc_lightDir[LIGHTS_PER_PASS];\n uniform vec4 cc_lightBoundingSizeVS[LIGHTS_PER_PASS];\n #endif\n float SmoothDistAtt (float distSqr, float invSqrAttRadius) {\n float factor = distSqr * invSqrAttRadius;\n float smoothFactor = clamp(1.0 - factor * factor, 0.0, 1.0);\n return smoothFactor * smoothFactor;\n }\n float GetDistAtt (float distSqr, float invSqrAttRadius) {\n float attenuation = 1.0 / max(distSqr, 0.01*0.01);\n attenuation *= SmoothDistAtt(distSqr , invSqrAttRadius);\n return attenuation;\n }\n float GetAngleAtt (vec3 L, vec3 litDir, float litAngleScale, float litAngleOffset) {\n float cd = dot(litDir, L);\n float attenuation = clamp(cd * litAngleScale + litAngleOffset, 0.0, 1.0);\n return (attenuation * attenuation);\n }\n float GetOutOfRange (vec3 worldPos, vec3 lightPos, vec3 lookAt, vec3 right, vec3 BoundingHalfSizeVS) {\n vec3 v = vec3(0.0);\n vec3 up = cross(right, lookAt);\n worldPos -= lightPos;\n v.x = dot(worldPos, right);\n v.y = dot(worldPos, up);\n v.z = dot(worldPos, lookAt);\n vec3 result = step(abs(v), BoundingHalfSizeVS);\n return result.x * result.y * result.z;\n }\n #if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 0\n vec4 CCStandardShadingAdditive (StandardSurface s, vec4 shadowPos) {\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.04), s.albedo.rgb, s.metallic);\n vec3 diffuseContrib = diffuse / PI;\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n float NV = max(abs(dot(N, V)), 0.0);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 finalColor = vec3(0.0);\n int numLights = CC_PIPELINE_TYPE == 0 ? LIGHTS_PER_PASS : int(cc_lightDir[0].w);\n for (int i = 0; i < LIGHTS_PER_PASS; i++) {\n if (i >= numLights) break;\n vec3 SLU = IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w) ? -cc_lightDir[i].xyz : cc_lightPos[i].xyz - position;\n vec3 SL = normalize(SLU);\n vec3 SH = normalize(SL + V);\n float SNL = max(dot(N, SL), 0.0);\n float SNH = max(dot(N, SH), 0.0);\n vec3 lspec = specular * CalcSpecular(s.roughness, SNH, SH, N);\n float illum = 1.0;\n float att = 1.0;\n if (IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w)) {\n att = GetOutOfRange(position, cc_lightPos[i].xyz, cc_lightDir[i].xyz, cc_lightSizeRangeAngle[i].xyz, cc_lightBoundingSizeVS[i].xyz);\n } else {\n float distSqr = dot(SLU, SLU);\n float litRadius = cc_lightSizeRangeAngle[i].x;\n float litRadiusSqr = litRadius * litRadius;\n illum = (IS_POINT_LIGHT(cc_lightPos[i].w) || IS_RANGED_DIRECTIONAL_LIGHT(cc_lightPos[i].w)) ? 1.0 : litRadiusSqr / max(litRadiusSqr, distSqr);\n float attRadiusSqrInv = 1.0 / max(cc_lightSizeRangeAngle[i].y, 0.01);\n attRadiusSqrInv *= attRadiusSqrInv;\n att = GetDistAtt(distSqr, attRadiusSqrInv);\n if (IS_SPOT_LIGHT(cc_lightPos[i].w)) {\n float cosInner = max(dot(-cc_lightDir[i].xyz, SL), 0.01);\n float cosOuter = cc_lightSizeRangeAngle[i].z;\n float strength = clamp(cc_lightBoundingSizeVS[i].w, 0.0, 1.0);\n float litAngleScale = 1.0 / max(0.001, mix(cosInner, 1.0, strength) - cosOuter);\n float litAngleOffset = -cosOuter * litAngleScale;\n att *= GetAngleAtt(SL, -cc_lightDir[i].xyz, litAngleScale, litAngleOffset);\n }\n }\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (IS_SPOT_LIGHT(cc_lightPos[i].w) && cc_lightSizeRangeAngle[i].w > 0.0) {\n shadow = CCSpotShadowFactorBase(shadowPos, position, s.shadowBias);\n }\n #endif\n finalColor += SNL * cc_lightColor[i].rgb * shadow * cc_lightColor[i].w * illum * att * (diffuseContrib + lspec);\n }\n return vec4(finalColor, 0.0);\n }\n #endif\n#if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 1\n readonly buffer b_ccLightsBuffer { vec4 b_ccLights[]; };\n readonly buffer b_clusterLightIndicesBuffer { uint b_clusterLightIndices[]; };\n readonly buffer b_clusterLightGridBuffer { uvec4 b_clusterLightGrid[]; };\n struct CCLight\n {\n vec4 cc_lightPos;\n vec4 cc_lightColor;\n vec4 cc_lightSizeRangeAngle;\n vec4 cc_lightDir;\n vec4 cc_lightBoundingSizeVS;\n };\n struct Cluster\n {\n vec3 minBounds;\n vec3 maxBounds;\n };\n struct LightGrid\n {\n uint offset;\n uint ccLights;\n };\n CCLight getCCLight(uint i)\n {\n CCLight light;\n light.cc_lightPos = b_ccLights[5u * i + 0u];\n light.cc_lightColor = b_ccLights[5u * i + 1u];\n light.cc_lightSizeRangeAngle = b_ccLights[5u * i + 2u];\n light.cc_lightDir = b_ccLights[5u * i + 3u];\n light.cc_lightBoundingSizeVS = b_ccLights[5u * i + 4u];\n return light;\n }\n LightGrid getLightGrid(uint cluster)\n {\n uvec4 gridvec = b_clusterLightGrid[cluster];\n LightGrid grid;\n grid.offset = gridvec.x;\n grid.ccLights = gridvec.y;\n return grid;\n }\n uint getGridLightIndex(uint start, uint offset)\n {\n return b_clusterLightIndices[start + offset];\n }\n uint getClusterZIndex(vec4 worldPos)\n {\n float scale = float(24u) / log(cc_nearFar.y / cc_nearFar.x);\n float bias = -(float(24u) * log(cc_nearFar.x) / log(cc_nearFar.y / cc_nearFar.x));\n float eyeDepth = -(cc_matView * worldPos).z;\n uint zIndex = uint(max(log(eyeDepth) * scale + bias, 0.0));\n return zIndex;\n }\n uint getClusterIndex(vec4 fragCoord, vec4 worldPos)\n {\n uint zIndex = getClusterZIndex(worldPos);\n float clusterSizeX = ceil(cc_viewPort.z / float(16u));\n float clusterSizeY = ceil(cc_viewPort.w / float(8u));\n uvec3 indices = uvec3(uvec2(fragCoord.xy / vec2(clusterSizeX, clusterSizeY)), zIndex);\n uint cluster = (16u * 8u) * indices.z + 16u * indices.y + indices.x;\n return cluster;\n }\n vec4 CCClusterShadingAdditive (StandardSurface s, vec4 shadowPos) {\n vec3 diffuse = s.albedo.rgb * (1.0 - s.metallic);\n vec3 specular = mix(vec3(0.04), s.albedo.rgb, s.metallic);\n vec3 diffuseContrib = diffuse / PI;\n vec3 position;\n #if CC_PLATFORM_ANDROID_AND_WEBGL && CC_ENABLE_WEBGL_HIGHP_STRUCT_VALUES\n position = unpackHighpData(s.position, s.position_fract_part);\n #else\n position = s.position;\n #endif\n vec3 N = normalize(s.normal);\n vec3 V = normalize(cc_cameraPos.xyz - position);\n float NV = max(abs(dot(N, V)), 0.001);\n specular = BRDFApprox(specular, s.roughness, NV);\n vec3 finalColor = vec3(0.0);\n uint cluster = getClusterIndex(gl_FragCoord, vec4(position, 1.0));\n LightGrid grid = getLightGrid(cluster);\n uint numLights = grid.ccLights;\n for (uint i = 0u; i < 200u; i++) {\n if (i >= numLights) break;\n uint lightIndex = getGridLightIndex(grid.offset, i);\n CCLight light = getCCLight(lightIndex);\n vec3 SLU = light.cc_lightPos.xyz - position;\n vec3 SL = normalize(SLU);\n vec3 SH = normalize(SL + V);\n float SNL = max(dot(N, SL), 0.001);\n float SNH = max(dot(N, SH), 0.0);\n float distSqr = dot(SLU, SLU);\n float litRadius = light.cc_lightSizeRangeAngle.x;\n float litRadiusSqr = litRadius * litRadius;\n float illum = PI * (litRadiusSqr / max(litRadiusSqr , distSqr));\n float attRadiusSqrInv = 1.0 / max(light.cc_lightSizeRangeAngle.y, 0.01);\n attRadiusSqrInv *= attRadiusSqrInv;\n float att = GetDistAtt(distSqr, attRadiusSqrInv);\n vec3 lspec = specular * CalcSpecular(s.roughness, SNH, SH, N);\n if (IS_SPOT_LIGHT(light.cc_lightPos.w)) {\n float cosInner = max(dot(-light.cc_lightDir.xyz, SL), 0.01);\n float cosOuter = light.cc_lightSizeRangeAngle.z;\n float litAngleScale = 1.0 / max(0.001, cosInner - cosOuter);\n float litAngleOffset = -cosOuter * litAngleScale;\n att *= GetAngleAtt(SL, -light.cc_lightDir.xyz, litAngleScale, litAngleOffset);\n }\n vec3 lightColor = light.cc_lightColor.rgb;\n float shadow = 1.0;\n #if CC_RECEIVE_SHADOW && CC_SHADOW_TYPE == 2\n if (IS_SPOT_LIGHT(light.cc_lightPos.w) && light.cc_lightSizeRangeAngle.w > 0.0) {\n shadow = CCSpotShadowFactorBase(shadowPos, position, s.shadowBias);\n }\n #endif\n lightColor *= shadow;\n finalColor += SNL * lightColor * light.cc_lightColor.w * illum * att * (diffuseContrib + lspec);\n }\n return vec4(finalColor, 0.0);\n }\n#endif\n vec3 ACESToneMap (vec3 color) {\n color = min(color, vec3(8.0));\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n }\n vec4 CCFragOutput (vec4 color) {\n #if CC_USE_RGBE_OUTPUT\n color = packRGBE(color.rgb);\n #elif !CC_USE_FLOAT_OUTPUT\n #if CC_USE_HDR && CC_TONE_MAPPING_TYPE == HDR_TONE_MAPPING_ACES\n color.rgb = ACESToneMap(color.rgb);\n #endif\n color.rgb = LinearToSRGB(color.rgb);\n #endif\n return color;\n }\n #if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n #endif\n void CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n {\n #if CC_USE_FOG == 0\n \tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n #elif CC_USE_FOG == 1\n \tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n #elif CC_USE_FOG == 2\n \tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n #elif CC_USE_FOG == 3\n \tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n #else\n \tfactor = 1.0;\n #endif\n }\n void CC_APPLY_FOG_BASE(inout vec4 color, float factor) {\n \tcolor = vec4(mix(cc_fogColor.rgb, color.rgb, factor), color.a);\n }\n vec2 signNotZero(vec2 v) {\n return vec2((v.x >= 0.0) ? +1.0 : -1.0, (v.y >= 0.0) ? +1.0 : -1.0);\n }\n vec3 oct_to_float32x3(vec2 e) {\n vec3 v = vec3(e.xy, 1.0 - abs(e.x) - abs(e.y));\n if (v.z < 0.0) v.xy = (1.0 - abs(v.yx)) * signNotZero(v.xy);\n return normalize(v);\n }\n varying vec2 v_uv;\n uniform sampler2D albedoMap;\n uniform sampler2D normalMap;\n uniform sampler2D emissiveMap;\n uniform sampler2D depthStencil;\n vec4 screen2WS(vec3 coord) {\n vec3 ndc = vec3(\n 2.0 * (coord.x - cc_viewPort.x) / cc_viewPort.z - 1.0,\n 2.0 * (coord.y - cc_viewPort.y) / cc_viewPort.w - 1.0,\n 2.0 * coord.z - 1.0);\n CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(ndc.y);\n return GetWorldPosFromNDCPosRH(ndc, cc_matProj, cc_matViewProjInv);\n }\n void main () {\n StandardSurface s;\n vec4 albedo = texture2D(albedoMap, v_uv);\n vec4 normal = texture2D(normalMap, v_uv);\n vec4 emissive = texture2D(emissiveMap, v_uv);\n float depth = texture2D(depthStencil, v_uv).x;\n s.albedo = albedo;\n vec3 position = screen2WS(vec3(gl_FragCoord.xy, depth)).xyz;\n s.position = position;\n s.roughness = normal.z;\n s.normal = oct_to_float32x3(normal.xy);\n s.specularIntensity = 0.5;\n s.metallic = normal.w;\n s.emissive = emissive.xyz;\n s.occlusion = emissive.w;\n#if CC_RECEIVE_SHADOW\n s.shadowBias = vec2(0, 0);\n#endif\n float fogFactor;\n CC_TRANSFER_FOG_BASE(vec4(position, 1), fogFactor);\n vec4 shadowPos;\n shadowPos = cc_matLightViewProj * vec4(position, 1);\n vec4 color = CCStandardShadingBase(s, shadowPos) +\n#if CC_ENABLE_CLUSTERED_LIGHT_CULLING == 1\n CCClusterShadingAdditive(s, shadowPos);\n#else\n CCStandardShadingAdditive(s, shadowPos);\n#endif\n CC_APPLY_FOG_BASE(color, fogFactor);\n color = CCFragOutput(color);\n#if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_SINGLE\n color = vec4(albedoMap.rgb, 1.0);\n#endif\n gl_FragColor = color;\n }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]},{"name":"CCShadow","defines":[]},{"name":"CCCSM","defines":["CC_SUPPORT_CASCADED_SHADOW_MAP"]}],"samplerTextures":[{"name":"cc_shadowMap","defines":["CC_RECEIVE_SHADOW"]},{"name":"cc_spotShadowMap","defines":["CC_RECEIVE_SHADOW"]},{"name":"cc_environment","defines":[]},{"name":"cc_diffuseMap","defines":["CC_USE_IBL","CC_USE_DIFFUSEMAP"]}],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":["CC_USE_REFLECTION_PROBE"]},{"name":"CCSH","defines":["CC_USE_LIGHT_PROBE","!USE_INSTANCING"]},{"name":"CCForwardLight","defines":["CC_ENABLE_CLUSTERED_LIGHT_CULLING"]}],"samplerTextures":[{"name":"cc_reflectionProbeCubemap","defines":["CC_USE_REFLECTION_PROBE"]},{"name":"cc_reflectionProbePlanarMap","defines":["CC_USE_REFLECTION_PROBE"]},{"name":"cc_reflectionProbeDataMap","defines":["CC_USE_REFLECTION_PROBE"]}],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":42,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":120}},"defines":[{"name":"USE_INSTANCING","type":"boolean"},{"name":"CC_USE_SKINNING","type":"boolean"},{"name":"CC_USE_BAKED_ANIMATION","type":"boolean"},{"name":"CC_USE_LIGHTMAP","type":"number","range":[0,3]},{"name":"CC_USE_REFLECTION_PROBE","type":"number","range":[0,3]},{"name":"CC_RECEIVE_SHADOW","type":"boolean"},{"name":"CC_USE_LIGHT_PROBE","type":"boolean","default":0},{"name":"CC_USE_MORPH","type":"boolean"},{"name":"CC_USE_DEBUG_VIEW","type":"number","range":[0,3]},{"name":"CC_SURFACES_ENABLE_DEBUG_VIEW","type":"boolean"},{"name":"CC_SUPPORT_CASCADED_SHADOW_MAP","type":"boolean"},{"name":"CC_SHADOWMAP_FORMAT","type":"number","range":[0,3]},{"name":"CC_SHADOWMAP_USE_LINEAR_DEPTH","type":"boolean"},{"name":"CC_DIR_SHADOW_PCF_TYPE","type":"number","range":[0,3]},{"name":"CC_CASCADED_LAYERS_TRANSITION","type":"boolean"},{"name":"CC_USE_IBL","type":"number","range":[0,2]},{"name":"CC_USE_DIFFUSEMAP","type":"number","range":[0,2]},{"name":"CC_USE_HDR","type":"boolean"},{"name":"USE_REFLECTION_DENOISE","type":"boolean"},{"name":"CC_SHADOW_TYPE","type":"number","range":[0,3]},{"name":"CC_DIR_LIGHT_SHADOW_TYPE","type":"number","range":[0,3]},{"name":"CC_FORWARD_ADD","type":"boolean"},{"name":"CC_DISABLE_DIRECTIONAL_LIGHT","type":"boolean"},{"name":"CC_IBL_CONVOLUTED","type":"boolean"},{"name":"CC_PIPELINE_TYPE","type":"number","range":[0,1]},{"name":"CC_FORCE_FORWARD_SHADING","type":"boolean"},{"name":"CC_ENABLE_CLUSTERED_LIGHT_CULLING","type":"number","range":[0,3]},{"name":"CC_USE_RGBE_OUTPUT","type":"boolean"},{"name":"CC_USE_FLOAT_OUTPUT","type":"boolean"},{"name":"CC_TONE_MAPPING_TYPE","type":"number","range":[0,3]},{"name":"HDR_TONE_MAPPING_ACES","type":"boolean"},{"name":"CC_USE_FOG","type":"number","range":[0,4]}]}],[{"passes":[{"pass":"deferred-lighting","program":"pipeline/deferred-lighting|lighting-vs|lighting-fs","rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":false,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[4,"for2d/builtin-sprite",[{}],[{"hash":2249878161,"name":"for2d/builtin-sprite|sprite-vs:vert|sprite-fs:frag","blocks":[{"name":"ALPHA_TEST_DATA","stageFlags":16,"binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_texCoord","format":21,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["USE_LOCAL"]}],"samplerTextures":[{"name":"cc_spriteTexture","typename":"sampler2D","type":28,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"local"},"defines":["USE_TEXTURE"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"ALPHA_TEST_DATA","stageFlags":16,"binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":1,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":1,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#if USE_LOCAL\n layout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n };\n#endif\n#if SAMPLE_FROM_RT\n #define QUATER_PI 0.78539816340\n #define HALF_PI 1.57079632679\n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define PI4 12.5663706144\n #define INV_QUATER_PI 1.27323954474\n #define INV_HALF_PI 0.63661977237\n #define INV_PI 0.31830988618\n #define INV_PI2 0.15915494309\n #define INV_PI4 0.07957747155\n #define EPSILON 1e-6\n #define EPSILON_LOWP 1e-4\n #define LOG2 1.442695\n #define EXP_VALUE 2.71828183\n #define FP_MAX 65504.0\n #define FP_SCALE 0.0009765625\n #define FP_SCALE_INV 1024.0\n #define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n #define LIGHT_MAP_TYPE_DISABLED 0\n #define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n #define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n #define REFLECTION_PROBE_TYPE_NONE 0\n #define REFLECTION_PROBE_TYPE_CUBE 1\n #define REFLECTION_PROBE_TYPE_PLANAR 2\n #define REFLECTION_PROBE_TYPE_BLEND 3\n #define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n #define LIGHT_TYPE_DIRECTIONAL 0.0\n #define LIGHT_TYPE_SPHERE 1.0\n #define LIGHT_TYPE_SPOT 2.0\n #define LIGHT_TYPE_POINT 3.0\n #define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n #define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n #define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n #define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n #define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n #define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n #define TONE_MAPPING_ACES 0\n #define TONE_MAPPING_LINEAR 1\n #define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n #ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n #endif\n #ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n #endif\n#endif\nin vec3 a_position;\nin vec2 a_texCoord;\nin vec4 a_color;\nout vec4 color;\nout vec2 uv0;\nvec4 vert () {\n vec4 pos = vec4(a_position, 1);\n #if USE_LOCAL\n pos = cc_matWorld * pos;\n #endif\n #if USE_PIXEL_ALIGNMENT\n pos = cc_matView * pos;\n pos.xyz = floor(pos.xyz);\n pos = cc_matProj * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n uv0 = a_texCoord;\n #if SAMPLE_FROM_RT\n uv0 = cc_cameraPos.w > 1.0 ? vec2(uv0.x, 1.0 - uv0.y) : uv0;\n #endif\n color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture(tex, uv).rgb, texture(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture(tex, uv);\n#endif\n}\n#if USE_ALPHA_TEST\n layout(std140) uniform ALPHA_TEST_DATA {\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 color;\n#if USE_TEXTURE\n in vec2 uv0;\n uniform sampler2D cc_spriteTexture;\n#endif\nvec4 frag () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n o *= CCSampleWithAlphaSeparated(cc_spriteTexture, uv0);\n #if IS_GRAY\n float gray = 0.2126 * o.r + 0.7152 * o.g + 0.0722 * o.b;\n o.r = o.g = o.b = gray;\n #endif\n #endif\n o *= color;\n ALPHA_TEST(o);\n return o;\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matProj;\n uniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\n#if USE_LOCAL\n uniform highp mat4 cc_matWorld;\n#endif\n#if SAMPLE_FROM_RT\n #define QUATER_PI 0.78539816340\n #define HALF_PI 1.57079632679\n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define PI4 12.5663706144\n #define INV_QUATER_PI 1.27323954474\n #define INV_HALF_PI 0.63661977237\n #define INV_PI 0.31830988618\n #define INV_PI2 0.15915494309\n #define INV_PI4 0.07957747155\n #define EPSILON 1e-6\n #define EPSILON_LOWP 1e-4\n #define LOG2 1.442695\n #define EXP_VALUE 2.71828183\n #define FP_MAX 65504.0\n #define FP_SCALE 0.0009765625\n #define FP_SCALE_INV 1024.0\n #define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n #define LIGHT_MAP_TYPE_DISABLED 0\n #define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n #define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n #define REFLECTION_PROBE_TYPE_NONE 0\n #define REFLECTION_PROBE_TYPE_CUBE 1\n #define REFLECTION_PROBE_TYPE_PLANAR 2\n #define REFLECTION_PROBE_TYPE_BLEND 3\n #define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n #define LIGHT_TYPE_DIRECTIONAL 0.0\n #define LIGHT_TYPE_SPHERE 1.0\n #define LIGHT_TYPE_SPOT 2.0\n #define LIGHT_TYPE_POINT 3.0\n #define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n #define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n #define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n #define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n #define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n #define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n #define TONE_MAPPING_ACES 0\n #define TONE_MAPPING_LINEAR 1\n #define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n #ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n #endif\n #ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n #endif\n#endif\nattribute vec3 a_position;\nattribute vec2 a_texCoord;\nattribute vec4 a_color;\nvarying vec4 color;\nvarying vec2 uv0;\nvec4 vert () {\n vec4 pos = vec4(a_position, 1);\n #if USE_LOCAL\n pos = cc_matWorld * pos;\n #endif\n #if USE_PIXEL_ALIGNMENT\n pos = cc_matView * pos;\n pos.xyz = floor(pos.xyz);\n pos = cc_matProj * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n uv0 = a_texCoord;\n #if SAMPLE_FROM_RT\n uv0 = cc_cameraPos.w > 1.0 ? vec2(uv0.x, 1.0 - uv0.y) : uv0;\n #endif\n color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture2D(tex, uv).rgb, texture2D(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture2D(tex, uv);\n#endif\n}\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 color;\n#if USE_TEXTURE\n varying vec2 uv0;\n uniform sampler2D cc_spriteTexture;\n#endif\nvec4 frag () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n o *= CCSampleWithAlphaSeparated(cc_spriteTexture, uv0);\n #if IS_GRAY\n float gray = 0.2126 * o.r + 0.7152 * o.g + 0.0722 * o.b;\n o.r = o.g = o.b = gray;\n #endif\n #endif\n o *= color;\n ALPHA_TEST(o);\n return o;\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":["USE_LOCAL"]}],"samplerTextures":[{"name":"cc_spriteTexture","defines":["USE_TEXTURE"]}],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":56,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":1}},"defines":[{"name":"USE_LOCAL","type":"boolean"},{"name":"SAMPLE_FROM_RT","type":"boolean"},{"name":"USE_PIXEL_ALIGNMENT","type":"boolean"},{"name":"CC_USE_EMBEDDED_ALPHA","type":"boolean"},{"name":"USE_ALPHA_TEST","type":"boolean"},{"name":"USE_TEXTURE","type":"boolean"},{"name":"IS_GRAY","type":"boolean"}]}],[{"passes":[{"program":"for2d/builtin-sprite|sprite-vs:vert|sprite-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":false,"depthWrite":false},"properties":{"alphaThreshold":{"type":13,"value":[0.5]}}}]}]]],0,0,[],[],[]],[[[0,"particles/builtin-billboard",[{"hash":2281029704,"name":"particles/builtin-billboard|vert:vs_main|tinted-fs:add","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"builtin","stageFlags":1,"binding":1,"members":[{"name":"cc_size_rotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":2,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":3,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_texCoord","format":21,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"builtin","stageFlags":1,"binding":1,"members":[{"name":"cc_size_rotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":2,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":3,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n , mat4 viewInv\n) {\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n}\nin vec3 a_position;\nin vec2 a_texCoord;\nin vec4 a_color;\nlayout(std140) uniform builtin {\n vec4 cc_size_rotation;\n};\nvec4 vs_main() {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matWorld * pos;\n vec2 vertOffset = a_texCoord.xy - 0.5;\n computeVertPos(pos, vertOffset, quaternionFromEuler(vec3(0., 0., cc_size_rotation.z)), vec3(cc_size_rotation.xy, 0.), cc_matViewInv);\n pos = cc_matViewProj * pos;\n uv = a_texCoord.xy;\n color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nlayout(std140) uniform FragConstants {\n vec4 tintColor;\n};\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture(mainTexture, uv);\n return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = add(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\nuniform highp mat4 cc_matWorld;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n , mat4 viewInv\n) {\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n}\nattribute vec3 a_position;\nattribute vec2 a_texCoord;\nattribute vec4 a_color;\n uniform vec4 cc_size_rotation;\nvec4 vs_main() {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matWorld * pos;\n vec2 vertOffset = a_texCoord.xy - 0.5;\n computeVertPos(pos, vertOffset, quaternionFromEuler(vec3(0., 0., cc_size_rotation.z)), vec3(cc_size_rotation.xy, 0.), cc_matViewInv);\n pos = cc_matViewProj * pos;\n uv = a_texCoord.xy;\n color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\n uniform vec4 tintColor;\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture2D(mainTexture, uv);\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = add(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":61,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":43}},"defines":[]},{"hash":2715866145,"name":"particles/builtin-billboard|vert:vs_main|tinted-fs:multiply","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"builtin","stageFlags":1,"binding":1,"members":[{"name":"cc_size_rotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":2,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":3,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_texCoord","format":21,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"builtin","stageFlags":1,"binding":1,"members":[{"name":"cc_size_rotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":2,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":3,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n , mat4 viewInv\n) {\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n}\nin vec3 a_position;\nin vec2 a_texCoord;\nin vec4 a_color;\nlayout(std140) uniform builtin {\n vec4 cc_size_rotation;\n};\nvec4 vs_main() {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matWorld * pos;\n vec2 vertOffset = a_texCoord.xy - 0.5;\n computeVertPos(pos, vertOffset, quaternionFromEuler(vec3(0., 0., cc_size_rotation.z)), vec3(cc_size_rotation.xy, 0.), cc_matViewInv);\n pos = cc_matViewProj * pos;\n uv = a_texCoord.xy;\n color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nlayout(std140) uniform 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 return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = multiply(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\nuniform highp mat4 cc_matWorld;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n , mat4 viewInv\n) {\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n}\nattribute vec3 a_position;\nattribute vec2 a_texCoord;\nattribute vec4 a_color;\n uniform vec4 cc_size_rotation;\nvec4 vs_main() {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matWorld * pos;\n vec2 vertOffset = a_texCoord.xy - 0.5;\n computeVertPos(pos, vertOffset, quaternionFromEuler(vec3(0., 0., cc_size_rotation.z)), vec3(cc_size_rotation.xy, 0.), cc_matViewInv);\n pos = cc_matViewProj * pos;\n uv = a_texCoord.xy;\n color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\n uniform 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 return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = multiply(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":61,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":43}},"defines":[]},{"hash":3617975406,"name":"particles/builtin-billboard|vert:vs_main|no-tint-fs:addSmooth","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"builtin","stageFlags":1,"binding":1,"members":[{"name":"cc_size_rotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_texCoord","format":21,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"builtin","stageFlags":1,"binding":1,"members":[{"name":"cc_size_rotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n , mat4 viewInv\n) {\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n}\nin vec3 a_position;\nin vec2 a_texCoord;\nin vec4 a_color;\nlayout(std140) uniform builtin {\n vec4 cc_size_rotation;\n};\nvec4 vs_main() {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matWorld * pos;\n vec2 vertOffset = a_texCoord.xy - 0.5;\n computeVertPos(pos, vertOffset, quaternionFromEuler(vec3(0., 0., cc_size_rotation.z)), vec3(cc_size_rotation.xy, 0.), cc_matViewInv);\n pos = cc_matViewProj * pos;\n uv = a_texCoord.xy;\n color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return 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}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = addSmooth(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\nuniform highp mat4 cc_matWorld;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n , mat4 viewInv\n) {\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n}\nattribute vec3 a_position;\nattribute vec2 a_texCoord;\nattribute vec4 a_color;\n uniform vec4 cc_size_rotation;\nvec4 vs_main() {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matWorld * pos;\n vec2 vertOffset = a_texCoord.xy - 0.5;\n computeVertPos(pos, vertOffset, quaternionFromEuler(vec3(0., 0., cc_size_rotation.z)), vec3(cc_size_rotation.xy, 0.), cc_matViewInv);\n pos = cc_matViewProj * pos;\n uv = a_texCoord.xy;\n color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return 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":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":61,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[]},{"hash":3619147658,"name":"particles/builtin-billboard|vert:vs_main|no-tint-fs:premultiplied","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"builtin","stageFlags":1,"binding":1,"members":[{"name":"cc_size_rotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_texCoord","format":21,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"builtin","stageFlags":1,"binding":1,"members":[{"name":"cc_size_rotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n , mat4 viewInv\n) {\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n}\nin vec3 a_position;\nin vec2 a_texCoord;\nin vec4 a_color;\nlayout(std140) uniform builtin {\n vec4 cc_size_rotation;\n};\nvec4 vs_main() {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matWorld * pos;\n vec2 vertOffset = a_texCoord.xy - 0.5;\n computeVertPos(pos, vertOffset, quaternionFromEuler(vec3(0., 0., cc_size_rotation.z)), vec3(cc_size_rotation.xy, 0.), cc_matViewInv);\n pos = cc_matViewProj * pos;\n uv = a_texCoord.xy;\n color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return 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}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = premultiplied(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\nuniform highp mat4 cc_matWorld;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n , mat4 viewInv\n) {\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n}\nattribute vec3 a_position;\nattribute vec2 a_texCoord;\nattribute vec4 a_color;\n uniform vec4 cc_size_rotation;\nvec4 vs_main() {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matWorld * pos;\n vec2 vertOffset = a_texCoord.xy - 0.5;\n computeVertPos(pos, vertOffset, quaternionFromEuler(vec3(0., 0., cc_size_rotation.z)), vec3(cc_size_rotation.xy, 0.), cc_matViewInv);\n pos = cc_matViewProj * pos;\n uv = a_texCoord.xy;\n color = a_color;\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return 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":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":61,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[]}],[{"name":"add","passes":[{"program":"particles/builtin-billboard|vert:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-billboard|vert:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"alpha-blend","passes":[{"program":"particles/builtin-billboard|vert:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-billboard|vert:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"add-multiply","passes":[{"program":"particles/builtin-billboard|vert:vs_main|tinted-fs:multiply","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-billboard|vert:vs_main|tinted-fs:multiply","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"add-smooth","passes":[{"program":"particles/builtin-billboard|vert:vs_main|no-tint-fs:addSmooth","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-billboard|vert:vs_main|no-tint-fs:addSmooth","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"premultiply-blend","passes":[{"program":"particles/builtin-billboard|vert:vs_main|no-tint-fs:premultiplied","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-billboard|vert:vs_main|no-tint-fs:premultiplied","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":4,"blendSrcAlpha":1,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[1,"default-billboard-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{}]]],0,0,[0],[0],[4]],[[[4,"internal/builtin-clear-stencil",[{}],[{"hash":3507038093,"name":"internal/builtin-clear-stencil|sprite-vs:vert|sprite-fs:frag","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\nin vec3 a_position;\nvec4 vert () {\n vec4 pos = vec4(a_position, 1);\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nvec4 frag () {\n vec4 o = vec4(1.0);\n return o;\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\nattribute vec3 a_position;\nvec4 vert () {\n vec4 pos = vec4(a_position, 1);\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nvec4 frag () {\n vec4 o = vec4(1.0);\n return o;\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":0,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":0}},"defines":[]}],[{"passes":[{"program":"internal/builtin-clear-stencil|sprite-vs:vert|sprite-fs:frag","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":false,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[0,"util/profiler",[{"hash":394204838,"name":"util/profiler|profiler-vs:vert|profiler-fs:frag","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"offset","type":16,"count":1}],"defines":[]},{"name":"PerFrameInfo","stageFlags":1,"binding":1,"members":[{"name":"digits","type":16,"count":22}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_color","format":44,"location":1,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"offset","type":16,"count":1}],"defines":[]},{"name":"PerFrameInfo","stageFlags":1,"binding":1,"members":[{"name":"digits","type":16,"count":22}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec2 v_uv;\nlayout(std140) uniform Constants {\n vec4 offset;\n};\nlayout(std140) uniform PerFrameInfo {\n vec4 digits[8 * 11 / 4];\n};\nfloat getComponent(vec4 v, float i) {\n if (i < 1.0) { return v.x; }\n else if (i < 2.0) { return v.y; }\n else if (i < 3.0) { return v.z; }\n else { return v.w; }\n}\nvec4 vert () {\n mat2 proj = mat2(cc_matProj[0].xy, cc_matProj[1].xy);\n proj /= abs(proj[1].x + proj[1].y);\n vec2 position = proj * a_position.xy + offset.xy;\n v_uv = a_color.xy;\n if (a_color.z >= 0.0) {\n float n = getComponent(digits[int(a_color.z)], a_color.w);\n v_uv += vec2(offset.z * n, 0.0);\n }\n return vec4(position, 0.0, 1.0);\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec2 v_uv;\nuniform sampler2D mainTexture;\nvec4 frag () {\n return CCFragOutput(texture(mainTexture, v_uv));\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform highp mat4 cc_matProj;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec2 v_uv;\n uniform vec4 offset;\n uniform vec4 digits[22];\nfloat getComponent(vec4 v, float i) {\n if (i < 1.0) { return v.x; }\n else if (i < 2.0) { return v.y; }\n else if (i < 3.0) { return v.z; }\n else { return v.w; }\n}\nvec4 vert () {\n mat2 proj = mat2(cc_matProj[0].xy, cc_matProj[1].xy);\n proj /= abs(proj[1].x + proj[1].y);\n vec2 position = proj * a_position.xy + offset.xy;\n v_uv = a_color.xy;\n if (a_color.z >= 0.0) {\n float n = getComponent(digits[int(a_color.z)], a_color.w);\n v_uv += vec2(offset.z * n, 0.0);\n }\n return vec4(position, 0.0, 1.0);\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec2 v_uv;\nuniform sampler2D mainTexture;\nvec4 frag () {\n return CCFragOutput(texture2D(mainTexture, v_uv));\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":65,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[]}],[{"passes":[{"program":"util/profiler|profiler-vs:vert|profiler-fs:frag","priority":255,"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":false,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[1,"default-clear-stencil",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_TEXTURE":false}]]],0,0,[0],[0],[5]],[[[0,"pipeline/planar-shadow",[{"hash":3680218420,"name":"pipeline/planar-shadow|planar-shadow-vs:vert|planar-shadow-fs:frag","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_normal","format":32,"location":1,"defines":[]},{"name":"a_texCoord","format":21,"location":2,"defines":[]},{"name":"a_tangent","format":44,"location":3,"defines":[]},{"name":"a_joints","location":4,"defines":["CC_USE_SKINNING"]},{"name":"a_weights","format":44,"location":5,"defines":["CC_USE_SKINNING"]},{"name":"a_jointAnimInfo","format":44,"isInstanced":true,"location":6,"defines":["USE_INSTANCING","CC_USE_BAKED_ANIMATION"]},{"name":"a_matWorld0","format":44,"isInstanced":true,"location":7,"defines":["USE_INSTANCING"]},{"name":"a_matWorld1","format":44,"isInstanced":true,"location":8,"defines":["USE_INSTANCING"]},{"name":"a_matWorld2","format":44,"isInstanced":true,"location":9,"defines":["USE_INSTANCING"]},{"name":"a_lightingMapUVParam","format":44,"isInstanced":true,"location":10,"defines":["USE_INSTANCING","CC_USE_LIGHTMAP"]},{"name":"a_localShadowBiasAndProbeId","format":44,"isInstanced":true,"location":11,"defines":["USE_INSTANCING"]},{"name":"a_reflectionProbeData","format":44,"isInstanced":true,"location":12,"defines":["USE_INSTANCING","CC_USE_REFLECTION_PROBE"]},{"name":"a_sh_linear_const_r","format":44,"isInstanced":true,"location":13,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_g","format":44,"isInstanced":true,"location":14,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_b","format":44,"isInstanced":true,"location":15,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_vertexId","format":11,"location":16,"defines":["CC_USE_MORPH"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCMorph","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_displacementWeights","typename":"vec4","type":16,"count":15,"isArray":true},{"name":"cc_displacementTextureInfo","typename":"vec4","type":16,"count":1}],"defines":["CC_USE_MORPH"]},{"name":"CCSkinningTexture","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_jointTextureInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinningAnimation","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_jointAnimInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinning","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_joints","typename":"vec4","type":16,"count":0,"precision":"highp ","isArray":true}],"defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","!CC_USE_REAL_TIME_JOINT_TEXTURE"]},{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["!USE_INSTANCING"]}],"samplerTextures":[{"name":"cc_PositionDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_POSITION"]},{"name":"cc_NormalDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_NORMAL"]},{"name":"cc_TangentDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_TANGENT"]},{"name":"cc_jointTexture","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"cc_realtimeJoint","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","CC_USE_REAL_TIME_JOINT_TEXTURE"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCShadow","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matLightView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matLightViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_shadowInvProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowNFLSInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowWHPBInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowLPNNInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowColor","typename":"vec4","type":16,"count":1,"precision":"lowp "},{"name":"cc_planarNDInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\nfloat saturate(float value) { return clamp(value, 0.0, 1.0); }\nvec2 saturate(vec2 value) { return clamp(value, vec2(0.0), vec2(1.0)); }\nvec3 saturate(vec3 value) { return clamp(value, vec3(0.0), vec3(1.0)); }\nvec4 saturate(vec4 value) { return clamp(value, vec4(0.0), vec4(1.0)); }\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\nin vec4 a_tangent;\n#if CC_USE_SKINNING\n in vec4 a_joints;\n in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n in highp vec4 a_jointAnimInfo;\n #endif\n in vec4 a_matWorld0;\n in vec4 a_matWorld1;\n in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n in vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n in vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n in vec4 a_sh_linear_const_r;\n in vec4 a_sh_linear_const_g;\n in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n in float a_vertexId;\n int getVertexId() {\n return int(a_vertexId);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\n#if CC_USE_MORPH\n layout(std140) uniform CCMorph {\n vec4 cc_displacementWeights[15];\n vec4 cc_displacementTextureInfo;\n };\n #if CC_MORPH_TARGET_HAS_POSITION\n uniform sampler2D cc_PositionDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n uniform sampler2D cc_NormalDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n uniform sampler2D cc_TangentDisplacements;\n #endif\n vec2 getPixelLocation(vec2 textureResolution, int pixelIndex) {\n float pixelIndexF = float(pixelIndex);\n float x = mod(pixelIndexF, textureResolution.x);\n float y = floor(pixelIndexF / textureResolution.x);\n return vec2(x, y);\n }\n vec2 getPixelCoordFromLocation(vec2 location, vec2 textureResolution) {\n return (vec2(location.x, location.y) + .5) / textureResolution;\n }\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int pixelIndex) {\n ivec2 texSize = textureSize(tex, 0);\n return texelFetch(tex, ivec2(pixelIndex % texSize.x, pixelIndex / texSize.x), 0);\n }\n #else\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex * 4;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 x = getPixelCoordFromLocation(location + vec2(0.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 y = getPixelCoordFromLocation(location + vec2(1.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 z = getPixelCoordFromLocation(location + vec2(2.0, 0.0), cc_displacementTextureInfo.xy);\n return vec4(\n decode32(texture(tex, x)),\n decode32(texture(tex, y)),\n decode32(texture(tex, z)),\n 1.0\n );\n }\n #endif\n float getDisplacementWeight(int index) {\n int quot = index / 4;\n int remainder = index - quot * 4;\n if (remainder == 0) {\n return cc_displacementWeights[quot].x;\n } else if (remainder == 1) {\n return cc_displacementWeights[quot].y;\n } else if (remainder == 2) {\n return cc_displacementWeights[quot].z;\n } else {\n return cc_displacementWeights[quot].w;\n }\n }\n vec3 getVec3DisplacementFromTexture(sampler2D tex, int vertexIndex) {\n #if CC_MORPH_PRECOMPUTED\n return fetchVec3ArrayFromTexture(tex, vertexIndex).rgb;\n #else\n vec3 result = vec3(0, 0, 0);\n int nVertices = int(cc_displacementTextureInfo.z);\n for (int iTarget = 0; iTarget < CC_MORPH_TARGET_COUNT; ++iTarget) {\n result += (fetchVec3ArrayFromTexture(tex, nVertices * iTarget + vertexIndex).rgb * getDisplacementWeight(iTarget));\n }\n return result;\n #endif\n }\n #if CC_MORPH_TARGET_HAS_POSITION\n vec3 getPositionDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_PositionDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n vec3 getNormalDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_NormalDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n vec3 getTangentDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_TangentDisplacements, vertexId);\n }\n #endif\n void applyMorph (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n int vertexId = getVertexId();\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n normal.xyz = normal.xyz + getNormalDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n tangent.xyz = tangent.xyz + getTangentDisplacement(vertexId);\n #endif\n }\n void applyMorph (inout vec4 position) {\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(getVertexId());\n #endif\n }\n#endif\n#if CC_USE_SKINNING\n #if CC_USE_BAKED_ANIMATION\n layout(std140) uniform CCSkinningTexture {\n highp vec4 cc_jointTextureInfo;\n };\n layout(std140) uniform CCSkinningAnimation {\n highp vec4 cc_jointAnimInfo;\n };\n uniform highp sampler2D cc_jointTexture;\n void CCGetJointTextureCoords(float pixelsPerJoint, float jointIdx, out highp float x, out highp float y, out highp float invSize)\n {\n #if USE_INSTANCING\n highp float temp = pixelsPerJoint * (a_jointAnimInfo.x * a_jointAnimInfo.y + jointIdx) + a_jointAnimInfo.z;\n #else\n highp float temp = pixelsPerJoint * (cc_jointAnimInfo.x * cc_jointTextureInfo.y + jointIdx) + cc_jointTextureInfo.z;\n #endif\n invSize = cc_jointTextureInfo.w;\n highp float tempY = floor(temp * invSize);\n x = floor(temp - tempY * cc_jointTextureInfo.x);\n y = (tempY + 0.5) * invSize;\n }\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n uniform highp sampler2D cc_realtimeJoint;\n #else\n layout(std140) uniform CCSkinning {\n highp vec4 cc_joints[CC_JOINT_UNIFORM_CAPACITY * 3];\n };\n #endif\n #endif\n #if CC_USE_BAKED_ANIMATION\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(3.0, i, x, y, invSize);\n vec4 v1 = texture(cc_jointTexture, vec2((x + 0.5) * invSize, y));\n vec4 v2 = texture(cc_jointTexture, vec2((x + 1.5) * invSize, y));\n vec4 v3 = texture(cc_jointTexture, vec2((x + 2.5) * invSize, y));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(12.0, i, x, y, invSize);\n vec4 v1 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 0.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 1.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 2.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 3.5) * invSize, y)))\n );\n vec4 v2 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 4.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 5.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 6.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 7.5) * invSize, y)))\n );\n vec4 v3 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 8.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 9.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 10.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 11.5) * invSize, y)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n float x = i;\n vec4 v1 = texture(cc_realtimeJoint, vec2( x / 256.0, 0.5 / 3.0));\n vec4 v2 = texture(cc_realtimeJoint, vec2( x / 256.0, 1.5 / 3.0));\n vec4 v3 = texture(cc_realtimeJoint, vec2( x / 256.0, 2.5 / 3.0));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n float x = 4.0 * i;\n vec4 v1 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 0.5 / 3.0)))\n );\n vec4 v2 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 1.5 / 3.0)))\n );\n vec4 v3 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 2.5 / 3.0)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n mat4 getJointMatrix (float i) {\n int idx = int(i);\n vec4 v1 = cc_joints[idx * 3];\n vec4 v2 = cc_joints[idx * 3 + 1];\n vec4 v3 = cc_joints[idx * 3 + 2];\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #endif\n mat4 skinMatrix () {\n vec4 joints = vec4(a_joints);\n return getJointMatrix(joints.x) * a_weights.x\n + getJointMatrix(joints.y) * a_weights.y\n + getJointMatrix(joints.z) * a_weights.z\n + getJointMatrix(joints.w) * a_weights.w;\n }\n void CCSkin (inout vec4 position) {\n mat4 m = skinMatrix();\n position = m * position;\n }\n void CCSkin (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n mat4 m = skinMatrix();\n position = m * position;\n normal = (m * vec4(normal, 0.0)).xyz;\n tangent.xyz = (m * vec4(tangent.xyz, 0.0)).xyz;\n }\n#endif\nvoid CCVertInput(inout vec4 In)\n{\n In = vec4(a_position, 1.0);\n #if CC_USE_MORPH\n applyMorph(In);\n #endif\n #if CC_USE_SKINNING\n CCSkin(In);\n #endif\n}\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#if !USE_INSTANCING\n layout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n };\n#endif\nvoid CCGetWorldMatrixFull(out mat4 matWorld, out mat4 matWorldIT)\n{\n #if USE_INSTANCING\n matWorld = mat4(\n vec4(a_matWorld0.xyz, 0.0),\n vec4(a_matWorld1.xyz, 0.0),\n vec4(a_matWorld2.xyz, 0.0),\n vec4(a_matWorld0.w, a_matWorld1.w, a_matWorld2.w, 1.0)\n );\n vec3 scale = 1.0 / vec3(length(a_matWorld0.xyz), length(a_matWorld1.xyz), length(a_matWorld2.xyz));\n vec3 scale2 = scale * scale;\n matWorldIT = mat4(\n vec4(a_matWorld0.xyz * scale2.x, 0.0),\n vec4(a_matWorld1.xyz * scale2.y, 0.0),\n vec4(a_matWorld2.xyz * scale2.z, 0.0),\n vec4(0.0, 0.0, 0.0, 1.0)\n );\n #else\n matWorld = cc_matWorld;\n matWorldIT = cc_matWorldIT;\n #endif\n}\nlayout(std140) uniform CCShadow {\n highp mat4 cc_matLightView;\n highp mat4 cc_matLightViewProj;\n highp vec4 cc_shadowInvProjDepthInfo;\n highp vec4 cc_shadowProjDepthInfo;\n highp vec4 cc_shadowProjInfo;\n mediump vec4 cc_shadowNFLSInfo;\n mediump vec4 cc_shadowWHPBInfo;\n mediump vec4 cc_shadowLPNNInfo;\n lowp vec4 cc_shadowColor;\n mediump vec4 cc_planarNDInfo;\n};\nvec4 CalculatePlanarShadowPos(vec3 meshWorldPos, vec3 cameraPos, vec3 lightDir, vec4 plane) {\n vec3 P = meshWorldPos;\n vec3 L = lightDir;\n vec3 N = plane.xyz;\n float d = plane.w + EPSILON_LOWP;\n float dist = (-d - dot(P, N)) / (dot(L, N) + EPSILON_LOWP);\n vec3 shadowPos = P + L * dist;\n return vec4(shadowPos, dist);\n}\nvec4 CalculatePlanarShadowClipPos(vec4 shadowPos, vec3 cameraPos, mat4 matView, mat4 matProj, vec4 nearFar, float bias) {\n vec4 camPos = matView * vec4(shadowPos.xyz, 1.0);\n float lerpCoef = saturate((nearFar.z < 0.0 ? -camPos.z : camPos.z) / (nearFar.y - nearFar.x));\n camPos.z += mix(nearFar.x * 0.01, nearFar.y * EPSILON_LOWP * bias, lerpCoef);\n return matProj * camPos;\n}\nout float v_dist;\nvec4 vert () {\n vec4 position;\n CCVertInput(position);\n mat4 matWorld, matWorldIT;\n CCGetWorldMatrixFull(matWorld, matWorldIT);\n vec3 worldPos = (matWorld * position).xyz;\n vec4 shadowPos = CalculatePlanarShadowPos(worldPos, cc_cameraPos.xyz, cc_mainLitDir.xyz, cc_planarNDInfo);\n position = CalculatePlanarShadowClipPos(shadowPos, cc_cameraPos.xyz, cc_matView, cc_matProj, cc_nearFar, cc_shadowWHPBInfo.w);\n v_dist = shadowPos.w;\n return position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nlayout(std140) uniform CCShadow {\n highp mat4 cc_matLightView;\n highp mat4 cc_matLightViewProj;\n highp vec4 cc_shadowInvProjDepthInfo;\n highp vec4 cc_shadowProjDepthInfo;\n highp vec4 cc_shadowProjInfo;\n mediump vec4 cc_shadowNFLSInfo;\n mediump vec4 cc_shadowWHPBInfo;\n mediump vec4 cc_shadowLPNNInfo;\n lowp vec4 cc_shadowColor;\n mediump vec4 cc_planarNDInfo;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin float v_dist;\nvec4 frag () {\n if(v_dist < 0.0)\n discard;\n return CCFragOutput(cc_shadowColor);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\nfloat saturate(float value) { return clamp(value, 0.0, 1.0); }\nvec2 saturate(vec2 value) { return clamp(value, vec2(0.0), vec2(1.0)); }\nvec3 saturate(vec3 value) { return clamp(value, vec3(0.0), vec3(1.0)); }\nvec4 saturate(vec4 value) { return clamp(value, vec4(0.0), vec4(1.0)); }\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nattribute vec4 a_tangent;\n#if CC_USE_SKINNING\n attribute vec4 a_joints;\n attribute vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n attribute highp vec4 a_jointAnimInfo;\n #endif\n attribute vec4 a_matWorld0;\n attribute vec4 a_matWorld1;\n attribute vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n attribute vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n attribute vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n attribute vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n attribute vec4 a_sh_linear_const_r;\n attribute vec4 a_sh_linear_const_g;\n attribute vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n attribute float a_vertexId;\n int getVertexId() {\n return int(a_vertexId);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\n#if CC_USE_MORPH\n uniform vec4 cc_displacementWeights[15];\n uniform vec4 cc_displacementTextureInfo;\n #if CC_MORPH_TARGET_HAS_POSITION\n uniform sampler2D cc_PositionDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n uniform sampler2D cc_NormalDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n uniform sampler2D cc_TangentDisplacements;\n #endif\n vec2 getPixelLocation(vec2 textureResolution, int pixelIndex) {\n float pixelIndexF = float(pixelIndex);\n float x = mod(pixelIndexF, textureResolution.x);\n float y = floor(pixelIndexF / textureResolution.x);\n return vec2(x, y);\n }\n vec2 getPixelCoordFromLocation(vec2 location, vec2 textureResolution) {\n return (vec2(location.x, location.y) + .5) / textureResolution;\n }\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 uv = getPixelCoordFromLocation(location, cc_displacementTextureInfo.xy);\n return texture2D(tex, uv);\n }\n #else\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex * 4;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 x = getPixelCoordFromLocation(location + vec2(0.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 y = getPixelCoordFromLocation(location + vec2(1.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 z = getPixelCoordFromLocation(location + vec2(2.0, 0.0), cc_displacementTextureInfo.xy);\n return vec4(\n decode32(texture2D(tex, x)),\n decode32(texture2D(tex, y)),\n decode32(texture2D(tex, z)),\n 1.0\n );\n }\n #endif\n float getDisplacementWeight(int index) {\n int quot = index / 4;\n int remainder = index - quot * 4;\n if (remainder == 0) {\n return cc_displacementWeights[quot].x;\n } else if (remainder == 1) {\n return cc_displacementWeights[quot].y;\n } else if (remainder == 2) {\n return cc_displacementWeights[quot].z;\n } else {\n return cc_displacementWeights[quot].w;\n }\n }\n vec3 getVec3DisplacementFromTexture(sampler2D tex, int vertexIndex) {\n #if CC_MORPH_PRECOMPUTED\n return fetchVec3ArrayFromTexture(tex, vertexIndex).rgb;\n #else\n vec3 result = vec3(0, 0, 0);\n int nVertices = int(cc_displacementTextureInfo.z);\n for (int iTarget = 0; iTarget < CC_MORPH_TARGET_COUNT; ++iTarget) {\n result += (fetchVec3ArrayFromTexture(tex, nVertices * iTarget + vertexIndex).rgb * getDisplacementWeight(iTarget));\n }\n return result;\n #endif\n }\n #if CC_MORPH_TARGET_HAS_POSITION\n vec3 getPositionDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_PositionDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n vec3 getNormalDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_NormalDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n vec3 getTangentDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_TangentDisplacements, vertexId);\n }\n #endif\n void applyMorph (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n int vertexId = getVertexId();\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n normal.xyz = normal.xyz + getNormalDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n tangent.xyz = tangent.xyz + getTangentDisplacement(vertexId);\n #endif\n }\n void applyMorph (inout vec4 position) {\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(getVertexId());\n #endif\n }\n#endif\n#if CC_USE_SKINNING\n #if CC_USE_BAKED_ANIMATION\n uniform highp vec4 cc_jointTextureInfo;\n uniform highp vec4 cc_jointAnimInfo;\n uniform highp sampler2D cc_jointTexture;\n void CCGetJointTextureCoords(float pixelsPerJoint, float jointIdx, out highp float x, out highp float y, out highp float invSize)\n {\n #if USE_INSTANCING\n highp float temp = pixelsPerJoint * (a_jointAnimInfo.x * a_jointAnimInfo.y + jointIdx) + a_jointAnimInfo.z;\n #else\n highp float temp = pixelsPerJoint * (cc_jointAnimInfo.x * cc_jointTextureInfo.y + jointIdx) + cc_jointTextureInfo.z;\n #endif\n invSize = cc_jointTextureInfo.w;\n highp float tempY = floor(temp * invSize);\n x = floor(temp - tempY * cc_jointTextureInfo.x);\n y = (tempY + 0.5) * invSize;\n }\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n uniform highp sampler2D cc_realtimeJoint;\n #else\n uniform highp vec4 cc_joints[CC_JOINT_UNIFORM_CAPACITY * 3];\n #endif\n #endif\n #if CC_USE_BAKED_ANIMATION\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(3.0, i, x, y, invSize);\n vec4 v1 = texture2D(cc_jointTexture, vec2((x + 0.5) * invSize, y));\n vec4 v2 = texture2D(cc_jointTexture, vec2((x + 1.5) * invSize, y));\n vec4 v3 = texture2D(cc_jointTexture, vec2((x + 2.5) * invSize, y));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(12.0, i, x, y, invSize);\n vec4 v1 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 0.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 1.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 2.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 3.5) * invSize, y)))\n );\n vec4 v2 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 4.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 5.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 6.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 7.5) * invSize, y)))\n );\n vec4 v3 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 8.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 9.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 10.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 11.5) * invSize, y)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n float x = i;\n vec4 v1 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 0.5 / 3.0));\n vec4 v2 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 1.5 / 3.0));\n vec4 v3 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 2.5 / 3.0));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n float x = 4.0 * i;\n vec4 v1 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 0.5 / 3.0)))\n );\n vec4 v2 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 1.5 / 3.0)))\n );\n vec4 v3 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 2.5 / 3.0)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n mat4 getJointMatrix (float i) {\n int idx = int(i);\n vec4 v1 = cc_joints[idx * 3];\n vec4 v2 = cc_joints[idx * 3 + 1];\n vec4 v3 = cc_joints[idx * 3 + 2];\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #endif\n mat4 skinMatrix () {\n vec4 joints = vec4(a_joints);\n return getJointMatrix(joints.x) * a_weights.x\n + getJointMatrix(joints.y) * a_weights.y\n + getJointMatrix(joints.z) * a_weights.z\n + getJointMatrix(joints.w) * a_weights.w;\n }\n void CCSkin (inout vec4 position) {\n mat4 m = skinMatrix();\n position = m * position;\n }\n void CCSkin (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n mat4 m = skinMatrix();\n position = m * position;\n normal = (m * vec4(normal, 0.0)).xyz;\n tangent.xyz = (m * vec4(tangent.xyz, 0.0)).xyz;\n }\n#endif\nvoid CCVertInput(inout vec4 In)\n{\n In = vec4(a_position, 1.0);\n #if CC_USE_MORPH\n applyMorph(In);\n #endif\n #if CC_USE_SKINNING\n CCSkin(In);\n #endif\n}\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matProj;\n uniform highp vec4 cc_cameraPos;\n uniform mediump vec4 cc_mainLitDir;\n uniform mediump vec4 cc_nearFar;\n#if !USE_INSTANCING\n uniform highp mat4 cc_matWorld;\n uniform highp mat4 cc_matWorldIT;\n#endif\nvoid CCGetWorldMatrixFull(out mat4 matWorld, out mat4 matWorldIT)\n{\n #if USE_INSTANCING\n matWorld = mat4(\n vec4(a_matWorld0.xyz, 0.0),\n vec4(a_matWorld1.xyz, 0.0),\n vec4(a_matWorld2.xyz, 0.0),\n vec4(a_matWorld0.w, a_matWorld1.w, a_matWorld2.w, 1.0)\n );\n vec3 scale = 1.0 / vec3(length(a_matWorld0.xyz), length(a_matWorld1.xyz), length(a_matWorld2.xyz));\n vec3 scale2 = scale * scale;\n matWorldIT = mat4(\n vec4(a_matWorld0.xyz * scale2.x, 0.0),\n vec4(a_matWorld1.xyz * scale2.y, 0.0),\n vec4(a_matWorld2.xyz * scale2.z, 0.0),\n vec4(0.0, 0.0, 0.0, 1.0)\n );\n #else\n matWorld = cc_matWorld;\n matWorldIT = cc_matWorldIT;\n #endif\n}\nuniform mediump vec4 cc_shadowWHPBInfo;\n uniform mediump vec4 cc_planarNDInfo;\nvec4 CalculatePlanarShadowPos(vec3 meshWorldPos, vec3 cameraPos, vec3 lightDir, vec4 plane) {\n vec3 P = meshWorldPos;\n vec3 L = lightDir;\n vec3 N = plane.xyz;\n float d = plane.w + EPSILON_LOWP;\n float dist = (-d - dot(P, N)) / (dot(L, N) + EPSILON_LOWP);\n vec3 shadowPos = P + L * dist;\n return vec4(shadowPos, dist);\n}\nvec4 CalculatePlanarShadowClipPos(vec4 shadowPos, vec3 cameraPos, mat4 matView, mat4 matProj, vec4 nearFar, float bias) {\n vec4 camPos = matView * vec4(shadowPos.xyz, 1.0);\n float lerpCoef = saturate((nearFar.z < 0.0 ? -camPos.z : camPos.z) / (nearFar.y - nearFar.x));\n camPos.z += mix(nearFar.x * 0.01, nearFar.y * EPSILON_LOWP * bias, lerpCoef);\n return matProj * camPos;\n}\nvarying float v_dist;\nvec4 vert () {\n vec4 position;\n CCVertInput(position);\n mat4 matWorld, matWorldIT;\n CCGetWorldMatrixFull(matWorld, matWorldIT);\n vec3 worldPos = (matWorld * position).xyz;\n vec4 shadowPos = CalculatePlanarShadowPos(worldPos, cc_cameraPos.xyz, cc_mainLitDir.xyz, cc_planarNDInfo);\n position = CalculatePlanarShadowClipPos(shadowPos, cc_cameraPos.xyz, cc_matView, cc_matProj, cc_nearFar, cc_shadowWHPBInfo.w);\n v_dist = shadowPos.w;\n return position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nuniform lowp vec4 cc_shadowColor;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying float v_dist;\nvec4 frag () {\n if(v_dist < 0.0)\n discard;\n return CCFragOutput(cc_shadowColor);\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]},{"name":"CCShadow","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCMorph","defines":["CC_USE_MORPH"]},{"name":"CCSkinningTexture","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinningAnimation","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinning","defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","!CC_USE_REAL_TIME_JOINT_TEXTURE"]},{"name":"CCLocal","defines":["!USE_INSTANCING"]}],"samplerTextures":[{"name":"cc_PositionDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_POSITION"]},{"name":"cc_NormalDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_NORMAL"]},{"name":"cc_TangentDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_TANGENT"]},{"name":"cc_jointTexture","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"cc_realtimeJoint","defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","CC_USE_REAL_TIME_JOINT_TEXTURE"]}],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":90,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":58}},"defines":[{"name":"USE_INSTANCING","type":"boolean"},{"name":"CC_USE_SKINNING","type":"boolean"},{"name":"CC_USE_BAKED_ANIMATION","type":"boolean"},{"name":"CC_USE_LIGHTMAP","type":"boolean"},{"name":"CC_USE_REFLECTION_PROBE","type":"boolean"},{"name":"CC_RECEIVE_SHADOW","type":"boolean"},{"name":"CC_USE_LIGHT_PROBE","type":"boolean"},{"name":"CC_USE_MORPH","type":"boolean"},{"name":"CC_MORPH_TARGET_COUNT","type":"number","range":[2,8]},{"name":"CC_MORPH_TARGET_HAS_POSITION","type":"boolean"},{"name":"CC_MORPH_TARGET_HAS_NORMAL","type":"boolean"},{"name":"CC_MORPH_TARGET_HAS_TANGENT","type":"boolean"},{"name":"CC_MORPH_PRECOMPUTED","type":"boolean"},{"name":"CC_USE_REAL_TIME_JOINT_TEXTURE","type":"boolean"}]}],[{"passes":[{"phase":"planarShadow","program":"pipeline/planar-shadow|planar-shadow-vs:vert|planar-shadow-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false,"stencilTestFront":true,"stencilFuncFront":5,"stencilPassOpFront":2,"stencilRefBack":128,"stencilRefFront":128,"stencilReadMaskBack":128,"stencilReadMaskFront":128,"stencilWriteMaskBack":128,"stencilWriteMaskFront":128}}]}]]],0,0,[],[],[]],[[[0,"util/splash-screen",[{"hash":3189094080,"name":"util/splash-screen|splash-screen-vs:vert|splash-screen-fs:frag","blocks":[{"name":"Constant","stageFlags":1,"binding":0,"members":[{"name":"u_buffer0","type":16,"count":1},{"name":"u_buffer1","type":16,"count":1},{"name":"u_projection","type":25,"count":1}],"defines":[]},{"name":"Factor","stageFlags":16,"binding":1,"members":[{"name":"u_percent","type":13,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":21,"location":0,"defines":[]},{"name":"a_texCoord","format":21,"location":1,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constant","stageFlags":1,"binding":0,"members":[{"name":"u_buffer0","type":16,"count":1},{"name":"u_buffer1","type":16,"count":1},{"name":"u_projection","type":25,"count":1}],"defines":[]},{"name":"Factor","stageFlags":16,"binding":1,"members":[{"name":"u_percent","type":13,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nin vec2 a_position;\nin vec2 a_texCoord;\nout vec2 v_uv;\nlayout(std140) uniform Constant {\n vec4 u_buffer0;\n vec4 u_buffer1;\n mat4 u_projection;\n};\nvec4 vert () {\n vec2 worldPos = a_position * u_buffer1.xy + u_buffer1.zw;\n vec2 clipSpace = worldPos / u_buffer0.xy * 2.0 - 1.0;\n vec4 screenPos = u_projection * vec4(clipSpace, 0.0, 1.0);\n v_uv = a_texCoord;\n return screenPos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nin vec2 v_uv;\nlayout(std140) uniform Factor {\n float u_percent;\n};\nuniform sampler2D mainTexture;\nvec4 frag () {\n vec4 color = texture(mainTexture, v_uv);\n float percent = clamp(u_percent, 0.0, 1.0);\n color.xyz *= percent;\n return color;\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision mediump float;\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nvarying vec2 v_uv;\n uniform vec4 u_buffer0;\n uniform vec4 u_buffer1;\n uniform mat4 u_projection;\nvec4 vert () {\n vec2 worldPos = a_position * u_buffer1.xy + u_buffer1.zw;\n vec2 clipSpace = worldPos / u_buffer0.xy * 2.0 - 1.0;\n vec4 screenPos = u_projection * vec4(clipSpace, 0.0, 1.0);\n v_uv = a_texCoord;\n return screenPos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvarying vec2 v_uv;\n uniform float u_percent;\nuniform sampler2D mainTexture;\nvec4 frag () {\n vec4 color = texture2D(mainTexture, v_uv);\n float percent = clamp(u_percent, 0.0, 1.0);\n color.xyz *= percent;\n return color;\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":6,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":1}},"defines":[]}],[{"name":"default","passes":[{"program":"util/splash-screen|splash-screen-vs:vert|splash-screen-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":false,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"resolution":{"type":14,"value":[640,960],"handleInfo":["u_buffer0",0,14]},"percent":{"type":13,"value":[0.5],"handleInfo":["u_percent",0,13]},"scale":{"type":14,"value":[200,500],"handleInfo":["u_buffer1",0,14]},"translate":{"type":14,"value":[320,480],"handleInfo":["u_buffer1",2,14]},"u_buffer0":{"type":16,"value":[640,960,0,0]},"u_percent":{"type":13,"value":[0.5]},"u_buffer1":{"type":16,"value":[200,500,320,480]}}}]}]]],0,0,[],[],[]],[[[0,"particles/builtin-particle-gpu",[{"hash":2859307513,"name":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:add","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"SampleConstants","stageFlags":1,"binding":1,"members":[{"name":"u_sampleInfo","type":16,"count":1}],"defines":[]},{"name":"TickConstants","stageFlags":1,"binding":2,"members":[{"name":"u_worldRot","type":16,"count":1},{"name":"u_timeDelta","type":16,"count":1}],"defines":[]},{"name":"ColorConstant","stageFlags":1,"binding":3,"members":[{"name":"u_color_mode","type":5,"count":1}],"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"RotationConstant","stageFlags":1,"binding":4,"members":[{"name":"u_rotation_mode","type":5,"count":1}],"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"SizeConstant","stageFlags":1,"binding":5,"members":[{"name":"u_size_mode","type":5,"count":1}],"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"ForceConstant","stageFlags":1,"binding":6,"members":[{"name":"u_force_mode","type":5,"count":1},{"name":"u_force_space","type":5,"count":1}],"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"VelocityConstant","stageFlags":1,"binding":7,"members":[{"name":"u_velocity_mode","type":5,"count":1},{"name":"u_velocity_space","type":5,"count":1}],"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"AnimationConstant","stageFlags":1,"binding":8,"members":[{"name":"u_anim_info","type":16,"count":1}],"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"FragConstants","stageFlags":16,"binding":9,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"color_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":10,"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"rotation_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":11,"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"size_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":12,"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"force_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":13,"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"velocity_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":14,"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"texture_animation_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":15,"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":16,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position_starttime","format":44,"location":0,"defines":[]},{"name":"a_color","format":44,"location":1,"defines":[]},{"name":"a_dir_life","format":44,"location":2,"defines":[]},{"name":"a_rndSeed","format":11,"location":3,"defines":[]},{"name":"a_size_uv","format":44,"location":4,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_rotation_uv","format":44,"location":5,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_size_fid","format":44,"location":6,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_rotation","format":32,"location":7,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_uv","format":32,"location":8,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_texCoord","format":32,"location":9,"defines":["CC_RENDER_MODE"]},{"name":"a_texCoord3","format":32,"location":10,"defines":["CC_RENDER_MODE"]},{"name":"a_normal","format":32,"location":11,"defines":["CC_RENDER_MODE"]},{"name":"a_color1","format":44,"location":12,"defines":["CC_RENDER_MODE"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"SampleConstants","stageFlags":1,"binding":1,"members":[{"name":"u_sampleInfo","type":16,"count":1}],"defines":[]},{"name":"TickConstants","stageFlags":1,"binding":2,"members":[{"name":"u_worldRot","type":16,"count":1},{"name":"u_timeDelta","type":16,"count":1}],"defines":[]},{"name":"ColorConstant","stageFlags":1,"binding":3,"members":[{"name":"u_color_mode","type":5,"count":1}],"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"RotationConstant","stageFlags":1,"binding":4,"members":[{"name":"u_rotation_mode","type":5,"count":1}],"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"SizeConstant","stageFlags":1,"binding":5,"members":[{"name":"u_size_mode","type":5,"count":1}],"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"ForceConstant","stageFlags":1,"binding":6,"members":[{"name":"u_force_mode","type":5,"count":1},{"name":"u_force_space","type":5,"count":1}],"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"VelocityConstant","stageFlags":1,"binding":7,"members":[{"name":"u_velocity_mode","type":5,"count":1},{"name":"u_velocity_space","type":5,"count":1}],"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"AnimationConstant","stageFlags":1,"binding":8,"members":[{"name":"u_anim_info","type":16,"count":1}],"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"FragConstants","stageFlags":16,"binding":9,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"color_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":10,"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"rotation_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":11,"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"size_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":12,"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"force_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":13,"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"velocity_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":14,"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"texture_animation_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":15,"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":16,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nvec4 eulerToQuat(vec3 euler) {\n vec3 er = euler * 0.5;\n float x = er.x, y = er.y, z = er.z;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat;\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nlayout(std140) uniform SampleConstants {\n vec4 u_sampleInfo;\n};\nlayout(std140) uniform TickConstants {\n vec4 u_worldRot;\n vec4 u_timeDelta;\n};\nin vec4 a_position_starttime;\nin vec4 a_color;\nin vec4 a_dir_life;\nin float a_rndSeed;\n#if !CC_INSTANCE_PARTICLE\n in vec4 a_size_uv;\n in vec4 a_rotation_uv;\n#endif\n#if CC_INSTANCE_PARTICLE\n in vec4 a_size_fid;\n in vec3 a_rotation;\n in vec3 a_uv;\n#endif\n#if CC_RENDER_MODE == 4\n in vec3 a_texCoord;\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec3 unpackCurveData (sampler2D tex, vec2 coord) {\n vec4 a = texture(tex, coord);\n vec4 b = texture(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n return mix(a.xyz, b.xyz, c);\n}\nvec3 unpackCurveData (sampler2D tex, vec2 coord, out float w) {\n vec4 a = texture(tex, coord);\n vec4 b = texture(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n w = mix(a.w, b.w, c);\n return mix(a.xyz, b.xyz, c);\n}\nfloat pseudoRandom(float x) {\n#if USE_VK_SHADER\n float o = x;\n x = mod(x - 1.0, 2.0) - 1.0;\n float freqVar = 10.16640753482;\n float y = sin(freqVar * floor(o * 0.5 - 0.5));\n float v = max(0.0, 1.0-abs(x));\n v *= 0.7071067812;\n v = y < 0.0 ? -v : v;\n return v;\n#endif\n#if !USE_VK_SHADER\n float seed = mod(x, 233280.);\n float q = (seed * 9301. + 49297.) / 233280.;\n return fract(q);\n#endif\n}\n#if COLOR_OVER_TIME_MODULE_ENABLE\n uniform sampler2D color_over_time_tex0;\n layout(std140) uniform ColorConstant {\n int u_color_mode;\n };\n#endif\n#if ROTATION_OVER_TIME_MODULE_ENABLE\n uniform sampler2D rotation_over_time_tex0;\n layout(std140) uniform RotationConstant {\n int u_rotation_mode;\n };\n#endif\n#if SIZE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D size_over_time_tex0;\n layout(std140) uniform SizeConstant {\n int u_size_mode;\n };\n#endif\n#if FORCE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D force_over_time_tex0;\n layout(std140) uniform ForceConstant {\n int u_force_mode;\n int u_force_space;\n };\n#endif\n#if VELOCITY_OVER_TIME_MODULE_ENABLE\n uniform sampler2D velocity_over_time_tex0;\n layout(std140) uniform VelocityConstant {\n int u_velocity_mode;\n int u_velocity_space;\n };\n#endif\n#if TEXTURE_ANIMATION_MODULE_ENABLE\n uniform sampler2D texture_animation_tex0;\n layout(std140) uniform AnimationConstant {\n vec4 u_anim_info;\n };\n#endif\nfloat repeat (float t, float length) {\n return t - floor(t / length) * length;\n}\nvec4 rotateQuat (vec4 p, vec4 q) {\n vec3 iv = cross(q.xyz, p.xyz) + q.w * p.xyz;\n vec3 res = p.xyz + 2.0 * cross(q.xyz, iv);\n return vec4(res.xyz, p.w);\n}\nvec4 gpvs_main () {\n float activeTime = u_timeDelta.x - a_position_starttime.w;\n float normalizedTime = clamp(activeTime / a_dir_life.w, 0.0, 1.0);\n vec2 timeCoord0 = vec2(normalizedTime, 0.);\n vec2 timeCoord1 = vec2(normalizedTime, 1.);\n #if CC_RENDER_MODE == 4\n vec2 vertIdx = vec2(a_texCoord.x, a_texCoord.y);\n #endif\n #if CC_RENDER_MODE != 4\n #if !CC_INSTANCE_PARTICLE\n vec2 vertIdx = vec2(a_size_uv.w, a_rotation_uv.w);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec2 vertIdx = a_uv.xy;\n #endif\n #endif\n vec4 velocity = vec4(a_dir_life.xyz, 0.);\n vec4 pos = vec4(a_position_starttime.xyz, 1.);\n #if !CC_INSTANCE_PARTICLE\n vec3 size = a_size_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 size = a_size_fid.xyz;\n #endif\n #if SIZE_OVER_TIME_MODULE_ENABLE\n if (u_size_mode == 1) {\n size *= unpackCurveData(size_over_time_tex0, timeCoord0);\n } else {\n vec3 size_0 = unpackCurveData(size_over_time_tex0, timeCoord0);\n vec3 size_1 = unpackCurveData(size_over_time_tex0, timeCoord1);\n float factor_s = pseudoRandom(a_rndSeed + 39825.);\n size *= mix(size_0, size_1, factor_s);\n }\n #endif\n vec3 compScale = scale.xyz * size;\n #if FORCE_OVER_TIME_MODULE_ENABLE\n vec3 forceAnim = vec3(0.);\n if (u_force_mode == 1) {\n forceAnim = unpackCurveData(force_over_time_tex0, timeCoord0);\n } else {\n vec3 force_0 = unpackCurveData(force_over_time_tex0, timeCoord0);\n vec3 force_1 = unpackCurveData(force_over_time_tex0, timeCoord1);\n float factor_f = pseudoRandom(a_rndSeed + 212165.);\n forceAnim = mix(force_0, force_1, factor_f);\n }\n vec4 forceTrack = vec4(forceAnim, 0.);\n if (u_force_space == 0) {\n forceTrack = rotateQuat(forceTrack, u_worldRot);\n }\n velocity.xyz += forceTrack.xyz;\n #endif\n #if VELOCITY_OVER_TIME_MODULE_ENABLE\n float speedModifier0 = 1.;\n float speedModifier1 = 1.;\n vec3 velocityAnim = vec3(0.);\n if (u_velocity_mode == 1) {\n velocityAnim = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n } else {\n vec3 vectory_0 = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n vec3 vectory_1 = unpackCurveData(velocity_over_time_tex0, timeCoord1, speedModifier1);\n float factor_v = pseudoRandom(a_rndSeed + 197866.);\n velocityAnim = mix(vectory_0, vectory_1, factor_v);\n speedModifier0 = mix(speedModifier0, speedModifier1, factor_v);\n }\n vec4 velocityTrack = vec4(velocityAnim, 0.);\n if (u_velocity_space == 0) {\n velocityTrack = rotateQuat(velocityTrack, u_worldRot);\n }\n velocity.xyz += velocityTrack.xyz;\n velocity.xyz *= speedModifier0;\n #endif\n pos.xyz += velocity.xyz * normalizedTime * a_dir_life.w;\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = rotateQuat(velocity, u_worldRot);\n #endif\n #endif\n #if !CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation;\n #endif\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = startRotation.xyz;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., startRotation.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(startRotation);\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n if (u_rotation_mode == 1) {\n vec3 euler = unpackCurveData(rotation_over_time_tex0, timeCoord0) * normalizedTime * a_dir_life.w;\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n } else {\n vec3 rotation_0 = unpackCurveData(rotation_over_time_tex0, timeCoord0);\n vec3 rotation_1 = unpackCurveData(rotation_over_time_tex0, timeCoord1);\n float factor_r = pseudoRandom(a_rndSeed + 125292.);\n vec3 euler = mix(rotation_0, rotation_1, factor_r) * normalizedTime * a_dir_life.w;\n #if CC_RENDER_MODE == 3 || CC_RENDER_MODE == 2\n euler = vec3(0.0, 0.0, euler.z);\n #endif\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n }\n #endif\n #if COLOR_OVER_TIME_MODULE_ENABLE\n if (u_color_mode == 1) {\n color = a_color * texture(color_over_time_tex0, timeCoord0);\n } else {\n vec4 color_0 = texture(color_over_time_tex0, timeCoord0);\n vec4 color_1 = texture(color_over_time_tex0, timeCoord1);\n float factor_c = pseudoRandom(a_rndSeed + 91041.);\n color = a_color * mix(color_0, color_1, factor_c);\n }\n #endif\n #if !COLOR_OVER_TIME_MODULE_ENABLE\n color = a_color;\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((vertIdx - 0.5));\n #if CC_RENDER_MODE == 1\n rot = vec4(0.0, 0.0, 0.0, 1.0);\n #endif\n computeVertPos(pos, cornerOffset, rot, compScale\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , cc_matViewInv\n #endif\n #if CC_RENDER_MODE == 1\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n #if !CC_INSTANCE_PARTICLE\n , a_size_uv.w\n #endif\n #if CC_INSTANCE_PARTICLE\n , a_uv.x\n #endif\n #endif\n );\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color *= a_color1;\n #endif\n pos = cc_matViewProj * pos;\n float frameIndex = 0.;\n #if TEXTURE_ANIMATION_MODULE_ENABLE\n float startFrame = 0.;\n vec3 frameInfo = vec3(0.);\n if (int(u_anim_info.x) == 1) {\n frameInfo = unpackCurveData(texture_animation_tex0, timeCoord0);\n } else {\n vec3 frameInfo0 = unpackCurveData(texture_animation_tex0, timeCoord0);\n vec3 frameInfo1 = unpackCurveData(texture_animation_tex0, timeCoord1);\n float factor_t = pseudoRandom(a_rndSeed + 90794.);\n frameInfo = mix(frameInfo0, frameInfo1, factor_t);\n }\n startFrame = frameInfo.x / u_anim_info.y;\n float EPSILON = 1e-6;\n frameIndex = repeat(u_anim_info.z * (frameInfo.y + startFrame), 1. + EPSILON);\n #endif\n uv = computeUV(frameIndex, vertIdx, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n return pos;\n}\nvoid main() { gl_Position = gpvs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nlayout(std140) uniform FragConstants {\n vec4 tintColor;\n};\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture(mainTexture, uv);\n return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = add(); }"},"glsl1":{"vert":"\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nvec4 eulerToQuat(vec3 euler) {\n vec3 er = euler * 0.5;\n float x = er.x, y = er.y, z = er.z;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat;\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\n uniform vec4 mainTiling_Offset;\n uniform vec4 frameTile_velLenScale;\n uniform vec4 scale;\n uniform vec4 nodeRotation;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\n uniform vec4 u_sampleInfo;\n uniform vec4 u_worldRot;\n uniform vec4 u_timeDelta;\nattribute vec4 a_position_starttime;\nattribute vec4 a_color;\nattribute vec4 a_dir_life;\nattribute float a_rndSeed;\n#if !CC_INSTANCE_PARTICLE\n attribute vec4 a_size_uv;\n attribute vec4 a_rotation_uv;\n#endif\n#if CC_INSTANCE_PARTICLE\n attribute vec4 a_size_fid;\n attribute vec3 a_rotation;\n attribute vec3 a_uv;\n#endif\n#if CC_RENDER_MODE == 4\n attribute vec3 a_texCoord;\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec3 unpackCurveData (sampler2D tex, vec2 coord) {\n vec4 a = texture2D(tex, coord);\n vec4 b = texture2D(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n return mix(a.xyz, b.xyz, c);\n}\nvec3 unpackCurveData (sampler2D tex, vec2 coord, out float w) {\n vec4 a = texture2D(tex, coord);\n vec4 b = texture2D(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n w = mix(a.w, b.w, c);\n return mix(a.xyz, b.xyz, c);\n}\nfloat pseudoRandom(float x) {\n#if USE_VK_SHADER\n float o = x;\n x = mod(x - 1.0, 2.0) - 1.0;\n float freqVar = 10.16640753482;\n float y = sin(freqVar * floor(o * 0.5 - 0.5));\n float v = max(0.0, 1.0-abs(x));\n v *= 0.7071067812;\n v = y < 0.0 ? -v : v;\n return v;\n#endif\n#if !USE_VK_SHADER\n float seed = mod(x, 233280.);\n float q = (seed * 9301. + 49297.) / 233280.;\n return fract(q);\n#endif\n}\n#if COLOR_OVER_TIME_MODULE_ENABLE\n uniform sampler2D color_over_time_tex0;\n uniform int u_color_mode;\n#endif\n#if ROTATION_OVER_TIME_MODULE_ENABLE\n uniform sampler2D rotation_over_time_tex0;\n uniform int u_rotation_mode;\n#endif\n#if SIZE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D size_over_time_tex0;\n uniform int u_size_mode;\n#endif\n#if FORCE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D force_over_time_tex0;\n uniform int u_force_mode;\n uniform int u_force_space;\n#endif\n#if VELOCITY_OVER_TIME_MODULE_ENABLE\n uniform sampler2D velocity_over_time_tex0;\n uniform int u_velocity_mode;\n uniform int u_velocity_space;\n#endif\n#if TEXTURE_ANIMATION_MODULE_ENABLE\n uniform sampler2D texture_animation_tex0;\n uniform vec4 u_anim_info;\n#endif\nfloat repeat (float t, float length) {\n return t - floor(t / length) * length;\n}\nvec4 rotateQuat (vec4 p, vec4 q) {\n vec3 iv = cross(q.xyz, p.xyz) + q.w * p.xyz;\n vec3 res = p.xyz + 2.0 * cross(q.xyz, iv);\n return vec4(res.xyz, p.w);\n}\nvec4 gpvs_main () {\n float activeTime = u_timeDelta.x - a_position_starttime.w;\n float normalizedTime = clamp(activeTime / a_dir_life.w, 0.0, 1.0);\n vec2 timeCoord0 = vec2(normalizedTime, 0.);\n vec2 timeCoord1 = vec2(normalizedTime, 1.);\n #if CC_RENDER_MODE == 4\n vec2 vertIdx = vec2(a_texCoord.x, a_texCoord.y);\n #endif\n #if CC_RENDER_MODE != 4\n #if !CC_INSTANCE_PARTICLE\n vec2 vertIdx = vec2(a_size_uv.w, a_rotation_uv.w);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec2 vertIdx = a_uv.xy;\n #endif\n #endif\n vec4 velocity = vec4(a_dir_life.xyz, 0.);\n vec4 pos = vec4(a_position_starttime.xyz, 1.);\n #if !CC_INSTANCE_PARTICLE\n vec3 size = a_size_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 size = a_size_fid.xyz;\n #endif\n #if SIZE_OVER_TIME_MODULE_ENABLE\n if (u_size_mode == 1) {\n size *= unpackCurveData(size_over_time_tex0, timeCoord0);\n } else {\n vec3 size_0 = unpackCurveData(size_over_time_tex0, timeCoord0);\n vec3 size_1 = unpackCurveData(size_over_time_tex0, timeCoord1);\n float factor_s = pseudoRandom(a_rndSeed + 39825.);\n size *= mix(size_0, size_1, factor_s);\n }\n #endif\n vec3 compScale = scale.xyz * size;\n #if FORCE_OVER_TIME_MODULE_ENABLE\n vec3 forceAnim = vec3(0.);\n if (u_force_mode == 1) {\n forceAnim = unpackCurveData(force_over_time_tex0, timeCoord0);\n } else {\n vec3 force_0 = unpackCurveData(force_over_time_tex0, timeCoord0);\n vec3 force_1 = unpackCurveData(force_over_time_tex0, timeCoord1);\n float factor_f = pseudoRandom(a_rndSeed + 212165.);\n forceAnim = mix(force_0, force_1, factor_f);\n }\n vec4 forceTrack = vec4(forceAnim, 0.);\n if (u_force_space == 0) {\n forceTrack = rotateQuat(forceTrack, u_worldRot);\n }\n velocity.xyz += forceTrack.xyz;\n #endif\n #if VELOCITY_OVER_TIME_MODULE_ENABLE\n float speedModifier0 = 1.;\n float speedModifier1 = 1.;\n vec3 velocityAnim = vec3(0.);\n if (u_velocity_mode == 1) {\n velocityAnim = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n } else {\n vec3 vectory_0 = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n vec3 vectory_1 = unpackCurveData(velocity_over_time_tex0, timeCoord1, speedModifier1);\n float factor_v = pseudoRandom(a_rndSeed + 197866.);\n velocityAnim = mix(vectory_0, vectory_1, factor_v);\n speedModifier0 = mix(speedModifier0, speedModifier1, factor_v);\n }\n vec4 velocityTrack = vec4(velocityAnim, 0.);\n if (u_velocity_space == 0) {\n velocityTrack = rotateQuat(velocityTrack, u_worldRot);\n }\n velocity.xyz += velocityTrack.xyz;\n velocity.xyz *= speedModifier0;\n #endif\n pos.xyz += velocity.xyz * normalizedTime * a_dir_life.w;\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = rotateQuat(velocity, u_worldRot);\n #endif\n #endif\n #if !CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation;\n #endif\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = startRotation.xyz;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., startRotation.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(startRotation);\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n if (u_rotation_mode == 1) {\n vec3 euler = unpackCurveData(rotation_over_time_tex0, timeCoord0) * normalizedTime * a_dir_life.w;\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n } else {\n vec3 rotation_0 = unpackCurveData(rotation_over_time_tex0, timeCoord0);\n vec3 rotation_1 = unpackCurveData(rotation_over_time_tex0, timeCoord1);\n float factor_r = pseudoRandom(a_rndSeed + 125292.);\n vec3 euler = mix(rotation_0, rotation_1, factor_r) * normalizedTime * a_dir_life.w;\n #if CC_RENDER_MODE == 3 || CC_RENDER_MODE == 2\n euler = vec3(0.0, 0.0, euler.z);\n #endif\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n }\n #endif\n #if COLOR_OVER_TIME_MODULE_ENABLE\n if (u_color_mode == 1) {\n color = a_color * texture2D(color_over_time_tex0, timeCoord0);\n } else {\n vec4 color_0 = texture2D(color_over_time_tex0, timeCoord0);\n vec4 color_1 = texture2D(color_over_time_tex0, timeCoord1);\n float factor_c = pseudoRandom(a_rndSeed + 91041.);\n color = a_color * mix(color_0, color_1, factor_c);\n }\n #endif\n #if !COLOR_OVER_TIME_MODULE_ENABLE\n color = a_color;\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((vertIdx - 0.5));\n #if CC_RENDER_MODE == 1\n rot = vec4(0.0, 0.0, 0.0, 1.0);\n #endif\n computeVertPos(pos, cornerOffset, rot, compScale\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , cc_matViewInv\n #endif\n #if CC_RENDER_MODE == 1\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n #if !CC_INSTANCE_PARTICLE\n , a_size_uv.w\n #endif\n #if CC_INSTANCE_PARTICLE\n , a_uv.x\n #endif\n #endif\n );\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color *= a_color1;\n #endif\n pos = cc_matViewProj * pos;\n float frameIndex = 0.;\n #if TEXTURE_ANIMATION_MODULE_ENABLE\n float startFrame = 0.;\n vec3 frameInfo = vec3(0.);\n if (int(u_anim_info.x) == 1) {\n frameInfo = unpackCurveData(texture_animation_tex0, timeCoord0);\n } else {\n vec3 frameInfo0 = unpackCurveData(texture_animation_tex0, timeCoord0);\n vec3 frameInfo1 = unpackCurveData(texture_animation_tex0, timeCoord1);\n float factor_t = pseudoRandom(a_rndSeed + 90794.);\n frameInfo = mix(frameInfo0, frameInfo1, factor_t);\n }\n startFrame = frameInfo.x / u_anim_info.y;\n float EPSILON = 1e-6;\n frameIndex = repeat(u_anim_info.z * (frameInfo.y + startFrame), 1. + EPSILON);\n #endif\n uv = computeUV(frameIndex, vertIdx, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n return pos;\n}\nvoid main() { gl_Position = gpvs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\n uniform vec4 tintColor;\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture2D(mainTexture, uv);\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = add(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":71,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":43}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_INSTANCE_PARTICLE","type":"boolean"},{"name":"USE_VK_SHADER","type":"boolean"},{"name":"COLOR_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"ROTATION_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"SIZE_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"FORCE_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"VELOCITY_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"TEXTURE_ANIMATION_MODULE_ENABLE","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"}]},{"hash":2330235135,"name":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:multiply","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"SampleConstants","stageFlags":1,"binding":1,"members":[{"name":"u_sampleInfo","type":16,"count":1}],"defines":[]},{"name":"TickConstants","stageFlags":1,"binding":2,"members":[{"name":"u_worldRot","type":16,"count":1},{"name":"u_timeDelta","type":16,"count":1}],"defines":[]},{"name":"ColorConstant","stageFlags":1,"binding":3,"members":[{"name":"u_color_mode","type":5,"count":1}],"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"RotationConstant","stageFlags":1,"binding":4,"members":[{"name":"u_rotation_mode","type":5,"count":1}],"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"SizeConstant","stageFlags":1,"binding":5,"members":[{"name":"u_size_mode","type":5,"count":1}],"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"ForceConstant","stageFlags":1,"binding":6,"members":[{"name":"u_force_mode","type":5,"count":1},{"name":"u_force_space","type":5,"count":1}],"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"VelocityConstant","stageFlags":1,"binding":7,"members":[{"name":"u_velocity_mode","type":5,"count":1},{"name":"u_velocity_space","type":5,"count":1}],"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"AnimationConstant","stageFlags":1,"binding":8,"members":[{"name":"u_anim_info","type":16,"count":1}],"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"FragConstants","stageFlags":16,"binding":9,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"color_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":10,"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"rotation_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":11,"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"size_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":12,"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"force_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":13,"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"velocity_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":14,"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"texture_animation_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":15,"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":16,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position_starttime","format":44,"location":0,"defines":[]},{"name":"a_color","format":44,"location":1,"defines":[]},{"name":"a_dir_life","format":44,"location":2,"defines":[]},{"name":"a_rndSeed","format":11,"location":3,"defines":[]},{"name":"a_size_uv","format":44,"location":4,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_rotation_uv","format":44,"location":5,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_size_fid","format":44,"location":6,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_rotation","format":32,"location":7,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_uv","format":32,"location":8,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_texCoord","format":32,"location":9,"defines":["CC_RENDER_MODE"]},{"name":"a_texCoord3","format":32,"location":10,"defines":["CC_RENDER_MODE"]},{"name":"a_normal","format":32,"location":11,"defines":["CC_RENDER_MODE"]},{"name":"a_color1","format":44,"location":12,"defines":["CC_RENDER_MODE"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"SampleConstants","stageFlags":1,"binding":1,"members":[{"name":"u_sampleInfo","type":16,"count":1}],"defines":[]},{"name":"TickConstants","stageFlags":1,"binding":2,"members":[{"name":"u_worldRot","type":16,"count":1},{"name":"u_timeDelta","type":16,"count":1}],"defines":[]},{"name":"ColorConstant","stageFlags":1,"binding":3,"members":[{"name":"u_color_mode","type":5,"count":1}],"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"RotationConstant","stageFlags":1,"binding":4,"members":[{"name":"u_rotation_mode","type":5,"count":1}],"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"SizeConstant","stageFlags":1,"binding":5,"members":[{"name":"u_size_mode","type":5,"count":1}],"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"ForceConstant","stageFlags":1,"binding":6,"members":[{"name":"u_force_mode","type":5,"count":1},{"name":"u_force_space","type":5,"count":1}],"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"VelocityConstant","stageFlags":1,"binding":7,"members":[{"name":"u_velocity_mode","type":5,"count":1},{"name":"u_velocity_space","type":5,"count":1}],"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"AnimationConstant","stageFlags":1,"binding":8,"members":[{"name":"u_anim_info","type":16,"count":1}],"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"FragConstants","stageFlags":16,"binding":9,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"color_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":10,"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"rotation_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":11,"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"size_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":12,"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"force_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":13,"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"velocity_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":14,"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"texture_animation_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":15,"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":16,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nvec4 eulerToQuat(vec3 euler) {\n vec3 er = euler * 0.5;\n float x = er.x, y = er.y, z = er.z;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat;\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nlayout(std140) uniform SampleConstants {\n vec4 u_sampleInfo;\n};\nlayout(std140) uniform TickConstants {\n vec4 u_worldRot;\n vec4 u_timeDelta;\n};\nin vec4 a_position_starttime;\nin vec4 a_color;\nin vec4 a_dir_life;\nin float a_rndSeed;\n#if !CC_INSTANCE_PARTICLE\n in vec4 a_size_uv;\n in vec4 a_rotation_uv;\n#endif\n#if CC_INSTANCE_PARTICLE\n in vec4 a_size_fid;\n in vec3 a_rotation;\n in vec3 a_uv;\n#endif\n#if CC_RENDER_MODE == 4\n in vec3 a_texCoord;\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec3 unpackCurveData (sampler2D tex, vec2 coord) {\n vec4 a = texture(tex, coord);\n vec4 b = texture(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n return mix(a.xyz, b.xyz, c);\n}\nvec3 unpackCurveData (sampler2D tex, vec2 coord, out float w) {\n vec4 a = texture(tex, coord);\n vec4 b = texture(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n w = mix(a.w, b.w, c);\n return mix(a.xyz, b.xyz, c);\n}\nfloat pseudoRandom(float x) {\n#if USE_VK_SHADER\n float o = x;\n x = mod(x - 1.0, 2.0) - 1.0;\n float freqVar = 10.16640753482;\n float y = sin(freqVar * floor(o * 0.5 - 0.5));\n float v = max(0.0, 1.0-abs(x));\n v *= 0.7071067812;\n v = y < 0.0 ? -v : v;\n return v;\n#endif\n#if !USE_VK_SHADER\n float seed = mod(x, 233280.);\n float q = (seed * 9301. + 49297.) / 233280.;\n return fract(q);\n#endif\n}\n#if COLOR_OVER_TIME_MODULE_ENABLE\n uniform sampler2D color_over_time_tex0;\n layout(std140) uniform ColorConstant {\n int u_color_mode;\n };\n#endif\n#if ROTATION_OVER_TIME_MODULE_ENABLE\n uniform sampler2D rotation_over_time_tex0;\n layout(std140) uniform RotationConstant {\n int u_rotation_mode;\n };\n#endif\n#if SIZE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D size_over_time_tex0;\n layout(std140) uniform SizeConstant {\n int u_size_mode;\n };\n#endif\n#if FORCE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D force_over_time_tex0;\n layout(std140) uniform ForceConstant {\n int u_force_mode;\n int u_force_space;\n };\n#endif\n#if VELOCITY_OVER_TIME_MODULE_ENABLE\n uniform sampler2D velocity_over_time_tex0;\n layout(std140) uniform VelocityConstant {\n int u_velocity_mode;\n int u_velocity_space;\n };\n#endif\n#if TEXTURE_ANIMATION_MODULE_ENABLE\n uniform sampler2D texture_animation_tex0;\n layout(std140) uniform AnimationConstant {\n vec4 u_anim_info;\n };\n#endif\nfloat repeat (float t, float length) {\n return t - floor(t / length) * length;\n}\nvec4 rotateQuat (vec4 p, vec4 q) {\n vec3 iv = cross(q.xyz, p.xyz) + q.w * p.xyz;\n vec3 res = p.xyz + 2.0 * cross(q.xyz, iv);\n return vec4(res.xyz, p.w);\n}\nvec4 gpvs_main () {\n float activeTime = u_timeDelta.x - a_position_starttime.w;\n float normalizedTime = clamp(activeTime / a_dir_life.w, 0.0, 1.0);\n vec2 timeCoord0 = vec2(normalizedTime, 0.);\n vec2 timeCoord1 = vec2(normalizedTime, 1.);\n #if CC_RENDER_MODE == 4\n vec2 vertIdx = vec2(a_texCoord.x, a_texCoord.y);\n #endif\n #if CC_RENDER_MODE != 4\n #if !CC_INSTANCE_PARTICLE\n vec2 vertIdx = vec2(a_size_uv.w, a_rotation_uv.w);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec2 vertIdx = a_uv.xy;\n #endif\n #endif\n vec4 velocity = vec4(a_dir_life.xyz, 0.);\n vec4 pos = vec4(a_position_starttime.xyz, 1.);\n #if !CC_INSTANCE_PARTICLE\n vec3 size = a_size_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 size = a_size_fid.xyz;\n #endif\n #if SIZE_OVER_TIME_MODULE_ENABLE\n if (u_size_mode == 1) {\n size *= unpackCurveData(size_over_time_tex0, timeCoord0);\n } else {\n vec3 size_0 = unpackCurveData(size_over_time_tex0, timeCoord0);\n vec3 size_1 = unpackCurveData(size_over_time_tex0, timeCoord1);\n float factor_s = pseudoRandom(a_rndSeed + 39825.);\n size *= mix(size_0, size_1, factor_s);\n }\n #endif\n vec3 compScale = scale.xyz * size;\n #if FORCE_OVER_TIME_MODULE_ENABLE\n vec3 forceAnim = vec3(0.);\n if (u_force_mode == 1) {\n forceAnim = unpackCurveData(force_over_time_tex0, timeCoord0);\n } else {\n vec3 force_0 = unpackCurveData(force_over_time_tex0, timeCoord0);\n vec3 force_1 = unpackCurveData(force_over_time_tex0, timeCoord1);\n float factor_f = pseudoRandom(a_rndSeed + 212165.);\n forceAnim = mix(force_0, force_1, factor_f);\n }\n vec4 forceTrack = vec4(forceAnim, 0.);\n if (u_force_space == 0) {\n forceTrack = rotateQuat(forceTrack, u_worldRot);\n }\n velocity.xyz += forceTrack.xyz;\n #endif\n #if VELOCITY_OVER_TIME_MODULE_ENABLE\n float speedModifier0 = 1.;\n float speedModifier1 = 1.;\n vec3 velocityAnim = vec3(0.);\n if (u_velocity_mode == 1) {\n velocityAnim = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n } else {\n vec3 vectory_0 = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n vec3 vectory_1 = unpackCurveData(velocity_over_time_tex0, timeCoord1, speedModifier1);\n float factor_v = pseudoRandom(a_rndSeed + 197866.);\n velocityAnim = mix(vectory_0, vectory_1, factor_v);\n speedModifier0 = mix(speedModifier0, speedModifier1, factor_v);\n }\n vec4 velocityTrack = vec4(velocityAnim, 0.);\n if (u_velocity_space == 0) {\n velocityTrack = rotateQuat(velocityTrack, u_worldRot);\n }\n velocity.xyz += velocityTrack.xyz;\n velocity.xyz *= speedModifier0;\n #endif\n pos.xyz += velocity.xyz * normalizedTime * a_dir_life.w;\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = rotateQuat(velocity, u_worldRot);\n #endif\n #endif\n #if !CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation;\n #endif\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = startRotation.xyz;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., startRotation.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(startRotation);\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n if (u_rotation_mode == 1) {\n vec3 euler = unpackCurveData(rotation_over_time_tex0, timeCoord0) * normalizedTime * a_dir_life.w;\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n } else {\n vec3 rotation_0 = unpackCurveData(rotation_over_time_tex0, timeCoord0);\n vec3 rotation_1 = unpackCurveData(rotation_over_time_tex0, timeCoord1);\n float factor_r = pseudoRandom(a_rndSeed + 125292.);\n vec3 euler = mix(rotation_0, rotation_1, factor_r) * normalizedTime * a_dir_life.w;\n #if CC_RENDER_MODE == 3 || CC_RENDER_MODE == 2\n euler = vec3(0.0, 0.0, euler.z);\n #endif\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n }\n #endif\n #if COLOR_OVER_TIME_MODULE_ENABLE\n if (u_color_mode == 1) {\n color = a_color * texture(color_over_time_tex0, timeCoord0);\n } else {\n vec4 color_0 = texture(color_over_time_tex0, timeCoord0);\n vec4 color_1 = texture(color_over_time_tex0, timeCoord1);\n float factor_c = pseudoRandom(a_rndSeed + 91041.);\n color = a_color * mix(color_0, color_1, factor_c);\n }\n #endif\n #if !COLOR_OVER_TIME_MODULE_ENABLE\n color = a_color;\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((vertIdx - 0.5));\n #if CC_RENDER_MODE == 1\n rot = vec4(0.0, 0.0, 0.0, 1.0);\n #endif\n computeVertPos(pos, cornerOffset, rot, compScale\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , cc_matViewInv\n #endif\n #if CC_RENDER_MODE == 1\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n #if !CC_INSTANCE_PARTICLE\n , a_size_uv.w\n #endif\n #if CC_INSTANCE_PARTICLE\n , a_uv.x\n #endif\n #endif\n );\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color *= a_color1;\n #endif\n pos = cc_matViewProj * pos;\n float frameIndex = 0.;\n #if TEXTURE_ANIMATION_MODULE_ENABLE\n float startFrame = 0.;\n vec3 frameInfo = vec3(0.);\n if (int(u_anim_info.x) == 1) {\n frameInfo = unpackCurveData(texture_animation_tex0, timeCoord0);\n } else {\n vec3 frameInfo0 = unpackCurveData(texture_animation_tex0, timeCoord0);\n vec3 frameInfo1 = unpackCurveData(texture_animation_tex0, timeCoord1);\n float factor_t = pseudoRandom(a_rndSeed + 90794.);\n frameInfo = mix(frameInfo0, frameInfo1, factor_t);\n }\n startFrame = frameInfo.x / u_anim_info.y;\n float EPSILON = 1e-6;\n frameIndex = repeat(u_anim_info.z * (frameInfo.y + startFrame), 1. + EPSILON);\n #endif\n uv = computeUV(frameIndex, vertIdx, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n return pos;\n}\nvoid main() { gl_Position = gpvs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nlayout(std140) uniform 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 return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = multiply(); }"},"glsl1":{"vert":"\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nvec4 eulerToQuat(vec3 euler) {\n vec3 er = euler * 0.5;\n float x = er.x, y = er.y, z = er.z;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat;\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\n uniform vec4 mainTiling_Offset;\n uniform vec4 frameTile_velLenScale;\n uniform vec4 scale;\n uniform vec4 nodeRotation;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\n uniform vec4 u_sampleInfo;\n uniform vec4 u_worldRot;\n uniform vec4 u_timeDelta;\nattribute vec4 a_position_starttime;\nattribute vec4 a_color;\nattribute vec4 a_dir_life;\nattribute float a_rndSeed;\n#if !CC_INSTANCE_PARTICLE\n attribute vec4 a_size_uv;\n attribute vec4 a_rotation_uv;\n#endif\n#if CC_INSTANCE_PARTICLE\n attribute vec4 a_size_fid;\n attribute vec3 a_rotation;\n attribute vec3 a_uv;\n#endif\n#if CC_RENDER_MODE == 4\n attribute vec3 a_texCoord;\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec3 unpackCurveData (sampler2D tex, vec2 coord) {\n vec4 a = texture2D(tex, coord);\n vec4 b = texture2D(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n return mix(a.xyz, b.xyz, c);\n}\nvec3 unpackCurveData (sampler2D tex, vec2 coord, out float w) {\n vec4 a = texture2D(tex, coord);\n vec4 b = texture2D(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n w = mix(a.w, b.w, c);\n return mix(a.xyz, b.xyz, c);\n}\nfloat pseudoRandom(float x) {\n#if USE_VK_SHADER\n float o = x;\n x = mod(x - 1.0, 2.0) - 1.0;\n float freqVar = 10.16640753482;\n float y = sin(freqVar * floor(o * 0.5 - 0.5));\n float v = max(0.0, 1.0-abs(x));\n v *= 0.7071067812;\n v = y < 0.0 ? -v : v;\n return v;\n#endif\n#if !USE_VK_SHADER\n float seed = mod(x, 233280.);\n float q = (seed * 9301. + 49297.) / 233280.;\n return fract(q);\n#endif\n}\n#if COLOR_OVER_TIME_MODULE_ENABLE\n uniform sampler2D color_over_time_tex0;\n uniform int u_color_mode;\n#endif\n#if ROTATION_OVER_TIME_MODULE_ENABLE\n uniform sampler2D rotation_over_time_tex0;\n uniform int u_rotation_mode;\n#endif\n#if SIZE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D size_over_time_tex0;\n uniform int u_size_mode;\n#endif\n#if FORCE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D force_over_time_tex0;\n uniform int u_force_mode;\n uniform int u_force_space;\n#endif\n#if VELOCITY_OVER_TIME_MODULE_ENABLE\n uniform sampler2D velocity_over_time_tex0;\n uniform int u_velocity_mode;\n uniform int u_velocity_space;\n#endif\n#if TEXTURE_ANIMATION_MODULE_ENABLE\n uniform sampler2D texture_animation_tex0;\n uniform vec4 u_anim_info;\n#endif\nfloat repeat (float t, float length) {\n return t - floor(t / length) * length;\n}\nvec4 rotateQuat (vec4 p, vec4 q) {\n vec3 iv = cross(q.xyz, p.xyz) + q.w * p.xyz;\n vec3 res = p.xyz + 2.0 * cross(q.xyz, iv);\n return vec4(res.xyz, p.w);\n}\nvec4 gpvs_main () {\n float activeTime = u_timeDelta.x - a_position_starttime.w;\n float normalizedTime = clamp(activeTime / a_dir_life.w, 0.0, 1.0);\n vec2 timeCoord0 = vec2(normalizedTime, 0.);\n vec2 timeCoord1 = vec2(normalizedTime, 1.);\n #if CC_RENDER_MODE == 4\n vec2 vertIdx = vec2(a_texCoord.x, a_texCoord.y);\n #endif\n #if CC_RENDER_MODE != 4\n #if !CC_INSTANCE_PARTICLE\n vec2 vertIdx = vec2(a_size_uv.w, a_rotation_uv.w);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec2 vertIdx = a_uv.xy;\n #endif\n #endif\n vec4 velocity = vec4(a_dir_life.xyz, 0.);\n vec4 pos = vec4(a_position_starttime.xyz, 1.);\n #if !CC_INSTANCE_PARTICLE\n vec3 size = a_size_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 size = a_size_fid.xyz;\n #endif\n #if SIZE_OVER_TIME_MODULE_ENABLE\n if (u_size_mode == 1) {\n size *= unpackCurveData(size_over_time_tex0, timeCoord0);\n } else {\n vec3 size_0 = unpackCurveData(size_over_time_tex0, timeCoord0);\n vec3 size_1 = unpackCurveData(size_over_time_tex0, timeCoord1);\n float factor_s = pseudoRandom(a_rndSeed + 39825.);\n size *= mix(size_0, size_1, factor_s);\n }\n #endif\n vec3 compScale = scale.xyz * size;\n #if FORCE_OVER_TIME_MODULE_ENABLE\n vec3 forceAnim = vec3(0.);\n if (u_force_mode == 1) {\n forceAnim = unpackCurveData(force_over_time_tex0, timeCoord0);\n } else {\n vec3 force_0 = unpackCurveData(force_over_time_tex0, timeCoord0);\n vec3 force_1 = unpackCurveData(force_over_time_tex0, timeCoord1);\n float factor_f = pseudoRandom(a_rndSeed + 212165.);\n forceAnim = mix(force_0, force_1, factor_f);\n }\n vec4 forceTrack = vec4(forceAnim, 0.);\n if (u_force_space == 0) {\n forceTrack = rotateQuat(forceTrack, u_worldRot);\n }\n velocity.xyz += forceTrack.xyz;\n #endif\n #if VELOCITY_OVER_TIME_MODULE_ENABLE\n float speedModifier0 = 1.;\n float speedModifier1 = 1.;\n vec3 velocityAnim = vec3(0.);\n if (u_velocity_mode == 1) {\n velocityAnim = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n } else {\n vec3 vectory_0 = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n vec3 vectory_1 = unpackCurveData(velocity_over_time_tex0, timeCoord1, speedModifier1);\n float factor_v = pseudoRandom(a_rndSeed + 197866.);\n velocityAnim = mix(vectory_0, vectory_1, factor_v);\n speedModifier0 = mix(speedModifier0, speedModifier1, factor_v);\n }\n vec4 velocityTrack = vec4(velocityAnim, 0.);\n if (u_velocity_space == 0) {\n velocityTrack = rotateQuat(velocityTrack, u_worldRot);\n }\n velocity.xyz += velocityTrack.xyz;\n velocity.xyz *= speedModifier0;\n #endif\n pos.xyz += velocity.xyz * normalizedTime * a_dir_life.w;\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = rotateQuat(velocity, u_worldRot);\n #endif\n #endif\n #if !CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation;\n #endif\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = startRotation.xyz;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., startRotation.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(startRotation);\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n if (u_rotation_mode == 1) {\n vec3 euler = unpackCurveData(rotation_over_time_tex0, timeCoord0) * normalizedTime * a_dir_life.w;\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n } else {\n vec3 rotation_0 = unpackCurveData(rotation_over_time_tex0, timeCoord0);\n vec3 rotation_1 = unpackCurveData(rotation_over_time_tex0, timeCoord1);\n float factor_r = pseudoRandom(a_rndSeed + 125292.);\n vec3 euler = mix(rotation_0, rotation_1, factor_r) * normalizedTime * a_dir_life.w;\n #if CC_RENDER_MODE == 3 || CC_RENDER_MODE == 2\n euler = vec3(0.0, 0.0, euler.z);\n #endif\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n }\n #endif\n #if COLOR_OVER_TIME_MODULE_ENABLE\n if (u_color_mode == 1) {\n color = a_color * texture2D(color_over_time_tex0, timeCoord0);\n } else {\n vec4 color_0 = texture2D(color_over_time_tex0, timeCoord0);\n vec4 color_1 = texture2D(color_over_time_tex0, timeCoord1);\n float factor_c = pseudoRandom(a_rndSeed + 91041.);\n color = a_color * mix(color_0, color_1, factor_c);\n }\n #endif\n #if !COLOR_OVER_TIME_MODULE_ENABLE\n color = a_color;\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((vertIdx - 0.5));\n #if CC_RENDER_MODE == 1\n rot = vec4(0.0, 0.0, 0.0, 1.0);\n #endif\n computeVertPos(pos, cornerOffset, rot, compScale\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , cc_matViewInv\n #endif\n #if CC_RENDER_MODE == 1\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n #if !CC_INSTANCE_PARTICLE\n , a_size_uv.w\n #endif\n #if CC_INSTANCE_PARTICLE\n , a_uv.x\n #endif\n #endif\n );\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color *= a_color1;\n #endif\n pos = cc_matViewProj * pos;\n float frameIndex = 0.;\n #if TEXTURE_ANIMATION_MODULE_ENABLE\n float startFrame = 0.;\n vec3 frameInfo = vec3(0.);\n if (int(u_anim_info.x) == 1) {\n frameInfo = unpackCurveData(texture_animation_tex0, timeCoord0);\n } else {\n vec3 frameInfo0 = unpackCurveData(texture_animation_tex0, timeCoord0);\n vec3 frameInfo1 = unpackCurveData(texture_animation_tex0, timeCoord1);\n float factor_t = pseudoRandom(a_rndSeed + 90794.);\n frameInfo = mix(frameInfo0, frameInfo1, factor_t);\n }\n startFrame = frameInfo.x / u_anim_info.y;\n float EPSILON = 1e-6;\n frameIndex = repeat(u_anim_info.z * (frameInfo.y + startFrame), 1. + EPSILON);\n #endif\n uv = computeUV(frameIndex, vertIdx, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n return pos;\n}\nvoid main() { gl_Position = gpvs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\n uniform 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 return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = multiply(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":71,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":43}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_INSTANCE_PARTICLE","type":"boolean"},{"name":"USE_VK_SHADER","type":"boolean"},{"name":"COLOR_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"ROTATION_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"SIZE_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"FORCE_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"VELOCITY_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"TEXTURE_ANIMATION_MODULE_ENABLE","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"}]},{"hash":1067163463,"name":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:addSmooth","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"SampleConstants","stageFlags":1,"binding":1,"members":[{"name":"u_sampleInfo","type":16,"count":1}],"defines":[]},{"name":"TickConstants","stageFlags":1,"binding":2,"members":[{"name":"u_worldRot","type":16,"count":1},{"name":"u_timeDelta","type":16,"count":1}],"defines":[]},{"name":"ColorConstant","stageFlags":1,"binding":3,"members":[{"name":"u_color_mode","type":5,"count":1}],"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"RotationConstant","stageFlags":1,"binding":4,"members":[{"name":"u_rotation_mode","type":5,"count":1}],"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"SizeConstant","stageFlags":1,"binding":5,"members":[{"name":"u_size_mode","type":5,"count":1}],"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"ForceConstant","stageFlags":1,"binding":6,"members":[{"name":"u_force_mode","type":5,"count":1},{"name":"u_force_space","type":5,"count":1}],"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"VelocityConstant","stageFlags":1,"binding":7,"members":[{"name":"u_velocity_mode","type":5,"count":1},{"name":"u_velocity_space","type":5,"count":1}],"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"AnimationConstant","stageFlags":1,"binding":8,"members":[{"name":"u_anim_info","type":16,"count":1}],"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]}],"samplerTextures":[{"name":"color_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":9,"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"rotation_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":10,"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"size_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":11,"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"force_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":12,"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"velocity_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":13,"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"texture_animation_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":14,"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":15,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position_starttime","format":44,"location":0,"defines":[]},{"name":"a_color","format":44,"location":1,"defines":[]},{"name":"a_dir_life","format":44,"location":2,"defines":[]},{"name":"a_rndSeed","format":11,"location":3,"defines":[]},{"name":"a_size_uv","format":44,"location":4,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_rotation_uv","format":44,"location":5,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_size_fid","format":44,"location":6,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_rotation","format":32,"location":7,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_uv","format":32,"location":8,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_texCoord","format":32,"location":9,"defines":["CC_RENDER_MODE"]},{"name":"a_texCoord3","format":32,"location":10,"defines":["CC_RENDER_MODE"]},{"name":"a_normal","format":32,"location":11,"defines":["CC_RENDER_MODE"]},{"name":"a_color1","format":44,"location":12,"defines":["CC_RENDER_MODE"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"SampleConstants","stageFlags":1,"binding":1,"members":[{"name":"u_sampleInfo","type":16,"count":1}],"defines":[]},{"name":"TickConstants","stageFlags":1,"binding":2,"members":[{"name":"u_worldRot","type":16,"count":1},{"name":"u_timeDelta","type":16,"count":1}],"defines":[]},{"name":"ColorConstant","stageFlags":1,"binding":3,"members":[{"name":"u_color_mode","type":5,"count":1}],"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"RotationConstant","stageFlags":1,"binding":4,"members":[{"name":"u_rotation_mode","type":5,"count":1}],"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"SizeConstant","stageFlags":1,"binding":5,"members":[{"name":"u_size_mode","type":5,"count":1}],"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"ForceConstant","stageFlags":1,"binding":6,"members":[{"name":"u_force_mode","type":5,"count":1},{"name":"u_force_space","type":5,"count":1}],"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"VelocityConstant","stageFlags":1,"binding":7,"members":[{"name":"u_velocity_mode","type":5,"count":1},{"name":"u_velocity_space","type":5,"count":1}],"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"AnimationConstant","stageFlags":1,"binding":8,"members":[{"name":"u_anim_info","type":16,"count":1}],"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]}],"samplerTextures":[{"name":"color_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":9,"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"rotation_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":10,"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"size_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":11,"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"force_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":12,"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"velocity_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":13,"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"texture_animation_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":14,"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":15,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nvec4 eulerToQuat(vec3 euler) {\n vec3 er = euler * 0.5;\n float x = er.x, y = er.y, z = er.z;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat;\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nlayout(std140) uniform SampleConstants {\n vec4 u_sampleInfo;\n};\nlayout(std140) uniform TickConstants {\n vec4 u_worldRot;\n vec4 u_timeDelta;\n};\nin vec4 a_position_starttime;\nin vec4 a_color;\nin vec4 a_dir_life;\nin float a_rndSeed;\n#if !CC_INSTANCE_PARTICLE\n in vec4 a_size_uv;\n in vec4 a_rotation_uv;\n#endif\n#if CC_INSTANCE_PARTICLE\n in vec4 a_size_fid;\n in vec3 a_rotation;\n in vec3 a_uv;\n#endif\n#if CC_RENDER_MODE == 4\n in vec3 a_texCoord;\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec3 unpackCurveData (sampler2D tex, vec2 coord) {\n vec4 a = texture(tex, coord);\n vec4 b = texture(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n return mix(a.xyz, b.xyz, c);\n}\nvec3 unpackCurveData (sampler2D tex, vec2 coord, out float w) {\n vec4 a = texture(tex, coord);\n vec4 b = texture(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n w = mix(a.w, b.w, c);\n return mix(a.xyz, b.xyz, c);\n}\nfloat pseudoRandom(float x) {\n#if USE_VK_SHADER\n float o = x;\n x = mod(x - 1.0, 2.0) - 1.0;\n float freqVar = 10.16640753482;\n float y = sin(freqVar * floor(o * 0.5 - 0.5));\n float v = max(0.0, 1.0-abs(x));\n v *= 0.7071067812;\n v = y < 0.0 ? -v : v;\n return v;\n#endif\n#if !USE_VK_SHADER\n float seed = mod(x, 233280.);\n float q = (seed * 9301. + 49297.) / 233280.;\n return fract(q);\n#endif\n}\n#if COLOR_OVER_TIME_MODULE_ENABLE\n uniform sampler2D color_over_time_tex0;\n layout(std140) uniform ColorConstant {\n int u_color_mode;\n };\n#endif\n#if ROTATION_OVER_TIME_MODULE_ENABLE\n uniform sampler2D rotation_over_time_tex0;\n layout(std140) uniform RotationConstant {\n int u_rotation_mode;\n };\n#endif\n#if SIZE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D size_over_time_tex0;\n layout(std140) uniform SizeConstant {\n int u_size_mode;\n };\n#endif\n#if FORCE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D force_over_time_tex0;\n layout(std140) uniform ForceConstant {\n int u_force_mode;\n int u_force_space;\n };\n#endif\n#if VELOCITY_OVER_TIME_MODULE_ENABLE\n uniform sampler2D velocity_over_time_tex0;\n layout(std140) uniform VelocityConstant {\n int u_velocity_mode;\n int u_velocity_space;\n };\n#endif\n#if TEXTURE_ANIMATION_MODULE_ENABLE\n uniform sampler2D texture_animation_tex0;\n layout(std140) uniform AnimationConstant {\n vec4 u_anim_info;\n };\n#endif\nfloat repeat (float t, float length) {\n return t - floor(t / length) * length;\n}\nvec4 rotateQuat (vec4 p, vec4 q) {\n vec3 iv = cross(q.xyz, p.xyz) + q.w * p.xyz;\n vec3 res = p.xyz + 2.0 * cross(q.xyz, iv);\n return vec4(res.xyz, p.w);\n}\nvec4 gpvs_main () {\n float activeTime = u_timeDelta.x - a_position_starttime.w;\n float normalizedTime = clamp(activeTime / a_dir_life.w, 0.0, 1.0);\n vec2 timeCoord0 = vec2(normalizedTime, 0.);\n vec2 timeCoord1 = vec2(normalizedTime, 1.);\n #if CC_RENDER_MODE == 4\n vec2 vertIdx = vec2(a_texCoord.x, a_texCoord.y);\n #endif\n #if CC_RENDER_MODE != 4\n #if !CC_INSTANCE_PARTICLE\n vec2 vertIdx = vec2(a_size_uv.w, a_rotation_uv.w);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec2 vertIdx = a_uv.xy;\n #endif\n #endif\n vec4 velocity = vec4(a_dir_life.xyz, 0.);\n vec4 pos = vec4(a_position_starttime.xyz, 1.);\n #if !CC_INSTANCE_PARTICLE\n vec3 size = a_size_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 size = a_size_fid.xyz;\n #endif\n #if SIZE_OVER_TIME_MODULE_ENABLE\n if (u_size_mode == 1) {\n size *= unpackCurveData(size_over_time_tex0, timeCoord0);\n } else {\n vec3 size_0 = unpackCurveData(size_over_time_tex0, timeCoord0);\n vec3 size_1 = unpackCurveData(size_over_time_tex0, timeCoord1);\n float factor_s = pseudoRandom(a_rndSeed + 39825.);\n size *= mix(size_0, size_1, factor_s);\n }\n #endif\n vec3 compScale = scale.xyz * size;\n #if FORCE_OVER_TIME_MODULE_ENABLE\n vec3 forceAnim = vec3(0.);\n if (u_force_mode == 1) {\n forceAnim = unpackCurveData(force_over_time_tex0, timeCoord0);\n } else {\n vec3 force_0 = unpackCurveData(force_over_time_tex0, timeCoord0);\n vec3 force_1 = unpackCurveData(force_over_time_tex0, timeCoord1);\n float factor_f = pseudoRandom(a_rndSeed + 212165.);\n forceAnim = mix(force_0, force_1, factor_f);\n }\n vec4 forceTrack = vec4(forceAnim, 0.);\n if (u_force_space == 0) {\n forceTrack = rotateQuat(forceTrack, u_worldRot);\n }\n velocity.xyz += forceTrack.xyz;\n #endif\n #if VELOCITY_OVER_TIME_MODULE_ENABLE\n float speedModifier0 = 1.;\n float speedModifier1 = 1.;\n vec3 velocityAnim = vec3(0.);\n if (u_velocity_mode == 1) {\n velocityAnim = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n } else {\n vec3 vectory_0 = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n vec3 vectory_1 = unpackCurveData(velocity_over_time_tex0, timeCoord1, speedModifier1);\n float factor_v = pseudoRandom(a_rndSeed + 197866.);\n velocityAnim = mix(vectory_0, vectory_1, factor_v);\n speedModifier0 = mix(speedModifier0, speedModifier1, factor_v);\n }\n vec4 velocityTrack = vec4(velocityAnim, 0.);\n if (u_velocity_space == 0) {\n velocityTrack = rotateQuat(velocityTrack, u_worldRot);\n }\n velocity.xyz += velocityTrack.xyz;\n velocity.xyz *= speedModifier0;\n #endif\n pos.xyz += velocity.xyz * normalizedTime * a_dir_life.w;\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = rotateQuat(velocity, u_worldRot);\n #endif\n #endif\n #if !CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation;\n #endif\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = startRotation.xyz;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., startRotation.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(startRotation);\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n if (u_rotation_mode == 1) {\n vec3 euler = unpackCurveData(rotation_over_time_tex0, timeCoord0) * normalizedTime * a_dir_life.w;\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n } else {\n vec3 rotation_0 = unpackCurveData(rotation_over_time_tex0, timeCoord0);\n vec3 rotation_1 = unpackCurveData(rotation_over_time_tex0, timeCoord1);\n float factor_r = pseudoRandom(a_rndSeed + 125292.);\n vec3 euler = mix(rotation_0, rotation_1, factor_r) * normalizedTime * a_dir_life.w;\n #if CC_RENDER_MODE == 3 || CC_RENDER_MODE == 2\n euler = vec3(0.0, 0.0, euler.z);\n #endif\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n }\n #endif\n #if COLOR_OVER_TIME_MODULE_ENABLE\n if (u_color_mode == 1) {\n color = a_color * texture(color_over_time_tex0, timeCoord0);\n } else {\n vec4 color_0 = texture(color_over_time_tex0, timeCoord0);\n vec4 color_1 = texture(color_over_time_tex0, timeCoord1);\n float factor_c = pseudoRandom(a_rndSeed + 91041.);\n color = a_color * mix(color_0, color_1, factor_c);\n }\n #endif\n #if !COLOR_OVER_TIME_MODULE_ENABLE\n color = a_color;\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((vertIdx - 0.5));\n #if CC_RENDER_MODE == 1\n rot = vec4(0.0, 0.0, 0.0, 1.0);\n #endif\n computeVertPos(pos, cornerOffset, rot, compScale\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , cc_matViewInv\n #endif\n #if CC_RENDER_MODE == 1\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n #if !CC_INSTANCE_PARTICLE\n , a_size_uv.w\n #endif\n #if CC_INSTANCE_PARTICLE\n , a_uv.x\n #endif\n #endif\n );\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color *= a_color1;\n #endif\n pos = cc_matViewProj * pos;\n float frameIndex = 0.;\n #if TEXTURE_ANIMATION_MODULE_ENABLE\n float startFrame = 0.;\n vec3 frameInfo = vec3(0.);\n if (int(u_anim_info.x) == 1) {\n frameInfo = unpackCurveData(texture_animation_tex0, timeCoord0);\n } else {\n vec3 frameInfo0 = unpackCurveData(texture_animation_tex0, timeCoord0);\n vec3 frameInfo1 = unpackCurveData(texture_animation_tex0, timeCoord1);\n float factor_t = pseudoRandom(a_rndSeed + 90794.);\n frameInfo = mix(frameInfo0, frameInfo1, factor_t);\n }\n startFrame = frameInfo.x / u_anim_info.y;\n float EPSILON = 1e-6;\n frameIndex = repeat(u_anim_info.z * (frameInfo.y + startFrame), 1. + EPSILON);\n #endif\n uv = computeUV(frameIndex, vertIdx, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n return pos;\n}\nvoid main() { gl_Position = gpvs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return 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}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = addSmooth(); }"},"glsl1":{"vert":"\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nvec4 eulerToQuat(vec3 euler) {\n vec3 er = euler * 0.5;\n float x = er.x, y = er.y, z = er.z;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat;\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\n uniform vec4 mainTiling_Offset;\n uniform vec4 frameTile_velLenScale;\n uniform vec4 scale;\n uniform vec4 nodeRotation;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\n uniform vec4 u_sampleInfo;\n uniform vec4 u_worldRot;\n uniform vec4 u_timeDelta;\nattribute vec4 a_position_starttime;\nattribute vec4 a_color;\nattribute vec4 a_dir_life;\nattribute float a_rndSeed;\n#if !CC_INSTANCE_PARTICLE\n attribute vec4 a_size_uv;\n attribute vec4 a_rotation_uv;\n#endif\n#if CC_INSTANCE_PARTICLE\n attribute vec4 a_size_fid;\n attribute vec3 a_rotation;\n attribute vec3 a_uv;\n#endif\n#if CC_RENDER_MODE == 4\n attribute vec3 a_texCoord;\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec3 unpackCurveData (sampler2D tex, vec2 coord) {\n vec4 a = texture2D(tex, coord);\n vec4 b = texture2D(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n return mix(a.xyz, b.xyz, c);\n}\nvec3 unpackCurveData (sampler2D tex, vec2 coord, out float w) {\n vec4 a = texture2D(tex, coord);\n vec4 b = texture2D(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n w = mix(a.w, b.w, c);\n return mix(a.xyz, b.xyz, c);\n}\nfloat pseudoRandom(float x) {\n#if USE_VK_SHADER\n float o = x;\n x = mod(x - 1.0, 2.0) - 1.0;\n float freqVar = 10.16640753482;\n float y = sin(freqVar * floor(o * 0.5 - 0.5));\n float v = max(0.0, 1.0-abs(x));\n v *= 0.7071067812;\n v = y < 0.0 ? -v : v;\n return v;\n#endif\n#if !USE_VK_SHADER\n float seed = mod(x, 233280.);\n float q = (seed * 9301. + 49297.) / 233280.;\n return fract(q);\n#endif\n}\n#if COLOR_OVER_TIME_MODULE_ENABLE\n uniform sampler2D color_over_time_tex0;\n uniform int u_color_mode;\n#endif\n#if ROTATION_OVER_TIME_MODULE_ENABLE\n uniform sampler2D rotation_over_time_tex0;\n uniform int u_rotation_mode;\n#endif\n#if SIZE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D size_over_time_tex0;\n uniform int u_size_mode;\n#endif\n#if FORCE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D force_over_time_tex0;\n uniform int u_force_mode;\n uniform int u_force_space;\n#endif\n#if VELOCITY_OVER_TIME_MODULE_ENABLE\n uniform sampler2D velocity_over_time_tex0;\n uniform int u_velocity_mode;\n uniform int u_velocity_space;\n#endif\n#if TEXTURE_ANIMATION_MODULE_ENABLE\n uniform sampler2D texture_animation_tex0;\n uniform vec4 u_anim_info;\n#endif\nfloat repeat (float t, float length) {\n return t - floor(t / length) * length;\n}\nvec4 rotateQuat (vec4 p, vec4 q) {\n vec3 iv = cross(q.xyz, p.xyz) + q.w * p.xyz;\n vec3 res = p.xyz + 2.0 * cross(q.xyz, iv);\n return vec4(res.xyz, p.w);\n}\nvec4 gpvs_main () {\n float activeTime = u_timeDelta.x - a_position_starttime.w;\n float normalizedTime = clamp(activeTime / a_dir_life.w, 0.0, 1.0);\n vec2 timeCoord0 = vec2(normalizedTime, 0.);\n vec2 timeCoord1 = vec2(normalizedTime, 1.);\n #if CC_RENDER_MODE == 4\n vec2 vertIdx = vec2(a_texCoord.x, a_texCoord.y);\n #endif\n #if CC_RENDER_MODE != 4\n #if !CC_INSTANCE_PARTICLE\n vec2 vertIdx = vec2(a_size_uv.w, a_rotation_uv.w);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec2 vertIdx = a_uv.xy;\n #endif\n #endif\n vec4 velocity = vec4(a_dir_life.xyz, 0.);\n vec4 pos = vec4(a_position_starttime.xyz, 1.);\n #if !CC_INSTANCE_PARTICLE\n vec3 size = a_size_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 size = a_size_fid.xyz;\n #endif\n #if SIZE_OVER_TIME_MODULE_ENABLE\n if (u_size_mode == 1) {\n size *= unpackCurveData(size_over_time_tex0, timeCoord0);\n } else {\n vec3 size_0 = unpackCurveData(size_over_time_tex0, timeCoord0);\n vec3 size_1 = unpackCurveData(size_over_time_tex0, timeCoord1);\n float factor_s = pseudoRandom(a_rndSeed + 39825.);\n size *= mix(size_0, size_1, factor_s);\n }\n #endif\n vec3 compScale = scale.xyz * size;\n #if FORCE_OVER_TIME_MODULE_ENABLE\n vec3 forceAnim = vec3(0.);\n if (u_force_mode == 1) {\n forceAnim = unpackCurveData(force_over_time_tex0, timeCoord0);\n } else {\n vec3 force_0 = unpackCurveData(force_over_time_tex0, timeCoord0);\n vec3 force_1 = unpackCurveData(force_over_time_tex0, timeCoord1);\n float factor_f = pseudoRandom(a_rndSeed + 212165.);\n forceAnim = mix(force_0, force_1, factor_f);\n }\n vec4 forceTrack = vec4(forceAnim, 0.);\n if (u_force_space == 0) {\n forceTrack = rotateQuat(forceTrack, u_worldRot);\n }\n velocity.xyz += forceTrack.xyz;\n #endif\n #if VELOCITY_OVER_TIME_MODULE_ENABLE\n float speedModifier0 = 1.;\n float speedModifier1 = 1.;\n vec3 velocityAnim = vec3(0.);\n if (u_velocity_mode == 1) {\n velocityAnim = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n } else {\n vec3 vectory_0 = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n vec3 vectory_1 = unpackCurveData(velocity_over_time_tex0, timeCoord1, speedModifier1);\n float factor_v = pseudoRandom(a_rndSeed + 197866.);\n velocityAnim = mix(vectory_0, vectory_1, factor_v);\n speedModifier0 = mix(speedModifier0, speedModifier1, factor_v);\n }\n vec4 velocityTrack = vec4(velocityAnim, 0.);\n if (u_velocity_space == 0) {\n velocityTrack = rotateQuat(velocityTrack, u_worldRot);\n }\n velocity.xyz += velocityTrack.xyz;\n velocity.xyz *= speedModifier0;\n #endif\n pos.xyz += velocity.xyz * normalizedTime * a_dir_life.w;\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = rotateQuat(velocity, u_worldRot);\n #endif\n #endif\n #if !CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation;\n #endif\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = startRotation.xyz;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., startRotation.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(startRotation);\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n if (u_rotation_mode == 1) {\n vec3 euler = unpackCurveData(rotation_over_time_tex0, timeCoord0) * normalizedTime * a_dir_life.w;\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n } else {\n vec3 rotation_0 = unpackCurveData(rotation_over_time_tex0, timeCoord0);\n vec3 rotation_1 = unpackCurveData(rotation_over_time_tex0, timeCoord1);\n float factor_r = pseudoRandom(a_rndSeed + 125292.);\n vec3 euler = mix(rotation_0, rotation_1, factor_r) * normalizedTime * a_dir_life.w;\n #if CC_RENDER_MODE == 3 || CC_RENDER_MODE == 2\n euler = vec3(0.0, 0.0, euler.z);\n #endif\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n }\n #endif\n #if COLOR_OVER_TIME_MODULE_ENABLE\n if (u_color_mode == 1) {\n color = a_color * texture2D(color_over_time_tex0, timeCoord0);\n } else {\n vec4 color_0 = texture2D(color_over_time_tex0, timeCoord0);\n vec4 color_1 = texture2D(color_over_time_tex0, timeCoord1);\n float factor_c = pseudoRandom(a_rndSeed + 91041.);\n color = a_color * mix(color_0, color_1, factor_c);\n }\n #endif\n #if !COLOR_OVER_TIME_MODULE_ENABLE\n color = a_color;\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((vertIdx - 0.5));\n #if CC_RENDER_MODE == 1\n rot = vec4(0.0, 0.0, 0.0, 1.0);\n #endif\n computeVertPos(pos, cornerOffset, rot, compScale\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , cc_matViewInv\n #endif\n #if CC_RENDER_MODE == 1\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n #if !CC_INSTANCE_PARTICLE\n , a_size_uv.w\n #endif\n #if CC_INSTANCE_PARTICLE\n , a_uv.x\n #endif\n #endif\n );\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color *= a_color1;\n #endif\n pos = cc_matViewProj * pos;\n float frameIndex = 0.;\n #if TEXTURE_ANIMATION_MODULE_ENABLE\n float startFrame = 0.;\n vec3 frameInfo = vec3(0.);\n if (int(u_anim_info.x) == 1) {\n frameInfo = unpackCurveData(texture_animation_tex0, timeCoord0);\n } else {\n vec3 frameInfo0 = unpackCurveData(texture_animation_tex0, timeCoord0);\n vec3 frameInfo1 = unpackCurveData(texture_animation_tex0, timeCoord1);\n float factor_t = pseudoRandom(a_rndSeed + 90794.);\n frameInfo = mix(frameInfo0, frameInfo1, factor_t);\n }\n startFrame = frameInfo.x / u_anim_info.y;\n float EPSILON = 1e-6;\n frameIndex = repeat(u_anim_info.z * (frameInfo.y + startFrame), 1. + EPSILON);\n #endif\n uv = computeUV(frameIndex, vertIdx, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n return pos;\n}\nvoid main() { gl_Position = gpvs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return 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":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":71,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_INSTANCE_PARTICLE","type":"boolean"},{"name":"USE_VK_SHADER","type":"boolean"},{"name":"COLOR_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"ROTATION_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"SIZE_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"FORCE_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"VELOCITY_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"TEXTURE_ANIMATION_MODULE_ENABLE","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"}]},{"hash":3967087977,"name":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:premultiplied","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"SampleConstants","stageFlags":1,"binding":1,"members":[{"name":"u_sampleInfo","type":16,"count":1}],"defines":[]},{"name":"TickConstants","stageFlags":1,"binding":2,"members":[{"name":"u_worldRot","type":16,"count":1},{"name":"u_timeDelta","type":16,"count":1}],"defines":[]},{"name":"ColorConstant","stageFlags":1,"binding":3,"members":[{"name":"u_color_mode","type":5,"count":1}],"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"RotationConstant","stageFlags":1,"binding":4,"members":[{"name":"u_rotation_mode","type":5,"count":1}],"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"SizeConstant","stageFlags":1,"binding":5,"members":[{"name":"u_size_mode","type":5,"count":1}],"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"ForceConstant","stageFlags":1,"binding":6,"members":[{"name":"u_force_mode","type":5,"count":1},{"name":"u_force_space","type":5,"count":1}],"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"VelocityConstant","stageFlags":1,"binding":7,"members":[{"name":"u_velocity_mode","type":5,"count":1},{"name":"u_velocity_space","type":5,"count":1}],"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"AnimationConstant","stageFlags":1,"binding":8,"members":[{"name":"u_anim_info","type":16,"count":1}],"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]}],"samplerTextures":[{"name":"color_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":9,"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"rotation_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":10,"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"size_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":11,"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"force_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":12,"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"velocity_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":13,"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"texture_animation_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":14,"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":15,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position_starttime","format":44,"location":0,"defines":[]},{"name":"a_color","format":44,"location":1,"defines":[]},{"name":"a_dir_life","format":44,"location":2,"defines":[]},{"name":"a_rndSeed","format":11,"location":3,"defines":[]},{"name":"a_size_uv","format":44,"location":4,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_rotation_uv","format":44,"location":5,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_size_fid","format":44,"location":6,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_rotation","format":32,"location":7,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_uv","format":32,"location":8,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_texCoord","format":32,"location":9,"defines":["CC_RENDER_MODE"]},{"name":"a_texCoord3","format":32,"location":10,"defines":["CC_RENDER_MODE"]},{"name":"a_normal","format":32,"location":11,"defines":["CC_RENDER_MODE"]},{"name":"a_color1","format":44,"location":12,"defines":["CC_RENDER_MODE"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"SampleConstants","stageFlags":1,"binding":1,"members":[{"name":"u_sampleInfo","type":16,"count":1}],"defines":[]},{"name":"TickConstants","stageFlags":1,"binding":2,"members":[{"name":"u_worldRot","type":16,"count":1},{"name":"u_timeDelta","type":16,"count":1}],"defines":[]},{"name":"ColorConstant","stageFlags":1,"binding":3,"members":[{"name":"u_color_mode","type":5,"count":1}],"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"RotationConstant","stageFlags":1,"binding":4,"members":[{"name":"u_rotation_mode","type":5,"count":1}],"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"SizeConstant","stageFlags":1,"binding":5,"members":[{"name":"u_size_mode","type":5,"count":1}],"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"ForceConstant","stageFlags":1,"binding":6,"members":[{"name":"u_force_mode","type":5,"count":1},{"name":"u_force_space","type":5,"count":1}],"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"VelocityConstant","stageFlags":1,"binding":7,"members":[{"name":"u_velocity_mode","type":5,"count":1},{"name":"u_velocity_space","type":5,"count":1}],"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"AnimationConstant","stageFlags":1,"binding":8,"members":[{"name":"u_anim_info","type":16,"count":1}],"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]}],"samplerTextures":[{"name":"color_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":9,"defines":["COLOR_OVER_TIME_MODULE_ENABLE"]},{"name":"rotation_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":10,"defines":["ROTATION_OVER_TIME_MODULE_ENABLE"]},{"name":"size_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":11,"defines":["SIZE_OVER_TIME_MODULE_ENABLE"]},{"name":"force_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":12,"defines":["FORCE_OVER_TIME_MODULE_ENABLE"]},{"name":"velocity_over_time_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":13,"defines":["VELOCITY_OVER_TIME_MODULE_ENABLE"]},{"name":"texture_animation_tex0","type":28,"count":1,"stageFlags":1,"sampleType":0,"binding":14,"defines":["TEXTURE_ANIMATION_MODULE_ENABLE"]},{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":15,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nvec4 eulerToQuat(vec3 euler) {\n vec3 er = euler * 0.5;\n float x = er.x, y = er.y, z = er.z;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat;\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nlayout(std140) uniform SampleConstants {\n vec4 u_sampleInfo;\n};\nlayout(std140) uniform TickConstants {\n vec4 u_worldRot;\n vec4 u_timeDelta;\n};\nin vec4 a_position_starttime;\nin vec4 a_color;\nin vec4 a_dir_life;\nin float a_rndSeed;\n#if !CC_INSTANCE_PARTICLE\n in vec4 a_size_uv;\n in vec4 a_rotation_uv;\n#endif\n#if CC_INSTANCE_PARTICLE\n in vec4 a_size_fid;\n in vec3 a_rotation;\n in vec3 a_uv;\n#endif\n#if CC_RENDER_MODE == 4\n in vec3 a_texCoord;\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec3 unpackCurveData (sampler2D tex, vec2 coord) {\n vec4 a = texture(tex, coord);\n vec4 b = texture(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n return mix(a.xyz, b.xyz, c);\n}\nvec3 unpackCurveData (sampler2D tex, vec2 coord, out float w) {\n vec4 a = texture(tex, coord);\n vec4 b = texture(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n w = mix(a.w, b.w, c);\n return mix(a.xyz, b.xyz, c);\n}\nfloat pseudoRandom(float x) {\n#if USE_VK_SHADER\n float o = x;\n x = mod(x - 1.0, 2.0) - 1.0;\n float freqVar = 10.16640753482;\n float y = sin(freqVar * floor(o * 0.5 - 0.5));\n float v = max(0.0, 1.0-abs(x));\n v *= 0.7071067812;\n v = y < 0.0 ? -v : v;\n return v;\n#endif\n#if !USE_VK_SHADER\n float seed = mod(x, 233280.);\n float q = (seed * 9301. + 49297.) / 233280.;\n return fract(q);\n#endif\n}\n#if COLOR_OVER_TIME_MODULE_ENABLE\n uniform sampler2D color_over_time_tex0;\n layout(std140) uniform ColorConstant {\n int u_color_mode;\n };\n#endif\n#if ROTATION_OVER_TIME_MODULE_ENABLE\n uniform sampler2D rotation_over_time_tex0;\n layout(std140) uniform RotationConstant {\n int u_rotation_mode;\n };\n#endif\n#if SIZE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D size_over_time_tex0;\n layout(std140) uniform SizeConstant {\n int u_size_mode;\n };\n#endif\n#if FORCE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D force_over_time_tex0;\n layout(std140) uniform ForceConstant {\n int u_force_mode;\n int u_force_space;\n };\n#endif\n#if VELOCITY_OVER_TIME_MODULE_ENABLE\n uniform sampler2D velocity_over_time_tex0;\n layout(std140) uniform VelocityConstant {\n int u_velocity_mode;\n int u_velocity_space;\n };\n#endif\n#if TEXTURE_ANIMATION_MODULE_ENABLE\n uniform sampler2D texture_animation_tex0;\n layout(std140) uniform AnimationConstant {\n vec4 u_anim_info;\n };\n#endif\nfloat repeat (float t, float length) {\n return t - floor(t / length) * length;\n}\nvec4 rotateQuat (vec4 p, vec4 q) {\n vec3 iv = cross(q.xyz, p.xyz) + q.w * p.xyz;\n vec3 res = p.xyz + 2.0 * cross(q.xyz, iv);\n return vec4(res.xyz, p.w);\n}\nvec4 gpvs_main () {\n float activeTime = u_timeDelta.x - a_position_starttime.w;\n float normalizedTime = clamp(activeTime / a_dir_life.w, 0.0, 1.0);\n vec2 timeCoord0 = vec2(normalizedTime, 0.);\n vec2 timeCoord1 = vec2(normalizedTime, 1.);\n #if CC_RENDER_MODE == 4\n vec2 vertIdx = vec2(a_texCoord.x, a_texCoord.y);\n #endif\n #if CC_RENDER_MODE != 4\n #if !CC_INSTANCE_PARTICLE\n vec2 vertIdx = vec2(a_size_uv.w, a_rotation_uv.w);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec2 vertIdx = a_uv.xy;\n #endif\n #endif\n vec4 velocity = vec4(a_dir_life.xyz, 0.);\n vec4 pos = vec4(a_position_starttime.xyz, 1.);\n #if !CC_INSTANCE_PARTICLE\n vec3 size = a_size_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 size = a_size_fid.xyz;\n #endif\n #if SIZE_OVER_TIME_MODULE_ENABLE\n if (u_size_mode == 1) {\n size *= unpackCurveData(size_over_time_tex0, timeCoord0);\n } else {\n vec3 size_0 = unpackCurveData(size_over_time_tex0, timeCoord0);\n vec3 size_1 = unpackCurveData(size_over_time_tex0, timeCoord1);\n float factor_s = pseudoRandom(a_rndSeed + 39825.);\n size *= mix(size_0, size_1, factor_s);\n }\n #endif\n vec3 compScale = scale.xyz * size;\n #if FORCE_OVER_TIME_MODULE_ENABLE\n vec3 forceAnim = vec3(0.);\n if (u_force_mode == 1) {\n forceAnim = unpackCurveData(force_over_time_tex0, timeCoord0);\n } else {\n vec3 force_0 = unpackCurveData(force_over_time_tex0, timeCoord0);\n vec3 force_1 = unpackCurveData(force_over_time_tex0, timeCoord1);\n float factor_f = pseudoRandom(a_rndSeed + 212165.);\n forceAnim = mix(force_0, force_1, factor_f);\n }\n vec4 forceTrack = vec4(forceAnim, 0.);\n if (u_force_space == 0) {\n forceTrack = rotateQuat(forceTrack, u_worldRot);\n }\n velocity.xyz += forceTrack.xyz;\n #endif\n #if VELOCITY_OVER_TIME_MODULE_ENABLE\n float speedModifier0 = 1.;\n float speedModifier1 = 1.;\n vec3 velocityAnim = vec3(0.);\n if (u_velocity_mode == 1) {\n velocityAnim = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n } else {\n vec3 vectory_0 = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n vec3 vectory_1 = unpackCurveData(velocity_over_time_tex0, timeCoord1, speedModifier1);\n float factor_v = pseudoRandom(a_rndSeed + 197866.);\n velocityAnim = mix(vectory_0, vectory_1, factor_v);\n speedModifier0 = mix(speedModifier0, speedModifier1, factor_v);\n }\n vec4 velocityTrack = vec4(velocityAnim, 0.);\n if (u_velocity_space == 0) {\n velocityTrack = rotateQuat(velocityTrack, u_worldRot);\n }\n velocity.xyz += velocityTrack.xyz;\n velocity.xyz *= speedModifier0;\n #endif\n pos.xyz += velocity.xyz * normalizedTime * a_dir_life.w;\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = rotateQuat(velocity, u_worldRot);\n #endif\n #endif\n #if !CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation;\n #endif\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = startRotation.xyz;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., startRotation.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(startRotation);\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n if (u_rotation_mode == 1) {\n vec3 euler = unpackCurveData(rotation_over_time_tex0, timeCoord0) * normalizedTime * a_dir_life.w;\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n } else {\n vec3 rotation_0 = unpackCurveData(rotation_over_time_tex0, timeCoord0);\n vec3 rotation_1 = unpackCurveData(rotation_over_time_tex0, timeCoord1);\n float factor_r = pseudoRandom(a_rndSeed + 125292.);\n vec3 euler = mix(rotation_0, rotation_1, factor_r) * normalizedTime * a_dir_life.w;\n #if CC_RENDER_MODE == 3 || CC_RENDER_MODE == 2\n euler = vec3(0.0, 0.0, euler.z);\n #endif\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n }\n #endif\n #if COLOR_OVER_TIME_MODULE_ENABLE\n if (u_color_mode == 1) {\n color = a_color * texture(color_over_time_tex0, timeCoord0);\n } else {\n vec4 color_0 = texture(color_over_time_tex0, timeCoord0);\n vec4 color_1 = texture(color_over_time_tex0, timeCoord1);\n float factor_c = pseudoRandom(a_rndSeed + 91041.);\n color = a_color * mix(color_0, color_1, factor_c);\n }\n #endif\n #if !COLOR_OVER_TIME_MODULE_ENABLE\n color = a_color;\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((vertIdx - 0.5));\n #if CC_RENDER_MODE == 1\n rot = vec4(0.0, 0.0, 0.0, 1.0);\n #endif\n computeVertPos(pos, cornerOffset, rot, compScale\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , cc_matViewInv\n #endif\n #if CC_RENDER_MODE == 1\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n #if !CC_INSTANCE_PARTICLE\n , a_size_uv.w\n #endif\n #if CC_INSTANCE_PARTICLE\n , a_uv.x\n #endif\n #endif\n );\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color *= a_color1;\n #endif\n pos = cc_matViewProj * pos;\n float frameIndex = 0.;\n #if TEXTURE_ANIMATION_MODULE_ENABLE\n float startFrame = 0.;\n vec3 frameInfo = vec3(0.);\n if (int(u_anim_info.x) == 1) {\n frameInfo = unpackCurveData(texture_animation_tex0, timeCoord0);\n } else {\n vec3 frameInfo0 = unpackCurveData(texture_animation_tex0, timeCoord0);\n vec3 frameInfo1 = unpackCurveData(texture_animation_tex0, timeCoord1);\n float factor_t = pseudoRandom(a_rndSeed + 90794.);\n frameInfo = mix(frameInfo0, frameInfo1, factor_t);\n }\n startFrame = frameInfo.x / u_anim_info.y;\n float EPSILON = 1e-6;\n frameIndex = repeat(u_anim_info.z * (frameInfo.y + startFrame), 1. + EPSILON);\n #endif\n uv = computeUV(frameIndex, vertIdx, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n return pos;\n}\nvoid main() { gl_Position = gpvs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return 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}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = premultiplied(); }"},"glsl1":{"vert":"\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nvec4 eulerToQuat(vec3 euler) {\n vec3 er = euler * 0.5;\n float x = er.x, y = er.y, z = er.z;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat;\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\n uniform vec4 mainTiling_Offset;\n uniform vec4 frameTile_velLenScale;\n uniform vec4 scale;\n uniform vec4 nodeRotation;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\n uniform vec4 u_sampleInfo;\n uniform vec4 u_worldRot;\n uniform vec4 u_timeDelta;\nattribute vec4 a_position_starttime;\nattribute vec4 a_color;\nattribute vec4 a_dir_life;\nattribute float a_rndSeed;\n#if !CC_INSTANCE_PARTICLE\n attribute vec4 a_size_uv;\n attribute vec4 a_rotation_uv;\n#endif\n#if CC_INSTANCE_PARTICLE\n attribute vec4 a_size_fid;\n attribute vec3 a_rotation;\n attribute vec3 a_uv;\n#endif\n#if CC_RENDER_MODE == 4\n attribute vec3 a_texCoord;\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec3 unpackCurveData (sampler2D tex, vec2 coord) {\n vec4 a = texture2D(tex, coord);\n vec4 b = texture2D(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n return mix(a.xyz, b.xyz, c);\n}\nvec3 unpackCurveData (sampler2D tex, vec2 coord, out float w) {\n vec4 a = texture2D(tex, coord);\n vec4 b = texture2D(tex, coord + u_sampleInfo.y);\n float c = fract(coord.x * u_sampleInfo.x);\n w = mix(a.w, b.w, c);\n return mix(a.xyz, b.xyz, c);\n}\nfloat pseudoRandom(float x) {\n#if USE_VK_SHADER\n float o = x;\n x = mod(x - 1.0, 2.0) - 1.0;\n float freqVar = 10.16640753482;\n float y = sin(freqVar * floor(o * 0.5 - 0.5));\n float v = max(0.0, 1.0-abs(x));\n v *= 0.7071067812;\n v = y < 0.0 ? -v : v;\n return v;\n#endif\n#if !USE_VK_SHADER\n float seed = mod(x, 233280.);\n float q = (seed * 9301. + 49297.) / 233280.;\n return fract(q);\n#endif\n}\n#if COLOR_OVER_TIME_MODULE_ENABLE\n uniform sampler2D color_over_time_tex0;\n uniform int u_color_mode;\n#endif\n#if ROTATION_OVER_TIME_MODULE_ENABLE\n uniform sampler2D rotation_over_time_tex0;\n uniform int u_rotation_mode;\n#endif\n#if SIZE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D size_over_time_tex0;\n uniform int u_size_mode;\n#endif\n#if FORCE_OVER_TIME_MODULE_ENABLE\n uniform sampler2D force_over_time_tex0;\n uniform int u_force_mode;\n uniform int u_force_space;\n#endif\n#if VELOCITY_OVER_TIME_MODULE_ENABLE\n uniform sampler2D velocity_over_time_tex0;\n uniform int u_velocity_mode;\n uniform int u_velocity_space;\n#endif\n#if TEXTURE_ANIMATION_MODULE_ENABLE\n uniform sampler2D texture_animation_tex0;\n uniform vec4 u_anim_info;\n#endif\nfloat repeat (float t, float length) {\n return t - floor(t / length) * length;\n}\nvec4 rotateQuat (vec4 p, vec4 q) {\n vec3 iv = cross(q.xyz, p.xyz) + q.w * p.xyz;\n vec3 res = p.xyz + 2.0 * cross(q.xyz, iv);\n return vec4(res.xyz, p.w);\n}\nvec4 gpvs_main () {\n float activeTime = u_timeDelta.x - a_position_starttime.w;\n float normalizedTime = clamp(activeTime / a_dir_life.w, 0.0, 1.0);\n vec2 timeCoord0 = vec2(normalizedTime, 0.);\n vec2 timeCoord1 = vec2(normalizedTime, 1.);\n #if CC_RENDER_MODE == 4\n vec2 vertIdx = vec2(a_texCoord.x, a_texCoord.y);\n #endif\n #if CC_RENDER_MODE != 4\n #if !CC_INSTANCE_PARTICLE\n vec2 vertIdx = vec2(a_size_uv.w, a_rotation_uv.w);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec2 vertIdx = a_uv.xy;\n #endif\n #endif\n vec4 velocity = vec4(a_dir_life.xyz, 0.);\n vec4 pos = vec4(a_position_starttime.xyz, 1.);\n #if !CC_INSTANCE_PARTICLE\n vec3 size = a_size_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 size = a_size_fid.xyz;\n #endif\n #if SIZE_OVER_TIME_MODULE_ENABLE\n if (u_size_mode == 1) {\n size *= unpackCurveData(size_over_time_tex0, timeCoord0);\n } else {\n vec3 size_0 = unpackCurveData(size_over_time_tex0, timeCoord0);\n vec3 size_1 = unpackCurveData(size_over_time_tex0, timeCoord1);\n float factor_s = pseudoRandom(a_rndSeed + 39825.);\n size *= mix(size_0, size_1, factor_s);\n }\n #endif\n vec3 compScale = scale.xyz * size;\n #if FORCE_OVER_TIME_MODULE_ENABLE\n vec3 forceAnim = vec3(0.);\n if (u_force_mode == 1) {\n forceAnim = unpackCurveData(force_over_time_tex0, timeCoord0);\n } else {\n vec3 force_0 = unpackCurveData(force_over_time_tex0, timeCoord0);\n vec3 force_1 = unpackCurveData(force_over_time_tex0, timeCoord1);\n float factor_f = pseudoRandom(a_rndSeed + 212165.);\n forceAnim = mix(force_0, force_1, factor_f);\n }\n vec4 forceTrack = vec4(forceAnim, 0.);\n if (u_force_space == 0) {\n forceTrack = rotateQuat(forceTrack, u_worldRot);\n }\n velocity.xyz += forceTrack.xyz;\n #endif\n #if VELOCITY_OVER_TIME_MODULE_ENABLE\n float speedModifier0 = 1.;\n float speedModifier1 = 1.;\n vec3 velocityAnim = vec3(0.);\n if (u_velocity_mode == 1) {\n velocityAnim = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n } else {\n vec3 vectory_0 = unpackCurveData(velocity_over_time_tex0, timeCoord0, speedModifier0);\n vec3 vectory_1 = unpackCurveData(velocity_over_time_tex0, timeCoord1, speedModifier1);\n float factor_v = pseudoRandom(a_rndSeed + 197866.);\n velocityAnim = mix(vectory_0, vectory_1, factor_v);\n speedModifier0 = mix(speedModifier0, speedModifier1, factor_v);\n }\n vec4 velocityTrack = vec4(velocityAnim, 0.);\n if (u_velocity_space == 0) {\n velocityTrack = rotateQuat(velocityTrack, u_worldRot);\n }\n velocity.xyz += velocityTrack.xyz;\n velocity.xyz *= speedModifier0;\n #endif\n pos.xyz += velocity.xyz * normalizedTime * a_dir_life.w;\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = rotateQuat(velocity, u_worldRot);\n #endif\n #endif\n #if !CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation_uv.xyz;\n #endif\n #if CC_INSTANCE_PARTICLE\n vec3 startRotation = a_rotation;\n #endif\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = startRotation.xyz;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., startRotation.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(startRotation);\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n if (u_rotation_mode == 1) {\n vec3 euler = unpackCurveData(rotation_over_time_tex0, timeCoord0) * normalizedTime * a_dir_life.w;\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n } else {\n vec3 rotation_0 = unpackCurveData(rotation_over_time_tex0, timeCoord0);\n vec3 rotation_1 = unpackCurveData(rotation_over_time_tex0, timeCoord1);\n float factor_r = pseudoRandom(a_rndSeed + 125292.);\n vec3 euler = mix(rotation_0, rotation_1, factor_r) * normalizedTime * a_dir_life.w;\n #if CC_RENDER_MODE == 3 || CC_RENDER_MODE == 2\n euler = vec3(0.0, 0.0, euler.z);\n #endif\n vec4 quat = eulerToQuat(euler);\n mat3 mLocal = quatToMat3(quat);\n mat3 mStart = quatToMat3(rot);\n rot = mat3ToQuat(mStart * mLocal);\n }\n #endif\n #if COLOR_OVER_TIME_MODULE_ENABLE\n if (u_color_mode == 1) {\n color = a_color * texture2D(color_over_time_tex0, timeCoord0);\n } else {\n vec4 color_0 = texture2D(color_over_time_tex0, timeCoord0);\n vec4 color_1 = texture2D(color_over_time_tex0, timeCoord1);\n float factor_c = pseudoRandom(a_rndSeed + 91041.);\n color = a_color * mix(color_0, color_1, factor_c);\n }\n #endif\n #if !COLOR_OVER_TIME_MODULE_ENABLE\n color = a_color;\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((vertIdx - 0.5));\n #if CC_RENDER_MODE == 1\n rot = vec4(0.0, 0.0, 0.0, 1.0);\n #endif\n computeVertPos(pos, cornerOffset, rot, compScale\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , cc_matViewInv\n #endif\n #if CC_RENDER_MODE == 1\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n #if !CC_INSTANCE_PARTICLE\n , a_size_uv.w\n #endif\n #if CC_INSTANCE_PARTICLE\n , a_uv.x\n #endif\n #endif\n );\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color *= a_color1;\n #endif\n pos = cc_matViewProj * pos;\n float frameIndex = 0.;\n #if TEXTURE_ANIMATION_MODULE_ENABLE\n float startFrame = 0.;\n vec3 frameInfo = vec3(0.);\n if (int(u_anim_info.x) == 1) {\n frameInfo = unpackCurveData(texture_animation_tex0, timeCoord0);\n } else {\n vec3 frameInfo0 = unpackCurveData(texture_animation_tex0, timeCoord0);\n vec3 frameInfo1 = unpackCurveData(texture_animation_tex0, timeCoord1);\n float factor_t = pseudoRandom(a_rndSeed + 90794.);\n frameInfo = mix(frameInfo0, frameInfo1, factor_t);\n }\n startFrame = frameInfo.x / u_anim_info.y;\n float EPSILON = 1e-6;\n frameIndex = repeat(u_anim_info.z * (frameInfo.y + startFrame), 1. + EPSILON);\n #endif\n uv = computeUV(frameIndex, vertIdx, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n return pos;\n}\nvoid main() { gl_Position = gpvs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return 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":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":71,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_INSTANCE_PARTICLE","type":"boolean"},{"name":"USE_VK_SHADER","type":"boolean"},{"name":"COLOR_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"ROTATION_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"SIZE_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"FORCE_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"VELOCITY_OVER_TIME_MODULE_ENABLE","type":"boolean"},{"name":"TEXTURE_ANIMATION_MODULE_ENABLE","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"}]}],[{"name":"add","passes":[{"program":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"alpha-blend","passes":[{"program":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":0,"blendDstAlpha":1,"blendAlphaEq":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":0,"blendDstAlpha":1,"blendAlphaEq":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"add-multiply","passes":[{"program":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:multiply","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":7,"blendDst":1,"blendSrcAlpha":0,"blendDstAlpha":3}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:multiply","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":7,"blendDst":1,"blendSrcAlpha":0,"blendDstAlpha":3}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"add-smooth","passes":[{"program":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:addSmooth","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:addSmooth","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"premultiply-blend","passes":[{"program":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:premultiplied","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":0,"blendDstAlpha":1,"blendAlphaEq":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:premultiplied","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":0,"blendDstAlpha":1,"blendAlphaEq":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[0,"builtin-unlit",[{"hash":340555192,"name":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","blocks":[{"name":"TexCoords","stageFlags":1,"binding":0,"members":[{"name":"tilingOffset","type":16,"count":1}],"defines":["USE_TEXTURE"]},{"name":"Constant","stageFlags":16,"binding":1,"members":[{"name":"mainColor","type":16,"count":1},{"name":"colorScaleAndCutoff","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":["USE_TEXTURE"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_normal","format":32,"location":1,"defines":[]},{"name":"a_texCoord","format":21,"location":2,"defines":[]},{"name":"a_tangent","format":44,"location":3,"defines":[]},{"name":"a_joints","location":4,"defines":["CC_USE_SKINNING"]},{"name":"a_weights","format":44,"location":5,"defines":["CC_USE_SKINNING"]},{"name":"a_jointAnimInfo","format":44,"isInstanced":true,"location":6,"defines":["USE_INSTANCING","CC_USE_BAKED_ANIMATION"]},{"name":"a_matWorld0","format":44,"isInstanced":true,"location":7,"defines":["USE_INSTANCING"]},{"name":"a_matWorld1","format":44,"isInstanced":true,"location":8,"defines":["USE_INSTANCING"]},{"name":"a_matWorld2","format":44,"isInstanced":true,"location":9,"defines":["USE_INSTANCING"]},{"name":"a_lightingMapUVParam","format":44,"isInstanced":true,"location":10,"defines":["USE_INSTANCING","CC_USE_LIGHTMAP"]},{"name":"a_localShadowBiasAndProbeId","format":44,"isInstanced":true,"location":11,"defines":["USE_INSTANCING"]},{"name":"a_reflectionProbeData","format":44,"isInstanced":true,"location":12,"defines":["USE_INSTANCING","CC_USE_REFLECTION_PROBE"]},{"name":"a_sh_linear_const_r","format":44,"isInstanced":true,"location":13,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_g","format":44,"isInstanced":true,"location":14,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_b","format":44,"isInstanced":true,"location":15,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_vertexId","format":11,"location":16,"defines":["CC_USE_MORPH"]},{"name":"a_color","format":44,"location":17,"defines":["USE_VERTEX_COLOR"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCMorph","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_displacementWeights","typename":"vec4","type":16,"count":15,"isArray":true},{"name":"cc_displacementTextureInfo","typename":"vec4","type":16,"count":1}],"defines":["CC_USE_MORPH"]},{"name":"CCSkinningTexture","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_jointTextureInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinningAnimation","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_jointAnimInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinning","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_joints","typename":"vec4","type":16,"count":0,"precision":"highp ","isArray":true}],"defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","!CC_USE_REAL_TIME_JOINT_TEXTURE"]},{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["!USE_INSTANCING"]}],"samplerTextures":[{"name":"cc_PositionDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_POSITION"]},{"name":"cc_NormalDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_NORMAL"]},{"name":"cc_TangentDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_TANGENT"]},{"name":"cc_jointTexture","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"cc_realtimeJoint","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","CC_USE_REAL_TIME_JOINT_TEXTURE"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"TexCoords","stageFlags":1,"binding":0,"members":[{"name":"tilingOffset","type":16,"count":1}],"defines":["USE_TEXTURE"]},{"name":"Constant","stageFlags":16,"binding":1,"members":[{"name":"mainColor","type":16,"count":1},{"name":"colorScaleAndCutoff","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":["USE_TEXTURE"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\nin vec4 a_tangent;\n#if CC_USE_SKINNING\n in vec4 a_joints;\n in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n in highp vec4 a_jointAnimInfo;\n #endif\n in vec4 a_matWorld0;\n in vec4 a_matWorld1;\n in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n in vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n in vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n in vec4 a_sh_linear_const_r;\n in vec4 a_sh_linear_const_g;\n in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n in float a_vertexId;\n int getVertexId() {\n return int(a_vertexId);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\n#if CC_USE_MORPH\n layout(std140) uniform CCMorph {\n vec4 cc_displacementWeights[15];\n vec4 cc_displacementTextureInfo;\n };\n #if CC_MORPH_TARGET_HAS_POSITION\n uniform sampler2D cc_PositionDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n uniform sampler2D cc_NormalDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n uniform sampler2D cc_TangentDisplacements;\n #endif\n vec2 getPixelLocation(vec2 textureResolution, int pixelIndex) {\n float pixelIndexF = float(pixelIndex);\n float x = mod(pixelIndexF, textureResolution.x);\n float y = floor(pixelIndexF / textureResolution.x);\n return vec2(x, y);\n }\n vec2 getPixelCoordFromLocation(vec2 location, vec2 textureResolution) {\n return (vec2(location.x, location.y) + .5) / textureResolution;\n }\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int pixelIndex) {\n ivec2 texSize = textureSize(tex, 0);\n return texelFetch(tex, ivec2(pixelIndex % texSize.x, pixelIndex / texSize.x), 0);\n }\n #else\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex * 4;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 x = getPixelCoordFromLocation(location + vec2(0.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 y = getPixelCoordFromLocation(location + vec2(1.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 z = getPixelCoordFromLocation(location + vec2(2.0, 0.0), cc_displacementTextureInfo.xy);\n return vec4(\n decode32(texture(tex, x)),\n decode32(texture(tex, y)),\n decode32(texture(tex, z)),\n 1.0\n );\n }\n #endif\n float getDisplacementWeight(int index) {\n int quot = index / 4;\n int remainder = index - quot * 4;\n if (remainder == 0) {\n return cc_displacementWeights[quot].x;\n } else if (remainder == 1) {\n return cc_displacementWeights[quot].y;\n } else if (remainder == 2) {\n return cc_displacementWeights[quot].z;\n } else {\n return cc_displacementWeights[quot].w;\n }\n }\n vec3 getVec3DisplacementFromTexture(sampler2D tex, int vertexIndex) {\n #if CC_MORPH_PRECOMPUTED\n return fetchVec3ArrayFromTexture(tex, vertexIndex).rgb;\n #else\n vec3 result = vec3(0, 0, 0);\n int nVertices = int(cc_displacementTextureInfo.z);\n for (int iTarget = 0; iTarget < CC_MORPH_TARGET_COUNT; ++iTarget) {\n result += (fetchVec3ArrayFromTexture(tex, nVertices * iTarget + vertexIndex).rgb * getDisplacementWeight(iTarget));\n }\n return result;\n #endif\n }\n #if CC_MORPH_TARGET_HAS_POSITION\n vec3 getPositionDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_PositionDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n vec3 getNormalDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_NormalDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n vec3 getTangentDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_TangentDisplacements, vertexId);\n }\n #endif\n void applyMorph (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n int vertexId = getVertexId();\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n normal.xyz = normal.xyz + getNormalDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n tangent.xyz = tangent.xyz + getTangentDisplacement(vertexId);\n #endif\n }\n void applyMorph (inout vec4 position) {\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(getVertexId());\n #endif\n }\n#endif\n#if CC_USE_SKINNING\n #if CC_USE_BAKED_ANIMATION\n layout(std140) uniform CCSkinningTexture {\n highp vec4 cc_jointTextureInfo;\n };\n layout(std140) uniform CCSkinningAnimation {\n highp vec4 cc_jointAnimInfo;\n };\n uniform highp sampler2D cc_jointTexture;\n void CCGetJointTextureCoords(float pixelsPerJoint, float jointIdx, out highp float x, out highp float y, out highp float invSize)\n {\n #if USE_INSTANCING\n highp float temp = pixelsPerJoint * (a_jointAnimInfo.x * a_jointAnimInfo.y + jointIdx) + a_jointAnimInfo.z;\n #else\n highp float temp = pixelsPerJoint * (cc_jointAnimInfo.x * cc_jointTextureInfo.y + jointIdx) + cc_jointTextureInfo.z;\n #endif\n invSize = cc_jointTextureInfo.w;\n highp float tempY = floor(temp * invSize);\n x = floor(temp - tempY * cc_jointTextureInfo.x);\n y = (tempY + 0.5) * invSize;\n }\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n uniform highp sampler2D cc_realtimeJoint;\n #else\n layout(std140) uniform CCSkinning {\n highp vec4 cc_joints[CC_JOINT_UNIFORM_CAPACITY * 3];\n };\n #endif\n #endif\n #if CC_USE_BAKED_ANIMATION\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(3.0, i, x, y, invSize);\n vec4 v1 = texture(cc_jointTexture, vec2((x + 0.5) * invSize, y));\n vec4 v2 = texture(cc_jointTexture, vec2((x + 1.5) * invSize, y));\n vec4 v3 = texture(cc_jointTexture, vec2((x + 2.5) * invSize, y));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(12.0, i, x, y, invSize);\n vec4 v1 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 0.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 1.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 2.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 3.5) * invSize, y)))\n );\n vec4 v2 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 4.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 5.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 6.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 7.5) * invSize, y)))\n );\n vec4 v3 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 8.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 9.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 10.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 11.5) * invSize, y)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n float x = i;\n vec4 v1 = texture(cc_realtimeJoint, vec2( x / 256.0, 0.5 / 3.0));\n vec4 v2 = texture(cc_realtimeJoint, vec2( x / 256.0, 1.5 / 3.0));\n vec4 v3 = texture(cc_realtimeJoint, vec2( x / 256.0, 2.5 / 3.0));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n float x = 4.0 * i;\n vec4 v1 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 0.5 / 3.0)))\n );\n vec4 v2 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 1.5 / 3.0)))\n );\n vec4 v3 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 2.5 / 3.0)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n mat4 getJointMatrix (float i) {\n int idx = int(i);\n vec4 v1 = cc_joints[idx * 3];\n vec4 v2 = cc_joints[idx * 3 + 1];\n vec4 v3 = cc_joints[idx * 3 + 2];\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #endif\n mat4 skinMatrix () {\n vec4 joints = vec4(a_joints);\n return getJointMatrix(joints.x) * a_weights.x\n + getJointMatrix(joints.y) * a_weights.y\n + getJointMatrix(joints.z) * a_weights.z\n + getJointMatrix(joints.w) * a_weights.w;\n }\n void CCSkin (inout vec4 position) {\n mat4 m = skinMatrix();\n position = m * position;\n }\n void CCSkin (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n mat4 m = skinMatrix();\n position = m * position;\n normal = (m * vec4(normal, 0.0)).xyz;\n tangent.xyz = (m * vec4(tangent.xyz, 0.0)).xyz;\n }\n#endif\nvoid CCVertInput(inout vec4 In)\n{\n In = vec4(a_position, 1.0);\n #if CC_USE_MORPH\n applyMorph(In);\n #endif\n #if CC_USE_SKINNING\n CCSkin(In);\n #endif\n}\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#if !USE_INSTANCING\n layout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n };\n#endif\nvoid CCGetWorldMatrix(out mat4 matWorld)\n{\n #if USE_INSTANCING\n matWorld = mat4(\n vec4(a_matWorld0.xyz, 0.0),\n vec4(a_matWorld1.xyz, 0.0),\n vec4(a_matWorld2.xyz, 0.0),\n vec4(a_matWorld0.w, a_matWorld1.w, a_matWorld2.w, 1.0)\n );\n #else\n matWorld = cc_matWorld;\n #endif\n}\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\n#if !CC_USE_ACCURATE_FOG\nout mediump float v_fog_factor;\n#endif\nvoid CC_TRANSFER_FOG(vec4 pos) {\n#if !CC_USE_ACCURATE_FOG\n CC_TRANSFER_FOG_BASE(pos, v_fog_factor);\n#endif\n}\n#if USE_VERTEX_COLOR\n in lowp vec4 a_color;\n out lowp vec4 v_color;\n#endif\n#if USE_TEXTURE\n out vec2 v_uv;\n layout(std140) uniform TexCoords {\n vec4 tilingOffset;\n };\n#endif\nvec4 vert () {\n vec4 position;\n CCVertInput(position);\n mat4 matWorld;\n CCGetWorldMatrix(matWorld);\n #if USE_TEXTURE\n v_uv = a_texCoord * tilingOffset.xy + tilingOffset.zw;\n #if SAMPLE_FROM_RT\n v_uv = cc_cameraPos.w > 1.0 ? vec2(v_uv.x, 1.0 - v_uv.y) : v_uv;\n #endif\n #endif\n #if USE_VERTEX_COLOR\n v_color = a_color;\n #endif\n CC_TRANSFER_FOG(matWorld * position);\n return cc_matProj * (cc_matView * matWorld) * position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nvec3 ACESToneMap (vec3 color) {\n color = min(color, vec3(8.0));\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\nvec3 SRGBToLinear (vec3 gamma) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return gamma;\n }\n #endif\n#endif\n return gamma * gamma;\n}\nvec3 LinearToSRGB(vec3 linear) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return linear;\n }\n #endif\n#endif\n return sqrt(linear);\n}\nvec4 packRGBE (vec3 rgb) {\n highp float maxComp = max(max(rgb.r, rgb.g), rgb.b);\n highp float e = 128.0;\n if (maxComp > 0.0001) {\n e = log(maxComp) / log(1.1);\n e = ceil(e);\n e = clamp(e + 128.0, 0.0, 255.0);\n }\n highp float sc = 1.0 / pow(1.1, e - 128.0);\n vec3 encode = clamp(rgb * sc, vec3(0.0), vec3(1.0)) * 255.0;\n vec3 encode_rounded = floor(encode) + step(encode - floor(encode), vec3(0.5));\n return vec4(encode_rounded, e) / 255.0;\n}\nvec4 CCFragOutput (vec4 color) {\n #if CC_USE_RGBE_OUTPUT\n color = packRGBE(color.rgb);\n #elif !CC_USE_FLOAT_OUTPUT\n #if CC_USE_HDR && CC_TONE_MAPPING_TYPE == HDR_TONE_MAPPING_ACES\n color.rgb = ACESToneMap(color.rgb);\n #endif\n color.rgb = LinearToSRGB(color.rgb);\n #endif\n return color;\n}\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\nvoid CC_APPLY_FOG_BASE(inout vec4 color, float factor) {\n\tcolor = vec4(mix(cc_fogColor.rgb, color.rgb, factor), color.a);\n}\n#if !CC_USE_ACCURATE_FOG\nin mediump float v_fog_factor;\n#endif\nvoid CC_APPLY_FOG(inout vec4 color) {\n#if !CC_USE_ACCURATE_FOG\n CC_APPLY_FOG_BASE(color, v_fog_factor);\n#endif\n}\nvoid CC_APPLY_FOG(inout vec4 color, vec3 worldPos) {\n#if CC_USE_ACCURATE_FOG\n float factor;\n CC_TRANSFER_FOG_BASE(vec4(worldPos, 1.0), factor);\n#else\n float factor = v_fog_factor;\n#endif\n CC_APPLY_FOG_BASE(color, factor);\n}\n#if USE_ALPHA_TEST\n#endif\n#if USE_TEXTURE\n in vec2 v_uv;\n uniform sampler2D mainTexture;\n#endif\nlayout(std140) uniform Constant {\n vec4 mainColor;\n vec4 colorScaleAndCutoff;\n};\n#if USE_VERTEX_COLOR\n in lowp vec4 v_color;\n#endif\nvec4 frag () {\n vec4 o = mainColor;\n o.rgb *= colorScaleAndCutoff.xyz;\n #if USE_VERTEX_COLOR\n o.rgb *= SRGBToLinear(v_color.rgb);\n o.a *= v_color.a;\n #endif\n #if USE_TEXTURE\n vec4 texColor = texture(mainTexture, v_uv);\n texColor.rgb = SRGBToLinear(texColor.rgb);\n o *= texColor;\n #endif\n #if USE_ALPHA_TEST\n if (o.ALPHA_TEST_CHANNEL < colorScaleAndCutoff.w) discard;\n #endif\n CC_APPLY_FOG(o);\n return CCFragOutput(o);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nattribute vec4 a_tangent;\n#if CC_USE_SKINNING\n attribute vec4 a_joints;\n attribute vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n attribute highp vec4 a_jointAnimInfo;\n #endif\n attribute vec4 a_matWorld0;\n attribute vec4 a_matWorld1;\n attribute vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n attribute vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n attribute vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n attribute vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n attribute vec4 a_sh_linear_const_r;\n attribute vec4 a_sh_linear_const_g;\n attribute vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n attribute float a_vertexId;\n int getVertexId() {\n return int(a_vertexId);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\n#if CC_USE_MORPH\n uniform vec4 cc_displacementWeights[15];\n uniform vec4 cc_displacementTextureInfo;\n #if CC_MORPH_TARGET_HAS_POSITION\n uniform sampler2D cc_PositionDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n uniform sampler2D cc_NormalDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n uniform sampler2D cc_TangentDisplacements;\n #endif\n vec2 getPixelLocation(vec2 textureResolution, int pixelIndex) {\n float pixelIndexF = float(pixelIndex);\n float x = mod(pixelIndexF, textureResolution.x);\n float y = floor(pixelIndexF / textureResolution.x);\n return vec2(x, y);\n }\n vec2 getPixelCoordFromLocation(vec2 location, vec2 textureResolution) {\n return (vec2(location.x, location.y) + .5) / textureResolution;\n }\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 uv = getPixelCoordFromLocation(location, cc_displacementTextureInfo.xy);\n return texture2D(tex, uv);\n }\n #else\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex * 4;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 x = getPixelCoordFromLocation(location + vec2(0.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 y = getPixelCoordFromLocation(location + vec2(1.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 z = getPixelCoordFromLocation(location + vec2(2.0, 0.0), cc_displacementTextureInfo.xy);\n return vec4(\n decode32(texture2D(tex, x)),\n decode32(texture2D(tex, y)),\n decode32(texture2D(tex, z)),\n 1.0\n );\n }\n #endif\n float getDisplacementWeight(int index) {\n int quot = index / 4;\n int remainder = index - quot * 4;\n if (remainder == 0) {\n return cc_displacementWeights[quot].x;\n } else if (remainder == 1) {\n return cc_displacementWeights[quot].y;\n } else if (remainder == 2) {\n return cc_displacementWeights[quot].z;\n } else {\n return cc_displacementWeights[quot].w;\n }\n }\n vec3 getVec3DisplacementFromTexture(sampler2D tex, int vertexIndex) {\n #if CC_MORPH_PRECOMPUTED\n return fetchVec3ArrayFromTexture(tex, vertexIndex).rgb;\n #else\n vec3 result = vec3(0, 0, 0);\n int nVertices = int(cc_displacementTextureInfo.z);\n for (int iTarget = 0; iTarget < CC_MORPH_TARGET_COUNT; ++iTarget) {\n result += (fetchVec3ArrayFromTexture(tex, nVertices * iTarget + vertexIndex).rgb * getDisplacementWeight(iTarget));\n }\n return result;\n #endif\n }\n #if CC_MORPH_TARGET_HAS_POSITION\n vec3 getPositionDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_PositionDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n vec3 getNormalDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_NormalDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n vec3 getTangentDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_TangentDisplacements, vertexId);\n }\n #endif\n void applyMorph (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n int vertexId = getVertexId();\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n normal.xyz = normal.xyz + getNormalDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n tangent.xyz = tangent.xyz + getTangentDisplacement(vertexId);\n #endif\n }\n void applyMorph (inout vec4 position) {\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(getVertexId());\n #endif\n }\n#endif\n#if CC_USE_SKINNING\n #if CC_USE_BAKED_ANIMATION\n uniform highp vec4 cc_jointTextureInfo;\n uniform highp vec4 cc_jointAnimInfo;\n uniform highp sampler2D cc_jointTexture;\n void CCGetJointTextureCoords(float pixelsPerJoint, float jointIdx, out highp float x, out highp float y, out highp float invSize)\n {\n #if USE_INSTANCING\n highp float temp = pixelsPerJoint * (a_jointAnimInfo.x * a_jointAnimInfo.y + jointIdx) + a_jointAnimInfo.z;\n #else\n highp float temp = pixelsPerJoint * (cc_jointAnimInfo.x * cc_jointTextureInfo.y + jointIdx) + cc_jointTextureInfo.z;\n #endif\n invSize = cc_jointTextureInfo.w;\n highp float tempY = floor(temp * invSize);\n x = floor(temp - tempY * cc_jointTextureInfo.x);\n y = (tempY + 0.5) * invSize;\n }\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n uniform highp sampler2D cc_realtimeJoint;\n #else\n uniform highp vec4 cc_joints[CC_JOINT_UNIFORM_CAPACITY * 3];\n #endif\n #endif\n #if CC_USE_BAKED_ANIMATION\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(3.0, i, x, y, invSize);\n vec4 v1 = texture2D(cc_jointTexture, vec2((x + 0.5) * invSize, y));\n vec4 v2 = texture2D(cc_jointTexture, vec2((x + 1.5) * invSize, y));\n vec4 v3 = texture2D(cc_jointTexture, vec2((x + 2.5) * invSize, y));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(12.0, i, x, y, invSize);\n vec4 v1 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 0.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 1.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 2.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 3.5) * invSize, y)))\n );\n vec4 v2 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 4.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 5.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 6.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 7.5) * invSize, y)))\n );\n vec4 v3 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 8.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 9.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 10.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 11.5) * invSize, y)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n float x = i;\n vec4 v1 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 0.5 / 3.0));\n vec4 v2 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 1.5 / 3.0));\n vec4 v3 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 2.5 / 3.0));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n float x = 4.0 * i;\n vec4 v1 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 0.5 / 3.0)))\n );\n vec4 v2 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 1.5 / 3.0)))\n );\n vec4 v3 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 2.5 / 3.0)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n mat4 getJointMatrix (float i) {\n int idx = int(i);\n vec4 v1 = cc_joints[idx * 3];\n vec4 v2 = cc_joints[idx * 3 + 1];\n vec4 v3 = cc_joints[idx * 3 + 2];\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #endif\n mat4 skinMatrix () {\n vec4 joints = vec4(a_joints);\n return getJointMatrix(joints.x) * a_weights.x\n + getJointMatrix(joints.y) * a_weights.y\n + getJointMatrix(joints.z) * a_weights.z\n + getJointMatrix(joints.w) * a_weights.w;\n }\n void CCSkin (inout vec4 position) {\n mat4 m = skinMatrix();\n position = m * position;\n }\n void CCSkin (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n mat4 m = skinMatrix();\n position = m * position;\n normal = (m * vec4(normal, 0.0)).xyz;\n tangent.xyz = (m * vec4(tangent.xyz, 0.0)).xyz;\n }\n#endif\nvoid CCVertInput(inout vec4 In)\n{\n In = vec4(a_position, 1.0);\n #if CC_USE_MORPH\n applyMorph(In);\n #endif\n #if CC_USE_SKINNING\n CCSkin(In);\n #endif\n}\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matProj;\n uniform highp vec4 cc_cameraPos;\n uniform mediump vec4 cc_fogBase;\n uniform mediump vec4 cc_fogAdd;\n#if !USE_INSTANCING\n uniform highp mat4 cc_matWorld;\n#endif\nvoid CCGetWorldMatrix(out mat4 matWorld)\n{\n #if USE_INSTANCING\n matWorld = mat4(\n vec4(a_matWorld0.xyz, 0.0),\n vec4(a_matWorld1.xyz, 0.0),\n vec4(a_matWorld2.xyz, 0.0),\n vec4(a_matWorld0.w, a_matWorld1.w, a_matWorld2.w, 1.0)\n );\n #else\n matWorld = cc_matWorld;\n #endif\n}\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\n#if !CC_USE_ACCURATE_FOG\nvarying mediump float v_fog_factor;\n#endif\nvoid CC_TRANSFER_FOG(vec4 pos) {\n#if !CC_USE_ACCURATE_FOG\n CC_TRANSFER_FOG_BASE(pos, v_fog_factor);\n#endif\n}\n#if USE_VERTEX_COLOR\n attribute lowp vec4 a_color;\n varying lowp vec4 v_color;\n#endif\n#if USE_TEXTURE\n varying vec2 v_uv;\n uniform vec4 tilingOffset;\n#endif\nvec4 vert () {\n vec4 position;\n CCVertInput(position);\n mat4 matWorld;\n CCGetWorldMatrix(matWorld);\n #if USE_TEXTURE\n v_uv = a_texCoord * tilingOffset.xy + tilingOffset.zw;\n #if SAMPLE_FROM_RT\n v_uv = cc_cameraPos.w > 1.0 ? vec2(v_uv.x, 1.0 - v_uv.y) : v_uv;\n #endif\n #endif\n #if USE_VERTEX_COLOR\n v_color = a_color;\n #endif\n CC_TRANSFER_FOG(matWorld * position);\n return cc_matProj * (cc_matView * matWorld) * position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nvec3 ACESToneMap (vec3 color) {\n color = min(color, vec3(8.0));\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\nvec3 SRGBToLinear (vec3 gamma) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return gamma;\n }\n #endif\n#endif\n return gamma * gamma;\n}\nvec3 LinearToSRGB(vec3 linear) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return linear;\n }\n #endif\n#endif\n return sqrt(linear);\n}\nvec4 packRGBE (vec3 rgb) {\n highp float maxComp = max(max(rgb.r, rgb.g), rgb.b);\n highp float e = 128.0;\n if (maxComp > 0.0001) {\n e = log(maxComp) / log(1.1);\n e = ceil(e);\n e = clamp(e + 128.0, 0.0, 255.0);\n }\n highp float sc = 1.0 / pow(1.1, e - 128.0);\n vec3 encode = clamp(rgb * sc, vec3(0.0), vec3(1.0)) * 255.0;\n vec3 encode_rounded = floor(encode) + step(encode - floor(encode), vec3(0.5));\n return vec4(encode_rounded, e) / 255.0;\n}\nvec4 CCFragOutput (vec4 color) {\n #if CC_USE_RGBE_OUTPUT\n color = packRGBE(color.rgb);\n #elif !CC_USE_FLOAT_OUTPUT\n #if CC_USE_HDR && CC_TONE_MAPPING_TYPE == HDR_TONE_MAPPING_ACES\n color.rgb = ACESToneMap(color.rgb);\n #endif\n color.rgb = LinearToSRGB(color.rgb);\n #endif\n return color;\n}\nuniform highp vec4 cc_cameraPos;\n uniform mediump vec4 cc_fogColor;\n uniform mediump vec4 cc_fogBase;\n uniform mediump vec4 cc_fogAdd;\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\nvoid CC_APPLY_FOG_BASE(inout vec4 color, float factor) {\n\tcolor = vec4(mix(cc_fogColor.rgb, color.rgb, factor), color.a);\n}\n#if !CC_USE_ACCURATE_FOG\nvarying mediump float v_fog_factor;\n#endif\nvoid CC_APPLY_FOG(inout vec4 color) {\n#if !CC_USE_ACCURATE_FOG\n CC_APPLY_FOG_BASE(color, v_fog_factor);\n#endif\n}\nvoid CC_APPLY_FOG(inout vec4 color, vec3 worldPos) {\n#if CC_USE_ACCURATE_FOG\n float factor;\n CC_TRANSFER_FOG_BASE(vec4(worldPos, 1.0), factor);\n#else\n float factor = v_fog_factor;\n#endif\n CC_APPLY_FOG_BASE(color, factor);\n}\n#if USE_ALPHA_TEST\n#endif\n#if USE_TEXTURE\n varying vec2 v_uv;\n uniform sampler2D mainTexture;\n#endif\n uniform vec4 mainColor;\n uniform vec4 colorScaleAndCutoff;\n#if USE_VERTEX_COLOR\n varying lowp vec4 v_color;\n#endif\nvec4 frag () {\n vec4 o = mainColor;\n o.rgb *= colorScaleAndCutoff.xyz;\n #if USE_VERTEX_COLOR\n o.rgb *= SRGBToLinear(v_color.rgb);\n o.a *= v_color.a;\n #endif\n #if USE_TEXTURE\n vec4 texColor = texture2D(mainTexture, v_uv);\n texColor.rgb = SRGBToLinear(texColor.rgb);\n o *= texColor;\n #endif\n #if USE_ALPHA_TEST\n if (o.ALPHA_TEST_CHANNEL < colorScaleAndCutoff.w) discard;\n #endif\n CC_APPLY_FOG(o);\n return CCFragOutput(o);\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCMorph","defines":["CC_USE_MORPH"]},{"name":"CCSkinningTexture","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinningAnimation","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinning","defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","!CC_USE_REAL_TIME_JOINT_TEXTURE"]},{"name":"CCLocal","defines":["!USE_INSTANCING"]}],"samplerTextures":[{"name":"cc_PositionDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_POSITION"]},{"name":"cc_NormalDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_NORMAL"]},{"name":"cc_TangentDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_TANGENT"]},{"name":"cc_jointTexture","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"cc_realtimeJoint","defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","CC_USE_REAL_TIME_JOINT_TEXTURE"]}],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":75,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":44}},"defines":[{"name":"USE_INSTANCING","type":"boolean"},{"name":"CC_USE_SKINNING","type":"boolean"},{"name":"CC_USE_BAKED_ANIMATION","type":"boolean"},{"name":"CC_USE_LIGHTMAP","type":"boolean"},{"name":"CC_USE_REFLECTION_PROBE","type":"boolean"},{"name":"CC_RECEIVE_SHADOW","type":"boolean"},{"name":"CC_USE_LIGHT_PROBE","type":"boolean"},{"name":"CC_USE_MORPH","type":"boolean"},{"name":"CC_MORPH_TARGET_COUNT","type":"number","range":[2,8]},{"name":"CC_MORPH_TARGET_HAS_POSITION","type":"boolean"},{"name":"CC_MORPH_TARGET_HAS_NORMAL","type":"boolean"},{"name":"CC_MORPH_TARGET_HAS_TANGENT","type":"boolean"},{"name":"CC_MORPH_PRECOMPUTED","type":"boolean"},{"name":"CC_USE_REAL_TIME_JOINT_TEXTURE","type":"boolean"},{"name":"CC_USE_FOG","type":"number","range":[0,4]},{"name":"CC_USE_ACCURATE_FOG","type":"boolean"},{"name":"USE_VERTEX_COLOR","type":"boolean"},{"name":"USE_TEXTURE","type":"boolean"},{"name":"SAMPLE_FROM_RT","type":"boolean"},{"name":"CC_USE_DEBUG_VIEW","type":"number","range":[0,3]},{"name":"CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC","type":"boolean"},{"name":"CC_SURFACES_ENABLE_DEBUG_VIEW","type":"boolean"},{"name":"CC_USE_RGBE_OUTPUT","type":"boolean"},{"name":"CC_USE_FLOAT_OUTPUT","type":"boolean"},{"name":"CC_USE_HDR","type":"boolean"},{"name":"CC_TONE_MAPPING_TYPE","type":"number","range":[0,3]},{"name":"HDR_TONE_MAPPING_ACES","type":"boolean"},{"name":"USE_ALPHA_TEST","type":"boolean"},{"name":"ALPHA_TEST_CHANNEL","type":"string","options":["a","r","g","b"]}]},{"hash":3680218420,"name":"builtin-unlit|planar-shadow-vs:vert|planar-shadow-fs:frag","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_normal","format":32,"location":1,"defines":[]},{"name":"a_texCoord","format":21,"location":2,"defines":[]},{"name":"a_tangent","format":44,"location":3,"defines":[]},{"name":"a_joints","location":4,"defines":["CC_USE_SKINNING"]},{"name":"a_weights","format":44,"location":5,"defines":["CC_USE_SKINNING"]},{"name":"a_jointAnimInfo","format":44,"isInstanced":true,"location":6,"defines":["USE_INSTANCING","CC_USE_BAKED_ANIMATION"]},{"name":"a_matWorld0","format":44,"isInstanced":true,"location":7,"defines":["USE_INSTANCING"]},{"name":"a_matWorld1","format":44,"isInstanced":true,"location":8,"defines":["USE_INSTANCING"]},{"name":"a_matWorld2","format":44,"isInstanced":true,"location":9,"defines":["USE_INSTANCING"]},{"name":"a_lightingMapUVParam","format":44,"isInstanced":true,"location":10,"defines":["USE_INSTANCING","CC_USE_LIGHTMAP"]},{"name":"a_localShadowBiasAndProbeId","format":44,"isInstanced":true,"location":11,"defines":["USE_INSTANCING"]},{"name":"a_reflectionProbeData","format":44,"isInstanced":true,"location":12,"defines":["USE_INSTANCING","CC_USE_REFLECTION_PROBE"]},{"name":"a_sh_linear_const_r","format":44,"isInstanced":true,"location":13,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_g","format":44,"isInstanced":true,"location":14,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_b","format":44,"isInstanced":true,"location":15,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_vertexId","format":11,"location":16,"defines":["CC_USE_MORPH"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCMorph","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_displacementWeights","typename":"vec4","type":16,"count":15,"isArray":true},{"name":"cc_displacementTextureInfo","typename":"vec4","type":16,"count":1}],"defines":["CC_USE_MORPH"]},{"name":"CCSkinningTexture","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_jointTextureInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinningAnimation","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_jointAnimInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinning","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_joints","typename":"vec4","type":16,"count":0,"precision":"highp ","isArray":true}],"defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","!CC_USE_REAL_TIME_JOINT_TEXTURE"]},{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["!USE_INSTANCING"]}],"samplerTextures":[{"name":"cc_PositionDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_POSITION"]},{"name":"cc_NormalDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_NORMAL"]},{"name":"cc_TangentDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_TANGENT"]},{"name":"cc_jointTexture","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"cc_realtimeJoint","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","CC_USE_REAL_TIME_JOINT_TEXTURE"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCShadow","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matLightView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matLightViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_shadowInvProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowNFLSInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowWHPBInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowLPNNInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowColor","typename":"vec4","type":16,"count":1,"precision":"lowp "},{"name":"cc_planarNDInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\nfloat saturate(float value) { return clamp(value, 0.0, 1.0); }\nvec2 saturate(vec2 value) { return clamp(value, vec2(0.0), vec2(1.0)); }\nvec3 saturate(vec3 value) { return clamp(value, vec3(0.0), vec3(1.0)); }\nvec4 saturate(vec4 value) { return clamp(value, vec4(0.0), vec4(1.0)); }\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\nin vec4 a_tangent;\n#if CC_USE_SKINNING\n in vec4 a_joints;\n in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n in highp vec4 a_jointAnimInfo;\n #endif\n in vec4 a_matWorld0;\n in vec4 a_matWorld1;\n in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n in vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n in vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n in vec4 a_sh_linear_const_r;\n in vec4 a_sh_linear_const_g;\n in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n in float a_vertexId;\n int getVertexId() {\n return int(a_vertexId);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\n#if CC_USE_MORPH\n layout(std140) uniform CCMorph {\n vec4 cc_displacementWeights[15];\n vec4 cc_displacementTextureInfo;\n };\n #if CC_MORPH_TARGET_HAS_POSITION\n uniform sampler2D cc_PositionDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n uniform sampler2D cc_NormalDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n uniform sampler2D cc_TangentDisplacements;\n #endif\n vec2 getPixelLocation(vec2 textureResolution, int pixelIndex) {\n float pixelIndexF = float(pixelIndex);\n float x = mod(pixelIndexF, textureResolution.x);\n float y = floor(pixelIndexF / textureResolution.x);\n return vec2(x, y);\n }\n vec2 getPixelCoordFromLocation(vec2 location, vec2 textureResolution) {\n return (vec2(location.x, location.y) + .5) / textureResolution;\n }\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int pixelIndex) {\n ivec2 texSize = textureSize(tex, 0);\n return texelFetch(tex, ivec2(pixelIndex % texSize.x, pixelIndex / texSize.x), 0);\n }\n #else\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex * 4;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 x = getPixelCoordFromLocation(location + vec2(0.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 y = getPixelCoordFromLocation(location + vec2(1.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 z = getPixelCoordFromLocation(location + vec2(2.0, 0.0), cc_displacementTextureInfo.xy);\n return vec4(\n decode32(texture(tex, x)),\n decode32(texture(tex, y)),\n decode32(texture(tex, z)),\n 1.0\n );\n }\n #endif\n float getDisplacementWeight(int index) {\n int quot = index / 4;\n int remainder = index - quot * 4;\n if (remainder == 0) {\n return cc_displacementWeights[quot].x;\n } else if (remainder == 1) {\n return cc_displacementWeights[quot].y;\n } else if (remainder == 2) {\n return cc_displacementWeights[quot].z;\n } else {\n return cc_displacementWeights[quot].w;\n }\n }\n vec3 getVec3DisplacementFromTexture(sampler2D tex, int vertexIndex) {\n #if CC_MORPH_PRECOMPUTED\n return fetchVec3ArrayFromTexture(tex, vertexIndex).rgb;\n #else\n vec3 result = vec3(0, 0, 0);\n int nVertices = int(cc_displacementTextureInfo.z);\n for (int iTarget = 0; iTarget < CC_MORPH_TARGET_COUNT; ++iTarget) {\n result += (fetchVec3ArrayFromTexture(tex, nVertices * iTarget + vertexIndex).rgb * getDisplacementWeight(iTarget));\n }\n return result;\n #endif\n }\n #if CC_MORPH_TARGET_HAS_POSITION\n vec3 getPositionDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_PositionDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n vec3 getNormalDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_NormalDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n vec3 getTangentDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_TangentDisplacements, vertexId);\n }\n #endif\n void applyMorph (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n int vertexId = getVertexId();\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n normal.xyz = normal.xyz + getNormalDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n tangent.xyz = tangent.xyz + getTangentDisplacement(vertexId);\n #endif\n }\n void applyMorph (inout vec4 position) {\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(getVertexId());\n #endif\n }\n#endif\n#if CC_USE_SKINNING\n #if CC_USE_BAKED_ANIMATION\n layout(std140) uniform CCSkinningTexture {\n highp vec4 cc_jointTextureInfo;\n };\n layout(std140) uniform CCSkinningAnimation {\n highp vec4 cc_jointAnimInfo;\n };\n uniform highp sampler2D cc_jointTexture;\n void CCGetJointTextureCoords(float pixelsPerJoint, float jointIdx, out highp float x, out highp float y, out highp float invSize)\n {\n #if USE_INSTANCING\n highp float temp = pixelsPerJoint * (a_jointAnimInfo.x * a_jointAnimInfo.y + jointIdx) + a_jointAnimInfo.z;\n #else\n highp float temp = pixelsPerJoint * (cc_jointAnimInfo.x * cc_jointTextureInfo.y + jointIdx) + cc_jointTextureInfo.z;\n #endif\n invSize = cc_jointTextureInfo.w;\n highp float tempY = floor(temp * invSize);\n x = floor(temp - tempY * cc_jointTextureInfo.x);\n y = (tempY + 0.5) * invSize;\n }\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n uniform highp sampler2D cc_realtimeJoint;\n #else\n layout(std140) uniform CCSkinning {\n highp vec4 cc_joints[CC_JOINT_UNIFORM_CAPACITY * 3];\n };\n #endif\n #endif\n #if CC_USE_BAKED_ANIMATION\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(3.0, i, x, y, invSize);\n vec4 v1 = texture(cc_jointTexture, vec2((x + 0.5) * invSize, y));\n vec4 v2 = texture(cc_jointTexture, vec2((x + 1.5) * invSize, y));\n vec4 v3 = texture(cc_jointTexture, vec2((x + 2.5) * invSize, y));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(12.0, i, x, y, invSize);\n vec4 v1 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 0.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 1.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 2.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 3.5) * invSize, y)))\n );\n vec4 v2 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 4.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 5.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 6.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 7.5) * invSize, y)))\n );\n vec4 v3 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 8.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 9.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 10.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 11.5) * invSize, y)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n float x = i;\n vec4 v1 = texture(cc_realtimeJoint, vec2( x / 256.0, 0.5 / 3.0));\n vec4 v2 = texture(cc_realtimeJoint, vec2( x / 256.0, 1.5 / 3.0));\n vec4 v3 = texture(cc_realtimeJoint, vec2( x / 256.0, 2.5 / 3.0));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n float x = 4.0 * i;\n vec4 v1 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 0.5 / 3.0)))\n );\n vec4 v2 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 1.5 / 3.0)))\n );\n vec4 v3 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 2.5 / 3.0)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n mat4 getJointMatrix (float i) {\n int idx = int(i);\n vec4 v1 = cc_joints[idx * 3];\n vec4 v2 = cc_joints[idx * 3 + 1];\n vec4 v3 = cc_joints[idx * 3 + 2];\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #endif\n mat4 skinMatrix () {\n vec4 joints = vec4(a_joints);\n return getJointMatrix(joints.x) * a_weights.x\n + getJointMatrix(joints.y) * a_weights.y\n + getJointMatrix(joints.z) * a_weights.z\n + getJointMatrix(joints.w) * a_weights.w;\n }\n void CCSkin (inout vec4 position) {\n mat4 m = skinMatrix();\n position = m * position;\n }\n void CCSkin (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n mat4 m = skinMatrix();\n position = m * position;\n normal = (m * vec4(normal, 0.0)).xyz;\n tangent.xyz = (m * vec4(tangent.xyz, 0.0)).xyz;\n }\n#endif\nvoid CCVertInput(inout vec4 In)\n{\n In = vec4(a_position, 1.0);\n #if CC_USE_MORPH\n applyMorph(In);\n #endif\n #if CC_USE_SKINNING\n CCSkin(In);\n #endif\n}\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#if !USE_INSTANCING\n layout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n };\n#endif\nvoid CCGetWorldMatrixFull(out mat4 matWorld, out mat4 matWorldIT)\n{\n #if USE_INSTANCING\n matWorld = mat4(\n vec4(a_matWorld0.xyz, 0.0),\n vec4(a_matWorld1.xyz, 0.0),\n vec4(a_matWorld2.xyz, 0.0),\n vec4(a_matWorld0.w, a_matWorld1.w, a_matWorld2.w, 1.0)\n );\n vec3 scale = 1.0 / vec3(length(a_matWorld0.xyz), length(a_matWorld1.xyz), length(a_matWorld2.xyz));\n vec3 scale2 = scale * scale;\n matWorldIT = mat4(\n vec4(a_matWorld0.xyz * scale2.x, 0.0),\n vec4(a_matWorld1.xyz * scale2.y, 0.0),\n vec4(a_matWorld2.xyz * scale2.z, 0.0),\n vec4(0.0, 0.0, 0.0, 1.0)\n );\n #else\n matWorld = cc_matWorld;\n matWorldIT = cc_matWorldIT;\n #endif\n}\nlayout(std140) uniform CCShadow {\n highp mat4 cc_matLightView;\n highp mat4 cc_matLightViewProj;\n highp vec4 cc_shadowInvProjDepthInfo;\n highp vec4 cc_shadowProjDepthInfo;\n highp vec4 cc_shadowProjInfo;\n mediump vec4 cc_shadowNFLSInfo;\n mediump vec4 cc_shadowWHPBInfo;\n mediump vec4 cc_shadowLPNNInfo;\n lowp vec4 cc_shadowColor;\n mediump vec4 cc_planarNDInfo;\n};\nvec4 CalculatePlanarShadowPos(vec3 meshWorldPos, vec3 cameraPos, vec3 lightDir, vec4 plane) {\n vec3 P = meshWorldPos;\n vec3 L = lightDir;\n vec3 N = plane.xyz;\n float d = plane.w + EPSILON_LOWP;\n float dist = (-d - dot(P, N)) / (dot(L, N) + EPSILON_LOWP);\n vec3 shadowPos = P + L * dist;\n return vec4(shadowPos, dist);\n}\nvec4 CalculatePlanarShadowClipPos(vec4 shadowPos, vec3 cameraPos, mat4 matView, mat4 matProj, vec4 nearFar, float bias) {\n vec4 camPos = matView * vec4(shadowPos.xyz, 1.0);\n float lerpCoef = saturate((nearFar.z < 0.0 ? -camPos.z : camPos.z) / (nearFar.y - nearFar.x));\n camPos.z += mix(nearFar.x * 0.01, nearFar.y * EPSILON_LOWP * bias, lerpCoef);\n return matProj * camPos;\n}\nout float v_dist;\nvec4 vert () {\n vec4 position;\n CCVertInput(position);\n mat4 matWorld, matWorldIT;\n CCGetWorldMatrixFull(matWorld, matWorldIT);\n vec3 worldPos = (matWorld * position).xyz;\n vec4 shadowPos = CalculatePlanarShadowPos(worldPos, cc_cameraPos.xyz, cc_mainLitDir.xyz, cc_planarNDInfo);\n position = CalculatePlanarShadowClipPos(shadowPos, cc_cameraPos.xyz, cc_matView, cc_matProj, cc_nearFar, cc_shadowWHPBInfo.w);\n v_dist = shadowPos.w;\n return position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nlayout(std140) uniform CCShadow {\n highp mat4 cc_matLightView;\n highp mat4 cc_matLightViewProj;\n highp vec4 cc_shadowInvProjDepthInfo;\n highp vec4 cc_shadowProjDepthInfo;\n highp vec4 cc_shadowProjInfo;\n mediump vec4 cc_shadowNFLSInfo;\n mediump vec4 cc_shadowWHPBInfo;\n mediump vec4 cc_shadowLPNNInfo;\n lowp vec4 cc_shadowColor;\n mediump vec4 cc_planarNDInfo;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin float v_dist;\nvec4 frag () {\n if(v_dist < 0.0)\n discard;\n return CCFragOutput(cc_shadowColor);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\nfloat saturate(float value) { return clamp(value, 0.0, 1.0); }\nvec2 saturate(vec2 value) { return clamp(value, vec2(0.0), vec2(1.0)); }\nvec3 saturate(vec3 value) { return clamp(value, vec3(0.0), vec3(1.0)); }\nvec4 saturate(vec4 value) { return clamp(value, vec4(0.0), vec4(1.0)); }\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nattribute vec4 a_tangent;\n#if CC_USE_SKINNING\n attribute vec4 a_joints;\n attribute vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n attribute highp vec4 a_jointAnimInfo;\n #endif\n attribute vec4 a_matWorld0;\n attribute vec4 a_matWorld1;\n attribute vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n attribute vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n attribute vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n attribute vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n attribute vec4 a_sh_linear_const_r;\n attribute vec4 a_sh_linear_const_g;\n attribute vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n attribute float a_vertexId;\n int getVertexId() {\n return int(a_vertexId);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\n#if CC_USE_MORPH\n uniform vec4 cc_displacementWeights[15];\n uniform vec4 cc_displacementTextureInfo;\n #if CC_MORPH_TARGET_HAS_POSITION\n uniform sampler2D cc_PositionDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n uniform sampler2D cc_NormalDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n uniform sampler2D cc_TangentDisplacements;\n #endif\n vec2 getPixelLocation(vec2 textureResolution, int pixelIndex) {\n float pixelIndexF = float(pixelIndex);\n float x = mod(pixelIndexF, textureResolution.x);\n float y = floor(pixelIndexF / textureResolution.x);\n return vec2(x, y);\n }\n vec2 getPixelCoordFromLocation(vec2 location, vec2 textureResolution) {\n return (vec2(location.x, location.y) + .5) / textureResolution;\n }\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 uv = getPixelCoordFromLocation(location, cc_displacementTextureInfo.xy);\n return texture2D(tex, uv);\n }\n #else\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex * 4;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 x = getPixelCoordFromLocation(location + vec2(0.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 y = getPixelCoordFromLocation(location + vec2(1.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 z = getPixelCoordFromLocation(location + vec2(2.0, 0.0), cc_displacementTextureInfo.xy);\n return vec4(\n decode32(texture2D(tex, x)),\n decode32(texture2D(tex, y)),\n decode32(texture2D(tex, z)),\n 1.0\n );\n }\n #endif\n float getDisplacementWeight(int index) {\n int quot = index / 4;\n int remainder = index - quot * 4;\n if (remainder == 0) {\n return cc_displacementWeights[quot].x;\n } else if (remainder == 1) {\n return cc_displacementWeights[quot].y;\n } else if (remainder == 2) {\n return cc_displacementWeights[quot].z;\n } else {\n return cc_displacementWeights[quot].w;\n }\n }\n vec3 getVec3DisplacementFromTexture(sampler2D tex, int vertexIndex) {\n #if CC_MORPH_PRECOMPUTED\n return fetchVec3ArrayFromTexture(tex, vertexIndex).rgb;\n #else\n vec3 result = vec3(0, 0, 0);\n int nVertices = int(cc_displacementTextureInfo.z);\n for (int iTarget = 0; iTarget < CC_MORPH_TARGET_COUNT; ++iTarget) {\n result += (fetchVec3ArrayFromTexture(tex, nVertices * iTarget + vertexIndex).rgb * getDisplacementWeight(iTarget));\n }\n return result;\n #endif\n }\n #if CC_MORPH_TARGET_HAS_POSITION\n vec3 getPositionDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_PositionDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n vec3 getNormalDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_NormalDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n vec3 getTangentDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_TangentDisplacements, vertexId);\n }\n #endif\n void applyMorph (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n int vertexId = getVertexId();\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n normal.xyz = normal.xyz + getNormalDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n tangent.xyz = tangent.xyz + getTangentDisplacement(vertexId);\n #endif\n }\n void applyMorph (inout vec4 position) {\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(getVertexId());\n #endif\n }\n#endif\n#if CC_USE_SKINNING\n #if CC_USE_BAKED_ANIMATION\n uniform highp vec4 cc_jointTextureInfo;\n uniform highp vec4 cc_jointAnimInfo;\n uniform highp sampler2D cc_jointTexture;\n void CCGetJointTextureCoords(float pixelsPerJoint, float jointIdx, out highp float x, out highp float y, out highp float invSize)\n {\n #if USE_INSTANCING\n highp float temp = pixelsPerJoint * (a_jointAnimInfo.x * a_jointAnimInfo.y + jointIdx) + a_jointAnimInfo.z;\n #else\n highp float temp = pixelsPerJoint * (cc_jointAnimInfo.x * cc_jointTextureInfo.y + jointIdx) + cc_jointTextureInfo.z;\n #endif\n invSize = cc_jointTextureInfo.w;\n highp float tempY = floor(temp * invSize);\n x = floor(temp - tempY * cc_jointTextureInfo.x);\n y = (tempY + 0.5) * invSize;\n }\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n uniform highp sampler2D cc_realtimeJoint;\n #else\n uniform highp vec4 cc_joints[CC_JOINT_UNIFORM_CAPACITY * 3];\n #endif\n #endif\n #if CC_USE_BAKED_ANIMATION\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(3.0, i, x, y, invSize);\n vec4 v1 = texture2D(cc_jointTexture, vec2((x + 0.5) * invSize, y));\n vec4 v2 = texture2D(cc_jointTexture, vec2((x + 1.5) * invSize, y));\n vec4 v3 = texture2D(cc_jointTexture, vec2((x + 2.5) * invSize, y));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(12.0, i, x, y, invSize);\n vec4 v1 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 0.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 1.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 2.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 3.5) * invSize, y)))\n );\n vec4 v2 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 4.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 5.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 6.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 7.5) * invSize, y)))\n );\n vec4 v3 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 8.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 9.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 10.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 11.5) * invSize, y)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n float x = i;\n vec4 v1 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 0.5 / 3.0));\n vec4 v2 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 1.5 / 3.0));\n vec4 v3 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 2.5 / 3.0));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n float x = 4.0 * i;\n vec4 v1 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 0.5 / 3.0)))\n );\n vec4 v2 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 1.5 / 3.0)))\n );\n vec4 v3 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 2.5 / 3.0)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n mat4 getJointMatrix (float i) {\n int idx = int(i);\n vec4 v1 = cc_joints[idx * 3];\n vec4 v2 = cc_joints[idx * 3 + 1];\n vec4 v3 = cc_joints[idx * 3 + 2];\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #endif\n mat4 skinMatrix () {\n vec4 joints = vec4(a_joints);\n return getJointMatrix(joints.x) * a_weights.x\n + getJointMatrix(joints.y) * a_weights.y\n + getJointMatrix(joints.z) * a_weights.z\n + getJointMatrix(joints.w) * a_weights.w;\n }\n void CCSkin (inout vec4 position) {\n mat4 m = skinMatrix();\n position = m * position;\n }\n void CCSkin (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n mat4 m = skinMatrix();\n position = m * position;\n normal = (m * vec4(normal, 0.0)).xyz;\n tangent.xyz = (m * vec4(tangent.xyz, 0.0)).xyz;\n }\n#endif\nvoid CCVertInput(inout vec4 In)\n{\n In = vec4(a_position, 1.0);\n #if CC_USE_MORPH\n applyMorph(In);\n #endif\n #if CC_USE_SKINNING\n CCSkin(In);\n #endif\n}\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matProj;\n uniform highp vec4 cc_cameraPos;\n uniform mediump vec4 cc_mainLitDir;\n uniform mediump vec4 cc_nearFar;\n#if !USE_INSTANCING\n uniform highp mat4 cc_matWorld;\n uniform highp mat4 cc_matWorldIT;\n#endif\nvoid CCGetWorldMatrixFull(out mat4 matWorld, out mat4 matWorldIT)\n{\n #if USE_INSTANCING\n matWorld = mat4(\n vec4(a_matWorld0.xyz, 0.0),\n vec4(a_matWorld1.xyz, 0.0),\n vec4(a_matWorld2.xyz, 0.0),\n vec4(a_matWorld0.w, a_matWorld1.w, a_matWorld2.w, 1.0)\n );\n vec3 scale = 1.0 / vec3(length(a_matWorld0.xyz), length(a_matWorld1.xyz), length(a_matWorld2.xyz));\n vec3 scale2 = scale * scale;\n matWorldIT = mat4(\n vec4(a_matWorld0.xyz * scale2.x, 0.0),\n vec4(a_matWorld1.xyz * scale2.y, 0.0),\n vec4(a_matWorld2.xyz * scale2.z, 0.0),\n vec4(0.0, 0.0, 0.0, 1.0)\n );\n #else\n matWorld = cc_matWorld;\n matWorldIT = cc_matWorldIT;\n #endif\n}\nuniform mediump vec4 cc_shadowWHPBInfo;\n uniform mediump vec4 cc_planarNDInfo;\nvec4 CalculatePlanarShadowPos(vec3 meshWorldPos, vec3 cameraPos, vec3 lightDir, vec4 plane) {\n vec3 P = meshWorldPos;\n vec3 L = lightDir;\n vec3 N = plane.xyz;\n float d = plane.w + EPSILON_LOWP;\n float dist = (-d - dot(P, N)) / (dot(L, N) + EPSILON_LOWP);\n vec3 shadowPos = P + L * dist;\n return vec4(shadowPos, dist);\n}\nvec4 CalculatePlanarShadowClipPos(vec4 shadowPos, vec3 cameraPos, mat4 matView, mat4 matProj, vec4 nearFar, float bias) {\n vec4 camPos = matView * vec4(shadowPos.xyz, 1.0);\n float lerpCoef = saturate((nearFar.z < 0.0 ? -camPos.z : camPos.z) / (nearFar.y - nearFar.x));\n camPos.z += mix(nearFar.x * 0.01, nearFar.y * EPSILON_LOWP * bias, lerpCoef);\n return matProj * camPos;\n}\nvarying float v_dist;\nvec4 vert () {\n vec4 position;\n CCVertInput(position);\n mat4 matWorld, matWorldIT;\n CCGetWorldMatrixFull(matWorld, matWorldIT);\n vec3 worldPos = (matWorld * position).xyz;\n vec4 shadowPos = CalculatePlanarShadowPos(worldPos, cc_cameraPos.xyz, cc_mainLitDir.xyz, cc_planarNDInfo);\n position = CalculatePlanarShadowClipPos(shadowPos, cc_cameraPos.xyz, cc_matView, cc_matProj, cc_nearFar, cc_shadowWHPBInfo.w);\n v_dist = shadowPos.w;\n return position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nuniform lowp vec4 cc_shadowColor;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying float v_dist;\nvec4 frag () {\n if(v_dist < 0.0)\n discard;\n return CCFragOutput(cc_shadowColor);\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]},{"name":"CCShadow","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCMorph","defines":["CC_USE_MORPH"]},{"name":"CCSkinningTexture","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinningAnimation","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinning","defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","!CC_USE_REAL_TIME_JOINT_TEXTURE"]},{"name":"CCLocal","defines":["!USE_INSTANCING"]}],"samplerTextures":[{"name":"cc_PositionDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_POSITION"]},{"name":"cc_NormalDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_NORMAL"]},{"name":"cc_TangentDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_TANGENT"]},{"name":"cc_jointTexture","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"cc_realtimeJoint","defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","CC_USE_REAL_TIME_JOINT_TEXTURE"]}],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":90,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":58}},"defines":[{"name":"USE_INSTANCING","type":"boolean"},{"name":"CC_USE_SKINNING","type":"boolean"},{"name":"CC_USE_BAKED_ANIMATION","type":"boolean"},{"name":"CC_USE_LIGHTMAP","type":"boolean"},{"name":"CC_USE_REFLECTION_PROBE","type":"boolean"},{"name":"CC_RECEIVE_SHADOW","type":"boolean"},{"name":"CC_USE_LIGHT_PROBE","type":"boolean"},{"name":"CC_USE_MORPH","type":"boolean"},{"name":"CC_MORPH_TARGET_COUNT","type":"number","range":[2,8]},{"name":"CC_MORPH_TARGET_HAS_POSITION","type":"boolean"},{"name":"CC_MORPH_TARGET_HAS_NORMAL","type":"boolean"},{"name":"CC_MORPH_TARGET_HAS_TANGENT","type":"boolean"},{"name":"CC_MORPH_PRECOMPUTED","type":"boolean"},{"name":"CC_USE_REAL_TIME_JOINT_TEXTURE","type":"boolean"}]}],[{"name":"opaque","passes":[{"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","properties":{"mainTexture":{"value":"grey","type":28},"tilingOffset":{"type":16,"value":[1,1,0,0]},"mainColor":{"linear":true,"type":16,"value":[1,1,1,1]},"colorScale":{"type":15,"value":[1,1,1],"handleInfo":["colorScaleAndCutoff",0,15]},"alphaThreshold":{"type":13,"value":[0.5],"handleInfo":["colorScaleAndCutoff",3,13]},"color":{"linear":true,"type":16,"handleInfo":["mainColor",0,16]},"colorScaleAndCutoff":{"type":16,"value":[1,1,1,0.5]}}},{"phase":"planar-shadow","propertyIndex":0,"program":"builtin-unlit|planar-shadow-vs:vert|planar-shadow-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false,"stencilTestFront":true,"stencilFuncFront":5,"stencilPassOpFront":2,"stencilRefBack":128,"stencilRefFront":128,"stencilReadMaskBack":128,"stencilReadMaskFront":128,"stencilWriteMaskBack":128,"stencilWriteMaskFront":128}},{"phase":"deferred-forward","propertyIndex":0,"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag"}]},{"name":"transparent","passes":[{"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"tilingOffset":{"type":16,"value":[1,1,0,0]},"mainColor":{"linear":true,"type":16,"value":[1,1,1,1]},"colorScale":{"type":15,"value":[1,1,1],"handleInfo":["colorScaleAndCutoff",0,15]},"alphaThreshold":{"type":13,"value":[0.5],"handleInfo":["colorScaleAndCutoff",3,13]},"color":{"linear":true,"type":16,"handleInfo":["mainColor",0,16]},"colorScaleAndCutoff":{"type":16,"value":[1,1,1,0.5]}}},{"phase":"planar-shadow","propertyIndex":0,"program":"builtin-unlit|planar-shadow-vs:vert|planar-shadow-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false,"stencilTestFront":true,"stencilFuncFront":5,"stencilPassOpFront":2,"stencilRefBack":128,"stencilRefFront":128,"stencilReadMaskBack":128,"stencilReadMaskFront":128,"stencilWriteMaskBack":128,"stencilWriteMaskFront":128}},{"phase":"deferred-forward","propertyIndex":0,"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"add","passes":[{"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"tilingOffset":{"type":16,"value":[1,1,0,0]},"mainColor":{"linear":true,"type":16,"value":[1,1,1,1]},"colorScale":{"type":15,"value":[1,1,1],"handleInfo":["colorScaleAndCutoff",0,15]},"alphaThreshold":{"type":13,"value":[0.5],"handleInfo":["colorScaleAndCutoff",3,13]},"color":{"linear":true,"type":16,"handleInfo":["mainColor",0,16]},"colorScaleAndCutoff":{"type":16,"value":[1,1,1,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"alpha-blend","passes":[{"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":2,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"tilingOffset":{"type":16,"value":[1,1,0,0]},"mainColor":{"linear":true,"type":16,"value":[1,1,1,1]},"colorScale":{"type":15,"value":[1,1,1],"handleInfo":["colorScaleAndCutoff",0,15]},"alphaThreshold":{"type":13,"value":[0.5],"handleInfo":["colorScaleAndCutoff",3,13]},"color":{"linear":true,"type":16,"handleInfo":["mainColor",0,16]},"colorScaleAndCutoff":{"type":16,"value":[1,1,1,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":2,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[2,"OpenSans-BoldItalic","OpenSans-BoldItalic.ttf"],-1],0,0,[],[],[]],[[[2,"OpenSans-Bold","OpenSans-Bold.ttf"],-1],0,0,[],[],[]],[[[1,"default-spine-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_TEXTURE":true,"CC_USE_EMBEDDED_ALPHA":false,"IS_GRAY":false}]]],0,0,[0],[0],[6]],[[[5,"default-physics-material",0.8,0.1,0.1,0.1]],0,0,[],[],[]],[[[3,"missing-effect-material",[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_COLOR":true}],[[[{},"mainColor",8,[4,4278255615]]],11]]],0,0,[0],[0],[1]],[[[1,"default-particle-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{}]]],0,0,[0],[0],[7]],[[[0,"for2d/builtin-spine",[{"hash":3152403458,"name":"for2d/builtin-spine|sprite-vs:vert|sprite-fs:frag","blocks":[{"name":"ALPHA_TEST_DATA","stageFlags":16,"binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_texCoord","format":21,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]},{"name":"a_color2","format":44,"location":3,"defines":["TWO_COLORED"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["USE_LOCAL"]}],"samplerTextures":[{"name":"cc_spriteTexture","typename":"sampler2D","type":28,"count":1,"stageFlags":16,"sampleType":0,"tags":{"builtin":"local"},"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"ALPHA_TEST_DATA","stageFlags":16,"binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":1,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":1,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#if USE_LOCAL\n layout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n };\n#endif\nin vec3 a_position;\nin vec2 a_texCoord;\nin vec4 a_color;\nout vec4 v_light;\nout vec2 uv0;\n#if TWO_COLORED\n in vec4 a_color2;\n out vec4 v_dark;\n#endif\nvec4 vert () {\n vec4 pos = vec4(a_position, 1);\n #if USE_LOCAL\n pos = cc_matWorld * pos;\n #endif\n pos = cc_matViewProj * pos;\n uv0 = a_texCoord;\n v_light = a_color;\n #if TWO_COLORED\n v_dark = a_color2;\n #endif\n return pos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n layout(std140) uniform ALPHA_TEST_DATA {\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_light;\n#if TWO_COLORED\n in vec4 v_dark;\n#endif\nin vec2 uv0;\nuniform sampler2D cc_spriteTexture;\nvec4 frag () {\n vec4 o = vec4(1, 1, 1, 1);\n #if TWO_COLORED\n vec4 texColor = vec4(1, 1, 1, 1);\n texColor *= texture(cc_spriteTexture, uv0);\n o.a = texColor.a * v_light.a;\n o.rgb = ((texColor.a - 1.0) * v_dark.a + 1.0 - texColor.rgb) * v_dark.rgb + texColor.rgb * v_light.rgb;\n #else\n o *= texture(cc_spriteTexture, uv0);\n o *= v_light;\n #endif\n ALPHA_TEST(o);\n return o;\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\nuniform highp mat4 cc_matViewProj;\n#if USE_LOCAL\n uniform highp mat4 cc_matWorld;\n#endif\nattribute vec3 a_position;\nattribute vec2 a_texCoord;\nattribute vec4 a_color;\nvarying vec4 v_light;\nvarying vec2 uv0;\n#if TWO_COLORED\n attribute vec4 a_color2;\n varying vec4 v_dark;\n#endif\nvec4 vert () {\n vec4 pos = vec4(a_position, 1);\n #if USE_LOCAL\n pos = cc_matWorld * pos;\n #endif\n pos = cc_matViewProj * pos;\n uv0 = a_texCoord;\n v_light = a_color;\n #if TWO_COLORED\n v_dark = a_color2;\n #endif\n return pos;\n}\nvoid main() { gl_Position = vert(); }","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_light;\n#if TWO_COLORED\n varying vec4 v_dark;\n#endif\nvarying vec2 uv0;\nuniform sampler2D cc_spriteTexture;\nvec4 frag () {\n vec4 o = vec4(1, 1, 1, 1);\n #if TWO_COLORED\n vec4 texColor = vec4(1, 1, 1, 1);\n texColor *= texture2D(cc_spriteTexture, uv0);\n o.a = texColor.a * v_light.a;\n o.rgb = ((texColor.a - 1.0) * v_dark.a + 1.0 - texColor.rgb) * v_dark.rgb + texColor.rgb * v_light.rgb;\n #else\n o *= texture2D(cc_spriteTexture, uv0);\n o *= v_light;\n #endif\n ALPHA_TEST(o);\n return o;\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":["USE_LOCAL"]}],"samplerTextures":[{"name":"cc_spriteTexture","defines":[]}],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":56,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":1}},"defines":[{"name":"USE_LOCAL","type":"boolean"},{"name":"TWO_COLORED","type":"boolean"},{"name":"USE_ALPHA_TEST","type":"boolean"}]}],[{"passes":[{"program":"for2d/builtin-spine|sprite-vs:vert|sprite-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":false,"depthWrite":false},"properties":{"alphaThreshold":{"type":13,"value":[0.5]}}}]}]]],0,0,[],[],[]],[[[0,"particles/builtin-particle",[{"hash":3958058022,"name":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|tinted-fs:add","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_texCoord1","format":32,"location":0,"defines":[]},{"name":"a_texCoord2","format":32,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]},{"name":"a_texCoord","format":32,"location":3,"defines":[]},{"name":"a_position","format":32,"location":4,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_texCoord4","format":44,"location":5,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_color1","format":32,"location":9,"defines":["CC_RENDER_MODE"]},{"name":"a_texCoord3","format":32,"location":7,"defines":["CC_RENDER_MODE"]},{"name":"a_normal","format":32,"location":8,"defines":["CC_RENDER_MODE"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\nin vec3 a_texCoord;\n#if !CC_INSTANCE_PARTICLE\n in vec3 a_position;\n#endif\n#if CC_INSTANCE_PARTICLE\n in vec4 a_texCoord4;\n#endif\n#if CC_RENDER_MODE == 1\n in vec3 a_color1;\n#endif\n#if CC_RENDER_MODE == 4\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec4 lpvs_main () {\n vec3 compScale = scale.xyz * a_texCoord1;\n #if !CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_position.xyz, 1);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_texCoord4.xyz, 1);\n #endif\n #if CC_RENDER_MODE == 1\n vec4 velocity = vec4(a_color1.xyz, 0);\n #endif\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = cc_matWorld * velocity;\n #endif\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n vec3 rotTmp = a_texCoord2;\n float mulFactor = 1.0;\n if (rotTmp.x > 10.0 * 0.5) {\n rotTmp.x -= 10.0;\n mulFactor = -1.0;\n }\n vec4 rot = vec4(rotTmp, 0.0);\n rot.w = mulFactor * sqrt(abs(1.0 - rot.x * rot.x - rot.y * rot.y - rot.z * rot.z));\n #endif\n #if !ROTATION_OVER_TIME_MODULE_ENABLE\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = a_texCoord2;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(a_texCoord2);\n #endif\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n computeVertPos(pos, cornerOffset, rot, compScale, cc_matViewInv);\n #elif CC_RENDER_MODE == 1\n computeVertPos(pos, cornerOffset, rot, compScale, cc_cameraPos.xyz, velocity, frameTile_velLenScale.z, frameTile_velLenScale.w, a_texCoord.x);\n #elif 2\n computeVertPos(pos, cornerOffset, rot, compScale);\n #endif\n color = a_color;\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n #endif\n #if !CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n #if CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord4.w, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nlayout(std140) uniform FragConstants {\n vec4 tintColor;\n};\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture(mainTexture, uv);\n return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = add(); }"},"glsl1":{"vert":"\nprecision highp float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\n uniform vec4 mainTiling_Offset;\n uniform vec4 frameTile_velLenScale;\n uniform vec4 scale;\n uniform vec4 nodeRotation;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\nattribute vec3 a_texCoord;\n#if !CC_INSTANCE_PARTICLE\n attribute vec3 a_position;\n#endif\n#if CC_INSTANCE_PARTICLE\n attribute vec4 a_texCoord4;\n#endif\n#if CC_RENDER_MODE == 1\n attribute vec3 a_color1;\n#endif\n#if CC_RENDER_MODE == 4\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec4 lpvs_main () {\n vec3 compScale = scale.xyz * a_texCoord1;\n #if !CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_position.xyz, 1);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_texCoord4.xyz, 1);\n #endif\n #if CC_RENDER_MODE == 1\n vec4 velocity = vec4(a_color1.xyz, 0);\n #endif\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = cc_matWorld * velocity;\n #endif\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n vec3 rotTmp = a_texCoord2;\n float mulFactor = 1.0;\n if (rotTmp.x > 10.0 * 0.5) {\n rotTmp.x -= 10.0;\n mulFactor = -1.0;\n }\n vec4 rot = vec4(rotTmp, 0.0);\n rot.w = mulFactor * sqrt(abs(1.0 - rot.x * rot.x - rot.y * rot.y - rot.z * rot.z));\n #endif\n #if !ROTATION_OVER_TIME_MODULE_ENABLE\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = a_texCoord2;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(a_texCoord2);\n #endif\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n computeVertPos(pos, cornerOffset, rot, compScale, cc_matViewInv);\n #elif CC_RENDER_MODE == 1\n computeVertPos(pos, cornerOffset, rot, compScale, cc_cameraPos.xyz, velocity, frameTile_velLenScale.z, frameTile_velLenScale.w, a_texCoord.x);\n #elif 2\n computeVertPos(pos, cornerOffset, rot, compScale);\n #endif\n color = a_color;\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n #endif\n #if !CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n #if CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord4.w, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\n uniform vec4 tintColor;\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture2D(mainTexture, uv);\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = add(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":60,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":43}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_INSTANCE_PARTICLE","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"},{"name":"ROTATION_OVER_TIME_MODULE_ENABLE","type":"boolean"}]},{"hash":3441772896,"name":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|tinted-fs:multiply","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_texCoord1","format":32,"location":0,"defines":[]},{"name":"a_texCoord2","format":32,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]},{"name":"a_texCoord","format":32,"location":3,"defines":[]},{"name":"a_position","format":32,"location":4,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_texCoord4","format":44,"location":5,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_color1","format":32,"location":9,"defines":["CC_RENDER_MODE"]},{"name":"a_texCoord3","format":32,"location":7,"defines":["CC_RENDER_MODE"]},{"name":"a_normal","format":32,"location":8,"defines":["CC_RENDER_MODE"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]},{"name":"FragConstants","stageFlags":16,"binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\nin vec3 a_texCoord;\n#if !CC_INSTANCE_PARTICLE\n in vec3 a_position;\n#endif\n#if CC_INSTANCE_PARTICLE\n in vec4 a_texCoord4;\n#endif\n#if CC_RENDER_MODE == 1\n in vec3 a_color1;\n#endif\n#if CC_RENDER_MODE == 4\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec4 lpvs_main () {\n vec3 compScale = scale.xyz * a_texCoord1;\n #if !CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_position.xyz, 1);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_texCoord4.xyz, 1);\n #endif\n #if CC_RENDER_MODE == 1\n vec4 velocity = vec4(a_color1.xyz, 0);\n #endif\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = cc_matWorld * velocity;\n #endif\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n vec3 rotTmp = a_texCoord2;\n float mulFactor = 1.0;\n if (rotTmp.x > 10.0 * 0.5) {\n rotTmp.x -= 10.0;\n mulFactor = -1.0;\n }\n vec4 rot = vec4(rotTmp, 0.0);\n rot.w = mulFactor * sqrt(abs(1.0 - rot.x * rot.x - rot.y * rot.y - rot.z * rot.z));\n #endif\n #if !ROTATION_OVER_TIME_MODULE_ENABLE\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = a_texCoord2;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(a_texCoord2);\n #endif\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n computeVertPos(pos, cornerOffset, rot, compScale, cc_matViewInv);\n #elif CC_RENDER_MODE == 1\n computeVertPos(pos, cornerOffset, rot, compScale, cc_cameraPos.xyz, velocity, frameTile_velLenScale.z, frameTile_velLenScale.w, a_texCoord.x);\n #elif 2\n computeVertPos(pos, cornerOffset, rot, compScale);\n #endif\n color = a_color;\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n #endif\n #if !CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n #if CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord4.w, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nlayout(std140) uniform 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 return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = multiply(); }"},"glsl1":{"vert":"\nprecision highp float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\n uniform vec4 mainTiling_Offset;\n uniform vec4 frameTile_velLenScale;\n uniform vec4 scale;\n uniform vec4 nodeRotation;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\nattribute vec3 a_texCoord;\n#if !CC_INSTANCE_PARTICLE\n attribute vec3 a_position;\n#endif\n#if CC_INSTANCE_PARTICLE\n attribute vec4 a_texCoord4;\n#endif\n#if CC_RENDER_MODE == 1\n attribute vec3 a_color1;\n#endif\n#if CC_RENDER_MODE == 4\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec4 lpvs_main () {\n vec3 compScale = scale.xyz * a_texCoord1;\n #if !CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_position.xyz, 1);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_texCoord4.xyz, 1);\n #endif\n #if CC_RENDER_MODE == 1\n vec4 velocity = vec4(a_color1.xyz, 0);\n #endif\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = cc_matWorld * velocity;\n #endif\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n vec3 rotTmp = a_texCoord2;\n float mulFactor = 1.0;\n if (rotTmp.x > 10.0 * 0.5) {\n rotTmp.x -= 10.0;\n mulFactor = -1.0;\n }\n vec4 rot = vec4(rotTmp, 0.0);\n rot.w = mulFactor * sqrt(abs(1.0 - rot.x * rot.x - rot.y * rot.y - rot.z * rot.z));\n #endif\n #if !ROTATION_OVER_TIME_MODULE_ENABLE\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = a_texCoord2;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(a_texCoord2);\n #endif\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n computeVertPos(pos, cornerOffset, rot, compScale, cc_matViewInv);\n #elif CC_RENDER_MODE == 1\n computeVertPos(pos, cornerOffset, rot, compScale, cc_cameraPos.xyz, velocity, frameTile_velLenScale.z, frameTile_velLenScale.w, a_texCoord.x);\n #elif 2\n computeVertPos(pos, cornerOffset, rot, compScale);\n #endif\n color = a_color;\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n #endif\n #if !CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n #if CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord4.w, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\n uniform 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 return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = multiply(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":60,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":43}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_INSTANCE_PARTICLE","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"},{"name":"ROTATION_OVER_TIME_MODULE_ENABLE","type":"boolean"}]},{"hash":868591613,"name":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|no-tint-fs:addSmooth","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":1,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_texCoord1","format":32,"location":0,"defines":[]},{"name":"a_texCoord2","format":32,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]},{"name":"a_texCoord","format":32,"location":3,"defines":[]},{"name":"a_position","format":32,"location":4,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_texCoord4","format":44,"location":5,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_color1","format":32,"location":9,"defines":["CC_RENDER_MODE"]},{"name":"a_texCoord3","format":32,"location":7,"defines":["CC_RENDER_MODE"]},{"name":"a_normal","format":32,"location":8,"defines":["CC_RENDER_MODE"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":1,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\nin vec3 a_texCoord;\n#if !CC_INSTANCE_PARTICLE\n in vec3 a_position;\n#endif\n#if CC_INSTANCE_PARTICLE\n in vec4 a_texCoord4;\n#endif\n#if CC_RENDER_MODE == 1\n in vec3 a_color1;\n#endif\n#if CC_RENDER_MODE == 4\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec4 lpvs_main () {\n vec3 compScale = scale.xyz * a_texCoord1;\n #if !CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_position.xyz, 1);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_texCoord4.xyz, 1);\n #endif\n #if CC_RENDER_MODE == 1\n vec4 velocity = vec4(a_color1.xyz, 0);\n #endif\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = cc_matWorld * velocity;\n #endif\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n vec3 rotTmp = a_texCoord2;\n float mulFactor = 1.0;\n if (rotTmp.x > 10.0 * 0.5) {\n rotTmp.x -= 10.0;\n mulFactor = -1.0;\n }\n vec4 rot = vec4(rotTmp, 0.0);\n rot.w = mulFactor * sqrt(abs(1.0 - rot.x * rot.x - rot.y * rot.y - rot.z * rot.z));\n #endif\n #if !ROTATION_OVER_TIME_MODULE_ENABLE\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = a_texCoord2;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(a_texCoord2);\n #endif\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n computeVertPos(pos, cornerOffset, rot, compScale, cc_matViewInv);\n #elif CC_RENDER_MODE == 1\n computeVertPos(pos, cornerOffset, rot, compScale, cc_cameraPos.xyz, velocity, frameTile_velLenScale.z, frameTile_velLenScale.w, a_texCoord.x);\n #elif 2\n computeVertPos(pos, cornerOffset, rot, compScale);\n #endif\n color = a_color;\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n #endif\n #if !CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n #if CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord4.w, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return 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}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = addSmooth(); }"},"glsl1":{"vert":"\nprecision highp float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\n uniform vec4 mainTiling_Offset;\n uniform vec4 frameTile_velLenScale;\n uniform vec4 scale;\n uniform vec4 nodeRotation;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\nattribute vec3 a_texCoord;\n#if !CC_INSTANCE_PARTICLE\n attribute vec3 a_position;\n#endif\n#if CC_INSTANCE_PARTICLE\n attribute vec4 a_texCoord4;\n#endif\n#if CC_RENDER_MODE == 1\n attribute vec3 a_color1;\n#endif\n#if CC_RENDER_MODE == 4\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec4 lpvs_main () {\n vec3 compScale = scale.xyz * a_texCoord1;\n #if !CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_position.xyz, 1);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_texCoord4.xyz, 1);\n #endif\n #if CC_RENDER_MODE == 1\n vec4 velocity = vec4(a_color1.xyz, 0);\n #endif\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = cc_matWorld * velocity;\n #endif\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n vec3 rotTmp = a_texCoord2;\n float mulFactor = 1.0;\n if (rotTmp.x > 10.0 * 0.5) {\n rotTmp.x -= 10.0;\n mulFactor = -1.0;\n }\n vec4 rot = vec4(rotTmp, 0.0);\n rot.w = mulFactor * sqrt(abs(1.0 - rot.x * rot.x - rot.y * rot.y - rot.z * rot.z));\n #endif\n #if !ROTATION_OVER_TIME_MODULE_ENABLE\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = a_texCoord2;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(a_texCoord2);\n #endif\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n computeVertPos(pos, cornerOffset, rot, compScale, cc_matViewInv);\n #elif CC_RENDER_MODE == 1\n computeVertPos(pos, cornerOffset, rot, compScale, cc_cameraPos.xyz, velocity, frameTile_velLenScale.z, frameTile_velLenScale.w, a_texCoord.x);\n #elif 2\n computeVertPos(pos, cornerOffset, rot, compScale);\n #endif\n color = a_color;\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n #endif\n #if !CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n #if CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord4.w, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return 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":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":60,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_INSTANCE_PARTICLE","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"},{"name":"ROTATION_OVER_TIME_MODULE_ENABLE","type":"boolean"}]},{"hash":2411109044,"name":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|no-tint-fs:premultiplied","blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":1,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_texCoord1","format":32,"location":0,"defines":[]},{"name":"a_texCoord2","format":32,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]},{"name":"a_texCoord","format":32,"location":3,"defines":[]},{"name":"a_position","format":32,"location":4,"defines":["!CC_INSTANCE_PARTICLE"]},{"name":"a_texCoord4","format":44,"location":5,"defines":["CC_INSTANCE_PARTICLE"]},{"name":"a_color1","format":32,"location":9,"defines":["CC_RENDER_MODE"]},{"name":"a_texCoord3","format":32,"location":7,"defines":["CC_RENDER_MODE"]},{"name":"a_normal","format":32,"location":8,"defines":["CC_RENDER_MODE"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constants","stageFlags":1,"binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1},{"name":"nodeRotation","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":1,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\nlayout(std140) uniform Constants {\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n vec4 nodeRotation;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nout mediump vec2 uv;\nout mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\nin vec3 a_texCoord;\n#if !CC_INSTANCE_PARTICLE\n in vec3 a_position;\n#endif\n#if CC_INSTANCE_PARTICLE\n in vec4 a_texCoord4;\n#endif\n#if CC_RENDER_MODE == 1\n in vec3 a_color1;\n#endif\n#if CC_RENDER_MODE == 4\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec4 lpvs_main () {\n vec3 compScale = scale.xyz * a_texCoord1;\n #if !CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_position.xyz, 1);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_texCoord4.xyz, 1);\n #endif\n #if CC_RENDER_MODE == 1\n vec4 velocity = vec4(a_color1.xyz, 0);\n #endif\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = cc_matWorld * velocity;\n #endif\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n vec3 rotTmp = a_texCoord2;\n float mulFactor = 1.0;\n if (rotTmp.x > 10.0 * 0.5) {\n rotTmp.x -= 10.0;\n mulFactor = -1.0;\n }\n vec4 rot = vec4(rotTmp, 0.0);\n rot.w = mulFactor * sqrt(abs(1.0 - rot.x * rot.x - rot.y * rot.y - rot.z * rot.z));\n #endif\n #if !ROTATION_OVER_TIME_MODULE_ENABLE\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = a_texCoord2;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(a_texCoord2);\n #endif\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n computeVertPos(pos, cornerOffset, rot, compScale, cc_matViewInv);\n #elif CC_RENDER_MODE == 1\n computeVertPos(pos, cornerOffset, rot, compScale, cc_cameraPos.xyz, velocity, frameTile_velLenScale.z, frameTile_velLenScale.w, a_texCoord.x);\n #elif 2\n computeVertPos(pos, cornerOffset, rot, compScale);\n #endif\n color = a_color;\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n #endif\n #if !CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n #if CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord4.w, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return 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}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = premultiplied(); }"},"glsl1":{"vert":"\nprecision highp float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q.z - 2.0 * q.w * q.y);\n\tvec3 m1 = vec3(\n 2.0 * q.x * q.y - 2.0 * q.w * q.z,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.z * q.z,\n 2.0 * q.y * q.z + 2.0 * q.w * q.x);\n\tvec3 m2 = vec3(\n 2.0 * q.x * q.z + 2.0 * q.w * q.y,\n 2.0 * q.y * q.z - 2.0 * q.w * q.x,\n 1.0 - 2.0 * q.x * q.x - 2.0 * q.y * q.y);\n return mat3(m0, m1, m2);\n}\nvec4 mat3ToQuat(mat3 mat) {\n float tr = mat[0][0] + mat[1][1] + mat[2][2];\n\tfloat qw, qx, qy, qz;\n if (tr > 0.0) {\n float S = sqrt(tr + 1.0) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = 0.25 * S;\n\t qx = (mat[1][2] - mat[2][1]) * invS;\n\t qy = (mat[2][0] - mat[0][2]) * invS;\n\t qz = (mat[0][1] - mat[1][0]) * invS;\n } else if ((mat[0][0] > mat[1][1])&&(mat[0][0] > mat[2][2])) {\n float S = sqrt(1.0 + mat[0][0] - mat[1][1] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[1][2] - mat[2][1]) * invS;\n\t qx = 0.25 * S;\n\t qy = (mat[1][0] + mat[0][1]) * invS;\n\t qz = (mat[2][0] + mat[0][2]) * invS;\n } else if (mat[1][1] > mat[2][2]) {\n\t float S = sqrt(1.0 + mat[1][1] - mat[0][0] - mat[2][2]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[2][0] - mat[0][2]) * invS;\n\t qx = (mat[1][0] + mat[0][1]) * invS;\n\t qy = 0.25 * S;\n\t qz = (mat[2][1] + mat[1][2]) * invS;\n } else {\n\t float S = sqrt(1.0 + mat[2][2] - mat[0][0] - mat[1][1]) * 2.0;\n\t float invS = 1.0 / S;\n\t qw = (mat[0][1] - mat[1][0]) * invS;\n\t qx = (mat[2][0] + mat[0][2]) * invS;\n\t qy = (mat[2][1] + mat[1][2]) * invS;\n\t qz = 0.25 * S;\n }\n return vec4(qx, qy, qz, qw);\n}\n uniform vec4 mainTiling_Offset;\n uniform vec4 frameTile_velLenScale;\n uniform vec4 scale;\n uniform vec4 nodeRotation;\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matViewInv;\n uniform highp mat4 cc_matViewProj;\n uniform highp vec4 cc_cameraPos;\nuniform highp mat4 cc_matWorld;\nvarying mediump vec2 uv;\nvarying mediump vec4 color;\nvoid computeVertPos (inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n , mat4 viewInv\n#endif\n#if CC_RENDER_MODE == 1\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_RENDER_MODE == 0\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_RENDER_MODE == 1\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_RENDER_MODE == 2\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_RENDER_MODE == 3\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n rotateVecFromQuat(viewSpaceVert, q);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV (float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if CC_RENDER_MODE != 4\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\nattribute vec3 a_texCoord;\n#if !CC_INSTANCE_PARTICLE\n attribute vec3 a_position;\n#endif\n#if CC_INSTANCE_PARTICLE\n attribute vec4 a_texCoord4;\n#endif\n#if CC_RENDER_MODE == 1\n attribute vec3 a_color1;\n#endif\n#if CC_RENDER_MODE == 4\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec4 lpvs_main () {\n vec3 compScale = scale.xyz * a_texCoord1;\n #if !CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_position.xyz, 1);\n #endif\n #if CC_INSTANCE_PARTICLE\n vec4 pos = vec4(a_texCoord4.xyz, 1);\n #endif\n #if CC_RENDER_MODE == 1\n vec4 velocity = vec4(a_color1.xyz, 0);\n #endif\n #if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_RENDER_MODE == 1\n velocity = cc_matWorld * velocity;\n #endif\n #endif\n #if ROTATION_OVER_TIME_MODULE_ENABLE\n vec3 rotTmp = a_texCoord2;\n float mulFactor = 1.0;\n if (rotTmp.x > 10.0 * 0.5) {\n rotTmp.x -= 10.0;\n mulFactor = -1.0;\n }\n vec4 rot = vec4(rotTmp, 0.0);\n rot.w = mulFactor * sqrt(abs(1.0 - rot.x * rot.x - rot.y * rot.y - rot.z * rot.z));\n #endif\n #if !ROTATION_OVER_TIME_MODULE_ENABLE\n #if CC_RENDER_MODE != 4\n #if CC_RENDER_MODE == 0\n vec3 rotEuler = a_texCoord2;\n #elif CC_RENDER_MODE == 1\n vec3 rotEuler = vec3(0.);\n #endif\n #if CC_RENDER_MODE != 0 && CC_RENDER_MODE != 1\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n vec4 rot = quaternionFromEuler(rotEuler);\n #endif\n #if CC_RENDER_MODE == 4\n vec4 rot = quaternionFromEuler(a_texCoord2);\n #endif\n #endif\n #if CC_RENDER_MODE != 4\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_RENDER_MODE == 0 || CC_RENDER_MODE == 3\n computeVertPos(pos, cornerOffset, rot, compScale, cc_matViewInv);\n #elif CC_RENDER_MODE == 1\n computeVertPos(pos, cornerOffset, rot, compScale, cc_cameraPos.xyz, velocity, frameTile_velLenScale.z, frameTile_velLenScale.w, a_texCoord.x);\n #elif 2\n computeVertPos(pos, cornerOffset, rot, compScale);\n #endif\n color = a_color;\n #endif\n #if CC_RENDER_MODE == 4\n mat3 rotMat = quatToMat3(rot);\n mat3 nodeMat = quatToMat3(nodeRotation);\n rotMat = nodeMat * rotMat;\n rot = mat3ToQuat(rotMat);\n mat4 xformNoScale = matrixFromRT(rot, pos.xyz);\n mat4 xform = matFromRTS(rot, pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n #endif\n #if !CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n #if CC_INSTANCE_PARTICLE\n uv = computeUV(a_texCoord4.w, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n #endif\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return 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":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":60,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[{"name":"CC_RENDER_MODE","type":"number","range":[0,4]},{"name":"CC_INSTANCE_PARTICLE","type":"boolean"},{"name":"CC_USE_WORLD_SPACE","type":"boolean"},{"name":"ROTATION_OVER_TIME_MODULE_ENABLE","type":"boolean"}]}],[{"name":"add","passes":[{"program":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"alpha-blend","passes":[{"program":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":0,"blendDstAlpha":1,"blendAlphaEq":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":0,"blendDstAlpha":1,"blendAlphaEq":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"add-multiply","passes":[{"program":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|tinted-fs:multiply","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":7,"blendDst":1,"blendSrcAlpha":0,"blendDstAlpha":3}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|tinted-fs:multiply","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":7,"blendDst":1,"blendSrcAlpha":0,"blendDstAlpha":3}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"add-smooth","passes":[{"program":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|no-tint-fs:addSmooth","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|no-tint-fs:addSmooth","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"premultiply-blend","passes":[{"program":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|no-tint-fs:premultiplied","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":0,"blendDstAlpha":1,"blendAlphaEq":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"particles/builtin-particle|builtin/internal/particle-vs-legacy:lpvs_main|no-tint-fs:premultiplied","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":0,"blendDstAlpha":1,"blendAlphaEq":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[3,"missing-material",[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_COLOR":true}],[[[{},"mainColor",8,[4,4294902015]]],11]]],0,0,[0],[0],[1]],[[[0,"internal/builtin-occlusion-query",[{"hash":4216551032,"name":"internal/builtin-occlusion-query|occlusion-query-vs:vert|occlusion-query-fs:frag","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCWorldBound","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_worldBoundCenter","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_worldBoundHalfExtents","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":1,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":1,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nlayout(std140) uniform CCWorldBound {\n highp vec4 cc_worldBoundCenter;\n highp vec4 cc_worldBoundHalfExtents;\n};\nin vec3 a_position;\nvec4 vert () {\n vec4 position;\n position = vec4(a_position, 1.0);\n position *= cc_worldBoundHalfExtents;\n position += cc_worldBoundCenter;\n position = cc_matViewProj * position;\n return position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvec4 frag () {\n return vec4(1, 0, 0, 1);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\nuniform highp mat4 cc_matViewProj;\nuniform highp vec4 cc_worldBoundCenter;\n uniform highp vec4 cc_worldBoundHalfExtents;\nattribute vec3 a_position;\nvec4 vert () {\n vec4 position;\n position = vec4(a_position, 1.0);\n position *= cc_worldBoundHalfExtents;\n position += cc_worldBoundCenter;\n position = cc_matViewProj * position;\n return position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvec4 frag () {\n return vec4(1, 0, 0, 1);\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCWorldBound","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":44,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":0}},"defines":[]}],[{"passes":[{"program":"internal/builtin-occlusion-query|occlusion-query-vs:vert|occlusion-query-fs:frag","rasterizerState":{"cullMode":2},"blendState":{"targets":[{"blendColorMask":0}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[1,"ui-sprite-gray-alpha-sep-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_TEXTURE":true,"CC_USE_EMBEDDED_ALPHA":true,"IS_GRAY":true}]]],0,0,[0],[0],[0]],[[[1,"ui-base-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_TEXTURE":false}]]],0,0,[0],[0],[0]],[[[1,"ui-sprite-gray-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_TEXTURE":true,"CC_USE_EMBEDDED_ALPHA":false,"IS_GRAY":true}]]],0,0,[0],[0],[0]],[[[1,"ui-graphics-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{}]]],0,0,[0],[0],[8]],[[[1,"ui-sprite-alpha-sep-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_TEXTURE":true,"CC_USE_EMBEDDED_ALPHA":true,"IS_GRAY":false}]]],0,0,[0],[0],[0]],[[[1,"ui-sprite-material",[{}],[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_TEXTURE":true,"IS_GRAY":false,"CC_USE_EMBEDDED_ALPHA":false}]]],0,0,[0],[0],[0]],[[[0,"internal/builtin-debug-renderer",[{"hash":2724889405,"name":"internal/builtin-debug-renderer|debug-renderer-vs:vert|debug-renderer-fs:frag","blocks":[],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":0,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":21,"location":0,"defines":[]},{"name":"a_texCoord","format":21,"location":1,"defines":[]},{"name":"a_color","format":44,"location":2,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":0,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nin vec2 a_position;\nin vec2 a_texCoord;\nin vec4 a_color;\nout vec2 v_texCoord;\nout vec4 v_color;\nvec4 vert () {\n int orientation = int(cc_surfaceTransform.x);\n vec4 transform = vec4(1.0, 0.0, 0.0, 1.0);\n if (orientation == 0) {\n transform = vec4(1.0, 0.0, 0.0, 1.0);\n } else if (orientation == 1) {\n transform = vec4(0.0, 1.0, -1.0, 0.0);\n } else if (orientation == 2) {\n transform = vec4(-1.0, 0.0, 0.0, -1.0);\n } else if (orientation == 3) {\n transform = vec4(0.0, -1.0, 1.0, 0.0);\n }\n vec2 invScreenSize = (orientation == 1 || orientation == 3) ? cc_screenSize.wz : cc_screenSize.zw;\n vec2 position = a_position * invScreenSize;\n position = position * vec2(2.0, -2.0) + vec2(-1.0, 1.0);\n vec2 clipPos = vec2(dot(transform.xy, position), dot(transform.zw, position));\n clipPos = cc_cameraPos.w == 0.0 ? vec2(clipPos.x, -clipPos.y) : clipPos;\n v_texCoord = a_texCoord;\n v_color = a_color;\n return vec4(clipPos, 0.0, 1.0);\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin vec2 v_texCoord;\nin vec4 v_color;\nuniform sampler2D mainTexture;\nvec4 frag () {\n vec4 color = vec4(v_color.rgb, v_color.a * texture(mainTexture, v_texCoord).r);\n return CCFragOutput(color);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform mediump vec4 cc_screenSize;\nuniform highp vec4 cc_cameraPos;\n uniform mediump vec4 cc_surfaceTransform;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nattribute vec4 a_color;\nvarying vec2 v_texCoord;\nvarying vec4 v_color;\nvec4 vert () {\n int orientation = int(cc_surfaceTransform.x);\n vec4 transform = vec4(1.0, 0.0, 0.0, 1.0);\n if (orientation == 0) {\n transform = vec4(1.0, 0.0, 0.0, 1.0);\n } else if (orientation == 1) {\n transform = vec4(0.0, 1.0, -1.0, 0.0);\n } else if (orientation == 2) {\n transform = vec4(-1.0, 0.0, 0.0, -1.0);\n } else if (orientation == 3) {\n transform = vec4(0.0, -1.0, 1.0, 0.0);\n }\n vec2 invScreenSize = (orientation == 1 || orientation == 3) ? cc_screenSize.wz : cc_screenSize.zw;\n vec2 position = a_position * invScreenSize;\n position = position * vec2(2.0, -2.0) + vec2(-1.0, 1.0);\n vec2 clipPos = vec2(dot(transform.xy, position), dot(transform.zw, position));\n clipPos = cc_cameraPos.w == 0.0 ? vec2(clipPos.x, -clipPos.y) : clipPos;\n v_texCoord = a_texCoord;\n v_color = a_color;\n return vec4(clipPos, 0.0, 1.0);\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec2 v_texCoord;\nvarying vec4 v_color;\nuniform sampler2D mainTexture;\nvec4 frag () {\n vec4 color = vec4(v_color.rgb, v_color.a * texture2D(mainTexture, v_texCoord).r);\n return CCFragOutput(color);\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":42,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":42}},"defines":[]}],[{"passes":[{"program":"internal/builtin-debug-renderer|debug-renderer-vs:vert|debug-renderer-fs:frag","priority":255,"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":false,"depthWrite":false}}]}]]],0,0,[],[],[]]]] diff --git a/build/web-mobile/assets/internal/import/06/0619905d3.json b/build/web-mobile/assets/internal/import/06/0619905d3.json deleted file mode 100644 index 57f8ef8..0000000 --- a/build/web-mobile/assets/internal/import/06/0619905d3.json +++ /dev/null @@ -1 +0,0 @@ -[1,["a3zQCfCrBCDZJ4uf2rk5u8"],["_effectAsset"],[["cc.EffectAsset",["_name","shaders","techniques"],0],["cc.Material",["_name","_states","_defines","_props"],0,12]],[[0,0,1,2,4],[1,0,1,2,3,4]],[[[[0,"util/splash-screen",[{"hash":3189094080,"name":"util/splash-screen|splash-screen-vs:vert|splash-screen-fs:frag","blocks":[{"name":"Constant","stageFlags":1,"binding":0,"members":[{"name":"u_buffer0","type":16,"count":1},{"name":"u_buffer1","type":16,"count":1},{"name":"u_projection","type":25,"count":1}],"defines":[]},{"name":"Factor","stageFlags":16,"binding":1,"members":[{"name":"u_percent","type":13,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":21,"location":0,"defines":[]},{"name":"a_texCoord","format":21,"location":1,"defines":[]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"Constant","stageFlags":1,"binding":0,"members":[{"name":"u_buffer0","type":16,"count":1},{"name":"u_buffer1","type":16,"count":1},{"name":"u_projection","type":25,"count":1}],"defines":[]},{"name":"Factor","stageFlags":16,"binding":1,"members":[{"name":"u_percent","type":13,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":[]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision mediump float;\nin vec2 a_position;\nin vec2 a_texCoord;\nout vec2 v_uv;\nlayout(std140) uniform Constant {\n vec4 u_buffer0;\n vec4 u_buffer1;\n mat4 u_projection;\n};\nvec4 vert () {\n vec2 worldPos = a_position * u_buffer1.xy + u_buffer1.zw;\n vec2 clipSpace = worldPos / u_buffer0.xy * 2.0 - 1.0;\n vec4 screenPos = u_projection * vec4(clipSpace, 0.0, 1.0);\n v_uv = a_texCoord;\n return screenPos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nin vec2 v_uv;\nlayout(std140) uniform Factor {\n float u_percent;\n};\nuniform sampler2D mainTexture;\nvec4 frag () {\n vec4 color = texture(mainTexture, v_uv);\n float percent = clamp(u_percent, 0.0, 1.0);\n color.xyz *= percent;\n return color;\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision mediump float;\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nvarying vec2 v_uv;\n uniform vec4 u_buffer0;\n uniform vec4 u_buffer1;\n uniform mat4 u_projection;\nvec4 vert () {\n vec2 worldPos = a_position * u_buffer1.xy + u_buffer1.zw;\n vec2 clipSpace = worldPos / u_buffer0.xy * 2.0 - 1.0;\n vec4 screenPos = u_projection * vec4(clipSpace, 0.0, 1.0);\n v_uv = a_texCoord;\n return screenPos;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision mediump float;\nvarying vec2 v_uv;\n uniform float u_percent;\nuniform sampler2D mainTexture;\nvec4 frag () {\n vec4 color = texture2D(mainTexture, v_uv);\n float percent = clamp(u_percent, 0.0, 1.0);\n color.xyz *= percent;\n return color;\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[],"samplerTextures":[],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":6,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":1}},"defines":[]}],[{"name":"default","passes":[{"program":"util/splash-screen|splash-screen-vs:vert|splash-screen-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":false,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"resolution":{"type":14,"value":[640,960],"handleInfo":["u_buffer0",0,14]},"percent":{"type":13,"value":[0.5],"handleInfo":["u_percent",0,13]},"scale":{"type":14,"value":[200,500],"handleInfo":["u_buffer1",0,14]},"translate":{"type":14,"value":[320,480],"handleInfo":["u_buffer1",2,14]},"u_buffer0":{"type":16,"value":[640,960,0,0]},"u_percent":{"type":13,"value":[0.5]},"u_buffer1":{"type":16,"value":[200,500,320,480]}}}]}]]],0,0,[],[],[]],[[[0,"builtin-unlit",[{"hash":340555192,"name":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","blocks":[{"name":"TexCoords","stageFlags":1,"binding":0,"members":[{"name":"tilingOffset","type":16,"count":1}],"defines":["USE_TEXTURE"]},{"name":"Constant","stageFlags":16,"binding":1,"members":[{"name":"mainColor","type":16,"count":1},{"name":"colorScaleAndCutoff","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":["USE_TEXTURE"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_normal","format":32,"location":1,"defines":[]},{"name":"a_texCoord","format":21,"location":2,"defines":[]},{"name":"a_tangent","format":44,"location":3,"defines":[]},{"name":"a_joints","location":4,"defines":["CC_USE_SKINNING"]},{"name":"a_weights","format":44,"location":5,"defines":["CC_USE_SKINNING"]},{"name":"a_jointAnimInfo","format":44,"isInstanced":true,"location":6,"defines":["USE_INSTANCING","CC_USE_BAKED_ANIMATION"]},{"name":"a_matWorld0","format":44,"isInstanced":true,"location":7,"defines":["USE_INSTANCING"]},{"name":"a_matWorld1","format":44,"isInstanced":true,"location":8,"defines":["USE_INSTANCING"]},{"name":"a_matWorld2","format":44,"isInstanced":true,"location":9,"defines":["USE_INSTANCING"]},{"name":"a_lightingMapUVParam","format":44,"isInstanced":true,"location":10,"defines":["USE_INSTANCING","CC_USE_LIGHTMAP"]},{"name":"a_localShadowBiasAndProbeId","format":44,"isInstanced":true,"location":11,"defines":["USE_INSTANCING"]},{"name":"a_reflectionProbeData","format":44,"isInstanced":true,"location":12,"defines":["USE_INSTANCING","CC_USE_REFLECTION_PROBE"]},{"name":"a_sh_linear_const_r","format":44,"isInstanced":true,"location":13,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_g","format":44,"isInstanced":true,"location":14,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_b","format":44,"isInstanced":true,"location":15,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_vertexId","format":11,"location":16,"defines":["CC_USE_MORPH"]},{"name":"a_color","format":44,"location":17,"defines":["USE_VERTEX_COLOR"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCMorph","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_displacementWeights","typename":"vec4","type":16,"count":15,"isArray":true},{"name":"cc_displacementTextureInfo","typename":"vec4","type":16,"count":1}],"defines":["CC_USE_MORPH"]},{"name":"CCSkinningTexture","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_jointTextureInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinningAnimation","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_jointAnimInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinning","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_joints","typename":"vec4","type":16,"count":0,"precision":"highp ","isArray":true}],"defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","!CC_USE_REAL_TIME_JOINT_TEXTURE"]},{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["!USE_INSTANCING"]}],"samplerTextures":[{"name":"cc_PositionDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_POSITION"]},{"name":"cc_NormalDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_NORMAL"]},{"name":"cc_TangentDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_TANGENT"]},{"name":"cc_jointTexture","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"cc_realtimeJoint","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","CC_USE_REAL_TIME_JOINT_TEXTURE"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[{"name":"TexCoords","stageFlags":1,"binding":0,"members":[{"name":"tilingOffset","type":16,"count":1}],"defines":["USE_TEXTURE"]},{"name":"Constant","stageFlags":16,"binding":1,"members":[{"name":"mainColor","type":16,"count":1},{"name":"colorScaleAndCutoff","type":16,"count":1}],"defines":[]}],"samplerTextures":[{"name":"mainTexture","type":28,"count":1,"stageFlags":16,"sampleType":0,"binding":2,"defines":["USE_TEXTURE"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\nin vec4 a_tangent;\n#if CC_USE_SKINNING\n in vec4 a_joints;\n in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n in highp vec4 a_jointAnimInfo;\n #endif\n in vec4 a_matWorld0;\n in vec4 a_matWorld1;\n in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n in vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n in vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n in vec4 a_sh_linear_const_r;\n in vec4 a_sh_linear_const_g;\n in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n in float a_vertexId;\n int getVertexId() {\n return int(a_vertexId);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\n#if CC_USE_MORPH\n layout(std140) uniform CCMorph {\n vec4 cc_displacementWeights[15];\n vec4 cc_displacementTextureInfo;\n };\n #if CC_MORPH_TARGET_HAS_POSITION\n uniform sampler2D cc_PositionDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n uniform sampler2D cc_NormalDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n uniform sampler2D cc_TangentDisplacements;\n #endif\n vec2 getPixelLocation(vec2 textureResolution, int pixelIndex) {\n float pixelIndexF = float(pixelIndex);\n float x = mod(pixelIndexF, textureResolution.x);\n float y = floor(pixelIndexF / textureResolution.x);\n return vec2(x, y);\n }\n vec2 getPixelCoordFromLocation(vec2 location, vec2 textureResolution) {\n return (vec2(location.x, location.y) + .5) / textureResolution;\n }\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int pixelIndex) {\n ivec2 texSize = textureSize(tex, 0);\n return texelFetch(tex, ivec2(pixelIndex % texSize.x, pixelIndex / texSize.x), 0);\n }\n #else\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex * 4;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 x = getPixelCoordFromLocation(location + vec2(0.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 y = getPixelCoordFromLocation(location + vec2(1.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 z = getPixelCoordFromLocation(location + vec2(2.0, 0.0), cc_displacementTextureInfo.xy);\n return vec4(\n decode32(texture(tex, x)),\n decode32(texture(tex, y)),\n decode32(texture(tex, z)),\n 1.0\n );\n }\n #endif\n float getDisplacementWeight(int index) {\n int quot = index / 4;\n int remainder = index - quot * 4;\n if (remainder == 0) {\n return cc_displacementWeights[quot].x;\n } else if (remainder == 1) {\n return cc_displacementWeights[quot].y;\n } else if (remainder == 2) {\n return cc_displacementWeights[quot].z;\n } else {\n return cc_displacementWeights[quot].w;\n }\n }\n vec3 getVec3DisplacementFromTexture(sampler2D tex, int vertexIndex) {\n #if CC_MORPH_PRECOMPUTED\n return fetchVec3ArrayFromTexture(tex, vertexIndex).rgb;\n #else\n vec3 result = vec3(0, 0, 0);\n int nVertices = int(cc_displacementTextureInfo.z);\n for (int iTarget = 0; iTarget < CC_MORPH_TARGET_COUNT; ++iTarget) {\n result += (fetchVec3ArrayFromTexture(tex, nVertices * iTarget + vertexIndex).rgb * getDisplacementWeight(iTarget));\n }\n return result;\n #endif\n }\n #if CC_MORPH_TARGET_HAS_POSITION\n vec3 getPositionDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_PositionDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n vec3 getNormalDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_NormalDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n vec3 getTangentDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_TangentDisplacements, vertexId);\n }\n #endif\n void applyMorph (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n int vertexId = getVertexId();\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n normal.xyz = normal.xyz + getNormalDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n tangent.xyz = tangent.xyz + getTangentDisplacement(vertexId);\n #endif\n }\n void applyMorph (inout vec4 position) {\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(getVertexId());\n #endif\n }\n#endif\n#if CC_USE_SKINNING\n #if CC_USE_BAKED_ANIMATION\n layout(std140) uniform CCSkinningTexture {\n highp vec4 cc_jointTextureInfo;\n };\n layout(std140) uniform CCSkinningAnimation {\n highp vec4 cc_jointAnimInfo;\n };\n uniform highp sampler2D cc_jointTexture;\n void CCGetJointTextureCoords(float pixelsPerJoint, float jointIdx, out highp float x, out highp float y, out highp float invSize)\n {\n #if USE_INSTANCING\n highp float temp = pixelsPerJoint * (a_jointAnimInfo.x * a_jointAnimInfo.y + jointIdx) + a_jointAnimInfo.z;\n #else\n highp float temp = pixelsPerJoint * (cc_jointAnimInfo.x * cc_jointTextureInfo.y + jointIdx) + cc_jointTextureInfo.z;\n #endif\n invSize = cc_jointTextureInfo.w;\n highp float tempY = floor(temp * invSize);\n x = floor(temp - tempY * cc_jointTextureInfo.x);\n y = (tempY + 0.5) * invSize;\n }\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n uniform highp sampler2D cc_realtimeJoint;\n #else\n layout(std140) uniform CCSkinning {\n highp vec4 cc_joints[CC_JOINT_UNIFORM_CAPACITY * 3];\n };\n #endif\n #endif\n #if CC_USE_BAKED_ANIMATION\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(3.0, i, x, y, invSize);\n vec4 v1 = texture(cc_jointTexture, vec2((x + 0.5) * invSize, y));\n vec4 v2 = texture(cc_jointTexture, vec2((x + 1.5) * invSize, y));\n vec4 v3 = texture(cc_jointTexture, vec2((x + 2.5) * invSize, y));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(12.0, i, x, y, invSize);\n vec4 v1 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 0.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 1.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 2.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 3.5) * invSize, y)))\n );\n vec4 v2 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 4.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 5.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 6.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 7.5) * invSize, y)))\n );\n vec4 v3 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 8.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 9.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 10.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 11.5) * invSize, y)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n float x = i;\n vec4 v1 = texture(cc_realtimeJoint, vec2( x / 256.0, 0.5 / 3.0));\n vec4 v2 = texture(cc_realtimeJoint, vec2( x / 256.0, 1.5 / 3.0));\n vec4 v3 = texture(cc_realtimeJoint, vec2( x / 256.0, 2.5 / 3.0));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n float x = 4.0 * i;\n vec4 v1 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 0.5 / 3.0)))\n );\n vec4 v2 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 1.5 / 3.0)))\n );\n vec4 v3 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 2.5 / 3.0)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n mat4 getJointMatrix (float i) {\n int idx = int(i);\n vec4 v1 = cc_joints[idx * 3];\n vec4 v2 = cc_joints[idx * 3 + 1];\n vec4 v3 = cc_joints[idx * 3 + 2];\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #endif\n mat4 skinMatrix () {\n vec4 joints = vec4(a_joints);\n return getJointMatrix(joints.x) * a_weights.x\n + getJointMatrix(joints.y) * a_weights.y\n + getJointMatrix(joints.z) * a_weights.z\n + getJointMatrix(joints.w) * a_weights.w;\n }\n void CCSkin (inout vec4 position) {\n mat4 m = skinMatrix();\n position = m * position;\n }\n void CCSkin (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n mat4 m = skinMatrix();\n position = m * position;\n normal = (m * vec4(normal, 0.0)).xyz;\n tangent.xyz = (m * vec4(tangent.xyz, 0.0)).xyz;\n }\n#endif\nvoid CCVertInput(inout vec4 In)\n{\n In = vec4(a_position, 1.0);\n #if CC_USE_MORPH\n applyMorph(In);\n #endif\n #if CC_USE_SKINNING\n CCSkin(In);\n #endif\n}\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#if !USE_INSTANCING\n layout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n };\n#endif\nvoid CCGetWorldMatrix(out mat4 matWorld)\n{\n #if USE_INSTANCING\n matWorld = mat4(\n vec4(a_matWorld0.xyz, 0.0),\n vec4(a_matWorld1.xyz, 0.0),\n vec4(a_matWorld2.xyz, 0.0),\n vec4(a_matWorld0.w, a_matWorld1.w, a_matWorld2.w, 1.0)\n );\n #else\n matWorld = cc_matWorld;\n #endif\n}\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\n#if !CC_USE_ACCURATE_FOG\nout mediump float v_fog_factor;\n#endif\nvoid CC_TRANSFER_FOG(vec4 pos) {\n#if !CC_USE_ACCURATE_FOG\n CC_TRANSFER_FOG_BASE(pos, v_fog_factor);\n#endif\n}\n#if USE_VERTEX_COLOR\n in lowp vec4 a_color;\n out lowp vec4 v_color;\n#endif\n#if USE_TEXTURE\n out vec2 v_uv;\n layout(std140) uniform TexCoords {\n vec4 tilingOffset;\n };\n#endif\nvec4 vert () {\n vec4 position;\n CCVertInput(position);\n mat4 matWorld;\n CCGetWorldMatrix(matWorld);\n #if USE_TEXTURE\n v_uv = a_texCoord * tilingOffset.xy + tilingOffset.zw;\n #if SAMPLE_FROM_RT\n v_uv = cc_cameraPos.w > 1.0 ? vec2(v_uv.x, 1.0 - v_uv.y) : v_uv;\n #endif\n #endif\n #if USE_VERTEX_COLOR\n v_color = a_color;\n #endif\n CC_TRANSFER_FOG(matWorld * position);\n return cc_matProj * (cc_matView * matWorld) * position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nvec3 ACESToneMap (vec3 color) {\n color = min(color, vec3(8.0));\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\nvec3 SRGBToLinear (vec3 gamma) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return gamma;\n }\n #endif\n#endif\n return gamma * gamma;\n}\nvec3 LinearToSRGB(vec3 linear) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return linear;\n }\n #endif\n#endif\n return sqrt(linear);\n}\nvec4 packRGBE (vec3 rgb) {\n highp float maxComp = max(max(rgb.r, rgb.g), rgb.b);\n highp float e = 128.0;\n if (maxComp > 0.0001) {\n e = log(maxComp) / log(1.1);\n e = ceil(e);\n e = clamp(e + 128.0, 0.0, 255.0);\n }\n highp float sc = 1.0 / pow(1.1, e - 128.0);\n vec3 encode = clamp(rgb * sc, vec3(0.0), vec3(1.0)) * 255.0;\n vec3 encode_rounded = floor(encode) + step(encode - floor(encode), vec3(0.5));\n return vec4(encode_rounded, e) / 255.0;\n}\nvec4 CCFragOutput (vec4 color) {\n #if CC_USE_RGBE_OUTPUT\n color = packRGBE(color.rgb);\n #elif !CC_USE_FLOAT_OUTPUT\n #if CC_USE_HDR && CC_TONE_MAPPING_TYPE == HDR_TONE_MAPPING_ACES\n color.rgb = ACESToneMap(color.rgb);\n #endif\n color.rgb = LinearToSRGB(color.rgb);\n #endif\n return color;\n}\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\nvoid CC_APPLY_FOG_BASE(inout vec4 color, float factor) {\n\tcolor = vec4(mix(cc_fogColor.rgb, color.rgb, factor), color.a);\n}\n#if !CC_USE_ACCURATE_FOG\nin mediump float v_fog_factor;\n#endif\nvoid CC_APPLY_FOG(inout vec4 color) {\n#if !CC_USE_ACCURATE_FOG\n CC_APPLY_FOG_BASE(color, v_fog_factor);\n#endif\n}\nvoid CC_APPLY_FOG(inout vec4 color, vec3 worldPos) {\n#if CC_USE_ACCURATE_FOG\n float factor;\n CC_TRANSFER_FOG_BASE(vec4(worldPos, 1.0), factor);\n#else\n float factor = v_fog_factor;\n#endif\n CC_APPLY_FOG_BASE(color, factor);\n}\n#if USE_ALPHA_TEST\n#endif\n#if USE_TEXTURE\n in vec2 v_uv;\n uniform sampler2D mainTexture;\n#endif\nlayout(std140) uniform Constant {\n vec4 mainColor;\n vec4 colorScaleAndCutoff;\n};\n#if USE_VERTEX_COLOR\n in lowp vec4 v_color;\n#endif\nvec4 frag () {\n vec4 o = mainColor;\n o.rgb *= colorScaleAndCutoff.xyz;\n #if USE_VERTEX_COLOR\n o.rgb *= SRGBToLinear(v_color.rgb);\n o.a *= v_color.a;\n #endif\n #if USE_TEXTURE\n vec4 texColor = texture(mainTexture, v_uv);\n texColor.rgb = SRGBToLinear(texColor.rgb);\n o *= texColor;\n #endif\n #if USE_ALPHA_TEST\n if (o.ALPHA_TEST_CHANNEL < colorScaleAndCutoff.w) discard;\n #endif\n CC_APPLY_FOG(o);\n return CCFragOutput(o);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nattribute vec4 a_tangent;\n#if CC_USE_SKINNING\n attribute vec4 a_joints;\n attribute vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n attribute highp vec4 a_jointAnimInfo;\n #endif\n attribute vec4 a_matWorld0;\n attribute vec4 a_matWorld1;\n attribute vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n attribute vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n attribute vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n attribute vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n attribute vec4 a_sh_linear_const_r;\n attribute vec4 a_sh_linear_const_g;\n attribute vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n attribute float a_vertexId;\n int getVertexId() {\n return int(a_vertexId);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\n#if CC_USE_MORPH\n uniform vec4 cc_displacementWeights[15];\n uniform vec4 cc_displacementTextureInfo;\n #if CC_MORPH_TARGET_HAS_POSITION\n uniform sampler2D cc_PositionDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n uniform sampler2D cc_NormalDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n uniform sampler2D cc_TangentDisplacements;\n #endif\n vec2 getPixelLocation(vec2 textureResolution, int pixelIndex) {\n float pixelIndexF = float(pixelIndex);\n float x = mod(pixelIndexF, textureResolution.x);\n float y = floor(pixelIndexF / textureResolution.x);\n return vec2(x, y);\n }\n vec2 getPixelCoordFromLocation(vec2 location, vec2 textureResolution) {\n return (vec2(location.x, location.y) + .5) / textureResolution;\n }\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 uv = getPixelCoordFromLocation(location, cc_displacementTextureInfo.xy);\n return texture2D(tex, uv);\n }\n #else\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex * 4;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 x = getPixelCoordFromLocation(location + vec2(0.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 y = getPixelCoordFromLocation(location + vec2(1.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 z = getPixelCoordFromLocation(location + vec2(2.0, 0.0), cc_displacementTextureInfo.xy);\n return vec4(\n decode32(texture2D(tex, x)),\n decode32(texture2D(tex, y)),\n decode32(texture2D(tex, z)),\n 1.0\n );\n }\n #endif\n float getDisplacementWeight(int index) {\n int quot = index / 4;\n int remainder = index - quot * 4;\n if (remainder == 0) {\n return cc_displacementWeights[quot].x;\n } else if (remainder == 1) {\n return cc_displacementWeights[quot].y;\n } else if (remainder == 2) {\n return cc_displacementWeights[quot].z;\n } else {\n return cc_displacementWeights[quot].w;\n }\n }\n vec3 getVec3DisplacementFromTexture(sampler2D tex, int vertexIndex) {\n #if CC_MORPH_PRECOMPUTED\n return fetchVec3ArrayFromTexture(tex, vertexIndex).rgb;\n #else\n vec3 result = vec3(0, 0, 0);\n int nVertices = int(cc_displacementTextureInfo.z);\n for (int iTarget = 0; iTarget < CC_MORPH_TARGET_COUNT; ++iTarget) {\n result += (fetchVec3ArrayFromTexture(tex, nVertices * iTarget + vertexIndex).rgb * getDisplacementWeight(iTarget));\n }\n return result;\n #endif\n }\n #if CC_MORPH_TARGET_HAS_POSITION\n vec3 getPositionDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_PositionDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n vec3 getNormalDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_NormalDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n vec3 getTangentDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_TangentDisplacements, vertexId);\n }\n #endif\n void applyMorph (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n int vertexId = getVertexId();\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n normal.xyz = normal.xyz + getNormalDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n tangent.xyz = tangent.xyz + getTangentDisplacement(vertexId);\n #endif\n }\n void applyMorph (inout vec4 position) {\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(getVertexId());\n #endif\n }\n#endif\n#if CC_USE_SKINNING\n #if CC_USE_BAKED_ANIMATION\n uniform highp vec4 cc_jointTextureInfo;\n uniform highp vec4 cc_jointAnimInfo;\n uniform highp sampler2D cc_jointTexture;\n void CCGetJointTextureCoords(float pixelsPerJoint, float jointIdx, out highp float x, out highp float y, out highp float invSize)\n {\n #if USE_INSTANCING\n highp float temp = pixelsPerJoint * (a_jointAnimInfo.x * a_jointAnimInfo.y + jointIdx) + a_jointAnimInfo.z;\n #else\n highp float temp = pixelsPerJoint * (cc_jointAnimInfo.x * cc_jointTextureInfo.y + jointIdx) + cc_jointTextureInfo.z;\n #endif\n invSize = cc_jointTextureInfo.w;\n highp float tempY = floor(temp * invSize);\n x = floor(temp - tempY * cc_jointTextureInfo.x);\n y = (tempY + 0.5) * invSize;\n }\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n uniform highp sampler2D cc_realtimeJoint;\n #else\n uniform highp vec4 cc_joints[CC_JOINT_UNIFORM_CAPACITY * 3];\n #endif\n #endif\n #if CC_USE_BAKED_ANIMATION\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(3.0, i, x, y, invSize);\n vec4 v1 = texture2D(cc_jointTexture, vec2((x + 0.5) * invSize, y));\n vec4 v2 = texture2D(cc_jointTexture, vec2((x + 1.5) * invSize, y));\n vec4 v3 = texture2D(cc_jointTexture, vec2((x + 2.5) * invSize, y));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(12.0, i, x, y, invSize);\n vec4 v1 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 0.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 1.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 2.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 3.5) * invSize, y)))\n );\n vec4 v2 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 4.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 5.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 6.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 7.5) * invSize, y)))\n );\n vec4 v3 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 8.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 9.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 10.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 11.5) * invSize, y)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n float x = i;\n vec4 v1 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 0.5 / 3.0));\n vec4 v2 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 1.5 / 3.0));\n vec4 v3 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 2.5 / 3.0));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n float x = 4.0 * i;\n vec4 v1 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 0.5 / 3.0)))\n );\n vec4 v2 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 1.5 / 3.0)))\n );\n vec4 v3 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 2.5 / 3.0)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n mat4 getJointMatrix (float i) {\n int idx = int(i);\n vec4 v1 = cc_joints[idx * 3];\n vec4 v2 = cc_joints[idx * 3 + 1];\n vec4 v3 = cc_joints[idx * 3 + 2];\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #endif\n mat4 skinMatrix () {\n vec4 joints = vec4(a_joints);\n return getJointMatrix(joints.x) * a_weights.x\n + getJointMatrix(joints.y) * a_weights.y\n + getJointMatrix(joints.z) * a_weights.z\n + getJointMatrix(joints.w) * a_weights.w;\n }\n void CCSkin (inout vec4 position) {\n mat4 m = skinMatrix();\n position = m * position;\n }\n void CCSkin (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n mat4 m = skinMatrix();\n position = m * position;\n normal = (m * vec4(normal, 0.0)).xyz;\n tangent.xyz = (m * vec4(tangent.xyz, 0.0)).xyz;\n }\n#endif\nvoid CCVertInput(inout vec4 In)\n{\n In = vec4(a_position, 1.0);\n #if CC_USE_MORPH\n applyMorph(In);\n #endif\n #if CC_USE_SKINNING\n CCSkin(In);\n #endif\n}\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matProj;\n uniform highp vec4 cc_cameraPos;\n uniform mediump vec4 cc_fogBase;\n uniform mediump vec4 cc_fogAdd;\n#if !USE_INSTANCING\n uniform highp mat4 cc_matWorld;\n#endif\nvoid CCGetWorldMatrix(out mat4 matWorld)\n{\n #if USE_INSTANCING\n matWorld = mat4(\n vec4(a_matWorld0.xyz, 0.0),\n vec4(a_matWorld1.xyz, 0.0),\n vec4(a_matWorld2.xyz, 0.0),\n vec4(a_matWorld0.w, a_matWorld1.w, a_matWorld2.w, 1.0)\n );\n #else\n matWorld = cc_matWorld;\n #endif\n}\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\n#if !CC_USE_ACCURATE_FOG\nvarying mediump float v_fog_factor;\n#endif\nvoid CC_TRANSFER_FOG(vec4 pos) {\n#if !CC_USE_ACCURATE_FOG\n CC_TRANSFER_FOG_BASE(pos, v_fog_factor);\n#endif\n}\n#if USE_VERTEX_COLOR\n attribute lowp vec4 a_color;\n varying lowp vec4 v_color;\n#endif\n#if USE_TEXTURE\n varying vec2 v_uv;\n uniform vec4 tilingOffset;\n#endif\nvec4 vert () {\n vec4 position;\n CCVertInput(position);\n mat4 matWorld;\n CCGetWorldMatrix(matWorld);\n #if USE_TEXTURE\n v_uv = a_texCoord * tilingOffset.xy + tilingOffset.zw;\n #if SAMPLE_FROM_RT\n v_uv = cc_cameraPos.w > 1.0 ? vec2(v_uv.x, 1.0 - v_uv.y) : v_uv;\n #endif\n #endif\n #if USE_VERTEX_COLOR\n v_color = a_color;\n #endif\n CC_TRANSFER_FOG(matWorld * position);\n return cc_matProj * (cc_matView * matWorld) * position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nvec3 ACESToneMap (vec3 color) {\n color = min(color, vec3(8.0));\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\nvec3 SRGBToLinear (vec3 gamma) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return gamma;\n }\n #endif\n#endif\n return gamma * gamma;\n}\nvec3 LinearToSRGB(vec3 linear) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return linear;\n }\n #endif\n#endif\n return sqrt(linear);\n}\nvec4 packRGBE (vec3 rgb) {\n highp float maxComp = max(max(rgb.r, rgb.g), rgb.b);\n highp float e = 128.0;\n if (maxComp > 0.0001) {\n e = log(maxComp) / log(1.1);\n e = ceil(e);\n e = clamp(e + 128.0, 0.0, 255.0);\n }\n highp float sc = 1.0 / pow(1.1, e - 128.0);\n vec3 encode = clamp(rgb * sc, vec3(0.0), vec3(1.0)) * 255.0;\n vec3 encode_rounded = floor(encode) + step(encode - floor(encode), vec3(0.5));\n return vec4(encode_rounded, e) / 255.0;\n}\nvec4 CCFragOutput (vec4 color) {\n #if CC_USE_RGBE_OUTPUT\n color = packRGBE(color.rgb);\n #elif !CC_USE_FLOAT_OUTPUT\n #if CC_USE_HDR && CC_TONE_MAPPING_TYPE == HDR_TONE_MAPPING_ACES\n color.rgb = ACESToneMap(color.rgb);\n #endif\n color.rgb = LinearToSRGB(color.rgb);\n #endif\n return color;\n}\nuniform highp vec4 cc_cameraPos;\n uniform mediump vec4 cc_fogColor;\n uniform mediump vec4 cc_fogBase;\n uniform mediump vec4 cc_fogAdd;\n#if CC_USE_FOG != 4\n float LinearFog(vec4 pos, vec3 cameraPos, float fogStart, float fogEnd) {\n vec4 wPos = pos;\n float cam_dis = distance(cameraPos, wPos.xyz);\n return clamp((fogEnd - cam_dis) / (fogEnd - fogStart), 0., 1.);\n }\n float ExpFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * fogDensity);\n return f;\n }\n float ExpSquaredFog(vec4 pos, vec3 cameraPos, float fogStart, float fogDensity, float fogAtten) {\n vec4 wPos = pos;\n float cam_dis = max(distance(cameraPos, wPos.xyz) - fogStart, 0.0) / fogAtten * 4.;\n float f = exp(-cam_dis * cam_dis * fogDensity * fogDensity);\n return f;\n }\n float LayeredFog(vec4 pos, vec3 cameraPos, float fogTop, float fogRange, float fogAtten) {\n vec4 wPos = pos;\n vec3 camWorldProj = cameraPos.xyz;\n camWorldProj.y = 0.;\n vec3 worldPosProj = wPos.xyz;\n worldPosProj.y = 0.;\n float fDeltaD = distance(worldPosProj, camWorldProj) / fogAtten * 2.0;\n float fDeltaY, fDensityIntegral;\n if (cameraPos.y > fogTop) {\n if (wPos.y < fogTop) {\n fDeltaY = (fogTop - wPos.y) / fogRange * 2.0;\n fDensityIntegral = fDeltaY * fDeltaY * 0.5;\n }\n else {\n fDeltaY = 0.;\n fDensityIntegral = 0.;\n }\n }\n else {\n if (wPos.y < fogTop) {\n float fDeltaA = (fogTop - cameraPos.y) / fogRange * 2.;\n float fDeltaB = (fogTop - wPos.y) / fogRange * 2.;\n fDeltaY = abs(fDeltaA - fDeltaB);\n fDensityIntegral = abs((fDeltaA * fDeltaA * 0.5) - (fDeltaB * fDeltaB * 0.5));\n }\n else {\n fDeltaY = abs(fogTop - cameraPos.y) / fogRange * 2.;\n fDensityIntegral = abs(fDeltaY * fDeltaY * 0.5);\n }\n }\n float fDensity;\n if (fDeltaY != 0.) {\n fDensity = (sqrt(1.0 + ((fDeltaD / fDeltaY) * (fDeltaD / fDeltaY)))) * fDensityIntegral;\n }\n else {\n fDensity = 0.;\n }\n float f = exp(-fDensity);\n return f;\n }\n#endif\nvoid CC_TRANSFER_FOG_BASE(vec4 pos, out float factor)\n{\n#if CC_USE_FOG == 0\n\tfactor = LinearFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.y);\n#elif CC_USE_FOG == 1\n\tfactor = ExpFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 2\n\tfactor = ExpSquaredFog(pos, cc_cameraPos.xyz, cc_fogBase.x, cc_fogBase.z, cc_fogAdd.z);\n#elif CC_USE_FOG == 3\n\tfactor = LayeredFog(pos, cc_cameraPos.xyz, cc_fogAdd.x, cc_fogAdd.y, cc_fogAdd.z);\n#else\n\tfactor = 1.0;\n#endif\n}\nvoid CC_APPLY_FOG_BASE(inout vec4 color, float factor) {\n\tcolor = vec4(mix(cc_fogColor.rgb, color.rgb, factor), color.a);\n}\n#if !CC_USE_ACCURATE_FOG\nvarying mediump float v_fog_factor;\n#endif\nvoid CC_APPLY_FOG(inout vec4 color) {\n#if !CC_USE_ACCURATE_FOG\n CC_APPLY_FOG_BASE(color, v_fog_factor);\n#endif\n}\nvoid CC_APPLY_FOG(inout vec4 color, vec3 worldPos) {\n#if CC_USE_ACCURATE_FOG\n float factor;\n CC_TRANSFER_FOG_BASE(vec4(worldPos, 1.0), factor);\n#else\n float factor = v_fog_factor;\n#endif\n CC_APPLY_FOG_BASE(color, factor);\n}\n#if USE_ALPHA_TEST\n#endif\n#if USE_TEXTURE\n varying vec2 v_uv;\n uniform sampler2D mainTexture;\n#endif\n uniform vec4 mainColor;\n uniform vec4 colorScaleAndCutoff;\n#if USE_VERTEX_COLOR\n varying lowp vec4 v_color;\n#endif\nvec4 frag () {\n vec4 o = mainColor;\n o.rgb *= colorScaleAndCutoff.xyz;\n #if USE_VERTEX_COLOR\n o.rgb *= SRGBToLinear(v_color.rgb);\n o.a *= v_color.a;\n #endif\n #if USE_TEXTURE\n vec4 texColor = texture2D(mainTexture, v_uv);\n texColor.rgb = SRGBToLinear(texColor.rgb);\n o *= texColor;\n #endif\n #if USE_ALPHA_TEST\n if (o.ALPHA_TEST_CHANNEL < colorScaleAndCutoff.w) discard;\n #endif\n CC_APPLY_FOG(o);\n return CCFragOutput(o);\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCMorph","defines":["CC_USE_MORPH"]},{"name":"CCSkinningTexture","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinningAnimation","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinning","defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","!CC_USE_REAL_TIME_JOINT_TEXTURE"]},{"name":"CCLocal","defines":["!USE_INSTANCING"]}],"samplerTextures":[{"name":"cc_PositionDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_POSITION"]},{"name":"cc_NormalDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_NORMAL"]},{"name":"cc_TangentDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_TANGENT"]},{"name":"cc_jointTexture","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"cc_realtimeJoint","defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","CC_USE_REAL_TIME_JOINT_TEXTURE"]}],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":75,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":44}},"defines":[{"name":"USE_INSTANCING","type":"boolean"},{"name":"CC_USE_SKINNING","type":"boolean"},{"name":"CC_USE_BAKED_ANIMATION","type":"boolean"},{"name":"CC_USE_LIGHTMAP","type":"boolean"},{"name":"CC_USE_REFLECTION_PROBE","type":"boolean"},{"name":"CC_RECEIVE_SHADOW","type":"boolean"},{"name":"CC_USE_LIGHT_PROBE","type":"boolean"},{"name":"CC_USE_MORPH","type":"boolean"},{"name":"CC_MORPH_TARGET_COUNT","type":"number","range":[2,8]},{"name":"CC_MORPH_TARGET_HAS_POSITION","type":"boolean"},{"name":"CC_MORPH_TARGET_HAS_NORMAL","type":"boolean"},{"name":"CC_MORPH_TARGET_HAS_TANGENT","type":"boolean"},{"name":"CC_MORPH_PRECOMPUTED","type":"boolean"},{"name":"CC_USE_REAL_TIME_JOINT_TEXTURE","type":"boolean"},{"name":"CC_USE_FOG","type":"number","range":[0,4]},{"name":"CC_USE_ACCURATE_FOG","type":"boolean"},{"name":"USE_VERTEX_COLOR","type":"boolean"},{"name":"USE_TEXTURE","type":"boolean"},{"name":"SAMPLE_FROM_RT","type":"boolean"},{"name":"CC_USE_DEBUG_VIEW","type":"number","range":[0,3]},{"name":"CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC","type":"boolean"},{"name":"CC_SURFACES_ENABLE_DEBUG_VIEW","type":"boolean"},{"name":"CC_USE_RGBE_OUTPUT","type":"boolean"},{"name":"CC_USE_FLOAT_OUTPUT","type":"boolean"},{"name":"CC_USE_HDR","type":"boolean"},{"name":"CC_TONE_MAPPING_TYPE","type":"number","range":[0,3]},{"name":"HDR_TONE_MAPPING_ACES","type":"boolean"},{"name":"USE_ALPHA_TEST","type":"boolean"},{"name":"ALPHA_TEST_CHANNEL","type":"string","options":["a","r","g","b"]}]},{"hash":3680218420,"name":"builtin-unlit|planar-shadow-vs:vert|planar-shadow-fs:frag","blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[],"attributes":[{"name":"a_position","format":32,"location":0,"defines":[]},{"name":"a_normal","format":32,"location":1,"defines":[]},{"name":"a_texCoord","format":21,"location":2,"defines":[]},{"name":"a_tangent","format":44,"location":3,"defines":[]},{"name":"a_joints","location":4,"defines":["CC_USE_SKINNING"]},{"name":"a_weights","format":44,"location":5,"defines":["CC_USE_SKINNING"]},{"name":"a_jointAnimInfo","format":44,"isInstanced":true,"location":6,"defines":["USE_INSTANCING","CC_USE_BAKED_ANIMATION"]},{"name":"a_matWorld0","format":44,"isInstanced":true,"location":7,"defines":["USE_INSTANCING"]},{"name":"a_matWorld1","format":44,"isInstanced":true,"location":8,"defines":["USE_INSTANCING"]},{"name":"a_matWorld2","format":44,"isInstanced":true,"location":9,"defines":["USE_INSTANCING"]},{"name":"a_lightingMapUVParam","format":44,"isInstanced":true,"location":10,"defines":["USE_INSTANCING","CC_USE_LIGHTMAP"]},{"name":"a_localShadowBiasAndProbeId","format":44,"isInstanced":true,"location":11,"defines":["USE_INSTANCING"]},{"name":"a_reflectionProbeData","format":44,"isInstanced":true,"location":12,"defines":["USE_INSTANCING","CC_USE_REFLECTION_PROBE"]},{"name":"a_sh_linear_const_r","format":44,"isInstanced":true,"location":13,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_g","format":44,"isInstanced":true,"location":14,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_sh_linear_const_b","format":44,"isInstanced":true,"location":15,"defines":["USE_INSTANCING","CC_USE_LIGHT_PROBE"]},{"name":"a_vertexId","format":11,"location":16,"defines":["CC_USE_MORPH"]}],"fragColors":[{"name":"cc_FragColor","typename":"vec4","type":16,"count":1,"stageFlags":16,"location":0,"defines":[]}],"descriptors":[{"rate":0,"blocks":[{"name":"CCMorph","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_displacementWeights","typename":"vec4","type":16,"count":15,"isArray":true},{"name":"cc_displacementTextureInfo","typename":"vec4","type":16,"count":1}],"defines":["CC_USE_MORPH"]},{"name":"CCSkinningTexture","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_jointTextureInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinningAnimation","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_jointAnimInfo","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinning","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_joints","typename":"vec4","type":16,"count":0,"precision":"highp ","isArray":true}],"defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","!CC_USE_REAL_TIME_JOINT_TEXTURE"]},{"name":"CCLocal","stageFlags":1,"tags":{"builtin":"local"},"members":[{"name":"cc_matWorld","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matWorldIT","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_lightingMapUVParam","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_localShadowBias","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeData2","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData1","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_reflectionProbeBlendData2","typename":"vec4","type":16,"count":1,"precision":"highp "}],"defines":["!USE_INSTANCING"]}],"samplerTextures":[{"name":"cc_PositionDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_POSITION"]},{"name":"cc_NormalDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_NORMAL"]},{"name":"cc_TangentDisplacements","typename":"sampler2D","type":28,"count":1,"stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_TANGENT"]},{"name":"cc_jointTexture","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"cc_realtimeJoint","typename":"sampler2D","type":28,"count":1,"precision":"highp ","stageFlags":1,"sampleType":0,"tags":{"builtin":"local"},"defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","CC_USE_REAL_TIME_JOINT_TEXTURE"]}],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":1,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":2,"blocks":[],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]},{"rate":3,"blocks":[{"name":"CCGlobal","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_time","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_screenSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nativeSize","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_probeInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_debug_view_mode","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCCamera","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matViewProjInv","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_cameraPos","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_surfaceTransform","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_screenScale","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_exposure","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitDir","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_mainLitColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientSky","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_ambientGround","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogColor","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogBase","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_fogAdd","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_nearFar","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_viewPort","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]},{"name":"CCShadow","stageFlags":17,"tags":{"builtin":"global"},"members":[{"name":"cc_matLightView","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_matLightViewProj","typename":"mat4","type":25,"count":1,"precision":"highp "},{"name":"cc_shadowInvProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjDepthInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowProjInfo","typename":"vec4","type":16,"count":1,"precision":"highp "},{"name":"cc_shadowNFLSInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowWHPBInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowLPNNInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "},{"name":"cc_shadowColor","typename":"vec4","type":16,"count":1,"precision":"lowp "},{"name":"cc_planarNDInfo","typename":"vec4","type":16,"count":1,"precision":"mediump "}],"defines":[]}],"samplerTextures":[],"samplers":[],"textures":[],"buffers":[],"images":[],"subpassInputs":[]}],"glsl3":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\nfloat saturate(float value) { return clamp(value, 0.0, 1.0); }\nvec2 saturate(vec2 value) { return clamp(value, vec2(0.0), vec2(1.0)); }\nvec3 saturate(vec3 value) { return clamp(value, vec3(0.0), vec3(1.0)); }\nvec4 saturate(vec4 value) { return clamp(value, vec4(0.0), vec4(1.0)); }\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\nin vec4 a_tangent;\n#if CC_USE_SKINNING\n in vec4 a_joints;\n in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n in highp vec4 a_jointAnimInfo;\n #endif\n in vec4 a_matWorld0;\n in vec4 a_matWorld1;\n in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n in vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n in vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n in vec4 a_sh_linear_const_r;\n in vec4 a_sh_linear_const_g;\n in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n in float a_vertexId;\n int getVertexId() {\n return int(a_vertexId);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\n#if CC_USE_MORPH\n layout(std140) uniform CCMorph {\n vec4 cc_displacementWeights[15];\n vec4 cc_displacementTextureInfo;\n };\n #if CC_MORPH_TARGET_HAS_POSITION\n uniform sampler2D cc_PositionDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n uniform sampler2D cc_NormalDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n uniform sampler2D cc_TangentDisplacements;\n #endif\n vec2 getPixelLocation(vec2 textureResolution, int pixelIndex) {\n float pixelIndexF = float(pixelIndex);\n float x = mod(pixelIndexF, textureResolution.x);\n float y = floor(pixelIndexF / textureResolution.x);\n return vec2(x, y);\n }\n vec2 getPixelCoordFromLocation(vec2 location, vec2 textureResolution) {\n return (vec2(location.x, location.y) + .5) / textureResolution;\n }\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int pixelIndex) {\n ivec2 texSize = textureSize(tex, 0);\n return texelFetch(tex, ivec2(pixelIndex % texSize.x, pixelIndex / texSize.x), 0);\n }\n #else\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex * 4;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 x = getPixelCoordFromLocation(location + vec2(0.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 y = getPixelCoordFromLocation(location + vec2(1.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 z = getPixelCoordFromLocation(location + vec2(2.0, 0.0), cc_displacementTextureInfo.xy);\n return vec4(\n decode32(texture(tex, x)),\n decode32(texture(tex, y)),\n decode32(texture(tex, z)),\n 1.0\n );\n }\n #endif\n float getDisplacementWeight(int index) {\n int quot = index / 4;\n int remainder = index - quot * 4;\n if (remainder == 0) {\n return cc_displacementWeights[quot].x;\n } else if (remainder == 1) {\n return cc_displacementWeights[quot].y;\n } else if (remainder == 2) {\n return cc_displacementWeights[quot].z;\n } else {\n return cc_displacementWeights[quot].w;\n }\n }\n vec3 getVec3DisplacementFromTexture(sampler2D tex, int vertexIndex) {\n #if CC_MORPH_PRECOMPUTED\n return fetchVec3ArrayFromTexture(tex, vertexIndex).rgb;\n #else\n vec3 result = vec3(0, 0, 0);\n int nVertices = int(cc_displacementTextureInfo.z);\n for (int iTarget = 0; iTarget < CC_MORPH_TARGET_COUNT; ++iTarget) {\n result += (fetchVec3ArrayFromTexture(tex, nVertices * iTarget + vertexIndex).rgb * getDisplacementWeight(iTarget));\n }\n return result;\n #endif\n }\n #if CC_MORPH_TARGET_HAS_POSITION\n vec3 getPositionDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_PositionDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n vec3 getNormalDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_NormalDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n vec3 getTangentDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_TangentDisplacements, vertexId);\n }\n #endif\n void applyMorph (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n int vertexId = getVertexId();\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n normal.xyz = normal.xyz + getNormalDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n tangent.xyz = tangent.xyz + getTangentDisplacement(vertexId);\n #endif\n }\n void applyMorph (inout vec4 position) {\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(getVertexId());\n #endif\n }\n#endif\n#if CC_USE_SKINNING\n #if CC_USE_BAKED_ANIMATION\n layout(std140) uniform CCSkinningTexture {\n highp vec4 cc_jointTextureInfo;\n };\n layout(std140) uniform CCSkinningAnimation {\n highp vec4 cc_jointAnimInfo;\n };\n uniform highp sampler2D cc_jointTexture;\n void CCGetJointTextureCoords(float pixelsPerJoint, float jointIdx, out highp float x, out highp float y, out highp float invSize)\n {\n #if USE_INSTANCING\n highp float temp = pixelsPerJoint * (a_jointAnimInfo.x * a_jointAnimInfo.y + jointIdx) + a_jointAnimInfo.z;\n #else\n highp float temp = pixelsPerJoint * (cc_jointAnimInfo.x * cc_jointTextureInfo.y + jointIdx) + cc_jointTextureInfo.z;\n #endif\n invSize = cc_jointTextureInfo.w;\n highp float tempY = floor(temp * invSize);\n x = floor(temp - tempY * cc_jointTextureInfo.x);\n y = (tempY + 0.5) * invSize;\n }\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n uniform highp sampler2D cc_realtimeJoint;\n #else\n layout(std140) uniform CCSkinning {\n highp vec4 cc_joints[CC_JOINT_UNIFORM_CAPACITY * 3];\n };\n #endif\n #endif\n #if CC_USE_BAKED_ANIMATION\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(3.0, i, x, y, invSize);\n vec4 v1 = texture(cc_jointTexture, vec2((x + 0.5) * invSize, y));\n vec4 v2 = texture(cc_jointTexture, vec2((x + 1.5) * invSize, y));\n vec4 v3 = texture(cc_jointTexture, vec2((x + 2.5) * invSize, y));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(12.0, i, x, y, invSize);\n vec4 v1 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 0.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 1.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 2.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 3.5) * invSize, y)))\n );\n vec4 v2 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 4.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 5.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 6.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 7.5) * invSize, y)))\n );\n vec4 v3 = vec4(\n decode32(texture(cc_jointTexture, vec2((x + 8.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 9.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 10.5) * invSize, y))),\n decode32(texture(cc_jointTexture, vec2((x + 11.5) * invSize, y)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n float x = i;\n vec4 v1 = texture(cc_realtimeJoint, vec2( x / 256.0, 0.5 / 3.0));\n vec4 v2 = texture(cc_realtimeJoint, vec2( x / 256.0, 1.5 / 3.0));\n vec4 v3 = texture(cc_realtimeJoint, vec2( x / 256.0, 2.5 / 3.0));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n float x = 4.0 * i;\n vec4 v1 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 0.5 / 3.0)))\n );\n vec4 v2 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 1.5 / 3.0)))\n );\n vec4 v3 = vec4(\n decode32(texture(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 2.5 / 3.0)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n mat4 getJointMatrix (float i) {\n int idx = int(i);\n vec4 v1 = cc_joints[idx * 3];\n vec4 v2 = cc_joints[idx * 3 + 1];\n vec4 v3 = cc_joints[idx * 3 + 2];\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #endif\n mat4 skinMatrix () {\n vec4 joints = vec4(a_joints);\n return getJointMatrix(joints.x) * a_weights.x\n + getJointMatrix(joints.y) * a_weights.y\n + getJointMatrix(joints.z) * a_weights.z\n + getJointMatrix(joints.w) * a_weights.w;\n }\n void CCSkin (inout vec4 position) {\n mat4 m = skinMatrix();\n position = m * position;\n }\n void CCSkin (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n mat4 m = skinMatrix();\n position = m * position;\n normal = (m * vec4(normal, 0.0)).xyz;\n tangent.xyz = (m * vec4(tangent.xyz, 0.0)).xyz;\n }\n#endif\nvoid CCVertInput(inout vec4 In)\n{\n In = vec4(a_position, 1.0);\n #if CC_USE_MORPH\n applyMorph(In);\n #endif\n #if CC_USE_SKINNING\n CCSkin(In);\n #endif\n}\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\n#if !USE_INSTANCING\n layout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n };\n#endif\nvoid CCGetWorldMatrixFull(out mat4 matWorld, out mat4 matWorldIT)\n{\n #if USE_INSTANCING\n matWorld = mat4(\n vec4(a_matWorld0.xyz, 0.0),\n vec4(a_matWorld1.xyz, 0.0),\n vec4(a_matWorld2.xyz, 0.0),\n vec4(a_matWorld0.w, a_matWorld1.w, a_matWorld2.w, 1.0)\n );\n vec3 scale = 1.0 / vec3(length(a_matWorld0.xyz), length(a_matWorld1.xyz), length(a_matWorld2.xyz));\n vec3 scale2 = scale * scale;\n matWorldIT = mat4(\n vec4(a_matWorld0.xyz * scale2.x, 0.0),\n vec4(a_matWorld1.xyz * scale2.y, 0.0),\n vec4(a_matWorld2.xyz * scale2.z, 0.0),\n vec4(0.0, 0.0, 0.0, 1.0)\n );\n #else\n matWorld = cc_matWorld;\n matWorldIT = cc_matWorldIT;\n #endif\n}\nlayout(std140) uniform CCShadow {\n highp mat4 cc_matLightView;\n highp mat4 cc_matLightViewProj;\n highp vec4 cc_shadowInvProjDepthInfo;\n highp vec4 cc_shadowProjDepthInfo;\n highp vec4 cc_shadowProjInfo;\n mediump vec4 cc_shadowNFLSInfo;\n mediump vec4 cc_shadowWHPBInfo;\n mediump vec4 cc_shadowLPNNInfo;\n lowp vec4 cc_shadowColor;\n mediump vec4 cc_planarNDInfo;\n};\nvec4 CalculatePlanarShadowPos(vec3 meshWorldPos, vec3 cameraPos, vec3 lightDir, vec4 plane) {\n vec3 P = meshWorldPos;\n vec3 L = lightDir;\n vec3 N = plane.xyz;\n float d = plane.w + EPSILON_LOWP;\n float dist = (-d - dot(P, N)) / (dot(L, N) + EPSILON_LOWP);\n vec3 shadowPos = P + L * dist;\n return vec4(shadowPos, dist);\n}\nvec4 CalculatePlanarShadowClipPos(vec4 shadowPos, vec3 cameraPos, mat4 matView, mat4 matProj, vec4 nearFar, float bias) {\n vec4 camPos = matView * vec4(shadowPos.xyz, 1.0);\n float lerpCoef = saturate((nearFar.z < 0.0 ? -camPos.z : camPos.z) / (nearFar.y - nearFar.x));\n camPos.z += mix(nearFar.x * 0.01, nearFar.y * EPSILON_LOWP * bias, lerpCoef);\n return matProj * camPos;\n}\nout float v_dist;\nvec4 vert () {\n vec4 position;\n CCVertInput(position);\n mat4 matWorld, matWorldIT;\n CCGetWorldMatrixFull(matWorld, matWorldIT);\n vec3 worldPos = (matWorld * position).xyz;\n vec4 shadowPos = CalculatePlanarShadowPos(worldPos, cc_cameraPos.xyz, cc_mainLitDir.xyz, cc_planarNDInfo);\n position = CalculatePlanarShadowClipPos(shadowPos, cc_cameraPos.xyz, cc_matView, cc_matProj, cc_nearFar, cc_shadowWHPBInfo.w);\n v_dist = shadowPos.w;\n return position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nlayout(std140) uniform CCShadow {\n highp mat4 cc_matLightView;\n highp mat4 cc_matLightViewProj;\n highp vec4 cc_shadowInvProjDepthInfo;\n highp vec4 cc_shadowProjDepthInfo;\n highp vec4 cc_shadowProjInfo;\n mediump vec4 cc_shadowNFLSInfo;\n mediump vec4 cc_shadowWHPBInfo;\n mediump vec4 cc_shadowLPNNInfo;\n lowp vec4 cc_shadowColor;\n mediump vec4 cc_planarNDInfo;\n};\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nin float v_dist;\nvec4 frag () {\n if(v_dist < 0.0)\n discard;\n return CCFragOutput(cc_shadowColor);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"},"glsl1":{"vert":"\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\nfloat saturate(float value) { return clamp(value, 0.0, 1.0); }\nvec2 saturate(vec2 value) { return clamp(value, vec2(0.0), vec2(1.0)); }\nvec3 saturate(vec3 value) { return clamp(value, vec3(0.0), vec3(1.0)); }\nvec4 saturate(vec4 value) { return clamp(value, vec4(0.0), vec4(1.0)); }\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nattribute vec4 a_tangent;\n#if CC_USE_SKINNING\n attribute vec4 a_joints;\n attribute vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n attribute highp vec4 a_jointAnimInfo;\n #endif\n attribute vec4 a_matWorld0;\n attribute vec4 a_matWorld1;\n attribute vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n attribute vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n attribute vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n attribute vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n attribute vec4 a_sh_linear_const_r;\n attribute vec4 a_sh_linear_const_g;\n attribute vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n attribute float a_vertexId;\n int getVertexId() {\n return int(a_vertexId);\n }\n#endif\nhighp float decode32 (highp vec4 rgba) {\n rgba = rgba * 255.0;\n highp float Sign = 1.0 - (step(128.0, (rgba[3]) + 0.5)) * 2.0;\n highp float Exponent = 2.0 * (mod(float(int((rgba[3]) + 0.5)), 128.0)) + (step(128.0, (rgba[2]) + 0.5)) - 127.0;\n highp float Mantissa = (mod(float(int((rgba[2]) + 0.5)), 128.0)) * 65536.0 + rgba[1] * 256.0 + rgba[0] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n}\n#if CC_USE_MORPH\n uniform vec4 cc_displacementWeights[15];\n uniform vec4 cc_displacementTextureInfo;\n #if CC_MORPH_TARGET_HAS_POSITION\n uniform sampler2D cc_PositionDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n uniform sampler2D cc_NormalDisplacements;\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n uniform sampler2D cc_TangentDisplacements;\n #endif\n vec2 getPixelLocation(vec2 textureResolution, int pixelIndex) {\n float pixelIndexF = float(pixelIndex);\n float x = mod(pixelIndexF, textureResolution.x);\n float y = floor(pixelIndexF / textureResolution.x);\n return vec2(x, y);\n }\n vec2 getPixelCoordFromLocation(vec2 location, vec2 textureResolution) {\n return (vec2(location.x, location.y) + .5) / textureResolution;\n }\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 uv = getPixelCoordFromLocation(location, cc_displacementTextureInfo.xy);\n return texture2D(tex, uv);\n }\n #else\n vec4 fetchVec3ArrayFromTexture(sampler2D tex, int elementIndex) {\n int pixelIndex = elementIndex * 4;\n vec2 location = getPixelLocation(cc_displacementTextureInfo.xy, pixelIndex);\n vec2 x = getPixelCoordFromLocation(location + vec2(0.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 y = getPixelCoordFromLocation(location + vec2(1.0, 0.0), cc_displacementTextureInfo.xy);\n vec2 z = getPixelCoordFromLocation(location + vec2(2.0, 0.0), cc_displacementTextureInfo.xy);\n return vec4(\n decode32(texture2D(tex, x)),\n decode32(texture2D(tex, y)),\n decode32(texture2D(tex, z)),\n 1.0\n );\n }\n #endif\n float getDisplacementWeight(int index) {\n int quot = index / 4;\n int remainder = index - quot * 4;\n if (remainder == 0) {\n return cc_displacementWeights[quot].x;\n } else if (remainder == 1) {\n return cc_displacementWeights[quot].y;\n } else if (remainder == 2) {\n return cc_displacementWeights[quot].z;\n } else {\n return cc_displacementWeights[quot].w;\n }\n }\n vec3 getVec3DisplacementFromTexture(sampler2D tex, int vertexIndex) {\n #if CC_MORPH_PRECOMPUTED\n return fetchVec3ArrayFromTexture(tex, vertexIndex).rgb;\n #else\n vec3 result = vec3(0, 0, 0);\n int nVertices = int(cc_displacementTextureInfo.z);\n for (int iTarget = 0; iTarget < CC_MORPH_TARGET_COUNT; ++iTarget) {\n result += (fetchVec3ArrayFromTexture(tex, nVertices * iTarget + vertexIndex).rgb * getDisplacementWeight(iTarget));\n }\n return result;\n #endif\n }\n #if CC_MORPH_TARGET_HAS_POSITION\n vec3 getPositionDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_PositionDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n vec3 getNormalDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_NormalDisplacements, vertexId);\n }\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n vec3 getTangentDisplacement(int vertexId) {\n return getVec3DisplacementFromTexture(cc_TangentDisplacements, vertexId);\n }\n #endif\n void applyMorph (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n int vertexId = getVertexId();\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_NORMAL\n normal.xyz = normal.xyz + getNormalDisplacement(vertexId);\n #endif\n #if CC_MORPH_TARGET_HAS_TANGENT\n tangent.xyz = tangent.xyz + getTangentDisplacement(vertexId);\n #endif\n }\n void applyMorph (inout vec4 position) {\n #if CC_MORPH_TARGET_HAS_POSITION\n position.xyz = position.xyz + getPositionDisplacement(getVertexId());\n #endif\n }\n#endif\n#if CC_USE_SKINNING\n #if CC_USE_BAKED_ANIMATION\n uniform highp vec4 cc_jointTextureInfo;\n uniform highp vec4 cc_jointAnimInfo;\n uniform highp sampler2D cc_jointTexture;\n void CCGetJointTextureCoords(float pixelsPerJoint, float jointIdx, out highp float x, out highp float y, out highp float invSize)\n {\n #if USE_INSTANCING\n highp float temp = pixelsPerJoint * (a_jointAnimInfo.x * a_jointAnimInfo.y + jointIdx) + a_jointAnimInfo.z;\n #else\n highp float temp = pixelsPerJoint * (cc_jointAnimInfo.x * cc_jointTextureInfo.y + jointIdx) + cc_jointTextureInfo.z;\n #endif\n invSize = cc_jointTextureInfo.w;\n highp float tempY = floor(temp * invSize);\n x = floor(temp - tempY * cc_jointTextureInfo.x);\n y = (tempY + 0.5) * invSize;\n }\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n uniform highp sampler2D cc_realtimeJoint;\n #else\n uniform highp vec4 cc_joints[CC_JOINT_UNIFORM_CAPACITY * 3];\n #endif\n #endif\n #if CC_USE_BAKED_ANIMATION\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(3.0, i, x, y, invSize);\n vec4 v1 = texture2D(cc_jointTexture, vec2((x + 0.5) * invSize, y));\n vec4 v2 = texture2D(cc_jointTexture, vec2((x + 1.5) * invSize, y));\n vec4 v3 = texture2D(cc_jointTexture, vec2((x + 2.5) * invSize, y));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n highp float x, y, invSize;\n CCGetJointTextureCoords(12.0, i, x, y, invSize);\n vec4 v1 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 0.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 1.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 2.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 3.5) * invSize, y)))\n );\n vec4 v2 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 4.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 5.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 6.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 7.5) * invSize, y)))\n );\n vec4 v3 = vec4(\n decode32(texture2D(cc_jointTexture, vec2((x + 8.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 9.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 10.5) * invSize, y))),\n decode32(texture2D(cc_jointTexture, vec2((x + 11.5) * invSize, y)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n #if CC_USE_REAL_TIME_JOINT_TEXTURE\n #if CC_DEVICE_SUPPORT_FLOAT_TEXTURE\n mat4 getJointMatrix (float i) {\n float x = i;\n vec4 v1 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 0.5 / 3.0));\n vec4 v2 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 1.5 / 3.0));\n vec4 v3 = texture2D(cc_realtimeJoint, vec2( x / 256.0, 2.5 / 3.0));\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #else\n mat4 getJointMatrix (float i) {\n float x = 4.0 * i;\n vec4 v1 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 0.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 0.5 / 3.0)))\n );\n vec4 v2 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 1.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 1.5 / 3.0)))\n );\n vec4 v3 = vec4(\n decode32(texture2D(cc_realtimeJoint, vec2((x + 0.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 1.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 2.5)/ 1024.0, 2.5 / 3.0))),\n decode32(texture2D(cc_realtimeJoint, vec2((x + 3.5)/ 1024.0, 2.5 / 3.0)))\n );\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #else\n mat4 getJointMatrix (float i) {\n int idx = int(i);\n vec4 v1 = cc_joints[idx * 3];\n vec4 v2 = cc_joints[idx * 3 + 1];\n vec4 v3 = cc_joints[idx * 3 + 2];\n return mat4(vec4(v1.xyz, 0.0), vec4(v2.xyz, 0.0), vec4(v3.xyz, 0.0), vec4(v1.w, v2.w, v3.w, 1.0));\n }\n #endif\n #endif\n mat4 skinMatrix () {\n vec4 joints = vec4(a_joints);\n return getJointMatrix(joints.x) * a_weights.x\n + getJointMatrix(joints.y) * a_weights.y\n + getJointMatrix(joints.z) * a_weights.z\n + getJointMatrix(joints.w) * a_weights.w;\n }\n void CCSkin (inout vec4 position) {\n mat4 m = skinMatrix();\n position = m * position;\n }\n void CCSkin (inout vec4 position, inout vec3 normal, inout vec4 tangent) {\n mat4 m = skinMatrix();\n position = m * position;\n normal = (m * vec4(normal, 0.0)).xyz;\n tangent.xyz = (m * vec4(tangent.xyz, 0.0)).xyz;\n }\n#endif\nvoid CCVertInput(inout vec4 In)\n{\n In = vec4(a_position, 1.0);\n #if CC_USE_MORPH\n applyMorph(In);\n #endif\n #if CC_USE_SKINNING\n CCSkin(In);\n #endif\n}\nuniform highp mat4 cc_matView;\n uniform highp mat4 cc_matProj;\n uniform highp vec4 cc_cameraPos;\n uniform mediump vec4 cc_mainLitDir;\n uniform mediump vec4 cc_nearFar;\n#if !USE_INSTANCING\n uniform highp mat4 cc_matWorld;\n uniform highp mat4 cc_matWorldIT;\n#endif\nvoid CCGetWorldMatrixFull(out mat4 matWorld, out mat4 matWorldIT)\n{\n #if USE_INSTANCING\n matWorld = mat4(\n vec4(a_matWorld0.xyz, 0.0),\n vec4(a_matWorld1.xyz, 0.0),\n vec4(a_matWorld2.xyz, 0.0),\n vec4(a_matWorld0.w, a_matWorld1.w, a_matWorld2.w, 1.0)\n );\n vec3 scale = 1.0 / vec3(length(a_matWorld0.xyz), length(a_matWorld1.xyz), length(a_matWorld2.xyz));\n vec3 scale2 = scale * scale;\n matWorldIT = mat4(\n vec4(a_matWorld0.xyz * scale2.x, 0.0),\n vec4(a_matWorld1.xyz * scale2.y, 0.0),\n vec4(a_matWorld2.xyz * scale2.z, 0.0),\n vec4(0.0, 0.0, 0.0, 1.0)\n );\n #else\n matWorld = cc_matWorld;\n matWorldIT = cc_matWorldIT;\n #endif\n}\nuniform mediump vec4 cc_shadowWHPBInfo;\n uniform mediump vec4 cc_planarNDInfo;\nvec4 CalculatePlanarShadowPos(vec3 meshWorldPos, vec3 cameraPos, vec3 lightDir, vec4 plane) {\n vec3 P = meshWorldPos;\n vec3 L = lightDir;\n vec3 N = plane.xyz;\n float d = plane.w + EPSILON_LOWP;\n float dist = (-d - dot(P, N)) / (dot(L, N) + EPSILON_LOWP);\n vec3 shadowPos = P + L * dist;\n return vec4(shadowPos, dist);\n}\nvec4 CalculatePlanarShadowClipPos(vec4 shadowPos, vec3 cameraPos, mat4 matView, mat4 matProj, vec4 nearFar, float bias) {\n vec4 camPos = matView * vec4(shadowPos.xyz, 1.0);\n float lerpCoef = saturate((nearFar.z < 0.0 ? -camPos.z : camPos.z) / (nearFar.y - nearFar.x));\n camPos.z += mix(nearFar.x * 0.01, nearFar.y * EPSILON_LOWP * bias, lerpCoef);\n return matProj * camPos;\n}\nvarying float v_dist;\nvec4 vert () {\n vec4 position;\n CCVertInput(position);\n mat4 matWorld, matWorldIT;\n CCGetWorldMatrixFull(matWorld, matWorldIT);\n vec3 worldPos = (matWorld * position).xyz;\n vec4 shadowPos = CalculatePlanarShadowPos(worldPos, cc_cameraPos.xyz, cc_mainLitDir.xyz, cc_planarNDInfo);\n position = CalculatePlanarShadowClipPos(shadowPos, cc_cameraPos.xyz, cc_matView, cc_matProj, cc_nearFar, cc_shadowWHPBInfo.w);\n v_dist = shadowPos.w;\n return position;\n}\nvoid main() { gl_Position = vert(); }","frag":"\nprecision highp float;\nuniform lowp vec4 cc_shadowColor;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying float v_dist;\nvec4 frag () {\n if(v_dist < 0.0)\n discard;\n return CCFragOutput(cc_shadowColor);\n}\nvoid main() { gl_FragColor = frag(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]},{"name":"CCCamera","defines":[]},{"name":"CCShadow","defines":[]}],"samplerTextures":[],"buffers":[],"images":[]},"locals":{"blocks":[{"name":"CCMorph","defines":["CC_USE_MORPH"]},{"name":"CCSkinningTexture","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinningAnimation","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"CCSkinning","defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","!CC_USE_REAL_TIME_JOINT_TEXTURE"]},{"name":"CCLocal","defines":["!USE_INSTANCING"]}],"samplerTextures":[{"name":"cc_PositionDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_POSITION"]},{"name":"cc_NormalDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_NORMAL"]},{"name":"cc_TangentDisplacements","defines":["CC_USE_MORPH","CC_MORPH_TARGET_HAS_TANGENT"]},{"name":"cc_jointTexture","defines":["CC_USE_SKINNING","CC_USE_BAKED_ANIMATION"]},{"name":"cc_realtimeJoint","defines":["CC_USE_SKINNING","!CC_USE_BAKED_ANIMATION","CC_USE_REAL_TIME_JOINT_TEXTURE"]}],"buffers":[],"images":[]},"statistics":{"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS":90,"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS":58}},"defines":[{"name":"USE_INSTANCING","type":"boolean"},{"name":"CC_USE_SKINNING","type":"boolean"},{"name":"CC_USE_BAKED_ANIMATION","type":"boolean"},{"name":"CC_USE_LIGHTMAP","type":"boolean"},{"name":"CC_USE_REFLECTION_PROBE","type":"boolean"},{"name":"CC_RECEIVE_SHADOW","type":"boolean"},{"name":"CC_USE_LIGHT_PROBE","type":"boolean"},{"name":"CC_USE_MORPH","type":"boolean"},{"name":"CC_MORPH_TARGET_COUNT","type":"number","range":[2,8]},{"name":"CC_MORPH_TARGET_HAS_POSITION","type":"boolean"},{"name":"CC_MORPH_TARGET_HAS_NORMAL","type":"boolean"},{"name":"CC_MORPH_TARGET_HAS_TANGENT","type":"boolean"},{"name":"CC_MORPH_PRECOMPUTED","type":"boolean"},{"name":"CC_USE_REAL_TIME_JOINT_TEXTURE","type":"boolean"}]}],[{"name":"opaque","passes":[{"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","properties":{"mainTexture":{"value":"grey","type":28},"tilingOffset":{"type":16,"value":[1,1,0,0]},"mainColor":{"linear":true,"type":16,"value":[1,1,1,1]},"colorScale":{"type":15,"value":[1,1,1],"handleInfo":["colorScaleAndCutoff",0,15]},"alphaThreshold":{"type":13,"value":[0.5],"handleInfo":["colorScaleAndCutoff",3,13]},"color":{"linear":true,"type":16,"handleInfo":["mainColor",0,16]},"colorScaleAndCutoff":{"type":16,"value":[1,1,1,0.5]}}},{"phase":"planar-shadow","propertyIndex":0,"program":"builtin-unlit|planar-shadow-vs:vert|planar-shadow-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false,"stencilTestFront":true,"stencilFuncFront":5,"stencilPassOpFront":2,"stencilRefBack":128,"stencilRefFront":128,"stencilReadMaskBack":128,"stencilReadMaskFront":128,"stencilWriteMaskBack":128,"stencilWriteMaskFront":128}},{"phase":"deferred-forward","propertyIndex":0,"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag"}]},{"name":"transparent","passes":[{"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"tilingOffset":{"type":16,"value":[1,1,0,0]},"mainColor":{"linear":true,"type":16,"value":[1,1,1,1]},"colorScale":{"type":15,"value":[1,1,1],"handleInfo":["colorScaleAndCutoff",0,15]},"alphaThreshold":{"type":13,"value":[0.5],"handleInfo":["colorScaleAndCutoff",3,13]},"color":{"linear":true,"type":16,"handleInfo":["mainColor",0,16]},"colorScaleAndCutoff":{"type":16,"value":[1,1,1,0.5]}}},{"phase":"planar-shadow","propertyIndex":0,"program":"builtin-unlit|planar-shadow-vs:vert|planar-shadow-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false,"stencilTestFront":true,"stencilFuncFront":5,"stencilPassOpFront":2,"stencilRefBack":128,"stencilRefFront":128,"stencilReadMaskBack":128,"stencilReadMaskFront":128,"stencilWriteMaskBack":128,"stencilWriteMaskFront":128}},{"phase":"deferred-forward","propertyIndex":0,"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"add","passes":[{"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"tilingOffset":{"type":16,"value":[1,1,0,0]},"mainColor":{"linear":true,"type":16,"value":[1,1,1,1]},"colorScale":{"type":15,"value":[1,1,1],"handleInfo":["colorScaleAndCutoff",0,15]},"alphaThreshold":{"type":13,"value":[0.5],"handleInfo":["colorScaleAndCutoff",3,13]},"color":{"linear":true,"type":16,"handleInfo":["mainColor",0,16]},"colorScaleAndCutoff":{"type":16,"value":[1,1,1,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":1,"blendSrcAlpha":2,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]},{"name":"alpha-blend","passes":[{"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":2,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":28},"tilingOffset":{"type":16,"value":[1,1,0,0]},"mainColor":{"linear":true,"type":16,"value":[1,1,1,1]},"colorScale":{"type":15,"value":[1,1,1],"handleInfo":["colorScaleAndCutoff",0,15]},"alphaThreshold":{"type":13,"value":[0.5],"handleInfo":["colorScaleAndCutoff",3,13]},"color":{"linear":true,"type":16,"handleInfo":["mainColor",0,16]},"colorScaleAndCutoff":{"type":16,"value":[1,1,1,0.5]}}},{"phase":"deferred-forward","propertyIndex":0,"program":"builtin-unlit|unlit-vs:vert|unlit-fs:frag","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":2,"blendDst":4,"blendSrcAlpha":2,"blendDstAlpha":4}]},"depthStencilState":{"depthTest":true,"depthWrite":false}}]}]]],0,0,[],[],[]],[[[1,"missing-effect-material",[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_COLOR":true}],[[[{},"mainColor",8,[4,4278255615]]],11]]],0,0,[0],[0],[0]],[[[1,"missing-material",[{"rasterizerState":{},"depthStencilState":{},"blendState":{"targets":[{}]}}],[{"USE_COLOR":true}],[[[{},"mainColor",8,[4,4294902015]]],11]]],0,0,[0],[0],[0]]]] diff --git a/build/web-mobile/assets/internal/native/08/0835f102-5471-47a3-9a76-01c07ac9cdb2/OpenSans-Regular.ttf b/build/web-mobile/assets/internal/native/08/0835f102-5471-47a3-9a76-01c07ac9cdb2/OpenSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..db433349b7047f72f40072630c1bc110620bf09e GIT binary patch literal 217360 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 !}#gv~NV!5|5YF|kE)J0y^zWbk4>=%|6F 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 literal 0 HcmV?d00001 diff --git a/build/web-mobile/assets/internal/native/0e/0ed97c56-390e-4dd1-96b7-e7f2d93a98ed/OpenSans-Italic.ttf b/build/web-mobile/assets/internal/native/0e/0ed97c56-390e-4dd1-96b7-e7f2d93a98ed/OpenSans-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c90da48ff3b8ad6167236d70c48df4d7b5de3bbb GIT binary patch literal 212896 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 I-Ko?4FC8~NI{*Lx literal 0 HcmV?d00001 diff --git a/build/web-mobile/assets/internal/native/b2/b23391b6-52eb-46a6-8da1-6244d9d315fb/OpenSans-BoldItalic.ttf b/build/web-mobile/assets/internal/native/b2/b23391b6-52eb-46a6-8da1-6244d9d315fb/OpenSans-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9bc800958a421d937fc392e00beaef4eea76dc71 GIT binary patch literal 213292 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

JU{jq<7f203t|Ihq? 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

93Tg2c}Lc^2oc3nPS$ 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 literal 0 HcmV?d00001 diff --git a/build/web-mobile/cocos-js/assets/meshopt_decoder.wasm-Dt74TiIT.wasm b/build/web-mobile/cocos-js/assets/meshopt_decoder.wasm-Dt74TiIT.wasm new file mode 100644 index 0000000000000000000000000000000000000000..12d0776ec13e7a8dc9b7faf60e852e47b69c0c92 GIT binary patch literal 4895 zcmbtY&u`>N6|Qo*-R-#DcDp-bnOvT|a~LE>;K z*=UOSH zzZ*VQ>hWOBAH9C8`Omnu8AeL$z?gy2N=GBSvVZ)WPKLi2M9 z|K)0-%-+B6MuAHHlxF-xv!M{vwoN= z8Hkavu7(mUB*?#}d^xgL*GhsHWhe%6UcnK-q5bBKT2`UG3b4KkP7cc0s&da9%AV+t zQZ2D)*<0W)u0@|5REf=M;KNI6Y8zaZhfv{n5JPvCwL~_oWnNcvs-HOr zm({-PQ()f-gmwjl?01-e7HnhA`xpRbPzNQmM#%*MvqlLF)ZVtOtv>CmVZ3i_b=k-4 zH0QHE=B7EHZ0JU)D0?VR=+@ zSiRE??N@z_H)jj8ZZM(SjUkRe1RPf64@)8>%Q$GLG@?PIQs}9a{a-4L;6+E1%u@j9 zmI97Ppg`-SuIAK93INrz4NRJmZ4NcJP($mxO+yPNZA9U|3U;ailWtc78uiqeooYa& z+tq+bJvHG@H6YUMYQUnNn!!#r;L+`Bz@wg;Xr~&-quWB4YlzJc3W}yORR5$mL%|W#!I7InQKSF6PENW+gdX48H3MOjhcOIoWNeDm{ zmFUQo(u8$wffR3!DYEPm!hr;RzV}!1_-u=5QS&oA5f_=mK-s z0V3Z4XnQ~jxD4CVZQJMH%623POrHz3udCFXj>|*1CHqKcL(}1KnQhnvbB_mgNUIU$2^kVw1&>!JDgCEqAVC@_49XQuKBS#2nTJjyB_Udv^B3R|rK%25( zx`Re@7ydmuI6eR;WWWKS_U&Jybs-c~3O$XJ;exsN6A8tk%v6#eG zV|;+}YgOAf+Ft4W_na2);L!*5gEiaf!2Y0H-RoA;t={QYdAp+ENCsY>qX_yr{4|W{ zNQQp+&?HD|Gl3ECkx?Bx!l-hHtHEDrFj(L`_I?Vek26OB8IjAe{nuOL(dT2kKCdRo z%o?6qb5U2>y&wdAaZ%+IVzF~s5~dbMq=`cY7c~H2ZhQcK$46!C_6RK5B1(obH;KaQ`J^>rjBr5UG z+>yAHq|q(hYbOFz9QCzXi~i)ShKt9rI_0Pq+t=qc(;%gZ5m&K9-$&>&ob|GtIEl=z ze*%dZEOw{?^KoJ^5@LcImRWF!42daK@S$WEGFg=q)TZ^1kt{eos?F>W@wV?GWH2T1 zk3n0M4i+3-Sa4F<;_cjuZtSBQchQX*!E`ISKryE7or`YF0-Cz$w((+EWA_YWYcH(C zb1DIHrxs-@;J`voI8}X2I+5a)BG39f_3L{G^&-h<3ni z^Hl-LRUjnyF37gxs4RA|4U;iBHf20wzuLhzpy<<-v5NhwV_Qomhu93xw1HCAa}G|K z#(w{R80>sC&%`` z`nUqMb2yeQQN!WiC0hzk0#8`4Twf|Eo1@(^mG?KoT;`r*b07=S)9q3)_kf&kB8w(# z*gt)O_#{9-bg80IP?##n0&p0FCk*r83}?s;0qyxgs?89WHWFP(w!+~$fi6QLW=P~R zB#~Jeb0eQT36!}kVIy@}Ql;h0TgG7!o5p3<;ZdWQjZvG!u*ew}Tcj?Vb(^~0u#Di? zr7jF}sf$X<)Wvo+%^NzX#!Ey-k`}s9>`UZDyJ)V6Bi#8kcEKHH9GSGi{1`;yx6tHuBVI zHZnhQp9WUG5g3eb35E@XXas|iJS=Cp7_=vR#vS6*JLft#WT30Ilf|{J@4D|5Fj)Ld zn>F66d%@KoFbGsy6hGy^Ue=X*&p&gSsD6Zx>=#wQ&b-D3_-bKc-@E}dzdXdFV~j?k zOAJOP`KQ);?WCY>WzCZ5h7J!(H^nb!OZHEA0XvLn6jR2}u)Jyf>+VtHG%A00Kj!_o zz1N(UHNG^*>E;^LqdQ literal 0 HcmV?d00001 diff --git a/build/web-mobile/cocos-js/assets/spine-BUh5FZoK.wasm b/build/web-mobile/cocos-js/assets/spine-BUh5FZoK.wasm new file mode 100644 index 0000000000000000000000000000000000000000..03bc1ce1854f3740beeb212bcda6b2785e20e042 GIT binary patch literal 201755 zcmdSC37lV5mG67bKGVPIR3#@+Xe8-y{{JKzLn3qwF(NH>NSK4>Dt)!P0b`3aR?=4z zBho%Fg-lVRLQ>J-7#SptBA}w6gh54#3J8LN8W9u~6=xKX_x-JX{zDbP>2u$E_XVx9 z&pvxtd#$zCw19O0aCevh>GZ6Fta|{VUAzwq+3? zfuSY?Eir_*z0Hs0ZG3lzT_MPzH(aVi0o`sl_i6P*|7yw-LWbHFW&I~ADZ#&>Za^7b zkV)3`TNAi*!l~hF!`B8c;_rV13;FxH;KlqsCU_2iUmt}0JvJEN?|%j}_&jqP(yOe@n}Ue+YHRb&mOjDCzs3HZ z7(~(KjY}KMtt50|6if@83tb$$C~!d(M9FTvxzq*0mO>ZNfcjLa+mcHf+@%HJ@gMIO#Q%gy8Cvka7o(r&&3j2Fvm!@ZE)BypC?abp zWt_VOlY@T-l$~gJkOs0Wj^aIbb}!wNkww9DA+kAbr!0;K1#ujO<$j6#$1q@U&vuin zo#%uhxGMSrHz}g!FlLMcQ7~NXp9G5*9}ope|387lAdCPeIWRd$qnJE&@Z`zipo<3L zU~q6yNQr}iD2sOvUkLn@qP;RO6$brL7)5c~m-act=(GA}CoYNieC||6o`pMy&zW^d zgM7vdvh;7~;Lz6Id#8Ot@Q-^0fw&_$ESMbxMKIe1OY|BXPVtw${Mjv~LyD+k0{|0| zI37?g+UZ33d3BJ)4Ksw&F?r54=y`nH;|NPlAJE4MJ)r=Wh-! zeX75ol+dHUllsA@kjabwSN{{1{Xdmc!Tx?XWv95435|gP?B{j!zRdx(vI}WttD5!Q zZ(Tw_%Tcb9!O+kGrTDL3#du88H&s$5|EZ+DC@Tne5q_1=i^sLVVgS7G?4L9=WL0vp zf5N{sRo!-5FjSEBr709uUW0#dUl?cM@!^ewHx42P!qIqi)TIriZgu4qNuHHi_}?xF z-x^%j2rDY>AN*UmC^#@&9DKYH9uQp7=(~O>45~2SI(V7;M)KB68(YKk8s)L?ZTvX- zZgOw;E;cw#BBk=|9`|$?%&G?pZTYOsl z+vwQK!=FVzh;C|pA-be-abrv4qQ=J>7d9?v-0seA+~Gdjm|Y&bx$%+4hZ`Sie6aC> z#`_yLN3%}}N5gX)mp5jQhMO9*H#F8a-q+aJ7;C)#oW|@k8mBkTZhXnDZJgQo_tP4q zji<8No5HQppRy;j*;}J0vOi?Af1CX#do25X_PgxZ*|SghRrc#__RB`YN3+=vXFtq- zn*AjEarVvdp=|c{?0eaR*$=V@vb)0XX5Y!~&+f~p?4InKSveZczB9Wc zyF0rp`)qWzyT;A_YPK!AJv-*MZ1xwkFJxcIzMS2f-ICp$&7M8`rtI_C4Ow})yD|G* zcDb88@5;`}-jl7%&dO%5 z&Cbl;nY|;sGo1a~@bc)4?DXukZ1&~RsoC4JQ?g5=(d@SHcj+eg+w@%boAmwe*Xak` zuhQ9L?w9GYUkV>hf1Ey?{wV!ny6U0yBjJPT1L^nEo5SttP2u;__3pdrIqv@SY%N)3!`+>})7_Px<-U=wb9biia(ATfcDJW*cVADxmVPxoJ=~VwmVPlk zJNiocf$$6IsJkWoQ+RW_HN7GIeEPZcIoGGNLF{$u>}%6cr=Lwflh&xcI=w3WR66^L z^z!r*>6Pin)7h7%m!+4a7pI>Ix1_VrPtQv)NJ3%{Mhr;st4K9$s^|CG$w{mEo)_;@mZ<{y(k zB#$M(C+By`+ruZ_{F%Q^ev|w<`4u_8Oy*dPM@j#pPXCnce?t1-1fu@2Jza zlm2?0{#5ui-o9GDZ6keKo&E~xFW2c?Nq;f@njNS0#rYzhLh-9JfbV z&UnR@$txG^t+z${+xy4;yYd$8e+5-8Pkxd9_s`SIlAooQCXb{SCtH$>lAop{KS@89 z%=n|bFquC~MK^|H;RVTzSDa^!`}aL&9D2MOeRnkT$Ki%hZT`ncllO&7tf$S%@iQ&) zk>v60kJ-#6{_Vqwn)*=knEPPzfn?UA{TJ;0{^aCWU7O9kJzO&L5@%J;O@8OzaGbBO zi4ndp*_i#-`S4lR(|6?>c)~^xozRA&dxR@GxwPBTK;`9{A8$B4n8MQQdwsM z`FoOgCjxQ7-tS6gtRwk`HPMn^cmdrRcc{{9m z`0;m!vrb87jZ$lm8Lyf-(?)nr_*6W9*5PVV=zTK&q)cqnBv?7>*`gsf_ zKl80z9nRViUKf7FL9NrmB{!yTyeS=dJbcwp;~B5`Nqp$>8^RyQPlgZ2x28+Jl>R7Q z`Pv`GUrwKN55*70KZqZ755x=h-X34;z8BBf{k!pZ;#v2{v+j#O6n#5BGhFh4=vC)N zGrz^Bdt=e%>hPZUZYo>{g?{DkioX#r+JD8;_eM)^43~a5{7|@bL$vgaaOoLt>FI9i zX>RGg>7DV6JL22p4dL;J-srAkw0q1jYX2ge`SWbaR(FH@di*b6i+=_e7-_#6-xi-2 ze#H=X@R$ALR{!`C9l!D;?iaq`7xi|N`?-JnLVQ7bN;GrHufkh=;hXt<_$zOU!SQYG zMxVEpJSsgL-r(OqA0PVT@a}Ntr`&&A-=B*Q?xOgr_@VF<@s;F$T(ut#Kb3qU8F}Ma^u|AiSA}OruX=m5@JL!Jehtp-WV^SY!WH zbXE9hv?=}tJ^eg-<0H|`pGHfrc0Y;U7vJZW@V_5NuL4^SM?ZC^L`!}Y{r5xB@7#mY zd*fe64@5t5WAP8&C&EvJ`nx_pC;mh@Yu3Btcg3^xZ(Tg=f$#xx_;*&UzweCS5wDHw zEM@qAXU6tC!#`%79?v=zINu(BC%Qj6CBC6?U-XJ^N2Bpm(VwCxqbH&p8;?g@8-I*u z?Ed-2?w@O1-`M@S#%T0_dobJ>{~+8DUm2bqKjhvM&-lLkLsTC7SoF*2htY4M?cw*M z?a}w5??&HppKW}mac$#!;ins)YJ9SRwR3gjs>UZ8S2nI`+#U6w`bht!jTu;wWl-|> z@M+D!4VOXjZ>?Z3C$B z9q)78(3H%om0`H1U5Mtb(410r=D2|=X^=mQ#>%h^<27Yiye6rr<%$>OJF556x}LTD zMH~hI5+rdes=|>4E-s^a0nTsrRIsw?7(rYGFB??*QRUj-L%wILt5M37ZdKFu7K+-1 z9EB!PXoscZcBzO`yQtI-izU9;{2;ETuePojSrzdAaOHCSJ>gAdI4vInzIfOVL}QtP z+me3*x0#R@L$KjF!}oy{6XKe}V*_fqs}}{q_Wj0M@mVB-mmfuec*{VT3#8E#bEx8~ z#^KXiZh>o1r>0e;)&}_GRvS5f34V+o#gx9F6)oVK6^UCaGE#;RoJPB~$f7*C8&e#^<+!_~bH}>!uQ{$n$=3t6OggioNo^VF#$~M^%My9?@VlCh>qUBR1f@ z3`Y2y(Bu>xtpR;iF}>iy<;SU+4l`1rae#2RfAAuhAebz;$c)7jongbGWC5)W`eq=f zLC=I9K~|vAE>*mAS9-t76T$#)f)ybn_P{g_Qw<+KOYGl@%J3kjYMx*5e-O+9 zR%5K;Wpt7ruxsUJp?1=`DA_D$zG=##PWv+;HjUGtZ*~20;dI zvEEYN;M?>d3P#0!VVUyhph2)Fnm1$B2_d1=n=7NiZ~)dUqh^wqN%d5?Qgzf4&*hp! z;!}6nV6dy62j#RRG04me*SH0Gc$tt z6KAGpiQbu+1!X{-CqEPk4z>be%NtRGDHfgjGsU@tL0V3_{qHE zsZ5_eQyDDzZlzCJFc?!z1$w7)-Yc45wmGga(R2?nL0+$~p5kA&vN~mS^oi_{GVEj^ zNT0|KUuoi{4A%oscsgs@+al)r{S+gB9zR;Z|5$ zIdSEdPjUo(@G>hl7zadbwch z7I7z+3GV^_d}$SOhYW_hno!($7VzfHK#&NQNl_exj!)}691LjD3qE(<3)gR;w>l{> zw`$~d?+3yh3}SV4!8^hcalP~apDl09=jE3W1vNZNiv)*iD9uRHK)9DY2$#1K2{Fxf zQ~n|u-=qLlCKi2E3gs1-Nh@R&@vvH;ek(PpInt86Y-VL#Dgz-XS=x%#Xl4gSNKC16Sn_-#2?V$3P@J?ox~t4)KOc!)=;V4r|?jluPZO;w3rf*t11Uu>q4 z%{Q9}EwO49iiFI26RIdNY96#|RlKGOK{YaSUVcEnkcOqWew{I@@H!5^c; z#V2CzZ4oS62GW+(kc51Be!F3Ym)eqix->AJuRd6ub@#3lT7a#F>^AG!N zE{y$xMzFctmn2E{a*eADHrQbO+!TV~>BdNL zM^r^CCt>zD`U!WB8dkZT_T#er&IqiKkU;sW7@0-W`Hv?O00T{;>S+W(c8u=VLj}yB z>x!eLW_pO=st1LC;O-!@o#-9q(d)pur&tGdT{0cjCCDH4E8~wANBLfQ(7#>i@Ak4| zTpq1XeEW;rRG?F}XT5haLA$9-Fzp8j=27r}8R18Zn}k(RtTt-|t1(XyL~0k+Z=Xt22J^d zvA<|Fx%f(SkxDVWsYgS>Rdlds(Z(h)I#2E>f1xa71Xzht62auA>?Jp3dr9)?fk-q7 zYl_`umxL?dkjv(n)CP51gpD)sO}Yq^Ec?cu!!u|2M!x0dAJ4UAv_;h)5Yocy;rs!7C<#fZIz zis2D2rvaqbi7Q*dh#8rnXeA{=W}oaKoGB|o@#?Zm)SZc_Qs$93sJhZJ(K3Pti&Dah z$|p!%NoUc7M6$`^4_*>h{GUdux0Uf*Rw5(^Fhrq?2OH=c12OcR}TAj<rmUGL!h0q%0HRT7$2mg9cr7 z!6l$yvOHl>Zv$XP1=_+@rk?H7^8X#TNb9gGy`ZhdjdaRvpTJMhM*PI%Z{#Oxh@TQw_54)x@~(Ab6ZtCX zvWpBAs?~gz{M~%D1ODj@8aX?Thv@HVJS1fPZ9J6hn1}pep3Xz$KNAnN8NLHB^UKp1 z+p;r9WQ)}TAb^C`Etg2xx;6EbXHtX|h)!7D3XJcN1SOK0sRX4>sX$m$DPkBIUOb4{ zc;di)WWrp#$zPKK&&)2Wp37U~g#T=X%TGXbf#z`a^6I5Xd!~gZ!}QWgpfg$8lMVVl^6134YZjV^wSAVqEXw`T?@(3$V zlMG3qDngF1l2_L=x%fW~OSJ{K@xe6kn&~S=Pt|g9|W+UyGL%vyfz{e3g zZ5tk~?G7>(XQ-x*U{#+?Alc!`sGQ`Re94_xp!+a`Fko7d4ddV83MUtex6%EMB*0nwoSBM` zv>JyHNywT(L@_?emZ0K`gxVz$Z;nTBN?ozMzSFsn_`Cb(nGo1_XbTwH}<4^0(8 zys+AaPBQ5$!5YirkrqlZN1ZprBy=TH2Si;s>6~?ybFIajth;~&W~r%XEdLrYM3yJ2 zXH8~PM9jHy>RHCS=7O-LcFP7GnsK0>K~G!V_RFv62M7J&00uEbSwz8fHtm@#XL32I zR1s6MDUcOLYKWA~Va;SQ0AoaG15tEHD`f8|M1#wwNu)JpQq-(28*-I;I~v zQm#NpxXkqEz$7Zj^rNf5cS<33Kd87ZPD3b{B5Y!ufZR?&ENp4aCYFO0mr!VUmtv5R zy2-g4)(}-U&V}M9u0-&751`e+CI=ZBbUg#s=(QRpei`gq?WQ68<3K zA5M@dqoIZeqVLL-rBkx8bHKjlH+iuZFKC1KXqk!2#q+Dm2JA0v`uB14w}`698x8jo z7%6-RnB^hLio}>1(|{5t000Czkv!5vxz=szJC+|5wSA3bxkd$Drdq_5#6U~VYKIMa zZ7lc(E*=<=1=OLgc+b;SfO|rFHjuvS;TQVxOyd1CLBp()=o|p7j&M+5tv&GqN8856 zRpG;7OkpW^?_mOX?FM#cxtXCr;l+>&Fa@AaJ=ejwrU z=0&vq*yZ8=qnl+5#(Je_nPW~?$FHpJz2xpok~ax}wO7<0<-M2JiP17|p+LZ8iERT5 zA>9ri9H{QH9#H1P)i$5RDj8|@mD%B7weOHsgM+ynu4rd|fXyMXR!_0E*K2j}zdSSp z##kz7SzIzR7DQ?uHi&Hkdm$>sUD$1Bvs6^AIS^h5o2iCm!a`OTlG&_EWIYH~%vy4O zq?yXPNnbt~wILRIYKWO_658?MFm?lo34f&O0$ySrPvH>)A;{e*GOxQ1)_@&JhURR z+a&PAgT9P1#>$c()j__7@3L%>k7Wyiq!zmdZw#tuuplYmC3Vu#y##@^a zokn%1QM*&D9h<*BksCORssQP`X9Q-uzz;j@-l7okK)>+l2Jk99vP;J@d>6@ZHf$4m zlDT312L?ltDNv-YCYN7mCdjK1NUC>e99hv;C`Pqvh%n6j&O}2*vCEuEXVl{%Uhty_ z#ZN~!J~ixDn`L|tYs|=S6FCqZOuuZTg^EQnlxaKAm54??=xPVLXyfUt-M_Q?ABh?--Fi4f_jkO4*Jp zp>j>B>G0gRaJ~cx^4J?jgA>B}cxu8O;rxb$^BYVzqzB=AU*7x|C+BFY8kYq->?e02 zrm#35`9p+!Gzm5Eq0Wb(>=S>cJcL)m7BUZ_nl(FeOX%<-2x54~++jo(CZ@o|h^%MK z2@zSuo+7e51`wu34Z7-k8mCZibBYqur{JFJ^B^9)2U(_5VhXr5)Mz=NkL6!r`Rx4f+k@bV=(#XZD{Sq#d=J@M1H z2bnds_DPI;fQ6_?%{}yJezLfS4@2z_z!X)J6*NcKD^vjK%^twGP-snRw$^)$8JyIg zNy&}?dmZaRL}a4Yyd|aPqx}VS4fd(}eE*6S_YAHiE# zJUbS8Hr!6Qzk_ox^guAo-Yf0WvQaaYW~S&I!Bjhzb_qv= zELuCBrSLIpmLg>~U(Hfze)e<;@bU2}iz7+dXceg)ox+pq#HUD4WGE7#TOm;l67Z(^@}e(Z}I9MedU2a1aoiLe4f~C@l}uiuXhwvPTB9g#c#Rn zwj=)KU%sFZ!RF1M%3mIabz3xOP4Z#!8z2?smLiu4?OwQQ{TJcyv2e2dvw3eYVWP=xpKp9m_UdY&BYAyiQSOz-Pm}XIh+7ZLK3TQtT!MwbeLd%Wb!bE#E4x z45}x-1aE_J#FESius~A0jxYbFk!oN?9UCH7o5*)1A8H_1tb#@2X@xc{@_{GP#*%J_Hc7Oz!Hj z+k_>Yd%YIb2mY~`CvaIJ+p6_1u|hzlMFIbcCh1Qs=%zoS^yq$;zoDHjZeWuToA}xM zM^vGBUzBf(!a{2%hJW;_9C|mb|H_B~fh28_Mfrn$-!0Iz4{-=%(20!tz{dQ*DY8sP zeKuo$5J@4C(LIGh&{G)}J5VQyV%KD3wkAkMiaV+dxlGsv^MkC}Zy9~RpgGwxCbcsLn=)9iN7@;ano}&JXlG1r?qnHL zECYQ$>qt@?bKm;Gg*GBLM1nUl*&<)AVLdNLVXQSMYuQGU_QH!?lS zH4OE7lopNUH$_4e(izMY-w9dzWom(MF^lw31n2WPA@Ii9In;xX+ss|S(pC&oF1*Fj)|iW}o`sqsNLW|a*X1Hpqxg1Mq84eB z2~ES=@-Mbw0f#=!M#V>#>H{hjCi*`j7qec#4*$Mo_(=ha(k%PYvP6g*zo^a}(Xu+9 znMtg^@s}a$EQ>AeU~jTW_;1o;29{(hvIR72D{q)jqK-`!=G-|^ZsKm!9TIo%=E{TK zt%Yv5oxuFpHJ^i=}Lds-n74PWW zkeL|3Eo?}bi8zdp!ZNRGn2>*MNHkzUCj(II?`v2OOylvDI^eg5)X@Y~rLqP|(_%4* zte)FF<_)288x+^kr0TMs%@QcAAm7$-*~z9sP&%)scDB$R!6RMhmhwmzx+Of~h3;S; z9Jg4^!!2~fJlG$-uVKAa%ynBrBmvJ0LJ0sy)|xEcMx8QUzi972zI)#>qSh}dcgDqhV!S zsf^>1)05}A;}CH?R+wNTab&B%49AqUtOW|k)+>2T-2jfqSjqaJ&plqPc!^xgWl?sH zTiBXBiA!y`YX&=!?cgh=u17mB&!QePeVb zgcxkD%=Lcc)A2FBiDb+-!Lx2cNa}53893;Hz!~-d(-{CLkf&i>MUpWFq#`5|i6J$? zp^E;pe+=jwW9wVtqGx~lj)g}`2Q zn}%#Q{DWF$?myn7EgH~0Z@CRMpJ-;+Djr)8{QV_4vAWb4;Fpq`)<#{Q zVK4@KC>uq~sXi{rSSz7^M167+tDk7{MLpHjI@May7z_p>%E65-N8_Vx2v;@2Q2GMN z$^k~pK-ZtsavSw=(PdwF-iwZ&MpXzxQ3Na`@+G2m05E7{KdKz?&o}kpuFjc8smWDz z;567)bowVd*0R3UZv)CG1)^$bGxGWIb&B)V+7fP}DjTaa>D2cc+@x)>nmGuN3q(eU$2WbwT&2Nd&otiE> zB!q?{aATI<_2T{OS(twI2{P$0@t+DgO@*x1j_%H}BU{g>`BqQ{8{uC1R~ydOu?$CJ z0Kl|4a2j9Jx;6GHBhtC|T!6CIC^=N|0#4@0kp45(^wm1lu}FusF+Zv^T885e5fu$unokVeOye9S zMjP9Jm(%OBSFh5Tz{d%^1&2;s^?6RuboDyldN<37SrnY#k#0vI_A#<*Qv*Fc!fO0X zJL_Ubl=(6MjSOWw3ow%?TI@4LkYhGQ!_XRF@kr!Y3vg#AqjaRxn=^#rp_l9i;PlRr zH(>JbCorAdi0P(rGWmrywy>gR*lRfRZAX?@Yl{qo75Fq zbnW!$Ygh8R#`h=;`P^>BztAIaK0}Y){%j@4RamGK`cq89=K^tign(&d99OG7K)Tyu zC4U%-pteH2Q~gMBc}+AJLnwtT=j5B*U#zz+Ay48^7w}XiIghDhuDJLQ z@C~ICUGciE_?)vZ)AdlOD*svP(v#a>3A^Of&kAfA9w)VIKP5{QW&~QaAR~aq6nUO~ zZ}yv=a&6cQWtvmExaRXu(`7Wc%te>S;@YSt!1G9we>lr!)9R*S2mI!bB|xMv$NA*GRD=<9tgc}e}IvoyG4%$-u|c=NA1KE;umCu&{}S#4U%?({wxbE|D- zd+&?}mSIU?r;=I$>am(BD>n|^BfFFglDJ+nQ8#pJAAvd2Pxo*(k7K|(j}`RJ1CK_J z=1FjWPhP_?BIcJr5L%o=6P2Z1)vx0TC>Xm6qx#=*@5aCii|jtry&G;A zu>J)!=AFCuf{sX zS;qbWstVWOAVi3>y4zXZkbMKPKqrF-LtbiZXYAsaTk0pqj=f(~KTpH*{eR~;KWOV) z6*)UvX&S0iTH@t0+BMa+=gGQbG6cldSrBhI;($!*I&_uODIzpsE0v@JaerHjz6H|Q7^eecC!K$~r6w_(h22RAvqjHwFRAdnb36V!=k=!46+I18|O z+`xBj8MKCdhKQ(-;1!I;#iJo8PK#5Kl{8$O)JAfc|1*UowQ#$jB}5(?DK51cw7|_F z51Nbc#lNaO;9MY3m0GyKEzFw%UpL)DeI+QSBYSG%bkBynkm#{e1VC#wXH9) z)MelFbubdSC;T_@|pziK$eO6~ND@;Sz63$)-Xp6eVO%BLgfig-4 zt3_bMg}E3C>1#$XapU~cJ;sKNFY4R2BtL=tn#unocdglu7lW_6W+LtEU~CK?9RUYm z=DSI{4k2u6i*WA|7cuTnhb<#2hF0~+HfRqLs=JinyQsaGccivO5b6{$gxaVlir}sL z<9uPvIMu-s5gQ%jA5zZB{h+FmJyyT3tKUzn-%s+NQ6?(Ag10Sf-WZ0t^)6MfCqAb= zrRsGc_K8zRN4M_xB6shE_uF}|KBz^TZA!6@Q@mIchKz@mf%bdQo(tS|o}ddE5$F%z zF=Mwx??Ke911?$PPIANT|H^P4%GTlbFM)Mj)mlDjYM6BX#Yqx({&51qRX?i>-e>#i zT=hfZ1w>RJQgzduDlYz0CjkVYVm8SLBy`o|b=lw8ws2Sdyj$nmnN?KRvGpq*i=~dW zch2+dn{*o7pxMtu%~}x={^KmjV-)HLmUie_HJcDH1Q0dBiEIg2Xt@H87E}2c6c-_Vu>N5)O(ws~g!ZXBuBP0R;$xvUWNOxp>ttNPDijoS#H_TqjGzcv z#s$Zr`W^%_0Ay3P!4TCjAbjCjng(o|urf^m8P_;+EvTW0DEiD$*yaaMry0EYwQunV!lyLgYh^j)x=@=3g$L4aOFP)+FAZHCdQSZd9TJ2e5RVWMXv%wm zBbu($7qeGP((StD7Q4+SWFWDaBdz8iNbKJ8$)0|y_4%aucJhDxG2)3&#xuvvH1=;=sX@#~JXO_xE! z^y*LDSbrgsV0?c>=dhSQ6@B)6K_^b*1RcBXviB?0z&NL25{Ff}%G!Pi)?hOg8cS9W z=YtG16{GC#2d-+lX>wKVIvomC^fzrpXzFxpXzD#qXWfNeF-H{b*e zBRDS??3_slYf*(rVciljnVnlBXM6QJzGRn(v}hl$N|ktJ@$6FzvFn6MqqvycGh zgWy;lh>R~4a|POeB;U`6w&bN)8~9cT)k52!ZJ%Q#4ljF;PJCyQG?00iy|BI|LCyjF6AI(e)$jc&novT6(ff zb(U&a=7icV)P$Q|G+f*9BX01HqW6M>e1&1F_?pzavG*)6N$|@XSZ&u#Q+W;_$S%iC z^F6^enG36XFXC|MMIxJ-OZD`va_)nE^r`(g`9j3aNK-vlyKMQt8_QO=*6)lCZ|#Nj zG6b7ig1xTA*-irWE>h=M>K0NjSJqx5#d^!ZZ6w1LH)+3JakD%}-_z#$a&8~5p`xeE zypjAkpsudeD3uVuDK0T#eDVQ38a69|M5~6E3kB2>LKc#-U0?R{HNiz2Pi)3r;J{>l z8cTJ4gW50=66g@C0d_j6F1~Lk+5I1%Zb)ZcwaDkvfJAZp4co zH%*}BQy-=0kU~bvoT^dktIhJE?{U=@xOsxGl;2>7`@x4rn>FefK__H-G&1H^fA_NM z{w-Zq+TutK`j!^hE_%LZEok8&5z!d@+E$;x#Z}FTAXpP>b>z=9*ln)WP=joXY1cst zLISXl+GQ)~+}>}v_v6259me_+o6Mzm=3m0ucppS7Q=jOiTSyeg-Z>9q0!fjc4pBk{ zZz4r*gf%G4Ys`!x+4qDdoDt|q))oQsKVP1wW)J3a9ic3qqLyw~C{mb|r_e9V;U87$Ft zwwIdHnCoV-qfxF$$ki1-m}L{J53&({7n=33i3S3pV&}@Wkv@-OM42 z)Pg25cQIJW@O#B6;cR=Eq@YT~086Ge%yDLoOPRX+q2Vi?UFe5d{{Pg^jz=TR`LW2| zX@OdA?1_%t6H%Lf{s>3@4h7x8+1mD^?_+*XG2Az=D9 zj1-qxf>`SY)1sSfY;M?Fes;!`CRmD-jm@<3ZTUI#@a?jvY!QWp7F$GlpEupL14Vq;%~l6t!BIEt7UW~9HFMXl#4cLa#T|?0d|{u)bPhw9gdtZNLpwOx zK-)^jT74|QH~0)HYzdyyF|P;(TWaTPV3pBpwg?}RGnJfv;8G5&1ymU#Co0ueK?*~b zya8^p9k-tX{uvk2U-vcSYB0{qEJYB_SlNc6?`kr}@1~G%pf9?5|KZTZh;3ys34}k^ z(Z3ejoAH2Dg%t5>E^BkfOZZDFXMygBWlRyX8u!x$X;;0cz3Lr@Y6m|mV!eV}`moit zUk1{(^k6?-fKO{TOG$aD2xdL&rqU0T@U_VDtEs&)@7i|IsBFsTSBB<(%cMC*o;E;( zCtPrkC%+bBd9vOyy+ZzIEe2^NwpD3D)N-U`#6HFnR;a%ev2W`_o@)tYg!)^2-Eg>F z5fl5Y=(p-_SFuf2jK3-d>gN*PUT7h1rEevDE8(P-UVT3;EN^jf?R8K)#k)*4sY{;{ zNSG6L`pqXyTn&5TA@wW}Fvl&PAg+o{q1pThR%1J7HL4G_WMr!jh~O44L)_WV<9#rV{i6bDfdI@GR$(B23Rf+MxABiF26E4tt-wpJv!k2-$+=&>(b-fZ%Ek6FO% z-qB#8m@l9ox1!?-Nvps))wQ*Hsm8#7jr%kbUSR*G?f?9h0(&2*#TueOuA~mY>>|>2cF}%t>S_3|`zLwSX9APO}q40y-F#fHHMB{AX4ZS9wXz&~!D(4q%pXX^1a*t`$1sYrF^5jluG2 z*F&b|Tf%@Q!fLd^zV0$;hq2b2*AyU6O~$6yGh5!&LfrTQ)sxQ#YJ%0ze%Z9@Pm@(d z;8mxb$Y$$K(Pfcu>)PWLw+yQ+}K=tTx*4CrPEtyuWpG*;ho1RB5-+!+& zZa6Q0v*u?gzQ8CTYH5rF8iXhUC!J5)_Z%qrjUg-~^xNq%IW!%#dPPW>-VmmvTXnm( zS%&5)O0zI}rVLDTw5B;aOE%JnuzTM_r*n zfM}lpg{J1bfx!UkOQyLJ4KP&@?7{v91=sOX&q8;d>V96_e|o6!jfHYP=+hfaT)z$a z*6e@pX+Df4k4Z~q2(w~X8k1jCnA&1xC$7NU<@-;4TdVJ)vTy%#?M2gysiM8O0cuTM zF(UojOhIU>R)=^@)pb7&Z%h#Ql^ccj6(MYuLgt|HB3@CkXZ|uU*mYT)oFh0qwL6Za^&F6_A(Uz-#x#KW8__|c-_ zHVKP5mM0*rMDfFrJ-L7|q|*bMD`2YD9u)SgQN5*Ycaks8?>$pNaOL=zI?dsCJCt$$ z0@EeX*c63-77JzgimXx|{#h&}43XQp0FNPqTnE75A1x?@dRirzrmYo*GU>fonHI;B zpseQ9(U>8BwZ2h~j`&|8Q?vK?bF?oSaExhGj*E!%lRESX*e9|1d`Ts(kB^;iJH&}$ z;WBAY3=5`mo|K@JEKsJ%U7hk5oDWe!Z1uCfaX@v85ET~%{435u2`Pl8(!QQJP}_%o z6f$@HuO3l?tr^4x#A+?ODm#THVyzNFf{;YJCkW#Z(Xe)31AWQ_8&H4t+R*ZcppIl< zyt8RTKUp(Bn8my755o5wTUpok$a-uKrrK3wWxQUbmt{uTqxk8L^)Lijw9Cn1rH4XJ zMoA1>^YtbV2JOLP&;k#`sk6C5ry1A}u((Vuj3$eOHCBEC;UNt>wDW zEb0DwjqG1tlQO+bfvdVKM7SiyjS)Ah=PkS4WeydPC$ly0_6ex2c?YHF5t#qVid<<0m8k;bL zNmdw!>f3;IbTG-EO!4{~C&R7$HbuIEWdZDS@qV+xq~t$Up32}ImuX-r8g9$}moq0D z+96x$aU7?Xc`W0sGLIvhJL_?Lb4ZV4n!A8e;*s!^pH>G?1Ix_-9*P+>RO@An^Ii;>hmqAXU95{N`C2*trVj$V~Xi4ALxy3Hr0uHHtI11)IiXiiztqY=CEt;L8rkpAE)3JK-vfCAkd6%kn)tm>lZe>s2GIMq%&HFJ0D; zWJ;>X?&gQwT>gA}FYXC3b!Ri&CfQnBx%SVm|3w4D_-Gq4(Mmq7d5Uhlx9 zZ@sB$7OuTScl|n@CT&X-ZOe{?keF(=uSq5;iz@!}JRcFzqRYJYwx@l9VP3T&WM(2t zekrirJK%~nas7Kkld!6Y0KQtfN?PaDVy>lai%L?L0F}r{w#C-)$h}Ra-j_P6Dabe3 zyE~-!D(!N43D4NHJ{1({(?xcXlmlv?&jnFk)ITEO#j#>-gtg68>n=hSjgB2^4XpBF~Snl8*YPR=*9o2 zMDJeO7ANTj{J@sBEf)q~_Q@?^4=_tlh5-ba_S-6CZMK~4x5ajx<3_`h8#K|{u%_fB zOAwNil2f|etcIpANE(8quM3I&)(UvkuHM#^r$I7B5ZL|enD08W)di?xH!QFiQ2No1 zE>M0~bGv2z++y{_`C%cKa$M%a7wjPOH+3ezq$G1dQ@Oa&ySJ6o{#mni%xLTR&Tyqx zjEd1J&}YW4c`_M_Hj6gLWj1T55|@QIj?_Ra^Bh;IsAfV;qEmu&i{#lZut zQx^7dxmrgKZ{)DYVmll6T>0Z)JXw_t$BTk8$zJ79m0Or)&>WwfRA6K(Tep!(1%s zlx2k%@7i`9;^MkcOZ=#hHas+kIYSoz!=v2HcfIaw*9pom+E=Joju-YCguOq*5vG6Z zU2tWf*4jL~I047oB0XI7u=KERSqkmdaQ8K=AEa(YG&1I+F~PKoiorwk%<| zD9A!61s7aik?M0fy-jK(CPtwINQm!Wujs3;PPE(yh{jI-_B}RZWG?f|xg|G~V;ER- z4WT6!HrTu%rO&Obm4Rg>k^e(U^=^BLaqQ_&Q9+_ETD5QA9+Y>T^t{JOM>(?e&yQW3 zTnpMjS~J?xP~RTJVXNNF9EEym=*O5-$YWEQD>-yUCy&nAJDg_Q)YX>23Y6ey8>~Lm z1=}#$X$z;+iY9(&nvr5Q8EiadiZJgbd2yHtjX_7#s{}MYfSB#x#P6D?k4;G(6+ologO7*X6ZN7g@BAOkz`~@&|l4%9|{S z?0gHxVNO$}mR{cclBBIyr4Me}7923A?It=qfZBc&>Qm8buFh2jZi>}hSmp^iRWRX! z9n(q|1^n~IUWw*7j`vZ1sg*DftF4$HDlod=(bL!|aU3{PBP>7(9J=*z60Kw)=%a4` z0oz>|XMM!bhZvcS7HJeZDjENFddS}7B6Qy#Y`>Wp-g0Lr!hCHvd22U$Z#VgHH~CmM zx%L~K7B*S(BgPqEG7XG-Q6$!zpZm%2i^M)MW&7GSc z%=z=v2e(>l67}?1ZW|+1dmfAqk52cCrwYy27pIari#dW7fPqjeVB1#FEslj3B6qtb znXtv<;keTNvdiLPgl)0WacQ5wQW0tCcSLGUzj%LGPq&sy-XVEo#7OKndO$_9k6w^H z)4h@yKsA{7r;zkF`{&#+C2Am3yl%|Jb_vjeEHW8R3|jM?{RuDUH(CPey(TaGzDc+I z06BKq6zgg16r`|p8rDZG?YL+Qh)e_U5pAL0*FaVZzJNu(QkF$jT!Qy1$){{~0_o8n zRjtvyKr|LuYg=k8xv87n(oJ4#$$KV;lf?y4?IizLA>0or81Kn21aNJyPWDecKiIbw z`zvIz&)>99@a8s_5({pEc3R-rq2K8<$IaoSshRF!yG5GWv(qe1w(UY~gw*d*y#%XV z`o5JIqNQ&cZcpn+w$P+=+!E{p9{aZP5e#kL32gwupe=Ugb-z_8x~S-4Flq;9!LltK zw_(p^8v7z0$T|fLiZVZ>ndM&U!e?eSFpxRy_@SHjYdk*~;GkDL+guyEVx6tL}!?Xj`H@3<66nc`!5xyX?%PNea(a zJ8Szh*&qP#Ky=$T#(E)h^QTv}pRFAHye>+)qe(`@FSy@RP zN7kv3Rrs{liJkAgvJiR7&l)}rWmEMUNuD}7WLEEHRBjhc7+I| z@J;)|J7$ue>Ws8ox#peT2COUNre?cG`D=dY#!=(?)7ll~Gz+~IDyz4bL3hY?8VX?o zLygIZV>(@Q*a=LrrsT0^vvRzsa5f32V!;2cjJ3{wo69(h&2qKC(A5e$90_2Mt5;xX zqSlj>AnJI5u`V=;(Ppi6pn!I#wiF`ee+WrZ4eeDk0dAXAncEr4=Y7s+;??EyV8!Uj zh+zzCN;D2!MM$d;+>9$8=NQgyRs&8Gi}b`!%?^yd?V6;1I|aA`j(x}5>=q5Y|H82N zsNbALM_wf|0^Rlo{!QM%>b1O47y{{7bWRh;W;=Qj>KW}L;)yo6do!5el`VS7Ek^J1p0R*75O8 zo$hrxss;No@d=c8}l~XnD_MADc+3 zP_>Xvetd>GeGl?;-P4At^Gh1XUi4G%7}%4Mk<>q(rJv&mT2kONjbDg(Wc*fBf8gX8 zKG?~VBYX`U6}5~bp~n)wQoF|~;cc1!CSOF`^V$xQoD0<%)e|t(lmWwiX|)Q<>qS1?lP44lHMK35_T$Io)vBc)u^yg?2>h>h$x7uBJT0MJ-(smJQK zUfs+22Cld8yj1RxmuywBy&1Rat}51xgi*EqtIxbhcY9}^tGg~t<%?&zP?UxCB4PX$&Y^i0s7dO-vR|d>qZi%t{+v)B0y63w{-&LpY zC4Fz5zMu5{q}#VWP|;tWq9*1Ll|ayQjJQxc1@~O#|7`xK5X1cA&olr0^7&v#3eZg6 zdPnj6+MBI!73!SHo8@mJ6Cda(L0G(1A(#}3vK!0)>Vz~>7(pCl1HA_daPhP8Dtw@J zdzx|sBKu{lcHm0NU%}c7fQ33(5B5_jB=~i$r^j@+OemILrR!e1Mn3xj=LbR6k{9N6 zl#cS-4o2=W!tQAus1s~u#JJI$>{Y0+g{%7meo3k6??ga=_>iY9HjWr{@34hYfYPt2 z>ry08korpk#Eo>xk4@jt9TNCMT5q8jELm(>cAFWFg$pjwM*ayZ9T4jMPq%L9^39(I z%O^E--G)n|ST|G9cvd|?ZW5$v8uH_Qu4>Sxe&!E>pp@Oh(XW)534=y z2-ap^x7omF8QmH!r_DpCfOE`N*p>9r&oR))_FK6M*{qF}$Td(=g-vXNYLw$EY*z7U z)@=P@FbZO`5;YWv`*9_6xN4t($t^E>ph{1$MyfccT5kz_@Np%^*Oy!0TVG$p>WSNe z5hz$j^bjzsw0*_w&N3rIh=yVyQVP2%b3<8}9+ah;sWxJV$Yd?&7BnFGOV{mhDi_6vZ9v7ZN`rQ+{t$85^f~94Uj7Jr|m2L9r$;2g-ayGuMVm{a3fWkkz63 zS51QIQT(AvrK6cpeH^nv1mJ#oT{F+7G~Fk!+vZ7g2l+;BexzTPB-ZJId3M9JZ(l6) z^-XiRf#UcLtpQ&p6i~-(Xbp~S=xMRl*hqH)20A?tsv~wOsKiD=uSozDAEiKpaMTUW(1GYGi+_g7XD3k5#I(VOC+BmPOy>`S|k%AX%3ItNXiVDB7ZT@>XvpFs&9ug zWQowcb|G0*7}aMMoh&$J6Z0qEo0=*{zp`94Um2DlzNXzAin6yB(C5p1zlI+0V0NvS z1G<@k$*G;~K@-Gj@rKs;BkiphAKp_^UMo&SHzKRg=5ypvy7p;v?vK;1Y`d)1RTl^- zouI7|>#DULOs77}(rGL@)XN)jOuY%Qh-!vcA66xCgPqbf(E?T@>`tsK&Z7cz5E<`^ z5_Xb6Tbj05AlvKa%$CK>d9`rIbm1MP?{oUHr;w;O5 zDxxj3#yye0d;qHn)L4X*k=hrR&o%nann2&Zc<<6zv@QNMKRudADe(KYma8~7tbocw;YBA!>^Q4;PNmc)_;a+5N#-UBIIb!F(kz&@T7BXR<4#noRjADDXDR%KV zip~2QD7GgMc5Ev!yw{(h7^4xz=4op>6r0yWv5Spjt#K3sBWkZrF^cq1%uZ14kYekc zi|hUD1+i&e)yzC(cFBnxMXN(m`j;%Lb_TcFj{-J0$hcwAdv5xze#M4^j^djQh|1yN zT7EA2*avQT3D*?!YZ<`Jtmza-f2}7Y*-`O6{nAF?qDwEC`%;c=E_(mD=km??_44zs%DASV+{Km395TC$xt)h)-Y84D_Y9Ynp!Hq_v} z_>jlPoFR8xzyi9-I|=JO@%Yh8e4E3NLIjOwWC~1d-=Fb1@k(o2c9bmC< z+uE5+t%4Wl*Vmb{ck8XJCMuc5rm6%(=|Mp+n88)=Yn@}c!QS-pd^L!6q#&ns^@op~ z7}g(ZaSB9#7NR@(6-G=gL#*}|O}E`c+FQhNX(}o;YoTf@HD{rkP-@;nwWHLY3)PrX zdvWX`KbE$NYeRUNU#*mEH@Ky>P*>7g7=q}TYF&GnL)z2J4Li#qs*J_e^`OvuEBr8z z>E;|spHeuPmH+{9`_T9OyYAceQxU-514T{*6=2zzmrI%0{J zIf?=fc|o=Vyr`>471^Q8y>3` zEKTOY924~046xOEH@P8!EYDf_fwn*`A<;Q$k7*&<1kyEuxG5F+2@<>6b|0jLAp9|Z z1W3Pnx%G>kZ3y>T@)aF}F_v9JTfK+IH5Kd@6t27txB}&1f}!Jv4QsN& zWi?W5GB79FDk{ShS#Tv5_+?4NWv;QkR6XiAR-D@2+xY zTz-h3>9lUYAxP0!>_H8`p3Z^Lcvy#y=LZ3eS=2zZ^FJVn&8|)zr$Fb2DG^8JdvR{8Dz#wGP z2sf2z!<^+thiOe$Kpi%Az2MQ$N&)Nr0Y3mmU`0xq_icZOv3L|{ zj9=bO7k}ro7p>_3(swCv>+e2)@Ikx$hys~D?0)Us*B`XY@A=7GjBnpGy*>NQpWe*B zGQ5r^J}33TzwJ*w6`Z>NDVE;)@vXrT@){Sfy!#GD@tWadK!P1tJHEJG7|J|=TmNJ0 z>*ZeBr@}r}o7aYn0LyigC9qYp%|M!d^rNlxylRVOdic+)uJmQo&UpD5-!l6g8~BpT zPuhQvGs?b;s@+zyBK4x>-x$1p zY|&?T-s5xY#}>UAt7bj)C;y6v_PU`qlr|Erl!&jcKfODPLYqZI5T`3@W}(D-7P*Pn z`7E;~FTPez*Tv(CgrG$8)-L#C-udt!C;14_nVdlfKmvr44$_4D05jLa!wm^BR4$>X zN8Tj&0E!FVeN2Qvdj77^W^64~B;|l}9C+68(2lb$=K1u}1k85SNa?eS?>K_10CGEv z3fpC85v(X4RKfy5_#MUTc`1Gn`s1?LS;!W7q~PCz`^d>#A_fR{CE6aYPgdu9f%Zz* z-G;T~LI_IwfEx)tJ97Pfa4)ef*{z6mzR1(cAJ1kEnaoq9SAq{=1PjoDmI2Y41bqcM zZm=m7n$R=9I0~vSUmR9n;s3Yse_*;NsQxri{gg*g|Gj=@^)p_d8Yr9<{xv&^tL>+T zmODCFoifPoxzs*=hzomqKfS&CX&XmRst2ic<-I|5>R@$R_tSS-UFxlMdiT@2_NLY& zb*(c7t24Www$0#Z)aYqpb=M>8T^p?4(f#!E2A?+9pWZoGoz?wx+ul`FUBjm>Kf=%& ztlriAbcy=f%BQtI395GwR`2P4`t%Gwo&6O3@agQq>YVPU$MypFdw=UOw|=nN(EW7Z z96sGjgF@=qV70OP>C+nW{g3-vKkTpG+x>Lft|u519S;G9CqEkbhWWt36jy!rm4j zjHSM2t(vY|AgXKa5=|>(EnETZWKZcnST1YgXLEI#9WgyFB*mSu`EDW%3v8;&V8Al( zWspe}Q2@Tff%i8;JgtTHIey5Lba92x--|0=cZ4gu6muf3>{85$WCD^Y+#}K@RN@JB z7`X9-ie*$v{Ds9CVbhb0@}#w*z!J3X>yfbrK5!8T9KjHnlRr_&NRFl{Jt+sotdKyL zLK`U3jiufYUF&g+k1SQ3^6S3K$A0X)+%}<0 zE+2iSDv#DxZtGUr-6OS*yD|^NGIn@PQo;#mb(}Ex`vx-Pf7ZS$SK58Z&z4aQar}K7 z6MFlPjx-XJ*IYM&XP!Y2in%55#!0>Zo40oXw`pEcUSFl&aQiQ-4*A4#kOnvzN2Iz2!hC3AqWg3*^~@hdwvTXh9xY7U zLg(PWYF&CLZ=a5^K1R3>xeX-dAAV`y*3(o!A1@|0n&;;gk?<}J)Cy;!#YFm=uRVG} zWs85fh^a4g1K!&yO!4r7KhrB_>8R2Sp^v?bLTdM*)jXYsARAMn751l34N#}PZtOna zr98%+OX7;%T@hb7t=!~hb9=^4$!#CEAMc&q_H+ATcXB(2+dI;y=W+YgUdhw*xxF#H zoy+Za>FovFUYyci$n9rc3GGGPKCwe`JCEDml*x;^y@cyhE*}n@Sf~lVZr|Mkt&<9b zUjp+nWx@%C6ekzl^g|`>c^(;Q^30Sx0uv%pg5)`?;LaW- z&pB43fF{o>uxq(yr8U-we{KRddDa7!JhL0X`x3axvk~amT>U9r1AETRNpSa%kXB#x zT->eTod3$WRye$d>sl@^&Uv+R-|FQ)UvdkacLS6nx#t$#1%u?i&}tOWi<1a5M#0IqhtG=+P)2NImgy*A?Fo>cDZ;BX<=^;}+@%WCC* zt!(Xmx#SiY`=u1geMP~|A0+pcR-=F>ckfGH?yFMHYUI8;ft%d3fJ^QL4dB-#aFcs3 zaLIjb3ionfm*7n9MG+VGrgGl^hc|L9;_~7wtd)Chr^$W2$XO(|zJa^IZ5P411rCHE~2;ENNu$-No4e_S#>X%6&5& z-omw*%Zqb+t=y0M_Ff{n1;)-PMRMO!aCZ)p`!1_dKyT+!jd!P<)yREM0{33&f9s!#j;fHTjB6FuG_i1IQQ4e{eth`4@ho-v2#k1+{+8@ z!9j9AWHk!t?R<^b^usA=;NH%GOYTP+z#mQE-p+wb?#EKNmwRP`^L8F_abGI; z5;(kr>rO5&4r_$j<$;$xc+>3xq?$;W?*Cue2dkJvK{dx-b za=($_Ozu??7Z0RzFNMQp;*!gY^JcBw&unLMuan#Yvvfl#lKZWKdwY=Ff3+F~G`TlM zHLg!NtC9Pi1a5NozUt+Ew*maU1a5NA04}*Vr11Nx`2nuwT%OJMYvozkW%7I=c?8b8 zeoB!%9~RukLGpZLH45n45$pgpew@}=BhM!Z+_z&S&!z_OPZPLr$4H*fQussE{4m!F zF3;xYwerl|-sIUVc?3rENS-eW?#n^)d}TEX==)1C1t_llbyrRK-DR&sfHPAt~=mpi>YCl!%L;Jn)u$#ZhiO)n0Le|1j4fF@7x zYrcI>O>3-?=d=WF^2`FRem0{4{PYBF^2`M;dpjeAKMspea6OsGb7rkPUwC@=Rd1g0&_a$(XXGJ7We+pkk%};SX z&E?sgQ!CGam*+gmBQOiHkv!)Y-P}R)TwpZ{X!5L$V&!PtKn-aLmvpSOJ<`n)iHLu}%h0Dux zORYTTdw;!H@(7%F>mqq>ExOwV$#c8aD4@x+F_LFVT4RkocO-C=r}uT=K6f^N-<7~k zo*BT^K6j_^*Qj|d*Xvwfo_lKLnd{rb&#DyuS886*^$wS3 z^Ql^S-uC|BX~`on;}4}so@a{g*+KF=XEh3F^7Ovp<#|4>u|}R361d4T3%KN2-2nb# z0ylZ)0+&25rSNyD`8}=;T%OIBYvp;x`|CB5M_|SuN|8LT6y2+XH6S&EO`gq>JRhX+jnw=R*T-C5o)2r~ z`PR#`QSu1P`17U*epGZH50d8-t5HCcXBJrXpG|3vHS&C#z)hY3;Ig;R8o)nK;3m%k z;Ig;PDf|;^-o*7OmuK^fT6x~|{@_c=BQWDnB+pkx_w^uozOfnwGDO z3Ebpa70J`f%Zjk00J8>uBFB$&#)iqWI+Ew46z=CqCnq?YCvA+lSf0+4K7+&0xi)io zxu-YP#I5suJD$>n+yb-eyUqhoZE~kI)yJ(ftVRKSJAzd^o}O}6Bgh#E+_xiewd0u$ z;4>4rZ%5#2$FoxSm(=_f*VkO0&9iIe`P{eTIg&?U+A)%6R+Bq-kUX=kMge_0M)LHf zHP*<}pTK=PM)J&Q06#B*`*w`vIX{JeL(SiEeaGeHnOiH*X}*0fkURo2tVQx%*yJu6 zB+opnQ9zTY_buN(7pFDW$a6^oH+g0OSNmMr06vhwO`f^H)jpS{@Dn+naT3?b$uW(~ zYvtK6#^Tm1B#*%ObxM(6pWo!J93;4$N*y z&XSa_q_7{hyQ^rwF96>xMs)KHH@E0mC%a{~(r^AmNit%>``WfjSfi-LCb_CJ&oS$5 z?1byqRPq}5Z3%q!c&RV^$@$vIr z(yPFEw}et;CwDiwd!#|-Ho0ZwKFf7)lUq8-dX^a<0wN{vzk%D#bzjOyjgBC}a$AX?TX#s>>OtY-Mt&&U$o7{Ad?Q;@giCiF0--+57MYbL zMY!q*Lm*@;GbXg82(SLpRtcY~xI6Z9x9k@+etd+L{Fq7>IPd0Bf(&G3lY3mIaMlmqV?T2b z{w$(@qL!Yg;_OM$lMdWK)PAd)+*5-r>1k_gaA)ml8@X!eXQGCt{9Mv8>oo|;P2=2U z^kI=aD-zx4h{JQ)wjPyg-jdLr{R4Lvf{E^V(dovHMtHi-KX4cP%=P_D+)M1$P4@Gm z|9Pp&0g!|*OG480!$`t4P3{#*=*{z06Ai$cZNV&wFb}3Ngokyf3|bO`heo)wBL-g+ zgSrueYqNq)OzA8M-6cD@t0RTHE;`+a?u{(nq?FE*(9Ic@DCEtoLe^#Jevr~x61vxS z83Nr8Q#wmRclORhpxY;(b{;nFFG{*#^#(b~IZAcsZeQR(4*5E55%tPPT;1JN@=R^(ufdtcy z8t%iaVD$|S-Q|0^^P>jeC_3GU?xQSSeS<^y$zE=5ME9}ibR)V?vUK$g0Nw1poen#w z=WG(4ZbbKKmae`5pnH9%qyat?UEFY=XXy?|8_tr@ZP;-Lbjvb>y-!1VN9xWS*J$rV zM*iHVq5L#8vc{D5icUo7(@=i5b;?;Z>bYFAxx7Q&TJoH6^m2Jl|qpXZzfrJrAB%2U8_J}RR`w{#Nta}c>z70-qu9@FmFwA_y8O=17zy-IK zN;hzw+3aREC!@ewR+SJ>|G=Hck2=rU5nnYUoJABqDzT(!=IoYu^m9ZLd-Pd+sjA`7 zD8fs2OM1?^B8+?7>@1-Th`vTkitw7|C+B7Ax8+REw(rQBEH_I!SQlg+7ZvU%Q(pQk1hn7{BqbE!SfZ+3Il zWHm-|fwi1~nb_pQEwx;IY$BRW%UzUhxp`SV);E9%Gc9*-8$ai+4$yyfI<@C?dj4OEzY;ei#v9rX{yT_~mf7d9wR>a@35M)ixtfH5y;8 zW~^zjE3CnIoN2H5we9uXF!$cR?yY?tC^^?v*yMGXS z512Z{0dB|+*1F}E1?dwVNu2kf7>MJ%hq8^3Wg8k}du>$X!ztTO4tFaiyZaNiS9pFO z@js6?I{;$)F|kdWHxi;kRyMoG(*bG$^~G~jp9XwZ>Jpw%mGLO>q-XTeF>Y0J`HR3k zFvdM)i3>)%r<=>4^9Fz|qda30Q_!+5TThVHJsa^}Gw3bP)b7&|eLFsJ^v{VXcJ$9@ zEqq0W(x;(3ZNv~L*Jdbv8p=<`C*Ar5)ftbpt9_mKjCL=Yd^H{ArC7`t#-QI`-VV|m zLN7;x)_0UOF?yL|l$ju??Sig2d!@PT0I(Bv^H)=ju>Vw15wdy>%nG^ zoC}JJexd;*_Y8M8Pj(9v+j_$r)tmljU9$rq+j>j3MVghXsLHpS-CtANT5lBrxK>l( zMG@xldM9UJ(T<{NpN8bLbe8^(cHble#s;r~_x;ZY%?^Mx@u4(9nz>z^DC&YQiGzwkd_5~F#m`%1bdO^=J-Q2DyqeUs|C zKIjCR(e<}kU4NI=b$x6ET}Ic9=_aPSwj^{9?UVSS#&q=|6?E^UYl4mG>Q{`Q%d~A{ zy82iGx{Rl7OjjREK$r2ejp=&%<0Y&u)C>YA>MLLMvxH6frPx}18lub)bdreTA?V~5 zoBCWm!cA`}e^M6$o)TAi_ZZjWW?>!+xlWBL#UV3boi>?pZB0(@dVqy`0^G$=7ry zGjg83I$V=^itXh+*mG1YVMj9ZL_C-a0Q~kaz_S1fJgWiNTn^wnRq{XtKDPnb{2Ji9 zRq~<;Ji7td=1G884%Y?)V7 zFRL}hbN4cRUM_tKjQjn-EA)yMH(v_%vEP-}J%m`iC!iS-XjM9fcwD{P6vZ1|?n0*U zYNe~hnr;;KTcN!WBEXi=rAAs7BqW#%r=Q)_Xt^-aiz=15(Fk zNfF|6<5l`=Rbw1!UYD(L@S>(jal2b1y#&amTmxLb2^ZEj;dg%5=z2Aw*X0e?SR%B> zniVzHQ}vByMl2FOBPE$c!Jry*b7NMJMOi`2pgo}_MaZc7{e*)TXGJ<^D0L2AofYYe zyCu60H;LUipu9QD?#j$i;z28!+_jTSCEtcNr1GTBQcUTLm)Y(;nuti|C@_MI4^sej9iaT{b*Snu% zTTq_zF7G1m_CNQuxR2VcXWy$D0rNsbWClxH+%i@8SjAnkpPQSMaGxi=-~T+&;=c4H zELRDD1GhXX;lUR7kV?=@_Yu0*Rf*IO*Gm0@-&9+n5(F-~Rgu(>w75qHN&T2fEnvnX zRz@Q_)CGk0%6~WrHVb34E7$GC^)&uaFw#jaF?5`BZ|;Omm;!67rb@xjLN? zZxK0oE+ipu+}q8GywtNQUpMkn&w1N@WKZ|bPu-h8jjZqaTGjGY1K|r&ZA}beLo83( zKj0%+s9RCbYL&l*7{bOpz~AcR!TP9qU)&m4b+L=#*Fel`K>qozNiTd!#Bnct*-Nsl z)6L)4U9ztODqCISP3#r_^D6e}->Z8~!jR@24Oo%EuWfO!%S?PDzF`Unz^XetfNH`w zRbBL7vUa{M#`)E{NUW#p-CupkO~LHhZQ9)meoFWe3*8?yD)PnaZM zy4AWRIuMJ0tTn|Ci5$4z=R4ai#8-sTo$m4&%@VENB)*7o-XthX&}ZsR zqP}q{7?YSA`HL@AvTkG)UuBh6-?-3awmHAfD*Kx(U40`#m)YcOOjqAX&}Ftb8`IUB zJam~2&Mncc{ek=Pr*6|vMp(@z;vVQSbHSyce=K$y4O%Dh_6{NQzQjI$0f5Osj(8gzh5VsttpUAm=G>m3h#WV*nB zNMbL48Gpkn86xW)4|JKX(3q~?@j#d95{>D)(^1Tl&}F*DmgpFJpV-f>*e?zmF82*{ zh5wn~s=-<9bEVpcG%FS8R1x)6t?ufyeHNG|0nk3NE4gM%s=PJ^e!GLd_hc=3T`jQ2 z=PZoz*A7$tYWVAG;lAN-h;eJGc*kW?!#|%kyoc4d2t{TVIB(3h?SomLhH}%SWYTeydPh9zxH;Q9)?_Gs8p_Ne-Nw3I zo1ye+C^P4R8&j^&Q2I2KPoyV`8&ht`Q2I2KD~Ce4E<@?lP`)#iR@s=L^l2z(Zk@8m z58e{{w=d-1R^Z<><6IoM!gAf)I=9B?rQ?|xtOC7>>$V2y+hg<@-9spQNsPW_AJDyg z98KrN?r2c;(@emjgk*)ErMUa^0mCRX8+<-f9C2z zjl2Rg^iqn3-iKPjN$kX2$8pgkd_aSW<+Ufx0na z{Qz&QrlUh+!tS(2ONuZvR5vE9AL2!r8LJx;){pTb%na6z3F`-W5oSi~#)S2wya*rI z%bgdktF2Ny>P80eRJI-Khj|fZ-XVBegz<>-j3?C0|9Q%~hF{+=o~`W{Pjy&C`keZO zzy-IAexWJD^R4cMG$dVZ_ALZ4sa67It1qg?bb9OU`=tc=8UvmWGGE>ja7_ZttXjUZ zCFH9KGP7#AMdWJ<^5UKGkSmczjIOSaT-PSJetlE-*$DSyimU0}uP5-+wB5fZg1-?l zTR&jDnZUmohDO%`S7WYg0DmiiKR6NiM&NR9Z#RJdHG#h{5oW#yuKvHi0sNf=ZUfTv zkNsfxZVJDE=6newxt3pVB=6N4$zxSBk_|EvfjKlpDN^kFt?q+C&hta7QNWBZ+!)mt zIZtmZA0oz5Q|OI83*Y18l^xNQHnhJU@lsgtl(xx`oT@ zbZ)KkSNdS>0x4f$-V&q~DgVMYcTuYRVj3-2QrL{knWrk_<2n~-4e1i&QE>A+vmzc} zPYuKy(xnOREcLay5$=t8+(3dmSqBUUBHWwxxWN-{@o-($ysGTsGO;YrsRp?`%kmXT z73;;yf~bmh^;OJIa378Ww>v2~lxGRNQ7UBL{kGnd-Jt5qR z2)Di-*Uvs&e8$SBrGiX2xG@Tv@{Pm6T+ zP-p4>xeYe7@lGBlw*S;CChP#|2*$!S8MWzbAp;(m;`mv6HtMIdA3H zd-;27hl2rsT4$lgw`C|qM)X>nTPxEfbK^dCykh3_-nw6JGb3!NT|j!nSOGnK zPY&~Lq?8$-b5}d9>dr~jvC)%$pBe1}NYc~Wk(4wudFt!zgwKx z(+yrbH~ODN?GAvHbd!`snpMN7uAAH4Evb?gTSWkj?KKf*V_K1C`_>p{)46pK?4uM` zV-UB+Xfucn5&HJDiEGeHVl=WAUGJBE$>)v~J!21d-T`h_5*OU*g}lrE+}-W~NY;BK zD{00O3XwtF+wPX8vM#fV0GOzHubBs8*wvcAE{I^CG$?d= zjJ9@N1X}I-U|Q&{6Wk^HySa($d&mpV=n?f^*EMmyT*C97hZp?M>UIY}th^{z zNVAdkGYFwx|qhTz?V;L~=iKm_k?gyM$yDOP9J4`_b%xok0nL;$;crPcBh1v6yY6{lDX5zsxh8B zeUh!Qegja1D~3W?zX2%1HA5k+-vAWhm!%=FT0b0$@Qkh3SYuL~to@Xggjk;@O?pqt z!Dm@zeV$d;;Nv^u;hyy5Ph&j~KEGpfr{7X(Ogi{5jY!Ymy5!yv2cM=9=_h**LED3m z(}?uj9}a5_C6ps|_;pKcN9JA1pnXnSF^+Eq7NB>uv;YmI?? znOMU+nuD#yU22E$E7AG+Kn?us1pb6xz*rx7*KZoYzfItGXn@`bT>AmvrSLo8_fD?6 zxV+QtE!8;P7ySbNi6xw_z^pJtm7Y{`Czo)#zS(V0N=Z&z$T0}}Olqam^~YpmZ*YqK zylma6j8jW7)l$B#2C3AvvyV|fUn{@D}~<;kN0rh%jGq9cCF^#+|9fNLrBng;M|6Zl%mxCr=iuIn1W7bfsEqlVC&*C+5xwGh6NlGU6y zG${SX1b(YL)%P{$q6B__1Go-NFXdXs<@?)Bwf*gZ9j(9Jto|l2{S6+~i*6~o#e@3W ztyZIe^tagI+!jeAr<1Hb-<}|C3vz8#>Sw7Z>ycUOY5ox9Bu?u&Zd-3iWi?s~uT@_kv4yC=b&SV9joBHULguEs3yP2d-&`5z;GIJ2gnUBBSFRIwxJmB4p*T&$zIFV+~mNh0F{AD7MW=@wiCS91> z74vD4W_CLplMdbi6lrF+b4#Q(EwDV%>nVHDVDTRge=yQ){b2S`0=HAK-v@sj5f4e0YCf0Xsc^?^NfH>Gb?Y>95L%AhfoeGO+)*~e*1c$Ix(Dg!oj zl>s)D%{bAkY*Sk1$0OYQpSVjBm3``U^_l%6rvBYeoj5qwO-}EqnfE@rv-PS|IxrDmN&Q&?74b%g zyD6ILpDL+zBkMRVD^>l{oCx0;3ZX5l`R1^s2yY%cgc>KNOLLYK;S<|!m9VBEXIQI= z>MqU27Ga-?qff7QVbKYMGZOe!`qcT72!3V?zZ|_Rr?>~Xyt-%BsoO6cpOvbcvg5;N zmQ)eXcPBEOomKZaS#{TU8WCQK)8a=$G$yR~bRx_&aAQIfKhteQc+*g7v_m1D(2^p| zSjLuWd+47sZ0hwZ>^FNR>%RTcZ@geU zXKVTu;mO^JmpD&^aqm7qOPC3;Eh)lhwq9e6Rn9d%i|RCeFnl>;DaN=UHM1J{g$dlI z{HuVk#=xYN|_2i2iz%NPQ-|4le&A=67T-pFWkic(H7ny#NH^$2vz%NhW zeLte~nZU)&6%F9?6Zrc&==FW@D--xbT`WTkQ2G+Cs~VJkbpoG0lG2w&%q(aCzb1hX z2);6cU)unFT>|ePiDp&Hzn}P z#=-malfB+=ZUDa}fuA{!P;VA+1<8vWz;8|9Z|}9`X7VG=Z3*sSx!(bbm5kpsDE9UQ z{(%;u76I4S1(!5{-;u!Q=<~+kr|>%y_`}@_XCoQ!N=h%a<-%M@j~-t-J|9dAri8if zU}Bj6RVVq~!9F2NF~|0F2f1o+sLwh)49aKbAqvV%^I^~(5HJ*{gh8cHFyg}r33y&O zD7SAgHq2KGhUmUt;Rh+k0H8nn#Y- zUv*WX)(aWESLP)W2k^QBoSZxR0XA)OVUf)4pgf`t_lky8WuC|^ELcrID>=y+7J9;9 z&s=W597&h&sTRWgVG^+P(|jIgQs%^MroJFs-&<%fTVJX4clp9JAr7zR_sor}1TdE0 zFE>tE6RU;d6ql>yt^R!ZB&t-+@TQuLO1!f2^F>BW^W9FrfE%o*_lI(Q>%sX zsJS~hpu*qbm=GMHeS-YV8pQ>te znp#YW%rF&>^Qlq)#pS1ZX|Ydet3e;dSjl0~H>a=sA1n0OL%!pGJLOhQ38P{r&}-ZJ zs;!VNK6uVumsLA2I7Bu;w{`yrN1fNEy|sc?(gGs+!&WV0gt@71eQ?yxePPfaw#}Yh z4Te@Af@P^oVSAq^ePGUANmT<|XNsC~xk@XIT3c8(vSy@^wN!K7Uep4C6x&8mZc!Vh zwp7jODV_nfR4{s}C6_z0l8buAKUC+(SXNACSlQGTergu%fr)JAt}h(D8K=kEzTXR&P#T@>WZ zM){GX0|W-w9dws}RXzjkSdmN!CQc5<`P8JzLFiNaOqOZm+A8uHxao=HH^T*Ytv%JI zkRb_IKd!u&rK*%V&U{GGS23Qx;CpLSS4Y@{>38&$cj5^>3DzjV=zd`XThUxcSSU@+ zH{-(9bBY=j^i%Aq1~z6fV&Qjl@!-Q}smZCfpsak4jX>w&Lz59fM6GHAI;9F~g@=}( zcbQ);|7`m(SK81VbWCfFG+IKVpvG1aY%I-9UlnnAW?_5z2(lUZ*+k0ST zq?E&zKdcKgwLIaD49jz>1OK6`GSV@~xctvMbK7fx{8I_7=G^2SM&pqoo~iqH zNX73yl@aF|7x>=WR(;`fjJ)iM2*ZNyu-+9@TsP-U|#{2Vp3Fn%y> zDm39ynNlJ*+>CZcQC&y4jYGOf@p9V|RzrG=MlSJGbp83B$}m+hH(woY-d2{`5e{R# z%O8uw#WZ#kkldqGXO8*^&yKCOTeXUxDox@e+@?~NfA{~X$liR|uIH|B^sqv%kf&=l zR|-flG93LoBCaO&R9VW19H-{5$d`XX@m5q!yeAKeM|T!WkZjBN(NUmxXQ|fDH>yAn z##G9ZX$)%2#iLetFe_rB+N$>FpFhl@nal=qx!-m5SIS67TcGo!W=}@On)2_yitz^+xU_aLIruTSpnU3TEUxT%_3q5?PX z5e%m63t^n3s`5|h*@~RIlPWC2#O$t?^qPZTkff}V7Fw2Rl0{ODqtak`xPMx69XOv z(j?yK=XBi^0W}_9t&}fe;f!3rs;JZ9XVF2PRz#l(9AD~29YqJDh17=>Jr;Y)yCM?q zUwydnW4ZM5cX{I1?Y0L_?^FAFUcJN3xqW)d-{w)4wDJf24oD`H=|=UGFR~{T3w_ar zYQbFT7{Y5WG7)byzbPvOI+ig3Ns+^()W`@^FsUdrC{IS(g7*o6i2+A&M_%r56bD;T zDG41p1iWFf^neCE0zC7~1x(!KA;iT{?Ce4Xfy2UtV9Mm+0H6BxZy3vHag+zYrhgZ=_||q&aP9RI@e#ATCFn_6ScoIryX4Jsj;aLn}%K z^hzPW>DRx9)3uqssjWyINfVk7lF=kfSV_x+hEP7)0Q^xXmg{Zd$2BjbB#V&nc7+N>&KeSv)^!In_e>S1L)KJSs+2 z{-QIFX3+6)x=rcqAm0uvZtl}wEtFji%0D6}#3xu{68u{N1R~4ys!f*hEU9Kots~W9 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 G3;#bd%Xdfs literal 0 HcmV?d00001 diff --git a/build/web-mobile/cocos-js/assets/spine.js.mem-DnIU7NNm.bin b/build/web-mobile/cocos-js/assets/spine.js.mem-DnIU7NNm.bin new file mode 100644 index 0000000000000000000000000000000000000000..37ef8f4e97d9e3c11ba17f0ecbbaa9ed81d0d53b GIT binary patch literal 19853 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 N`Zc^-?XV}g{~whZdA{r=A,f=e}));var n=Object.assign({},e),a="";"undefined"!=typeof document&&document.currentScript&&(a=document.currentScript.src),i&&(a=i),a=0!==a.indexOf("blob:")?a.substr(0,a.replace(/[?#].*/,"").lastIndexOf("/")+1):"",e.print||console.log.bind(console);var t,o=e.printErr||console.error.bind(console);Object.assign(e,n),n=null,e.arguments&&e.arguments,e.thisProgram&&e.thisProgram,e.quit&&e.quit,e.wasmBinary&&(t=e.wasmBinary),e.noExitRuntime;var c,b={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(){},Instance:function(A,r){this.exports=function(A){for(var r,f=new Uint8Array(123),e=25;e>=0;--e)f[48+e]=52+e,f[65+e]=e,f[97+e]=26+e;function i(A,r,e){for(var i,n,a=0,t=r,o=e.length,c=r+(3*o>>2)-("="==e[o-2])-("="==e[o-1]);a>4,t>2),t>2]=w[r>>2],w[e+64>>2]=w[r+64>>2],w[e+116>>2]=w[r+4>>2],w[e+68>>2]=w[r+68>>2],w[e+120>>2]=w[r+8>>2],w[e+72>>2]=w[r+72>>2],w[e+128>>2]=w[r+16>>2],w[e+80>>2]=w[r+80>>2],w[e+132>>2]=w[r+20>>2],w[e+84>>2]=w[r+84>>2],w[e+136>>2]=w[r+24>>2],w[e+88>>2]=w[r+88>>2],w[e+144>>2]=w[r+32>>2],w[e+96>>2]=w[r+96>>2],w[e+148>>2]=w[r+36>>2],w[e+100>>2]=w[r+100>>2],w[e+152>>2]=w[r+40>>2],w[e+104>>2]=w[r+104>>2],i=o[A+4>>2],u=w[i+44>>2],b=w[i+40>>2],d=w[i+36>>2],t=m(Zn[o[o[i>>2]+48>>2]](i)),c=m(Zn[o[o[i>>2]+48>>2]](i)),l=m(Zn[o[o[i>>2]+48>>2]](i)),o[e+36>>2]=0,b=m(b+c),w[e+28>>2]=b+b,b=m(d+t),w[e+24>>2]=b+b,u=m(u+l),w[e+32>>2]=u+u,A=o[A+8>>2],u=w[A+44>>2],b=w[A+40>>2],d=w[A+36>>2],t=m(Zn[o[o[A>>2]+48>>2]](A)),c=m(Zn[o[o[A>>2]+48>>2]](A)),l=m(Zn[o[o[A>>2]+48>>2]](A)),o[e+20>>2]=0,b=m(b+c),w[e+12>>2]=b+b,b=m(d+t),w[e+8>>2]=b+b,u=m(u+l),w[e+16>>2]=u+u,a=f,S=n=S-368|0,T=w[36+(A=e+112|0)>>2],L=w[A+4>>2],y=w[A+20>>2],E=w[A+40>>2],nA=w[A+8>>2],U=w[A+24>>2],d=w[8+(M=r+48|0)>>2],t=w[8+(f=r+112|0)>>2],B=w[M>>2],Z=w[f>>2],H=w[M+4>>2],X=w[f+4>>2],u=w[A+32>>2],dA=w[A>>2],b=w[A+16>>2],c=m(w[e+24>>2]*m(.5)),w[n+356>>2]=c,l=m(w[e+28>>2]*m(.5)),w[n+360>>2]=l,k=m(w[e+32>>2]*m(.5)),w[n+364>>2]=k,F=m(w[e+8>>2]*m(.5)),w[n+344>>2]=F,V=m(w[e+12>>2]*m(.5)),w[n+348>>2]=V,h=m(w[e+16>>2]*m(.5)),w[n+352>>2]=h,d=m(t-d),t=m(Z-B),B=m(X-H),Z=m(m(u*d)+m(m(dA*t)+m(b*B))),q=w[40+(r=e- -64|0)>>2],_=w[r+8>>2],j=w[r+24>>2],H=m(m(u*q)+m(m(dA*_)+m(b*j))),tA=m(Q(H)),$=w[r+36>>2],I=w[r+4>>2],AA=w[r+20>>2],X=m(m(u*$)+m(m(dA*I)+m(b*AA))),oA=m(Q(X)),rA=w[r+32>>2],fA=w[r>>2],eA=w[r+16>>2],D=m(m(u*rA)+m(m(dA*fA)+m(b*eA))),wA=m(Q(D));A:if(!((b=m(m(Q(Z))-m(m(h*tA)+m(m(V*oA)+m(m(F*wA)+c)))))>m(0)||(R=m(m(T*q)+m(m(L*_)+m(y*j))),cA=m(Q(R)),z=m(m(T*$)+m(m(L*I)+m(y*AA))),P=m(Q(z)),O=m(m(T*rA)+m(m(L*fA)+m(y*eA))),bA=m(Q(O)),u=m(-34028234663852886e22),b>m(-34028234663852886e22)&&(s=Zm(0)||(y=m(m(E*q)+m(m(nA*_)+m(U*j))),uA=m(Q(y)),x=m(m(E*$)+m(m(nA*I)+m(U*AA))),lA=m(Q(x)),g=m(m(E*rA)+m(m(nA*fA)+m(U*eA))),iA=m(Q(g)),um(0)||(um(0)||(um(0)||(um(0)||(um(1.1920928955078125e-7)||(U=m(lA+m(9999999747378752e-21)),q=m(P+m(9999999747378752e-21)),_=m(wA+m(9999999747378752e-21)),P=m(-T),B=m(0),bA=m(O*O),lA=m(m(g*g)+m(0)),(j=m(N(m(bA+lA))))>m(1.1920928955078125e-7)?(t=m(0),b=m(b/j),d=m(0),m(b*m(1.0499999523162842))>u&&(s=$m(1.1920928955078125e-7)||(j=m(uA+m(9999999747378752e-21)),$=m(cA+m(9999999747378752e-21)),cA=m(z*z),uA=m(m(x*x)+m(0)),(I=m(N(m(cA+uA))))>m(1.1920928955078125e-7)&&(b=m(b/I),m(b*m(1.0499999523162842))>u&&(s=iAm(1.1920928955078125e-7)||(iA=m(R*R),tA=m(m(y*y)+m(0)),(I=m(N(m(iA+tA))))>m(1.1920928955078125e-7)&&(b=m(b/I),m(b*m(1.0499999523162842))>u&&(s=Pm(1.1920928955078125e-7)||(I=m(-E),oA=m(D*D),(E=m(N(m(oA+lA))))>m(1.1920928955078125e-7)&&(b=m(b/E),m(b*m(1.0499999523162842))>u&&(s=Pm(1.1920928955078125e-7)||(P=m(X*X),(g=m(N(m(P+uA))))>m(1.1920928955078125e-7)&&(b=m(b/g),m(b*m(1.0499999523162842))>u&&(s=Em(1.1920928955078125e-7)||(E=m(H*H),(x=m(N(m(E+tA))))>m(1.1920928955078125e-7)&&(b=m(b/x),m(b*m(1.0499999523162842))>u&&(s=gm(1.1920928955078125e-7)||(y=m(-Z),(Z=m(N(m(m(bA+oA)+m(0)))))>m(1.1920928955078125e-7)&&(b=m(b/Z),m(b*m(1.0499999523162842))>u&&(s=xm(1.1920928955078125e-7)||((h=m(N(m(m(cA+P)+m(0)))))>m(1.1920928955078125e-7)&&(b=m(b/h),m(b*m(1.0499999523162842))>u&&(s=Zm(1.1920928955078125e-7))))))))))))))))){r:{f:{if((h=m(N(m(m(iA+E)+m(0)))))>m(1.1920928955078125e-7)&&(b=m(b/h),m(b*m(1.0499999523162842))>u))s=Z>2]=h,Z=m(m(w[A+24>>2]*t)+m(m(w[A+16>>2]*B)+m(d*w[A+20>>2]))),w[e+52>>2]=Z,u=m(m(w[A+40>>2]*t)+m(m(w[A+32>>2]*B)+m(d*w[A+36>>2])));break r}h=w[p>>2],w[e+48>>2]=h,Z=w[p+16>>2],w[e+52>>2]=Z,b=u,u=w[p+32>>2]}if(w[e+56>>2]=u,s&&(w[e+56>>2]=-u,w[e+52>>2]=-Z,w[e+48>>2]=-h),w[e+44>>2]=-b,C>>>0>=7)o[n+120>>2]=o[M+8>>2],i=o[M+4>>2],o[n+112>>2]=o[M>>2],o[n+116>>2]=i,u=w[e+56>>2],B=w[A+40>>2],d=w[e+48>>2],h=w[A+8>>2],t=w[e+52>>2],Z=w[A+24>>2],k=m(m(u*B)+m(m(d*h)+m(t*Z)))>m(0)?k:m(-k),E=m(k*B),B=w[A+36>>2],H=w[A+4>>2],X=w[A+20>>2],l=m(m(u*B)+m(m(d*H)+m(t*X)))>m(0)?l:m(-l),g=m(l*B),B=w[A+32>>2],D=w[A>>2],R=w[A+16>>2],c=m(m(u*B)+m(m(d*D)+m(t*R)))>m(0)?c:m(-c),w[n+120>>2]=E+m(g+m(m(c*B)+w[n+120>>2])),w[n+112>>2]=m(k*h)+m(m(l*H)+m(m(c*D)+w[n+112>>2])),w[n+116>>2]=m(k*Z)+m(m(l*X)+m(m(c*R)+w[n+116>>2])),o[n+216>>2]=o[f+8>>2],i=o[f+4>>2],o[n+208>>2]=o[f>>2],o[n+212>>2]=i,c=w[n+352>>2],l=w[r+40>>2],k=w[r+8>>2],B=w[r+24>>2],c=m(m(u*l)+m(m(d*k)+m(t*B)))>m(0)?m(-c):c,D=m(c*l),R=m(-V),E=V,V=w[r+36>>2],h=w[r+4>>2],Z=w[r+20>>2],l=m(m(u*V)+m(m(d*h)+m(t*Z)))>m(0)?R:E,g=m(-F),E=F,F=w[r+32>>2],R=d,d=w[r>>2],X=t,t=w[r+16>>2],u=m(m(u*F)+m(m(R*d)+m(X*t)))>m(0)?g:E,F=m(D+m(m(l*V)+m(m(u*F)+w[n+216>>2]))),w[n+216>>2]=F,k=m(m(c*k)+m(m(l*h)+m(m(u*d)+w[n+208>>2]))),w[n+208>>2]=k,t=m(m(c*B)+m(m(l*Z)+m(m(u*t)+w[n+212>>2]))),w[n+212>>2]=t,A=(((f=C-7&255)>>>0)/3<<2)+A|0,w[n+288>>2]=w[A>>2],w[n+292>>2]=w[A+16>>2],w[n+296>>2]=w[A+32>>2],c=w[(A=r+((f>>>0)%3<<2)|0)>>2],w[n+80>>2]=c,l=w[A+16>>2],w[n+84>>2]=l,V=w[A+32>>2],w[n+88>>2]=V,A=n+208|0,r=n- -64|0,d=m(0),B=w[n+296>>2],h=w[n+88>>2],Z=w[n+288>>2],H=w[n+80>>2],X=w[n+292>>2],D=w[n+84>>2],u=m(m(B*h)+m(m(Z*H)+m(X*D))),(R=m(m(1)-m(u*u)))<=m(9999999747378752e-20)?u=m(0):(R=m(m(1)/R),d=m(w[A+8>>2]-w[n+120>>2]),E=m(B*d),B=m(w[A>>2]-w[n+112>>2]),g=m(Z*B),Z=m(w[A+4>>2]-w[n+116>>2]),X=m(E+m(g+m(X*Z))),B=m(m(h*d)+m(m(H*B)+m(D*Z))),d=m(R*m(m(u*X)-B)),u=m(R*m(X-m(u*B)))),w[n+328>>2]=u,w[r>>2]=d,u=w[n+64>>2],w[n+216>>2]=m(V*u)+F,w[n+212>>2]=m(l*u)+t,w[n+208>>2]=m(c*u)+k,u=w[e+48>>2],d=w[e+52>>2],t=w[e+56>>2],o[n+44>>2]=0,w[n+40>>2]=-t,w[n+36>>2]=-d,w[n+32>>2]=-u,Zn[o[o[a>>2]+16>>2]](a,n+32|0,A,b),o[e+40>>2]=C;else{u=w[e+48>>2],C>>>0<=3?(d=w[e+56>>2],p=n+356|0,i=f,f=r,v=n+344|0,b=w[e+52>>2]):(u=m(-u),d=m(-w[e+56>>2]),p=n+344|0,i=M,M=f,f=A,A=r,v=n+356|0,b=m(-w[e+52>>2])),c=m(m(w[f+32>>2]*d)+m(m(w[f>>2]*u)+m(b*w[f+16>>2]))),w[n+328>>2]=c,l=m(m(w[f+36>>2]*d)+m(m(w[f+4>>2]*u)+m(b*w[f+20>>2]))),w[n+332>>2]=l,t=m(m(w[f+40>>2]*d)+m(m(w[f+8>>2]*u)+m(b*w[f+24>>2]))),w[n+336>>2]=t,t=m(Q(t)),(l=m(Q(l)))>(c=m(Q(c)))?(r=(s=t>2],t=w[r+(n+328|0)>>2]>2])+m(w[i+8>>2]-w[M+8>>2])),V=m(m(t*w[r+16>>2])+m(w[i+4>>2]-w[M+4>>2])),B=m(m(t*w[r>>2])+m(w[i>>2]-w[M>>2])),vA=s?2:1,r=1,i=2;r:{f:{e:switch(0|(hA=(C>>>0<4?-1:-4)+C|0)){case 0:break r;case 1:break e;default:break f}r=0;break r}i=1,r=0}t=w[32+(r=(s=r<<2)+A|0)>>2],c=w[r>>2],l=w[r+16>>2],k=w[32+(A=(r=i<<2)+A|0)>>2],h=w[A>>2],Z=w[A+16>>2],H=m(m(F*k)+m(m(B*h)+m(V*Z))),D=w[32+(sA=(A=K<<2)+f|0)>>2],R=w[sA>>2],z=w[sA+16>>2],X=m(m(k*D)+m(m(h*R)+m(Z*z))),O=w[A+v>>2],T=m(X*O),y=m(H+T),x=w[32+(aA=(A=vA<<2)+f|0)>>2],g=w[aA>>2],E=w[aA+16>>2],h=m(m(k*x)+m(m(h*g)+m(Z*E))),L=w[A+v>>2],k=m(h*L),w[n+316>>2]=y-k,Z=m(m(F*t)+m(m(B*c)+m(V*l))),D=m(m(t*D)+m(m(c*R)+m(l*z))),z=m(O*D),O=m(Z+z),R=m(m(t*x)+m(m(c*g)+m(l*E))),t=m(L*R),w[n+312>>2]=O-t,w[n+308>>2]=y+k,w[n+304>>2]=O+t,c=m(H-T),w[n+300>>2]=c+k,l=m(Z-z),w[n+296>>2]=l+t,w[n+292>>2]=c-k,w[n+288>>2]=l-t,w[n+280>>2]=w[s+p>>2],w[n+284>>2]=w[r+p>>2],i=n+208|0,s=0,S=W=S+-64|0,t=w[n+280>>2],k=w[n+288>>2],t>(c=m(-k))?(w[i>>2]=k,w[i+4>>2]=w[n+292>>2],t=w[n+280>>2],k=w[n+288>>2],c=m(-k),s=1,r=i+8|0):r=i,A=t>c,c=w[n+296>>2],(0|A)!=((l=m(-c))>2],w[r+4>>2]=m(m(m(w[n+300>>2]-l)/m(c-k))*m(m(-t)-k))+l,w[r>>2]=-w[n+280>>2],s=s+1|0,t=w[n+280>>2],c=w[n+296>>2],l=m(-c),r=r+8|0),t>l&&(w[r>>2]=c,w[r+4>>2]=w[n+300>>2],s=s+1|0,t=w[n+280>>2],c=w[n+296>>2],l=m(-c),r=r+8|0),A=t>l,l=w[n+304>>2],(0|A)!=((k=m(-l))>2],w[r+4>>2]=m(m(m(w[n+308>>2]-k)/m(l-c))*m(m(-t)-c))+k,w[r>>2]=-w[n+280>>2],s=s+1|0,t=w[n+280>>2],l=w[n+304>>2],k=m(-l),r=r+8|0),t>k&&(w[r>>2]=l,w[r+4>>2]=w[n+308>>2],s=s+1|0,t=w[n+280>>2],l=w[n+304>>2],k=m(-l),r=r+8|0),A=t>k,c=w[n+312>>2],(0|A)!=((k=m(-c))>2],w[r+4>>2]=m(m(m(w[n+316>>2]-k)/m(c-l))*m(m(-t)-l))+k,w[r>>2]=-w[n+280>>2],s=s+1|0,t=w[n+280>>2],c=w[n+312>>2],k=m(-c),r=r+8|0),t>k&&(w[r>>2]=c,w[r+4>>2]=w[n+316>>2],s=s+1|0,t=w[n+280>>2],c=w[n+312>>2],k=m(-c),r=r+8|0);r:{f:{if(l=w[n+288>>2],(m(-l)k|0)){if(!s){r=0;break f}}else if(k=w[n+316>>2],w[r+4>>2]=m(m(m(w[n+292>>2]-k)/m(l-c))*m(m(-t)-c))+k,w[r>>2]=-w[n+280>>2],r=8,8&(s=s+1|0))break r;if((t=w[n+280>>2])>(c=w[i>>2])?(w[W>>2]=c,w[W+4>>2]=w[i+4>>2],t=w[n+280>>2],c=w[i>>2],r=1,A=8|W):(r=0,A=W),v=i+8|0,((l=w[i+((Y=s>>>0>1)<<3)>>2])c|0)&&(k=w[i+4>>2],w[A+4>>2]=m(m(m(w[(Y?v:i)+4>>2]-k)/m(l-c))*m(t-c))+k,w[A>>2]=w[n+280>>2],r=r+1|0,A=A+8|0),!((0|s)<2)){if((t=w[v>>2])<(c=w[n+280>>2])&&(w[A>>2]=t,w[A+4>>2]=w[i+12>>2],r=r+1|0,c=w[n+280>>2],t=w[v>>2],A=A+8|0),v=i+16|0,(t>>0<4294967294)<<4)>>2])>2],w[A+4>>2]=m(m(m(w[(Y?v:i)+4>>2]-k)/m(l-t))*m(c-t))+k,w[A>>2]=w[n+280>>2],8&(r=r+1|0))break f;A=A+8|0}if(!((0|s)<3)){if((t=w[v>>2])<(c=w[n+280>>2])){if(w[A>>2]=t,w[A+4>>2]=w[i+20>>2],8&(r=r+1|0))break f;c=w[n+280>>2],t=w[v>>2],A=A+8|0}if(v=i+24|0,(t>2])>2],w[A+4>>2]=m(m(m(w[(Y?i:v)+4>>2]-k)/m(l-t))*m(c-t))+k,w[A>>2]=w[n+280>>2],8&(r=r+1|0))break f;A=A+8|0}if(!((0|s)<4)){if((t=w[v>>2])<(c=w[n+280>>2])){if(w[A>>2]=t,w[A+4>>2]=w[i+28>>2],8&(r=r+1|0))break f;c=w[n+280>>2],t=w[v>>2],A=A+8|0}if(v=i+32|0,(t>>0<4294967294)<<5)>>2])>2],w[A+4>>2]=m(m(m(w[(Y?v:i)+4>>2]-k)/m(l-t))*m(c-t))+k,w[A>>2]=w[n+280>>2],8&(r=r+1|0))break f;A=A+8|0}if(!((0|s)<5)){if((t=w[v>>2])<(c=w[n+280>>2])){if(w[A>>2]=t,w[A+4>>2]=w[i+36>>2],8&(r=r+1|0))break f;c=w[n+280>>2],t=w[v>>2],A=A+8|0}if(v=i+40|0,(t>2])>2],w[A+4>>2]=m(m(m(w[(Y?i:v)+4>>2]-k)/m(l-t))*m(c-t))+k,w[A>>2]=w[n+280>>2],8&(r=r+1|0))break f;A=A+8|0}if(!((0|s)<6)){if((t=w[v>>2])<(c=w[n+280>>2])){if(w[A>>2]=t,w[A+4>>2]=w[i+44>>2],8&(r=r+1|0))break f;c=w[n+280>>2],t=w[v>>2],A=A+8|0}if(v=i+48|0,(t>>0<4294967294)?48:0)>>2])>2],w[A+4>>2]=m(m(m(w[(Y?v:i)+4>>2]-k)/m(l-t))*m(c-t))+k,w[A>>2]=w[n+280>>2],8&(r=r+1|0))break f;A=A+8|0}if(!((0|s)<7)){if((t=w[v>>2])<(c=w[n+280>>2])){if(w[A>>2]=t,w[A+4>>2]=w[i+52>>2],8&(r=r+1|0))break f;c=w[n+280>>2],t=w[v>>2],A=A+8|0}if(v=i+56|0,(t>2])>2],w[A+4>>2]=m(m(m(w[(Y?i:v)+4>>2]-k)/m(l-t))*m(c-t))+k,w[A>>2]=w[n+280>>2],8&(r=r+1|0))break f;A=A+8|0}if(!((0|s)<8)){if((t=w[v>>2])<(c=w[n+280>>2])){if(w[A>>2]=t,w[A+4>>2]=w[i+60>>2],8&(r=r+1|0))break f;c=w[n+280>>2],t=w[v>>2],A=A+8|0}if((t>>0<4294967294)<<6)|0)>>2])>2],w[A+4>>2]=m(m(m(w[s+4>>2]-k)/m(l-t))*m(c-t))+k,w[A>>2]=w[n+280>>2],8&(r=r+1|0)))break f}}}}}}}if((0|r)<=0)r=0;else{for(kA=4|W,v=0,A=W,s=i;;){if(t=w[n+284>>2],l=w[A+4>>2],t>(c=m(-l))){if(w[s>>2]=w[A>>2],w[s+4>>2]=w[A+4>>2],8&(v=v+1|0)){r=v;break r}t=w[n+284>>2],l=w[A+4>>2],c=m(-l),s=s+8|0}if(Y=A+8|0,k=w[((BA=r>>>0>1)?A+12:kA)>>2],(m(-k)c|0)){if(c=w[A>>2],w[s>>2]=m(m(m(w[(BA?Y:W)>>2]-c)/m(k-l))*m(m(-t)-l))+c,w[s+4>>2]=-w[n+284>>2],8&(v=v+1|0)){r=v;break r}s=s+8|0}if(BA=(0|r)>1,r=r-1|0,A=Y,!BA)break}if(r=0,!((0|v)<=0))for(s=W,A=i;;){if((t=w[n+284>>2])>(c=w[A+4>>2])){if(w[s>>2]=w[A>>2],w[s+4>>2]=w[A+4>>2],8&(r=r+1|0))break f;t=w[n+284>>2],c=w[A+4>>2],s=s+8|0}if(Y=A+8|0,((l=w[(kA=v>>>0>1?Y:i)+4>>2])c|0)){if(k=w[A>>2],w[s>>2]=m(m(m(w[kA>>2]-k)/m(l-c))*m(t-c))+k,w[s+4>>2]=w[n+284>>2],8&(r=r+1|0))break f;s=s+8|0}if(kA=(0|v)>1,v=v-1|0,A=Y,!kA)break}}}pr(i,W,r<<3)}if(S=W- -64|0,!((0|r)<=0)){for(i=r,t=m(m(1)/m(m(D*h)-m(X*R))),l=m(t*m(-X)),k=m(t*m(-R)),h=m(h*t),X=m(D*t),D=w[(hA<<2)+p>>2],R=w[32+(A=(vA<<2)+f|0)>>2],z=w[32+(r=(K<<2)+f|0)>>2],O=w[A+16>>2],T=w[r+16>>2],y=w[aA>>2],x=w[sA>>2],A=0,r=0;f=(n+112|0)+G(A,12)|0,g=w[(s=(n+208|0)+(r<<3)|0)>>2],c=m(g-Z),E=w[s+4>>2],L=m(E-H),t=m(m(l*c)+m(X*L)),c=m(m(h*c)+m(k*L)),L=m(m(t*y)+m(m(c*x)+B)),w[f>>2]=L,nA=m(m(t*O)+m(m(c*T)+V)),w[f+4>>2]=nA,t=m(m(t*R)+m(m(c*z)+F)),w[f+8>>2]=t,t=m(D-m(m(d*t)+m(m(u*L)+m(b*nA)))),w[(n+80|0)+(A<<2)>>2]=t,t>=m(0)&&(w[4+(f=(n+208|0)+(A<<3)|0)>>2]=E,w[f>>2]=g,A=A+1|0),(0|i)!=(0|(r=r+1|0)););if(!((0|A)<=0)){r:if((K=(0|(r=(0|A)>=4?4:A))<=1?1:r)>>>0>=A>>>0){if(C>>>0>=4){for(r=0;f=(n+112|0)+G(r,12)|0,b=w[e+48>>2],u=w[(n+80|0)+(r<<2)>>2],w[n+32>>2]=m(w[f>>2]+w[M>>2])-m(b*u),d=w[e+52>>2],w[n+36>>2]=m(w[f+4>>2]+w[M+4>>2])-m(u*d),t=w[e+56>>2],w[n+40>>2]=m(w[f+8>>2]+w[M+8>>2])-m(u*t),o[n+76>>2]=0,w[n+72>>2]=-t,w[n+68>>2]=-d,w[n+64>>2]=-b,Zn[o[o[a>>2]+16>>2]](a,n- -64|0,n+32|0,m(-u)),(0|(r=r+1|0))!=(0|A););break r}for(r=0;f=(n+112|0)+G(r,12)|0,w[n+32>>2]=w[f>>2]+w[M>>2],w[n+36>>2]=w[f+4>>2]+w[M+4>>2],w[n+40>>2]=w[f+8>>2]+w[M+8>>2],u=w[e+48>>2],b=w[e+52>>2],d=w[e+56>>2],o[n+76>>2]=0,w[n+72>>2]=-d,w[n+68>>2]=-b,w[n+64>>2]=-u,Zn[o[o[a>>2]+16>>2]](a,n- -64|0,n+32|0,m(-w[(n+80|0)+(r<<2)>>2])),(0|(r=r+1|0))!=(0|A););}else{if(f=0,!(A>>>0<2)){if(W=3&(r=A-1|0),i=0,d=w[n+80>>2],A-2>>>0<3)r=1;else for(sA=-4&r,r=1;u=w[(s=n+80|0)+((aA=r+3|0)<<2)>>2],p=(b=w[s+(r<<2)>>2])>d,v=(t=w[s+((vA=r+1|0)<<2)>>2])>(b=p?b:d),d=(Y=(b=(s=(d=w[s+((hA=r+2|0)<<2)>>2])>(b=v?t:b))?d:b)>2])>d)?u:d,f=s?r:f,r=r+1|0,(0|W)!=(0|(i=i+1|0)););}W=n+208|0,p=n+32|0,i=0,b=m(0),t=m(0),c=m(0),S=s=S+-64|0;f:{e:{i:{n:{switch((r=A)-1|0){case 1:break i;case 0:break n}if((0|r)>=2)for(v=r-2|0;d=w[(A=W+(i<<3)|0)>>2],l=w[A+12>>2],k=w[A+4>>2],F=w[A+8>>2],u=m(m(d*l)-m(k*F)),b=m(b+u),t=m(m(u*m(l+k))+t),c=m(m(u*m(d+F))+c),A=(0|i)!=(0|v),i=i+1|0,A;);if(l=m(0xde0b6b000000000),V=b,b=w[(A=W+(r<<3)|0)-8>>2],d=w[W+4>>2],k=w[A-4>>2],F=w[W>>2],u=m(m(b*d)-m(k*F)),V=m(V+u),m(Q(V))>m(1.1920928955078125e-7)&&(l=m(m(1)/m(V*m(3)))),i=0,(0|r)<=0)break f;t=m(m(m(u*m(d+k))+t)*l),u=m(m(m(u*m(b+F))+c)*l);break e}t=w[W+4>>2],u=w[W>>2];break e}t=m(m(w[W+4>>2]+w[W+12>>2])*m(.5)),u=m(m(w[W>>2]+w[W+8>>2])*m(.5))}for(;ZA=(s+32|0)+(i<<2)|0,GA=zr(m(w[4+(A=W+(i<<3)|0)>>2]-t),m(w[A>>2]-u)),w[ZA>>2]=GA,(0|r)!=(0|(i=i+1|0)););if(J=0,v=0,r-1>>>0>=7)for(W=-8&r,A=0;o[(i=v<<2)+s>>2]=1,o[s+(4|i)>>2]=1,o[s+(8|i)>>2]=1,o[s+(12|i)>>2]=1,o[s+(16|i)>>2]=1,o[s+(20|i)>>2]=1,o[s+(24|i)>>2]=1,o[s+(28|i)>>2]=1,v=v+8|0,(0|W)!=(0|(A=A+8|0)););if(A=7&r)for(;i=1,o[s+(v<<2)>>2]=1,v=v+1|0,(0|A)!=(0|(J=J+1|0)););else i=1}if(o[(A=f<<2)+s>>2]=0,o[p>>2]=f,!((0|K)<2))if(J=p+4|0,i)for(d=m(m(6.2831854820251465)/m(0|K)),t=w[A+(s+32|0)>>2],p=1;;){for(o[J>>2]=f,c=(u=m(m(m(0|p)*d)+t))>m(3.1415927410125732)?m(u+m(-6.2831854820251465)):u,b=m(1e9),A=f,i=0;o[(W=i<<2)+s>>2]&&(u=(u=m(Q(m(w[W+(s+32|0)>>2]-c))))>m(3.1415927410125732)?m(m(6.2831854820251465)-u):u)>2]=i,A=i,b=u),(0|r)!=(0|(i=i+1|0)););if(o[s+(A<<2)>>2]=0,J=J+4|0,(0|K)==(0|(p=p+1|0)))break}else{if(A=7&(r=K-1|0),K-2>>>0>=7)for(r&=-8,i=0;o[J+28>>2]=f,o[J+24>>2]=f,o[J+20>>2]=f,o[J+16>>2]=f,o[J+12>>2]=f,o[J+8>>2]=f,o[J+4>>2]=f,o[J>>2]=f,J=J+32|0,(0|r)!=(0|(i=i+8|0)););if(A)for(i=0;o[J>>2]=f,J=J+4|0,(0|A)!=(0|(i=i+1|0)););}for(S=s- -64|0,f=C>>>0>3,A=0;i=o[(n+32|0)+(A<<2)>>2],r=(n+112|0)+G(i,12)|0,c=m(w[r>>2]+w[M>>2]),w[n+64>>2]=c,l=m(w[r+4>>2]+w[M+4>>2]),w[n+68>>2]=l,k=m(w[r+8>>2]+w[M+8>>2]),w[n+72>>2]=k,r=(n+80|0)+(i<<2)|0,f?(b=w[e+48>>2],d=w[e+52>>2],t=w[e+56>>2],o[n+28>>2]=0,w[n+24>>2]=-t,w[n+20>>2]=-d,w[n+16>>2]=-b,u=w[r>>2],o[n+12>>2]=0,w[n+8>>2]=k-m(t*u),w[n+4>>2]=l-m(d*u),w[n>>2]=c-m(b*u),Zn[o[o[a>>2]+16>>2]](a,n+16|0,n,m(-u))):(u=w[e+48>>2],b=w[e+52>>2],d=w[e+56>>2],o[n+28>>2]=0,w[n+24>>2]=-d,w[n+20>>2]=-b,w[n+16>>2]=-u,Zn[o[o[a>>2]+16>>2]](a,n+16|0,n- -64|0,m(-w[r>>2]))),(0|K)!=(0|(A=A+1|0)););}o[e+40>>2]=C}}}}S=n+368|0,S=e+160|0}function K(A,r,f){var e,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=m(0),h=0,B=0,Z=0,E=m(0),W=0,N=m(0),p=m(0),F=0,R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=0,C=0,J=0,x=0,y=0,M=0;S=e=S-144|0;A:if((0|f)<=0)!(r=o[A+12>>2])||!r|!v[A+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+12>>2]=0,a[A+16|0]=1,o[A+4>>2]=0,o[A+8>>2]=0,!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+32>>2]=0,a[A+36|0]=1,o[A+24>>2]=0,o[A+28>>2]=0,!(r=o[A+52>>2])||!r|!v[A+56|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+52>>2]=0,a[A+56|0]=1,o[A+44>>2]=0,o[A+48>>2]=0;else{if(a[e+112|0]=1,o[e+88>>2]=0,o[e+92>>2]=256,o[e+72>>2]=0,o[e+76>>2]=256,o[e+56>>2]=0,o[e+60>>2]=256,o[e+108>>2]=0,o[e+100>>2]=0,o[e+104>>2]=0,o[e+80>>2]=0,o[e+84>>2]=0,o[e+64>>2]=0,o[e+68>>2]=0,o[e+48>>2]=0,o[e+52>>2]=0,n=e+16|0,S=b=S-48|0,R=m(-1.0000000150474662e30),Y=m(1.0000000150474662e30),l=f,(0|f)>0)for(f=r,d=m(1.0000000150474662e30),E=m(1.0000000150474662e30),N=m(-1.0000000150474662e30),p=m(-1.0000000150474662e30);R=R<(V=w[f+8>>2])?V:R,N=N<(g=w[f+4>>2])?g:N,p=p<(X=w[f>>2])?X:p,Y=Y>V?V:Y,d=d>g?g:d,E=E>X?X:E,f=f+16|0,(0|l)!=(0|(s=s+1|0)););else p=m(-1.0000000150474662e30),N=m(-1.0000000150474662e30),E=m(1.0000000150474662e30),d=m(1.0000000150474662e30);if(o[n+12>>2]=0,o[n+28>>2]=0,w[n+24>>2]=m(R+Y)*m(.5),w[n+20>>2]=m(N+d)*m(.5),w[n+16>>2]=m(p+E)*m(.5),i=(E=m(p-E))<(d=m(N-d)),f=(N=m(R-Y))>(i?d:E)?2:i,o[n+112>>2]=f,i=(0|f)==(0|(i=N>(i?E:d)?!i:2))?f+(f>>>0>1?-2:1)|0:i,o[n+104>>2]=i,i=f+i|0,o[n+108>>2]=3-i,N=m(N*m(9788566967472434e-20)),N=(f=(0|f)==((4-i|0)%3|0))?N:m(-N),w[n+8>>2]=N,d=m(d*m(9788566967472434e-20)),d=f?d:m(-d),w[n+4>>2]=d,E=m(E*m(9788566967472434e-20)),E=f?E:m(-E),w[n>>2]=E,a[b+44|0]=1,o[b+36>>2]=0,o[b+40>>2]=0,(0|l)>0){if(o[8488]=o[8488]+1,y=b,M=0|Zn[o[8290]](l<<4,16),o[y+40>>2]=M,a[b+44|0]=1,o[b+36>>2]=l,o[b+32>>2]=l,!((0|l)<=0)){for(N=N!=m(0)?m(m(1)/N):N,p=d!=m(0)?m(m(1)/d):d,E=E!=m(0)?m(m(1)/E):E,k=(f=b+8|0)+(o[n+104>>2]<<2)|0,c=f+(o[n+112>>2]<<2)|0,W=f+(o[n+108>>2]<<2)|0,R=w[n+24>>2],Y=w[n+20>>2],V=w[n+16>>2],u=o[b+40>>2],s=0;d=w[r>>2],g=w[r+4>>2],X=w[r+8>>2],o[b+20>>2]=0,w[b+16>>2]=N*m(X-R),w[b+12>>2]=p*m(g-Y),w[b+8>>2]=E*m(d-V),f=u+(s<<4)|0,d=w[W>>2],i=m(Q(d))>2]=i,d=w[c>>2],i=m(Q(d))>2]=i,d=w[k>>2],o[f+12>>2]=s,i=m(Q(d))>2]=i,r=r+16|0,(0|l)!=(0|(s=s+1|0)););(0|l)<2||Dr(b+28|0,b+8|0,0,l-1|0)}}else o[b+32>>2]=l;if(o[n+44>>2]=l,o[n+40>>2]=0,o[n+36>>2]=o[n+32>>2],!((0|l)<=(0|(r=o[n+84>>2])))){if((0|l)>o[n+88>>2]){if(l?(o[8488]=o[8488]+1,s=0|Zn[o[8290]](l<<2,16),c=o[n+84>>2]):(s=0,c=r),!((0|c)<=0)){if(k=0,f=0,c>>>0>=4)for(u=-4&c,i=0;o[(W=f<<2)+s>>2]=o[W+o[n+92>>2]>>2],o[(h=4|W)+s>>2]=o[h+o[n+92>>2]>>2],o[(h=8|W)+s>>2]=o[h+o[n+92>>2]>>2],o[(W|=12)+s>>2]=o[W+o[n+92>>2]>>2],f=f+4|0,(0|u)!=(0|(i=i+4|0)););if(i=3&c)for(;o[(c=f<<2)+s>>2]=o[c+o[n+92>>2]>>2],f=f+1|0,(0|i)!=(0|(k=k+1|0)););}!(f=o[n+92>>2])||!f|!v[n+96|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[n+92>>2]=s,a[n+96|0]=1,o[n+88>>2]=l}if(i=l+~r|0,k=l-r&3)for(f=0;o[o[n+92>>2]+(r<<2)>>2]=0,r=r+1|0,(0|k)!=(0|(f=f+1|0)););if(!(i>>>0<3))for(;o[(f=r<<2)+o[n+92>>2]>>2]=0,o[4+(f+o[n+92>>2]|0)>>2]=0,o[8+(f+o[n+92>>2]|0)>>2]=0,o[12+(f+o[n+92>>2]|0)>>2]=0,(0|l)!=(0|(r=r+4|0)););}if(o[n+84>>2]=l,(0|l)>0)for(u=0;;){if(!((i=o[n+40>>2])||((r=o[n+36>>2])?(o[n+36>>2]=o[r+8>>2],i=o[r>>2]):(o[8488]=o[8488]+1,r=0|Zn[o[8290]](12,16),f=o[n+44>>2],o[r+8>>2]=0,o[r+4>>2]=f,o[8488]=o[8488]+1,i=0|Zn[o[8290]](G(f,112),16),o[r>>2]=i,o[r+8>>2]=o[n+32>>2],o[n+32>>2]=r),(0|(W=o[r+4>>2]))<=0))){if(h=0,k=0,f=i,W>>>0>=4)for(B=-4&W,s=0,r=i,c=0;f=r+448|0,k=s+4|0,o[r+336>>2]=(0|W)>(0|k)?f:0,o[r+224>>2]=(0|W)>(3|s)?r+336|0:0,o[r+112>>2]=(0|W)>(2|s)?r+224|0:0,o[r>>2]=(0|W)>(1|s)?r+112|0:0,s=k,r=f,(0|B)!=(0|(c=c+4|0)););if(r=3&W)for(;s=f,f=f+112|0,k=k+1|0,o[s>>2]=(0|W)>(0|k)?f:0,(0|r)!=(0|(h=h+1|0)););}if(o[n+40>>2]=o[i>>2],o[i+16>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,o[i>>2]=0,o[i+4>>2]=0,o[i+104>>2]=-1,r=o[b+40>>2]+(u<<4)|0,f=o[r+4>>2],o[i+88>>2]=o[r>>2],o[i+92>>2]=f,f=o[r+12>>2],o[i+96>>2]=o[r+8>>2],o[i+100>>2]=f,o[o[n+92>>2]+(u<<2)>>2]=i,(0|l)==(0|(u=u+1|0)))break}if(!(r=o[b+40>>2])||!r|!v[b+44|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[b+40>>2]=0,a[b+44|0]=1,o[b+32>>2]=0,o[b+36>>2]=0,o[n+116>>2]=0,o[n+120>>2]=0,o[n+60>>2]=G(l,6),o[n+56>>2]=0,o[n+100>>2]=-3,o[n+52>>2]=o[n+48>>2],o[b+16>>2]=0,o[b+20>>2]=0,o[b+8>>2]=0,o[b+12>>2]=0,_(n,0,l,b+8|0),o[n+124>>2]=o[b+8>>2],!(r=o[b+40>>2])||!r|!v[b+44|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),S=b+48|0,(o[A+4>>2]&o[A+8>>2])<0&&(!(r=o[A+12>>2])||!r|!v[A+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+16|0]=1,o[A+8>>2]=0,o[A+12>>2]=0),o[A+4>>2]=0,!((0|(r=o[A+24>>2]))>=0)){if(o[A+28>>2]<0&&(!(f=o[A+32>>2])||!f|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),a[A+36|0]=1,o[A+28>>2]=0,o[A+32>>2]=0),f=r,k=0-r&3)for(;i=o[A+32>>2]+G(f,12)|0,o[i>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,f=f+1|0,(0|k)!=(0|(t=t+1|0)););if(!(r>>>0>4294967292))for(;i=(r=G(f,12))+o[A+32>>2]|0,o[i>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,i=r+o[A+32>>2]|0,o[i+20>>2]=0,o[i+12>>2]=0,o[i+16>>2]=0,i=r+o[A+32>>2]|0,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,r=r+o[A+32>>2]|0,o[r+44>>2]=0,o[r+36>>2]=0,o[r+40>>2]=0,f=f+4|0;);}if(o[A+24>>2]=0,(0|(f=o[A+44>>2]))<0&&(r=o[A+52>>2],o[A+48>>2]<0&&(!r||!r|!v[A+56|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+56|0]=1,o[A+48>>2]=0,o[A+52>>2]=0,r=0),Af((i=r)+(r=f<<2)|0,0,0-r|0)),o[A+44>>2]=0,r=o[e+140>>2],!(o[r+104>>2]>=0)){for(o[r+104>>2]=0,o[8488]=o[8488]+1,l=0|Zn[o[8290]](4,16),o[l>>2]=r,f=0,k=1,n=1;;){W=f,S=i=S-16|0;r:{f:{e:{i:{if(h=o[(f<<2)+l>>2],o[(r=h)+100>>2]>=0)w[i+(o[e+124>>2]<<2)>>2]=o[r+88>>2];else if(d=yf(r+24|0),E=yf(f=r+72|0),t=o[r+100>>2],w[i+(o[e+124>>2]<<2)>>2]=d/E,(0|t)<0)break i;w[i+(o[e+128>>2]<<2)>>2]=o[r+92>>2];break e}if(d=yf(r+40|0),E=yf(f),f=o[r+100>>2],w[i+(o[e+128>>2]<<2)>>2]=d/E,(0|f)<0)break f}d=m(o[r+96>>2]);break r}d=m(yf(r+56|0)/yf(r+72|0))}if(w[i+(o[e+120>>2]<<2)>>2]=d,d=w[e+36>>2],E=w[e+40>>2],N=w[e+32>>2],p=w[e+16>>2],R=w[e+20>>2],Y=w[e+24>>2],V=w[i>>2],g=w[i+4>>2],X=w[i+8>>2],o[e+12>>2]=0,w[e+8>>2]=E+m(X*Y),w[e+4>>2]=d+m(g*R),w[e>>2]=N+m(V*p),S=i+16|0,(0|(t=o[A+4>>2]))==o[A+8>>2]&&!((0|(s=t?t<<1:1))<=(0|t))){if(s?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](s<<4,16),t=o[A+4>>2]):i=0,!((0|t)<=0)){if(f=0,1!=(0|t))for(B=-2&t,r=0;u=(b=f<<4)+i|0,c=b+o[A+12>>2]|0,Z=o[c+4>>2],o[u>>2]=o[c>>2],o[u+4>>2]=Z,Z=o[c+12>>2],o[u+8>>2]=o[c+8>>2],o[u+12>>2]=Z,b=(c=16|b)+i|0,c=c+o[A+12>>2]|0,u=o[c+4>>2],o[b>>2]=o[c>>2],o[b+4>>2]=u,u=o[c+12>>2],o[b+8>>2]=o[c+8>>2],o[b+12>>2]=u,f=f+2|0,(0|B)!=(0|(r=r+2|0)););1&t&&(r=(f<<=4)+i|0,f=f+o[A+12>>2]|0,t=o[f+4>>2],o[r>>2]=o[f>>2],o[r+4>>2]=t,t=o[f+12>>2],o[r+8>>2]=o[f+8>>2],o[r+12>>2]=t)}!(r=o[A+12>>2])||!r|!v[A+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+12>>2]=i,a[A+16|0]=1,o[A+8>>2]=s,t=o[A+4>>2]}if(f=o[e+4>>2],r=o[A+12>>2]+(t<<4)|0,o[r>>2]=o[e>>2],o[r+4>>2]=f,f=o[e+12>>2],o[r+8>>2]=o[e+8>>2],o[r+12>>2]=f,o[A+4>>2]=o[A+4>>2]+1,r=-1,s=-1,f=J=o[h+8>>2]){for(;;){if(o[f+20>>2]<0){if(t=b=o[A+24>>2],(0|b)==o[A+28>>2]&&!((0|(h=t?b<<1:1))<=(0|t))){if(h?(o[8488]=o[8488]+1,u=0|Zn[o[8290]](G(h,12),16),i=o[A+24>>2]):(u=0,i=b),!((0|i)<=0)){if(t=0,1!=(0|i))for(D=-2&i,c=0;B=(Z=G(t,12))+o[A+32>>2]|0,F=o[B+4>>2],o[(Z=u+Z|0)>>2]=o[B>>2],o[Z+4>>2]=F,o[Z+8>>2]=o[B+8>>2],B=(Z=G(1|t,12))+o[A+32>>2]|0,F=o[B+4>>2],o[(Z=u+Z|0)>>2]=o[B>>2],o[Z+4>>2]=F,o[Z+8>>2]=o[B+8>>2],t=t+2|0,(0|D)!=(0|(c=c+2|0)););1&i&&(i=(t=G(t,12))+o[A+32>>2]|0,c=o[i+4>>2],o[(t=t+u|0)>>2]=o[i>>2],o[t+4>>2]=c,o[t+8>>2]=o[i+8>>2])}!(i=o[A+32>>2])||!i|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),o[A+32>>2]=u,a[A+36|0]=1,o[A+28>>2]=h,t=o[A+24>>2]}if(i=o[A+32>>2]+G(t,12)|0,o[i>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,c=o[A+24>>2]+1|0,o[A+24>>2]=c,o[A+28>>2]==(0|c)&&!((0|(i=c?c<<1:1))<=(0|c))){if(i?(o[8488]=o[8488]+1,u=0|Zn[o[8290]](G(i,12),16),c=o[A+24>>2]):u=0,!((0|c)<=0)){if(Z=1&c,t=0,1!=(0|c))for(D=-2&c,c=0;h=(B=G(t,12))+o[A+32>>2]|0,F=o[h+4>>2],o[(B=u+B|0)>>2]=o[h>>2],o[B+4>>2]=F,o[B+8>>2]=o[h+8>>2],h=(B=G(1|t,12))+o[A+32>>2]|0,F=o[h+4>>2],o[(B=u+B|0)>>2]=o[h>>2],o[B+4>>2]=F,o[B+8>>2]=o[h+8>>2],t=t+2|0,(0|D)!=(0|(c=c+2|0)););Z&&(t=(c=G(t,12))+o[A+32>>2]|0,h=o[t+4>>2],o[(c=c+u|0)>>2]=o[t>>2],o[c+4>>2]=h,o[c+8>>2]=o[t+8>>2])}!(t=o[A+32>>2])||!t|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](t)),o[A+32>>2]=u,a[A+36|0]=1,o[A+28>>2]=i,c=o[A+24>>2]}if(i=o[A+32>>2]+G(c,12)|0,o[i>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[A+24>>2]=o[A+24>>2]+1,h=o[A+32>>2],o[f+20>>2]=b,F=b+1|0,o[o[f+8>>2]+20>>2]=F,B=G(b,12)+h|0,o[B+16>>2]=-1,o[B+4>>2]=1,Z=o[f+12>>2],(0|(i=o[Z+104>>2]))>=0)t=k,k=i;else{o[Z+104>>2]=k;r:if((0|n)!=(0|k)||(0|(c=n?n<<1:1))<=(0|n))i=l,c=n;else{c?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](c<<2,16)):i=0;f:if((0|n)>0){if(D=0,t=0,n>>>0>=4)for(x=-4&n,b=0;o[(u=t<<2)+i>>2]=o[u+l>>2],o[(C=4|u)+i>>2]=o[l+C>>2],o[(C=8|u)+i>>2]=o[l+C>>2],o[(u|=12)+i>>2]=o[u+l>>2],t=t+4|0,(0|x)!=(0|(b=b+4|0)););if(!(n&=3))break f;for(;o[(b=t<<2)+i>>2]=o[b+l>>2],t=t+1|0,(0|n)!=(0|(D=D+1|0)););}else if(!l)break r;l&&(o[8489]=o[8489]+1,Zn[o[8291]](l))}o[(k<<2)+i>>2]=Z,t=k+1|0,l=i,n=c}o[B+8>>2]=k,o[8+(G(F,12)+h|0)>>2]=W,k=t}if(i=t=o[f+20>>2],(0|r)>=0&&(o[o[A+32>>2]+G(t,12)>>2]=r-t,i=s),r=t,s=i,(0|J)==(0|(f=o[f>>2])))break}o[o[A+32>>2]+G(s,12)>>2]=r-s}if(!((0|k)>(0|(f=W+1|0))))break}for(b=0;;){if(t=h=o[o[(b<<2)+l>>2]+8>>2])for(;;){if((0|(f=o[t+20>>2]))>=0){if((0|(u=o[A+44>>2]))==o[A+48>>2]&&!((0|(n=u?u<<1:1))<=(0|u))){n?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](n<<2,16),u=o[A+44>>2]):i=0,r=o[A+52>>2];r:{f:if((0|u)>0){if(c=0,f=0,u>>>0>=4)for(B=-4&u,s=0;o[(k=f<<2)+i>>2]=o[r+k>>2],o[(Z=4|k)+i>>2]=o[r+Z>>2],o[(Z=8|k)+i>>2]=o[r+Z>>2],o[(k|=12)+i>>2]=o[r+k>>2],f=f+4|0,(0|B)!=(0|(s=s+4|0)););if(!(k=3&u))break f;for(;o[(s=f<<2)+i>>2]=o[r+s>>2],f=f+1|0,(0|k)!=(0|(c=c+1|0)););}else if(!r)break r;r&&v[A+56|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),u=o[A+44>>2]}o[A+52>>2]=i,a[A+56|0]=1,o[A+48>>2]=n,f=o[t+20>>2]}for(o[o[A+52>>2]+(u<<2)>>2]=f,o[A+44>>2]=o[A+44>>2]+1,f=t;o[f+20>>2]=-1,(0|t)!=(0|(f=o[o[f+8>>2]+4>>2])););}if((0|h)==(0|(t=o[t>>2])))break}if(r=(0|b)==(0|W),b=b+1|0,r)break}l&&l&&(o[8489]=o[8489]+1,Zn[o[8291]](l))}for(!(A=o[e+108>>2])||!A|!v[e+112|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[e+108>>2]=0,a[e+112|0]=1,o[e+100>>2]=0,o[e+104>>2]=0;A=o[e+80>>2];)o[e+80>>2]=o[A+8>>2],(r=o[A>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A));for(;A=o[e+64>>2];)o[e+64>>2]=o[A+8>>2],(r=o[A>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A));for(;;){if(!(A=o[e+48>>2]))break A;o[e+48>>2]=o[A+8>>2],(r=o[A>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))}}S=e+144|0}function q(A,r,f){var e,i=0,n=0,c=m(0),b=0,u=0,l=0,s=0,k=m(0),d=0,B=m(0),Z=m(0),G=0,Q=m(0),E=m(0),W=m(0),N=0,p=m(0),F=0,R=m(0),Y=m(0),V=0,g=0,X=0,D=m(0),C=0,J=0,x=m(0),y=0,M=0,H=0,I=m(0),T=m(0);if(S=e=S-32|0,X=o[A+56>>2],1!=(f-r|0)){G=f,b=f-(n=r)|0;A:{r:{if((0|n)>=(0|f))x=m(0|b);else{if(v[A+60|0])for(p=w[A+12>>2],Z=w[A+8>>2],Q=w[A+44>>2],k=w[A+40>>2],i=o[A+116>>2],B=w[A+4>>2],c=w[A+36>>2],f=r;Y=m(Y+m(m(m(m(m(h[6+(u=i+(f<<4)|0)>>1])/c)+B)+m(m(m(h[u>>1])/c)+B))*m(.5))),E=m(E+m(m(m(m(m(h[u+10>>1])/Q)+p)+m(m(m(h[u+4>>1])/Q)+p))*m(.5))),W=m(W+m(m(m(m(m(h[u+8>>1])/k)+Z)+m(m(m(h[u+2>>1])/k)+Z))*m(.5))),(0|G)!=(0|(f=f+1|0)););else for(i=o[A+76>>2],f=r;Y=m(Y+m(m(w[16+(u=i+(f<<6)|0)>>2]+w[u>>2])*m(.5))),E=m(E+m(m(w[u+24>>2]+w[u+8>>2])*m(.5))),W=m(W+m(m(w[u+20>>2]+w[u+4>>2])*m(.5))),(0|G)!=(0|(f=f+1|0)););if(x=m(0|b),(0|n)<(0|G))break r}E=m(0),W=m(0);break A}if(c=m(m(1)/x),I=m(c*E),T=m(c*W),Y=m(c*Y),W=m(0),v[A+60|0])for(D=w[A+12>>2],p=w[A+8>>2],Z=w[A+44>>2],Q=w[A+40>>2],f=o[A+116>>2],k=w[A+4>>2],B=w[A+36>>2],E=m(0);c=m(m(m(m(m(m(h[6+(i=f+(n<<4)|0)>>1])/B)+k)+m(m(m(h[i>>1])/B)+k))*m(.5))-Y),R=m(R+m(c*c)),c=m(m(m(m(m(m(h[i+10>>1])/Z)+D)+m(m(m(h[i+4>>1])/Z)+D))*m(.5))-I),W=m(W+m(c*c)),c=m(m(m(m(m(m(h[i+8>>1])/Q)+p)+m(m(m(h[i+2>>1])/Q)+p))*m(.5))-T),E=m(E+m(c*c)),(0|G)!=(0|(n=n+1|0)););else for(f=o[A+76>>2],E=m(0);c=m(m(m(w[16+(i=f+(n<<6)|0)>>2]+w[i>>2])*m(.5))-Y),R=m(R+m(c*c)),c=m(m(m(w[i+24>>2]+w[i+8>>2])*m(.5))-I),W=m(W+m(c*c)),c=m(m(m(w[i+20>>2]+w[i+4>>2])*m(.5))-T),E=m(E+m(c*c)),(0|G)!=(0|(n=n+1|0)););}if(k=m(m(1)/m(x+m(-1))),f=(B=m(k*R))<(c=m(k*E)),b=m(k*W)>(f?c:B)?2:f,E=m(0),W=m(0),R=m(0),o[28+(l=S-96|0)>>2]=0,F=G-r|0,!(i=(0|r)>=(0|G)))if(v[A+60|0])for(p=w[A+12>>2],Z=w[A+8>>2],Q=w[A+44>>2],k=w[A+40>>2],n=o[A+116>>2],B=w[A+4>>2],c=w[A+36>>2],f=r;R=m(m(m(m(m(m(h[6+(u=n+(f<<4)|0)>>1])/c)+B)+m(m(m(h[u>>1])/c)+B))*m(.5))+R),E=m(m(m(m(m(m(h[u+10>>1])/Q)+p)+m(m(m(h[u+4>>1])/Q)+p))*m(.5))+E),W=m(m(m(m(m(m(h[u+8>>1])/k)+Z)+m(m(m(h[u+2>>1])/k)+Z))*m(.5))+W),(0|G)!=(0|(f=f+1|0)););else for(n=o[A+76>>2],f=r;R=m(m(m(w[16+(u=n+(f<<6)|0)>>2]+w[u>>2])*m(.5))+R),E=m(m(m(w[u+24>>2]+w[u+8>>2])*m(.5))+E),W=m(m(m(w[u+20>>2]+w[u+4>>2])*m(.5))+W),(0|G)!=(0|(f=f+1|0)););if(c=m(m(1)/m(0|F)),w[l+24>>2]=c*E,w[l+20>>2]=c*W,w[l+16>>2]=c*R,n=r,!i)for(D=w[(f=b<<2)+(l+16|0)>>2],d=f+l|0,f=r;(i=v[A+60|0])?(b=o[A+116>>2]+(f<<4)|0,p=w[A+44>>2],Z=w[A+12>>2],E=m(m(m(h[b+4>>1])/p)+Z),Q=w[A+40>>2],k=w[A+8>>2],W=m(m(m(h[b+2>>1])/Q)+k),B=w[A+36>>2],c=w[A+4>>2],R=m(m(m(h[b>>1])/B)+c),Y=m(m(m(h[b+10>>1])/p)+Z),x=m(m(m(h[b+8>>1])/Q)+k),c=m(m(m(h[b+6>>1])/B)+c)):(b=o[A+76>>2]+(f<<6)|0,E=w[b+8>>2],W=w[b+4>>2],R=w[b>>2],Y=w[b+24>>2],x=w[b+20>>2],c=w[b+16>>2]),o[l+12>>2]=0,w[l+8>>2]=m(Y+E)*m(.5),w[l+4>>2]=m(x+W)*m(.5),w[l>>2]=m(c+R)*m(.5),D>2]&&(i?(b=o[A+116>>2],i=o[12+(u=N=b+(f<<4)|0)>>2],o[l+40>>2]=o[u+8>>2],o[l+44>>2]=i,i=o[u+4>>2],o[l+32>>2]=o[u>>2],o[l+36>>2]=i,i=o[4+(u=(u=b)+(b=n<<4)|0)>>2],o[N>>2]=o[u>>2],o[N+4>>2]=i,i=o[u+12>>2],o[N+8>>2]=o[u+8>>2],o[N+12>>2]=i,i=o[l+36>>2],b=b+o[A+116>>2]|0,o[b>>2]=o[l+32>>2],o[b+4>>2]=i,i=o[l+44>>2],o[b+8>>2]=o[l+40>>2],o[b+12>>2]=i):(u=o[A+76>>2],i=o[60+(s=u+(f<<6)|0)>>2],o[l+88>>2]=o[s+56>>2],o[l+92>>2]=i,i=o[s+52>>2],o[l+80>>2]=o[s+48>>2],o[l+84>>2]=i,i=o[s+44>>2],o[l+72>>2]=o[s+40>>2],o[l+76>>2]=i,i=o[s+36>>2],o[(b=N=l- -64|0)>>2]=o[s+32>>2],o[b+4>>2]=i,i=o[s+28>>2],o[l+56>>2]=o[s+24>>2],o[l+60>>2]=i,i=o[s+20>>2],o[l+48>>2]=o[s+16>>2],o[l+52>>2]=i,i=o[s+12>>2],o[l+40>>2]=o[s+8>>2],o[l+44>>2]=i,i=o[s+4>>2],o[l+32>>2]=o[s>>2],o[l+36>>2]=i,i=o[4+(u=(b=n<<6)+u|0)>>2],o[s>>2]=o[u>>2],o[s+4>>2]=i,i=o[u+12>>2],o[s+8>>2]=o[u+8>>2],o[s+12>>2]=i,i=o[u+20>>2],o[s+16>>2]=o[u+16>>2],o[s+20>>2]=i,i=o[u+28>>2],o[s+24>>2]=o[u+24>>2],o[s+28>>2]=i,i=o[u+36>>2],o[s+32>>2]=o[u+32>>2],o[s+36>>2]=i,i=o[u+44>>2],o[s+40>>2]=o[u+40>>2],o[s+44>>2]=i,i=o[u+52>>2],o[s+48>>2]=o[u+48>>2],o[s+52>>2]=i,i=o[u+60>>2],o[s+56>>2]=o[u+56>>2],o[s+60>>2]=i,i=o[l+36>>2],b=b+o[A+76>>2]|0,o[b>>2]=o[l+32>>2],o[b+4>>2]=i,i=o[l+44>>2],o[b+8>>2]=o[l+40>>2],o[b+12>>2]=i,i=o[l+52>>2],o[b+16>>2]=o[l+48>>2],o[b+20>>2]=i,i=o[l+60>>2],o[b+24>>2]=o[l+56>>2],o[b+28>>2]=i,i=o[N+4>>2],o[b+32>>2]=o[N>>2],o[b+36>>2]=i,i=o[l+76>>2],o[b+40>>2]=o[l+72>>2],o[b+44>>2]=i,i=o[l+84>>2],o[b+48>>2]=o[l+80>>2],o[b+52>>2]=i,i=o[l+92>>2],o[b+56>>2]=o[l+88>>2],o[b+60>>2]=i),n=n+1|0),(0|G)!=(0|(f=f+1|0)););if(b=f=(F>>1)+r|0,s=(r+(f=(0|F)/3|0)|0)>=(0|n)||(G+~f|0)<=(0|n)?b:n,y=o[A+56>>2],v[A+60|0]?(p=w[A+40>>2],Z=w[A+8>>2],Q=w[A+24>>2],k=w[A+44>>2],B=w[A+12>>2],c=w[A+28>>2],f=o[A+136>>2]+(y<<4)|0,n=(D=m(m(w[A+20>>2]-w[A+4>>2])*w[A+36>>2]))=m(0)?~~D>>>0:0,t[f>>1]=65534&n,n=(c=m(m(c-B)*k))=m(0)?~~c>>>0:0,t[f+4>>1]=65534&n,n=(c=m(m(Q-Z)*p))=m(0)?~~c>>>0:0,t[f+2>>1]=65534&n):(f=o[A+24>>2],n=o[A+96>>2]+(y<<6)|0,o[n>>2]=o[A+20>>2],o[n+4>>2]=f,f=o[A+32>>2],o[n+8>>2]=o[A+28>>2],o[n+12>>2]=f),f=o[A+56>>2],v[A+60|0]?(k=w[A+40>>2],Z=w[A+8>>2],B=w[A+44>>2],Q=w[A+12>>2],f=o[A+136>>2]+(f<<4)|0,c=w[A+4>>2],n=(c=m(m(m(c-c)*w[A+36>>2])+m(1)))=m(0)?~~c>>>0:0,t[f+6>>1]=1|n,n=(c=m(m(m(Q-Q)*B)+m(1)))=m(0)?~~c>>>0:0,t[f+10>>1]=1|n,n=(c=m(m(m(Z-Z)*k)+m(1)))=m(0)?~~c>>>0:0,t[f+8>>1]=1|n):(n=o[A+96>>2]+(f<<6)|0,f=o[A+8>>2],o[n+16>>2]=o[A+4>>2],o[n+20>>2]=f,f=o[A+16>>2],o[n+24>>2]=o[A+12>>2],o[n+28>>2]=f),(0|r)<(0|G))for(f=r;;){v[A+60|0]?(u=o[A+116>>2]+(f<<4)|0,b=h[u+4>>1],i=h[u+2>>1],n=h[u>>1],p=w[A+44>>2],Z=w[A+40>>2],Q=w[A+36>>2],o[e+28>>2]=0,k=w[A+4>>2],w[e+16>>2]=m(m(n>>>0)/Q)+k,B=w[A+8>>2],w[e+20>>2]=m(m(i>>>0)/Z)+B,c=w[A+12>>2],w[e+24>>2]=m(m(b>>>0)/p)+c,b=h[u+6>>1],i=h[u+8>>1],n=h[u+10>>1],o[e+12>>2]=0,w[e+8>>2]=c+m(m(n>>>0)/p),w[e+4>>2]=B+m(m(i>>>0)/Z),w[e>>2]=k+m(m(b>>>0)/Q)):(i=o[A+76>>2]+(f<<6)|0,n=o[i+12>>2],o[e+24>>2]=o[i+8>>2],o[e+28>>2]=n,n=o[i+4>>2],o[e+16>>2]=o[i>>2],o[e+20>>2]=n,n=o[i+28>>2],o[e+8>>2]=o[i+24>>2],o[e+12>>2]=n,n=o[i+20>>2],o[e>>2]=o[i+16>>2],o[e+4>>2]=n),V=o[A+56>>2];A:if(v[A+60|0]){if(Q=w[A+12>>2],k=w[A+44>>2],d=(c=m(m(w[e+24>>2]-Q)*k))=m(0)?~~c>>>0:0,B=w[A+8>>2],c=w[A+40>>2],u=(Z=m(m(w[e+20>>2]-B)*c))=m(0)?~~Z>>>0:0,b=(k=m(m(k*m(w[e+8>>2]-Q))+m(1)))=m(0)?~~k>>>0:0,i=(c=m(m(c*m(w[e+4>>2]-B))+m(1)))=m(0)?~~c>>>0:0,B=w[A+4>>2],c=w[A+36>>2],F=65534&(n=(k=m(m(w[e+16>>2]-B)*c))=m(0)?~~k>>>0:0),l=o[A+136>>2],N=F>>>0>=h[(g=l+(V<<4)|0)>>1],n=(c=m(m(c*m(w[e>>2]-B))+m(1)))=m(0)?~~c>>>0:0,N||(t[g>>1]=F),(n|=1)>>>0>h[6+(N=l+(V<<4)|0)>>1]&&(t[N+6>>1]=n),(n=65534&u)>>>0>1]&&(t[g+2>>1]=n),(n=1|i)>>>0>h[8+(u=l+(V<<4)|0)>>1]&&(t[u+8>>1]=n),(n=65534&d)>>>0>1]&&(t[g+4>>1]=n),(n=1|b)>>>0<=h[10+(i=l+(V<<4)|0)>>1])break A;t[i+10>>1]=n}else c=w[e+16>>2],n=o[A+96>>2],c>2]&&(w[i>>2]=c),(c=w[e+20>>2])>2]&&(w[i+4>>2]=c),(c=w[e+24>>2])>2]&&(w[i+8>>2]=c),(c=w[e+28>>2])>2]&&(w[i+12>>2]=c),(c=w[e>>2])>w[16+(n=n+(V<<6)|0)>>2]&&(w[n+16>>2]=c),(c=w[e+4>>2])>w[n+20>>2]&&(w[n+20>>2]=c),(c=w[e+8>>2])>w[n+24>>2]&&(w[n+24>>2]=c),(c=w[e+12>>2])>w[n+28>>2]&&(w[n+28>>2]=c);if((0|G)==(0|(f=f+1|0)))break}if(M=o[A+56>>2]+1|0,o[A+56>>2]=M,q(A,r,s),V=o[A+56>>2],q(A,s,G),!(!(f=v[A+60|0])|(0|(g=o[A+56>>2]-X|0))<129)){if(G=0,X=o[A+136>>2],N=(0|(r=o[12+(l=X+(V<<4)|0)>>2]))>=0?1:0-r|0,(u=(0|(r=o[12+(s=X+(M<<4)|0)>>2]))>=0?1:0-r|0)>>>0<=128){if((0|(f=n=o[A+152>>2]))==o[A+156>>2]&&!((0|(F=f?n<<1:1))<=(0|f))){if(F?(o[8488]=o[8488]+1,H=0|Zn[o[8290]](F<<5,16),r=o[A+152>>2]):r=n,!((0|r)<=0)){if(1!=(0|r))for(b=-2&r;i=(d=C<<5)+H|0,J=o[A+160>>2]+d|0,f=o[J+4>>2],o[i>>2]=o[J>>2],o[i+4>>2]=f,f=o[J+28>>2],o[i+24>>2]=o[J+24>>2],o[i+28>>2]=f,f=o[J+20>>2],o[i+16>>2]=o[J+16>>2],o[i+20>>2]=f,f=o[J+12>>2],o[i+8>>2]=o[J+8>>2],o[i+12>>2]=f,i=(f=32|d)+H|0,d=f+o[A+160>>2]|0,f=o[d+4>>2],o[i>>2]=o[d>>2],o[i+4>>2]=f,f=o[d+12>>2],o[i+8>>2]=o[d+8>>2],o[i+12>>2]=f,f=o[d+20>>2],o[i+16>>2]=o[d+16>>2],o[i+20>>2]=f,f=o[d+28>>2],o[i+24>>2]=o[d+24>>2],o[i+28>>2]=f,C=C+2|0,(0|b)!=(0|(G=G+2|0)););1&r&&(f=(r=C<<5)+H|0,i=r+o[A+160>>2]|0,r=o[i+4>>2],o[f>>2]=o[i>>2],o[f+4>>2]=r,r=o[i+28>>2],o[f+24>>2]=o[i+24>>2],o[f+28>>2]=r,r=o[i+20>>2],o[f+16>>2]=o[i+16>>2],o[f+20>>2]=r,r=o[i+12>>2],o[f+8>>2]=o[i+8>>2],o[f+12>>2]=r)}!(r=o[A+160>>2])||!r|!v[A+164|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+160>>2]=H,a[A+164|0]=1,o[A+156>>2]=F,f=o[A+152>>2]}o[A+152>>2]=f+1,f=o[A+160>>2]+(n<<5)|0,t[f>>1]=h[s>>1],t[f+2>>1]=h[s+2>>1],t[f+4>>1]=h[s+4>>1],r=X+(M<<4)|0,t[f+6>>1]=h[r+6>>1],t[f+8>>1]=h[r+8>>1],r=h[r+10>>1],o[f+16>>2]=u,o[f+12>>2]=M,t[f+10>>1]=r}if((0|N)<=128){if((0|(f=n=o[A+152>>2]))==o[A+156>>2]&&!((0|(F=f?n<<1:1))<=(0|f))){if(F?(o[8488]=o[8488]+1,r=0|Zn[o[8290]](F<<5,16),f=o[A+152>>2]):(r=0,f=n),!((0|f)<=0)){if(C=0,1!=(0|f))for(u=-2&f,G=0;b=(d=C<<5)+r|0,s=d+o[A+160>>2]|0,i=o[s+4>>2],o[b>>2]=o[s>>2],o[b+4>>2]=i,i=o[s+28>>2],o[b+24>>2]=o[s+24>>2],o[b+28>>2]=i,i=o[s+20>>2],o[b+16>>2]=o[s+16>>2],o[b+20>>2]=i,i=o[s+12>>2],o[b+8>>2]=o[s+8>>2],o[b+12>>2]=i,b=(i=32|d)+r|0,d=i+o[A+160>>2]|0,i=o[d+4>>2],o[b>>2]=o[d>>2],o[b+4>>2]=i,i=o[d+12>>2],o[b+8>>2]=o[d+8>>2],o[b+12>>2]=i,i=o[d+20>>2],o[b+16>>2]=o[d+16>>2],o[b+20>>2]=i,i=o[d+28>>2],o[b+24>>2]=o[d+24>>2],o[b+28>>2]=i,C=C+2|0,(0|u)!=(0|(G=G+2|0)););1&f&&(i=(f=C<<5)+r|0,b=f+o[A+160>>2]|0,f=o[b+4>>2],o[i>>2]=o[b>>2],o[i+4>>2]=f,f=o[b+28>>2],o[i+24>>2]=o[b+24>>2],o[i+28>>2]=f,f=o[b+20>>2],o[i+16>>2]=o[b+16>>2],o[i+20>>2]=f,f=o[b+12>>2],o[i+8>>2]=o[b+8>>2],o[i+12>>2]=f)}!(f=o[A+160>>2])||!f|!v[A+164|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+160>>2]=r,a[A+164|0]=1,o[A+156>>2]=F,f=o[A+152>>2]}o[A+152>>2]=f+1,f=o[A+160>>2]+(n<<5)|0,t[f>>1]=h[l>>1],t[f+2>>1]=h[l+2>>1],t[f+4>>1]=h[l+4>>1],r=X+(V<<4)|0,t[f+6>>1]=h[r+6>>1],t[f+8>>1]=h[r+8>>1],r=h[r+10>>1],o[f+16>>2]=N,o[f+12>>2]=V,t[f+10>>1]=r}o[A+168>>2]=o[A+152>>2],f=v[A+60|0]}255&f?o[12+(o[A+136>>2]+(y<<4)|0)>>2]=0-g:o[32+(o[A+96>>2]+(y<<6)|0)>>2]=g}else v[A+60|0]?(r=o[A+116>>2]+(r<<4)|0,n=o[r+4>>2],f=o[A+136>>2]+(X<<4)|0,o[f>>2]=o[r>>2],o[f+4>>2]=n):(r=o[A+76>>2]+(r<<6)|0,n=o[r+4>>2],f=o[A+96>>2]+(X<<6)|0,o[f>>2]=o[r>>2],o[f+4>>2]=n,n=o[r+60>>2],o[f+56>>2]=o[r+56>>2],o[f+60>>2]=n,n=o[r+52>>2],o[f+48>>2]=o[r+48>>2],o[f+52>>2]=n,n=o[r+44>>2],o[f+40>>2]=o[r+40>>2],o[f+44>>2]=n,n=o[r+36>>2],o[f+32>>2]=o[r+32>>2],o[f+36>>2]=n,n=o[r+28>>2],o[f+24>>2]=o[r+24>>2],o[f+28>>2]=n,n=o[r+20>>2],o[f+16>>2]=o[r+16>>2],o[f+20>>2]=n),n=o[r+12>>2],o[f+8>>2]=o[r+8>>2],o[f+12>>2]=n,o[A+56>>2]=o[A+56>>2]+1;S=e+32|0}function _(A,r,f,e){var i,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0,v=0,h=0,B=0,w=0,Z=0,m=0,Q=0,E=0,W=0,N=0,p=0,F=0,R=0,Y=0,V=0,g=0,X=0,D=0,C=0,J=0,x=0;S=i=S-16|0;A:{r:{f:{e:{i:switch(0|(a=f-r|0)){case 1:break f;case 2:break e;case 0:break i;default:break r}o[e>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0;break A}r=(f=o[o[A+92>>2]+(r<<2)>>2])+112|0;e:{if((l=(0|(t=o[f+88>>2]))!=(0|(u=o[f+200>>2])))|(0|(a=o[f+204>>2]))!=(0|(n=o[f+92>>2])))o[f+4>>2]=r,o[f>>2]=r,o[f+116>>2]=f,o[f+112>>2]=f,u=(b=(Z=(0|n)<(0|a))&(0|t)==(0|u))|(t=(0|t)<(0|u)),o[e+4>>2]=u?r:f,o[e>>2]=u?f:r,n=(a=Z|t&l&(0|n)==(0|a))?r:f,a=a?f:r;else{if(o[f+96>>2]==o[f+208>>2])break e;n=o[f+96>>2]>o[f+208>>2],o[(a=(n?112:0)+f|0)>>2]=a,o[(a=n?r:f)+4>>2]=a,o[e+4>>2]=a,o[e>>2]=a,r=n?f:r,f=n=a}o[e+12>>2]=n,o[e+8>>2]=a,A=ir(A,f,r),o[A+4>>2]=A,o[A>>2]=A,o[f+8>>2]=A,A=o[A+8>>2],o[A+4>>2]=A,o[A>>2]=A,o[r+8>>2]=A;break A}o[f+8>>2]=0,o[f+4>>2]=f,o[f>>2]=f,o[e+12>>2]=f,o[e+8>>2]=f,o[e+4>>2]=f,o[e>>2]=f;break A}A=o[o[A+92>>2]+(r<<2)>>2],o[A+8>>2]=0,o[A+4>>2]=A,o[A>>2]=A,o[e+12>>2]=A,o[e+8>>2]=A,o[e+4>>2]=A,o[e>>2]=A;break A}a=n=((0|a)/2|0)+r|0;r:if(!((0|n)>=(0|f))){for(u=o[A+92>>2],a=o[(u+(n<<2)|0)-4>>2],l=o[a+88>>2],Z=o[a+96>>2],b=o[a+92>>2],a=n;;){if(t=o[u+(a<<2)>>2],(0|l)!=o[t+88>>2]|(0|b)!=o[t+92>>2]|(0|Z)!=o[t+96>>2])break r;if(!((0|(a=a+1|0))<(0|f)))break}a=f}_(A,r,n,e),o[i+8>>2]=0,o[i+12>>2]=0,o[i>>2]=0,o[i+4>>2]=0,_(A,a,f,i),v=A,f=0,S=c=S-128|0;r:if(o[i+4>>2])if(o[e+4>>2]){o[v+100>>2]=o[v+100>>2]-1,o[c+124>>2]=0,o[c+120>>2]=0,l=0,b=e,A=o[e+12>>2],u=o[i+8>>2];f:{e:{if(!(o[A+88>>2]!=o[u+88>>2]|o[A+92>>2]!=o[u+92>>2])){if((0|(e=o[u+4>>2]))==(0|u)){if(o[c+124>>2]=A,A=0,!(r=o[u+8>>2]))break e;o[c+120>>2]=o[r+12>>2],A=0;break f}A=o[u>>2],o[e>>2]=A,o[A+4>>2]=e,o[i>>2]==(0|u)&&(t=i,r=A,(0|(a=o[A+88>>2]))<(0|(n=o[e+88>>2]))||(0|n)==(0|a)&&(r=A,o[A+92>>2]>2])||(r=e),o[t>>2]=r),o[i+4>>2]==(0|u)&&(r=o[A+88>>2],a=o[e+88>>2],o[i+4>>2]=(0|r)>(0|a)|(0|r)==(0|a)&o[A+92>>2]>o[e+92>>2]?A:e)}for(k=o[i>>2],E=o[b>>2],A=R=o[b+4>>2],e=p=o[i+4>>2],u=0,Z=1;;){s=o[A+88>>2];i:{if((0|(a=G(o[e+88>>2]-s|0,Z)))>0)for(;;){for(r=e,t=o[e+92>>2],n=a;s=t-(a=o[A+92>>2])|0,!((0|(e=o[(m?A:A+4)>>2]))==(0|A)||(0|(h=o[e+92>>2]-a|0))>0||(d=o[e+88>>2],a=G(d-o[A+88>>2]|0,Z),(0|G(n,h))>(0|G(a,s))|(0|a)>=0&&a));)n=G(o[r+88>>2]-d|0,Z),A=e;if((0|(e=o[(m?r:r+4)>>2]))==(0|r))break i;if(h=o[e+88>>2],(0|(a=G(h-o[A+88>>2]|0,Z)))<=0)break i;if((0|(d=o[e+92>>2]-t|0))>=0)break i;if(t=G(h-o[r+88>>2]|0,Z)){if((0|t)>=0)break i;if(!((0|G(n,d))<(0|G(t,s))))break i}}n:{if((0|a)<0)a:for(;;){for(s=o[e+92>>2],r=o[(m?e+4:e)>>2];;){if(t=a,n=A,h=s-(d=o[A+92>>2])|0,(0|r)!=(0|e)&&!((0|(a=o[r+92>>2]-s|0))<0||(B=o[r+88>>2],A=G(B-o[e+88>>2]|0,Z),(0|G(a,t))>(0|G(A,h))|(0|A)>=0&&A))){a=G(B-o[n+88>>2]|0,Z),e=r,A=n;continue a}if((0|n)==(0|(A=o[(m?n+4:n)>>2])))break n;if(B=o[A+88>>2],(0|(a=G(o[e+88>>2]-B|0,Z)))>=0)break n;if((0|(F=o[A+92>>2]-d|0))<=0)break n;if(d=G(B-o[n+88>>2]|0,Z)){if((0|d)>=0)break n;if(!((0|G(t,F))<(0|G(d,h))))break}}break n}n=o[A+92>>2],a=A;a:{if(!m)for(;;){if(t=a,(0|(a=o[a+4>>2]))==(0|A)|(0|s)!=o[a+88>>2])break a;if(!((0|(r=n))>=(0|(n=o[a+92>>2]))))break a}for(;;){if(t=a,(0|(a=o[a>>2]))==(0|A)|(0|s)!=o[a+88>>2])break a;if(!((0|(r=n))>=(0|(n=o[a+92>>2]))))break}}a=o[e+92>>2],n=e,A=e;a:{if(!m)for(;;){if(r=n,(0|(n=o[n>>2]))==(0|e)|(0|s)!=o[n+88>>2])break a;if(!((0|(A=a))<=(0|(a=o[n+92>>2]))))break a}for(;;){if(r=A,(0|e)==(0|(A=o[A+4>>2]))|(0|s)!=o[A+88>>2])break a;if(!((0|(n=a))<=(0|(a=o[A+92>>2]))))break}}A=t;break i}r=e,A=n}if(m||(Z=-1,u=r,l=A,A=E,r=k),e=r,2==(0|(m=m+1|0)))break}o[A+4>>2]=e,o[e>>2]=A,o[l>>2]=u,o[u+4>>2]=l,o[k+88>>2]>2]&&(o[b>>2]=k),o[p+88>>2]>=o[R+88>>2]&&(o[b+4>>2]=p),o[b+12>>2]=o[i+12>>2],o[c+124>>2]=l,A=1}o[c+120>>2]=u}if(E=o[c+120>>2],A){if(p=o[c+124>>2],b=o[p+96>>2],d=o[E+96>>2],h=o[p+92>>2],u=o[E+92>>2],e=o[p+8>>2],B=o[p+88>>2],R=o[E+88>>2],o[c+80>>2]=0,l=ee(A=d-b|0,t=A>>31,r=u-h|0,k=r>>31),F=L,n=ee(a=0-(n=R-B|0)|0,s=a>>31,n,n>>31),m=L,Z=n-(V=ee(r,k,r,k))|0,V=m-(L+(n>>>0>>0)|0)|0,m=0-(A=ee(a,s,A,t))|0,g=0-(L+!!(0|A)|0)|0,e){for(A=e;;){w=o[A+12>>2],t=n=(Q=o[w+92>>2])-h|0,W=ee(n,N=n>>31,a,s),Y=L;f:if(!((0|W)!=(0-(D=ee(r,k,n=(J=o[w+88>>2])-B|0,x=n>>31))|0)|(0-(L+!!(0|D)|0)|0)!=(0|Y)||(t=ee(l,F,t,N),N=L,W=ee(m,g,n,x),n=L+N|0,n=(t=W+t|0)>>>0>>0?n+1|0:n,D=t,W=ee(Z,V,t=(N=o[w+96>>2])-b|0,t>>31),t=L+n|0,!(w=D+W|0)&(0|(t=w>>>0>>0?t+1|0:t))<=0|(0|t)<0))){e:if(f){if(n=o[f+4>>2],o[f>>2]==(0|A)){if((0|A)!=(0|n))break f;if(n=o[f+12>>2],t=o[o[A+8>>2]+12>>2],W=o[t+96>>2],w=o[n+96>>2]-W|0,Y=o[t+92>>2],N=N-W|0,Q=ee(Q=G(w,Y-Q|0)+G(N,o[n+92>>2]-Y|0)|0,Q>>31,r,k),W=L,t=o[t+88>>2],w=ee(n=G(N,t-o[n+88>>2]|0)+G(w,J-t|0)|0,n>>31,a,s),t=L+W|0,!(n=w+Q|0)&(0|(t=n>>>0>>0?t+1|0:t))<=0|(0|t)<0)break e;break f}if((0|A)!=(0|n))break f}f=A}if((0|e)==(0|(A=o[A>>2])))break}o[c+80>>2]=f}if(n=o[E+8>>2],e=0,o[c+56>>2]=0,n){for(A=n;;){h=o[A+12>>2],b=t=(B=o[h+92>>2])-u|0,Q=ee(t,w=t>>31,a,s),N=L;f:if(!((0|Q)!=(0-(J=ee(r,k,t=(W=o[h+88>>2])-R|0,Y=t>>31))|0)|(0-(L+!!(0|J)|0)|0)!=(0|N)||(b=ee(l,F,b,w),w=L,Q=ee(m,g,t,Y),t=L+w|0,t=(b=Q+b|0)>>>0>>0?t+1|0:t,D=b,h=ee(Z,V,b=(w=o[h+96>>2])-d|0,b>>31),t=L+t|0,!(b=D+h|0)&(0|(t=b>>>0>>0?t+1|0:t))<=0|(0|t)<0))){if(e){if(o[e>>2]!=(0|A))break f;if(o[e+4>>2]==(0|A)&&(t=o[e+12>>2],b=o[o[A+8>>2]+12>>2],Q=o[b+96>>2],h=o[t+96>>2]-Q|0,N=o[b+92>>2],w=w-Q|0,B=ee(B=G(h,N-B|0)+G(w,o[t+92>>2]-N|0)|0,B>>31,r,k),Q=L,b=o[b+88>>2],h=ee(t=G(w,b-o[t+88>>2]|0)+G(h,W-b|0)|0,t>>31,a,s),t=L+Q|0,!(b=h+B|0)&(0|(t=b>>>0>>0?t+1|0:t))<=0|(0|t)<0))break f}e=A}if((0|n)==(0|(A=o[A>>2])))break}o[c+56>>2]=e}f|e&&(oA(v,p,E,c+80|0,c+56|0),(A=o[c+80>>2])&&(p=o[A+12>>2],o[c+124>>2]=p),(A=o[c+56>>2])&&(E=o[A+12>>2],o[c+120>>2]=E,d=o[E+96>>2],u=o[E+92>>2],R=o[E+88>>2])),A=d+1|0}else R=o[E+88>>2]+1|0,u=o[E+92>>2],p=o[c+124>>2],A=o[E+96>>2];for(h=A,A=p,a=E,b=0,t=0,Z=0,l=1,f=0,r=0,m=0;;){if(d=o[a+96>>2],e=o[A+96>>2],n=o[A+92>>2],s=o[a+92>>2],k=o[A+88>>2],B=o[a+88>>2],o[c+116>>2]=-1,s=s-n|0,o[c+108>>2]=s,d=d-e|0,o[c+112>>2]=d,B=B-k|0,o[c+104>>2]=B,g=u-n|0,n=h-e|0,F=(e=G(g,d)-G(n,s)|0)>>31,o[c+80>>2]=e,o[c+84>>2]=F,k=R-k|0,V=(n=G(n,B)-G(k,d)|0)>>31,o[c+88>>2]=n,o[c+92>>2]=V,g=(k=G(s,k)-G(B,g)|0)>>31,o[c+96>>2]=k,o[c+100>>2]=g,w=ee(n,V,B,Q=B>>31),N=L,Y=ee(e,F,s,W=s>>31),o[c+72>>2]=w-Y,o[c+76>>2]=N-(L+(w>>>0>>0)|0),e=ee(e,D=F,d,F=d>>31),w=L,B=ee(k,g,B,Q),o[c+64>>2]=e-B,o[c+68>>2]=w-(L+(e>>>0>>0)|0),e=ee(s,W,k,g),k=L,n=ee(n,V,d,F),o[c+56>>2]=e-n,o[c+60>>2]=k-(L+(e>>>0>>0)|0),o[c+48>>2]=0,o[c+40>>2]=0,o[c+44>>2]=0,o[c+32>>2]=0,o[c+36>>2]=0,s=SA(v,0,A,e=c+104|0,n=c+80|0,k=c+56|0,c+32|0),o[c+24>>2]=0,o[c+16>>2]=0,o[c+20>>2]=0,o[c+8>>2]=0,o[c+12>>2]=0,!((k=SA(v,1,a,e,n,k,c+8|0))|s)){r=ir(v,A,a),o[r+4>>2]=r,o[r>>2]=r,o[A+8>>2]=r,A=o[r+8>>2],o[A+4>>2]=A,o[A>>2]=A,o[a+8>>2]=A;break r}d=s?-1:1,!s|!k||(d=Er(c+32|0,c+8|0));f:{e:{i:if(!(1&l)){if((0|d)>=0){if(o[c+16>>2]|o[c+20>>2]|o[c+24>>2]>=0)break i;l=b,a=t,n=f,e=r;break e}if(!(o[c+40>>2]|o[c+44>>2]|o[c+48>>2]>=0)){o[c+4>>2]=s,n=f,e=r;break f}}e=n=ir(v,A,a),f&&(o[f+4>>2]=n,e=r),o[n>>2]=f,a=l=o[n+8>>2],b&&(o[b>>2]=l,a=t),o[l+4>>2]=b}if(o[c+4>>2]=s,o[c>>2]=k,f=k,d||(oA(v,o[c+124>>2],o[c+120>>2],c+4|0,c),f=o[c>>2]),!f|(0|d)<0)b=l,t=a;else{e:{i:{if(X){if((0|k)!=(0|(A=o[X>>2])))for(;b=o[A+8>>2],r=0,u=0,(0|(t=o[A>>2]))!=(0|A)&&(o[t+4>>2]=o[A+4>>2],o[o[A+4>>2]>>2]=t,u=t),o[o[b+12>>2]+8>>2]=u,(0|(u=o[b>>2]))!=(0|b)&&(o[u+4>>2]=o[b+4>>2],o[o[b+4>>2]>>2]=u,r=u),o[o[A+12>>2]+8>>2]=r,o[A+16>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A>>2]=0,o[A+4>>2]=0,o[A>>2]=o[v+56>>2],o[v+56>>2]=A,o[b+16>>2]=0,o[b+8>>2]=0,o[b+12>>2]=0,o[b>>2]=0,o[b+4>>2]=0,o[b>>2]=o[v+56>>2],o[v+56>>2]=b,o[v+116>>2]=o[v+116>>2]-1,(0|k)!=(0|(A=t)););if(l)break i;break e}if(!l){Z=k;break e}X=o[k+4>>2],Z=a}o[X>>2]=a,o[a+4>>2]=X,o[l>>2]=k,o[k+4>>2]=l,f=o[c>>2],a=0}t=a,A=o[c+120>>2],h=o[A+96>>2],u=o[A+92>>2],R=o[A+88>>2],o[c+120>>2]=o[f+12>>2],X=o[f+8>>2],b=0}}if((0|d)<=0&&(d=o[c+4>>2])){f:{if(C){if((0|s)!=(0|(A=o[C+4>>2])))for(;l=o[A+8>>2],u=o[A+4>>2],r=0,f=0,(0|(a=o[A>>2]))!=(0|A)&&(o[a+4>>2]=u,o[o[A+4>>2]>>2]=a,f=a),o[o[l+12>>2]+8>>2]=f,(0|(f=o[l>>2]))!=(0|l)&&(o[f+4>>2]=o[l+4>>2],o[o[l+4>>2]>>2]=f,r=f),o[o[A+12>>2]+8>>2]=r,o[A+16>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A>>2]=0,o[A+4>>2]=0,o[A>>2]=o[v+56>>2],o[v+56>>2]=A,o[l+16>>2]=0,o[l+8>>2]=0,o[l+12>>2]=0,o[l>>2]=0,o[l+4>>2]=0,o[l>>2]=o[v+56>>2],o[v+56>>2]=l,o[v+116>>2]=o[v+116>>2]-1,(0|s)!=(0|(A=u)););if(!n)break f;o[e>>2]=C,A=C+4|0}else{if(!n){m=s;break f}A=o[s>>2],o[e>>2]=A,m=e,A=A+4|0}o[A>>2]=e,o[s>>2]=n,o[n+4>>2]=s,e=0,d=o[c+4>>2]}A=o[c+124>>2],h=o[A+96>>2],u=o[A+92>>2],R=o[A+88>>2],A=o[d+12>>2],o[c+124>>2]=A,C=o[d+8>>2],n=0}else A=o[c+124>>2];if(!((0|A)!=(0|p)|(0|E)!=(0|(a=o[c+120>>2])))){if(C){if((0|m)!=(0|(A=o[C+4>>2])))for(;l=o[A+8>>2],a=o[A+4>>2],r=0,(0|(f=o[A>>2]))!=(0|A)&&(o[f+4>>2]=a,o[o[A+4>>2]>>2]=f,r=f),o[o[l+12>>2]+8>>2]=r,(0|l)!=(0|(u=o[l>>2]))?(o[u+4>>2]=o[l+4>>2],o[o[l+4>>2]>>2]=u):u=0,o[o[A+12>>2]+8>>2]=u,o[A+16>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A>>2]=0,o[A+4>>2]=0,o[A>>2]=o[v+56>>2],o[v+56>>2]=A,o[l+16>>2]=0,o[l+8>>2]=0,o[l+12>>2]=0,o[l>>2]=0,o[l+4>>2]=0,o[l>>2]=o[v+56>>2],o[v+56>>2]=l,o[v+116>>2]=o[v+116>>2]-1,(0|m)!=(0|(A=a)););n&&(o[e>>2]=C,o[C+4>>2]=e,o[m>>2]=n,o[n+4>>2]=m)}else o[e>>2]=n,o[n+4>>2]=e,o[o[c+124>>2]+8>>2]=n;if(!X){o[b>>2]=t,o[t+4>>2]=b,o[o[c+120>>2]+8>>2]=b;break r}if((0|Z)!=(0|(A=o[X>>2])))for(;f=o[A+8>>2],u=0,(0|(r=o[A>>2]))!=(0|A)&&(o[r+4>>2]=o[A+4>>2],o[o[A+4>>2]>>2]=r,u=r),o[o[f+12>>2]+8>>2]=u,(0|f)!=(0|(u=o[f>>2]))?(o[u+4>>2]=o[f+4>>2],o[o[f+4>>2]>>2]=u):u=0,o[o[A+12>>2]+8>>2]=u,o[A+16>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A>>2]=0,o[A+4>>2]=0,o[A>>2]=o[v+56>>2],o[v+56>>2]=A,o[f+16>>2]=0,o[f+8>>2]=0,o[f+12>>2]=0,o[f>>2]=0,o[f+4>>2]=0,o[f>>2]=o[v+56>>2],o[v+56>>2]=f,o[v+116>>2]=o[v+116>>2]-1,(0|Z)!=(0|(A=r)););if(!b)break r;o[X>>2]=t,o[t+4>>2]=X,o[b>>2]=Z,o[Z+4>>2]=b;break}l=0,f=n,r=e}}else A=o[i+4>>2],o[e>>2]=o[i>>2],o[e+4>>2]=A,A=o[i+12>>2],o[e+8>>2]=o[i+8>>2],o[e+12>>2]=A;S=c+128|0}S=i+16|0}function AA(A){var r,f=0,e=0,i=0,n=m(0),t=m(0),c=0,b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=0,E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=0,V=0,g=0,X=m(0),D=m(0),C=0,J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=0,L=0,$=0,K=0,q=m(0),_=m(0),AA=0;S=r=S-16|0;A:if(v[A+356|0]){a[A+356|0]=0,a[A+352|0]=0,o[A+344>>2]=0,o[A+348>>2]=0,o[A+336>>2]=0,o[A+340>>2]=0,i=-16&v[A+332|0],a[A+332|0]=i,f=A+316|0;r:{f:switch(o[A>>2]-1|0){case 0:e=o[A+168>>2],o[A+260>>2]=o[A+164>>2],o[A+264>>2]=e,e=o[A+88>>2],o[A+244>>2]=o[A+84>>2],o[A+248>>2]=e,e=o[A+176>>2],o[A+268>>2]=o[A+172>>2],o[A+272>>2]=e,e=o[A+96>>2],o[A+252>>2]=o[A+92>>2],o[A+256>>2]=e,a[A+352|0]=0,o[A+288>>2]=0,w[A+280>>2]=w[A+248>>2]-w[A+264>>2],w[A+276>>2]=w[A+244>>2]-w[A+260>>2],w[A+284>>2]=w[A+252>>2]-w[A+268>>2],o[A+344>>2]=0,o[A+348>>2]=0,o[A+336>>2]=1065353216,o[A+340>>2]=0,e=1;break r;case 1:c=1,l=w[A+8>>2],n=m(w[A+24>>2]-l),u=w[A+12>>2],b=m(w[A+28>>2]-u),k=m(b*m(m(0)-u)),s=w[A+4>>2],u=m(w[A+20>>2]-s),e=1,(f=(l=m(k+m(m(u*m(m(0)-s))+m(m(m(0)-l)*n))))>m(0))&&((t=m(m(b*b)+m(m(u*u)+m(n*n))))>l?(t=m(l/t),e=3):(t=m(1),e=2)),o[A+344>>2]=0,o[A+348>>2]=0,w[A+340>>2]=t,l=m(m(1)-t),w[A+336>>2]=l,a[A+332|0]=i|e,o[A+256>>2]=0,n=w[A+92>>2],s=m(n+m(t*m(w[A+108>>2]-n))),w[A+252>>2]=s,n=w[A+88>>2],d=m(n+m(t*m(w[A+104>>2]-n))),w[A+248>>2]=d,n=w[A+84>>2],h=m(n+m(t*m(w[A+100>>2]-n))),w[A+244>>2]=h,k=w[A+180>>2],Z=w[A+184>>2],n=w[A+168>>2],G=w[A+188>>2],b=w[A+172>>2],u=w[A+164>>2],o[A+288>>2]=0,b=m(b+m(t*m(G-b))),w[A+284>>2]=s-b,n=m(n+m(t*m(Z-n))),w[A+280>>2]=d-n,u=m(u+m(t*m(k-u))),w[A+276>>2]=h-u,o[A+272>>2]=0,w[A+268>>2]=b,w[A+264>>2]=n,w[A+260>>2]=u,f||(o[A>>2]=1,c=0),1&e||(o[A>>2]=c,f=o[16+(e=(c<<4)+A|0)>>2],o[A+12>>2]=o[e+12>>2],o[A+16>>2]=f,f=o[e+8>>2],o[A+4>>2]=o[e+4>>2],o[A+8>>2]=f,f=o[e+96>>2],o[A+92>>2]=o[e+92>>2],o[A+96>>2]=f,f=o[e+88>>2],o[A+84>>2]=o[e+84>>2],o[A+88>>2]=f,f=o[e+176>>2],o[A+172>>2]=o[e+172>>2],o[A+176>>2]=f,f=o[e+168>>2],o[A+164>>2]=o[e+164>>2],o[A+168>>2]=f),e=l>=m(0)&t>=m(0);break r;case 2:o[r+8>>2]=0,o[r+12>>2]=0,o[r>>2]=0,o[r+4>>2]=0,$A(r,A+4|0,A+20|0,A+36|0,f),o[A+256>>2]=0,t=w[A+336>>2],n=w[A+340>>2],b=w[A+344>>2],u=m(m(m(t*w[A+92>>2])+m(n*w[A+108>>2]))+m(b*w[A+124>>2])),w[A+252>>2]=u,l=m(m(m(t*w[A+88>>2])+m(n*w[A+104>>2]))+m(b*w[A+120>>2])),w[A+248>>2]=l,s=m(m(m(t*w[A+84>>2])+m(n*w[A+100>>2]))+m(b*w[A+116>>2])),w[A+244>>2]=s,d=w[A+180>>2],h=w[A+196>>2],k=w[A+168>>2],Z=w[A+184>>2],G=w[A+200>>2],W=w[A+172>>2],N=w[A+188>>2],p=w[A+204>>2],F=w[A+164>>2],o[A+288>>2]=0,B=u,u=m(m(m(t*W)+m(n*N))+m(b*p)),w[A+284>>2]=B-u,B=l,l=m(m(m(t*k)+m(n*Z))+m(b*G)),w[A+280>>2]=B-l,k=s,s=m(m(m(t*F)+m(n*d))+m(b*h)),w[A+276>>2]=k-s,o[A+272>>2]=0,w[A+268>>2]=u,w[A+264>>2]=l,w[A+260>>2]=s;e:{i:{n:{a:{t:{o:if((0|(f=o[A>>2]))>=4){if(8&(c=v[A+332|0])){e=f;break o}e=f-1|0,o[A>>2]=e,i=o[16+(f=(e<<4)+A|0)>>2],o[A+60>>2]=o[f+12>>2],o[A+64>>2]=i,i=o[f+8>>2],o[A+52>>2]=o[f+4>>2],o[A+56>>2]=i,i=o[f+88>>2],o[A+132>>2]=o[f+84>>2],o[A+136>>2]=i,i=o[f+96>>2],o[A+140>>2]=o[f+92>>2],o[A+144>>2]=i,i=o[f+176>>2],o[A+220>>2]=o[f+172>>2],o[A+224>>2]=i,i=o[f+168>>2],o[A+212>>2]=o[f+164>>2],o[A+216>>2]=i}else{if(e=3,3!=(0|f))break t;c=v[A+332|0]}if(4&c)break a;e=e-1|0,o[A>>2]=e,i=o[16+(f=(e<<4)+A|0)>>2],o[A+44>>2]=o[f+12>>2],o[A+48>>2]=i,i=o[f+8>>2],o[A+36>>2]=o[f+4>>2],o[A+40>>2]=i,i=o[f+96>>2],o[A+124>>2]=o[f+92>>2],o[A+128>>2]=i,i=o[f+88>>2],o[A+116>>2]=o[f+84>>2],o[A+120>>2]=i,i=o[f+176>>2],o[A+204>>2]=o[f+172>>2],o[A+208>>2]=i,i=o[f+168>>2],o[A+196>>2]=o[f+164>>2],o[A+200>>2]=i;break a}if(e=2,(0|f)<2)break n;c=v[A+332|0]}if(2&c)break i;e=e-1|0,o[A>>2]=e,i=o[16+(f=(e<<4)+A|0)>>2],o[A+28>>2]=o[f+12>>2],o[A+32>>2]=i,i=o[f+8>>2],o[A+20>>2]=o[f+4>>2],o[A+24>>2]=i,i=o[f+96>>2],o[A+108>>2]=o[f+92>>2],o[A+112>>2]=i,i=o[f+88>>2],o[A+100>>2]=o[f+84>>2],o[A+104>>2]=i,i=o[f+176>>2],o[A+188>>2]=o[f+172>>2],o[A+192>>2]=i,i=o[f+168>>2],o[A+180>>2]=o[f+164>>2],o[A+184>>2]=i;break i}if(e=1,1!=(0|f))break e;c=v[A+332|0]}1&c||(e=e-1|0,o[A>>2]=e,f=o[16+(e=(e<<4)+A|0)>>2],o[A+12>>2]=o[e+12>>2],o[A+16>>2]=f,f=o[e+8>>2],o[A+4>>2]=o[e+4>>2],o[A+8>>2]=f,f=o[e+96>>2],o[A+92>>2]=o[e+92>>2],o[A+96>>2]=f,f=o[e+88>>2],o[A+84>>2]=o[e+84>>2],o[A+88>>2]=f,f=o[e+176>>2],o[A+172>>2]=o[e+172>>2],o[A+176>>2]=f,f=o[e+168>>2],o[A+164>>2]=o[e+164>>2],o[A+168>>2]=f)}if(e=0,!(b>=m(0))|!(t>=m(0))|!(n>=m(0)))break r;e=w[A+348>>2]>=m(0);break r;case 3:break f;default:break r}if(o[r+8>>2]=0,o[r+12>>2]=0,o[r>>2]=0,o[r+4>>2]=0,S=c=S-48|0,a[c+24|0]=0,i=o[r+12>>2],o[f+8>>2]=o[r+8>>2],o[f+12>>2]=i,i=o[r+4>>2],o[f>>2]=o[r>>2],o[f+4>>2]=i,Q=v[f+16|0],a[f+16|0]=15|Q,T=w[r+8>>2],t=w[8+(i=A+4|0)>>2],U=m(T-t),B=w[8+(Y=A+36|0)>>2],n=m(B-t),E=w[(V=A+52|0)>>2],b=w[i>>2],u=m(E-b),l=w[4+(g=A+20|0)>>2],s=w[i+4>>2],d=m(l-s),h=w[g>>2],k=m(h-b),J=w[V+4>>2],Z=m(J-s),X=m(m(u*d)-m(k*Z)),x=w[Y>>2],G=m(x-b),W=w[g+8>>2],N=m(W-t),P=w[V+8>>2],p=m(P-t),D=m(m(Z*N)-m(d*p)),y=w[Y+4>>2],F=m(y-s),M=m(m(p*k)-m(N*u)),R=m(m(n*X)+m(m(G*D)+m(F*M))),H=m(U*X),X=w[r>>2],j=m(X-b),I=m(j*D),D=w[r+4>>2],z=m(D-s),O=m(R*R)>2],n=m(b-T),t=m(n*n),u=w[c+8>>2],n=m(u-X),s=m(n*n),l=w[c+12>>2],n=m(l-D),n=m(t+m(s+m(n*n))),t=m(34028234663852886e22),n>2]=w[c+20>>2],w[f+8>>2]=b,w[f+4>>2]=l,w[f>>2]=u,a[f+16|0]=7&v[c+24|0]|-16&Q,t=w[c+36>>2],Q=o[c+32>>2],C=o[c+28>>2],o[f+32>>2]=0,w[f+28>>2]=t,o[f+20>>2]=C,o[f+24>>2]=Q,t=n)),L&&($A(r,i,Y,V,c+8|0),b=w[c+16>>2],n=m(b-w[r+8>>2]),s=m(n*n),u=w[c+8>>2],n=m(u-w[r>>2]),k=m(n*n),l=w[c+12>>2],n=m(l-w[r+4>>2]),(n=m(s+m(k+m(n*n))))>2]=w[c+20>>2],w[f+8>>2]=b,w[f+4>>2]=l,w[f>>2]=u,Q=v[c+24|0],a[f+16|0]=240&v[f+16|0]|1&Q|Q<<1&12,Q=o[c+36>>2],C=o[c+32>>2],t=w[c+28>>2],o[f+24>>2]=0,o[f+28>>2]=C,o[f+32>>2]=Q,w[f+20>>2]=t,t=n)),O&&($A(r,i,V,g,c+8|0),b=w[c+16>>2],n=m(b-w[r+8>>2]),s=m(n*n),u=w[c+8>>2],n=m(u-w[r>>2]),k=m(n*n),l=w[c+12>>2],n=m(l-w[r+4>>2]),(n=m(s+m(k+m(n*n))))>2]=w[c+20>>2],w[f+8>>2]=b,w[f+4>>2]=l,w[f>>2]=u,i=v[c+24|0],a[f+16|0]=240&v[f+16|0]|1&i|i>>>1&2|i<<2&8,t=w[c+36>>2],b=w[c+28>>2],w[f+32>>2]=w[c+32>>2],o[f+28>>2]=0,w[f+24>>2]=t,w[f+20>>2]=b,t=n)),AA=1,$&&($A(r,g,V,Y,c+8|0),l=t,t=w[c+16>>2],n=m(t-w[r+8>>2]),s=m(n*n),n=w[c+8>>2],b=m(n-w[r>>2]),k=m(b*b),b=w[c+12>>2],u=m(b-w[r+4>>2]),l>m(s+m(k+m(u*u)))&&(w[f+12>>2]=w[c+20>>2],w[f+8>>2]=t,w[f+4>>2]=b,w[f>>2]=n,i=v[c+24|0],a[f+16|0]=240&v[f+16|0]|4&i|i<<1&2|i<<2&8,t=w[c+36>>2],n=w[c+28>>2],w[f+32>>2]=w[c+32>>2],w[f+28>>2]=t,w[f+24>>2]=n,o[f+20>>2]=0))),S=c+48|0,AA){o[A+256>>2]=0,n=w[A+336>>2],b=w[A+340>>2],u=w[A+344>>2],t=w[A+348>>2],l=m(m(m(m(n*w[A+92>>2])+m(b*w[A+108>>2]))+m(u*w[A+124>>2]))+m(t*w[A+140>>2])),w[A+252>>2]=l,s=m(m(m(m(n*w[A+88>>2])+m(b*w[A+104>>2]))+m(u*w[A+120>>2]))+m(t*w[A+136>>2])),w[A+248>>2]=s,d=m(m(m(m(n*w[A+84>>2])+m(b*w[A+100>>2]))+m(u*w[A+116>>2]))+m(t*w[A+132>>2])),w[A+244>>2]=d,o[A+288>>2]=0,o[A+272>>2]=0,h=m(m(m(m(n*w[A+164>>2])+m(b*w[A+180>>2]))+m(u*w[A+196>>2]))+m(t*w[A+212>>2])),w[A+260>>2]=h,k=m(m(m(m(n*w[A+168>>2])+m(b*w[A+184>>2]))+m(u*w[A+200>>2]))+m(t*w[A+216>>2])),w[A+264>>2]=k,n=m(m(m(m(n*w[A+172>>2])+m(b*w[A+188>>2]))+m(u*w[A+204>>2]))+m(t*w[A+220>>2])),w[A+268>>2]=n,w[A+276>>2]=d-h,w[A+280>>2]=s-k,w[A+284>>2]=l-n;f:{e:{i:{n:{a:{t:if((0|(f=o[A>>2]))>=4){if(8&(c=v[A+332|0])){e=f;break t}e=f-1|0,o[A>>2]=e,i=o[16+(f=(e<<4)+A|0)>>2],o[A+60>>2]=o[f+12>>2],o[A+64>>2]=i,i=o[f+8>>2],o[A+52>>2]=o[f+4>>2],o[A+56>>2]=i,i=o[f+96>>2],o[A+140>>2]=o[f+92>>2],o[A+144>>2]=i,i=o[f+88>>2],o[A+132>>2]=o[f+84>>2],o[A+136>>2]=i,i=o[f+176>>2],o[A+220>>2]=o[f+172>>2],o[A+224>>2]=i,i=o[f+168>>2],o[A+212>>2]=o[f+164>>2],o[A+216>>2]=i}else{if(e=3,3!=(0|f))break a;c=v[A+332|0]}if(4&c)break n;e=e-1|0,o[A>>2]=e,i=o[16+(f=(e<<4)+A|0)>>2],o[A+44>>2]=o[f+12>>2],o[A+48>>2]=i,i=o[f+8>>2],o[A+36>>2]=o[f+4>>2],o[A+40>>2]=i,i=o[f+96>>2],o[A+124>>2]=o[f+92>>2],o[A+128>>2]=i,i=o[f+88>>2],o[A+116>>2]=o[f+84>>2],o[A+120>>2]=i,i=o[f+176>>2],o[A+204>>2]=o[f+172>>2],o[A+208>>2]=i,i=o[f+168>>2],o[A+196>>2]=o[f+164>>2],o[A+200>>2]=i;break n}if(e=2,(0|f)<2)break i;c=v[A+332|0]}if(2&c)break e;e=e-1|0,o[A>>2]=e,i=o[16+(f=(e<<4)+A|0)>>2],o[A+28>>2]=o[f+12>>2],o[A+32>>2]=i,i=o[f+8>>2],o[A+20>>2]=o[f+4>>2],o[A+24>>2]=i,i=o[f+96>>2],o[A+108>>2]=o[f+92>>2],o[A+112>>2]=i,i=o[f+88>>2],o[A+100>>2]=o[f+84>>2],o[A+104>>2]=i,i=o[f+176>>2],o[A+188>>2]=o[f+172>>2],o[A+192>>2]=i,i=o[f+168>>2],o[A+180>>2]=o[f+164>>2],o[A+184>>2]=i;break e}if(e=1,1!=(0|f))break f;c=v[A+332|0]}1&c||(e=e-1|0,o[A>>2]=e,f=o[16+(e=(e<<4)+A|0)>>2],o[A+12>>2]=o[e+12>>2],o[A+16>>2]=f,f=o[e+8>>2],o[A+4>>2]=o[e+4>>2],o[A+8>>2]=f,f=o[e+96>>2],o[A+92>>2]=o[e+92>>2],o[A+96>>2]=f,f=o[e+88>>2],o[A+84>>2]=o[e+84>>2],o[A+88>>2]=f,f=o[e+176>>2],o[A+172>>2]=o[e+172>>2],o[A+176>>2]=f,f=o[e+168>>2],o[A+164>>2]=o[e+164>>2],o[A+168>>2]=f)}e=w[A+336>>2]>=m(0)&w[A+340>>2]>=m(0)&w[A+344>>2]>=m(0)&t>=m(0)}else if(!v[A+352|0]){o[A+276>>2]=0,o[A+280>>2]=0,e=1,a[A+312|0]=1,o[A+284>>2]=0,o[A+288>>2]=0;break A}}a[A+312|0]=e}else e=v[A+312|0];return S=r+16|0,!!(255&e)}function rA(A){var r,f=0,e=0,i=0,n=0,c=0,b=0,u=m(0),l=0,s=0,k=m(0),d=0,Z=0,E=m(0),W=0,p=m(0),F=0,R=0,Y=m(0),V=0,g=0,X=m(0),D=m(0),C=0,J=m(0),x=m(0),y=0,M=m(0),H=0,I=0,T=0,U=m(0),j=0,z=m(0),P=m(0),O=m(0),L=m(0),$=m(0),K=m(0),q=m(0),_=m(0),AA=m(0);S=r=S-96|0,a[r+52|0]=1,o[r+48>>2]=0,a[r+72|0]=1,o[r+40>>2]=0,o[r+44>>2]=0,o[r+68>>2]=0,a[r+92|0]=1,o[r+60>>2]=0,o[r+64>>2]=0,o[r+88>>2]=0,o[r+80>>2]=0,o[r+84>>2]=0,o[r+28>>2]=0,a[r+32|0]=1,o[r+20>>2]=0,o[r+24>>2]=0,o[A+72>>2]=0,o[A+76>>2]=0,o[A+64>>2]=0,o[A+68>>2]=0;A:{r:{if((0|(l=o[A+28>>2]))>0){for(;;){if(H=G(y,36),(0|(I=o[4+(H+o[A+36>>2]|0)>>2]))>0){for(T=0;;){f=o[12+(o[A+36>>2]+H|0)>>2],n=o[f+(T<<2)>>2],f=o[f+(((j=(0|I)==(0|(T=T+1|0)))?0:T)<<2)>>2],t[r+14>>1]=f,t[r+12>>1]=n,(0|(e=n<<16>>16))<(0|(i=f<<16>>16))&&(t[r+14>>1]=n,t[r+12>>1]=f,e=f,i=n),g=i<<16>>16,l=0;f:if(!((f=(Z=e<<16>>16)+(i<<16)&o[r+64>>2]-1)>>>0>=B[r+20>>2])&&-1!=(0|(f=o[o[r+28>>2]+(f<<2)>>2]))){for(b=o[r+48>>2],n=o[r+88>>2];;){if(!(h[(f=(s=f<<2)+n|0)>>1]==(65535&e)&h[f+2>>1]==(65535&i))){if(-1!=(0|(f=o[b+s>>2])))continue;break f}break}l=s+o[r+68>>2]|0}n=(f=o[A+16>>2])+(g<<4)|0,f=f+(Z<<4)|0,U=u=m(w[n+8>>2]-w[f+8>>2]),p=m(w[n>>2]-w[f>>2]),E=m(w[n+4>>2]-w[f+4>>2]),u=m(m(1)/m(N(m(m(u*u)+m(m(p*p)+m(E*E)))))),X=m(U*u),D=m(E*u),k=m(p*u);f:{if((0|(e=o[A+48>>2]))>0)for(n=o[A+56>>2],f=0;;){if(p=w[8+(i=n+(f<<4)|0)>>2],u=w[i>>2],E=w[i+4>>2],!(+m(Q(m(u-k)))>1e-6|+m(Q(m(E-D)))>1e-6|+m(Q(m(p-X)))>1e-6)|!(+m(Q(m(k+u)))>1e-6|+m(Q(m(D+E)))>1e-6|+m(Q(m(X+p)))>1e-6))break f;if((0|(f=f+1|0))==(0|e))break}if(o[A+52>>2]==(0|e)&&!((0|(F=e?e<<1:1))<=(0|e))){if(F?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](F<<4,16),e=o[A+48>>2]):i=0,!((0|e)<=0)){if(g=1&e,f=0,1!=(0|e))for(Z=-2&e,e=0;b=(s=f<<4)+i|0,W=s+o[A+56>>2]|0,n=o[W+4>>2],o[b>>2]=o[W>>2],o[b+4>>2]=n,n=o[W+12>>2],o[b+8>>2]=o[W+8>>2],o[b+12>>2]=n,b=(n=16|s)+i|0,s=n+o[A+56>>2]|0,n=o[s+4>>2],o[b>>2]=o[s>>2],o[b+4>>2]=n,n=o[s+12>>2],o[b+8>>2]=o[s+8>>2],o[b+12>>2]=n,f=f+2|0,(0|Z)!=(0|(e=e+2|0)););g&&(e=(f<<=4)+i|0,n=f+o[A+56>>2]|0,f=o[n+4>>2],o[e>>2]=o[n>>2],o[e+4>>2]=f,f=o[n+12>>2],o[e+8>>2]=o[n+8>>2],o[e+12>>2]=f)}!(f=o[A+56>>2])||!f|!v[A+60|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+56>>2]=i,a[A+60|0]=1,o[A+52>>2]=F,e=o[A+48>>2]}f=o[A+56>>2]+(e<<4)|0,o[f+12>>2]=0,w[f+8>>2]=X,w[f+4>>2]=D,w[f>>2]=k,o[A+48>>2]=o[A+48>>2]+1}f:{if(l){if(t[l+2>>1]=y,j)break f;continue}t[r+8>>1]=y,t[r+10>>1]=65535;e:{i:{if(!((C=(i=t[r+12>>1])+((s=h[r+14>>1])<<16)&(n=o[48+(c=r+16|0)>>2])-1)>>>0>=B[c+4>>2])&&-1!=(0|(f=o[o[c+12>>2]+(C<<2)>>2])))for(g=o[c+32>>2],Z=o[c+72>>2],b=65535&i;;){if((0|b)==h[(i=(e=f<<2)+Z|0)>>1]&(0|s)==h[i+2>>1])break i;if(-1==(0|(f=o[e+g>>2])))break}if((0|n)==(0|(f=g=o[c+44>>2]))&&!((0|(f=n))>=(0|(W=f?f<<1:1)))){if(W?(o[8488]=o[8488]+1,d=0|Zn[o[8290]](W<<2,16),i=o[c+44>>2]):(d=0,i=n),!((0|i)<=0)){if(F=0,f=0,i>>>0>=4)for(Z=-4&i,l=0;b=(s=f<<2)+d|0,e=s+o[c+52>>2]|0,e=h[e>>1]|h[e+2>>1]<<16,t[b>>1]=e,t[b+2>>1]=e>>>16,b=(e=4|s)+d|0,e=e+o[c+52>>2]|0,e=h[e>>1]|h[e+2>>1]<<16,t[b>>1]=e,t[b+2>>1]=e>>>16,b=(e=8|s)+d|0,e=e+o[c+52>>2]|0,e=h[e>>1]|h[e+2>>1]<<16,t[b>>1]=e,t[b+2>>1]=e>>>16,b=(e=12|s)+d|0,e=e+o[c+52>>2]|0,e=h[e>>1]|h[e+2>>1]<<16,t[b>>1]=e,t[b+2>>1]=e>>>16,f=f+4|0,(0|Z)!=(0|(l=l+4|0)););if(b=3&i)for(;e=(i=f<<2)+d|0,i=i+o[c+52>>2]|0,i=h[i>>1]|h[i+2>>1]<<16,t[e>>1]=i,t[e+2>>1]=i>>>16,f=f+1|0,(0|b)!=(0|(F=F+1|0)););}!(f=o[c+52>>2])||!f|!v[c+56|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[c+52>>2]=d,a[c+56|0]=1,o[c+48>>2]=W,f=o[c+44>>2]}if(i=o[c+52>>2]+(f<<2)|0,f=h[r+8>>1]|h[r+10>>1]<<16,t[i>>1]=f,t[i+2>>1]=f>>>16,o[c+44>>2]=o[c+44>>2]+1,(0|(W=o[c- -64>>2]))==o[c+68>>2]&&!((0|(Z=W?W<<1:1))<=(0|W))){if(Z?(o[8488]=o[8488]+1,d=0|Zn[o[8290]](Z<<2,16),W=o[c+64>>2]):d=0,!((0|W)<=0)){if(F=0,f=0,W>>>0>=4)for(b=-4&W,l=0;e=(s=f<<2)+d|0,i=s+o[c+72>>2]|0,i=h[i>>1]|h[i+2>>1]<<16,t[e>>1]=i,t[e+2>>1]=i>>>16,e=(i=4|s)+d|0,i=i+o[c+72>>2]|0,i=h[i>>1]|h[i+2>>1]<<16,t[e>>1]=i,t[e+2>>1]=i>>>16,e=(i=8|s)+d|0,i=i+o[c+72>>2]|0,i=h[i>>1]|h[i+2>>1]<<16,t[e>>1]=i,t[e+2>>1]=i>>>16,e=(i=12|s)+d|0,i=i+o[c+72>>2]|0,i=h[i>>1]|h[i+2>>1]<<16,t[e>>1]=i,t[e+2>>1]=i>>>16,f=f+4|0,(0|b)!=(0|(l=l+4|0)););if(b=3&W)for(;e=(i=f<<2)+d|0,i=i+o[c+72>>2]|0,i=h[i>>1]|h[i+2>>1]<<16,t[e>>1]=i,t[e+2>>1]=i>>>16,f=f+1|0,(0|b)!=(0|(F=F+1|0)););}!(f=o[c+72>>2])||!f|!v[c+76|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[c+72>>2]=d,a[c+76|0]=1,o[c+68>>2]=Z,W=o[c+64>>2]}if(i=o[c+72>>2]+(W<<2)|0,f=h[r+12>>1]|h[r+14>>1]<<16,t[i>>1]=f,t[i+2>>1]=f>>>16,o[c+64>>2]=o[c+64>>2]+1,(0|n)>2]){if(l=0,d=0,W=0,C=0,!((0|(i=o[c+4>>2]))>=(0|(V=o[c+48>>2])))){if((0|V)<=o[c+8>>2])l=o[c+12>>2];else{V?(o[8488]=o[8488]+1,l=0|Zn[o[8290]](V<<2,16),f=o[c+4>>2]):f=i,Z=o[c+12>>2];n:{a:if((0|f)>0){if(f>>>0>=4)for(e=-4&f;o[(b=d<<2)+l>>2]=o[b+Z>>2],o[(n=4|b)+l>>2]=o[n+Z>>2],o[(n=8|b)+l>>2]=o[n+Z>>2],o[(n=12|b)+l>>2]=o[n+Z>>2],d=d+4|0,(0|e)!=(0|(W=W+4|0)););if(!(n=3&f))break a;for(;o[(f=d<<2)+l>>2]=o[f+Z>>2],d=d+1|0,(0|n)!=(0|(C=C+1|0)););}else if(!Z)break n;Z&&v[c+16|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](Z))}o[c+12>>2]=l,a[c+16|0]=1,o[c+8>>2]=V}if(Af((f=i<<2)+l|0,0,(s=V<<2)-f|0),o[c+4>>2]=V,(0|(n=o[c+24>>2]))<(0|V)){n:if((0|V)<=o[c+28>>2])l=o[c+32>>2];else{V?(o[8488]=o[8488]+1,l=0|Zn[o[8290]](s,16),f=o[c+24>>2]):(l=0,f=n),F=o[c+32>>2];a:if((0|f)>0){if(C=0,d=0,f>>>0>=4)for(b=-4&f,W=0;o[(Z=d<<2)+l>>2]=o[Z+F>>2],o[(e=4|Z)+l>>2]=o[e+F>>2],o[(e=8|Z)+l>>2]=o[e+F>>2],o[(e=12|Z)+l>>2]=o[e+F>>2],d=d+4|0,(0|b)!=(0|(W=W+4|0)););if(!(e=3&f))break a;for(;o[(f=d<<2)+l>>2]=o[f+F>>2],d=d+1|0,(0|e)!=(0|(C=C+1|0)););}else if(!F){o[c+32>>2]=l,o[c+28>>2]=V,a[c+36|0]=1;break n}F&&v[c+36|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](F)),o[c+32>>2]=l,a[c+36|0]=1,o[c+28>>2]=V}Af((f=n<<2)+l|0,0,s-f|0)}if(o[c+24>>2]=V,(0|V)>0&&(Af(o[c+12>>2],255,s),Af(o[c+32>>2],255,s)),!((0|i)<=0))for(Z=o[c+32>>2],b=o[c+72>>2],e=o[c+12>>2],d=0;f=e+(((h[2+(f=(n=d<<2)+b|0)>>1]<<16)+t[f>>1]&o[c+48>>2]-1)<<2)|0,o[n+Z>>2]=o[f>>2],o[f>>2]=d,(0|i)!=(0|(d=d+1|0)););}C=t[r+12>>1]+(h[r+14>>1]<<16)&o[c+48>>2]-1}f=o[c+12>>2]+(C<<2)|0,o[o[c+32>>2]+(g<<2)>>2]=o[f>>2],o[f>>2]=g;break e}n=o[c+52>>2]+(f<<2)|0,f=h[r+8>>1]|h[r+10>>1]<<16,t[n>>1]=f,t[n+2>>1]=f>>>16}if(!j)continue}break}l=o[A+28>>2]}if(!((0|(y=y+1|0))<(0|l)))break}if(y=0,i=(0|l)>0)break r}u=w[A+72>>2],J=w[A+68>>2],x=w[A+64>>2];break A}for(H=o[A+16>>2],b=o[A+36>>2],x=w[A+64>>2],J=w[A+68>>2],u=w[A+72>>2];;){if(f=b+G(y,36)|0,(0|(s=o[f+4>>2]))>=3)for(g=o[f+12>>2],I=H+(o[g>>2]<<4)|0,e=s-2|0,f=1;Z=H+(o[g+(f<<2)>>2]<<4)|0,L=w[Z+8>>2],R=H+(o[g+((0|(n=f+1|0))%(0|s)<<2)>>2]<<4)|0,$=w[R+8>>2],z=w[I>>2],K=w[Z>>2],q=m(z-K),P=w[I+4>>2],_=w[R+4>>2],Y=m(P-_),X=w[R>>2],D=m(z-X),k=w[Z+4>>2],E=m(P-k),AA=m(m(q*Y)-m(D*E)),O=w[I+8>>2],p=m(O-$),U=m(E*p),E=m(O-L),Y=m(U-m(Y*E)),U=u,u=m(m(E*D)-m(p*q)),E=m(m(N(m(m(AA*AA)+m(m(Y*Y)+m(u*u)))))*m(.5)),u=m(U+m(m(m(m(O+L)+$)*m(.3333333432674408))*E)),w[A+72>>2]=u,J=m(J+m(m(m(_+m(P+k))*m(.3333333432674408))*E)),w[A+68>>2]=J,x=m(x+m(m(m(X+m(z+K))*m(.3333333432674408))*E)),w[A+64>>2]=x,M=m(M+E),R=(0|f)==(0|e),f=n,!R;);if((0|(y=y+1|0))==(0|l))break}R=i}if(o[A+96>>2]=2139095039,E=m(m(1)/M),X=m(E*u),w[A+72>>2]=X,D=m(E*J),w[A+68>>2]=D,k=m(E*x),w[A+64>>2]=k,p=m(34028234663852886e22),E=m(34028234663852886e22),R)for(n=o[A+36>>2],f=0;R=n+G(f,36)|0,(u=m(Q(m(w[R+32>>2]+m(m(X*w[R+28>>2])+m(m(k*w[R+20>>2])+m(D*w[R+24>>2])))))))>2]=u,E=u),(0|l)!=(0|(f=f+1|0)););if((0|(R=o[A+8>>2]))<=0)Y=m(-34028234663852886e22),u=m(34028234663852886e22),J=m(-34028234663852886e22),x=m(-34028234663852886e22),M=m(34028234663852886e22);else for(n=o[A+16>>2],x=m(-34028234663852886e22),f=0,M=m(34028234663852886e22),J=m(-34028234663852886e22),Y=m(-34028234663852886e22),u=m(34028234663852886e22);x=(k=w[8+(i=n+(f<<4)|0)>>2])>x?k:x,u=u>k?k:u,J=(k=w[i+4>>2])>J?k:J,p=k>2])>Y?k:Y,M=k>2]=0,k=m(x-u),w[A+124>>2]=k,X=m(J-p),w[A+120>>2]=X,D=m(Y-M),w[A+116>>2]=D,o[A+112>>2]=0,w[A+108>>2]=u+x,w[A+104>>2]=p+J,w[A+100>>2]=Y+M,u=w[(n=(R=k>((n=X>D)?X:D)?2:n)<<2)+(A+116|0)>>2],k=m(E/m(1.7320507764816284)),w[A+84>>2]=k,w[A+88>>2]=k,w[A+80>>2]=k,n=(i=A+80|0)+n|0,u=m(u*m(.5)),w[n>>2]=u,p=m(m(u-k)*m(.0009765625));A:{r:{for(;;){if(br(A))break r;if(u=m(u-p),w[n>>2]=u,1024==(0|(f=f+1|0)))break}w[A+84>>2]=k,w[A+88>>2]=k,w[A+80>>2]=k;break A}if(u=w[(n=i+((1<<(f=1<>2],Y=w[(f=i+(f<<2)|0)>>2],E=m(m(E-k)*m(.0009765625)),w[f>>2]=E+Y,p=m(E+w[n>>2]),w[n>>2]=p,br(A))for(e=0;;){if(u=p,1024==(0|(e=e+1|0)))break A;if(Y=w[f>>2],w[f>>2]=E+Y,p=m(E+w[n>>2]),w[n>>2]=p,!br(A))break}w[f>>2]=Y,w[n>>2]=u}!(A=o[r+88>>2])||!A|!v[r+92|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[r+88>>2]=0,a[r+92|0]=1,o[r+80>>2]=0,o[r+84>>2]=0,!(A=o[r+68>>2])||!A|!v[r+72|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[r+68>>2]=0,a[r+72|0]=1,o[r+60>>2]=0,o[r+64>>2]=0,!(A=o[r+48>>2])||!A|!v[r+52|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[r+48>>2]=0,a[r+52|0]=1,o[r+40>>2]=0,o[r+44>>2]=0,!(A=o[r+28>>2])||!A|!v[r+32|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),S=r+96|0}function fA(A,r,f){var e,i,n,t,c,b,u,l,s,k,d,v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=0,I=0,T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=m(0),L=m(0),$=0,K=m(0);T=w[r+52>>2],U=w[r+56>>2],F=w[A+96>>2],R=w[A+100>>2],Y=w[A+104>>2],v=w[r+20>>2],h=w[r+24>>2],V=w[A- -64>>2],g=w[A+80>>2],D=w[A+52>>2],C=w[A+68>>2],J=w[A+84>>2],x=w[A+56>>2],B=w[r+36>>2],y=w[A+72>>2],G=w[r+40>>2],M=w[A+88>>2],j=w[r+48>>2],Z=w[r+8>>2],Q=w[r>>2],p=w[r+4>>2],W=w[r+16>>2],X=w[A+48>>2],E=w[r+32>>2],o[A+1296>>2]=0,o[A+1280>>2]=0,o[A+1264>>2]=0,o[A+1248>>2]=0,w[(r=A+1276|0)>>2]=m(M*G)+m(m(x*E)+m(y*B)),w[(I=A+1272|0)>>2]=m(J*G)+m(m(D*E)+m(C*B)),w[(e=A+1268|0)>>2]=m(g*G)+m(m(X*E)+m(V*B)),w[(i=A+1260|0)>>2]=m(M*h)+m(m(x*W)+m(y*v)),w[(n=A+1256|0)>>2]=m(J*h)+m(m(D*W)+m(C*v)),w[(t=A+1252|0)>>2]=m(g*h)+m(m(X*W)+m(V*v)),w[(c=A+1244|0)>>2]=m(M*Z)+m(m(x*Q)+m(p*y)),w[(b=A+1240|0)>>2]=m(J*Z)+m(m(D*Q)+m(p*C)),w[A+1236>>2]=m(g*Z)+m(m(X*Q)+m(V*p)),w[(u=A+1292|0)>>2]=U+m(m(Y*G)+m(m(F*E)+m(B*R))),w[(l=A+1288|0)>>2]=T+m(m(Y*h)+m(m(F*W)+m(v*R))),w[(s=A+1284|0)>>2]=j+m(m(Y*Z)+m(m(F*Q)+m(p*R))),T=w[f+52>>2],U=w[f+56>>2],F=w[A+160>>2],R=w[A+164>>2],Y=w[A+168>>2],v=w[f+20>>2],h=w[f+24>>2],V=w[A+128>>2],g=w[A+144>>2],D=w[A+116>>2],C=w[A+132>>2],J=w[A+148>>2],x=w[A+120>>2],y=w[A+136>>2],B=w[f+36>>2],M=w[A+152>>2],G=w[f+40>>2],j=w[f+48>>2],Z=w[f+8>>2],Q=w[f>>2],p=w[f+4>>2],W=w[f+16>>2],X=w[A+112>>2],E=w[f+32>>2],o[A+1360>>2]=0,o[A+1344>>2]=0,o[A+1328>>2]=0,o[A+1312>>2]=0,w[A+1340>>2]=m(M*G)+m(m(x*E)+m(y*B)),w[A+1336>>2]=m(J*G)+m(m(D*E)+m(C*B)),w[A+1332>>2]=m(g*G)+m(m(X*E)+m(V*B)),w[A+1324>>2]=m(M*h)+m(m(x*W)+m(y*v)),w[A+1320>>2]=m(J*h)+m(m(D*W)+m(C*v)),w[A+1316>>2]=m(g*h)+m(m(X*W)+m(V*v)),w[A+1308>>2]=m(M*Z)+m(m(x*Q)+m(p*y)),w[A+1304>>2]=m(J*Z)+m(m(D*Q)+m(p*C)),w[A+1300>>2]=m(g*Z)+m(m(X*Q)+m(V*p)),w[(f=A+1356|0)>>2]=U+m(m(Y*G)+m(m(F*E)+m(B*R))),w[(k=A+1352|0)>>2]=T+m(m(Y*h)+m(m(F*W)+m(v*R))),w[(d=A+1348|0)>>2]=j+m(m(Y*Z)+m(m(F*Q)+m(p*R))),o[A+1440>>2]=0,B=w[c>>2],Q=w[t>>2],p=w[I>>2],W=w[e>>2],E=w[n>>2],h=m(m(Q*p)-m(W*E)),G=w[A+1236>>2],F=w[r>>2],R=w[i>>2],D=m(m(E*F)-m(p*R)),Z=w[b>>2],C=m(m(R*W)-m(F*Q)),v=m(m(1)/m(m(B*h)+m(m(G*D)+m(Z*C)))),Y=m(w[f>>2]-w[u>>2]),V=m(w[d>>2]-w[s>>2]),g=m(w[k>>2]-w[l>>2]),h=m(m(m(m(m(G*E)-m(Q*Z))*v)*Y)+m(m(m(h*v)*V)+m(g*m(m(m(Z*W)-m(p*G))*v)))),w[A+1436>>2]=h,G=m(m(m(m(m(B*Q)-m(R*G))*v)*Y)+m(m(m(C*v)*V)+m(g*m(m(m(G*F)-m(W*B))*v)))),w[A+1432>>2]=G,v=m(m(m(m(m(Z*R)-m(E*B))*v)*Y)+m(m(m(D*v)*V)+m(g*m(m(m(B*p)-m(F*Z))*v)))),w[A+1428>>2]=v,w[A+940>>2]=v,r=A+924|0,B=m(0),f=A+908|0;A:{if((Z=w[A+680>>2])>(Q=w[A+696>>2]))I=f;else{if(w[f>>2]=v-Z,H=3,Z==Q)break A;B=m(v-Q),H=4,I=r}w[I>>2]=B}w[A+944>>2]=G,o[A+956>>2]=H;A:{if((v=w[A+684>>2])>(B=w[A+700>>2]))H=0,v=m(0),I=f;else{if(w[A+912>>2]=G-v,H=3,v==B)break A;v=m(G-B),H=4,I=r}w[I+4>>2]=v,h=w[A+1436>>2]}w[A+948>>2]=h,o[A+960>>2]=H;A:{if((v=w[A+688>>2])>(B=w[A+704>>2]))H=0,v=m(0);else{if(w[A+916>>2]=h-v,H=3,v==B)break A;f=r,H=4,v=m(h-B)}w[f+8>>2]=v}o[A+964>>2]=H,S=f=S-48|0,Y=w[A+1332>>2],V=w[A+1316>>2],g=w[A+1336>>2],D=w[A+1304>>2],C=w[A+1320>>2],J=w[A+1340>>2],x=w[A+1308>>2],y=w[A+1324>>2],G=w[A+1244>>2],Q=w[A+1256>>2],p=w[A+1272>>2],Z=w[A+1240>>2],B=w[A+1268>>2],W=w[A+1260>>2],E=w[A+1252>>2],F=w[A+1276>>2],M=w[A+1300>>2],h=w[A+1236>>2],o[f+44>>2]=0,o[f+28>>2]=0,R=m(m(E*p)-m(B*Q)),L=m(m(Q*F)-m(p*W)),z=m(m(W*B)-m(F*E)),v=m(m(1)/m(m(G*R)+m(m(h*L)+m(Z*z)))),X=m(m(m(h*Q)-m(E*Z))*v),T=m(R*v),U=m(m(m(Z*B)-m(p*h))*v),R=m(m(J*X)+m(m(x*T)+m(y*U))),w[f+40>>2]=R,j=m(m(g*X)+m(m(D*T)+m(U*C))),w[f+36>>2]=j,P=m(m(m(G*E)-m(W*h))*v),z=m(z*v),O=m(m(m(h*F)-m(B*G))*v),h=m(m(J*P)+m(m(x*z)+m(y*O))),w[f+24>>2]=h,E=m(m(g*P)+m(m(D*z)+m(O*C))),w[f+20>>2]=E,o[f+12>>2]=0,B=m(m(Y*X)+m(m(M*T)+m(V*U))),w[f+32>>2]=B,X=m(m(Y*P)+m(m(M*z)+m(V*O))),w[f+16>>2]=X,Q=m(m(m(Z*W)-m(Q*G))*v),W=m(L*v),G=m(m(m(G*p)-m(F*Z))*v),Z=m(m(J*Q)+m(m(x*W)+m(y*G))),w[f+8>>2]=Z,v=m(m(g*Q)+m(m(D*W)+m(G*C))),w[f+4>>2]=v,G=m(m(Y*Q)+m(m(M*W)+m(V*G))),w[f>>2]=G;A:{r:{f:{e:{i:{n:{a:{t:switch(0|(r=o[A+1232>>2])){case 5:break f;case 4:break e;case 3:break i;case 2:break n;case 1:break a;case 0:break t;default:break A}r=A+1372|0;t:{if(Bm(-1)){$=A,K=zr(m(-j),R),w[$+1364>>2]=K,$=A+1368|0,K=sf((v=Bm(1)?m(1):v),w[$>>2]=K,v=zr(m(-X),G);break t}o[A+1368>>2]=-1077342245,$=A,K=m(-zr(v,E)),w[$+1364>>2]=K}else o[A+1368>>2]=1070141403,$=A,K=zr(v,E),w[$+1364>>2]=K;v=m(0)}w[r>>2]=v;break r}r=A+1364|0;a:if((v=w[f+16>>2])m(-1)){$=r,K=zr(w[f+24>>2],w[f+20>>2]),w[$>>2]=K,$=r,K=zr(w[f+32>>2],w[f>>2]),w[$+4>>2]=K,$=r,K=sf((v=(v=w[f+16>>2])>m(1)?m(-1):m(-v))>m(1)?m(1):v),w[$+8>>2]=K;break a}v=w[f+40>>2],h=w[f+8>>2],o[r+4>>2]=0,$=r,K=m(-zr(m(-h),v)),w[$>>2]=K,w[r+8>>2]=1.5707963705062866}else v=w[f+40>>2],h=w[f+8>>2],o[r+4>>2]=0,$=r,K=zr(m(-h),v),w[$>>2]=K,w[r+8>>2]=-1.5707963705062866;break r}r=A+1364|0;n:{if((v=w[f+36>>2])m(-1)){$=r,K=sf((v=v>m(1)?m(-1):m(-v))>m(1)?m(1):v),w[$>>2]=K,$=r,K=zr(w[f+32>>2],w[f+40>>2]),w[$+4>>2]=K,$=r,K=zr(w[f+4>>2],w[f+20>>2]),w[$+8>>2]=K;break n}o[r>>2]=1070141403,$=r,K=m(-zr(m(-w[f+16>>2]),w[f>>2])),w[$+4>>2]=K}else o[r>>2]=-1077342245,$=r,K=zr(m(-w[f+16>>2]),w[f>>2]),w[$+4>>2]=K;w[r+8>>2]=0}break r}r=A+1372|0;i:if(vm(-1)){$=A,K=zr(m(-j),E),w[$+1364>>2]=K,$=A+1368|0,K=zr(m(-Z),G),w[$>>2]=K,v=sf((v=vm(1)?m(1):v);break i}o[A+1364>>2]=0,$=A+1368|0,K=m(-zr(h,R)),w[$>>2]=K,v=m(-1.5707963705062866)}else o[A+1364>>2]=0,$=A+1368|0,K=zr(h,R),w[$>>2]=K,v=m(1.5707963705062866);w[r>>2]=v;break r}r=A+1372|0;e:if(hm(-1)){$=A,K=sf((v=hm(1)?m(1):v),w[$+1364>>2]=K,$=A+1368|0,K=zr(m(-Z),R),w[$>>2]=K,v=zr(m(-X),E);break e}o[A+1364>>2]=-1077342245,o[A+1368>>2]=0,v=m(-zr(B,G))}else o[A+1364>>2]=1070141403,o[A+1368>>2]=0,v=zr(B,G);w[r>>2]=v;break r}r=A+1364|0;f:if((v=w[f+8>>2])m(-1)){$=r,K=zr(w[f+24>>2],w[f+40>>2]),w[$>>2]=K,$=r,K=sf((v=(v=w[f+8>>2])>m(1)?m(-1):m(-v))>m(1)?m(1):v),w[$+4>>2]=K,$=r,K=zr(w[f+4>>2],w[f>>2]),w[$+8>>2]=K;break f}o[r>>2]=0,o[r+4>>2]=1070141403,$=r,K=m(-zr(w[f+16>>2],w[f+32>>2])),w[$+8>>2]=K}else o[r>>2]=0,o[r+4>>2]=-1077342245,$=r,K=zr(m(-w[f+16>>2]),m(-w[f+32>>2])),w[$+8>>2]=K}r=o[A+1232>>2]}A:{r:{switch(0|r){default:p=w[A+1420>>2],h=w[A+1416>>2],B=w[A+1412>>2],W=w[A+1404>>2],G=w[A+1400>>2],E=w[A+1396>>2],Z=w[A+1388>>2],Q=w[A+1384>>2],v=w[A+1380>>2];break A;case 0:o[A+1408>>2]=0,o[A+1424>>2]=0,o[A+1392>>2]=0,v=w[A+1300>>2],F=w[A+1276>>2],B=w[A+1332>>2],Q=w[A+1244>>2],G=m(m(v*F)-m(B*Q)),R=w[A+1260>>2],Z=w[A+1316>>2],E=m(m(R*B)-m(Z*F)),p=m(m(v*G)-m(E*Z)),W=m(m(Q*Z)-m(v*R)),h=m(m(B*E)-m(W*v)),B=m(m(Z*W)-m(G*B)),Z=m(m(E*R)-m(Q*G)),Q=m(m(W*Q)-m(F*E)),v=m(m(G*F)-m(R*W));break A;case 1:o[A+1424>>2]=0,o[A+1408>>2]=0,o[A+1392>>2]=0,v=w[A+1316>>2],F=w[A+1272>>2],R=w[A+1256>>2],Z=w[A+1332>>2],B=m(m(v*F)-m(R*Z)),Q=w[A+1240>>2],G=w[A+1300>>2],h=m(m(Z*Q)-m(F*G)),W=m(m(B*v)-m(G*h)),p=m(m(G*R)-m(Q*v)),G=m(m(p*G)-m(Z*B)),E=m(m(h*Z)-m(v*p)),Z=m(m(Q*h)-m(B*R)),Q=m(m(F*B)-m(p*Q)),v=m(m(R*p)-m(h*F));break A;case 2:o[A+1424>>2]=0,o[A+1408>>2]=0,o[A+1392>>2]=0,h=w[A+1304>>2],W=w[A+1260>>2],F=w[A+1244>>2],B=w[A+1320>>2],Z=m(m(h*W)-m(F*B)),w[A+1388>>2]=Z,R=w[A+1336>>2],p=w[A+1276>>2],Q=m(m(F*R)-m(h*p)),w[A+1384>>2]=Q,v=m(m(B*p)-m(W*R)),w[A+1380>>2]=v,G=m(m(p*v)-m(Z*F)),w[A+1400>>2]=G,E=m(m(W*Z)-m(Q*p)),w[A+1396>>2]=E,p=m(m(v*B)-m(h*Q)),h=m(m(Z*h)-m(R*v)),B=m(m(Q*R)-m(B*Z)),W=m(m(F*Q)-m(v*W));break A;case 3:o[A+1424>>2]=0,o[A+1408>>2]=0,o[A+1392>>2]=0,v=w[A+1236>>2],F=w[A+1320>>2],Q=w[A+1304>>2],Z=w[A+1252>>2],p=m(m(v*F)-m(Q*Z)),w[A+1420>>2]=p,E=w[A+1268>>2],R=w[A+1336>>2],h=m(m(Q*E)-m(v*R)),w[A+1416>>2]=h,B=m(m(Z*R)-m(F*E)),w[A+1412>>2]=B,W=m(m(B*Z)-m(v*h)),w[A+1404>>2]=W,G=m(m(p*v)-m(E*B)),w[A+1400>>2]=G,E=m(m(h*E)-m(Z*p)),w[A+1396>>2]=E,Z=m(m(Q*h)-m(B*F)),w[A+1388>>2]=Z,Q=m(m(R*B)-m(p*Q)),w[A+1384>>2]=Q,v=m(m(F*p)-m(h*R));break r;case 4:o[A+1424>>2]=0,o[A+1408>>2]=0,o[A+1392>>2]=0,h=w[A+1240>>2],E=w[A+1324>>2],G=w[A+1308>>2],B=w[A+1256>>2],Z=m(m(h*E)-m(G*B)),w[A+1388>>2]=Z,W=w[A+1272>>2],F=w[A+1340>>2],Q=m(m(G*W)-m(h*F)),w[A+1384>>2]=Q,v=m(m(B*F)-m(E*W)),w[A+1380>>2]=v,p=m(m(v*B)-m(h*Q)),w[A+1420>>2]=p,h=m(m(Z*h)-m(W*v)),w[A+1416>>2]=h,B=m(m(Q*W)-m(B*Z)),w[A+1412>>2]=B,W=m(m(G*Q)-m(v*E)),w[A+1404>>2]=W,G=m(m(F*v)-m(Z*G)),w[A+1400>>2]=G,E=m(m(E*Z)-m(Q*F)),w[A+1396>>2]=E;break A;case 5:}o[A+1408>>2]=0,o[A+1424>>2]=0,o[A+1392>>2]=0,v=w[A+1308>>2],B=w[A+1252>>2],h=w[A+1236>>2],F=w[A+1324>>2],W=m(m(v*B)-m(h*F)),w[A+1404>>2]=W,R=w[A+1340>>2],Z=w[A+1268>>2],G=m(m(h*R)-m(v*Z)),w[A+1400>>2]=G,E=m(m(F*Z)-m(B*R)),w[A+1396>>2]=E,p=m(m(h*G)-m(E*B)),w[A+1420>>2]=p,h=m(m(Z*E)-m(W*h)),w[A+1416>>2]=h,B=m(m(B*W)-m(G*Z)),w[A+1412>>2]=B,Z=m(m(E*F)-m(v*G)),w[A+1388>>2]=Z,Q=m(m(W*v)-m(R*E)),w[A+1384>>2]=Q,v=m(m(G*R)-m(F*W))}w[A+1380>>2]=v}F=p,p=m(m(1)/m(N(m(m(p*p)+m(m(B*B)+m(h*h)))))),w[A+1420>>2]=F*p,w[A+1416>>2]=h*p,w[A+1412>>2]=B*p,h=m(m(1)/m(N(m(m(W*W)+m(m(E*E)+m(G*G)))))),w[A+1404>>2]=W*h,w[A+1400>>2]=G*h,w[A+1396>>2]=E*h,h=m(m(1)/m(N(m(m(Z*Z)+m(m(v*v)+m(Q*Q)))))),w[A+1388>>2]=Z*h,w[A+1384>>2]=Q*h,w[A+1380>>2]=v*h,S=f+48|0,h=w[o[A+28>>2]+404>>2],v=w[o[A+32>>2]+404>>2],a[A+1452|0]=hm(0)?m(p/v):m(.5),w[A+1444>>2]=v,w[A+1448>>2]=m(1)-v}function eA(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n=m(0),a=m(0),t=0,c=m(0),b=m(0),u=m(0),l=0,s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=0,E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=0,x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=m(0),L=m(0),$=m(0),K=m(0),q=m(0),_=m(0),AA=m(0),rA=m(0),fA=m(0),eA=m(0),iA=m(0),nA=m(0),aA=m(0),tA=m(0);S=i=S-272|0,o[A+56>>2]=0,o[i+264>>2]=0,o[i+268>>2]=0,o[i+256>>2]=0,o[i+260>>2]=0,t=o[r+12>>2],o[i+168>>2]=o[r+8>>2],o[i+172>>2]=t,t=o[r+4>>2],o[i+160>>2]=o[r>>2],o[i+164>>2]=t,t=o[r+28>>2],o[i+184>>2]=o[r+24>>2],o[i+188>>2]=t,t=o[r+20>>2],o[i+176>>2]=o[r+16>>2],o[i+180>>2]=t,t=o[r+44>>2],o[i+200>>2]=o[r+40>>2],o[i+204>>2]=t,t=o[r+36>>2],o[i+192>>2]=o[r+32>>2],o[i+196>>2]=t,t=o[r+60>>2],o[i+216>>2]=o[r+56>>2],o[i+220>>2]=t,t=o[r+52>>2],o[i+208>>2]=o[r+48>>2],o[i+212>>2]=t,t=o[r+76>>2],o[i+104>>2]=o[r+72>>2],o[i+108>>2]=t,t=o[r+68>>2],o[i+96>>2]=o[r+64>>2],o[i+100>>2]=t,t=o[r+92>>2],o[i+120>>2]=o[r+88>>2],o[i+124>>2]=t,t=o[r+84>>2],o[i+112>>2]=o[r+80>>2],o[i+116>>2]=t,t=o[r+108>>2],o[i+136>>2]=o[r+104>>2],o[i+140>>2]=t,t=o[r+100>>2],o[i+128>>2]=o[r+96>>2],o[i+132>>2]=t,t=o[r+124>>2],o[i+152>>2]=o[r+120>>2],o[i+156>>2]=t,t=o[r+116>>2],o[i+144>>2]=o[r+112>>2],o[i+148>>2]=t,n=w[i+212>>2],c=w[i+148>>2],X=m(m(n+c)*m(.5)),w[i+212>>2]=n-X,n=w[i+216>>2],a=w[i+152>>2],D=m(m(n+a)*m(.5)),w[i+216>>2]=n-D,w[i+148>>2]=c-X,w[i+152>>2]=a-D,n=w[i+208>>2],c=w[i+144>>2],C=m(m(n+c)*m(.5)),w[i+208>>2]=n-C,w[i+144>>2]=c-C,l=o[o[A+28>>2]+4>>2]-17>>>0<=1?o[o[A+32>>2]+4>>2]-17>>>0<2:l,n=w[A+44>>2],c=w[A+48>>2],o[8534]=o[8534]+1,o[A+68>>2]=0,o[A+12>>2]=0,o[A+16>>2]=0,o[A+4>>2]=0,o[A+8>>2]=1065353216,o[A+60>>2]=-1,o[A+64>>2]=0,t=v[A+52|0],re(o[A+24>>2]),h=t?m(0):n,B=t?m(0):c,G=m(h+B),t=A+4|0,c=m(0xde0b6b000000000);A:{r:{f:{for(;;){if(s=w[r+32>>2],Z=w[r>>2],d=w[r+16>>2],k=w[r+36>>2],E=w[r+4>>2],p=w[r+20>>2],F=w[r+40>>2],n=w[A+12>>2],u=w[r+8>>2],b=w[A+4>>2],R=w[r+24>>2],a=w[A+8>>2],o[i+252>>2]=0,W=u,u=m(-b),w[i+248>>2]=m(m(W*u)-m(R*a))-m(F*n),w[i+244>>2]=m(m(E*u)-m(p*a))-m(k*n),w[i+240>>2]=m(m(Z*u)-m(d*a))-m(s*n),u=w[r+96>>2],s=w[r+64>>2],Z=w[r+80>>2],d=w[r+100>>2],k=w[r+68>>2],E=w[r+84>>2],p=w[r+104>>2],F=w[r+72>>2],R=w[r+88>>2],o[i+236>>2]=0,w[i+232>>2]=m(p*n)+m(m(F*b)+m(a*R)),w[i+228>>2]=m(d*n)+m(m(k*b)+m(a*E)),w[i+224>>2]=m(u*n)+m(m(s*b)+m(a*Z)),NA(i+80|0,o[A+28>>2],i+240|0),NA(i- -64|0,o[A+32>>2],i+224|0),o[i+60>>2]=0,n=w[i+88>>2],a=w[i+80>>2],u=w[i+84>>2],b=m(m(m(n*w[i+200>>2])+m(m(a*w[i+192>>2])+m(u*w[i+196>>2])))+w[i+216>>2]),w[i+56>>2]=b,Z=m(m(m(n*w[i+184>>2])+m(m(a*w[i+176>>2])+m(u*w[i+180>>2])))+w[i+212>>2]),w[i+52>>2]=Z,d=m(m(m(n*w[i+168>>2])+m(m(a*w[i+160>>2])+m(u*w[i+164>>2])))+w[i+208>>2]),w[i+48>>2]=d,o[i+44>>2]=0,n=w[i+72>>2],a=w[i+64>>2],s=w[i+68>>2],u=m(m(m(n*w[i+136>>2])+m(m(a*w[i+128>>2])+m(s*w[i+132>>2])))+w[i+152>>2]),w[i+40>>2]=u,k=m(m(m(n*w[i+120>>2])+m(m(a*w[i+112>>2])+m(s*w[i+116>>2])))+w[i+148>>2]),w[i+36>>2]=k,n=m(m(m(n*w[i+104>>2])+m(m(a*w[i+96>>2])+m(s*w[i+100>>2])))+w[i+144>>2]),w[i+32>>2]=n,l&&(o[i+40>>2]=0,o[i+56>>2]=0,u=m(0),b=m(0)),o[i+28>>2]=0,a=m(b-u),w[i+24>>2]=a,n=m(d-n),w[i+16>>2]=n,b=m(Z-k),w[i+20>>2]=b,!(!((n=m(m(w[A+12>>2]*a)+m(m(w[A+4>>2]*n)+m(b*w[A+8>>2]))))>m(0))|!(m(n*n)>m(c*w[r+128>>2])))){o[A+68>>2]=10;break f}if(wf(o[A+24>>2],i+16|0)){o[A+68>>2]=1;break f}if((n=m(c-n))<=m(c*m(9.999999974752427e-7))){o[A+68>>2]=n<=m(0)?2:11;break f}if(Wf(o[A+24>>2],i+16|0,i+48|0,i+32|0),De(o[A+24>>2],i))if(n=w[i+8>>2],a=m(n*n),n=w[i>>2],u=m(n*n),n=w[i+4>>2],(n=m(a+m(u+m(n*n))))>2],o[t>>2]=o[i>>2],o[t+4>>2]=l,l=o[i+12>>2],o[t+8>>2]=o[i+8>>2],o[t+12>>2]=l,l=6;else{if(!(m(c-n)<=m(c*m(1.1920928955078125e-7)))){if(Q=o[i+4>>2],o[t>>2]=o[i>>2],o[t+4>>2]=Q,Q=o[i+12>>2],o[t+8>>2]=o[i+8>>2],o[t+12>>2]=Q,Q=o[A+64>>2],o[A+64>>2]=Q+1,(0|Q)>1e3)break r;if(4==o[o[A+24>>2]>>2]){o[A+68>>2]=13;break r}c=n;continue}l=12,c=n}else l=3;break}o[A+68>>2]=l}if(fe(o[A+24>>2],i+240|0,i+224|0),l=o[t+12>>2],o[i+264>>2]=o[t+8>>2],o[i+268>>2]=l,l=o[t+4>>2],o[i+256>>2]=o[t>>2],o[i+260>>2]=l,n=w[A+12>>2],a=w[A+4>>2],b=w[A+8>>2],(u=m(m(n*n)+m(m(a*a)+m(b*b))))>2]=5),u>m(14210854715202004e-30)){u=m(m(1)/m(N(u))),w[i+256>>2]=u*w[i+256>>2],w[i+260>>2]=u*w[i+260>>2],w[i+264>>2]=u*w[i+264>>2],s=m(N(c)),c=m(h/s),w[i+240>>2]=w[i+240>>2]-m(c*a),w[i+244>>2]=w[i+244>>2]-m(c*b),w[i+248>>2]=w[i+248>>2]-m(c*n),c=m(B/s),w[i+224>>2]=m(c*a)+w[i+224>>2],w[i+228>>2]=m(c*b)+w[i+228>>2],w[i+232>>2]=m(c*n)+w[i+232>>2],l=1,o[A+60>>2]=1,n=m(m(m(1)/u)-G);break A}o[A+60>>2]=2}l=0,n=m(0)}J=1,Q=o[A+20>>2],!o[A+68>>2]|!o[A+72>>2]|!Q||(J=!(w[8296]>m(G+n)));A:{r:{if(!(!Q|l&J)){if(o[8533]=o[8533]+1,o[t+8>>2]=0,o[t+12>>2]=0,o[t>>2]=0,o[t+4>>2]=0,0|Zn[o[o[Q>>2]+8>>2]](Q,o[A+24>>2],o[A+28>>2],o[A+32>>2],i+160|0,i+96|0,t,i+80|0,i- -64|0,e)){if(u=m(0),a=w[i+72>>2],G=w[i+88>>2],h=m(a-G),s=w[i+64>>2],Z=w[i+80>>2],c=m(s-Z),d=w[i+68>>2],k=w[i+84>>2],B=m(d-k),(b=m(m(h*h)+m(m(c*c)+m(B*B))))<=m(14210854715202004e-30)&&(u=w[A+16>>2],h=w[A+12>>2],c=w[A+4>>2],B=w[A+8>>2],b=m(m(h*h)+m(m(c*c)+m(B*B)))),b>m(14210854715202004e-30)){if(o[A+60>>2]=3,a=m(G-a),W=m(a*a),a=m(Z-s),s=m(a*a),a=m(k-d),!(!((a=m(-m(N(m(W+m(s+m(a*a)))))))>2],o[i+248>>2]=o[i+88>>2],o[i+252>>2]=e,e=o[i+76>>2],o[i+232>>2]=o[i+72>>2],o[i+236>>2]=e,e=o[i+84>>2],o[i+240>>2]=o[i+80>>2],o[i+244>>2]=e,e=o[i+68>>2],o[i+224>>2]=o[i+64>>2],o[i+228>>2]=e,w[i+268>>2]=u,n=m(m(1)/m(N(b))),w[i+264>>2]=h*n,w[i+260>>2]=B*n,w[i+256>>2]=c*n,n=a;break r}o[A+60>>2]=8;break r}if(o[A+60>>2]=9,l)break r;break A}if(a=w[A+12>>2],b=w[A+4>>2],u=w[A+8>>2],m(m(a*a)+m(m(b*b)+m(u*u)))>m(0)){if(c=m(w[i+88>>2]-w[i+72>>2]),d=m(c*c),c=m(w[i+80>>2]-w[i+64>>2]),W=m(c*c),c=m(w[i+84>>2]-w[i+68>>2]),!(!((c=m(m(N(m(d+m(W+m(c*c)))))-G))>2],o[i+248>>2]=o[i+88>>2],o[i+252>>2]=e,e=o[i+76>>2],o[i+232>>2]=o[i+72>>2],o[i+236>>2]=e,w[i+248>>2]=w[i+248>>2]-m(h*a),w[i+232>>2]=m(B*a)+w[i+232>>2],e=o[i+68>>2],o[i+224>>2]=o[i+64>>2],o[i+228>>2]=e,e=o[i+84>>2],o[i+240>>2]=o[i+80>>2],o[i+244>>2]=e,w[i+224>>2]=m(B*b)+w[i+224>>2],w[i+228>>2]=m(B*u)+w[i+228>>2],w[i+240>>2]=w[i+240>>2]-m(h*b),w[i+244>>2]=w[i+244>>2]-m(h*u),e=o[t+12>>2],o[i+264>>2]=o[t+8>>2],o[i+268>>2]=e,e=o[t+4>>2],o[i+256>>2]=o[t>>2],o[i+260>>2]=e,a=w[i+264>>2],b=w[i+256>>2],u=w[i+260>>2],n=m(m(1)/m(N(m(m(a*a)+m(m(b*b)+m(u*u)))))),w[i+264>>2]=a*n,w[i+260>>2]=u*n,w[i+256>>2]=b*n,o[A+60>>2]=6,n=c;break r}o[A+60>>2]=5;break r}}if(!l)break A}n>2]>m(n*n)&&(e=o[i+260>>2],o[t>>2]=o[i+256>>2],o[t+4>>2]=e,e=o[i+268>>2],o[t+8>>2]=o[i+264>>2],o[t+12>>2]=e,w[A+56>>2]=n,u=w[r+32>>2],h=w[r>>2],B=w[r+16>>2],G=w[r+36>>2],s=w[r+4>>2],Z=w[r+20>>2],c=w[r+40>>2],a=w[r+8>>2],d=w[r+24>>2],o[i+92>>2]=0,W=c,c=w[i+264>>2],b=w[i+256>>2],k=m(a*b),a=w[i+260>>2],w[i+88>>2]=m(W*c)+m(k+m(d*a)),w[i+84>>2]=m(G*c)+m(m(s*b)+m(a*Z)),w[i+80>>2]=m(u*c)+m(m(h*b)+m(B*a)),u=w[r+96>>2],h=w[r+64>>2],B=w[r+80>>2],G=w[r+100>>2],s=w[r+68>>2],Z=w[r+84>>2],d=w[r+104>>2],k=w[r+72>>2],E=w[r+88>>2],o[i+76>>2]=0,b=m(-b),w[i+72>>2]=m(m(k*b)-m(E*a))-m(d*c),w[i+68>>2]=m(m(s*b)-m(Z*a))-m(G*c),w[i+64>>2]=m(m(h*b)-m(B*a))-m(u*c),t=i+80|0,NA(e=i+48|0,o[A+28>>2],t),Q=i- -64|0,NA(l=i+32|0,o[A+32>>2],Q),c=w[i+264>>2],x=w[i+216>>2],y=w[i+200>>2],M=w[i+192>>2],H=w[i+196>>2],I=w[i+152>>2],T=w[i+136>>2],U=w[i+128>>2],j=w[i+132>>2],z=w[i+208>>2],P=w[i+168>>2],O=w[i+160>>2],L=w[i+164>>2],$=w[i+144>>2],K=w[i+104>>2],q=w[i+96>>2],_=w[i+100>>2],AA=w[i+212>>2],rA=w[i+184>>2],u=w[i+56>>2],fA=w[i+176>>2],h=w[i+48>>2],eA=w[i+180>>2],B=w[i+52>>2],iA=w[i+148>>2],nA=w[i+120>>2],G=w[i+40>>2],aA=w[i+112>>2],s=w[i+32>>2],tA=w[i+116>>2],Z=w[i+36>>2],b=w[i+256>>2],a=w[i+260>>2],k=w[r+32>>2],E=w[r>>2],p=w[r+16>>2],F=w[r+36>>2],R=w[r+4>>2],Y=w[r+20>>2],V=w[r+40>>2],d=w[r+8>>2],g=w[r+24>>2],o[i+92>>2]=0,W=d,d=m(-b),w[i+88>>2]=m(m(W*d)-m(g*a))-m(V*c),w[i+84>>2]=m(m(R*d)-m(Y*a))-m(F*c),w[i+80>>2]=m(m(E*d)-m(p*a))-m(k*c),k=w[r+96>>2],E=w[r+64>>2],p=w[r+80>>2],F=w[r+100>>2],R=w[r+68>>2],Y=w[r+84>>2],V=w[r+104>>2],g=w[r+72>>2],W=w[r+88>>2],o[i+76>>2]=0,w[i+72>>2]=m(V*c)+m(m(g*b)+m(a*W)),w[i+68>>2]=m(F*c)+m(m(R*b)+m(a*Y)),w[i+64>>2]=m(k*c)+m(m(E*b)+m(a*p)),NA(e,o[A+28>>2],t),NA(l,o[A+32>>2],Q),Y=w[i+264>>2],b=w[i+56>>2],k=w[i+48>>2],E=w[i+52>>2],p=w[i+40>>2],F=w[i+32>>2],R=w[i+36>>2],W=m(Y*m(m(m(m(b*w[i+200>>2])+m(m(k*w[i+192>>2])+m(E*w[i+196>>2])))+w[i+216>>2])-m(m(m(p*w[i+136>>2])+m(m(F*w[i+128>>2])+m(R*w[i+132>>2])))+w[i+152>>2]))),V=w[i+256>>2],g=m(V*m(m(m(m(b*w[i+168>>2])+m(m(k*w[i+160>>2])+m(E*w[i+164>>2])))+w[i+208>>2])-m(m(m(p*w[i+104>>2])+m(m(F*w[i+96>>2])+m(R*w[i+100>>2])))+w[i+144>>2]))),k=m(m(m(m(b*w[i+184>>2])+m(m(k*w[i+176>>2])+m(E*w[i+180>>2])))+w[i+212>>2])-m(m(m(p*w[i+120>>2])+m(m(F*w[i+112>>2])+m(R*w[i+116>>2])))+w[i+148>>2])),b=w[i+260>>2],m(W+m(g+m(k*b)))>2]=10,w[i+264>>2]=-Y,w[i+260>>2]=-b,w[i+256>>2]=-V),o[i+92>>2]=0,w[i+88>>2]=D+w[i+232>>2],w[i+84>>2]=X+w[i+228>>2],w[i+80>>2]=C+w[i+224>>2],Zn[o[o[f>>2]+16>>2]](f,i+256|0,i+80|0,n))}S=i+272|0}function iA(A){var r,f=0,e=0,i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0;S=r=S-16|0;A:{r:{f:{e:{i:{n:{a:{t:{o:{c:{b:{u:{l:{s:{if((A|=0)>>>0<=244){if(3&(f=(t=o[8984])>>>(e=(c=A>>>0<11?16:A+11&-8)>>>3|0)|0)){f=35976+(A=(e=e+(1&~f)|0)<<3)|0,i=o[A+35984>>2],(0|f)!=(0|(A=o[i+8>>2]))?(o[A+12>>2]=f,o[f+8>>2]=A):(s=35936,k=Le(e)&t,o[s>>2]=k),A=i+8|0,f=e<<3,o[i+4>>2]=3|f,o[4+(f=f+i|0)>>2]=1|o[f+4>>2];break A}if((l=o[8986])>>>0>=c>>>0)break s;if(f){f=35976+(A=(i=si(0-(A=(0-(A=2<>2],(0|f)!=(0|(A=o[n+8>>2]))?(o[A+12>>2]=f,o[f+8>>2]=A):(t=Le(i)&t,o[8984]=t),o[n+4>>2]=3|c,i=(A=i<<3)-c|0,o[4+(e=n+c|0)>>2]=1|i,o[A+n>>2]=i,l&&(f=35976+(-8&l)|0,a=o[8989],(A=1<<(l>>>3))&t?A=o[f+8>>2]:(o[8984]=A|t,A=f),o[f+8>>2]=a,o[A+12>>2]=a,o[a+12>>2]=f,o[a+8>>2]=A),A=n+8|0,o[8989]=e,o[8986]=i;break A}if(!(u=o[8985]))break s;for(e=o[36240+(si(0-u&u)<<2)>>2],a=(-8&o[e+4>>2])-c|0,f=e;(A=o[f+16>>2])||(A=o[f+20>>2]);)a=(i=(f=(-8&o[A+4>>2])-c|0)>>>0>>0)?f:a,e=i?A:e,f=A;if(b=o[e+24>>2],(0|(i=o[e+12>>2]))!=(0|e)){A=o[e+8>>2],o[A+12>>2]=i,o[i+8>>2]=A;break r}if(!(A=o[(f=e+20|0)>>2])){if(!(A=o[e+16>>2]))break l;f=e+16|0}for(;n=f,i=A,(A=o[(f=A+20|0)>>2])||(f=i+16|0,A=o[i+16>>2]););o[n>>2]=0;break r}if(c=-1,!(A>>>0>4294967231)&&(c=-8&(A=A+11|0),u=o[8985])){a=0-c|0,t=0,c>>>0<256||(t=31,c>>>0>16777215||(t=62+((c>>>38-(A=E(A>>>8|0))&1)-(A<<1)|0)|0));k:{d:{if(f=o[36240+(t<<2)>>2])for(A=0,e=c<<(31!=(0|t)?25-(t>>>1|0):0);;){if(!((n=(-8&o[f+4>>2])-c|0)>>>0>=a>>>0||(i=f,a=n,n))){a=0,A=f;break d}if(n=o[f+20>>2],f=o[16+((e>>>29&4)+f|0)>>2],A=n?(0|n)==(0|f)?A:n:A,e<<=1,!f)break}else A=0;if(!(A|i)){if(i=0,!(A=(0-(A=2<>2]}if(!A)break k}for(;a=(e=(f=(-8&o[A+4>>2])-c|0)>>>0>>0)?f:a,i=e?A:i,A=(f=o[A+16>>2])||o[A+20>>2];);}if(!(!i|o[8986]-c>>>0<=a>>>0)){if(t=o[i+24>>2],(0|i)!=(0|(e=o[i+12>>2]))){A=o[i+8>>2],o[A+12>>2]=e,o[e+8>>2]=A;break f}if(!(A=o[(f=i+20|0)>>2])){if(!(A=o[i+16>>2]))break u;f=i+16|0}for(;n=f,e=A,(A=o[(f=A+20|0)>>2])||(f=e+16|0,A=o[e+16>>2]););o[n>>2]=0;break f}}}if((A=o[8986])>>>0>=c>>>0){i=o[8989],(f=A-c|0)>>>0>=16?(o[4+(e=i+c|0)>>2]=1|f,o[A+i>>2]=f,o[i+4>>2]=3|c):(o[i+4>>2]=3|A,o[4+(A=A+i|0)>>2]=1|o[A+4>>2],e=0,f=0),o[8986]=f,o[8989]=e,A=i+8|0;break A}if((b=o[8987])>>>0>c>>>0){f=b-c|0,o[8987]=f,A=(e=o[8990])+c|0,o[8990]=A,o[A+4>>2]=1|f,o[e+4>>2]=3|c,A=e+8|0;break A}if(A=0,u=c+47|0,o[9102]?e=o[9104]:(o[9105]=-1,o[9106]=-1,o[9103]=4096,o[9104]=4096,o[9102]=r+12&-16^1431655768,o[9107]=0,o[9095]=0,e=4096),(f=(n=u+e|0)&(a=0-e|0))>>>0<=c>>>0)break A;if((i=o[9094])&&i>>>0<(t=(e=o[9092])+f|0)>>>0|e>>>0>=t>>>0)break A;s:{if(!(4&v[36380])){k:{d:{v:{h:{if(i=o[8990])for(A=36384;;){if((e=o[A>>2])>>>0<=i>>>0&i>>>0>2]>>>0)break h;if(!(A=o[A+8>>2]))break}if(-1==(0|(e=we(0))))break k;if(t=f,(A=(i=o[9103])-1|0)&e&&(t=(f-e|0)+(A+e&0-i)|0),t>>>0<=c>>>0)break k;if((i=o[9094])&&i>>>0<(a=(A=o[9092])+t|0)>>>0|A>>>0>=a>>>0)break k;if((0|e)!=(0|(A=we(t))))break v;break s}if((0|(e=we(t=a&n-b)))==(o[A>>2]+o[A+4>>2]|0))break d;A=e}if(-1==(0|A))break k;if(c+48>>>0<=t>>>0){e=A;break s}if(-1==(0|we(e=(e=o[9104])+(u-t|0)&0-e)))break k;t=e+t|0,e=A;break s}if(-1!=(0|e))break s}o[9095]=4|o[9095]}if(-1==(0|(e=we(f)))|-1==(0|(A=we(0)))|A>>>0<=e>>>0)break o;if((t=A-e|0)>>>0<=c+40>>>0)break o}A=o[9092]+t|0,o[9092]=A,A>>>0>B[9093]&&(o[9093]=A);s:{if(n=o[8990]){for(A=36384;;){if(((i=o[A>>2])+(f=o[A+4>>2])|0)==(0|e))break s;if(!(A=o[A+8>>2]))break}break b}for((A=o[8988])>>>0<=e>>>0&&A||(o[8988]=e),A=0,o[9097]=t,o[9096]=e,o[8992]=-1,o[8993]=o[9102],o[9099]=0;f=35976+(i=A<<3)|0,o[i+35984>>2]=f,o[i+35988>>2]=f,32!=(0|(A=A+1|0)););f=(i=t-40|0)-(A=e+8&7?-8-e&7:0)|0,o[8987]=f,A=A+e|0,o[8990]=A,o[A+4>>2]=1|f,o[4+(e+i|0)>>2]=40,o[8991]=o[9106];break c}if(8&o[A+12>>2]|e>>>0<=n>>>0|i>>>0>n>>>0)break b;o[A+4>>2]=f+t,e=(A=n+8&7?-8-n&7:0)+n|0,o[8990]=e,A=(f=o[8987]+t|0)-A|0,o[8987]=A,o[e+4>>2]=1|A,o[4+(f+n|0)>>2]=40,o[8991]=o[9106];break c}i=0;break r}e=0;break f}B[8988]>e>>>0&&(o[8988]=e),f=e+t|0,A=36384;b:{u:{l:{for(;;){if((0|f)!=o[A>>2]){if(A=o[A+8>>2])continue;break l}break}if(!(8&v[A+12|0]))break u}for(A=36384;;){if((f=o[A>>2])>>>0<=n>>>0&&(a=f+o[A+4>>2]|0)>>>0>n>>>0)break b;A=o[A+8>>2]}}if(o[A>>2]=e,o[A+4>>2]=o[A+4>>2]+t,o[4+(u=(e+8&7?-8-e&7:0)+e|0)>>2]=3|c,A=(t=f+(f+8&7?-8-f&7:0)|0)-(b=c+u|0)|0,(0|n)==(0|t)){o[8990]=b,A=o[8987]+A|0,o[8987]=A,o[b+4>>2]=1|A;break e}if(o[8989]==(0|t)){o[8989]=b,A=o[8986]+A|0,o[8986]=A,o[b+4>>2]=1|A,o[A+b>>2]=A;break e}if(1!=(3&(a=o[t+4>>2])))break i;if(n=-8&a,a>>>0<=255){if((0|(e=o[t+12>>2]))==(0|(f=o[t+8>>2]))){s=35936,k=o[8984]&Le(a>>>3|0),o[s>>2]=k;break n}o[f+12>>2]=e,o[e+8>>2]=f;break n}if(c=o[t+24>>2],(0|t)!=(0|(e=o[t+12>>2]))){f=o[t+8>>2],o[f+12>>2]=e,o[e+8>>2]=f;break a}if(!(a=o[(f=t+20|0)>>2])){if(!(a=o[t+16>>2]))break t;f=t+16|0}for(;i=f,(a=o[(f=(e=a)+20|0)>>2])||(f=e+16|0,a=o[e+16>>2]););o[i>>2]=0;break a}for(f=(i=t-40|0)-(A=e+8&7?-8-e&7:0)|0,o[8987]=f,A=A+e|0,o[8990]=A,o[A+4>>2]=1|f,o[4+(e+i|0)>>2]=40,o[8991]=o[9106],o[(i=(A=(a+(a-39&7?39-a&7:0)|0)-47|0)>>>0>>0?n:A)+4>>2]=27,A=o[9099],o[i+16>>2]=o[9098],o[i+20>>2]=A,A=o[9097],o[i+8>>2]=o[9096],o[i+12>>2]=A,o[9098]=i+8,o[9097]=t,o[9096]=e,o[9099]=0,A=i+24|0;o[A+4>>2]=7,f=A+8|0,A=A+4|0,f>>>0>>0;);if((0|i)!=(0|n))if(o[i+4>>2]=-2&o[i+4>>2],a=i-n|0,o[n+4>>2]=1|a,o[i>>2]=a,a>>>0<=255)f=35976+(-8&a)|0,(e=o[8984])&(A=1<<(a>>>3))?A=o[f+8>>2]:(o[8984]=A|e,A=f),o[f+8>>2]=n,o[A+12>>2]=n,o[n+12>>2]=f,o[n+8>>2]=A;else{A=31,a>>>0<=16777215&&(A=62+((a>>>38-(A=E(a>>>8|0))&1)-(A<<1)|0)|0),o[n+28>>2]=A,o[n+16>>2]=0,o[n+20>>2]=0,f=36240+(A<<2)|0;b:{if((i=o[8985])&(e=1<>>1|0):0),i=o[f>>2];;){if((0|a)==(-8&o[(f=i)+4>>2]))break b;if(e=A>>>29|0,A<<=1,!(i=o[16+(e=(4&e)+f|0)>>2]))break}o[e+16>>2]=n}else o[8985]=e|i,o[f>>2]=n;o[n+24>>2]=f,o[n+12>>2]=n,o[n+8>>2]=n;break c}A=o[f+8>>2],o[A+12>>2]=n,o[f+8>>2]=n,o[n+24>>2]=0,o[n+12>>2]=f,o[n+8>>2]=A}}if(!((A=o[8987])>>>0<=c>>>0)){f=A-c|0,o[8987]=f,A=(e=o[8990])+c|0,o[8990]=A,o[A+4>>2]=1|f,o[e+4>>2]=3|c,A=e+8|0;break A}}o[8983]=48,A=0;break A}e=0}if(c){i=o[t+28>>2];a:{if(o[(f=36240+(i<<2)|0)>>2]==(0|t)){if(o[f>>2]=e,e)break a;s=35940,k=o[8985]&Le(i),o[s>>2]=k;break n}if(o[c+(o[c+16>>2]==(0|t)?16:20)>>2]=e,!e)break n}o[e+24>>2]=c,(f=o[t+16>>2])&&(o[e+16>>2]=f,o[f+24>>2]=e),(f=o[t+20>>2])&&(o[e+20>>2]=f,o[f+24>>2]=e)}}A=A+n|0,a=o[4+(t=n+t|0)>>2]}if(o[t+4>>2]=-2&a,o[b+4>>2]=1|A,o[A+b>>2]=A,A>>>0<=255)f=35976+(-8&A)|0,(e=o[8984])&(A=1<<(A>>>3))?A=o[f+8>>2]:(o[8984]=A|e,A=f),o[f+8>>2]=b,o[A+12>>2]=b,o[b+12>>2]=f,o[b+8>>2]=A;else{a=31,A>>>0<=16777215&&(a=62+((A>>>38-(f=E(A>>>8|0))&1)-(f<<1)|0)|0),o[b+28>>2]=a,o[b+16>>2]=0,o[b+20>>2]=0,f=36240+(a<<2)|0;i:{if((i=o[8985])&(e=1<>>1|0):0),e=o[f>>2];;){if(f=e,(-8&o[e+4>>2])==(0|A))break i;if(e=a>>>29|0,a<<=1,!(e=o[16+(i=(4&e)+f|0)>>2]))break}o[i+16>>2]=b}else o[8985]=e|i,o[f>>2]=b;o[b+24>>2]=f,o[b+12>>2]=b,o[b+8>>2]=b;break e}A=o[f+8>>2],o[A+12>>2]=b,o[f+8>>2]=b,o[b+24>>2]=0,o[b+12>>2]=f,o[b+8>>2]=A}}A=u+8|0;break A}f:if(t){f=o[i+28>>2];e:{if(o[(A=36240+(f<<2)|0)>>2]==(0|i)){if(o[A>>2]=e,e)break e;u=Le(f)&u,o[8985]=u;break f}if(o[t+(o[t+16>>2]==(0|i)?16:20)>>2]=e,!e)break f}o[e+24>>2]=t,(A=o[i+16>>2])&&(o[e+16>>2]=A,o[A+24>>2]=e),(A=o[i+20>>2])&&(o[e+20>>2]=A,o[A+24>>2]=e)}f:if(a>>>0<=15)A=a+c|0,o[i+4>>2]=3|A,o[4+(A=A+i|0)>>2]=1|o[A+4>>2];else if(o[i+4>>2]=3|c,o[4+(n=i+c|0)>>2]=1|a,o[n+a>>2]=a,a>>>0<=255)f=35976+(-8&a)|0,(e=o[8984])&(A=1<<(a>>>3))?A=o[f+8>>2]:(o[8984]=A|e,A=f),o[f+8>>2]=n,o[A+12>>2]=n,o[n+12>>2]=f,o[n+8>>2]=A;else{A=31,a>>>0<=16777215&&(A=62+((a>>>38-(A=E(a>>>8|0))&1)-(A<<1)|0)|0),o[n+28>>2]=A,o[n+16>>2]=0,o[n+20>>2]=0,f=36240+(A<<2)|0;e:{if((e=1<>>1|0):0),c=o[f>>2];;){if((-8&o[(f=c)+4>>2])==(0|a))break e;if(e=A>>>29|0,A<<=1,!(c=o[16+(e=(4&e)+f|0)>>2]))break}o[e+16>>2]=n}else o[8985]=e|u,o[f>>2]=n;o[n+24>>2]=f,o[n+12>>2]=n,o[n+8>>2]=n;break f}A=o[f+8>>2],o[A+12>>2]=n,o[f+8>>2]=n,o[n+24>>2]=0,o[n+12>>2]=f,o[n+8>>2]=A}A=i+8|0;break A}r:if(b){f=o[e+28>>2];f:{if(o[(A=36240+(f<<2)|0)>>2]==(0|e)){if(o[A>>2]=i,i)break f;s=35940,k=Le(f)&u,o[s>>2]=k;break r}if(o[b+(o[b+16>>2]==(0|e)?16:20)>>2]=i,!i)break r}o[i+24>>2]=b,(A=o[e+16>>2])&&(o[i+16>>2]=A,o[A+24>>2]=i),(A=o[e+20>>2])&&(o[i+20>>2]=A,o[A+24>>2]=i)}a>>>0<=15?(A=a+c|0,o[e+4>>2]=3|A,o[4+(A=A+e|0)>>2]=1|o[A+4>>2]):(o[e+4>>2]=3|c,o[4+(i=e+c|0)>>2]=1|a,o[i+a>>2]=a,l&&(f=35976+(-8&l)|0,n=o[8989],(A=1<<(l>>>3))&t?A=o[f+8>>2]:(o[8984]=A|t,A=f),o[f+8>>2]=n,o[A+12>>2]=n,o[n+12>>2]=f,o[n+8>>2]=A),o[8989]=i,o[8986]=a),A=e+8|0}return S=r+16|0,0|A}function nA(A,r,f,e,i,n){var t,c,b,u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=0,Z=m(0),Q=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=0,T=m(0),U=m(0),j=m(0);S=t=S-672|0,c=o[e+12>>2],b=o[e+4>>2];A:if((0|(I=o[b+4>>2]))<=19)w[t+644>>2]=n,o[t+640>>2]=0,o[t+472>>2]=13280,w[t+636>>2]=w[i+4>>2],a[t+444|0]=0,o[t+420>>2]=953267991,o[t+36>>2]=22800,o[20+(B=t+648|0)>>2]=0,o[B+16>>2]=b,o[B+12>>2]=A,o[B+8>>2]=t+36,o[B+4>>2]=t+112,o[B>>2]=22576,0|Zn[o[o[B>>2]+8>>2]](B,r,f,c,c,t+472|0)&&(l=w[t+612>>2],s=w[t+604>>2],h=w[t+608>>2],(u=m(m(l*l)+m(m(s*s)+m(h*h))))>m(9999999747378752e-20)&&(n=w[t+636>>2])>2]&&(u=m(m(1)/m(N(u))),w[t+612>>2]=l*u,w[t+608>>2]=h*u,w[t+604>>2]=s*u,o[t+60>>2]=b,o[t+68>>2]=o[e+8>>2],o[t+72>>2]=t+52,A=o[t+616>>2],o[t+84>>2]=o[t+612>>2],o[t+88>>2]=A,f=o[t+604>>2],r=o[t+608>>2],A=o[t+632>>2],o[t+100>>2]=o[t+628>>2],o[t+104>>2]=A,o[t+76>>2]=f,o[t+80>>2]=r,A=o[t+624>>2],o[t+92>>2]=o[t+620>>2],o[t+96>>2]=A,w[t+108>>2]=n,m(Zn[o[o[i>>2]+12>>2]](i,t+68|0,1))));else if((B=I-21|0)>>>0<=8){switch(0|B){case 0:E=w[c+20>>2],W=w[c+36>>2],Z=w[c+52>>2],p=w[c+24>>2],Q=w[c+56>>2],F=w[c+40>>2],D=w[c+32>>2],C=w[c>>2],J=w[c+16>>2],x=w[c+4>>2],y=w[c+8>>2],u=w[c+48>>2],d=w[r+52>>2],k=w[r+56>>2],l=w[r+48>>2],o[t+80>>2]=0,u=m(-u),s=m(m(m(y*u)-m(p*Z))-m(F*Q)),w[t+76>>2]=s+m(m(k*F)+m(m(l*y)+m(p*d))),h=m(m(m(x*u)-m(E*Z))-m(W*Q)),w[t+72>>2]=h+m(m(k*W)+m(m(l*x)+m(E*d))),u=m(m(m(C*u)-m(J*Z))-m(D*Q)),w[t+68>>2]=u+m(m(k*D)+m(m(l*C)+m(J*d))),d=w[f+52>>2],k=w[f+56>>2],l=w[f+48>>2],o[t+660>>2]=0,w[t+656>>2]=s+m(m(k*F)+m(m(l*y)+m(p*d))),w[t+652>>2]=h+m(m(k*W)+m(m(l*x)+m(E*d))),w[t+648>>2]=u+m(m(k*D)+m(m(l*C)+m(J*d))),M=w[f+20>>2],Z=w[f+36>>2],Q=w[f+24>>2],d=w[f+40>>2],k=w[f+32>>2],l=w[f>>2],s=w[f+16>>2],h=w[f+4>>2],u=w[f+8>>2],o[t+516>>2]=0,o[t+520>>2]=0,o[t+500>>2]=0,o[t+524>>2]=0,o[t+528>>2]=0,o[t+532>>2]=0,w[t+512>>2]=m(d*F)+m(m(u*y)+m(p*Q)),w[t+508>>2]=m(Z*F)+m(m(h*y)+m(p*M)),w[t+496>>2]=m(d*W)+m(m(u*x)+m(E*Q)),w[t+492>>2]=m(Z*W)+m(m(h*x)+m(E*M)),o[t+484>>2]=0,w[t+504>>2]=m(k*F)+m(m(l*y)+m(p*s)),w[t+488>>2]=m(k*W)+m(m(l*x)+m(E*s)),w[t+480>>2]=m(d*D)+m(m(u*C)+m(J*Q)),w[t+476>>2]=m(Z*D)+m(m(h*C)+m(J*M)),w[t+472>>2]=m(k*D)+m(m(l*C)+m(J*s)),e=o[e+8>>2],r=mr(t+112|0,A,r,f,c,m(Zn[o[o[b>>2]+48>>2]](b))),o[r+220>>2]=b,o[r+216>>2]=e,o[r+212>>2]=i,o[r>>2]=13880,u=w[i+4>>2],w[r+208>>2]=n,w[r+200>>2]=u,i=t+52|0,e=t+36|0,Zn[o[o[A>>2]+8>>2]](A,t+472|0,i,e),S=I=S-16|0,A=o[b+56>>2],o[I+12>>2]=r,o[I+8>>2]=A,o[I+4>>2]=18948,f=I+4|0,r=t+68|0,A=t+648|0,B=o[b+60>>2],v[B+60|0]?MA(B,f,r,A,i,e,o[B+56>>2]):KA(B,f,r,A,i,e),S=I+16|0;break A;case 7:w[t+284>>2]=n,o[t+280>>2]=0,o[t+112>>2]=13280,w[t+276>>2]=w[i+4>>2],o[20+(B=t+68|0)>>2]=b,o[B+16>>2]=0,o[B+12>>2]=A,o[B+4>>2]=0,o[B+8>>2]=0,o[B>>2]=22576,0|Zn[o[o[B>>2]+8>>2]](B,r,f,c,c,t+112|0)&&(l=w[t+252>>2],s=w[t+244>>2],h=w[t+248>>2],(u=m(m(l*l)+m(m(s*s)+m(h*h))))>m(9999999747378752e-20)&&(n=w[t+276>>2])>2]&&(u=m(m(1)/m(N(u))),w[t+252>>2]=l*u,w[t+248>>2]=h*u,w[t+244>>2]=s*u,o[t+656>>2]=b,o[t+472>>2]=o[e+8>>2],o[t+476>>2]=t+648,A=o[t+256>>2],o[t+488>>2]=o[t+252>>2],o[t+492>>2]=A,f=o[t+244>>2],r=o[t+248>>2],A=o[t+272>>2],o[t+504>>2]=o[t+268>>2],o[t+508>>2]=A,o[t+480>>2]=f,o[t+484>>2]=r,A=o[t+264>>2],o[t+496>>2]=o[t+260>>2],o[t+500>>2]=A,w[t+512>>2]=n,m(Zn[o[o[i>>2]+12>>2]](i,t+472|0,1))));break A}E=w[r+52>>2],W=w[r+56>>2],p=w[c+52>>2],F=w[c+56>>2],D=w[f+52>>2],C=w[f+56>>2],T=w[c+20>>2],U=w[c+36>>2],j=w[c+24>>2],H=w[c+40>>2],J=w[r+48>>2],h=w[c+48>>2],x=w[f+48>>2],R=w[c+32>>2],Y=w[c>>2],V=w[c+16>>2],g=w[c+4>>2],X=w[c+8>>2],y=w[f+20>>2],M=w[f+36>>2],Z=w[f+24>>2],Q=w[f+40>>2],d=w[f+32>>2],k=w[f>>2],l=w[f+16>>2],s=w[f+4>>2],u=w[f+8>>2],o[t+516>>2]=0,o[t+520>>2]=0,o[t+500>>2]=0,o[t+524>>2]=0,o[t+528>>2]=0,o[t+532>>2]=0,w[t+512>>2]=m(Q*H)+m(m(u*X)+m(j*Z)),w[t+508>>2]=m(M*H)+m(m(s*X)+m(j*y)),w[t+496>>2]=m(Q*U)+m(m(u*g)+m(T*Z)),w[t+492>>2]=m(M*U)+m(m(s*g)+m(T*y)),o[t+484>>2]=0,w[t+504>>2]=m(d*H)+m(m(k*X)+m(j*l)),w[t+488>>2]=m(d*U)+m(m(k*g)+m(T*l)),w[t+480>>2]=m(Q*R)+m(m(u*Y)+m(V*Z)),w[t+476>>2]=m(M*R)+m(m(s*Y)+m(V*y)),w[t+472>>2]=m(d*R)+m(m(k*Y)+m(V*l)),e=o[e+8>>2],r=mr(t+112|0,A,r,f,c,m(Zn[o[o[b>>2]+48>>2]](b))),o[r+220>>2]=b,o[r+216>>2]=e,o[r+212>>2]=i,o[r>>2]=14092,u=w[i+4>>2],w[r+208>>2]=n,w[r+200>>2]=u,Zn[o[o[A>>2]+8>>2]](A,t+472|0,t+68|0,t+648|0),o[t+64>>2]=0,n=m(-h),s=m(m(m(X*n)-m(j*p))-m(H*F)),u=m(m(m(g*n)-m(T*p))-m(U*F)),k=m(u+m(m(C*U)+m(m(x*g)+m(T*D)))),n=m(m(m(Y*n)-m(V*p))-m(R*F)),h=Z=m(n+m(m(W*R)+m(m(J*Y)+m(V*E)))),(l=m(n+m(m(C*R)+m(m(x*Y)+m(V*D)))))>2]=l,h=l),k<(u=d=m(u+m(m(W*U)+m(m(J*g)+m(T*E)))))&&(w[t+56>>2]=k,u=k),n=Q=m(s+m(m(W*H)+m(m(J*X)+m(j*E)))),(s=m(s+m(m(C*H)+m(m(x*X)+m(j*D)))))>2]=s,n=s),o[t+48>>2]=0,w[t+52>>2]=w[t+68>>2]+h,w[t+56>>2]=w[t+72>>2]+u,w[t+60>>2]=w[t+76>>2]+n,w[t+36>>2]=w[t+648>>2]+(l>Z?l:Z),w[t+40>>2]=w[t+652>>2]+(k>d?k:d),w[t+44>>2]=w[t+656>>2]+(s>Q?s:Q),Zn[o[o[b>>2]+64>>2]](b,r,t+52|0,t+36|0)}else if(31==(0|I)){Zn[o[8294]](7860),F=w[c+52>>2],D=w[c+56>>2],C=w[r+52>>2],J=w[r+56>>2],H=w[c+20>>2],R=w[c+36>>2],x=w[r+20>>2],y=w[r+36>>2],M=w[r+24>>2],Y=w[c+24>>2],Z=w[r+40>>2],V=w[c+40>>2],g=w[c+32>>2],X=w[c>>2],E=w[c+16>>2],Q=w[r+32>>2],d=w[r>>2],k=w[r+16>>2],u=w[c+48>>2],l=w[r+48>>2],W=w[c+4>>2],s=w[r+4>>2],h=w[r+8>>2],p=w[c+8>>2],o[t+172>>2]=0,o[t+156>>2]=0,o[t+140>>2]=0,w[t+152>>2]=m(Z*V)+m(m(h*p)+m(Y*M)),w[t+148>>2]=m(y*V)+m(m(s*p)+m(Y*x)),w[t+136>>2]=m(Z*R)+m(m(h*W)+m(H*M)),w[t+132>>2]=m(y*R)+m(m(s*W)+m(H*x)),u=m(-u),w[t+168>>2]=m(m(m(p*u)-m(Y*F))-m(V*D))+m(m(J*V)+m(m(l*p)+m(Y*C))),w[t+164>>2]=m(m(m(W*u)-m(H*F))-m(R*D))+m(m(J*R)+m(m(l*W)+m(H*C))),o[t+124>>2]=0,w[t+144>>2]=m(Q*V)+m(m(d*p)+m(Y*k)),w[t+128>>2]=m(Q*R)+m(m(d*W)+m(H*k)),w[t+120>>2]=m(Z*g)+m(m(h*X)+m(E*M)),w[t+116>>2]=m(y*g)+m(m(s*X)+m(E*x)),w[t+112>>2]=m(Q*g)+m(m(d*X)+m(E*k)),w[t+160>>2]=m(m(m(X*u)-m(E*F))-m(g*D))+m(m(J*g)+m(m(l*X)+m(E*C))),B=t+112|0,Zn[o[o[A>>2]+8>>2]](A,B,t+52|0,t+36|0),F=w[c+52>>2],D=w[c+56>>2],C=w[f+52>>2],J=w[f+56>>2],H=w[c+20>>2],R=w[c+36>>2],x=w[f+20>>2],y=w[f+36>>2],M=w[f+24>>2],Y=w[c+24>>2],Z=w[f+40>>2],V=w[c+40>>2],g=w[c+32>>2],X=w[c>>2],E=w[c+16>>2],Q=w[f+32>>2],d=w[f>>2],k=w[f+16>>2],u=w[c+48>>2],l=w[f+48>>2],W=w[c+4>>2],s=w[f+4>>2],h=w[f+8>>2],p=w[c+8>>2],o[t+172>>2]=0,o[t+156>>2]=0,o[t+140>>2]=0,w[t+152>>2]=m(Z*V)+m(m(h*p)+m(Y*M)),w[t+148>>2]=m(y*V)+m(m(s*p)+m(Y*x)),w[t+136>>2]=m(Z*R)+m(m(h*W)+m(H*M)),w[t+132>>2]=m(y*R)+m(m(s*W)+m(H*x)),u=m(-u),w[t+168>>2]=m(m(m(p*u)-m(Y*F))-m(V*D))+m(m(J*V)+m(m(l*p)+m(Y*C))),w[t+164>>2]=m(m(m(W*u)-m(H*F))-m(R*D))+m(m(J*R)+m(m(l*W)+m(H*C))),o[t+124>>2]=0,w[t+144>>2]=m(Q*V)+m(m(d*p)+m(Y*k)),w[t+128>>2]=m(Q*R)+m(m(d*W)+m(H*k)),w[t+120>>2]=m(Z*g)+m(m(h*X)+m(E*M)),w[t+116>>2]=m(y*g)+m(m(s*X)+m(E*x)),w[t+112>>2]=m(Q*g)+m(m(d*X)+m(E*k)),w[t+160>>2]=m(m(m(X*u)-m(E*F))-m(g*D))+m(m(J*g)+m(m(l*X)+m(E*C))),Zn[o[o[A>>2]+8>>2]](A,B,t+16|0,t),(u=w[t+16>>2])>2]&&(w[t+52>>2]=u),(u=w[t+20>>2])>2]&&(w[t+56>>2]=u),(u=w[t+24>>2])>2]&&(w[t+60>>2]=u),(u=w[t+28>>2])>2]&&(w[t+64>>2]=u),(u=w[t>>2])>w[t+36>>2]&&(w[t+36>>2]=u),(u=w[t+4>>2])>w[t+40>>2]&&(w[t+40>>2]=u),(u=w[t+8>>2])>w[t+44>>2]&&(w[t+44>>2]=u),(u=w[t+12>>2])>w[t+48>>2]&&(w[t+48>>2]=u),o[t+504>>2]=i,o[t+500>>2]=c,w[t+492>>2]=n,o[t+488>>2]=f,o[t+484>>2]=r,o[t+480>>2]=A,o[t+476>>2]=e,o[t+472>>2]=14308,o[t+496>>2]=b;r:if(r=o[b+72>>2])A=o[t+64>>2],o[t+120>>2]=o[t+60>>2],o[t+124>>2]=A,A=o[t+48>>2],o[t+136>>2]=o[t+44>>2],o[t+140>>2]=A,A=o[t+40>>2],o[t+128>>2]=o[t+36>>2],o[t+132>>2]=A,A=o[t+56>>2],o[t+112>>2]=o[t+52>>2],o[t+116>>2]=A,ar(o[r>>2],t+112|0,t+472|0);else{if(o[b+24>>2]<=0)break r;for(f=0;A=o[b+32>>2]+G(f,80)|0,e=o[A+64>>2],D=w[A+48>>2],C=w[A+52>>2],J=w[A+56>>2],x=w[A>>2],y=w[A+16>>2],M=w[A+32>>2],Z=w[A+4>>2],Q=w[A+20>>2],d=w[A+36>>2],k=w[A+8>>2],l=w[A+24>>2],s=w[A+40>>2],A=o[t+500>>2],h=w[A+52>>2],u=w[A+56>>2],R=w[A+20>>2],Y=w[A+24>>2],V=w[A+36>>2],g=w[A+40>>2],n=w[A+48>>2],X=w[A+8>>2],E=w[A>>2],W=w[A+4>>2],p=w[A+16>>2],F=w[A+32>>2],o[t+172>>2]=0,o[t+156>>2]=0,o[t+140>>2]=0,o[t+124>>2]=0,w[t+152>>2]=m(s*g)+m(m(k*F)+m(l*V)),w[t+148>>2]=m(d*g)+m(m(Z*F)+m(Q*V)),w[t+144>>2]=m(M*g)+m(m(x*F)+m(y*V)),w[t+136>>2]=m(s*Y)+m(m(k*p)+m(l*R)),w[t+132>>2]=m(d*Y)+m(m(Z*p)+m(Q*R)),w[t+128>>2]=m(M*Y)+m(m(x*p)+m(y*R)),w[t+120>>2]=m(s*X)+m(m(k*E)+m(l*W)),w[t+116>>2]=m(d*X)+m(m(Z*E)+m(Q*W)),w[t+112>>2]=m(M*X)+m(m(x*E)+m(y*W)),w[t+168>>2]=u+m(m(J*g)+m(m(D*F)+m(C*V))),w[t+164>>2]=h+m(m(J*Y)+m(m(D*p)+m(C*R))),w[t+160>>2]=n+m(m(J*X)+m(m(D*E)+m(C*W))),o[t+80>>2]=-1,o[t+84>>2]=0,o[t+72>>2]=1065353216,o[t+76>>2]=1,o[t+96>>2]=f,A=o[t+504>>2],o[t+92>>2]=A,o[t+88>>2]=e,o[t+68>>2]=14524,w[t+72>>2]=w[A+4>>2],r=o[t+476>>2],A=o[r+8>>2],o[t+668>>2]=f,o[t+664>>2]=-1,o[t+656>>2]=A,o[t+652>>2]=e,o[t+648>>2]=r,o[t+660>>2]=t+112,nA(o[t+480>>2],o[t+484>>2],o[t+488>>2],t+648|0,t+68|0,w[t+492>>2]),(0|(f=f+1|0))>2];);}Zn[o[8295]]()}S=t+672|0}function aA(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n,t,c,b=0,u=0,l=0,s=0,k=m(0),d=0,h=m(0),B=m(0),Z=m(0),Q=m(0),E=m(0),W=0,N=0,p=m(0),F=m(0),R=m(0),Y=0,V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=m(0),j=m(0),z=m(0);if(S=n=S-176|0,l=v[A+68|0],t=o[(c=l?f:r)+4>>2],o[t+76>>2]!=o[A+80>>2]){if((0|(s=o[A+52>>2]))>0)for(;(u=o[(N=b<<2)+o[A+60>>2]>>2])&&(Zn[o[o[u>>2]>>2]](u),u=o[A+4>>2],Zn[o[o[u>>2]+60>>2]](u,o[N+o[A+60>>2]>>2])),(0|s)!=(0|(b=b+1|0)););dr(A,r,f),o[A+80>>2]=o[t+76>>2]}if(u=o[A+52>>2]){if(s=o[t+72>>2],b=o[A+60>>2],N=o[A+4>>2],o[n+172>>2]=o[A+72>>2],o[n+168>>2]=b,o[n+164>>2]=i,o[n+160>>2]=e,o[n+156>>2]=N,N=l?r:f,o[n+152>>2]=N,o[n+148>>2]=c,o[n+144>>2]=16388,(0|(r=o[A+32>>2]))<0){if(o[A+36>>2]<0&&(!(f=o[A+40>>2])||!f|!v[A+44|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),a[A+44|0]=1,o[A+36>>2]=0,o[A+40>>2]=0),u=0,b=r,f=0-r&3)for(;o[o[A+40>>2]+(b<<2)>>2]=0,b=b+1|0,(0|f)!=(0|(u=u+1|0)););if(r>>>0<=4294967292)for(;o[(r=b<<2)+o[A+40>>2]>>2]=0,o[4+(r+o[A+40>>2]|0)>>2]=0,o[8+(r+o[A+40>>2]|0)>>2]=0,o[12+(r+o[A+40>>2]|0)>>2]=0,b=b+4|0;);u=o[A+52>>2]}if(o[A+32>>2]=0,(0|u)>0)for(l=A+28|0,r=0;;){if(f=o[o[A+60>>2]+(r<<2)>>2]){if(Zn[o[o[f>>2]+16>>2]](f,l),b=0,(0|(f=o[A+32>>2]))>0)for(;e=o[o[A+40>>2]+(b<<2)>>2],o[e+844>>2]&&(o[i+4>>2]=e,f=(0|(u=o[e+836>>2]))==(0|(W=o[o[i+8>>2]+8>>2])),d=e,e=o[o[i+12>>2]+8>>2],OA(d,(f?u:e)+4|0,(f?e:W)+4|0),o[i+4>>2]=0,f=o[A+32>>2]),(0|(b=b+1|0))<(0|f););if(!((0|f)>=0)){if(o[A+36>>2]<0&&(!(e=o[A+40>>2])||!e|!v[A+44|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),a[A+44|0]=1,o[A+36>>2]=0,o[A+40>>2]=0),u=0,b=f,e=0-f&3)for(;o[o[A+40>>2]+(b<<2)>>2]=0,b=b+1|0,(0|e)!=(0|(u=u+1|0)););if(!(f>>>0>4294967292))for(;o[(f=b<<2)+o[A+40>>2]>>2]=0,o[4+(f+o[A+40>>2]|0)>>2]=0,o[8+(f+o[A+40>>2]|0)>>2]=0,o[12+(f+o[A+40>>2]|0)>>2]=0,b=b+4|0;);}o[A+32>>2]=0,u=o[A+52>>2]}if(!((0|u)>(0|(r=r+1|0))))break}A:if(s){if(r=o[c+12>>2],V=w[r+52>>2],g=w[r+56>>2],f=o[N+12>>2],X=w[f+52>>2],D=w[f+56>>2],k=w[r+20>>2],h=w[r+36>>2],C=w[f+20>>2],J=w[f+36>>2],x=w[f+24>>2],B=w[r+24>>2],y=w[f+40>>2],Z=w[r+40>>2],M=w[f+32>>2],Q=w[r+32>>2],H=w[f>>2],E=w[r>>2],I=w[f+16>>2],p=w[r+16>>2],T=w[r+48>>2],U=w[f+48>>2],F=w[r+4>>2],j=w[f+4>>2],z=w[f+8>>2],R=w[r+8>>2],o[n+108>>2]=0,o[n+92>>2]=0,o[n+76>>2]=0,w[n+88>>2]=m(y*Z)+m(m(z*R)+m(B*x)),w[n+84>>2]=m(J*Z)+m(m(j*R)+m(B*C)),w[n+72>>2]=m(y*h)+m(m(z*F)+m(k*x)),w[n+68>>2]=m(J*h)+m(m(j*F)+m(k*C)),T=m(-T),w[n+104>>2]=m(m(m(R*T)-m(B*V))-m(Z*g))+m(m(D*Z)+m(m(U*R)+m(B*X))),w[n+100>>2]=m(m(m(F*T)-m(k*V))-m(h*g))+m(m(D*h)+m(m(U*F)+m(k*X))),o[n+60>>2]=0,w[n+48>>2]=m(M*Q)+m(m(H*E)+m(p*I)),w[n+80>>2]=m(M*Z)+m(m(H*R)+m(B*I)),w[n+64>>2]=m(M*h)+m(m(H*F)+m(k*I)),w[n+56>>2]=m(y*Q)+m(m(z*E)+m(p*x)),w[n+52>>2]=m(J*Q)+m(m(j*E)+m(p*C)),w[n+96>>2]=m(m(m(E*T)-m(p*V))-m(Q*g))+m(m(D*Q)+m(m(U*E)+m(p*X))),r=o[N+4>>2],Zn[o[o[r>>2]+8>>2]](r,n+48|0,n+128|0,n+112|0),k=w[i+32>>2],w[n+136>>2]=w[n+136>>2]-k,w[n+120>>2]=k+w[n+120>>2],w[n+128>>2]=w[n+128>>2]-k,w[n+132>>2]=w[n+132>>2]-k,w[n+112>>2]=k+w[n+112>>2],w[n+116>>2]=k+w[n+116>>2],r=o[n+140>>2],o[n+24>>2]=o[n+136>>2],o[n+28>>2]=r,r=o[n+124>>2],o[n+40>>2]=o[n+120>>2],o[n+44>>2]=r,r=o[n+116>>2],o[n+32>>2]=o[n+112>>2],o[n+36>>2]=r,r=o[n+132>>2],o[n+16>>2]=o[n+128>>2],o[n+20>>2]=r,f=0,l=0,u=o[s>>2]){if(e=o[A+16>>2],k=w[n+40>>2],h=w[n+36>>2],B=w[n+32>>2],Z=w[n+24>>2],Q=w[n+20>>2],E=w[n+16>>2],!((0|(i=o[A+12>>2]))>=0)){if((0|e)<0&&(!(r=o[A+20>>2])||!r|!v[A+24|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+24|0]=1,o[A+16>>2]=0,o[A+20>>2]=0,e=0),b=0-(r=i)&3)for(;o[o[A+20>>2]+(r<<2)>>2]=0,r=r+1|0,(0|b)!=(0|(f=f+1|0)););if(!(i>>>0>4294967292))for(;o[(f=r<<2)+o[A+20>>2]>>2]=0,o[4+(f+o[A+20>>2]|0)>>2]=0,o[8+(f+o[A+20>>2]|0)>>2]=0,o[12+(f+o[A+20>>2]|0)>>2]=0,r=r+4|0;);}if(i=0,o[A+12>>2]=0,(0|e)<=63){if(o[8488]=o[8488]+1,f=0|Zn[o[8290]](256,16),!((0|(i=o[A+12>>2]))<=0)){if(e=0,r=0,i>>>0>=4)for(s=-4&i;o[(b=r<<2)+f>>2]=o[b+o[A+20>>2]>>2],o[(W=4|b)+f>>2]=o[W+o[A+20>>2]>>2],o[(W=8|b)+f>>2]=o[W+o[A+20>>2]>>2],o[(b|=12)+f>>2]=o[b+o[A+20>>2]>>2],r=r+4|0,(0|s)!=(0|(l=l+4|0)););if(b=3&i)for(;o[(s=r<<2)+f>>2]=o[s+o[A+20>>2]>>2],r=r+1|0,(0|b)!=(0|(e=e+1|0)););}!(r=o[A+20>>2])|!v[A+24|0]||(r&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),i=o[A+12>>2]),o[A+20>>2]=f,a[A+24|0]=1,o[A+16>>2]=64,e=64}if(W=n+144|0,(0|e)==(0|i))if((0|(s=e<<1))<=(0|e))i=e;else{r=0;r:{if(e){if(o[8488]=o[8488]+1,f=0|Zn[o[8290]](e<<3,16),(0|(i=o[A+12>>2]))<=0)break r}else f=0,i=e;if(i-1>>>0>=3)for(l=-4&i,e=0;o[(b=r<<2)+f>>2]=o[b+o[A+20>>2]>>2],o[(Y=4|b)+f>>2]=o[Y+o[A+20>>2]>>2],o[(Y=8|b)+f>>2]=o[Y+o[A+20>>2]>>2],o[(b|=12)+f>>2]=o[b+o[A+20>>2]>>2],r=r+4|0,(0|l)!=(0|(e=e+4|0)););if(b=3&i)for(e=0;o[(l=r<<2)+f>>2]=o[l+o[A+20>>2]>>2],r=r+1|0,(0|b)!=(0|(e=e+1|0)););}!(r=o[A+20>>2])|!v[A+24|0]||(r&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),i=o[A+12>>2]),o[A+20>>2]=f,a[A+24|0]=1,o[A+16>>2]=s}for(o[o[A+20>>2]+(i<<2)>>2]=u,r=i+1|0;;){if(e=o[A+20>>2],s=o[e+((f=r-1|0)<<2)>>2],o[A+12>>2]=f,B>=w[s>>2])if(E<=w[s+16>>2])if(h>=w[s+4>>2])if(Q<=w[s+20>>2])if(k>=w[s+8>>2])if(Z<=w[s+24>>2])if(o[s+40>>2]){if((0|(b=o[A+16>>2]))==(0|f))if((0|(b=f?f<<1:1))<(0|r))b=f;else{if(b?(o[8488]=o[8488]+1,e=0|Zn[o[8290]](b<<2,16),f=o[A+12>>2]):e=0,!((0|f)<=0)){if(u=0,r=0,f>>>0>=4)for(Y=-4&f,i=0;o[(l=r<<2)+e>>2]=o[l+o[A+20>>2]>>2],o[(d=4|l)+e>>2]=o[d+o[A+20>>2]>>2],o[(d=8|l)+e>>2]=o[d+o[A+20>>2]>>2],o[(l|=12)+e>>2]=o[l+o[A+20>>2]>>2],r=r+4|0,(0|Y)!=(0|(i=i+4|0)););if(i=3&f)for(;o[(l=r<<2)+e>>2]=o[l+o[A+20>>2]>>2],r=r+1|0,(0|i)!=(0|(u=u+1|0)););}!(r=o[A+20>>2])|!v[A+24|0]||(r&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),f=o[A+12>>2]),o[A+20>>2]=e,a[A+24|0]=1,o[A+16>>2]=b}if(o[(f<<2)+e>>2]=o[s+36>>2],u=f+1|0,o[A+12>>2]=u,(0|b)==(0|u))if((0|(i=b?b<<1:1))<=(0|b))u=b;else{if(i?(o[8488]=o[8488]+1,f=0|Zn[o[8290]](i<<2,16),b=o[A+12>>2]):f=0,u=b,!((0|b)<=0)){if(l=0,r=0,u>>>0>=4)for(Y=-4&u,b=0;o[(e=r<<2)+f>>2]=o[e+o[A+20>>2]>>2],o[(d=4|e)+f>>2]=o[d+o[A+20>>2]>>2],o[(d=8|e)+f>>2]=o[d+o[A+20>>2]>>2],o[(e|=12)+f>>2]=o[e+o[A+20>>2]>>2],r=r+4|0,(0|Y)!=(0|(b=b+4|0)););if(e=3&u)for(;o[(b=r<<2)+f>>2]=o[b+o[A+20>>2]>>2],r=r+1|0,(0|e)!=(0|(l=l+1|0)););}!(r=o[A+20>>2])|!v[A+24|0]||(r&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),u=o[A+12>>2]),o[A+20>>2]=f,a[A+24|0]=1,o[A+16>>2]=i}o[o[A+20>>2]+(u<<2)>>2]=o[s+40>>2],r=u+1|0,o[A+12>>2]=r}else Zn[o[o[W>>2]+12>>2]](W,s),r=o[A+12>>2];else r=f;else r=f;else r=f;else r=f;else r=f;else r=f;if(!((0|r)>0))break}}}else{if((0|u)<=0)break A;for(b=0;zA(n+144|0,o[64+(o[t+32>>2]+G(b,80)|0)>>2],b),(0|u)!=(0|(b=b+1|0)););}if(s=o[A+52>>2],!((0|(r=o[A+32>>2]))>=0)){if(o[A+36>>2]<0&&(!(f=o[A+40>>2])||!f|!v[A+44|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),a[A+44|0]=1,o[A+36>>2]=0,o[A+40>>2]=0),u=0,b=r,f=0-r&3)for(;o[o[A+40>>2]+(b<<2)>>2]=0,b=b+1|0,(0|f)!=(0|(u=u+1|0)););if(!(r>>>0>4294967292))for(;o[(r=b<<2)+o[A+40>>2]>>2]=0,o[4+(r+o[A+40>>2]|0)>>2]=0,o[8+(r+o[A+40>>2]|0)>>2]=0,o[12+(r+o[A+40>>2]|0)>>2]=0,b=b+4|0;);}if(o[A+32>>2]=0,!((0|s)<=0))for(i=0;o[(e=i<<2)+o[A+60>>2]>>2]&&(r=o[t+32>>2]+G(i,80)|0,b=o[r+64>>2],f=o[c+12>>2],j=w[f+52>>2],z=w[f+56>>2],V=w[r+48>>2],g=w[r+52>>2],X=w[r+56>>2],D=w[r+4>>2],C=w[r+20>>2],J=w[r+36>>2],x=w[r+8>>2],y=w[r+24>>2],M=w[r+40>>2],k=w[f+20>>2],h=w[f+24>>2],H=w[r>>2],I=w[r+16>>2],B=w[f+36>>2],U=w[r+32>>2],Z=w[f+40>>2],T=w[f+48>>2],Q=w[f+8>>2],E=w[f>>2],p=w[f+4>>2],F=w[f+16>>2],R=w[f+32>>2],u=0,o[n+108>>2]=0,o[n+92>>2]=0,o[n+76>>2]=0,o[n+60>>2]=0,w[n+80>>2]=m(U*Z)+m(m(H*R)+m(B*I)),w[n+64>>2]=m(U*h)+m(m(H*F)+m(k*I)),w[n+48>>2]=m(U*Q)+m(m(H*E)+m(p*I)),w[n+88>>2]=m(M*Z)+m(m(x*R)+m(B*y)),w[n+84>>2]=m(J*Z)+m(m(D*R)+m(B*C)),w[n+72>>2]=m(M*h)+m(m(x*F)+m(k*y)),w[n+68>>2]=m(J*h)+m(m(D*F)+m(k*C)),w[n+56>>2]=m(M*Q)+m(m(x*E)+m(p*y)),w[n+52>>2]=m(J*Q)+m(m(D*E)+m(p*C)),w[n+104>>2]=z+m(m(X*Z)+m(m(V*R)+m(B*g))),w[n+100>>2]=j+m(m(X*h)+m(m(V*F)+m(k*g))),w[n+96>>2]=T+m(m(X*Q)+m(m(V*E)+m(p*g))),Zn[o[o[b>>2]+8>>2]](b,n+48|0,n+16|0,n+128|0),r=o[N+4>>2],Zn[o[o[r>>2]+8>>2]](r,o[N+12>>2],n+112|0,n),r=0,w[n+16>>2]>w[n>>2]||(r=0,w[n+128>>2]>2]||(r=1)),!(w[n+20>>2]>w[n+4>>2])&!(w[n+132>>2]>2])&(w[n+136>>2]>2]|w[n+24>>2]>w[n+8>>2]?u:r)||(r=o[e+o[A+60>>2]>>2],Zn[o[o[r>>2]>>2]](r),r=o[A+4>>2],Zn[o[o[r>>2]+60>>2]](r,o[e+o[A+60>>2]>>2]),o[e+o[A+60>>2]>>2]=0)),(0|s)!=(0|(i=i+1|0)););}S=n+176|0}function tA(){var A=0;C(31268,31280,31296,0,11128,7,11131,0,11131,0,2234,11133,6),A=xe(8),o[A>>2]=100,o[A+4>>2]=1,X(31260,4404,2,31312,11152,8,0|A,0,0),A=xe(8),o[A>>2]=104,o[A+4>>2]=1,X(31260,4415,2,31312,11152,8,0|A,0,0),A=xe(8),o[A>>2]=108,o[A+4>>2]=1,X(31268,7586,5,31344,11156,9,0|A,0,0),C(31404,31416,31432,31268,11128,13,11128,12,11128,11,5292,11133,10),A=xe(4),o[A>>2]=14,X(31404,5645,2,31448,11152,15,0|A,0,0),D(31268,2650,2,31456,11323,17,16,0),D(31268,7880,3,31744,11390,19,18,0),C(31772,31784,31800,0,11128,21,11131,0,11131,0,2346,11133,20),A=xe(8),o[A>>2]=16,o[A+4>>2]=1,X(31772,2251,4,31824,11498,22,0|A,0,0),C(31872,31884,31900,31772,11128,26,11128,25,11128,24,5304,11133,23),A=xe(4),o[A>>2]=27,X(31872,5645,2,31916,11152,28,0|A,0,0),D(31772,2650,2,31924,11323,30,29,0),D(31772,7880,3,31744,11390,19,31,0),C(32e3,32012,32028,0,11128,33,11131,0,11131,0,7180,11133,32),A=xe(8),o[A>>2]=16,o[A+4>>2]=1,X(32e3,4677,3,32044,11714,34,0|A,0,0),C(32088,32100,32116,32e3,11128,38,11128,37,11128,36,5331,11133,35),A=xe(4),o[A>>2]=39,X(32088,5645,2,32132,11152,40,0|A,0,0),D(32e3,2650,2,32140,11323,42,41,0),D(32e3,7880,3,31744,11390,19,43,0),p(8386,2,32212,11323,45,44,0),p(7676,2,32220,11152,47,46,0),p(10270,2,32228,11836,49,48,0),p(10259,3,32236,11840,51,50,0),p(7108,3,32248,11714,53,52,0),p(2225,4,32272,11845,55,54,0),p(1593,2,32228,11836,49,56,0),p(1469,2,32228,11836,49,57,0),p(1031,2,32228,11836,49,58,0),p(3127,5,32288,11851,60,59,0),p(1725,5,32320,11858,62,61,0),p(1586,2,32228,11836,49,63,0),p(1462,2,32228,11836,49,64,0),p(1024,2,32228,11836,49,65,0),p(2244,2,32228,11836,49,66,0),p(3103,6,32352,11865,68,67,0),p(1854,1,32376,11128,70,69,0),p(1090,2,32220,11152,47,71,0),p(5877,3,32248,11714,53,72,0),p(6138,2,32212,11323,45,73,0),p(5899,3,32380,11390,75,74,0),p(6158,3,32380,11390,75,76,0),p(6281,3,32248,11714,53,77,0),p(6189,3,32248,11714,53,78,0),p(5364,4,32400,11498,80,79,0),p(6959,2,32212,11323,45,81,0),p(3482,3,32380,11390,75,82,0),p(3495,3,32380,11390,75,83,0),p(1433,1,32376,11128,70,84,0),p(7005,2,32228,11836,49,85,0),p(6974,3,32236,11840,51,86,0),p(8342,3,32236,11840,51,87,0),p(1614,5,32416,11873,89,88,0),p(4426,4,32400,11498,80,90,0),p(2694,7,32448,11880,92,91,0),p(4798,3,32476,11714,94,93,0),p(1345,3,32476,11714,94,95,0),p(7309,3,32236,11840,51,96,0),p(3136,4,32496,11889,98,97,0),p(1159,3,32236,11840,51,99,0),p(1654,5,32416,11873,89,100,0),p(9474,3,32248,11714,53,101,0),p(9346,3,32248,11714,53,102,0),p(1634,5,32416,11873,89,103,0),p(4452,4,32400,11498,80,104,0),p(1672,6,32512,11895,106,105,0),p(4478,4,32400,11498,80,107,0),p(2719,5,32544,11903,109,108,0),p(6754,4,32576,11498,111,110,0),p(3753,4,32592,11910,113,112,0),p(6837,4,32592,11910,113,114,0),p(7795,4,32592,11910,113,115,0),p(2444,4,32592,11910,113,116,0),p(4826,4,32576,11498,111,117,0),p(7749,4,32592,11910,113,118,0),p(1112,4,32592,11910,113,119,0),p(5511,4,32576,11498,111,120,0),p(3167,4,32592,11910,113,121,0),p(7834,2,32608,11323,123,122,0),p(6928,3,32248,11714,53,124,0),p(9239,4,32624,11916,126,125,0),p(8559,5,32640,11156,128,127,0),p(6113,3,32236,11840,51,129,0),p(6497,3,32248,11714,53,130,0),p(5262,3,32248,11714,53,131,0),p(8541,1,32376,11128,70,132,0),p(4143,2,32212,11323,45,133,0),p(1919,2,32212,11323,45,134,0),p(3662,3,32248,11714,53,135,0),p(2043,2,32660,11922,137,136,0),p(3615,3,32236,11840,51,138,0),p(1949,2,32212,11323,45,139,0),p(5424,5,32672,11926,141,140,0),p(2094,3,32692,11933,143,142,0),p(5449,5,32672,11926,141,144,0),p(2059,3,32692,11933,143,145,0),p(3555,3,32236,11840,51,146,0),p(2869,3,32236,11840,51,147,0),p(1561,3,32248,11714,53,148,0),p(2073,3,32704,11938,150,149,0),p(6405,2,32212,11323,45,151,0),p(2660,3,32236,11840,51,152,0),p(1967,7,32720,11943,154,153,0),p(1883,1,32376,11128,70,155,0),p(7644,6,32752,11952,157,156,0),p(2018,4,32784,11960,159,158,0),p(6601,2,32212,11323,45,160,0),p(6564,6,32800,11966,162,161,0),p(2012,5,32832,11974,164,163,0),p(1984,2,32212,11323,45,165,0),p(1932,1,32376,11128,70,166,0),p(1480,3,32248,11714,53,167,0),p(2111,1,32376,11128,70,168,0),p(4372,2,32212,11323,45,169,0),p(7553,4,32400,11498,80,170,0),p(7494,3,32380,11390,75,171,0),p(7522,3,32248,11714,53,172,0),p(6311,5,32864,11156,174,173,0),p(1705,1,32376,11128,70,175,0),p(7409,2,32212,11323,45,176,0),p(7375,3,32248,11714,53,177,0),p(8259,3,32248,11714,53,178,0),p(6901,2,32212,11323,45,179,0),p(7192,2,32212,11323,45,180,0),p(7249,3,32248,11714,53,181,0),p(7121,3,32476,11714,94,182,0),p(7061,2,32608,11323,123,183,0),p(3400,2,32608,11323,123,184,0),p(3369,2,32608,11323,123,185,0),p(3434,2,32608,11323,123,186,0),p(6247,2,32212,11323,45,187,0),p(4304,3,32248,11714,53,188,0),p(4338,2,32212,11323,45,189,0),p(8221,3,32236,11840,51,190,0),p(3575,3,32236,11840,51,191,0),p(1503,3,32248,11714,53,192,0),p(1532,2,32212,11323,45,193,0),p(6469,6,32352,11865,68,194,0),p(6524,4,32576,11498,111,195,0),p(1600,3,32884,11981,197,196,0),p(4285,2,32212,11323,45,198,0),p(4210,3,32248,11714,53,199,0),p(1044,3,32248,11714,53,200,0),p(6816,4,32496,11889,98,201,0),p(3835,3,32236,11840,51,202,0),p(4043,4,32624,11916,126,203,0),p(4894,3,32248,11714,53,204,0),p(4867,3,32248,11714,53,205,0),p(1250,3,32248,11714,53,206,0),p(1278,2,32212,11323,45,207,0),p(1192,3,32248,11714,53,208,0),p(1221,2,32212,11323,45,209,0),p(7146,2,32220,11152,47,210,0),p(4517,2,32220,11152,47,211,0),p(6877,2,32608,11323,123,212,0),p(4581,4,32496,11889,98,213,0),p(8305,2,32228,11836,49,214,0),p(7167,2,32212,11323,45,215,0),p(7086,3,32248,11714,53,216,0),p(7728,4,32400,11498,80,217,0),p(7286,4,32400,11498,80,218,0),p(6219,3,32248,11714,53,219,0),p(8394,1,32376,11128,70,220,0),p(1830,1,32376,11128,70,221,0),p(4650,2,32212,11323,45,222,0),p(6367,3,32380,11390,75,223,0),p(10414,2,32212,11323,45,224,0),p(10335,2,32212,11323,45,225,0),p(10387,2,32212,11323,45,226,0),p(10308,2,32212,11323,45,227,0),p(10359,2,32212,11323,45,228,0),p(10280,2,32212,11323,45,229,0),p(3694,2,32212,11323,45,230,0),p(2409,3,32380,11390,75,231,0),p(9498,2,32212,11323,45,232,0),p(9370,2,32212,11323,45,233,0),p(9530,2,32212,11323,45,234,0),p(9402,2,32212,11323,45,235,0),p(9439,2,32212,11323,45,236,0),p(9402,2,32212,11323,45,235,0),p(1900,1,32376,11128,70,237,0),p(1734,1,32376,11128,70,238,0),p(3335,5,32896,11156,240,239,0),p(3298,3,32248,11714,53,241,0),p(2265,5,32640,11156,128,242,0),p(2288,7,32928,11986,244,243,0),p(5232,3,32248,11714,53,245,0),p(7887,2,32220,11152,47,246,0),p(2131,4,32960,11960,248,247,0),p(5473,3,32476,11714,94,249,0),p(1065,3,32248,11714,53,250,0),p(5970,5,32976,11995,252,251,0),p(1406,5,32896,11156,240,253,0),p(1376,3,32248,11714,53,254,0),p(2524,4,32576,11498,111,255,0),p(2493,3,32248,11714,53,256,0),p(5853,3,32248,11714,53,257,0),p(5826,3,32248,11714,53,258,0),p(7682,3,32248,11714,53,259,0),p(7705,2,32212,11323,45,260,0),p(5148,5,32288,11851,60,261,0),p(5115,5,32288,11851,60,262,0),p(4985,5,32288,11851,60,263,0),p(5027,5,32288,11851,60,264,0),p(5072,5,32288,11851,60,265,0),p(5179,5,32288,11851,60,266,0),p(4920,5,32288,11851,60,267,0),p(4951,5,32288,11851,60,268,0),p(2791,2,32608,11323,123,269,0),p(2810,2,32608,11323,123,270,0),p(8459,1,32376,11128,70,271,0),p(4259,3,32248,11714,53,272,0),p(3024,6,33008,11952,274,273,0),p(7955,2,32212,11323,45,275,0),p(8106,2,32212,11323,45,276,0),p(3853,2,32212,11323,45,277,0),p(5699,2,32228,11836,49,278,0),p(8431,1,32376,11128,70,279,0),p(4229,3,32248,11714,53,280,0),p(2997,6,33008,11952,274,281,0),p(7917,2,32212,11323,45,282,0),p(8067,2,32212,11323,45,283,0),p(4711,2,32212,11323,45,284,0),p(8514,1,32376,11128,70,285,0),p(3077,6,33008,11952,274,286,0),p(8030,2,32212,11323,45,287,0),p(8183,2,32212,11323,45,288,0),p(3892,2,32212,11323,45,289,0),p(5784,2,32228,11836,49,290,0),p(8483,1,32376,11128,70,291,0),p(3047,6,33008,11952,274,292,0),p(7989,2,32212,11323,45,293,0),p(8141,2,32212,11323,45,294,0),p(4753,2,32212,11323,45,295,0),p(5738,2,32228,11836,49,296,0),p(1868,1,32376,11128,70,297,0),p(3112,6,32352,11865,68,298,0),p(3222,2,32212,11323,45,299,0),p(7443,2,32212,11323,45,300,0),p(4066,2,32212,11323,45,301,0),p(6437,2,32212,11323,45,302,0),p(5202,2,32212,11323,45,303,0),p(6638,2,32228,11836,49,304,0),p(7344,2,32212,11323,45,305,0),p(3257,2,32212,11323,45,306,0),p(7036,5,33040,12002,308,307,0),p(5613,2,32212,11323,45,309,0),p(2926,3,32236,11840,51,310,0),p(2963,3,32236,11840,51,311,0),p(2757,3,32236,11840,51,312,0),p(6028,3,32476,11714,94,313,0),p(1306,3,32476,11714,94,314,0),p(2190,9,33072,12009,316,315,0),p(1799,4,32960,11960,248,317,0),p(3518,3,32236,11840,51,318,0),p(2832,3,32236,11840,51,319,0),p(2159,10,33120,12020,321,320,0),p(1772,4,32960,11960,248,322,0),p(2889,3,32236,11840,51,323,0),p(2565,3,32236,11840,51,324,0),p(2606,3,32236,11840,51,325,0)}function oA(A,r,f,e,i){var n,a,t,c,b,u,l,s,k,d,v,h,B,w,Z,m,Q,E=0,W=0,N=0,p=0,F=0,R=0,Y=0,V=0,g=0,X=0,D=0,C=0,J=0,x=0,y=0,M=0,H=0,I=0,T=0,U=0,j=0,z=0,P=0,O=0,$=0;if(S=n=S-48|0,I=o[i>>2],D=r,(m=o[e>>2])&&(D=o[m+12>>2]),U=o[D+96>>2],R=f,x=o[r+96>>2],u=o[f+96>>2]-x|0,p=o[(m||I)+12>>2],J=o[r+92>>2],F=o[p+92>>2]-J|0,h=o[f+92>>2]-J|0,y=o[p+96>>2]-x|0,Y=ee(k=G(u,F)-G(h,y)|0,B=k>>31,u,C=u>>31),N=L,H=o[r+88>>2],p=o[p+88>>2]-H|0,Q=o[f+88>>2]-H|0,r=Y-(F=ee(d=G(p,h)-G(F,Q)|0,w=d>>31,g=Q,V=g>>31))|0,T=o[D+92>>2],l=r,W=ee(r,a=N-(L+(F>>>0>Y>>>0)|0)|0,f=T,f>>31),E=L,M=ee(d,w,f=h,Y=f>>31),N=L,r=M-(p=ee(v=G(g,y)-G(p,u)|0,Z=v>>31,u,C))|0,D=o[D+88>>2],s=r,r=ee(r,t=N-(L+(p>>>0>M>>>0)|0)|0,F=D,F>>31),E=L+E|0,E=r>>>0>(p=r+W|0)>>>0?E+1|0:E,F=ee(g,V,v,Z),g=L,f=ee(f,Y,k,B),f=ee(c=F-f|0,b=g-(L+(f>>>0>F>>>0)|0)|0,U,U>>31),E=L+E|0,g=(r=f+p|0)>>>0>>0?E+1|0:E,f=ee(k,B,H,H>>31),F=L,N=f,f=ee(d,w,x,x>>31),W=L+F|0,W=f>>>0>(p=N+f|0)>>>0?W+1|0:W,F=ee(v,Z,J,J>>31),N=L+W|0,J=f=F+p|0,x=f>>>0>>0?N+1|0:N,R=I?o[I+12>>2]:R,H=o[R+96>>2],M=o[R+92>>2],y=o[R+88>>2],f=I,m&&(f=I,o[m+12>>2])){f=o[o[m+8>>2]+4>>2],W=o[f+12>>2],N=ee(p=o[W+92>>2],Y=p>>31,v,Z),E=L,V=N,N=ee(F=o[W+88>>2],C=F>>31,k,B),E=L+E|0,E=N>>>0>(V=V+N|0)>>>0?E+1|0:E,R=V,V=ee(N=o[W+96>>2],j=N>>31,d,w),W=L+E|0;A:if(!((R=R+V|0)>>>0>>0&(0|x)>=(0|(W=R>>>0>>0?W+1|0:W))|(0|W)<(0|x))){for(R=f+12|0,X=o[A+100>>2];;){if((0|X)==o[f+20>>2])break A;if(Y=ee(p,Y,l,a),p=L,F=ee(F,C,s,t),E=L+p|0,E=F>>>0>(Y=F+Y|0)>>>0?E+1|0:E,p=ee(N,j,c,b),E=L+E|0,p=E=p>>>0>(F=p+Y|0)>>>0?E+1|0:E,(0|g)>=(0|E)&r>>>0>=F>>>0|(0|E)<(0|g))break A;if(o[e>>2]=f,r=o[R>>2],U=o[r+96>>2],T=o[r+92>>2],D=o[r+88>>2],!r)break;if(R=(f=o[o[f+8>>2]+4>>2])+12|0,r=F,g=p,V=o[f+12>>2],N=ee(p=o[(F=V)+92>>2],Y=p>>31,v,Z),E=L,z=(W=N)+(N=ee(F=o[F+88>>2],C=F>>31,k,B))|0,W=L+E|0,W=N>>>0>z>>>0?W+1|0:W,E=ee(N=o[V+96>>2],j=N>>31,d,w),W=L+W|0,(V=E+z|0)>>>0>>0&(0|x)>=(0|(W=E>>>0>V>>>0?W+1|0:W))|(0|W)<(0|x))break A}r=F,g=p}f=o[i>>2]}F=ee(l,a,M,M>>31),p=L,N=F,F=ee(s,t,y,y>>31),E=L+p|0,E=(N=N+F|0)>>>0>>0?E+1|0:E,F=ee(c,b,H,H>>31),W=L+E|0,Y=(p=F+N|0)>>>0>>0?W+1|0:W;A:if(f){if(o[f+12>>2]&&(R=o[o[f+8>>2]>>2],V=o[R+12>>2],E=ee(F=o[(N=V)+92>>2],C=F>>31,v,Z),W=L,X=E,E=ee(N=o[N+88>>2],j=N>>31,k,B),W=L+W|0,W=E>>>0>(X=X+E|0)>>>0?W+1|0:W,E=ee(V=o[V+96>>2],P=V>>31,d,w),W=L+W|0,!((X=E+X|0)>>>0>>0&(0|x)>=(0|(W=E>>>0>X>>>0?W+1|0:W))|(0|W)<(0|x)))){for(O=R+12|0,z=o[A+100>>2];;){if((0|z)==o[(E=R)+20>>2])break A;if(F=ee(F,C,l,a),W=L,R=F,F=ee(N,j,s,t),N=L+W|0,N=F>>>0>(R=R+F|0)>>>0?N+1|0:N,V=ee(c,b,V,P),W=L+N|0,N=W=(F=V+R|0)>>>0>>0?W+1|0:W,(0|Y)>=(0|W)&p>>>0>=F>>>0|(0|W)<(0|Y))break A;if(o[i>>2]=E,f=o[O>>2],H=o[f+96>>2],M=o[f+92>>2],y=o[f+88>>2],!f)break;if(O=(R=o[o[E+8>>2]>>2])+12|0,f=E,p=F,Y=N,V=o[R+12>>2],E=ee(F=o[(N=V)+92>>2],C=F>>31,v,Z),W=L,X=E,E=ee(N=o[N+88>>2],j=N>>31,k,B),W=L+W|0,W=E>>>0>(X=X+E|0)>>>0?W+1|0:W,$=(E=X)+(X=ee(V=o[V+96>>2],P=V>>31,d,w))|0,E=L+W|0,J>>>0>$>>>0&(0|x)>=(0|(E=X>>>0>$>>>0?E+1|0:E))|(0|E)<(0|x))break A}f=E,p=F,Y=N}}else f=0;g=Y-((r>>>0>p>>>0)+g|0)|0;A:{if(!!(r=p-r|0)&(0|g)>=0|(0|g)>0)for(x=o[A+100>>2];;){for(f=o[e>>2];;){r:if(C=(F=(G(M-T|0,h)+G(y-D|0,Q)|0)+G(H-U|0,u)|0)>>31,!(!f|!o[f+12>>2]||(J=o[o[f>>2]+8>>2],(0|x)>=o[J+20>>2]))){p=o[J+12>>2],A=(R=o[p+92>>2])-T|0,N=(I=o[p+88>>2])-D|0,Y=(V=o[p+96>>2])-U|0,X=(G(A,h)+G(N,Q)|0)+G(Y,u)|0,A=ee(l,a,A,A>>31),p=L,E=A,A=ee(s,t,N,N>>31),W=L+p|0,W=A>>>0>(N=E+A|0)>>>0?W+1|0:W,p=ee(c,b,Y,Y>>31),E=L+W|0;f:{if(!((E=(A=p+N|0)>>>0

>>0?E+1|0:E)|A)){if((0|X)<0)break f;break r}if((0|E)>0|(0|E)>=0)break r;if(o[n+32>>2]=0-A,o[n+36>>2]=0-(!!(0|A)+E|0),N=(0|X)>0,o[n+40>>2]=N?-1:X>>>31|0,p=(0|X)<0,o[n+24>>2]=N?X:p?0-X|0:0,A=X>>31,o[n+28>>2]=N?A:p?0-(!!(0|X)+A|0)|0:0,(0|F)>0?(o[n+16>>2]=1,Y=C,N=-1,A=F):(0|F)<0?(o[n+16>>2]=-1,Y=0-(!!(0|F)+C|0)|0,N=1,A=0-F|0):(o[n+16>>2]=0,Y=0,N=0,A=0),o[n>>2]=A,o[n+4>>2]=Y,!!(A=r)&(0|(p=g))>=0|(0|p)>0||(p=0,A=0,(0|g)>0|(0|g)>=0||(o[n+16>>2]=N,p=0-(!!(0|r)+g|0)|0,A=0-r|0)),o[n+8>>2]=A,o[n+12>>2]=p,(0|Er(n+24|0,n))<0)break r}f=(0|f)!=(0|m)?J:0,o[e>>2]=f,A=ee(l,a,A=M-R|0,A>>31),r=L,F=A,A=ee(s,t,A=y-I|0,A>>31),N=L+r|0,N=A>>>0>(g=F+A|0)>>>0?N+1|0:N,A=ee(c,b,A=H-V|0,A>>31),E=L+N|0,g=A>>>0>(r=A+g|0)>>>0?E+1|0:E,D=I,T=R,U=V;continue}break}if(!(A=o[i>>2])|!o[A+12>>2])break A;if(X=o[o[A+8>>2]>>2],(0|x)>=o[X+20>>2])break A;if(p=o[X+12>>2],A=ee(E=(J=o[p+92>>2])-M|0,M=E>>31,v,Z),f=L,N=A,A=ee(Y=(R=o[p+88>>2])-y|0,I=Y>>31,k,B),W=L+f|0,W=A>>>0>(y=N+A|0)>>>0?W+1|0:W,(0|y)!=(0-(f=ee(d,w,p=(N=o[p+96>>2])-H|0,V=p>>31))|0)|(0-(L+!!(0|f)|0)|0)!=(0|W))break A;if(A=ee(l,a,A=J-T|0,A>>31),f=L,R=(W=A)+(A=ee(s,t,A=R-D|0,A>>31))|0,W=L+f|0,W=A>>>0>R>>>0?W+1|0:W,A=ee(c,b,A=N-U|0,A>>31),N=L+W|0,!(f=A+R|0)&(0|(A=N=A>>>0>f>>>0?N+1|0:N))<=0|(0|A)<0)break A;R=(G(E,h)+G(Y,Q)|0)+G(p,u)|0,N=ee(E,M,l,a),E=L,Y=(W=N)+(N=ee(s,t,Y,I))|0,W=L+E|0,W=N>>>0>Y>>>0?W+1|0:W,N=ee(c,b,p,V),E=L+W|0;r:{if(!((E=N>>>0>(p=N+Y|0)>>>0?E+1|0:E)|p)){if((0|R)<0)break r;break A}if((0|E)>0|(0|E)>=0)break A;if(o[n+32>>2]=0-p,o[n+36>>2]=0-(!!(0|p)+E|0),Y=(0|R)>0,o[n+40>>2]=Y?-1:R>>>31|0,N=(0|R)<0,o[n+24>>2]=Y?R:N?0-R|0:0,p=R>>31,o[n+28>>2]=Y?p:N?0-(!!(0|R)+p|0)|0:0,(0|F)>0?(o[n+16>>2]=1,p=-1):(0|F)<0?(o[n+16>>2]=-1,F=0-(p=F)|0,C=0-(!!(0|p)+C|0)|0,p=1):(o[n+16>>2]=0,F=0,C=0,p=0),o[n>>2]=F,o[n+4>>2]=C,!!(F=r)&(0|(N=g))>=0|(0|N)>0||(N=0,F=0,(0|g)>0|(0|g)>=0||(o[n+16>>2]=p,N=0-(!!(0|r)+g|0)|0,F=0-r|0)),o[n+8>>2]=F,o[n+12>>2]=N,(0|Er(n+24|0,n))<=0)break A}o[i>>2]=X,r=o[X+12>>2],H=o[r+96>>2],M=o[r+92>>2],y=o[r+88>>2],r=f,g=A}if(!((0|g)>0|(0|g)>=0))for(X=o[A+100>>2];;){C=(F=(G(M-T|0,h)+G(y-D|0,Q)|0)+G(H-U|0,u)|0)>>31;r:if(!(!f|!o[f+12>>2]||(J=o[o[f+4>>2]+8>>2],(0|X)>=o[J+20>>2]))){p=o[J+12>>2],A=(Y=o[p+92>>2])-M|0,W=(N=o[p+88>>2])-y|0,V=(p=o[p+96>>2])-H|0,R=(G(A,h)+G(W,Q)|0)+G(V,u)|0,A=ee(l,a,A,A>>31),E=L,x=A,A=ee(s,t,W,W>>31),E=L+E|0,E=A>>>0>(W=x+A|0)>>>0?E+1|0:E,A=(V=ee(c,b,V,V>>31))+W|0,W=L+E|0;f:{if(!((W=A>>>0>>0?W+1|0:W)|A)){if((0|R)>0)break f;break r}if((0|W)>0|(0|W)>=0)break r;if(o[n+32>>2]=0-A,o[n+36>>2]=0-(!!(0|A)+W|0),W=(0|R)>0,o[n+40>>2]=W?-1:R>>>31|0,E=(0|R)<0,o[n+24>>2]=W?R:E?0-R|0:0,A=R>>31,o[n+28>>2]=W?A:E?0-(!!(0|R)+A|0)|0:0,(0|F)>0?(o[n+16>>2]=1,R=-1,E=C,A=F):(0|F)<0?(o[n+16>>2]=-1,R=1,E=0-(!!(0|F)+C|0)|0,A=0-F|0):(R=0,o[n+16>>2]=0,E=0,A=0),o[n>>2]=A,o[n+4>>2]=E,!!(A=r)&(0|(E=g))>=0|(0|E)>0||(E=0,A=0,(0|g)>0|(0|g)>=0||(o[n+16>>2]=R,E=0-(!!(0|r)+g|0)|0,A=0-r|0)),o[n+8>>2]=A,o[n+12>>2]=E,(0|Er(n+24|0,n))>0)break r}f=(0|f)!=(0|I)?J:0,o[i>>2]=f,A=ee(l,a,A=Y-T|0,A>>31),r=L,F=A,A=ee(s,t,A=N-D|0,A>>31),E=L+r|0,E=A>>>0>(g=F+A|0)>>>0?E+1|0:E,A=ee(c,b,A=p-U|0,A>>31),W=L+E|0,g=A>>>0>(r=A+g|0)>>>0?W+1|0:W,y=N,M=Y,H=p;continue}if(!(A=o[e>>2])|!o[A+12>>2])break A;if(z=o[o[A+8>>2]+4>>2],(0|X)>=o[z+20>>2])break A;if(N=o[z+12>>2],A=ee(Y=(J=o[N+92>>2])-T|0,T=Y>>31,v,Z),f=L,x=(E=A)+(A=ee(p=(R=o[N+88>>2])-D|0,W=p>>31,k,B))|0,E=L+f|0,E=A>>>0>x>>>0?E+1|0:E,(0|x)!=(0-(N=ee(d,w,f=(D=o[N+96>>2])-U|0,V=f>>31))|0)|(0-(L+!!(0|N)|0)|0)!=(0|E))break A;if(A=ee(l,a,A=M-J|0,A>>31),N=L,E=A,A=ee(s,t,A=y-R|0,A>>31),N=L+N|0,N=A>>>0>(E=E+A|0)>>>0?N+1|0:N,A=(D=ee(c,b,A=H-D|0,A>>31))+E|0,E=L+N|0,(0|(E=A>>>0>>0?E+1|0:E))>0|(0|E)>=0)break A;D=(G(Y,h)+G(p,Q)|0)+G(f,u)|0,Y=ee(Y,T,l,a),N=L,p=ee(s,t,p,W),W=L+N|0,W=p>>>0>(Y=p+Y|0)>>>0?W+1|0:W,p=ee(c,b,f,V),W=L+W|0;r:{if(!((W=(f=p+Y|0)>>>0

>>0?W+1|0:W)|f)){if((0|D)>0)break r;break A}if((0|W)>0|(0|W)>=0)break A;if(o[n+32>>2]=0-f,o[n+36>>2]=0-(!!(0|f)+W|0),N=(0|D)>0,o[n+40>>2]=N?-1:D>>>31|0,p=(0|D)<0,o[n+24>>2]=N?D:p?0-D|0:0,f=D>>31,o[n+28>>2]=N?f:p?0-(!!(0|D)+f|0)|0:0,(0|F)>0?(o[n+16>>2]=1,p=-1):(0|F)<0?(o[n+16>>2]=-1,f=F,F=0-F|0,C=0-(!!(0|f)+C|0)|0,p=1):(o[n+16>>2]=0,F=0,C=0,p=0),o[n>>2]=F,o[n+4>>2]=C,!!(f=r)&(0|(F=g))>=0|(0|F)>0||(F=0,f=0,(0|g)>0|(0|g)>=0||(o[n+16>>2]=p,F=0-(!!(0|r)+g|0)|0,f=0-r|0)),o[n+8>>2]=f,o[n+12>>2]=F,(0|Er(n+24|0,n))>=0)break A}o[e>>2]=z,r=o[z+12>>2],U=o[r+96>>2],T=o[r+92>>2],f=o[i>>2],D=o[r+88>>2],r=A,g=E}}S=n+48|0}function cA(A,r,f,e){var i,n=0,t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=0,d=m(0),h=m(0),B=0,Z=m(0),Q=0,E=m(0),W=0,p=m(0),F=0,R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=0,I=0,T=m(0),U=m(0),j=m(0),z=0,P=m(0),O=m(0),L=m(0),$=0,K=0,q=m(0),_=0,AA=0,rA=0,fA=0,eA=0,iA=0,nA=0;S=i=S-704|0,W=ae(i+620|0),o[(n=W)+20>>2]=1065353216,o[n+24>>2]=1065353216,o[n+4>>2]=8,o[n>>2]=21520,o[n+32>>2]=0,o[n+36>>2]=0,o[n+28>>2]=1065353216,o[n+40>>2]=0,o[n+44>>2]=0,o[n+48>>2]=0,o[n+52>>2]=0,o[n+56>>2]=0,n=o[f+12>>2],Q=o[f+4>>2];A:if((0|(F=o[Q+4>>2]))<=19)o[i+612>>2]=0,o[i+616>>2]=0,o[i+444>>2]=13280,w[i+608>>2]=w[e+4>>2],a[i+416|0]=0,o[i+392>>2]=953267991,o[12+(F=i+680|0)>>2]=Q,o[F+8>>2]=W,B=i+84|0,o[F+4>>2]=B,o[F>>2]=23372,o[12+(k=i+68|0)>>2]=Q,o[k+8>>2]=W,o[k+4>>2]=B,o[k>>2]=22724,Q=8&o[e+16>>2]?k:F,0|Zn[o[o[Q>>2]+8>>2]](Q,A,r,n,n,i+444|0)&&(t=w[i+584>>2],c=w[i+576>>2],b=w[i+580>>2],(u=m(m(t*t)+m(m(c*c)+m(b*b))))>m(9999999747378752e-20)&&(l=w[i+608>>2])>2]&&(d=t,t=m(m(1)/m(N(u))),w[i+584>>2]=d*t,w[i+580>>2]=b*t,w[i+576>>2]=c*t,A=o[f+8>>2],o[i+44>>2]=0,o[i+40>>2]=A,A=o[i+588>>2],o[i+56>>2]=o[i+584>>2],o[i+60>>2]=A,A=o[i+580>>2],o[i+48>>2]=o[i+576>>2],o[i+52>>2]=A,w[i+64>>2]=l,m(Zn[o[o[e>>2]+12>>2]](e,i+40|0,1))));else if(F-21>>>0<=8){if(Z=w[n+20>>2],b=w[n+36>>2],p=w[n+24>>2],E=w[n+52>>2],u=w[n+56>>2],l=w[n+40>>2],s=w[n+32>>2],R=w[n+16>>2],d=w[n>>2],Y=w[n+4>>2],h=w[n+48>>2],X=w[n+8>>2],c=w[A+52>>2],V=w[A+56>>2],t=w[A+48>>2],o[i+456>>2]=0,E=m(-E),J=m(p*E),g=m(m(J-m(X*h))-m(l*u)),x=m(V*l),y=m(p*c),w[i+452>>2]=g+m(x+m(m(t*X)+y)),M=m(Z*E),D=m(m(M-m(Y*h))-m(b*u)),T=m(V*b),U=m(Z*c),w[i+448>>2]=D+m(T+m(m(t*Y)+U)),j=m(R*E),P=m(m(j-m(d*h))-m(s*u)),O=m(V*s),L=m(R*c),w[i+444>>2]=P+m(O+m(m(t*d)+L)),V=w[r+52>>2],E=w[r+56>>2],c=w[r+48>>2],o[i+52>>2]=0,C=g,g=m(E*l),q=m(c*X),X=m(p*V),w[i+48>>2]=C+m(g+m(q+X)),C=D,D=m(E*b),p=m(c*Y),Y=m(Z*V),w[i+44>>2]=C+m(D+m(p+Y)),E=m(E*s),C=m(c*d),d=m(R*V),w[i+40>>2]=P+m(E+m(C+d)),21==(0|F)){r=o[f+8>>2],A=Sf(i+84|0,F=i+444|0,k=i+40|0,o[e+16>>2]),o[A+52>>2]=Q,o[A+48>>2]=r,o[A+44>>2]=e,o[A>>2]=13348,f=o[n+12>>2],o[(r=A- -64|0)>>2]=o[n+8>>2],o[r+4>>2]=f,r=o[n+4>>2],o[A+56>>2]=o[n>>2],o[A+60>>2]=r,r=o[n+28>>2],o[A+80>>2]=o[n+24>>2],o[A+84>>2]=r,r=o[n+20>>2],o[A+72>>2]=o[n+16>>2],o[A+76>>2]=r,r=o[n+44>>2],o[A+96>>2]=o[n+40>>2],o[A+100>>2]=r,r=o[n+36>>2],o[A+88>>2]=o[n+32>>2],o[A+92>>2]=r,r=o[n+60>>2],o[A+112>>2]=o[n+56>>2],o[A+116>>2]=r,r=o[n+52>>2],o[A+104>>2]=o[n+48>>2],o[A+108>>2]=r,w[A+40>>2]=w[e+4>>2],S=r=S-16|0,f=o[Q+56>>2],o[r+12>>2]=A,o[r+8>>2]=f,o[r+4>>2]=18780,f=o[Q+60>>2],e=r+4|0,S=A=S-32|0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+16>>2]=0,o[A+20>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A>>2]=0,o[A+4>>2]=0,v[f+60|0]?MA(f,e,F,k,A+16|0,A,o[f+56>>2]):KA(f,e,F,k,A+16|0,A),S=A+32|0,S=r+16|0;break A}Z=w[n>>2],p=w[n+4>>2],u=m(-u),C=m(l*u),l=w[n+8>>2],h=m(-h),R=m(C+m(m(l*h)+J)),w[i+688>>2]=m(x+m(m(t*l)+y))+R,o[i+692>>2]=0,b=m(m(b*u)+m(m(p*h)+M)),w[i+684>>2]=m(T+m(m(t*p)+U))+b,C=m(O+m(m(t*Z)+L)),t=m(m(s*u)+m(m(Z*h)+j)),w[i+680>>2]=C+t,o[i+80>>2]=0,w[i+76>>2]=m(g+m(m(c*l)+X))+R,w[i+72>>2]=m(D+m(m(c*p)+Y))+b,w[i+68>>2]=m(E+m(m(c*Z)+d))+t,r=o[f+8>>2],A=Sf(i+84|0,i+680|0,i+68|0,o[e+16>>2]),o[A+52>>2]=Q,o[A+48>>2]=r,o[A+44>>2]=e,o[A>>2]=13348,f=o[n+12>>2],o[(r=A- -64|0)>>2]=o[n+8>>2],o[r+4>>2]=f,r=o[n+4>>2],o[A+56>>2]=o[n>>2],o[A+60>>2]=r,r=o[n+28>>2],o[A+80>>2]=o[n+24>>2],o[A+84>>2]=r,r=o[n+20>>2],o[A+72>>2]=o[n+16>>2],o[A+76>>2]=r,r=o[n+44>>2],o[A+96>>2]=o[n+40>>2],o[A+100>>2]=r,r=o[n+36>>2],o[A+88>>2]=o[n+32>>2],o[A+92>>2]=r,r=o[n+60>>2],o[A+112>>2]=o[n+56>>2],o[A+116>>2]=r,r=o[n+52>>2],o[A+104>>2]=o[n+48>>2],o[A+108>>2]=r,w[A+40>>2]=w[e+4>>2],r=o[i+692>>2],o[i+32>>2]=o[i+688>>2],o[i+36>>2]=r,r=o[i+684>>2],o[i+24>>2]=o[i+680>>2],o[i+28>>2]=r,(t=w[i+68>>2])>2]&&(w[i+24>>2]=t),(c=w[i+72>>2])>2]&&(w[i+28>>2]=c),(b=w[i+76>>2])>2]&&(w[i+32>>2]=b),(u=w[i+80>>2])>2]&&(w[i+36>>2]=u),r=o[i+692>>2],o[i+16>>2]=o[i+688>>2],o[i+20>>2]=r,r=o[i+684>>2],o[i+8>>2]=o[i+680>>2],o[i+12>>2]=r,t>w[i+8>>2]&&(w[i+8>>2]=t),c>w[i+12>>2]&&(w[i+12>>2]=c),b>w[i+16>>2]&&(w[i+16>>2]=b),u>w[i+20>>2]&&(w[i+20>>2]=u),Zn[o[o[Q>>2]+64>>2]](Q,A,i+24|0,i+8|0)}else if(31==(0|F))if(W=o[Q+72>>2],f=o[f+8>>2],o[i+64>>2]=e,o[i+60>>2]=r,o[i+56>>2]=A,o[i+52>>2]=n,o[i+48>>2]=Q,o[i+44>>2]=f,o[i+40>>2]=13532,W){if(t=w[n+20>>2],c=w[n+36>>2],b=w[n+24>>2],u=w[n+52>>2],Y=w[A+52>>2],l=w[n+40>>2],s=w[n+56>>2],R=w[A+56>>2],X=w[n>>2],h=w[n+16>>2],Z=w[n+32>>2],V=w[n+4>>2],d=w[n+8>>2],p=w[n+48>>2],E=w[A+48>>2],o[i+96>>2]=0,R=m(R-s),g=d,d=m(E-p),Y=m(Y-u),w[i+92>>2]=m(l*R)+m(m(g*d)+m(b*Y)),w[i+88>>2]=m(c*R)+m(m(V*d)+m(Y*t)),w[i+84>>2]=m(Z*R)+m(m(X*d)+m(Y*h)),R=w[r+52>>2],d=w[r+56>>2],Y=w[n>>2],X=w[n+4>>2],V=w[n+8>>2],E=w[r+48>>2],o[i+456>>2]=0,g=l,l=m(d-s),s=m(E-p),d=b,b=m(R-u),w[i+452>>2]=m(g*l)+m(m(V*s)+m(d*b)),w[i+448>>2]=m(c*l)+m(m(X*s)+m(t*b)),w[i+444>>2]=m(Z*l)+m(m(Y*s)+m(h*b)),$=i+40|0,F=0,S=k=S-544|0,A=o[W>>2]){for(t=w[i+92>>2],c=w[i+452>>2],b=w[i+84>>2],u=w[i+444>>2],l=w[i+88>>2],s=w[i+448>>2],o[k+32>>2]=A,t=m(c-t),c=m(u-b),b=m(s-l),u=m(m(1)/m(N(m(m(t*t)+m(m(c*c)+m(b*b)))))),l=m(t*u),d=m(l*t),t=m(c*u),g=m(t*c),c=m(b*u),p=m(d+m(g+m(b*c))),_=k+((A=(b=l==m(0)?m(0xde0b6b000000000):m(m(1)/l))>2],B=o[W+4>>2],o[k>>2]=o[W>>2],o[k+4>>2]=B,B=o[W+12>>2],o[k+8>>2]=o[W+8>>2],o[k+12>>2]=B,B=o[W+28>>2],o[k+24>>2]=o[W+24>>2],o[k+28>>2]=B,B=o[W+20>>2],o[k+16>>2]=o[W+16>>2],o[k+20>>2]=B,h=w[i+84>>2],u=m(t*m(w[eA>>2]-h)),s=w[i+88>>2],!(u>(l=m(c*m(w[fA>>2]-s)))||(s=m(c*m(w[AA>>2]-s)))>(h=m(t*m(w[iA>>2]-h)))||(u=u>2],u>(s=m(b*m(w[rA>>2]-Z)))||(Z=m(b*m(w[_>>2]-Z)))>(l=l(us?s:l)>m(0)))))if(o[W+40>>2]){if((0|A)>(0|f)){if((0|(A=e<<1))>(0|e)){if((0|A)>(0|n)){if(e){if(o[8488]=o[8488]+1,f=0|Zn[o[8290]](e<<3,16),!((0|e)<=0)){if(z=0,n=0,e>>>0>=4)for(nA=-4&e,H=0;o[(B=n<<2)+f>>2]=o[r+B>>2],o[(I=4|B)+f>>2]=o[r+I>>2],o[(I=8|B)+f>>2]=o[r+I>>2],o[(B|=12)+f>>2]=o[r+B>>2],n=n+4|0,(0|nA)!=(0|(H=H+4|0)););if(B=3&e)for(;o[(H=n<<2)+f>>2]=o[r+H>>2],n=n+1|0,(0|B)!=(0|(z=z+1|0)););}}else f=0;n=F,F=1,r&&n&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),n=A,r=f}Af((f=e<<2)+r|0,0,f)}e=A,f=A-2|0}o[r+K>>2]=o[W+36>>2],o[(Q<<2)+r>>2]=o[W+40>>2],A=Q+1|0}else Zn[o[o[$>>2]+12>>2]]($,W);if(Q=A,!A)break}F&&r&&(o[8489]=o[8489]+1,Zn[o[8291]](r))}S=k+544|0}else if(!((0|(e=o[Q+24>>2]))<=0))for(f=0;A=o[o[i+48>>2]+32>>2]+G(f,80)|0,r=o[A+64>>2],R=w[A+56>>2],d=w[A+48>>2],Y=w[A+52>>2],X=w[A+32>>2],V=w[A>>2],E=w[A+16>>2],J=w[A+36>>2],g=w[A+4>>2],x=w[A+20>>2],y=w[A+40>>2],M=w[A+8>>2],D=w[A+24>>2],A=o[i+52>>2],T=w[A+52>>2],U=w[A+56>>2],t=w[A+24>>2],c=w[A+20>>2],b=w[A+40>>2],u=w[A+36>>2],j=w[A+48>>2],l=w[A+8>>2],s=w[A>>2],h=w[A+4>>2],Z=w[A+16>>2],p=w[A+32>>2],o[i+144>>2]=0,o[i+128>>2]=0,o[i+112>>2]=0,o[i+96>>2]=0,w[i+124>>2]=m(y*b)+m(m(M*p)+m(D*u)),w[i+120>>2]=m(J*b)+m(m(g*p)+m(x*u)),w[i+116>>2]=m(X*b)+m(m(V*p)+m(E*u)),w[i+108>>2]=m(y*t)+m(m(M*Z)+m(D*c)),w[i+104>>2]=m(J*t)+m(m(g*Z)+m(x*c)),w[i+100>>2]=m(X*t)+m(m(V*Z)+m(E*c)),w[i+92>>2]=m(y*l)+m(m(M*s)+m(h*D)),w[i+88>>2]=m(J*l)+m(m(g*s)+m(h*x)),w[i+84>>2]=m(X*l)+m(m(V*s)+m(E*h)),w[i+140>>2]=U+m(m(R*b)+m(m(d*p)+m(u*Y))),w[i+136>>2]=T+m(m(R*t)+m(m(d*Z)+m(c*Y))),w[i+132>>2]=j+m(m(R*l)+m(m(d*s)+m(h*Y))),o[i+700>>2]=f,o[i+696>>2]=-1,o[i+688>>2]=o[i+44>>2],o[i+684>>2]=r,o[i+680>>2]=0,o[i+692>>2]=i+84,o[i+460>>2]=0,o[i+448>>2]=1065353216,o[i+452>>2]=0,o[i+472>>2]=f,o[i+464>>2]=r,o[i+444>>2]=13708,A=o[i+64>>2],o[i+468>>2]=A,w[i+448>>2]=w[A+4>>2],o[i+460>>2]=o[A+16>>2],cA(o[i+56>>2],o[i+60>>2],i+680|0,i+444|0),(0|e)!=(0|(f=f+1|0)););S=i+704|0}function bA(A,r,f){var e,i,n=m(0),a=0,t=m(0),c=m(0),b=m(0),u=m(0),l=0,s=0,k=0,d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),Q=m(0),E=m(0),W=0,p=0,F=0,R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=0,j=m(0),z=m(0),P=m(0),O=m(0),L=0,$=0,K=0,q=m(0),_=m(0),AA=0,rA=0;for(S=e=S-96|0,o[A+376>>2]=0,o[A+364>>2]=4,o[A+368>>2]=0,l=A+316|0,o[A+360>>2]=l,o[A+356>>2]=A+284,o[A+352>>2]=A+252,o[A+348>>2]=A+220,a=o[r+4>>2],o[A>>2]=o[r>>2],o[A+4>>2]=a,a=o[r+20>>2],o[A+16>>2]=o[r+16>>2],o[A+20>>2]=a,a=o[r+12>>2],o[A+8>>2]=o[r+8>>2],o[A+12>>2]=a,a=o[r+36>>2],o[A+32>>2]=o[r+32>>2],o[A+36>>2]=a,a=o[r+28>>2],o[A+24>>2]=o[r+24>>2],o[A+28>>2]=a,a=o[r+52>>2],o[A+48>>2]=o[r+48>>2],o[A+52>>2]=a,a=o[r+44>>2],o[A+40>>2]=o[r+40>>2],o[A+44>>2]=a,a=o[4+(s=r- -64|0)>>2],o[(F=A- -64|0)>>2]=o[s>>2],o[F+4>>2]=a,a=o[r+60>>2],o[A+56>>2]=o[r+56>>2],o[A+60>>2]=a,a=o[r+84>>2],o[A+80>>2]=o[r+80>>2],o[A+84>>2]=a,a=o[r+76>>2],o[A+72>>2]=o[r+72>>2],o[A+76>>2]=a,a=o[r+100>>2],o[A+96>>2]=o[r+96>>2],o[A+100>>2]=a,a=o[r+92>>2],o[A+88>>2]=o[r+88>>2],o[A+92>>2]=a,a=o[r+108>>2],o[A+104>>2]=o[r+104>>2],o[A+108>>2]=a,a=o[r+116>>2],o[A+112>>2]=o[r+112>>2],o[A+116>>2]=a,a=o[r+124>>2],r=o[r+120>>2],o[A+144>>2]=0,o[A+180>>2]=0,o[A+120>>2]=r,o[A+124>>2]=a,r=o[f+4>>2],o[A+128>>2]=o[f>>2],o[A+132>>2]=r,r=o[f+12>>2],o[A+136>>2]=o[f+8>>2],o[A+140>>2]=r,o[A+364>>2]=3,o[A+164>>2]=0,o[A+328>>2]=0,o[A+180>>2]=1,o[A+148>>2]=l,c=w[A+136>>2],b=w[A+128>>2],n=w[A+132>>2],r=(t=m(m(c*c)+m(m(b*b)+m(n*n))))>m(0),c=m(r?-c:0),b=m(r?-b:1),n=m(r?-n:0),u=m(m(1)/m(N(m(m(c*c)+m(m(b*b)+m(n*n)))))),w[A+324>>2]=c*u,w[A+320>>2]=n*u,w[l>>2]=b*u,Yr(e+16|0,A,l),r=o[e+28>>2],o[A+340>>2]=o[e+24>>2],o[A+344>>2]=r,r=o[e+20>>2],o[A+332>>2]=o[e+16>>2],o[A+336>>2]=r,o[A+164>>2]=1065353216,f=o[A+148>>2],r=o[f+20>>2],o[A+128>>2]=o[f+16>>2],o[A+132>>2]=r,r=o[f+28>>2],o[A+136>>2]=o[f+24>>2],o[A+140>>2]=r,r=o[f+28>>2],o[e+72>>2]=o[f+24>>2],o[e+76>>2]=r,r=o[f+20>>2],o[e+64>>2]=o[f+16>>2],o[e+68>>2]=r,r=o[f+28>>2],o[e+56>>2]=o[f+24>>2],o[e+60>>2]=r,r=o[f+20>>2],o[e+48>>2]=o[f+16>>2],o[e+52>>2]=r,r=o[f+28>>2],o[e+40>>2]=o[f+24>>2],o[e+44>>2]=r,r=o[f+20>>2],o[e+32>>2]=o[f+16>>2],o[e+36>>2]=r,r=o[f+28>>2],o[e+24>>2]=o[f+24>>2],o[e+28>>2]=r,r=o[f+20>>2],o[e+16>>2]=o[f+16>>2],o[e+20>>2]=r,n=w[A+136>>2],d=w[A+132>>2],u=w[A+128>>2],W=o[A+368>>2],i=A+148|0;;){A:{r:{f:if((v=m(N(m(m(n*n)+m(m(u*u)+m(d*d))))))>2]=1;else if(a=G(W,36),f=o[180+(F=a+A|0)>>2],o[164+((s=f<<2)+F|0)>>2]=0,r=o[A+364>>2]-1|0,o[A+364>>2]=r,p=a+i|0,a=o[348+((r<<2)+A|0)>>2],o[s+p>>2]=a,o[F+180>>2]=f+1,o[a+12>>2]=0,b=m(m(1)/v),w[a+8>>2]=b*m(-n),w[a+4>>2]=b*m(-d),w[a>>2]=b*m(-u),Yr(e+80|0,A,a),r=o[e+92>>2],o[a+24>>2]=o[e+88>>2],o[a+28>>2]=r,r=o[e+84>>2],o[a+16>>2]=o[e+80>>2],o[a+20>>2]=r,a=o[F+180>>2],s=o[((a<<2)+p|0)-4>>2],u=w[s+24>>2],n=m(u-w[e+24>>2]),Q=m(n*n),c=w[s+16>>2],n=m(c-w[e+16>>2]),h=m(n*n),b=w[s+20>>2],n=m(b-w[e+20>>2]),m(Q+m(h+m(n*n)))>2]),Q=m(n*n),n=m(c-w[e+32>>2]),h=m(n*n),n=m(b-w[e+36>>2]),m(Q+m(h+m(n*n)))>2]),Q=m(n*n),n=m(c-w[e+48>>2]),h=m(n*n),n=m(b-w[e+52>>2]),m(Q+m(h+m(n*n)))>2]),Q=m(n*n),n=m(c-w[e+64>>2]),h=m(n*n),n=m(b-w[e+68>>2]),m(Q+m(h+m(n*n)))>2],f=G(W,36)+A|0,r=o[f+180>>2]-1|0,o[f+180>>2]=r,f=o[148+(f+(r<<2)|0)>>2],r=o[A+364>>2],o[A+364>>2]=r+1,o[348+((r<<2)+A|0)>>2]=f;else{if(r=o[s+28>>2],o[8+(f=(e+16|0)+((K=K+1&3)<<4)|0)>>2]=o[s+24>>2],o[f+12>>2]=r,r=o[s+20>>2],o[f>>2]=o[s+16>>2],o[f+4>>2]=r,j=(n=m(m(m(w[A+136>>2]*u)+m(m(w[A+128>>2]*c)+m(w[A+132>>2]*b)))/v))>j?n:j,m(m(v*m(-9999999747378752e-20))+m(v-j))<=m(0)){W=o[A+368>>2],f=G(W,36)+A|0,r=o[f+180>>2]-1|0,o[f+180>>2]=r,f=o[148+(f+(r<<2)|0)>>2],r=o[A+364>>2],o[A+364>>2]=r+1,o[348+((r<<2)+A|0)>>2]=f;break f}o[e+12>>2]=0;e:{i:{n:switch(a-2|0){case 0:if(f=o[p+4>>2],c=w[f+24>>2],r=o[p>>2],R=w[r+24>>2],d=m(c-R),b=w[f+16>>2],B=w[r+16>>2],v=m(b-B),t=w[f+20>>2],Z=w[r+20>>2],u=m(t-Z),!((n=m(m(d*d)+m(m(v*v)+m(u*u))))>m(0)))break e;if((E=m(m(-m(m(R*d)+m(m(B*v)+m(Z*u))))/n))>=m(1)){o[e+12>>2]=2,o[e+80>>2]=0,o[e+84>>2]=1065353216,t=m(m(c*c)+m(m(b*b)+m(t*t)));break i}if(E<=m(0)){o[e+12>>2]=1,o[e+80>>2]=1065353216,o[e+84>>2]=0,t=m(m(R*R)+m(m(B*B)+m(Z*Z)));break i}o[e+12>>2]=3,w[e+84>>2]=E,w[e+80>>2]=m(1)-E,n=m(R+m(d*E)),h=m(n*n),n=m(B+m(v*E)),t=m(n*n),n=m(Z+m(u*E)),t=m(h+m(t+m(n*n)));break i;case 1:t=xA(o[p>>2]+16|0,o[p+4>>2]+16|0,o[p+8>>2]+16|0,e+80|0,e+12|0);break i;case 2:break n;default:break i}S=k=S-32|0,n=m(-1),s=o[p+4>>2]+16|0,Q=w[s+4>>2],l=o[p+12>>2]+16|0,D=w[l+4>>2],C=m(Q-D),a=o[p>>2]+16|0,h=w[a+8>>2],J=w[l+8>>2],x=m(h-J),q=m(C*m(-x)),f=o[p+8>>2]+16|0,b=w[f>>2],y=w[l>>2],V=m(b-y),z=w[a>>2],M=m(z-y),_=m(M*C),E=w[f+8>>2],g=m(E-J),c=w[s>>2],H=m(c-y),P=w[a+4>>2],I=m(P-D),R=m(H*m(-I)),O=w[s+8>>2],T=m(O-J),B=m(T*m(-M)),t=w[f+4>>2],X=m(t-D),Z=m(I*T),d=m(x*H),(Y=m(m(q*V)+m(m(_*g)+m(m(R*g)+m(m(B*X)+m(m(Z*V)+m(d*X)))))))>m(0)|Y>2]=0,o[k+16>>2]=0,o[k+20>>2]=0,o[k+12>>2]=0,m(Y*m(m(J*m(_+R))+m(m(y*m(Z+q))+m(D*m(d+B)))))>m(0)&&(n=xA(a,s,l,k+16|0,k+12|0),r=o[k+12>>2],o[e+12>>2]=3&r|r<<1&8,w[e+80>>2]=w[k+16>>2],t=w[k+20>>2],o[e+88>>2]=0,w[e+84>>2]=t,w[e+92>>2]=w[k+24>>2]),m(Y*m(m(w[l+8>>2]*m(m(H*X)-m(V*C)))+m(m(w[l>>2]*m(m(C*g)-m(X*T)))+m(w[l+4>>2]*m(m(T*V)-m(g*H))))))>m(0)&&(t=xA(s,f,l,k+16|0,k+12|0),n>2]=o[k+12>>2]<<1&14,w[e+84>>2]=w[k+16>>2],n=w[k+20>>2],o[e+80>>2]=0,w[e+88>>2]=n,w[e+92>>2]=w[k+24>>2],n=t)),m(Y*m(m(w[l+8>>2]*m(m(V*I)-m(M*X)))+m(m(w[l>>2]*m(m(X*x)-m(I*g)))+m(w[l+4>>2]*m(m(g*M)-m(x*V))))))>m(0)&&(t=xA(f,a,l,k+16|0,k+12|0),n>2],o[e+12>>2]=r>>>1&1|r<<1&8|r<<2&4,w[e+88>>2]=w[k+16>>2],n=w[k+20>>2],o[e+84>>2]=0,w[e+80>>2]=n,w[e+92>>2]=w[k+24>>2],n=t)),n>2]=15,B=w[f>>2],Z=w[s+4>>2],d=w[l+8>>2],v=w[f+4>>2],u=w[s+8>>2],c=w[l>>2],b=w[f+8>>2],t=w[s>>2],n=w[l+4>>2],E=m(m(m(m(m(B*Z)*d)+m(m(m(m(m(v*u)*c)+m(m(b*t)*n))-m(m(u*B)*n))-m(m(t*v)*d)))-m(m(Z*b)*c))/Y),w[e+80>>2]=E,B=w[a>>2],Z=w[f+4>>2],d=w[l+8>>2],v=w[a+4>>2],u=w[f+8>>2],c=w[l>>2],b=w[a+8>>2],t=w[f>>2],n=w[l+4>>2],R=m(m(m(m(m(B*Z)*d)+m(m(m(m(m(v*u)*c)+m(m(b*t)*n))-m(m(u*B)*n))-m(m(t*v)*d)))-m(m(Z*b)*c))/Y),w[e+84>>2]=R,B=w[s>>2],Z=w[a+4>>2],d=w[l+8>>2],v=w[s+4>>2],u=w[a+8>>2],c=w[l>>2],b=w[s+8>>2],t=w[a>>2],n=w[l+4>>2],n=m(m(m(m(m(B*Z)*d)+m(m(m(m(m(v*u)*c)+m(m(b*t)*n))-m(m(u*B)*n))-m(m(t*v)*d)))-m(m(Z*b)*c))/Y),w[e+88>>2]=n,w[e+92>>2]=m(1)-m(m(E+R)+n),n=m(0)))),S=k+32|0,t=n}if(t>=m(0)){if(r=G(W=1-W|0,36),o[180+(L=r+A|0)>>2]=0,o[A+136>>2]=0,o[A+140>>2]=0,o[A+128>>2]=0,o[A+132>>2]=0,o[A+368>>2]=W,!(k=o[F+180>>2])){n=m(0),$=o[e+12>>2],d=m(0),u=m(0);break r}for(l=r+i|0,f=o[A+364>>2],n=m(0),U=0,$=o[e+12>>2],d=m(0),u=m(0),r=0;AA=o[(s=(F=r<<2)+p|0)>>2],$>>>r&1?(o[(a=U<<2)+l>>2]=AA,c=w[F+(e+80|0)>>2],U=U+1|0,o[L+180>>2]=U,w[164+(a+L|0)>>2]=c,a=o[s>>2],b=w[a+24>>2],n=w[a+20>>2],u=m(m(c*w[a+16>>2])+w[A+128>>2]),w[A+128>>2]=u,d=m(m(c*n)+w[A+132>>2]),w[A+132>>2]=d,n=m(m(c*b)+w[A+136>>2]),w[A+136>>2]=n):(a=f+1|0,o[A+364>>2]=a,o[348+((f<<2)+A|0)>>2]=AA,f=a),(0|k)!=(0|(r=r+1|0)););break r}}W=o[A+368>>2],f=G(W,36)+A|0,r=o[f+180>>2]-1|0,o[f+180>>2]=r,f=o[148+(f+(r<<2)|0)>>2],r=o[A+364>>2],o[A+364>>2]=r+1,o[348+((r<<2)+A|0)>>2]=f}r=o[A+376>>2];break A}if(r=(rA=rA+1|0)>>>0>=128?2:15==(0|$)?1:o[A+376>>2],o[A+376>>2]=r,!r)continue}break}switch(o[A+372>>2]=148+(G(W,36)+A|0),n=m(0),0|r){case 0:n=w[A+136>>2],h=m(n*n),n=w[A+128>>2],t=m(n*n),n=w[A+132>>2],n=m(N(m(h+m(t+m(n*n)))));case 1:w[A+144>>2]=n}return S=e+96|0,r}function uA(A,r,f,e,i,n,t,c){var b,u=0,l=0,s=0,k=0,d=0,h=m(0),B=0,Z=0,Q=0,E=m(0),W=m(0),N=m(0),p=0,F=m(0),R=0,Y=0,V=0,g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=0,I=0,T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=0,L=0,$=m(0),K=m(0),q=m(0),_=m(0),AA=m(0),rA=m(0),fA=m(0),eA=m(0);if(S=b=S-32|0,(o[i+4>>2]&o[i+8>>2])<0&&(!(l=o[i+12>>2])||!l|!v[i+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](l)),a[i+16|0]=1,o[i+8>>2]=0,o[i+12>>2]=0),l=0,o[i+4>>2]=0,(0|(R=o[e+4>>2]))>o[i+8>>2]){if(R&&(o[8488]=o[8488]+1,l=0|Zn[o[8290]](R<<4,16),!((0|(k=o[i+4>>2]))<=0))){if(1!=(0|k))for(d=-2&k;Q=(Y=u<<4)+l|0,p=Y+o[i+12>>2]|0,I=o[p+4>>2],o[Q>>2]=o[p>>2],o[Q+4>>2]=I,I=o[p+12>>2],o[Q+8>>2]=o[p+8>>2],o[Q+12>>2]=I,Y=(p=16|Y)+l|0,p=p+o[i+12>>2]|0,Q=o[p+4>>2],o[Y>>2]=o[p>>2],o[Y+4>>2]=Q,Q=o[p+12>>2],o[Y+8>>2]=o[p+8>>2],o[Y+12>>2]=Q,u=u+2|0,(0|d)!=(0|(s=s+2|0)););1&k&&(s=(u<<=4)+l|0,u=u+o[i+12>>2]|0,k=o[u+4>>2],o[s>>2]=o[u>>2],o[s+4>>2]=k,k=o[u+12>>2],o[s+8>>2]=o[u+8>>2],o[s+12>>2]=k)}!(u=o[i+12>>2])||!u|!v[i+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](u)),o[i+12>>2]=l,a[i+16|0]=1,o[i+8>>2]=R}if(!((0|(s=o[r+28>>2]))<=0)){for(F=w[f+40>>2],g=w[f+36>>2],D=w[f+24>>2],C=w[f+20>>2],k=o[r+36>>2],J=w[A+8>>2],x=w[A+4>>2],M=w[A>>2],T=w[f+32>>2],U=w[f+16>>2],j=w[f+8>>2],z=w[f+4>>2],X=w[f>>2],u=0,h=m(34028234663852886e22),l=-1;R=k+G(u,36)|0,N=w[R+28>>2],W=w[R+20>>2],E=w[R+24>>2],h=(R=(N=m(m(m(m(F*N)+m(m(T*W)+m(E*g)))*J)+m(m(m(m(j*N)+m(m(X*W)+m(E*z)))*M)+m(m(m(D*N)+m(m(U*W)+m(E*C)))*x))))>2]+G(l,36)|0,(0|(L=o[p+4>>2]))<=0)l=e;else for(R=0;;){if(l=i,I=(0|L)==(0|(R=(i=R)+1|0)),k=o[r+16>>2],s=o[p+12>>2],u=k+(o[s+((I?0:R)<<2)>>2]<<4)|0,X=w[u+8>>2],y=w[u>>2],P=w[u+4>>2],i=k+(o[s+(i<<2)>>2]<<4)|0,h=w[i+8>>2],N=w[i>>2],W=w[i+4>>2],rA=w[f+56>>2],fA=w[f+48>>2],eA=w[f+52>>2],D=w[f+40>>2],C=w[f+32>>2],J=w[f+36>>2],E=w[p+28>>2],x=w[f+8>>2],F=w[p+20>>2],M=w[f>>2],g=w[p+24>>2],T=w[f+4>>2],U=w[f+24>>2],j=w[f+16>>2],z=w[f+20>>2],o[b+28>>2]=0,X=m(h-X),y=m(N-y),P=m(W-P),$=m(m(x*X)+m(m(M*y)+m(T*P))),K=m(m(U*E)+m(m(j*F)+m(z*g))),q=m(m(x*E)+m(m(M*F)+m(T*g))),_=m(m(U*X)+m(m(j*y)+m(P*z))),AA=m(m($*K)-m(q*_)),w[b+24>>2]=-AA,X=m(m(D*X)+m(m(C*y)+m(P*J))),E=m(m(D*E)+m(m(C*F)+m(J*g))),y=m(m(X*q)-m(E*$)),w[b+20>>2]=-y,X=m(-m(m(_*E)-m(K*X))),w[b+16>>2]=X,Y=0,i=e,(0|(O=o[e+4>>2]))>=2)for(e=(o[i+12>>2]+(O<<4)|0)-16|0,E=w[e+8>>2],F=w[e>>2],g=w[e+4>>2],x=m(-m(m(m(m(fA+m(m(h*x)+m(m(N*M)+m(W*T))))*X)-m(m(eA+m(m(h*U)+m(m(N*j)+m(W*z))))*y))-m(m(rA+m(m(h*D)+m(m(N*C)+m(W*J))))*AA))),h=m(m(m(w[b+24>>2]*E)+m(m(w[b+16>>2]*F)+m(g*w[b+20>>2])))+x);;){e=o[i+12>>2]+(Y<<4)|0,N=w[e+8>>2],C=w[e>>2],W=w[e+4>>2],D=m(m(m(w[b+24>>2]*N)+m(m(w[b+16>>2]*C)+m(W*w[b+20>>2])))+x),J=w[e+12>>2];A:{r:{f:{if(h>2]))==o[l+8>>2]&&!((0|(Q=e?e<<1:1))<=(0|e))){if(Q?(o[8488]=o[8488]+1,s=0|Zn[o[8290]](Q<<4,16),e=o[l+4>>2]):s=0,!((0|e)<=0)){if(u=0,1!=(0|e))for(H=-2&e,k=0;Z=(B=u<<4)+s|0,d=B+o[l+12>>2]|0,V=o[d+4>>2],o[Z>>2]=o[d>>2],o[Z+4>>2]=V,V=o[d+12>>2],o[Z+8>>2]=o[d+8>>2],o[Z+12>>2]=V,B=(d=16|B)+s|0,d=d+o[l+12>>2]|0,Z=o[d+4>>2],o[B>>2]=o[d>>2],o[B+4>>2]=Z,Z=o[d+12>>2],o[B+8>>2]=o[d+8>>2],o[B+12>>2]=Z,u=u+2|0,(0|H)!=(0|(k=k+2|0)););1&e&&(u=(e=u<<4)+s|0,e=e+o[l+12>>2]|0,k=o[e+4>>2],o[u>>2]=o[e>>2],o[u+4>>2]=k,k=o[e+12>>2],o[u+8>>2]=o[e+8>>2],o[u+12>>2]=k)}!(e=o[l+12>>2])||!e|!v[l+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[l+12>>2]=s,a[l+16|0]=1,o[l+8>>2]=Q,e=o[l+4>>2]}u=o[l+12>>2]+(e<<4)|0;break f}if(h=m(h/m(h-D)),J=m(m(N-E)*h),M=m(m(W-g)*h),F=m(m(m(C-F)*h)+F),(0|(e=o[l+4>>2]))==o[l+8>>2]&&!((0|(Q=e?e<<1:1))<=(0|e))){if(Q?(o[8488]=o[8488]+1,s=0|Zn[o[8290]](Q<<4,16),e=o[l+4>>2]):s=0,!((0|e)<=0)){if(u=0,1!=(0|e))for(H=-2&e,k=0;Z=(B=u<<4)+s|0,d=B+o[l+12>>2]|0,V=o[d+4>>2],o[Z>>2]=o[d>>2],o[Z+4>>2]=V,V=o[d+12>>2],o[Z+8>>2]=o[d+8>>2],o[Z+12>>2]=V,B=(d=16|B)+s|0,d=d+o[l+12>>2]|0,Z=o[d+4>>2],o[B>>2]=o[d>>2],o[B+4>>2]=Z,Z=o[d+12>>2],o[B+8>>2]=o[d+8>>2],o[B+12>>2]=Z,u=u+2|0,(0|H)!=(0|(k=k+2|0)););1&e&&(u=(e=u<<4)+s|0,e=e+o[l+12>>2]|0,k=o[e+4>>2],o[u>>2]=o[e>>2],o[u+4>>2]=k,k=o[e+12>>2],o[u+8>>2]=o[e+8>>2],o[u+12>>2]=k)}!(e=o[l+12>>2])||!e|!v[l+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[l+12>>2]=s,a[l+16|0]=1,o[l+8>>2]=Q,e=o[l+4>>2]}h=m(J+E),u=o[l+12>>2]+(e<<4)|0,w[u>>2]=F,J=m(0),E=m(M+g);break r}if(!(D>2]))==o[l+8>>2]&&!((0|(Q=e?e<<1:1))<=(0|e))){if(Q?(o[8488]=o[8488]+1,s=0|Zn[o[8290]](Q<<4,16),e=o[l+4>>2]):s=0,!((0|e)<=0)){if(u=0,1!=(0|e))for(H=-2&e,k=0;Z=(B=u<<4)+s|0,d=B+o[l+12>>2]|0,V=o[d+4>>2],o[Z>>2]=o[d>>2],o[Z+4>>2]=V,V=o[d+12>>2],o[Z+8>>2]=o[d+8>>2],o[Z+12>>2]=V,B=(d=16|B)+s|0,d=d+o[l+12>>2]|0,Z=o[d+4>>2],o[B>>2]=o[d>>2],o[B+4>>2]=Z,Z=o[d+12>>2],o[B+8>>2]=o[d+8>>2],o[B+12>>2]=Z,u=u+2|0,(0|H)!=(0|(k=k+2|0)););1&e&&(u=(e=u<<4)+s|0,e=e+o[l+12>>2]|0,k=o[e+4>>2],o[u>>2]=o[e>>2],o[u+4>>2]=k,k=o[e+12>>2],o[u+8>>2]=o[e+8>>2],o[u+12>>2]=k)}!(e=o[l+12>>2])||!e|!v[l+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[l+12>>2]=s,a[l+16|0]=1,o[l+8>>2]=Q,e=o[l+4>>2]}if(e=o[l+12>>2]+(e<<4)|0,o[e+12>>2]=0,w[e+8>>2]=E,w[e+4>>2]=g,w[e>>2]=h,e=o[l+4>>2]+1|0,o[l+4>>2]=e,o[l+8>>2]==(0|e)&&!((0|(Q=e?e<<1:1))<=(0|e))){if(Q?(o[8488]=o[8488]+1,s=0|Zn[o[8290]](Q<<4,16),e=o[l+4>>2]):s=0,!((0|e)<=0)){if(u=0,1!=(0|e))for(H=-2&e,k=0;Z=(B=u<<4)+s|0,d=B+o[l+12>>2]|0,V=o[d+4>>2],o[Z>>2]=o[d>>2],o[Z+4>>2]=V,V=o[d+12>>2],o[Z+8>>2]=o[d+8>>2],o[Z+12>>2]=V,B=(d=16|B)+s|0,d=d+o[l+12>>2]|0,Z=o[d+4>>2],o[B>>2]=o[d>>2],o[B+4>>2]=Z,Z=o[d+12>>2],o[B+8>>2]=o[d+8>>2],o[B+12>>2]=Z,u=u+2|0,(0|H)!=(0|(k=k+2|0)););1&e&&(u=(e=u<<4)+s|0,e=e+o[l+12>>2]|0,k=o[e+4>>2],o[u>>2]=o[e>>2],o[u+4>>2]=k,k=o[e+12>>2],o[u+8>>2]=o[e+8>>2],o[u+12>>2]=k)}!(e=o[l+12>>2])||!e|!v[l+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[l+12>>2]=s,a[l+16|0]=1,o[l+8>>2]=Q,e=o[l+4>>2]}u=o[l+12>>2]+(e<<4)|0}w[u>>2]=C,h=N,E=W}w[u+12>>2]=J,w[u+8>>2]=h,w[u+4>>2]=E,o[l+4>>2]=o[l+4>>2]+1}if(h=D,E=N,g=W,F=C,(0|O)==(0|(Y=Y+1|0)))break}if(!((0|(e=o[i+4>>2]))>=0)){if(o[i+8>>2]<0&&(!(u=o[i+12>>2])||!u|!v[i+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](u)),a[i+16|0]=1,o[i+8>>2]=0,o[i+12>>2]=0),s=0,u=e,Y=0-e&3)for(;Q=o[b+4>>2],k=o[i+12>>2]+(u<<4)|0,o[k>>2]=o[b>>2],o[k+4>>2]=Q,Q=o[b+12>>2],o[k+8>>2]=o[b+8>>2],o[k+12>>2]=Q,u=u+1|0,(0|Y)!=(0|(s=s+1|0)););if(!(e>>>0>4294967292))for(;k=o[b+4>>2],s=(e=u<<4)+o[i+12>>2]|0,o[s>>2]=o[b>>2],o[s+4>>2]=k,k=o[b+12>>2],o[s+8>>2]=o[b+8>>2],o[s+12>>2]=k,k=o[b+12>>2],s=e+o[i+12>>2]|0,o[s+24>>2]=o[b+8>>2],o[s+28>>2]=k,k=o[b+4>>2],o[s+16>>2]=o[b>>2],o[s+20>>2]=k,k=o[b+12>>2],s=e+o[i+12>>2]|0,o[s+40>>2]=o[b+8>>2],o[s+44>>2]=k,k=o[b+4>>2],o[s+32>>2]=o[b>>2],o[s+36>>2]=k,s=o[b+12>>2],e=e+o[i+12>>2]|0,o[e+56>>2]=o[b+8>>2],o[e+60>>2]=s,s=o[b+4>>2],o[e+48>>2]=o[b>>2],o[e+52>>2]=s,u=u+4|0;);}if(o[i+4>>2]=0,e=l,I)break}if(!((0|(s=o[l+4>>2]))<=0))for(h=w[p+28>>2],N=w[p+20>>2],W=w[p+24>>2],E=m(m(w[f+40>>2]*h)+m(m(w[f+32>>2]*N)+m(W*w[f+36>>2]))),F=m(m(w[f+8>>2]*h)+m(m(w[f>>2]*N)+m(W*w[f+4>>2]))),h=m(m(w[f+24>>2]*h)+m(m(w[f+16>>2]*N)+m(W*w[f+20>>2]))),N=m(w[p+32>>2]-m(m(E*w[f+56>>2])+m(m(F*w[f+48>>2])+m(h*w[f+52>>2])))),i=0;r=o[l+12>>2]+(i<<4)|0,(W=n>=(W=m(N+m(m(E*w[r+8>>2])+m(m(F*w[r>>2])+m(h*w[r+4>>2])))))?n:W)<=t&&(f=o[r+12>>2],o[b+24>>2]=o[r+8>>2],o[b+28>>2]=f,f=o[r+4>>2],o[b+16>>2]=o[r>>2],o[b+20>>2]=f,Zn[o[o[c>>2]+16>>2]](c,A,b+16|0,W),s=o[l+4>>2]),(0|s)>(0|(i=i+1|0)););}}S=b+32|0}function lA(A,r,f,e,i){var n,c=m(0),b=0,u=0,l=0,s=0,k=0,d=m(0),B=m(0),Z=m(0),G=m(0),Q=0,E=m(0),W=0,N=0,p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0);if(S=n=S-48|0,a[A+60|0]=f,f){if(c=w[e>>2],d=w[e+4>>2],B=w[e+8>>2],o[A+16>>2]=0,G=m(B+m(-1)),w[A+12>>2]=G,d=m(d+m(-1)),w[A+8>>2]=d,B=m(c+m(-1)),w[A+4>>2]=B,Z=w[i>>2],E=w[i+4>>2],c=w[i+8>>2],a[A+60|0]=1,o[A+48>>2]=0,o[A+32>>2]=0,p=m(c+m(1)),w[A+28>>2]=p,F=m(E+m(1)),w[A+24>>2]=F,E=m(Z+m(1)),w[A+20>>2]=E,R=m(m(65533)/m(p-G)),w[A+44>>2]=R,Z=m(m(65533)/m(F-d)),w[A+40>>2]=Z,Y=m(m(65533)/m(E-B)),w[A+36>>2]=Y,f=(c=m(m(G-G)*R))=m(0)?~~c>>>0:0,V=m((65534&f)>>>0),f=(c=m(m(d-d)*Z))=m(0)?~~c>>>0:0,Z=m(d+m(m((65534&f)>>>0)/Z)),f=(c=m(m(B-B)*Y))=m(0)?~~c>>>0:0,(c=m(m(B+m(m((65534&f)>>>0)/Y))+m(-1)))>2]=c,B=c),(c=m(Z+m(-1)))>2]=c,d=c),(c=m(m(G+m(V/R))+m(-1)))>2]=c,G=c),c=m(p-G),R=m(m(65533)/c),f=(c=m(m(c*R)+m(1)))=m(0)?~~c>>>0:0,V=m((1|f)>>>0),c=m(F-d),Z=m(m(65533)/c),f=(c=m(m(c*Z)+m(1)))=m(0)?~~c>>>0:0,Z=m(d+m(m((1|f)>>>0)/Z)),c=m(E-B),Y=m(m(65533)/c),f=(c=m(m(c*Y)+m(1)))=m(0)?~~c>>>0:0,(c=m(m(B+m(m((1|f)>>>0)/Y))+m(1)))>E&&(w[A+20>>2]=c,E=c),(c=m(Z+m(1)))>F&&(w[A+24>>2]=c,F=c),(c=m(m(G+m(V/R))+m(1)))>p&&(w[A+28>>2]=c,p=c),o[A+48>>2]=0,w[A+44>>2]=m(65533)/m(p-G),w[A+40>>2]=m(65533)/m(F-d),w[A+36>>2]=m(65533)/m(E-B),o[n+32>>2]=A,o[n+28>>2]=A+104,o[n+24>>2]=20680,Zn[o[o[r>>2]+8>>2]](r,n+24|0,A+4|0,A+20|0),!((0|(f=o[A+128>>2]))>=(0|(s=(W=o[A+108>>2])<<1)))){if((0|s)>o[A+132>>2]){if(W?(o[8488]=o[8488]+1,e=0|Zn[o[8290]](W<<5,16),i=o[A+128>>2]):(e=0,i=f),!((0|i)<=0)){if(r=0,1!=(0|i))for(N=-2&i;u=(l=r<<4)+e|0,Q=l+o[A+136>>2]|0,b=o[Q+4>>2],o[u>>2]=o[Q>>2],o[u+4>>2]=b,b=o[Q+12>>2],o[u+8>>2]=o[Q+8>>2],o[u+12>>2]=b,u=(b=16|l)+e|0,l=b+o[A+136>>2]|0,b=o[l+4>>2],o[u>>2]=o[l>>2],o[u+4>>2]=b,b=o[l+12>>2],o[u+8>>2]=o[l+8>>2],o[u+12>>2]=b,r=r+2|0,(0|N)!=(0|(k=k+2|0)););1&i&&(i=(r<<=4)+e|0,b=r+o[A+136>>2]|0,r=o[b+4>>2],o[i>>2]=o[b>>2],o[i+4>>2]=r,r=o[b+12>>2],o[i+8>>2]=o[b+8>>2],o[i+12>>2]=r)}!(r=o[A+136>>2])||!r|!v[A+140|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+136>>2]=e,a[A+140|0]=1,o[A+132>>2]=s}if(i=s+~f|0,e=s-f&3)for(r=0;b=o[A+136>>2]+(f<<4)|0,o[b>>2]=0,o[b+4>>2]=0,o[b+8>>2]=0,o[b+12>>2]=0,f=f+1|0,(0|e)!=(0|(r=r+1|0)););if(!(i>>>0<3))for(;r=(e=f<<4)+o[A+136>>2]|0,o[r>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0,r=e+o[A+136>>2]|0,o[r+24>>2]=0,o[r+28>>2]=0,o[r+16>>2]=0,o[r+20>>2]=0,r=e+o[A+136>>2]|0,o[r+40>>2]=0,o[r+44>>2]=0,o[r+32>>2]=0,o[r+36>>2]=0,r=e+o[A+136>>2]|0,o[r+56>>2]=0,o[r+60>>2]=0,o[r+48>>2]=0,o[r+52>>2]=0,(0|s)!=(0|(f=f+4|0)););}o[A+128>>2]=s}else{if(o[n+40>>2]=20812,o[n+44>>2]=A- -64,o[n+32>>2]=-581039253,o[n+36>>2]=0,o[n+24>>2]=-581039253,o[n+28>>2]=-581039253,o[n+16>>2]=1566444395,o[n+20>>2]=0,o[n+8>>2]=1566444395,o[n+12>>2]=1566444395,Zn[o[o[r>>2]+8>>2]](r,n+40|0,n+24|0,n+8|0),!((0|(r=o[A+88>>2]))>=(0|(k=(W=o[A+68>>2])<<1)))){if((0|k)>o[A+92>>2]){if(W?(o[8488]=o[8488]+1,Q=0|Zn[o[8290]](W<<7,16),f=o[A+88>>2]):f=r,!((0|f)<=0)){if(e=0,1!=(0|f))for(N=-2&f;u=(l=e<<6)+Q|0,s=l+o[A+96>>2]|0,i=o[s+4>>2],o[u>>2]=o[s>>2],o[u+4>>2]=i,i=o[s+60>>2],o[u+56>>2]=o[s+56>>2],o[u+60>>2]=i,i=o[s+52>>2],o[u+48>>2]=o[s+48>>2],o[u+52>>2]=i,i=o[s+44>>2],o[u+40>>2]=o[s+40>>2],o[u+44>>2]=i,i=o[s+36>>2],o[u+32>>2]=o[s+32>>2],o[u+36>>2]=i,i=o[s+28>>2],o[u+24>>2]=o[s+24>>2],o[u+28>>2]=i,i=o[s+20>>2],o[u+16>>2]=o[s+16>>2],o[u+20>>2]=i,i=o[s+12>>2],o[u+8>>2]=o[s+8>>2],o[u+12>>2]=i,u=(i=64|l)+Q|0,l=i+o[A+96>>2]|0,i=o[l+4>>2],o[u>>2]=o[l>>2],o[u+4>>2]=i,i=o[l+12>>2],o[u+8>>2]=o[l+8>>2],o[u+12>>2]=i,i=o[l+20>>2],o[u+16>>2]=o[l+16>>2],o[u+20>>2]=i,i=o[l+28>>2],o[u+24>>2]=o[l+24>>2],o[u+28>>2]=i,i=o[l+36>>2],o[u+32>>2]=o[l+32>>2],o[u+36>>2]=i,i=o[l+44>>2],o[u+40>>2]=o[l+40>>2],o[u+44>>2]=i,i=o[l+52>>2],o[u+48>>2]=o[l+48>>2],o[u+52>>2]=i,i=o[l+60>>2],o[u+56>>2]=o[l+56>>2],o[u+60>>2]=i,e=e+2|0,(0|N)!=(0|(b=b+2|0)););1&f&&(e=(f=e<<6)+Q|0,i=f+o[A+96>>2]|0,f=o[i+4>>2],o[e>>2]=o[i>>2],o[e+4>>2]=f,f=o[i+60>>2],o[e+56>>2]=o[i+56>>2],o[e+60>>2]=f,f=o[i+52>>2],o[e+48>>2]=o[i+48>>2],o[e+52>>2]=f,f=o[i+44>>2],o[e+40>>2]=o[i+40>>2],o[e+44>>2]=f,f=o[i+36>>2],o[e+32>>2]=o[i+32>>2],o[e+36>>2]=f,f=o[i+28>>2],o[e+24>>2]=o[i+24>>2],o[e+28>>2]=f,f=o[i+20>>2],o[e+16>>2]=o[i+16>>2],o[e+20>>2]=f,f=o[i+12>>2],o[e+8>>2]=o[i+8>>2],o[e+12>>2]=f)}!(f=o[A+96>>2])||!f|!v[A+100|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+96>>2]=Q,a[A+100|0]=1,o[A+92>>2]=k}if(e=k+~r|0,f=k-r&3)for(i=0;b=o[A+96>>2]+(r<<6)|0,o[b>>2]=0,o[b+4>>2]=0,o[b+56>>2]=0,o[b+60>>2]=0,o[b+48>>2]=0,o[b+52>>2]=0,o[b+40>>2]=0,o[b+44>>2]=0,o[b+32>>2]=0,o[b+36>>2]=0,o[b+24>>2]=0,o[b+28>>2]=0,o[b+16>>2]=0,o[b+20>>2]=0,o[b+8>>2]=0,o[b+12>>2]=0,r=r+1|0,(0|f)!=(0|(i=i+1|0)););if(!(e>>>0<3))for(;f=(e=r<<6)+o[A+96>>2]|0,o[f>>2]=0,o[f+4>>2]=0,o[f+56>>2]=0,o[f+60>>2]=0,o[f+48>>2]=0,o[f+52>>2]=0,o[f+40>>2]=0,o[f+44>>2]=0,o[f+32>>2]=0,o[f+36>>2]=0,o[f+24>>2]=0,o[f+28>>2]=0,o[f+16>>2]=0,o[f+20>>2]=0,o[f+8>>2]=0,o[f+12>>2]=0,f=e+o[A+96>>2]|0,o[f+120>>2]=0,o[f+124>>2]=0,o[f+112>>2]=0,o[f+116>>2]=0,o[f+104>>2]=0,o[f+108>>2]=0,o[f+96>>2]=0,o[f+100>>2]=0,o[f+88>>2]=0,o[f+92>>2]=0,o[f+80>>2]=0,o[f+84>>2]=0,o[f+72>>2]=0,o[f+76>>2]=0,o[(f=f- -64|0)>>2]=0,o[f+4>>2]=0,f=e+o[A+96>>2]|0,o[f+184>>2]=0,o[f+188>>2]=0,o[f+176>>2]=0,o[f+180>>2]=0,o[f+168>>2]=0,o[f+172>>2]=0,o[f+160>>2]=0,o[f+164>>2]=0,o[f+152>>2]=0,o[f+156>>2]=0,o[f+144>>2]=0,o[f+148>>2]=0,o[f+136>>2]=0,o[f+140>>2]=0,o[f+128>>2]=0,o[f+132>>2]=0,f=e+o[A+96>>2]|0,o[f+248>>2]=0,o[f+252>>2]=0,o[f+240>>2]=0,o[f+244>>2]=0,o[f+232>>2]=0,o[f+236>>2]=0,o[f+224>>2]=0,o[f+228>>2]=0,o[f+216>>2]=0,o[f+220>>2]=0,o[f+208>>2]=0,o[f+212>>2]=0,o[f+200>>2]=0,o[f+204>>2]=0,o[f+192>>2]=0,o[f+196>>2]=0,(0|k)!=(0|(r=r+4|0)););}o[A+88>>2]=k}if(o[A+56>>2]=0,q(A,0,W),!(o[A+152>>2]|!v[A+60|0])){if(o[A+156>>2])r=1;else{if(o[8488]=o[8488]+1,N=0|Zn[o[8290]](32,16),!((0|(u=o[A+152>>2]))<=0)){if(i=0,1!=(0|u))for(e=-2&u,k=0;f=(b=i<<5)+N|0,l=b+o[A+160>>2]|0,r=o[l+4>>2],o[f>>2]=o[l>>2],o[f+4>>2]=r,r=o[l+28>>2],o[f+24>>2]=o[l+24>>2],o[f+28>>2]=r,r=o[l+20>>2],o[f+16>>2]=o[l+16>>2],o[f+20>>2]=r,r=o[l+12>>2],o[f+8>>2]=o[l+8>>2],o[f+12>>2]=r,f=(r=32|b)+N|0,b=r+o[A+160>>2]|0,r=o[b+4>>2],o[f>>2]=o[b>>2],o[f+4>>2]=r,r=o[b+12>>2],o[f+8>>2]=o[b+8>>2],o[f+12>>2]=r,r=o[b+20>>2],o[f+16>>2]=o[b+16>>2],o[f+20>>2]=r,r=o[b+28>>2],o[f+24>>2]=o[b+24>>2],o[f+28>>2]=r,i=i+2|0,(0|e)!=(0|(k=k+2|0)););1&u&&(f=(r=i<<5)+N|0,e=r+o[A+160>>2]|0,r=o[e+4>>2],o[f>>2]=o[e>>2],o[f+4>>2]=r,r=o[e+28>>2],o[f+24>>2]=o[e+24>>2],o[f+28>>2]=r,r=o[e+20>>2],o[f+16>>2]=o[e+16>>2],o[f+20>>2]=r,r=o[e+12>>2],o[f+8>>2]=o[e+8>>2],o[f+12>>2]=r)}!(r=o[A+160>>2])||!r|!v[A+164|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+160>>2]=N,a[A+164|0]=1,o[A+156>>2]=1,r=o[A+152>>2]+1|0}o[A+152>>2]=r,e=o[A+160>>2],f=o[A+136>>2],t[e>>1]=h[f>>1],t[e+2>>1]=h[f+2>>1],t[e+4>>1]=h[f+4>>1],t[e+6>>1]=h[f+6>>1],t[e+8>>1]=h[f+8>>1],r=h[f+10>>1],o[e+12>>2]=0,t[e+10>>1]=r,r=o[f+12>>2],o[e+16>>2]=(0|r)>=0?1:0-r|0}o[A+168>>2]=o[A+152>>2],!(r=o[A+116>>2])||!r|!v[A+120|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+116>>2]=0,a[A+120|0]=1,o[A+108>>2]=0,o[A+112>>2]=0,!(r=o[A+76>>2])||!r|!v[A+80|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+76>>2]=0,a[A+80|0]=1,o[A+68>>2]=0,o[A+72>>2]=0,S=n+48|0}function sA(A,r,f){var e,i=0,n=0,t=0,c=0,b=0,u=0,l=m(0),s=0,k=m(0),d=m(0),h=0,B=m(0),Z=m(0),Q=m(0),E=m(0),W=m(0),N=m(0);if(S=e=S-256|0,!((0|(c=o[r+212>>2]))>=0))if(!(2&(c=o[r+252>>2]))||w[404+(c=c<<30>>31&r)>>2]==m(0)&!(2&v[c+204|0])){if(!((0|(c=o[A+188>>2]))>=0)){if(r=o[A+8>>2],o[A+188>>2]=r,Af(e+12|0,0,244),i=r,(0|r)==o[A+12>>2]&&(i=r,!((0|(s=r?r<<1:1))<=(0|r)))){if(s?(o[8488]=o[8488]+1,h=0|Zn[o[8290]](G(s,244),16),i=o[A+8>>2]):i=r,(0|i)>0)for(c=0;t=(n=G(c,244))+h|0,n=n+o[A+16>>2]|0,b=o[n+4>>2],o[t>>2]=o[n>>2],o[t+4>>2]=b,b=o[n+12>>2],o[t+8>>2]=o[n+8>>2],o[t+12>>2]=b,b=o[n+28>>2],o[t+24>>2]=o[n+24>>2],o[t+28>>2]=b,b=o[n+20>>2],o[t+16>>2]=o[n+16>>2],o[t+20>>2]=b,b=o[n+44>>2],o[t+40>>2]=o[n+40>>2],o[t+44>>2]=b,b=o[n+36>>2],o[t+32>>2]=o[n+32>>2],o[t+36>>2]=b,b=o[n+52>>2],o[t+48>>2]=o[n+48>>2],o[t+52>>2]=b,b=o[n+60>>2],o[t+56>>2]=o[n+56>>2],o[t+60>>2]=b,pr(t- -64|0,n- -64|0,180),(0|i)!=(0|(c=c+1|0)););!(c=o[A+16>>2])||!c|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](c)),o[A+16>>2]=h,a[A+20|0]=1,o[A+12>>2]=s,i=o[A+8>>2]}o[A+8>>2]=i+1,r=(c=G(r,244))+o[A+16>>2]|0,o[r>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0,i=o[e+40>>2],o[r+24>>2]=o[e+36>>2],o[r+28>>2]=i,i=o[e+32>>2],o[r+16>>2]=o[e+28>>2],o[r+20>>2]=i,i=o[e+48>>2],o[r+32>>2]=o[e+44>>2],o[r+36>>2]=i,i=o[e+56>>2],o[r+40>>2]=o[e+52>>2],o[r+44>>2]=i,i=o[e+64>>2],o[r+48>>2]=o[e+60>>2],o[r+52>>2]=i,i=o[e+72>>2],o[r+56>>2]=o[e+68>>2],o[r+60>>2]=i,pr(r- -64|0,e+76|0,180),r=c+o[A+16>>2]|0,o[r+64>>2]=0,o[r+68>>2]=0,o[r+144>>2]=0,o[r+148>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,o[r>>2]=1065353216,o[r+88>>2]=0,o[r+92>>2]=0,o[r+80>>2]=0,o[r+84>>2]=0,o[r+72>>2]=0,o[r+76>>2]=0,o[r+152>>2]=0,o[r+156>>2]=0,o[r+160>>2]=0,o[r+164>>2]=0,o[r+168>>2]=0,o[r+172>>2]=0,o[r+12>>2]=0,o[r+16>>2]=0,o[r+24>>2]=0,o[r+28>>2]=0,o[r+20>>2]=1065353216,o[r+32>>2]=0,o[r+36>>2]=0,o[r+44>>2]=0,o[r+48>>2]=0,o[r+40>>2]=1065353216,o[r+52>>2]=0,o[r+56>>2]=0,o[r+60>>2]=0,o[r+136>>2]=0,o[r+140>>2]=0,o[r+240>>2]=0,o[r+128>>2]=0,o[r+132>>2]=0,o[r+120>>2]=1065353216,o[r+124>>2]=0,o[r+112>>2]=1065353216,o[r+116>>2]=1065353216,o[r+104>>2]=1065353216,o[r+108>>2]=0,o[r+96>>2]=1065353216,o[r+100>>2]=1065353216,o[r+232>>2]=0,o[r+236>>2]=0,o[r+224>>2]=0,o[r+228>>2]=0,o[r+216>>2]=0,o[r+220>>2]=0,o[r+208>>2]=0,o[r+212>>2]=0,o[r+200>>2]=0,o[r+204>>2]=0,o[r+192>>2]=0,o[r+196>>2]=0,o[r+184>>2]=0,o[r+188>>2]=0,o[r+176>>2]=0,o[r+180>>2]=0,c=o[A+188>>2]}}else{if(c=o[A+8>>2],Af(e+12|0,0,244),n=i=c,o[A+12>>2]==(0|i)&&(n=c,!((0|(s=i?i<<1:1))<=(0|i)))){if(s?(o[8488]=o[8488]+1,b=0|Zn[o[8290]](G(s,244),16),i=o[A+8>>2]):i=c,(0|i)>0)for(;t=(n=G(h,244))+b|0,n=n+o[A+16>>2]|0,u=o[n+4>>2],o[t>>2]=o[n>>2],o[t+4>>2]=u,u=o[n+12>>2],o[t+8>>2]=o[n+8>>2],o[t+12>>2]=u,u=o[n+28>>2],o[t+24>>2]=o[n+24>>2],o[t+28>>2]=u,u=o[n+20>>2],o[t+16>>2]=o[n+16>>2],o[t+20>>2]=u,u=o[n+44>>2],o[t+40>>2]=o[n+40>>2],o[t+44>>2]=u,u=o[n+36>>2],o[t+32>>2]=o[n+32>>2],o[t+36>>2]=u,u=o[n+52>>2],o[t+48>>2]=o[n+48>>2],o[t+52>>2]=u,u=o[n+60>>2],o[t+56>>2]=o[n+56>>2],o[t+60>>2]=u,pr(t- -64|0,n- -64|0,180),(0|i)!=(0|(h=h+1|0)););!(i=o[A+16>>2])||!i|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),o[A+16>>2]=b,a[A+20|0]=1,o[A+12>>2]=s,n=o[A+8>>2]}o[A+8>>2]=n+1,i=(n=G(c,244))+o[A+16>>2]|0,o[i>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,t=o[e+40>>2],o[i+24>>2]=o[e+36>>2],o[i+28>>2]=t,t=o[e+32>>2],o[i+16>>2]=o[e+28>>2],o[i+20>>2]=t,t=o[e+48>>2],o[i+32>>2]=o[e+44>>2],o[i+36>>2]=t,t=o[e+56>>2],o[i+40>>2]=o[e+52>>2],o[i+44>>2]=t,t=o[e+64>>2],o[i+48>>2]=o[e+60>>2],o[i+52>>2]=t,t=o[e+72>>2],o[i+56>>2]=o[e+68>>2],o[i+60>>2]=t,pr(i- -64|0,e+76|0,180),i=n+o[A+16>>2]|0,A=r?o[r+252>>2]<<30>>31&r:0,o[i+64>>2]=0,o[i+68>>2]=0,o[i+144>>2]=0,o[i+148>>2]=0,o[i+88>>2]=0,o[i+92>>2]=0,o[i+80>>2]=0,o[i+84>>2]=0,o[i+72>>2]=0,o[i+76>>2]=0,o[i+152>>2]=0,o[i+156>>2]=0,o[i+160>>2]=0,o[i+164>>2]=0,o[i+168>>2]=0,o[i+172>>2]=0,A?(n=o[A+8>>2],o[i>>2]=o[A+4>>2],o[i+4>>2]=n,n=o[A+16>>2],o[i+8>>2]=o[A+12>>2],o[i+12>>2]=n,n=o[A+32>>2],o[i+24>>2]=o[A+28>>2],o[i+28>>2]=n,n=o[A+24>>2],o[i+16>>2]=o[A+20>>2],o[i+20>>2]=n,n=o[A+48>>2],o[i+40>>2]=o[A+44>>2],o[i+44>>2]=n,n=o[A+40>>2],o[i+32>>2]=o[A+36>>2],o[i+36>>2]=n,n=o[A+64>>2],o[i+56>>2]=o[A+60>>2],o[i+60>>2]=n,n=o[A+56>>2],o[i+48>>2]=o[A+52>>2],o[i+52>>2]=n,k=w[A+412>>2],d=w[A+416>>2],B=w[A+408>>2],l=w[A+404>>2],o[i+240>>2]=A,o[i+140>>2]=0,w[i+136>>2]=l*d,w[i+132>>2]=l*k,w[i+128>>2]=l*B,n=o[A+616>>2],o[i+104>>2]=o[A+612>>2],o[i+108>>2]=n,n=o[A+608>>2],o[i+96>>2]=o[A+604>>2],o[i+100>>2]=n,n=o[A+420>>2],o[i+120>>2]=o[A+416>>2],o[i+124>>2]=n,n=o[A+412>>2],o[i+112>>2]=o[A+408>>2],o[i+116>>2]=n,n=o[A+384>>2],o[i+184>>2]=o[A+380>>2],o[i+188>>2]=n,n=o[A+376>>2],o[i+176>>2]=o[A+372>>2],o[i+180>>2]=n,n=o[A+400>>2],o[i+200>>2]=o[A+396>>2],o[i+204>>2]=n,n=o[A+392>>2],o[i+192>>2]=o[A+388>>2],o[i+196>>2]=n,k=w[A+476>>2],d=w[A+480>>2],B=w[A+472>>2],l=w[A+404>>2],o[i+220>>2]=0,w[i+216>>2]=m(l*d)*f,w[i+212>>2]=m(l*k)*f,w[i+208>>2]=m(l*B)*f,B=w[A+332>>2],Z=w[A+348>>2],Q=w[A+364>>2],E=w[A+340>>2],W=w[A+356>>2],N=w[A+324>>2],l=w[A+496>>2],k=w[A+488>>2],d=w[A+492>>2],w[i+228>>2]=m(m(w[A+360>>2]*l)+m(m(w[A+328>>2]*k)+m(d*w[A+344>>2])))*f,w[i+224>>2]=m(m(W*l)+m(m(N*k)+m(E*d)))*f,f=m(m(m(Q*l)+m(m(B*k)+m(d*Z)))*f)):(o[i+4>>2]=0,o[i+8>>2]=0,o[i>>2]=1065353216,o[i+240>>2]=0,o[i+128>>2]=0,o[i+132>>2]=0,o[i+112>>2]=1065353216,o[i+116>>2]=1065353216,o[i+96>>2]=1065353216,o[i+100>>2]=1065353216,o[i+176>>2]=0,o[i+180>>2]=0,o[i+12>>2]=0,o[i+16>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,o[i+20>>2]=1065353216,o[i+32>>2]=0,o[i+36>>2]=0,o[i+44>>2]=0,o[i+48>>2]=0,o[i+40>>2]=1065353216,o[i+52>>2]=0,o[i+56>>2]=0,o[i+60>>2]=0,o[i+136>>2]=0,o[i+140>>2]=0,o[i+120>>2]=1065353216,o[i+124>>2]=0,o[i+104>>2]=1065353216,o[i+108>>2]=0,o[i+224>>2]=0,o[i+228>>2]=0,o[i+216>>2]=0,o[i+220>>2]=0,o[i+208>>2]=0,o[i+212>>2]=0,o[i+200>>2]=0,o[i+204>>2]=0,o[i+192>>2]=0,o[i+196>>2]=0,o[i+184>>2]=0,o[i+188>>2]=0,f=m(0)),o[i+236>>2]=0,w[i+232>>2]=f,o[r+212>>2]=c}return S=e+256|0,c}function kA(A,r,f,e){var i,n=0,t=m(0),c=m(0),b=m(0),u=0,l=m(0),s=m(0),k=0,d=m(0),h=m(0),B=m(0),Z=m(0),G=0,Q=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0);S=i=S-144|0,t=w[r+8>>2],b=w[r>>2],c=w[r+4>>2];A:if(!(m(m(t*t)+m(m(b*b)+m(c*c)))>2],u=o[n+64>>2],o[i+136>>2]=o[n+60>>2],o[i+140>>2]=u,u=o[n+56>>2],o[i+128>>2]=o[n+52>>2],o[i+132>>2]=u,u=o[n+64>>2],o[i+120>>2]=o[n+60>>2],o[i+124>>2]=u,u=o[n+56>>2],n=o[n+52>>2],V=m(t+w[i+120>>2]),w[i+120>>2]=V,o[i+112>>2]=n,o[i+116>>2]=u,g=m(b+w[i+112>>2]),w[i+112>>2]=g,X=m(c+w[i+116>>2]),w[i+116>>2]=X;r:{f:if(e){if(n=0,D=w[i+136>>2],t=m(V-D),C=w[i+128>>2],b=m(g-C),J=w[i+132>>2],c=m(X-J),!((s=m(N(m(m(t*t)+m(m(b*b)+m(c*c))))))<=f)){for(;;){if(d=t,t=m(m(1)/s),d=m(d*t),W=m(b*t),p=m(c*t),m(m(d*w[r+8>>2])+m(m(W*w[r>>2])+m(p*w[r+4>>2])))<=m(0))break f;if(w[i+100>>2]=s+w[A+36>>2],l=m(0),b=m(0),S=n=S-224|0,k=o[(v[A+108|0]?104:8)+A>>2],(u=1&a[34028])?(u=!u,c=w[8506],l=w[8505],b=w[8504],t=w[8503]):(o[8505]=0,o[8506]=1065353216,o[8503]=0,o[8504]=0,a[34028]=1,c=m(1),u=0,t=m(0)),F=w[i+100>>2],o[n+204>>2]=0,o[n+188>>2]=0,B=m(m(2)/m(m(c*c)+m(m(l*l)+m(m(t*t)+m(b*b))))),Z=m(l*B),h=m(b*Z),R=m(t*B),E=m(c*R),w[n+196>>2]=h+E,w[n+184>>2]=h-E,h=m(t*R),B=m(b*B),R=m(b*B),w[n+200>>2]=m(1)-m(h+R),Q=h,h=m(l*Z),w[n+180>>2]=m(1)-m(Q+h),o[n+172>>2]=0,E=m(t*Z),Y=m(c*B),w[n+192>>2]=E-Y,B=m(t*B),Z=m(c*Z),w[n+176>>2]=B+Z,w[n+168>>2]=E+Y,w[n+164>>2]=B-Z,w[n+160>>2]=m(1)-m(R+h),G=o[i+140>>2],o[n+216>>2]=o[i+136>>2],o[n+220>>2]=G,G=o[i+132>>2],o[n+208>>2]=o[i+128>>2],o[n+212>>2]=G,u&&(o[8505]=0,o[8506]=1065353216,o[8503]=0,o[8504]=0,a[34028]=1,l=m(0),c=m(1),b=m(0),t=m(0)),B=w[i+136>>2],Y=w[i+120>>2],h=w[i+128>>2],x=w[i+112>>2],R=w[i+132>>2],H=w[i+116>>2],o[n+156>>2]=0,o[n+140>>2]=0,o[n+124>>2]=0,E=m(m(2)/m(m(c*c)+m(m(l*l)+m(m(t*t)+m(b*b))))),Z=m(l*E),Q=m(b*Z),y=m(t*E),M=m(c*y),w[n+132>>2]=Q+M,w[n+120>>2]=Q-M,Q=m(t*y),E=m(b*E),y=m(b*E),w[n+136>>2]=m(1)-m(Q+y),b=Q,Q=m(l*Z),w[n+116>>2]=m(1)-m(b+Q),l=m(Y-B),Y=m(x-h),x=m(H-R),b=m(m(1)/m(N(m(m(l*l)+m(m(Y*Y)+m(x*x)))))),w[n+152>>2]=B+m(F*m(l*b)),w[n+148>>2]=R+m(F*m(x*b)),o[n+108>>2]=0,l=m(t*Z),B=m(c*E),w[n+128>>2]=l-B,t=m(t*E),c=m(c*Z),w[n+112>>2]=t+c,w[n+104>>2]=l+B,w[n+100>>2]=t-c,w[n+96>>2]=m(1)-m(y+Q),w[n+144>>2]=h+m(F*m(Y*b)),u=o[A+4>>2],o[n+20>>2]=0,o[n+8>>2]=1065353216,G=o[i+140>>2],o[n+32>>2]=o[i+136>>2],o[n+36>>2]=G,G=o[i+132>>2],o[n+24>>2]=o[i+128>>2],o[n+28>>2]=G,G=o[i+124>>2],o[n+48>>2]=o[i+120>>2],o[n+52>>2]=G,G=o[i+116>>2],o[n+40>>2]=o[i+112>>2],o[n+44>>2]=G,o[n+92>>2]=u,o[n+88>>2]=0,o[n+4>>2]=25584,u=o[u+188>>2],o[n+12>>2]=o[u+4>>2],o[n+16>>2]=o[u+8>>2],EA(u=o[A+12>>2],k,n+160|0,n+96|0,n+4|0,w[u+56>>2]),(u=o[n+20>>2])&&(t=w[n+8>>2],k=o[n+76>>2],o[i+68>>2]=o[n+72>>2],o[i+72>>2]=k,k=o[n+84>>2],o[i+76>>2]=o[n+80>>2],o[i+80>>2]=k,G=o[4+(k=n- -64|0)>>2],o[i+92>>2]=o[k>>2],o[i+96>>2]=G,k=o[n+60>>2],G=o[n+56>>2],o[i+104>>2]=u,w[i+100>>2]=F*t,o[i+84>>2]=G,o[i+88>>2]=k,o[i+108>>2]=o[n+88>>2]),S=n+224|0,!u){r=o[i+124>>2],o[i+136>>2]=o[i+120>>2],o[i+140>>2]=r,r=o[i+116>>2],o[i+128>>2]=o[i+112>>2],o[i+132>>2]=r,n=0;break f}e:if(n=o[A+20>>2])if(u=o[i+104>>2],2&(k=o[u+252>>2])){if(o[i+64>>2]=u,u=o[i+108>>2],o[i+60>>2]=u,o[i+4>>2]=A,k=o[i+96>>2],o[i+32>>2]=o[i+92>>2],o[i+36>>2]=k,k=o[i+88>>2],o[i+24>>2]=o[i+84>>2],o[i+28>>2]=k,k=o[i+80>>2],o[i+16>>2]=o[i+76>>2],o[i+20>>2]=k,k=o[i+72>>2],o[i+8>>2]=o[i+68>>2],o[i+12>>2]=k,w[i+56>>2]=s,o[i+52>>2]=0,w[i+48>>2]=d,w[i+44>>2]=p,w[i+40>>2]=W,!u)break e;Zn[o[o[n>>2]>>2]](n,i+4|0)}else 4&k&&(u=o[u+256>>2])&&(o[i+60>>2]=u,o[i+4>>2]=A,u=o[i+96>>2],o[i+32>>2]=o[i+92>>2],o[i+36>>2]=u,u=o[i+88>>2],o[i+24>>2]=o[i+84>>2],o[i+28>>2]=u,u=o[i+80>>2],o[i+16>>2]=o[i+76>>2],o[i+20>>2]=u,u=o[i+72>>2],o[i+8>>2]=o[i+68>>2],o[i+12>>2]=u,w[i+56>>2]=s,o[i+52>>2]=0,w[i+48>>2]=d,w[i+44>>2]=p,w[i+40>>2]=W,Zn[o[o[n>>2]+4>>2]](n,i+4|0));if(t=w[i+100>>2],!(!v[A+63|0]|t!=m(0))){qA(A),qA(A),qA(A),qA(A);break r}if((t=m(t-w[A+36>>2]))>m(0)&&(D=m(D+m(d*t)),w[i+136>>2]=D,J=m(J+m(p*t)),w[i+132>>2]=J,C=m(C+m(W*t)),w[i+128>>2]=C),c=w[A+48>>2],l=w[A+40>>2],F=w[A+44>>2],w[A+68>>2]=m(w[i+76>>2]*c)+m(m(w[i+68>>2]*l)+m(w[i+72>>2]*F)),n=o[i+80>>2],o[A+96>>2]=o[i+76>>2],o[A+100>>2]=n,n=o[i+72>>2],o[A+88>>2]=o[i+68>>2],o[A+92>>2]=n,n=o[i+96>>2],o[A+80>>2]=o[i+92>>2],o[A+84>>2]=n,n=o[i+88>>2],o[A+72>>2]=o[i+84>>2],o[A+76>>2]=n,s=w[A+76>>2],t=w[A+72>>2],v[A+61|0]){if(Z=w[A+80>>2],b=m(m(Z*c)+m(m(t*l)+m(F*s))),c=m(Z-m(c*b)),t=m(t-m(l*b)),s=m(s-m(F*b)),(b=m(m(c*c)+m(m(t*t)+m(s*s))))>2]=0,h=c,c=m(m(1)/m(N(b))),b=m(h*c),w[A+80>>2]=b,s=m(s*c),w[A+76>>2]=s,t=m(t*c),w[A+72>>2]=t}else b=w[A+80>>2];if(n=o[i+140>>2],o[i+120>>2]=o[i+136>>2],o[i+124>>2]=n,c=m(V-D),h=m(c*c),c=m(g-C),Q=m(c*c),c=m(X-J),c=m(N(m(h+m(Q+m(c*c))))),l=m(m(d*b)+m(m(W*t)+m(p*s))),h=d=m(d-m(m(b+b)*l)),Q=m(d*d),d=m(W-m(m(t+t)*l)),l=m(p-m(m(s+s)*l)),W=m(m(1)/m(N(m(Q+m(m(d*d)+m(l*l)))))),p=m(h*W),h=b,d=m(d*W),l=m(l*W),b=m(m(p*b)+m(m(d*t)+m(s*l))),V=m(w[i+120>>2]+m(c*m(p-m(h*b)))),w[i+120>>2]=V,n=o[i+132>>2],o[i+112>>2]=o[i+128>>2],o[i+116>>2]=n,g=m(w[i+112>>2]+m(c*m(d-m(t*b)))),w[i+112>>2]=g,X=m(w[i+116>>2]+m(c*m(l-m(s*b)))),w[i+116>>2]=X,!(e=e-1|0))break;if(n=1,t=m(V-D),b=m(g-C),c=m(X-J),(s=m(N(m(m(t*t)+m(m(b*b)+m(c*c))))))<=f)break f}n=1}}else n=0;r=o[i+140>>2],A=o[A+4>>2],o[A+60>>2]=o[i+136>>2],o[A+64>>2]=r,r=o[i+132>>2],o[A+52>>2]=o[i+128>>2],o[A+56>>2]=r;break A}n=1}return S=i+144|0,n}function dA(A){var r,f=0,e=0,i=m(0),n=0,a=0,t=m(0),c=m(0),b=m(0),u=m(0),l=0,s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=0;S=r=S-32|0;A:{r:{f:{e:{i:{n:switch(f=o[A+372>>2],o[f+32>>2]-1|0){case 3:break f;case 2:break e;case 1:break i;case 0:break n;default:break r}if(f=o[A+364>>2],e=o[A+372>>2],a=o[e+32>>2],o[16+(n=(a<<2)+e|0)>>2]=0,f=f-1|0,o[A+364>>2]=f,f=o[348+((f<<2)+A|0)>>2],o[n>>2]=f,o[e+32>>2]=a+1,o[f+8>>2]=0,o[f+12>>2]=0,o[f>>2]=1065353216,o[f+4>>2]=0,Yr(r+16|0,A,f),e=o[r+28>>2],o[f+24>>2]=o[r+24>>2],o[f+28>>2]=e,e=o[r+20>>2],o[f+16>>2]=o[r+16>>2],o[f+20>>2]=e,e=1,dA(A))break A;if(f=o[A+372>>2],e=o[f+32>>2]-1|0,o[f+32>>2]=e,f=o[f+(e<<2)>>2],o[348+((o[A+364>>2]<<2)+A|0)>>2]=f,e=o[A+372>>2],a=o[e+32>>2],o[(n=(a<<2)+e|0)>>2]=f,o[n+16>>2]=0,o[e+32>>2]=a+1,o[f+8>>2]=-2147483648,o[f+12>>2]=0,o[f>>2]=-1082130432,o[f+4>>2]=-2147483648,Yr(r+16|0,A,f),e=o[r+28>>2],o[f+24>>2]=o[r+24>>2],o[f+28>>2]=e,e=o[r+20>>2],o[f+16>>2]=o[r+16>>2],o[f+20>>2]=e,e=1,dA(A))break A;if(f=o[A+372>>2],e=o[f+32>>2]-1|0,o[f+32>>2]=e,e=o[f+(e<<2)>>2],f=o[A+364>>2],o[A+364>>2]=f+1,o[348+(a=(f<<2)+A|0)>>2]=e,e=o[A+372>>2],n=o[e+32>>2],o[16+(l=(n<<2)+e|0)>>2]=0,o[A+364>>2]=f,f=o[a+348>>2],o[l>>2]=f,o[e+32>>2]=n+1,o[f+8>>2]=0,o[f+12>>2]=0,o[f>>2]=0,o[f+4>>2]=1065353216,Yr(r+16|0,A,f),e=o[r+28>>2],o[f+24>>2]=o[r+24>>2],o[f+28>>2]=e,e=o[r+20>>2],o[f+16>>2]=o[r+16>>2],o[f+20>>2]=e,e=1,dA(A))break A;if(f=o[A+372>>2],e=o[f+32>>2]-1|0,o[f+32>>2]=e,f=o[f+(e<<2)>>2],o[348+((o[A+364>>2]<<2)+A|0)>>2]=f,e=o[A+372>>2],a=o[e+32>>2],o[(n=(a<<2)+e|0)>>2]=f,o[n+16>>2]=0,o[e+32>>2]=a+1,o[f+8>>2]=-2147483648,o[f+12>>2]=0,o[f>>2]=-2147483648,o[f+4>>2]=-1082130432,Yr(r+16|0,A,f),e=o[r+28>>2],o[f+24>>2]=o[r+24>>2],o[f+28>>2]=e,e=o[r+20>>2],o[f+16>>2]=o[r+16>>2],o[f+20>>2]=e,e=1,dA(A))break A;if(f=o[A+372>>2],e=o[f+32>>2]-1|0,o[f+32>>2]=e,e=o[f+(e<<2)>>2],f=o[A+364>>2],o[A+364>>2]=f+1,o[348+(a=(f<<2)+A|0)>>2]=e,e=o[A+372>>2],n=o[e+32>>2],o[16+(l=(n<<2)+e|0)>>2]=0,o[A+364>>2]=f,f=o[a+348>>2],o[l>>2]=f,o[e+32>>2]=n+1,o[f+8>>2]=1065353216,o[f+12>>2]=0,o[f>>2]=0,o[f+4>>2]=0,Yr(r+16|0,A,f),e=o[r+28>>2],o[f+24>>2]=o[r+24>>2],o[f+28>>2]=e,e=o[r+20>>2],o[f+16>>2]=o[r+16>>2],o[f+20>>2]=e,e=1,dA(A))break A;if(f=o[A+372>>2],e=o[f+32>>2]-1|0,o[f+32>>2]=e,f=o[f+(e<<2)>>2],o[348+((o[A+364>>2]<<2)+A|0)>>2]=f,e=o[A+372>>2],a=o[e+32>>2],o[(n=(a<<2)+e|0)>>2]=f,o[n+16>>2]=0,o[e+32>>2]=a+1,o[f+8>>2]=-1082130432,o[f+12>>2]=0,o[f>>2]=-2147483648,o[f+4>>2]=-2147483648,Yr(r+16|0,A,f),e=o[r+28>>2],o[f+24>>2]=o[r+24>>2],o[f+28>>2]=e,e=o[r+20>>2],o[f+16>>2]=o[r+16>>2],o[f+20>>2]=e,e=1,dA(A))break A;f=o[A+372>>2],e=o[f+32>>2]-1|0,o[f+32>>2]=e,f=o[f+(e<<2)>>2],e=o[A+364>>2],o[A+364>>2]=e+1,o[348+((e<<2)+A|0)>>2]=f;break r}for(e=o[f+4>>2],f=o[f>>2],u=m(w[e+20>>2]-w[f+20>>2]),s=m(-u),k=m(w[e+24>>2]-w[f+24>>2]),v=m(-k),d=m(w[e+16>>2]-w[f+16>>2]),B=m(-d);;){i:{if(o[r+8>>2]=0,o[r+12>>2]=0,o[r>>2]=0,o[r+4>>2]=0,o[r+(a<<2)>>2]=1065353216,i=w[r+4>>2],b=w[r>>2],t=m(m(d*i)+m(b*s)),h=w[r+8>>2],c=m(m(u*h)+m(i*v)),b=m(m(k*b)+m(h*B)),(i=m(m(t*t)+m(m(c*c)+m(b*b))))>m(0)){if(e=o[A+372>>2],n=o[e+32>>2],o[16+(f=(n<<2)+e|0)>>2]=0,l=o[A+364>>2]-1|0,o[A+364>>2]=l,Z=f,f=o[348+((l<<2)+A|0)>>2],o[Z>>2]=f,o[e+32>>2]=n+1,o[f+12>>2]=0,i=m(m(1)/m(N(i))),w[f+8>>2]=t*i,w[f+4>>2]=b*i,w[f>>2]=c*i,Yr(r+16|0,A,f),e=o[r+28>>2],o[f+24>>2]=o[r+24>>2],o[f+28>>2]=e,e=o[r+20>>2],o[f+16>>2]=o[r+16>>2],o[f+20>>2]=e,dA(A))break i;if(f=o[A+372>>2],e=o[f+32>>2]-1|0,o[f+32>>2]=e,f=o[f+(e<<2)>>2],o[348+((o[A+364>>2]<<2)+A|0)>>2]=f,e=o[A+372>>2],n=o[e+32>>2],o[(l=(n<<2)+e|0)>>2]=f,o[l+16>>2]=0,o[e+32>>2]=n+1,o[f+12>>2]=0,w[f+8>>2]=i*m(-t),w[f+4>>2]=i*m(-b),w[f>>2]=i*m(-c),Yr(r+16|0,A,f),e=o[r+28>>2],o[f+24>>2]=o[r+24>>2],o[f+28>>2]=e,e=o[r+20>>2],o[f+16>>2]=o[r+16>>2],o[f+20>>2]=e,dA(A))break i;f=o[A+372>>2],e=o[f+32>>2]-1|0,o[f+32>>2]=e,f=o[f+(e<<2)>>2],e=o[A+364>>2],o[A+364>>2]=e+1,o[348+((e<<2)+A|0)>>2]=f}if(3!=(0|(a=a+1|0)))continue;break r}break}e=1;break A}if(e=o[f+4>>2],a=o[f>>2],i=w[a+16>>2],b=m(w[e+16>>2]-i),n=o[f+8>>2],t=w[a+20>>2],c=m(w[n+20>>2]-t),i=m(w[n+16>>2]-i),u=m(w[e+20>>2]-t),t=m(m(b*c)-m(i*u)),k=u,u=w[a+24>>2],s=m(w[n+24>>2]-u),u=m(w[e+24>>2]-u),c=m(m(k*s)-m(c*u)),b=m(m(u*i)-m(s*b)),!((i=m(m(t*t)+m(m(c*c)+m(b*b))))>m(0)))break r;if(o[f+28>>2]=0,e=o[A+364>>2]-1|0,o[A+364>>2]=e,e=o[348+((e<<2)+A|0)>>2],o[f+32>>2]=4,o[f+12>>2]=e,o[e+12>>2]=0,i=m(m(1)/m(N(i))),w[e+8>>2]=t*i,w[e+4>>2]=b*i,w[e>>2]=c*i,Yr(r+16|0,A,e),f=o[r+28>>2],o[e+24>>2]=o[r+24>>2],o[e+28>>2]=f,f=o[r+20>>2],o[e+16>>2]=o[r+16>>2],o[e+20>>2]=f,e=1,dA(A))break A;if(f=o[A+372>>2],e=o[f+32>>2]-1|0,o[f+32>>2]=e,f=o[f+(e<<2)>>2],o[348+((o[A+364>>2]<<2)+A|0)>>2]=f,e=o[A+372>>2],a=o[e+32>>2],o[(n=(a<<2)+e|0)>>2]=f,o[n+16>>2]=0,o[e+32>>2]=a+1,o[f+12>>2]=0,w[f+8>>2]=i*m(-t),w[f+4>>2]=i*m(-b),w[f>>2]=i*m(-c),Yr(r+16|0,A,f),e=o[r+28>>2],o[f+24>>2]=o[r+24>>2],o[f+28>>2]=e,e=o[r+20>>2],o[f+16>>2]=o[r+16>>2],o[f+20>>2]=e,e=1,dA(A))break A;f=o[A+372>>2],e=o[f+32>>2]-1|0,o[f+32>>2]=e,f=o[f+(e<<2)>>2],e=o[A+364>>2],o[A+364>>2]=e+1,o[348+((e<<2)+A|0)>>2]=f;break r}if(A=o[f>>2],a=o[f+12>>2],i=w[a+16>>2],b=m(w[A+16>>2]-i),n=o[f+4>>2],t=w[a+20>>2],u=m(w[n+20>>2]-t),f=o[f+8>>2],c=w[a+24>>2],s=m(w[f+24>>2]-c),k=m(w[A+20>>2]-t),v=m(w[n+24>>2]-c),d=m(w[f+16>>2]-i),c=m(w[A+24>>2]-c),i=m(w[n+16>>2]-i),t=m(w[f+20>>2]-t),e=1,(i=m(m(m(m(b*u)*s)+m(m(m(m(m(k*v)*d)+m(m(c*i)*t))-m(m(v*b)*t))-m(m(i*k)*s)))-m(m(u*c)*d)))>m(0)|i>2]=o[A+152>>2],mf(r),f=o[A+56>>2],e?(o[r+56>>2]=f<<24|(65280&f)<<8|f>>>8&65280|f>>>24,a[r+4|0]=v[A+7|0],a[r+5|0]=v[A+6|0],a[r+6|0]=v[A+5|0],a[r+7|0]=v[A+4|0],a[r+8|0]=v[A+11|0],a[r+9|0]=v[A+10|0],a[r+10|0]=v[A+9|0],a[r+11|0]=v[A+8|0],a[r+12|0]=v[A+15|0],a[r+13|0]=v[A+14|0],a[r+14|0]=v[A+13|0],a[r+15|0]=v[A+12|0],a[r+16|0]=v[A+19|0],a[r+17|0]=v[A+18|0],a[r+18|0]=v[A+17|0],a[r+19|0]=v[A+16|0],a[r+20|0]=v[A+23|0],a[r+21|0]=v[A+22|0],a[r+22|0]=v[A+21|0],a[r+23|0]=v[A+20|0],a[r+24|0]=v[A+27|0],a[r+25|0]=v[A+26|0],a[r+26|0]=v[A+25|0],a[r+27|0]=v[A+24|0],a[r+28|0]=v[A+31|0],a[r+29|0]=v[A+30|0],a[r+30|0]=v[A+29|0],a[r+31|0]=v[A+28|0],a[r+32|0]=v[A+35|0],a[r+33|0]=v[A+34|0],a[r+34|0]=v[A+33|0],a[r+35|0]=v[A+32|0],a[r+36|0]=v[A+39|0],a[r+37|0]=v[A+38|0],a[r+38|0]=v[A+37|0],a[r+39|0]=v[A+36|0],a[r+40|0]=v[A+43|0],a[r+41|0]=v[A+42|0],a[r+42|0]=v[A+41|0],a[r+43|0]=v[A+40|0],a[r+44|0]=v[A+47|0],a[r+45|0]=v[A+46|0],a[r+46|0]=v[A+45|0],a[r+47|0]=v[A+44|0],a[r+48|0]=v[A+51|0],a[r+49|0]=v[A+50|0],a[r+50|0]=v[A+49|0],a[r+51|0]=v[A+48|0],b=(f=o[A+168>>2])<<24|(65280&f)<<8|f>>>8&65280|f>>>24,f=(f=o[A+144>>2])<<24|(65280&f)<<8|f>>>8&65280|f>>>24):(o[r+56>>2]=f,f=o[A+16>>2],o[r+12>>2]=o[A+12>>2],o[r+16>>2]=f,f=o[A+8>>2],o[r+4>>2]=o[A+4>>2],o[r+8>>2]=f,f=o[A+32>>2],o[r+28>>2]=o[A+28>>2],o[r+32>>2]=f,f=o[A+24>>2],o[r+20>>2]=o[A+20>>2],o[r+24>>2]=f,f=o[A+48>>2],o[r+44>>2]=o[A+44>>2],o[r+48>>2]=f,f=o[A+40>>2],o[r+36>>2]=o[A+36>>2],o[r+40>>2]=f,b=o[A+168>>2],f=o[A+144>>2]),o[r+168>>2]=b,o[r+144>>2]=f,a[r+60|0]=v[A+60|0],l=r+172|0,i=o[A+56>>2],v[A+60|0]){!(f=o[r+136>>2])||!f|!v[r+140|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[r+136>>2]=l,a[r+140|0]=0;A:if(e){if(!((0|i)<=0))for(u=o[A+136>>2],b=0;n=(f=b<<4)+l|0,f=h[(c=f+u|0)>>1],t[n>>1]=f<<8|f>>>8,f=h[c+2>>1],t[n+2>>1]=f<<8|f>>>8,f=h[c+4>>1],t[n+4>>1]=f<<8|f>>>8,f=h[c+6>>1],t[n+6>>1]=f<<8|f>>>8,f=h[c+8>>1],t[n+8>>1]=f<<8|f>>>8,f=h[c+10>>1],t[n+10>>1]=f<<8|f>>>8,f=o[c+12>>2],o[n+12>>2]=f<<24|(65280&f)<<8|f>>>8&65280|f>>>24,(0|i)!=(0|(b=b+1|0)););}else{if((0|i)<=0)break A;for(u=o[A+136>>2],b=0;c=(f=b<<4)+l|0,f=f+u|0,t[c>>1]=h[f>>1],t[c+2>>1]=h[f+2>>1],t[c+4>>1]=h[f+4>>1],t[c+6>>1]=h[f+6>>1],t[c+8>>1]=h[f+8>>1],t[c+10>>1]=h[f+10>>1],o[c+12>>2]=o[f+12>>2],(0|i)!=(0|(b=b+1|0)););}u=r+128|0,b=i<<4}else{!(f=o[r+96>>2])||!f|!v[r+100|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[r+96>>2]=l,a[r+100|0]=0,o[r+92>>2]=i,o[(u=r+88|0)>>2]=i;A:if(e){if(f=l,!((0|i)<=0))for(s=o[A+96>>2];n=(c=k<<6)+f|0,f=c+s|0,a[0|n]=v[f+3|0],a[n+1|0]=v[f+2|0],a[n+2|0]=v[f+1|0],a[n+3|0]=v[0|f],a[n+4|0]=v[f+7|0],a[n+5|0]=v[f+6|0],a[n+6|0]=v[f+5|0],a[n+7|0]=v[f+4|0],a[n+8|0]=v[f+11|0],a[n+9|0]=v[f+10|0],a[n+10|0]=v[f+9|0],a[n+11|0]=v[f+8|0],a[n+12|0]=v[f+15|0],a[n+13|0]=v[f+14|0],a[n+14|0]=v[f+13|0],a[n+15|0]=v[f+12|0],n=c+o[r+96>>2]|0,f=c+o[A+96>>2]|0,a[n+16|0]=v[f+19|0],a[n+17|0]=v[f+18|0],a[n+18|0]=v[f+17|0],a[n+19|0]=v[f+16|0],a[n+20|0]=v[f+23|0],a[n+21|0]=v[f+22|0],a[n+22|0]=v[f+21|0],a[n+23|0]=v[f+20|0],a[n+24|0]=v[f+27|0],a[n+25|0]=v[f+26|0],a[n+26|0]=v[f+25|0],a[n+27|0]=v[f+24|0],a[n+28|0]=v[f+31|0],a[n+29|0]=v[f+30|0],a[n+30|0]=v[f+29|0],a[n+31|0]=v[f+28|0],n=c+(f=o[r+96>>2])|0,s=o[A+96>>2],b=o[32+(c=c+s|0)>>2],o[n+32>>2]=b<<24|(65280&b)<<8|b>>>8&65280|b>>>24,b=o[c+36>>2],o[n+36>>2]=b<<24|(65280&b)<<8|b>>>8&65280|b>>>24,c=o[c+40>>2],o[n+40>>2]=c<<24|(65280&c)<<8|c>>>8&65280|c>>>24,(0|i)!=(0|(k=k+1|0)););}else{if(f=l,(0|i)<=0)break A;for(k=o[A+96>>2],b=0;n=(s=b<<6)+f|0,f=o[4+(c=s+k|0)>>2],o[n>>2]=o[c>>2],o[n+4>>2]=f,f=o[c+12>>2],o[n+8>>2]=o[c+8>>2],o[n+12>>2]=f,c=s+o[A+96>>2]|0,f=o[c+20>>2],n=s+o[r+96>>2]|0,o[n+16>>2]=o[c+16>>2],o[n+20>>2]=f,f=o[c+28>>2],o[n+24>>2]=o[c+24>>2],o[n+28>>2]=f,n=s+(f=o[r+96>>2])|0,c=s+(k=o[A+96>>2])|0,o[n+32>>2]=o[c+32>>2],o[n+36>>2]=o[c+36>>2],o[n+40>>2]=o[c+40>>2],(0|i)!=(0|(b=b+1|0)););}b=i<<6,v[r+100|0]&&f&&(o[8489]=o[8489]+1,Zn[o[8291]](f))}o[u>>2]=0,o[u+4>>2]=0,a[u+5|0]=0,a[u+6|0]=0,a[u+7|0]=0,a[u+8|0]=0,a[u+9|0]=0,a[u+10|0]=0,a[u+11|0]=0,a[u+12|0]=0,u=b+l|0,l=o[A+168>>2],!(f=o[r+160>>2])||!f|!v[r+164|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[r+160>>2]=u,a[r+164|0]=0,o[r+156>>2]=l,o[r+152>>2]=l,l=o[A+168>>2];A:if(e){if(!((0|l)<=0))for(f=o[A+160>>2],e=0;n=(A=e<<5)+u|0,A=h[(c=A+f|0)>>1],t[n>>1]=A<<8|A>>>8,A=h[c+2>>1],t[n+2>>1]=A<<8|A>>>8,A=h[c+4>>1],t[n+4>>1]=A<<8|A>>>8,A=h[c+6>>1],t[n+6>>1]=A<<8|A>>>8,A=h[c+8>>1],t[n+8>>1]=A<<8|A>>>8,A=h[c+10>>1],t[n+10>>1]=A<<8|A>>>8,A=o[c+12>>2],o[n+12>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=o[c+16>>2],o[n+16>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,(0|l)!=(0|(e=e+1|0)););}else{if((0|l)<=0)break A;for(l=o[A+160>>2],e=0;c=(f=e<<5)+u|0,f=f+l|0,t[c>>1]=h[f>>1],t[c+2>>1]=h[f+2>>1],t[c+4>>1]=h[f+4>>1],t[c+6>>1]=h[f+6>>1],t[c+8>>1]=h[f+8>>1],t[c+10>>1]=h[f+10>>1],o[c+12>>2]=o[f+12>>2],f=o[f+16>>2],o[c+28>>2]=0,o[c+20>>2]=0,o[c+24>>2]=0,o[c+16>>2]=f,(0|(e=e+1|0))>2];);}return u&&v[r+164|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](u)),o[r>>2]=0,a[r+157|0]=0,a[r+158|0]=0,a[r+159|0]=0,a[r+160|0]=0,a[r+161|0]=0,a[r+162|0]=0,a[r+163|0]=0,a[r+164|0]=0,o[r+152>>2]=0,o[r+156>>2]=0,1}function hA(A,r){var f,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0,h=0,w=0,Z=0,m=0,Q=0;if(S=f=S-96|0,a[f+92|0]=1,o[f+60>>2]=0,o[f+64>>2]=0,a[f+52|0]=1,o[f+48>>2]=0,a[f+72|0]=1,o[f+40>>2]=0,o[f+44>>2]=0,o[f+68>>2]=0,o[f+88>>2]=0,o[f+80>>2]=0,o[f+84>>2]=0,o[f+28>>2]=0,a[f+32|0]=1,o[f+20>>2]=0,o[f+24>>2]=0,!((0|(k=o[A+8>>2]))<=0)){for(;;){t=o[o[o[A+16>>2]+(m<<2)>>2]+192>>2],o[f+12>>2]=t,e=G((e=t+~(t<<15)|0)>>>10^e,9),e=~((e^=e>>>6)<<11)+e|0;A:{r:if(!((e=o[f+64>>2]-1&(e>>>16^e))>>>0>=B[f+20>>2])&&-1!=(0|(e=o[o[f+28>>2]+(e<<2)>>2]))){for(i=o[f+48>>2],n=o[f+88>>2];;){if((0|t)!=o[n+(e<<3)>>2]){if(-1!=(0|(e=o[i+(e<<2)>>2])))continue;break r}break}if(o[f+68>>2])break A}o[f+4>>2]=t,t=0;r:{f:{if(k=o[48+(i=f+16|0)>>2],e=o[f+4>>2],n=G((n=~(e<<15)+e|0)>>>10^n,9),!((h=k-1&((n=~((n^=n>>>6)<<11)+n|0)>>>16^n))>>>0>=B[i+4>>2])&&-1!=(0|(n=o[o[i+12>>2]+(h<<2)>>2])))for(u=o[i+32>>2],c=o[i+72>>2];;){if((0|e)==o[c+(n<<3)>>2])break f;if(-1==(0|(n=o[u+(n<<2)>>2])))break}if((0|k)==(0|(e=Q=o[i+44>>2]))&&!((0|(e=k))>=(0|(b=e?e<<1:1)))){if(b?(o[8488]=o[8488]+1,u=0|Zn[o[8290]](b<<2,16),e=o[i+44>>2]):(u=0,e=k),!((0|e)<=0)){if(c=0,n=0,e>>>0>=4)for(d=-4&e;o[(s=n<<2)+u>>2]=o[s+o[i+52>>2]>>2],o[(l=4|s)+u>>2]=o[l+o[i+52>>2]>>2],o[(l=8|s)+u>>2]=o[l+o[i+52>>2]>>2],o[(s|=12)+u>>2]=o[s+o[i+52>>2]>>2],n=n+4|0,(0|d)!=(0|(t=t+4|0)););if(t=3&e)for(;o[(s=n<<2)+u>>2]=o[s+o[i+52>>2]>>2],n=n+1|0,(0|t)!=(0|(c=c+1|0)););}!(t=o[i+52>>2])|!v[i+56|0]||(t&&(o[8489]=o[8489]+1,Zn[o[8291]](t)),e=o[i+44>>2]),o[i+52>>2]=u,a[i+56|0]=1,o[i+48>>2]=b}if(o[o[i+52>>2]+(e<<2)>>2]=o[f+12>>2],o[i+44>>2]=e+1,(0|(e=o[i- -64>>2]))==o[i+68>>2]&&!((0|(s=e?e<<1:1))<=(0|e))){if(s?(o[8488]=o[8488]+1,u=0|Zn[o[8290]](s<<3,16),e=o[i+64>>2]):u=0,!((0|e)<=0)){if(c=0,n=0,e>>>0>=4)for(d=-4&e,t=0;l=(b=n<<3)+u|0,w=b+o[i+72>>2]|0,Z=o[w+4>>2],o[l>>2]=o[w>>2],o[l+4>>2]=Z,w=(l=8|b)+u|0,l=l+o[i+72>>2]|0,Z=o[l+4>>2],o[w>>2]=o[l>>2],o[w+4>>2]=Z,w=(l=16|b)+u|0,l=l+o[i+72>>2]|0,Z=o[l+4>>2],o[w>>2]=o[l>>2],o[w+4>>2]=Z,l=(b|=24)+u|0,b=b+o[i+72>>2]|0,w=o[b+4>>2],o[l>>2]=o[b>>2],o[l+4>>2]=w,n=n+4|0,(0|d)!=(0|(t=t+4|0)););if(e&=3)for(;b=(t=n<<3)+u|0,t=t+o[i+72>>2]|0,d=o[t+4>>2],o[b>>2]=o[t>>2],o[b+4>>2]=d,n=n+1|0,(0|e)!=(0|(c=c+1|0)););}!(e=o[i+72>>2])||!e|!v[i+76|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[i+72>>2]=u,a[i+76|0]=1,o[i+68>>2]=s,e=o[i+64>>2]}if(t=o[f+8>>2],e=o[i+72>>2]+(e<<3)|0,o[e>>2]=o[f+4>>2],o[e+4>>2]=t,o[i+64>>2]=o[i+64>>2]+1,(0|k)>2]){if(n=0,u=0,s=0,h=0,!((0|(k=o[i+4>>2]))>=(0|(c=o[i+48>>2])))){if((0|c)<=o[i+8>>2])n=o[i+12>>2];else{c?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](c<<2,16),e=o[i+4>>2]):e=k,t=o[i+12>>2];e:{i:if((0|e)>0){if(e>>>0>=4)for(d=-4&e;o[(b=u<<2)+n>>2]=o[t+b>>2],o[(l=4|b)+n>>2]=o[t+l>>2],o[(l=8|b)+n>>2]=o[t+l>>2],o[(b|=12)+n>>2]=o[t+b>>2],u=u+4|0,(0|d)!=(0|(s=s+4|0)););if(!(e&=3))break i;for(;o[(b=u<<2)+n>>2]=o[t+b>>2],u=u+1|0,(0|e)!=(0|(h=h+1|0)););}else if(!t)break e;t&&v[i+16|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](t))}o[i+12>>2]=n,a[i+16|0]=1,o[i+8>>2]=c}if(Af((e=k<<2)+n|0,0,(d=c<<2)-e|0),o[i+4>>2]=c,(0|(t=o[i+24>>2]))<(0|c)){e:if((0|c)<=o[i+28>>2])n=o[i+32>>2];else{c?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](d,16),e=o[i+24>>2]):(n=0,e=t),b=o[i+32>>2];i:if((0|e)>0){if(h=0,u=0,e>>>0>=4)for(w=-4&e,s=0;o[(l=u<<2)+n>>2]=o[b+l>>2],o[(Z=4|l)+n>>2]=o[b+Z>>2],o[(Z=8|l)+n>>2]=o[b+Z>>2],o[(l|=12)+n>>2]=o[b+l>>2],u=u+4|0,(0|w)!=(0|(s=s+4|0)););if(!(e&=3))break i;for(;o[(s=u<<2)+n>>2]=o[b+s>>2],u=u+1|0,(0|e)!=(0|(h=h+1|0)););}else if(!b){o[i+32>>2]=n,o[i+28>>2]=c,a[i+36|0]=1;break e}b&&v[i+36|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](b)),o[i+32>>2]=n,a[i+36|0]=1,o[i+28>>2]=c}Af((e=t<<2)+n|0,0,d-e|0)}if(o[i+24>>2]=c,(0|c)>0&&(Af(o[i+12>>2],255,d),Af(o[i+32>>2],255,d)),!((0|k)<=0))for(e=o[i+32>>2],t=o[i+72>>2],n=o[i+12>>2],u=0;c=o[t+(u<<3)>>2],c=G((c=~(c<<15)+c|0)>>>10^c,9),c=~((c^=c>>>6)<<11)+c|0,c=n+((o[i+48>>2]-1&(c>>>16^c))<<2)|0,o[e+(u<<2)>>2]=o[c>>2],o[c>>2]=u,(0|k)!=(0|(u=u+1|0)););}e=o[f+4>>2],e=G((e=~(e<<15)+e|0)>>>10^e,9),e=~((e^=e>>>6)<<11)+e|0,h=o[i+48>>2]-1&(e>>>16^e)}e=o[i+12>>2]+(h<<2)|0,o[o[i+32>>2]+(Q<<2)>>2]=o[e>>2],o[e>>2]=Q;break r}o[o[i+52>>2]+(n<<2)>>2]=o[f+12>>2]}e=o[f+12>>2],Zn[o[o[e>>2]+60>>2]](e,r),k=o[A+8>>2]}if(!((0|(m=m+1|0))<(0|k)))break}if(!((0|k)<=0))for(e=0;t=o[o[A+16>>2]+(e<<2)>>2],64!=(0|(i=o[t+252>>2]))&1!=(0|i)||(Zn[o[o[t>>2]+24>>2]](t,r),k=o[A+8>>2]),(0|(e=e+1|0))<(0|k););}!(A=o[f+88>>2])||!A|!v[f+92|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[f+88>>2]=0,a[f+92|0]=1,o[f+80>>2]=0,o[f+84>>2]=0,!(A=o[f+68>>2])||!A|!v[f+72|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[f+68>>2]=0,a[f+72|0]=1,o[f+60>>2]=0,o[f+64>>2]=0,!(A=o[f+48>>2])||!A|!v[f+52|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[f+48>>2]=0,a[f+52|0]=1,o[f+40>>2]=0,o[f+44>>2]=0,!(A=o[f+28>>2])||!A|!v[f+32|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),S=f+96|0}function BA(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n,a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=0,Z=m(0),G=m(0),Q=m(0),E=0,W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=0,x=m(0),y=m(0),M=m(0),H=m(0);S=e=S-144|0,o[e+108>>2]=0,a=w[r+80>>2],t=w[r+96>>2],W=w[r+120>>2],d=w[r+56>>2],D=w[r+112>>2],F=w[r+116>>2],x=w[r+52>>2],u=w[r+68>>2],l=w[r+84>>2],h=w[r+100>>2],c=w[r+20>>2],Z=w[r+36>>2],v=w[r+72>>2],k=w[r+88>>2],G=w[r+24>>2],b=w[r+104>>2],g=w[r+40>>2],s=w[r+64>>2],X=w[r+32>>2],p=w[r>>2],R=w[r+16>>2],y=w[r+48>>2],Y=w[r+4>>2],Q=w[r+8>>2],o[e+104>>2]=0,o[e+88>>2]=0,o[e+72>>2]=0,w[e+84>>2]=m(b*g)+m(m(v*Q)+m(G*k)),w[e+80>>2]=m(b*Z)+m(m(v*Y)+m(c*k)),w[e+68>>2]=m(h*g)+m(m(u*Q)+m(G*l)),w[e- -64>>2]=m(h*Z)+m(m(u*Y)+m(c*l)),W=m(d-W),d=m(y-D),D=m(x-F),w[e+100>>2]=m(b*W)+m(m(v*d)+m(k*D)),w[e+96>>2]=m(h*W)+m(m(u*d)+m(D*l)),o[e+56>>2]=0,w[e+76>>2]=m(b*X)+m(m(v*p)+m(R*k)),w[e+60>>2]=m(h*X)+m(m(u*p)+m(R*l)),w[e+52>>2]=m(t*g)+m(m(s*Q)+m(a*G)),w[e+48>>2]=m(t*Z)+m(m(s*Y)+m(a*c)),w[e+44>>2]=m(t*X)+m(m(s*p)+m(a*R)),w[e+92>>2]=m(t*W)+m(m(s*d)+m(D*a)),l=w[A+12>>2],Z=m(0),G=m(0),g=m(0),S=n=S-32|0,E=o[A+8>>2],a=w[E+64>>2],h=m(w[E+80>>2]-a),b=w[E+68>>2],v=m(w[E+100>>2]-b),k=m(w[E+96>>2]-a),u=m(w[E+84>>2]-b),t=m(m(h*v)-m(k*u)),d=u,u=w[E+72>>2],s=m(w[E+104>>2]-u),c=m(w[E+88>>2]-u),v=m(m(d*s)-m(v*c)),k=m(m(c*k)-m(s*h));A:if((h=m(m(t*t)+m(m(v*v)+m(k*k))))>=m(14210854715202004e-30)&&(B=o[A+4>>2],X=m(w[B+36>>2]*w[B+20>>2]),l=m(X+l),p=w[e+100>>2],c=t,t=m(m(1)/m(N(h))),h=m(c*t),c=m(m(p-u)*h),u=w[e+92>>2],v=m(v*t),k=m(k*t),t=w[e+96>>2],(a=m(c+m(m(m(u-a)*v)+m(k*m(t-b)))))>2],o[n+24>>2]=o[e+100>>2],o[n+28>>2]=B,B=o[e+96>>2],o[n+16>>2]=o[e+92>>2],o[n+20>>2]=B,o[n+12>>2]=0,w[n+8>>2]=h,w[n+4>>2]=k,w[n>>2]=v,R=w[32+(B=E- -64|0)>>2],Y=w[B+40>>2],Q=w[B+24>>2],W=m(Y-Q),d=w[B+16>>2],C=m(R-d),b=w[n+4>>2],s=w[n>>2],D=w[B+36>>2],F=w[B+20>>2],c=m(D-F),x=w[n+24>>2],M=m(m(m(C*b)-m(s*c))*m(x-Q)),V=c,c=w[n+8>>2],y=w[n+16>>2],H=w[n+20>>2],W=m(M+m(m(m(m(V*c)-m(b*W))*m(y-d))+m(m(H-F)*m(m(W*s)-m(c*C))))),V=Q,Q=w[B+8>>2],C=m(V-Q),V=d,d=w[B>>2],M=m(V-d),V=F,F=w[B+4>>2],V=m(V-F),C=m(m(m(m(M*b)-m(s*V))*m(x-Q))+m(m(m(m(V*c)-m(b*C))*m(y-d))+m(m(H-F)*m(m(C*s)-m(c*M))))),d=m(d-R),F=m(F-D),x=m(m(m(d*b)-m(s*F))*m(x-Y)),V=b,b=m(Q-Y),!(!((b=m(x+m(m(m(m(F*c)-m(V*b))*m(y-R))+m(m(H-D)*m(m(b*s)-m(c*d))))))>m(0))|!(C>m(0)))&&(B=1,W>m(0))||(B=C<=m(0)&W<=m(0)&b<=m(0)),B)Z=m(p-m(a*h)),G=m(t-m(a*k)),g=m(u-m(a*v)),R=m(l*l);else{if((0|Zn[o[o[E>>2]+100>>2]](E))<=0)break A;for(R=m(l*l),B=0,E=0;J=o[A+8>>2],Zn[o[o[J>>2]+104>>2]](J,E,n+16|0,n),t=m(0),p=w[n+24>>2],b=m(w[n+8>>2]-p),a=m(w[e+100>>2]-p),Y=w[n+16>>2],s=m(w[n>>2]-Y),l=m(w[e+92>>2]-Y),Q=w[n+20>>2],u=m(w[e+96>>2]-Q),c=m(w[n+4>>2]-Q),(W=m(m(b*a)+m(m(s*l)+m(u*c))))>m(0)&&((t=m(m(b*b)+m(m(s*s)+m(c*c))))>W?(t=m(W/t),a=m(a-m(b*t)),u=m(u-m(c*t)),l=m(l-m(s*t))):(a=m(a-b),u=m(u-c),l=m(l-s),t=m(1))),m(m(a*a)+m(m(l*l)+m(u*u)))>2],E=E+1|0,(0|Zn[o[o[J>>2]+100>>2]](J))>(0|E););if(J=0,!B)break A;p=w[e+100>>2],t=w[e+96>>2],u=w[e+92>>2]}a=m(p-Z),u=m(u-g),t=m(t-G),(l=m(m(a*a)+m(m(u*u)+m(t*t))))m(1.1920928955078125e-7)?(o[e+124>>2]=0,b=a,l=m(N(l)),a=m(m(1)/l),w[e+120>>2]=b*a,w[e+116>>2]=t*a,w[e+112>>2]=u*a,X=m(X-l)):(o[e+124>>2]=0,w[e+120>>2]=h,w[e+116>>2]=k,w[e+112>>2]=v),o[e+140>>2]=0,w[e+136>>2]=Z,w[e+132>>2]=G,w[e+128>>2]=g,w[e+108>>2]=-X,J=1)}S=n+32|0,J&&(i?(l=w[r+72>>2],h=w[r+64>>2],v=w[r+68>>2],k=w[r+88>>2],b=w[r+80>>2],s=w[r+84>>2],c=w[r+104>>2],Z=w[r+96>>2],G=w[r+100>>2],a=w[e+120>>2],t=w[e+112>>2],u=w[e+116>>2],o[e+40>>2]=0,g=m(m(c*a)+m(m(Z*t)+m(u*G))),w[e+36>>2]=-g,X=m(m(k*a)+m(m(b*t)+m(u*s))),w[e+32>>2]=-X,p=m(m(l*a)+m(m(h*t)+m(v*u))),w[e+28>>2]=-p,R=w[r+112>>2],Y=w[r+116>>2],a=w[r+120>>2],o[e+24>>2]=0,t=w[e+136>>2],d=m(c*t),u=w[e+128>>2],c=w[e+132>>2],d=m(a+m(d+m(m(Z*u)+m(G*c)))),a=w[e+108>>2],w[e+20>>2]=d+m(g*a),w[e+16>>2]=m(Y+m(m(t*k)+m(m(u*b)+m(s*c))))+m(X*a),w[e+12>>2]=m(R+m(m(t*l)+m(m(u*h)+m(v*c))))+m(p*a),Zn[o[o[f>>2]+16>>2]](f,e+28|0,e+12|0,a)):(a=w[r+72>>2],t=w[r+64>>2],u=w[r+68>>2],l=w[r+88>>2],h=w[r+80>>2],v=w[r+84>>2],k=w[r+104>>2],b=w[r+96>>2],s=w[r+100>>2],o[e+40>>2]=0,c=w[e+120>>2],Z=w[e+112>>2],G=w[e+116>>2],w[e+36>>2]=m(k*c)+m(m(b*Z)+m(s*G)),w[e+32>>2]=m(l*c)+m(m(h*Z)+m(G*v)),w[e+28>>2]=m(a*c)+m(m(t*Z)+m(u*G)),c=w[r+112>>2],Z=w[r+116>>2],G=w[r+120>>2],o[e+24>>2]=0,d=k,k=w[e+136>>2],Q=b,b=w[e+128>>2],F=s,s=w[e+132>>2],w[e+20>>2]=G+m(m(d*k)+m(m(Q*b)+m(F*s))),w[e+16>>2]=Z+m(m(k*l)+m(m(b*h)+m(v*s))),w[e+12>>2]=c+m(m(k*a)+m(m(b*t)+m(u*s))),Zn[o[o[f>>2]+16>>2]](f,e+28|0,e+12|0,w[e+108>>2]))),S=e+144|0}function wA(A,r){var f=m(0),e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=0,l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=0,Y=m(0),V=m(0),g=0,X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=m(0),S=m(0),L=m(0),$=m(0),K=m(0),q=m(0),_=m(0),AA=m(0),rA=m(0),fA=m(0),eA=m(0),iA=0;A:if(4!=(0|(u=o[A+844>>2])))o[A+844>>2]=u+1;else{g=(u=(f=w[A+84>>2])<(i=w[r+80>>2]))?0:-1,u=(n=w[A+292>>2])<(f=u?f:i),g=(R=(i=w[A+500>>2])<(f=u?n:f))?2:u?1:g,g=(u=w[A+708>>2]<(R?i:f))?3:g;r:{f:{e:{i:{if(v[33192]){if(!g){k=w[A+636>>2],c=w[A+428>>2],t=m(k-c),B=w[A+632>>2],l=w[A+424>>2],e=m(B-l),p=w[A+628>>2],F=w[A+420>>2],s=m(p-F),i=w[r+8>>2],n=w[r+4>>2],b=w[r>>2];break i}if(b=w[r>>2],E=w[A+212>>2],f=m(b-E),B=w[A+632>>2],l=w[A+424>>2],e=m(B-l),p=w[A+628>>2],F=w[A+420>>2],s=m(p-F),n=w[r+4>>2],W=w[A+216>>2],i=m(n-W),t=m(m(f*e)-m(s*i)),d=m(t*t),k=w[A+636>>2],c=w[A+428>>2],t=m(k-c),h=m(i*t),i=w[r+8>>2],N=w[A+220>>2],a=m(i-N),h=m(h-m(e*a)),f=m(m(a*s)-m(t*f)),eA=m(d+m(m(h*h)+m(f*f))),1!=(0|g))break i;b=m(b-w[A+4>>2]),a=m(-b),n=m(n-w[A+8>>2]),h=m(-n),i=m(i-w[A+12>>2]),Z=m(-i),s=m(0);break e}n:{a:{t:{if(g){if(W=w[r>>2],a=w[A+212>>2],I=m(W-a),n=w[A+424>>2],e=w[A+632>>2],Y=m(n-e),i=w[A+420>>2],l=w[A+628>>2],X=m(i-l),N=w[r+4>>2],h=w[A+216>>2],T=m(N-h),f=m(m(I*Y)-m(X*T)),c=m(f*f),b=w[A+428>>2],t=w[A+636>>2],s=m(b-t),E=w[r+8>>2],Z=w[A+220>>2],U=m(E-Z),f=m(m(T*s)-m(Y*U)),k=m(f*f),f=m(m(U*X)-m(s*I)),k=m(c+m(k+m(f*f))),J=m(W-i),D=m(h-e),f=m(a-l),y=m(N-n),c=m(m(J*D)-m(f*y)),B=m(c*c),C=m(Z-t),x=m(E-b),c=m(m(y*C)-m(D*x)),d=m(c*c),c=m(m(x*f)-m(C*J)),k=(c=m(B+m(d+m(c*c))))>2],t=w[A+636>>2],s=m(b-t),n=w[A+424>>2],e=w[A+632>>2],Y=m(n-e),i=w[A+420>>2],l=w[A+628>>2],X=m(i-l),N=w[r+4>>2],M=m(N-e),S=m(-M),W=w[r>>2],V=m(W-l),L=m(-V),E=w[r+8>>2],H=m(E-t),$=m(-H),J=m(W-i),C=m(-J),x=m(E-b),O=m(-x),y=m(N-n),f=m(-y);if(k=w[A+4>>2],p=m(W-k),c=w[A+8>>2],F=m(N-c),a=m(m(p*Y)-m(X*F)),d=m(a*a),B=w[A+12>>2],j=m(E-B),a=m(m(F*s)-m(Y*j)),s=m(m(j*X)-m(s*p)),s=m(d+m(m(a*a)+m(s*s))),d=m(c-e),z=m(k-l),a=m(m(J*d)+m(z*f)),h=m(a*a),P=m(B-t),a=m(m(y*P)+m(d*O)),Z=m(a*a),a=m(m(x*z)+m(P*C)),s=(a=m(h+m(Z+m(a*a))))>2],T=m(N-h),q=m(-T),a=w[A+212>>2],I=m(W-a),_=m(-I),Z=w[A+220>>2],U=m(E-Z),AA=m(-U),rA=m(-F),fA=m(-j),!(!R|u)){l=m(B-Z),d=m(c-h),V=m(k-a),e=m(0);break n}C=m(Z-t),D=m(h-e),f=m(a-l);break a}q=m(-T),_=m(-I),AA=m(-U),k=w[A+4>>2],z=m(k-l),B=w[A+12>>2],P=m(B-t),c=w[A+8>>2],d=m(c-e),p=m(W-k),K=m(-p),F=m(N-c),rA=m(-F),j=m(E-B),fA=m(-j),s=m(0)}if(e=m(m(p*D)+m(f*rA)),t=m(e*e),e=m(m(F*C)+m(D*fA)),f=m(m(j*f)+m(C*K)),f=m(t+m(m(e*e)+m(f*f))),e=m(m(I*d)+m(z*q)),t=m(e*e),e=m(m(T*P)+m(d*AA)),l=m(e*e),e=m(m(U*z)+m(P*_)),f=f>(e=m(t+m(l+m(e*e))))?f:e,d=m(c-h),t=m(V*d),V=m(k-a),e=m(t+m(V*S)),t=m(e*e),l=m(B-Z),e=m(m(M*l)+m(d*$)),Y=m(e*e),e=m(m(H*V)+m(l*L)),e=f>(e=m(t+m(Y+m(e*e))))?f:e,f=m(0),u)break r;D=m(B-b),Y=m(c-n),X=m(k-i),y=m(N-n),f=m(-y),J=m(W-i),C=m(-J),x=m(E-b),O=m(-x)}n=m(h-n),i=m(a-i),t=m(m(p*n)+m(i*rA)),b=m(Z-b),n=m(m(F*b)+m(n*fA)),i=m(m(j*i)+m(b*K)),i=m(m(t*t)+m(m(n*n)+m(i*i))),n=m(m(I*Y)+m(X*q)),t=m(n*n),n=m(m(T*D)+m(Y*AA)),a=m(n*n),n=m(m(U*X)+m(D*_)),i=i>(n=m(t+m(a+m(n*n))))?i:n,f=m(m(J*d)+m(V*f)),n=m(f*f),f=m(m(y*l)+m(d*O)),t=m(f*f),f=m(m(x*V)+m(l*C)),f=(f=m(n+m(t+m(f*f))))>2]),n=m(n-w[A+8>>2]),f=m(m(b*e)-m(s*n)),a=m(f*f),i=m(i-w[A+12>>2]),f=m(m(n*t)-m(e*i)),e=m(f*f),f=m(m(i*s)-m(t*b)),s=m(a+m(e+m(f*f))),N=w[A+220>>2],W=w[A+216>>2],E=w[A+212>>2],a=m(-b),h=m(-n),Z=m(-i),!u&&(e=m(0),R))break f}if(f=m(B-W),e=m(p-E),t=m(m(b*f)+m(e*h)),B=m(t*t),t=m(k-N),f=m(m(n*t)+m(f*Z)),k=m(f*f),f=m(m(i*e)+m(t*a)),e=m(B+m(k+m(f*f))),f=m(0),u)break r}f=m(l-W),t=m(b*f),b=m(F-E),l=m(t+m(b*h)),t=n,n=m(c-N),f=m(m(t*n)+m(f*Z)),t=m(f*f),f=m(m(i*b)+m(n*a)),f=m(m(l*l)+m(t+m(f*f)))}if(R=(u=(i=m(Q(eA)))>m(-0xde0b6b000000000))?0:-1,R=(u=(n=m(Q(s)))>(i=u?i:m(-0xde0b6b000000000)))?1:R,u=(b=m(Q(e)))>(i=u?n:i),u=m(Q(f))>(u?b:i)?3:u?2:R,g=G(u,208)+A|0,!(R=o[g+120>>2]))break A;if(!(iA=o[8785]))break A;Zn[0|iA](R),o[g+120>>2]=0}return pr(4+((R=A)+G(A=(0|u)>0?u:0,208)|0)|0,r,208),A}function ZA(A,r,f,e,i,n){A|=0,r|=0,f|=0,e|=0,i|=0,n|=0;var a,t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=0,Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=0,C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=m(0),L=m(0),$=m(0),K=m(0),q=m(0),_=m(0),AA=m(0),rA=m(0),fA=m(0),eA=m(0),iA=0,nA=m(0),aA=0;S=a=S-96|0,re(o[A+4>>2]),L=w[e+40>>2],$=w[e+36>>2],K=w[e+24>>2],q=w[e+20>>2],J=w[r+20>>2],x=w[r+36>>2],y=w[r+24>>2],F=w[r+52>>2],s=w[f+52>>2],R=w[e+52>>2],l=w[i+52>>2],M=w[r+40>>2],Y=w[r+56>>2],t=w[f+56>>2],V=w[e+56>>2],c=w[i+56>>2],_=w[e+32>>2],AA=w[e+16>>2],rA=w[e+8>>2],fA=w[e+4>>2],eA=w[e>>2],H=w[r>>2],I=w[r+16>>2],T=w[r+32>>2],U=w[r+4>>2],j=w[r+8>>2],g=w[r+48>>2],b=w[f+48>>2],X=w[e+48>>2],v=w[i+48>>2],B=o[A+8>>2],o[a+60>>2]=0,p=m(m(b-g)-m(v-X)),b=m(-p),G=m(m(s-F)-m(l-R)),Q=m(m(t-Y)-m(c-V)),w[a+56>>2]=m(m(j*b)-m(y*G))-m(M*Q),w[a+52>>2]=m(m(U*b)-m(J*G))-m(x*Q),w[a+48>>2]=m(m(H*b)-m(I*G))-m(T*Q),Zn[o[o[B>>2]+64>>2]](a+80|0,B,a+48|0),t=w[r+52>>2],c=w[r+24>>2],v=w[r+20>>2],b=w[r+56>>2],s=w[r+40>>2],l=w[r+36>>2],u=w[r+16>>2],k=w[r+48>>2],Z=w[r+8>>2],d=w[r>>2],h=w[r+4>>2],E=w[r+32>>2],o[a+76>>2]=0,z=b,b=w[a+88>>2],W=m(s*b),s=w[a+80>>2],P=l,l=w[a+84>>2],E=m(z+m(W+m(m(E*s)+m(P*l)))),w[a+72>>2]=E,k=m(k+m(m(b*Z)+m(m(s*d)+m(l*h)))),w[a+64>>2]=k,t=m(t+m(m(b*c)+m(m(s*u)+m(l*v)))),w[a+68>>2]=t,B=o[A+12>>2],b=w[e+20>>2],s=w[e+36>>2],l=w[e+24>>2],c=w[e+40>>2],v=w[e>>2],u=w[e+16>>2],Z=w[e+32>>2],d=w[e+4>>2],h=w[e+8>>2],o[a+28>>2]=0,w[a+24>>2]=m(c*Q)+m(m(h*p)+m(G*l)),w[a+20>>2]=m(s*Q)+m(m(d*p)+m(G*b)),w[a+16>>2]=m(Z*Q)+m(m(v*p)+m(G*u)),Zn[o[o[B>>2]+64>>2]](a+32|0,B,a+16|0),v=w[e+56>>2],u=w[e+40>>2],Z=w[e+36>>2],b=w[e+52>>2],s=w[e+24>>2],l=w[e+20>>2],d=w[e+32>>2],c=w[e+48>>2],h=w[e+8>>2],W=w[e>>2],O=w[e+4>>2],C=w[e+16>>2],o[a+60>>2]=0,o[a+92>>2]=0,z=b,b=w[a+40>>2],nA=m(s*b),s=w[a+32>>2],P=l,l=w[a+36>>2],C=m(z+m(nA+m(m(C*s)+m(P*l)))),w[a+52>>2]=C,t=m(t-C),w[a+84>>2]=t,c=m(c+m(m(b*h)+m(m(s*W)+m(l*O)))),w[a+48>>2]=c,c=m(k-c),w[a+80>>2]=c,b=m(v+m(m(b*u)+m(m(s*d)+m(l*Z)))),w[a+56>>2]=b,u=m(E-b),w[a+88>>2]=u,Z=m(0),b=m(0),s=m(0),l=m(0),v=m(0),k=m(0);A:{r:if(m(m(u*u)+m(m(c*c)+m(t*t)))>m(9999999747378752e-20))for(B=32;;){if(!B)break r;if(D=o[A+8>>2],o[a+12>>2]=0,t=m(-w[a+80>>2]),c=w[a+84>>2],u=w[a+88>>2],w[a+8>>2]=m(m(j*t)-m(y*c))-m(M*u),w[a+4>>2]=m(m(U*t)-m(J*c))-m(x*u),w[a>>2]=m(m(H*t)-m(I*c))-m(T*u),iA=a+16|0,Zn[o[o[D>>2]+64>>2]](iA,D,a),o[a+76>>2]=0,t=w[a+24>>2],c=w[a+16>>2],u=w[a+20>>2],w[a+72>>2]=Y+m(m(t*M)+m(m(c*T)+m(x*u))),w[a+68>>2]=F+m(m(t*y)+m(m(c*I)+m(J*u))),w[a+64>>2]=g+m(m(t*j)+m(m(c*H)+m(U*u))),D=o[A+12>>2],o[a+12>>2]=0,t=w[a+88>>2],c=w[a+80>>2],u=w[a+84>>2],w[a+8>>2]=m(L*t)+m(m(rA*c)+m(K*u)),w[a+4>>2]=m($*t)+m(m(fA*c)+m(q*u)),w[a>>2]=m(_*t)+m(m(eA*c)+m(AA*u)),Zn[o[o[D>>2]+64>>2]](iA,D,a),o[a+60>>2]=0,o[a+44>>2]=0,u=w[a+24>>2],d=w[a+16>>2],h=w[a+20>>2],t=m(R+m(m(u*K)+m(m(d*AA)+m(q*h)))),w[a+52>>2]=t,E=m(w[a+68>>2]-t),w[a+36>>2]=E,t=w[a+84>>2],c=m(X+m(m(u*rA)+m(m(d*eA)+m(fA*h)))),w[a+48>>2]=c,W=m(w[a+64>>2]-c),w[a+32>>2]=W,c=w[a+80>>2],u=m(V+m(m(u*L)+m(m(d*_)+m($*h)))),w[a+56>>2]=u,d=m(w[a+72>>2]-u),w[a+40>>2]=d,k>m(1))break A;if(u=w[a+88>>2],(d=m(m(u*d)+m(m(c*W)+m(t*E))))>m(0)){if((b=m(m(u*Q)+m(m(c*p)+m(G*t))))>=m(-14210854715202004e-30))break A;s=w[r+48>>2],l=w[f+48>>2],v=w[r+52>>2],F=w[f+52>>2],Y=w[r+56>>2],g=w[f+56>>2],X=w[e+48>>2],h=w[i+48>>2],R=w[e+52>>2],W=w[i+52>>2],V=w[e+56>>2],O=w[i+56>>2],o[a+44>>2]=0,w[a+36>>2]=E,k=m(k-m(d/b)),b=m(m(1)-k),V=m(m(V*b)+m(k*O)),R=m(m(b*R)+m(k*W)),X=m(m(b*X)+m(k*h)),Y=m(m(b*Y)+m(k*g)),F=m(m(b*v)+m(k*F)),g=m(m(b*s)+m(k*l)),v=w[a+92>>2],s=t,l=u,b=c}if(wf(o[A+4>>2],a+32|0)||Wf(o[A+4>>2],a+32|0,a- -64|0,a+48|0),!De(o[A+4>>2],a+80|0))break r;if(B=B-1|0,t=w[a+88>>2],c=m(t*t),t=w[a+80>>2],u=m(t*t),t=w[a+84>>2],!(m(c+m(u+m(t*t)))>m(9999999747378752e-20)))break}w[n+164>>2]=k,k=m(0),c=m(0),t=m(0),(u=m(m(l*l)+m(m(b*b)+m(s*s))))>=m(14210854715202004e-30)&&(t=l,l=m(m(1)/m(N(u))),c=m(t*l),k=m(s*l),Z=m(b*l),t=v),w[n+132>>2]=Z,w[n+144>>2]=t,w[n+140>>2]=c,w[n+136>>2]=k,m(-w[n+172>>2])<=m(m(c*Q)+m(m(Z*p)+m(G*k)))||(fe(o[A+4>>2],a+16|0,a),A=o[a+12>>2],o[n+156>>2]=o[a+8>>2],o[n+160>>2]=A,A=o[a+4>>2],o[n+148>>2]=o[a>>2],o[n+152>>2]=A,aA=1)}return S=a+96|0,0|aA}function GA(A,r,f){var e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=m(0),s=0,k=0,d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0);A:{r:{if(v[A+165|0]){if(!(!f|(0|(e=o[A+88>>2]))<=0))for(i=o[A+96>>2],d=w[A+168>>2],h=w[r+8>>2],B=w[r+4>>2],Z=w[r>>2],f=0;;){if(l=m(w[8+(n=i+(f<<4)|0)>>2]-h),G=m(l*l),l=m(w[n>>2]-Z),Q=m(l*l),l=m(w[n+4>>2]-B),d>=m(G+m(Q+m(l*l))))break r;if((0|e)==(0|(f=f+1|0)))break}if(f=o[A+32>>2],o[f+12>>2]=o[f+12>>2]+1,o[A+92>>2]==(0|e)&&!((0|(c=e?e<<1:1))<=(0|e))){if(c&&(o[8488]=o[8488]+1,t=0|Zn[o[8290]](c<<4,16),e=o[A+88>>2]),!((0|e)<=0)){if(b=1&e,f=0,1!=(0|e))for(s=-2&e,e=0;n=(u=f<<4)+t|0,k=u+o[A+96>>2]|0,i=o[k+4>>2],o[n>>2]=o[k>>2],o[n+4>>2]=i,i=o[k+12>>2],o[n+8>>2]=o[k+8>>2],o[n+12>>2]=i,n=(i=16|u)+t|0,u=i+o[A+96>>2]|0,i=o[u+4>>2],o[n>>2]=o[u>>2],o[n+4>>2]=i,i=o[u+12>>2],o[n+8>>2]=o[u+8>>2],o[n+12>>2]=i,f=f+2|0,(0|s)!=(0|(e=e+2|0)););b&&(n=(f<<=4)+t|0,i=f+o[A+96>>2]|0,f=o[i+4>>2],o[n>>2]=o[i>>2],o[n+4>>2]=f,f=o[i+12>>2],o[n+8>>2]=o[i+8>>2],o[n+12>>2]=f)}!(f=o[A+96>>2])||!f|!v[A+100|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+96>>2]=t,a[A+100|0]=1,o[A+92>>2]=c,e=o[A+88>>2]}return f=o[r+4>>2],i=o[A+96>>2]+(e<<4)|0,o[i>>2]=o[r>>2],o[i+4>>2]=f,f=o[r+12>>2],o[i+8>>2]=o[r+8>>2],o[i+12>>2]=f,r=o[A+88>>2],o[A+88>>2]=r+1,o[o[A+32>>2]+16>>2]=o[A+96>>2],r}if(!(!f|(0|(e=o[A+108>>2]))<=0))for(i=o[A+116>>2],d=w[A+168>>2],h=w[r+8>>2],B=w[r+4>>2],Z=w[r>>2],f=0;;){if(l=m(w[8+(n=i+(f<<2)|0)>>2]-h),G=m(l*l),l=m(w[n>>2]-Z),Q=m(l*l),l=m(w[n+4>>2]-B),d>=m(G+m(Q+m(l*l))))break A;if(!((0|e)>(0|(f=f+3|0))))break}if((0|(i=o[A+112>>2]))==(0|e))if((0|(i=e?e<<1:1))<=(0|e))i=e;else{i&&(o[8488]=o[8488]+1,c=0|Zn[o[8290]](i<<2,16),e=o[A+108>>2]),b=o[A+116>>2];f:{e:{if((0|e)>0){if(f=0,e>>>0>=4)for(t=-4&e;w[(s=f<<2)+c>>2]=w[b+s>>2],w[(n=4|s)+c>>2]=w[n+b>>2],w[(n=8|s)+c>>2]=w[n+b>>2],w[(n=12|s)+c>>2]=w[n+b>>2],f=f+4|0,(0|t)!=(0|(u=u+4|0)););if(t=3&e)for(;w[(n=f<<2)+c>>2]=w[n+b>>2],f=f+1|0,(0|t)!=(0|(k=k+1|0)););if(v[A+120|0])break e;break f}if(!b|!v[A+120|0])break f}b&&(o[8489]=o[8489]+1,Zn[o[8291]](b)),e=o[A+108>>2]}o[A+116>>2]=c,o[A+112>>2]=i,a[A+120|0]=1}if(t=o[A+116>>2],w[t+(e<<2)>>2]=w[r>>2],e=e+1|0,o[A+108>>2]=e,(0|e)==(0|i))if((0|i)>=(0|(n=i?i<<1:1)))n=i,f=t;else{n?(o[8488]=o[8488]+1,f=0|Zn[o[8290]](n<<2,16),t=o[A+116>>2],i=o[A+108>>2]):f=0;f:{e:{if((0|i)>0){if(k=0,c=0,i>>>0>=4)for(s=-4&i,u=0;w[(b=c<<2)+f>>2]=w[t+b>>2],w[(e=4|b)+f>>2]=w[e+t>>2],w[(e=8|b)+f>>2]=w[e+t>>2],w[(e=12|b)+f>>2]=w[e+t>>2],c=c+4|0,(0|s)!=(0|(u=u+4|0)););if(s=3&i)for(;w[(e=c<<2)+f>>2]=w[e+t>>2],c=c+1|0,(0|s)!=(0|(k=k+1|0)););if(v[A+120|0])break e;break f}if(!t|!v[A+120|0])break f}t&&(o[8489]=o[8489]+1,Zn[o[8291]](t)),i=o[A+108>>2]}o[A+116>>2]=f,o[A+112>>2]=n,a[A+120|0]=1}else n=i,f=t,i=e;if(w[(i<<2)+f>>2]=w[r+4>>2],i=i+1|0,o[A+108>>2]=i,(0|i)==(0|n))if((0|(b=n?n<<1:1))<=(0|n))e=f;else{b?(o[8488]=o[8488]+1,e=0|Zn[o[8290]](b<<2,16),f=o[A+116>>2],n=o[A+108>>2]):e=0;f:{e:{if((0|n)>0){if(i=0,c=0,n>>>0>=4)for(s=-4&n,k=0;w[(u=c<<2)+e>>2]=w[f+u>>2],w[(t=4|u)+e>>2]=w[f+t>>2],w[(t=8|u)+e>>2]=w[f+t>>2],w[(t=12|u)+e>>2]=w[f+t>>2],c=c+4|0,(0|s)!=(0|(k=k+4|0)););if(s=3&n)for(;w[(t=c<<2)+e>>2]=w[f+t>>2],c=c+1|0,(0|s)!=(0|(i=i+1|0)););if(v[A+120|0])break e;break f}if(!f|!v[A+120|0])break f}f&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),n=o[A+108>>2]}o[A+116>>2]=e,o[A+112>>2]=b,a[A+120|0]=1}else e=f,n=i;w[(n<<2)+e>>2]=w[r+8>>2],r=n+1|0,o[A+108>>2]=r,A=o[A+32>>2],o[A+16>>2]=e,o[A+12>>2]=o[A+12>>2]+1,f=((0|r)/3|0)-1|0}return f}return(f>>>0)/3|0}function mA(A,r,f,e,i,n,t,c,b,u,l,s){var k=0,d=m(0),h=m(0),B=m(0),Z=m(0),Q=0,E=0,W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=0,y=m(0),M=m(0),H=m(0),I=m(0),T=0,U=0,j=m(0),z=m(0),P=m(0),O=m(0),S=m(0),L=0,$=m(0),K=m(0),q=m(0),_=0;if(E=Q=o[A+68>>2],(0|Q)==o[A+72>>2]&&!((0|Q)>=(0|(T=Q?Q<<1:1)))){if(T?(o[8488]=o[8488]+1,U=0|Zn[o[8290]](G(T,152),16),k=o[A+68>>2]):k=Q,!((0|k)<=0)){if(E=0,1!=(0|k))for(_=-2&k;pr((x=G(E,152))+U|0,x+o[A+76>>2]|0,152),pr((x=G(1|E,152))+U|0,x+o[A+76>>2]|0,152),E=E+2|0,(0|(L=L+2|0))!=(0|_););1&k&&pr((k=G(E,152))+U|0,k+o[A+76>>2]|0,152)}!(k=o[A+76>>2])||!k|!v[A+80|0]||(o[8489]=o[8489]+1,Zn[o[8291]](k)),o[A+76>>2]=U,a[A+80|0]=1,o[A+72>>2]=T,E=o[A+68>>2]}o[A+68>>2]=E+1,k=o[A+76>>2]+G(Q,152)|0,o[k+140>>2]=i,Q=o[A+16>>2],A=o[240+(Q+G(e,244)|0)>>2],i=o[240+(Q+G(f,244)|0)>>2],o[k+148>>2]=e,o[k+144>>2]=f,j=w[n+84>>2],o[k+132>>2]=0,w[k+104>>2]=j,o[k+96>>2]=0,o[k+100>>2]=0,i?(E=o[r+4>>2],o[k+16>>2]=o[r>>2],o[k+20>>2]=E,E=o[r+12>>2],o[k+24>>2]=o[r+8>>2],o[k+28>>2]=E,B=w[t+8>>2],d=w[t>>2],h=w[t+4>>2],o[k+12>>2]=0,z=w[k+20>>2],P=w[k+16>>2],y=m(m(d*z)-m(h*P)),w[k+8>>2]=y,O=w[k+24>>2],M=m(m(B*P)-m(d*O)),w[k+4>>2]=M,H=m(m(h*O)-m(z*B)),w[k>>2]=H,B=w[i+332>>2],d=w[i+328>>2],h=w[i+608>>2],Z=w[i+348>>2],R=w[i+340>>2],g=w[i+344>>2],W=w[i+612>>2],F=w[i+364>>2],X=w[i+356>>2],D=w[i+360>>2],C=w[i+604>>2],p=w[i+324>>2],o[k+76>>2]=0,W=m(W*m(m(F*y)+m(m(X*H)+m(M*D)))),w[k+72>>2]=W,Z=m(h*m(m(Z*y)+m(m(R*H)+m(M*g)))),w[k+68>>2]=Z,R=m(C*m(m(B*y)+m(m(p*H)+m(M*d)))),w[k+64>>2]=R):(o[k+64>>2]=0,o[k+68>>2]=0,o[k>>2]=0,o[k+4>>2]=0,o[k+72>>2]=0,o[k+76>>2]=0,o[k+8>>2]=0,o[k+12>>2]=0,o[k+16>>2]=0,o[k+20>>2]=0,o[k+24>>2]=0,o[k+28>>2]=0),A?(B=w[r>>2],d=w[r+4>>2],h=w[r+8>>2],o[k+60>>2]=0,$=m(-h),w[k+56>>2]=$,K=m(-d),w[k+52>>2]=K,q=m(-B),w[k+48>>2]=q,N=w[c+8>>2],Y=w[c+4>>2],V=w[c>>2],o[k+44>>2]=0,I=m(m(B*Y)-m(V*d)),w[k+40>>2]=I,V=m(m(h*V)-m(N*B)),w[k+36>>2]=V,Y=m(m(d*N)-m(Y*h)),w[k+32>>2]=Y,B=w[A+332>>2],h=w[A+328>>2],d=w[A+608>>2],g=w[A+348>>2],F=w[A+340>>2],X=w[A+344>>2],N=w[A+612>>2],D=w[A+364>>2],C=w[A+356>>2],p=w[A+360>>2],S=w[A+604>>2],J=w[A+324>>2],o[k+92>>2]=0,N=m(N*m(m(D*I)+m(m(C*Y)+m(V*p)))),w[k+88>>2]=N,d=m(d*m(m(g*I)+m(m(F*Y)+m(V*X)))),w[k+84>>2]=d,h=m(S*m(m(B*I)+m(m(J*Y)+m(V*h)))),w[k+80>>2]=h):(o[k+80>>2]=0,o[k+84>>2]=0,o[k+32>>2]=0,o[k+36>>2]=0,o[k+88>>2]=0,o[k+92>>2]=0,o[k+40>>2]=0,o[k+44>>2]=0,o[k+48>>2]=0,o[k+52>>2]=0,o[k+56>>2]=0,o[k+60>>2]=0,d=m(0),h=m(0)),g=m(0),S=b,i?(b=w[t+4>>2],F=w[t>>2],p=m(w[r+8>>2]*m(m(R*b)-m(F*Z))),J=Z,Z=w[t+8>>2],J=m(w[i+404>>2]+m(p+m(m(w[r>>2]*m(m(J*Z)-m(b*W)))+m(m(m(W*F)-m(Z*R))*w[r+4>>2]))))):J=m(0),A?(W=w[c>>2],Z=w[c+4>>2],p=m(w[r+8>>2]*m(m(d*W)-m(h*Z))),b=d,d=w[c+8>>2],b=m(w[A+404>>2]+m(p+m(m(w[r>>2]*m(m(N*Z)-m(b*d)))+m(m(m(h*d)-m(N*W))*w[r+4>>2]))))):b=m(0),B=m(S/m(J+b)),w[k+108>>2]=B,F=m(0),W=m(0),Z=m(0),R=m(0),N=m(0),d=m(0),i&&(f=Q+G(f,244)|0,Z=m(w[f+176>>2]+w[f+208>>2]),R=w[f+192>>2],W=m(w[f+180>>2]+w[f+212>>2]),N=w[f+196>>2],F=m(w[f+184>>2]+w[f+216>>2]),d=w[f+200>>2]),h=m(0),X=m(0),D=m(0),C=m(0),p=m(0),A&&(A=Q+G(e,244)|0,g=m(w[A+176>>2]+w[A+208>>2]),D=w[A+200>>2],C=w[A+196>>2],X=m(w[A+184>>2]+w[A+216>>2]),p=w[A+192>>2],h=m(w[A+180>>2]+w[A+212>>2])),b=m(0),b=16&v[n+128|0]?m(B*m(m(w[u+44>>2]*m(-m(m(m(w[n+56>>2]-w[n+40>>2])*w[r+8>>2])+m(m(m(w[n+48>>2]-w[n+32>>2])*w[r>>2])+m(m(w[n+52>>2]-w[n+36>>2])*w[r+4>>2])))))/w[u+12>>2])):b,o[k+128>>2]=0,w[k+124>>2]=j,w[k+116>>2]=s,w[k+120>>2]=-j,w[k+112>>2]=m(B*m(l-m(m(m(m(O*F)+m(m(P*Z)+m(W*z)))+m(m(y*d)+m(m(H*R)+m(N*M))))+m(m(m($*X)+m(m(q*g)+m(h*K)))+m(m(I*D)+m(m(Y*p)+m(C*V)))))))+b}function QA(A,r,f){A|=0,r|=0,f|=0;var e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=m(0),k=m(0),d=0,h=m(0),B=m(0),Z=m(0);if(o[A+8>>2]=o[r>>2],(0|(b=o[A+24>>2]))==o[A+28>>2]&&!((0|(c=b?b<<1:1))<=(0|b))){if(c&&(o[8488]=o[8488]+1,e=0|Zn[o[8290]](c<<2,16),b=o[A+24>>2]),!((0|b)<=0)){if(b>>>0>=4)for(d=-4&b;o[(t=n<<2)+e>>2]=o[t+o[A+32>>2]>>2],o[(l=4|t)+e>>2]=o[l+o[A+32>>2]>>2],o[(l=8|t)+e>>2]=o[l+o[A+32>>2]>>2],o[(t|=12)+e>>2]=o[t+o[A+32>>2]>>2],n=n+4|0,(0|d)!=(0|(i=i+4|0)););if(i=3&b)for(;o[(t=n<<2)+e>>2]=o[t+o[A+32>>2]>>2],n=n+1|0,(0|i)!=(0|(u=u+1|0)););}!(n=o[A+32>>2])|!v[A+36|0]||(n&&(o[8489]=o[8489]+1,Zn[o[8291]](n)),b=o[A+24>>2]),o[A+32>>2]=e,a[A+36|0]=1,o[A+28>>2]=c}if(o[o[A+32>>2]+(b<<2)>>2]=o[r>>2],o[A+24>>2]=b+1,f?(h=w[r+16>>2],B=w[r+12>>2],k=w[r+8>>2],s=w[r+20>>2]):(f=o[A+8>>2],s=w[r+16>>2],k=w[r+8>>2],Z=w[r+12>>2],h=m(m(w[f+44>>2]*s)+m(m(w[f+36>>2]*k)+m(Z*w[f+40>>2]))),B=m(m(w[f+28>>2]*s)+m(m(w[f+20>>2]*k)+m(Z*w[f+24>>2]))),k=m(m(w[f+12>>2]*s)+m(m(w[f+4>>2]*k)+m(w[f+8>>2]*Z))),s=m(0)),(0|(e=o[A+76>>2]))==o[A+80>>2]&&!((0|(b=e?e<<1:1))<=(0|e))){if(b?(o[8488]=o[8488]+1,f=0|Zn[o[8290]](b<<4,16),e=o[A+76>>2]):f=0,!((0|e)<=0)){if(n=0,1!=(0|e))for(d=-2&e,u=0;c=(t=n<<4)+f|0,i=t+o[A+84>>2]|0,l=o[i+4>>2],o[c>>2]=o[i>>2],o[c+4>>2]=l,l=o[i+12>>2],o[c+8>>2]=o[i+8>>2],o[c+12>>2]=l,t=(i=16|t)+f|0,i=i+o[A+84>>2]|0,c=o[i+4>>2],o[t>>2]=o[i>>2],o[t+4>>2]=c,c=o[i+12>>2],o[t+8>>2]=o[i+8>>2],o[t+12>>2]=c,n=n+2|0,(0|d)!=(0|(u=u+2|0)););1&e&&(e=(n<<=4)+f|0,n=n+o[A+84>>2]|0,i=o[n+4>>2],o[e>>2]=o[n>>2],o[e+4>>2]=i,i=o[n+12>>2],o[e+8>>2]=o[n+8>>2],o[e+12>>2]=i)}!(e=o[A+84>>2])||!e|!v[A+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+84>>2]=f,a[A+88|0]=1,o[A+80>>2]=b,e=o[A+76>>2]}if(f=o[A+84>>2]+(e<<4)|0,w[f+12>>2]=s,w[f+8>>2]=h,w[f+4>>2]=B,w[f>>2]=k,o[A+76>>2]=o[A+76>>2]+1,s=w[r+24>>2],h=m(m(1)-s),B=m(m(h*w[A+48>>2])+m(s*w[A- -64>>2])),k=m(m(h*w[A+44>>2])+m(s*w[A+60>>2])),s=m(m(h*w[A+40>>2])+m(s*w[A+56>>2])),(0|(e=o[A+96>>2]))==o[A+100>>2]&&!((0|(b=e?e<<1:1))<=(0|e))){if(b?(o[8488]=o[8488]+1,f=0|Zn[o[8290]](b<<4,16),e=o[A+96>>2]):f=0,!((0|e)<=0)){if(n=0,1!=(0|e))for(d=-2&e,u=0;c=(t=n<<4)+f|0,i=t+o[A+104>>2]|0,l=o[i+4>>2],o[c>>2]=o[i>>2],o[c+4>>2]=l,l=o[i+12>>2],o[c+8>>2]=o[i+8>>2],o[c+12>>2]=l,t=(i=16|t)+f|0,i=i+o[A+104>>2]|0,c=o[i+4>>2],o[t>>2]=o[i>>2],o[t+4>>2]=c,c=o[i+12>>2],o[t+8>>2]=o[i+8>>2],o[t+12>>2]=c,n=n+2|0,(0|d)!=(0|(u=u+2|0)););1&e&&(e=(n<<=4)+f|0,n=n+o[A+104>>2]|0,i=o[n+4>>2],o[e>>2]=o[n>>2],o[e+4>>2]=i,i=o[n+12>>2],o[e+8>>2]=o[n+8>>2],o[e+12>>2]=i)}!(e=o[A+104>>2])||!e|!v[A+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+104>>2]=f,a[A+108|0]=1,o[A+100>>2]=b,e=o[A+96>>2]}if(f=o[A+104>>2]+(e<<4)|0,w[f+8>>2]=B,w[f+4>>2]=k,w[f>>2]=s,o[A+96>>2]=o[A+96>>2]+1,(0|(i=o[A+116>>2]))==o[A+120>>2]&&!((0|(t=i?i<<1:1))<=(0|i))){t?(o[8488]=o[8488]+1,e=0|Zn[o[8290]](t<<2,16),i=o[A+116>>2]):e=0,f=o[A+124>>2];A:{r:{if((0|i)>0){if(b=0,n=0,i>>>0>=4)for(d=-4&i,c=0;w[(u=n<<2)+e>>2]=w[f+u>>2],w[(l=4|u)+e>>2]=w[f+l>>2],w[(l=8|u)+e>>2]=w[f+l>>2],w[(u|=12)+e>>2]=w[f+u>>2],n=n+4|0,(0|d)!=(0|(c=c+4|0)););if(u=3&i)for(;w[(c=n<<2)+e>>2]=w[f+c>>2],n=n+1|0,(0|u)!=(0|(b=b+1|0)););if(v[A+128|0])break r;break A}if(!f|!v[A+128|0])break A}f&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),i=o[A+116>>2]}o[A+124>>2]=e,o[A+120>>2]=t,a[A+128|0]=1}return w[o[A+124>>2]+(i<<2)>>2]=w[r+24>>2],o[A+116>>2]=i+1,m(w[A+4>>2])}function EA(A,r,f,e,i,n){var a,t,c,b=0,u=m(0),l=0,s=0,k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=0,W=m(0),p=m(0),F=m(0),R=m(0);S=a=S-400|0,Zn[o[8294]](2330),b=o[f+12>>2],o[a+336>>2]=o[f+8>>2],o[a+340>>2]=b,b=o[f+4>>2],o[a+328>>2]=o[f>>2],o[a+332>>2]=b,b=o[f+28>>2],o[a+352>>2]=o[f+24>>2],o[a+356>>2]=b,b=o[f+20>>2],o[a+344>>2]=o[f+16>>2],o[a+348>>2]=b,b=o[f+44>>2],o[a+368>>2]=o[f+40>>2],o[a+372>>2]=b,b=o[f+36>>2],o[a+360>>2]=o[f+32>>2],o[a+364>>2]=b,b=o[f+60>>2],o[a+384>>2]=o[f+56>>2],o[a+388>>2]=b,b=o[f+52>>2],o[a+376>>2]=o[f+48>>2],o[a+380>>2]=b,b=o[e+12>>2],o[a+272>>2]=o[e+8>>2],o[a+276>>2]=b,b=o[e+4>>2],o[a+264>>2]=o[e>>2],o[a+268>>2]=b,b=o[e+28>>2],o[a+288>>2]=o[e+24>>2],o[a+292>>2]=b,b=o[e+20>>2],o[a+280>>2]=o[e+16>>2],o[a+284>>2]=b,b=o[e+44>>2],o[a+304>>2]=o[e+40>>2],o[a+308>>2]=b,b=o[e+36>>2],o[a+296>>2]=o[e+32>>2],o[a+300>>2]=b,b=o[e+60>>2],o[a+320>>2]=o[e+56>>2],o[a+324>>2]=b,b=o[e+52>>2],o[a+312>>2]=o[e+48>>2],o[a+316>>2]=b,jA(s=a+328|0,a+264|0,t=a+4|0,b=a+248|0),o[a+228>>2]=0,u=w[a+248>>2],w[a+224>>2]=u*w[a+12>>2],w[a+220>>2]=u*w[a+8>>2],w[a+216>>2]=u*w[a+4>>2],o[a+208>>2]=0,o[a+212>>2]=0,o[a+200>>2]=0,o[a+204>>2]=0,o[a+60>>2]=0,o[a+64>>2]=0,o[a+52>>2]=0,o[a+56>>2]=0,rf(s,b),o[a+48>>2]=0,o[a+32>>2]=0,d=w[a+260>>2],k=w[a+256>>2],u=w[a+248>>2],v=w[a+252>>2],h=m(m(2)/m(m(d*d)+m(m(k*k)+m(m(u*u)+m(v*v))))),B=m(k*h),Z=m(v*B),G=m(u*h),Q=m(d*G),w[a+40>>2]=Z+Q,w[a+28>>2]=Z-Q,Z=m(u*G),G=v,v=m(v*h),h=m(G*v),w[a+44>>2]=m(1)-m(Z+h),k=m(k*B),w[a+24>>2]=m(1)-m(Z+k),o[a+16>>2]=0,Z=m(u*B),G=m(d*v),w[a+36>>2]=Z-G,u=m(u*v),d=m(d*B),w[a+20>>2]=u+d,w[a+12>>2]=Z+G,w[a+8>>2]=u-d,w[a+4>>2]=m(1)-m(h+k),s=a+232|0,Zn[o[o[r>>2]+8>>2]](r,t,b,s),u=w[a+224>>2],d=w[a+216>>2],v=w[a+220>>2],Z=w[s>>2],G=w[s+4>>2],Q=w[s+8>>2],W=w[b>>2],B=w[a+200>>2],p=w[b+4>>2],h=w[a+204>>2],F=w[b+8>>2],k=w[a+208>>2],R=m(Zn[o[o[r>>2]+16>>2]](r)),o[b+12>>2]=0,l=(k=m(k*m(1)))>m(0),w[b+8>>2]=F+(l?m(-0):k),E=(h=m(h*m(1)))>m(0),w[b+4>>2]=p+(E?m(-0):h),c=(B=m(B*m(1)))>m(0),w[b>>2]=W+(c?m(-0):B),o[s+12>>2]=0,w[s+8>>2]=Q+(l?k:m(-0)),w[s+4>>2]=G+(E?h:m(-0)),w[s>>2]=Z+(c?B:m(-0)),u=m(m(R*m(N(m(m(u*u)+m(m(d*d)+m(v*v))))))*m(1)),w[b>>2]=w[b>>2]-u,w[b+4>>2]=w[b+4>>2]-u,w[b+8>>2]=w[b+8>>2]-u,w[s>>2]=u+w[s>>2],w[s+4>>2]=u+w[s+4>>2],w[s+8>>2]=u+w[s+8>>2],o[a+4>>2]=14912,l=o[f+12>>2],o[a+48>>2]=o[f+8>>2],o[a+52>>2]=l,l=o[f+4>>2],o[a+40>>2]=o[f>>2],o[a+44>>2]=l,E=o[f+28>>2],o[(l=a- -64|0)>>2]=o[f+24>>2],o[l+4>>2]=E,l=o[f+20>>2],o[a+56>>2]=o[f+16>>2],o[a+60>>2]=l,l=o[f+44>>2],o[a+80>>2]=o[f+40>>2],o[a+84>>2]=l,l=o[f+36>>2],o[a+72>>2]=o[f+32>>2],o[a+76>>2]=l,l=o[f+60>>2],o[a+96>>2]=o[f+56>>2],o[a+100>>2]=l,l=o[f+52>>2],o[a+88>>2]=o[f+48>>2],o[a+92>>2]=l,f=o[e+12>>2],o[a+112>>2]=o[e+8>>2],o[a+116>>2]=f,f=o[e+4>>2],o[a+104>>2]=o[e>>2],o[a+108>>2]=f,f=o[e+28>>2],o[a+128>>2]=o[e+24>>2],o[a+132>>2]=f,f=o[e+20>>2],o[a+120>>2]=o[e+16>>2],o[a+124>>2]=f,f=o[e+36>>2],o[a+136>>2]=o[e+32>>2],o[a+140>>2]=f,f=o[e+44>>2],o[a+144>>2]=o[e+40>>2],o[a+148>>2]=f,f=o[e+60>>2],o[a+160>>2]=o[e+56>>2],o[a+164>>2]=f,f=o[e+52>>2],o[a+152>>2]=o[e+48>>2],o[a+156>>2]=f,o[a+188>>2]=i,w[a+192>>2]=n,o[a+196>>2]=r,o[a+184>>2]=A,n=m(w[a+160>>2]-w[a+96>>2]),u=m(w[a+152>>2]-w[a+88>>2]),d=m(w[a+156>>2]-w[a+92>>2]),v=m(m(1)/m(N(m(m(n*n)+m(m(u*u)+m(d*d)))))),B=(k=m(n*v))==m(0)?m(0xde0b6b000000000):m(m(1)/k),w[a+16>>2]=B,Z=(h=m(d*v))==m(0)?m(0xde0b6b000000000):m(m(1)/h),w[a+12>>2]=Z,o[a+32>>2]=B>2]=Z>2]=G+m(m(n*u)+m(d*h)),n=n==m(0)?m(0xde0b6b000000000):m(m(1)/n),w[a+8>>2]=n,o[a+24>>2]=n>2],Zn[o[o[A>>2]+24>>2]](A,a+376|0,a+312|0,t,b,s),Zn[o[8295]](),S=a+400|0}function WA(A,r,f){A|=0,r|=0,f|=0;var e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0);if(n=o[r>>2],o[A+16>>2]=n,(0|(b=o[A+24>>2]))==o[A+28>>2]&&!((0|(c=b?b<<1:1))<=(0|b))){if(c&&(o[8488]=o[8488]+1,e=0|Zn[o[8290]](c<<2,16),b=o[A+24>>2]),!((0|b)<=0)){if(n=0,b>>>0>=4)for(s=-4&b;o[(t=n<<2)+e>>2]=o[t+o[A+32>>2]>>2],o[(l=4|t)+e>>2]=o[l+o[A+32>>2]>>2],o[(l=8|t)+e>>2]=o[l+o[A+32>>2]>>2],o[(t|=12)+e>>2]=o[t+o[A+32>>2]>>2],n=n+4|0,(0|s)!=(0|(i=i+4|0)););if(i=3&b)for(;o[(t=n<<2)+e>>2]=o[t+o[A+32>>2]>>2],n=n+1|0,(0|i)!=(0|(u=u+1|0)););}!(n=o[A+32>>2])|!v[A+36|0]||(n&&(o[8489]=o[8489]+1,Zn[o[8291]](n)),b=o[A+24>>2]),o[A+32>>2]=e,a[A+36|0]=1,o[A+28>>2]=c,n=o[A+16>>2]}if(o[o[A+32>>2]+(b<<2)>>2]=n,o[A+24>>2]=b+1,f?(B=w[r+16>>2],Z=w[r+12>>2],k=w[r+8>>2],d=w[r+20>>2]):(f=o[A+16>>2],d=w[r+16>>2],k=w[r+8>>2],h=w[r+12>>2],B=m(m(w[f+44>>2]*d)+m(m(w[f+36>>2]*k)+m(h*w[f+40>>2]))),Z=m(m(w[f+28>>2]*d)+m(m(w[f+20>>2]*k)+m(h*w[f+24>>2]))),k=m(m(w[f+12>>2]*d)+m(m(w[f+4>>2]*k)+m(w[f+8>>2]*h))),d=m(0)),(0|(e=o[A+76>>2]))==o[A+80>>2]&&!((0|(b=e?e<<1:1))<=(0|e))){if(b?(o[8488]=o[8488]+1,f=0|Zn[o[8290]](b<<4,16),e=o[A+76>>2]):f=0,!((0|e)<=0)){if(n=0,1!=(0|e))for(s=-2&e,u=0;c=(t=n<<4)+f|0,i=t+o[A+84>>2]|0,l=o[i+4>>2],o[c>>2]=o[i>>2],o[c+4>>2]=l,l=o[i+12>>2],o[c+8>>2]=o[i+8>>2],o[c+12>>2]=l,t=(i=16|t)+f|0,i=i+o[A+84>>2]|0,c=o[i+4>>2],o[t>>2]=o[i>>2],o[t+4>>2]=c,c=o[i+12>>2],o[t+8>>2]=o[i+8>>2],o[t+12>>2]=c,n=n+2|0,(0|s)!=(0|(u=u+2|0)););1&e&&(n=(e=n<<4)+f|0,e=e+o[A+84>>2]|0,i=o[e+4>>2],o[n>>2]=o[e>>2],o[n+4>>2]=i,i=o[e+12>>2],o[n+8>>2]=o[e+8>>2],o[n+12>>2]=i)}!(e=o[A+84>>2])||!e|!v[A+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+84>>2]=f,a[A+88|0]=1,o[A+80>>2]=b,e=o[A+76>>2]}if(f=o[A+84>>2]+(e<<4)|0,w[f+12>>2]=d,w[f+8>>2]=B,w[f+4>>2]=Z,w[f>>2]=k,o[A+76>>2]=o[A+76>>2]+1,(0|(e=o[A+96>>2]))==o[A+100>>2]&&!((0|(b=e?e<<1:1))<=(0|e))){if(b?(o[8488]=o[8488]+1,f=0|Zn[o[8290]](b<<4,16),e=o[A+96>>2]):f=0,!((0|e)<=0)){if(n=0,1!=(0|e))for(s=-2&e,u=0;c=(t=n<<4)+f|0,i=t+o[A+104>>2]|0,l=o[i+4>>2],o[c>>2]=o[i>>2],o[c+4>>2]=l,l=o[i+12>>2],o[c+8>>2]=o[i+8>>2],o[c+12>>2]=l,t=(i=16|t)+f|0,i=i+o[A+104>>2]|0,c=o[i+4>>2],o[t>>2]=o[i>>2],o[t+4>>2]=c,c=o[i+12>>2],o[t+8>>2]=o[i+8>>2],o[t+12>>2]=c,n=n+2|0,(0|s)!=(0|(u=u+2|0)););1&e&&(n=(e=n<<4)+f|0,e=e+o[A+104>>2]|0,i=o[e+4>>2],o[n>>2]=o[e>>2],o[n+4>>2]=i,i=o[e+12>>2],o[n+8>>2]=o[e+8>>2],o[n+12>>2]=i)}!(e=o[A+104>>2])||!e|!v[A+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+104>>2]=f,a[A+108|0]=1,o[A+100>>2]=b,e=o[A+96>>2]}if(f=o[A+104>>2]+(e<<4)|0,e=o[r+28>>2],o[f>>2]=o[r+24>>2],o[f+4>>2]=e,e=o[r+36>>2],o[f+8>>2]=o[r+32>>2],o[f+12>>2]=e,o[A+96>>2]=o[A+96>>2]+1,(0|(i=o[A+116>>2]))==o[A+120>>2]&&!((0|(t=i?i<<1:1))<=(0|i))){t?(o[8488]=o[8488]+1,e=0|Zn[o[8290]](t<<2,16),i=o[A+116>>2]):e=0,f=o[A+124>>2];A:{r:{if((0|i)>0){if(b=0,n=0,i>>>0>=4)for(s=-4&i,c=0;w[(u=n<<2)+e>>2]=w[f+u>>2],w[(l=4|u)+e>>2]=w[f+l>>2],w[(l=8|u)+e>>2]=w[f+l>>2],w[(u|=12)+e>>2]=w[f+u>>2],n=n+4|0,(0|s)!=(0|(c=c+4|0)););if(u=3&i)for(;w[(c=n<<2)+e>>2]=w[f+c>>2],n=n+1|0,(0|u)!=(0|(b=b+1|0)););if(v[A+128|0])break r;break A}if(!f|!v[A+128|0])break A}f&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),i=o[A+116>>2]}o[A+124>>2]=e,o[A+120>>2]=t,a[A+128|0]=1}return w[o[A+124>>2]+(i<<2)>>2]=w[r+40>>2],o[A+116>>2]=i+1,m(w[A+4>>2])}function NA(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=m(0),a=m(0),t=m(0),c=0,b=m(0),u=0,l=0,s=m(0),k=m(0),d=m(0),v=0,h=m(0),B=0,Z=m(0),G=0,Q=0,E=m(0),W=m(0);S=e=S-48|0;A:{switch(o[r+4>>2]){case 8:o[A>>2]=0,o[A+4>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0;break A;case 0:i=w[r+40>>2],n=w[r+44>>2],t=w[f+4>>2],b=w[f+8>>2],a=w[r+36>>2],d=w[f>>2],o[A+12>>2]=0,w[A>>2]=d>=m(0)?a:m(-a),w[A+8>>2]=b>=m(0)?n:m(-n),w[A+4>>2]=t>=m(0)?i:m(-i);break A;case 1:i=w[f+8>>2],n=w[f>>2],a=w[f+4>>2],f=(t=m(m(i*w[r+72>>2])+m(m(n*w[r+64>>2])+m(a*w[r+68>>2]))))<(b=m(m(i*w[r+88>>2])+m(m(n*w[r+80>>2])+m(a*w[r+84>>2])))),r=(r- -64|0)+((m(m(i*w[r+104>>2])+m(m(n*w[r+96>>2])+m(a*w[r+100>>2])))>(f?b:t)?2:f)<<4)|0,f=o[r>>2],l=o[r+4>>2],i=w[r+8>>2],o[A+12>>2]=0,w[A+8>>2]=i,o[A>>2]=f,o[A+4>>2]=l;break A;case 13:c=o[r+48>>2],o[e+40>>2]=o[r+44>>2],o[e+44>>2]=c,c=o[r+40>>2],o[e+32>>2]=o[r+36>>2],o[e+36>>2]=c,w[e+16>>2]=w[f>>2],w[e+20>>2]=w[f+4>>2],i=w[f+8>>2],o[e+28>>2]=0,w[e+24>>2]=i,f=1,c=2;r:{f:{e:switch((r=o[r+60>>2])-1|0){case 0:break f;case 1:break e;default:break r}c=1}f=0,l=r}i=w[(u=r<<2)+(r=e+32|0)>>2],n=w[((u=r)|(r=f<<2))>>2],a=w[(u=r)+(r=e+16|0)>>2],t=w[r+(c<<2)>>2],(b=m(N(m(m(a*a)+m(t*t)))))==m(0)?(w[(f<<2)+e>>2]=n,w[(r=l<<2)+e>>2]=w[r+(e+16|0)>>2]>2]=a*n,w[(r=l<<2)+e>>2]=w[r+(e+16|0)>>2]>2]=Z,r=o[e+4>>2],f=o[e>>2],i=w[e+8>>2],o[A+12>>2]=0,w[A+8>>2]=i,o[A>>2]=f,o[A+4>>2]=r;break A;case 10:u=r,r=o[r+60>>2],E=w[36+(u+(l=r<<2)|0)>>2],s=m(1),i=w[f+8>>2],n=w[f>>2],a=w[f+4>>2],(t=m(m(i*i)+m(m(n*n)+m(a*a))))>2]=0,o[e+44>>2]=0,o[e+32>>2]=0,o[e+36>>2]=0,w[l+(e+32|0)>>2]=E,i=m(-0xde0b6b000000000),n=m(0),a=m(0),t=w[e+40>>2],b=w[e+32>>2],d=w[e+36>>2],(k=m(m(W*t)+m(m(s*b)+m(Z*d))))>m(-0xde0b6b000000000)&&(n=d,a=t,h=b,i=k),o[e+40>>2]=0,o[e+44>>2]=0,o[e+32>>2]=0,o[e+36>>2]=0,w[(e+32|0)+(r<<2)>>2]=-E,t=w[e+40>>2],b=w[e+32>>2],d=w[e+36>>2],o[A+12>>2]=0,r=m(m(W*t)+m(m(s*b)+m(Z*d)))>i,w[A+8>>2]=r?t:a,w[A+4>>2]=r?d:n,w[A>>2]=r?b:h;break A;case 5:if(t=w[r+20>>2],b=w[r+28>>2],d=w[r+24>>2],l=o[r+100>>2],(0|(r=o[r+104>>2]))<=0)c=-1;else{if(i=m(w[f>>2]*t),n=m(w[f+8>>2]*b),a=m(w[f+4>>2]*d),G=1&r,1!=(0|r))for(Q=-2&r,r=0,c=-1,s=m(-34028234663852886e22),f=0;u=(k=m(m(w[8+(u=l+(r<<4)|0)>>2]*n)+m(m(w[u>>2]*i)+m(a*w[u+4>>2]))))>s,s=(v=(h=m(m(w[8+(v=l+((B=1|r)<<4)|0)>>2]*n)+m(m(w[v>>2]*i)+m(a*w[v+4>>2]))))>(k=u?k:s))?h:k,c=v?B:u?r:c,r=r+2|0,(0|Q)!=(0|(f=f+2|0)););else r=0,c=-1,s=m(-34028234663852886e22);G&&(f=r,c=m(m(w[8+(r=l+(r<<4)|0)>>2]*n)+m(m(w[r>>2]*i)+m(a*w[r+4>>2])))>s?f:c)}i=w[(r=l+(c<<4)|0)>>2],n=w[r+4>>2],a=w[r+8>>2],o[A+12>>2]=0,w[A+8>>2]=b*a,w[A+4>>2]=d*n,w[A>>2]=t*i;break A;case 4:if(t=w[r+20>>2],b=w[r+28>>2],d=w[r+24>>2],l=o[r+112>>2],(0|(r=o[r+104>>2]))<=0)c=-1;else{if(i=m(w[f>>2]*t),n=m(w[f+8>>2]*b),a=m(w[f+4>>2]*d),G=1&r,1!=(0|r))for(Q=-2&r,r=0,c=-1,s=m(-34028234663852886e22),f=0;u=(k=m(m(w[8+(u=l+(r<<4)|0)>>2]*n)+m(m(w[u>>2]*i)+m(a*w[u+4>>2]))))>s,s=(v=(h=m(m(w[8+(v=l+((B=1|r)<<4)|0)>>2]*n)+m(m(w[v>>2]*i)+m(a*w[v+4>>2]))))>(k=u?k:s))?h:k,c=v?B:u?r:c,r=r+2|0,(0|Q)!=(0|(f=f+2|0)););else r=0,c=-1,s=m(-34028234663852886e22);G&&(f=r,c=m(m(w[8+(r=l+(r<<4)|0)>>2]*n)+m(m(w[r>>2]*i)+m(a*w[r+4>>2])))>s?f:c)}i=w[(r=l+(c<<4)|0)>>2],n=w[r+4>>2],a=w[r+8>>2],o[A+12>>2]=0,w[A+8>>2]=b*a,w[A+4>>2]=d*n,w[A>>2]=t*i;break A}Zn[o[o[r>>2]+68>>2]](A,r,f)}S=e+48|0}function pA(A,r){var f,e=0,i=0,n=0,a=0,t=0,u=0,l=0,d=0,v=0,h=0,B=0,w=0,E=0,N=0,p=0,F=0,R=0,Y=0,V=0,g=0,X=0,D=0;S=f=S-16|0,s(A);A:if((n=2147483647&(F=c(2)))>>>0<=1305022426){if(p=(d=+A)+-1.5707963109016418*(i=.6366197723675814*d+6755399441055744-6755399441055744)+-1.5893254773528196e-8*i,Z[r>>3]=p,e=p<-.7853981852531433,n=Q(i)<2147483648?~~i:-2147483648,e){i+=-1,Z[r>>3]=d+-1.5707963109016418*i+-1.5893254773528196e-8*i,n=n-1|0;break A}if(!(p>.7853981852531433))break A;i+=1,Z[r>>3]=d+-1.5707963109016418*i+-1.5893254773528196e-8*i,n=n+1|0}else if(n>>>0>=2139095040)Z[r>>3]=m(A-A),n=0;else{if(e=n,n=(n>>>23|0)-150|0,Z[f+8>>3]=(b(2,e-(n<<23)|0),k()),R=f+8|0,S=t=S-560|0,l=n+G(E=(0|(e=(n-3|0)/24|0))>0?e:0,-24)|0,(0|(h=o[6636]))>=0)for(n=h+1|0,e=E;Z[(t+320|0)+(a<<3)>>3]=(0|e)<0?0:+o[26560+(e<<2)>>2],e=e+1|0,(0|n)!=(0|(a=a+1|0)););for(v=l-24|0,n=0,a=(0|h)>0?h:0;;){for(e=0,i=0;i=Z[(e<<3)+R>>3]*Z[(t+320|0)+(n-e<<3)>>3]+i,1!=(0|(e=e+1|0)););if(Z[(n<<3)+t>>3]=i,e=(0|n)==(0|a),n=n+1|0,e)break}X=47-l|0,Y=48-l|0,D=l-25|0,n=h;r:{for(;;){if(i=Z[(n<<3)+t>>3],e=0,a=n,!(w=(0|n)<=0))for(;B=(t+480|0)+(e<<2)|0,u=Q(d=5.960464477539063e-8*i)<2147483648?~~d:-2147483648,u=Q(i=-16777216*(d=+(0|u))+i)<2147483648?~~i:-2147483648,o[B>>2]=u,i=Z[((a=a-1|0)<<3)+t>>3]+d,(0|n)!=(0|(e=e+1|0)););i=jf(i,v),i+=-8*W(.125*i),i-=+(0|(B=Q(i)<2147483648?~~i:-2147483648));f:{e:{i:{if(V=(0|v)<=0){if(v)break i;u=o[476+((n<<2)+t|0)>>2]>>23}else N=a=(n<<2)+t|0,a=(u=o[a+476>>2])-((e=u>>Y)<>2]=a,B=e+B|0,u=a>>X;if((0|u)<=0)break f;break e}if(u=2,!(i>=.5)){u=0;break f}}if(e=0,a=0,!w)for(;w=o[(N=(t+480|0)+(e<<2)|0)>>2],g=16777215,a||(g=16777216,w)?(o[N>>2]=g-w,a=1):a=0,(0|n)!=(0|(e=e+1|0)););e:if(!V){e=8388607;i:switch(0|D){case 1:e=4194303;break;case 0:break i;default:break e}o[476+(w=(n<<2)+t|0)>>2]=o[w+476>>2]&e}B=B+1|0,2==(0|u)&&(i=1-i,u=2,a&&(i-=jf(1,v)))}if(0!=i)break;if(a=0,e=n,!((0|h)>=(0|n))){for(;a=o[(t+480|0)+((e=e-1|0)<<2)>>2]|a,(0|e)>(0|h););if(a){for(l=v;l=l-24|0,!o[(t+480|0)+((n=n-1|0)<<2)>>2];);break r}}for(e=1;a=e,e=e+1|0,!o[(t+480|0)+(h-a<<2)>>2];);for(a=n+a|0;;){for(Z[(t+320|0)+((n=n+1|0)<<3)>>3]=o[26560+(n+E<<2)>>2],e=0,i=0;i=Z[(e<<3)+R>>3]*Z[(t+320|0)+(n-e<<3)>>3]+i,1!=(0|(e=e+1|0)););if(Z[(n<<3)+t>>3]=i,!((0|n)<(0|a)))break}n=a}(i=jf(i,24-l|0))>=16777216?(v=(t+480|0)+(n<<2)|0,e=Q(d=5.960464477539063e-8*i)<2147483648?~~d:-2147483648,a=Q(i=-16777216*+(0|e)+i)<2147483648?~~i:-2147483648,o[v>>2]=a,n=n+1|0):(e=Q(i)<2147483648?~~i:-2147483648,l=v),o[(t+480|0)+(n<<2)>>2]=e}if(i=jf(1,l),!((0|n)<0)){for(e=n;a=e,Z[(e<<3)+t>>3]=i*+o[(t+480|0)+(e<<2)>>2],e=e-1|0,i*=5.960464477539063e-8,a;);if(!((0|n)<0))for(a=n;;){if(i=0,e=0,(0|(v=(0|(l=n-a|0))>(0|h)?h:l))>=0)for(;i=Z[29328+(e<<3)>>3]*Z[(e+a<<3)+t>>3]+i,E=(0|e)!=(0|v),e=e+1|0,E;);if(Z[(t+160|0)+(l<<3)>>3]=i,e=(0|a)>0,a=a-1|0,!e)break}}if(i=0,(0|n)>=0)for(;e=n,n=n-1|0,i+=Z[(t+160|0)+(e<<3)>>3],e;);Z[f>>3]=u?-i:i,S=t+560|0,n=7&B,i=Z[f>>3],(0|F)<0?(Z[r>>3]=-i,n=0-n|0):Z[r>>3]=i}return S=f+16|0,n}function FA(A,r,f,e){var i,n=0,t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=0,Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=0,X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=0,I=m(0),T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=m(0),L=m(0),$=m(0),K=m(0),q=m(0),_=0,AA=0,rA=m(0),fA=m(0),iA=m(0),nA=m(0),aA=m(0),tA=m(0);S=i=S-240|0,o[A+16>>2]?(re(o[A+4>>2]),n=o[A+12>>2],G=o[n+4>>2],H=o[A+16>>2],_=o[H+4>>2],c=m(Zn[o[o[n>>2]+48>>2]](n)),g=o[A+16>>2],u=m(Zn[o[o[g>>2]+48>>2]](g)),g=o[A+4>>2],AA=o[A+8>>2],o[72+(A=i+160|0)>>2]=1,o[A+76>>2]=1,o[A+60>>2]=-1,a[A+52|0]=0,w[A+48>>2]=u,w[A+44>>2]=c,o[A+40>>2]=_,o[A+36>>2]=G,o[A+32>>2]=H,o[A+28>>2]=n,o[A+24>>2]=g,o[A+20>>2]=AA,o[A+4>>2]=0,o[A+8>>2]=1065353216,o[A+12>>2]=0,o[A+16>>2]=0,o[A>>2]=22908,o[i+152>>2]=1566444395,n=o[r+12>>2],o[i+32>>2]=o[r+8>>2],o[i+36>>2]=n,n=o[r+4>>2],o[i+24>>2]=o[r>>2],o[i+28>>2]=n,n=o[r+28>>2],o[i+48>>2]=o[r+24>>2],o[i+52>>2]=n,n=o[r+20>>2],o[i+40>>2]=o[r+16>>2],o[i+44>>2]=n,G=o[r+44>>2],o[(n=i- -64|0)>>2]=o[r+40>>2],o[n+4>>2]=G,n=o[r+36>>2],o[i+56>>2]=o[r+32>>2],o[i+60>>2]=n,n=o[r+60>>2],o[i+80>>2]=o[r+56>>2],o[i+84>>2]=n,n=o[r+52>>2],o[i+72>>2]=o[r+48>>2],o[i+76>>2]=n,r=o[f+12>>2],o[i+96>>2]=o[f+8>>2],o[i+100>>2]=r,r=o[f+4>>2],o[i+88>>2]=o[f>>2],o[i+92>>2]=r,r=o[f+20>>2],o[i+104>>2]=o[f+16>>2],o[i+108>>2]=r,r=o[f+28>>2],o[i+112>>2]=o[f+24>>2],o[i+116>>2]=r,r=o[f+44>>2],o[i+128>>2]=o[f+40>>2],o[i+132>>2]=r,r=o[f+36>>2],o[i+120>>2]=o[f+32>>2],o[i+124>>2]=r,r=o[f+52>>2],o[i+136>>2]=o[f+48>>2],o[i+140>>2]=r,r=o[f+60>>2],o[i+144>>2]=o[f+56>>2],o[i+148>>2]=r,eA(A,i+24|0,e,0,0)):(D=w[r+52>>2],C=w[r+56>>2],J=w[f+52>>2],x=w[f+56>>2],l=w[r+20>>2],s=w[r+36>>2],c=w[f+20>>2],u=w[f+36>>2],t=w[f+24>>2],k=w[r+24>>2],b=w[f+40>>2],h=w[r+40>>2],y=w[r+48>>2],rA=w[f+48>>2],n=o[A+12>>2],B=w[r+32>>2],Z=w[r+16>>2],Q=w[r>>2],E=w[r+4>>2],F=w[f+32>>2],R=w[f+16>>2],Y=w[f>>2],V=w[f+4>>2],d=w[f+8>>2],W=w[r+8>>2],A=o[A+20>>2],N=w[A+60>>2],p=w[(r=A- -64|0)>>2],v=w[A+56>>2],o[i+172>>2]=0,I=m(m(h*F)+m(m(W*Y)+m(k*R))),v=m(-v),T=m(m(h*u)+m(m(W*V)+m(k*c))),X=m(m(h*b)+m(m(W*d)+m(k*t))),w[i+168>>2]=m(m(I*v)-m(N*T))-m(p*X),U=m(m(s*F)+m(m(E*Y)+m(l*R))),j=m(m(s*u)+m(m(E*V)+m(l*c))),z=m(m(s*b)+m(m(E*d)+m(l*t))),w[i+164>>2]=m(m(U*v)-m(N*j))-m(p*z),P=m(m(B*F)+m(m(Q*Y)+m(Z*R))),O=m(m(B*u)+m(m(Q*V)+m(Z*c))),L=m(m(B*b)+m(m(Q*d)+m(Z*t))),w[i+160>>2]=m(m(P*v)-m(N*O))-m(p*L),G=i+160|0,Zn[o[o[n>>2]+64>>2]](i+24|0,n,G),l=w[A+60>>2],s=w[r>>2],fA=w[A+72>>2],k=w[A+56>>2],h=w[i+24>>2],B=w[i+28>>2],Z=w[i+32>>2],iA=w[f+52>>2],Q=w[f+24>>2],E=w[f+20>>2],nA=w[f+56>>2],W=w[f+40>>2],N=w[f+36>>2],aA=w[f+48>>2],p=w[f+8>>2],v=w[f>>2],$=w[f+4>>2],K=w[f+16>>2],q=w[f+32>>2],o[i+172>>2]=0,tA=m(m(C*b)+m(m(y*d)+m(D*t))),M=d,d=m(-rA),M=t=m(m(tA+m(m(m(M*d)-m(t*J))-m(b*x)))+m(m(Z*X)+m(m(h*L)+m(z*B)))),X=m(s*t),t=m(m(m(m(C*F)+m(m(y*Y)+m(D*R)))+m(m(m(Y*d)-m(R*J))-m(F*x)))+m(m(Z*I)+m(m(h*P)+m(U*B)))),b=m(m(m(m(C*u)+m(m(y*V)+m(D*c)))+m(m(m(V*d)-m(c*J))-m(u*x)))+m(m(Z*T)+m(m(h*O)+m(j*B)))),c=m(m(X+m(m(k*t)+m(l*b)))-fA),u=m(M-m(s*c)),t=m(t-m(k*c)),b=m(b-m(l*c)),w[i+168>>2]=nA+m(m(W*u)+m(m(q*t)+m(N*b))),w[i+164>>2]=iA+m(m(u*Q)+m(m(t*K)+m(b*E))),w[i+160>>2]=aA+m(m(u*p)+m(m(t*v)+m(b*$))),o[i+20>>2]=0,w[i+16>>2]=m(W*s)+m(m(q*k)+m(l*N)),w[i+12>>2]=m(Q*s)+m(m(K*k)+m(l*E)),w[i+8>>2]=m(p*s)+m(m(v*k)+m(l*$)),Zn[o[o[e>>2]+16>>2]](e,i+8|0,G,c)),S=i+240|0}function RA(A,r){var f=0,e=m(0),i=m(0),n=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=0;o[A+372>>2]=0,o[A+376>>2]=0,o[A+252>>2]=2,o[A+604>>2]=1065353216,o[A+608>>2]=1065353216,o[A+408>>2]=1065353216,o[A+412>>2]=1065353216,o[A+472>>2]=0,o[A+476>>2]=0,o[A+380>>2]=0,o[A+384>>2]=0,o[A+388>>2]=0,o[A+392>>2]=0,o[A+396>>2]=0,o[A+400>>2]=0,o[A+612>>2]=1065353216,o[A+616>>2]=0,o[A+420>>2]=0,o[A+424>>2]=0,o[A+416>>2]=1065353216,o[A+428>>2]=0,o[A+432>>2]=0,o[A+436>>2]=0,o[A+440>>2]=0,o[A+444>>2]=0,o[A+448>>2]=0,o[A+452>>2]=0,o[A+480>>2]=0,o[A+484>>2]=0,o[A+488>>2]=0,o[A+492>>2]=0,o[A+496>>2]=0,o[A+500>>2]=0,t=w[r+92>>2],e=w[r+96>>2],w[A+508>>2]=em(1)?m(1):e,w[A+504>>2]=tm(1)?m(1):t,w[A+532>>2]=w[r+116>>2],w[A+536>>2]=w[r+120>>2],f=o[r+4>>2],o[A+668>>2]=0,o[A+672>>2]=0,o[A+540>>2]=f,a[A+512|0]=v[r+124|0],w[A+516>>2]=w[r+128>>2],w[A+520>>2]=w[r+132>>2],w[A+524>>2]=w[r+136>>2],w[A+528>>2]=w[r+140>>2],f?Zn[o[o[f>>2]+8>>2]](f,A+4|0):(f=o[r+12>>2],o[A+4>>2]=o[r+8>>2],o[A+8>>2]=f,f=o[r+20>>2],o[A+12>>2]=o[r+16>>2],o[A+16>>2]=f,f=o[r+36>>2],o[A+28>>2]=o[r+32>>2],o[A+32>>2]=f,f=o[r+28>>2],o[A+20>>2]=o[r+24>>2],o[A+24>>2]=f,f=o[r+44>>2],o[A+36>>2]=o[r+40>>2],o[A+40>>2]=f,f=o[r+52>>2],o[A+44>>2]=o[r+48>>2],o[A+48>>2]=f,E=o[4+(f=r- -64|0)>>2],o[A+60>>2]=o[f>>2],o[A+64>>2]=E,f=o[r+60>>2],o[A+52>>2]=o[r+56>>2],o[A+56>>2]=f),o[A+132>>2]=0,o[A+136>>2]=0,f=o[A+8>>2],o[A+68>>2]=o[A+4>>2],o[A+72>>2]=f,o[A+156>>2]=0,o[A+160>>2]=0,o[A+148>>2]=0,o[A+152>>2]=0,o[A+140>>2]=0,o[A+144>>2]=0,f=o[A+24>>2],o[A+84>>2]=o[A+20>>2],o[A+88>>2]=f,f=o[A+16>>2],o[A+76>>2]=o[A+12>>2],o[A+80>>2]=f,f=o[A+32>>2],o[A+92>>2]=o[A+28>>2],o[A+96>>2]=f,f=o[A+40>>2],o[A+100>>2]=o[A+36>>2],o[A+104>>2]=f,f=o[A+48>>2],o[A+108>>2]=o[A+44>>2],o[A+112>>2]=f,f=o[A+56>>2],o[A+116>>2]=o[A+52>>2],o[A+120>>2]=f,f=o[A+64>>2],o[A+124>>2]=o[A+60>>2],o[A+128>>2]=f,w[A+228>>2]=w[r+100>>2],w[A+236>>2]=w[r+104>>2],w[A+240>>2]=w[r+108>>2],w[A+232>>2]=w[r+112>>2],Zn[o[o[A>>2]+8>>2]](A,o[r+72>>2]),f=o[8963],o[8963]=f+1,o[A+568>>2]=f,t=m(0),f=o[A+204>>2],(e=w[r>>2])==m(0)?f|=1:(t=m(m(1)/e),f&=-2),w[A+404>>2]=t,o[A+204>>2]=f,o[A+436>>2]=0,w[A+424>>2]=e*w[A+440>>2],w[A+432>>2]=e*w[A+448>>2],w[A+428>>2]=e*w[A+444>>2],i=w[r+84>>2],n=w[r+80>>2],e=w[r+76>>2],o[A+564>>2]=8,o[A+368>>2]=0,o[A+352>>2]=0,o[A+336>>2]=0,o[A+468>>2]=0,e=e!=m(0)?m(m(1)/e):m(0),w[A+456>>2]=e,n=n!=m(0)?m(m(1)/n):m(0),w[A+460>>2]=n,i=i!=m(0)?m(m(1)/i):m(0),w[A+464>>2]=i,k=w[A+12>>2],c=m(i*k),d=w[A+4>>2],b=m(e*d),h=w[A+8>>2],u=m(n*h),w[A+324>>2]=m(k*c)+m(m(d*b)+m(h*u)),B=w[A+28>>2],Z=w[A+20>>2],G=w[A+24>>2],w[A+328>>2]=m(B*c)+m(m(Z*b)+m(u*G)),Q=w[A+44>>2],l=m(Q*c),c=w[A+36>>2],s=m(c*b),b=w[A+40>>2],w[A+332>>2]=l+m(s+m(u*b)),u=m(i*B),l=m(e*Z),s=m(n*G),w[A+340>>2]=m(k*u)+m(m(d*l)+m(h*s)),w[A+344>>2]=m(B*u)+m(m(Z*l)+m(G*s)),w[A+348>>2]=m(Q*u)+m(m(c*l)+m(s*b)),i=m(i*Q),e=m(e*c),n=m(n*b),w[A+356>>2]=m(k*i)+m(m(d*e)+m(h*n)),w[A+360>>2]=m(B*i)+m(m(Z*e)+m(G*n)),w[A+364>>2]=m(Q*i)+m(m(c*e)+m(b*n)),e=w[A+408>>2],n=w[A+412>>2],i=w[A+416>>2],o[A+596>>2]=0,o[A+600>>2]=0,o[A+588>>2]=0,o[A+592>>2]=0,o[A+580>>2]=0,o[A+584>>2]=0,o[A+572>>2]=0,o[A+576>>2]=0,w[A+628>>2]=t*i,w[A+624>>2]=t*n,w[A+620>>2]=t*e,o[A+664>>2]=0,o[A+656>>2]=0,o[A+660>>2]=0,o[A+648>>2]=0,o[A+652>>2]=0,o[A+640>>2]=0,o[A+644>>2]=0,o[A+632>>2]=0,o[A+636>>2]=0}function YA(A,r,f,e,i,n,a,t,c,b,u,l,s){var k=m(0),d=m(0),h=0,B=m(0),Z=m(0),Q=0,E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0);b=G(o[c+24>>2],b);A:{r:{f:switch(o[r+84>>2]-3|0){case 1:B=w[(h=l?a:i)+8>>2],W=w[h>>2],V=w[h+4>>2],F=w[(h=l?t:n)+8>>2],R=w[h>>2],p=w[h+4>>2],d=w[u+8>>2],k=w[u>>2],Z=w[u+4>>2],jr(A,f,e,c,b,u,l,s),h=o[c+28>>2]+(b<<2)|0,Y=m(l?-1:1),E=m(Y*m(m(w[c>>2]*w[r+12>>2])*w[r+72>>2])),w[h>>2]=E,k=m(m(m(B*d)+m(m(W*k)+m(V*Z)))-m(m(F*d)+m(m(R*k)+m(Z*p)))),B=m(E-m(k*w[r+12>>2]));e:{i:{if(l){if(d=m(0),Z=m(34028234663852886e22),!(B>m(0)))break e;if(E<(B=m(k*m(-w[r+8>>2]))))break i;break e}if(Z=m(0),d=m(-34028234663852886e22),!(B(B=m(k*m(-w[r+8>>2])))))break e}w[h>>2]=B}w[(h=b<<2)+o[c+36>>2]>>2]=d,w[h+o[c+40>>2]>>2]=Z,w[h+o[c+32>>2]>>2]=w[r+16>>2],jr(A,f,e,c,b=o[c+24>>2]+b|0,u,l,s),h=o[c+28>>2]+(b<<2)|0,B=m(Y*m(m(w[c>>2]*w[r+12>>2])*w[r+76>>2])),w[h>>2]=B,E=m(B-m(k*w[r+12>>2]));e:{i:{if(l){if(Z=m(0),d=m(-34028234663852886e22),!(E(k=m(k*m(-w[r+8>>2]))))break i;break e}if(d=m(0),Z=m(34028234663852886e22),!(E>m(0)))break e;if(!(B<(k=m(k*m(-w[r+8>>2])))))break e}w[h>>2]=k}Q=r+16|0,w[(h=b<<2)+o[c+36>>2]>>2]=d,w[h+o[c+40>>2]>>2]=Z,h=2;break r;case 0:break f;default:break A}jr(A,f,e,c,b,u,l,s),w[(h=b<<2)+o[c+28>>2]>>2]=m(m(w[c>>2]*w[r+12>>2])*w[r+72>>2])*m(0|(l?-1:1)),o[h+o[c+36>>2]>>2]=-8388609,o[h+o[c+40>>2]>>2]=2139095039,Q=r+16|0,h=1}w[o[c+32>>2]+(b<<2)>>2]=w[Q>>2],b=o[c+24>>2]+b|0}return v[r+28|0]&&(!v[r+40|0]&&(jr(A,f,e,c,b,u,l,s),d=w[r+32>>2],d=Lf(w[r+80>>2],w[r>>2],w[r+4>>2],l?d:m(-d),m(w[c>>2]*w[r+20>>2])),w[(Q=b<<2)+o[c+28>>2]>>2]=d*w[r+32>>2],w[Q+o[c+36>>2]>>2]=-w[r+36>>2],w[Q+o[c+40>>2]>>2]=w[r+36>>2],w[Q+o[c+32>>2]>>2]=w[r+24>>2],h=h+1|0,b=o[c+24>>2]+b|0,!v[r+28|0]|!v[r+40|0])||(d=w[r+44>>2],k=m(w[r+80>>2]-d),l&&(d=(Q=k>m(3.1415927410125732))?m(d+m(6.2831854820251465)):d,(k=Q?m(k+m(-6.2831854820251465)):k)>2],E=k>2],(Z=w[r>>2])>(B=w[r+4>>2])?(B=km(0)?d:m(-34028234663852886e22)):(B=km(0)&&d>Z?d:Z),Z=Lf(p,k,B,W,m(w[c>>2]*w[r+20>>2]))),w[(Q=b<<2)+o[c+28>>2]>>2]=m(E*Z)*m(0|(l?-1:1)),w[Q+o[c+36>>2]>>2]=-w[r+36>>2],w[Q+o[c+40>>2]>>2]=w[r+36>>2],w[Q+o[c+32>>2]>>2]=w[r+24>>2],h=h+1|0,b=o[c+24>>2]+b|0)),v[r+48|0]&&(B=w[r+68>>2],W=w[r+80>>2],jr(A,f,e,c,b,u,l,s),f=l?a:i,d=w[u+8>>2],k=w[u>>2],Z=w[u+4>>2],p=m(m(w[f+8>>2]*d)+m(m(w[f>>2]*k)+m(w[f+4>>2]*Z))),E=m(p-m(m(w[(f=l?t:n)+8>>2]*d)+m(m(w[f>>2]*k)+m(Z*w[f+4>>2])))),d=m(m(1)/w[o[A+32>>2]+404>>2]),Z=(k=m(m(1)/w[o[A+28>>2]+404>>2]))>d?d:k,W=m(W-B),B=w[r+60>>2],k=m(m(1)/w[c>>2]),d=w[r+52>>2],!v[r+56|0]|!(m(k*m(N(m(d/Z))))>m(.25))||(d=m(m(m(m(m(1)/k)/k)*m(.0625))*Z)),A=b<<2,F=m(k*m(W*d)),p=k,R=m(E*m(-(v[r+64|0]&&Z>2]>>2]=m(Z*k)+E,k=(r=d>Z)?d:Z,d=r?Z:d,l?(w[A+o[c+36>>2]>>2]=k>2]>>2]=d>m(0)?m(0):d,w[(A=b<<2)+o[c+40>>2]>>2]=k>2]>>2]=0,h=h+1|0),h}function VA(A,r,f,e,i,n){return A=ne(A,12,r,f),o[A>>2]=23516,r=o[e+12>>2],o[A+56>>2]=o[e+8>>2],o[A+60>>2]=r,r=o[e+4>>2],o[A+48>>2]=o[e>>2],o[A+52>>2]=r,r=o[e+28>>2],o[A+72>>2]=o[e+24>>2],o[A+76>>2]=r,f=o[e+20>>2],o[(r=A- -64|0)>>2]=o[e+16>>2],o[r+4>>2]=f,r=o[e+44>>2],o[A+88>>2]=o[e+40>>2],o[A+92>>2]=r,r=o[e+36>>2],o[A+80>>2]=o[e+32>>2],o[A+84>>2]=r,r=o[e+60>>2],o[A+104>>2]=o[e+56>>2],o[A+108>>2]=r,r=o[e+52>>2],o[A+96>>2]=o[e+48>>2],o[A+100>>2]=r,r=o[i+12>>2],o[A+120>>2]=o[i+8>>2],o[A+124>>2]=r,r=o[i+4>>2],o[A+112>>2]=o[i>>2],o[A+116>>2]=r,r=o[i+20>>2],o[A+128>>2]=o[i+16>>2],o[A+132>>2]=r,r=o[i+28>>2],o[A+136>>2]=o[i+24>>2],o[A+140>>2]=r,r=o[i+36>>2],o[A+144>>2]=o[i+32>>2],o[A+148>>2]=r,r=o[i+44>>2],o[A+152>>2]=o[i+40>>2],o[A+156>>2]=r,r=o[i+52>>2],o[A+160>>2]=o[i+48>>2],o[A+164>>2]=r,r=o[i+60>>2],o[A+168>>2]=o[i+56>>2],o[A+172>>2]=r,o[A+680>>2]=0,o[A+684>>2]=0,o[A+688>>2]=0,o[A+692>>2]=0,o[A+696>>2]=0,o[A+700>>2]=0,o[A+704>>2]=0,o[A+708>>2]=0,o[A+712>>2]=0,o[A+716>>2]=0,o[A+720>>2]=0,o[A+724>>2]=0,o[A+728>>2]=1045220557,o[A+732>>2]=1045220557,o[A+736>>2]=1045220557,o[A+756>>2]=0,o[A+748>>2]=0,o[A+752>>2]=0,o[A+740>>2]=0,o[A+744>>2]=0,o[A+760>>2]=1063675494,o[A+764>>2]=1063675494,o[A+768>>2]=1063675494,o[A+812>>2]=0,o[A+804>>2]=0,o[A+808>>2]=0,o[A+828>>2]=0,o[A+820>>2]=0,o[A+824>>2]=0,a[A+838|0]=0,t[A+836>>1]=0,o[A+848>>2]=0,o[A+840>>2]=0,o[A+844>>2]=0,a[A+858|0]=0,t[A+856>>1]=0,o[A+868>>2]=0,o[A+860>>2]=0,o[A+864>>2]=0,o[A+884>>2]=0,o[A+876>>2]=0,o[A+880>>2]=0,o[A+900>>2]=0,o[A+892>>2]=0,o[A+896>>2]=0,a[A+793|0]=0,a[A+794|0]=0,a[A+795|0]=0,a[A+796|0]=0,a[A+797|0]=0,a[A+798|0]=0,a[A+799|0]=0,a[A+800|0]=0,o[A+788>>2]=0,o[A+792>>2]=0,o[A+780>>2]=0,o[A+784>>2]=0,o[A+772>>2]=0,o[A+776>>2]=0,o[A+964>>2]=0,o[A+956>>2]=0,o[A+960>>2]=0,o[A+948>>2]=0,o[A+952>>2]=0,o[A+940>>2]=0,o[A+944>>2]=0,o[A+932>>2]=0,o[A+936>>2]=0,o[A+924>>2]=0,o[A+928>>2]=0,o[A+916>>2]=0,o[A+920>>2]=0,o[A+908>>2]=0,o[A+912>>2]=0,a[A+1032|0]=0,o[A+1028>>2]=0,a[A+1024|0]=0,o[A+1020>>2]=0,a[A+1016|0]=0,o[A+1012>>2]=0,a[A+1008|0]=0,o[A+1e3>>2]=0,o[A+1004>>2]=1036831949,a[A+996|0]=0,o[A+992>>2]=0,o[A+984>>2]=0,o[A+988>>2]=1063675494,o[A+976>>2]=0,o[A+980>>2]=1045220557,o[A+968>>2]=1065353216,o[A+972>>2]=-1082130432,o[A+1052>>2]=0,o[(r=A+1044|0)>>2]=0,o[r+4>>2]=0,o[(r=A+1036|0)>>2]=0,o[r+4>>2]=0,a[A+1120|0]=0,o[A+1116>>2]=0,a[A+1112|0]=0,o[A+1108>>2]=0,a[A+1104|0]=0,o[A+1100>>2]=0,a[A+1096|0]=0,o[(r=A+1088|0)>>2]=0,o[r+4>>2]=1036831949,a[A+1084|0]=0,o[A+1080>>2]=0,o[(r=A+1072|0)>>2]=0,o[r+4>>2]=1063675494,o[(r=A+1064|0)>>2]=0,o[r+4>>2]=1045220557,o[(r=A+1056|0)>>2]=1065353216,o[r+4>>2]=-1082130432,o[A+1140>>2]=0,o[(r=A+1132|0)>>2]=0,o[r+4>>2]=0,o[(r=A+1124|0)>>2]=0,o[r+4>>2]=0,a[A+1208|0]=0,o[A+1204>>2]=0,a[A+1200|0]=0,o[A+1196>>2]=0,a[A+1192|0]=0,o[A+1188>>2]=0,a[A+1184|0]=0,o[(r=A+1176|0)>>2]=0,o[r+4>>2]=1036831949,a[A+1172|0]=0,o[A+1168>>2]=0,o[(r=A+1160|0)>>2]=0,o[r+4>>2]=1063675494,o[(r=A+1152|0)>>2]=0,o[r+4>>2]=1045220557,o[(r=A+1144|0)>>2]=1065353216,o[r+4>>2]=-1082130432,o[A+1228>>2]=0,o[(r=A+1220|0)>>2]=0,o[r+4>>2]=0,o[(r=A+1212|0)>>2]=0,o[r+4>>2]=0,o[A+1456>>2]=0,o[A+1232>>2]=n,fA(A,o[A+28>>2]+4|0,o[A+32>>2]+4|0),A}function gA(A){A|=0;var r,f=0,e=0,i=0,n=m(0),t=0,c=m(0),b=0,u=0,l=0,s=0,k=m(0),d=m(0),h=m(0),B=m(0);if(S=r=S-208|0,0|Zn[o[o[A>>2]+20>>2]](A)){if(e=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[e>>2]+100>>2]](e),e=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[e>>2]+8>>2]](r+80|0,e),e=0|Zn[o[o[A>>2]+20>>2]](A),8&Zn[o[o[e>>2]+56>>2]](e)&&(e=o[A+24>>2])&&!((0|(b=0|Zn[o[o[e>>2]+36>>2]](e)))<=0))for(s=r+176|0;;){if(t=0,e=o[A+24>>2],u=0|Zn[o[o[e>>2]+40>>2]](e,i),(0|(l=o[u+844>>2]))>0)for(;e=0|Zn[o[o[A>>2]+20>>2]](A),f=u+G(t,208)|0,Zn[o[o[e>>2]+40>>2]](e,f+36|0,f+68|0,w[f+84>>2],o[f+168>>2],s),(0|l)!=(0|(t=t+1|0)););if((0|b)==(0|(i=i+1|0)))break}if(e=0|Zn[o[o[A>>2]+20>>2]](A),!(!(3&Zn[o[o[e>>2]+56>>2]](e))|o[A+8>>2]<=0))for(b=r+160|0,s=r+96|0,u=r+112|0,l=r+128|0,e=r+144|0,t=0;;){if(i=o[o[A+16>>2]+(t<<2)>>2],!(32&v[i+204|0])){if(0|Zn[o[o[A>>2]+20>>2]](A)&&(f=0|Zn[o[o[A>>2]+20>>2]](A),1&Zn[o[o[f>>2]+56>>2]](f))){A:{switch(o[i+220>>2]-1|0){case 0:f=o[r+92>>2],o[r+72>>2]=o[r+88>>2],o[r+76>>2]=f,f=o[r+84>>2],o[r+64>>2]=o[r+80>>2],o[r+68>>2]=f;break A;case 1:f=o[s+12>>2],o[r+72>>2]=o[s+8>>2],o[r+76>>2]=f,f=o[s+4>>2],o[r+64>>2]=o[s>>2],o[r+68>>2]=f;break A;case 2:f=o[u+12>>2],o[r+72>>2]=o[u+8>>2],o[r+76>>2]=f,f=o[u+4>>2],o[r+64>>2]=o[u>>2],o[r+68>>2]=f;break A;case 3:f=o[l+12>>2],o[r+72>>2]=o[l+8>>2],o[r+76>>2]=f,f=o[l+4>>2],o[r+64>>2]=o[l>>2],o[r+68>>2]=f;break A;case 4:f=o[e+12>>2],o[r+72>>2]=o[e+8>>2],o[r+76>>2]=f,f=o[e+4>>2],o[r+64>>2]=o[e>>2],o[r+68>>2]=f;break A}o[r+72>>2]=1050253722,o[r+76>>2]=0,o[r+64>>2]=1050253722,o[r+68>>2]=1050253722}1&a[i+205|0]&&(f=o[i+320>>2],o[r+72>>2]=o[i+316>>2],o[r+76>>2]=f,f=o[i+312>>2],o[r+64>>2]=o[i+308>>2],o[r+68>>2]=f),Zn[o[o[A>>2]+28>>2]](A,i+4|0,o[i+192>>2],r- -64|0)}(f=o[A+72>>2])&&2&Zn[o[o[f>>2]+56>>2]](f)&&(f=o[b+12>>2],o[r+40>>2]=o[b+8>>2],o[r+44>>2]=f,f=o[b+4>>2],o[r+32>>2]=o[b>>2],o[r+36>>2]=f,f=o[i+192>>2],Zn[o[o[f>>2]+8>>2]](f,i+4|0,r- -64|0,r+48|0),n=w[8297],w[r+64>>2]=w[r+64>>2]-n,w[r+68>>2]=w[r+68>>2]-n,w[r+72>>2]=w[r+72>>2]-n,w[r+48>>2]=n+w[r+48>>2],w[r+52>>2]=n+w[r+52>>2],w[r+56>>2]=n+w[r+56>>2],3&v[i+204|0]|!v[A+44|0]|2!=o[i+252>>2]||(f=o[i+192>>2],Zn[o[o[f>>2]+8>>2]](f,i+68|0,r+16|0,r),k=m(w[r+16>>2]-n),w[r+16>>2]=k,d=m(w[r+20>>2]-n),w[r+20>>2]=d,c=m(w[r+24>>2]-n),w[r+24>>2]=c,h=m(n+w[r>>2]),w[r>>2]=h,B=m(n+w[r+4>>2]),w[r+4>>2]=B,n=m(n+w[r+8>>2]),w[r+8>>2]=n,k>2]&&(w[r+64>>2]=k),w[r+68>>2]>d&&(w[r+68>>2]=d),w[r+72>>2]>c&&(w[r+72>>2]=c),(c=w[r+28>>2])>2]&&(w[r+76>>2]=c),w[r+48>>2]>2]=h),w[r+52>>2]>2]=B),n>w[r+56>>2]&&(w[r+56>>2]=n),(c=w[r+12>>2])>w[r+60>>2]&&(w[r+60>>2]=c)),f=o[A+72>>2],Zn[o[o[f>>2]+60>>2]](f,r- -64|0,r+48|0,r+32|0))}if(!((0|(t=t+1|0))>2]))break}}S=r+208|0}function XA(A,r,f,e,i,n){var t=0,c=m(0),b=m(0),u=0,l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),Q=0,E=0,W=0,N=0,p=m(0),F=m(0),R=0,Y=m(0),V=0,g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0);if(Q=u=o[A+88>>2],(0|u)==o[A+92>>2]&&!((0|u)>=(0|(W=u?u<<1:1)))){if(W?(o[8488]=o[8488]+1,N=0|Zn[o[8290]](G(W,152),16),t=o[A+88>>2]):t=u,!((0|t)<=0)){if(Q=0,1!=(0|t))for(V=-2&t;pr((E=G(Q,152))+N|0,E+o[A+96>>2]|0,152),pr((E=G(1|Q,152))+N|0,E+o[A+96>>2]|0,152),Q=Q+2|0,(0|(R=R+2|0))!=(0|V););1&t&&pr((t=G(Q,152))+N|0,t+o[A+96>>2]|0,152)}!(t=o[A+96>>2])||!t|!v[A+100|0]||(o[8489]=o[8489]+1,Zn[o[8291]](t)),o[A+96>>2]=N,a[A+100|0]=1,o[A+92>>2]=W,Q=o[A+88>>2]}o[A+88>>2]=Q+1,t=o[A+96>>2]+G(u,152)|0,o[t+140>>2]=i,o[t+16>>2]=0,o[t+20>>2]=0,o[t+48>>2]=-2147483648,o[t+52>>2]=-2147483648,o[t+24>>2]=0,o[t+28>>2]=0,o[t+56>>2]=-2147483648,o[t+60>>2]=0,u=o[A+16>>2],A=o[240+(u+G(e,244)|0)>>2],i=o[240+(u+G(f,244)|0)>>2],o[t+148>>2]=e,o[t+144>>2]=f,o[t+132>>2]=0,w[t+104>>2]=n,o[t+96>>2]=0,o[t+100>>2]=0,c=w[r>>2],b=w[r+4>>2],l=w[r+8>>2],o[t+12>>2]=0,d=m(-l),w[t+8>>2]=d,h=m(-b),w[t+4>>2]=h,B=m(-c),w[t>>2]=B,c=m(0),i?(c=m(m(m(w[i+364>>2]*d)+m(m(w[i+356>>2]*B)+m(w[i+360>>2]*h)))*w[i+612>>2]),s=m(m(m(w[i+348>>2]*d)+m(m(w[i+340>>2]*B)+m(w[i+344>>2]*h)))*w[i+608>>2]),b=m(m(m(w[i+332>>2]*d)+m(m(w[i+324>>2]*B)+m(w[i+328>>2]*h)))*w[i+604>>2])):b=m(0),w[t+64>>2]=b,o[t+76>>2]=0,w[t+72>>2]=c,w[t+68>>2]=s,c=w[r>>2],b=w[r+4>>2],l=w[r+8>>2],w[t+44>>2]=w[r+12>>2],w[t+40>>2]=l,w[t+36>>2]=b,w[t+32>>2]=c,A?(k=m(m(m(w[A+364>>2]*l)+m(m(w[A+356>>2]*c)+m(b*w[A+360>>2])))*w[A+612>>2]),Z=m(m(m(w[A+348>>2]*l)+m(m(w[A+340>>2]*c)+m(b*w[A+344>>2])))*w[A+608>>2]),s=m(m(m(w[A+332>>2]*l)+m(m(w[A+324>>2]*c)+m(b*w[A+328>>2])))*w[A+604>>2])):s=m(0),w[t+80>>2]=s,o[t+92>>2]=0,w[t+88>>2]=k,w[t+84>>2]=Z,Z=m(0),k=m(0),i?(Z=m(m(w[i+332>>2]*d)+m(m(w[i+324>>2]*B)+m(w[i+328>>2]*h))),k=m(m(w[i+348>>2]*d)+m(m(w[i+340>>2]*B)+m(w[i+344>>2]*h))),s=m(m(w[i+364>>2]*d)+m(m(w[i+356>>2]*B)+m(w[i+360>>2]*h)))):s=m(0),Z=m(m(m(s*d)+m(m(Z*B)+m(k*h)))+m(0)),A?(p=m(m(w[A+348>>2]*l)+m(m(w[A+340>>2]*c)+m(b*w[A+344>>2]))),F=m(m(w[A+332>>2]*l)+m(m(w[A+324>>2]*c)+m(w[A+328>>2]*b))),k=m(m(w[A+364>>2]*l)+m(m(w[A+356>>2]*c)+m(b*w[A+360>>2])))):k=m(0),Y=m(m(1)/m(Z+m(m(k*l)+m(m(F*c)+m(p*b))))),w[t+108>>2]=Y,F=m(0),Z=m(0),k=m(0),p=m(0),i&&(r=u+G(f,244)|0,F=m(w[r+176>>2]+w[r+208>>2]),g=w[r+200>>2],p=w[r+196>>2],Z=m(m(w[r+180>>2]+w[r+212>>2])*m(0)),X=w[r+192>>2],k=m(w[r+184>>2]+w[r+216>>2])),s=m(-0),A&&(A=u+G(e,244)|0,D=m(w[A+176>>2]+w[A+208>>2]),C=m(w[A+184>>2]+w[A+216>>2]),J=w[A+192>>2],x=w[A+200>>2],y=w[A+196>>2],s=m(m(w[A+180>>2]+w[A+212>>2])*m(-0))),w[t+124>>2]=n,w[t+116>>2]=0,w[t+120>>2]=-n,w[t+112>>2]=Y*m(m(0)-m(m(m(m(k*m(0))+m(m(F*m(0))+Z))+m(m(d*g)+m(m(B*X)+m(p*h))))+m(m(m(C*m(-0))+m(m(D*m(-0))+s))+m(m(l*x)+m(m(c*J)+m(b*y))))))}function DA(A){var r=0,f=0,e=0,i=0,n=0,a=0,t=0,c=0,b=0;A:if(A|=0){n=(e=A-8|0)+(A=-8&(r=o[A-4>>2]))|0;r:if(!(1&r)){if(!(3&r))break A;if((e=e-(r=o[e>>2])|0)>>>0>>0<=255){if(i=r>>>3|0,(0|(r=o[e+12>>2]))==(0|(f=o[e+8>>2]))){c=35936,b=o[8984]&Le(i),o[c>>2]=b;break r}o[f+12>>2]=r,o[r+8>>2]=f;break r}if(a=o[e+24>>2],(0|e)!=(0|(r=o[e+12>>2]))){f=o[e+8>>2],o[f+12>>2]=r,o[r+8>>2]=f;break f}if(!(f=o[(i=e+20|0)>>2])){if(!(f=o[e+16>>2]))break e;i=e+16|0}for(;t=i,(f=o[(i=(r=f)+20|0)>>2])||(i=r+16|0,f=o[r+16>>2]););o[t>>2]=0;break f}if(3&~(r=o[n+4>>2]))break r;return o[8986]=A,o[n+4>>2]=-2&r,o[e+4>>2]=1|A,void(o[n>>2]=A)}r=0}if(a){f=o[e+28>>2];f:{if(o[(i=36240+(f<<2)|0)>>2]==(0|e)){if(o[i>>2]=r,r)break f;c=35940,b=o[8985]&Le(f),o[c>>2]=b;break r}if(o[a+(o[a+16>>2]==(0|e)?16:20)>>2]=r,!r)break r}o[r+24>>2]=a,(f=o[e+16>>2])&&(o[r+16>>2]=f,o[f+24>>2]=r),(f=o[e+20>>2])&&(o[r+20>>2]=f,o[f+24>>2]=r)}}if(!(e>>>0>=n>>>0)&&1&(r=o[n+4>>2])){r:{f:{e:{i:{if(!(2&r)){if(o[8990]==(0|n)){if(o[8990]=e,A=o[8987]+A|0,o[8987]=A,o[e+4>>2]=1|A,o[8989]!=(0|e))break A;return o[8986]=0,void(o[8989]=0)}if(o[8989]==(0|n))return o[8989]=e,A=o[8986]+A|0,o[8986]=A,o[e+4>>2]=1|A,void(o[A+e>>2]=A);if(A=(-8&r)+A|0,r>>>0<=255){if(i=r>>>3|0,(0|(r=o[n+12>>2]))==(0|(f=o[n+8>>2]))){c=35936,b=o[8984]&Le(i),o[c>>2]=b;break f}o[f+12>>2]=r,o[r+8>>2]=f;break f}if(a=o[n+24>>2],(0|n)!=(0|(r=o[n+12>>2]))){f=o[n+8>>2],o[f+12>>2]=r,o[r+8>>2]=f;break e}if(!(f=o[(i=n+20|0)>>2])){if(!(f=o[n+16>>2]))break i;i=n+16|0}for(;t=i,(f=o[(i=(r=f)+20|0)>>2])||(i=r+16|0,f=o[r+16>>2]););o[t>>2]=0;break e}o[n+4>>2]=-2&r,o[e+4>>2]=1|A,o[A+e>>2]=A;break r}r=0}if(a){f=o[n+28>>2];e:{if(o[(i=36240+(f<<2)|0)>>2]==(0|n)){if(o[i>>2]=r,r)break e;c=35940,b=o[8985]&Le(f),o[c>>2]=b;break f}if(o[a+(o[a+16>>2]==(0|n)?16:20)>>2]=r,!r)break f}o[r+24>>2]=a,(f=o[n+16>>2])&&(o[r+16>>2]=f,o[f+24>>2]=r),(f=o[n+20>>2])&&(o[r+20>>2]=f,o[f+24>>2]=r)}}if(o[e+4>>2]=1|A,o[A+e>>2]=A,o[8989]==(0|e))return void(o[8986]=A)}if(A>>>0<=255)return r=35976+(-8&A)|0,(f=o[8984])&(A=1<<(A>>>3))?A=o[r+8>>2]:(o[8984]=A|f,A=r),o[r+8>>2]=e,o[A+12>>2]=e,o[e+12>>2]=r,void(o[e+8>>2]=A);f=31,A>>>0<=16777215&&(f=62+((A>>>38-(r=E(A>>>8|0))&1)-(r<<1)|0)|0),o[e+28>>2]=f,o[e+16>>2]=0,o[e+20>>2]=0,r=36240+(f<<2)|0;r:{f:{if((i=o[8985])&(t=1<>>1|0):0),r=o[r>>2];;){if(i=r,(-8&o[r+4>>2])==(0|A))break f;if(r=f>>>29|0,f<<=1,!(r=o[16+(t=i+(4&r)|0)>>2]))break}o[t+16>>2]=e,o[e+24>>2]=i}else o[8985]=i|t,o[r>>2]=e,o[e+24>>2]=r;o[e+12>>2]=e,o[e+8>>2]=e;break r}A=o[i+8>>2],o[A+12>>2]=e,o[i+8>>2]=e,o[e+24>>2]=0,o[e+12>>2]=i,o[e+8>>2]=A}A=o[8992]-1|0,o[8992]=A||-1}}}function CA(A,r,f,e,i,n,t,c,b){var u,l=0,s=0,k=0,d=0,h=0,B=0,Z=m(0),G=0,Q=m(0),E=m(0),W=m(0),N=0,p=m(0),F=0,R=0,Y=m(0),V=0,g=0;if(S=u=S-32|0,A){if(!((0|(B=o[c+4>>2]))>127)){if(o[c+8>>2]<=127){if(o[8488]=o[8488]+1,d=0|Zn[o[8290]](512,16),!((0|(h=o[c+4>>2]))<=0)){if(h>>>0>=4)for(F=-4&h;o[(s=l<<2)+d>>2]=o[s+o[c+12>>2]>>2],o[(N=4|s)+d>>2]=o[N+o[c+12>>2]>>2],o[(N=8|s)+d>>2]=o[N+o[c+12>>2]>>2],o[(s|=12)+d>>2]=o[s+o[c+12>>2]>>2],l=l+4|0,(0|F)!=(0|(R=R+4|0)););if(s=3&h)for(;o[(h=l<<2)+d>>2]=o[h+o[c+12>>2]>>2],l=l+1|0,(0|s)!=(0|(k=k+1|0)););}!(l=o[c+12>>2])||!l|!v[c+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](l)),o[c+12>>2]=d,a[c+16|0]=1,o[c+8>>2]=128}if(k=0-(l=B)&3)for(;o[o[c+12>>2]+(l<<2)>>2]=0,l=l+1|0,(0|k)!=(0|(G=G+1|0)););if(!(B-125>>>0<3))for(;o[(G=l<<2)+o[c+12>>2]>>2]=0,o[4+(G+o[c+12>>2]|0)>>2]=0,o[8+(G+o[c+12>>2]|0)>>2]=0,o[12+(G+o[c+12>>2]|0)>>2]=0,128!=(0|(l=l+4|0)););}for(o[c+4>>2]=128,o[o[c+12>>2]>>2]=A,k=126,G=1;;){A=o[c+12>>2],B=o[A+(R=(l=G-1|0)<<2)>>2],Q=w[B>>2],E=w[B+4>>2],Z=w[t>>2],W=w[t+4>>2],w[u+8>>2]=w[B+8>>2]-w[t+8>>2],w[u+4>>2]=E-W,w[u>>2]=Q-Z,Q=w[B+16>>2],E=w[B+20>>2],Z=w[n>>2],W=w[n+4>>2],w[u+24>>2]=w[B+24>>2]-w[n+8>>2],w[u+20>>2]=E-W,w[u+16>>2]=Q-Z,d=o[e>>2],W=w[r>>2],p=w[f>>2],Q=m(m(w[(d<<4)+u>>2]-W)*p),Z=w[f+4>>2],s=o[e+4>>2],Y=w[r+4>>2];A:if(!(Q>(E=m(Z*m(w[4+((1-s<<4)+u|0)>>2]-Y)))||(Z=m(m(w[4+((s<<4)+u|0)>>2]-Y)*Z))>(W=m(p*m(w[(1-d<<4)+u>>2]-W)))||(Q=Z>Q?Z:Q,p=w[f+8>>2],d=o[e+8>>2],Y=w[r+8>>2],Q>(Z=m(p*m(w[8+((1-d<<4)+u|0)>>2]-Y)))||(p=m(m(w[8+((d<<4)+u|0)>>2]-Y)*p))>(E=Em(0))))){if(o[B+40>>2]){if((0|l)>(0|k)){if((0|(l=o[c+4>>2]))<(0|(d=l<<1))){if((0|d)>o[c+8>>2]){if(l){if(o[8488]=o[8488]+1,A=0|Zn[o[8290]](l<<3,16),!((0|(h=o[c+4>>2]))<=0)){if(F=0,k=0,h>>>0>=4)for(g=-4&h,N=0;o[(s=k<<2)+A>>2]=o[s+o[c+12>>2]>>2],o[(V=4|s)+A>>2]=o[V+o[c+12>>2]>>2],o[(V=8|s)+A>>2]=o[V+o[c+12>>2]>>2],o[(s|=12)+A>>2]=o[s+o[c+12>>2]>>2],k=k+4|0,(0|g)!=(0|(N=N+4|0)););if(s=3&h)for(;o[(h=k<<2)+A>>2]=o[h+o[c+12>>2]>>2],k=k+1|0,(0|s)!=(0|(F=F+1|0)););}}else A=0;!(k=o[c+12>>2])||!k|!v[c+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](k)),o[c+12>>2]=A,a[c+16|0]=1,o[c+8>>2]=d}if(A=l-1|0,k=0,s=3&l)for(;o[o[c+12>>2]+(l<<2)>>2]=0,l=l+1|0,(0|s)!=(0|(k=k+1|0)););if(A>>>0>=3)for(;o[(A=l<<2)+o[c+12>>2]>>2]=0,o[4+(A+o[c+12>>2]|0)>>2]=0,o[8+(A+o[c+12>>2]|0)>>2]=0,o[12+(A+o[c+12>>2]|0)>>2]=0,(0|d)!=(0|(l=l+4|0)););A=o[c+12>>2]}o[c+4>>2]=d,k=d-2|0}o[A+R>>2]=o[B+36>>2],o[o[c+12>>2]+(G<<2)>>2]=o[B+40>>2],l=G+1|0;break A}Zn[o[o[b>>2]+12>>2]](b,B)}if(!(G=l))break}}S=u+32|0}function JA(){v[35136]||(o[8702]=1062847606,o[8703]=0,o[8700]=1042701022,o[8701]=1056964440,o[8698]=1062847606,o[8699]=0,o[8696]=-1093024784,o[8697]=1050556081,o[8694]=1062847606,o[8695]=0,o[8692]=-1093024784,o[8693]=-1096927567,o[8690]=1062847606,o[8691]=0,o[8688]=1042701022,o[8689]=-1090519208,o[8686]=1062847572,o[8687]=0,o[8684]=1057396286,o[8685]=0,o[8682]=1057396386,o[8683]=0,o[8680]=1060121912,o[8681]=1056964507,o[8678]=1057396420,o[8679]=0,o[8676]=-1098475836,o[8677]=1062148969,o[8674]=1057396386,o[8675]=0,o[8672]=-1084636143,o[8673]=0,o[8670]=1057396420,o[8671]=0,o[8668]=-1098475836,o[8669]=-1085334679,o[8666]=1057396386,o[8667]=0,o[8664]=1060121912,o[8665]=-1090519141,o[8662]=-2147483648,o[8663]=0,o[8660]=1058437413,o[8661]=1062149053,o[8658]=-2147483648,o[8659]=0,o[8656]=-2147483648,o[8657]=1065353216,o[8654]=-2147483648,o[8655]=0,o[8652]=-1089046235,o[8653]=1062149053,o[8650]=-2147483648,o[8651]=0,o[8648]=-1082951543,o[8649]=1050556148,o[8646]=-2147483648,o[8647]=0,o[8644]=-1082951543,o[8645]=-1096927500,o[8642]=0,o[8643]=0,o[8640]=-1089046235,o[8641]=-1085334595,o[8638]=0,o[8639]=0,o[8636]=0,o[8637]=-1082130432,o[8634]=0,o[8635]=0,o[8632]=1058437413,o[8633]=-1085334595,o[8630]=0,o[8631]=0,o[8628]=1064532105,o[8629]=-1096927500,o[8626]=0,o[8627]=0,o[8624]=1064532105,o[8625]=1050556148,o[8622]=-1090087228,o[8623]=0,o[8620]=1049007812,o[8621]=1062148969,o[8618]=-1090087262,o[8619]=0,o[8616]=-1087361736,o[8617]=1056964507,o[8614]=-1084636042,o[8615]=0,o[8612]=-1104782626,o[8613]=1056964440,o[8610]=-1090087262,o[8611]=0,o[8608]=-1087361736,o[8609]=-1090519141,o[8606]=-1084636076,o[8607]=0,o[8604]=-1090087362,o[8605]=-2147483648,o[8602]=-1090087262,o[8603]=0,o[8600]=1062847505,o[8601]=-2147483648,o[8598]=-1084636042,o[8599]=0,o[8596]=1054458864,o[8597]=1050556081,o[8594]=-1090087228,o[8595]=0,o[8592]=1049007812,o[8593]=-1085334679,o[8590]=-1084636042,o[8591]=0,o[8588]=-1104782626,o[8589]=-1090519208,o[8586]=-1084636042,o[8587]=0,o[8584]=1054458864,o[8585]=-1096927567,o[8582]=1065353216,o[8583]=0,o[8580]=-2147483648,o[8581]=0,o[8578]=1055193471,o[8579]=0,o[8576]=1063581978,o[8577]=0,o[8574]=1055193572,o[8575]=0,o[8572]=1049461434,o[8573]=1062847522,o[8570]=1055193572,o[8571]=0,o[8568]=-1086767520,o[8569]=1057396202,o[8566]=1055193572,o[8567]=0,o[8564]=-1086767520,o[8565]=-1090087446,o[8562]=1055193605,o[8563]=0,o[8560]=1049461434,o[8561]=-1084636126,o[8558]=-1092290076,o[8559]=0,o[8556]=1060716128,o[8557]=1057396202,o[8554]=-1092290043,o[8555]=0,o[8552]=-1098022214,o[8553]=1062847522,o[8550]=-1092290177,o[8551]=0,o[8548]=-1083901670,o[8549]=-2147483648,o[8546]=-1092290076,o[8547]=0,o[8544]=-1098022214,o[8545]=-1084636126,o[8542]=-1092290076,o[8543]=0,o[8540]=1060716128,o[8541]=-1090087446,o[8538]=-1082130432,o[8539]=0,o[8536]=0,o[8537]=-2147483648,a[35136]=1)}function xA(A,r,f,e,i){var n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=0,G=m(0),Q=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=0,D=m(0);return n=m(-1),l=w[A>>2],c=w[r>>2],a=m(l-c),u=w[r+4>>2],Q=w[f+4>>2],R=m(u-Q),E=w[f>>2],Y=m(c-E),h=w[A+4>>2],b=m(h-u),s=m(m(a*R)-m(Y*b)),t=w[r+8>>2],W=w[f+8>>2],V=m(t-W),B=w[A+8>>2],d=m(B-t),p=m(m(b*V)-m(R*d)),F=m(m(d*Y)-m(V*a)),(D=m(m(s*s)+m(m(p*p)+m(F*F))))>m(0)&&(m(m(B*m(m(a*F)+m(p*m(-b))))+m(m(l*m(m(b*s)+m(F*m(-d))))+m(h*m(m(d*p)+m(s*m(-a))))))>m(0)?(b=m(-1),d=m(t-B),k=m(c-l),v=m(u-h),(n=m(m(d*d)+m(m(k*k)+m(v*v))))>m(0)?(a=m(1),(n=m(m(-m(m(B*d)+m(m(l*k)+m(h*v))))/n))>=m(1)?(b=m(m(t*t)+m(m(c*c)+m(u*u))),X=2,Z=2):(a=m(0),n<=m(0)?(b=m(m(B*B)+m(m(l*l)+m(h*h))),G=m(1),Z=1):(a=m(B+m(d*n)),b=m(a*a),a=m(l+m(k*n)),c=m(a*a),a=m(h+m(v*n)),b=m(b+m(c+m(a*a))),G=m(m(1)-n),X=2,a=n,Z=3))):(a=m(0),Z=0),o[i>>2]=1&Z|X,o[e+8>>2]=0,w[e+4>>2]=a,w[e>>2]=G,t=w[r+8>>2],u=w[r+4>>2],c=w[r>>2]):(b=m(-1),a=m(0)),B=m(W-B),h=m(Q-h),d=m(E-l),m(m(t*m(m(Y*F)-m(p*R)))+m(m(c*m(m(R*s)-m(F*V)))+m(u*m(m(V*p)-m(s*Y)))))>m(0)?(X=b>2],l=m(Q-t),E=w[f>>2],k=m(E-c),W=w[f+4>>2],v=m(W-u),g=m(m(l*l)+m(m(k*k)+m(v*v))),n=m(-1),g>m(0)&&(a=m(1),(n=m(m(-m(m(t*l)+m(m(c*k)+m(u*v))))/g))>=m(1)?(G=m(0),Z=2,n=m(m(Q*Q)+m(m(E*E)+m(W*W)))):(a=m(0),n<=m(0)?(G=m(1),Z=1,n=m(m(t*t)+m(m(c*c)+m(u*u)))):(G=m(m(1)-n),Z=3,a=n,t=m(t+m(l*n)),c=m(c+m(k*n)),n=m(u+m(v*n)),n=m(m(t*t)+m(m(c*c)+m(n*n)))))),X|b>n?(o[i>>2]=Z<<1,w[e+8>>2]=a,w[e+4>>2]=G,o[e>>2]=0):n=b):n=b,u=w[f+8>>2],t=w[f>>2],l=w[f+4>>2],m(m(u*m(m(d*F)-m(p*h)))+m(m(t*m(m(h*s)-m(F*B)))+m(l*m(m(B*p)-m(s*d)))))>m(0)&&(c=m(-1),E=w[A+8>>2],k=m(E-u),W=w[A>>2],v=m(W-t),g=w[A+4>>2],Q=m(g-l),(b=m(m(k*k)+m(m(v*v)+m(Q*Q))))>m(0)&&(a=m(1),(b=m(m(-m(m(u*k)+m(m(t*v)+m(l*Q))))/b))>=m(1)?(c=m(m(E*E)+m(m(W*W)+m(g*g))),G=m(0),Z=2):(a=m(0),b<=m(0)?(c=m(m(u*u)+m(m(t*t)+m(l*l))),G=m(1),Z=1):(a=m(u+m(k*b)),c=m(a*a),a=m(t+m(v*b)),t=m(a*a),a=m(l+m(Q*b)),c=m(c+m(t+m(a*a))),G=m(m(1)-b),Z=3,a=b))),nc&&(o[i>>2]=Z<<2&4|Z>>>1,o[e+4>>2]=0,w[e>>2]=a,w[e+8>>2]=G,n=c)),n>2],a=w[A>>2],b=w[A+4>>2],o[i>>2]=7,b=m(m(m(n*s)+m(m(a*p)+m(F*b)))/D),n=m(F*b),c=m(w[r+4>>2]-n),a=m(p*b),u=m(w[r>>2]-a),t=m(m(Y*c)+m(u*m(-R))),l=m(t*t),b=m(s*b),t=m(w[r+8>>2]-b),c=m(m(R*t)+m(c*m(-V))),s=m(c*c),c=m(m(V*u)+m(t*m(-Y))),t=m(N(m(l+m(s+m(c*c))))),c=m(N(D)),u=m(t/c),w[e>>2]=u,t=m(w[f+4>>2]-n),G=m(w[f>>2]-a),s=m(m(d*t)+m(G*m(-h))),l=m(s*s),s=m(w[f+8>>2]-b),t=m(m(h*s)+m(t*m(-B))),k=m(t*t),t=m(m(B*G)+m(s*m(-d))),c=m(m(N(m(l+m(k+m(t*t)))))/c),w[e+4>>2]=c,w[e+8>>2]=m(1)-m(u+c),n=m(m(b*b)+m(m(a*a)+m(n*n))))),n}function yA(A,r,f,e){var i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0,h=0,B=0,Z=0,G=0;if(!(!r|!f)){if(!(o[A+24>>2]>127|o[A+28>>2]>127)){if(o[8488]=o[8488]+1,s=0|Zn[o[8290]](1024,16),!((0|(t=o[A+24>>2]))<=0)){if(t>>>0>=4)for(B=-4&t;b=(n=d<<3)+s|0,c=n+o[A+32>>2]|0,k=o[c+4>>2],o[b>>2]=o[c>>2],o[b+4>>2]=k,c=(b=8|n)+s|0,b=b+o[A+32>>2]|0,k=o[b+4>>2],o[c>>2]=o[b>>2],o[c+4>>2]=k,c=(b=16|n)+s|0,b=b+o[A+32>>2]|0,k=o[b+4>>2],o[c>>2]=o[b>>2],o[c+4>>2]=k,b=(n|=24)+s|0,n=n+o[A+32>>2]|0,c=o[n+4>>2],o[b>>2]=o[n>>2],o[b+4>>2]=c,d=d+4|0,(0|B)!=(0|(i=i+4|0)););if(i=3&t)for(;t=(n=d<<3)+s|0,n=n+o[A+32>>2]|0,B=o[n+4>>2],o[t>>2]=o[n>>2],o[t+4>>2]=B,d=d+1|0,(0|i)!=(0|(u=u+1|0)););}!(i=o[A+32>>2])||!i|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),o[A+32>>2]=s,a[A+36|0]=1,o[A+28>>2]=128}for(o[A+24>>2]=128,i=o[A+32>>2],o[i+4>>2]=f,o[i>>2]=r,r=124,i=1;;){if(u=o[A+32>>2],s=i,t=o[4+(f=u+(b=(i=i-1|0)<<3)|0)>>2],n=o[f>>2],(0|r)<(0|i)){if(!((0|(B=(r=o[A+24>>2])<<1))<=o[A+28>>2]|(0|r)>=(0|B))){if(r){if(o[8488]=o[8488]+1,u=0|Zn[o[8290]](r<<4,16),!((0|(k=o[A+24>>2]))<=0)){if(r=0,d=0,k>>>0>=4)for(G=-4&k,f=0;l=(c=d<<3)+u|0,h=c+o[A+32>>2]|0,Z=o[h+4>>2],o[l>>2]=o[h>>2],o[l+4>>2]=Z,h=(l=8|c)+u|0,l=l+o[A+32>>2]|0,Z=o[l+4>>2],o[h>>2]=o[l>>2],o[h+4>>2]=Z,h=(l=16|c)+u|0,l=l+o[A+32>>2]|0,Z=o[l+4>>2],o[h>>2]=o[l>>2],o[h+4>>2]=Z,l=(c|=24)+u|0,c=c+o[A+32>>2]|0,h=o[c+4>>2],o[l>>2]=o[c>>2],o[l+4>>2]=h,d=d+4|0,(0|G)!=(0|(f=f+4|0)););if(f=3&k)for(;k=(c=d<<3)+u|0,c=c+o[A+32>>2]|0,G=o[c+4>>2],o[k>>2]=o[c>>2],o[k+4>>2]=G,d=d+1|0,(0|f)!=(0|(r=r+1|0)););}}else u=0;!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+32>>2]=u,a[A+36|0]=1,o[A+28>>2]=B}o[A+24>>2]=B,r=B-4|0}A:if((0|n)!=(0|t)){if(!(!(w[n>>2]<=w[t+16>>2])|!(w[n+16>>2]>=w[t>>2])|!(w[n+4>>2]<=w[t+20>>2])|!(w[n+20>>2]>=w[t+4>>2])||!(w[n+8>>2]<=w[t+24>>2])|!(w[n+24>>2]>=w[t+8>>2])))if(f=o[t+40>>2],o[n+40>>2]){if(i=o[n+36>>2],f){o[4+(f=u+b|0)>>2]=o[t+36>>2],o[f>>2]=i,i=o[n+40>>2],u=(f=s<<3)+o[A+32>>2]|0,o[u+4>>2]=o[t+36>>2],o[u>>2]=i,i=o[n+36>>2],u=f+o[A+32>>2]|0,o[u+12>>2]=o[t+40>>2],o[u+8>>2]=i,i=o[n+40>>2],f=f+o[A+32>>2]|0,o[f+20>>2]=o[t+40>>2],o[f+16>>2]=i,i=s+3|0;break A}o[4+(f=u+b|0)>>2]=t,o[f>>2]=i,f=o[n+40>>2],i=o[A+32>>2]+(s<<3)|0,o[i+4>>2]=t,o[i>>2]=f,i=s+1|0}else f?(o[4+(f=u+b|0)>>2]=o[t+36>>2],o[f>>2]=n,f=o[A+32>>2]+(s<<3)|0,o[f+4>>2]=o[t+40>>2],o[f>>2]=n,i=s+1|0):Zn[o[o[e>>2]+8>>2]](e,n,t)}else{if(!o[n+40>>2])break A;f=u+b|0,i=o[n+36>>2],o[f+4>>2]=i,o[f>>2]=i,i=(f=s<<3)+o[A+32>>2]|0,t=o[n+40>>2],o[i+4>>2]=t,o[i>>2]=t,i=o[n+40>>2],f=f+o[A+32>>2]|0,o[f+8>>2]=o[n+36>>2],o[f+12>>2]=i,i=s+2|0}if(!i)break}}}function MA(A,r,f,e,i,n,a){var t,c=m(0),b=m(0),u=0,l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),B=m(0),Z=m(0),G=0,Q=m(0),E=0,W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=0,X=0,D=0,C=0,J=0,x=0,y=0,M=0,H=0,I=0,T=0,U=0,j=0,z=0,P=0,O=0;if(S=t=S-32|0,F=w[f+4>>2],R=w[e+4>>2],Y=w[f>>2],V=w[e>>2],k=w[A+28>>2],v=w[A+12>>2],W=w[e+8>>2],p=w[f+8>>2],c=(c=m((W>2]))>2],X=(c=m(m((c>k?k:c)-v)*l))=m(0)?~~c>>>0:0,d=w[A+24>>2],B=w[A+8>>2],c=(c=m((F>R?R:F)+w[i+4>>2]))>2],g=(c=m(m((c>d?d:c)-B)*Q))=m(0)?~~c>>>0:0,s=w[A+20>>2],Z=w[A+4>>2],c=(c=m((Y>V?V:Y)+w[i>>2]))>2],E=(c=m(m((c>s?s:c)-Z)*b))=m(0)?~~c>>>0:0,c=m((W>p?W:p)+w[n+8>>2]),G=(c=m(m(m(((c=ck?k:c)-v)*l)+m(1)))=m(0)?~~c>>>0:0,c=m((F>2]),u=(c=m(m(m(((c=cd?d:c)-B)*Q)+m(1)))=m(0)?~~c>>>0:0,c=m((Y>2]),e=(c=m(m(m(((c=cs?s:c)-Z)*b)+m(1)))=m(0)?~~c>>>0:0,(0|a)>0)for(b=m(W-p),s=m(V-Y),Q=m(R-F),c=m(m(1)/m(N(m(m(b*b)+m(m(s*s)+m(Q*Q)))))),l=m(b*c),k=m(l*b),b=m(s*c),c=m(Q*c),Q=m(k+m(m(b*s)+m(Q*c))),x=65534&X,y=65534&g,M=65534&E,H=1|G,I=1|u,T=1|e,e=o[A+136>>2],U=((G=(v=l==m(0)?m(0xde0b6b000000000):m(m(1)/l))>2],E=0;A:{r:{f:{e:if(!(h[e+6>>1]>>0||T>>>0<(g=h[e>>1])>>>0|h[e+10>>1]>>0||(G=h[e+4>>1],h[e+8>>1]>>0|G>>>0>H>>>0||(u=h[e+2>>1])>>>0>I>>>0))){if(W=w[A+4>>2],p=w[A+36>>2],k=w[A+8>>2],d=w[A+40>>2],s=w[A+12>>2],l=w[A+44>>2],o[t+12>>2]=0,b=m(s+m(m(G>>>0)/l)),w[t+8>>2]=b,c=m(k+m(m(u>>>0)/d)),w[t+4>>2]=c,E=h[e+10>>1],G=h[e+8>>1],u=h[e+6>>1],o[t+28>>2]=0,w[t>>2]=m(W+m(m(g>>>0)/p))-w[n>>2],w[t+4>>2]=c-w[n+4>>2],w[t+8>>2]=b-w[n+8>>2],w[t+16>>2]=m(W+m(m(u>>>0)/p))-w[i>>2],w[t+20>>2]=m(k+m(m(G>>>0)/d))-w[i+4>>2],w[t+24>>2]=m(s+m(m(E>>>0)/l))-w[i+8>>2],b=w[f>>2],l=m(Z*m(w[O>>2]-b)),c=w[f+4>>2],!(l>(k=m(B*m(w[P>>2]-c)))||(c=m(B*m(w[j>>2]-c)))>(d=m(Z*m(w[X>>2]-b)))||(s=c>l?c:l,c=w[f+8>>2],s>(l=m(v*m(w[z>>2]-c)))||(b=m(v*m(w[U>>2]-c)))>(c=k(b>s?b:s)&(c>l?l:c)>m(0))|(0|J)<0)break e;u=o[e+12>>2],Zn[o[o[r>>2]+8>>2]](r,u>>21,2097151&u);break f}E=0}if(!((0|J)>=0||E))break r}D=D+1|0,e=e+16|0;break A}D=D-(u=o[e+12>>2])|0,e=e-(u<<4)|0}if(C=C+1|0,!((0|a)>(0|D)))break}o[8502]<(0|C)&&(o[8502]=C),S=t+32|0}function HA(A,r,f,e,i,n){A|=0,r|=0,f|=0,e|=0,i|=0,n|=0;var t,c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=0,h=m(0),B=m(0),Z=0,G=m(0),Q=m(0),E=0,W=m(0),p=m(0),F=m(0),R=m(0);S=t=S-304|0,c=w[r+52>>2],l=w[f+52>>2],s=w[r+56>>2],b=w[f+56>>2],k=w[r+48>>2],u=w[f+48>>2],o[t+300>>2]=0,B=m(b-s),w[t+296>>2]=B,h=m(l-c),w[t+292>>2]=h,W=m(u-k),w[t+288>>2]=W,jA(r,E=f,f=t+116|0,d=t+52|0),o[t+284>>2]=0,c=w[t+52>>2],l=m(c*w[t+124>>2]),w[t+280>>2]=l,s=m(c*w[t+120>>2]),w[t+276>>2]=s,c=m(c*w[t+116>>2]),w[t+272>>2]=c,b=w[e+52>>2],k=w[i+52>>2],u=w[e+56>>2],G=w[i+56>>2],Q=w[e+48>>2],R=w[i+48>>2],o[t+268>>2]=0,p=m(G-u),w[t+264>>2]=p,F=m(k-b),w[t+260>>2]=F,Q=m(R-Q),w[t+256>>2]=Q,jA(e,i,f,d),o[t+252>>2]=0,b=w[t+52>>2],k=m(b*w[t+124>>2]),w[t+248>>2]=k,u=m(b*w[t+120>>2]),w[t+244>>2]=u,b=m(b*w[t+116>>2]),w[t+240>>2]=b,f=o[A+12>>2],l=m(m(N(m(m(l*l)+m(m(c*c)+m(s*s)))))*m(Zn[o[o[f>>2]+16>>2]](f))),f=o[A+16>>2],c=m(f?Zn[o[o[f>>2]+16>>2]](f):0),G=m(l+m(c*m(N(m(m(k*k)+m(m(b*b)+m(u*u))))))),s=m(p-B),b=m(Q-W),k=m(F-h);A:if(m(G+m(N(m(m(s*s)+m(m(b*b)+m(k*k))))))!=m(0)&&(a[t+220|0]=0,o[t+216>>2]=1566444395,o[t+180>>2]=22640,FA(A,r,e,t+180|0),f=o[t+212>>2],o[t+232>>2]=o[t+208>>2],o[t+236>>2]=f,f=o[t+204>>2],o[t+224>>2]=o[t+200>>2],o[t+228>>2]=f,v[t+220|0]&&(l=w[t+192>>2],u=w[t+184>>2],B=w[t+188>>2],!(m(G+m(m(s*l)+m(m(b*u)+m(k*B))))<=m(1.1920928955078125e-7))))){r:{if((h=m(w[t+216>>2]+w[n+172>>2]))>m(.0010000000474974513)){for(i=t+28|0,E=t+164|0,f=0,c=m(0);;){if((Z=o[n+168>>2])&&(o[t+124>>2]=1065353216,o[t+128>>2]=0,o[t+116>>2]=1065353216,o[t+120>>2]=1065353216,Zn[o[o[Z>>2]+28>>2]](Z,t+224|0,m(.20000000298023224),t+116|0)),Z=0,(u=m(G+m(m(s*l)+m(m(b*u)+m(k*B)))))<=m(1.1920928955078125e-7))break A;if((l=c)>=(c=m(c+m(h/u)))|c>m(1)|c>2])&&(o[t+16>>2]=0,o[t+20>>2]=0,o[t+8>>2]=1065353216,o[t+12>>2]=0,Zn[o[o[d>>2]+28>>2]](d,E,m(.20000000298023224),t+8|0)),Zn[o[o[n>>2]>>2]](n,c),a[t+48|0]=0,o[t+44>>2]=1566444395,o[t+8>>2]=22640,FA(A,t+116|0,t+52|0,t+8|0),!v[t+48|0])break r;if(h=w[n+172>>2],d=o[i+12>>2],o[t+232>>2]=o[i+8>>2],o[t+236>>2]=d,d=o[i+4>>2],o[t+224>>2]=o[i>>2],o[t+228>>2]=d,64==(0|f)){Zn[o[o[n>>2]+8>>2]](n,-2,65);break A}if(f=f+1|0,u=w[t+12>>2],B=w[t+16>>2],l=w[t+20>>2],!((h=m(w[t+44>>2]+h))>m(.0010000000474974513)))break}s=w[t+24>>2]}else c=m(0),s=w[t+196>>2];w[n+132>>2]=u,w[n+164>>2]=c,w[n+144>>2]=s,w[n+140>>2]=l,w[n+136>>2]=B,A=o[t+228>>2],o[n+148>>2]=o[t+224>>2],o[n+152>>2]=A,A=o[t+236>>2],o[n+156>>2]=o[t+232>>2],o[n+160>>2]=A,Z=1;break A}Zn[o[o[n>>2]+8>>2]](n,-1,f)}return S=t+304|0,0|Z}function IA(A,r,f,e,i,n){A|=0,r|=0,f|=0,e|=0,i|=0,n|=0;var t,c,b=0,u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=0,E=m(0),W=m(0),N=m(0);S=t=S-272|0,re(o[A+4>>2]),l=w[r+52>>2],u=w[f+52>>2],h=w[e+52>>2],s=w[i+52>>2],k=w[r+56>>2],d=w[f+56>>2],B=w[e+56>>2],Z=w[i+56>>2],G=w[r+48>>2],E=w[f+48>>2],W=w[e+48>>2],N=w[i+48>>2],a[t+252|0]=0,o[t+248>>2]=1566444395,o[t+212>>2]=22640,c=Hf(t+132|0,o[A+8>>2],o[A+12>>2],o[A+4>>2],0),o[t+128>>2]=1566444395,A=o[r+12>>2],o[t+8>>2]=o[r+8>>2],o[t+12>>2]=A,A=o[r+4>>2],o[t>>2]=o[r>>2],o[t+4>>2]=A,A=o[r+28>>2],o[t+24>>2]=o[r+24>>2],o[t+28>>2]=A,A=o[r+20>>2],o[t+16>>2]=o[r+16>>2],o[t+20>>2]=A,A=o[r+44>>2],o[t+40>>2]=o[r+40>>2],o[t+44>>2]=A,A=o[r+36>>2],o[t+32>>2]=o[r+32>>2],o[t+36>>2]=A,A=o[r+60>>2],o[t+56>>2]=o[r+56>>2],o[t+60>>2]=A,A=o[r+52>>2],o[t+48>>2]=o[r+48>>2],o[t+52>>2]=A,A=o[e+12>>2],o[t+72>>2]=o[e+8>>2],o[t+76>>2]=A,A=o[e+4>>2],o[t+64>>2]=o[e>>2],o[t+68>>2]=A,A=o[e+20>>2],o[t+80>>2]=o[e+16>>2],o[t+84>>2]=A,A=o[e+28>>2],o[t+88>>2]=o[e+24>>2],o[t+92>>2]=A,A=o[e+44>>2],o[t+104>>2]=o[e+40>>2],o[t+108>>2]=A,A=o[e+36>>2],o[t+96>>2]=o[e+32>>2],o[t+100>>2]=A,A=o[e+52>>2],o[t+112>>2]=o[e+48>>2],o[t+116>>2]=A,A=o[e+60>>2],o[t+120>>2]=o[e+56>>2],o[t+124>>2]=A,eA(c,t,t+212|0,0,0),A=o[t+244>>2],o[t+264>>2]=o[t+240>>2],o[t+268>>2]=A,A=o[t+236>>2],o[t+256>>2]=o[t+232>>2],o[t+260>>2]=A,b=0;A:if(v[t+252|0]){B=m(m(d-k)-m(Z-B)),Z=m(m(u-l)-m(s-h)),G=m(m(E-G)-m(N-W)),s=w[t+224>>2],k=w[t+220>>2],d=w[t+216>>2];r:{if((u=w[t+248>>2])>m(.0010000000474974513)){for(Q=t+232|0,A=0,h=m(0);;){if(b=0,32==(0|A))break A;if(b=0,h>=(l=m(h-m(u/m(m(B*s)+m(m(G*d)+m(Z*k)))))))break A;if(b=0,l>m(1))break A;if(b=0,l>2]>>2]](n,l),u=m(m(1)-l),w[t+48>>2]=m(u*w[r+48>>2])+m(l*w[f+48>>2]),w[t+52>>2]=m(u*w[r+52>>2])+m(l*w[f+52>>2]),w[t+56>>2]=m(u*w[r+56>>2])+m(l*w[f+56>>2]),w[t+112>>2]=m(u*w[e+48>>2])+m(l*w[i+48>>2]),w[t+116>>2]=m(u*w[e+52>>2])+m(l*w[i+52>>2]),w[t+120>>2]=m(u*w[e+56>>2])+m(l*w[i+56>>2]),eA(c,t,t+212|0,0,0),b=0,!v[t+252|0])break A;if((u=w[t+248>>2])>2]=l,u=w[t+228>>2],s=w[t+224>>2],k=w[t+220>>2],d=w[t+216>>2];break r}if(A=A+1|0,b=o[t+244>>2],o[t+264>>2]=o[t+240>>2],o[t+268>>2]=b,b=o[t+236>>2],o[t+256>>2]=o[t+232>>2],o[t+260>>2]=b,s=w[t+224>>2],k=w[t+220>>2],d=w[t+216>>2],h=l,!(u>m(.0010000000474974513)))break}u=w[t+228>>2]}else l=m(0),u=w[t+228>>2];if(b=0,m(-w[n+172>>2])<=m(m(s*B)+m(m(d*G)+m(Z*k))))break A;w[n+164>>2]=l,Q=t+256|0}w[n+132>>2]=d,w[n+144>>2]=u,w[n+140>>2]=s,w[n+136>>2]=k,r=o[(A=Q)+4>>2],o[n+148>>2]=o[A>>2],o[n+152>>2]=r,r=o[A+12>>2],o[n+156>>2]=o[A+8>>2],o[n+160>>2]=r,b=1}return S=t+272|0,0|b}function TA(A){var r=0,f=0,e=0,i=0,n=0,t=0,c=0,b=0,u=0;if(o[8455]=16876,r=o[A+20>>2],o[8488]=o[8488]+1,i=0|Zn[o[8290]](4,16),o[i>>2]=8+(r?22792:22952),o[8461]=i,o[8488]=o[8488]+1,r=0|Zn[o[8290]](20,16),i=o[8461],o[r+12>>2]=0,o[r+16>>2]=3,a[r+4|0]=0,o[r+8>>2]=i,o[r>>2]=15196,o[8462]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](8,16),o[r>>2]=16992,a[r+4|0]=0,o[8463]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](8,16),o[r>>2]=17116,a[r+4|0]=0,o[8464]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](8,16),o[r>>2]=17208,a[r+4|0]=0,o[8465]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](8,16),o[r>>2]=17288,a[r+4|0]=0,o[8466]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](8,16),o[r>>2]=17376,a[r+4|0]=0,o[8467]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](8,16),o[r>>2]=17460,a[r+4|0]=0,o[8468]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](8,16),o[r>>2]=17528,a[r+4|0]=0,o[8469]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](8,16),o[r>>2]=17612,a[r+4|0]=0,o[8473]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](8,16),o[r>>2]=17612,o[8474]=r,a[r+4|0]=1,o[8488]=o[8488]+1,r=0|Zn[o[8290]](8,16),o[r>>2]=17696,a[r+4|0]=0,o[8472]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](16,16),o[r+8>>2]=1,o[r+12>>2]=0,o[r>>2]=17772,a[r+4|0]=0,o[8476]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](16,16),o[r+8>>2]=1,o[r+12>>2]=0,o[r>>2]=17772,o[8475]=r,a[r+4|0]=1,c=o[A+16>>2],e=o[A>>2])a[33832]=0;else{if(a[33832]=1,o[8488]=o[8488]+1,e=0|Zn[o[8290]](24,16),r=o[A+8>>2],o[e+20>>2]=0,o[e+4>>2]=r,o[e>>2]=868,o[8488]=o[8488]+1,r=0|Zn[o[8290]](G(r,868),16),o[e+12>>2]=r,o[e+16>>2]=r,b=o[e+4>>2],o[e+8>>2]=b,i=b-1|0){if(n=o[e>>2],u=7&i)for(;f=r,r=r+n|0,o[f>>2]=r,i=i-1|0,(0|u)!=(0|(t=t+1|0)););if(!(b-2>>>0<7))for(;f=r,r=r+n|0,o[f>>2]=r,f=r,r=r+n|0,o[f>>2]=r,f=r,r=r+n|0,o[f>>2]=r,f=r,r=r+n|0,o[f>>2]=r,f=r,r=r+n|0,o[f>>2]=r,f=r,r=r+n|0,o[f>>2]=r,f=r,r=r+n|0,o[f>>2]=r,f=r,r=r+n|0,o[f>>2]=r,i=i-8|0;);}o[r>>2]=0}if(o[8457]=e,r=o[A+4>>2])return a[33840]=0,void(o[8459]=r);if(a[33840]=1,o[8488]=o[8488]+1,e=0|Zn[o[8290]](24,16),A=o[A+12>>2],t=0,o[e+20>>2]=0,o[e+4>>2]=A,r=16+(2147483632&((r=(0|c)<=72?72:c)>>>0<=116?116:r))|0,o[e>>2]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](G(A,r),16),o[e+12>>2]=r,o[e+16>>2]=r,n=o[e+4>>2],o[e+8>>2]=n,i=n-1|0){if(A=o[e>>2],c=7&i)for(;f=r,r=A+r|0,o[f>>2]=r,i=i-1|0,(0|c)!=(0|(t=t+1|0)););if(!(n-2>>>0<7))for(;f=r,r=A+r|0,o[f>>2]=r,f=r,r=A+r|0,o[f>>2]=r,f=r,r=A+r|0,o[f>>2]=r,f=r,r=A+r|0,o[f>>2]=r,f=r,r=A+r|0,o[f>>2]=r,f=r,r=A+r|0,o[f>>2]=r,f=r,r=A+r|0,o[f>>2]=r,f=r,r=A+r|0,o[f>>2]=r,i=i-8|0;);}o[r>>2]=0,o[8459]=e}function UA(A,r){var f=0,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0;A:{r:if(!((0|(e=o[A+548>>2]))<=0)){for(i=o[A+556>>2];;){if(o[i+(n<<2)>>2]!=(0|r)){if((0|(n=n+1|0))!=(0|e))continue;break r}break}if((0|e)!=(0|n))break A}if(o[A+552>>2]==(0|e)&&!((0|(b=e?e<<1:1))<=(0|e))){if(b?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](b<<2,16),e=o[A+548>>2]):i=0,!((0|e)<=0)){if(n=0,e>>>0>=4)for(l=-4&e;o[(f=n<<2)+i>>2]=o[f+o[A+556>>2]>>2],o[(t=4|f)+i>>2]=o[t+o[A+556>>2]>>2],o[(t=8|f)+i>>2]=o[t+o[A+556>>2]>>2],o[(f|=12)+i>>2]=o[f+o[A+556>>2]>>2],n=n+4|0,(0|l)!=(0|(c=c+4|0)););if(f=3&e)for(;o[(c=n<<2)+i>>2]=o[c+o[A+556>>2]>>2],n=n+1|0,(0|f)!=(0|(u=u+1|0)););}!(n=o[A+556>>2])|!v[A+560|0]||(n&&(o[8489]=o[8489]+1,Zn[o[8291]](n)),e=o[A+548>>2]),o[A+556>>2]=i,a[A+560|0]=1,o[A+552>>2]=b}o[o[A+556>>2]+(e<<2)>>2]=r,o[A+548>>2]=e+1,n=o[r+32>>2];r:if((0|(r=o[r+28>>2]))!=(0|A)){if((0|(i=o[n+288>>2]))==o[n+292>>2]&&!((0|(c=i?i<<1:1))<=(0|i))){if(c?(o[8488]=o[8488]+1,e=0|Zn[o[8290]](c<<2,16),i=o[n+288>>2]):e=0,!((0|i)<=0)){if(b=0,A=0,i>>>0>=4)for(l=-4&i,u=0;o[(f=A<<2)+e>>2]=o[f+o[n+296>>2]>>2],o[(t=4|f)+e>>2]=o[t+o[n+296>>2]>>2],o[(t=8|f)+e>>2]=o[t+o[n+296>>2]>>2],o[(f|=12)+e>>2]=o[f+o[n+296>>2]>>2],A=A+4|0,(0|l)!=(0|(u=u+4|0)););if(u=3&i)for(;o[(f=A<<2)+e>>2]=o[f+o[n+296>>2]>>2],A=A+1|0,(0|u)!=(0|(b=b+1|0)););}!(A=o[n+296>>2])|!v[n+300|0]||(A&&(o[8489]=o[8489]+1,Zn[o[8291]](A)),i=o[n+288>>2]),o[n+296>>2]=e,a[n+300|0]=1,o[n+292>>2]=c}A=n,n=r}else{if((0|(i=o[A+288>>2]))!=o[A+292>>2])break r;if((0|(b=i?i<<1:1))<=(0|i))break r;if(b?(o[8488]=o[8488]+1,r=0|Zn[o[8290]](b<<2,16),i=o[A+288>>2]):r=0,!((0|i)<=0)){if(u=0,e=0,i>>>0>=4)for(l=-4&i,c=0;o[(f=e<<2)+r>>2]=o[f+o[A+296>>2]>>2],o[(t=4|f)+r>>2]=o[t+o[A+296>>2]>>2],o[(t=8|f)+r>>2]=o[t+o[A+296>>2]>>2],o[(f|=12)+r>>2]=o[f+o[A+296>>2]>>2],e=e+4|0,(0|l)!=(0|(c=c+4|0)););if(f=3&i)for(;o[(c=e<<2)+r>>2]=o[c+o[A+296>>2]>>2],e=e+1|0,(0|f)!=(0|(u=u+1|0)););}!(e=o[A+296>>2])|!v[A+300|0]||(e&&(o[8489]=o[8489]+1,Zn[o[8291]](e)),i=o[A+288>>2]),o[A+296>>2]=r,a[A+300|0]=1,o[A+292>>2]=b}o[o[A+296>>2]+(i<<2)>>2]=n,o[A+280>>2]=~i>>>31,o[A+288>>2]=i+1}}function jA(A,r,f,e){var i,n=m(0),a=m(0),t=m(0),u=m(0),l=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0);S=i=S+-64|0,G=w[r+24>>2],Q=w[r+20>>2],E=w[r+40>>2],W=w[r+36>>2],l=w[A+40>>2],d=w[A+20>>2],v=w[A+36>>2],h=w[A+24>>2],p=w[r+8>>2],F=w[r>>2],R=w[r+4>>2],Y=w[r+16>>2],V=w[r+32>>2],a=w[A+8>>2],t=w[A+4>>2],Z=w[A+32>>2],B=w[A+16>>2],u=w[A>>2],o[i+60>>2]=0,o[i+44>>2]=0,X=m(m(B*v)-m(Z*d)),D=m(m(d*l)-m(v*h)),C=m(m(h*Z)-m(l*B)),n=m(m(1)/m(m(a*X)+m(m(u*D)+m(t*C)))),g=m(m(m(u*d)-m(B*t))*n),d=m(m(m(t*h)-m(d*a))*n),h=m(m(m(a*B)-m(h*u))*n),w[i+56>>2]=m(E*g)+m(m(V*d)+m(W*h)),B=m(m(m(t*Z)-m(v*u))*n),t=m(m(m(a*v)-m(l*t))*n),a=m(m(m(u*l)-m(Z*a))*n),w[i+52>>2]=m(E*B)+m(m(V*t)+m(W*a)),w[i+40>>2]=m(g*G)+m(m(d*Y)+m(h*Q)),w[i+36>>2]=m(B*G)+m(m(t*Y)+m(a*Q)),o[i+28>>2]=0,u=m(X*n),l=m(D*n),n=m(C*n),w[i+48>>2]=m(E*u)+m(m(V*l)+m(W*n)),w[i+32>>2]=m(u*G)+m(m(l*Y)+m(n*Q)),w[i+24>>2]=m(g*p)+m(m(d*F)+m(R*h)),w[i+20>>2]=m(B*p)+m(m(t*F)+m(R*a)),w[i+16>>2]=m(u*p)+m(m(l*F)+m(R*n)),rf(i+16|0,i),n=w[i+12>>2],u=w[i+8>>2],l=w[i>>2],d=w[i+4>>2],t=m(m(1)/m(N(m(m(n*n)+m(m(u*u)+m(m(l*l)+m(d*d))))))),s(a=(n=(n=m(n*t))m(1)?m(1):n);A:if((A=2147483647&(r=c(2)))>>>0>=1065353216){if(n=m((0|r)>=0?0:3.141592502593994),1065353216==(0|A))break A;n=m(m(0)/m(a-a))}else r:{if(A>>>0<=1056964607){if(n=m(1.570796251296997),A>>>0<847249409)break r;n=m(a*a),n=m(m(m(m(7.549789415861596e-8)-m(a*m(m(m(m(n*m(m(n*m(-.008656363002955914))+m(-.04274342209100723)))+m(.16666586697101593))*n)/m(m(n*m(-.7066296339035034))+m(1)))))-a)+m(1.570796251296997));break A}if((0|r)<0){n=m(m(a+m(1))*m(.5)),a=m(N(n)),n=m(m(1.570796251296997)-m(a+m(m(a*m(m(m(m(n*m(m(n*m(-.008656363002955914))+m(-.04274342209100723)))+m(.16666586697101593))*n)/m(m(n*m(-.7066296339035034))+m(1))))+m(-7.549789415861596e-8)))),n=m(n+n);break A}n=m(m(m(1)-a)*m(.5)),b(2,-4096&(s(v=m(N(n))),c(2))),a=k(),n=m(m(m(v*m(m(m(m(n*m(m(n*m(-.008656363002955914))+m(-.04274342209100723)))+m(.16666586697101593))*n)/m(m(n*m(-.7066296339035034))+m(1))))+m(m(n-m(a*a))/m(v+a)))+a),n=m(n+n)}w[e>>2]=n+n,o[f+12>>2]=0,n=m(u*t),a=m(l*t),t=m(d*t),(u=m(m(n*n)+m(m(a*a)+m(t*t))))>2]=1065353216,o[f+4>>2]=0,n=m(0)):(l=t,t=m(m(1)/m(N(u))),w[f+4>>2]=l*t,w[f>>2]=a*t,n=m(n*t)),w[f+8>>2]=n,S=i- -64|0}function zA(A,r,f){var e,i=0,n=0,a=m(0),t=0,c=0,b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=0;S=e=S-160|0,n=o[A+4>>2],i=o[n+12>>2],X=w[i+52>>2],D=w[i+56>>2],a=w[i+24>>2],b=w[i+20>>2],u=w[i+40>>2],l=w[i+36>>2],C=w[i+48>>2],s=w[i+8>>2],k=w[i>>2],d=w[i+4>>2],v=w[i+16>>2],h=w[i+32>>2],i=o[o[n+4>>2]+32>>2]+G(f,80)|0,B=w[i+32>>2],Z=w[i>>2],Q=w[i+16>>2],E=w[i+56>>2],W=w[i+52>>2],N=w[i+48>>2],p=w[i+36>>2],F=w[i+20>>2],R=w[i+4>>2],Y=w[i+40>>2],V=w[i+24>>2],g=w[i+8>>2],i=0,o[e+156>>2]=0,o[e+140>>2]=0,o[e+124>>2]=0,w[e+136>>2]=m(Y*u)+m(m(g*h)+m(l*V)),w[e+132>>2]=m(p*u)+m(m(R*h)+m(l*F)),w[e+120>>2]=m(Y*a)+m(m(g*v)+m(b*V)),w[e+116>>2]=m(p*a)+m(m(R*v)+m(b*F)),w[e+152>>2]=D+m(m(E*u)+m(m(N*h)+m(l*W))),w[e+148>>2]=X+m(m(E*a)+m(m(N*v)+m(b*W))),o[e+108>>2]=0,w[e+128>>2]=m(B*u)+m(m(Z*h)+m(l*Q)),w[e+112>>2]=m(B*a)+m(m(Z*v)+m(b*Q)),w[e+96>>2]=m(B*s)+m(m(Z*k)+m(d*Q)),w[e+104>>2]=m(Y*s)+m(m(g*k)+m(d*V)),w[e+100>>2]=m(p*s)+m(m(R*k)+m(d*F)),w[e+144>>2]=C+m(m(E*s)+m(m(N*k)+m(d*W))),Zn[o[o[r>>2]+8>>2]](r,e+96|0,e+80|0,e- -64|0),a=w[o[A+20>>2]+32>>2],w[e+80>>2]=w[e+80>>2]-a,w[e+84>>2]=w[e+84>>2]-a,w[e+88>>2]=w[e+88>>2]-a,w[e+64>>2]=a+w[e+64>>2],w[e+68>>2]=a+w[e+68>>2],w[e+72>>2]=a+w[e+72>>2],n=o[A+8>>2],t=o[n+4>>2],Zn[o[o[t>>2]+8>>2]](t,o[n+12>>2],e+48|0,e+32|0),(!(n=o[8496])||0|Zn[0|n](o[o[A+8>>2]+4>>2],r))&&(i=w[e+64>>2]>2]|w[e+80>>2]>w[e+32>>2]?i:1,n=0,1^(w[e+72>>2]>2]|w[e+88>>2]>w[e+40>>2]?n:i)|w[e+68>>2]>2]|w[e+84>>2]>w[e+36>>2]||(i=o[A+4>>2],n=o[i+8>>2],o[e+28>>2]=f,o[e+24>>2]=-1,o[e+16>>2]=n,o[e+12>>2]=r,o[e+8>>2]=i,o[e+20>>2]=e+96,w[o[A+20>>2]+32>>2]>m(0)?(r=o[A+12>>2],r=0|Zn[o[o[r>>2]+8>>2]](r,e+8|0,o[A+8>>2],0,2)):(r=o[(i=f<<2)+o[A+24>>2]>>2])||(r=o[A+12>>2],r=0|Zn[o[o[r>>2]+8>>2]](r,e+8|0,o[A+8>>2],o[A+28>>2],1),o[i+o[A+24>>2]>>2]=r,r=o[i+o[A+24>>2]>>2]),n=o[A+20>>2],t=o[n+8>>2],o[t+8>>2]!=o[o[A+4>>2]+8>>2]?(t=o[n+12>>2],c=n+12|0,i=3):(c=n+8|0,i=2),J=c,c=e+8|0,o[J>>2]=c,Zn[o[o[n>>2]+(i<<2)>>2]](n,-1,f),Zn[o[o[r>>2]+8>>2]](r,c,o[A+8>>2],o[A+16>>2],o[A+20>>2]),r=o[A+20>>2],o[(o[o[r+8>>2]+8>>2]==o[o[A+4>>2]+8>>2]?8:12)+r>>2]=t)),S=e+160|0}function PA(A,r,f){A|=0,r|=0,f|=0;var e,i,n,a=0,t=0,c=0,b=m(0),u=m(0),l=m(0),s=m(0),k=0,d=0,v=m(0),B=m(0),Q=0;S=e=S-80|0,a=o[A+4>>2],Zn[o[o[a>>2]+16>>2]](a,e+28|0,e+24|0,e+20|0,e+16|0,e+12|0,e+8|0,e+4|0,e,r),c=o[e+12>>2]+G(o[e+8>>2],f)|0,a=o[A+4>>2],i=o[e+16>>2],n=o[e+28>>2],t=o[e>>2];A:if(o[e+20>>2])3==(0|t)?(t=G(h[c+4>>1],i)+n|0,k=Z[t>>3],d=Z[t+8>>3],Q=Z[t+16>>3],b=w[a+4>>2],u=w[a+8>>2],l=w[a+12>>2],o[e+76>>2]=0,w[e+72>>2]=l*m(Q),w[e+68>>2]=u*m(d),w[e+64>>2]=b*m(k),t=G(h[c+2>>1],i)+n|0,k=Z[t>>3],d=Z[t+8>>3],Q=Z[t+16>>3],b=w[a+4>>2],u=w[a+8>>2],l=w[a+12>>2],o[e+60>>2]=0,w[e+56>>2]=l*m(Q),w[e+52>>2]=u*m(d),w[e+48>>2]=b*m(k),c=G(h[c>>1],i)+n|0,k=Z[c+8>>3],d=Z[c+16>>3],b=w[a+8>>2],u=w[a+12>>2],w[e+32>>2]=w[a+4>>2]*m(Z[c>>3]),u=m(u*m(d)),b=m(b*m(k))):(t=G(o[c+8>>2],i)+n|0,k=Z[t>>3],d=Z[t+8>>3],Q=Z[t+16>>3],b=w[a+4>>2],u=w[a+8>>2],l=w[a+12>>2],o[e+76>>2]=0,w[e+72>>2]=l*m(Q),w[e+68>>2]=u*m(d),w[e+64>>2]=b*m(k),t=G(o[c+4>>2],i)+n|0,k=Z[t>>3],d=Z[t+8>>3],Q=Z[t+16>>3],b=w[a+4>>2],u=w[a+8>>2],l=w[a+12>>2],o[e+60>>2]=0,w[e+56>>2]=l*m(Q),w[e+52>>2]=u*m(d),w[e+48>>2]=b*m(k),c=G(o[c>>2],i)+n|0,k=Z[c+8>>3],d=Z[c+16>>3],b=w[a+8>>2],u=w[a+12>>2],w[e+32>>2]=w[a+4>>2]*m(Z[c>>3]),u=m(u*m(d)),b=m(b*m(k)));else{if(3!=(0|t)){t=G(o[c+8>>2],i)+n|0,b=w[t>>2],u=w[t+4>>2],l=w[t+8>>2],s=w[a+4>>2],v=w[a+8>>2],B=w[a+12>>2],o[e+76>>2]=0,w[e+72>>2]=l*B,w[e+68>>2]=u*v,w[e+64>>2]=b*s,t=G(o[c+4>>2],i)+n|0,b=w[t>>2],u=w[t+4>>2],l=w[t+8>>2],s=w[a+4>>2],v=w[a+8>>2],B=w[a+12>>2],o[e+60>>2]=0,w[e+56>>2]=l*B,w[e+52>>2]=u*v,w[e+48>>2]=b*s,c=G(o[c>>2],i)+n|0,b=w[c+4>>2],u=w[c+8>>2],l=w[a+8>>2],s=w[a+12>>2],w[e+32>>2]=w[c>>2]*w[a+4>>2],u=m(u*s),b=m(b*l);break A}t=G(h[c+4>>1],i)+n|0,b=w[t>>2],u=w[t+4>>2],l=w[t+8>>2],s=w[a+4>>2],v=w[a+8>>2],B=w[a+12>>2],o[e+76>>2]=0,w[e+72>>2]=l*B,w[e+68>>2]=u*v,w[e+64>>2]=b*s,t=G(h[c+2>>1],i)+n|0,b=w[t>>2],u=w[t+4>>2],l=w[t+8>>2],s=w[a+4>>2],v=w[a+8>>2],B=w[a+12>>2],o[e+60>>2]=0,w[e+56>>2]=l*B,w[e+52>>2]=u*v,w[e+48>>2]=b*s,c=G(h[c>>1],i)+n|0,b=w[c+4>>2],u=w[c+8>>2],l=w[a+8>>2],s=w[a+12>>2],w[e+32>>2]=w[c>>2]*w[a+4>>2],u=m(u*s),b=m(b*l)}o[e+44>>2]=0,w[e+40>>2]=u,w[e+36>>2]=b,a=o[A+8>>2],Zn[o[o[a>>2]+8>>2]](a,e+32|0,r,f),A=o[A+4>>2],Zn[o[o[A>>2]+24>>2]](A,r),S=e+80|0}function OA(A,r,f){var e,i=0,n=0,a=m(0),t=m(0),c=m(0),b=0,u=m(0),l=m(0),s=m(0),k=0,d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0);if(S=e=S-16|0,!((0|(i=o[A+844>>2]))<=0)){for(;d=w[r+48>>2],B=w[r+8>>2],Z=w[r>>2],Q=w[r+4>>2],v=w[r+52>>2],E=w[r+24>>2],u=w[r+16>>2],W=w[r+20>>2],a=w[r+56>>2],c=w[r+40>>2],t=w[r+32>>2],h=w[r+36>>2],n=G(b=i-1|0,208)+A|0,o[n- -64>>2]=0,s=a,a=w[n+12>>2],l=m(c*a),c=w[n+4>>2],N=m(t*c),t=w[n+8>>2],h=m(s+m(l+m(N+m(h*t)))),w[n+60>>2]=h,v=m(v+m(m(a*E)+m(m(c*u)+m(t*W)))),w[n+56>>2]=v,d=m(d+m(m(a*B)+m(m(c*Z)+m(t*Q)))),w[n+52>>2]=d,B=w[f+56>>2],Z=w[f+40>>2],Q=w[f+32>>2],E=w[f+36>>2],u=w[f+52>>2],W=w[f+24>>2],N=w[f+16>>2],p=w[f+20>>2],a=w[f+48>>2],c=w[f+8>>2],t=w[f>>2],l=w[f+4>>2],o[n+48>>2]=0,s=a,a=w[n+28>>2],F=m(c*a),c=w[n+20>>2],R=m(t*c),t=w[n+24>>2],l=m(s+m(F+m(R+m(l*t)))),w[n+36>>2]=l,u=m(u+m(m(a*W)+m(m(c*N)+m(t*p)))),w[n+40>>2]=u,a=m(B+m(m(a*Z)+m(m(c*Q)+m(t*E)))),w[n+44>>2]=a,w[n+84>>2]=m(m(h-a)*w[n+76>>2])+m(m(m(d-l)*w[n+68>>2])+m(m(v-u)*w[n+72>>2])),o[n+168>>2]=o[n+168>>2]+1,n=i>>>0>1,i=b,n;);if(!((0|(r=o[A+844>>2]))<=0))for(;;){b=4+(i=G(r=(f=r)-1|0,208)+A|0)|0;A:if((a=w[i+84>>2])<=(c=w[A+848>>2]))if(t=m(w[i+44>>2]-m(w[i+60>>2]-m(a*w[i+76>>2]))),s=m(t*t),t=m(w[i+36>>2]-m(w[i+52>>2]-m(w[i+68>>2]*a))),a=m(w[i+40>>2]-m(w[i+56>>2]-m(a*w[i+72>>2]))),m(s+m(m(t*t)+m(a*a)))>m(c*c)){if((n=o[i+120>>2])&&(k=o[8785])&&(Zn[0|k](n),o[i+120>>2]=0),(0|f)!=(0|(i=o[A+844>>2]))?(pr(b,(i=G(i,208)+A|0)-204|0,208),o[168+(i=i-208|0)>>2]=0,o[i+120>>2]=0,o[i+132>>2]=0,o[i+136>>2]=0,o[i+140>>2]=0,o[i+144>>2]=0,i=o[A+844>>2]):i=f,i=i-1|0,o[A+844>>2]=i,i|!(b=o[8788]))break A;o[e+12>>2]=A,Zn[0|b](e+12|0)}else(i=o[8786])&&Zn[0|i](b,o[A+836>>2],o[A+840>>2]);else{if((n=o[i+120>>2])&&(k=o[8785])&&(Zn[0|k](n),o[i+120>>2]=0),(0|f)!=(0|(i=o[A+844>>2]))?(pr(b,(i=G(i,208)+A|0)-204|0,208),o[168+(i=i-208|0)>>2]=0,o[i+120>>2]=0,o[i+132>>2]=0,o[i+136>>2]=0,o[i+140>>2]=0,o[i+144>>2]=0,i=o[A+844>>2]):i=f,i=i-1|0,o[A+844>>2]=i,i|!(b=o[8788]))break A;o[e+8>>2]=A,Zn[0|b](e+8|0)}if(!(f>>>0>1))break}}S=e+16|0}function SA(A,r,f,e,i,n,a){var t,c=0,b=0,u=0,l=0,s=0,k=0,d=0,v=0,h=0,B=0,w=0,Z=0,m=0,Q=0,E=0,W=0,N=0;if(S=t=S-48|0,c=o[f+8>>2])for(v=c;;){if(o[v+20>>2]>o[A+100>>2]){u=o[v+12>>2],b=o[u+92>>2],l=o[u+96>>2],c=o[f+88>>2],s=o[u+88>>2],d=o[f+92>>2],u=o[f+96>>2],o[t+44>>2]=-1,u=l-u|0,o[t+40>>2]=u,b=b-d|0,o[t+36>>2]=b,l=s-c|0,o[t+32>>2]=l,s=b,b=ee(b,h=b>>31,o[i+8>>2],o[i+12>>2]),c=L,d=l,l=ee(l,B=l>>31,o[i>>2],o[i+4>>2]),c=L+c|0,c=(b=l+b|0)>>>0>>0?c+1|0:c,l=(Z=ee(u,w=u>>31,o[i+16>>2],o[i+20>>2]))+b|0,b=L+c|0,b=l>>>0>>0?b+1|0:b,c=ee(o[n+8>>2],o[n+12>>2],s,h),h=L,s=(d=ee(o[n>>2],o[n+4>>2],d,B))+c|0,c=L+h|0,c=s>>>0>>0?c+1|0:c,m=s,s=ee(o[n+16>>2],o[n+20>>2],u,w),c=L+c|0,s=c=(u=m+s|0)>>>0>>0?c+1|0:c,!!u&(0|c)>=0|(0|c)>0?(o[t+24>>2]=1,d=0,c=-1):(0|s)<0?(o[t+24>>2]=-1,c=u,u=0-u|0,s=0-(!!(0|c)+s|0)|0,d=0,c=1):(o[t+24>>2]=0,u=0,s=0,d=1,c=0),o[t+8>>2]=u,o[t+12>>2]=s;A:{r:{f:{if(s=t,!l&(0|b)<=0|(0|b)<0){if((0|b)>0|(0|b)>=0)break f;o[t+24>>2]=c,b=0-(!!(0|l)+b|0)|0,l=0-l|0}o[s+16>>2]=l,o[t+20>>2]=b;break r}if(o[t+16>>2]=0,o[t+20>>2]=0,d)break A}if(k){if((0|(u=Er(t+8|0,a)))<0)k=o[t+12>>2],o[a>>2]=o[t+8>>2],o[a+4>>2]=k,o[a+16>>2]=o[t+24>>2],k=o[t+20>>2],o[a+8>>2]=o[t+16>>2],o[a+12>>2]=k,k=v;else if(!u){W=k,b=o[k+4>>2];r:f:{if(o[k>>2]==(0|v)){if(c=2,(0|b)!=(0|v))break f;u=o[v+12>>2],b=o[o[v+8>>2]+12>>2],c=o[b+96>>2],s=o[u+96>>2]-c|0,l=o[k+12>>2],d=o[b+92>>2],h=o[l+92>>2]-d|0,d=o[u+92>>2]-d|0,c=o[l+96>>2]-c|0,k=B=G(s,h)-G(d,c)|0,m=B>>31,B=o[e+8>>2],w=o[t+36>>2],Z=o[e+4>>2],E=o[t+40>>2],Q=ee(k,m,Q=G(B,w)-G(Z,E)|0,Q>>31),k=L,b=o[b+88>>2],l=o[l+88>>2]-b|0,m=G(l,d),d=o[u+88>>2]-b|0,m=u=m-G(d,h)|0,N=u>>31,h=o[t+32>>2],b=w,w=o[e>>2],Z=ee(m,N,u=G(h,Z)-G(b,w)|0,u>>31),u=L+k|0,u=(b=Z+Q|0)>>>0>>0?u+1|0:u,k=b,l=ee(c=b=G(c,d)-G(l,s)|0,s=b>>31,b=G(w,E)-G(h,B)|0,b>>31),u=L+u|0,c=!!(b=k+l|0)&(0|(u=b>>>0>>0?u+1|0:u))>=0|(0|u)>0?2:1;break r}c=(0|b)==(0|v)}k=2!=(0|c)^r?v:W}}else k=o[t+12>>2],o[a>>2]=o[t+8>>2],o[a+4>>2]=k,o[a+16>>2]=o[t+24>>2],k=o[t+20>>2],o[a+8>>2]=o[t+16>>2],o[a+12>>2]=k,k=v}c=o[f+8>>2]}if((0|(v=o[v>>2]))==(0|c))break}return S=t+48|0,k}function LA(A,r){var f=0,e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=0,B=0,Z=m(0),G=m(0),Q=m(0);2&v[A+204|0]?(f=o[A+8>>2],o[A+68>>2]=o[A+4>>2],o[A+72>>2]=f,f=o[A+16>>2],o[A+76>>2]=o[A+12>>2],o[A+80>>2]=f,f=o[A+24>>2],o[A+84>>2]=o[A+20>>2],o[A+88>>2]=f,f=o[A+32>>2],o[A+92>>2]=o[A+28>>2],o[A+96>>2]=f,f=o[A+40>>2],o[A+100>>2]=o[A+36>>2],o[A+104>>2]=f,f=o[A+48>>2],o[A+108>>2]=o[A+44>>2],o[A+112>>2]=f,f=A+52|0):(f=o[r+4>>2],o[A+68>>2]=o[r>>2],o[A+72>>2]=f,f=o[r+12>>2],o[A+76>>2]=o[r+8>>2],o[A+80>>2]=f,f=o[r+20>>2],o[A+84>>2]=o[r+16>>2],o[A+88>>2]=f,f=o[r+28>>2],o[A+92>>2]=o[r+24>>2],o[A+96>>2]=f,f=o[r+36>>2],o[A+100>>2]=o[r+32>>2],o[A+104>>2]=f,f=o[r+44>>2],o[A+108>>2]=o[r+40>>2],o[A+112>>2]=f,f=r+48|0),h=o[f+4>>2],o[A+116>>2]=o[f>>2],o[A+120>>2]=h,h=o[f+8>>2],f=o[f+12>>2],B=o[A+400>>2],o[A+156>>2]=o[A+396>>2],o[A+160>>2]=B,B=o[A+392>>2],o[A+148>>2]=o[A+388>>2],o[A+152>>2]=B,o[A+124>>2]=h,o[A+128>>2]=f,f=o[A+376>>2],o[A+132>>2]=o[A+372>>2],o[A+136>>2]=f,f=o[A+384>>2],o[A+140>>2]=o[A+380>>2],o[A+144>>2]=f,f=o[r+12>>2],o[A+12>>2]=o[r+8>>2],o[A+16>>2]=f,f=o[r+4>>2],o[A+4>>2]=o[r>>2],o[A+8>>2]=f,f=o[r+28>>2],o[A+28>>2]=o[r+24>>2],o[A+32>>2]=f,f=o[r+20>>2],o[A+20>>2]=o[r+16>>2],o[A+24>>2]=f,f=o[r+44>>2],o[A+44>>2]=o[r+40>>2],o[A+48>>2]=f,f=o[r+36>>2],o[A+36>>2]=o[r+32>>2],o[A+40>>2]=f,f=o[r+60>>2],o[A+60>>2]=o[r+56>>2],o[A+64>>2]=f,f=o[r+52>>2],o[A+52>>2]=o[r+48>>2],o[A+56>>2]=f,b=w[A+8>>2],u=w[A+12>>2],l=w[A+28>>2],s=w[A+20>>2],k=w[A+24>>2],a=w[A+44>>2],Z=w[A+464>>2],t=w[A+36>>2],c=w[A+40>>2],G=w[A+460>>2],d=w[A+4>>2],Q=w[A+456>>2],o[A+368>>2]=0,o[A+352>>2]=0,o[A+336>>2]=0,e=m(Z*a),i=m(Q*t),n=m(G*c),w[A+364>>2]=m(a*e)+m(m(t*i)+m(c*n)),w[A+360>>2]=m(l*e)+m(m(s*i)+m(k*n)),w[A+356>>2]=m(u*e)+m(m(d*i)+m(b*n)),e=m(Z*l),i=m(Q*s),n=m(G*k),w[A+348>>2]=m(a*e)+m(m(t*i)+m(c*n)),w[A+344>>2]=m(l*e)+m(m(s*i)+m(k*n)),w[A+340>>2]=m(u*e)+m(m(d*i)+m(b*n)),e=a,a=m(u*Z),i=t,t=m(d*Q),n=c,c=m(b*G),w[A+332>>2]=m(e*a)+m(m(i*t)+m(n*c)),w[A+328>>2]=m(l*a)+m(m(s*t)+m(c*k)),w[A+324>>2]=m(u*a)+m(m(d*t)+m(b*c))}function $A(A,r,f,e,i){var n,t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0);n=-16&v[i+16|0],a[i+16|0]=n,g=w[e+8>>2],k=w[r+8>>2],G=m(g-k),s=w[A+8>>2],t=m(s-k),X=w[e>>2],d=w[r>>2],Q=m(X-d),u=w[A>>2],c=m(u-d),D=w[e+4>>2],h=w[r+4>>2],E=m(D-h),B=w[A+4>>2],b=m(B-h),l=m(m(G*t)+m(m(Q*c)+m(E*b))),F=w[f+8>>2],W=m(F-k),R=w[f>>2],N=m(R-d),Y=w[f+4>>2],p=m(Y-h),!((c=m(m(W*t)+m(m(N*c)+m(p*b))))<=m(0))|!(l<=m(0))?(t=m(s-F),b=m(u-R),Z=m(B-Y),V=m(m(G*t)+m(m(Q*b)+m(E*Z))),!((b=m(m(W*t)+m(m(N*b)+m(p*Z))))>=m(0))|!(b>=V)?(Z=m(m(c*V)-m(l*b)),!(b<=m(0))|!(c>=m(0))||(t=m(0),!(Z<=m(0)))?(t=m(s-g),u=m(u-X),B=m(B-D),s=m(m(W*t)+m(m(N*u)+m(p*B))),!((t=m(m(G*t)+m(m(Q*u)+m(E*B))))>=m(0))|!(t>=s)?(u=m(m(s*l)-m(t*c)),!(t<=m(0))|!(l>=m(0))||(c=m(0),!(u<=m(0)))?(l=m(m(b*t)-m(V*s)))<=m(0)&&(c=m(V-b))>=m(0)&&(t=m(s-t))>=m(0)?(o[i+12>>2]=0,a[i+16|0]=6|n,t=m(c/m(c+t)),w[i+8>>2]=F+m(m(g-F)*t),w[i+4>>2]=Y+m(m(D-Y)*t),w[i>>2]=R+m(m(X-R)*t),c=m(m(1)-t),b=m(0)):(o[i+12>>2]=0,a[i+16|0]=7|n,c=m(m(1)/m(Z+m(l+u))),t=m(Z*c),c=m(u*c),w[i+8>>2]=m(G*t)+m(k+m(W*c)),w[i+4>>2]=m(E*t)+m(h+m(p*c)),w[i>>2]=m(Q*t)+m(d+m(N*c)),b=m(m(m(1)-c)-t)):(o[i+12>>2]=0,a[i+16|0]=5|n,t=m(l/m(l-t)),w[i+8>>2]=k+m(G*t),w[i+4>>2]=h+m(E*t),w[i>>2]=d+m(Q*t),b=m(m(1)-t))):(A=o[e+4>>2],o[i>>2]=o[e>>2],o[i+4>>2]=A,A=o[e+12>>2],o[i+8>>2]=o[e+8>>2],o[i+12>>2]=A,a[i+16|0]=4|n,t=m(1),c=m(0),b=m(0))):(o[i+12>>2]=0,a[i+16|0]=3|n,c=m(c/m(c-b)),w[i+8>>2]=k+m(W*c),w[i+4>>2]=h+m(p*c),w[i>>2]=d+m(N*c),b=m(m(1)-c))):(A=o[f+4>>2],o[i>>2]=o[f>>2],o[i+4>>2]=A,A=o[f+12>>2],o[i+8>>2]=o[f+8>>2],o[i+12>>2]=A,a[i+16|0]=2|n,c=m(1),t=m(0),b=m(0))):(A=o[r+4>>2],o[i>>2]=o[r>>2],o[i+4>>2]=A,A=o[r+12>>2],o[i+8>>2]=o[r+8>>2],o[i+12>>2]=A,a[i+16|0]=1|n,c=m(0),t=m(0),b=m(1)),w[i+20>>2]=b,o[i+32>>2]=0,w[i+28>>2]=t,w[i+24>>2]=c}function KA(A,r,f,e,i,n){var a,t=0,c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=0,B=m(0),Z=m(0),G=0,Q=m(0),E=m(0),W=m(0),p=0,F=0,R=m(0),Y=m(0),V=m(0),g=0,X=0,D=0,C=0,J=0,x=0;if(S=a=S-32|0,o[A+56>>2]>0)for(k=w[e+8>>2],d=w[f+8>>2],b=m(k-d),v=w[e>>2],l=w[f>>2],u=m(v-l),s=w[e+4>>2],c=w[f+4>>2],B=m(s-c),Z=m(m(1)/m(N(m(m(b*b)+m(m(u*u)+m(B*B)))))),Q=m(b*Z),E=m(Q*b),b=m(u*Z),W=m(b*u),u=m(B*Z),B=m(E+m(W+m(B*u))),Z=m((k>d?k:d)+w[n+8>>2]),E=m((c>2]),W=m((l>2]),R=m((k>2]),Y=m((c>s?s:c)+w[i+4>>2]),V=m((l>v?v:l)+w[i>>2]),e=o[A+96>>2],g=((t=(k=Q==m(0)?m(0xde0b6b000000000):m(m(1)/Q))>2],o[a>>2]=o[e>>2],o[a+4>>2]=t,t=o[e+12>>2],o[a+8>>2]=o[e+8>>2],o[a+12>>2]=t,t=o[e+28>>2],o[a+24>>2]=o[e+24>>2],o[a+28>>2]=t,t=o[e+20>>2],o[a+16>>2]=o[e+16>>2],o[a+20>>2]=t,w[a>>2]=w[a>>2]-w[n>>2],w[a+4>>2]=w[a+4>>2]-w[n+4>>2],w[a+8>>2]=w[a+8>>2]-w[n+8>>2],w[a+16>>2]=w[a+16>>2]-w[i>>2],w[a+20>>2]=w[a+20>>2]-w[i+4>>2],w[a+24>>2]=w[a+24>>2]-w[i+8>>2],t=0,w[e+16>>2]>2]>W||(t=1)),h=0;A:{r:{f:{e:{if(!(1^(w[e+24>>2]>2]?h:t)|w[e+4>>2]>E|w[e+20>>2]>2],l=m(v*m(w[J>>2]-b)),c=w[f+4>>2],l>(s=m(d*m(w[C>>2]-c)))||(c=m(d*m(w[X>>2]-c)))>(b=m(v*m(w[x>>2]-b)))||(l=c>l?c:l,u=w[f+8>>2],l>(c=m(k*m(w[D>>2]-u)))||(u=m(k*m(w[g>>2]-u)))>(s=b>s?s:b))))){if(h=-1==(0|(F=o[e+32>>2])),!(t=B>(u>l?u:l)&(cm(0))|-1!=(0|F))break e;Zn[o[o[r>>2]+8>>2]](r,o[e+36>>2],o[e+40>>2]);break f}h=-1==o[e+32>>2],t=0}if(!h&&!t)break r}G=G+1|0,e=e- -64|0;break A}G=(t=o[e+32>>2])+G|0,e=(t<<6)+e|0}if(p=p+1|0,!(o[A+56>>2]>(0|G)))break}o[8502]<(0|p)&&(o[8502]=p),S=a+32|0}function qA(A){var r,f,e=0,i=0,n=0,t=0,c=0,b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=0,h=0,B=0,Z=0,Q=m(0),E=m(0);if(S=r=S+-64|0,e=o[A+8>>2],f=o[A+4>>2],i=r+48|0,n=r+32|0,Zn[o[o[e>>2]+8>>2]](e,f+4|0,i,n),e=o[A+12>>2],t=o[e+68>>2],Zn[o[o[t>>2]+16>>2]](t,o[o[A+4>>2]+188>>2],i,n,o[e+24>>2]),i=o[A+12>>2],e=o[i+24>>2],Zn[o[o[e>>2]+32>>2]](e,o[o[A+4>>2]+344>>2],i+28|0,e),o[r+24>>2]=0,o[r+16>>2]=0,o[r+20>>2]=0,a[r+28|0]=1,e=o[o[A+4>>2]+344>>2],!((0|Zn[o[o[e>>2]+36>>2]](e))<=0)){for(;;){if(!((0|(i=o[r+16>>2]))>=0)){if(o[r+20>>2]<0&&(!(e=o[r+24>>2])||!e|!v[r+28|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),a[r+28|0]=1,o[r+20>>2]=0,o[r+24>>2]=0),n=0,t=0-(e=i)&3)for(;o[o[r+24>>2]+(e<<2)>>2]=0,e=e+1|0,(0|t)!=(0|(n=n+1|0)););if(!(i>>>0>4294967292))for(;o[(i=e<<2)+o[r+24>>2]>>2]=0,o[4+(i+o[r+24>>2]|0)>>2]=0,o[8+(i+o[r+24>>2]|0)>>2]=0,o[12+(i+o[r+24>>2]|0)>>2]=0,e=e+4|0;);}if(o[r+16>>2]=0,e=o[o[A+4>>2]+344>>2],e=o[12+(0|Zn[o[o[e>>2]+28>>2]](e))>>2]+(c<<4)|0,i=o[o[o[e+4>>2]>>2]+188>>2],n=o[o[o[e>>2]>>2]+188>>2],!(!(o[i+8>>2]&o[n+4>>2])|!(o[n+8>>2]&o[i+4>>2])||((e=o[e+8>>2])&&Zn[o[o[e>>2]+16>>2]](e,r+12|0),(0|(d=o[r+16>>2]))<=0)))for(B=o[A+4>>2],i=0,Z=o[r+24>>2];;){if(t=o[(i<<2)+Z>>2],(0|(h=o[t+844>>2]))>0)for(b=o[t+836>>2]==(0|B)?m(-1):m(1),u=w[f+60>>2],l=w[f+56>>2],s=w[f+52>>2],e=0;n=t+G(e,208)|0,Q=w[n+68>>2],E=w[n+72>>2],k=w[n+84>>2],u=m(m(k*m(b*w[n+76>>2]))+u),w[f+60>>2]=u,l=m(m(k*m(b*E))+l),w[f+56>>2]=l,s=m(m(k*m(b*Q))+s),w[f+52>>2]=s,(0|h)!=(0|(e=e+1|0)););if((0|d)==(0|(i=i+1|0)))break}if(e=o[o[A+4>>2]+344>>2],c=c+1|0,!((0|Zn[o[o[e>>2]+36>>2]](e))>(0|c)))break}!(A=o[r+24>>2])|!v[r+28|0]||A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))}S=r- -64|0}function _A(A){var r,f=0,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0;if(!((0|(r=o[A+32>>2]))>=(0|(f=o[A+12>>2])))){A:if((0|f)<=o[A+36>>2])i=o[A+40>>2];else{f?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](f<<2,16),e=o[A+32>>2]):e=r,c=o[A+40>>2];r:if((0|e)>0){if(e>>>0>=4)for(l=-4&e;o[(n=t<<2)+i>>2]=o[n+c>>2],o[(b=4|n)+i>>2]=o[c+b>>2],o[(b=8|n)+i>>2]=o[c+b>>2],o[(n|=12)+i>>2]=o[n+c>>2],t=t+4|0,(0|l)!=(0|(u=u+4|0)););if(!(e&=3))break r;for(;o[(n=t<<2)+i>>2]=o[n+c>>2],t=t+1|0,(0|e)!=(0|(s=s+1|0)););}else if(!c){o[A+40>>2]=i,o[A+36>>2]=f,a[A+44|0]=1;break A}c&&v[A+44|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](c)),o[A+40>>2]=i,a[A+44|0]=1,o[A+36>>2]=f}if(Af((e=r<<2)+i|0,0,(l=f<<2)-e|0),o[A+32>>2]=f,(0|(c=o[A+52>>2]))<(0|f)){A:if((0|f)<=o[A+56>>2])i=o[A+60>>2];else{f?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](l,16),e=o[A+52>>2]):(i=0,e=c),n=o[A+60>>2];r:if((0|e)>0){if(s=0,t=0,e>>>0>=4)for(d=-4&e,u=0;o[(b=t<<2)+i>>2]=o[n+b>>2],o[(k=4|b)+i>>2]=o[n+k>>2],o[(k=8|b)+i>>2]=o[n+k>>2],o[(b|=12)+i>>2]=o[n+b>>2],t=t+4|0,(0|d)!=(0|(u=u+4|0)););if(!(e&=3))break r;for(;o[(u=t<<2)+i>>2]=o[n+u>>2],t=t+1|0,(0|e)!=(0|(s=s+1|0)););}else if(!n){o[A+60>>2]=i,o[A+56>>2]=f,a[A- -64|0]=1;break A}n&&v[A- -64|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](n)),o[A+60>>2]=i,a[A+64|0]=1,o[A+56>>2]=f}Af((e=c<<2)+i|0,0,l-e|0)}if(o[A+52>>2]=f,(0|f)>0&&(Af(o[A+40>>2],255,l),Af(o[A+60>>2],255,l)),!((0|r)<=0))for(e=o[A+60>>2],c=o[A+16>>2],i=o[A+40>>2],t=0;f=o[o[4+(f=c+(t<<4)|0)>>2]+12>>2]<<16|o[o[f>>2]+12>>2],f=G((f=~(f<<15)+f|0)>>>10^f,9),f=~((f^=f>>>6)<<11)+f|0,f=i+((o[A+12>>2]-1&(f>>>16^f))<<2)|0,o[e+(t<<2)>>2]=o[f>>2],o[f>>2]=t,(0|r)!=(0|(t=t+1|0)););}}function Ar(A){var r,f=0,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0;if(!((0|(r=o[A+28>>2]))>=(0|(f=o[A+12>>2])))){A:if((0|f)<=o[A+32>>2])i=o[A+36>>2];else{f?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](f<<2,16),e=o[A+28>>2]):e=r,c=o[A+36>>2];r:if((0|e)>0){if(e>>>0>=4)for(l=-4&e;o[(n=t<<2)+i>>2]=o[n+c>>2],o[(b=4|n)+i>>2]=o[c+b>>2],o[(b=8|n)+i>>2]=o[c+b>>2],o[(n|=12)+i>>2]=o[n+c>>2],t=t+4|0,(0|l)!=(0|(u=u+4|0)););if(!(e&=3))break r;for(;o[(n=t<<2)+i>>2]=o[n+c>>2],t=t+1|0,(0|e)!=(0|(s=s+1|0)););}else if(!c){o[A+36>>2]=i,o[A+32>>2]=f,a[A+40|0]=1;break A}c&&v[A+40|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](c)),o[A+36>>2]=i,a[A+40|0]=1,o[A+32>>2]=f}if(Af((e=r<<2)+i|0,0,(l=f<<2)-e|0),o[A+28>>2]=f,(0|(c=o[A+48>>2]))<(0|f)){A:if((0|f)<=o[A+52>>2])i=o[A+56>>2];else{f?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](l,16),e=o[A+48>>2]):(i=0,e=c),n=o[A+56>>2];r:if((0|e)>0){if(s=0,t=0,e>>>0>=4)for(d=-4&e,u=0;o[(b=t<<2)+i>>2]=o[n+b>>2],o[(k=4|b)+i>>2]=o[n+k>>2],o[(k=8|b)+i>>2]=o[n+k>>2],o[(b|=12)+i>>2]=o[n+b>>2],t=t+4|0,(0|d)!=(0|(u=u+4|0)););if(!(e&=3))break r;for(;o[(u=t<<2)+i>>2]=o[n+u>>2],t=t+1|0,(0|e)!=(0|(s=s+1|0)););}else if(!n){o[A+56>>2]=i,o[A+52>>2]=f,a[A+60|0]=1;break A}n&&v[A+60|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](n)),o[A+56>>2]=i,a[A+60|0]=1,o[A+52>>2]=f}Af((e=c<<2)+i|0,0,l-e|0)}if(o[A+48>>2]=f,(0|f)>0&&(Af(o[A+36>>2],255,l),Af(o[A+56>>2],255,l)),!((0|r)<=0))for(e=o[A+56>>2],c=o[A+16>>2],i=o[A+36>>2],t=0;f=c+G(t,12)|0,f=o[f+4>>2]<<16|o[f>>2],f=G((f=~(f<<15)+f|0)>>>10^f,9),f=~((f^=f>>>6)<<11)+f|0,f=i+((o[A+12>>2]-1&(f>>>16^f))<<2)|0,o[e+(t<<2)>>2]=o[f>>2],o[f>>2]=t,(0|r)!=(0|(t=t+1|0)););}}function rr(A,r,f,e,i,n,a){var t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0);o[i>>2]=0,o[i+4>>2]=0,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,o[i+16>>2]=0,o[i+20>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,o[n+4>>2]=f,o[n>>2]=A,l=w[e+20>>2],s=w[e+36>>2],t=w[r+20>>2],c=w[r+36>>2],k=w[e+24>>2],d=w[r+24>>2],v=w[e+40>>2],h=w[r+40>>2],b=w[e+32>>2],B=w[e>>2],Z=w[e+16>>2],G=w[e+4>>2],Q=w[r+32>>2],E=w[r>>2],W=w[r+16>>2],N=w[r+4>>2],p=w[e+8>>2],u=w[r+8>>2],o[n+52>>2]=0,o[n+36>>2]=0,o[n+20>>2]=0,w[n+48>>2]=m(v*h)+m(m(p*u)+m(d*k)),w[n+44>>2]=m(v*c)+m(m(p*N)+m(t*k)),w[n+40>>2]=m(v*Q)+m(m(p*E)+m(W*k)),w[n+32>>2]=m(s*h)+m(m(G*u)+m(d*l)),w[n+28>>2]=m(s*c)+m(m(G*N)+m(t*l)),w[n+24>>2]=m(s*Q)+m(m(G*E)+m(W*l)),w[n+16>>2]=m(b*h)+m(m(B*u)+m(Z*d)),w[n+12>>2]=m(b*c)+m(m(B*N)+m(Z*t)),w[n+8>>2]=m(b*Q)+m(m(B*E)+m(Z*W)),Y=w[r+52>>2],V=w[e+52>>2],g=w[r+56>>2],F=w[e+56>>2],l=w[r+20>>2],s=w[r+36>>2],B=w[e+20>>2],Z=w[e+36>>2],t=w[r+24>>2],G=w[e+24>>2],c=w[r+40>>2],Q=w[e+40>>2],X=w[r+48>>2],R=w[e+48>>2],k=w[r+32>>2],d=w[r>>2],v=w[r+16>>2],h=w[r+4>>2],E=w[e+32>>2],W=w[e>>2],N=w[e+16>>2],p=w[e+4>>2],b=w[r+8>>2],u=w[e+8>>2],o[n+124>>2]=0,o[n+120>>2]=a?907:908,o[n+116>>2]=0,o[n+100>>2]=0,o[n+84>>2]=0,o[n+68>>2]=0,w[n+96>>2]=m(c*Q)+m(m(b*u)+m(G*t)),w[n+92>>2]=m(c*Z)+m(m(b*p)+m(B*t)),w[n+88>>2]=m(c*E)+m(m(b*W)+m(N*t)),w[n+80>>2]=m(s*Q)+m(m(h*u)+m(G*l)),w[n+76>>2]=m(s*Z)+m(m(h*p)+m(B*l)),w[n+72>>2]=m(s*E)+m(m(h*W)+m(N*l)),w[n- -64>>2]=m(k*Q)+m(m(d*u)+m(v*G)),w[n+60>>2]=m(k*Z)+m(m(d*p)+m(v*B)),w[n+56>>2]=m(k*E)+m(m(d*W)+m(v*N)),u=c,c=m(F-g),F=b,b=m(R-X),R=t,t=m(V-Y),w[n+112>>2]=m(u*c)+m(m(F*b)+m(R*t)),w[n+108>>2]=m(s*c)+m(m(h*b)+m(t*l)),w[n+104>>2]=m(k*c)+m(m(d*b)+m(t*v))}function fr(A,r,f){var e,i=m(0),n=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=0,k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0);S=e=S-48|0,a[A+60|0]=0,o[e+40>>2]=0,o[e+44>>2]=0,o[e+32>>2]=0,o[e+36>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,i=w[r+8>>2],t=w[A+48>>2],n=w[r>>2],k=w[A+40>>2],b=w[r+4>>2],d=w[A+44>>2],u=m(m(i*t)+m(m(n*k)+m(b*d))),c=i,i=m(t*u),h=m(c-i),c=m(d*u),B=m(b-c),b=n,n=m(k*u),l=m(b-n),u<=m(0)?(w[e+24>>2]=i,w[e+20>>2]=c,w[e+16>>2]=n,b=c,G=n,c=m(0),n=m(0)):(o[e+44>>2]=0,w[e+40>>2]=i,w[e+36>>2]=c,w[e+32>>2]=n,b=m(0),Z=i,i=m(0)),r=0,o[e+12>>2]=0,w[e+4>>2]=B,w[e>>2]=l,w[e+8>>2]=h;A:{r:{if((l=m(m(h*h)+m(m(l*l)+m(B*B))))>2],w[e+40>>2]=m(u*t)+Z,w[e+36>>2]=m(d*t)+c,w[e+32>>2]=m(k*t)+n}a[A+108|0]=0,r=kA(A,e+32|0,f,10)?2:0,s=v[A+64|0]}s||(v[A+61|0]||1==(0|Zn[o[o[A>>2]+16>>2]](A))&&(a[A+108|0]=1),r=kA(A,e,f,10)|r,v[A+61|0]||1==(0|Zn[o[o[A>>2]+16>>2]](A))&&(a[A+108|0]=0)),l>2],Z=w[A+44>>2],t=i,i=w[A+32>>2],w[e+24>>2]=t-m(i*w[A+48>>2]),w[e+20>>2]=b-m(i*Z),w[e+16>>2]=G-m(n*i)),v[A+61|0]||1==(0|Zn[o[o[A>>2]+16>>2]](A))&&(a[A+108|0]=1),v[A+65|0]&&!v[A+64|0]||(a[A+108|0]=0);A:{r:{if(kA(A,e+16|0,f,1)&&(r|=4,!(v[A+64|0]||!((f=m(m(w[A+80>>2]*w[A+48>>2])+m(m(w[A+72>>2]*w[A+40>>2])+m(w[A+76>>2]*w[A+44>>2]))))>=m(0))|!($r(w[A+28>>2])>f)))){if(a[A+60|0]=1,v[A+61|0])break A;if(1==(0|Zn[o[o[A>>2]+16>>2]](A)))break r;break A}if(v[A+61|0])break A;if(1!=(0|Zn[o[o[A>>2]+16>>2]](A)))break A}a[A+108|0]=0}return S=e+48|0,r}function er(A,r,f){var e=0,i=m(0),n=m(0),a=m(0),t=0;if(!o[A>>2])return o[A>>2]=f,void(o[f+32>>2]=0);if(e=o[r+40>>2])for(n=m(w[f>>2]+w[f+16>>2]),i=m(w[f+8>>2]+w[f+24>>2]),a=m(w[f+4>>2]+w[f+20>>2]);t=r+36|0,r=o[r+36>>2],r=o[t+(!(m(m(m(Q(m(n-m(w[r>>2]+w[r+16>>2]))))+m(Q(m(a-m(w[r+4>>2]+w[r+20>>2])))))+m(Q(m(i-m(w[r+8>>2]+w[r+24>>2])))))>2]+w[e+16>>2]))))+m(Q(m(a-m(w[e+4>>2]+w[e+20>>2])))))+m(Q(m(i-m(w[e+8>>2]+w[e+24>>2]))))))<<2)>>2],e=o[r+40>>2];);t=o[r+32>>2],(e=o[A+4>>2])?o[A+4>>2]=0:(o[8488]=o[8488]+1,e=0|Zn[o[8290]](44,16),o[e>>2]=0,o[e+4>>2]=0,o[e+40>>2]=0,o[e+32>>2]=0,o[e+36>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0),o[e+36>>2]=0,o[e+40>>2]=0,o[e+32>>2]=t,n=w[f>>2],i=w[r>>2],w[e>>2]=i>n?n:i,n=w[f+16>>2],i=w[r+16>>2],w[e+16>>2]=i>2],i=w[r+4>>2],w[e+4>>2]=i>n?n:i,n=w[f+20>>2],i=w[r+20>>2],w[e+20>>2]=i>2],i=w[r+8>>2],w[e+8>>2]=i>n?n:i,n=w[f+24>>2],i=w[r+24>>2],w[e+24>>2]=i>2]+40>>2]==(0|r))<<2)+t|0)>>2]=e,o[e+36>>2]=r,o[r+32>>2]=e,o[e+40>>2]=f,o[f+32>>2]=e,n=w[e>>2];;){if(A=e,!(!(w[(e=t)>>2]<=n)|!(w[e+4>>2]<=w[A+4>>2])|!(w[e+8>>2]<=w[A+8>>2])|!(w[e+16>>2]>=w[A+16>>2]))&&w[e+20>>2]>=w[A+20>>2]&&w[e+24>>2]>=w[A+24>>2])break A;if(A=o[e+36>>2],n=w[A>>2],r=o[e+40>>2],n=(i=w[r>>2])>n?n:i,w[e>>2]=n,i=w[A+16>>2],a=w[r+16>>2],w[e+16>>2]=i>a?i:a,i=w[A+4>>2],a=w[r+4>>2],w[e+4>>2]=i>2],a=w[r+20>>2],w[e+20>>2]=i>a?i:a,i=w[A+8>>2],a=w[r+8>>2],w[e+8>>2]=i>2],a=w[r+24>>2],w[e+24>>2]=i>a?i:a,!(t=o[e+32>>2]))break}else o[e+36>>2]=r,o[r+32>>2]=e,o[e+40>>2]=f,o[f+32>>2]=e,o[A>>2]=e}function ir(A,r,f){var e=0,i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0;if(!((a=o[A+56>>2])||((e=o[A+52>>2])?(o[A+52>>2]=o[e+8>>2],a=o[e>>2]):(o[8488]=o[8488]+1,e=0|Zn[o[8290]](12,16),i=o[A+60>>2],o[e+8>>2]=0,o[e+4>>2]=i,o[8488]=o[8488]+1,a=0|Zn[o[8290]](G(i,24),16),o[e>>2]=a,o[e+8>>2]=o[A+48>>2],o[A+48>>2]=e),(0|(t=o[e+4>>2]))<=0))){if(i=a,t>>>0>=4)for(s=-4&t,e=a;i=e+96|0,b=c+4|0,o[e+72>>2]=(0|t)>(0|b)?i:0,o[e+48>>2]=(0|t)>(3|c)?e+72|0:0,o[e+24>>2]=(0|t)>(2|c)?e+48|0:0,o[e>>2]=(0|t)>(1|c)?e+24|0:0,c=b,e=i,(0|s)!=(0|(n=n+4|0)););if(e=3&t)for(;n=i,i=i+24|0,b=b+1|0,o[n>>2]=(0|t)>(0|b)?i:0,(0|e)!=(0|(l=l+1|0)););}if(o[A+56>>2]=o[a>>2],o[a+16>>2]=0,o[a+20>>2]=0,o[a+8>>2]=0,o[a+12>>2]=0,o[a>>2]=0,o[a+4>>2]=0,!((n=o[A+56>>2])||((e=o[A+52>>2])?(o[A+52>>2]=o[e+8>>2],n=o[e>>2]):(o[8488]=o[8488]+1,e=0|Zn[o[8290]](12,16),i=o[A+60>>2],o[e+8>>2]=0,o[e+4>>2]=i,o[8488]=o[8488]+1,n=0|Zn[o[8290]](G(i,24),16),o[e>>2]=n,o[e+8>>2]=o[A+48>>2],o[A+48>>2]=e),(0|(u=o[e+4>>2]))<=0))){if(l=0,b=0,i=n,u>>>0>=4)for(s=-4&u,c=0,e=n,t=0;i=e+96|0,b=c+4|0,o[e+72>>2]=(0|u)>(0|b)?i:0,o[e+48>>2]=(3|c)<(0|u)?e+72|0:0,o[e+24>>2]=(2|c)<(0|u)?e+48|0:0,o[e>>2]=(1|c)<(0|u)?e+24|0:0,c=b,e=i,(0|s)!=(0|(t=t+4|0)););if(e=3&u)for(;c=i,i=i+24|0,b=b+1|0,o[c>>2]=(0|u)>(0|b)?i:0,(0|e)!=(0|(l=l+1|0)););}return o[A+56>>2]=o[n>>2],o[n+16>>2]=0,o[n+20>>2]=0,o[n+8>>2]=0,o[n+12>>2]=0,o[n>>2]=0,o[n+4>>2]=0,o[a+8>>2]=n,o[n+8>>2]=a,i=o[A+100>>2],o[a+20>>2]=i,o[n+20>>2]=i,o[a+12>>2]=f,o[n+12>>2]=r,o[a+16>>2]=0,o[n+16>>2]=0,r=(f=o[A+116>>2])+1|0,o[A+116>>2]=r,(0|f)>=o[A+120>>2]&&(o[A+120>>2]=r),a}function nr(A,r,f){A|=0,r|=0,f|=0;var e,i=0,n=m(0);return w[r+16>>2]=w[A+4>>2],w[r+20>>2]=w[A+8>>2],w[r+24>>2]=w[A+12>>2],w[r+28>>2]=w[A+16>>2],w[r+32>>2]=w[A+20>>2],w[r+36>>2]=w[A+24>>2],w[r+40>>2]=w[A+28>>2],w[r+44>>2]=w[A+32>>2],w[r+48>>2]=w[A+36>>2],w[r+52>>2]=w[A+40>>2],w[r+56>>2]=w[A+44>>2],w[r+60>>2]=w[A+48>>2],w[r- -64>>2]=w[A+52>>2],w[r+68>>2]=w[A+56>>2],w[r+72>>2]=w[A+60>>2],w[r+76>>2]=w[A- -64>>2],w[r+80>>2]=w[A+68>>2],w[r+84>>2]=w[A+72>>2],w[r+88>>2]=w[A+76>>2],w[r+92>>2]=w[A+80>>2],w[r+96>>2]=w[A+84>>2],w[r+100>>2]=w[A+88>>2],w[r+104>>2]=w[A+92>>2],w[r+108>>2]=w[A+96>>2],w[r+112>>2]=w[A+100>>2],w[r+116>>2]=w[A+104>>2],w[r+120>>2]=w[A+108>>2],w[r+124>>2]=w[A+112>>2],w[r+128>>2]=w[A+116>>2],w[r+132>>2]=w[A+120>>2],w[r+136>>2]=w[A+124>>2],w[r+140>>2]=w[A+128>>2],w[r+144>>2]=w[A+132>>2],w[r+148>>2]=w[A+136>>2],w[r+152>>2]=w[A+140>>2],w[r+156>>2]=w[A+144>>2],w[r+160>>2]=w[A+148>>2],w[r+164>>2]=w[A+152>>2],w[r+168>>2]=w[A+156>>2],w[r+172>>2]=w[A+160>>2],w[r+176>>2]=w[A+164>>2],w[r+180>>2]=w[A+168>>2],w[r+184>>2]=w[A+172>>2],w[r+188>>2]=w[A+176>>2],o[r+232>>2]=o[A+180>>2],n=w[A+184>>2],o[r>>2]=0,w[r+192>>2]=n,i=0|Zn[o[o[f>>2]+28>>2]](f,o[A+192>>2]),o[r+8>>2]=0,o[r+4>>2]=i,o[r+236>>2]=o[A+204>>2],o[r+240>>2]=o[A+208>>2],o[r+244>>2]=o[A+212>>2],o[r+248>>2]=o[A+220>>2],w[r+196>>2]=w[A+224>>2],w[r+200>>2]=w[A+228>>2],w[r+204>>2]=w[A+236>>2],w[r+208>>2]=w[A+244>>2],w[r+212>>2]=w[A+248>>2],w[r+216>>2]=w[A+232>>2],o[r+252>>2]=o[A+252>>2],i=0|Zn[o[o[f>>2]+40>>2]](f,A),e=0|Zn[o[o[f>>2]+28>>2]](f,i),o[r+12>>2]=e,e&&Zn[o[o[f>>2]+48>>2]](f,i),w[r+220>>2]=w[A+268>>2],w[r+224>>2]=w[A+272>>2],w[r+228>>2]=w[A+276>>2],A=o[A+280>>2],o[r+260>>2]=0,o[r+256>>2]=A,8805}function ar(A,r,f){var e,i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0,v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=0;if(S=e=S-256|0,A){for(v=w[r+24>>2],h=w[r+20>>2],B=w[r+16>>2],Z=w[r+8>>2],G=w[r+4>>2],Q=w[r>>2],o[e>>2]=A,i=e,A=64,r=1;;){A:{r:{f:{if(c=o[(s=(n=r-1|0)<<2)+i>>2],!(!(w[c>>2]<=B)|!(w[c+16>>2]>=Q)|!(w[c+4>>2]<=h)|!(w[c+20>>2]>=G)||!(w[c+8>>2]<=v)|!(w[c+24>>2]>=Z))){if(o[c+40>>2]){if((0|A)!=(0|n))break f;if((0|(a=A?A<<1:1))<(0|r))break f;if(a?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](a<<2,16)):n=0,A){if(b=0,u=0,A>>>0>=4)for(E=-4&A,t=0;o[(l=u<<2)+n>>2]=o[i+l>>2],o[(k=4|l)+n>>2]=o[i+k>>2],o[(k=8|l)+n>>2]=o[i+k>>2],o[(l|=12)+n>>2]=o[i+l>>2],u=u+4|0,(0|E)!=(0|(t=t+4|0)););if(A&=3)for(;o[(t=u<<2)+n>>2]=o[i+t>>2],u=u+1|0,(0|A)!=(0|(b=b+1|0)););}if(A=d,d=1,!A)break r;i&&(o[8489]=o[8489]+1,Zn[o[8291]](i));break r}Zn[o[o[f>>2]+12>>2]](f,c)}r=n;break A}a=A,n=i}if(o[n+s>>2]=o[c+36>>2],(0|r)==(0|a))if((0|r)>=(0|(A=r?r<<1:1)))A=r,i=n;else{if(A?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](A<<2,16)):i=0,!((0|r)<=0)){if(u=0,t=0,r>>>0>=4)for(l=-4&r,b=0;o[(a=t<<2)+i>>2]=o[n+a>>2],o[(s=4|a)+i>>2]=o[n+s>>2],o[(s=8|a)+i>>2]=o[n+s>>2],o[(a|=12)+i>>2]=o[n+a>>2],t=t+4|0,(0|l)!=(0|(b=b+4|0)););if(a=3&r)for(;o[(b=t<<2)+i>>2]=o[n+b>>2],t=t+1|0,(0|a)!=(0|(u=u+1|0)););}a=d,d=1,a&&n&&(o[8489]=o[8489]+1,Zn[o[8291]](n))}else A=a,i=n;o[(r<<2)+i>>2]=o[c+40>>2],r=r+1|0}if(!((0|r)>0))break}d&&i&&(o[8489]=o[8489]+1,Zn[o[8291]](i))}S=e+256|0}function tr(A,r,f,e,i){var n,a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0);S=n=S-16|0,a=w[A+52>>2],t=w[A+56>>2],b=w[A+48>>2],c=w[r>>2],u=w[r+4>>2],l=w[r+8>>2],o[i+60>>2]=0,w[i+56>>2]=t+m(l*e),w[i+52>>2]=a+m(u*e),w[i+48>>2]=b+m(c*e),b=w[f+8>>2],s=w[f>>2],k=w[f+4>>2],a=(a=m(m(b*b)+m(m(s*s)+m(k*k))))>m(1.1920928955078125e-7)?m(N(a)):m(0),a=(t=m(a*e)>m(.7853981852531433)?m(m(.7853981852531433)/e):a)>2],u=w[n+12>>2],t=$r(m(m(t*e)*m(.5))),l=w[n>>2],s=m(s*a),k=m(k*a),d=m(b*a),v=w[n+8>>2],a=m(m(m(m(u*t)-m(l*s))-m(c*k))-m(d*v)),b=m(m(m(s*c)+m(m(t*v)+m(d*u)))-m(k*l)),e=m(m(m(k*v)+m(m(t*l)+m(s*u)))-m(d*c)),t=m(m(m(d*l)+m(m(t*c)+m(k*u)))-m(s*v)),(c=m(m(a*a)+m(m(b*b)+m(m(e*e)+m(t*t)))))>m(1.1920928955078125e-7)&&(c=m(m(1)/m(N(c))),a=m(a*c),b=m(b*c),e=m(e*c),t=m(t*c),c=m(m(a*a)+m(m(b*b)+m(m(e*e)+m(t*t))))),c>m(1.1920928955078125e-7)?(o[i+12>>2]=0,o[i+44>>2]=0,o[i+28>>2]=0,u=m(m(2)/c),c=m(b*u),l=m(t*c),s=m(e*u),k=m(a*s),w[i+36>>2]=l+k,d=m(e*c),u=m(t*u),v=m(a*u),w[i+32>>2]=d-v,w[i+24>>2]=l-k,l=m(e*u),a=m(a*c),w[i+16>>2]=l+a,w[i+8>>2]=d+v,w[i+4>>2]=l-a,e=m(e*s),a=m(t*u),w[i+40>>2]=m(1)-m(e+a),t=e,e=m(b*c),w[i+20>>2]=m(1)-m(t+e),w[i>>2]=m(1)-m(a+e)):(r=o[A+4>>2],o[i>>2]=o[A>>2],o[i+4>>2]=r,r=o[A+12>>2],o[i+8>>2]=o[A+8>>2],o[i+12>>2]=r,r=o[A+20>>2],o[i+16>>2]=o[A+16>>2],o[i+20>>2]=r,r=o[A+28>>2],o[i+24>>2]=o[A+24>>2],o[i+28>>2]=r,r=o[A+36>>2],o[i+32>>2]=o[A+32>>2],o[i+36>>2]=r,r=o[A+44>>2],o[i+40>>2]=o[A+40>>2],o[i+44>>2]=r),S=n+16|0}function or(A){var r,f,e,i=0,n=0,t=0,c=0;if(i=o[A+8>>2],r=(n=o[A+32>>2])?o[A+40>>2]:0,t=n,f=(n=o[A+52>>2])?o[A+60>>2]:0,e=n,n=o[A+72>>2],m(Zn[o[o[i>>2]+12>>2]](i,r,t,f,e,n?o[A+80>>2]:0,n,o[A+4>>2],o[A+20>>2],o[A+24>>2])),!((0|(n=o[A+32>>2]))>=0)){if(o[A+36>>2]<0&&(!(i=o[A+40>>2])||!i|!v[A+44|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),a[A+44|0]=1,o[A+36>>2]=0,o[A+40>>2]=0),t=0-(i=n)&3)for(;o[o[A+40>>2]+(i<<2)>>2]=0,i=i+1|0,(0|t)!=(0|(c=c+1|0)););if(!(n>>>0>4294967292))for(;o[(n=i<<2)+o[A+40>>2]>>2]=0,o[4+(n+o[A+40>>2]|0)>>2]=0,o[8+(n+o[A+40>>2]|0)>>2]=0,o[12+(n+o[A+40>>2]|0)>>2]=0,i=i+4|0;);}if(o[A+32>>2]=0,!((0|(n=o[A+52>>2]))>=0)){if(o[A+56>>2]<0&&(!(i=o[A+60>>2])||!i|!v[A- -64|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),a[A+64|0]=1,o[A+56>>2]=0,o[A+60>>2]=0),c=0,t=0-(i=n)&3)for(;o[o[A+60>>2]+(i<<2)>>2]=0,i=i+1|0,(0|t)!=(0|(c=c+1|0)););if(!(n>>>0>4294967292))for(;o[(n=i<<2)+o[A+60>>2]>>2]=0,o[4+(n+o[A+60>>2]|0)>>2]=0,o[8+(n+o[A+60>>2]|0)>>2]=0,o[12+(n+o[A+60>>2]|0)>>2]=0,i=i+4|0;);}if(o[A+52>>2]=0,!((0|(n=o[A+72>>2]))>=0)){if(o[A+76>>2]<0&&(!(i=o[A+80>>2])||!i|!v[A+84|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),a[A+84|0]=1,o[A+76>>2]=0,o[A+80>>2]=0),c=0,t=0-(i=n)&3)for(;o[o[A+80>>2]+(i<<2)>>2]=0,i=i+1|0,(0|t)!=(0|(c=c+1|0)););if(!(n>>>0>4294967292))for(;o[(n=i<<2)+o[A+80>>2]>>2]=0,o[4+(n+o[A+80>>2]|0)>>2]=0,o[8+(n+o[A+80>>2]|0)>>2]=0,o[12+(n+o[A+80>>2]|0)>>2]=0,i=i+4|0;);}o[A+72>>2]=0}function cr(A){var r=0;return o[(A|=0)>>2]=16876,v[A+20|0]&&((r=o[o[A+16>>2]+16>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),(r=o[A+16>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r))),v[A+12|0]&&((r=o[o[A+8>>2]+16>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),(r=o[A+8>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r))),r=o[A+28>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+28>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+32>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+32>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+36>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+36>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+40>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+40>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+44>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+44>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+48>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+48>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+52>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+52>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+56>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+56>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+72>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+72>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+76>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+76>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+68>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+68>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+84>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+84>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+80>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+80>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),r=o[A+24>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+24>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),0|A}function br(A){var r,f=0,e=0,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=0;if((0|(r=o[A+28>>2]))<=0)return 1;n=w[A+84>>2],a=w[A+68>>2],c=m(n+a),t=w[A+88>>2],i=w[A+72>>2],b=m(t+i),t=m(i-t),n=m(a-n),i=w[A+80>>2],u=w[A+64>>2],a=m(i+u),i=m(u-i),A=o[A+36>>2];A:{r:{for(;;){if(f=A+G(e,36)|0,m(w[f+32>>2]+m(m(b*w[f+28>>2])+m(m(a*w[f+20>>2])+m(c*w[f+24>>2]))))>m(0))break r;if((0|r)==(0|(e=e+1|0)))break}for(e=0;;){if(f=A+G(e,36)|0,m(w[f+32>>2]+m(m(t*w[f+28>>2])+m(m(a*w[f+20>>2])+m(c*w[f+24>>2]))))>m(0))break A;if((0|r)==(0|(e=e+1|0)))break}for(e=0;;){if(f=A+G(e,36)|0,m(w[f+32>>2]+m(m(b*w[f+28>>2])+m(m(a*w[f+20>>2])+m(n*w[f+24>>2]))))>m(0))break A;if((0|r)==(0|(e=e+1|0)))break}for(e=0;;){if(f=A+G(e,36)|0,m(w[f+32>>2]+m(m(t*w[f+28>>2])+m(m(a*w[f+20>>2])+m(n*w[f+24>>2]))))>m(0))break A;if((0|r)==(0|(e=e+1|0)))break}for(e=0;;){if(f=A+G(e,36)|0,m(w[f+32>>2]+m(m(b*w[f+28>>2])+m(m(i*w[f+20>>2])+m(c*w[f+24>>2]))))>m(0))break A;if((0|r)==(0|(e=e+1|0)))break}for(e=0;;){if(f=A+G(e,36)|0,m(w[f+32>>2]+m(m(t*w[f+28>>2])+m(m(i*w[f+20>>2])+m(c*w[f+24>>2]))))>m(0))break A;if((0|r)==(0|(e=e+1|0)))break}for(e=0;;){if(f=A+G(e,36)|0,m(w[f+32>>2]+m(m(b*w[f+28>>2])+m(m(i*w[f+20>>2])+m(n*w[f+24>>2]))))>m(0))break A;if((0|r)==(0|(e=e+1|0)))break}for(e=0;f=A+G(e,36)|0,l=!(f=m(w[f+32>>2]+m(m(t*w[f+28>>2])+m(m(i*w[f+20>>2])+m(n*w[f+24>>2]))))>m(0)),!f&&(0|r)!=(0|(e=e+1|0)););return l}return 0}return 0}function ur(A,r){var f=0,e=0,i=0,n=0,a=0,t=m(0),d=0,v=0;s(r),n=16777216+((i=c(2))<<1)>>>0<16777217;A:{r:{f:{s(A);e:{if((f=c(2))-2139095040>>>0>=2164260864){if(n)break e;break r}if(!n)break f}if(t=m(1),1065353216==(0|f))break A;if(!(a=i<<1))break A;if(!(a>>>0<4278190081&(f<<=1)>>>0<=4278190080))return m(A+r);if(2130706432==(0|f))break A;return m(f>>>0>2130706431^(0|i)>=0?0:r*r)}if(16777216+(f<<1)>>>0<16777217){if(t=m(A*A),(0|f)<0&&(t=1==(0|ge(i))?m(-t):t),(0|i)>=0)break A;return w[12+(f=S-16|0)>>2]=m(1)/t,w[f+12>>2]}if((0|f)<0){if(!(i=ge(i)))return A=m(A-A),m(A/A);a=(1==(0|i))<<16,f&=2147483647}f>>>0>8388607||(f=(2147483647&(s(m(A*m(8388608))),c(2)))-192937984|0)}if(n=(i=f-1060306944|0)>>>15&240,b(2,f-(-8388608&i)|0),d=(e=+k()*Z[n+29720>>3]-1)*e,l(+(e=((Z[3747]*e+Z[3748])*d*d+((Z[3749]*e+Z[3750])*d+(Z[3751]*e+(Z[n+29728>>3]+ +(i>>23)))))*+r)),f=0|c(1),c(0),!(1079967744==(0|(f&=2147450880))|f>>>0<1079967744)){if(e>127.99999995700433)return w[12+(f=S-16|0)>>2]=m(a?-15845632502852868e13:15845632502852868e13),m(w[f+12>>2]*m(15845632502852868e13));if(e<=-150)return w[12+(f=S-16|0)>>2]=m(a?-2524354896707238e-44:2524354896707238e-44),m(w[f+12>>2]*m(2524354896707238e-44))}e-=(v=(d=Z[3706])+e)-d,e=(Z[3707]*e+Z[3708])*e*e+Z[3709]*e+1,l(+v),c(1),f=a+(n=0|c(0))|0,i=n=o[(a=29392+((31&n)<<3)|0)>>2],f=o[a+4>>2]+(f<<15)|0,b(0,0|i),b(1,0|(i>>>0>>0?f+1:f)),t=m(e*+u())}return t}function lr(A,r,f,e,i){var n,t=0,c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=0,B=m(0);if(n=o[A+18504>>2]){if((t=o[n+48>>2])&&(o[t+44>>2]=o[n+44>>2]),(t=o[n+44>>2])&&(o[t+48>>2]=o[n+48>>2]),o[A+18504>>2]==(0|n)&&(o[A+18504>>2]=o[n+48>>2]),o[(t=A+18508|0)>>2]=o[t>>2]-1,o[n+44>>2]=0,o[n+48>>2]=o[A+18496>>2],(t=o[A+18496>>2])&&(o[t+44>>2]=n),o[A+18496>>2]=n,o[(t=A+18500|0)>>2]=o[t>>2]+1,o[n+28>>2]=e,o[n+24>>2]=f,o[n+20>>2]=r,a[n+55|0]=0,l=w[f+24>>2],B=w[e+24>>2],c=w[r+24>>2],s=w[e+20>>2],u=w[r+20>>2],k=w[f+20>>2],d=w[f+16>>2],v=w[e+16>>2],b=w[r+16>>2],o[n+12>>2]=0,d=m(d-b),s=m(s-u),b=m(v-b),k=m(k-u),u=m(m(d*s)-m(b*k)),w[n+8>>2]=u,l=m(l-c),v=m(l*b),b=m(B-c),c=m(v-m(b*d)),w[n+4>>2]=c,b=m(m(k*b)-m(s*l)),w[n>>2]=b,h=2,(c=m(N(m(m(u*u)+m(m(b*b)+m(c*c))))))>m(9999999747378752e-20)){if(bf(n,r,f,t=n+16|0)||bf(n,f,e,t)||bf(n,e,r,t)||(w[n+16>>2]=m(m(w[r+24>>2]*w[n+8>>2])+m(m(w[r+16>>2]*w[n>>2])+m(w[r+20>>2]*w[n+4>>2])))/c),c=m(m(1)/c),w[n>>2]=c*w[n>>2],w[n+4>>2]=c*w[n+4>>2],w[n+8>>2]=c*w[n+8>>2],i)return n;if(h=3,w[t>>2]>=m(-9999999747378752e-21))return n}return o[A>>2]=h,(r=o[n+48>>2])&&(o[r+44>>2]=o[n+44>>2]),(r=o[n+44>>2])&&(o[r+48>>2]=o[n+48>>2]),o[A+18496>>2]==(0|n)&&(o[A+18496>>2]=o[n+48>>2]),o[A+18500>>2]=o[A+18500>>2]-1,o[n+44>>2]=0,o[n+48>>2]=o[A+18504>>2],(r=o[A+18504>>2])&&(o[r+44>>2]=n),o[A+18504>>2]=n,o[A+18508>>2]=o[A+18508>>2]+1,0}return o[A>>2]=5,0}function sr(A,r){var f=0,e=0,i=0,n=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0;A:{r:{f:{e:{i:{if(v[A+164|0]){if((0|(f=o[(d=A+128|0)>>2]))!=o[A+132>>2])break r;if((0|(u=f?f<<1:1))<=(0|f))break r;if(u&&(o[8488]=o[8488]+1,b=0|Zn[o[8290]](u<<2,16),f=o[A+128>>2]),e=o[A+136>>2],(0|f)<=0)break i;if(f>>>0>=4)for(s=-4&f;o[(n=i<<2)+b>>2]=o[e+n>>2],o[(l=4|n)+b>>2]=o[e+l>>2],o[(l=8|n)+b>>2]=o[e+l>>2],o[(n|=12)+b>>2]=o[e+n>>2],i=i+4|0,(0|s)!=(0|(k=k+4|0)););if(!(f&=3))break e;for(;o[(n=i<<2)+b>>2]=o[e+n>>2],i=i+1|0,(0|f)!=(0|(c=c+1|0)););break e}if((0|(c=o[(d=A+148|0)>>2]))==o[A+152>>2]&&!((0|(n=c?c<<1:1))<=(0|c))){n&&(o[8488]=o[8488]+1,b=0|Zn[o[8290]](n<<1,16),c=o[A+148>>2]),f=o[A+156>>2];n:{a:{if((0|c)>0){if(c>>>0>=4)for(u=-4&c;t[(e=i<<1)+b>>1]=h[f+e>>1],t[(s=2|e)+b>>1]=h[f+s>>1],t[(s=4|e)+b>>1]=h[f+s>>1],t[(e|=6)+b>>1]=h[f+e>>1],i=i+4|0,(0|u)!=(0|(l=l+4|0)););if(e=3&c)for(;t[(u=i<<1)+b>>1]=h[f+u>>1],i=i+1|0,(0|e)!=(0|(k=k+1|0)););if(v[A+160|0])break a;break n}if(!f|!v[A+160|0])break n}f&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),c=o[A+148>>2]}o[A+156>>2]=b,o[A+152>>2]=n,a[A+160|0]=1}i=o[A+156>>2],t[i+(c<<1)>>1]=r;break A}if(!e)break f}e&&v[A+140|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](e)),f=o[A+128>>2]}o[A+136>>2]=b,o[A+132>>2]=u,a[A+140|0]=1}i=o[A+136>>2],o[i+(f<<2)>>2]=r,c=o[A+128>>2]}o[d>>2]=c+1,o[o[A+32>>2]+4>>2]=i}function kr(A,r,f,e){var i,n=m(0),a=0,t=0,c=0,b=0,u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=0,Z=0,Q=0,E=m(0),W=m(0),N=m(0);for(S=i=S-32|0;;){for(B=f,c=o[A+12>>2]+G((f+e|0)/2|0,24)|0,Z=o[c+20>>2],s=w[c+16>>2],E=w[c+8>>2],W=w[c+4>>2],N=w[c>>2],c=e;;){for(k=w[r+8>>2],u=m(E-k),n=m(u*u),d=w[r>>2],u=m(N-d),l=m(u*u),v=w[r+4>>2],u=m(W-v),u=m(n+m(l+m(u*u))),b=o[A+12>>2];;){A:{a=G(f,24)+b|0;r:{if((n=w[a+16>>2])!=s){if(n>2]-k),l=m(n*n),n=m(w[a>>2]-d),h=m(n*n),n=m(w[a+4>>2]-v),1!=(0|((n=m(l+m(h+m(n*n))))!=u?n>2]<(0|Z))))break A}f=f+1|0;continue}break}for(;;){A:{Q=G(c,24);r:{if((n=w[16+(t=Q+b|0)>>2])!=s){if(n>s)break r;break A}if(n=m(w[t+8>>2]-k),l=m(n*n),n=m(w[t>>2]-d),h=m(n*n),n=m(w[t+4>>2]-v),1!=(0|((n=m(l+m(h+m(n*n))))!=u?n>u:o[t+20>>2]>(0|Z))))break A}c=c-1|0;continue}break}if((0|f)<=(0|c)&&(b=o[a+20>>2],o[i+24>>2]=o[a+16>>2],o[i+28>>2]=b,b=o[a+12>>2],o[i+16>>2]=o[a+8>>2],o[i+20>>2]=b,b=o[a+4>>2],o[i+8>>2]=o[a>>2],o[i+12>>2]=b,b=o[t+4>>2],o[a>>2]=o[t>>2],o[a+4>>2]=b,b=o[t+12>>2],o[a+8>>2]=o[t+8>>2],o[a+12>>2]=b,b=o[t+20>>2],o[a+16>>2]=o[t+16>>2],o[a+20>>2]=b,t=o[i+12>>2],a=o[A+12>>2]+Q|0,o[a>>2]=o[i+8>>2],o[a+4>>2]=t,t=o[i+28>>2],o[a+16>>2]=o[i+24>>2],o[a+20>>2]=t,t=o[i+20>>2],o[a+8>>2]=o[i+16>>2],o[a+12>>2]=t,c=c-1|0,f=f+1|0),!((0|f)<=(0|c)))break}if((0|c)>(0|B)&&kr(A,r,B,c),!((0|f)<(0|e)))break}S=i+32|0}function dr(A,r,f){var e,i,n,t,c,b=0,u=0,l=0,s=0,k=0,d=0,h=0,B=0,w=0;if(S=i=S-32|0,u=o[A+52>>2],c=v[A+68|0],t=o[(n=c?f:r)+4>>2],!((0|u)>=(0|(e=o[t+24>>2])))){if(o[A+56>>2]<(0|e)){if(e?(o[8488]=o[8488]+1,s=0|Zn[o[8290]](e<<2,16),b=o[A+52>>2]):b=u,!((0|b)<=0)){if(b>>>0>=4)for(w=-4&b;o[(l=k<<2)+s>>2]=o[l+o[A+60>>2]>>2],o[(d=4|l)+s>>2]=o[d+o[A+60>>2]>>2],o[(d=8|l)+s>>2]=o[d+o[A+60>>2]>>2],o[(l|=12)+s>>2]=o[l+o[A+60>>2]>>2],k=k+4|0,(0|(h=h+4|0))!=(0|w););if(b&=3)for(;o[(l=k<<2)+s>>2]=o[l+o[A+60>>2]>>2],k=k+1|0,(0|b)!=(0|(B=B+1|0)););}!(b=o[A+60>>2])||!b|!v[A- -64|0]||(o[8489]=o[8489]+1,Zn[o[8291]](b)),o[A+60>>2]=s,a[A+64|0]=1,o[A+56>>2]=e}if(b=~u+e|0,s=e-u&3)for(k=0;o[o[A+60>>2]+(u<<2)>>2]=0,u=u+1|0,(0|s)!=(0|(k=k+1|0)););if(!(b>>>0<3))for(;o[(b=u<<2)+o[A+60>>2]>>2]=0,o[4+(b+o[A+60>>2]|0)>>2]=0,o[8+(b+o[A+60>>2]|0)>>2]=0,o[12+(b+o[A+60>>2]|0)>>2]=0,(0|e)!=(0|(u=u+4|0)););}if(o[A+52>>2]=e,(0|e)>0)for(r=c?r:f,u=0;o[t+72>>2]?o[o[A+60>>2]+(u<<2)>>2]=0:(f=o[n+12>>2],b=o[n+8>>2],o[i+12>>2]=o[64+(o[t+32>>2]+G(u,80)|0)>>2],o[i+28>>2]=u,o[i+24>>2]=-1,o[i+16>>2]=b,o[i+20>>2]=f,o[i+8>>2]=n,f=o[A+4>>2],f=0|Zn[o[o[f>>2]+8>>2]](f,i+8|0,r,o[A+72>>2],1),o[o[A+60>>2]+(u<<2)>>2]=f),(0|e)!=(0|(u=u+1|0)););S=i+32|0}function vr(A,r,f,e,i,n,a,t,c,b,u){var l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0);h=w[32+(a=(a<<2)+c|0)>>2],B=m(w[b+56>>2]-w[c+56>>2]),Z=w[a>>2],E=m(w[b+48>>2]-w[c+48>>2]),d=w[a+16>>2],W=m(w[b+52>>2]-w[c+52>>2]),G=m(m(h*B)+m(m(Z*E)+m(d*W))),p=w[32+(a=(t<<2)+b|0)>>2],F=w[a>>2],R=w[a+16>>2],k=m(-m(m(p*B)+m(m(F*E)+m(R*W)))),v=m(m(h*p)+m(m(Z*F)+m(d*R))),(s=m(m(1)-m(v*v)))!=m(0)&&((l=m(-f))>(s=m(m(m(k*v)+G)/s))||(l=s)>f&&(l=f));A:{if((s=m(m(l*v)+k))<(k=m(-i))){if((l=m(-f))>(i=m(m(k*v)+G))){s=k;break A}if(!(f(k=m(m(i*v)+G))){s=i;break A}if(!(fm(.7071067690849304)){o[A>>2]=0,e=m(m(1)/m(N(m(m(d*d)+m(h*h))))),f=m(d*e),w[A+8>>2]=f,l=m(e*m(-h)),w[A+4>>2]=l,e=m(0);break A}o[A+8>>2]=0,f=m(m(1)/m(N(m(m(Z*Z)+m(d*d))))),l=m(Z*f),w[A+4>>2]=l,e=m(f*m(-d)),w[A>>2]=e,f=m(0)}else o[A+12>>2]=0,e=m(m(-1)/G),f=m(f*e),w[A+8>>2]=f,l=m(u*e),w[A+4>>2]=l,e=m(i*e),w[A>>2]=e;i=w[b+48>>2],u=w[b+52>>2],d=w[b+56>>2],o[r+12>>2]=0,w[r+8>>2]=m(k+d)+m(f*n),w[r+4>>2]=m(s+u)+m(l*n),w[r>>2]=m(v+i)+m(e*n)}return B}function hr(A,r,f){A|=0,r|=0,f|=0;var e=0,i=0,n=0,a=0,t=0,c=m(0),b=0,u=0,l=0;if(u=r,l=0|Zn[o[o[f>>2]+28>>2]](f,o[A+28>>2]),o[u>>2]=l,u=r,l=0|Zn[o[o[f>>2]+28>>2]](f,o[A+32>>2]),o[u+4>>2]=l,e=0|Zn[o[o[f>>2]+40>>2]](f,A),n=0|Zn[o[o[f>>2]+28>>2]](f,e),o[r+8>>2]=n,n&&Zn[o[o[f>>2]+48>>2]](f,e),o[r+12>>2]=o[A+4>>2],o[r+24>>2]=v[A+21|0],o[r+40>>2]=o[A+24>>2],w[r+44>>2]=w[A+16>>2],o[r+48>>2]=v[A+20|0],o[r+20>>2]=o[A+12>>2],o[r+16>>2]=o[A+8>>2],w[r+28>>2]=w[A+36>>2],c=w[A+40>>2],f=0,o[r+36>>2]=0,w[r+32>>2]=c,e=o[A+28>>2],!((0|(i=o[e+548>>2]))<=0)){if(n=o[e+556>>2],i>>>0>=4)for(t=-4&i,e=0;o[(a=f<<2)+n>>2]==(0|A)&&(o[r+36>>2]=1),o[n+(4|a)>>2]==(0|A)&&(o[r+36>>2]=1),o[n+(8|a)>>2]==(0|A)&&(o[r+36>>2]=1),o[n+(12|a)>>2]==(0|A)&&(o[r+36>>2]=1),f=f+4|0,(0|t)!=(0|(e=e+4|0)););if(i&=3)for(e=0;o[n+(f<<2)>>2]==(0|A)&&(o[r+36>>2]=1),f=f+1|0,(0|i)!=(0|(e=e+1|0)););}if(f=o[A+32>>2],!((0|(i=o[f+548>>2]))<=0)){if(n=o[f+556>>2],e=0,f=0,i>>>0>=4)for(b=-4&i,t=0;o[(a=f<<2)+n>>2]==(0|A)&&(o[r+36>>2]=1),o[n+(4|a)>>2]==(0|A)&&(o[r+36>>2]=1),o[n+(8|a)>>2]==(0|A)&&(o[r+36>>2]=1),o[n+(12|a)>>2]==(0|A)&&(o[r+36>>2]=1),f=f+4|0,(0|b)!=(0|(t=t+4|0)););if(i&=3)for(;o[n+(f<<2)>>2]==(0|A)&&(o[r+36>>2]=1),f=f+1|0,(0|i)!=(0|(e=e+1|0)););}return 8778}function Br(A,r){var f=0,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0;if(o[A+12>>2]=0,a[A+16|0]=1,o[A+4>>2]=0,o[A+8>>2]=0,(0|(n=o[r+4>>2]))<=0)o[A+4>>2]=n;else{if(o[8488]=o[8488]+1,e=0|Zn[o[8290]](n<<2,16),!((0|(b=o[A+4>>2]))<=0)){if(b>>>0>=4)for(l=-4&b;o[(t=f<<2)+e>>2]=o[t+o[A+12>>2]>>2],o[(u=4|t)+e>>2]=o[u+o[A+12>>2]>>2],o[(u=8|t)+e>>2]=o[u+o[A+12>>2]>>2],o[(t|=12)+e>>2]=o[t+o[A+12>>2]>>2],f=f+4|0,(0|l)!=(0|(i=i+4|0)););if(i=3&b)for(;o[(t=f<<2)+e>>2]=o[t+o[A+12>>2]>>2],f=f+1|0,(0|i)!=(0|(c=c+1|0)););}if(!(f=o[A+12>>2])||!f|!v[A+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+12>>2]=e,a[A+16|0]=1,o[A+8>>2]=n,i=0,f=0,n>>>0>=4)for(t=-4&n,c=0;o[(e=f<<2)+o[A+12>>2]>>2]=0,o[o[A+12>>2]+(4|e)>>2]=0,o[o[A+12>>2]+(8|e)>>2]=0,o[o[A+12>>2]+(12|e)>>2]=0,f=f+4|0,(0|t)!=(0|(c=c+4|0)););if(c=3&n)for(;o[o[A+12>>2]+(f<<2)>>2]=0,f=f+1|0,(0|c)!=(0|(i=i+1|0)););if(o[A+4>>2]=n,!((0|n)<=0)){if(A=o[A+12>>2],c=0,f=0,n>>>0>=4)for(t=-4&n,i=0;o[(e=f<<2)+A>>2]=o[e+o[r+12>>2]>>2],o[(b=4|e)+A>>2]=o[b+o[r+12>>2]>>2],o[(b=8|e)+A>>2]=o[b+o[r+12>>2]>>2],o[(e|=12)+A>>2]=o[e+o[r+12>>2]>>2],f=f+4|0,(0|t)!=(0|(i=i+4|0)););if(n&=3)for(;o[(i=f<<2)+A>>2]=o[i+o[r+12>>2]>>2],f=f+1|0,(0|n)!=(0|(c=c+1|0)););}}}function wr(A,r,f,e){r|=0,f|=0,e|=0;var i,n,t,c=0,b=0,u=0,l=0,s=0,k=0,d=0,h=0,B=0;if(S=i=S-96|0,c=o[8+(A|=0)>>2],o[r+216>>2]=c,o[A+12>>2]==(0|c)&&!((0|(k=c?c<<1:1))<=(0|c))){if(k&&(o[8488]=o[8488]+1,u=0|Zn[o[8290]](k<<2,16),c=o[A+8>>2]),!((0|c)<=0)){if(c>>>0>=4)for(d=-4&c;o[(b=l<<2)+u>>2]=o[b+o[A+16>>2]>>2],o[(s=4|b)+u>>2]=o[s+o[A+16>>2]>>2],o[(s=8|b)+u>>2]=o[s+o[A+16>>2]>>2],o[(b|=12)+u>>2]=o[b+o[A+16>>2]>>2],l=l+4|0,(0|d)!=(0|(h=h+4|0)););if(b=3&c)for(;o[(d=l<<2)+u>>2]=o[d+o[A+16>>2]>>2],l=l+1|0,(0|b)!=(0|(B=B+1|0)););}!(l=o[A+16>>2])|!v[A+20|0]||(l&&(o[8489]=o[8489]+1,Zn[o[8291]](l)),c=o[A+8>>2]),o[A+16>>2]=u,a[A+20|0]=1,o[A+12>>2]=k}o[o[A+16>>2]+(c<<2)>>2]=r,o[A+8>>2]=c+1,c=o[r+16>>2],o[i+40>>2]=o[r+12>>2],o[i+44>>2]=c,c=o[r+8>>2],o[i+32>>2]=o[r+4>>2],o[i+36>>2]=c,c=o[r+32>>2],o[i+56>>2]=o[r+28>>2],o[i+60>>2]=c,c=o[r+24>>2],o[i+48>>2]=o[r+20>>2],o[i+52>>2]=c,c=o[r+48>>2],o[i+72>>2]=o[r+44>>2],o[i+76>>2]=c,c=o[r+40>>2],o[i+64>>2]=o[r+36>>2],o[i+68>>2]=c,c=o[r+64>>2],o[i+88>>2]=o[r+60>>2],o[i+92>>2]=c,c=o[r+56>>2],o[i+80>>2]=o[r+52>>2],o[i+84>>2]=c,c=o[r+192>>2],u=i+16|0,Zn[o[o[c>>2]+8>>2]](c,i+32|0,u,i),c=o[A+68>>2],n=r,t=0|Zn[o[o[c>>2]+8>>2]](c,u,i,o[o[r+192>>2]+4>>2],r,f,e,o[A+24>>2]),o[n+188>>2]=t,S=i+96|0}function Zr(A,r){var f,e=0,i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0;if(S=f=S-32|0,o[A>>2]&&!((0|(a=(0|r)<0?o[A+12>>2]:r))<=0))for(;;){if(t=0,r=o[A>>2],o[(n=r+40|0)>>2])for(;(i=o[r+32>>2])>>>0<=r>>>0?i=r:(l=(0|(e=o[i+40>>2]))==(0|r),b=o[36+((c=((0|r)!=(0|e))<<2)+i|0)>>2],u=(e=o[i+32>>2])?36+(((o[e+40>>2]==(0|i))<<2)+e|0)|0:A,o[u>>2]=r,o[b+32>>2]=r,o[i+32>>2]=r,o[r+32>>2]=e,o[i+36>>2]=o[r+36>>2],o[i+40>>2]=o[n>>2],o[o[r+36>>2]+32>>2]=i,o[o[n>>2]+32>>2]=i,o[(e=r+36|0)+(l<<2)>>2]=i,o[e+c>>2]=b,n=o[4+(e=i+24|0)>>2],o[f+24>>2]=o[e>>2],o[f+28>>2]=n,n=o[4+(e=i+16|0)>>2],o[f+16>>2]=o[e>>2],o[f+20>>2]=n,n=o[4+(e=i+8|0)>>2],o[f+8>>2]=o[e>>2],o[f+12>>2]=n,e=o[i+4>>2],o[f>>2]=o[i>>2],o[f+4>>2]=e,n=o[4+(e=r+24|0)>>2],o[i+24>>2]=o[e>>2],o[i+28>>2]=n,n=o[4+(e=r+16|0)>>2],o[i+16>>2]=o[e>>2],o[i+20>>2]=n,n=o[4+(e=r+8|0)>>2],o[i+8>>2]=o[e>>2],o[i+12>>2]=n,e=o[r+4>>2],o[i>>2]=o[r>>2],o[i+4>>2]=e,e=o[f+28>>2],o[r+24>>2]=o[f+24>>2],o[r+28>>2]=e,e=o[f+20>>2],o[r+16>>2]=o[f+16>>2],o[r+20>>2]=e,e=o[f+12>>2],o[r+8>>2]=o[f+8>>2],o[r+12>>2]=e,e=o[f+4>>2],o[r>>2]=o[f>>2],o[r+4>>2]=e),r=o[A+16>>2]>>>t|0,t=t+1&31,r=o[36+(((1&r)<<2)+i|0)>>2],o[(n=r+40|0)>>2];);if(er(A,(i=Jr(A,r))?o[A>>2]:0,r),o[A+16>>2]=o[A+16>>2]+1,!(a=a-1|0))break}S=f+32|0}function Gr(A){var r=0;return o[(A|=0)>>2]=23860,!(r=o[A+204>>2])||!r|!v[A+208|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+204>>2]=0,a[A+208|0]=1,o[A+196>>2]=0,o[A+200>>2]=0,!(r=o[A+176>>2])||!r|!v[A+180|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+176>>2]=0,a[A+180|0]=1,o[A+168>>2]=0,o[A+172>>2]=0,!(r=o[A+156>>2])||!r|!v[A+160|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+156>>2]=0,a[A+160|0]=1,o[A+148>>2]=0,o[A+152>>2]=0,!(r=o[A+136>>2])||!r|!v[A+140|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+136>>2]=0,a[A+140|0]=1,o[A+128>>2]=0,o[A+132>>2]=0,!(r=o[A+116>>2])||!r|!v[A+120|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+116>>2]=0,a[A+120|0]=1,o[A+108>>2]=0,o[A+112>>2]=0,!(r=o[A+96>>2])||!r|!v[A+100|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+96>>2]=0,a[A+100|0]=1,o[A+88>>2]=0,o[A+92>>2]=0,!(r=o[A+76>>2])||!r|!v[A+80|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+76>>2]=0,a[A+80|0]=1,o[A+68>>2]=0,o[A+72>>2]=0,!(r=o[A+56>>2])||!r|!v[A+60|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+56>>2]=0,a[A+60|0]=1,o[A+48>>2]=0,o[A+52>>2]=0,!(r=o[A+36>>2])||!r|!v[A+40|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+36>>2]=0,a[A+40|0]=1,o[A+28>>2]=0,o[A+32>>2]=0,!(r=o[A+16>>2])||!r|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+16>>2]=0,a[A+20|0]=1,o[A+8>>2]=0,o[A+12>>2]=0,0|A}function mr(A,r,f,e,i,n){var a;return o[A+4>>2]=r,o[A>>2]=23264,r=o[f+12>>2],o[A+16>>2]=o[f+8>>2],o[A+20>>2]=r,r=o[f+4>>2],o[A+8>>2]=o[f>>2],o[A+12>>2]=r,r=o[f+28>>2],o[A+32>>2]=o[f+24>>2],o[A+36>>2]=r,r=o[f+20>>2],o[A+24>>2]=o[f+16>>2],o[A+28>>2]=r,r=o[f+44>>2],o[A+48>>2]=o[f+40>>2],o[A+52>>2]=r,r=o[f+36>>2],o[A+40>>2]=o[f+32>>2],o[A+44>>2]=r,a=o[f+60>>2],o[(r=A- -64|0)>>2]=o[f+56>>2],o[r+4>>2]=a,r=o[f+52>>2],o[A+56>>2]=o[f+48>>2],o[A+60>>2]=r,r=o[e+12>>2],o[A+80>>2]=o[e+8>>2],o[A+84>>2]=r,r=o[e+4>>2],o[A+72>>2]=o[e>>2],o[A+76>>2]=r,r=o[e+28>>2],o[A+96>>2]=o[e+24>>2],o[A+100>>2]=r,r=o[e+20>>2],o[A+88>>2]=o[e+16>>2],o[A+92>>2]=r,r=o[e+44>>2],o[A+112>>2]=o[e+40>>2],o[A+116>>2]=r,r=o[e+36>>2],o[A+104>>2]=o[e+32>>2],o[A+108>>2]=r,r=o[e+60>>2],o[A+128>>2]=o[e+56>>2],o[A+132>>2]=r,r=o[e+52>>2],o[A+120>>2]=o[e+48>>2],o[A+124>>2]=r,r=o[i+12>>2],o[A+144>>2]=o[i+8>>2],o[A+148>>2]=r,r=o[i+4>>2],o[A+136>>2]=o[i>>2],o[A+140>>2]=r,r=o[i+28>>2],o[A+160>>2]=o[i+24>>2],o[A+164>>2]=r,r=o[i+20>>2],o[A+152>>2]=o[i+16>>2],o[A+156>>2]=r,r=o[i+44>>2],o[A+176>>2]=o[i+40>>2],o[A+180>>2]=r,r=o[i+36>>2],o[A+168>>2]=o[i+32>>2],o[A+172>>2]=r,r=o[i+60>>2],o[A+192>>2]=o[i+56>>2],o[A+196>>2]=r,r=o[i+52>>2],o[A+184>>2]=o[i+48>>2],o[A+188>>2]=r,o[A+208>>2]=0,w[A+204>>2]=n,o[A+200>>2]=1065353216,A}function Qr(A){var r;return o[A+132>>2]=0,o[A+136>>2]=0,o[A+188>>2]=0,o[A+192>>2]=0,o[A+180>>2]=0,o[A+184>>2]=1566444395,o[A+164>>2]=1065353216,o[A+168>>2]=1065353216,o[A+276>>2]=0,o[A+280>>2]=0,o[A+268>>2]=1065353216,o[A+272>>2]=0,o[A+260>>2]=-1,o[A+264>>2]=-1,o[A+252>>2]=1,o[A+256>>2]=0,o[A+244>>2]=1036831949,o[A+248>>2]=1176256512,o[A+236>>2]=0,o[A+240>>2]=0,o[A+228>>2]=1056964608,o[A+232>>2]=0,o[A+220>>2]=1,o[A+224>>2]=0,o[A+212>>2]=-1,o[A+216>>2]=-1,o[A+204>>2]=1,o[A+208>>2]=-1,o[A>>2]=13128,o[A+140>>2]=0,o[A+144>>2]=0,o[A+148>>2]=0,o[A+152>>2]=0,o[A+156>>2]=0,o[A+160>>2]=0,o[A+172>>2]=1065353216,o[A+176>>2]=0,o[A+196>>2]=0,o[A+200>>2]=0,a[A+300|0]=1,o[A+304>>2]=0,o[A+296>>2]=0,o[A+288>>2]=0,o[A+292>>2]=0,o[A+4>>2]=1065353216,o[A+8>>2]=0,o[A+12>>2]=0,o[A+16>>2]=0,o[A+20>>2]=0,o[A+24>>2]=1065353216,o[A+28>>2]=0,o[A+32>>2]=0,o[A+36>>2]=0,o[A+40>>2]=0,o[A+44>>2]=1065353216,o[A+48>>2]=0,o[A+52>>2]=0,o[A+56>>2]=0,o[A+60>>2]=0,o[(r=A- -64|0)>>2]=0,o[r+4>>2]=1065353216,o[A+72>>2]=0,o[A+76>>2]=0,o[A+80>>2]=0,o[A+84>>2]=0,o[A+88>>2]=1065353216,o[A+92>>2]=0,o[A+96>>2]=0,o[A+100>>2]=0,o[A+104>>2]=0,o[A+112>>2]=0,o[A+116>>2]=0,o[A+108>>2]=1065353216,o[A+120>>2]=0,o[A+124>>2]=0,o[A+128>>2]=0,A}function Er(A,r){var f,e=0,i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0;return(0|(i=o[A+16>>2]))!=(0|(e=o[r+16>>2]))?i-e|0:i?(f=i,n=o[r+8>>2],a=o[A+4>>2],u=ee(b=o[r+12>>2],0,l=o[A>>2],0),t=a,c=(i=L)+(a=ee(b,0,a,e=0))|0,i=L+e|0,s=n,n=ee(n,b=0,t,e),e=a>>>0>c>>>0?i+1|0:i,a=(a=L)>>>0>(i=t=a+c|0)>>>0?e+1|0:e,e=0,t=(u=(t=n)>>>0>(n=n+u|0)>>>0?e+1|0:e)+i|0,i=a,i=t>>>0>>0?i+1|0:i,c=t,u=0,a=ee(l,0,s,b),e=L+n|0,t=e=a>>>0>(b=u+a|0)>>>0?e+1|0:e,n=(0|n)==(0|e)&b>>>0>>0|e>>>0>>0,e=i,u=i=n+c|0,l=e=i>>>0>>0?e+1|0:e,n=o[r>>2],i=o[r+4>>2],r=o[A+8>>2],A=o[A+12>>2],s=r,a=ee(i,e=0,r,0),r=L,c=A,A=ee(i,e,A,0),i=L,i=A>>>0>(r=r+A|0)>>>0?i+1|0:i,A=ee(n,0,c,e),e=i,i=r,r=(r=L)>>>0>(i=c=i+r|0)>>>0?e+1|0:e,e=0,c=(a=(c=A)>>>0>(A=A+a|0)>>>0?e+1|0:e)+i|0,i=r,i=a>>>0>c>>>0?i+1|0:i,a=0,n=ee(n,0,s,0),e=L+A|0,n=e=(r=a+n|0)>>>0>>0?e+1|0:e,A=(0|A)==(0|e)&r>>>0>>0|A>>>0>e>>>0,e=i,e=(i=A)>>>0>(A=A+c|0)>>>0?e+1|0:e,i=-1,(0|e)==(0|l)&A>>>0>u>>>0|e>>>0>l>>>0||(i=1,(0|e)==(0|l)&A>>>0>>0|e>>>0>>0||(i=-1,(0|n)==(0|t)&r>>>0>b>>>0|n>>>0>t>>>0||(i=(0|n)==(0|t)&r>>>0>>0|n>>>0>>0))),G(f,i)):0}function Wr(A,r,f,e){for(var i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0,v=0,h=0,w=0,Z=0,G=0,m=0;;){for(h=f,a=o[A+12>>2]+((f+e|0)/2<<4)|0,w=o[a+8>>2],l=o[a+4>>2],u=o[a>>2],a=e;;){for(Z=o[A+12>>2];;){i=-1,c=-1,(s=o[(n=(f<<4)+Z|0)>>2])&&(c=o[s+12>>2]),i=u?o[u+12>>2]:i,b=-1,t=-1,(k=o[n+4>>2])&&(t=o[k+12>>2]),b=l?o[l+12>>2]:b;A:{r:if(!((0|i)<(0|c))){if(!((i=(0|u)==(0|s)&(0|t)>(0|b))|(0|u)!=(0|s))){if((0|l)!=(0|k))break A;if(B[n+8>>2]>w>>>0)break r;break A}if(!i)break A}f=f+1|0;continue}break}for(;;){i=(G=a<<4)+Z|0,c=-1,b=-1,b=u?o[u+12>>2]:b,(t=o[i>>2])&&(c=o[t+12>>2]),m=-1,d=-1,d=l?o[l+12>>2]:d,(v=o[i+4>>2])&&(m=o[v+12>>2]);A:{r:if(!((0|c)<(0|b))){if(!((c=(0|t)==(0|u)&(0|m)<(0|d))|(0|t)!=(0|u))){if((0|l)!=(0|v))break A;if(B[i+8>>2]>>0)break r;break A}if(!c)break A}a=a-1|0;continue}break}if((0|f)<=(0|a)&&(c=o[n+8>>2],b=o[n+12>>2],t=o[i+4>>2],o[n>>2]=o[i>>2],o[n+4>>2]=t,t=o[i+12>>2],o[n+8>>2]=o[i+8>>2],o[n+12>>2]=t,n=o[A+12>>2]+G|0,o[n+4>>2]=k,o[n+8>>2]=c,o[n+12>>2]=b,o[n>>2]=s,a=a-1|0,f=f+1|0),!((0|f)<=(0|a)))break}if((0|a)>(0|h)&&Wr(A,r,h,a),!((0|f)<(0|e)))break}}function Nr(A,r){A|=0;var f,e=0,i=0;S=f=S-48|0,e=o[4+(r|=0)>>2],i=o[A+56>>2],o[i+4>>2]=o[r>>2],o[i+8>>2]=e,e=o[r+12>>2],o[i+12>>2]=o[r+8>>2],o[i+16>>2]=e,o[f+44>>2]=0,o[f+36>>2]=0,o[f+40>>2]=0,o[f+32>>2]=1065353216,i=f+16|0,r=f+32|0,Zn[o[o[A>>2]+68>>2]](i,A,r),w[A+40>>2]=w[f+16>>2]+w[A+20>>2],o[f+32>>2]=-1082130432,Zn[o[o[A>>2]+68>>2]](f,A,r),e=o[f+12>>2],o[f+24>>2]=o[f+8>>2],o[f+28>>2]=e,e=o[f+4>>2],o[f+16>>2]=o[f>>2],o[f+20>>2]=e,w[A+24>>2]=w[f+16>>2]-w[A+20>>2],o[f+40>>2]=0,o[f+44>>2]=0,o[f+32>>2]=0,o[f+36>>2]=0,o[f+36>>2]=1065353216,Zn[o[o[A>>2]+68>>2]](i,A,r),w[A+44>>2]=w[f+20>>2]+w[A+20>>2],o[f+36>>2]=-1082130432,Zn[o[o[A>>2]+68>>2]](f,A,r),e=o[f+12>>2],o[f+24>>2]=o[f+8>>2],o[f+28>>2]=e,e=o[f+4>>2],o[f+16>>2]=o[f>>2],o[f+20>>2]=e,w[A+28>>2]=w[f+20>>2]-w[A+20>>2],o[f+40>>2]=0,o[f+44>>2]=0,o[f+40>>2]=1065353216,o[f+32>>2]=0,o[f+36>>2]=0,Zn[o[o[A>>2]+68>>2]](i,A,r),w[A+48>>2]=w[f+24>>2]+w[A+20>>2],o[f+40>>2]=-1082130432,Zn[o[o[A>>2]+68>>2]](f,A,r),r=o[f+12>>2],o[f+24>>2]=o[f+8>>2],o[f+28>>2]=r,r=o[f+4>>2],o[f+16>>2]=o[f>>2],o[f+20>>2]=r,w[A+32>>2]=w[f+24>>2]-w[A+20>>2],S=f+48|0}function pr(A,r,f){var e,i=0,n=0;if(f>>>0>=512)return j(0|A,0|r,0|f),A;e=A+f|0;A:if(3&(A^r))if(e>>>0<4)f=A;else if((i=e-4|0)>>>0>>0)f=A;else for(f=A;a[0|f]=v[0|r],a[f+1|0]=v[r+1|0],a[f+2|0]=v[r+2|0],a[f+3|0]=v[r+3|0],r=r+4|0,i>>>0>=(f=f+4|0)>>>0;);else{r:if(3&A)if(f)for(f=A;;){if(a[0|f]=v[0|r],r=r+1|0,!(3&(f=f+1|0)))break r;if(!(f>>>0>>0))break}else f=A;else f=A;if(!((i=-4&e)>>>0<64||(n=i+-64|0)>>>0>>0))for(;o[f>>2]=o[r>>2],o[f+4>>2]=o[r+4>>2],o[f+8>>2]=o[r+8>>2],o[f+12>>2]=o[r+12>>2],o[f+16>>2]=o[r+16>>2],o[f+20>>2]=o[r+20>>2],o[f+24>>2]=o[r+24>>2],o[f+28>>2]=o[r+28>>2],o[f+32>>2]=o[r+32>>2],o[f+36>>2]=o[r+36>>2],o[f+40>>2]=o[r+40>>2],o[f+44>>2]=o[r+44>>2],o[f+48>>2]=o[r+48>>2],o[f+52>>2]=o[r+52>>2],o[f+56>>2]=o[r+56>>2],o[f+60>>2]=o[r+60>>2],r=r- -64|0,n>>>0>=(f=f- -64|0)>>>0;);if(f>>>0>=i>>>0)break A;for(;o[f>>2]=o[r>>2],r=r+4|0,i>>>0>(f=f+4|0)>>>0;);}if(f>>>0>>0)for(;a[0|f]=v[0|r],r=r+1|0,(0|e)!=(0|(f=f+1|0)););return A}function Fr(A,r){var f,e,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0;if(o[A+12>>2]=0,a[A+16|0]=1,o[A+4>>2]=0,o[A+8>>2]=0,(0|(n=o[r+4>>2]))<=0)o[A+4>>2]=n;else{o[8488]=o[8488]+1,e=n<<2,f=0|Zn[o[8290]](e,16),c=o[A+12>>2];A:{r:{f:{if((0|(s=o[A+4>>2]))>0){if(s>>>0>=4)for(k=-4&s;o[(i=t<<2)+f>>2]=o[i+c>>2],o[(l=4|i)+f>>2]=o[c+l>>2],o[(l=8|i)+f>>2]=o[c+l>>2],o[(i|=12)+f>>2]=o[i+c>>2],t=t+4|0,(0|k)!=(0|(b=b+4|0)););if(i=3&s)for(;o[(b=t<<2)+f>>2]=o[c+b>>2],t=t+1|0,(0|i)!=(0|(u=u+1|0)););if(!v[A+16|0])break f}else if(!v[A+16|0]||!c){o[A+12>>2]=f,a[A+16|0]=1,o[A+8>>2]=n,Af(f,0,e),o[A+4>>2]=n;break r}c&&(o[8489]=o[8489]+1,Zn[o[8291]](c))}if(o[A+12>>2]=f,a[A+16|0]=1,o[A+8>>2]=n,Af(f,0,e),o[A+4>>2]=n,(0|n)<=0)break A}if(A=o[r+12>>2],u=0,t=0,n>>>0>=4)for(c=-4&n,b=0;o[(r=t<<2)+f>>2]=o[A+r>>2],o[(i=4|r)+f>>2]=o[A+i>>2],o[(i=8|r)+f>>2]=o[A+i>>2],o[(r|=12)+f>>2]=o[A+r>>2],t=t+4|0,(0|c)!=(0|(b=b+4|0)););if(r=3&n)for(;o[(n=t<<2)+f>>2]=o[A+n>>2],t=t+1|0,(0|r)!=(0|(u=u+1|0)););}}}function Rr(A,r){var f=m(0),e=m(0),i=0,n=m(0),a=m(0),t=m(0);if(e=w[1364+((r<<2)+A|0)>>2],i=G(r,88)+A|0,(n=w[i+968>>2])>=(a=w[i+972>>2])||(em(3.1415927410125732)&&(f=m(f+m(-6.2831854820251465))),t=m(Q(f)),(f=af(m(a-e)))m(3.1415927410125732)&&(f=m(f+m(-6.2831854820251465))),e=ta&&((f=af(m(e-a)))m(3.1415927410125732)&&(f=m(f+m(-6.2831854820251465))),t=m(Q(f)),(f=af(m(e-n)))m(3.1415927410125732)&&(f=m(f+m(-6.2831854820251465))),e=t>m(Q(f))?m(e+m(-6.2831854820251465)):e)),w[i+1048>>2]=e,i=i+1040|0,n>a)return o[1052+(G(r,88)+A|0)>>2]=0,void(o[i>>2]=0);w[i>>2]=e-n,n!=a?(A=G(r,88)+A|0,o[A+1052>>2]=4,w[A+1044>>2]=e-a):o[1052+(G(r,88)+A|0)>>2]=3}function Yr(A,r,f){var e,i,n=m(0),a=0,t=0,c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0);S=e=S-48|0,a=o[r+120>>2],i=o[r+124>>2],t=o[r>>2]+(i>>1)|0,1&i&&(a=o[a+o[t>>2]>>2]),Zn[0|a](e,t,f),c=w[f+8>>2],b=w[f+4>>2],l=w[f>>2],a=o[r+124>>2],t=o[r+4>>2]+(a>>1)|0,f=o[r+120>>2],f=1&a?o[o[t>>2]+f>>2]:f,s=w[r+16>>2],k=w[r+12>>2],d=w[r+32>>2],v=w[r+24>>2],h=w[r+28>>2],B=w[r+48>>2],n=w[r+40>>2],Z=w[r+44>>2],G=w[r+8>>2],o[e+28>>2]=0,u=n,n=m(-l),w[e+24>>2]=m(m(u*n)-m(Z*b))-m(B*c),w[e+20>>2]=m(m(v*n)-m(h*b))-m(d*c),w[e+16>>2]=m(m(G*n)-m(k*b))-m(s*c),Zn[0|f](e+32|0,t,e+16|0),W=w[r+104>>2],N=w[r- -64>>2],p=w[r+60>>2],c=w[r+108>>2],b=w[r+80>>2],l=w[r+72>>2],s=w[r+76>>2],k=w[r+112>>2],d=w[r+96>>2],v=w[r+88>>2],h=w[r+92>>2],B=w[r+56>>2],u=w[e+40>>2],Q=w[e+32>>2],E=w[e+36>>2],n=w[e>>2],Z=w[e+4>>2],G=w[e+8>>2],o[A+12>>2]=0,w[A+8>>2]=G-m(k+m(m(u*d)+m(m(Q*v)+m(E*h)))),w[A+4>>2]=Z-m(c+m(m(u*b)+m(m(Q*l)+m(E*s)))),w[A>>2]=n-m(W+m(m(u*N)+m(m(Q*B)+m(E*p)))),S=e+48|0}function Vr(A){var r=0,f=0,e=0,i=0,n=0,t=0,c=0,b=0;if(!(r=o[A+16>>2])||!r|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+16>>2]=0,a[A+20|0]=1,o[A+8>>2]=0,o[A+12>>2]=0,!(r=o[A+36>>2])||!r|!v[A+40|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+36>>2]=0,a[A+40|0]=1,o[A+28>>2]=0,o[A+32>>2]=0,!(r=o[A+56>>2])||!r|!v[A+60|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+56>>2]=0,a[A+60|0]=1,o[A+48>>2]=0,o[A+52>>2]=0,o[A+12>>2]<=1){if(o[8488]=o[8488]+1,n=0|Zn[o[8290]](24,16),!((0|(e=o[A+8>>2]))<=0)){if(r=0,1!=(0|e))for(b=-2&e;i=(f=G(r,12))+o[A+16>>2]|0,t=o[i+4>>2],o[(f=f+n|0)>>2]=o[i>>2],o[f+4>>2]=t,o[f+8>>2]=o[i+8>>2],i=(f=G(1|r,12))+o[A+16>>2]|0,t=o[i+4>>2],o[(f=f+n|0)>>2]=o[i>>2],o[f+4>>2]=t,o[f+8>>2]=o[i+8>>2],r=r+2|0,(0|(c=c+2|0))!=(0|b););1&e&&(r=(e=G(r,12))+o[A+16>>2]|0,i=o[r+4>>2],o[(e=e+n|0)>>2]=o[r>>2],o[e+4>>2]=i,o[e+8>>2]=o[r+8>>2])}!(r=o[A+16>>2])||!r|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+16>>2]=n,a[A+20|0]=1,o[A+12>>2]=2}Ar(A)}function gr(A){var r=0;return o[(A|=0)>>2]=24244,v[A+288|0]&&(r=o[A+220>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+220>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r))),(r=o[A+212>>2])&&(Zn[o[o[r>>2]>>2]](r),(r=o[A+212>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r))),v[A+289|0]&&(r=o[A+216>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+216>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r))),!(r=o[A+332>>2])||!r|!v[A+336|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+332>>2]=0,a[A+336|0]=1,o[A+324>>2]=0,o[A+328>>2]=0,!(r=o[A+304>>2])||!r|!v[A+308|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+304>>2]=0,a[A+308|0]=1,o[A+296>>2]=0,o[A+300>>2]=0,!(r=o[A+256>>2])||!r|!v[A+260|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+256>>2]=0,a[A+260|0]=1,o[A+248>>2]=0,o[A+252>>2]=0,!(r=o[A+236>>2])||!r|!v[A+240|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+236>>2]=0,a[A+240|0]=1,o[A+228>>2]=0,o[A+232>>2]=0,!(r=o[A+204>>2])||!r|!v[A+208|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+204>>2]=0,a[A+208|0]=1,o[A+196>>2]=0,o[A+200>>2]=0,0|Ff(A)}function Xr(A,r,f,e,i,n,a){var t,c=m(0),b=m(0),u=0,l=0,s=m(0),k=m(0),d=m(0);if(o[e>>2]=2139095039,o[i>>2]=-8388609,(0|(t=o[A+8>>2]))<=0)c=m(-34028234663852886e22);else{for(;l=o[A+16>>2]+(u<<4)|0,c=w[l+8>>2],b=w[l>>2],s=w[l+4>>2],k=m(m(m(c*w[r+40>>2])+m(m(b*w[r+32>>2])+m(s*w[r+36>>2])))+w[r+56>>2]),d=m(m(m(c*w[r+8>>2])+m(m(b*w[r>>2])+m(s*w[r+4>>2])))+w[r+48>>2]),b=m(m(m(c*w[r+24>>2])+m(m(b*w[r+16>>2])+m(s*w[r+20>>2])))+w[r+52>>2]),(c=m(m(k*w[f+8>>2])+m(m(d*w[f>>2])+m(b*w[f+4>>2]))))>2]&&(w[e>>2]=c,o[n+12>>2]=0,w[n+8>>2]=k,w[n+4>>2]=b,w[n>>2]=d),c>w[i>>2]&&(w[i>>2]=c,o[a+12>>2]=0,w[a+8>>2]=k,w[a+4>>2]=b,w[a>>2]=d),(0|t)!=(0|(u=u+1|0)););c=w[i>>2]}c<(b=w[e>>2])&&(w[e>>2]=c,w[i>>2]=b,r=o[n+12>>2],o[8+(A=S-16|0)>>2]=o[n+8>>2],o[A+12>>2]=r,r=o[n+4>>2],o[A>>2]=o[n>>2],o[A+4>>2]=r,r=o[a+12>>2],o[n+8>>2]=o[a+8>>2],o[n+12>>2]=r,r=o[a+4>>2],o[n>>2]=o[a>>2],o[n+4>>2]=r,r=o[A+12>>2],o[a+8>>2]=o[A+8>>2],o[a+12>>2]=r,r=o[A+4>>2],o[a>>2]=o[A>>2],o[a+4>>2]=r)}function Dr(A,r,f,e){var i,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0;for(S=i=S-16|0;;){for(s=f,t=o[A+12>>2]+((f+e|0)/2<<4)|0,k=o[t+8>>2],u=o[t+4>>2],l=o[t>>2],t=e;;){for(c=o[A+12>>2];;){A:{if(!((0|(n=o[4+(a=(f<<4)+c|0)>>2]))<(0|u))){if((0|n)!=(0|u))break A;if(!((0|(n=o[a>>2]))<(0|l))&&(0|n)!=(0|l)|o[a+8>>2]>=(0|k))break A}f=f+1|0;continue}break}for(;;){A:{if(!((0|(b=o[4+(n=(d=t<<4)+c|0)>>2]))>(0|u))){if((0|u)!=(0|b))break A;if(!((0|(b=o[n>>2]))>(0|l))&&(0|l)!=(0|b)|o[n+8>>2]<=(0|k))break A}t=t-1|0;continue}break}if((0|f)<=(0|t)&&(c=o[a+12>>2],o[i+8>>2]=o[a+8>>2],o[i+12>>2]=c,c=o[a+4>>2],o[i>>2]=o[a>>2],o[i+4>>2]=c,c=o[n+4>>2],o[a>>2]=o[n>>2],o[a+4>>2]=c,c=o[n+12>>2],o[a+8>>2]=o[n+8>>2],o[a+12>>2]=c,n=o[i+4>>2],a=o[A+12>>2]+d|0,o[a>>2]=o[i>>2],o[a+4>>2]=n,n=o[i+12>>2],o[a+8>>2]=o[i+8>>2],o[a+12>>2]=n,t=t-1|0,f=f+1|0),!((0|f)<=(0|t)))break}if((0|t)>(0|s)&&Dr(A,r,s,t),!((0|f)<(0|e)))break}S=i+16|0}function Cr(A,r,f){var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0);p=w[r+52>>2],F=w[r+56>>2],s=w[f+52>>2],k=w[f+56>>2],e=w[r+20>>2],i=w[r+24>>2],d=w[f+20>>2],v=w[f+36>>2],n=w[r+36>>2],h=w[f+24>>2],a=w[r+40>>2],B=w[f+40>>2],R=w[r+48>>2],Z=w[f+48>>2],t=w[r+16>>2],G=w[f+4>>2],c=w[r+32>>2],Q=w[f+8>>2],b=w[r+8>>2],E=w[f+32>>2],u=w[r>>2],W=w[f>>2],l=w[r+4>>2],N=w[f+16>>2],o[A+60>>2]=0,o[A+44>>2]=0,o[A+28>>2]=0,o[A+12>>2]=0,w[A>>2]=m(E*b)+m(m(W*u)+m(N*l)),w[A+40>>2]=m(B*a)+m(m(Q*c)+m(h*n)),w[A+36>>2]=m(v*a)+m(m(G*c)+m(d*n)),w[A+32>>2]=m(E*a)+m(m(W*c)+m(N*n)),w[A+24>>2]=m(B*i)+m(m(Q*t)+m(h*e)),w[A+20>>2]=m(v*i)+m(m(G*t)+m(d*e)),w[A+16>>2]=m(E*i)+m(m(W*t)+m(N*e)),w[A+8>>2]=m(B*b)+m(m(Q*u)+m(l*h)),w[A+4>>2]=m(v*b)+m(m(G*u)+m(l*d)),w[A+56>>2]=F+m(m(k*a)+m(m(Z*c)+m(n*s))),w[A+52>>2]=p+m(m(k*i)+m(m(Z*t)+m(e*s))),w[A+48>>2]=R+m(m(k*b)+m(m(Z*u)+m(l*s)))}function Jr(A,r){var f=0,e=0,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0);if(o[A>>2]==(0|r))return o[A>>2]=0,0;e=o[r+32>>2],f=o[36+(((o[e+40>>2]!=(0|r))<<2)+e|0)>>2];A:{if(r=o[e+32>>2])for(o[36+((((0|e)==o[r+40>>2])<<2)+r|0)>>2]=f,o[f+32>>2]=r,(f=o[A+4>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+4>>2]=e;;){if(h=w[r>>2],e=o[r+36>>2],i=w[e>>2],f=o[r+40>>2],i=i<(u=w[f>>2])?i:u,w[r>>2]=i,u=w[r+16>>2],n=(n=w[e+16>>2])>(l=w[f+16>>2])?n:l,w[r+16>>2]=n,l=w[r+4>>2],a=(a=w[e+4>>2])<(s=w[f+4>>2])?a:s,w[r+4>>2]=a,s=w[r+20>>2],t=(t=w[e+20>>2])>(k=w[f+20>>2])?t:k,w[r+20>>2]=t,k=w[r+8>>2],c=(c=w[e+8>>2])<(d=w[f+8>>2])?c:d,w[r+8>>2]=c,d=w[r+24>>2],b=(b=w[e+24>>2])>(v=w[f+24>>2])?b:v,w[r+24>>2]=b,!(i!=h|l!=a|k!=c|u!=n)&&s==t&&d==b)break A;if(!(r=o[r+32>>2]))break}else o[A>>2]=f,o[f+32>>2]=0,(r=o[A+4>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+4>>2]=e;r=o[A>>2]}return r}function xr(A,r,f,e){for(var i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0;;){for(k=f,s=o[o[A+12>>2]+((f+e|0)/2<<2)>>2],n=e;;){u=o[A+12>>2];A:{if(!(a=(0|(b=o[o[s+836>>2]+208>>2]))<0))for(;;)if(t=f,c=o[(l=(f<<2)+u|0)>>2],(0|(i=o[o[c+836>>2]+208>>2]))<0&&(i=o[o[c+840>>2]+208>>2]),f=t+1|0,!((0|i)<(0|b)))break A;for(d=o[o[s+840>>2]+208>>2];t=f,c=o[(l=(f<<2)+u|0)>>2],(0|(i=o[o[c+836>>2]+208>>2]))<0&&(i=o[o[c+840>>2]+208>>2]),f=t+1|0,(0|i)<(0|d););}A:{if(!a)for(;;)if(a=o[((f=n)<<2)+u>>2],(0|(i=o[o[a+836>>2]+208>>2]))<0&&(i=o[o[a+840>>2]+208>>2]),n=f-1|0,!((0|i)>(0|b)))break A;for(b=o[o[s+840>>2]+208>>2];a=o[((f=n)<<2)+u>>2],(0|(i=o[o[a+836>>2]+208>>2]))<0&&(i=o[o[a+840>>2]+208>>2]),n=f-1|0,(0|i)>(0|b););}if((0|f)<(0|t)?(n=f,f=t):(o[l>>2]=a,o[o[A+12>>2]+(f<<2)>>2]=c,n=f-1|0,f=t+1|0),!((0|f)<=(0|n)))break}if((0|n)>(0|k)&&xr(A,r,k,n),!((0|f)<(0|e)))break}}function yr(A,r,f,e){for(var i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0;;){for(k=f,s=o[o[A+12>>2]+((f+e|0)/2<<2)>>2],n=e;;){u=o[A+12>>2];A:{if(!(a=(0|(b=o[o[s+28>>2]+208>>2]))<0))for(;;)if(t=f,c=o[(l=(f<<2)+u|0)>>2],(0|(i=o[o[c+28>>2]+208>>2]))<0&&(i=o[o[c+32>>2]+208>>2]),f=t+1|0,!((0|i)<(0|b)))break A;for(d=o[o[s+32>>2]+208>>2];t=f,c=o[(l=(f<<2)+u|0)>>2],(0|(i=o[o[c+28>>2]+208>>2]))<0&&(i=o[o[c+32>>2]+208>>2]),f=t+1|0,(0|i)<(0|d););}A:{if(!a)for(;;)if(a=o[((f=n)<<2)+u>>2],(0|(i=o[o[a+28>>2]+208>>2]))<0&&(i=o[o[a+32>>2]+208>>2]),n=f-1|0,!((0|i)>(0|b)))break A;for(b=o[o[s+32>>2]+208>>2];a=o[((f=n)<<2)+u>>2],(0|(i=o[o[a+28>>2]+208>>2]))<0&&(i=o[o[a+32>>2]+208>>2]),n=f-1|0,(0|i)>(0|b););}if((0|f)<(0|t)?(n=f,f=t):(o[l>>2]=a,o[o[A+12>>2]+(f<<2)>>2]=c,n=f-1|0,f=t+1|0),!((0|f)<=(0|n)))break}if((0|n)>(0|k)&&yr(A,r,k,n),!((0|f)<(0|e)))break}}function Mr(A){var r,f,e=0,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=0,u=0;S=r=S-16|0,(e=o[A+8>>2])?(n=w[A+156>>2],i=w[A+152>>2],w[e+52>>2]=i,o[e+48>>2]=0,w[e+44>>2]=i,w[e+36>>2]=i,o[e+28>>2]=1065353216,o[e+32>>2]=0,o[e+20>>2]=1065353216,o[e+24>>2]=1065353216,o[e+60>>2]=1,w[e+40>>2]=n*m(.5)):(o[8488]=o[8488]+1,e=Ve(0|Zn[o[8290]](64,16),w[A+152>>2],w[A+156>>2]),o[A+8>>2]=e),f=o[A+4>>2],Zn[o[o[f>>2]+8>>2]](f,e),n=m(Zn[o[o[A>>2]+20>>2]](A)),i=w[A+152>>2],o[r+12>>2]=0,w[r+8>>2]=i,w[r+4>>2]=n,w[r>>2]=i,(e=o[A+104>>2])?(a=m(Zn[o[o[e>>2]+48>>2]](e)),t=m(Zn[o[o[e>>2]+48>>2]](e)),c=m(Zn[o[o[e>>2]+48>>2]](e)),o[e+48>>2]=0,w[e+44>>2]=m(i*w[e+28>>2])-c,w[e+40>>2]=m(n*w[e+24>>2])-t,w[e+36>>2]=m(i*w[e+20>>2])-a,i=m(w[((i>((A=i>2]*m(.10000000149011612)),m(Zn[o[o[e>>2]+48>>2]](e))>i&&Zn[o[o[e>>2]+44>>2]](e,i)):(o[8488]=o[8488]+1,b=A,u=tf(0|Zn[o[8290]](64,16),r),o[b+104>>2]=u),S=r+16|0}function Hr(A,r){var f=0,e=0,i=0,n=0;A:if(!((0|(e=o[A+548>>2]))<=0)){for(i=o[A+556>>2];;){if(o[i+(f<<2)>>2]!=(0|r)){if((0|e)!=(0|(f=f+1|0)))continue;break A}break}if(!((0|f)>=(0|e))){f=0;r:{for(;;){if(o[(n=i+(f<<2)|0)>>2]!=(0|r)){if((0|e)!=(0|(f=f+1|0)))continue;break r}break}(0|f)>=(0|e)||(f=(e=e-1|0)<<2,o[n>>2]=o[f+i>>2],o[f+o[A+556>>2]>>2]=r,o[A+548>>2]=e)}e=o[r+32>>2];r:if((0|(i=o[r+28>>2]))!=(0|A)){f:if(!((0|(r=o[e+288>>2]))<=0)){for(A=o[e+296>>2],f=0;;){if((0|i)!=o[(n=A+(f<<2)|0)>>2]){if((0|(f=f+1|0))!=(0|r))continue;break f}break}(0|r)<=(0|f)||(f=A,A=(r=r-1|0)<<2,o[n>>2]=o[f+A>>2],o[A+o[e+296>>2]>>2]=i,o[e+288>>2]=r)}A=e}else{if((0|(r=o[A+288>>2]))<=0)break r;for(i=o[A+296>>2],f=0;;){if((0|e)!=o[(n=i+(f<<2)|0)>>2]){if((0|(f=f+1|0))!=(0|r))continue;break r}break}if((0|r)<=(0|f))break r;f=(r=r-1|0)<<2,o[n>>2]=o[f+i>>2],o[f+o[A+296>>2]>>2]=e,o[A+288>>2]=r}o[A+280>>2]=(0|r)>0}}}function Ir(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0);i=m(Zn[o[o[A>>2]+48>>2]](A)),F=w[r+52>>2],c=w[r+24>>2],b=w[r+20>>2],u=w[r+56>>2],a=w[r+40>>2],t=w[A+72>>2],n=w[A+88>>2],l=w[r+36>>2],v=w[A+68>>2],h=w[A+84>>2],R=w[r+48>>2],B=w[r+8>>2],Z=w[r>>2],G=w[r+4>>2],E=w[r+16>>2],W=w[r+32>>2],N=w[A+64>>2],p=w[A+80>>2],o[f+12>>2]=0,s=u,u=m(m(n+t)*m(.5)),k=m(m(p+N)*m(.5)),d=m(m(h+v)*m(.5)),s=m(s+m(m(a*u)+m(m(W*k)+m(l*d)))),t=m(i+m(m(n-t)*m(.5))),n=m(t*m(Q(a))),a=m(i+m(m(p-N)*m(.5))),i=m(i+m(m(h-v)*m(.5))),n=m(n+m(m(a*m(Q(W)))+m(i*m(Q(l))))),w[f+8>>2]=s-n,l=m(F+m(m(u*c)+m(m(k*E)+m(d*b)))),c=m(m(t*m(Q(c)))+m(m(a*m(Q(E)))+m(i*m(Q(b))))),w[f+4>>2]=l-c,b=m(R+m(m(u*B)+m(m(k*Z)+m(d*G)))),i=m(m(t*m(Q(B)))+m(m(a*m(Q(Z)))+m(i*m(Q(G))))),w[f>>2]=b-i,o[e+12>>2]=0,w[e+8>>2]=n+s,w[e+4>>2]=c+l,w[e>>2]=i+b}function Tr(A,r,f,e,i,n){var t=0,c=0,b=0;A:if(v[e+55|0]!=(0|r)){if(c=o[22768+(t=i<<2)>>2],m(m(m(w[e+8>>2]*w[f+24>>2])+m(m(w[e>>2]*w[f+16>>2])+m(w[e+4>>2]*w[f+20>>2])))-w[e+16>>2])>2],o[A+t>>2],f,0)))break A;o[A+32>>2]=e,a[A+52|0]=i,a[52+(e+i|0)|0]=0,o[32+((i<<2)+e|0)>>2]=A,(r=o[n>>2])?(o[r+36>>2]=A,a[r+53|0]=2,o[A+40>>2]=r,a[A+54|0]=1):o[n+4>>2]=A,o[n>>2]=A,A=n+8|0}else{if(a[e+55|0]=r,i=o[t+22780>>2],!Tr(A,r,f,o[32+((c<<2)+e|0)>>2],v[52+(e+c|0)|0],n))break A;if(!Tr(A,r,f,o[32+((i<<2)+e|0)>>2],v[52+(e+i|0)|0],n))break A;(r=o[e+48>>2])&&(o[r+44>>2]=o[e+44>>2]),(r=o[e+44>>2])&&(o[r+48>>2]=o[e+48>>2]),o[A+18496>>2]==(0|e)&&(o[A+18496>>2]=o[e+48>>2]),o[(r=A+18500|0)>>2]=o[r>>2]-1,o[e+44>>2]=0,o[e+48>>2]=o[A+18504>>2],(r=o[A+18504>>2])&&(o[r+44>>2]=e),o[A+18504>>2]=e,A=A+18508|0}b=1,o[A>>2]=o[A>>2]+1}return b}function Ur(A,r,f){A|=0,f|=0;var e,i=0;i=o[4+(r|=0)>>2],o[A+48>>2]=o[r>>2],o[A+52>>2]=i,i=o[r+12>>2],o[A+56>>2]=o[r+8>>2],o[A+60>>2]=i,i=o[r+28>>2],o[A+72>>2]=o[r+24>>2],o[A+76>>2]=i,e=o[r+20>>2],o[(i=A- -64|0)>>2]=o[r+16>>2],o[i+4>>2]=e,i=o[r+44>>2],o[A+88>>2]=o[r+40>>2],o[A+92>>2]=i,i=o[r+36>>2],o[A+80>>2]=o[r+32>>2],o[A+84>>2]=i,i=o[r+60>>2],o[A+104>>2]=o[r+56>>2],o[A+108>>2]=i,i=o[r+52>>2],o[A+96>>2]=o[r+48>>2],o[A+100>>2]=i,r=o[f+12>>2],o[A+120>>2]=o[f+8>>2],o[A+124>>2]=r,r=o[f+4>>2],o[A+112>>2]=o[f>>2],o[A+116>>2]=r,r=o[f+20>>2],o[A+128>>2]=o[f+16>>2],o[A+132>>2]=r,r=o[f+28>>2],o[A+136>>2]=o[f+24>>2],o[A+140>>2]=r,r=o[f+36>>2],o[A+144>>2]=o[f+32>>2],o[A+148>>2]=r,r=o[f+44>>2],o[A+152>>2]=o[f+40>>2],o[A+156>>2]=r,r=o[f+60>>2],o[A+168>>2]=o[f+56>>2],o[A+172>>2]=r,r=o[f+52>>2],o[A+160>>2]=o[f+48>>2],o[A+164>>2]=r,Zn[o[o[A>>2]+8>>2]](A),fA(A,o[A+28>>2]+4|0,o[A+32>>2]+4|0)}function jr(A,r,f,e,i,n,a,t){var c,b,u,l,s,k=m(0),d=m(0),h=m(0),B=0,Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0);c=o[(a?20:16)+e>>2],B=o[(a?12:8)+e>>2],w[B+(b=i<<2)>>2]=w[n>>2],w[(l=(u=i+1|0)<<2)+B>>2]=w[n+4>>2],w[B+(s=(B=i+2|0)<<2)>>2]=w[n+8>>2],w[c+b>>2]=-w[n>>2],w[c+l>>2]=-w[n+4>>2],w[c+s>>2]=-w[n+8>>2],a||(Z=m(w[A+1352>>2]-w[f+52>>2]),d=w[n+8>>2],h=w[n+4>>2],G=m(w[A+1356>>2]-w[f+56>>2]),E=m(m(Z*d)-m(h*G)),N=m(w[A+1288>>2]-w[r+52>>2]),p=m(w[A+1292>>2]-w[r+56>>2]),W=m(m(N*d)-m(h*p)),Q=m(w[A+1348>>2]-w[f+48>>2]),k=w[n>>2],Z=m(m(Q*h)-m(k*Z)),G=m(m(G*k)-m(d*Q)),Q=m(w[A+1284>>2]-w[r+48>>2]),h=m(m(Q*h)-m(k*N)),d=m(m(p*k)-m(d*Q)),!v[A+1452|0]|t||(k=w[A+1448>>2],Z=m(k*Z),G=m(k*G),E=m(E*k),k=w[A+1444>>2],h=m(k*h),W=m(W*k),d=m(k*d)),A=(r=i<<2)+o[e+12>>2]|0,w[A+8>>2]=h,w[A+4>>2]=d,w[A>>2]=W,A=o[e+20>>2],w[A+r>>2]=-E,w[A+(u<<2)>>2]=-G,w[A+(B<<2)>>2]=-Z)}function zr(A,r){var f,e,i=0,n=0,a=m(0);if(!((2147483647&(s(A),c(2)))>>>0<2139095041&(2147483647&(s(r),c(2)))>>>0<=2139095040))return m(A+r);if(s(r),1065353216==(0|(i=c(2))))return Sr(A);e=i>>>30&2,s(A),f=e|(n=c(2))>>>31;A:{r:{f:{if(!(n&=2147483647)){e:switch(f-2|0){case 0:return m(3.1415927410125732);case 1:break e;default:break f}return m(-3.1415927410125732)}if(2139095040!=(0|(i&=2147483647))){if(!i|!(2139095040!=(0|n)&n>>>0<=i+218103808>>>0))break A;switch(e&&(a=m(0),i>>>0>n+218103808>>>0)||(a=Sr(m(Q(m(A/r))))),A=a,0|f){case 1:return m(-A);case 2:return m(m(3.1415927410125732)-m(A+m(8.742277657347586e-8)));case 0:break f}return m(m(A+m(8.742277657347586e-8))+m(-3.1415927410125732))}if(2139095040==(0|n))break r;A=w[26492+(f<<2)>>2]}return A}return w[26476+(f<<2)>>2]}return b(2,-2147483648&(s(A),c(2))|1070141403),k()}function Pr(A){return o[A>>2]=1025,o[A+120>>2]=0,o[A+124>>2]=0,o[A+128>>2]=0,o[A+132>>2]=0,o[A+136>>2]=0,o[A+140>>2]=0,o[A+144>>2]=0,o[A+148>>2]=0,o[A+152>>2]=0,o[A+156>>2]=0,o[A+160>>2]=0,o[A+164>>2]=0,o[A+168>>2]=0,o[A+328>>2]=0,o[A+332>>2]=0,o[A+336>>2]=0,o[A+340>>2]=0,o[A+344>>2]=0,o[A+348>>2]=0,o[A+352>>2]=0,o[A+356>>2]=0,o[A+360>>2]=0,o[A+364>>2]=0,o[A+368>>2]=0,o[A+372>>2]=0,o[A+376>>2]=0,o[A+536>>2]=0,o[A+540>>2]=0,o[A+544>>2]=0,o[A+548>>2]=0,o[A+552>>2]=0,o[A+556>>2]=0,o[A+560>>2]=0,o[A+564>>2]=0,o[A+568>>2]=0,o[A+572>>2]=0,o[A+576>>2]=0,o[A+580>>2]=0,o[A+584>>2]=0,o[A+792>>2]=0,o[A+784>>2]=0,o[A+788>>2]=0,o[A+776>>2]=0,o[A+780>>2]=0,o[A+768>>2]=0,o[A+772>>2]=0,o[A+760>>2]=0,o[A+764>>2]=0,o[A+752>>2]=0,o[A+756>>2]=0,o[A+744>>2]=0,o[A+748>>2]=0,o[A+836>>2]=0,o[A+840>>2]=0,o[A+864>>2]=0,o[A+844>>2]=0,A}function Or(){O(30404,8381),P(30428,6346,1,1,0),g(30440,5359,1,-128,127),g(30464,5352,1,-128,127),g(30452,5350,1,0,255),g(30476,2375,2,-32768,32767),g(30488,2366,2,0,65535),g(30500,2561,4,-2147483648,2147483647),g(30512,2552,4,0,-1),g(30524,6694,4,-2147483648,2147483647),g(30536,6685,4,0,-1),wi(30548,3510,-2147483648,2147483647),wi(30560,3509,0,-1),H(30572,3476,4),H(30584,7669,8),M(31756,6712),M(25724,10071),y(25796,4,6699),y(25872,2,6724),y(25948,4,6739),z(31464,6351),F(25988,0,10002),F(26028,0,10104),F(26068,1,10032),F(26108,2,9567),F(26148,3,9598),F(26188,4,9638),F(26228,5,9667),F(26268,4,10141),F(26308,5,10171),F(26028,0,9769),F(26068,1,9736),F(26108,2,9835),F(26148,3,9801),F(26188,4,9969),F(26228,5,9935),F(26348,8,9902),F(26388,9,9868),F(26428,6,9705),F(26468,7,10210)}function Sr(A){var r,f,e=0,i=m(0),n=m(0),a=m(0);if(s(A),(r=2147483647&(f=c(2)))>>>0>=1283457024)return(2147483647&(s(A),c(2)))>>>0>2139095040?A:(b(2,-2147483648&(s(A),c(2))|1070141402),k());A:{r:{if(r>>>0<=1054867455){if(e=-1,r>>>0>=964689920)break r;break A}if(A=m(Q(A)),r>>>0<=1066926079){if(r>>>0<=1060110335){A=m(m(m(A+A)+m(-1))/m(A+m(2))),e=0;break r}A=m(m(A+m(-1))/m(A+m(1))),e=1}else r>>>0<=1075576831?(A=m(m(A+m(-1.5))/m(m(A*m(1.5))+m(1))),e=2):(A=m(m(-1)/A),e=3)}if(n=m(A*A),i=m(n*n),a=m(i*m(m(i*m(-.106480173766613))+m(-.19999158382415771))),i=m(n*m(m(i*m(m(i*m(.06168760731816292))+m(.14253635704517365)))+m(.333333283662796))),r>>>0<=1054867455)return m(A-m(A*m(a+i)));A=m(w[26512+(e<<=2)>>2]-m(m(m(A*m(a+i))-w[e+26528>>2])-A)),A=(0|f)<0?m(-A):A}return A}function Lr(A,r){r|=0;var f=0,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0;if(!(!(f=o[12+(A|=0)>>2])|!v[A+8|0])){if((0|(e=o[r+4>>2]))==o[r+8>>2]&&!((0|(c=e?e<<1:1))<=(0|e))){if(c&&(o[8488]=o[8488]+1,n=0|Zn[o[8290]](c<<2,16),e=o[r+4>>2]),!((0|e)<=0)){if(f=0,e>>>0>=4)for(b=-4&e;o[(i=f<<2)+n>>2]=o[i+o[r+12>>2]>>2],o[(t=4|i)+n>>2]=o[t+o[r+12>>2]>>2],o[(t=8|i)+n>>2]=o[t+o[r+12>>2]>>2],o[(i|=12)+n>>2]=o[i+o[r+12>>2]>>2],f=f+4|0,(0|b)!=(0|(u=u+4|0)););if(i=3&e)for(;o[(b=f<<2)+n>>2]=o[b+o[r+12>>2]>>2],f=f+1|0,(0|i)!=(0|(l=l+1|0)););}!(f=o[r+12>>2])|!v[r+16|0]||(f&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),e=o[r+4>>2]),o[r+12>>2]=n,a[r+16|0]=1,o[r+8>>2]=c,f=o[A+12>>2]}o[o[r+12>>2]+(e<<2)>>2]=f,o[r+4>>2]=e+1}}function $r(A){var r,f,e=m(0),i=0,n=0;S=r=S-16|0,s(A);A:if((f=2147483647&(i=c(2)))>>>0<=1061752794){if(e=m(1),f>>>0<964689920)break A;e=Xe(+A)}else if(f>>>0<=1081824209){if(f>>>0>=1075235812){e=m(-Xe(+A+((0|i)<0?3.141592653589793:-3.141592653589793)));break A}if(n=+A,(0|i)<0){e=Qe(n+1.5707963267948966);break A}e=Qe(1.5707963267948966-n)}else if(f>>>0<=1088565717){if(f>>>0>=1085271520){e=Xe(+A+((0|i)<0?6.283185307179586:-6.283185307179586));break A}if((0|i)<0){e=Qe(-4.71238898038469-+A);break A}e=Qe(+A-4.71238898038469)}else if(e=m(A-A),!(f>>>0>=2139095040)){switch(3&pA(A,r+8|0)){case 0:e=Xe(Z[r+8>>3]);break A;case 1:e=Qe(-Z[r+8>>3]);break A;case 2:e=m(-Xe(Z[r+8>>3]));break A}e=Qe(Z[r+8>>3])}return S=r+16|0,e}function Kr(A){var r,f,e=0,i=0;S=r=S-16|0,s(A);A:if((f=2147483647&(i=c(2)))>>>0<=1061752794){if(f>>>0<964689920)break A;A=Qe(+A)}else if(f>>>0<=1081824209){if(e=+A,f>>>0<=1075235811){if((0|i)<0){A=m(-Xe(e+1.5707963267948966));break A}A=Xe(e+-1.5707963267948966);break A}A=Qe(-(((0|i)>=0?-3.141592653589793:3.141592653589793)+e))}else if(f>>>0<=1088565717){if(f>>>0<=1085271519){if(e=+A,(0|i)<0){A=Xe(e+4.71238898038469);break A}A=m(-Xe(e+-4.71238898038469));break A}A=Qe(+A+((0|i)<0?6.283185307179586:-6.283185307179586))}else if(f>>>0>=2139095040)A=m(A-A);else{switch(3&pA(A,r+8|0)){case 0:A=Qe(Z[r+8>>3]);break A;case 1:A=Xe(Z[r+8>>3]);break A;case 2:A=Qe(-Z[r+8>>3]);break A}A=m(-Xe(Z[r+8>>3]))}return S=r+16|0,A}function qr(A,r){var f,e,i=0;S=f=S+-64|0,i=o[A>>2],e=o[i-4>>2],i=o[i-8>>2],o[f+32>>2]=0,o[f+36>>2]=0,o[f+40>>2]=0,o[f+44>>2]=0,o[f+48>>2]=0,o[f+52>>2]=0,a[f+55|0]=0,a[f+56|0]=0,a[f+57|0]=0,a[f+58|0]=0,a[f+59|0]=0,a[f+60|0]=0,a[f+61|0]=0,a[f+62|0]=0,o[f+24>>2]=0,o[f+28>>2]=0,o[f+20>>2]=0,o[f+16>>2]=30052,o[f+12>>2]=A,o[f+8>>2]=r,A=A+i|0,i=0;A:if(Ue(e,r,0))o[f+56>>2]=1,Zn[o[o[e>>2]+20>>2]](e,f+8|0,A,A,1,0),i=1==o[f+32>>2]?A:0;else{Zn[o[o[e>>2]+24>>2]](e,f+8|0,A,1,0);r:switch(o[f+44>>2]){case 0:i=1==o[f+48>>2]&&1==o[f+36>>2]&&1==o[f+40>>2]?o[f+28>>2]:0;break A;case 1:break r;default:break A}1!=o[f+32>>2]&&o[f+48>>2]|1!=o[f+36>>2]|1!=o[f+40>>2]||(i=o[f+24>>2])}return S=f- -64|0,i}function _r(A){var r=0;return o[(A|=0)>>2]=30968,!(r=o[A+144>>2])||!r|!v[A+148|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+144>>2]=0,a[A+148|0]=1,o[A+136>>2]=0,o[A+140>>2]=0,o[A>>2]=31016,!(r=o[A+124>>2])||!r|!v[A+128|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+124>>2]=0,a[A+128|0]=1,o[A+116>>2]=0,o[A+120>>2]=0,!(r=o[A+104>>2])||!r|!v[A+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+104>>2]=0,a[A+108|0]=1,o[A+96>>2]=0,o[A+100>>2]=0,!(r=o[A+84>>2])||!r|!v[A+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+84>>2]=0,a[A+88|0]=1,o[A+76>>2]=0,o[A+80>>2]=0,!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+32>>2]=0,a[A+36|0]=1,o[A+24>>2]=0,o[A+28>>2]=0,o[A>>2]=30944,0|A}function Af(A,r,f){var e=0,i=0,n=0,t=0;if(f&&(a[0|A]=r,a[(e=A+f|0)-1|0]=r,!(f>>>0<3||(a[A+2|0]=r,a[A+1|0]=r,a[e-3|0]=r,a[e-2|0]=r,f>>>0<7||(a[A+3|0]=r,a[e-4|0]=r,f>>>0<9||(i=(e=0-A&3)+A|0,r=G(255&r,16843009),o[i>>2]=r,o[(f=(e=f-e&-4)+i|0)-4>>2]=r,e>>>0<9||(o[i+8>>2]=r,o[i+4>>2]=r,o[f-8>>2]=r,o[f-12>>2]=r,e>>>0<25||(o[i+24>>2]=r,o[i+20>>2]=r,o[i+16>>2]=r,o[i+12>>2]=r,o[f-16>>2]=r,o[f-20>>2]=r,o[f-24>>2]=r,o[f-28>>2]=r,(f=e-(t=4&i|24)|0)>>>0<32))))))))for(e=ee(r,0,1,1),n=L,r=i+t|0;o[r+24>>2]=e,o[r+28>>2]=n,o[r+16>>2]=e,o[r+20>>2]=n,o[r+8>>2]=e,o[r+12>>2]=n,o[r>>2]=e,o[r+4>>2]=n,r=r+32|0,(f=f-32|0)>>>0>31;);return A}function rf(A,r){var f,e=m(0),i=0,n=m(0),a=0,t=m(0),o=m(0),c=0,b=0,u=0;f=S-16|0,e=w[A>>2],t=w[A+20>>2],o=w[A+40>>2],(n=m(m(e+t)+o))>m(0)?(n=m(N(m(n+m(1)))),e=m(m(.5)/n),t=m(e*m(w[A+16>>2]-w[A+4>>2])),o=m(e*m(w[A+8>>2]-w[A+32>>2])),n=m(n*m(.5)),e=m(e*m(w[A+36>>2]-w[A+24>>2]))):(c=(a=e>>0)%3|0)<<4)|0,A<<=2,e=m(N(m(m(m(w[b+c>>2]-w[u+i>>2])-w[a+A>>2])+m(1)))),w[c+f>>2]=e*m(.5),e=m(m(.5)/e),w[f+12>>2]=m(w[i+a>>2]-w[A+u>>2])*e,w[f+i>>2]=e*m(w[c+u>>2]+w[i+b>>2]),w[(A|f)>>2]=e*m(w[a+c>>2]+w[A+b>>2]),n=w[f+12>>2],t=w[f+8>>2],o=w[f+4>>2],e=w[f>>2]),w[r+12>>2]=n,w[r+8>>2]=t,w[r+4>>2]=o,w[r>>2]=e}function ff(A){var r=0;return o[(A|=0)>>2]=31096,!(r=o[A+144>>2])||!r|!v[A+148|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+144>>2]=0,a[A+148|0]=1,o[A+136>>2]=0,o[A+140>>2]=0,o[A>>2]=31144,!(r=o[A+124>>2])||!r|!v[A+128|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+124>>2]=0,a[A+128|0]=1,o[A+116>>2]=0,o[A+120>>2]=0,!(r=o[A+104>>2])||!r|!v[A+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+104>>2]=0,a[A+108|0]=1,o[A+96>>2]=0,o[A+100>>2]=0,!(r=o[A+84>>2])||!r|!v[A+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+84>>2]=0,a[A+88|0]=1,o[A+76>>2]=0,o[A+80>>2]=0,!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+32>>2]=0,a[A+36|0]=1,o[A+24>>2]=0,o[A+28>>2]=0,0|A}function ef(A,r){A|=0;var f=0,e=0,i=0,n=0,a=0,t=0,c=0;(e=o[188+(r|=0)>>2])&&(f=o[A+68>>2],f=0|Zn[o[o[f>>2]+36>>2]](f),Zn[o[o[f>>2]+40>>2]](f,e,o[A+24>>2]),f=o[A+68>>2],Zn[o[o[f>>2]+12>>2]](f,e,o[A+24>>2]),o[r+188>>2]=0);A:if((0|(f=o[r+216>>2]))<0|(0|f)>=(0|(e=o[A+8>>2]))){if(!((0|e)<=0)){for(i=o[A+16>>2],f=0;;){if(o[(n=i+(f<<2)|0)>>2]!=(0|r)){if((0|e)!=(0|(f=f+1|0)))continue;break A}break}(0|f)>=(0|e)||(f=(e=e-1|0)<<2,o[n>>2]=o[f+i>>2],o[f+o[A+16>>2]>>2]=r,o[A+8>>2]=e)}}else{if(i=o[A+16>>2],t=o[(a=i+(n=f<<2)|0)>>2],c=i,i=(e=e-1|0)<<2,o[a>>2]=o[c+i>>2],o[i+o[A+16>>2]>>2]=t,o[A+8>>2]=e,(0|f)>=(0|e))break A;o[o[n+o[A+16>>2]>>2]+216>>2]=f}o[r+216>>2]=-1}function nf(A){var r=0;return o[(A|=0)>>2]=18584,!(r=o[A+160>>2])||!r|!v[A+164|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+160>>2]=0,a[A+164|0]=1,o[A+152>>2]=0,o[A+156>>2]=0,!(r=o[A+136>>2])||!r|!v[A+140|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+136>>2]=0,a[A+140|0]=1,o[A+128>>2]=0,o[A+132>>2]=0,!(r=o[A+116>>2])||!r|!v[A+120|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+116>>2]=0,a[A+120|0]=1,o[A+108>>2]=0,o[A+112>>2]=0,!(r=o[A+96>>2])||!r|!v[A+100|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+96>>2]=0,a[A+100|0]=1,o[A+88>>2]=0,o[A+92>>2]=0,!(r=o[A+76>>2])||!r|!v[A+80|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+76>>2]=0,a[A+80|0]=1,o[A+68>>2]=0,o[A+72>>2]=0,0|A}function af(A){var r,f=0,e=0,i=0;if(s(A),255==(0|(e=(r=c(2))>>>23&255)))return A=m(A*m(6.2831854820251465)),m(A/A);if((f=r<<1)>>>0<=2173837238)return-2121130058==(0|f)?m(A*m(0)):A;if(e)f=8388607&r|8388608;else{if(e=0,(0|(f=r<<9))>=0)for(;e=e-1|0,(0|(f<<=1))>=0;);f=r<<1-e}if((0|e)>129){for(;;){if(!((0|(i=f-13176795|0))<0||(f=i)))return m(A*m(0));if(f<<=1,!((0|(e=e-1|0))>129))break}e=129}if(!((0|(i=f-13176795|0))<0||(f=i)))return m(A*m(0));if(f>>>0<=8388607)for(;e=e-1|0,i=f>>>0<4194304,f<<=1,i;);return b(2,-2147483648&r|((0|e)>0?f-8388608|e<<23:f>>>1-e)),k()}function tf(A,r){var f,e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0);return A=oi(A),o[A+4>>2]=0,o[A>>2]=18252,i=w[r>>2],a=w[r+4>>2],e=w[r+8>>2],o[A+48>>2]=0,n=m(e*w[A+28>>2]),e=w[A+52>>2],w[A+44>>2]=n-e,w[A+40>>2]=m(a*w[A+24>>2])-e,w[A+36>>2]=m(i*w[A+20>>2])-e,n=e,f=(e=w[r>>2])<(i=w[r+4>>2]),n>(e=m(w[((w[r+8>>2]>(f?e:i)?!f:2)<<2)+r>>2]*m(.10000000149011612)))&&(i=w[A+52>>2],a=m(Zn[o[o[A>>2]+48>>2]](A)),t=m(Zn[o[o[A>>2]+48>>2]](A)),w[A+52>>2]=e,e=w[A+44>>2],c=w[A+36>>2],b=w[A+40>>2],u=m(Zn[o[o[A>>2]+48>>2]](A)),l=m(Zn[o[o[A>>2]+48>>2]](A)),n=m(Zn[o[o[A>>2]+48>>2]](A)),o[A+48>>2]=0,w[A+40>>2]=m(a+b)-l,w[A+36>>2]=m(i+c)-u,w[A+44>>2]=m(t+e)-n),A}function of(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),E=m(0);i=m(Zn[o[o[A>>2]+48>>2]](A)),b=w[r+52>>2],t=w[r+20>>2],s=w[r+24>>2],u=w[r+56>>2],c=w[r+36>>2],k=w[A+40>>2],n=w[r+40>>2],a=w[A+44>>2],l=w[r+48>>2],d=w[r>>2],v=w[r+4>>2],h=w[r+8>>2],B=w[r+16>>2],Z=w[r+32>>2],G=w[A+36>>2],o[f+12>>2]=0,a=m(i+a),E=m(a*m(Q(n))),n=m(i+G),i=m(i+k),c=m(E+m(m(n*m(Q(Z)))+m(i*m(Q(c))))),w[f+8>>2]=u-c,t=m(m(a*m(Q(s)))+m(m(n*m(Q(B)))+m(i*m(Q(t))))),w[f+4>>2]=b-t,i=m(m(a*m(Q(h)))+m(m(n*m(Q(d)))+m(i*m(Q(v))))),w[f>>2]=l-i,o[e+12>>2]=0,w[e+8>>2]=u+c,w[e+4>>2]=t+b,w[e>>2]=i+l}function cf(A){var r,f=0,e=m(0),i=m(0),n=m(0),a=0,t=m(0),c=m(0),b=m(0),u=0,l=0;S=r=S-16|0,e=w[A+156>>2],w[r>>2]=e,i=w[A+152>>2],w[r+4>>2]=i,n=w[A+160>>2],o[r+12>>2]=0,w[r+8>>2]=n,(f=o[A+8>>2])?(t=m(Zn[o[o[f>>2]+48>>2]](f)),c=m(Zn[o[o[f>>2]+48>>2]](f)),b=m(Zn[o[o[f>>2]+48>>2]](f)),o[f+48>>2]=0,w[f+44>>2]=m(n*w[f+28>>2])-b,w[f+40>>2]=m(i*w[f+24>>2])-c,w[f+36>>2]=m(e*w[f+20>>2])-t,e=m(w[((((a=e>2]*m(.10000000149011612)),m(Zn[o[o[f>>2]+48>>2]](f))>e&&Zn[o[o[f>>2]+44>>2]](f,e)):(o[8488]=o[8488]+1,u=A,l=tf(0|Zn[o[8290]](64,16),r),o[u+8>>2]=l),f=o[A+4>>2],Zn[o[o[f>>2]+8>>2]](f,o[A+8>>2]),S=r+16|0}function bf(A,r,f,e){var i=m(0),n=m(0),a=m(0),t=m(0),o=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0);return o=w[f+24>>2],i=w[r+24>>2],u=m(o-i),c=w[f+16>>2],a=w[r+16>>2],l=m(c-a),n=w[A+4>>2],k=w[A>>2],b=w[f+20>>2],t=w[r+20>>2],s=m(b-t),d=w[A+8>>2],(A=m(m(i*m(m(l*n)-m(k*s)))+m(m(a*m(m(s*d)-m(n*u)))+m(t*m(m(u*k)-m(d*l)))))m(0)||(n=m(m(o*o)+m(m(c*c)+m(b*b))),m(m(o*u)+m(m(c*l)+m(b*s)))m(0)?i:m(0))),w[e>>2]=N(n)),A}function uf(A){var r,f=0,e=0,i=0;if(o[(A|=0)>>2]=20936,!(f=o[A+56>>2])||!f|!v[A+60|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+56>>2]=0,a[A+60|0]=1,o[A+48>>2]=0,o[A+52>>2]=0,(0|(r=o[A+28>>2]))>0)for(;f=o[A+36>>2]+G(e,36)|0,!(i=o[f+12>>2])||!i|!v[f+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),o[f+12>>2]=0,a[f+16|0]=1,o[f+4>>2]=0,o[f+8>>2]=0,(0|r)!=(0|(e=e+1|0)););return!(f=o[A+36>>2])||!f|!v[A+40|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+36>>2]=0,a[A+40|0]=1,o[A+28>>2]=0,o[A+32>>2]=0,!(f=o[A+16>>2])||!f|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+16>>2]=0,a[A+20|0]=1,o[A+8>>2]=0,o[A+12>>2]=0,0|A}function lf(A){return a[A+20|0]=1,o[A>>2]=23860,o[A+16>>2]=0,a[A+40|0]=1,o[A+8>>2]=0,o[A+12>>2]=0,o[A+36>>2]=0,a[A+60|0]=1,o[A+28>>2]=0,o[A+32>>2]=0,o[A+56>>2]=0,a[A+80|0]=1,o[A+48>>2]=0,o[A+52>>2]=0,o[A+76>>2]=0,a[A+100|0]=1,o[A+68>>2]=0,o[A+72>>2]=0,o[A+96>>2]=0,a[A+120|0]=1,o[A+88>>2]=0,o[A+92>>2]=0,o[A+116>>2]=0,a[A+140|0]=1,o[A+108>>2]=0,o[A+112>>2]=0,o[A+136>>2]=0,o[A+128>>2]=0,o[A+132>>2]=0,a[A+160|0]=1,o[A+156>>2]=0,o[A+148>>2]=0,o[A+152>>2]=0,a[A+180|0]=1,o[A+176>>2]=0,o[A+168>>2]=0,o[A+172>>2]=0,a[A+208|0]=1,o[A+232>>2]=0,o[A+204>>2]=0,o[A+196>>2]=0,o[A+200>>2]=0,o[A+224>>2]=0,o[A+212>>2]=955,o[A+216>>2]=956,o[A+220>>2]=957,A}function sf(A){var r,f,e=0,i=m(0);if(s(A),(r=2147483647&(f=c(2)))>>>0>=1065353216)return m(1065353216==(0|r)?1.5707963267948966*+A+752316384526264e-51:m(0)/m(A-A));A:{if(r>>>0<=1056964607){if(r-8388608>>>0<956301312)break A;return i=m(A*A),m(m(A*m(m(m(m(i*m(m(i*m(-.008656363002955914))+m(-.04274342209100723)))+m(.16666586697101593))*i)/m(m(i*m(-.7066296339035034))+m(1))))+A)}A=m(m(m(1)-m(Q(A)))*m(.5)),e=N(+A),e+=e*+m(m(m(m(A*m(m(A*m(-.008656363002955914))+m(-.04274342209100723)))+m(.16666586697101593))*A)/m(m(A*m(-.7066296339035034))+m(1))),A=m(1.5707963267948966-(e+e)),A=(0|f)<0?m(-A):A}return A}function kf(A){var r,f=0,e=0,i=0;if(o[(A|=0)>>2]=16316,(0|(r=o[A+52>>2]))>0)for(;(e=o[(i=f<<2)+o[A+60>>2]>>2])&&(Zn[o[o[e>>2]>>2]](e),e=o[A+4>>2],Zn[o[o[e>>2]+60>>2]](e,o[o[A+60>>2]+i>>2])),(0|r)!=(0|(f=f+1|0)););return!(f=o[A+60>>2])||!f|!v[A- -64|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+60>>2]=0,a[A+64|0]=1,o[A+52>>2]=0,o[A+56>>2]=0,!(f=o[A+40>>2])||!f|!v[A+44|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+40>>2]=0,a[A+44|0]=1,o[A+32>>2]=0,o[A+36>>2]=0,!(f=o[A+20>>2])||!f|!v[A+24|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+20>>2]=0,a[A+24|0]=1,o[A+12>>2]=0,o[A+16>>2]=0,0|A}function df(A,r,f,e){var i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0);n=$r(f),i=w[r+444>>2],f=Kr(f),m(Q(n))>m(1.1920928955078125e-7)?(t=m(n*n),a=m(m(f*f)/t),c=m(a/m(i*i)),i=w[r+448>>2],i=m(N(m(m(a+m(1))/m(c+m(m(1)/m(i*i))))))):t=m(n*n),o[A+12>>2]=0,i=m(i*m(.5)),a=m(Kr(i)/m(N(m(m(f*f)+m(t+m(0)))))),f=m(a*m(-f)),i=$r(i),c=m(i*m(0)),t=m(a*m(0)),b=m(t*m(0)),u=m(m(c+m(f*e))-b),n=m(n*a),a=m(m(c+b)-m(n*e)),b=m(f*m(-0)),c=m(b+m(m(n*m(-0))-m(t*e))),e=m(b+m(m(i*e)+m(n*m(0)))),w[A+8>>2]=m(u*t)+m(m(m(i*a)-m(c*f))-m(e*n)),w[A+4>>2]=m(e*f)+m(m(m(i*u)-m(c*n))-m(a*t)),w[A>>2]=m(a*n)+m(m(m(i*e)-m(c*t))-m(u*f))}function vf(A){var r=0,f=m(0);S=r=S-96|0,a[A+96|0]=1,v[34128]||(o[8509]=0,o[8510]=0,o[8508]=1065353216,o[8511]=0,o[8512]=0,o[8514]=0,o[8515]=0,o[8513]=1065353216,o[8516]=0,o[8517]=0,o[8521]=0,o[8522]=0,o[8520]=-1082130432,o[8518]=1065353216,o[8519]=0,o[8523]=0,o[8524]=0,o[8526]=0,o[8527]=0,o[8525]=-1082130432,o[8528]=0,o[8529]=0,o[8530]=-1082130432,o[8531]=0,a[34128]=1),r=Af(r,0,96),Zn[o[o[A>>2]+76>>2]](A,34032,r,6),f=w[A+52>>2],w[A+80>>2]=w[r>>2]+f,w[A+64>>2]=w[r+48>>2]-f,w[A+84>>2]=f+w[r+20>>2],w[A+68>>2]=w[r+68>>2]-f,w[A+88>>2]=f+w[r+40>>2],w[A+72>>2]=w[r+88>>2]-f,S=r+96|0}function hf(A){var r,f,e=0,i=0,n=0;if(o[A+24>>2]=0,o[A+68>>2]=0,a[A+20|0]=1,o[A>>2]=12408,o[A+16>>2]=0,a[A+44|0]=1,o[A+8>>2]=0,o[A+12>>2]=0,o[A+40>>2]=0,a[A- -64|0]=1,o[A+32>>2]=0,o[A+36>>2]=0,o[A+60>>2]=0,o[A+52>>2]=0,o[A+56>>2]=0,o[8488]=o[8488]+1,r=0|Zn[o[8290]](32,16),(0|(f=o[A+8>>2]))>0)for(;e=(i=n<<4)+r|0,i=i+o[A+16>>2]|0,o[e>>2]=o[i>>2],o[e+4>>2]=o[i+4>>2],o[e+8>>2]=o[i+8>>2],o[e+12>>2]=o[i+12>>2],(0|f)!=(0|(n=n+1|0)););return!(e=o[A+16>>2])||!e|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+16>>2]=r,a[A+20|0]=1,o[A+12>>2]=2,_A(A),A}function Bf(A){var r=0;return o[(A|=0)>>2]=22164,!(r=o[A+156>>2])||!r|!v[A+160|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+156>>2]=0,a[A+160|0]=1,o[A+148>>2]=0,o[A+152>>2]=0,!(r=o[A+136>>2])||!r|!v[A+140|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+136>>2]=0,a[A+140|0]=1,o[A+128>>2]=0,o[A+132>>2]=0,!(r=o[A+116>>2])||!r|!v[A+120|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+116>>2]=0,a[A+120|0]=1,o[A+108>>2]=0,o[A+112>>2]=0,!(r=o[A+96>>2])||!r|!v[A+100|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+96>>2]=0,a[A+100|0]=1,o[A+88>>2]=0,o[A+92>>2]=0,0|Be(A)}function wf(A,r){var f,e=m(0),i=0,n=0,a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=0;if(i=0,!((0|(f=o[A>>2]))<=0||(c=w[A+308>>2],b=w[r+8>>2],e=m(b-w[A+12>>2]),a=m(e*e),u=w[r>>2],e=m(u-w[A+4>>2]),t=m(e*e),l=w[r+4>>2],e=m(l-w[A+8>>2]),i=1,c>=m(a+m(t+m(e*e)))))){for(;!((0|f)==(0|(n=n+1|0))||(e=m(b-w[12+(i=(n<<4)+A|0)>>2]),a=m(e*e),e=m(u-w[i+4>>2]),t=m(e*e),e=m(l-w[i+8>>2]),m(a+m(t+m(e*e)))<=c)););i=(0|n)<(0|f)}return w[r+12>>2]!=w[A+304>>2]|w[r+8>>2]!=w[A+300>>2]|w[r+4>>2]!=w[A+296>>2]||(s=w[r>>2]==w[A+292>>2]),i|s}function Zf(A){var r,f=0,e=0,i=0;if(o[(A|=0)>>2]=12040,v[A+152|0]&&(f=o[A+96>>2],Zn[o[o[f>>2]>>2]](f),(f=o[A+96>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](f))),(0|(r=o[A+160>>2]))>0)for(;f=o[A+168>>2]+G(e,20)|0,!(i=o[f+12>>2])||!i|!v[f+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),a[f+16|0]=1,o[f+12>>2]=0,o[f+4>>2]=0,o[f+8>>2]=0,(0|r)!=(0|(e=e+1|0)););return!(f=o[A+168>>2])||!f|!v[A+172|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+168>>2]=0,a[A+172|0]=1,o[A+160>>2]=0,o[A+164>>2]=0,Kf(A+44|0),Kf(A+4|0),0|A}function Gf(A,r,f){var e=0;return(e=o[A+4>>2])?o[A+4>>2]=0:(o[8488]=o[8488]+1,e=0|Zn[o[8290]](44,16),o[e>>2]=0,o[e+4>>2]=0,o[e+40>>2]=0,o[e+32>>2]=0,o[e+36>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0),o[e+36>>2]=f,o[e+32>>2]=0,o[e+40>>2]=0,f=o[r+4>>2],o[e>>2]=o[r>>2],o[e+4>>2]=f,f=o[r+12>>2],o[e+8>>2]=o[r+8>>2],o[e+12>>2]=f,f=o[r+20>>2],o[e+16>>2]=o[r+16>>2],o[e+20>>2]=f,f=o[r+28>>2],o[e+24>>2]=o[r+24>>2],o[e+28>>2]=f,er(A,o[A>>2],e),o[A+12>>2]=o[A+12>>2]+1,e}function mf(A){return a[A+60|0]=0,o[A+52>>2]=287,o[A+144>>2]=0,a[A+80|0]=1,o[A>>2]=18584,o[A+76>>2]=0,a[A+100|0]=1,o[A+68>>2]=0,o[A+72>>2]=0,o[A+96>>2]=0,a[A+120|0]=1,o[A+88>>2]=0,o[A+92>>2]=0,o[A+116>>2]=0,a[A+140|0]=1,o[A+108>>2]=0,o[A+112>>2]=0,o[A+136>>2]=0,a[A+164|0]=1,o[A+128>>2]=0,o[A+132>>2]=0,o[A+160>>2]=0,o[A+168>>2]=0,o[A+152>>2]=0,o[A+156>>2]=0,o[A+4>>2]=-8388609,o[A+8>>2]=-8388609,o[A+12>>2]=-8388609,o[A+16>>2]=0,o[A+20>>2]=2139095039,o[A+24>>2]=2139095039,o[A+28>>2]=2139095039,o[A+32>>2]=0,A}function Qf(A,r,f,e){for(var i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0;;){for(u=f,l=o[o[A+12>>2]+((f+e|0)/2<<3)>>2],i=e;;){for(a=o[A+12>>2],t=f;t=(f=t)+1|0,o[(n=(f<<3)+a|0)>>2]<(0|l););for(c=i;c=(i=c)-1|0,o[(b=(s=i<<3)+a|0)>>2]>(0|l););if((0|f)<=(0|i)&&(f=o[n>>2],i=o[n+4>>2],a=o[b+4>>2],o[n>>2]=o[b>>2],o[n+4>>2]=a,n=o[A+12>>2]+s|0,o[n>>2]=f,o[n+4>>2]=i,i=c,f=t),!((0|f)<=(0|i)))break}if((0|i)>(0|u)&&Qf(A,r,u,i),!((0|f)<(0|e)))break}}function Ef(A){var r,f=0,e=0,i=0,n=0;if(o[(A|=0)>>2]=16464,f=o[A+84>>2],(0|(r=o[f+8>>2]))>0){for(;(e=o[8+(o[f+16>>2]+G(i,12)|0)>>2])&&(Zn[o[o[e>>2]>>2]](e),n=o[A+4>>2],Zn[o[o[n>>2]+60>>2]](n,e)),(0|r)!=(0|(i=i+1|0)););f=o[A+84>>2]}return Vr(f),f=o[A+84>>2],Zn[o[o[f>>2]>>2]](f),(f=o[A+84>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),!(f=o[A+100>>2])||!f|!v[A+104|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+100>>2]=0,a[A+104|0]=1,o[A+92>>2]=0,o[A+96>>2]=0,0|kf(A)}function Wf(A,r,f,e){var i=0,n=0;i=o[r+4>>2],o[A+292>>2]=o[r>>2],o[A+296>>2]=i,i=o[r+12>>2],o[A+300>>2]=o[r+8>>2],o[A+304>>2]=i,a[A+356|0]=1,n=o[r+4>>2],i=A+(o[A>>2]<<4)|0,o[i+4>>2]=o[r>>2],o[i+8>>2]=n,n=o[r+12>>2],o[i+12>>2]=o[r+8>>2],o[i+16>>2]=n,i=o[f+12>>2],r=(o[A>>2]<<4)+A|0,o[r+92>>2]=o[f+8>>2],o[r+96>>2]=i,i=o[f+4>>2],o[r+84>>2]=o[f>>2],o[r+88>>2]=i,f=o[e+12>>2],r=(o[A>>2]<<4)+A|0,o[r+172>>2]=o[e+8>>2],o[r+176>>2]=f,f=o[e+4>>2],o[r+164>>2]=o[e>>2],o[r+168>>2]=f,o[A>>2]=o[A>>2]+1}function Nf(A,r,f){var e,i=m(0),n=m(0),a=m(0);e=o[A+204>>2],r!=m(0)?(o[A+204>>2]=-2&e,i=m(m(1)/r)):o[A+204>>2]=1|e,w[A+404>>2]=i,o[A+436>>2]=0,w[A+424>>2]=w[A+440>>2]*r,w[A+432>>2]=w[A+448>>2]*r,w[A+428>>2]=w[A+444>>2]*r,r=w[f+8>>2],n=w[f+4>>2],a=w[f>>2],w[A+620>>2]=w[A+408>>2]*i,w[A+624>>2]=i*w[A+412>>2],w[A+628>>2]=i*w[A+416>>2],o[A+632>>2]=0,o[A+468>>2]=0,w[A+456>>2]=a!=m(0)?m(m(1)/a):m(0),w[A+460>>2]=n!=m(0)?m(m(1)/n):m(0),w[A+464>>2]=r!=m(0)?m(m(1)/r):m(0)}function pf(A,r,f,e,i,n){var a;return A|=0,r|=0,f|=0,e=m(e),i|=0,n|=0,S=a=S+-64|0,o[a+56>>2]=n,o[a+52>>2]=i,o[a+60>>2]=o[A+220>>2],i=o[A+212>>2],w[i+4>>2]>=e&&(o[a+8>>2]=o[A+216>>2],o[a+12>>2]=a+52,A=o[r+12>>2],o[a+24>>2]=o[r+8>>2],o[a+28>>2]=A,A=o[r+4>>2],o[a+16>>2]=o[r>>2],o[a+20>>2]=A,A=o[f+12>>2],o[a+40>>2]=o[f+8>>2],o[a+44>>2]=A,A=o[f+4>>2],o[a+32>>2]=o[f>>2],o[a+36>>2]=A,w[a+48>>2]=e,e=m(Zn[o[o[i>>2]+12>>2]](i,a+8|0,1))),S=a- -64|0,m(e)}function Ff(A){var r=0,f=0,e=0,i=0;if(o[(A|=0)>>2]=13192,(0|(r=o[A+8>>2]))>0)for(;i=o[o[A+16>>2]+(f<<2)>>2],(e=o[i+188>>2])&&(r=o[A+68>>2],r=0|Zn[o[o[r>>2]+36>>2]](r),Zn[o[o[r>>2]+40>>2]](r,e,o[A+24>>2]),r=o[A+68>>2],Zn[o[o[r>>2]+12>>2]](r,e,o[A+24>>2]),o[i+188>>2]=0,r=o[A+8>>2]),(0|(f=f+1|0))<(0|r););return!(r=o[A+16>>2])||!r|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+16>>2]=0,a[A+20|0]=1,o[A+8>>2]=0,o[A+12>>2]=0,0|A}function Rf(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0);Zn[o[o[r>>2]+68>>2]](A,r,f),m(Zn[o[o[r>>2]+48>>2]](r))!=m(0)&&(i=w[f+4>>2],e=w[f>>2],n=w[f+8>>2],a=m(Zn[o[o[r>>2]+48>>2]](r)),t=e=(r=m(m(n*n)+m(m(e*e)+m(i*i)))>2]=w[A>>2]+m(a*m(t*e)),w[A+4>>2]=w[A+4>>2]+m(a*m(i*e)),w[A+8>>2]=w[A+8>>2]+m(a*m(n*e)))}function Yf(A){var r=0;return o[(A|=0)>>2]=12408,!(r=o[A+60>>2])||!r|!v[A- -64|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+60>>2]=0,a[A+64|0]=1,o[A+52>>2]=0,o[A+56>>2]=0,!(r=o[A+40>>2])||!r|!v[A+44|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+40>>2]=0,a[A+44|0]=1,o[A+32>>2]=0,o[A+36>>2]=0,!(r=o[A+16>>2])||!r|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+16>>2]=0,a[A+20|0]=1,o[A+8>>2]=0,o[A+12>>2]=0,0|A}function Vf(A){var r=0;return o[(A|=0)>>2]=17912,!(r=o[A+56>>2])||!r|!v[A+60|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+56>>2]=0,a[A+60|0]=1,o[A+48>>2]=0,o[A+52>>2]=0,!(r=o[A+36>>2])||!r|!v[A+40|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+36>>2]=0,a[A+40|0]=1,o[A+28>>2]=0,o[A+32>>2]=0,!(r=o[A+16>>2])||!r|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+16>>2]=0,a[A+20|0]=1,o[A+8>>2]=0,o[A+12>>2]=0,0|A}function gf(A){var r=0;return o[(A|=0)>>2]=24184,!(r=o[A+56>>2])||!r|!v[A+60|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+56>>2]=0,a[A+60|0]=1,o[A+48>>2]=0,o[A+52>>2]=0,!(r=o[A+36>>2])||!r|!v[A+40|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+36>>2]=0,a[A+40|0]=1,o[A+28>>2]=0,o[A+32>>2]=0,!(r=o[A+16>>2])||!r|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+16>>2]=0,a[A+20|0]=1,o[A+8>>2]=0,o[A+12>>2]=0,0|A}function Xf(A,r,f){var e=0,i=0,n=0,a=0;A:if(i=Jr(A,r))if((0|(n=o[A+8>>2]))>=0){if(!n)break A;for(;;){if(!(e=o[i+32>>2]))break A;if(i=e,(0|n)==(0|(a=a+1|0)))break}}else i=o[A>>2];else i=0;e=o[f+4>>2],o[r>>2]=o[f>>2],o[r+4>>2]=e,e=o[f+28>>2],o[r+24>>2]=o[f+24>>2],o[r+28>>2]=e,e=o[f+20>>2],o[r+16>>2]=o[f+16>>2],o[r+20>>2]=e,e=o[f+12>>2],o[r+8>>2]=o[f+8>>2],o[r+12>>2]=e,er(A,i,r)}function Df(A,r){A|=0,r|=0;var f=m(0),e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0);f=m(Zn[o[o[A>>2]+48>>2]](A)),e=m(Zn[o[o[A>>2]+48>>2]](A)),i=m(Zn[o[o[A>>2]+48>>2]](A)),n=w[A+24>>2],a=w[A+40>>2],t=w[A+28>>2],c=w[A+44>>2],b=w[A+20>>2],u=w[A+36>>2],We(A,r),o[A+48>>2]=0,w[A+44>>2]=m(m(m(i+c)/t)*w[A+28>>2])-i,w[A+40>>2]=m(m(m(e+a)/n)*w[A+24>>2])-e,w[A+36>>2]=m(m(m(f+u)/b)*w[A+20>>2])-f}function Cf(A){var r=0,f=0;return o[(A|=0)>>2]=15216,v[A+52|0]&&(r=o[A+56>>2])&&(f=o[A+4>>2],Zn[o[o[f>>2]+16>>2]](f,r)),!(r=o[A+44>>2])||!r|!v[A+48|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+44>>2]=0,a[A+48|0]=1,o[A+36>>2]=0,o[A+40>>2]=0,!(r=o[A+24>>2])||!r|!v[A+28|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+24>>2]=0,a[A+28|0]=1,o[A+16>>2]=0,o[A+20>>2]=0,0|A}function Jf(A,r){var f=m(0);o[A+20>>2]=0,o[A+24>>2]=0,a[A+28|0]=0;A:if((f=w[A+4>>2])>=m(0)){if((r=af(m(r-w[A>>2])))m(3.1415927410125732)&&(r=m(r+m(-6.2831854820251465))),m(-f)>r)a[A+28|0]=1,r=m(-m(f+r)),f=m(1);else{if(!(r>f))break A;a[A+28|0]=1,r=m(f-r),f=m(-1)}w[A+24>>2]=f,w[A+20>>2]=r}}function xf(A,r){A|=0,r=m(r);var f=m(0),e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0);f=m(Zn[o[o[A>>2]+48>>2]](A)),e=m(Zn[o[o[A>>2]+48>>2]](A)),i=m(Zn[o[o[A>>2]+48>>2]](A)),w[A+52>>2]=r,r=w[A+44>>2],n=w[A+40>>2],a=w[A+36>>2],t=m(Zn[o[o[A>>2]+48>>2]](A)),c=m(Zn[o[o[A>>2]+48>>2]](A)),b=m(Zn[o[o[A>>2]+48>>2]](A)),o[A+48>>2]=0,w[A+40>>2]=m(e+n)-c,w[A+36>>2]=m(f+a)-t,w[A+44>>2]=m(i+r)-b}function yf(A){var r,f,e=0,i=0,n=m(0);return S=r=S-16|0,i=o[A+8>>2],(0|(f=o[A+12>>2]))>0|(0|f)>=0?n=m(m(m(+(i>>>0)+4294967296*+(f>>>0))*m(0x10000000000000000))+m(+B[A>>2]+4294967296*+B[A+4>>2])):(e=o[A>>2],A=o[A+4>>2],o[r>>2]=0-e,o[r+4>>2]=0-(A+!!(0|e)|0),i=(A=!(A|e))+(e=~i)|0,A=~f,o[r+8>>2]=i,o[r+12>>2]=i>>>0>>0?A+1|0:A,n=m(-yf(r))),S=r+16|0,n}function Mf(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0);t=m(Zn[o[o[A>>2]+48>>2]](A)),c=m(Zn[o[o[A>>2]+48>>2]](A)),b=m(Zn[o[o[A>>2]+48>>2]](A)),i=w[r+52>>2],n=w[r+56>>2],a=w[r+48>>2],o[f+12>>2]=0,w[f+8>>2]=n-b,w[f+4>>2]=i-c,w[f>>2]=a-t,i=w[r+52>>2],n=w[r+56>>2],a=w[r+48>>2],o[e+12>>2]=0,w[e+8>>2]=b+n,w[e+4>>2]=c+i,w[e>>2]=t+a}function Hf(A,r,f,e,i){var n,t=m(0),c=m(0);return o[A+32>>2]=f,o[A+28>>2]=r,o[A+24>>2]=e,o[A+20>>2]=i,o[A+4>>2]=0,o[A+8>>2]=1065353216,o[A+12>>2]=0,o[A+16>>2]=0,o[A>>2]=22908,o[A+36>>2]=o[r+4>>2],o[A+40>>2]=o[f+4>>2],n=A,c=m(Zn[o[o[r>>2]+48>>2]](r)),w[n+44>>2]=c,t=m(Zn[o[o[f>>2]+48>>2]](f)),o[A+72>>2]=1,o[A+76>>2]=1,o[A+60>>2]=-1,a[A+52|0]=0,w[A+48>>2]=t,A}function If(A,r,f,e,i){for(var n=0,a=0;;){A:{if(!(h[i>>1]>1]|h[e>>1]>h[r+6>>1]|h[i+4>>1]>1]|h[e+4>>1]>h[r+10>>1]||h[i+2>>1]>1]|h[e+2>>1]>h[r+8>>1])){if((0|(n=o[r+12>>2]))<0)break A;Zn[o[o[f>>2]+8>>2]](f,n>>>21|0,2097151&n)}return}If(A,n=r+16|0,f,e,i),a=n,r=(0|(n=o[r+28>>2]))<0?a-(n<<4)|0:r+32|0}}function Tf(A,r,f,e){a[A+53|0]=1;A:if(o[A+4>>2]==(0|f)){a[A+52|0]=1;r:{if(!(f=o[A+16>>2])){if(o[A+36>>2]=1,o[A+24>>2]=e,o[A+16>>2]=r,1!=(0|e))break A;if(1==o[A+48>>2])break r;break A}if((0|r)==(0|f)){if(2==(0|(f=o[A+24>>2]))&&(o[A+24>>2]=e,f=e),1!=o[A+48>>2])break A;if(1==(0|f))break r;break A}o[A+36>>2]=o[A+36>>2]+1}a[A+54|0]=1}}function Uf(A,r,f,e,i){return o[A>>2]=15064,o[A+4>>2]=o[r>>2],o[A>>2]=15092,o[A>>2]=16316,a[A+68|0]=i,a[A+24|0]=1,o[A+20>>2]=0,a[A+44|0]=1,o[A+12>>2]=0,o[A+16>>2]=0,o[A+40>>2]=0,a[A- -64|0]=1,o[A+32>>2]=0,o[A+36>>2]=0,o[A+60>>2]=0,o[A+52>>2]=0,o[A+56>>2]=0,r=o[r+4>>2],a[A+76|0]=0,o[A+72>>2]=r,o[A+80>>2]=o[o[(i?e:f)+4>>2]+76>>2],dr(A,f,e),A}function jf(A,r){A:if((0|r)>=1024){if(A*=898846567431158e293,r>>>0<2047){r=r-1023|0;break A}A*=898846567431158e293,r=((0|r)>=3069?3069:r)-2046|0}else(0|r)>-1023||(A*=2004168360008973e-307,r>>>0>4294965304?r=r+969|0:(A*=2004168360008973e-307,r=((0|r)<=-2960?-2960:r)+1938|0));return b(0,0),b(1,r+1023<<20),A*+u()}function zf(A,r,f,e,i){var n;return o[A>>2]=15064,o[A+4>>2]=o[r>>2],o[A>>2]=15092,o[A>>2]=15820,r=o[r>>2],o[A+60>>2]=0,o[A+56>>2]=r,o[A+8>>2]=15848,n=i?f:e,o[A+48>>2]=n,f=i?e:f,o[A+44>>2]=f,r=0|Zn[o[o[r>>2]+12>>2]](r,o[f+8>>2],o[n+8>>2]),o[A+72>>2]=r,f=o[A+56>>2],Zn[o[o[f>>2]+20>>2]](f,r),a[A+76|0]=i,A}function Pf(A){var r=0;return o[(A|=0)>>2]=25228,r=o[A+344>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+344>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A>>2]=25184,!(r=o[A+336>>2])||!r|!v[A+340|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+336>>2]=0,a[A+340|0]=1,o[A+328>>2]=0,o[A+332>>2]=0,0|se(A)}function Of(A,r){var f=m(0),e=0,i=m(0),n=m(0),a=m(0);(f=w[A+404>>2])!=m(0)&&(i=w[r>>2],n=w[r+4>>2],a=w[r+8>>2],o[A+436>>2]=0,f=m(m(1)/f),w[A+432>>2]=a*f,w[A+428>>2]=f*n,w[A+424>>2]=f*i),e=o[r+4>>2],o[A+440>>2]=o[r>>2],o[A+444>>2]=e,e=o[r+12>>2],o[A+448>>2]=o[r+8>>2],o[A+452>>2]=e}function Sf(A,r,f,e){var i=0;return o[A>>2]=23240,i=o[r+4>>2],o[A+4>>2]=o[r>>2],o[A+8>>2]=i,i=o[r+12>>2],o[A+12>>2]=o[r+8>>2],o[A+16>>2]=i,r=o[f+4>>2],o[A+20>>2]=o[f>>2],o[A+24>>2]=r,r=o[f+12>>2],o[A+28>>2]=o[f+8>>2],o[A+32>>2]=r,o[A+40>>2]=1065353216,o[A+36>>2]=e,A}function Lf(A,r,f,e,i){var n=m(0);if(n=m(1),!(r>f)&&(n=m(0),r!=f)){if((e=m(e/i))=r)|!(m(r-e)>A)?m(Am(0)){if(!(!(A<=f)|!(m(f-e)f?0:1)}}return n}function $f(A,r,f,e,i,n,a,t,c,b){r|=0,f|=0,e|=0,i|=0,n|=0,a|=0,t|=0,c|=0,b|=0,A=o[32+(A|=0)>>2]+(b<<5)|0,o[f>>2]=o[A+12>>2],o[r>>2]=o[A+16>>2],o[e>>2]=o[A+28>>2],o[i>>2]=o[A+20>>2],o[t>>2]=o[A>>2],o[n>>2]=o[A+4>>2],o[a>>2]=o[A+8>>2],o[c>>2]=o[A+24>>2]}function Kf(A){var r=0;(r=o[A>>2])&&Ze(A,r),(r=o[A+4>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+4>>2]=0,o[A+8>>2]=-1,!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+36|0]=1,o[A+16>>2]=0,o[A+32>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0}function qf(A){var r=0;(r=o[A>>2])&&Ze(A,r),(r=o[A+4>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+4>>2]=0,o[A+8>>2]=-1,!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+32>>2]=0,a[A+36|0]=1,o[A+16>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0}function _f(A){var r=0;return o[(A|=0)>>2]=19400,(r=o[A+72>>2])&&(Kf(r),(r=o[A+72>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r))),!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+32>>2]=0,a[A+36|0]=1,o[A+24>>2]=0,o[A+28>>2]=0,0|A}function Ae(A){return A=ae(A),a[A+96|0]=0,o[A+80>>2]=-1082130432,o[A+84>>2]=-1082130432,o[A+64>>2]=1065353216,o[A+68>>2]=1065353216,o[A>>2]=21116,o[A+60>>2]=0,o[A+88>>2]=-1082130432,o[A+92>>2]=0,o[A+72>>2]=1065353216,o[A+76>>2]=0,A}function re(A){a[A+356|0]=1,o[A>>2]=0,a[A+312|0]=0,o[A+292>>2]=1566444395,o[A+296>>2]=1566444395,o[A+336>>2]=0,o[A+340>>2]=0,o[A+300>>2]=1566444395,o[A+304>>2]=0,o[A+344>>2]=0,o[A+348>>2]=0,a[A+352|0]=0,a[A+332|0]=240&v[A+332|0]}function fe(A,r,f){var e=0;AA(A),e=o[A+248>>2],o[r>>2]=o[A+244>>2],o[r+4>>2]=e,e=o[A+256>>2],o[r+8>>2]=o[A+252>>2],o[r+12>>2]=e,r=o[A+272>>2],o[f+8>>2]=o[A+268>>2],o[f+12>>2]=r,r=o[A+264>>2],o[f>>2]=o[A+260>>2],o[f+4>>2]=r}function ee(A,r,f,e){var i,n,a,t,o=0,c=0;return t=G(o=f>>>16|0,c=A>>>16|0),o=(65535&(c=((a=G(i=65535&f,n=65535&A))>>>16|0)+G(c,i)|0))+G(o,n)|0,L=(G(r,f)+t|0)+G(A,e)+(c>>>16)+(o>>>16)|0,65535&a|o<<16}function ie(A,r,f){var e;if(!(e=o[A+16>>2]))return o[A+36>>2]=1,o[A+24>>2]=f,void(o[A+16>>2]=r);A:{if((0|r)==(0|e)){if(2!=o[A+24>>2])break A;return void(o[A+24>>2]=f)}a[A+54|0]=1,o[A+24>>2]=2,o[A+36>>2]=o[A+36>>2]+1}}function ne(A,r,f,e){return o[A+44>>2]=0,o[A+36>>2]=0,o[A+40>>2]=1028443341,o[A+32>>2]=e,o[A+28>>2]=f,o[A+24>>2]=-1,t[A+20>>1]=1,o[A+16>>2]=2139095039,o[A+8>>2]=-1,o[A+12>>2]=-1,o[A+4>>2]=r,o[A>>2]=24e3,A}function ae(A){return o[A+12>>2]=0,o[A+16>>2]=0,o[A+4>>2]=35,o[A+8>>2]=0,o[A>>2]=19776,o[A+52>>2]=1025758986,o[A+20>>2]=1065353216,o[A+24>>2]=1065353216,o[A>>2]=19640,o[A+28>>2]=1065353216,o[A+32>>2]=0,A}function te(A,r,f){var e,i;return A|=0,r|=0,e=0|Zn[o[o[(f|=0)>>2]+40>>2]](f,A),i=0|Zn[o[o[f>>2]+28>>2]](f,e),o[r>>2]=i,i&&Zn[o[o[f>>2]+48>>2]](f,e),A=o[A+4>>2],o[r+8>>2]=0,o[r+4>>2]=A,8941}function oe(A){switch(o[A+4>>2]){case 8:return m(w[A+36>>2]*w[A+20>>2]);case 0:case 1:case 4:case 5:case 10:case 11:case 13:return w[A+52>>2]}return m(Zn[o[o[A>>2]+48>>2]](A))}function ce(A){var r,f;return A=Qr(A),o[A+252>>2]=4,o[A>>2]=25228,o[A+336>>2]=0,a[A+340|0]=1,o[A+328>>2]=0,o[A+332>>2]=0,o[8488]=o[8488]+1,r=A,f=hf(0|Zn[o[8290]](72,16)),o[r+344>>2]=f,A}function be(A){3&v[A+204|0]||(w[A+472>>2]=m(w[A+424>>2]*w[A+408>>2])+w[A+472>>2],w[A+476>>2]=m(w[A+428>>2]*w[A+412>>2])+w[A+476>>2],w[A+480>>2]=m(w[A+432>>2]*w[A+416>>2])+w[A+480>>2])}function ue(A){var r;return o[(A|=0)>>2]=25184,!(r=o[A+336>>2])||!r|!v[A+340|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+336>>2]=0,a[A+340|0]=1,o[A+328>>2]=0,o[A+332>>2]=0,0|se(A)}function le(A,r){var f=0,e=0;A:if(!(!(f=v[0|A])|(0|f)!=(0|(e=v[0|r]))))for(;;){if(e=v[r+1|0],!(f=v[A+1|0]))break A;if(r=r+1|0,A=A+1|0,(0|f)!=(0|e))break}return f-e|0}function se(A){var r;return o[(A|=0)>>2]=13128,!(r=o[A+296>>2])||!r|!v[A+300|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+296>>2]=0,a[A+300|0]=1,o[A+288>>2]=0,o[A+292>>2]=0,0|A}function ke(A,r){var f=0;return r&&(!(r=qr(r,30308))|o[r+8>>2]&~o[A+8>>2]||Ue(o[A+12>>2],o[r+12>>2],0)&&(f=Ue(o[A+16>>2],o[r+16>>2],0))),f}function de(A){var r=m(0);return(r=af(m(w[A>>2]+w[A+4>>2])))m(3.1415927410125732)?m(r+m(-6.2831854820251465)):r}function ve(A){var r=m(0);return(r=af(m(w[A>>2]-w[A+4>>2])))m(3.1415927410125732)?m(r+m(-6.2831854820251465)):r}function he(A){var r;return o[(A|=0)>>2]=12960,!(r=o[A+20>>2])||!r|!v[A+24|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+20>>2]=0,a[A+24|0]=1,o[A+12>>2]=0,o[A+16>>2]=0,0|A}function Be(A){var r;return o[(A|=0)>>2]=22052,!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+32>>2]=0,a[A+36|0]=1,o[A+24>>2]=0,o[A+28>>2]=0,0|A}function we(A){var r,f;return(A=(r=o[8300])+(f=A+7&-8)|0)>>>0<=r>>>0&&f||A>>>0>Gn()<<16>>>0&&!(0|U(0|A))?(o[8983]=48,-1):(o[8300]=A,r)}function Ze(A,r){var f;o[r+40>>2]&&(Ze(A,o[r+36>>2]),Ze(A,o[r+40>>2])),o[A>>2]==(0|r)&&(o[A>>2]=0),(f=o[A+4>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+4>>2]=r}function Ge(A,r,f,e){var i,n;i=o[A+4>>2],n=o[A>>2],A=0,f&&(A=i>>8,1&i&&(A=o[A+o[f>>2]>>2])),Zn[o[o[n>>2]+28>>2]](n,r,A+f|0,2&i?e:2)}function me(A){var r=0;return o[(A|=0)>>2]=18648,v[A+69|0]&&(r=o[A+60>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+60>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r))),0|A}function Qe(A){var r,f;return m((f=(r=A*A)*A)*r*r*(2718311493989822e-21*r-.00019839334836096632)+(f*(.008333329385889463*r-.16666666641626524)+A))}function Ee(A){var r=0;return o[(A|=0)>>2]=15848,r=o[A+48>>2],Zn[o[o[r>>2]+20>>2]](r,o[A+64>>2]),r=o[A+48>>2],Zn[o[o[r>>2]+16>>2]](r,o[A+64>>2]),0|A}function We(A,r){A|=0,r|=0;var f=m(0),e=m(0),i=m(0);f=w[r>>2],e=w[r+4>>2],i=w[r+8>>2],o[A+32>>2]=0,w[A+28>>2]=Q(i),w[A+24>>2]=Q(e),w[A+20>>2]=Q(f)}function Ne(A){var r=0;return o[(A|=0)>>2]=20984,(r=o[A+60>>2])&&(Zn[o[o[r>>2]>>2]](r),(r=o[A+60>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r))),0|A}function pe(A){var r=0,f=0;return o[(A|=0)>>2]=16728,v[A+8|0]&&(r=o[A+12>>2])&&(f=o[A+4>>2],Zn[o[o[f>>2]+16>>2]](f,r)),0|A}function Fe(A){var r=0,f=0;return o[(A|=0)>>2]=16800,v[A+8|0]&&(r=o[A+12>>2])&&(f=o[A+4>>2],Zn[o[o[f>>2]+16>>2]](f,r)),0|A}function Re(A){var r=0,f=0;return o[(A|=0)>>2]=18036,v[A+8|0]&&(r=o[A+12>>2])&&(f=o[A+4>>2],Zn[o[o[f>>2]+16>>2]](f,r)),0|A}function Ye(A){var r=0,f=0;return o[(A|=0)>>2]=18112,v[A+8|0]&&(r=o[A+12>>2])&&(f=o[A+4>>2],Zn[o[o[f>>2]+16>>2]](f,r)),0|A}function Ve(A,r,f){return A=ae(A),w[A+52>>2]=r,o[A>>2]=19240,o[A+60>>2]=1,o[A+4>>2]=10,w[A+36>>2]=r,o[A+48>>2]=0,w[A+44>>2]=r,w[A+40>>2]=f*m(.5),A}function ge(A){var r=0,f=0;return r=0,(f=A>>>23&255)>>>0<127||(r=2,f>>>0>150||(r=0,(f=1<<150-f)-1&A||(r=A&f?1:2))),r}function Xe(A){var r;return m((A*=A)*(r=A*A)*(2439044879627741e-20*A-.001388676377460993)+.04166662332373906*r+-.499999997251031*A+1)}function De(A,r){var f,e=0;return f=AA(A),e=o[A+288>>2],o[r+8>>2]=o[A+284>>2],o[r+12>>2]=e,e=o[A+280>>2],o[r>>2]=o[A+276>>2],o[r+4>>2]=e,f}function Ce(A,r,f,e,i,n){var a,t=0;t=(a=o[A+4>>2])>>8,A=o[A>>2],1&a&&(t=o[o[e>>2]+t>>2]),Zn[o[o[A>>2]+20>>2]](A,r,f,e+t|0,2&a?i:2,n)}function Je(A,r,f,e,i){var n,a=0;a=(n=o[A+4>>2])>>8,A=o[A>>2],1&n&&(a=o[o[f>>2]+a>>2]),Zn[o[o[A>>2]+24>>2]](A,r,f+a|0,2&n?e:2,i)}function xe(A){var r=0;A=A>>>0<=1?1:A;A:{for(;;){if(r=iA(A))break A;if(!(r=o[9108]))break;Zn[0|r]()}J(),d()}return r}function ye(A,r){A|=0;var f=0;f=o[4+(r|=0)>>2],o[A+24>>2]=o[r>>2],o[A+28>>2]=f,f=o[r+12>>2],o[A+32>>2]=o[r+8>>2],o[A+36>>2]=f}function Me(A){var r;o[(A|=0)>>2]=25340,!(r=o[A+124>>2])||!r|!v[A+128|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),DA(A)}function He(A,r){var f;return A|=0,r|=0,S=f=S-16|0,o[f+12>>2]=r,A=0|Zn[0|A](f+12|0),V(o[f+12>>2]),S=f+16|0,0|A}function Ie(A,r){var f;Jr(A,r),(f=o[A+4>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+4>>2]=r,o[A+12>>2]=o[A+12>>2]-1}function Te(A,r){r|=0,o[(A|=0)>>2]=0,o[A+4>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A+(o[r+60>>2]<<2)>>2]=1065353216}function Ue(A,r,f){return f?(0|A)==(0|r)?1:!le(o[A+4>>2],o[r+4>>2]):o[A+4>>2]==o[r+4>>2]}function je(A,r,f,e,i){A|=0,r=m(r),f=m(f),e=m(e),i=m(i),w[A+12>>2]=i,w[A+8>>2]=e,w[A+4>>2]=f,w[A>>2]=r}function ze(A,r){3&v[A+204|0]&&!r||(4!=(-2&o[A+220>>2])&&(o[A+220>>2]=1),o[A+224>>2]=0)}function Pe(A,r,f){o[(f|=0)>>2]=0,o[f+4>>2]=0,o[f+8>>2]=0,o[f+12>>2]=0}function Oe(A,r,f,e,i,n){r|=0,f|=0,e|=0,i|=0,n|=0,Zn[0|(A|=0)](r,f,e,i,n)}function Se(A,r){r|=0,A=o[4+(A|=0)>>2],Zn[o[o[A>>2]+8>>2]](A,o[r+36>>2])}function Le(A){var r;return(-1>>>(r=31&A)&-2)<>>A}function $e(A,r){return r|=0,A=o[24+(A|=0)>>2],0|Zn[o[o[A>>2]+8>>2]](A,r)}function Ke(A,r,f,e){r|=0,f|=0,e|=0,Zn[o[o[(A|=0)>>2]+80>>2]](A,r,f,e)}function qe(A,r,f,e){r|=0,f|=0,e|=0,Zn[o[o[(A|=0)>>2]+8>>2]](A,r,f,e)}function _e(A){o[(A|=0)>>2]=24e3,A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))}function Ai(A,r,f,e,i){r|=0,f|=0,e|=0,i|=0,Zn[0|(A|=0)](r,f,e,i)}function ri(A){(A=Ne(A|=0))&&(o[8489]=o[8489]+1,Zn[o[8291]](A))}function fi(A,r,f,e){return r|=0,f|=0,e|=0,0|Zn[0|(A|=0)](r,f,e)}function ei(){return m(m(1))}function ii(A){nf(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))}function ni(A,r){return r|=0,o[o[236+(A|=0)>>2]+(r<<2)>>2]}function ai(A){(A|=0)&&(o[8489]=o[8489]+1,Zn[o[8291]](A))}function ti(A,r,f,e){r|=0,f|=0,e|=0,Zn[0|(A|=0)](r,f,e)}function oi(A){return A=ae(A),o[A+60>>2]=0,o[A>>2]=20984,A}function ci(A){return o[(A|=0)>>2]=15820,Ee(A+8|0),0|A}function bi(A,r){r|=0,Zn[o[o[(A|=0)>>2]+68>>2]](A,r)}function ui(A,r){r|=0,Zn[o[o[(A|=0)>>2]+64>>2]](A,r)}function li(A,r){r|=0,Zn[o[o[(A|=0)>>2]+8>>2]](A,r)}function si(A){return A?31-E(A-1^A)|0:32}function ki(A){(A|=0)&&Zn[o[o[A>>2]+12>>2]](A)}function di(A){(A|=0)&&Zn[o[o[A>>2]+4>>2]](A)}function vi(A,r,f){r|=0,f|=0,Zn[0|(A|=0)](r,f)}function hi(A,r,f){tr(A+4|0,A+372|0,A+388|0,r,f)}function Bi(A,r){return r|=0,0|Zn[0|(A|=0)](r)}function wi(A,r,f,e){T(0|A,0|r,8,0,0|f,-1,0|e)}function Zi(){return 0}function Gi(A){return A=mf(A),o[A>>2]=20608,A}function mi(){}function Qi(){}function Ei(A){return o[(A|=0)>>2]=24e3,0|A}function Wi(A){return o[o[(A|=0)>>2]-4>>2]}function Ni(A,r){r|=0,Zn[o[(A|=0)>>2]](r)}function pi(A,r){A|=0,r=m(r),w[A+52>>2]=r}function Fi(A,r){r|=0,o[16+(A|=0)>>2]=r}function Ri(A){return m(w[52+(A|=0)>>2])}function Yi(A){return m(w[4+(A|=0)>>2])}function Vi(A){return m(w[8+(A|=0)>>2])}function gi(A){return o[204+(A|=0)>>2]}function Xi(A){return o[96+(A|=0)>>2]}function Di(A){return o[56+(A|=0)>>2]}function Ci(A){return m(w[(A|=0)>>2])}function Ji(A){return o[60+(A|=0)>>2]}function xi(A){return o[72+(A|=0)>>2]}function yi(A){return o[16+(A|=0)>>2]}function Mi(A){return o[24+(A|=0)>>2]}function Hi(A){return o[84+(A|=0)>>2]}function Ii(){return 1}function Ti(){}function Ui(A){return o[4+(A|=0)>>2]}function ji(A){return o[8+(A|=0)>>2]}function zi(){}function Pi(A){return 0|iA(A|=0)}function Oi(A){return 132+(A|=0)|0}function Si(A){return 20+(A|=0)|0}function Li(A){return 24+(A|=0)|0}function $i(A){return 36+(A|=0)|0}function Ki(A){return 52+(A|=0)|0}function qi(A){return 68+(A|=0)|0}function _i(A){return 92+(A|=0)|0}function An(A){return 72+(A|=0)|0}function rn(A){return 48+(A|=0)|0}function fn(A){return 4+(A|=0)|0}function en(A){return 0|A}function nn(){return 84}function an(){return 60}function tn(){return 52}function on(){return 12}function cn(){return 0}function bn(){}function un(){return 2}function ln(){return 3}function sn(){return 1}function kn(){return 6}function dn(){}function vn(A){DA(A|=0)}function hn(){d()}function Bn(){}i(r=v,1024,"UXVhdF96AFZlYzNfegBFbXB0eQBSaWdpZEJvZHlfc2V0R3Jhdml0eQBEeW5hbWljc1dvcmxkX3NldEdyYXZpdHkAVHJhbnNmb3JtX3NldElkZW50aXR5AEdlbmVyaWM2RG9mU3ByaW5nMkNvbnN0cmFpbnRfc2V0VGFyZ2V0VmVsb2NpdHkASGluZ2VDb25zdHJhaW50X3NldE1vdG9yVmVsb2NpdHkAUmlnaWRCb2R5X3NldEFuZ3VsYXJWZWxvY2l0eQBSaWdpZEJvZHlfZ2V0QW5ndWxhclZlbG9jaXR5AFJpZ2lkQm9keV9zZXRMaW5lYXJWZWxvY2l0eQBSaWdpZEJvZHlfZ2V0TGluZWFyVmVsb2NpdHkAQ2hhcmFjdGVyQ29udHJvbGxlcl9zZXRPdmVybGFwUmVjb3ZlcnkASGluZ2VDb25zdHJhaW50X3NldEFuZ3VsYXJPbmx5AER5bmFtaWNzV29ybGRfcmVtb3ZlUmlnaWRCb2R5AER5bmFtaWNzV29ybGRfYWRkUmlnaWRCb2R5AFR5cGVkQ29uc3RyYWludF9nZXRGaXhlZEJvZHkAUXVhdF95AFZlYzNfeQBCb3gAU2ltcGxleFNoYXBlX2FkZFZlcnRleABDb2xsaXNpb25PYmplY3Rfc2V0VXNlckluZGV4AENvbGxpc2lvbk9iamVjdF9nZXRVc2VySW5kZXgAQ29uZVNoYXBlX3NldENvbmVVcEluZGV4AFF1YXRfeABWZWMzX3gAUmlnaWRCb2R5X25ldwBIaW5nZUNvbnN0cmFpbnRfbmV3AEZpeGVkQ29uc3RyYWludF9uZXcAUDJQQ29uc3RyYWludF9uZXcAR2VuZXJpYzZEb2ZTcHJpbmcyQ29uc3RyYWludF9uZXcAQ29sbGlzaW9uT2JqZWN0X25ldwBRdWF0X25ldwBTZXF1ZW50aWFsSW1wdWxzZUNvbnN0cmFpbnRTb2x2ZXJfbmV3AEJveENoYXJhY3RlckNvbnRyb2xsZXJfbmV3AENhcHN1bGVDaGFyYWN0ZXJDb250cm9sbGVyX25ldwBDb2xsaXNpb25EaXNwYXRjaGVyX25ldwBUcmFuc2Zvcm1fbmV3AGNjTWF0ZXJpYWxfbmV3AFRyaWFuZ2xlTWVzaF9uZXcARGJ2dEJyb2FkcGhhc2VfbmV3AEJveFNoYXBlX25ldwBTaW1wbGV4U2hhcGVfbmV3AEN5bGluZGVyU2hhcGVfbmV3AFRlcnJhaW5TaGFwZV9uZXcAQ29udmV4VHJpYW5nbGVNZXNoU2hhcGVfbmV3AFNjYWxlZEJ2aFRyaWFuZ2xlTWVzaFNoYXBlX25ldwBTcGhlcmVTaGFwZV9uZXcAQ29uZVNoYXBlX25ldwBTdGF0aWNQbGFuZVNoYXBlX25ldwBDYXBzdWxlU2hhcGVfbmV3AGNjQ29tcG91bmRTaGFwZV9uZXcAY2NEaXNjcmV0ZUR5bmFtaWNzV29ybGRfbmV3AEJveENoYXJhY3RlckNvbnRyb2xsZXJEZXNjX25ldwBDYXBzdWxlQ2hhcmFjdGVyQ29udHJvbGxlckRlc2NfbmV3AFZlYzNfbmV3AERlYnVnRHJhdwBRdWF0X3cAb25TaGFwZUhpdEV4dABDb2xsaXNpb25Xb3JsZF9yYXlUZXN0AENvbGxpc2lvbldvcmxkX2NvbnZleFN3ZWVwVGVzdABwcmVkaWN0aXZlIGNvbnZleFN3ZWVwVGVzdABDb250cm9sbGVySGl0UmVwb3J0AHVuc2lnbmVkIHNob3J0AGlzbGFuZFVuaW9uRmluZEFuZFF1aWNrU29ydABQZXJzaXN0ZW50TWFuaWZvbGRfZ2V0Q29udGFjdFBvaW50AEdlbmVyaWM2RG9mU3ByaW5nMkNvbnN0cmFpbnRfc2V0RXF1aWxpYnJpdW1Qb2ludABEeW5hbWljc1dvcmxkX3JlbW92ZUNvbnN0cmFpbnQARHluYW1pY3NXb3JsZF9hZGRDb25zdHJhaW50AHVuc2lnbmVkIGludABCb3hDaGFyYWN0ZXJDb250cm9sbGVyX3NldEhhbGZTaWRlRXh0ZW50AEJveENoYXJhY3RlckNvbnRyb2xsZXJfc2V0SGFsZkZvcndhcmRFeHRlbnQAaW1wbGVtZW50AFN0YXRpY1BsYW5lU2hhcGVfc2V0UGxhbmVDb25zdGFudABIaW5nZUNvbnN0cmFpbnRfc2V0TGltaXQAR2VuZXJpYzZEb2ZTcHJpbmcyQ29uc3RyYWludF9zZXRMaW1pdABDaGFyYWN0ZXJDb250cm9sbGVyX3NldFNsb3BlTGltaXQAUmF5Q2FsbGJhY2tfaGFzSGl0AENvbnZleENhbGxiYWNrX2hhc0hpdABDYXBzdWxlQ2hhcmFjdGVyQ29udHJvbGxlcl9zZXRIZWlnaHQAQ29uZVNoYXBlX3NldEhlaWdodABCb3hDaGFyYWN0ZXJDb250cm9sbGVyX3NldEhhbGZIZWlnaHQAQ2hhcmFjdGVyQ29udHJvbGxlcl9zZXRDb250YWN0T2Zmc2V0AENoYXJhY3RlckNvbnRyb2xsZXJfc2V0U3RlcE9mZnNldABjY0Nsb3Nlc3RSYXlDYWxsYmFja19yZXNldABjY0FsbFJheUNhbGxiYWNrX3Jlc2V0AGNjQ2xvc2VzdENvbnZleENhbGxiYWNrX3Jlc2V0AGNjQWxsQ29udmV4Q2FsbGJhY2tfcmVzZXQAUXVhdF9zZXQAY2NNYXRlcmlhbF9zZXQAVmVjM19zZXQASGluZ2VDb25zdHJhaW50X3NldE1vdG9yVGFyZ2V0AEdlbmVyaWM2RG9mU3ByaW5nMkNvbnN0cmFpbnRfc2V0U2Vydm9UYXJnZXQAX19kZXN0cnVjdABDaGFyYWN0ZXJDb250cm9sbGVyX2dldEdob3N0T2JqZWN0AENvbnRyb2xsZXJTaGFwZUhpdF9nZXRIaXRDb2xsaXNpb25PYmplY3QAQ29sbGlzaW9uV29ybGRfcmVtb3ZlQ29sbGlzaW9uT2JqZWN0AENvbGxpc2lvbldvcmxkX2FkZENvbGxpc2lvbk9iamVjdABDb2xsaXNpb25PYmplY3RfaXNTdGF0aWNPYmplY3QAQ29sbGlzaW9uT2JqZWN0X2lzS2luZW1hdGljT2JqZWN0AENvbGxpc2lvbk9iamVjdF9pc1N0YXRpY09yS2luZW1hdGljT2JqZWN0AGZsb2F0AGludF9hcnJheV9hdABWZWMzX2FycmF5X2F0AHVpbnQ2NF90AENhcHN1bGVDaGFyYWN0ZXJDb250cm9sbGVyX3NldFJhZGl1cwBDb25lU2hhcGVfc2V0UmFkaXVzAENvbGxpc2lvbk9iamVjdF9zZXRDY2RTd2VwdFNwaGVyZVJhZGl1cwBTcGhlcmVTaGFwZV9zZXRVbnNjYWxlZFJhZGl1cwBzb2x2ZUNvbnN0cmFpbnRzAEJveFNoYXBlX3NldFVuc2NhbGVkSGFsZkV4dGVudHMAUGVyc2lzdGVudE1hbmlmb2xkX2dldE51bUNvbnRhY3RzAGNyZWF0ZVByZWRpY3RpdmVDb250YWN0cwBHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50X3NldFN0aWZmbmVzcwBidENvbXBvdW5kQ29tcG91bmRMZWFmQ2FsbGJhY2s6OlByb2Nlc3MAUmlnaWRCb2R5X3NldE1hc3MAY2NBbGxSYXlDYWxsYmFja19nZXRDb2xsaXNpb25TaGFwZVB0cnMAY2NBbGxDb252ZXhDYWxsYmFja19nZXRDb2xsaXNpb25TaGFwZVB0cnMAZGlzcGF0Y2hBbGxDb2xsaXNpb25QYWlycwBidEhhc2hlZE92ZXJsYXBwaW5nUGFpckNhY2hlOjpwcm9jZXNzQWxsT3ZlcmxhcHBpbmdQYWlycwBjYWxjdWxhdGVPdmVybGFwcGluZ1BhaXJzAFJpZ2lkQm9keV9zZXRNYXNzUHJvcHMAQ29udHJvbGxlckhpdF9nZXRIaXRXb3JsZFBvcwB1cGRhdGVBY3Rpb25zAHNvbHZlR3JvdXBDYWNoZUZyaWVuZGx5SXRlcmF0aW9ucwBDb252ZXhJbnRlcm5hbFNoYXBlX2dldEltcGxpY2l0U2hhcGVEaW1lbnNpb25zAGludGVncmF0ZVRyYW5zZm9ybXMAUmlnaWRCb2R5X3NldEZsYWdzAGNjQ2xvc2VzdFJheUNhbGxiYWNrX3NldEZsYWdzAGNjQWxsUmF5Q2FsbGJhY2tfc2V0RmxhZ3MAUmlnaWRCb2R5X2dldEZsYWdzAENvbGxpc2lvbk9iamVjdF9zZXRDb2xsaXNpb25GbGFncwBDb2xsaXNpb25PYmplY3RfZ2V0Q29sbGlzaW9uRmxhZ3MAQ29tcG91bmRTaGFwZV9nZXROdW1DaGlsZFNoYXBlcwBjbGVhckxpbmVzAGZsdXNoTGluZXMASGluZ2VDb25zdHJhaW50X3NldEZyYW1lcwBGaXhlZENvbnN0cmFpbnRfc2V0RnJhbWVzAEdlbmVyaWM2RG9mU3ByaW5nMkNvbnN0cmFpbnRfc2V0RnJhbWVzAFJpZ2lkQm9keV9jbGVhckZvcmNlcwBwcm9jZXNzSXNsYW5kcwBjYWxjdWxhdGVTaW11bGF0aW9uSXNsYW5kcwBSaWdpZEJvZHlfc2V0U2xlZXBpbmdUaHJlc2hvbGRzAHJlbGVhc2UgcHJlZGljdGl2ZSBjb250YWN0IG1hbmlmb2xkcwBEaXNwYXRjaGVyX2dldE51bU1hbmlmb2xkcwBzeW5jUGh5c2ljc1RvR3JhcGhpY3MAdXBkYXRlQWFiYnMAY2NDbG9zZXN0UmF5Q2FsbGJhY2tfZ2V0Q29sbGlzaW9uU2hhcGVQdHIAY2NDbG9zZXN0Q29udmV4Q2FsbGJhY2tfZ2V0Q29sbGlzaW9uU2hhcGVQdHIASGluZ2VDb25zdHJhaW50X2VuYWJsZU1vdG9yAEdlbmVyaWM2RG9mU3ByaW5nMkNvbnN0cmFpbnRfZW5hYmxlTW90b3IAUmlnaWRCb2R5X3NldEFuZ3VsYXJGYWN0b3IAUmlnaWRCb2R5X3NldExpbmVhckZhY3RvcgBEZWJ1Z0RyYXdfc2V0Q29udGFjdFBvaW50Q29sb3IARGVidWdEcmF3X3NldENvbnN0cmFpbnRMaW1pdENvbG9yAERlYnVnRHJhd19zZXRXYW50c0RlYWN0aXZhdGlvbk9iamVjdENvbG9yAERlYnVnRHJhd19zZXREaXNhYmxlZERlYWN0aXZhdGlvbk9iamVjdENvbG9yAERlYnVnRHJhd19zZXREaXNhYmxlZFNpbXVsYXRpb25PYmplY3RDb2xvcgBEZWJ1Z0RyYXdfc2V0RGVhY3RpdmVPYmplY3RDb2xvcgBEZWJ1Z0RyYXdfc2V0QWN0aXZlT2JqZWN0Q29sb3IARGVidWdEcmF3X3NldEFBQkJDb2xvcgBDb250cm9sbGVySGl0X2dldEhpdE1vdGlvbkRpcgBDb2xsaXNpb25Xb3JsZF9zZXREZWJ1Z0RyYXdlcgBDb2xsaXNpb25TaGFwZV9zZXRVc2VyUG9pbnRlcgBEcmF3V3JhcHBlcgBDb250cm9sbGVySGl0UmVwb3J0V3JhcHBlcgBNb3Rpb25TdGF0ZVdyYXBwZXIAdW5zaWduZWQgY2hhcgBjY01vdGlvblN0YXRlX3NldHVwAHNvbHZlR3JvdXBDYWNoZUZyaWVuZGx5U2V0dXAAc29sdmVHcm91cABDeWxpbmRlclNoYXBlX3VwZGF0ZVByb3AAQ2Fwc3VsZVNoYXBlX3VwZGF0ZVByb3AAY2NEaXNjcmV0ZUR5bmFtaWNzV29ybGRfc2V0QWxsb3dTbGVlcABHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50X3NldFNlcnZvAGFwcGx5IHNwZWN1bGF0aXZlIGNvbnRhY3QgcmVzdGl0dXRpb24AcHJlZGljdFVuY29uc3RyYWludE1vdGlvbgBDaGFyYWN0ZXJDb250cm9sbGVyX2dldFBvc2l0aW9uAG5vdGlmeU9uRGVzdHJ1Y3Rpb24AcGVyZm9ybURpc2NyZXRlQ29sbGlzaW9uRGV0ZWN0aW9uAGNjQWxsUmF5Q2FsbGJhY2tfZ2V0Q2xvc2VzdEhpdEZyYWN0aW9uAGNjQ2xvc2VzdENvbnZleENhbGxiYWNrX2dldENsb3Nlc3RIaXRGcmFjdGlvbgBjY0FsbENvbnZleENhbGxiYWNrX2dldENsb3Nlc3RIaXRGcmFjdGlvbgBEeW5hbWljc1dvcmxkX3JlbW92ZUFjdGlvbgBEeW5hbWljc1dvcmxkX2FkZEFjdGlvbgBUcmFuc2Zvcm1fc2V0Um90YXRpb24AVHJhbnNmb3JtX2dldFJvdGF0aW9uAE92ZXJmbG93IGluIEFBQkIsIG9iamVjdCByZW1vdmVkIGZyb20gc2ltdWxhdGlvbgBEeW5hbWljc1dvcmxkX3N0ZXBTaW11bGF0aW9uAGludGVybmFsU2luZ2xlU3RlcFNpbXVsYXRpb24AQ2hhcmFjdGVyQ29udHJvbGxlcl9zZXRDb2xsaXNpb24AYnRDb252ZXhDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtOjpwcm9jZXNzQ29sbGlzaW9uAENvbGxpc2lvblNoYXBlX3NldE1hcmdpbgBUcmFuc2Zvcm1fZ2V0T3JpZ2luAFRyYW5zZm9ybV9nZXRSb3RhdGlvbkFuZE9yaWdpbgBNb3Rpb25TdGF0ZV9zZXRXb3JsZFRyYW5zZm9ybQBSaWdpZEJvZHlfZ2V0V29ybGRUcmFuc2Zvcm0AQ29sbGlzaW9uT2JqZWN0X2dldFdvcmxkVHJhbnNmb3JtAE1vdGlvblN0YXRlX2dldFdvcmxkVHJhbnNmb3JtAENvbXBvdW5kU2hhcGVfdXBkYXRlQ2hpbGRUcmFuc2Zvcm0AYm9vbABlbXNjcmlwdGVuOjp2YWwARGlzcGF0Y2hlcl9nZXRNYW5pZm9sZEJ5SW5kZXhJbnRlcm5hbABTdGF0aWNQbGFuZVNoYXBlX2dldFBsYW5lTm9ybWFsAENvbnRyb2xsZXJIaXRfZ2V0SGl0V29ybGROb3JtYWwAQ29sbGlzaW9uT2JqZWN0X3NldE1hdGVyaWFsAENvbGxpc2lvblNoYXBlX3NldE1hdGVyaWFsAENvbGxpc2lvbk9iamVjdF9zZXRJZ25vcmVDb2xsaXNpb25DaGVjawBCdmhUcmlhbmdsZU1lc2hTaGFwZV9zZXRPcHRpbWl6ZWRCdmgAQnZoVHJpYW5nbGVNZXNoU2hhcGVfZ2V0T3B0aW1pemVkQnZoAENvbnRyb2xsZXJIaXRfZ2V0SGl0TW90aW9uTGVuZ3RoAENvbnZleFRyaW1lc2gAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAc3RkOjpzdHJpbmcAc3RkOjp1MTZzdHJpbmcAc3RkOjp1MzJzdHJpbmcAR2VuZXJpYzZEb2ZTcHJpbmcyQ29uc3RyYWludF9lbmFibGVTcHJpbmcAQ0NEIG1vdGlvbiBjbGFtcGluZwBSaWdpZEJvZHlfc2V0RGFtcGluZwBHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50X3NldERhbXBpbmcAUmlnaWRCb2R5X3dhbnRzU2xlZXBpbmcAQ29sbGlzaW9uT2JqZWN0X2lzU2xlZXBpbmcAQ29sbGlzaW9uU2hhcGVfc2V0TG9jYWxTY2FsaW5nAGludF9hcnJheV9zaXplAFR5cGVkQ29uc3RyYWludF9zZXREYmdEcmF3U2l6ZQBUeXBlZENvbnN0cmFpbnRfZ2V0RGJnRHJhd1NpemUAQ2hhcmFjdGVyQ29udHJvbGxlcl9tb3ZlAENvbGxpc2lvbk9iamVjdF9pc0FjdGl2ZQBSaWdpZEJvZHlfYXBwbHlUb3JxdWUAX3NhZmVfZGVsZXRlAENvbGxpc2lvbk9iamVjdF9hY3RpdmF0ZQBSaWdpZEJvZHlfY2xlYXJTdGF0ZQBSaWdpZEJvZHlfZ2V0TW90aW9uU3RhdGUAQ29sbGlzaW9uT2JqZWN0X2dldEFjdGl2YXRpb25TdGF0ZQB1cGRhdGVBY3RpdmF0aW9uU3RhdGUAQ29sbGlzaW9uT2JqZWN0X2ZvcmNlQWN0aXZhdGlvblN0YXRlAFJpZ2lkQm9keV9hcHBseUltcHVsc2UASGluZ2VDb25zdHJhaW50X3NldE1heE1vdG9ySW1wdWxzZQBDb250cm9sbGVyU2hhcGVIaXRfZ2V0SGl0U2hhcGUAQ29sbGlzaW9uT2JqZWN0X3NldENvbGxpc2lvblNoYXBlAENvbGxpc2lvbk9iamVjdF9nZXRDb2xsaXNpb25TaGFwZQBDaGFyYWN0ZXJDb250cm9sbGVyX2dldENvbGxpc2lvblNoYXBlAENhcHN1bGVTaGFwZQBDb21wb3VuZFNoYXBlX2dldENoaWxkU2hhcGUAQ29tcG91bmRTaGFwZV9yZW1vdmVDaGlsZFNoYXBlAENvbXBvdW5kU2hhcGVfYWRkQ2hpbGRTaGFwZQBDb25lAG9uRGVidWdEcmF3TGluZQBidENvbnZleFRyaWFuZ2xlQ2FsbGJhY2s6OnByb2Nlc3NUcmlhbmdsZQBUcmlhbmdsZU1lc2hfYWRkVHJpYW5nbGUAZG91YmxlAF9mcmVlAERlYnVnRHJhd19zZXREZWJ1Z01vZGUARGVidWdEcmF3X2dldERlYnVnTW9kZQBSaWdpZEJvZHlfYXBwbHlGb3JjZQBHZW5lcmljNkRvZlNwcmluZzJDb25zdHJhaW50X3NldE1heE1vdG9yRm9yY2UAR2VuZXJpYzZEb2ZTcHJpbmcyQ29uc3RyYWludF9zZXRCb3VuY2UAQ29sbGlzaW9uU2hhcGVfaXNDb21wb3VuZABjb252ZXhTd2VlcENvbXBvdW5kAGV4dGVuZABDb2xsaXNpb25Xb3JsZF9kZWJ1Z0RyYXdXb3JsZABjY0Nsb3Nlc3RSYXlDYWxsYmFja19nZXRIaXRQb2ludFdvcmxkAGNjQWxsUmF5Q2FsbGJhY2tfZ2V0SGl0UG9pbnRXb3JsZABjY0Nsb3Nlc3RDb252ZXhDYWxsYmFja19nZXRIaXRQb2ludFdvcmxkAGNjQWxsQ29udmV4Q2FsbGJhY2tfZ2V0SGl0UG9pbnRXb3JsZABjY0Nsb3Nlc3RSYXlDYWxsYmFja19nZXRIaXROb3JtYWxXb3JsZABjY0FsbFJheUNhbGxiYWNrX2dldEhpdE5vcm1hbFdvcmxkAGNjQ2xvc2VzdENvbnZleENhbGxiYWNrX2dldEhpdE5vcm1hbFdvcmxkAGNjQWxsQ29udmV4Q2FsbGJhY2tfZ2V0SGl0Tm9ybWFsV29ybGQAQ29sbGlzaW9uT2JqZWN0X3NldENjZE1vdGlvblRocmVzaG9sZABDb2xsaXNpb25PYmplY3Rfc2V0Q29udGFjdFByb2Nlc3NpbmdUaHJlc2hvbGQAUmlnaWRCb2R5X2dldExpbmVhclNsZWVwaW5nVGhyZXNob2xkAFR5cGVkQ29uc3RyYWludF9zZXRNYXhJbXB1bHNlVGhyZXNob2xkAHZvaWQAX21hbGxvYwBEZWZhdWx0Q29sbGlzaW9uQ29uZmlndXJhdGlvbl9zdGF0aWMAY2NDbG9zZXN0UmF5Q2FsbGJhY2tfc3RhdGljAGNjQWxsUmF5Q2FsbGJhY2tfc3RhdGljAGNjQ2xvc2VzdENvbnZleENhbGxiYWNrX3N0YXRpYwBjY0FsbENvbnZleENhbGxiYWNrX3N0YXRpYwBFbXB0eVNoYXBlX3N0YXRpYwBDb2xsaXNpb25TaGFwZV9nZXRBYWJiAGJ0SW50SW5kZXhEYXRhAGJ0TWVzaFBhcnREYXRhAGJ0R2VuZXJpYzZEb2ZTcHJpbmcyQ29uc3RyYWludERhdGEAYnRTaG9ydEludEluZGV4VHJpcGxldERhdGEAYnRDaGFySW5kZXhUcmlwbGV0RGF0YQBidFJpZ2lkQm9keUZsb2F0RGF0YQBidFBvaW50MlBvaW50Q29uc3RyYWludEZsb2F0RGF0YQBidEhpbmdlQ29uc3RyYWludEZsb2F0RGF0YQBidFR5cGVkQ29uc3RyYWludEZsb2F0RGF0YQBidENvbGxpc2lvbk9iamVjdEZsb2F0RGF0YQBidFF1YW50aXplZEJ2aEZsb2F0RGF0YQBidER5bmFtaWNzV29ybGRGbG9hdERhdGEAYnRWZWN0b3IzRmxvYXREYXRhAGJ0QnZoU3VidHJlZUluZm9EYXRhAGJ0Q3lsaW5kZXJTaGFwZURhdGEAYnRDb2xsaXNpb25TaGFwZURhdGEAYnRDb252ZXhJbnRlcm5hbFNoYXBlRGF0YQBidFRyaWFuZ2xlTWVzaFNoYXBlRGF0YQBidFNjYWxlZFRyaWFuZ2xlTWVzaFNoYXBlRGF0YQBidENvbmVTaGFwZURhdGEAYnRTdGF0aWNQbGFuZVNoYXBlRGF0YQBidENhcHN1bGVTaGFwZURhdGEAYnRDb21wb3VuZFNoYXBlRGF0YQBidFZlY3RvcjNEb3VibGVEYXRhAGJ0UXVhbnRpemVkQnZoTm9kZURhdGEAYnRPcHRpbWl6ZWRCdmhOb2RlRGF0YQBidFN0cmlkaW5nTWVzaEludGVyZmFjZURhdGEAYnRDb21wb3VuZFNoYXBlQ2hpbGREYXRhAENvbGxpc2lvblNoYXBlX2NhbGN1bGF0ZUxvY2FsSW5lcnRpYQBDeWxpbmRlclkAU0VOU09SAFNDQUxFREJWSFRSSUFOR0xFTUVTSABTUEhFUkUAU1RBVElDUExBTkUASEVJR0hURklFTEQAUDJQQ29uc3RyYWludF9zZXRQaXZvdEIATWFuaWZvbGRQb2ludF9nZXRfbV9sb2NhbFBvaW50QgBNYW5pZm9sZFBvaW50X2dldF9tX3Bvc2l0aW9uV29ybGRPbkIATWFuaWZvbGRQb2ludF9nZXRfbV9ub3JtYWxXb3JsZE9uQgBQMlBDb25zdHJhaW50X3NldFBpdm90QQBNYW5pZm9sZFBvaW50X2dldF9tX2xvY2FsUG9pbnRBAE1hbmlmb2xkUG9pbnRfZ2V0X21fcG9zaXRpb25Xb3JsZE9uQQBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgBidEJVX1NpbXBsZXgxdG80AF93cml0ZV9mMzIAX3JlYWRfZjMyAFBlcnNpc3RlbnRNYW5pZm9sZF9nZXRCb2R5MQBNYW5pZm9sZFBvaW50X2dldF9tX2luZGV4MQBNYW5pZm9sZFBvaW50X2dldFNoYXBlMQBQZXJzaXN0ZW50TWFuaWZvbGRfZ2V0Qm9keTAATWFuaWZvbGRQb2ludF9nZXRfbV9pbmRleDAATWFuaWZvbGRQb2ludF9nZXRTaGFwZTAAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEASWYgeW91IGNhbiByZXByb2R1Y2UgdGhpcywgcGxlYXNlIGVtYWlsIGJ1Z3NAY29udGludW91c3BoeXNpY3MuY29tCgBUaGFua3MuCgBQbGVhc2UgaW5jbHVkZSBhYm92ZSBpbmZvcm1hdGlvbiwgeW91ciBQbGF0Zm9ybSwgdmVyc2lvbiBvZiBPUy4KAE4yY2MyNmNjQ2xvc2VzdFJheVJlc3VsdENhbGxiYWNrRQBOMTZidENvbGxpc2lvbldvcmxkMjRDbG9zZXN0UmF5UmVzdWx0Q2FsbGJhY2tFAE4xNmJ0Q29sbGlzaW9uV29ybGQxN1JheVJlc3VsdENhbGxiYWNrRQBOMmNjMjZjY0FsbEhpdHNSYXlSZXN1bHRDYWxsYmFja0UATjE2YnRDb2xsaXNpb25Xb3JsZDI0QWxsSGl0c1JheVJlc3VsdENhbGxiYWNrRQBOMmNjMjljY0Nsb3Nlc3RDb252ZXhSZXN1bHRDYWxsYmFja0UATjE2YnRDb2xsaXNpb25Xb3JsZDI3Q2xvc2VzdENvbnZleFJlc3VsdENhbGxiYWNrRQBOMTZidENvbGxpc2lvbldvcmxkMjBDb252ZXhSZXN1bHRDYWxsYmFja0UATjJjYzI5Y2NBbGxIaXRzQ29udmV4UmVzdWx0Q2FsbGJhY2tFAE4xNmJ0Q29sbGlzaW9uV29ybGQyN0FsbEhpdHNDb252ZXhSZXN1bHRDYWxsYmFja0UATjJjYzE1Y2NDb21wb3VuZFNoYXBlRQAxM2J0TW90aW9uU3RhdGUAMTFidERlYnVnRHJhdwAxMmJ0SURlYnVnRHJhdwBQMTFidERlYnVnRHJhdwBQSzExYnREZWJ1Z0RyYXcAaWkAdgB2aQBQMTJidElEZWJ1Z0RyYXcAdmlpAHZpaWlpaQAxOGJ0RGVidWdEcmF3V3JhcHBlcgBOMTBlbXNjcmlwdGVuN3dyYXBwZXJJMTFidERlYnVnRHJhd0VFAE4xMGVtc2NyaXB0ZW44aW50ZXJuYWwxMVdyYXBwZXJCYXNlRQBQMThidERlYnVnRHJhd1dyYXBwZXIAUEsxOGJ0RGVidWdEcmF3V3JhcHBlcgBOMTBlbXNjcmlwdGVuM3ZhbEUAaWlpAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAGlpaWkAMjFidENvbnRyb2xsZXJIaXRSZXBvcnQAMjVidFVzZXJDb250cm9sbGVySGl0UmVwb3J0AFAyMWJ0Q29udHJvbGxlckhpdFJlcG9ydABQSzIxYnRDb250cm9sbGVySGl0UmVwb3J0AHZpaWlpADI4YnRDb250cm9sbGVySGl0UmVwb3J0V3JhcHBlcgBOMTBlbXNjcmlwdGVuN3dyYXBwZXJJMjFidENvbnRyb2xsZXJIaXRSZXBvcnRFRQBQMjhidENvbnRyb2xsZXJIaXRSZXBvcnRXcmFwcGVyAFBLMjhidENvbnRyb2xsZXJIaXRSZXBvcnRXcmFwcGVyAE4yY2MxM2NjTW90aW9uU3RhdGVFAFBOMmNjMTNjY01vdGlvblN0YXRlRQBQS04yY2MxM2NjTW90aW9uU3RhdGVFAHZpaWkAMjBjY01vdGlvblN0YXRlV3JhcHBlcgBOMTBlbXNjcmlwdGVuN3dyYXBwZXJJTjJjYzEzY2NNb3Rpb25TdGF0ZUVFRQBQMjBjY01vdGlvblN0YXRlV3JhcHBlcgBQSzIwY2NNb3Rpb25TdGF0ZVdyYXBwZXIAZmlpAHZpaWYAaWlmZmYAdmlpZmZmAGlpZmZmZgB2aWlmZmZmAGlpaWlpaQB2aWlmZmZmZgB2aWlmZgBpaWlpaWlpAHZpaWlmZgB2aWlpZgB2aWlmaQBpaWYAdmlpZmZpAGlpZmYAaWlpZgBpaWlpaWZmZgB2aWlpaWlpAGlpaWlpAHZpaWlmZmYAaWlpZmZmAGlpZmkAdmlpaWlpaWYAdmlpZmlmAGlpaWlmZgBpaWZmZmlpaWZmAGlpZmZmaWlpZmZmAAAAAAB0LwAAowEAAKQBAAClAQAApgEAAKcBAACoAQAAqQEAAKoBAACrAQAArAEAAK0BAACuAQAArwEAALABAAAxNmJ0RGJ2dEJyb2FkcGhhc2UAMjFidEJyb2FkcGhhc2VJbnRlcmZhY2UAAIh3AABTLwAAsHcAAEAvAABsLwAAAAAAANQvAACxAQAAsgEAALMBAAC0AQAAtQEAALYBAAC3AQAAMThidERidnRUcmVlQ29sbGlkZXIATjZidERidnQ4SUNvbGxpZGVFAIh3AAC5LwAAsHcAAKQvAADMLwAAAAAAABwwAACxAQAAuAEAALkBAAC6AQAAtQEAALYBAAC3AQAAMTlCcm9hZHBoYXNlUmF5VGVzdGVyAAAAsHcAAAQwAADMLwAAAAAAAGQwAACxAQAAuwEAALkBAAC8AQAAtQEAALYBAAC3AQAAMjBCcm9hZHBoYXNlQWFiYlRlc3RlcgAAsHcAAEwwAADMLwAAAAAAACQxAAC/AQAAwAEAAMEBAADCAQAAwwEAAMQBAADFAQAAxgEAAMcBAADIAQAAyQEAAMoBAADLAQAAzAEAAM0BAADOAQAAzwEAADI4YnRIYXNoZWRPdmVybGFwcGluZ1BhaXJDYWNoZQAyMmJ0T3ZlcmxhcHBpbmdQYWlyQ2FjaGUAMjVidE92ZXJsYXBwaW5nUGFpckNhbGxiYWNrAIh3AAD0MAAAsHcAANswAAAQMQAAsHcAALwwAAAYMQAAAAAAANAxAADQAQAA0QEAANIBAABaTjI4YnRIYXNoZWRPdmVybGFwcGluZ1BhaXJDYWNoZTE5Y2xlYW5Qcm94eUZyb21QYWlyc0VQMTdidEJyb2FkcGhhc2VQcm94eVAxMmJ0RGlzcGF0Y2hlckUxN0NsZWFuUGFpckNhbGxiYWNrADE3YnRPdmVybGFwQ2FsbGJhY2sAAACIdwAAsjEAALB3AABEMQAAyDEAAAAAAAB0MgAA0AEAANMBAADUAQAAWk4yOGJ0SGFzaGVkT3ZlcmxhcHBpbmdQYWlyQ2FjaGUzN3JlbW92ZU92ZXJsYXBwaW5nUGFpcnNDb250YWluaW5nUHJveHlFUDE3YnRCcm9hZHBoYXNlUHJveHlQMTJidERpc3BhdGNoZXJFMThSZW1vdmVQYWlyQ2FsbGJhY2sAAAAAsHcAAPAxAADIMQAAMTJidERpc3BhdGNoZXIAAIh3AACAMgAAAAAAAPgyAADWAQAA1wEAANgBAADZAQAA2gEAANsBAADcAQAA3QEAAN4BAADfAQAA4AEAAOEBAADiAQAA4wEAAOQBAADlAQAAMjFidENvbGxpc2lvbkRpc3BhdGNoZXIAsHcAAOAyAACQMgAAAAAAADQzAADQAQAA5gEAAOcBAAAyM2J0Q29sbGlzaW9uUGFpckNhbGxiYWNrAAAAsHcAABgzAADIMQAAAAAAAHgzAADoAQAA6QEAAOoBAADrAQAA7AEAAO0BAADuAQAAMTdidENvbGxpc2lvbk9iamVjdACIdwAAZDMAAAAAAADQMwAA7wEAAPABAADxAQAA8gEAAPMBAAD0AQAA9QEAAPYBAAD3AQAA+AEAAPkBAAD6AQAA+wEAADE2YnRDb2xsaXNpb25Xb3JsZAAAiHcAALwzAAAAAAAAFDQAAPwBAAD9AQAA/gEAAP8BAAAAAgAATjEyYnRDb252ZXhDYXN0MTBDYXN0UmVzdWx0RQAAAACIdwAA9DMAAAAAAADINAAAAQIAAAICAAADAgAABAIAAFpOMTZidENvbGxpc2lvbldvcmxkMjFyYXlUZXN0U2luZ2xlSW50ZXJuYWxFUksxMWJ0VHJhbnNmb3JtUzJfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18xN1JheVJlc3VsdENhbGxiYWNrRUUyOUJyaWRnZVRyaWFuZ2xlUmF5Y2FzdENhbGxiYWNrAACwdwAANDQAAAxbAAAAAAAAeDUAALEBAAAFAgAAuQEAAAYCAAC1AQAAtgEAALcBAABaTjE2YnRDb2xsaXNpb25Xb3JsZDIxcmF5VGVzdFNpbmdsZUludGVybmFsRVJLMTFidFRyYW5zZm9ybVMyX1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMTdSYXlSZXN1bHRDYWxsYmFja0VFOVJheVRlc3RlcgAAALB3AAD4NAAAzC8AAAAAAAAkNgAASAEAAAcCAAAIAgAACQIAAFpOMTZidENvbGxpc2lvbldvcmxkMjFyYXlUZXN0U2luZ2xlSW50ZXJuYWxFUksxMWJ0VHJhbnNmb3JtUzJfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18xN1JheVJlc3VsdENhbGxiYWNrRUUxNUxvY2FsSW5mb0FkZGVyMgAAAACwdwAAnDUAALh4AAAAAAAA+DYAAAECAAAKAgAACwIAAAwCAABaTjE2YnRDb2xsaXNpb25Xb3JsZDI1b2JqZWN0UXVlcnlTaW5nbGVJbnRlcm5hbEVQSzEzYnRDb252ZXhTaGFwZVJLMTFidFRyYW5zZm9ybVM1X1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMjBDb252ZXhSZXN1bHRDYWxsYmFja0VmRTMyQnJpZGdlVHJpYW5nbGVDb252ZXhjYXN0Q2FsbGJhY2sAALB3AABINgAAOFsAAAAAAADQNwAAAQIAAA0CAAALAgAADgIAAFpOMTZidENvbGxpc2lvbldvcmxkMjVvYmplY3RRdWVyeVNpbmdsZUludGVybmFsRVBLMTNidENvbnZleFNoYXBlUksxMWJ0VHJhbnNmb3JtUzVfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18yMENvbnZleFJlc3VsdENhbGxiYWNrRWZFMzJCcmlkZ2VUcmlhbmdsZUNvbnZleGNhc3RDYWxsYmFja18wAAAAALB3AAAcNwAAOFsAAAAAAACoOAAAsQEAAA8CAAC5AQAAEAIAALUBAAC2AQAAtwEAAFpOMTZidENvbGxpc2lvbldvcmxkMjVvYmplY3RRdWVyeVNpbmdsZUludGVybmFsRVBLMTNidENvbnZleFNoYXBlUksxMWJ0VHJhbnNmb3JtUzVfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18yMENvbnZleFJlc3VsdENhbGxiYWNrRWZFMjJidENvbXBvdW5kTGVhZkNhbGxiYWNrAAAAALB3AAAAOAAAzC8AAAAAAACsOQAAVgEAABECAAASAgAAEwIAAFpaTjE2YnRDb2xsaXNpb25Xb3JsZDI1b2JqZWN0UXVlcnlTaW5nbGVJbnRlcm5hbEVQSzEzYnRDb252ZXhTaGFwZVJLMTFidFRyYW5zZm9ybVM1X1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMjBDb252ZXhSZXN1bHRDYWxsYmFja0VmRU4yMmJ0Q29tcG91bmRMZWFmQ2FsbGJhY2sxMlByb2Nlc3NDaGlsZEVpUzVfUEsxNmJ0Q29sbGlzaW9uU2hhcGVFMTRMb2NhbEluZm9BZGRlcgAAsHcAAMw4AABQeQAAAAAAACw6AAAUAgAAFQIAABYCAAAxOWJ0U2luZ2xlUmF5Q2FsbGJhY2sAMjNidEJyb2FkcGhhc2VSYXlDYWxsYmFjawAyNGJ0QnJvYWRwaGFzZUFhYmJDYWxsYmFjawAAiHcAAPw5AACwdwAA4jkAABg6AACwdwAAzDkAACA6AAAAAAAAZDoAABQCAAAXAgAAGAIAADIxYnRTaW5nbGVTd2VlcENhbGxiYWNrALB3AABMOgAAIDoAAAAAAACwOgAAGQIAABoCAAAbAgAAHAIAAPz///+wOgAAHQIAAB4CAAAfAgAAMTdEZWJ1Z0RyYXdjYWxsYmFjawAMeAAAnDoAAAAAAAACAAAAxFUAAAIAAADwVQAAAgQAAAAAAABAOwAAIAIAACECAABOAQAATgEAAE4BAAAAAAAASDsAACICAAAjAgAATgEAAE4BAABOAQAAMzBidEFjdGl2YXRpbmdDb2xsaXNpb25BbGdvcml0aG0AMjBidENvbGxpc2lvbkFsZ29yaXRobQCIdwAAKTsAALB3AAAIOwAAQDsAAAAAAACsOwAAJAIAACUCAAAmAgAAAAAAANQ7AAAnAgAAKAIAACkCAAAqAgAAKwIAAE4yM2J0Q29udmV4Q29udmV4QWxnb3JpdGhtMTBDcmVhdGVGdW5jRQCwdwAAhDsAAMBCAAAyM2J0Q29udmV4Q29udmV4QWxnb3JpdGhtAAAAsHcAALg7AABIOwAAAAAAALw8AAAsAgAALQIAAC4CAAAvAgAAMAIAAFpOMjNidENvbnZleENvbnZleEFsZ29yaXRobTE2cHJvY2Vzc0NvbGxpc2lvbkVQSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUzJfUksxNmJ0RGlzcGF0Y2hlckluZm9QMTZidE1hbmlmb2xkUmVzdWx0RTEzYnREdW1teVJlc3VsdABOMzZidERpc2NyZXRlQ29sbGlzaW9uRGV0ZWN0b3JJbnRlcmZhY2U2UmVzdWx0RQAAAACIdwAAgTwAALB3AAD8OwAAtDwAAAAAAAB0PQAALAIAADECAAAyAgAAMwIAADQCAABaTjIzYnRDb252ZXhDb252ZXhBbGdvcml0aG0xNnByb2Nlc3NDb2xsaXNpb25FUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclMyX1JLMTZidERpc3BhdGNoZXJJbmZvUDE2YnRNYW5pZm9sZFJlc3VsdEUyMWJ0V2l0aG91dE1hcmdpblJlc3VsdAAAAACwdwAA5DwAALQ8AAAAAAAAuD0AACwCAAA1AgAANgIAADcCAAA4AgAAMjRidFBlcnR1cmJlZENvbnRhY3RSZXN1bHQAALB3AACcPQAAYEYAAAAAAAAYPgAAOQIAADoCAAA7AgAAPAIAAD0CAAAAAAAAQD4AAD4CAAA/AgAAQAIAADMzYnRDb252ZXhDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtALB3AAD0PQAASDsAADI0YnRDb252ZXhUcmlhbmdsZUNhbGxiYWNrAACwdwAAJD4AAMRVAAAAAAAA6D4AAEECAABCAgAAQwIAAGUBAABmAQAAZwEAAEQCAABFAgAARgIAAEcCAABsAQAASAIAAEkCAABKAgAASwIAAHEBAABMAgAATQIAAE4CAABPAgAAUAIAAFECAABSAgAAUwIAAFQCAABVAgAAVgIAAFcCAABYAgAAWQIAAFoCAABbAgAAMTVidFRyaWFuZ2xlU2hhcGUAAACwdwAA1D4AABRTAAAAAAAAqD8AAAECAABcAgAAXQIAAFpOMzNidENvbnZleENvbmNhdmVDb2xsaXNpb25BbGdvcml0aG0yMWNhbGN1bGF0ZVRpbWVPZkltcGFjdEVQMTdidENvbGxpc2lvbk9iamVjdFMxX1JLMTZidERpc3BhdGNoZXJJbmZvUDE2YnRNYW5pZm9sZFJlc3VsdEUzMUxvY2FsVHJpYW5nbGVTcGhlcmVDYXN0Q2FsbGJhY2sAAACwdwAACD8AAMRVAAAAAAAA8D8AAF4CAABfAgAA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"),i(r,18442,"gD8AAIC/"),i(r,18474,"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X3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAACIdwAAPGQAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAACIdwAAhGQAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAAiHcAAMxkAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRGlOU18xMWNoYXJfdHJhaXRzSURpRUVOU185YWxsb2NhdG9ySURpRUVFRQAAAIh3AAAYZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAACIdwAAZGUAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWFFRQAAiHcAAIxlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUAAIh3AAC0ZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAACIdwAA3GUAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXRFRQAAiHcAAARmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lpRUUAAIh3AAAsZgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAACIdwAAVGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWxFRQAAiHcAAHxmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ltRUUAAIh3AACkZgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJeEVFAACIdwAAzGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXlFRQAAiHcAAPRmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lmRUUAAIh3AAAcZwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZEVFAACIdwAARGcAANsPST/bD0m/5MsWQOTLFsAAAAAAAAAAgNsPSUDbD0nAAAAAADhj7T7aD0k/Xph7P9oPyT9pN6wxaCEiM7QPFDNoIaIzAwAAAAQAAAAEAAAABgAAAIP5ogBETm4A/CkVANFX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"),i(r,29331,"QPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNQAAAAAAAPA/dIUV07DZ7z8PiflsWLXvP1FbEtABk+8/e1F9PLhy7z+quWgxh1TvPzhidW56OO8/4d4f9Z0e7z8VtzEK/gbvP8upOjen8e4/IjQSTKbe7j8tiWFgCM7uPycqNtXav+4/gk+dViu07j8pVEjdB6vuP4VVOrB+pO4/zTt/Zp6g7j90X+zodZ/uP4cB63MUoe4/E85MmYml7j/boCpC5azuP+XFzbA3t+4/kPCjgpHE7j9dJT6yA9XuP63TWpmf6O4/R1778nb/7j+cUoXdmxnvP2mQ79wgN+8/h6T73BhY7z9fm3szl3zvP9qQpKKvpO8/QEVuW3bQ7z8AAAAAAADoQpQjkUv4aqw/88T6UM6/zj/WUgz/Qi7mPwAAAAAAADhD/oIrZUcVR0CUI5FL+Gq8PvPE+lDOvy4/1lIM/0Iulj++8/h57GH2PxkwllvG/t6/PYivSu1x9T+k/NQyaAvbv7AQ8PA5lfQ/e7cfCotB17+FA7iwlcnzP3vPbRrpndO/pWSIDBkN8z8xtvLzmx3Qv6COC3siXvI/8Ho7Gx18yb8/NBpKSrvxP588r5Pj+cK/uuWK8Fgj8T9cjXi/y2C5v6cAmUE/lfA/zl9Htp1vqr8AAAAAAADwPwAAAAAAAAAArEea/Yxg7j899SSfyjizP6BqAh+zpOw/upE4VKl2xD/m/GpXNiDrP9LkxEoLhM4/LaqhY9HC6T8cZcbwRQbUP+1BeAPmhug/+J8bLJyO2D9iSFP13GfnP8x7sU6k4Nw/C25JyRZ20j96xnWgaRnXv926p2wKx94/yPa+SEcV578ruCplRxX3P04xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAALB3AABAdQAAjHgAAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAALB3AABwdQAAZHUAAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAALB3AACgdQAAZHUAAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FALB3AADQdQAAxHUAAE4xMF9fY3h4YWJpdjEyMF9fZnVuY3Rpb25fdHlwZV9pbmZvRQAAAACwdwAAAHYAAGR1AABOMTBfX2N4eGFiaXYxMjlfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mb0UAAACwdwAANHYAAMR1AAAAAAAAtHYAACsEAAAsBAAALQQAAC4EAAAvBAAATjEwX19jeHhhYml2MTIzX19mdW5kYW1lbnRhbF90eXBlX2luZm9FALB3AACMdgAAZHUAAHYAAAB4dgAAwHYAAERuAAB4dgAAzHYAAGIAAAB4dgAA2HYAAGMAAAB4dgAA5HYAAGgAAAB4dgAA8HYAAGEAAAB4dgAA/HYAAHMAAAB4dgAACHcAAHQAAAB4dgAAFHcAAGkAAAB4dgAAIHcAAGoAAAB4dgAALHcAAGwAAAB4dgAAOHcAAG0AAAB4dgAARHcAAHgAAAB4dgAAUHcAAHkAAAB4dgAAXHcAAGYAAAB4dgAAaHcAAGQAAAB4dgAAdHcAAAAAAACUdQAAKwQAADAEAAAtBAAALgQAADEEAAAyBAAAMwQAADQEAAAAAAAA+HcAACsEAAA1BAAALQQAAC4EAAAxBAAANgQAADcEAAA4BAAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAALB3AADQdwAAlHUAAAAAAABUeAAAKwQAADkEAAAtBAAALgQAADEEAAA6BAAAOwQAADwEAABOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9FAAAAsHcAACx4AACUdQAAAAAAAPR1AAArBAAAPQQAAC0EAAAuBAAAPgQAAFN0OXR5cGVfaW5mbwAAAACIdwAAfHg="),i(r,30884,"zHgAAEgBAABJAQAASgEAAEsBAACIdwAAwykAALB3AACUKQAAuHgAALB3AAByKQAAwHgAAAAAAAC4eAAASAEAAEwBAABNAQAATgEAAAAAAAAUeQAATwEAAFABAABRAQAAUgEAALB3AAANKgAAuHgAALB3AADrKQAACHkAAAAAAAAIeQAAUwEAAFQBAABNAQAAVQEAAAAAAABkeQAAVgEAAFcBAABYAQAAWQEAAIh3AACTKgAAsHcAAGEqAABQeQAAsHcAADwqAABYeQAAAAAAAJR5AABaAQAAWwEAAFwBAABdAQAAsHcAAOMqAABQeQAAsHcAAL4qAACIeQAAAAAAAIh5AABeAQAAXwEAAGABAABhAQAAAAAAAAh6AABiAQAAYwEAAGQBAABlAQAAZgEAAGcBAABoAQAAaQEAAGoBAABrAQAAbAEAAG0BAABuAQAAbwEAAHABAABxAQAAcgEAAHMBAACwdwAAFSsAACRMAACIdwAALCsAAIh3AABKKwAAsHcAADwrAAAcegAAaHgAAFkrAAAAAAAAJHoAAGh4AABoKwAAAQAAACR6AADEdgAAWHoAAGh4AACAKwAAAAAAABx6"),i(r,31344,"xHYAADB6AAAkdwAAJHcAACR3AACIdwAA1isAAAx4AACwKwAAAAAAAAIAAAAkegAAAgAAAIR6AAACiAAAsHcAAJsrAACMegAAaHgAAPsrAAAAAAAArHoAAGh4AAARLAAAAQAAAKx6AADEdgAArHoAALh6AADoegAAiHcAACgsAAAAAAAArHoAAHQBAAB1AQAAdgEAAHcBAAB4AQAAeQEAAHoBAAB7AQAAfAEAAH0BAAB+AQAAfwEAAIABAACBAQAAggEAAIMBAACEAQAAhQEAAIYBAACHAQAAiAEAAIkBAACKAQAAiwEAAIwBAACNAQAAjgEAAI8BAAAAAAAAjHoAAHQBAACQAQAAdgEAAHcBAAB4AQAAeQEAAHoBAAB7AQAAfAEAAH0BAAB+AQAAfwEAAIABAACBAQAAggEAAIMBAACEAQAAhQEAAIYBAACHAQAAiAEAAIkBAACKAQAAiwEAAIwBAACRAQAAkgEAAE4BAADEdg=="),i(r,31728,"xHYAACR3AAAkdwAAJHcAAOh6AAAMfAAA6HoAAIh3AAA/LAAAiHcAAJssAACwdwAAgywAABR8AABoeAAAtywAAAAAAAAcfAAAaHgAANAsAAABAAAAHHw="),i(r,31824,"xHYAACh8AAAkdwAAJHcAAAx4AAAPLQAAAAAAAAIAAAAcfAAAAgAAAIR6AAACBAAAsHcAAPAsAABgfAAAaHgAAD8tAAAAAAAAgHwAAGh4AABfLQAAAQAAAIB8AADEdgAAgHwAAIx8AADoegAAAAAAAIB8AACTAQAAlAEAAJUBAACWAQAAlwEAAAAAAABgfAAAkwEAAJQBAACVAQAAmAEAAE4BAADEdgAAJHcAACR3AACwdwAAgC0AABR6AABoeAAAlS0AAAAAAAAAfQAAaHgAAKstAAABAAAAAH0AAMR2AAAMfQAAJHcAAAx4AADeLQAAAAAAAAIAAAAAfQAAAgAAAIR6AAACSAAAsHcAAMctAAA4fQAAaHgAAAsuAAAAAAAAWH0AAGh4AAAjLgAAAQAAAFh9AADEdgAAWH0AAGR9AADoegAAAAAAAFh9AACZAQAAmgEAAJsBAACcAQAAnQEAAAAAAAA4fQAAmQEAAJ4BAACbAQAAnAEAAE4BAADEdgAAJHcAACR3AAAkdwAAxHYAACR3AABsdwAAJHcAAMR2AAAkdwAAbHcAAMR2AAAkdwAAJHc="),i(r,32272,"JHcAAGx3AABsdwAAbHcAAMR2AAAkdwAAbHcAAGx3AABsdw=="),i(r,32320,"JHcAAGx3AABsdwAAbHcAAGx3"),i(r,32352,"xHYAACR3AABsdwAAbHcAAGx3AABsdwAAJHcAACR3AAAkdwAAJHc="),i(r,32400,"xHYAACR3AAAkdwAAJHcAACR3AAAkdwAAJHcAACR3AAAkdw=="),i(r,32448,"xHYAACR3AABsdwAAbHcAAGx3AABsdwAAbHcAAMR2AAAkdwAA3HY="),i(r,32496,"xHYAACR3AABsdwAAbHcAACR3AAAkdwAAJHcAACR3AAAkdwAAJHc="),i(r,32544,"xHYAACR3AAAkdwAAbHcAAGx3"),i(r,32576,"xHYAACR3AAAkdwAA3HYAAMR2AAAkdwAAJHcAAGx3AADcdgAAJHc="),i(r,32624,"xHYAACR3AABsdwAAJHcAAMR2AAAkdwAAJHcAACR3AAAkdwAAJHcAAGx3AAAAAAAAxHYAACR3AABsdwAAbHcAACR3AAAkdwAAbHcAAGx3AAAkdwAAJHcAAGx3AAAAAAAAJHcAACR3AAAkdwAAJHcAAGx3AABsdwAAbHcAAAAAAADEdgAAJHcAACR3AAAkdwAAJHcAANx2"),i(r,32784,"JHcAACR3AADcdgAA3HYAAMR2AAAkdwAAJHcAAGx3AABsdwAAbHc="),i(r,32832,"JHcAACR3AABsdwAAbHcAAGx3"),i(r,32864,"xHYAACR3AAAkdwAAJHcAANx2AAAkdwAAbHcAACR3AADEdgAAJHcAACR3AAAwdwAAMHc="),i(r,32928,"xHYAACR3AAAkdwAAJHcAACR3AAAkdwAAbHcAAAAAAAAkdwAAJHcAACR3AAAkdwAAxHYAACR3AABsdwAAJHcAAGx3"),i(r,33008,"xHYAACR3AAAkdwAAJHcAADB3AADcdg=="),i(r,33040,"JHcAACR3AAAkdwAAbHcAAGx3"),i(r,33072,"JHcAAGx3AABsdwAAbHcAACR3AAAkdwAAJHcAAGx3AABsdw=="),i(r,33120,"JHcAAGx3AABsdwAAbHcAACR3AAAkdwAAJHcAAGx3AABsdwAAbHcAAJ8BAACgAQAAoQEAAKIBAAC9AQAAvgEAAG8SgzoK16M8AQEAAAAAAEBgjgE=");var wn,Zn=(wn=[null,function(){o[8316]=30944},function(){_r(33360)},function(){ff(33616)},Bn,function(){cr(33820)},di,Wi,function(A,r){r|=0;var f=0;f=o[(A|=0)>>2],r=((A=o[A+4>>2])>>1)+r|0,1&A&&(f=o[f+o[r>>2]>>2]),Zn[0|f](r)},function(A,r,f,e,i){r|=0,f|=0,e|=0,i|=0;var n=0;n=o[(A|=0)>>2],r=((A=o[A+4>>2])>>1)+r|0,1&A&&(n=o[n+o[r>>2]>>2]),Zn[0|n](r,f,e,i)},di,en,en,Wi,function(A){a[136+(A|=0)|0]=1},Ni,function(A){var r,f;return A|=0,o[8488]=o[8488]+1,r=0|Zn[o[8290]](144,16),o[r+8>>2]=1065353216,o[r+12>>2]=1065353216,o[r+4>>2]=0,o[r+104>>2]=1065353216,o[r+108>>2]=1065353216,o[r+96>>2]=0,o[r+100>>2]=0,o[r+88>>2]=1065353216,o[r+92>>2]=0,o[r+80>>2]=0,o[r+84>>2]=0,o[r+72>>2]=1065353216,o[r+76>>2]=1065353216,o[(f=r- -64|0)>>2]=0,o[f+4>>2]=0,o[r+56>>2]=1065353216,o[r+60>>2]=0,o[r+48>>2]=1065353216,o[r+52>>2]=0,o[r+40>>2]=0,o[r+44>>2]=1065353216,o[r+32>>2]=0,o[r+36>>2]=0,o[r+24>>2]=0,o[r+28>>2]=1065353216,o[r+16>>2]=1065353216,o[r+20>>2]=0,o[r+112>>2]=0,o[r+116>>2]=0,o[r+120>>2]=0,o[r+124>>2]=0,o[r+128>>2]=0,o[r+132>>2]=0,a[r+136|0]=0,o[r+140>>2]=o[A>>2],o[A>>2]=0,o[r>>2]=31480,0|r},He,function(A,r,f){var e,i;f|=0,e=A|=0,i=0|x(0|(a[11+(r|=0)|0]<0?o[r>>2]:r),31404,o[f>>2]),o[e>>2]=i},function(A,r,f){A|=0,f|=0;var e,i,n=0,t=0,c=0,b=0;if(S=e=S-32|0,(i=o[(r|=0)>>2])>>>0<2147483632)return i>>>0<=10?(a[e+27|0]=i,n=e+16|0):(n=xe(t=1+(15|i)|0),o[e+24>>2]=-2147483648|t,o[e+16>>2]=n,o[e+20>>2]=i),c=pr(n,r+4|0,i)+i|0,b=0,a[0|c]=b,o[e+12>>2]=f,Zn[0|A](e+28|0,e+16|0,e+12|0),I(o[e+28>>2]),A=o[e+28>>2],V(0|A),V(o[e+12>>2]),a[e+27|0]<0&&DA(o[e+16>>2]),S=e+32|0,0|A;J(),d()},ki,Wi,function(A,r,f,e){r|=0,f|=0,e|=0;var i=0;i=o[(A|=0)>>2],r=((A=o[A+4>>2])>>1)+r|0,1&A&&(i=o[i+o[r>>2]>>2]),Zn[0|i](r,f,e)},ki,en,en,Wi,function(A){a[4+(A|=0)|0]=1},Ni,function(A){var r;return A|=0,r=xe(12),a[r+4|0]=0,o[r+8>>2]=o[A>>2],o[A>>2]=0,o[r>>2]=31940,0|r},He,function(A,r,f){var e,i;f|=0,e=A|=0,i=0|x(0|(a[11+(r|=0)|0]<0?o[r>>2]:r),31872,o[f>>2]),o[e>>2]=i},di,Wi,function(A,r,f){r|=0,f|=0;var e=0;e=o[(A|=0)>>2],r=((A=o[A+4>>2])>>1)+r|0,1&A&&(e=o[e+o[r>>2]>>2]),Zn[0|e](r,f)},di,en,en,Wi,function(A){a[72+(A|=0)|0]=1},Ni,function(A){var r;return A|=0,r=xe(80),a[r+72|0]=0,o[r+4>>2]=-1,o[r+76>>2]=o[A>>2],o[A>>2]=0,o[r>>2]=32156,0|r},He,function(A,r,f){var e,i;f|=0,e=A|=0,i=0|x(0|(a[11+(r|=0)|0]<0?o[r>>2]:r),32088,o[f>>2]),o[e>>2]=i},Pi,Bi,vn,function(A,r){r|=0,Zn[0|(A|=0)](r)},Ci,function(A,r){return r|=0,m(m(Zn[0|(A|=0)](r)))},function(A,r){A|=0,r=m(r),w[A>>2]=r},function(A,r,f){A|=0,r|=0,f=m(f),Zn[0|A](r,f)},function(A,r){A|=0;A:{r:{f:switch(0|(r|=0)){case 0:if(!A)break r;return void(A&&(o[8489]=o[8489]+1,Zn[o[8291]](A)));case 1:case 2:if(!A)break r;return void DA(A);case 3:case 4:case 5:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 6:if(!A)break r;break A;case 14:break f;default:break r}A&&Zn[o[o[A>>2]+4>>2]](A)}return}Zn[o[o[A>>2]+4>>2]](A)},vi,function(A,r,f){var e;return A=m(A),r=m(r),f=m(f),o[8488]=o[8488]+1,e=0|Zn[o[8290]](16,16),o[e+12>>2]=0,w[e+8>>2]=f,w[e+4>>2]=r,w[e>>2]=A,0|e},function(A,r,f,e){return A|=0,r=m(r),f=m(f),e=m(e),0|Zn[0|A](r,f,e)},Ci,Yi,Vi,function(A,r,f,e){A|=0,r=m(r),f=m(f),e=m(e),o[A+12>>2]=0,w[A+8>>2]=e,w[A+4>>2]=f,w[A>>2]=r},function(A,r,f,e,i){A|=0,r|=0,f=m(f),e=m(e),i=m(i),Zn[0|A](r,f,e,i)},function(A,r,f,e){var i;return A=m(A),r=m(r),f=m(f),e=m(e),i=xe(16),w[i+12>>2]=e,w[i+8>>2]=f,w[i+4>>2]=r,w[i>>2]=A,0|i},function(A,r,f,e,i){return A|=0,r=m(r),f=m(f),e=m(e),i=m(i),0|Zn[0|A](r,f,e,i)},Ci,Yi,Vi,function(A){return m(w[12+(A|=0)>>2])},je,function(A,r,f,e,i,n){A|=0,r|=0,f=m(f),e=m(e),i=m(i),n=m(n),Zn[0|A](r,f,e,i,n)},function(){var A;return A=xe(64),o[A+4>>2]=0,o[A+8>>2]=0,o[A>>2]=1065353216,o[A+12>>2]=0,o[A+16>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+20>>2]=1065353216,o[A+32>>2]=0,o[A+36>>2]=0,o[A+44>>2]=0,o[A+48>>2]=0,o[A+40>>2]=1065353216,o[A+52>>2]=0,o[A+56>>2]=0,o[A+60>>2]=0,0|A},function(A){return 0|Zn[0|(A|=0)]()},function(A){o[4+(A|=0)>>2]=0,o[A+8>>2]=0,o[A>>2]=1065353216,o[A+12>>2]=0,o[A+16>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+20>>2]=1065353216,o[A+32>>2]=0,o[A+36>>2]=0,o[A+44>>2]=0,o[A+48>>2]=0,o[A+40>>2]=1065353216,o[A+52>>2]=0,o[A+56>>2]=0,o[A+60>>2]=0},function(A,r){A|=0,r|=0;var f=m(0),e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0);e=w[r+12>>2],t=w[r+8>>2],f=w[r>>2],n=w[r+4>>2],o[A+44>>2]=0,o[A+28>>2]=0,o[A+12>>2]=0,i=m(m(2)/m(m(e*e)+m(m(t*t)+m(m(f*f)+m(n*n))))),c=m(t*i),a=m(n*c),u=m(f*i),l=m(e*u),w[A+36>>2]=a+l,s=m(f*c),i=m(n*i),b=m(e*i),w[A+32>>2]=s-b,w[A+24>>2]=a-l,a=m(f*i),e=m(e*c),w[A+16>>2]=a+e,w[A+8>>2]=s+b,w[A+4>>2]=a-e,f=m(f*u),e=m(n*i),w[A+40>>2]=m(1)-m(f+e),b=f,f=m(t*c),w[A+20>>2]=m(1)-m(b+f),w[A>>2]=m(1)-m(e+f)},rn,function(A,r){return rf(A|=0,r|=0),0|r},function(A,r,f){return r|=0,f|=0,0|Zn[0|(A|=0)](r,f)},function(A,r){return rf(A|=0,r|=0),A+48|0},li,function(A,r){r|=0,Zn[o[o[(A|=0)>>2]+12>>2]](A,r)},function(A,r,f){var e;r|=0,f|=0,o[4+(A|=0)>>2]=r,r=o[f+12>>2],o[A+16>>2]=o[f+8>>2],o[A+20>>2]=r,r=o[f+4>>2],o[A+8>>2]=o[f>>2],o[A+12>>2]=r,r=o[f+28>>2],o[A+32>>2]=o[f+24>>2],o[A+36>>2]=r,r=o[f+20>>2],o[A+24>>2]=o[f+16>>2],o[A+28>>2]=r,r=o[f+36>>2],o[A+40>>2]=o[f+32>>2],o[A+44>>2]=r,r=o[f+44>>2],o[A+48>>2]=o[f+40>>2],o[A+52>>2]=r,e=o[f+60>>2],o[(r=A- -64|0)>>2]=o[f+56>>2],o[r+4>>2]=e,r=o[f+52>>2],o[A+56>>2]=o[f+48>>2],o[A+60>>2]=r},ti,Ui,function(A,r){return r|=0,o[o[12+(A|=0)>>2]+(r<<2)>>2]},function(A,r){return r|=0,o[12+(A|=0)>>2]+(r<<4)|0},function(){var A,r=0,f=0,e=0,i=0;return S=A=S-16|0,v[35848]||(o[A+8>>2]=0,o[A+12>>2]=0,o[A>>2]=0,o[A+4>>2]=0,S=r=S-144|0,f=Qr(35172),o[f>>2]=24120,a[f+560|0]=1,o[f+556>>2]=0,o[f+548>>2]=0,o[f+552>>2]=0,o[r+72>>2]=0,o[r+4>>2]=0,w[r>>2]=0,e=o[A+12>>2],o[r+84>>2]=o[A+8>>2],o[r+88>>2]=e,i=o[A>>2],e=o[A+4>>2],o[r+20>>2]=0,o[r+24>>2]=0,o[r+12>>2]=0,o[r+16>>2]=0,o[r+28>>2]=1065353216,o[r+40>>2]=0,o[r+44>>2]=0,o[r+32>>2]=0,o[r+36>>2]=0,o[r+48>>2]=1065353216,o[r+52>>2]=0,o[r+56>>2]=0,o[r+60>>2]=0,o[r+64>>2]=0,o[r+68>>2]=0,o[r+76>>2]=i,o[r+80>>2]=e,o[r+136>>2]=1008981770,o[r+140>>2]=1008981770,o[r+128>>2]=1000593162,o[r+132>>2]=1008981770,a[r+124|0]=0,o[r+116>>2]=1061997773,o[r+120>>2]=1065353216,o[r+108>>2]=0,o[r+112>>2]=0,o[r+100>>2]=1056964608,o[r+104>>2]=0,o[r+92>>2]=0,o[r+96>>2]=0,o[r+8>>2]=1065353216,RA(f,r),S=r+144|0,a[35848]=1),o[A+8>>2]=0,o[A+12>>2]=0,o[A>>2]=0,o[A+4>>2]=0,Nf(35172,m(0),A),S=A+16|0,35172},function(A){return m(w[40+(A|=0)>>2])},function(A,r){A|=0,r=m(r),w[A+40>>2]=r},function(A,r){A|=0,r=m(r),w[A+16>>2]=r},function(A,r,f,e){return A|=0,r|=0,f|=0,e|=0,o[8488]=o[8488]+1,A=ne(0|Zn[o[8290]](768,16),4,A,r),o[A>>2]=23676,r=o[f+12>>2],o[A+560>>2]=o[f+8>>2],o[A+564>>2]=r,r=o[f+4>>2],o[A+552>>2]=o[f>>2],o[A+556>>2]=r,r=o[f+28>>2],o[A+576>>2]=o[f+24>>2],o[A+580>>2]=r,r=o[f+20>>2],o[A+568>>2]=o[f+16>>2],o[A+572>>2]=r,r=o[f+44>>2],o[A+592>>2]=o[f+40>>2],o[A+596>>2]=r,r=o[f+36>>2],o[A+584>>2]=o[f+32>>2],o[A+588>>2]=r,r=o[f+60>>2],o[A+608>>2]=o[f+56>>2],o[A+612>>2]=r,r=o[f+52>>2],o[A+600>>2]=o[f+48>>2],o[A+604>>2]=r,r=o[e+12>>2],o[A+624>>2]=o[e+8>>2],o[A+628>>2]=r,r=o[e+4>>2],o[A+616>>2]=o[e>>2],o[A+620>>2]=r,r=o[e+20>>2],o[A+632>>2]=o[e+16>>2],o[A+636>>2]=r,r=o[e+28>>2],o[A+640>>2]=o[e+24>>2],o[A+644>>2]=r,r=o[e+36>>2],o[A+648>>2]=o[e+32>>2],o[A+652>>2]=r,r=o[e+44>>2],o[A+656>>2]=o[e+40>>2],o[A+660>>2]=r,r=o[e+52>>2],o[A+664>>2]=o[e+48>>2],o[A+668>>2]=r,r=o[e+60>>2],o[A+672>>2]=o[e+56>>2],o[A+676>>2]=r,o[A+688>>2]=0,o[A+692>>2]=-1082130432,o[A+696>>2]=1063675494,o[A+700>>2]=1050253722,o[A+704>>2]=1065353216,o[A+708>>2]=0,o[A+712>>2]=0,a[A+716|0]=0,a[A+740|0]=0,o[A+736>>2]=16777216,o[A+764>>2]=0,o[A+756>>2]=0,o[A+760>>2]=0,o[A+748>>2]=0,o[A+752>>2]=0,w[A+732>>2]=1,0|A},function(A,r,f,e,i){return r|=0,f|=0,e|=0,i|=0,0|Zn[0|(A|=0)](r,f,e,i)},function(A,r,f){A|=0,f|=0;var e=0;e=o[4+(r|=0)>>2],o[A+552>>2]=o[r>>2],o[A+556>>2]=e,e=o[r+12>>2],o[A+560>>2]=o[r+8>>2],o[A+564>>2]=e,e=o[r+28>>2],o[A+576>>2]=o[r+24>>2],o[A+580>>2]=e,e=o[r+20>>2],o[A+568>>2]=o[r+16>>2],o[A+572>>2]=e,e=o[r+44>>2],o[A+592>>2]=o[r+40>>2],o[A+596>>2]=e,e=o[r+36>>2],o[A+584>>2]=o[r+32>>2],o[A+588>>2]=e,e=o[r+60>>2],o[A+608>>2]=o[r+56>>2],o[A+612>>2]=e,e=o[r+52>>2],o[A+600>>2]=o[r+48>>2],o[A+604>>2]=e,r=o[f+12>>2],o[A+624>>2]=o[f+8>>2],o[A+628>>2]=r,r=o[f+4>>2],o[A+616>>2]=o[f>>2],o[A+620>>2]=r,r=o[f+20>>2],o[A+632>>2]=o[f+16>>2],o[A+636>>2]=r,r=o[f+28>>2],o[A+640>>2]=o[f+24>>2],o[A+644>>2]=r,r=o[f+36>>2],o[A+648>>2]=o[f+32>>2],o[A+652>>2]=r,r=o[f+44>>2],o[A+656>>2]=o[f+40>>2],o[A+660>>2]=r,r=o[f+60>>2],o[A+672>>2]=o[f+56>>2],o[A+676>>2]=r,r=o[f+52>>2],o[A+664>>2]=o[f+48>>2],o[A+668>>2]=r,Zn[o[o[A>>2]+8>>2]](A)},function(A,r,f,e,i,n){A|=0,r=m(r),f=m(f),e=m(e),i=m(i),n=m(n),f=m(m(f-r)*m(.5)),w[A+692>>2]=f,(r=af(m(f+r)))m(3.1415927410125732)&&(r=m(r+m(-6.2831854820251465))),w[A+704>>2]=n,w[A+700>>2]=i,w[A+696>>2]=e,w[A+688>>2]=r},function(A,r,f,e,i,n,a){A|=0,r|=0,f=m(f),e=m(e),i=m(i),n=m(n),a=m(a),Zn[0|A](r,f,e,i,n,a)},function(A,r){r|=0,a[737+(A|=0)|0]=r},vi,function(A,r){r|=0,a[736+(A|=0)|0]=r},function(A,r){A|=0,r=m(r),w[A+684>>2]=r},function(A,r,f){A|=0,r=m(r),f=m(f);var e,i,n,a,t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0);if(S=n=S-16|0,w[n+12>>2]=r,(t=w[A+692>>2])>m(0)&&(c=w[A+688>>2],(r=af(m(w[n+12>>2]-c)))m(3.1415927410125732)&&(r=m(r+m(-6.2831854820251465))),!(!(m(-t)>r)&r<=t))){A:if(r>m(0)){if((r=af(m(t+c)))m(3.1415927410125732)))break A;r=m(r+m(-6.2831854820251465))}else(r=af(m(c-t)))m(3.1415927410125732)&&(r=m(r+m(-6.2831854820251465)));w[n+12>>2]=r}e=o[A+32>>2],r=w[A+652>>2],t=w[A+620>>2],c=w[A+636>>2],k=m(m(w[e+44>>2]*r)+m(m(w[e+36>>2]*t)+m(c*w[e+40>>2]))),i=o[A+28>>2],d=w[i+44>>2],b=w[A+584>>2],v=w[i+36>>2],u=w[A+552>>2],l=w[A+568>>2],h=w[i+40>>2],W=m(k*m(m(d*b)+m(m(v*u)+m(l*h)))),B=m(m(w[e+12>>2]*r)+m(m(w[e+4>>2]*t)+m(c*w[e+8>>2]))),Z=w[i+12>>2],G=w[i+4>>2],Q=w[i+8>>2],N=m(B*m(m(Z*b)+m(m(G*u)+m(l*Q)))),E=w[i+28>>2],s=m(E*b),b=w[i+20>>2],p=m(b*u),u=w[i+24>>2],s=m(s+m(p+m(l*u))),l=m(m(w[e+28>>2]*r)+m(m(w[e+20>>2]*t)+m(c*w[e+24>>2]))),r=w[A+588>>2],t=w[A+556>>2],c=w[A+572>>2],a=A,F=m(m(w[n+12>>2]-m(zr(m(W+m(N+m(s*l))),m(m(k*m(m(d*r)+m(m(v*t)+m(h*c))))+m(m(B*m(m(Z*r)+m(m(G*t)+m(Q*c))))+m(m(m(E*r)+m(m(b*t)+m(u*c)))*l))))*w[A+732>>2]))/f),w[a+680>>2]=F,S=n+16|0},function(A,r,f,e){A|=0,r|=0,f=m(f),e=m(e),Zn[0|A](r,f,e)},function(A,r){A|=0,r=m(r),w[A+680>>2]=r},function(A,r,f,e){return A|=0,r|=0,f|=0,e|=0,o[8488]=o[8488]+1,A=ne(0|Zn[o[8290]](360,16),3,A,r),o[A>>2]=23764,r=o[f+4>>2],o[A+300>>2]=o[f>>2],o[A+304>>2]=r,r=o[f+12>>2],o[A+308>>2]=o[f+8>>2],o[A+312>>2]=r,r=o[e+4>>2],o[A+316>>2]=o[e>>2],o[A+320>>2]=r,r=o[e+12>>2],o[A+324>>2]=o[e+8>>2],o[A+328>>2]=r,o[A+356>>2]=0,o[A+348>>2]=1050253722,o[A+352>>2]=1065353216,a[A+344|0]=0,o[A+332>>2]=0,0|A},function(A,r){A|=0;var f=0;f=o[4+(r|=0)>>2],o[A+300>>2]=o[r>>2],o[A+304>>2]=f,f=o[r+12>>2],o[A+308>>2]=o[r+8>>2],o[A+312>>2]=f},function(A,r){A|=0;var f=0;f=o[4+(r|=0)>>2],o[A+316>>2]=o[r>>2],o[A+320>>2]=f,f=o[r+12>>2],o[A+324>>2]=o[r+8>>2],o[A+328>>2]=f},function(A,r,f,e){return A|=0,r|=0,f|=0,e|=0,o[8488]=o[8488]+1,A=VA(0|Zn[o[8290]](1460,16),A,r,f,e,0),o[A>>2]=23432,o[A+968>>2]=0,o[A+972>>2]=0,o[A+680>>2]=0,o[A+684>>2]=0,o[(r=A+1144|0)>>2]=0,o[r+4>>2]=0,o[(r=A+1056|0)>>2]=0,o[r+4>>2]=0,o[A+688>>2]=0,o[A+692>>2]=0,o[A+696>>2]=0,o[A+700>>2]=0,o[A+704>>2]=0,o[A+708>>2]=0,0|A},Ur,function(A,r,f,e,i){return A|=0,r|=0,f|=0,e|=0,i|=0,o[8488]=o[8488]+1,0|VA(0|Zn[o[8290]](1460,16),A,r,f,e,i)},function(A,r,f,e,i,n){return r|=0,f|=0,e|=0,i|=0,n|=0,0|Zn[0|(A|=0)](r,f,e,i,n)},Ur,function(A,r,f,e){if(A|=0,r|=0,f=m(f),e=m(e),(0|r)<=2)return w[696+(A=(r<<2)+A|0)>>2]=e,void(w[A+680>>2]=f);(f=af(f))m(3.1415927410125732)&&(f=m(f+m(-6.2831854820251465))),(e=af(e))m(3.1415927410125732)&&(e=m(e+m(-6.2831854820251465))),A=G(r,88)+A|0,w[A+708>>2]=e,w[A+704>>2]=f},function(A,r,f,e,i){A|=0,r|=0,f|=0,e=m(e),i=m(i),Zn[0|A](r,f,e,i)},function(A,r,f){A|=0,f|=0,(0|(r|=0))<=2?a[798+(A+r|0)|0]=f:a[752+(G(r,88)+A|0)|0]=f},ti,function(A,r,f){A|=0,r|=0,f=m(f),(0|r)<=2?(w[140+((A=A+680|0)+(r<<2)|0)>>2]=f,a[156+(A+r|0)|0]=1):(A=G(r,88)+A|0,a[A+760|0]=1,w[A+756>>2]=f)},function(A,r,f,e){A|=0,r|=0,f|=0,e=m(e),Zn[0|A](r,f,e)},function(A,r,f){A|=0,r|=0,f=m(f),(0|r)<=2?(w[160+((A=A+680|0)+(r<<2)|0)>>2]=f,a[176+(A+r|0)|0]=1):(A=G(r,88)+A|0,a[A+768|0]=1,w[A+764>>2]=f)},function(A,r,f){A|=0,r|=0,f=m(f),w[712+((0|r)<3?(r<<2)+A|0:G(r,88)+A|0)>>2]=f},function(A,r,f){A|=0,r|=0,f=m(f),w[((0|r)<3?860+((r<<2)+A|0):772+(G(r,88)+A|0))>>2]=f},function(A,r,f){A|=0,f|=0,(0|(r|=0))<=2?a[792+(A+r|0)|0]=f:a[732+(G(r,88)+A|0)|0]=f},function(A,r,f){A|=0,r|=0,f=m(f),w[((0|r)<3?892+((r<<2)+A|0):740+(G(r,88)+A|0))>>2]=f},function(A,r,f){A|=0,r|=0,f=m(f),w[((0|r)<3?876+((r<<2)+A|0):736+(G(r,88)+A|0))>>2]=f},function(A,r,f){A|=0,f|=0,(0|(r|=0))<=2?a[795+(A+r|0)|0]=f:a[744+(G(r,88)+A|0)|0]=f},function(A,r,f){A|=0,r|=0,f=m(f);var e=m(0);(0|r)<=2?w[804+((r<<2)+A|0)>>2]=f:(A=G(r,88)+A|0,f=m(f+m(3.1415927410125732)),f=m(m(m(W(m(f/m(6.2831854820251465))))*m(-6.2831854820251465))+f),e=m(0),f>=m(6.2831854820251465)||(e=f,f>2]=e+m(-3.1415927410125732))},function(A){return 31==o[4+(A|=0)>>2]|0},Bi,function(A,r){r|=0,Zn[o[o[(A|=0)>>2]+24>>2]](A,r)},function(A,r,f){A|=0,r=m(r),f|=0,Zn[o[o[A>>2]+32>>2]](A,r,f)},function(A,r,f,e){A|=0,r|=0,f=m(f),e|=0,Zn[0|A](r,f,e)},qe,Ai,function(A,r){A|=0,r=m(r),Zn[o[o[A>>2]+44>>2]](A,r)},Fi,function(A,r){r|=0,o[8+(A|=0)>>2]=r},function(){return v[33816]||(o[8447]=0,o[8448]=0,o[8445]=35,o[8446]=0,o[8449]=0,o[8444]=20276,o[8445]=27,o[8444]=20384,a[33816]=1),33776},$i,function(A){return A|=0,o[8488]=o[8488]+1,0|tf(0|Zn[o[8290]](64,16),A)},function(A,r){A|=0,r|=0;var f,e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0);e=m(Zn[o[o[A>>2]+48>>2]](A)),i=m(Zn[o[o[A>>2]+48>>2]](A)),n=m(Zn[o[o[A>>2]+48>>2]](A)),a=w[r>>2],t=w[r+4>>2],c=w[r+8>>2],o[A+48>>2]=0,w[A+44>>2]=m(c*w[A+28>>2])-n,w[A+40>>2]=m(t*w[A+24>>2])-i,w[A+36>>2]=m(a*w[A+20>>2])-e,f=(e=w[r>>2])<(i=w[r+4>>2]),e=m(w[((w[r+8>>2]>(f?e:i)?!f:2)<<2)+r>>2]*m(.10000000149011612)),m(Zn[o[o[A>>2]+48>>2]](A))>e&&Zn[o[o[A>>2]+44>>2]](A,e)},function(A){var r;return A=m(A),o[8488]=o[8488]+1,r=ae(0|Zn[o[8290]](60,16)),o[r+32>>2]=0,o[r+36>>2]=0,o[r+20>>2]=1065353216,o[r+24>>2]=1065353216,o[r+4>>2]=8,o[r>>2]=21520,o[r+56>>2]=0,w[r+52>>2]=A,o[r+28>>2]=1065353216,o[r+40>>2]=0,o[r+44>>2]=0,o[r+48>>2]=0,w[r+36>>2]=A,0|r},function(A,r){return A|=0,r=m(r),0|Zn[0|A](r)},function(A,r){A|=0,r=m(r),w[A+52>>2]=r,w[A+36>>2]=r},function(A){A|=0;var r,f,e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0);return o[8488]=o[8488]+1,r=ae(0|Zn[o[8290]](64,16)),o[r+60>>2]=1,o[r>>2]=20140,i=w[A>>2],n=w[A+4>>2],e=w[A+8>>2],o[r+48>>2]=0,a=m(e*w[r+28>>2]),e=w[r+52>>2],w[r+44>>2]=a-e,w[r+40>>2]=m(n*w[r+24>>2])-e,w[r+36>>2]=m(i*w[r+20>>2])-e,n=e,f=(e=w[A>>2])<(i=w[A+4>>2]),n>(e=m(w[((w[A+8>>2]>(f?e:i)?!f:2)<<2)+A>>2]*m(.10000000149011612)))&&(i=w[r+52>>2],n=m(Zn[o[o[r>>2]+48>>2]](r)),a=m(Zn[o[o[r>>2]+48>>2]](r)),w[r+52>>2]=e,e=w[r+44>>2],t=w[r+36>>2],c=w[r+40>>2],b=m(Zn[o[o[r>>2]+48>>2]](r)),u=m(Zn[o[o[r>>2]+48>>2]](r)),l=m(Zn[o[o[r>>2]+48>>2]](r)),o[r+48>>2]=0,w[r+40>>2]=m(n+c)-u,w[r+36>>2]=m(i+t)-b,w[r+44>>2]=m(a+e)-l),o[r+4>>2]=13,0|r},function(A,r,f,e){A|=0,r=m(r),f=m(f),e|=0;var i=m(0),n=m(0);o[A+20>>2]=1065353216,o[A+24>>2]=1065353216,o[A+60>>2]=e,o[A+28>>2]=1065353216,o[A+32>>2]=0,n=r,i=f;A:{switch(0|e){case 0:n=f,i=r;break A;case 1:break A}i=r,r=f}w[A+36>>2]=n,o[A+48>>2]=0,w[A+44>>2]=r,w[A+40>>2]=i,r=m(Zn[o[o[A>>2]+48>>2]](A)),f=m(Zn[o[o[A>>2]+48>>2]](A)),i=m(Zn[o[o[A>>2]+48>>2]](A)),w[A+36>>2]=w[A+36>>2]-r,w[A+40>>2]=w[A+40>>2]-f,w[A+44>>2]=w[A+44>>2]-i},function(A,r,f,e,i){A|=0,r|=0,f=m(f),e=m(e),i|=0,Zn[0|A](r,f,e,i)},function(A,r){return A=m(A),r=m(r),o[8488]=o[8488]+1,0|Ve(0|Zn[o[8290]](64,16),A,r)},function(A,r,f){return A|=0,r=m(r),f=m(f),0|Zn[0|A](r,f)},function(A,r,f,e){A|=0,r=m(r),f=m(f),e|=0;var i=m(0),n=m(0);o[A+20>>2]=1065353216,o[A+24>>2]=1065353216,o[A+60>>2]=e,o[A+28>>2]=1065353216,o[A+32>>2]=0,n=r,i=f;A:{switch(0|e){case 0:n=f,i=r;break A;case 1:break A}i=r,r=f}w[A+36>>2]=n,o[A+48>>2]=0,w[A+44>>2]=r,w[A+40>>2]=i,w[A+52>>2]=w[(A+36|0)+((e+2|0)%3<<2)>>2]},function(A,r){var f;return A=m(A),r=m(r),o[8488]=o[8488]+1,f=ae(0|Zn[o[8290]](84,16)),w[f+68>>2]=r,w[f+64>>2]=A,o[f>>2]=19512,o[f+72>>2]=0,o[f+76>>2]=1,o[f+4>>2]=11,w[f+36>>2]=A,o[f+80>>2]=2,w[f+44>>2]=A,w[f+40>>2]=r,w[f+60>>2]=A/m(N(m(m(A*A)+m(r*r)))),0|f},function(A,r){A|=0,r=m(r),w[A+64>>2]=r},function(A,r){A|=0,r=m(r),w[A+68>>2]=r},function(A,r){A|=0;var f=0,e=0;A:{switch(0|(r|=0)){default:e=o[A+76>>2],f=o[A+72>>2],r=o[A+80>>2];break A;case 0:o[A+72>>2]=1,o[A+76>>2]=0,o[A+80>>2]=2,f=1,r=2;break A;case 1:o[A+72>>2]=0,o[A+76>>2]=1,o[A+80>>2]=2,e=1,r=2;break A;case 2:}o[A+72>>2]=0,o[A+76>>2]=2,o[A+80>>2]=1,e=2,r=1}w[(f<<2)+(f=A+36|0)>>2]=w[A+64>>2],w[f+(e<<2)>>2]=w[A+68>>2],w[f+(r<<2)>>2]=w[A+64>>2]},function(A,r){A|=0,r=m(r);var f,e=m(0),i=m(0),n=m(0),a=m(0);return o[8488]=o[8488]+1,f=0|Zn[o[8290]](92,16),o[f+12>>2]=0,o[f+16>>2]=0,o[f+4>>2]=35,o[f+8>>2]=0,o[f+20>>2]=0,o[f>>2]=20276,o[f>>2]=21648,e=w[A+8>>2],i=w[A>>2],n=w[A+4>>2],a=w[A+12>>2],o[f+84>>2]=1065353216,o[f+88>>2]=0,o[f+76>>2]=1065353216,o[f+80>>2]=1065353216,w[f+72>>2]=r,w[f+68>>2]=a,o[f+4>>2]=28,r=m(m(1)/m(N(m(m(e*e)+m(m(i*i)+m(n*n)))))),w[f- -64>>2]=e*r,w[f+60>>2]=n*r,w[f+56>>2]=i*r,0|f},function(A,r,f){return A|=0,r|=0,f=m(f),0|Zn[0|A](r,f)},function(A){return 56+(A|=0)|0},function(A,r){A|=0,r=m(r),w[A+72>>2]=r},function(A,r,f,e,i,n){A|=0,r|=0,f|=0,e=m(e),i=m(i),n=m(n);var t,c=m(0);return o[8488]=o[8488]+1,t=0|Zn[o[8290]](132,16),o[t+12>>2]=0,o[t+16>>2]=0,o[t+4>>2]=35,o[t+8>>2]=0,o[t+20>>2]=0,o[t>>2]=20276,o[t>>2]=20488,o[t+116>>2]=1065353216,o[t+120>>2]=1065353216,o[t+112>>2]=1,a[t+109|0]=0,a[t+110|0]=0,a[t+108|0]=0,o[t+104>>2]=0,o[t+100>>2]=f,w[t+96>>2]=e,w[t+84>>2]=n,w[t+80>>2]=i,o[t+76>>2]=r,o[t+72>>2]=A,o[t+4>>2]=24,o[t+124>>2]=1065353216,o[t+128>>2]=0,e=m(r-1|0),w[t+92>>2]=e,c=m(A-1|0),w[t+88>>2]=c,w[t+40>>2]=c,o[t+24>>2]=0,o[t+52>>2]=0,w[t+48>>2]=e,w[t+44>>2]=n,o[t+32>>2]=0,o[t+36>>2]=0,w[t+28>>2]=i,o[t+68>>2]=0,w[t- -64>>2]=m(e+m(0))*m(.5),w[t+60>>2]=m(i+n)*m(.5),w[t+56>>2]=m(c+m(0))*m(.5),0|t},function(A,r,f,e,i,n,a){return A|=0,r|=0,f|=0,e|=0,i=m(i),n=m(n),a=m(a),0|Zn[0|A](r,f,e,i,n,a)},function(){var A,r,f=0,e=0,i=0,n=0,t=0,c=0,b=0,u=0;if(o[8488]=o[8488]+1,A=0|Zn[o[8290]](172,16),o[A+4>>2]=1065353216,o[A+8>>2]=1065353216,o[A+48>>2]=0,a[A+36|0]=1,o[A+12>>2]=1065353216,o[A+16>>2]=0,o[A+32>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,a[A+100|0]=1,o[A>>2]=22164,o[A+96>>2]=0,a[A+120|0]=1,o[A+88>>2]=0,o[A+92>>2]=0,o[A+116>>2]=0,a[A+140|0]=1,o[A+108>>2]=0,o[A+112>>2]=0,o[A+136>>2]=0,a[A+160|0]=1,o[A+128>>2]=0,o[A+132>>2]=0,o[A+168>>2]=0,a[A+164|0]=1,o[A+148>>2]=0,o[A+152>>2]=0,o[A+156>>2]=0,a[A+165|0]=1,o[8488]=o[8488]+1,t=0|Zn[o[8290]](32,16),!((0|(r=o[A+24>>2]))<=0)){if(1!=(0|r))for(u=-2&r;e=t+(n=i<<5)|0,f=o[A+32>>2]+n|0,c=o[f+4>>2],o[e>>2]=o[f>>2],o[e+4>>2]=c,c=o[f+28>>2],o[e+24>>2]=o[f+24>>2],o[e+28>>2]=c,c=o[f+20>>2],o[e+16>>2]=o[f+16>>2],o[e+20>>2]=c,c=o[f+12>>2],o[e+8>>2]=o[f+8>>2],o[e+12>>2]=c,e=(f=32|n)+t|0,f=f+o[A+32>>2]|0,n=o[f+4>>2],o[e>>2]=o[f>>2],o[e+4>>2]=n,n=o[f+12>>2],o[e+8>>2]=o[f+8>>2],o[e+12>>2]=n,n=o[f+20>>2],o[e+16>>2]=o[f+16>>2],o[e+20>>2]=n,n=o[f+28>>2],o[e+24>>2]=o[f+24>>2],o[e+28>>2]=n,i=i+2|0,(0|(b=b+2|0))!=(0|u););1&r&&(i=(f=i<<5)+t|0,f=f+o[A+32>>2]|0,e=o[f+4>>2],o[i>>2]=o[f>>2],o[i+4>>2]=e,e=o[f+28>>2],o[i+24>>2]=o[f+24>>2],o[i+28>>2]=e,e=o[f+20>>2],o[i+16>>2]=o[f+16>>2],o[i+20>>2]=e,e=o[f+12>>2],o[i+8>>2]=o[f+8>>2],o[i+12>>2]=e)}return!(f=o[A+32>>2])||!f|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+32>>2]=t,a[A+36|0]=1,o[A+28>>2]=1,f=t+(o[A+24>>2]<<5)|0,o[f+24>>2]=2,o[f+28>>2]=0,o[f+16>>2]=0,o[f+20>>2]=16,o[f+8>>2]=12,o[f+12>>2]=0,o[f>>2]=0,o[f+4>>2]=0,o[A+24>>2]=o[A+24>>2]+1,e=v[A+164|0],t=o[(e?A+128:A+148)>>2],f=o[A+32>>2],o[f+24>>2]=e?2:3,o[f+4>>2]=0,i=12,o[f+8>>2]=e?12:6,o[f>>2]=(0|t)/3,v[A+165|0]?(i=16,e=o[A+88>>2]):e=o[A+108>>2]/3|0,o[f+20>>2]=i,o[f+16>>2]=0,o[f+12>>2]=e,0|A},function(A,r,f,e,i){var n;r|=0,f|=0,e|=0,i|=0,n=o[32+(A|=0)>>2],o[n>>2]=o[n>>2]+1,sr(A,GA(A,r,i)),sr(A,GA(A,f,i)),sr(A,GA(A,e,i))},Oe,function(A,r,f){A|=0,r|=0,f|=0;var e,i,n=0,t=0;return o[8488]=o[8488]+1,i=0|Zn[o[8290]](84,16),S=e=S-48|0,o[i+12>>2]=0,o[i+16>>2]=0,o[i+4>>2]=35,o[i+8>>2]=0,o[i+20>>2]=0,o[i>>2]=20276,o[i+56>>2]=A,o[i>>2]=22264,o[i+4>>2]=21,0|Zn[o[o[A>>2]+40>>2]](A)?Zn[o[o[A>>2]+48>>2]](A,i+24|0,i+40|0):(o[e+44>>2]=0,o[e+36>>2]=0,o[e+40>>2]=0,o[e+32>>2]=1065353216,t=e+16|0,A=e+32|0,Zn[o[o[i>>2]+68>>2]](t,i,A),w[i+40>>2]=w[e+16>>2]+w[i+20>>2],o[e+32>>2]=-1082130432,Zn[o[o[i>>2]+68>>2]](e,i,A),n=o[e+12>>2],o[e+24>>2]=o[e+8>>2],o[e+28>>2]=n,n=o[e+4>>2],o[e+16>>2]=o[e>>2],o[e+20>>2]=n,w[i+24>>2]=w[e+16>>2]-w[i+20>>2],o[e+40>>2]=0,o[e+44>>2]=0,o[e+32>>2]=0,o[e+36>>2]=0,o[e+36>>2]=1065353216,Zn[o[o[i>>2]+68>>2]](t,i,A),w[i+44>>2]=w[e+20>>2]+w[i+20>>2],o[e+36>>2]=-1082130432,Zn[o[o[i>>2]+68>>2]](e,i,A),n=o[e+12>>2],o[e+24>>2]=o[e+8>>2],o[e+28>>2]=n,n=o[e+4>>2],o[e+16>>2]=o[e>>2],o[e+20>>2]=n,w[i+28>>2]=w[e+20>>2]-w[i+20>>2],o[e+40>>2]=0,o[e+44>>2]=0,o[e+40>>2]=1065353216,o[e+32>>2]=0,o[e+36>>2]=0,Zn[o[o[i>>2]+68>>2]](t,i,A),w[i+48>>2]=w[e+24>>2]+w[i+20>>2],o[e+40>>2]=-1082130432,Zn[o[o[i>>2]+68>>2]](e,i,A),A=o[e+12>>2],o[e+24>>2]=o[e+8>>2],o[e+28>>2]=A,A=o[e+4>>2],o[e+16>>2]=o[e>>2],o[e+20>>2]=A,w[i+32>>2]=w[e+24>>2]-w[i+20>>2]),S=e+48|0,a[i+69|0]=0,a[i+68|0]=r,o[i+60>>2]=0,o[i+64>>2]=0,o[i>>2]=18648,o[i+4>>2]=21,f&&(o[8488]=o[8488]+1,A=Gi(0|Zn[o[8290]](172,16)),o[i+60>>2]=A,lA(A,o[i+56>>2],v[i+68|0],i+24|0,i+40|0),a[i+69|0]=1),0|i},fi,Ji,function(A,r,f,e,i){var n;A|=0,r|=0,f=m(f),e=m(e),i=m(i),S=n=S-16|0,o[n+12>>2]=0,w[n+8>>2]=i,w[n+4>>2]=e,w[n>>2]=f,a[A+69|0]=0,o[A+60>>2]=r,r=0|Zn[o[o[A>>2]+28>>2]](A),f=m(w[r+8>>2]-w[n+8>>2]),e=m(f*f),f=m(w[r>>2]-w[n>>2]),i=m(f*f),f=m(w[r+4>>2]-w[n+4>>2]),m(e+m(i+m(f*f)))>m(1.1920928955078125e-7)&&Nr(A,n),S=n+16|0},function(A,r,f,e,i,n){A|=0,r|=0,f|=0,e=m(e),i=m(i),n=m(n),Zn[0|A](r,f,e,i,n)},function(A,r,f,e){A|=0,r=m(r),f=m(f),e=m(e);var i,n,a=0;return S=n=S-16|0,o[8488]=o[8488]+1,i=0|Zn[o[8290]](44,16),o[n+12>>2]=0,w[n+8>>2]=e,w[n+4>>2]=f,w[n>>2]=r,o[i+12>>2]=0,o[i+16>>2]=0,o[i+4>>2]=35,o[i+8>>2]=0,o[i+20>>2]=0,o[i>>2]=20276,o[i>>2]=21340,a=o[n+4>>2],o[i+24>>2]=o[n>>2],o[i+28>>2]=a,a=o[n+12>>2],o[i+32>>2]=o[n+8>>2],o[i+36>>2]=a,o[i+40>>2]=A,o[i+4>>2]=22,S=n+16|0,0|i},function(A,r,f,e,i){return A|=0,r|=0,f=m(f),e=m(e),i=m(i),0|Zn[0|A](r,f,e,i)},function(A){var r;return A|=0,o[8488]=o[8488]+1,r=Ae(0|Zn[o[8290]](104,16)),o[r+100>>2]=A,o[r>>2]=19904,o[r+4>>2]=3,vf(r),0|r},function(){var A;return o[8488]=o[8488]+1,A=Ae(0|Zn[o[8290]](168,16)),o[A+100>>2]=0,o[A>>2]=21760,o[A+4>>2]=2,0|A},function(A,r){r|=0;var f=0,e=0;f=o[100+(A|=0)>>2],o[A+100>>2]=f+1,e=o[r+12>>2],o[112+(f=(f<<4)+A|0)>>2]=o[r+8>>2],o[f+116>>2]=e,e=o[r+4>>2],o[f+104>>2]=o[r>>2],o[f+108>>2]=e,vf(A)},function(){var A,r=0,f=0,e=0,i=0,n=0;if(o[8488]=o[8488]+1,A=Af(0|Zn[o[8290]](100,16),0,100),o[(r=A)+12>>2]=0,o[r+16>>2]=0,o[r+4>>2]=31,o[r+8>>2]=0,o[r+80>>2]=0,o[r+84>>2]=1065353216,o[r+72>>2]=0,o[r+76>>2]=1,o[r+56>>2]=-581039253,o[r+60>>2]=-581039253,o[r+40>>2]=1566444395,o[r+44>>2]=1566444395,a[r+36|0]=1,o[r>>2]=19400,o[r+32>>2]=0,o[r+96>>2]=0,o[r+88>>2]=1065353216,o[r+92>>2]=1065353216,o[(r=r- -64|0)>>2]=-581039253,o[r+4>>2]=0,o[A+48>>2]=1566444395,o[A+52>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[8488]=o[8488]+1,r=0|Zn[o[8290]](40,16),o[r+16>>2]=0,o[r+8>>2]=-1,o[r+12>>2]=0,o[r>>2]=0,o[r+4>>2]=0,o[r+32>>2]=0,a[r+36|0]=1,o[r+24>>2]=0,o[r+28>>2]=0,o[A+72>>2]=r,o[A+28>>2]<0){if((0|(n=o[A+24>>2]))>0)for(;f=(r=G(i,80))+o[A+32>>2]|0,e=o[f+4>>2],o[r>>2]=o[f>>2],o[r+4>>2]=e,e=o[f+12>>2],o[r+8>>2]=o[f+8>>2],o[r+12>>2]=e,e=o[f+28>>2],o[r+24>>2]=o[f+24>>2],o[r+28>>2]=e,e=o[f+20>>2],o[r+16>>2]=o[f+16>>2],o[r+20>>2]=e,e=o[f+44>>2],o[r+40>>2]=o[f+40>>2],o[r+44>>2]=e,e=o[f+36>>2],o[r+32>>2]=o[f+32>>2],o[r+36>>2]=e,e=o[f+60>>2],o[r+56>>2]=o[f+56>>2],o[r+60>>2]=e,e=o[f+52>>2],o[r+48>>2]=o[f+48>>2],o[r+52>>2]=e,e=o[f+68>>2],o[r+64>>2]=o[f+64>>2],o[r+68>>2]=e,e=o[f+76>>2],o[r+72>>2]=o[f+72>>2],o[r+76>>2]=e,(0|n)!=(0|(i=i+1|0)););!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+32>>2]=0,a[A+36|0]=1,o[A+28>>2]=0}return o[A>>2]=31168,0|A},Mi,function(A,r,f){A|=0,r|=0,f|=0;var e,i,n=0,t=0,c=0,b=m(0),u=0,l=0,s=0,k=0,d=m(0);if(S=e=S-128|0,o[A+76>>2]=o[A+76>>2]+1,n=o[r+12>>2],o[e+72>>2]=o[r+8>>2],o[e+76>>2]=n,n=o[r+4>>2],o[e+64>>2]=o[r>>2],o[e+68>>2]=n,n=o[r+28>>2],o[e+88>>2]=o[r+24>>2],o[e+92>>2]=n,n=o[r+20>>2],o[e+80>>2]=o[r+16>>2],o[e+84>>2]=n,n=o[r+44>>2],o[e+104>>2]=o[r+40>>2],o[e+108>>2]=n,n=o[r+36>>2],o[e+96>>2]=o[r+32>>2],o[e+100>>2]=n,n=o[r+60>>2],o[e+120>>2]=o[r+56>>2],o[e+124>>2]=n,n=o[r+52>>2],o[e+112>>2]=o[r+48>>2],o[e+116>>2]=n,i=o[f+4>>2],d=m(Zn[o[o[f>>2]+48>>2]](f)),Zn[o[o[f>>2]+8>>2]](f,r,e+48|0,e+32|0),(b=w[e+48>>2])>2]&&(w[A+40>>2]=b),(b=w[e+32>>2])>w[A+56>>2]&&(w[A+56>>2]=b),(b=w[e+52>>2])>2]&&(w[A+44>>2]=b),(b=w[e+36>>2])>w[A+60>>2]&&(w[A+60>>2]=b),(b=w[e+56>>2])>2]&&(w[A+48>>2]=b),(b=w[e+40>>2])>w[A- -64>>2]&&(w[A+64>>2]=b),(r=o[A+72>>2])?(n=o[e+60>>2],o[e+8>>2]=o[e+56>>2],o[e+12>>2]=n,n=o[e+44>>2],o[e+24>>2]=o[e+40>>2],o[e+28>>2]=n,n=o[e+36>>2],o[e+16>>2]=o[e+32>>2],o[e+20>>2]=n,n=o[e+52>>2],o[e>>2]=o[e+48>>2],o[e+4>>2]=n,r=Gf(r,e,o[A+24>>2])):r=0,(0|(u=o[A+24>>2]))==o[A+28>>2]&&!((0|(l=u?u<<1:1))<=(0|u))){if(l&&(o[8488]=o[8488]+1,k=0|Zn[o[8290]](G(l,80),16),u=o[A+24>>2]),(0|u)>0)for(;t=(n=G(s,80))+k|0,n=n+o[A+32>>2]|0,c=o[n+4>>2],o[t>>2]=o[n>>2],o[t+4>>2]=c,c=o[n+12>>2],o[t+8>>2]=o[n+8>>2],o[t+12>>2]=c,c=o[n+28>>2],o[t+24>>2]=o[n+24>>2],o[t+28>>2]=c,c=o[n+20>>2],o[t+16>>2]=o[n+16>>2],o[t+20>>2]=c,c=o[n+44>>2],o[t+40>>2]=o[n+40>>2],o[t+44>>2]=c,c=o[n+36>>2],o[t+32>>2]=o[n+32>>2],o[t+36>>2]=c,c=o[n+60>>2],o[t+56>>2]=o[n+56>>2],o[t+60>>2]=c,c=o[n+52>>2],o[t+48>>2]=o[n+48>>2],o[t+52>>2]=c,c=o[n+68>>2],o[t+64>>2]=o[n+64>>2],o[t+68>>2]=c,c=o[n+76>>2],o[t+72>>2]=o[n+72>>2],o[t+76>>2]=c,(0|(s=s+1|0))!=(0|u););!(n=o[A+32>>2])||!n|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](n)),o[A+32>>2]=k,a[A+36|0]=1,o[A+28>>2]=l,u=o[A+24>>2]}t=o[e+68>>2],n=o[A+32>>2]+G(u,80)|0,o[n>>2]=o[e+64>>2],o[n+4>>2]=t,t=o[e+76>>2],o[n+8>>2]=o[e+72>>2],o[n+12>>2]=t,t=o[e+92>>2],o[n+24>>2]=o[e+88>>2],o[n+28>>2]=t,t=o[e+84>>2],o[n+16>>2]=o[e+80>>2],o[n+20>>2]=t,t=o[e+100>>2],o[n+32>>2]=o[e+96>>2],o[n+36>>2]=t,t=o[e+108>>2],o[n+40>>2]=o[e+104>>2],o[n+44>>2]=t,t=o[e+116>>2],o[n+48>>2]=o[e+112>>2],o[n+52>>2]=t,t=o[e+124>>2],o[n+56>>2]=o[e+120>>2],o[n+60>>2]=t,o[n+64>>2]=f,o[n+68>>2]=i,w[n+72>>2]=d,o[n+76>>2]=r,o[A+24>>2]=o[A+24>>2]+1,S=e+128|0},function(A,r){return r|=0,o[64+(o[32+(A|=0)>>2]+G(r,80)|0)>>2]},ui,function(A,r,f,e){r|=0,f|=0,e|=0;var i=0,n=0,a=0;a=o[32+(A|=0)>>2],i=o[A+24>>2];A:{for(;;){if((0|i)<=0)break A;if(o[64+(a+G(i=i-1|0,80)|0)>>2]==(0|r))break}S=r=S+-64|0,n=o[f+4>>2],i=(a=G(i,80))+o[A+32>>2]|0,o[i>>2]=o[f>>2],o[i+4>>2]=n,n=o[f+12>>2],o[i+8>>2]=o[f+8>>2],o[i+12>>2]=n,n=o[f+28>>2],o[i+24>>2]=o[f+24>>2],o[i+28>>2]=n,n=o[f+20>>2],o[i+16>>2]=o[f+16>>2],o[i+20>>2]=n,n=o[f+44>>2],o[i+40>>2]=o[f+40>>2],o[i+44>>2]=n,n=o[f+36>>2],o[i+32>>2]=o[f+32>>2],o[i+36>>2]=n,n=o[f+60>>2],o[i+56>>2]=o[f+56>>2],o[i+60>>2]=n,n=o[f+52>>2],o[i+48>>2]=o[f+48>>2],o[i+52>>2]=n,o[A+72>>2]&&(i=o[64+(a+o[A+32>>2]|0)>>2],Zn[o[o[i>>2]+8>>2]](i,f,r+48|0,r+32|0),f=o[r+60>>2],o[r+8>>2]=o[r+56>>2],o[r+12>>2]=f,f=o[r+44>>2],o[r+24>>2]=o[r+40>>2],o[r+28>>2]=f,f=o[r+36>>2],o[r+16>>2]=o[r+32>>2],o[r+20>>2]=f,f=o[r+52>>2],o[r>>2]=o[r+48>>2],o[r+4>>2]=f,Xf(o[A+72>>2],o[76+(a+o[A+32>>2]|0)>>2],r)),e&&Zn[o[o[A>>2]+68>>2]](A),S=r- -64|0}},Ai,function(){return o[8488]=o[8488]+1,0|Qr(0|Zn[o[8290]](324,16))},function(A){return o[192+(A|=0)>>2]},li,function(A,r){r|=0,w[184+(A|=0)>>2]=0|r},function(A){return 2==o[220+(A|=0)>>2]|0},function(A){return o[220+(A|=0)>>2]},function(A,r){r|=0,o[220+(A|=0)>>2]=r},function(A,r){ze(A|=0,r|=0)},function(A){return 2!=(0|(A=o[220+(A|=0)>>2]))&5!=(0|A)},function(A){return(2&v[204+(A|=0)|0])>>>1|0},function(A){return 1&o[204+(A|=0)>>2]},function(A){return 0|!!(3&v[204+(A|=0)|0])},fn,function(A,r){r|=0,o[204+(A|=0)>>2]=r},gi,function(A,r){A|=0,r=m(r),w[A+276>>2]=r},function(A,r){A|=0,r=m(r),w[A+272>>2]=r},function(A,r){r|=0,o[264+(A|=0)>>2]=r},function(A){return o[264+(A|=0)>>2]},function(A,r,f,e,i){A|=0,r=m(r),f=m(f),e=m(e),i=m(i),w[A+232>>2]=r,w[A+236>>2]=e,w[A+228>>2]=f,w[A+240>>2]=i,o[A+304>>2]=o[A+304>>2]+4},function(A,r,f){r|=0,f|=0;var e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0;e=o[288+(A|=0)>>2];A:{if(f){if(o[A+292>>2]==(0|e)&&!((0|(c=e?e<<1:1))<=(0|e))){if(c&&(o[8488]=o[8488]+1,n=0|Zn[o[8290]](c<<2,16),e=o[A+288>>2]),!((0|e)<=0)){if(f=0,e>>>0>=4)for(b=-4&e;o[(i=f<<2)+n>>2]=o[i+o[A+296>>2]>>2],o[(t=4|i)+n>>2]=o[t+o[A+296>>2]>>2],o[(t=8|i)+n>>2]=o[t+o[A+296>>2]>>2],o[(i|=12)+n>>2]=o[i+o[A+296>>2]>>2],f=f+4|0,(0|b)!=(0|(u=u+4|0)););if(i=3&e)for(;o[(b=f<<2)+n>>2]=o[b+o[A+296>>2]>>2],f=f+1|0,(0|i)!=(0|(l=l+1|0)););}!(f=o[A+296>>2])|!v[A+300|0]||(f&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),e=o[A+288>>2]),o[A+296>>2]=n,a[A+300|0]=1,o[A+292>>2]=c}o[o[A+296>>2]+(e<<2)>>2]=r,e=e+1|0}else{if((0|e)<=0)break A;for(n=o[A+296>>2],f=0;;){if(o[(i=n+(f<<2)|0)>>2]!=(0|r)){if((0|e)!=(0|(f=f+1|0)))continue;break A}break}if((0|f)>=(0|e))break A;f=(e=e-1|0)<<2,o[i>>2]=o[f+n>>2],o[f+o[A+296>>2]>>2]=r}o[A+288>>2]=e}o[A+280>>2]=(0|e)>0},function(A,r){var f;return A=m(A),r|=0,S=f=S-144|0,v[33816]||(o[8447]=0,o[8448]=0,o[8445]=35,o[8446]=0,o[8449]=0,o[8444]=20276,o[8445]=27,o[8444]=20384,a[33816]=1),o[f+88>>2]=0,o[f+92>>2]=0,o[f+12>>2]=0,o[f+16>>2]=0,o[f+20>>2]=0,o[f+24>>2]=0,w[f>>2]=A,A=A==m(0)?m(0):m(1.6666666269302368),w[f+84>>2]=A,w[f+80>>2]=A,o[f+136>>2]=1008981770,o[f+140>>2]=1008981770,o[f+128>>2]=1000593162,o[f+132>>2]=1008981770,a[f+124|0]=0,o[f+120>>2]=1065353216,o[f+112>>2]=0,o[f+116>>2]=1061997773,o[f+104>>2]=0,o[f+108>>2]=0,o[f+96>>2]=0,o[f+100>>2]=1056964608,o[f+4>>2]=r,o[f+8>>2]=1065353216,o[f+72>>2]=33776,w[f+76>>2]=A,o[f+32>>2]=0,o[f+36>>2]=0,o[f+28>>2]=1065353216,o[f+40>>2]=0,o[f+44>>2]=0,o[f+48>>2]=1065353216,o[f+52>>2]=0,o[f+56>>2]=0,o[f+60>>2]=0,o[f+64>>2]=0,o[f+68>>2]=0,o[8488]=o[8488]+1,r=Qr(0|Zn[o[8290]](676,16)),o[r>>2]=24120,a[r+560|0]=1,o[r+556>>2]=0,o[r+548>>2]=0,o[r+552>>2]=0,RA(r,f),S=f+144|0,0|r},function(A,r,f){return A|=0,r=m(r),f|=0,0|Zn[0|A](r,f)},function(A){return o[564+(A|=0)>>2]},function(A,r){r|=0,o[564+(A|=0)>>2]=r},function(A,r){Of(A|=0,r|=0)},function(A,r,f){A|=0,r=m(r),f=m(f),w[A+508>>2]=fm(1)?m(1):f,w[A+504>>2]=rm(1)?m(1):r},function(A,r){var f,e;A|=0,r=m(r),S=f=S-16|0,o[f+8>>2]=1070945621,o[f+12>>2]=0,o[f>>2]=1070945621,o[f+4>>2]=1070945621,e=o[A+192>>2];A:if(le(0|Zn[o[o[e>>2]+36>>2]](e),1038))if(31!=o[e+4>>2])Zn[o[o[e>>2]+32>>2]](e,r,f);else{if(o[e+24>>2]<=0)break A;Zn[o[o[e>>2]+32>>2]](e,r,f)}Nf(A,r,f),S=f+16|0},function(A,r,f){Nf(A|=0,r=m(r),f|=0)},function(A,r){A|=0,r|=0;var f=0,e=m(0);f=o[r+4>>2],o[A+408>>2]=o[r>>2],o[A+412>>2]=f,f=o[r+12>>2],o[A+416>>2]=o[r+8>>2],o[A+420>>2]=f,o[A+632>>2]=0,e=w[A+404>>2],w[A+624>>2]=e*w[A+412>>2],w[A+620>>2]=e*w[A+408>>2],w[A+628>>2]=e*w[A+416>>2]},function(A,r){r|=0;var f=0;o[304+(A|=0)>>2]=o[A+304>>2]+1,f=o[r+4>>2],o[A+604>>2]=o[r>>2],o[A+608>>2]=f,f=o[r+12>>2],o[A+612>>2]=o[r+8>>2],o[A+616>>2]=f},function(A,r){r|=0;var f=0;o[304+(A|=0)>>2]=o[A+304>>2]+1,f=o[r+4>>2],o[A+372>>2]=o[r>>2],o[A+376>>2]=f,f=o[r+12>>2],o[A+380>>2]=o[r+8>>2],o[A+384>>2]=f},function(A){return 372+(A|=0)|0},function(A,r){r|=0;var f=0;o[304+(A|=0)>>2]=o[A+304>>2]+1,f=o[r+4>>2],o[A+388>>2]=o[r>>2],o[A+392>>2]=f,f=o[r+12>>2],o[A+396>>2]=o[r+8>>2],o[A+400>>2]=f},function(A){return 388+(A|=0)|0},function(A){o[372+(A|=0)>>2]=0,o[A+376>>2]=0,o[A+472>>2]=0,o[A+476>>2]=0,o[A+396>>2]=0,o[A+400>>2]=0,o[A+388>>2]=0,o[A+392>>2]=0,o[A+380>>2]=0,o[A+384>>2]=0,o[A+480>>2]=0,o[A+484>>2]=0,o[A+488>>2]=0,o[A+492>>2]=0,o[A+496>>2]=0,o[A+500>>2]=0},function(A){o[472+(A|=0)>>2]=0,o[A+476>>2]=0,o[A+496>>2]=0,o[A+500>>2]=0,o[A+488>>2]=0,o[A+492>>2]=0,o[A+480>>2]=0,o[A+484>>2]=0},function(A){A|=0;var r,f=m(0),e=0;return r=o[A+220>>2],v[35849]|4==(0|r)||(f=w[8299])!=m(0)&&(e=1,2!=(-2&r)&&(e=w[A+224>>2]>f)),0|e},function(A,r,f){A|=0,r=m(r),f=m(f),w[A+536>>2]=f,w[A+532>>2]=r},function(A){return m(w[532+(A|=0)>>2])},function(A){return o[540+(A|=0)>>2]},function(A,r){A|=0,r|=0;var f=m(0),e=m(0);f=w[r+8>>2],e=w[r+4>>2],w[A+488>>2]=m(w[r>>2]*w[A+604>>2])+w[A+488>>2],w[A+492>>2]=m(e*w[A+608>>2])+w[A+492>>2],w[A+496>>2]=m(f*w[A+612>>2])+w[A+496>>2]},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),o=m(0),c=m(0),b=m(0);a=w[r+8>>2],e=w[r+4>>2],i=w[A+408>>2],w[A+472>>2]=m(w[r>>2]*i)+w[A+472>>2],t=e,e=w[A+412>>2],w[A+476>>2]=m(t*e)+w[A+476>>2],n=w[A+416>>2],w[A+480>>2]=m(a*n)+w[A+480>>2],b=w[r>>2],a=w[f>>2],o=w[f+4>>2],n=m(n*w[r+8>>2]),e=m(e*w[r+4>>2]),c=w[f+8>>2],w[A+488>>2]=m(m(m(o*n)-m(e*c))*w[A+604>>2])+w[A+488>>2],t=w[A+612>>2],i=m(i*b),w[A+492>>2]=m(m(m(c*i)-m(n*a))*w[A+608>>2])+w[A+492>>2],w[A+496>>2]=m(t*m(m(a*e)-m(i*o)))+w[A+496>>2]},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),o=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0);(a=w[A+404>>2])!=m(0)&&(i=w[r+8>>2],e=w[r+4>>2],t=w[A+408>>2],w[A+372>>2]=m(a*m(w[r>>2]*t))+w[A+372>>2],n=e,e=w[A+412>>2],w[A+376>>2]=m(a*m(n*e))+w[A+376>>2],n=i,i=w[A+416>>2],w[A+380>>2]=m(a*m(n*i))+w[A+380>>2],c=w[A+612>>2],b=w[A+364>>2],u=w[A+356>>2],l=w[A+360>>2],s=w[A+608>>2],k=w[A+348>>2],d=w[A+340>>2],v=w[A+344>>2],o=w[f>>2],e=m(e*w[r+4>>2]),t=m(t*w[r>>2]),n=w[f+4>>2],a=m(m(o*e)-m(t*n)),h=n,n=m(i*w[r+8>>2]),i=e,e=w[f+8>>2],i=m(m(h*n)-m(i*e)),e=m(m(e*t)-m(n*o)),w[A+388>>2]=m(m(m(w[A+332>>2]*a)+m(m(w[A+324>>2]*i)+m(w[A+328>>2]*e)))*w[A+604>>2])+w[A+388>>2],w[A+392>>2]=m(s*m(m(k*a)+m(m(d*i)+m(e*v))))+w[A+392>>2],w[A+396>>2]=m(c*m(m(b*a)+m(m(u*i)+m(e*l))))+w[A+396>>2])},function(A,r){r|=0,A=o[540+(A|=0)>>2],Zn[o[o[A>>2]+8>>2]](A,r)},function(){var A;return S=A=S-32|0,v[33908]||(o[A+24>>2]=0,o[A+28>>2]=1,o[A+16>>2]=4096,o[A+20>>2]=4096,o[A+8>>2]=0,o[A+12>>2]=0,TA(A+8|0),a[33908]=1),S=A+32|0,33820},function(){var A,r,f=0,e=0,i=0,n=0,t=0,c=0;for(S=r=S-32|0,A=xe(10448),v[33908]||(o[r+24>>2]=0,o[r+28>>2]=1,o[r+16>>2]=4096,o[r+20>>2]=4096,o[r+8>>2]=0,o[r+12>>2]=0,TA(r+8|0),a[33908]=1),o[A+4>>2]=2,o[A+10444>>2]=33820,o[A+64>>2]=469,a[A+24|0]=1,o[A>>2]=12960,o[A+20>>2]=0,o[A+60>>2]=0,o[A+28>>2]=17976,o[A+12>>2]=0,o[A+16>>2]=0,t=A,c=0|Zn[o[o[8455]+12>>2]](33820),o[t+68>>2]=c,t=A,c=0|Zn[o[o[8455]+8>>2]](33820),o[t+72>>2]=c;;){for(f=0;i=(G(e,144)+A|0)+(f<<2)|0,n=o[A+10444>>2],t=i,c=0|Zn[o[o[n>>2]+16>>2]](n,e,f),o[t+76>>2]=c,n=i+5260|0,i=o[A+10444>>2],t=n,c=0|Zn[o[o[i>>2]+20>>2]](i,e,f),o[t>>2]=c,36!=(0|(f=f+1|0)););if(36==(0|(e=e+1|0)))break}return S=r+32|0,0|A},function(A){return 0|Zn[o[o[(A|=0)>>2]+36>>2]](A)},function(A,r){return r|=0,0|Zn[o[o[(A|=0)>>2]+40>>2]](A,r)},function(A){return o[200+(A|=0)>>2]},gi,function(A){return o[108+(A|=0)>>2]},function(A){return o[112+(A|=0)>>2]},function(A){return o[836+(A|=0)>>2]},function(A){return o[840+(A|=0)>>2]},function(A){return o[844+(A|=0)>>2]},function(A,r){return A|=0,4+(G(r|=0,208)+A|0)|0},en,function(A){return 16+(A|=0)|0},rn,function(A){return 32+(A|=0)|0},function(A){return(A|=0)- -64|0},function(){var A,r,f=0,e=0,i=0,n=0,t=0,c=0;A=xe(176),S=r=S-32|0,o[A>>2]=12040,o[16+(f=A+4|0)>>2]=0,o[f+8>>2]=-1,o[f+12>>2]=0,o[f>>2]=0,o[f+4>>2]=0,o[f+32>>2]=0,a[f+36|0]=1,o[f+24>>2]=0,o[f+28>>2]=0,o[16+(f=A+44|0)>>2]=0,o[f+8>>2]=-1,o[f+12>>2]=0,o[f>>2]=0,o[f+4>>2]=0,o[f+32>>2]=0,a[f+36|0]=1,o[f+24>>2]=0,o[f+28>>2]=0,o[A+168>>2]=0,e=1,a[A+172|0]=1,o[A+160>>2]=0,o[A+164>>2]=0,a[A+153|0]=0,a[A+154|0]=1,a[A+152|0]=1,o[A+124>>2]=0,o[A+100>>2]=0,o[A+104>>2]=0,o[A+136>>2]=0,o[A+128>>2]=0,o[A+132>>2]=0,o[A+116>>2]=10,o[A+120>>2]=1,o[A+108>>2]=1,o[A+112>>2]=0,o[8488]=o[8488]+1,i=hf(0|Zn[o[8290]](72,16)),f=o[A+160>>2],o[A+148>>2]=0,o[A+96>>2]=i,o[A+140>>2]=0,o[A+144>>2]=0,o[A+84>>2]=0,o[A+88>>2]=0,o[A+92>>2]=0,o[r+24>>2]=0,a[r+28|0]=1,o[r+16>>2]=0,o[r+20>>2]=0;A:{if((0|f)>=2)for(;;)if(i=o[A+168>>2]+G(e,20)|0,!(n=o[i+12>>2])||!n|!v[i+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](n)),a[i+16|0]=1,o[i+12>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,(0|(e=e+1|0))==(0|f))break A;if(1!=(0|f)){if(e=0,o[A+164>>2]<=0){if(o[8488]=o[8488]+1,n=0|Zn[o[8290]](20,16),!((0|(i=o[A+160>>2]))<=0)){for(;Br((t=G(e,20))+n|0,t+o[A+168>>2]|0),(0|i)!=(0|(e=e+1|0)););if(!((0|(c=o[A+160>>2]))<=0))for(e=0;i=o[A+168>>2]+G(e,20)|0,!(t=o[i+12>>2])||!t|!v[i+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](t)),a[i+16|0]=1,o[i+12>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,(0|c)!=(0|(e=e+1|0)););}!(e=o[A+168>>2])||!e|!v[A+172|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+168>>2]=n,a[A+172|0]=1,o[A+164>>2]=1}for(;e=f,Br(o[A+168>>2]+G(f,20)|0,r+12|0),f=f+1|0,e;);}}return o[A+160>>2]=1,!(f=o[r+24>>2])||!f|!v[r+28|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),S=r+32|0,0|A},function(){return o[8488]=o[8488]+1,0|lf(0|Zn[o[8290]](236,16))},function(A,r,f,e){r|=0,f|=0,e|=0,Zn[o[o[(A|=0)>>2]+36>>2]](A,r,f,e)},Ai,function(A,r){r|=0,Zn[o[o[(A|=0)>>2]+40>>2]](A,r)},function(A,r,f,e){r|=0,f|=0,e|=0,Zn[o[o[(A|=0)>>2]+32>>2]](A,r,f,e)},function(A,r,f,e,i,n){EA(A|=0,r|=0,f|=0,e|=0,i|=0,n=m(n))},function(A,r,f,e,i,n,a){A|=0,r|=0,f|=0,e|=0,i|=0,n|=0,a=m(a),Zn[0|A](r,f,e,i,n,a)},function(A,r){r|=0,Zn[o[o[(A|=0)>>2]+16>>2]](A,r)},function(A){Zn[o[o[(A|=0)>>2]+24>>2]](A)},function(A,r,f){A|=0,r|=0,f|=0;var e,i,n=0,c=0;return S=i=S-32|0,o[8488]=o[8488]+1,e=0|Zn[o[8290]](348,16),v[33908]||(o[i+24>>2]=0,o[i+28>>2]=1,o[i+16>>2]=4096,o[i+20>>2]=4096,o[i+8>>2]=0,o[i+12>>2]=0,TA(i+8|0),a[33908]=1),a[e+76|0]=1,o[e+72>>2]=0,o[e+68>>2]=r,o[(r=e)+28>>2]=0,o[r+32>>2]=0,o[r+24>>2]=A,a[r+20|0]=1,o[r>>2]=13192,o[r+16>>2]=0,o[r- -64>>2]=0,a[r+60|0]=0,o[r+56>>2]=1025758986,a[r+54|0]=1,t[r+52>>1]=256,o[r+48>>2]=0,a[r+44|0]=1,o[r+36>>2]=1,o[r+40>>2]=1065353216,o[r+8>>2]=0,o[r+12>>2]=0,o[r+92>>2]=1058642330,o[r+96>>2]=1065353216,o[r+88>>2]=0,o[r+80>>2]=0,o[r+84>>2]=0,o[r>>2]=24244,o[r+100>>2]=1050253722,o[r+104>>2]=1015580809,o[r+132>>2]=0,o[r+136>>2]=1045220557,o[r+124>>2]=1045220557,o[r+128>>2]=1045220557,o[r+108>>2]=0,o[r+112>>2]=10,o[r+184>>2]=0,o[r+188>>2]=1045220557,o[r+176>>2]=1120403456,o[r+180>>2]=1900671690,o[r+172>>2]=128,o[r+164>>2]=260,o[r+168>>2]=2,o[r+156>>2]=0,o[r+160>>2]=1062836634,o[r+148>>2]=-1121724662,o[r+152>>2]=1036831949,o[r+140>>2]=0,o[r+144>>2]=1,o[r+116>>2]=1101004800,o[r+120>>2]=1065353216,a[r+208|0]=1,o[r+204>>2]=0,a[r+240|0]=1,o[r+216>>2]=f,o[r+212>>2]=0,o[r+196>>2]=0,o[r+200>>2]=0,o[r+236>>2]=0,o[r+228>>2]=0,o[r+232>>2]=0,a[r+260|0]=1,t[r+290>>1]=0,o[r+256>>2]=0,o[r+264>>2]=0,o[r+268>>2]=-1054867456,o[r+248>>2]=0,o[r+252>>2]=0,o[r+272>>2]=0,o[r+276>>2]=0,o[r+280>>2]=0,o[r+284>>2]=0,a[r+308|0]=1,o[r+312>>2]=0,o[r+304>>2]=0,o[r+296>>2]=0,o[r+300>>2]=0,a[r+336|0]=1,a[r+316|0]=1,o[r+324>>2]=0,o[r+328>>2]=0,o[r+332>>2]=0,o[r+340>>2]=0,f?f=0:(o[8488]=o[8488]+1,n=e,c=lf(0|Zn[o[8290]](236,16)),o[n+216>>2]=c,f=1),a[r+289|0]=f,o[8488]=o[8488]+1,r=0|Zn[o[8290]](68,16),o[r>>2]=24184,o[r+16>>2]=0,a[r+20|0]=1,o[r+8>>2]=0,o[r+12>>2]=0,o[r+36>>2]=0,a[r+40|0]=1,a[r+60|0]=1,o[r+28>>2]=0,o[r+32>>2]=0,o[r+56>>2]=0,a[r+64|0]=1,o[r+48>>2]=0,o[r+52>>2]=0,a[e+288|0]=1,o[e+220>>2]=r,o[8488]=o[8488]+1,r=0|Zn[o[8290]](88,16),f=o[e+216>>2],a[r+44|0]=1,o[r+24>>2]=A,o[r+20>>2]=0,o[r+12>>2]=0,o[r+16>>2]=0,o[r+8>>2]=f,o[r+4>>2]=0,o[r>>2]=24508,o[r+40>>2]=0,a[r- -64|0]=1,o[r+32>>2]=0,o[r+36>>2]=0,o[r+60>>2]=0,a[r+84|0]=1,o[r+52>>2]=0,o[r+56>>2]=0,o[r+80>>2]=0,o[r+72>>2]=0,o[r+76>>2]=0,o[e+212>>2]=r,o[e+344>>2]=24940,o[e>>2]=24700,o[e+56>>2]=1008981770,A=o[e+68>>2],A=0|Zn[o[o[A>>2]+36>>2]](A),Zn[o[o[A>>2]+44>>2]](A,e+344|0),A=o[e+68>>2],A=0|Zn[o[o[A>>2]+36>>2]](A),r=xe(4),o[r>>2]=25040,Zn[o[o[A>>2]+60>>2]](A,r),S=i+32|0,0|e},fi,function(A,r){r|=0,a[35849]=1^r},function(A,r){r|=0,Zn[o[o[(A|=0)>>2]+72>>2]](A,r)},function(A,r,f,e){A|=0,r=m(r),f|=0,e=m(e),Zn[o[o[A>>2]+52>>2]](A,r,f,e)},function(A,r,f,e,i){A|=0,r|=0,f=m(f),e|=0,i=m(i),Zn[0|A](r,f,e,i)},function(A,r,f,e){r|=0,f|=0,e|=0,Zn[o[o[(A|=0)>>2]+88>>2]](A,r,f,e)},function(A,r){r|=0,Zn[o[o[(A|=0)>>2]+92>>2]](A,r)},function(A,r,f){r|=0,f|=0,Zn[o[o[(A|=0)>>2]+56>>2]](A,r,f)},function(A,r){r|=0,Zn[o[o[(A|=0)>>2]+60>>2]](A,r)},ui,bi,function(A,r){r|=0,Zn[o[o[(A|=0)>>2]+52>>2]](A,r)},function(A){return 0|Zn[o[o[(A|=0)>>2]+56>>2]](A)},function(A,r,f,e){var i;A|=0,r=m(r),f=m(f),e=m(e),S=i=S-128|0,Zn[o[o[A>>2]+8>>2]](i,A),w[i+8>>2]=e,w[i+4>>2]=f,w[i>>2]=r,Zn[o[o[A>>2]+12>>2]](A,i),S=i+128|0},function(A,r,f,e){var i;A|=0,r=m(r),f=m(f),e=m(e),S=i=S-128|0,Zn[o[o[A>>2]+8>>2]](i,A),w[i+24>>2]=e,w[i+20>>2]=f,w[i+16>>2]=r,Zn[o[o[A>>2]+12>>2]](A,i),S=i+128|0},function(A,r,f,e){var i;A|=0,r=m(r),f=m(f),e=m(e),S=i=S-128|0,Zn[o[o[A>>2]+8>>2]](i,A),w[i+40>>2]=e,w[i+36>>2]=f,w[i+32>>2]=r,Zn[o[o[A>>2]+12>>2]](A,i),S=i+128|0},function(A,r,f,e){var i;A|=0,r=m(r),f=m(f),e=m(e),S=i=S-128|0,Zn[o[o[A>>2]+8>>2]](i,A),w[i+56>>2]=e,w[i+52>>2]=f,w[i+48>>2]=r,Zn[o[o[A>>2]+12>>2]](A,i),S=i+128|0},function(A,r,f,e){var i;A|=0,r=m(r),f=m(f),e=m(e),S=i=S-128|0,Zn[o[o[A>>2]+8>>2]](i,A),w[i+72>>2]=e,w[i+68>>2]=f,w[i+64>>2]=r,Zn[o[o[A>>2]+12>>2]](A,i),S=i+128|0},function(A,r,f,e){var i;A|=0,r=m(r),f=m(f),e=m(e),S=i=S-128|0,Zn[o[o[A>>2]+8>>2]](i,A),w[i+88>>2]=e,w[i+84>>2]=f,w[i+80>>2]=r,Zn[o[o[A>>2]+12>>2]](A,i),S=i+128|0},function(A,r,f,e){var i;A|=0,r=m(r),f=m(f),e=m(e),S=i=S-128|0,Zn[o[o[A>>2]+8>>2]](i,A),w[i+104>>2]=e,w[i+100>>2]=f,w[i+96>>2]=r,Zn[o[o[A>>2]+12>>2]](A,i),S=i+128|0},function(A,r,f,e){var i;A|=0,r=m(r),f=m(f),e=m(e),S=i=S-128|0,Zn[o[o[A>>2]+8>>2]](i,A),w[i+120>>2]=e,w[i+116>>2]=f,w[i+112>>2]=r,Zn[o[o[A>>2]+12>>2]](A,i),S=i+128|0},function(A){return 0!=o[8+(A|=0)>>2]|0},function(A){return 0!=o[16+(A|=0)>>2]|0},function(){var A,r=0;return S=A=S-32|0,v[33516]||(o[8344]=0,o[8341]=1065353216,o[8342]=0,a[33396]=1,o[8340]=31016,o[8348]=0,o[8346]=0,o[8347]=0,r=o[A+20>>2],o[8350]=o[A+16>>2],o[8351]=r,r=o[A+28>>2],o[8352]=o[A+24>>2],o[8353]=r,r=o[A+4>>2],o[8354]=o[A>>2],o[8355]=r,r=o[A+12>>2],o[8356]=o[A+8>>2],o[8357]=r,a[33448]=1,o[8361]=0,a[33468]=1,o[8359]=0,o[8360]=0,o[8366]=0,o[8364]=0,o[8365]=0,a[33488]=1,o[8371]=0,o[8369]=0,o[8370]=0,a[33508]=1,o[8340]=30968,o[8376]=0,a[33512]=1,o[8374]=0,o[8375]=0,o[8343]=-1,a[33516]=1),S=A+32|0,33360},Fi,function(A,r,f,e,i){A|=0,f|=0,e|=0,i|=0;var n=0;if(n=o[4+(r|=0)>>2],o[A+40>>2]=o[r>>2],o[A+44>>2]=n,n=o[r+12>>2],o[A+48>>2]=o[r+8>>2],o[A+52>>2]=n,r=o[f+4>>2],o[A+56>>2]=o[f>>2],o[A+60>>2]=r,n=o[f+12>>2],o[(r=A- -64|0)>>2]=o[f+8>>2],o[r+4>>2]=n,a[A+152|0]=i,o[A+12>>2]=e,o[A+4>>2]=1065353216,o[A+8>>2]=0,(0|(f=o[A+136>>2]))<0&&(r=o[A+144>>2],o[A+140>>2]<0&&(!r||!r|!v[A+148|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+148|0]=1,o[A+140>>2]=0,o[A+144>>2]=0,r=0),Af((e=r)+(r=f<<2)|0,0,0-r|0)),o[A+136>>2]=0,(0|(f=o[A+116>>2]))<0&&(r=o[A+124>>2],o[A+120>>2]<0&&(!r||!r|!v[A+128|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+128|0]=1,o[A+120>>2]=0,o[A+124>>2]=0,r=0),Af((e=r)+(r=f<<2)|0,0,0-r|0)),o[A+116>>2]=0,!((0|(f=o[A+24>>2]))>=0)){if(o[A+28>>2]<0&&(!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+36|0]=1,o[A+28>>2]=0,o[A+32>>2]=0),e=0,i=0-(r=f)&3)for(;o[o[A+32>>2]+(r<<2)>>2]=0,r=r+1|0,(0|i)!=(0|(e=e+1|0)););if(!(f>>>0>4294967292))for(;o[(f=r<<2)+o[A+32>>2]>>2]=0,o[4+(f+o[A+32>>2]|0)>>2]=0,o[8+(f+o[A+32>>2]|0)>>2]=0,o[12+(f+o[A+32>>2]|0)>>2]=0,r=r+4|0;);}o[A+24>>2]=0,(o[A+96>>2]&o[A+100>>2])<0&&(!(r=o[A+104>>2])||!r|!v[A+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+108|0]=1,o[A+100>>2]=0,o[A+104>>2]=0),o[A+96>>2]=0,(o[A+76>>2]&o[A+80>>2])<0&&(!(r=o[A+84>>2])||!r|!v[A+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+88|0]=1,o[A+80>>2]=0,o[A+84>>2]=0),o[A+76>>2]=0},Oe,_i,An,Oi,Yi,function(){return v[33356]||(o[8317]=1065353216,o[8318]=0,a[33352]=1,o[8337]=0,o[8316]=30888,o[8319]=-1,o[8320]=0,a[33356]=1),33264},Fi,function(A,r,f,e,i){A|=0,f|=0,e|=0,i|=0;var n=0;n=o[4+(r|=0)>>2],o[A+20>>2]=o[r>>2],o[A+24>>2]=n,n=o[r+12>>2],o[A+28>>2]=o[r+8>>2],o[A+32>>2]=n,r=o[f+4>>2],o[A+36>>2]=o[f>>2],o[A+40>>2]=r,r=o[f+12>>2],o[A+44>>2]=o[f+8>>2],o[A+48>>2]=r,a[A+88|0]=i,o[A+12>>2]=e,o[A+4>>2]=1065353216,o[A+8>>2]=0},qi,Ki,Hi,function(){var A,r=0;return S=A=S-32|0,v[33772]||(o[8407]=-1,o[8408]=0,o[8405]=1065353216,o[8406]=1,a[33652]=1,o[8404]=31144,o[8412]=0,o[8410]=0,o[8411]=0,r=o[A+20>>2],o[8414]=o[A+16>>2],o[8415]=r,r=o[A+28>>2],o[8416]=o[A+24>>2],o[8417]=r,r=o[A+4>>2],o[8418]=o[A>>2],o[8419]=r,r=o[A+12>>2],o[8420]=o[A+8>>2],o[8421]=r,a[33704]=1,o[8425]=0,a[33724]=1,o[8423]=0,o[8424]=0,o[8430]=0,o[8428]=0,o[8429]=0,a[33744]=1,o[8435]=0,o[8433]=0,o[8434]=0,a[33764]=1,o[8404]=31096,o[8440]=0,a[33768]=1,o[8438]=0,o[8439]=0,o[8406]=-1,a[33772]=1),S=A+32|0,33616},function(A,r,f,e,i){A|=0,f|=0,e|=0,i|=0;var n=0;if(n=o[4+(r|=0)>>2],o[A+40>>2]=o[r>>2],o[A+44>>2]=n,n=o[r+12>>2],o[A+48>>2]=o[r+8>>2],o[A+52>>2]=n,r=o[f+4>>2],o[A+56>>2]=o[f>>2],o[A+60>>2]=r,n=o[f+12>>2],o[(r=A- -64|0)>>2]=o[f+8>>2],o[r+4>>2]=n,a[A+152|0]=i,o[A+12>>2]=e,o[A+4>>2]=1065353216,(0|(f=o[A+136>>2]))<0&&(r=o[A+144>>2],o[A+140>>2]<0&&(!r||!r|!v[A+148|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+148|0]=1,o[A+140>>2]=0,o[A+144>>2]=0,r=0),Af((e=r)+(r=f<<2)|0,0,0-r|0)),o[A+136>>2]=0,(0|(f=o[A+116>>2]))<0&&(r=o[A+124>>2],o[A+120>>2]<0&&(!r||!r|!v[A+128|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+128|0]=1,o[A+120>>2]=0,o[A+124>>2]=0,r=0),Af((e=r)+(r=f<<2)|0,0,0-r|0)),o[A+116>>2]=0,!((0|(f=o[A+24>>2]))>=0)){if(o[A+28>>2]<0&&(!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+36|0]=1,o[A+28>>2]=0,o[A+32>>2]=0),e=0,i=0-(r=f)&3)for(;o[o[A+32>>2]+(r<<2)>>2]=0,r=r+1|0,(0|i)!=(0|(e=e+1|0)););if(!(f>>>0>4294967292))for(;o[(f=r<<2)+o[A+32>>2]>>2]=0,o[4+(f+o[A+32>>2]|0)>>2]=0,o[8+(f+o[A+32>>2]|0)>>2]=0,o[12+(f+o[A+32>>2]|0)>>2]=0,r=r+4|0;);}o[A+24>>2]=0,(o[A+96>>2]&o[A+100>>2])<0&&(!(r=o[A+104>>2])||!r|!v[A+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+108|0]=1,o[A+100>>2]=0,o[A+104>>2]=0),o[A+96>>2]=0,(o[A+76>>2]&o[A+80>>2])<0&&(!(r=o[A+84>>2])||!r|!v[A+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+88|0]=1,o[A+80>>2]=0,o[A+84>>2]=0),o[A+76>>2]=0},_i,An,Oi,Yi,function(){return v[33612]||(o[8383]=-1,o[8384]=0,o[8381]=1065353216,o[8382]=-1,a[33608]=1,o[8401]=0,o[8380]=31040,a[33612]=1),33520},function(A,r,f,e,i){A|=0,f|=0,e|=0,i|=0;var n=0;n=o[4+(r|=0)>>2],o[A+20>>2]=o[r>>2],o[A+24>>2]=n,n=o[r+12>>2],o[A+28>>2]=o[r+8>>2],o[A+32>>2]=n,r=o[f+4>>2],o[A+36>>2]=o[f>>2],o[A+40>>2]=r,r=o[f+12>>2],o[A+44>>2]=o[f+8>>2],o[A+48>>2]=r,a[A+88|0]=i,o[A+12>>2]=e,o[A+16>>2]=0,o[A+4>>2]=1065353216},qi,Ki,Hi,Yi,function(){var A;return A=xe(16),o[A+8>>2]=1036831949,o[A+12>>2]=1036831949,o[A>>2]=1036831949,o[A+4>>2]=1058642330,0|A},je,Ui,ji,fn,Si,$i,Ri,Di,Ji,function(A,r,f,e){A|=0,r|=0,f=m(f),e=m(e);var i,n=0;return S=i=S-16|0,n=o[r+12>>2],o[i+8>>2]=o[r+8>>2],o[i+12>>2]=n,n=o[r+4>>2],o[i>>2]=o[r>>2],o[i+4>>2]=n,e=m(Zn[o[o[A>>2]+20>>2]](A)),a[A+65|0]=0,w[A+16>>2]=e,e=w[A+36>>2],w[A+36>>2]=e>m(.009999999776482582)?e:m(.009999999776482582),r=o[A+4>>2],n=o[r+56>>2],o[A+136>>2]=o[r+52>>2],o[A+140>>2]=n,n=o[r+64>>2],o[A+144>>2]=o[r+60>>2],o[A+148>>2]=n,r=fr(A,i,f),v[A+60|0]&&(a[A+61|0]=1,n=o[A+148>>2],r=o[A+4>>2],o[r+60>>2]=o[A+144>>2],o[r+64>>2]=n,n=o[A+140>>2],o[r+52>>2]=o[A+136>>2],o[r+56>>2]=n,r=fr(A,i,f),a[A+61|0]=0),v[A+65|0]&&(!(4&r)|1!=(0|Zn[o[o[A>>2]+16>>2]](A))||(a[A+64|0]=1,fr(A,i,f),a[A+64|0]=0)),o[A+132>>2]=r,S=i+16|0,0|r},function(A,r,f,e,i){return A|=0,r|=0,f|=0,e=m(e),i=m(i),0|Zn[0|A](r,f,e,i)},function(A){return o[4+(A|=0)>>2]+52|0},function(A,r){A|=0,r=m(r),w[A+36>>2]=r},function(A,r){A|=0,r=m(r),w[A+32>>2]=r},function(A,r){A|=0,r=m(r),w[A+28>>2]=r},function(A,r){r|=0,a[62+(A|=0)|0]=r},function(A,r){r|=0,a[63+(A|=0)|0]=r},function(A,r,f,e,i,n,a,t){A=m(A),r=m(r),f=m(f),e|=0,i|=0,n|=0,a=m(a),t=m(t);var c,b=0;return c=xe(60),w[c+8>>2]=f,w[c+4>>2]=r,w[c>>2]=A,o[c+44>>2]=1,b=o[e+4>>2],o[c+12>>2]=o[e>>2],o[c+16>>2]=b,b=o[e+12>>2],o[c+20>>2]=o[e+8>>2],o[c+24>>2]=b,e=o[i+4>>2],o[c+28>>2]=o[i>>2],o[c+32>>2]=e,e=o[i+12>>2],o[c+36>>2]=o[i+8>>2],o[c+40>>2]=e,w[c+56>>2]=t,w[c+52>>2]=a,o[c+48>>2]=n,0|c},function(A,r,f,e,i,n,a,t,o){return A|=0,r=m(r),f=m(f),e=m(e),i|=0,n|=0,a|=0,t=m(t),o=m(o),0|Zn[0|A](r,f,e,i,n,a,t,o)},function(A,r,f){var e;return A|=0,r|=0,f|=0,e=xe(160),a[e+108|0]=0,o[e+104>>2]=0,a[e+65|0]=0,a[e+61|0]=0,a[e+62|0]=1,a[e+63|0]=1,a[e+64|0]=0,o[e+20>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+24>>2]=f,o[e+12>>2]=A,a[e+128|0]=1,o[e>>2]=25340,o[e+124>>2]=0,o[e+116>>2]=0,o[e+120>>2]=0,o[e+56>>2]=o[r+44>>2],A=o[r+16>>2],o[e+40>>2]=o[r+12>>2],o[e+44>>2]=A,A=o[r+24>>2],o[e+48>>2]=o[r+20>>2],o[e+52>>2]=A,w[e+32>>2]=w[r+4>>2],w[e+36>>2]=w[r+8>>2],w[e+28>>2]=w[r>>2],A=o[r+48>>2],o[e+132>>2]=0,o[e+20>>2]=A,o[e>>2]=25372,w[e+152>>2]=w[r+52>>2],w[e+156>>2]=w[r+56>>2],o[8488]=o[8488]+1,A=ce(0|Zn[o[8290]](348,16)),o[e+4>>2]=A,o[A+204>>2]=4,f=o[r+32>>2],o[A+52>>2]=o[r+28>>2],o[A+56>>2]=f,f=o[r+40>>2],o[A+60>>2]=o[r+36>>2],o[A+64>>2]=f,o[o[e+4>>2]+256>>2]=e,Mr(e),o[o[e+4>>2]+256>>2]=-1,0|e},function(A,r){A|=0,r=m(r),w[A+152>>2]=r,Mr(A)},function(A,r){A|=0,r=m(r),w[A+156>>2]=r,Mr(A)},function(A,r,f,e,i,n,a,t,c){A=m(A),r=m(r),f=m(f),e|=0,i|=0,n|=0,a=m(a),t=m(t),c=m(c);var b,u=0;return b=xe(64),w[b+8>>2]=f,w[b+4>>2]=r,w[b>>2]=A,o[b+44>>2]=0,u=o[e+4>>2],o[b+12>>2]=o[e>>2],o[b+16>>2]=u,u=o[e+12>>2],o[b+20>>2]=o[e+8>>2],o[b+24>>2]=u,e=o[i+4>>2],o[b+28>>2]=o[i>>2],o[b+32>>2]=e,e=o[i+12>>2],o[b+36>>2]=o[i+8>>2],o[b+40>>2]=e,w[b+60>>2]=c,w[b+56>>2]=t,w[b+52>>2]=a,o[b+48>>2]=n,0|b},function(A,r,f,e,i,n,a,t,o,c){return A|=0,r=m(r),f=m(f),e=m(e),i|=0,n|=0,a|=0,t=m(t),o=m(o),c=m(c),0|Zn[0|A](r,f,e,i,n,a,t,o,c)},function(A,r,f){var e;return A|=0,r|=0,f|=0,e=xe(164),a[e+108|0]=0,o[e+104>>2]=0,a[e+65|0]=0,a[e+61|0]=0,a[e+62|0]=1,a[e+63|0]=1,a[e+64|0]=0,o[e+20>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+24>>2]=f,o[e+12>>2]=A,a[e+128|0]=1,o[e>>2]=25340,o[e+124>>2]=0,o[e+116>>2]=0,o[e+120>>2]=0,o[e+56>>2]=o[r+44>>2],A=o[r+16>>2],o[e+40>>2]=o[r+12>>2],o[e+44>>2]=A,A=o[r+24>>2],o[e+48>>2]=o[r+20>>2],o[e+52>>2]=A,w[e+32>>2]=w[r+4>>2],w[e+36>>2]=w[r+8>>2],w[e+28>>2]=w[r>>2],A=o[r+48>>2],o[e+132>>2]=0,o[e+20>>2]=A,o[e>>2]=25404,w[e+156>>2]=w[r+56>>2],w[e+152>>2]=w[r+52>>2],w[e+160>>2]=w[r+60>>2],o[8488]=o[8488]+1,A=ce(0|Zn[o[8290]](348,16)),o[e+4>>2]=A,o[A+204>>2]=4,f=o[r+32>>2],o[A+52>>2]=o[r+28>>2],o[A+56>>2]=f,f=o[r+40>>2],o[A+60>>2]=o[r+36>>2],o[A+64>>2]=f,o[o[e+4>>2]+256>>2]=e,cf(e),0|e},function(A,r){A|=0,r=m(r),w[A+152>>2]=r,cf(A)},function(A,r){A|=0,r=m(r),w[A+156>>2]=r,cf(A)},function(A,r){A|=0,r=m(r),w[A+160>>2]=r,cf(A)},function(){a[33263]<0&&DA(o[8313]),a[33251]<0&&DA(o[8310]),a[33239]<0&&DA(o[8307]),a[33227]<0&&DA(o[8304])},tA,function(A){return o[(A|=0)>>2]=30944,0|A},vn,function(A,r){A|=0;var f,e=0;return f=o[(r|=0)>>2],!(o[A+12>>2]&o[r+4>>2])|-1==o[f+256>>2]||(e=1,v[A+88|0]||(e=!(4&v[f+204|0]))),0|e},function(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=m(0),a=0,t=m(0),c=0,b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0);return e=o[r>>2],a=o[e+192>>2],31==o[a+4>>2]&&(c=o[r+4>>2])&&(a=o[64+(o[a+32>>2]+G(o[c>>2],80)|0)>>2]),o[A+84>>2]=o[a+8>>2],i=w[r+24>>2],o[A+8>>2]=e,w[A+4>>2]=i,f?(f=o[r+12>>2],o[A+52>>2]=o[r+8>>2],o[A+56>>2]=f,f=o[r+20>>2],o[A+60>>2]=o[r+16>>2],o[A+64>>2]=f):(b=w[e+8>>2],u=w[e+12>>2],l=w[e+20>>2],s=w[e+24>>2],k=w[e+28>>2],d=w[e+36>>2],v=w[e+40>>2],i=w[r+12>>2],h=w[e+44>>2],n=w[r+16>>2],B=w[e+4>>2],t=w[r+8>>2],o[A- -64>>2]=0,w[A+60>>2]=m(h*n)+m(m(d*t)+m(i*v)),w[A+56>>2]=m(k*n)+m(m(l*t)+m(i*s)),w[A+52>>2]=m(u*n)+m(m(B*t)+m(b*i))),i=w[r+24>>2],n=m(m(1)-i),w[A+68>>2]=m(n*w[A+20>>2])+m(i*w[A+36>>2]),w[A+72>>2]=m(n*w[A+24>>2])+m(i*w[A+40>>2]),w[A+76>>2]=m(n*w[A+28>>2])+m(i*w[A+44>>2]),m(w[r+24>>2])},hn,function(A,r){return r|=0,(A=o[12+(A|=0)>>2])&o[r+4>>2]?0|!!(A&o[r+8>>2]):0},function(){J(),d()},_r,function(A){DA(_r(A|=0))},function(A,r){A|=0;var f,e=0;return f=o[(r|=0)>>2],!(o[A+12>>2]&o[r+4>>2])|-1==o[f+256>>2]||(e=1,v[A+152|0]||(e=!(4&v[f+204|0]))),0|e},function(A,r,f){A|=0,f|=0;var e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0;A:{r:{f:{e:{i:{n:{a:{if(e=o[o[(r|=0)>>2]+192>>2],31==o[e+4>>2]&&(n=o[r+4>>2])){if(d=o[o[64+(o[e+32>>2]+G(o[n>>2],80)|0)>>2]+8>>2],(0|(e=o[A+136>>2]))!=o[A+140>>2])break A;if((0|(u=e?e<<1:1))<=(0|e))break A;if(u&&(o[8488]=o[8488]+1,t=0|Zn[o[8290]](u<<2,16),e=o[A+136>>2]),n=o[A+144>>2],(0|e)<=0)break a;if(e>>>0>=4)for(k=-4&e;o[(i=c<<2)+t>>2]=o[n+i>>2],o[(b=4|i)+t>>2]=o[n+b>>2],o[(b=8|i)+t>>2]=o[n+b>>2],o[(i|=12)+t>>2]=o[n+i>>2],c=c+4|0,(0|k)!=(0|(l=l+4|0)););if(!(e&=3))break f;for(;o[(i=c<<2)+t>>2]=o[n+i>>2],c=c+1|0,(0|e)!=(0|(s=s+1|0)););break f}if(d=o[e+8>>2],(0|(e=o[A+136>>2]))!=o[A+140>>2])break A;if((0|(u=e?e<<1:1))<=(0|e))break A;if(u&&(o[8488]=o[8488]+1,t=0|Zn[o[8290]](u<<2,16),e=o[A+136>>2]),n=o[A+144>>2],(0|e)<=0)break n;if(e>>>0>=4)for(k=-4&e;o[(i=c<<2)+t>>2]=o[n+i>>2],o[(b=4|i)+t>>2]=o[n+b>>2],o[(b=8|i)+t>>2]=o[n+b>>2],o[(i|=12)+t>>2]=o[n+i>>2],c=c+4|0,(0|k)!=(0|(l=l+4|0)););if(!(e&=3))break i;for(;o[(i=c<<2)+t>>2]=o[n+i>>2],c=c+1|0,(0|e)!=(0|(s=s+1|0)););break i}if(n)break f;break r}if(!n)break e}n&&v[A+148|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](n)),e=o[A+136>>2]}o[A+144>>2]=t,o[A+140>>2]=u,a[A+148|0]=1;break A}n&&v[A+148|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](n)),e=o[A+136>>2]}o[A+144>>2]=t,o[A+140>>2]=u,a[A+148|0]=1}return o[o[A+144>>2]+(e<<2)>>2]=d,o[A+136>>2]=o[A+136>>2]+1,m(QA(A,r,f))},function(A){var r=0;return o[(A|=0)>>2]=31016,!(r=o[A+124>>2])||!r|!v[A+128|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+124>>2]=0,a[A+128|0]=1,o[A+116>>2]=0,o[A+120>>2]=0,!(r=o[A+104>>2])||!r|!v[A+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+104>>2]=0,a[A+108|0]=1,o[A+96>>2]=0,o[A+100>>2]=0,!(r=o[A+84>>2])||!r|!v[A+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+84>>2]=0,a[A+88|0]=1,o[A+76>>2]=0,o[A+80>>2]=0,!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+32>>2]=0,a[A+36|0]=1,o[A+24>>2]=0,o[A+28>>2]=0,o[A>>2]=30944,0|A},function(A){var r=0;o[(A|=0)>>2]=31016,!(r=o[A+124>>2])||!r|!v[A+128|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+124>>2]=0,a[A+128|0]=1,o[A+116>>2]=0,o[A+120>>2]=0,!(r=o[A+104>>2])||!r|!v[A+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+104>>2]=0,a[A+108|0]=1,o[A+96>>2]=0,o[A+100>>2]=0,!(r=o[A+84>>2])||!r|!v[A+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+84>>2]=0,a[A+88|0]=1,o[A+76>>2]=0,o[A+80>>2]=0,!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),DA(A)},QA,en,vn,function(A,r){r|=0;var f=0;return o[12+(A|=0)>>2]&o[r+4>>2]?(f=1,v[A+88|0]||(A=o[r>>2])&&(f=!(4&v[A+204|0])),0|f):0},function(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0);return o[A+84>>2]=o[o[o[r+4>>2]+8>>2]+8>>2],w[A+4>>2]=w[r+40>>2],e=o[r>>2],o[A+16>>2]=e,f?(f=o[r+12>>2],o[A+52>>2]=o[r+8>>2],o[A+56>>2]=f,f=o[r+20>>2],o[A+60>>2]=o[r+16>>2],o[A+64>>2]=f):(t=w[e+8>>2],c=w[e+12>>2],b=w[e+20>>2],u=w[e+24>>2],l=w[e+28>>2],s=w[e+36>>2],k=w[e+40>>2],i=w[r+12>>2],d=w[e+44>>2],n=w[r+16>>2],v=w[e+4>>2],a=w[r+8>>2],o[A- -64>>2]=0,w[A+60>>2]=m(d*n)+m(m(s*a)+m(i*k)),w[A+56>>2]=m(l*n)+m(m(b*a)+m(i*u)),w[A+52>>2]=m(c*n)+m(m(v*a)+m(t*i))),f=o[r+28>>2],o[A+68>>2]=o[r+24>>2],o[A+72>>2]=f,f=o[r+36>>2],o[A+76>>2]=o[r+32>>2],o[A+80>>2]=f,m(w[r+40>>2])},ff,function(A){DA(ff(A|=0))},function(A,r){r|=0;var f=0;return o[12+(A|=0)>>2]&o[r+4>>2]?(f=1,v[A+152|0]||(A=o[r>>2])&&(f=!(4&v[A+204|0])),0|f):0},function(A,r,f){A|=0,f|=0;var e,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0;if(e=o[o[o[4+(r|=0)>>2]+8>>2]+8>>2],(0|(i=o[A+136>>2]))==o[A+140>>2]&&!((0|(l=i?i<<1:1))<=(0|i))){l&&(o[8488]=o[8488]+1,c=0|Zn[o[8290]](l<<2,16),i=o[A+136>>2]),t=o[A+144>>2];A:{r:if((0|i)>0){if(i>>>0>=4)for(d=-4&i;o[(n=b<<2)+c>>2]=o[t+n>>2],o[(u=4|n)+c>>2]=o[t+u>>2],o[(u=8|n)+c>>2]=o[t+u>>2],o[(n|=12)+c>>2]=o[t+n>>2],b=b+4|0,(0|(s=s+4|0))!=(0|d););if(!(i&=3))break r;for(;o[(n=b<<2)+c>>2]=o[t+n>>2],b=b+1|0,(0|i)!=(0|(k=k+1|0)););}else if(!t)break A;t&&v[A+148|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](t)),i=o[A+136>>2]}o[A+144>>2]=c,o[A+140>>2]=l,a[A+148|0]=1}return o[o[A+144>>2]+(i<<2)>>2]=e,o[A+136>>2]=o[A+136>>2]+1,m(WA(A,r,f))},function(A){var r=0;return o[(A|=0)>>2]=31144,!(r=o[A+124>>2])||!r|!v[A+128|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+124>>2]=0,a[A+128|0]=1,o[A+116>>2]=0,o[A+120>>2]=0,!(r=o[A+104>>2])||!r|!v[A+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+104>>2]=0,a[A+108|0]=1,o[A+96>>2]=0,o[A+100>>2]=0,!(r=o[A+84>>2])||!r|!v[A+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+84>>2]=0,a[A+88|0]=1,o[A+76>>2]=0,o[A+80>>2]=0,!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+32>>2]=0,a[A+36|0]=1,o[A+24>>2]=0,o[A+28>>2]=0,0|A},function(A){var r=0;o[(A|=0)>>2]=31144,!(r=o[A+124>>2])||!r|!v[A+128|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+124>>2]=0,a[A+128|0]=1,o[A+116>>2]=0,o[A+120>>2]=0,!(r=o[A+104>>2])||!r|!v[A+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+104>>2]=0,a[A+108|0]=1,o[A+96>>2]=0,o[A+100>>2]=0,!(r=o[A+84>>2])||!r|!v[A+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+84>>2]=0,a[A+88|0]=1,o[A+76>>2]=0,o[A+80>>2]=0,!(r=o[A+32>>2])||!r|!v[A+36|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),DA(A)},function(A,r){return r|=0,o[12+(A|=0)>>2]&o[r+4>>2]?0|!!(o[r+8>>2]&o[A+8>>2]):0},WA,_f,function(A){(A=_f(A|=0))&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0);o[A+24>>2]?(a=w[A- -64>>2],i=w[A+48>>2],t=m(m(a+i)*m(.5)),n=w[A+60>>2],u=w[A+44>>2],c=m(m(n+u)*m(.5)),l=m(m(a-i)*m(.5)),E=m(m(n-u)*m(.5)),i=w[A+56>>2],n=w[A+40>>2],a=m(m(i+n)*m(.5)),i=m(m(i-n)*m(.5))):i=m(0),W=m(Zn[o[o[A>>2]+48>>2]](A)),N=m(Zn[o[o[A>>2]+48>>2]](A)),v=m(Zn[o[o[A>>2]+48>>2]](A)),p=w[r+52>>2],n=w[r+20>>2],u=w[r+24>>2],d=w[r+56>>2],s=w[r+36>>2],b=w[r+40>>2],F=w[r+48>>2],h=w[r+8>>2],B=w[r>>2],Z=w[r+4>>2],G=w[r+16>>2],k=w[r+32>>2],o[f+12>>2]=0,d=m(d+m(m(t*b)+m(m(a*k)+m(c*s)))),l=m(l+v),v=m(l*m(Q(b))),i=m(i+W),b=m(E+N),s=m(v+m(m(i*m(Q(k)))+m(b*m(Q(s))))),w[f+8>>2]=d-s,k=m(p+m(m(t*u)+m(m(a*G)+m(c*n)))),n=m(m(l*m(Q(u)))+m(m(i*m(Q(G)))+m(b*m(Q(n))))),w[f+4>>2]=k-n,t=m(F+m(m(t*h)+m(m(a*B)+m(c*Z)))),c=m(m(l*m(Q(h)))+m(m(i*m(Q(B)))+m(b*m(Q(Z))))),w[f>>2]=t-c,o[e+12>>2]=0,w[e+8>>2]=s+d,w[e+4>>2]=n+k,w[e>>2]=c+t},function(A,r,f){A|=0,r|=0,f|=0;var e,i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0);S=e=S-96|0,o[e+44>>2]=0,o[e+48>>2]=0,o[e+56>>2]=0,o[e+60>>2]=0,o[e+52>>2]=1065353216,o[(i=e- -64|0)>>2]=0,o[i+4>>2]=0,o[e+76>>2]=0,o[e+80>>2]=0,o[e+72>>2]=1065353216,o[e+84>>2]=0,o[e+88>>2]=0,o[e+92>>2]=0,o[e+36>>2]=0,o[e+40>>2]=0,o[e+32>>2]=1065353216,Zn[o[o[A>>2]+8>>2]](A,e+32|0,e+16|0,e),t=w[e+8>>2],c=w[e+24>>2],n=m(t-c),s=m(n*n),n=w[e>>2],b=w[e+16>>2],a=m(n-b),k=m(a*a),a=w[e+4>>2],u=w[e+20>>2],l=m(a-u),w[f>>2]=m(N(m(s+m(k+m(l*l)))))*m(.5),o[r+12>>2]=0,w[r+8>>2]=m(t+c)*m(.5),w[r+4>>2]=m(a+u)*m(.5),w[r>>2]=m(n+b)*m(.5),S=e+96|0},function(A){A|=0;var r,f=m(0),e=m(0),i=m(0);return S=r=S-32|0,Zn[o[o[A>>2]+12>>2]](A,r+16|0,r+12|0),S=r+32|0,f=w[r+24>>2],e=m(f*f),f=w[r+16>>2],i=m(f*f),f=w[r+20>>2],m(m(w[r+12>>2]+m(N(m(e+m(i+m(f*f)))))))},function(A,r){return A|=0,r=m(r),m(m(m(Zn[o[o[A>>2]+16>>2]](A))*r))},function(A,r){A|=0,r|=0;var f,e=0,i=0,n=0,a=0,t=0,c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0);if(S=f=S-144|0,o[A+24>>2]>0)for(n=f- -64|0;e=(a=G(t,80))+o[A+32>>2]|0,i=o[e+12>>2],o[f+24>>2]=o[e+8>>2],o[f+28>>2]=i,i=o[e+4>>2],o[f+16>>2]=o[e>>2],o[f+20>>2]=i,i=o[e+28>>2],o[f+40>>2]=o[e+24>>2],o[f+44>>2]=i,i=o[e+20>>2],o[f+32>>2]=o[e+16>>2],o[f+36>>2]=i,i=o[e+44>>2],o[f+56>>2]=o[e+40>>2],o[f+60>>2]=i,i=o[e+36>>2],o[f+48>>2]=o[e+32>>2],o[f+52>>2]=i,i=o[e+60>>2],o[n+8>>2]=o[e+56>>2],o[n+12>>2]=i,i=o[e+52>>2],o[n>>2]=o[e+48>>2],o[n+4>>2]=i,e=o[e+64>>2],e=0|Zn[o[o[e>>2]+28>>2]](e),i=o[e+12>>2],o[f+8>>2]=o[e+8>>2],o[f+12>>2]=i,i=o[e+4>>2],o[f>>2]=o[e>>2],o[f+4>>2]=i,c=w[A+88>>2],b=w[r+4>>2],u=w[A+84>>2],l=w[r>>2],w[f+8>>2]=m(w[f+8>>2]*w[r+8>>2])/w[A+92>>2],o[f+12>>2]=0,w[f>>2]=m(l*w[f>>2])/u,w[f+4>>2]=m(b*w[f+4>>2])/c,e=o[64+(o[A+32>>2]+a|0)>>2],Zn[o[o[e>>2]+24>>2]](e,f),c=w[A+84>>2],b=w[r>>2],u=w[A+88>>2],l=w[r+4>>2],s=w[A+92>>2],k=w[r+8>>2],o[f+76>>2]=0,w[f+72>>2]=m(k*w[f+72>>2])/s,w[f+68>>2]=m(l*w[f+68>>2])/u,w[f+64>>2]=m(b*w[f+64>>2])/c,i=o[f+20>>2],e=o[A+32>>2]+a|0,o[e>>2]=o[f+16>>2],o[e+4>>2]=i,i=o[f+28>>2],o[e+8>>2]=o[f+24>>2],o[e+12>>2]=i,i=o[f+44>>2],o[e+24>>2]=o[f+40>>2],o[e+28>>2]=i,i=o[f+36>>2],o[e+16>>2]=o[f+32>>2],o[e+20>>2]=i,i=o[f+60>>2],o[e+40>>2]=o[f+56>>2],o[e+44>>2]=i,i=o[f+52>>2],o[e+32>>2]=o[f+48>>2],o[e+36>>2]=i,i=o[n+12>>2],o[e+56>>2]=o[n+8>>2],o[e+60>>2]=i,i=o[n+4>>2],o[e+48>>2]=o[n>>2],o[e+52>>2]=i,o[A+72>>2]&&(e=o[64+(o[A+32>>2]+a|0)>>2],Zn[o[o[e>>2]+8>>2]](e,f+16|0,f+128|0,f+112|0),e=o[f+140>>2],o[f+88>>2]=o[f+136>>2],o[f+92>>2]=e,e=o[f+132>>2],o[f+80>>2]=o[f+128>>2],o[f+84>>2]=e,e=o[f+124>>2],o[f+104>>2]=o[f+120>>2],o[f+108>>2]=e,e=o[f+116>>2],o[f+96>>2]=o[f+112>>2],o[f+100>>2]=e,Xf(o[A+72>>2],o[76+(o[A+32>>2]+a|0)>>2],f+80|0)),(0|(t=t+1|0))>2];);e=o[r+4>>2],o[A+84>>2]=o[r>>2],o[A+88>>2]=e,e=o[r+12>>2],o[A+92>>2]=o[r+8>>2],o[A+96>>2]=e,Zn[o[o[A>>2]+68>>2]](A),S=f+144|0},function(A){return 84+(A|=0)|0},function(A,r,f){A|=0,r=m(r),f|=0;var e,i,n=m(0),a=m(0),t=m(0),c=m(0);S=e=S-96|0,o[e+44>>2]=0,o[e+48>>2]=0,o[e+56>>2]=0,o[e+60>>2]=0,o[e+52>>2]=1065353216,o[(i=e- -64|0)>>2]=0,o[i+4>>2]=0,o[e+76>>2]=0,o[e+80>>2]=0,o[e+72>>2]=1065353216,o[e+84>>2]=0,o[e+88>>2]=0,o[e+92>>2]=0,o[e+36>>2]=0,o[e+40>>2]=0,o[e+32>>2]=1065353216,Zn[o[o[A>>2]+8>>2]](A,e+32|0,e+16|0,e),n=w[e+24>>2],c=w[e+8>>2],r=m(r/m(12)),a=m(m(w[e>>2]-w[e+16>>2])*m(.5)),a=m(a+a),a=m(a*a),t=m(m(w[e+4>>2]-w[e+20>>2])*m(.5)),t=m(t+t),t=m(t*t),w[f+8>>2]=r*m(a+t),n=m(m(c-n)*m(.5)),n=m(n+n),n=m(n*n),w[f+4>>2]=r*m(a+n),w[f>>2]=r*m(t+n),S=e+96|0},function(){return 7871},function(A){o[8+(A|=0)>>2]=1065353216,o[A+12>>2]=0,o[A>>2]=1065353216,o[A+4>>2]=1065353216},function(A,r){A|=0,r=m(r),w[A+80>>2]=r},function(A){return m(w[80+(A|=0)>>2])},function(){return 24},function(A,r,f){var e=0,i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0;if(te(A|=0,r|=0,f|=0),w[r+20>>2]=w[A+80>>2],e=o[A+24>>2],o[r+12>>2]=0,o[r+16>>2]=e,e){if(a=0|Zn[o[o[f>>2]+16>>2]](f,76,e),e=o[a+8>>2],b=r,u=0|Zn[o[o[f>>2]+28>>2]](f,e),o[b+12>>2]=u,o[r+16>>2]>0)for(n=o[A+32>>2];n=(i=G(t,80))+n|0,w[e+72>>2]=w[n+72>>2],b=e,u=0|Zn[o[o[f>>2]+28>>2]](f,o[n+64>>2]),o[b+64>>2]=u,0|Zn[o[o[f>>2]+24>>2]](f,o[64+(i+o[A+32>>2]|0)>>2])||(n=o[64+(i+o[A+32>>2]|0)>>2],u=f,l=0|Zn[o[o[n>>2]+52>>2]](n),s=1,b=o[o[f>>2]+16>>2],n=0|Zn[b](0|u,0|l,0|s),c=o[64+(i+o[A+32>>2]|0)>>2],s=f,l=n,u=0|Zn[o[o[c>>2]+56>>2]](c,o[n+8>>2],f),k=1346455635,d=o[64+(i+o[A+32>>2]|0)>>2],b=o[o[f>>2]+20>>2],Zn[b](0|s,0|l,0|u,0|k,0|d)),i=i+(n=o[A+32>>2])|0,o[e+68>>2]=o[i+68>>2],w[e>>2]=w[i>>2],w[e+4>>2]=w[i+4>>2],w[e+8>>2]=w[i+8>>2],w[e+12>>2]=w[i+12>>2],w[e+16>>2]=w[i+16>>2],w[e+20>>2]=w[i+20>>2],w[e+24>>2]=w[i+24>>2],w[e+28>>2]=w[i+28>>2],w[e+32>>2]=w[i+32>>2],w[e+36>>2]=w[i+36>>2],w[e+40>>2]=w[i+40>>2],w[e+44>>2]=w[i+44>>2],w[e+48>>2]=w[i+48>>2],w[e+52>>2]=w[i+52>>2],w[e+56>>2]=w[i+56>>2],w[e+60>>2]=w[i+60>>2],e=e+76|0,(0|(t=t+1|0))>2];);Zn[o[o[f>>2]+20>>2]](f,a,9214,1497453121,o[a+8>>2])}return 9100},function(A,r){var f,e,i=0,n=0,a=0,t=0;n=r|=0,a=0|Zn[o[o[(A|=0)>>2]+52>>2]](A),t=1,i=o[o[r>>2]+16>>2],e=0|Zn[i](0|n,0|a,0|t),t=r,a=e,n=0|Zn[o[o[A>>2]+56>>2]](A,o[e+8>>2],r),f=A,i=o[o[r>>2]+20>>2],Zn[i](0|t,0|a,0|n,1346455635,0|f)},function(A,r){r|=0;var f,e=0,i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0;if(S=f=S-80|0,o[76+(A|=0)>>2]=o[A+76>>2]+1,(0|(i=o[A+24>>2]))>0)for(a=f- -64|0,t=f+48|0,c=f+32|0,b=f+16|0,l=i;u=o[A+32>>2],k=G(s=l-1|0,80),o[64+(e=u+k|0)>>2]==(0|r)&&(o[A+76>>2]=o[A+76>>2]+1,(n=o[A+72>>2])&&(Ie(n,o[e+76>>2]),u=o[A+32>>2],i=o[A+24>>2]),d=o[4+(n=8+(e=u+k|0)|0)>>2],o[f+8>>2]=o[n>>2],o[f+12>>2]=d,n=o[e+4>>2],o[f>>2]=o[e>>2],o[f+4>>2]=n,n=o[e+28>>2],o[b+8>>2]=o[e+24>>2],o[b+12>>2]=n,n=o[e+20>>2],o[b>>2]=o[e+16>>2],o[b+4>>2]=n,n=o[e+44>>2],o[c+8>>2]=o[e+40>>2],o[c+12>>2]=n,n=o[e+36>>2],o[c>>2]=o[e+32>>2],o[c+4>>2]=n,n=o[e+60>>2],o[t+8>>2]=o[e+56>>2],o[t+12>>2]=n,n=o[e+52>>2],o[t>>2]=o[e+48>>2],o[t+4>>2]=n,n=o[e+76>>2],o[a+8>>2]=o[e+72>>2],o[a+12>>2]=n,n=o[e+68>>2],o[a>>2]=o[e+64>>2],o[a+4>>2]=n,n=u,u=G(i,80)-80|0,n=o[4+(i=n+u|0)>>2],o[e>>2]=o[i>>2],o[e+4>>2]=n,n=o[i+12>>2],o[e+8>>2]=o[i+8>>2],o[e+12>>2]=n,n=o[i+20>>2],o[e+16>>2]=o[i+16>>2],o[e+20>>2]=n,n=o[i+28>>2],o[e+24>>2]=o[i+24>>2],o[e+28>>2]=n,n=o[i+36>>2],o[e+32>>2]=o[i+32>>2],o[e+36>>2]=n,n=o[i+44>>2],o[e+40>>2]=o[i+40>>2],o[e+44>>2]=n,n=o[i+60>>2],o[e+56>>2]=o[i+56>>2],o[e+60>>2]=n,n=o[i+52>>2],o[e+48>>2]=o[i+48>>2],o[e+52>>2]=n,n=o[i+68>>2],o[e+64>>2]=o[i+64>>2],o[e+68>>2]=n,n=o[i+76>>2],o[e+72>>2]=o[i+72>>2],o[e+76>>2]=n,i=o[f+4>>2],e=u+o[A+32>>2]|0,o[e>>2]=o[f>>2],o[e+4>>2]=i,i=o[f+12>>2],o[e+8>>2]=o[f+8>>2],o[e+12>>2]=i,i=o[b+4>>2],o[e+16>>2]=o[b>>2],o[e+20>>2]=i,i=o[b+12>>2],o[e+24>>2]=o[b+8>>2],o[e+28>>2]=i,i=o[c+12>>2],o[e+40>>2]=o[c+8>>2],o[e+44>>2]=i,i=o[c+4>>2],o[e+32>>2]=o[c>>2],o[e+36>>2]=i,i=o[t+4>>2],o[e+48>>2]=o[t>>2],o[e+52>>2]=i,i=o[t+12>>2],o[e+56>>2]=o[t+8>>2],o[e+60>>2]=i,i=o[a+4>>2],o[e+64>>2]=o[a>>2],o[e+68>>2]=i,i=o[a+12>>2],o[e+72>>2]=o[a+8>>2],o[e+76>>2]=i,o[A+72>>2]&&(o[o[76+(o[A+32>>2]+k|0)>>2]+36>>2]=s),i=o[A+24>>2]-1|0,o[A+24>>2]=i),e=l>>>0>1,l=s,e;);Zn[o[o[A>>2]+68>>2]](A),S=f+80|0},function(A){A|=0;var r,f=m(0),e=0,i=0,n=0;if(S=r=S-32|0,o[A+56>>2]=-581039253,o[A+60>>2]=-581039253,o[A+40>>2]=1566444395,o[A+44>>2]=1566444395,o[(e=A- -64|0)>>2]=-581039253,o[e+4>>2]=0,o[A+48>>2]=1566444395,o[A+52>>2]=0,o[A+24>>2]>0)for(;e=o[A+32>>2]+G(i,80)|0,n=o[e+64>>2],Zn[o[o[n>>2]+8>>2]](n,e,r+16|0,r),(f=w[r+16>>2])>2]&&(w[A+40>>2]=f),(f=w[r>>2])>w[A+56>>2]&&(w[A+56>>2]=f),(f=w[r+20>>2])>2]&&(w[A+44>>2]=f),(f=w[r+4>>2])>w[A+60>>2]&&(w[A+60>>2]=f),(f=w[r+24>>2])>2]&&(w[A+48>>2]=f),(f=w[r+8>>2])>w[A+64>>2]&&(w[A+64>>2]=f),(0|(i=i+1|0))>2];);S=r+32|0},function(A){var r=0,f=0;return o[(A|=0)>>2]=31600,v[A+136|0]&&(r=o[A+140>>2],1&a[33924]||(f=0|Y(1,31712),a[33924]=1,o[8480]=f),R(o[8480],0|r,3211,0)),V(o[A+140>>2]),0|A},function(A){var r=0,f=0;o[(A|=0)>>2]=31600,v[A+136|0]&&(r=o[A+140>>2],1&a[33924]||(f=0|Y(1,31712),a[33924]=1,o[8480]=f),R(o[8480],0|r,3211,0)),V(o[A+140>>2]),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r){pr(A|=0,8+(r|=0)|0,128)},function(A,r){pr(8+(A|=0)|0,r|=0,128)},function(A,r,f,e){r|=0,f|=0,e|=0,Zn[o[o[(A|=0)>>2]+108>>2]](A,r,f,e)},function(A,r,f,e){r|=0,f|=0,e|=0,Zn[o[o[(A|=0)>>2]+16>>2]](A,r,f,e)},function(A,r,f,e){A|=0,r=m(r),f|=0,e|=0;var i,n=0,a=m(0);S=i=S+-64|0,n=o[f+60>>2],o[i+56>>2]=o[f+56>>2],o[i+60>>2]=n,n=o[f+52>>2],o[i+48>>2]=o[f+48>>2],o[i+52>>2]=n,w[i+32>>2]=w[f+4>>2],w[i+36>>2]=w[f+20>>2],a=w[f+36>>2],o[i+44>>2]=0,w[i+40>>2]=a,w[i+16>>2]=w[f>>2],w[i+20>>2]=w[f+16>>2],a=w[f+32>>2],o[i+28>>2]=0,w[i+24>>2]=a,f=i+48|0,n=i+32|0,Zn[o[o[A>>2]+72>>2]](A,f,n,i+16|0,r,m(-1.5707963705062866),m(1.5707963705062866),m(-1.5707963705062866),m(1.5707963705062866),e,m(30),0),o[i+12>>2]=0,w[i+8>>2]=-w[i+24>>2],w[i+4>>2]=-w[i+20>>2],w[i>>2]=-w[i+16>>2],Zn[o[o[A>>2]+72>>2]](A,f,n,i,r,m(-1.5707963705062866),m(1.5707963705062866),m(-1.5707963705062866),m(1.5707963705062866),e,m(30),0),S=i- -64|0},function(A,r,f,e){A|=0,r|=0,f=m(f),e|=0;var i,n=0;S=i=S+-64|0,o[i+12>>2]=0,o[i+16>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,o[i+20>>2]=1065353216,o[i+32>>2]=0,o[i+36>>2]=0,o[i+40>>2]=1065353216,o[i+44>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i>>2]=1065353216,n=o[r+12>>2],o[i+56>>2]=o[r+8>>2],o[i+60>>2]=n,n=o[r+4>>2],o[i+48>>2]=o[r>>2],o[i+52>>2]=n,Zn[o[o[A>>2]+24>>2]](A,f,i,e),S=i- -64|0},function(A,r,f,e,i,n,a,t,c){A|=0,r|=0,f|=0,e|=0,t|=0,c=m(c),Zn[o[o[A>>2]+36>>2]](A,r,f,e,t,c)},function(A,r,f,e,i){r|=0,f|=0,e|=0,i|=0,Zn[o[o[(A|=0)>>2]+16>>2]](A,r,f,i),Zn[o[o[A>>2]+16>>2]](A,f,e,i),Zn[o[o[A>>2]+16>>2]](A,e,r,i)},function(A,r,f,e,i,n){A|=0,r|=0,f|=0,e=m(e),i|=0,n|=0;var a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0);S=i=S-16|0,a=w[r>>2],t=w[f>>2],c=w[r+4>>2],b=w[f+4>>2],u=w[r+8>>2],l=w[f+8>>2],o[i+12>>2]=0,w[i+8>>2]=u+m(l*e),w[i+4>>2]=c+m(b*e),w[i>>2]=a+m(t*e),Zn[o[o[A>>2]+16>>2]](A,r,i,n),e=w[r>>2],a=w[f>>2],t=w[r+4>>2],c=w[f+4>>2],b=w[r+8>>2],u=w[f+8>>2],o[i+12>>2]=0,w[i+8>>2]=b+m(u*m(.009999999776482582)),w[i+4>>2]=t+m(c*m(.009999999776482582)),w[i>>2]=e+m(a*m(.009999999776482582)),Zn[o[o[A>>2]+16>>2]](A,r,i,n),S=i+16|0},dn,zi,function(A,r){r|=0,o[4+(A|=0)>>2]=r},Ui,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0);S=i=S-32|0,c=w[r>>2],n=w[f>>2],b=w[r+4>>2],a=w[f+4>>2],u=w[r+8>>2],t=w[f+8>>2],o[i+28>>2]=0,o[i+12>>2]=0,l=m(m(t+u)*m(.5)),t=m(m(t-u)*m(.5)),u=m(l+t),w[i+24>>2]=u,s=m(m(a+b)*m(.5)),a=m(m(a-b)*m(.5)),b=m(s+a),w[i+20>>2]=b,k=m(m(n+c)*m(.5)),n=m(m(n-c)*m(.5)),c=m(k+n),w[i+16>>2]=c,w[i+8>>2]=u,w[i+4>>2]=b,n=m(k-n),w[i>>2]=n,r=i+16|0,Zn[o[o[A>>2]+16>>2]](A,r,i,e),w[i+24>>2]=u,w[i+20>>2]=b,w[i+16>>2]=n,o[i+28>>2]=0,o[i+12>>2]=0,w[i+8>>2]=u,a=m(s-a),w[i+4>>2]=a,w[i>>2]=n,Zn[o[o[A>>2]+16>>2]](A,r,i,e),w[i+24>>2]=u,w[i+20>>2]=a,w[i+16>>2]=n,o[i+28>>2]=0,o[i+12>>2]=0,t=m(l-t),w[i+8>>2]=t,w[i+4>>2]=a,w[i>>2]=n,Zn[o[o[A>>2]+16>>2]](A,r,i,e),w[i+24>>2]=t,w[i+20>>2]=a,w[i+16>>2]=c,o[i+28>>2]=0,o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=a,w[i>>2]=n,Zn[o[o[A>>2]+16>>2]](A,r,i,e),w[i+24>>2]=t,w[i+20>>2]=a,w[i+16>>2]=n,o[i+28>>2]=0,o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=b,w[i>>2]=n,Zn[o[o[A>>2]+16>>2]](A,r,i,e),w[i+24>>2]=t,w[i+20>>2]=b,w[i+16>>2]=n,o[i+28>>2]=0,o[i+12>>2]=0,w[i+8>>2]=u,w[i+4>>2]=b,w[i>>2]=n,Zn[o[o[A>>2]+16>>2]](A,r,i,e),w[i+24>>2]=t,w[i+20>>2]=b,w[i+16>>2]=n,o[i+28>>2]=0,o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=b,w[i>>2]=c,Zn[o[o[A>>2]+16>>2]](A,r,i,e),w[i+24>>2]=t,w[i+20>>2]=b,w[i+16>>2]=c,o[i+28>>2]=0,o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=a,w[i>>2]=c,Zn[o[o[A>>2]+16>>2]](A,r,i,e),w[i+24>>2]=t,w[i+20>>2]=a,w[i+16>>2]=c,o[i+28>>2]=0,o[i+12>>2]=0,w[i+8>>2]=u,w[i+4>>2]=a,w[i>>2]=c,Zn[o[o[A>>2]+16>>2]](A,r,i,e),w[i+24>>2]=u,w[i+20>>2]=a,w[i+16>>2]=n,o[i+28>>2]=0,o[i+12>>2]=0,w[i+8>>2]=u,w[i+4>>2]=a,w[i>>2]=c,Zn[o[o[A>>2]+16>>2]](A,r,i,e),w[i+24>>2]=u,w[i+20>>2]=a,w[i+16>>2]=c,o[i+28>>2]=0,o[i+12>>2]=0,w[i+8>>2]=u,w[i+4>>2]=b,w[i>>2]=c,Zn[o[o[A>>2]+16>>2]](A,r,i,e),w[i+24>>2]=u,w[i+20>>2]=b,w[i+16>>2]=c,o[i+28>>2]=0,o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=b,w[i>>2]=c,Zn[o[o[A>>2]+16>>2]](A,r,i,e),S=i+32|0},function(A,r,f){A|=0,r|=0,f=m(f);var e,i,n=0,a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0);S=e=S-48|0,n=o[r+60>>2],o[e+40>>2]=o[r+56>>2],o[e+44>>2]=n,n=o[r+52>>2],o[e+32>>2]=o[r+48>>2],o[e+36>>2]=n,a=w[r+24>>2],t=w[r+20>>2],c=w[r+40>>2],b=w[r+36>>2],u=w[r+8>>2],l=w[r>>2],s=w[r+4>>2],k=w[r+16>>2],d=w[r+32>>2],o[e+28>>2]=0,w[e+24>>2]=m(m(c*m(0))+m(m(d*f)+m(b*m(0))))+w[e+40>>2],w[e+20>>2]=m(m(a*m(0))+m(m(k*f)+m(t*m(0))))+w[e+36>>2],w[e+16>>2]=m(m(u*m(0))+m(m(l*f)+m(s*m(0))))+w[e+32>>2],o[e+8>>2]=1050253722,o[e+12>>2]=0,o[e>>2]=1065353216,o[e+4>>2]=1050253722,n=e+32|0,i=e+16|0,Zn[o[o[A>>2]+16>>2]](A,n,i,e),a=w[r+24>>2],t=w[r+20>>2],c=w[r+40>>2],b=w[r+36>>2],u=w[r+8>>2],l=w[r>>2],s=w[r+4>>2],k=w[r+16>>2],d=w[r+32>>2],o[e+28>>2]=0,w[e+24>>2]=m(m(c*m(0))+m(m(d*m(0))+m(b*f)))+w[e+40>>2],w[e+20>>2]=m(m(a*m(0))+m(m(k*m(0))+m(t*f)))+w[e+36>>2],w[e+16>>2]=m(m(u*m(0))+m(m(l*m(0))+m(s*f)))+w[e+32>>2],o[e+8>>2]=1050253722,o[e+12>>2]=0,o[e>>2]=1050253722,o[e+4>>2]=1065353216,Zn[o[o[A>>2]+16>>2]](A,n,i,e),a=w[r+24>>2],t=w[r+20>>2],c=w[r+40>>2],b=w[r+36>>2],u=w[r+8>>2],l=w[r>>2],s=w[r+4>>2],k=w[r+16>>2],d=w[r+32>>2],o[e+28>>2]=0,w[e+24>>2]=m(m(c*f)+m(m(d*m(0))+m(b*m(0))))+w[e+40>>2],w[e+20>>2]=m(m(a*f)+m(m(k*m(0))+m(t*m(0))))+w[e+36>>2],w[e+16>>2]=m(m(u*f)+m(m(l*m(0))+m(s*m(0))))+w[e+32>>2],o[e+8>>2]=1065353216,o[e+12>>2]=0,o[e>>2]=1050253722,o[e+4>>2]=1050253722,Zn[o[o[A>>2]+16>>2]](A,n,i,e),S=e+48|0},function(A,r,f,e,i,n,a,t,c,b,u){A|=0,r|=0,f|=0,e|=0,i=m(i),n=m(n),a=m(a),t=m(t),c|=0,b|=0,u=m(u);var l,s,k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=0,E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0);if(S=l=S-32|0,E=w[f+8>>2],d=w[e+8>>2],h=w[f>>2],v=w[e+4>>2],B=w[e>>2],W=w[f+4>>2],N=w[r>>2],F=w[r+4>>2],k=w[r+8>>2],o[l+28>>2]=0,Z=Kr(a),p=m(m(m(h*v)-m(B*W))*n),R=k,k=$r(a),w[l+24>>2]=m(Z*p)+m(R+m(k*m(d*i))),h=m(m(m(E*B)-m(d*h))*n),w[l+20>>2]=m(F+m(k*m(v*i)))+m(Z*h),d=m(m(m(W*d)-m(v*E))*n),w[l+16>>2]=m(Z*d)+m(N+m(k*m(B*i))),v=m(t-a),n=m(Q(m(v/m(u*m(.01745329238474369))))),f=m(Q(n))>2]+16>>2]](A,r,l+16|0,c),(0|(s=f>>>0<=1?1:f))>0)for(u=m(0|s),f=1;B=w[e+8>>2],n=$r(t=m(m(m(v*m(0|f))/u)+a)),E=w[r+8>>2],t=Kr(t),W=w[r>>2],Z=w[e>>2],k=w[r+4>>2],N=w[e+4>>2],w[l+8>>2]=m(p*t)+m(E+m(n*m(B*i))),o[l+12>>2]=0,w[l+4>>2]=m(h*t)+m(k+m(n*m(N*i))),w[l>>2]=m(d*t)+m(W+m(n*m(Z*i))),Zn[o[o[A>>2]+16>>2]](A,l+16|0,l,c),G=o[l+12>>2],o[l+24>>2]=o[l+8>>2],o[l+28>>2]=G,G=o[l+4>>2],o[l+16>>2]=o[l>>2],o[l+20>>2]=G,G=(0|f)==(0|s),f=f+1|0,!G;);b&&Zn[o[o[A>>2]+16>>2]](A,r,l+16|0,c),S=l+32|0},function(A,r,f,e,i,n,a,t,c,b,u,l){A|=0,r|=0,f|=0,e|=0,i=m(i),n=m(n),a=m(a),t=m(t),c=m(c),b|=0,u=m(u),l|=0;var s,k,d,v,h,B=0,Z=0,G=m(0),E=m(0),W=m(0),N=0,p=0,F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=0,D=m(0),C=m(0),J=m(0),x=m(0),y=0,M=m(0),H=0,I=0,T=m(0),U=0,j=m(0),z=m(0),P=m(0),O=0,L=0,$=0,K=m(0);for(S=s=S-2416|0,F=w[r>>2],D=w[f>>2],R=w[r+4>>2],J=w[f+4>>2],Y=w[r+8>>2],x=w[f+8>>2],o[s+44>>2]=0,E=m(x*i),w[s+40>>2]=Y+E,W=m(J*i),w[s+36>>2]=R+W,V=m(D*i),w[s+32>>2]=F+V,o[s+28>>2]=0,w[s+24>>2]=Y-E,w[s+20>>2]=R-W,w[s+16>>2]=F-V,G=m(u*m(.01745329238474369)),u=m(G+m(-1.5707963705062866)),V=(I=n<=m(-1.5707963705062866))?u:n,n=m(m(1.5707963705062866)-G),V>(a=(y=a>=m(1.5707963705062866))?n:a)&&(y=1,I=1,V=u,a=n),E=w[e>>2],W=w[e+4>>2],u=w[e+8>>2],T=(B=t>c)?m(G+m(-3.1415927410125732)):t,g=m((B?m(3.1415927410125732):c)-T),n=m(g/G),N=m(Q(n))=m(6.2831854820251465),B=1^l,a=m(a-V),n=m(a/G),N=m(Q(n))>2],R=w[r>>2],Y=w[e>>2],E=w[f+4>>2],W=w[r+4>>2],u=w[e+4>>2],c=w[f+8>>2],t=w[r+8>>2],a=w[e+8>>2],o[Z+12>>2]=0,n=m(m(m(0|X)*J)+V),M=m($r(n)*i),G=m(M*g),K=a,a=m(M*x),C=m(Kr(n)*i),w[Z+8>>2]=m(m(j*G)+m(t+m(K*a)))+m(c*C),w[Z+4>>2]=m(m(z*G)+m(W+m(a*u)))+m(C*E),w[Z>>2]=m(m(P*G)+m(R+m(a*Y)))+m(C*F),O=(U=(0|X)==(0|v))&I,X|y&&Zn[o[o[A>>2]+16>>2]](A,X?N:s+16|0,Z,b),B=o[Z+12>>2],o[s+8>>2]=o[Z+8>>2],o[s+12>>2]=B,B=o[Z+4>>2],o[s>>2]=o[Z>>2],o[s+4>>2]=B,O&&Zn[o[o[A>>2]+16>>2]](A,s+32|0,Z,b),!(L=!X|U)|h||Zn[o[o[A>>2]+16>>2]](A,r,Z,b),B=1;;){F=w[f>>2],R=w[r>>2],Y=w[e>>2],E=w[f+4>>2],W=w[r+4>>2],u=w[e+4>>2],c=w[f+8>>2],t=w[r+8>>2],a=w[e+8>>2],o[12+(p=($=B<<4)+Z|0)>>2]=0,H=B,n=m(m(m(0|B)*D)+T),G=m(M*Kr(n)),n=m(M*$r(n)),w[p+8>>2]=m(m(j*G)+m(t+m(a*n)))+m(C*c),w[p+4>>2]=m(m(z*G)+m(W+m(n*u)))+m(C*E),w[p>>2]=m(m(P*G)+m(R+m(n*Y)))+m(C*F);A:{if(X)B=N+$|0;else if(B=s+16|0,!y)break A;Zn[o[o[A>>2]+16>>2]](A,B,p,b)}Zn[o[o[A>>2]+16>>2]](A,p-16|0,p,b),O&&Zn[o[o[A>>2]+16>>2]](A,s+32|0,p,b);A:if(l){r:{if(d){if(B=s,(0|H)==(0|k))break r;break A}if(B=r,!((0|H)==(0|k)&L))break A}Zn[o[o[A>>2]+16>>2]](A,B,p,b)}if(B=H+1|0,(0|H)==(0|k))break}if(X=X+1|0,B=Z,Z=N,U)break}S=s+2416|0},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n,a=m(0),t=m(0),c=m(0);S=i=S-32|0,w[i+16>>2]=w[r>>2],a=w[r+4>>2],w[i+20>>2]=a,t=w[r+8>>2],o[i+28>>2]=0,w[i+24>>2]=t,c=w[f>>2],o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=a,w[i>>2]=c,n=i+16|0,Zn[o[o[A>>2]+16>>2]](A,n,i,e),a=w[f>>2],w[i+16>>2]=a,w[i+20>>2]=w[r+4>>2],t=w[r+8>>2],o[i+28>>2]=0,w[i+24>>2]=t,w[i>>2]=a,a=w[f+4>>2],o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=a,Zn[o[o[A>>2]+16>>2]](A,n,i,e),w[i+16>>2]=w[f>>2],a=w[f+4>>2],w[i+20>>2]=a,t=w[r+8>>2],o[i+28>>2]=0,w[i+24>>2]=t,c=w[r>>2],o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=a,w[i>>2]=c,Zn[o[o[A>>2]+16>>2]](A,n,i,e),a=w[r>>2],w[i+16>>2]=a,w[i+20>>2]=w[f+4>>2],t=w[r+8>>2],o[i+28>>2]=0,w[i+24>>2]=t,w[i>>2]=a,a=w[r+4>>2],o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=a,Zn[o[o[A>>2]+16>>2]](A,n,i,e),t=w[r>>2],w[i+16>>2]=t,a=w[r+4>>2],w[i+20>>2]=a,c=w[r+8>>2],o[i+28>>2]=0,w[i+24>>2]=c,w[i+4>>2]=a,w[i>>2]=t,t=w[f+8>>2],o[i+12>>2]=0,w[i+8>>2]=t,Zn[o[o[A>>2]+16>>2]](A,n,i,e),t=w[f>>2],w[i+16>>2]=t,a=w[r+4>>2],w[i+20>>2]=a,c=w[r+8>>2],o[i+28>>2]=0,w[i+24>>2]=c,w[i+4>>2]=a,w[i>>2]=t,t=w[f+8>>2],o[i+12>>2]=0,w[i+8>>2]=t,Zn[o[o[A>>2]+16>>2]](A,n,i,e),t=w[f>>2],w[i+16>>2]=t,a=w[f+4>>2],w[i+20>>2]=a,c=w[r+8>>2],o[i+28>>2]=0,w[i+24>>2]=c,w[i+4>>2]=a,w[i>>2]=t,t=w[f+8>>2],o[i+12>>2]=0,w[i+8>>2]=t,Zn[o[o[A>>2]+16>>2]](A,n,i,e),t=w[r>>2],w[i+16>>2]=t,a=w[f+4>>2],w[i+20>>2]=a,c=w[r+8>>2],o[i+28>>2]=0,w[i+24>>2]=c,w[i+4>>2]=a,w[i>>2]=t,t=w[f+8>>2],o[i+12>>2]=0,w[i+8>>2]=t,Zn[o[o[A>>2]+16>>2]](A,n,i,e),w[i+16>>2]=w[r>>2],a=w[r+4>>2],w[i+20>>2]=a,t=w[f+8>>2],o[i+28>>2]=0,w[i+24>>2]=t,c=w[f>>2],o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=a,w[i>>2]=c,Zn[o[o[A>>2]+16>>2]](A,n,i,e),a=w[f>>2],w[i+16>>2]=a,w[i+20>>2]=w[r+4>>2],t=w[f+8>>2],o[i+28>>2]=0,w[i+24>>2]=t,w[i>>2]=a,a=w[f+4>>2],o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=a,Zn[o[o[A>>2]+16>>2]](A,n,i,e),w[i+16>>2]=w[f>>2],a=w[f+4>>2],w[i+20>>2]=a,t=w[f+8>>2],o[i+28>>2]=0,w[i+24>>2]=t,c=w[r>>2],o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=a,w[i>>2]=c,Zn[o[o[A>>2]+16>>2]](A,n,i,e),a=w[r>>2],w[i+16>>2]=a,w[i+20>>2]=w[f+4>>2],t=w[f+8>>2],o[i+28>>2]=0,w[i+24>>2]=t,w[i>>2]=a,a=w[r+4>>2],o[i+12>>2]=0,w[i+8>>2]=t,w[i+4>>2]=a,Zn[o[o[A>>2]+16>>2]](A,n,i,e),S=i+32|0},function(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n,a,t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0);S=n=S-32|0,v=w[e+52>>2],b=w[e+24>>2],u=w[e+20>>2],h=w[e+56>>2],l=w[e+40>>2],B=w[e+36>>2],Z=w[e+16>>2],G=w[e+32>>2],Q=w[e+48>>2],s=w[e+8>>2],t=w[r+8>>2],E=w[e>>2],c=w[r>>2],d=w[e+4>>2],k=w[r+4>>2],o[n+28>>2]=0,s=m(t*s),d=m(k*d),w[n+16>>2]=Q+m(s+m(m(c*E)+d)),l=m(t*l),B=m(k*B),w[n+24>>2]=h+m(l+m(m(c*G)+B)),b=m(t*b),t=m(c*Z),c=m(k*u),w[n+20>>2]=v+m(b+m(t+c)),t=w[f>>2],o[n+12>>2]=0,w[n+8>>2]=h+m(l+m(m(t*G)+B)),w[n+4>>2]=v+m(b+m(m(t*Z)+c)),w[n>>2]=Q+m(s+m(m(t*E)+d)),a=n+16|0,Zn[o[o[A>>2]+16>>2]](A,a,n,i),v=w[e+52>>2],b=w[e+24>>2],h=w[e+20>>2],Z=w[e+56>>2],u=w[e+40>>2],G=w[e+36>>2],Q=w[e+48>>2],l=w[e+8>>2],B=w[e>>2],E=w[e+4>>2],s=w[e+16>>2],t=w[r+8>>2],d=w[e+32>>2],c=w[f>>2],k=w[r+4>>2],o[n+28>>2]=0,u=m(t*u),d=m(c*d),w[n+24>>2]=Z+m(u+m(d+m(k*G))),b=m(t*b),s=m(c*s),w[n+20>>2]=v+m(b+m(s+m(k*h))),l=m(t*l),c=m(c*B),w[n+16>>2]=Q+m(l+m(c+m(k*E))),t=w[f+4>>2],o[n+12>>2]=0,w[n+8>>2]=Z+m(u+m(d+m(G*t))),w[n+4>>2]=v+m(b+m(s+m(h*t))),w[n>>2]=Q+m(l+m(c+m(E*t))),Zn[o[o[A>>2]+16>>2]](A,a,n,i),v=w[e+52>>2],b=w[e+24>>2],u=w[e+20>>2],h=w[e+56>>2],l=w[e+40>>2],B=w[e+36>>2],Z=w[e+48>>2],s=w[e+8>>2],G=w[e>>2],d=w[e+4>>2],Q=w[e+16>>2],t=w[r+8>>2],E=w[e+32>>2],c=w[f>>2],k=w[f+4>>2],o[n+28>>2]=0,l=m(t*l),B=m(k*B),w[n+24>>2]=h+m(l+m(m(c*E)+B)),b=m(t*b),u=m(k*u),w[n+20>>2]=v+m(b+m(m(c*Q)+u)),s=m(t*s),t=m(c*G),c=m(k*d),w[n+16>>2]=Z+m(s+m(t+c)),t=w[r>>2],o[n+12>>2]=0,w[n+8>>2]=h+m(l+m(m(t*E)+B)),w[n+4>>2]=v+m(b+m(m(t*Q)+u)),w[n>>2]=Z+m(s+m(m(t*G)+c)),Zn[o[o[A>>2]+16>>2]](A,a,n,i),v=w[e+52>>2],b=w[e+24>>2],h=w[e+20>>2],Z=w[e+56>>2],u=w[e+40>>2],G=w[e+36>>2],Q=w[e+48>>2],l=w[e+8>>2],B=w[e>>2],E=w[e+4>>2],s=w[e+16>>2],t=w[r+8>>2],d=w[e+32>>2],c=w[r>>2],k=w[f+4>>2],o[n+28>>2]=0,u=m(t*u),d=m(c*d),w[n+24>>2]=Z+m(u+m(d+m(k*G))),b=m(t*b),s=m(c*s),w[n+20>>2]=v+m(b+m(s+m(k*h))),l=m(t*l),c=m(c*B),w[n+16>>2]=Q+m(l+m(c+m(k*E))),t=w[r+4>>2],o[n+12>>2]=0,w[n+8>>2]=Z+m(u+m(d+m(G*t))),w[n+4>>2]=v+m(b+m(s+m(h*t))),w[n>>2]=Q+m(l+m(c+m(E*t))),Zn[o[o[A>>2]+16>>2]](A,a,n,i),v=w[e+52>>2],h=w[e+24>>2],b=w[e+20>>2],Z=w[e+56>>2],G=w[e+40>>2],u=w[e+36>>2],Q=w[e+48>>2],E=w[e+8>>2],l=w[e>>2],B=w[e+4>>2],s=w[e+16>>2],t=w[r+8>>2],d=w[e+32>>2],c=w[r>>2],k=w[r+4>>2],o[n+28>>2]=0,u=m(m(c*d)+m(k*u)),w[n+24>>2]=Z+m(m(t*G)+u),b=m(m(c*s)+m(k*b)),w[n+20>>2]=v+m(m(t*h)+b),c=m(m(c*l)+m(k*B)),w[n+16>>2]=Q+m(m(t*E)+c),t=w[f+8>>2],o[n+12>>2]=0,w[n+8>>2]=Z+m(m(t*G)+u),w[n+4>>2]=v+m(m(t*h)+b),w[n>>2]=Q+m(m(t*E)+c),Zn[o[o[A>>2]+16>>2]](A,a,n,i),v=w[e+52>>2],h=w[e+24>>2],b=w[e+20>>2],Z=w[e+56>>2],G=w[e+40>>2],u=w[e+36>>2],Q=w[e+48>>2],E=w[e+8>>2],l=w[e>>2],B=w[e+4>>2],s=w[e+16>>2],t=w[r+8>>2],d=w[e+32>>2],c=w[f>>2],k=w[r+4>>2],o[n+28>>2]=0,u=m(m(c*d)+m(k*u)),w[n+24>>2]=Z+m(m(t*G)+u),b=m(m(c*s)+m(k*b)),w[n+20>>2]=v+m(m(t*h)+b),c=m(m(c*l)+m(k*B)),w[n+16>>2]=Q+m(m(t*E)+c),t=w[f+8>>2],o[n+12>>2]=0,w[n+8>>2]=Z+m(m(t*G)+u),w[n+4>>2]=v+m(m(t*h)+b),w[n>>2]=Q+m(m(t*E)+c),Zn[o[o[A>>2]+16>>2]](A,a,n,i),v=w[e+52>>2],h=w[e+24>>2],b=w[e+20>>2],Z=w[e+56>>2],G=w[e+40>>2],u=w[e+36>>2],Q=w[e+48>>2],E=w[e+8>>2],l=w[e>>2],B=w[e+4>>2],s=w[e+16>>2],t=w[r+8>>2],d=w[e+32>>2],c=w[f>>2],k=w[f+4>>2],o[n+28>>2]=0,u=m(m(c*d)+m(k*u)),w[n+24>>2]=Z+m(m(t*G)+u),b=m(m(c*s)+m(k*b)),w[n+20>>2]=v+m(m(t*h)+b),c=m(m(c*l)+m(k*B)),w[n+16>>2]=Q+m(m(t*E)+c),t=w[f+8>>2],o[n+12>>2]=0,w[n+8>>2]=Z+m(m(t*G)+u),w[n+4>>2]=v+m(m(t*h)+b),w[n>>2]=Q+m(m(t*E)+c),Zn[o[o[A>>2]+16>>2]](A,a,n,i),v=w[e+52>>2],h=w[e+24>>2],b=w[e+20>>2],Z=w[e+56>>2],G=w[e+40>>2],u=w[e+36>>2],Q=w[e+48>>2],E=w[e+8>>2],l=w[e>>2],B=w[e+4>>2],s=w[e+16>>2],t=w[r+8>>2],d=w[e+32>>2],c=w[r>>2],k=w[f+4>>2],o[n+28>>2]=0,u=m(m(c*d)+m(k*u)),w[n+24>>2]=Z+m(m(t*G)+u),b=m(m(c*s)+m(k*b)),w[n+20>>2]=v+m(m(t*h)+b),c=m(m(c*l)+m(k*B)),w[n+16>>2]=Q+m(m(t*E)+c),t=w[f+8>>2],o[n+12>>2]=0,w[n+8>>2]=Z+m(m(t*G)+u),w[n+4>>2]=v+m(m(t*h)+b),w[n>>2]=Q+m(m(t*E)+c),Zn[o[o[A>>2]+16>>2]](A,a,n,i),v=w[e+52>>2],b=w[e+24>>2],u=w[e+20>>2],h=w[e+56>>2],l=w[e+40>>2],B=w[e+36>>2],Z=w[e+48>>2],s=w[e+8>>2],G=w[e>>2],d=w[e+4>>2],Q=w[e+16>>2],t=w[f+8>>2],E=w[e+32>>2],c=w[r>>2],k=w[r+4>>2],o[n+28>>2]=0,l=m(t*l),B=m(k*B),w[n+24>>2]=h+m(l+m(m(c*E)+B)),b=m(t*b),u=m(k*u),w[n+20>>2]=v+m(b+m(m(c*Q)+u)),s=m(t*s),t=m(c*G),c=m(k*d),w[n+16>>2]=Z+m(s+m(t+c)),t=w[f>>2],o[n+12>>2]=0,w[n+8>>2]=h+m(l+m(m(t*E)+B)),w[n+4>>2]=v+m(b+m(m(t*Q)+u)),w[n>>2]=Z+m(s+m(m(t*G)+c)),Zn[o[o[A>>2]+16>>2]](A,a,n,i),v=w[e+52>>2],b=w[e+24>>2],h=w[e+20>>2],Z=w[e+56>>2],u=w[e+40>>2],G=w[e+36>>2],Q=w[e+48>>2],l=w[e+8>>2],B=w[e>>2],E=w[e+4>>2],s=w[e+16>>2],t=w[f+8>>2],d=w[e+32>>2],c=w[f>>2],k=w[r+4>>2],o[n+28>>2]=0,u=m(t*u),d=m(c*d),w[n+24>>2]=Z+m(u+m(d+m(k*G))),b=m(t*b),s=m(c*s),w[n+20>>2]=v+m(b+m(s+m(k*h))),l=m(t*l),c=m(c*B),w[n+16>>2]=Q+m(l+m(c+m(k*E))),t=w[f+4>>2],o[n+12>>2]=0,w[n+8>>2]=Z+m(u+m(d+m(G*t))),w[n+4>>2]=v+m(b+m(s+m(h*t))),w[n>>2]=Q+m(l+m(c+m(E*t))),Zn[o[o[A>>2]+16>>2]](A,a,n,i),v=w[e+52>>2],b=w[e+24>>2],u=w[e+20>>2],h=w[e+56>>2],l=w[e+40>>2],B=w[e+36>>2],Z=w[e+48>>2],s=w[e+8>>2],G=w[e>>2],d=w[e+4>>2],Q=w[e+16>>2],t=w[f+8>>2],E=w[e+32>>2],c=w[f>>2],k=w[f+4>>2],o[n+28>>2]=0,l=m(t*l),B=m(k*B),w[n+24>>2]=h+m(l+m(m(c*E)+B)),b=m(t*b),u=m(k*u),w[n+20>>2]=v+m(b+m(m(c*Q)+u)),s=m(t*s),t=m(c*G),c=m(k*d),w[n+16>>2]=Z+m(s+m(t+c)),t=w[r>>2],o[n+12>>2]=0,w[n+8>>2]=h+m(l+m(m(t*E)+B)),w[n+4>>2]=v+m(b+m(m(t*Q)+u)),w[n>>2]=Z+m(s+m(m(t*G)+c)),Zn[o[o[A>>2]+16>>2]](A,a,n,i),v=w[e+52>>2],b=w[e+24>>2],h=w[e+20>>2],Z=w[e+56>>2],u=w[e+40>>2],G=w[e+36>>2],Q=w[e+48>>2],l=w[e+8>>2],B=w[e>>2],E=w[e+4>>2],s=w[e+16>>2],t=w[f+8>>2],d=w[e+32>>2],c=w[r>>2],k=w[f+4>>2],o[n+28>>2]=0,u=m(t*u),d=m(c*d),w[n+24>>2]=Z+m(u+m(d+m(k*G))),b=m(t*b),s=m(c*s),w[n+20>>2]=v+m(b+m(s+m(k*h))),l=m(t*l),c=m(c*B),w[n+16>>2]=Q+m(l+m(c+m(k*E))),t=w[r+4>>2],o[n+12>>2]=0,w[n+8>>2]=Z+m(u+m(d+m(G*t))),w[n+4>>2]=v+m(b+m(s+m(h*t))),w[n>>2]=Q+m(l+m(c+m(E*t))),Zn[o[o[A>>2]+16>>2]](A,a,n,i),S=n+32|0},function(A,r,f,e,i,n){A|=0,r=m(r),f=m(f),e|=0,i|=0,n|=0;var a,t,c,b,u,l=0,s=0,k=m(0),d=m(0),v=m(0),h=0,B=m(0),Z=m(0),G=m(0),Q=m(0),E=0,W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=0,X=0,D=0,C=0;for(S=a=S-144|0,o[a+136>>2]=0,o[a+140>>2]=0,o[a+128>>2]=0,o[a+132>>2]=0,w[(g=a+128|0)+(h=e<<2)>>2]=-f,o[a+120>>2]=0,o[a+124>>2]=0,o[a+112>>2]=0,o[a+116>>2]=0,w[h+(X=a+112|0)>>2]=f,l=o[i+12>>2],o[a+56>>2]=o[i+8>>2],o[a+60>>2]=l,l=o[i+4>>2],o[a+48>>2]=o[i>>2],o[a+52>>2]=l,l=o[i+28>>2],o[a+72>>2]=o[i+24>>2],o[a+76>>2]=l,l=o[i+20>>2],o[a+64>>2]=o[i+16>>2],o[a+68>>2]=l,l=o[i+44>>2],o[a+88>>2]=o[i+40>>2],o[a+92>>2]=l,l=o[i+36>>2],o[a+80>>2]=o[i+32>>2],o[a+84>>2]=l,d=w[i+8>>2],G=w[i+56>>2],F=w[i+40>>2],R=w[i+36>>2],Y=w[i+48>>2],V=w[i>>2],B=w[i+4>>2],Z=w[i+32>>2],f=w[a+136>>2],k=w[a+128>>2],v=w[a+132>>2],w[a+100>>2]=m(m(f*w[i+24>>2])+m(m(k*w[i+16>>2])+m(v*w[i+20>>2])))+w[i+52>>2],o[a+108>>2]=0,w[a+104>>2]=G+m(m(f*F)+m(m(k*Z)+m(v*R))),w[a+96>>2]=Y+m(m(f*d)+m(m(k*V)+m(v*B))),l=o[a+108>>2],o[a+40>>2]=o[a+104>>2],o[a+44>>2]=l,l=o[a+100>>2],o[a+32>>2]=o[a+96>>2],o[a+36>>2]=l,t=(l=(e+1|0)%3<<2)+(E=a+48|0)|0,w[a+16>>2]=w[t>>2],c=(D=a- -64|0)+l|0,w[a+20>>2]=w[c>>2],f=w[(b=(C=a+80|0)+l|0)>>2],o[a+28>>2]=0,w[a+24>>2]=f,f=w[(D=h+D|0)>>2],k=w[(C=h+C|0)>>2],o[a+12>>2]=0,h=h+E|0,w[a>>2]=-w[h>>2],w[a+8>>2]=-k,w[a+4>>2]=-f,E=a+32|0,u=a+16|0,Zn[o[o[A>>2]+72>>2]](A,E,u,a,r,m(-1.5707963705062866),m(1.5707963705062866),m(-1.5707963705062866),m(1.5707963705062866),n,m(30),0),s=o[i+12>>2],o[a+56>>2]=o[i+8>>2],o[a+60>>2]=s,s=o[i+4>>2],o[a+48>>2]=o[i>>2],o[a+52>>2]=s,s=o[i+28>>2],o[a+72>>2]=o[i+24>>2],o[a+76>>2]=s,s=o[i+20>>2],o[a+64>>2]=o[i+16>>2],o[a+68>>2]=s,s=o[i+44>>2],o[a+88>>2]=o[i+40>>2],o[a+92>>2]=s,s=o[i+36>>2],o[a+80>>2]=o[i+32>>2],o[a+84>>2]=s,d=w[i+8>>2],G=w[i+56>>2],F=w[i+40>>2],R=w[i+36>>2],f=w[i+52>>2],k=w[i+24>>2],v=w[i+20>>2],Y=w[i+48>>2],V=w[i>>2],B=w[i+4>>2],Z=w[i+32>>2],Q=w[i+16>>2],o[a+108>>2]=0,W=f,f=w[a+120>>2],N=m(k*f),k=w[a+112>>2],p=v,v=w[a+116>>2],w[a+100>>2]=W+m(N+m(m(Q*k)+m(p*v))),w[a+104>>2]=G+m(m(f*F)+m(m(k*Z)+m(v*R))),w[a+96>>2]=Y+m(m(f*d)+m(m(k*V)+m(v*B))),s=o[a+108>>2],o[a+40>>2]=o[a+104>>2],o[a+44>>2]=s,s=o[a+100>>2],o[a+32>>2]=o[a+96>>2],o[a+36>>2]=s,w[a+16>>2]=w[t>>2],w[a+20>>2]=w[c>>2],f=w[b>>2],o[a+28>>2]=0,w[a+24>>2]=f,w[a>>2]=w[h>>2],w[a+4>>2]=w[D>>2],f=w[C>>2],o[a+12>>2]=0,w[a+8>>2]=f,Zn[o[o[A>>2]+72>>2]](A,E,u,a,r,m(-1.5707963705062866),m(1.5707963705062866),m(-1.5707963705062866),m(1.5707963705062866),n,m(30),0),h=(e=(e+2|0)%3<<2)+X|0,E=e+g|0,X=l+X|0,l=l+g|0,f=w[i+56>>2],k=w[i+52>>2],v=w[i+48>>2],e=0;d=m(m(0|e)*m(.01745329238474369)),G=m(Kr(d)*r),w[l>>2]=G,w[X>>2]=G,d=m($r(d)*r),w[E>>2]=d,w[h>>2]=d,d=w[i+8>>2],G=w[i>>2],F=w[i+4>>2],R=w[i+24>>2],Y=w[i+16>>2],V=w[i+20>>2],B=w[i+40>>2],Z=w[i+32>>2],Q=w[i+36>>2],o[a+60>>2]=0,W=w[a+136>>2],p=w[a+128>>2],N=w[a+132>>2],w[a+56>>2]=f+m(m(B*W)+m(m(Z*p)+m(Q*N))),w[a+52>>2]=k+m(m(R*W)+m(m(Y*p)+m(N*V))),w[a+48>>2]=v+m(m(d*W)+m(m(G*p)+m(F*N))),o[a+44>>2]=0,W=B,B=w[a+120>>2],p=Z,Z=w[a+112>>2],N=Q,Q=w[a+116>>2],w[a+40>>2]=f+m(m(W*B)+m(m(p*Z)+m(N*Q))),w[a+36>>2]=k+m(m(R*B)+m(m(Y*Z)+m(V*Q))),w[a+32>>2]=v+m(m(d*B)+m(m(G*Z)+m(F*Q))),Zn[o[o[A>>2]+16>>2]](A,a+48|0,a+32|0,n),g=e>>>0<330,e=e+30|0,g;);S=a+144|0},function(A,r,f,e,i,n){A|=0,r=m(r),f=m(f),e|=0,i|=0,n|=0;var a,t,c,b,u=0,l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=0,g=0,X=m(0),D=m(0),C=m(0),J=0;for(S=a=S-128|0,X=w[i+56>>2],D=w[i+52>>2],C=w[i+48>>2],o[a+120>>2]=0,o[a+124>>2]=0,o[a+112>>2]=0,o[a+116>>2]=0,w[(u=e<<2)+(a+112|0)>>2]=f,o[a+104>>2]=0,o[a+108>>2]=0,o[a+96>>2]=0,o[a+100>>2]=0,w[u+(V=a+96|0)>>2]=-f,o[a+88>>2]=0,o[a+92>>2]=0,o[a+80>>2]=0,o[a+84>>2]=0,w[(g=u)+(u=a+80|0)>>2]=f,t=(J=(e+2|0)%3<<2)+u|0,J=V+J|0,c=(g=u)+(u=(V=(e+1|0)%3|0)<<2)|0,b=u+(a+96|0)|0,u=0;f=m(m(0|u)*m(.01745329238474369)),d=m(Kr(f)*r),w[b>>2]=d,w[c>>2]=d,f=m($r(f)*r),w[J>>2]=f,w[t>>2]=f,f=w[i+8>>2],d=w[i>>2],Z=w[i+4>>2],G=w[i+24>>2],Q=w[i+16>>2],E=w[i+20>>2],l=w[i+40>>2],s=w[i+32>>2],k=w[i+36>>2],o[a+76>>2]=0,v=w[a+104>>2],h=w[a+96>>2],B=w[a+100>>2],w[a+72>>2]=X+m(m(l*v)+m(m(s*h)+m(k*B))),w[a+68>>2]=D+m(m(G*v)+m(m(Q*h)+m(B*E))),w[a+64>>2]=C+m(m(f*v)+m(m(d*h)+m(Z*B))),o[a+60>>2]=0,W=l,l=w[a+88>>2],N=s,s=w[a+80>>2],p=k,k=w[a+84>>2],w[a+56>>2]=X+m(m(W*l)+m(m(N*s)+m(p*k))),w[a+52>>2]=D+m(m(G*l)+m(m(Q*s)+m(E*k))),w[a+48>>2]=C+m(m(f*l)+m(m(d*s)+m(Z*k))),Zn[o[o[A>>2]+16>>2]](A,a- -64|0,a+48|0,n),g=u>>>0<330,u=u+30|0,g;);o[a+72>>2]=0,o[a+76>>2]=0,o[a+64>>2]=0,o[a+68>>2]=0,o[(a- -64|0)+(e<<2)>>2]=1065353216,o[a+56>>2]=0,o[a+60>>2]=0,o[a+48>>2]=0,o[a+52>>2]=0,o[(a+48|0)+(V<<2)>>2]=1065353216,v=w[i+8>>2],h=w[i>>2],B=w[i+4>>2],F=w[i+24>>2],R=w[i+16>>2],Y=w[i+20>>2],l=w[i+40>>2],s=w[i+32>>2],k=w[i+36>>2],o[a+44>>2]=0,f=w[a+120>>2],d=w[a+112>>2],Z=w[a+116>>2],w[a+40>>2]=X-m(m(l*f)+m(m(s*d)+m(k*Z))),w[a+36>>2]=D-m(m(F*f)+m(m(R*d)+m(Z*Y))),w[a+32>>2]=C-m(m(v*f)+m(m(h*d)+m(B*Z))),o[a+28>>2]=0,G=w[a+72>>2],Q=w[a+64>>2],E=w[a+68>>2],w[a+24>>2]=m(l*G)+m(m(s*Q)+m(k*E)),w[a+20>>2]=m(F*G)+m(m(R*Q)+m(Y*E)),w[a+16>>2]=m(v*G)+m(m(h*Q)+m(B*E)),o[a+12>>2]=0,W=l,l=w[a+56>>2],N=s,s=w[a+48>>2],p=k,k=w[a+52>>2],w[a+8>>2]=m(W*l)+m(m(N*s)+m(p*k)),w[a+4>>2]=m(F*l)+m(m(R*s)+m(Y*k)),w[a>>2]=m(v*l)+m(m(h*s)+m(B*k)),e=a+32|0,u=a+16|0,Zn[o[o[A>>2]+68>>2]](A,e,u,a,r,r,m(0),m(6.2831854820251465),n,0,m(10)),v=w[i+8>>2],h=w[i>>2],B=w[i+4>>2],F=w[i+24>>2],R=w[i+16>>2],Y=w[i+20>>2],W=w[i+40>>2],N=w[i+32>>2],p=w[i+36>>2],o[a+44>>2]=0,w[a+40>>2]=X+m(m(W*f)+m(m(N*d)+m(Z*p))),w[a+36>>2]=D+m(m(F*f)+m(m(R*d)+m(Z*Y))),w[a+32>>2]=C+m(m(v*f)+m(m(h*d)+m(Z*B))),o[a+28>>2]=0,w[a+24>>2]=m(W*G)+m(m(N*Q)+m(E*p)),w[a+20>>2]=m(F*G)+m(m(R*Q)+m(E*Y)),w[a+16>>2]=m(v*G)+m(m(h*Q)+m(E*B)),o[a+12>>2]=0,w[a+8>>2]=m(W*l)+m(m(N*s)+m(k*p)),w[a+4>>2]=m(F*l)+m(m(R*s)+m(k*Y)),w[a>>2]=m(v*l)+m(m(h*s)+m(k*B)),Zn[o[o[A>>2]+68>>2]](A,e,u,a,r,r,m(0),m(6.2831854820251465),n,0,m(10)),S=a+128|0},function(A,r,f,e,i,n){A|=0,r=m(r),f=m(f),e|=0,i|=0,n|=0;var a,t,c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=0,Q=m(0),E=m(0),W=m(0),N=0,p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=0,D=0,C=m(0),J=m(0),x=m(0),y=0,M=m(0);for(S=a=S-144|0,Q=w[i+56>>2],E=w[i+52>>2],W=w[i+48>>2],o[a+136>>2]=0,o[a+140>>2]=0,o[a+128>>2]=0,o[a+132>>2]=0,G=e<<2,f=m(f*m(.5)),w[G+(a+128|0)>>2]=f,o[a+120>>2]=0,o[a+124>>2]=0,o[a+112>>2]=0,o[a+116>>2]=0,w[(N=(t=(e+1|0)%3|0)<<2)+(a+112|0)>>2]=r,o[a+104>>2]=0,o[a+108>>2]=0,o[a+96>>2]=0,o[a+100>>2]=0,w[(X=(e+2|0)%3<<2)+(a+96|0)>>2]=r,o[a+88>>2]=0,o[a+92>>2]=0,o[a+80>>2]=0,o[a+84>>2]=0,w[(D=G)+(G=a+80|0)>>2]=-f,X=G+X|0,N=G+N|0,f=w[a+136>>2],l=w[a+132>>2],s=w[a+128>>2],G=0;k=m(m(0|G)*m(.01745329238474369)),y=N,M=m(Kr(k)*r),w[y>>2]=M,y=X,M=m($r(k)*r),w[y>>2]=M,k=w[i+8>>2],d=w[i>>2],v=w[i+4>>2],h=w[i+24>>2],B=w[i+16>>2],Z=w[i+20>>2],c=w[i+40>>2],b=w[i+32>>2],u=w[i+36>>2],o[a+76>>2]=0,w[a+72>>2]=Q+m(m(c*f)+m(m(b*s)+m(l*u))),w[a+68>>2]=E+m(m(h*f)+m(m(B*s)+m(l*Z))),w[a+64>>2]=W+m(m(k*f)+m(m(d*s)+m(v*l))),o[a+60>>2]=0,p=c,c=w[a+88>>2],F=b,b=w[a+80>>2],R=u,u=w[a+84>>2],w[a+56>>2]=Q+m(m(p*c)+m(m(F*b)+m(R*u))),w[a+52>>2]=E+m(m(h*c)+m(m(B*b)+m(Z*u))),w[a+48>>2]=W+m(m(k*c)+m(m(d*b)+m(v*u))),Zn[o[o[A>>2]+16>>2]](A,a- -64|0,a+48|0,n),D=G>>>0<330,G=G+30|0,D;);k=w[i+8>>2],d=w[i>>2],v=w[i+4>>2],h=w[i+24>>2],B=w[i+16>>2],Z=w[i+20>>2],c=w[i+40>>2],b=w[i+32>>2],u=w[i+36>>2],o[a+76>>2]=0,w[a+72>>2]=Q+m(m(c*f)+m(m(b*s)+m(l*u))),w[a+68>>2]=E+m(m(h*f)+m(m(B*s)+m(l*Z))),w[a+64>>2]=W+m(m(k*f)+m(m(d*s)+m(v*l))),o[a+60>>2]=0,p=c,Y=w[a+120>>2],c=m(Y-f),F=b,V=w[a+112>>2],b=m(V-s),R=u,g=w[a+116>>2],u=m(g-l),w[a+56>>2]=Q+m(m(p*c)+m(m(F*b)+m(R*u))),w[a+52>>2]=E+m(m(h*c)+m(m(B*b)+m(Z*u))),w[a+48>>2]=W+m(m(k*c)+m(m(d*b)+m(v*u))),G=a- -64|0,N=a+48|0,Zn[o[o[A>>2]+16>>2]](A,G,N,n),k=w[i+8>>2],d=w[i>>2],v=w[i+4>>2],h=w[i+24>>2],B=w[i+16>>2],Z=w[i+20>>2],c=w[i+40>>2],b=w[i+32>>2],u=w[i+36>>2],o[a+76>>2]=0,w[a+72>>2]=Q+m(m(c*f)+m(m(b*s)+m(l*u))),w[a+68>>2]=E+m(m(h*f)+m(m(B*s)+m(l*Z))),w[a+64>>2]=W+m(m(k*f)+m(m(d*s)+m(l*v))),o[a+60>>2]=0,p=c,C=m(-f),c=m(C-Y),F=b,Y=m(-s),b=m(Y-V),R=u,V=m(-l),u=m(V-g),w[a+56>>2]=Q+m(m(p*c)+m(m(F*b)+m(R*u))),w[a+52>>2]=E+m(m(h*c)+m(m(B*b)+m(u*Z))),w[a+48>>2]=W+m(m(k*c)+m(m(d*b)+m(u*v))),Zn[o[o[A>>2]+16>>2]](A,G,N,n),k=w[i+8>>2],d=w[i>>2],v=w[i+4>>2],h=w[i+24>>2],B=w[i+16>>2],Z=w[i+20>>2],c=w[i+40>>2],b=w[i+32>>2],u=w[i+36>>2],o[a+76>>2]=0,w[a+72>>2]=Q+m(m(c*f)+m(m(b*s)+m(l*u))),w[a+68>>2]=E+m(m(h*f)+m(m(B*s)+m(l*Z))),w[a+64>>2]=W+m(m(k*f)+m(m(d*s)+m(l*v))),o[a+60>>2]=0,p=c,g=w[a+104>>2],c=m(g-f),F=b,J=w[a+96>>2],b=m(J-s),R=u,x=w[a+100>>2],u=m(x-l),w[a+56>>2]=Q+m(m(p*c)+m(m(F*b)+m(R*u))),w[a+52>>2]=E+m(m(h*c)+m(m(B*b)+m(Z*u))),w[a+48>>2]=W+m(m(k*c)+m(m(d*b)+m(v*u))),Zn[o[o[A>>2]+16>>2]](A,G,N,n),k=w[i+8>>2],d=w[i>>2],v=w[i+4>>2],h=w[i+24>>2],B=w[i+16>>2],Z=w[i+20>>2],c=w[i+40>>2],b=w[i+32>>2],u=w[i+36>>2],o[a+76>>2]=0,w[a+72>>2]=Q+m(m(c*f)+m(m(b*s)+m(l*u))),w[a+68>>2]=E+m(m(h*f)+m(m(B*s)+m(l*Z))),w[a+64>>2]=W+m(m(k*f)+m(m(d*s)+m(l*v))),o[a+60>>2]=0,p=c,c=m(C-g),F=b,b=m(Y-J),R=u,u=m(V-x),w[a+56>>2]=Q+m(m(p*c)+m(m(F*b)+m(R*u))),w[a+52>>2]=E+m(m(h*c)+m(m(B*b)+m(u*Z))),w[a+48>>2]=W+m(m(k*c)+m(m(d*b)+m(u*v))),Zn[o[o[A>>2]+16>>2]](A,G,N,n),o[a+72>>2]=0,o[a+76>>2]=0,o[a+64>>2]=0,o[a+68>>2]=0,o[G+(e<<2)>>2]=1065353216,o[a+56>>2]=0,o[a+60>>2]=0,o[a+48>>2]=0,o[a+52>>2]=0,o[N+(t<<2)>>2]=1065353216,k=w[i+8>>2],d=w[i>>2],v=w[i+4>>2],h=w[i+24>>2],B=w[i+16>>2],Z=w[i+20>>2],c=w[i+40>>2],b=w[i+32>>2],u=w[i+36>>2],o[a+44>>2]=0,w[a+40>>2]=Q-m(m(c*f)+m(m(b*s)+m(l*u))),w[a+36>>2]=E-m(m(h*f)+m(m(B*s)+m(l*Z))),w[a+32>>2]=W-m(m(k*f)+m(m(d*s)+m(l*v))),o[a+28>>2]=0,f=w[a+72>>2],l=w[a+64>>2],s=w[a+68>>2],w[a+24>>2]=m(c*f)+m(m(b*l)+m(u*s)),w[a+20>>2]=m(h*f)+m(m(B*l)+m(Z*s)),w[a+16>>2]=m(k*f)+m(m(d*l)+m(v*s)),o[a+12>>2]=0,f=w[a+56>>2],l=w[a+48>>2],s=w[a+52>>2],w[a+8>>2]=m(c*f)+m(m(b*l)+m(u*s)),w[a+4>>2]=m(h*f)+m(m(B*l)+m(Z*s)),w[a>>2]=m(k*f)+m(m(d*l)+m(v*s)),Zn[o[o[A>>2]+68>>2]](A,a+32|0,a+16|0,a,r,r,m(0),m(6.2831854820251465),n,0,m(10)),S=a+144|0},function(A,r,f,e,i){A|=0,r|=0,f=m(f),e|=0,i|=0;var n,a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0);S=n=S-32|0,a=w[r+4>>2],u=w[r>>2],b=w[r+8>>2],m(Q(b))>m(.7071067690849304)?(t=m(m(a*a)+m(b*b)),c=m(m(1)/m(N(t))),s=m(t*c),k=m(a*c),t=m(k*m(100)),l=m(c*m(-b)),d=m(u*l),k=m(k*m(-u)),c=m(0)):(c=m(m(u*u)+m(a*a)),t=m(m(1)/m(N(c))),d=m(c*t),s=m(t*m(-a)),c=m(s*m(100)),k=m(b*s),l=m(u*t),s=m(l*m(-b)),t=m(0)),v=w[e+52>>2],h=w[e+20>>2],B=w[e+24>>2],Z=w[e+56>>2],G=w[e+36>>2],E=w[e+40>>2],W=w[e+48>>2],p=w[e+8>>2],F=w[e>>2],R=w[e+4>>2],Y=w[e+16>>2],X=w[e+32>>2],o[n+28>>2]=0,b=m(b*f),V=m(b+t),u=m(u*f),g=m(u+c),f=m(a*f),l=m(l*m(100)),a=m(f+l),w[n+24>>2]=Z+m(m(E*V)+m(m(X*g)+m(G*a))),w[n+20>>2]=v+m(m(V*B)+m(m(g*Y)+m(a*h))),w[n+16>>2]=W+m(m(V*p)+m(m(g*F)+m(a*R))),o[n+12>>2]=0,a=m(b-t),c=m(u-c),t=m(f-l),w[n+8>>2]=Z+m(m(E*a)+m(m(X*c)+m(G*t))),w[n+4>>2]=v+m(m(a*B)+m(m(c*Y)+m(t*h))),w[n>>2]=W+m(m(a*p)+m(m(c*F)+m(t*R))),r=n+16|0,Zn[o[o[A>>2]+16>>2]](A,r,n,i),a=w[e+52>>2],c=w[e+24>>2],t=w[e+20>>2],l=w[e+56>>2],v=w[e+40>>2],h=w[e+36>>2],B=w[e+48>>2],Z=w[e+8>>2],G=w[e>>2],E=w[e+4>>2],W=w[e+16>>2],p=w[e+32>>2],o[n+28>>2]=0,F=m(d*m(100)),d=m(b+F),R=m(s*m(100)),s=m(u+R),Y=m(k*m(100)),k=m(f+Y),w[n+24>>2]=l+m(m(v*d)+m(m(p*s)+m(h*k))),w[n+20>>2]=a+m(m(d*c)+m(m(s*W)+m(k*t))),w[n+16>>2]=B+m(m(d*Z)+m(m(s*G)+m(k*E))),o[n+12>>2]=0,b=m(b-F),u=m(u-R),f=m(f-Y),w[n+8>>2]=l+m(m(v*b)+m(m(p*u)+m(h*f))),w[n+4>>2]=a+m(m(b*c)+m(m(u*W)+m(f*t))),w[n>>2]=B+m(m(b*Z)+m(m(u*G)+m(f*E))),Zn[o[o[A>>2]+16>>2]](A,r,n,i),S=n+32|0},function(A){var r=0;A=o[140+(A|=0)>>2],1&a[33924]||(r=0|Y(1,31712),a[33924]=1,o[8480]=r),R(o[8480],0|A,4404,0)},function(A){var r=0;A=o[140+(A|=0)>>2],1&a[33924]||(r=0|Y(1,31712),a[33924]=1,o[8480]=r),R(o[8480],0|A,4415,0)},function(A,r,f,e){r|=0,f|=0,e|=0;var i,n=0;S=i=S-32|0,A=o[140+(A|=0)>>2],1&a[33932]||(n=0|Y(4,31728),a[33932]=1,o[8482]=n),n=o[8482],o[i+24>>2]=e,o[i+16>>2]=f,o[i+8>>2]=r,R(0|n,0|A,7586,i+8|0),S=i+32|0},hn,Bn,Bn,function(A,r){r|=0,Zn[o[o[(A|=0)>>2]+16>>2]](A,r,o[r>>2])},dn,function(A){var r=0,f=0;return o[(A|=0)>>2]=31968,v[A+4|0]&&(r=o[A+8>>2],1&a[33924]||(f=0|Y(1,31712),a[33924]=1,o[8480]=f),R(o[8480],0|r,3211,0)),V(o[A+8>>2]),0|A},function(A){var r=0,f=0;o[(A|=0)>>2]=31968,v[A+4|0]&&(r=o[A+8>>2],1&a[33924]||(f=0|Y(1,31712),a[33924]=1,o[8480]=f),R(o[8480],0|r,3211,0)),V(o[A+8>>2]),DA(A)},function(A,r,f){r|=0,f|=0;var e,i=0;S=e=S-16|0,A=o[8+(A|=0)>>2],1&a[33940]||(i=0|Y(3,31988),a[33940]=1,o[8484]=i),i=o[8484],o[e+8>>2]=f,o[e>>2]=r,R(0|i,0|A,2251,0|e),S=e+16|0},hn,function(A){var r=0,f=0;return o[(A|=0)>>2]=32184,v[A+72|0]&&(r=o[A+76>>2],1&a[33924]||(f=0|Y(1,31712),a[33924]=1,o[8480]=f),R(o[8480],0|r,3211,0)),V(o[A+76>>2]),0|A},function(A){var r=0,f=0;o[(A|=0)>>2]=32184,v[A+72|0]&&(r=o[A+76>>2],1&a[33924]||(f=0|Y(1,31712),a[33924]=1,o[8480]=f),R(o[8480],0|r,3211,0)),V(o[A+76>>2]),DA(A)},function(A,r){r|=0;var f,e=0;e=o[12+(A|=0)>>2],o[r>>2]=o[A+8>>2],o[r+4>>2]=e,e=o[A+20>>2],o[r+8>>2]=o[A+16>>2],o[r+12>>2]=e,e=o[A+36>>2],o[r+24>>2]=o[A+32>>2],o[r+28>>2]=e,e=o[A+28>>2],o[r+16>>2]=o[A+24>>2],o[r+20>>2]=e,e=o[A+44>>2],o[r+32>>2]=o[A+40>>2],o[r+36>>2]=e,e=o[A+52>>2],o[r+40>>2]=o[A+48>>2],o[r+44>>2]=e,f=o[4+(e=A- -64|0)>>2],o[r+56>>2]=o[e>>2],o[r+60>>2]=f,e=o[A+60>>2],o[r+48>>2]=o[A+56>>2],o[r+52>>2]=e},function(A,r){A|=0;var f,e=0;e=o[4+(r|=0)>>2],o[A+8>>2]=o[r>>2],o[A+12>>2]=e,e=o[r+12>>2],o[A+16>>2]=o[r+8>>2],o[A+20>>2]=e,e=o[r+28>>2],o[A+32>>2]=o[r+24>>2],o[A+36>>2]=e,e=o[r+20>>2],o[A+24>>2]=o[r+16>>2],o[A+28>>2]=e,e=o[r+44>>2],o[A+48>>2]=o[r+40>>2],o[A+52>>2]=e,e=o[r+36>>2],o[A+40>>2]=o[r+32>>2],o[A+44>>2]=e,f=o[r+60>>2],o[(e=A- -64|0)>>2]=o[r+56>>2],o[e+4>>2]=f,e=o[r+52>>2],o[A+56>>2]=o[r+48>>2],o[A+60>>2]=e,Zn[o[o[A>>2]+16>>2]](A,o[A+4>>2])},function(A,r){r|=0;var f,e=0;S=f=S-16|0,A=o[76+(A|=0)>>2],1&a[33948]||(e=0|Y(2,32204),a[33948]=1,o[8486]=e),e=o[8486],o[f+8>>2]=r,R(0|e,0|A,4677,f+8|0),S=f+16|0},hn,function(A,r){A|=0,r|=0;var f=0;return(A=0|Zn[o[8292]](3+(A+r|0)|0))&&(o[(f=3+(A+r|0)&0-r)-4>>2]=A),0|f},function(A){(A|=0)&&Zn[o[8293]](o[A-4>>2])},Pi,vn,Zf,function(A){Zf(A|=0),DA(A)},function(A,r,f,e,i,n,a,t){var c,b;return A|=0,r|=0,f|=0,e|=0,i|=0,n|=0,a|=0,t|=0,S=t=S-48|0,o[8488]=o[8488]+1,e=0|Zn[o[8290]](64,16),o[e+8>>2]=a,o[e+4>>2]=n,o[e>>2]=i,i=o[r+4>>2],o[e+16>>2]=o[r>>2],o[e+20>>2]=i,i=o[r+12>>2],o[e+24>>2]=o[r+8>>2],o[e+28>>2]=i,i=o[f+4>>2],o[e+32>>2]=o[f>>2],o[e+36>>2]=i,i=o[f+12>>2],o[e+40>>2]=o[f+8>>2],o[e+44>>2]=i,o[e+52>>2]=0,o[e+56>>2]=0,i=o[r+12>>2],o[t+24>>2]=o[r+8>>2],o[t+28>>2]=i,i=o[r+4>>2],o[t+16>>2]=o[r>>2],o[t+20>>2]=i,r=o[f+12>>2],o[t+40>>2]=o[f+8>>2],o[t+44>>2]=r,r=o[f+4>>2],o[t+32>>2]=o[f>>2],o[t+36>>2]=r,o[e+60>>2]=o[A+104>>2],r=o[A+148>>2]+1|0,o[A+148>>2]=r,o[e+12>>2]=r,c=e,b=Gf(A+4|0,t+16|0,e),o[c+48>>2]=b,r=o[A+104>>2],o[e+52>>2]=0,r=(r<<2)+A|0,o[e+56>>2]=o[r+84>>2],(f=o[r+84>>2])&&(o[f+52>>2]=e),o[r+84>>2]=e,v[A+153|0]||(o[t+12>>2]=e,o[t+4>>2]=12168,o[t+8>>2]=A,r=t+16|0,f=t+4|0,ar(o[A+4>>2],r,f),ar(o[A+44>>2],r,f)),S=t+48|0,0|e},function(A,r,f){A|=0,f|=0;var e=0;Ie((2==o[60+(r|=0)>>2]?44:4)+A|0,o[r+48>>2]),e=o[r+52>>2],o[(e?e+56:84+((o[r+60>>2]<<2)+A|0))>>2]=o[r+56>>2],(e=o[r+56>>2])&&(o[e+52>>2]=o[r+52>>2]),e=o[A+96>>2],Zn[o[o[e>>2]+16>>2]](e,r,f),r&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+154|0]=1},function(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n=0,t=0,c=0,b=0,u=m(0),l=m(0),s=m(0),k=m(0),d=0,h=0,B=m(0),Z=m(0),G=0,Q=m(0),E=m(0),W=m(0),N=m(0),p=0,F=0;S=i=S-48|0,n=o[f+12>>2],o[i+24>>2]=o[f+8>>2],o[i+28>>2]=n,n=o[f+4>>2],o[i+16>>2]=o[f>>2],o[i+20>>2]=n,n=o[e+12>>2],o[i+40>>2]=o[e+8>>2],o[i+44>>2]=n,n=o[e+4>>2],o[i+32>>2]=o[e>>2],o[i+36>>2]=n;A:if(2!=o[r+60>>2])if(n=1,o[A+128>>2]=o[A+128>>2]+1,c=o[r+48>>2],!(w[c>>2]<=w[i+32>>2])|!(w[c+16>>2]>=w[i+16>>2])|!(w[c+4>>2]<=w[i+36>>2])|!(w[c+20>>2]>=w[i+20>>2])||!(w[c+8>>2]<=w[i+40>>2])|!(w[c+24>>2]>=w[i+24>>2]))Xf(A+4|0,c,i+16|0),o[A+132>>2]=o[A+132>>2]+1;else{l=w[r+20>>2],B=w[r+24>>2],Q=w[f>>2],E=w[f+4>>2],W=w[f+8>>2],Z=w[r+16>>2],s=w[r+36>>2],k=w[r+40>>2],N=w[r+32>>2],u=w[A+100>>2],o[i+12>>2]=0,k=m(u*m(m(k-B)*m(.5))),w[i+8>>2]=k,s=m(u*m(m(s-l)*m(.5))),w[i+4>>2]=s,u=m(u*m(m(N-Z)*m(.5))),w[i>>2]=u,m(Q-Z)>2]=-u),m(E-l)>2]=-s),m(W-B)>2]=-k),d=A+4|0;r:{if((l=w[(t=i+16|0)>>2])>=w[c>>2]){if(!(!((u=w[t+4>>2])>=w[c+4>>2])|!(w[c+8>>2]<=w[t+8>>2])|!(w[c+16>>2]>=w[t+16>>2])|!(w[c+20>>2]>=w[t+20>>2]))&&(n=0,w[c+24>>2]>=w[t+24>>2]))break r}else u=w[t+4>>2];w[t+4>>2]=u+m(-.05000000074505806),w[t>>2]=l+m(-.05000000074505806),w[t+8>>2]=w[t+8>>2]+m(-.05000000074505806),w[t+16>>2]=w[t+16>>2]+m(.05000000074505806),w[t+20>>2]=w[t+20>>2]+m(.05000000074505806),w[t+24>>2]=w[t+24>>2]+m(.05000000074505806),n=(((u=w[i>>2])>m(0))<<4)+t|0,w[n>>2]=u+w[n>>2],n=((u=w[i+4>>2])>m(0)?20:4)+t|0,w[n>>2]=u+w[n>>2],n=((u=w[i+8>>2])>m(0)?24:8)+t|0,w[n>>2]=u+w[n>>2];f:if(n=Jr(d,c))if((0|(h=o[d+8>>2]))>=0){if(!h)break f;for(;;){if(!(b=o[n+32>>2]))break f;if(n=b,(0|h)==(0|(G=G+1|0)))break}}else n=o[d>>2];else n=0;b=o[t+4>>2],o[c>>2]=o[t>>2],o[c+4>>2]=b,b=o[t+28>>2],o[c+24>>2]=o[t+24>>2],o[c+28>>2]=b,b=o[t+20>>2],o[c+16>>2]=o[t+16>>2],o[c+20>>2]=b,b=o[t+12>>2],o[c+8>>2]=o[t+8>>2],o[c+12>>2]=b,er(d,n,c),n=1}if(!n)break A;o[A+132>>2]=o[A+132>>2]+1}else Ie(A+44|0,o[r+48>>2]),p=r,F=Gf(A+4|0,i+16|0,r),o[p+48>>2]=F,n=1;b=o[r+52>>2],o[(b?b+56:84+((o[r+60>>2]<<2)+A|0))>>2]=o[r+56>>2],(b=o[r+56>>2])&&(o[b+52>>2]=o[r+52>>2]),b=o[f+4>>2],o[r+16>>2]=o[f>>2],o[r+20>>2]=b,b=o[f+12>>2],o[r+24>>2]=o[f+8>>2],o[r+28>>2]=b,f=o[e+4>>2],o[r+32>>2]=o[e>>2],o[r+36>>2]=f,f=o[e+12>>2],o[r+40>>2]=o[e+8>>2],o[r+44>>2]=f,f=o[A+104>>2],o[r+60>>2]=f,o[r+52>>2]=0,f=(f<<2)+A|0,o[r+56>>2]=o[f+84>>2],(e=o[f+84>>2])&&(o[e+52>>2]=r),o[f+84>>2]=r,n&&(a[A+154|0]=1,v[A+153|0]||(o[i>>2]=12168,o[i+4>>2]=A,yA(A+44|0,o[A+44>>2],o[r+48>>2],i),yA(A+4|0,o[A+4>>2],o[r+48>>2],i))),S=i+48|0},function(A,r,f,e){A|=0,f|=0,e|=0,A=o[20+(r|=0)>>2],o[f>>2]=o[r+16>>2],o[f+4>>2]=A,A=o[r+28>>2],o[f+8>>2]=o[r+24>>2],o[f+12>>2]=A,A=o[r+44>>2],o[e+8>>2]=o[r+40>>2],o[e+12>>2]=A,A=o[r+36>>2],o[e>>2]=o[r+32>>2],o[e+4>>2]=A},function(A,r,f,e,i,n){var a,t,c,b;A|=0,r|=0,f|=0,e|=0,i|=0,n|=0,S=f=S-16|0,o[f+8>>2]=12264,o[f+12>>2]=e,a=e+4|0,t=e+20|0,c=o[A+168>>2],b=f+8|0,CA(o[A+4>>2],r,a,t,w[e+32>>2],i,n,c,b),CA(o[A+44>>2],r,a,t,w[e+32>>2],i,n,c,b),S=f+16|0},function(A,r,f,e){var i;A|=0,r|=0,f|=0,e|=0,S=i=S-48|0,o[i+44>>2]=e,o[i+40>>2]=12336,e=o[r+12>>2],o[i+16>>2]=o[r+8>>2],o[i+20>>2]=e,e=o[r+4>>2],o[i+8>>2]=o[r>>2],o[i+12>>2]=e,r=o[f+12>>2],o[i+32>>2]=o[f+8>>2],o[i+36>>2]=r,r=o[f+4>>2],o[i+24>>2]=o[f>>2],o[i+28>>2]=r,r=i+8|0,f=i+40|0,ar(o[A+4>>2],r,f),ar(o[A+44>>2],r,f),S=i+48|0},function(A,r){A|=0,r|=0;var f,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=m(0);if(S=t=S-32|0,Zr(b=A+4|0,1+((0|G(o[A+112>>2],o[A+16>>2]))/100|0)|0),o[A+124>>2]&&(Zr(A+44|0,e=1+((0|G(o[A+108>>2],o[A+56>>2]))/100|0)|0),e=o[A+124>>2]-e|0,o[A+124>>2]=(0|e)>0?e:0),e=(o[A+104>>2]+1|0)%2|0,o[A+104>>2]=e,e=o[84+((e<<2)+A|0)>>2]){for(c=A+44|0;n=(i=o[e+52>>2])?i+56|0:84+((o[e+60>>2]<<2)+A|0)|0,i=o[e+56>>2],o[n>>2]=i,(n=o[e+56>>2])&&(o[n+52>>2]=o[e+52>>2]),o[e+52>>2]=0,o[e+56>>2]=o[A+92>>2],(n=o[A+92>>2])&&(o[n+52>>2]=e),o[A+92>>2]=e,Ie(b,o[e+48>>2]),n=o[e+28>>2],o[t+8>>2]=o[e+24>>2],o[t+12>>2]=n,n=o[e+20>>2],o[t>>2]=o[e+16>>2],o[t+4>>2]=n,n=o[e+44>>2],o[t+24>>2]=o[e+40>>2],o[t+28>>2]=n,n=o[e+36>>2],o[t+16>>2]=o[e+32>>2],o[t+20>>2]=n,n=Gf(c,t,e),o[e+60>>2]=2,o[e+48>>2]=n,e=i;);a[A+154|0]=1,o[A+124>>2]=o[A+56>>2]}o[t>>2]=12168,o[t+4>>2]=A,v[A+153|0]&&(yA(b,o[A+4>>2],o[A+44>>2],t),v[A+153|0]&&yA(b,e=o[b>>2],e,t));A:if(v[A+154|0]&&(e=o[A+96>>2],n=0|Zn[o[o[e>>2]+28>>2]](e),!((0|(e=o[n+4>>2]))<=0))){r:{if((0|(c=(0|e)<(0|(i=(0|(i=o[A+120>>2]))>(0|(b=(0|G(o[A+116>>2],e))/100|0))?i:b))?e:i))>0){for(e=0;b=o[n+12>>2]+((o[A+144>>2]+e|0)%o[n+4>>2]<<4)|0,u=o[b>>2],i=o[u+48>>2],l=o[b+4>>2],b=o[l+48>>2],!(!(w[i>>2]<=w[b+16>>2])|!(w[i+16>>2]>=w[b>>2])|!(w[i+4>>2]<=w[b+20>>2])|!(w[i+20>>2]>=w[b+4>>2]))&&w[i+8>>2]<=w[b+24>>2]&&w[i+24>>2]>=w[b+8>>2]||(i=o[A+96>>2],Zn[o[o[i>>2]+12>>2]](i,u,l,r),e=e-1|0,c=c-1|0),(0|c)>(0|(e=e+1|0)););if((0|(e=o[n+4>>2]))<=0)break r}o[A+144>>2]=(o[A+144>>2]+c|0)%(0|e);break A}o[A+144>>2]=0}if(a[A+154|0]=0,o[A+120>>2]=1,o[A+140>>2]=o[A+140>>2]+1,e=o[A+132>>2],i=o[A+128>>2],k=m(i?m(e>>>0)/m(i>>>0):0),w[A+136>>2]=k,o[A+132>>2]=e>>>1,o[A+128>>2]=i>>>1,i=0,e=0,l=0,S=f=(S=t+32|0)-16|0,t=o[A+96>>2],0|Zn[o[o[t>>2]+56>>2]](t)){if(b=A,A=o[A+96>>2],c=0|Zn[o[o[A>>2]+28>>2]](A),(0|(A=o[c+4>>2]))>=2&&(Wr(c,f+15|0,0,A-1|0),A=o[c+4>>2]),(0|A)>0){for(;u=o[c+12>>2]+(l<<4)|0,t=o[u+4>>2],!((0|(n=i))==(0|(i=o[u>>2]))&(0|e)==(0|t))&&(e=o[i+48>>2],n=o[t+48>>2],!(!(w[e>>2]<=w[n+16>>2])|!(w[e+16>>2]>=w[n>>2])|!(w[e+4>>2]<=w[n+20>>2])|!(w[e+20>>2]>=w[n+4>>2]))&&w[e+8>>2]<=w[n+24>>2]&&w[e+24>>2]>=w[n+8>>2])||(A=o[b+96>>2],Zn[o[o[A>>2]+32>>2]](A,u,r),o[u>>2]=0,o[u+4>>2]=0,s=s+1|0,A=o[c+4>>2]),e=t,(0|(l=l+1|0))<(0|A););if((0|A)>=2&&(Wr(c,f+14|0,0,A-1|0),A=o[c+4>>2]),r=A-s|0,!((0|s)>=0)){if((0|r)>o[c+8>>2]){if(i=0,(0|A)!=(0|s)&&(o[8488]=o[8488]+1,i=0|Zn[o[8290]](r<<4,16),!((0|(n=o[c+4>>2]))<=0)))for(e=0;t=(b=e<<4)+i|0,b=b+o[c+12>>2]|0,o[t>>2]=o[b>>2],o[t+4>>2]=o[b+4>>2],o[t+8>>2]=o[b+8>>2],o[t+12>>2]=o[b+12>>2],(0|n)!=(0|(e=e+1|0)););!(e=o[c+12>>2])||!e|!v[c+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[c+12>>2]=i,a[c+16|0]=1,o[c+8>>2]=r}if(e=0,t=0-s&3)for(;i=o[c+12>>2]+(A<<4)|0,o[i>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,A=A+1|0,(0|t)!=(0|(e=e+1|0)););if(!(s>>>0>4294967292))for(;i=(e=A<<4)+o[c+12>>2]|0,o[i>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,i=e+o[c+12>>2]|0,o[i+24>>2]=0,o[i+28>>2]=0,o[i+16>>2]=0,o[i+20>>2]=0,i=e+o[c+12>>2]|0,o[i+40>>2]=0,o[i+44>>2]=0,o[i+32>>2]=0,o[i+36>>2]=0,e=e+o[c+12>>2]|0,o[e+56>>2]=0,o[e+60>>2]=0,o[e+48>>2]=0,o[e+52>>2]=0,(0|r)!=(0|(A=A+4|0)););}A=r}o[c+4>>2]=A}S=f+16|0},Xi,Xi,function(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0);e=o[A+44>>2];A:if(A=o[A+4>>2]){if(e){a=(n=w[A+24>>2])>(i=w[e+24>>2])?n:i,t=(n=w[A+20>>2])>(i=w[e+20>>2])?n:i,c=(n=w[A+8>>2])<(i=w[e+8>>2])?n:i,b=(n=w[A+4>>2])<(i=w[e+4>>2])?n:i,u=(n=w[A+16>>2])>(i=w[e+16>>2])?n:i,i=w[A>>2],i=(n=w[e>>2])>i?i:n;break A}l=w[A+28>>2],a=w[A+24>>2],t=w[A+20>>2],u=w[A+16>>2],n=w[A+12>>2],c=w[A+8>>2],b=w[A+4>>2],i=w[A>>2]}else i=m(0),e&&(l=w[e+28>>2],a=w[e+24>>2],t=w[e+20>>2],u=w[e+16>>2],n=w[e+12>>2],c=w[e+8>>2],b=w[e+4>>2],i=w[e>>2]);w[r+12>>2]=n,w[r+8>>2]=c,w[r+4>>2]=b,w[r>>2]=i,w[f+12>>2]=l,w[f+8>>2]=a,w[f+4>>2]=t,w[f>>2]=u},function(A){o[16+(A|=0)>>2]==(0-o[A+56>>2]|0)&&(qf(A+4|0),qf(A+44|0),o[A+124>>2]=0,o[A+104>>2]=0,a[A+153|0]=0,a[A+154|0]=1,o[A+116>>2]=10,o[A+120>>2]=1,o[A+108>>2]=1,o[A+112>>2]=0,o[A+84>>2]=0,o[A+88>>2]=0,o[A+92>>2]=0,o[A+128>>2]=0,o[A+132>>2]=0,o[A+136>>2]=0,o[A+140>>2]=0,o[A+144>>2]=0,o[A+148>>2]=0)},Bn,en,vn,function(A,r,f){A|=0;var e=0;(0|(r|=0))!=(0|(f|=0))&&(e=o[o[A+4>>2]+96>>2],Zn[o[o[e>>2]+8>>2]](e,o[r+36>>2],o[f+36>>2]),A=o[A+4>>2],o[A+120>>2]=o[A+120>>2]+1)},function(A,r){r|=0,Zn[o[o[(A|=0)>>2]+8>>2]](A,r,o[o[A+8>>2]+48>>2])},function(A,r){r|=0,Zn[o[o[(A|=0)>>2]+12>>2]](A,r)},Ii,Ii,vn,zi,Se,vn,Se,Bn,function(){},Yf,function(A){Yf(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r,f){A|=0,r|=0,f|=0;var e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0;o[8492]=o[8492]+1;A:{r:{if(e=o[A+24>>2]){if(0|Zn[o[o[e>>2]+8>>2]](e,r,f))break r;break A}if(!(o[f+8>>2]&o[r+4>>2])|!(o[r+8>>2]&o[f+4>>2]))break A}i=o[r+12>>2]>o[f+12>>2],t=o[(u=i?r:f)+12>>2],c=o[(l=i?f:r)+12>>2],r=G((r=~((r=t<<16|c)<<15)+r|0)>>>10^r,9),s=(k=(r=~((r^=r>>>6)<<11)+r|0)>>>16^r)&(r=o[(f=A)+12>>2])-1;r:{if(-1!=(0|(A=o[o[f+40>>2]+(s<<2)>>2])))for(b=o[f+60>>2],e=o[f+16>>2];;){if((0|c)==o[o[(i=(n=A<<4)+e|0)>>2]+12>>2]&(0|t)==o[o[4+(e+n|0)>>2]+12>>2])break r;if(-1==(0|(A=o[b+(A<<2)>>2])))break}if(A=r,(0|(i=c=o[f+8>>2]))==(0|r)&&(i=r,!((0|(e=r?r<<1:1))<=(0|r)))){if(e?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](e<<4,16),A=o[f+8>>2]):(i=0,A=r),(0|(t=A))>0)for(A=0;b=(n=A<<4)+i|0,n=n+o[f+16>>2]|0,o[b>>2]=o[n>>2],o[b+4>>2]=o[n+4>>2],o[b+8>>2]=o[n+8>>2],o[b+12>>2]=o[n+12>>2],(0|t)!=(0|(A=A+1|0)););!(A=o[f+16>>2])||!A|!v[f+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[f+16>>2]=i,a[f+20|0]=1,o[f+12>>2]=e,i=o[f+8>>2],A=e}o[f+8>>2]=i+1,i=(t=o[f+16>>2])+(c<<4)|0,(e=o[f+68>>2])&&(Zn[o[o[e>>2]+8>>2]](e,l,u),A=o[f+12>>2]),(0|A)>(0|r)&&(_A(f),s=o[f+12>>2]-1&k),r=o[l+12>>2]>2],o[i>>2]=r?l:u,o[8+(A=t+(c<<4)|0)>>2]=0,o[A+12>>2]=0,o[A+4>>2]=r?u:l,A=o[f+40>>2]+(s<<2)|0,o[o[f+60>>2]+(c<<2)>>2]=o[A>>2],o[A>>2]=c}}return 0|i},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0;o[8491]=o[8491]+1,i=o[r+12>>2]>o[f+12>>2],n=o[(t=i?r:f)+12>>2],a=o[(c=i?f:r)+12>>2],r=G((r=~((r=n<<16|a)<<15)+r|0)>>>10^r,9),r=~((r^=r>>>6)<<11)+r|0,b=o[A+12>>2]-1&(r>>>16^r);A:if(-1!=(0|(f=o[o[A+40>>2]+(b<<2)>>2]))){for(u=o[A+60>>2],i=o[A+16>>2];;){if(!((0|a)==o[o[(r=i+(f<<4)|0)>>2]+12>>2]&(0|n)==o[o[r+4>>2]+12>>2])){if(-1!=(0|(f=o[(f<<2)+u>>2])))continue;break A}break}Zn[o[o[A>>2]+32>>2]](A,r,e),l=o[12+(i+(f<<4)|0)>>2];r:{if(n=o[A+40>>2]+(b<<2)|0,(0|(f=o[n>>2]))!=(0|(i=r-o[A+16>>2]>>4))){for(a=o[A+60>>2];(0|i)!=(0|(f=o[a+((r=f)<<2)>>2])););if(-1!=(0|r)){f=r<<2,r=o[A+60>>2],o[f+r>>2]=o[r+(i<<2)>>2];break r}}o[n>>2]=o[o[A+60>>2]+(i<<2)>>2]}if(n=o[A+8>>2]-1|0,(r=o[A+68>>2])&&Zn[o[o[r>>2]+12>>2]](r,c,t,e),(0|i)!=(0|n)){r:{if(t=o[A+16>>2],r=o[o[4+(e=t+(n<<4)|0)>>2]+12>>2]<<16|o[o[e>>2]+12>>2],r=G((r=~(r<<15)+r|0)>>>10^r,9),r=~((r^=r>>>6)<<11)+r|0,c=o[A+12>>2]-1&(r>>>16^r),a=o[A+40>>2]+(c<<2)|0,(0|n)!=(0|(f=o[a>>2]))){for(b=o[A+60>>2];(0|n)!=(0|(f=o[b+((r=f)<<2)>>2])););if(-1!=(0|r)){f=r<<2,r=o[A+60>>2],o[f+r>>2]=o[r+(n<<2)>>2];break r}}o[a>>2]=o[o[A+60>>2]+(n<<2)>>2]}f=o[e+4>>2],o[(r=t+(i<<4)|0)>>2]=o[e>>2],o[r+4>>2]=f,f=o[e+12>>2],o[r+8>>2]=o[e+8>>2],o[r+12>>2]=f,r=o[A+40>>2]+(c<<2)|0,o[o[A+60>>2]+(i<<2)>>2]=o[r>>2],o[r>>2]=i}o[A+8>>2]=o[A+8>>2]-1}return 0|l},function(A,r,f){var e;A|=0,r|=0,f|=0,S=e=S-16|0,o[e+12>>2]=r,o[e+8>>2]=12772,Zn[o[o[A>>2]+48>>2]](A,e+8|0,f),S=e+16|0},yi,yi,fn,function(A,r,f){A|=0,r|=0,(f|=0)&&(A=o[r+8>>2])&&(Zn[o[o[A>>2]>>2]](A),Zn[o[o[f>>2]+60>>2]](f,o[r+8>>2]),o[r+8>>2]=0)},ji,function(A,r,f){var e;A|=0,r|=0,f|=0,S=e=S-16|0,o[e+12>>2]=f,o[e+8>>2]=A,o[e+4>>2]=r,o[e>>2]=12600,Zn[o[o[A>>2]+48>>2]](A,e,f),S=e+16|0},function(A,r){r|=0,o[24+(A|=0)>>2]=r},function(A,r,f){A|=0,r|=0,f|=0;var e,i=0,n=0;if(S=e=S-16|0,Zn[o[8294]](3960),o[A+8>>2]>0)for(;n=o[A+16>>2]+(i<<4)|0,0|Zn[o[o[r>>2]+8>>2]](r,n)?(Zn[o[o[A>>2]+12>>2]](A,o[n>>2],o[n+4>>2],f),o[8490]=o[8490]-1):i=i+1|0,o[A+8>>2]>(0|i););Zn[o[8295]](),S=e+16|0},function(A,r,f){A|=0,r|=0,f|=0;var e,i=0,n=0,a=0;o[8493]=o[8493]+1,i=o[r+12>>2]>o[f+12>>2],e=o[(i?r:f)+12>>2],i=o[(i?f:r)+12>>2],r=G((r=~((r=e<<16|i)<<15)+r|0)>>>10^r,9),r=~((r^=r>>>6)<<11)+r|0;A:{if(!((0|(r=o[A+12>>2]-1&(r>>>16^r)))>=o[A+32>>2])&&-1!=(0|(f=o[o[A+40>>2]+(r<<2)>>2])))for(a=o[A+60>>2],A=o[A+16>>2];;){if((0|i)==o[o[(r=A+(n=f<<4)|0)>>2]+12>>2]&o[o[4+(A+n|0)>>2]+12>>2]==(0|e))break A;if(-1==(0|(f=o[(f<<2)+a>>2])))break}r=0}return 0|r},cn,function(A,r){r|=0,o[68+(A|=0)>>2]=r},function(A,r){A|=0,r|=0;var f,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0;if(S=f=S-32|0,o[f+24>>2]=0,o[f+16>>2]=0,o[f+20>>2]=0,a[f+28|0]=1,!(o[A+8>>2]<=0)){for(;;){if(i=o[A+16>>2]+(u<<4)|0,o[f+20>>2]==(0|e)&&!((0|(n=e?e<<1:1))<=(0|e))){if(c=0,b=0,n&&(o[8488]=o[8488]+1,b=0|Zn[o[8290]](n<<4,16)),(0|e)>0)for(;l=(t=c<<4)+b|0,t=t+o[f+24>>2]|0,o[l>>2]=o[t>>2],o[l+4>>2]=o[t+4>>2],o[l+8>>2]=o[t+8>>2],o[l+12>>2]=o[t+12>>2],(0|(c=c+1|0))!=(0|e););!(e=o[f+24>>2])||!e|!v[f+28|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[f+24>>2]=b,a[f+28|0]=1,o[f+20>>2]=n,e=o[f+16>>2]}if(e=o[f+24>>2]+(e<<4)|0,o[e>>2]=o[i>>2],o[e+4>>2]=o[i+4>>2],o[e+8>>2]=o[i+8>>2],o[e+12>>2]=o[i+12>>2],e=(n=o[f+16>>2])+1|0,o[f+16>>2]=e,!((0|(u=u+1|0))>2]))break}if(i=0,!((0|n)<0)){if(l=1&(b=n+1|0),c=o[f+24>>2],n)for(b&=-2,n=0;u=(t=i<<4)+c|0,Zn[o[o[A>>2]+12>>2]](A,o[u>>2],o[u+4>>2],r),t=c+(16|t)|0,Zn[o[o[A>>2]+12>>2]](A,o[t>>2],o[t+4>>2],r),i=i+2|0,(0|b)!=(0|(n=n+2|0)););l&&(i=c+(i<<4)|0,Zn[o[o[A>>2]+12>>2]](A,o[i>>2],o[i+4>>2],r))}}if(o[A+52>>2]>0){for(r=o[A+60>>2],i=0;o[r+(i<<2)>>2]=-1,(0|(i=i+1|0))>2];);e=o[f+16>>2]}if((0|e)>=2&&(Wr(f+12|0,f+11|0,0,e-1|0),e=o[f+16>>2]),(0|e)>0)for(i=0;r=o[f+24>>2]+(i<<4)|0,Zn[o[o[A>>2]+8>>2]](A,o[r>>2],o[r+4>>2]),(0|(i=i+1|0))>2];);!(A=o[f+24>>2])||!A|!v[f+28|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),S=f+32|0},en,vn,function(A,r){r|=0;var f=0;return(0|(f=o[4+(A|=0)>>2]))!=o[r>>2]&(0|f)!=o[r+4>>2]||(f=o[A+8>>2],Zn[o[o[f>>2]+32>>2]](f,r,o[A+12>>2])),0},vn,function(A,r){return r|=0,(0|(A=o[4+(A|=0)>>2]))==o[r>>2]|(0|A)==o[r+4>>2]},function(A,r,f){A|=0,r|=0,f|=0;var e,i,n,a=0,t=m(0);S=e=S-96|0,i=o[o[A>>2]>>2],n=o[o[A+4>>2]>>2],0|Zn[o[o[r>>2]+24>>2]](r,i,n)&&(a=o[i+192>>2],o[e+88>>2]=-1,o[e+92>>2]=-1,o[e+84>>2]=i+4,o[e+80>>2]=i,o[e+76>>2]=a,o[e+72>>2]=0,a=o[n+192>>2],o[e+64>>2]=-1,o[e+68>>2]=-1,o[e+60>>2]=n+4,o[e+56>>2]=n,o[e+52>>2]=a,o[e+48>>2]=0,(o[A+8>>2]||(r=0|Zn[o[o[r>>2]+8>>2]](r,e+72|0,e+48|0,0,1),o[A+8>>2]=r,r))&&(o[32+(r=e+12|0)>>2]=0,o[r+12>>2]=e+48,o[r+8>>2]=e+72,o[r+4>>2]=0,o[r>>2]=17976,A=o[A+8>>2],a=o[A>>2],1!=o[f+8>>2]?(t=m(Zn[o[a+12>>2]](A,i,n,f,r)))>2]&&(w[f+12>>2]=t):Zn[o[a+8>>2]](A,e+72|0,e+48|0,f,r))),S=e+96|0},he,function(A){he(A|=0),DA(A)},function(A,r,f,e,i){var n;return A|=0,r|=0,f|=0,e|=0,i|=0,S=n=S-16|0,o[n+12>>2]=e,o[n+8>>2]=A,A=o[(((1==(0|i)?76:5260)+A|0)+G(o[o[r+4>>2]+4>>2],144)|0)+(o[o[f+4>>2]+4>>2]<<2)>>2],A=0|Zn[o[o[A>>2]+8>>2]](A,n+8|0,r,f),S=n+16|0,0|A},function(A,r,f){A|=0,r|=0,f|=0;var e,i=0,n=0,t=0,c=m(0),b=0,u=0,l=m(0),s=0,k=m(0),d=0,h=0;S=e=S-16|0,o[8494]=o[8494]+1,2&o[A+4>>2]?(i=o[r+192>>2],c=m(Zn[o[o[i>>2]+20>>2]](i,w[8297])),w[e+12>>2]=c,i=o[f+192>>2],l=m(Zn[o[o[i>>2]+20>>2]](i,w[8297])),w[e+8>>2]=l,i=c>2],k=w[f+184>>2],c=w[r+184>>2],n=o[A+72>>2];A:{if(i=o[n+12>>2])o[n+12>>2]=o[i>>2],o[n+8>>2]=o[n+8>>2]-1;else{if(i=0,4&v[A+4|0])break A;o[8488]=o[8488]+1,i=0|Zn[o[8290]](868,16)}if(o[i>>2]=1025,o[i+120>>2]=0,o[i+124>>2]=0,o[i+128>>2]=0,o[i+132>>2]=0,o[i+136>>2]=0,o[i+140>>2]=0,o[i+144>>2]=0,o[i+148>>2]=0,o[i+152>>2]=0,o[i+156>>2]=0,o[i+160>>2]=0,o[i+164>>2]=0,o[i+168>>2]=0,o[i+328>>2]=0,o[i+332>>2]=0,o[i+336>>2]=0,o[i+340>>2]=0,o[i+344>>2]=0,o[i+348>>2]=0,o[i+352>>2]=0,o[i+356>>2]=0,o[i+360>>2]=0,o[i+364>>2]=0,o[i+368>>2]=0,o[i+372>>2]=0,o[i+376>>2]=0,o[i+536>>2]=0,o[i+540>>2]=0,o[i+544>>2]=0,o[i+548>>2]=0,o[i+552>>2]=0,o[i+556>>2]=0,o[i+560>>2]=0,o[i+564>>2]=0,o[i+568>>2]=0,o[i+572>>2]=0,o[i+576>>2]=0,o[i+580>>2]=0,o[i+584>>2]=0,o[i+792>>2]=0,o[i+784>>2]=0,o[i+788>>2]=0,o[i+776>>2]=0,o[i+780>>2]=0,o[i+768>>2]=0,o[i+772>>2]=0,o[i+760>>2]=0,o[i+764>>2]=0,o[i+752>>2]=0,o[i+756>>2]=0,o[i+744>>2]=0,o[i+748>>2]=0,o[i+836>>2]=r,o[i+840>>2]=f,o[i+844>>2]=0,w[i+848>>2]=l,w[i+852>>2]=c>2],o[i+864>>2]=t,o[A+16>>2]==(0|t)&&!((0|(s=t?t<<1:1))<=(0|t))){if(s?(o[8488]=o[8488]+1,r=0|Zn[o[8290]](s<<2,16),t=o[A+12>>2]):r=0,!((0|t)<=0)){if(f=0,t>>>0>=4)for(h=-4&t;o[(b=f<<2)+r>>2]=o[b+o[A+20>>2]>>2],o[(n=4|b)+r>>2]=o[n+o[A+20>>2]>>2],o[(n=8|b)+r>>2]=o[n+o[A+20>>2]>>2],o[(n=12|b)+r>>2]=o[n+o[A+20>>2]>>2],f=f+4|0,(0|h)!=(0|(u=u+4|0)););if(n=3&t)for(;o[(u=f<<2)+r>>2]=o[u+o[A+20>>2]>>2],f=f+1|0,(0|n)!=(0|(d=d+1|0)););}!(f=o[A+20>>2])|!v[A+24|0]||(f&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),t=o[A+12>>2]),o[A+20>>2]=r,a[A+24|0]=1,o[A+16>>2]=s}o[o[A+20>>2]+(t<<2)>>2]=i,o[A+12>>2]=t+1}return S=e+16|0,0|i},function(A,r){A|=0,r|=0;var f,e,i,n,a,t=0,c=0;if(o[8494]=o[8494]-1,Zn[o[o[A>>2]+20>>2]](A,r),f=(t=o[r+864>>2])<<2,e=o[A+20>>2],n=o[(c=f+e|0)>>2],a=c,i=(c=o[A+12>>2]-1|0)<<2,o[a>>2]=o[e+i>>2],o[o[A+20>>2]+i>>2]=n,o[o[o[A+20>>2]+f>>2]+864>>2]=t,o[A+12>>2]=c,A=o[A+72>>2],!((t=o[A+16>>2])>>>0>r>>>0|t+G(o[A>>2],o[A+4>>2])>>>0<=r>>>0))return o[r>>2]=o[A+12>>2],o[A+12>>2]=r,void(o[A+8>>2]=o[A+8>>2]+1);r&&(o[8489]=o[8489]+1,Zn[o[8291]](r))},function(A,r){A|=0;var f=0,e=0,i=0,n=0;if(S=A=S-16|0,(0|(f=o[844+(r|=0)>>2]))>0)for(;f=G(e,208)+r|0,(i=o[f+120>>2])&&(n=o[8785])&&(Zn[0|n](i),o[f+120>>2]=0),(0|(f=o[r+844>>2]))>(0|(e=e+1|0)););f&&(f=o[8788])&&(o[A+12>>2]=r,Zn[0|f](A+12|0)),o[r+844>>2]=0,S=A+16|0},function(A,r,f){A|=0,f|=0;A:{r:{f:switch(o[220+(r|=0)>>2]-2|0){case 0:case 3:break f;default:break r}switch(A=0,o[f+220>>2]-2|0){case 0:case 3:break A;default:break r}}if(!o[r+280>>2]||0|Zn[o[o[r>>2]+12>>2]](r,f)){if(A=1,!o[f+280>>2])break A;if(0|Zn[o[o[f>>2]+12>>2]](f,r))break A}A=0}return 0|A},function(A,r,f){if(A|=0,f|=0,A=0,!(4&(r=o[204+(r|=0)>>2])||4&(f=o[f+204>>2]))){if(!(3&r))return 1;A=!(3&f)}return 0|A},function(A,r,f,e){var i;A|=0,r|=0,f|=0,e|=0,S=i=S-16|0,o[i+12>>2]=A,o[i+8>>2]=f,o[i+4>>2]=13068,Zn[o[o[r>>2]+48>>2]](r,i+4|0,e),S=i+16|0},function(A){return o[12+(A|=0)>>2]},function(A,r){return r|=0,o[o[20+(A|=0)>>2]+(r<<2)>>2]},function(A){return 0|(o[12+(A|=0)>>2]?o[A+20>>2]:0)},xi,xi,function(A,r){var f;return r|=0,A=o[68+(A|=0)>>2],(f=o[A+12>>2])?(o[A+12>>2]=o[f>>2],o[A+8>>2]=o[A+8>>2]-1,0|f):(o[8488]=o[8488]+1,0|Zn[o[8290]](r,16))},function(A,r){A|=0;var f=0;if((r|=0)&&(A=o[A+68>>2],!((f=o[A+16>>2])>>>0>r>>>0|G(o[A>>2],o[A+4>>2])+f>>>0<=r>>>0)))return o[r>>2]=o[A+12>>2],o[A+12>>2]=r,void(o[A+8>>2]=o[A+8>>2]+1);r&&(o[8489]=o[8489]+1,Zn[o[8291]](r))},vn,function(A,r){var f;return f=r|=0,r=o[8+(A|=0)>>2],Zn[o[r+64>>2]](f,r,o[A+4>>2]),0},se,function(A){se(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r){r|=0,o[200+(A|=0)>>2]=r,o[A+192>>2]=r,o[A+304>>2]=o[A+304>>2]+1},function(A,r){r|=0;var f,e=0;e=f=o[288+(A|=0)>>2];A:if(!((0|f)<=0)){for(A=o[A+296>>2],e=0;;){if(o[A+(e<<2)>>2]==(0|r))break A;if((0|f)==(0|(e=e+1|0)))break}e=f}return(0|e)>=(0|f)|0},function(){return 264},nr,function(A,r){var f,e,i=0,n=0,a=0,t=0;n=r|=0,a=0|Zn[o[o[(A|=0)>>2]+16>>2]](A),t=1,i=o[o[r>>2]+16>>2],e=0|Zn[i](0|n,0|a,0|t),t=r,a=e,n=0|Zn[o[o[A>>2]+20>>2]](A,o[e+8>>2],r),f=A,i=o[o[r>>2]+20>>2],Zn[i](0|t,0|a,0|n,1245859651,0|f)},Ff,function(A){Ff(A|=0),DA(A)},function(A){A|=0;var r,f=0,e=m(0),i=0,n=m(0),t=m(0),c=0,b=m(0),u=m(0),l=m(0),s=m(0),k=0;if(S=r=S-16|0,Zn[o[8294]](4699),(0|(i=o[A+8>>2]))>0)for(;;){c=o[o[A+16>>2]+(k<<2)>>2];A:{r:if(!v[A+76|0])switch(o[c+220>>2]-2|0){case 0:case 3:break A;default:break r}S=f=S+-64|0,i=o[c+192>>2],Zn[o[o[i>>2]+8>>2]](i,c+4|0,f+48|0,f+32|0),e=w[8297],s=m(w[f+48>>2]-e),w[f+48>>2]=s,b=m(w[f+52>>2]-e),w[f+52>>2]=b,t=m(w[f+56>>2]-e),w[f+56>>2]=t,n=m(e+w[f+32>>2]),w[f+32>>2]=n,u=m(e+w[f+36>>2]),w[f+36>>2]=u,l=m(e+w[f+40>>2]),w[f+40>>2]=l,3&v[c+204|0]|!v[A+44|0]|2!=o[c+252>>2]||(i=o[c+192>>2],Zn[o[o[i>>2]+8>>2]](i,c+68|0,f+16|0,f),b=m(w[f+16>>2]-e),w[f+16>>2]=b,t=m(w[f+20>>2]-e),w[f+20>>2]=t,n=m(w[f+24>>2]-e),w[f+24>>2]=n,u=m(e+w[f>>2]),w[f>>2]=u,l=m(e+w[f+4>>2]),w[f+4>>2]=l,e=m(e+w[f+8>>2]),w[f+8>>2]=e,b<(s=w[f+48>>2])&&(w[f+48>>2]=b,s=b),t<(b=w[f+52>>2])&&(w[f+52>>2]=t,b=t),n<(t=w[f+56>>2])&&(w[f+56>>2]=n,t=n),(n=w[f+28>>2])>2]&&(w[f+60>>2]=n),u>(n=w[f+32>>2])&&(w[f+32>>2]=u,n=u),l>(u=w[f+36>>2])&&(w[f+36>>2]=l,u=l),e>(l=w[f+40>>2])&&(w[f+40>>2]=e,l=e),(e=w[f+12>>2])>w[f+44>>2]&&(w[f+44>>2]=e)),i=o[A+68>>2],1&a[c+204|0]||(e=m(l-t),t=m(e*e),e=m(n-s),n=m(e*e),e=m(u-b),m(t+m(n+m(e*e)))>2]+16>>2]](i,o[c+188>>2],f+48|0,f+32|0,o[A+24>>2]):(4!=(-2&o[c+220>>2])&&(o[c+220>>2]=5),v[33980]||(i=o[A+72>>2])&&(a[33980]=1,Zn[o[o[i>>2]+44>>2]](i,5921),i=o[A+72>>2],Zn[o[o[i>>2]+44>>2]](i,10468),i=o[A+72>>2],Zn[o[o[i>>2]+44>>2]](i,10545),i=o[A+72>>2],Zn[o[o[i>>2]+44>>2]](i,10536))),S=f- -64|0,i=o[A+8>>2]}if(!((0|(k=k+1|0))<(0|i)))break}Zn[o[8295]](),S=r+16|0},function(A){var r,f;A|=0,S=r=S-16|0,Zn[o[8294]](4017),f=o[A+68>>2],Zn[o[o[f>>2]+32>>2]](f,o[A+24>>2]),Zn[o[8295]](),S=r+16|0},function(A,r){r|=0,o[72+(A|=0)>>2]=r},xi,gA,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=0,a=m(0),t=m(0),c=0,b=m(0),u=0,l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=0,g=0,X=m(0),D=m(0),C=0,J=0,x=0,y=0,M=0,H=m(0),I=m(0),T=m(0),U=0,j=m(0),z=0;S=i=S-144|0,0|Zn[o[o[A>>2]+20>>2]](A)&&(n=0|Zn[o[o[A>>2]+20>>2]](A),32768&Zn[o[o[n>>2]+56>>2]](n)&&(n=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[n>>2]+64>>2]](n,r,m(.10000000149011612))));A:{r:{f:{e:{i:{n:{a:{t:{o:{c:switch(0|(n=o[f+4>>2])){case 0:break o;case 31:break c;case 28:break f;case 13:break e;case 11:break i;case 10:break n;case 9:break a;case 8:break t;default:break r}if((0|(n=o[f+24>>2]))<=0)break A;for(;u=n-1|0,c=o[f+32>>2]+G(u,80)|0,V=o[c+64>>2],v=w[c+56>>2],h=w[c+48>>2],N=w[c+52>>2],p=w[c+32>>2],F=w[c>>2],R=w[c+16>>2],Y=w[c+36>>2],B=w[c+4>>2],Z=w[c+20>>2],Q=w[c+40>>2],X=w[c+8>>2],D=w[c+24>>2],H=w[r+48>>2],I=w[r+52>>2],T=w[r+56>>2],a=w[r+8>>2],t=w[r>>2],b=w[r+4>>2],l=w[r+24>>2],s=w[r+16>>2],k=w[r+20>>2],E=w[r+40>>2],W=w[r+32>>2],d=w[r+36>>2],o[i+60>>2]=0,o[i+44>>2]=0,o[i+28>>2]=0,o[i+12>>2]=0,w[i+40>>2]=m(Q*E)+m(m(X*W)+m(D*d)),w[i+36>>2]=m(Y*E)+m(m(B*W)+m(Z*d)),w[i+32>>2]=m(p*E)+m(m(F*W)+m(R*d)),w[i+24>>2]=m(Q*l)+m(m(X*s)+m(D*k)),w[i+20>>2]=m(Y*l)+m(m(B*s)+m(Z*k)),w[i+16>>2]=m(p*l)+m(m(F*s)+m(R*k)),w[i+8>>2]=m(Q*a)+m(m(X*t)+m(D*b)),w[i+4>>2]=m(Y*a)+m(m(B*t)+m(Z*b)),w[i>>2]=m(p*a)+m(m(F*t)+m(R*b)),w[i+56>>2]=T+m(m(v*E)+m(m(h*W)+m(N*d))),w[i+52>>2]=I+m(m(v*l)+m(m(h*s)+m(N*k))),w[i+48>>2]=H+m(m(v*a)+m(m(h*t)+m(N*b))),Zn[o[o[A>>2]+28>>2]](A,i,V,e),c=n>>>0>1,n=u,c;);break A}n=o[f+48>>2],o[i+8>>2]=o[f+44>>2],o[i+12>>2]=n,n=o[f+40>>2],o[i>>2]=o[f+36>>2],o[i+4>>2]=n,a=m(Zn[o[o[f>>2]+48>>2]](f)),t=m(Zn[o[o[f>>2]+48>>2]](f)),b=m(m(Zn[o[o[f>>2]+48>>2]](f))+w[i+8>>2]),w[i+8>>2]=b,a=m(a+w[i>>2]),w[i>>2]=a,t=m(t+w[i+4>>2]),w[i+4>>2]=t,A=0|Zn[o[o[A>>2]+20>>2]](A),o[i+140>>2]=0,w[i+136>>2]=-b,w[i+132>>2]=-t,w[i+128>>2]=-a,Zn[o[o[A>>2]+80>>2]](A,i+128|0,i,r,e);break A}a=m(Zn[o[o[f>>2]+48>>2]](f)),A=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[A>>2]+24>>2]](A,a,r,e);break A}if((0|(n=o[f+100>>2]))<=0)break A;for(;u=n-1|0,c=o[f+108>>2]+(u<<4)|0,a=w[c+8>>2],t=w[c>>2],b=w[c+4>>2],c=0|Zn[o[o[A>>2]+20>>2]](A),p=w[o[f+128>>2]+(u<<2)>>2],F=w[r+48>>2],R=w[r+52>>2],Y=w[r+56>>2],l=w[r+8>>2],s=w[r>>2],k=w[r+4>>2],E=w[r+24>>2],W=w[r+16>>2],d=w[r+20>>2],v=w[r+40>>2],h=w[r+32>>2],N=w[r+36>>2],o[i+60>>2]=0,o[i+44>>2]=0,o[i+28>>2]=0,o[i+12>>2]=0,B=m(h*m(0)),Z=m(N*m(0)),w[i+40>>2]=v+m(B+Z),Q=m(v*m(0)),w[i+36>>2]=Q+m(B+N),w[i+32>>2]=Q+m(h+Z),B=m(W*m(0)),Z=m(d*m(0)),w[i+24>>2]=E+m(B+Z),Q=m(E*m(0)),w[i+20>>2]=Q+m(B+d),w[i+16>>2]=Q+m(W+Z),B=m(s*m(0)),Z=m(k*m(0)),w[i+8>>2]=l+m(B+Z),Q=m(l*m(0)),w[i+4>>2]=Q+m(B+k),w[i>>2]=Q+m(s+Z),w[i+56>>2]=Y+m(m(a*v)+m(m(t*h)+m(b*N))),w[i+52>>2]=R+m(m(a*E)+m(m(t*W)+m(b*d))),w[i+48>>2]=F+m(m(a*l)+m(m(t*s)+m(b*k))),Zn[o[o[c>>2]+24>>2]](c,p,i,e),c=n>>>0>1,n=u,c;);break A}n=o[f+60>>2],a=w[(n<<2)+(f=f+36|0)>>2],t=w[f+((n+2|0)%3<<2)>>2],A=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[A>>2]+84>>2]](A,t,a,n,r,e);break A}n=o[f+76>>2],a=w[f+68>>2],t=w[f+64>>2],A=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[A>>2]+92>>2]](A,t,a,n,r,e);break A}n=o[f+60>>2],a=m(Zn[o[o[f>>2]+92>>2]](f)),u=o[f+48>>2],o[i+8>>2]=o[f+44>>2],o[i+12>>2]=u,u=o[f+40>>2],o[i>>2]=o[f+36>>2],o[i+4>>2]=u,t=m(Zn[o[o[f>>2]+48>>2]](f)),b=m(Zn[o[o[f>>2]+48>>2]](f)),U=i,j=m(m(Zn[o[o[f>>2]+48>>2]](f))+w[i+8>>2]),w[U+8>>2]=j,w[i>>2]=t+w[i>>2],w[i+4>>2]=b+w[i+4>>2],t=w[(n<<2)+i>>2],A=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[A>>2]+88>>2]](A,a,t,n,r,e);break A}a=w[f+72>>2],A=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[A>>2]+96>>2]](A,f+56|0,a,r,e);break A}r:if(!((0|n)>6))if(V=o[f+60>>2]){if(o[V+28>>2]<=0)break r;for(;;){if(c=o[V+36>>2],C=G(J,36),(0|(x=o[4+(n=c+C|0)>>2]))<=0)a=m(0),t=m(0),b=m(0);else for(u=o[(o[n+12>>2]+(x<<2)|0)-4>>2],b=m(0),n=0,t=m(0),a=m(0);g=(y=(c=o[o[12+(c+C|0)>>2]+(n<<2)>>2])<<4)+o[V+16>>2]|0,Q=w[g>>2],X=w[g+4>>2],D=w[g+8>>2],g=0|Zn[o[o[A>>2]+20>>2]](A),M=o[V+16>>2],l=w[8+(u=M+(u<<4)|0)>>2],s=w[u>>2],k=w[u+4>>2],E=w[r+48>>2],W=w[r+8>>2],d=w[r>>2],v=w[r+4>>2],h=w[r+52>>2],N=w[r+24>>2],p=w[r+16>>2],F=w[r+20>>2],R=w[r+56>>2],Y=w[r+40>>2],B=w[r+32>>2],Z=w[r+36>>2],o[i+12>>2]=0,w[i+8>>2]=R+m(m(l*Y)+m(m(s*B)+m(k*Z))),w[i+4>>2]=h+m(m(l*N)+m(m(s*p)+m(k*F))),w[i>>2]=E+m(m(l*W)+m(m(s*d)+m(k*v))),l=w[8+(u=y+M|0)>>2],s=w[u>>2],k=w[u+4>>2],o[i+140>>2]=0,w[i+136>>2]=R+m(m(l*Y)+m(m(s*B)+m(Z*k))),w[i+132>>2]=h+m(m(l*N)+m(m(s*p)+m(F*k))),w[i+128>>2]=E+m(m(l*W)+m(m(s*d)+m(v*k))),Zn[o[o[g>>2]+16>>2]](g,i,i+128|0,e),b=m(b+D),t=m(t+X),a=m(a+Q),u=c,n=n+1|0,c=o[V+36>>2],(0|n)>2];);if(n=0|Zn[o[o[A>>2]+20>>2]](A),16384&Zn[o[o[n>>2]+56>>2]](n)&&(o[i+8>>2]=0,o[i+12>>2]=0,o[i>>2]=1065353216,o[i+4>>2]=1065353216,n=o[V+36>>2]+C|0,B=w[n+28>>2],Z=w[n+20>>2],Q=w[n+24>>2],n=0|Zn[o[o[A>>2]+20>>2]](A),l=w[r+48>>2],s=w[r+8>>2],k=w[r>>2],E=w[r+4>>2],W=w[r+52>>2],d=w[r+24>>2],v=w[r+16>>2],h=w[r+20>>2],N=w[r+56>>2],p=w[r+40>>2],F=w[r+32>>2],R=w[r+36>>2],o[i+140>>2]=0,Y=m(m(1)/m(0|x)),b=m(Y*b),a=m(Y*a),t=m(Y*t),w[i+136>>2]=N+m(m(p*b)+m(m(F*a)+m(R*t))),w[i+132>>2]=W+m(m(b*d)+m(m(a*v)+m(t*h))),w[i+128>>2]=l+m(m(b*s)+m(m(a*k)+m(t*E))),o[i+124>>2]=0,b=m(b+B),a=m(a+Z),t=m(t+Q),w[i+120>>2]=N+m(m(p*b)+m(m(F*a)+m(R*t))),w[i+116>>2]=W+m(m(b*d)+m(m(a*v)+m(t*h))),w[i+112>>2]=l+m(m(b*s)+m(m(a*k)+m(t*E))),Zn[o[o[n>>2]+16>>2]](n,i+128|0,i+112|0,i)),!((0|(J=J+1|0))>2]))break}}else if(!((0|Zn[o[o[f>>2]+100>>2]](f))<=0))for(n=0;Zn[o[o[f>>2]+104>>2]](f,n,i,i+128|0),a=w[r+48>>2],t=w[r+8>>2],b=w[r>>2],l=w[r+4>>2],s=w[r+52>>2],k=w[r+24>>2],E=w[r+16>>2],W=w[r+20>>2],d=w[r+56>>2],v=w[r+40>>2],h=w[r+32>>2],N=w[r+36>>2],o[i+124>>2]=0,p=w[i+8>>2],F=w[i>>2],R=w[i+4>>2],w[i+120>>2]=d+m(m(v*p)+m(m(h*F)+m(N*R))),w[i+116>>2]=s+m(m(p*k)+m(m(F*E)+m(R*W))),w[i+112>>2]=a+m(m(p*t)+m(m(F*b)+m(R*l))),o[i+108>>2]=0,B=d,d=w[i+136>>2],Z=m(v*d),v=w[i+128>>2],Q=m(h*v),h=w[i+132>>2],w[i+104>>2]=B+m(Z+m(Q+m(N*h))),w[i+100>>2]=s+m(m(d*k)+m(m(v*E)+m(W*h))),w[i+96>>2]=a+m(m(d*t)+m(m(v*b)+m(l*h))),u=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[u>>2]+16>>2]](u,i+112|0,i+96|0,e),n=n+1|0,(0|Zn[o[o[f>>2]+100>>2]](f))>(0|n););(n=o[f+4>>2])-21>>>0<=8&&(o[i+136>>2]=1566444395,o[i+140>>2]=0,o[i+128>>2]=1566444395,o[i+132>>2]=1566444395,o[i+120>>2]=-581039253,o[i+124>>2]=0,o[i+112>>2]=-581039253,o[i+116>>2]=-581039253,U=i,z=0|Zn[o[o[A>>2]+20>>2]](A),o[U+8>>2]=z,o[i+4>>2]=14992,o[i>>2]=14968,n=o[e+12>>2],o[i+20>>2]=o[e+8>>2],o[i+24>>2]=n,n=o[e+4>>2],o[i+12>>2]=o[e>>2],o[i+16>>2]=n,n=o[r+12>>2],o[i+36>>2]=o[r+8>>2],o[i+40>>2]=n,n=o[r+4>>2],o[i+28>>2]=o[r>>2],o[i+32>>2]=n,n=o[r+20>>2],o[i+44>>2]=o[r+16>>2],o[i+48>>2]=n,n=o[r+28>>2],o[i+52>>2]=o[r+24>>2],o[i+56>>2]=n,n=o[r+44>>2],o[i+68>>2]=o[r+40>>2],o[i+72>>2]=n,n=o[r+36>>2],o[i+60>>2]=o[r+32>>2],o[i+64>>2]=n,n=o[r+52>>2],o[i+76>>2]=o[r+48>>2],o[i+80>>2]=n,n=o[r+60>>2],o[i+84>>2]=o[r+56>>2],o[i+88>>2]=n,Zn[o[o[f>>2]+64>>2]](f,i,i+112|0,i+128|0),n=o[f+4>>2]),3==(0|n)&&(o[i+136>>2]=1566444395,o[i+140>>2]=0,o[i+128>>2]=1566444395,o[i+132>>2]=1566444395,o[i+120>>2]=-581039253,o[i+124>>2]=0,o[i+112>>2]=-581039253,o[i+116>>2]=-581039253,U=i,z=0|Zn[o[o[A>>2]+20>>2]](A),o[U+8>>2]=z,o[i+4>>2]=14992,o[i>>2]=14968,A=o[e+12>>2],o[i+20>>2]=o[e+8>>2],o[i+24>>2]=A,A=o[e+4>>2],o[i+12>>2]=o[e>>2],o[i+16>>2]=A,A=o[r+12>>2],o[i+36>>2]=o[r+8>>2],o[i+40>>2]=A,A=o[r+4>>2],o[i+28>>2]=o[r>>2],o[i+32>>2]=A,A=o[r+20>>2],o[i+44>>2]=o[r+16>>2],o[i+48>>2]=A,A=o[r+28>>2],o[i+52>>2]=o[r+24>>2],o[i+56>>2]=A,A=o[r+44>>2],o[i+68>>2]=o[r+40>>2],o[i+72>>2]=A,A=o[r+36>>2],o[i+60>>2]=o[r+32>>2],o[i+64>>2]=A,A=o[r+52>>2],o[i+76>>2]=o[r+48>>2],o[i+80>>2]=A,A=o[r+60>>2],o[i+84>>2]=o[r+56>>2],o[i+88>>2]=A,A=o[f+100>>2],Zn[o[o[A>>2]+8>>2]](A,i+4|0,i+112|0,i+128|0))}S=i+144|0},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n,a=0,t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0);S=i=S-256|0,o[i+36>>2]=14784,a=o[r+12>>2],o[i+80>>2]=o[r+8>>2],o[i+84>>2]=a,a=o[r+4>>2],o[i+72>>2]=o[r>>2],o[i+76>>2]=a,a=o[f+12>>2],o[i+96>>2]=o[f+8>>2],o[i+100>>2]=a,a=o[f>>2],n=o[f+4>>2],o[i+108>>2]=0,o[i+112>>2]=0,o[i+116>>2]=0,o[i+120>>2]=0,o[i+128>>2]=0,o[i+132>>2]=0,o[i+124>>2]=1065353216,o[i+136>>2]=0,o[i+140>>2]=0,o[i+144>>2]=1065353216,o[i+148>>2]=0,o[i+88>>2]=a,o[i+92>>2]=n,o[i+252>>2]=e,o[i+104>>2]=1065353216,o[i+248>>2]=A,e=o[r+4>>2],o[i+152>>2]=o[r>>2],o[i+156>>2]=e,e=o[r+12>>2],o[i+160>>2]=o[r+8>>2],o[i+164>>2]=e,o[i+172>>2]=0,o[i+176>>2]=0,o[i+180>>2]=0,o[i+184>>2]=0,o[i+188>>2]=1065353216,o[i+192>>2]=0,o[i+196>>2]=0,o[i+200>>2]=0,o[i+204>>2]=0,o[i+208>>2]=1065353216,o[i+212>>2]=0,o[i+168>>2]=1065353216,e=o[f+12>>2],o[i+224>>2]=o[f+8>>2],o[i+228>>2]=e,e=o[f+4>>2],o[i+216>>2]=o[f>>2],o[i+220>>2]=e,t=m(w[f+8>>2]-w[r+8>>2]),u=m(w[f>>2]-w[r>>2]),c=m(w[f+4>>2]-w[r+4>>2]),b=m(m(1)/m(N(m(m(t*t)+m(m(u*u)+m(c*c)))))),l=(t=m(t*b))==m(0)?m(0xde0b6b000000000):m(m(1)/t),w[i+48>>2]=l,s=(c=m(c*b))==m(0)?m(0xde0b6b000000000):m(m(1)/c),w[i+44>>2]=s,o[i- -64>>2]=l>2]=s>2]=u,o[i+56>>2]=u>2]=m(t*m(w[i+96>>2]-w[i+80>>2]))+m(m(b*m(w[i+88>>2]-w[i+72>>2]))+m(c*m(w[i+92>>2]-w[i+76>>2]))),A=o[A+68>>2],o[i+24>>2]=0,o[i+28>>2]=0,o[i+16>>2]=0,o[i+20>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,o[i>>2]=0,o[i+4>>2]=0,Zn[o[o[A>>2]+24>>2]](A,r,f,i+36|0,i+16|0,i),S=i+256|0},wr,ef,function(A){A|=0;var r,f,e=0,i=0,n=0,a=0,t=0,c=0;S=f=S-16|0,Zn[o[8294]](5665),Zn[o[o[A>>2]+8>>2]](A),Zn[o[o[A>>2]+12>>2]](A),r=o[A+24>>2],Zn[o[8294]](3934),r&&(e=o[A+68>>2],n=r,a=0|Zn[o[o[e>>2]+36>>2]](e),t=A+28|0,c=o[A+24>>2],i=o[o[r>>2]+32>>2],Zn[i](0|n,0|a,0|t,0|c)),Zn[o[8295]](),Zn[o[8295]](),S=f+16|0},function(A,r){A|=0,Zn[o[o[(r|=0)>>2]+32>>2]](r),hA(A,r),Zn[o[o[r>>2]+36>>2]](r)},bn,dn,zi,en,vn,en,vn,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=0,V=m(0);S=i=S-32|0,c=w[r+20>>2],B=w[r+36>>2],Z=w[r+24>>2],p=w[r+40>>2],b=w[r+4>>2],G=w[r+32>>2],d=w[r+8>>2],v=w[r>>2],Q=w[r+16>>2],o[i+28>>2]=0,t=m(Q-v),u=m(B-b),n=m(G-v),l=m(c-b),a=m(m(t*u)-m(n*l)),s=l,l=m(p-d),k=m(Z-d),u=m(m(s*l)-m(u*k)),t=m(m(k*n)-m(l*t)),n=m(m(d*a)+m(m(v*u)+m(b*t))),E=w[A+12>>2],s=w[A+4>>2],h=w[A+8>>2],l=m(m(m(a*E)+m(m(u*s)+m(t*h)))-n),W=w[A+28>>2],F=w[A+20>>2],R=w[A+24>>2],n=m(m(m(a*W)+m(m(u*F)+m(t*R)))-n),m(l*n)>=m(0)||1&(r=o[A+36>>2])&l<=m(0)||(n=m(l/m(l-n)))>2]&&(k=m(m(1)-n),s=m(m(k*s)+m(F*n)),v=m(v-s),h=m(m(k*h)+m(R*n)),c=m(c-h),Q=m(Q-s),b=m(b-h),k=m(m(k*E)+m(W*n)),Z=m(Z-k),d=m(d-k),W=m(m(a*a)+m(m(u*u)+m(t*t))),E=m(W*m(-9999999747378752e-20)),m(m(m(m(v*c)-m(Q*b))*a)+m(m(m(m(b*Z)-m(c*d))*u)+m(t*m(m(d*Q)-m(Z*v)))))>=E&&(B=m(B-h),G=m(G-s),h=m(m(m(Q*B)-m(G*c))*a),s=c,c=m(p-k),!(E<=m(h+m(m(m(m(s*c)-m(B*Z))*u)+m(t*m(m(Z*G)-m(c*Q))))))|!(E<=m(m(m(m(G*b)-m(v*B))*a)+m(m(m(m(B*d)-m(b*c))*u)+m(t*m(m(c*v)-m(d*G))))))||(c=a,a=m(m(1)/m(N(W))),b=m(c*a),w[i+24>>2]=b,t=m(t*a),w[i+20>>2]=t,a=m(u*a),w[i+16>>2]=a,!(l<=m(0))|2&r?(Y=A,V=m(Zn[o[o[A>>2]+12>>2]](A,i+16|0,n,f,e)),w[Y+40>>2]=V):(o[i+12>>2]=0,w[i+8>>2]=-b,w[i+4>>2]=-t,w[i>>2]=-a,Y=A,V=m(Zn[o[o[A>>2]+12>>2]](A,i,n,f,e)),w[Y+40>>2]=V)))),S=i+32|0},function(A,r,f,e,i){A|=0,r|=0,f=m(f),e|=0,i|=0;var n,a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0);return S=n=S-48|0,o[n+40>>2]=i,o[n+36>>2]=e,o[n+44>>2]=o[A+52>>2],b=w[A- -64>>2],u=w[A+60>>2],l=w[A+80>>2],s=w[A+72>>2],k=w[A+76>>2],d=w[A+96>>2],v=w[A+88>>2],h=w[A+92>>2],B=w[A+56>>2],a=w[r+8>>2],t=w[r>>2],c=w[r+4>>2],r=o[A+48>>2],o[n+28>>2]=0,w[n+24>>2]=m(d*a)+m(m(v*t)+m(c*h)),w[n+20>>2]=m(l*a)+m(m(s*t)+m(c*k)),w[n+32>>2]=f,o[n+8>>2]=r,w[n+16>>2]=m(b*a)+m(m(B*t)+m(u*c)),o[n+12>>2]=n+36,A=o[A+44>>2],f=m(Zn[o[o[A>>2]+12>>2]](A,n+8|0,1)),S=n+48|0,m(f)},vn,function(A,r){A|=0,r|=0;var f,e,i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0);S=f=S-128|0,e=o[r+36>>2],r=o[o[A+8>>2]+32>>2]+G(e,80)|0,i=o[r+64>>2],d=w[r+32>>2],v=w[r>>2],h=w[r+16>>2],B=w[r+56>>2],Z=w[r+52>>2],Q=w[r+48>>2],E=w[r+36>>2],W=w[r+20>>2],N=w[r+4>>2],p=w[r+40>>2],F=w[r+24>>2],R=w[r+8>>2],r=o[A+12>>2],Y=w[r+52>>2],V=w[r+56>>2],n=w[r+24>>2],a=w[r+20>>2],t=w[r+40>>2],c=w[r+36>>2],g=w[r+48>>2],b=w[r+8>>2],u=w[r>>2],l=w[r+4>>2],s=w[r+16>>2],k=w[r+32>>2],o[f+124>>2]=0,o[f+108>>2]=0,o[f+92>>2]=0,w[f+104>>2]=m(p*t)+m(m(R*k)+m(F*c)),w[f+100>>2]=m(E*t)+m(m(N*k)+m(W*c)),w[f+88>>2]=m(p*n)+m(m(R*s)+m(F*a)),w[f+84>>2]=m(E*n)+m(m(N*s)+m(W*a)),w[f+120>>2]=V+m(m(B*t)+m(m(Q*k)+m(c*Z))),w[f+116>>2]=Y+m(m(B*n)+m(m(Q*s)+m(a*Z))),o[f+76>>2]=0,w[f+72>>2]=m(p*b)+m(m(R*u)+m(l*F)),w[f+68>>2]=m(E*b)+m(m(N*u)+m(l*W)),w[f+64>>2]=m(d*b)+m(m(v*u)+m(h*l)),w[f+112>>2]=g+m(m(B*b)+m(m(Q*u)+m(l*Z))),w[f+96>>2]=m(d*t)+m(m(v*k)+m(h*c)),w[f+80>>2]=m(d*n)+m(m(v*s)+m(h*a)),r=o[A+4>>2],o[f+60>>2]=e,o[f+56>>2]=-1,o[f+48>>2]=r,o[f+44>>2]=i,o[f+40>>2]=0,o[f+52>>2]=f- -64,r=o[A+24>>2],o[f+36>>2]=e,o[f+32>>2]=r,o[f+28>>2]=i,o[f+8>>2]=13708,o[f+16>>2]=0,w[f+12>>2]=w[r+4>>2],o[f+24>>2]=o[r+16>>2],cA(o[A+16>>2],o[A+20>>2],f+40|0,f+8|0),S=f+128|0},vn,$e,function(A,r,f){A|=0,r|=0,f|=0;var e,i,n=0,a=m(0);return S=e=S-16|0,n=o[A+28>>2],o[e+8>>2]=n,o[e+4>>2]=n,(i=o[r+4>>2])?(o[i+4>>2]=n,o[i>>2]=n):o[r+4>>2]=e+4,n=o[A+24>>2],a=m(Zn[o[o[n>>2]+12>>2]](n,r,f)),w[A+4>>2]=w[o[A+24>>2]+4>>2],S=e+16|0,m(a)},vn,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n,t=0,c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0);S=i=S-688|0,n=oi(i+576|0),o[n+4>>2]=1,o[n>>2]=15956,t=o[r+12>>2],o[n+72>>2]=o[r+8>>2],o[n+76>>2]=t,t=o[r+4>>2],o[n+64>>2]=o[r>>2],o[n+68>>2]=t,t=o[r+28>>2],o[n+88>>2]=o[r+24>>2],o[n+92>>2]=t,t=o[r+20>>2],o[n+80>>2]=o[r+16>>2],o[n+84>>2]=t,t=o[r+44>>2],o[n+104>>2]=o[r+40>>2],o[n+108>>2]=t,t=o[r+36>>2],o[n+96>>2]=o[r+32>>2],o[n+100>>2]=t,w[n+52>>2]=w[A+204>>2],a[i+548|0]=0,o[i+524>>2]=953267991,o[i+212>>2]=22800,t=o[A+4>>2],o[20+(r=i+188|0)>>2]=0,o[r+16>>2]=n,o[r+12>>2]=t,o[r+8>>2]=i+212,o[r+4>>2]=i+216,o[r>>2]=22576,o[i+12>>2]=13280,o[i+176>>2]=1065353216,o[i+180>>2]=0,w[i+184>>2]=w[A+208>>2],HA(t=r,A+8|0,A+72|0,r=A+136|0,r,i+12|0)&&(c=w[i+152>>2],b=w[i+144>>2],u=w[i+148>>2],(l=m(m(c*c)+m(m(b*b)+m(u*u))))>m(9999999747378752e-20)&&(s=w[i+176>>2])>2]&&(k=c,c=m(m(1)/m(N(l))),w[i+152>>2]=k*c,w[i+148>>2]=u*c,w[i+144>>2]=b*c,m(Zn[o[o[A>>2]+12>>2]](A,i+144|0,i+160|0,s,f,e)))),Ne(n),S=i+688|0},pf,vn,pf,vn,function(A,r){A|=0,r|=0;var f,e,i,n,a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0);S=f=S-128|0,e=o[r+36>>2],r=o[o[A+24>>2]+32>>2]+G(e,80)|0,i=o[r+64>>2],v=w[r+32>>2],h=w[r>>2],B=w[r+16>>2],Z=w[r+56>>2],Q=w[r+52>>2],E=w[r+48>>2],W=w[r+36>>2],N=w[r+20>>2],p=w[r+4>>2],F=w[r+40>>2],R=w[r+24>>2],Y=w[r+8>>2],r=o[A+28>>2],V=w[r+52>>2],g=w[r+56>>2],a=w[r+24>>2],t=w[r+20>>2],c=w[r+40>>2],b=w[r+36>>2],X=w[r+48>>2],u=w[r+8>>2],l=w[r>>2],s=w[r+4>>2],k=w[r+16>>2],d=w[r+32>>2],o[f+124>>2]=0,o[f+108>>2]=0,o[f+92>>2]=0,w[f+104>>2]=m(F*c)+m(m(Y*d)+m(R*b)),w[f+100>>2]=m(W*c)+m(m(p*d)+m(N*b)),w[f+88>>2]=m(F*a)+m(m(Y*k)+m(R*t)),w[f+84>>2]=m(W*a)+m(m(p*k)+m(N*t)),w[f+120>>2]=g+m(m(Z*c)+m(m(E*d)+m(Q*b))),w[f+116>>2]=V+m(m(Z*a)+m(m(E*k)+m(Q*t))),o[f+76>>2]=0,w[f+72>>2]=m(F*u)+m(m(Y*l)+m(R*s)),w[f+68>>2]=m(W*u)+m(m(p*l)+m(N*s)),w[f+64>>2]=m(v*u)+m(m(h*l)+m(B*s)),w[f+112>>2]=X+m(m(Z*u)+m(m(E*l)+m(Q*s))),w[f+96>>2]=m(v*c)+m(m(h*d)+m(B*b)),w[f+80>>2]=m(v*a)+m(m(h*k)+m(B*t)),r=o[A+32>>2],o[f+48>>2]=0,o[f+40>>2]=1,o[f+44>>2]=-1,o[f+60>>2]=e,o[f+56>>2]=r,o[f+52>>2]=i,o[f+32>>2]=14524,w[f+36>>2]=w[r+4>>2],r=o[A+4>>2],n=o[r+8>>2],o[f+28>>2]=e,o[f+24>>2]=-1,o[f+16>>2]=n,o[f+12>>2]=i,o[f+8>>2]=r,o[f+20>>2]=f- -64,nA(o[A+8>>2],o[A+12>>2],o[A+16>>2],f+8|0,f+32|0,w[A+20>>2]),S=f+128|0},vn,$e,function(A,r,f){A|=0,r|=0,f|=0;var e,i,n=m(0);return S=e=S-16|0,o[e+4>>2]=-1,o[e+8>>2]=o[A+28>>2],o[e+12>>2]=o[A+20>>2],o[r+4>>2]||(o[r+4>>2]=e+4),i=o[A+24>>2],n=m(Zn[o[o[i>>2]+12>>2]](i,r,f)),w[A+4>>2]=w[o[A+24>>2]+4>>2],S=e+16|0,m(n)},en,vn,function(A,r){A|=0,r|=0;var f,e=0,i=m(0),n=0;return S=f=S-32|0,e=o[A+216>>2],(i=w[e+4>>2])!=m(0)&&(r=o[r>>2],0|Zn[o[o[e>>2]+8>>2]](e,o[r+188>>2])&&(e=o[A+216>>2],n=o[r+192>>2],o[f+24>>2]=-1,o[f+28>>2]=-1,o[f+20>>2]=r+4,o[f+16>>2]=r,o[f+12>>2]=n,o[f+8>>2]=0,cA(A+68|0,A+132|0,f+8|0,e))),S=f+32|0,i!=m(0)|0},vn,function(A,r){A|=0,r|=0;var f,e=0,i=m(0),n=m(0),a=0,t=0;return S=f=S-32|0,e=o[A+184>>2],(i=w[e+4>>2])!=m(0)&&(r=o[r>>2],0|Zn[o[o[e>>2]+8>>2]](e,o[r+188>>2])&&(n=w[A+188>>2],e=o[A+184>>2],a=o[A+192>>2],t=o[r+192>>2],o[f+24>>2]=-1,o[f+28>>2]=-1,o[f+20>>2]=r+4,o[f+16>>2]=r,o[f+12>>2]=t,o[f+8>>2]=0,nA(a,A+36|0,A+100|0,f+8|0,e,n))),S=f+32|0,i!=m(0)|0},en,vn,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n,a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=0,W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0);S=f=S-96|0,a=w[A+76>>2],u=w[A+36>>2],t=w[A+32>>2],l=w[A+80>>2],v=w[A+52>>2],h=w[A+44>>2],B=w[A+48>>2],s=w[A+84>>2],Z=w[A+68>>2],F=w[A+60>>2],R=w[A- -64>>2],Y=w[A+28>>2],k=w[r+8>>2],c=w[r>>2],b=w[r+4>>2],o[f+92>>2]=0,W=m(s+m(m(k*Z)+m(m(c*F)+m(b*R)))),w[f+88>>2]=W,p=m(l+m(m(k*v)+m(m(c*h)+m(b*B)))),w[f+84>>2]=p,k=m(a+m(m(k*u)+m(m(c*Y)+m(b*t)))),w[f+80>>2]=k,c=w[r+20>>2],b=w[r+24>>2],d=w[r+16>>2],o[f+76>>2]=0,V=m(s+m(m(b*Z)+m(m(d*F)+m(R*c)))),w[f+72>>2]=V,G=m(l+m(m(b*v)+m(m(d*h)+m(B*c)))),w[f+68>>2]=G,Q=m(a+m(m(b*u)+m(m(d*Y)+m(t*c)))),w[f+64>>2]=Q,c=w[r+36>>2],b=w[r+40>>2],d=w[r+32>>2],o[f+60>>2]=0,s=m(s+m(m(b*Z)+m(m(d*F)+m(R*c)))),w[f+56>>2]=s,l=m(l+m(m(b*v)+m(m(d*h)+m(B*c)))),w[f+52>>2]=l,a=m(a+m(m(b*u)+m(m(d*Y)+m(t*c)))),w[f+48>>2]=a,o[f+44>>2]=0,v=m(m(m(W+V)+s)*m(.3333333432674408)),w[f+40>>2]=v,h=m(m(m(p+G)+l)*m(.3333333432674408)),w[f+36>>2]=h,B=m(m(m(k+Q)+a)*m(.3333333432674408)),w[f+32>>2]=B,r=o[A+8>>2],16384&Zn[o[o[r>>2]+56>>2]](r)&&(o[f+24>>2]=0,o[f+28>>2]=0,o[f+16>>2]=1065353216,o[f+20>>2]=1065353216,r=o[A+8>>2],o[f+12>>2]=0,u=m(Q-k),t=m(l-p),l=m(a-k),Z=m(G-p),Q=a=m(m(u*t)-m(l*Z)),G=m(a*a),s=m(s-W),a=t,t=m(V-W),a=m(m(Z*s)-m(a*t)),u=m(m(t*l)-m(s*u)),t=m(m(1)/m(N(m(G+m(m(a*a)+m(u*u)))))),w[f+8>>2]=m(Q*t)+v,w[f+4>>2]=m(u*t)+h,w[f>>2]=B+m(a*t),Zn[o[o[r>>2]+16>>2]](r,f+32|0,f,f+16|0)),e=o[A+8>>2],i=f+80|0,E=f- -64|0,r=A+12|0,Zn[o[o[e>>2]+16>>2]](e,i,E,r),e=o[A+8>>2],n=E,E=f+48|0,Zn[o[o[e>>2]+16>>2]](e,n,E,r),A=o[A+8>>2],Zn[o[o[A>>2]+16>>2]](A,E,i,r),S=f+96|0},qe,function(A){return(A|=0)-4|0},function(A){DA((A|=0)-4|0)},function(A,r,f,e){r|=0,f|=0,e|=0,Zn[o[o[(A=(A|=0)-4|0)>>2]+8>>2]](A,r,f,e)},en,hn,en,hn,en,vn,function(A,r,f,e){var i,n;return A|=0,f|=0,e|=0,f=o[(r|=0)>>2],f=0|Zn[o[o[f>>2]+56>>2]](f,72),i=o[r+4>>2],e=o[A+8>>2],n=o[A+12>>2],A=o[A+16>>2],o[f>>2]=15064,o[f+4>>2]=o[r>>2],o[f>>2]=15092,o[f+8>>2]=e,o[f>>2]=15216,o[f+68>>2]=A,o[f+64>>2]=n,a[f+60|0]=0,o[f+56>>2]=i,a[f+52|0]=0,a[f+28|0]=1,o[f+24>>2]=0,a[f+48|0]=1,o[f+16>>2]=0,o[f+20>>2]=0,o[f+44>>2]=0,o[f+36>>2]=0,o[f+40>>2]=0,0|f},Cf,function(A){Cf(A|=0),DA(A)},function(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n,t=m(0),c=0,b=0,u=m(0),l=0,s=m(0),k=m(0),d=0,h=0,B=m(0),Z=0,E=0,W=m(0),p=m(0),F=0,R=0,Y=m(0),V=0,g=m(0),X=0,D=0,C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=m(0),L=m(0),$=m(0),K=m(0),q=m(0),_=m(0),AA=m(0),rA=m(0),fA=m(0),iA=0,nA=m(0),aA=m(0),tA=m(0),oA=m(0),cA=m(0),bA=m(0),lA=0,sA=m(0),kA=m(0),dA=m(0),vA=m(0),hA=m(0),BA=0,wA=0,ZA=m(0),GA=m(0),mA=m(0),QA=0;S=n=S-928|0,(c=o[A+56>>2])||(c=o[A+4>>2],c=0|Zn[o[o[c>>2]+12>>2]](c,o[r+8>>2],o[f+8>>2]),a[A+52|0]=1,o[A+56>>2]=c),o[i+4>>2]=c,V=o[f+4>>2];A:{r:{f:{e:switch(X=o[r+4>>2],o[X+4>>2]-8|0){case 0:break f;case 2:break e;default:break r}e:switch(o[V+4>>2]-8|0){case 2:if(e=X+36|0,A=o[X+60>>2],t=w[e+(A<<2)>>2],s=w[e+((A+2|0)%3<<2)>>2],l=V+36|0,e=o[V+60>>2],u=w[c+848>>2],(t=vr(n+432|0,n+8|0,t,s,w[l+(e<<2)>>2],w[l+((e+2|0)%3<<2)>>2],A,e,o[r+12>>2],o[f+12>>2],u))>2]+16>>2]](i,n+432|0,n+8|0,t),A=o[i+4>>2],!o[A+844>>2])break A;r=(0|(f=o[A+836>>2]))==(0|(e=o[o[i+8>>2]+8>>2])),E=A,A=o[o[i+12>>2]+8>>2],OA(E,(r?f:A)+4|0,(r?A:e)+4|0);break A;case 0:break e;default:break r}if(e=X+36|0,A=o[X+60>>2],u=w[c+848>>2],(t=vr(n+432|0,n+8|0,w[e+(A<<2)>>2],w[e+((A+2|0)%3<<2)>>2],m(0),m(w[V+36>>2]*w[V+20>>2]),A,1,o[r+12>>2],o[f+12>>2],u))>2]+16>>2]](i,n+432|0,n+8|0,t),A=o[i+4>>2],!o[A+844>>2])break A;r=(0|(f=o[A+836>>2]))==(0|(e=o[o[i+8>>2]+8>>2])),E=A,A=o[o[i+12>>2]+8>>2],OA(E,(r?f:A)+4|0,(r?A:e)+4|0);break A}if(10==o[V+4>>2]){if(e=V+36|0,A=o[V+60>>2],u=w[c+848>>2],(t=vr(n+432|0,n+8|0,m(0),m(w[X+36>>2]*w[X+20>>2]),w[e+(A<<2)>>2],w[e+((A+2|0)%3<<2)>>2],1,A,o[r+12>>2],o[f+12>>2],u))>2]+16>>2]](i,n+432|0,n+8|0,t),A=o[i+4>>2],!o[A+844>>2])break A;r=(0|(f=o[A+836>>2]))==(0|(e=o[o[i+8>>2]+8>>2])),E=A,A=o[o[i+12>>2]+8>>2],OA(E,(r?f:A)+4|0,(r?A:e)+4|0);break A}}if(o[n+920>>2]=1566444395,a[n+764|0]=0,o[n+740>>2]=953267991,E=Hf(n+352|0,X,V,n+432|0,o[A+8>>2]),o[E+32>>2]=V,o[E+28>>2]=X,u=m(m(m(m(Zn[o[o[X>>2]+48>>2]](X))+m(Zn[o[o[V>>2]+48>>2]](V)))+w[o[A+56>>2]+848>>2])+w[i+32>>2]),w[n+920>>2]=u*u,c=o[r+12>>2],l=o[c+12>>2],o[n+800>>2]=o[c+8>>2],o[n+804>>2]=l,l=o[c+4>>2],o[n+792>>2]=o[c>>2],o[n+796>>2]=l,l=o[c+28>>2],o[n+816>>2]=o[c+24>>2],o[n+820>>2]=l,l=o[c+20>>2],o[n+808>>2]=o[c+16>>2],o[n+812>>2]=l,l=o[c+44>>2],o[n+832>>2]=o[c+40>>2],o[n+836>>2]=l,l=o[c+36>>2],o[n+824>>2]=o[c+32>>2],o[n+828>>2]=l,l=o[c+60>>2],o[n+848>>2]=o[c+56>>2],o[n+852>>2]=l,l=o[c+52>>2],o[n+840>>2]=o[c+48>>2],o[n+844>>2]=l,c=o[f+12>>2],l=o[c+12>>2],o[n+864>>2]=o[c+8>>2],o[n+868>>2]=l,l=o[c+4>>2],o[n+856>>2]=o[c>>2],o[n+860>>2]=l,b=o[c+20>>2],o[(l=n+872|0)>>2]=o[c+16>>2],o[l+4>>2]=b,b=o[c+28>>2],o[n+880>>2]=o[c+24>>2],o[n+884>>2]=b,d=o[c+36>>2],o[(b=n+888|0)>>2]=o[c+32>>2],o[b+4>>2]=d,d=o[c+44>>2],o[n+896>>2]=o[c+40>>2],o[n+900>>2]=d,Z=o[c+52>>2],o[(d=n+904|0)>>2]=o[c+48>>2],o[d+4>>2]=Z,Z=o[c+60>>2],o[n+912>>2]=o[c+56>>2],o[n+916>>2]=Z,!((0|(Z=o[X+4>>2]))>6)&&!((0|(c=o[V+4>>2]))>6)&&(o[n+348>>2]=15336,Z&&($=m(Zn[o[o[X>>2]+48>>2]](X)),c=o[V+4>>2]),c&&(t=m(Zn[o[o[V>>2]+48>>2]](V))),a[n+44|0]=0,w[n+36>>2]=t,w[n+32>>2]=$,o[n+12>>2]=i,o[n+8>>2]=15568,o[X+60>>2])){if(o[V+60>>2]){I=w[o[A+56>>2]+848>>2];r:{f:{if(v[e+24|0]){$=m(-1.0000000150474662e30),R=o[X+60>>2],F=o[V+60>>2],d=o[r+12>>2],Z=o[f+12>>2],S=b=S-96|0,o[8791]=o[8791]+1,t=w[R+72>>2],u=w[R+64>>2],g=w[R+68>>2],s=w[F+72>>2],Y=w[F+64>>2],J=w[F+68>>2],AA=m(m(m(m(t*w[d+40>>2])+m(m(u*w[d+32>>2])+m(g*w[d+36>>2])))+w[d+56>>2])-m(m(m(s*w[Z+40>>2])+m(m(Y*w[Z+32>>2])+m(J*w[Z+36>>2])))+w[Z+56>>2])),rA=m(m(m(m(t*w[d+24>>2])+m(m(u*w[d+16>>2])+m(g*w[d+20>>2])))+w[d+52>>2])-m(m(m(s*w[Z+24>>2])+m(m(Y*w[Z+16>>2])+m(J*w[Z+20>>2])))+w[Z+52>>2])),fA=m(m(m(m(t*w[d+8>>2])+m(m(u*w[d>>2])+m(g*w[d+4>>2])))+w[d+48>>2])-m(m(m(s*w[Z+8>>2])+m(m(Y*w[Z>>2])+m(J*w[Z+4>>2])))+w[Z+48>>2])),u=m(34028234663852886e22);e:{i:{if((0|(c=o[R+28>>2]))>0)for(;;){if(e=o[R+36>>2]+G(D,36)|0,g=w[e+28>>2],s=w[e+20>>2],Y=w[e+24>>2],J=w[d+8>>2],x=w[d>>2],M=w[d+4>>2],q=w[d+24>>2],_=w[d+16>>2],H=w[d+20>>2],T=w[d+40>>2],U=w[d+32>>2],K=w[d+36>>2],o[b+12>>2]=0,t=m(m(T*g)+m(m(U*s)+m(Y*K))),w[b+8>>2]=t,B=m(m(q*g)+m(m(_*s)+m(Y*H))),w[b+4>>2]=B,p=m(m(J*g)+m(m(x*s)+m(Y*M))),w[b>>2]=p,m(m(AA*t)+m(m(fA*p)+m(rA*B)))>2]=t,B=m(-B),w[b+4>>2]=B,p=m(-p),w[b>>2]=p),o[8789]=o[8789]+1,!(v[33193]&&(g=m(m(AA*t)+m(m(fA*p)+m(rA*B))),s=w[R+88>>2],z=m(-s),C=s,s=m(m(T*t)+m(m(J*p)+m(q*B))),j=m((s>2],z=m(-s),C=s,s=m(m(U*t)+m(m(x*p)+m(_*B))),C=m((s>2],M=(s=m(j+m(C+m(s*(s(Y=w[R+96>>2])?s:Y,s=w[F+88>>2],z=m(-s),C=s,s=m(m(w[Z+40>>2]*t)+m(m(w[Z+8>>2]*p)+m(B*w[Z+24>>2]))),j=m((s>2],z=m(-s),C=s,s=m(m(w[Z+32>>2]*t)+m(m(w[Z>>2]*p)+m(B*w[Z+16>>2]))),C=m((s>2]*t)+m(m(w[Z+4>>2]*p)+m(B*w[Z+20>>2]))),s=w[F+84>>2],t=m(j+m(C+m(t*(t>2],t=m(M+(t>s?t:s)),s=m(g+t),((t=m(t-g))>s?s:t)>u))){if(o[8790]=o[8790]+1,Xr(R,d,b,b+92|0,b+88|0,b- -64|0,b+48|0),Xr(F,Z,b,b+84|0,b+80|0,b+32|0,b+16|0),(t=w[b+88>>2])<(g=w[b+84>>2]))break i;if((s=w[b+80>>2])<(Y=w[b+92>>2]))break i;(t=(t=m(t-g))<(g=m(s-Y))?t:g)>2],o[n+248>>2]=o[b>>2],o[n+252>>2]=e,e=o[b+12>>2],o[n+256>>2]=o[b+8>>2],o[n+260>>2]=e,u=t)}if((0|c)==(0|(D=D+1|0)))break}if((0|(c=o[F+28>>2]))>0)for(D=0;;){if(e=o[F+36>>2]+G(D,36)|0,g=w[e+28>>2],s=w[e+20>>2],Y=w[e+24>>2],J=w[Z+8>>2],x=w[Z>>2],M=w[Z+4>>2],q=w[Z+24>>2],_=w[Z+16>>2],H=w[Z+20>>2],T=w[Z+40>>2],U=w[Z+32>>2],K=w[Z+36>>2],o[b+12>>2]=0,t=m(m(T*g)+m(m(U*s)+m(Y*K))),w[b+8>>2]=t,B=m(m(q*g)+m(m(_*s)+m(Y*H))),w[b+4>>2]=B,p=m(m(J*g)+m(m(x*s)+m(Y*M))),w[b>>2]=p,m(m(AA*t)+m(m(fA*p)+m(rA*B)))>2]=t,B=m(-B),w[b+4>>2]=B,p=m(-p),w[b>>2]=p),o[8789]=o[8789]+1,!(v[33193]&&(g=m(m(AA*t)+m(m(fA*p)+m(rA*B))),s=w[R+88>>2],z=m(-s),C=s,s=m(m(w[d+40>>2]*t)+m(m(w[d+8>>2]*p)+m(B*w[d+24>>2]))),j=m((s>2],z=m(-s),C=s,s=m(m(w[d+32>>2]*t)+m(m(w[d>>2]*p)+m(B*w[d+16>>2]))),C=m((s>2]*t)+m(m(w[d+4>>2]*p)+m(B*w[d+20>>2]))),Y=w[R+84>>2],Y=(s=m(j+m(C+m(s*(s(Y=w[R+96>>2])?s:Y,s=w[F+88>>2],z=m(-s),C=s,s=m(m(T*t)+m(m(J*p)+m(q*B))),j=m((s>2],z=m(-s),C=s,s=m(m(U*t)+m(m(x*p)+m(_*B))),C=m((s>2],t=m(j+m(C+m(t*(t>2],t=m(Y+(t>s?t:s)),s=m(g+t),((t=m(t-g))>s?s:t)>u))){if(o[8790]=o[8790]+1,Xr(R,d,b,b+92|0,b+88|0,b- -64|0,b+48|0),Xr(F,Z,b,b+84|0,b+80|0,b+32|0,b+16|0),(t=w[b+88>>2])<(g=w[b+84>>2]))break i;if((s=w[b+80>>2])<(Y=w[b+92>>2]))break i;(t=(t=m(t-g))<(g=m(s-Y))?t:g)>2],o[n+248>>2]=o[b>>2],o[n+252>>2]=e,e=o[b+12>>2],o[n+256>>2]=o[b+8>>2],o[n+260>>2]=e,u=t)}if((0|c)==(0|(D=D+1|0)))break}if(iA=1,!((0|(e=o[R+48>>2]))<=0||(c=0,(0|(D=o[F+48>>2]))<=0))){for(T=m(0),E=-1,l=-1,U=m(0),K=m(0),q=m(0),_=m(0),H=m(0);;){if((0|D)>0){for(e=o[R+56>>2]+(c<<4)|0,t=w[e+8>>2],Y=w[e>>2],J=w[e+4>>2],g=m(m(w[d+24>>2]*t)+m(m(w[d+16>>2]*Y)+m(J*w[d+20>>2]))),ZA=m(-g),s=m(m(w[d+8>>2]*t)+m(m(w[d>>2]*Y)+m(J*w[d+4>>2]))),GA=m(-s),Y=m(m(w[d+40>>2]*t)+m(m(w[d+32>>2]*Y)+m(J*w[d+36>>2]))),mA=m(-Y),e=0;;){if(D=o[F+56>>2]+(e<<4)|0,M=w[D+8>>2],B=w[D>>2],p=w[D+4>>2],j=w[Z+40>>2],aA=w[Z+32>>2],tA=w[Z+36>>2],oA=w[Z+24>>2],sA=w[Z+16>>2],kA=w[Z+20>>2],dA=w[Z+8>>2],vA=w[Z>>2],hA=w[Z+4>>2],o[b+12>>2]=0,J=m(m(oA*M)+m(m(sA*B)+m(p*kA))),x=m(m(dA*M)+m(m(vA*B)+m(p*hA))),t=m(m(s*J)+m(x*ZA)),M=m(m(j*M)+m(m(aA*B)+m(p*tA))),B=m(m(Y*x)+m(M*GA)),p=m(m(g*M)+m(J*mA)),+m(Q(p))>1e-6|+m(Q(B))>1e-6|+m(Q(t))>1e-6&&(cA=m(m(1)/m(N(m(m(t*t)+m(m(p*p)+m(B*B)))))),t=m(t*cA),w[b+8>>2]=t,B=m(B*cA),w[b+4>>2]=B,p=m(p*cA),w[b>>2]=p,m(m(AA*t)+m(m(fA*p)+m(rA*B)))>2]=t,B=m(-B),w[b+4>>2]=B,p=m(-p),w[b>>2]=p),o[8789]=o[8789]+1,!(v[33193]&&(cA=m(m(AA*t)+m(m(fA*p)+m(rA*B))),C=w[R+88>>2],nA=m(-C),z=C,C=m(m(w[d+40>>2]*t)+m(m(w[d+8>>2]*p)+m(B*w[d+24>>2]))),bA=m((C>2],nA=m(-C),z=C,C=m(m(w[d+32>>2]*t)+m(m(w[d>>2]*p)+m(B*w[d+16>>2]))),z=m((C>2]*t)+m(m(w[d+4>>2]*p)+m(B*w[d+20>>2]))),nA=w[R+84>>2],bA=(C=m(bA+m(z+m(C*(C(nA=w[R+96>>2])?C:nA,C=w[F+88>>2],j=m(m(j*t)+m(m(dA*p)+m(oA*B))),nA=m((j>2],z=m(-j),C=j,j=m(m(aA*t)+m(m(vA*p)+m(sA*B))),t=m(m(tA*t)+m(m(hA*p)+m(kA*B))),B=w[F+84>>2],t=m(nA+m(m((j>2],t=m(bA+(t>B?t:B)),B=m(cA+t),((t=m(t-cA))>B?B:t)>u)))){if(o[8790]=o[8790]+1,Xr(R,d,b,b+92|0,b+88|0,b- -64|0,b+48|0),Xr(F,Z,b,b+84|0,b+80|0,b+32|0,b+16|0),(t=w[b+88>>2])<(B=w[b+84>>2]))break i;if((p=w[b+80>>2])<(j=w[b+92>>2]))break i;(t=(D=(t=m(t-B))<(B=m(p-j)))?t:B)>2],_=w[l+4>>2],T=w[8+(l=D?b+48|0:b- -64|0)>>2],U=w[l+4>>2],u=w[b+16>>2],k=w[b+32>>2],W=w[b+64>>2],y=w[b+48>>2],l=o[b+4>>2],o[n+248>>2]=o[b>>2],o[n+252>>2]=l,l=o[b+12>>2],o[n+256>>2]=o[b+8>>2],o[n+260>>2]=l,K=D?y:W,H=D?k:u,k=x,W=J,y=M,P=s,O=g,L=Y,l=c,E=e,u=t)}if(!((0|(e=e+1|0))<(0|(D=o[F+48>>2]))))break}e=o[R+48>>2]}if(!((0|(c=c+1|0))<(0|e)))break}if(!((l|E)<0)){Y=m(q-T),J=m(H-K),x=m(_-U),s=m(m(L*Y)+m(m(P*J)+m(O*x))),t=m(0),M=m(-m(m(y*Y)+m(m(k*J)+m(W*x)))),g=m(m(L*y)+m(m(P*k)+m(O*W))),(u=m(m(1)-m(g*g)))!=m(0)&&(t=m(-1.0000000150474662e30),(u=m(m(m(M*g)+s)/u))m(1.0000000150474662e30)&&(t=m(1.0000000150474662e30)));n:if((B=m(m(t*g)+M))m(1.0000000150474662e30))){B=m(-1.0000000150474662e30),t=u;break n}B=m(-1.0000000150474662e30)}else B>m(1.0000000150474662e30)&&(t=m(-1.0000000150474662e30),B=m(1.0000000150474662e30),(u=m(m(g*m(1.0000000150474662e30))+s))m(1.0000000150474662e30)&&(t=m(1.0000000150474662e30)));o[b+76>>2]=0,y=m(y*B),u=m(y+m(Y-m(L*t))),L=m(k*B),k=m(L+m(J-m(P*t))),P=m(W*B),t=m(P+m(x-m(O*t))),(W=m(m(u*u)+m(m(k*k)+m(t*t))))>m(1.1920928955078125e-7)&&(s=u,O=m(N(W)),u=m(m(1)/O),W=m(s*u),w[b+72>>2]=W,t=m(t*u),w[b+68>>2]=t,u=m(k*u),w[b+64>>2]=u,m(m(W*AA)+m(m(u*fA)+m(rA*t)))>2]=-W,w[b+68>>2]=-t,w[b+64>>2]=-u),o[b+60>>2]=0,w[b+56>>2]=q+y,w[b+52>>2]=_+P,w[b+48>>2]=H+L,Zn[o[o[i>>2]+16>>2]](i,b- -64|0,b+48|0,m(-O)))}}if(t=w[n+256>>2],u=w[n+248>>2],k=w[n+252>>2],!(m(m(AA*t)+m(m(fA*u)+m(rA*k)))>2]=0,w[n+256>>2]=-t,w[n+252>>2]=-k,w[n+248>>2]=-u;break e}iA=0}if(S=b+96|0,iA)break f;break r}if(eA(E,n+792|0,n+8|0,o[e+20>>2],0),e=o[n+28>>2],o[n+256>>2]=o[n+24>>2],o[n+260>>2]=e,e=o[n+20>>2],o[n+248>>2]=o[n+16>>2],o[n+252>>2]=e,!v[n+44|0])break r;if(!(($=w[n+40>>2])>2]&o[A+20>>2])<0&&(!(e=o[A+24>>2])||!e|!v[A+28|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),a[A+28|0]=1,o[A+20>>2]=0,o[A+24>>2]=0),o[A+16>>2]=0,iA=o[X+60>>2],d=o[V+60>>2],h=o[r+12>>2],E=o[f+12>>2],S=b=S-16|0,t=w[n+256>>2],u=w[n+248>>2],k=w[n+252>>2],w[b+12>>2]=w[n+260>>2],s=t,t=m(m(1)/m(N(m(m(t*t)+m(m(u*u)+m(k*k)))))),y=m(s*t),w[b+8>>2]=y,P=m(k*t),w[b+4>>2]=P,O=m(u*t),w[b>>2]=O,Z=-1,(0|(f=o[d+28>>2]))>0)for(L=w[E+40>>2],g=w[E+36>>2],s=w[E+24>>2],Y=w[E+20>>2],e=o[d+36>>2],J=w[E+32>>2],x=w[E+16>>2],M=w[E+8>>2],B=w[E+4>>2],p=w[E>>2],c=0,t=m(-34028234663852886e22);r=e+G(c,36)|0,u=w[r+28>>2],k=w[r+20>>2],W=w[r+24>>2],t=(r=(u=m(m(m(m(L*u)+m(m(J*k)+m(W*g)))*y)+m(m(m(m(M*u)+m(m(p*k)+m(W*B)))*O)+m(m(m(s*u)+m(m(x*k)+m(W*Y)))*P))))>t)?u:t,Z=r?c:Z,(0|f)!=(0|(c=c+1|0)););if((o[4+(f=A+12|0)>>2]&o[f+8>>2])<0&&(!(r=o[f+12>>2])||!r|!v[f+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[f+16|0]=1,o[f+8>>2]=0,o[f+12>>2]=0),o[f+4>>2]=0,BA=o[d+36>>2]+G(Z,36)|0,(0|(wA=o[BA+4>>2]))>0)for(e=0,V=0;;){if(r=o[d+16>>2]+(o[o[BA+12>>2]+(V<<2)>>2]<<4)|0,t=w[r+8>>2],u=w[r>>2],k=w[r+4>>2],W=m(m(m(t*w[E+40>>2])+m(m(u*w[E+32>>2])+m(k*w[E+36>>2])))+w[E+56>>2]),y=m(m(m(t*w[E+24>>2])+m(m(u*w[E+16>>2])+m(k*w[E+20>>2])))+w[E+52>>2]),t=m(m(m(t*w[E+8>>2])+m(m(u*w[E>>2])+m(k*w[E+4>>2])))+w[E+48>>2]),o[f+8>>2]==(0|e)&&!((0|(R=e?e<<1:1))<=(0|e))){if(R?(o[8488]=o[8488]+1,l=0|Zn[o[8290]](R<<4,16),e=o[f+4>>2]):l=0,!((0|e)<=0)){if(c=0,1!=(0|e))for(QA=-2&e,r=0;D=(X=c<<4)+l|0,F=X+o[f+12>>2]|0,lA=o[F+4>>2],o[D>>2]=o[F>>2],o[D+4>>2]=lA,lA=o[F+12>>2],o[D+8>>2]=o[F+8>>2],o[D+12>>2]=lA,X=(F=16|X)+l|0,F=F+o[f+12>>2]|0,D=o[F+4>>2],o[X>>2]=o[F>>2],o[X+4>>2]=D,D=o[F+12>>2],o[X+8>>2]=o[F+8>>2],o[X+12>>2]=D,c=c+2|0,(0|QA)!=(0|(r=r+2|0)););1&e&&(e=(r=c<<4)+l|0,r=r+o[f+12>>2]|0,c=o[r+4>>2],o[e>>2]=o[r>>2],o[e+4>>2]=c,c=o[r+12>>2],o[e+8>>2]=o[r+8>>2],o[e+12>>2]=c)}!(r=o[f+12>>2])||!r|!v[f+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[f+12>>2]=l,a[f+16|0]=1,o[f+8>>2]=R,e=o[f+4>>2]}if(r=o[f+12>>2]+(e<<4)|0,o[r+12>>2]=0,w[r+8>>2]=W,w[r+4>>2]=y,w[r>>2]=t,e=o[f+4>>2]+1|0,o[f+4>>2]=e,(0|wA)==(0|(V=V+1|0)))break}(0|Z)>=0&&uA(b,iA,h,f,A+32|0,m($-I),I,i),S=b+16|0}if(!v[A+52|0])break A;if(A=o[i+4>>2],!o[A+844>>2])break A;r=(0|(f=o[A+836>>2]))==(0|(e=o[o[i+8>>2]+8>>2])),E=A,A=o[o[i+12>>2]+8>>2],OA(E,(r?f:A)+4|0,(r?A:e)+4|0);break A}if(1==o[V+4>>2]){if(o[n+252>>2]=0,c=o[f+12>>2],W=w[c+52>>2],y=w[c+20>>2],P=w[c+24>>2],O=w[c+56>>2],L=w[c+36>>2],g=w[c+40>>2],t=w[V+72>>2],u=w[V+68>>2],s=w[c+16>>2],Y=w[c+32>>2],J=w[c+48>>2],x=w[c+8>>2],k=w[V+64>>2],M=w[c>>2],B=w[c+4>>2],o[8488]=o[8488]+1,c=0|Zn[o[8290]](16,16),o[n+260>>2]=c,a[n+264|0]=1,o[n+256>>2]=1,o[c+12>>2]=0,w[c>>2]=J+m(m(t*x)+m(m(k*M)+m(u*B))),w[c+8>>2]=O+m(m(t*g)+m(m(k*Y)+m(u*L))),w[c+4>>2]=W+m(m(t*P)+m(m(k*s)+m(u*y))),c=(b=o[n+252>>2])+1|0,o[n+252>>2]=c,t=w[V+88>>2],l=o[f+12>>2],u=w[V+80>>2],k=w[V+84>>2],W=m(m(m(t*w[l+40>>2])+m(m(u*w[l+32>>2])+m(k*w[l+36>>2])))+w[l+56>>2]),y=m(m(m(t*w[l+24>>2])+m(m(u*w[l+16>>2])+m(k*w[l+20>>2])))+w[l+52>>2]),t=m(m(m(t*w[l+8>>2])+m(m(u*w[l>>2])+m(k*w[l+4>>2])))+w[l+48>>2]),o[n+256>>2]==(0|c)&&!((0|(d=c?c<<1:1))<=(0|c))){if(l=0,d&&(o[8488]=o[8488]+1,l=0|Zn[o[8290]](d<<4,16)),!((0|b)<0)){if(D=1&(c=b+1|0),b)for(iA=-2&c,c=0,Z=0;F=(R=c<<4)+l|0,b=R+o[n+260>>2]|0,h=o[b+4>>2],o[F>>2]=o[b>>2],o[F+4>>2]=h,h=o[b+12>>2],o[F+8>>2]=o[b+8>>2],o[F+12>>2]=h,R=(b=16|R)+l|0,b=b+o[n+260>>2]|0,F=o[b+4>>2],o[R>>2]=o[b>>2],o[R+4>>2]=F,F=o[b+12>>2],o[R+8>>2]=o[b+8>>2],o[R+12>>2]=F,c=c+2|0,(0|iA)!=(0|(Z=Z+2|0)););else c=0;D&&(b=(c<<=4)+l|0,c=c+o[n+260>>2]|0,Z=o[c+4>>2],o[b>>2]=o[c>>2],o[b+4>>2]=Z,Z=o[c+12>>2],o[b+8>>2]=o[c+8>>2],o[b+12>>2]=Z)}!(c=o[n+260>>2])||!c|!v[n+264|0]||(o[8489]=o[8489]+1,Zn[o[8291]](c)),o[n+260>>2]=l,a[n+264|0]=1,o[n+256>>2]=d,c=o[n+252>>2]}if(c=o[n+260>>2]+(c<<4)|0,o[c+12>>2]=0,w[c+8>>2]=W,w[c+4>>2]=y,w[c>>2]=t,c=(l=o[n+252>>2])+1|0,o[n+252>>2]=c,t=w[V+104>>2],f=o[f+12>>2],u=w[V+96>>2],k=w[V+100>>2],W=m(m(m(t*w[f+40>>2])+m(m(u*w[f+32>>2])+m(k*w[f+36>>2])))+w[f+56>>2]),y=m(m(m(t*w[f+24>>2])+m(m(u*w[f+16>>2])+m(k*w[f+20>>2])))+w[f+52>>2]),t=m(m(m(t*w[f+8>>2])+m(m(u*w[f>>2])+m(k*w[f+4>>2])))+w[f+48>>2]),o[n+256>>2]==(0|c)&&!((0|(b=c?c<<1:1))<=(0|c))){if(c=0,b&&(o[8488]=o[8488]+1,c=0|Zn[o[8290]](b<<4,16)),!((0|l)<0)){if(F=1&(f=l+1|0),l)for(D=-2&f,f=0,l=0;R=(Z=f<<4)+c|0,d=Z+o[n+260>>2]|0,iA=o[d+4>>2],o[R>>2]=o[d>>2],o[R+4>>2]=iA,iA=o[d+12>>2],o[R+8>>2]=o[d+8>>2],o[R+12>>2]=iA,Z=(d=16|Z)+c|0,d=d+o[n+260>>2]|0,R=o[d+4>>2],o[Z>>2]=o[d>>2],o[Z+4>>2]=R,R=o[d+12>>2],o[Z+8>>2]=o[d+8>>2],o[Z+12>>2]=R,f=f+2|0,(0|D)!=(0|(l=l+2|0)););else f=0;F&&(l=(f<<=4)+c|0,f=f+o[n+260>>2]|0,d=o[f+4>>2],o[l>>2]=o[f>>2],o[l+4>>2]=d,d=o[f+12>>2],o[l+8>>2]=o[f+8>>2],o[l+12>>2]=d)}!(f=o[n+260>>2])||!f|!v[n+264|0]||(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[n+260>>2]=c,a[n+264|0]=1,o[n+256>>2]=b,c=o[n+252>>2]}if(f=o[n+260>>2]+(c<<4)|0,o[f+12>>2]=0,w[f+8>>2]=W,w[f+4>>2]=y,w[f>>2]=t,o[n+252>>2]=o[n+252>>2]+1,t=w[o[A+56>>2]+848>>2],eA(E,n+792|0,n+348|0,o[e+20>>2],0),u=w[E+12>>2],k=w[E+4>>2],W=w[E+8>>2],(y=m(m(u*u)+m(m(k*k)+m(W*W))))>m(1.1920928955078125e-7)){o[n+344>>2]=0,s=u,u=m(m(1)/y),w[n+340>>2]=s*u,w[n+336>>2]=W*u,w[n+332>>2]=k*u,u=w[E+56>>2],k=m(Zn[o[o[X>>2]+48>>2]](X)),W=m(Zn[o[o[V>>2]+48>>2]](V)),c=0,E=0;r:if(!((0|(e=o[4+(f=A+32|0)>>2]))>0||(d=(0|e)>=0))){if(o[f+8>>2]<0){if(!((0|e)<=0)){if(1!=(0|e))for(Z=-2&e;b=(l=c<<4)+o[f+12>>2]|0,V=o[b+4>>2],o[l>>2]=o[b>>2],o[l+4>>2]=V,V=o[b+12>>2],o[l+8>>2]=o[b+8>>2],o[l+12>>2]=V,b=(l|=16)+o[f+12>>2]|0,V=o[b+4>>2],o[l>>2]=o[b>>2],o[l+4>>2]=V,V=o[b+12>>2],o[l+8>>2]=o[b+8>>2],o[l+12>>2]=V,c=c+2|0,(0|Z)!=(0|(E=E+2|0)););1&e&&(l=(c<<=4)+o[f+12>>2]|0,E=o[l+4>>2],o[c>>2]=o[l>>2],o[c+4>>2]=E,E=o[l+12>>2],o[c+8>>2]=o[l+8>>2],o[c+12>>2]=E)}if(!(c=o[f+12>>2])||!c|!v[f+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](c)),o[f+12>>2]=0,a[f+16|0]=1,o[f+8>>2]=0,d)break r}if(E=~e,b=0-e&3)for(c=0;d=o[n+320>>2],l=o[f+12>>2]+(e<<4)|0,o[l>>2]=o[n+316>>2],o[l+4>>2]=d,d=o[n+328>>2],o[l+8>>2]=o[n+324>>2],o[l+12>>2]=d,e=e+1|0,(0|b)!=(0|(c=c+1|0)););if(!(E>>>0<3))for(;E=o[n+320>>2],l=(c=e<<4)+o[f+12>>2]|0,o[l>>2]=o[n+316>>2],o[l+4>>2]=E,E=o[n+328>>2],o[l+8>>2]=o[n+324>>2],o[l+12>>2]=E,E=o[n+328>>2],l=c+o[f+12>>2]|0,o[l+24>>2]=o[n+324>>2],o[l+28>>2]=E,E=o[n+320>>2],o[l+16>>2]=o[n+316>>2],o[l+20>>2]=E,E=o[n+328>>2],l=c+o[f+12>>2]|0,o[l+40>>2]=o[n+324>>2],o[l+44>>2]=E,E=o[n+320>>2],o[l+32>>2]=o[n+316>>2],o[l+36>>2]=E,l=o[n+328>>2],c=c+o[f+12>>2]|0,o[c+56>>2]=o[n+324>>2],o[c+60>>2]=l,l=o[n+320>>2],o[c+48>>2]=o[n+316>>2],o[c+52>>2]=l,e=e+4|0;);}o[f+4>>2]=0,uA(n+332|0,o[X+60>>2],o[r+12>>2],n+248|0,f,m(m(m(u-k)-W)-t),t,i)}if(v[A+52|0]&&(A=o[i+4>>2],o[A+844>>2]&&(r=(0|(f=o[A+836>>2]))==(0|(e=o[o[i+8>>2]+8>>2])),E=A,A=o[o[i+12>>2]+8>>2],OA(E,(r?f:A)+4|0,(r?A:e)+4|0))),!(A=o[n+260>>2])|!v[n+264|0])break A;A&&(o[8489]=o[8489]+1,Zn[o[8291]](A));break A}}if(eA(E,n+792|0,i,o[e+20>>2],0),!(!o[A+64>>2]|o[o[i+4>>2]+844>>2]>=o[A+68>>2])&&(t=w[E+12>>2],u=w[E+4>>2],k=w[E+8>>2],(W=m(m(t*t)+m(m(u*u)+m(k*k))))>m(1.1920928955078125e-7)&&(Z=n+856|0,R=n+840|0,F=n+824|0,D=n+808|0,s=k,k=m(m(1)/W),y=m(s*k),s=m(u*k),Y=m(t*k),m(Q(Y))>m(.7071067690849304)?(t=m(m(1)/m(N(m(m(y*y)+m(Y*Y))))),$=m(y*t),t=m(t*m(-Y)),u=m(0)):(u=m(m(1)/m(N(m(m(s*s)+m(y*y))))),t=m(s*u),$=m(0),u=m(u*m(-y))),k=m(Zn[o[o[X>>2]+16>>2]](X)),W=m(Zn[o[o[V>>2]+16>>2]](V)),P=w[8297],X=o[(c=(V=k>2],o[n+256>>2]=o[c+8>>2],o[n+260>>2]=X,X=o[c+4>>2],o[n+248>>2]=o[c>>2],o[n+252>>2]=X,X=o[(c=V?D:l)+12>>2],o[n+272>>2]=o[c+8>>2],o[n+276>>2]=X,X=o[c+4>>2],o[n+264>>2]=o[c>>2],o[n+268>>2]=X,X=o[(c=V?F:b)+12>>2],o[n+288>>2]=o[c+8>>2],o[n+292>>2]=X,X=o[c+4>>2],o[n+280>>2]=o[c>>2],o[n+284>>2]=X,X=o[(c=V?R:d)+12>>2],o[n+304>>2]=o[c+8>>2],o[n+308>>2]=X,X=o[c+4>>2],o[n+296>>2]=o[c>>2],o[n+300>>2]=X,!((0|(c=o[A+64>>2]))<=0)&&(W=Kr(k=(k=m(P/(V?k:W)))>m(.39269909262657166)?m(.19634954631328583):m(k*m(.5))),P=$r(k),(k=m(m($*$)+m(m(u*u)+m(t*t))))>m(1.1920928955078125e-7)))))for(k=m(W/m(N(k))),O=m($*k),L=m(t*k),g=m(u*k),j=m(N(m(m(Y*Y)+m(m(s*s)+m(y*y))))),X=n- -64|0;W=m(m(m(m(6.2831854820251465)/m(0|c))*m(0|iA))*m(.5)),k=m(Kr(W)/j),t=m(Y*k),u=m(y*k),k=m(s*k),W=$r(W),V?(c=o[r+12>>2],M=w[c+36>>2],B=w[c+20>>2],p=w[c+40>>2],$=w[c+24>>2],AA=w[c+32>>2],rA=w[c>>2],fA=w[c+16>>2],q=w[c+4>>2],_=w[c+8>>2],o[n+836>>2]=0,o[n+820>>2]=0,o[n+804>>2]=0,H=m(m(k*O)+m(m(m(W*L)-m(P*u))-m(t*g))),I=m(m(t*O)+m(m(u*L)+m(m(W*P)+m(g*k)))),T=m(m(t*L)+m(m(m(W*g)-m(P*k))-m(u*O))),U=m(m(u*g)+m(m(m(W*O)-m(P*t))-m(k*L))),J=m(m(m(H*t)+m(m(I*k)+m(W*T)))-m(U*u)),x=m(m(m(m(I*W)-m(k*T))-m(H*u))-m(U*t)),K=m(m(m(T*u)+m(m(I*t)+m(W*U)))-m(H*k)),t=m(m(m(U*k)+m(m(I*u)+m(W*H)))-m(T*t)),u=m(m(2)/m(m(x*x)+m(m(K*K)+m(m(J*J)+m(t*t))))),I=m(J*u),T=m(J*I),k=m(t*u),U=m(t*k),W=m(m(1)-m(T+U)),u=m(K*u),aA=m(J*u),tA=m(x*k),H=m(aA-tA),oA=m(t*u),I=m(x*I),t=m(oA+I),w[n+832>>2]=m(p*W)+m(m(_*H)+m($*t)),w[n+828>>2]=m(M*W)+m(m(q*H)+m(t*B)),w[n+824>>2]=m(AA*W)+m(m(rA*H)+m(t*fA)),t=m(oA-I),W=m(J*k),J=m(x*u),k=m(W+J),x=m(K*u),u=m(m(1)-m(T+x)),w[n+816>>2]=m(p*t)+m(m(_*k)+m($*u)),w[n+812>>2]=m(M*t)+m(m(q*k)+m(u*B)),w[n+808>>2]=m(AA*t)+m(m(rA*k)+m(u*fA)),t=m(aA+tA),u=m(m(1)-m(U+x)),k=m(W-J),w[n+800>>2]=m(p*t)+m(m(_*u)+m($*k)),w[n+796>>2]=m(M*t)+m(m(q*u)+m(k*B)),w[n+792>>2]=m(AA*t)+m(m(rA*u)+m(k*fA)),c=o[f+12>>2],h=o[c+4>>2],o[Z>>2]=o[c>>2],o[Z+4>>2]=h,h=o[c+12>>2],o[Z+8>>2]=o[c+8>>2],o[Z+12>>2]=h,h=o[c+28>>2],o[l+8>>2]=o[c+24>>2],o[l+12>>2]=h,h=o[c+20>>2],o[l>>2]=o[c+16>>2],o[l+4>>2]=h,h=o[c+44>>2],o[b+8>>2]=o[c+40>>2],o[b+12>>2]=h,h=o[c+36>>2],o[b>>2]=o[c+32>>2],o[b+4>>2]=h,h=o[c+60>>2],o[d+8>>2]=o[c+56>>2],o[d+12>>2]=h,h=o[c+52>>2],o[d>>2]=o[c+48>>2],o[d+4>>2]=h):(c=o[r+12>>2],h=o[c+12>>2],o[n+800>>2]=o[c+8>>2],o[n+804>>2]=h,h=o[c+4>>2],o[n+792>>2]=o[c>>2],o[n+796>>2]=h,h=o[c+28>>2],o[D+8>>2]=o[c+24>>2],o[D+12>>2]=h,h=o[c+20>>2],o[D>>2]=o[c+16>>2],o[D+4>>2]=h,h=o[c+44>>2],o[F+8>>2]=o[c+40>>2],o[F+12>>2]=h,h=o[c+36>>2],o[F>>2]=o[c+32>>2],o[F+4>>2]=h,h=o[c+60>>2],o[R+8>>2]=o[c+56>>2],o[R+12>>2]=h,h=o[c+52>>2],o[R>>2]=o[c+48>>2],o[R+4>>2]=h,c=o[f+12>>2],M=w[c+36>>2],B=w[c+20>>2],p=w[c+40>>2],$=w[c+24>>2],AA=w[c+32>>2],rA=w[c>>2],fA=w[c+16>>2],q=w[c+4>>2],_=w[c+8>>2],o[n+900>>2]=0,o[n+884>>2]=0,o[n+868>>2]=0,H=m(m(k*O)+m(m(m(W*L)-m(P*u))-m(t*g))),I=m(m(t*O)+m(m(u*L)+m(m(W*P)+m(g*k)))),T=m(m(t*L)+m(m(m(W*g)-m(P*k))-m(u*O))),U=m(m(u*g)+m(m(m(W*O)-m(P*t))-m(k*L))),J=m(m(m(H*t)+m(m(I*k)+m(W*T)))-m(U*u)),x=m(m(m(m(I*W)-m(k*T))-m(H*u))-m(U*t)),K=m(m(m(T*u)+m(m(I*t)+m(W*U)))-m(H*k)),t=m(m(m(U*k)+m(m(I*u)+m(W*H)))-m(T*t)),u=m(m(2)/m(m(x*x)+m(m(K*K)+m(m(J*J)+m(t*t))))),I=m(J*u),T=m(J*I),k=m(t*u),U=m(t*k),W=m(m(1)-m(T+U)),u=m(K*u),aA=m(J*u),tA=m(x*k),H=m(aA-tA),oA=m(t*u),I=m(x*I),t=m(oA+I),w[n+896>>2]=m(p*W)+m(m(_*H)+m($*t)),w[n+892>>2]=m(M*W)+m(m(q*H)+m(t*B)),w[n+888>>2]=m(AA*W)+m(m(rA*H)+m(t*fA)),t=m(oA-I),W=m(J*k),J=m(x*u),k=m(W+J),x=m(K*u),u=m(m(1)-m(T+x)),w[n+880>>2]=m(p*t)+m(m(_*k)+m($*u)),w[n+876>>2]=m(M*t)+m(m(q*k)+m(u*B)),w[n+872>>2]=m(AA*t)+m(m(rA*k)+m(u*fA)),t=m(aA+tA),u=m(m(1)-m(U+x)),k=m(W-J),w[n+864>>2]=m(p*t)+m(m(_*u)+m($*k)),w[n+860>>2]=m(M*t)+m(m(q*u)+m(k*B)),w[n+856>>2]=m(AA*t)+m(m(rA*u)+m(k*fA))),c=o[e+20>>2],o[n+44>>2]=i,o[n+8>>2]=15752,o[n+40>>2]=0,h=o[n+804>>2],o[n+56>>2]=o[n+800>>2],o[n+60>>2]=h,h=o[n+796>>2],o[n+48>>2]=o[n+792>>2],o[n+52>>2]=h,h=o[D+12>>2],o[X+8>>2]=o[D+8>>2],o[X+12>>2]=h,h=o[D+4>>2],o[X>>2]=o[D>>2],o[X+4>>2]=h,h=o[F+12>>2],o[n+88>>2]=o[F+8>>2],o[n+92>>2]=h,h=o[F+4>>2],o[n+80>>2]=o[F>>2],o[n+84>>2]=h,h=o[R+12>>2],o[n+104>>2]=o[R+8>>2],o[n+108>>2]=h,h=o[R+4>>2],o[n+96>>2]=o[R>>2],o[n+100>>2]=h,h=o[Z+12>>2],o[n+120>>2]=o[Z+8>>2],o[n+124>>2]=h,h=o[Z+4>>2],o[n+112>>2]=o[Z>>2],o[n+116>>2]=h,h=o[l+12>>2],o[n+136>>2]=o[l+8>>2],o[n+140>>2]=h,h=o[l+4>>2],o[n+128>>2]=o[l>>2],o[n+132>>2]=h,h=o[b+12>>2],o[n+152>>2]=o[b+8>>2],o[n+156>>2]=h,h=o[b+4>>2],o[n+144>>2]=o[b>>2],o[n+148>>2]=h,h=o[d+12>>2],o[n+168>>2]=o[d+8>>2],o[n+172>>2]=h,h=o[d+4>>2],o[n+160>>2]=o[d>>2],o[n+164>>2]=h,h=o[n+260>>2],o[n+184>>2]=o[n+256>>2],o[n+188>>2]=h,h=o[n+252>>2],o[n+176>>2]=o[n+248>>2],o[n+180>>2]=h,h=o[n+276>>2],o[n+200>>2]=o[n+272>>2],o[n+204>>2]=h,h=o[n+268>>2],o[n+192>>2]=o[n+264>>2],o[n+196>>2]=h,h=o[n+292>>2],o[n+216>>2]=o[n+288>>2],o[n+220>>2]=h,h=o[n+284>>2],o[n+208>>2]=o[n+280>>2],o[n+212>>2]=h,h=o[n+300>>2],o[n+224>>2]=o[n+296>>2],o[n+228>>2]=h,h=o[n+308>>2],o[n+232>>2]=o[n+304>>2],o[n+236>>2]=h,o[n+244>>2]=c,a[n+240|0]=V,eA(E,n+792|0,n+8|0,c,0),(0|(c=o[A+64>>2]))>(0|(iA=iA+1|0)););v[A+52|0]&&(A=o[i+4>>2],o[A+844>>2]&&(r=(0|(f=o[A+836>>2]))==(0|(e=o[o[i+8>>2]+8>>2])),E=A,A=o[o[i+12>>2]+8>>2],OA(E,(r?f:A)+4|0,(r?A:e)+4|0)))}S=n+928|0},function(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n=m(0),t=m(0),c=m(0),b=0,u=0,l=0,s=0,k=m(0),d=0;S=A=S-624|0,t=m(w[r+124>>2]-w[r+60>>2]),c=m(t*t),t=m(w[r+116>>2]-w[r+52>>2]),n=m(t*t),t=m(w[r+120>>2]-w[r+56>>2]),n=m(c+m(n+m(t*t))),t=w[r+276>>2];A:{r:{if(n>2]-w[f+60>>2]),k=m(n*n),n=m(w[f+116>>2]-w[f+52>>2]),c=m(n*n),n=m(w[f+120>>2]-w[f+56>>2]),c=m(k+m(c+m(n*n))),n=w[f+276>>2],c>2],t=w[f+272>>2],e=ae(A+564|0),o[e+32>>2]=0,o[e+36>>2]=0,o[e+20>>2]=1065353216,o[e+24>>2]=1065353216,o[e+4>>2]=8,o[e>>2]=21520,o[e+56>>2]=0,w[e+52>>2]=t,o[e+28>>2]=1065353216,o[e+40>>2]=0,o[e+44>>2]=0,o[e+48>>2]=0,w[e+36>>2]=t,o[A+560>>2]=0,o[A+552>>2]=1566444395,o[A+556>>2]=0,o[A+388>>2]=13280,a[A+360|0]=0,o[A+336>>2]=953267991,o[12+(i=A+12|0)>>2]=e,o[i+8>>2]=b,o[i+4>>2]=A+28,o[i>>2]=22724,b=r+4|0,u=r+68|0,l=f+4|0,s=f+68|0,t=m(1),IA(i,b,u,l,s,A+388|0)&&((n=w[A+552>>2])>2]&&(w[r+268>>2]=n),n>2]&&(w[f+268>>2]=n),t=m(1),n>2],n=w[r+272>>2],e=ae(A+564|0),o[e+32>>2]=0,o[e+36>>2]=0,o[e+20>>2]=1065353216,o[e+24>>2]=1065353216,o[e+4>>2]=8,o[e>>2]=21520,o[e+56>>2]=0,w[e+52>>2]=n,o[e+28>>2]=1065353216,o[e+40>>2]=0,o[e+44>>2]=0,o[e+48>>2]=0,w[e+36>>2]=n,o[A+560>>2]=0,o[A+552>>2]=1566444395,o[A+556>>2]=0,o[A+388>>2]=13280,a[A+360|0]=0,o[A+336>>2]=953267991,o[12+(i=A+12|0)>>2]=d,o[i+8>>2]=e,o[i+4>>2]=A+28,o[i>>2]=22724,IA(i,b,u,l,s,A+388|0)&&((n=w[A+552>>2])>2]&&(w[r+268>>2]=n),n>2]&&(w[f+268>>2]=n),n>2])|!v[A+52|0])){if((0|(e=o[r+4>>2]))==o[r+8>>2]&&!((0|(c=e?e<<1:1))<=(0|e))){if(c&&(o[8488]=o[8488]+1,n=0|Zn[o[8290]](c<<2,16),e=o[r+4>>2]),!((0|e)<=0)){if(f=0,e>>>0>=4)for(b=-4&e;o[(i=f<<2)+n>>2]=o[i+o[r+12>>2]>>2],o[(t=4|i)+n>>2]=o[t+o[r+12>>2]>>2],o[(t=8|i)+n>>2]=o[t+o[r+12>>2]>>2],o[(i|=12)+n>>2]=o[i+o[r+12>>2]>>2],f=f+4|0,(0|b)!=(0|(u=u+4|0)););if(i=3&e)for(;o[(b=f<<2)+n>>2]=o[b+o[r+12>>2]>>2],f=f+1|0,(0|i)!=(0|(l=l+1|0)););}!(f=o[r+12>>2])|!v[r+16|0]||(f&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),e=o[r+4>>2]),o[r+12>>2]=n,a[r+16|0]=1,o[r+8>>2]=c,f=o[A+56>>2]}o[o[r+12>>2]+(e<<2)>>2]=f,o[r+4>>2]=e+1}},en,vn,zi,zi,mi,vn,zi,zi,function(A,r,f,e){A|=0,r|=0,f|=0,e=m(e);var i,n=m(0),t=0,c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0);S=i=S-16|0,w[A+32>>2]=e,t=o[r+4>>2],o[A+8>>2]=o[r>>2],o[A+12>>2]=t,t=o[r+12>>2],o[A+16>>2]=o[r+8>>2],o[A+20>>2]=t,c=w[r+8>>2],b=w[f>>2],u=w[r>>2],l=w[f+4>>2],s=w[r+4>>2],k=w[f+8>>2],n=w[A+28>>2],o[i+12>>2]=0,w[i+8>>2]=k-m(n*c),w[i+4>>2]=l-m(n*s),w[i>>2]=b-m(u*n),e=m(m(n+w[A+24>>2])+e),w[A+32>>2]=e,e>2],Zn[o[o[A>>2]+16>>2]](A,r,i,e),S=i+16|0},vn,function(A,r,f){r|=0,f|=0,o[24+(A|=0)>>2]=f,o[A+16>>2]=r},function(A,r,f){r|=0,f|=0,o[28+(A|=0)>>2]=f,o[A+20>>2]=r},function(A,r,f,e){A|=0,r|=0,f|=0,e=m(e);var i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0);S=i=S-16|0,l=w[r+8>>2],a=w[f+8>>2],B=m(m(l*e)+a),g=w[r+4>>2],V=w[f+4>>2],X=m(m(g*e)+V),D=w[r>>2],n=m(D*e),e=w[f>>2],C=m(n+e),v[A+232|0]?(Z=w[A+48>>2],b=m(-w[A+88>>2]),G=w[A- -64>>2],c=w[A+92>>2],Q=w[A+80>>2],t=w[A+96>>2],F=m(m(m(Z*b)-m(G*c))-m(Q*t)),n=w[A+208>>2],E=w[A+40>>2],W=w[A+56>>2],N=w[A+72>>2],R=m(m(m(E*b)-m(W*c))-m(N*t)),s=w[A+200>>2],p=w[A+44>>2],u=m(p*b),b=w[A+60>>2],u=m(u-m(b*c)),c=w[A+76>>2],u=m(u-m(c*t)),t=w[A+204>>2],t=n=m(m(m(m(F*n)+m(m(R*s)+m(u*t)))+w[A+224>>2])+m(m(B*m(m(Q*n)+m(m(N*s)+m(c*t))))+m(m(C*m(m(Z*n)+m(m(E*s)+m(p*t))))+m(X*m(m(G*n)+m(m(W*s)+m(b*t))))))),s=l,d=m(m(n-a)*l),a=w[A+176>>2],n=w[A+168>>2],l=w[A+172>>2],n=m(m(m(B*m(m(Q*a)+m(m(N*n)+m(c*l))))+m(m(C*m(m(Z*a)+m(m(E*n)+m(p*l))))+m(X*m(m(G*a)+m(m(W*n)+m(b*l))))))+m(m(m(F*a)+m(m(R*n)+m(l*u)))+w[A+216>>2])),h=m(m(n-e)*D),l=B,e=w[A+192>>2],a=w[A+184>>2],B=w[A+188>>2],a=m(m(m(l*m(m(Q*e)+m(m(N*a)+m(c*B))))+m(m(C*m(m(Z*e)+m(m(E*a)+m(p*B))))+m(X*m(m(G*e)+m(m(W*a)+m(b*B))))))+m(m(m(F*e)+m(m(R*a)+m(u*B)))+w[A+220>>2])),e=m(d+m(h+m(g*m(a-V)))),w[i+8>>2]=t+m(s*e),w[i+4>>2]=a+m(g*e),w[i>>2]=n+m(D*e)):(y=w[A+224>>2],Z=w[A+208>>2],G=w[A+200>>2],Q=w[A+204>>2],M=w[A+216>>2],n=w[A+172>>2],E=w[A+176>>2],W=w[A+168>>2],N=w[A+112>>2],d=m(-w[A+152>>2]),s=w[A+128>>2],h=w[A+156>>2],p=w[A+144>>2],Y=w[A+160>>2],b=m(m(m(N*d)-m(s*h))-m(p*Y)),c=w[A+104>>2],t=w[A+120>>2],F=w[A+136>>2],R=m(m(m(c*d)-m(t*h))-m(F*Y)),u=w[A+108>>2],k=m(u*d),d=w[A+124>>2],k=m(k-m(d*h)),h=w[A+140>>2],Y=m(k-m(h*Y)),k=w[A+192>>2],J=w[A+184>>2],x=w[A+188>>2],k=m(m(m(a*m(m(p*k)+m(m(F*J)+m(h*x))))+m(m(e*m(m(N*k)+m(m(c*J)+m(u*x))))+m(V*m(m(s*k)+m(m(t*J)+m(d*x))))))+m(m(m(b*k)+m(m(R*J)+m(Y*x)))+w[A+220>>2])),w[i+4>>2]=k,n=m(m(m(a*m(m(p*E)+m(m(F*W)+m(h*n))))+m(m(e*m(m(N*E)+m(m(c*W)+m(u*n))))+m(V*m(m(s*E)+m(m(t*W)+m(d*n))))))+m(M+m(m(b*E)+m(m(R*W)+m(n*Y))))),w[i>>2]=n,e=m(m(y+m(m(b*Z)+m(m(R*G)+m(Y*Q))))+m(m(a*m(m(p*Z)+m(m(F*G)+m(h*Q))))+m(m(e*m(m(N*Z)+m(m(c*G)+m(u*Q))))+m(V*m(m(s*Z)+m(m(t*G)+m(d*Q))))))),w[i+8>>2]=e,e=m(m(m(B-e)*l)+m(m(m(C-n)*D)+m(g*m(X-k))))),o[i+12>>2]=0,A=o[A+36>>2],Zn[o[o[A>>2]+16>>2]](A,r,i,e),S=i+16|0},ci,function(A){ci(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n,a,t=0,c=m(0),b=0,u=0,l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0);S=a=S-16|0,Zn[o[8294]](6061),t=v[A+76|0],b=o[(n=t?r:f)+4>>2],o[b+4>>2]-21>>>0>8||o[o[(u=t?f:r)+4>>2]+4>>2]>19||(y=m(Zn[o[o[b>>2]+48>>2]](b)),o[i+4>>2]=o[A+72>>2],S=f=S+-64|0,w[56+(r=A+8|0)>>2]=y,o[r+52>>2]=e,o[r+40>>2]=n,o[r+36>>2]=u,o[r+44>>2]=i,e=o[n+12>>2],E=w[e+52>>2],W=w[e+56>>2],t=o[u+12>>2],N=w[t+52>>2],p=w[t+56>>2],c=w[e+20>>2],l=w[e+36>>2],F=w[t+20>>2],R=w[t+36>>2],Y=w[t+24>>2],s=w[e+24>>2],V=w[t+40>>2],k=w[e+40>>2],g=w[t+32>>2],d=w[e+32>>2],X=w[t>>2],h=w[e>>2],D=w[t+16>>2],B=w[e+16>>2],Z=w[e+48>>2],C=w[t+48>>2],G=w[e+4>>2],J=w[t+4>>2],x=w[t+8>>2],Q=w[e+8>>2],o[f+60>>2]=0,o[f+44>>2]=0,o[f+28>>2]=0,w[f+40>>2]=m(V*k)+m(m(x*Q)+m(s*Y)),w[f+36>>2]=m(R*k)+m(m(J*Q)+m(s*F)),w[f+24>>2]=m(V*l)+m(m(x*G)+m(c*Y)),w[f+20>>2]=m(R*l)+m(m(J*G)+m(c*F)),Z=m(-Z),w[f+56>>2]=m(m(m(Q*Z)-m(s*E))-m(k*W))+m(m(p*k)+m(m(C*Q)+m(s*N))),w[f+52>>2]=m(m(m(G*Z)-m(c*E))-m(l*W))+m(m(p*l)+m(m(C*G)+m(c*N))),o[f+12>>2]=0,w[f>>2]=m(g*d)+m(m(X*h)+m(B*D)),w[f+32>>2]=m(g*k)+m(m(X*Q)+m(s*D)),w[f+16>>2]=m(g*l)+m(m(X*G)+m(c*D)),w[f+8>>2]=m(V*d)+m(m(x*h)+m(B*Y)),w[f+4>>2]=m(R*d)+m(m(J*h)+m(B*F)),w[f+48>>2]=m(m(m(h*Z)-m(B*E))-m(d*W))+m(m(p*d)+m(m(C*h)+m(B*N))),e=o[u+4>>2],Zn[o[o[e>>2]+8>>2]](e,f,r+4|0,r+20|0),c=m(w[i+32>>2]+y),w[r+20>>2]=c+w[r+20>>2],w[r+24>>2]=c+w[r+24>>2],w[r+28>>2]=c+w[r+28>>2],w[r+4>>2]=w[r+4>>2]-c,w[r+8>>2]=w[r+8>>2]-c,w[r+12>>2]=w[r+12>>2]-c,S=f- -64|0,f=o[u+8>>2],e=o[A+72>>2],o[e+840>>2]=o[n+8>>2],o[e+836>>2]=f,Zn[o[o[b>>2]+64>>2]](b,r,A+12|0,A+28|0),r=o[i+4>>2],o[r+844>>2]&&(f=(0|(e=o[r+836>>2]))==(0|(t=o[o[i+8>>2]+8>>2])),b=r,r=o[o[i+12>>2]+8>>2],OA(b,(f?e:r)+4|0,(f?r:t)+4|0)),o[A+44>>2]=0,o[A+48>>2]=0),Zn[o[8295]](),S=a+16|0},function(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=m(0),L=m(0),$=m(0),K=m(0),q=m(0),_=m(0),AA=m(0),rA=m(0),fA=m(0),eA=m(0),iA=m(0),nA=m(0),aA=m(0),tA=m(0),oA=m(0),cA=m(0),bA=m(0);return S=e=S-240|0,P=m(1),i=v[A+76|0],u=w[(A=i?f:r)+60>>2],a=m(w[A+124>>2]-u),n=m(a*a),c=w[A+116>>2],E=w[A+52>>2],a=m(c-E),b=m(a*a),N=w[A+56>>2],a=m(w[A+120>>2]-N),n=m(n+m(b+m(a*a))),a=w[A+276>>2],n>2],o[f+4>>2]-21>>>0>8||(t=w[r+12>>2],W=m(-w[r+52>>2]),n=w[r+28>>2],b=w[r+56>>2],l=w[r+44>>2],s=w[r+60>>2],O=m(m(m(t*W)-m(n*b))-m(l*s)),k=w[A+124>>2],p=w[A+120>>2],$=m(m(k*l)+m(m(c*t)+m(n*p))),d=w[r+8>>2],h=w[r+24>>2],B=w[r+40>>2],L=m(m(m(d*W)-m(h*b))-m(B*s)),a=m(L+m(m(k*B)+m(m(c*d)+m(h*p)))),Z=w[r+36>>2],F=w[A+92>>2],K=m(n*F),R=w[A+76>>2],q=m(R*t),Y=w[A+108>>2],V=w[A+88>>2],_=m(n*V),g=w[A+72>>2],AA=m(g*t),X=w[A+104>>2],D=w[A+84>>2],rA=m(n*D),C=w[A+68>>2],fA=m(C*t),J=w[A+100>>2],G=w[r+4>>2],eA=m(R*G),Q=w[r+20>>2],iA=m(Q*F),x=w[A+28>>2],nA=m(n*x),y=w[A+12>>2],aA=m(y*t),M=w[A+44>>2],H=w[A+24>>2],tA=m(n*H),I=w[A+8>>2],oA=m(I*t),T=w[A+40>>2],U=w[A+20>>2],cA=m(n*U),j=w[A+4>>2],bA=m(j*t),z=w[A+36>>2],o[e+236>>2]=0,b=m(m(m(G*W)-m(Q*b))-m(Z*s)),W=s=m(b+m(m(u*Z)+m(m(E*G)+m(Q*N)))),(c=m(b+m(m(k*Z)+m(m(c*G)+m(Q*p)))))>2]=c,W=c),b=k=m(L+m(m(u*B)+m(m(E*d)+m(h*N)))),a>2]=a,b=a),(n=u=m(O+m(m(u*l)+m(m(E*t)+m(n*N)))))>(t=m(O+$))&&(w[e+232>>2]=t,n=t),o[e+220>>2]=0,E=n,n=w[A+272>>2],w[e+232>>2]=E-n,w[e+228>>2]=b-n,w[e+224>>2]=W-n,w[e+216>>2]=n+(t>u?t:u),w[e+212>>2]=n+(a>k?a:k),w[e+208>>2]=n+(c>s?c:s),o[e+132>>2]=0,w[e+128>>2]=t,w[e+124>>2]=a,w[e+120>>2]=c,o[e+116>>2]=0,w[e+112>>2]=m(Y*l)+m(q+K),w[e+108>>2]=m(X*l)+m(AA+_),w[e+104>>2]=m(J*l)+m(fA+rA),o[e+100>>2]=0,w[e+96>>2]=m(Y*B)+m(m(R*d)+m(h*F)),w[e+92>>2]=m(X*B)+m(m(g*d)+m(h*V)),w[e+88>>2]=m(J*B)+m(m(C*d)+m(h*D)),o[e+84>>2]=0,w[e+80>>2]=m(Y*Z)+m(eA+iA),w[e+76>>2]=m(X*Z)+m(m(g*G)+m(Q*V)),o[e+68>>2]=0,w[e- -64>>2]=u,w[e+60>>2]=k,w[e+56>>2]=s,o[e+52>>2]=0,w[e+48>>2]=m(M*l)+m(aA+nA),w[e+44>>2]=m(T*l)+m(oA+tA),w[e+40>>2]=m(z*l)+m(bA+cA),o[e+36>>2]=0,w[e+32>>2]=m(M*B)+m(m(y*d)+m(h*x)),w[e+28>>2]=m(T*B)+m(m(I*d)+m(h*H)),w[e+24>>2]=m(z*B)+m(m(j*d)+m(h*U)),o[e+20>>2]=0,w[e+16>>2]=m(M*Z)+m(m(y*G)+m(Q*x)),w[e+12>>2]=m(T*Z)+m(m(I*G)+m(Q*H)),w[e+200>>2]=n,w[e+72>>2]=m(J*Z)+m(m(C*G)+m(Q*D)),w[e+8>>2]=m(z*Z)+m(m(j*G)+m(Q*U)),o[e+4>>2]=16124,w[e+204>>2]=w[A+268>>2],Zn[o[o[f>>2]+64>>2]](f,e+4|0,e+224|0,e+208|0),(a=w[e+204>>2])>2]&&(w[A+268>>2]=a,P=a))),S=e+240|0,m(P)},function(A,r){r|=0;var f=0,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0;if(f=o[72+(A|=0)>>2]){if((0|(e=o[r+4>>2]))==o[r+8>>2]&&!((0|(c=e?e<<1:1))<=(0|e))){if(c&&(o[8488]=o[8488]+1,n=0|Zn[o[8290]](c<<2,16),e=o[r+4>>2]),!((0|e)<=0)){if(f=0,e>>>0>=4)for(b=-4&e;o[(i=f<<2)+n>>2]=o[i+o[r+12>>2]>>2],o[(t=4|i)+n>>2]=o[t+o[r+12>>2]>>2],o[(t=8|i)+n>>2]=o[t+o[r+12>>2]>>2],o[(i|=12)+n>>2]=o[i+o[r+12>>2]>>2],f=f+4|0,(0|b)!=(0|(u=u+4|0)););if(i=3&e)for(;o[(b=f<<2)+n>>2]=o[b+o[r+12>>2]>>2],f=f+1|0,(0|i)!=(0|(l=l+1|0)););}!(f=o[r+12>>2])|!v[r+16|0]||(f&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),e=o[r+4>>2]),o[r+12>>2]=n,a[r+16|0]=1,o[r+8>>2]=c,f=o[A+72>>2]}o[o[r+12>>2]+(e<<2)>>2]=f,o[r+4>>2]=e+1}},Ee,function(A){Ee(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=0,a=0,t=m(0),c=m(0),b=0,u=m(0),l=0,s=m(0),k=0,d=0,v=0;S=i=S-144|0,Zn[o[8294]](7602),s=(t=w[r>>2])<(c=w[r+16>>2])?t:c,u=w[r+32>>2],w[A+20>>2]<(u>s?s:u)||w[(u<((n=t>c)?t:c)?!n<<4:32)+r>>2]>2]||(s=(t=w[r+8>>2])<(c=w[(n=r+24|0)>>2])?t:c,u=w[(b=r+40|0)>>2],w[A+28>>2]<(u>s?s:u)||(l=n,w[(u<((n=t>c)?t:c)?n?r+8:l:b)>>2]>2]||(s=(t=w[r+4>>2])<(c=w[(n=r+20|0)>>2])?t:c,u=w[(b=r+36|0)>>2],w[A+24>>2]<(u>s?s:u)||(l=n,n=t>c,o[o[o[A+36>>2]+4>>2]+4>>2]>19|w[(u<(n?t:c)?n?r+4:l:b)>>2]>2]||(b=o[A+48>>2],n=oi(i+28|0),o[n+4>>2]=1,o[n>>2]=15956,a=o[r+12>>2],o[n+72>>2]=o[r+8>>2],o[n+76>>2]=a,a=o[r+4>>2],o[n+64>>2]=o[r>>2],o[n+68>>2]=a,a=o[r+28>>2],o[n+88>>2]=o[r+24>>2],o[n+92>>2]=a,a=o[r+20>>2],o[n+80>>2]=o[r+16>>2],o[n+84>>2]=a,a=o[r+44>>2],o[n+104>>2]=o[r+40>>2],o[n+108>>2]=a,a=o[r+36>>2],o[n+96>>2]=o[r+32>>2],o[n+100>>2]=a,w[n+52>>2]=w[A+56>>2],r=o[A+40>>2],a=o[r+8>>2],k=o[r+12>>2],o[i+24>>2]=e,o[i+20>>2]=f,o[i+12>>2]=a,o[i+16>>2]=k,o[i+8>>2]=n,o[i+4>>2]=r,r=o[A+36>>2],r=w[o[A+44>>2]+32>>2]>m(0)?0|Zn[o[o[b>>2]+8>>2]](b,r,i+4|0,0,2):0|Zn[o[o[b>>2]+8>>2]](b,r,i+4|0,o[A+64>>2],1),a=o[A+44>>2],k=o[a+8>>2],o[k+8>>2]!=o[o[A+40>>2]+8>>2]?(k=o[a+12>>2],l=a+12|0,d=3):(l=a+8|0,d=2),v=l,l=i+4|0,o[v>>2]=l,Zn[o[o[a>>2]+(d<<2)>>2]](a,f,e),Zn[o[o[r>>2]+8>>2]](r,o[A+36>>2],l,o[A+52>>2],o[A+44>>2]),f=o[A+44>>2],o[(o[o[f+8>>2]+8>>2]==o[o[A+40>>2]+8>>2]?8:12)+f>>2]=k,Zn[o[o[r>>2]>>2]](r),Zn[o[o[b>>2]+60>>2]](b,r),Ne(n)))))),Zn[o[8295]](),S=i+144|0},Ne,ri,Ke,We,Si,Pe,function(){return 7660},pi,Ri,tn,function(A,r,f){A|=0,r|=0,f|=0;var e=m(0);return te(A,r,f),w[r+28>>2]=w[A+36>>2],w[r+32>>2]=w[A+40>>2],w[r+36>>2]=w[A+44>>2],w[r+40>>2]=w[A+48>>2],w[r+12>>2]=w[A+20>>2],w[r+16>>2]=w[A+24>>2],w[r+20>>2]=w[A+28>>2],w[r+24>>2]=w[A+32>>2],e=w[A+52>>2],o[r+48>>2]=0,w[r+44>>2]=e,8962},Rf,function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0);e=w[f+8>>2],i=w[f>>2],n=w[f+4>>2],f=(a=m(m(e*w[r+72>>2])+m(m(i*w[r+64>>2])+m(n*w[r+68>>2]))))<(t=m(m(e*w[r+88>>2])+m(m(i*w[r+80>>2])+m(n*w[r+84>>2])))),r=(r- -64|0)+((m(m(e*w[r+104>>2])+m(m(i*w[r+96>>2])+m(n*w[r+100>>2])))>(f?t:a)?2:f)<<4)|0,f=o[r+4>>2],o[A>>2]=o[r>>2],o[A+4>>2]=f,f=o[r+12>>2],o[A+8>>2]=o[r+8>>2],o[A+12>>2]=f},function(A,r,f,e,i,n,a){A|=0,r|=0,f|=0,e|=0,i|=0,n|=0,a|=0;var t,c,b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0);S=t=S-48|0,s=w[r+36>>2],k=w[r+20>>2],d=w[r+40>>2],v=w[r+24>>2],h=w[r+4>>2],B=w[r+8>>2],b=w[f+8>>2],Z=w[r+32>>2],u=w[f>>2],G=w[r>>2],l=w[f+4>>2],Q=w[r+16>>2],o[t+44>>2]=0,w[t+32>>2]=m(Z*b)+m(m(G*u)+m(Q*l)),w[t+40>>2]=m(d*b)+m(m(B*u)+m(l*v)),w[t+36>>2]=m(s*b)+m(m(h*u)+m(l*k)),c=t+16|0,Zn[o[o[A>>2]+64>>2]](c,A,t+32|0),v=w[r+56>>2],h=w[r+40>>2],B=w[r+36>>2],Z=w[r+52>>2],G=w[r+24>>2],Q=w[r+20>>2],E=w[r+32>>2],W=w[r+48>>2],N=w[r+8>>2],p=w[r>>2],F=w[r+4>>2],R=w[r+16>>2],b=w[t+24>>2],u=w[t+16>>2],l=w[t+20>>2],o[t+12>>2]=0,w[t+8>>2]=-w[t+40>>2],w[t+4>>2]=-w[t+36>>2],w[t>>2]=-w[t+32>>2],Zn[o[o[A>>2]+64>>2]](c,A,t),Y=w[r+56>>2],V=w[r+40>>2],g=w[r+36>>2],X=w[r+52>>2],D=w[r+24>>2],C=w[r+20>>2],J=w[r+32>>2],x=w[r+48>>2],y=w[r+8>>2],M=w[r>>2],H=w[r+4>>2],I=w[r+16>>2],s=w[t+24>>2],k=w[t+16>>2],d=w[t+20>>2],v=m(v+m(m(b*h)+m(m(u*E)+m(l*B)))),h=m(W+m(m(b*N)+m(m(u*p)+m(l*F)))),b=m(Z+m(m(b*G)+m(m(u*R)+m(l*Q)))),w[e>>2]=m(v*w[f+8>>2])+m(m(h*w[f>>2])+m(b*w[f+4>>2])),u=m(Y+m(m(s*V)+m(m(k*J)+m(d*g)))),l=m(x+m(m(s*y)+m(m(k*M)+m(d*H)))),s=m(X+m(m(s*D)+m(m(k*I)+m(d*C)))),w[i>>2]=m(u*w[f+8>>2])+m(m(l*w[f>>2])+m(s*w[f+4>>2])),o[a+12>>2]=0,w[a+8>>2]=u,w[a+4>>2]=s,w[a>>2]=l,o[n+12>>2]=0,w[n+8>>2]=v,w[n+4>>2]=b,w[n>>2]=h,(k=w[e>>2])>(d=w[i>>2])&&(w[e>>2]=d,w[i>>2]=k,o[a+12>>2]=0,w[a+8>>2]=v,w[a+4>>2]=b,w[a>>2]=h,o[n+12>>2]=0,w[n+8>>2]=u,w[n+4>>2]=s,w[n>>2]=l),S=t+48|0},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=0,n=0,a=0,t=m(0),c=m(0),b=m(0),u=0,l=m(0),s=m(0),k=0;if((0|e)>0)for(k=A- -64|0;n=(i=a<<4)+f|0,t=w[8+(i=r+i|0)>>2],c=w[i>>2],b=w[i+4>>2],i=(l=m(m(t*w[A+72>>2])+m(m(c*w[A+64>>2])+m(b*w[A+68>>2]))))<(s=m(m(t*w[A+88>>2])+m(m(c*w[A+80>>2])+m(b*w[A+84>>2])))),i=((m(m(t*w[A+104>>2])+m(m(c*w[A+96>>2])+m(b*w[A+100>>2])))>(i?s:l)?2:i)<<4)+k|0,u=o[i+4>>2],o[n>>2]=o[i>>2],o[n+4>>2]=u,u=o[i+12>>2],o[n+8>>2]=o[i+8>>2],o[n+12>>2]=u,(0|(a=a+1|0))!=(0|e););},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=0,Z=0,G=0,Q=m(0),E=m(0),W=m(0),N=m(0),p=0;for(S=i=S-80|0,N=m(Zn[o[o[A>>2]+48>>2]](A));o[i+72>>2]=0,o[i+76>>2]=0,o[i+64>>2]=0,o[i+68>>2]=0,o[(p=(Z=G<<2)+(i- -64|0)|0)>>2]=1065353216,c=w[r+32>>2],b=w[r>>2],u=w[r+16>>2],l=w[r+36>>2],s=w[r+4>>2],k=w[r+20>>2],n=w[r+40>>2],a=w[r+8>>2],t=w[r+24>>2],o[i+44>>2]=0,d=n,n=w[i+72>>2],v=a,a=w[i+64>>2],h=t,t=w[i+68>>2],w[i+40>>2]=m(d*n)+m(m(v*a)+m(h*t)),w[i+36>>2]=m(l*n)+m(m(s*a)+m(t*k)),w[i+32>>2]=m(c*n)+m(m(b*a)+m(u*t)),B=i+32|0,Zn[o[o[A>>2]+64>>2]](i+48|0,A,B),c=w[r+48>>2],b=w[r+8>>2],u=w[r>>2],l=w[r+4>>2],s=w[r+52>>2],k=w[r+24>>2],v=w[r+16>>2],h=w[r+20>>2],n=w[r+56>>2],a=w[r+40>>2],t=w[r+32>>2],Q=w[r+36>>2],o[i+44>>2]=0,d=n,n=w[i+56>>2],E=m(a*n),a=w[i+48>>2],W=m(t*a),t=w[i+52>>2],w[i+40>>2]=d+m(E+m(W+m(Q*t))),w[i+36>>2]=s+m(m(n*k)+m(m(a*v)+m(t*h))),w[i+32>>2]=c+m(m(n*b)+m(m(a*u)+m(t*l))),B=Z+B|0,w[e+Z>>2]=N+w[B>>2],o[p>>2]=-1082130432,c=w[r+32>>2],b=w[r>>2],u=w[r+16>>2],l=w[r+36>>2],s=w[r+4>>2],k=w[r+20>>2],n=w[r+40>>2],a=w[r+8>>2],t=w[r+24>>2],o[i+12>>2]=0,d=n,n=w[i+72>>2],v=a,a=w[i+64>>2],h=t,t=w[i+68>>2],w[i+8>>2]=m(d*n)+m(m(v*a)+m(h*t)),w[i+4>>2]=m(l*n)+m(m(s*a)+m(t*k)),w[i>>2]=m(c*n)+m(m(b*a)+m(u*t)),Zn[o[o[A>>2]+64>>2]](i+16|0,A,i),c=w[r+48>>2],b=w[r+8>>2],u=w[r>>2],l=w[r+4>>2],s=w[r+52>>2],k=w[r+24>>2],v=w[r+16>>2],h=w[r+20>>2],n=w[r+56>>2],a=w[r+40>>2],t=w[r+32>>2],Q=w[r+36>>2],o[i+44>>2]=0,d=n,n=w[i+24>>2],E=m(a*n),a=w[i+16>>2],W=m(t*a),t=w[i+20>>2],w[i+40>>2]=d+m(E+m(W+m(Q*t))),w[i+36>>2]=s+m(m(n*k)+m(m(a*v)+m(t*h))),w[i+32>>2]=c+m(m(n*b)+m(m(a*u)+m(t*l))),w[f+Z>>2]=w[B>>2]-N,3!=(0|(G=G+1|0)););S=i+80|0},un,function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0);n=w[A+96>>2],t=w[A+80>>2],b=w[A+84>>2],u=w[A+104>>2],c=w[A+100>>2],e=w[A+68>>2],i=w[A+72>>2],l=w[A+88>>2],a=w[A+64>>2],o[f+12>>2]=0,t=m(t-a),c=m(c-e),a=m(n-a),n=m(b-e),b=e=m(m(t*c)-m(a*n)),s=m(e*e),e=n,n=m(u-i),i=m(l-i),e=m(m(e*n)-m(c*i)),i=m(m(i*a)-m(n*t)),a=m(m(1)/m(N(m(s+m(m(e*e)+m(i*i)))))),n=m(b*a),w[f+8>>2]=n,i=m(i*a),w[f+4>>2]=i,e=m(e*a),w[f>>2]=e,r&&(w[f+8>>2]=-n,w[f+4>>2]=-i,w[f>>2]=-e)},function(A,r){A|=0,r|=0;var f,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0,h=0,B=m(0),Z=m(0),E=0,W=0,p=0,F=m(0),R=m(0),Y=0,V=0,g=m(0),X=0,D=0,C=m(0),J=0,x=m(0),y=m(0),M=0,H=m(0),I=m(0),T=m(0),U=0,j=m(0),z=0,P=0,O=0,L=m(0),$=m(0),q=0,_=m(0),AA=m(0),fA=0;if(S=f=S-192|0,(e=o[A+60>>2])&&(Zn[o[o[e>>2]>>2]](e),(e=o[A+60>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](e))),o[8488]=o[8488]+1,e=0|Zn[o[8290]](132,16),a[e+20|0]=1,o[e>>2]=20936,o[e+16>>2]=0,a[e+40|0]=1,o[e+8>>2]=0,o[e+12>>2]=0,o[e+36>>2]=0,a[e+60|0]=1,o[e+28>>2]=0,o[e+32>>2]=0,o[e+56>>2]=0,o[e+48>>2]=0,o[e+52>>2]=0,o[A+60>>2]=e,o[f+184>>2]=0,o[f+176>>2]=0,o[f+180>>2]=0,a[f+188|0]=1,e=0,(0|Zn[o[o[A>>2]+96>>2]](A))>0){for(u=(Y=o[f+176>>2])-1|0,e=o[f+184>>2],d=v[f+188|0],i=o[f+180>>2];;){if((0|i)==(0|Y)&&!((0|(b=Y?Y<<1:1))<=(0|Y))){if(b?(o[8488]=o[8488]+1,e=0|Zn[o[8290]](b<<4,16)):e=0,!((0|Y)<=0)){if(W=0,i=0,n+u>>>0>=3)for(t=-4&Y,V=0;E=(h=i<<4)+e|0,s=o[4+(l=c+h|0)>>2],o[E>>2]=o[l>>2],o[E+4>>2]=s,s=o[l+12>>2],o[E+8>>2]=o[l+8>>2],o[E+12>>2]=s,E=(s=16|h)+e|0,s=o[12+(l=c+s|0)>>2],o[E+8>>2]=o[l+8>>2],o[E+12>>2]=s,s=o[l+4>>2],o[E>>2]=o[l>>2],o[E+4>>2]=s,E=(s=32|h)+e|0,s=o[12+(l=c+s|0)>>2],o[E+8>>2]=o[l+8>>2],o[E+12>>2]=s,s=o[l+4>>2],o[E>>2]=o[l>>2],o[E+4>>2]=s,E=(s=48|h)+e|0,s=o[12+(l=c+s|0)>>2],o[E+8>>2]=o[l+8>>2],o[E+12>>2]=s,s=o[l+4>>2],o[E>>2]=o[l>>2],o[E+4>>2]=s,i=i+4|0,(0|t)!=(0|(V=V+4|0)););if(t=3&Y)for(;E=(s=i<<4)+e|0,s=o[4+(l=c+s|0)>>2],o[E>>2]=o[l>>2],o[E+4>>2]=s,s=o[l+12>>2],o[E+8>>2]=o[l+8>>2],o[E+12>>2]=s,i=i+1|0,(0|t)!=(0|(W=W+1|0)););}!c||!c|!d||(o[8489]=o[8489]+1,Zn[o[8291]](c)),d=1,i=b}if(Zn[o[o[A>>2]+108>>2]](A,n,(Y<<4)+e|0),Y=Y+1|0,c=e,n=n+1|0,!((0|Zn[o[o[A>>2]+96>>2]](A))>(0|n)))break}a[f+188|0]=d,o[f+180>>2]=i,o[f+176>>2]=Y,o[f+184>>2]=e}if(a[f+148|0]=1,o[f+144>>2]=0,a[f+168|0]=1,o[f+136>>2]=0,o[f+140>>2]=0,o[f+164>>2]=0,o[f+156>>2]=0,o[f+160>>2]=0,o[f+124>>2]=0,a[f+128|0]=1,o[f+116>>2]=0,o[f+120>>2]=0,r){if(Y=0,o[f+28>>2]=0,a[f+32|0]=1,o[f+20>>2]=0,o[f+24>>2]=0,e=0,(0|(X=o[f+176>>2]))>0)for(;;){if(r=e,(0|X)>(0|(e=e+1|0)))for(D=o[f+184>>2]+(r<<4)|0,r=e;;){if(n=r,(0|X)>(0|(r=r+1|0)))for(p=o[f+184>>2]+(n<<4)|0,n=r;;){L=w[D>>2],R=m(w[p>>2]-L),b=(c=o[f+184>>2])+(n<<4)|0,j=w[D+4>>2],g=m(w[b+4>>2]-j),F=m(w[b>>2]-L),B=m(w[p+4>>2]-j),y=m(m(R*g)-m(F*B)),C=w[D+8>>2],Z=m(w[b+8>>2]-C),I=m(B*Z),B=m(w[p+8>>2]-C),g=m(I-m(g*B)),F=m(m(B*F)-m(Z*R));A:if(u=(Z=m(m(y*y)+m(m(g*g)+m(F*F))))>m(9999999747378752e-20)){if(B=m(m(1)/m(N(Z))),x=m(y*B),H=m(F*B),R=m(g*B),(0|(b=o[f+20>>2]))>0){if(i=0,d=o[f+28>>2],m(m(x*w[d+8>>2])+m(m(R*w[d>>2])+m(H*w[d+4>>2])))>m(.9990000128746033))break A;for(;!((0|b)==(0|(i=i+1|0))||m(m(x*w[8+(s=d+(i<<4)|0)>>2])+m(m(R*w[s>>2])+m(H*w[s+4>>2])))>m(.9990000128746033)););if((0|i)<(0|b))break A}if(B=m(m(x*C)+m(m(R*L)+m(H*j))),(0|(d=o[f+176>>2]))>0){if(i=0,m(m(m(m(x*w[c+8>>2])+m(m(R*w[c>>2])+m(H*w[c+4>>2])))-B)+m(-.009999999776482582))>m(0))break A;for(;!((0|d)==(0|(i=i+1|0))||m(m(m(m(x*w[8+(s=c+(i<<4)|0)>>2])+m(m(R*w[s>>2])+m(H*w[s+4>>2])))-B)+m(-.009999999776482582))>m(0)););if((0|i)<(0|d))break A}if(B=m(-B),o[f+24>>2]==(0|b)&&!((0|(k=b?b<<1:1))<=(0|b))){if(k?(o[8488]=o[8488]+1,d=0|Zn[o[8290]](k<<4,16),b=o[f+20>>2]):d=0,!((0|b)<=0)){if(t=1&b,i=0,1!=(0|b))for(E=-2&b,b=0;c=(l=i<<4)+d|0,h=l+o[f+28>>2]|0,s=o[h+4>>2],o[c>>2]=o[h>>2],o[c+4>>2]=s,s=o[h+12>>2],o[c+8>>2]=o[h+8>>2],o[c+12>>2]=s,c=(s=16|l)+d|0,l=s+o[f+28>>2]|0,s=o[l+4>>2],o[c>>2]=o[l>>2],o[c+4>>2]=s,s=o[l+12>>2],o[c+8>>2]=o[l+8>>2],o[c+12>>2]=s,i=i+2|0,(0|E)!=(0|(b=b+2|0)););t&&(s=(b=i<<4)+d|0,i=b+o[f+28>>2]|0,b=o[i+4>>2],o[s>>2]=o[i>>2],o[s+4>>2]=b,b=o[i+12>>2],o[s+8>>2]=o[i+8>>2],o[s+12>>2]=b)}!(b=o[f+28>>2])||!b|!v[f+32|0]||(o[8489]=o[8489]+1,Zn[o[8291]](b)),o[f+28>>2]=d,a[f+32|0]=1,o[f+24>>2]=k,b=o[f+20>>2]}b=o[f+28>>2]+(b<<4)|0,w[b+12>>2]=B,w[b+8>>2]=x,w[b+4>>2]=H,w[b>>2]=R,o[f+20>>2]=o[f+20>>2]+1}A:if(u){if(B=m(m(1)/m(N(Z))),R=m(B*m(-y)),F=m(B*m(-F)),Z=m(B*m(-g)),(0|(b=o[f+20>>2]))>0){if(i=0,d=o[f+28>>2],m(m(R*w[d+8>>2])+m(m(Z*w[d>>2])+m(F*w[d+4>>2])))>m(.9990000128746033))break A;for(;!((0|b)==(0|(i=i+1|0))||m(m(R*w[8+(s=d+(i<<4)|0)>>2])+m(m(Z*w[s>>2])+m(F*w[s+4>>2])))>m(.9990000128746033)););if((0|i)<(0|b))break A}if(B=m(m(R*w[D+8>>2])+m(m(Z*w[D>>2])+m(F*w[D+4>>2]))),(0|(d=o[f+176>>2]))>0){if(i=0,c=o[f+184>>2],m(m(m(m(R*w[c+8>>2])+m(m(Z*w[c>>2])+m(F*w[c+4>>2])))-B)+m(-.009999999776482582))>m(0))break A;for(;!((0|d)==(0|(i=i+1|0))||m(m(m(m(R*w[8+(s=c+(i<<4)|0)>>2])+m(m(Z*w[s>>2])+m(F*w[s+4>>2])))-B)+m(-.009999999776482582))>m(0)););if((0|i)<(0|d))break A}if(B=m(-B),o[f+24>>2]==(0|b)&&!((0|(h=b?b<<1:1))<=(0|b))){if(h?(o[8488]=o[8488]+1,d=0|Zn[o[8290]](h<<4,16),b=o[f+20>>2]):d=0,!((0|b)<=0)){if(t=1&b,i=0,1!=(0|b))for(E=-2&b,b=0;c=(u=i<<4)+d|0,l=u+o[f+28>>2]|0,s=o[l+4>>2],o[c>>2]=o[l>>2],o[c+4>>2]=s,s=o[l+12>>2],o[c+8>>2]=o[l+8>>2],o[c+12>>2]=s,c=(s=16|u)+d|0,u=s+o[f+28>>2]|0,s=o[u+4>>2],o[c>>2]=o[u>>2],o[c+4>>2]=s,s=o[u+12>>2],o[c+8>>2]=o[u+8>>2],o[c+12>>2]=s,i=i+2|0,(0|E)!=(0|(b=b+2|0)););t&&(s=(b=i<<4)+d|0,i=b+o[f+28>>2]|0,b=o[i+4>>2],o[s>>2]=o[i>>2],o[s+4>>2]=b,b=o[i+12>>2],o[s+8>>2]=o[i+8>>2],o[s+12>>2]=b)}!(b=o[f+28>>2])||!b|!v[f+32|0]||(o[8489]=o[8489]+1,Zn[o[8291]](b)),o[f+28>>2]=d,a[f+32|0]=1,o[f+24>>2]=h,b=o[f+20>>2]}b=o[f+28>>2]+(b<<4)|0,w[b+12>>2]=B,w[b+8>>2]=R,w[b+4>>2]=F,w[b>>2]=Z,o[f+20>>2]=o[f+20>>2]+1}if(!((0|X)>(0|(n=n+1|0))))break}if((0|r)==(0|X))break}if((0|e)==(0|X))break}if(o[f+104>>2]=0,a[f+108|0]=1,o[f+96>>2]=0,o[f+100>>2]=0,!(o[f+20>>2]<=0))for(;;){if(r=o[f+28>>2]+(Y<<4)|0,o[f+80>>2]=o[r+8>>2],e=o[r+4>>2],o[f+72>>2]=o[r>>2],o[f+76>>2]=e,B=m(w[r+12>>2]-m(Zn[o[o[A>>2]+48>>2]](A))),(0|(e=o[f+96>>2]))==o[f+100>>2]&&!((0|(t=e?e<<1:1))<=(0|e))){if(t?(o[8488]=o[8488]+1,c=0|Zn[o[8290]](t<<4,16),e=o[f+96>>2]):c=0,!((0|e)<=0)){if(i=0,1!=(0|e))for(s=-2&e,n=0;b=(d=i<<4)+c|0,E=d+o[f+104>>2]|0,r=o[E+4>>2],o[b>>2]=o[E>>2],o[b+4>>2]=r,r=o[E+12>>2],o[b+8>>2]=o[E+8>>2],o[b+12>>2]=r,b=(r=16|d)+c|0,d=r+o[f+104>>2]|0,r=o[d+4>>2],o[b>>2]=o[d>>2],o[b+4>>2]=r,r=o[d+12>>2],o[b+8>>2]=o[d+8>>2],o[b+12>>2]=r,i=i+2|0,(0|s)!=(0|(n=n+2|0)););1&e&&(e=(r=i<<4)+c|0,n=r+o[f+104>>2]|0,r=o[n+4>>2],o[e>>2]=o[n>>2],o[e+4>>2]=r,r=o[n+12>>2],o[e+8>>2]=o[n+8>>2],o[e+12>>2]=r)}!(r=o[f+104>>2])||!r|!v[f+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[f+104>>2]=c,a[f+108|0]=1,o[f+100>>2]=t,e=o[f+96>>2]}if(r=o[f+76>>2],e=o[f+104>>2]+(e<<4)|0,o[e>>2]=o[f+72>>2],o[e+4>>2]=r,r=o[f+80>>2],w[e+12>>2]=B,o[e+8>>2]=r,o[f+96>>2]=o[f+96>>2]+1,!((0|(Y=Y+1|0))>2]))break}if(o[f+84>>2]=0,a[f+88|0]=1,o[f+76>>2]=0,o[f+80>>2]=0,e=0,(0|(p=o[f+96>>2]))>0)for(;;){if(r=e,(0|p)>(0|(e=e+1|0)))for(k=o[f+104>>2]+(r<<4)|0,r=e;;){if(n=r,(0|p)>(0|(r=r+1|0)))for(h=o[f+104>>2]+(n<<4)|0,n=r;;){$=w[h>>2],i=o[f+104>>2],R=w[4+(b=i+(n<<4)|0)>>2],g=w[b>>2],F=w[h+4>>2],I=m(m($*R)-m(g*F)),Z=w[b+8>>2],B=w[h+8>>2],x=m(m(F*Z)-m(R*B)),H=m(m(B*g)-m(Z*$));A:if(m(m(I*I)+m(m(x*x)+m(H*H)))>m(9999999747378752e-20)&&(_=w[k+4>>2],AA=w[k>>2],y=m(m(g*_)-m(AA*R)),T=w[k+8>>2],L=m(m(R*T)-m(_*Z)),j=m(m(Z*AA)-m(T*g)),m(m(y*y)+m(m(L*L)+m(j*j)))>m(9999999747378752e-20)&&(Z=m(m(AA*F)-m($*_)),C=m(m(_*B)-m(F*T)),R=m(m(T*$)-m(B*AA)),m(m(Z*Z)+m(m(C*C)+m(R*R)))>m(9999999747378752e-20)&&(B=m(m(T*I)+m(m(AA*x)+m(_*H))),m(Q(B))>m(9.999999974752427e-7))))){if(g=m(m(-1)/B),F=w[b+12>>2],T=m(Z*F),Z=w[k+12>>2],B=w[h+12>>2],y=m(g*m(T+m(m(I*Z)+m(y*B)))),R=m(g*m(m(R*F)+m(m(H*Z)+m(j*B)))),B=m(g*m(m(C*F)+m(m(x*Z)+m(L*B)))),(0|(s=o[f+96>>2]))>0){if(b=0,m(m(w[i+12>>2]+m(m(w[i+8>>2]*y)+m(m(w[i>>2]*B)+m(R*w[i+4>>2]))))+m(-.009999999776482582))>m(0))break A;for(;!((0|s)==(0|(b=b+1|0))||m(m(w[12+(d=i+(b<<4)|0)>>2]+m(m(w[d+8>>2]*y)+m(m(w[d>>2]*B)+m(R*w[d+4>>2]))))+m(-.009999999776482582))>m(0)););if((0|b)<(0|s))break A}if((0|(i=o[f+76>>2]))==o[f+80>>2]&&!((0|(l=i?i<<1:1))<=(0|i))){if(l?(o[8488]=o[8488]+1,b=0|Zn[o[8290]](l<<4,16),i=o[f+76>>2]):b=0,!((0|i)<=0)){if(E=0,1!=(0|i))for(c=-2&i,V=0;d=(t=E<<4)+b|0,u=t+o[f+84>>2]|0,s=o[u+4>>2],o[d>>2]=o[u>>2],o[d+4>>2]=s,s=o[u+12>>2],o[d+8>>2]=o[u+8>>2],o[d+12>>2]=s,d=(s=16|t)+b|0,t=s+o[f+84>>2]|0,s=o[t+4>>2],o[d>>2]=o[t>>2],o[d+4>>2]=s,s=o[t+12>>2],o[d+8>>2]=o[t+8>>2],o[d+12>>2]=s,E=E+2|0,(0|c)!=(0|(V=V+2|0)););1&i&&(d=(s=E<<4)+b|0,i=s+o[f+84>>2]|0,s=o[i+4>>2],o[d>>2]=o[i>>2],o[d+4>>2]=s,s=o[i+12>>2],o[d+8>>2]=o[i+8>>2],o[d+12>>2]=s)}!(s=o[f+84>>2])||!s|!v[f+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](s)),o[f+84>>2]=b,a[f+88|0]=1,o[f+80>>2]=l,i=o[f+76>>2]}b=o[f+84>>2]+(i<<4)|0,o[b+12>>2]=0,w[b+8>>2]=y,w[b+4>>2]=R,w[b>>2]=B,o[f+76>>2]=o[f+76>>2]+1}if(!((0|p)>(0|(n=n+1|0))))break}if((0|r)==(0|p))break}if((0|e)==(0|p))break}K(f+112|0,o[f+84>>2],o[f+76>>2]),!(r=o[f+84>>2])||!r|!v[f+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),!(r=o[f+104>>2])||!r|!v[f+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),!(r=o[f+28>>2])|!v[f+32|0]||r&&(o[8489]=o[8489]+1,Zn[o[8291]](r))}else K(f+112|0,e,o[f+176>>2]);A:{r:{if((0|(s=o[f+156>>2]))>=0){if(s)break r;o[f+32>>2]=0,o[f+36>>2]=0,o[f+48>>2]=0,o[f+40>>2]=0,o[f+44>>2]=0,o[f+24>>2]=0,o[f+28>>2]=0,a[f+32|0]=1,o[f+16>>2]=0,o[f+20>>2]=0,o[f+20>>2]=0;break A}for(o[f+32>>2]=0,o[f+36>>2]=0,o[f+48>>2]=0,o[f+40>>2]=0,o[f+44>>2]=0,o[f+24>>2]=0,o[f+28>>2]=0,a[f+32|0]=1,o[f+16>>2]=0,o[f+20>>2]=0,o[f+20>>2]=0,e=s;n=G(e,36),!(r=o[n+12>>2])||!r|!v[n+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[n+12>>2]=0,a[n+16|0]=1,o[n+4>>2]=0,o[n+8>>2]=0,e=e+1|0;);break A}for(o[8488]=o[8488]+1,fA=0|Zn[o[8290]](s<<4,16),o[f+32>>2]=0,o[f+36>>2]=0,i=0,o[f+48>>2]=0,o[f+40>>2]=0,o[f+44>>2]=0,o[f+24>>2]=0,o[f+28>>2]=0,a[f+32|0]=1,o[f+16>>2]=0,o[f+20>>2]=0,o[f+20>>2]=0,o[8488]=o[8488]+1,z=0|Zn[o[8290]](G(s,36),16);Fr(e=G(i,36)+z|0,f+16|0),r=o[f+48>>2],o[e+28>>2]=o[f+44>>2],o[e+32>>2]=r,r=o[f+40>>2],o[e+20>>2]=o[f+36>>2],o[e+24>>2]=r,(0|s)!=(0|(i=i+1|0)););}if(!(r=o[f+28>>2])||!r|!v[f+32|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),t=o[A+60>>2],!((0|(c=o[t+8>>2]))>=(0|(E=o[f+116>>2]))|(0|E)<=o[t+12>>2])){if(E?(o[8488]=o[8488]+1,W=0|Zn[o[8290]](E<<4,16),c=o[t+8>>2]):W=0,!((0|c)<=0)){if(e=0,1!=(0|c))for(b=-2&c,V=0;n=(d=e<<4)+W|0,i=d+o[t+16>>2]|0,r=o[i+4>>2],o[n>>2]=o[i>>2],o[n+4>>2]=r,r=o[i+12>>2],o[n+8>>2]=o[i+8>>2],o[n+12>>2]=r,n=(r=16|d)+W|0,d=r+o[t+16>>2]|0,r=o[d+4>>2],o[n>>2]=o[d>>2],o[n+4>>2]=r,r=o[d+12>>2],o[n+8>>2]=o[d+8>>2],o[n+12>>2]=r,e=e+2|0,(0|b)!=(0|(V=V+2|0)););1&c&&(e=(r=e<<4)+W|0,n=r+o[t+16>>2]|0,r=o[n+4>>2],o[e>>2]=o[n>>2],o[e+4>>2]=r,r=o[n+12>>2],o[e+8>>2]=o[n+8>>2],o[e+12>>2]=r)}!(r=o[t+16>>2])||!r|!v[t+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[t+16>>2]=W,a[t+20|0]=1,o[t+12>>2]=E}if(o[t+8>>2]=E,!((0|E)<=0)){if(i=0,1!=(0|E))for(n=-2&E,c=0;e=(b=i<<4)+o[o[A+60>>2]+16>>2]|0,d=b+o[f+124>>2]|0,r=o[d+4>>2],o[e>>2]=o[d>>2],o[e+4>>2]=r,r=o[d+12>>2],o[e+8>>2]=o[d+8>>2],o[e+12>>2]=r,e=(r=16|b)+o[o[A+60>>2]+16>>2]|0,b=r+o[f+124>>2]|0,r=o[b+4>>2],o[e>>2]=o[b>>2],o[e+4>>2]=r,r=o[b+12>>2],o[e+8>>2]=o[b+8>>2],o[e+12>>2]=r,i=i+2|0,(0|n)!=(0|(c=c+2|0)););1&E&&(e=(r=i<<4)+o[o[A+60>>2]+16>>2]|0,n=r+o[f+124>>2]|0,r=o[n+4>>2],o[e>>2]=o[n>>2],o[e+4>>2]=r,r=o[n+12>>2],o[e+8>>2]=o[n+8>>2],o[e+12>>2]=r)}A:{r:{f:{if(!((0|s)<=0)){for(c=0;;){k=G(c,36)+z|0,n=o[k+4>>2],d=0,Y=t=o[f+144>>2]+G(o[o[f+164>>2]+(c<<2)>>2],12)|0;e:{for(;;){if(E=o[8+(G(o[Y+4>>2],12)+Y|0)>>2],o[k+8>>2]==(0|n)&&!((0|(u=n?n<<1:1))<=(0|n))){u?(o[8488]=o[8488]+1,e=0|Zn[o[8290]](u<<2,16),n=o[k+4>>2]):e=0,h=o[k+12>>2];i:{n:if((0|n)>0){if(W=0,i=0,n>>>0>=4)for(b=-4&n,J=0;o[(l=i<<2)+e>>2]=o[l+h>>2],o[(r=4|l)+e>>2]=o[r+h>>2],o[(r=8|l)+e>>2]=o[r+h>>2],o[(r=12|l)+e>>2]=o[r+h>>2],i=i+4|0,(0|b)!=(0|(J=J+4|0)););if(!(n&=3))break n;for(;o[(r=i<<2)+e>>2]=o[r+h>>2],i=i+1|0,(0|n)!=(0|(W=W+1|0)););}else if(!h)break i;h&&v[k+16|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](h)),n=o[k+4>>2]}o[k+12>>2]=e,a[k+16|0]=1,o[k+8>>2]=u}o[o[k+12>>2]+(n<<2)>>2]=E,n=o[k+4>>2]+1|0,o[k+4>>2]=n;i:{if((0|d)<=1){if(r=o[f+124>>2],C=w[8+(e=r+(E<<4)|0)>>2],r=r+(o[Y+8>>2]<<4)|0,R=w[r+8>>2],g=w[e>>2],F=w[r>>2],Z=w[e+4>>2],B=w[r+4>>2],o[12+(r=(f+16|0)+(d<<4)|0)>>2]=0,R=m(R-C),F=m(F-g),B=m(B-Z),Z=m(m(1)/m(N(m(m(R*R)+m(m(F*F)+m(B*B)))))),w[r+8>>2]=R*Z,w[r+4>>2]=B*Z,w[r>>2]=F*Z,d=d+1|0,r=G(o[Y+4>>2],12)+Y|0,(0|t)!=(0|(Y=G(o[r>>2],12)+r|0)))continue;if(2==(0|d))break i;o[(r=(c<<4)+fA|0)>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0;break e}if(d=2,r=G(o[Y+4>>2],12)+Y|0,(0|t)!=(0|(Y=G(o[r>>2],12)+r|0)))continue}break}j=w[f+20>>2],Z=w[f+36>>2],C=w[f+32>>2],R=w[f+24>>2],g=w[f+16>>2],B=w[f+40>>2],o[12+(r=(c<<4)+fA|0)>>2]=0,F=m(m(g*Z)-m(C*j)),Z=m(m(j*B)-m(Z*R)),B=m(m(R*C)-m(B*g)),g=m(m(1)/m(N(m(m(F*F)+m(m(Z*Z)+m(B*B)))))),w[r+8>>2]=F*g,w[r+4>>2]=B*g,B=m(Z*g),w[r>>2]=B,w[k+20>>2]=B,w[k+24>>2]=w[r+4>>2],B=w[r+8>>2],o[k+32>>2]=1900671690,w[k+28>>2]=B}if((0|(e=o[k+4>>2]))<=0)C=m(1.0000000150474662e30);else{if(n=1&e,R=w[8+(r=(c<<4)+fA|0)>>2],g=w[r+4>>2],F=w[r>>2],E=o[o[A+60>>2]+16>>2],d=o[k+12>>2],1!=(0|e))for(e&=-2,C=m(1.0000000150474662e30),i=0,W=0;b=E+(o[d+(4|(r=i<<2))>>2]<<4)|0,Z=m(m(w[b+8>>2]*R)+m(m(w[b>>2]*F)+m(w[b+4>>2]*g))),r=E+(o[r+d>>2]<<4)|0,C=(B=(B=m(m(w[r+8>>2]*R)+m(m(w[r>>2]*F)+m(w[r+4>>2]*g))))Z?Z:B,i=i+2|0,(0|e)!=(0|(W=W+2|0)););else C=m(1.0000000150474662e30),i=0;n&&(r=E+(o[d+(i<<2)>>2]<<4)|0,C=(B=m(m(w[r+8>>2]*R)+m(m(w[r>>2]*F)+m(w[r+4>>2]*g))))>2]=-C,(0|s)==(0|(c=c+1|0)))break}if(n=0,!((0|s)<=0)){for(E=0,r=0;;){if((0|r)==(0|n))if(n>>>0>=(r=n?n<<1:1)>>>0)r=n;else{o[8488]=o[8488]+1,e=0|Zn[o[8290]](r<<2,16);e:{i:if(n){if(W=0,i=0,n>>>0>=4)for(d=2147483644&n,V=0;o[(c=i<<2)+e>>2]=o[c+E>>2],o[(b=4|c)+e>>2]=o[b+E>>2],o[(b=8|c)+e>>2]=o[b+E>>2],o[(b=12|c)+e>>2]=o[b+E>>2],i=i+4|0,(0|d)!=(0|(V=V+4|0)););if(!(d=3&n))break i;for(;o[(b=i<<2)+e>>2]=o[b+E>>2],i=i+1|0,(0|d)!=(0|(W=W+1|0)););}else if(!E){r=1;break e}E&&(o[8489]=o[8489]+1,Zn[o[8291]](E))}E=e}if(o[(n<<2)+E>>2]=n,(0|s)==(0|(n=n+1|0)))break}for(b=s;;){r=o[((e=b-1|0)<<2)+E>>2],o[8488]=o[8488]+1,d=0|Zn[o[8290]](4,16),o[d>>2]=r;e:{if((0|b)<2)b=e,P=1;else{for(r=G(r,36)+z|0,F=w[r+20>>2],Z=w[r+28>>2],B=w[r+24>>2],i=b-2|0,r=1,b=e,P=1;;){if(c=i,l=o[(i<<2)+E>>2],e=G(l,36)+z|0,m(m(Z*w[e+28>>2])+m(m(F*w[e+20>>2])+m(B*w[e+24>>2])))>m(.9990000128746033)){i:if((0|r)!=(0|P)||(0|(n=r?r<<1:1))<=(0|r))n=r,e=d;else{n?(o[8488]=o[8488]+1,e=0|Zn[o[8290]](n<<2,16)):e=0;n:if((0|r)>0){if(W=0,i=0,r>>>0>=4)for(u=-4&r,Y=0;o[(h=i<<2)+e>>2]=o[d+h>>2],o[(t=4|h)+e>>2]=o[t+d>>2],o[(t=8|h)+e>>2]=o[t+d>>2],o[(t=12|h)+e>>2]=o[t+d>>2],i=i+4|0,(0|u)!=(0|(Y=Y+4|0)););if(!(t=3&r))break n;for(;o[(r=i<<2)+e>>2]=o[r+d>>2],i=i+1|0,(0|t)!=(0|(W=W+1|0)););}else if(!d)break i;d&&(o[8489]=o[8489]+1,Zn[o[8291]](d))}o[(P<<2)+e>>2]=l,P=P+1|0,i=0;i:if(!((0|b)<=0)){for(;;){if((0|l)!=o[(r=(i<<2)+E|0)>>2]){if((0|b)!=(0|(i=i+1|0)))continue;break i}break}(0|i)>=(0|b)||(i=r,r=((b=b-1|0)<<2)+E|0,o[i>>2]=o[r>>2],o[r>>2]=l)}d=e,r=n}if(i=c-1|0,!((0|c)>0))break}if((0|P)>1){for(e=0,o[f+104>>2]=0,a[f+108|0]=1,o[f+96>>2]=0,o[f+100>>2]=0,o[f+8>>2]=0,o[f+12>>2]=0,o[f>>2]=0,o[f+4>>2]=0,c=0;;){if(X=G(o[(c<<2)+d>>2],36)+z|0,Z=w[X+28>>2],B=w[X+24>>2],w[f>>2]=w[X+20>>2]+w[f>>2],w[f+4>>2]=B+w[f+4>>2],w[f+8>>2]=Z+w[f+8>>2],(0|(W=o[X+4>>2]))>0)for(n=0;;){k=o[o[X+12>>2]+(n<<2)>>2],t=o[o[A+60>>2]+16>>2];i:{if((0|e)>0)for(i=0,r=o[f+104>>2];;){if((0|k)==o[20+(r+G(i,24)|0)>>2])break i;if((0|(i=i+1|0))==(0|e))break}if(r=o[12+(i=t+(k<<4)|0)>>2],o[f+24>>2]=o[i+8>>2],o[f+28>>2]=r,r=o[i+4>>2],o[f+16>>2]=o[i>>2],o[f+20>>2]=r,o[f+100>>2]==(0|e)&&!((0|(h=e?e<<1:1))<=(0|e))){if(h?(o[8488]=o[8488]+1,W=0|Zn[o[8290]](G(h,24),16),e=o[f+96>>2]):W=0,D=o[f+104>>2],!((0|e)<=0)){if(J=0,i=0,e>>>0>=4)for(l=-4&e,r=0;u=(t=G(i,24))+W|0,t=o[4+(p=t+D|0)>>2],o[u>>2]=o[p>>2],o[u+4>>2]=t,t=o[p+20>>2],o[u+16>>2]=o[p+16>>2],o[u+20>>2]=t,t=o[p+12>>2],o[u+8>>2]=o[p+8>>2],o[u+12>>2]=t,u=(t=G(1|i,24))+W|0,t=o[20+(p=t+D|0)>>2],o[u+16>>2]=o[p+16>>2],o[u+20>>2]=t,t=o[p+12>>2],o[u+8>>2]=o[p+8>>2],o[u+12>>2]=t,t=o[p+4>>2],o[u>>2]=o[p>>2],o[u+4>>2]=t,u=(t=G(2|i,24))+W|0,t=o[20+(p=t+D|0)>>2],o[u+16>>2]=o[p+16>>2],o[u+20>>2]=t,t=o[p+12>>2],o[u+8>>2]=o[p+8>>2],o[u+12>>2]=t,t=o[p+4>>2],o[u>>2]=o[p>>2],o[u+4>>2]=t,u=(t=G(3|i,24))+W|0,t=o[20+(p=t+D|0)>>2],o[u+16>>2]=o[p+16>>2],o[u+20>>2]=t,t=o[p+12>>2],o[u+8>>2]=o[p+8>>2],o[u+12>>2]=t,t=o[p+4>>2],o[u>>2]=o[p>>2],o[u+4>>2]=t,i=i+4|0,(0|l)!=(0|(r=r+4|0)););if(u=3&e)for(;t=(r=G(i,24))+W|0,r=o[4+(l=r+D|0)>>2],o[t>>2]=o[l>>2],o[t+4>>2]=r,r=o[l+20>>2],o[t+16>>2]=o[l+16>>2],o[t+20>>2]=r,r=o[l+12>>2],o[t+8>>2]=o[l+8>>2],o[t+12>>2]=r,i=i+1|0,(0|u)!=(0|(J=J+1|0)););}!D|!v[f+108|0]||(D&&(o[8489]=o[8489]+1,Zn[o[8291]](D)),e=o[f+96>>2]),o[f+104>>2]=W,a[f+108|0]=1,o[f+100>>2]=h}r=o[f+20>>2],t=o[f+104>>2]+G(e,24)|0,o[(e=t)>>2]=o[f+16>>2],o[e+4>>2]=r,i=o[f+28>>2],e=o[f+24>>2],r=o[f+32>>2],o[t+20>>2]=k,o[t+16>>2]=r,o[t+8>>2]=e,o[t+12>>2]=i,e=o[f+96>>2]+1|0,o[f+96>>2]=e,W=o[X+4>>2]}if(!((0|W)>(0|(n=n+1|0))))break}if((0|P)==(0|(c=c+1|0)))break}o[f+28>>2]=0,a[f+32|0]=1,o[f+20>>2]=0,o[f+24>>2]=0,r=G(o[d>>2],36)+z|0,w[f+36>>2]=w[r+20>>2],w[f+40>>2]=w[r+24>>2],w[f+44>>2]=w[r+28>>2],w[f+48>>2]=w[r+32>>2],o[f+84>>2]=0,a[f+88|0]=1,o[f+76>>2]=0,o[f+80>>2]=0,F=w[f+8>>2],Z=w[f>>2],B=w[f+4>>2],g=m(m(1)/m(N(m(m(F*F)+m(m(Z*Z)+m(B*B)))))),w[f+8>>2]=F*g,w[f+4>>2]=B*g,w[f>>2]=Z*g,p=f+92|0,e=0,J=0,c=0,T=m(0),$=m(0),S=X=S-32|0,R=w[f+8>>2],m(Q(R))>m(.7071067690849304)?(Z=w[f+4>>2],B=m(m(Z*Z)+m(R*R)),F=m(m(1)/m(N(B))),H=m(B*F),B=w[f>>2],I=m(F*m(-R)),y=m(B*I),$=m(Z*F),B=m($*m(-B))):(F=w[f>>2],Z=w[f+4>>2],B=m(m(F*F)+m(Z*Z)),g=m(m(1)/m(N(B))),y=m(B*g),I=m(F*g),H=m(I*m(-R)),T=m(g*m(-Z)),B=m(R*T));i:if((0|(n=o[p+4>>2]))>=2){for(;t=o[p+12>>2],i=G(e,24),m(m(w[8+(r=t+i|0)>>2]*$)+m(m(w[r>>2]*T)+m(I*w[r+4>>2])))>2]*$)+m(m(w[t>>2]*T)+m(I*w[t+4>>2])))&&(n=o[t+20>>2],o[X+24>>2]=o[t+16>>2],o[X+28>>2]=n,n=o[t+12>>2],o[X+16>>2]=o[t+8>>2],o[X+20>>2]=n,n=o[t+4>>2],o[X+8>>2]=o[t>>2],o[X+12>>2]=n,n=o[r+4>>2],o[t>>2]=o[r>>2],o[t+4>>2]=n,n=o[r+12>>2],o[t+8>>2]=o[r+8>>2],o[t+12>>2]=n,n=o[r+20>>2],o[t+16>>2]=o[r+16>>2],o[t+20>>2]=n,r=o[X+12>>2],n=i+o[p+12>>2]|0,o[n>>2]=o[X+8>>2],o[n+4>>2]=r,r=o[X+28>>2],o[n+16>>2]=o[X+24>>2],o[n+20>>2]=r,r=o[X+20>>2],o[n+8>>2]=o[X+16>>2],o[n+12>>2]=r,n=o[p+4>>2]),(0|n)>(0|(e=e+1|0)););if(i=o[p+12>>2],o[i+16>>2]=-246811958,(0|n)>=2)for(j=w[i+8>>2],C=w[i+4>>2],R=w[i>>2],r=1;L=m(0),e=i+G(r,24)|0,g=m(w[e+8>>2]-j),F=m(w[e>>2]-R),Z=m(w[e+4>>2]-C),x=m(m(y*g)+m(m(H*F)+m(B*Z))),F=m(m($*g)+m(m(T*F)+m(I*Z))),m(m(x*x)+m(F*F))=m(0)?m(m(m(m(F-Z)/m(F+Z))*m(-.7853981852531433))+m(.7853981852531433)):m(m(m(m(F+Z)/m(Z-F))*m(-.7853981852531433))+m(2.356194496154785)),L=x>2]=L,(0|n)!=(0|(r=r+1|0)););if(r=o[i+12>>2],o[X+16>>2]=o[i+8>>2],o[X+20>>2]=r,r=o[i+4>>2],o[X+8>>2]=o[i>>2],o[X+12>>2]=r,kr(p,X+8|0,1,n-1|0),i=o[p+12>>2],(0|(r=o[f+76>>2]))==o[f+80>>2]&&!((0|(h=r?r<<1:1))<=(0|r))){if(h?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](G(h,24),16),r=o[f+76>>2]):n=0,!((0|r)<=0)){if(e=0,1!=(0|r))for(l=-2&r;u=(t=G(e,24))+n|0,k=t+o[f+84>>2]|0,t=o[k+4>>2],o[u>>2]=o[k>>2],o[u+4>>2]=t,t=o[k+20>>2],o[u+16>>2]=o[k+16>>2],o[u+20>>2]=t,t=o[k+12>>2],o[u+8>>2]=o[k+8>>2],o[u+12>>2]=t,u=(t=G(1|e,24))+n|0,k=t+o[f+84>>2]|0,t=o[k+4>>2],o[u>>2]=o[k>>2],o[u+4>>2]=t,t=o[k+12>>2],o[u+8>>2]=o[k+8>>2],o[u+12>>2]=t,t=o[k+20>>2],o[u+16>>2]=o[k+16>>2],o[u+20>>2]=t,e=e+2|0,(0|l)!=(0|(c=c+2|0)););1&r&&(e=(r=G(e,24))+n|0,c=r+o[f+84>>2]|0,r=o[c+4>>2],o[e>>2]=o[c>>2],o[e+4>>2]=r,r=o[c+20>>2],o[e+16>>2]=o[c+16>>2],o[e+20>>2]=r,r=o[c+12>>2],o[e+8>>2]=o[c+8>>2],o[e+12>>2]=r)}!(r=o[f+84>>2])||!r|!v[f+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[f+84>>2]=n,a[f+88|0]=1,o[f+80>>2]=h,r=o[f+76>>2]}if(e=o[f+84>>2]+G(r,24)|0,r=o[i+4>>2],o[e>>2]=o[i>>2],o[e+4>>2]=r,r=o[i+20>>2],o[e+16>>2]=o[i+16>>2],o[e+20>>2]=r,r=o[i+12>>2],o[e+8>>2]=o[i+8>>2],o[e+12>>2]=r,r=o[f+76>>2]+1|0,o[f+76>>2]=r,i=o[p+12>>2],o[f+80>>2]==(0|r)&&!((0|(h=r?r<<1:1))<=(0|r))){if(h?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](G(h,24),16),r=o[f+76>>2]):n=0,!((0|r)<=0)){if(e=0,1!=(0|r))for(l=-2&r,c=0;u=(t=G(e,24))+n|0,k=t+o[f+84>>2]|0,t=o[k+4>>2],o[u>>2]=o[k>>2],o[u+4>>2]=t,t=o[k+20>>2],o[u+16>>2]=o[k+16>>2],o[u+20>>2]=t,t=o[k+12>>2],o[u+8>>2]=o[k+8>>2],o[u+12>>2]=t,u=(t=G(1|e,24))+n|0,k=t+o[f+84>>2]|0,t=o[k+4>>2],o[u>>2]=o[k>>2],o[u+4>>2]=t,t=o[k+12>>2],o[u+8>>2]=o[k+8>>2],o[u+12>>2]=t,t=o[k+20>>2],o[u+16>>2]=o[k+16>>2],o[u+20>>2]=t,e=e+2|0,(0|l)!=(0|(c=c+2|0)););1&r&&(e=(r=G(e,24))+n|0,c=r+o[f+84>>2]|0,r=o[c+4>>2],o[e>>2]=o[c>>2],o[e+4>>2]=r,r=o[c+20>>2],o[e+16>>2]=o[c+16>>2],o[e+20>>2]=r,r=o[c+12>>2],o[e+8>>2]=o[c+8>>2],o[e+12>>2]=r)}!(r=o[f+84>>2])||!r|!v[f+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[f+84>>2]=n,a[f+88|0]=1,o[f+80>>2]=h,r=o[f+76>>2]}if(e=o[f+84>>2]+G(r,24)|0,r=o[i+28>>2],o[e>>2]=o[i+24>>2],o[e+4>>2]=r,r=o[i+44>>2],o[e+16>>2]=o[i+40>>2],o[e+20>>2]=r,r=o[i+36>>2],o[e+8>>2]=o[i+32>>2],o[e+12>>2]=r,r=o[f+76>>2]+1|0,o[f+76>>2]=r,2==o[p+4>>2])break i;for(W=2;;){n:if(!((0|r)<2))for(i=o[p+12>>2]+G(W,24)|0,x=w[i+8>>2],H=w[i+4>>2],y=w[i>>2],L=w[f+8>>2],j=w[f+4>>2],C=w[f>>2],n=o[f+84>>2],e=r;;){if(r=G(e,24)+n|0,Z=w[(c=r-48|0)>>2],R=m(Z-w[(r=r-24|0)>>2]),B=w[c+4>>2],g=m(B-H),F=m(Z-y),B=m(B-w[r+4>>2]),T=m(m(m(R*g)-m(F*B))*L),I=B,B=w[c+8>>2],Z=m(B-x),B=m(B-w[r+8>>2]),m(T+m(m(m(m(I*Z)-m(g*B))*C)+m(j*m(m(B*F)-m(Z*R)))))>m(0)){if(o[f+80>>2]==(0|e)&&!((0|(u=e<<1))<=(0|e))){if(o[8488]=o[8488]+1,n=0|Zn[o[8290]](G(e,48),16),!((0|(l=o[f+76>>2]))<=0)){if(e=0,1!=(0|l))for(t=-2&l,Y=0;c=(r=G(e,24))+n|0,h=r+o[f+84>>2]|0,r=o[h+4>>2],o[c>>2]=o[h>>2],o[c+4>>2]=r,r=o[h+20>>2],o[c+16>>2]=o[h+16>>2],o[c+20>>2]=r,r=o[h+12>>2],o[c+8>>2]=o[h+8>>2],o[c+12>>2]=r,c=(r=G(1|e,24))+n|0,h=r+o[f+84>>2]|0,r=o[h+4>>2],o[c>>2]=o[h>>2],o[c+4>>2]=r,r=o[h+12>>2],o[c+8>>2]=o[h+8>>2],o[c+12>>2]=r,r=o[h+20>>2],o[c+16>>2]=o[h+16>>2],o[c+20>>2]=r,e=e+2|0,(0|t)!=(0|(Y=Y+2|0)););1&l&&(e=(r=G(e,24))+n|0,c=r+o[f+84>>2]|0,r=o[c+4>>2],o[e>>2]=o[c>>2],o[e+4>>2]=r,r=o[c+20>>2],o[e+16>>2]=o[c+16>>2],o[e+20>>2]=r,r=o[c+12>>2],o[e+8>>2]=o[c+8>>2],o[e+12>>2]=r)}!(r=o[f+84>>2])||!r|!v[f+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[f+84>>2]=n,a[f+88|0]=1,o[f+80>>2]=u,e=o[f+76>>2]}r=o[i+4>>2],e=G(e,24)+n|0,o[e>>2]=o[i>>2],o[e+4>>2]=r,r=o[i+20>>2],o[e+16>>2]=o[i+16>>2],o[e+20>>2]=r,r=o[i+12>>2],o[e+8>>2]=o[i+8>>2],o[e+12>>2]=r,r=o[f+76>>2]+1|0,o[f+76>>2]=r;break n}if(r=e-1|0,o[f+76>>2]=r,c=e>>>0>2,e=r,!c)break}if(1==(0|r)){if(r=o[p+12>>2]+G(W,24)|0,1==o[f+80>>2]){if(o[8488]=o[8488]+1,n=0|Zn[o[8290]](48,16),!((0|(l=o[f+76>>2]))<=0)){if(e=0,1!=(0|l))for(u=-2&l,c=0;t=(i=G(e,24))+n|0,h=i+o[f+84>>2]|0,i=o[h+4>>2],o[t>>2]=o[h>>2],o[t+4>>2]=i,i=o[h+20>>2],o[t+16>>2]=o[h+16>>2],o[t+20>>2]=i,i=o[h+12>>2],o[t+8>>2]=o[h+8>>2],o[t+12>>2]=i,t=(i=G(1|e,24))+n|0,h=i+o[f+84>>2]|0,i=o[h+4>>2],o[t>>2]=o[h>>2],o[t+4>>2]=i,i=o[h+12>>2],o[t+8>>2]=o[h+8>>2],o[t+12>>2]=i,i=o[h+20>>2],o[t+16>>2]=o[h+16>>2],o[t+20>>2]=i,e=e+2|0,(0|u)!=(0|(c=c+2|0)););1&l&&(i=(e=G(e,24))+n|0,c=e+o[f+84>>2]|0,e=o[c+4>>2],o[i>>2]=o[c>>2],o[i+4>>2]=e,e=o[c+20>>2],o[i+16>>2]=o[c+16>>2],o[i+20>>2]=e,e=o[c+12>>2],o[i+8>>2]=o[c+8>>2],o[i+12>>2]=e)}!(e=o[f+84>>2])||!e|!v[f+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[f+84>>2]=n,a[f+88|0]=1,o[f+80>>2]=2,e=o[f+76>>2]}else n=o[f+84>>2],e=1;n=G(e,24)+n|0,e=o[r+4>>2],o[n>>2]=o[r>>2],o[n+4>>2]=e,e=o[r+20>>2],o[n+16>>2]=o[r+16>>2],o[n+20>>2]=e,e=o[r+12>>2],o[n+8>>2]=o[r+8>>2],o[n+12>>2]=e,r=o[f+76>>2]+1|0,o[f+76>>2]=r}if((0|(W=W+1|0))==o[p+4>>2])break}}else if(1==(0|n))for(r=o[f+76>>2];;){if(i=o[p+12>>2],o[f+80>>2]==(0|r)&&!((0|(h=r?r<<1:1))<=(0|r))){if(h?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](G(h,24),16),r=o[f+76>>2]):n=0,!((0|r)<=0)){if(e=0,1!=(0|r))for(l=-2&r,c=0;u=(t=G(e,24))+n|0,k=t+o[f+84>>2]|0,t=o[k+4>>2],o[u>>2]=o[k>>2],o[u+4>>2]=t,t=o[k+20>>2],o[u+16>>2]=o[k+16>>2],o[u+20>>2]=t,t=o[k+12>>2],o[u+8>>2]=o[k+8>>2],o[u+12>>2]=t,u=(t=G(1|e,24))+n|0,k=t+o[f+84>>2]|0,t=o[k+4>>2],o[u>>2]=o[k>>2],o[u+4>>2]=t,t=o[k+12>>2],o[u+8>>2]=o[k+8>>2],o[u+12>>2]=t,t=o[k+20>>2],o[u+16>>2]=o[k+16>>2],o[u+20>>2]=t,e=e+2|0,(0|l)!=(0|(c=c+2|0)););1&r&&(e=(r=G(e,24))+n|0,c=r+o[f+84>>2]|0,r=o[c+4>>2],o[e>>2]=o[c>>2],o[e+4>>2]=r,r=o[c+20>>2],o[e+16>>2]=o[c+16>>2],o[e+20>>2]=r,r=o[c+12>>2],o[e+8>>2]=o[c+8>>2],o[e+12>>2]=r)}!(r=o[f+84>>2])||!r|!v[f+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[f+84>>2]=n,a[f+88|0]=1,o[f+80>>2]=h,r=o[f+76>>2]}if(e=o[f+84>>2]+G(r,24)|0,r=o[i+4>>2],o[e>>2]=o[i>>2],o[e+4>>2]=r,r=o[i+20>>2],o[e+16>>2]=o[i+16>>2],o[e+20>>2]=r,r=o[i+12>>2],o[e+8>>2]=o[i+8>>2],o[e+12>>2]=r,r=o[f+76>>2]+1|0,o[f+76>>2]=r,!((0|(J=J+1|0))>2]))break}if(S=X+32|0,o[f+76>>2]<=0)e=o[f+96>>2];else for(r=0,V=o[f+20>>2];;){if(t=(u=G(r,24))+o[f+84>>2]|0,o[f+24>>2]==(0|V)&&!((0|(h=V?V<<1:1))<=(0|V))){h?(o[8488]=o[8488]+1,e=0|Zn[o[8290]](h<<2,16),V=o[f+20>>2]):e=0,p=o[f+28>>2];i:{n:if((0|V)>0){if(l=3&V,W=0,i=0,V>>>0>=4)for(c=-4&V,V=0;o[(k=i<<2)+e>>2]=o[k+p>>2],o[(n=4|k)+e>>2]=o[n+p>>2],o[(n=8|k)+e>>2]=o[n+p>>2],o[(n=12|k)+e>>2]=o[n+p>>2],i=i+4|0,(0|c)!=(0|(V=V+4|0)););if(!l)break n;for(;o[(n=i<<2)+e>>2]=o[n+p>>2],i=i+1|0,(0|l)!=(0|(W=W+1|0)););}else if(!p)break i;p&&v[f+32|0]&&(o[8489]=o[8489]+1,Zn[o[8291]](p)),V=o[f+20>>2]}o[f+28>>2]=e,a[f+32|0]=1,o[f+24>>2]=h}o[o[f+28>>2]+(V<<2)>>2]=o[t+20>>2],V=o[f+20>>2]+1|0,o[f+20>>2]=V;i:if(!((0|(e=o[f+96>>2]))<=0)){for(t=o[20+(u+o[f+84>>2]|0)>>2],i=0,c=o[f+104>>2];;){if(n=c+G(i,24)|0,(0|t)!=o[n+20>>2]){if((0|(i=i+1|0))!=(0|e))continue;break i}break}o[n+20>>2]=-1}if(!((0|(r=r+1|0))>2]))break}i:{if((0|e)>0)for(Y=0,t=o[f+104>>2];;){n:if(!(-1==(0|(u=o[20+(t+G(Y,24)|0)>>2]))|(0|s)<=0)){if(c=0,(0|P)>0)for(;;){r=G(c,36)+z|0,i=0;a:{for(;;){if(o[(i<<2)+d>>2]==(0|c))break a;if((0|P)==(0|(i=i+1|0)))break}if(!((0|(n=o[r+4>>2]))<=0)){for(r=o[r+12>>2],i=0;;){if((0|u)!=o[r+(i<<2)>>2]){if((0|n)!=(0|(i=i+1|0)))continue;break a}break}r=1;break i}}if((0|s)==(0|(c=c+1|0)))break n}for(;;){a:if(r=G(c,36)+z|0,!((0|(n=o[r+4>>2]))<=0)){for(r=o[r+12>>2],i=0;;){if((0|u)!=o[r+(i<<2)>>2]){if((0|n)!=(0|(i=i+1|0)))continue;break a}break}r=1;break i}if((0|s)==(0|(c=c+1|0)))break}}if((0|(Y=Y+1|0))==(0|e))break}if(l=o[A+60>>2],(0|(e=o[l+28>>2]))==o[l+32>>2]){if(n=0,(0|(t=e?e<<1:1))>o[l+32>>2]){if(t?(o[8488]=o[8488]+1,e=0|Zn[o[8290]](G(t,36),16)):e=0,!((0|(c=o[l+28>>2]))<=0)){for(;Fr(u=(r=G(n,36))+e|0,r=r+o[l+36>>2]|0),i=o[r+32>>2],o[u+28>>2]=o[r+28>>2],o[u+32>>2]=i,i=o[r+24>>2],o[u+20>>2]=o[r+20>>2],o[u+24>>2]=i,(0|c)!=(0|(n=n+1|0)););if(!((0|(r=o[l+28>>2]))<=0))for(n=0;c=o[l+36>>2]+G(n,36)|0,!(i=o[c+12>>2])||!i|!v[c+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),o[c+12>>2]=0,a[c+16|0]=1,o[c+4>>2]=0,o[c+8>>2]=0,(0|r)!=(0|(n=n+1|0)););}!(r=o[l+36>>2])||!r|!v[l+40|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[l+36>>2]=e,a[l+40|0]=1,o[l+32>>2]=t}e=o[l+28>>2]}Fr(e=o[l+36>>2]+G(e,36)|0,f+16|0),r=o[f+48>>2],o[e+28>>2]=o[f+44>>2],o[e+32>>2]=r,r=o[f+40>>2],o[e+20>>2]=o[f+36>>2],o[e+24>>2]=r,o[l+28>>2]=o[l+28>>2]+1,r=0}if(!(e=o[f+84>>2])||!e|!v[f+88|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),!(e=o[f+28>>2])||!e|!v[f+32|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),!(e=o[f+104>>2])||!e|!v[f+108|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),!(r&(0|P)>0))break e}else if(r=1!=(0|P),P=1,r)break e}for(X=0;;){if(r=0,e=G(o[(X<<2)+d>>2],36)+z|0,!((0|(O=o[e+4>>2]))<=0)){if(W=0,o[8488]=o[8488]+1,n=O<<2,l=Af(r=0|Zn[o[8290]](n,16),0,n),u=o[e+12>>2],i=0,O>>>0>=4)for(c=-4&O,V=0;o[(t=i<<2)+l>>2]=o[t+u>>2],o[(n=4|t)+l>>2]=o[n+u>>2],o[(n=8|t)+l>>2]=o[n+u>>2],o[(n=12|t)+l>>2]=o[n+u>>2],i=i+4|0,(0|c)!=(0|(V=V+4|0)););if(c=3&O)for(;o[(n=i<<2)+l>>2]=o[n+u>>2],i=i+1|0,(0|c)!=(0|(W=W+1|0)););}if(i=v[e+24|0]|v[e+25|0]<<8|v[e+26|0]<<16|v[e+27|0]<<24,n=v[e+20|0]|v[e+21|0]<<8|v[e+22|0]<<16|v[e+23|0]<<24,a[f+19|0]=n,a[f+20|0]=n>>>8,a[f+21|0]=n>>>16,a[f+22|0]=n>>>24,a[f+23|0]=i,a[f+24|0]=i>>>8,a[f+25|0]=i>>>16,a[f+26|0]=i>>>24,n=v[e+32|0]|v[e+33|0]<<8|v[e+34|0]<<16|v[e+35|0]<<24,e=v[e+28|0]|v[e+29|0]<<8|v[e+30|0]<<16|v[e+31|0]<<24,a[f+27|0]=e,a[f+28|0]=e>>>8,a[f+29|0]=e>>>16,a[f+30|0]=e>>>24,a[f+31|0]=n,a[f+32|0]=n>>>8,a[f+33|0]=n>>>16,a[f+34|0]=n>>>24,U=o[A+60>>2],(0|(c=o[U+28>>2]))==o[U+32>>2]&&!((0|(p=c?c<<1:1))<=(0|c))){if(p?(o[8488]=o[8488]+1,k=0|Zn[o[8290]](G(p,36),16),c=o[U+28>>2]):k=0,!((0|c)<=0)){for(h=0;;){if(n=o[U+36>>2],e=G(h,36),o[12+(M=e+k|0)>>2]=0,a[M+16|0]=1,o[M+4>>2]=0,o[M+8>>2]=0,(0|(Y=o[4+(e=e+n|0)>>2]))<=0)o[M+4>>2]=Y;else{o[8488]=o[8488]+1,u=Y<<2,J=0|Zn[o[8290]](u,16),q=o[M+12>>2];i:{n:{if((0|(l=o[M+4>>2]))>0){if(W=0,i=0,l>>>0>=4)for(t=-4&l,V=0;o[(D=i<<2)+J>>2]=o[D+q>>2],o[(n=4|D)+J>>2]=o[n+q>>2],o[(n=8|D)+J>>2]=o[n+q>>2],o[(n=12|D)+J>>2]=o[n+q>>2],i=i+4|0,(0|t)!=(0|(V=V+4|0)););if(t=3&l)for(;o[(n=i<<2)+J>>2]=o[n+q>>2],i=i+1|0,(0|t)!=(0|(W=W+1|0)););if(v[M+16|0])break n;break i}if(!q|!v[M+16|0])break i}q&&(o[8489]=o[8489]+1,Zn[o[8291]](q))}if(o[M+12>>2]=J,a[M+16|0]=1,o[M+8>>2]=Y,W=0,D=Af(J,0,u),o[M+4>>2]=Y,l=o[e+12>>2],i=0,Y>>>0>=4)for(t=-4&Y,V=0;o[(u=i<<2)+D>>2]=o[u+l>>2],o[(n=4|u)+D>>2]=o[n+l>>2],o[(n=8|u)+D>>2]=o[n+l>>2],o[(n=12|u)+D>>2]=o[n+l>>2],i=i+4|0,(0|t)!=(0|(V=V+4|0)););if(t=3&Y)for(;o[(n=i<<2)+D>>2]=o[n+l>>2],i=i+1|0,(0|t)!=(0|(W=W+1|0)););}if(n=o[e+24>>2],o[M+20>>2]=o[e+20>>2],o[M+24>>2]=n,n=o[e+32>>2],o[M+28>>2]=o[e+28>>2],o[M+32>>2]=n,(0|(h=h+1|0))==(0|c))break}if(e=0,!((0|(n=o[U+28>>2]))<=0))for(;c=o[U+36>>2]+G(e,36)|0,!(i=o[c+12>>2])||!i|!v[c+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),o[c+12>>2]=0,a[c+16|0]=1,o[c+4>>2]=0,o[c+8>>2]=0,(0|n)!=(0|(e=e+1|0)););}!(e=o[U+36>>2])||!e|!v[U+40|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[U+36>>2]=k,a[U+40|0]=1,o[U+32>>2]=p,c=o[U+28>>2]}if(k=o[U+36>>2]+G(c,36)|0,o[k+12>>2]=0,a[k+16|0]=1,o[k+4>>2]=0,o[k+8>>2]=0,(0|O)<=0)o[k+4>>2]=O;else{o[8488]=o[8488]+1,c=O<<2,l=0|Zn[o[8290]](c,16),h=o[k+12>>2];i:{n:{if((0|(t=o[k+4>>2]))>0){if(W=0,i=0,t>>>0>=4)for(n=-4&t,V=0;o[(u=i<<2)+l>>2]=o[u+h>>2],o[(e=4|u)+l>>2]=o[e+h>>2],o[(e=8|u)+l>>2]=o[e+h>>2],o[(e=12|u)+l>>2]=o[e+h>>2],i=i+4|0,(0|n)!=(0|(V=V+4|0)););if(n=3&t)for(;o[(e=i<<2)+l>>2]=o[e+h>>2],i=i+1|0,(0|n)!=(0|(W=W+1|0)););if(v[k+16|0])break n;break i}if(!h|!v[k+16|0])break i}h&&(o[8489]=o[8489]+1,Zn[o[8291]](h))}if(o[k+12>>2]=l,a[k+16|0]=1,o[k+8>>2]=O,n=0,u=Af(l,0,c),o[k+4>>2]=O,i=0,O>>>0>=4)for(c=-4&O,W=0;o[(t=i<<2)+u>>2]=o[r+t>>2],o[(e=4|t)+u>>2]=o[r+e>>2],o[(e=8|t)+u>>2]=o[r+e>>2],o[(e=12|t)+u>>2]=o[r+e>>2],i=i+4|0,(0|c)!=(0|(W=W+4|0)););if(c=3&O)for(;o[(e=i<<2)+u>>2]=o[r+e>>2],i=i+1|0,(0|c)!=(0|(n=n+1|0)););}if(n=v[f+23|0]|v[f+24|0]<<8|v[f+25|0]<<16|v[f+26|0]<<24,e=v[f+19|0]|v[f+20|0]<<8|v[f+21|0]<<16|v[f+22|0]<<24,a[k+20|0]=e,a[k+21|0]=e>>>8,a[k+22|0]=e>>>16,a[k+23|0]=e>>>24,a[k+24|0]=n,a[k+25|0]=n>>>8,a[k+26|0]=n>>>16,a[k+27|0]=n>>>24,n=v[f+31|0]|v[f+32|0]<<8|v[f+33|0]<<16|v[f+34|0]<<24,e=v[f+27|0]|v[f+28|0]<<8|v[f+29|0]<<16|v[f+30|0]<<24,a[k+28|0]=e,a[k+29|0]=e>>>8,a[k+30|0]=e>>>16,a[k+31|0]=e>>>24,a[k+32|0]=n,a[k+33|0]=n>>>8,a[k+34|0]=n>>>16,a[k+35|0]=n>>>24,o[U+28>>2]=o[U+28>>2]+1,r&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),(0|(X=X+1|0))==(0|P))break}}if(d&&(o[8489]=o[8489]+1,Zn[o[8291]](d)),!b)break}if(rA(o[A+60>>2]),E&&(o[8489]=o[8489]+1,Zn[o[8291]](E)),(0|s)<=0)break f;for(e=0;r=G(e,36)+z|0,!(A=o[r+12>>2])||!A|!v[r+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[r+12>>2]=0,a[r+16|0]=1,o[r+4>>2]=0,o[r+8>>2]=0,(0|s)!=(0|(e=e+1|0)););break r}}rA(o[A+60>>2])}if(!z)break A}z&&(o[8489]=o[8489]+1,Zn[o[8291]](z))}return fA&&(o[8489]=o[8489]+1,Zn[o[8291]](fA)),!(A=o[f+164>>2])||!A|!v[f+168|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[f+164>>2]=0,a[f+168|0]=1,o[f+156>>2]=0,o[f+160>>2]=0,!(A=o[f+144>>2])||!A|!v[f+148|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[f+144>>2]=0,a[f+148|0]=1,o[f+136>>2]=0,o[f+140>>2]=0,!(A=o[f+124>>2])||!A|!v[f+128|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),!(A=o[f+184>>2])||!A|!v[f+188|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),S=f+192|0,1},ln,ln,function(A,r,f,e){r|=0,f|=0,e|=0,Zn[o[o[(A|=0)>>2]+108>>2]](A,r,f),Zn[o[o[A>>2]+108>>2]](A,(r+1|0)%3|0,e)},function(A,r,f){f|=0,r=o[76+(A=((r|=0)<<4)+(A|=0)|0)>>2],o[f+8>>2]=o[A+72>>2],o[f+12>>2]=r,r=o[4+(A=A- -64|0)>>2],o[f>>2]=o[A>>2],o[f+4>>2]=r},sn,function(A,r,f,e){r|=0,f|=0,e|=0,Zn[o[o[(A|=0)>>2]+124>>2]](A,e,r,f)},function(A,r,f){A|=0,r|=0,f=m(f);var e,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=0;return S=e=S-32|0,l=w[A+64>>2],c=m(w[A+80>>2]-l),i=w[A+68>>2],t=m(w[A+100>>2]-i),b=m(w[A+96>>2]-l),n=m(w[A+84>>2]-i),u=a=m(m(c*t)-m(b*n)),d=m(a*a),k=n,n=w[A+72>>2],a=m(w[A+104>>2]-n),s=m(w[A+88>>2]-n),t=m(m(k*a)-m(t*s)),c=m(m(s*b)-m(a*c)),b=m(m(1)/m(N(m(d+m(m(t*t)+m(c*c)))))),a=m(u*b),t=m(t*b),c=m(c*b),!((i=m(m(m(w[r+8>>2]*a)+m(m(w[r>>2]*t)+m(w[r+4>>2]*c)))-m(m(n*a)+m(m(l*t)+m(i*c)))))>=(l=m(-f)))|!(f>=i)||(Zn[o[o[A>>2]+104>>2]](A,0,e+16|0,e),b=w[e+16>>2],i=m(w[e>>2]-b),s=w[e+20>>2],n=m(w[e+4>>2]-s),u=f=m(m(i*c)-m(t*n)),d=m(f*f),f=m(n*a),k=w[e+24>>2],n=m(w[e+8>>2]-k),f=m(f-m(c*n)),i=m(m(n*t)-m(a*i)),n=m(m(1)/m(N(m(d+m(m(f*f)+m(i*i)))))),u=m(u*n),f=m(f*n),i=m(i*n),l>m(m(m(w[r+8>>2]*u)+m(m(w[r>>2]*f)+m(w[r+4>>2]*i)))-m(m(k*u)+m(m(b*f)+m(s*i))))||(Zn[o[o[A>>2]+104>>2]](A,1,e+16|0,e),b=w[e+16>>2],i=m(w[e>>2]-b),s=w[e+20>>2],n=m(w[e+4>>2]-s),u=f=m(m(i*c)-m(t*n)),d=m(f*f),f=m(n*a),k=w[e+24>>2],n=m(w[e+8>>2]-k),f=m(f-m(c*n)),i=m(m(n*t)-m(a*i)),n=m(m(1)/m(N(m(d+m(m(f*f)+m(i*i)))))),u=m(u*n),f=m(f*n),i=m(i*n),l>m(m(m(w[r+8>>2]*u)+m(m(w[r>>2]*f)+m(w[r+4>>2]*i)))-m(m(k*u)+m(m(b*f)+m(s*i))))||(Zn[o[o[A>>2]+104>>2]](A,2,e+16|0,e),u=l,l=w[e+16>>2],i=m(w[e>>2]-l),n=w[e+20>>2],b=m(w[e+4>>2]-n),k=f=m(m(i*c)-m(t*b)),s=m(f*f),d=m(b*a),f=c,c=w[e+24>>2],b=m(w[e+8>>2]-c),f=m(d-m(f*b)),a=m(m(b*t)-m(a*i)),t=m(m(1)/m(N(m(s+m(m(f*f)+m(a*a)))))),i=m(k*t),f=m(f*t),a=m(a*t),u>m(m(m(w[r+8>>2]*i)+m(m(w[r>>2]*f)+m(w[r+4>>2]*a)))-m(m(c*i)+m(m(l*f)+m(n*a))))||(v=1)))),S=e+32|0,0|v},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0);t=w[A+96>>2],c=w[A+80>>2],u=w[A+84>>2],l=w[A+104>>2],b=w[A+100>>2],i=w[A+68>>2],n=w[A+72>>2],s=w[A+88>>2],a=w[A+64>>2],o[f+12>>2]=0,c=m(c-a),b=m(b-i),a=m(t-a),t=m(u-i),u=i=m(m(c*b)-m(a*t)),k=m(i*i),i=t,t=m(l-n),n=m(s-n),i=m(m(i*t)-m(b*n)),n=m(m(n*a)-m(t*c)),a=m(m(1)/m(N(m(k+m(m(i*i)+m(n*n)))))),w[f+8>>2]=u*a,w[f+4>>2]=n*a,w[f>>2]=i*a,r=o[A+76>>2],o[e+8>>2]=o[A+72>>2],o[e+12>>2]=r,r=o[A+68>>2],o[e>>2]=o[A+64>>2],o[e+4>>2]=r},vn,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=0,t=m(0);S=f=S-800|0,Zn[o[8294]](7628),o[f+744>>2]=0,o[f+748>>2]=0,o[f+756>>2]=0,o[f+760>>2]=0,o[f+752>>2]=1065353216,o[f+764>>2]=0,o[f+768>>2]=0,o[f+776>>2]=0,o[f+780>>2]=0,o[f+772>>2]=1065353216,o[f+784>>2]=0,o[f+788>>2]=0,o[f+792>>2]=0,o[f+736>>2]=0,o[f+740>>2]=0,o[f+732>>2]=1065353216,o[f+724>>2]=0,o[f+728>>2]=0,o[f+556>>2]=13280,w[f+720>>2]=w[A+200>>2],t=w[A+196>>2],e=ae(f+496|0),o[e+32>>2]=0,o[e+36>>2]=0,o[e+20>>2]=1065353216,o[e+24>>2]=1065353216,o[e+4>>2]=8,o[e>>2]=21520,o[e+56>>2]=0,w[e+52>>2]=t,o[e+28>>2]=1065353216,o[e+40>>2]=0,o[e+44>>2]=0,o[e+48>>2]=0,w[e+36>>2]=t,i=oi(f+384|0),o[i+4>>2]=1,o[i>>2]=15956,n=o[r+12>>2],o[i+72>>2]=o[r+8>>2],o[i+76>>2]=n,n=o[r+4>>2],o[i+64>>2]=o[r>>2],o[i+68>>2]=n,n=o[r+20>>2],o[i+80>>2]=o[r+16>>2],o[i+84>>2]=n,n=o[r+28>>2],o[i+88>>2]=o[r+24>>2],o[i+92>>2]=n,n=o[r+36>>2],o[i+96>>2]=o[r+32>>2],o[i+100>>2]=n,n=o[r+44>>2],o[i+104>>2]=o[r+40>>2],o[i+108>>2]=n,a[f+356|0]=0,o[f+332>>2]=953267991,o[12+(r=f+8|0)>>2]=i,o[r+8>>2]=e,o[r+4>>2]=f+24,o[r>>2]=23372,ZA(e=r,A+4|0,A+68|0,r=f+732|0,r,f+556|0)&&(t=w[f+720>>2])>2]&&(w[A+200>>2]=t),Ne(i),Zn[o[8295]](),S=f+800|0},kf,function(A){kf(A|=0),DA(A)},aA,function(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n,a,t,c=0,b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),Q=m(0),E=m(0),W=0,N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=m(0);if((0|(n=o[A+52>>2]))<=0)return m(m(1));for(a=(c=v[A+68|0])?r:f,H=w[(r=c?f:r)- -64>>2],x=w[r+60>>2],y=w[r+56>>2],M=w[r+52>>2],I=w[r+48>>2],u=w[r+44>>2],l=w[r+40>>2],s=w[r+36>>2],T=w[r+32>>2],k=w[r+28>>2],d=w[r+24>>2],h=w[r+20>>2],U=w[r+16>>2],B=w[r+12>>2],Z=w[r+8>>2],W=o[r+304>>2],Q=w[r+4>>2],t=o[r+192>>2],E=m(1),c=0;f=o[t+32>>2]+G(c,80)|0,b=w[f+56>>2],N=w[f+52>>2],p=w[f+48>>2],F=w[f+36>>2],R=w[f+20>>2],Y=w[f+4>>2],V=w[f+40>>2],g=w[f+24>>2],X=w[f+8>>2],D=w[f+32>>2],C=w[f>>2],J=w[f+16>>2],o[r+64>>2]=0,o[r+48>>2]=0,o[r+32>>2]=0,o[r+16>>2]=0,o[r+304>>2]=W+1,w[r+36>>2]=m(D*u)+m(m(C*s)+m(l*J)),w[r+20>>2]=m(D*k)+m(m(C*h)+m(d*J)),w[r+4>>2]=m(D*B)+m(m(C*Q)+m(Z*J)),w[r+44>>2]=m(V*u)+m(m(X*s)+m(l*g)),w[r+40>>2]=m(F*u)+m(m(Y*s)+m(l*R)),w[r+28>>2]=m(V*k)+m(m(X*h)+m(d*g)),w[r+24>>2]=m(F*k)+m(m(Y*h)+m(d*R)),w[r+12>>2]=m(V*B)+m(m(X*Q)+m(Z*g)),w[r+8>>2]=m(F*B)+m(m(Y*Q)+m(Z*R)),w[r+60>>2]=x+m(m(b*u)+m(m(p*s)+m(l*N))),w[r+56>>2]=y+m(m(b*k)+m(m(p*h)+m(d*N))),w[r+52>>2]=M+m(m(b*B)+m(m(p*Q)+m(Z*N))),f=o[o[A+60>>2]+(c<<2)>>2],b=m(Zn[o[o[f>>2]+12>>2]](f,r,a,e,i)),w[r+64>>2]=H,w[r+60>>2]=x,w[r+56>>2]=y,w[r+52>>2]=M,w[r+48>>2]=I,w[r+44>>2]=u,w[r+40>>2]=l,w[r+36>>2]=s,w[r+32>>2]=T,w[r+28>>2]=k,w[r+24>>2]=d,w[r+20>>2]=h,w[r+16>>2]=U,w[r+12>>2]=B,w[r+8>>2]=Z,w[r+4>>2]=Q,W=o[r+304>>2]+1|0,o[r+304>>2]=W,E=b>2]))>0)for(;(i=o[o[A+60>>2]+(e<<2)>>2])&&(Zn[o[o[i>>2]+16>>2]](i,r),f=o[A+52>>2]),(0|f)>(0|(e=e+1|0)););},vn,function(A,r){var f,e;r|=0,f=A|=0,e=o[o[o[A+4>>2]+4>>2]+32>>2],A=o[r+36>>2],zA(f,o[64+(e+G(A,80)|0)>>2],A)},Ef,function(A){Ef(A|=0),DA(A)},function(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n,t,c=0,b=0,u=0,l=0,s=0,k=0,d=m(0),h=m(0),B=m(0),Z=m(0),E=0,W=0,N=m(0),p=m(0),F=m(0),R=0,Y=m(0),V=m(0),g=m(0),X=m(0),D=0,C=m(0),J=m(0),x=0,y=0,M=m(0),H=m(0),I=m(0),T=0,U=m(0),j=m(0),z=m(0),P=m(0),O=m(0),L=m(0),$=m(0),K=m(0),q=m(0),_=m(0),AA=0,rA=0,fA=m(0),eA=0,iA=m(0),nA=0,tA=0,oA=m(0),cA=m(0),bA=m(0),uA=m(0);if(S=n=S-3584|0,t=o[r+4>>2],(E=o[t+72>>2])&&(tA=o[f+4>>2],l=o[tA+72>>2])){if(!(o[t+76>>2]==o[A+108>>2]&o[tA+76>>2]==o[A+112>>2])){if(c=o[A+84>>2],(0|(s=o[c+8>>2]))>0){for(;(y=o[8+(o[c+16>>2]+G(b,12)|0)>>2])&&(Zn[o[o[y>>2]>>2]](y),u=o[A+4>>2],Zn[o[o[u>>2]+60>>2]](u,y)),(0|s)!=(0|(b=b+1|0)););c=o[A+84>>2]}Vr(c),o[A+108>>2]=o[t+76>>2],o[A+112>>2]=o[tA+76>>2]}if(o[n+88>>2]=0,a[n+92|0]=1,b=Pr(n+112|0),Pr(b+868|0),Pr(b+1736|0),Pr(b+2604|0),!(c=o[n+88>>2])||!c|!v[n+92|0]||(o[8489]=o[8489]+1,Zn[o[8291]](c)),o[n+88>>2]=b,o[n+80>>2]=0,o[n+84>>2]=4,a[n+92|0]=0,y=o[A+84>>2],!((0|(R=o[y+8>>2]))<=0)){for(;;){if(c=o[8+(o[y+16>>2]+G(T,12)|0)>>2]){if(Zn[o[o[c>>2]+16>>2]](c,n+76|0),b=0,(0|(c=o[n+80>>2]))>0)for(;k=o[o[n+88>>2]+(b<<2)>>2],o[k+844>>2]&&(o[i+4>>2]=k,s=(0|(c=o[k+836>>2]))==(0|(u=o[o[i+8>>2]+8>>2])),rA=c,c=o[o[i+12>>2]+8>>2],OA(k,(s?rA:c)+4|0,(s?c:u)+4|0),o[i+4>>2]=0,c=o[n+80>>2]),(0|(b=b+1|0))<(0|c););if(!((0|c)>=0)){if(o[n+84>>2]<0&&(!(b=o[n+88>>2])||!b|!v[n+92|0]||(o[8489]=o[8489]+1,Zn[o[8291]](b)),a[n+92|0]=1,o[n+84>>2]=0,o[n+88>>2]=0),R=0,b=c,u=0-c&3)for(;o[o[n+88>>2]+(b<<2)>>2]=0,b=b+1|0,(0|u)!=(0|(R=R+1|0)););if(!(c>>>0>4294967292))for(;o[(c=b<<2)+o[n+88>>2]>>2]=0,o[4+(c+o[n+88>>2]|0)>>2]=0,o[8+(c+o[n+88>>2]|0)>>2]=0,o[12+(c+o[n+88>>2]|0)>>2]=0,b=b+4|0;);}o[n+80>>2]=0,R=o[y+8>>2]}if(!((0|(T=T+1|0))<(0|R)))break}!(c=o[n+88>>2])|!v[n+92|0]||c&&(o[8489]=o[8489]+1,Zn[o[8291]](c))}if(b=o[A+4>>2],c=o[A+84>>2],o[n+108>>2]=o[A+72>>2],o[n+104>>2]=c,o[n+96>>2]=e,o[n+92>>2]=b,o[n+80>>2]=0,o[n+76>>2]=16544,o[n+100>>2]=i,o[n+88>>2]=f,o[n+84>>2]=r,(c=o[E>>2])&&(e=o[l>>2])){for(u=o[r+12>>2],Y=w[u+8>>2],d=m(-w[u+48>>2]),F=w[u+24>>2],B=w[u+52>>2],V=w[u+40>>2],N=w[u+56>>2],b=o[f+12>>2],p=w[b+56>>2],Z=w[b+48>>2],h=w[b+52>>2],bA=m(m(m(m(Y*d)-m(F*B))-m(V*N))+m(m(p*V)+m(m(Z*Y)+m(F*h)))),g=w[u+4>>2],C=w[u+20>>2],X=w[u+36>>2],uA=m(m(m(m(g*d)-m(C*B))-m(X*N))+m(m(p*X)+m(m(Z*g)+m(C*h)))),U=w[b+40>>2],M=w[b+24>>2],j=w[b+8>>2],H=w[b+36>>2],z=w[b+20>>2],I=w[b+4>>2],_=w[u>>2],iA=m(_*d),d=w[u+16>>2],iA=m(iA-m(d*B)),B=w[u+32>>2],iA=m(m(iA-m(B*N))+m(m(p*B)+m(m(Z*_)+m(d*h)))),p=w[b+16>>2],Z=w[b>>2],h=w[b+32>>2],fA=w[i+32>>2],o[n+116>>2]=e,o[n+112>>2]=c,J=m(m(U*V)+m(m(j*Y)+m(F*M))),$=m(Q(J)),P=m(m(H*V)+m(m(I*Y)+m(F*z))),K=m(Q(P)),O=m(m(h*V)+m(m(Z*Y)+m(F*p))),q=m(Q(O)),L=m(m(U*X)+m(m(j*g)+m(C*M))),Y=m(Q(L)),F=m(m(H*X)+m(m(I*g)+m(C*z))),V=m(Q(F)),g=m(m(h*X)+m(m(Z*g)+m(C*p))),C=m(Q(g)),X=m(m(U*B)+m(m(j*_)+m(d*M))),U=m(Q(X)),M=m(m(H*B)+m(m(I*_)+m(d*z))),j=m(Q(M)),H=m(m(h*B)+m(m(Z*_)+m(d*p))),z=m(Q(H)),T=124,y=0,c=n+112|0,s=128,e=128,l=1;;){A:{r:{f:{if(x=o[(b=(rA=(E=l-1|0)<<3)+c|0)>>2],D=o[b+4>>2],I=w[D+24>>2],d=w[D+8>>2],oA=m(m(m(I-d)*m(.5))+m(0)),B=w[D+16>>2],N=w[D>>2],cA=m(m(m(B-N)*m(.5))+m(0)),p=w[D+20>>2],h=w[D+4>>2],_=m(m(m(p-h)*m(.5))+m(0)),Z=m(m(oA*U)+m(m(cA*z)+m(j*_))),d=m(m(I+d)*m(.5)),N=m(m(B+N)*m(.5)),p=m(m(p+h)*m(.5)),h=m(iA+m(m(d*X)+m(m(N*H)+m(M*p)))),!(!(w[x>>2]<=m(fA+m(Z+h)))|!(w[x+16>>2]>=m(m(h-Z)-fA))||(Z=m(m(oA*Y)+m(m(cA*C)+m(V*_))),h=m(uA+m(m(d*L)+m(m(N*g)+m(F*p)))),!(w[x+4>>2]<=m(fA+m(Z+h)))|!(w[x+20>>2]>=m(m(h-Z)-fA))||(Z=m(m(oA*$)+m(m(cA*q)+m(K*_))),h=m(bA+m(m(d*J)+m(m(N*O)+m(P*p)))),!(w[x+8>>2]<=m(fA+m(Z+h)))|!(w[x+24>>2]>=m(m(h-Z)-fA)))))){if((0|E)<=(0|T))b=s,u=c;else{if((0|s)>=(0|(b=s<<1)))u=c;else if((0|e)>=(0|b))u=c;else{if(s){if(o[8488]=o[8488]+1,u=0|Zn[o[8290]](s<<4,16),!((0|s)<=0)){if(R=0,T=0,s>>>0>=4)for(eA=-4&s,AA=0;W=(nA=T<<3)+u|0,e=o[4+(k=c+nA|0)>>2],o[W>>2]=o[k>>2],o[W+4>>2]=e,W=(e=8|nA)+u|0,e=o[4+(k=e+c|0)>>2],o[W>>2]=o[k>>2],o[W+4>>2]=e,W=(e=16|nA)+u|0,e=o[4+(k=e+c|0)>>2],o[W>>2]=o[k>>2],o[W+4>>2]=e,W=(e=24|nA)+u|0,e=o[4+(k=e+c|0)>>2],o[W>>2]=o[k>>2],o[W+4>>2]=e,T=T+4|0,(0|eA)!=(0|(AA=AA+4|0)););if(W=3&s)for(;k=(e=T<<3)+u|0,e=o[4+(s=e+c|0)>>2],o[k>>2]=o[s>>2],o[k+4>>2]=e,T=T+1|0,(0|W)!=(0|(R=R+1|0)););}}else u=0;e=y,y=1,c&&e&&(o[8489]=o[8489]+1,Zn[o[8291]](c)),e=b}T=b-4|0}if(c=o[D+40>>2],o[x+40>>2]){if(s=o[x+36>>2],c){o[4+(c=u+rA|0)>>2]=o[D+36>>2],o[c>>2]=s,c=o[x+40>>2],o[4+(s=(l<<3)+u|0)>>2]=o[D+36>>2],o[s>>2]=c,c=o[x+36>>2],o[s+12>>2]=o[D+40>>2],o[s+8>>2]=c,c=o[x+40>>2],o[s+20>>2]=o[D+40>>2],o[s+16>>2]=c,l=l+3|0;break r}o[4+(c=u+rA|0)>>2]=D,o[c>>2]=s,s=o[x+40>>2],o[4+(c=(l<<3)+u|0)>>2]=D,o[c>>2]=s;break f}if(c){o[4+(c=u+rA|0)>>2]=o[D+36>>2],o[c>>2]=x,o[4+(c=(l<<3)+u|0)>>2]=o[D+40>>2],o[c>>2]=x;break f}Zn[o[o[n+76>>2]+8>>2]](n+76|0,x,D),s=b,c=u}l=E;break A}l=l+1|0}s=b,c=u}if(!l)break}!c|!y||c&&(o[8489]=o[8489]+1,Zn[o[8291]](c))}if(AA=o[A+84>>2],o[AA+8>>2]>0)for(c=0;;){if(e=(u=G(c,12))+o[AA+16>>2]|0,(s=o[e+8>>2])&&(l=o[t+32>>2]+G(o[e>>2],80)|0,b=o[l+64>>2],e=o[r+12>>2],p=w[e+52>>2],Z=w[e+56>>2],g=w[l+48>>2],C=w[l+52>>2],X=w[l+56>>2],U=w[l+4>>2],M=w[l+20>>2],j=w[l+36>>2],H=w[l+8>>2],z=w[l+24>>2],I=w[l+40>>2],$=w[e+20>>2],P=w[e+24>>2],d=w[l>>2],K=w[e+36>>2],B=w[l+16>>2],O=w[e+40>>2],N=w[l+32>>2],h=w[e+48>>2],q=w[e+8>>2],L=w[e>>2],Y=w[e+4>>2],F=w[e+16>>2],V=w[e+32>>2],o[n+172>>2]=0,o[n+156>>2]=0,o[n+140>>2]=0,o[n+124>>2]=0,w[n+144>>2]=m(N*O)+m(m(d*V)+m(K*B)),w[n+128>>2]=m(N*P)+m(m(d*F)+m($*B)),w[n+112>>2]=m(N*q)+m(m(d*L)+m(Y*B)),w[n+152>>2]=m(I*O)+m(m(H*V)+m(K*z)),w[n+148>>2]=m(j*O)+m(m(U*V)+m(K*M)),w[n+136>>2]=m(I*P)+m(m(H*F)+m($*z)),w[n+132>>2]=m(j*P)+m(m(U*F)+m($*M)),w[n+120>>2]=m(I*q)+m(m(H*L)+m(Y*z)),w[n+116>>2]=m(j*q)+m(m(U*L)+m(Y*M)),w[n+168>>2]=Z+m(m(X*O)+m(m(g*V)+m(K*C))),w[n+164>>2]=p+m(m(X*P)+m(m(g*F)+m($*C))),w[n+160>>2]=h+m(m(X*q)+m(m(g*L)+m(Y*C))),e=n+112|0,Zn[o[o[b>>2]+8>>2]](b,e,n+60|0,n+44|0),J=w[i+32>>2],w[n+60>>2]=w[n+60>>2]-J,w[n+64>>2]=w[n+64>>2]-J,w[n+68>>2]=w[n+68>>2]-J,w[n+44>>2]=J+w[n+44>>2],w[n+48>>2]=J+w[n+48>>2],w[n+52>>2]=J+w[n+52>>2],E=o[tA+32>>2]+G(o[4+(u+o[AA+16>>2]|0)>>2],80)|0,b=o[E+64>>2],l=o[f+12>>2],p=w[l+52>>2],Z=w[l+56>>2],g=w[E+48>>2],C=w[E+52>>2],X=w[E+56>>2],U=w[E+4>>2],M=w[E+20>>2],j=w[E+36>>2],H=w[E+8>>2],z=w[E+24>>2],I=w[E+40>>2],$=w[l+20>>2],P=w[l+24>>2],d=w[E>>2],K=w[l+36>>2],B=w[E+16>>2],O=w[l+40>>2],N=w[E+32>>2],h=w[l+48>>2],q=w[l+8>>2],L=w[l>>2],Y=w[l+4>>2],F=w[l+16>>2],V=w[l+32>>2],o[n+172>>2]=0,o[n+156>>2]=0,o[n+140>>2]=0,o[n+124>>2]=0,w[n+144>>2]=m(N*O)+m(m(d*V)+m(K*B)),w[n+128>>2]=m(N*P)+m(m(d*F)+m($*B)),w[n+112>>2]=m(N*q)+m(m(d*L)+m(Y*B)),w[n+152>>2]=m(I*O)+m(m(H*V)+m(K*z)),w[n+148>>2]=m(j*O)+m(m(U*V)+m(K*M)),w[n+136>>2]=m(I*P)+m(m(H*F)+m($*z)),w[n+132>>2]=m(j*P)+m(m(U*F)+m($*M)),w[n+120>>2]=m(I*q)+m(m(H*L)+m(Y*z)),w[n+116>>2]=m(j*q)+m(m(U*L)+m(Y*M)),w[n+168>>2]=Z+m(m(X*O)+m(m(g*V)+m(K*C))),w[n+164>>2]=p+m(m(X*P)+m(m(g*F)+m($*C))),w[n+160>>2]=h+m(m(X*q)+m(m(g*L)+m(Y*C))),Zn[o[o[b>>2]+8>>2]](b,e,n+28|0,n+12|0),d=m(w[n+28>>2]-J),w[n+28>>2]=d,B=m(w[n+32>>2]-J),w[n+32>>2]=B,N=m(w[n+36>>2]-J),w[n+36>>2]=N,p=m(J+w[n+12>>2]),w[n+12>>2]=p,Z=m(J+w[n+20>>2]),w[n+20>>2]=Z,h=m(J+w[n+16>>2]),w[n+16>>2]=h,h>2]|B>w[n+48>>2]|Z>2]|N>w[n+52>>2]||p>2]||d>w[n+44>>2])){if(Zn[o[o[s>>2]>>2]](s),e=o[A+4>>2],Zn[o[o[e>>2]+60>>2]](e,s),e=u+o[AA+16>>2]|0,y=o[e+4>>2],E=o[e>>2],(0|(u=o[A+92>>2]))==o[A+96>>2]&&!((0|(eA=u?u<<1:1))<=(0|u))){if(eA?(o[8488]=o[8488]+1,R=0|Zn[o[8290]](G(eA,12),16),u=o[A+92>>2]):R=0,!((0|u)<=0)){if(l=1&u,b=0,1!=(0|u))for(s=-2&u,u=0;W=(e=G(b,12))+R|0,k=e+o[A+100>>2]|0,e=o[k+4>>2],o[W>>2]=o[k>>2],o[W+4>>2]=e,o[W+8>>2]=o[k+8>>2],W=(e=G(1|b,12))+R|0,k=e+o[A+100>>2]|0,e=o[k+4>>2],o[W>>2]=o[k>>2],o[W+4>>2]=e,o[W+8>>2]=o[k+8>>2],b=b+2|0,(0|s)!=(0|(u=u+2|0)););l&&(u=(e=G(b,12))+R|0,b=e+o[A+100>>2]|0,e=o[b+4>>2],o[u>>2]=o[b>>2],o[u+4>>2]=e,o[u+8>>2]=o[b+8>>2])}!(e=o[A+100>>2])||!e|!v[A+104|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+100>>2]=R,a[A+104|0]=1,o[A+96>>2]=eA,u=o[A+92>>2]}e=o[A+100>>2]+G(u,12)|0,o[e+8>>2]=0,o[e+4>>2]=y,o[e>>2]=E,o[A+92>>2]=o[A+92>>2]+1}if(!((0|(c=c+1|0))>2]))break}if(o[A+92>>2]>0)for(b=0;f=o[A+84>>2],r=o[A+100>>2]+G(b,12)|0,Zn[o[o[f>>2]+8>>2]](f,o[r>>2],o[r+4>>2]),(0|(b=b+1|0))>2];);!(r=o[A+100>>2])||!r|!v[A+104|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+100>>2]=0,a[A+104|0]=1,o[A+92>>2]=0,o[A+96>>2]=0}else aA(A,r,f,e,i);S=n+3584|0},function(){return m(m(0))},function(A,r){r|=0;var f,e=0,i=0;if(f=o[84+(A|=0)>>2],(0|(e=o[f+8>>2]))>0)for(A=0;(i=o[8+(o[f+16>>2]+G(A,12)|0)>>2])&&(Zn[o[o[i>>2]+16>>2]](i,r),e=o[f+8>>2]),(0|e)>(0|(A=A+1|0)););},vn,function(A,r,f){A|=0,r|=0,f|=0;var e,i,n,a,t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=0,B=0,Z=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=0,C=0,J=m(0),x=m(0),y=m(0),M=0,H=0;S=e=S-256|0,Zn[o[8294]](3795),o[A+4>>2]=o[A+4>>2]+1,i=o[f+36>>2],D=G(i,80),C=o[A+12>>2],a=o[C+4>>2],h=o[64+(D+o[a+32>>2]|0)>>2],f=o[A+8>>2],n=o[r+36>>2],r=o[o[f+4>>2]+32>>2]+G(n,80)|0,B=o[r+64>>2],f=o[f+12>>2],J=w[f+52>>2],x=w[f+56>>2],t=w[f+24>>2],c=w[f+20>>2],b=w[f+40>>2],u=w[f+36>>2],y=w[f+48>>2],l=w[f+8>>2],s=w[f>>2],k=w[f+4>>2],d=w[f+16>>2],v=w[f+32>>2],Z=w[r+32>>2],Q=w[r>>2],E=w[r+16>>2],W=w[r+56>>2],N=w[r+48>>2],p=w[r+52>>2],F=w[r+36>>2],R=w[r+4>>2],Y=w[r+20>>2],V=w[r+40>>2],g=w[r+8>>2],X=w[r+24>>2],r=0,o[e+248>>2]=0,o[e+232>>2]=0,o[e+216>>2]=0,w[e+228>>2]=m(V*b)+m(m(g*v)+m(u*X)),w[e+224>>2]=m(F*b)+m(m(R*v)+m(u*Y)),w[e+212>>2]=m(V*t)+m(m(g*d)+m(c*X)),w[e+208>>2]=m(F*t)+m(m(R*d)+m(c*Y)),w[e+244>>2]=x+m(m(W*b)+m(m(N*v)+m(u*p))),w[e+240>>2]=J+m(m(W*t)+m(m(N*d)+m(c*p))),o[e+200>>2]=0,w[e+220>>2]=m(Z*b)+m(m(Q*v)+m(u*E)),w[e+204>>2]=m(Z*t)+m(m(Q*d)+m(c*E)),w[e+196>>2]=m(V*l)+m(m(g*s)+m(k*X)),w[e+192>>2]=m(F*l)+m(m(R*s)+m(k*Y)),w[e+188>>2]=m(Z*l)+m(m(Q*s)+m(k*E)),w[e+236>>2]=y+m(m(W*l)+m(m(N*s)+m(k*p))),f=o[C+12>>2],J=w[f+52>>2],x=w[f+56>>2],t=w[f+24>>2],c=w[f+20>>2],b=w[f+40>>2],u=w[f+36>>2],y=w[f+48>>2],l=w[f+8>>2],s=w[f>>2],k=w[f+4>>2],d=w[f+16>>2],v=w[f+32>>2],f=o[a+32>>2]+D|0,Z=w[f+32>>2],Q=w[f>>2],E=w[f+16>>2],W=w[f+56>>2],N=w[f+48>>2],p=w[f+52>>2],F=w[f+36>>2],R=w[f+4>>2],Y=w[f+20>>2],V=w[f+40>>2],g=w[f+8>>2],X=w[f+24>>2],o[e+184>>2]=0,o[e+168>>2]=0,o[e+152>>2]=0,w[e+164>>2]=m(V*b)+m(m(g*v)+m(u*X)),w[e+160>>2]=m(F*b)+m(m(R*v)+m(u*Y)),w[e+148>>2]=m(V*t)+m(m(g*d)+m(c*X)),w[e+144>>2]=m(F*t)+m(m(R*d)+m(c*Y)),w[e+180>>2]=x+m(m(W*b)+m(m(N*v)+m(u*p))),w[e+176>>2]=J+m(m(W*t)+m(m(N*d)+m(c*p))),o[e+136>>2]=0,w[e+156>>2]=m(Z*b)+m(m(Q*v)+m(u*E)),w[e+140>>2]=m(Z*t)+m(m(Q*d)+m(c*E)),w[e+132>>2]=m(V*l)+m(m(g*s)+m(k*X)),w[e+128>>2]=m(F*l)+m(m(R*s)+m(k*Y)),w[e+124>>2]=m(Z*l)+m(m(Q*s)+m(k*E)),w[e+172>>2]=y+m(m(W*l)+m(m(N*s)+m(k*p))),Zn[o[o[B>>2]+8>>2]](B,e+188|0,e+108|0,e+92|0),Zn[o[o[h>>2]+8>>2]](h,e+124|0,e+76|0,e+60|0),t=w[o[A+24>>2]+32>>2],c=m(w[e+108>>2]-t),w[e+108>>2]=c,w[e+112>>2]=w[e+112>>2]-t,w[e+116>>2]=w[e+116>>2]-t,w[e+92>>2]=t+w[e+92>>2],w[e+96>>2]=t+w[e+96>>2],w[e+100>>2]=t+w[e+100>>2];A:{if(f=o[8497]){if(!(0|Zn[0|f](B,h)))break A;c=w[e+108>>2]}if(r=c>w[e+60>>2]|w[e+92>>2]>2]?r:1,f=0,!(1^(w[e+100>>2]>2]|w[e+116>>2]>w[e+68>>2]?f:r)|w[e+96>>2]>2]|w[e+112>>2]>w[e+64>>2])){r=o[A+8>>2],f=o[r+8>>2],o[e+56>>2]=n,o[e+52>>2]=-1,o[e+44>>2]=f,o[e+40>>2]=B,o[e+36>>2]=r,o[e+48>>2]=e+188,r=o[A+12>>2],f=o[r+8>>2],o[e+32>>2]=i,o[e+28>>2]=-1,o[e+20>>2]=f,o[e+16>>2]=h,o[e+12>>2]=r,o[e+24>>2]=e+124,r=o[A+28>>2],o[8500]=o[8500]+1,f=G((f=~((f=i<<16|n)<<15)+f|0)>>>10^f,9),f=~((f^=f>>>6)<<11)+f|0;r:{if(!((0|(f=o[r+12>>2]-1&(f>>>16^f)))>=o[r+28>>2])&&-1!=(0|(f=o[o[r+36>>2]+(f<<2)>>2])))for(h=o[r+56>>2],B=o[r+16>>2];;){if(r=B+G(f,12)|0,o[r>>2]==(0|n)&o[r+4>>2]==(0|i))break r;if(-1==(0|(f=o[h+(f<<2)>>2])))break}r=0}w[o[A+24>>2]+32>>2]>m(0)?(r=o[A+16>>2],r=0|Zn[o[o[r>>2]+8>>2]](r,e+36|0,e+12|0,0,2)):r?r=o[r+8>>2]:(r=o[A+16>>2],r=0|Zn[o[o[r>>2]+8>>2]](r,e+36|0,e+12|0,o[A+32>>2],1),f=o[A+28>>2],M=0|Zn[o[o[f>>2]+12>>2]](f,n,i),H=r,o[M+8>>2]=H),f=o[A+24>>2],h=o[f+8>>2],B=o[f+12>>2],D=e+12|0,o[f+12>>2]=D,C=e+36|0,o[f+8>>2]=C,Zn[o[o[f>>2]+8>>2]](f,-1,n),f=o[A+24>>2],Zn[o[o[f>>2]+12>>2]](f,-1,i),Zn[o[o[r>>2]+8>>2]](r,C,D,o[A+20>>2],o[A+24>>2]),A=o[A+24>>2],o[A+8>>2]=h,o[A+12>>2]=B}}Zn[o[8295]](),S=e+256|0},dn,en,vn,$,pe,function(A){pe(A|=0),DA(A)},function(A,r,f,e,i){r|=0,f|=0,e|=0,i|=0;var n,a=0,t=0,c=0,b=0;S=n=S-160|0,(a=o[12+(A|=0)>>2])&&(t=o[f+4>>2],c=o[r+4>>2],o[i+4>>2]=a,o[n+152>>2]=1566444395,r=o[r+12>>2],a=o[r+12>>2],o[n+32>>2]=o[r+8>>2],o[n+36>>2]=a,a=o[r+4>>2],o[n+24>>2]=o[r>>2],o[n+28>>2]=a,a=o[r+28>>2],o[n+48>>2]=o[r+24>>2],o[n+52>>2]=a,a=o[r+20>>2],o[n+40>>2]=o[r+16>>2],o[n+44>>2]=a,b=o[r+44>>2],o[(a=n- -64|0)>>2]=o[r+40>>2],o[a+4>>2]=b,a=o[r+36>>2],o[n+56>>2]=o[r+32>>2],o[n+60>>2]=a,a=o[r+60>>2],o[n+80>>2]=o[r+56>>2],o[n+84>>2]=a,a=o[r+52>>2],o[n+72>>2]=o[r+48>>2],o[n+76>>2]=a,r=o[f+12>>2],f=o[r+12>>2],o[n+96>>2]=o[r+8>>2],o[n+100>>2]=f,f=o[r+4>>2],o[n+88>>2]=o[r>>2],o[n+92>>2]=f,f=o[r+20>>2],o[n+104>>2]=o[r+16>>2],o[n+108>>2]=f,f=o[r+28>>2],o[n+112>>2]=o[r+24>>2],o[n+116>>2]=f,f=o[r+36>>2],o[n+120>>2]=o[r+32>>2],o[n+124>>2]=f,f=o[r+44>>2],o[n+128>>2]=o[r+40>>2],o[n+132>>2]=f,f=o[r+52>>2],o[n+136>>2]=o[r+48>>2],o[n+140>>2]=f,f=o[r+60>>2],o[n+144>>2]=o[r+56>>2],o[n+148>>2]=f,o[8+(r=n+12|0)>>2]=t,o[r+4>>2]=c,o[r>>2]=16628,$(r,n+24|0,i,o[e+20>>2],0),v[A+8|0]&&(A=o[i+4>>2],o[A+844>>2]&&(r=(0|(f=o[A+836>>2]))==(0|(e=o[o[i+8>>2]+8>>2])),a=A,A=o[o[i+12>>2]+8>>2],OA(a,(r?f:A)+4|0,(r?A:e)+4|0)))),S=n+160|0},ei,Lr,Fe,function(A){Fe(A|=0),DA(A)},function(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n=0,a=m(0),t=m(0),c=m(0),b=m(0),u=0,l=m(0),s=m(0),k=0,d=m(0),h=0,B=m(0),Z=m(0),G=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=m(0),L=0,$=m(0),K=m(0),q=m(0),_=m(0),AA=m(0),rA=m(0),fA=m(0),eA=m(0),iA=m(0),nA=m(0),aA=m(0),tA=m(0),oA=m(0),cA=0,bA=0,uA=m(0),lA=m(0),sA=0,kA=m(0);if(S=e=S-48|0,o[A+12>>2]){if(k=v[A+16|0],n=o[(u=k?f:r)+12>>2],Y=w[n+56>>2],V=w[n+52>>2],g=w[n+48>>2],k=o[(h=k?r:f)+12>>2],X=w[k+56>>2],aA=w[k+48>>2],D=w[k+52>>2],u=o[u+4>>2],F=w[n+32>>2],C=w[n+16>>2],J=w[n>>2],x=w[n+36>>2],s=w[n+20>>2],G=w[n+4>>2],t=w[k+40>>2],b=w[k+24>>2],a=w[k+8>>2],c=w[k+32>>2],d=w[k+16>>2],Z=w[k>>2],E=w[k+36>>2],l=w[n+40>>2],W=w[k+20>>2],M=w[n+24>>2],R=w[k+4>>2],H=w[n+8>>2],k=o[h+4>>2],I=w[(L=k- -64|0)>>2],p=w[k+56>>2],T=w[k+60>>2],o[e+28>>2]=0,K=m(m(c*l)+m(m(Z*H)+m(M*d))),p=m(-p),q=m(m(E*l)+m(m(R*H)+m(M*W))),l=m(m(t*l)+m(m(a*H)+m(M*b))),w[e+24>>2]=m(m(K*p)-m(T*q))-m(I*l),M=m(m(c*x)+m(m(Z*G)+m(s*d))),H=m(m(E*x)+m(m(R*G)+m(s*W))),_=m(m(t*x)+m(m(a*G)+m(s*b))),w[e+20>>2]=m(m(M*p)-m(T*H))-m(I*_),AA=m(m(c*F)+m(m(Z*J)+m(C*d))),B=T,T=m(m(E*F)+m(m(R*J)+m(C*W))),tA=I,I=m(m(t*F)+m(m(a*J)+m(C*b))),w[e+16>>2]=m(m(AA*p)-m(B*T))-m(tA*I),Zn[o[o[u>>2]+64>>2]](e+32|0,u,e+16|0),n=o[h+12>>2],p=w[n+48>>2],P=w[n+32>>2],O=w[n+16>>2],B=w[n+8>>2],j=w[n+4>>2],U=w[n>>2],z=w[n+56>>2],y=w[n+52>>2],$=w[n+40>>2],rA=w[n+36>>2],oA=w[n+24>>2],fA=w[n+20>>2],eA=w[k+72>>2],x=w[L>>2],s=w[k+56>>2],G=w[k+60>>2],F=w[e+40>>2],C=w[e+32>>2],J=w[e+36>>2],n=o[A+12>>2],iA=w[n+848>>2],o[i+4>>2]=n,nA=m(m(Y*t)+m(m(g*a)+m(V*b))),tA=a,a=m(-aA),l=m(m(nA+m(m(m(tA*a)-m(b*D))-m(t*X)))+m(m(F*l)+m(m(C*I)+m(_*J)))),d=m(m(m(m(Y*c)+m(m(g*Z)+m(V*d)))+m(m(m(Z*a)-m(d*D))-m(c*X)))+m(m(F*K)+m(m(C*AA)+m(M*J)))),Z=m(m(m(m(Y*E)+m(m(g*R)+m(V*W)))+m(m(m(R*a)-m(W*D))-m(E*X)))+m(m(F*q)+m(m(C*T)+m(H*J)))),(t=m(m(m(x*l)+m(m(s*d)+m(G*Z)))-eA))>2],E=w[n+24>>2],W=w[n+20>>2],R=w[n+40>>2],Y=w[n+36>>2],V=w[n+16>>2],g=w[n+32>>2],b=w[k+64>>2],X=w[n+8>>2],a=w[k+56>>2],D=w[n>>2],c=w[k+60>>2],F=w[n+4>>2],o[e+28>>2]=0,w[e+16>>2]=m(X*b)+m(m(D*a)+m(F*c)),w[e+24>>2]=m(R*b)+m(m(g*a)+m(c*Y)),w[e+20>>2]=m(E*b)+m(m(V*a)+m(c*W)),o[e+12>>2]=0,b=m(l-m(x*t)),a=m(d-m(s*t)),c=m(Z-m(G*t)),w[e+8>>2]=m(m(b*$)+m(m(a*P)+m(c*rA)))+z,w[e+4>>2]=m(m(b*oA)+m(m(a*O)+m(c*fA)))+y,w[e>>2]=m(m(b*B)+m(m(a*U)+m(j*c)))+p,Zn[o[o[i>>2]+16>>2]](i,e+16|0,e,t)),!(o[u+4>>2]>6|o[o[i+4>>2]+844>>2]>=o[A+24>>2]||(b=w[k+64>>2],m(Q(b))>m(.7071067690849304)?(t=w[k+60>>2],a=m(m(1)/m(N(m(m(t*t)+m(b*b))))),t=m(t*a),b=m(a*m(-b)),a=m(0)):(t=w[k+56>>2],a=w[k+60>>2],c=m(m(1)/m(N(m(m(t*t)+m(a*a))))),b=m(t*c),t=m(0),a=m(c*m(-a))),L=0,c=m(Zn[o[o[u>>2]+16>>2]](u)),d=Kr(c=(c=m(w[8297]/c))>m(.39269909262657166)?m(.19634954631328583):m(c*m(.5))),n=o[A+20>>2],M=$r(c),(0|n)<=0)))for(B=t,t=m(d/m(N(m(m(t*t)+m(m(a*a)+m(b*b)))))),H=m(B*t),I=m(b*t),T=m(a*t);b=w[k+60>>2],c=w[k+56>>2],t=w[k+64>>2],a=m(m(m(m(6.2831854820251465)/m(0|n))*m(0|L))*m(.5)),d=m(Kr(a)/m(N(m(m(t*t)+m(m(c*c)+m(b*b)))))),t=m(t*d),b=m(b*d),a=$r(a),c=m(c*d),d=m(m(t*H)+m(m(b*I)+m(m(a*M)+m(T*c)))),Z=m(m(t*I)+m(m(m(a*T)-m(M*c))-m(b*H))),E=m(m(c*H)+m(m(m(a*I)-m(M*b))-m(t*T))),W=m(m(b*T)+m(m(m(a*H)-m(M*t))-m(c*I))),w[e+28>>2]=m(m(m(d*a)-m(c*Z))-m(E*b))-m(W*t),w[e+24>>2]=m(m(Z*b)+m(m(d*t)+m(a*W)))-m(E*c),w[e+20>>2]=m(m(W*c)+m(m(d*b)+m(a*E)))-m(Z*t),w[e+16>>2]=m(m(E*t)+m(m(d*c)+m(a*Z)))-m(W*b),S=n=S-48|0,h=v[A+16|0],u=o[(cA=h?f:r)+12>>2],aA=w[u+56>>2],K=w[u+52>>2],q=w[u+48>>2],h=o[(bA=h?r:f)+12>>2],_=w[h+56>>2],rA=w[h+48>>2],AA=w[h+52>>2],cA=o[cA+4>>2],t=w[h+40>>2],b=w[h+8>>2],a=w[h+24>>2],c=w[h+32>>2],d=w[h>>2],Z=w[h+16>>2],E=w[h+36>>2],Y=w[u+40>>2],V=w[u+32>>2],g=w[u+36>>2],W=w[h+4>>2],X=w[u+8>>2],D=w[u>>2],F=w[u+4>>2],R=w[h+20>>2],C=w[u+24>>2],J=w[u+16>>2],x=w[u+20>>2],G=w[e+28>>2],p=w[e+24>>2],s=w[e+16>>2],l=w[e+20>>2],h=o[bA+4>>2],P=w[(sA=h- -64|0)>>2],oA=w[h+56>>2],O=w[h+60>>2],o[n+28>>2]=0,B=m(m(2)/m(m(G*G)+m(m(p*p)+m(m(s*s)+m(l*l))))),y=m(s*B),fA=m(s*y),j=m(l*B),eA=m(l*j),U=m(m(1)-m(fA+eA)),B=m(p*B),iA=m(s*B),nA=m(G*j),z=m(iA+nA),uA=m(l*B),lA=m(G*y),l=m(uA-lA),y=m(m(Y*U)+m(m(V*z)+m(g*l))),$=m(m(U*X)+m(m(z*D)+m(F*l))),l=m(m(U*C)+m(m(z*J)+m(x*l))),U=m(-oA),w[n+24>>2]=m(m(m(m(c*y)+m(m(d*$)+m(Z*l)))*U)-m(O*m(m(E*y)+m(m(W*$)+m(R*l)))))-m(P*m(m(t*y)+m(m(b*$)+m(a*l)))),l=m(uA+lA),j=m(s*j),z=m(G*B),s=m(j-z),y=m(p*B),G=m(m(1)-m(fA+y)),p=m(m(Y*l)+m(m(V*s)+m(g*G))),B=m(m(l*X)+m(m(s*D)+m(F*G))),s=m(m(l*C)+m(m(s*J)+m(x*G))),w[n+20>>2]=m(m(m(m(c*p)+m(m(d*B)+m(Z*s)))*U)-m(O*m(m(E*p)+m(m(W*B)+m(R*s)))))-m(P*m(m(t*p)+m(m(b*B)+m(a*s)))),s=m(iA-nA),G=m(m(1)-m(eA+y)),l=m(j+z),p=m(m(Y*s)+m(m(V*G)+m(g*l))),B=m(m(s*X)+m(m(G*D)+m(F*l))),s=m(m(s*C)+m(m(G*J)+m(x*l))),w[n+16>>2]=m(m(m(m(c*p)+m(m(d*B)+m(Z*s)))*U)-m(O*m(m(E*p)+m(m(W*B)+m(R*s)))))-m(P*m(m(t*p)+m(m(b*B)+m(a*s)))),Zn[o[o[cA>>2]+64>>2]](n+32|0,cA,n+16|0),u=o[bA+12>>2],j=w[u+48>>2],U=w[u+32>>2],z=w[u+16>>2],y=w[u+8>>2],$=w[u+4>>2],oA=w[u>>2],fA=w[u+56>>2],eA=w[u+52>>2],iA=w[u+40>>2],nA=w[u+36>>2],uA=w[u+24>>2],lA=w[u+20>>2],kA=w[h+72>>2],p=w[sA>>2],P=w[h+56>>2],O=w[h+60>>2],s=w[n+40>>2],G=w[n+32>>2],l=w[n+36>>2],u=o[A+12>>2],B=w[u+848>>2],o[i+4>>2]=u,tA=B,B=m(-rA),rA=m(m(m(m(aA*t)+m(m(q*b)+m(K*a)))+m(m(m(b*B)-m(a*AA))-m(t*_)))+m(m(s*m(m(Y*t)+m(m(X*b)+m(C*a))))+m(m(G*m(m(V*t)+m(m(D*b)+m(J*a))))+m(l*m(m(g*t)+m(m(F*b)+m(x*a))))))),d=m(m(m(m(aA*c)+m(m(q*d)+m(K*Z)))+m(m(m(d*B)-m(Z*AA))-m(c*_)))+m(m(s*m(m(Y*c)+m(m(X*d)+m(C*Z))))+m(m(G*m(m(V*c)+m(m(D*d)+m(J*Z))))+m(l*m(m(g*c)+m(m(F*d)+m(x*Z))))))),Z=m(m(m(m(aA*E)+m(m(q*W)+m(K*R)))+m(m(m(W*B)-m(R*AA))-m(E*_)))+m(m(s*m(m(Y*E)+m(m(X*W)+m(C*R))))+m(m(G*m(m(V*E)+m(m(D*W)+m(J*R))))+m(l*m(m(g*E)+m(m(F*W)+m(x*R))))))),tA>(t=m(m(m(p*rA)+m(m(P*d)+m(O*Z)))-kA))&&(u=o[bA+12>>2],E=w[u+24>>2],W=w[u+20>>2],R=w[u+40>>2],Y=w[u+36>>2],V=w[u+16>>2],g=w[u+32>>2],b=w[h+64>>2],X=w[u+8>>2],a=w[h+56>>2],D=w[u>>2],c=w[h+60>>2],F=w[u+4>>2],o[n+28>>2]=0,w[n+16>>2]=m(X*b)+m(m(D*a)+m(F*c)),w[n+24>>2]=m(R*b)+m(m(g*a)+m(c*Y)),w[n+20>>2]=m(E*b)+m(m(V*a)+m(c*W)),o[n+12>>2]=0,b=m(rA-m(p*t)),a=m(d-m(P*t)),c=m(Z-m(O*t)),w[n+8>>2]=m(m(b*iA)+m(m(a*U)+m(c*nA)))+fA,w[n+4>>2]=m(m(b*uA)+m(m(a*z)+m(c*lA)))+eA,w[n>>2]=m(m(b*y)+m(m(a*oA)+m($*c)))+j,Zn[o[o[i>>2]+16>>2]](i,n+16|0,n,t)),S=n+48|0,(0|(n=o[A+20>>2]))>(0|(L=L+1|0)););!v[A+8|0]|!o[o[A+12>>2]+844>>2]||(A=o[i+4>>2],o[A+844>>2]&&(r=(0|(f=o[A+836>>2]))==(0|(n=o[o[i+8>>2]+8>>2])),u=A,A=o[o[i+12>>2]+8>>2],OA(u,(r?f:A)+4|0,(r?A:n)+4|0)))}S=e+48|0},ei,Lr,cr,function(A){cr(A|=0),DA(A)},ji,yi,function(A,r,f){var e;if(A|=0,!((e=8!=(0|(r|=0)))|8!=(0|(f|=0))))return o[A+56>>2];if(!(1!=(0|f)|e))return o[A+72>>2];if(!(1!=(0|r)|8!=(0|f)))return o[A+76>>2];if(!(r|f))return o[A+68>>2];if(!(28!=(0|f)|(0|r)>19))return o[A+84>>2];if(!(28!=(0|r)|(0|f)>19))return o[A+80>>2];A:{if((0|r)<=19){if((0|f)<=19)return o[A+28>>2];if(f-21>>>0>8)break A;return o[A+32>>2]}if(!((0|f)>19|r-21>>>0>8))return o[A+36>>2];if(31==(0|r))return 31==(0|f)?o[A+44>>2]:o[A+40>>2]}return 31==(0|f)?o[A+48>>2]:o[A+52>>2]},function(A,r,f){var e;if(A|=0,!((e=8!=(0|(r|=0)))|8!=(0|(f|=0))))return o[A+56>>2];if(!(1!=(0|f)|e))return o[A+72>>2];if(!(1!=(0|r)|8!=(0|f)))return o[A+76>>2];if(!(28!=(0|f)|(0|r)>19))return o[A+84>>2];if(!(28!=(0|r)|(0|f)>19))return o[A+80>>2];A:{if((0|r)<=19){if((0|f)<=19)return o[A+28>>2];if(f-21>>>0>8)break A;return o[A+32>>2]}if(!((0|f)>19|r-21>>>0>8))return o[A+36>>2];if(31==(0|r))return 31==(0|f)?o[A+44>>2]:o[A+40>>2]}return 31==(0|f)?o[A+48>>2]:o[A+52>>2]},en,vn,function(A,r,f,e){return A|=0,f|=0,e|=0,A=o[(r|=0)>>2],0|zf(0|Zn[o[o[A>>2]+56>>2]](A,80),r,f,e,0)},vn,function(A,r,f,e){return A|=0,f|=0,e|=0,A=o[(r|=0)>>2],0|zf(0|Zn[o[o[A>>2]+56>>2]](A,80),r,f,e,1)},vn,function(A,r,f,e){return A|=0,f|=0,e|=0,A=o[(r|=0)>>2],0|Uf(0|Zn[o[o[A>>2]+56>>2]](A,84),r,f,e,0)},vn,function(A,r,f,e){A|=0,f|=0,e|=0;var i,n=0,t=0,c=0,b=0,u=0,l=0,s=0;if(A=o[(r|=0)>>2],r=Uf(0|Zn[o[o[A>>2]+56>>2]](A,116),r,f,e,0),o[r>>2]=16464,a[r+104|0]=1,o[r+100>>2]=0,o[r+92>>2]=0,o[r+96>>2]=0,o[8488]=o[8488]+1,A=0|Zn[o[8290]](64,16),a[A+20|0]=1,o[A>>2]=17912,o[A+16>>2]=0,a[A+40|0]=1,o[A+8>>2]=0,o[A+12>>2]=0,o[A+36>>2]=0,a[A+60|0]=1,o[A+28>>2]=0,o[A+32>>2]=0,o[A+56>>2]=0,o[A+48>>2]=0,o[A+52>>2]=0,o[8488]=o[8488]+1,i=0|Zn[o[8290]](24,16),!((0|(c=o[A+8>>2]))<=0)){if(1!=(0|c))for(s=-2&c;b=(n=G(t,12))+o[A+16>>2]|0,u=o[b+4>>2],o[(n=n+i|0)>>2]=o[b>>2],o[n+4>>2]=u,o[n+8>>2]=o[b+8>>2],b=(n=G(1|t,12))+o[A+16>>2]|0,u=o[b+4>>2],o[(n=n+i|0)>>2]=o[b>>2],o[n+4>>2]=u,o[n+8>>2]=o[b+8>>2],t=t+2|0,(0|s)!=(0|(l=l+2|0)););1&c&&(t=(c=G(t,12))+o[A+16>>2]|0,b=o[t+4>>2],o[(c=c+i|0)>>2]=o[t>>2],o[c+4>>2]=b,o[c+8>>2]=o[t+8>>2])}return!(t=o[A+16>>2])||!t|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](t)),o[A+16>>2]=i,a[A+20|0]=1,o[A+12>>2]=2,Ar(A),o[r+84>>2]=A,o[r+108>>2]=o[o[f+4>>2]+76>>2],o[r+112>>2]=o[o[e+4>>2]+76>>2],0|r},vn,function(A,r,f,e){return A|=0,f|=0,e|=0,A=o[(r|=0)>>2],0|Uf(0|Zn[o[o[A>>2]+56>>2]](A,84),r,f,e,1)},vn,function(A,r){return A|=0,A=o[(r|=0)>>2],A=0|Zn[o[o[A>>2]+56>>2]](A,8),o[A>>2]=15064,o[A+4>>2]=o[r>>2],o[A>>2]=17852,0|A},vn,function(A,r,f,e){return A|=0,f|=0,e|=0,A=o[(r|=0)>>2],A=0|Zn[o[o[A>>2]+56>>2]](A,16),o[A>>2]=15064,o[A+4>>2]=o[r>>2],o[A>>2]=15092,o[A+12>>2]=0,a[A+8|0]=0,o[A>>2]=18036,r=o[A+4>>2],r=0|Zn[o[o[r>>2]+12>>2]](r,o[f+8>>2],o[e+8>>2]),a[A+8|0]=1,o[A+12>>2]=r,0|A},vn,function(A,r,f,e){A|=0,f|=0,e|=0;var i,n=0;return n=o[(r|=0)>>2],n=0|Zn[o[o[n>>2]+56>>2]](n,20),i=o[r+4>>2],A=v[A+4|0],o[n>>2]=15064,o[n+4>>2]=o[r>>2],o[n>>2]=15092,a[n+16|0]=A,o[n+12>>2]=i,a[n+8|0]=0,o[n>>2]=18112,i||(A=o[n+4>>2],A=0|Zn[o[o[A>>2]+12>>2]](A,o[f+8>>2],o[e+8>>2]),a[n+8|0]=1,o[n+12>>2]=A),0|n},vn,function(A,r,f,e){return A|=0,f|=0,e|=0,A=o[(r|=0)>>2],A=0|Zn[o[o[A>>2]+56>>2]](A,16),o[A>>2]=15064,o[A+4>>2]=o[r>>2],o[A>>2]=15092,o[A+12>>2]=0,a[A+8|0]=0,o[A>>2]=16728,r=o[A+4>>2],0|Zn[o[o[r>>2]+24>>2]](r,o[f+8>>2],o[e+8>>2])&&(r=o[A+4>>2],r=0|Zn[o[o[r>>2]+12>>2]](r,o[f+8>>2],o[e+8>>2]),a[A+8|0]=1,o[A+12>>2]=r),0|A},vn,function(A,r,f,e){A|=0,f|=0,e|=0;var i,n,t=0;return t=o[(r|=0)>>2],t=0|Zn[o[o[t>>2]+56>>2]](t,28),i=v[A+4|0],n=o[A+8>>2],A=o[A+12>>2],o[t>>2]=15064,o[t+4>>2]=o[r>>2],o[t+24>>2]=A,o[t+20>>2]=n,a[t+16|0]=i,o[t+12>>2]=0,a[t+8|0]=0,o[t>>2]=16800,A=o[t+4>>2],r=i?e:f,f=i?f:e,0|Zn[o[o[A>>2]+24>>2]](A,o[r+8>>2],o[f+8>>2])&&(A=o[t+4>>2],A=0|Zn[o[o[A>>2]+12>>2]](A,o[r+8>>2],o[f+8>>2]),a[t+8|0]=1,o[t+12>>2]=A),0|t},vn,function(){},ei,dn,Vf,function(A){Vf(A|=0),DA(A)},function(A,r,f){A|=0,r|=0,f|=0;var e,i=0,n=0,a=0,t=0,c=0,b=0,u=0,l=0;o[8498]=o[8498]+1,e=o[A+36>>2],i=G((i=~((i=f<<16|r)<<15)+i|0)>>>10^i,9),i=~((i^=i>>>6)<<11)+i|0,b=e+((o[A+12>>2]-1&(i>>>16^i))<<2)|0;A:if(-1!=(0|(i=o[b>>2]))){for(a=o[A+56>>2],t=o[A+16>>2],n=i;;){if(u=t+G(n,12)|0,!(o[u>>2]==(0|r)&o[u+4>>2]==(0|f))){if(-1!=(0|(n=o[(n<<2)+a>>2])))continue;break A}break}l=o[8+(t+G(n,12)|0)>>2];r:{if((0|i)!=(0|n)){for(;(0|n)!=(0|(i=o[((r=i)<<2)+a>>2])););if(-1!=(0|r)){o[(r<<2)+a>>2]=o[(n<<2)+a>>2];break r}}o[b>>2]=o[(n<<2)+a>>2]}if((0|(c=o[A+8>>2]-1|0))!=(0|n)){r:{if(t=t+G(c,12)|0,r=o[t+4>>2]<<16|o[t>>2],r=G((r=~(r<<15)+r|0)>>>10^r,9),r=~((r^=r>>>6)<<11)+r|0,b=o[A+12>>2]-1&(r>>>16^r),(0|c)!=(0|(r=o[(i=e+(b<<2)|0)>>2]))){for(;f=r,(0|c)!=(0|(r=o[(r<<2)+a>>2])););if(-1!=(0|f)){o[(f<<2)+a>>2]=o[(c<<2)+a>>2];break r}}o[i>>2]=o[(c<<2)+a>>2]}r=o[t+4>>2],o[u>>2]=o[t>>2],o[u+4>>2]=r,o[u+8>>2]=o[t+8>>2],r=o[A+36>>2]+(b<<2)|0,o[o[A+56>>2]+(n<<2)>>2]=o[r>>2],o[r>>2]=n,n=o[A+8>>2]-1|0}o[A+8>>2]=n}return 0|l},function(A,r,f){A|=0,r|=0,f|=0;var e,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0,h=0,B=0;o[8499]=o[8499]+1,i=G((i=~((i=f<<16|r)<<15)+i|0)>>>10^i,9),s=(e=(i=~((i^=i>>>6)<<11)+i|0)>>>16^i)&(i=o[A+12>>2])-1;A:{if(-1!=(0|(n=o[o[A+36>>2]+(s<<2)>>2])))for(u=o[A+56>>2],l=o[A+16>>2];;){if(t=l+G(n,12)|0,o[t>>2]==(0|r)&o[t+4>>2]==(0|f))break A;if(-1==(0|(n=o[u+(n<<2)>>2])))break}r:{f:{if((0|(t=u=o[A+8>>2]))==(0|i)){if(!(d=(0|(l=i?i<<1:1))<=(0|i)))break f}else i=t;o[A+8>>2]=i+1,t=o[A+16>>2];break r}if(l?(o[8488]=o[8488]+1,t=0|Zn[o[8290]](G(l,12),16),i=o[A+8>>2]):t=0,!((0|i)<=0)){if(n=0,1!=(0|i))for(B=-2&i;b=(c=G(n,12))+o[A+16>>2]|0,k=o[b+4>>2],o[(c=t+c|0)>>2]=o[b>>2],o[c+4>>2]=k,o[c+8>>2]=o[b+8>>2],b=(c=G(1|n,12))+o[A+16>>2]|0,k=o[b+4>>2],o[(c=t+c|0)>>2]=o[b>>2],o[c+4>>2]=k,o[c+8>>2]=o[b+8>>2],n=n+2|0,(0|B)!=(0|(h=h+2|0)););1&i&&(i=(n=G(n,12))+t|0,n=n+o[A+16>>2]|0,b=o[n+4>>2],o[i>>2]=o[n>>2],o[i+4>>2]=b,o[i+8>>2]=o[n+8>>2])}!(i=o[A+16>>2])||!i|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),o[A+16>>2]=t,a[A+20|0]=1,o[A+12>>2]=l,o[A+8>>2]=o[A+8>>2]+1,d||(Ar(A),s=o[A+12>>2]-1&e)}t=G(u,12)+t|0,o[t+8>>2]=0,o[t+4>>2]=f,o[t>>2]=r,r=o[A+56>>2]+(u<<2)|0,A=o[A+36>>2]+(s<<2)|0,o[r>>2]=o[A>>2],o[A>>2]=u}return 0|t},yi,vn,function(A,r,f,e){A|=0,r|=0,f|=0,e=m(e);var i,n=m(0),a=0,t=m(0),c=0,b=m(0),u=m(0),l=m(0),s=m(0),k=0,d=0,h=m(0),B=0,Z=0,E=0,W=0,p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=0,X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=0;if(S=i=S-208|0,!(w[o[A+4>>2]+848>>2]>2],u=m(m(w[r+8>>2]*e)+h),F=w[f+4>>2],t=m(m(w[r+4>>2]*e)+F),R=w[f>>2],l=m(m(w[r>>2]*e)+R),Z=o[A+8>>2],a=o[Z+8>>2],B=o[A+4>>2],(E=(0|a)==(0|(c=o[B+836>>2])))?(n=m(u-w[c+60>>2]),s=m(l-w[c+52>>2]),b=m(t-w[c+56>>2]),Y=m(m(w[c+44>>2]*n)+m(m(w[c+12>>2]*s)+m(b*w[c+28>>2]))),V=m(m(w[c+40>>2]*n)+m(m(w[c+8>>2]*s)+m(b*w[c+24>>2]))),d=o[A+12>>2],a=o[d+8>>2],n=m(m(w[c+36>>2]*n)+m(m(w[c+4>>2]*s)+m(b*w[c+20>>2])))):(d=o[A+12>>2],c=o[d+8>>2],n=m(u-w[c+60>>2]),s=m(l-w[c+52>>2]),b=m(t-w[c+56>>2]),Y=m(m(w[c+44>>2]*n)+m(m(w[c+12>>2]*s)+m(b*w[c+28>>2]))),V=m(m(w[c+40>>2]*n)+m(m(w[c+8>>2]*s)+m(b*w[c+24>>2]))),n=m(m(w[c+36>>2]*n)+m(m(w[c+4>>2]*s)+m(b*w[c+20>>2])))),g=o[B+844>>2],X=w[a+20>>2],D=w[a+36>>2],C=w[a+40>>2],J=w[a+8>>2],x=w[a+24>>2],s=w[a+44>>2],b=w[a+60>>2],y=w[a+12>>2],M=w[a+52>>2],H=w[a+28>>2],I=w[a+56>>2],T=w[a+4>>2],o[i+28>>2]=0,p=s,s=m(h-b),b=m(R-M),h=m(F-I),w[i+24>>2]=m(p*s)+m(m(y*b)+m(H*h)),w[i+20>>2]=m(C*s)+m(m(J*b)+m(h*x)),o[i+12>>2]=0,w[i+8>>2]=Y,w[i+4>>2]=V,w[i>>2]=n,w[i+16>>2]=m(D*s)+m(m(T*b)+m(h*X)),a=o[r+12>>2],o[i+72>>2]=o[r+8>>2],o[i+76>>2]=a,a=o[r>>2],r=o[r+4>>2],o[i+92>>2]=0,o[i+96>>2]=0,o[i+124>>2]=0,o[i+128>>2]=0,o[i+132>>2]=0,o[i+136>>2]=0,o[i+140>>2]=0,o[i+144>>2]=0,o[i+148>>2]=0,o[i+152>>2]=0,o[i+156>>2]=0,o[i+160>>2]=0,o[i+164>>2]=0,w[i+52>>2]=t,w[i+56>>2]=u,o[i+60>>2]=0,o[i+64>>2]=a,o[i+68>>2]=r,o[i+84>>2]=0,o[i+88>>2]=0,w[i+80>>2]=e,o[i+116>>2]=0,o[i+120>>2]=0,w[i+48>>2]=l,r=o[f+12>>2],o[i+40>>2]=o[f+8>>2],o[i+44>>2]=r,r=o[f+4>>2],o[i+32>>2]=o[f>>2],o[i+36>>2]=r,r=(r=o[Z>>2])||Z,a=(f=o[d>>2])||d,E?(k=A+28|0,f=A+24|0,W=A+16|0,c=a,a=r,r=A+20|0):(k=A+24|0,f=A+28|0,W=A+20|0,c=r,r=A+16|0),a=o[a+4>>2],W=o[W>>2],U=o[r>>2],r=o[f>>2],f=o[k>>2],k=o[c+4>>2],o[i+204>>2]=k,o[i+112>>2]=f,o[i+108>>2]=r,o[i+104>>2]=U,o[i+100>>2]=W,o[i+200>>2]=a,31==o[a+4>>2]&&(a=o[64+(o[a+32>>2]+G(r,80)|0)>>2],o[i+200>>2]=a),31==o[k+4>>2]&&(k=o[64+(o[k+32>>2]+G(f,80)|0)>>2],o[i+204>>2]=k),c=A+4|0,(r=o[a+16>>2])&&(f=o[k+16>>2])?(t=w[r+12>>2],l=w[f+12>>2],n=w[r+8>>2],s=w[f+8>>2],e=w[f+4>>2],u=w[r+4>>2],w[i+96>>2]=w[r>>2]*w[f>>2],b=(b=m(u*e))>2]=b>m(10)?m(10):b,n=(n=m(m(n*e)+m(u*s)))>2]=n>m(10)?m(10):n,e=(e=(e=m(m(t*e)+m(u*l)))m(10)?m(10):e):(r=o[Z+8>>2],e=w[r+228>>2],f=o[d+8>>2],u=w[f+228>>2],t=(t=m(e*u))>2]=t>m(10)?m(10):t,w[i+96>>2]=w[r+232>>2]*w[f+232>>2],t=(t=m(m(u*w[r+236>>2])+m(e*w[f+236>>2])))>2]=t>m(10)?m(10):t,e=(e=(e=m(m(u*w[r+240>>2])+m(e*w[f+240>>2])))m(10)?m(10):e),w[i+92>>2]=e,e=w[i+72>>2],m(Q(e))>m(.7071067690849304)?(t=w[i+68>>2],l=m(m(t*t)+m(e*e)),u=m(m(1)/m(N(l))),l=m(l*u),n=m(u*m(-e)),b=w[i+64>>2],s=m(n*b),e=m(t*u),t=m(e*m(-b)),b=m(0)):(l=w[i+64>>2],t=w[i+68>>2],n=m(m(l*l)+m(t*t)),u=m(m(1)/m(N(n))),s=m(n*u),b=m(u*m(-t)),t=m(e*b),n=m(l*u),l=m(n*m(-e)),e=m(0)),w[i+192>>2]=s,w[i+188>>2]=t,w[i+172>>2]=n,w[i+184>>2]=l,w[i+176>>2]=e,w[i+168>>2]=b,a=o[c>>2],(0|(d=o[B+844>>2]))<=0)r=-1;else for(u=w[i+8>>2],t=w[i+4>>2],l=w[i>>2],e=w[B+848>>2],e=m(e*e),f=0,r=-1;k=G(f,208)+B|0,n=m(w[k+12>>2]-u),s=m(n*n),n=m(w[k+4>>2]-l),p=m(n*n),n=m(w[k+8>>2]-t),e=(k=(n=m(s+m(p+m(n*n))))=0?(r=a+G(k,208)|0,e=w[r+144>>2],u=w[r+140>>2],t=w[r+136>>2],f=o[r+168>>2],16&v[i+128|0]&&(l=m(m(w[r+88>>2]*t)+m(0)),!(m(m(u*u)+m(e*e))>m(l*l)))||(a=o[r+120>>2],pr(r+4|0,i,208),o[r+120>>2]=a,w[r+136>>2]=t,w[r+140>>2]=u,w[r+144>>2]=e),o[r+168>>2]=f):k=wA(a,i),(f=o[8501])&&(r=o[A+12>>2],A=o[A+8>>2],8&v[o[A+8>>2]+204|0]|8&v[o[r+8>>2]+204|0]&&Zn[0|f](4+(o[c>>2]+G(k,208)|0)|0,E?A:r,o[i+100>>2],o[i+108>>2],E?r:A,o[i+104>>2],o[i+112>>2])),g||(A=o[8787])&&Zn[0|A](c)}S=i+208|0},Re,function(A){Re(A|=0),DA(A)},function(A,r,f,e,i){A|=0,r|=0,f|=0,e|=0,i|=0;var n=0,a=m(0),t=m(0),c=m(0),b=m(0),u=0,l=m(0),s=m(0),k=m(0),d=m(0),v=0;if(S=e=S-32|0,A=o[A+12>>2]){if(o[i+4>>2]=A,n=o[r+12>>2],u=o[f+12>>2],c=m(w[n+56>>2]-w[u+56>>2]),s=m(w[n+48>>2]-w[u+48>>2]),b=m(w[n+52>>2]-w[u+52>>2]),a=m(m(c*c)+m(m(s*s)+m(b*b))),n=o[f+4>>2],l=w[n+20>>2],t=w[n+36>>2],r=o[r+4>>2],k=w[r+20>>2],d=w[r+36>>2],(0|(n=o[A+844>>2]))>0)for(r=0;n=A+G(r,208)|0,(u=o[n+120>>2])&&(v=o[8785])&&(Zn[0|v](u),o[n+120>>2]=0),(0|(r=r+1|0))<(0|(n=o[A+844>>2])););a=m(N(a)),l=m(t*l),t=m(d*k),n&&(r=o[8788])&&(o[e+16>>2]=A,Zn[0|r](e+16|0)),o[A+844>>2]=0,t=m(t+l),a>m(t+w[i+32>>2])||(o[e+24>>2]=0,o[e+28>>2]=0,o[e+16>>2]=1065353216,o[e+20>>2]=0,t=m(a-t),a>m(1.1920928955078125e-7)?(a=m(m(1)/a),c=m(c*a),w[e+24>>2]=c,b=m(b*a),w[e+20>>2]=b,a=m(s*a),w[e+16>>2]=a):(a=m(1),c=m(0),b=m(0)),A=o[f+12>>2],s=w[A+52>>2],k=w[A+56>>2],d=w[A+48>>2],o[e+12>>2]=0,w[e>>2]=d+m(l*a),w[e+8>>2]=k+m(l*c),w[e+4>>2]=s+m(l*b),Zn[o[o[i>>2]+16>>2]](i,e+16|0,e,t))}S=e+32|0},ei,Lr,Ye,function(A){Ye(A|=0),DA(A)},function(A,r,f,e,i){r|=0,f|=0,e|=0,i|=0;var n,a=0,t=0,c=0,b=0;S=n=S-160|0,(a=o[12+(A|=0)>>2])&&(t=v[A+16|0],b=o[(c=t?r:f)+4>>2],t=o[(r=t?f:r)+4>>2],o[i+4>>2]=a,w[12+(f=n+144|0)>>2]=w[a+848>>2]+w[i+32>>2],o[f+8>>2]=b,o[f+4>>2]=t,o[f>>2]=18192,o[n+136>>2]=1566444395,r=o[r+12>>2],a=o[r+12>>2],o[n+16>>2]=o[r+8>>2],o[n+20>>2]=a,a=o[r+4>>2],o[n+8>>2]=o[r>>2],o[n+12>>2]=a,a=o[r+28>>2],o[n+32>>2]=o[r+24>>2],o[n+36>>2]=a,a=o[r+20>>2],o[n+24>>2]=o[r+16>>2],o[n+28>>2]=a,a=o[r+44>>2],o[n+48>>2]=o[r+40>>2],o[n+52>>2]=a,a=o[r+36>>2],o[n+40>>2]=o[r+32>>2],o[n+44>>2]=a,t=o[r+60>>2],o[(a=n- -64|0)>>2]=o[r+56>>2],o[a+4>>2]=t,a=o[r+52>>2],o[n+56>>2]=o[r+48>>2],o[n+60>>2]=a,r=o[c+12>>2],a=o[r+12>>2],o[n+80>>2]=o[r+8>>2],o[n+84>>2]=a,a=o[r+4>>2],o[n+72>>2]=o[r>>2],o[n+76>>2]=a,a=o[r+20>>2],o[n+88>>2]=o[r+16>>2],o[n+92>>2]=a,a=o[r+28>>2],o[n+96>>2]=o[r+24>>2],o[n+100>>2]=a,a=o[r+36>>2],o[n+104>>2]=o[r+32>>2],o[n+108>>2]=a,a=o[r+44>>2],o[n+112>>2]=o[r+40>>2],o[n+116>>2]=a,a=o[r+52>>2],o[n+120>>2]=o[r+48>>2],o[n+124>>2]=a,a=o[r+60>>2],o[n+128>>2]=o[r+56>>2],o[n+132>>2]=a,BA(f,n+8|0,i,o[e+20>>2],v[A+16|0]),v[A+8|0]&&(A=o[i+4>>2],o[A+844>>2]&&(r=(0|(f=o[A+836>>2]))==(0|(e=o[o[i+8>>2]+8>>2])),a=A,A=o[o[i+12>>2]+8>>2],OA(a,(r?f:A)+4|0,(r?A:e)+4|0)))),S=n+160|0},ei,Lr,vn,BA,ri,of,Df,function(A,r,f){A|=0,r=m(r),f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0);e=w[A+44>>2],i=w[A+40>>2],n=w[A+36>>2],a=m(Zn[o[o[A>>2]+48>>2]](A)),t=m(Zn[o[o[A>>2]+48>>2]](A)),c=m(Zn[o[o[A>>2]+48>>2]](A)),o[f+12>>2]=0,r=m(r/m(12)),n=m(n+a),n=m(n+n),n=m(n*n),i=m(i+t),i=m(i+i),i=m(i*i),w[f+8>>2]=r*m(n+i),e=m(e+c),e=m(e+e),e=m(e*e),w[f+4>>2]=r*m(n+e),w[f>>2]=r*m(i+e)},function(){return 1476},xf,function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0);e=w[r+40>>2],i=w[r+44>>2],n=w[r+36>>2],a=m(Zn[o[o[r>>2]+48>>2]](r)),t=m(Zn[o[o[r>>2]+48>>2]](r)),c=m(Zn[o[o[r>>2]+48>>2]](r)),b=w[f>>2],u=w[f+4>>2],l=w[f+8>>2],o[A+12>>2]=0,i=m(i+c),w[A+8>>2]=l>=m(0)?i:m(-i),e=m(e+t),w[A+4>>2]=u>=m(0)?e:m(-e),e=m(n+a),w[A>>2]=b>=m(0)?e:m(-e)},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0);e=w[r+40>>2],i=w[r+44>>2],a=w[f+4>>2],t=w[f+8>>2],n=w[r+36>>2],c=w[f>>2],o[A+12>>2]=0,w[A>>2]=c>=m(0)?n:m(-n),w[A+8>>2]=t>=m(0)?i:m(-i),w[A+4>>2]=a>=m(0)?e:m(-e)},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=0,n=0,a=0,t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0);if((0|e)>0)for(;u=w[(i=(a=n<<4)+r|0)>>2],l=w[i+4>>2],s=w[i+8>>2],t=w[A+36>>2],c=w[A+40>>2],b=w[A+44>>2],o[12+(i=f+a|0)>>2]=0,w[i+8>>2]=s>=m(0)?b:m(-b),w[i+4>>2]=l>=m(0)?c:m(-c),w[i>>2]=u>=m(0)?t:m(-t),(0|(n=n+1|0))!=(0|e););},kn,function(A,r,f){A|=0,f|=0,(r|=0)>>>0<=5&&(o[f+12>>2]=0,A=r<<2,w[f+8>>2]=w[A+18456>>2],w[f+4>>2]=w[A+18432>>2],w[f>>2]=w[A+18408>>2])},function(){return 8},on,function(A,r,f,e){A|=0,f|=0,e|=0;var i=0;(r|=0)>>>0<=11?(i=o[18528+(r<<=2)>>2],r=o[r+18480>>2]):r=0,Zn[o[o[A>>2]+108>>2]](A,r,f),Zn[o[o[A>>2]+108>>2]](A,i,e)},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0);i=w[A+44>>2],e=w[A+40>>2],n=w[A+36>>2],a=m(Zn[o[o[A>>2]+48>>2]](A)),t=m(Zn[o[o[A>>2]+48>>2]](A)),c=m(Zn[o[o[A>>2]+48>>2]](A)),o[f+12>>2]=0,e=m(e+t),A=r>>>1&1,w[f+4>>2]=m(e*m(0|!A))-m(m(0|A)*e),e=m(n+a),A=1&r,w[f>>2]=m(e*m(0|!A))-m(m(0|A)*e),i=m(i+c),A=r>>>2&1,w[f+8>>2]=m(i*m(0|!A))-m(m(0|A)*i)},kn,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=m(0),a=m(0),t=m(0);S=i=S-48|0,Zn[o[o[A>>2]+124>>2]](A,i+32|0,e),n=w[i+32>>2],a=w[i+36>>2],t=w[i+40>>2],o[r+12>>2]=0,w[r+8>>2]=t,w[r+4>>2]=a,w[r>>2]=n,o[i+12>>2]=0,w[i+8>>2]=-t,w[i+4>>2]=-a,w[i>>2]=-n,Zn[o[o[A>>2]+64>>2]](i+16|0,A,i),A=o[i+28>>2],o[f+8>>2]=o[i+24>>2],o[f+12>>2]=A,A=o[i+20>>2],o[f>>2]=o[i+16>>2],o[f+4>>2]=A,S=i+48|0},function(A,r,f){A|=0,r|=0,f=m(f);var e=m(0),i=m(0),n=0;return e=w[r>>2],i=w[A+36>>2],!(e<=m(i+f))|!(e>=m(m(-i)-f))||(e=w[r+4>>2],i=w[A+40>>2],!(e<=m(i+f))|!(e>=m(m(-i)-f))||(e=w[r+8>>2],i=w[A+44>>2],e<=m(i+f)&&(n=e>=m(m(-i)-f)))),0|n},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),o=m(0);a=w[A+44>>2],t=w[A+40>>2],e=w[A+36>>2],i=m(1);A:{r:{f:{e:{i:switch(0|f){case 1:i=m(-1);break r;case 2:n=m(1);break f;case 3:n=m(-1);break f;case 4:e=m(1);break e;case 0:break r;case 5:break i;default:break A}e=m(-1)}o=e,i=m(0),e=a;break r}i=m(0),e=t}w[r+8>>2]=o,w[r+4>>2]=n,w[r>>2]=i,w[r+12>>2]=-e}},nf,ii,vA,nn,function(A,r,f){A|=0,f|=0;var e=0,i=0,n=0,a=0,c=0,b=0;if(w[16+(r|=0)>>2]=w[A+20>>2],w[r+20>>2]=w[A+24>>2],w[r+24>>2]=w[A+28>>2],w[r+28>>2]=w[A+32>>2],w[r>>2]=w[A+4>>2],w[r+4>>2]=w[A+8>>2],w[r+8>>2]=w[A+12>>2],w[r+12>>2]=w[A+16>>2],w[r+32>>2]=w[A+36>>2],w[r+36>>2]=w[A+40>>2],w[r+40>>2]=w[A+44>>2],w[r+44>>2]=w[A+48>>2],o[r+48>>2]=o[A+56>>2],o[r+52>>2]=v[A+60|0],e=o[A+88>>2],o[r+56>>2]=e,e){if(e=0|Zn[o[o[f>>2]+28>>2]](f,o[A+96>>2]),o[r+64>>2]=e,e){if(a=o[A+88>>2],c=0|Zn[o[o[f>>2]+16>>2]](f,48,a),(0|a)>0)for(e=o[c+8>>2];i=o[A+96>>2]+(n<<6)|0,w[e+16>>2]=w[i+16>>2],w[e+20>>2]=w[i+20>>2],w[e+24>>2]=w[i+24>>2],w[e+28>>2]=w[i+28>>2],w[e>>2]=w[i>>2],w[e+4>>2]=w[i+4>>2],w[e+8>>2]=w[i+8>>2],w[e+12>>2]=w[i+12>>2],o[e+32>>2]=o[i+32>>2],o[e+36>>2]=o[i+36>>2],i=o[i+40>>2],o[e+44>>2]=0,o[e+40>>2]=i,e=e+48|0,(0|a)!=(0|(n=n+1|0)););Zn[o[o[f>>2]+20>>2]](f,c,9163,1497453121,o[A+96>>2])}}else o[r+64>>2]=0;if(e=o[A+128>>2],o[r+60>>2]=e,e){if(e=0|Zn[o[o[f>>2]+28>>2]](f,o[A+136>>2]),o[r+68>>2]=e,e){if(n=0,c=o[A+128>>2],b=0|Zn[o[o[f>>2]+16>>2]](f,16,c),(0|c)<=0)a=o[A+136>>2];else for(a=o[A+136>>2],e=o[b+8>>2];i=(n<<4)+a|0,o[e+12>>2]=o[i+12>>2],t[e+6>>1]=h[i+6>>1],t[e+8>>1]=h[i+8>>1],t[e+10>>1]=h[i+10>>1],t[e>>1]=h[i>>1],t[e+2>>1]=h[i+2>>1],t[e+4>>1]=h[i+4>>1],e=e+16|0,(0|c)!=(0|(n=n+1|0)););Zn[o[o[f>>2]+20>>2]](f,b,9140,1497453121,a)}}else o[r+68>>2]=0;if(o[r+76>>2]=o[A+144>>2],e=o[A+152>>2],o[r+80>>2]=e,!e)return o[r+72>>2]=0,8832;if(e=r,r=0|Zn[o[o[f>>2]+28>>2]](f,o[A+160>>2]),o[e+72>>2]=r,r){if(n=0,i=o[A+152>>2],a=0|Zn[o[o[f>>2]+16>>2]](f,20,i),(0|i)<=0)A=o[A+160>>2];else for(A=o[A+160>>2],e=o[a+8>>2];r=(n<<5)+A|0,t[e+14>>1]=h[r+6>>1],t[e+16>>1]=h[r+8>>1],t[e+18>>1]=h[r+10>>1],t[e+8>>1]=h[r>>1],t[e+10>>1]=h[r+2>>1],t[e+12>>1]=h[r+4>>1],o[e>>2]=o[r+12>>2],o[e+4>>2]=o[r+16>>2],e=e+20|0,(0|i)!=(0|(n=n+1|0)););Zn[o[o[f>>2]+20>>2]](f,a,8900,1497453121,A)}return 8832},function(A,r){r|=0;var f,e=0,i=0,n=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0,B=0;if(w[20+(A|=0)>>2]=w[r+16>>2],w[A+24>>2]=w[r+20>>2],w[A+28>>2]=w[r+24>>2],w[A+32>>2]=w[r+28>>2],w[A+4>>2]=w[r>>2],w[A+8>>2]=w[r+4>>2],w[A+12>>2]=w[r+8>>2],w[A+16>>2]=w[r+12>>2],w[A+36>>2]=w[r+32>>2],w[A+40>>2]=w[r+36>>2],w[A+44>>2]=w[r+40>>2],w[A+48>>2]=w[r+44>>2],o[A+56>>2]=o[r+48>>2],a[A+60|0]=0!=o[r+52>>2],!((0|(c=o[A+88>>2]))>=(0|(k=o[r+56>>2])))){if((0|k)>o[A+92>>2]){if(k?(o[8488]=o[8488]+1,s=0|Zn[o[8290]](k<<6,16),e=o[A+88>>2]):e=c,!((0|e)<=0)){if(1!=(0|e))for(B=-2&e;b=(u=d<<6)+s|0,l=u+o[A+96>>2]|0,n=o[l+4>>2],o[b>>2]=o[l>>2],o[b+4>>2]=n,n=o[l+60>>2],o[b+56>>2]=o[l+56>>2],o[b+60>>2]=n,n=o[l+52>>2],o[b+48>>2]=o[l+48>>2],o[b+52>>2]=n,n=o[l+44>>2],o[b+40>>2]=o[l+40>>2],o[b+44>>2]=n,n=o[l+36>>2],o[b+32>>2]=o[l+32>>2],o[b+36>>2]=n,n=o[l+28>>2],o[b+24>>2]=o[l+24>>2],o[b+28>>2]=n,n=o[l+20>>2],o[b+16>>2]=o[l+16>>2],o[b+20>>2]=n,n=o[l+12>>2],o[b+8>>2]=o[l+8>>2],o[b+12>>2]=n,b=(n=64|u)+s|0,u=n+o[A+96>>2]|0,n=o[u+4>>2],o[b>>2]=o[u>>2],o[b+4>>2]=n,n=o[u+12>>2],o[b+8>>2]=o[u+8>>2],o[b+12>>2]=n,n=o[u+20>>2],o[b+16>>2]=o[u+16>>2],o[b+20>>2]=n,n=o[u+28>>2],o[b+24>>2]=o[u+24>>2],o[b+28>>2]=n,n=o[u+36>>2],o[b+32>>2]=o[u+32>>2],o[b+36>>2]=n,n=o[u+44>>2],o[b+40>>2]=o[u+40>>2],o[b+44>>2]=n,n=o[u+52>>2],o[b+48>>2]=o[u+48>>2],o[b+52>>2]=n,n=o[u+60>>2],o[b+56>>2]=o[u+56>>2],o[b+60>>2]=n,d=d+2|0,(0|B)!=(0|(i=i+2|0)););1&e&&(i=(e=d<<6)+s|0,n=e+o[A+96>>2]|0,e=o[n+4>>2],o[i>>2]=o[n>>2],o[i+4>>2]=e,e=o[n+60>>2],o[i+56>>2]=o[n+56>>2],o[i+60>>2]=e,e=o[n+52>>2],o[i+48>>2]=o[n+48>>2],o[i+52>>2]=e,e=o[n+44>>2],o[i+40>>2]=o[n+40>>2],o[i+44>>2]=e,e=o[n+36>>2],o[i+32>>2]=o[n+32>>2],o[i+36>>2]=e,e=o[n+28>>2],o[i+24>>2]=o[n+24>>2],o[i+28>>2]=e,e=o[n+20>>2],o[i+16>>2]=o[n+16>>2],o[i+20>>2]=e,e=o[n+12>>2],o[i+8>>2]=o[n+8>>2],o[i+12>>2]=e)}!(e=o[A+96>>2])||!e|!v[A+100|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+96>>2]=s,a[A+100|0]=1,o[A+92>>2]=k}if(i=k+~c|0,e=k-c&3)for(s=0;n=o[A+96>>2]+(c<<6)|0,o[n>>2]=0,o[n+4>>2]=0,o[n+56>>2]=0,o[n+60>>2]=0,o[n+48>>2]=0,o[n+52>>2]=0,o[n+40>>2]=0,o[n+44>>2]=0,o[n+32>>2]=0,o[n+36>>2]=0,o[n+24>>2]=0,o[n+28>>2]=0,o[n+16>>2]=0,o[n+20>>2]=0,o[n+8>>2]=0,o[n+12>>2]=0,c=c+1|0,(0|e)!=(0|(s=s+1|0)););if(!(i>>>0<3))for(;e=(i=c<<6)+o[A+96>>2]|0,o[e>>2]=0,o[e+4>>2]=0,o[e+56>>2]=0,o[e+60>>2]=0,o[e+48>>2]=0,o[e+52>>2]=0,o[e+40>>2]=0,o[e+44>>2]=0,o[e+32>>2]=0,o[e+36>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,e=i+o[A+96>>2]|0,o[e+120>>2]=0,o[e+124>>2]=0,o[e+112>>2]=0,o[e+116>>2]=0,o[e+104>>2]=0,o[e+108>>2]=0,o[e+96>>2]=0,o[e+100>>2]=0,o[e+88>>2]=0,o[e+92>>2]=0,o[e+80>>2]=0,o[e+84>>2]=0,o[e+72>>2]=0,o[e+76>>2]=0,o[(e=e- -64|0)>>2]=0,o[e+4>>2]=0,e=i+o[A+96>>2]|0,o[e+184>>2]=0,o[e+188>>2]=0,o[e+176>>2]=0,o[e+180>>2]=0,o[e+168>>2]=0,o[e+172>>2]=0,o[e+160>>2]=0,o[e+164>>2]=0,o[e+152>>2]=0,o[e+156>>2]=0,o[e+144>>2]=0,o[e+148>>2]=0,o[e+136>>2]=0,o[e+140>>2]=0,o[e+128>>2]=0,o[e+132>>2]=0,e=i+o[A+96>>2]|0,o[e+248>>2]=0,o[e+252>>2]=0,o[e+240>>2]=0,o[e+244>>2]=0,o[e+232>>2]=0,o[e+236>>2]=0,o[e+224>>2]=0,o[e+228>>2]=0,o[e+216>>2]=0,o[e+220>>2]=0,o[e+208>>2]=0,o[e+212>>2]=0,o[e+200>>2]=0,o[e+204>>2]=0,o[e+192>>2]=0,o[e+196>>2]=0,(0|k)!=(0|(c=c+4|0)););}if(o[A+88>>2]=k,(0|k)>0)for(e=o[A+96>>2],i=o[r+64>>2],s=0;w[16+(c=e+(s<<6)|0)>>2]=w[i+16>>2],w[c+20>>2]=w[i+20>>2],w[c+24>>2]=w[i+24>>2],w[c+28>>2]=w[i+28>>2],w[c>>2]=w[i>>2],w[c+4>>2]=w[i+4>>2],w[c+8>>2]=w[i+8>>2],w[c+12>>2]=w[i+12>>2],o[c+32>>2]=o[i+32>>2],o[c+36>>2]=o[i+36>>2],o[c+40>>2]=o[i+40>>2],i=i+48|0,(0|k)!=(0|(s=s+1|0)););if(!((0|(i=o[A+128>>2]))>=(0|(f=o[r+60>>2])))){if((0|f)>o[A+132>>2]){if(f?(o[8488]=o[8488]+1,d=0|Zn[o[8290]](f<<4,16),e=o[A+128>>2]):(d=0,e=i),!((0|e)<=0)){if(c=0,1!=(0|e))for(B=-2&e,l=0;b=(u=c<<4)+d|0,k=u+o[A+136>>2]|0,n=o[k+4>>2],o[b>>2]=o[k>>2],o[b+4>>2]=n,n=o[k+12>>2],o[b+8>>2]=o[k+8>>2],o[b+12>>2]=n,b=(n=16|u)+d|0,u=n+o[A+136>>2]|0,n=o[u+4>>2],o[b>>2]=o[u>>2],o[b+4>>2]=n,n=o[u+12>>2],o[b+8>>2]=o[u+8>>2],o[b+12>>2]=n,c=c+2|0,(0|B)!=(0|(l=l+2|0)););1&e&&(c=(e=c<<4)+d|0,n=e+o[A+136>>2]|0,e=o[n+4>>2],o[c>>2]=o[n>>2],o[c+4>>2]=e,e=o[n+12>>2],o[c+8>>2]=o[n+8>>2],o[c+12>>2]=e)}!(e=o[A+136>>2])||!e|!v[A+140|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+136>>2]=d,a[A+140|0]=1,o[A+132>>2]=f}if(n=f+~i|0,e=f-i&3)for(c=0;b=o[A+136>>2]+(i<<4)|0,o[b>>2]=0,o[b+4>>2]=0,o[b+8>>2]=0,o[b+12>>2]=0,i=i+1|0,(0|e)!=(0|(c=c+1|0)););if(!(n>>>0<3))for(;e=(c=i<<4)+o[A+136>>2]|0,o[e>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,e=c+o[A+136>>2]|0,o[e+24>>2]=0,o[e+28>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,e=c+o[A+136>>2]|0,o[e+40>>2]=0,o[e+44>>2]=0,o[e+32>>2]=0,o[e+36>>2]=0,e=c+o[A+136>>2]|0,o[e+56>>2]=0,o[e+60>>2]=0,o[e+48>>2]=0,o[e+52>>2]=0,(0|f)!=(0|(i=i+4|0)););}if(o[A+128>>2]=f,(0|f)>0)for(e=o[A+136>>2],i=o[r+68>>2],s=0;o[12+(c=e+(s<<4)|0)>>2]=o[i+12>>2],t[c+6>>1]=h[i+6>>1],t[c+8>>1]=h[i+8>>1],t[c+10>>1]=h[i+10>>1],t[c>>1]=h[i>>1],t[c+2>>1]=h[i+2>>1],t[c+4>>1]=h[i+4>>1],i=i+16|0,(0|f)!=(0|(s=s+1|0)););if(o[A+144>>2]=o[r+76>>2],!((0|(i=o[A+152>>2]))>=(0|(u=o[r+80>>2]))|(0|u)<=o[A+156>>2])){if(u?(o[8488]=o[8488]+1,l=0|Zn[o[8290]](u<<5,16),i=o[A+152>>2]):l=0,!((0|i)<=0)){if(d=0,1!=(0|i))for(n=-2&i,s=0;c=(b=d<<5)+l|0,B=b+o[A+160>>2]|0,e=o[B+4>>2],o[c>>2]=o[B>>2],o[c+4>>2]=e,e=o[B+28>>2],o[c+24>>2]=o[B+24>>2],o[c+28>>2]=e,e=o[B+20>>2],o[c+16>>2]=o[B+16>>2],o[c+20>>2]=e,e=o[B+12>>2],o[c+8>>2]=o[B+8>>2],o[c+12>>2]=e,c=(e=32|b)+l|0,b=e+o[A+160>>2]|0,e=o[b+4>>2],o[c>>2]=o[b>>2],o[c+4>>2]=e,e=o[b+12>>2],o[c+8>>2]=o[b+8>>2],o[c+12>>2]=e,e=o[b+20>>2],o[c+16>>2]=o[b+16>>2],o[c+20>>2]=e,e=o[b+28>>2],o[c+24>>2]=o[b+24>>2],o[c+28>>2]=e,d=d+2|0,(0|n)!=(0|(s=s+2|0)););1&i&&(c=(e=d<<5)+l|0,i=e+o[A+160>>2]|0,e=o[i+4>>2],o[c>>2]=o[i>>2],o[c+4>>2]=e,e=o[i+28>>2],o[c+24>>2]=o[i+24>>2],o[c+28>>2]=e,e=o[i+20>>2],o[c+16>>2]=o[i+16>>2],o[c+20>>2]=e,e=o[i+12>>2],o[c+8>>2]=o[i+8>>2],o[c+12>>2]=e)}!(e=o[A+160>>2])||!e|!v[A+164|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+160>>2]=l,a[A+164|0]=1,o[A+156>>2]=u}if(o[A+152>>2]=u,(0|u)>0)for(e=o[A+160>>2],i=o[r+72>>2],A=0;t[6+(r=e+(A<<5)|0)>>1]=h[i+14>>1],t[r+8>>1]=h[i+16>>1],t[r+10>>1]=h[i+18>>1],t[r>>1]=h[i+8>>1],t[r+2>>1]=h[i+10>>1],t[r+4>>1]=h[i+12>>1],o[r+12>>2]=o[i>>2],o[r+16>>2]=o[i+4>>2],i=i+20|0,(0|u)!=(0|(A=A+1|0)););},function(A,r){r|=0;var f,e=0,i=0,n=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0,B=0;if(w[20+(A|=0)>>2]=Z[r+32>>3],w[A+24>>2]=Z[r+40>>3],w[A+28>>2]=Z[r+48>>3],w[A+32>>2]=Z[r+56>>3],w[A+4>>2]=Z[r>>3],w[A+8>>2]=Z[r+8>>3],w[A+12>>2]=Z[r+16>>3],w[A+16>>2]=Z[r+24>>3],w[A+36>>2]=Z[r+64>>3],w[A+40>>2]=Z[r+72>>3],w[A+44>>2]=Z[r+80>>3],w[A+48>>2]=Z[r+88>>3],o[A+56>>2]=o[r+96>>2],a[A+60|0]=0!=o[r+100>>2],!((0|(c=o[A+88>>2]))>=(0|(k=o[r+104>>2])))){if((0|k)>o[A+92>>2]){if(k?(o[8488]=o[8488]+1,s=0|Zn[o[8290]](k<<6,16),e=o[A+88>>2]):e=c,!((0|e)<=0)){if(1!=(0|e))for(B=-2&e;b=(u=d<<6)+s|0,l=u+o[A+96>>2]|0,n=o[l+4>>2],o[b>>2]=o[l>>2],o[b+4>>2]=n,n=o[l+60>>2],o[b+56>>2]=o[l+56>>2],o[b+60>>2]=n,n=o[l+52>>2],o[b+48>>2]=o[l+48>>2],o[b+52>>2]=n,n=o[l+44>>2],o[b+40>>2]=o[l+40>>2],o[b+44>>2]=n,n=o[l+36>>2],o[b+32>>2]=o[l+32>>2],o[b+36>>2]=n,n=o[l+28>>2],o[b+24>>2]=o[l+24>>2],o[b+28>>2]=n,n=o[l+20>>2],o[b+16>>2]=o[l+16>>2],o[b+20>>2]=n,n=o[l+12>>2],o[b+8>>2]=o[l+8>>2],o[b+12>>2]=n,b=(n=64|u)+s|0,u=n+o[A+96>>2]|0,n=o[u+4>>2],o[b>>2]=o[u>>2],o[b+4>>2]=n,n=o[u+12>>2],o[b+8>>2]=o[u+8>>2],o[b+12>>2]=n,n=o[u+20>>2],o[b+16>>2]=o[u+16>>2],o[b+20>>2]=n,n=o[u+28>>2],o[b+24>>2]=o[u+24>>2],o[b+28>>2]=n,n=o[u+36>>2],o[b+32>>2]=o[u+32>>2],o[b+36>>2]=n,n=o[u+44>>2],o[b+40>>2]=o[u+40>>2],o[b+44>>2]=n,n=o[u+52>>2],o[b+48>>2]=o[u+48>>2],o[b+52>>2]=n,n=o[u+60>>2],o[b+56>>2]=o[u+56>>2],o[b+60>>2]=n,d=d+2|0,(0|B)!=(0|(i=i+2|0)););1&e&&(i=(e=d<<6)+s|0,n=e+o[A+96>>2]|0,e=o[n+4>>2],o[i>>2]=o[n>>2],o[i+4>>2]=e,e=o[n+60>>2],o[i+56>>2]=o[n+56>>2],o[i+60>>2]=e,e=o[n+52>>2],o[i+48>>2]=o[n+48>>2],o[i+52>>2]=e,e=o[n+44>>2],o[i+40>>2]=o[n+40>>2],o[i+44>>2]=e,e=o[n+36>>2],o[i+32>>2]=o[n+32>>2],o[i+36>>2]=e,e=o[n+28>>2],o[i+24>>2]=o[n+24>>2],o[i+28>>2]=e,e=o[n+20>>2],o[i+16>>2]=o[n+16>>2],o[i+20>>2]=e,e=o[n+12>>2],o[i+8>>2]=o[n+8>>2],o[i+12>>2]=e)}!(e=o[A+96>>2])||!e|!v[A+100|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+96>>2]=s,a[A+100|0]=1,o[A+92>>2]=k}if(i=k+~c|0,e=k-c&3)for(s=0;n=o[A+96>>2]+(c<<6)|0,o[n>>2]=0,o[n+4>>2]=0,o[n+56>>2]=0,o[n+60>>2]=0,o[n+48>>2]=0,o[n+52>>2]=0,o[n+40>>2]=0,o[n+44>>2]=0,o[n+32>>2]=0,o[n+36>>2]=0,o[n+24>>2]=0,o[n+28>>2]=0,o[n+16>>2]=0,o[n+20>>2]=0,o[n+8>>2]=0,o[n+12>>2]=0,c=c+1|0,(0|e)!=(0|(s=s+1|0)););if(!(i>>>0<3))for(;e=(i=c<<6)+o[A+96>>2]|0,o[e>>2]=0,o[e+4>>2]=0,o[e+56>>2]=0,o[e+60>>2]=0,o[e+48>>2]=0,o[e+52>>2]=0,o[e+40>>2]=0,o[e+44>>2]=0,o[e+32>>2]=0,o[e+36>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,e=i+o[A+96>>2]|0,o[e+120>>2]=0,o[e+124>>2]=0,o[e+112>>2]=0,o[e+116>>2]=0,o[e+104>>2]=0,o[e+108>>2]=0,o[e+96>>2]=0,o[e+100>>2]=0,o[e+88>>2]=0,o[e+92>>2]=0,o[e+80>>2]=0,o[e+84>>2]=0,o[e+72>>2]=0,o[e+76>>2]=0,o[(e=e- -64|0)>>2]=0,o[e+4>>2]=0,e=i+o[A+96>>2]|0,o[e+184>>2]=0,o[e+188>>2]=0,o[e+176>>2]=0,o[e+180>>2]=0,o[e+168>>2]=0,o[e+172>>2]=0,o[e+160>>2]=0,o[e+164>>2]=0,o[e+152>>2]=0,o[e+156>>2]=0,o[e+144>>2]=0,o[e+148>>2]=0,o[e+136>>2]=0,o[e+140>>2]=0,o[e+128>>2]=0,o[e+132>>2]=0,e=i+o[A+96>>2]|0,o[e+248>>2]=0,o[e+252>>2]=0,o[e+240>>2]=0,o[e+244>>2]=0,o[e+232>>2]=0,o[e+236>>2]=0,o[e+224>>2]=0,o[e+228>>2]=0,o[e+216>>2]=0,o[e+220>>2]=0,o[e+208>>2]=0,o[e+212>>2]=0,o[e+200>>2]=0,o[e+204>>2]=0,o[e+192>>2]=0,o[e+196>>2]=0,(0|k)!=(0|(c=c+4|0)););}if(o[A+88>>2]=k,(0|k)>0)for(e=o[A+96>>2],i=o[r+112>>2],s=0;w[16+(c=e+(s<<6)|0)>>2]=Z[i+32>>3],w[c+20>>2]=Z[i+40>>3],w[c+24>>2]=Z[i+48>>3],w[c+28>>2]=Z[i+56>>3],w[c>>2]=Z[i>>3],w[c+4>>2]=Z[i+8>>3],w[c+8>>2]=Z[i+16>>3],w[c+12>>2]=Z[i+24>>3],o[c+32>>2]=o[i+64>>2],o[c+36>>2]=o[i+68>>2],o[c+40>>2]=o[i+72>>2],i=i+80|0,(0|k)!=(0|(s=s+1|0)););if(!((0|(i=o[A+128>>2]))>=(0|(f=o[r+108>>2])))){if((0|f)>o[A+132>>2]){if(f?(o[8488]=o[8488]+1,d=0|Zn[o[8290]](f<<4,16),e=o[A+128>>2]):(d=0,e=i),!((0|e)<=0)){if(c=0,1!=(0|e))for(B=-2&e,l=0;b=(u=c<<4)+d|0,k=u+o[A+136>>2]|0,n=o[k+4>>2],o[b>>2]=o[k>>2],o[b+4>>2]=n,n=o[k+12>>2],o[b+8>>2]=o[k+8>>2],o[b+12>>2]=n,b=(n=16|u)+d|0,u=n+o[A+136>>2]|0,n=o[u+4>>2],o[b>>2]=o[u>>2],o[b+4>>2]=n,n=o[u+12>>2],o[b+8>>2]=o[u+8>>2],o[b+12>>2]=n,c=c+2|0,(0|B)!=(0|(l=l+2|0)););1&e&&(c=(e=c<<4)+d|0,n=e+o[A+136>>2]|0,e=o[n+4>>2],o[c>>2]=o[n>>2],o[c+4>>2]=e,e=o[n+12>>2],o[c+8>>2]=o[n+8>>2],o[c+12>>2]=e)}!(e=o[A+136>>2])||!e|!v[A+140|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+136>>2]=d,a[A+140|0]=1,o[A+132>>2]=f}if(n=f+~i|0,e=f-i&3)for(c=0;b=o[A+136>>2]+(i<<4)|0,o[b>>2]=0,o[b+4>>2]=0,o[b+8>>2]=0,o[b+12>>2]=0,i=i+1|0,(0|e)!=(0|(c=c+1|0)););if(!(n>>>0<3))for(;e=(c=i<<4)+o[A+136>>2]|0,o[e>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,e=c+o[A+136>>2]|0,o[e+24>>2]=0,o[e+28>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,e=c+o[A+136>>2]|0,o[e+40>>2]=0,o[e+44>>2]=0,o[e+32>>2]=0,o[e+36>>2]=0,e=c+o[A+136>>2]|0,o[e+56>>2]=0,o[e+60>>2]=0,o[e+48>>2]=0,o[e+52>>2]=0,(0|f)!=(0|(i=i+4|0)););}if(o[A+128>>2]=f,(0|f)>0)for(e=o[A+136>>2],i=o[r+116>>2],s=0;o[12+(c=e+(s<<4)|0)>>2]=o[i+12>>2],t[c+6>>1]=h[i+6>>1],t[c+8>>1]=h[i+8>>1],t[c+10>>1]=h[i+10>>1],t[c>>1]=h[i>>1],t[c+2>>1]=h[i+2>>1],t[c+4>>1]=h[i+4>>1],i=i+16|0,(0|f)!=(0|(s=s+1|0)););if(o[A+144>>2]=o[r+120>>2],!((0|(i=o[A+152>>2]))>=(0|(u=o[r+124>>2]))|(0|u)<=o[A+156>>2])){if(u?(o[8488]=o[8488]+1,l=0|Zn[o[8290]](u<<5,16),i=o[A+152>>2]):l=0,!((0|i)<=0)){if(d=0,1!=(0|i))for(n=-2&i,s=0;c=(b=d<<5)+l|0,B=b+o[A+160>>2]|0,e=o[B+4>>2],o[c>>2]=o[B>>2],o[c+4>>2]=e,e=o[B+28>>2],o[c+24>>2]=o[B+24>>2],o[c+28>>2]=e,e=o[B+20>>2],o[c+16>>2]=o[B+16>>2],o[c+20>>2]=e,e=o[B+12>>2],o[c+8>>2]=o[B+8>>2],o[c+12>>2]=e,c=(e=32|b)+l|0,b=e+o[A+160>>2]|0,e=o[b+4>>2],o[c>>2]=o[b>>2],o[c+4>>2]=e,e=o[b+12>>2],o[c+8>>2]=o[b+8>>2],o[c+12>>2]=e,e=o[b+20>>2],o[c+16>>2]=o[b+16>>2],o[c+20>>2]=e,e=o[b+28>>2],o[c+24>>2]=o[b+24>>2],o[c+28>>2]=e,d=d+2|0,(0|n)!=(0|(s=s+2|0)););1&i&&(c=(e=d<<5)+l|0,i=e+o[A+160>>2]|0,e=o[i+4>>2],o[c>>2]=o[i>>2],o[c+4>>2]=e,e=o[i+28>>2],o[c+24>>2]=o[i+24>>2],o[c+28>>2]=e,e=o[i+20>>2],o[c+16>>2]=o[i+16>>2],o[c+20>>2]=e,e=o[i+12>>2],o[c+8>>2]=o[i+8>>2],o[c+12>>2]=e)}!(e=o[A+160>>2])||!e|!v[A+164|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+160>>2]=l,a[A+164|0]=1,o[A+156>>2]=u}if(o[A+152>>2]=u,(0|u)>0)for(e=o[A+160>>2],i=o[r+128>>2],A=0;t[6+(r=e+(A<<5)|0)>>1]=h[i+14>>1],t[r+8>>1]=h[i+16>>1],t[r+10>>1]=h[i+18>>1],t[r>>1]=h[i+8>>1],t[r+2>>1]=h[i+10>>1],t[r+4>>1]=h[i+12>>1],o[r+12>>2]=o[i>>2],o[r+16>>2]=o[i+4>>2],i=i+20|0,(0|u)!=(0|(A=A+1|0)););},me,function(A){me(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0);t=w[A+32>>2],n=w[A+48>>2],E=w[A+28>>2],W=w[A+44>>2],N=w[A+24>>2],p=w[A+40>>2],F=m(Zn[o[o[A>>2]+48>>2]](A)),R=m(Zn[o[o[A>>2]+48>>2]](A)),Y=m(Zn[o[o[A>>2]+48>>2]](A)),V=w[r+52>>2],c=w[r+24>>2],b=w[r+20>>2],u=w[r+56>>2],l=w[A+28>>2],d=w[A+44>>2],s=w[A+32>>2],g=w[A+48>>2],i=w[r+40>>2],k=w[r+36>>2],X=w[r+48>>2],h=w[r+8>>2],B=w[r>>2],Z=w[r+4>>2],G=w[r+16>>2],D=w[A+24>>2],C=w[A+40>>2],a=w[r+32>>2],o[f+12>>2]=0,v=u,u=m(m(g+s)*m(.5)),s=m(m(C+D)*m(.5)),l=m(m(d+l)*m(.5)),d=m(v+m(m(i*u)+m(m(a*s)+m(k*l)))),t=m(Y+m(m(n-t)*m(.5))),v=m(t*m(Q(i))),i=m(F+m(m(p-N)*m(.5))),n=m(i*m(Q(a))),a=m(R+m(m(W-E)*m(.5))),k=m(v+m(n+m(a*m(Q(k))))),w[f+8>>2]=d-k,n=m(V+m(m(u*c)+m(m(s*G)+m(l*b)))),c=m(m(t*m(Q(c)))+m(m(i*m(Q(G)))+m(a*m(Q(b))))),w[f+4>>2]=n-c,b=m(X+m(m(u*h)+m(m(s*B)+m(l*Z)))),i=m(m(t*m(Q(h)))+m(m(i*m(Q(B)))+m(a*m(Q(Z))))),w[f>>2]=b-i,o[e+12>>2]=0,w[e+8>>2]=k+d,w[e+4>>2]=c+n,w[e>>2]=i+b},function(A,r){A|=0,r|=0;var f,e=m(0),i=m(0),n=m(0);f=0|Zn[o[o[A>>2]+28>>2]](A),e=m(w[f+8>>2]-w[r+8>>2]),i=m(e*e),e=m(w[f>>2]-w[r>>2]),n=m(e*e),e=m(w[f+4>>2]-w[r+4>>2]),m(i+m(n+m(e*e)))>m(1.1920928955078125e-7)&&(Nr(A,r),v[A+69|0]&&(r=o[A+60>>2],Zn[o[o[r>>2]>>2]](r),(r=o[A+60>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](r))),o[8488]=o[8488]+1,r=Gi(0|Zn[o[8290]](172,16)),o[A+60>>2]=r,lA(r,o[A+56>>2],v[A+68|0],A+24|0,A+40|0),a[A+69|0]=1)},function(A){return o[56+(A|=0)>>2]+4|0},Pe,function(){return 9299},function(A,r){A|=0,r=m(r),w[A+20>>2]=r},function(A){return m(w[20+(A|=0)>>2])},an,function(A,r,f){var e=0,i=0,n=0,a=0,t=0,c=0,b=0,u=0;te(A|=0,r|=0,f|=0),e=o[A+56>>2],Zn[o[o[e>>2]+56>>2]](e,r+12|0,f),w[r+52>>2]=w[A+20>>2];A:if(!o[A+60>>2]||1&Zn[o[o[f>>2]+52>>2]](f))o[r+40>>2]=0,o[r+44>>2]=0;else{if(e=0|Zn[o[o[f>>2]+24>>2]](f,o[A+60>>2])){o[r+44>>2]=0,o[r+40>>2]=e;break A}e=0|Zn[o[o[f>>2]+28>>2]](f,o[A+60>>2]),o[r+44>>2]=0,o[r+40>>2]=e,e=o[A+60>>2],a=f,t=0|Zn[o[o[e>>2]+12>>2]](e),c=1,n=o[o[f>>2]+16>>2],e=0|Zn[n](0|a,0|t,0|c),i=o[A+60>>2],c=f,t=e,a=0|Zn[o[o[i>>2]+16>>2]](i,o[e+8>>2],f),b=1213612625,u=o[A+60>>2],n=o[o[f>>2]+20>>2],Zn[n](0|c,0|t,0|a,0|b,0|u)}A:if(!o[A+64>>2]||2&Zn[o[o[f>>2]+52>>2]](f))o[r+48>>2]=0;else{if(e=0|Zn[o[o[f>>2]+24>>2]](f,o[A+64>>2])){o[r+48>>2]=e;break A}n=r,u=0|Zn[o[o[f>>2]+28>>2]](f,o[A+64>>2]),o[n+48>>2]=u,e=o[A+64>>2],u=f,b=0|Zn[o[o[e>>2]+8>>2]](e),a=1,n=o[o[f>>2]+16>>2],e=0|Zn[n](0|u,0|b,0|a),i=o[A+64>>2],a=f,b=e,u=0|Zn[o[o[i>>2]+12>>2]](i,o[e+8>>2],f),t=1346456916,c=o[A+64>>2],n=o[o[f>>2]+20>>2],Zn[n](0|a,0|b,0|u,0|t,0|c)}return o[r+56>>2]=0,8988},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=0,a=0,c=0,b=0,u=m(0),l=0,s=m(0),k=m(0),d=m(0),B=m(0),Z=0,G=m(0),Q=0,E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=0,V=0,g=0;S=i=S+-64|0,c=o[A+56>>2],o[i+60>>2]=0,o[i+8>>2]=r,o[i+4>>2]=c,o[i>>2]=19096,S=c=S-16|0,a=o[A+60>>2];A:if(v[a+60|0]){p=w[a+40>>2],E=w[a+24>>2],u=w[a+8>>2],F=w[a+36>>2],W=w[a+20>>2],G=w[a+4>>2],d=w[f>>2],B=w[f+4>>2],N=w[a+28>>2],s=(k=w[a+12>>2])>(s=w[f+8>>2])?k:s,R=w[a+44>>2],l=65534&(A=(s=m(m((s>N?N:s)-k)*R))=m(0)?~~s>>>0:0),t[c+14>>1]=l,Q=65534&(A=(B=m(p*m(((B=u>B?u:B)>E?E:B)-u)))=m(0)?~~B>>>0:0),t[c+12>>1]=Q,Y=65534&(A=(d=m(m(((d=dW?W:d)-G)*F))=m(0)?~~d>>>0:0),t[c+10>>1]=Y,d=w[e>>2],B=w[e+4>>2],s=w[e+8>>2],e=1|(A=(k=m(m(R*m(((s=k>s?k:s)>N?N:s)-k))+m(1)))=m(0)?~~k>>>0:0),t[c+8>>1]=e,V=1|(A=(u=m(m(p*m(((k=u>B?u:B)>E?E:k)-u))+m(1)))=m(0)?~~u>>>0:0),t[c+6>>1]=V,g=1|(A=(u=m(m(F*m(((u=dW?W:u)-G))+m(1)))=m(0)?~~u>>>0:0),t[c+4>>1]=g;r:switch(o[a+144>>2]){case 0:if((0|(A=o[a+56>>2]))>0)for(n=o[a+136>>2];;){Z=Z+1|0;f:{e:{if((a=(0|(r=o[n+12>>2]))<0)|!(f=Y>>>0<=h[n+6>>1]&g>>>0>=h[n>>1]&h[n+10>>1]>=l>>>0&e>>>0>=h[n+4>>1]&Q>>>0<=h[n+8>>1]&V>>>0>=h[n+2>>1])){if(a&~f)break e}else Zn[o[o[i>>2]+8>>2]](i,r>>>21|0,2097151&r);n=n+16|0,b=b+1|0;break f}n=n-(r<<4)|0,b=b-r|0}if(!((0|A)>(0|b)))break}if(o[8502]>=(0|Z))break A;o[8502]=Z;break A;case 1:if(o[a+152>>2]>0)for(;;){if(A=o[a+160>>2]+(n<<5)|0,!(h[c+10>>1]>h[A+6>>1]|h[c+4>>1]>1]|h[c+8>>1]>1]|h[c+14>>1]>h[A+10>>1]||h[c+6>>1]>1]|h[c+12>>1]>h[A+8>>1])){if((0|(r=o[A+16>>2]))<=0)r=0;else for(e=r+(l=o[A+12>>2])|0,b=o[a+136>>2]+(l<<4)|0,r=0;;){f:{e:{if((Z=(0|(A=o[b+12>>2]))<0)|!(f=h[c+10>>1]<=h[b+6>>1]&h[c+4>>1]>=h[b>>1]&h[c+14>>1]<=h[b+10>>1]&h[c+8>>1]>=h[b+4>>1]&h[c+12>>1]<=h[b+8>>1]&h[c+6>>1]>=h[b+2>>1])){if(Z&~f)break e}else Zn[o[o[i>>2]+8>>2]](i,A>>>21|0,2097151&A);l=l+1|0,b=b+16|0;break f}l=l-A|0,b=b-(A<<4)|0}if(r=r+1|0,!((0|e)>(0|l)))break}o[8502]>=(0|r)||(o[8502]=r)}if(!((0|(n=n+1|0))>2]))break}break A;case 2:break r;default:break A}If(a,o[a+136>>2],i,c+10|0,c+4|0)}else{if((0|(Q=o[a+56>>2]))>0)for(n=o[a+96>>2];;){A=0,w[f>>2]>w[n+16>>2]||(A=0,w[e>>2]>2]||(A=1)),r=0,r=w[e+8>>2]>2]|w[f+8>>2]>w[n+24>>2]?r:A;r:{f:{if(w[e+4>>2]>2]|w[f+4>>2]>w[n+20>>2])A=-1==(0|(l=o[n+32>>2])),r=0;else if(r&(A=-1==(0|(l=o[n+32>>2])))){Zn[o[o[i>>2]+8>>2]](i,o[n+36>>2],o[n+40>>2]),Q=o[a+56>>2];break f}if(!(A|r)){n=(l<<6)+n|0,b=b+l|0;break r}}n=n- -64|0,b=b+1|0}if(Z=Z+1|0,!((0|b)<(0|Q)))break}o[8502]>=(0|Z)||(o[8502]=Z)}S=c+16|0,S=i- -64|0},function(A,r,f){A|=0,r|=0,f|=0;var e,i,n=m(0),a=m(0),t=m(0),c=m(0);S=e=S-144|0,o[e+72>>2]=0,o[e+76>>2]=0,o[(i=e- -64|0)>>2]=0,o[i+4>>2]=0,o[e+108>>2]=0,o[e+112>>2]=0,o[e+116>>2]=0,o[e+120>>2]=0,o[e+52>>2]=0,o[e+56>>2]=0,o[e+84>>2]=0,o[e+88>>2]=0,o[e+80>>2]=1065353216,o[e+92>>2]=0,o[e+96>>2]=0,o[e+100>>2]=1065353216,o[e+104>>2]=0,o[e+44>>2]=0,o[e+48>>2]=0,o[e+60>>2]=1065353216,o[e+124>>2]=-581039253,o[e+40>>2]=22520,n=w[f+8>>2],a=w[f>>2],t=w[f+4>>2],o[e+140>>2]=0,c=m(t*m(0)),w[e+136>>2]=n+m(m(a*w[e+68>>2])+c),n=m(n*m(0)),w[e+132>>2]=n+m(t+m(a*w[i>>2])),w[e+128>>2]=n+m(a+c),o[e+32>>2]=1566444395,o[e+36>>2]=0,o[e+24>>2]=1566444395,o[e+28>>2]=1566444395,o[e+16>>2]=-581039253,o[e+20>>2]=0,o[e+8>>2]=-581039253,o[e+12>>2]=-581039253,Zn[o[o[r>>2]+64>>2]](r,e+40|0,e+8|0,e+24|0),r=o[e+56>>2],o[A+8>>2]=o[e+52>>2],o[A+12>>2]=r,r=o[e+48>>2],o[A>>2]=o[e+44>>2],o[A+4>>2]=r,S=e+144|0},function(A,r,f){A|=0,f|=0,Zn[o[o[(r|=0)>>2]+68>>2]](A,r,f)},function(A,r){r|=0;var f=0,e=0,i=0,n=0,a=0,t=0,c=0,b=0;(f=o[60+(A|=0)>>2])&&(n=r,a=0|Zn[o[o[f>>2]+12>>2]](f),t=1,i=o[o[r>>2]+16>>2],f=0|Zn[i](0|n,0|a,0|t),e=o[A+60>>2],t=r,a=f,n=0|Zn[o[o[e>>2]+16>>2]](e,o[f+8>>2],r),c=1213612625,b=o[A+60>>2],i=o[o[r>>2]+20>>2],Zn[i](0|t,0|a,0|n,0|c,0|b))},function(A,r){r|=0;var f=0,e=0,i=0,n=0,a=0,t=0,c=0,b=0;(f=o[64+(A|=0)>>2])&&(n=r,a=0|Zn[o[o[f>>2]+8>>2]](f),t=1,i=o[o[r>>2]+16>>2],f=0|Zn[i](0|n,0|a,0|t),e=o[A+64>>2],t=r,a=f,n=0|Zn[o[o[e>>2]+12>>2]](e,o[f+8>>2],r),c=1346456916,b=o[A+64>>2],i=o[o[r>>2]+20>>2],Zn[i](0|t,0|a,0|n,0|c,0|b))},en,vn,PA,vn,PA,vn,function(A,r,f){A|=0,r|=0,f|=0;var e,i,n,a,t=0,c=0,b=m(0),u=m(0),l=m(0),s=0,k=0,d=0,B=0,Q=m(0),E=m(0),W=m(0);S=n=S-32|0,o[A+60>>2]=o[A+60>>2]+1,t=o[A+4>>2],Zn[o[o[t>>2]+16>>2]](t,n+28|0,n+24|0,n+20|0,n+16|0,n+12|0,n+8|0,n+4|0,n,r),e=o[A+4>>2],i=o[n+12>>2]+G(o[n+8>>2],f)|0,a=o[n+16>>2],t=o[n+28>>2],c=o[n>>2];A:if(o[n+20>>2]){switch(s=e+12|0,c-2|0){case 0:c=G(o[i+8>>2],a)+t|0,k=Z[c>>3],d=Z[c+8>>3],B=Z[c+16>>3],b=w[e+4>>2],u=w[e+8>>2],l=w[e+12>>2],o[A+56>>2]=0,w[A+52>>2]=l*m(B),w[A+48>>2]=u*m(d),w[A+44>>2]=b*m(k),c=G(o[i+4>>2],a)+t|0,k=Z[c>>3],d=Z[c+8>>3],B=Z[c+16>>3],b=w[e+4>>2],u=w[e+8>>2],l=w[e+12>>2],o[A+40>>2]=0,w[A+36>>2]=l*m(B),w[A+32>>2]=u*m(d),w[A+28>>2]=b*m(k),t=G(o[i>>2],a)+t|0,b=m(w[e+8>>2]*m(Z[t+8>>3])),l=m(w[e+4>>2]*m(Z[t>>3])),u=m(Z[t+16>>3]);break A;case 1:c=G(h[i+4>>1],a)+t|0,k=Z[c>>3],d=Z[c+8>>3],B=Z[c+16>>3],b=w[e+4>>2],u=w[e+8>>2],l=w[e+12>>2],o[A+56>>2]=0,w[A+52>>2]=l*m(B),w[A+48>>2]=u*m(d),w[A+44>>2]=b*m(k),c=G(h[i+2>>1],a)+t|0,k=Z[c>>3],d=Z[c+8>>3],B=Z[c+16>>3],b=w[e+4>>2],u=w[e+8>>2],l=w[e+12>>2],o[A+40>>2]=0,w[A+36>>2]=l*m(B),w[A+32>>2]=u*m(d),w[A+28>>2]=b*m(k),t=G(h[i>>1],a)+t|0,b=m(w[e+8>>2]*m(Z[t+8>>3])),l=m(w[e+4>>2]*m(Z[t>>3])),u=m(Z[t+16>>3]);break A}c=G(v[i+2|0],a)+t|0,k=Z[c>>3],d=Z[c+8>>3],B=Z[c+16>>3],b=w[e+4>>2],u=w[e+8>>2],l=w[e+12>>2],o[A+56>>2]=0,w[A+52>>2]=l*m(B),w[A+48>>2]=u*m(d),w[A+44>>2]=b*m(k),c=G(v[i+1|0],a)+t|0,k=Z[c>>3],d=Z[c+8>>3],B=Z[c+16>>3],b=w[e+4>>2],u=w[e+8>>2],l=w[e+12>>2],o[A+40>>2]=0,w[A+36>>2]=l*m(B),w[A+32>>2]=u*m(d),w[A+28>>2]=b*m(k),t=G(v[0|i],a)+t|0,b=m(w[e+8>>2]*m(Z[t+8>>3])),l=m(w[e+4>>2]*m(Z[t>>3])),u=m(Z[t+16>>3])}else{r:{switch(c-2|0){case 0:s=o[i+8>>2];break r;case 1:s=h[i+4>>1];break r}s=v[i+2|0]}s=G(s,a)+t|0,b=w[s>>2],u=w[s+4>>2],l=w[s+8>>2],Q=w[e+4>>2],E=w[e+8>>2],W=w[e+12>>2],o[A+56>>2]=0,w[A+52>>2]=l*W,w[A+48>>2]=u*E,w[A+44>>2]=b*Q;r:{switch(c-2|0){case 0:s=o[i+4>>2];break r;case 1:s=h[i+2>>1];break r}s=v[i+1|0]}s=G(s,a)+t|0,b=w[s>>2],u=w[s+4>>2],l=w[s+8>>2],Q=w[e+4>>2],E=w[e+8>>2],W=w[e+12>>2],o[A+40>>2]=0,w[A+36>>2]=l*W,w[A+32>>2]=u*E,w[A+28>>2]=b*Q;r:{switch(c-2|0){case 0:c=o[i>>2];break r;case 1:c=h[i>>1];break r}c=v[0|i]}s=8+(t=G(c,a)+t|0)|0,b=m(w[t+4>>2]*w[e+8>>2]),l=m(w[t>>2]*w[e+4>>2]),u=w[e+12>>2]}Q=w[s>>2],o[A+24>>2]=0,w[A+16>>2]=b,w[A+12>>2]=l,w[A+20>>2]=Q*u,t=o[A+8>>2],Zn[o[o[t>>2]+8>>2]](t,A+12|0,r,f),A=o[A+4>>2],Zn[o[o[A>>2]+24>>2]](A,r),S=n+32|0},en,ai,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n,a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),E=m(0);i=S-16|0,n=A+36|0,A=o[A+60>>2],a=w[n+((A+2|0)%3<<2)>>2],w[i+8>>2]=a,w[i+4>>2]=a,w[i>>2]=a,w[(A<<=2)+i>>2]=a+w[A+n>>2],l=w[r+52>>2],t=w[r+24>>2],d=w[r+20>>2],s=w[r+56>>2],c=w[r+40>>2],v=w[r+36>>2],k=w[r+48>>2],h=w[r+8>>2],B=w[r>>2],Z=w[r+4>>2],G=w[r+16>>2],E=w[r+32>>2],a=w[i+8>>2],b=w[i>>2],u=w[i+4>>2],o[f+12>>2]=0,c=m(m(a*m(Q(c)))+m(m(b*m(Q(E)))+m(u*m(Q(v))))),w[f+8>>2]=s-c,t=m(m(a*m(Q(t)))+m(m(b*m(Q(G)))+m(u*m(Q(d))))),w[f+4>>2]=l-t,a=m(m(a*m(Q(h)))+m(m(b*m(Q(B)))+m(u*m(Q(Z))))),w[f>>2]=k-a,o[e+12>>2]=0,w[e+8>>2]=s+c,w[e+4>>2]=l+t,w[e>>2]=k+a},function(A,r){A|=0,r|=0;var f=m(0),e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0);f=w[A+24>>2],e=w[A+40>>2],i=w[A+28>>2],n=w[A+44>>2],a=w[A+20>>2],t=w[A+36>>2],We(A,r),c=w[r>>2],b=w[r+4>>2],u=w[r+8>>2],o[A+48>>2]=0,w[A+44>>2]=u*m(n/i),w[A+40>>2]=b*m(e/f),w[A+36>>2]=c*m(t/a),w[A+52>>2]=w[(A+36|0)+((o[A+60>>2]+2|0)%3<<2)>>2]},function(A,r,f){A|=0,r=m(r),f|=0;var e,i,n=m(0),a=m(0),t=m(0),c=0;e=A+36|0,c=o[A+60>>2],n=w[e+((c+2|0)%3<<2)>>2],o[12+(A=S-16|0)>>2]=0,w[A+8>>2]=n,w[A+4>>2]=n,w[A>>2]=n,w[(i=(c<<=2)+A|0)>>2]=w[c+e>>2]+w[i>>2],n=w[A+8>>2],r=m(r*m(.0833333283662796)),a=w[A>>2],a=m(a+a),a=m(a*a),t=w[A+4>>2],t=m(t+t),t=m(t*t),w[f+8>>2]=r*m(a+t),n=m(n+n),n=m(n*n),w[f+4>>2]=r*m(a+n),w[f>>2]=r*m(t+n)},function(){return 7481},Te,bn,an,function(A,r,f){A|=0,r|=0,f|=0;var e=m(0);return te(A,r,f),w[r+28>>2]=w[A+36>>2],w[r+32>>2]=w[A+40>>2],w[r+36>>2]=w[A+44>>2],w[r+40>>2]=w[A+48>>2],w[r+12>>2]=w[A+20>>2],w[r+16>>2]=w[A+24>>2],w[r+20>>2]=w[A+28>>2],w[r+24>>2]=w[A+32>>2],e=w[A+52>>2],o[r+48>>2]=0,w[r+44>>2]=e,A=o[A+60>>2],o[r+56>>2]=0,o[r+52>>2]=A,9081},function(A,r,f){A|=0,r|=0,f|=0;var e,i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0);e=S-16|0,o[A>>2]=0,o[A+4>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,n=w[f+8>>2],a=w[f>>2],t=w[f+4>>2],(c=m(m(n*n)+m(m(a*a)+m(t*t))))>2]=0,o[e+12>>2]=0,o[e>>2]=0,o[e+4>>2]=0,i=(f=o[r+60>>2]<<2)+e|0,b=w[36+(r+f|0)>>2],w[i>>2]=b,a=m(-0xde0b6b000000000),u=w[e+8>>2],s=w[e>>2],k=w[e+4>>2],(t=m(m(l*u)+m(m(c*s)+m(n*k))))>m(-0xde0b6b000000000)&&(w[A+12>>2]=w[e+12>>2],w[A+8>>2]=u,w[A+4>>2]=k,w[A>>2]=s,a=t),o[e+8>>2]=0,o[e+12>>2]=0,o[e>>2]=0,o[e+4>>2]=0,w[i>>2]=-b,b=a,a=w[e+8>>2],t=w[e>>2],u=n,n=w[e+4>>2],b>2]=w[e+12>>2],w[A+8>>2]=a,w[A+4>>2]=n,w[A>>2]=t)},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=0,n=0,a=0,t=m(0),c=m(0),b=m(0),u=m(0),l=0,s=0,k=m(0),d=m(0),v=m(0),h=0,B=m(0),Z=m(0);if((0|e)>0)for(i=S-16|0,h=A+36|0;o[i+8>>2]=0,o[i+12>>2]=0,o[i>>2]=0,o[i+4>>2]=0,a=o[A+60>>2],t=w[(n=a<<2)+h>>2],w[i+n>>2]=t,c=m(-0xde0b6b000000000),k=w[8+(n=(s=l<<4)+r|0)>>2],u=w[i+8>>2],d=w[n>>2],B=w[i>>2],Z=w[i+4>>2],v=w[n+4>>2],(b=m(m(k*u)+m(m(d*B)+m(Z*v))))>m(-0xde0b6b000000000)&&(w[12+(a=f+s|0)>>2]=w[i+12>>2],w[a+8>>2]=u,w[a+4>>2]=Z,w[a>>2]=B,a=o[A+60>>2],t=w[(a<<2)+h>>2],k=w[n+8>>2],v=w[n+4>>2],d=w[n>>2],c=b),o[i+8>>2]=0,o[i+12>>2]=0,o[i>>2]=0,o[i+4>>2]=0,w[(a<<2)+i>>2]=-t,u=c,c=w[i+8>>2],b=w[i>>2],t=w[i+4>>2],u>2]=w[i+12>>2],w[n+8>>2]=c,w[n+4>>2]=t,w[n>>2]=b),(0|(l=l+1|0))!=(0|e););},cn,zi,function(A){_f(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},ai,Ke,function(A,r){A|=0,r|=0;var f=m(0),e=0,i=0,n=m(0);i=o[A+76>>2]<<2,f=w[i+r>>2],e=i,i=A+20|0,n=m(w[A+68>>2]*m(f/w[e+i>>2])),w[A+68>>2]=n,e=o[A+72>>2]<<2,f=m(w[e+r>>2]/w[i+e>>2]),e=o[A+80>>2]<<2,f=m(w[A+64>>2]*m(m(f+m(w[e+r>>2]/w[i+e>>2]))*m(.5))),w[A+64>>2]=f,w[A+60>>2]=f/m(N(m(m(f*f)+m(n*n)))),We(A,r)},function(A,r,f){A|=0,r=m(r),f|=0;var e,i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0);S=e=S-96|0,o[e+44>>2]=0,o[e+48>>2]=0,o[e+56>>2]=0,o[e+60>>2]=0,o[e+52>>2]=1065353216,o[(i=e- -64|0)>>2]=0,o[i+4>>2]=0,o[e+76>>2]=0,o[e+80>>2]=0,o[e+72>>2]=1065353216,o[e+84>>2]=0,o[e+88>>2]=0,o[e+92>>2]=0,o[e+36>>2]=0,o[e+40>>2]=0,o[e+32>>2]=1065353216,Zn[o[o[A>>2]+8>>2]](A,e+32|0,e+16|0,e),c=w[e+24>>2],b=w[e+8>>2],a=w[e+16>>2],t=w[e>>2],u=w[e+20>>2],l=w[e+4>>2],n=m(Zn[o[o[A>>2]+48>>2]](A)),o[f+12>>2]=0,r=m(r*m(.0833333283662796)),a=m(n+m(m(t-a)*m(.5))),a=m(a+a),a=m(a*a),t=m(n+m(m(l-u)*m(.5))),t=m(t+t),t=m(t*t),w[f+8>>2]=r*m(a+t),n=m(n+m(m(b-c)*m(.5))),n=m(n+n),n=m(n*n),w[f+4>>2]=r*m(a+n),w[f>>2]=r*m(t+n),S=e+96|0},function(){return 7581},function(A){o[8+(A|=0)>>2]=0,o[A+12>>2]=0,o[A>>2]=0,o[A+4>>2]=1065353216},an,function(A,r,f){A|=0,r|=0,f|=0;var e=m(0);return te(A,r,f),w[r+28>>2]=w[A+36>>2],w[r+32>>2]=w[A+40>>2],w[r+36>>2]=w[A+44>>2],w[r+40>>2]=w[A+48>>2],w[r+12>>2]=w[A+20>>2],w[r+16>>2]=w[A+24>>2],w[r+20>>2]=w[A+28>>2],w[r+24>>2]=w[A+32>>2],e=w[A+52>>2],o[r+48>>2]=0,w[r+44>>2]=e,A=o[A+76>>2],o[r+56>>2]=0,o[r+52>>2]=A,9042},function(A,r,f){A|=0,r|=0,f|=0;var e,i,n=m(0),a=m(0),t=m(0),c=0,b=m(0),u=m(0);a=m(w[r+68>>2]*m(.5)),e=o[r+72>>2],c=(i=o[r+76>>2])<<2,n=w[f+8>>2],u=m(n*n),n=w[f>>2],t=m(n*n),n=w[f+4>>2];A:{if(w[c+f>>2]>m(w[r+60>>2]*m(N(m(u+m(t+m(n*n)))))))o[(e<<2)+A>>2]=0,w[A+c>>2]=a,c=o[r+80>>2];else{if(n=w[(e<<2)+f>>2],c=o[r+80>>2],t=w[(c<<2)+f>>2],(b=m(N(m(m(n*n)+m(t*t)))))>m(1.1920928955078125e-7)){u=n,n=m(w[r+64>>2]/b),w[(e<<2)+A>>2]=u*n,w[(i<<2)+A>>2]=-a,a=m(t*n);break A}o[(e<<2)+A>>2]=0,w[(i<<2)+A>>2]=-a}a=m(0)}w[(c<<2)+A>>2]=a,m(Zn[o[o[r>>2]+48>>2]](r))!=m(0)&&(a=w[f+4>>2],n=w[f>>2],t=w[f+8>>2],b=m(Zn[o[o[r>>2]+48>>2]](r)),u=n=(r=m(m(t*t)+m(m(n*n)+m(a*a)))>2]=w[A>>2]+m(b*m(u*n)),w[A+4>>2]=w[A+4>>2]+m(b*m(a*n)),w[A+8>>2]=w[A+8>>2]+m(b*m(t*n)))},function(A,r,f){A|=0,r|=0,f|=0;var e,i,n=m(0),a=m(0),t=m(0),c=0,b=m(0),u=m(0);a=m(w[r+68>>2]*m(.5)),e=o[r+72>>2],c=(i=o[r+76>>2])<<2,n=w[f+8>>2],b=m(n*n),n=w[f>>2],t=m(n*n),n=w[f+4>>2];A:{if(w[c+f>>2]>m(w[r+60>>2]*m(N(m(b+m(t+m(n*n)))))))o[(e<<2)+A>>2]=0,w[A+c>>2]=a,f=o[r+80>>2];else{if(n=w[(e<<2)+f>>2],c=f,f=o[r+80>>2],t=w[c+(f<<2)>>2],(u=m(N(m(m(n*n)+m(t*t)))))>m(1.1920928955078125e-7)){b=n,n=m(w[r+64>>2]/u),w[(e<<2)+A>>2]=b*n,w[(i<<2)+A>>2]=-a,a=m(t*n);break A}o[(e<<2)+A>>2]=0,w[(i<<2)+A>>2]=-a}a=m(0)}w[(f<<2)+A>>2]=a},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=m(0),n=0,a=0,t=0,c=m(0),b=0,u=m(0),l=0,s=m(0),k=0,d=0,v=m(0);if((0|e)>0)for(n=S-16|0;;){c=m(w[A+68>>2]*m(.5)),b=o[A+72>>2],i=w[8+(a=(d=l<<4)+r|0)>>2],t=o[A+76>>2]<<2,s=m(i*i),i=w[a>>2],u=m(i*i),i=w[a+4>>2];A:{if(w[a+t>>2]>m(w[A+60>>2]*m(N(m(s+m(u+m(i*i)))))))o[(b<<2)+n>>2]=0,w[n+t>>2]=c,b=o[A+80>>2];else{if(i=w[a+(k=b<<2)>>2],b=o[A+80>>2],u=w[a+(b<<2)>>2],(v=m(N(m(m(i*i)+m(u*u)))))>m(1.1920928955078125e-7)){s=i,i=m(w[A+64>>2]/v),w[n+k>>2]=s*i,w[n+t>>2]=-c,c=m(u*i);break A}o[n+k>>2]=0,w[n+t>>2]=-c}c=m(0)}if(w[(b<<2)+n>>2]=c,t=o[n+12>>2],o[8+(a=f+d|0)>>2]=o[n+8>>2],o[a+12>>2]=t,t=o[n+4>>2],o[a>>2]=o[n>>2],o[a+4>>2]=t,(0|(l=l+1|0))==(0|e))break}},hn,hn,on,te,ri,Ir,function(A,r){A|=0;var f,e=0;e=o[4+(r|=0)>>2],f=o[A+100>>2],o[f+4>>2]=o[r>>2],o[f+8>>2]=e,e=o[r+12>>2],o[f+12>>2]=o[r+8>>2],o[f+16>>2]=e,vf(A)},function(A){return o[100+(A|=0)>>2]+4|0},function(A,r,f){A|=0,r=m(r),f|=0;var e,i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0);S=e=S-96|0,n=m(Zn[o[o[A>>2]+48>>2]](A)),o[e+44>>2]=0,o[e+48>>2]=0,o[e+56>>2]=0,o[e+60>>2]=0,o[e+52>>2]=1065353216,o[(i=e- -64|0)>>2]=0,o[i+4>>2]=0,o[e+76>>2]=0,o[e+80>>2]=0,o[e+72>>2]=1065353216,o[e+84>>2]=0,o[e+88>>2]=0,o[e+92>>2]=0,o[e+36>>2]=0,o[e+40>>2]=0,o[e+32>>2]=1065353216,Zn[o[o[A>>2]+8>>2]](A,e+32|0,e+16|0,e),c=w[e+24>>2],b=w[e+8>>2],a=w[e+16>>2],t=w[e>>2],u=w[e+20>>2],l=w[e+4>>2],o[f+12>>2]=0,r=m(r*m(.0833333283662796)),a=m(n+m(m(t-a)*m(.5))),a=m(a+a),a=m(a*a),t=m(n+m(m(l-u)*m(.5))),t=m(t+t),t=m(t*t),w[f+8>>2]=r*m(a+t),n=m(n+m(m(b-c)*m(.5))),n=m(n+n),n=m(n*n),w[f+4>>2]=r*m(a+n),w[f>>2]=r*m(t+n),S=e+96|0},function(){return 6671},Rf,function(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0);S=e=S-80|0,o[A>>2]=0,o[A+4>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,n=w[f+8>>2],t=w[f>>2],a=w[f+4>>2],(i=m(m(n*n)+m(m(t*t)+m(a*a))))>2],i=m(t*i)),o[e+52>>2]=0,o[e+56>>2]=0,w[e+76>>2]=a,w[e+72>>2]=n,w[e+68>>2]=c,o[e+44>>2]=0,o[e+48>>2]=0,w[e+64>>2]=i,o[e+60>>2]=-581039253,o[e+40>>2]=20076,o[e+32>>2]=1566444395,o[e+36>>2]=0,o[e+24>>2]=1566444395,o[e+28>>2]=1566444395,r=o[r+100>>2],o[e+16>>2]=-581039253,o[e+20>>2]=0,o[e+8>>2]=-581039253,o[e+12>>2]=-581039253,Zn[o[o[r>>2]+8>>2]](r,e+40|0,e+8|0,e+24|0),r=o[e+56>>2],o[A+8>>2]=o[e+52>>2],o[A+12>>2]=r,r=o[e+48>>2],o[A>>2]=o[e+44>>2],o[A+4>>2]=r,S=e+80|0},function(A,r,f,e){A|=0,r|=0,f|=0;var i,n=0,a=0,t=0,c=0,b=0;if(S=i=S-80|0,!((0|(e|=0))<=0)){if(e>>>0>=8)for(b=-8&e;o[12+((n=c<<4)+f|0)>>2]=-581039253,o[12+((16|n)+f|0)>>2]=-581039253,o[12+((32|n)+f|0)>>2]=-581039253,o[12+((48|n)+f|0)>>2]=-581039253,o[12+((64|n)+f|0)>>2]=-581039253,o[12+((80|n)+f|0)>>2]=-581039253,o[12+((96|n)+f|0)>>2]=-581039253,o[12+((112|n)+f|0)>>2]=-581039253,c=c+8|0,(0|b)!=(0|(a=a+8|0)););if(a=7&e)for(;o[12+((c<<4)+f|0)>>2]=-581039253,c=c+1|0,(0|a)!=(0|(t=t+1|0)););if(!((0|e)<=0))for(n=i- -64|0,c=0;o[i+40>>2]=20076,o[i+52>>2]=0,o[i+56>>2]=0,o[i+44>>2]=0,o[i+48>>2]=0,o[i+60>>2]=-581039253,t=o[12+(b=(a=c<<4)+r|0)>>2],o[n+8>>2]=o[b+8>>2],o[n+12>>2]=t,t=o[b+4>>2],o[n>>2]=o[b>>2],o[n+4>>2]=t,o[i+32>>2]=1566444395,o[i+36>>2]=0,o[i+24>>2]=1566444395,o[i+28>>2]=1566444395,t=o[A+100>>2],o[i+16>>2]=-581039253,o[i+20>>2]=0,o[i+8>>2]=-581039253,o[i+12>>2]=-581039253,Zn[o[o[t>>2]+8>>2]](t,i+40|0,i+8|0,i+24|0),t=o[i+56>>2],o[8+(a=f+a|0)>>2]=o[i+52>>2],o[a+12>>2]=t,t=o[i+48>>2],o[a>>2]=o[i+44>>2],o[a+4>>2]=t,(0|(c=c+1|0))!=(0|e););}S=i+80|0},cn,cn,Qi,zi,cn,Qi,Zi,en,vn,function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0);i=w[A+20>>2],n=w[A+32>>2],a=w[A+24>>2],t=w[A+28>>2],i<(e=m(m(n*w[r+8>>2])+m(m(a*w[r>>2])+m(t*w[r+4>>2]))))&&(w[A+20>>2]=e,f=o[r+12>>2],o[A+12>>2]=o[r+8>>2],o[A+16>>2]=f,f=o[r+4>>2],o[A+4>>2]=o[r>>2],o[A+8>>2]=f,i=e),(e=m(m(n*w[r+24>>2])+m(m(a*w[r+16>>2])+m(t*w[r+20>>2]))))>i?(w[A+20>>2]=e,f=o[r+28>>2],o[A+12>>2]=o[r+24>>2],o[A+16>>2]=f,f=o[r+20>>2],o[A+4>>2]=o[r+16>>2],o[A+8>>2]=f):e=i,e<(i=m(m(n*w[r+40>>2])+m(m(a*w[r+32>>2])+m(t*w[r+36>>2]))))&&(w[A+20>>2]=i,f=o[r+44>>2],o[A+12>>2]=o[r+40>>2],o[A+16>>2]=f,f=o[r+36>>2],o[A+4>>2]=o[r+32>>2],o[A+8>>2]=f)},ai,of,Df,function(A,r,f){A|=0,r=m(r),f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0);n=w[A+44>>2],e=w[A+40>>2],c=w[A+36>>2],b=m(Zn[o[o[A>>2]+48>>2]](A)),e=m(e+m(Zn[o[o[A>>2]+48>>2]](A))),u=m(Zn[o[o[A>>2]+48>>2]](A)),i=m(r*m(.5)),a=m(r*m(.25)),t=m(r/m(12)),r=m(b+c);A:{switch(o[A+60>>2]){case 0:n=i,i=m(e*e),e=m(n*i),i=r=m(m(t*m(r*m(r*m(4))))+m(a*i));break A;case 2:r=m(r*r),i=m(i*r),e=m(u+n),r=e=m(m(t*m(e*m(e*m(4))))+m(a*r));break A}n=i,i=m(r*r),r=m(n*i),i=e=m(m(t*m(e*m(e*m(4))))+m(a*i))}o[f+12>>2]=0,w[f+8>>2]=i,w[f+4>>2]=r,w[f>>2]=e},function(){return 9276},Te,xf,an,function(A,r,f){A|=0,r|=0,f|=0;var e=m(0);return te(A,r,f),w[r+28>>2]=w[A+36>>2],w[r+32>>2]=w[A+40>>2],w[r+36>>2]=w[A+44>>2],w[r+40>>2]=w[A+48>>2],w[r+12>>2]=w[A+20>>2],w[r+16>>2]=w[A+24>>2],w[r+20>>2]=w[A+28>>2],w[r+24>>2]=w[A+32>>2],e=w[A+52>>2],o[r+48>>2]=0,w[r+44>>2]=e,A=o[A+60>>2],o[r+56>>2]=0,o[r+52>>2]=A,8921},function(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=m(0),a=m(0),t=0,c=m(0),b=m(0);S=e=S-16|0,Zn[o[o[r>>2]+68>>2]](e,r,f),t=o[e+12>>2],o[A+8>>2]=o[e+8>>2],o[A+12>>2]=t,t=o[e+4>>2],o[A>>2]=o[e>>2],o[A+4>>2]=t,m(Zn[o[o[r>>2]+48>>2]](r))!=m(0)&&(n=w[f+4>>2],i=w[f>>2],a=w[f+8>>2],c=m(Zn[o[o[r>>2]+48>>2]](r)),b=i=(r=m(m(a*a)+m(m(i*i)+m(n*n)))>2]=w[A>>2]+m(c*m(b*i)),w[A+4>>2]=w[A+4>>2]+m(c*m(n*i)),w[A+8>>2]=w[A+8>>2]+m(c*m(a*i))),S=e+16|0},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),o=m(0);e=w[r+40>>2],i=w[r+36>>2],n=w[f>>2],a=w[f+8>>2],(t=m(N(m(m(n*n)+m(a*a)))))==m(0)||(i=m(i/t),o=m(a*i),i=m(n*i)),e=w[f+4>>2]>2]=o,w[A+4>>2]=e,w[A>>2]=i},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=0,n=m(0),a=m(0),t=m(0),o=0,c=m(0),b=0,u=m(0);if((0|e)>0)for(;n=w[A+40>>2],a=w[A+36>>2],c=w[(i=(b=o<<4)+r|0)>>2],t=w[i+8>>2],(u=m(N(m(m(c*c)+m(t*t)))))==m(0)?(t=m(0),n=w[i+4>>2]>2]>2]=t,w[i+4>>2]=n,w[i>>2]=a,(0|(o=o+1|0))!=(0|e););},function(A){A|=0;var r=m(0),f=m(0);return r=w[A+36>>2],f=m(Zn[o[o[A>>2]+48>>2]](A)),m(Zn[o[o[A>>2]+48>>2]](A)),m(Zn[o[o[A>>2]+48>>2]](A)),m(m(r+f))},en,hn,en,ai,Mf,ye,Li,Ti,function(){return 1038},Qi,function(A){return o[(A|=0)>>2]=20488,0|A},function(A){o[(A|=0)>>2]=20488,A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0);u=w[r+56>>2],k=w[r+36>>2],d=w[r+40>>2],l=w[r+52>>2],t=w[r+20>>2],n=w[A+120>>2],c=w[A+28>>2],v=w[A+44>>2],a=w[r+24>>2],i=w[A+124>>2],b=w[A+32>>2],h=w[A+48>>2],B=w[r+32>>2],s=w[r+48>>2],Z=w[r>>2],G=w[r+4>>2],E=w[r+8>>2],W=w[r+16>>2],N=w[A+116>>2],p=w[A+24>>2],F=w[A+40>>2],R=m(Zn[o[o[A>>2]+48>>2]](A)),Y=m(Zn[o[o[A>>2]+48>>2]](A)),V=m(Zn[o[o[A>>2]+48>>2]](A)),o[f+12>>2]=0,i=m(m(i*m(h-b))*m(.5)),b=m(i*m(Q(a))),a=m(m(N*m(F-p))*m(.5)),n=m(m(n*m(v-c))*m(.5)),t=m(Y+m(b+m(m(a*m(Q(W)))+m(n*m(Q(t)))))),w[f+4>>2]=l-t,c=m(R+m(m(i*m(Q(E)))+m(m(a*m(Q(Z)))+m(n*m(Q(G)))))),w[f>>2]=s-c,i=m(V+m(m(i*m(Q(d)))+m(m(a*m(Q(B)))+m(n*m(Q(k)))))),w[f+8>>2]=u-i,o[e+12>>2]=0,w[e+8>>2]=u+i,w[e+4>>2]=l+t,w[e>>2]=s+c},function(A,r){A|=0;var f=0;f=o[4+(r|=0)>>2],o[A+116>>2]=o[r>>2],o[A+120>>2]=f,f=o[r+12>>2],o[A+124>>2]=o[r+8>>2],o[A+128>>2]=f},function(A){return 116+(A|=0)|0},Pe,function(){return 9334},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n,a,t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=0,d=0,h=0,B=0,Z=0,G=0,E=0;S=i=S-48|0,t=w[A+48>>2],c=w[A+32>>2],l=m(m(1)/w[A+124>>2]),s=w[A- -64>>2],d=((b=t<(b=c>(b=m(m(l*w[e+8>>2])+s))?c:b)?t:b)(l=m(m(l*w[f+8>>2])+s))?c:l)?t:c)>2],c=w[A+28>>2],l=m(m(1)/w[A+120>>2]),s=w[A+60>>2],d=((b=t<(b=c>(b=m(m(l*w[e+4>>2])+s))?c:b)?t:b)(l=m(m(l*w[f+4>>2])+s))?c:l)?t:c)>2],c=w[A+24>>2],l=m(m(1)/w[A+116>>2]),s=w[A+56>>2],d=((b=t<(b=c>(b=m(m(l*w[e>>2])+s))?c:b)?t:b)(l=m(m(l*w[f>>2])+s))?c:l)?t:c)>2]-1|0,Z=o[A+72>>2]-1|0;A:{r:switch(o[A+112>>2]){case 0:k=(0|B)<(0|k)?B:k,h=(0|G)>0?G:0,Z=(0|Z)>(0|n)?n:Z,E=(0|a)>0?a:0;break A;case 1:k=(0|B)<(0|k)?B:k,h=(0|G)>0?G:0,Z=(0|e)<(0|Z)?e:Z,E=(0|f)>0?f:0;break A;case 2:break r;default:break A}k=(0|k)>(0|n)?n:k,h=(0|a)>0?a:0,Z=(0|e)<(0|Z)?e:Z,E=(0|f)>0?f:0}if(!((0|Z)<=(0|E)|(0|h)>=(0|k)))for(;;){for(G=1&h,l=m(0|(B=h+1|0)),s=m(0|h),f=E;;){A:{r:{if(e=f,!(!(!v[A+110|0]||G)|v[A+108|0]|(f+h&1?0:v[A+109|0]))){b=m(Zn[o[o[A>>2]+68>>2]](A,e,h));f:{switch(o[A+112>>2]){case 2:c=w[A+88>>2],t=w[A+92>>2],u=w[A+64>>2],o[i+12>>2]=0,t=m(s-m(t*m(.5))),c=m(m(0|e)-m(c*m(.5))),b=m(b-u);break f;case 1:c=w[A+88>>2],u=w[A+92>>2],t=w[A+60>>2],o[i+12>>2]=0,t=m(b-t),c=m(m(0|e)-m(c*m(.5))),b=m(s-m(u*m(.5)));break f;case 0:t=w[A+88>>2],u=w[A+92>>2],c=w[A+56>>2],o[i+12>>2]=0,c=m(b-c),t=m(m(0|e)-m(t*m(.5))),b=m(s-m(u*m(.5)));break f}t=w[i+4>>2],c=w[i>>2],b=w[i+8>>2]}w[i>>2]=c*w[A+116>>2],w[i+4>>2]=t*w[A+120>>2],w[i+8>>2]=b*w[A+124>>2],b=m(Zn[o[o[A>>2]+68>>2]](A,e,B));f:{switch(o[A+112>>2]){case 2:c=w[A+88>>2],t=w[A+92>>2],u=w[A+64>>2],o[i+28>>2]=0,t=m(l-m(t*m(.5))),c=m(m(0|e)-m(c*m(.5))),b=m(b-u);break f;case 1:c=w[A+88>>2],u=w[A+92>>2],t=w[A+60>>2],o[i+28>>2]=0,t=m(b-t),c=m(m(0|e)-m(c*m(.5))),b=m(l-m(u*m(.5)));break f;case 0:t=w[A+88>>2],u=w[A+92>>2],c=w[A+56>>2],o[i+28>>2]=0,c=m(b-c),t=m(m(0|e)-m(t*m(.5))),b=m(l-m(u*m(.5)));break f}t=w[i+20>>2],c=w[i+16>>2],b=w[i+24>>2]}w[i+16>>2]=c*w[A+116>>2],w[i+20>>2]=t*w[A+120>>2],w[i+24>>2]=b*w[A+124>>2],f=e+1|0,b=m(Zn[o[o[A>>2]+68>>2]](A,f,h));f:{switch(o[A+112>>2]){case 2:c=w[A+88>>2],t=w[A+92>>2],u=w[A+64>>2],o[i+44>>2]=0,t=m(s-m(t*m(.5))),c=m(m(0|f)-m(c*m(.5))),b=m(b-u);break f;case 1:c=w[A+88>>2],u=w[A+92>>2],t=w[A+60>>2],o[i+44>>2]=0,t=m(b-t),c=m(m(0|f)-m(c*m(.5))),b=m(s-m(u*m(.5)));break f;case 0:t=w[A+88>>2],u=w[A+92>>2],c=w[A+56>>2],o[i+44>>2]=0,c=m(b-c),t=m(m(0|f)-m(t*m(.5))),b=m(s-m(u*m(.5)));break f}t=w[i+36>>2],c=w[i+32>>2],b=w[i+40>>2]}w[i+32>>2]=c*w[A+116>>2],w[i+36>>2]=t*w[A+120>>2],w[i+40>>2]=b*w[A+124>>2],Zn[o[o[r>>2]+8>>2]](r,i,e,h),b=m(Zn[o[o[A>>2]+68>>2]](A,f,h));f:{switch(o[A+112>>2]){case 2:c=w[A+88>>2],t=w[A+92>>2],u=w[A+64>>2],o[i+12>>2]=0,t=m(s-m(t*m(.5))),c=m(m(0|f)-m(c*m(.5))),b=m(b-u);break f;case 1:c=w[A+88>>2],u=w[A+92>>2],t=w[A+60>>2],o[i+12>>2]=0,t=m(b-t),c=m(m(0|f)-m(c*m(.5))),b=m(s-m(u*m(.5)));break f;case 0:t=w[A+88>>2],u=w[A+92>>2],c=w[A+56>>2],o[i+12>>2]=0,c=m(b-c),t=m(m(0|f)-m(t*m(.5))),b=m(s-m(u*m(.5)));break f}t=w[i+4>>2],c=w[i>>2],b=w[i+8>>2]}w[i>>2]=c*w[A+116>>2],w[i+4>>2]=t*w[A+120>>2],w[i+8>>2]=b*w[A+124>>2],b=m(Zn[o[o[A>>2]+68>>2]](A,f,B));f:switch(o[A+112>>2]){case 2:c=w[A+88>>2],t=w[A+92>>2],u=w[A+64>>2],o[i+44>>2]=0,t=m(l-m(t*m(.5))),c=m(m(0|f)-m(c*m(.5))),b=m(b-u);break A;case 1:c=w[A+88>>2],u=w[A+92>>2],t=w[A+60>>2],o[i+44>>2]=0,t=m(b-t),c=m(m(0|f)-m(c*m(.5))),b=m(l-m(u*m(.5)));break A;case 0:break f;default:break r}t=w[A+88>>2],u=w[A+92>>2],c=w[A+56>>2],o[i+44>>2]=0,c=m(b-c),t=m(m(0|f)-m(t*m(.5))),b=m(l-m(u*m(.5)));break A}b=m(Zn[o[o[A>>2]+68>>2]](A,e,h));f:{switch(o[A+112>>2]){case 2:c=w[A+88>>2],t=w[A+92>>2],u=w[A+64>>2],o[i+12>>2]=0,t=m(s-m(t*m(.5))),c=m(m(0|e)-m(c*m(.5))),b=m(b-u);break f;case 1:c=w[A+88>>2],u=w[A+92>>2],t=w[A+60>>2],o[i+12>>2]=0,t=m(b-t),c=m(m(0|e)-m(c*m(.5))),b=m(s-m(u*m(.5)));break f;case 0:t=w[A+88>>2],u=w[A+92>>2],c=w[A+56>>2],o[i+12>>2]=0,c=m(b-c),t=m(m(0|e)-m(t*m(.5))),b=m(s-m(u*m(.5)));break f}t=w[i+4>>2],c=w[i>>2],b=w[i+8>>2]}w[i>>2]=c*w[A+116>>2],w[i+4>>2]=t*w[A+120>>2],w[i+8>>2]=b*w[A+124>>2],b=m(Zn[o[o[A>>2]+68>>2]](A,e,B));f:{switch(o[A+112>>2]){case 2:c=w[A+88>>2],t=w[A+92>>2],u=w[A+64>>2],o[i+28>>2]=0,t=m(l-m(t*m(.5))),c=m(m(0|e)-m(c*m(.5))),b=m(b-u);break f;case 1:c=w[A+88>>2],u=w[A+92>>2],t=w[A+60>>2],o[i+28>>2]=0,t=m(b-t),c=m(m(0|e)-m(c*m(.5))),b=m(l-m(u*m(.5)));break f;case 0:t=w[A+88>>2],u=w[A+92>>2],c=w[A+56>>2],o[i+28>>2]=0,c=m(b-c),t=m(m(0|e)-m(t*m(.5))),b=m(l-m(u*m(.5)));break f}t=w[i+20>>2],c=w[i+16>>2],b=w[i+24>>2]}w[i+16>>2]=c*w[A+116>>2],w[i+20>>2]=t*w[A+120>>2],w[i+24>>2]=b*w[A+124>>2],f=e+1|0,b=m(Zn[o[o[A>>2]+68>>2]](A,f,B));f:{switch(o[A+112>>2]){case 2:c=w[A+88>>2],t=w[A+92>>2],u=w[A+64>>2],o[i+44>>2]=0,t=m(l-m(t*m(.5))),c=m(m(0|f)-m(c*m(.5))),b=m(b-u);break f;case 1:c=w[A+88>>2],u=w[A+92>>2],t=w[A+60>>2],o[i+44>>2]=0,t=m(b-t),c=m(m(0|f)-m(c*m(.5))),b=m(l-m(u*m(.5)));break f;case 0:t=w[A+88>>2],u=w[A+92>>2],c=w[A+56>>2],o[i+44>>2]=0,c=m(b-c),t=m(m(0|f)-m(t*m(.5))),b=m(l-m(u*m(.5)));break f}t=w[i+36>>2],c=w[i+32>>2],b=w[i+40>>2]}w[i+32>>2]=c*w[A+116>>2],w[i+36>>2]=t*w[A+120>>2],w[i+40>>2]=b*w[A+124>>2],Zn[o[o[r>>2]+8>>2]](r,i,e,h),b=m(Zn[o[o[A>>2]+68>>2]](A,f,B));f:{switch(o[A+112>>2]){case 2:c=w[A+88>>2],t=w[A+92>>2],u=w[A+64>>2],o[i+28>>2]=0,t=m(l-m(t*m(.5))),c=m(m(0|f)-m(c*m(.5))),b=m(b-u);break f;case 1:c=w[A+88>>2],u=w[A+92>>2],t=w[A+60>>2],o[i+28>>2]=0,t=m(b-t),c=m(m(0|f)-m(c*m(.5))),b=m(l-m(u*m(.5)));break f;case 0:t=w[A+88>>2],u=w[A+92>>2],c=w[A+56>>2],o[i+28>>2]=0,c=m(b-c),t=m(m(0|f)-m(t*m(.5))),b=m(l-m(u*m(.5)));break f}t=w[i+20>>2],c=w[i+16>>2],b=w[i+24>>2]}w[i+16>>2]=c*w[A+116>>2],w[i+20>>2]=t*w[A+120>>2],w[i+24>>2]=b*w[A+124>>2],b=m(Zn[o[o[A>>2]+68>>2]](A,f,h));f:switch(o[A+112>>2]){case 2:c=w[A+88>>2],t=w[A+92>>2],u=w[A+64>>2],o[i+44>>2]=0,t=m(s-m(t*m(.5))),c=m(m(0|f)-m(c*m(.5))),b=m(b-u);break A;case 1:c=w[A+88>>2],u=w[A+92>>2],t=w[A+60>>2],o[i+44>>2]=0,t=m(b-t),c=m(m(0|f)-m(c*m(.5))),b=m(s-m(u*m(.5)));break A;case 0:break f;default:break r}t=w[A+88>>2],u=w[A+92>>2],c=w[A+56>>2],o[i+44>>2]=0,c=m(b-c),t=m(m(0|f)-m(t*m(.5))),b=m(s-m(u*m(.5)));break A}t=w[i+36>>2],c=w[i+32>>2],b=w[i+40>>2]}if(w[i+32>>2]=c*w[A+116>>2],w[i+36>>2]=t*w[A+120>>2],w[i+40>>2]=b*w[A+124>>2],Zn[o[o[r>>2]+8>>2]](r,i,e,h),(0|f)==(0|Z))break}if((0|k)==(0|(h=B)))break}S=i+48|0},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0);switch(o[A+104>>2]){case 0:return m(w[o[A+100>>2]+(G(o[A+72>>2],f)+r<<2)>>2]);case 5:return m(m(w[A+96>>2]*m(v[o[A+100>>2]+(G(o[A+72>>2],f)+r|0)|0])));case 3:e=m(w[A+96>>2]*m(t[o[A+100>>2]+(G(o[A+72>>2],f)+r<<1)>>1]))}return m(e)},function(A){return 0|nf(A|=0)},ii,function(A,r,f,e){return 0|vA(A|=0,r|=0,f|=0,e|=0)},vn,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=m(0),n=m(0),c=m(0),b=0,u=0,l=m(0),s=0,k=0,d=0,h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=0,N=0,p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=0,D=0;if(n=w[r+40>>2],c=w[r+36>>2],i=w[r+24>>2],B=w[r+20>>2],u=o[A+8>>2],p=w[u+44>>2],F=w[u+40>>2],R=w[u+12>>2],Y=w[u+8>>2],Z=w[r+32>>2],G=w[r+16>>2],h=w[r+8>>2],Q=w[r+4>>2],E=w[r>>2],V=w[u+36>>2],g=w[u+4>>2],r=o[A+4>>2],(0|(A=o[r+4>>2]))==o[r+8>>2]&&!((0|(W=A?A<<1:1))<=(0|A))){if(W?(o[8488]=o[8488]+1,u=0|Zn[o[8290]](W<<4,16),A=o[r+4>>2]):u=0,!((0|A)<=0)){if(1!=(0|A))for(D=-2&A;d=(k=s<<4)+u|0,b=k+o[r+12>>2]|0,N=o[b+4>>2],o[d>>2]=o[b>>2],o[d+4>>2]=N,N=o[b+12>>2],o[d+8>>2]=o[b+8>>2],o[d+12>>2]=N,k=(b=16|k)+u|0,b=b+o[r+12>>2]|0,d=o[b+4>>2],o[k>>2]=o[b>>2],o[k+4>>2]=d,d=o[b+12>>2],o[k+8>>2]=o[b+8>>2],o[k+12>>2]=d,s=s+2|0,(0|(X=X+2|0))!=(0|D););1&A&&(s=(A=s<<4)+u|0,A=A+o[r+12>>2]|0,b=o[A+4>>2],o[s>>2]=o[A>>2],o[s+4>>2]=b,b=o[A+12>>2],o[s+8>>2]=o[A+8>>2],o[s+12>>2]=b)}!(A=o[r+12>>2])||!A|!v[r+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[r+12>>2]=u,a[r+16|0]=1,o[r+8>>2]=W,A=o[r+4>>2]}A=o[r+12>>2]+(A<<4)|0,o[A+12>>2]=f<<21|e,l=n>(l=i>(l=h>m(-0xde0b6b000000000)?h:m(-0xde0b6b000000000))?i:l)?n:l,h=h=m(0)?~~n>>>0:0,t[A+4>>1]=65534&e,n=(n=(n=Q>m(-0xde0b6b000000000)?Q:m(-0xde0b6b000000000))B?B:i)>c?c:i))=m(0)?~~c>>>0:0,t[A+2>>1]=65534&b,c=(c=(c=E>m(-0xde0b6b000000000)?E:m(-0xde0b6b000000000))G?G:i)>Z?Z:i))=m(0)?~~i>>>0:0,t[A>>1]=65534&b,f=(i=m(m(m((f?m(l+m(.0010000000474974513)):l)-R)*p)+m(1)))=m(0)?~~i>>>0:0,t[A+10>>1]=1|f,f=(n=m(m(m((e?m(n+m(.0010000000474974513)):n)-Y)*F)+m(1)))=m(0)?~~n>>>0:0,t[A+8>>1]=1|f,f=(n=m(m(m((u?m(c+m(.0010000000474974513)):c)-g)*V)+m(1)))=m(0)?~~n>>>0:0,t[A+6>>1]=1|f,o[r+4>>2]=o[r+4>>2]+1},vn,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=0,t=m(0),c=m(0),b=0,u=0,l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=0,p=0,F=0,R=0,Y=0;if(c=w[r+44>>2],k=w[r+40>>2],d=w[r+36>>2],l=w[r+28>>2],h=w[r+24>>2],B=w[r+20>>2],Z=w[r+32>>2],G=w[r+16>>2],s=w[r+12>>2],Q=w[r+8>>2],E=w[r+4>>2],W=w[r>>2],i=o[A+4>>2],(0|(r=o[i+4>>2]))==o[i+8>>2]&&!((0|(N=r?r<<1:1))<=(0|r))){if(N&&(o[8488]=o[8488]+1,p=0|Zn[o[8290]](N<<6,16),r=o[i+4>>2]),!((0|r)<=0)){if(1!=(0|r))for(Y=-2&r;n=(b=F<<6)+p|0,A=o[i+12>>2]+b|0,u=o[A+4>>2],o[n>>2]=o[A>>2],o[n+4>>2]=u,u=o[A+60>>2],o[n+56>>2]=o[A+56>>2],o[n+60>>2]=u,u=o[A+52>>2],o[n+48>>2]=o[A+48>>2],o[n+52>>2]=u,u=o[A+44>>2],o[n+40>>2]=o[A+40>>2],o[n+44>>2]=u,u=o[A+36>>2],o[n+32>>2]=o[A+32>>2],o[n+36>>2]=u,u=o[A+28>>2],o[n+24>>2]=o[A+24>>2],o[n+28>>2]=u,u=o[A+20>>2],o[n+16>>2]=o[A+16>>2],o[n+20>>2]=u,u=o[A+12>>2],o[n+8>>2]=o[A+8>>2],o[n+12>>2]=u,n=(A=64|b)+p|0,A=A+o[i+12>>2]|0,b=o[A+4>>2],o[n>>2]=o[A>>2],o[n+4>>2]=b,b=o[A+12>>2],o[n+8>>2]=o[A+8>>2],o[n+12>>2]=b,b=o[A+20>>2],o[n+16>>2]=o[A+16>>2],o[n+20>>2]=b,b=o[A+28>>2],o[n+24>>2]=o[A+24>>2],o[n+28>>2]=b,b=o[A+36>>2],o[n+32>>2]=o[A+32>>2],o[n+36>>2]=b,b=o[A+44>>2],o[n+40>>2]=o[A+40>>2],o[n+44>>2]=b,b=o[A+52>>2],o[n+48>>2]=o[A+48>>2],o[n+52>>2]=b,b=o[A+60>>2],o[n+56>>2]=o[A+56>>2],o[n+60>>2]=b,F=F+2|0,(0|(R=R+2|0))!=(0|Y););1&r&&(r=(A=F<<6)+p|0,A=A+o[i+12>>2]|0,n=o[A+4>>2],o[r>>2]=o[A>>2],o[r+4>>2]=n,n=o[A+60>>2],o[r+56>>2]=o[A+56>>2],o[r+60>>2]=n,n=o[A+52>>2],o[r+48>>2]=o[A+48>>2],o[r+52>>2]=n,n=o[A+44>>2],o[r+40>>2]=o[A+40>>2],o[r+44>>2]=n,n=o[A+36>>2],o[r+32>>2]=o[A+32>>2],o[r+36>>2]=n,n=o[A+28>>2],o[r+24>>2]=o[A+24>>2],o[r+28>>2]=n,n=o[A+20>>2],o[r+16>>2]=o[A+16>>2],o[r+20>>2]=n,n=o[A+12>>2],o[r+8>>2]=o[A+8>>2],o[r+12>>2]=n)}!(A=o[i+12>>2])||!A|!v[i+16|0]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),o[i+12>>2]=p,a[i+16|0]=1,o[i+8>>2]=N,r=o[i+4>>2]}A=o[i+12>>2]+(r<<6)|0,o[A+40>>2]=e,o[A+36>>2]=f,o[A+32>>2]=-1,t=(t=s>m(0)?s:m(0))>2]=c>t?c:t,t=(t=Q>m(-0xde0b6b000000000)?Q:m(-0xde0b6b000000000))>2]=tm(-0xde0b6b000000000)?E:m(-0xde0b6b000000000))>2]=tm(-0xde0b6b000000000)?W:m(-0xde0b6b000000000))>2]=t>2]=ch?h:c,w[A+8>>2]=c>k?k:c,c=(c=EB?B:c,w[A+4>>2]=c>d?d:c,c=(c=WG?G:c,w[A>>2]=c>Z?Z:c,o[i+4>>2]=o[i+4>>2]+1},uf,function(A){uf(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},hn,function(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=0,a=0,t=0,c=m(0),b=m(0),u=0,l=m(0),s=m(0),k=0,d=0,v=m(0),h=0,B=m(0),Z=0;if(S=e=S-2048|0,o[A>>2]=0,o[A+4>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,i=w[f+8>>2],c=w[f>>2],l=w[f+4>>2],(b=m(m(i*i)+m(m(c*c)+m(l*l))))>2]+96>>2]](r))>0)for(l=m(-0xde0b6b000000000);;){if(n=128,((0|Zn[o[o[r>>2]+96>>2]](r))-d|0)>127||(0|(n=(0|Zn[o[o[r>>2]+96>>2]](r))-d|0))>0){if(f=0,!(t=1==(0|n)))for(u=-2&n,a=0;Zn[o[o[r>>2]+108>>2]](r,f,(f<<4)+e|0),k=1|f,Zn[o[o[r>>2]+108>>2]](r,k,(k<<4)+e|0),f=f+2|0,(0|u)!=(0|(a=a+2|0)););if((k=1&n)&&Zn[o[o[r>>2]+108>>2]](r,f,(f<<4)+e|0),t)f=0,a=-1,i=m(-34028234663852886e22);else for(Z=-2&n,f=0,a=-1,i=m(-34028234663852886e22),n=0;t=(b=m(m(w[8+(t=(f<<4)+e|0)>>2]*s)+m(m(w[t>>2]*c)+m(v*w[t+4>>2]))))>i,i=(u=(B=m(m(w[8+(u=((h=1|f)<<4)+e|0)>>2]*s)+m(m(w[u>>2]*c)+m(v*w[u+4>>2]))))>(i=t?b:i))?B:i,a=u?h:t?f:a,f=f+2|0,(0|Z)!=(0|(n=n+2|0)););k&&(i=(n=(b=m(m(w[8+(n=(f<<4)+e|0)>>2]*s)+m(m(w[n>>2]*c)+m(v*w[n+4>>2]))))>i)?b:i,a=n?f:a)}else i=m(-34028234663852886e22),a=-1;if(i>l&&(n=o[12+(f=(a<<4)+e|0)>>2],o[A+8>>2]=o[f+8>>2],o[A+12>>2]=n,n=o[f+4>>2],o[A>>2]=o[f>>2],o[A+4>>2]=n,l=i),d=d+128|0,!((0|Zn[o[o[r>>2]+96>>2]](r))>(0|d)))break}S=e+2048|0},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=0,a=0,t=0,c=m(0),b=0,u=0,l=0,s=m(0),k=0,d=0,v=0,h=0,B=m(0),Z=m(0),G=m(0),Q=0,E=m(0),W=0;if(S=i=S-2048|0,!((0|e)<=0)){if(e>>>0>=8)for(l=-8&e;o[12+((n=a<<4)+f|0)>>2]=-581039253,o[12+((16|n)+f|0)>>2]=-581039253,o[12+((32|n)+f|0)>>2]=-581039253,o[12+((48|n)+f|0)>>2]=-581039253,o[12+((64|n)+f|0)>>2]=-581039253,o[12+((80|n)+f|0)>>2]=-581039253,o[12+((96|n)+f|0)>>2]=-581039253,o[12+((112|n)+f|0)>>2]=-581039253,a=a+8|0,(0|l)!=(0|(b=b+8|0)););if(n=7&e)for(;o[12+((a<<4)+f|0)>>2]=-581039253,a=a+1|0,(0|n)!=(0|(t=t+1|0)););if(!((0|e)<=0))for(;;){if((0|Zn[o[o[A>>2]+96>>2]](A))>0)for(h=(n=v<<4)+r|0,l=f+n|0,k=0;;){if(t=128,((0|Zn[o[o[A>>2]+96>>2]](A))-k|0)>127||(0|(t=(0|Zn[o[o[A>>2]+96>>2]](A))-k|0))>0){if(n=0,!(b=1==(0|t)))for(u=-2&t,a=0;Zn[o[o[A>>2]+108>>2]](A,n,(n<<4)+i|0),d=1|n,Zn[o[o[A>>2]+108>>2]](A,d,(d<<4)+i|0),n=n+2|0,(0|u)!=(0|(a=a+2|0)););if((d=1&t)&&Zn[o[o[A>>2]+108>>2]](A,n,(n<<4)+i|0),s=w[h+8>>2],B=w[h+4>>2],Z=w[h>>2],b)n=0,t=-1,c=m(-34028234663852886e22);else for(W=-2&t,n=0,t=-1,c=m(-34028234663852886e22),b=0;a=(G=m(m(w[8+(a=(n<<4)+i|0)>>2]*s)+m(m(w[a>>2]*Z)+m(B*w[a+4>>2]))))>c,c=(u=(E=m(m(w[8+(u=((Q=1|n)<<4)+i|0)>>2]*s)+m(m(w[u>>2]*Z)+m(B*w[u+4>>2]))))>(c=a?G:c))?E:c,t=u?Q:a?n:t,n=n+2|0,(0|W)!=(0|(b=b+2|0)););d&&(c=(a=(s=m(m(w[8+(a=(n<<4)+i|0)>>2]*s)+m(m(w[a>>2]*Z)+m(B*w[a+4>>2]))))>c)?s:c,t=a?n:t)}else c=m(-34028234663852886e22),t=-1;if(w[l+12>>2]>2]=o[n+8>>2],t=o[n+4>>2],o[l>>2]=o[n>>2],o[l+4>>2]=t,w[l+12>>2]=c),k=k+128|0,!((0|Zn[o[o[A>>2]+96>>2]](A))>(0|k)))break}if((0|(v=v+1|0))==(0|e))break}}S=i+2048|0},hn,function(A,r){A|=0,r|=0;var f,e=m(0);S=f=S-96|0,We(A,r),a[A+96|0]=1,v[34128]||(o[8509]=0,o[8510]=0,o[8508]=1065353216,o[8511]=0,o[8512]=0,o[8514]=0,o[8515]=0,o[8513]=1065353216,o[8516]=0,o[8517]=0,o[8521]=0,o[8522]=0,o[8520]=-1082130432,o[8518]=1065353216,o[8519]=0,o[8523]=0,o[8524]=0,o[8526]=0,o[8527]=0,o[8525]=-1082130432,o[8528]=0,o[8529]=0,o[8530]=-1082130432,o[8531]=0,a[34128]=1),r=Af(f,0,96),Zn[o[o[A>>2]+76>>2]](A,34032,r,6),e=w[A+52>>2],w[A+80>>2]=e+w[r>>2],w[A+64>>2]=w[r+48>>2]-e,w[A+84>>2]=e+w[r+20>>2],w[A+68>>2]=w[r+68>>2]-e,w[A+88>>2]=e+w[r+40>>2],w[A+72>>2]=w[r+88>>2]-e,S=r+96|0},en,ai,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0);i=o[A+40>>2],n=w[i+32>>2],a=w[A+32>>2],c=w[i+48>>2],u=w[i+28>>2],t=w[A+28>>2],l=w[i+44>>2],s=w[i+24>>2],G=w[i+40>>2],b=w[A+24>>2],k=m(Zn[o[o[i>>2]+48>>2]](i)),R=w[r+52>>2],h=w[r+24>>2],E=w[r+20>>2],d=w[r+56>>2],v=w[r+40>>2],B=w[r+36>>2],Y=w[r+48>>2],W=w[r+8>>2],N=w[r+4>>2],p=w[r>>2],F=w[r+16>>2],Z=w[r+32>>2],o[f+12>>2]=0,V=d,n=m(n*a),c=m(c*a),d=a<=m(0)?n:c,n=a>=m(0)?n:c,a=m(m(d+n)*m(.5)),c=m(s*b),s=m(G*b),G=b<=m(0)?c:s,c=b>=m(0)?c:s,b=m(m(G+c)*m(.5)),u=m(u*t),l=m(l*t),s=t<=m(0)?u:l,u=t>=m(0)?u:l,t=m(m(s+u)*m(.5)),l=m(V+m(m(v*a)+m(m(Z*b)+m(B*t)))),n=m(k+m(m(d-n)*m(.5))),d=m(n*m(Q(v))),v=m(k+m(m(G-c)*m(.5))),k=m(k+m(m(s-u)*m(.5))),B=m(d+m(m(v*m(Q(Z)))+m(k*m(Q(B))))),w[f+8>>2]=l-B,Z=m(R+m(m(a*h)+m(m(b*F)+m(t*E)))),h=m(m(n*m(Q(h)))+m(m(v*m(Q(F)))+m(k*m(Q(E))))),w[f+4>>2]=Z-h,a=m(Y+m(m(a*W)+m(m(b*p)+m(t*N)))),t=m(m(n*m(Q(W)))+m(m(v*m(Q(p)))+m(k*m(Q(N))))),w[f>>2]=a-t,o[e+12>>2]=0,w[e+8>>2]=B+l,w[e+4>>2]=h+Z,w[e>>2]=t+a},ye,Li,Ti,function(){return 9293},function(){return 76},function(A,r,f){var e;return r|=0,f|=0,e=o[40+(A|=0)>>2],Zn[o[o[e>>2]+56>>2]](e,r,f),o[r+4>>2]=22,w[r+60>>2]=w[A+24>>2],w[r- -64>>2]=w[A+28>>2],w[r+68>>2]=w[A+32>>2],w[r+72>>2]=w[A+36>>2],9012},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0);S=i=S+-64|0,o[i+44>>2]=r,o[i+40>>2]=21460,r=o[A+36>>2],o[i+56>>2]=o[A+32>>2],o[i+60>>2]=r,r=o[A+28>>2],o[i+48>>2]=o[A+24>>2],o[i+52>>2]=r,a=w[A+32>>2],n=w[A+28>>2],t=w[A+24>>2],c=m(m(1)/t),b=w[f>>2],u=w[e>>2],w[i+24>>2]=c*(t>=m(0)?b:u),l=m(m(1)/n),s=w[f+4>>2],k=w[e+4>>2],w[i+28>>2]=l*(n>=m(0)?s:k),d=w[e+8>>2],v=w[f+8>>2],o[i+36>>2]=0,o[i+20>>2]=0,w[i+12>>2]=l*(n<=m(0)?s:k),w[i+8>>2]=c*(t<=m(0)?b:u),n=m(m(1)/a),w[i+32>>2]=n*(a>=m(0)?v:d),w[i+16>>2]=n*(a<=m(0)?v:d),A=o[A+40>>2],Zn[o[o[A>>2]+64>>2]](A,i+40|0,i+24|0,i+8|0),S=i- -64|0},vn,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0);S=i=S-48|0,c=w[A+12>>2],b=w[A+16>>2],n=w[r+4>>2],a=w[r+8>>2],u=w[A+8>>2],t=w[r>>2],o[i+12>>2]=0,w[i>>2]=t*u,w[i+8>>2]=a*b,w[i+4>>2]=n*c,n=w[r+20>>2],a=w[r+24>>2],t=w[r+16>>2],o[i+28>>2]=0,w[i+24>>2]=b*a,w[i+20>>2]=c*n,w[i+16>>2]=u*t,n=w[r+36>>2],a=w[r+40>>2],t=w[r+32>>2],o[i+44>>2]=0,w[i+40>>2]=b*a,w[i+36>>2]=c*n,w[i+32>>2]=u*t,A=o[A+4>>2],Zn[o[o[A>>2]+8>>2]](A,i,f,e),S=i+48|0},ai,Mf,function(A,r,f){A|=0,r=m(r),f|=0;var e=m(0),i=m(0);e=m(Zn[o[o[A>>2]+48>>2]](A)),i=m(Zn[o[o[A>>2]+48>>2]](A)),o[f+12>>2]=0,r=m(i*m(e*m(r*m(.4000000059604645)))),w[f+8>>2]=r,w[f+4>>2]=r,w[f>>2]=r},function(){return 9315},pi,function(A){return m(m(w[36+(A|=0)>>2]*w[A+20>>2]))},function(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=m(0),a=m(0),t=0,c=m(0),b=m(0);S=e=S-16|0,Zn[o[o[r>>2]+68>>2]](e,r,f),t=o[e+12>>2],o[A+8>>2]=o[e+8>>2],o[A+12>>2]=t,t=o[e+4>>2],o[A>>2]=o[e>>2],o[A+4>>2]=t,n=w[f+4>>2],i=w[f>>2],a=w[f+8>>2],c=m(Zn[o[o[r>>2]+48>>2]](r)),b=i=(r=m(m(a*a)+m(m(i*i)+m(n*n)))>2]=w[A>>2]+m(c*m(b*i)),w[A+4>>2]=w[A+4>>2]+m(c*m(n*i)),w[A+8>>2]=w[A+8>>2]+m(c*m(a*i)),S=e+16|0},function(A){o[(A|=0)>>2]=0,o[A+4>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0},function(A,r,f,e){(0|(e|=0))>0&&Af(f|=0,0,e<<4)},en,ai,function(A,r,f,e){e|=0,o[8+(f|=0)>>2]=-581039253,o[f+12>>2]=0,o[f>>2]=-581039253,o[f+4>>2]=-581039253,o[e+8>>2]=1566444395,o[e+12>>2]=0,o[e>>2]=1566444395,o[e+4>>2]=1566444395},function(A,r){A|=0;var f=0;f=o[4+(r|=0)>>2],o[A+76>>2]=o[r>>2],o[A+80>>2]=f,f=o[r+12>>2],o[A+84>>2]=o[r+8>>2],o[A+88>>2]=f},function(A){return 76+(A|=0)|0},Pe,function(){return 9322},tn,function(A,r,f){A|=0,r|=0,f|=0;var e=m(0);return te(A,r,f),w[r+12>>2]=w[A+76>>2],w[r+16>>2]=w[A+80>>2],w[r+20>>2]=w[A+84>>2],w[r+24>>2]=w[A+88>>2],w[r+28>>2]=w[A+56>>2],w[r+32>>2]=w[A+60>>2],w[r+36>>2]=w[A- -64>>2],w[r+40>>2]=w[A+68>>2],e=w[A+72>>2],o[r+48>>2]=0,w[r+44>>2]=e,9058},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),E=m(0),W=m(0),p=m(0),F=m(0);S=i=S-48|0,k=w[f+8>>2],b=w[e+8>>2],v=w[f+4>>2],h=w[e+4>>2],u=w[f>>2],l=w[e>>2],n=w[A- -64>>2],m(Q(n))>m(.7071067690849304)?(c=w[A+60>>2],a=m(m(c*c)+m(n*n)),t=m(m(1)/m(N(a))),s=m(a*t),G=m(c*t),a=w[A+56>>2],B=m(G*m(-a)),d=m(t*m(-n)),E=m(a*d)):(a=w[A+56>>2],c=w[A+60>>2],s=m(m(a*a)+m(c*c)),t=m(m(1)/m(N(s))),E=m(s*t),W=m(t*m(-c)),B=m(n*W),d=m(a*t),s=m(d*m(-n))),t=w[A+72>>2],o[i+44>>2]=0,o[i+28>>2]=0,Z=m(m(b+k)*m(.5)),p=m(m(l+u)*m(.5)),F=m(m(h+v)*m(.5)),t=m(m(m(n*Z)+m(m(a*p)+m(F*c)))-t),Z=m(Z-m(n*t)),n=m(m(b-k)*m(.5)),b=m(n*n),n=m(m(l-u)*m(.5)),u=m(n*n),n=m(m(h-v)*m(.5)),n=m(N(m(b+m(u+m(n*n))))),b=m(n*G),v=m(Z-b),k=m(n*E),h=m(v-k),w[i+40>>2]=h,u=m(F-m(c*t)),l=m(n*d),d=m(u-l),c=m(n*B),B=m(d-c),w[i+36>>2]=B,b=m(b+Z),w[i+24>>2]=b-k,u=m(l+u),w[i+20>>2]=u-c,o[i+12>>2]=0,a=m(p-m(a*t)),t=m(n*W),l=m(a-t),n=m(n*s),s=m(l-n),w[i+32>>2]=s,a=m(t+a),w[i+16>>2]=a-n,t=m(k+b),w[i+8>>2]=t,b=m(c+u),w[i+4>>2]=b,a=m(n+a),w[i>>2]=a,Zn[o[o[r>>2]+8>>2]](r,i,0,0),o[i+44>>2]=0,w[i+40>>2]=t,w[i+36>>2]=b,o[i+28>>2]=0,w[i+24>>2]=k+v,w[i+20>>2]=c+d,w[i+32>>2]=a,w[i+16>>2]=n+l,o[i+12>>2]=0,w[i+8>>2]=h,w[i+4>>2]=B,w[i>>2]=s,Zn[o[o[r>>2]+8>>2]](r,i,0,1),S=i+48|0},ri,function(A,r,f,e){Ir(A|=0,r|=0,f|=0,e|=0)},function(){return 10242},function(A){return o[100+(A|=0)>>2]},function(A){return 0|((A=o[100+(A|=0)>>2]-2|0)>>>0<=2?o[21920+(A<<2)>>2]:0)},function(A,r,f,e){r|=0,f|=0,e|=0;A:{r:{f:switch(o[100+(A|=0)>>2]-2|0){case 0:r=o[A+108>>2],o[f>>2]=o[A+104>>2],o[f+4>>2]=r,r=o[A+116>>2],o[f+8>>2]=o[A+112>>2],o[f+12>>2]=r,A=A+120|0;break r;case 1:e:switch(0|r){case 0:r=o[A+108>>2],o[f>>2]=o[A+104>>2],o[f+4>>2]=r,r=o[A+116>>2],o[f+8>>2]=o[A+112>>2],o[f+12>>2]=r,A=A+120|0;break r;case 1:r=o[A+132>>2],o[f+8>>2]=o[A+128>>2],o[f+12>>2]=r,r=o[A+124>>2],o[f>>2]=o[A+120>>2],o[f+4>>2]=r,A=A+136|0;break r;case 2:break e;default:break A}r=o[A+148>>2],o[f+8>>2]=o[A+144>>2],o[f+12>>2]=r,r=o[A+140>>2],o[f>>2]=o[A+136>>2],o[f+4>>2]=r,A=A+104|0;break r;case 2:break f;default:break A}f:switch(0|r){case 0:r=o[A+108>>2],o[f>>2]=o[A+104>>2],o[f+4>>2]=r,r=o[A+116>>2],o[f+8>>2]=o[A+112>>2],o[f+12>>2]=r,A=A+120|0;break r;case 1:r=o[A+132>>2],o[f+8>>2]=o[A+128>>2],o[f+12>>2]=r,r=o[A+124>>2],o[f>>2]=o[A+120>>2],o[f+4>>2]=r,A=A+136|0;break r;case 2:r=o[A+148>>2],o[f+8>>2]=o[A+144>>2],o[f+12>>2]=r,r=o[A+140>>2],o[f>>2]=o[A+136>>2],o[f+4>>2]=r,A=A+104|0;break r;case 3:r=o[A+108>>2],o[f>>2]=o[A+104>>2],o[f+4>>2]=r,r=o[A+116>>2],o[f+8>>2]=o[A+112>>2],o[f+12>>2]=r,A=A+152|0;break r;case 4:r=o[A+132>>2],o[f+8>>2]=o[A+128>>2],o[f+12>>2]=r,r=o[A+124>>2],o[f>>2]=o[A+120>>2],o[f+4>>2]=r,A=A+152|0;break r;case 5:break f;default:break A}r=o[A+148>>2],o[f+8>>2]=o[A+144>>2],o[f+12>>2]=r,r=o[A+140>>2],o[f>>2]=o[A+136>>2],o[f+4>>2]=r,A=A+152|0}r=o[A+4>>2],o[e>>2]=o[A>>2],o[e+4>>2]=r,r=o[A+12>>2],o[e+8>>2]=o[A+8>>2],o[e+12>>2]=r}},function(A,r,f){f|=0,r=o[116+(A=((r|=0)<<4)+(A|=0)|0)>>2],o[f+8>>2]=o[A+112>>2],o[f+12>>2]=r,r=o[A+108>>2],o[f>>2]=o[A+104>>2],o[f+4>>2]=r},function(A){return 0|(4==(0|(A=o[100+(A|=0)>>2]))?4:(3==(0|A))<<1)},Qi,Zi,function(){return 0},Be,function(A){Be(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i,n=0,a=0,t=0,c=0,b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),B=0,Q=0,E=0,W=0;if(S=f=S-80|0,(0|(i=0|Zn[o[o[A>>2]+28>>2]](A)))>0)for(b=w[A+12>>2],u=w[A+8>>2],l=w[A+4>>2];;){Zn[o[o[A>>2]+16>>2]](A,f+76|0,f+52|0,f- -64|0,f+56|0,f+72|0,f+68|0,f+48|0,f+60|0,W);A:{r:switch(o[f+64>>2]){case 0:f:switch(o[f+60>>2]-2|0){case 0:if(e=0,o[f+48>>2]<=0)break A;for(;t=o[f+76>>2],c=o[f+56>>2],n=o[f+72>>2]+G(o[f+68>>2],e)|0,a=t+G(c,o[n>>2])|0,s=w[a>>2],k=w[a+4>>2],d=w[a+8>>2],o[f+12>>2]=0,w[f+8>>2]=b*d,w[f+4>>2]=u*k,w[f>>2]=l*s,a=t+G(c,o[n+4>>2])|0,s=w[a>>2],k=w[a+4>>2],d=w[a+8>>2],o[f+28>>2]=0,w[f+24>>2]=b*d,w[f+20>>2]=u*k,w[f+16>>2]=l*s,n=t+G(c,o[n+8>>2])|0,s=w[n>>2],k=w[n+4>>2],d=w[n+8>>2],o[f+44>>2]=0,w[f+40>>2]=b*d,w[f+36>>2]=u*k,w[f+32>>2]=l*s,Zn[o[o[r>>2]+8>>2]](r,f,W,e),(0|(e=e+1|0))>2];);break A;case 1:if(e=0,o[f+48>>2]<=0)break A;for(;t=o[f+76>>2],c=o[f+56>>2],n=o[f+72>>2]+G(o[f+68>>2],e)|0,a=t+G(c,h[n>>1])|0,s=w[a>>2],k=w[a+4>>2],d=w[a+8>>2],o[f+12>>2]=0,w[f+8>>2]=b*d,w[f+4>>2]=u*k,w[f>>2]=l*s,a=t+G(c,h[n+2>>1])|0,s=w[a>>2],k=w[a+4>>2],d=w[a+8>>2],o[f+28>>2]=0,w[f+24>>2]=b*d,w[f+20>>2]=u*k,w[f+16>>2]=l*s,n=t+G(c,h[n+4>>1])|0,s=w[n>>2],k=w[n+4>>2],d=w[n+8>>2],o[f+44>>2]=0,w[f+40>>2]=b*d,w[f+36>>2]=u*k,w[f+32>>2]=l*s,Zn[o[o[r>>2]+8>>2]](r,f,W,e),(0|(e=e+1|0))>2];);break A;case 3:break f;default:break A}if(e=0,o[f+48>>2]<=0)break A;for(;t=o[f+76>>2],c=o[f+56>>2],n=o[f+72>>2]+G(o[f+68>>2],e)|0,a=t+G(c,v[0|n])|0,s=w[a>>2],k=w[a+4>>2],d=w[a+8>>2],o[f+12>>2]=0,w[f+8>>2]=b*d,w[f+4>>2]=u*k,w[f>>2]=l*s,a=t+G(c,v[n+1|0])|0,s=w[a>>2],k=w[a+4>>2],d=w[a+8>>2],o[f+28>>2]=0,w[f+24>>2]=b*d,w[f+20>>2]=u*k,w[f+16>>2]=l*s,n=t+G(c,v[n+2|0])|0,s=w[n>>2],k=w[n+4>>2],d=w[n+8>>2],o[f+44>>2]=0,w[f+40>>2]=b*d,w[f+36>>2]=u*k,w[f+32>>2]=l*s,Zn[o[o[r>>2]+8>>2]](r,f,W,e),(0|(e=e+1|0))>2];);break A;case 1:break r;default:break A}r:switch(o[f+60>>2]-2|0){case 0:if(e=0,o[f+48>>2]<=0)break A;for(;t=o[f+76>>2],c=o[f+56>>2],n=o[f+72>>2]+G(o[f+68>>2],e)|0,a=t+G(c,o[n>>2])|0,B=Z[a>>3],Q=Z[a+8>>3],E=Z[a+16>>3],o[f+12>>2]=0,w[f+8>>2]=b*m(E),w[f+4>>2]=u*m(Q),w[f>>2]=l*m(B),a=t+G(c,o[n+4>>2])|0,B=Z[a>>3],Q=Z[a+8>>3],E=Z[a+16>>3],o[f+28>>2]=0,w[f+24>>2]=b*m(E),w[f+20>>2]=u*m(Q),w[f+16>>2]=l*m(B),n=t+G(c,o[n+8>>2])|0,B=Z[n>>3],Q=Z[n+8>>3],E=Z[n+16>>3],o[f+44>>2]=0,w[f+40>>2]=b*m(E),w[f+36>>2]=u*m(Q),w[f+32>>2]=l*m(B),Zn[o[o[r>>2]+8>>2]](r,f,W,e),(0|(e=e+1|0))>2];);break A;case 1:if(e=0,o[f+48>>2]<=0)break A;for(;t=o[f+76>>2],c=o[f+56>>2],n=o[f+72>>2]+G(o[f+68>>2],e)|0,a=t+G(c,h[n>>1])|0,B=Z[a>>3],Q=Z[a+8>>3],E=Z[a+16>>3],o[f+12>>2]=0,w[f+8>>2]=b*m(E),w[f+4>>2]=u*m(Q),w[f>>2]=l*m(B),a=t+G(c,h[n+2>>1])|0,B=Z[a>>3],Q=Z[a+8>>3],E=Z[a+16>>3],o[f+28>>2]=0,w[f+24>>2]=b*m(E),w[f+20>>2]=u*m(Q),w[f+16>>2]=l*m(B),n=t+G(c,h[n+4>>1])|0,B=Z[n>>3],Q=Z[n+8>>3],E=Z[n+16>>3],o[f+44>>2]=0,w[f+40>>2]=b*m(E),w[f+36>>2]=u*m(Q),w[f+32>>2]=l*m(B),Zn[o[o[r>>2]+8>>2]](r,f,W,e),(0|(e=e+1|0))>2];);break A;case 3:break r;default:break A}if(e=0,!(o[f+48>>2]<=0))for(;t=o[f+76>>2],c=o[f+56>>2],n=o[f+72>>2]+G(o[f+68>>2],e)|0,a=t+G(c,v[0|n])|0,B=Z[a>>3],Q=Z[a+8>>3],E=Z[a+16>>3],o[f+12>>2]=0,w[f+8>>2]=b*m(E),w[f+4>>2]=u*m(Q),w[f>>2]=l*m(B),a=t+G(c,v[n+1|0])|0,B=Z[a>>3],Q=Z[a+8>>3],E=Z[a+16>>3],o[f+28>>2]=0,w[f+24>>2]=b*m(E),w[f+20>>2]=u*m(Q),w[f+16>>2]=l*m(B),n=t+G(c,v[n+2|0])|0,B=Z[n>>3],Q=Z[n+8>>3],E=Z[n+16>>3],o[f+44>>2]=0,w[f+40>>2]=b*m(E),w[f+36>>2]=u*m(Q),w[f+32>>2]=l*m(B),Zn[o[o[r>>2]+8>>2]](r,f,W,e),(0|(e=e+1|0))>2];);}if(Zn[o[o[A>>2]+24>>2]](A,W),(0|i)==(0|(W=W+1|0)))break}S=f+80|0},$f,$f,dn,dn,Mi,dn,dn,function(A){return 1==o[48+(A|=0)>>2]|0},function(A,r,f){A|=0,f|=0;var e=0;e=o[4+(r|=0)>>2],o[A+52>>2]=o[r>>2],o[A+56>>2]=e,e=o[r+12>>2],o[A+60>>2]=o[r+8>>2],o[A+64>>2]=e,r=o[f+4>>2],o[A+68>>2]=o[f>>2],o[A+72>>2]=r,r=o[f+12>>2],o[A+76>>2]=o[f+8>>2],o[A+80>>2]=r,o[A+48>>2]=1},function(A,r,f){r|=0,f|=0;var e=0;e=o[56+(A|=0)>>2],o[r>>2]=o[A+52>>2],o[r+4>>2]=e,e=o[A+64>>2],o[r+8>>2]=o[A+60>>2],o[r+12>>2]=e,r=o[A+80>>2],o[f+8>>2]=o[A+76>>2],o[f+12>>2]=r,r=o[A+72>>2],o[f>>2]=o[A+68>>2],o[f+4>>2]=r},function(){return 28},function(A,r,f){r|=0,f|=0;var e,i=0,n=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0,B=0,m=0,Q=0,E=0,W=0,N=0,p=0;if(S=e=S-32|0,i=0|Zn[o[o[(A|=0)>>2]+28>>2]](A),o[r>>2]=0,o[r+20>>2]=i,i){if(Q=0|Zn[o[o[f>>2]+16>>2]](f,32,i),l=o[Q+8>>2],N=r,p=0|Zn[o[o[f>>2]+28>>2]](f,l),o[N>>2]=p,(0|(W=0|Zn[o[o[A>>2]+28>>2]](A)))>0)for(;;){Zn[o[o[A>>2]+16>>2]](A,e+28|0,e+4|0,e+16|0,e+8|0,e+24|0,e+20|0,e,e+12|0,m),i=o[e>>2],o[l+24>>2]=i,n=o[e+4>>2],o[l>>2]=0,o[l+4>>2]=0,o[l+28>>2]=n,o[l+8>>2]=0,o[l+12>>2]=0,o[l+16>>2]=0,o[l+20>>2]=0;A:{r:switch(o[e+12>>2]-2|0){case 0:if(!i)break A;if(n=0|Zn[o[o[f>>2]+16>>2]](f,4,G(i,3)),s=o[n+8>>2],N=l,p=0|Zn[o[o[f>>2]+28>>2]](f,s),o[N+8>>2]=p,o[e>>2]>0)for(i=0,d=o[e+24>>2];b=s+G(i,12)|0,c=d+G(o[e+20>>2],i)|0,o[b>>2]=o[c>>2],o[b+4>>2]=o[c+4>>2],o[b+8>>2]=o[c+8>>2],(0|(i=i+1|0))>2];);Zn[o[o[f>>2]+20>>2]](f,n,8582,1497453121,o[n+8>>2]);break A;case 1:if(!i)break A;if(b=0|Zn[o[o[f>>2]+16>>2]](f,8,i),s=o[b+8>>2],N=l,p=0|Zn[o[o[f>>2]+28>>2]](f,s),o[N+12>>2]=p,i=0,o[e>>2]>0)for(;n=s+(i<<3)|0,c=o[e+24>>2]+G(o[e+20>>2],i)|0,t[n>>1]=h[c>>1],t[n+2>>1]=h[c+2>>1],c=h[c+4>>1],t[n+6>>1]=0,t[n+4>>1]=c,(0|(i=i+1|0))>2];);Zn[o[o[f>>2]+20>>2]](f,b,8647,1497453121,o[b+8>>2]);break A;case 3:break r;default:break A}if(i){if(b=0|Zn[o[o[f>>2]+16>>2]](f,4,i),s=o[b+8>>2],N=l,p=0|Zn[o[o[f>>2]+28>>2]](f,s),o[N+16>>2]=p,i=0,o[e>>2]>0)for(;n=s+(i<<2)|0,c=o[e+24>>2]+G(o[e+20>>2],i)|0,a[0|n]=v[0|c],a[n+1|0]=v[c+1|0],c=v[c+2|0],a[n+3|0]=0,a[n+2|0]=c,(0|(i=i+1|0))>2];);Zn[o[o[f>>2]+20>>2]](f,b,8674,1497453121,o[b+8>>2])}}A:{r:switch(o[e+16>>2]){case 0:if(!(i=o[e+4>>2]))break A;if(B=0|Zn[o[o[f>>2]+16>>2]](f,16,i),b=o[B+8>>2],N=l,p=0|Zn[o[o[f>>2]+28>>2]](f,b),o[N>>2]=p,!((0|(c=o[e+4>>2]))<=0)){if(i=0,s=o[e+8>>2],d=o[e+28>>2],1!=(0|c))for(E=-2&c,n=0;k=b+(i<<4)|0,u=d+G(i,s)|0,w[k>>2]=w[u>>2],w[k+4>>2]=w[u+4>>2],w[k+8>>2]=w[u+8>>2],k=b+((u=1|i)<<4)|0,u=d+G(u,s)|0,w[k>>2]=w[u>>2],w[k+4>>2]=w[u+4>>2],w[k+8>>2]=w[u+8>>2],i=i+2|0,(0|E)!=(0|(n=n+2|0)););1&c&&(n=b+(i<<4)|0,i=d+G(i,s)|0,w[n>>2]=w[i>>2],w[n+4>>2]=w[i+4>>2],w[n+8>>2]=w[i+8>>2])}Zn[o[o[f>>2]+20>>2]](f,B,8881,1497453121,o[B+8>>2]);break A;case 1:break r;default:break A}if(i=o[e+4>>2]){if(B=0|Zn[o[o[f>>2]+16>>2]](f,32,i),b=o[B+8>>2],N=l,p=0|Zn[o[o[f>>2]+28>>2]](f,b),o[N+4>>2]=p,!((0|(c=o[e+4>>2]))<=0)){if(i=0,s=o[e+8>>2],d=o[e+28>>2],1!=(0|c))for(E=-2&c,n=0;k=b+(i<<5)|0,u=d+G(i,s)|0,Z[k>>3]=Z[u>>3],Z[k+8>>3]=Z[u+8>>3],Z[k+16>>3]=Z[u+16>>3],k=b+((u=1|i)<<5)|0,u=d+G(u,s)|0,Z[k>>3]=Z[u>>3],Z[k+8>>3]=Z[u+8>>3],Z[k+16>>3]=Z[u+16>>3],i=i+2|0,(0|E)!=(0|(n=n+2|0)););1&c&&(n=b+(i<<5)|0,i=d+G(i,s)|0,Z[n>>3]=Z[i>>3],Z[n+8>>3]=Z[i+8>>3],Z[n+16>>3]=Z[i+16>>3])}Zn[o[o[f>>2]+20>>2]](f,B,9120,1497453121,o[B+8>>2])}}if(Zn[o[o[A>>2]+24>>2]](A,m),l=l+32|0,(0|W)==(0|(m=m+1|0)))break}Zn[o[o[f>>2]+20>>2]](f,Q,8597,1497453121,o[Q+8>>2])}return o[r+24>>2]=0,w[r+4>>2]=w[A+4>>2],w[r+8>>2]=w[A+8>>2],w[r+12>>2]=w[A+12>>2],w[r+16>>2]=w[A+16>>2],S=e+32|0,9186},Bf,function(A){(A=Bf(A|=0))&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r){r|=0;var f=0,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0;A:{if(v[165+(A|=0)|0]){if(o[(s=A+92|0)>>2]>=(0|r))break A;if(r?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](r<<4,16)):n=0,!((0|(i=o[A+88>>2]))<=0)){if(1!=(0|i))for(u=-2&i;c=(t=e<<4)+n|0,f=t+o[A+96>>2]|0,l=o[f+4>>2],o[c>>2]=o[f>>2],o[c+4>>2]=l,l=o[f+12>>2],o[c+8>>2]=o[f+8>>2],o[c+12>>2]=l,t=(f=16|t)+n|0,f=f+o[A+96>>2]|0,c=o[f+4>>2],o[t>>2]=o[f>>2],o[t+4>>2]=c,c=o[f+12>>2],o[t+8>>2]=o[f+8>>2],o[t+12>>2]=c,e=e+2|0,(0|u)!=(0|(b=b+2|0)););1&i&&(i=(e<<=4)+n|0,e=e+o[A+96>>2]|0,f=o[e+4>>2],o[i>>2]=o[e>>2],o[i+4>>2]=f,f=o[e+12>>2],o[i+8>>2]=o[e+8>>2],o[i+12>>2]=f)}!(e=o[A+96>>2])||!e|!v[A+100|0]||(o[8489]=o[8489]+1,Zn[o[8291]](e)),o[A+96>>2]=n,a[A+100|0]=1}else{if(o[(s=A+112|0)>>2]>=(0|r))break A;r?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](r<<2,16)):n=0,i=o[A+116>>2];r:{f:{if((0|(t=o[A+108>>2]))>0){if(t>>>0>=4)for(c=-4&t;w[(f=e<<2)+n>>2]=w[f+i>>2],w[(u=4|f)+n>>2]=w[i+u>>2],w[(u=8|f)+n>>2]=w[i+u>>2],w[(f|=12)+n>>2]=w[f+i>>2],e=e+4|0,(0|c)!=(0|(b=b+4|0)););if(f=3&t)for(;w[(b=e<<2)+n>>2]=w[i+b>>2],e=e+1|0,(0|f)!=(0|(l=l+1|0)););if(v[A+120|0])break f;break r}if(!i|!v[A+120|0])break r}i&&(o[8489]=o[8489]+1,Zn[o[8291]](i))}o[A+116>>2]=n,a[A+120|0]=1}o[s>>2]=r}},function(A,r){r|=0;var f=0,e=0,i=0,n=0,c=0,b=0,u=0,l=0,s=0,k=0;A:{if(v[164+(A|=0)|0]){if(o[(s=A+132|0)>>2]>=(0|r))break A;r?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](r<<2,16)):i=0,e=o[A+136>>2];r:{f:{if((0|(n=o[A+128>>2]))>0){if(n>>>0>=4)for(k=-4&n;o[(f=c<<2)+i>>2]=o[e+f>>2],o[(b=4|f)+i>>2]=o[e+b>>2],o[(b=8|f)+i>>2]=o[e+b>>2],o[(f|=12)+i>>2]=o[e+f>>2],c=c+4|0,(0|k)!=(0|(u=u+4|0)););if(f=3&n)for(;o[(n=c<<2)+i>>2]=o[e+n>>2],c=c+1|0,(0|f)!=(0|(l=l+1|0)););if(v[A+140|0])break f;break r}if(!e|!v[A+140|0])break r}e&&(o[8489]=o[8489]+1,Zn[o[8291]](e))}o[A+136>>2]=i,a[A+140|0]=1}else{if(o[(s=A+152|0)>>2]>=(0|r))break A;r?(o[8488]=o[8488]+1,i=0|Zn[o[8290]](r<<1,16)):i=0,e=o[A+156>>2];r:{f:{if((0|(n=o[A+148>>2]))>0){if(n>>>0>=4)for(k=-4&n;t[(f=c<<1)+i>>1]=h[e+f>>1],t[(b=2|f)+i>>1]=h[e+b>>1],t[(b=4|f)+i>>1]=h[e+b>>1],t[(f|=6)+i>>1]=h[e+f>>1],c=c+4|0,(0|k)!=(0|(u=u+4|0)););if(f=3&n)for(;t[(n=c<<1)+i>>1]=h[e+n>>1],c=c+1|0,(0|f)!=(0|(l=l+1|0)););if(v[A+160|0])break f;break r}if(!e|!v[A+160|0])break r}e&&(o[8489]=o[8489]+1,Zn[o[8291]](e))}o[A+156>>2]=i,a[A+160|0]=1}o[s>>2]=r}},en,ai,Nr,function(){return 9302},function(A,r,f,e){var i;A|=0,r|=0,f|=0,e|=0,S=i=S-48|0,o[i+12>>2]=r,o[i+8>>2]=22384,r=o[f+12>>2],o[i+24>>2]=o[f+8>>2],o[i+28>>2]=r,r=o[f+4>>2],o[i+16>>2]=o[f>>2],o[i+20>>2]=r,r=o[e+12>>2],o[i+40>>2]=o[e+8>>2],o[i+44>>2]=r,r=o[e+4>>2],o[i+32>>2]=o[e>>2],o[i+36>>2]=r,A=o[A+56>>2],Zn[o[o[A>>2]+8>>2]](A,i+8|0,f,e),S=i+48|0},vn,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=m(0),n=m(0),a=0,t=m(0),c=m(0),b=0,u=0;c=(i=w[r>>2])<(n=w[r+16>>2])?i:n,t=w[r+32>>2],w[A+24>>2]<(t>c?c:t)||w[(t<((a=i>n)?i:n)?!a<<4:32)+r>>2]>2]||(c=(i=w[r+8>>2])<(n=w[(a=r+24|0)>>2])?i:n,t=w[(b=r+40|0)>>2],w[A+32>>2]<(t>c?c:t)||(u=a,w[(t<((a=i>n)?i:n)?a?r+8:u:b)>>2]>2]||(c=(i=w[r+4>>2])<(n=w[(a=r+20|0)>>2])?i:n,t=w[(b=r+36|0)>>2],w[A+28>>2]<(t>c?c:t)||(u=a,w[(t<((a=i>n)?i:n)?a?r+4:u:b)>>2]>2]||(A=o[A+4>>2],Zn[o[o[A>>2]+8>>2]](A,r,f,e))))))},vn,function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0);i=w[A+84>>2],n=w[A+96>>2],a=w[A+88>>2],t=w[A+92>>2],i<(e=m(m(n*w[r+8>>2])+m(m(a*w[r>>2])+m(t*w[r+4>>2]))))&&(w[A+84>>2]=e,f=o[r+12>>2],o[A+12>>2]=o[r+8>>2],o[A+16>>2]=f,f=o[r+4>>2],o[A+4>>2]=o[r>>2],o[A+8>>2]=f,i=e),(e=m(m(n*w[r+24>>2])+m(m(a*w[r+16>>2])+m(t*w[r+20>>2]))))>i?(w[A+84>>2]=e,f=o[r+28>>2],o[A+12>>2]=o[r+24>>2],o[A+16>>2]=f,f=o[r+20>>2],o[A+4>>2]=o[r+16>>2],o[A+8>>2]=f):e=i,e<(i=m(m(n*w[r+40>>2])+m(m(a*w[r+32>>2])+m(t*w[r+36>>2]))))&&(w[A+84>>2]=i,f=o[r+44>>2],o[A+12>>2]=o[r+40>>2],o[A+16>>2]=f,f=o[r+36>>2],o[A+4>>2]=o[r+32>>2],o[A+8>>2]=f)},en,vn,HA,vn,zi,zi,function(A,r,f,e){A|=0,r|=0,f|=0,e=m(e);var i=0;w[A+36>>2]>e&&(a[A+40|0]=1,i=o[r+4>>2],o[A+4>>2]=o[r>>2],o[A+8>>2]=i,i=o[r+12>>2],o[A+12>>2]=o[r+8>>2],o[A+16>>2]=i,r=o[f+4>>2],o[A+20>>2]=o[f>>2],o[A+24>>2]=r,r=o[f+12>>2],o[A+28>>2]=o[f+8>>2],o[A+32>>2]=r,w[A+36>>2]=e)},vn,IA,function(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=m(0),a=m(0),t=0,c=m(0),b=m(0),u=m(0),l=m(0);S=e=S-32|0,t=o[f+12>>2],o[e+24>>2]=o[f+8>>2],o[e+28>>2]=t,t=o[f+4>>2],o[e+16>>2]=o[f>>2],o[e+20>>2]=t,i=w[e+24>>2],n=w[e+16>>2],a=w[e+20>>2],m(m(i*i)+m(m(n*n)+m(a*a)))>2]=0,a=m(-1),n=m(-1),i=m(-1)),c=i,i=m(m(1)/m(N(m(m(i*i)+m(m(n*n)+m(a*a)))))),w[e+24>>2]=c*i,w[e+20>>2]=a*i,w[e+16>>2]=n*i,NA(e,r,e+16|0);A:{switch(o[r+4>>2]){case 8:i=m(w[r+36>>2]*w[r+20>>2]);break A;case 0:case 1:case 4:case 5:case 10:case 11:case 13:i=w[r+52>>2];break A}i=m(Zn[o[o[r>>2]+48>>2]](r))}n=w[e>>2],a=w[e+16>>2],c=w[e+4>>2],b=w[e+20>>2],u=w[e+8>>2],l=w[e+24>>2],o[A+12>>2]=0,w[A+8>>2]=u+m(i*l),w[A+4>>2]=c+m(i*b),w[A>>2]=n+m(i*a),S=e+32|0},NA,en,vn,function(A,r,f,e,i,n,t,c,b,u){A|=0,r|=0,f|=0,e|=0,i|=0,n|=0,t|=0,c|=0,b|=0,u|=0;var l,s,k=m(0),d=m(0),h=0,Z=0,Q=0,E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=0,X=m(0),D=0,C=0,J=0,x=0,y=m(0),M=0,H=0,I=0,T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=m(0),$=m(0),K=m(0),q=0,_=m(0);S=A=S-80|0,k=w[i+52>>2],d=w[n+52>>2],E=w[i+56>>2],p=w[n+56>>2],W=w[i+48>>2],F=w[n+48>>2],o[A+76>>2]=0,w[A+64>>2]=F-W,w[A+72>>2]=p-E,w[A+68>>2]=d-k,S=Q=S-19040|0,rr(f,l=i,e,n,s=A+8|0,i=Q+18912|0,1),o[(r=Q+18668|0)>>2]=0,o[r+4>>2]=0,o[Q+18660>>2]=0,o[Q+18664>>2]=0,o[Q+18896>>2]=0,o[Q+18900>>2]=0,o[Q+18908>>2]=2,o[Q+18676>>2]=0,k=w[(r=A- -64|0)>>2],d=w[r+4>>2],E=w[r+8>>2],o[Q+32>>2]=0,w[Q+28>>2]=-E,w[Q+24>>2]=-d,w[Q+20>>2]=-k;A:{r:{f:switch(bA(Q+18532|0,i,Q+20|0)-1|0){case 0:for(o[Q+68>>2]=0,o[Q+72>>2]=0,o[Q+76>>2]=0,o[Q+18512>>2]=0,o[Q+20>>2]=9,o[Q+18516>>2]=0,o[Q+18520>>2]=0,o[Q+60>>2]=0,o[Q+64>>2]=0,i=0;h=G(255-i|0,56),o[4204+(u=h+(Q+20|0)|0)>>2]=D,o[u+4200>>2]=0,u=u+4156|0,D&&(o[D+44>>2]=u),o[Q+18524>>2]=u,D=(Z=Q+4176|0)+G(254-i|0,56)|0,o[D+44>>2]=0,o[D+48>>2]=u,o[44+(h+Z|0)>>2]=D,o[Q+18524>>2]=D,256!=(0|(i=i+2|0)););o[Q+18528>>2]=256,k=w[r>>2],d=w[r+4>>2],E=w[r+8>>2],D=0,o[Q+16>>2]=0,w[Q+12>>2]=-E,w[Q+8>>2]=-d,w[Q+4>>2]=-k,h=Q+20|0,S=J=S-32|0;e:{if(Z=o[372+(q=Q+18532|0)>>2],!(B[Z+32>>2]<2)&&dA(q)){if(r=o[h+18496>>2]){for(u=o[h+18508>>2],i=o[h+18500>>2];(g=o[r+48>>2])&&(o[g+44>>2]=o[r+44>>2]),(g=o[r+44>>2])&&(o[g+48>>2]=o[r+48>>2]),o[h+18496>>2]==(0|r)&&(o[h+18496>>2]=o[r+48>>2]),o[r+44>>2]=0,o[r+48>>2]=o[h+18504>>2],(g=o[h+18504>>2])&&(o[g+44>>2]=r),i=i-1|0,o[h+18504>>2]=r,u=u+1|0,r=o[h+18496>>2];);o[h+18508>>2]=u,o[h+18500>>2]=i}if(o[h+18492>>2]=0,o[h>>2]=0,u=o[Z>>2],i=o[Z+12>>2],k=w[i+16>>2],p=m(w[u+16>>2]-k),r=o[Z+4>>2],d=w[i+20>>2],W=m(w[r+20>>2]-d),g=o[Z+8>>2],E=w[i+24>>2],F=m(w[g+24>>2]-E),R=m(w[u+20>>2]-d),Y=m(w[r+24>>2]-E),V=m(w[g+16>>2]-k),E=m(w[u+24>>2]-E),k=m(w[r+16>>2]-k),d=m(w[g+20>>2]-d),m(m(m(m(p*W)*F)+m(m(m(m(m(R*Y)*V)+m(m(E*k)*d))-m(m(Y*p)*d))-m(m(k*R)*F)))-m(m(W*E)*V))>2]=u,o[Z>>2]=r,L=o[Z+16>>2],o[Z+16>>2]=o[Z+20>>2],o[Z+20>>2]=L,i=u):(i=r,r=u),i=lr(h,r,i,g,1),g=lr(h,o[Z+4>>2],o[Z>>2],o[Z+12>>2],1),C=lr(h,o[Z+8>>2],o[Z+4>>2],o[Z+12>>2],1),x=lr(h,o[Z>>2],o[Z+8>>2],o[Z+12>>2],1),4==o[h+18500>>2]){if(u=o[h+18496>>2],r=o[u+48>>2])for(k=w[u+16>>2],k=m(k*k);d=w[r+16>>2],u=(Z=(d=m(d*d))>2];);for(M=o[u+28>>2],H=o[u+24>>2],I=o[u+20>>2],k=w[u+16>>2],Y=w[u+12>>2],p=w[u+8>>2],d=w[u+4>>2],E=w[u>>2],o[i+32>>2]=g,a[i+52|0]=0,o[g+32>>2]=i,a[g+52|0]=0,o[i+36>>2]=C,a[i+53|0]=0,o[C+32>>2]=i,a[C+52|0]=1,o[i+40>>2]=x,a[i+54|0]=0,o[x+32>>2]=i,a[x+52|0]=2,o[g+36>>2]=x,a[g+53|0]=2,o[x+40>>2]=g,a[x+54|0]=1,o[g+40>>2]=C,a[g+54|0]=1,o[C+36>>2]=g,a[C+53|0]=2,a[C+54|0]=1,o[C+40>>2]=x,o[x+36>>2]=C,a[x+53|0]=2,o[h>>2]=0,i=0;;){i:{n:{if(!((Z=o[h+18492>>2])>>>0<=127)){o[h>>2]=6;break i}if(r=0,o[J+12>>2]=0,o[J+4>>2]=0,o[J+8>>2]=0,o[h+18492>>2]=Z+1,i=i+1|0,a[u+55|0]=i,W=w[u+8>>2],F=w[u>>2],R=w[u+4>>2],o[72+(Z=h+(Z<<5)|0)>>2]=0,y=W,W=m(m(1)/m(N(m(m(W*W)+m(m(F*F)+m(R*R)))))),w[Z+68>>2]=y*W,w[Z- -64>>2]=R*W,w[(g=Z+60|0)>>2]=F*W,Yr(J+16|0,q,g),C=o[J+28>>2],o[Z+84>>2]=o[J+24>>2],o[Z+88>>2]=C,C=o[J+20>>2],o[Z+76>>2]=o[J+16>>2],o[Z+80>>2]=C,!(m(m(m(w[u+8>>2]*w[Z+84>>2])+m(m(w[u>>2]*w[Z+76>>2])+m(w[u+4>>2]*w[Z+80>>2])))-w[u+16>>2])>m(9999999747378752e-20))){o[h>>2]=7;break i}for(;;){if(!(Z=Tr(h,i,g,o[32+((r<<2)+u|0)>>2],v[52+(r+u|0)|0],J+4|0)))break n;if(C=r>>>0<2,r=r+1|0,!C)break}}if(Z&B[J+12>>2]>2){if(r=o[J+4>>2],Z=o[J+8>>2],o[r+36>>2]=Z,a[r+53|0]=2,o[Z+40>>2]=r,a[Z+54|0]=1,(r=o[u+48>>2])&&(o[r+44>>2]=o[u+44>>2]),(r=o[u+44>>2])&&(o[r+48>>2]=o[u+48>>2]),o[h+18496>>2]==(0|u)&&(o[h+18496>>2]=o[u+48>>2]),o[h+18500>>2]=o[h+18500>>2]-1,o[u+44>>2]=0,o[u+48>>2]=o[h+18504>>2],(r=o[h+18504>>2])&&(o[r+44>>2]=u),o[h+18504>>2]=u,o[h+18508>>2]=o[h+18508>>2]+1,u=o[h+18496>>2],r=o[u+48>>2])for(k=w[u+16>>2],k=m(k*k);d=w[r+16>>2],u=(Z=(d=m(d*d))>2];);if(M=o[u+28>>2],H=o[u+24>>2],I=o[u+20>>2],k=w[u+16>>2],Y=w[u+12>>2],p=w[u+8>>2],d=w[u+4>>2],E=w[u>>2],255!=(0|i))continue}else o[h>>2]=4}break}w[h+56>>2]=k,w[h+40>>2]=E,o[h+4>>2]=I,w[h+52>>2]=Y,w[h+48>>2]=p,w[h+44>>2]=d,o[h+36>>2]=3,o[h+12>>2]=M,o[h+8>>2]=H,E=m(E*k),W=m(w[H+16>>2]-E),d=m(d*k),F=m(w[M+20>>2]-d),R=m(w[M+16>>2]-E),Y=m(w[H+20>>2]-d),V=m(m(W*F)-m(R*Y)),k=m(p*k),p=m(w[M+24>>2]-k),y=F,F=m(w[H+24>>2]-k),Y=m(m(Y*p)-m(y*F)),p=m(m(F*R)-m(p*W)),p=m(N(m(m(V*V)+m(m(Y*Y)+m(p*p))))),w[h+20>>2]=p,W=m(w[M+16>>2]-E),F=m(w[I+20>>2]-d),R=m(w[I+16>>2]-E),Y=m(w[M+20>>2]-d),V=m(m(W*F)-m(R*Y)),X=m(V*V),y=Y,Y=m(w[I+24>>2]-k),V=F,F=m(w[M+24>>2]-k),V=m(m(y*Y)-m(V*F)),W=m(m(F*R)-m(Y*W)),W=m(N(m(X+m(m(V*V)+m(W*W))))),w[h+24>>2]=W,F=m(w[I+16>>2]-E),R=m(w[H+20>>2]-d),E=m(w[H+16>>2]-E),d=m(w[I+20>>2]-d),Y=m(m(F*R)-m(E*d)),y=d,d=m(w[H+24>>2]-k),k=m(w[I+24>>2]-k),R=m(m(y*d)-m(R*k)),k=m(m(k*E)-m(d*F)),d=m(N(m(m(Y*Y)+m(m(R*R)+m(k*k))))),k=m(d+m(p+W)),w[h+28>>2]=d/k,w[h+24>>2]=W/k,w[h+20>>2]=p/k,r=o[h>>2];break e}}r=8,o[h>>2]=8,k=m(0),E=m(1),d=m(0),p=w[Q+12>>2],W=w[Q+4>>2],F=w[Q+8>>2],(R=m(N(m(m(p*p)+m(m(W*W)+m(F*F))))))>m(0)&&(E=m(m(1)/R),d=m(E*m(-p)),k=m(E*m(-F)),E=m(E*m(-W))),o[h+52>>2]=0,o[h+56>>2]=0,w[h+48>>2]=d,w[h+44>>2]=k,w[h+40>>2]=E,o[h+36>>2]=1,i=o[Z>>2],o[h+20>>2]=1065353216,o[h+4>>2]=i}if(S=J+32|0,9==(0|r))break r;if(o[Q+56>>2])for(u=Q+24|0,E=m(0),d=m(0),k=m(0);r=o[Q+19032>>2],h=o[Q+19036>>2],i=o[Q+18912>>2]+(h>>1)|0,Z=D<<2,Zn[0|(1&h?o[r+o[i>>2]>>2]:r)](Q+4|0,i,o[Z+u>>2]),p=w[40+(Q+Z|0)>>2],E=m(E+m(p*w[Q+12>>2])),d=m(d+m(p*w[Q+8>>2])),k=m(k+m(w[Q+4>>2]*p)),(D=D+1|0)>>>0>2];);else k=m(0),d=m(0),E=m(0);D=1,o[s>>2]=1,p=w[l+52>>2],W=w[l+24>>2],F=w[l+20>>2],R=w[l+56>>2],Y=w[l+40>>2],V=w[l+36>>2],X=w[l+48>>2],T=w[l+8>>2],U=w[l>>2],j=w[l+4>>2],z=w[l+16>>2],P=w[l+32>>2],o[s+16>>2]=0,w[s+12>>2]=R+m(m(E*Y)+m(m(k*P)+m(d*V))),w[s+8>>2]=p+m(m(E*W)+m(m(k*z)+m(d*F))),w[s+4>>2]=X+m(m(E*T)+m(m(k*U)+m(d*j))),Y=w[l+52>>2],V=w[l+20>>2],X=w[l+24>>2],T=w[l+56>>2],U=w[l+36>>2],j=w[l+40>>2],z=w[l+48>>2],P=w[l+8>>2],O=w[l>>2],$=w[l+4>>2],K=w[l+16>>2],_=w[l+32>>2],W=w[Q- -64>>2],F=w[Q+68>>2],R=w[Q+60>>2],p=w[Q+76>>2],o[s+48>>2]=0,o[s+32>>2]=0,w[s+52>>2]=-p,w[s+44>>2]=-F,w[s+40>>2]=-W,w[s+36>>2]=-R,E=m(E-m(p*F)),k=m(k-m(R*p)),d=m(d-m(p*W)),w[s+28>>2]=T+m(m(j*E)+m(m(_*k)+m(U*d))),w[s+24>>2]=Y+m(m(E*X)+m(m(k*K)+m(d*V))),w[s+20>>2]=z+m(m(E*P)+m(m(k*O)+m(d*$)));break A;case 1:break f;default:break A}o[s>>2]=2;break A}o[s>>2]=3}S=Q+19040|0;A:{if(!D){if(k=m(0),d=m(0),E=m(0),p=m(0),W=m(0),F=m(0),S=i=S-544|0,rr(f,l,e,n,A+8|0,r=i+384|0,0),o[i+140>>2]=0,o[i+144>>2]=0,o[i+132>>2]=0,o[i+136>>2]=0,o[i+368>>2]=0,o[i+372>>2]=0,o[i+380>>2]=2,o[i+148>>2]=0,f=bA(i+4|0,r,A- -64|0))o[A+8>>2]=1==(0|f)?1:2;else{if(e=o[i+376>>2],o[e+32>>2])for(n=0;R=w[16+(h=e+(u=n<<2)|0)>>2],r=o[i+504>>2],Z=i+528|0,Q=o[i+508>>2],e=o[i+384>>2]+(Q>>1)|0,Zn[0|(1&Q?o[r+o[e>>2]>>2]:r)](Z,e,o[h>>2]),r=o[u+o[i+376>>2]>>2],Y=m(-w[r+8>>2]),V=m(-w[r+4>>2]),X=m(-w[r>>2]),r=o[i+504>>2],e=o[i+508>>2],u=o[i+388>>2]+(e>>1)|0,r=1&e?o[r+o[u>>2]>>2]:r,k=m(k+m(R*w[i+536>>2])),E=m(E+m(R*w[i+532>>2])),d=m(d+m(R*w[i+528>>2])),o[i+524>>2]=0,w[i+520>>2]=m(w[i+432>>2]*Y)+m(m(w[i+424>>2]*X)+m(w[i+428>>2]*V)),w[i+516>>2]=m(w[i+416>>2]*Y)+m(m(w[i+408>>2]*X)+m(w[i+412>>2]*V)),w[i+512>>2]=m(w[i+400>>2]*Y)+m(m(w[i+392>>2]*X)+m(w[i+396>>2]*V)),Zn[0|r](Z,u,i+512|0),Y=w[i+536>>2],V=w[i+528>>2],X=w[i+532>>2],F=m(F+m(R*m(m(m(Y*w[i+480>>2])+m(m(V*w[i+472>>2])+m(X*w[i+476>>2])))+w[i+496>>2]))),W=m(W+m(R*m(m(m(Y*w[i+464>>2])+m(m(V*w[i+456>>2])+m(X*w[i+460>>2])))+w[i+492>>2]))),p=m(p+m(R*m(m(m(Y*w[i+448>>2])+m(m(V*w[i+440>>2])+m(X*w[i+444>>2])))+w[i+488>>2]))),n=n+1|0,e=o[i+376>>2],n>>>0>2];);R=w[l+52>>2],Y=w[l+24>>2],V=w[l+20>>2],X=w[l+56>>2],T=w[l+40>>2],U=w[l+36>>2],j=w[l+16>>2],z=w[l+32>>2],P=w[l+48>>2],O=w[l+8>>2],$=w[l>>2],K=w[l+4>>2],o[A+24>>2]=0,w[A+12>>2]=P+m(m(k*O)+m(m(d*$)+m(E*K))),w[A+20>>2]=X+m(m(k*T)+m(m(d*z)+m(E*U))),w[A+16>>2]=R+m(m(k*Y)+m(m(d*j)+m(E*V))),Y=w[l+52>>2],V=w[l+24>>2],X=w[l+20>>2],T=w[l+56>>2],U=w[l+40>>2],j=w[l+36>>2],z=w[l+48>>2],P=w[l+8>>2],O=w[l>>2],$=w[l+4>>2],K=w[l+16>>2],_=w[l+32>>2],k=m(k-F),d=m(d-p),E=m(E-W),R=m(N(m(m(k*k)+m(m(d*d)+m(E*E))))),w[A+60>>2]=R,o[A+56>>2]=0,o[A+40>>2]=0,y=k,k=R>m(9999999747378752e-20)?m(m(1)/R):m(1),w[A+52>>2]=y*k,w[A+48>>2]=E*k,w[A+44>>2]=d*k,w[A+36>>2]=T+m(m(F*U)+m(m(p*_)+m(W*j))),w[A+32>>2]=Y+m(m(F*V)+m(m(p*K)+m(W*X))),w[A+28>>2]=z+m(m(F*P)+m(m(p*O)+m(W*$)))}if(S=i+544|0,f)break A}r=o[A+16>>2],o[c>>2]=o[A+12>>2],o[c+4>>2]=r,r=o[A+24>>2],o[c+8>>2]=o[A+20>>2],o[c+12>>2]=r,r=o[A+40>>2],o[b+8>>2]=o[A+36>>2],o[b+12>>2]=r,r=o[A+32>>2],o[b>>2]=o[A+28>>2],o[b+4>>2]=r,r=o[A+56>>2],o[t+8>>2]=o[A+52>>2],o[t+12>>2]=r,r=o[A+48>>2],o[t>>2]=o[A+44>>2],o[t+4>>2]=r}return S=A+80|0,0|D},vn,eA,vn,function(A,r,f,e,i,n,t,c,b,u){A|=0,r|=0,f|=0,e|=0,i|=0,n|=0,t|=0,c|=0,b|=0,u|=0;var l=m(0),s=m(0),k=m(0),d=m(0),h=0,B=m(0),Z=0,G=m(0),Q=m(0),E=m(0),W=0,N=0,p=0,F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=0,D=m(0),C=0,J=0;for(S=A=S-4240|0,J=o[f+4>>2]-17>>>0<=1?o[e+4>>2]-17>>>0<2:J;JA(),l=w[34152+(Z=p<<4)>>2],d=w[Z+34144>>2],s=w[Z+34148>>2],G=w[i+32>>2],Q=w[i>>2],E=w[i+16>>2],B=w[i+36>>2],F=w[i+4>>2],R=w[i+20>>2],Y=w[i+40>>2],k=w[i+8>>2],V=w[i+24>>2],o[12+(W=Z+(A+1264|0)|0)>>2]=0,g=k,k=m(-d),w[W+8>>2]=m(m(g*k)-m(V*s))-m(Y*l),w[W+4>>2]=m(m(F*k)-m(R*s))-m(B*l),w[W>>2]=m(m(Q*k)-m(E*s))-m(G*l),k=w[n+32>>2],G=w[n>>2],Q=w[n+16>>2],E=w[n+36>>2],B=w[n+4>>2],F=w[n+20>>2],R=w[n+40>>2],Y=w[n+8>>2],V=w[n+24>>2],o[12+(Z=Z+(A+272|0)|0)>>2]=0,w[Z+8>>2]=m(R*l)+m(m(Y*d)+m(s*V)),w[Z+4>>2]=m(E*l)+m(m(B*d)+m(s*F)),w[Z>>2]=m(k*l)+m(m(G*d)+m(s*Q)),42!=(0|(p=p+1|0)););if(Z=42,(0|(C=0|Zn[o[o[f>>2]+84>>2]](f)))>0)for(W=A+3256|0,p=0;Zn[o[o[f>>2]+88>>2]](f,p,A+3248|0),k=w[i+8>>2],G=w[i>>2],Q=w[i+4>>2],E=w[i+24>>2],B=w[i+16>>2],F=w[i+20>>2],l=w[W>>2],s=w[A+3248>>2],d=w[A+3252>>2],w[W>>2]=m(w[i+40>>2]*l)+m(m(w[i+32>>2]*s)+m(d*w[i+36>>2])),o[A+3260>>2]=0,w[A+3252>>2]=m(E*l)+m(m(B*s)+m(d*F)),w[A+3248>>2]=m(k*l)+m(m(G*s)+m(Q*d)),JA(),X=o[W+4>>2],o[(N=34152+(h=Z<<4)|0)>>2]=o[W>>2],o[N+4>>2]=X,X=o[A+3252>>2],o[(N=h+34144|0)>>2]=o[A+3248>>2],o[N+4>>2]=X,G=w[i+40>>2],Q=w[i+8>>2],E=w[i+24>>2],B=w[i+36>>2],F=w[i+4>>2],R=w[i+20>>2],s=w[i+32>>2],l=w[i>>2],Y=w[i+16>>2],o[12+(N=h+(A+1264|0)|0)>>2]=0,d=w[A+3248>>2],k=m(-d),D=m(l*k),l=w[A+3252>>2],g=s,s=w[W>>2],w[N>>2]=m(D-m(Y*l))-m(g*s),w[N+4>>2]=m(m(F*k)-m(R*l))-m(B*s),w[N+8>>2]=m(m(Q*k)-m(E*l))-m(G*s),k=w[n+32>>2],G=w[n>>2],Q=w[n+16>>2],E=w[n+36>>2],B=w[n+4>>2],F=w[n+20>>2],R=w[n+40>>2],Y=w[n+8>>2],V=w[n+24>>2],o[12+(h=h+(A+272|0)|0)>>2]=0,w[h+8>>2]=m(R*s)+m(m(Y*d)+m(l*V)),w[h+4>>2]=m(E*s)+m(m(B*d)+m(l*F)),w[h>>2]=m(k*s)+m(m(G*d)+m(l*Q)),Z=Z+1|0,(0|C)!=(0|(p=p+1|0)););if((0|(C=0|Zn[o[o[e>>2]+84>>2]](e)))>0)for(W=A+3256|0,p=0;Zn[o[o[e>>2]+88>>2]](e,p,A+3248|0),k=w[n+8>>2],G=w[n>>2],Q=w[n+4>>2],E=w[n+24>>2],B=w[n+16>>2],F=w[n+20>>2],l=w[W>>2],s=w[A+3248>>2],d=w[A+3252>>2],w[W>>2]=m(w[n+40>>2]*l)+m(m(w[n+32>>2]*s)+m(d*w[n+36>>2])),o[A+3260>>2]=0,w[A+3252>>2]=m(E*l)+m(m(B*s)+m(d*F)),w[A+3248>>2]=m(k*l)+m(m(G*s)+m(Q*d)),JA(),X=o[W+4>>2],o[(N=34152+(h=Z<<4)|0)>>2]=o[W>>2],o[N+4>>2]=X,X=o[A+3252>>2],o[(N=h+34144|0)>>2]=o[A+3248>>2],o[N+4>>2]=X,G=w[i+40>>2],Q=w[i+8>>2],E=w[i+24>>2],B=w[i+36>>2],F=w[i+4>>2],R=w[i+20>>2],s=w[i+32>>2],l=w[i>>2],Y=w[i+16>>2],o[12+(N=h+(A+1264|0)|0)>>2]=0,d=w[A+3248>>2],k=m(-d),D=m(l*k),l=w[A+3252>>2],g=s,s=w[W>>2],w[N>>2]=m(D-m(Y*l))-m(g*s),w[N+4>>2]=m(m(F*k)-m(R*l))-m(B*s),w[N+8>>2]=m(m(Q*k)-m(E*l))-m(G*s),k=w[n+32>>2],G=w[n>>2],Q=w[n+16>>2],E=w[n+36>>2],B=w[n+4>>2],F=w[n+20>>2],R=w[n+40>>2],Y=w[n+8>>2],V=w[n+24>>2],o[12+(h=h+(A+272|0)|0)>>2]=0,w[h+8>>2]=m(R*s)+m(m(Y*d)+m(l*V)),w[h+4>>2]=m(E*s)+m(m(B*d)+m(l*F)),w[h>>2]=m(k*s)+m(m(G*d)+m(l*Q)),Z=Z+1|0,(0|C)!=(0|(p=p+1|0)););if(Zn[o[o[f>>2]+76>>2]](f,A+1264|0,A+3248|0,Z),Zn[o[o[e>>2]+76>>2]](e,A+272|0,A+2256|0,Z),(0|Z)<=0)k=m(0xde0b6b000000000),l=m(0),s=m(0),d=m(0),F=m(0);else for(p=0,k=m(0xde0b6b000000000),F=m(0),d=m(0),s=m(0),l=m(0);JA(),W=p<<4,G=J?m(0):w[W+34152>>2],Q=w[W+34144>>2],E=w[W+34148>>2],+m(m(G*G)+m(m(Q*Q)+m(E*E)))>.01&&(B=w[8+(h=W+(A+2256|0)|0)>>2],R=w[h>>2],Y=w[h+4>>2],V=w[8+(h=W+(A+3248|0)|0)>>2],D=w[h>>2],g=w[h+4>>2],(B=m(m(G*m(J?0:m(m(m(B*w[n+40>>2])+m(m(R*w[n+32>>2])+m(Y*w[n+36>>2])))+w[n+56>>2])-m(m(m(V*w[i+40>>2])+m(m(D*w[i+32>>2])+m(g*w[i+36>>2])))+w[i+56>>2])))+m(m(Q*m(m(m(m(B*w[n+8>>2])+m(m(R*w[n>>2])+m(Y*w[n+4>>2])))+w[n+48>>2])-m(m(m(V*w[i+8>>2])+m(m(D*w[i>>2])+m(g*w[i+4>>2])))+w[i+48>>2])))+m(E*m(m(m(m(B*w[n+24>>2])+m(m(R*w[n+16>>2])+m(Y*w[n+20>>2])))+w[n+52>>2])-m(m(m(V*w[i+24>>2])+m(m(D*w[i+16>>2])+m(g*w[i+20>>2])))+w[i+52>>2]))))))>2],l=Q,s=E,d=G,k=B)),(0|(p=p+1|0))!=(0|Z););return oe(f),oe(e),Z=0,k>2],B=w[i+56>>2],R=w[i+48>>2],e=o[i+12>>2],o[(f=A- -64|0)>>2]=o[i+8>>2],o[f+4>>2]=e,f=o[i+4>>2],o[A+56>>2]=o[i>>2],o[A+60>>2]=f,f=o[i+28>>2],o[A+80>>2]=o[i+24>>2],o[A+84>>2]=f,f=o[i+20>>2],o[A+72>>2]=o[i+16>>2],o[A+76>>2]=f,f=o[i+40>>2],e=o[i+44>>2],p=o[i+32>>2],i=o[i+36>>2],o[A+116>>2]=0,o[A+96>>2]=f,o[A+100>>2]=e,k=m(k+m(m(G+Q)+m(.5))),w[A+112>>2]=B+m(d*k),w[A+108>>2]=E+m(s*k),o[A+88>>2]=p,o[A+92>>2]=i,w[A+104>>2]=R+m(l*k),f=o[n+12>>2],o[A+128>>2]=o[n+8>>2],o[A+132>>2]=f,f=o[n+4>>2],o[A+120>>2]=o[n>>2],o[A+124>>2]=f,f=o[n+28>>2],o[A+144>>2]=o[n+24>>2],o[A+148>>2]=f,f=o[n+20>>2],o[A+136>>2]=o[n+16>>2],o[A+140>>2]=f,f=o[n+44>>2],o[A+160>>2]=o[n+40>>2],o[A+164>>2]=f,f=o[n+36>>2],o[A+152>>2]=o[n+32>>2],o[A+156>>2]=f,f=o[n+60>>2],o[A+176>>2]=o[n+56>>2],o[A+180>>2]=f,f=o[n+52>>2],o[A+168>>2]=o[n+48>>2],o[A+172>>2]=f,o[A+184>>2]=1566444395,a[A+52|0]=0,o[A+12>>2]=23028,o[r+16>>2]=0,w[r+12>>2]=-d,w[r+8>>2]=-s,w[r+4>>2]=-l,eA(r,A+56|0,A+12|0,u,0),(r=v[A+52|0])&&(G=w[A+36>>2],Q=w[A+40>>2],E=w[A+32>>2],B=w[A+48>>2],o[c+12>>2]=0,k=m(k-B),w[c+8>>2]=Q-m(d*k),w[c+4>>2]=G-m(s*k),w[c>>2]=E-m(l*k),f=o[A+44>>2],o[b+8>>2]=o[A+40>>2],o[b+12>>2]=f,f=o[A+36>>2],o[b>>2]=o[A+32>>2],o[b+4>>2]=f,w[t+12>>2]=F,w[t+8>>2]=d,w[t+4>>2]=s,w[t>>2]=l),Z=!!(0|r)),S=A+4240|0,0|Z},vn,zi,zi,function(A,r,f,e){A|=0,r|=0,f|=0,e=m(e);var i=0;i=o[r+4>>2],o[A+4>>2]=o[r>>2],o[A+8>>2]=i,i=o[r+12>>2],o[A+12>>2]=o[r+8>>2],o[A+16>>2]=i,r=o[f+4>>2],o[A+20>>2]=o[f>>2],o[A+24>>2]=r,r=o[f+12>>2],o[A+28>>2]=o[f+8>>2],o[A+32>>2]=r,a[A+40|0]=1,w[A+36>>2]=e},hn,hn,vn,ZA,Ei,_e,Bn,function(){},function(A,r){r|=0;var f=0,e=0;fA(A|=0,o[A+28>>2]+4|0,o[A+32>>2]+4|0),o[r>>2]=0,o[r+4>>2]=0,e=2;A:{r:{switch(0|(f=o[A+956>>2])){case 0:break A;case 4:break r}e=1}o[r>>2]=e,f=e}switch(v[A+792|0]&&(f=f+1|0,o[r>>2]=f),v[A+798|0]&&(f=f+1|0,o[r>>2]=f),e=2,o[A+960>>2]){default:e=1;case 4:f=f+e|0,o[r>>2]=f;case 0:}switch(v[A+793|0]&&(f=f+1|0,o[r>>2]=f),v[A+799|0]&&(f=f+1|0,o[r>>2]=f),e=2,o[A+964>>2]){default:e=1;case 4:f=f+e|0,o[r>>2]=f;case 0:}switch(v[A+794|0]&&(f=f+1|0,o[r>>2]=f),v[A+800|0]&&(o[r>>2]=f+1),Rr(A,0),f=2,o[A+1052>>2]){default:f=1;case 4:o[r>>2]=o[r>>2]+f;case 0:}switch(v[A+996|0]&&(o[r>>2]=o[r>>2]+1),v[A+1016|0]&&(o[r>>2]=o[r>>2]+1),Rr(A,1),f=2,o[A+1140>>2]){default:f=1;case 4:o[r>>2]=o[r>>2]+f;case 0:}switch(v[A+1084|0]&&(o[r>>2]=o[r>>2]+1),v[A+1104|0]&&(o[r>>2]=o[r>>2]+1),f=2,Rr(A,2),o[A+1228>>2]){default:f=1;case 4:o[r>>2]=o[r>>2]+f;case 0:}v[A+1172|0]&&(o[r>>2]=o[r>>2]+1),v[A+1192|0]&&(o[r>>2]=o[r>>2]+1)},function(A,r){A|=0,r|=0;var f,e,i,n,t,c,b,u,l,s,k,d,h,B,Z,Q,E,W,N,p,F,R,Y,V,g,X,D,C=0,J=0,x=0,y=0,M=0,H=0,I=0,T=m(0),U=0;for(e=r,i=(C=o[A+28>>2])+4|0,n=(r=o[A+32>>2])+4|0,t=C+372|0,c=r+372|0,b=C+388|0,u=r+388|0,S=M=S-16|0,(A=o[(f=A)+1232>>2]-1|0)>>>0>4?(H=1,A=2):(x=o[23648+(A<<=2)>>2],H=o[A+23628>>2],A=o[A+23608>>2]),J=G(x,88)+f|0,o[J+1052>>2]|v[J+996|0]|v[1016+(G(x,88)+f|0)|0]&&(r=o[4+(I=1388+(C=(x<<4)+f|0)|0)>>2],o[M+8>>2]=o[I>>2],o[M+12>>2]=r,r=o[4+(I=C+1380|0)>>2],o[M>>2]=o[I>>2],o[M+4>>2]=r,1&(r=o[f+1456>>2]>>12+(x<<2))||(w[984+(G(x,88)+f|0)>>2]=w[o[e+32>>2]>>2]),2&r||(w[980+(G(x,88)+f|0)>>2]=w[e+4>>2]),4&r||(w[992+(G(x,88)+f|0)>>2]=w[o[e+32>>2]>>2]),8&r||(w[988+(G(x,88)+f|0)>>2]=w[e+4>>2]),I=YA(f,J+968|0,i,n,t,c,b,u,e,0,M,1,0)),x=G(H,88)+f|0,o[x+1052>>2]|v[x+996|0]|v[1016+(G(H,88)+f|0)|0]&&(r=o[4+(C=1388+(J=(H<<4)+f|0)|0)>>2],o[M+8>>2]=o[C>>2],o[M+12>>2]=r,r=o[4+(C=J+1380|0)>>2],o[M>>2]=o[C>>2],o[M+4>>2]=r,1&(r=o[f+1456>>2]>>12+(H<<2))||(w[984+(G(H,88)+f|0)>>2]=w[o[e+32>>2]>>2]),2&r||(w[980+(G(H,88)+f|0)>>2]=w[e+4>>2]),4&r||(w[992+(G(H,88)+f|0)>>2]=w[o[e+32>>2]>>2]),8&r||(w[988+(G(H,88)+f|0)>>2]=w[e+4>>2]),I=YA(f,x+968|0,i,n,t,c,b,u,e,I,M,1,0)+I|0),x=G(A,88)+f|0,o[x+1052>>2]|v[x+996|0]|v[1016+(G(A,88)+f|0)|0]&&(r=o[4+(C=1388+(J=(A<<4)+f|0)|0)>>2],o[M+8>>2]=o[C>>2],o[M+12>>2]=r,r=o[4+(C=J+1380|0)>>2],o[M>>2]=o[C>>2],o[M+4>>2]=r,1&(r=o[f+1456>>2]>>12+(A<<2))||(w[984+(G(A,88)+f|0)>>2]=w[o[e+32>>2]>>2]),2&r||(w[980+(G(A,88)+f|0)>>2]=w[e+4>>2]),4&r||(w[992+(G(A,88)+f|0)>>2]=w[o[e+32>>2]>>2]),8&r||(w[988+(G(A,88)+f|0)>>2]=w[e+4>>2]),I=YA(f,x+968|0,i,n,t,c,b,u,e,I,M,1,0)+I|0),J=0,S=r=(S=M+16|0)-112|0,o[r+44>>2]=1063675494,o[r+48>>2]=0,o[r+36>>2]=1045220557,o[r+40>>2]=0,k=f+760|0,d=f+776|0,l=e+4|0,h=f+728|0,B=f+744|0,Z=f+1268|0,Q=f+1252|0,E=f+1236|0,W=f+876|0,N=f+892|0,p=f+696|0,F=f+860|0,R=f+840|0,Y=f+820|0,V=f+804|0,g=f+924|0,X=f+908|0,D=f+940|0,M=f+712|0,s=f+680|0;;){if(C=v[112+(J+s|0)|0],(x=o[276+(H=s+(y=J<<2)|0)>>2])||(A=C,C=1,A||(C=0,v[798+(f+J|0)|0]))){T=w[y+M>>2],o[r+108>>2]=x,w[r+32>>2]=T,w[r+104>>2]=w[y+D>>2],w[r+96>>2]=w[y+X>>2],T=w[y+g>>2],a[r+52|0]=C,w[r+100>>2]=T,A=f+J|0,a[r+64|0]=v[A+795|0],w[r+68>>2]=w[y+V>>2],a[r+72|0]=v[A+798|0],w[r+76>>2]=w[y+Y>>2],a[r+80|0]=v[A+836|0],w[r+84>>2]=w[y+R>>2],a[r+88|0]=v[A+856|0],w[r+92>>2]=w[y+F>>2],w[r+28>>2]=w[y+p>>2],w[r+24>>2]=w[H>>2],w[r+60>>2]=w[y+N>>2],w[r+56>>2]=w[y+W>>2],w[r+8>>2]=w[y+E>>2],w[r+12>>2]=w[y+Q>>2],T=w[y+Z>>2],o[r+20>>2]=0,w[r+16>>2]=T,C=o[f+1456>>2]>>y,w[r+40>>2]=w[(1&C?y+B:o[e+32>>2])>>2],w[r+36>>2]=w[(2&C?y+h:l)>>2],w[r+48>>2]=w[(4&C?y+d:o[e+32>>2])>>2],w[r+44>>2]=w[(8&C?y+k:l)>>2],H=1,x=J?J-1|0:2,C=1;A:{r:{f:{e:switch(A=J+1|0,J=G(J>>>0<2?A:J-2|0,88)+f|0,o[J+1052>>2]-1|0){case 0:case 1:break A;case 3:break f;case 2:break e;default:break r}C=(U=+w[J+1040>>2])<-.001|U>.001;break A}if(+w[J+1040>>2]<-.001)break A;C=+w[J+1044>>2]>.001;break A}C=0}A:{r:{f:{e:switch(J=G(x,88)+f|0,o[J+1052>>2]-1|0){case 0:case 1:break r;case 3:break f;case 2:break e;default:break A}if((U=+w[J+1040>>2])<-.001|U>.001)break r;break A}if(!(+w[J+1040>>2]<-.001||+w[J+1044>>2]>.001))break A}H=0}I=YA(f,r+24|0,i,n,t,c,b,u,e,I,r+8|0,0,C?H:1)+I|0}else A=J+1|0;if(3==(0|(J=A)))break}S=r+112|0},mi,function(A,r,f,e){A|=0,r|=0,f=m(f);var i=0;A:{r:{if((e|=0)>>>0<=2){f:switch(r-1|0){case 1:r=728+((e<<2)+A|0)|0,i=2;break r;case 3:r=744+((e<<2)+A|0)|0,i=1;break r;case 0:r=760+((e<<2)+A|0)|0,i=8;break r;case 2:break f;default:break A}r=776+((e<<2)+A|0)|0}else{if((i=e-3|0)>>>0>2)break A;f:switch(r-1|0){case 1:r=980+(G(i,88)+A|0)|0,i=2;break r;case 3:r=984+(G(i,88)+A|0)|0,i=1;break r;case 0:r=988+(G(i,88)+A|0)|0,i=8;break r;case 2:break f;default:break A}r=992+(G(i,88)+A|0)|0}i=4}w[r>>2]=f,o[A+1456>>2]=o[A+1456>>2]|i<<(e<<2)}},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0);A:{r:if(f>>>0<=2){f:switch(r-1|0){case 1:A=728+((f<<2)+A|0)|0;break r;case 3:A=744+((f<<2)+A|0)|0;break r;case 0:A=760+((f<<2)+A|0)|0;break r;case 2:break f;default:break A}A=776+((f<<2)+A|0)|0}else{if((f=f-3|0)>>>0>2)break A;f:switch(r-1|0){case 1:A=980+(G(f,88)+A|0)|0;break r;case 3:A=984+(G(f,88)+A|0)|0;break r;case 0:A=988+(G(f,88)+A|0)|0;break r;case 2:break f;default:break A}A=992+(G(f,88)+A|0)|0}e=w[A>>2]}return m(e)},function(){return 644},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0);return hr(A,r,f),w[r+52>>2]=w[A+48>>2],w[r+56>>2]=w[A+52>>2],w[r+60>>2]=w[A+56>>2],w[r- -64>>2]=w[A+60>>2],w[r+68>>2]=w[A- -64>>2],w[r+72>>2]=w[A+68>>2],w[r+76>>2]=w[A+72>>2],w[r+80>>2]=w[A+76>>2],w[r+84>>2]=w[A+80>>2],w[r+88>>2]=w[A+84>>2],w[r+92>>2]=w[A+88>>2],w[r+96>>2]=w[A+92>>2],w[r+100>>2]=w[A+96>>2],w[r+104>>2]=w[A+100>>2],w[r+108>>2]=w[A+104>>2],w[r+112>>2]=w[A+108>>2],w[r+116>>2]=w[A+112>>2],w[r+120>>2]=w[A+116>>2],w[r+124>>2]=w[A+120>>2],w[r+128>>2]=w[A+124>>2],w[r+132>>2]=w[A+128>>2],w[r+136>>2]=w[A+132>>2],w[r+140>>2]=w[A+136>>2],w[r+144>>2]=w[A+140>>2],w[r+148>>2]=w[A+144>>2],w[r+152>>2]=w[A+148>>2],w[r+156>>2]=w[A+152>>2],w[r+160>>2]=w[A+156>>2],w[r+164>>2]=w[A+160>>2],w[r+168>>2]=w[A+164>>2],w[r+172>>2]=w[A+168>>2],w[r+176>>2]=w[A+172>>2],w[r+428>>2]=w[A+968>>2],w[r+412>>2]=w[A+972>>2],w[r+444>>2]=w[A+976>>2],w[r+460>>2]=w[A+980>>2],w[r+476>>2]=w[A+984>>2],w[r+492>>2]=w[A+988>>2],w[r+508>>2]=w[A+992>>2],w[r+524>>2]=w[A+1e3>>2],w[r+540>>2]=w[A+1004>>2],w[r+556>>2]=w[A+1012>>2],w[r+572>>2]=w[A+1020>>2],w[r+588>>2]=w[A+1028>>2],w[r+604>>2]=w[A+1036>>2],w[r+432>>2]=w[A+1056>>2],w[r+416>>2]=w[A+1060>>2],w[r+448>>2]=w[A+1064>>2],w[r+464>>2]=w[A+1068>>2],w[r+480>>2]=w[A+1072>>2],w[r+496>>2]=w[A+1076>>2],w[r+512>>2]=w[A+1080>>2],w[r+528>>2]=w[A+1088>>2],w[r+544>>2]=w[A+1092>>2],w[r+560>>2]=w[A+1100>>2],w[r+576>>2]=w[A+1108>>2],w[r+592>>2]=w[A+1116>>2],w[r+608>>2]=w[A+1124>>2],w[r+436>>2]=w[A+1144>>2],w[r+420>>2]=w[A+1148>>2],w[r+452>>2]=w[A+1152>>2],w[r+468>>2]=w[A+1156>>2],w[r+484>>2]=w[A+1160>>2],w[r+500>>2]=w[A+1164>>2],w[r+516>>2]=w[A+1168>>2],w[r+532>>2]=w[A+1176>>2],w[r+548>>2]=w[A+1180>>2],w[r+564>>2]=w[A+1188>>2],w[r+580>>2]=w[A+1196>>2],w[r+596>>2]=w[A+1204>>2],e=w[A+1212>>2],o[r+440>>2]=0,w[r+612>>2]=e,o[r+616>>2]=0,o[r+600>>2]=0,o[r+584>>2]=0,o[r+568>>2]=0,o[r+552>>2]=0,o[r+536>>2]=0,o[r+520>>2]=0,o[r+504>>2]=0,o[r+488>>2]=0,o[r+472>>2]=0,o[r+456>>2]=0,o[r+424>>2]=0,a[r+620|0]=v[A+996|0],a[r+624|0]=v[A+1008|0],a[r+628|0]=v[A+1016|0],a[r+632|0]=v[A+1024|0],a[r+636|0]=v[A+1032|0],a[r+621|0]=v[A+1084|0],a[r+625|0]=v[A+1096|0],a[r+629|0]=v[A+1104|0],a[r+633|0]=v[A+1112|0],a[r+637|0]=v[A+1120|0],a[r+622|0]=v[A+1172|0],a[r+626|0]=v[A+1184|0],a[r+630|0]=v[A+1192|0],a[r+634|0]=v[A+1200|0],f=v[A+1208|0],a[r+639|0]=0,a[r+635|0]=0,a[r+631|0]=0,a[r+627|0]=0,a[r+623|0]=0,a[r+638|0]=f,w[r+196>>2]=w[A+680>>2],w[r+200>>2]=w[A+684>>2],w[r+204>>2]=w[A+688>>2],w[r+208>>2]=w[A+692>>2],w[r+180>>2]=w[A+696>>2],w[r+184>>2]=w[A+700>>2],w[r+188>>2]=w[A+704>>2],w[r+192>>2]=w[A+708>>2],w[r+212>>2]=w[A+712>>2],w[r+216>>2]=w[A+716>>2],w[r+220>>2]=w[A+720>>2],w[r+224>>2]=w[A+724>>2],w[r+228>>2]=w[A+728>>2],w[r+232>>2]=w[A+732>>2],w[r+236>>2]=w[A+736>>2],w[r+240>>2]=w[A+740>>2],w[r+244>>2]=w[A+744>>2],w[r+248>>2]=w[A+748>>2],w[r+252>>2]=w[A+752>>2],w[r+256>>2]=w[A+756>>2],w[r+260>>2]=w[A+760>>2],w[r+264>>2]=w[A+764>>2],w[r+268>>2]=w[A+768>>2],w[r+272>>2]=w[A+772>>2],w[r+276>>2]=w[A+776>>2],w[r+280>>2]=w[A+780>>2],w[r+284>>2]=w[A+784>>2],w[r+288>>2]=w[A+788>>2],w[r+292>>2]=w[A+876>>2],w[r+296>>2]=w[A+880>>2],w[r+300>>2]=w[A+884>>2],w[r+304>>2]=w[A+888>>2],w[r+308>>2]=w[A+892>>2],w[r+312>>2]=w[A+896>>2],w[r+316>>2]=w[A+900>>2],w[r+320>>2]=w[A+904>>2],w[r+324>>2]=w[A+804>>2],w[r+328>>2]=w[A+808>>2],w[r+332>>2]=w[A+812>>2],w[r+336>>2]=w[A+816>>2],w[r+340>>2]=w[A+820>>2],w[r+344>>2]=w[A+824>>2],w[r+348>>2]=w[A+828>>2],w[r+352>>2]=w[A+832>>2],w[r+356>>2]=w[A+840>>2],w[r+360>>2]=w[A+844>>2],w[r+364>>2]=w[A+848>>2],w[r+368>>2]=w[A+852>>2],w[r+372>>2]=w[A+860>>2],w[r+376>>2]=w[A+864>>2],w[r+380>>2]=w[A+868>>2],w[r+384>>2]=w[A+872>>2],a[r+388|0]=v[A+792|0],a[r+392|0]=v[A+795|0],a[r+396|0]=v[A+798|0],a[r+400|0]=v[A+836|0],a[r+404|0]=v[A+856|0],a[r+389|0]=v[A+793|0],a[r+393|0]=v[A+796|0],a[r+397|0]=v[A+799|0],a[r+401|0]=v[A+837|0],a[r+405|0]=v[A+857|0],a[r+390|0]=v[A+794|0],a[r+394|0]=v[A+797|0],a[r+398|0]=v[A+800|0],a[r+402|0]=v[A+838|0],f=v[A+858|0],a[r+407|0]=0,a[r+403|0]=0,a[r+399|0]=0,a[r+395|0]=0,a[r+391|0]=0,a[r+406|0]=f,A=o[A+1232>>2],o[r+408>>2]=0,o[r+640>>2]=A,8612},Ei,_e,_e,function(A){A|=0;var r,f=0,e=m(0),i=0,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=0,B=m(0),Z=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=m(0),j=m(0),z=m(0),P=0,O=0,L=0,$=m(0),K=m(0),q=m(0),_=0;if(S=r=S-48|0,v[A+738|0]){if(o[A+744>>2]=0,o[A+36>>2]=0,!v[A+736|0])for(n=w[A+672>>2],f=o[A+32>>2],t=w[A+664>>2],c=w[A+668>>2],B=m(m(m(n*w[f+44>>2])+m(m(t*w[f+36>>2])+m(c*w[f+40>>2])))+w[f+60>>2]),a=w[A+608>>2],i=o[A+28>>2],e=w[A+600>>2],u=w[A+604>>2],k=m(m(m(a*w[i+44>>2])+m(m(e*w[i+36>>2])+m(u*w[i+40>>2])))+w[i+60>>2]),b=m(B-k),W=m(m(m(n*w[f+12>>2])+m(m(t*w[f+4>>2])+m(c*w[f+8>>2])))+w[f+52>>2]),p=m(m(m(a*w[i+12>>2])+m(m(e*w[i+4>>2])+m(u*w[i+8>>2])))+w[i+52>>2]),l=m(W-p),C=m(m(m(n*w[f+28>>2])+m(m(t*w[f+20>>2])+m(c*w[f+24>>2])))+w[f+56>>2]),J=m(m(m(a*w[i+28>>2])+m(m(e*w[i+20>>2])+m(u*w[i+24>>2])))+w[i+56>>2]),t=m(C-J),(n=m(m(b*b)+m(m(l*l)+m(t*t))))>m(1.1920928955078125e-7)?(c=m(m(1)/m(N(n))),n=m(b*c),w[r+8>>2]=n,t=m(t*c),w[r+4>>2]=t,c=m(l*c),w[r>>2]=c):(o[r+8>>2]=0,o[r>>2]=1065353216,o[r+4>>2]=0,c=m(1),t=m(0),n=m(0)),o[r+12>>2]=0,m(Q(n))>m(.7071067690849304)?(a=m(m(t*t)+m(n*n)),b=m(m(1)/m(N(a))),a=m(a*b),e=m(b*m(-n)),u=m(e*c),n=m(t*b),t=m(n*m(-c)),b=m(0)):(e=m(m(c*c)+m(t*t)),a=m(m(1)/m(N(e))),u=m(e*a),b=m(a*m(-t)),t=m(n*b),e=m(c*a),a=m(e*m(-n)),n=m(0)),w[r+40>>2]=u,w[r+36>>2]=t,w[r+20>>2]=e,w[r+32>>2]=a,w[r+24>>2]=n,w[r+16>>2]=b;x=w[f+404>>2],U=w[i+404>>2],g=w[i+36>>2],X=w[i+4>>2],D=w[i+20>>2],s=w[i+40>>2],F=w[i+8>>2],E=w[i+24>>2],d=w[i+44>>2],Z=w[i+12>>2],R=w[i+56>>2],Y=w[i+28>>2],V=w[i+60>>2],M=w[i+52>>2],H=w[f+36>>2],I=w[f+4>>2],j=w[f+20>>2],l=w[f+40>>2],z=w[f+8>>2],q=w[f+24>>2],n=w[f+44>>2],c=w[f+12>>2],t=w[f+56>>2],u=w[f+28>>2],a=w[f+52>>2],e=w[f+60>>2],_=o[4+(O=(P<<4)+r|0)>>2],h=G(P,84)+A|0,o[(L=h+48|0)>>2]=o[O>>2],o[L+4>>2]=_,L=o[O+12>>2],o[h+56>>2]=o[O+8>>2],o[h+60>>2]=L,o[h+92>>2]=0,o[h+76>>2]=0,y=n,b=m(C-t),n=w[h+48>>2],$=m(W-a),t=w[h+52>>2],a=m(m(b*n)-m($*t)),T=c,K=m(B-e),c=w[h+56>>2],e=m(m(K*t)-m(b*c)),b=u,u=m(m($*c)-m(K*n)),b=m(m(y*a)+m(m(T*e)+m(b*u))),w[h+88>>2]=b,l=m(m(l*a)+m(m(z*e)+m(q*u))),w[h+84>>2]=l,a=m(m(H*a)+m(m(I*e)+m(j*u))),w[h+80>>2]=a,y=d,u=m(p-M),d=m(J-R),e=m(m(t*u)-m(n*d)),T=m(d*c),d=m(k-V),t=m(T-m(t*d)),n=m(m(d*n)-m(c*u)),c=m(m(y*e)+m(m(Z*t)+m(Y*n))),w[h+72>>2]=c,u=m(m(s*e)+m(m(F*t)+m(E*n))),w[h+68>>2]=u,n=m(m(g*e)+m(m(X*t)+m(D*n))),w[h- -64>>2]=n,t=w[i+464>>2],e=w[i+460>>2],g=w[i+456>>2],o[h+108>>2]=0,g=m(n*g),w[h+96>>2]=g,e=m(u*e),w[h+100>>2]=e,t=m(c*t),w[h+104>>2]=t,X=w[f+464>>2],D=w[f+460>>2],s=w[f+456>>2],o[h+124>>2]=0,s=m(a*s),w[h+112>>2]=s,D=m(l*D),w[h+116>>2]=D,X=m(b*X),w[h+120>>2]=X,w[h+128>>2]=m(x+m(U+m(m(t*c)+m(m(g*n)+m(u*e)))))+m(m(X*b)+m(m(s*a)+m(l*D))),3!=(0|(P=P+1|0)););n=w[A+576>>2],t=w[A+560>>2],c=w[A+592>>2],m(Q(c))>m(.7071067690849304)?(a=m(m(n*n)+m(c*c)),b=m(m(1)/m(N(a))),e=m(b*m(-c)),u=m(t*e),l=m(n*b),B=m(l*m(-t)),k=m(0),a=m(a*b)):(e=m(m(t*t)+m(n*n)),a=m(m(1)/m(N(e))),u=m(e*a),k=m(a*m(-n)),B=m(c*k),l=m(0),e=m(t*a),a=m(e*m(-c))),f=o[A+32>>2],Z=w[f+36>>2],R=w[f+20>>2],d=w[f+40>>2],Y=w[f+8>>2],V=w[f+24>>2],E=w[f+44>>2],M=w[f+12>>2],H=w[f+28>>2],i=o[A+28>>2],W=w[i+44>>2],p=w[i+36>>2],C=w[i+40>>2],J=w[i+12>>2],x=w[i+8>>2],U=w[i+28>>2],g=w[i+20>>2],X=w[i+24>>2],I=w[f+4>>2],D=w[i+4>>2],o[A+308>>2]=0,o[A+312>>2]=0,o[A+300>>2]=0,o[A+304>>2]=0,o[A+344>>2]=0,o[A+328>>2]=0,b=m(m(W*l)+m(m(p*k)+m(e*C))),s=m(m(J*l)+m(m(D*k)+m(e*x))),e=m(m(U*l)+m(m(g*k)+m(e*X))),l=m(m(W*b)+m(m(J*s)+m(U*e))),w[A+324>>2]=l,k=m(m(C*b)+m(m(x*s)+m(X*e))),w[A+320>>2]=k,F=m(m(p*b)+m(m(D*s)+m(g*e))),w[A+316>>2]=F,s=m(-s),E=m(m(m(M*s)-m(H*e))-m(E*b)),w[A+340>>2]=E,d=m(m(m(Y*s)-m(V*e))-m(d*b)),w[A+336>>2]=d,e=m(m(m(I*s)-m(R*e))-m(Z*b)),w[A+332>>2]=e,b=w[i+460>>2],s=w[i+464>>2],Z=w[i+456>>2],o[A+360>>2]=0,s=m(l*s),w[A+356>>2]=s,b=m(k*b),w[A+352>>2]=b,Z=m(F*Z),w[A+348>>2]=Z,R=w[f+460>>2],Y=w[f+464>>2],V=w[f+456>>2],o[A+376>>2]=0,Y=m(E*Y),w[A+372>>2]=Y,R=m(d*R),w[A+368>>2]=R,V=m(e*V),w[A+364>>2]=V,w[A+380>>2]=m(m(s*l)+m(m(Z*F)+m(k*b)))+m(m(Y*E)+m(m(V*e)+m(d*R))),F=w[i+36>>2],E=w[i+20>>2],s=w[i+40>>2],d=w[i+8>>2],Z=w[i+24>>2],k=w[i+44>>2],R=w[i+12>>2],Y=w[i+28>>2],V=w[f+36>>2],M=w[f+20>>2],H=w[f+40>>2],I=w[f+8>>2],j=w[f+24>>2],z=w[f+44>>2],e=w[f+12>>2],q=w[f+28>>2],$=w[i+4>>2],K=w[f+4>>2],o[A+392>>2]=0,o[A+396>>2]=0,o[A+384>>2]=0,o[A+388>>2]=0,o[A+428>>2]=0,o[A+412>>2]=0,b=m(m(J*u)+m(m(D*a)+m(B*x))),l=m(-b),y=m(e*l),e=m(m(U*u)+m(m(g*a)+m(B*X))),a=m(m(W*u)+m(m(p*a)+m(B*C))),u=m(m(y-m(q*e))-m(z*a)),w[A+424>>2]=u,B=m(m(m(I*l)-m(j*e))-m(H*a)),w[A+420>>2]=B,l=m(m(m(K*l)-m(M*e))-m(V*a)),w[A+416>>2]=l,k=m(m(k*a)+m(m(R*b)+m(e*Y))),w[A+408>>2]=k,s=m(m(s*a)+m(m(d*b)+m(e*Z))),w[A+404>>2]=s,a=m(m(F*a)+m(m($*b)+m(e*E))),w[A+400>>2]=a,e=w[i+460>>2],b=w[i+464>>2],F=w[i+456>>2],o[A+444>>2]=0,b=m(k*b),w[A+440>>2]=b,e=m(s*e),w[A+436>>2]=e,F=m(a*F),w[A+432>>2]=F,E=w[f+460>>2],d=w[f+464>>2],Z=w[f+456>>2],o[A+460>>2]=0,d=m(u*d),w[A+456>>2]=d,E=m(B*E),w[A+452>>2]=E,Z=m(l*Z),w[A+448>>2]=Z,w[A+464>>2]=m(m(b*k)+m(m(F*a)+m(s*e)))+m(m(d*u)+m(m(Z*l)+m(B*E))),B=w[i+36>>2],k=w[i+20>>2],l=w[i+40>>2],s=w[i+8>>2],F=w[i+24>>2],b=w[i+44>>2],E=w[i+12>>2],d=w[i+28>>2],Z=w[f+36>>2],R=w[f+20>>2],Y=w[f+40>>2],V=w[f+8>>2],M=w[f+24>>2],H=w[f+44>>2],a=w[f+12>>2],I=w[f+28>>2],j=w[i+4>>2],z=w[f+4>>2],o[A+476>>2]=0,o[A+480>>2]=0,o[A+468>>2]=0,o[A+472>>2]=0,o[A+512>>2]=0,o[A+496>>2]=0,e=m(m(J*c)+m(m(D*t)+m(n*x))),u=m(-e),y=m(a*u),a=m(m(U*c)+m(m(g*t)+m(n*X))),n=m(m(W*c)+m(m(p*t)+m(n*C))),t=m(m(y-m(I*a))-m(H*n)),w[A+508>>2]=t,c=m(m(m(V*u)-m(M*a))-m(Y*n)),w[A+504>>2]=c,u=m(m(m(z*u)-m(R*a))-m(Z*n)),w[A+500>>2]=u,b=m(m(b*n)+m(m(E*e)+m(a*d))),w[A+492>>2]=b,l=m(m(l*n)+m(m(s*e)+m(a*F))),w[A+488>>2]=l,n=m(m(B*n)+m(m(j*e)+m(a*k))),w[A+484>>2]=n,a=w[i+460>>2],e=w[i+464>>2],B=w[i+456>>2],o[A+528>>2]=0,e=m(b*e),w[A+524>>2]=e,a=m(l*a),w[A+520>>2]=a,B=m(n*B),w[A+516>>2]=B,k=w[f+460>>2],W=w[f+464>>2],p=w[f+456>>2],o[A+724>>2]=0,o[A+544>>2]=0,W=m(t*W),w[A+540>>2]=W,k=m(c*k),w[A+536>>2]=k,p=m(u*p),w[A+532>>2]=p,w[A+548>>2]=m(m(e*b)+m(m(B*n)+m(l*a)))+m(m(W*t)+m(m(p*u)+m(c*k))),n=w[A+652>>2],t=w[A+620>>2],c=w[A+636>>2],b=m(m(w[f+44>>2]*n)+m(m(w[f+36>>2]*t)+m(c*w[f+40>>2]))),l=w[i+44>>2],a=w[A+584>>2],B=w[i+36>>2],e=w[A+552>>2],u=w[A+568>>2],k=w[i+40>>2],d=m(b*m(m(l*a)+m(m(B*e)+m(u*k)))),W=m(m(w[f+12>>2]*n)+m(m(w[f+4>>2]*t)+m(c*w[f+8>>2]))),p=w[i+12>>2],C=w[i+4>>2],J=w[i+8>>2],y=m(W*m(m(p*a)+m(m(C*e)+m(u*J)))),x=w[i+28>>2],T=m(x*a),a=w[i+20>>2],s=m(a*e),e=w[i+24>>2],T=m(T+m(s+m(u*e))),u=m(m(w[f+28>>2]*n)+m(m(w[f+20>>2]*t)+m(c*w[f+24>>2]))),n=w[A+588>>2],t=w[A+556>>2],c=w[A+572>>2],n=m(zr(m(d+m(y+m(T*u))),m(m(b*m(m(l*n)+m(m(B*t)+m(k*c))))+m(m(W*m(m(p*n)+m(m(C*t)+m(J*c))))+m(m(m(x*n)+m(m(a*t)+m(e*c)))*u))))*w[A+732>>2]),w[A+728>>2]=n,Jf(A+688|0,n),i=A,f=o[A+28>>2],c=w[A+592>>2],a=w[A+560>>2],e=w[A+576>>2],n=m(m(w[f+44>>2]*c)+m(m(w[f+36>>2]*a)+m(e*w[f+40>>2]))),t=m(m(w[f+12>>2]*c)+m(m(w[f+4>>2]*a)+m(e*w[f+8>>2]))),c=m(m(w[f+28>>2]*c)+m(m(w[f+20>>2]*a)+m(e*w[f+24>>2]))),A=o[A+32>>2],w[i+720>>2]=m(1)/m(m(m(n*m(m(n*w[f+364>>2])+m(m(w[f+332>>2]*t)+m(c*w[f+348>>2]))))+m(m(t*m(m(w[f+356>>2]*n)+m(m(t*w[f+324>>2])+m(c*w[f+340>>2]))))+m(c*m(m(w[f+360>>2]*n)+m(m(w[f+328>>2]*t)+m(c*w[f+344>>2]))))))+m(m(n*m(m(n*w[A+364>>2])+m(m(w[A+332>>2]*t)+m(c*w[A+348>>2]))))+m(m(t*m(m(w[A+356>>2]*n)+m(m(t*w[A+324>>2])+m(c*w[A+340>>2]))))+m(c*m(m(w[A+360>>2]*n)+m(m(w[A+328>>2]*t)+m(c*w[A+344>>2])))))))}S=r+48|0},function(A,r){A|=0,r|=0;var f=m(0),e=0,i=0,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0);A:{if(v[A+738|0])o[r>>2]=0,A=0;else{if(o[r>>2]=5,o[r+4>>2]=1,e=o[A+32>>2],f=w[A+652>>2],n=w[A+620>>2],a=w[A+636>>2],l=m(m(w[e+44>>2]*f)+m(m(w[e+36>>2]*n)+m(a*w[e+40>>2]))),i=o[A+28>>2],s=w[i+44>>2],t=w[A+584>>2],k=w[i+36>>2],c=w[A+552>>2],b=w[A+568>>2],d=w[i+40>>2],E=m(l*m(m(s*t)+m(m(k*c)+m(b*d)))),h=m(m(w[e+12>>2]*f)+m(m(w[e+4>>2]*n)+m(a*w[e+8>>2]))),B=w[i+12>>2],Z=w[i+4>>2],G=w[i+8>>2],W=m(h*m(m(B*t)+m(m(Z*c)+m(b*G)))),Q=w[i+28>>2],u=m(Q*t),t=w[i+20>>2],N=m(t*c),c=w[i+24>>2],u=m(u+m(N+m(b*c))),b=m(m(w[e+28>>2]*f)+m(m(w[e+20>>2]*n)+m(a*w[e+24>>2]))),f=w[A+588>>2],n=w[A+556>>2],a=w[A+572>>2],f=m(zr(m(E+m(W+m(u*b))),m(m(l*m(m(s*f)+m(m(k*n)+m(d*a))))+m(m(h*m(m(B*f)+m(m(Z*n)+m(G*a))))+m(m(m(Q*f)+m(m(t*n)+m(c*a)))*b))))*w[A+732>>2]),w[A+728>>2]=f,Jf(A+688|0,f),!(v[A+716|0]|v[A+737|0]))break A;o[r>>2]=o[r>>2]+1,A=o[r+4>>2]-1|0}o[r+4>>2]=A}},function(A,r){A|=0,r|=0;var f,e,i=0,n=0,t=m(0),c=0,b=m(0),u=m(0),l=0,s=m(0),k=m(0),d=m(0),h=m(0),B=m(0),Z=m(0),Q=0,E=m(0),W=m(0),p=m(0),F=m(0),R=0,Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=0,H=0,I=m(0),T=m(0),U=m(0),j=0,z=m(0),P=m(0),O=m(0),S=m(0),L=m(0),$=m(0),K=m(0),q=m(0),_=m(0),AA=m(0),rA=m(0),fA=m(0),eA=m(0),iA=m(0),nA=0,aA=0,tA=m(0),oA=m(0),cA=m(0),bA=m(0),uA=m(0),lA=0,sA=0,kA=0;if(f=(n=o[A+32>>2])+388|0,e=(i=o[A+28>>2])+388|0,n=n+4|0,i=i+4|0,v[A+739|0]){t=w[o[A+32>>2]+404>>2],$=w[o[A+28>>2]+404>>2],k=(k=m(t+$))>m(0)?m(t/k):m(.5),B=m(m(1)-k),W=w[A+672>>2],E=w[n+40>>2],u=w[A+664>>2],p=w[n+32>>2],d=w[n+36>>2],b=w[A+668>>2],Z=w[n+56>>2],tA=m(m(m(W*E)+m(m(u*p)+m(d*b)))+Z),U=J=m(tA-Z),Z=w[A+592>>2],s=w[i+40>>2],h=w[A+560>>2],X=w[i+32>>2],V=w[A+576>>2],D=w[i+36>>2],P=m(m(Z*s)+m(m(h*X)+m(V*D))),F=w[A+656>>2],T=m(F*E),E=w[A+624>>2],z=m(E*p),p=w[A+640>>2],O=m(T+m(z+m(p*d))),T=d=m(m(P*k)+m(O*B)),S=m(d*d),Y=w[i+8>>2],C=w[i>>2],y=w[i+4>>2],L=m(m(Z*Y)+m(m(h*C)+m(y*V))),g=w[n+8>>2],K=w[n>>2],q=w[n+4>>2],_=m(m(F*g)+m(m(E*K)+m(q*p))),d=m(m(L*k)+m(_*B)),I=w[i+24>>2],x=w[i+16>>2],z=V,V=w[i+20>>2],fA=m(m(Z*I)+m(m(h*x)+m(z*V))),z=w[n+24>>2],AA=w[n+16>>2],Z=p,p=w[n+20>>2],eA=m(m(F*z)+m(m(E*AA)+m(Z*p))),F=m(m(fA*k)+m(eA*B)),E=m(m(1)/m(N(m(S+m(m(d*d)+m(F*F)))))),Z=m(T*E),T=m(J*Z),h=w[n+48>>2],K=m(h+m(m(W*g)+m(m(u*K)+m(q*b)))),J=m(K-h),h=m(d*E),b=m(m(W*z)+m(m(u*AA)+m(p*b))),W=w[n+52>>2],q=m(b+W),p=m(q-W),W=m(F*E),u=m(T+m(m(J*h)+m(p*W))),d=m(Z*u),z=m(U-d),b=w[A+608>>2],F=w[A+600>>2],E=w[A+604>>2],g=w[i+56>>2],AA=m(m(m(b*s)+m(m(F*X)+m(D*E)))+g),g=m(AA-g),T=w[i+48>>2],oA=m(T+m(m(b*Y)+m(m(F*C)+m(y*E)))),T=m(oA-T),U=m(m(b*I)+m(m(F*x)+m(V*E))),b=w[i+52>>2],cA=m(U+b),S=m(cA-b),b=m(m(Z*g)+m(m(T*h)+m(S*W))),rA=m(Z*b),d=m(rA-d),F=m(z-m(B*d)),E=m(W*u),bA=m(p-E),iA=m(W*b),U=m(iA-E),E=m(bA-m(B*U)),u=m(h*u),uA=m(J-u),b=m(h*b),u=m(b-u),p=m(uA-m(B*u)),rA=m(g-rA),d=m(rA+m(k*d)),S=m(S-iA),J=m(S+m(k*U)),b=m(T-b),g=m(b+m(k*u)),n=!(tm(1.1920928955078125e-7)?(s=m(m(1)/m(N(u))),u=m(t*s),t=m($*s),b=m(b*s)):(u=w[A+588>>2],t=m(u*Y),Y=w[A+556>>2],b=m(Y*C),C=w[A+572>>2],b=m(t+m(b+m(y*C))),t=m(m(u*I)+m(m(Y*x)+m(C*V))),u=m(m(u*s)+m(m(Y*X)+m(C*D)))),Q=o[r+24>>2],c=o[r+12>>2],w[c+8>>2]=m(g*t)-m(b*J),w[c+4>>2]=m(d*b)-m(u*g),w[c>>2]=m(J*u)-m(t*d),i=o[r+20>>2],w[i+8>>2]=-m(m(p*t)-m(b*E)),w[i+4>>2]=-m(m(F*b)-m(u*p)),w[i>>2]=-m(m(E*u)-m(t*F)),X=m(m(Z*b)-m(u*h)),V=m(m(W*u)-m(t*Z)),s=m(m(p*X)-m(V*E)),D=m(m(h*t)-m(b*W)),Y=m(m(F*V)-m(D*p)),C=m(m(E*D)-m(X*F)),y=m(m(g*X)-m(V*J)),I=m(m(d*V)-m(D*g)),x=m(m(J*D)-m(X*d)),(nA=!(M=v[A+716|0]))|n||(y=m(k*y),I=m(k*I),x=m(k*x),Y=m(B*Y),C=m(B*C),s=m(B*s)),w[8+(R=(l=Q<<2)+c|0)>>2]=y,w[R+4>>2]=I,w[R>>2]=x,w[i+l>>2]=-C,w[i+((j=Q+1|0)<<2)>>2]=-Y,w[i+((aA=Q+2|0)<<2)>>2]=-s,s=m(m(p*W)+m(h*m(-E))),p=m(m(F*h)+m(Z*m(-p))),F=m(m(E*Z)+m(W*m(-F))),E=m(m(g*W)+m(h*m(-J))),g=m(m(d*h)+m(Z*m(-g))),d=m(m(J*Z)+m(W*m(-d))),n||(E=m(k*E),g=m(k*g),d=m(k*d),p=m(B*p),F=m(B*F),s=m(B*s)),B=m(-W),J=m(-h),Y=m(-Z),w[8+(n=c+(lA=Q<<3)|0)>>2]=E,w[n+4>>2]=g,w[n>>2]=d,w[i+((R=Q<<1)<<2)>>2]=-F,w[i+((sA=1|R)<<2)>>2]=-p,w[i+((kA=R+2|0)<<2)>>2]=-s,k=w[(8&v[A+748|0]?A+756:r+4)>>2],v[A+736|0]?(p=m(-D),F=m(-X),s=m(-V),g=m(-u),d=m(-t),E=m(-b),n=o[r+28>>2]):(x=w[r>>2],n=o[r+8>>2],w[n+8>>2]=u,w[n+4>>2]=t,w[n>>2]=b,w[8+(H=n+l|0)>>2]=D,w[H+4>>2]=X,w[H>>2]=V,w[8+(n=n+lA|0)>>2]=Z,w[n+4>>2]=W,w[n>>2]=h,n=o[r+16>>2],g=m(-u),w[n+8>>2]=g,d=m(-t),w[n+4>>2]=d,E=m(-b),w[n>>2]=E,H=Q<<2,s=m(-V),w[H+n>>2]=s,F=m(-X),w[n+(j<<2)>>2]=F,p=m(-D),w[n+(aA<<2)>>2]=p,w[(R<<=2)+n>>2]=J,w[n+(sA<<2)>>2]=B,w[n+(kA<<2)>>2]=Y,n=o[r+28>>2],C=m(tA-AA),y=m(K-oA),I=m(q-cA),x=m(k*x),w[n>>2]=m(m(u*C)+m(m(b*y)+m(I*t)))*x,w[n+H>>2]=m(m(D*C)+m(m(V*y)+m(I*X)))*x,w[n+R>>2]=x*m(m(Z*C)+m(m(h*y)+m(I*W)))),Q=G(Q,12),w[Q+c>>2]=b,w[(R=Q+8|0)+c>>2]=u,w[(H=Q+4|0)+c>>2]=t,w[(l<<=2)+c>>2]=V,w[(j=4|l)+c>>2]=X,w[(aA=8|l)+c>>2]=D,w[i+Q>>2]=E,w[i+R>>2]=g,w[i+H>>2]=d,w[i+l>>2]=s,w[i+j>>2]=F,w[i+aA>>2]=p,s=m(m(L*eA)-m(_*fA)),d=m(s*u),u=m(m(fA*O)-m(eA*P)),p=m(u*b),b=m(m(P*_)-m(O*L)),d=m(d+m(p+m(b*t))),t=m(k*w[r>>2]),w[n+Q>>2]=d*t,w[n+l>>2]=m(m(s*D)+m(m(u*V)+m(b*X)))*t;A:{if(M)R=0!=v[A+737|0],n=(t=m(w[A+708>>2]*w[A+732>>2]))>m(0)?1:2;else{if(!v[A+737|0])break A;t=m(0),R=1,n=0}if(Q=G(o[r+24>>2],5),w[(l=Q<<2)+c>>2]=h,w[(H=l+8|0)+c>>2]=Z,w[(j=c)+(c=l+4|0)>>2]=W,w[i+H>>2]=Y,w[i+c>>2]=B,w[i+l>>2]=J,B=ve(i=A+688|0),u=de(i),i=o[r+28>>2],o[l+i>>2]=0,k=2&(l=o[A+748>>2])?w[A+764>>2]:k,!R|!((c=u!=B)|nA)||(4&l&&(w[o[r+32>>2]+(Q<<2)>>2]=w[A+752>>2]),B=Lf(w[A+728>>2],B,u,w[A+680>>2],m(k*w[r>>2])),i=o[r+28>>2],w[(R=i+(l=Q<<2)|0)>>2]=m(m(B*w[A+680>>2])*w[A+732>>2])+w[R>>2],w[l+o[r+36>>2]>>2]=-w[A+684>>2],w[l+o[r+40>>2]>>2]=w[A+684>>2]),M){w[(i=(l=Q<<2)+i|0)>>2]=m(m(k*w[r>>2])*t)+w[i>>2],1&a[A+748|0]&&(w[l+o[r+32>>2]>>2]=w[A+760>>2]),c?(c=o[r+36>>2]+(Q<<2)|0,1!=(0|n)?(o[c>>2]=-8388609,t=m(0)):(o[c>>2]=0,t=m(34028234663852886e22))):(o[o[r+36>>2]+(Q<<2)>>2]=-8388609,t=m(34028234663852886e22)),w[o[r+40>>2]+(Q<<2)>>2]=t;r:if((k=w[A+704>>2])>m(0)){t=m(m(m(w[e+8>>2]*Z)+m(m(w[e>>2]*h)+m(w[e+4>>2]*W)))-m(m(w[f+8>>2]*Z)+m(m(w[f>>2]*h)+m(W*w[f+4>>2]))));f:{if(1==(0|n)){if(!(tw[i>>2])break f;break r}if(!(t>m(0)))break r;if(!((t=m(t*m(-k)))>2]))break r}w[i>>2]=t}w[i>>2]=w[A+700>>2]*w[i>>2]}}}else{u=w[A+656>>2],C=w[n+40>>2],$=m(u*C),b=w[A+624>>2],y=w[n+32>>2],s=w[A+640>>2],I=w[n+36>>2],tA=m(m(b*y)+m(s*I)),x=w[n+24>>2],K=m(u*x),P=w[n+16>>2],O=w[n+20>>2],q=m(m(b*P)+m(s*O)),X=w[A+592>>2],t=w[i+40>>2],z=m(X*t),V=w[A+560>>2],k=w[i+32>>2],D=w[A+576>>2],B=w[i+36>>2],AA=m(m(V*k)+m(D*B)),F=w[A+588>>2],T=m(F*t),E=w[A+556>>2],p=w[A+572>>2],oA=m(m(E*k)+m(p*B)),d=w[A+584>>2],cA=m(d*t),J=w[A+552>>2],g=w[A+568>>2],S=m(m(J*k)+m(g*B)),Z=w[i+24>>2],rA=m(X*Z),h=w[i+16>>2],W=w[i+20>>2],bA=m(m(V*h)+m(D*W)),Y=w[A+672>>2],U=m(Y*C),C=w[A+664>>2],L=m(C*y),y=w[A+668>>2],I=m(m(U+m(L+m(I*y)))+w[n+56>>2]),x=m(m(m(Y*x)+m(m(C*P)+m(O*y)))+w[n+52>>2]),P=w[A+608>>2],O=w[A+600>>2],L=w[A+604>>2],_=w[i+56>>2],fA=m(m(m(P*t)+m(m(O*k)+m(B*L)))+_),t=w[i+52>>2],eA=m(m(m(P*Z)+m(m(O*h)+m(W*L)))+t),U=b,b=w[n>>2],iA=w[n+4>>2],U=m(m(U*b)+m(iA*s)),s=w[n+8>>2],uA=m(u*s),k=w[i>>2],B=w[i+4>>2],V=m(m(V*k)+m(B*D)),u=w[i+8>>2],D=m(X*u),b=m(w[n+48>>2]+m(m(Y*s)+m(m(C*b)+m(iA*y)))),s=w[i+48>>2],X=m(s+m(m(P*u)+m(m(O*k)+m(B*L)))),Q=o[r+24>>2],(R=v[A+736|0])||(c=o[r+8>>2],o[c>>2]=1065353216,o[(l=4+(Q<<2)|0)+c>>2]=1065353216,o[(M=8+(Q<<3)|0)+c>>2]=1065353216,c=o[r+16>>2],o[c>>2]=-1082130432,o[c+l>>2]=-1082130432,o[c+M>>2]=-1082130432,_=w[i+56>>2],s=w[i+48>>2],t=w[i+52>>2]),i=o[r+12>>2],o[i+12>>2]=0,Y=m(fA-_),w[i+4>>2]=Y,o[i>>2]=0,t=m(eA-t),w[i+8>>2]=-t,o[12+(c=(l=Q<<2)+i|0)>>2]=0,s=m(X-s),w[c+8>>2]=s,o[c+4>>2]=0,w[c>>2]=-Y,o[8+(c=(M=Q<<3)+i|0)>>2]=0,o[c+12>>2]=0,w[c+4>>2]=-s,w[c>>2]=t,t=w[n+48>>2],s=w[n+56>>2],Y=w[n+52>>2],c=o[r+20>>2],o[c+12>>2]=0,o[c>>2]=0,Y=m(x-Y),w[c+8>>2]=Y,s=m(I-s),w[c+4>>2]=-s,o[12+(n=c+l|0)>>2]=0,t=m(b-t),w[n+8>>2]=-t,o[n+4>>2]=0,w[n>>2]=s,o[8+(n=c+M|0)>>2]=0,o[n+12>>2]=0,w[n+4>>2]=t,w[n>>2]=-Y,Y=w[(8&v[A+748|0]?A+756:r+4)>>2],t=m(Y*w[r>>2]),n=o[r+28>>2],R||(w[n>>2]=t*m(b-X),w[n+l>>2]=t*m(x-eA),w[n+(Q<<3)>>2]=t*m(I-fA)),l=G(Q,12),b=m(m(d*u)+m(m(J*k)+m(g*B))),w[l+i>>2]=b,M=l+8|0,s=m(cA+S),w[M+i>>2]=s,H=l+4|0,X=m(m(d*Z)+m(m(J*h)+m(g*W))),w[H+i>>2]=X,R=Q<<4,u=m(m(F*u)+m(m(E*k)+m(B*p))),w[R+i>>2]=u,nA=4|R,h=m(m(F*Z)+m(m(E*h)+m(p*W))),w[nA+i>>2]=h,j=8|R,W=m(T+oA),w[j+i>>2]=W,w[c+l>>2]=-b,w[c+M>>2]=-s,w[c+H>>2]=-X,w[c+R>>2]=-u,w[c+nA>>2]=-h,w[c+j>>2]=-W,k=m(D+V),Z=m(K+q),V=m(uA+U),B=m(rA+bA),D=m(m(k*Z)-m(V*B)),p=m(D*s),s=m($+tA),d=Z,Z=m(z+AA),F=m(m(B*s)-m(d*Z)),d=m(F*b),b=m(m(Z*V)-m(s*k)),w[n+l>>2]=m(p+m(d+m(X*b)))*t,w[n+R>>2]=m(m(D*W)+m(m(F*u)+m(h*b)))*t;A:{if(R=v[A+716|0])M=0!=v[A+737|0],n=(t=m(w[A+708>>2]*w[A+732>>2]))>m(0)?1:2;else{if(!v[A+737|0])break A;t=m(0),M=1,n=0}if(Q=G(Q,5),w[(l=Q<<2)+i>>2]=k,w[(H=l+8|0)+i>>2]=Z,w[(j=i)+(i=l+4|0)>>2]=B,w[c+H>>2]=-Z,w[i+c>>2]=-B,w[c+l>>2]=-k,h=ve(i=A+688|0),W=de(i),i=o[r+28>>2],o[l+i>>2]=0,u=2&(l=o[A+748>>2])?w[A+764>>2]:Y,!M|!((c=h!=W)|!R)||(4&l&&(w[o[r+32>>2]+(Q<<2)>>2]=w[A+752>>2]),h=Lf(w[A+728>>2],h,W,w[A+680>>2],m(u*w[r>>2])),i=o[r+28>>2],w[(M=i+(l=Q<<2)|0)>>2]=m(m(h*w[A+680>>2])*w[A+732>>2])+w[M>>2],w[l+o[r+36>>2]>>2]=-w[A+684>>2],w[l+o[r+40>>2]>>2]=w[A+684>>2]),R){w[(i=(l=Q<<2)+i|0)>>2]=m(m(u*w[r>>2])*t)+w[i>>2],1&a[A+748|0]&&(w[l+o[r+32>>2]>>2]=w[A+760>>2]),c?(c=o[r+36>>2]+(Q<<2)|0,1!=(0|n)?(o[c>>2]=-8388609,t=m(0)):(o[c>>2]=0,t=m(34028234663852886e22))):(o[o[r+36>>2]+(Q<<2)>>2]=-8388609,t=m(34028234663852886e22)),w[o[r+40>>2]+(Q<<2)>>2]=t;r:if((h=w[A+704>>2])>m(0)){t=m(m(m(w[e+8>>2]*Z)+m(m(w[e>>2]*k)+m(B*w[e+4>>2])))-m(m(w[f+8>>2]*Z)+m(m(w[f>>2]*k)+m(B*w[f+4>>2]))));f:{if(1==(0|n)){if(!(tw[i>>2])break f;break r}if(!(t>m(0)))break r;if(!((t=m(t*m(-h)))>2]))break r}w[i>>2]=t}w[i>>2]=w[A+700>>2]*w[i>>2]}}}},function(A,r,f,e){A|=0,r|=0,f=m(f);A:{r:switch(1+(e|=0)|0){case 0:case 6:break r;default:break A}r:{f:switch(r-1|0){case 1:e=A+764|0,r=2;break r;case 3:e=A+760|0,r=1;break r;case 2:e=A+752|0,r=4;break r;case 0:break f;default:break A}e=A+756|0,r=8}w[e>>2]=f,o[A+748>>2]=r|o[A+748>>2]}},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0);A:{r:switch(f+1|0){case 0:case 6:break r;default:break A}r:switch(r-1|0){case 1:return m(w[A+764>>2]);case 3:return m(w[A+760>>2]);case 2:return m(w[A+752>>2]);case 0:break r;default:break A}e=w[A+756>>2]}return m(e)},function(){return 220},function(A,r,f){A|=0,r|=0,f|=0;var e=0,i=m(0);return hr(A,r,f),w[r+52>>2]=w[A+552>>2],w[r+56>>2]=w[A+556>>2],w[r+60>>2]=w[A+560>>2],w[r- -64>>2]=w[A+564>>2],w[r+68>>2]=w[A+568>>2],w[r+72>>2]=w[A+572>>2],w[r+76>>2]=w[A+576>>2],w[r+80>>2]=w[A+580>>2],w[r+84>>2]=w[A+584>>2],w[r+88>>2]=w[A+588>>2],w[r+92>>2]=w[A+592>>2],w[r+96>>2]=w[A+596>>2],w[r+100>>2]=w[A+600>>2],w[r+104>>2]=w[A+604>>2],w[r+108>>2]=w[A+608>>2],w[r+112>>2]=w[A+612>>2],w[r+116>>2]=w[A+616>>2],w[r+120>>2]=w[A+620>>2],w[r+124>>2]=w[A+624>>2],w[r+128>>2]=w[A+628>>2],w[r+132>>2]=w[A+632>>2],w[r+136>>2]=w[A+636>>2],w[r+140>>2]=w[A+640>>2],w[r+144>>2]=w[A+644>>2],w[r+148>>2]=w[A+648>>2],w[r+152>>2]=w[A+652>>2],w[r+156>>2]=w[A+656>>2],w[r+160>>2]=w[A+660>>2],w[r+164>>2]=w[A+664>>2],w[r+168>>2]=w[A+668>>2],w[r+172>>2]=w[A+672>>2],w[r+176>>2]=w[A+676>>2],o[r+184>>2]=v[A+736|0],o[r+188>>2]=v[A+737|0],w[r+196>>2]=w[A+684>>2],w[r+192>>2]=w[A+680>>2],o[r+180>>2]=v[A+740|0],e=r,i=ve(f=A+688|0),w[e+200>>2]=i,e=r,i=de(f),w[e+204>>2]=i,w[r+208>>2]=w[A+696>>2],w[r+212>>2]=w[A+700>>2],w[r+216>>2]=w[A+704>>2],8751},function(A){return o[748+(A|=0)>>2]},_e,function(A){A|=0;var r,f,e,i=0,n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=0,Q=0,E=m(0),W=0,N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0),H=m(0),I=m(0),T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=0;for(o[A+36>>2]=0,o[(i=8+(e=S-16|0)|0)>>2]=0,o[i+4>>2]=0,o[e>>2]=0,o[e+4>>2]=0,r=o[A+32>>2],f=o[A+28>>2];o[(W=(Z<<2)+e|0)>>2]=1065353216,z=w[r+404>>2],P=w[f+404>>2],s=w[f+56>>2],k=w[f+20>>2],N=w[f+24>>2],p=w[f+28>>2],F=w[f+60>>2],R=w[f+44>>2],Y=w[f+36>>2],V=w[f+40>>2],B=w[f+52>>2],u=w[A+308>>2],g=w[f+12>>2],a=w[A+300>>2],X=w[f+4>>2],d=w[A+304>>2],D=w[f+8>>2],t=w[r+56>>2],C=w[r+20>>2],v=w[r+24>>2],h=w[r+28>>2],c=w[r+52>>2],J=w[r+12>>2],x=w[r+4>>2],y=w[r+8>>2],M=w[r+60>>2],b=w[A+324>>2],H=w[r+44>>2],l=w[A+316>>2],I=w[r+36>>2],n=w[A+320>>2],T=w[r+40>>2],O=o[e+4>>2],i=G(Z,84)+A|0,o[(Q=i+48|0)>>2]=o[e>>2],o[Q+4>>2]=O,Q=o[e+12>>2],o[i+56>>2]=o[e+8>>2],o[i+60>>2]=Q,o[i+92>>2]=0,o[i+76>>2]=0,U=m(m(t+m(m(b*h)+m(m(l*C)+m(v*n))))-t),t=w[i+48>>2],j=m(m(c+m(m(b*J)+m(m(l*x)+m(y*n))))-c),c=w[i+52>>2],E=m(m(U*t)-m(j*c)),n=m(m(M+m(m(b*H)+m(m(l*I)+m(T*n))))-M),b=w[i+56>>2],l=m(m(n*c)-m(U*b)),n=m(m(j*b)-m(n*t)),h=m(m(H*E)+m(m(J*l)+m(h*n))),w[i+88>>2]=h,v=m(m(T*E)+m(m(y*l)+m(v*n))),w[i+84>>2]=v,l=m(m(I*E)+m(m(x*l)+m(C*n))),w[i+80>>2]=l,B=m(m(B+m(m(u*g)+m(m(a*X)+m(D*d))))-B),s=m(m(s+m(m(u*p)+m(m(a*k)+m(N*d))))-s),n=m(m(c*B)-m(t*s)),a=m(m(F+m(m(u*R)+m(m(a*Y)+m(V*d))))-F),u=m(m(s*b)-m(c*a)),a=m(m(a*t)-m(b*B)),d=m(m(R*n)+m(m(g*u)+m(p*a))),w[i+72>>2]=d,b=m(m(V*n)+m(m(D*u)+m(N*a))),w[i+68>>2]=b,u=m(m(Y*n)+m(m(X*u)+m(k*a))),w[i- -64>>2]=u,a=w[f+464>>2],n=w[f+460>>2],t=w[f+456>>2],o[i+108>>2]=0,t=m(u*t),w[i+96>>2]=t,n=m(b*n),w[i+100>>2]=n,a=m(d*a),w[i+104>>2]=a,c=w[r+464>>2],s=w[r+460>>2],k=w[r+456>>2],o[i+124>>2]=0,k=m(l*k),w[i+112>>2]=k,s=m(v*s),w[i+116>>2]=s,c=m(h*c),w[i+120>>2]=c,w[i+128>>2]=m(z+m(P+m(m(a*d)+m(m(t*u)+m(b*n)))))+m(m(c*h)+m(m(k*l)+m(v*s))),o[W>>2]=0,3!=(0|(Z=Z+1|0)););},function(A,r){r|=0,A=v[344+(A|=0)|0]?0:3,o[r+4>>2]=A,o[r>>2]=A},function(A,r){A|=0,r|=0;var f,e,i,n,a,t=0,c=0,b=0,u=m(0),l=m(0),s=0,k=m(0),d=m(0),v=m(0),h=m(0),B=m(0),Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0);b=o[A+28>>2],c=o[A+32>>2],t=o[r+8>>2],o[t>>2]=1065353216,e=o[r+24>>2],o[t+(n=4+(f=e<<2)|0)>>2]=1065353216,o[t+(a=8+(i=e<<3)|0)>>2]=1065353216,h=w[b+24>>2],B=w[b+28>>2],Z=w[b+40>>2],l=w[A+304>>2],d=w[b+44>>2],u=w[A+308>>2],v=w[b+12>>2],G=w[b+4>>2],Q=w[b+8>>2],E=w[b+20>>2],W=w[b+36>>2],k=w[A+300>>2],t=o[r+12>>2],o[t+12>>2]=0,o[t>>2]=0,Z=m(m(d*u)+m(m(W*k)+m(l*Z))),w[t+4>>2]=Z,h=m(m(B*u)+m(m(E*k)+m(l*h))),w[t+8>>2]=-h,o[12+(s=t+f|0)>>2]=0,B=m(m(v*u)+m(m(G*k)+m(Q*l))),w[s+8>>2]=B,o[s+4>>2]=0,w[s>>2]=-Z,o[8+(t=t+i|0)>>2]=0,o[t+12>>2]=0,w[t+4>>2]=-B,w[t>>2]=h,t=o[r+16>>2],o[t>>2]=-1082130432,o[t+n>>2]=-1082130432,o[t+a>>2]=-1082130432,v=w[c+40>>2],G=w[c+44>>2],d=w[c+24>>2],l=w[A+320>>2],Q=w[c+28>>2],u=w[A+324>>2],E=w[c+12>>2],W=w[c+4>>2],N=w[c+8>>2],p=w[c+36>>2],F=w[c+20>>2],k=w[A+316>>2],t=o[r+20>>2],o[t+12>>2]=0,o[t>>2]=0,d=m(m(Q*u)+m(m(F*k)+m(l*d))),w[t+8>>2]=d,v=m(m(G*u)+m(m(p*k)+m(l*v))),w[t+4>>2]=-v,o[12+(s=t+f|0)>>2]=0,l=m(m(E*u)+m(m(W*k)+m(N*l))),w[s+8>>2]=-l,o[s+4>>2]=0,w[s>>2]=v,o[8+(t=t+i|0)>>2]=0,o[t+12>>2]=0,w[t+4>>2]=l,w[t>>2]=-d,t=o[r+28>>2],s=o[A+332>>2],u=m(w[(1&s?A+336:r+4)>>2]*w[r>>2]),w[t>>2]=u*m(m(m(l+w[c+52>>2])-B)-w[b+52>>2]),w[t+f>>2]=u*m(m(m(d+w[c+56>>2])-h)-w[b+56>>2]),w[t+i>>2]=u*m(m(m(v+w[c+60>>2])-Z)-w[b+60>>2]),b=e<<1,2&s&&(c=o[r+32>>2],w[c>>2]=w[A+340>>2],w[c+f>>2]=w[A+340>>2],w[c+(b<<2)>>2]=w[A+340>>2]),(u=w[A+356>>2])>m(0)&&(k=m(-u),w[o[r+36>>2]>>2]=k,w[o[r+40>>2]>>2]=u,(l=w[A+356>>2])>m(0)&&(w[(c=e<<2)+o[r+36>>2]>>2]=k,w[c+o[r+40>>2]>>2]=u,l=w[A+356>>2]),l>m(0)&&(w[(b<<=2)+o[r+36>>2]>>2]=k,w[b+o[r+40>>2]>>2]=u)),w[r+48>>2]=w[A+352>>2]},function(A,r,f,e){A|=0,r|=0,f=m(f);A:if(-1==(0|(e|=0))){r:{f:switch(r-1|0){case 0:case 1:e=A+336|0,r=1;break r;case 2:case 3:break f;default:break A}e=A+340|0,r=2}w[e>>2]=f,o[A+332>>2]=r|o[A+332>>2]}},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0);e=m(34028234663852886e22);A:if(-1==(0|f)){r:switch(r-1|0){case 0:case 1:return m(w[A+336>>2]);case 2:case 3:break r;default:break A}e=w[A+340>>2]}return m(e)},nn,function(A,r,f){return hr(A|=0,r|=0,f|=0),w[r+52>>2]=w[A+300>>2],w[r+56>>2]=w[A+304>>2],w[r+60>>2]=w[A+308>>2],w[r- -64>>2]=w[A+312>>2],w[r+68>>2]=w[A+316>>2],w[r+72>>2]=w[A+320>>2],w[r+76>>2]=w[A+324>>2],w[r+80>>2]=w[A+328>>2],8718},function(A){return o[332+(A|=0)>>2]},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0);return a=w[f+100>>2],t=w[f+24>>2],c=w[f+16>>2],b=w[f+20>>2],i=w[f+108>>2],e=m(m(m(w[f+112>>2]-m(a*w[f+116>>2]))-m(m(m(m(t*w[A+72>>2])+m(m(c*w[A+64>>2])+m(b*w[A+68>>2])))+m(m(w[f+8>>2]*w[A+88>>2])+m(m(w[f>>2]*w[A+80>>2])+m(w[f+4>>2]*w[A+84>>2]))))*i))-m(m(m(m(w[f+56>>2]*w[r+72>>2])+m(m(w[f+48>>2]*w[r+64>>2])+m(w[f+52>>2]*w[r+68>>2])))+m(m(w[f+40>>2]*w[r+88>>2])+m(m(w[f+32>>2]*w[r+80>>2])+m(w[f+36>>2]*w[r+84>>2]))))*i)),((i=m(a+e))<(n=w[f+120>>2])||(n=w[f+124>>2])>2]=i,o[A+240>>2]&&(w[A+64>>2]=m(w[A+112>>2]*m(e*m(c*w[A+128>>2])))+w[A+64>>2],w[A+68>>2]=m(m(e*m(b*w[A+132>>2]))*w[A+116>>2])+w[A+68>>2],w[A+72>>2]=m(m(e*m(t*w[A+136>>2]))*w[A+120>>2])+w[A+72>>2],i=w[f+72>>2],n=w[f+68>>2],w[A+80>>2]=m(m(e*w[A+96>>2])*w[f+64>>2])+w[A+80>>2],a=w[A+104>>2],w[A+84>>2]=m(n*m(e*w[A+100>>2]))+w[A+84>>2],w[A+88>>2]=m(i*m(e*a))+w[A+88>>2]),o[r+240>>2]&&(i=w[f+56>>2],n=w[f+52>>2],w[r+64>>2]=m(w[r+112>>2]*m(e*m(w[f+48>>2]*w[r+128>>2])))+w[r+64>>2],w[r+68>>2]=m(m(e*m(n*w[r+132>>2]))*w[r+116>>2])+w[r+68>>2],w[r+72>>2]=m(m(e*m(i*w[r+136>>2]))*w[r+120>>2])+w[r+72>>2],i=w[f+88>>2],n=w[f+84>>2],w[r+80>>2]=m(m(e*w[r+96>>2])*w[f+80>>2])+w[r+80>>2],a=w[r+104>>2],w[r+84>>2]=m(n*m(e*w[r+100>>2]))+w[r+84>>2],w[r+88>>2]=m(i*m(e*a))+w[r+88>>2]),m(e)},function(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0);return i=w[f+100>>2],t=w[f+24>>2],c=w[f+16>>2],b=w[f+20>>2],n=w[f+108>>2],n=m(m(m(w[f+112>>2]-m(i*w[f+116>>2]))-m(m(m(m(t*w[A+72>>2])+m(m(c*w[A+64>>2])+m(b*w[A+68>>2])))+m(m(w[f+8>>2]*w[A+88>>2])+m(m(w[f>>2]*w[A+80>>2])+m(w[f+4>>2]*w[A+84>>2]))))*n))-m(m(m(m(w[f+56>>2]*w[r+72>>2])+m(m(w[f+48>>2]*w[r+64>>2])+m(w[f+52>>2]*w[r+68>>2])))+m(m(w[f+40>>2]*w[r+88>>2])+m(m(w[f+32>>2]*w[r+80>>2])+m(w[f+36>>2]*w[r+84>>2]))))*n)),e=(u=m(i+n))<(a=w[f+120>>2]),w[f+100>>2]=e?a:u,i=e?m(a-i):n,o[A+240>>2]&&(w[A+64>>2]=m(w[A+112>>2]*m(i*m(c*w[A+128>>2])))+w[A+64>>2],w[A+68>>2]=m(m(i*m(b*w[A+132>>2]))*w[A+116>>2])+w[A+68>>2],w[A+72>>2]=m(m(i*m(t*w[A+136>>2]))*w[A+120>>2])+w[A+72>>2],n=w[f+72>>2],a=w[f+68>>2],w[A+80>>2]=m(m(i*w[A+96>>2])*w[f+64>>2])+w[A+80>>2],t=w[A+104>>2],w[A+84>>2]=m(a*m(i*w[A+100>>2]))+w[A+84>>2],w[A+88>>2]=m(n*m(i*t))+w[A+88>>2]),o[r+240>>2]&&(n=w[f+56>>2],a=w[f+52>>2],w[r+64>>2]=m(w[r+112>>2]*m(i*m(w[f+48>>2]*w[r+128>>2])))+w[r+64>>2],w[r+68>>2]=m(m(i*m(a*w[r+132>>2]))*w[r+116>>2])+w[r+68>>2],w[r+72>>2]=m(m(i*m(n*w[r+136>>2]))*w[r+120>>2])+w[r+72>>2],n=w[f+88>>2],a=w[f+84>>2],w[r+80>>2]=m(m(i*w[r+96>>2])*w[f+80>>2])+w[r+80>>2],t=w[r+104>>2],w[r+84>>2]=m(a*m(i*w[r+100>>2]))+w[r+84>>2],w[r+88>>2]=m(n*m(i*t))+w[r+88>>2]),m(i)},function(A,r,f){A|=0,r|=0,f|=0;var e=m(0),i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=0;return(i=w[f+128>>2])!=m(0)&&(o[8792]=o[8792]+1,e=w[f+96>>2],n=m(i-m(e*w[f+116>>2])),a=w[f+24>>2],t=w[f+16>>2],c=w[f+20>>2],i=w[f+108>>2],i=m(m(n-m(m(m(m(a*w[A+152>>2])+m(m(t*w[A+144>>2])+m(c*w[A+148>>2])))+m(m(w[f+8>>2]*w[A+168>>2])+m(m(w[f>>2]*w[A+160>>2])+m(w[f+4>>2]*w[A+164>>2]))))*i))-m(m(m(m(w[f+56>>2]*w[r+152>>2])+m(m(w[f+48>>2]*w[r+144>>2])+m(w[f+52>>2]*w[r+148>>2])))+m(m(w[f+40>>2]*w[r+168>>2])+m(m(w[f+32>>2]*w[r+160>>2])+m(w[f+36>>2]*w[r+164>>2]))))*i)),u=(b=m(e+i))<(n=w[f+120>>2]),w[f+96>>2]=u?n:b,e=u?m(n-e):i,o[A+240>>2]&&(w[A+144>>2]=m(w[A+112>>2]*m(e*m(t*w[A+128>>2])))+w[A+144>>2],w[A+148>>2]=m(m(e*m(c*w[A+132>>2]))*w[A+116>>2])+w[A+148>>2],w[A+152>>2]=m(m(e*m(a*w[A+136>>2]))*w[A+120>>2])+w[A+152>>2],i=w[f+72>>2],n=w[f+68>>2],w[A+160>>2]=m(m(e*w[A+96>>2])*w[f+64>>2])+w[A+160>>2],a=w[A+104>>2],w[A+164>>2]=m(n*m(e*w[A+100>>2]))+w[A+164>>2],w[A+168>>2]=m(i*m(e*a))+w[A+168>>2]),o[r+240>>2]&&(i=w[f+56>>2],n=w[f+52>>2],w[r+144>>2]=m(w[r+112>>2]*m(e*m(w[f+48>>2]*w[r+128>>2])))+w[r+144>>2],w[r+148>>2]=m(m(e*m(n*w[r+132>>2]))*w[r+116>>2])+w[r+148>>2],w[r+152>>2]=m(m(e*m(i*w[r+136>>2]))*w[r+120>>2])+w[r+152>>2],i=w[f+88>>2],n=w[f+84>>2],w[r+160>>2]=m(m(e*w[r+96>>2])*w[f+80>>2])+w[r+160>>2],a=w[r+104>>2],w[r+164>>2]=m(n*m(e*w[r+100>>2]))+w[r+164>>2],w[r+168>>2]=m(i*m(e*a))+w[r+168>>2])),m(e)},Gr,function(A){Gr(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},zi,function(A,r,f,e,i,n,a,t,c,b){return A|=0,r|=0,f|=0,e|=0,i|=0,n|=0,a|=0,t|=0,c|=0,b|=0,S=b=S-16|0,Zn[o[8294]](5413),m(Zn[o[o[A>>2]+44>>2]](A,r,f,e,i,n,a,t,c)),m(Zn[o[o[A>>2]+48>>2]](A,r,f,e,i,n,a,t,c)),m(Zn[o[o[A>>2]+36>>2]](A,r,f,t)),Zn[o[8295]](),S=b+16|0,m(m(0))},zi,function(A){o[232+(A|=0)>>2]=0},sn,function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=m(0),n=0,t=m(0),c=m(0),b=m(0),u=0,l=m(0),s=m(0),k=0,d=m(0),h=0,B=0,Z=m(0),E=m(0),W=0,p=m(0),F=0,R=m(0),Y=0,V=m(0),g=0,X=m(0),D=m(0),C=m(0),J=0,x=m(0),y=0,M=0,H=0,I=0,T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=0,L=m(0),$=0,K=0,q=m(0),_=0,AA=m(0),rA=0,fA=m(0),eA=m(0),iA=0,nA=0,aA=0,tA=0,oA=m(0),cA=m(0),bA=m(0),uA=m(0),lA=m(0),kA=m(0),dA=m(0),vA=m(0),hA=m(0),BA=m(0),wA=m(0),ZA=m(0),GA=m(0),QA=m(0),EA=m(0),WA=m(0),NA=m(0),pA=m(0),FA=m(0),RA=m(0),YA=m(0),VA=m(0),gA=m(0),DA=m(0),CA=m(0),JA=m(0),xA=m(0),yA=m(0),MA=m(0),HA=m(0),IA=m(0),TA=m(0),UA=m(0),jA=m(0),zA=m(0),PA=m(0),OA=m(0);if((0|f)>0)for(;;){if(rA=0,S=W=S-80|0,_=o[(iA<<2)+r>>2],h=o[_+840>>2],M=sA(A,B=o[_+836>>2],w[e+12>>2]),H=sA(A,h,w[e+12>>2]),J=(n=o[A+16>>2])+G(M,244)|0,i=w[J+136>>2],l=m(i*i),i=w[J+128>>2],c=m(i*i),i=w[J+132>>2],!(m(l+m(c+m(i*i)))>2],l=m(i*i),i=w[J+128>>2],c=m(i*i),i=w[J+132>>2],m(l+m(c+m(i*i)))>2]))<=0))for($=n+G(H,244)|0,K=n+G(M,244)|0;;){if(F=G(rA,208)+_|0,w[F+84>>2]<=w[_+852>>2]){if(g=F+4|0,(0|(u=J=o[A+28>>2]))==o[A+32>>2]&&!((0|(Y=u?J<<1:1))<=(0|u))){if(Y?(o[8488]=o[8488]+1,k=0|Zn[o[8290]](G(Y,152),16),n=o[A+28>>2]):(k=0,n=J),!((0|n)<=0)){if(u=0,1!=(0|n))for(O=-2&n,y=0;pr((I=G(u,152))+k|0,I+o[A+36>>2]|0,152),pr((I=G(1|u,152))+k|0,I+o[A+36>>2]|0,152),u=u+2|0,(0|O)!=(0|(y=y+2|0)););1&n&&pr((n=G(u,152))+k|0,n+o[A+36>>2]|0,152)}!(n=o[A+36>>2])||!n|!v[A+40|0]||(o[8489]=o[8489]+1,Zn[o[8291]](n)),o[A+36>>2]=k,a[A+40|0]=1,o[A+32>>2]=Y,u=o[A+28>>2]}o[A+28>>2]=u+1,n=o[A+36>>2]+G(J,152)|0,o[n+148>>2]=H,o[n+144>>2]=M,o[n+132>>2]=g,b=w[F+52>>2],t=w[F+56>>2],i=w[F+60>>2],c=w[B+52>>2],s=w[B+56>>2],d=w[B+60>>2],o[W+76>>2]=0,i=m(i-d),w[W+72>>2]=i,t=m(t-s),w[W+68>>2]=t,b=m(b-c),w[W+64>>2]=b,d=w[F+36>>2],s=w[F+40>>2],c=w[F+44>>2],l=w[h+52>>2],X=w[h+56>>2],E=w[h+60>>2],o[W+60>>2]=0,c=m(c-E),w[W+56>>2]=c,s=m(s-X),w[W+52>>2]=s,d=m(d-l),w[W+48>>2]=d,X=m(0),T=m(0),AA=m(0),oA=m(0),o[K+240>>2]&&(l=m(w[K+192>>2]+w[K+224>>2]),E=m(w[K+196>>2]+w[K+228>>2]),T=m(m(w[K+184>>2]+w[K+216>>2])+m(m(l*t)-m(b*E))),p=m(w[K+200>>2]+w[K+232>>2]),AA=m(m(w[K+180>>2]+w[K+212>>2])+m(m(p*b)-m(i*l))),oA=m(m(w[K+176>>2]+w[K+208>>2])+m(m(E*i)-m(t*p)))),cA=m(0),bA=m(0),o[$+240>>2]&&(i=m(w[$+192>>2]+w[$+224>>2]),t=m(w[$+196>>2]+w[$+228>>2]),X=m(m(w[$+184>>2]+w[$+216>>2])+m(m(i*s)-m(d*t))),b=m(w[$+200>>2]+w[$+232>>2]),cA=m(m(w[$+180>>2]+w[$+212>>2])+m(m(b*d)-m(c*i))),bA=m(m(w[$+176>>2]+w[$+208>>2])+m(m(t*c)-m(s*b)))),uA=w[F+76>>2],lA=w[(y=F+68|0)>>2],kA=w[F+72>>2],Y=W- -64|0,l=m(0),i=m(0),L=m(0),nA=(O=o[A+16>>2])+G(H,244)|0,u=o[nA+240>>2],aA=O+G(M,244)|0,k=o[aA+240>>2],w[W+44>>2]=w[e+28>>2],U=w[e+12>>2],C=w[e+36>>2],t=w[e+40>>2];A:if(6&(I=o[g+128>>2])){if(t=2&I?w[g+152>>2]:t,!(4&I))break A;C=w[g+156>>2]}else 8&I&&(b=m(U*w[g+152>>2]),t=(t=m(b+w[g+156>>2]))>2],c=w[g+68>>2],s=w[g+64>>2],d=w[Y+4>>2],E=m(m(b*c)-m(s*d)),Z=w[Y+8>>2],p=m(Z*s),s=w[g+72>>2],p=m(p-m(s*b)),Z=m(m(d*s)-m(c*Z)),b=m(0),c=m(0),k&&(c=m(m(m(w[k+364>>2]*E)+m(m(w[k+356>>2]*Z)+m(p*w[k+360>>2])))*w[k+612>>2]),b=m(m(m(w[k+348>>2]*E)+m(m(w[k+340>>2]*Z)+m(p*w[k+344>>2])))*w[k+608>>2]),i=m(m(m(w[k+332>>2]*E)+m(m(w[k+324>>2]*Z)+m(p*w[k+328>>2])))*w[k+604>>2])),w[n+64>>2]=i,o[n+76>>2]=0,w[n+72>>2]=c,w[n+68>>2]=b,s=w[W+48>>2],d=w[g+68>>2],V=w[g+64>>2],j=w[W+52>>2],R=m(m(s*d)-m(V*j)),z=w[W+56>>2],P=w[g+72>>2],V=m(m(z*V)-m(P*s)),j=m(m(j*P)-m(d*z)),s=m(0),d=m(0),u&&(s=m(-j),d=m(m(m(m(w[u+356>>2]*s)-m(w[u+360>>2]*V))-m(w[u+364>>2]*R))*w[u+612>>2]),l=m(m(m(m(w[u+324>>2]*s)-m(w[u+328>>2]*V))-m(w[u+332>>2]*R))*w[u+604>>2]),s=m(m(m(m(w[u+340>>2]*s)-m(w[u+344>>2]*V))-m(w[u+348>>2]*R))*w[u+608>>2])),w[n+80>>2]=l,o[n+92>>2]=0,w[n+88>>2]=d,w[n+84>>2]=s,z=w[W+44>>2],U=m(m(1)/U),x=m(U*t),k?(t=w[Y+4>>2],q=w[Y>>2],P=m(w[g+72>>2]*m(m(i*t)-m(q*b))),D=b,b=w[Y+8>>2],c=m(w[k+404>>2]+m(P+m(m(w[g+64>>2]*m(m(D*b)-m(t*c)))+m(m(m(c*q)-m(b*i))*w[g+68>>2]))))):c=m(0),u?(t=w[W+48>>2],b=w[W+52>>2],i=m(w[g+72>>2]*m(m(s*t)-m(l*b))),D=m(d*b),b=w[W+56>>2],l=m(w[u+404>>2]+m(i+m(m(w[g+64>>2]*m(D-m(s*b)))+m(m(m(l*b)-m(d*t))*w[g+68>>2]))))):l=m(0),w[n+108>>2]=z/m(x+m(c+l)),k?(tA=o[4+(I=g- -64|0)>>2],o[n+16>>2]=o[I>>2],o[n+20>>2]=tA,tA=o[I+12>>2],o[n+24>>2]=o[I+8>>2],o[n+28>>2]=tA,o[n+12>>2]=0,w[n+8>>2]=E,w[n+4>>2]=p,w[n>>2]=Z):(o[n>>2]=0,o[n+4>>2]=0,o[n+24>>2]=0,o[n+28>>2]=0,o[n+16>>2]=0,o[n+20>>2]=0,o[n+8>>2]=0,o[n+12>>2]=0),u?(i=w[g+64>>2],t=w[g+68>>2],b=w[g+72>>2],o[n+60>>2]=0,o[n+44>>2]=0,w[n+40>>2]=-R,w[n+36>>2]=-V,w[n+32>>2]=-j,w[n+56>>2]=-b,w[n+52>>2]=-t,w[n+48>>2]=-i):(o[n+32>>2]=0,o[n+36>>2]=0,o[n+56>>2]=0,o[n+60>>2]=0,o[n+48>>2]=0,o[n+52>>2]=0,o[n+40>>2]=0,o[n+44>>2]=0),b=m(0),c=m(0),s=m(0),d=m(0),k&&(i=w[k+388>>2],t=w[Y+4>>2],c=w[Y>>2],l=w[k+392>>2],d=m(m(m(i*t)-m(c*l))+w[k+380>>2]),E=w[k+396>>2],Z=m(E*c),c=w[Y+8>>2],s=m(m(Z-m(c*i))+w[k+376>>2]),c=m(m(m(l*c)-m(t*E))+w[k+372>>2])),Z=m(0),i=m(0),u&&(t=w[u+388>>2],b=w[W+52>>2],l=w[W+48>>2],E=w[u+392>>2],i=m(m(m(t*b)-m(l*E))+w[u+380>>2]),p=w[u+396>>2],Z=m(p*l),l=w[W+56>>2],Z=m(m(Z-m(l*t))+w[u+376>>2]),b=m(m(m(E*l)-m(b*p))+w[u+372>>2])),p=w[e+64>>2],dA=w[g+80>>2],vA=w[g+72>>2],hA=w[g+68>>2],BA=w[g+64>>2],w[n+104>>2]=w[g+84>>2],wA=w[e+96>>2],ZA=w[g+96>>2];A:if(4&v[e+72|0]){if(t=m(w[g+132>>2]*w[e+68>>2]),w[n+100>>2]=t,!k|!o[aA+240>>2]||(l=w[k+416>>2],E=w[n+24>>2],R=w[k+412>>2],V=w[n+20>>2],Y=O+G(M,244)|0,w[Y+64>>2]=m(w[Y+112>>2]*m(t*m(m(w[n+16>>2]*w[Y+128>>2])*w[k+408>>2])))+w[Y+64>>2],w[Y+68>>2]=m(m(t*m(R*m(V*w[Y+132>>2])))*w[Y+116>>2])+w[Y+68>>2],w[Y+72>>2]=m(m(t*m(l*m(E*w[Y+136>>2])))*w[Y+120>>2])+w[Y+72>>2],l=w[n+72>>2],E=w[n+68>>2],w[Y+80>>2]=m(m(t*w[Y+96>>2])*w[n+64>>2])+w[Y+80>>2],R=w[Y+104>>2],w[Y+84>>2]=m(E*m(t*w[Y+100>>2]))+w[Y+84>>2],w[Y+88>>2]=m(l*m(t*R))+w[Y+88>>2]),!u|!o[nA+240>>2])break A;k=O+G(H,244)|0,l=w[k+120>>2],E=w[u+416>>2],R=w[n+56>>2],V=w[k+136>>2],j=w[k+116>>2],z=w[u+412>>2],P=w[n+52>>2],q=w[k+132>>2],D=w[n+88>>2],fA=w[n+84>>2],eA=w[n+80>>2],t=w[n+100>>2],w[k+64>>2]=w[k+64>>2]+m(w[k+112>>2]*m(m(m(w[k+128>>2]*w[n+48>>2])*w[u+408>>2])*t)),w[k+80>>2]=w[k+80>>2]+m(eA*m(t*w[k+96>>2])),w[k+84>>2]=w[k+84>>2]+m(fA*m(t*w[k+100>>2])),w[k+88>>2]=w[k+88>>2]+m(D*m(t*w[k+104>>2])),w[k+68>>2]=w[k+68>>2]+m(j*m(t*m(z*m(q*P)))),w[k+72>>2]=w[k+72>>2]+m(l*m(t*m(E*m(V*R))))}else o[n+100>>2]=0;o[n+96>>2]=0,R=m(0),V=m(0),j=m(0),t=m(0),l=m(0),z=m(0),P=m(0),o[aA+240>>2]&&(u=O+G(M,244)|0,P=w[u+224>>2],l=w[u+232>>2],z=w[u+228>>2],V=w[u+216>>2],j=w[u+212>>2],t=w[u+208>>2]),q=m(0),D=m(0),fA=m(0),eA=m(0),o[nA+240>>2]&&(u=O+G(H,244)|0,L=w[u+224>>2],fA=w[u+232>>2],eA=w[u+228>>2],D=w[u+216>>2],q=w[u+212>>2],R=w[u+208>>2]),u=O+G(M,244)|0,GA=w[u+200>>2],QA=w[u+196>>2],EA=w[u+192>>2],WA=w[u+176>>2],NA=w[n+20>>2],pA=w[u+180>>2],FA=w[n+24>>2],RA=w[u+184>>2],u=O+G(H,244)|0,YA=w[u+176>>2],VA=w[n+52>>2],gA=w[u+180>>2],DA=w[n+56>>2],CA=w[u+184>>2],JA=w[u+192>>2],xA=w[n+36>>2],yA=w[u+196>>2],MA=w[n+40>>2],HA=w[u+200>>2],IA=w[n+8>>2],TA=w[n+4>>2],UA=w[n>>2],jA=w[n+16>>2],zA=w[n+48>>2],PA=w[n+32>>2],k=o[e+52>>2],OA=w[e+56>>2],E=w[n+108>>2],o[n+120>>2]=0,o[n+124>>2]=1343554297,w[n+116>>2]=x*E,u=(p=m(dA+p))>m(0),C=m(E*m(u?0:U*m(C*m(-p)))),k=!k|p>OA,w[n+128>>2]=k?m(0):C,i=m(m(vA*m(d-i))+m(m(BA*m(c-b))+m(m(s-Z)*hA))),i=m(Q(i))>2]=m(E*(u?m(i-m(p*U)):i))+(k?C:m(-0)),o[n+140>>2]=o[A+68>>2],w[F+92>>2]>m(0)&&(XA(A,y,M,H,J,w[F+96>>2]),b=w[y+8>>2],m(Q(b))>m(.7071067690849304)?(d=w[y+4>>2],i=m(m(d*d)+m(b*b)),c=m(m(1)/m(N(i))),s=m(i*c),i=m(c*m(-b)),l=w[y>>2],t=m(i*l),b=m(d*c),l=m(b*m(-l)),c=m(0)):(s=w[y>>2],c=w[y+4>>2],t=m(m(s*s)+m(c*c)),i=m(m(1)/m(N(t))),t=m(t*i),c=m(i*m(-c)),l=m(b*c),i=m(s*i),s=m(i*m(-b)),b=m(0)),d=m(m(1)/m(N(m(m(b*b)+m(m(c*c)+m(i*i)))))),b=m(b*d),w[W+36>>2]=b,i=m(i*d),w[W+32>>2]=i,c=m(c*d),w[W+28>>2]=c,E=m(m(1)/m(N(m(m(t*t)+m(m(s*s)+m(l*l)))))),d=m(t*E),w[W+20>>2]=d,t=m(l*E),w[W+16>>2]=t,s=m(s*E),w[W+12>>2]=s,(u=2&o[B+180>>2])&&(j=w[B+172>>2],l=w[B+44>>2],E=w[B+12>>2],p=w[B+28>>2],z=w[B+164>>2],Z=w[B+36>>2],R=w[B+4>>2],V=w[B+20>>2],P=w[B+168>>2],C=w[B+40>>2],L=w[B+8>>2],U=w[B+24>>2],o[W+40>>2]=0,x=l,l=m(j*m(m(l*b)+m(m(E*c)+m(i*p)))),D=Z,Z=m(z*m(m(Z*b)+m(m(R*c)+m(i*V)))),c=m(P*m(m(C*b)+m(m(L*c)+m(i*U)))),b=m(m(x*l)+m(m(D*Z)+m(C*c))),w[W+36>>2]=b,i=m(m(p*l)+m(m(V*Z)+m(U*c))),w[W+32>>2]=i,c=m(m(E*l)+m(m(R*Z)+m(L*c))),w[W+28>>2]=c),(k=2&o[h+180>>2])&&(j=w[h+172>>2],l=w[h+44>>2],E=w[h+12>>2],p=w[h+28>>2],z=w[h+164>>2],Z=w[h+36>>2],R=w[h+4>>2],V=w[h+20>>2],P=w[h+168>>2],C=w[h+40>>2],L=w[h+8>>2],U=w[h+24>>2],o[W+40>>2]=0,x=l,l=m(j*m(m(l*b)+m(m(E*c)+m(i*p)))),D=Z,Z=m(z*m(m(Z*b)+m(m(R*c)+m(V*i)))),c=m(P*m(m(C*b)+m(m(L*c)+m(i*U)))),b=m(m(x*l)+m(m(D*Z)+m(C*c))),w[W+36>>2]=b,i=m(m(p*l)+m(m(V*Z)+m(U*c))),w[W+32>>2]=i,c=m(m(E*l)+m(m(R*Z)+m(L*c))),w[W+28>>2]=c),u&&(j=w[B+172>>2],l=w[B+44>>2],E=w[B+12>>2],p=w[B+28>>2],z=w[B+164>>2],Z=w[B+36>>2],R=w[B+4>>2],V=w[B+20>>2],P=w[B+168>>2],C=w[B+40>>2],L=w[B+8>>2],U=w[B+24>>2],o[W+24>>2]=0,x=l,l=m(j*m(m(l*d)+m(m(E*s)+m(t*p)))),D=Z,Z=m(z*m(m(Z*d)+m(m(R*s)+m(t*V)))),s=m(P*m(m(C*d)+m(m(L*s)+m(t*U)))),d=m(m(x*l)+m(m(D*Z)+m(C*s))),w[W+20>>2]=d,t=m(m(p*l)+m(m(V*Z)+m(U*s))),w[W+16>>2]=t,s=m(m(E*l)+m(m(R*Z)+m(L*s))),w[W+12>>2]=s),k&&(j=w[h+172>>2],l=w[h+44>>2],E=w[h+12>>2],p=w[h+28>>2],z=w[h+164>>2],Z=w[h+36>>2],R=w[h+4>>2],V=w[h+20>>2],P=w[h+168>>2],C=w[h+40>>2],L=w[h+8>>2],U=w[h+24>>2],o[W+24>>2]=0,x=l,l=m(j*m(m(l*d)+m(m(E*s)+m(t*p)))),D=Z,Z=m(z*m(m(Z*d)+m(m(R*s)+m(V*t)))),s=m(P*m(m(C*d)+m(m(L*s)+m(t*U)))),d=m(m(x*l)+m(m(D*Z)+m(C*s))),w[W+20>>2]=d,t=m(m(p*l)+m(m(V*Z)+m(U*s))),w[W+16>>2]=t,s=m(m(E*l)+m(m(R*Z)+m(L*s))),w[W+12>>2]=s),+m(N(m(m(b*b)+m(m(c*c)+m(i*i)))))>.001&&XA(A,W+28|0,M,H,J,w[F+92>>2]),+m(N(m(m(d*d)+m(m(s*s)+m(t*t)))))>.001&&XA(A,W+12|0,M,H,J,w[F+92>>2]));A:if(1&a[F+132|0]&&32&v[e+72|0])mA(A,F+172|0,M,H,J,g,W- -64|0,W+48|0,i=w[W+44>>2],e,w[F+148>>2],w[F+164>>2]),16&v[e+72|0]&&mA(A,F+188|0,M,H,J,g,W- -64|0,W+48|0,i,e,w[F+152>>2],w[F+164>>2]);else{if(l=w[y>>2],i=w[y+4>>2],b=w[y+8>>2],o[F+184>>2]=0,c=m(T-X),d=m(oA-bA),s=m(AA-cA),t=m(m(uA*c)+m(m(lA*d)+m(s*kA))),c=m(c-m(b*t)),w[F+180>>2]=c,s=m(s-m(t*i)),w[F+176>>2]=s,u=F+172|0,d=m(d-m(t*l)),w[u>>2]=d,!(64&v[e+72|0])&&(t=m(m(c*c)+m(m(d*d)+m(s*s))))>m(1.1920928955078125e-7)){if(b=m(m(1)/m(N(t))),i=m(c*b),w[u+8>>2]=i,t=m(s*b),w[u+4>>2]=t,b=m(d*b),w[u>>2]=b,1&a[B+180|0]&&(V=w[B+172>>2],c=w[B+44>>2],s=w[B+12>>2],d=w[B+28>>2],C=w[B+164>>2],l=w[B+36>>2],X=w[B+4>>2],E=w[B+20>>2],T=w[B+168>>2],p=w[B+40>>2],Z=w[B+8>>2],R=w[B+24>>2],o[u+12>>2]=0,x=c,c=m(V*m(m(c*i)+m(m(s*b)+m(t*d)))),D=l,l=m(C*m(m(l*i)+m(m(X*b)+m(t*E)))),b=m(T*m(m(p*i)+m(m(Z*b)+m(t*R)))),i=m(m(x*c)+m(m(D*l)+m(p*b))),w[u+8>>2]=i,t=m(m(d*c)+m(m(E*l)+m(R*b))),w[u+4>>2]=t,b=m(m(s*c)+m(m(X*l)+m(Z*b))),w[u>>2]=b),1&a[h+180|0]&&(V=w[h+172>>2],c=w[h+44>>2],s=w[h+12>>2],d=w[h+28>>2],C=w[h+164>>2],l=w[h+36>>2],X=w[h+4>>2],E=w[h+20>>2],T=w[h+168>>2],p=w[h+40>>2],Z=w[h+8>>2],R=w[h+24>>2],o[u+12>>2]=0,x=c,c=m(V*m(m(c*i)+m(m(s*b)+m(t*d)))),D=l,l=m(C*m(m(l*i)+m(m(X*b)+m(E*t)))),i=m(T*m(m(p*i)+m(m(Z*b)+m(t*R)))),w[u+8>>2]=m(x*c)+m(m(D*l)+m(p*i)),w[u+4>>2]=m(d*c)+m(m(E*l)+m(R*i)),w[u>>2]=m(s*c)+m(m(X*l)+m(Z*i))),mA(A,u,M,H,J,g,W- -64|0,W+48|0,V=w[W+44>>2],e,m(0),m(0)),!(16&v[e+72|0]))break A;i=w[u+4>>2],t=w[y+4>>2],b=w[y>>2],c=w[u+8>>2],s=w[u>>2],d=w[y+8>>2],o[F+200>>2]=0,l=m(m(s*t)-m(b*i)),X=m(m(i*d)-m(t*c)),t=m(m(c*b)-m(d*s)),b=m(m(1)/m(N(m(m(l*l)+m(m(X*X)+m(t*t)))))),i=m(l*b),w[F+196>>2]=i,t=m(t*b),w[F+192>>2]=t,u=F+188|0,b=m(X*b),w[u>>2]=b,1&a[B+180|0]&&(C=w[B+172>>2],c=w[B+44>>2],s=w[B+12>>2],d=w[B+28>>2],T=w[B+164>>2],l=w[B+36>>2],X=w[B+4>>2],E=w[B+20>>2],AA=w[B+168>>2],p=w[B+40>>2],Z=w[B+8>>2],R=w[B+24>>2],o[u+12>>2]=0,x=c,c=m(C*m(m(c*i)+m(m(s*b)+m(t*d)))),D=l,l=m(T*m(m(l*i)+m(m(X*b)+m(t*E)))),b=m(AA*m(m(p*i)+m(m(Z*b)+m(t*R)))),i=m(m(x*c)+m(m(D*l)+m(p*b))),w[u+8>>2]=i,t=m(m(d*c)+m(m(E*l)+m(R*b))),w[u+4>>2]=t,b=m(m(s*c)+m(m(X*l)+m(Z*b))),w[u>>2]=b),1&a[h+180|0]&&(C=w[h+172>>2],c=w[h+44>>2],s=w[h+12>>2],d=w[h+28>>2],T=w[h+164>>2],l=w[h+36>>2],X=w[h+4>>2],E=w[h+20>>2],AA=w[h+168>>2],p=w[h+40>>2],Z=w[h+8>>2],R=w[h+24>>2],o[u+12>>2]=0,x=c,c=m(C*m(m(c*i)+m(m(s*b)+m(t*d)))),D=l,l=m(T*m(m(l*i)+m(m(X*b)+m(E*t)))),i=m(AA*m(m(p*i)+m(m(Z*b)+m(t*R)))),w[u+8>>2]=m(x*c)+m(m(D*l)+m(p*i)),w[u+4>>2]=m(d*c)+m(m(E*l)+m(R*i)),w[u>>2]=m(s*c)+m(m(X*l)+m(Z*i))),mA(A,u,M,H,J,g,W- -64|0,W+48|0,V,e,m(0),m(0));break A}if(k=F+188|0,m(Q(b))>m(.7071067690849304)?(c=m(m(i*i)+m(b*b)),t=m(m(1)/m(N(c))),d=m(c*t),c=m(t*m(-b)),s=m(l*c),i=m(i*t),X=m(i*m(-l)),t=m(0)):(t=m(m(l*l)+m(i*i)),c=m(m(1)/m(N(t))),s=m(t*c),t=m(c*m(-i)),X=m(b*t),c=m(l*c),d=m(c*m(-b)),i=m(0)),w[u+8>>2]=i,w[u+4>>2]=c,w[u>>2]=t,w[k+8>>2]=s,w[k+4>>2]=X,w[k>>2]=d,1&a[B+180|0]&&(V=w[B+172>>2],b=w[B+44>>2],s=w[B+12>>2],d=w[B+28>>2],C=w[B+164>>2],l=w[B+36>>2],X=w[B+4>>2],E=w[B+20>>2],T=w[B+168>>2],p=w[B+40>>2],Z=w[B+8>>2],R=w[B+24>>2],o[u+12>>2]=0,x=b,b=m(V*m(m(b*i)+m(m(s*t)+m(c*d)))),D=l,l=m(C*m(m(l*i)+m(m(X*t)+m(E*c)))),t=m(T*m(m(p*i)+m(m(Z*t)+m(c*R)))),i=m(m(x*b)+m(m(D*l)+m(p*t))),w[u+8>>2]=i,c=m(m(d*b)+m(m(E*l)+m(R*t))),w[u+4>>2]=c,t=m(m(s*b)+m(m(X*l)+m(Z*t))),w[u>>2]=t),1&a[h+180|0]&&(V=w[h+172>>2],b=w[h+44>>2],s=w[h+12>>2],d=w[h+28>>2],C=w[h+164>>2],l=w[h+36>>2],X=w[h+4>>2],E=w[h+20>>2],T=w[h+168>>2],p=w[h+40>>2],Z=w[h+8>>2],R=w[h+24>>2],o[u+12>>2]=0,x=b,b=m(V*m(m(b*i)+m(m(s*t)+m(c*d)))),D=l,l=m(C*m(m(l*i)+m(m(X*t)+m(E*c)))),i=m(T*m(m(p*i)+m(m(Z*t)+m(c*R)))),w[u+8>>2]=m(x*b)+m(m(D*l)+m(p*i)),w[u+4>>2]=m(d*b)+m(m(E*l)+m(R*i)),w[u>>2]=m(s*b)+m(m(X*l)+m(Z*i))),mA(A,u,M,H,J,g,W- -64|0,W+48|0,V=w[W+44>>2],e,m(0),m(0)),16&(u=o[e+72>>2])&&(1&a[B+180|0]&&(p=w[B+172>>2],i=w[B+44>>2],t=w[B+12>>2],b=w[B+28>>2],C=w[B+164>>2],c=w[B+36>>2],s=w[B+4>>2],d=w[B+20>>2],T=w[B+168>>2],l=w[B+40>>2],X=w[B+8>>2],E=w[B+24>>2],o[k+12>>2]=0,x=i,D=p,i=w[k+8>>2],p=w[k>>2],Z=w[k+4>>2],R=m(D*m(m(x*i)+m(m(t*p)+m(b*Z)))),D=c,c=m(C*m(m(c*i)+m(m(s*p)+m(d*Z)))),i=m(T*m(m(l*i)+m(m(X*p)+m(Z*E)))),w[k+8>>2]=m(x*R)+m(m(D*c)+m(l*i)),w[k+4>>2]=m(b*R)+m(m(d*c)+m(E*i)),w[k>>2]=m(t*R)+m(m(s*c)+m(X*i))),1&a[h+180|0]&&(p=w[h+172>>2],i=w[h+44>>2],t=w[h+12>>2],b=w[h+28>>2],C=w[h+164>>2],c=w[h+36>>2],s=w[h+4>>2],d=w[h+20>>2],T=w[h+168>>2],l=w[h+40>>2],X=w[h+8>>2],E=w[h+24>>2],o[k+12>>2]=0,x=i,D=p,i=w[k+8>>2],p=w[k>>2],Z=w[k+4>>2],R=m(D*m(m(x*i)+m(m(t*p)+m(b*Z)))),D=c,c=m(C*m(m(c*i)+m(m(s*p)+m(d*Z)))),i=m(T*m(m(l*i)+m(m(X*p)+m(Z*E)))),w[k+8>>2]=m(x*R)+m(m(D*c)+m(l*i)),w[k+4>>2]=m(b*R)+m(m(d*c)+m(E*i)),w[k>>2]=m(t*R)+m(m(s*c)+m(X*i))),mA(A,k,M,H,J,g,W- -64|0,W+48|0,V,e,m(0),m(0)),u=o[e+72>>2]),80&~u)break A;o[F+132>>2]=1|o[F+132>>2]}k=o[A+76>>2],O=o[n+140>>2];A:if(4&(I=o[e+72>>2])){if(Y=o[A+16>>2],J=o[240+(Y+G(H,244)|0)>>2],u=o[240+(Y+G(M,244)|0)>>2],F=k+G(O,152)|0,i=m(w[g+136>>2]*w[e+68>>2]),w[F+100>>2]=i,u&&(b=w[u+416>>2],c=w[F+24>>2],s=w[u+412>>2],d=w[F+20>>2],n=Y+G(M,244)|0,t=w[u+404>>2],w[n+64>>2]=m(m(i*m(m(t*w[F+16>>2])*w[u+408>>2]))*w[n+112>>2])+w[n+64>>2],w[n+68>>2]=m(m(i*m(s*m(t*d)))*w[n+116>>2])+w[n+68>>2],w[n+72>>2]=m(m(i*m(b*m(t*c)))*w[n+120>>2])+w[n+72>>2],t=w[F+72>>2],b=w[F+68>>2],w[n+80>>2]=m(m(i*w[n+96>>2])*w[F+64>>2])+w[n+80>>2],c=w[n+104>>2],w[n+84>>2]=m(b*m(i*w[n+100>>2]))+w[n+84>>2],w[n+88>>2]=m(t*m(i*c))+w[n+88>>2]),J&&(y=k+G(O,152)|0,b=w[y+88>>2],c=w[y+84>>2],s=w[y+80>>2],d=w[J+416>>2],l=w[y+56>>2],X=w[J+412>>2],E=w[y+52>>2],n=Y+G(H,244)|0,t=w[J+404>>2],i=w[F+100>>2],w[n+64>>2]=w[n+64>>2]+m(m(m(m(t*w[y+48>>2])*w[J+408>>2])*i)*w[n+112>>2]),w[n+68>>2]=w[n+68>>2]+m(m(i*m(X*m(t*E)))*w[n+116>>2]),w[n+72>>2]=w[n+72>>2]+m(m(i*m(d*m(t*l)))*w[n+120>>2]),w[n+80>>2]=w[n+80>>2]+m(s*m(i*w[n+96>>2])),t=w[n+104>>2],w[n+84>>2]=w[n+84>>2]+m(c*m(i*w[n+100>>2])),w[n+88>>2]=w[n+88>>2]+m(b*m(t*i))),!(16&I))break A;if(F=k+G(y=O+1|0,152)|0,i=m(w[g+140>>2]*w[e+68>>2]),w[F+100>>2]=i,u&&(b=w[F+24>>2],c=w[F+20>>2],n=Y+G(M,244)|0,t=w[u+404>>2],w[n+64>>2]=m(m(i*m(t*w[F+16>>2]))*w[n+112>>2])+w[n+64>>2],w[n+68>>2]=m(m(i*m(t*c))*w[n+116>>2])+w[n+68>>2],w[n+72>>2]=m(m(i*m(t*b))*w[n+120>>2])+w[n+72>>2],t=w[F+72>>2],b=w[F+68>>2],w[n+80>>2]=m(m(i*w[n+96>>2])*w[F+64>>2])+w[n+80>>2],c=w[n+104>>2],w[n+84>>2]=m(b*m(i*w[n+100>>2]))+w[n+84>>2],w[n+88>>2]=m(t*m(i*c))+w[n+88>>2]),!J)break A;u=k+G(y,152)|0,b=w[u+88>>2],c=w[u+84>>2],s=w[u+56>>2],d=w[u+52>>2],l=w[u+48>>2],t=w[J+404>>2],n=Y+G(H,244)|0,i=w[F+100>>2],w[n+80>>2]=w[n+80>>2]+m(w[u+80>>2]*m(w[n+96>>2]*i)),w[n+64>>2]=w[n+64>>2]+m(m(i*m(t*l))*w[n+112>>2]),w[n+68>>2]=w[n+68>>2]+m(m(i*m(t*d))*w[n+116>>2]),w[n+72>>2]=w[n+72>>2]+m(m(i*m(t*s))*w[n+120>>2]),t=w[n+104>>2],w[n+84>>2]=w[n+84>>2]+m(c*m(i*w[n+100>>2])),w[n+88>>2]=w[n+88>>2]+m(b*m(t*i))}else n=k+G(O,152)|0,o[n+100>>2]=0,16&I&&(o[n+252>>2]=0);u=o[_+844>>2]}if(!((0|(rA=rA+1|0))<(0|u)))break}if(S=W+80|0,(0|(iA=iA+1|0))==(0|f))break}},function(A,r,f,e,i,n,a,t){A|=0,r|=0,f|=0,e|=0,i|=0,n|=0,t|=0;var c=m(0),b=m(0);A:if(o[t+52>>2]&&!((0|(r=o[t+20>>2]))<=0||(f=0,(0|(e=o[A+28>>2]))<=0)))for(;;){if(i=0,c=m(0),(0|e)>0){for(;n=o[A+16>>2],r=o[A+36>>2]+G(o[o[A+116>>2]+(i<<2)>>2],152)|0,b=m(Zn[o[A+220>>2]](n+G(o[r+144>>2],244)|0,G(o[r+148>>2],244)+n|0,r)),c=m(m(b*b)+c),(0|(i=i+1|0))!=(0|e););r=o[t+20>>2]}if((r-1|0)<=(0|f)|w[t+92>>2]>=c)break A;if((0|(f=f+1|0))>=(0|r))break A;e=o[A+28>>2]}},function(A,r,f,e){A|=0,r|=0,f|=0,e|=0;var i=0,n=m(0),t=0,c=m(0),b=0,u=m(0),l=m(0),s=0,k=m(0),d=m(0),h=0,B=0;if(4&(f=o[e+72>>2])&&!((0|(r=o[A+28>>2]))<=0))if(s=o[A+76>>2],b=o[A+36>>2],16&f)for(f=0;i=b+G(f,152)|0,t=o[i+132>>2],w[t+132>>2]=w[i+100>>2],i=s+G(o[i+140>>2],152)|0,w[t+136>>2]=w[i+100>>2],w[t+140>>2]=w[i+252>>2],(0|r)!=(0|(f=f+1|0)););else{if(f=0,1!=(0|r))for(B=-2&r;t=b+G(f,152)|0,h=o[t+132>>2],w[h+132>>2]=w[t+100>>2],w[h+136>>2]=w[100+(s+G(o[t+140>>2],152)|0)>>2],t=b+G(1|f,152)|0,h=o[t+132>>2],w[h+132>>2]=w[t+100>>2],w[h+136>>2]=w[100+(s+G(o[t+140>>2],152)|0)>>2],f=f+2|0,(0|B)!=(0|(i=i+2|0)););1&r&&(r=b+G(f,152)|0,f=o[r+132>>2],w[f+132>>2]=w[r+100>>2],w[f+136>>2]=w[100+(s+G(o[r+140>>2],152)|0)>>2])}if((0|(B=o[A+48>>2]))>0)for(h=o[A+56>>2],s=0;f=h+G(s,152)|0,i=o[f+132>>2],(r=o[i+44>>2])&&(b=o[i+28>>2],u=w[b+416>>2],l=w[f+24>>2],k=w[b+412>>2],d=w[f+20>>2],n=w[f+100>>2],c=m(m(1)/w[e+12>>2]),w[r>>2]=w[r>>2]+m(m(m(w[f+16>>2]*n)*w[b+408>>2])*c),w[r+4>>2]=m(m(k*m(n*d))*c)+w[r+4>>2],w[r+8>>2]=m(m(u*m(n*l))*c)+w[r+8>>2],t=o[i+32>>2],u=w[t+416>>2],l=w[f+56>>2],k=w[t+412>>2],d=w[f+52>>2],n=w[f+100>>2],c=m(m(1)/w[e+12>>2]),w[r+32>>2]=w[r+32>>2]+m(m(m(w[f+48>>2]*n)*w[t+408>>2])*c),w[r+36>>2]=m(m(k*m(n*d))*c)+w[r+36>>2],w[r+40>>2]=m(m(u*m(n*l))*c)+w[r+40>>2],u=w[b+612>>2],l=w[f+8>>2],k=w[b+608>>2],d=w[f+4>>2],n=w[f+100>>2],c=m(m(1)/w[e+12>>2]),w[r+16>>2]=w[r+16>>2]+m(m(m(w[f>>2]*w[b+604>>2])*n)*c),w[r+20>>2]=m(m(n*m(d*k))*c)+w[r+20>>2],w[r+24>>2]=m(m(n*m(l*u))*c)+w[r+24>>2],u=w[t+612>>2],l=w[f+40>>2],k=w[t+608>>2],d=w[f+36>>2],n=w[f+100>>2],c=m(m(1)/w[e+12>>2]),w[r+48>>2]=w[r+48>>2]+m(m(m(w[f+32>>2]*w[t+604>>2])*n)*c),w[r+52>>2]=m(m(n*m(d*k))*c)+w[r+52>>2],w[r+56>>2]=m(m(n*m(l*u))*c)+w[r+56>>2]),n=w[f+100>>2],w[i+36>>2]=n,w[i+16>>2]<=m(Q(n))&&(a[i+20|0]=0),(0|B)!=(0|(s=s+1|0)););if((0|(s=o[A+8>>2]))>0)for(i=o[A+16>>2],t=0;;){if(b=G(t,244),f=o[240+(r=b+i|0)>>2]){if(o[e+52>>2]){k=w[e+12>>2],n=w[e+60>>2],S=f=S-80|0;A:if(o[r+240>>2]){if(w[r+176>>2]=w[r+64>>2]+w[r+176>>2],w[r+192>>2]=w[r+80>>2]+w[r+192>>2],w[r+180>>2]=w[r+68>>2]+w[r+180>>2],w[r+184>>2]=w[r+72>>2]+w[r+184>>2],w[r+196>>2]=w[r+84>>2]+w[r+196>>2],w[r+200>>2]=w[r+88>>2]+w[r+200>>2],l=w[r+160>>2],!(w[r+144>>2]!=m(0)|w[r+148>>2]!=m(0))&w[r+152>>2]==m(0)){if(c=w[r+168>>2],u=w[r+164>>2],!(l!=m(0)|u!=m(0))&&c==m(0))break A}else c=w[r+168>>2],u=w[r+164>>2];o[f+12>>2]=0,w[f+8>>2]=c*n,w[f+4>>2]=u*n,w[f>>2]=l*n,tr(r,r+144|0,f,k,f+16|0),i=o[f+28>>2],o[r+8>>2]=o[f+24>>2],o[r+12>>2]=i,i=o[f+20>>2],o[r>>2]=o[f+16>>2],o[r+4>>2]=i,i=o[f+44>>2],o[r+24>>2]=o[f+40>>2],o[r+28>>2]=i,i=o[f+36>>2],o[r+16>>2]=o[f+32>>2],o[r+20>>2]=i,i=o[f+52>>2],o[r+32>>2]=o[f+48>>2],o[r+36>>2]=i,i=o[f+60>>2],o[r+40>>2]=o[f+56>>2],o[r+44>>2]=i,i=o[f+68>>2],o[r+48>>2]=o[f+64>>2],o[r+52>>2]=i,i=o[f+76>>2],o[r+56>>2]=o[f+72>>2],o[r+60>>2]=i}S=f+80|0,i=o[A+16>>2],n=w[176+(r=b+i|0)>>2],f=o[r+240>>2]}else n=m(w[r+64>>2]+w[r+176>>2]),w[r+176>>2]=n,w[r+192>>2]=w[r+80>>2]+w[r+192>>2],w[r+180>>2]=w[r+68>>2]+w[r+180>>2],w[r+184>>2]=w[r+72>>2]+w[r+184>>2],w[r+196>>2]=w[r+84>>2]+w[r+196>>2],w[r+200>>2]=w[r+88>>2]+w[r+200>>2];c=w[212+(r=i+b|0)>>2],u=w[r+180>>2],l=w[r+216>>2],k=w[r+184>>2],d=w[r+208>>2],o[f+384>>2]=0,w[f+372>>2]=n+d,o[f+304>>2]=o[f+304>>2]+1,w[f+380>>2]=k+l,w[f+376>>2]=u+c,r=b+o[A+16>>2]|0,n=w[r+228>>2],c=w[r+196>>2],u=w[r+232>>2],l=w[r+200>>2],k=w[r+224>>2],d=w[r+192>>2],r=o[r+240>>2],o[r+400>>2]=0,w[r+388>>2]=d+k,w[r+396>>2]=l+u,w[r+392>>2]=c+n,o[r+304>>2]=o[r+304>>2]+1,o[e+52>>2]&&(f=b+o[A+16>>2]|0,r=o[f+240>>2],o[r+304>>2]=o[r+304>>2]+1,i=o[f+12>>2],o[r+12>>2]=o[f+8>>2],o[r+16>>2]=i,i=o[f+4>>2],o[r+4>>2]=o[f>>2],o[r+8>>2]=i,i=o[f+28>>2],o[r+28>>2]=o[f+24>>2],o[r+32>>2]=i,i=o[f+20>>2],o[r+20>>2]=o[f+16>>2],o[r+24>>2]=i,i=o[f+36>>2],o[r+36>>2]=o[f+32>>2],o[r+40>>2]=i,i=o[f+44>>2],o[r+44>>2]=o[f+40>>2],o[r+48>>2]=i,i=o[f+60>>2],o[r+60>>2]=o[f+56>>2],o[r+64>>2]=i,i=o[f+52>>2],o[r+52>>2]=o[f+48>>2],o[r+56>>2]=i),i=o[A+16>>2],o[o[240+(b+i|0)>>2]+212>>2]=-1,s=o[A+8>>2]}if(!((0|s)>(0|(t=t+1|0))))break}return(o[A+28>>2]&o[A+32>>2])<0&&(!(r=o[A+36>>2])||!r|!v[A+40|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+40|0]=1,o[A+32>>2]=0,o[A+36>>2]=0),o[A+28>>2]=0,(o[A+48>>2]&o[A+52>>2])<0&&(!(r=o[A+56>>2])||!r|!v[A+60|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+60|0]=1,o[A+52>>2]=0,o[A+56>>2]=0),o[A+48>>2]=0,(o[A+68>>2]&o[A+72>>2])<0&&(!(r=o[A+76>>2])||!r|!v[A+80|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+80|0]=1,o[A+72>>2]=0,o[A+76>>2]=0),o[A+68>>2]=0,(o[A+88>>2]&o[A+92>>2])<0&&(!(r=o[A+96>>2])||!r|!v[A+100|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+100|0]=1,o[A+92>>2]=0,o[A+96>>2]=0),o[A+88>>2]=0,(o[A+8>>2]&o[A+12>>2])<0&&(!(r=o[A+16>>2])||!r|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),a[A+20|0]=1,o[A+12>>2]=0,o[A+16>>2]=0),o[A+8>>2]=0,m(m(0))},function(A,r,f,e,i,n,t,c,b,u){A|=0,r|=0,f|=0,e|=0,i|=0,n|=0,t|=0,c|=0,b|=0,u|=0;var l=m(0),s=0,k=0,d=0,h=m(0),B=m(0),Z=0,Q=0;if(1&a[b+72|0]){if(u=o[A+68>>2],k=o[A+28>>2],(0|(s=o[A+48>>2]))>0){if(f=G(o[A+232>>2],1664525)+1013904223|0,1!=(0|s)&&(i=o[A+136>>2],e=o[i+4>>2],n=(f=G(f,1664525)+1013904223|0)^f>>>16,n^=n>>>8,n^=n>>>4,n=i+((1&((n^=n>>>2)>>>1^n))<<2)|0,o[i+4>>2]=o[n>>2],o[n>>2]=e,2!=(0|s)&&(e=o[i+8>>2],n=(f=G(f,1664525)+1013904223|0)^f>>>16,n^=n>>>8,n=i+((((n^=n>>>4)>>>2^n)>>>0)%3<<2)|0,o[i+8>>2]=o[n>>2],o[n>>2]=e,3!=(0|s)&&(e=4,n=o[i+12>>2],d=(f=G(f,1664525)+1013904223|0)^f>>>16,d^=d>>>8,d=i+((3&((d^=d>>>4)>>>2^d))<<2)|0,o[i+12>>2]=o[d>>2],o[d>>2]=n,4!=(0|s)))))for(;Q=o[(n=i+(e<<2)|0)>>2],Z=n,n=f=G(f,1664525)+1013904223|0,e>>>0>65535||(n=d=f>>>16^f,e>>>0>255||(n=d^=d>>>8,e>>>0>15||(n=d^d>>>4))),n=((n>>>0)%((e=e+1|0)>>>0)<<2)+i|0,o[Z>>2]=o[n>>2],o[n>>2]=Q,(0|e)!=(0|s););o[A+232>>2]=f}if(!(o[b+20>>2]<=(0|r))){if((0|k)>0){if(f=G(o[A+232>>2],1664525)+1013904223|0,1!=(0|k)&&(i=o[A+116>>2],e=o[i+4>>2],n=(f=G(f,1664525)+1013904223|0)^f>>>16,n^=n>>>8,n^=n>>>4,n=i+((1&((n^=n>>>2)>>>1^n))<<2)|0,o[i+4>>2]=o[n>>2],o[n>>2]=e,2!=(0|k)&&(e=o[i+8>>2],n=(f=G(f,1664525)+1013904223|0)^f>>>16,n^=n>>>8,n=i+((((n^=n>>>4)>>>2^n)>>>0)%3<<2)|0,o[i+8>>2]=o[n>>2],o[n>>2]=e,3!=(0|k)&&(e=4,n=o[i+12>>2],s=(f=G(f,1664525)+1013904223|0)^f>>>16,s^=s>>>8,s=i+((3&((s^=s>>>4)>>>2^s))<<2)|0,o[i+12>>2]=o[s>>2],o[s>>2]=n,4!=(0|k)))))for(;d=o[(n=i+(e<<2)|0)>>2],Z=n,n=f=G(f,1664525)+1013904223|0,e>>>0>65535||(n=s=f>>>16^f,e>>>0>255||(n=s^=s>>>8,e>>>0>15||(n=s^s>>>4))),n=((n>>>0)%((e=e+1|0)>>>0)<<2)+i|0,o[Z>>2]=o[n>>2],o[n>>2]=d,(0|e)!=(0|k););o[A+232>>2]=f}if(!((0|u)<=0)){if(f=G(o[A+232>>2],1664525)+1013904223|0,1!=(0|u)&&(i=o[A+156>>2],e=o[i+4>>2],n=(f=G(f,1664525)+1013904223|0)^f>>>16,n^=n>>>8,n^=n>>>4,n=i+((1&((n^=n>>>2)>>>1^n))<<2)|0,o[i+4>>2]=o[n>>2],o[n>>2]=e,2!=(0|u)&&(e=o[i+8>>2],n=(f=G(f,1664525)+1013904223|0)^f>>>16,n^=n>>>8,n=i+((((n^=n>>>4)>>>2^n)>>>0)%3<<2)|0,o[i+8>>2]=o[n>>2],o[n>>2]=e,3!=(0|u)&&(e=4,n=o[i+12>>2],k=(f=G(f,1664525)+1013904223|0)^f>>>16,k^=k>>>8,k=i+((3&((k^=k>>>4)>>>2^k))<<2)|0,o[i+12>>2]=o[k>>2],o[k>>2]=n,4!=(0|u)))))for(;s=o[(n=i+(e<<2)|0)>>2],d=n,n=f=G(f,1664525)+1013904223|0,e>>>0>65535||(n=k=f>>>16^f,e>>>0>255||(n=k^=k>>>8,e>>>0>15||(n=k^k>>>4))),n=((n>>>0)%((e=e+1|0)>>>0)<<2)+i|0,o[d>>2]=o[n>>2],o[n>>2]=s,(0|e)!=(0|u););o[A+232>>2]=f}}}if((0|(i=o[A+48>>2]))>0)for(e=0;f=o[A+56>>2]+G(o[o[A+136>>2]+(e<<2)>>2],152)|0,o[f+136>>2]>(0|r)&&(i=o[A+16>>2],l=m(Zn[o[A+212>>2]](i+G(o[f+144>>2],244)|0,i+G(o[f+148>>2],244)|0,f)),B=m(m(l*l)+B),i=o[A+48>>2]),(0|i)>(0|(e=e+1|0)););if(!(o[b+20>>2]<=(0|r))){if((0|c)>0)for(e=0;f=o[(r=(e<<2)+t|0)>>2],v[f+20|0]&&(f=sA(A,o[f+28>>2],w[b+12>>2]),i=sA(A,o[o[r>>2]+32>>2],w[b+12>>2]),r=o[r>>2],n=G(f,244),f=o[A+16>>2],Zn[o[o[r>>2]+24>>2]](r,n+f|0,f+G(i,244)|0,w[b+12>>2])),(0|c)!=(0|(e=e+1|0)););i=o[A+28>>2];A:if(512&(r=o[b+72>>2])){if((0|i)<=0)break A;for(e=r>>>4&1,f=0;n=o[A+16>>2],r=o[A+36>>2]+G(o[o[A+116>>2]+(f<<2)>>2],152)|0,l=m(Zn[o[A+216>>2]](n+G(o[r+144>>2],244)|0,n+G(o[r+148>>2],244)|0,r)),B=m(m(l*l)+B),(n=(l=w[r+100>>2])>m(0))&&(t=f<>2]+G(o[t+o[A+156>>2]>>2],152)|0,h=w[r+104>>2],w[r+124>>2]=l*h,w[r+120>>2]=l*m(-h),c=o[A+16>>2],h=m(Zn[o[A+212>>2]](c+G(o[r+144>>2],244)|0,c+G(o[r+148>>2],244)|0,r)),B=m(m(h*h)+B),!n|!(16&o[b+72>>2])||(r=o[A+76>>2]+G(o[4+(t+o[A+156>>2]|0)>>2],152)|0,h=w[r+104>>2],w[r+124>>2]=l*h,w[r+120>>2]=l*m(-h),n=o[A+16>>2],l=m(Zn[o[A+212>>2]](n+G(o[r+144>>2],244)|0,n+G(o[r+148>>2],244)|0,r)),B=m(m(l*l)+B))),(0|i)!=(0|(f=f+1|0)););}else{if((0|i)>0)for(e=0;f=o[A+16>>2],r=o[A+36>>2]+G(o[o[A+116>>2]+(e<<2)>>2],152)|0,l=m(Zn[o[A+216>>2]](f+G(o[r+144>>2],244)|0,f+G(o[r+148>>2],244)|0,r)),B=m(m(l*l)+B),(0|i)!=(0|(e=e+1|0)););if(!((0|(e=o[A+68>>2]))<=0))for(f=0;r=o[A+76>>2]+G(o[o[A+156>>2]+(f<<2)>>2],152)|0,(l=w[100+(o[A+36>>2]+G(o[r+140>>2],152)|0)>>2])>m(0)&&(h=w[r+104>>2],w[r+124>>2]=l*h,w[r+120>>2]=l*m(-h),i=o[A+16>>2],l=m(Zn[o[A+212>>2]](i+G(o[r+144>>2],244)|0,i+G(o[r+148>>2],244)|0,r)),B=m(m(l*l)+B)),(0|e)!=(0|(f=f+1|0)););}if(!((0|(e=o[A+88>>2]))<=0))for(f=0;r=o[A+96>>2]+G(f,152)|0,(l=w[100+(o[A+36>>2]+G(o[r+140>>2],152)|0)>>2])>m(0)&&(h=l,l=(l=w[r+104>>2])<(h=m(h*l))?l:h,w[r+124>>2]=l,w[r+120>>2]=-l,i=o[A+16>>2],l=m(Zn[o[A+212>>2]](i+G(o[r+144>>2],244)|0,i+G(o[r+148>>2],244)|0,r)),B=m(m(l*l)+B)),(0|e)!=(0|(f=f+1|0)););}return m(B)},function(A,r,f,e,i,n,t,c,b){A|=0,r|=0,f|=0,e|=0,i|=0,n|=0,t|=0,c|=0,b|=0;var u,l=0,s=0,k=0,d=m(0),h=0,B=m(0),Z=m(0),E=m(0),W=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=0,D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=0,H=m(0),I=m(0),T=m(0),U=m(0),j=m(0),z=m(0),P=m(0),O=m(0),L=m(0),$=m(0),K=m(0),q=0,_=m(0),AA=0,rA=m(0),fA=0,eA=0,iA=0,nA=0,aA=m(0),tA=m(0),oA=m(0),cA=m(0),bA=m(0),uA=m(0),lA=m(0),kA=m(0),dA=m(0);if(S=u=S-256|0,o[A+188>>2]=-1,Zn[o[8294]](5384),(0|(b=o[c+72>>2]))!=o[A+224>>2]&&(o[A+224>>2]=b,o[A+220>>2]=957,o[A+216>>2]=956,o[A+212>>2]=955),b=0,o[A+184>>2]=0,!((0|f)<=0)){if(f>>>0>=4)for(l=-4&f;o[o[(k=b<<2)+r>>2]+212>>2]=-1,o[o[(4|k)+r>>2]+212>>2]=-1,o[o[(8|k)+r>>2]+212>>2]=-1,o[o[(12|k)+r>>2]+212>>2]=-1,b=b+4|0,(0|l)!=(0|(s=s+4|0)););if(k=3&f)for(l=0;o[o[(b<<2)+r>>2]+212>>2]=-1,b=b+1|0,(0|k)!=(0|(l=l+1|0)););}if((0|(k=o[A+12>>2]))<=(0|f)){if((k=f+1|0)?(o[8488]=o[8488]+1,b=0|Zn[o[8290]](G(k,244),16)):b=0,(0|(X=o[A+8>>2]))>0)for(s=0;l=(h=G(s,244))+b|0,h=h+o[A+16>>2]|0,M=o[h+4>>2],o[l>>2]=o[h>>2],o[l+4>>2]=M,M=o[h+12>>2],o[l+8>>2]=o[h+8>>2],o[l+12>>2]=M,M=o[h+28>>2],o[l+24>>2]=o[h+24>>2],o[l+28>>2]=M,M=o[h+20>>2],o[l+16>>2]=o[h+16>>2],o[l+20>>2]=M,M=o[h+44>>2],o[l+40>>2]=o[h+40>>2],o[l+44>>2]=M,M=o[h+36>>2],o[l+32>>2]=o[h+32>>2],o[l+36>>2]=M,M=o[h+52>>2],o[l+48>>2]=o[h+48>>2],o[l+52>>2]=M,M=o[h+60>>2],o[l+56>>2]=o[h+56>>2],o[l+60>>2]=M,pr(l- -64|0,h- -64|0,180),(0|X)!=(0|(s=s+1|0)););!(l=o[A+16>>2])||!l|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](l)),o[A+16>>2]=b,a[A+20|0]=1,o[A+12>>2]=k}if(Af(u+8|0,0,244),(0|(l=o[A+8>>2]))<0)for((0|k)<0&&(!(b=o[A+16>>2])||!b|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](b)),a[A+20|0]=1,o[A+12>>2]=0,o[A+16>>2]=0),k=u+72|0;b=o[A+16>>2]+G(l,244)|0,o[b>>2]=0,o[b+4>>2]=0,o[b+8>>2]=0,o[b+12>>2]=0,s=o[u+36>>2],o[b+24>>2]=o[u+32>>2],o[b+28>>2]=s,s=o[u+28>>2],o[b+16>>2]=o[u+24>>2],o[b+20>>2]=s,s=o[u+44>>2],o[b+32>>2]=o[u+40>>2],o[b+36>>2]=s,s=o[u+52>>2],o[b+40>>2]=o[u+48>>2],o[b+44>>2]=s,s=o[u+60>>2],o[b+48>>2]=o[u+56>>2],o[b+52>>2]=s,s=o[u+68>>2],o[b+56>>2]=o[u+64>>2],o[b+60>>2]=s,pr(b- -64|0,k,180),l=l+1|0;);if(o[A+8>>2]=0,(0|f)>0)for(l=0;s=sA(A,o[(b=(l<<2)+r|0)>>2],w[c+12>>2]),!(b=o[b>>2])|!(2&o[b+252>>2])|w[b+404>>2]==m(0)||(h=o[A+16>>2],2&(k=o[b+564>>2])&&(Y=w[c+84>>2],d=w[b+396>>2],E=w[b+44>>2],p=w[b+40>>2],W=w[b+36>>2],B=w[b+392>>2],J=w[b+28>>2],Z=w[b+12>>2],F=w[b+464>>2],D=w[b+24>>2],x=w[b+8>>2],V=w[b+460>>2],I=w[b+20>>2],R=w[b+388>>2],C=w[b+4>>2],g=w[b+456>>2],o[u+20>>2]=0,H=F!=m(0)?m(m(1)/F):m(0),F=m(J*H),g=g!=m(0)?m(m(1)/g):m(0),y=m(I*g),V=V!=m(0)?m(m(1)/V):m(0),U=m(D*V),T=m(m(d*m(m(E*F)+m(m(W*y)+m(p*U))))+m(m(R*m(m(Z*F)+m(m(C*y)+m(x*U))))+m(B*m(m(J*F)+m(m(I*y)+m(D*U)))))),F=m(H*Z),y=m(g*C),U=m(V*x),y=m(m(d*m(m(E*F)+m(m(W*y)+m(p*U))))+m(m(R*m(m(Z*F)+m(m(C*y)+m(x*U))))+m(B*m(m(J*F)+m(m(I*y)+m(U*D)))))),F=m(m(R*T)-m(B*y)),w[u+16>>2]=F,$=E,E=m(H*E),H=W,W=m(g*W),g=p,p=m(V*p),E=m(m(d*m(m($*E)+m(m(H*W)+m(g*p))))+m(m(R*m(m(Z*E)+m(m(C*W)+m(x*p))))+m(B*m(m(J*E)+m(m(I*W)+m(D*p)))))),R=m(m(d*y)-m(R*E)),w[u+12>>2]=R,d=m(m(B*E)-m(T*d)),w[u+8>>2]=d,(B=m(m(F*F)+m(m(d*d)+m(R*R))))>m(Y*Y)&&(B=m(m(m(1)/m(N(B)))*Y),w[u+16>>2]=F*B,w[u+12>>2]=R*B,w[u+8>>2]=d*B),p=w[b+364>>2],W=w[b+332>>2],J=w[b+348>>2],Z=w[b+360>>2],D=w[b+328>>2],x=w[b+344>>2],k=h+G(s,244)|0,d=w[u+16>>2],B=w[u+8>>2],R=w[u+12>>2],E=w[c+12>>2],w[k+224>>2]=w[k+224>>2]-m(m(m(w[b+356>>2]*d)+m(m(w[b+324>>2]*B)+m(R*w[b+340>>2])))*E),w[k+228>>2]=w[k+228>>2]-m(E*m(m(Z*d)+m(m(D*B)+m(R*x)))),w[k+232>>2]=w[k+232>>2]-m(E*m(m(p*d)+m(m(W*B)+m(R*J)))),k=o[b+564>>2]),4&k&&(d=w[c+12>>2],B=w[b+396>>2],J=w[b+44>>2],Z=w[b+40>>2],D=w[b+36>>2],p=w[b+12>>2],x=w[b+8>>2],R=w[b+392>>2],I=w[b+28>>2],W=w[b+464>>2],C=w[b+24>>2],V=w[b+460>>2],Y=w[b+20>>2],E=w[b+388>>2],F=w[b+4>>2],g=w[b+456>>2],o[u+20>>2]=0,U=W!=m(0)?m(m(1)/W):m(0),T=m(J*U),j=g!=m(0)?m(m(1)/g):m(0),P=m(D*j),z=V!=m(0)?m(m(1)/V):m(0),L=m(Z*z),g=m(m(p*T)+m(m(F*P)+m(x*L))),W=m(U*I),V=m(j*Y),O=m(z*C),H=m(m(J*W)+m(m(D*V)+m(Z*O))),_=m(B*H),y=m(m(p*W)+m(m(F*V)+m(x*O))),K=m(E*y),V=m(m(I*W)+m(m(Y*V)+m(C*O))),W=m(_+m(K+m(R*V))),O=m(U*p),j=m(j*F),z=m(z*x),x=m(m(p*O)+m(m(F*j)+m(x*z))),U=m(g+m(m(W+m(m(g*m(0))+m(K-m(R*x))))*d)),F=m(m(J*T)+m(m(D*P)+m(Z*L))),K=m(g*E),T=m(m(I*T)+m(m(Y*P)+m(C*L))),P=m(R*T),p=m(m(B*F)+m(K+P)),C=m(m(I*O)+m(m(Y*j)+m(z*C))),I=m(C+m(m(m(P+m(m(C*m(0))-m(V*B)))+p)*d)),D=m(m(J*O)+m(m(D*j)+m(z*Z))),Y=m(B*D),z=m(R*C),J=m(Y+m(m(x*E)+z)),P=m(d*m(0)),Z=m(m(W+m(m(m(B*J)-m(p*E))*d))-m(P+W)),Y=m(H+m(m(J+m(m(Y+m(H*m(0)))-m(F*E)))*d)),j=m(D+m(m(m(m(F*R)+m(m(D*m(0))-_))-W)*d)),C=m(V+m(m(m(m(C*B)+m(V*m(0)))-m(T*E))*d)),L=m(m(I*Y)-m(j*C)),g=m(x+m(m(m(g*R)+m(m(x*m(0))-m(y*B)))*d)),F=m(F+m(m(m(F*m(0))+m(m(E*H)-m(D*R)))*d)),V=m(T+m(m(m(m(T*m(0))+m(m(E*V)-z))-J)*d)),T=m(m(C*F)-m(Y*V)),H=m(y+m(m(m(m(m(x*B)+m(y*m(0)))-K)-p)*d)),y=m(m(V*j)-m(F*I)),D=m(m(U*L)+m(m(g*T)+m(H*y))),x=m(Q(D))>m(1.1920928955078125e-7)?m(m(1)/D):D,D=m(m(J+m(m(m(R*p)-m(W*B))*d))-m(P+J)),d=m(m(m(m(m(E*W)-m(J*R))*d)+p)-m(P+p)),w[u+16>>2]=m(B-m(m(m(U*m(m(I*Z)-m(D*C)))+m(m(g*m(m(C*d)-m(Z*V)))+m(H*m(m(V*D)-m(d*I)))))*x))-B,w[u+12>>2]=m(R-m(m(m(U*m(m(D*Y)-m(j*Z)))+m(m(g*m(m(Z*F)-m(Y*d)))+m(H*m(m(d*j)-m(F*D)))))*x))-R,w[u+8>>2]=m(E-m(m(m(d*L)+m(m(D*T)+m(Z*y)))*x))-E,d=w[u+16>>2],B=w[u+12>>2],k=h+G(s,244)|0,w[k+224>>2]=w[u+8>>2]+w[k+224>>2],w[k+228>>2]=B+w[k+228>>2],w[k+232>>2]=d+w[k+232>>2],k=o[b+564>>2]),8&k&&(d=w[c+12>>2],S=k=S-16|0,C=w[b+464>>2],Y=w[b+460>>2],D=w[b+396>>2],x=w[b+392>>2],V=w[b+456>>2],I=w[b+388>>2],rf(b+4|0,k),B=w[k+4>>2],R=w[k>>2],E=w[k+12>>2],p=w[k+8>>2],o[u+20>>2]=0,Z=m(m(B*I)+m(m(E*D)-m(x*R))),F=m(m(p*D)+m(m(R*I)+m(x*B))),g=m(m(R*D)+m(m(E*x)-m(I*p))),y=m(m(p*x)+m(m(E*I)-m(D*B))),W=m(m(m(R*Z)+m(m(B*F)+m(E*g)))-m(p*y)),J=m(m(m(y*B)+m(m(F*p)+m(E*Z)))-m(g*R)),H=m(J*m(0)),Z=m(m(m(g*p)+m(m(F*R)+m(E*y)))-m(Z*B)),y=m(Z*m(0)),Y=Y!=m(0)?m(m(1)/Y):m(0),F=m(H+m(y+m(W*Y))),V=V!=m(0)?m(m(1)/V):m(0),U=m(m(m(m(m(y-m(W*V))+m(0))+F)*d)+m(0)),g=C!=m(0)?m(m(1)/C):m(0),T=m(W*m(0)),j=m(m(g*J)+m(y+T)),C=m(m(m(W*j)-m(F*J))*d),K=m(Z*m(-0)),P=m(m(m(m(K+m(m(V*J)+m(0)))-j)*d)+m(0)),z=m(m(m(m(T+m(m(0)-m(Y*J)))+j)*d)+m(0)),L=m(H+m(m(V*Z)+T)),O=m(m(m(m(m(H+m(0))-m(g*Z))+L)*d)+m(0)),$=m(J*m(-0)),_=m(m(m(m(m(g*W)+m($+m(0)))-F)*d)+m(0)),H=m(Y+m(m(K+m(H+m(Y*m(0))))*d)),K=m(m(z*O)-m(_*H)),T=m(V+m(m(T+m(m(V*m(0))+$))*d)),$=g,V=m(g*m(0)),g=m(W*m(-0)),V=m($+m(m(V+m(g+y))*d)),g=m(m(m(m(m(g+m(Y*Z))+m(0))-L)*d)+m(0)),$=m(m(H*V)-m(O*g)),rA=m(m(g*_)-m(V*z)),Y=m(m(U*K)+m(m(T*$)+m(P*rA))),y=m(Q(Y))>m(1.1920928955078125e-7)?m(m(1)/Y):Y,Y=m(m(m(J*L)-m(j*Z))*d),d=m(m(m(Z*F)-m(L*W))*d),W=m(W-m(m(m(U*m(m(C*O)-m(_*Y)))+m(m(T*m(m(Y*V)-m(O*d)))+m(P*m(m(d*_)-m(V*C)))))*y)),Z=m(Z-m(m(m(d*K)+m(m(C*$)+m(Y*rA)))*y)),d=m(J-m(m(m(U*m(m(z*Y)-m(C*H)))+m(m(T*m(m(H*d)-m(Y*g)))+m(P*m(m(g*C)-m(d*z)))))*y)),J=m(m(m(E*W)+m(p*Z))-m(R*d)),C=m(m(m(E*d)+m(R*W))-m(B*Z)),Y=m(m(m(m(-R)*Z)-m(W*B))-m(p*d)),d=m(m(m(E*Z)+m(B*d))-m(p*W)),w[u+16>>2]=m(m(R*J)+m(m(m(E*C)-m(p*Y))-m(B*d)))-D,w[u+12>>2]=m(m(d*p)+m(m(m(E*J)-m(Y*B))-m(C*R)))-x,w[u+8>>2]=m(m(C*B)+m(m(m(E*d)-m(Y*R))-m(J*p)))-I,S=k+16|0,d=w[u+16>>2],B=w[u+12>>2],b=h+G(s,244)|0,w[b+224>>2]=w[u+8>>2]+w[b+224>>2],w[b+228>>2]=B+w[b+228>>2],w[b+232>>2]=d+w[b+232>>2])),(0|(l=l+1|0))!=(0|f););if(!((0|t)<=0)){if(b=0,1!=(0|t))for(k=-2&t,r=0;f=o[(l=b<<2)+n>>2],Zn[o[o[f>>2]+8>>2]](f),o[f+36>>2]=0,f=o[(4|l)+n>>2],Zn[o[o[f>>2]+8>>2]](f),o[f+36>>2]=0,b=b+2|0,(0|k)!=(0|(r=r+2|0)););1&t&&(r=o[(b<<2)+n>>2],Zn[o[o[r>>2]+8>>2]](r),o[r+36>>2]=0)}if(!((0|t)<=(0|(r=o[A+168>>2]))|o[A+172>>2]>=(0|t))){if(t?(o[8488]=o[8488]+1,l=0|Zn[o[8290]](t<<3,16),r=o[A+168>>2]):l=0,!((0|r)<=0)){if(s=0,b=0,r>>>0>=4)for(h=-4&r,f=0;X=(k=b<<3)+l|0,M=k+o[A+176>>2]|0,q=o[M+4>>2],o[X>>2]=o[M>>2],o[X+4>>2]=q,M=(X=8|k)+l|0,X=X+o[A+176>>2]|0,q=o[X+4>>2],o[M>>2]=o[X>>2],o[M+4>>2]=q,M=(X=16|k)+l|0,X=X+o[A+176>>2]|0,q=o[X+4>>2],o[M>>2]=o[X>>2],o[M+4>>2]=q,X=(k|=24)+l|0,k=k+o[A+176>>2]|0,M=o[k+4>>2],o[X>>2]=o[k>>2],o[X+4>>2]=M,b=b+4|0,(0|h)!=(0|(f=f+4|0)););if(r&=3)for(;k=(f=b<<3)+l|0,f=f+o[A+176>>2]|0,h=o[f+4>>2],o[k>>2]=o[f>>2],o[k+4>>2]=h,b=b+1|0,(0|r)!=(0|(s=s+1|0)););}!(r=o[A+176>>2])||!r|!v[A+180|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+176>>2]=l,a[A+180|0]=1,o[A+172>>2]=t}if(o[A+168>>2]=t,s=0,(0|t)>0)for(l=0;b=o[A+176>>2],r=o[(k=(l<<2)+n|0)>>2],(f=o[r+44>>2])&&(o[(r=f)>>2]=0,o[r+4>>2]=0,o[r+56>>2]=0,o[r+60>>2]=0,o[r+48>>2]=0,o[r+52>>2]=0,o[r+40>>2]=0,o[r+44>>2]=0,o[r+32>>2]=0,o[r+36>>2]=0,o[r+24>>2]=0,o[r+28>>2]=0,o[r+16>>2]=0,o[r+20>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0,r=o[k>>2]),f=b+(l<<3)|0,v[r+20|0]?(Zn[o[o[r>>2]+16>>2]](r,f),r=o[f>>2]):(o[f>>2]=0,o[f+4>>2]=0,r=0),s=r+s|0,(0|(l=l+1|0))!=(0|t););if(!((0|s)<=(0|(r=o[A+48>>2]))|o[A+52>>2]>=(0|s))){if(s?(o[8488]=o[8488]+1,l=0|Zn[o[8290]](G(s,152),16),r=o[A+48>>2]):l=0,!((0|r)<=0)){if(f=1&r,b=0,1!=(0|r))for(k=-2&r,r=0;pr((h=G(b,152))+l|0,h+o[A+56>>2]|0,152),pr((h=G(1|b,152))+l|0,h+o[A+56>>2]|0,152),b=b+2|0,(0|k)!=(0|(r=r+2|0)););f&&pr((r=G(b,152))+l|0,r+o[A+56>>2]|0,152)}!(r=o[A+56>>2])||!r|!v[A+60|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+56>>2]=l,a[A+60|0]=1,o[A+52>>2]=s}if(o[A+48>>2]=s,(0|t)>0)for(l=o[A+176>>2];;){if(nA=AA,o[(q=(iA=fA<<3)+l|0)>>2]){if(M=o[(eA=(fA<<2)+n|0)>>2],l=o[M+32>>2],s=o[A+56>>2],f=sA(A,h=o[M+28>>2],w[c+12>>2]),b=sA(A,l,w[c+12>>2]),k=o[M+24>>2],r=o[c+20>>2],(0|(k=(0|k)>0?k:r))>o[A+184>>2]&&(o[A+184>>2]=k),X=s+G(AA,152)|0,AA=o[A+16>>2],s=0,o[q>>2]>0){for(;r=Af(X+G(s,152)|0,0,152),o[r+120>>2]=-8388609,o[r+124>>2]=2139095039,o[r+148>>2]=b,o[r+144>>2]=f,o[r+96>>2]=0,o[r+100>>2]=0,o[r+136>>2]=k,(0|(s=s+1|0))>2];);r=o[c+20>>2]}if(f=G(f,244)+AA|0,o[f+64>>2]=0,o[f+68>>2]=0,o[f+144>>2]=0,o[f+148>>2]=0,o[f+88>>2]=0,o[f+92>>2]=0,o[f+80>>2]=0,o[f+84>>2]=0,o[f+72>>2]=0,o[f+76>>2]=0,o[f+152>>2]=0,o[f+156>>2]=0,o[f+160>>2]=0,o[f+164>>2]=0,o[f+168>>2]=0,o[f+172>>2]=0,b=G(b,244)+AA|0,o[b+88>>2]=0,o[b+92>>2]=0,o[b+80>>2]=0,o[b+84>>2]=0,o[b+72>>2]=0,o[b+76>>2]=0,o[b+64>>2]=0,o[b+68>>2]=0,o[b+144>>2]=0,o[b+148>>2]=0,o[b+152>>2]=0,o[b+156>>2]=0,o[b+160>>2]=0,o[b+164>>2]=0,o[b+168>>2]=0,o[b+172>>2]=0,w[u+8>>2]=m(1)/w[c+12>>2],d=w[c+32>>2],o[u+36>>2]=X+112,o[u+32>>2]=38,o[u+28>>2]=X+32,o[u+24>>2]=X+48,o[u+20>>2]=X,o[u+16>>2]=X+16,w[u+12>>2]=d,w[X+116>>2]=w[c+40>>2],d=w[c+4>>2],o[u+52>>2]=r,o[u+48>>2]=X+124,o[u+44>>2]=X+120,o[u+40>>2]=X+116,w[u+56>>2]=d,r=o[eA>>2],Zn[o[o[r>>2]+20>>2]](r,u+8|0),o[q>>2]>0)for(k=0;d=w[o[eA>>2]+16>>2],r=X+G(k,152)|0,d<=w[r+124>>2]&&(w[r+124>>2]=d),(d=m(-d))>=w[r+120>>2]&&(w[r+120>>2]=d),o[r+132>>2]=M,s=o[M+28>>2],E=w[s+332>>2],p=w[s+328>>2],W=w[s+608>>2],J=w[s+348>>2],Z=w[s+340>>2],D=w[s+344>>2],x=w[s+612>>2],I=w[s+364>>2],C=w[s+356>>2],Y=w[s+360>>2],F=w[s+604>>2],V=w[s+324>>2],d=w[r+8>>2],B=w[r>>2],R=w[r+4>>2],o[r+76>>2]=0,w[r+72>>2]=x*m(m(I*d)+m(m(C*B)+m(R*Y))),w[r+68>>2]=W*m(m(J*d)+m(m(Z*B)+m(R*D))),w[r+64>>2]=F*m(m(E*d)+m(m(V*B)+m(p*R))),s=o[M+32>>2],J=w[s+328>>2],Z=w[s+332>>2],D=w[s+608>>2],x=w[s+348>>2],I=w[s+340>>2],C=w[s+344>>2],E=w[s+612>>2],p=w[s+364>>2],W=w[s+356>>2],Y=w[s+360>>2],F=w[s+604>>2],V=w[s+324>>2],o[r+92>>2]=0,g=E,E=w[r+40>>2],$=m(p*E),p=w[r+32>>2],H=m(W*p),W=w[r+36>>2],w[r+88>>2]=g*m($+m(H+m(Y*W))),w[r+84>>2]=D*m(m(x*E)+m(m(I*p)+m(W*C))),w[r+80>>2]=F*m(m(Z*E)+m(m(V*p)+m(J*W))),J=m(0),Z=w[h+404>>2],D=w[r+24>>2],x=w[r+16>>2],I=w[r+20>>2],g=m(m(m(m(Z*D)*D)+m(m(m(Z*x)*x)+m(I*m(Z*I))))+m(m(d*m(m(d*w[h+364>>2])+m(m(B*w[h+356>>2])+m(R*w[h+360>>2]))))+m(m(B*m(m(d*w[h+332>>2])+m(m(B*w[h+324>>2])+m(R*w[h+328>>2]))))+m(R*m(m(d*w[h+348>>2])+m(m(B*w[h+340>>2])+m(R*w[h+344>>2]))))))),Z=w[l+404>>2],C=w[r+56>>2],Y=w[r+48>>2],F=w[r+52>>2],Z=m(m(g+m(m(m(Z*C)*C)+m(m(m(Z*Y)*Y)+m(F*m(Z*F)))))+m(m(E*m(m(E*w[l+364>>2])+m(m(p*w[l+356>>2])+m(W*w[l+360>>2]))))+m(m(p*m(m(E*w[l+332>>2])+m(m(p*w[l+324>>2])+m(W*w[l+328>>2]))))+m(W*m(m(E*w[l+348>>2])+m(m(p*w[l+340>>2])+m(W*w[l+344>>2]))))))),Z=m(Q(Z))>m(1.1920928955078125e-7)?m(m(1)/Z):m(0),w[r+108>>2]=Z,V=m(0),g=m(0),H=m(0),y=m(0),U=m(0),T=m(0),o[f+240>>2]&&(T=w[f+232>>2],U=w[f+228>>2],y=w[f+224>>2],g=w[f+212>>2],H=w[f+208>>2],V=w[f+216>>2]),j=m(0),P=m(0),z=m(0),L=m(0),O=m(0),o[b+240>>2]&&(O=w[b+232>>2],L=w[b+228>>2],z=w[b+224>>2],j=w[b+212>>2],P=w[b+208>>2],J=w[b+216>>2]),_=w[h+380>>2],K=w[h+372>>2],$=w[h+376>>2],rA=w[h+396>>2],aA=w[h+388>>2],tA=w[h+392>>2],oA=w[l+380>>2],cA=w[l+372>>2],bA=w[l+376>>2],uA=w[l+396>>2],lA=w[l+388>>2],kA=w[l+392>>2],dA=w[u+56>>2],o[r+100>>2]=0,w[r+112>>2]=m(Z*w[r+112>>2])+m(Z*m(m(0)-m(dA*m(m(m(m(D*m(V+_))+m(m(x*m(H+K))+m(I*m(g+$))))+m(m(d*m(T+rA))+m(m(B*m(y+aA))+m(R*m(U+tA)))))+m(m(m(C*m(J+oA))+m(m(Y*m(P+cA))+m(F*m(j+bA))))+m(m(E*m(O+uA))+m(m(p*m(z+lA))+m(W*m(L+kA))))))))),(0|(k=k+1|0))>2];);l=o[A+176>>2],r=o[iA+l>>2]}else r=0;if(AA=nA+r|0,(0|(fA=fA+1|0))==(0|t))break}if(Zn[o[o[A>>2]+28>>2]](A,e,i,c),i=o[A+68>>2],e=o[A+28>>2],!((0|(s=o[A+128>>2]))>=(0|(n=o[A+48>>2]))|(0|n)<=o[A+132>>2])){n?(o[8488]=o[8488]+1,l=0|Zn[o[8290]](n<<2,16),s=o[A+128>>2]):l=0,r=o[A+136>>2];A:{r:{if((0|s)>0){if(f=0,b=0,s>>>0>=4)for(h=-4&s,k=0;o[(t=b<<2)+l>>2]=o[r+t>>2],o[(X=4|t)+l>>2]=o[r+X>>2],o[(X=8|t)+l>>2]=o[r+X>>2],o[(t|=12)+l>>2]=o[r+t>>2],b=b+4|0,(0|h)!=(0|(k=k+4|0)););if(t=3&s)for(;o[(k=b<<2)+l>>2]=o[r+k>>2],b=b+1|0,(0|t)!=(0|(f=f+1|0)););if(v[A+140|0])break r;break A}if(!r|!v[A+140|0])break A}r&&(o[8489]=o[8489]+1,Zn[o[8291]](r))}o[A+136>>2]=l,o[A+132>>2]=n,a[A+140|0]=1}if(o[A+128>>2]=n,16&v[c+72|0]){if(!((0|(s=o[A+108>>2]))>=(0|(c=e<<1))|(0|c)<=o[A+112>>2])){e?(o[8488]=o[8488]+1,l=0|Zn[o[8290]](e<<3,16),s=o[A+108>>2]):l=0,r=o[A+116>>2];A:{r:{if((0|s)>0){if(f=0,b=0,s>>>0>=4)for(h=-4&s,k=0;o[(t=b<<2)+l>>2]=o[r+t>>2],o[(X=4|t)+l>>2]=o[r+X>>2],o[(X=8|t)+l>>2]=o[r+X>>2],o[(t|=12)+l>>2]=o[r+t>>2],b=b+4|0,(0|h)!=(0|(k=k+4|0)););if(t=3&s)for(;o[(k=b<<2)+l>>2]=o[r+k>>2],b=b+1|0,(0|t)!=(0|(f=f+1|0)););if(v[A+120|0])break r;break A}if(!r|!v[A+120|0])break A}r&&(o[8489]=o[8489]+1,Zn[o[8291]](r))}o[A+116>>2]=l,o[A+112>>2]=c,a[A+120|0]=1}o[A+108>>2]=c}else{if(!((0|e)<=(0|(s=o[A+108>>2]))|(0|e)<=o[A+112>>2])){e?(o[8488]=o[8488]+1,l=0|Zn[o[8290]](e<<2,16),s=o[A+108>>2]):l=0,r=o[A+116>>2];A:{r:{if((0|s)>0){if(f=0,b=0,s>>>0>=4)for(c=-4&s,k=0;o[(t=b<<2)+l>>2]=o[r+t>>2],o[(h=4|t)+l>>2]=o[r+h>>2],o[(h=8|t)+l>>2]=o[r+h>>2],o[(t|=12)+l>>2]=o[r+t>>2],b=b+4|0,(0|c)!=(0|(k=k+4|0)););if(t=3&s)for(;o[(c=b<<2)+l>>2]=o[r+c>>2],b=b+1|0,(0|t)!=(0|(f=f+1|0)););if(v[A+120|0])break r;break A}if(!r|!v[A+120|0])break A}r&&(o[8489]=o[8489]+1,Zn[o[8291]](r))}o[A+116>>2]=l,o[A+112>>2]=e,a[A+120|0]=1}o[A+108>>2]=e}if(!((0|i)<=(0|(s=o[A+148>>2]))|(0|i)<=o[A+152>>2])){i?(o[8488]=o[8488]+1,l=0|Zn[o[8290]](i<<2,16),s=o[A+148>>2]):l=0,r=o[A+156>>2];A:{r:{if((0|s)>0){if(f=0,b=0,s>>>0>=4)for(c=-4&s,k=0;o[(t=b<<2)+l>>2]=o[r+t>>2],o[(h=4|t)+l>>2]=o[r+h>>2],o[(h=8|t)+l>>2]=o[r+h>>2],o[(t|=12)+l>>2]=o[r+t>>2],b=b+4|0,(0|c)!=(0|(k=k+4|0)););if(t=3&s)for(;o[(c=b<<2)+l>>2]=o[r+c>>2],b=b+1|0,(0|t)!=(0|(f=f+1|0)););if(v[A+160|0])break r;break A}if(!r|!v[A+160|0])break A}r&&(o[8489]=o[8489]+1,Zn[o[8291]](r))}o[A+156>>2]=l,o[A+152>>2]=i,a[A+160|0]=1}if(o[A+148>>2]=i,!((0|n)<=0)){if(f=o[A+136>>2],r=0,b=0,n>>>0>=8)for(t=-8&n,s=0;o[f+(b<<2)>>2]=b,o[f+((c=1|b)<<2)>>2]=c,o[f+((c=2|b)<<2)>>2]=c,o[f+((c=3|b)<<2)>>2]=c,o[f+((c=4|b)<<2)>>2]=c,o[f+((c=5|b)<<2)>>2]=c,o[f+((c=6|b)<<2)>>2]=c,o[f+((c=7|b)<<2)>>2]=c,b=b+8|0,(0|t)!=(0|(s=s+8|0)););if(n&=7)for(;o[f+(b<<2)>>2]=b,b=b+1|0,(0|n)!=(0|(r=r+1|0)););}if(!((0|e)<=0)){if(f=o[A+116>>2],r=0,b=0,e>>>0>=8)for(n=-8&e,s=0;o[f+(b<<2)>>2]=b,o[f+((t=1|b)<<2)>>2]=t,o[f+((t=2|b)<<2)>>2]=t,o[f+((t=3|b)<<2)>>2]=t,o[f+((t=4|b)<<2)>>2]=t,o[f+((t=5|b)<<2)>>2]=t,o[f+((t=6|b)<<2)>>2]=t,o[f+((t=7|b)<<2)>>2]=t,b=b+8|0,(0|n)!=(0|(s=s+8|0)););if(e&=7)for(;o[f+(b<<2)>>2]=b,b=b+1|0,(0|e)!=(0|(r=r+1|0)););}if(!((0|i)<=0)){if(A=o[A+156>>2],r=0,b=0,i>>>0>=8)for(f=-8&i,s=0;o[A+(b<<2)>>2]=b,o[A+((e=1|b)<<2)>>2]=e,o[A+((e=2|b)<<2)>>2]=e,o[A+((e=3|b)<<2)>>2]=e,o[A+((e=4|b)<<2)>>2]=e,o[A+((e=5|b)<<2)>>2]=e,o[A+((e=6|b)<<2)>>2]=e,o[A+((e=7|b)<<2)>>2]=e,b=b+8|0,(0|f)!=(0|(s=s+8|0)););if(f=7&i)for(;o[A+(b<<2)>>2]=b,b=b+1|0,(0|f)!=(0|(r=r+1|0)););}return Zn[o[8295]](),S=u+256|0,m(m(0))},function(A,r,f,e,i,n,a,t,c){A|=0,r|=0,f|=0,e|=0,i|=0,n|=0,a|=0,t|=0,c|=0;var b,u=0,l=0,s=m(0),k=0;S=b=S-16|0,Zn[o[8294]](4109),Zn[o[o[A>>2]+32>>2]](A,r,f,e,i,n,a,t,c);A:if(!((0|(l=(0|(u=o[A+184>>2]))>(0|(l=o[t+20>>2]))?u:l))<=0))for(k=l-1|0,u=0;;){if(s=m(Zn[o[o[A>>2]+40>>2]](A,u,r,f,e,i,n,a,t,c)),w[A+228>>2]=s,(0|u)>=(0|k)|w[t+92>>2]>=s)break A;if((0|l)==(0|(u=u+1|0)))break}return Zn[o[8295]](),S=b+16|0,m(m(0))},function(A){A|=0,o[8793]=24120,!(A=o[8932])||!A|!v[35732]||(o[8489]=o[8489]+1,Zn[o[8291]](A)),a[35732]=1,o[8930]=0,o[8931]=0,o[8932]=0,se(35172)},hn,Bn,tn,hr,function(A){var r;return o[(A|=0)>>2]=24120,!(r=o[A+556>>2])||!r|!v[A+560|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+556>>2]=0,a[A+560|0]=1,o[A+548>>2]=0,o[A+552>>2]=0,0|se(A)},function(A){var r;o[(A|=0)>>2]=24120,!(r=o[A+556>>2])||!r|!v[A+560|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+556>>2]=0,a[A+560|0]=1,o[A+548>>2]=0,o[A+552>>2]=0,(A=se(A))&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(){return 496},function(A,r,f){return nr(A|=0,r|=0,f|=0),w[r+264>>2]=w[A+324>>2],w[r+268>>2]=w[A+328>>2],w[r+272>>2]=w[A+332>>2],w[r+276>>2]=w[A+336>>2],w[r+280>>2]=w[A+340>>2],w[r+284>>2]=w[A+344>>2],w[r+288>>2]=w[A+348>>2],w[r+292>>2]=w[A+352>>2],w[r+296>>2]=w[A+356>>2],w[r+300>>2]=w[A+360>>2],w[r+304>>2]=w[A+364>>2],w[r+308>>2]=w[A+368>>2],w[r+312>>2]=w[A+372>>2],w[r+316>>2]=w[A+376>>2],w[r+320>>2]=w[A+380>>2],w[r+324>>2]=w[A+384>>2],w[r+328>>2]=w[A+388>>2],w[r+332>>2]=w[A+392>>2],w[r+336>>2]=w[A+396>>2],w[r+340>>2]=w[A+400>>2],w[r+456>>2]=w[A+404>>2],w[r+344>>2]=w[A+604>>2],w[r+348>>2]=w[A+608>>2],w[r+352>>2]=w[A+612>>2],w[r+356>>2]=w[A+616>>2],w[r+360>>2]=w[A+408>>2],w[r+364>>2]=w[A+412>>2],w[r+368>>2]=w[A+416>>2],w[r+372>>2]=w[A+420>>2],w[r+376>>2]=w[A+424>>2],w[r+380>>2]=w[A+428>>2],w[r+384>>2]=w[A+432>>2],w[r+388>>2]=w[A+436>>2],w[r+392>>2]=w[A+440>>2],w[r+396>>2]=w[A+444>>2],w[r+400>>2]=w[A+448>>2],w[r+404>>2]=w[A+452>>2],w[r+408>>2]=w[A+456>>2],w[r+412>>2]=w[A+460>>2],w[r+416>>2]=w[A+464>>2],w[r+420>>2]=w[A+468>>2],w[r+424>>2]=w[A+472>>2],w[r+428>>2]=w[A+476>>2],w[r+432>>2]=w[A+480>>2],w[r+436>>2]=w[A+484>>2],w[r+440>>2]=w[A+488>>2],w[r+444>>2]=w[A+492>>2],w[r+448>>2]=w[A+496>>2],w[r+452>>2]=w[A+500>>2],w[r+460>>2]=w[A+504>>2],w[r+464>>2]=w[A+508>>2],o[r+492>>2]=v[A+512|0],w[r+468>>2]=w[A+516>>2],w[r+472>>2]=w[A+520>>2],w[r+476>>2]=w[A+524>>2],w[r+480>>2]=w[A+528>>2],w[r+484>>2]=w[A+532>>2],w[r+488>>2]=w[A+536>>2],8697},function(A,r){var f,e,i=0,n=0,a=0,t=0;n=r|=0,a=0|Zn[o[o[(A|=0)>>2]+16>>2]](A),t=1,i=o[o[r>>2]+16>>2],e=0|Zn[i](0|n,0|a,0|t),t=r,a=e,n=0|Zn[o[o[A>>2]+20>>2]](A,o[e+8>>2],r),f=A,i=o[o[r>>2]+20>>2],Zn[i](0|t,0|a,0|n,1497645650,0|f)},gf,function(A){gf(A|=0),DA(A)},function(A,r,f){A|=0,f|=0;var e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0;if(!((0|(f=o[8+(r|=0)>>2]))<=0)){if(e=o[r+16>>2],1!=(0|f))for(t=-2&f;c=o[(b=i<<2)+e>>2],3&v[c+204|0]||(o[c+208>>2]=n,n=n+1|0),o[c+268>>2]=1065353216,o[c+212>>2]=-1,c=o[e+(4|b)>>2],3&v[c+204|0]||(o[c+208>>2]=n,n=n+1|0),o[c+268>>2]=1065353216,o[c+212>>2]=-1,i=i+2|0,(0|t)!=(0|(l=l+2|0)););1&f&&(f=o[e+(i<<2)>>2],3&v[f+204|0]||(o[f+208>>2]=n,n=n+1|0),o[f+268>>2]=1065353216,o[f+212>>2]=-1)}if(e=0,c=0,b=0,l=0,!((0|n)<=(0|(f=o[A+8>>2])))){if(o[A+12>>2]<(0|n)){if(n?(o[8488]=o[8488]+1,c=0|Zn[o[8290]](n<<3,16),i=o[A+8>>2]):i=f,!((0|i)<=0)){if(i>>>0>=4)for(d=-4&i;u=(t=e<<3)+c|0,s=t+o[A+16>>2]|0,k=o[s+4>>2],o[u>>2]=o[s>>2],o[u+4>>2]=k,s=(u=8|t)+c|0,u=u+o[A+16>>2]|0,k=o[u+4>>2],o[s>>2]=o[u>>2],o[s+4>>2]=k,s=(u=16|t)+c|0,u=u+o[A+16>>2]|0,k=o[u+4>>2],o[s>>2]=o[u>>2],o[s+4>>2]=k,u=(t|=24)+c|0,t=t+o[A+16>>2]|0,s=o[t+4>>2],o[u>>2]=o[t>>2],o[u+4>>2]=s,e=e+4|0,(0|d)!=(0|(b=b+4|0)););if(i&=3)for(;b=(t=e<<3)+c|0,t=t+o[A+16>>2]|0,d=o[t+4>>2],o[b>>2]=o[t>>2],o[b+4>>2]=d,e=e+1|0,(0|i)!=(0|(l=l+1|0)););}!(i=o[A+16>>2])||!i|!v[A+20|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),o[A+16>>2]=c,a[A+20|0]=1,o[A+12>>2]=n}if(i=~f+n|0,c=n-f&3)for(e=0;l=o[A+16>>2]+(f<<3)|0,o[l>>2]=0,o[l+4>>2]=0,f=f+1|0,(0|c)!=(0|(e=e+1|0)););if(!(i>>>0<3))for(;e=(i=f<<3)+o[A+16>>2]|0,o[e>>2]=0,o[e+4>>2]=0,e=i+o[A+16>>2]|0,o[e+8>>2]=0,o[e+12>>2]=0,e=i+o[A+16>>2]|0,o[e+16>>2]=0,o[e+20>>2]=0,i=i+o[A+16>>2]|0,o[i+24>>2]=0,o[i+28>>2]=0,(0|n)!=(0|(f=f+4|0)););}if(o[A+8>>2]=n,!((0|n)<=0)){if(i=o[A+16>>2],e=0,f=0,n>>>0>=4)for(l=-4&n,c=0;o[4+(t=i+(f<<3)|0)>>2]=1,o[t>>2]=f,o[4+(b=i+((t=1|f)<<3)|0)>>2]=1,o[b>>2]=t,o[4+(b=i+((t=2|f)<<3)|0)>>2]=1,o[b>>2]=t,o[4+(b=i+((t=3|f)<<3)|0)>>2]=1,o[b>>2]=t,f=f+4|0,(0|l)!=(0|(c=c+4|0)););if(n&=3)for(;o[4+(c=i+(f<<3)|0)>>2]=1,o[c>>2]=f,f=f+1|0,(0|n)!=(0|(e=e+1|0)););}if(i=0,r=o[r+68>>2],r=0|Zn[o[o[r>>2]+36>>2]](r),(c=0|Zn[o[o[r>>2]+36>>2]](r))&&(l=0|Zn[o[o[r>>2]+20>>2]](r),!((0|c)<=0)))for(A=o[A+16>>2];;){if(!(!(f=o[o[(r=l+(i<<4)|0)>>2]>>2])|7&v[f+204|0]||!(r=o[o[r+4>>2]>>2])|7&v[r+204|0])){if(r=o[r+208>>2],(0|(f=o[f+208>>2]))!=(0|(e=o[(n=A+(f<<3)|0)>>2])))for(;f=A+(e<<3)|0,o[n>>2]=o[f>>2],(0|(f=o[f>>2]))!=(0|(e=o[(n=A+(f<<3)|0)>>2])););if((0|(e=o[(n=A+(r<<3)|0)>>2]))!=(0|r))for(;r=A+(e<<3)|0,o[n>>2]=o[r>>2],(0|(r=o[r>>2]))!=(0|(e=o[(n=A+(r<<3)|0)>>2])););(0|r)!=(0|f)&&(o[(f=A+(f<<3)|0)>>2]=r,o[4+(r=A+(r<<3)|0)>>2]=o[r+4>>2]+o[f+4>>2])}if((0|c)==(0|(i=i+1|0)))break}},function(A,r){A|=0;var f,e=0,i=0,n=0,a=0,t=0,c=0,b=0;if((0|(f=o[8+(r|=0)>>2]))>0)for(i=o[A+16>>2],b=o[r+16>>2],A=0;;){if(e=o[(n<<2)+b>>2],3&v[e+204|0])o[e+208>>2]=-1,o[e+212>>2]=-2;else{if((0|(r=A))!=(0|(t=o[(a=(c=r<<3)+i|0)>>2])))for(;r=(t<<3)+i|0,o[a>>2]=o[r>>2],(0|(r=o[r>>2]))!=(0|(t=o[(a=(r<<3)+i|0)>>2])););o[e+208>>2]=r,o[4+(i+c|0)>>2]=n,o[e+212>>2]=-1,A=A+1|0}if((0|f)==(0|(n=n+1|0)))break}},gr,function(A){gr(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A){A|=0;var r,f=0,e=0,i=0,n=0,a=0;if(S=r=S-16|0,Zn[o[8294]](7902),gA(A),0|Zn[o[o[A>>2]+20>>2]](A)&&(f=0|Zn[o[o[A>>2]+20>>2]](A),6144&Zn[o[o[f>>2]+56>>2]](f)&&!((0|(f=0|Zn[o[o[A>>2]+104>>2]](A)))<=0)&&(e=f,1&f&&(e=f-1|0,n=A,a=0|Zn[o[o[A>>2]+108>>2]](A,e),i=o[o[A>>2]+172>>2],Zn[i](0|n,0|a)),1!=(0|f))))for(;f=e-1|0,a=A,n=0|Zn[o[o[A>>2]+108>>2]](A,f),i=o[o[A>>2]+172>>2],Zn[i](0|a,0|n),e=e-2|0,n=A,a=0|Zn[o[o[A>>2]+108>>2]](A,e),i=o[o[A>>2]+172>>2],Zn[i](0|n,0|a),f>>>0>1;);if(0|Zn[o[o[A>>2]+20>>2]](A)&&(f=0|Zn[o[o[A>>2]+20>>2]](A),16387&Zn[o[o[f>>2]+56>>2]](f)&&0|Zn[o[o[A>>2]+20>>2]](A)&&(f=0|Zn[o[o[A>>2]+20>>2]](A),!(!(0|Zn[o[o[f>>2]+56>>2]](f))|o[A+296>>2]<=0))))for(e=0;f=o[o[A+304>>2]+(e<<2)>>2],Zn[o[o[f>>2]+12>>2]](f,o[A+72>>2]),(0|(e=e+1|0))>2];);0|Zn[o[o[A>>2]+20>>2]](A)&&(A=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[A>>2]+104>>2]](A)),Zn[o[8295]](),S=r+16|0},function(A,r,f,e){wr(A|=0,r|=0,f|=0,e|=0)},function(A,r){A|=0,!(r|=0)|!(2&o[r+252>>2])?ef(A,r):Zn[o[o[A>>2]+92>>2]](A,r)},function(A,r){A|=0;var f=0,e=0,i=0,n=0,a=0,t=0,c=0,b=0,u=0;if(Zn[o[o[(r|=0)>>2]+32>>2]](r),e=0|Zn[o[o[r>>2]+16>>2]](r,104,1),f=Af(o[e+8>>2],0,104),w[f+88>>2]=w[A+264>>2],w[f+92>>2]=w[A+268>>2],w[f+96>>2]=w[A+272>>2],w[f+100>>2]=w[A+276>>2],w[f>>2]=w[A+92>>2],w[f+4>>2]=w[A+96>>2],w[f+8>>2]=w[A+100>>2],w[f+12>>2]=w[A+104>>2],w[f+16>>2]=w[A+108>>2],w[f+20>>2]=w[A+116>>2],w[f+24>>2]=w[A+120>>2],w[f+28>>2]=w[A+124>>2],w[f+32>>2]=w[A+128>>2],w[f+36>>2]=w[A+132>>2],w[f+40>>2]=w[A+148>>2],w[f+44>>2]=w[A+152>>2],w[f+48>>2]=w[A+156>>2],w[f+52>>2]=w[A+160>>2],w[f+56>>2]=w[A+176>>2],w[f+60>>2]=w[A+180>>2],o[f+64>>2]=o[A+112>>2],o[f+68>>2]=o[A+164>>2],o[f+72>>2]=o[A+168>>2],o[f+76>>2]=o[A+172>>2],i=o[A+144>>2],o[f+84>>2]=0,o[f+80>>2]=i,Zn[o[o[r>>2]+20>>2]](r,e,8856,1145853764,f),hA(A,r),f=0,(0|(i=o[A+8>>2]))>0)for(;e=o[o[A+16>>2]+(f<<2)>>2],2&v[e+252|0]&&(a=r,t=0|Zn[o[o[e>>2]+16>>2]](e),c=1,n=o[o[r>>2]+16>>2],i=0|Zn[n](0|a,0|t,0|c),c=r,t=i,a=0|Zn[o[o[e>>2]+20>>2]](e,o[i+8>>2],r),b=1497645650,u=e,n=o[o[r>>2]+20>>2],Zn[n](0|c,0|t,0|a,0|b,0|u),i=o[A+8>>2]),(0|i)>(0|(f=f+1|0)););if(o[A+228>>2]>0)for(f=0;e=o[o[A+236>>2]+(f<<2)>>2],u=r,b=0|Zn[o[o[e>>2]+36>>2]](e),a=1,n=o[o[r>>2]+16>>2],i=0|Zn[n](0|u,0|b,0|a),a=r,b=i,u=0|Zn[o[o[e>>2]+40>>2]](e,o[i+8>>2],r),t=1397641027,c=e,n=o[o[r>>2]+20>>2],Zn[n](0|a,0|b,0|u,0|t,0|c),(0|(f=f+1|0))>2];);Zn[o[o[r>>2]+36>>2]](r)},function(A,r,f,e){A|=0,r=m(r),f|=0,e=m(e);var i=0,n=0,t=0,c=m(0),b=0,u=0;A:if(f){if(w[A+284>>2]=e,r=m(w[A+280>>2]+r),w[A+280>>2]=r,!(r>=e))break A;c=r,r=m(r/e),i=m(Q(r))>2]=c-m(m(0|i)*e)}else o[A+284>>2]=0,w[A+280>>2]=v[A+316|0]?m(0):r,e=r,f=i=!(m(Q(r))>2]+20>>2]](A)&&(t=0|Zn[o[o[A>>2]+20>>2]](A),b=35849,u=Zn[o[o[t>>2]+56>>2]](t)>>>4&1,a[0|b]=u);A:if(i){if(n=(0|f)>(0|i)?i:f,Zn[o[o[A>>2]+168>>2]](A,m(e*m(0|n))),Zn[o[o[A>>2]+176>>2]](A),(0|n)<=0)break A;if(1!=(0|n))for(t=-2&n,f=0;Zn[o[o[A>>2]+160>>2]](A,e),Zn[o[o[A>>2]+80>>2]](A),Zn[o[o[A>>2]+160>>2]](A,e),Zn[o[o[A>>2]+80>>2]](A),(0|t)!=(0|(f=f+2|0)););if(!(1&n))break A;Zn[o[o[A>>2]+160>>2]](A,e),Zn[o[o[A>>2]+80>>2]](A)}else Zn[o[o[A>>2]+80>>2]](A);return Zn[o[o[A>>2]+120>>2]](A),0|i},function(A,r,f){r|=0,f|=0;var e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0;if((0|(e=o[228+(A|=0)>>2]))==o[A+232>>2]&&!((0|(b=e?e<<1:1))<=(0|e))){if(b&&(o[8488]=o[8488]+1,t=0|Zn[o[8290]](b<<2,16),e=o[A+228>>2]),!((0|e)<=0)){if(e>>>0>=4)for(u=-4&e;o[(i=n<<2)+t>>2]=o[i+o[A+236>>2]>>2],o[(c=4|i)+t>>2]=o[c+o[A+236>>2]>>2],o[(c=8|i)+t>>2]=o[c+o[A+236>>2]>>2],o[(i|=12)+t>>2]=o[i+o[A+236>>2]>>2],n=n+4|0,(0|u)!=(0|(l=l+4|0)););if(i=3&e)for(;o[(u=n<<2)+t>>2]=o[u+o[A+236>>2]>>2],n=n+1|0,(0|i)!=(0|(s=s+1|0)););}!(n=o[A+236>>2])|!v[A+240|0]||(n&&(o[8489]=o[8489]+1,Zn[o[8291]](n)),e=o[A+228>>2]),o[A+236>>2]=t,a[A+240|0]=1,o[A+232>>2]=b}o[o[A+236>>2]+(e<<2)>>2]=r,o[A+228>>2]=e+1,f&&(UA(o[r+28>>2],r),UA(o[r+32>>2],r))},function(A,r){r|=0;var f=0,e=0,i=0,n=0;A:if(!((0|(f=o[228+(A|=0)>>2]))<=0)){for(i=o[A+236>>2];;){if(o[(n=(e<<2)+i|0)>>2]!=(0|r)){if((0|f)!=(0|(e=e+1|0)))continue;break A}break}(0|f)<=(0|e)||(e=(f=f-1|0)<<2,o[n>>2]=o[e+i>>2],o[e+o[A+236>>2]>>2]=r,o[A+228>>2]=f)}Hr(o[r+28>>2],r),Hr(o[r+32>>2],r)},function(A,r){r|=0;var f=0,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0;if((0|(f=o[296+(A|=0)>>2]))==o[A+300>>2]&&!((0|(c=f?f<<1:1))<=(0|f))){if(c&&(o[8488]=o[8488]+1,n=0|Zn[o[8290]](c<<2,16),f=o[A+296>>2]),!((0|f)<=0)){if(f>>>0>=4)for(b=-4&f;o[(e=i<<2)+n>>2]=o[e+o[A+304>>2]>>2],o[(t=4|e)+n>>2]=o[t+o[A+304>>2]>>2],o[(t=8|e)+n>>2]=o[t+o[A+304>>2]>>2],o[(e|=12)+n>>2]=o[e+o[A+304>>2]>>2],i=i+4|0,(0|b)!=(0|(u=u+4|0)););if(e=3&f)for(;o[(b=i<<2)+n>>2]=o[b+o[A+304>>2]>>2],i=i+1|0,(0|e)!=(0|(l=l+1|0)););}!(i=o[A+304>>2])|!v[A+308|0]||(i&&(o[8489]=o[8489]+1,Zn[o[8291]](i)),f=o[A+296>>2]),o[A+304>>2]=n,a[A+308|0]=1,o[A+300>>2]=c}o[o[A+304>>2]+(f<<2)>>2]=r,o[A+296>>2]=f+1},function(A,r){r|=0;var f=0,e=0,i=0,n=0;A:if(!((0|(f=o[296+(A|=0)>>2]))<=0)){for(i=o[A+304>>2];;){if(o[(n=(e<<2)+i|0)>>2]!=(0|r)){if((0|f)!=(0|(e=e+1|0)))continue;break A}break}(0|f)<=(0|e)||(e=(f=f-1|0)<<2,o[n>>2]=o[e+i>>2],o[e+o[A+304>>2]>>2]=r,o[A+296>>2]=f)}},function(A,r){A|=0;var f=0,e=0,i=0;if(f=o[4+(r|=0)>>2],o[A+264>>2]=o[r>>2],o[A+268>>2]=f,f=o[r+12>>2],o[A+272>>2]=o[r+8>>2],o[A+276>>2]=f,(0|(f=o[A+248>>2]))>0)for(;;){A:{switch(i=o[o[A+256>>2]+(e<<2)>>2],o[i+220>>2]-2|0){case 0:case 3:break A}1&a[i+564|0]||(Of(i,r),f=o[A+248>>2])}if(!((0|f)>(0|(e=e+1|0))))break}},function(A,r){A|=0;var f=0;f=o[268+(r|=0)>>2],o[A>>2]=o[r+264>>2],o[A+4>>2]=f,f=o[r+276>>2],o[A+8>>2]=o[r+272>>2],o[A+12>>2]=f},function(A){A|=0;var r,f=0,e=0,i=m(0),n=0;S=r=S+-64|0;A:if(v[A+290|0]){if((0|(e=o[A+8>>2]))<=0)break A;for(;!(f=o[o[A+16>>2]+(n<<2)>>2])|!(2&o[f+252>>2])|!o[f+540>>2]|3&v[f+204|0]||(tr(e=f+68|0,f+132|0,f+148|0,i=v[A+316|0]&&(i=w[A+284>>2])!=m(0)?m(w[A+280>>2]-i):m(w[A+280>>2]*w[f+268>>2]),r),f=o[f+540>>2],Zn[o[o[f>>2]+12>>2]](f,r),e=o[A+8>>2]),(0|e)>(0|(n=n+1|0)););}else if(!((0|(e=o[A+248>>2]))<=0))for(;;){r:{switch(f=o[o[A+256>>2]+(n<<2)>>2],o[f+220>>2]-2|0){case 0:case 3:break r}!o[f+540>>2]|3&v[f+204|0]||(tr(e=f+68|0,f+132|0,f+148|0,i=v[A+316|0]&&(i=w[A+284>>2])!=m(0)?m(w[A+280>>2]-i):m(w[A+280>>2]*w[f+268>>2]),r),f=o[f+540>>2],Zn[o[o[f>>2]+12>>2]](f,r),e=o[A+248>>2])}if(!((0|e)>(0|(n=n+1|0))))break}S=r- -64|0},function(A,r){A|=0;var f=0,e=0,i=0,n=0,t=0,c=0,b=0,u=0,l=0;if(3&v[204+(r|=0)|0]|1&a[r+564|0]||Of(r,A+264|0),o[r+192>>2]){if(1&a[r+204|0])4!=(-2&o[r+220>>2])&&(o[r+220>>2]=2);else{if((0|(f=o[A+248>>2]))==o[A+252>>2]&&!((0|(c=f?f<<1:1))<=(0|f))){if(c&&(o[8488]=o[8488]+1,n=0|Zn[o[8290]](c<<2,16),f=o[A+248>>2]),!((0|f)<=0)){if(f>>>0>=4)for(b=-4&f;o[(e=i<<2)+n>>2]=o[e+o[A+256>>2]>>2],o[(t=4|e)+n>>2]=o[t+o[A+256>>2]>>2],o[(t=8|e)+n>>2]=o[t+o[A+256>>2]>>2],o[(e|=12)+n>>2]=o[e+o[A+256>>2]>>2],i=i+4|0,(0|b)!=(0|(u=u+4|0)););if(e=3&f)for(;o[(b=i<<2)+n>>2]=o[b+o[A+256>>2]>>2],i=i+1|0,(0|e)!=(0|(l=l+1|0)););}!(i=o[A+256>>2])|!v[A+260|0]||(i&&(o[8489]=o[8489]+1,Zn[o[8291]](i)),f=o[A+248>>2]),o[A+256>>2]=n,a[A+260|0]=1,o[A+252>>2]=c}o[o[A+256>>2]+(f<<2)>>2]=r,o[A+248>>2]=f+1}f=r,r=3&o[r+204>>2],Zn[o[o[A>>2]+36>>2]](A,f,r?2:1,r?-3:-1)}},function(A,r,f,e){A|=0,f|=0,e|=0;var i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0;if(3&v[204+(r|=0)|0]|1&a[r+564|0]||Of(r,A+264|0),o[r+192>>2]){if(1&a[r+204|0])4!=(-2&o[r+220>>2])&&(o[r+220>>2]=2);else{if((0|(i=o[A+248>>2]))==o[A+252>>2]&&!((0|(u=i?i<<1:1))<=(0|i))){if(u&&(o[8488]=o[8488]+1,c=0|Zn[o[8290]](u<<2,16),i=o[A+248>>2]),!((0|i)<=0)){if(i>>>0>=4)for(l=-4&i;o[(n=t<<2)+c>>2]=o[n+o[A+256>>2]>>2],o[(b=4|n)+c>>2]=o[b+o[A+256>>2]>>2],o[(b=8|n)+c>>2]=o[b+o[A+256>>2]>>2],o[(n|=12)+c>>2]=o[n+o[A+256>>2]>>2],t=t+4|0,(0|l)!=(0|(s=s+4|0)););if(n=3&i)for(;o[(l=t<<2)+c>>2]=o[l+o[A+256>>2]>>2],t=t+1|0,(0|n)!=(0|(k=k+1|0)););}!(t=o[A+256>>2])|!v[A+260|0]||(t&&(o[8489]=o[8489]+1,Zn[o[8291]](t)),i=o[A+248>>2]),o[A+256>>2]=c,a[A+260|0]=1,o[A+252>>2]=u}o[o[A+256>>2]+(i<<2)>>2]=r,o[A+248>>2]=i+1}Zn[o[o[A>>2]+36>>2]](A,r,f,e)}},function(A,r){r|=0;var f=0,e=0,i=0,n=0;A:if(!((0|(f=o[248+(A|=0)>>2]))<=0)){for(i=o[A+256>>2];;){if(o[(n=(e<<2)+i|0)>>2]!=(0|r)){if((0|f)!=(0|(e=e+1|0)))continue;break A}break}(0|f)<=(0|e)||(e=(f=f-1|0)<<2,o[n>>2]=o[e+i>>2],o[e+o[A+256>>2]>>2]=r,o[A+248>>2]=f)}ef(A,r)},function(A,r){r|=0;var f=0;v[289+(A|=0)|0]&&(f=o[A+216>>2])&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),o[A+216>>2]=r,a[A+289|0]=0,o[o[A+212>>2]+8>>2]=r},function(A){return o[216+(A|=0)>>2]},function(A){return o[228+(A|=0)>>2]},ni,ni,un,function(A){var r=0,f=0;if(o[248+(A|=0)>>2]>0)for(;r=o[o[A+256>>2]+(f<<2)>>2],o[r+472>>2]=0,o[r+476>>2]=0,o[r+496>>2]=0,o[r+500>>2]=0,o[r+488>>2]=0,o[r+492>>2]=0,o[r+480>>2]=0,o[r+484>>2]=0,(0|(f=f+1|0))>2];);},ui,bi,ui,bi,function(A,r){A|=0,r=m(r);var f,e=0,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=0,k=0,d=m(0);if(S=f=S-16|0,Zn[o[8294]](5587),(0|(s=o[A+248>>2]))>0)for(;e=o[o[A+256>>2]+(k<<2)>>2],3&v[e+204|0]||(i=w[e+372>>2],l=w[e+504>>2],n=ur(m(m(1)-l),r),i=m(i*n),w[e+372>>2]=i,c=m(n*w[e+376>>2]),w[e+376>>2]=c,n=m(n*w[e+380>>2]),w[e+380>>2]=n,t=w[e+388>>2],d=w[e+508>>2],a=ur(m(m(1)-d),r),t=m(t*a),w[e+388>>2]=t,b=m(a*w[e+392>>2]),w[e+392>>2]=b,a=m(a*w[e+396>>2]),w[e+396>>2]=a,v[e+512|0]&&(!(w[e+524>>2]>m(m(a*a)+m(m(t*t)+m(b*b))))|!(w[e+520>>2]>m(m(n*n)+m(m(i*i)+m(c*c))))||(u=w[e+516>>2],a=m(a*u),w[e+396>>2]=a,b=m(b*u),w[e+392>>2]=b,t=m(t*u),w[e+388>>2]=t,n=m(n*u),w[e+380>>2]=n,c=m(c*u),w[e+376>>2]=c,i=m(i*u),w[e+372>>2]=i),(u=m(N(m(m(n*n)+m(m(i*i)+m(c*c))))))m(.004999999888241291)?(l=n,n=m(m(1)/u),w[e+380>>2]=l-m(m(l*n)*m(.004999999888241291)),w[e+376>>2]=c-m(m(c*n)*m(.004999999888241291)),w[e+372>>2]=i-m(m(i*n)*m(.004999999888241291))):(o[e+372>>2]=0,o[e+376>>2]=0,o[e+380>>2]=0,o[e+384>>2]=0)),(i=m(N(m(m(a*a)+m(m(t*t)+m(b*b))))))m(.004999999888241291)?(i=m(m(1)/i),w[e+396>>2]=a-m(m(a*i)*m(.004999999888241291)),w[e+392>>2]=b-m(m(b*i)*m(.004999999888241291)),w[e+388>>2]=t-m(m(t*i)*m(.004999999888241291))):(o[e+388>>2]=0,o[e+392>>2]=0,o[e+396>>2]=0,o[e+400>>2]=0))),hi(e,r,e+68|0),s=o[A+248>>2]),(0|(k=k+1|0))<(0|s););Zn[o[8295]](),S=f+16|0},function(A,r){A|=0,r=m(r);var f,e=0,i=0,n=0,a=m(0),t=0,c=m(0),b=m(0),u=0,l=m(0),s=m(0),k=0,d=m(0),h=m(0),B=m(0),Z=m(0),Q=0,E=m(0),W=m(0),N=m(0),p=0,F=m(0),R=m(0),Y=m(0),V=0,g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0),M=m(0);if(S=f=S-16|0,Zn[o[8294]](4190),(0|(u=o[A+248>>2]))>0){if(V=o[A+256>>2],S=e=S-304|0,(0|u)>0)for(;;){i=o[(k<<2)+V>>2],o[i+268>>2]=1065353216;A:{switch(o[i+220>>2]-2|0){case 0:case 3:break A}if(!(3&v[i+204|0])){hi(i,r,e+240|0);r:{if(v[A+44|0]&&(a=w[i+276>>2],(a=m(a*a))!=m(0)&&(c=m(w[e+296>>2]-w[i+60>>2]),l=m(c*c),c=m(w[e+288>>2]-w[i+52>>2]),b=m(c*c),c=m(w[e+292>>2]-w[i+56>>2]),a>2]+4>>2]<=19&&(o[8964]=o[8964]+1,n=o[A+68>>2],n=0|Zn[o[o[n>>2]+36>>2]](n),Q=o[A+24>>2],o[e+148>>2]=-1,o[e+152>>2]=0,o[e+140>>2]=1065353216,o[e+144>>2]=1,t=o[i+64>>2],o[e+164>>2]=o[i+60>>2],o[e+168>>2]=t,t=o[i+56>>2],o[e+156>>2]=o[i+52>>2],o[e+160>>2]=t,t=o[e+300>>2],o[e+180>>2]=o[e+296>>2],o[e+184>>2]=t,t=o[e+292>>2],o[e+172>>2]=o[e+288>>2],o[e+176>>2]=t,o[e+232>>2]=Q,o[e+228>>2]=n,o[e+224>>2]=0,o[e+136>>2]=24624,o[e+220>>2]=i,a=w[i+272>>2],Q=ae(e+76|0),o[Q>>2]=21520,o[e+104>>2]=1065353216,o[e+96>>2]=1065353216,o[e+100>>2]=1065353216,o[e+80>>2]=8,o[e+124>>2]=0,o[e+116>>2]=0,o[e+120>>2]=0,o[e+108>>2]=0,o[e+112>>2]=0,o[e+132>>2]=0,w[e+128>>2]=a,w[e+112>>2]=a,w[e+224>>2]=w[A+56>>2],n=o[i+188>>2],o[e+144>>2]=o[n+4>>2],o[e+148>>2]=o[n+8>>2],n=o[e+252>>2],o[e+16>>2]=o[e+248>>2],o[e+20>>2]=n,n=o[e+244>>2],o[e+8>>2]=o[e+240>>2],o[e+12>>2]=n,n=o[e+268>>2],o[e+32>>2]=o[e+264>>2],o[e+36>>2]=n,n=o[e+260>>2],o[e+24>>2]=o[e+256>>2],o[e+28>>2]=n,n=o[e+284>>2],o[e+48>>2]=o[e+280>>2],o[e+52>>2]=n,n=o[e+276>>2],o[e+40>>2]=o[e+272>>2],o[e+44>>2]=n,n=o[e+300>>2],o[e+64>>2]=o[e+296>>2],o[e+68>>2]=n,n=o[e+292>>2],o[e+56>>2]=o[e+288>>2],o[e+60>>2]=n,t=o[12+(n=i+4|0)>>2],o[e+16>>2]=o[n+8>>2],o[e+20>>2]=t,t=o[n+4>>2],o[e+8>>2]=o[n>>2],o[e+12>>2]=t,t=o[i+32>>2],o[e+32>>2]=o[i+28>>2],o[e+36>>2]=t,t=o[i+24>>2],o[e+24>>2]=o[i+20>>2],o[e+28>>2]=t,t=o[i+48>>2],o[e+48>>2]=o[i+44>>2],o[e+52>>2]=t,t=o[i+40>>2],o[e+40>>2]=o[i+36>>2],o[e+44>>2]=t,EA(A,Q,n,e+8|0,e+136|0,m(0)),o[e+152>>2]&&(a=w[e+140>>2])>2]=a,n=e+240|0,hi(i,m(a*r),n),o[i+268>>2]=0,LA(i,n),Zn[o[8295]]()}}if((0|u)==(0|(k=k+1|0)))break}S=e+304|0}if(v[A+291|0]){if(Zn[o[8294]](5549),(0|(e=o[A+324>>2]))>0)for(;;){if(u=o[o[A+332>>2]+(p<<2)>>2],o[u+844>>2]>0){for(e=o[u+840>>2],e=o[e+252>>2]<<30>>31&e,i=o[u+836>>2],i=o[i+252>>2]<<30>>31&i,k=0;(r=m(w[i+232>>2]*w[e+232>>2]))>m(0)&&(n=u+G(k,208)|0,(a=w[n+136>>2])!=m(0)&&(E=w[n+44>>2],g=w[e+60>>2],W=w[n+40>>2],X=w[e+56>>2],N=w[n+36>>2],D=w[e+52>>2],c=m(r*m(a*m(-w[n+76>>2]))),b=m(r*m(a*m(-w[n+72>>2]))),a=m(r*m(a*m(-w[n+68>>2]))),(r=w[i+404>>2])!=m(0)&&(d=w[n+56>>2],h=w[n+60>>2],B=w[n+52>>2],Z=m(a*w[i+408>>2]),w[i+372>>2]=m(r*Z)+w[i+372>>2],s=m(b*w[i+412>>2]),w[i+376>>2]=m(r*s)+w[i+376>>2],l=r,r=m(c*w[i+416>>2]),w[i+380>>2]=m(l*r)+w[i+380>>2],l=w[i+612>>2],F=w[i+364>>2],R=w[i+356>>2],C=w[i+360>>2],J=w[i+608>>2],x=w[i+348>>2],y=w[i+340>>2],M=w[i+344>>2],B=m(B-w[i+52>>2]),Y=m(d-w[i+56>>2]),d=m(m(B*s)-m(Z*Y)),h=m(h-w[i+60>>2]),s=m(m(Y*r)-m(s*h)),r=m(m(h*Z)-m(r*B)),w[i+388>>2]=m(m(m(w[i+332>>2]*d)+m(m(w[i+324>>2]*s)+m(r*w[i+328>>2])))*w[i+604>>2])+w[i+388>>2],w[i+392>>2]=m(J*m(m(x*d)+m(m(y*s)+m(r*M))))+w[i+392>>2],w[i+396>>2]=m(l*m(m(F*d)+m(m(R*s)+m(r*C))))+w[i+396>>2]),(r=w[e+404>>2])!=m(0)&&(a=m(w[e+408>>2]*m(-a)),w[e+372>>2]=m(r*a)+w[e+372>>2],b=m(w[e+412>>2]*m(-b)),w[e+376>>2]=m(r*b)+w[e+376>>2],l=r,r=m(w[e+416>>2]*m(-c)),w[e+380>>2]=m(l*r)+w[e+380>>2],Z=w[e+612>>2],s=w[e+364>>2],d=w[e+356>>2],h=w[e+360>>2],B=w[e+608>>2],l=w[e+348>>2],F=w[e+340>>2],R=w[e+344>>2],N=m(N-D),W=m(W-X),c=m(m(N*b)-m(a*W)),E=m(E-g),b=m(m(W*r)-m(b*E)),r=m(m(E*a)-m(r*N)),w[e+388>>2]=m(m(m(w[e+332>>2]*c)+m(m(w[e+324>>2]*b)+m(r*w[e+328>>2])))*w[e+604>>2])+w[e+388>>2],w[e+392>>2]=m(B*m(m(l*c)+m(m(F*b)+m(r*R))))+w[e+392>>2],w[e+396>>2]=m(Z*m(m(s*c)+m(m(d*b)+m(r*h))))+w[e+396>>2]))),(0|(k=k+1|0))>2];);e=o[A+324>>2]}if(!((0|(p=p+1|0))<(0|e)))break}Zn[o[8295]]()}Zn[o[8295]](),S=f+16|0},function(A){A|=0;var r,f=0,e=0,i=0,n=0,a=0,t=0,c=0,b=0,u=0;if(S=r=S-16|0,Zn[o[8294]](4554),f=o[A+220>>2],Zn[o[o[f>>2]+8>>2]](f,A,o[A+24>>2]),(0|(c=o[A+324>>2]))>0)for(b=o[A+332>>2],u=o[A+220>>2];;){if(f=o[b+(t<<2)>>2],(e=o[f+836>>2])&&!(!(f=o[f+840>>2])|3&o[e+204>>2]|3&v[f+204|0])){if(f=o[f+208>>2],i=o[u+16>>2],n=o[e+208>>2],(0|(e=o[(a=i+(n<<3)|0)>>2]))!=(0|n))for(;e=i+(e<<3)|0,o[a>>2]=o[e>>2],n=o[e>>2],(0|(e=o[(a=i+(n<<3)|0)>>2]))!=(0|n););if((0|(e=o[(a=i+(f<<3)|0)>>2]))!=(0|f))for(;f=i+(e<<3)|0,o[a>>2]=o[f>>2],(0|(f=o[f>>2]))!=(0|(e=o[(a=i+(f<<3)|0)>>2])););(0|f)!=(0|n)&&(o[(e=i+(n<<3)|0)>>2]=f,o[4+(f=i+(f<<3)|0)>>2]=o[f+4>>2]+o[e+4>>2])}if((0|c)==(0|(t=t+1|0)))break}if((0|(c=o[A+228>>2]))>0)for(b=o[A+236>>2],u=o[A+220>>2],a=0;;){if(f=o[b+(a<<2)>>2],v[f+20|0]&&(e=o[f+28>>2],!(3&v[e+204|0]||(f=o[f+32>>2],3&v[f+204|0])))){if(f=o[f+208>>2],i=o[u+16>>2],n=o[e+208>>2],(0|(t=o[(e=i+(n<<3)|0)>>2]))!=(0|n))for(;n=e,e=i+(t<<3)|0,o[n>>2]=o[e>>2],n=o[e>>2],(0|(t=o[(e=i+(n<<3)|0)>>2]))!=(0|n););if((0|(t=o[(e=i+(f<<3)|0)>>2]))!=(0|f))for(;f=i+(t<<3)|0,o[e>>2]=o[f>>2],(0|(f=o[f>>2]))!=(0|(t=o[(e=i+(f<<3)|0)>>2])););(0|f)!=(0|n)&&(o[(e=i+(n<<3)|0)>>2]=f,o[4+(f=i+(f<<3)|0)>>2]=o[f+4>>2]+o[e+4>>2])}if((0|c)==(0|(a=a+1|0)))break}f=o[A+220>>2],Zn[o[o[f>>2]+12>>2]](f,A),Zn[o[8295]](),S=r+16|0},function(A,r){A|=0,r|=0;var f,e,i,n,t,c=0,b=0,u=0,l=0,s=0,k=0,d=0,h=0,B=0,w=0,Z=0,G=0,m=0,Q=0,E=0,W=0,N=0,p=0,F=0,R=0,Y=0,V=0;if(S=e=S-16|0,Zn[o[8294]](3645),!((0|(b=o[A+196>>2]))>=(0|(h=o[A+228>>2])))){if((0|h)>o[A+200>>2]){if(h?(o[8488]=o[8488]+1,s=0|Zn[o[8290]](h<<2,16),c=o[A+196>>2]):c=b,!((0|c)<=0)){if(c>>>0>=4)for(d=-4&c;o[(l=k<<2)+s>>2]=o[l+o[A+204>>2]>>2],o[(Z=4|l)+s>>2]=o[Z+o[A+204>>2]>>2],o[(Z=8|l)+s>>2]=o[Z+o[A+204>>2]>>2],o[(l|=12)+s>>2]=o[l+o[A+204>>2]>>2],k=k+4|0,(0|d)!=(0|(u=u+4|0)););if(c&=3)for(;o[(u=k<<2)+s>>2]=o[u+o[A+204>>2]>>2],k=k+1|0,(0|c)!=(0|(E=E+1|0)););}!(c=o[A+204>>2])||!c|!v[A+208|0]||(o[8489]=o[8489]+1,Zn[o[8291]](c)),o[A+204>>2]=s,a[A+208|0]=1,o[A+200>>2]=h}if(c=h+~b|0,u=h-b&3)for(k=0;o[o[A+204>>2]+(b<<2)>>2]=0,b=b+1|0,(0|u)!=(0|(k=k+1|0)););if(!(c>>>0<3))for(;o[(c=b<<2)+o[A+204>>2]>>2]=0,o[4+(c+o[A+204>>2]|0)>>2]=0,o[8+(c+o[A+204>>2]|0)>>2]=0,o[12+(c+o[A+204>>2]|0)>>2]=0,(0|h)!=(0|(b=b+4|0)););}if(o[A+196>>2]=h,(0|Zn[o[o[A>>2]+104>>2]](A))>0)for(b=0;o[(c=b<<2)+o[A+204>>2]>>2]=o[c+o[A+236>>2]>>2],b=b+1|0,(0|Zn[o[o[A>>2]+104>>2]](A))>(0|b););if((0|(b=o[A+196>>2]))>=2&&yr(A+192|0,e+14|0,0,b-1|0),b=(b=0|Zn[o[o[A>>2]+104>>2]](A))?o[A+204>>2]:0,c=o[A+196>>2],Y=s=o[A+212>>2],V=0|Zn[o[o[A>>2]+20>>2]](A),o[Y+20>>2]=V,o[s+16>>2]=c,o[s+12>>2]=b,o[s+4>>2]=r,!((0|(c=o[s+32>>2]))>=0)){if(o[s+36>>2]<0&&(!(b=o[s+40>>2])||!b|!v[s+44|0]||(o[8489]=o[8489]+1,Zn[o[8291]](b)),a[s+44|0]=1,o[s+36>>2]=0,o[s+40>>2]=0),u=0,b=c,h=0-c&3)for(;o[o[s+40>>2]+(b<<2)>>2]=0,b=b+1|0,(0|h)!=(0|(u=u+1|0)););if(!(c>>>0>4294967292))for(;o[(c=b<<2)+o[s+40>>2]>>2]=0,o[4+(c+o[s+40>>2]|0)>>2]=0,o[8+(c+o[s+40>>2]|0)>>2]=0,o[12+(c+o[s+40>>2]|0)>>2]=0,b=b+4|0;);}if(o[s+32>>2]=0,!((0|(c=o[s+52>>2]))>=0)){if(o[s+56>>2]<0&&(!(b=o[s+60>>2])||!b|!v[s- -64|0]||(o[8489]=o[8489]+1,Zn[o[8291]](b)),a[s+64|0]=1,o[s+56>>2]=0,o[s+60>>2]=0),u=0,b=c,h=0-c&3)for(;o[o[s+60>>2]+(b<<2)>>2]=0,b=b+1|0,(0|h)!=(0|(u=u+1|0)););if(!(c>>>0>4294967292))for(;o[(c=b<<2)+o[s+60>>2]>>2]=0,o[4+(c+o[s+60>>2]|0)>>2]=0,o[8+(c+o[s+60>>2]|0)>>2]=0,o[12+(c+o[s+60>>2]|0)>>2]=0,b=b+4|0;);}if(o[s+52>>2]=0,!((0|(c=o[s+72>>2]))>=0)){if(o[s+76>>2]<0&&(!(b=o[s+80>>2])||!b|!v[s+84|0]||(o[8489]=o[8489]+1,Zn[o[8291]](b)),a[s+84|0]=1,o[s+76>>2]=0,o[s+80>>2]=0),u=0,b=c,h=0-c&3)for(;o[o[s+80>>2]+(b<<2)>>2]=0,b=b+1|0,(0|h)!=(0|(u=u+1|0)););if(!(c>>>0>4294967292))for(;o[(c=b<<2)+o[s+80>>2]>>2]=0,o[4+(c+o[s+80>>2]|0)>>2]=0,o[8+(c+o[s+80>>2]|0)>>2]=0,o[12+(c+o[s+80>>2]|0)>>2]=0,b=b+4|0;);}if(o[s+72>>2]=0,b=o[A+216>>2],c=o[A+24>>2],V=b,n=o[A+8>>2],t=0|Zn[o[o[c>>2]+36>>2]](c),Y=o[o[b>>2]+8>>2],Zn[Y](0|V,0|n,0|t),l=o[A+220>>2],Z=o[A+24>>2],f=o[A+212>>2],s=0,E=0,h=A,b=0,S=p=(S=i=S-16|0)-16|0,Zn[o[8294]](2381),!((0|(A=o[l+28>>2]))>=0)){if(o[l+32>>2]<0&&(!(c=o[l+36>>2])||!c|!v[l+40|0]||(o[8489]=o[8489]+1,Zn[o[8291]](c)),a[l+40|0]=1,o[l+32>>2]=0,o[l+36>>2]=0),u=0-(c=A)&3)for(;o[o[l+36>>2]+(c<<2)>>2]=0,c=c+1|0,(0|u)!=(0|(b=b+1|0)););if(!(A>>>0>4294967292))for(;o[(A=c<<2)+o[l+36>>2]>>2]=0,o[4+(A+o[l+36>>2]|0)>>2]=0,o[8+(A+o[l+36>>2]|0)>>2]=0,o[12+(A+o[l+36>>2]|0)>>2]=0,c=c+4|0;);}if(o[l+28>>2]=0,A=0,S=w=S-16|0,!((0|(k=o[4+(B=l+4|0)>>2]))<=0)){for(d=o[B+12>>2];;){if(b=A,(0|(c=o[(u=G=d+(A<<3)|0)>>2]))!=(0|A))for(;b=d+(c<<3)|0,o[u>>2]=o[b>>2],b=o[b>>2],(0|(c=o[(u=d+(b<<3)|0)>>2]))!=(0|b););if(o[G>>2]=b,(0|k)==(0|(A=A+1|0)))break}(0|k)<2||Qf(B,w+15|0,0,k-1|0)}if(S=w+16|0,(0|(B=o[l+8>>2]))>0)for(b=0;;){for(u=(k=(0|(c=(A=b)+1|0))<(0|B)?B:c)-1|0,G=o[l+16>>2],w=o[G+(A<<3)>>2];;){if((0|u)!=(0|(c=b))){if((0|w)==o[G+((b=c+1|0)<<3)>>2])continue}else c=u,b=k;break}A:if(!(Q=(0|A)>(0|c))){if(d=1,W=1&(k=1+(c-A|0)|0),m=o[h+16>>2],u=A,(0|A)!=(0|c))for(N=-2&k,k=0;R=o[m+(o[4+(F=G+(u<<3)|0)>>2]<<2)>>2],(0|w)==o[R+208>>2]&&(d=d&4!=(0|(d=o[R+220>>2]))&1!=(0|d)),F=o[m+(o[F+12>>2]<<2)>>2],(0|w)==o[F+208>>2]&&(d=d&4!=(0|(d=o[F+220>>2]))&1!=(0|d)),u=u+2|0,(0|N)!=(0|(k=k+2|0)););if(W&&(u=o[m+(o[4+(G+(u<<3)|0)>>2]<<2)>>2],(0|w)==o[u+208>>2]&&(d&=4!=(0|(u=o[u+220>>2]))&1!=(0|u))),d){if(Q)break A;for(;u=o[o[h+16>>2]+(o[4+(o[l+16>>2]+(A<<3)|0)>>2]<<2)>>2],(0|w)==o[u+208>>2]&4!=(-2&o[u+220>>2])&&(o[u+220>>2]=2),u=(0|A)==(0|c),A=A+1|0,!u;);}else for(;u=A,A=o[o[h+16>>2]+(o[4+(o[l+16>>2]+(A<<3)|0)>>2]<<2)>>2],(0|w)!=o[A+208>>2]|2!=o[A+220>>2]||(4!=(-2&o[A+220>>2])&&(o[A+220>>2]=3),o[A+224>>2]=0),A=u+1|0,(0|c)!=(0|u););}if(!((0|b)<(0|B)))break}if((0|(m=0|Zn[o[o[Z>>2]+36>>2]](Z)))>0)for(b=0;;){if(G=0|Zn[o[o[Z>>2]+40>>2]](Z,b),A=o[G+840>>2],c=o[G+836>>2],!(!(2!=o[c+220>>2]&&c)&(!A|2==o[A+220>>2]))&&(!(2&(u=o[c+204>>2]))|4&u|2==o[c+220>>2]||ze(A,0),!(2&(u=o[A+204>>2]))|4&u|2==o[A+220>>2]||ze(c,0),v[l+64|0]&&0|Zn[o[o[Z>>2]+28>>2]](Z,c,A))){if((0|(u=o[l+28>>2]))==o[l+32>>2]&&!((0|(B=u?u<<1:1))<=(0|u))){if(B?(o[8488]=o[8488]+1,A=0|Zn[o[8290]](B<<2,16),u=o[l+28>>2]):A=0,!((0|u)<=0)){if(d=0,c=0,u>>>0>=4)for(Q=-4&u,k=0;o[(w=c<<2)+A>>2]=o[w+o[l+36>>2]>>2],o[(W=4|w)+A>>2]=o[W+o[l+36>>2]>>2],o[(W=8|w)+A>>2]=o[W+o[l+36>>2]>>2],o[(w|=12)+A>>2]=o[w+o[l+36>>2]>>2],c=c+4|0,(0|Q)!=(0|(k=k+4|0)););if(k=3&u)for(;o[(w=c<<2)+A>>2]=o[w+o[l+36>>2]>>2],c=c+1|0,(0|k)!=(0|(d=d+1|0)););}!(c=o[l+36>>2])|!v[l+40|0]||(c&&(o[8489]=o[8489]+1,Zn[o[8291]](c)),u=o[l+28>>2]),o[l+36>>2]=A,a[l+40|0]=1,o[l+32>>2]=B}o[o[l+36>>2]+(u<<2)>>2]=G,o[l+28>>2]=u+1}if((0|m)==(0|(b=b+1|0)))break}if(Zn[o[8295]](),S=p+16|0,G=o[l+8>>2],Zn[o[8294]](4539),v[l+64|0]){if((0|(Z=o[l+28>>2]))>=2&&xr(l+24|0,i+14|0,0,Z-1|0),!((0|G)<=0))for(A=1;;){for(w=o[o[l+16>>2]+(E<<3)>>2],d=1;;){if(b=o[l+16>>2]+(E<<3)|0,(0|w)==o[b>>2]){if(p=o[o[h+16>>2]+(o[b+4>>2]<<2)>>2],(0|(c=o[l+48>>2]))==o[l+52>>2]&&!((0|(m=c?c<<1:1))<=(0|c))){if(m?(o[8488]=o[8488]+1,u=0|Zn[o[8290]](m<<2,16),c=o[l+48>>2]):u=0,!((0|c)<=0)){if(k=0,b=0,c>>>0>=4)for(W=-4&c,Q=0;o[(B=b<<2)+u>>2]=o[B+o[l+56>>2]>>2],o[(N=4|B)+u>>2]=o[N+o[l+56>>2]>>2],o[(N=8|B)+u>>2]=o[N+o[l+56>>2]>>2],o[(B|=12)+u>>2]=o[B+o[l+56>>2]>>2],b=b+4|0,(0|W)!=(0|(Q=Q+4|0)););if(B=3&c)for(;o[(Q=b<<2)+u>>2]=o[Q+o[l+56>>2]>>2],b=b+1|0,(0|B)!=(0|(k=k+1|0)););}!(b=o[l+56>>2])|!v[l+60|0]||(b&&(o[8489]=o[8489]+1,Zn[o[8291]](b)),c=o[l+48>>2]),o[l+56>>2]=u,a[l+60|0]=1,o[l+52>>2]=m}if(o[o[l+56>>2]+(c<<2)>>2]=p,o[l+48>>2]=c+1,d&=2==(0|(b=o[p+220>>2]))|5==(0|b),(0|G)>(0|(E=E+1|0)))continue}break}if(k=0,b=0,!((0|s)>=(0|Z))&&(B=o[l+36>>2],b=o[(u=B+(s<<2)|0)>>2],(0|(c=o[o[b+836>>2]+208>>2]))<0&&(c=o[o[b+840>>2]+208>>2]),b=0,(0|c)==(0|w))){for(k=(c=(0|(A=s+1|0))<(0|Z)?Z:A)-1|0,A=s;;){if((0|A)!=(0|k)){if(m=o[B+((A=A+1|0)<<2)>>2],(0|(b=o[o[m+836>>2]+208>>2]))<0&&(b=o[o[m+840>>2]+208>>2]),(0|b)==(0|w))continue}else A=c;break}k=A-s|0,b=u}if(d||Zn[o[o[f>>2]+8>>2]](f,o[l+56>>2],o[l+48>>2],b,k,w),!((0|(c=o[l+48>>2]))>=0)){if(o[l+52>>2]<0&&(!(b=o[l+56>>2])||!b|!v[l+60|0]||(o[8489]=o[8489]+1,Zn[o[8291]](b)),a[l+60|0]=1,o[l+52>>2]=0,o[l+56>>2]=0),u=0,b=c,d=0-c&3)for(;o[o[l+56>>2]+(b<<2)>>2]=0,b=b+1|0,(0|d)!=(0|(u=u+1|0)););if(!(c>>>0>4294967292))for(;o[(c=b<<2)+o[l+56>>2]>>2]=0,o[4+(c+o[l+56>>2]|0)>>2]=0,o[8+(c+o[l+56>>2]|0)>>2]=0,o[12+(c+o[l+56>>2]|0)>>2]=0,b=b+4|0;);}if(s=k?A:s,o[l+48>>2]=0,!((0|G)>(0|E)))break}}else A=0|Zn[o[o[Z>>2]+44>>2]](Z),b=0|Zn[o[o[Z>>2]+36>>2]](Z),Zn[o[o[f>>2]+8>>2]](f,o[h+16>>2],o[h+8>>2],A,b,-1);Zn[o[8295]](),S=i+16|0,or(o[h+212>>2]),A=o[h+216>>2],Zn[o[o[A>>2]+16>>2]](A,r,o[h+72>>2]),Zn[o[8295]](),S=e+16|0},function(A,r){A|=0,r=m(r);var f,e=0,i=m(0),n=0,a=m(0),t=0,c=m(0);if(S=f=S-16|0,Zn[o[8294]](7227),o[A+248>>2]>0)for(;;){A:if(e=o[o[A+256>>2]+(t<<2)>>2]){r:{f:{switch((n=o[e+220>>2])-2|0){case 0:case 2:break f}if(i=w[e+380>>2],a=m(i*i),i=w[e+372>>2],c=m(i*i),i=w[e+376>>2],a=m(a+m(c+m(i*i))),i=w[e+532>>2],a>2],a=m(i*i),i=w[e+388>>2],c=m(i*i),i=w[e+392>>2],a=m(a+m(c+m(i*i))),i=w[e+536>>2],a>2]=w[e+224>>2]+r;break r}o[e+224>>2]=0,4!=(-2&o[e+220>>2])&&(o[e+220>>2]=0),n=o[e+220>>2]}if(4==(0|n))break A}if(v[35849]||(i=w[8299])==m(0)|!(i>2])&2!=(-2&n))4!=(-2&o[e+220>>2])&&(o[e+220>>2]=1);else{if(3&v[e+204|0]){4!=(-2&o[e+220>>2])&&(o[e+220>>2]=2);break A}if(1==(0|n)&&(4!=(-2&o[e+220>>2])&&(o[e+220>>2]=3),n=o[e+220>>2]),2!=(0|n))break A;o[e+388>>2]=0,o[e+392>>2]=0,o[e+372>>2]=0,o[e+376>>2]=0,o[e+396>>2]=0,o[e+400>>2]=0,o[e+380>>2]=0,o[e+384>>2]=0,o[e+304>>2]=o[e+304>>2]+2}}if(!((0|(t=t+1|0))>2]))break}Zn[o[8295]](),S=f+16|0},function(A,r){A|=0,r=m(r);var f,e,i,n=0,a=0;if(S=f=S-16|0,Zn[o[8294]](5999),(n=o[A+84>>2])&&Zn[0|n](A,r),Zn[o[o[A>>2]+140>>2]](A,r),n=0,o[A+32>>2]=0,w[A+28>>2]=r,e=A,i=0|Zn[o[o[A>>2]+20>>2]](A),o[e+48>>2]=i,Zn[o[o[A>>2]+164>>2]](A,r),Zn[o[o[A>>2]+44>>2]](A),Zn[o[o[A>>2]+148>>2]](A),w[A+104>>2]=r,Zn[o[o[A>>2]+152>>2]](A,A+92|0),Zn[o[o[A>>2]+144>>2]](A,r),Zn[o[8294]](4095),o[A+296>>2]>0)for(;a=o[o[A+304>>2]+(n<<2)>>2],Zn[o[o[a>>2]+8>>2]](a,A,r),(0|(n=n+1|0))>2];);Zn[o[8295]](),Zn[o[o[A>>2]+156>>2]](A,r),(n=o[A+80>>2])&&Zn[0|n](A,r),Zn[o[8295]](),S=f+16|0},function(A,r){A|=0,r=m(r);var f,e,i=0,n=0,t=0,c=0,b=m(0),u=0,l=m(0),s=0,k=m(0),d=m(0),h=m(0),B=m(0),Z=0,Q=m(0),E=0,W=0,N=0,p=0,F=0,R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=0,M=m(0),H=0,I=m(0),T=m(0);if(S=e=S-16|0,Zn[o[8294]](3728),Zn[o[8294]](4613),o[A+324>>2]>0)for(;t=o[A+24>>2],Zn[o[o[t>>2]+16>>2]](t,o[o[A+332>>2]+(i<<2)>>2]),(0|(i=i+1|0))>2];);if(!(i=o[A+332>>2])||!i|!v[A+336|0]||(o[8489]=o[8489]+1,Zn[o[8291]](i)),o[A+332>>2]=0,a[A+336|0]=1,o[A+324>>2]=0,o[A+328>>2]=0,Zn[o[8295]](),(0|(f=o[A+248>>2]))>0){if(y=o[A+256>>2],S=i=S-512|0,(0|f)>0)for(;;){t=o[(N<<2)+y>>2],o[t+268>>2]=1065353216;A:{switch(o[t+220>>2]-2|0){case 0:case 3:break A}if(!(3&v[t+204|0])&&(hi(t,r,i+448|0),v[A+44|0]&&(b=w[t+276>>2],(b=m(b*b))!=m(0)&&(l=m(w[i+504>>2]-w[t+60>>2]),k=m(l*l),l=m(w[i+496>>2]-w[t+52>>2]),Q=m(l*l),l=m(w[i+500>>2]-w[t+56>>2]),b>2]+4>>2]<=19&&(o[8964]=o[8964]+1,n=o[A+68>>2],n=0|Zn[o[o[n>>2]+36>>2]](n),u=o[A+24>>2],o[i+356>>2]=-1,o[i+360>>2]=0,o[i+348>>2]=1065353216,o[i+352>>2]=1,c=o[t+64>>2],o[i+372>>2]=o[t+60>>2],o[i+376>>2]=c,c=o[t+56>>2],o[i+364>>2]=o[t+52>>2],o[i+368>>2]=c,c=o[i+508>>2],o[i+388>>2]=o[i+504>>2],o[i+392>>2]=c,c=o[i+500>>2],o[i+380>>2]=o[i+496>>2],o[i+384>>2]=c,o[i+440>>2]=u,o[i+436>>2]=n,o[i+432>>2]=0,o[i+344>>2]=24624,o[i+428>>2]=t,b=w[t+272>>2],u=ae(i+284|0),o[u>>2]=21520,o[i+312>>2]=1065353216,o[i+304>>2]=1065353216,o[i+308>>2]=1065353216,o[i+288>>2]=8,o[i+332>>2]=0,o[i+324>>2]=0,o[i+328>>2]=0,o[i+316>>2]=0,o[i+320>>2]=0,o[i+340>>2]=0,w[i+336>>2]=b,w[i+320>>2]=b,w[i+432>>2]=w[A+56>>2],n=o[t+188>>2],o[i+352>>2]=o[n+4>>2],o[i+356>>2]=o[n+8>>2],n=o[i+460>>2],o[i+224>>2]=o[i+456>>2],o[i+228>>2]=n,n=o[i+452>>2],o[i+216>>2]=o[i+448>>2],o[i+220>>2]=n,n=o[i+476>>2],o[i+240>>2]=o[i+472>>2],o[i+244>>2]=n,n=o[i+468>>2],o[i+232>>2]=o[i+464>>2],o[i+236>>2]=n,n=o[i+492>>2],o[i+256>>2]=o[i+488>>2],o[i+260>>2]=n,n=o[i+484>>2],o[i+248>>2]=o[i+480>>2],o[i+252>>2]=n,n=o[i+508>>2],o[i+272>>2]=o[i+504>>2],o[i+276>>2]=n,n=o[i+500>>2],o[i+264>>2]=o[i+496>>2],o[i+268>>2]=n,c=o[12+(n=t+4|0)>>2],o[i+224>>2]=o[n+8>>2],o[i+228>>2]=c,c=o[n+4>>2],o[i+216>>2]=o[n>>2],o[i+220>>2]=c,c=o[t+32>>2],o[i+240>>2]=o[t+28>>2],o[i+244>>2]=c,c=o[t+24>>2],o[i+232>>2]=o[t+20>>2],o[i+236>>2]=c,c=o[t+48>>2],o[i+256>>2]=o[t+44>>2],o[i+260>>2]=c,c=o[t+40>>2],o[i+248>>2]=o[t+36>>2],o[i+252>>2]=c,EA(A,u,n,i+216|0,i+344|0,m(0)),(n=o[i+360>>2])&&(b=w[i+348>>2])>2]-w[t+52>>2])),h=m(b*m(w[i+500>>2]-w[t+56>>2])),B=m(b*m(w[i+504>>2]-w[t+60>>2])),M=m(m(m(d*m(-w[i+396>>2]))-m(h*w[i+400>>2]))-m(B*w[i+404>>2])),u=o[A+24>>2],p=0|Zn[o[o[u>>2]+12>>2]](u,t,n),(0|(n=o[A+324>>2]))==o[A+328>>2]&&!((0|(W=n?n<<1:1))<=(0|n))){if(W?(o[8488]=o[8488]+1,u=0|Zn[o[8290]](W<<2,16),n=o[A+324>>2]):u=0,!((0|n)<=0)){if(F=0,c=0,n>>>0>=4)for(H=-4&n,Z=0;o[(s=c<<2)+u>>2]=o[s+o[A+332>>2]>>2],o[(E=4|s)+u>>2]=o[E+o[A+332>>2]>>2],o[(E=8|s)+u>>2]=o[E+o[A+332>>2]>>2],o[(s|=12)+u>>2]=o[s+o[A+332>>2]>>2],c=c+4|0,(0|H)!=(0|(Z=Z+4|0)););if(s=3&n)for(;o[(Z=c<<2)+u>>2]=o[Z+o[A+332>>2]>>2],c=c+1|0,(0|s)!=(0|(F=F+1|0)););}!(c=o[A+332>>2])|!v[A+336|0]||(c&&(o[8489]=o[8489]+1,Zn[o[8291]](c)),n=o[A+324>>2]),o[A+332>>2]=u,a[A+336|0]=1,o[A+328>>2]=W}o[o[A+332>>2]+(n<<2)>>2]=p,o[A+324>>2]=n+1,n=o[i+360>>2],Y=w[n+20>>2],V=w[n+36>>2],g=w[n+40>>2],X=w[n+8>>2],D=w[n+24>>2],b=w[n+60>>2],I=w[n+52>>2],l=w[n+56>>2],C=w[n+44>>2],k=w[n+12>>2],J=w[n+28>>2],x=w[n+4>>2],Q=w[t+60>>2],R=w[t+52>>2],T=w[t+56>>2],o[i+16>>2]=0,o[i+20>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,o[i+36>>2]=0,B=m(B+Q),d=m(d+R),h=m(h+T),R=m(m(C*B)+m(m(k*d)+m(J*h))),Q=k,k=m(-I),w[i+32>>2]=R+m(m(m(Q*k)-m(J*l))-m(C*b)),w[i+28>>2]=m(m(B*g)+m(m(d*X)+m(h*D)))+m(m(m(X*k)-m(D*l))-m(g*b)),w[i+24>>2]=m(m(B*V)+m(m(d*x)+m(h*Y)))+m(m(m(x*k)-m(Y*l))-m(V*b)),n=o[i+408>>2],o[i+80>>2]=o[i+404>>2],o[i+84>>2]=n,n=o[i+400>>2],o[i+72>>2]=o[i+396>>2],o[i+76>>2]=n,w[i+88>>2]=M,o[i+100>>2]=0,o[i+104>>2]=0,o[i+92>>2]=0,o[i+96>>2]=0,o[i+172>>2]=0,o[i+164>>2]=0,o[i+168>>2]=0,o[i+156>>2]=0,o[i+160>>2]=0,o[i+148>>2]=0,o[i+152>>2]=0,o[i+140>>2]=0,o[i+144>>2]=0,o[i+132>>2]=0,o[i+136>>2]=0,o[i+124>>2]=0,o[i+128>>2]=0,n=G(wA(p,i+8|0),208)+p|0,o[n+100>>2]=0,b=(b=m(w[t+228>>2]*w[o[i+360>>2]+228>>2]))>2]=b>m(10)?m(10):b,u=o[t+56>>2],o[n+52>>2]=o[t+52>>2],o[n+56>>2]=u,u=o[t+64>>2],o[n+60>>2]=o[t+60>>2],o[n+64>>2]=u,o[n+48>>2]=0,w[n+44>>2]=B,w[n+40>>2]=h,w[n+36>>2]=d}Zn[o[8295]]()}}if((0|f)==(0|(N=N+1|0)))break}S=i+512|0}Zn[o[8295]](),S=e+16|0},function(A,r){A|=0,r=m(r);var f=0,e=0,i=0,n=m(0),a=0,t=m(0),c=m(0),b=m(0),u=m(0);if((0|(i=o[A+8>>2]))>0)for(;!(f=o[o[A+16>>2]+(a<<2)>>2])|!(2&o[f+252>>2])|!(2&v[f+204|0])|2==o[f+220>>2]||(S=i=S-32|0,r!=m(0)&&((e=o[f+540>>2])&&Zn[o[o[e>>2]+8>>2]](e,f+4|0),o[f+384>>2]=0,n=m(m(1)/r),w[f+380>>2]=n*m(w[f+60>>2]-w[f+124>>2]),w[f+376>>2]=n*m(w[f+56>>2]-w[f+120>>2]),w[f+372>>2]=n*m(w[f+52>>2]-w[f+116>>2]),jA(f+68|0,f+4|0,i+16|0,i+12|0),c=w[i+16>>2],b=w[i+20>>2],u=w[i+24>>2],t=w[i+12>>2],o[f+400>>2]=0,w[f+396>>2]=n*m(t*u),w[f+392>>2]=n*m(t*b),w[f+388>>2]=n*m(c*t),e=o[f+384>>2],o[f+140>>2]=o[f+380>>2],o[f+144>>2]=e,e=o[f+376>>2],o[f+132>>2]=o[f+372>>2],o[f+136>>2]=e,e=o[f+392>>2],o[f+148>>2]=o[f+388>>2],o[f+152>>2]=e,e=o[f+400>>2],o[f+156>>2]=o[f+396>>2],o[f+160>>2]=e,e=o[f+8>>2],o[f+68>>2]=o[f+4>>2],o[f+72>>2]=e,e=o[f+16>>2],o[f+76>>2]=o[f+12>>2],o[f+80>>2]=e,e=o[f+24>>2],o[f+84>>2]=o[f+20>>2],o[f+88>>2]=e,e=o[f+32>>2],o[f+92>>2]=o[f+28>>2],o[f+96>>2]=e,e=o[f+48>>2],o[f+108>>2]=o[f+44>>2],o[f+112>>2]=e,e=o[f+40>>2],o[f+100>>2]=o[f+36>>2],o[f+104>>2]=e,e=o[f+64>>2],o[f+124>>2]=o[f+60>>2],o[f+128>>2]=e,e=o[f+56>>2],o[f+116>>2]=o[f+52>>2],o[f+120>>2]=e),S=i+32|0,i=o[A+8>>2]),(0|(a=a+1|0))<(0|i););},function(A,r){A|=0,r|=0;var f,e=0,i=0,n=m(0),a=m(0),t=0,c=m(0),b=0,u=0,l=m(0),s=0,k=m(0),d=m(0),h=m(0),B=0,Z=m(0),G=m(0),Q=m(0),E=m(0),W=m(0),N=m(0),p=m(0),F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=m(0);S=f=S-352|0,e=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[e>>2]+8>>2]](f+224|0,e),e=o[f+348>>2],o[f+216>>2]=o[f+344>>2],o[f+220>>2]=e,e=o[f+340>>2],o[f+208>>2]=o[f+336>>2],o[f+212>>2]=e,e=0|Zn[o[o[A>>2]+20>>2]](A),e=0|Zn[o[o[e>>2]+56>>2]](e),b=0|Zn[o[o[A>>2]+20>>2]](A),b=0|Zn[o[o[b>>2]+56>>2]](b);A:if(!((N=w[r+40>>2])<=m(0))){i=2048&e,u=4096&b;r:switch(o[r+4>>2]-3|0){case 0:if(o[f+156>>2]=0,o[f+160>>2]=0,o[f+168>>2]=0,o[f+172>>2]=0,o[f+164>>2]=1065353216,o[f+176>>2]=0,o[f+180>>2]=0,o[f+184>>2]=1065353216,o[f+188>>2]=0,o[f+148>>2]=0,o[f+152>>2]=0,o[f+144>>2]=1065353216,e=o[r+28>>2],l=w[e+52>>2],d=w[e+8>>2],h=w[e+12>>2],k=w[e+56>>2],Z=w[e+20>>2],G=w[e+24>>2],p=w[e+28>>2],Q=w[e+60>>2],E=w[e+36>>2],n=w[r+304>>2],W=w[e+40>>2],a=w[r+308>>2],F=w[e+44>>2],R=w[e+4>>2],c=w[r+300>>2],o[f+204>>2]=0,w[f+200>>2]=Q+m(m(a*F)+m(m(c*E)+m(n*W))),w[f+196>>2]=k+m(m(a*p)+m(m(c*Z)+m(n*G))),w[f+192>>2]=l+m(m(a*h)+m(m(c*R)+m(n*d))),e=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[e>>2]+64>>2]](e,f+144|0,N),e=o[r+32>>2],l=w[e+52>>2],d=w[e+8>>2],h=w[e+12>>2],k=w[e+56>>2],Z=w[e+20>>2],G=w[e+24>>2],p=w[e+28>>2],Q=w[e+60>>2],E=w[e+36>>2],n=w[r+320>>2],W=w[e+40>>2],a=w[r+324>>2],F=w[e+44>>2],R=w[e+4>>2],c=w[r+316>>2],o[f+204>>2]=0,w[f+200>>2]=Q+m(m(a*F)+m(m(c*E)+m(n*W))),w[f+196>>2]=k+m(m(a*p)+m(m(c*Z)+m(n*G))),w[f+192>>2]=l+m(m(a*h)+m(m(c*R)+m(n*d))),!i)break A;A=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[A>>2]+64>>2]](A,f+144|0,N);break A;case 1:if(e=o[r+28>>2],J=w[e+52>>2],n=w[e+8>>2],a=w[e+12>>2],p=w[r+568>>2],Q=w[r+584>>2],x=w[e+56>>2],y=w[e+60>>2],E=w[r+608>>2],W=w[r+600>>2],F=w[r+604>>2],c=w[e+28>>2],l=w[e+20>>2],d=w[e+24>>2],R=w[r+588>>2],Y=w[r+556>>2],V=w[r+572>>2],g=w[r+592>>2],h=w[e+44>>2],X=w[r+560>>2],k=w[e+36>>2],D=w[r+576>>2],Z=w[e+40>>2],G=w[e+4>>2],C=w[r+552>>2],o[f+204>>2]=0,o[f+188>>2]=0,o[f+172>>2]=0,w[f+184>>2]=m(g*h)+m(m(X*k)+m(D*Z)),w[f+180>>2]=m(R*h)+m(m(Y*k)+m(V*Z)),w[f+168>>2]=m(g*c)+m(m(X*l)+m(D*d)),w[f+164>>2]=m(R*c)+m(m(Y*l)+m(V*d)),w[f+200>>2]=y+m(m(E*h)+m(m(W*k)+m(Z*F))),w[f+196>>2]=x+m(m(E*c)+m(m(W*l)+m(d*F))),o[f+156>>2]=0,w[f+176>>2]=m(Q*h)+m(m(C*k)+m(p*Z)),w[f+160>>2]=m(Q*c)+m(m(C*l)+m(p*d)),w[f+152>>2]=m(g*a)+m(m(X*G)+m(n*D)),w[f+148>>2]=m(R*a)+m(m(Y*G)+m(n*V)),w[f+144>>2]=m(Q*a)+m(m(C*G)+m(p*n)),w[f+192>>2]=J+m(m(E*a)+m(m(W*G)+m(n*F))),i?(e=0|Zn[o[o[A>>2]+20>>2]](A),b=f+144|0,Zn[o[o[e>>2]+64>>2]](e,b,N),e=o[r+32>>2],J=w[e+52>>2],x=w[e+56>>2],y=w[e+60>>2],p=w[r+672>>2],Q=w[r+664>>2],E=w[r+668>>2],n=w[e+8>>2],a=w[e+12>>2],c=w[e+28>>2],l=w[e+20>>2],d=w[e+24>>2],W=w[r+632>>2],F=w[r+648>>2],R=w[r+652>>2],Y=w[r+620>>2],V=w[r+636>>2],g=w[r+656>>2],h=w[e+44>>2],X=w[r+624>>2],k=w[e+36>>2],D=w[r+640>>2],Z=w[e+40>>2],G=w[e+4>>2],C=w[r+616>>2],o[f+204>>2]=0,o[f+188>>2]=0,o[f+172>>2]=0,o[f+156>>2]=0,w[f+184>>2]=m(g*h)+m(m(X*k)+m(D*Z)),w[f+180>>2]=m(R*h)+m(m(Y*k)+m(V*Z)),w[f+176>>2]=m(F*h)+m(m(C*k)+m(W*Z)),w[f+168>>2]=m(g*c)+m(m(X*l)+m(D*d)),w[f+164>>2]=m(R*c)+m(m(Y*l)+m(V*d)),w[f+160>>2]=m(F*c)+m(m(C*l)+m(W*d)),w[f+152>>2]=m(g*a)+m(m(X*G)+m(n*D)),w[f+148>>2]=m(R*a)+m(m(Y*G)+m(n*V)),w[f+144>>2]=m(F*a)+m(m(C*G)+m(W*n)),w[f+200>>2]=y+m(m(p*h)+m(m(Q*k)+m(Z*E))),w[f+196>>2]=x+m(m(p*c)+m(m(Q*l)+m(d*E))),w[f+192>>2]=J+m(m(p*a)+m(m(Q*G)+m(n*E))),e=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[e>>2]+64>>2]](e,b,N)):(e=o[r+32>>2],J=w[e+52>>2],x=w[e+56>>2],y=w[e+60>>2],p=w[r+672>>2],Q=w[r+664>>2],E=w[r+668>>2],n=w[e+8>>2],a=w[e+12>>2],c=w[e+28>>2],l=w[e+20>>2],d=w[e+24>>2],W=w[r+632>>2],F=w[r+648>>2],R=w[r+652>>2],Y=w[r+620>>2],V=w[r+636>>2],g=w[r+656>>2],h=w[e+44>>2],X=w[r+624>>2],k=w[e+36>>2],D=w[r+640>>2],Z=w[e+40>>2],G=w[e+4>>2],C=w[r+616>>2],o[f+204>>2]=0,o[f+188>>2]=0,o[f+172>>2]=0,o[f+156>>2]=0,w[f+184>>2]=m(g*h)+m(m(X*k)+m(D*Z)),w[f+180>>2]=m(R*h)+m(m(Y*k)+m(V*Z)),w[f+176>>2]=m(F*h)+m(m(C*k)+m(W*Z)),w[f+168>>2]=m(g*c)+m(m(X*l)+m(D*d)),w[f+164>>2]=m(R*c)+m(m(Y*l)+m(V*d)),w[f+160>>2]=m(F*c)+m(m(C*l)+m(W*d)),w[f+152>>2]=m(g*a)+m(m(X*G)+m(n*D)),w[f+148>>2]=m(R*a)+m(m(Y*G)+m(n*V)),w[f+144>>2]=m(F*a)+m(m(C*G)+m(W*n)),w[f+200>>2]=y+m(m(p*h)+m(m(Q*k)+m(Z*E))),w[f+196>>2]=x+m(m(p*c)+m(m(Q*l)+m(d*E))),w[f+192>>2]=J+m(m(p*a)+m(m(Q*G)+m(n*E)))),!u|(n=ve(e=r+688|0))==(a=de(e)))break A;c=w[r+692>>2],w[f+64>>2]=w[f+152>>2],w[f+68>>2]=w[f+168>>2],o[f+76>>2]=0,w[f+72>>2]=w[f+184>>2],w[f+128>>2]=w[f+144>>2],w[f+132>>2]=w[f+160>>2],o[f+140>>2]=0,w[f+136>>2]=w[f+176>>2],r=0|Zn[o[o[A>>2]+20>>2]](A),A=c>m(0),Zn[o[o[r>>2]+68>>2]](r,f+192|0,f- -64|0,f+128|0,N,N,A?n:m(0),A?a:m(6.2831854820251465),f+208|0,A,m(10));break A;case 2:if(e=o[r+28>>2],J=w[e+52>>2],n=w[e+8>>2],a=w[e+12>>2],p=w[r+316>>2],Q=w[r+332>>2],x=w[e+56>>2],y=w[e+60>>2],E=w[r+356>>2],W=w[r+348>>2],F=w[r+352>>2],c=w[e+28>>2],l=w[e+20>>2],d=w[e+24>>2],R=w[r+336>>2],Y=w[r+304>>2],V=w[r+320>>2],g=w[r+340>>2],h=w[e+44>>2],X=w[r+308>>2],k=w[e+36>>2],D=w[r+324>>2],Z=w[e+40>>2],G=w[e+4>>2],C=w[r+300>>2],o[f+204>>2]=0,o[f+188>>2]=0,o[f+172>>2]=0,w[f+184>>2]=m(g*h)+m(m(X*k)+m(D*Z)),w[f+180>>2]=m(R*h)+m(m(Y*k)+m(V*Z)),w[f+168>>2]=m(g*c)+m(m(X*l)+m(D*d)),w[f+164>>2]=m(R*c)+m(m(Y*l)+m(V*d)),w[f+200>>2]=y+m(m(E*h)+m(m(W*k)+m(Z*F))),w[f+196>>2]=x+m(m(E*c)+m(m(W*l)+m(d*F))),o[f+156>>2]=0,w[f+176>>2]=m(Q*h)+m(m(C*k)+m(p*Z)),w[f+160>>2]=m(Q*c)+m(m(C*l)+m(p*d)),w[f+152>>2]=m(g*a)+m(m(X*G)+m(n*D)),w[f+148>>2]=m(R*a)+m(m(Y*G)+m(n*V)),w[f+144>>2]=m(Q*a)+m(m(C*G)+m(p*n)),w[f+192>>2]=J+m(m(E*a)+m(m(W*G)+m(n*F))),i?(e=0|Zn[o[o[A>>2]+20>>2]](A),b=f+144|0,Zn[o[o[e>>2]+64>>2]](e,b,N),e=o[r+32>>2],J=w[e+52>>2],x=w[e+56>>2],y=w[e+60>>2],p=w[r+420>>2],Q=w[r+412>>2],E=w[r+416>>2],n=w[e+8>>2],a=w[e+12>>2],c=w[e+28>>2],l=w[e+20>>2],d=w[e+24>>2],W=w[r+380>>2],F=w[r+396>>2],R=w[r+400>>2],Y=w[r+368>>2],V=w[r+384>>2],g=w[r+404>>2],h=w[e+44>>2],X=w[r+372>>2],k=w[e+36>>2],D=w[r+388>>2],Z=w[e+40>>2],G=w[e+4>>2],C=w[r+364>>2],o[f+204>>2]=0,o[f+188>>2]=0,o[f+172>>2]=0,o[f+156>>2]=0,w[f+184>>2]=m(g*h)+m(m(X*k)+m(D*Z)),w[f+180>>2]=m(R*h)+m(m(Y*k)+m(V*Z)),w[f+176>>2]=m(F*h)+m(m(C*k)+m(W*Z)),w[f+168>>2]=m(g*c)+m(m(X*l)+m(D*d)),w[f+164>>2]=m(R*c)+m(m(Y*l)+m(V*d)),w[f+160>>2]=m(F*c)+m(m(C*l)+m(W*d)),w[f+152>>2]=m(g*a)+m(m(X*G)+m(n*D)),w[f+148>>2]=m(R*a)+m(m(Y*G)+m(n*V)),w[f+144>>2]=m(F*a)+m(m(C*G)+m(W*n)),w[f+200>>2]=y+m(m(p*h)+m(m(Q*k)+m(Z*E))),w[f+196>>2]=x+m(m(p*c)+m(m(Q*l)+m(d*E))),w[f+192>>2]=J+m(m(p*a)+m(m(Q*G)+m(n*E))),e=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[e>>2]+64>>2]](e,b,N)):(e=o[r+32>>2],J=w[e+52>>2],x=w[e+56>>2],y=w[e+60>>2],p=w[r+420>>2],Q=w[r+412>>2],E=w[r+416>>2],n=w[e+8>>2],a=w[e+12>>2],c=w[e+28>>2],l=w[e+20>>2],d=w[e+24>>2],W=w[r+380>>2],F=w[r+396>>2],R=w[r+400>>2],Y=w[r+368>>2],V=w[r+384>>2],g=w[r+404>>2],h=w[e+44>>2],X=w[r+372>>2],k=w[e+36>>2],D=w[r+388>>2],Z=w[e+40>>2],G=w[e+4>>2],C=w[r+364>>2],o[f+204>>2]=0,o[f+188>>2]=0,o[f+172>>2]=0,o[f+156>>2]=0,w[f+184>>2]=m(g*h)+m(m(X*k)+m(D*Z)),w[f+180>>2]=m(R*h)+m(m(Y*k)+m(V*Z)),w[f+176>>2]=m(F*h)+m(m(C*k)+m(W*Z)),w[f+168>>2]=m(g*c)+m(m(X*l)+m(D*d)),w[f+164>>2]=m(R*c)+m(m(Y*l)+m(V*d)),w[f+160>>2]=m(F*c)+m(m(C*l)+m(W*d)),w[f+152>>2]=m(g*a)+m(m(X*G)+m(n*D)),w[f+148>>2]=m(R*a)+m(m(Y*G)+m(n*V)),w[f+144>>2]=m(F*a)+m(m(C*G)+m(W*n)),w[f+200>>2]=y+m(m(p*h)+m(m(Q*k)+m(Z*E))),w[f+196>>2]=x+m(m(p*c)+m(m(Q*l)+m(d*E))),w[f+192>>2]=J+m(m(p*a)+m(m(Q*G)+m(n*E)))),!u)break A;for(B=r+300|0,e=f+192|0,df(f+128|0,r,m(6.0868353843688965),N),o[f+140>>2]=0,n=w[f+136>>2],a=w[f+128>>2],c=w[f+132>>2],w[f+136>>2]=m(m(n*w[f+184>>2])+m(m(a*w[f+176>>2])+m(c*w[f+180>>2])))+w[f+200>>2],w[f+132>>2]=m(m(n*w[f+168>>2])+m(m(a*w[f+160>>2])+m(c*w[f+164>>2])))+w[f+196>>2],w[f+128>>2]=m(m(n*w[f+152>>2])+m(m(a*w[f+144>>2])+m(c*w[f+148>>2])))+w[f+192>>2],b=0;df(i=f- -64|0,r,m(m(m(0|b)*m(6.283185005187988))*m(.03125)),N),o[f+76>>2]=0,n=w[f+72>>2],a=w[f+64>>2],c=w[f+68>>2],w[f+72>>2]=m(m(n*w[f+184>>2])+m(m(a*w[f+176>>2])+m(c*w[f+180>>2])))+w[f+200>>2],w[f+68>>2]=m(m(n*w[f+168>>2])+m(m(a*w[f+160>>2])+m(c*w[f+164>>2])))+w[f+196>>2],w[f+64>>2]=m(m(n*w[f+152>>2])+m(m(a*w[f+144>>2])+m(c*w[f+148>>2])))+w[f+192>>2],u=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[u>>2]+16>>2]](u,f+128|0,i,f+208|0),3&b||(i=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[i>>2]+16>>2]](i,e,f- -64|0,f+208|0)),i=o[f+76>>2],o[f+136>>2]=o[f+72>>2],o[f+140>>2]=i,i=o[f+68>>2],o[f+128>>2]=o[f+64>>2],o[f+132>>2]=i,32!=(0|(b=b+1|0)););n=w[r+512>>2],a=w[r+452>>2],b=o[r+32>>2],w[b+404>>2]>m(0)?Cr(f- -64|0,b+4|0,r+364|0):Cr(f- -64|0,o[r+28>>2]+4|0,B),r=o[f+76>>2],o[f+152>>2]=o[f+72>>2],o[f+156>>2]=r,r=o[f+68>>2],o[f+144>>2]=o[f+64>>2],o[f+148>>2]=r,r=o[f+92>>2],o[f+168>>2]=o[f+88>>2],o[f+172>>2]=r,r=o[f+84>>2],o[f+160>>2]=o[f+80>>2],o[f+164>>2]=r,r=o[f+108>>2],o[f+184>>2]=o[f+104>>2],o[f+188>>2]=r,r=o[f+100>>2],o[f+176>>2]=o[f+96>>2],o[f+180>>2]=r,r=o[f+124>>2],o[e+8>>2]=o[f+120>>2],o[e+12>>2]=r,r=o[f+116>>2],o[e>>2]=o[f+112>>2],o[e+4>>2]=r,r=o[e+12>>2],o[f+72>>2]=o[e+8>>2],o[f+76>>2]=r,r=o[e+4>>2],o[f+64>>2]=o[e>>2],o[f+68>>2]=r,w[f+48>>2]=w[f+144>>2],w[f+52>>2]=w[f+160>>2],o[f+60>>2]=0,w[f+56>>2]=w[f+176>>2],w[f+32>>2]=w[f+148>>2],w[f+36>>2]=w[f+164>>2],o[f+44>>2]=0,w[f+40>>2]=w[f+180>>2],A=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[A>>2]+68>>2]](A,f- -64|0,f+48|0,f+32|0,N,N,m(m(-n)-a),m(a-n),f+208|0,1,m(10));break A;case 3:case 6:if(b=o[4+(e=r+1072|0)>>2],o[f+152>>2]=o[e>>2],o[f+156>>2]=b,e=o[r+1068>>2],o[f+144>>2]=o[r+1064>>2],o[f+148>>2]=e,b=o[4+(e=r+1088|0)>>2],o[f+168>>2]=o[e>>2],o[f+172>>2]=b,b=o[4+(e=r+1080|0)>>2],o[f+160>>2]=o[e>>2],o[f+164>>2]=b,B=o[4+(b=r+1104|0)>>2],o[f+184>>2]=o[b>>2],o[f+188>>2]=B,B=o[4+(b=r+1096|0)>>2],o[f+176>>2]=o[b>>2],o[f+180>>2]=B,t=o[4+(B=r+1120|0)>>2],o[f+200>>2]=o[B>>2],o[f+204>>2]=t,t=o[4+(B=r+1112|0)>>2],o[f+192>>2]=o[B>>2],o[f+196>>2]=t,i&&(i=0|Zn[o[o[A>>2]+20>>2]](A),t=f+144|0,Zn[o[o[i>>2]+64>>2]](i,t,N),s=o[4+(i=r+1136|0)>>2],o[f+152>>2]=o[i>>2],o[f+156>>2]=s,i=o[r+1132>>2],o[f+144>>2]=o[r+1128>>2],o[f+148>>2]=i,s=o[4+(i=r+1152|0)>>2],o[f+168>>2]=o[i>>2],o[f+172>>2]=s,s=o[4+(i=r+1144|0)>>2],o[f+160>>2]=o[i>>2],o[f+164>>2]=s,s=o[4+(i=r+1168|0)>>2],o[f+184>>2]=o[i>>2],o[f+188>>2]=s,s=o[4+(i=r+1160|0)>>2],o[f+176>>2]=o[i>>2],o[f+180>>2]=s,s=o[4+(i=r+1184|0)>>2],o[f+200>>2]=o[i>>2],o[f+204>>2]=s,s=o[4+(i=r+1176|0)>>2],o[f+192>>2]=o[i>>2],o[f+196>>2]=s,i=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[i>>2]+64>>2]](i,t,N)),!u)break A;u=o[12+(i=r+1064|0)>>2],o[f+152>>2]=o[i+8>>2],o[f+156>>2]=u,u=o[i+4>>2],o[f+144>>2]=o[i>>2],o[f+148>>2]=u,u=o[e+12>>2],o[f+168>>2]=o[e+8>>2],o[f+172>>2]=u,u=o[e+4>>2],o[f+160>>2]=o[e>>2],o[f+164>>2]=u,u=o[b+12>>2],o[f+184>>2]=o[b+8>>2],o[f+188>>2]=u,u=o[b+4>>2],o[f+176>>2]=o[b>>2],o[f+180>>2]=u,u=o[B+12>>2],o[f+200>>2]=o[B+8>>2],o[f+204>>2]=u,u=o[B+4>>2],o[f+192>>2]=o[B>>2],o[f+196>>2]=u,w[f+64>>2]=w[f+152>>2],w[f+68>>2]=w[f+168>>2],o[f+76>>2]=0,w[f+72>>2]=w[f+184>>2],w[f+128>>2]=w[f+144>>2],w[f+132>>2]=w[f+160>>2],o[f+140>>2]=0,w[f+136>>2]=w[f+176>>2],n=w[r+1e3>>2],a=w[r+996>>2],c=w[r+936>>2],l=w[r+932>>2],t=0|Zn[o[o[A>>2]+20>>2]](A),u=r+1176|0,Zn[o[o[t>>2]+72>>2]](t,u,f- -64|0,f+128|0,m(N*m(.8999999761581421)),l,c,a,n,f+208|0,m(10),1),o[f+140>>2]=0,w[f+136>>2]=w[f+180>>2],w[f+132>>2]=w[f+164>>2],w[f+128>>2]=w[f+148>>2],l=w[r+1196>>2],n=w[f+128>>2],a=Kr(c=w[r+1200>>2]),d=w[f+132>>2],h=$r(c),w[f+52>>2]=m(d*h)-m(a*n),c=Kr(l),k=w[f+136>>2],l=$r(l),w[f+56>>2]=m(k*l)+m(m(n*m(c*h))+m(d*m(c*a))),w[f+48>>2]=m(m(n*m(l*h))+m(d*m(l*a)))-m(c*k),s=o[4+(t=r+1136|0)>>2],o[f+152>>2]=o[t>>2],o[f+156>>2]=s,t=o[r+1132>>2],o[f+144>>2]=o[r+1128>>2],o[f+148>>2]=t,s=o[4+(t=r+1152|0)>>2],o[f+168>>2]=o[t>>2],o[f+172>>2]=s,s=o[4+(t=r+1144|0)>>2],o[f+160>>2]=o[t>>2],o[f+164>>2]=s,s=o[4+(t=r+1168|0)>>2],o[f+184>>2]=o[t>>2],o[f+188>>2]=s,s=o[4+(t=r+1160|0)>>2],o[f+176>>2]=o[t>>2],o[f+180>>2]=s,s=o[4+(t=r+1184|0)>>2],o[f+200>>2]=o[t>>2],o[f+204>>2]=s,t=o[u+4>>2],o[f+192>>2]=o[u>>2],o[f+196>>2]=t,o[f+44>>2]=0,w[f+40>>2]=-w[f+176>>2],w[f+36>>2]=-w[f+160>>2],w[f+32>>2]=-w[f+144>>2],(n=w[r+868>>2])>(a=w[r+872>>2])?(t=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[t>>2]+68>>2]](t,u,f+32|0,f+48|0,N,N,m(-3.1415927410125732),m(3.1415927410125732),f+208|0,0,m(10))):n>2]+20>>2]](A),Zn[o[o[t>>2]+68>>2]](t,u,f+32|0,f+48|0,N,N,n,a,f+208|0,1,m(10))),u=o[i+12>>2],o[f+152>>2]=o[i+8>>2],o[f+156>>2]=u,u=o[i+4>>2],o[f+144>>2]=o[i>>2],o[f+148>>2]=u,i=o[e+12>>2],o[f+168>>2]=o[e+8>>2],o[f+172>>2]=i,i=o[e+4>>2],o[f+160>>2]=o[e>>2],o[f+164>>2]=i,e=o[b+12>>2],o[f+184>>2]=o[b+8>>2],o[f+188>>2]=e,e=o[b+4>>2],o[f+176>>2]=o[b>>2],o[f+180>>2]=e,e=o[B+12>>2],o[f+200>>2]=o[B+8>>2],o[f+204>>2]=e,e=o[B+4>>2],o[f+192>>2]=o[B>>2],o[f+196>>2]=e,e=o[r+692>>2],o[f+24>>2]=o[r+688>>2],o[f+28>>2]=e,e=o[r+684>>2],o[f+16>>2]=o[r+680>>2],o[f+20>>2]=e,e=o[r+708>>2],o[f+8>>2]=o[r+704>>2],o[f+12>>2]=e,e=o[r+700>>2],o[f>>2]=o[r+696>>2],o[f+4>>2]=e,A=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[A>>2]+80>>2]](A,f+16|0,f,f+144|0,f+208|0);break A;case 9:if(b=o[4+(e=r+1244|0)>>2],o[f+152>>2]=o[e>>2],o[f+156>>2]=b,e=o[r+1240>>2],o[f+144>>2]=o[r+1236>>2],o[f+148>>2]=e,b=o[4+(e=r+1260|0)>>2],o[f+168>>2]=o[e>>2],o[f+172>>2]=b,b=o[4+(e=r+1252|0)>>2],o[f+160>>2]=o[e>>2],o[f+164>>2]=b,B=o[4+(b=r+1276|0)>>2],o[f+184>>2]=o[b>>2],o[f+188>>2]=B,B=o[4+(b=r+1268|0)>>2],o[f+176>>2]=o[b>>2],o[f+180>>2]=B,t=o[4+(B=r+1292|0)>>2],o[f+200>>2]=o[B>>2],o[f+204>>2]=t,t=o[4+(B=r+1284|0)>>2],o[f+192>>2]=o[B>>2],o[f+196>>2]=t,i&&(i=0|Zn[o[o[A>>2]+20>>2]](A),t=f+144|0,Zn[o[o[i>>2]+64>>2]](i,t,N),s=o[4+(i=r+1308|0)>>2],o[f+152>>2]=o[i>>2],o[f+156>>2]=s,i=o[r+1304>>2],o[f+144>>2]=o[r+1300>>2],o[f+148>>2]=i,s=o[4+(i=r+1324|0)>>2],o[f+168>>2]=o[i>>2],o[f+172>>2]=s,s=o[4+(i=r+1316|0)>>2],o[f+160>>2]=o[i>>2],o[f+164>>2]=s,s=o[4+(i=r+1340|0)>>2],o[f+184>>2]=o[i>>2],o[f+188>>2]=s,s=o[4+(i=r+1332|0)>>2],o[f+176>>2]=o[i>>2],o[f+180>>2]=s,s=o[4+(i=r+1356|0)>>2],o[f+200>>2]=o[i>>2],o[f+204>>2]=s,s=o[4+(i=r+1348|0)>>2],o[f+192>>2]=o[i>>2],o[f+196>>2]=s,i=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[i>>2]+64>>2]](i,t,N)),!u)break A;u=o[12+(i=r+1236|0)>>2],o[f+152>>2]=o[i+8>>2],o[f+156>>2]=u,u=o[i+4>>2],o[f+144>>2]=o[i>>2],o[f+148>>2]=u,u=o[e+12>>2],o[f+168>>2]=o[e+8>>2],o[f+172>>2]=u,u=o[e+4>>2],o[f+160>>2]=o[e>>2],o[f+164>>2]=u,u=o[b+12>>2],o[f+184>>2]=o[b+8>>2],o[f+188>>2]=u,u=o[b+4>>2],o[f+176>>2]=o[b>>2],o[f+180>>2]=u,u=o[B+12>>2],o[f+200>>2]=o[B+8>>2],o[f+204>>2]=u,u=o[B+4>>2],o[f+192>>2]=o[B>>2],o[f+196>>2]=u,w[f+64>>2]=w[f+152>>2],w[f+68>>2]=w[f+168>>2],o[f+76>>2]=0,w[f+72>>2]=w[f+184>>2],w[f+128>>2]=w[f+144>>2],w[f+132>>2]=w[f+160>>2],o[f+140>>2]=0,w[f+136>>2]=w[f+176>>2],n=w[r+1148>>2],a=w[r+1144>>2],c=w[r+1060>>2],l=w[r+1056>>2],t=0|Zn[o[o[A>>2]+20>>2]](A),u=r+1348|0,Zn[o[o[t>>2]+72>>2]](t,u,f- -64|0,f+128|0,m(N*m(.8999999761581421)),l,c,a,n,f+208|0,m(10),1),o[f+140>>2]=0,h=w[f+180>>2],w[f+136>>2]=h,n=w[f+164>>2],w[f+132>>2]=n,a=w[f+148>>2],w[f+128>>2]=a,c=Kr(l=w[r+1372>>2]),l=$r(l),k=w[r+1368>>2],w[f+52>>2]=m(l*n)-m(c*a),d=Kr(k),k=$r(k),w[f+56>>2]=m(h*k)+m(m(a*m(d*l))+m(n*m(d*c))),w[f+48>>2]=m(m(a*m(k*l))+m(n*m(k*c)))-m(d*h),s=o[4+(t=r+1308|0)>>2],o[f+152>>2]=o[t>>2],o[f+156>>2]=s,t=o[r+1304>>2],o[f+144>>2]=o[r+1300>>2],o[f+148>>2]=t,s=o[4+(t=r+1324|0)>>2],o[f+168>>2]=o[t>>2],o[f+172>>2]=s,s=o[4+(t=r+1316|0)>>2],o[f+160>>2]=o[t>>2],o[f+164>>2]=s,s=o[4+(t=r+1340|0)>>2],o[f+184>>2]=o[t>>2],o[f+188>>2]=s,s=o[4+(t=r+1332|0)>>2],o[f+176>>2]=o[t>>2],o[f+180>>2]=s,s=o[4+(t=r+1356|0)>>2],o[f+200>>2]=o[t>>2],o[f+204>>2]=s,t=o[u+4>>2],o[f+192>>2]=o[u>>2],o[f+196>>2]=t,o[f+44>>2]=0,w[f+40>>2]=-w[f+176>>2],w[f+36>>2]=-w[f+160>>2],w[f+32>>2]=-w[f+144>>2],(n=w[r+968>>2])>(a=w[r+972>>2])?(t=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[t>>2]+68>>2]](t,u,f+32|0,f+48|0,N,N,m(-3.1415927410125732),m(3.1415927410125732),f+208|0,0,m(10))):n>2]+20>>2]](A),Zn[o[o[t>>2]+68>>2]](t,u,f+32|0,f+48|0,N,N,n,a,f+208|0,1,m(10))),u=o[i+12>>2],o[f+152>>2]=o[i+8>>2],o[f+156>>2]=u,u=o[i+4>>2],o[f+144>>2]=o[i>>2],o[f+148>>2]=u,i=o[e+12>>2],o[f+168>>2]=o[e+8>>2],o[f+172>>2]=i,i=o[e+4>>2],o[f+160>>2]=o[e>>2],o[f+164>>2]=i,e=o[b+12>>2],o[f+184>>2]=o[b+8>>2],o[f+188>>2]=e,e=o[b+4>>2],o[f+176>>2]=o[b>>2],o[f+180>>2]=e,e=o[B+12>>2],o[f+200>>2]=o[B+8>>2],o[f+204>>2]=e,e=o[B+4>>2],o[f+192>>2]=o[B>>2],o[f+196>>2]=e,e=o[r+692>>2],o[f+24>>2]=o[r+688>>2],o[f+28>>2]=e,e=o[r+684>>2],o[f+16>>2]=o[r+680>>2],o[f+20>>2]=e,e=o[r+708>>2],o[f+8>>2]=o[r+704>>2],o[f+12>>2]=e,e=o[r+700>>2],o[f>>2]=o[r+696>>2],o[f+4>>2]=e,A=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[A>>2]+80>>2]](A,f+16|0,f,f+144|0,f+208|0);break A;case 4:break r;default:break A}e=o[r+836>>2],o[f+152>>2]=o[r+832>>2],o[f+156>>2]=e,e=o[r+828>>2],o[f+144>>2]=o[r+824>>2],o[f+148>>2]=e,e=o[r+852>>2],o[f+168>>2]=o[r+848>>2],o[f+172>>2]=e,e=o[r+844>>2],o[f+160>>2]=o[r+840>>2],o[f+164>>2]=e,e=o[r+868>>2],o[f+184>>2]=o[r+864>>2],o[f+188>>2]=e,e=o[r+860>>2],o[f+176>>2]=o[r+856>>2],o[f+180>>2]=e,e=o[r+884>>2],o[f+200>>2]=o[r+880>>2],o[f+204>>2]=e,e=o[r+876>>2],o[f+192>>2]=o[r+872>>2],o[f+196>>2]=e,i?(e=0|Zn[o[o[A>>2]+20>>2]](A),b=f+144|0,Zn[o[o[e>>2]+64>>2]](e,b,N),e=o[r+900>>2],o[f+152>>2]=o[r+896>>2],o[f+156>>2]=e,e=o[r+892>>2],o[f+144>>2]=o[r+888>>2],o[f+148>>2]=e,e=o[r+916>>2],o[f+168>>2]=o[r+912>>2],o[f+172>>2]=e,e=o[r+908>>2],o[f+160>>2]=o[r+904>>2],o[f+164>>2]=e,e=o[r+932>>2],o[f+184>>2]=o[r+928>>2],o[f+188>>2]=e,e=o[r+924>>2],o[f+176>>2]=o[r+920>>2],o[f+180>>2]=e,e=o[r+948>>2],o[f+200>>2]=o[r+944>>2],o[f+204>>2]=e,e=o[r+940>>2],o[f+192>>2]=o[r+936>>2],o[f+196>>2]=e,e=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[e>>2]+64>>2]](e,b,N)):(e=o[r+900>>2],o[f+152>>2]=o[r+896>>2],o[f+156>>2]=e,e=o[r+892>>2],o[f+144>>2]=o[r+888>>2],o[f+148>>2]=e,e=o[r+916>>2],o[f+168>>2]=o[r+912>>2],o[f+172>>2]=e,e=o[r+908>>2],o[f+160>>2]=o[r+904>>2],o[f+164>>2]=e,e=o[r+932>>2],o[f+184>>2]=o[r+928>>2],o[f+188>>2]=e,e=o[r+924>>2],o[f+176>>2]=o[r+920>>2],o[f+180>>2]=e,e=o[r+948>>2],o[f+200>>2]=o[r+944>>2],o[f+204>>2]=e,e=o[r+940>>2],o[f+192>>2]=o[r+936>>2],o[f+196>>2]=e),u&&(e=v[r+180|0],n=w[(e?824:888)+r>>2],d=w[48+(e=e?r+824|0:r+888|0)>>2],Q=w[e+8>>2],h=w[e+4>>2],k=w[e+52>>2],E=w[e+24>>2],a=w[e+16>>2],Z=w[e+20>>2],G=w[e+56>>2],W=w[e+40>>2],c=w[e+32>>2],p=w[e+36>>2],l=w[r+184>>2],o[f+76>>2]=0,W=m(W*m(0)),F=m(p*m(0)),w[f+72>>2]=G+m(W+m(m(l*c)+F)),E=m(E*m(0)),R=m(Z*m(0)),w[f+68>>2]=k+m(E+m(m(l*a)+R)),Q=m(Q*m(0)),Y=m(h*m(0)),w[f+64>>2]=d+m(Q+m(m(l*n)+Y)),l=w[r+188>>2],o[f+140>>2]=0,w[f+136>>2]=G+m(W+m(m(l*c)+F)),w[f+132>>2]=k+m(E+m(m(l*a)+R)),w[f+128>>2]=d+m(Q+m(m(l*n)+Y)),e=0|Zn[o[o[A>>2]+20>>2]](A),b=f+208|0,Zn[o[o[e>>2]+16>>2]](e,f- -64|0,f+128|0,b),o[f+60>>2]=0,w[f+56>>2]=c,w[f+52>>2]=a,w[f+48>>2]=n,o[f+44>>2]=0,w[f+40>>2]=p,w[f+36>>2]=Z,w[f+32>>2]=h,n=w[r+196>>2],a=w[r+192>>2],A=0|Zn[o[o[A>>2]+20>>2]](A),Zn[o[o[A>>2]+68>>2]](A,r+936|0,f+48|0,f+32|0,N,N,a,n,b,1,m(10)))}S=f+352|0},function(A){var r=0,f=0,e=0;if((0|(r=o[248+(A|=0)>>2]))>0)for(;;){A:{switch(e=o[o[A+256>>2]+(f<<2)>>2],o[e+220>>2]-2|0){case 0:case 3:break A}be(e),r=o[A+248>>2]}if(!((0|r)>(0|(f=f+1|0))))break}},dn,function(A,r){A|=0,r=m(r);var f,e=0,i=0;if(S=f=S-16|0,Zn[o[8294]](4095),o[A+296>>2]>0)for(;i=o[o[A+304>>2]+(e<<2)>>2],Zn[o[o[i>>2]+8>>2]](i,A,r),(0|(e=e+1|0))>2];);Zn[o[8295]](),S=f+16|0},function(A){var r=0;return o[(A|=0)>>2]=24508,!(r=o[A+80>>2])||!r|!v[A+84|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+80>>2]=0,a[A+84|0]=1,o[A+72>>2]=0,o[A+76>>2]=0,!(r=o[A+60>>2])||!r|!v[A- -64|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+60>>2]=0,a[A+64|0]=1,o[A+52>>2]=0,o[A+56>>2]=0,!(r=o[A+40>>2])||!r|!v[A+44|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+40>>2]=0,a[A+44|0]=1,o[A+32>>2]=0,o[A+36>>2]=0,0|A},function(A){var r=0;o[(A|=0)>>2]=24508,!(r=o[A+80>>2])||!r|!v[A+84|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+80>>2]=0,a[A+84|0]=1,o[A+72>>2]=0,o[A+76>>2]=0,!(r=o[A+60>>2])||!r|!v[A- -64|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+60>>2]=0,a[A+64|0]=1,o[A+52>>2]=0,o[A+56>>2]=0,!(r=o[A+40>>2])||!r|!v[A+44|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),DA(A)},function(A,r,f,e,i,n){A|=0,r|=0,f|=0,e|=0,i|=0;var t=0,c=0,b=0,u=0,l=0,s=0,k=0,d=0,h=0,B=0,w=0,Z=0;A:{r:{f:{if((0|(n|=0))>=0){if((0|(b=o[A+16>>2]))>0)break f;break r}return n=o[A+8>>2],void m(Zn[o[o[n>>2]+12>>2]](n,r,f,e,i,o[A+12>>2],o[A+16>>2],o[A+4>>2],o[A+20>>2],o[A+24>>2]))}for(k=o[A+12>>2];;){if(u=o[(w=k+(t<<2)|0)>>2],(0|(c=o[o[u+28>>2]+208>>2]))<0&&(c=o[o[u+32>>2]+208>>2]),(0|n)==(0|c))break r;if((0|b)==(0|(t=t+1|0)))break}w=0;break A}if(!((0|t)>=(0|b))){if(l=1&(c=b-t|0),u=o[A+12>>2],(0|b)!=(t+1|0))for(b=-2&c,k=0;d=o[(s=u+(t<<2)|0)>>2],(0|(c=o[o[d+28>>2]+208>>2]))<0&&(c=o[o[d+32>>2]+208>>2]),t=t+2|0,h=((0|n)==(0|c))+h|0,s=o[s+4>>2],(0|(c=o[o[s+28>>2]+208>>2]))<0&&(c=o[o[s+32>>2]+208>>2]),h=((0|n)==(0|c))+h|0,(0|b)!=(0|(k=k+2|0)););l&&(c=o[u+(t<<2)>>2],(0|(t=o[o[c+28>>2]+208>>2]))<0&&(t=o[o[c+32>>2]+208>>2]),h=((0|n)==(0|t))+h|0)}}if(n=o[A+4>>2],o[n+80>>2]>=2){if((0|f)>0)for(t=o[A+36>>2],c=o[A+32>>2],u=0;;){if(d=(u<<2)+r|0,(0|t)==(0|c))if((0|(b=t?t<<1:1))<=(0|t))c=t;else{if(b?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](b<<2,16),t=o[A+32>>2]):n=0,c=t,!((0|t)<=0)){if(k=0,t=0,c>>>0>=4)for(Z=-4&c,l=0;o[(s=t<<2)+n>>2]=o[s+o[A+40>>2]>>2],o[(B=4|s)+n>>2]=o[B+o[A+40>>2]>>2],o[(B=8|s)+n>>2]=o[B+o[A+40>>2]>>2],o[(s|=12)+n>>2]=o[s+o[A+40>>2]>>2],t=t+4|0,(0|Z)!=(0|(l=l+4|0)););if(l=3&c)for(;o[(s=t<<2)+n>>2]=o[s+o[A+40>>2]>>2],t=t+1|0,(0|l)!=(0|(k=k+1|0)););}!(t=o[A+40>>2])|!v[A+44|0]||(t&&(o[8489]=o[8489]+1,Zn[o[8291]](t)),c=o[A+32>>2]),o[A+40>>2]=n,a[A+44|0]=1,o[A+36>>2]=b,t=b}if(o[o[A+40>>2]+(c<<2)>>2]=o[d>>2],c=c+1|0,o[A+32>>2]=c,(0|(u=u+1|0))==(0|f))break}if((0|i)>0)for(t=o[A+56>>2],c=o[A+52>>2],u=0;;){if(b=(u<<2)+e|0,(0|t)==(0|c))if((0|(r=t?t<<1:1))<=(0|t))c=t;else{if(r?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](r<<2,16),t=o[A+52>>2]):n=0,c=t,!((0|t)<=0)){if(k=0,t=0,c>>>0>=4)for(s=-4&c,l=0;o[(f=t<<2)+n>>2]=o[f+o[A+60>>2]>>2],o[(d=4|f)+n>>2]=o[d+o[A+60>>2]>>2],o[(d=8|f)+n>>2]=o[d+o[A+60>>2]>>2],o[(f|=12)+n>>2]=o[f+o[A+60>>2]>>2],t=t+4|0,(0|s)!=(0|(l=l+4|0)););if(f=3&c)for(;o[(l=t<<2)+n>>2]=o[l+o[A+60>>2]>>2],t=t+1|0,(0|f)!=(0|(k=k+1|0)););}!(f=o[A+60>>2])|!v[A+64|0]||(f&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),c=o[A+52>>2]),o[A+60>>2]=n,a[A+64|0]=1,o[A+56>>2]=r,t=r}if(o[o[A+60>>2]+(c<<2)>>2]=o[b>>2],c=c+1|0,o[A+52>>2]=c,(0|(u=u+1|0))==(0|i))break}if(h)for(t=o[A+76>>2],c=o[A+72>>2],u=0;;){if(e=(u<<2)+w|0,(0|t)==(0|c))if((0|(r=t?t<<1:1))<=(0|t))c=t;else{if(r?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](r<<2,16),t=o[A+72>>2]):n=0,c=t,!((0|t)<=0)){if(k=0,t=0,c>>>0>=4)for(i=-4&c,l=0;o[(f=t<<2)+n>>2]=o[f+o[A+80>>2]>>2],o[(b=4|f)+n>>2]=o[b+o[A+80>>2]>>2],o[(b=8|f)+n>>2]=o[b+o[A+80>>2]>>2],o[(f|=12)+n>>2]=o[f+o[A+80>>2]>>2],t=t+4|0,(0|i)!=(0|(l=l+4|0)););if(f=3&c)for(;o[(i=t<<2)+n>>2]=o[i+o[A+80>>2]>>2],t=t+1|0,(0|f)!=(0|(k=k+1|0)););}!(f=o[A+80>>2])|!v[A+84|0]||(f&&(o[8489]=o[8489]+1,Zn[o[8291]](f)),c=o[A+72>>2]),o[A+80>>2]=n,a[A+84|0]=1,o[A+76>>2]=r,t=r}if(o[o[A+80>>2]+(c<<2)>>2]=o[e>>2],c=c+1|0,o[A+72>>2]=c,(0|h)==(0|(u=u+1|0)))break}else c=o[A+72>>2];o[o[A+4>>2]+80>>2]<(o[A+52>>2]+c|0)&&or(A)}else t=o[A+8>>2],m(Zn[o[o[t>>2]+12>>2]](t,r,f,e,i,w,h,n,o[A+20>>2],o[A+24>>2]))},vn,function(A,r){A|=0;var f,e,i=0;return f=o[(r|=0)>>2],e=o[A+84>>2],!(o[r+8>>2]&o[A+8>>2])|!(o[A+12>>2]&o[r+4>>2])|(0|f)==(0|e)||(A=o[A+96>>2],i=0|Zn[o[o[A>>2]+28>>2]](A,e,f)),0|i},function(A,r,f){A|=0,r|=0,f|=0;var e=0,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=m(0);return i=m(1),(0|(e=o[r>>2]))==o[A+84>>2]|4&v[e+204|0]|m(-w[A+88>>2])<=m(m(w[r+16>>2]*m(w[A+44>>2]-w[A+28>>2]))+m(m(w[r+8>>2]*m(w[A+36>>2]-w[A+20>>2]))+m(m(w[A+40>>2]-w[A+24>>2])*w[r+12>>2])))||(i=w[r+40>>2],o[A+16>>2]=e,w[A+4>>2]=i,f?(e=o[4+(f=r+8|0)>>2],o[A+52>>2]=o[f>>2],o[A+56>>2]=e,e=o[f+12>>2],o[A+60>>2]=o[f+8>>2],o[A+64>>2]=e):(t=w[e+12>>2],c=w[e+8>>2],b=w[e+28>>2],u=w[e+20>>2],l=w[e+24>>2],s=w[e+44>>2],k=w[e+36>>2],d=w[e+40>>2],h=w[e+4>>2],i=w[r+16>>2],n=w[r+8>>2],a=w[r+12>>2],o[A- -64>>2]=0,w[A+60>>2]=m(s*i)+m(m(k*n)+m(a*d)),w[A+56>>2]=m(b*i)+m(m(u*n)+m(a*l)),w[A+52>>2]=m(t*i)+m(m(h*n)+m(c*a))),f=o[r+28>>2],o[A+68>>2]=o[r+24>>2],o[A+72>>2]=f,f=o[r+36>>2],o[A+76>>2]=o[r+32>>2],o[A+80>>2]=f,i=w[r+40>>2]),m(i)},function(A){return 0|gr(A|=0)},function(A){(A=gr(A|=0))&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r){A|=0,r=m(r);var f,e,i=0,n=0,t=m(0),c=0,b=0,u=m(0),l=0,s=m(0),k=m(0),d=m(0),h=m(0),B=0,Z=m(0),Q=0,E=0,W=0,N=0,p=0,F=m(0),R=m(0),Y=m(0),V=m(0),g=m(0),X=m(0),D=m(0),C=m(0),J=m(0),x=m(0),y=0,M=m(0),H=m(0);if(S=f=S-512|0,Zn[o[8294]](3728),S=i=S-16|0,Zn[o[8294]](4613),o[A+324>>2]>0)for(;b=o[A+24>>2],Zn[o[o[b>>2]+16>>2]](b,o[o[A+332>>2]+(n<<2)>>2]),(0|(n=n+1|0))>2];);if(!(n=o[A+332>>2])||!n|!v[A+336|0]||(o[8489]=o[8489]+1,Zn[o[8291]](n)),o[A+332>>2]=0,a[A+336|0]=1,o[A+324>>2]=0,o[A+328>>2]=0,Zn[o[8295]](),S=i+16|0,(0|(e=o[A+248>>2]))>0)for(;;){n=o[o[A+256>>2]+(W<<2)>>2],o[n+268>>2]=1065353216;A:{switch(o[n+220>>2]-2|0){case 0:case 3:break A}if(!(3&v[n+204|0])&&(hi(n,r,f+444|0),v[A+44|0]&&(t=w[n+276>>2],(t=m(t*t))!=m(0)&&(u=m(w[f+500>>2]-w[n+60>>2]),s=m(u*u),u=m(w[f+492>>2]-w[n+52>>2]),Z=m(u*u),u=m(w[f+496>>2]-w[n+56>>2]),t>2]+4>>2]<=19&&(o[f+356>>2]=-1,o[f+360>>2]=0,o[f+348>>2]=1065353216,o[f+352>>2]=1,i=o[n+64>>2],o[f+372>>2]=o[n+60>>2],o[f+376>>2]=i,i=o[n+56>>2],o[f+364>>2]=o[n+52>>2],o[f+368>>2]=i,i=o[f+504>>2],o[f+388>>2]=o[f+500>>2],o[f+392>>2]=i,i=o[f+496>>2],o[f+380>>2]=o[f+492>>2],o[f+384>>2]=i,o[f+436>>2]=A,o[f+428>>2]=0,o[f+344>>2]=25104,o[f+432>>2]=n,t=w[n+272>>2],b=ae(f+284|0),o[b>>2]=21520,o[f+312>>2]=1065353216,o[f+304>>2]=1065353216,o[f+308>>2]=1065353216,o[f+288>>2]=8,o[f+332>>2]=0,o[f+324>>2]=0,o[f+328>>2]=0,o[f+316>>2]=0,o[f+320>>2]=0,o[f+340>>2]=0,w[f+336>>2]=t,w[f+320>>2]=t,i=o[n+188>>2],o[f+352>>2]=o[i+4>>2],o[f+356>>2]=o[i+8>>2],i=o[f+456>>2],o[f+224>>2]=o[f+452>>2],o[f+228>>2]=i,i=o[f+448>>2],o[f+216>>2]=o[f+444>>2],o[f+220>>2]=i,i=o[f+472>>2],o[f+240>>2]=o[f+468>>2],o[f+244>>2]=i,i=o[f+464>>2],o[f+232>>2]=o[f+460>>2],o[f+236>>2]=i,i=o[f+488>>2],o[f+256>>2]=o[f+484>>2],o[f+260>>2]=i,i=o[f+480>>2],o[f+248>>2]=o[f+476>>2],o[f+252>>2]=i,i=o[f+504>>2],o[f+272>>2]=o[f+500>>2],o[f+276>>2]=i,i=o[f+496>>2],o[f+264>>2]=o[f+492>>2],o[f+268>>2]=i,c=o[12+(i=n+4|0)>>2],o[f+224>>2]=o[i+8>>2],o[f+228>>2]=c,c=o[i+4>>2],o[f+216>>2]=o[i>>2],o[f+220>>2]=c,c=o[n+32>>2],o[f+240>>2]=o[n+28>>2],o[f+244>>2]=c,c=o[n+24>>2],o[f+232>>2]=o[n+20>>2],o[f+236>>2]=c,c=o[n+48>>2],o[f+256>>2]=o[n+44>>2],o[f+260>>2]=c,c=o[n+40>>2],o[f+248>>2]=o[n+36>>2],o[f+252>>2]=c,EA(A,b,i,f+216|0,f+344|0,m(0)),i=o[f+360>>2])){if(t=w[f+348>>2],k=m(m(w[f+492>>2]-w[n+52>>2])*t),d=m(m(w[f+496>>2]-w[n+56>>2])*t),h=m(t*m(w[f+500>>2]-w[n+60>>2])),x=m(m(m(k*m(-w[f+396>>2]))-m(d*w[f+400>>2]))-m(h*w[f+404>>2])),b=o[A+24>>2],N=0|Zn[o[o[b>>2]+12>>2]](b,n,i),(0|(i=o[A+324>>2]))==o[A+328>>2]&&!((0|(E=i?i<<1:1))<=(0|i))){if(E?(o[8488]=o[8488]+1,b=0|Zn[o[8290]](E<<2,16),i=o[A+324>>2]):b=0,!((0|i)<=0)){if(p=0,c=0,i>>>0>=4)for(y=-4&i,B=0;o[(l=c<<2)+b>>2]=o[l+o[A+332>>2]>>2],o[(Q=4|l)+b>>2]=o[Q+o[A+332>>2]>>2],o[(Q=8|l)+b>>2]=o[Q+o[A+332>>2]>>2],o[(l|=12)+b>>2]=o[l+o[A+332>>2]>>2],c=c+4|0,(0|y)!=(0|(B=B+4|0)););if(l=3&i)for(;o[(B=c<<2)+b>>2]=o[B+o[A+332>>2]>>2],c=c+1|0,(0|l)!=(0|(p=p+1|0)););}!(c=o[A+332>>2])|!v[A+336|0]||(c&&(o[8489]=o[8489]+1,Zn[o[8291]](c)),i=o[A+324>>2]),o[A+332>>2]=b,a[A+336|0]=1,o[A+328>>2]=E}o[o[A+332>>2]+(i<<2)>>2]=N,o[A+324>>2]=i+1,i=o[f+360>>2],R=w[i+20>>2],Y=w[i+36>>2],V=w[i+40>>2],g=w[i+8>>2],X=w[i+24>>2],t=w[i+60>>2],M=w[i+52>>2],u=w[i+56>>2],D=w[i+44>>2],s=w[i+12>>2],C=w[i+28>>2],J=w[i+4>>2],Z=w[n+60>>2],F=w[n+52>>2],H=w[n+56>>2],o[f+16>>2]=0,o[f+20>>2]=0,o[f+8>>2]=0,o[f+12>>2]=0,o[f+36>>2]=0,h=m(h+Z),k=m(k+F),d=m(d+H),F=m(m(D*h)+m(m(s*k)+m(C*d))),Z=s,s=m(-M),w[f+32>>2]=F+m(m(m(Z*s)-m(C*u))-m(D*t)),w[f+28>>2]=m(m(h*V)+m(m(k*g)+m(d*X)))+m(m(m(g*s)-m(X*u))-m(V*t)),w[f+24>>2]=m(m(h*Y)+m(m(k*J)+m(d*R)))+m(m(m(J*s)-m(R*u))-m(Y*t)),i=o[f+408>>2],o[f+80>>2]=o[f+404>>2],o[f+84>>2]=i,i=o[f+400>>2],o[f+72>>2]=o[f+396>>2],o[f+76>>2]=i,w[f+88>>2]=x,o[f+100>>2]=0,o[f+104>>2]=0,o[f+92>>2]=0,o[f+96>>2]=0,o[f+172>>2]=0,o[f+164>>2]=0,o[f+168>>2]=0,o[f+156>>2]=0,o[f+160>>2]=0,o[f+148>>2]=0,o[f+152>>2]=0,o[f+140>>2]=0,o[f+144>>2]=0,o[f+132>>2]=0,o[f+136>>2]=0,o[f+124>>2]=0,o[f+128>>2]=0,o[f+208>>2]=o[n+192>>2],o[f+212>>2]=o[f+428>>2],i=G(wA(N,f+8|0),208)+N|0,o[i+100>>2]=0,t=(t=m(w[n+228>>2]*w[o[f+360>>2]+228>>2]))>2]=t>m(10)?m(10):t,b=o[n+56>>2],o[i+52>>2]=o[n+52>>2],o[i+56>>2]=b,b=o[n+64>>2],o[i+60>>2]=o[n+60>>2],o[i+64>>2]=b,o[i+48>>2]=0,w[i+44>>2]=h,w[i+40>>2]=d,w[i+36>>2]=k}Zn[o[8295]]()}}if((0|e)==(0|(W=W+1|0)))break}Zn[o[8295]](),S=f+512|0},function(A){var r=0,f=0;if(o[248+(A|=0)>>2]>0)for(;;){A:{switch(r=o[o[A+256>>2]+(f<<2)>>2],o[r+220>>2]-2|0){case 0:case 3:break A}2&v[r+204|0]||(w[r+504>>2]!=m(1)?be(r):(o[r+472>>2]=0,o[r+476>>2]=0,o[r+480>>2]=0,o[r+484>>2]=0),w[r+508>>2]==m(1)&&(o[r+488>>2]=0,o[r+492>>2]=0,o[r+496>>2]=0,o[r+500>>2]=0))}if(!((0|(f=f+1|0))>2]))break}},en,vn,function(A,r,f){return A|=0,r|=0,A=0,!(o[8+(f|=0)>>2]&o[r+4>>2])|!(o[r+8>>2]&o[f+4>>2])||(r=o[r>>2],f=o[f>>2],1&a[r+204|0]&a[f+204|0]|2==o[r+220>>2]&2==o[f+220>>2]||(A=1)),0|A},en,vn,function(A,r,f){var e;return A|=0,r|=0,A=o[(f|=0)>>2],A=4==o[A+252>>2]?A:0,!(e=o[r>>2])|4!=o[e+252>>2]||Zn[o[o[e>>2]+28>>2]](e,f,r),A&&Zn[o[o[A>>2]+28>>2]](A,r,f),0},function(A,r,f,e){var i;return A|=0,r|=0,e|=0,A=o[(f|=0)>>2],A=4==o[A+252>>2]?A:0,!(i=o[r>>2])|4!=o[i+252>>2]||Zn[o[o[i>>2]+32>>2]](i,f,e,r),A&&Zn[o[o[A>>2]+32>>2]](A,r,e,f),0},zi,vn,function(A,r){A|=0;var f,e,i=0;return f=o[(r|=0)>>2],e=o[A+88>>2],!(o[r+8>>2]&o[A+8>>2])|!(o[A+12>>2]&o[r+4>>2])|(0|f)==(0|e)||(A=o[o[A+92>>2]+24>>2],i=0|Zn[o[o[A>>2]+28>>2]](A,e,f)),0|i},function(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),v=m(0);return o[A+84>>2]=o[o[r+4>>2]+8>>2],w[A+4>>2]=w[r+40>>2],e=o[r>>2],o[A+16>>2]=e,f?(f=o[r+12>>2],o[A+52>>2]=o[r+8>>2],o[A+56>>2]=f,f=o[r+20>>2],o[A+60>>2]=o[r+16>>2],o[A+64>>2]=f):(t=w[e+8>>2],c=w[e+12>>2],b=w[e+20>>2],u=w[e+24>>2],l=w[e+28>>2],s=w[e+36>>2],k=w[e+40>>2],i=w[r+12>>2],d=w[e+44>>2],n=w[r+16>>2],v=w[e+4>>2],a=w[r+8>>2],o[A- -64>>2]=0,w[A+60>>2]=m(d*n)+m(m(s*a)+m(i*k)),w[A+56>>2]=m(l*n)+m(m(b*a)+m(i*u)),w[A+52>>2]=m(c*n)+m(m(v*a)+m(t*i))),f=o[r+28>>2],o[A+68>>2]=o[r+24>>2],o[A+72>>2]=f,f=o[r+36>>2],o[A+76>>2]=o[r+32>>2],o[A+80>>2]=f,m(w[r+40>>2])},ue,function(A){ue(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r,f){A|=0,f|=0;var e,i=0,n=0,t=0,c=0,b=0,u=0,l=0;e=o[(r|=0)>>2];A:{r:if(!((0|(f=o[A+328>>2]))<=0)){for(n=o[A+336>>2],r=0;;){if(o[n+(r<<2)>>2]!=(0|e)){if((0|f)!=(0|(r=r+1|0)))continue;break r}break}if((0|r)!=(0|f))break A}if(o[A+332>>2]==(0|f)&&!((0|(c=f?f<<1:1))<=(0|f))){if(c?(o[8488]=o[8488]+1,n=0|Zn[o[8290]](c<<2,16),f=o[A+328>>2]):n=0,!((0|f)<=0)){if(r=0,f>>>0>=4)for(b=-4&f;o[(i=r<<2)+n>>2]=o[i+o[A+336>>2]>>2],o[(t=4|i)+n>>2]=o[t+o[A+336>>2]>>2],o[(t=8|i)+n>>2]=o[t+o[A+336>>2]>>2],o[(i|=12)+n>>2]=o[i+o[A+336>>2]>>2],r=r+4|0,(0|b)!=(0|(u=u+4|0)););if(i=3&f)for(;o[(b=r<<2)+n>>2]=o[b+o[A+336>>2]>>2],r=r+1|0,(0|i)!=(0|(l=l+1|0)););}!(r=o[A+336>>2])|!v[A+340|0]||(r&&(o[8489]=o[8489]+1,Zn[o[8291]](r)),f=o[A+328>>2]),o[A+336>>2]=n,a[A+340|0]=1,o[A+332>>2]=c}o[o[A+336>>2]+(f<<2)>>2]=e,o[A+328>>2]=f+1}},function(A,r,f,e){r|=0,f|=0,e|=0;var i=0,n=0;A:if(!((0|(f=o[328+(A|=0)>>2]))<=0)){for(n=o[r>>2],e=o[A+336>>2],r=0;;){if(o[(i=(r<<2)+e|0)>>2]!=(0|n)){if((0|f)!=(0|(r=r+1|0)))continue;break A}break}(0|r)>=(0|f)||(r=f-1|0,o[i>>2]=o[(r<<2)+e>>2],o[A+328>>2]=r)}},Pf,function(A){Pf(A|=0),A&&(o[8489]=o[8489]+1,Zn[o[8291]](A))},function(A,r,f){r|=0,f|=0;var e,i=0,n=0,t=0,c=0,b=0,u=0,l=0,s=0,k=0;t=o[188+(A|=0)>>2],e=o[r>>2];A:{r:if(!((0|(i=o[A+328>>2]))<=0)){for(c=o[A+336>>2];;){if(o[c+(n<<2)>>2]!=(0|e)){if((0|(n=n+1|0))!=(0|i))continue;break r}break}if((0|i)!=(0|n))break A}if(k=f||t,o[A+332>>2]==(0|i)&&!((0|(c=i?i<<1:1))<=(0|i))){if(c?(o[8488]=o[8488]+1,f=0|Zn[o[8290]](c<<2,16),i=o[A+328>>2]):f=0,!((0|i)<=0)){if(n=0,i>>>0>=4)for(u=-4&i;o[(t=n<<2)+f>>2]=o[t+o[A+336>>2]>>2],o[(b=4|t)+f>>2]=o[b+o[A+336>>2]>>2],o[(b=8|t)+f>>2]=o[b+o[A+336>>2]>>2],o[(t|=12)+f>>2]=o[t+o[A+336>>2]>>2],n=n+4|0,(0|u)!=(0|(l=l+4|0)););if(t=3&i)for(;o[(u=n<<2)+f>>2]=o[u+o[A+336>>2]>>2],n=n+1|0,(0|t)!=(0|(s=s+1|0)););}!(n=o[A+336>>2])|!v[A+340|0]||(n&&(o[8489]=o[8489]+1,Zn[o[8291]](n)),i=o[A+328>>2]),o[A+336>>2]=f,a[A+340|0]=1,o[A+332>>2]=c}o[o[A+336>>2]+(i<<2)>>2]=e,o[A+328>>2]=i+1,A=o[A+344>>2],Zn[o[o[A>>2]+8>>2]](A,k,r)}},function(A,r,f,e){r|=0,f|=0,e|=0;var i=0,n=0,a=0,t=0,c=0;A:if(!((0|(i=o[328+(A|=0)>>2]))<=0)){for(t=e||o[A+188>>2],c=o[r>>2],n=o[A+336>>2],e=0;;){if(o[(a=(e<<2)+n|0)>>2]!=(0|c)){if((0|i)!=(0|(e=e+1|0)))continue;break A}break}(0|e)>=(0|i)||(e=i-1|0,o[a>>2]=o[(e<<2)+n>>2],o[A+328>>2]=e,A=o[A+344>>2],Zn[o[o[A>>2]+12>>2]](A,t,r,f))}},function(){a[35919]<0&&DA(o[8977]),a[35907]<0&&DA(o[8974]),a[35895]<0&&DA(o[8971]),a[35883]<0&&DA(o[8968])},function(A){var r;return o[(A|=0)>>2]=25340,!(r=o[A+124>>2])||!r|!v[A+128|0]||(o[8489]=o[8489]+1,Zn[o[8291]](r)),o[A+124>>2]=0,a[A+128|0]=1,o[A+116>>2]=0,o[A+120>>2]=0,0|A},hn,function(A){v[62+(A|=0)|0]&&(qA(A),qA(A),qA(A),qA(A))},dn,Di,Me,function(A){return m(m(m(w[156+(A|=0)>>2]*m(.5))+w[A+152>>2]))},Me,function(A){return m(w[o[8+(A|=0)>>2]+40>>2])},vn,function(A,r,f){A|=0,r|=0,f|=0;var e,i=m(0),n=m(0),a=m(0),t=m(0),c=m(0),b=m(0),u=m(0),l=m(0),s=m(0),k=m(0),d=m(0),h=m(0);return i=m(1),(0|(e=o[r>>2]))==o[A+88>>2]|4&v[e+204|0]||(o[A+84>>2]=o[o[r+4>>2]+8>>2],i=w[r+40>>2],o[A+16>>2]=e,w[A+4>>2]=i,f?(f=o[r+12>>2],o[A+52>>2]=o[r+8>>2],o[A+56>>2]=f,f=o[r+20>>2],o[A+60>>2]=o[r+16>>2],o[A+64>>2]=f):(t=w[e+8>>2],c=w[e+12>>2],b=w[e+20>>2],u=w[e+24>>2],l=w[e+28>>2],s=w[e+36>>2],k=w[e+40>>2],i=w[r+12>>2],d=w[e+44>>2],n=w[r+16>>2],h=w[e+4>>2],a=w[r+8>>2],o[A- -64>>2]=0,w[A+60>>2]=m(d*n)+m(m(s*a)+m(i*k)),w[A+56>>2]=m(l*n)+m(m(b*a)+m(i*u)),w[A+52>>2]=m(c*n)+m(m(h*a)+m(t*i))),f=o[r+28>>2],o[A+68>>2]=o[r+24>>2],o[A+72>>2]=f,f=o[r+36>>2],o[A+76>>2]=o[r+32>>2],o[A+80>>2]=f,i=w[r+40>>2]),m(i)},Or,en,vn,Bn,Bn,function(A,r){return 0|Ue(A|=0,r|=0,0)},vn,function(A,r,f){f|=0;var e,i=0;return S=e=S+-64|0,i=1,Ue(A|=0,r|=0,0)||(i=0,r&&(i=0,(r=qr(r,30100))&&(Af(e+12|0,0,52),o[e+56>>2]=1,o[e+20>>2]=-1,o[e+16>>2]=A,o[e+8>>2]=r,Zn[o[o[r>>2]+28>>2]](r,e+8|0,o[f>>2],1),1==(0|(A=o[e+32>>2]))&&(o[f>>2]=o[e+24>>2]),i=1==(0|A)))),S=e- -64|0,0|i},function(A,r,f,e,i,n){f|=0,e|=0,i|=0,n|=0,Ue(A|=0,o[8+(r|=0)>>2],n)&&Tf(r,f,e,i)},function(A,r,f,e,i){if(f|=0,e|=0,i|=0,Ue(A|=0,o[8+(r|=0)>>2],i))1==o[r+28>>2]|o[r+4>>2]!=(0|f)||(o[r+28>>2]=e);else A:if(Ue(A,o[r>>2],i)){if(!(o[r+16>>2]!=(0|f)&o[r+20>>2]!=(0|f))){if(1!=(0|e))break A;return void(o[r+32>>2]=1)}o[r+20>>2]=f,o[r+32>>2]=e,o[r+40>>2]=o[r+40>>2]+1,1!=o[r+36>>2]|2!=o[r+24>>2]||(a[r+54|0]=1),o[r+44>>2]=4}},function(A,r,f,e){f|=0,e|=0,Ue(A|=0,o[8+(r|=0)>>2],0)&&ie(r,f,e)},vn,function(A,r,f,e,i,n){f|=0,e|=0,i|=0,n|=0,Ue(A|=0,o[8+(r|=0)>>2],n)?Tf(r,f,e,i):(A=o[A+8>>2],Zn[o[o[A>>2]+20>>2]](A,r,f,e,i,n))},function(A,r,f,e,i){if(f|=0,e|=0,i|=0,Ue(A|=0,o[8+(r|=0)>>2],i))1==o[r+28>>2]|o[r+4>>2]!=(0|f)||(o[r+28>>2]=e);else A:{if(Ue(A,o[r>>2],i)){if(!(o[r+16>>2]!=(0|f)&o[r+20>>2]!=(0|f))){if(1!=(0|e))break A;return void(o[r+32>>2]=1)}o[r+32>>2]=e;r:if(4!=o[r+44>>2]){if(t[r+52>>1]=0,A=o[A+8>>2],Zn[o[o[A>>2]+20>>2]](A,r,f,f,1,i),v[r+53|0]){if(o[r+44>>2]=3,!v[r+52|0])break r;break A}o[r+44>>2]=4}if(o[r+20>>2]=f,o[r+40>>2]=o[r+40>>2]+1,1!=o[r+36>>2]|2!=o[r+24>>2])break A;return void(a[r+54|0]=1)}A=o[A+8>>2],Zn[o[o[A>>2]+24>>2]](A,r,f,e,i)}},function(A,r,f,e){f|=0,e|=0,Ue(A|=0,o[8+(r|=0)>>2],0)?ie(r,f,e):(A=o[A+8>>2],Zn[o[o[A>>2]+28>>2]](A,r,f,e))},vn,function(A,r,f,e,i,n){f|=0,e|=0,i|=0,n|=0;var c,b=0,u=0,l=0,s=0,k=0,d=0;if(Ue(A|=0,o[8+(r|=0)>>2],n))Tf(r,f,e,i);else{b=v[r+53|0],s=o[A+12>>2],a[r+53|0]=0,u=v[r+52|0],a[r+52|0]=0,Ce(c=A+16|0,r,f,e,i,n),b|=k=v[r+53|0],u|=d=v[r+52|0];A:if(!((l=A+24|0)>>>0>=(s=(s<<3)+c|0)>>>0))for(;;){if(v[r+54|0])break A;r:{if(d){if(1==o[r+24>>2])break A;if(2&v[A+8|0])break r;break A}if(k&&!(1&a[A+8|0]))break A}if(t[r+52>>1]=0,Ce(l,r,f,e,i,n),b|=k=v[r+53|0],u|=d=v[r+52|0],!(s>>>0>(l=l+8|0)>>>0))break}a[r+53|0]=!!(255&b),a[r+52|0]=!!(255&u)}},function(A,r,f,e,i){f|=0,e|=0,i|=0;var n=0,c=0,b=0;if(Ue(A|=0,o[8+(r|=0)>>2],i))1==o[r+28>>2]|o[r+4>>2]!=(0|f)||(o[r+28>>2]=e);else A:{if(Ue(A,o[r>>2],i)){if(!(o[r+16>>2]!=(0|f)&o[r+20>>2]!=(0|f))){if(1!=(0|e))break A;return void(o[r+32>>2]=1)}if(o[r+32>>2]=e,4!=o[r+44>>2]){b=(n=A+16|0)+(o[A+12>>2]<<3)|0,e=0;r:{f:{for(;!(n>>>0>=b>>>0||(t[r+52>>1]=0,Ce(n,r,f,f,1,i),v[r+54|0]));){e:if(v[r+53|0]){if(v[r+52|0]){if(e=1,1==o[r+24>>2])break f;if(c=1,2&v[A+8|0])break e;break f}if(c=1,!(1&a[A+8|0]))break f}n=n+8|0}if(A=4,!c)break r}A=3}if(o[r+44>>2]=A,1&e)break A}if(o[r+20>>2]=f,o[r+40>>2]=o[r+40>>2]+1,1!=o[r+36>>2]|2!=o[r+24>>2])break A;return void(a[r+54|0]=1)}if(c=o[A+12>>2],Je(b=A+16|0,r,f,e,i),!((n=A+24|0)>>>0>=(c=b+(c<<3)|0)>>>0))if(!(2&(A=o[A+8>>2]))&1!=o[r+36>>2]){if(!(1&A))for(;;){if(v[r+54|0]|1==o[r+36>>2])break A;if(Je(n,r,f,e,i),!(c>>>0>(n=n+8|0)>>>0))break A}for(;;){if(v[r+54|0]|1==o[r+36>>2]&1==o[r+24>>2])break A;if(Je(n,r,f,e,i),!(c>>>0>(n=n+8|0)>>>0))break}}else for(;;){if(v[r+54|0])break A;if(Je(n,r,f,e,i),!(c>>>0>(n=n+8|0)>>>0))break}}},function(A,r,f,e){f|=0,e|=0;var i,n=0;if(Ue(A|=0,o[8+(r|=0)>>2],0))ie(r,f,e);else{n=o[A+12>>2],Ge(i=A+16|0,r,f,e);A:if(!((A=A+24|0)>>>0>=(n=(n<<3)+i|0)>>>0))for(;;){if(Ge(A,r,f,e),v[r+54|0])break A;if(!(n>>>0>(A=A+8|0)>>>0))break}}},vn,function(A,r,f){A|=0,f|=0;var e,i=0,n=0,t=0;S=e=S+-64|0;A:if(Ue(r|=0,30416,0))o[f>>2]=0,i=1;else{r:{if(24&v[A+8|0])n=1;else{if(!r)break r;if(!(n=qr(r,30148)))break r;n=!!(24&v[n+8|0])}t=Ue(A,r,n)}if(t){if(i=1,!(A=o[f>>2]))break A;o[f>>2]=o[A>>2]}else{if(r){if(!(n=qr(r,30196)))break A;if((r=o[f>>2])&&(o[f>>2]=o[r>>2]),(t=o[n+8>>2])&~(r=o[A+8>>2])&7|r&~t&96)break A;if(i=1,Ue(o[A+12>>2],o[n+12>>2],0))break A;if(Ue(o[A+12>>2],30404,0)){if(!(A=o[n+12>>2]))break A;i=!qr(A,30248);break A}if(t=o[A+12>>2]){if(i=0,r=qr(t,30196)){if(!(1&a[A+8|0]))break A;A=o[n+12>>2],f=0;r:{f:{for(;;){if(i=0,!A)break r;if(!(A=qr(A,30196))|o[A+8>>2]&~o[r+8>>2])break f;if(i=1,Ue(o[r+12>>2],o[A+12>>2],0))break r;if(!(1&a[r+8|0]))break f;if(!(i=o[r+12>>2]))break f;if(!(r=qr(i,30196)))break;A=o[A+12>>2]}(r=qr(i,30308))&&(f=ke(r,o[A+12>>2]))}i=f}break A}if(r=qr(t,30308)){if(!(1&a[A+8|0]))break A;i=ke(r,o[n+12>>2]);break A}if(!(r=qr(t,30100)))break A;if(!(A=o[n+12>>2]))break A;if(!(A=qr(A,30100)))break A;Af(e+12|0,0,52),o[e+56>>2]=1,o[e+20>>2]=-1,o[e+16>>2]=r,o[e+8>>2]=A,Zn[o[o[A>>2]+28>>2]](A,e+8|0,o[f>>2],1),A=o[e+32>>2],!o[f>>2]|1!=(0|A)||(o[f>>2]=o[e+24>>2]),i=1==(0|A);break A}}i=0}}return S=e- -64|0,0|i}],wn.set=function(A,r){this[A]=r},wn.get=function(A){return this[A]},wn);function Gn(){return n.byteLength/65536|0}return{w:function(){var A=0;a[33218]=0,t[16608]=20565,a[33227]=2,o[8307]=1162103123,o[8310]=1314344772,a[33239]=4,a[33251]=4,a[33232]=0,a[33263]=6,a[33244]=0,o[8313]=v[9286]|v[9287]<<8|v[9288]<<16|v[9289]<<24,a[33258]=0,A=v[9290]|v[9291]<<8,a[33256]=A,a[33257]=A>>>8,o[8479]=0,o[8478]=327,tA(),o[8479]=o[8980],o[8980]=33912,a[35895]=4,t[17936]=20565,a[35883]=2,a[35907]=4,o[8971]=1162103123,a[35919]=6,o[8974]=1314344772,o[8977]=v[9286]|v[9287]<<8|v[9288]<<16|v[9289]<<24,A=v[9290]|v[9291]<<8,a[35912]=A,a[35913]=A>>>8,a[35874]=0,a[35888]=0,a[35900]=0,a[35914]=0,o[8981]=1066,o[8982]=0,Or(),o[8982]=o[8980],o[8980]=35924},x:iA,y:DA,z:Zn,A:function(A){var r=0,f=0,e=0;A:{r:{f:if(3&(A=f=o[4+(A|=0)>>2])){if(r=0,!v[0|f])break A;for(;;){if(!(3&(A=A+1|0)))break f;if(!v[0|A])break}break r}for(;r=A,A=A+4|0,!(~(e=o[r>>2])&e-16843009&-2139062144););for(;r=(A=r)+1|0,v[0|A];);}r=A-f|0}return 0|((r=iA(A=r+1|0))?pr(r,f,A):0)},B:function(){var A=0;if(A=o[8980])for(;Zn[o[A>>2]](),A=o[A+4>>2];);}}}(A)}(r)},instantiate:function(A,r){return{then:function(f){var e=new b.Module(A);f({instance:new b.Instance(e,r)})}}},RuntimeError:Error};t=[],"object"!=typeof b&&V("no native wasm support detected");var u,l,s,k,d,v,h,B,w=!1;function Z(){var A=c.buffer;e.HEAP8=u=new Int8Array(A),e.HEAP16=s=new Int16Array(A),e.HEAP32=d=new Int32Array(A),e.HEAPU8=l=new Uint8Array(A),e.HEAPU16=k=new Uint16Array(A),e.HEAPU32=v=new Uint32Array(A),e.HEAPF32=h=new Float32Array(A),e.HEAPF64=B=new Float64Array(A)}var G,m=e.INITIAL_MEMORY||16777216;m>=65536||V("INITIAL_MEMORY should be larger than STACK_SIZE, was "+m+"! (STACK_SIZE=65536)"),c=e.wasmMemory?e.wasmMemory:new b.Memory({initial:m/65536,maximum:32768}),Z(),m=c.buffer.byteLength;var Q=[],E=[],W=[];function N(){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)A=e.preRun.shift(),Q.unshift(A);var A;y(Q)}function p(){if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;)A=e.postRun.shift(),W.unshift(A);var A;y(W)}var F=0,R=null;function Y(){if(F--,e.monitorRunDependencies&&e.monitorRunDependencies(F),0==F&&R){var A=R;R=null,A()}}function V(A){e.onAbort&&e.onAbort(A),o(A="Aborted("+A+")"),w=!0,A+=". Build with -sASSERTIONS for more info.";var r=new b.RuntimeError(A);throw f(r),r}var g,X;function D(A){return A.startsWith("data:application/octet-stream;base64,")}function C(A){try{if(A==g&&t)return new Uint8Array(t);var r=br(A);if(r)return r;throw"both async and sync fetching of the wasm failed"}catch(A){V(A)}}function J(A){return t||"function"!=typeof fetch?Promise.resolve().then((()=>C(A))):fetch(A,{credentials:"same-origin"}).then((r=>{if(!r.ok)throw"failed to load wasm binary file at '"+A+"'";return r.arrayBuffer()})).catch((()=>C(A)))}function x(A,r,f){return J(A).then((A=>b.instantiate(A,r))).then((A=>A)).then(f,(A=>{o("failed to asynchronously prepare wasm: "+A),V(A)}))}function y(A){for(;A.length>0;)A.shift()(e)}function M(A){if(void 0===A)return"_unknown";var r=(A=A.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return r>=48&&r<=57?`_${A}`:A}function H(A,r){return A=M(A),{[A]:function(){return r.apply(this,arguments)}}[A]}D(g="<<< WASM_BINARY_FILE >>>")||(X=g,g=e.locateFile?e.locateFile(X,a):a+X);var I=new function(){this.allocated=[void 0],this.freelist=[],this.get=function(A){return this.allocated[A]},this.has=function(A){return void 0!==this.allocated[A]},this.allocate=function(A){var r=this.freelist.pop()||this.allocated.length;return this.allocated[r]=A,r},this.free=function(A){this.allocated[A]=void 0,this.freelist.push(A)}};function T(A,r){var f=H(r,(function(A){this.name=r,this.message=A;var f=new Error(A).stack;void 0!==f&&(this.stack=this.toString()+"\n"+f.replace(/^Error(:[^\n]*)?\n/,""))}));return f.prototype=Object.create(A.prototype),f.prototype.constructor=f,f.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},f}var U=void 0;function j(A){throw new U(A)}var z=A=>(A||j("Cannot use deleted val. handle = "+A),I.get(A).value),P=A=>{switch(A){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return I.allocate({refcount:1,value:A})}},O=void 0,S=void 0;function L(A){for(var r="",f=A;l[f];)r+=S[l[f++]];return r}var $=[];function K(){for(;$.length;){var A=$.pop();A.$$.deleteScheduled=!1,A.delete()}}var q=void 0;var _={};function AA(A,r){for(void 0===r&&j("ptr should not be undefined");A.baseClass;)r=A.upcast(r),A=A.baseClass;return r}var rA={};function fA(A){var r=dr(A),f=L(r);return kr(r),f}function eA(A,r){var f=rA[A];return void 0===f&&j(r+" has unknown type "+fA(A)),f}function iA(){}var nA=!1;function aA(A){A.smartPtr?A.smartPtrType.rawDestructor(A.smartPtr):A.ptrType.registeredClass.rawDestructor(A.ptr)}function tA(A){A.count.value-=1,0===A.count.value&&aA(A)}function oA(A,r,f){if(r===f)return A;if(void 0===f.baseClass)return null;var e=oA(A,r,f.baseClass);return null===e?null:f.downcast(e)}var cA={};function bA(A,r){return r=AA(A,r),_[r]}var uA=void 0;function lA(A){throw new uA(A)}function sA(A,r){return r.ptrType&&r.ptr||lA("makeClassHandle requires ptr and ptrType"),!!r.smartPtrType!=!!r.smartPtr&&lA("Both smartPtrType and smartPtr must be specified"),r.count={value:1},kA(Object.create(A,{$$:{value:r}}))}function kA(A){return"undefined"==typeof FinalizationRegistry?(kA=A=>A,A):(nA=new FinalizationRegistry((A=>{tA(A.$$)})),kA=A=>{var r=A.$$;if(r.smartPtr){var f={$$:r};nA.register(A,f,A)}return A},iA=A=>nA.unregister(A),kA(A))}function dA(A){switch(A){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${A}`)}}var vA={},hA={};function BA(A,r,f){function e(r){var e=f(r);e.length!==A.length&&lA("Mismatched type converter count");for(var i=0;i{rA.hasOwnProperty(A)?i[r]=rA[A]:(n.push(A),vA.hasOwnProperty(A)||(vA[A]=[]),vA[A].push((()=>{i[r]=rA[A],++a===n.length&&e(i)})))})),0===n.length&&e(i)}function wA(A,r,f={}){if(!("argPackAdvance"in r))throw new TypeError("registerType registeredInstance requires argPackAdvance");var e=r.name;if(A||j(`type "${e}" must have a positive integer typeid pointer`),rA.hasOwnProperty(A)){if(f.ignoreDuplicateRegistrations)return;j(`Cannot register type '${e}' twice`)}if(rA[A]=r,delete hA[A],vA.hasOwnProperty(A)){var i=vA[A];delete vA[A],i.forEach((A=>A()))}}function ZA(A){j(A.$$.ptrType.registeredClass.name+" instance already deleted")}function GA(){}function mA(A,r,f){if(void 0===A[r].overloadTable){var e=A[r];A[r]=function(){return A[r].overloadTable.hasOwnProperty(arguments.length)||j(`Function '${f}' called with an invalid number of arguments (${arguments.length}) - expects one of (${A[r].overloadTable})!`),A[r].overloadTable[arguments.length].apply(this,arguments)},A[r].overloadTable=[],A[r].overloadTable[e.argCount]=e}}function QA(A,r,f){e.hasOwnProperty(A)?((void 0===f||void 0!==e[A].overloadTable&&void 0!==e[A].overloadTable[f])&&j(`Cannot register public name '${A}' twice`),mA(e,A,A),e.hasOwnProperty(f)&&j(`Cannot register multiple overloads of a function with the same number of arguments (${f})!`),e[A].overloadTable[f]=r):(e[A]=r,void 0!==f&&(e[A].numArguments=f))}function EA(A,r,f,e,i,n,a,t){this.name=A,this.constructor=r,this.instancePrototype=f,this.rawDestructor=e,this.baseClass=i,this.getActualType=n,this.upcast=a,this.downcast=t,this.pureVirtualFunctions=[]}function WA(A,r,f){for(;r!==f;)r.upcast||j(`Expected null or instance of ${f.name}, got an instance of ${r.name}`),A=r.upcast(A),r=r.baseClass;return A}function NA(A,r){if(null===r)return this.isReference&&j(`null is not a valid ${this.name}`),0;r.$$||j(`Cannot pass "${UA(r)}" as a ${this.name}`),r.$$.ptr||j(`Cannot pass deleted object as a pointer of type ${this.name}`);var f=r.$$.ptrType.registeredClass;return WA(r.$$.ptr,f,this.registeredClass)}function pA(A,r){var f;if(null===r)return this.isReference&&j(`null is not a valid ${this.name}`),this.isSmartPointer?(f=this.rawConstructor(),null!==A&&A.push(this.rawDestructor,f),f):0;r.$$||j(`Cannot pass "${UA(r)}" as a ${this.name}`),r.$$.ptr||j(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&r.$$.ptrType.isConst&&j(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);var e=r.$$.ptrType.registeredClass;if(f=WA(r.$$.ptr,e,this.registeredClass),this.isSmartPointer)switch(void 0===r.$$.smartPtr&&j("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:r.$$.smartPtrType===this?f=r.$$.smartPtr:j(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:f=r.$$.smartPtr;break;case 2:if(r.$$.smartPtrType===this)f=r.$$.smartPtr;else{var i=r.clone();f=this.rawShare(f,P((function(){i.delete()}))),null!==A&&A.push(this.rawDestructor,f)}break;default:j("Unsupporting sharing policy")}return f}function FA(A,r){if(null===r)return this.isReference&&j(`null is not a valid ${this.name}`),0;r.$$||j(`Cannot pass "${UA(r)}" as a ${this.name}`),r.$$.ptr||j(`Cannot pass deleted object as a pointer of type ${this.name}`),r.$$.ptrType.isConst&&j(`Cannot convert argument of type ${r.$$.ptrType.name} to parameter type ${this.name}`);var f=r.$$.ptrType.registeredClass;return WA(r.$$.ptr,f,this.registeredClass)}function RA(A){return this.fromWireType(d[A>>2])}function YA(A,r,f,e,i,n,a,t,o,c,b){this.name=A,this.registeredClass=r,this.isReference=f,this.isConst=e,this.isSmartPointer=i,this.pointeeType=n,this.sharingPolicy=a,this.rawGetPointee=t,this.rawConstructor=o,this.rawShare=c,this.rawDestructor=b,i||void 0!==r.baseClass?this.toWireType=pA:e?(this.toWireType=NA,this.destructorFunction=null):(this.toWireType=FA,this.destructorFunction=null)}function VA(A,r,f){e.hasOwnProperty(A)||lA("Replacing nonexistant public symbol"),void 0!==e[A].overloadTable&&void 0!==f?e[A].overloadTable[f]=r:(e[A]=r,e[A].argCount=f)}function gA(A,r,f){var i=e["dynCall_"+A];return f&&f.length?i.apply(null,[r].concat(f)):i.call(null,r)}var XA=[];function DA(A){var r=XA[A];return r||(A>=XA.length&&(XA.length=A+1),XA[A]=r=G.get(A)),r}function CA(A,r,f){return A.includes("j")?gA(A,r,f):DA(r).apply(null,f)}function JA(A,r){var f,e,i,n=(A=L(A)).includes("j")?(f=A,e=r,i=[],function(){return i.length=0,Object.assign(i,arguments),CA(f,e,i)}):DA(r);return"function"!=typeof n&&j(`unknown function pointer with signature ${A}: ${r}`),n}var xA=void 0;function yA(A,r){var f=[],e={};throw r.forEach((function A(r){e[r]||rA[r]||(hA[r]?hA[r].forEach(A):(f.push(r),e[r]=!0))})),new xA(`${A}: `+f.map(fA).join([", "]))}function MA(A){for(;A.length;){var r=A.pop();A.pop()(r)}}function HA(A,r,f,e,i){var n=r.length;n<2&&j("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==r[1]&&null!==f,t=!1,o=1;o>2]);return f}function TA(A){A>=I.reserved&&0==--I.get(A).refcount&&I.free(A)}function UA(A){if(null===A)return"null";var r=typeof A;return"object"===r||"array"===r||"function"===r?A.toString():""+A}function jA(A,r){switch(r){case 2:return function(A){return this.fromWireType(h[A>>2])};case 3:return function(A){return this.fromWireType(B[A>>3])};default:throw new TypeError("Unknown float type: "+A)}}function zA(A,r,f){switch(r){case 0:return f?function(A){return u[A]}:function(A){return l[A]};case 1:return f?function(A){return s[A>>1]}:function(A){return k[A>>1]};case 2:return f?function(A){return d[A>>2]}:function(A){return v[A>>2]};default:throw new TypeError("Unknown integer type: "+A)}}function PA(A,r,f,e){if(!(e>0))return 0;for(var i=f,n=f+e-1,a=0;a=55296&&t<=57343&&(t=65536+((1023&t)<<10)|1023&A.charCodeAt(++a)),t<=127){if(f>=n)break;r[f++]=t}else if(t<=2047){if(f+1>=n)break;r[f++]=192|t>>6,r[f++]=128|63&t}else if(t<=65535){if(f+2>=n)break;r[f++]=224|t>>12,r[f++]=128|t>>6&63,r[f++]=128|63&t}else{if(f+3>=n)break;r[f++]=240|t>>18,r[f++]=128|t>>12&63,r[f++]=128|t>>6&63,r[f++]=128|63&t}}return r[f]=0,f-i}function OA(A){for(var r=0,f=0;f=55296&&e<=57343?(r+=4,++f):r+=3}return r}var SA="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function LA(A,r,f){for(var e=r+f,i=r;A[i]&&!(i>=e);)++i;if(i-r>16&&A.buffer&&SA)return SA.decode(A.subarray(r,i));for(var n="";r>10,56320|1023&c)}}else n+=String.fromCharCode((31&a)<<6|t)}else n+=String.fromCharCode(a)}return n}var $A="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function KA(A,r){for(var f=A,e=f>>1,i=e+r/2;!(e>=i)&&k[e];)++e;if((f=e<<1)-A>32&&$A)return $A.decode(l.subarray(A,f));for(var n="",a=0;!(a>=r/2);++a){var t=s[A+2*a>>1];if(0==t)break;n+=String.fromCharCode(t)}return n}function qA(A,r,f){if(void 0===f&&(f=2147483647),f<2)return 0;for(var e=r,i=(f-=2)<2*A.length?f/2:A.length,n=0;n>1]=a,r+=2}return s[r>>1]=0,r-e}function _A(A){return 2*A.length}function Ar(A,r){for(var f=0,e="";!(f>=r/4);){var i=d[A+4*f>>2];if(0==i)break;if(++f,i>=65536){var n=i-65536;e+=String.fromCharCode(55296|n>>10,56320|1023&n)}else e+=String.fromCharCode(i)}return e}function rr(A,r,f){if(void 0===f&&(f=2147483647),f<4)return 0;for(var e=r,i=e+f-4,n=0;n=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&A.charCodeAt(++n)),d[r>>2]=a,(r+=4)+4>i)break}return d[r>>2]=0,r-e}function fr(A){for(var r=0,f=0;f=55296&&e<=57343&&++f,r+=4}return r}var er={},ir=[];function nr(A,r){for(var f=new Array(A),e=0;e>2],"parameter "+e);return f}var ar=[];function tr(A){var r=A-c.buffer.byteLength+65535>>>16;try{return c.grow(r),Z(),1}catch(A){}}U=e.BindingError=T(Error,"BindingError"),I.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),I.reserved=I.allocated.length,e.count_emval_handles=function(){for(var A=0,r=I.reserved;r>4,f=(15&i)<<4|(n=t.indexOf(A.charAt(c++)))>>2,e=(3&n)<<6|(a=t.indexOf(A.charAt(c++))),o+=String.fromCharCode(r),64!==n&&(o+=String.fromCharCode(f)),64!==a&&(o+=String.fromCharCode(e))}while(c>n])},destructorFunction:null})},j:function(A,r,f,e,i,n,a,t,o,c,b,u,l){b=L(b),n=JA(i,n),t&&(t=JA(a,t)),c&&(c=JA(o,c)),l=JA(u,l);var s=M(b);QA(s,(function(){yA(`Cannot construct ${b} due to unbound types`,[e])})),BA([A,r,f],e?[e]:[],(function(r){var f,i;r=r[0],i=e?(f=r.registeredClass).instancePrototype:GA.prototype;var a=H(s,(function(){if(Object.getPrototypeOf(this)!==o)throw new U("Use 'new' to construct "+b);if(void 0===u.constructor_body)throw new U(b+" has no accessible constructor");var A=u.constructor_body[arguments.length];if(void 0===A)throw new U(`Tried to invoke ctor of ${b} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(u.constructor_body).toString()}) parameters instead!`);return A.apply(this,arguments)})),o=Object.create(i,{constructor:{value:a}});a.prototype=o;var u=new EA(b,a,o,l,f,n,t,c);u.baseClass&&(void 0===u.baseClass.__derivedClasses&&(u.baseClass.__derivedClasses=[]),u.baseClass.__derivedClasses.push(u));var k=new YA(b,u,!0,!1,!1),d=new YA(b+"*",u,!1,!1,!1),v=new YA(b+" const*",u,!1,!0,!1);return cA[A]={pointerType:d,constPointerType:v},VA(s,a),[k,d,v]}))},i:function(A,r,f,e,i,n,a){var t=IA(f,e);r=L(r),n=JA(i,n),BA([],[A],(function(A){var e=`${(A=A[0]).name}.${r}`;function i(){yA(`Cannot call ${e} due to unbound types`,t)}r.startsWith("@@")&&(r=Symbol[r.substring(2)]);var o=A.registeredClass.constructor;return void 0===o[r]?(i.argCount=f-1,o[r]=i):(mA(o,r,e),o[r].overloadTable[f-1]=i),BA([],t,(function(i){var t=[i[0],null].concat(i.slice(1)),c=HA(e,t,null,n,a);if(void 0===o[r].overloadTable?(c.argCount=f-1,o[r]=c):o[r].overloadTable[f-1]=c,A.registeredClass.__derivedClasses)for(const f of A.registeredClass.__derivedClasses)f.constructor.hasOwnProperty(r)||(f.constructor[r]=c);return[]})),[]}))},h:function(A,r,f,e,i,n,a,t){var o=IA(f,e);r=L(r),n=JA(i,n),BA([],[A],(function(A){var e=`${(A=A[0]).name}.${r}`;function i(){yA(`Cannot call ${e} due to unbound types`,o)}r.startsWith("@@")&&(r=Symbol[r.substring(2)]),t&&A.registeredClass.pureVirtualFunctions.push(r);var c=A.registeredClass.instancePrototype,b=c[r];return void 0===b||void 0===b.overloadTable&&b.className!==A.name&&b.argCount===f-2?(i.argCount=f-2,i.className=A.name,c[r]=i):(mA(c,r,e),c[r].overloadTable[f-2]=i),BA([],o,(function(i){var t=HA(e,i,A,n,a);return void 0===c[r].overloadTable?(t.argCount=f-2,c[r]=t):c[r].overloadTable[f-2]=t,[]})),[]}))},t:function(A,r){wA(A,{name:r=L(r),fromWireType:function(A){var r=z(A);return TA(A),r},toWireType:function(A,r){return P(r)},argPackAdvance:8,readValueFromPointer:RA,destructorFunction:null})},o:function(A,r,f){var e=dA(f);wA(A,{name:r=L(r),fromWireType:function(A){return A},toWireType:function(A,r){return r},argPackAdvance:8,readValueFromPointer:jA(r,e),destructorFunction:null})},b:function(A,r,f,e,i,n){var a=IA(r,f);A=L(A),i=JA(e,i),QA(A,(function(){yA(`Cannot call ${A} due to unbound types`,a)}),r-1),BA([],a,(function(f){var e=[f[0],null].concat(f.slice(1));return VA(A,HA(A,e,null,i,n),r-1),[]}))},g:function(A,r,f,e){r=L(r);var i=dA(f),n=A=>A;if(0===e){var a=32-8*f;n=A=>A<>>a}var t=r.includes("unsigned");wA(A,{name:r,fromWireType:n,toWireType:t?function(A,r){return this.name,r>>>0}:function(A,r){return this.name,r},argPackAdvance:8,readValueFromPointer:zA(r,i,0!==e),destructorFunction:null})},c:function(A,r,f){var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][r];function i(A){var r=v,f=r[A>>=2],i=r[A+1];return new e(r.buffer,i,f)}wA(A,{name:f=L(f),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},n:function(A,r){var f="std::string"===(r=L(r));wA(A,{name:r,fromWireType:function(A){var r,e,i=v[A>>2],n=A+4;if(f)for(var a=n,t=0;t<=i;++t){var o=n+t;if(t==i||0==l[o]){var c=(e=a)?LA(l,e,o-a):"";void 0===r?r=c:(r+=String.fromCharCode(0),r+=c),a=o+1}}else{var b=new Array(i);for(t=0;t>2]=e,f&&i)PA(r,l,a,e+1);else if(i)for(var t=0;t255&&(kr(a),j("String has UTF-16 code units that do not fit in 8 bits")),l[a+t]=o}else for(t=0;tk,t=1):4===r&&(e=Ar,i=rr,a=fr,n=()=>v,t=2),wA(A,{name:f,fromWireType:function(A){for(var f,i=v[A>>2],a=n(),o=A+4,c=0;c<=i;++c){var b=A+4+c*r;if(c==i||0==a[b>>t]){var u=e(o,b-o);void 0===f?f=u:(f+=String.fromCharCode(0),f+=u),o=b+r}}return kr(A),f},toWireType:function(A,e){"string"!=typeof e&&j(`Cannot pass non-string to C++ string type ${f}`);var n=a(e),o=sr(4+n+r);return v[o>>2]=n>>t,i(e,o+4,n+r),null!==A&&A.push(kr,o),o},argPackAdvance:8,readValueFromPointer:RA,destructorFunction:function(A){kr(A)}})},v:function(A,r){wA(A,{isVoid:!0,name:r=L(r),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},d:function(A,r,f,e){var i,n;(A=ir[A])(r=z(r),f=void 0===(n=er[i=f])?L(i):n,null,e)},f:TA,e:function(A,r){var f=nr(A,r),e=f[0],i=e.name+"_$"+f.slice(1).map((function(A){return A.name})).join("_")+"$",n=ar[i];if(void 0!==n)return n;var a,t,o=new Array(A-1);return a=(r,i,n,a)=>{for(var t=0,c=0;c4&&(I.get(A).refcount+=1)},k:function(){V("")},s:function(A,r,f){l.copyWithin(A,r,r+f)},r:function(A){var r=l.length,f=2147483648;if((A>>>=0)>f)return!1;for(var e,i=1;i<=4;i*=2){var n=r*(1+.2/i);if(n=Math.min(n,A+100663296),tr(Math.min(f,(e=Math.max(A,n))+(65536-e%65536)%65536)))return!0}return!1},a:c};!function(){var A,r,i,n,a={a:ur};function c(A){var r,f=A.exports;return e.asm=f,G=e.asm.z,r=e.asm.w,E.unshift(r),Y(),f}if(F++,e.monitorRunDependencies&&e.monitorRunDependencies(F),e.instantiateWasm)try{return e.instantiateWasm(a,c)}catch(A){o("Module.instantiateWasm callback failed with error: "+A),f(A)}(A=t,r=g,i=a,n=function(A){c(A.instance)},A||"function"!=typeof b.instantiateStreaming||D(r)||"function"!=typeof fetch?x(r,i,n):fetch(r,{credentials:"same-origin"}).then((A=>b.instantiateStreaming(A,i).then(n,(function(A){return o("wasm streaming compile failed: "+A),o("falling back to ArrayBuffer instantiation"),x(r,i,n)}))))).catch(f)}();var lr,sr=function(){return(sr=e.asm.x).apply(null,arguments)},kr=function(){return(kr=e.asm.y).apply(null,arguments)},dr=function(){return(dr=e.asm.A).apply(null,arguments)};function vr(){function A(){lr||(lr=!0,e.calledRun=!0,w||(y(E),r(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),p()))}F>0||(N(),F>0||(e.setStatus?(e.setStatus("Running..."),setTimeout((function(){setTimeout((function(){e.setStatus("")}),1),A()}),1)):A()))}if(e.__embind_initialize_bindings=function(){return(e.__embind_initialize_bindings=e.asm.B).apply(null,arguments)},R=function A(){lr||vr(),lr||(R=A)},e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return vr(),A.ready},e.exports=n;var t=a.exports;A("b",f({__proto__:null,default:r(t)},[t]))}}})); diff --git a/build/web-mobile/cocos-js/bullet.release.wasm-CDcKKiom.js b/build/web-mobile/cocos-js/bullet.release.wasm-CDcKKiom.js new file mode 100644 index 0000000..ebb2e01 --- /dev/null +++ b/build/web-mobile/cocos-js/bullet.release.wasm-CDcKKiom.js @@ -0,0 +1 @@ +System.register(["./_virtual_cc-tJPAyuI0.js"],(function(t){"use strict";var e,r;return{setters:[function(t){e=t.g,r=t._}],execute:function(){function n(t,e){return e.forEach((function(e){e&&"string"!=typeof e&&!Array.isArray(e)&&Object.keys(e).forEach((function(r){if("default"!==r&&!(r in t)){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}))})),Object.freeze(t)}var i,o,a,s={exports:{}};i=s,o="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,a=function(t){void 0===t&&(t={});var e,n,i=void 0!==t?t:{};i.ready=new Promise((function(t,r){e=t,n=r}));var a=Object.assign({},i),s="";"undefined"!=typeof document&&document.currentScript&&(s=document.currentScript.src),o&&(s=o),s=0!==s.indexOf("blob:")?s.substr(0,s.replace(/[?#].*/,"").lastIndexOf("/")+1):"",i.print||console.log.bind(console);var u,c,l=i.printErr||console.error.bind(console);Object.assign(i,a),a=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(u=i.wasmBinary),i.noExitRuntime,"object"!=typeof WebAssembly&&F("no native wasm support detected");var f,p,d,h,v,y,m,g,b,$=!1;function w(){var t=c.buffer;i.HEAP8=f=new Int8Array(t),i.HEAP16=d=new Int16Array(t),i.HEAP32=v=new Int32Array(t),i.HEAPU8=p=new Uint8Array(t),i.HEAPU16=h=new Uint16Array(t),i.HEAPU32=y=new Uint32Array(t),i.HEAPF32=m=new Float32Array(t),i.HEAPF64=g=new Float64Array(t)}var C=[],P=[],T=[];function A(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)t=i.preRun.shift(),C.unshift(t);var t;U(C)}function O(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)t=i.postRun.shift(),T.unshift(t);var t;U(T)}var _,S,k=0,E=null;function W(){if(k--,i.monitorRunDependencies&&i.monitorRunDependencies(k),0==k&&E){var t=E;E=null,t()}}function F(t){i.onAbort&&i.onAbort(t),l(t="Aborted("+t+")"),$=!0,t+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(t);throw n(e),e}function j(t){return t.startsWith("data:application/octet-stream;base64,")}function R(t){try{if(t==_&&u)return new Uint8Array(u);throw"both async and sync fetching of the wasm failed"}catch(t){F(t)}}function D(t){return u||"function"!=typeof fetch?Promise.resolve().then((function(){return R(t)})):fetch(t,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+t+"'";return e.arrayBuffer()})).catch((function(){return R(t)}))}function I(t,e,r){return D(t).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(t){return t})).then(r,(function(t){l("failed to asynchronously prepare wasm: "+t),F(t)}))}function U(t){for(;t.length>0;)t.shift()(i)}function x(t){if(void 0===t)return"_unknown";var e=(t=t.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return e>=48&&e<=57?"_"+t:t}function V(t,e){var r;return(r={},r[t=x(t)]=function(){return e.apply(this,arguments)},r)[t]}j(_="bullet.release.wasm.wasm")||(S=_,_=i.locateFile?i.locateFile(S,s):s+S);var z=new function(){this.allocated=[void 0],this.freelist=[],this.get=function(t){return this.allocated[t]},this.has=function(t){return void 0!==this.allocated[t]},this.allocate=function(t){var e=this.freelist.pop()||this.allocated.length;return this.allocated[e]=t,e},this.free=function(t){this.allocated[t]=void 0,this.freelist.push(t)}};function B(t,e){var r=V(e,(function(t){this.name=e,this.message=t;var r=new Error(t).stack;void 0!==r&&(this.stack=this.toString()+"\n"+r.replace(/^Error(:[^\n]*)?\n/,""))}));return r.prototype=Object.create(t.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var H=void 0;function M(t){throw new H(t)}var q=function(t){return t||M("Cannot use deleted val. handle = "+t),z.get(t).value},G=function(t){switch(t){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return z.allocate({refcount:1,value:t})}},L=void 0,N=void 0;function J(t){for(var e="",r=t;p[r];)e+=N[p[r++]];return e}var Z=[];function K(){for(;Z.length;){var t=Z.pop();t.$$.deleteScheduled=!1,t.delete()}}var Q=void 0;var X={};function Y(t,e){for(void 0===e&&M("ptr should not be undefined");t.baseClass;)e=t.upcast(e),t=t.baseClass;return e}var tt={};function et(t){var e=fe(t),r=J(e);return le(e),r}function rt(t,e){var r=tt[t];return void 0===r&&M(e+" has unknown type "+et(t)),r}function nt(){}var it=!1;function ot(t){t.smartPtr?t.smartPtrType.rawDestructor(t.smartPtr):t.ptrType.registeredClass.rawDestructor(t.ptr)}function at(t){t.count.value-=1,0===t.count.value&&ot(t)}function st(t,e,r){if(e===r)return t;if(void 0===r.baseClass)return null;var n=st(t,e,r.baseClass);return null===n?null:r.downcast(n)}var ut={};function ct(t,e){return e=Y(t,e),X[e]}var lt=void 0;function ft(t){throw new lt(t)}function pt(t,e){return e.ptrType&&e.ptr||ft("makeClassHandle requires ptr and ptrType"),!!e.smartPtrType!=!!e.smartPtr&&ft("Both smartPtrType and smartPtr must be specified"),e.count={value:1},dt(Object.create(t,{$$:{value:e}}))}function dt(t){return"undefined"==typeof FinalizationRegistry?(dt=function(t){return t},t):(it=new FinalizationRegistry((function(t){at(t.$$)})),dt=function(t){var e=t.$$;if(e.smartPtr){var r={$$:e};it.register(t,r,t)}return t},nt=function(t){return it.unregister(t)},dt(t))}function ht(t){switch(t){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+t)}}var vt={},yt={};function mt(t,e,r){function n(e){var n=r(e);n.length!==t.length&&ft("Mismatched type converter count");for(var i=0;i>2])}function kt(t,e,r,n,i,o,a,s,u,c,l){this.name=t,this.registeredClass=e,this.isReference=r,this.isConst=n,this.isSmartPointer=i,this.pointeeType=o,this.sharingPolicy=a,this.rawGetPointee=s,this.rawConstructor=u,this.rawShare=c,this.rawDestructor=l,i||void 0!==e.baseClass?this.toWireType=Ot:n?(this.toWireType=At,this.destructorFunction=null):(this.toWireType=_t,this.destructorFunction=null)}function Et(t,e,r){i.hasOwnProperty(t)||ft("Replacing nonexistant public symbol"),void 0!==i[t].overloadTable&&void 0!==r?i[t].overloadTable[r]=e:(i[t]=e,i[t].argCount=r)}function Wt(t,e,r){var n=i["dynCall_"+t];return r&&r.length?n.apply(null,[e].concat(r)):n.call(null,e)}var Ft=[];function jt(t){var e=Ft[t];return e||(t>=Ft.length&&(Ft.length=t+1),Ft[t]=e=b.get(t)),e}function Rt(t,e,r){return t.includes("j")?Wt(t,e,r):jt(e).apply(null,r)}function Dt(t,e){var r,n,i,o=(t=J(t)).includes("j")?(r=t,n=e,i=[],function(){return i.length=0,Object.assign(i,arguments),Rt(r,n,i)}):jt(e);return"function"!=typeof o&&M("unknown function pointer with signature "+t+": "+e),o}var It=void 0;function Ut(t,e){var r=[],n={};throw e.forEach((function t(e){n[e]||tt[e]||(yt[e]?yt[e].forEach(t):(r.push(e),n[e]=!0))})),new It(t+": "+r.map(et).join([", "]))}function xt(t){for(;t.length;){var e=t.pop();t.pop()(e)}}function Vt(t,e,r,n,i){var o=e.length;o<2&&M("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==e[1]&&null!==r,s=!1,u=1;u>2]);return r}function Bt(t){t>=z.reserved&&0==--z.get(t).refcount&&z.free(t)}function Ht(t){if(null===t)return"null";var e=typeof t;return"object"===e||"array"===e||"function"===e?t.toString():""+t}function Mt(t,e){switch(e){case 2:return function(t){return this.fromWireType(m[t>>2])};case 3:return function(t){return this.fromWireType(g[t>>3])};default:throw new TypeError("Unknown float type: "+t)}}function qt(t,e,r){switch(e){case 0:return r?function(t){return f[t]}:function(t){return p[t]};case 1:return r?function(t){return d[t>>1]}:function(t){return h[t>>1]};case 2:return r?function(t){return v[t>>2]}:function(t){return y[t>>2]};default:throw new TypeError("Unknown integer type: "+t)}}function Gt(t,e,r,n){if(!(n>0))return 0;for(var i=r,o=r+n-1,a=0;a=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&t.charCodeAt(++a)),s<=127){if(r>=o)break;e[r++]=s}else if(s<=2047){if(r+1>=o)break;e[r++]=192|s>>6,e[r++]=128|63&s}else if(s<=65535){if(r+2>=o)break;e[r++]=224|s>>12,e[r++]=128|s>>6&63,e[r++]=128|63&s}else{if(r+3>=o)break;e[r++]=240|s>>18,e[r++]=128|s>>12&63,e[r++]=128|s>>6&63,e[r++]=128|63&s}}return e[r]=0,r-i}function Lt(t){for(var e=0,r=0;r=55296&&n<=57343?(e+=4,++r):e+=3}return e}var Nt="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function Jt(t,e,r){for(var n=e+r,i=e;t[i]&&!(i>=n);)++i;if(i-e>16&&t.buffer&&Nt)return Nt.decode(t.subarray(e,i));for(var o="";e>10,56320|1023&c)}}else o+=String.fromCharCode((31&a)<<6|s)}else o+=String.fromCharCode(a)}return o}var Zt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function Kt(t,e){for(var r=t,n=r>>1,i=n+e/2;!(n>=i)&&h[n];)++n;if((r=n<<1)-t>32&&Zt)return Zt.decode(p.subarray(t,r));for(var o="",a=0;!(a>=e/2);++a){var s=d[t+2*a>>1];if(0==s)break;o+=String.fromCharCode(s)}return o}function Qt(t,e,r){if(void 0===r&&(r=2147483647),r<2)return 0;for(var n=e,i=(r-=2)<2*t.length?r/2:t.length,o=0;o>1]=a,e+=2}return d[e>>1]=0,e-n}function Xt(t){return 2*t.length}function Yt(t,e){for(var r=0,n="";!(r>=e/4);){var i=v[t+4*r>>2];if(0==i)break;if(++r,i>=65536){var o=i-65536;n+=String.fromCharCode(55296|o>>10,56320|1023&o)}else n+=String.fromCharCode(i)}return n}function te(t,e,r){if(void 0===r&&(r=2147483647),r<4)return 0;for(var n=e,i=n+r-4,o=0;o=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&t.charCodeAt(++o)),v[e>>2]=a,(e+=4)+4>i)break}return v[e>>2]=0,e-n}function ee(t){for(var e=0,r=0;r=55296&&n<=57343&&++r,e+=4}return e}var re={},ne=[];function ie(t,e){for(var r=new Array(t),n=0;n>2],"parameter "+n);return r}var oe=[];function ae(t){var e=t-c.buffer.byteLength+65535>>>16;try{return c.grow(e),w(),1}catch(t){}}H=i.BindingError=B(Error,"BindingError"),z.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),z.reserved=z.allocated.length,i.count_emval_handles=function(){for(var t=0,e=z.reserved;e>o])},destructorFunction:null})},i:function(t,e,r,n,i,o,a,s,u,c,l,f,p){l=J(l),o=Dt(i,o),s&&(s=Dt(a,s)),c&&(c=Dt(u,c)),p=Dt(f,p);var d=x(l);Ct(d,(function(){Ut("Cannot construct "+l+" due to unbound types",[n])})),mt([t,e,r],n?[n]:[],(function(e){var r,i;e=e[0],i=n?(r=e.registeredClass).instancePrototype:$t.prototype;var a=V(d,(function(){if(Object.getPrototypeOf(this)!==u)throw new H("Use 'new' to construct "+l);if(void 0===f.constructor_body)throw new H(l+" has no accessible constructor");var t=f.constructor_body[arguments.length];if(void 0===t)throw new H("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(f.constructor_body).toString()+") parameters instead!");return t.apply(this,arguments)})),u=Object.create(i,{constructor:{value:a}});a.prototype=u;var f=new Pt(l,a,u,p,r,o,s,c);f.baseClass&&(void 0===f.baseClass.__derivedClasses&&(f.baseClass.__derivedClasses=[]),f.baseClass.__derivedClasses.push(f));var h=new kt(l,f,!0,!1,!1),v=new kt(l+"*",f,!1,!1,!1),y=new kt(l+" const*",f,!1,!0,!1);return ut[t]={pointerType:v,constPointerType:y},Et(d,a),[h,v,y]}))},h:function(t,e,n,i,o,a,s){var u=zt(n,i);e=J(e),a=Dt(o,a),mt([],[t],(function(t){var i=(t=t[0]).name+"."+e;function o(){Ut("Cannot call "+i+" due to unbound types",u)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]);var c=t.registeredClass.constructor;return void 0===c[e]?(o.argCount=n-1,c[e]=o):(wt(c,e,i),c[e].overloadTable[n-1]=o),mt([],u,(function(o){var u=[o[0],null].concat(o.slice(1)),l=Vt(i,u,null,a,s);if(void 0===c[e].overloadTable?(l.argCount=n-1,c[e]=l):c[e].overloadTable[n-1]=l,t.registeredClass.__derivedClasses)for(var f,p=r(t.registeredClass.__derivedClasses);!(f=p()).done;){var d=f.value;d.constructor.hasOwnProperty(e)||(d.constructor[e]=l)}return[]})),[]}))},g:function(t,e,r,n,i,o,a,s){var u=zt(r,n);e=J(e),o=Dt(i,o),mt([],[t],(function(t){var n=(t=t[0]).name+"."+e;function i(){Ut("Cannot call "+n+" due to unbound types",u)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]),s&&t.registeredClass.pureVirtualFunctions.push(e);var c=t.registeredClass.instancePrototype,l=c[e];return void 0===l||void 0===l.overloadTable&&l.className!==t.name&&l.argCount===r-2?(i.argCount=r-2,i.className=t.name,c[e]=i):(wt(c,e,n),c[e].overloadTable[r-2]=i),mt([],u,(function(i){var s=Vt(n,i,t,o,a);return void 0===c[e].overloadTable?(s.argCount=r-2,c[e]=s):c[e].overloadTable[r-2]=s,[]})),[]}))},s:function(t,e){gt(t,{name:e=J(e),fromWireType:function(t){var e=q(t);return Bt(t),e},toWireType:function(t,e){return G(e)},argPackAdvance:8,readValueFromPointer:St,destructorFunction:null})},n:function(t,e,r){var n=ht(r);gt(t,{name:e=J(e),fromWireType:function(t){return t},toWireType:function(t,e){return e},argPackAdvance:8,readValueFromPointer:Mt(e,n),destructorFunction:null})},a:function(t,e,r,n,i,o){var a=zt(e,r);t=J(t),i=Dt(n,i),Ct(t,(function(){Ut("Cannot call "+t+" due to unbound types",a)}),e-1),mt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return Et(t,Vt(t,n,null,i,o),e-1),[]}))},f:function(t,e,r,n){e=J(e);var i=ht(r),o=function(t){return t};if(0===n){var a=32-8*r;o=function(t){return t<>>a}}var s=e.includes("unsigned");gt(t,{name:e,fromWireType:o,toWireType:s?function(t,e){return this.name,e>>>0}:function(t,e){return this.name,e},argPackAdvance:8,readValueFromPointer:qt(e,i,0!==n),destructorFunction:null})},b:function(t,e,r){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];function i(t){var e=y,r=e[t>>=2],i=e[t+1];return new n(e.buffer,i,r)}gt(t,{name:r=J(r),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},m:function(t,e){var r="std::string"===(e=J(e));gt(t,{name:e,fromWireType:function(t){var e,n,i=y[t>>2],o=t+4;if(r)for(var a=o,s=0;s<=i;++s){var u=o+s;if(s==i||0==p[u]){var c=(n=a)?Jt(p,n,u-a):"";void 0===e?e=c:(e+=String.fromCharCode(0),e+=c),a=u+1}}else{var l=new Array(i);for(s=0;s>2]=n,r&&i)Gt(e,p,a,n+1);else if(i)for(var s=0;s255&&(le(a),M("String has UTF-16 code units that do not fit in 8 bits")),p[a+s]=u}else for(s=0;s>2],a=o(),u=t+4,c=0;c<=i;++c){var l=t+4+c*e;if(c==i||0==a[l>>s]){var f=n(u,l-u);void 0===r?r=f:(r+=String.fromCharCode(0),r+=f),u=l+e}}return le(t),r},toWireType:function(t,n){"string"!=typeof n&&M("Cannot pass non-string to C++ string type "+r);var o=a(n),u=ce(4+o+e);return y[u>>2]=o>>s,i(n,u+4,o+e),null!==t&&t.push(le,u),u},argPackAdvance:8,readValueFromPointer:St,destructorFunction:function(t){le(t)}})},u:function(t,e){gt(t,{isVoid:!0,name:e=J(e),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},c:function(t,e,r,n){var i,o;(t=ne[t])(e=q(e),r=void 0===(o=re[i=r])?J(i):o,null,n)},e:Bt,d:function(t,e){var r=ie(t,e),n=r[0],i=n.name+"_$"+r.slice(1).map((function(t){return t.name})).join("_")+"$",o=oe[i];if(void 0!==o)return o;var a,s,u=new Array(t-1);return a=function(e,i,o,a){for(var s=0,c=0;c4&&(z.get(t).refcount+=1)},j:function(){F("")},r:function(t,e,r){p.copyWithin(t,e,e+r)},q:function(t){var e=p.length,r=2147483648;if((t>>>=0)>r)return!1;for(var n,i=1;i<=4;i*=2){var o=e*(1+.2/i);if(o=Math.min(o,t+100663296),ae(Math.min(r,(n=Math.max(t,o))+(65536-n%65536)%65536)))return!0}return!1}};!function(){var t,e,r,o,a={a:se};function s(t){var e,r=t.exports;return i.asm=r,c=i.asm.v,w(),b=i.asm.z,e=i.asm.w,P.unshift(e),W(),r}if(k++,i.monitorRunDependencies&&i.monitorRunDependencies(k),i.instantiateWasm)try{return i.instantiateWasm(a,s)}catch(t){l("Module.instantiateWasm callback failed with error: "+t),n(t)}(t=u,e=_,r=a,o=function(t){s(t.instance)},t||"function"!=typeof WebAssembly.instantiateStreaming||j(e)||"function"!=typeof fetch?I(e,r,o):fetch(e,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,r).then(o,(function(t){return l("wasm streaming compile failed: "+t),l("falling back to ArrayBuffer instantiation"),I(e,r,o)}))}))).catch(n)}();var ue,ce=function(){return(ce=i.asm.x).apply(null,arguments)},le=function(){return(le=i.asm.y).apply(null,arguments)},fe=function(){return(fe=i.asm.A).apply(null,arguments)};function pe(){function t(){ue||(ue=!0,i.calledRun=!0,$||(U(P),e(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),O()))}k>0||(A(),k>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),t()}),1)):t()))}if(i.__embind_initialize_bindings=function(){return(i.__embind_initialize_bindings=i.asm.B).apply(null,arguments)},E=function t(){ue||pe(),ue||(E=t)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return pe(),t.ready},i.exports=a;var u=s.exports,c=e(u);t("b",n({__proto__:null,default:c},[u]))}}})); diff --git a/build/web-mobile/cocos-js/bullet.release.wasm-vGDNSL-o.js b/build/web-mobile/cocos-js/bullet.release.wasm-vGDNSL-o.js new file mode 100644 index 0000000..a0e3e82 --- /dev/null +++ b/build/web-mobile/cocos-js/bullet.release.wasm-vGDNSL-o.js @@ -0,0 +1 @@ +System.register([],(function(e){"use strict";return{execute:function(){e("default","assets/bullet.release.wasm-BWZhVGCB.wasm")}}})); diff --git a/build/web-mobile/cocos-js/cc.js b/build/web-mobile/cocos-js/cc.js index edcb94d..ce1c8a0 100644 --- a/build/web-mobile/cocos-js/cc.js +++ b/build/web-mobile/cocos-js/cc.js @@ -1 +1 @@ -System.register([],(function(e,t){"use strict";return{execute:function(){function n(e,t){const n="undefined"==typeof window?global:window;return void 0===n[e]?n[e]=t:n[e]}e({BitMask:mt,CCClass:En,Enum:yt,Eventify:jn,WorldNode3DToLocalNodeUI:kh,WorldNode3DToWorldNodeUI:zh,__checkObsoleteInNamespace__:function(e){return ga||(ga="undefined"==typeof Proxy?{}:new Proxy(e,{get:function(e,t,n){return ba(t),Reflect.get(e,t,n)}})),ga},__checkObsolete__:function(e){for(var t,n=S(e);!(t=n()).done;)ba(t.value)},_resetDebugSetting:G,absMax:Ka,absMaxComponent:Ya,applyMixins:function(e,t){t.forEach((function(t){Object.getOwnPropertyNames(t.prototype).forEach((function(n){"constructor"!==n&&Object.defineProperty(e.prototype,n,Object.getOwnPropertyDescriptor(t.prototype,n))}))}))},approx:Ba,assert:z,assertID:$,assertIsNonNullable:function(){},assertIsTrue:function(){},assertsArrayIndex:gt,bezier:pp,bezierByTime:Bp,binarySearch:function(e,t){return yl(e,t,0)},binarySearchBy:function(e,t,n){for(var i=0,r=e.length-1,s=r>>>1;i<=r;s=i+r>>>1){var a=e[s];if(n(a,t)<0)r=s-1;else{if(!(n(a,t)>0))return s;i=s+1}}return~i},binarySearchEpsilon:yl,ccenum:Tt,clamp:Da,clamp01:Pa,color:jo,createDefaultPipeline:sU,debug:U,debugID:q,deprecateModuleExportedName:ya,deserialize:Yy,enumerableProps:Qa,equals:Oa,error:k,errorID:Z,find:jB,flattenCodeArray:A_,floatToHalf:to,formerlySerializedAs:Kl,getError:te,getSerializationMetadata:function(e){return e[ql]},halfToFloat:no,instantiate:JM,inverseLerp:qa,isCCClassOrFastDefined:In,isCCObject:Ln,isDisplayStats:ne,isValid:Nn,lerp:Ma,log:L,logID:j,mat4:Bu,murmurhash2_32_gc:Hs,nextPow2:Wa,pingPong:Xa,pseudoRandom:Ga,pseudoRandomRange:Va,pseudoRandomRangeInt:Ha,quat:yu,random:Na,randomRange:za,randomRangeInt:Ua,rect:$u,repeat:ja,setDefaultLogTimes:function(e){e>0&&(pa=e)},setDisplayStats:ie,setPropertyEnumType:function(e,t,n){fn(Yt(e),t,n)},setPropertyEnumTypeOnAttrs:fn,setRandGenerator:ka,shift:function(e,t,n){if(gt(e,t),gt(e,n),t===n)return e;var i=e[t];if(te.length)&&(t=e.length);for(var n=0,i=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function x(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t);if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function E(e){var t=x(e,"string");return"symbol"==typeof t?t:String(t)}function I(e,t,n,i,r){var s={};return Object.keys(i).forEach((function(e){s[e]=i[e]})),s.enumerable=!!s.enumerable,s.configurable=!!s.configurable,("value"in s||s.initializer)&&(s.writable=!0),s=n.slice().reverse().reduce((function(n,i){return i(e,t,n)||n}),s),r&&void 0!==s.initializer&&(s.value=s.initializer?s.initializer.call(r):void 0,s.initializer=void 0),void 0===s.initializer&&(Object.defineProperty(e,t,s),s=null),s}a.ccwindow=h;var A=h.document,R="https://github.com/cocos/cocos-engine/blob/"+c+"/EngineErrorMap.md",C=null,O=console.log.bind(console),B=O,D=O,P=function(e,t){if(!e){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r2?n-2:0),r=2;r4){var t=function(e){if(u.game.canvas){if(!C){var t=A.createElement("Div");t.setAttribute("id","logInfoDiv"),t.setAttribute("width","200");var n=u.game.canvas.height;t.setAttribute("height",""+n);var i=t.style;i.zIndex="99999",i.position="absolute",i.top=i.left="0",(C=A.createElement("textarea")).setAttribute("rows","20"),C.setAttribute("cols","30"),C.setAttribute("disabled","true");var r=C.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="0px",t.appendChild(C),u.game.canvas.parentNode.appendChild(t)}C.value=C.value+e+"\r\n",C.scrollTop=C.scrollHeight}};D=function(){t("ERROR : "+F.apply(void 0,arguments))},P=function(e,n){if(!e){for(var i=arguments.length,r=new Array(i>2?i-2:0),s=2;s2?n-2:0),r=2;r1?i-1:0),s=1;s1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i2?n-2:0),r=2;r1?t-1:0),i=1;i65535)<<4,t|=n=((e>>>=t)>255)<<3,t|=n=((e>>>=n)>15)<<2,(t|=n=((e>>>=n)>3)<<1)|(e>>>=n)>>1}function oe(e){return 16843009*((e=(858993459&(e-=e>>>1&1431655765))+(e>>>2&858993459))+(e>>>4)&252645135)>>>24}function ue(e){var t=32;return(e&=-e)&&t--,65535&e&&(t-=16),16711935&e&&(t-=8),252645135&e&&(t-=4),858993459&e&&(t-=2),1431655765&e&&(t-=1),t}function ce(e){return--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,1+(e|=e>>>16)}var he=new Array(256);!function(e){for(var t=0;t<256;++t){var n=t,i=t,r=7;for(n>>>=1;n;n>>>=1)i<<=1,i|=1&n,--r;e[t]=i<>31;return(e^t)-t},countTrailingZeros:ue,deinterleave2:function(e,t){return(e=65535&((e=16711935&((e=252645135&((e=858993459&((e=e>>>t&1431655765)|e>>>1))|e>>>2))|e>>>4))|e>>>16))<<16>>16},deinterleave3:function(e,t){return(e=1023&((e=4278190335&((e=251719695&((e=3272356035&((e=e>>>t&1227133513)|e>>>2))|e>>>4))|e>>>8))|e>>>16))<<22>>22},interleave2:function(e,t){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))<<1},interleave3:function(e,t,n){return e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2),(e|=(t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2))<<1)|(n=1227133513&((n=3272356035&((n=251719695&((n=4278190335&((n&=1023)|n<<16))|n<<8))|n<<4))|n<<2))<<2},isPow2:function(e){return!(e&e-1||!e)},log10:function(e){return e>=1e9?9:e>=1e8?8:e>=1e7?7:e>=1e6?6:e>=1e5?5:e>=1e4?4:e>=1e3?3:e>=100?2:e>=10?1:0},log2:ae,max:se,min:function(e,t){return t^(e^t)&-(e>>ue(e)+1},nextPow2:ce,parity:function(e){return e^=e>>>16,e^=e>>>8,e^=e>>>4,27030>>>(e&=15)&1},popCount:oe,prevPow2:function(e){return e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,(e|=e>>>16)-(e>>>1)},reverse:function(e){return he[255&e]<<24|he[e>>>8&255]<<16|he[e>>>16&255]<<8|he[e>>>24&255]},sign:function(e){return(e>0)-(e<0)}});e("bits",le);var fe=function(){function e(e){this.i=0,this.array=e}var t=e.prototype;return t.remove=function(e){var t=this.array.indexOf(e);t>=0&&this.removeAt(t)},t.removeAt=function(e){this.array.splice(e,1),e<=this.i&&--this.i},t.fastRemove=function(e){var t=this.array.indexOf(e);t>=0&&this.fastRemoveAt(t)},t.fastRemoveAt=function(e){var t=this.array;t[e]=t[t.length-1],--t.length,e<=this.i&&--this.i},t.push=function(e){this.array.push(e)},f(e,[{key:"length",get:function(){return this.array.length},set:function(e){this.array.length=e,this.i>=e&&(this.i=e-1)}}]),e}();function de(e,t){e.splice(t,1)}function pe(e,t){var n=e.length;t<0||t>=n||(e[t]=e[n-1],e.length=n-1)}function _e(e,t){var n=e.indexOf(t);return n>=0&&(de(e,n),!0)}function me(e,t){var n=e.indexOf(t);n>=0&&(e[n]=e[e.length-1],--e.length)}var ge,ve=Object.freeze({__proto__:null,MutableForwardIterator:fe,appendObjectsAt:function(e,t,n){return e.splice.apply(e,[n,0].concat(t)),e},contains:function(e,t){return e.indexOf(t)>=0},copy:function(e){for(var t=e.length,n=new Array(t),i=0;i=0){var i=e[n];return de(e,n),i}},verifyType:function(e,t){if(e&&e.length>0)for(var n,i=S(e);!(n=i()).done;)if(!(n.value instanceof t))return j(1300),!1;return!0}}),ye=function(){function e(){this._poolHandle=-1,we.addContainer(this)}return e.prototype.destroy=function(){we.removeContainer(this)},e}(),be=function(){function e(){this._pools=[],this._lastShrinkPassed=0,this.shrinkTimeSpan=5}var t=e.prototype;return t.addContainer=function(e){-1===e._poolHandle&&(e._poolHandle=this._pools.length,this._pools.push(e))},t.removeContainer=function(e){-1!==e._poolHandle&&(this._pools[this._pools.length-1]._poolHandle=e._poolHandle,pe(this._pools,e._poolHandle),e._poolHandle=-1)},t.tryShrink=function(){for(var e=0;ethis.shrinkTimeSpan&&(this.tryShrink(),this._lastShrinkPassed-=this.shrinkTimeSpan)},e}(),we=new be,Te=e("Pool",function(e){function t(t,n,i,r){var s;(s=e.call(this)||this)._freePool=[],s._ctor=t,s._dtor=i||null,s._elementsPerBatch=Math.max(n,1),s._shrinkThreshold=r?se(r,1):s._elementsPerBatch,s._nextAvail=s._elementsPerBatch-1;for(var a=0;a>1>=this._shrinkThreshold?e>>1:Math.floor((e-this._shrinkThreshold+1)/2),this._dtor)for(var n=this._nextAvail-t+1;n<=this._nextAvail;++n)this._dtor(this._freePool[n]);this._nextAvail-=t,this._freePool.length=this._nextAvail+1}},n.destroy=function(){var t=arguments.length>0?arguments[0]:null;t&&K(14100);var n=t||this._dtor;if(n)for(var i=0;i<=this._nextAvail;i++)n(this._freePool[i]);this._freePool.length=0,this._nextAvail=-1,e.prototype.destroy.call(this)},t}(ye)),Se=e("RecyclePool",function(e){function t(t,n,i){var r;(r=e.call(this)||this)._count=0,r._fn=t,r._dtor=i||null,r._data=new Array(n),r._initSize=n;for(var s=0;sthis._data.length)for(var t=this._data.length;t=this._data.length&&this.resize(this._data.length<<1),this._data[this._count++]},n.destroy=function(){if(this._dtor)for(var t=0;t>2>this._count){var e=Math.max(this._initSize,this._data.length>>1);if(this._dtor)for(var t=e;t=this._count)){var t=this._count-1,n=this._data[e];this._data[e]=this._data[t],this._data[t]=n,this._count-=1}},f(t,[{key:"length",get:function(){return this._count}},{key:"data",get:function(){return this._data}}]),t}(ye)),xe=e("CachedArray",function(e){function t(t,n){var i;return(i=e.call(this)||this).length=0,i._initSize=0,i.array=new Array(t),i._initSize=t,i._compareFn=n,i}p(t,e);var n=t.prototype;return n.push=function(e){this.array[this.length++]=e},n.pop=function(){return this.array[--this.length]},n.get=function(e){return this.array[e]},n.clear=function(){this.length=0},n.destroy=function(){this.length=0,this.array.length=0,e.prototype.destroy.call(this)},n.tryShrink=function(){this.array.length>>2>this.length&&(this.array.length=Math.max(this._initSize,this.array.length>>1))},n.sort=function(){this.array.length=this.length,this.array.sort(this._compareFn)},n.concat=function(e){for(var t=0;t=this.length||e<0)){var t=--this.length;this.array[e]=this.array[t]}},n.indexOf=function(e){for(var t=0,n=this.length;t1?t-1:0),i=1;i0){--this.count;var e=this._pool[this.count];return this._pool[this.count]=null,e}return null},e.put=function(e){var t=this._pool;if(this.count=0&&(this._pool.length=e,this.count>e&&(this.count=e))},t}(),pt={IDGenerator:Ee,Pool:dt,array:ve,isNumber:Oe,isString:Be,isEmptyObject:De,getPropertyDescriptor:Xe,addon:Ye,mixin:Ke,extend:Qe,getSuper:Ze,isChildClassOf:Je,clear:$e,value:Me,getset:Fe,get:Le,set:Ne,unregisterClass:ot,getClassName:ze,setClassName:st,setClassAlias:at,getClassByName:ht,getClassById:ct,get _registeredClassNames(){return d({},tt)},set _registeredClassNames(e){$e(tt),Object.assign(tt,e)},get _registeredClassIds(){return d({},et)},set _registeredClassIds(e){$e(et),Object.assign(et,e)},_getClassId:lt,getClassId:ft,_setClassId:it,_getClassById:ut,obsolete:Ue,obsoletes:Ge,formatStr:We,shiftArguments:je,createMap:ke};u.js=pt;var _t=Object.freeze({__proto__:null,IDGenerator:Ee,Pool:dt,_getClassById:ut,_getClassId:lt,_idToClass:et,_nameToClass:tt,_setClassId:it,addon:Ye,array:ve,clear:$e,copyAllProperties:function(e,t,n){for(var i=Object.getOwnPropertyNames(e),r=0,s=i.length;r=0&&e.length,e.length}e("js",_t),mt.isBitMask=function(e){return e&&Object.prototype.hasOwnProperty.call(e,"__bitmask__")},mt.getList=function(e){return e.__bitmask__?e.__bitmask__:mt.update(e)},mt.update=function(e){Array.isArray(e.__bitmask__)||(e.__bitmask__=[]);var t=e.__bitmask__;for(var n in t.length=0,e){var i=e[n];Number.isInteger(i)&&t.push({name:n,value:i})}return t.sort((function(e,t){return e.value-t.value})),t},u.BitMask=mt;var vt=Object.prototype.hasOwnProperty;function yt(e){return"__enums__"in e?e:(Me(e,"__enums__",null,!0),yt.update(e))}function bt(e){vt.call(e,"__enums__")}function wt(e){bt(e);var t=e.__enums__||[];t.length=0;var n=!0;for(var i in e){var r=e[i],s=Number.isInteger(r);s||(n=!1),(s||"string"==typeof r&&e[r]!==Number.parseInt(i))&&t.push({name:i,value:r})}return n&&t.sort((function(e,t){return e.value-t.value})),e.__enums__=t,t}function Tt(e){"__enums__"in e||Me(e,"__enums__",null,!0)}yt.update=function(e){for(var t=-1,n=Object.keys(e),i=0;i2?n-2:0),r=2;r1?t-1:0),i=1;in){var i=t;t=n,n=i}return e=0;i--){var r=n[i];r.hasOwnProperty("__attrs__")&&r.__attrs__||jt(r,(t=n[i+1])&&t.__attrs__)}return jt(e,(t=n[0])&&t.__attrs__),e.__attrs__}function qt(e,t){var n=Yt(e),i=t+Wt,r={};for(var s in n)s.startsWith(i)&&(r[s.slice(i.length)]=n[s]);return r}function Yt(e){return e.hasOwnProperty("__attrs__")&&e.__attrs__||Xt(e)}function Kt(e,t,n,i){Yt(e)[t+Wt+n]=i}var Qt=function(){function e(e,t){this.name=e,this.default=t}return e.prototype.toString=function(){return this.name},e}(),Zt=e("CCInteger",new Qt("Integer",0));u.Integer=Zt,u.CCInteger=Zt;var Jt=e("CCFloat",new Qt("Float",0));u.Float=Jt,u.CCFloat=Jt;var $t=e("CCBoolean",new Qt("Boolean",!1));u.Boolean=$t,u.CCBoolean=$t;var en=e("CCString",new Qt("String",""));function tn(e,t){return function(n,i){var r='"'+ze(n)+"."+i+'"',s=qt(n,i),a=s.type;if(a===Zt||a===Jt?a="Number":a!==en&&a!==$t||(a=""+a),a===e){if(s.hasOwnProperty("default")){var o=s.default;if(void 0!==o&&!Array.isArray(o)&&!Ut(o)){var u=typeof o,c=e.toLowerCase();if(u===c)if("object"===c){if(!o||o instanceof s.ctor)return;K(3605,r,ze(s.ctor))}else"Number"!==e&&K(3606,t,r,e);else{if("function"===u)return;e===en.default&&null==o?K(3607,r):K(3611,t,r,u)}delete s.type}}}else K(3604,r)}}u.String=en,u.CCString=en;var nn=Object.freeze({__proto__:null,CCBoolean:$t,CCFloat:Jt,CCInteger:Zt,CCString:en,DELIMETER:Wt,PrimitiveType:Qt,attr:qt,createAttrs:Xt,createAttrsSingle:jt,getClassAttrs:Yt,getObjTypeChecker_ET:function(e){return function(t,n){tn("Object","type")(t,n);var i=Yt(t)[n+Wt+"default"],r=u.Class.getDefault(i);if(!Array.isArray(r)&&Je(e,u.ValueType)){var s=ze(e),a=We('No need to specify the "type" of "%s.%s" because %s is a child class of ValueType.',ze(t),n,s);i?L(a):K(3612,a,s,ze(t),n,s)}}},getTypeChecker_ET:tn,setClassAttr:Kt}),rn={default:{},serializable:{},editorOnly:{},formerlySerializedAs:{}};function sn(e,t,n,i){if(!e.get&&!e.set&&e.hasOwnProperty("default")){var r="_N$"+t;e.get=function(){return this[r]},e.set=function(e){var t=this[r];this[r]=e,n.call(this,t)};var s={};for(var a in i[r]=s,rn){var o=rn[a];e.hasOwnProperty(a)&&(s[a]=e[a],o.canUsedInGet||delete e[a])}}}function an(e,t,n,i){if(Array.isArray(t)){if(!(t.length>0))return Z(5508,n,i);e.type=t=t[0]}"function"==typeof t&&(t===String?e.type=u.String:t===Boolean?e.type=u.Boolean:t===Number&&(e.type=u.Float))}function on(e,t,n){var i=e||void 0===t?{_short:!0}:{_short:!0,default:t};return n&&(i.type=n),i}function un(e,t){if(!e||e.constructor!==Object){if(Array.isArray(e)&&e.length>0)return on(t,[],e);if("function"==typeof e){var n=e;return on(t,Je(n,u.ValueType)?new n:null,n)}return e instanceof Qt?on(t,void 0,e):on(t,e)}return null}function cn(e,t){for(var n in e){var i=e[n],r=un(i,!1);if(r&&(i=e[n]=r),i){var s=i.notify;s&&sn(i,n,s,e),"type"in i&&an(i,i.type,t,n)}}}var hn=[];function ln(){return hn[hn.length-1]}function fn(e,t,n){e[""+t+Wt+"type"]="Enum",e[""+t+Wt+"enumList"]=yt.getList(n)}u._RF={push:function(e,t,n,i){void 0===n&&(n=t,t=""),hn.push({uuid:t,script:n,module:e,exports:e.exports,beh:null,importMeta:i})},pop:function(){var e=hn.pop(),t=e.module,n=t.exports;if(n===e.exports){for(var i in n)return;t.exports=n=e.cls}},peek:ln};var dn=Wt,pn="__ctors__",_n=e("ENUM_TAG","Enum"),mn=e("BITMASK_TAG","BitMask");function gn(e,t){e.indexOf(t)<0&&e.push(t)}function vn(e,t){gn(e.__props__,t)}function yn(e,t,n,i){vn(e,n),Rn(e,i,t,n)}function bn(e,t,n,i){var r=i.get;i.set,r&&(Rn(e,i,t,n),Kt(e,n,"serializable",!1))}function wn(e){return"function"==typeof e?e():e}function Tn(e,t,n){var i=n.ctor;return Me(i,pn,!0,!0),i.prototype,t&&(i.$super=t),st(e,i),i}function Sn(e,t,n){var i=u.Component,r=ln();if(r&&Je(t,i)){if(Je(r.cls,i))return Z(3615),null;e=e||r.script}var s=Tn(e,t,n);if(r)if(Je(t,i)){var a=r.uuid;a&&it(a,s),r.cls=s}else Je(r.cls,i)||(r.cls=s);return s}function xn(e,t,n,i){if(e.__props__=[],i&&i.__props__&&(e.__props__=i.__props__.slice()),n)for(var r in cn(n,t),n){var s=n[r];s.get||s.set?bn(e,t,r,s):yn(e,t,r,s)}var a=Yt(e);e.__values__=e.__props__.filter((function(e){return!1!==a[""+e+dn+"serializable"]}))}function En(e){var t=e.name,n=e.extends,i=Sn(t,n,e);t||(t=u.js.getClassName(i)),i._sealed=!0,n&&(n._sealed=!1),xn(i,t,e.properties,n);var r=e.editor;return r&&Je(n,u.Component)&&u.Component._registerEditorProps(i,r),i}function In(e){return null==e||null==e.hasOwnProperty?void 0:e.hasOwnProperty("__values__")}En._isCCClass=function(e){return null==e||null==e.hasOwnProperty?void 0:e.hasOwnProperty(pn)},En.fastDefine=function(e,t,n){st(e,t);for(var i=t.__props__=t.__values__=Object.keys(n),r=Yt(t),s=0;s=2&&((r||a())[s+"min"]=h[0],r[s+"max"]=h[1],h.length>2&&(r[s+"step"]=h[2])),c("step","number"),c("userData","object")}En.isArray=function(e){return e=wn(e),Array.isArray(e)},En.getDefault=wn,En.escapeForJS=function(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")},En.IDENTIFIER_RE=/^[A-Za-z_$][0-9A-Za-z_$]*$/,En.getNewValueTypeCode=function(e){for(var t=ze(e),n=e.constructor,i="new "+t+"(",r=0;r=0;--e)this.callbackInfos[e]||kn(this.callbackInfos,e);this.containCanceled=!1},t.clear=function(){this.cancelAll(),this.callbackInfos.length=0,this.isInvoking=!1,this.containCanceled=!1},e}(),Hn=new Te((function(){return new Vn}),16),Wn=e("CallbacksInvoker",function(){function e(){this._callbackTable=ke(!0),this._offCallback=void 0}var t=e.prototype;return t.on=function(e,t,n,i){if(!this.hasEventListener(e,t,n)){var r=this._callbackTable[e];r||(r=this._callbackTable[e]=Hn.alloc());var s=Gn.alloc();s.set(t,n,i),r.callbackInfos.push(s)}return t},t.hasEventListener=function(e,t,n){var i=this._callbackTable&&this._callbackTable[e];if(!i)return!1;var r=i.callbackInfos;if(!t){if(i.isInvoking){for(var s=0;s0}for(var a=0;a1)&&(h=!0,l="",f=0);var p=Qn.UNKNOWN;-1!==a.appVersion.indexOf("Win")?p=Qn.WINDOWS:h?p=Qn.IOS:-1!==a.appVersion.indexOf("Mac")?p=Qn.OSX:-1!==a.appVersion.indexOf("X11")&&-1===a.appVersion.indexOf("Linux")?p=Qn.LINUX:c?p=Qn.ANDROID:-1===a.appVersion.indexOf("Linux")&&-1===o.indexOf("ubuntu")||(p=Qn.LINUX),n.os=p,n.osVersion=l,n.osMainVersion=f,n.browserType=qn.UNKNOWN;var _=/wechat|weixin|micromessenger/i.exec(o)||/mqqbrowser|micromessenger|qqbrowser|sogou|qzone|liebao|maxthon|ucbs|360 aphone|360browser|baiduboxapp|baidubrowser|maxthon|mxbrowser|miuibrowser/i.exec(o)||/qq|qqbrowser|ucbrowser|ubrowser|edge|HuaweiBrowser/i.exec(o)||/chrome|safari|firefox|trident|opera|opr\/|oupeng/i.exec(o),m=_?_[0].toLowerCase():Qn.UNKNOWN;("safari"===m&&c||"qq"===m&&/android.*applewebkit/i.test(o))&&(m=qn.ANDROID);var g={micromessenger:qn.WECHAT,wechat:qn.WECHAT,weixin:qn.WECHAT,trident:qn.IE,edge:qn.EDGE,"360 aphone":qn.BROWSER_360,mxbrowser:qn.MAXTHON,"opr/":qn.OPERA,ubrowser:qn.UC,huaweibrowser:qn.HUAWEI};n.browserType=g[m]||m,n.browserVersion="";var v=/(mqqbrowser|micromessenger|qqbrowser|sogou|qzone|liebao|maxthon|uc|ucbs|360 aphone|360|baiduboxapp|baidu|maxthon|mxbrowser|miui(?:.hybrid)?)(mobile)?(browser)?\/?([\d.]+)/i.exec(o);v||(v=/(qq|chrome|safari|firefox|trident|opera|opr\/|oupeng)(mobile)?(browser)?\/?([\d.]+)/i.exec(o)),n.browserVersion=v?v[4]:"",n.isXR=!1;var y,b=document.createElement("canvas");b.getContext("2d");try{y=b.toDataURL("image/webp").startsWith("data:image/webp")}catch(e){y=!1}if(n.os===Qn.IOS){var w,T=null==(w=/ applewebkit\/(\d+)/.exec(o))?void 0:w[1];"string"==typeof T&&Number.parseInt(T)>=604&&(y=!0)}else if(n.browserType===qn.SAFARI){var S,x=null==(S=/ version\/(\d+)/.exec(o))?void 0:S[1];"string"==typeof x&&Number.parseInt(x)>=14&&(y=!0)}var E=void 0!==document.documentElement.ontouchstart||void 0!==document.ontouchstart||i,I=void 0!==document.documentElement.onmouseup||i,A=void 0!==navigator.xr,R=function(){if((n.os===Qn.IOS||n.os===Qn.OSX)&&/(OS 15_4)|(Version\/15.4)/.test(window.navigator.userAgent))return!1;try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0]));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){return!1}return!1}();return n._featureMap=((t={})[Jn.WEBP]=y,t[Jn.IMAGE_BITMAP]=!1,t[Jn.WEB_VIEW]=!0,t[Jn.VIDEO_PLAYER]=!0,t[Jn.SAFE_AREA]=!1,t[Jn.HPE]=!1,t[Jn.INPUT_TOUCH]=E,t[Jn.EVENT_KEYBOARD]=void 0!==document.documentElement.onkeyup||i,t[Jn.EVENT_MOUSE]=I,t[Jn.EVENT_TOUCH]=E||I,t[Jn.EVENT_ACCELEROMETER]=void 0!==window.DeviceMotionEvent||void 0!==window.DeviceOrientationEvent,t[Jn.EVENT_GAMEPAD]=void 0!==navigator.getGamepads||void 0!==navigator.webkitGetGamepads||A,t[Jn.EVENT_HANDLE]=r,t[Jn.EVENT_HMD]=A,t[Jn.EVENT_HANDHELD]=A,t[Jn.WASM]=R,t),n._initPromise.push(n._supportsImageBitmapPromise()),n._registerEvent(),n}p(t,e);var n=t.prototype;return n._supportsImageBitmapPromise=function(){var e=this;if("undefined"!=typeof createImageBitmap&&"undefined"!=typeof Blob){var t=document.createElement("canvas");t.width=t.height=2;var n=createImageBitmap(t);if(n instanceof Promise)return n.then((function(t){t&&t.close&&(e._setFeature(Jn.IMAGE_BITMAP,!0),t.close())}))}return Promise.resolve()},n._registerEvent=function(){var e,t=this;e=void 0!==document.hidden?"hidden":void 0!==document.mozHidden?"mozHidden":void 0!==document.msHidden?"msHidden":void 0!==document.webkitHidden?"webkitHidden":"hidden";var n=!1,i=function(){n||(n=!0,t.emit("hide"))},r=function(e,i,r,s,a){n&&(n=!1,t.emit("show",e,i,r,s,a))};if(e)for(var s=["visibilitychange","mozvisibilitychange","msvisibilitychange","webkitvisibilitychange","qbrowserVisibilityChange"],a=0;a-1&&(window.onfocus=r),"onpageshow"in window&&"onpagehide"in window&&(window.addEventListener("pagehide",i),window.addEventListener("pageshow",r),document.addEventListener("pagehide",i),document.addEventListener("pageshow",r))},n._setFeature=function(e,t){return this._featureMap[e]=t},n.init=function(){return Promise.all(this._initPromise)},n.hasFeature=function(e){return this._featureMap[e]},n.getBatteryLevel=function(){return this._battery?this._battery.level:1},n.triggerGC=function(){},n.openURL=function(e){window.open(e)},n.now=function(){return Date.now?Date.now():+new Date},n.restartJSVM=function(){},n.exit=function(){window.close()},n.close=function(){this.emit("close")},t}(Xn),ti=new ei,ni=/(\.[^./?\\]*)(\?.*)?$/,ii=/((.*)(\/|\\|\\\\))?(.*?\..*$)?/,ri=/[^./]+\/\.\.\//;function si(){for(var e="",t=arguments.length,n=new Array(t),i=0;i0&&(e=e.substring(0,n));var i=/(\/|\\)([^/\\]+)$/g.exec(e.replace(/(\/|\\)$/,""));if(!i)return e;var r=i[2];return t&&e.substring(e.length-t.length).toLowerCase()===t.toLowerCase()?r.substring(0,r.length-t.length):r}function ci(e){var t=ii.exec(e);return t?t[2]:""}function hi(e,t){t=t||"";var n=e.indexOf("?"),i="";return n>0&&(i=e.substring(n),e=e.substring(0,n)),(n=e.lastIndexOf("."))<0?e+t+i:e.substring(0,n)+t+i}function li(e,t,n){if(0===t.indexOf("."))return hi(e,t);var i=e.indexOf("?"),r="",s=n?ai(e):"";return i>0&&(r=e.substring(i),e=e.substring(0,i)),i=(i=e.lastIndexOf("/"))<=0?0:i+1,e.substring(0,i)+t+s+r}function fi(e){var t=e=String(e);do{t=e,e=e.replace(ri,"")}while(t.length!==e.length);return e}function di(e){return e.replace(/[/\\]$/,"")}function pi(){return ti.os===Qn.WINDOWS?"\\":"/"}e("path",Object.freeze({__proto__:null,_normalize:fi,basename:ui,changeBasename:li,changeExtname:hi,dirname:ci,extname:ai,getSeperator:pi,join:si,mainFileName:oi,stripSep:di})),u.log=L,u.warn=N,u.error=k,u.assert=z,u._throw=V,u.logID=j,u.warnID=K,u.errorID=Z,u.assertID=$,u.debug=re,u.path={join:si,extname:ai,mainFileName:oi,basename:ui,dirname:ci,changeExtname:hi,changeBasename:li,_normalize:fi,stripSep:di,get sep(){return pi()}};var _i=function(){function e(){this._finalizationRegistry=null,this._gcObjects=new WeakMap}var t=e.prototype;return t.registerGCObject=function(e){return e},t.init=function(){},t.finalizationRegistryCallback=function(){},t.destroy=function(){},e}(),mi=e("garbageCollectionManager",new _i),gi=e("GCObject",function(){function e(){return mi.registerGCObject(this)}return e.prototype.destroy=function(){},e}()),vi=function(e,t,n){for(var i=0;i0&&!(e&e-1)}var Is=Math.ceil;function As(e,t,n,i){if(!Ts[e].isCompressed)return t*n*i*Ts[e].size;switch(e){case 56:case 57:case 58:case 59:case 72:case 73:case 74:case 75:case 79:case 80:case 85:case 86:case 88:return Is(t/4)*Is(n/4)*8*i;case 60:case 61:case 62:case 63:case 64:case 65:case 69:case 68:case 70:case 71:case 77:case 76:case 81:case 82:case 89:case 103:return Is(t/4)*Is(n/4)*16*i;case 66:case 67:return Is(t/4)*Is(n/4)*32*i;case 83:case 84:case 87:return Is(t/8)*Is(n/4)*8*i;case 90:case 104:return Is(t/5)*Is(n/4)*16*i;case 91:case 105:return Is(t/5)*Is(n/5)*16*i;case 92:case 106:return Is(t/6)*Is(n/5)*16*i;case 93:case 107:return Is(t/6)*Is(n/6)*16*i;case 94:case 108:return Is(t/8)*Is(n/5)*16*i;case 95:case 109:return Is(t/8)*Is(n/6)*16*i;case 96:case 110:return Is(t/8)*Is(n/8)*16*i;case 97:case 111:return Is(t/10)*Is(n/5)*16*i;case 98:case 112:return Is(t/10)*Is(n/6)*16*i;case 99:case 113:return Is(t/10)*Is(n/8)*16*i;case 100:case 114:return Is(t/10)*Is(n/10)*16*i;case 101:case 115:return Is(t/12)*Is(n/10)*16*i;case 102:case 116:return Is(t/12)*Is(n/12)*16*i;default:return 0}}function Rs(e,t,n,i,r){for(var s=0,a=0;a>1,1),n=Math.max(n>>1,1);return s}var Cs=[0,4,8,12,16,4,8,12,16,4,8,12,16,4,8,12,16,16,24,32,24,36,48,32,48,64,4,4,4,4,4,4];function Os(e){return Cs[e]||0}function Bs(e){if(e.isCompressed)return Uint8Array;var t=e.size/e.count;switch(e.type){case 1:case 3:switch(t){case 1:default:return Uint8Array;case 2:return Uint16Array;case 4:return Uint32Array}case 2:case 4:switch(t){case 1:default:return Int8Array;case 2:return Int16Array;case 4:return Int32Array}case 6:return 2===t?Uint16Array:Float32Array}return Float32Array}function Ds(e){switch(e){case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 69:case 68:case 70:case 71:case 66:case 67:case 72:case 73:case 74:case 75:case 79:case 80:case 77:case 76:case 81:case 82:case 85:case 86:case 88:case 89:case 103:return{width:4,height:4};case 83:case 84:case 87:return{width:8,height:4};case 90:case 104:return{width:5,height:4};case 91:case 105:return{width:5,height:5};case 92:case 106:return{width:6,height:5};case 93:case 107:return{width:6,height:6};case 94:case 108:return{width:8,height:5};case 95:case 109:return{width:8,height:6};case 96:case 110:return{width:8,height:8};case 97:case 111:return{width:10,height:5};case 98:case 112:return{width:10,height:6};case 99:case 113:return{width:10,height:8};case 100:case 114:return{width:10,height:10};case 101:case 115:return{width:12,height:10};case 102:case 116:return{width:12,height:12};default:return{width:1,height:1}}}function Ps(e,t){return Is(e/t)*t}var Ms=Object.freeze({__proto__:null,API:wi,AccessFlagBit:Ki,Address:Ui,Attribute:Xr,AttributeName:vs,BarrierType:cr,BindingMappingInfo:Ir,BlendFactor:Hi,BlendOp:Wi,BufferBarrierInfo:is,BufferFlagBit:Ci,BufferInfo:Cr,BufferTextureCopy:wr,BufferUsageBit:Ri,BufferViewInfo:Or,ClearFlagBit:ur,Color:Sr,ColorAttachment:Kr,ColorMask:ji,CommandBufferInfo:hs,CommandBufferType:or,ComparisonFunc:Gi,CullMode:tr,DESCRIPTOR_BUFFER_TYPE:Ss,DESCRIPTOR_DYNAMIC_TYPE:10,DESCRIPTOR_SAMPLER_TYPE:xs,DESCRIPTOR_STORAGE_BUFFER_TYPE:12,DRAW_INFO_SIZE:28,DepthStencilAttachment:Qr,DescriptorSetInfo:os,DescriptorSetLayoutBinding:ss,DescriptorSetLayoutInfo:as,DescriptorType:rr,DeviceCaps:fr,DeviceInfo:Rr,DeviceOptions:dr,DispatchInfo:Dr,DrawInfo:Br,DynamicStateFlagBit:nr,DynamicStates:ms,DynamicStencilStates:_s,Extent:mr,Feature:Si,Filter:zi,Format:xi,FormatFeatureBit:Li,FormatInfo:ds,FormatInfos:Ts,FormatSize:As,FormatSurfaceSize:Rs,FormatType:Ei,FramebufferInfo:rs,GFXObject:gs,GeneralBarrierInfo:ts,GetTypeSize:Os,IndirectBuffer:Pr,InputAssemblerInfo:Yr,InputState:cs,IsPowerOf2:Es,LoadOp:qi,MarkerInfo:Er,MemoryAccessBit:Oi,MemoryStatus:ps,MemoryUsageBit:Bi,ObjectType:yi,Offset:pr,PassType:hr,PipelineBindPoint:Zi,PipelineLayoutInfo:us,PolygonMode:$i,PrimitiveMode:Ji,QueryPoolInfo:fs,QueryType:ar,QueueInfo:ls,QueueType:sr,Rect:_r,RenderPassInfo:$r,ResolveMode:Qi,ResourceRange:es,SampleCount:Ni,SampleType:Ii,SamplerInfo:Lr,ShadeModel:er,ShaderInfo:qr,ShaderStage:jr,ShaderStageFlagBit:Xi,Size:lr,Status:bi,StencilFace:ir,StencilOp:Vi,StoreOp:Yi,SubpassDependency:Jr,SubpassInfo:Zr,SurfaceTransform:Ti,SwapchainInfo:Ar,TextureBarrierInfo:ns,TextureBlit:br,TextureCopy:yr,TextureFlagBit:Fi,TextureInfo:Mr,TextureSubresLayers:gr,TextureSubresRange:vr,TextureType:Di,TextureUsageBit:Mi,TextureViewInfo:Fr,Type:Ai,Uniform:Nr,UniformBlock:kr,UniformInputAttachment:Wr,UniformSampler:Ur,UniformSamplerTexture:zr,UniformStorageBuffer:Hr,UniformStorageImage:Vr,UniformTexture:Gr,ViewDimension:Pi,Viewport:Tr,VsyncMode:ki,alignTo:Ps,formatAlignment:Ds,getTypedArrayConstructor:Bs}),Fs=function(e){function t(){var t;return(t=e.call(this,2)||this)._usage=0,t._memUsage=0,t._size=0,t._stride=1,t._count=0,t._flags=0,t._isBufferView=!1,t}return p(t,e),f(t,[{key:"usage",get:function(){return this._usage}},{key:"memUsage",get:function(){return this._memUsage}},{key:"size",get:function(){return this._size}},{key:"stride",get:function(){return this._stride}},{key:"count",get:function(){return this._count}},{key:"flags",get:function(){return this._flags}}]),t}(gs),Ls=function(e){function t(){var t;return(t=e.call(this,13)||this)._queue=null,t._type=0,t._numDrawCalls=0,t._numInstances=0,t._numTris=0,t}return p(t,e),f(t,[{key:"type",get:function(){return this._type}},{key:"queue",get:function(){return this._queue}},{key:"numDrawCalls",get:function(){return this._numDrawCalls}},{key:"numInstances",get:function(){return this._numInstances}},{key:"numTris",get:function(){return this._numTris}}]),t}(gs),Ns=function(){function e(){this._gfxAPI=0,this._renderer="",this._vendor="",this._features=new Array(10),this._formatFeatures=new Array(117),this._queue=null,this._cmdBuff=null,this._numDrawCalls=0,this._numInstances=0,this._numTris=0,this._memoryStatus=new ps,this._caps=new fr,this._bindingMappingInfo=new Ir,this._samplers=new Map,this._generalBarrierss=new Map,this._textureBarriers=new Map,this._bufferBarriers=new Map,this._swapchainFormat=35}var t=e.prototype;return t.hasFeature=function(e){return this._features[e]},t.getFormatFeatures=function(e){return this._formatFeatures[e]},t.enableAutoBarrier=function(){},t.getMaxSampleCount=function(){return 1},f(e,[{key:"gfxAPI",get:function(){return this._gfxAPI}},{key:"queue",get:function(){return this._queue}},{key:"commandBuffer",get:function(){return this._cmdBuff}},{key:"swapchainFormat",get:function(){return this._swapchainFormat}},{key:"renderer",get:function(){return this._renderer}},{key:"vendor",get:function(){return this._vendor}},{key:"numDrawCalls",get:function(){return this._numDrawCalls}},{key:"numInstances",get:function(){return this._numInstances}},{key:"numTris",get:function(){return this._numTris}},{key:"memoryStatus",get:function(){return this._memoryStatus}},{key:"capabilities",get:function(){return this._caps}},{key:"bindingMappingInfo",get:function(){return this._bindingMappingInfo}}]),e}();Ns.canvas=void 0;var ks=function(){function e(e){this._texture2D=null,this._texture3D=null,this._textureCube=null,this._texture2DArray=null;var t=e.capabilities,n=new Uint8Array(64);if(n.fill(255),t.maxTextureSize>=2){this._texture2D=e.createTexture(new Mr(1,12,35,2,2,0));var i=new wr(0,0,0,new pr(0,0,0),new mr(2,2,1));e.copyBuffersToTexture([n],this._texture2D,[i])}if(t.maxTextureSize>=2){this._textureCube=e.createTexture(new Mr(3,12,35,2,2,0,6));var r=new wr(0,0,0,new pr(0,0,0),new mr(2,2,1));e.copyBuffersToTexture([n],this._textureCube,[r]),r.texSubres.baseArrayLayer=1,e.copyBuffersToTexture([n],this._textureCube,[r]),r.texSubres.baseArrayLayer=2,e.copyBuffersToTexture([n],this._textureCube,[r]),r.texSubres.baseArrayLayer=3,e.copyBuffersToTexture([n],this._textureCube,[r]),r.texSubres.baseArrayLayer=4,e.copyBuffersToTexture([n],this._textureCube,[r]),r.texSubres.baseArrayLayer=5,e.copyBuffersToTexture([n],this._textureCube,[r])}if(t.max3DTextureSize>=2){this._texture3D=e.createTexture(new Mr(2,12,35,2,2,0,1,1,1,2));var s=new wr(0,0,0,new pr(0,0,0),new mr(2,2,2),new gr(0,0,1));e.copyBuffersToTexture([n],this._texture3D,[s])}if(t.maxArrayTextureLayers>=2){this._texture2DArray=e.createTexture(new Mr(5,12,35,2,2,0,2));var a=new wr(0,0,0,new pr(0,0,0),new mr(2,2,1),new gr(0,0,1));e.copyBuffersToTexture([n],this._texture2DArray,[a]),a.texSubres.baseArrayLayer=1,e.copyBuffersToTexture([n],this._texture2DArray,[a])}}return e.prototype.getTexture=function(e){switch(e){case 1:return this._texture2D;case 2:return this._texture3D;case 3:return this._textureCube;case 5:return this._texture2DArray;default:return null}},e}(),zs=function(e){function t(){var t;return(t=e.call(this,1)||this)._transform=0,t._colorTexture=null,t._depthStencilTexture=null,t}return p(t,e),f(t,[{key:"colorTexture",get:function(){return this._colorTexture}},{key:"depthStencilTexture",get:function(){return this._depthStencilTexture}},{key:"surfaceTransform",get:function(){return this._transform}},{key:"width",get:function(){return this._colorTexture.width}},{key:"height",get:function(){return this._colorTexture.height}}]),t}(gs),Us=function(e){function t(){var t;return(t=e.call(this,5)||this)._renderPass=null,t._colorTextures=[],t._depthStencilTexture=null,t._width=0,t._height=0,t}return p(t,e),f(t,[{key:"renderPass",get:function(){return this._renderPass}},{key:"colorTextures",get:function(){return this._colorTextures}},{key:"depthStencilTexture",get:function(){return this._depthStencilTexture}},{key:"width",get:function(){var e,t;return this.colorTextures.length>0?null!==(e=null==(t=this.colorTextures[0])?void 0:t.width)&&void 0!==e?e:this._width:this.depthStencilTexture?this.depthStencilTexture.width:this._width}},{key:"height",get:function(){var e,t;return this.colorTextures.length>0?null!==(e=null==(t=this.colorTextures[0])?void 0:t.height)&&void 0!==e?e:this._height:this.depthStencilTexture?this.depthStencilTexture.height:this._height}},{key:"needRebuild",get:function(){return!1}}]),t}(gs),Gs=String.prototype.charCodeAt;function Vs(e){return this[e]}function Hs(e,t){for(var n=e.length,i=t^n,r=0,s="string"==typeof e?Gs:Vs;n>=4;){var a=255&s.call(e,r)|(255&s.call(e,++r))<<8|(255&s.call(e,++r))<<16|(255&s.call(e,++r))<<24;a=1540483477*(65535&a)+((1540483477*(a>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(a=1540483477*(65535&(a^=a>>>24))+((1540483477*(a>>>16)&65535)<<16)),n-=4,++r}switch(n){case 3:i^=(255&s.call(e,r+2))<<16;case 2:i^=(255&s.call(e,r+1))<<8;case 1:i=1540483477*(65535&(i^=255&s.call(e,r)))+((1540483477*(i>>>16)&65535)<<16)}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0}var Ws=function(e){function t(){var t;return(t=e.call(this,12)||this)._attributes=[],t._attributesHash=0,t._vertexBuffers=[],t._indexBuffer=null,t._indirectBuffer=null,t._drawInfo=new Br,t}p(t,e);var n=t.prototype;return n.getVertexBuffer=function(e){return void 0===e&&(e=0),e=0){var o=this._colorInfos[n.depthStencil];e+="ds,"+o.format+","+o.sampleCount}}else{e+="ca";for(var u=0;u>2&3,t.mipFilter=e>>4&3,t.addressU=e>>6&3,t.addressV=e>>8&3,t.addressW=e>>10&3,t.maxAnisotropy=e>>12&31,t.cmpFunc=e>>17&7,t},f(t,[{key:"info",get:function(){return this._info}},{key:"hash",get:function(){return this._hash}}]),t}(gs),ia=function(e){function t(){var t;return(t=e.call(this,7)||this)._name="",t._stages=[],t._attributes=[],t._blocks=[],t._samplers=[],t}return p(t,e),f(t,[{key:"name",get:function(){return this._name}},{key:"attributes",get:function(){return this._attributes}},{key:"blocks",get:function(){return this._blocks}},{key:"samplers",get:function(){return this._samplers}},{key:"stages",get:function(){return this._stages}}]),t}(gs),ra=function(e){function t(){var t;return(t=e.call(this,3)||this)._info=new Mr,t._viewInfo=new Fr,t._isPowerOf2=!1,t._isTextureView=!1,t._size=0,t}return p(t,e),t.getLevelCount=function(e,t){return Math.floor(Math.log2(Math.max(e,t)))},f(t,[{key:"type",get:function(){return this._info.type}},{key:"usage",get:function(){return this._info.usage}},{key:"format",get:function(){return this._info.format}},{key:"width",get:function(){return this._info.width}},{key:"height",get:function(){return this._info.height}},{key:"depth",get:function(){return this._info.depth}},{key:"layerCount",get:function(){return this._info.layerCount}},{key:"levelCount",get:function(){return this._info.levelCount}},{key:"samples",get:function(){return this._info.samples}},{key:"flags",get:function(){return this._info.flags}},{key:"size",get:function(){return this._size}},{key:"info",get:function(){return this._info}},{key:"viewInfo",get:function(){return this._viewInfo}},{key:"isTextureView",get:function(){return this._isTextureView}}]),t}(gs),sa=function(e){function t(t,n){var i;return(i=e.call(this,16)||this)._info=new ts,i._hash=0,i._info.copy(t),i._hash=n,i}return p(t,e),t.computeHash=function(e){return Hs(e.prevAccesses+" "+e.nextAccesses+" "+e.type,666)},f(t,[{key:"info",get:function(){return this._info}},{key:"hash",get:function(){return this._hash}}]),t}(gs),aa=function(e){function t(t,n){var i;return(i=e.call(this,17)||this)._info=new ns,i._hash=0,i._info.copy(t),i._hash=n,i}return p(t,e),t.computeHash=function(e){var t=e.prevAccesses+" "+e.nextAccesses;return t+=e.type,t+=e.range.mipLevel,t+=e.range.levelCount,t+=e.range.firstSlice,t+=e.range.numSlices,t+=e.range.basePlane,t+=e.range.planeCount,t+=e.discardContents,t+=e.srcQueue?e.srcQueue.type:0,Hs(t+=e.dstQueue?e.dstQueue.type:0,666)},f(t,[{key:"info",get:function(){return this._info}},{key:"hash",get:function(){return this._hash}}]),t}(gs),oa=function(e){function t(t,n){var i;return(i=e.call(this,18)||this)._info=new is,i._hash=0,i._info.copy(t),i._hash=n,i}return p(t,e),t.computeHash=function(e){var t=e.prevAccesses+" "+e.nextAccesses;return t+=e.type,t+=e.offset,t+=e.size,t+=e.discardContents,t+=e.srcQueue?e.srcQueue.type:0,Hs(t+=e.dstQueue?e.dstQueue.type:0,666)},f(t,[{key:"info",get:function(){return this._info}},{key:"hash",get:function(){return this._hash}}]),t}(gs),ua={Device:Ns,Swapchain:zs,Buffer:Fs,Texture:ra,Sampler:na,Shader:ia,InputAssembler:Ws,RenderPass:ta,Framebuffer:Us,DescriptorSet:js,DescriptorSetLayout:Xs,PipelineLayout:qs,PipelineState:$s,CommandBuffer:Ls,Queue:ea,GeneralBarrier:sa,TextureBarrier:aa,BufferBarrier:oa,RasterizerState:Ys,BlendState:Zs,BlendTarget:Qs,DepthStencilState:Ks,PipelineStateInfo:Js};Object.assign(ua,Ms),o.gfx=ua;var ca,ha,la,fa,da,pa=10;e("replaceProperty",ca),e("removeProperty",ha),e("markAsWarning",la);var _a=0,ma=new Map;fa=function(e,t,n,i,r,s,a){var o=ma.get(s);o&&o.logTimes>o.count&&(r("'%s' is deprecated, please use '%s' instead. "+a,e+"."+t,n+"."+i),o.count++)},e("replaceProperty",ca=function(e,t,n){null!=e&&n.forEach((function(n){var i=_a++;ma.set(i,{id:i,count:0,logTimes:void 0!==n.logTimes?n.logTimes:pa});var r=null!=n.target?n.target:e,s=null!=n.newName?n.newName:n.name,a=null!=n.targetName?n.targetName:t,o=r===e,u=n.suggest?"("+n.suggest+")":"";if(null!=n.customFunction)e[n.name]=function(){var e;return fa(t,n.name,a,s,N,i,u),(e=n.customFunction).call.apply(e,[this].concat(Array.prototype.slice.call(arguments)))};else if(null!=n.customSetter||null!=n.customGetter){var c=null!=n.customSetter,h=null!=n.customGetter;c&&h?Object.defineProperty(e,n.name,{get:function(){return fa(t,n.name,a,s,N,i,u),n.customGetter.call(this)},set:function(e){fa(t,n.name,a,s,N,i,u),n.customSetter.call(this,e)},enumerable:!1}):c?Object.defineProperty(e,n.name,{set:function(e){fa(t,n.name,a,s,N,i,u),n.customSetter.call(this,e)},enumerable:!1}):h&&Object.defineProperty(e,n.name,{get:function(){return fa(t,n.name,a,s,N,i,u),n.customGetter.call(this)},enumerable:!1})}else Object.defineProperty(e,n.name,{get:function(){return fa(t,n.name,a,s,N,i,u),o?this[s]:r[s]},set:function(e){fa(t,n.name,a,s,N,i,u),o?this[s]=e:r[s]=e},enumerable:!1})}))}),da=function(e,t,n,i,r){var s=ma.get(i);s&&s.logTimes>s.count&&(n("'%s' has been removed. "+r,e+"."+t),s.count++)},e("removeProperty",ha=function(e,t,n){null!=e&&n.forEach((function(n){var i=_a++;ma.set(i,{id:i,count:0,logTimes:void 0!==n.logTimes?n.logTimes:pa});var r=n.suggest?"("+n.suggest+")":"";Object.defineProperty(e,n.name,{get:function(){return da(t,n.name,k,i,r)},set:function(){da(t,n.name,k,i,r)},enumerable:!1})}))}),e("markAsWarning",la=function(){});var ga,va={};function ya(e){for(var t in e){var n=e[t];va[t]=n}}function ba(e){var t=va[e];if(t){var n=t.newName,i=t.since;t.removed?n?Z(16003,e,i,n):Z(16002,e,i):n?K(16001,e,i,n):K(16e3,e,i)}}var wa=Math.abs,Ta=Math.floor,Sa=Math.PI,xa=Sa/180,Ea=180/Sa,Ia=Math.random,Aa=e("HALF_PI",.5*Sa),Ra=e("TWO_PI",2*Sa),Ca=e("EPSILON",1e-6);function Oa(e,t){return wa(e-t)<=Ca*Math.max(1,wa(e),wa(t))}function Ba(e,t,n){return n=n||Ca,wa(e-t)<=n}function Da(e,t,n){if(t>n){var i=t;t=n,n=i}return en?n:e}function Pa(e){return e<0?0:e>1?1:e}function Ma(e,t,n){return e+(t-e)*n}function Fa(e){return e*xa}function La(e){return e*Ea}function Na(){return Ia()}function ka(e){Ia=e}function za(e,t){return Na()*(t-e)+e}function Ua(e,t){return Ta(za(e,t))}function Ga(e){return(e=(9301*e+49297)%233280)/233280}function Va(e,t,n){return Ga(e)*(n-t)+t}function Ha(e,t,n){return Ta(Va(e,t,n))}function Wa(e){return ce(e)}function ja(e,t){return e-Ta(e/t)*t}function Xa(e,t){return e=ja(e,2*t),t-wa(e-t)}function qa(e,t,n){return(n-e)/(t-e)}function Ya(e){return wa(e.x)>wa(e.y)?wa(e.x)>wa(e.z)?e.x:e.z:wa(e.y)>wa(e.z)?e.y:e.z}function Ka(e,t){return wa(e)>wa(t)?e:t}function Qa(e,t){t.forEach((function(t){Object.defineProperty(e,t,{enumerable:!0})}))}var Za,Ja,$a=(Za=new Float32Array(1),Ja=new Int32Array(Za.buffer),function(e){Za[0]=e;var t=Ja[0],n=t>>16&32768,i=2147483647&t,r=i-(112<<23)+4096>>13;return r=i<113<<23?0:r,r=i>=143<<23?31744:r,r=i>255<<23?32256:r,Ja[0]=n|r,Ja[0]}),eo=function(){var e=new Float32Array(1),t=new Int32Array(e.buffer);return function(n){var i,r=32767&n,s=r<<13;return 31744!==s?(s+=112<<23,0===r?s=(1048575&s)>>1:32767===r&&(s=2147483647)):s=2139095040,i=(n>>15&1)<<31|s,t[0]=i,e[0]}}();function to(e){return $a(e)}function no(e){return eo(e)}var io=Math.abs,ro=Math.max,so=Math.min,ao=Math.PI,oo=Math.sin,uo=Math.cos,co=Math.atan2,ho=Math.sqrt,lo=Math.ceil,fo=Math.floor,po=Math.round;function _o(e,t,n,i){return Object.freeze(new go(e,t,n,i))}var mo,go=e("Vec4",function(e){function t(t,n,i,r){var s;return s=e.call(this)||this,"object"==typeof t?(s.x=t.x,s.y=t.y,s.z=t.z,s.w=t.w):(s.x=t||0,s.y=n||0,s.z=i||0,s.w=r||0),s}p(t,e),t.clone=function(e){return new t(e.x,e.y,e.z,e.w)},t.copy=function(e,t){return e.x=t.x,e.y=t.y,e.z=t.z,e.w=t.w,e},t.set=function(e,t,n,i,r){return e.x=t,e.y=n,e.z=i,e.w=r,e},t.fromColor=function(e,t){return e.x=t.r,e.y=t.g,e.z=t.b,e.w=t.a,e},t.angle=function(e,t){var n=e.y*t.z-e.z*t.y,i=e.z*t.x-e.x*t.z,r=e.x*t.y-e.y*t.x,s=e.x*t.x+e.y*t.y+e.z*t.z;return co(ho(n*n+i*i+r*r),s)},t.add=function(e,t,n){return e.x=t.x+n.x,e.y=t.y+n.y,e.z=t.z+n.z,e.w=t.w+n.w,e},t.subtract=function(e,t,n){return e.x=t.x-n.x,e.y=t.y-n.y,e.z=t.z-n.z,e.w=t.w-n.w,e},t.multiply=function(e,t,n){return e.x=t.x*n.x,e.y=t.y*n.y,e.z=t.z*n.z,e.w=t.w*n.w,e},t.divide=function(e,t,n){return e.x=t.x/n.x,e.y=t.y/n.y,e.z=t.z/n.z,e.w=t.w/n.w,e},t.ceil=function(e,t){return e.x=lo(t.x),e.y=lo(t.y),e.z=lo(t.z),e.w=lo(t.w),e},t.floor=function(e,t){return e.x=fo(t.x),e.y=fo(t.y),e.z=fo(t.z),e.w=fo(t.w),e},t.min=function(e,t,n){return e.x=so(t.x,n.x),e.y=so(t.y,n.y),e.z=so(t.z,n.z),e.w=so(t.w,n.w),e},t.max=function(e,t,n){return e.x=ro(t.x,n.x),e.y=ro(t.y,n.y),e.z=ro(t.z,n.z),e.w=ro(t.w,n.w),e},t.round=function(e,t){return e.x=po(t.x),e.y=po(t.y),e.z=po(t.z),e.w=po(t.w),e},t.multiplyScalar=function(e,t,n){return e.x=t.x*n,e.y=t.y*n,e.z=t.z*n,e.w=t.w*n,e},t.scaleAndAdd=function(e,t,n,i){return e.x=t.x+n.x*i,e.y=t.y+n.y*i,e.z=t.z+n.z*i,e.w=t.w+n.w*i,e},t.distance=function(e,t){var n=t.x-e.x,i=t.y-e.y,r=t.z-e.z,s=t.w-e.w;return ho(n*n+i*i+r*r+s*s)},t.squaredDistance=function(e,t){var n=t.x-e.x,i=t.y-e.y,r=t.z-e.z,s=t.w-e.w;return n*n+i*i+r*r+s*s},t.len=function(e){var t=e.x,n=e.y,i=e.z,r=e.w;return ho(t*t+n*n+i*i+r*r)},t.lengthSqr=function(e){var t=e.x,n=e.y,i=e.z,r=e.w;return t*t+n*n+i*i+r*r},t.negate=function(e,t){return e.x=-t.x,e.y=-t.y,e.z=-t.z,e.w=-t.w,e},t.inverse=function(e,t){return e.x=1/t.x,e.y=1/t.y,e.z=1/t.z,e.w=1/t.w,e},t.inverseSafe=function(e,t){var n=t.x,i=t.y,r=t.z,s=t.w;return io(n)0?(a=1/ho(a),e.x=n*a,e.y=i*a,e.z=r*a,e.w=s*a):(e.x=0,e.y=0,e.z=0,e.w=0),e},t.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},t.lerp=function(e,t,n,i){return e.x=t.x+i*(n.x-t.x),e.y=t.y+i*(n.y-t.y),e.z=t.z+i*(n.z-t.z),e.w=t.w+i*(n.w-t.w),e},t.scale=function(e,t,n){return e.x=t.x*n,e.y=t.y*n,e.z=t.z*n,e.w=t.w*n,e},t.random=function(e,t){t=t||1;var n=2*Na()*ao,i=2*Na()-1,r=ho(1-i*i);return e.x=r*uo(n)*t,e.y=r*oo(n)*t,e.z=i*t,e.w=0,e},t.transformMat4=function(e,t,n){var i=t.x,r=t.y,s=t.z,a=t.w;return e.x=n.m00*i+n.m04*r+n.m08*s+n.m12*a,e.y=n.m01*i+n.m05*r+n.m09*s+n.m13*a,e.z=n.m02*i+n.m06*r+n.m10*s+n.m14*a,e.w=n.m03*i+n.m07*r+n.m11*s+n.m15*a,e},t.transformAffine=function(e,t,n){var i=t.x,r=t.y,s=t.z,a=t.w;return e.x=n.m00*i+n.m04*r+n.m08*s+n.m12*a,e.y=n.m01*i+n.m05*r+n.m09*s+n.m13*a,e.z=n.m02*i+n.m06*r+n.m10*s+n.m14*a,e.w=t.w,e},t.transformQuat=function(e,t,n){var i=t.x,r=t.y,s=t.z,a=n.x,o=n.y,u=n.z,c=n.w,h=c*i+o*s-u*r,l=c*r+u*i-a*s,f=c*s+a*r-o*i,d=-a*i-o*r-u*s;return e.x=h*c+d*-a+l*-u-f*-o,e.y=l*c+d*-o+f*-a-h*-u,e.z=f*c+d*-u+h*-o-l*-a,e.w=t.w,e},t.toArray=function(e,t,n){return void 0===n&&(n=0),e[n+0]=t.x,e[n+1]=t.y,e[n+2]=t.z,e[n+3]=t.w,e},t.fromArray=function(e,t,n){return void 0===n&&(n=0),e.x=t[n+0],e.y=t[n+1],e.z=t[n+2],e.w=t[n+3],e},t.strictEquals=function(e,t){return e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},t.equals=function(e,t,n){void 0===n&&(n=Ca);var i=1/0;return!(io(e.x)===i||io(e.y)===i||io(e.z)===i||io(e.w)===i||io(t.x)===i||io(t.y)===i||io(t.z)===i||io(t.w)===i)&&io(e.x-t.x)<=n*ro(1,io(e.x),io(t.x))&&io(e.y-t.y)<=n*ro(1,io(e.y),io(t.y))&&io(e.z-t.z)<=n*ro(1,io(e.z),io(t.z))&&io(e.w-t.w)<=n*ro(1,io(e.w),io(t.w))};var n=t.prototype;return n.clone=function(){return new t(this.x,this.y,this.z,this.w)},n.set=function(e,t,n,i){return"object"==typeof e?(this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w):(this.x=e||0,this.y=t||0,this.z=n||0,this.w=i||0),this},n.equals=function(e,t){void 0===t&&(t=Ca);var n=this;return io(n.x-e.x)<=t*ro(1,io(n.x),io(e.x))&&io(n.y-e.y)<=t*ro(1,io(n.y),io(e.y))&&io(n.z-e.z)<=t*ro(1,io(n.z),io(e.z))&&io(n.w-e.w)<=t*ro(1,io(n.w),io(e.w))},n.equals4f=function(e,t,n,i,r){void 0===r&&(r=Ca);var s=this;return io(s.x-e)<=r*ro(1,io(s.x),io(e))&&io(s.y-t)<=r*ro(1,io(s.y),io(t))&&io(s.z-n)<=r*ro(1,io(s.z),io(n))&&io(s.w-i)<=r*ro(1,io(s.w),io(i))},n.strictEquals=function(e){return this.x===e.x&&this.y===e.y&&this.z===e.z&&this.w===e.w},n.strictEquals4f=function(e,t,n,i){return this.x===e&&this.y===t&&this.z===n&&this.w===i},n.lerp=function(e,t){var n=this,i=n.x,r=n.y,s=n.z,a=n.w;return n.x=i+t*(e.x-i),n.y=r+t*(e.y-r),n.z=s+t*(e.z-s),n.w=a+t*(e.w-a),n},n.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},n.clampf=function(e,t){var n=this;return n.x=Da(n.x,e.x,t.x),n.y=Da(n.y,e.y,t.y),n.z=Da(n.z,e.z,t.z),n.w=Da(n.w,e.w,t.w),n},n.add=function(e){var t=this;return t.x+=e.x,t.y+=e.y,t.z+=e.z,t.w+=e.w,t},n.add4f=function(e,t,n,i){var r=this;return r.x+=e,r.y+=t,r.z+=n,r.w+=i,r},n.subtract=function(e){var t=this;return t.x-=e.x,t.y-=e.y,t.z-=e.z,t.w-=e.w,t},n.subtract4f=function(e,t,n,i){var r=this;return r.x-=e,r.y-=t,r.z-=n,r.w-=i,r},n.multiplyScalar=function(e){var t=this;return t.x*=e,t.y*=e,t.z*=e,t.w*=e,t},n.multiply=function(e){var t=this;return t.x*=e.x,t.y*=e.y,t.z*=e.z,t.w*=e.w,t},n.multiply4f=function(e,t,n,i){var r=this;return r.x*=e,r.y*=t,r.z*=n,r.w*=i,r},n.divide=function(e){var t=this;return t.x/=e.x,t.y/=e.y,t.z/=e.z,t.w/=e.w,t},n.divide4f=function(e,t,n,i){var r=this;return r.x/=e,r.y/=t,r.z/=n,r.w/=i,r},n.negative=function(){var e=this;return e.x=-e.x,e.y=-e.y,e.z=-e.z,e.w=-e.w,e},n.dot=function(e){var t=this;return t.x*e.x+t.y*e.y+t.z*e.z+t.w*e.w},n.cross=function(e){var t=this,n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return t.x=i*o-r*a,t.y=r*s-n*o,t.z=n*a-i*s,t},n.length=function(){var e=this,t=e.x,n=e.y,i=e.z,r=e.w;return ho(t*t+n*n+i*i+r*r)},n.lengthSqr=function(){var e=this,t=e.x,n=e.y,i=e.z,r=e.w;return t*t+n*n+i*i+r*r},n.normalize=function(){var e=this,t=e.x,n=e.y,i=e.z,r=e.w,s=t*t+n*n+i*i+r*r;return s>0&&(s=1/ho(s),e.x=t*s,e.y=n*s,e.z=i*s,e.w=r*s),e},n.scale=function(e){var t=this;return t.x*=e,t.y*=e,t.z*=e,t.w*=e,t},n.transformMat4=function(e){var t=this,n=t.x,i=t.y,r=t.z,s=t.w;return t.x=e.m00*n+e.m04*i+e.m08*r+e.m12*s,t.y=e.m01*n+e.m05*i+e.m09*r+e.m13*s,t.z=e.m02*n+e.m06*i+e.m10*r+e.m14*s,t.w=e.m03*n+e.m07*i+e.m11*r+e.m15*s,t},t}(St));function vo(e,t,n,i){return new go(e,t,n,i)}go.ZERO=_o(0,0,0,0),go.ONE=_o(1,1,1,1),go.NEG_ONE=_o(-1,-1,-1,-1),go.UNIT_X=_o(1,0,0,0),go.UNIT_Y=_o(0,1,0,0),go.UNIT_Z=_o(0,0,1,0),go.UNIT_W=_o(0,0,0,1),En.fastDefine("cc.Vec4",go,{x:0,y:0,z:0,w:0}),u.Vec4=go,u.v4=vo;var yo=Math.abs,bo=Math.max,wo=Math.min,To=Math.PI,So=Math.acos,xo=Math.sin,Eo=Math.cos,Io=Math.sqrt,Ao=Math.ceil,Ro=Math.floor,Co=Math.round;function Oo(e,t,n){return Object.freeze(new Fo(e,t,n))}var Bo,Do,Po,Mo,Fo=e("Vec3",function(e){function t(t,n,i){var r;return r=e.call(this)||this,"object"==typeof t?(r.x=t.x,r.y=t.y,r.z=t.z):(r.x=t||0,r.y=n||0,r.z=i||0),r}p(t,e),t.zero=function(e){return e.x=0,e.y=0,e.z=0,e},t.clone=function(e){return new t(e.x,e.y,e.z)},t.copy=function(e,t){return e.x=t.x,e.y=t.y,e.z=t.z,e},t.set=function(e,t,n,i){return e.x=t,e.y=n,e.z=i,e},t.add=function(e,t,n){return e.x=t.x+n.x,e.y=t.y+n.y,e.z=t.z+n.z,e},t.subtract=function(e,t,n){return e.x=t.x-n.x,e.y=t.y-n.y,e.z=t.z-n.z,e},t.multiply=function(e,t,n){return e.x=t.x*n.x,e.y=t.y*n.y,e.z=t.z*n.z,e},t.divide=function(e,t,n){return e.x=t.x/n.x,e.y=t.y/n.y,e.z=t.z/n.z,e},t.ceil=function(e,t){return e.x=Ao(t.x),e.y=Ao(t.y),e.z=Ao(t.z),e},t.floor=function(e,t){return e.x=Ro(t.x),e.y=Ro(t.y),e.z=Ro(t.z),e},t.min=function(e,t,n){return e.x=wo(t.x,n.x),e.y=wo(t.y,n.y),e.z=wo(t.z,n.z),e},t.max=function(e,t,n){return e.x=bo(t.x,n.x),e.y=bo(t.y,n.y),e.z=bo(t.z,n.z),e},t.round=function(e,t){return e.x=Co(t.x),e.y=Co(t.y),e.z=Co(t.z),e},t.multiplyScalar=function(e,t,n){return e.x=t.x*n,e.y=t.y*n,e.z=t.z*n,e},t.scaleAndAdd=function(e,t,n,i){return e.x=t.x+n.x*i,e.y=t.y+n.y*i,e.z=t.z+n.z*i,e},t.distance=function(e,t){var n=t.x-e.x,i=t.y-e.y,r=t.z-e.z;return Io(n*n+i*i+r*r)},t.squaredDistance=function(e,t){var n=t.x-e.x,i=t.y-e.y,r=t.z-e.z;return n*n+i*i+r*r},t.len=function(e){var t=e.x,n=e.y,i=e.z;return Io(t*t+n*n+i*i)},t.lengthSqr=function(e){var t=e.x,n=e.y,i=e.z;return t*t+n*n+i*i},t.negate=function(e,t){return e.x=-t.x,e.y=-t.y,e.z=-t.z,e},t.invert=function(e,t){return e.x=1/t.x,e.y=1/t.y,e.z=1/t.z,e},t.invertSafe=function(e,t){var n=t.x,i=t.y,r=t.z;return yo(n)0?(s=1/Io(s),e.x=n*s,e.y=i*s,e.z=r*s):(e.x=0,e.y=0,e.z=0),e},t.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},t.cross=function(e,t,n){var i=t.x,r=t.y,s=t.z,a=n.x,o=n.y,u=n.z;return e.x=r*u-s*o,e.y=s*a-i*u,e.z=i*o-r*a,e},t.lerp=function(e,t,n,i){return e.x=t.x+i*(n.x-t.x),e.y=t.y+i*(n.y-t.y),e.z=t.z+i*(n.z-t.z),e},t.random=function(e,t){t=t||1;var n=2*Na()*To,i=2*Na()-1,r=Io(1-i*i);return e.x=r*Eo(n)*t,e.y=r*xo(n)*t,e.z=i*t,e},t.transformMat4=function(e,t,n){var i=t.x,r=t.y,s=t.z,a=n.m03*i+n.m07*r+n.m11*s+n.m15;return a=a?1/a:1,e.x=(n.m00*i+n.m04*r+n.m08*s+n.m12)*a,e.y=(n.m01*i+n.m05*r+n.m09*s+n.m13)*a,e.z=(n.m02*i+n.m06*r+n.m10*s+n.m14)*a,e},t.transformMat4Normal=function(e,t,n){var i=t.x,r=t.y,s=t.z,a=n.m03*i+n.m07*r+n.m11*s;return a=a?1/a:1,e.x=(n.m00*i+n.m04*r+n.m08*s)*a,e.y=(n.m01*i+n.m05*r+n.m09*s)*a,e.z=(n.m02*i+n.m06*r+n.m10*s)*a,e},t.transformMat3=function(e,t,n){var i=t.x,r=t.y,s=t.z;return e.x=i*n.m00+r*n.m03+s*n.m06,e.y=i*n.m01+r*n.m04+s*n.m07,e.z=i*n.m02+r*n.m05+s*n.m08,e},t.transformAffine=function(e,t,n){var i=t.x,r=t.y,s=t.z;return e.x=n.m00*i+n.m04*r+n.m08*s+n.m12,e.y=n.m01*i+n.m05*r+n.m09*s+n.m13,e.z=n.m02*i+n.m06*r+n.m10*s+n.m14,e},t.transformQuat=function(e,t,n){var i=n.w*t.x+n.y*t.z-n.z*t.y,r=n.w*t.y+n.z*t.x-n.x*t.z,s=n.w*t.z+n.x*t.y-n.y*t.x,a=-n.x*t.x-n.y*t.y-n.z*t.z;return e.x=i*n.w+a*-n.x+r*-n.z-s*-n.y,e.y=r*n.w+a*-n.y+s*-n.x-i*-n.z,e.z=s*n.w+a*-n.z+i*-n.y-r*-n.x,e},t.transformRTS=function(e,t,n,i,r){var s=t.x*r.x,a=t.y*r.y,o=t.z*r.z,u=n.w*s+n.y*o-n.z*a,c=n.w*a+n.z*s-n.x*o,h=n.w*o+n.x*a-n.y*s,l=-n.x*s-n.y*a-n.z*o;return e.x=u*n.w+l*-n.x+c*-n.z-h*-n.y+i.x,e.y=c*n.w+l*-n.y+h*-n.x-u*-n.z+i.y,e.z=h*n.w+l*-n.z+u*-n.y-c*-n.x+i.z,e},t.transformInverseRTS=function(e,t,n,i,r){var s=t.x-i.x,a=t.y-i.y,o=t.z-i.z,u=n.w*s-n.y*o+n.z*a,c=n.w*a-n.z*s+n.x*o,h=n.w*o-n.x*a+n.y*s,l=n.x*s+n.y*a+n.z*o;return e.x=(u*n.w+l*n.x+c*n.z-h*n.y)/r.x,e.y=(c*n.w+l*n.y+h*n.x-u*n.z)/r.y,e.z=(h*n.w+l*n.z+u*n.y-c*n.x)/r.z,e},t.rotateX=function(e,t,n,i){var r=t.x-n.x,s=t.y-n.y,a=t.z-n.z,o=Eo(i),u=xo(i),c=r,h=s*o-a*u,l=s*u+a*o;return e.x=c+n.x,e.y=h+n.y,e.z=l+n.z,e},t.rotateY=function(e,t,n,i){var r=t.x-n.x,s=t.y-n.y,a=t.z-n.z,o=Eo(i),u=xo(i),c=a*u+r*o,h=s,l=a*o-r*u;return e.x=c+n.x,e.y=h+n.y,e.z=l+n.z,e},t.rotateZ=function(e,t,n,i){var r=t.x-n.x,s=t.y-n.y,a=t.z-n.z,o=Eo(i),u=xo(i),c=r*o-s*u,h=r*u+s*o,l=a;return e.x=c+n.x,e.y=h+n.y,e.z=l+n.z,e},t.rotateN=function(e,t,n,i,r){var s=t.x-n.x,a=t.y-n.y,o=t.z-n.z,u=i.x,c=i.y,h=i.z,l=Eo(r),f=xo(r),d=s*(u*u*(1-l)+l)+a*(u*c*(1-l)-h*f)+o*(u*h*(1-l)+c*f),p=s*(u*c*(1-l)+h*f)+a*(c*c*(1-l)+l)+o*(c*h*(1-l)-u*f),_=s*(u*h*(1-l)-c*f)+a*(c*h*(1-l)+u*f)+o*(h*h*(1-l)+l);return e.x=d+n.x,e.y=p+n.y,e.z=_+n.z,e},t.toArray=function(e,t,n){return void 0===n&&(n=0),e[n+0]=t.x,e[n+1]=t.y,e[n+2]=t.z,e},t.fromArray=function(e,t,n){return void 0===n&&(n=0),e.x=t[n+0],e.y=t[n+1],e.z=t[n+2],e},t.strictEquals=function(e,t){return e.x===t.x&&e.y===t.y&&e.z===t.z},t.equals=function(e,t,n){void 0===n&&(n=Ca);var i=e.x,r=e.y,s=e.z,a=t.x,o=t.y,u=t.z;return yo(i-a)<=n*bo(1,yo(i),yo(a))&&yo(r-o)<=n*bo(1,yo(r),yo(o))&&yo(s-u)<=n*bo(1,yo(s),yo(u))},t.angle=function(e,t){var n=e.x*e.x+e.y*e.y+e.z*e.z,i=t.x*t.x+t.y*t.y+t.z*t.z;if(0===n||0===i)return 0;var r=(e.x*t.x+e.y*t.y+e.z*t.z)/Io(n*i);return r=Da(r,-1,1),So(r)},t.projectOnPlane=function(e,n,i){return t.subtract(e,n,t.project(e,n,i))},t.project=function(e,n,i){var r=t.lengthSqr(i);return r<1e-6?t.set(e,0,0,0):t.multiplyScalar(e,i,t.dot(n,i)/r)},t.moveTowards=function(e,t,n,i){var r=n.x-t.x,s=n.y-t.y,a=n.z-t.z,o=r*r+s*s+a*a;if(0===o||i>=0&&o0&&(r=1/Io(r),e.x=t*r,e.y=n*r,e.z=i*r),e},n.transformMat4=function(e){var t=this,n=t.x,i=t.y,r=t.z,s=e.m03*n+e.m07*i+e.m11*r+e.m15;return s=s?1/s:1,t.x=(e.m00*n+e.m04*i+e.m08*r+e.m12)*s,t.y=(e.m01*n+e.m05*i+e.m09*r+e.m13)*s,t.z=(e.m02*n+e.m06*i+e.m10*r+e.m14)*s,t},n.toVec2=function(){return new u.Vec2(this.x,this.y)},t}(St));function Lo(e,t,n){return new Fo(e,t,n)}mo=Fo,Fo.UNIT_X=Oo(1,0,0),Fo.UNIT_Y=Oo(0,1,0),Fo.UNIT_Z=Oo(0,0,1),Fo.RIGHT=Oo(1,0,0),Fo.UP=Oo(0,1,0),Fo.FORWARD=Oo(0,0,-1),Fo.ZERO=Oo(0,0,0),Fo.ONE=Oo(1,1,1),Fo.NEG_ONE=Oo(-1,-1,-1),Fo.slerp=(Bo=new mo,Do=new mo,Po=new mo,function(e,t,n,i){var r=1e-5,s=mo.len(t),a=mo.len(n);if(s.99999)return mo.lerp(e,t,n,i);if(u<-.99999){var c=mo.multiplyScalar(Bo,t,1/s),h=mo.generateOrthogonal(Do,c);return ko(Po,c,h,To*i),mo.multiplyScalar(e,Po,o),e}var l=u,f=So(l)*i,d=mo.multiplyScalar(Bo,t,1/s),p=mo.multiplyScalar(Do,n,1/a);return mo.scaleAndAdd(Po,p,d,-l),mo.normalize(Po,Po),mo.multiplyScalar(Po,Po,xo(f)),mo.scaleAndAdd(Po,Po,d,Eo(f)),mo.multiplyScalar(e,Po,o),e}),Fo.signedAngle=(Mo=new mo,function(e,t,n){var i=mo.angle(e,t),r=mo.cross(Mo,e,t);return mo.dot(r,n)<0?-i:i}),En.fastDefine("cc.Vec3",Fo,{x:0,y:0,z:0}),u.Vec3=Fo;var No,ko=(No={x:0,y:0,z:0,w:0},function(e,t,n,i){var r=.5*i,s=xo(r);return No.x=s*n.x,No.y=s*n.y,No.z=s*n.z,No.w=Eo(r),Fo.transformQuat(e,t,No),e});u.v3=Lo;var zo=1/255,Uo=Math.abs,Go=Math.max;function Vo(e,t,n,i){return Object.freeze(new Wo(e,t,n,i))}var Ho,Wo=e("Color",function(e){function t(t,n,i,r){var s;return(s=e.call(this)||this)._data=new Uint8ClampedArray(4),"string"==typeof t?s.fromHEX(t):void 0!==n?s.set(t,n,i,r):s.set(t),s}p(t,e),t.clone=function(e){var n=new t;return n.r=e.r,n.g=e.g,n.b=e.b,n.a=e.a,n},t.copy=function(e,t){return e.r=t.r,e.g=t.g,e.b=t.b,e.a=t.a,e},t.set=function(e,t,n,i,r){return e.r=t,e.g=n,e.b=i,e.a=r,e},t.toVec4=function(e,t){var n=e._data;return(t=void 0!==t?t:new go).x=n[0]*zo,t.y=n[1]*zo,t.z=n[2]*zo,t.w=n[3]*zo,t},t.fromVec4=function(e,n){var i=(n=void 0===n?new t:n)._data;return i[0]=e.x/zo,i[1]=e.y/zo,i[2]=e.z/zo,i[3]=e.w/zo,n},t.fromHEX=function(e,t){var n;return"string"==typeof t?(6===(t="#"===t[0]?t.substring(1):t).length?t+="FF":3===t.length?t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]+"FF":4===t.length&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]),n=Number("0x"+t)):(t<16777216&&(t=255+(t<<8)),n=t),e.r=n>>>24,e.g=(16711680&n)>>>16,e.b=(65280&n)>>>8,e.a=255&n,e},t.add=function(e,t,n){return e.r=t.r+n.r,e.g=t.g+n.g,e.b=t.b+n.b,e.a=t.a+n.a,e},t.subtract=function(e,t,n){return e.r=t.r-n.r,e.g=t.g-n.g,e.b=t.b-n.b,e.a=t.a-n.a,e},t.multiply=function(e,t,n){return e.r=t.r*n.r,e.g=t.g*n.g,e.b=t.b*n.b,e.a=t.a*n.a,e},t.divide=function(e,t,n){return e.r=t.r/n.r,e.g=t.g/n.g,e.b=t.b/n.b,e.a=t.a/n.a,e},t.scale=function(e,t,n){return e.r=t.r*n,e.g=t.g*n,e.b=t.b*n,e.a=t.a*n,e},t.lerp=function(e,t,n,i){var r=t.r,s=t.g,a=t.b,o=t.a;return e.r=r+(n.r-r)*i,e.g=s+(n.g-s)*i,e.b=a+(n.b-a)*i,e.a=o+(n.a-o)*i,e},t.toArray=function(e,n,i){void 0===i&&(i=0);var r=n instanceof t||n.a>1?1/255:1;return e[i+0]=n.r*r,e[i+1]=n.g*r,e[i+2]=n.b*r,e[i+3]=n.a*r,e},t.fromArray=function(e,t,n){return void 0===n&&(n=0),t.r=255*e[n+0],t.g=255*e[n+1],t.b=255*e[n+2],t.a=255*e[n+3],t},t.fromUint32=function(e,t){return t>>>=0,e.r=255&t,e.g=t>>8&255,e.b=t>>16&255,e.a=t>>24&255,e},t.toUint32=function(e){return(e.a<<24|e.b<<16|e.g<<8|e.r)>>>0},t.strictEquals=function(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a},t.equals=function(e,t,n){return void 0===n&&(n=Ca),!(Uo(e.r)===1/0||Uo(e.g)===1/0||Uo(e.b)===1/0||Uo(e.a)===1/0)&&Uo(e.r-t.r)<=n*Go(1,Uo(e.r),Uo(t.r))&&Uo(e.g-t.g)<=n*Go(1,Uo(e.g),Uo(t.g))&&Uo(e.b-t.b)<=n*Go(1,Uo(e.b),Uo(t.b))&&Uo(e.a-t.a)<=n*Go(1,Uo(e.a),Uo(t.a))},t.hex=function(e){return(255*e.r<<24|255*e.g<<16|255*e.b<<8|255*e.a)>>>0};var n=t.prototype;return n.clone=function(){var e=new t;return e._data.set(this._data),e},n.equals=function(e){var t=e,n=this._data;return e&&n[0]===t.r&&n[1]===t.g&&n[2]===t.b&&n[3]===t.a},n.lerp=function(e,n){return t.lerp(this,this,e,n),this},n.toString=function(){return"rgba("+this.r.toFixed()+", "+this.g.toFixed()+", "+this.b.toFixed()+", "+this.a.toFixed()+")"},n.toCSS=function(e){return void 0===e&&(e="rgba"),"rgba"===e?"rgba("+this.r+","+this.g+","+this.b+","+(this.a*zo).toFixed(2)+")":"rgb"===e?"rgb("+this.r+","+this.g+","+this.b+")":"#"+this.toHEX(e)},n.fromHEX=function(e){var t;return"string"==typeof e?(6===(e="#"===e[0]?e.substring(1):e).length?e+="FF":3===e.length?e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]+"FF":4===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]),t=Number("0x"+e)):(e<16777216&&(e=255+(e<<8)),t=e),this.r=t>>>24,this.g=(16711680&t)>>>16,this.b=(65280&t)>>>8,this.a=255&t,this},n.toHEX=function(e){void 0===e&&(e="#rrggbb");var t=this._data,n="0",i=[(t[0]<16?n:"")+t[0].toString(16),(t[1]<16?n:"")+t[1].toString(16),(t[2]<16?n:"")+t[2].toString(16)];return"#rgb"===e?(i[0]=i[0][0],i[1]=i[1][0],i[2]=i[2][0]):"#rrggbbaa"===e&&i.push((t[3]<16?n:"")+t[3].toString(16)),i.join("")},n.toRGBValue=function(){return this._data[2]<<16|this._data[1]<<8|this._data[0]},n.fromHSV=function(e,t,n){var i=0,r=0,s=0;if(0===t)i=r=s=n;else if(0===n)i=r=s=0;else{1===e&&(e=0),e*=6;var a=Math.floor(e),o=e-a,u=n*(1-t),c=n*(1-t*o),h=n*(1-t*(1-o));switch(a){default:case 0:i=n,r=h,s=u;break;case 1:i=c,r=n,s=u;break;case 2:i=u,r=n,s=h;break;case 3:i=u,r=c,s=n;break;case 4:i=h,r=u,s=n;break;case 5:i=n,r=u,s=c}}var l=this._data;return l[0]=255*i,l[1]=255*r,l[2]=255*s,this},n.toHSV=function(){var e=this._data[0]*zo,t=this._data[1]*zo,n=this._data[2]*zo,i={h:0,s:0,v:0},r=Math.max(e,t,n),s=Math.min(e,t,n),a=0;return i.v=r,i.s=r?(r-s)/r:0,i.s?(a=r-s,i.h=e===r?(t-n)/a:t===r?2+(n-e)/a:4+(e-t)/a,i.h/=6,i.h<0&&(i.h+=1)):i.h=0,i},n.set=function(e,t,n,i){var r=this._data;if("object"==typeof e){var s,a,o,u,c=e;c._data?r.set(c._data):(r[0]=null!==(s=c.r)&&void 0!==s?s:0,r[1]=null!==(a=c.g)&&void 0!==a?a:0,r[2]=null!==(o=c.b)&&void 0!==o?o:0,r[3]=null!==(u=c.a)&&void 0!==u?u:255)}else r[0]=null!=e?e:0,r[1]=null!=t?t:0,r[2]=null!=n?n:0,r[3]=null!=i?i:255;return this},n.multiply=function(e){var t=this._data;return t[0]*=e.r/255,t[1]*=e.g/255,t[2]*=e.b/255,t[3]*=e.a/255,this},n.getModifiableProperties=function(){return["r","g","b","a"]},f(t,[{key:"r",get:function(){return this._data[0]},set:function(e){this._data[0]=e}},{key:"g",get:function(){return this._data[1]},set:function(e){this._data[1]=e}},{key:"b",get:function(){return this._data[2]},set:function(e){this._data[2]=e}},{key:"a",get:function(){return this._data[3]},set:function(e){this._data[3]=e}},{key:"x",get:function(){return this._data[0]*zo},set:function(e){this._data[0]=255*e}},{key:"y",get:function(){return this._data[1]*zo},set:function(e){this._data[1]=255*e}},{key:"z",get:function(){return this._data[2]*zo},set:function(e){this._data[2]=255*e}},{key:"w",get:function(){return this._data[3]*zo},set:function(e){this._data[3]=255*e}}]),t}(St));function jo(e,t,n,i){return new Wo(e,t,n,i)}function Xo(e,t,n){if(t>n){var i=t;t=n,n=i}return en?n:e}function qo(e){var t=e.clone();return t.x=Math.floor(e.x),t.y=Math.floor(e.y),t.z=Math.floor(e.z),t}function Yo(e){var t=Math.max(Math.max(e.x,e.y),e.z),n=128;t>1e-4&&(n=Math.log(t)/Math.log(1.1),n=Da((n=Math.ceil(n))+128,0,255));var i=1/Math.pow(1.1,n-128),r=Xo(e.multiplyScalar(i),new Fo(0,0,0),new Fo(1,1,1));r.multiplyScalar(255);var s,a,o=qo(r).add((s=r.subtract(qo(r)))<(a=new Fo(.5,.5,.5))?a:s);return new go(o.x/255,o.y/255,o.z/255,n/255)}Wo.WHITE=Vo(255,255,255,255),Wo.GRAY=Vo(127,127,127,255),Wo.BLACK=Vo(0,0,0,255),Wo.TRANSPARENT=Vo(0,0,0,0),Wo.RED=Vo(255,0,0,255),Wo.GREEN=Vo(0,255,0,255),Wo.BLUE=Vo(0,0,255,255),Wo.CYAN=Vo(0,255,255,255),Wo.MAGENTA=Vo(255,0,255,255),Wo.YELLOW=Vo(255,255,0,255),En.fastDefine("cc.Color",Wo,{r:0,g:0,b:0,a:255}),u.Color=Wo,u.color=jo;var Ko=Math.abs,Qo=Math.max,Zo=e("Mat3",function(e){function t(t,n,i,r,s,a,o,u,c){var h;void 0===t&&(t=1),void 0===n&&(n=0),void 0===i&&(i=0),void 0===r&&(r=0),void 0===s&&(s=1),void 0===a&&(a=0),void 0===o&&(o=0),void 0===u&&(u=0),void 0===c&&(c=1);var l=b(h=e.call(this)||this);return"object"==typeof t?(l.m00=t.m00,l.m01=t.m01,l.m02=t.m02,l.m03=t.m03,l.m04=t.m04,l.m05=t.m05,l.m06=t.m06,l.m07=t.m07,l.m08=t.m08):(l.m00=t,l.m01=n,l.m02=i,l.m03=r,l.m04=s,l.m05=a,l.m06=o,l.m07=u,l.m08=c),h}p(t,e),t.clone=function(e){return new t(e.m00,e.m01,e.m02,e.m03,e.m04,e.m05,e.m06,e.m07,e.m08)},t.copy=function(e,t){return e.m00=t.m00,e.m01=t.m01,e.m02=t.m02,e.m03=t.m03,e.m04=t.m04,e.m05=t.m05,e.m06=t.m06,e.m07=t.m07,e.m08=t.m08,e},t.set=function(e,t,n,i,r,s,a,o,u,c){return e.m00=t,e.m01=n,e.m02=i,e.m03=r,e.m04=s,e.m05=a,e.m06=o,e.m07=u,e.m08=c,e},t.identity=function(e){return e.m00=1,e.m01=0,e.m02=0,e.m03=0,e.m04=1,e.m05=0,e.m06=0,e.m07=0,e.m08=1,e},t.transpose=function(e,t){if(e===t){var n=t.m01,i=t.m02,r=t.m05;e.m01=t.m03,e.m02=t.m06,e.m03=n,e.m05=t.m07,e.m06=i,e.m07=r}else e.m00=t.m00,e.m01=t.m03,e.m02=t.m06,e.m03=t.m01,e.m04=t.m04,e.m05=t.m07,e.m06=t.m02,e.m07=t.m05,e.m08=t.m08;return e},t.invert=function(e,n){var i=n.m00,r=n.m01,s=n.m02,a=n.m03,o=n.m04,u=n.m05,c=n.m06,h=n.m07,l=n.m08,f=l*o-u*h,d=-l*a+u*c,p=h*a-o*c,_=i*f+r*d+s*p;return 0===_?(t.set(e,0,0,0,0,0,0,0,0,0),e):(_=1/_,e.m00=f*_,e.m01=(-l*r+s*h)*_,e.m02=(u*r-s*o)*_,e.m03=d*_,e.m04=(l*i-s*c)*_,e.m05=(-u*i+s*a)*_,e.m06=p*_,e.m07=(-h*i+r*c)*_,e.m08=(o*i-r*a)*_,e)},t.determinant=function(e){var t=e.m00,n=e.m01,i=e.m02,r=e.m03,s=e.m04,a=e.m05,o=e.m06,u=e.m07,c=e.m08;return t*(c*s-a*u)+n*(-c*r+a*o)+i*(u*r-s*o)},t.multiply=function(e,t,n){var i=t.m00,r=t.m01,s=t.m02,a=t.m03,o=t.m04,u=t.m05,c=t.m06,h=t.m07,l=t.m08,f=n.m00,d=n.m01,p=n.m02,_=n.m03,m=n.m04,g=n.m05,v=n.m06,y=n.m07,b=n.m08;return e.m00=f*i+d*a+p*c,e.m01=f*r+d*o+p*h,e.m02=f*s+d*u+p*l,e.m03=_*i+m*a+g*c,e.m04=_*r+m*o+g*h,e.m05=_*s+m*u+g*l,e.m06=v*i+y*a+b*c,e.m07=v*r+y*o+b*h,e.m08=v*s+y*u+b*l,e},t.multiplyMat4=function(e,t,n){var i=t.m00,r=t.m01,s=t.m02,a=t.m03,o=t.m04,u=t.m05,c=t.m06,h=t.m07,l=t.m08,f=n.m00,d=n.m01,p=n.m02,_=n.m04,m=n.m05,g=n.m06,v=n.m08,y=n.m09,b=n.m10;return e.m00=f*i+d*a+p*c,e.m01=f*r+d*o+p*h,e.m02=f*s+d*u+p*l,e.m03=_*i+m*a+g*c,e.m04=_*r+m*o+g*h,e.m05=_*s+m*u+g*l,e.m06=v*i+y*a+b*c,e.m07=v*r+y*o+b*h,e.m08=v*s+y*u+b*l,e},t.transform=function(e,t,n){this.translate(e,t,n)},t.translate=function(e,t,n){var i=t.m00,r=t.m01,s=t.m02,a=t.m03,o=t.m04,u=t.m05,c=t.m06,h=t.m07,l=t.m08,f=n.x,d=n.y;return e.m00=i,e.m01=r,e.m02=s,e.m03=a,e.m04=o,e.m05=u,e.m06=f*i+d*a+c,e.m07=f*r+d*o+h,e.m08=f*s+d*u+l,e},t.scale=function(e,t,n){var i=n.x,r=n.y;return e.m00=i*t.m00,e.m01=i*t.m01,e.m02=i*t.m02,e.m03=r*t.m03,e.m04=r*t.m04,e.m05=r*t.m05,e.m06=t.m06,e.m07=t.m07,e.m08=t.m08,e},t.rotate=function(e,t,n){var i=t.m00,r=t.m01,s=t.m02,a=t.m03,o=t.m04,u=t.m05,c=t.m06,h=t.m07,l=t.m08,f=Math.sin(n),d=Math.cos(n);return e.m00=d*i+f*a,e.m01=d*r+f*o,e.m02=d*s+f*u,e.m03=d*a-f*i,e.m04=d*o-f*r,e.m05=d*u-f*s,e.m06=c,e.m07=h,e.m08=l,e},t.fromMat4=function(e,t){return e.m00=t.m00,e.m01=t.m01,e.m02=t.m02,e.m03=t.m04,e.m04=t.m05,e.m05=t.m06,e.m06=t.m08,e.m07=t.m09,e.m08=t.m10,e},t.fromViewUp=function(e,n,i){return Fo.lengthSqr(n)-.999?(t.x=Math.asin(-o),t.y=Math.atan2(a,u),t.z=Math.atan2(i,s),!0):(t.x=Aa,t.y=Math.atan2(r,n),t.z=0,!1):(t.x=-Aa,t.y=Math.atan2(-r,n),t.z=0,!1)};var n=t.prototype;return n.clone=function(){return new t(this)},n.set=function(e,t,n,i,r,s,a,o,u){void 0===e&&(e=1),void 0===t&&(t=0),void 0===n&&(n=0),void 0===i&&(i=0),void 0===r&&(r=1),void 0===s&&(s=0),void 0===a&&(a=0),void 0===o&&(o=0),void 0===u&&(u=1);var c=this;return"object"==typeof e?(c.m00=e.m00,c.m01=e.m01,c.m02=e.m02,c.m03=e.m03,c.m04=e.m04,c.m05=e.m05,c.m06=e.m06,c.m07=e.m07,c.m08=e.m08):(c.m00=e,c.m01=t,c.m02=n,c.m03=i,c.m04=r,c.m05=s,c.m06=a,c.m07=o,c.m08=u),c},n.equals=function(e,n){return void 0===n&&(n=Ca),t.equals(this,e,n)},n.strictEquals=function(e){return t.strictEquals(this,e)},n.toString=function(){var e=this;return"[\n"+e.m00+", "+e.m01+", "+e.m02+",\n"+e.m03+", "+e.m04+", "+e.m05+",\n"+e.m06+", "+e.m07+", "+e.m08+"\n]"},n.identity=function(){return t.identity(this)},n.transpose=function(){var e=this,t=e.m01,n=e.m02,i=e.m05;return e.m01=e.m03,e.m02=e.m06,e.m03=t,e.m05=e.m07,e.m06=n,e.m07=i,e},n.invert=function(){return t.invert(this,this)},n.determinant=function(){return t.determinant(this)},n.add=function(e){var t=this;return t.m00+=e.m00,t.m01+=e.m01,t.m02+=e.m02,t.m03+=e.m03,t.m04+=e.m04,t.m05+=e.m05,t.m06+=e.m06,t.m07+=e.m07,t.m08+=e.m08,t},n.subtract=function(e){var t=this;return t.m00-=e.m00,t.m01-=e.m01,t.m02-=e.m02,t.m03-=e.m03,t.m04-=e.m04,t.m05-=e.m05,t.m06-=e.m06,t.m07-=e.m07,t.m08-=e.m08,t},n.multiply=function(e){return t.multiply(this,this,e)},n.multiplyScalar=function(e){var t=this;return t.m00*=e,t.m01*=e,t.m02*=e,t.m03*=e,t.m04*=e,t.m05*=e,t.m06*=e,t.m07*=e,t.m08*=e,t},n.scale=function(e){var t=e.x,n=e.y,i=this;return i.m00*=t,i.m01*=t,i.m02*=t,i.m03*=n,i.m04*=n,i.m05*=n,i},n.rotate=function(e){var t=this,n=t.m00,i=t.m01,r=t.m02,s=t.m03,a=t.m04,o=t.m05,u=t.m06,c=t.m07,h=t.m08,l=Math.sin(e),f=Math.cos(e);return t.m00=f*n+l*s,t.m01=f*i+l*a,t.m02=f*r+l*o,t.m03=f*s-l*n,t.m04=f*a-l*i,t.m05=f*o-l*r,t.m06=u,t.m07=c,t.m08=h,t},n.fromQuat=function(e){var t=e.x,n=e.y,i=e.z,r=e.w,s=t+t,a=n+n,o=i+i,u=t*s,c=n*s,h=n*a,l=i*s,f=i*a,d=i*o,p=r*s,_=r*a,m=r*o,g=this;return g.m00=1-h-d,g.m03=c-m,g.m06=l+_,g.m01=c+m,g.m04=1-u-d,g.m07=f-p,g.m02=l-_,g.m05=f+p,g.m08=1-u-h,g},t}(St));Ho=Zo,Zo.IDENTITY=Object.freeze(new Ho);var Jo,$o=new Fo,eu=new Fo;En.fastDefine("cc.Mat3",Zo,{m00:1,m01:0,m02:0,m03:0,m04:1,m05:0,m06:0,m07:0,m08:1}),u.Mat3=Zo;var tu=Math.abs,nu=Math.max,iu=Math.min,ru=Math.PI,su=Math.acos,au=Math.sin,ou=Math.cos,uu=Math.sqrt,cu=Math.atan2,hu=Math.asin,lu=Math.sign,fu=e("Quat",function(e){function t(t,n,i,r){var s;return s=e.call(this)||this,"object"==typeof t?(s.x=t.x,s.y=t.y,s.z=t.z,s.w=t.w):(s.x=t||0,s.y=n||0,s.z=i||0,s.w=null!=r?r:1),s}p(t,e),t.clone=function(e){return new t(e.x,e.y,e.z,e.w)},t.copy=function(e,t){return e.x=t.x,e.y=t.y,e.z=t.z,e.w=t.w,e},t.set=function(e,t,n,i,r){return e.x=t,e.y=n,e.z=i,e.w=r,e},t.identity=function(e){return e.x=0,e.y=0,e.z=0,e.w=1,e},t.rotationTo=function(e,n,i){var r=Fo.dot(n,i);return r<-.999999?(Fo.cross(mu,Fo.UNIT_X,n),mu.length()<1e-6&&Fo.cross(mu,Fo.UNIT_Y,n),Fo.normalize(mu,mu),t.fromAxisAngle(e,mu,ru),e):r>.999999?(e.x=0,e.y=0,e.z=0,e.w=1,e):(Fo.cross(mu,n,i),e.x=mu.x,e.y=mu.y,e.z=mu.z,e.w=1+r,t.normalize(e,e))},t.getAxisAngle=function(e,t){var n=2*su(t.w),i=au(n/2);return 0!==i?(e.x=t.x/i,e.y=t.y/i,e.z=t.z/i):(e.x=1,e.y=0,e.z=0),n},t.multiply=function(e,t,n){var i=t.x*n.w+t.w*n.x+t.y*n.z-t.z*n.y,r=t.y*n.w+t.w*n.y+t.z*n.x-t.x*n.z,s=t.z*n.w+t.w*n.z+t.x*n.y-t.y*n.x,a=t.w*n.w-t.x*n.x-t.y*n.y-t.z*n.z;return e.x=i,e.y=r,e.z=s,e.w=a,e},t.multiplyScalar=function(e,t,n){return e.x=t.x*n,e.y=t.y*n,e.z=t.z*n,e.w=t.w*n,e},t.scaleAndAdd=function(e,t,n,i){return e.x=t.x+n.x*i,e.y=t.y+n.y*i,e.z=t.z+n.z*i,e.w=t.w+n.w*i,e},t.rotateX=function(e,t,n){var i=au(n*=.5),r=ou(n),s=t.x,a=t.y,o=t.z,u=t.w;return e.x=s*r+u*i,e.y=a*r+o*i,e.z=o*r-a*i,e.w=u*r-s*i,e},t.rotateY=function(e,t,n){var i=au(n*=.5),r=ou(n),s=t.x,a=t.y,o=t.z,u=t.w;return e.x=s*r-o*i,e.y=a*r+u*i,e.z=o*r+s*i,e.w=u*r-a*i,e},t.rotateZ=function(e,t,n){var i=au(n*=.5),r=ou(n),s=t.x,a=t.y,o=t.z,u=t.w;return e.x=s*r+a*i,e.y=a*r-s*i,e.z=o*r+u*i,e.w=u*r-o*i,e},t.rotateAround=function(e,n,i,r){return t.invert(pu,n),Fo.transformQuat(mu,i,pu),t.fromAxisAngle(pu,mu,r),t.multiply(e,n,pu),e},t.rotateAroundLocal=function(e,n,i,r){return t.fromAxisAngle(pu,i,r),t.multiply(e,n,pu),e},t.calculateW=function(e,t){return e.x=t.x,e.y=t.y,e.z=t.z,e.w=uu(tu(1-t.x*t.x-t.y*t.y-t.z*t.z)),e},t.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},t.lerp=function(e,t,n,i){return e.x=t.x+i*(n.x-t.x),e.y=t.y+i*(n.y-t.y),e.z=t.z+i*(n.z-t.z),e.w=t.w+i*(n.w-t.w),e},t.slerp=function(e,t,n,i){var r=0,s=0,a=n.x,o=n.y,u=n.z,c=n.w,h=t.x*n.x+t.y*n.y+t.z*n.z+t.w*n.w;if(h<0&&(h=-h,a=-a,o=-o,u=-u,c=-c),1-h>1e-6){var l=su(h),f=au(l);r=au((1-i)*l)/f,s=au(i*l)/f}else r=1-i,s=i;return e.x=r*t.x+s*a,e.y=r*t.y+s*o,e.z=r*t.z+s*u,e.w=r*t.w+s*c,e},t.sqlerp=function(e,n,i,r,s,a){return t.slerp(pu,n,s,a),t.slerp(_u,i,r,a),t.slerp(e,pu,_u,2*a*(1-a)),e},t.invert=function(e,t){var n=t.x*t.x+t.y*t.y+t.z*t.z+t.w*t.w,i=n?1/n:0;return e.x=-t.x*i,e.y=-t.y*i,e.z=-t.z*i,e.w=t.w*i,e},t.conjugate=function(e,t){return e.x=-t.x,e.y=-t.y,e.z=-t.z,e.w=t.w,e},t.len=function(e){return uu(e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w)},t.lengthSqr=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},t.normalize=function(e,t){var n=t.x*t.x+t.y*t.y+t.z*t.z+t.w*t.w;return n>0?(n=1/uu(n),e.x=t.x*n,e.y=t.y*n,e.z=t.z*n,e.w=t.w*n):(e.x=0,e.y=0,e.z=0,e.w=0),e},t.fromAxes=function(e,n,i,r){return Zo.set(gu,n.x,n.y,n.z,i.x,i.y,i.z,r.x,r.y,r.z),t.normalize(e,t.fromMat3(e,gu))},t.fromViewUp=function(e,n,i){return Zo.fromViewUp(gu,n,i),t.normalize(e,t.fromMat3(e,gu))},t.fromAxisAngle=function(e,t,n){var i=au(n*=.5);return e.x=i*t.x,e.y=i*t.y,e.z=i*t.z,e.w=ou(n),e},t.fromMat3=function(e,t){var n=t.m00,i=t.m01,r=t.m02,s=t.m03,a=t.m04,o=t.m05,u=t.m06,c=t.m07,h=t.m08,l=n-a-h,f=a-n-h,d=h-n-a,p=0,_=n+a+h;l>_&&(_=l,p=1),f>_&&(_=f,p=2),d>_&&(_=d,p=3);var m=.5*uu(_+1),g=.25/m;switch(p){case 0:e.w=m,e.x=(o-c)*g,e.y=(u-r)*g,e.z=(i-s)*g;break;case 1:e.w=(o-c)*g,e.x=m,e.y=(i+s)*g,e.z=(u+r)*g;break;case 2:e.w=(u-r)*g,e.x=(i+s)*g,e.y=m,e.z=(o+c)*g;break;case 3:e.w=(i-s)*g,e.x=(u+r)*g,e.y=(o+c)*g,e.z=m;break;default:e.w=1,e.x=0,e.y=0,e.z=0}return e},t.fromEuler=function(e,t,n,i){n*=vu,i*=vu;var r=au(t*=vu),s=ou(t),a=au(n),o=ou(n),u=au(i),c=ou(i);return e.x=r*o*c+s*a*u,e.y=s*a*c+r*o*u,e.z=s*o*u-r*a*c,e.w=s*o*c-r*a*u,e},t.fromAngleZ=function(e,t){return t*=vu,e.x=e.y=0,e.z=au(t),e.w=ou(t),e},t.toAxisX=function(e,t){var n=2*t.y,i=2*t.z;return e.x=1-n*t.y-i*t.z,e.y=n*t.x+i*t.w,e.z=i*t.x-n*t.w,e},t.toAxisY=function(e,t){var n=2*t.x,i=2*t.y,r=2*t.z;return e.x=i*t.x-r*t.w,e.y=1-n*t.x-r*t.z,e.z=r*t.y+n*t.w,e},t.toAxisZ=function(e,t){var n=2*t.x,i=2*t.y,r=2*t.z;return e.x=r*t.x+i*t.w,e.y=r*t.y-n*t.w,e.z=1-n*t.x-i*t.y,e},t.toEuler=function(e,t,n){var i=t.x,r=t.y,s=t.z,a=t.w,o=0,u=0,c=0,h=i*r+s*a;if(h>.499999)o=0,u=La(2*cu(i,a)),c=90;else if(h<-.499999)o=0,u=-La(2*cu(i,a)),c=-90;else{var l=r*r,f=s*s;o=La(cu(2*i*a-2*r*s,1-i*i*2-2*f)),u=La(cu(2*r*a-2*i*s,1-2*l-2*f)),c=La(hu(2*h)),n&&(o=-180*lu(o+1e-6)+o,u=-180*lu(u+1e-6)+u,c=180*lu(c+1e-6)-c)}return e.x=o,e.y=u,e.z=c,e},t.toEulerInYXZOrder=function(e,t){Zo.fromQuat(gu,t),Zo.toEuler(gu,e),e.x=La(e.x),e.y=La(e.y),e.z=La(e.z)},t.toArray=function(e,t,n){return void 0===n&&(n=0),e[n+0]=t.x,e[n+1]=t.y,e[n+2]=t.z,e[n+3]=t.w,e},t.fromArray=function(e,t,n){return void 0===n&&(n=0),e.x=t[n+0],e.y=t[n+1],e.z=t[n+2],e.w=t[n+3],e},t.strictEquals=function(e,t){return e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},t.equals=function(e,t,n){return void 0===n&&(n=Ca),tu(e.x-t.x)<=n*nu(1,tu(e.x),tu(t.x))&&tu(e.y-t.y)<=n*nu(1,tu(e.y),tu(t.y))&&tu(e.z-t.z)<=n*nu(1,tu(e.z),tu(t.z))&&tu(e.w-t.w)<=n*nu(1,tu(e.w),tu(t.w))},t.angle=function(e,n){var i=iu(tu(t.dot(e,n)),1);return 2*su(i)},t.rotateTowards=function(e,n,i,r){var s=t.angle(n,i);if(0===s)return e.x=i.x,e.y=i.y,e.z=i.z,e.w=i.w,e;var a=iu(r/La(s),1);return t.slerp(e,n,i,a)};var n=t.prototype;return n.clone=function(){return new t(this.x,this.y,this.z,this.w)},n.set=function(e,t,n,i){return"object"==typeof e?(this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w):(this.x=e||0,this.y=t||0,this.z=n||0,this.w=null!=i?i:1),this},n.equals=function(e,n){return void 0===n&&(n=Ca),t.equals(this,e,n)},n.strictEquals=function(e){return e&&this.x===e.x&&this.y===e.y&&this.z===e.z&&this.w===e.w},n.getEulerAngles=function(e){return t.toEuler(e,this)},n.lerp=function(e,t){var n=this;return n.x+=t*(e.x-n.x),n.y+=t*(e.y-n.y),n.z+=t*(e.z-n.z),n.w+=t*(e.w-n.w),n},n.slerp=function(e,n){return t.slerp(this,this,e,n)},n.length=function(){var e=this,t=e.x,n=e.y,i=e.z,r=e.w;return uu(t*t+n*n+i*i+r*r)},n.lengthSqr=function(){var e=this,t=e.x,n=e.y,i=e.z,r=e.w;return t*t+n*n+i*i+r*r},n.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},t}(St));Jo=fu,fu.IDENTITY=Object.freeze(new Jo);var du,pu=new fu,_u=new fu,mu=new Fo,gu=new Zo,vu=.5*ru/180;function yu(e,t,n,i){return void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===i&&(i=1),new fu(e,t,n,i)}En.fastDefine("cc.Quat",fu,{x:0,y:0,z:0,w:1}),u.Quat=fu,u.quat=yu;var bu=Object.freeze,wu=e("preTransforms",bu([bu([1,0,0,1]),bu([0,1,-1,0]),bu([-1,0,0,-1]),bu([0,-1,1,0])])),Tu=Math.abs,Su=Math.max,xu=Math.sqrt,Eu=Math.sin,Iu=Math.cos,Au=Math.tan,Ru=e("Mat4",function(e){function t(t,n,i,r,s,a,o,u,c,h,l,f,d,p,_,m){var g;void 0===t&&(t=1),void 0===n&&(n=0),void 0===i&&(i=0),void 0===r&&(r=0),void 0===s&&(s=0),void 0===a&&(a=1),void 0===o&&(o=0),void 0===u&&(u=0),void 0===c&&(c=0),void 0===h&&(h=0),void 0===l&&(l=1),void 0===f&&(f=0),void 0===d&&(d=0),void 0===p&&(p=0),void 0===_&&(_=0),void 0===m&&(m=1);var v=b(g=e.call(this)||this);return"object"==typeof t?(v.m00=t.m00,g.m01=t.m01,g.m02=t.m02,g.m03=t.m03,v.m04=t.m04,g.m05=t.m05,g.m06=t.m06,g.m07=t.m07,v.m08=t.m08,g.m09=t.m09,g.m10=t.m10,g.m11=t.m11,v.m12=t.m12,g.m13=t.m13,g.m14=t.m14,g.m15=t.m15):(v.m00=t,g.m01=n,g.m02=i,g.m03=r,v.m04=s,g.m05=a,g.m06=o,g.m07=u,v.m08=c,g.m09=h,g.m10=l,g.m11=f,v.m12=d,g.m13=p,g.m14=_,g.m15=m),g}p(t,e),t.clone=function(e){return new t(e.m00,e.m01,e.m02,e.m03,e.m04,e.m05,e.m06,e.m07,e.m08,e.m09,e.m10,e.m11,e.m12,e.m13,e.m14,e.m15)},t.copy=function(e,t){return e.m00=t.m00,e.m01=t.m01,e.m02=t.m02,e.m03=t.m03,e.m04=t.m04,e.m05=t.m05,e.m06=t.m06,e.m07=t.m07,e.m08=t.m08,e.m09=t.m09,e.m10=t.m10,e.m11=t.m11,e.m12=t.m12,e.m13=t.m13,e.m14=t.m14,e.m15=t.m15,e},t.set=function(e,t,n,i,r,s,a,o,u,c,h,l,f,d,p,_,m){return e.m00=t,e.m01=n,e.m02=i,e.m03=r,e.m04=s,e.m05=a,e.m06=o,e.m07=u,e.m08=c,e.m09=h,e.m10=l,e.m11=f,e.m12=d,e.m13=p,e.m14=_,e.m15=m,e},t.identity=function(e){return e.m00=1,e.m01=0,e.m02=0,e.m03=0,e.m04=0,e.m05=1,e.m06=0,e.m07=0,e.m08=0,e.m09=0,e.m10=1,e.m11=0,e.m12=0,e.m13=0,e.m14=0,e.m15=1,e},t.zero=function(e){return e.m00=0,e.m01=0,e.m02=0,e.m03=0,e.m04=0,e.m05=0,e.m06=0,e.m07=0,e.m08=0,e.m09=0,e.m10=0,e.m11=0,e.m12=0,e.m13=0,e.m14=0,e.m15=0,e},t.transpose=function(e,t){if(e===t){var n=t.m01,i=t.m02,r=t.m03,s=t.m06,a=t.m07,o=t.m11;e.m01=t.m04,e.m02=t.m08,e.m03=t.m12,e.m04=n,e.m06=t.m09,e.m07=t.m13,e.m08=i,e.m09=s,e.m11=t.m14,e.m12=r,e.m13=a,e.m14=o}else e.m00=t.m00,e.m01=t.m04,e.m02=t.m08,e.m03=t.m12,e.m04=t.m01,e.m05=t.m05,e.m06=t.m09,e.m07=t.m13,e.m08=t.m02,e.m09=t.m06,e.m10=t.m10,e.m11=t.m14,e.m12=t.m03,e.m13=t.m07,e.m14=t.m11,e.m15=t.m15;return e},t.invert=function(e,n){var i=n.m00,r=n.m01,s=n.m02,a=n.m03,o=n.m04,u=n.m05,c=n.m06,h=n.m07,l=n.m08,f=n.m09,d=n.m10,p=n.m11,_=n.m12,m=n.m13,g=n.m14,v=n.m15,y=i*u-r*o,b=i*c-s*o,w=i*h-a*o,T=r*c-s*u,S=r*h-a*u,x=s*h-a*c,E=l*m-f*_,I=l*g-d*_,A=l*v-p*_,R=f*g-d*m,C=f*v-p*m,O=d*v-p*g,B=y*O-b*C+w*R+T*A-S*I+x*E;return 0===B?t.zero(e):(B=1/B,e.m00=(u*O-c*C+h*R)*B,e.m01=(s*C-r*O-a*R)*B,e.m02=(m*x-g*S+v*T)*B,e.m03=(d*S-f*x-p*T)*B,e.m04=(c*A-o*O-h*I)*B,e.m05=(i*O-s*A+a*I)*B,e.m06=(g*w-_*x-v*b)*B,e.m07=(l*x-d*w+p*b)*B,e.m08=(o*C-u*A+h*E)*B,e.m09=(r*A-i*C-a*E)*B,e.m10=(_*S-m*w+v*y)*B,e.m11=(f*w-l*S-p*y)*B,e.m12=(u*I-o*R-c*E)*B,e.m13=(i*R-r*I+s*E)*B,e.m14=(m*b-_*T-g*y)*B,e.m15=(l*T-f*b+d*y)*B,e)},t.determinant=function(e){var t=e.m00,n=e.m01,i=e.m02,r=e.m03,s=e.m04,a=e.m05,o=e.m06,u=e.m07,c=e.m08,h=e.m09,l=e.m10,f=e.m11,d=e.m12,p=e.m13,_=e.m14,m=e.m15;return(t*a-n*s)*(l*m-f*_)-(t*o-i*s)*(h*m-f*p)+(t*u-r*s)*(h*_-l*p)+(n*o-i*a)*(c*m-f*d)-(n*u-r*a)*(c*_-l*d)+(i*u-r*o)*(c*p-h*d)},t.multiply=function(e,t,n){var i=t.m00,r=t.m01,s=t.m02,a=t.m03,o=t.m04,u=t.m05,c=t.m06,h=t.m07,l=t.m08,f=t.m09,d=t.m10,p=t.m11,_=t.m12,m=t.m13,g=t.m14,v=t.m15,y=n.m00,b=n.m01,w=n.m02,T=n.m03;return e.m00=y*i+b*o+w*l+T*_,e.m01=y*r+b*u+w*f+T*m,e.m02=y*s+b*c+w*d+T*g,e.m03=y*a+b*h+w*p+T*v,y=n.m04,b=n.m05,w=n.m06,T=n.m07,e.m04=y*i+b*o+w*l+T*_,e.m05=y*r+b*u+w*f+T*m,e.m06=y*s+b*c+w*d+T*g,e.m07=y*a+b*h+w*p+T*v,y=n.m08,b=n.m09,w=n.m10,T=n.m11,e.m08=y*i+b*o+w*l+T*_,e.m09=y*r+b*u+w*f+T*m,e.m10=y*s+b*c+w*d+T*g,e.m11=y*a+b*h+w*p+T*v,y=n.m12,b=n.m13,w=n.m14,T=n.m15,e.m12=y*i+b*o+w*l+T*_,e.m13=y*r+b*u+w*f+T*m,e.m14=y*s+b*c+w*d+T*g,e.m15=y*a+b*h+w*p+T*v,e},t.transform=function(e,t,n){var i=n.x,r=n.y,s=n.z;if(t===e)e.m12=t.m00*i+t.m04*r+t.m08*s+t.m12,e.m13=t.m01*i+t.m05*r+t.m09*s+t.m13,e.m14=t.m02*i+t.m06*r+t.m10*s+t.m14,e.m15=t.m03*i+t.m07*r+t.m11*s+t.m15;else{var a=t.m00,o=t.m01,u=t.m02,c=t.m03,h=t.m04,l=t.m05,f=t.m06,d=t.m07,p=t.m08,_=t.m09,m=t.m10,g=t.m11;e.m00=a,e.m01=o,e.m02=u,e.m03=c,e.m04=h,e.m05=l,e.m06=f,e.m07=d,e.m08=p,e.m09=_,e.m10=m,e.m11=g,e.m12=a*i+h*r+p*s+t.m12,e.m13=o*i+l*r+_*s+t.m13,e.m14=u*i+f*r+m*s+t.m14,e.m15=c*i+d*r+g*s+t.m15}return e},t.translate=function(e,t,n){return t===e?(e.m12+=n.x,e.m13+=n.y,e.m14+=n.z):(e.m00=t.m00,e.m01=t.m01,e.m02=t.m02,e.m03=t.m03,e.m04=t.m04,e.m05=t.m05,e.m06=t.m06,e.m07=t.m07,e.m08=t.m08,e.m09=t.m09,e.m10=t.m10,e.m11=t.m11,e.m12=t.m12+n.x,e.m13=t.m13+n.y,e.m14=t.m14+n.z,e.m15=t.m15),e},t.scale=function(e,t,n){var i=n.x,r=n.y,s=n.z;return e.m00=t.m00*i,e.m01=t.m01*i,e.m02=t.m02*i,e.m03=t.m03*i,e.m04=t.m04*r,e.m05=t.m05*r,e.m06=t.m06*r,e.m07=t.m07*r,e.m08=t.m08*s,e.m09=t.m09*s,e.m10=t.m10*s,e.m11=t.m11*s,e.m12=t.m12,e.m13=t.m13,e.m14=t.m14,e.m15=t.m15,e},t.rotate=function(e,t,n,i){var r=i.x,s=i.y,a=i.z,o=xu(r*r+s*s+a*a);if(Tu(o)0?(i=2*xu(n+1),e.w=.25*i,e.x=(t.m06-t.m09)/i,e.y=(t.m08-t.m02)/i,e.z=(t.m01-t.m04)/i):t.m00>t.m05&&t.m00>t.m10?(i=2*xu(1+t.m00-t.m05-t.m10),e.w=(t.m06-t.m09)/i,e.x=.25*i,e.y=(t.m01+t.m04)/i,e.z=(t.m08+t.m02)/i):t.m05>t.m10?(i=2*xu(1+t.m05-t.m00-t.m10),e.w=(t.m08-t.m02)/i,e.x=(t.m01+t.m04)/i,e.y=.25*i,e.z=(t.m06+t.m09)/i):(i=2*xu(1+t.m10-t.m00-t.m05),e.w=(t.m01-t.m04)/i,e.x=(t.m08+t.m02)/i,e.y=(t.m06+t.m09)/i,e.z=.25*i),e},t.toRTS=function(e,n,i,r){t.toSRT(e,n,i,r)},t.toSRT=function(e,t,n,i){n&&Fo.set(n,e.m12,e.m13,e.m14);var r=Fo.set(Cu,e.m00,e.m01,e.m02).length(),s=Fo.set(Cu,e.m04,e.m05,e.m06).length(),a=Fo.set(Cu,e.m08,e.m09,e.m10).length();if(i&&(i.x=r,i.y=s,i.z=a),0!==r&&0!==s&&0!==a){Ou.m00=e.m00/r,Ou.m01=e.m01/r,Ou.m02=e.m02/r,Ou.m03=e.m04/s,Ou.m04=e.m05/s,Ou.m05=e.m06/s,Ou.m06=e.m08/a,Ou.m07=e.m09/a,Ou.m08=e.m10/a;var o=Zo.determinant(Ou);i&&o<0&&(i.x*=-1),t&&(o<0&&(Ou.m00*=-1,Ou.m01*=-1,Ou.m02*=-1),fu.fromMat3(t,Ou))}else t&&fu.identity(t)},t.toEuler=function(e,t){return Zo.set(Ou,e.m00,e.m01,e.m02,e.m04,e.m05,e.m06,e.m08,e.m09,e.m10),Zo.toEuler(Ou,t)},t.fromRTS=function(e,n,i,r){return t.fromSRT(e,n,i,r)},t.fromSRT=function(e,t,n,i){var r=t.x,s=t.y,a=t.z,o=t.w,u=r+r,c=s+s,h=a+a,l=r*u,f=r*c,d=r*h,p=s*c,_=s*h,m=a*h,g=o*u,v=o*c,y=o*h,b=i.x,w=i.y,T=i.z;return e.m00=(1-(p+m))*b,e.m01=(f+y)*b,e.m02=(d-v)*b,e.m03=0,e.m04=(f-y)*w,e.m05=(1-(l+m))*w,e.m06=(_+g)*w,e.m07=0,e.m08=(d+v)*T,e.m09=(_-g)*T,e.m10=(1-(l+p))*T,e.m11=0,e.m12=n.x,e.m13=n.y,e.m14=n.z,e.m15=1,e},t.fromRTSOrigin=function(e,n,i,r,s){return t.fromSRTOrigin(e,n,i,r,s)},t.fromSRTOrigin=function(e,t,n,i,r){var s=t.x,a=t.y,o=t.z,u=t.w,c=s+s,h=a+a,l=o+o,f=s*c,d=s*h,p=s*l,_=a*h,m=a*l,g=o*l,v=u*c,y=u*h,b=u*l,w=i.x,T=i.y,S=i.z,x=r.x,E=r.y,I=r.z;return e.m00=(1-(_+g))*w,e.m01=(d+b)*w,e.m02=(p-y)*w,e.m03=0,e.m04=(d-b)*T,e.m05=(1-(f+g))*T,e.m06=(m+v)*T,e.m07=0,e.m08=(p+y)*S,e.m09=(m-v)*S,e.m10=(1-(f+_))*S,e.m11=0,e.m12=n.x+x-(e.m00*x+e.m04*E+e.m08*I),e.m13=n.y+E-(e.m01*x+e.m05*E+e.m09*I),e.m14=n.z+I-(e.m02*x+e.m06*E+e.m10*I),e.m15=1,e},t.fromQuat=function(e,t){var n=t.x,i=t.y,r=t.z,s=t.w,a=n+n,o=i+i,u=r+r,c=n*a,h=i*a,l=i*o,f=r*a,d=r*o,p=r*u,_=s*a,m=s*o,g=s*u;return e.m00=1-l-p,e.m01=h+g,e.m02=f-m,e.m03=0,e.m04=h-g,e.m05=1-c-p,e.m06=d+_,e.m07=0,e.m08=f+m,e.m09=d-_,e.m10=1-c-l,e.m11=0,e.m12=0,e.m13=0,e.m14=0,e.m15=1,e},t.frustum=function(e,t,n,i,r,s,a){var o=1/(n-t),u=1/(r-i),c=1/(s-a);return e.m00=2*s*o,e.m01=0,e.m02=0,e.m03=0,e.m04=0,e.m05=2*s*u,e.m06=0,e.m07=0,e.m08=(n+t)*o,e.m09=(r+i)*u,e.m10=(a+s)*c,e.m11=-1,e.m12=0,e.m13=0,e.m14=a*s*2*c,e.m15=0,e},t.perspective=function(e,t,n,i,r,s,a,o,u){void 0===s&&(s=!0),void 0===a&&(a=-1),void 0===o&&(o=1),void 0===u&&(u=0);var c=1/Au(t/2),h=1/(i-r),l=s?c/n:c,f=(s?c:c*n)*o,d=wu[u];return e.m00=l*d[0],e.m01=l*d[1],e.m02=0,e.m03=0,e.m04=f*d[2],e.m05=f*d[3],e.m06=0,e.m07=0,e.m08=0,e.m09=0,e.m10=(r-a*i)*h,e.m11=-1,e.m12=0,e.m13=0,e.m14=r*i*h*(1-a),e.m15=0,e},t.ortho=function(e,t,n,i,r,s,a,o,u,c){void 0===o&&(o=-1),void 0===u&&(u=1),void 0===c&&(c=0);var h=1/(t-n),l=1/(i-r)*u,f=1/(s-a),d=-2*h,p=-2*l,_=(t+n)*h,m=(r+i)*l,g=wu[c];return e.m00=d*g[0],e.m01=d*g[1],e.m02=0,e.m03=0,e.m04=p*g[2],e.m05=p*g[3],e.m06=0,e.m07=0,e.m08=0,e.m09=0,e.m10=f*(1-o),e.m11=0,e.m12=_*g[0]+m*g[2],e.m13=_*g[1]+m*g[3],e.m14=(s-o*a)*f,e.m15=1,e},t.lookAt=function(e,t,n,i){var r=t.x,s=t.y,a=t.z,o=i.x,u=i.y,c=i.z,h=r-n.x,l=s-n.y,f=a-n.z,d=1/xu(h*h+l*l+f*f),p=u*(f*=d)-c*(l*=d),_=c*(h*=d)-o*f,m=o*l-u*h,g=l*(m*=d=1/xu(p*p+_*_+m*m))-f*(_*=d),v=f*(p*=d)-h*m,y=h*_-l*p;return e.m00=p,e.m01=g,e.m02=h,e.m03=0,e.m04=_,e.m05=v,e.m06=l,e.m07=0,e.m08=m,e.m09=y,e.m10=f,e.m11=0,e.m12=-(p*r+_*s+m*a),e.m13=-(g*r+v*s+y*a),e.m14=-(h*r+l*s+f*a),e.m15=1,e},t.inverseTranspose=function(e,t){var n=t.m00,i=t.m01,r=t.m02,s=t.m03,a=t.m04,o=t.m05,u=t.m06,c=t.m07,h=t.m08,l=t.m09,f=t.m10,d=t.m11,p=t.m12,_=t.m13,m=t.m14,g=t.m15,v=n*o-i*a,y=n*u-r*a,b=n*c-s*a,w=i*u-r*o,T=i*c-s*o,S=r*c-s*u,x=h*_-l*p,E=h*m-f*p,I=h*g-d*p,A=l*m-f*_,R=l*g-d*_,C=f*g-d*m,O=v*C-y*R+b*A+w*I-T*E+S*x;return O?(O=1/O,e.m00=(o*C-u*R+c*A)*O,e.m01=(u*I-a*C-c*E)*O,e.m02=(a*R-o*I+c*x)*O,e.m03=0,e.m04=(r*R-i*C-s*A)*O,e.m05=(n*C-r*I+s*E)*O,e.m06=(i*I-n*R-s*x)*O,e.m07=0,e.m08=(_*S-m*T+g*w)*O,e.m09=(m*b-p*S-g*y)*O,e.m10=(p*T-_*b+g*v)*O,e.m11=0,e.m12=0,e.m13=0,e.m14=0,e.m15=1,e):null},t.toArray=function(e,t,n){return void 0===n&&(n=0),e[n+0]=t.m00,e[n+1]=t.m01,e[n+2]=t.m02,e[n+3]=t.m03,e[n+4]=t.m04,e[n+5]=t.m05,e[n+6]=t.m06,e[n+7]=t.m07,e[n+8]=t.m08,e[n+9]=t.m09,e[n+10]=t.m10,e[n+11]=t.m11,e[n+12]=t.m12,e[n+13]=t.m13,e[n+14]=t.m14,e[n+15]=t.m15,e},t.fromArray=function(e,t,n){return void 0===n&&(n=0),e.m00=t[n+0],e.m01=t[n+1],e.m02=t[n+2],e.m03=t[n+3],e.m04=t[n+4],e.m05=t[n+5],e.m06=t[n+6],e.m07=t[n+7],e.m08=t[n+8],e.m09=t[n+9],e.m10=t[n+10],e.m11=t[n+11],e.m12=t[n+12],e.m13=t[n+13],e.m14=t[n+14],e.m15=t[n+15],e},t.add=function(e,t,n){return e.m00=t.m00+n.m00,e.m01=t.m01+n.m01,e.m02=t.m02+n.m02,e.m03=t.m03+n.m03,e.m04=t.m04+n.m04,e.m05=t.m05+n.m05,e.m06=t.m06+n.m06,e.m07=t.m07+n.m07,e.m08=t.m08+n.m08,e.m09=t.m09+n.m09,e.m10=t.m10+n.m10,e.m11=t.m11+n.m11,e.m12=t.m12+n.m12,e.m13=t.m13+n.m13,e.m14=t.m14+n.m14,e.m15=t.m15+n.m15,e},t.subtract=function(e,t,n){return e.m00=t.m00-n.m00,e.m01=t.m01-n.m01,e.m02=t.m02-n.m02,e.m03=t.m03-n.m03,e.m04=t.m04-n.m04,e.m05=t.m05-n.m05,e.m06=t.m06-n.m06,e.m07=t.m07-n.m07,e.m08=t.m08-n.m08,e.m09=t.m09-n.m09,e.m10=t.m10-n.m10,e.m11=t.m11-n.m11,e.m12=t.m12-n.m12,e.m13=t.m13-n.m13,e.m14=t.m14-n.m14,e.m15=t.m15-n.m15,e},t.multiplyScalar=function(e,t,n){return e.m00=t.m00*n,e.m01=t.m01*n,e.m02=t.m02*n,e.m03=t.m03*n,e.m04=t.m04*n,e.m05=t.m05*n,e.m06=t.m06*n,e.m07=t.m07*n,e.m08=t.m08*n,e.m09=t.m09*n,e.m10=t.m10*n,e.m11=t.m11*n,e.m12=t.m12*n,e.m13=t.m13*n,e.m14=t.m14*n,e.m15=t.m15*n,e},t.multiplyScalarAndAdd=function(e,t,n,i){return e.m00=t.m00+n.m00*i,e.m01=t.m01+n.m01*i,e.m02=t.m02+n.m02*i,e.m03=t.m03+n.m03*i,e.m04=t.m04+n.m04*i,e.m05=t.m05+n.m05*i,e.m06=t.m06+n.m06*i,e.m07=t.m07+n.m07*i,e.m08=t.m08+n.m08*i,e.m09=t.m09+n.m09*i,e.m10=t.m10+n.m10*i,e.m11=t.m11+n.m11*i,e.m12=t.m12+n.m12*i,e.m13=t.m13+n.m13*i,e.m14=t.m14+n.m14*i,e.m15=t.m15+n.m15*i,e},t.strictEquals=function(e,t){return e.m00===t.m00&&e.m01===t.m01&&e.m02===t.m02&&e.m03===t.m03&&e.m04===t.m04&&e.m05===t.m05&&e.m06===t.m06&&e.m07===t.m07&&e.m08===t.m08&&e.m09===t.m09&&e.m10===t.m10&&e.m11===t.m11&&e.m12===t.m12&&e.m13===t.m13&&e.m14===t.m14&&e.m15===t.m15},t.equals=function(e,t,n){return void 0===n&&(n=Ca),Tu(e.m00-t.m00)<=n*Su(1,Tu(e.m00),Tu(t.m00))&&Tu(e.m01-t.m01)<=n*Su(1,Tu(e.m01),Tu(t.m01))&&Tu(e.m02-t.m02)<=n*Su(1,Tu(e.m02),Tu(t.m02))&&Tu(e.m03-t.m03)<=n*Su(1,Tu(e.m03),Tu(t.m03))&&Tu(e.m04-t.m04)<=n*Su(1,Tu(e.m04),Tu(t.m04))&&Tu(e.m05-t.m05)<=n*Su(1,Tu(e.m05),Tu(t.m05))&&Tu(e.m06-t.m06)<=n*Su(1,Tu(e.m06),Tu(t.m06))&&Tu(e.m07-t.m07)<=n*Su(1,Tu(e.m07),Tu(t.m07))&&Tu(e.m08-t.m08)<=n*Su(1,Tu(e.m08),Tu(t.m08))&&Tu(e.m09-t.m09)<=n*Su(1,Tu(e.m09),Tu(t.m09))&&Tu(e.m10-t.m10)<=n*Su(1,Tu(e.m10),Tu(t.m10))&&Tu(e.m11-t.m11)<=n*Su(1,Tu(e.m11),Tu(t.m11))&&Tu(e.m12-t.m12)<=n*Su(1,Tu(e.m12),Tu(t.m12))&&Tu(e.m13-t.m13)<=n*Su(1,Tu(e.m13),Tu(t.m13))&&Tu(e.m14-t.m14)<=n*Su(1,Tu(e.m14),Tu(t.m14))&&Tu(e.m15-t.m15)<=n*Su(1,Tu(e.m15),Tu(t.m15))};var n=t.prototype;return n.clone=function(){return new t(this.m00,this.m01,this.m02,this.m03,this.m04,this.m05,this.m06,this.m07,this.m08,this.m09,this.m10,this.m11,this.m12,this.m13,this.m14,this.m15)},n.set=function(e,t,n,i,r,s,a,o,u,c,h,l,f,d,p,_){void 0===e&&(e=1),void 0===t&&(t=0),void 0===n&&(n=0),void 0===i&&(i=0),void 0===r&&(r=0),void 0===s&&(s=1),void 0===a&&(a=0),void 0===o&&(o=0),void 0===u&&(u=0),void 0===c&&(c=0),void 0===h&&(h=1),void 0===l&&(l=0),void 0===f&&(f=0),void 0===d&&(d=0),void 0===p&&(p=0),void 0===_&&(_=1);var m=this;return"object"==typeof e?(m.m01=e.m01,m.m02=e.m02,m.m03=e.m03,m.m04=e.m04,m.m05=e.m05,m.m06=e.m06,m.m07=e.m07,m.m08=e.m08,m.m09=e.m09,m.m10=e.m10,m.m11=e.m11,m.m12=e.m12,m.m13=e.m13,m.m14=e.m14,m.m15=e.m15,m.m00=e.m00):(m.m01=t,m.m02=n,m.m03=i,m.m04=r,m.m05=s,m.m06=a,m.m07=o,m.m08=u,m.m09=c,m.m10=h,m.m11=l,m.m12=f,m.m13=d,m.m14=p,m.m15=_,m.m00=e),m},n.equals=function(e,t){void 0===t&&(t=Ca);var n=1/0,i=this,r=i.m00,s=i.m01,a=i.m02,o=i.m03,u=i.m04,c=i.m05,h=i.m06,l=i.m07,f=i.m08,d=i.m09,p=i.m10,_=i.m11,m=i.m12,g=i.m13,v=i.m14,y=i.m15;return!(Tu(r)===n||Tu(s)===n||Tu(a)===n||Tu(o)===n||Tu(u)===n||Tu(c)===n||Tu(h)===n||Tu(l)===n||Tu(f)===n||Tu(d)===n||Tu(p)===n||Tu(_)===n||Tu(m)===n||Tu(g)===n||Tu(v)===n||Tu(y)===n)&&Tu(r-e.m00)<=t*Su(1,Tu(r),Tu(e.m00))&&Tu(s-e.m01)<=t*Su(1,Tu(s),Tu(e.m01))&&Tu(a-e.m02)<=t*Su(1,Tu(a),Tu(e.m02))&&Tu(o-e.m03)<=t*Su(1,Tu(o),Tu(e.m03))&&Tu(u-e.m04)<=t*Su(1,Tu(u),Tu(e.m04))&&Tu(c-e.m05)<=t*Su(1,Tu(c),Tu(e.m05))&&Tu(h-e.m06)<=t*Su(1,Tu(h),Tu(e.m06))&&Tu(l-e.m07)<=t*Su(1,Tu(l),Tu(e.m07))&&Tu(f-e.m08)<=t*Su(1,Tu(f),Tu(e.m08))&&Tu(d-e.m09)<=t*Su(1,Tu(d),Tu(e.m09))&&Tu(p-e.m10)<=t*Su(1,Tu(p),Tu(e.m10))&&Tu(_-e.m11)<=t*Su(1,Tu(_),Tu(e.m11))&&Tu(m-e.m12)<=t*Su(1,Tu(m),Tu(e.m12))&&Tu(g-e.m13)<=t*Su(1,Tu(g),Tu(e.m13))&&Tu(v-e.m14)<=t*Su(1,Tu(v),Tu(e.m14))&&Tu(y-e.m15)<=t*Su(1,Tu(y),Tu(e.m15))},n.strictEquals=function(e){var t=this;return t.m00===e.m00&&t.m01===e.m01&&t.m02===e.m02&&t.m03===e.m03&&t.m04===e.m04&&t.m05===e.m05&&t.m06===e.m06&&t.m07===e.m07&&t.m08===e.m08&&t.m09===e.m09&&t.m10===e.m10&&t.m11===e.m11&&t.m12===e.m12&&t.m13===e.m13&&t.m14===e.m14&&t.m15===e.m15},n.toString=function(){var e=this;return"[\n"+e.m00+", "+e.m01+", "+e.m02+", "+e.m03+",\n"+e.m04+", "+e.m05+", "+e.m06+", "+e.m07+",\n"+e.m08+", "+e.m09+", "+e.m10+", "+e.m11+",\n"+e.m12+", "+e.m13+", "+e.m14+", "+e.m15+"\n]"},n.identity=function(){return t.identity(this)},n.zero=function(){return t.zero(this)},n.transpose=function(){var e=this,t=e.m01,n=e.m02,i=e.m03,r=e.m06,s=e.m07,a=e.m11;return e.m01=e.m04,e.m02=e.m08,e.m03=e.m12,e.m04=t,e.m06=e.m09,e.m07=e.m13,e.m08=n,e.m09=r,e.m11=e.m14,e.m12=i,e.m13=s,e.m14=a,e},n.invert=function(){var e=this,t=e.m00,n=e.m01,i=e.m02,r=e.m03,s=e.m04,a=e.m05,o=e.m06,u=e.m07,c=e.m08,h=e.m09,l=e.m10,f=e.m11,d=e.m12,p=e.m13,_=e.m14,m=e.m15,g=t*a-n*s,v=t*o-i*s,y=t*u-r*s,b=n*o-i*a,w=n*u-r*a,T=i*u-r*o,S=c*p-h*d,x=c*_-l*d,E=c*m-f*d,I=h*_-l*p,A=h*m-f*p,R=l*m-f*_,C=g*R-v*A+y*I+b*E-w*x+T*S;return 0===C?(e.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),e):(C=1/C,e.m00=(a*R-o*A+u*I)*C,e.m01=(i*A-n*R-r*I)*C,e.m02=(p*T-_*w+m*b)*C,e.m03=(l*w-h*T-f*b)*C,e.m04=(o*E-s*R-u*x)*C,e.m05=(t*R-i*E+r*x)*C,e.m06=(_*y-d*T-m*v)*C,e.m07=(c*T-l*y+f*v)*C,e.m08=(s*A-a*E+u*S)*C,e.m09=(n*E-t*A-r*S)*C,e.m10=(d*w-p*y+m*g)*C,e.m11=(h*y-c*w-f*g)*C,e.m12=(a*x-s*I-o*S)*C,e.m13=(t*I-n*x+i*S)*C,e.m14=(p*v-d*b-_*g)*C,e.m15=(c*b-h*v+l*g)*C,e)},n.determinant=function(){var e=this,t=e.m00,n=e.m01,i=e.m02,r=e.m03,s=e.m04,a=e.m05,o=e.m06,u=e.m07,c=e.m08,h=e.m09,l=e.m10,f=e.m11,d=e.m12,p=e.m13,_=e.m14,m=e.m15;return(t*a-n*s)*(l*m-f*_)-(t*o-i*s)*(h*m-f*p)+(t*u-r*s)*(h*_-l*p)+(n*o-i*a)*(c*m-f*d)-(n*u-r*a)*(c*_-l*d)+(i*u-r*o)*(c*p-h*d)},n.add=function(e){var t=this;return t.m00+=e.m00,t.m01+=e.m01,t.m02+=e.m02,t.m03+=e.m03,t.m04+=e.m04,t.m05+=e.m05,t.m06+=e.m06,t.m07+=e.m07,t.m08+=e.m08,t.m09+=e.m09,t.m10+=e.m10,t.m11+=e.m11,t.m12+=e.m12,t.m13+=e.m13,t.m14+=e.m14,t.m15+=e.m15,t},n.subtract=function(e){var t=this;return t.m00-=e.m00,t.m01-=e.m01,t.m02-=e.m02,t.m03-=e.m03,t.m04-=e.m04,t.m05-=e.m05,t.m06-=e.m06,t.m07-=e.m07,t.m08-=e.m08,t.m09-=e.m09,t.m10-=e.m10,t.m11-=e.m11,t.m12-=e.m12,t.m13-=e.m13,t.m14-=e.m14,t.m15-=e.m15,t},n.multiply=function(e){return t.multiply(this,this,e)},n.multiplyScalar=function(e){var t=this;return t.m00*=e,t.m01*=e,t.m02*=e,t.m03*=e,t.m04*=e,t.m05*=e,t.m06*=e,t.m07*=e,t.m08*=e,t.m09*=e,t.m10*=e,t.m11*=e,t.m12*=e,t.m13*=e,t.m14*=e,t.m15*=e,t},n.translate=function(e){return this.m12+=e.x,this.m13+=e.y,this.m14+=e.z,this},n.transform=function(e){var t=e.x,n=e.y,i=e.z,r=this,s=r.m00,a=r.m01,o=r.m02,u=r.m03,c=r.m04,h=r.m05,l=r.m06,f=r.m07,d=r.m08,p=r.m09,_=r.m10,m=r.m11;return r.m12=s*t+c*n+d*i+r.m12,r.m13=a*t+h*n+p*i+r.m13,r.m14=o*t+l*n+_*i+r.m14,r.m15=u*t+f*n+m*i+r.m15,r},n.scale=function(e){var t=e.x,n=e.y,i=e.z,r=this;return r.m00*=t,r.m01*=t,r.m02*=t,r.m03*=t,r.m04*=n,r.m05*=n,r.m06*=n,r.m07*=n,r.m08*=i,r.m09*=i,r.m10*=i,r.m11*=i,r},n.rotate=function(e,t){var n=t.x,i=t.y,r=t.z,s=xu(n*n+i*i+r*r);if(Tu(s)0?(r=1/zu(r),e.x=n*r,e.y=i*r):(e.x=0,e.y=0),e},t.dot=function(e,t){return e.x*t.x+e.y*t.y},t.cross=function(e,t,n){return e instanceof Fo?(e.x=e.y=0,e.z=t.x*n.y-t.y*n.x,e):e.x*t.y-e.y*t.x},t.lerp=function(e,t,n,i){var r=t.x,s=t.y;return e.x=r+i*(n.x-r),e.y=s+i*(n.y-s),e},t.random=function(e,t){t=t||1;var n=2*Na()*Fu;return e.x=ku(n)*t,e.y=Nu(n)*t,e},t.transformMat3=function(e,t,n){var i=t.x,r=t.y;return e.x=n.m00*i+n.m03*r+n.m06,e.y=n.m01*i+n.m04*r+n.m07,e},t.transformMat4=function(e,t,n){var i=t.x,r=t.y;return e.x=n.m00*i+n.m04*r+n.m12,e.y=n.m01*i+n.m05*r+n.m13,e},t.str=function(e){return"Vec2("+e.x+", "+e.y+")"},t.toArray=function(e,t,n){return void 0===n&&(n=0),e[n+0]=t.x,e[n+1]=t.y,e},t.fromArray=function(e,t,n){return void 0===n&&(n=0),e.x=t[n+0],e.y=t[n+1],e},t.strictEquals=function(e,t){return e.x===t.x&&e.y===t.y},t.equals=function(e,t,n){return void 0===n&&(n=Ca),Du(e.x-t.x)<=n*Pu(1,Du(e.x),Du(t.x))&&Du(e.y-t.y)<=n*Pu(1,Du(e.y),Du(t.y))},t.angle=function(e,t){var n=e.x*e.x+e.y*e.y,i=t.x*t.x+t.y*t.y;if(0===n||0===i)return 0;var r=(e.x*t.x+e.y*t.y)/zu(n*i);return r=Da(r,-1,1),Lu(r)};var n=t.prototype;return n.clone=function(){return new t(this.x,this.y)},n.set=function(e,t){return"object"==typeof e?(this.x=e.x,this.y=e.y):(this.x=e||0,this.y=t||0),this},n.equals=function(e,n){return void 0===n&&(n=Ca),t.equals(this,e,n)},n.equals2f=function(e,t,n){return void 0===n&&(n=Ca),Du(this.x-e)<=n*Pu(1,Du(this.x),Du(e))&&Du(this.y-t)<=n*Pu(1,Du(this.y),Du(t))},n.strictEquals=function(e){return e&&this.x===e.x&&this.y===e.y},n.strictEquals2f=function(e,t){return this.x===e&&this.y===t},n.toString=function(){return"("+this.x+", "+this.y+")"},n.lerp=function(e,t){var n=this.x,i=this.y;return this.x=n+t*(e.x-n),this.y=i+t*(e.y-i),this},n.clampf=function(e,t){return this.x=Da(this.x,e.x,t.x),this.y=Da(this.y,e.y,t.y),this},n.add=function(e){return this.x+=e.x,this.y+=e.y,this},n.add2f=function(e,t){return this.x+=e,this.y+=t,this},n.subtract=function(e){return this.x-=e.x,this.y-=e.y,this},n.subtract2f=function(e,t){return this.x-=e,this.y-=t,this},n.multiplyScalar=function(e){return"object"==typeof e&&K(16359),this.x*=e,this.y*=e,this},n.multiply=function(e){return"object"!=typeof e&&K(16360),this.x*=e.x,this.y*=e.y,this},n.multiply2f=function(e,t){return this.x*=e,this.y*=t,this},n.divide=function(e){return this.x/=e.x,this.y/=e.y,this},n.divide2f=function(e,t){return this.x/=e,this.y/=t,this},n.negative=function(){return this.x=-this.x,this.y=-this.y,this},n.dot=function(e){return this.x*e.x+this.y*e.y},n.cross=function(e){return this.x*e.y-this.y*e.x},n.length=function(){return zu(this.x*this.x+this.y*this.y)},n.lengthSqr=function(){return this.x*this.x+this.y*this.y},n.normalize=function(){var e=this,t=e.x,n=e.y,i=t*t+n*n;return i>0&&(i=1/zu(i),e.x*=i,e.y*=i),e},n.angle=function(e){var t=this.lengthSqr(),n=e.lengthSqr();if(0===t||0===n)return 0;var i=this.dot(e)/zu(t*n);return i=Da(i,-1,1),Lu(i)},n.signAngle=function(e){var t=this.cross(e),n=this.dot(e);return Uu(t,n)},n.rotate=function(e){var t=this.x,n=this.y,i=Nu(e),r=ku(e);return this.x=r*t-i*n,this.y=i*t+r*n,this},n.project=function(e){var t=this.dot(e)/e.dot(e);return this.x=e.x*t,this.y=e.y*t,this},n.transformMat4=function(e){var t=this.x,n=this.y;return this.x=e.m00*t+e.m04*n+e.m12,this.y=e.m01*t+e.m05*n+e.m13,this},n.toVec3=function(){return new Fo(this.x,this.y,0)},t}(St));function qu(e,t){return new Xu(e,t)}Xu.ZERO=Wu(0,0),Xu.ONE=Wu(1,1),Xu.NEG_ONE=Wu(-1,-1),Xu.UNIT_X=Wu(1,0),Xu.UNIT_Y=Wu(0,1),En.fastDefine("cc.Vec2",Xu,{x:0,y:0}),u.Vec2=Xu,u.v2=qu,ca(Xu,"Vec2",[{name:"sub",newName:"subtract",target:Xu,targetName:"Vec2"},{name:"mul",newName:"multiply",target:Xu,targetName:"Vec2"},{name:"div",newName:"divide",target:Xu,targetName:"Vec2"},{name:"dist",newName:"distance",target:Xu,targetName:"Vec2"},{name:"sqrDist",newName:"squaredDistance",target:Xu,targetName:"Vec2"},{name:"mag",newName:"len",target:Xu,targetName:"Vec2"},{name:"sqrMag",newName:"lengthSqr",target:Xu,targetName:"Vec2"},{name:"scale",newName:"multiplyScalar",target:Xu,targetName:"Vec2"},{name:"exactEquals",newName:"strictEquals",target:Xu,targetName:"Vec2"}]),ca(Xu.prototype,"Vec2",[{name:"mag",newName:"length",target:Xu.prototype,targetName:"Vec2"},{name:"magSqr",newName:"lengthSqr",target:Xu.prototype,targetName:"Vec2"},{name:"scale",newName:"multiplyScalar",target:Xu.prototype,targetName:"Vec2"},{name:"exactEquals",newName:"strictEquals",target:Xu.prototype,targetName:"Vec2"}]),ca(Fo,"Vec3",[{name:"sub",newName:"subtract",target:Fo,targetName:"Vec3"},{name:"mul",newName:"multiply",target:Fo,targetName:"Vec3"},{name:"div",newName:"divide",target:Fo,targetName:"Vec3"},{name:"dist",newName:"distance",target:Fo,targetName:"Vec3"},{name:"sqrDist",newName:"squaredDistance",target:Fo,targetName:"Vec3"},{name:"mag",newName:"len",target:Fo,targetName:"Vec3"},{name:"sqrMag",newName:"lengthSqr",target:Fo,targetName:"Vec3"},{name:"scale",newName:"multiplyScalar",target:Fo,targetName:"Vec3"},{name:"exactEquals",newName:"strictEquals",target:Fo,targetName:"Vec3"}]),ca(Fo.prototype,"Vec3",[{name:"mag",newName:"length",target:Fo.prototype,targetName:"Vec3"},{name:"magSqr",newName:"lengthSqr",target:Fo.prototype,targetName:"Vec3"},{name:"scale",newName:"multiplyScalar",target:Fo.prototype,targetName:"Vec3"},{name:"exactEquals",newName:"strictEquals",target:Fo.prototype,targetName:"Vec3"}]),ca(go,"Vec4",[{name:"sub",newName:"subtract",target:go,targetName:"Vec4"},{name:"mul",newName:"multiply",target:go,targetName:"Vec4"},{name:"div",newName:"divide",target:go,targetName:"Vec4"},{name:"dist",newName:"distance",target:go,targetName:"Vec4"},{name:"sqrDist",newName:"squaredDistance",target:go,targetName:"Vec4"},{name:"mag",newName:"len",target:go,targetName:"Vec4"},{name:"sqrMag",newName:"lengthSqr",target:go,targetName:"Vec4"},{name:"scale",newName:"multiplyScalar",target:go,targetName:"Vec4"},{name:"exactEquals",newName:"strictEquals",target:go,targetName:"Vec4"}]),ca(go.prototype,"Vec4",[{name:"mag",newName:"length",target:go.prototype,targetName:"Vec4"},{name:"magSqr",newName:"lengthSqr",target:go.prototype,targetName:"Vec4"},{name:"scale",newName:"multiplyScalar",target:go.prototype,targetName:"Vec4"},{name:"exactEquals",newName:"strictEquals",target:go.prototype,targetName:"Vec4"}]),ca(fu,"Quat",[{name:"mag",newName:"len",target:fu,targetName:"Quat"},{name:"mul",newName:"multiply",target:fu,targetName:"Quat"},{name:"sqrMag",newName:"lengthSqr",target:fu,targetName:"Quat"},{name:"scale",newName:"multiplyScalar",target:fu,targetName:"Quat"},{name:"exactEquals",newName:"strictEquals",target:fu,targetName:"Quat"}]),ca(fu.prototype,"Quat",[{name:"scale",newName:"multiplyScalar",target:fu.prototype,targetName:"Quat"},{name:"exactEquals",newName:"strictEquals",target:fu.prototype,targetName:"Quat"}]),ca(Wo,"Color",[{name:"sub",newName:"subtract",target:Wo,targetName:"Color"},{name:"mul",newName:"multiply",target:Wo,targetName:"Color"},{name:"div",newName:"divide",target:Wo,targetName:"Color"},{name:"exactEquals",newName:"strictEquals",target:Wo,targetName:"Color"},{name:"fromHex",newName:"fromHEX",customFunction:function(){for(var e=arguments.length,t=new Array(e),n=0;n=e.x&&t.y<=e.y&&t.y+t.height>=e.y},n.containsRect=function(e){var t=this;return t.x<=e.x&&t.x+t.width>=e.x+e.width&&t.y<=e.y&&t.y+t.height>=e.y+e.height},n.transformMat4=function(e){var t=this,n=t.x,i=t.y,r=n+t.width,s=i+t.height,a=e.m00*n+e.m04*i+e.m12,o=e.m01*n+e.m05*i+e.m13,u=e.m00*r+e.m04*i+e.m12,c=e.m01*r+e.m05*i+e.m13,h=e.m00*n+e.m04*s+e.m12,l=e.m01*n+e.m05*s+e.m13,f=e.m00*r+e.m04*s+e.m12,d=e.m01*r+e.m05*s+e.m13,p=Zu(a,u,h,f),_=Qu(a,u,h,f),m=Zu(o,c,l,d),g=Qu(o,c,l,d);return t.x=p,t.y=m,t.width=_-p,t.height=g-m,t},n.transformMat4ToPoints=function(e,t,n,i,r){var s=this,a=s.x,o=s.y,u=a+s.width,c=o+s.height;t.x=e.m00*a+e.m04*o+e.m12,t.y=e.m01*a+e.m05*o+e.m13,r.x=e.m00*u+e.m04*o+e.m12,r.y=e.m01*u+e.m05*o+e.m13,n.x=e.m00*a+e.m04*c+e.m12,n.y=e.m01*a+e.m05*c+e.m13,i.x=e.m00*u+e.m04*c+e.m12,i.y=e.m01*u+e.m05*c+e.m13},f(t,[{key:"xMin",get:function(){return this.x},set:function(e){this.width+=this.x-e,this.x=e}},{key:"yMin",get:function(){return this.y},set:function(e){this.height+=this.y-e,this.y=e}},{key:"xMax",get:function(){return this.x+this.width},set:function(e){this.width=e-this.x}},{key:"yMax",get:function(){return this.y+this.height},set:function(e){this.height=e-this.y}},{key:"center",get:function(){return new Xu(this.x+.5*this.width,this.y+.5*this.height)},set:function(e){this.x=e.x-.5*this.width,this.y=e.y-.5*this.height}},{key:"origin",get:function(){return new Xu(this.x,this.y)},set:function(e){this.x=e.x,this.y=e.y}},{key:"size",get:function(){return new Yu(this.width,this.height)},set:function(e){this.width=e.width,this.height=e.height}},{key:"z",get:function(){return this.width},set:function(e){this.width=e}},{key:"w",get:function(){return this.height},set:function(e){this.height=e}}]),t}(St));function $u(e,t,n,i){return void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===i&&(i=0),new Ju(e,t,n,i)}En.fastDefine("cc.Rect",Ju,{x:0,y:0,width:0,height:0}),u.Rect=Ju,u.rect=$u;var ec=e("MATH_FLOAT_ARRAY",Float64Array),tc=e("MathBase",function(e){function t(){return e.apply(this,arguments)||this}return p(t,e),t.createFloatArray=function(e){return new ec(e)},f(t,[{key:"array",get:function(){return this._array}}]),t}(St)),nc=Object.freeze({__proto__:null,Color:Wo,EPSILON:Ca,HALF_PI:Aa,MATH_FLOAT_ARRAY:ec,Mat3:Zo,Mat4:Ru,MathBase:tc,Quat:fu,Rect:Ju,Size:Yu,TWO_PI:Ra,Vec2:Xu,Vec3:Fo,Vec4:go,absMax:Ka,absMaxComponent:Ya,approx:Ba,bits:le,clamp:Da,clamp01:Pa,color:jo,enumerableProps:Qa,equals:Oa,floatToHalf:to,halfToFloat:no,inverseLerp:qa,lerp:Ma,mat4:Bu,nextPow2:Wa,pingPong:Xa,preTransforms:wu,pseudoRandom:Ga,pseudoRandomRange:Va,pseudoRandomRangeInt:Ha,quat:yu,random:Na,randomRange:za,randomRangeInt:Ua,rect:$u,repeat:ja,setRandGenerator:ka,size:Ku,toDegree:La,toRadian:Fa,v2:qu,v3:Lo,v4:vo});e("math",nc);var ic=new Fo,rc=new Fo,sc=new Fo,ac=new Fo,oc=new Fo,uc=new Fo,cc=new Array(3),hc=new Array(3);function lc(e,t){return Fo.dot(t.n,e)-t.d}function fc(e,t,n){return Fo.copy(e,t),Fo.subtract(oc,n.center,n.halfExtents),Fo.add(uc,n.center,n.halfExtents),e.x=e.xuc.x?uc.x:e.x,e.y=e.y>uc.y?uc.y:e.y,e.z=e.z>uc.z?uc.z:e.z,e}function dc(e,t,n){Fo.set(ic,n.orientation.m00,n.orientation.m01,n.orientation.m02),Fo.set(rc,n.orientation.m03,n.orientation.m04,n.orientation.m05),Fo.set(sc,n.orientation.m06,n.orientation.m07,n.orientation.m08),cc[0]=ic,cc[1]=rc,cc[2]=sc,hc[0]=n.halfExtents.x,hc[1]=n.halfExtents.y,hc[2]=n.halfExtents.z,Fo.subtract(ac,t,n.center),Fo.set(e,n.center.x,n.center.y,n.center.z);for(var i=0;i<3;i++){var r=Fo.dot(ac,cc[i]);r>hc[i]&&(r=hc[i]),r<-hc[i]&&(r=-hc[i]),e.x+=r*cc[i].x,e.y+=r*cc[i].y,e.z+=r*cc[i].z}return e}var pc=Object.freeze({__proto__:null,point_plane:lc,pt_point_aabb:fc,pt_point_line:function(e,t,n,i){Fo.subtract(ic,n,i);var r=ic.clone(),s=Fo.lengthSqr(r);if(0===s)Fo.copy(e,n);else{Fo.subtract(ic,t,n);var a=Fo.dot(ic,r)/s;a<0?Fo.copy(e,n):a>1?Fo.copy(e,i):Fo.scaleAndAdd(e,n,r,a)}},pt_point_obb:dc,pt_point_plane:function(e,t,n){var i=lc(t,n);return Fo.subtract(e,t,Fo.multiplyScalar(e,n.n,i))}}),_c=function(){function e(e,t,n,i,r,s){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===i&&(i=0),void 0===r&&(r=0),void 0===s&&(s=-1),this.s=void 0,this.e=void 0,this._type=void 0,this._type=2,this.s=new Fo(e,t,n),this.e=new Fo(i,r,s)}return e.create=function(t,n,i,r,s,a){return new e(t,n,i,r,s,a)},e.clone=function(t){return new e(t.s.x,t.s.y,t.s.z,t.e.x,t.e.y,t.e.z)},e.copy=function(e,t){return Fo.copy(e.s,t.s),Fo.copy(e.e,t.e),e},e.fromPoints=function(e,t,n){return Fo.copy(e.s,t),Fo.copy(e.e,n),e},e.set=function(e,t,n,i,r,s,a){return e.s.x=t,e.s.y=n,e.s.z=i,e.e.x=r,e.e.y=s,e.e.z=a,e},e.len=function(e){return Fo.distance(e.s,e.e)},e.prototype.length=function(){return Fo.distance(this.s,this.e)},f(e,[{key:"type",get:function(){return this._type}}]),e}(),mc=function(){function e(e,t,n,i,r,s){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===i&&(i=0),void 0===r&&(r=0),void 0===s&&(s=-1),this._type=1,this.o=new Fo(e,t,n),this.d=new Fo(i,r,s)}return e.create=function(t,n,i,r,s,a){return void 0===t&&(t=0),void 0===n&&(n=0),void 0===i&&(i=0),void 0===r&&(r=0),void 0===s&&(s=0),void 0===a&&(a=1),new e(t,n,i,r,s,a)},e.clone=function(t){return new e(t.o.x,t.o.y,t.o.z,t.d.x,t.d.y,t.d.z)},e.copy=function(e,t){return Fo.copy(e.o,t.o),Fo.copy(e.d,t.d),e},e.fromPoints=function(e,t,n){return Fo.copy(e.o,t),Fo.normalize(e.d,Fo.subtract(e.d,n,t)),e},e.set=function(e,t,n,i,r,s,a){return e.o.x=t,e.o.y=n,e.o.z=i,e.d.x=r,e.d.y=s,e.d.z=a,e},e.prototype.computeHit=function(e,t){Fo.normalize(e,this.d),Fo.scaleAndAdd(e,this.o,e,t)},f(e,[{key:"type",get:function(){return this._type}}]),e}(),gc=new Fo,vc=new Fo,yc=new Fo,bc=new Fo;function wc(e){return Math.max(Math.max(e.x,e.y),e.z)}var Tc,Sc,xc,Ec,Ic,Ac=function(){function e(e,t,n,i){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===i&&(i=1),this._type=4,this._center=new Fo(e,t,n),this._radius=i}e.create=function(t,n,i,r){return new e(t,n,i,r)},e.clone=function(t){return new e(t.center.x,t.center.y,t.center.z,t.radius)},e.copy=function(e,t){return Fo.copy(e.center,t.center),e.radius=t.radius,e},e.fromPoints=function(e,t,n){return Fo.multiplyScalar(e.center,Fo.add(gc,t,n),.5),e.radius=.5*Fo.subtract(gc,n,t).length(),e},e.set=function(e,t,n,i,r){return e.center.x=t,e.center.y=n,e.center.z=i,e.radius=r,e};var t=e.prototype;return t.destroy=function(){},t.clone=function(){return e.clone(this)},t.copy=function(t){return e.copy(this,t)},t.getBoundary=function(e,t){Fo.set(e,this.center.x-this.radius,this.center.y-this.radius,this.center.z-this.radius),Fo.set(t,this.center.x+this.radius,this.center.y+this.radius,this.center.z+this.radius)},t.transform=function(e,t,n,i,r){Fo.transformMat4(r.center,this.center,e),r.radius=this.radius*wc(i)},t.translateAndRotate=function(e,t,n){Fo.transformMat4(n.center,this.center,e)},t.setScale=function(e,t){t.radius=this.radius*wc(e)},t.mergePoint=function(e){this.radius<0&&(this.center.set(e),this.radius=0),Fo.subtract(vc,e,this.center);var t=vc.length();if(t>this.radius){var n=.5*(t-this.radius);this.radius+=n,Fo.multiplyScalar(vc,vc,n/t),Fo.add(this.center,this.center,vc)}},t.mergePoints=function(e){var t=e.length;if(!(t<1)){this.radius=-1;for(var n=0;n-Number.EPSILON))return 0;var r=1/i;Cc(Ec,e.o,t.a);var s=Oc(Ec,xc)*r;if(s<0||s>1)return 0;Dc(Ic,Ec,Tc);var a=Oc(e.d,Ic)*r;if(a<0||s+a>1)return 0;var o=Oc(Sc,Ic)*r;return o<0?0:o}),Vc=function(){var e=Lo();return function(t,n){var i=n.radius,r=n.center,s=t.o,a=t.d,o=i*i;Cc(e,r,s);var u=e.lengthSqr(),c=Oc(e,a),h=o-(u-c*c);if(h<0)return 0;var l=Math.sqrt(h),f=u_?0:p>0?p:_}var jc=function(){var e=Lo(),t=Lo(),n=Lo(),i=Lo(),r=Lo(),s=Lo(),a=Lo(),o=new Array(3),u=new Array(3),c=new Array(3),h=new Array(6);return function(l,f){var d=f.halfExtents,p=f.orientation;o[0]=d.x,o[1]=d.y,o[2]=d.z,e=f.center,t=l.o,n=l.d,Bc(i,p.m00,p.m01,p.m02),Bc(r,p.m03,p.m04,p.m05),Bc(s,p.m06,p.m07,p.m08),Cc(a,e,t),u[0]=Oc(i,n),u[1]=Oc(r,n),u[2]=Oc(s,n),c[0]=Oc(i,a),c[1]=Oc(r,a),c[2]=Oc(s,a);for(var _=0;_<3;++_){if(0===u[_]){if(-c[_]-o[_]>0||-c[_]+o[_]<0)return 0;u[_]=1e-7}h[2*_+0]=(c[_]+o[_])/u[_],h[2*_+1]=(c[_]-o[_])/u[_]}var m=Nc(Nc(kc(h[0],h[1]),kc(h[2],h[3])),kc(h[4],h[5])),g=kc(kc(Nc(h[0],h[1]),Nc(h[2],h[3])),Nc(h[4],h[5]));return g<0||m>g?0:m>0?m:g}}(),Xc=function(){var e=Lo(),t=Lo(),n=Lo(),i=Lo(),r=Lo(),s=Lo(),a=Lo(),o=new Ac;return function(u,c){var h=c.ellipseCenter0,l=c.ellipseCenter1,f=Cc(t,l,h);if(f.length()=0&&R<=1?x:R<0?(o.radius=c.radius,o.center.set(c.ellipseCenter0),Oh.raySphere(u,o)):R>1?(o.radius=c.radius,o.center.set(c.ellipseCenter1),Oh.raySphere(u,o)):0}}(),qc=function(){var e=Lo();return function(t,n){Cc(e,t.e,t.s);var i=-lc(t.s,n)/Oc(e,n.n);return i<0||i>1?0:i}}(),Yc=function(){var e=Lo(),t=Lo(),n=Lo(),i=Lo(),r=Lo(),s=Lo();return function(a,o,u){Cc(e,o.b,o.a),Cc(t,o.c,o.a),Cc(n,a.s,a.e),Dc(r,e,t);var c=Oc(n,r);if(c<=0)return 0;Cc(i,a.s,o.a);var h=Oc(i,r);if(h<0||h>c)return 0;Dc(s,n,i);var l=Oc(t,s);if(l<0||l>c)return 0;var f=-Oc(e,s);if(f<0||l+f>c)return 0;if(u){var d=1/c,p=1-(l*=d)-(f*=d);Bc(u,o.a.x*p+o.b.x*l+o.c.x*f,o.a.y*p+o.b.y*l+o.c.y*f,o.a.z*p+o.b.z*l+o.c.z*f)}return 1}}(),Kc=new mc;function Qc(e,t){Kc.o.set(e.s),Cc(Kc.d,e.e,e.s),Kc.d.normalize();var n=Hc(Kc,t);return n<=e.length()?n:0}function Zc(e,t){Kc.o.set(e.s),Cc(Kc.d,e.e,e.s),Kc.d.normalize();var n=jc(Kc,t);return n<=e.length()?n:0}function Jc(e,t){Kc.o.set(e.s),Cc(Kc.d,e.e,e.s),Kc.d.normalize();var n=Vc(Kc,t);return n<=e.length()?n:0}var $c,eh,th,nh,ih=($c=Lo(),eh=Lo(),th=Lo(),nh=Lo(),function(e,t){return Cc($c,e.center,e.halfExtents),Fc(eh,e.center,e.halfExtents),Cc(th,t.center,t.halfExtents),Fc(nh,t.center,t.halfExtents),$c.x<=nh.x&&eh.x>=th.x&&$c.y<=nh.y&&eh.y>=th.y&&$c.z<=nh.z&&eh.z>=th.z});function rh(e,t,n){Bc(n[0],e.x,t.y,t.z),Bc(n[1],e.x,t.y,e.z),Bc(n[2],e.x,e.y,t.z),Bc(n[3],e.x,e.y,e.z),Bc(n[4],t.x,t.y,t.z),Bc(n[5],t.x,t.y,e.z),Bc(n[6],t.x,e.y,t.z),Bc(n[7],t.x,e.y,e.z)}function sh(e,t,n,i,r,s){Bc(s[0],e.x+n.x*t.x+i.x*t.y+r.x*t.z,e.y+n.y*t.x+i.y*t.y+r.y*t.z,e.z+n.z*t.x+i.z*t.y+r.z*t.z),Bc(s[1],e.x-n.x*t.x+i.x*t.y+r.x*t.z,e.y-n.y*t.x+i.y*t.y+r.y*t.z,e.z-n.z*t.x+i.z*t.y+r.z*t.z),Bc(s[2],e.x+n.x*t.x-i.x*t.y+r.x*t.z,e.y+n.y*t.x-i.y*t.y+r.y*t.z,e.z+n.z*t.x-i.z*t.y+r.z*t.z),Bc(s[3],e.x+n.x*t.x+i.x*t.y-r.x*t.z,e.y+n.y*t.x+i.y*t.y-r.y*t.z,e.z+n.z*t.x+i.z*t.y-r.z*t.z),Bc(s[4],e.x-n.x*t.x-i.x*t.y-r.x*t.z,e.y-n.y*t.x-i.y*t.y-r.y*t.z,e.z-n.z*t.x-i.z*t.y-r.z*t.z),Bc(s[5],e.x+n.x*t.x-i.x*t.y-r.x*t.z,e.y+n.y*t.x-i.y*t.y-r.y*t.z,e.z+n.z*t.x-i.z*t.y-r.z*t.z),Bc(s[6],e.x-n.x*t.x+i.x*t.y-r.x*t.z,e.y-n.y*t.x+i.y*t.y-r.y*t.z,e.z-n.z*t.x+i.z*t.y-r.z*t.z),Bc(s[7],e.x-n.x*t.x-i.x*t.y+r.x*t.z,e.y-n.y*t.x-i.y*t.y+r.y*t.z,e.z-n.z*t.x-i.z*t.y+r.z*t.z)}function ah(e,t){for(var n=Oc(t,e[0]),i=n,r=1;r<8;++r){var s=Oc(t,e[r]);n=si?s:i}return[n,i]}var oh,uh,ch,hh,lh,fh=function(){for(var e=new Array(15),t=0;t<15;t++)e[t]=Lo();for(var n=new Array(8),i=new Array(8),r=0;r<8;r++)n[r]=Lo(),i[r]=Lo();var s=Lo(),a=Lo();return function(t,r){var o=r.orientation;Bc(e[0],1,0,0),Bc(e[1],0,1,0),Bc(e[2],0,0,1),Bc(e[3],o.m00,o.m01,o.m02),Bc(e[4],o.m03,o.m04,o.m05),Bc(e[5],o.m06,o.m07,o.m08);for(var u=0;u<3;++u)Dc(e[6+3*u],e[u],e[3]),Dc(e[7+3*u],e[u],e[4]),Dc(e[7+3*u],e[u],e[5]);Cc(s,t.center,t.halfExtents),Fc(a,t.center,t.halfExtents),rh(s,a,n),sh(r.center,r.halfExtents,e[3],e[4],e[5],i);for(var c=0;c<15;++c){var h=ah(n,e[c]),l=ah(i,e[c]);if(l[0]>h[1]||h[0]>l[1])return 0}return 1}}(),dh=function(e,t){var n=e.halfExtents,i=t.n,r=n.x*zc(i.x)+n.y*zc(i.y)+n.z*zc(i.z),s=Oc(i,e.center);return s+rt.d?0:1},ph=function(e,t){for(var n=t.planes,i=0;ia.x?t++:e[l].x<-a.x&&n++;if(t===s.length||n===s.length)return 0;t=0,n=0;for(var f=0;fa.y?t++:e[f].y<-a.y&&n++;if(t===s.length||n===s.length)return 0;t=0,n=0;for(var d=0;da.z?t++:e[d].z<-a.z&&n++;return t===s.length||n===s.length?0:1}}(),mh=(oh=Lo(),uh=new Zo,function(e,t){return Cc(oh,t,e.center),Fo.transformMat3(oh,oh,Zo.transpose(uh,e.orientation)),n=oh,i=e.halfExtents,zc(n.x)s?0:1}),vh=function(e,t){for(var n=t.planes,i=0;iu.x?n++:t<-u.x&&i++;if(n===c.length||i===c.length)return 0;n=0,i=0;for(var m=0;mu.y?n++:t<-u.y&&i++;if(n===c.length||i===c.length)return 0;n=0,i=0;for(var g=0;gu.z?n++:t<-u.z&&i++;return n===c.length||i===c.length?0:1}}(),bh=function(){for(var e=new Array(15),t=0;t<15;t++)e[t]=Lo();for(var n=new Array(8),i=new Array(8),r=0;r<8;r++)n[r]=Lo(),i[r]=Lo();return function(t,r){var s=t.orientation,a=r.orientation;Bc(e[0],s.m00,s.m01,s.m02),Bc(e[1],s.m03,s.m04,s.m05),Bc(e[2],s.m06,s.m07,s.m08),Bc(e[3],a.m00,a.m01,a.m02),Bc(e[4],a.m03,a.m04,a.m05),Bc(e[5],a.m06,a.m07,a.m08);for(var o=0;o<3;++o)Dc(e[6+3*o],e[o],e[3]),Dc(e[7+3*o],e[o],e[4]),Dc(e[8+3*o],e[o],e[5]);sh(t.center,t.halfExtents,e[0],e[1],e[2],n),sh(r.center,r.halfExtents,e[3],e[4],e[5],i);for(var u=0;u<15;++u){var c=ah(n,e[u]),h=ah(i,e[u]);if(h[0]>c[1]||c[0]>h[1])return 0}return 1}}(),wh=function(){for(var e=new Ac,t=Lo(),n=Lo(),i=Lo(),r=new Array(8),s=0;s<8;s++)r[s]=Lo();for(var a=new Array(8),o=0;o<8;o++)a[o]=Lo();return function(s,o){var u=o.ellipseCenter0,c=o.ellipseCenter1,h=o.radius;if(0===Rc(u,c))return e.radius=o.radius,e.center.set(u),Oh.sphereOBB(e,s);var l=s.orientation;t.x=l.m00,t.y=l.m01,t.z=l.m02,n.x=l.m03,n.y=l.m04,n.z=l.m05,i.x=l.m06,i.y=l.m07,i.z=l.m08,sh(s.center,s.halfExtents,t,n,i,r);var f=a,d=Mc(f[0],t),p=Mc(f[1],n),_=Mc(f[2],i);Cc(f[3],o.center,s.center).normalize();var m=Cc(f[4],u,c);m.normalize(),Dc(f[5],d,m),Dc(f[6],p,m),Dc(f[7],_,m);for(var g=0;g<8;++g){var v=ah(r,f[g]),y=Oc(f[g],u),b=Oc(f[g],c),w=Nc(y,b)+h;if(kc(y,b)-h>v[1]||v[0]>w)return 0}return 1}}(),Th=function(e,t){var n=Oc(t.n,e.center),i=e.radius*t.n.length();return n+it.d?0:1},Sh=function(e,t){for(var n=t.planes,i=0;io)){Fc(hh,s,Pc(hh,a,r));for(var c=0;c<6;c++)if(c!==n&&c!==n+lh[n]){var h=t.planes[c];if(Oc(h.n,hh)1?Rc(a,s)S&&(u=S,c=w+v,x=y)),c<0?(c=0,-b<0?u=0:-b>g?u=S:(u=-b,S=g)):c>x&&(c=x,-b+v<0?u=0:-b+v>g?u=S:(u=-b+v,S=g));var E=zc(u)0&&(e.d=t.d/n),e},e.prototype.transform=function(e){Ru.invert(Ph,e),Ru.transpose(Ph,Ph),go.set(Mh,this.n.x,this.n.y,this.n.z,-this.d),go.transformMat4(Mh,Mh,Ph),Fo.set(this.n,Mh.x,Mh.y,Mh.z),this.d=-Mh.w},f(e,[{key:"type",get:function(){return this._type}},{key:"x",get:function(){return this.n.x},set:function(e){this.n.x=e}},{key:"y",get:function(){return this.n.y},set:function(e){this.n.y=e}},{key:"z",get:function(){return this.n.z},set:function(e){this.n.z=e}},{key:"w",get:function(){return this.d},set:function(e){this.d=e}}]),e}(),Lh=function(){function e(e,t,n,i,r,s,a,o,u){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===i&&(i=1),void 0===r&&(r=0),void 0===s&&(s=0),void 0===a&&(a=0),void 0===o&&(o=1),void 0===u&&(u=0),this._type=64,this.a=new Fo(e,t,n),this.b=new Fo(i,r,s),this.c=new Fo(a,o,u)}return e.create=function(t,n,i,r,s,a,o,u,c){return void 0===t&&(t=1),void 0===n&&(n=0),void 0===i&&(i=0),void 0===r&&(r=0),void 0===s&&(s=0),void 0===a&&(a=0),void 0===o&&(o=0),void 0===u&&(u=0),void 0===c&&(c=1),new e(t,n,i,r,s,a,o,u,c)},e.clone=function(t){return new e(t.a.x,t.a.y,t.a.z,t.b.x,t.b.y,t.b.z,t.c.x,t.c.y,t.c.z)},e.copy=function(e,t){return Fo.copy(e.a,t.a),Fo.copy(e.b,t.b),Fo.copy(e.c,t.c),e},e.fromPoints=function(e,t,n,i){return Fo.copy(e.a,t),Fo.copy(e.b,n),Fo.copy(e.c,i),e},e.set=function(e,t,n,i,r,s,a,o,u,c){return e.a.x=t,e.a.y=n,e.a.z=i,e.b.x=r,e.b.y=s,e.b.z=a,e.c.x=o,e.c.y=u,e.c.z=c,e},f(e,[{key:"type",get:function(){return this._type}}]),e}();ya({replaceProperty:{since:"3.6.0",removed:!1},removeProperty:{since:"3.6.0",removed:!1},markAsWarning:{since:"3.6.0",removed:!1},setDefaultLogTimes:{since:"3.6.0",removed:!1}});var Nh=new Fo;function kh(e,t,n,i){i||(i=new Fo),e.convertToUINode(t,n,i);var r=n.position;return i.add(r),i}function zh(e,t,n){return n||(n=new Fo),e.worldToScreen(t,n),n.x/=u.view.getScaleX(),n.y/=u.view.getScaleY(),n}var Uh=e("convertUtils",{WorldNode3DToLocalNodeUI:kh,WorldNode3DToWorldNodeUI:zh});u.pipelineUtils=Uh,ca(u.pipelineUtils,"cc.pipelineUtils",[{name:"WorldNode3DToLocalNodeUI",newName:"convertToUINode",targetName:"cc.Camera.prototype",customFunction:function(){for(var e=arguments.length,t=new Array(e),n=0;nwindow.innerHeight;this.isFrameRotated=ti.isMobile&&(t&&e===It.PORTRAIT||!t&&e===It.LANDSCAPE)},t._updateContainer=function(){if(this._gameContainer){if(this.isProportionalToFrame){if(!this._gameFrame)return void K(9201);var e,t,n=u.view.getDesignResolutionSize(),i=this._gameFrame,r=i.clientWidth,s=i.clientHeight,a=n.width,o=n.height,c=r/a,h=s/o,l=this._gameContainer.style;c0&&K(1400,"screen.requestFullScreen(element, onFullScreenChange?, onFullScreenError?)","screen.requestFullScreen(): Promise"),Wh.requestFullScreen().then((function(){null==t||t.call(document)})).catch((function(e){k(e),null==n||n.call(document)}))},t.exitFullScreen=function(){return Wh.exitFullScreen()},t.autoFullScreen=function(e,t){var n;null==(n=this.requestFullScreen(e,t))||n.catch((function(e){N(e)}))},t.disableAutoFullScreen=function(){},t.on=function(e,t,n){Wh.on(e,t,n)},t.once=function(e,t,n){Wh.once(e,t,n)},t.off=function(e,t,n){Wh.off(e,t,n)},f(e,[{key:"devicePixelRatio",get:function(){return Wh.devicePixelRatio}},{key:"windowSize",get:function(){return Wh.windowSize},set:function(e){Wh.windowSize=e}},{key:"resolution",get:function(){return Wh.resolution}},{key:"supportsFullScreen",get:function(){return Wh.supportFullScreen}}]),e}(),Xh=e("screen",new jh);u.screen=Xh;var qh=e("sys",{Feature:Jn,hasFeature:function(e){return ti.hasFeature(e)},NetworkType:Kn,Language:Yn,OS:Qn,Platform:Zn,BrowserType:qn,isNative:ti.isNative,isBrowser:ti.isBrowser,isMobile:ti.isMobile,isLittleEndian:ti.isLittleEndian,platform:ti.platform,language:ti.language,languageCode:ti.nativeLanguage,os:ti.os,osVersion:ti.osVersion,osMainVersion:ti.osMainVersion,browserType:ti.browserType,browserVersion:ti.browserVersion,isXR:ti.isXR,windowPixelResolution:Xh.windowSize,capabilities:{canvas:!0,opengl:!0,webp:ti.hasFeature(Jn.WEBP),imageBitmap:ti.hasFeature(Jn.IMAGE_BITMAP),touches:ti.hasFeature(Jn.INPUT_TOUCH),mouse:ti.hasFeature(Jn.EVENT_MOUSE),keyboard:ti.hasFeature(Jn.EVENT_KEYBOARD),accelerometer:ti.hasFeature(Jn.EVENT_ACCELEROMETER)},localStorage:{},getNetworkType:function(){return ti.networkType},getBatteryLevel:function(){return ti.getBatteryLevel()},garbageCollect:function(){ti.triggerGC()},isObjectValid:function(e){return null!=e},__isWebIOS14OrIPadOS14Env:!1,dump:function(){var e="";e+="isMobile : "+this.isMobile+"\r\n",e+="language : "+this.language+"\r\n",e+="browserType : "+this.browserType+"\r\n",e+="browserVersion : "+this.browserVersion+"\r\n",e+="supports webp: "+qh.hasFeature(Jn.WEBP)+"\r\n",e+="supports bitmap: "+qh.hasFeature(Jn.IMAGE_BITMAP)+"\r\n",e+="supports touches: "+qh.hasFeature(Jn.INPUT_TOUCH)+"\r\n",e+="supports mouse: "+qh.hasFeature(Jn.EVENT_MOUSE)+"\r\n",e+="supports keyboard: "+qh.hasFeature(Jn.EVENT_KEYBOARD)+"\r\n",e+="supports accelerometer: "+qh.hasFeature(Jn.EVENT_ACCELEROMETER)+"\r\n",e+="os : "+this.os+"\r\n",e+="osVersion : "+this.osVersion+"\r\n",e+="platform : "+this.platform+"\r\n",L(e+="Using "+(u.game.renderType===u.game.RENDER_TYPE_WEBGL?"WEBGL":"CANVAS")+" renderer.\r\n")},openURL:function(e){ti.openURL(e)},init:function(){var e=this;return Promise.resolve().then((function(){return ti.init()})).then((function(){try{var t=qh.localStorage=window.localStorage;t.setItem("storage",""),t.removeItem("storage"),t=null}catch(t){var n=function(){K(5200)};e.localStorage={getItem:n,setItem:n,clear:n,removeItem:n,key:n,length:0}}e.__isWebIOS14OrIPadOS14Env=(qh.os===Qn.IOS||qh.os===Qn.OSX)&&ti.isBrowser&&/(OS 14)|(Version\/14)/.test(window.navigator.userAgent)}))},now:function(){return ti.now()},restartVM:function(){ti.restartJSVM()},getSafeAreaRect:function(e){void 0===e&&(e=!0);var t=u.view,n=Wh.safeAreaEdge;e&&(Wh.orientation===Rt.ORIENTATION_PORTRAIT?n.topQh.x&&(Qh.x=e.x),e.y>Qh.y&&(Qh.y=e.y),e.z>Qh.z&&(Qh.z=e.z),Fo.add(Zh,Kh,Qh),this.center.set(Fo.multiplyScalar(Zh,Zh,.5)),this.halfExtents.set(Qh.x-Zh.x,Qh.y-Zh.y,Qh.z-Zh.z)},t.mergePoints=function(e){if(!(e.length<1))for(var t=0;t>>1;i<=r;s=i+r>>>1){var a=e[s];if(a>t+n)r=s-1;else{if(!(a=e._times.length)return{done:!0,value:void 0};var n=[e._times[t],e._values[t]];return++t,{done:!1,value:n}}}},t.keyframes=function(){return this},t.times=function(){return this._times},t.values=function(){return this._values},t.getKeyframeTime=function(e){return this._times[e]},t.getKeyframeValue=function(e){return this._values[e]},t.addKeyFrame=function(e,t){return this._insertNewKeyframe(e,t)},t.removeKeyframe=function(e){this._times.splice(e,1),this._values.splice(e,1)},t.indexOfKeyframe=function(e){return yl(this._times,e)},t.updateTime=function(e,t){var n=this._values[e];this.removeKeyframe(e),this._insertNewKeyframe(t,n)},t.assignSorted=function(e,t){if(void 0!==t)this.setKeyframes(e.slice(),t.slice());else{var n=Array.from(e);this.setKeyframes(n.map((function(e){return e[0]})),n.map((function(e){return e[1]})))}},t.clear=function(){this._times.length=0,this._values.length=0},t.searchKeyframe=function(e){return yl(this._times,e)},t.setKeyframes=function(e,t){e.length,t.length,wl(e),this._times=e,this._values=t},t._insertNewKeyframe=function(e,t){var n=this._times,i=this._values,r=n.length,s=yl(n,e);if(s>=0)return s;var a=~s;return 0===a?(n.unshift(e),i.unshift(t)):a===r?(n.push(e),i.push(t)):(n.splice(a-1,0,e),i.splice(a-1,0,t)),a},f(e,[{key:"keyFramesCount",get:function(){return this._times.length}},{key:"rangeMin",get:function(){return this._times[0]}},{key:"rangeMax",get:function(){return this._times[this._values.length-1]}}]),e}();function wl(e){return e.every((function(e,t,n){return 0===t||e>n[t-1]||Ba(e,n[t-1],1e-6)}))}function Tl(e,t,n,i,r){var s=n/i,a=t/i,o=s*s,u=1/3*(-1/3*o+a),c=.5*(2/27*s*o-1/3*s*a+e/i),h=u*u*u,l=c*c+h,f=0;if(xl(l)){if(xl(c))return r[0]=0,1;var d=Math.cbrt(-c);return r[0]=2*d,r[1]=-d,2}if(l<0){var p=1/3*Math.acos(-c/Math.sqrt(-h)),_=2*Math.sqrt(-u);r[0]=_*Math.cos(p),r[1]=-_*Math.cos(p+Math.PI/3),r[2]=-_*Math.cos(p-Math.PI/3),f=3}else{var m=Math.sqrt(l),g=Math.cbrt(m-c),v=-Math.cbrt(m+c);r[0]=g+v,f=1}for(var y=1/3*s,b=0;b-1e-9&&e>3},i=n.storageUnit,r=Df(n.elementType),s=new(Pf(i))(e,this._byteOffset,this._unitCount),a=new Array(this._length),o=0;o=1?1:e*e*(3-2*e)}function md(e){return e<=0?0:e>=1?1:e*e*e*(e*(6*e-15)+10)}u._decorator=Of;var gd=Ad(zf,Uf),vd=Ad(Vf,Hf),yd=Ad(jf,Xf),bd=Ad(Yf,Kf),wd=Ad(Zf,Jf),Td=Ad(ed,td),Sd=Ad(id,rd),xd=Ad(ad,od),Ed=Ad(cd,hd),Id=Ad(fd,dd);function Ad(e,t){return function(n){return n<.5?t(2*n)/2:e(2*n-1)/2+.5}}var Rd,Cd=Object.freeze({__proto__:null,backIn:cd,backInOut:ld,backOut:hd,backOutIn:Ed,bounceIn:fd,bounceInOut:pd,bounceOut:dd,bounceOutIn:Id,circIn:id,circInOut:sd,circOut:rd,circOutIn:Sd,constant:Nf,cubicIn:Vf,cubicInOut:Wf,cubicOut:Hf,cubicOutIn:vd,elasticIn:ad,elasticInOut:ud,elasticOut:od,elasticOutIn:xd,expoIn:ed,expoInOut:nd,expoOut:td,expoOutIn:Td,fade:md,linear:kf,quadIn:zf,quadInOut:Gf,quadOut:Uf,quadOutIn:gd,quartIn:jf,quartInOut:qf,quartOut:Xf,quartOutIn:yd,quintIn:Yf,quintInOut:Qf,quintOut:Kf,quintOutIn:bd,sineIn:Zf,sineInOut:$f,sineOut:Jf,sineOutIn:wd,smooth:_d});e("easing",Cd),e("EasingMethod",{LINEAR:0,CONSTANT:1,QUAD_IN:2,QUAD_OUT:3,QUAD_IN_OUT:4,QUAD_OUT_IN:5,CUBIC_IN:6,CUBIC_OUT:7,CUBIC_IN_OUT:8,CUBIC_OUT_IN:9,QUART_IN:10,QUART_OUT:11,QUART_IN_OUT:12,QUART_OUT_IN:13,QUINT_IN:14,QUINT_OUT:15,QUINT_IN_OUT:16,QUINT_OUT_IN:17,SINE_IN:18,SINE_OUT:19,SINE_IN_OUT:20,SINE_OUT_IN:21,EXPO_IN:22,EXPO_OUT:23,EXPO_IN_OUT:24,EXPO_OUT_IN:25,CIRC_IN:26,CIRC_OUT:27,CIRC_IN_OUT:28,CIRC_OUT_IN:29,ELASTIC_IN:30,ELASTIC_OUT:31,ELASTIC_IN_OUT:32,ELASTIC_OUT_IN:33,BACK_IN:34,BACK_OUT:35,BACK_IN_OUT:36,BACK_OUT_IN:37,BOUNCE_IN:38,BOUNCE_OUT:39,BOUNCE_IN_OUT:40,BOUNCE_OUT_IN:41,SMOOTH:42,FADE:43});var Od,Bd=((Rd={})[1]=Nf,Rd[0]=kf,Rd[2]=zf,Rd[3]=Uf,Rd[4]=Gf,Rd[5]=gd,Rd[6]=Vf,Rd[7]=Hf,Rd[8]=Wf,Rd[9]=vd,Rd[10]=jf,Rd[11]=Xf,Rd[12]=qf,Rd[13]=yd,Rd[14]=Yf,Rd[15]=Kf,Rd[16]=Qf,Rd[17]=bd,Rd[18]=Zf,Rd[19]=Jf,Rd[20]=$f,Rd[21]=wd,Rd[22]=ed,Rd[23]=td,Rd[24]=nd,Rd[25]=Td,Rd[26]=id,Rd[27]=rd,Rd[28]=sd,Rd[29]=Sd,Rd[30]=ad,Rd[31]=od,Rd[32]=ud,Rd[33]=xd,Rd[34]=cd,Rd[35]=hd,Rd[36]=ld,Rd[37]=Ed,Rd[38]=fd,Rd[39]=dd,Rd[40]=pd,Rd[41]=Id,Rd[42]=_d,Rd[43]=md,Rd);function Dd(e){return Bd[e]}oe(255),oe(65280);var Pd,Md,Fd,Ld=function(e){function t(){var t;return(t=e.call(this)||this).value=0,t.rightTangent=0,t.rightTangentWeight=0,t.leftTangent=0,t.leftTangentWeight=0,t._flags=0,t}return p(t,e),f(t,[{key:"interpolationMode",get:function(){return 255&this._flags},set:function(e){this._flags&=-256,this._flags|=0|e}},{key:"tangentWeightMode",get:function(){return(65280&this._flags)>>8},set:function(e){this._flags&=-65281,this._flags|=e<<8}},{key:"easingMethod",get:function(){return(16711680&this._flags)>>16},set:function(e){this._flags&=-16711681,this._flags|=e<<16}}]),t}(Cf);function Nd(e){var t=new Ld;if("number"==typeof e)t.value=e;else{var n=e.interpolationMode,i=e.tangentWeightMode,r=e.value,s=e.rightTangent,a=e.rightTangentWeight,o=e.leftTangent,u=e.leftTangentWeight,c=e.easingMethod,h=e[Cn];t.value=null!=r?r:t.value,t.rightTangent=null!=s?s:t.rightTangent,t.rightTangentWeight=null!=a?a:t.rightTangentWeight,t.leftTangent=null!=o?o:t.leftTangent,t.leftTangentWeight=null!=u?u:t.leftTangentWeight,t.interpolationMode=null!=n?n:t.interpolationMode,t.tangentWeightMode=null!=i?i:t.tangentWeightMode,t.easingMethod=null!=c?c:t.easingMethod,h&&(t[Cn]=h)}return t}En.fastDefine("cc.RealKeyframeValue",Ld,((Od={interpolationMode:0,tangentWeightMode:0,value:0,rightTangent:0,rightTangentWeight:0,leftTangent:0,leftTangentWeight:0,easingMethod:0})[Cn]=void 0,Od)),En.Attr.setClassAttr(Ld,Cn,"editorOnly",!0),(Pd=Ld,null!==(Fd=(Md=Pd)[ql])&&void 0!==Fd?Fd:Md[ql]={}).uniquelyReferenced=!0;var kd=e("RealCurve",function(e){function t(){var t;return(t=e.call(this)||this).preExtrapolation=1,t.postExtrapolation=1,t}p(t,e);var n=t.prototype;return n.evaluate=function(e){var t=this._times,n=this._values,i=t.length;if(0===i)return 0;var r=t[0],s=t[i-1];if(es){var u=this.postExtrapolation,c=n[i-1];if(1===u||i<2)return c.value;switch(u){case 0:return hp(s,c.value,t[i-2],n[i-2].value,e);case 2:e=up(e,r,s);break;case 3:e=cp(e,r,s);break;default:return c.value}}var h=yl(t,e);if(h>=0)return n[h].value;var l=~h,f=l-1,d=t[f],p=n[f],_=t[l];return lp(d,p,_,n[l],(e-d)/(_-d))},n.addKeyFrame=function(t,n){return e.prototype.addKeyFrame.call(this,t,Nd(n))},n.assignSorted=function(e,t){if(void 0!==t)this.setKeyframes(e.slice(),t.map((function(e){return Nd(e)})));else{var n=Array.from(e);this.setKeyframes(n.map((function(e){return e[0]})),n.map((function(e){return Nd(e[1])})))}},n.isConstant=function(e){if(this._values.length<=1)return!0;var t=this._values[0].value;return this._values.every((function(n){return Ba(n.value,t,e)}))},n[Ff]=function(e,t){if(t.toCCON){var n=this._times,i=this._values,r=n.length,s=new DataView(new ArrayBuffer(0+Gd+Gd+Vd+Hd*r+sp*r)),a=0;s.setUint8(a,this.preExtrapolation),a+=Gd,s.setUint8(a,this.postExtrapolation),a+=Gd,s.setUint32(a,r,!0),a+=Vd,n.forEach((function(e,t){return s.setFloat32(a+Hd*t,e,!0)})),a+=Hd*r;for(var o,u=S(i);!(o=u()).done;){var c=o.value;a=ap(s,c,a)}var h=new Uint8Array(s.buffer,0,a);e.writeProperty("bytes",h);var l=i.map((function(e){return e[Cn]}));l.some((function(e){return void 0!==e}))&&e.writeProperty("keyframeValueEditorExtras",l)}else e.writeThis()},n[Lf]=function(e,t){if(t.fromCCON){var n=e.readProperty("bytes"),i=new DataView(n.buffer,n.byteOffset,n.byteLength),r=0;this.preExtrapolation=i.getUint8(r),r+=Gd,this.postExtrapolation=i.getUint8(r),r+=Gd;var s=i.getUint32(r,!0);r+=Vd;var a=Array.from({length:s},(function(e,t){return i.getFloat32(r+Hd*t,!0)}));r+=Hd*s;for(var o=new Array(s),u=0;u>zd;return t.easingMethod=s,i}function up(e,t,n){return t+ja(e-t,n-t)}function cp(e,t,n){return t+Xa(e-t,n-t)}function hp(e,t,n,i,r){return t+(i-t)/(n-e)*(r-e)}function lp(e,t,n,i,r){var s=n-e;switch(t.interpolationMode){default:case 1:return t.value;case 0:var a=0===t.easingMethod?r:Dd(t.easingMethod)(r);return Ma(t.value,i.value,a);case 2:var o=1/3,u=t.rightTangent,c=t.rightTangentWeight,h=!!(2&t.tangentWeightMode),l=i.leftTangent,f=i.leftTangentWeight,d=!!(1&i.tangentWeightMode);if(h||d){var p=0;if(h)p=c;else{var _=s,m=s*u;p=Math.sqrt(_*_+m*m)*o}var g=Math.atan(u),v=Math.cos(g)*p+e,y=Math.sin(g)*p+t.value,b=0;if(d)b=f;else{var w=s,T=s*l;b=Math.sqrt(w*w+T*T)*o}var S=Math.atan(l),x=(v-e)/s,E=(-Math.cos(S)*b+n-e)/s,I=y,A=-Math.sin(S)*b+i.value,R=[0,0,0],C=dp(R,Tl(0-r,3*x,3*E-6*x,3*(x-E)+1,R),r);return fp(t.value,I,A,i.value,C)}var O=t.value+o*u*s,B=i.value-o*l*s;return fp(t.value,O,B,i.value,r)}}function fp(e,t,n,i,r){var s=1-r;return s*s*s*e+3*s*s*r*t+3*s*r*r*n+r*r*r*i}function dp(e,t,n){var i=n;if(1===t)i=e[0];else{i=-1/0;for(var r=0;r=0&&s<=1&&s>i&&(i=s)}i===-1/0&&(i=0)}return i}function pp(e,t,n,i,r){var s=1-r;return s*(s*(e+(3*t-e)*r)+3*n*r*r)+i*r*r*r}u.bezier=pp;var _p,mp,gp,vp,yp,bp,wp,Tp,Sp,xp=Math.cos,Ep=Math.acos,Ip=Math.max,Ap=2*Math.PI,Rp=Math.sqrt;function Cp(e){return e<0?-Math.pow(-e,1/3):Math.pow(e,1/3)}function Op(e,t){var n,i,r,s,a=t-0,o=t-e[0],u=3*a,c=3*o,h=3*(t-e[2]),l=1/(-a+c-h+(t-1)),f=1/3,d=(u-6*o+h)*l,p=d*f,_=(-u+c)*l,m=(3*_-d*d)*f,g=m*f,v=(2*d*d*d-9*d*_+a*l*27)/27,y=v/2,b=y*y+g*g*g;if(b<0){var w=-m*f,T=Rp(w*w*w),S=-v/(2*T),x=Ep(S<-1?-1:S>1?1:S),E=2*Cp(T);return i=E*xp(x*f)-p,r=E*xp((x+Ap)*f)-p,s=E*xp((x+2*Ap)*f)-p,i>=0&&i<=1?r>=0&&r<=1?s>=0&&s<=1?Ip(i,r,s):Ip(i,r):s>=0&&s<=1?Ip(i,s):i:r>=0&&r<=1?s>=0&&s<=1?Ip(r,s):r:s}if(0===b)return r=-(n=y<0?Cp(-y):-Cp(y))-p,(i=2*n-p)>=0&&i<=1?r>=0&&r<=1?Ip(i,r):i:r;var I=Rp(b);return(n=Cp(-y+I))-Cp(y+I)-p}function Bp(e,t){var n=Op(e,t),i=e[1];return((1-n)*(i+(e[3]-i)*n)*3+n*n)*n}u.bezierByTime=Bp,e("QuatInterpolationMode",{SLERP:0,CONSTANT:1});var Dp=Fl("cc.QuatKeyframeValue")(_p=Jl((mp=function(e){var t=void 0===e?{}:e,n=t.value,i=t.interpolationMode,r=t.easingMethod;this.interpolationMode=gp&&gp(),this.value=vp&&vp(),this.easingMethod=yp&&yp(),this.value=n?fu.clone(n):this.value,this.interpolationMode=null!=i?i:this.interpolationMode,this.easingMethod=null!=r?r:this.easingMethod},gp=El(mp.prototype,"interpolationMode",[Yl],(function(){return 0})),vp=El(mp.prototype,"value",[Yl],(function(){return fu.clone(fu.IDENTITY)})),yp=El(mp.prototype,"easingMethod",[Yl],(function(){return 0})),_p=mp))||_p)||_p;function Pp(e){return new Dp(e)}e("QuatCurve",Fl("cc.QuatCurve")((wp=function(e){function t(){var t;return(t=e.call(this)||this).preExtrapolation=Tp&&Tp(),t.postExtrapolation=Sp&&Sp(),t}p(t,e);var n=t.prototype;return n.evaluate=function(e,t){var n;null!==(n=t)&&void 0!==n||(t=new fu);var i=this._times,r=this._values,s=this.postExtrapolation,a=this.preExtrapolation,o=i.length;if(0===o)return t;var u=i[0],c=i[o-1];if(ec){var l=r[o-1];switch(s){case 2:e=u+ja(e-u,c-u);break;case 3:e=u+Xa(e-u,c-u);break;default:return fu.copy(t,l.value)}}var f=yl(i,e);if(f>=0)return fu.copy(t,r[f].value);var d=~f,p=d-1,_=i[p],m=r[p],g=i[d],v=r[d],y=(e-_)/(g-_);switch(m.interpolationMode){default:case 1:return fu.copy(t,m.value);case 0:var b=m.easingMethod,w=0===b?y:Array.isArray(b)?Bp(b,y):Dd(b)(y);return fu.slerp(t,m.value,v.value,w)}},n.addKeyFrame=function(t,n){var i=new Dp(n);return e.prototype.addKeyFrame.call(this,t,i)},n.assignSorted=function(e,t){if(void 0!==t)this.setKeyframes(e.slice(),t.map((function(e){return Pp(e)})));else{var n=Array.from(e);this.setKeyframes(n.map((function(e){return e[0]})),n.map((function(e){return Pp(e[1])})))}},n[Ff]=function(e,t){if(t.toCCON){var n=this._times,i=this._values,r=!0;i.forEach((function(e,t,n){var i=n[0];r&&e.interpolationMode!==i.interpolationMode&&(r=!1)}));var s=n.length,a=zp*(r?1:s),o=i.reduce((function(e,t){var n=t.easingMethod;return e+(Array.isArray(n)?Up+4*Vp:Up)}),0),u=0,c=new DataView(new ArrayBuffer(u+=Fp+Lp+Np*s+4*kp*s+o+a+0)),h=0,l=0;r&&(l|=1),c.setUint32(h,l,!0),h+=Fp,c.setUint32(h,s,!0),h+=Lp,n.forEach((function(e,t){return c.setFloat32(h+Np*t,e,!0)})),h+=Np*s,i.forEach((function(e,t){var n=e.value,i=n.x,r=n.y,s=n.z,a=n.w,o=h+4*kp*t;c.setFloat32(o+0*kp,i,!0),c.setFloat32(o+1*kp,r,!0),c.setFloat32(o+2*kp,s,!0),c.setFloat32(o+3*kp,a,!0)})),h+=4*kp*s,i.forEach((function(e){var t=e.easingMethod;Array.isArray(t)?(c.setUint8(h,Gp),++h,c.setFloat32(h+0*Vp,t[0],!0),c.setFloat32(h+1*Vp,t[1],!0),c.setFloat32(h+2*Vp,t[2],!0),c.setFloat32(h+3*Vp,t[3],!0),h+=4*Vp):(c.setUint8(h,t),++h)}));var f=h;h+=a;var d=f;i.forEach((function(e){var t=e.interpolationMode;c.setUint8(d,t),r||(d+=zp)}));var p=new Uint8Array(c.buffer);e.writeProperty("bytes",p)}else e.writeThis()},n[Lf]=function(e,t){if(t.fromCCON){var n=e.readProperty("bytes"),i=new DataView(n.buffer,n.byteOffset,n.byteLength),r=0,s=i.getUint32(r,!0);r+=Fp;var a=1&s,o=i.getUint32(r,!0);r+=Lp;var u=Array.from({length:o},(function(e,t){return i.getFloat32(r+Np*t,!0)})),c=r+=Np*o;r+=4*kp*o;var h=Array.from({length:o},(function(e,t){var n=c+4*kp*t,s=i.getFloat32(n+0*kp,!0),a=i.getFloat32(n+1*kp,!0),o=i.getFloat32(n+2*kp,!0),u=i.getFloat32(n+3*kp,!0),h=i.getUint8(r);++r;var l=Pp({value:{x:s,y:a,z:o,w:u}});return h!==Gp?l.easingMethod=h:(l.easingMethod=[i.getFloat32(r+0*Vp,!0),i.getFloat32(r+1*Vp,!0),i.getFloat32(r+2*Vp,!0),i.getFloat32(r+3*Vp,!0)],r+=4*Vp),l}));if(a){var l=i.getUint8(r);++r;for(var f=0;f=0)return this._values[t];var n=Da(~t-1,0,this._values.length-1);return this._values[n]},t}(bl))||Mp),{Blend:0,Fixed:1});yt(Hp);var Wp=e("ColorKey",(function(){this.color=Wo.WHITE.clone(),this.time=0}));En.fastDefine("cc.ColorKey",Wp,{color:Wo.WHITE.clone(),time:0}),En.Attr.setClassAttr(Wp,"color","visible",!0),En.Attr.setClassAttr(Wp,"time","visible",!0);var jp=e("AlphaKey",(function(){this.alpha=1,this.time=0}));En.fastDefine("cc.AlphaKey",jp,{alpha:1,time:0}),En.Attr.setClassAttr(jp,"alpha","visible",!0),En.Attr.setClassAttr(jp,"time","visible",!0);var Xp=e("Gradient",function(){function e(){this.colorKeys=[],this.alphaKeys=[],this.mode=0}var t=e.prototype;return t.setKeys=function(e,t){this.colorKeys=e,this.alphaKeys=t},t.sortKeys=function(){this.colorKeys.length>1&&this.colorKeys.sort((function(e,t){return e.time-t.time})),this.alphaKeys.length>1&&this.alphaKeys.sort((function(e,t){return e.time-t.time}))},t.evaluate=function(e){return this.evaluateFast(new Wo,e)},t.evaluateFast=function(e,t){return this.getRGB(e,t),e.a=this.getAlpha(t),e},t.randomColor=function(){return this.getRandomColor(new Wo)},t.getRandomColor=function(e){var t=this.colorKeys[Math.trunc(Na()*this.colorKeys.length)],n=this.alphaKeys[Math.trunc(Na()*this.alphaKeys.length)];return e.set(t.color),e.a=n.alpha,e},t.getRGB=function(e,t){var n=this.colorKeys,i=n.length;if(i>1){t=ja(t,1+Ca);for(var r=1;r=s&&tn[u].time&&Wo.lerp(e,n[u].color,Wo.BLACK,(t-n[u].time)/(1-n[u].time))}else 1===i?Wo.copy(e,n[0].color):Wo.copy(e,Wo.WHITE);return e},t.getAlpha=function(e){var t=this.alphaKeys,n=t.length;if(n>1){e=ja(e,1+Ca);for(var i=1;i=r&&et[o].time?Ma(t[o].alpha,0,(e-t[o].time)/(1-t[o].time)):255}return 1===n?t[0].alpha:255},e}());Xp.Mode=Hp,En.fastDefine("cc.Gradient",Xp,{colorKeys:[],alphaKeys:[],mode:0}),En.Attr.setClassAttr(Xp,"colorKeys","visible",!0),En.Attr.setClassAttr(Xp,"alphaKeys","visible",!0),En.Attr.setClassAttr(Xp,"mode","visible",!0);var qp=function(){this.time=0,this.value=0,this.inTangent=0,this.outTangent=0};En.fastDefine("cc.Keyframe",qp,{time:0,value:0,inTangent:0,outTangent:0});var Yp=function(){function e(){this.index=void 0,this.time=void 0,this.endTime=void 0,this.coefficient=void 0,this.index=-1,this.time=0,this.endTime=0,this.coefficient=new Float32Array(4)}return e.prototype.evaluate=function(e){return Kp(e-this.time,this.coefficient)},e}();function Kp(e,t){return e*(e*(e*t[0]+t[1])+t[2])+t[3]}var Qp=function(){function e(e){if(void 0===e&&(e=null),this._curve=void 0,this.cachedKey=void 0,e instanceof kd)this._curve=e;else{var t=new kd;this._curve=t,t.preExtrapolation=2,t.postExtrapolation=1,e?t.assignSorted(e.map((function(e){return[e.time,{interpolationMode:2,value:e.value,leftTangent:e.inTangent,rightTangent:e.outTangent}]}))):t.assignSorted([[0,{interpolationMode:2,value:1}],[1,{interpolationMode:2,value:1}]])}this.cachedKey=new Yp}var t=e.prototype;return t.addKey=function(e){e?this._curve.addKeyFrame(e.time,{interpolationMode:2,value:e.value,leftTangent:e.inTangent,rightTangent:e.outTangent}):this._curve.clear()},t.evaluate_slow=function(e){return this._curve.evaluate(e)},t.evaluate=function(e){var t=this.cachedKey,n=this._curve,i=n.keyFramesCount-1,r=e,s=e<0?n.preExtrapolation:n.postExtrapolation,a=n.getKeyframeTime(0),o=n.getKeyframeTime(i);switch(s){case 2:r=ja(e-a,o-a)+a;break;case 3:r=Xa(e-a,o-a)+a;break;default:r=Da(e,a,o)}if(r>=t.time&&rn.getKeyframeTime(r))for(var s=0;s<3;s++){var a=r+s;if(a+1t)return a}else for(var o=0;o<3;o++){var u=r-o;if(u>=0&&n.getKeyframeTime(u-1)<=t)return u-1}for(var c,h=0,l=i;l-h>1;)c=Math.floor((h+l)/2),n.getKeyframeTime(c)>=t?l=c:h=c;return h},f(e,[{key:"_internalCurve",get:function(){return this._curve}},{key:"keyFrames",get:function(){return Array.from(this._curve.keyframes()).map((function(e){var t=e[0],n=e[1],i=new qp;return i.time=t,i.value=n.value,i.inTangent=n.leftTangent,i.outTangent=n.rightTangent,i}))},set:function(e){this._curve.assignSorted(e.map((function(e){return[e.time,{interpolationMode:2,value:e.value,leftTangent:e.inTangent,rightTangent:e.outTangent}]})))}},{key:"preWrapMode",get:function(){return Jp(this._curve.preExtrapolation)},set:function(e){this._curve.preExtrapolation=Zp(e)}},{key:"postWrapMode",get:function(){return Jp(this._curve.postExtrapolation)},set:function(e){this._curve.postExtrapolation=Zp(e)}}]),e}();function Zp(e){switch(e){default:case 0:case 1:case 8:return 1;case 22:return 3;case 2:return 2}}function Jp(e){switch(e){default:case 0:case 1:return 8;case 3:return 22;case 2:return 2}}Qp.defaultKF=[{time:0,value:1,inTangent:0,outTangent:0},{time:1,value:1,inTangent:0,outTangent:0}],En.fastDefine("cc.AnimationCurve",Qp,{_curve:null});var $p=Fo.multiplyScalar,e_=Fo.add,t_=4294967295,n_=Lo(),i_=Lo(),r_=Lo(),s_=Lo(),a_=function(){function e(e,t){void 0===e&&(e=2),void 0===t&&(t=[]),this._type=void 0,this._knots=[],this._type=1024,this._mode=e;for(var n=0;n=this._knots.length?this._knots.push(n):this._knots.splice(e,0,n)},t.removeKnot=function(e){gt(this._knots,e),this._knots.splice(e,1)},t.setKnot=function(e,t){gt(this._knots,e),this._knots[e].set(t)},t.getKnot=function(e){return gt(this._knots,e),this._knots[e]},t.getPoint=function(t,n){void 0===n&&(n=t_),t=Da(t,0,1);var i=this.getSegments();if(0===i)return Lo();if(n===t_){var r=1/i;n=Math.floor(t/r),t=t%r/r}var s=this._knots;if(n>=i)return Lo(s[s.length-1]);switch(this._mode){case 0:return e.calcLinear(s[n],s[n+1],t);case 1:var a=4*n;return e.calcBezier(s[a],s[a+1],s[a+2],s[a+3],t);case 2:var o=n>0?s[n-1]:s[n],u=n+2t.priority?-1:0};var t=e.prototype;return t.init=function(){},t.update=function(){},t.postUpdate=function(){},t.destroy=function(){},f(e,[{key:"priority",get:function(){return this._priority},set:function(e){this._priority=e}},{key:"id",get:function(){return this._id},set:function(e){this._id=e}}]),e}());v_.Priority=yt({LOW:0,MEDIUM:100,HIGH:200,SCHEDULER:2147483648});var y_=new Ee("Scheduler"),b_=function(){function e(e,t,n,i){this.target=void 0,this.priority=void 0,this.paused=void 0,this.markedForDeletion=void 0,this.target=e,this.priority=t,this.paused=n,this.markedForDeletion=i}return e.get=function(t,n,i,r){var s=e._listEntries.pop();return s?(s.target=t,s.priority=n,s.paused=i,s.markedForDeletion=r):s=new e(t,n,i,r),s},e.put=function(t){e._listEntries.length<20&&(t.target=null,e._listEntries.push(t))},e}();b_._listEntries=[];var w_=function(){function e(e,t,n,i){this.list=void 0,this.entry=void 0,this.target=void 0,this.callback=void 0,this.list=e,this.entry=t,this.target=n,this.callback=i}return e.get=function(t,n,i,r){var s=e._hashUpdateEntries.pop();return s?(s.list=t,s.entry=n,s.target=i,s.callback=r):s=new e(t,n,i,r),s},e.put=function(t){e._hashUpdateEntries.length<20&&(t.list=t.entry=t.target=t.callback=null,e._hashUpdateEntries.push(t))},e}();w_._hashUpdateEntries=[];var T_=function(){function e(e,t,n,i,r,s){this.timers=void 0,this.target=void 0,this.timerIndex=void 0,this.currentTimer=void 0,this.currentTimerSalvaged=void 0,this.paused=void 0,this.timers=e,this.target=t,this.timerIndex=n,this.currentTimer=i,this.currentTimerSalvaged=r,this.paused=s}return e.get=function(t,n,i,r,s,a){var o=e._hashTimerEntries.pop();return o?(o.timers=t,o.target=n,o.timerIndex=i,o.currentTimer=r,o.currentTimerSalvaged=s,o.paused=a):o=new e(t,n,i,r,s,a),o},e.put=function(t){e._hashTimerEntries.length<20&&(t.timers=t.target=t.currentTimer=null,e._hashTimerEntries.push(t))},e}();T_._hashTimerEntries=[];var S_=function(){function e(){this._lock=void 0,this._scheduler=void 0,this._elapsed=void 0,this._runForever=void 0,this._useDelay=void 0,this._timesExecuted=void 0,this._repeat=void 0,this._delay=void 0,this._interval=void 0,this._target=void 0,this._callback=void 0,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}e.get=function(){return e._timers.pop()||new e},e.put=function(t){e._timers.length<20&&!t._lock&&(t._scheduler=t._target=t._callback=null,e._timers.push(t))};var t=e.prototype;return t.initWithCallback=function(e,t,n,i,r,s){return this._lock=!1,this._scheduler=e,this._target=n,this._callback=t,this._timesExecuted=0,this._elapsed=-1,this._interval=i,this._delay=s,this._useDelay=this._delay>0,this._repeat=r,this._runForever=this._repeat===u.macro.REPEAT_FOREVER,!0},t.getInterval=function(){return this._interval},t.setInterval=function(e){this._interval=e},t.update=function(e){-1===this._elapsed?(this._elapsed=0,this._timesExecuted=0):(this._elapsed+=e,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()))},t.getCallback=function(){return this._callback},t.trigger=function(){this._target&&this._callback&&(this._lock=!0,this._callback.call(this._target,this._elapsed),this._lock=!1)},t.cancel=function(){this._scheduler&&this._callback&&this._target&&this._scheduler.unscheduleForTimer(this,this._target)},e}();S_._timers=[];var x_=e("Scheduler",function(e){function t(){var t;return(t=e.call(this)||this)._timeScale=void 0,t._updatesNegList=void 0,t._updates0List=void 0,t._updatesPosList=void 0,t._hashForUpdates=void 0,t._hashForTimers=void 0,t._currentTarget=void 0,t._currentTargetSalvaged=void 0,t._updateHashLocked=void 0,t._arrayForTimers=void 0,t._timeScale=1,t._updatesNegList=[],t._updates0List=[],t._updatesPosList=[],t._hashForUpdates=ke(!0),t._hashForTimers=ke(!0),t._currentTarget=null,t._currentTargetSalvaged=!1,t._updateHashLocked=!1,t._arrayForTimers=[],t}p(t,e),t.enableForTarget=function(e){var t=!1;(e.uuid||e.id)&&(t=!0),t||(e.id=y_.getNewId())};var n=t.prototype;return n.setTimeScale=function(e){this._timeScale=e},n.getTimeScale=function(){return this._timeScale},n.update=function(e){var t,n,i,r,s;for(this._updateHashLocked=!0,1!==this._timeScale&&(e*=this._timeScale),t=0,i=(n=this._updatesNegList).length;t=s&&i.timerIndex--,void(0===r.length&&(this._currentTarget===i?this._currentTargetSalvaged=!0:this._removeHashElement(i)))}}}else Z(1510)}},n.unscheduleForTimer=function(e,t){var n=t.uuid||t.id,i=this._hashForTimers[n],r=i.timers;if(r&&0!==r.length)for(var s=r.length-1;s>=0;s--){var a=r[s];if(a===e)return r.splice(s,1),S_.put(a),i.timerIndex>=s&&i.timerIndex--,void(0===r.length&&(this._currentTargetSalvaged=!0))}},n.unscheduleUpdate=function(e){if(e){var t=e.uuid||e.id;if(t){var n=this._hashForUpdates[t];null!=n&&n.entry&&(this._updateHashLocked?n.entry.markedForDeletion=!0:this._removeUpdateFromHash(n.entry))}else Z(1510)}},n.unscheduleAllForTarget=function(e){if(e){var t=e.uuid||e.id;if(t){var n=this._hashForTimers[t];if(null!=n&&n.timers){var i=n.timers;n.currentTimer&&i.indexOf(n.currentTimer)>-1&&!n.currentTimerSalvaged&&(n.currentTimerSalvaged=!0);for(var r=0,s=i.length;r=0;t--)(n=r[t]).target&&this.unscheduleAllForTarget(n.target);var s=0;if(e<0)for(t=0;t=e&&this.unscheduleUpdate(i.target),s===this._updatesNegList.length&&t++}if(e<=0)for(t=0;t=e&&this.unscheduleUpdate(i.target),s===this._updatesPosList.length&&t++}},n.isScheduled=function(e,t){$(Boolean(e),1508),$(Boolean(t),1509);var n=t.uuid||t.id;if(!n)return Z(1510),!1;var i=this._hashForTimers[n];if(!i)return!1;if(null==i.timers)return!1;for(var r=i.timers,s=0;s=e&&(r.paused=!0,s.push(r.target))}if(e<=0)for(n=0;n=e&&(r.paused=!0,s.push(r.target))}return s},n.resumeTargets=function(e){if(e)for(var t=0;t4||e<0)&&(e=0);var t=0,n=!1;if(1===e?(t=0,n=!0):0===e||4===e?(t=this._supportWebGPU()?2:1,n=!0):2===e?(t=1,n=!0):3===e&&(t=4,n=!0),!n)throw new Error(te(3820,e));return t},f(e,[{key:"gfxDevice",get:function(){return this._gfxDevice}},{key:"swapchain",get:function(){return this._swapchain}}]),e}(),D_=new B_;e("gfx",Object.freeze({__proto__:null,API:wi,AccessFlagBit:Ki,Address:Ui,Attribute:Xr,AttributeName:vs,BarrierType:cr,BindingMappingInfo:Ir,BlendFactor:Hi,BlendOp:Wi,BlendState:Zs,BlendTarget:Qs,Buffer:Fs,BufferBarrierInfo:is,BufferFlagBit:Ci,BufferInfo:Cr,BufferTextureCopy:wr,BufferUsageBit:Ri,BufferViewInfo:Or,ClearFlagBit:ur,Color:Sr,ColorAttachment:Kr,ColorMask:ji,CommandBuffer:Ls,CommandBufferInfo:hs,CommandBufferType:or,ComparisonFunc:Gi,CullMode:tr,DESCRIPTOR_BUFFER_TYPE:Ss,DESCRIPTOR_DYNAMIC_TYPE:10,DESCRIPTOR_SAMPLER_TYPE:xs,DESCRIPTOR_STORAGE_BUFFER_TYPE:12,DRAW_INFO_SIZE:28,DefaultResource:ks,DepthStencilAttachment:Qr,DepthStencilState:Ks,DescriptorSet:js,DescriptorSetInfo:os,DescriptorSetLayout:Xs,DescriptorSetLayoutBinding:ss,DescriptorSetLayoutInfo:as,DescriptorType:rr,Device:Ns,DeviceCaps:fr,DeviceInfo:Rr,DeviceManager:B_,DeviceOptions:dr,DispatchInfo:Dr,DrawInfo:Br,DynamicStateFlagBit:nr,DynamicStates:ms,DynamicStencilStates:_s,Extent:mr,Feature:Si,Filter:zi,Format:xi,FormatFeatureBit:Li,FormatInfo:ds,FormatInfos:Ts,FormatSize:As,FormatSurfaceSize:Rs,FormatType:Ei,Framebuffer:Us,FramebufferInfo:rs,GFXObject:gs,GeneralBarrier:sa,GeneralBarrierInfo:ts,GetTypeSize:Os,IndirectBuffer:Pr,InputAssembler:Ws,InputAssemblerInfo:Yr,InputState:cs,IsPowerOf2:Es,LegacyRenderMode:{AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,WEBGPU:4},LoadOp:qi,MarkerInfo:Er,MemoryAccessBit:Oi,MemoryStatus:ps,MemoryUsageBit:Bi,ObjectType:yi,Offset:pr,PassType:hr,PipelineBindPoint:Zi,PipelineLayout:qs,PipelineLayoutInfo:us,PipelineState:$s,PipelineStateInfo:Js,PolygonMode:$i,PrimitiveMode:Ji,QueryPoolInfo:fs,QueryType:ar,Queue:ea,QueueInfo:ls,QueueType:sr,RasterizerState:Ys,Rect:_r,RenderPass:ta,RenderPassInfo:$r,RenderType:{UNKNOWN:-1,CANVAS:0,WEBGL:1,WEBGPU:2,OPENGL:3,HEADLESS:4},ResolveMode:Qi,ResourceRange:es,SampleCount:Ni,SampleType:Ii,Sampler:na,SamplerInfo:Lr,ShadeModel:er,Shader:ia,ShaderInfo:qr,ShaderStage:jr,ShaderStageFlagBit:Xi,Size:lr,Status:bi,StencilFace:ir,StencilOp:Vi,StoreOp:Yi,SubpassDependency:Jr,SubpassInfo:Zr,SurfaceTransform:Ti,Swapchain:zs,SwapchainInfo:Ar,Texture:ra,TextureBarrier:aa,TextureBarrierInfo:ns,TextureBlit:br,TextureCopy:yr,TextureFlagBit:Fi,TextureInfo:Mr,TextureSubresLayers:gr,TextureSubresRange:vr,TextureType:Di,TextureUsageBit:Mi,TextureViewInfo:Fr,Type:Ai,Uniform:Nr,UniformBlock:kr,UniformInputAttachment:Wr,UniformSampler:Ur,UniformSamplerTexture:zr,UniformStorageBuffer:Hr,UniformStorageImage:Vr,UniformTexture:Gr,ViewDimension:Pi,Viewport:Tr,VsyncMode:ki,alignTo:Ps,deviceManager:D_,formatAlignment:Ds,getTypedArrayConstructor:Bs}));var P_,M_,F_,L_,N_,k_,z_,U_,G_,V_,H_,W_,j_,X_,q_={NONE:0,IGNORE_RAYCAST:1<<20,GIZMOS:1<<21,EDITOR:1<<22,UI_3D:1<<23,SCENE_GIZMO:1<<24,UI_2D:1<<25,PROFILER:1<<28,DEFAULT:1<<30,ALL:4294967295},Y_=e("Layers",function(){function e(){}return e.init=function(){var t=At.querySettings("engine","customLayers");if(t)for(var n=0;n19||n<0)K(16365);else{var i=1<19||t<0)K(16366);else{var n=1<31||t<0?(K(16368),""):e.Enum[1<this.pipes.length?(K(4921),this):(this.pipes.splice(t,0,e),this)},t.append=function(e){return this.pipes.push(e),this},t.remove=function(e){return this.pipes.splice(e,1),this},t.sync=function(e){var t=this.pipes;if(0===t.length)return null;e.isFinished=!1;for(var n=0,i=t.length;n>2],Xg[qg[i++]]=Wg[(3&r)<<2|s>>4],Xg[qg[i++]]=Wg[15&s]}return e.replace(t,Xg.join(""))}var Kg=/.*[/\\][0-9a-fA-F]{2}[/\\]([0-9a-fA-F-@]{8,}).*/;function Qg(e){var t=Kg.exec(e);return t?t[1]:""}function Zg(e,t){(t=t||Object.create(null)).__isNative__=t.isNative,t.nativeExt&&(t.ext=t.nativeExt);var n=Ng.find((function(t){return!!t.getAssetInfo(e)}));return n&&(t.bundle=n.name),ev(e,t)}function Jg(e){return!!e&&(e instanceof o.SceneAsset||e instanceof o.Scene)}function $g(e){return e&&(46===e.charCodeAt(0)&&47===e.charCodeAt(1)?e=e.slice(2):47===e.charCodeAt(0)&&(e=e.slice(1))),e}function ev(e,t){var n=Hg.create({input:e,options:t}),i=[];try{for(var r,s=S(Ug.sync(n));!(r=s()).done;){var a=r.value,o=a.url;a.recycle(),i.push(o)}}catch(e){for(var u,c=S(n.output);!(u=c()).done;)u.value.recycle();k(e.message,e.stack)}return n.recycle(),i.length>1?i:i[0]}var tv,nv,iv,rv,sv,av,ov=Object.freeze({__proto__:null,decodeUuid:Yg,getUrlWithUuid:Zg,getUuidFromURL:Qg,isScene:Jg,normalize:$g,transform:ev}),uv=Yl,cv=zl,hv=e("Asset",Fl("cc.Asset")((nv=function(e){function t(t){var n;return(n=e.call(this,t)||this).loaded=!0,n._native=iv&&iv(),n._nativeUrl="",n._file=null,n._ref=0,Object.defineProperty(b(n),"_uuid",{value:"",writable:!0}),n}p(t,e),t.deserialize=function(e){return o.deserialize(e)};var n=t.prototype;return n.toString=function(){return this.nativeUrl},n.serialize=function(){},n._setRawAsset=function(e,t){void 0===t&&(t=!0),this._native=!1!==t?e||"":"/"+e},n.addRef=function(){return this._ref++,this},n.decRef=function(e){return void 0===e&&(e=!0),this._ref>0&&this._ref--,e&&o.assetManager.getReleaseManager().tryRelease(this),this},n.onLoaded=function(){},n.initDefault=function(e){e&&(this._uuid=e),this.isDefault=!0},n.validate=function(){return!0},n.destroy=function(){return U(te(12101,this._uuid)),e.prototype.destroy.call(this)},f(t,[{key:"nativeUrl",get:function(){if(!this._nativeUrl){if(!this._native)return"";var e=this._native;if(47===e.charCodeAt(0))return e.slice(1);46===e.charCodeAt(0)?this._nativeUrl=Zg(this._uuid,{nativeExt:e,isNative:!0}):this._nativeUrl=Zg(this._uuid,{__nativeName__:e,nativeExt:ai(e),isNative:!0})}return this._nativeUrl}},{key:"uuid",get:function(){return this._uuid}},{key:"_nativeAsset",get:function(){return this._file},set:function(e){this._file=e}},{key:"nativeAsset",get:function(){return this._file}},{key:"_nativeDep",get:function(){if(this._native)return{__isNative__:!0,uuid:this._uuid,ext:this._native}}},{key:"refCount",get:function(){return this._ref}}]),t}(jn(Pn)),iv=El(nv.prototype,"_native",[uv],(function(){return""})),I(nv.prototype,"_nativeAsset",[cv],Object.getOwnPropertyDescriptor(nv.prototype,"_nativeAsset"),nv.prototype),tv=nv))||tv);hv.prototype.createNode=null,o.Asset=hv;var lv=1346981187,fv=yt({PVR:0,PKM:1,ASTC:2});function dv(e,t){return 4===e?89:5===e?4===t?90:91:6===e?5===t?92:93:8===e?5===t?94:6===t?95:96:10===e?5===t?97:6===t?98:8===t?99:100:10===t?101:102}function pv(e,t){return e[t]<<8|e[t+1]}function _v(e){return!!(qh.hasFeature(qh.Feature.IMAGE_BITMAP)&&e instanceof ImageBitmap)}var mv,gv,vv,yv,bv,wv,Tv,Sv,xv,Ev,Iv,Av=e("ImageAsset",Fl("cc.ImageAsset")((av=function(e){p(n,e),n.mergeCompressedTextureMips=function(e){var t=new Uint8Array(0);try{for(var n,i=8+4*e.length,r=0,s=S(e);!(n=s()).done;)r+=n.value.byteLength;r+=i,t=new Uint8Array(r);var a=new DataView(t.buffer,t.byteOffset,t.byteLength);a.setUint32(0,lv,!0),a.setUint32(4,e.length,!0);for(var o=i,u=0;u0){var c=new Uint8Array(s,o,u),h=new Uint8Array(r._data.byteLength+c.byteLength);h.set(r._data),h.set(c,r._data.byteLength),r._data=h,r.mipmapLevelDataSize[t]=u}else r._data=new Uint8Array(s,o);r.width=t>0?r.width:a[7],r.height=t>0?r.height:a[6]}else{if(559044176!==a[11])throw new Error("Invalid magic number in PVR header");var l=n+a[0],f=i-a.byteLength;if(i>0){var d=new Uint8Array(s,l,f),p=new Uint8Array(r._data.byteLength+d.byteLength);p.set(r._data),p.set(d,r._data.byteLength),r._data=p,r.mipmapLevelDataSize[t]=f}else r._data=new Uint8Array(s,l);r.width=t>0?r.width:a[1],r.height=t>0?r.height:a[2]}},n.parsePKMTexture=function(e,t,n,i,r){var s=e instanceof ArrayBuffer?e:e.buffer,a=new Uint8Array(s,n,16),o=pv(a,6);if(0!==o&&1!==o&&3!==o)throw new Error("Invalid magic number in ETC header");var u=n+16,c=i-16;if(i>0){var h=new Uint8Array(s,u,c),l=new Uint8Array(r._data.byteLength+h.byteLength);l.set(r._data),l.set(h,r._data.byteLength),r._data=l,r.mipmapLevelDataSize[t]=c}else r._data=new Uint8Array(s,u);r.width=t>0?r.width:pv(a,12),r.height=t>0?r.height:pv(a,14)},n.parseASTCTexture=function(e,t,n,i,r){var s=e instanceof ArrayBuffer?e:e.buffer,a=new Uint8Array(s,n,16);if(1554098963!==a[0]+(a[1]<<8)+(a[2]<<16)+(a[3]<<24))throw new Error("Invalid magic number in ASTC header");var o=a[4],u=a[5],c=a[6];if((o<3||o>6||u<3||u>6||c<3||c>6)&&(o<4||7===o||9===o||11===o||o>12||u<4||7===u||9===u||11===u||u>12||1!==c))throw new Error("Invalid block number in ASTC header");var h=dv(o,u),l=n+16,f=i-16;if(i>0){var d=new Uint8Array(s,l,f),p=new Uint8Array(r._data.byteLength+d.byteLength);p.set(r._data),p.set(d,r._data.byteLength),r._data=p,r.mipmapLevelDataSize[t]=f}else r._data=new Uint8Array(s,l);r.width=t>0?r.width:a[7]+(a[8]<<8)+(a[9]<<16),r.height=t>0?r.height:a[10]+(a[11]<<8)+(a[12]<<16),r.format=h};var t=n.prototype;function n(t){var n;return(n=e.call(this)||this)._nativeData=void 0,n._exportedExts=void 0,n._format=35,n._width=0,n._height=0,n._nativeData={_data:null,width:0,height:0,format:0,_compressed:!1,mipmapLevelDataSize:[]},void 0!==t&&n.reset(t),n}return t.extractMipmap0=function(){if(this.mipmapLevelDataSize&&this.mipmapLevelDataSize.length>0){var e=this.mipmapLevelDataSize[0],t=this.data,i=new n({_data:new Uint8Array(t.buffer,0,e),_compressed:!0,width:this.width,height:this.height,format:this.format,mipmapLevelDataSize:[]});return i._uuid=""+this._uuid,i}return this},t.extractMipmaps=function(){var e=[];if(this.mipmapLevelDataSize&&this.mipmapLevelDataSize.length>0)for(var t,i=this.mipmapLevelDataSize,r=this.data,s=0,a=this.height,o=this.width,u=S(i);!(t=u()).done;){var c=t.value,h=new n({_data:new Uint8Array(r.buffer,s,c),_compressed:!0,width:o,height:a,format:this.format,mipmapLevelDataSize:[]});s+=c,h._uuid=""+this._uuid,o=Math.max(o>>1,1),a=Math.max(a>>1,1),e.push(h)}else e.push(this);return e},t.reset=function(e){_v(e)||e instanceof HTMLElement?this._nativeData=e:(this._nativeData=e,this._format=e.format)},t.destroy=function(){if(this.data&&this.data instanceof HTMLImageElement)this.data.src="",this._setRawAsset("");else if(_v(this.data)){var t;null==(t=this.data)||t.close()}return e.prototype.destroy.call(this)},t._serialize=function(){},t._deserialize=function(e){var t="";"string"==typeof e?t=e:(this._width=e.w,this._height=e.h,t=e.fmt);for(var i,r=D_.gfxDevice,s=t.split("_"),a=Number.MAX_VALUE,o=this._format,u="",c=Rt.SUPPORT_TEXTURE_FORMATS,h=S(s);!(i=h()).done;){var l=i.value.split("@"),f=parseInt(l[0],void 0),d=n.extnames[f]||l[0],p=c.indexOf(d);if(-1!==p&&p=72&&this._format<=102||this._format>=1024&&this._format<=1026}},{key:"mipmapLevelDataSize",get:function(){return this._nativeData.mipmapLevelDataSize}},{key:"url",get:function(){return this.nativeUrl}}]),n}(hv),av.extnames=[".png",".jpg",".jpeg",".bmp",".webp",".pvr",".pkm",".astc"],av._sharedPlaceHolderCanvas=null,I((sv=av).prototype,"_nativeAsset",[Rf],Object.getOwnPropertyDescriptor(sv.prototype,"_nativeAsset"),sv.prototype),rv=sv))||rv);o.ImageAsset=Av,Tt(xi);var Rv,Cv,Ov,Bv=new Ee("Tex"),Dv=Fl("cc.TextureBase")((Iv=function(e){function t(t){var n;return(n=e.call(this,t)||this)._format=vv&&vv(),n._minFilter=yv&&yv(),n._magFilter=bv&&bv(),n._mipFilter=wv&&wv(),n._wrapS=Tv&&Tv(),n._wrapT=Sv&&Sv(),n._wrapR=xv&&xv(),n._anisotropy=Ev&&Ev(),n._width=1,n._height=1,n._samplerInfo=new Lr,n._gfxSampler=null,n._gfxDevice=null,n._textureHash=0,n._id=Bv.getNewId(),n._gfxDevice=n._getGFXDevice(),n._textureHash=Hs(n._id,666),n}p(t,e);var n=t.prototype;return n.getId=function(){return this._id},n.getPixelFormat=function(){return this._format},n.getAnisotropy=function(){return this._anisotropy},n.setWrapMode=function(e,t,n){void 0===n&&(n=e),this._wrapS=e,this._samplerInfo.addressU=e,this._wrapT=t,this._samplerInfo.addressV=t,this._wrapR=n,this._samplerInfo.addressW=n,this._gfxDevice&&(this._gfxSampler=this._gfxDevice.getSampler(this._samplerInfo))},n.setFilters=function(e,t){this._minFilter=e,this._samplerInfo.minFilter=e,this._magFilter=t,this._samplerInfo.magFilter=t,this._gfxDevice&&(this._gfxSampler=this._gfxDevice.getSampler(this._samplerInfo))},n.setMipFilter=function(e){this._mipFilter=e,this._samplerInfo.mipFilter=e,this._gfxDevice&&(this._gfxSampler=this._gfxDevice.getSampler(this._samplerInfo))},n.setAnisotropy=function(e){e=Math.min(e,16),this._anisotropy=e,this._samplerInfo.maxAnisotropy=e,this._gfxDevice&&(this._gfxSampler=this._gfxDevice.getSampler(this._samplerInfo))},n.destroy=function(){var t,n=e.prototype.destroy.call(this);return n&&null!=(t=o.director.root)&&t.batcher2D&&o.director.root.batcher2D._releaseDescriptorSetCache(this._textureHash),n},n.getHash=function(){return this._textureHash},n.getGFXTexture=function(){return null},n.getSamplerInfo=function(){return this._samplerInfo},n.getGFXSampler=function(){return this._gfxSampler||(this._gfxDevice?this._gfxSampler=this._gfxDevice.getSampler(this._samplerInfo):Z(9302)),this._gfxSampler},n._serialize=function(){return""},n._deserialize=function(e){var t=e.split(",");t.unshift(""),t.length>=5&&(this.setFilters(parseInt(t[1]),parseInt(t[2])),this.setWrapMode(parseInt(t[3]),parseInt(t[4]))),t.length>=7&&(this.setMipFilter(parseInt(t[5])),this.setAnisotropy(parseInt(t[6])))},n._getGFXDevice=function(){return D_.gfxDevice},n._getGFXFormat=function(){return this._getGFXPixelFormat(this._format)},n._setGFXFormat=function(e){this._format=void 0===e?35:e},n._getGFXPixelFormat=function(e){return 1026===e?e=72:1025===e?e=85:1024===e&&(e=83),e},f(t,[{key:"isCompressed",get:function(){return this._format>=72&&this._format<=102||this._format>=1024&&this._format<=1026}},{key:"width",get:function(){return this._width}},{key:"height",get:function(){return this._height}}]),t}(hv),Iv.PixelFormat={RGB565:47,RGB5A1:49,RGBA4444:50,RGB888:24,RGB32F:32,RGBA8888:35,BGRA8888:36,RGBA32F:44,A8:1,I8:2,AI8:3,RGB_PVRTC_2BPPV1:83,RGBA_PVRTC_2BPPV1:84,RGB_A_PVRTC_2BPPV1:1024,RGB_PVRTC_4BPPV1:85,RGBA_PVRTC_4BPPV1:86,RGB_A_PVRTC_4BPPV1:1025,RGB_ETC1:72,RGBA_ETC1:1026,RGB_ETC2:73,RGBA_ETC2:77,RGBA_ASTC_4x4:89,RGBA_ASTC_5x4:90,RGBA_ASTC_5x5:91,RGBA_ASTC_6x5:92,RGBA_ASTC_6x6:93,RGBA_ASTC_8x5:94,RGBA_ASTC_8x6:95,RGBA_ASTC_8x8:96,RGBA_ASTC_10x5:97,RGBA_ASTC_10x6:98,RGBA_ASTC_10x8:99,RGBA_ASTC_10x10:100,RGBA_ASTC_12x10:101,RGBA_ASTC_12x12:102},Iv.WrapMode={REPEAT:0,CLAMP_TO_EDGE:2,MIRRORED_REPEAT:1,CLAMP_TO_BORDER:3},Iv.Filter={NONE:0,LINEAR:2,NEAREST:1},vv=El((gv=Iv).prototype,"_format",[Yl],(function(){return 35})),yv=El(gv.prototype,"_minFilter",[Yl],(function(){return 2})),bv=El(gv.prototype,"_magFilter",[Yl],(function(){return 2})),wv=El(gv.prototype,"_mipFilter",[Yl],(function(){return 0})),Tv=El(gv.prototype,"_wrapS",[Yl],(function(){return 0})),Sv=El(gv.prototype,"_wrapT",[Yl],(function(){return 0})),xv=El(gv.prototype,"_wrapR",[Yl],(function(){return 0})),Ev=El(gv.prototype,"_anisotropy",[Yl],(function(){return 0})),mv=gv))||mv;o.TextureBase=Dv;var Pv=e("Script",Fl("cc.Script")(Rv=function(e){function t(t){return e.call(this,t)||this}return p(t,e),t}(hv))||Rv);o._Script=Pv;var Mv=e("JavaScript",Fl("cc.JavaScript")(Cv=function(e){function t(t){return e.call(this,t)||this}return p(t,e),t}(Pv))||Cv);o._JavaScript=Mv;var Fv,Lv,Nv,kv,zv,Uv,Gv,Vv=e("TypeScript",Fl("cc.TypeScript")(Ov=function(e){function t(t){return e.call(this,t)||this}return p(t,e),t}(Pv))||Ov);o._TypeScript=Vv;var Hv,Wv,jv,Xv,qv,Yv,Kv,Qv,Zv,Jv,$v,ey=e("EventHandler",Fl("cc.ClickEvent")((Lv=function(){function e(){this.target=Nv&&Nv(),this.component=kv&&kv(),this._componentId=zv&&zv(),this.handler=Uv&&Uv(),this.customEventData=Gv&&Gv()}e.emitEvents=function(t){for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r=0,1620),n=Number.isNaN(n)?u.macro.REPEAT_FOREVER:n,i=i||0;var r=u.director.getScheduler(),s=r.isTargetPaused(this);r.schedule(e,this,t,n,i,s)},n.scheduleOnce=function(e,t){void 0===t&&(t=0),this.schedule(e,0,0,t)},n.unschedule=function(e){e&&u.director.getScheduler().unschedule(e,this)},n.unscheduleAllCallbacks=function(){u.director.getScheduler().unscheduleAllForTarget(this)},f(t,[{key:"name",get:function(){if(this._name)return this._name;var e=ze(this),t=e.lastIndexOf(".");return t>=0&&(e=e.slice(t+1)),this.node?this.node.name+"<"+e+">":e},set:function(e){this._name=e}},{key:"uuid",get:function(){return this._id}},{key:"__scriptAsset",get:function(){return null}},{key:"enabled",get:function(){return this._enabled},set:function(e){if(this._enabled!==e&&(this._enabled=e,this.node.activeInHierarchy)){var t=u.director._compScheduler;e?t.enableComp(this):t.disableComp(this)}}},{key:"enabledInHierarchy",get:function(){return this._enabled&&this.node&&this.node.activeInHierarchy}},{key:"_isOnLoadCalled",get:function(){return 16384&this._objFlags}},{key:"internalUpdate",get:function(){return this.update}},{key:"internalLateUpdate",get:function(){return this.lateUpdate}},{key:"internalPreload",get:function(){return this.__preload}},{key:"internalOnLoad",get:function(){return this.onLoad}},{key:"internalStart",get:function(){return this.start}},{key:"internalOnEnable",get:function(){return this.onEnable}},{key:"internalOnDisable",get:function(){return this.onDisable}},{key:"internalOnDestroy",get:function(){return this.onDestroy}}]),t}(Pn),Qv.EventHandler=ey,Qv._executionOrder=0,Qv._requireComponent=null,Qv.system=null,I((Xv=Qv).prototype,"__scriptAsset",[Wv],Object.getOwnPropertyDescriptor(Xv.prototype,"__scriptAsset"),Xv.prototype),qv=El(Xv.prototype,"node",[Yl],(function(){return null})),Yv=El(Xv.prototype,"_enabled",[Yl],(function(){return!0})),Kv=El(Xv.prototype,"__prefab",[Yl],(function(){return null})),jv=Xv))||jv));Me(ny,"_registerEditorProps",(function(e,t){var n=t.requireComponent;n&&(Array.isArray(n)&&(n=n.filter(Boolean)),e._requireComponent=n);var i=t.executionOrder;i&&"number"==typeof i&&(e._executionOrder=i)})),u.Component=ny;var iy=e("MissingScript",Fl("cc.MissingScript")((Jv=function(e){function t(){var t;return(t=e.call(this)||this)._$erialized=$v&&$v(),t}return p(t,e),t.safeFindClass=function(e){var t=ct(e);if(t)return t;o.deserialize.reportMissingClass(e)},t.prototype.onLoad=function(){K(4600,this.node.name)},t}(ny),$v=El(Jv.prototype,"_$erialized",[Yl,Ql],(function(){return null})),Zv=Jv))||Zv);o._MissingScript=iy;try{var ry=iy.__values__;0!==ry.length&&"_$erialized"===ry[ry.length-1]||(Z(16338),Z(16339,ry.join(", ")))}catch(hc){Z(16340,""+hc)}var sy=function(){function e(e,t){this._document=e,this._chunks=t}return f(e,[{key:"document",get:function(){return this._document}},{key:"chunks",get:function(){return this._chunks}}]),e}();function ay(e){var t=e;return{chunks:t.chunks,document:t.document}}function oy(e){if(e.length<16)throw new cy(te(13102));var t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(1313817411!==t.getUint32(0,!0))throw new cy(te(13100));var n=t.getUint32(4,!0);if(1!==n)throw new cy(te(13101,n));if(t.getUint32(8,!0)!==t.byteLength)throw new cy(te(13102));var i=12,r=t.getUint32(i,!0);i+=4;var s=new Uint8Array(t.buffer,i+t.byteOffset,r);i+=r;var a,o=uy(s);try{a=JSON.parse(o)}catch(e){throw new cy(e)}for(var u=[];i0&&(e.chunks.length,this._mainBinChunk=e.chunks[0])):t=e,this._serializedData=t,this._context={fromCCON:n};var i=Array.isArray(t)?t[0]:t;return this.deserializedData=this._deserializeObject(i,0),this._serializedData=void 0,this._mainBinChunk=void 0,this._context=void 0,this.deserializedData},t._deserializeObject=function(e,t,n,i){switch(e.__type__){case"TypedArray":return this._deserializeTypedArrayView(e);case"TypedArrayRef":return this._deserializeTypedArrayViewRef(e);default:return e.__type__?this._deserializeTypeTaggedObject(e,t,n,i):Array.isArray(e)?this._deserializeArray(e):this._deserializePlainObject(e)}},t._deserializeTypedArrayView=function(e){return globalThis[e.ctor].from(e.array)},t._deserializeTypedArrayViewRef=function(e){var t=e.offset,n=e.length,i=e.ctor;return new globalThis[i](this._mainBinChunk.buffer,this._mainBinChunk.byteOffset+t,n)},t._deserializeArray=function(e){for(var t,n=new Array(e.length),i=0;i=0&&(r.deserializedList[t]=n),n}(a);return this._deserializeInto(e,o,a),o},t._deserializeInto=function(e,t,n,i){void 0===i&&(i=!1),i||!t[Lf]?t._deserialize?t._deserialize(e.content,this):o.Class._isCCClass(n)?this._deserializeFireClass(t,e,n):this._deserializeFastDefinedObject(t,e,n):this._runCustomizedDeserialize(e,t,n)},t._runCustomizedDeserialize=function(e,t,n){var i=this,r={readProperty:function(t){var n=e[t];return"object"==typeof n&&n?i._deserializeObjectField(n):n},readThis:function(){i._deserializeInto(e,t,n,!0)},readSuper:function(){var r=Ze(n);r&&i._deserializeInto(e,t,r)}};t[Lf](r,this._context)},t._deserializeFireClass=function(e,t,n){var i;if(n.hasOwnProperty("__deserialize__"))i=n.__deserialize__;else{i=ly(0,n);try{if(n===iy){var r=n.__values__;0!==r.length&&"_$erialized"===r[r.length-1]||(Z(16341),Z(16342,r.join(", ")));var s=i;i=function(e,t,n,i){s(e,t,n,i),t._$erialized||Z(16343,JSON.stringify(n))}}}catch(e){Z(16344,""+e)}Me(n,"__deserialize__",i,!0)}i(this,e,t,n)},t._deserializeAndAssignField=function(e,t,n){var i=t.__id__;if("number"==typeof i){var r=this.deserializedList[i];if(r)e[n]=r;else{var s,a=this._serializedData[i];e[n]=this._deserializeObject(a,i,void 0,n),null==(s=this._onDereferenced)||s.call(this,this.deserializedList,i,e,n)}}else{var o=t.__uuid__;if(o){var u=t.__expectedType__;this.result.push(e,n,o,u)}else e[n]=this._deserializeObject(t,-1)}return!1},t._deserializeObjectField=function(e){var t=e.__id__;if("number"==typeof t){var n=this.deserializedList[t];if(n)return n;var i=this._serializedData[t];return this._deserializeObject(i,t,void 0,void 0)}if(e.__uuid__)throw e.__expectedType__,new Error("Asset reference field serialization is currently not supported in custom serialization.");return this._deserializeObject(e,-1)},t._fillPlainObject=function(e,t){for(var n in t)if(t.hasOwnProperty(n)){var i=t[n];"object"!=typeof i?"__type__"!==n&&(e[n]=i):i?this._deserializeAndAssignField(e,i,n)&&(e[n]=null):e[n]=null}},t._deserializeFastDefinedObject=function(e,t,n){if(n===o.Vec2)return e.x=t.x||0,void(e.y=t.y||0);if(n===o.Vec3)return e.x=t.x||0,e.y=t.y||0,void(e.z=t.z||0);if(n!==o.Color){if(n===o.Size)return e.width=t.width||0,void(e.height=t.height||0);for(var i=En.Attr.getClassAttrs(n),r=n.__values__,s=0;s=0?a[n[u]]=o:a[~u]=o}for(;r=0?c[n[l]]=h:c[~l]=h}}function Py(e,t){for(var n=e[4][t[Oy]],i=n[Cy],r=new(0,i[Iy]),s=i[Ay],a=i[Ry],o=n[n.length-1],u=Cy+1;u=0?t[n]=e[5][i]:e[7][3*~i]=t}function Ly(e){return function(t,n,i,r){for(var s=0;s=0){var l=o[c];t[a]=My(e,l,h)}else(0,zy[c=~c])(e,t,a,h)}return r}function Gy(e,t,n){return e||n(t),Object}function Vy(e,t,n,i,r,s,a){var o=e(t);if(!o){if(r)return void(n[i]=function(t,n,i){return function(){var r=e(i)||Gy(s,i,a);return t[n]=r,new r}}(n,i,t));o=Gy(s,t,a)}n[i]=o}function Hy(e,t,n,i){for(var r=n||ct,s=e[3],a=0;a=0?n[c]:~c,s[o]=c);var h=a[o];"number"==typeof h&&(a[o]=i[h])}}function Xy(e){if(Array.isArray(e)){var t=e[0];return"number"==typeof t||t instanceof Ky}return!1}function qy(e,t,n){var i;t.init(e),null!==(i=n)&&void 0!==i||(n={});var r=e[0],s=!1;if("object"==typeof r&&(s=r.preprocessed,r=r.version),r>=1,i++;return i}function ub(e){return e&&!(e&e-1)}function cb(e,t,n){return!(6===e.gfxAPI)||ub(t)&&ub(n)}var hb,lb,fb,db,pb,_b=Fl("cc.SimpleTexture")(rb=function(e){function t(t){var n;return(n=e.call(this,t)||this)._gfxTexture=null,n._gfxTextureView=null,n._mipmapLevel=1,n._textureWidth=0,n._textureHeight=0,n._baseLevel=0,n._maxLevel=1e3,n}p(t,e);var n=t.prototype;return n.getGFXTexture=function(){return this._gfxTextureView},n.destroy=function(){return this._tryDestroyTextureView(),this._tryDestroyTexture(),e.prototype.destroy.call(this)},n.updateImage=function(){this.updateMipmaps(0)},n.updateMipmaps=function(){},n.uploadData=function(e,t,n){if(void 0===t&&(t=0),void 0===n&&(n=0),this._gfxTexture&&!(this._mipmapLevel<=t)){var i=this._getGFXDevice();if(i){var r=ab[0];r.texExtent.width=this._textureWidth>>t,r.texExtent.height=this._textureHeight>>t,r.texSubres.mipLevel=t,r.texSubres.baseArrayLayer=n,ArrayBuffer.isView(e)?i.copyBuffersToTexture([e],this._gfxTexture,ab):i.copyTexImagesToTexture([e],this._gfxTexture,ab)}}},n._assignImage=function(e,t,n){var i=e.data;if(i&&(this.uploadData(i,t,n),this._checkTextureLoaded(),Rt.CLEANUP_IMAGE_CACHE)){var r=sb.getDeps(this._uuid),s=r.indexOf(e._uuid);-1!==s&&(pe(r,s),e.decRef())}},n._checkTextureLoaded=function(){this._textureReady()},n._textureReady=function(){this.loaded=!0,this.emit("load")},n._setMipmapLevel=function(e){this._mipmapLevel=e<1?1:e},n._setMipRange=function(e,t){this._baseLevel=e<1?0:e,this._maxLevel=t<1?0:t},n.setMipRange=function(e,t){$(e<=t,3124),this._setMipRange(e,t);var n=this._getGFXDevice();if(n){var i=this._createTextureView(n);this._tryDestroyTextureView(),this._gfxTextureView=i}},n._getGfxTextureCreateInfo=function(){return null},n._getGfxTextureViewCreateInfo=function(){return null},n._tryReset=function(){if(this._tryDestroyTextureView(),this._tryDestroyTexture(),0!==this._mipmapLevel){var e=this._getGFXDevice();e&&(this._createTexture(e),this._gfxTextureView=this._createTextureView(e))}},n.isUsingOfflineMipmaps=function(){return!1},n._createTexture=function(e){if(0!==this._width&&0!==this._height){var t=0;0!==this._mipFilter&&cb(e,this._width,this._height)&&(this._mipmapLevel=ob(this._width,this._height),this.isUsingOfflineMipmaps()||this.isCompressed||(t=1));var n=this._getGfxTextureCreateInfo({usage:22,format:this._getGFXFormat(),levelCount:this._mipmapLevel,flags:t});if(n){var i=e.createTexture(n);this._textureWidth=n.width,this._textureHeight=n.height,this._gfxTexture=i}}},n._createTextureView=function(e){if(!this._gfxTexture)return null;var t=this._maxLevel0){var n=this._generatedMipmaps[0];this.reset({width:n.width,height:n.height,format:n.format,mipmapLevel:this._generatedMipmaps.length,baseLevel:this._baseLevel,maxLevel:this._maxLevel}),this._generatedMipmaps.forEach((function(e,n){t._assignImage(e,n)}))}else this.reset({width:0,height:0,mipmapLevel:this._generatedMipmaps.length,baseLevel:this._baseLevel,maxLevel:this._maxLevel})},n.initialize=function(){this.mipmaps=this._mipmaps},n.onLoaded=function(){this.initialize()},n.reset=function(e){this._width=e.width,this._height=e.height,this._setGFXFormat(e.format);var t=void 0===e.mipmapLevel?1:e.mipmapLevel;this._setMipmapLevel(t);var n=void 0===e.baseLevel?0:e.baseLevel,i=void 0===e.maxLevel?1e3:e.maxLevel;this._setMipRange(n,i),this._tryReset()},n.create=function(e,t,n,i,r,s){void 0===n&&(n=35),void 0===i&&(i=1),void 0===r&&(r=0),void 0===s&&(s=1e3),this.reset({width:e,height:t,format:n,mipmapLevel:i,baseLevel:r,maxLevel:s})},n.toString=function(){return 0!==this._mipmaps.length?this._mipmaps[0].url:""},n.updateMipmaps=function(e,t){if(void 0===e&&(e=0),void 0===t&&(t=void 0),!(e>=this._generatedMipmaps.length))for(var n=Math.min(void 0===t?this._generatedMipmaps.length:t,this._generatedMipmaps.length-e),i=0;i"},n.releaseTexture=function(){this.destroy()},n._serialize=function(){return null},n._deserialize=function(t,n){var i=t;e.prototype._deserialize.call(this,i.base,n),this._mipmaps=new Array(i.mipmaps.length);for(var r=0;r1)for(var i=0;i0){var n=this._generatedMipmaps[0].front;this.reset({width:n.width,height:n.height,format:n.format,mipmapLevel:this._generatedMipmaps.length,baseLevel:this._baseLevel,maxLevel:this._maxLevel}),this._generatedMipmaps.forEach((function(e,n){Eb(e,(function(e,i){t._assignImage(e,n,i)}))}))}else this.reset({width:0,height:0,mipmapLevel:this._generatedMipmaps.length,baseLevel:this._baseLevel,maxLevel:this._maxLevel})},n.isUsingOfflineMipmaps=function(){return 2===this._mipmapMode},t.fromTexture2DArray=function(e,n){for(var i=[],r=e.length/6,s=0;s=this._generatedMipmaps.length))for(var i=Math.min(void 0===t?this._generatedMipmaps.length:t,this._generatedMipmaps.length-e),r=function(){var t=e+s;Eb(n._generatedMipmaps[t],(function(e,i){n._assignImage(e,t,i)}))},s=0;s1&&e.forEach((function(e){var n={front:e.front.extractMipmap0(),back:e.back.extractMipmap0(),left:e.left.extractMipmap0(),right:e.right.extractMipmap0(),top:e.top.extractMipmap0(),bottom:e.bottom.extractMipmap0()};t.push(n)}));this._setMipmapParams(t)}},{key:"mipmapAtlas",get:function(){return this._mipmapAtlas},set:function(e){var t=this;if(this._mipmapAtlas=e,this._mipmapAtlas){var n=this._mipmapAtlas.atlas.front;if(n.data){var i=this._mipmapAtlas.atlas,r=this._mipmapAtlas.layout,s=r[0],a=Object.assign(h.document.createElement("canvas"),{width:n.width,height:n.height}).getContext("2d");this.reset({width:s.width,height:s.height,format:n.format,mipmapLevel:r.length});for(var o=function(){var e=r[u];Eb(i,(function(i,r){a.clearRect(0,0,n.width,n.height);var s=i.data;a.drawImage(s,0,0);var o=a.getImageData(e.left,e.top,e.width,e.height),u=new Av({_data:o.data,_compressed:i.isCompressed,width:o.width,height:o.height,format:i.format});t._assignImage(u,e.level,r)}))},u=0;ut.length)||47===e.charCodeAt(t.length)},Ab=function(e){var t=e.uuids,n=e.paths,i=e.types,r=e.deps,s=e.paths=Object.create(null);if(!1===e.debug){for(var a=0,o=t.length;a0&&Mb(e)>0)){Mg.remove(n);for(var i=sb.getDeps(n),r=0,s=i.length;rthis._maxInterval?this._maxInterval:t;e-this._lastDate>1e3*n&&(this._totalNumThisPeriod=0,this._lastDate=e)},e._handleQueue=function(e,t){for(this._checkNextPeriod=!1,this._updateTime();this._queue.length>0&&this._totalNum0&&(zt(this._handleQueue.bind(this),e,t),this._checkNextPeriod=!0)},f(t,[{key:"remoteServerAddress",get:function(){return this._remoteServerAddress}},{key:"handlers",get:function(){return this._downloaders}}],[{key:"instance",get:function(){return t._instance||(t._instance=new t),t._instance}}]),t}();fw._instance=void 0;var dw,pw,_w,mw,gw,vw,yw=fw.instance,bw=fw.instance,ww=e("JsonAsset",Fl("cc.JsonAsset")((pw=function(e){function t(t){var n;return(n=e.call(this,t)||this).json=_w&&_w(),n}return p(t,e),t}(hv),_w=El(pw.prototype,"json",[Yl],(function(){return null})),dw=pw))||dw);o.JsonAsset=ww;var Tw,Sw,xw=e("TextAsset",Fl("cc.TextAsset")((gw=function(e){function t(t){var n;return(n=e.call(this,t)||this).text=vw&&vw(),n}return p(t,e),t.prototype.toString=function(){return this.text},t}(hv),vw=El(gw.prototype,"text",[Yl],(function(){return""})),mw=gw))||mw);o.TextAsset=xw;var Ew=e("BufferAsset",Fl("cc.BufferAsset")((Sw=function(e){function t(t){var n;return(n=e.call(this,t)||this)._buffer=null,n}p(t,e);var n=t.prototype;return n.buffer=function(){return this._buffer,this._buffer},n.validate=function(){return!!this._buffer},f(t,[{key:"_nativeAsset",get:function(){return this._buffer},set:function(e){e instanceof ArrayBuffer?this._buffer=e:this._buffer=e.buffer}}]),t}(hv),I(Sw.prototype,"_nativeAsset",[Rf],Object.getOwnPropertyDescriptor(Sw.prototype,"_nativeAsset"),Sw.prototype),Tw=Sw))||Tw);function Iw(e,t,n,i){var r=null,s=null;try{(r=new Av)._nativeUrl=e,r._nativeAsset=t}catch(e){s=e}i(s,r)}function Aw(e,t,n,i){var r=new ww;r.json=t,i(null,r)}function Rw(e,t,n,i){var r=new xw;r.text=t,i(null,r)}function Cw(e,t,n,i){var r=new Ew;r._nativeUrl=e,r._nativeAsset=t,i(null,r)}function Ow(e,t,n,i){var r=new hv;r._nativeUrl=e,r._nativeAsset=t,i(null,r)}function Bw(e,n,i,r){var s=Ng.get(n.name);s||(s="resources"===n.name?Zb:new Qb,n.base=n.base||e+"/",s.init(n)),t.import("virtual:///prerequisite-imports/"+s.name).then((function(){r(null,s)})).catch(r)}o.BufferAsset=Ew;var Dw=function(){function e(){this._creating=new Dg,this._producers={".png":Iw,".jpg":Iw,".bmp":Iw,".jpeg":Iw,".gif":Iw,".ico":Iw,".tiff":Iw,".webp":Iw,".image":Iw,".pvr":Iw,".pkm":Iw,".astc":Iw,".txt":Rw,".xml":Rw,".vsh":Rw,".fsh":Rw,".atlas":Rw,".tmx":Rw,".tsx":Rw,".fnt":Rw,".json":Aw,".ExportJson":Aw,".binary":Cw,".bin":Cw,".dbbin":Cw,".skel":Cw,bundle:Bw,default:Ow}}var t=e.prototype;return t.register=function(e,t){"object"==typeof e?Ke(this._producers,e):this._producers[e]=t},t.create=function(e,t,n,i,r){var s=this,a=this._producers[n]||this._producers.default,o=Mg.get(e);if(i.reloadAsset||!o){var u=this._creating.get(e);u?u.push(r):(this._creating.add(e,[r]),a(e,t,i,(function(t,n){!t&&n instanceof hv&&(n._uuid=e,Vb(e,n,i.cacheAsset));for(var r=s._creating.remove(e),a=0,o=r.length;a0){var a=Hg.create({input:s,progress:r,options:i,onProgress:e.onProgress,onError:Hg.prototype.recycle,onComplete:function(i){var r;i||((r=e.output).push.apply(r,a.output),a.recycle()),n&&Nw(e),t(i)}});zg.async(a)}else n&&Nw(e),t()}))}function Nw(e){for(var t=e.output,n=0,i=t.length;n0&&(this.downloader.maxConcurrency=r),this._files.clear(),this._parsed.clear(),this._releaseManager.init(),this.assets.clear(),this.bundles.clear(),this.packManager.init(),this.downloader.init(t,n,i),this.parser.init(),this.dependUtil.init();var s=e.importBase||Zw(Jw,"importBase")||"";s&&s.endsWith("/")&&(s=s.substring(0,s.length-1));var a=e.nativeBase||Zw(Jw,"nativeBase")||"";a&&a.endsWith("/")&&(a=a.substring(0,a.length-1)),this.generalImportBase=s,this.generalNativeBase=a,this._projectBundles=Zw(Jw,"projectBundles")||[];var o=Zw(Jw,"assetsOverrides")||{};for(var u in o)this.assetsOverrideMap.set(u,o[u])},t.getBundle=function(e){return Ng.get(e)||null},t.removeBundle=function(e){e._destroy(),Ng.remove(e.name)},t.loadAny=function(e,t,n,i){var r=Xb(t,n,i),s=r.options,a=r.onProgress,o=r.onComplete;s.preset=s.preset||"default",e=Array.isArray(e)?e.slice():e;var u=Hg.create({input:e,onProgress:a,onComplete:Kb(o),options:s});kg.async(u)},t.preloadAny=function(e,t,n,i){var r=Xb(t,n,i),s=r.options,a=r.onProgress,o=r.onComplete;s.preset=s.preset||"preload",e=Array.isArray(e)?e.slice():e;var u=Hg.create({input:e,onProgress:a,onComplete:Kb(o),options:s});zg.async(u)},t.loadRemote=function(e,t,n){var i=Xb(t,void 0,n),r=i.options,s=i.onComplete;r.reloadAsset||!this.assets.has(e)?(r.__isNative__=!0,r.preset=r.preset||"remote",this.loadAny({url:e},r,null,(function(t,n){t?(k(t.message,t.stack),s&&s(t,n)):Pw.create(e,n,r.ext||ai(e),r,(function(e,t){s&&s(e,t)}))}))):Kb(s)(null,this.assets.get(e))},t.loadBundle=function(e,t,n){var i=Xb(t,void 0,n),r=i.options,s=i.onComplete,a=ui(e);this.bundles.has(a)?Kb(s)(null,this.getBundle(a)):(r.preset=r.preset||"bundle",r.ext="bundle",r.__isNative__=!0,this.loadAny({url:e},r,null,(function(t,n){t?(k(t.message,t.stack),s&&s(t,n)):Pw.create(e,n,"bundle",r,(function(e,t){s&&s(e,t)}))})))},t.releaseAsset=function(e){Lb.tryRelease(e,!0)},t.releaseUnusedAssets=function(){Mg.forEach((function(e){Lb.tryRelease(e)}))},t.releaseAll=function(){Mg.forEach((function(e){Lb.tryRelease(e,!0)}))},t.loadWithJson=function(){throw new Error("Only valid in Editor")},f(e,[{key:"files",get:function(){return this._files}},{key:"main",get:function(){return Ng.get("main")||null}},{key:"resources",get:function(){return Ng.get("resources")||null}}],[{key:"instance",get:function(){return this._instance||(this._instance=new e),this._instance}}]),e}());eT._instance=void 0,eT.Pipeline=Pg,eT.Task=Hg,eT.Cache=Dg,eT.RequestItem=Xw,eT.Bundle=Qb,eT.BuiltinBundleName={INTERNAL:"internal",RESOURCES:"resources",MAIN:"main",START_SCENE:"start-scene"},eT.CacheManager=function(){this.cacheDir=void 0,this.cacheEnabled=void 0,this.autoClear=void 0,this.cacheInterval=void 0,this.deleteInterval=void 0,this.cachedFiles=void 0},eT.Downloader=fw,eT.Parser=Uw,eT.DependUtil=ib;var tT=e("assetManager",o.assetManager=eT.instance);o.AssetManager=eT;var nT,iT,rT,sT=e("BuiltinResMgr",function(){function e(){this._resources={},this._materialsToBeCompiled=[]}var t=e.prototype;return t.init=function(){for(var e=this._resources,t=new Uint8Array(16),n=new Uint8Array(16),i=new Uint8Array(16),r=new Uint8Array(16),s=new Uint8Array(16),a=0,u=0;u<4;u++)t[a]=0,t[a+1]=0,t[a+2]=0,t[a+3]=255,n[a]=0,n[a+1]=0,n[a+2]=0,n[a+3]=0,i[a]=119,i[a+1]=119,i[a+2]=119,i[a+3]=255,r[a]=255,r[a+1]=255,r[a+2]=255,r[a+3]=255,s[a]=127,s[a+1]=127,s[a+2]=255,s[a+3]=255,a+=4;var c=new Uint8Array(1024);a=0;for(var h=0;h<256;h++)c[a]=221,c[a+1]=221,c[a+2]=221,c[a+3]=255,a+=4;a=0;for(var l=0;l<8;l++){for(var f=0;f<8;f++)c[a]=85,c[a+1]=85,c[a+2]=85,c[a+3]=255,a+=4;a+=32}a+=32;for(var d=0;d<8;d++){for(var p=0;p<8;p++)c[a]=85,c[a+1]=85,c[a+2]=85,c[a+3]=255,a+=4;a+=32}var _={width:2,height:2,_data:t,_compressed:!1,format:35},m={width:2,height:2,_data:n,_compressed:!1,format:35},g={width:2,height:2,_data:i,_compressed:!1,format:35},v={width:2,height:2,_data:r,_compressed:!1,format:35},y={width:2,height:2,_data:s,_compressed:!1,format:35},b={width:16,height:16,_data:c,_compressed:!1,format:35},w=new Av(_),T=new Sb;T._uuid="black-texture",T.image=w,e[T._uuid]=T;var S=new Av(m),x=new Sb;x._uuid="empty-texture",x.image=S,e[x._uuid]=x;var E=new xb;E._uuid="black-cube-texture",E.setMipFilter(1),E.image={front:new Av(_),back:new Av(_),left:new Av(_),right:new Av(_),top:new Av(_),bottom:new Av(_)},e[E._uuid]=E;var I=new Av(g),A=new Sb;A._uuid="grey-texture",A.image=I,e[A._uuid]=A;var R=new xb;R._uuid="grey-cube-texture",R.setMipFilter(1),R.image={front:new Av(g),back:new Av(g),left:new Av(g),right:new Av(g),top:new Av(g),bottom:new Av(g)},e[R._uuid]=R;var C=new Av(v),O=new Sb;O._uuid="white-texture",O.image=C,e[O._uuid]=O;var B=new xb;B._uuid="white-cube-texture",B.setMipFilter(1),B.image={front:new Av(v),back:new Av(v),left:new Av(v),right:new Av(v),top:new Av(v),bottom:new Av(v)},e[B._uuid]=B;var D=new Av(y),P=new Sb;P._uuid="normal-texture",P.image=D,e[P._uuid]=P;var M=new Av(b),F=new Sb;F._uuid="default-texture",F.image=M,e[F._uuid]=F;var L=new xb;if(L.setMipFilter(1),L._uuid="default-cube-texture",L.image={front:new Av(b),back:new Av(b),left:new Av(b),right:new Av(b),top:new Av(b),bottom:new Av(b)},e[L._uuid]=L,o.SpriteFrame){var N=new o.SpriteFrame,k=w,z=new Sb;z.image=k,N.texture=z,N._uuid="default-spriteframe",e[N._uuid]=N}},t.addAsset=function(e,t){this._resources[e]=t},t.get=function(e){return this._resources[e]},t.loadBuiltinAssets=function(){var e=this,t=At.querySettings("engine","builtinAssets");if(!t)return Promise.resolve();var n=this._resources;return new Promise((function(i,r){tT.loadBundle("internal",(function(s){s?r(s):tT.loadAny(t,(function(t,s){t?r(t):(s.forEach((function(t){n[t.name]=t,Lb.addIgnoredAsset(t),t instanceof o.Material&&e._materialsToBeCompiled.push(t)})),i())}))}))}))},t.compileBuiltinMaterial=function(){for(var e=0;e8?Z(12004,8):(this._passes=e,this._flushPassInfo(),this._descriptorSet&&(this._descriptorSet.destroy(),oT.layout=e[0].localSetLayout,this._descriptorSet=this._device.createDescriptorSet(oT)))}},{key:"shaders",get:function(){return this._shaders}},{key:"subMesh",get:function(){return this._subMesh},set:function(e){this._inputAssembler.destroy(),this._inputAssembler=this._device.createInputAssembler(e.iaInfo),this._subMesh=e}},{key:"priority",get:function(){return this._priority},set:function(e){this._priority=e}},{key:"inputAssembler",get:function(){return this._inputAssembler}},{key:"descriptorSet",get:function(){return this._descriptorSet}},{key:"worldBoundDescriptorSet",get:function(){return this._worldBoundDescriptorSet}},{key:"patches",get:function(){return this._patches}},{key:"instancedAttributeBlock",get:function(){return this._instancedAttributeBlock}},{key:"instancedWorldMatrixIndex",get:function(){return this._instancedWorldMatrixIndex},set:function(e){this._instancedWorldMatrixIndex=e}},{key:"instancedSHIndex",get:function(){return this._instancedSHIndex},set:function(e){this._instancedSHIndex=e}},{key:"useReflectionProbeType",get:function(){return this._useReflectionProbeType},set:function(e){this._useReflectionProbeType=e}}]),e}(),cT=4227858432,hT=66060288,lT=1044480,fT=function(e,t,n,i){return void 0===i&&(i=0),t<<26&cT|e<<20&hT|n<<12&lT|4095&i},dT=function(e){return(e&cT)>>>26},pT=function(e){return(e&hT)>>>20},_T=function(e){return(e&lT)>>>12},mT=function(e){return 4095&e},gT=function(e,t){return 67108863&e|t<<26&cT},vT=((nT={})[0]=function(e,t,n){return void 0===n&&(n=0),K(12010,n)},nT[5]=function(e,t,n){return void 0===n&&(n=0),e[n]},nT[6]=function(e,t,n){return void 0===n&&(n=0),Xu.fromArray(t,e,n)},nT[7]=function(e,t,n){return void 0===n&&(n=0),Fo.fromArray(t,e,n)},nT[8]=function(e,t,n){return void 0===n&&(n=0),go.fromArray(t,e,n)},nT[13]=function(e,t,n){return void 0===n&&(n=0),e[n]},nT[14]=function(e,t,n){return void 0===n&&(n=0),Xu.fromArray(t,e,n)},nT[15]=function(e,t,n){return void 0===n&&(n=0),Fo.fromArray(t,e,n)},nT[16]=function(e,t,n){return void 0===n&&(n=0),go.fromArray(t,e,n)},nT[21]=function(e,t,n){return void 0===n&&(n=0),Zo.fromArray(t,e,n)},nT[25]=function(e,t,n){return void 0===n&&(n=0),Ru.fromArray(t,e,n)},nT),yT=((iT={})[0]=function(e,t,n){return void 0===n&&(n=0),K(12010,n)},iT[5]=function(e,t,n){return void 0===n&&(n=0),e[n]=t},iT[6]=function(e,t,n){return void 0===n&&(n=0),Xu.toArray(e,t,n)},iT[7]=function(e,t,n){return void 0===n&&(n=0),Fo.toArray(e,t,n)},iT[8]=function(e,t,n){return void 0===n&&(n=0),go.toArray(e,t,n)},iT[13]=function(e,t,n){return void 0===n&&(n=0),e[n]=t},iT[14]=function(e,t,n){return void 0===n&&(n=0),Xu.toArray(e,t,n)},iT[15]=function(e,t,n){return void 0===n&&(n=0),Fo.toArray(e,t,n)},iT[16]=function(e,t,n){return void 0===n&&(n=0),go.toArray(e,t,n)},iT[21]=function(e,t,n){return void 0===n&&(n=0),Zo.toArray(e,t,n)},iT[25]=function(e,t,n){return void 0===n&&(n=0),Ru.toArray(e,t,n)},iT),bT=((rT={})[5]=function(e){return"number"==typeof e},rT[13]=function(e){return"number"==typeof e},rT[6]=function(e){return!!(e instanceof Xu)},rT[14]=function(e){return!!(e instanceof Xu)},rT[7]=function(e){return!!(e instanceof Fo)},rT[15]=function(e){return!!(e instanceof Fo)},rT[8]=function(e){return!!(e instanceof go)},rT[16]=function(e){return!!(e instanceof go||e instanceof Wo||e instanceof fu)},rT[21]=function(e){return!!(e instanceof Zo)},rT[25]=function(e){return!!(e instanceof Ru)},rT),wT=[Object.freeze([0]),Object.freeze([0,0]),Object.freeze([0,0,0,0]),Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])];function TT(e){switch(e){case 1:case 5:case 9:case 13:return wT[0];case 2:case 6:case 10:case 14:return wT[1];case 4:case 8:case 12:case 16:return wT[2];case 25:return wT[3];case 28:return"default-texture";case 31:return"default-cube-texture";case 29:return"default-array-texture";case 30:return"default-3d-texture"}return wT[0]}function ST(e){switch(e){case 28:return"-texture";case 31:return"-cube-texture";case 29:return"-array-texture";case 30:return"-3d-texture";default:return"-unknown"}}function xT(e,t){for(var n=Object.entries(t),i=!1,r=0;r>2)*o.count}for(var u=0;u31&&(e.uber=!0),e.constantMacros="",e.builtins.statistics)e.constantMacros+="#define "+r+" "+e.builtins.statistics[r]+"\n"}function LT(e){var t=Object.keys(e).reduce((function(t,n){return t.reduce((function(t,i){for(var r=e[n],s=0;s0&&this.shaders.length>0},t}(hv),YT._effects={},YT._layoutValid=!0,WT=El((HT=YT).prototype,"techniques",[Yl],(function(){return[]})),jT=El(HT.prototype,"shaders",[Yl],(function(){return[]})),XT=El(HT.prototype,"combinations",[Yl],(function(){return[]})),qT=El(HT.prototype,"hideInEditor",[Yl,Ql],(function(){return!1})),VT=HT))||VT);o.EffectAsset=ZT;var JT,$T,eS=e("getPhaseID",(JT=new Map,$T=0,function(e){return"number"==typeof e?e:(JT.has(e)||(JT.set(e,1<<$T),$T++),JT.get(e))})),tS=e("InstancedBuffer",function(){function e(e){this.instances=[],this.hasPendingModels=!1,this.dynamicOffsets=[],this._device=e.device,this.pass=e}var t=e.prototype;return t.destroy=function(){this.instances.forEach((function(e){e.vb.destroy(),e.ia.destroy()})),this.instances.length=0},t.merge=function(e,t,n){void 0===n&&(n=null);var i=e.instancedAttributeBlock,r=i.buffer.length;if(r){var s=e.inputAssembler,a=e.descriptorSet,o=a.getTexture(Ym),u=a.getTexture(tg),c=a.getTexture(sg),h=e.useReflectionProbeType,l=n;l||(l=e.shaders[t]);for(var f=e.descriptorSet,d=0;d=1024)&&m.lightingMap.objectID===o.objectID&&m.useReflectionProbeType===h&&m.reflectionProbeCubemap.objectID===u.objectID&&m.reflectionProbePlanarMap.objectID===c.objectID&&m.stride===r){if(m.count>=m.capacity){m.capacity<<=1;var g=m.stride*m.capacity,v=m.data;m.data=new Uint8Array(g),m.data.set(v),m.vb.resize(g)}return m.shader=l,m.descriptorSet=f,m.data.set(i.buffer,m.stride*m.count++),void(this.hasPendingModels=!0)}}for(var y=this._device.createBuffer(new Cr(10,3,32*r,r)),b=new Uint8Array(32*r),w=s.vertexBuffers.slice(),T=s.attributes.slice(),S=s.indexBuffer,x=0;x>2,s=this._getBlockView(i,n),a=mT(e),o=0;o>2)*s,h=0;h+u.length<=c;h+=u.length)a.set(u,r+h);this._rootBufferDirty=!0}},t.resetTexture=function(e,t){var n=this.getHandle(e);if(n){var i,r=dT(n),s=pT(n),a=this._properties[e],o=a&&a.value,u=(i="string"==typeof o?aT.get(""+o+ST(r)):o||aT.get(TT(r)))&&i.getGFXTexture(),c=a&&void 0!==a.samplerHash?na.unpackFromHash(a.samplerHash):i&&i.getSamplerInfo(),h=this._device.getSampler(c);this._descriptorSet.bindSampler(s,h,t||0),this._descriptorSet.bindTexture(s,u,t||0)}},t.resetUBOs=function(){for(var e=0;e>2)*r.count,c=0;c+o.length<=u;c+=o.length)s.set(o,n+c);n+=u}this._rootBufferDirty=!0},t.resetTextures=function(){var e=this;if(o.rendering)this._shaderInfo.descriptors[1].samplerTextures.forEach((function(t){for(var n=0;n=0;--t){var n=e[t];if(n.window.swapchain)return void(wS=n)}wS=null}function SS(e,t,n,i,r){if(!gg()&&i&&i.enabled&&r===wS){var s=i.subModels[0],a=s.inputAssembler,o=s.passes,u=s.shaders,c=s.descriptorSet;cS.width=hS.width=r.window.width,cS.height=hS.height=r.window.height;var h=uS.getOrCreatePipelineState(e,o[0],u[0],t,a);n.setViewport(cS),n.setScissor(hS),n.bindPipelineState(h),n.bindDescriptorSet(1,o[0].descriptorSet),n.bindDescriptorSet(2,c),n.bindInputAssembler(a),n.draw(a)}}var xS=new go,ES=e("Material",(fS=Fl("cc.Material"),dS=yf(ZT),fS((_S=function(e){function t(t){var n;return(n=e.call(this,t)||this)._effectAsset=mS&&mS(),n._techIdx=gS&&gS(),n._defines=vS&&vS(),n._states=yS&&yS(),n._props=bS&&bS(),n._passes=[],n._hash=0,n}p(t,e),t.getHash=function(e){for(var t,n=0,i=S(e.passes);!(t=i()).done;)n^=t.value.hash;return n};var n=t.prototype;return n.initialize=function(e){this._passes.length?K(12005):(this._defines||(this._defines=[]),this._states||(this._states=[]),this._props||(this._props=[]),this._fillInfo(e),this._update())},n.reset=function(e){this.initialize(e)},n.destroy=function(){return this._doDestroy(),e.prototype.destroy.call(this)},n.recompileShaders=function(){K(16370,this.name)},n.overridePipelineStates=function(){K(16371,this.name)},n.onLoaded=function(){this._update()},n.resetUniforms=function(e){void 0===e&&(e=!0),this._props.length=this._passes.length;for(var t=0;t=this._passes.length&&K(16372,n);var u=this._passes[n];this._uploadProperty(u,e,t)&&(this._props[u.propertyIndex][e]=t,i=!0)}i||K(16373,e)},n.getProperty=function(e,t){if(void 0===t)for(var n=this._props,i=n.length,r=0;r=this._passes.length)return K(16372,t),null;var a=this._props[this._passes[t].propertyIndex];if(e in a)return a[e]}return null},n.copy=function(e,t){this._techIdx=e._techIdx,this._props.length=e._props.length;for(var n=0;n0},f(t,[{key:"effectAsset",get:function(){return this._effectAsset}},{key:"effectName",get:function(){return this._effectAsset?this._effectAsset.name:""}},{key:"technique",get:function(){return this._techIdx}},{key:"passes",get:function(){return this._passes}},{key:"hash",get:function(){return this._hash}},{key:"parent",get:function(){return null}},{key:"owner",get:function(){return null}}]),t}(hv),mS=El(_S.prototype,"_effectAsset",[dS],(function(){return null})),gS=El(_S.prototype,"_techIdx",[Yl],(function(){return 0})),vS=El(_S.prototype,"_defines",[Yl],(function(){return[]})),yS=El(_S.prototype,"_states",[Yl],(function(){return[]})),bS=El(_S.prototype,"_props",[Yl],(function(){return[]})),pS=_S))||pS));o.Material=ES;var IS=yt({Low_256x256:256,Medium_512x512:512,High_1024x1024:1024,Ultra_2048x2048:2048}),AS=yt({Planar:0,ShadowMap:1}),RS=yt({HARD:0,SOFT:1,SOFT_2X:2,SOFT_4X:3}),CS=yt({LEVEL_1:1,LEVEL_2:2,LEVEL_3:3,LEVEL_4:4}),OS=yt({NONE:1,RemoveDuplicates:2,DisableRotationFix:3}),BS=AS.ShadowMap+1,DS=function(){function e(){this.fixedSphere=new Ac(0,0,0,.01),this.maxReceived=4,this._matLight=new Ru,this._material=null,this._instancingMaterial=null,this._enabled=!1,this._type=BS,this._distance=0,this._planeBias=1,this._normal=new Fo(0,1,0),this._shadowColor=new Wo(0,0,0,76),this._size=new Xu(1024,1024),this._shadowMapDirty=!1}var t=e.prototype;return t.getPlanarShader=function(e){this._material||(this._material=new ES,this._material.initialize({effectName:"pipeline/planar-shadow"}));var t=this._material.passes;return t.length>0?t[0].getShaderVariant(e):null},t.initialize=function(e){this._enabled=e.enabled,this._type=this.enabled?e.type:BS,this.normal=e.planeDirection,this.distance=e.planeHeight,this.planeBias=e.planeBias,this.shadowColor=e.shadowColor,this.maxReceived=e.maxReceived,e.shadowMapSize!==this._size.x&&(this.size.set(e.shadowMapSize,e.shadowMapSize),this._shadowMapDirty=!0)},t.activate=function(){if(this._enabled)if(this.type===AS.Planar)this._updatePlanarInfo();else{var e=o.director.root;e.pipeline.macros.CC_SHADOW_TYPE=2,e.onGlobalPipelineStateChanged()}else{var t=o.director.root;t.pipeline.macros.CC_SHADOW_TYPE=0,t.onGlobalPipelineStateChanged()}},t._updatePlanarInfo=function(){this._material||(this._material=new ES,this._material.initialize({effectName:"pipeline/planar-shadow"}));var e=o.director.root;e.pipeline.macros.CC_SHADOW_TYPE=1,e.onGlobalPipelineStateChanged()},t.destroy=function(){this._material&&this._material.destroy(),this._instancingMaterial&&this._instancingMaterial.destroy(),this.fixedSphere.destroy()},f(e,[{key:"enabled",get:function(){return this._enabled},set:function(e){this._enabled=e,this.activate()}},{key:"type",get:function(){return this._type},set:function(e){this._type=this.enabled?e:BS,this.activate()}},{key:"normal",get:function(){return this._normal},set:function(e){Fo.copy(this._normal,e)}},{key:"distance",get:function(){return this._distance},set:function(e){this._distance=e}},{key:"planeBias",get:function(){return this._planeBias},set:function(e){this._planeBias=e}},{key:"shadowColor",get:function(){return this._shadowColor},set:function(e){this._shadowColor=e}},{key:"size",get:function(){return this._size},set:function(e){this._size.set(e)}},{key:"shadowMapDirty",get:function(){return this._shadowMapDirty},set:function(e){this._shadowMapDirty=e}},{key:"matLight",get:function(){return this._matLight}},{key:"material",get:function(){return this._material}},{key:"instancingMaterial",get:function(){return this._instancingMaterial}}]),e}();function PS(){return o.director.root.pipeline.pipelineSceneData}DS.MAX_FAR=2e3,DS.COEFFICIENT_OF_EXPANSION=2*Math.sqrt(3),o.Shadows=DS;var MS=new Ru,FS=[{name:"CC_RECEIVE_SHADOW",value:!0}],LS=[{name:"CC_USE_LIGHTMAP",value:1}],NS=[{name:"CC_USE_LIGHTMAP",value:2}],kS=[{name:"CC_LIGHT_MAP_VERSION",value:2}],zS=[{name:"CC_USE_LIGHT_PROBE",value:!0}],US=new Lr(2,2,0,2,2,2),GS=new Lr(2,2,2,2,2,2),VS=function(){function e(){this.type=0,this.scene=null,this.isDynamicBatching=!1,this._worldBounds=null,this._modelBounds=null,this._subModels=[],this._node=null,this._transform=null,this._inited=!1,this._descriptorSetCount=1,this._updateStamp=-1,this._localDataUpdated=!0,this._localData=new Float32Array(56),this._localBuffer=null,this._localSHData=null,this._localSHBuffer=null,this._lightmap=null,this._lightmapUVParam=vo(),this._tetrahedronIndex=-1,this._lastWorldBoundCenter=Lo(1/0,1/0,1/0),this._useLightProbe=!1,this._worldBoundBuffer=null,this._receiveShadow=!1,this._castShadow=!1,this._receiveDirLight=!0,this._shadowBias=0,this._shadowNormalBias=0,this._reflectionProbeId=-1,this._reflectionProbeBlendId=-1,this._reflectionProbeBlendWeight=0,this._enabled=!0,this._visFlags=Y_.Enum.NONE,this._priority=0,this._bakeToReflectionProbe=!0,this._reflectionProbeType=0,this._device=D_.gfxDevice}var t=e.prototype;return t.initialize=function(){this._inited||(this._receiveShadow=!0,this.castShadow=!1,this.enabled=!0,this.visFlags=Y_.Enum.NONE,this._inited=!0,this._bakeToReflectionProbe=!0,this._reflectionProbeType=0)},t.destroy=function(){for(var e=this._subModels,t=0;t=0?u.updateInstancedWorldMatrix(s,c):a=!0}(a||r)&&this._localBuffer&&(Ru.toArray(this._localData,s,0),Ru.invert(MS,s),Ru.transpose(MS,MS),Ru.toArray(this._localData,MS,16),this._localBuffer.update(this._localData))}},t.invalidateLocalData=function(){this._localDataUpdated=!0},t.showTetrahedron=function(){return this.isLightProbeAvailable()},t.isLightProbeAvailable=function(){if(!this._useLightProbe)return!1;var e=PS().lightProbes;return!(!e||e.empty()||!this._worldBounds)},t.updateSHBuffer=function(){if(this._localSHData){for(var e=this._subModels,t=!1,n=0;n=0?i.updateInstancedSH(this._localSHData,r):t=!0}t&&this._localSHBuffer&&this._localSHBuffer.update(this._localSHData)}},t.clearSHUBOs=function(){if(this._localSHData){for(var e=0;e<28;e++)this._localSHData[e]=0;this.updateSHBuffer()}},t.updateSHUBOs=function(){if(this.isLightProbeAvailable()){var e=this._worldBounds.center;if(!e.equals(this._lastWorldBoundCenter,Ca)){var t=[],n=new go,i=o.director.root.pipeline.pipelineSceneData.lightProbes;if(this._lastWorldBoundCenter.set(e),this._tetrahedronIndex=i.data.getInterpolationWeights(e,this._tetrahedronIndex,n),i.data.getInterpolationSHCoefficients(this._tetrahedronIndex,n,t)&&this._localSHData){var r=o.internal.SH;r.reduceRinging(t,i.reduceRinging),r.updateUBOData(this._localSHData,0,t),this.updateSHBuffer()}}}},t.createBoundingShape=function(e,t){e&&t&&(this._modelBounds||(this._modelBounds=nl.create()),this._worldBounds||(this._worldBounds=nl.create()),nl.fromPoints(this._modelBounds,e,t),this._worldBounds.copy(this._modelBounds))},t._createSubModel=function(){return new uT},t.initSubModel=function(e,t,n){this.initialize(),null==this._subModels[e]?this._subModels[e]=this._createSubModel():this._subModels[e].destroy(),this._subModels[e].initialize(t,n.passes,this.getMacroPatches(e)),this._updateAttributesAndBinding(e)},t.setSubModelMesh=function(e,t){this._subModels[e]&&(this._subModels[e].subMesh=t)},t.setSubModelMaterial=function(e,t){this._subModels[e]&&(this._subModels[e].passes=t.passes,this._updateAttributesAndBinding(e))},t.onGlobalPipelineStateChanged=function(){for(var e=this._subModels,t=0;t1?GS:US),r=this._subModels,s=0;s15e3&&(t=15e3);var n=t*t,i=(.860117757+.000154118254*t+1.28641212e-7*n)/(1+.000842420235*t+7.08145163e-7*n),r=(.317398726+422806245e-13*t+4.20481691e-8*n)/(1-289741816e-13*t+1.61456053e-7*n),s=2*i-8*r+4,a=3*i/s,o=2*r/s,u=1/o*a,c=1/o*(1-a-o);e.x=3.2404542*u-1.5371385+-.4985314*c,e.y=-.969266*u+1.8760108+.041556*c,e.z=.0556434*u-.2040259+1.0572252*c}var ix,rx=function(e){return 4*Math.PI*Math.PI*e*e},sx=function(){function e(){this._baked=!1,this._color=Lo(1,1,1),this._colorTemp=6550,this._colorTempRGB=Lo(1,1,1),this._finalColor=Lo(1,1,1),this._scene=null,this._node=null,this._name=null,this._useColorTemperature=!1,this._type=5,this._visibility=fg}var t=e.prototype;return t.initialize=function(){this.color=Lo(1,1,1),this.colorTemperature=6550},t.attachToScene=function(e){this._scene=e},t.detachFromScene=function(){this._scene=null},t.destroy=function(){this._name=null,this._node=null},t.update=function(){},f(e,[{key:"baked",get:function(){return this._baked},set:function(e){this._baked=e}},{key:"color",get:function(){return this._color},set:function(e){this._color.set(e),this._useColorTemperature&&Fo.multiply(this._finalColor,this._color,this._colorTempRGB)}},{key:"useColorTemperature",get:function(){return this._useColorTemperature},set:function(e){this._useColorTemperature=e,e&&Fo.multiply(this._finalColor,this._color,this._colorTempRGB)}},{key:"colorTemperature",get:function(){return this._colorTemp},set:function(e){this._colorTemp=e,nx(this._colorTempRGB,this._colorTemp),this._useColorTemperature&&Fo.multiply(this._finalColor,this._color,this._colorTempRGB)}},{key:"colorTemperatureRGB",get:function(){return this._colorTempRGB}},{key:"finalColor",get:function(){return this._finalColor}},{key:"visibility",get:function(){return this._visibility},set:function(e){this._visibility=e}},{key:"node",get:function(){return this._node},set:function(e){this._node=e,this._node&&(this._node.hasChangedFlags|=2)}},{key:"type",get:function(){return this._type}},{key:"name",get:function(){return this._name},set:function(e){this._name=e}},{key:"scene",get:function(){return this._scene}}]),e}(),ax=new Fo(0,0,-1),ox=new Fo,ux=function(e){function t(){var t;return(t=e.call(this)||this)._dir=new Fo(1,-1,-1),t._illuminanceHDR=HS.SUN_ILLUM,t._illuminanceLDR=1,t._shadowEnabled=!1,t._shadowPcf=RS.HARD,t._shadowBias=1e-5,t._shadowNormalBias=0,t._shadowSaturation=1,t._shadowDistance=50,t._shadowInvisibleOcclusionRange=200,t._csmLevel=CS.LEVEL_4,t._csmNeedUpdate=!1,t._csmLayerLambda=.75,t._csmOptimizationMode=OS.DisableRotationFix,t._csmLayersTransition=!1,t._csmTransitionRange=.05,t._shadowFixedArea=!1,t._shadowNear=.1,t._shadowFar=10,t._shadowOrthoSize=5,t._type=0,t}p(t,e);var n=t.prototype;return n.initialize=function(){e.prototype.initialize.call(this),this.illuminance=HS.SUN_ILLUM,this.direction=new Fo(1,-1,-1)},n.update=function(){this._node&&this._node.hasChangedFlags&&(this.direction=Fo.transformQuat(ox,ax,this._node.worldRotation))},n.activate=function(){var e=o.director.root,t=e.pipeline;this._shadowEnabled?(this._shadowFixedArea||!t.pipelineSceneData.csmSupported?t.macros.CC_DIR_LIGHT_SHADOW_TYPE=1:this.csmLevel>1&&t.pipelineSceneData.csmSupported?(t.macros.CC_DIR_LIGHT_SHADOW_TYPE=2,t.macros.CC_CASCADED_LAYERS_TRANSITION=this._csmLayersTransition):t.macros.CC_DIR_LIGHT_SHADOW_TYPE=1,t.macros.CC_DIR_SHADOW_PCF_TYPE=this._shadowPcf):t.macros.CC_DIR_LIGHT_SHADOW_TYPE=0,e.onGlobalPipelineStateChanged()},f(t,[{key:"direction",get:function(){return this._dir},set:function(e){Fo.normalize(this._dir,e)}},{key:"illuminance",get:function(){return PS().isHDR?this._illuminanceHDR:this._illuminanceLDR},set:function(e){PS().isHDR?this.illuminanceHDR=e:this.illuminanceLDR=e}},{key:"illuminanceHDR",get:function(){return this._illuminanceHDR},set:function(e){this._illuminanceHDR=e}},{key:"illuminanceLDR",get:function(){return this._illuminanceLDR},set:function(e){this._illuminanceLDR=e}},{key:"shadowEnabled",get:function(){return this._shadowEnabled},set:function(e){this._shadowEnabled=e,this.activate()}},{key:"shadowPcf",get:function(){return this._shadowPcf},set:function(e){this._shadowPcf=e,this.activate()}},{key:"shadowBias",get:function(){return this._shadowBias},set:function(e){this._shadowBias=e}},{key:"shadowNormalBias",get:function(){return this._shadowNormalBias},set:function(e){this._shadowNormalBias=e}},{key:"shadowSaturation",get:function(){return this._shadowSaturation},set:function(e){this._shadowSaturation=e}},{key:"shadowDistance",get:function(){return this._shadowDistance},set:function(e){this._shadowDistance=Math.min(e,DS.MAX_FAR)}},{key:"shadowInvisibleOcclusionRange",get:function(){return this._shadowInvisibleOcclusionRange},set:function(e){this._shadowInvisibleOcclusionRange=Math.min(e,DS.MAX_FAR)}},{key:"csmLevel",get:function(){return this._csmLevel},set:function(e){this._csmLevel=e,this.activate()}},{key:"csmNeedUpdate",get:function(){return this._csmNeedUpdate},set:function(e){this._csmNeedUpdate=e}},{key:"csmLayerLambda",get:function(){return this._csmLayerLambda},set:function(e){this._csmLayerLambda=e}},{key:"csmOptimizationMode",get:function(){return this._csmOptimizationMode},set:function(e){this._csmOptimizationMode=e}},{key:"shadowFixedArea",get:function(){return this._shadowFixedArea},set:function(e){this._shadowFixedArea=e,this.activate()}},{key:"shadowNear",get:function(){return this._shadowNear},set:function(e){this._shadowNear=e}},{key:"shadowFar",get:function(){return this._shadowFar},set:function(e){this._shadowFar=Math.min(e,DS.MAX_FAR)}},{key:"shadowOrthoSize",get:function(){return this._shadowOrthoSize},set:function(e){this._shadowOrthoSize=e}},{key:"csmLayersTransition",get:function(){return this._csmLayersTransition},set:function(e){this._csmLayersTransition=e,this.activate()}},{key:"csmTransitionRange",get:function(){return this._csmTransitionRange},set:function(e){this._csmTransitionRange=e}}]),t}(sx),cx=function(e){function t(){var t;return(t=e.call(this)||this)._needUpdate=!1,t._size=.15,t._range=1,t._luminanceHDR=0,t._luminanceLDR=0,t._pos=new Fo,t._aabb=nl.create(),t._type=1,t}p(t,e);var n=t.prototype;return n.initialize=function(){e.prototype.initialize.call(this),this.size=.15,this.range=1,this.luminanceHDR=1700/rx(.15),this.luminanceLDR=1},n.update=function(){if(this._node&&(this._node.hasChangedFlags||this._needUpdate)){this._node.getWorldPosition(this._pos);var e=this._range;nl.set(this._aabb,this._pos.x,this._pos.y,this._pos.z,e,e,e),this._needUpdate=!1}},f(t,[{key:"position",get:function(){return this._pos}},{key:"size",get:function(){return this._size},set:function(e){this._size=e}},{key:"range",get:function(){return this._range},set:function(e){this._range=e,this._needUpdate=!0}},{key:"luminance",get:function(){return PS().isHDR?this._luminanceHDR:this._luminanceLDR},set:function(e){PS().isHDR?this.luminanceHDR=e:this.luminanceLDR=e}},{key:"luminanceHDR",get:function(){return this._luminanceHDR},set:function(e){this._luminanceHDR=e}},{key:"luminanceLDR",set:function(e){this._luminanceLDR=e}},{key:"aabb",get:function(){return this._aabb}}]),t}(sx),hx=new Fo(0,0,-1),lx=new fu,fx=new Ru,dx=new Ru,px=new Ru,_x=new Ru,mx=function(e){function t(){var t;return(t=e.call(this)||this)._dir=new Fo(1,-1,-1),t._range=5,t._spotAngle=Math.cos(Math.PI/6),t._angleAttenuationStrength=0,t._pos=new Fo,t._aabb=nl.create(),t._frustum=fl.create(),t._angle=0,t._needUpdate=!1,t._size=.15,t._luminanceHDR=0,t._luminanceLDR=0,t._shadowEnabled=!1,t._shadowPcf=RS.HARD,t._shadowBias=1e-5,t._shadowNormalBias=0,t._type=2,t}p(t,e);var n=t.prototype;return n.initialize=function(){e.prototype.initialize.call(this),this.size=.15,this.luminanceHDR=1700/rx(.15),this.luminanceLDR=1,this.range=Math.cos(Math.PI/6),this._dir.set(new Fo(1,-1,-1))},n.update=function(){this._node&&(this._node.hasChangedFlags||this._needUpdate)&&(this._node.getWorldPosition(this._pos),Fo.transformQuat(this._dir,hx,this._node.getWorldRotation(lx)),Fo.normalize(this._dir,this._dir),nl.set(this._aabb,this._pos.x,this._pos.y,this._pos.z,this._range,this._range,this._range),this._node.getWorldRT(fx),Ru.invert(fx,fx),Ru.perspective(dx,this._angle,1,.001,this._range),Ru.multiply(px,dx,fx),this._frustum.update(px,_x),this._needUpdate=!1)},f(t,[{key:"position",get:function(){return this._pos}},{key:"size",get:function(){return this._size},set:function(e){this._size=e}},{key:"range",get:function(){return this._range},set:function(e){this._range=e,this._needUpdate=!0}},{key:"luminance",get:function(){return PS().isHDR?this._luminanceHDR:this._luminanceLDR},set:function(e){PS().isHDR?this.luminanceHDR=e:this.luminanceLDR=e}},{key:"luminanceHDR",get:function(){return this._luminanceHDR},set:function(e){this._luminanceHDR=e}},{key:"luminanceLDR",get:function(){return this._luminanceLDR},set:function(e){this._luminanceLDR=e}},{key:"direction",get:function(){return this._dir}},{key:"spotAngle",get:function(){return this._spotAngle},set:function(e){this._angle=e,this._spotAngle=Math.cos(.5*e),this._needUpdate=!0}},{key:"angleAttenuationStrength",get:function(){return this._angleAttenuationStrength},set:function(e){this._angleAttenuationStrength=e,this._needUpdate=!0}},{key:"angle",get:function(){return this._angle}},{key:"aabb",get:function(){return this._aabb}},{key:"frustum",get:function(){return this._frustum}},{key:"shadowEnabled",get:function(){return this._shadowEnabled},set:function(e){this._shadowEnabled=e}},{key:"shadowPcf",get:function(){return this._shadowPcf},set:function(e){this._shadowPcf=e}},{key:"shadowBias",get:function(){return this._shadowBias},set:function(e){this._shadowBias=e}},{key:"shadowNormalBias",get:function(){return this._shadowNormalBias},set:function(e){this._shadowNormalBias=e}}]),t}(sx),gx=function(e){function t(){var t;return(t=e.call(this)||this)._needUpdate=!1,t._range=1,t._luminanceHDR=0,t._luminanceLDR=0,t._pos=Lo(),t._aabb=nl.create(),t._type=3,t}p(t,e);var n=t.prototype;return n.initialize=function(){e.prototype.initialize.call(this),this.range=1,this.luminanceHDR=1700/rx(1),this.luminanceLDR=1},n.update=function(){if(this._node&&(this._node.hasChangedFlags||this._needUpdate)){this._node.getWorldPosition(this._pos);var e=this._range;nl.set(this._aabb,this._pos.x,this._pos.y,this._pos.z,e,e,e),this._needUpdate=!1}},f(t,[{key:"position",get:function(){return this._pos}},{key:"range",get:function(){return this._range},set:function(e){this._range=e,this._needUpdate=!0}},{key:"luminance",get:function(){return PS().isHDR?this._luminanceHDR:this._luminanceLDR},set:function(e){PS().isHDR?this.luminanceHDR=e:this.luminanceLDR=e}},{key:"luminanceHDR",get:function(){return this._luminanceHDR},set:function(e){this._luminanceHDR=e}},{key:"luminanceLDR",set:function(e){this._luminanceLDR=e}},{key:"aabb",get:function(){return this._aabb}}]),t}(sx),vx=new Fo(0,0,-1),yx=function(e){function t(){var t;return(t=e.call(this)||this)._dir=new Fo(0,0,-1),t._pos=new Fo(0,0,0),t._scale=new Fo(1,1,1),t._right=new Fo(1,0,0),t._illuminanceHDR=HS.SUN_ILLUM,t._illuminanceLDR=1,t._type=4,t}p(t,e);var n=t.prototype;return n.initialize=function(){e.prototype.initialize.call(this),this.illuminance=HS.SUN_ILLUM},n.update=function(){this._node&&this._node.hasChangedFlags&&(this._node.getWorldPosition(this._pos),this._node.getWorldScale(this._scale),Fo.transformQuat(this._dir,vx,this._node.worldRotation),Fo.transformQuat(this._right,Fo.RIGHT,this._node.worldRotation))},f(t,[{key:"direction",get:function(){return this._dir}},{key:"right",get:function(){return this._right}},{key:"position",get:function(){return this._pos}},{key:"scale",get:function(){return this._scale}},{key:"illuminance",get:function(){return PS().isHDR?this._illuminanceHDR:this._illuminanceLDR},set:function(e){PS().isHDR?this.illuminanceHDR=e:this.illuminanceLDR=e}},{key:"illuminanceHDR",get:function(){return this._illuminanceHDR},set:function(e){this._illuminanceHDR=e}},{key:"illuminanceLDR",get:function(){return this._illuminanceLDR},set:function(e){this._illuminanceLDR=e}}]),t}(sx),bx=new Kr;bx.format=35;var wx=new Qr;wx.format=55;var Tx=new $r([bx],wx),Sx={width:1,height:1,renderPassInfo:Tx},xx=e("RenderTexture",Fl("cc.RenderTexture")(ix=function(e){function t(t){var n;return(n=e.call(this,t)||this)._window=null,n}p(t,e);var n=t.prototype;return n.initialize=function(e){this._name=e.name||"",this._width=e.width,this._height=e.height,this._initWindow(e)},n.reset=function(e){this.initialize(e)},n.destroy=function(){if(this._window){var t=o.director.root;null==t||t.destroyWindow(this._window),this._window=null}return e.prototype.destroy.call(this)},n.resize=function(e,t){this._width=Math.floor(Da(e,1,2048)),this._height=Math.floor(Da(t,1,2048)),this._window&&this._window.resize(this._width,this._height),this.emit("resize",this._window)},n._serialize=function(){return{}},n._deserialize=function(t,n){var i=t;this._width=i.w,this._height=i.h,this._name=i.n,e.prototype._deserialize.call(this,i.base,n)},n.getGFXTexture=function(){return this._window&&this._window.framebuffer.colorTextures[0]},n.onLoaded=function(){this._initWindow()},n._initWindow=function(e){var t=o.director.root;Sx.title=this._name,Sx.width=this._width,Sx.height=this._height,Sx.renderPassInfo=e&&e.passInfo?e.passInfo:Tx,Sx.externalResLow=e&&e.externalResLow?e.externalResLow:0,Sx.externalResHigh=e&&e.externalResHigh?e.externalResHigh:0,Sx.externalFlag=e&&e.externalFlag?e.externalFlag:0,Sx.renderPassInfo.colorAttachments.forEach((function(e){e.format=t.device.swapchainFormat})),bx.barrier=D_.gfxDevice.getGeneralBarrier(new ts(128,128)),this._window?(this._window.destroy(),this._window.initialize(D_.gfxDevice,Sx)):this._window=t.createWindow(Sx)},n.initDefault=function(t){e.prototype.initDefault.call(this,t),this._width=this._height=1,this._initWindow()},n.validate=function(){return this.width>=1&&this.width<=2048&&this.height>=1&&this.height<=2048},n.readPixels=function(e,t,n,i,r){e=e||0,t=t||0,n=n||this.width,i=i||this.height;var s=this.getGFXTexture();if(!s)return Z(7606),null;var a=4*n*i;if(void 0===r)r=new Uint8Array(a);else if(r.length=0&&this._models.splice(t,1)},t.clearModels=function(){this._models.length=0},f(e,[{key:"models",get:function(){return this._models}}]),e}(),Cx=function(){function e(){this.scene=void 0,this.node=null,this.enabled=!0,this._localBoundaryCenter=Lo(0,0,0),this._objectSize=1,this._lodDataArray=[],this._lockedLODLevelVec=[],this._isLockLevelChanged=!1,this._device=D_.gfxDevice}var t=e.prototype;return t.attachToScene=function(e){this.scene=e},t.detachFromScene=function(){this.scene=null},t.lockLODLevels=function(e){if(e.length!==this._lockedLODLevelVec.length)this._isLockLevelChanged=!0;else for(var t=e.length,n=0;n=this.lodDataArray[i].screenUsagePercentage){n=i;break}return n},t.getScreenUsagePercentage=function(e){return this.node?(1===e.projectionType&&(t=Fo.len(this.localBoundaryCenter.transformMat4(this.node.worldMatrix).subtract(e.node.worldPosition))),this.distanceToScreenUsagePercentage(e,t,this.getWorldSpaceSize())):0;var t},t.distanceToScreenUsagePercentage=function(e,t,n){return 1===e.projectionType?n*e.matProj.m05/(2*t):n*e.matProj.m05*.5},t.getWorldSpaceSize=function(){var e=this.node.scale;return Math.max(Math.abs(e.x),Math.abs(e.y),Math.abs(e.z))*this.objectSize},f(e,[{key:"localBoundaryCenter",get:function(){return this._localBoundaryCenter.clone()},set:function(e){this._localBoundaryCenter.set(e)}},{key:"lodCount",get:function(){return this._lodDataArray.length}},{key:"objectSize",get:function(){return this._objectSize},set:function(e){this._objectSize=e}},{key:"lodDataArray",get:function(){return this._lodDataArray}}]),e}(),Ox=yt({DEFAULT:0,LINEAR:1}),Bx=function(){function e(){this._toneMappingType=Ox.DEFAULT,this._activated=!1}var t=e.prototype;return t.initialize=function(e){this._toneMappingType=e.toneMappingType},t.activate=function(){this._updatePipeline(),this._activated=!0},t._updatePipeline=function(){var e=o.director.root;e.pipeline.macros.CC_TONE_MAPPING_TYPE=this._toneMappingType,this._activated&&e.onGlobalPipelineStateChanged()},f(e,[{key:"toneMappingType",get:function(){return this._toneMappingType},set:function(e){this._toneMappingType=e,this._updatePipeline()}}]),e}(),Dx=Object.freeze({__proto__:null,Ambient:HS,CSMLevel:CS,CSMOptimizationMode:OS,Camera:Bg,CameraAperture:bg,CameraFOVAxis:vg,CameraISO:wg,CameraProjection:yg,CameraShutter:Tg,CameraType:{DEFAULT:-1,LEFT_EYE:0,RIGHT_EYE:1,MAIN:2},CameraUsage:{EDITOR:0,GAME_VIEW:1,SCENE_VIEW:2,PREVIEW:3,GAME:100},ColorTemperatureToRGB:nx,DirectionalLight:ux,EnvironmentLightingType:YS,FOG_TYPE_NONE:JS,Fog:$S,FogType:ZS,LODData:Rx,LODGroup:Cx,Light:sx,LightType:{DIRECTIONAL:0,SPHERE:1,SPOT:2,POINT:3,RANGED_DIRECTIONAL:4,UNKNOWN:5},Model:VS,ModelType:{DEFAULT:0,SKINNING:1,BAKED_SKINNING:2,BATCH_2D:3,PARTICLE_BATCH:4,LINE:5},Octree:ex,PCFType:RS,PointLight:gx,PostSettings:Bx,ProbeClearFlag:{SKYBOX:14,SOLID_COLOR:7},ProbeType:{CUBE:0,PLANAR:1},RangedDirectionalLight:yx,ReflectionProbe:Ax,SKYBOX_FLAG:8,ShadowSize:IS,ShadowType:AS,Shadows:DS,Skin:tx,SkyBoxFlagValue:{VALUE:8},Skybox:KS,SphereLight:cx,SpotLight:mx,SubModel:uT,ToneMappingType:Ox,TrackingType:{NO_TRACKING:0,POSITION_AND_ROTATION:1,POSITION:2,ROTATION:3},nt2lm:rx});function Px(e){return--e,e|=e>>16,e|=e>>8,e|=e>>4,e|=e>>2,e|=e>>1,++e}function Mx(e,t){return Math.ceil(e/t)*t}var Fx,Lx=function(){function e(e){this._format=0,this._formatSize=0,this._chunks=[],this._chunkCount=0,this._handles=[],this._region0=new wr,this._region1=new wr,this._region2=new wr,this._roundUpFn=null,this._bufferViewCtor=Uint8Array,this._channels=4,this._alignment=1,this._device=e}var t=e.prototype;return t.initialize=function(e){var t=Ts[e.format];this._format=e.format,this._formatSize=t.size,this._channels=t.count,this._bufferViewCtor=Bs(t),this._roundUpFn=e.roundUpFn||null,this._alignment=e.alignment||1,e.inOrderFree&&(this.alloc=this._McDonaldAlloc)},t.destroy=function(){for(var e=0;e=0));++r);if(i>=0){var s=this._chunks[n];s.start+=e;var a={chunkIdx:n,start:i,end:i+e,texture:s.texture};return this._handles.push(a),a}var o=Math.sqrt(e/this._formatSize),u=this._roundUpFn&&this._roundUpFn(o,this._formatSize)||Math.max(1024,Px(o)),c=this._chunks[this.createChunk(u)];c.start+=e;var h={chunkIdx:this._chunkCount-1,start:0,end:e,texture:c.texture};return this._handles.push(h),h},t.free=function(e){for(var t=0;t0&&(this._region0.texOffset.x=a,this._region0.texOffset.y=o,this._region0.texExtent.width=u,this._region0.texExtent.height=1,n.push(new this._bufferViewCtor(t,c*this._formatSize,u*this._channels)),i.push(this._region0),a=0,o+=1,s-=u,c+=u),s>0&&(this._region1.texOffset.x=a,this._region1.texOffset.y=o,s>e.texture.width?(this._region1.texExtent.width=e.texture.width,this._region1.texExtent.height=Math.floor(s/e.texture.width),u=this._region1.texExtent.width*this._region1.texExtent.height):(u=s,this._region1.texExtent.width=u,this._region1.texExtent.height=1),n.push(new this._bufferViewCtor(t,c*this._formatSize,u*this._channels)),i.push(this._region1),a=0,o+=this._region1.texExtent.height,s-=u,c+=u),s>0&&(this._region2.texOffset.x=a,this._region2.texOffset.y=o,this._region2.texExtent.width=s,this._region2.texExtent.height=1,n.push(new this._bufferViewCtor(t,c*this._formatSize,s*this._channels)),i.push(this._region2)),this._device.copyBuffersToTexture(n,e.texture,i)},t._findAvailableSpace=function(e,t){var n=this._chunks[t],i=!1,r=n.start;if(r+e<=n.size)i=!0;else{r=0;for(var s=this._handles.filter((function(e){return e.chunkIdx===t})).sort((function(e,t){return e.start-t.start})),a=0;an.end?r+e<=n.size?i=!0:e<=n.end&&(n.start=r=0,i=!0):r===n.end&&(n.start=r=0,n.end=n.size,e<=n.end&&(i=!0)),i){n.start+=e;var s={chunkIdx:t,start:r,end:r+e,texture:n.texture};return this._handles.push(s),s}}var a=Math.sqrt(e/this._formatSize),o=this._roundUpFn&&this._roundUpFn(a,this._formatSize)||Math.max(1024,Px(a)),u=this._chunks[this.createChunk(o)];u.start+=e;var c={chunkIdx:this._chunkCount,start:0,end:e,texture:u.texture};return this._handles.push(c),c},e}(),Nx=function(){function e(e){this._name="",this._cameras=[],this._models=[],this._lodGroups=[],this._batches=[],this._directionalLights=[],this._sphereLights=[],this._spotLights=[],this._pointLights=[],this._rangedDirLights=[],this._mainLight=null,this._modelId=0,this._lodStateCache=null,this._root=e}e.registerCreateFunc=function(t){t._createSceneFun=function(t){return new e(t)}};var t=e.prototype;return t.initialize=function(e){return this._name=e.name,this._lodStateCache=new zx(this),!0},t.update=function(e){var t=this._mainLight;t&&t.update();for(var n=this._sphereLights,i=0;i=0&&(this._lodGroups.splice(t,1),e.detachFromScene(),this._lodStateCache.removeLodGroup(e))},t.removeLODGroups=function(){var e=this;this._lodGroups.forEach((function(t){e._lodStateCache.removeLodGroup(t)})),this._lodGroups.length=0},t.onGlobalPipelineStateChanged=function(){this._models.forEach((function(e){e.onGlobalPipelineStateChanged()}))},t.generateModelId=function(){return this._modelId++},f(e,[{key:"root",get:function(){return this._root}},{key:"name",get:function(){return this._name}},{key:"cameras",get:function(){return this._cameras}},{key:"mainLight",get:function(){return this._mainLight}},{key:"sphereLights",get:function(){return this._sphereLights}},{key:"spotLights",get:function(){return this._spotLights}},{key:"pointLights",get:function(){return this._pointLights}},{key:"rangedDirLights",get:function(){return this._rangedDirLights}},{key:"models",get:function(){return this._models}},{key:"batches",get:function(){return this._batches}},{key:"lodGroups",get:function(){return this._lodGroups}}]),e}(),kx=function(){this.usedLevel=-1,this.lastUsedLevel=-1,this.transformDirty=!0},zx=function(){function e(e){this._renderScene=null,this._modelsInLODGroup=new Map,this._lodStateInCamera=new Map,this._newAddedLodGroupVec=[],this._levelModels=new Map,this._renderScene=e}var t=e.prototype;return t.addCamera=function(e){for(var t=this._renderScene.lodGroups,n=0;n0){if(n.node.hasChangedFlags>0)for(var s,a=S(e._lodStateInCamera);!(s=a()).done;){var o=s.value,u=o[1].get(n);u||(u=new kx,o[1].set(n,u)),u.transformDirty=!0}if(n.isLockLevelChanged()){n.resetLockChangeFlag();var c=e._levelModels.get(n);c&&(c.forEach((function(t){t.forEach((function(t){var n=e._modelsInLODGroup.get(t);n&&n.clear()}))})),r.forEach((function(t){var n=c.get(t);n&&n.forEach((function(t){var n=e._modelsInLODGroup.get(t);if(n&&t.node&&t.node.active)for(var i,r=S(e._lodStateInCamera);!(i=r()).done;){var s=i.value;n.set(s[0],!0)}}))})))}return 0}for(var h,l=!1,f=S(e._lodStateInCamera);!(h=f()).done;){var d=h.value,p=d[1].get(n);p||(p=new kx,d[1].set(n,p));var _=d[0].node.hasChangedFlags,m=n.node.hasChangedFlags;if(_>0||m>0||p.transformDirty){p.transformDirty&&(p.transformDirty=!1);var g=n.getVisibleLODLevel(d[0]);g!==p.usedLevel&&(p.lastUsedLevel=p.usedLevel,p.usedLevel=g,l=!0)}}var v=e._levelModels.get(n);if(!v)return 0;n.isLockLevelChanged()?(n.resetLockChangeFlag(),v.forEach((function(t){t.forEach((function(t){var n=e._modelsInLODGroup.get(t);n&&n.clear()}))})),l=!0):l&&e._lodStateInCamera.forEach((function(t){var i=t.get(n);if(i&&i.usedLevel!==i.lastUsedLevel){var r=v.get(i.lastUsedLevel);r&&r.forEach((function(t){var n=e._modelsInLODGroup.get(t);n&&n.clear()}))}})),l&&e._lodStateInCamera.forEach((function(t,i){var r=t.get(n);if(r){var s=r.usedLevel,a=v.get(s);a&&a.forEach((function(t){var n=e._modelsInLODGroup.get(t);n&&t.node&&t.node.active&&n.set(i,!0)}))}}))}},i=0;ig.x?e[b]:g.x,g.y=e[b+1]>g.y?e[b+1]:g.y,v.x=e[b]g.x?e[b]:g.x,g.y=e[b+1]>g.y?e[b+1]:g.y,g.z=e[b+2]>g.z?e[b+2]:g.z,v.x=e[b]0)for(var i=0;i=0;--i)if((t=r[i]).eventProcessor.capturingTarget&&(e.currentTarget=t,t.eventProcessor.capturingTarget.emit(e.type,e,r),e.propagationStopped))return void PE.free(r);if(e.eventPhase=2,e.currentTarget=n,this.capturingTarget&&this.capturingTarget.emit(e.type,e),!e.propagationImmediateStopped&&this.bubblingTarget&&this.bubblingTarget.emit(e.type,e),!e.propagationStopped&&e.bubbles)for(r.length=0,this.getBubblingTargets(e.type,r),e.eventPhase=3,i=0;i0?i:null}return null},t._attachMask=function(){this.maskList=this._searchComponentsInParent(e._maskComp)},t._isTouchEvent=function(e){return-1!==LE.indexOf(e)},t._isMouseEvent=function(e){return-1!==NE.indexOf(e)},t._hasTouchListeners=function(){for(var e=0;e0&&(s=n._findChildComponent(r._children,t)))return s}return null},n._findChildComponents=function(e,t,i){for(var r=0;r0&&n._findChildComponents(s._children,t,i)}},t.getWritableComponents=function(){return this._components},t._updateScene=function(){null==this._parent?Z(1640,this.name,this.uuid):this._scene=this._parent._scene},t.attr=function(e){Ke(this,e)},t.getParent=function(){return this._parent},t.modifyParent=function(e){this._parent=e},t.setParent=function(e,t){if(void 0===t&&(t=!1),t&&this.updateWorldTransform(),this._parent!==e){var n=this._parent,i=e;if(this._parent=i,this._siblingIndex=0,this._onSetParent(n,t),this.emit&&this.emit("parent-changed",n),n&&!(n._objFlags&UE)){var r=n._children.indexOf(this);n._children.splice(r,1),n._updateSiblingIndex(),n.emit&&n.emit("child-removed",this)}i&&(i._children.push(this),this._siblingIndex=i._children.length-1,i.emit&&i.emit("child-added",this)),this._onHierarchyChanged(n)}},t.getChildByUuid=function(e){if(!e)return L("Invalid uuid"),null;for(var t=this._children,n=0,i=t.length;n=0?e:t.length+e;var n=t.indexOf(this);e!==n&&(t.splice(n,1),e0?(u=s,r=s._children,a=0,o[i]=r[a],i++):(o[i]=s,i++,c=!0);o.length=0,n._stackId--},t.removeFromParent=function(){this._parent&&this._parent.removeChild(this)},t.removeChild=function(e){this._children.indexOf(e)>-1&&(e.parent=null)},t.removeAllChildren=function(){for(var e=this._children,t=e.length-1;t>=0;t--){var n=e[t];n&&(n.parent=null)}this._children.length=0},t.isChildOf=function(e){var t=this;do{if(t===e)return!0;t=t._parent}while(t);return!1},t.getComponent=function(e){var t=WE(e);return t?n._findComponent(this,t):null},t.getComponents=function(e){var t=WE(e),i=[];return t&&n._findComponents(this,t,i),i},t.getComponentInChildren=function(e){var t=WE(e);return t?n._findChildComponent(this._children,t):null},t.getComponentsInChildren=function(e){var t=WE(e),i=[];return t&&(n._findComponents(this,t,i),n._findChildComponents(this._children,t,i)),i},t.addComponent=function(e){var t;if("string"==typeof e){if(!(t=ht(e)))throw o._RF.peek()&&Z(3808,e),TypeError(te(3807,e))}else{if(!e)throw TypeError(te(3804));t=e}if("function"!=typeof t)throw TypeError(te(3809));if(!Je(t,o.Component))throw TypeError(te(3810));var n=t._requireComponent;if(n)if(Array.isArray(n))for(var i=0;i=0;){if(a=(t=wR[i--]).hasChangedFlags,t.isValid&&(t._transformFlags&a&e)!==e)for(t._transformFlags|=e,t.hasChangedFlags=a|e,s=(n=t._children).length,r=0;r=0;)Fo.transformInverseRTS(e,e,n._lrot,n._lpos,n._lscale),n=wR[--i];return e},t.setWorldPosition=function(e,t,n){var i=this._pos;void 0===t?Fo.copy(i,e):Fo.set(i,e,t,n);var r=this._parent,s=this._lpos;r?(r.updateWorldTransform(),Fo.transformMat4(s,i,Ru.invert(yR,r._mat))):Fo.copy(s,i),this.invalidateChildren(1),1&this._eventMask&&this.emit(GE,1)},t.getWorldPosition=function(e){return this.updateWorldTransform(),e?Fo.copy(e,this._pos):Fo.copy(new Fo,this._pos)},t.setWorldRotation=function(e,t,n,i){var r=this._rot;void 0===t?fu.copy(r,e):fu.set(r,e,t,n,i),this._parent?(this._parent.updateWorldTransform(),fu.multiply(this._lrot,fu.conjugate(this._lrot,this._parent._rot),r)):fu.copy(this._lrot,r),this._eulerDirty=!0,this.invalidateChildren(2),1&this._eventMask&&this.emit(GE,2)},t.setWorldRotationFromEuler=function(e,t,n){fu.fromEuler(_R,e,t,n),this.setWorldRotation(_R)},t.getWorldRotation=function(e){return this.updateWorldTransform(),e?fu.copy(e,this._rot):fu.copy(new fu,this._rot)},t.setWorldScale=function(e,t,n){var i=this,r=i._parent;r&&i.updateWorldTransform();var s=i._scale;void 0===t?Fo.copy(s,e):Fo.set(s,e,t,n);var a=0;if(r){var o=i._mat;i._uiProps._uiSkewComp&&(Ru.fromSRT(yR,i._lrot,i._lpos,i._lscale),Ru.multiply(o,r._mat,yR));var u=Fo.set(pR,o.m00,o.m01,o.m02).length(),c=Fo.set(pR,o.m04,o.m05,o.m06).length(),h=Fo.set(pR,o.m08,o.m09,o.m10).length();0===u?(dR.x=s.x,o.m00=1,a=2):dR.x=s.x/u,0===c?(dR.y=s.y,o.m05=1,a=2):dR.y=s.y/c,0===h?(dR.z=s.z,o.m10=1,a=2):dR.z=s.z/h,Ru.scale(yR,o,dR),Ru.multiply(bR,Ru.invert(bR,r._mat),yR),Zo.fromQuat(vR,fu.conjugate(gR,i._lrot)),Zo.multiplyMat4(vR,vR,bR);var l=i._lscale;l.x=Fo.set(dR,vR.m00,vR.m01,vR.m02).length(),l.y=Fo.set(dR,vR.m03,vR.m04,vR.m05).length(),l.z=Fo.set(dR,vR.m06,vR.m07,vR.m08).length(),0!==l.x&&0!==l.y&&0!==l.z||(a=2)}else Fo.copy(i._lscale,s);i.invalidateChildren(4|a),1&i._eventMask&&i.emit(GE,4|a)},t.getWorldScale=function(e){return this.updateWorldTransform(),e?Fo.copy(e,this._scale):Fo.copy(new Fo,this._scale)},t.getWorldMatrix=function(e){this.updateWorldTransform();var t=e||new Ru;return Ru.copy(t,this._mat)},t.getWorldRS=function(e){this.updateWorldTransform();var t=e||new Ru;return Ru.copy(t,this._mat),t.m12=0,t.m13=0,t.m14=0,t},t.getWorldRT=function(e){this.updateWorldTransform();var t=e||new Ru;return Ru.fromRT(t,this._rot,this._pos)},t.setRTS=function(e,t,n){var i=0;e&&(i|=2,void 0!==e.w?(fu.copy(this._lrot,e),this._eulerDirty=!0):(Fo.copy(this._euler,e),fu.fromEuler(this._lrot,e.x,e.y,e.z),this._eulerDirty=!1)),t&&(Fo.copy(this._lpos,t),i|=1),n&&(Fo.copy(this._lscale,n),i|=4),i&&(this.invalidateChildren(i),1&this._eventMask&&this.emit(GE,i))},t.isTransformDirty=function(){return 0!==this._transformFlags},t.pauseSystemEvents=function(e){this._eventProcessor.setEnabled(!1,e)},t.resumeSystemEvents=function(e){this._eventProcessor.setEnabled(!0,e)},n.resetHasChangedFlags=function(){SR+=1},n.clearNodeArray=function(){n.ClearFrame0},set:function(e){e?this._objFlags|=64:this._objFlags&=-65}},{key:"name",get:function(){return this._name},set:function(e){this._name=e}},{key:"uuid",get:function(){return this._id}},{key:"children",get:function(){return this._children}},{key:"active",get:function(){return this._active},set:function(e){if(e=!!e,this._active!==e){this._active=e;var t=this._parent;t&&t._activeInHierarchy&&o.director._nodeActivator.activateNode(this,e)}}},{key:"activeInHierarchy",get:function(){return this._activeInHierarchy}},{key:"parent",get:function(){return this._parent},set:function(e){this.setParent(e)}},{key:"scene",get:function(){return this._scene}},{key:"eventProcessor",get:function(){return this._eventProcessor}},{key:"prefab",get:function(){return this._prefab}},{key:"id",set:function(e){this._id=e}},{key:"siblingIndex",get:function(){return this._siblingIndex},set:function(e){this._siblingIndex=e}},{key:"position",get:function(){return this._lpos},set:function(e){this.setPosition(e)}},{key:"x",get:function(){return this._lpos.x},set:function(e){this.setPosition(e,this._lpos.y,this._lpos.z)}},{key:"y",get:function(){return this._lpos.y},set:function(e){this.setPosition(this._lpos.x,e,this._lpos.z)}},{key:"z",get:function(){return this._lpos.z},set:function(e){this.setPosition(this._lpos.x,this._lpos.y,e)}},{key:"worldPosition",get:function(){return this.updateWorldTransform(),this._pos},set:function(e){this.setWorldPosition(e)}},{key:"worldPositionX",get:function(){return this.updateWorldTransform(),this._pos.x},set:function(e){this.setWorldPosition(e,this._pos.y,this._pos.z)}},{key:"worldPositionY",get:function(){return this.updateWorldTransform(),this._pos.y},set:function(e){this.setWorldPosition(this._pos.x,e,this._pos.z)}},{key:"worldPositionZ",get:function(){return this.updateWorldTransform(),this._pos.z},set:function(e){this.setWorldPosition(this._pos.x,this._pos.y,e)}},{key:"rotation",get:function(){return this._lrot},set:function(e){this.setRotation(e)}},{key:"eulerAngles",get:function(){return this._eulerDirty&&(fu.toEuler(this._euler,this._lrot),this._eulerDirty=!1),this._euler},set:function(e){this.setRotationFromEuler(e.x,e.y,e.z)}},{key:"angle",get:function(){return this.eulerAngles.z},set:function(e){Fo.set(this._euler,0,0,e),fu.fromAngleZ(this._lrot,e),this._eulerDirty=!1,this.invalidateChildren(2),1&this._eventMask&&this.emit(GE,2)}},{key:"worldRotation",get:function(){return this.updateWorldTransform(),this._rot},set:function(e){this.setWorldRotation(e)}},{key:"scale",get:function(){return this._lscale},set:function(e){this.setScale(e)}},{key:"worldScale",get:function(){return this.updateWorldTransform(),this._scale},set:function(e){this.setWorldScale(e)}},{key:"matrix",set:function(e){Ru.toSRT(e,this._lrot,this._lpos,this._lscale),this.invalidateChildren(7),this._eulerDirty=!0,1&this._eventMask&&this.emit(GE,7)}},{key:"worldMatrix",get:function(){return this.updateWorldTransform(),this._mat}},{key:"forward",get:function(){return Fo.transformQuat(new Fo,Fo.FORWARD,this.worldRotation)},set:function(e){var t=e.length();Fo.multiplyScalar(dR,e,-1/t),fu.fromViewUp(_R,dR),this.setWorldRotation(_R)}},{key:"up",get:function(){return Fo.transformQuat(new Fo,Fo.UP,this.worldRotation)}},{key:"right",get:function(){return Fo.transformQuat(new Fo,Fo.RIGHT,this.worldRotation)}},{key:"mobility",get:function(){return this._mobility},set:function(e){this._mobility!==e&&(this._mobility=e,this.emit("mobility-changed"))}},{key:"layer",get:function(){return this._layer},set:function(e){var t=this;if(t._layer!==e){t._layer=e;var n=t._uiProps&&t._uiProps.uiComp;n&&(n.setNodeDirty(),n._markForUpdateRenderData()),t.emit("layer-changed",t._layer)}}},{key:"flagChangedVersion",get:function(){return this._flagChangeVersion}},{key:"hasChangedFlags",get:function(){return this._flagChangeVersion===SR?this._hasChangedFlags:0},set:function(e){this._flagChangeVersion=SR,this._hasChangedFlags=e}}]),n}(Pn),DE.idGenerator=HE,DE._stacks=[[]],DE._stackId=0,DE.EventType=nE,DE.NodeSpace=$x,DE.TransformDirtyBit=eE,DE.TransformBit=eE,DE.reserveContentsForAllSyncablePrefabTag=TR,DE.ClearFrame=0,DE.ClearRound=1e3,I((bE=DE).prototype,"_persistNode",[zl],Object.getOwnPropertyDescriptor(bE.prototype,"_persistNode"),bE.prototype),wE=El(bE.prototype,"_parent",[Yl],(function(){return null})),TE=El(bE.prototype,"_children",[Yl],(function(){return[]})),SE=El(bE.prototype,"_active",[Yl],(function(){return!0})),xE=El(bE.prototype,"_components",[Yl],(function(){return[]})),EE=El(bE.prototype,"_prefab",[Yl],(function(){return null})),IE=El(bE.prototype,"_lpos",[Yl],(function(){return new Fo})),AE=El(bE.prototype,"_lrot",[Yl],(function(){return new fu})),RE=El(bE.prototype,"_lscale",[Yl],(function(){return new Fo(1,1,1)})),CE=El(bE.prototype,"_mobility",[Yl],(function(){return tE.Static})),OE=El(bE.prototype,"_layer",[Yl],(function(){return Y_.Enum.DEFAULT})),BE=El(bE.prototype,"_euler",[Yl],(function(){return new Fo})),I(bE.prototype,"eulerAngles",[gE],Object.getOwnPropertyDescriptor(bE.prototype,"eulerAngles"),bE.prototype),I(bE.prototype,"mobility",[vE],Object.getOwnPropertyDescriptor(bE.prototype,"mobility"),bE.prototype),yE=bE))||yE);e({Node:xR,BaseNode:xR}),o.Node=xR;var ER=new Fo(0,1,0),IR=new Fo,AR=new go,RR=new Wo,CR=new fu,OR=function(e){var t=1/Math.max(Math.max(Math.max(e.x,e.y),e.z),1e-4);t<1&&(e.x*=t,e.y*=t,e.z*=t)},BR=e("AmbientInfo",(jE=Fl("cc.AmbientInfo"),XE=yf(Jt),qE=Kl("_skyColor"),YE=Kl("_skyIllum"),KE=Kl("_groundAlbedo"),jE((ZE=function(){function e(){this._skyColorHDR=JE&&JE(),this._skyIllumHDR=$E&&$E(),this._groundAlbedoHDR=eI&&eI(),this._skyColorLDR=tI&&tI(),this._skyIllumLDR=nI&&nI(),this._groundAlbedoLDR=iI&&iI(),this._resource=null}return e.prototype.activate=function(e){this._resource=e,e.initialize(this)},f(e,[{key:"skyColorHDR",get:function(){return this._skyColorHDR}},{key:"groundAlbedoHDR",get:function(){return this._groundAlbedoHDR}},{key:"skyIllumHDR",get:function(){return this._skyIllumHDR}},{key:"skyColorLDR",get:function(){return this._skyColorLDR}},{key:"groundAlbedoLDR",get:function(){return this._groundAlbedoLDR}},{key:"skyIllumLDR",get:function(){return this._skyIllumLDR}},{key:"skyLightingColor",get:function(){var e=PS().isHDR;return AR.set(e?this._skyColorHDR:this._skyColorLDR),OR(AR),RR.set(255*AR.x,255*AR.y,255*AR.z,255)},set:function(e){AR.set(e.x,e.y,e.z,e.w),PS().isHDR?this._skyColorHDR.set(AR):this._skyColorLDR.set(AR),this._resource&&this._resource.skyColor.set(AR)}},{key:"skyColor",set:function(e){PS().isHDR?this._skyColorHDR.set(e):this._skyColorLDR.set(e),this._resource&&this._resource.skyColor.set(e)}},{key:"skyIllum",get:function(){return PS().isHDR?this._skyIllumHDR:this._skyIllumLDR},set:function(e){PS().isHDR?this._skyIllumHDR=e:this._skyIllumLDR=e,this._resource&&(this._resource.skyIllum=e)}},{key:"groundLightingColor",get:function(){var e=PS().isHDR;return AR.set(e?this._groundAlbedoHDR:this._groundAlbedoLDR),OR(AR),RR.set(255*AR.x,255*AR.y,255*AR.z,255)},set:function(e){AR.set(e.x,e.y,e.z,e.w),PS().isHDR?this._groundAlbedoHDR.set(AR):this._groundAlbedoLDR.set(AR),this._resource&&this._resource.groundAlbedo.set(AR)}},{key:"groundAlbedo",set:function(e){PS().isHDR?this._groundAlbedoHDR.set(e):this._groundAlbedoLDR.set(e),this._resource&&this._resource.groundAlbedo.set(e)}}]),e}(),I(ZE.prototype,"skyIllum",[XE],Object.getOwnPropertyDescriptor(ZE.prototype,"skyIllum"),ZE.prototype),JE=El(ZE.prototype,"_skyColorHDR",[Yl,qE],(function(){return new go(.2,.5,.8,1)})),$E=El(ZE.prototype,"_skyIllumHDR",[Yl,YE],(function(){return HS.SKY_ILLUM})),eI=El(ZE.prototype,"_groundAlbedoHDR",[Yl,KE],(function(){return new go(.2,.2,.2,1)})),tI=El(ZE.prototype,"_skyColorLDR",[Yl],(function(){return new go(.2,.5,.8,1)})),nI=El(ZE.prototype,"_skyIllumLDR",[Yl],(function(){return HS.SKY_ILLUM})),iI=El(ZE.prototype,"_groundAlbedoLDR",[Yl],(function(){return new go(.2,.2,.2,1)})),QE=ZE))||QE));u.AmbientInfo=BR;var DR=e("SkyboxInfo",(rI=Fl("cc.SkyboxInfo"),sI=yf(YS),aI=yf(xb),oI=yf(Jt),uI=yf(xb),cI=yf(xb),hI=yf(ES),lI=yf(xb),fI=Kl("_envmap"),dI=yf(xb),pI=yf(xb),_I=yf(xb),mI=yf(ES),gI=yf(xb),vI=yf(xb),rI((bI=function(){function e(){this._envLightingType=wI&&wI(),this._envmapHDR=TI&&TI(),this._envmapLDR=SI&&SI(),this._diffuseMapHDR=xI&&xI(),this._diffuseMapLDR=EI&&EI(),this._enabled=II&&II(),this._useHDR=AI&&AI(),this._editableMaterial=RI&&RI(),this._reflectionHDR=CI&&CI(),this._reflectionLDR=OI&&OI(),this._rotationAngle=BI&&BI(),this._resource=null}var t=e.prototype;return t.activate=function(e){this.envLightingType=this._envLightingType,this._resource=e,e.initialize(this),e.setEnvMaps(this._envmapHDR,this._envmapLDR),e.setDiffuseMaps(this._diffuseMapHDR,this._diffuseMapLDR),e.setSkyboxMaterial(this._editableMaterial),e.setReflectionMaps(this._reflectionHDR,this._reflectionLDR),e.setRotationAngle(this._rotationAngle),e.activate()},t.updateEnvMap=function(e){e||(this.applyDiffuseMap=!1,this.useIBL=!1,this.envLightingType=0,K(15001));var t=this._resource;t&&(t.setEnvMaps(this._envmapHDR,this._envmapLDR),t.setDiffuseMaps(this._diffuseMapHDR,this._diffuseMapLDR),t.setReflectionMaps(this._reflectionHDR,this._reflectionLDR),t.useDiffuseMap=this.applyDiffuseMap,t.envmap=e)},t.setMaterialProperty=function(e,t,n){var i=this._resource;if(i){var r=i.editableMaterial;i.enabled&&r&&(r.setProperty(e,t,n),r.passes.forEach((function(e){e.update()})))}},f(e,[{key:"applyDiffuseMap",get:function(){return 2===this._envLightingType},set:function(e){this._resource&&(this._resource.useDiffuseMap=e)}},{key:"enabled",get:function(){return this._enabled},set:function(e){this._enabled!==e&&(this._enabled=e,this._resource&&(this._resource.enabled=this._enabled))}},{key:"envLightingType",get:function(){return this._envLightingType},set:function(e){this.envmap||0===e?(0===e?(this.useIBL=!1,this.applyDiffuseMap=!1):1===e?(this.useIBL=!0,this.applyDiffuseMap=!1):2===e&&(this.useIBL=!0,this.applyDiffuseMap=!0),this._envLightingType=e):(this.useIBL=!1,this.applyDiffuseMap=!1,this._envLightingType=0,K(15001))}},{key:"useIBL",get:function(){return 0!==this._envLightingType},set:function(e){this._resource&&(this._resource.useIBL=e)}},{key:"useHDR",get:function(){return PS().isHDR=this._useHDR,this._useHDR},set:function(e){PS().isHDR=e,this._useHDR=e;var t=this._resource;t&&2===this.envLightingType&&(null===this.diffuseMap?(this.envLightingType=1,K(15e3)):this.diffuseMap.isDefault&&K(15002)),t&&(t.useHDR=this._useHDR,t.updateMaterialRenderInfo())}},{key:"envmap",get:function(){return PS().isHDR?this._envmapHDR:this._envmapLDR},set:function(e){var t=PS().isHDR;t?(this._envmapHDR=e,this._reflectionHDR=null):(this._envmapLDR=e,this._reflectionLDR=null),e||(t?this._diffuseMapHDR=null:this._diffuseMapLDR=null,this.applyDiffuseMap=!1,this.useIBL=!1,this.envLightingType=0,K(15001));var n=this._resource;n&&(n.setEnvMaps(this._envmapHDR,this._envmapLDR),n.setDiffuseMaps(this._diffuseMapHDR,this._diffuseMapLDR),n.setReflectionMaps(this._reflectionHDR,this._reflectionLDR),n.useDiffuseMap=this.applyDiffuseMap,n.envmap=e)}},{key:"rotationAngle",get:function(){return this._rotationAngle},set:function(e){this._rotationAngle=e,this._resource&&this._resource.setRotationAngle(this._rotationAngle)}},{key:"diffuseMap",get:function(){return PS().isHDR?this._diffuseMapHDR:this._diffuseMapLDR},set:function(e){PS().isHDR?this._diffuseMapHDR=e:this._diffuseMapLDR=e,this._resource&&this._resource.setDiffuseMaps(this._diffuseMapHDR,this._diffuseMapLDR)}},{key:"reflectionMap",get:function(){return PS().isHDR?this._reflectionHDR:this._reflectionLDR},set:function(e){PS().isHDR?this._reflectionHDR=e:this._reflectionLDR=e,this._resource&&this._resource.setReflectionMaps(this._reflectionHDR,this._reflectionLDR)}},{key:"skyboxMaterial",get:function(){return this._editableMaterial},set:function(e){this._editableMaterial=e,this._resource&&this._resource.setSkyboxMaterial(this._editableMaterial)}}]),e}(),I(bI.prototype,"envLightingType",[sI],Object.getOwnPropertyDescriptor(bI.prototype,"envLightingType"),bI.prototype),I(bI.prototype,"envmap",[aI],Object.getOwnPropertyDescriptor(bI.prototype,"envmap"),bI.prototype),I(bI.prototype,"rotationAngle",[oI],Object.getOwnPropertyDescriptor(bI.prototype,"rotationAngle"),bI.prototype),I(bI.prototype,"diffuseMap",[uI],Object.getOwnPropertyDescriptor(bI.prototype,"diffuseMap"),bI.prototype),I(bI.prototype,"reflectionMap",[cI],Object.getOwnPropertyDescriptor(bI.prototype,"reflectionMap"),bI.prototype),I(bI.prototype,"skyboxMaterial",[hI],Object.getOwnPropertyDescriptor(bI.prototype,"skyboxMaterial"),bI.prototype),wI=El(bI.prototype,"_envLightingType",[Yl],(function(){return 0})),TI=El(bI.prototype,"_envmapHDR",[Yl,lI,fI],(function(){return null})),SI=El(bI.prototype,"_envmapLDR",[Yl,dI],(function(){return null})),xI=El(bI.prototype,"_diffuseMapHDR",[Yl,pI],(function(){return null})),EI=El(bI.prototype,"_diffuseMapLDR",[Yl,_I],(function(){return null})),II=El(bI.prototype,"_enabled",[Yl],(function(){return!1})),AI=El(bI.prototype,"_useHDR",[Yl],(function(){return!0})),RI=El(bI.prototype,"_editableMaterial",[Yl,mI],(function(){return null})),CI=El(bI.prototype,"_reflectionHDR",[Yl,gI],(function(){return null})),OI=El(bI.prototype,"_reflectionLDR",[Yl,vI],(function(){return null})),BI=El(bI.prototype,"_rotationAngle",[Yl],(function(){return 0})),yI=bI))||yI));u.SkyboxInfo=DR;var PR=e("FogInfo",(DI=Fl("cc.FogInfo"),PI=yf(ZS),MI=yf(Jt),FI=yf(Jt),LI=yf(Jt),NI=yf(Jt),kI=yf(Jt),zI=yf(Jt),DI((JI=function(){function e(){this._type=VI&&VI(),this._fogColor=HI&&HI(),this._enabled=WI&&WI(),this._fogDensity=jI&&jI(),this._fogStart=XI&&XI(),this._fogEnd=qI&&qI(),this._fogAtten=YI&&YI(),this._fogTop=KI&&KI(),this._fogRange=QI&&QI(),this._accurate=ZI&&ZI(),this._resource=null}return e.prototype.activate=function(e){this._resource=e,e.initialize(this),e.activate()},f(e,[{key:"enabled",get:function(){return this._enabled},set:function(e){if(this._enabled!==e){this._enabled=e;var t=this._resource;t&&(t.enabled=e,e&&(t.type=this._type))}}},{key:"accurate",get:function(){return this._accurate},set:function(e){if(this._accurate!==e){this._accurate=e;var t=this._resource;t&&(t.accurate=e,e&&(t.type=this._type))}}},{key:"fogColor",get:function(){return this._fogColor},set:function(e){this._fogColor.set(e),this._resource&&(this._resource.fogColor=this._fogColor)}},{key:"type",get:function(){return this._type},set:function(e){this._type=e,this._resource&&(this._resource.type=e)}},{key:"fogDensity",get:function(){return this._fogDensity},set:function(e){this._fogDensity=e,this._resource&&(this._resource.fogDensity=e)}},{key:"fogStart",get:function(){return this._fogStart},set:function(e){this._fogStart=e,this._resource&&(this._resource.fogStart=e)}},{key:"fogEnd",get:function(){return this._fogEnd},set:function(e){this._fogEnd=e,this._resource&&(this._resource.fogEnd=e)}},{key:"fogAtten",get:function(){return this._fogAtten},set:function(e){this._fogAtten=e,this._resource&&(this._resource.fogAtten=e)}},{key:"fogTop",get:function(){return this._fogTop},set:function(e){this._fogTop=e,this._resource&&(this._resource.fogTop=e)}},{key:"fogRange",get:function(){return this._fogRange},set:function(e){this._fogRange=e,this._resource&&(this._resource.fogRange=e)}}]),e}(),JI.FogType=ZS,I((GI=JI).prototype,"type",[PI],Object.getOwnPropertyDescriptor(GI.prototype,"type"),GI.prototype),I(GI.prototype,"fogDensity",[MI],Object.getOwnPropertyDescriptor(GI.prototype,"fogDensity"),GI.prototype),I(GI.prototype,"fogStart",[FI],Object.getOwnPropertyDescriptor(GI.prototype,"fogStart"),GI.prototype),I(GI.prototype,"fogEnd",[LI],Object.getOwnPropertyDescriptor(GI.prototype,"fogEnd"),GI.prototype),I(GI.prototype,"fogAtten",[NI],Object.getOwnPropertyDescriptor(GI.prototype,"fogAtten"),GI.prototype),I(GI.prototype,"fogTop",[kI],Object.getOwnPropertyDescriptor(GI.prototype,"fogTop"),GI.prototype),I(GI.prototype,"fogRange",[zI],Object.getOwnPropertyDescriptor(GI.prototype,"fogRange"),GI.prototype),VI=El(GI.prototype,"_type",[Yl],(function(){return ZS.LINEAR})),HI=El(GI.prototype,"_fogColor",[Yl],(function(){return new Wo("#C8C8C8")})),WI=El(GI.prototype,"_enabled",[Yl],(function(){return!1})),jI=El(GI.prototype,"_fogDensity",[Yl],(function(){return.3})),XI=El(GI.prototype,"_fogStart",[Yl],(function(){return.5})),qI=El(GI.prototype,"_fogEnd",[Yl],(function(){return 300})),YI=El(GI.prototype,"_fogAtten",[Yl],(function(){return 5})),KI=El(GI.prototype,"_fogTop",[Yl],(function(){return 1.5})),QI=El(GI.prototype,"_fogRange",[Yl],(function(){return 1.2})),ZI=El(GI.prototype,"_accurate",[Yl],(function(){return!1})),UI=GI))||UI)),MR=e("ShadowsInfo",($I=Fl("cc.ShadowsInfo"),eA=yf(AS),tA=yf(Jt),nA=yf(Jt),iA=yf(Zt),rA=yf(IS),$I((aA=function(){function e(){this._enabled=oA&&oA(),this._type=uA&&uA(),this._normal=cA&&cA(),this._distance=hA&&hA(),this._planeBias=lA&&lA(),this._shadowColor=fA&&fA(),this._maxReceived=dA&&dA(),this._size=pA&&pA(),this._resource=null}var t=e.prototype;return t.setPlaneFromNode=function(e){e.getWorldRotation(CR),this.planeDirection=Fo.transformQuat(IR,ER,CR),e.getWorldPosition(IR),this.planeHeight=Fo.dot(this._normal,IR)},t.activate=function(e){this._resource=e,e.initialize(this),e.activate()},f(e,[{key:"enabled",get:function(){return this._enabled},set:function(e){if(this._enabled!==e){this._enabled=e;var t=this._resource;t&&(t.enabled=e,e&&(t.type=this._type))}}},{key:"type",get:function(){return this._type},set:function(e){this._type=e,this._resource&&(this._resource.type=e)}},{key:"shadowColor",get:function(){return this._shadowColor},set:function(e){this._shadowColor.set(e),this._resource&&(this._resource.shadowColor=e)}},{key:"planeDirection",get:function(){return this._normal},set:function(e){Fo.copy(this._normal,e),this._resource&&(this._resource.normal=e)}},{key:"planeHeight",get:function(){return this._distance},set:function(e){this._distance=e,this._resource&&(this._resource.distance=e)}},{key:"planeBias",get:function(){return this._planeBias},set:function(e){this._planeBias=e,this._resource&&(this._resource.planeBias=e)}},{key:"maxReceived",get:function(){return this._maxReceived},set:function(e){this._maxReceived=e,this._resource&&(this._resource.maxReceived=e)}},{key:"shadowMapSize",get:function(){return this._size.x},set:function(e){var t=this._resource;this._size.set(e,e),t&&(t.size.set(e,e),t.shadowMapDirty=!0)}}]),e}(),I(aA.prototype,"type",[eA],Object.getOwnPropertyDescriptor(aA.prototype,"type"),aA.prototype),I(aA.prototype,"planeHeight",[tA],Object.getOwnPropertyDescriptor(aA.prototype,"planeHeight"),aA.prototype),I(aA.prototype,"planeBias",[nA],Object.getOwnPropertyDescriptor(aA.prototype,"planeBias"),aA.prototype),I(aA.prototype,"maxReceived",[iA],Object.getOwnPropertyDescriptor(aA.prototype,"maxReceived"),aA.prototype),I(aA.prototype,"shadowMapSize",[rA],Object.getOwnPropertyDescriptor(aA.prototype,"shadowMapSize"),aA.prototype),oA=El(aA.prototype,"_enabled",[Yl],(function(){return!1})),uA=El(aA.prototype,"_type",[Yl],(function(){return AS.Planar})),cA=El(aA.prototype,"_normal",[Yl],(function(){return new Fo(0,1,0)})),hA=El(aA.prototype,"_distance",[Yl],(function(){return 0})),lA=El(aA.prototype,"_planeBias",[Yl],(function(){return 1})),fA=El(aA.prototype,"_shadowColor",[Yl],(function(){return new Wo(0,0,0,76)})),dA=El(aA.prototype,"_maxReceived",[Yl],(function(){return 4})),pA=El(aA.prototype,"_size",[Yl],(function(){return new Xu(1024,1024)})),sA=aA))||sA));u.ShadowsInfo=MR;var FR=e("DEFAULT_WORLD_MIN_POS",new Fo(-1024,-1024,-1024)),LR=e("DEFAULT_WORLD_MAX_POS",new Fo(1024,1024,1024)),NR=e("DEFAULT_OCTREE_DEPTH",8),kR=e("OctreeInfo",(_A=Fl("cc.OctreeInfo"),mA=yf(Zt),_A((vA=function(){function e(){this._enabled=yA&&yA(),this._minPos=bA&&bA(),this._maxPos=wA&&wA(),this._depth=TA&&TA(),this._resource=null}return e.prototype.activate=function(e){this._resource=e,e.initialize(this)},f(e,[{key:"enabled",get:function(){return this._enabled},set:function(e){this._enabled!==e&&(this._enabled=e,this._resource&&(this._resource.enabled=e))}},{key:"minPos",get:function(){return this._minPos},set:function(e){this._minPos=e,this._resource&&(this._resource.minPos=e)}},{key:"maxPos",get:function(){return this._maxPos},set:function(e){this._maxPos=e,this._resource&&(this._resource.maxPos=e)}},{key:"depth",get:function(){return this._depth},set:function(e){this._depth=e,this._resource&&(this._resource.depth=e)}}]),e}(),I(vA.prototype,"depth",[mA],Object.getOwnPropertyDescriptor(vA.prototype,"depth"),vA.prototype),yA=El(vA.prototype,"_enabled",[Yl],(function(){return!1})),bA=El(vA.prototype,"_minPos",[Yl],(function(){return new Fo(FR)})),wA=El(vA.prototype,"_maxPos",[Yl],(function(){return new Fo(LR)})),TA=El(vA.prototype,"_depth",[Yl],(function(){return NR})),gA=vA))||gA));u.OctreeInfo=kR;var zR=e("SkinInfo",(SA=Fl("cc.SkinInfo"),xA=yf(Jt),EA=yf(Jt),SA((AA=function(){function e(){this._enabled=RA&&RA(),this._blurRadius=CA&&CA(),this._sssIntensity=OA&&OA(),this._resource=null}return e.prototype.activate=function(e){this._resource=e,e.initialize(this)},f(e,[{key:"enabled",get:function(){return this._enabled},set:function(e){this._enabled!==e&&(this._enabled=e,this._resource&&(this._resource.enabled=e))}},{key:"blurRadius",get:function(){return this._blurRadius},set:function(e){this._blurRadius=e,this._resource&&(this._resource.blurRadius=e)}},{key:"sssIntensity",get:function(){return this._sssIntensity},set:function(e){this._sssIntensity=e,this._resource&&(this._resource.sssIntensity=e)}}]),e}(),I(AA.prototype,"blurRadius",[xA],Object.getOwnPropertyDescriptor(AA.prototype,"blurRadius"),AA.prototype),I(AA.prototype,"sssIntensity",[EA],Object.getOwnPropertyDescriptor(AA.prototype,"sssIntensity"),AA.prototype),RA=El(AA.prototype,"_enabled",[Yl],(function(){return!0})),CA=El(AA.prototype,"_blurRadius",[Yl],(function(){return.01})),OA=El(AA.prototype,"_sssIntensity",[Yl],(function(){return 3})),IA=AA))||IA));u.SkinInfo=zR;var UR=e("PostSettingsInfo",(BA=Fl("cc.PostSettingsInfo"),DA=yf(Ox),BA((MA=function(){function e(){this._toneMappingType=FA&&FA(),this._resource=null}return e.prototype.activate=function(e){this._resource=e,e.initialize(this),e.activate()},f(e,[{key:"toneMappingType",get:function(){return this._toneMappingType},set:function(e){this._toneMappingType=e,this._resource&&(this._resource.toneMappingType=e)}}]),e}(),I(MA.prototype,"toneMappingType",[DA],Object.getOwnPropertyDescriptor(MA.prototype,"toneMappingType"),MA.prototype),FA=El(MA.prototype,"_toneMappingType",[Yl],(function(){return Ox.DEFAULT})),PA=MA))||PA));u.PostSettingsInfo=UR;var GR,VR,HR,WR,jR,XR,qR,YR,KR,QR,ZR,JR,$R,eC,tC,nC,iC,rC,sC,aC,oC,uC,cC,hC,lC,fC,dC,pC,_C,mC,gC,vC,yC,bC,wC,TC,SC,xC,EC,IC,AC,RC,CC,OC,BC,DC,PC,MC,FC,LC,NC,kC,zC,UC,GC,VC,HC,WC,jC,XC,qC,YC,KC,QC,ZC,JC,$C,eO,tO,nO=e("LightProbeInfo",(LA=Fl("cc.LightProbeInfo"),NA=yf(Jt),kA=yf(Zt),zA=yf(Zt),UA=yf(Jt),GA=yf(Jt),LA((HA=function(){function e(){this._giScale=WA&&WA(),this._giSamples=jA&&jA(),this._bounces=XA&&XA(),this._reduceRinging=qA&&qA(),this._showProbe=YA&&YA(),this._showWireframe=KA&&KA(),this._showConvex=QA&&QA(),this._data=ZA&&ZA(),this._lightProbeSphereVolume=JA&&JA(),this._nodes=[],this._scene=null,this._resource=null}var t=e.prototype;return t.activate=function(e,t){this._scene=e,this._resource=t,t.initialize(this)},t.onProbeBakeFinished=function(){this.onProbeBakingChanged(this._scene)},t.onProbeBakeCleared=function(){this.clearSHCoefficients(),this.onProbeBakingChanged(this._scene)},t.onProbeBakingChanged=function(e){var t=this;e&&(e.emit("light-probe-baking-changed"),e.children.forEach((function(e){t.onProbeBakingChanged(e)})))},t.clearSHCoefficients=function(){this._data&&(this._data.probes.forEach((function(e){e.coefficients.length=0})),this.clearAllSHUBOs())},t.isUniqueNode=function(){return 1===this._nodes.length},t.addNode=function(e){if(!e)return!1;for(var t=0;t0)for(var u=0;u=0&&s.node.getWritableComponents().splice(a,1)}}}function vO(e,t,n){if(!(t.length<=0))for(var i=null,r=0;r0){var u=o.pop();if(!u)continue;for(var c=0;c0){var g=_.pop();if(!g)return;for(var v=0;v<_.length&&(m=m[_[v]]);v++);if(!m)continue;m[g]=l}}}}}}function bO(e,t){var n;void 0===t&&(t=!1);var i=null==e||null==(n=e.prefab)?void 0:n.instance;if(i&&!i.expanded){fO(e),t&&e&&e.children&&e.children.forEach((function(e){bO(e,!0)}));var r={};i.targetMap=r,dO(e,r,!0),_O(0,i.mountedChildren,r),gO(0,i.removedComponents,r),mO(0,i.mountedComponents,r),vO(0,i.propertyOverrides,r),i.expanded=!0}else t&&e&&e.children&&e.children.forEach((function(e){bO(e,!0)}))}function wO(e){var t=e.prefab;t&&t.nestedPrefabInstanceRoots&&t.nestedPrefabInstanceRoots.forEach((function(e){bO(e)}))}o._PrefabInfo=lO;var TO,SO,xO,EO,IO,AO,RO,CO=Object.freeze({__proto__:null,CompPrefabInfo:aO,MountedChildrenInfo:uO,MountedComponentsInfo:cO,PrefabInfo:lO,PrefabInstance:hO,PropertyOverrideInfo:oO,TargetInfo:rO,TargetOverrideInfo:sO,applyMountedChildren:_O,applyMountedComponents:mO,applyNodeAndComponentId:function e(t,n){for(var i=t.components,r=t.children,s=0;s1&&e.csmOptimizationMode===OS.RemoveDuplicates)if(this._level>=c-1)YO=this._castLightViewBoundingBox.halfExtents.z,qO=this._castLightViewBoundingBox.center.z;else{var h=Math.abs(this._castLightViewBoundingBox.center.z-qO)+YO;this._castLightViewBoundingBox.halfExtents.z=Math.max(this._castLightViewBoundingBox.center.z,h)}var l=this._castLightViewBoundingBox.halfExtents.z;this._shadowCameraFar=2*l+r;var f=this._castLightViewBoundingBox.center;if(XO.set(f.x,f.y,f.z+l+r),Fo.transformMat4(XO,XO,PO),Ru.fromRT(PO,e.node.rotation,XO),Ru.invert(MO,PO),!n){var d=.5*s,p=.5*a;Ru.ortho(FO,-d,d,-p,p,.1,this._shadowCameraFar,i.capabilities.clipSpaceMinZ,i.capabilities.clipSpaceSignY),Ru.multiply(NO,FO,u),Fo.transformMat4(UO,XO,NO);var _=2/t;GO.set(_,_);var m=UO.x%GO.x,g=UO.y%GO.y;VO.set(UO.x-m,UO.y-g,UO.z),Ru.invert(kO,NO),Fo.transformMat4(HO,VO,kO),Ru.fromRT(PO,e.node.rotation,HO),Ru.invert(MO,PO),Ru.multiply(LO,FO,MO),Ru.copy(this._matShadowView,MO),Ru.copy(this._matShadowProj,FO),Ru.copy(this._matShadowViewProj,LO)}fl.createOrtho(this._validFrustum,s,a,.1,this._shadowCameraFar,PO)},f(e,[{key:"level",get:function(){return this._level}},{key:"shadowObjects",get:function(){return this._shadowObjects}},{key:"shadowCameraFar",get:function(){return this._shadowCameraFar},set:function(e){this._shadowCameraFar=e}},{key:"matShadowView",get:function(){return this._matShadowView},set:function(e){this._matShadowView=e}},{key:"matShadowProj",get:function(){return this._matShadowProj},set:function(e){this._matShadowProj=e}},{key:"matShadowViewProj",get:function(){return this._matShadowViewProj},set:function(e){this._matShadowViewProj=e}},{key:"validFrustum",get:function(){return this._validFrustum}},{key:"splitFrustum",get:function(){return this._splitFrustum}},{key:"lightViewFrustum",get:function(){return this._lightViewFrustum}},{key:"castLightViewBoundingBox",get:function(){return this._castLightViewBoundingBox}}]),e}(),QO=function(e){function t(t){var n;return(n=e.call(this,t)||this)._splitCameraNear=0,n._splitCameraFar=0,n._csmAtlas=new go,n._calculateAtlas(t),n}p(t,e);var n=t.prototype;return n.destroy=function(){e.prototype.destroy.call(this)},n._calculateAtlas=function(e){var t=o.director.root.device.capabilities.clipSpaceSignY,n=e%2-.5,i=(.5-Math.floor(e/2))*t;this._csmAtlas.set(.5,.5,n,i)},f(t,[{key:"splitCameraNear",get:function(){return this._splitCameraNear},set:function(e){this._splitCameraNear=e}},{key:"splitCameraFar",get:function(){return this._splitCameraFar},set:function(e){this._splitCameraFar=e}},{key:"csmAtlas",get:function(){return this._csmAtlas},set:function(e){this._csmAtlas=e}}]),t}(KO),ZO=function(){function e(){this._castShadowObjects=[],this._layerObjects=new xe(64),this._layers=[],this._levelCount=0,this._specialLayer=new KO(1),this._shadowDistance=0;for(var e=0;e1?.5*n.size.x:n.size.x;if(!(r<0)){this._getCameraWorldMatrix(DO,e);for(var s=i-1;s>=0;s--){var a=this._layers[s],u=a.splitCameraNear,c=a.splitCameraFar;a.calculateSplitFrustum(e,DO,u,c),a.createMatrix(t,r,!1)}i===CS.LEVEL_1?(this._specialLayer.shadowCameraFar=this._layers[0].shadowCameraFar,Ru.copy(this._specialLayer.matShadowView,this._layers[0].matShadowView),Ru.copy(this._specialLayer.matShadowProj,this._layers[0].matShadowProj),Ru.copy(this._specialLayer.matShadowViewProj,this._layers[0].matShadowViewProj),this._specialLayer.copyToValidFrustum(this._layers[0].validFrustum)):(this._specialLayer.calculateSplitFrustum(e,DO,.1,t.shadowDistance),this._specialLayer.createMatrix(t,r,!0))}},t._getCameraWorldMatrix=function(e,t){if(t.node){var n=t.node,i=n.worldPosition,r=n.worldRotation;Ru.fromRT(e,r,i)}},f(e,[{key:"castShadowObjects",get:function(){return this._castShadowObjects}},{key:"layerObjects",get:function(){return this._layerObjects}},{key:"layers",get:function(){return this._layers}},{key:"specialLayer",get:function(){return this._specialLayer}}]),e}(),JO=e("PipelineSceneData",function(){function e(){this.fog=new $S,this.ambient=new HS,this.skybox=new KS,this.shadows=new DS,this.csmLayers=new ZO,this.octree=new ex,this.skin=new tx,this.postSettings=new Bx,this.lightProbes=o.internal.LightProbes?new o.internal.LightProbes:null,this.validPunctualLights=[],this.renderObjects=[],this.shadowFrameBufferMap=new Map,this._geometryRendererMaterials=[],this._geometryRendererPasses=[],this._geometryRendererShaders=[],this._occlusionQueryVertexBuffer=null,this._occlusionQueryIndicesBuffer=null,this._occlusionQueryInputAssembler=null,this._occlusionQueryMaterial=null,this._occlusionQueryShader=null,this._isHDR=!0,this._shadingScale=1,this._csmSupported=!0,this._standardSkinMeshRenderer=null,this._standardSkinModel=null,this._skinMaterialModel=null,this._shadingScale=1}var t=e.prototype;return t.activate=function(e){return this._device=e,this.initGeometryRendererMaterials(),this.initOcclusionQuery(),!0},t.initGeometryRendererMaterials=function(){for(var e=0,t=this._geometryRendererMaterials,n=0;n<6;n++){t[n]=new ES,t[n]._uuid="geometry-renderer-material-"+n,t[n].initialize({effectName:"internal/builtin-geometry-renderer",technique:n});for(var i=t[n].passes,r=0;r0&&(this._occlusionQueryShader=e.passes[0].getShaderVariant())}},t.getOcclusionQueryPass=function(){return this._occlusionQueryMaterial&&this._occlusionQueryMaterial.passes.length>0?this._occlusionQueryMaterial.passes[0]:null},t.updatePipelineSceneData=function(){},t.destroy=function(){var e,t,n;this.shadows.destroy(),this.csmLayers.destroy(),this.validPunctualLights.length=0,null==(e=this._occlusionQueryInputAssembler)||e.destroy(),this._occlusionQueryInputAssembler=null,null==(t=this._occlusionQueryVertexBuffer)||t.destroy(),this._occlusionQueryVertexBuffer=null,null==(n=this._occlusionQueryIndicesBuffer)||n.destroy(),this._occlusionQueryIndicesBuffer=null,this._standardSkinMeshRenderer=null,this._standardSkinModel=null,this._skinMaterialModel=null},t._createOcclusionQueryIA=function(){var e=this._device,t=new Float32Array([-1,-1,-1,1,-1,-1,-1,1,-1,1,1,-1,-1,-1,1,1,-1,1,-1,1,1,1,1,1]);this._occlusionQueryVertexBuffer=e.createBuffer(new Cr(10,1,96,12)),this._occlusionQueryVertexBuffer.update(t);var n=new Uint16Array([0,2,1,1,2,3,4,5,6,5,7,6,1,3,7,1,7,5,0,4,6,0,6,2,0,1,5,0,5,4,2,6,7,2,7,3]);this._occlusionQueryIndicesBuffer=e.createBuffer(new Cr(6,1,72,2)),this._occlusionQueryIndicesBuffer.update(n);var i=[new Xr("a_position",32)],r=new Yr(i,[this._occlusionQueryVertexBuffer],this._occlusionQueryIndicesBuffer);return e.createInputAssembler(r)},f(e,[{key:"isHDR",get:function(){return this._isHDR},set:function(e){this._isHDR=e}},{key:"shadingScale",get:function(){return this._shadingScale},set:function(e){this._shadingScale=e}},{key:"csmSupported",get:function(){return this._csmSupported},set:function(e){this._csmSupported=e}},{key:"standardSkinModel",get:function(){return this._standardSkinModel},set:function(e){this._standardSkinModel=e}},{key:"standardSkinMeshRenderer",get:function(){return this._standardSkinMeshRenderer},set:function(e){this._standardSkinMeshRenderer&&this._standardSkinMeshRenderer!==e&&this._standardSkinMeshRenderer.clearGlobalStandardSkinObjectFlag(),this._standardSkinMeshRenderer=e,this.standardSkinModel=e?e.model:null}},{key:"skinMaterialModel",get:function(){return this._skinMaterialModel},set:function(e){this._skinMaterialModel=e}},{key:"geometryRendererPasses",get:function(){return this._geometryRendererPasses}},{key:"geometryRendererShaders",get:function(){return this._geometryRendererShaders}}]),e}()),$O=(e("PipelineEventType",{RENDER_FRAME_BEGIN:"render-frame-begin",RENDER_FRAME_END:"render-frame-end",RENDER_CAMERA_BEGIN:"render-camera-begin",RENDER_CAMERA_END:"render-camera-end",ATTACHMENT_SCALE_CAHNGED:"attachment-scale-changed"}),e("PipelineEventProcessor",function(e){function t(){var t;return(t=e.call(this)||this).eventTargetOn=e.prototype.on,t.eventTargetOnce=e.prototype.once,t}p(t,e);var n=t.prototype;return n.on=function(e,t,n,i){return this.eventTargetOn(e,t,n,i)},n.once=function(e,t,n){return this.eventTargetOnce(e,t,n)},t}(Xn))),eB=e("DebugView",function(){function e(){this._singleMode=0,this._compositeModeValue=0,this._lightingWithAlbedo=!0,this._csmLayerColoration=!1,this._activate()}var t=e.prototype;return t.isCompositeModeEnabled=function(e){return!!(this._compositeModeValue&1<Math.abs(t)?e:-t},t}(iB),uB=function(e){function t(t){var n;return(n=e.call(this)||this).up=t.up,n.down=t.down,n.left=t.left,n.right=t.right,n.xAxis=new oB({positive:n.right,negative:n.left}),n.yAxis=new oB({positive:n.up,negative:n.down}),n}return p(t,e),t.prototype.getValue=function(){return new Xu(this.xAxis.getValue(),this.yAxis.getValue())},t}(rB);!function(e){function t(t){var n;return(n=e.call(this)||this).up=t.up,n.down=t.down,n.left=t.left,n.right=t.right,n.forward=t.forward,n.backward=t.backward,n.xAxis=new oB({positive:n.right,negative:n.left}),n.yAxis=new oB({positive:n.up,negative:n.down}),n.zAxis=new oB({positive:n.forward,negative:n.backward}),n}p(t,e),t.prototype.getValue=function(){return new Fo(this.xAxis.getValue(),this.yAxis.getValue(),this.zAxis.getValue())}}(sB);var cB,hB=function(e){function t(){return e.apply(this,arguments)||this}return p(t,e),t.prototype.getValue=function(){return e.prototype.getValue.call(this)},t}(iB),lB=function(e){function t(){return e.apply(this,arguments)||this}return p(t,e),t}(uB),fB=function(e){function t(){return e.apply(this,arguments)||this}return p(t,e),t}(uB),dB=function(e){function t(){return e.apply(this,arguments)||this}return p(t,e),t.prototype.getValue=function(){return e.prototype.getValue.call(this)},t}(aB),pB=function(e){function t(){return e.apply(this,arguments)||this}return p(t,e),t.prototype.getValue=function(){return e.prototype.getValue.call(this)},t}(sB),_B=function(e){function t(){return e.apply(this,arguments)||this}return p(t,e),t.prototype.getValue=function(){return e.prototype.getValue.call(this)},t}(iB),mB="left",gB="right",vB=[];!function(e){e[e.HAND_LEFT=1]="HAND_LEFT",e[e.HAND_RIGHT=4]="HAND_RIGHT",e[e.AIM_LEFT=2]="AIM_LEFT",e[e.AIM_RIGHT=5]="AIM_RIGHT"}(cB||(cB={}));var yB,bB,wB,TB,SB,xB=function(){function e(e){var t;this._deviceId=-1,this._connected=!1,this._webPoseState=((t={})[cB.HAND_LEFT]={position:Fo.ZERO,orientation:fu.IDENTITY},t[cB.HAND_RIGHT]={position:Fo.ZERO,orientation:fu.IDENTITY},t[cB.AIM_LEFT]={position:Fo.ZERO,orientation:fu.IDENTITY},t[cB.AIM_RIGHT]={position:Fo.ZERO,orientation:fu.IDENTITY},t),this._deviceId=e,this._initInputSource()}e._init=function(){ti.hasFeature(Jn.EVENT_GAMEPAD)&&e._registerEvent()},e._on=function(t,n,i){e._eventTarget.on(t,n,i)},e._removeInputDevice=function(t){var n=e.all.findIndex((function(e){return e.deviceId===t}));-1!==n&&pe(e.all,n)},e._getOrCreateInputDevice=function(t,n){var i=e.all.find((function(e){return e.deviceId===t}));return i||(i=new e(t),e.all.push(i)),i._connected=n,i},e._ensureDirectorDefined=function(t){e._intervalId=setInterval((function(){u.director&&u.Director&&(clearInterval(e._intervalId),e._intervalId=-1,t())}),50)},e._updateGamepadCnt=function(){for(var t=0,n=0,i=e._cachedWebGamepads.length;n.01){a=e._getOrCreateInputDevice(r.index,!0);break}}if(a){t.push(a);continue}for(var l=s.axes,f=0;f.01){a=e._getOrCreateInputDevice(r.index,!0);break}}if(a){t.push(a);continue}}}}e._cachedWebGamepads=n}}},e._scanGamepads=function(){vB.length=0,e._scanWebGamepads(vB),e._scanWebXRGamepads(vB);for(var t=0;t0?{negative:0,positive:t}:e<0?{negative:t,positive:0}:{negative:0,positive:0}},t._updateWebPoseState=function(e){e.code!==cB.HAND_LEFT&&e.code!==cB.AIM_LEFT&&e.code!==cB.HAND_RIGHT&&e.code!==cB.AIM_RIGHT||(this._webPoseState[e.code]={position:new Fo(e.position.x,e.position.y,e.position.z),orientation:new fu(e.orientation.x,e.orientation.y,e.orientation.z,e.orientation.w)})},t._initInputSource=function(){var t=this;this._buttonNorth=new hB,this._buttonNorth.getValue=function(){if(-1===t.deviceId){var n,i=null==(n=e._getWebXRGamepadMap())?void 0:n.get(mB);return i&&i.buttons.length>5?i.buttons[5].value:0}var r=e._getWebGamepad(t.deviceId);return r?r.buttons[3].value:0},this._buttonEast=new hB,this._buttonEast.getValue=function(){if(-1===t.deviceId){var n,i=null==(n=e._getWebXRGamepadMap())?void 0:n.get(gB);return i&&i.buttons.length>5?i.buttons[5].value:0}var r=e._getWebGamepad(t.deviceId);return r?r.buttons[1].value:0},this._buttonWest=new hB,this._buttonWest.getValue=function(){if(-1===t.deviceId){var n,i=null==(n=e._getWebXRGamepadMap())?void 0:n.get(mB);return i&&i.buttons.length>4?i.buttons[4].value:0}var r=e._getWebGamepad(t.deviceId);return r?r.buttons[2].value:0},this._buttonSouth=new hB,this._buttonSouth.getValue=function(){if(-1===t.deviceId){var n,i=null==(n=e._getWebXRGamepadMap())?void 0:n.get(gB);return i&&i.buttons.length>4?i.buttons[4].value:0}var r=e._getWebGamepad(t.deviceId);return r?r.buttons[0].value:0},this._buttonL1=new hB,this._buttonL1.getValue=function(){var n=e._getWebGamepad(t.deviceId);return n?n.buttons[4].value:0},this._buttonL2=new hB,this._buttonL2.getValue=function(){if(-1===t.deviceId){var n,i=null==(n=e._getWebXRGamepadMap())?void 0:n.get(mB);return i&&i.buttons.length>0?i.buttons[0].value:0}var r=e._getWebGamepad(t.deviceId);return r?r.buttons[6].value:0},this._buttonL3=new hB,this._buttonL3.getValue=function(){if(-1===t.deviceId){var n,i=null==(n=e._getWebXRGamepadMap())?void 0:n.get(mB);if(i){if(i.buttons.length>3&&0!==i.buttons[3].value)return i.buttons[3].value;if(i.buttons.length>2&&0!==i.buttons[2].value)return i.buttons[2].value}return 0}var r=e._getWebGamepad(t.deviceId);return r?r.buttons[10].value:0},this._buttonR1=new hB,this._buttonR1.getValue=function(){var n=e._getWebGamepad(t.deviceId);return n?n.buttons[5].value:0},this._buttonR2=new hB,this._buttonR2.getValue=function(){if(-1===t.deviceId){var n,i=null==(n=e._getWebXRGamepadMap())?void 0:n.get(gB);return i&&i.buttons.length>0?i.buttons[0].value:0}var r=e._getWebGamepad(t.deviceId);return r?r.buttons[7].value:0},this._buttonR3=new hB,this._buttonR3.getValue=function(){if(-1===t.deviceId){var n,i=null==(n=e._getWebXRGamepadMap())?void 0:n.get(gB);if(i){if(i.buttons.length>3&&0!==i.buttons[3].value)return i.buttons[3].value;if(i.buttons.length>2&&0!==i.buttons[2].value)return i.buttons[2].value}return 0}var r=e._getWebGamepad(t.deviceId);return r?r.buttons[11].value:0},this._buttonShare=new hB,this._buttonShare.getValue=function(){var n=e._getWebGamepad(t.deviceId);return n?n.buttons[8].value:0},this._buttonOptions=new hB,this._buttonOptions.getValue=function(){var n=e._getWebGamepad(t.deviceId);return n?n.buttons[9].value:0};var n=new hB;n.getValue=function(){var n=e._getWebGamepad(t.deviceId);return n?n.buttons[12].value:0};var i=new hB;i.getValue=function(){var n=e._getWebGamepad(t.deviceId);return n?n.buttons[13].value:0};var r=new hB;r.getValue=function(){var n=e._getWebGamepad(t.deviceId);return n?n.buttons[14].value:0};var s=new hB;s.getValue=function(){var n=e._getWebGamepad(t.deviceId);return n?n.buttons[15].value:0},this._dpad=new lB({up:n,down:i,left:r,right:s});var a=new hB;a.getValue=function(){if(-1===t.deviceId)return 0;var n=e._getWebGamepad(t.deviceId);return n?t._axisToButtons(n.axes[1]).negative:0};var o=new hB;o.getValue=function(){if(-1===t.deviceId)return 0;var n=e._getWebGamepad(t.deviceId);return n?t._axisToButtons(n.axes[1]).positive:0};var u=new hB;u.getValue=function(){if(-1===t.deviceId)return 0;var n=e._getWebGamepad(t.deviceId);return n?t._axisToButtons(n.axes[0]).negative:0};var c=new hB;c.getValue=function(){if(-1===t.deviceId)return 0;var n=e._getWebGamepad(t.deviceId);return n?t._axisToButtons(n.axes[0]).positive:0},this._leftStick=new fB({up:a,down:o,left:u,right:c});var h=new hB;h.getValue=function(){if(-1===t.deviceId)return 0;var n=e._getWebGamepad(t.deviceId);return n?t._axisToButtons(n.axes[3]).negative:0};var l=new hB;l.getValue=function(){if(-1===t.deviceId)return 0;var n=e._getWebGamepad(t.deviceId);return n?t._axisToButtons(n.axes[3]).positive:0};var f=new hB;f.getValue=function(){if(-1===t.deviceId)return 0;var n=e._getWebGamepad(t.deviceId);return n?t._axisToButtons(n.axes[2]).negative:0};var d=new hB;d.getValue=function(){if(-1===t.deviceId)return 0;var n=e._getWebGamepad(t.deviceId);return n?t._axisToButtons(n.axes[2]).positive:0},this._rightStick=new fB({up:h,down:l,left:f,right:d}),this._buttonStart=new hB,this._buttonStart.getValue=function(){return 0},this._gripLeft=new hB,this._gripLeft.getValue=function(){return t.deviceId,0},this._gripRight=new hB,this._gripRight.getValue=function(){if(-1===t.deviceId){var n,i=null==(n=e._getWebXRGamepadMap())?void 0:n.get(gB);if(i&&i.buttons.length>1)return i.buttons[1].value}return 0},this._handLeftPosition=new pB,this._handLeftPosition.getValue=function(){return t._webPoseState[cB.HAND_LEFT].position},this._handLeftOrientation=new dB,this._handLeftOrientation.getValue=function(){return t._webPoseState[cB.HAND_LEFT].orientation},this._handRightPosition=new pB,this._handRightPosition.getValue=function(){return t._webPoseState[cB.HAND_RIGHT].position},this._handRightOrientation=new dB,this._handRightOrientation.getValue=function(){return t._webPoseState[cB.HAND_RIGHT].orientation},this._aimLeftPosition=new pB,this._aimLeftPosition.getValue=function(){return t._webPoseState[cB.AIM_LEFT].position},this._aimLeftOrientation=new dB,this._aimLeftOrientation.getValue=function(){return t._webPoseState[cB.AIM_LEFT].orientation},this._aimRightPosition=new pB,this._aimRightPosition.getValue=function(){return t._webPoseState[cB.AIM_RIGHT].position},this._aimRightOrientation=new dB,this._aimRightOrientation.getValue=function(){return t._webPoseState[cB.AIM_RIGHT].orientation}},f(e,[{key:"buttonNorth",get:function(){return this._buttonNorth}},{key:"buttonEast",get:function(){return this._buttonEast}},{key:"buttonWest",get:function(){return this._buttonWest}},{key:"buttonSouth",get:function(){return this._buttonSouth}},{key:"buttonL1",get:function(){return this._buttonL1}},{key:"buttonL2",get:function(){return this._buttonL2}},{key:"buttonL3",get:function(){return this._buttonL3}},{key:"buttonR1",get:function(){return this._buttonR1}},{key:"buttonR2",get:function(){return this._buttonR2}},{key:"buttonR3",get:function(){return this._buttonR3}},{key:"buttonShare",get:function(){return this._buttonShare}},{key:"buttonOptions",get:function(){return this._buttonOptions}},{key:"dpad",get:function(){return this._dpad}},{key:"leftStick",get:function(){return this._leftStick}},{key:"rightStick",get:function(){return this._rightStick}},{key:"buttonStart",get:function(){return this._buttonStart}},{key:"gripLeft",get:function(){return this._gripLeft}},{key:"gripRight",get:function(){return this._gripRight}},{key:"handLeftPosition",get:function(){return this._handLeftPosition}},{key:"handLeftOrientation",get:function(){return this._handLeftOrientation}},{key:"handRightPosition",get:function(){return this._handRightPosition}},{key:"handRightOrientation",get:function(){return this._handRightOrientation}},{key:"aimLeftPosition",get:function(){return this._aimLeftPosition}},{key:"aimLeftOrientation",get:function(){return this._aimLeftOrientation}},{key:"aimRightPosition",get:function(){return this._aimRightPosition}},{key:"aimRightOrientation",get:function(){return this._aimRightOrientation}},{key:"deviceId",get:function(){return this._deviceId}},{key:"connected",get:function(){return this._connected}}]),e}();xB.all=[],xB.xr=null,xB._eventTarget=new Xn,xB._cachedWebGamepads=[],xB._cachedWebXRGamepadMap=null,xB._intervalId=-1,xB._totalGamepadCnt=0,function(e){e[e.BUTTON_EAST=0]="BUTTON_EAST",e[e.BUTTON_SOUTH=1]="BUTTON_SOUTH",e[e.BUTTON_WEST=2]="BUTTON_WEST",e[e.BUTTON_NORTH=3]="BUTTON_NORTH",e[e.BUTTON_TRIGGER_LEFT=4]="BUTTON_TRIGGER_LEFT",e[e.BUTTON_TRIGGER_RIGHT=5]="BUTTON_TRIGGER_RIGHT",e[e.TRIGGER_LEFT=6]="TRIGGER_LEFT",e[e.TRIGGER_RIGHT=7]="TRIGGER_RIGHT",e[e.GRIP_LEFT=8]="GRIP_LEFT",e[e.GRIP_RIGHT=9]="GRIP_RIGHT",e[e.BUTTON_LEFT_STICK=10]="BUTTON_LEFT_STICK",e[e.LEFT_STICK_UP=11]="LEFT_STICK_UP",e[e.LEFT_STICK_DOWN=12]="LEFT_STICK_DOWN",e[e.LEFT_STICK_LEFT=13]="LEFT_STICK_LEFT",e[e.LEFT_STICK_RIGHT=14]="LEFT_STICK_RIGHT",e[e.BUTTON_RIGHT_STICK=15]="BUTTON_RIGHT_STICK",e[e.RIGHT_STICK_UP=16]="RIGHT_STICK_UP",e[e.RIGHT_STICK_DOWN=17]="RIGHT_STICK_DOWN",e[e.RIGHT_STICK_LEFT=18]="RIGHT_STICK_LEFT",e[e.RIGHT_STICK_RIGHT=19]="RIGHT_STICK_RIGHT",e[e.ROKID_MENU=20]="ROKID_MENU",e[e.ROKID_START=21]="ROKID_START"}(yB||(yB={})),function(e){e[e.KET_CLICK=0]="KET_CLICK",e[e.KET_STICK=1]="KET_STICK",e[e.KET_GRAB=2]="KET_GRAB",e[e.KET_TOUCH=3]="KET_TOUCH"}(bB||(bB={})),function(e){e[e.UNDEFINE=0]="UNDEFINE",e[e.A=1]="A",e[e.B=2]="B",e[e.X=3]="X",e[e.Y=4]="Y",e[e.L1=5]="L1",e[e.R1=6]="R1",e[e.MINUS=7]="MINUS",e[e.PLUS=8]="PLUS",e[e.L3=9]="L3",e[e.R3=10]="R3",e[e.MENU=11]="MENU",e[e.START=12]="START",e[e.TRIGGER_LEFT=13]="TRIGGER_LEFT",e[e.TRIGGER_RIGHT=14]="TRIGGER_RIGHT"}(wB||(wB={})),function(e){e[e.UNDEFINE=0]="UNDEFINE",e[e.X=1]="X",e[e.Y=2]="Y",e[e.LEFT_STICK_X=3]="LEFT_STICK_X",e[e.LEFT_STICK_Y=4]="LEFT_STICK_Y",e[e.RIGHT_STICK_X=5]="RIGHT_STICK_X",e[e.RIGHT_STICK_Y=6]="RIGHT_STICK_Y",e[e.L2=7]="L2",e[e.R2=8]="R2",e[e.LEFT_GRIP=9]="LEFT_GRIP",e[e.RIGHT_GRIP=10]="RIGHT_GRIP"}(TB||(TB={})),function(e){e[e.UNDEFINE=0]="UNDEFINE",e[e.A=1]="A",e[e.B=2]="B",e[e.X=3]="X",e[e.Y=4]="Y",e[e.LEFT_TRIGGER=5]="LEFT_TRIGGER",e[e.RIGHT_TRIGGER=6]="RIGHT_TRIGGER",e[e.LEFT_THUMBSTICK=7]="LEFT_THUMBSTICK",e[e.RIGHT_THUMBSTICK=8]="RIGHT_THUMBSTICK"}(SB||(SB={}));var EB,IB={1:yB.BUTTON_EAST,2:yB.BUTTON_SOUTH,3:yB.BUTTON_NORTH,4:yB.BUTTON_WEST,9:yB.BUTTON_LEFT_STICK,10:yB.BUTTON_RIGHT_STICK,11:yB.ROKID_MENU,12:yB.ROKID_START,13:yB.BUTTON_TRIGGER_LEFT,14:yB.BUTTON_TRIGGER_RIGHT},AB=function(){function e(){var e,t,n=this;this._eventTarget=new Xn,this._nativeButtonState=((e={})[yB.BUTTON_SOUTH]=0,e[yB.BUTTON_EAST]=0,e[yB.BUTTON_WEST]=0,e[yB.BUTTON_NORTH]=0,e[yB.BUTTON_TRIGGER_LEFT]=0,e[yB.BUTTON_TRIGGER_RIGHT]=0,e[yB.TRIGGER_LEFT]=0,e[yB.TRIGGER_RIGHT]=0,e[yB.GRIP_LEFT]=0,e[yB.GRIP_RIGHT]=0,e[yB.LEFT_STICK_UP]=0,e[yB.LEFT_STICK_DOWN]=0,e[yB.LEFT_STICK_LEFT]=0,e[yB.LEFT_STICK_RIGHT]=0,e[yB.RIGHT_STICK_UP]=0,e[yB.RIGHT_STICK_DOWN]=0,e[yB.RIGHT_STICK_LEFT]=0,e[yB.RIGHT_STICK_RIGHT]=0,e[yB.BUTTON_LEFT_STICK]=0,e[yB.BUTTON_RIGHT_STICK]=0,e[yB.ROKID_MENU]=0,e[yB.ROKID_START]=0,e),this._nativeTouchState=((t={})[SB.UNDEFINE]=0,t[SB.A]=0,t[SB.B]=0,t[SB.X]=0,t[SB.Y]=0,t[SB.LEFT_TRIGGER]=0,t[SB.RIGHT_TRIGGER]=0,t[SB.LEFT_THUMBSTICK]=0,t[SB.RIGHT_THUMBSTICK]=0,t),this._initInputSource(),window.addEventListener("xr-remote-input",(function(e){var t=e,i=t.detail.keyEventType,r=t.detail.stickAxisCode,s=t.detail.stickAxisValue,a=t.detail.stickKeyCode,o=t.detail.isButtonPressed,u=t.detail.touchCode,c=t.detail.touchValue;if(i===bB.KET_CLICK){var h=IB[a];n._nativeButtonState[h]=o?1:0}else if(i===bB.KET_STICK||i===bB.KET_GRAB){var l,f,d;switch(r){case TB.LEFT_STICK_X:l=yB.LEFT_STICK_LEFT,f=yB.LEFT_STICK_RIGHT,d=n._axisToButtons(s);break;case TB.LEFT_STICK_Y:l=yB.LEFT_STICK_DOWN,f=yB.LEFT_STICK_UP,d=n._axisToButtons(s);break;case TB.RIGHT_STICK_X:l=yB.RIGHT_STICK_LEFT,f=yB.RIGHT_STICK_RIGHT,d=n._axisToButtons(s);break;case TB.RIGHT_STICK_Y:l=yB.RIGHT_STICK_DOWN,f=yB.RIGHT_STICK_UP,d=n._axisToButtons(s);break;case TB.L2:n._nativeButtonState[yB.TRIGGER_LEFT]=s;break;case TB.R2:n._nativeButtonState[yB.TRIGGER_RIGHT]=s;break;case TB.LEFT_GRIP:n._nativeButtonState[yB.GRIP_LEFT]=s;break;case TB.RIGHT_GRIP:n._nativeButtonState[yB.GRIP_RIGHT]=s}l&&f&&d&&(n._nativeButtonState[l]=d.negative,n._nativeButtonState[f]=d.positive)}else if(i===bB.KET_TOUCH)switch(u){case SB.A:case SB.B:case SB.X:case SB.Y:case SB.LEFT_TRIGGER:case SB.RIGHT_TRIGGER:case SB.LEFT_THUMBSTICK:case SB.RIGHT_THUMBSTICK:n._nativeTouchState[u]=c}n._eventTarget.emit("handle-input",new hE("handle-input",n))}))}var t=e.prototype;return t._axisToButtons=function(e){var t=Math.abs(e);return e>0?{negative:0,positive:t}:e<0?{negative:t,positive:0}:{negative:0,positive:0}},t._on=function(e,t,n){this._eventTarget.on(e,t,n)},t._initInputSource=function(){var e=this;this._buttonNorth=new hB,this._buttonNorth.getValue=function(){return e._nativeButtonState[yB.BUTTON_NORTH]},this._buttonEast=new hB,this._buttonEast.getValue=function(){return e._nativeButtonState[yB.BUTTON_EAST]},this._buttonWest=new hB,this._buttonWest.getValue=function(){return e._nativeButtonState[yB.BUTTON_WEST]},this._buttonSouth=new hB,this._buttonSouth.getValue=function(){return e._nativeButtonState[yB.BUTTON_SOUTH]},this._buttonTriggerLeft=new hB,this._buttonTriggerLeft.getValue=function(){return e._nativeButtonState[yB.BUTTON_TRIGGER_LEFT]},this._buttonTriggerRight=new hB,this._buttonTriggerRight.getValue=function(){return e._nativeButtonState[yB.BUTTON_TRIGGER_RIGHT]},this._triggerLeft=new hB,this._triggerLeft.getValue=function(){return e._nativeButtonState[yB.TRIGGER_LEFT]},this._triggerRight=new hB,this._triggerRight.getValue=function(){return e._nativeButtonState[yB.TRIGGER_RIGHT]},this._gripLeft=new hB,this._gripLeft.getValue=function(){return e._nativeButtonState[yB.GRIP_LEFT]},this._gripRight=new hB,this._gripRight.getValue=function(){return e._nativeButtonState[yB.GRIP_RIGHT]},this._buttonLeftStick=new hB,this._buttonLeftStick.getValue=function(){return e._nativeButtonState[yB.BUTTON_LEFT_STICK]};var t=new hB;t.getValue=function(){return e._nativeButtonState[yB.LEFT_STICK_UP]};var n=new hB;n.getValue=function(){return e._nativeButtonState[yB.LEFT_STICK_DOWN]};var i=new hB;i.getValue=function(){return e._nativeButtonState[yB.LEFT_STICK_LEFT]};var r=new hB;r.getValue=function(){return e._nativeButtonState[yB.LEFT_STICK_RIGHT]},this._leftStick=new fB({up:t,down:n,left:i,right:r}),this._buttonRightStick=new hB,this._buttonRightStick.getValue=function(){return e._nativeButtonState[yB.BUTTON_RIGHT_STICK]};var s=new hB;s.getValue=function(){return e._nativeButtonState[yB.RIGHT_STICK_UP]};var a=new hB;a.getValue=function(){return e._nativeButtonState[yB.RIGHT_STICK_DOWN]};var o=new hB;o.getValue=function(){return e._nativeButtonState[yB.RIGHT_STICK_LEFT]};var u=new hB;u.getValue=function(){return e._nativeButtonState[yB.RIGHT_STICK_RIGHT]},this._rightStick=new fB({up:s,down:a,left:o,right:u}),this._buttonOptions=new hB,this._buttonOptions.getValue=function(){return e._nativeButtonState[yB.ROKID_MENU]},this._buttonStart=new hB,this._buttonStart.getValue=function(){return e._nativeButtonState[yB.ROKID_START]},this._handLeftPosition=new pB,this._handLeftPosition.getValue=function(){return Fo.ZERO},this._handLeftOrientation=new dB,this._handLeftOrientation.getValue=function(){return fu.IDENTITY},this._handRightPosition=new pB,this._handRightPosition.getValue=function(){return Fo.ZERO},this._handRightOrientation=new dB,this._handRightOrientation.getValue=function(){return fu.IDENTITY},this._aimLeftPosition=new pB,this._aimLeftPosition.getValue=function(){return Fo.ZERO},this._aimLeftOrientation=new dB,this._aimLeftOrientation.getValue=function(){return fu.IDENTITY},this._aimRightPosition=new pB,this._aimRightPosition.getValue=function(){return Fo.ZERO},this._aimRightOrientation=new dB,this._aimRightOrientation.getValue=function(){return fu.IDENTITY},this._touchButtonA=new _B,this._touchButtonA.getValue=function(){return e._nativeTouchState[SB.A]},this._touchButtonB=new _B,this._touchButtonB.getValue=function(){return e._nativeTouchState[SB.B]},this._touchButtonX=new _B,this._touchButtonX.getValue=function(){return e._nativeTouchState[SB.X]},this._touchButtonY=new _B,this._touchButtonY.getValue=function(){return e._nativeTouchState[SB.Y]},this._touchButtonTriggerLeft=new _B,this._touchButtonTriggerLeft.getValue=function(){return e._nativeTouchState[SB.LEFT_TRIGGER]},this._touchButtonTriggerRight=new _B,this._touchButtonTriggerRight.getValue=function(){return e._nativeTouchState[SB.RIGHT_TRIGGER]},this._touchButtonThumbStickLeft=new _B,this._touchButtonThumbStickLeft.getValue=function(){return e._nativeTouchState[SB.LEFT_THUMBSTICK]},this._touchButtonThumbStickRight=new _B,this._touchButtonThumbStickRight.getValue=function(){return e._nativeTouchState[SB.RIGHT_THUMBSTICK]}},f(e,[{key:"buttonNorth",get:function(){return this._buttonNorth}},{key:"buttonEast",get:function(){return this._buttonEast}},{key:"buttonWest",get:function(){return this._buttonWest}},{key:"buttonSouth",get:function(){return this._buttonSouth}},{key:"buttonTriggerLeft",get:function(){return this._buttonTriggerLeft}},{key:"buttonTriggerRight",get:function(){return this._buttonTriggerRight}},{key:"triggerLeft",get:function(){return this._triggerLeft}},{key:"triggerRight",get:function(){return this._triggerRight}},{key:"gripLeft",get:function(){return this._gripLeft}},{key:"gripRight",get:function(){return this._gripRight}},{key:"leftStick",get:function(){return this._leftStick}},{key:"rightStick",get:function(){return this._rightStick}},{key:"buttonLeftStick",get:function(){return this._buttonLeftStick}},{key:"buttonRightStick",get:function(){return this._buttonRightStick}},{key:"buttonOptions",get:function(){return this._buttonOptions}},{key:"buttonStart",get:function(){return this._buttonStart}},{key:"handLeftPosition",get:function(){return this._handLeftPosition}},{key:"handLeftOrientation",get:function(){return this._handLeftOrientation}},{key:"handRightPosition",get:function(){return this._handRightPosition}},{key:"handRightOrientation",get:function(){return this._handRightOrientation}},{key:"aimLeftPosition",get:function(){return this._aimLeftPosition}},{key:"aimLeftOrientation",get:function(){return this._aimLeftOrientation}},{key:"aimRightPosition",get:function(){return this._aimRightPosition}},{key:"aimRightOrientation",get:function(){return this._aimRightOrientation}},{key:"touchButtonA",get:function(){return this._touchButtonA}},{key:"touchButtonB",get:function(){return this._touchButtonB}},{key:"touchButtonX",get:function(){return this._touchButtonX}},{key:"touchButtonY",get:function(){return this._touchButtonY}},{key:"touchButtonTriggerLeft",get:function(){return this._touchButtonTriggerLeft}},{key:"touchButtonTriggerRight",get:function(){return this._touchButtonTriggerRight}},{key:"touchButtonThumbStickLeft",get:function(){return this._touchButtonThumbStickLeft}},{key:"touchButtonThumbStickRight",get:function(){return this._touchButtonThumbStickRight}}]),e}();!function(e){e[e.VIEW_LEFT=0]="VIEW_LEFT",e[e.VIEW_RIGHT=3]="VIEW_RIGHT",e[e.HEAD_MIDDLE=6]="HEAD_MIDDLE"}(EB||(EB={}));var RB,CB=function(){function e(){var e;this._eventTarget=new Xn,this._intervalId=-1,this._webPoseState=((e={})[EB.VIEW_LEFT]={position:Fo.ZERO,orientation:fu.IDENTITY},e[EB.VIEW_RIGHT]={position:Fo.ZERO,orientation:fu.IDENTITY},e[EB.HEAD_MIDDLE]={position:Fo.ZERO,orientation:fu.IDENTITY},e),this._initInputSource(),this._registerEvent()}var t=e.prototype;return t._ensureDirectorDefined=function(){var e=this;return new Promise((function(t){e._intervalId=setInterval((function(){u.director&&u.Director&&(clearInterval(e._intervalId),e._intervalId=-1,t())}),50)}))},t._registerEvent=function(){var e=this;this._ensureDirectorDefined().then((function(){u.director.on(u.Director.EVENT_BEGIN_FRAME,e._scanHmd,e)})).catch((function(){}))},t._scanHmd=function(){var e,t=null==(e=globalThis.__globalXR)?void 0:e.webxrHmdPoseInfos;if(t){for(var n=0;nRt.TOUCH_TIMEOUT&&(j(2302,e.getID()),t.releaseTouch(e.getID()))})),n>=this._touchMap.size},e}()),LB=function(){function e(){this._canvas=void 0,this._eventTarget=new Xn,ti.hasFeature(Jn.INPUT_TOUCH)&&(this._canvas=document.getElementById("GameCanvas"),this._canvas||N("failed to access canvas"),this._registerEvent())}var t=e.prototype;return t._registerEvent=function(){var e,t,n,i;null==(e=this._canvas)||e.addEventListener("touchstart",this._createCallback("touch-start")),null==(t=this._canvas)||t.addEventListener("touchmove",this._createCallback("touch-move")),null==(n=this._canvas)||n.addEventListener("touchend",this._createCallback("touch-end")),null==(i=this._canvas)||i.addEventListener("touchcancel",this._createCallback("touch-cancel"))},t._createCallback=function(e){var t=this;return function(n){for(var i,r=t._getCanvasRect(),s=[],a=n.changedTouches.length,o=0;o0){var f=new uE(s,!1,e,FB.getAllTouches());t._eventTarget.emit(e,f)}}},t._getCanvasRect=function(){var e=this._canvas,t=null==e?void 0:e.getBoundingClientRect();return t?new Ju(t.x,t.y,t.width,t.height):new Ju(0,0,0,0)},t._getLocation=function(e,t){var n=e.clientX-t.x,i=t.y+t.height-e.clientY;if(Wh.isFrameRotated){var r=n;n=t.height-i,i=r}var s=Wh.devicePixelRatio;return new Xu(n*=s,i*=s)},t.on=function(e,t,n){this._eventTarget.on(e,t,n)},t.dispatchEventsInCache=function(){},e}(),NB=function(){function e(e){this.priority=0,this._inputEventTarget=e}var t=e.prototype;return t.onThrowException=function(){},t.dispatchEvent=function(e){return this._inputEventTarget.emit(e.type,e),!0},e}(),kB=((RB={})["mouse-down"]="touch-start",RB["mouse-move"]="touch-move",RB["mouse-up"]="touch-end",RB),zB=e("Input",function(){function e(){this._eventTarget=new Xn,this._touchInput=new LB,this._mouseInput=new PB,this._keyboardInput=new DB,this._accelerometerInput=new tB,this._eventKeyboardList=[],this._eventAccelerationList=[],this._eventGamepadList=[],this._eventHandleList=[],this._eventHMDList=[],this._eventHandheldList=[],this._needSimulateTouchMoveEvent=!1,this._eventDispatcherList=[],this._handleInput=new AB,this._hmdInput=new CB,this._handheldInput=new OB,this._registerEvent(),this._inputEventDispatcher=new NB(this._eventTarget),this._registerEventDispatcher(this._inputEventDispatcher),xB._init()}var t=e.prototype;return t._dispatchMouseDownEvent=function(e){var t,n;null==(t=(n=this._mouseInput).dispatchMouseDownEvent)||t.call(n,e)},t._dispatchMouseMoveEvent=function(e){var t,n;null==(t=(n=this._mouseInput).dispatchMouseMoveEvent)||t.call(n,e)},t._dispatchMouseUpEvent=function(e){var t,n;null==(t=(n=this._mouseInput).dispatchMouseUpEvent)||t.call(n,e)},t._dispatchMouseScrollEvent=function(e){var t,n;null==(t=(n=this._mouseInput).dispatchScrollEvent)||t.call(n,e)},t._dispatchKeyboardDownEvent=function(e){var t,n;null==(t=(n=this._keyboardInput).dispatchKeyboardDownEvent)||t.call(n,e)},t._dispatchKeyboardUpEvent=function(e){var t,n;null==(t=(n=this._keyboardInput).dispatchKeyboardUpEvent)||t.call(n,e)},t.on=function(e,t,n){return this._eventTarget.on(e,t,n),t},t.once=function(e,t,n){return this._eventTarget.once(e,t,n),t},t.off=function(e,t,n){this._eventTarget.off(e,t,n)},t.getTouch=function(e){return FB.getTouch(e)},t.getAllTouches=function(){return FB.getAllTouches()},t.getTouchCount=function(){return FB.getTouchCount()},t.setAccelerometerEnabled=function(e){e?this._accelerometerInput.start():this._accelerometerInput.stop()},t.setAccelerometerInterval=function(e){this._accelerometerInput.setInterval(e)},t._simulateEventTouch=function(e){var t=kB[e.type],n=FB.getOrCreateTouch(0,e.getLocationX(),e.getLocationY());if(n){var i=[n],r=new uE(i,!1,t,"touch-end"===t?[]:i);r.windowId=e.windowId,"touch-end"===t&&FB.releaseTouch(0),this._dispatchEventTouch(r)}},t._registerEventDispatcher=function(e){this._eventDispatcherList.push(e),this._eventDispatcherList.sort((function(e,t){return t.priority-e.priority}))},t._emitEvent=function(e){for(var t=this._eventDispatcherList.length,n=0;n>>1;r<=s;a=r+s>>>1){var o=e[a],u=o.constructor._executionOrder;if(u>n)s=a-1;else if(ui)s=a-1;else{if(!(c0&&(e.array.sort(JB),this._invoke(e),e.array.length=0),this._invoke(this._zero),this._zero.array.length=0;var t=this._pos;t.array.length>0&&(t.array.sort(JB),this._invoke(t),t.array.length=0)},t}(ZB),eD=function(e){function t(t){return e.call(this,t)||this}p(t,e);var n=t.prototype;return n.add=function(e){var t=e.constructor._executionOrder;if(0===t)this._zero.array.push(e);else{var n=t<0?this._neg.array:this._pos.array,i=KB(n,e);i<0&&n.splice(~i,0,e)}},n.remove=function(e){var t=e.constructor._executionOrder;if(0===t)this._zero.fastRemove(e);else{var n=t<0?this._neg:this._pos,i=KB(n.array,e);i>=0&&n.removeAt(i)}},n.invoke=function(e){this._neg.array.length>0&&this._invoke(this._neg,e),this._invoke(this._zero,e),this._pos.array.length>0&&this._invoke(this._pos,e)},t}(ZB);function tD(e,t,n){var i="var a=it.array;for(it.i=0;it.i=0?XB(this._deferredComps,t):(!e.internalStart||e._objFlags&qB||this.startInvoker.remove(e),e.internalUpdate&&this.updateInvoker.remove(e),e.internalLateUpdate&&this.lateUpdateInvoker.remove(e))},t.enableComp=function(e,t){if(!(e._objFlags&YB)){if(e.internalOnEnable){if(t)return void t.add(e);if(e.internalOnEnable(),!e.node.activeInHierarchy)return}this._onEnabled(e)}},t.disableComp=function(e){e._objFlags&YB&&(e.internalOnDisable&&e.internalOnDisable(),this._onDisabled(e))},t.startPhase=function(){this._updating=!0,this.startInvoker.invoke(),this._startForNewComps()},t.updatePhase=function(e){this.updateInvoker.invoke(e)},t.lateUpdatePhase=function(e){this.lateUpdateInvoker.invoke(e),this._updating=!1,this._startForNewComps()},t._startForNewComps=function(){this._deferredComps.length>0&&(this._deferredSchedule(),this.startInvoker.invoke())},t._scheduleImmediate=function(e){"function"!=typeof e.internalStart||e._objFlags&qB||this.startInvoker.add(e),"function"==typeof e.internalUpdate&&this.updateInvoker.add(e),"function"==typeof e.internalLateUpdate&&this.lateUpdateInvoker.add(e)},t._deferredSchedule=function(){for(var e=this._deferredComps,t=0,n=e.length;t1)e.push("t="+this._targetExp+";"),t="t";else{if(1!==this._exps.length)return;t=this._targetExp}for(var n=0;n0&&(n=yD+this.globalVariables.join(",")+";");var i=A_(["return (function(R){",n||[],this.codeArray,"return o;","})"]);this.result=Function("O","F",i)(this.objs,this.funcs);for(var r=0,s=this.objsToClear_iN$t.length;r=t.OptimizationPolicyThreshold)?(e=this._doInstantiate(),this.data._instantiate(e)):e=this.data._instantiate(),++this._instantiatedTimes,e},n.initDefault=function(t){e.prototype.initDefault.call(this,t),this.data=new xR,this.data.name="(Missing Node)";var n=new u._PrefabInfo;n.asset=this,n.root=this.data,this.data._prefab=n},n.validate=function(){return!!this.data},n.onLoaded=function(){var e=this.data;wO(e),yO(e)},t}(hv),PD.OptimizationPolicy=LD,PD.OptimizationPolicyThreshold=3,OD=El((CD=PD).prototype,"data",[Yl],(function(){return null})),BD=El(CD.prototype,"optimizationPolicy",[Yl],(function(){return LD.AUTO})),DD=El(CD.prototype,"persistent",[Yl],(function(){return!1})),RD=CD))||RD);function kD(e,t,n){var i=e.o,r=e.d,s=1/r.x,a=1/r.y,o=1/r.z,u=(t.x-i.x)*s,c=(n.x-i.x)*s,h=(t.y-i.y)*a,l=(n.y-i.y)*a,f=(t.z-i.z)*o,d=(n.z-i.z)*o,p=Math.max(Math.max(Math.min(u,c),Math.min(h,l)),Math.min(f,d)),_=Math.min(Math.min(Math.max(u,c),Math.max(h,l)),Math.max(f,d));return _<0||p>_?0:p>0?p:_}Me(ND,"_utils",CO),u.Prefab=ND,Ue(u,"cc._Prefab","Prefab");var zD,UD,GD,VD,HD,WD,jD,XD,qD,YD,KD,QD=(zD=Lh.create(),UD={distance:1/0,doubleSided:!1,mode:2},GD=0,VD=function(e,t,n,i,r,s){1===e?(GD>t||0===GD)&&(GD=t,s&&(0===s.length?s.push({distance:t,vertexIndex0:n/3,vertexIndex1:i/3,vertexIndex2:r/3}):(s[0].distance=t,s[0].vertexIndex0=n/3,s[0].vertexIndex1=i/3,s[0].vertexIndex2=r/3))):(GD=t,s&&s.push({distance:t,vertexIndex0:n/3,vertexIndex1:i/3,vertexIndex2:r/3}))},HD=function(e,t,n,i,r){if(7===n)for(var s=t.length,a=0;ar.distance)&&(VD(r.mode,h,o,u,c,r.result),2===r.mode))return h}else if(8===n)for(var l=t.length-2,f=0,d=0;dr.distance)&&(VD(r.mode,g,p,_,m,r.result),2===r.mode))return g}else if(9===n){var v=t.length-1,y=3*t[0];Fo.set(zD.a,e[y],e[y+1],e[y+2]);for(var b=1;br.distance)&&(VD(r.mode,S,y,w,T,r.result),2===r.mode))return S}}return GD},function(e,t,n){if(GD=0,0===t.geometricInfo.positions.length)return GD;var i=void 0===n?UD:n;if(kD(e,t.geometricInfo.boundingBox.min,t.geometricInfo.boundingBox.max)){var r=t.primitiveMode,s=t.geometricInfo,a=s.positions,o=s.indices;HD(a,o,r,e,i)}return GD}),ZD=function(){var e=0,t={distance:1/0,doubleSided:!1,mode:2};return function(n,i,r){e=0;var s=void 0===r?t:r,a=i.renderingSubMeshes.length,o=i.struct.minPosition,u=i.struct.maxPosition;if(o&&u&&!kD(n,o,u))return e;for(var c=0;cl)&&(e=l,s.subIndices&&(s.subIndices[0]=c));else if(e=l,s.subIndices&&s.subIndices.push(c),2===s.mode)return l}return e&&1===s.mode&&(s.result&&(s.result[0].distance=e,s.result.length=1),s.subIndices&&(s.subIndices.length=1)),e}}(),JD=function(){var e=0,t={distance:1/0,doubleSided:!1,mode:2},n=new mc,i=new Ru;return function(r,s,a){e=0;var o=void 0===a?t:a,u=s.worldBounds;if(u&&!Oh.rayAABB(r,u))return e;mc.copy(n,r),s.node&&(Ru.invert(i,s.node.getWorldMatrix(i)),Fo.transformMat4(n.o,r.o,i),Fo.transformMat4Normal(n.d,r.d,i));for(var c=s.subModels,h=0;hf)&&(e=f,o.subIndices&&(o.subIndices[0]=h));else if(e=f,o.subIndices&&o.subIndices.push(h),2===o.mode)return f}return e&&1===o.mode&&(o.result&&(o.result[0].distance=e,o.result.length=1),o.subIndices&&(o.subIndices.length=1)),e}}();Oh.rayModel=JD,Oh.raySubMesh=QD,Oh.rayMesh=ZD;var $D,eP,tP,nP,iP,rP,sP,aP,oP,uP,cP,hP,lP,fP,dP,pP,_P,mP,gP,vP,yP,bP,wP,TP,SP,xP,EP,IP,AP,RP,CP,OP,BP,DP,PP,MP,FP,LP,NP,kP,zP,UP=Fl("cc.PostProcess")(WD=kl((KD=function(e){function t(){var t;return(t=e.call(this)||this).global=XD&&XD(),t._shadingScale=qD&&qD(),t.enableShadingScaleInEditor=YD&&YD(),t.settings=new Map,t}p(t,e);var n=t.prototype;return n.addSetting=function(e){this.settings.set(e.constructor,e)},n.removeSetting=function(e){this.settings.delete(e.constructor)},n.getSetting=function(e){return this.settings.get(e)},n.onEnable=function(){t.all.push(this)},n.onDisable=function(){var e=t.all.indexOf(this);-1!==e&&t.all.splice(e,1)},f(t,[{key:"shadingScale",get:function(){return this._shadingScale},set:function(e){this._shadingScale=e}}]),t}(ny),KD.all=[],XD=El((jD=KD).prototype,"global",[zl,Yl],(function(){return!0})),qD=El(jD.prototype,"_shadingScale",[Yl],(function(){return 1})),I(jD.prototype,"shadingScale",[zl],Object.getOwnPropertyDescriptor(jD.prototype,"shadingScale"),jD.prototype),YD=El(jD.prototype,"enableShadingScaleInEditor",[zl,Yl],(function(){return!1})),WD=jD))||WD)||WD,GP=new Fo,VP=yt(yg),HP=yt(vg),WP=yt(bg),jP=yt(Tg),XP=yt(wg),qP=yt({SKYBOX:14,SOLID_COLOR:7,DEPTH_ONLY:6,DONT_CLEAR:0}),YP=($D=Fl("cc.Camera"),eP=yf(Y_.BitMask),tP=yf(qP),nP=yf(VP),iP=yf(HP),rP=yf(WP),sP=yf(jP),aP=yf(XP),oP=yf(xx),uP=yf(UP),$D((PP=function(e){function t(){var t;return(t=e.call(this)||this)._projection=lP&&lP(),t._priority=fP&&fP(),t._fov=dP&&dP(),t._fovAxis=pP&&pP(),t._orthoHeight=_P&&_P(),t._near=mP&&mP(),t._far=gP&&gP(),t._color=vP&&vP(),t._depth=yP&&yP(),t._stencil=bP&&bP(),t._clearFlags=wP&&wP(),t._rect=TP&&TP(),t._aperture=SP&&SP(),t._shutter=xP&&xP(),t._iso=EP&&EP(),t._screenScale=IP&&IP(),t._visibility=AP&&AP(),t._targetTexture=RP&&RP(),t._postProcess=CP&&CP(),t._usePostProcess=OP&&OP(),t._camera=null,t._inEditorMode=!1,t._flows=void 0,t._cameraType=BP&&BP(),t._trackingType=DP&&DP(),t}p(t,e);var n=t.prototype;return n.onLoad=function(){this._createCamera()},n.onEnable=function(){this.node.hasChangedFlags|=1,this._camera&&this._attachToScene()},n.onDisable=function(){this._camera&&this._detachFromScene()},n.onDestroy=function(){this._camera&&(this._camera.destroy(),this._camera=null),this._targetTexture&&this._targetTexture.off("resize")},n.screenPointToRay=function(e,t,n){return n||(n=mc.create()),this._camera&&this._camera.screenPointToRay(n,e,t),n},n.worldToScreen=function(e,t){return t||(t=new Fo),this._camera&&this._camera.worldToScreen(t,e),t},n.screenToWorld=function(e,t){return t||(t=this.node.getWorldPosition()),this._camera&&this._camera.screenToWorld(t,e),t},n.convertToUINode=function(e,t,n){if(n||(n=new Fo),!this._camera)return n;this.worldToScreen(e,GP);var i=t.getComponent("cc.UITransform"),r=o.view,s=r.getVisibleSize(),a=GP.x-.5*this._camera.width,u=GP.y-.5*this._camera.height;return GP.x=a/r.getScaleX()+.5*s.width,GP.y=u/r.getScaleY()+.5*s.height,i&&i.convertToNodeSpaceAR(GP,n),n},n._createCamera=function(){this._camera||(this._camera=o.director.root.createCamera(),this._camera.initialize({name:this.node.name,node:this.node,projection:this._projection,window:this._inEditorMode?o.director.root&&o.director.root.mainWindow:o.director.root&&o.director.root.tempWindow,priority:this._priority,cameraType:this.cameraType,trackingType:this.trackingType}),this._camera.setViewportInOrientedSpace(this._rect),this._camera.fovAxis=this._fovAxis,this._camera.fov=Fa(this._fov),this._camera.orthoHeight=this._orthoHeight,this._camera.nearClip=this._near,this._camera.farClip=this._far,this._camera.clearColor=this._color,this._camera.clearDepth=this._depth,this._camera.clearStencil=this._stencil,this._camera.clearFlag=this._clearFlags,this._camera.visibility=this._visibility,this._camera.aperture=this._aperture,this._camera.shutter=this._shutter,this._camera.iso=this._iso,this._camera.postProcess=this._postProcess,this._camera.usePostProcess=this._usePostProcess),this._updateTargetTexture()},n._attachToScene=function(){this.node.scene&&this._camera&&(this._camera&&this._camera.scene&&this._camera.scene.removeCamera(this._camera),this._getRenderScene().addCamera(this._camera))},n._detachFromScene=function(){this._camera&&this._camera.scene&&this._camera.scene.removeCamera(this._camera)},n._checkTargetTextureEvent=function(e){var t=this;e&&e.off("resize"),this._targetTexture&&this._targetTexture.on("resize",(function(e){t._camera&&t._camera.setFixedSize(e.width,e.height)}),this)},n._updateTargetTexture=function(){if(this._camera&&this._targetTexture){var e=this._targetTexture.window;this._camera.changeTargetWindow(e),this._camera.setFixedSize(e.width,e.height)}},f(t,[{key:"camera",get:function(){return this._camera}},{key:"priority",get:function(){return this._priority},set:function(e){this._priority=e,this._camera&&(this._camera.priority=e)}},{key:"visibility",get:function(){return this._visibility},set:function(e){this._visibility=e,this._camera&&(this._camera.visibility=e)}},{key:"clearFlags",get:function(){return this._clearFlags},set:function(e){this._clearFlags=e,this._camera&&(this._camera.clearFlag=e)}},{key:"clearColor",get:function(){return this._color},set:function(e){this._color.set(e),this._camera&&(this._camera.clearColor=this._color)}},{key:"clearDepth",get:function(){return this._depth},set:function(e){this._depth=e,this._camera&&(this._camera.clearDepth=e)}},{key:"clearStencil",get:function(){return this._stencil},set:function(e){this._stencil=e,this._camera&&(this._camera.clearStencil=e)}},{key:"projection",get:function(){return this._projection},set:function(e){this._projection=e,this._camera&&(this._camera.projectionType=e)}},{key:"fovAxis",get:function(){return this._fovAxis},set:function(e){e!==this._fovAxis&&(this._fovAxis=e,this._camera&&(this._camera.fovAxis=e,this.fov=0===e?this._fov*this._camera.aspect:this._fov/this._camera.aspect))}},{key:"fov",get:function(){return this._fov},set:function(e){this._fov=e,this._camera&&(this._camera.fov=Fa(e))}},{key:"orthoHeight",get:function(){return this._orthoHeight},set:function(e){this._orthoHeight=e,this._camera&&(this._camera.orthoHeight=e)}},{key:"near",get:function(){return this._near},set:function(e){this._near=e,this._camera&&(this._camera.nearClip=e)}},{key:"far",get:function(){return this._far},set:function(e){this._far=e,this._camera&&(this._camera.farClip=e)}},{key:"aperture",get:function(){return this._aperture},set:function(e){this._aperture=e,this._camera&&(this._camera.aperture=e)}},{key:"shutter",get:function(){return this._shutter},set:function(e){this._shutter=e,this._camera&&(this._camera.shutter=e)}},{key:"iso",get:function(){return this._iso},set:function(e){this._iso=e,this._camera&&(this._camera.iso=e)}},{key:"rect",get:function(){return this._rect},set:function(e){this._rect=e,this._camera&&this._camera.setViewportInOrientedSpace(e)}},{key:"targetTexture",get:function(){return this._targetTexture},set:function(e){if(this._targetTexture!==e){var t=this._targetTexture;this._targetTexture=e,this._checkTargetTextureEvent(t),this._updateTargetTexture(),!e&&this._camera&&(this._camera.changeTargetWindow(null),this._camera.isWindowSize=!0),this.node.emit("tex-change",this)}}},{key:"usePostProcess",get:function(){return this._usePostProcess},set:function(e){this._usePostProcess=e,this._camera&&(this._camera.usePostProcess=e)}},{key:"postProcess",get:function(){return this._postProcess},set:function(e){this._postProcess=e,this._camera&&(this._camera.postProcess=e)}},{key:"screenScale",get:function(){return this._screenScale},set:function(e){this._screenScale=e,this._camera&&(this._camera.screenScale=e)}},{key:"inEditorMode",get:function(){return this._inEditorMode},set:function(e){if(this._inEditorMode=e,this._camera){var t=o.director.root;this._camera.changeTargetWindow(e?t&&t.mainWindow:t&&t.tempWindow)}}},{key:"cameraType",get:function(){return this._cameraType},set:function(e){this._cameraType!==e&&(this._cameraType=e,this.camera&&(this.camera.cameraType=e))}},{key:"trackingType",get:function(){return this._trackingType},set:function(e){this._trackingType!==e&&(this._trackingType=e,this.camera&&(this.camera.trackingType=e))}}]),t}(ny),PP.ProjectionType=VP,PP.FOVAxis=HP,PP.ClearFlag=qP,PP.Aperture=WP,PP.Shutter=jP,PP.ISO=XP,PP.TARGET_TEXTURE_CHANGE="tex-change",lP=El((hP=PP).prototype,"_projection",[Yl],(function(){return VP.PERSPECTIVE})),fP=El(hP.prototype,"_priority",[Yl],(function(){return 0})),dP=El(hP.prototype,"_fov",[Yl],(function(){return 45})),pP=El(hP.prototype,"_fovAxis",[Yl],(function(){return HP.VERTICAL})),_P=El(hP.prototype,"_orthoHeight",[Yl],(function(){return 10})),mP=El(hP.prototype,"_near",[Yl],(function(){return 1})),gP=El(hP.prototype,"_far",[Yl],(function(){return 1e3})),vP=El(hP.prototype,"_color",[Yl],(function(){return new Wo("#333333")})),yP=El(hP.prototype,"_depth",[Yl],(function(){return 1})),bP=El(hP.prototype,"_stencil",[Yl],(function(){return 0})),wP=El(hP.prototype,"_clearFlags",[Yl],(function(){return qP.SOLID_COLOR})),TP=El(hP.prototype,"_rect",[Yl],(function(){return new Ju(0,0,1,1)})),SP=El(hP.prototype,"_aperture",[Yl],(function(){return WP.F16_0})),xP=El(hP.prototype,"_shutter",[Yl],(function(){return jP.D125})),EP=El(hP.prototype,"_iso",[Yl],(function(){return XP.ISO100})),IP=El(hP.prototype,"_screenScale",[Yl],(function(){return 1})),AP=El(hP.prototype,"_visibility",[Yl],(function(){return fg})),RP=El(hP.prototype,"_targetTexture",[Yl],(function(){return null})),CP=El(hP.prototype,"_postProcess",[Yl],(function(){return null})),OP=El(hP.prototype,"_usePostProcess",[Yl],(function(){return!1})),BP=El(hP.prototype,"_cameraType",[Yl],(function(){return-1})),DP=El(hP.prototype,"_trackingType",[Yl],(function(){return 0})),I(hP.prototype,"visibility",[eP],Object.getOwnPropertyDescriptor(hP.prototype,"visibility"),hP.prototype),I(hP.prototype,"clearFlags",[tP],Object.getOwnPropertyDescriptor(hP.prototype,"clearFlags"),hP.prototype),I(hP.prototype,"projection",[nP],Object.getOwnPropertyDescriptor(hP.prototype,"projection"),hP.prototype),I(hP.prototype,"fovAxis",[iP],Object.getOwnPropertyDescriptor(hP.prototype,"fovAxis"),hP.prototype),I(hP.prototype,"aperture",[rP],Object.getOwnPropertyDescriptor(hP.prototype,"aperture"),hP.prototype),I(hP.prototype,"shutter",[sP],Object.getOwnPropertyDescriptor(hP.prototype,"shutter"),hP.prototype),I(hP.prototype,"iso",[aP],Object.getOwnPropertyDescriptor(hP.prototype,"iso"),hP.prototype),I(hP.prototype,"targetTexture",[oP],Object.getOwnPropertyDescriptor(hP.prototype,"targetTexture"),hP.prototype),I(hP.prototype,"usePostProcess",[zl],Object.getOwnPropertyDescriptor(hP.prototype,"usePostProcess"),hP.prototype),I(hP.prototype,"postProcess",[uP],Object.getOwnPropertyDescriptor(hP.prototype,"postProcess"),hP.prototype),cP=hP))||cP);e({Camera:YP,CameraComponent:YP}),o.Camera=YP;var KP,QP,ZP,JP={parent:null,owner:null,subModelIdx:0},$P=kl,eM=yf,tM=e("Renderer",(MP=Fl("cc.Renderer"),FP=eM(ES),LP=eM([ES]),MP(NP=$P((kP=function(e){function t(){var t;return(t=e.call(this)||this)._materials=zP&&zP(),t._materialInstances=[],t}p(t,e);var n=t.prototype;return n.getMaterial=function(e){return this.getSharedMaterial(e)},n.setMaterial=function(e,t){this.setSharedMaterial(e,t)},n.getSharedMaterial=function(e){return e<0||e>=this._materials.length?null:this._materials[e]},n.setSharedMaterial=function(e,t){if(e&&e instanceof jS&&Z(12012),this._materials[t]!==e){this._materials[t]=e;var n=this._materialInstances[t];n&&(n.destroy(),this._materialInstances[t]=null),this._onMaterialModified(t,this._materials[t])}},n.getMaterialInstance=function(e){if(!this._materials[e])return null;if(!this._materialInstances[e]){JP.parent=this._materials[e],JP.owner=this,JP.subModelIdx=e;var t=new jS(JP);JP.parent=null,JP.owner=null,JP.subModelIdx=0,this.setMaterialInstance(t,e)}return this._materialInstances[e]},n.setMaterialInstance=function(e,t){if("number"==typeof e){K(12007);var n=e;e=t,t=n}var i=this._materialInstances[t];e&&e.parent?e!==i&&(this._materialInstances[t]=e,this._onMaterialModified(t,e)):(e!==this._materials[t]||i)&&this.setSharedMaterial(e,t)},n.getRenderMaterial=function(e){return this._materialInstances[e]||this._materials[e]},n._onMaterialModified=function(){},n._onRebuildPSO=function(){},n._clearMaterials=function(){},f(t,[{key:"sharedMaterial",get:function(){return this.getSharedMaterial(0)}},{key:"sharedMaterials",get:function(){return this._materials},set:function(e){for(var t=0;t0)for(var e=0;e1&&(this._fps=this._frameCount,this._frameCount=0,this._fpsTime=0),this._frameMoveBegin(),this._frameMoveProcess(),this._frameMoveEnd()},t.createWindow=function(e){var t=this._createWindowFun(this);return t.initialize(this.device,e),this._windows.push(t),t},t.destroyWindow=function(e){for(var t=0;t0){this._device.acquire([D_.swapchain]);var r=this._scenes,s=e.getTotalFrames();this._batcher&&(this._batcher.update(),this._batcher.uploadBuffers());for(var a=0;a0){e.emit(t.EVENT_BEFORE_COMMIT),n.sort((function(e,t){return e.priority-t.priority}));for(var i=0;i0&&(this._fixedFPS=e)}},{key:"dataPoolManager",get:function(){return this._dataPoolMgr}},{key:"useDeferredPipeline",get:function(){return this._useDeferredPipeline}},{key:"cameraList",get:function(){return this._cameraList}}]),e}());o.Root=hM;var lM=function(){function e(){this._allRenderers=[],this._dirtyRenderers=[],this._dirtyVersion=0}var t=e.prototype;return t.addRenderer=function(e){-1===e._internalId&&(e._internalId=this._allRenderers.length,this._allRenderers.push(e))},t.removeRenderer=function(e){if(-1!==e._internalId){var t=e._internalId;this._allRenderers[this._allRenderers.length-1]._internalId=t,pe(this._allRenderers,t),e._internalId=-1,e._dirtyVersion===this._dirtyVersion&&(me(this._dirtyRenderers,e),e._dirtyVersion=-1)}},t.markDirtyRenderer=function(e){e._dirtyVersion!==this._dirtyVersion&&-1!==e._internalId&&(this._dirtyRenderers.push(e),e._dirtyVersion=this._dirtyVersion)},t.updateAllDirtyRenderers=function(){for(var e=this._dirtyRenderers,t=0;t1){var c=Object.create(null);t.forEach((function(e){c[e._uuid]=e})),r={isCompleted:_M,_map:c}}else r=t[0]}n&&n(e,r)}))},t.getXMLHttpRequest=function(){return new XMLHttpRequest},t.getItem=function(e){return tT.assets.has(e)?{content:tT.assets.get(e)}:null},t.loadRes=function(e,t,n,i){var r=this._parseLoadResArgs(t,n,i),s=r.type,a=r.onProgress,o=r.onComplete,u=ai(e);u&&!Zb.getInfoWithPath(e,s)&&(e=e.slice(0,-u.length)),Zb.load(e,s,a,o)},t.loadResArray=function(e,t,n,i){var r=this._parseLoadResArgs(t,n,i),s=r.type,a=r.onProgress,o=r.onComplete;e.forEach((function(t,n){var i=ai(t);i&&!Zb.getInfoWithPath(t,s)&&(e[n]=t.slice(0,-i.length))})),Zb.load(e,s,a,o)},t.loadResDir=function(e,t,n,i){var r=this._parseLoadResArgs(t,n,i),s=r.type,a=r.onProgress,o=r.onComplete;Zb.loadDir(e,s,a,(function(t,n){var i=[];t||(i=Zb.getDirWithPath(e,s).map((function(e){return e.path}))),o&&o(t,n,i)}))},t.getRes=function(e,t){return Mg.has(e)?Mg.get(e):Zb.get(e,t)},t.getResCount=function(){return Mg.count},t.getDependsRecursively=function(e){if(!e)return[];var t="string"==typeof e?e:e._uuid;return sb.getDepsRecursively(t).concat([t])},t.addDownloadHandlers=function(e){var t=Object.create(null),n=function(){var n=e[i];t["."+i]=function(e,t,i){n({url:e},i)}};for(var i in e)n();bw.register(t)},t.addLoadHandlers=function(e){var t=Object.create(null),n=function(){var n=e[i];t["."+i]=function(e,t,i){n({content:e},i)}};for(var i in e)n();Gw.register(t)},t.release=function(e){if(Array.isArray(e))for(var t=0;t0&&t>0){this._updateResolutionPolicy(n);var i=this._resolutionPolicy;i&&i.preApply(this),this._designResolutionSize.width=e,this._designResolutionSize.height=t;var r=i.apply(this,this._designResolutionSize);if(r.scale&&2===r.scale.length&&(this._scaleX=r.scale[0],this._scaleY=r.scale[1]),r.viewport){var s=this._viewportRect,a=this._visibleRect,o=r.viewport;s.x=o.x,s.y=o.y,s.width=o.width,s.height=o.height,a.x=0,a.y=0,a.width=o.width/this._scaleX,a.height=o.height/this._scaleY}i.postApply(this),AM.width=this._visibleRect.width,AM.height=this._visibleRect.height,Yh.init(this._visibleRect),this.emit("design-resolution-changed")}else Z(2200)},n.getDesignResolutionSize=function(){return new Yu(this._designResolutionSize.width,this._designResolutionSize.height)},n.setRealPixelResolution=function(e,t,n){document.documentElement.style.width=e+"px",document.body.style.width=e+"px",document.body.style.left="0px",document.body.style.top="0px",this.setDesignResolutionSize(e,t,n)},n.getViewportRect=function(){return this._viewportRect},n.getScaleX=function(){return this._scaleX},n.getScaleY=function(){return this._scaleY},n.getDevicePixelRatio=function(){return Wh.devicePixelRatio},n.convertToLocationInView=function(e,t,n,i){void 0===i&&(i=new Xu);var r=Wh.devicePixelRatio*(e-n.left),s=Wh.devicePixelRatio*(n.top+n.height-t);return Wh.isFrameRotated?(i.x=Xh.windowSize.width-s,i.y=r):(i.x=r,i.y=s),i},n._convertToUISpace=function(e){var t=this._viewportRect;e.x=(e.x-t.x)/this._scaleX,e.y=(e.y-t.y)/this._scaleY},n._updateAdaptResult=function(e,t,n){o.director.root.resize(e,t,void 0===n||0===n?1:n);var i=this._designResolutionSize,r=i.width,s=i.height;e>0&&t>0?this.setDesignResolutionSize(r,s,this._resolutionPolicy):z(!1,"_updateAdaptResult Invalid size."),this.emit("canvas-resize"),this._resizeCallback&&this._resizeCallback()},t}(jn(v_));CM.instance=void 0;var OM=function(){function e(){this.name="ContainerStrategy"}var t=e.prototype;return t.preApply=function(){},t.apply=function(){},t.postApply=function(){},t._setupCanvas=function(){var e=o.game.canvas;if(e){var t=Xh.windowSize;e.width!==t.width&&(e.width=t.width),e.height!==t.height&&(e.height=t.height)}},e}();OM.EQUAL_TO_FRAME=void 0,OM.PROPORTION_TO_FRAME=void 0;var BM=function(){function e(){this.name="ContentStrategy",this._result={scale:[1,1],viewport:null},this._strategy=zM.UNKNOWN}var t=e.prototype;return t.preApply=function(){},t.apply=function(){return{scale:[1,1]}},t.postApply=function(){},t._buildResult=function(e,t,n,i,r,s){Math.abs(e-n)<2&&(n=e),Math.abs(t-i)<2&&(i=t);var a=new Ju(Math.round((e-n)/2),Math.round((t-i)/2),n,i),o=this._result;return o.scale=[r,s],o.viewport=a,o},f(e,[{key:"strategy",get:function(){return this._strategy}}]),e}(),DM=function(e){function t(){var t;return(t=e.call(this)||this).name="EqualToFrame",t}return p(t,e),t.prototype.apply=function(){Wh.isProportionalToFrame=!1,this._setupCanvas()},t}(OM),PM=function(e){function t(){var t;return(t=e.call(this)||this).name="ProportionalToFrame",t}return p(t,e),t.prototype.apply=function(){Wh.isProportionalToFrame=!0,this._setupCanvas()},t}(OM);OM.EQUAL_TO_FRAME=new DM,OM.PROPORTION_TO_FRAME=new PM;var MM=function(e){function t(){var t;return(t=e.call(this)||this).name="ExactFit",t._strategy=zM.EXACT_FIT,t}return p(t,e),t.prototype.apply=function(e,t){var n=Xh.windowSize,i=n.width,r=n.height,s=i/t.width,a=r/t.height;return this._buildResult(i,r,i,r,s,a)},t}(BM),FM=function(e){function t(){var t;return(t=e.call(this)||this).name="ShowAll",t._strategy=zM.SHOW_ALL,t}return p(t,e),t.prototype.apply=function(e,t){var n,i,r=Xh.windowSize,s=r.width,a=r.height,o=t.width,u=t.height,c=s/o,h=a/u,l=0;return ct){var r=i;i=n,n=r}this.scaleSize=e/t>16/9?t/i:e/n},e.update=function(e){var t=this.settings,n=this.device,i=this.swapchain,r=n.capabilities;Ru.ortho(this.projection,-1,1,-1,1,-1,1,r.clipSpaceMinZ,r.clipSpaceSignY,i.surfaceTransform);var s=i.width,a=i.height;this.initScale(),this._curTime+=1e3*e;var o=Hf(Pa(this._curTime/t.totalTime)),u=1,c=1,h=this.bgImage;if("custom"===t.background.type){t.policy===zM.FIXED_WIDTH?(u=s,c=s/h.width*h.height):t.policy===zM.FIXED_HEIGHT?(u=a/h.height*h.width,c=a):t.policy===zM.SHOW_ALL?h.width/this.bgHeight>s/a?(u=s,c=s/h.width*h.height):(u=a/h.height*h.width,c=a):t.policy===zM.NO_BORDER?h.width/h.height>s/a?(u=a/h.height*h.width,c=a):(u=s,c=s/h.width*h.height):(u=s,c=a);var l=this.bgMat;VM(l,"resolution",GM.set(s,a),0),VM(l,"scale",GM.set(u,c),0),VM(l,"translate",GM.set(.5*s,.5*a),0),VM(l,"percent",1),VM(l,"u_projection",this.projection),l.passes[0].update()}var f=a*this.logoYTrans;if("none"!==this.settings.logo.type){c=.185*a*t.displayRatio,u=this.logoWidth*(.185*a/this.logoHeight)*t.displayRatio;var d=this.logoMat;VM(d,"resolution",GM.set(s,a),0),VM(d,"scale",GM.set(u,c),0),VM(d,"translate",GM.set(s*this.logoXTrans,f),0),VM(d,"percent",o),VM(d,"u_projection",this.projection),d.passes[0].update()}if("default"===this.settings.logo.type&&this.watermarkMat){var p=this.watermarkTexture.width,_=this.watermarkTexture.height;u=p,c=_;var m=f-(.5*this.logoHeight*t.displayRatio+this.textYExtraTrans)*this.scaleSize-.5*_,g=this.watermarkMat;VM(g,"resolution",GM.set(s,a),0),VM(g,"scale",GM.set(u,c),0),VM(g,"translate",GM.set(s*this.textXTrans,m),0),VM(g,"percent",o),VM(g,"u_projection",this.projection),g.passes[0].update()}this.frame()},e.initBG=function(){var e=this.device;this.bgMat=new ES,this.bgMat.initialize({effectName:"util/splash-screen"});var t=new Lr;t.addressU=2,t.addressV=2,t.addressW=2,this.sampler=e.getSampler(t),this.bgTexture=e.createTexture(new Mr(1,6,35,this.bgImage.width,this.bgImage.height));var n=this.bgMat.passes[0],i=n.getBinding("mainTexture");n.bindTexture(i,this.bgTexture),this.shader=n.getShaderVariant();var r=n.descriptorSet;r.bindSampler(i,this.sampler),r.update();var s=new wr,a=s.texExtent;a.width=this.bgImage.width,a.height=this.bgImage.height,a.depth=1,e.copyTexImagesToTexture([this.bgImage],this.bgTexture,[s])},e.initLogo=function(){var e=this.device;this.logoMat=new ES,this.logoMat.initialize({effectName:"util/splash-screen"});var t=new Lr;t.addressU=2,t.addressV=2,t.addressW=2,this.sampler=e.getSampler(t),this.logoTexture=e.createTexture(new Mr(1,6,35,this.logoImage.width,this.logoImage.height));var n=this.logoMat.passes[0],i=n.getBinding("mainTexture");n.bindTexture(i,this.logoTexture),this.shader=n.getShaderVariant();var r=n.descriptorSet;r.bindSampler(i,this.sampler),r.update();var s=new wr,a=s.texExtent;a.width=this.logoImage.width,a.height=this.logoImage.height,a.depth=1,e.copyTexImagesToTexture([this.logoImage],this.logoTexture,[s]);var o=this.logoImage.width/this.logoImage.height;o<1?(this.logoWidth=this.logoWidthTemp,this.logoHeight=this.logoWidthTemp/o):(this.logoWidth=this.logoHeightTemp*o,this.logoHeight=this.logoHeightTemp)},e.initWaterMark=function(){var e=h.document.createElement("canvas");e.height=this.textHeight*this.scaleSize,e.style.width=""+e.width,e.style.height=""+e.height;var t="Created with Cocos",n=e.getContext("2d");n.font=this.textSize*this.scaleSize+"px Arial",n.textBaseline="top",n.textAlign="center",n.fillStyle="#707070";var i=n.measureText(t).width+10;e.width=i,n.font=this.textSize*this.scaleSize+"px Arial",n.textBaseline="top",n.textAlign="center",n.fillStyle="#707070",n.fillText(t,e.width/2,0);var r=new wr,s=r.texExtent;s.width=e.width,s.height=e.height,s.depth=1,this.watermarkTexture=this.device.createTexture(new Mr(1,6,35,e.width,e.height)),this.device.copyTexImagesToTexture([e],this.watermarkTexture,[r]),this.watermarkMat=new ES,this.watermarkMat.initialize({effectName:"util/splash-screen"});var a=this.watermarkMat.passes[0],o=a.getBinding("mainTexture");a.bindTexture(o,this.watermarkTexture),a.descriptorSet.update()},e.frame=function(){var e=this.device,t=this.swapchain;this.projection;var n=this.bgMat,i=this.logoMat,r=this.watermarkMat,s=this.settings,a=this.quadAssmebler;if(e.capabilities,!qh.isXR||xr.entry.isRenderAllowable())for(var c=qh.isXR?2:1,h=0;h=this.settings.totalTime}},{key:"curTime",get:function(){return this._curTime},set:function(e){this._curTime=e}}],[{key:"instance",get:function(){return t._ins}}]),t}();HM._ins=null,o.internal.SplashScreen=HM;var WM=new(function(){function e(){this._data=null}return e.prototype.init=function(e){var t=this;return void 0===e&&(e=""),u.rendering&&u.rendering.enableEffectImport&&e?new Promise((function(n,i){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="arraybuffer",r.onload=function(){t._data=r.response,n()},r.onerror=function(){i(new Error("request effect settings failed!"))},r.send(null)})):Promise.resolve()},f(e,[{key:"data",get:function(){return this._data}}]),e}());u.effectSettings=WM;var jM=At.querySettings.bind(At),XM=e("Game",function(e){function n(){var t;return(t=e.call(this)||this).frame=null,t.container=null,t.canvas=null,t.renderType=-1,t.eventTargetOn=e.prototype.on,t.eventTargetOnce=e.prototype.once,t.config={},t.onStart=null,t.frameTime=1e3/60,t._isCloning=!1,t._inited=!1,t._engineInited=!1,t._rendererInitialized=!1,t._paused=!0,t._pausedByEngine=!1,t._frameRate=60,t._pacer=null,t._initTime=0,t._startTime=0,t._deltaTime=0,t._useFixedDeltaTime=!1,t._shouldLoadLaunchScene=!0,t.onPreBaseInitDelegate=new $n,t.onPostBaseInitDelegate=new $n,t.onPreInfrastructureInitDelegate=new $n,t.onPostInfrastructureInitDelegate=new $n,t.onPreSubsystemInitDelegate=new $n,t.onPostSubsystemInitDelegate=new $n,t.onPreProjectInitDelegate=new $n,t.onPostProjectInitDelegate=new $n,t}p(n,e);var i=n.prototype;return i.setFrameRate=function(e){this.frameRate=e},i.getFrameRate=function(){return this.frameRate},i.step=function(){xM.tick(this._calculateDT(!0))},i.pauseByEngine=function(){this._paused||(this._pausedByEngine=!0,this.pause())},i.resumeByEngine=function(){this._pausedByEngine&&(this.resume(),this._pausedByEngine=!1)},i.pause=function(){var e;this._paused||(this._paused=!0,null==(e=this._pacer)||e.stop(),this.emit(n.EVENT_PAUSE))},i.resume=function(){var e;this._paused&&(UB._clearEvents(),this._paused=!1,null==(e=this._pacer)||e.start(),this.emit(n.EVENT_RESUME))},i.isPaused=function(){return this._paused},i.restart=function(){var e=this;return new Promise((function(e){xM.once("director_end_frame",(function(){return e()}))})).then((function(){xM.reset(),o.Object._deferredDestroy(),e.pause(),e.resume(),e._shouldLoadLaunchScene=!0})).then((function(){return HM.createInstance().init()})).then((function(){e._safeEmit(n.EVENT_RESTART)}))},i.end=function(){ti.close()},i.on=function(e,t,n,i){return this.canRegisterEvent(e)&&t.call(n),this.eventTargetOn(e,t,n,i)},i.once=function(e,t,n){return this.canRegisterEvent(e)?t.call(n):this.eventTargetOnce(e,t,n)},i.canRegisterEvent=function(e){return this._engineInited&&e===n.EVENT_ENGINE_INITED||this._inited&&e===n.EVENT_GAME_INITED||this._rendererInitialized&&e===n.EVENT_RENDERER_INITED},i.init=function(e){var i=this;return this._compatibleWithOldParams(e),Promise.resolve().then((function(){return i.emit(n.EVENT_PRE_BASE_INIT),i.onPreBaseInitDelegate.dispatch()})).then((function(){G(e.debugMode||0)})).then((function(){return qh.init()})).then((function(){i._initEvents()})).then((function(){return At.init(e.settingsPath,e.overrideSettings)})).then((function(){return i.emit(n.EVENT_POST_BASE_INIT),i.onPostBaseInitDelegate.dispatch()})).then((function(){return i.emit(n.EVENT_PRE_INFRASTRUCTURE_INIT),i.onPreInfrastructureInitDelegate.dispatch()})).then((function(){Rt.init(),i._initXR();var e={frame:document.querySelector("#GameDiv"),container:document.querySelector("#Cocos3dGameContainer"),canvas:document.querySelector("#GameCanvas")};return i.canvas=e.canvas,i.frame=e.frame,i.container=e.container,Xh.init(),mi.init(),D_.init(i.canvas,tm)})).then((function(){if(jM("rendering","customPipeline")){if(!o.rendering)return void Z(12109);Rt.CUSTOM_PIPELINE_NAME||(Rt.CUSTOM_PIPELINE_NAME="Builtin")}else o.rendering=void 0;tT.init(),aT.init(),Y_.init(),i.initPacer()})).then((function(){return i.emit(n.EVENT_POST_INFRASTRUCTURE_INIT),i.onPostInfrastructureInitDelegate.dispatch()})).then((function(){return i.emit(n.EVENT_PRE_SUBSYSTEM_INIT),i.onPreSubsystemInitDelegate.dispatch()})).then((function(){return WM.init(jM("rendering","effectSettingsPath"))})).then((function(){if(o.rendering&&o.rendering.enableEffectImport)if(3!==jM("rendering","renderMode")){var e=WM.data;null!==e?o.rendering.init(D_.gfxDevice,e):Z(1102)}else o.rendering.init(D_.gfxDevice,null)})).then((function(){var e=jM("scripting","scriptPackages");return e?Promise.all(e.map((function(e){return t.import(e)}))):Promise.resolve([])})).then((function(){return xM.init(),aT.loadBuiltinAssets()})).then((function(){return i.emit(n.EVENT_POST_SUBSYSTEM_INIT),i.onPostSubsystemInitDelegate.dispatch()})).then((function(){L("Cocos Creator v"+c),i.emit(n.EVENT_ENGINE_INITED),i._engineInited=!0})).then((function(){return i.emit(n.EVENT_PRE_PROJECT_INIT),i.onPreProjectInitDelegate.dispatch()})).then((function(){var e=jM("plugins","jsList"),t=Promise.resolve();return e&&e.forEach((function(e){t=t.then((function(){return t="src/"+e,new Promise((function(e,n){var i;function r(e){e.filename===t&&(i=e.error)}window.addEventListener("error",r);var s=document.createElement("script");s.charset="utf-8",s.async=!0,s.crossOrigin="anonymous",s.addEventListener("error",(function(){window.removeEventListener("error",r),n(Error("Error loading "+t))})),s.addEventListener("load",(function(){window.removeEventListener("error",r),document.head.removeChild(s),i?n(i):e()})),s.src=t.replace("#","%23"),document.head.appendChild(s)}));var t}))})),t})).then((function(){return i._loadProjectBundles()})).then((function(){return i._loadCCEScripts()})).then((function(){return i._setupRenderPipeline()})).then((function(){return i._loadPreloadAssets()})).then((function(){return aT.compileBuiltinMaterial(),HM.createInstance().init()})).then((function(){return i.emit(n.EVENT_POST_PROJECT_INIT),i.onPostProjectInitDelegate.dispatch()})).then((function(){i._inited=!0,i._safeEmit(n.EVENT_GAME_INITED)}))},i._initXR=function(){},i._compatibleWithOldParams=function(e){var t=e.overrideSettings=e.overrideSettings||{};"showFPS"in e&&(t.profiling=t.profiling||{},t.profiling.showFPS=e.showFPS),"frameRate"in e&&(t.screen=t.screen||{},t.screen.frameRate=e.frameRate),"renderMode"in e&&(t.rendering=t.rendering||{},t.rendering.renderMode=e.renderMode),"renderPipeline"in e&&(t.rendering=t.rendering||{},t.rendering.renderPipeline=e.renderPipeline),"assetOptions"in e&&(t.assets=t.assets||{},Object.assign(t.assets,e.assetOptions)),"customJointTextureLayouts"in e&&(t.animation=t.animation||{},t.animation.customJointTextureLayouts=e.customJointTextureLayouts),"physics"in e&&(t.physics=t.physics||{},Object.assign(t.physics,e.physics)),"orientation"in e&&(t.screen=t.screen||{},t.screen.orientation=e.orientation),"exactFitScreen"in e&&(t.screen=t.screen||{},t.screen.exactFitScreen=e.exactFitScreen)},i._loadPreloadAssets=function(){var e=jM("assets","preloadAssets");return e?Promise.all(e.map((function(e){return new Promise((function(t,n){tT.loadAny(e,(function(e){e?n(e):t()}))}))}))):Promise.resolve([])},i._loadCCEScripts=function(){return new Promise((function(e){e()}))},i._loadProjectBundles=function(){var e=jM("assets","preloadBundles");return e?Promise.all(e.map((function(e){var t=e.bundle,n=e.version;return new Promise((function(e,i){var r={};n&&(r.version=n),tT.loadBundle(t,r,(function(t){t?i(t):e()}))}))}))):Promise.resolve([])},i.run=function(e){e&&(this.onStart=e),this._inited&&this.resume()},i._calculateDT=function(e){if(this._useFixedDeltaTime=e,e)return this._startTime=performance.now(),this.frameTime/1e3;var t=performance.now();return this._deltaTime=t>this._startTime?(t-this._startTime)/1e3:0,this._deltaTime>n.DEBUG_DT_THRESHOLD&&(this._deltaTime=this.frameTime/1e3),this._startTime=t,this._deltaTime},i._updateCallback=function(){var e=this;if(this._inited)if(HM.instance&&!HM.instance.isFinished)HM.instance.update(this._calculateDT(!1));else if(this._shouldLoadLaunchScene){HM.releaseInstance(),this._shouldLoadLaunchScene=!1;var t,n=jM("launch","launchScene");n?xM.loadScene(n,(function(){j(1103,n),e._initTime=performance.now(),xM.startAnimation(),null==e.onStart||e.onStart()})):(this._initTime=performance.now(),xM.startAnimation(),null==(t=this.onStart)||t.call(this))}else xM.tick(this._calculateDT(!1))},i.initPacer=function(){var e,t=null!==(e=jM("screen","frameRate"))&&void 0!==e?e:60;z("number"==typeof t),this._pacer=new IM,this._pacer.onTick=this._updateCallback.bind(this),this.frameRate=t},i._initEvents=function(){ti.on("show",this._onShow,this),ti.on("hide",this._onHide,this),ti.on("close",this._onClose,this)},i._onHide=function(){this.emit(n.EVENT_HIDE),this.pauseByEngine()},i._onShow=function(){this.emit(n.EVENT_SHOW),this.resumeByEngine()},i._onClose=function(){this.emit(n.EVENT_CLOSE),ti.exit()},i.addPersistRootNode=function(e){xM.addPersistRootNode(e)},i.removePersistRootNode=function(e){xM.removePersistRootNode(e)},i.isPersistRootNode=function(e){return xM.isPersistRootNode(e)},i._setupRenderPipeline=function(){var e=jM("rendering","customPipeline");return this._setRenderPipeline(!!e)},i._setRenderPipeline=function(e){xM.root.setRenderPipeline(e)?(this._rendererInitialized=!0,this._safeEmit(n.EVENT_RENDERER_INITED)):Z(1222)},i._safeEmit=function(e){this.emit(e)},f(n,[{key:"inited",get:function(){return this._inited}},{key:"frameRate",get:function(){return this._frameRate},set:function(e){"number"!=typeof e&&(e=parseInt(e,10),Number.isNaN(e)&&(e=60)),this._frameRate=e,this.frameTime=1e3/e,this._pacer&&(this._pacer.targetFrameRate=this._frameRate)}},{key:"deltaTime",get:function(){return this._useFixedDeltaTime?this.frameTime/1e3:this._deltaTime}},{key:"totalTime",get:function(){return performance.now()-this._initTime}},{key:"frameStartTime",get:function(){return this._startTime}}]),n}(Xn));XM.EVENT_HIDE="game_on_hide",XM.EVENT_SHOW="game_on_show",XM.EVENT_LOW_MEMORY="game_on_low_memory",XM.EVENT_GAME_INITED="game_inited",XM.EVENT_ENGINE_INITED="engine_inited",XM.EVENT_RENDERER_INITED="renderer_inited",XM.EVENT_PRE_BASE_INIT="pre_base_init",XM.EVENT_POST_BASE_INIT="post_base_init",XM.EVENT_PRE_INFRASTRUCTURE_INIT="pre_infrastructure_init",XM.EVENT_POST_INFRASTRUCTURE_INIT="post_infrastructure_init",XM.EVENT_PRE_SUBSYSTEM_INIT="pre_subsystem_init",XM.EVENT_POST_SUBSYSTEM_INIT="post_subsystem_init",XM.EVENT_PRE_PROJECT_INIT="pre_project_init",XM.EVENT_POST_PROJECT_INIT="post_project_init",XM.EVENT_RESTART="game_on_restart",XM.EVENT_PAUSE="game_on_pause",XM.EVENT_RESUME="game_on_resume",XM.EVENT_CLOSE="game_on_close",XM.RENDER_TYPE_CANVAS=0,XM.RENDER_TYPE_WEBGL=1,XM.RENDER_TYPE_OPENGL=2,XM.RENDER_TYPE_HEADLESS=3,XM.DEBUG_DT_THRESHOLD=1,o.Game=XM;var qM=e("game",o.game=new XM);la(SM.prototype,"director",[{name:"calculateDeltaTime"},{name:"getDeltaTime",suggest:"Use game.deltaTime instead"},{name:"getTotalTime",suggest:"Use game.totalTime instead"},{name:"getCurrentTime",suggest:"Use game.frameStartTime instead"}]),ha(SM.prototype,"director",[{name:"setAnimationInterval",suggest:"please use game.frameRate instead"},{name:"getAnimationInterval",suggest:"please use game.frameRate instead"},{name:"getRunningScene",suggest:"please use getScene instead"},{name:"setDepthTest",suggest:"please use camera API instead"},{name:"setClearColor",suggest:"please use camera API instead"},{name:"getWinSize",suggest:"please use view.getVisibleSize instead"},{name:"getWinSizeInPixels"},{name:"purgeCachedData",suggest:"please use assetManager.releaseAll instead"},{name:"convertToGL"},{name:"convertToUI"}]),ca(xM,"director",[{name:"_getSceneUuid",targetName:"assetManager.main",newName:"getSceneInfo",customFunction:function(e){var t;return tT.main?null==(t=tT.main.getSceneInfo(e))?void 0:t.uuid:""}}]),la(qM,"game",[{name:"collisionMatrix"},{name:"groupList"}]),ca(qM,"game",[{name:"_sceneInfos",targetName:"assetManager.main",newName:"getSceneInfo",customGetter:function(){var e=[];return tT.main&&tT.main.config.scenes.forEach((function(t){e.push(t)})),e}}]);var YM=1,KM=-4192741,QM=[];function ZM(e){return"function"==typeof e._instantiate}function JM(e){var t;if(Ln(e)){if(ZM(e))return o.game._isCloning=!0,t=e._instantiate(null,!0),o.game._isCloning=!1,t;if(e instanceof o.Asset)throw new TypeError(te(6903))}return o.game._isCloning=!0,t=$M(e),o.game._isCloning=!1,t}function $M(e,t){var n;tF(e,n=e._iN$t?e._iN$t:e.constructor?new(0,e.constructor):Object.create(null),t);for(var i=0,r=QM.length;i0&&(e.extensions.useVAO&&i.glVAO&&(e.extensions.OES_vertex_array_object.bindVertexArrayOES(null),i.glVAO=null),PF.gpuInputAssembler=null,i.glArrayBuffer!==t.glBuffer&&(n.bindBuffer(34962,t.glBuffer),i.glArrayBuffer=t.glBuffer),n.bufferData(34962,t.size,r),n.bindBuffer(34962,null),i.glArrayBuffer=null))}else if(4&t.usage){t.glTarget=34963;var a=n.createBuffer();a&&(t.glBuffer=a,t.size>0&&(e.extensions.useVAO&&i.glVAO&&(e.extensions.OES_vertex_array_object.bindVertexArrayOES(null),i.glVAO=null),PF.gpuInputAssembler=null,i.glElementArrayBuffer!==t.glBuffer&&(n.bindBuffer(34963,t.glBuffer),i.glElementArrayBuffer=t.glBuffer),n.bufferData(34963,t.size,r),n.bindBuffer(34963,null),i.glElementArrayBuffer=null))}else 16&t.usage?(t.glTarget=0,t.buffer&&(t.vf32=new Float32Array(t.buffer.buffer))):(64&t.usage||2&t.usage||1&t.usage||Z(16315),t.glTarget=0)}function SF(e,t){var n=e.gl,i=e.stateCache;if(t.glBuffer){switch(t.glTarget){case 34962:e.extensions.useVAO&&i.glVAO&&(e.extensions.OES_vertex_array_object.bindVertexArrayOES(null),i.glVAO=null),PF.gpuInputAssembler=null,n.bindBuffer(34962,null),i.glArrayBuffer=null;break;case 34963:e.extensions.useVAO&&i.glVAO&&(e.extensions.OES_vertex_array_object.bindVertexArrayOES(null),i.glVAO=null),PF.gpuInputAssembler=null,n.bindBuffer(34963,null),i.glElementArrayBuffer=null}n.deleteBuffer(t.glBuffer),t.glBuffer=null}}function xF(e,t,n,i,r){if(16&t.usage)ArrayBuffer.isView(n)?t.vf32.set(n,i/4):t.vf32.set(new Float32Array(n),i/4);else if(64&t.usage){t.indirects.clearDraws();for(var s=n.drawInfos,a=0;ae.capabilities.maxTextureSize&&Z(9100,a,e.capabilities.maxTextureSize),e.textureExclusive[t.format]||e.extensions.WEBGL_depth_texture||!Ts[t.format].hasDepth){if(t.glTexture=n.createTexture(),t.size>0){var o=i.glTexUnits[i.texUnit];if(o.glTexture!==t.glTexture&&(n.bindTexture(3553,t.glTexture),o.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var u=0;u>1),s=uF(1,s>>1)}else for(var l=0;l>1),s=uF(1,s>>1);t.isPowerOf2?(t.glWrapS=10497,t.glWrapT=10497):(t.glWrapS=33071,t.glWrapT=33071),t.glMinFilter=9729,t.glMagFilter=9729,n.texParameteri(t.glTarget,10242,t.glWrapS),n.texParameteri(t.glTarget,10243,t.glWrapT),n.texParameteri(t.glTarget,10241,t.glMinFilter),n.texParameteri(t.glTarget,10240,t.glMagFilter)}}else t.glInternalFmt=lF(t.format),t.glRenderbuffer=n.createRenderbuffer(),t.size>0&&(i.glRenderbuffer!==t.glRenderbuffer&&(n.bindRenderbuffer(36161,t.glRenderbuffer),i.glRenderbuffer=t.glRenderbuffer),n.renderbufferStorage(36161,t.glInternalFmt,r,s));break;case 3:t.glTarget=34067;var f=uF(r,s);if(f>e.capabilities.maxCubeMapTextureSize&&Z(9100,f,e.capabilities.maxTextureSize),t.glTexture=n.createTexture(),t.size>0){var d=i.glTexUnits[i.texUnit];if(d.glTexture!==t.glTexture&&(n.bindTexture(34067,t.glTexture),d.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var p=0;p<6;++p){r=t.width,s=t.height;for(var _=0;_>1),s=uF(1,s>>1)}}else for(var v=0;v<6;++v){r=t.width,s=t.height;for(var y=0;y>1),s=uF(1,s>>1)}t.isPowerOf2?(t.glWrapS=10497,t.glWrapT=10497):(t.glWrapS=33071,t.glWrapT=33071),t.glMinFilter=9729,t.glMagFilter=9729,n.texParameteri(t.glTarget,10242,t.glWrapS),n.texParameteri(t.glTarget,10243,t.glWrapT),n.texParameteri(t.glTarget,10241,t.glMinFilter),n.texParameteri(t.glTarget,10240,t.glMagFilter)}break;default:Z(16317),t.type=1,t.glTarget=3553}}function IF(e,t){var n=e.gl,i=e.stateCache;if(t.glTexture){var r=i.glTexUnits,s=i.texUnit;n.deleteTexture(t.glTexture);for(var a=0;ae.capabilities.maxTextureSize&&Z(9100,a,e.capabilities.maxTextureSize),t.glRenderbuffer)i.glRenderbuffer!==t.glRenderbuffer&&(n.bindRenderbuffer(36161,t.glRenderbuffer),i.glRenderbuffer=t.glRenderbuffer),n.renderbufferStorage(36161,t.glInternalFmt,r,s);else if(t.glTexture){var o=i.glTexUnits[i.texUnit];if(o.glTexture!==t.glTexture&&(n.bindTexture(3553,t.glTexture),o.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var u=0;u>1),s=uF(1,s>>1)}else for(var l=0;l>1),s=uF(1,s>>1)}break;case 3:t.glTarget=34067;var f=uF(r,s);f>e.capabilities.maxCubeMapTextureSize&&Z(9100,f,e.capabilities.maxTextureSize);var d=i.glTexUnits[i.texUnit];if(d.glTexture!==t.glTexture&&(n.bindTexture(34067,t.glTexture),d.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var p=0;p<6;++p){r=t.width,s=t.height;for(var _=0;_>1),s=uF(1,s>>1)}}else for(var v=0;v<6;++v){r=t.width,s=t.height;for(var y=0;y>1),s=uF(1,s>>1)}break;default:Z(16317),t.type=1,t.glTarget=3553}}}function RF(e,t){for(var n=0;n0){t.glBlocks=new Array(t.blocks.length);for(var x=0;x0){t.glSamplerTextures=new Array(t.samplerTextures.length);for(var M=0;M=0&&A.gpuDescriptors[R],O=null,B=0;if(C&&C.gpuBuffer){var D=C.gpuBuffer,P=x[I.set],M=P&&P[I.binding];M>=0&&(B=r[M]),"vf32"in D?O=D.vf32:(B+=D.offset,O=D.gpuBuffer.vf32),B>>=2}if(O)for(var F=I.glActiveUniforms.length,L=0;L=0&&Be.gpuDescriptors[De],Me=Oe.units.length,Fe=0;Fe0){var Ne=Pe.gpuTexture,ke=h.glTexUnits[Le];ke.glTexture!==Ne.glTexture&&(h.texUnit!==Le&&(c.activeTexture(33984+Le),h.texUnit=Le),Ne.glTexture?c.bindTexture(Ne.glTarget,Ne.glTexture):c.bindTexture(Ne.glTarget,e.nullTex2D.gpuTexture.glTexture),ke.glTexture=Ne.glTexture);var ze=Pe.gpuSampler;Ne.isPowerOf2?(a=ze.glWrapS,o=ze.glWrapT):(a=33071,o=33071),u=Ne.isPowerOf2?Ne.mipLevel<=1&&(9985===ze.glMinFilter||9987===ze.glMinFilter)?9729:ze.glMinFilter:9729===ze.glMinFilter||9985===ze.glMinFilter||9987===ze.glMinFilter?9729:9728,Ne.glWrapS!==a&&(h.texUnit!==Le&&(c.activeTexture(33984+Le),h.texUnit=Le),c.texParameteri(Ne.glTarget,10242,a),Ne.glWrapS=a),Ne.glWrapT!==o&&(h.texUnit!==Le&&(c.activeTexture(33984+Le),h.texUnit=Le),c.texParameteri(Ne.glTarget,10243,o),Ne.glWrapT=o),Ne.glMinFilter!==u&&(h.texUnit!==Le&&(c.activeTexture(33984+Le),h.texUnit=Le),c.texParameteri(Ne.glTarget,10241,u),Ne.glMinFilter=u),Ne.glMagFilter!==ze.glMagFilter&&(h.texUnit!==Le&&(c.activeTexture(33984+Le),h.texUnit=Le),c.texParameteri(Ne.glTarget,10240,ze.glMagFilter),Ne.glMagFilter=ze.glMagFilter)}Pe=Be.gpuDescriptors[++De]}}}if(n&&d&&(p||PF.gpuInputAssembler!==n)){PF.gpuInputAssembler=n;var Ue=e.extensions.ANGLE_instanced_arrays;if(e.extensions.useVAO){var Ge=e.extensions.OES_vertex_array_object,Ve=n.glVAOs.get(d.glProgram);if(!Ve){var He;Ve=Ge.createVertexArrayOES(),n.glVAOs.set(d.glProgram,Ve),Ge.bindVertexArrayOES(Ve),c.bindBuffer(34962,null),c.bindBuffer(34963,null),h.glArrayBuffer=null,h.glElementArrayBuffer=null;for(var We=d.glInputs.length,je=0;je=0&&(c.enableVertexAttribArray(ct),h.glEnabledAttribLocs[ct]=!0),h.glCurrentAttribLocs[ct]=!0,c.vertexAttribPointer(ct,rt.count,rt.glType,rt.isNormalized,rt.stride,ht),Ue&&Ue.vertexAttribDivisorANGLE(ct,rt.isInstanced?1:0)}}}var lt=n.gpuIndexBuffer;lt&&h.glElementArrayBuffer!==lt.glBuffer&&(c.bindBuffer(34963,lt.glBuffer),h.glElementArrayBuffer=lt.glBuffer);for(var ft=0;ft0){var d=t.firstIndex*u.stride;r.drawElementsInstancedANGLE(o,t.indexCount,a.glIndexType,d,t.instanceCount)}}else t.vertexCount>0&&r.drawArraysInstancedANGLE(o,t.firstVertex,t.vertexCount,t.instanceCount);else if(u){if(t.indexCount>0){var p=t.firstIndex*u.stride;n.drawElements(o,t.indexCount,a.glIndexType,p)}}else t.vertexCount>0&&n.drawArrays(o,t.firstVertex,t.vertexCount)}}function kF(e,t,n,i){var r=e.gl,s=e.stateCache,a=s.glTexUnits[s.texUnit];a.glTexture!==n.glTexture&&(r.bindTexture(n.glTarget,n.glTexture),a.glTexture=n.glTexture);var o=0,u=0;switch(n.glTarget){case 3553:for(var c=0;c0?E:d.width,_.height=g.buffTexHeight>0?g.buffTexHeight:d.height;var I=w+p.x===n.width>>v?w:d.width,A=T+p.y===n.height>>v?T:d.height,R=void 0,C=t[o++];if(_.width===d.width&&_.height===d.height){var O=As(n.format,I,A,1)/h.BYTES_PER_ELEMENT;$(Number.isInteger(O),9101),R=new h(C.buffer,C.byteOffset+g.buffOffset,O)}else R=UF(C,n.format,g.buffOffset,_,d);l?36196===n.glInternalFmt||e.extensions.noCompressedTexSubImage2D?r.compressedTexImage2D(3553,v,n.glInternalFmt,I,A,0,R):r.compressedTexSubImage2D(3553,v,p.x,p.y,I,A,n.glFormat,R):r.texSubImage2D(3553,v,p.x,p.y,I,A,n.glFormat,n.glType,R)}break;case 34067:for(var B=0;B0?D.buffStride:d.width,_.height=D.buffTexHeight>0?D.buffTexHeight:d.height;var G=N+p.x===n.width>>P?N:d.width,V=k+p.y===n.height>>P?k:d.height,H=L.baseArrayLayer+L.layerCount;for(u=L.baseArrayLayer;u0,this.instancedDraw=!!t.instanceCount,this.drawCount=Math.max(e+1,this.drawCount),this.drawByIndex?(this.counts[e]=t.indexCount,this.offsets[e]=t.firstIndex):(this.counts[e]=t.vertexCount,this.offsets[e]=t.firstVertex),this.instances[e]=Math.max(1,t.instanceCount)},t._ensureCapacity=function(e){if(!(this._capacity>e)){this._capacity=ce(e);var t=jF(this._capacity),n=jF(this._capacity),i=jF(this._capacity);this.byteOffsets=jF(this._capacity),t.set(this.counts),n.set(this.offsets),i.set(this.instances),this.counts=t,this.offsets=n,this.instances=i}},e}(),qF=function(){function e(){this._gpuShader=null,this._gpuDescriptorSetLayout=null,this._gpuPipelineLayout=null,this._gpuPipelineState=null,this._gpuVertexBuffer=null,this._gpuInputAssembler=null,this._gpuPointSampler=null,this._gpuLinearSampler=null,this._gpuDescriptorSet=null,this._gpuUniformBuffer=null,this._drawInfo=null,this._glFramebuffer=null,this._uniformBuffer=null;var e=WF.instance.bindingMappingInfo.maxBlockCounts[0];this._gpuShader={name:"Blit Pass",blocks:[new kr(0,0,"BlitParams",[new Nr("tilingOffsetSrc",16,1),new Nr("tilingOffsetDst",16,1)],1)],samplerTextures:[new zr(0,e,"textureSrc",28,1)],subpassInputs:[],gpuStages:[{type:1,source:"\nprecision mediump float;\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 tilingOffsetSrc;\nuniform vec4 tilingOffsetDst;\nvarying vec2 v_texCoord;\nvoid main() {\n v_texCoord = a_texCoord * tilingOffsetSrc.xy + tilingOffsetSrc.zw;\n gl_Position = vec4((a_position + 1.0) * tilingOffsetDst.xy - 1.0 + tilingOffsetDst.zw * 2.0, 0, 1);\n}",glShader:null},{type:16,source:"\nprecision mediump float;\nuniform sampler2D textureSrc;\nvarying vec2 v_texCoord;\nvoid main() {\n gl_FragColor = texture2D(textureSrc, v_texCoord);\n}",glShader:null}],glProgram:null,glInputs:[],glUniforms:[],glBlocks:[],glSamplerTextures:[]},CF(WF.instance,this._gpuShader),this._gpuDescriptorSetLayout={bindings:[new ss(0,1,1,1),new ss(e,16,1,16)],dynamicBindings:[],descriptorIndices:[],descriptorCount:e+1};for(var t=0;t0&&(this._uniformBuffer=new Uint8Array(this._size)),this._gpuBuffer={usage:this._usage,memUsage:this._memUsage,size:this._size,stride:this._stride,buffer:null,vf32:null,indirects:new XF,glTarget:0,glBuffer:null},16&this._usage&&(this._gpuBuffer.buffer=this._uniformBuffer),TF(WF.instance,this._gpuBuffer),WF.instance.memoryStatus.bufferSize+=this._size},n.destroy=function(){this._gpuBuffer&&(SF(WF.instance,this._gpuBuffer),WF.instance.memoryStatus.bufferSize-=this._size,this._gpuBuffer=null),this._gpuBufferView&&(this._gpuBufferView=null)},n.resize=function(e){if(this._isBufferView)K(16379);else{var t,n,i,r,s,a=this._size;a!==e&&(this._size=e,this._count=this._size/this._stride,this._uniformBuffer&&(this._uniformBuffer=new Uint8Array(e)),this._gpuBuffer&&(this._uniformBuffer&&(this._gpuBuffer.buffer=this._uniformBuffer),this._gpuBuffer.size=e,e>0&&(t=WF.instance,n=this._gpuBuffer,i=t.gl,r=t.stateCache,s=2&n.memUsage?35048:35044,8&n.usage?(t.extensions.useVAO&&r.glVAO&&(t.extensions.OES_vertex_array_object.bindVertexArrayOES(null),r.glVAO=null),PF.gpuInputAssembler=null,r.glArrayBuffer!==n.glBuffer&&i.bindBuffer(34962,n.glBuffer),n.buffer?i.bufferData(34962,n.buffer,s):i.bufferData(34962,n.size,s),i.bindBuffer(34962,null),r.glArrayBuffer=null):4&n.usage?(t.extensions.useVAO&&r.glVAO&&(t.extensions.OES_vertex_array_object.bindVertexArrayOES(null),r.glVAO=null),PF.gpuInputAssembler=null,r.glElementArrayBuffer!==n.glBuffer&&i.bindBuffer(34963,n.glBuffer),n.buffer?i.bufferData(34963,n.buffer,s):i.bufferData(34963,n.size,s),i.bindBuffer(34963,null),r.glElementArrayBuffer=null):16&n.usage?n.buffer&&(n.vf32=new Float32Array(n.buffer.buffer)):(64&n.usage||2&n.usage||1&n.usage||Z(16315),n.glTarget=0),WF.instance.memoryStatus.bufferSize-=a,WF.instance.memoryStatus.bufferSize+=e)))}},n.update=function(e,t){var n;this._isBufferView?K(16380):(n=void 0!==t?t:64&this._usage?0:e.byteLength,xF(WF.instance,this._gpuBuffer,e,0,n))},f(t,[{key:"gpuBuffer",get:function(){return this._gpuBuffer}},{key:"gpuBufferView",get:function(){return this._gpuBufferView}}]),t}(Fs),KF=function(e){function t(){var t;return(t=e.call(this)||this)._isInRenderPass=!1,t._curGPUPipelineState=null,t._curGPUInputAssembler=null,t._curGPUDescriptorSets=[],t._curDynamicOffsets=Array(8).fill(0),t._curDynamicStates=new ms,t._isStateInvalied=!1,t}p(t,e);var n=t.prototype;return n.initialize=function(e){this._type=e.type,this._queue=e.queue;for(var t=WF.instance.bindingMappings.blockOffsets.length,n=0;n0?this.gpuColorTextures[0].width:this.gpuDepthStencilTexture?this.gpuDepthStencilTexture.width:c},set width(e){c=e},get height(){return this.gpuColorTextures.length>0?this.gpuColorTextures[0].height:this.gpuDepthStencilTexture?this.gpuDepthStencilTexture.height:h},set height(e){h=e},lodLevel:r},RF(WF.instance,this._gpuFramebuffer),this._gpuFramebuffer.gpuColorTextures.forEach((function(e){return n._gpuColorTextures.push(e.glTexture)})),this._gpuDepthStencilTexture=null==(t=this._gpuFramebuffer.gpuDepthStencilTexture)?void 0:t.glTexture,this._width=this._gpuFramebuffer.width,this._height=this._gpuFramebuffer.height},t.destroy=function(){var e,t,n,i;this._gpuFramebuffer&&(e=WF.instance,t=this._gpuFramebuffer,n=e.gl,i=e.stateCache,t.glFramebuffer&&(n.deleteFramebuffer(t.glFramebuffer),i.glFramebuffer===t.glFramebuffer&&(n.bindFramebuffer(36160,null),i.glFramebuffer=null),t.glFramebuffer=null),this._gpuFramebuffer=null,this._gpuColorTextures.length=0,this._gpuDepthStencilTexture=null)},f(n,[{key:"needRebuild",get:function(){var e=this._gpuFramebuffer;if(e){for(var t,n=0;nn&&(n=s.binding)}this._bindingIndices=Array(n+1).fill(-1);for(var a=this._descriptorIndices=Array(n+1).fill(-1),o=0;o1&&(s.levelCount=Math.min(s.levelCount,t.getLevelCount(e,n)));var a=i._size;s.width=e,s.height=n,i._size=Rs(s.format,i.width,i.height,i.depth,s.levelCount)*s.layerCount;var o=i._gpuTexture;!i._isTextureView&&o&&(o.width=e,o.height=n,o.size=i._size,o.isSwapchainTexture||(AF(r,o),r.memoryStatus.textureSize-=a,r.memoryStatus.textureSize+=i._size))}},n.initAsSwapchainTexture=function(e){var t=new Mr;t.format=e.format,t.usage=Ts[e.format].hasDepth?32:16,t.width=e.width,t.height=e.height,this.initialize(t,!0)},f(t,[{key:"gpuTexture",get:function(){return this._gpuTexture}},{key:"lodLevel",get:function(){return this._lodLevel}}]),t}(ra),hL="webglcontextlost";function lL(e){e.activeTexture(33984),e.pixelStorei(3333,1),e.pixelStorei(3317,1),e.pixelStorei(37440,!1),e.bindFramebuffer(36160,null),e.enable(3089),e.enable(2884),e.cullFace(1029),e.frontFace(2305),e.disable(32823),e.polygonOffset(0,0),e.enable(2929),e.depthMask(!0),e.depthFunc(513),e.depthRange(0,1),e.stencilFuncSeparate(1028,519,1,65535),e.stencilOpSeparate(1028,7680,7680,7680),e.stencilMaskSeparate(1028,65535),e.stencilFuncSeparate(1029,519,1,65535),e.stencilOpSeparate(1029,7680,7680,7680),e.stencilMaskSeparate(1029,65535),e.disable(2960),e.disable(32926),e.disable(3042),e.blendEquationSeparate(32774,32774),e.blendFuncSeparate(1,0,1,0),e.colorMask(!0,!0,!0,!0),e.blendColor(0,0,0,0)}function fL(e,t){for(var n=["","WEBKIT_","MOZ_"],i=0;i=0;u--){var c=r.array[u];if(c){var h=c.model;h&&h.enabled&&h.node&&((o&h.node.layer)===h.node.layer||o&h.visFlags)&&h.worldBounds&&h.castShadow?Oh.aabbFrustum(h.worldBounds,s)&&(a.push(c),n.level>3)]+=(u.isCompositeModeEnabled(h)?1:0)*Math.pow(10,l)}r[19]+=(u.lightingWithAlbedo?1:0)*Math.pow(10,6),r[19]+=(u.csmLayerColoration?1:0)*Math.pow(10,7)}},e.updateCameraUBOView=function(e,t,n){var i,r=(n.scene?n.scene:o.director.getScene().renderScene).mainLight,s=e.pipelineSceneData,a=s.ambient,u=s.skybox,c=s.fog,h=s.shadows,l=t,f=n.exposure,d=s.isHDR;if(l[104]=s.shadingScale,l[105]=s.shadingScale,l[106]=1/l[104],l[107]=1/l[105],l[108]=f,l[109]=1/f,l[110]=d?1:0,l[111]=1/Bg.standardExposureValue,r){var p=r.shadowEnabled&&h.type===AS.ShadowMap?1:0,_=r.direction;if(GL.set(_.x,_.y,_.z,p),WL(l,GL,112),Fo.toArray(l,r.color,116),r.useColorTemperature){var m=r.colorTemperatureRGB;l[116]*=m.x,l[117]*=m.y,l[118]*=m.z}l[119]=d?r.illuminance*f:r.illuminance}else GL.set(0,0,1,0),WL(l,GL,112),WL(l,go.ZERO,116);var g=a.skyColor;g.w=d?a.skyIllum*f:a.skyIllum,l[120]=g.x,l[121]=g.y,l[122]=g.z,l[123]=g.w,l[124]=a.groundAlbedo.x,l[125]=a.groundAlbedo.y,l[126]=a.groundAlbedo.z,l[127]=u.envmap?null==(i=u.envmap)?void 0:i.mipmapLevel:1,HL(l,n.matView,0),HL(l,n.node.worldMatrix,16),Fo.toArray(l,n.position,96),HL(l,n.matProj,32),HL(l,n.matProjInv,48),HL(l,n.matViewProj,64),HL(l,n.matViewProjInv,80),l[99]=this.getCombineSignY(),l[100]=n.surfaceTransform,l[101]=n.cameraUsage,l[102]=Math.cos(Fa(s.skybox.getRotationAngle())),l[103]=Math.sin(Fa(s.skybox.getRotationAngle()));var v=c.colorArray;l[128]=v.x,l[129]=v.y,l[130]=v.z,l[131]=v.z,l[132]=c.fogStart,l[133]=c.fogEnd,l[134]=c.fogDensity,l[136]=c.fogTop,l[137]=c.fogRange,l[138]=c.fogAtten,l[140]=n.nearClip,l[141]=n.farClip,l[142]=n.getClipSpaceMinz(),l[144]=s.shadingScale*n.window.width*n.viewport.x,l[145]=s.shadingScale*n.window.height*n.viewport.y,l[146]=s.shadingScale*n.window.width*n.viewport.z,l[147]=s.shadingScale*n.window.height*n.viewport.w},e.getPCFRadius=function(e,t){var n=e.size.x;switch(t.shadowPcf){case RS.HARD:return 0;case RS.SOFT:return 1/(.5*n);case RS.SOFT_2X:return 2/(.5*n);case RS.SOFT_4X:return 3/(.5*n)}return 0},e.updatePlanarNormalAndDistance=function(e,t){Fo.normalize(VL,e.normal),t[60]=VL.x,t[61]=VL.y,t[62]=VL.z,t[63]=-e.distance},e.updateShadowUBOView=function(t,n,i,r){var s=t.device,a=r.scene.mainLight,o=t.pipelineSceneData,u=o.shadows,c=o.csmLayers,h=n,l=i,f=o.csmSupported,d=mg(s)?0:1;if(a&&u.enabled){if(u.type===AS.ShadowMap){if(a.shadowEnabled){if(a.shadowFixedArea||a.csmLevel===CS.LEVEL_1||!f){var p=c.specialLayer.matShadowView,_=c.specialLayer.matShadowProj,m=c.specialLayer.matShadowViewProj,g=.1,v=0,y=0;a.shadowFixedArea?(g=a.shadowNear,v=a.shadowFar,y=0):(v=c.specialLayer.shadowCameraFar,y=1),HL(h,p,0),h[36]=_.m10,h[37]=_.m14,h[38]=_.m11,h[39]=_.m15,h[40]=_.m00,h[41]=_.m05,h[42]=1/_.m00,h[43]=1/_.m05,HL(h,m,16),UL.set(g,v,0,1-a.shadowSaturation),WL(h,UL,44),UL.set(0,d,a.shadowNormalBias,y),WL(h,UL,52)}else{for(var b=this.getPCFRadius(u,a),w=0;w0){var o=a;a=s,s=o}var u=0;switch(e){case 0:u=0,n[u++]=-1,n[u++]=-1,n[u++]=i,n[u++]=a,n[u++]=1,n[u++]=-1,n[u++]=r,n[u++]=a,n[u++]=-1,n[u++]=1,n[u++]=i,n[u++]=s,n[u++]=1,n[u++]=1,n[u++]=r,n[u++]=s;break;case 1:u=0,n[u++]=-1,n[u++]=-1,n[u++]=r,n[u++]=a,n[u++]=1,n[u++]=-1,n[u++]=r,n[u++]=s,n[u++]=-1,n[u++]=1,n[u++]=i,n[u++]=a,n[u++]=1,n[u++]=1,n[u++]=i,n[u++]=s;break;case 2:u=0,n[u++]=-1,n[u++]=-1,n[u++]=i,n[u++]=s,n[u++]=1,n[u++]=-1,n[u++]=r,n[u++]=s,n[u++]=-1,n[u++]=1,n[u++]=i,n[u++]=a,n[u++]=1,n[u++]=1,n[u++]=r,n[u++]=a;break;case 3:u=0,n[u++]=-1,n[u++]=-1,n[u++]=i,n[u++]=s,n[u++]=1,n[u++]=-1,n[u++]=i,n[u++]=a,n[u++]=-1,n[u++]=1,n[u++]=r,n[u++]=s,n[u++]=1,n[u++]=1,n[u++]=r,n[u++]=a}return n},n._createQuadInputAssembler=function(){var e=new qx,t=this._device.createBuffer(new Cr(10,3,64,16));if(!t)return e;var n=this._device.createBuffer(new Cr(6,1,6,1));if(!n)return e;var i=new Uint8Array(6);i[0]=0,i[1]=1,i[2]=2,i[3]=1,i[4]=3,i[5]=2,n.update(i);var r=new Array(2);r[0]=new Xr("a_position",21),r[1]=new Xr("a_texCoord",21);var s=this._device.createInputAssembler(new Yr(r,[t],n));return e.quadIB=n,e.quadVB=t,e.quadIA=s,e},n.updateQuadVertexData=function(e,t){var n=this._lastUsedRenderArea;if(n.x!==e.x||n.y!==e.y||n.width!==e.width||n.height!==e.height){var i=this._genQuadVertexData(0,e);this._quadVBOffscreen.update(i);var r=this._genQuadVertexData(t.swapchain&&t.swapchain.surfaceTransform||0,e);this._quadVBOnscreen.update(r),n.copy(e)}},n.destroy=function(){for(var t,n,i=0;i>1,r>>1)),e.prefilterFramebuffer=t.createFramebuffer(new rs(e.renderPass,[e.prefiterTex])),i>>=1,r>>=1;for(var s=0;s<6;++s)e.downsampleTexs.push(t.createTexture(new Mr(1,20,35,i>>1,r>>1))),e.downsampleFramebuffers[s]=t.createFramebuffer(new rs(e.renderPass,[e.downsampleTexs[s]])),e.upsampleTexs.push(t.createTexture(new Mr(1,20,35,i,r))),e.upsampleFramebuffers[s]=t.createFramebuffer(new rs(e.renderPass,[e.upsampleTexs[s]])),i>>=1,r>>=1;e.combineTex=t.createTexture(new Mr(1,20,35,this._width,this._height)),e.combineFramebuffer=t.createFramebuffer(new rs(e.renderPass,[e.combineTex])),e.sampler=this.globalDSManager.linearSampler}},n.on=function(e,t,n,i){return this._eventProcessor.on(e,t,n,i)},n.once=function(e,t,n){return this._eventProcessor.once(e,t,n)},n.off=function(e,t,n){this._eventProcessor.off(e,t,n)},n.emit=function(e,t,n,i,r,s){this._eventProcessor.emit(e,t,n,i,r,s)},n.targetOff=function(e){this._eventProcessor.targetOff(e)},n.removeAll=function(e){this._eventProcessor.removeAll(e)},n.hasEventListener=function(e,t,n){return this._eventProcessor.hasEventListener(e,t,n)},f(t,[{key:"tag",get:function(){return this._tag}},{key:"flows",get:function(){return this._flows}},{key:"quadIAOnscreen",get:function(){return this._quadIAOnscreen}},{key:"quadIAOffscreen",get:function(){return this._quadIAOffscreen}},{key:"constantMacros",get:function(){return this._constantMacros}},{key:"macros",get:function(){return this._macros}},{key:"device",get:function(){return this._device}},{key:"globalDSManager",get:function(){return this._globalDSManager}},{key:"descriptorSetLayout",get:function(){return this._globalDSManager.descriptorSetLayout}},{key:"descriptorSet",get:function(){return this._descriptorSet}},{key:"commandBuffers",get:function(){return this._commandBuffers}},{key:"pipelineUBO",get:function(){return this._pipelineUBO}},{key:"pipelineSceneData",get:function(){return this._pipelineSceneData}},{key:"profiler",get:function(){return this._profiler},set:function(e){this._profiler=e}},{key:"geometryRenderer",get:function(){return this._geometryRenderer}},{key:"clusterEnabled",get:function(){return this._clusterEnabled},set:function(e){this._clusterEnabled=e}},{key:"bloomEnabled",get:function(){return this._bloomEnabled},set:function(e){this._bloomEnabled=e}},{key:"shadingScale",get:function(){return this._pipelineSceneData.shadingScale},set:function(e){this._pipelineSceneData.shadingScale!==e&&(this._pipelineSceneData.shadingScale=e,this.emit("attachment-scale-changed",e))}}]),t}(hv),aN=El(sN.prototype,"_tag",[Yl],(function(){return 0})),oN=El(sN.prototype,"_flows",[iN,Yl],(function(){return[]})),rN=sN))||rN));function pN(e,t){return e.hash-t.hash||e.depth-t.depth||e.shaderId-t.shaderId}function _N(e,t){return e.priority-t.priority||e.hash-t.hash||t.depth-e.depth||e.shaderId-t.shaderId}o.RenderPipeline=dN,la(dN.prototype,"RenderPipeline.prototype",[{name:"geometryRenderer",suggest:"please use camera.geometryRenderer instead."}]);var mN=function(){function e(e){this._passDesc=e,this._passPool=new Se((function(){return{priority:0,hash:0,depth:0,shaderId:0,subModel:null,passIdx:0}}),64),this.queue=new xe(64,this._passDesc.sortFunc)}var t=e.prototype;return t.clear=function(){this.queue.clear(),this._passPool.reset()},t.insertRenderPass=function(e,t,n){var i=e.model.subModels[t],r=i.passes[n],s=i.shaders[n];if(r.blendState.targets[0].blend!==this._passDesc.isTransparent||!(r.phase&this._passDesc.phases))return!1;var a=r.priority<<16|i.priority<<8|n,o=this._passPool.add();return o.priority=e.model.priority,o.hash=a,o.depth=e.depth||0,o.shaderId=s.typedID,o.subModel=i,o.passIdx=n,this.queue.push(o),!0},t.sort=function(){this.queue.sort()},t.recordCommandBuffer=function(e,t,n){for(var i=0;i0)))for(var a=0;athis._lightBufferCount&&(this._firstLightBufferView.destroy(),this._lightBufferCount=Wa(a.length),this._lightBuffer.resize(this._lightBufferStride*this._lightBufferCount),this._lightBufferData=new Float32Array(this._lightBufferElementCount*this._lightBufferCount),this._firstLightBufferView=D_.gfxDevice.createBuffer(new Or(this._lightBuffer,0,80)));for(var o=0,u=0;o-1&&this.additiveInstanceQueues.splice(t,1)},n.initialize=function(t){return e.prototype.initialize.call(this,t),t.renderQueues&&(this.renderQueues=t.renderQueues),!0},n.activate=function(t,n){e.prototype.activate.call(this,t,n);for(var i=0;i0?.5*(1-Math.floor(a/2))*u.y:.5*Math.floor(a/2)*u.y,this._renderArea.width=.5*u.x,this._renderArea.height=.5*u.y}break;case 2:this._renderArea.x=0,this._renderArea.y=0,this._renderArea.width=u.x,this._renderArea.height=u.y}var l=this._shadowFrameBuffer.renderPass;s.beginRenderPass(l,this._shadowFrameBuffer,this._renderArea,Nz,e.clearDepth,e.clearStencil),s.bindDescriptorSet(0,r),this._additiveShadowQueue.recordCommandBuffer(o,l,s),s.endRenderPass(),this._isShadowMapCleared=!1}},n.activate=function(t,n){e.prototype.activate.call(this,t,n),this._additiveShadowQueue=new Lz(t),this._isShadowMapCleared=!1},t}(tN),Pz.initInfo={name:"ShadowStage",priority:10,tag:0},Dz=Pz))||Dz),zz=[],Uz=e("ShadowFlow",Fl("ShadowFlow")((Fz=function(e){function t(){var t;return(t=e.call(this)||this)._shadowRenderPass=null,t}p(t,e);var n=t.prototype;return n.initialize=function(t){if(e.prototype.initialize.call(this,t),0===this._stages.length){var n=new kz;n.initialize(kz.initInfo),this._stages.push(n)}return!0},n.activate=function(t){e.prototype.activate.call(this,t);var n=mg(t.device)?0:1;t.macros.CC_SHADOWMAP_FORMAT=n;var i=6===t.device.gfxAPI?1:0;t.macros.CC_SHADOWMAP_USE_LINEAR_DEPTH=i,t.pipelineSceneData.csmSupported=t.device.capabilities.maxFragmentUniformVectors>=99,t.macros.CC_SUPPORT_CASCADED_SHADOW_MAP=t.pipelineSceneData.csmSupported,t.macros.CC_SHADOW_TYPE=0,t.macros.CC_DIR_SHADOW_PCF_TYPE=RS.HARD,t.macros.CC_DIR_LIGHT_SHADOW_TYPE=0,t.macros.CC_CASCADED_LAYERS_TRANSITION=0,t.onGlobalPipelineStateChanged()},n.render=function(e){var t=this._pipeline,n=t.pipelineSceneData.shadows,i=t.pipelineSceneData.csmLayers,r=t.pipelineSceneData.shadowFrameBufferMap,s=i.castShadowObjects,a=this._pipeline.pipelineSceneData.validPunctualLights;if(n.enabled&&n.type===AS.ShadowMap){for(var o=0,u=0;o0){this._renderQueues.forEach(yN);for(var T=0;T0&&(this._stageDesc||(this._stageDesc=n.createDescriptorSet(new os(c.localSetLayout)),this._localUBO=n.createBuffer(new Cr(18,1,224,224)),this._stageDesc.bindBuffer(0,this._localUBO)),this._stageDesc.update(),r.bindPipelineState(f),r.bindDescriptorSet(1,c.descriptorSet),r.bindDescriptorSet(2,this._stageDesc),r.bindInputAssembler(l),r.draw(l)),this._uiPhase.render(e,u),SS(n,u,r,t.profiler,e),r.endRenderPass()},t}(tN),AU.initInfo={name:"PostProcessStage",priority:19,tag:0},EU=El((xU=AU).prototype,"_postProcessMaterial",[wU,Yl],(function(){return null})),IU=El(xU.prototype,"renderQueues",[TU,Yl],(function(){return[]})),SU=xU))||SU)),jU=function(e){function t(){var t;return(t=e.call(this)||this)._antiAliasing=0,t}p(t,e);var n=t.prototype;return n.updatePipelineSceneData=function(){this.updatePipelinePassInfo()},n.updateBloomPass=function(){if(this._bloomMaterial){var e=this._bloomMaterial.passes[0];e.beginChangeStatesSilently(),e.tryCompile(),e.endChangeStatesSilently();for(var t=0;t<6;++t){var n=this._bloomMaterial.passes[1+t];n.beginChangeStatesSilently(),n.tryCompile(),n.endChangeStatesSilently();var i=this._bloomMaterial.passes[7+t];i.beginChangeStatesSilently(),i.tryCompile(),i.endChangeStatesSilently()}var r=this._bloomMaterial.passes[13];r.beginChangeStatesSilently(),r.tryCompile(),r.endChangeStatesSilently()}},n.updatePostProcessPass=function(){if(this.postprocessMaterial){var e=this.postprocessMaterial.passes[0];e.beginChangeStatesSilently(),e.tryCompile(),e.endChangeStatesSilently()}},n.initPipelinePassInfo=function(){var e=new ES;e._uuid="builtin-deferred-material",e.initialize({effectName:"pipeline/deferred-lighting"});for(var t=0;t>=1,this._renderArea.height>>=1;var n=t.commandBuffers[0],i=t.pipelineSceneData.bloomMaterial.passes[0],r=t.getPipelineRenderData(),s=r.bloom,a=new Float32Array(qU.COUNT);a[qU.TEXTURE_SIZE_OFFSET+2]=this.threshold,n.updateBuffer(this._bloomUBO[0],a),n.beginRenderPass(s.renderPass,s.prefilterFramebuffer,this._renderArea,XU,0,0),n.bindDescriptorSet(0,t.descriptorSet),i.descriptorSet.bindBuffer(0,this._bloomUBO[0]),i.descriptorSet.bindTexture(1,r.outputRenderTargets[0]),i.descriptorSet.bindSampler(1,s.sampler),i.descriptorSet.update(),n.bindDescriptorSet(1,i.descriptorSet);var o=e.window.swapchain?t.quadIAOffscreen:t.quadIAOnscreen,u=null,c=i.getShaderVariant();null!=i&&null!=c&&null!=o&&(u=uS.getOrCreatePipelineState(t.device,i,c,s.renderPass,o)),null!=u&&(n.bindPipelineState(u),n.bindInputAssembler(o),n.draw(o)),n.endRenderPass()},n._downsamplePass=function(e,t){t.generateRenderArea(e,this._renderArea),this._renderArea.width>>=1,this._renderArea.height>>=1;for(var n=t.commandBuffers[0],i=t.pipelineSceneData.bloomMaterial,r=t.getPipelineRenderData().bloom,s=new Float32Array(qU.COUNT),a=0;a>=1,this._renderArea.height>>=1,n.beginRenderPass(r.renderPass,r.downsampleFramebuffers[a],this._renderArea,XU,0,0);var o=i.passes[1+a],u=o.getShaderVariant();o.descriptorSet.bindBuffer(0,this._bloomUBO[a+1]),0===a?o.descriptorSet.bindTexture(1,r.prefiterTex):o.descriptorSet.bindTexture(1,r.downsampleTexs[a-1]),o.descriptorSet.bindSampler(1,r.sampler),o.descriptorSet.update(),n.bindDescriptorSet(1,o.descriptorSet);var c=e.window.swapchain?t.quadIAOffscreen:t.quadIAOnscreen,h=null;null!=o&&null!=u&&null!=c&&(h=uS.getOrCreatePipelineState(t.device,o,u,r.renderPass,c)),null!=h&&(n.bindPipelineState(h),n.bindInputAssembler(c),n.draw(c)),n.endRenderPass()}},n._upsamplePass=function(e,t){var n=t.getPipelineRenderData().bloom;t.generateRenderArea(e,this._renderArea),this._renderArea.width>>=this.iterations+1,this._renderArea.height>>=this.iterations+1;for(var i=t.commandBuffers[0],r=t.pipelineSceneData.bloomMaterial,s=new Float32Array(qU.COUNT),a=0;a0&&(e.extensions.useVAO&&i.glVAO&&(n.bindVertexArray(null),i.glVAO=null),LG.gpuInputAssembler=null,i.glArrayBuffer!==t.glBuffer&&(n.bindBuffer(34962,t.glBuffer),i.glArrayBuffer=t.glBuffer),n.bufferData(34962,t.size,r),n.bindBuffer(34962,null),i.glArrayBuffer=null))}else if(4&t.usage){t.glTarget=34963;var a=n.createBuffer();a&&(t.glBuffer=a,t.size>0&&(e.extensions.useVAO&&i.glVAO&&(n.bindVertexArray(null),i.glVAO=null),LG.gpuInputAssembler=null,i.glElementArrayBuffer!==t.glBuffer&&(n.bindBuffer(34963,t.glBuffer),i.glElementArrayBuffer=t.glBuffer),n.bufferData(34963,t.size,r),n.bindBuffer(34963,null),i.glElementArrayBuffer=null))}else if(16&t.usage){t.glTarget=35345;var o=n.createBuffer();o&&t.size>0&&(t.glBuffer=o,i.glUniformBuffer!==t.glBuffer&&(n.bindBuffer(35345,t.glBuffer),i.glUniformBuffer=t.glBuffer),n.bufferData(35345,t.size,r),n.bindBuffer(35345,null),i.glUniformBuffer=null)}else 64&t.usage||2&t.usage||1&t.usage||Z(16315),t.glTarget=0}function SG(e,t){var n=e.gl,i=e.getStateCache(),r=e.extensions.useVAO;if(t.glBuffer){switch(t.glTarget){case 34962:r&&i.glVAO&&(n.bindVertexArray(null),i.glVAO=null),LG.gpuInputAssembler=null,n.bindBuffer(34962,null),i.glArrayBuffer=null;break;case 34963:r&&i.glVAO&&(n.bindVertexArray(null),i.glVAO=null),LG.gpuInputAssembler=null,n.bindBuffer(34963,null),i.glElementArrayBuffer=null;break;case 35345:n.bindBuffer(35345,null),i.glUniformBuffer=null}n.deleteBuffer(t.glBuffer),t.glBuffer=null}}function xG(e,t){var n=e.gl,i=e.getStateCache(),r=2&t.memUsage?35048:35044;8&t.usage?(e.extensions.useVAO&&i.glVAO&&(n.bindVertexArray(null),i.glVAO=null),LG.gpuInputAssembler=null,i.glArrayBuffer!==t.glBuffer&&n.bindBuffer(34962,t.glBuffer),t.buffer?n.bufferData(34962,t.buffer,r):n.bufferData(34962,t.size,r),n.bindBuffer(34962,null),i.glArrayBuffer=null):4&t.usage?(e.extensions.useVAO&&i.glVAO&&(n.bindVertexArray(null),i.glVAO=null),LG.gpuInputAssembler=null,i.glElementArrayBuffer!==t.glBuffer&&n.bindBuffer(34963,t.glBuffer),t.buffer?n.bufferData(34963,t.buffer,r):n.bufferData(34963,t.size,r),n.bindBuffer(34963,null),i.glElementArrayBuffer=null):16&t.usage?(i.glUniformBuffer!==t.glBuffer&&n.bindBuffer(35345,t.glBuffer),n.bufferData(35345,t.size,r),n.bindBuffer(35345,null),i.glUniformBuffer=null):(64&t.usage||2&t.usage||1&t.usage||Z(16315),t.glTarget=0)}function EG(e,t,n,i,r){if(64&t.usage){t.indirects.clearDraws();for(var s=n.drawInfos,a=0;ar.maxTextureSize&&Z(9100,c,r.maxTextureSize),1===t.samples){if(t.glTexture=n.createTexture(),t.size>0){var h=i.glTexUnits[i.texUnit];if(h.glTexture!==t.glTexture&&(n.bindTexture(3553,t.glTexture),h.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var l=0;l>1),a=cG(1,a>>1)}else 128&t.flags?n.texImage2D(3553,0,t.glInternalFmt,s,a,0,t.glFormat,t.glType,null):n.texStorage2D(3553,t.mipLevel,t.glInternalFmt,s,a)}}else t.glRenderbuffer=n.createRenderbuffer(),t.size>0&&(i.glRenderbuffer!==t.glRenderbuffer&&(n.bindRenderbuffer(36161,t.glRenderbuffer),i.glRenderbuffer=t.glRenderbuffer),n.renderbufferStorageMultisample(36161,t.samples,t.glInternalFmt,t.width,t.height));break;case 5:t.glTarget=35866;var p=cG(s,a);if(p>r.maxTextureSize&&Z(9100,p,r.maxTextureSize),u>r.maxArrayTextureLayers&&Z(9100,u,r.maxArrayTextureLayers),t.glTexture=n.createTexture(),t.size>0){var _=i.glTexUnits[i.texUnit];if(_.glTexture!==t.glTexture&&(n.bindTexture(35866,t.glTexture),_.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var m=0;m>1),a=cG(1,a>>1)}else n.texStorage3D(35866,t.mipLevel,t.glInternalFmt,s,a,u)}break;case 2:t.glTarget=32879;var y=cG(cG(s,a),o);if(y>r.max3DTextureSize&&Z(9100,y,r.max3DTextureSize),t.glTexture=n.createTexture(),t.size>0){var b=i.glTexUnits[i.texUnit];if(b.glTexture!==t.glTexture&&(n.bindTexture(32879,t.glTexture),b.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var w=0;w>1),a=cG(1,a>>1)}else n.texStorage3D(32879,t.mipLevel,t.glInternalFmt,s,a,o)}break;case 3:t.glTarget=34067;var x=cG(s,a);if(x>r.maxCubeMapTextureSize&&Z(9100,x,r.maxTextureSize),t.glTexture=n.createTexture(),t.size>0){var E=i.glTexUnits[i.texUnit];if(E.glTexture!==t.glTexture&&(n.bindTexture(34067,t.glTexture),E.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var I=0;I>1),a=cG(1,a>>1)}else n.texStorage2D(34067,t.mipLevel,t.glInternalFmt,s,a)}break;default:Z(16317),t.type=1,t.glTarget=3553}}function AG(e,t){var n=e.gl,i=e.getStateCache();if(t.glTexture){var r=i.glTexUnits,s=i.texUnit;n.deleteTexture(t.glTexture);for(var a=0;ar.maxTextureSize&&Z(9100,c,r.maxTextureSize),1===t.samples){var h=i.glTexUnits[i.texUnit];if(h.glTexture!==t.glTexture&&(n.bindTexture(3553,t.glTexture),h.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var l=0;l>1),a=cG(1,a>>1)}else AG(e,t),IG(e,t)}else t.glRenderbuffer&&(i.glRenderbuffer!==t.glRenderbuffer&&(n.bindRenderbuffer(36161,t.glRenderbuffer),i.glRenderbuffer=t.glRenderbuffer),n.renderbufferStorageMultisample(36161,t.samples,t.glInternalFmt,t.width,t.height));break;case 5:t.glTarget=35866;var p=cG(s,a);if(p>r.maxTextureSize&&Z(9100,p,r.maxTextureSize),u>r.maxArrayTextureLayers&&Z(9100,u,r.maxArrayTextureLayers),t.glTexture=n.createTexture(),t.size>0){var _=i.glTexUnits[i.texUnit];if(_.glTexture!==t.glTexture&&(n.bindTexture(35866,t.glTexture),_.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var m=0;m>1),a=cG(1,a>>1)}else n.texStorage3D(35866,t.mipLevel,t.glInternalFmt,s,a,u)}break;case 2:t.glTarget=32879;var y=cG(cG(s,a),o);if(y>r.max3DTextureSize&&Z(9100,y,r.max3DTextureSize),t.glTexture=n.createTexture(),t.size>0){var b=i.glTexUnits[i.texUnit];if(b.glTexture!==t.glTexture&&(n.bindTexture(32879,t.glTexture),b.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var w=0;w>1),a=cG(1,a>>1)}else n.texStorage3D(32879,t.mipLevel,t.glInternalFmt,s,a,o)}break;case 3:t.type=3,t.glTarget=34067;var x=cG(s,a);x>r.maxCubeMapTextureSize&&Z(9100,x,r.maxTextureSize);var E=i.glTexUnits[i.texUnit];if(E.glTexture!==t.glTexture&&(n.bindTexture(34067,t.glTexture),E.glTexture=t.glTexture),Ts[t.format].isCompressed)for(var I=0;I<6;++I){s=t.width,a=t.height;for(var A=0;A>1),a=cG(1,a>>1)}}else AG(e,t),IG(e,t);break;default:Z(16317),t.type=1,t.glTarget=3553}}}function CG(e,t){for(var n=e.gl,i=t.glSamplers.values().next();!i.done;){n.deleteSampler(i.value);for(var r=e.getStateCache().glSamplerUnits,s=0;s>u.baseLevel),t.height=hG(t.height,c.height>>u.baseLevel))}var h=t.gpuDepthStencilView;if(h){var l=h.gpuTexture,f=Ts[l.format].hasStencil?33306:36096;l.glTexture?r.framebufferTexture2D(36160,f,l.glTarget,l.glTexture,t.gpuDepthStencilView.baseLevel):r.framebufferRenderbuffer(36160,f,36161,l.glRenderbuffer),t.width=hG(t.width,l.width>>h.baseLevel),t.height=hG(t.height,l.height>>h.baseLevel)}r.drawBuffers(s);var d=r.checkFramebufferStatus(36160);if(36053!==d)switch(d){case 36054:Z(16318);break;case 36055:Z(16319);break;case 36057:Z(16320);break;case 36061:Z(16321)}n.glFramebuffer!==t.glFramebuffer&&r.bindFramebuffer(36160,n.glFramebuffer)}}function BG(e,t){var n=e.gl,i=e.getStateCache();t.glFramebuffer&&(n.deleteFramebuffer(t.glFramebuffer),i.glFramebuffer===t.glFramebuffer&&(n.bindFramebuffer(36160,null),i.glFramebuffer=null),t.glFramebuffer=null)}function DG(e,t){for(var n,i=e.gl,r=e.getStateCache(),s=e.capabilities,a=function(){var e=t.gpuStages[u],n=0,r="",s=1;switch(e.type){case 1:r="VertexShader",n=35633;break;case 16:r="FragmentShader",n=35632;break;default:return Z(16322),{v:void 0}}var a=i.createShader(n);if(a&&(e.glShader=a,i.shaderSource(e.glShader,"#version 300 es\n"+e.source),i.compileShader(e.glShader),!i.getShaderParameter(e.glShader,35713))){Z(16323,r,t.name),Z(16324,e.source.replace(/^|\n/g,(function(){return"\n"+s+++" "}))),k(i.getShaderInfoLog(e.glShader));for(var o=0;o0){t.glSamplerTextures=new Array(t.samplerTextures.length);for(var M=0;M=0&&A.gpuDescriptors[R];if(C&&C.gpuBuffer){var O=x[I.set],B=O&&O[I.binding],D=C.gpuBuffer.glOffset;B>=0&&(D+=r[B]),u.glBindUBOs[I.glBinding]===C.gpuBuffer.glBuffer&&u.glBindUBOOffsets[I.glBinding]===D||(D?a.bindBufferRange(35345,I.glBinding,C.gpuBuffer.glBuffer,D,C.gpuBuffer.size):a.bindBufferBase(35345,I.glBinding,C.gpuBuffer.glBuffer),u.glUniformBuffer=u.glBindUBOs[I.glBinding]=C.gpuBuffer.glBuffer,u.glBindUBOOffsets[I.glBinding]=D)}}for(var P=d.glSamplerTextures.length,M=0;M=0&&L.gpuDescriptors[N],z=0;z0){G.glTexture!==H.glTexture&&(u.texUnit!==U&&(a.activeTexture(33984+U),u.texUnit=U),H.glTexture?a.bindTexture(H.glTarget,H.glTexture):a.bindTexture(H.glTarget,e.nullTex2D.gpuTexture.glTexture),G.glTexture=H.glTexture);var X=k.gpuSampler.getGLSampler(e,W,j);u.glSamplerUnits[U]!==X&&(a.bindSampler(U,X),u.glSamplerUnits[U]=X)}k=L.gpuDescriptors[++N]}}}if(n&&d&&(p||LG.gpuInputAssembler!==n))if(LG.gpuInputAssembler=n,e.extensions.useVAO){var q=n.glVAOs.get(d.glProgram);if(!q){var Y;q=a.createVertexArray(),n.glVAOs.set(d.glProgram,q),a.bindVertexArray(q),a.bindBuffer(34962,null),a.bindBuffer(34963,null),u.glArrayBuffer=null,u.glElementArrayBuffer=null;for(var K=0;K=0&&(a.enableVertexAttribArray(he),u.glEnabledAttribLocs[he]=!0),u.glCurrentAttribLocs[he]=!0,a.vertexAttribPointer(he,ae.count,ae.glType,ae.isNormalized,ae.stride,le),a.vertexAttribDivisor(he,ae.isInstanced?1:0)}}}var fe=n.gpuIndexBuffer;fe&&u.glElementArrayBuffer!==fe.glBuffer&&(a.bindBuffer(34963,fe.glBuffer),u.glElementArrayBuffer=fe.glBuffer);for(var de=0;de0){var l=t.firstIndex*a.stride;n.drawElementsInstanced(r,t.indexCount,i.glIndexType,l,t.instanceCount)}}else t.vertexCount>0&&n.drawArraysInstanced(r,t.firstVertex,t.vertexCount,t.instanceCount);else if(a){if(t.indexCount>0){var f=t.firstIndex*a.stride;n.drawElements(r,t.indexCount,i.glIndexType,f)}}else t.vertexCount>0&&n.drawArrays(r,t.firstVertex,t.vertexCount)}}function UG(e,t){if(e.length>1||t.length>1)return!1;if(e[0]instanceof HTMLVideoElement){var n=e[0];return 0===t[0].texOffset.x&&0===t[0].texOffset.y&&t[0].texExtent.width===n.videoWidth&&t[0].texExtent.height===n.videoHeight}return!1}function GG(e,t,n,i){var r=e.gl,s=e.getStateCache(),a=s.glTexUnits[s.texUnit];a.glTexture!==n.glTexture&&(r.bindTexture(n.glTarget,n.glTexture),a.glTexture=n.glTexture);var o=0,u=0;switch(n.glTarget){case 3553:if(128&n.flags||UG(t,i))r.texImage2D(3553,i[0].texSubres.mipLevel,n.glInternalFmt,i[0].texExtent.width,i[0].texExtent.height,0,n.glFormat,n.glType,t[0]);else for(var c=0;c0?E:d.width,_.height=g.buffTexHeight>0?g.buffTexHeight:d.height;var I=w+p.x===n.width>>v?w:d.width,A=T+p.y===n.height>>v?T:d.height,R=void 0,C=t[o++];if(_.width===d.width&&_.height===d.height){var O=As(n.format,I,A,1)/h.BYTES_PER_ELEMENT;$(Number.isInteger(O),9101),R=new h(C.buffer,C.byteOffset+g.buffOffset,O)}else R=HG(C,n.format,g.buffOffset,_,d);l?36196!==n.glInternalFmt?r.compressedTexSubImage2D(3553,v,p.x,p.y,I,A,n.glFormat,R):r.compressedTexImage2D(3553,v,n.glInternalFmt,I,A,0,R):r.texSubImage2D(3553,v,p.x,p.y,I,A,n.glFormat,n.glType,R)}break;case 35866:for(var B=0;B0?U:d.width,_.height=D.buffTexHeight>0?D.buffTexHeight:d.height;var V=L+p.x===n.width>>P?L:d.width,H=N+p.y===n.height>>P?N:d.height,W=G.baseArrayLayer+G.layerCount;for(u=G.baseArrayLayer;u0?se:d.width,_.height=K.buffTexHeight>0?K.buffTexHeight:d.height;var ae=te+p.x===n.width>>Q?te:d.width,oe=ne+p.y===n.height>>Q?ne:d.height,ue=void 0,ce=t[o++];if(_.width===d.width&&_.height===d.height){var he=As(n.format,ae,oe,d.depth)/h.BYTES_PER_ELEMENT;$(Number.isInteger(he),9101),ue=new h(ce.buffer,ce.byteOffset+K.buffOffset,he)}else ue=HG(ce,n.format,K.buffOffset,_,d);l?36196!==n.glInternalFmt?r.compressedTexSubImage3D(35866,Q,p.x,p.y,p.z,ae,oe,d.depth,n.glFormat,ue):r.compressedTexImage3D(35866,Q,n.glInternalFmt,ae,oe,d.depth,0,ue):r.texSubImage3D(35866,Q,p.x,p.y,p.z,ae,oe,d.depth,n.glFormat,n.glType,ue)}break;case 34067:for(var le=0;le0?be:d.width,_.height=fe.buffTexHeight>0?fe.buffTexHeight:d.height;var Te=me+p.x===n.width>>de?me:d.width,Se=ge+p.y===n.height>>de?ge:d.height,xe=we.baseArrayLayer+we.layerCount;for(u=we.baseArrayLayer;u0,this.instancedDraw=!!t.instanceCount,this.drawCount=Math.max(e+1,this.drawCount),this.drawByIndex?(this.counts[e]=t.indexCount,this.offsets[e]=t.firstIndex):(this.counts[e]=t.vertexCount,this.offsets[e]=t.firstVertex),this.instances[e]=Math.max(1,t.instanceCount)},t._ensureCapacity=function(e){if(!(this._capacity>e)){this._capacity=Wa(e);var t=new Int32Array(this._capacity),n=new Int32Array(this._capacity),i=new Int32Array(this._capacity);this.byteOffsets=new Int32Array(this._capacity),t.set(this.counts),n.set(this.offsets),i.set(this.instances),this.counts=t,this.offsets=n,this.instances=i}},e}(),KG=function(){function e(){this._srcFramebuffer=void 0,this._dstFramebuffer=void 0;var e=qG.instance.gl;this._srcFramebuffer=e.createFramebuffer(),this._dstFramebuffer=e.createFramebuffer()}return e.prototype.destroy=function(){var e=qG.instance.gl;e.deleteFramebuffer(this._srcFramebuffer),e.deleteFramebuffer(this._dstFramebuffer)},f(e,[{key:"srcFramebuffer",get:function(){return this._srcFramebuffer}},{key:"dstFramebuffer",get:function(){return this._dstFramebuffer}}]),e}(),QG=function(e){function t(){var t;return(t=e.call(this)||this)._gpuBuffer=null,t}p(t,e);var n=t.prototype;return n.getGpuBuffer=function(){return this._gpuBuffer},n.initialize=function(e){if("buffer"in e){this._isBufferView=!0;var t=e.buffer;this._usage=t.usage,this._memUsage=t.memUsage,this._size=this._stride=e.range,this._count=1,this._flags=t.flags,this._gpuBuffer={usage:this._usage,memUsage:this._memUsage,size:this._size,stride:this._stride,buffer:null,indirects:t.getGpuBuffer().indirects,glTarget:t.getGpuBuffer().glTarget,glBuffer:t.getGpuBuffer().glBuffer,glOffset:e.offset}}else this._usage=e.usage,this._memUsage=e.memUsage,this._size=e.size,this._stride=Math.max(e.stride||this._size,1),this._count=this._size/this._stride,this._flags=e.flags,this._gpuBuffer={usage:this._usage,memUsage:this._memUsage,size:this._size,stride:this._stride,buffer:null,indirects:new YG,glTarget:0,glBuffer:null,glOffset:0},TG(qG.instance,this._gpuBuffer),qG.instance.memoryStatus.bufferSize+=this._size},n.destroy=function(){this._gpuBuffer&&(this._isBufferView||(SG(qG.instance,this._gpuBuffer),qG.instance.memoryStatus.bufferSize-=this._size),this._gpuBuffer=null)},n.resize=function(e){if(this._isBufferView)K(16379);else{var t=this._size;t!==e&&(this._size=e,this._count=this._size/this._stride,this._gpuBuffer&&(this._gpuBuffer.size=e,e>0&&(xG(qG.instance,this._gpuBuffer),qG.instance.memoryStatus.bufferSize-=t,qG.instance.memoryStatus.bufferSize+=e)))}},n.update=function(e,t){var n;this._isBufferView?K(16380):(n=void 0!==t?t:64&this._usage?0:e.byteLength,EG(qG.instance,this._gpuBuffer,e,0,n))},t}(Fs),ZG=function(e){function t(){var t;return(t=e.call(this)||this)._isInRenderPass=!1,t._curGPUPipelineState=null,t._curGPUDescriptorSets=[],t._curGPUInputAssembler=null,t._curDynamicOffsets=Array(8).fill(0),t._curDynamicStates=new ms,t._isStateInvalid=!1,t}p(t,e);var n=t.prototype;return n.initialize=function(e){this._type=e.type,this._queue=e.queue;for(var t=qG.instance.bindingMappings.blockOffsets.length,n=0;n0?this.gpuColorViews[0].gpuTexture.width:this.gpuDepthStencilView?this.gpuDepthStencilView.gpuTexture.width:o},set width(e){o=e},get height(){return this.gpuColorViews.length>0?this.gpuColorViews[0].gpuTexture.height:this.gpuDepthStencilView?this.gpuDepthStencilView.gpuTexture.height:u},set height(e){u=e}},OG(qG.instance,this._gpuFramebuffer),this._gpuFramebuffer.gpuColorViews.forEach((function(e){return n._gpuColorViews.push(e.gpuTexture.glTexture)})),this._gpuDepthStencilView=null==(t=this._gpuFramebuffer.gpuDepthStencilView)?void 0:t.gpuTexture.glTexture,this._width=this._gpuFramebuffer.width,this._height=this._gpuFramebuffer.height},n.destroy=function(){this._gpuFramebuffer&&(BG(qG.instance,this._gpuFramebuffer),this._gpuFramebuffer=null,this._gpuColorViews.length=0,this._gpuDepthStencilView=null)},f(t,[{key:"needRebuild",get:function(){var e=this.getGpuFramebuffer();if(e){for(var t,n=0;nn&&(n=s.binding)}this._bindingIndices=Array(n+1).fill(-1);for(var a=this._descriptorIndices=Array(n+1).fill(-1),o=0;o1&&(s.levelCount=Math.min(s.levelCount,t.getLevelCount(e,n)));var a=i._size;s.width=e,s.height=n,i._size=Rs(s.format,i.width,i.height,i.depth,s.levelCount)*s.layerCount;var o=i._gpuTexture;!i._isTextureView&&o&&(o.width=e,o.height=n,o.size=i._size,o.isSwapchainTexture||(RG(r,o),r.memoryStatus.textureSize-=a,r.memoryStatus.textureSize+=i._size))}},n.initAsSwapchainTexture=function(e){var t=new Mr;t.format=e.format,t.usage=Ts[e.format].hasDepth?32:16,t.width=e.width,t.height=e.height,this.initialize(t,!0)},f(t,[{key:"gpuTexture",get:function(){return this._gpuTexture}},{key:"gpuTextureView",get:function(){return this._gpuTextureView}}]),t}(ra),lV="webglcontextlost";function fV(e){e.activeTexture(33984),e.pixelStorei(3333,1),e.pixelStorei(3317,1),e.pixelStorei(37440,!1),e.bindFramebuffer(36160,null),e.enable(3089),e.enable(2884),e.cullFace(1029),e.frontFace(2305),e.polygonOffset(0,0),e.enable(2929),e.depthMask(!0),e.depthFunc(513),e.stencilFuncSeparate(1028,519,1,65535),e.stencilOpSeparate(1028,7680,7680,7680),e.stencilMaskSeparate(1028,65535),e.stencilFuncSeparate(1029,519,1,65535),e.stencilOpSeparate(1029,7680,7680,7680),e.stencilMaskSeparate(1029,65535),e.disable(2960),e.disable(32926),e.disable(3042),e.blendEquationSeparate(32774,32774),e.blendFuncSeparate(1,0,1,0),e.colorMask(!0,!0,!0,!0),e.blendColor(0,0,0,0)}function dV(e,t){for(var n=["","WEBKIT_","MOZ_"],i=0;i96?n-97:n>64?n-39:n+4}var o=0;for(t=0;t0?d(t,n,c,a[s],f[u]):r.then((function(){var r=new Uint8Array(t*n);return o(e.exports[a[s]],r,t,n,c,e.exports[f[u]]),r}))}}}();function t(){for(var e=new Uint8Array(123),r=25;r>=0;--r)e[48+r]=52+r,e[65+r]=r,e[97+r]=26+r;function t(r,t,n){for(var o,f,a=0,i=t,c=n.length,s=t+(3*c>>2)-("="==n[c-2])-("="==n[c-1]);a>4,i>2),i>>0>=16)for(a=e;o[a>>2]=0|o[t>>2],o[a+4>>2]=0|o[t+4>>2],o[a+8>>2]=0|o[t+8>>2],o[a+12>>2]=0|o[t+12>>2],t=t+16|0,a=a+16|0,(n=n+-16|0)>>>0>15;);else a=e;if(!(n>>>0<4))for(;o[a>>2]=0|o[t>>2],t=t+4|0,a=a+4|0,(n=n+-4|0)>>>0>3;);}if(n)for(;r[0|a]=0|f[0|t],a=a+1|0,t=t+1|0,n=n+-1|0;);return 0|e}function s(e,t,n){t|=0,n|=0;var f=0,i=0;if(3&(e|=0))f=e;else{if(i=a(255&t,16843009),n>>>0>=16)for(f=e;o[f>>2]=i,o[f+12>>2]=i,o[f+8>>2]=i,o[f+4>>2]=i,f=f+16|0,(n=n+-16|0)>>>0>15;);else f=e;if(!(n>>>0<4))for(;o[f>>2]=i,f=f+4|0,(n=n+-4|0)>>>0>3;);}if(n)for(;r[0|f]=t,f=f+1|0,n=n+-1|0;);return 0|e}function u(){return e.byteLength/65536|0}function d(t){t|=0;var i=0|u(),c=i+t|0;if(i>>0>(u|=0)>>>0)&&(k=-1,160==(0|f[0|s]))){y=0|c(0|d,(_=s+u|0)-n|0,0|n),u=8192/(n>>>0)|0,k=s+1|0;r:if(n){L=(u&=16368)>>>0<256?u:256,j=0;t:for(;;){if(j>>>0>=t>>>0)break r;I=(3+((u=(x=(j+L|0)>>>0>>0?L:t-j|0)+15|0)>>>4|0)|0)>>>2|0;n:{o:{f:{if(m=-16&u){B=0,U=1,S=y+256|0,w=k;a:for(;;){if((_-w|0)>>>0>>0)break o;if(!((_-(k=w+I|0)|0)>>>0<24)){u=16,A=0;i:for(;;){s=u,u=(l=u+-16|0)+(y+8448|0)|0;c:{s:switch((0|f[w+(l>>>6|0)|0])>>>(6&A)&3){default:v=u,h=0,o[u>>2]=0,o[u+4>>2]=h,h=0,o[(v=u+8|0)>>2]=0,o[v+4>>2]=h;break c;case 1:N=b=(l=0|f[0|k])>>>6|0,b=3==(0|b),r[0|u]=(pe=0|f[k+4|0],ke=N,b?pe:ke),b=(k+4|0)+b|0,R=p=l>>>4&3,p=3==(0|p),r[(u=(y+8448|0)+s|0)-15|0]=(pe=0|f[0|b],ke=R,p?pe:ke),b=b+p|0,q=p=l>>>2&3,p=3==(0|p),r[u+-14|0]=(pe=0|f[0|b],ke=q,p?pe:ke),b=b+p|0,C=l&=3,l=3==(0|l),r[u+-13|0]=(pe=0|f[0|b],ke=C,l?pe:ke),b=b+l|0,T=p=(l=0|f[k+1|0])>>>6|0,p=3==(0|p),r[u+-12|0]=(pe=0|f[0|b],ke=T,p?pe:ke),b=b+p|0,P=p=l>>>4&3,p=3==(0|p),r[u+-11|0]=(pe=0|f[0|b],ke=P,p?pe:ke),b=b+p|0,M=p=l>>>2&3,p=3==(0|p),r[u+-10|0]=(pe=0|f[0|b],ke=M,p?pe:ke),b=b+p|0,z=l&=3,l=3==(0|l),r[u+-9|0]=(pe=0|f[0|b],ke=z,l?pe:ke),b=b+l|0,G=p=(l=0|f[k+2|0])>>>6|0,p=3==(0|p),r[u+-8|0]=(pe=0|f[0|b],ke=G,p?pe:ke),b=b+p|0,V=p=l>>>4&3,p=3==(0|p),r[u+-7|0]=(pe=0|f[0|b],ke=V,p?pe:ke),b=b+p|0,D=p=l>>>2&3,p=3==(0|p),r[u+-6|0]=(pe=0|f[0|b],ke=D,p?pe:ke),b=b+p|0,F=l&=3,l=3==(0|l),r[u+-5|0]=(pe=0|f[0|b],ke=F,l?pe:ke),l=b+l|0,Q=b=(k=0|f[k+3|0])>>>6|0,b=3==(0|b),r[u+-4|0]=(pe=0|f[0|l],ke=Q,b?pe:ke),l=l+b|0,W=b=k>>>4&3,b=3==(0|b),r[u+-3|0]=(pe=0|f[0|l],ke=W,b?pe:ke),l=l+b|0,H=b=k>>>2&3,b=3==(0|b),r[u+-2|0]=(pe=0|f[0|l],ke=H,b?pe:ke),X=u+-1|0,u=l+b|0,J=k&=3,k=3==(0|k),r[0|X]=(pe=0|f[0|u],ke=J,k?pe:ke),k=u+k|0;break c;case 2:K=b=(l=0|f[0|k])>>>4|0,b=15==(0|b),r[0|u]=(pe=0|f[k+8|0],ke=K,b?pe:ke),b=(k+8|0)+b|0,Y=l&=15,l=15==(0|l),r[(u=(y+8448|0)+s|0)-15|0]=(pe=0|f[0|b],ke=Y,l?pe:ke),l=b+l|0,Z=p=(b=0|f[k+1|0])>>>4|0,p=15==(0|p),r[u+-14|0]=(pe=0|f[0|l],ke=Z,p?pe:ke),l=l+p|0,$=b&=15,b=15==(0|b),r[u+-13|0]=(pe=0|f[0|l],ke=$,b?pe:ke),l=l+b|0,ee=p=(b=0|f[k+2|0])>>>4|0,p=15==(0|p),r[u+-12|0]=(pe=0|f[0|l],ke=ee,p?pe:ke),l=l+p|0,re=b&=15,b=15==(0|b),r[u+-11|0]=(pe=0|f[0|l],ke=re,b?pe:ke),l=l+b|0,te=p=(b=0|f[k+3|0])>>>4|0,p=15==(0|p),r[u+-10|0]=(pe=0|f[0|l],ke=te,p?pe:ke),l=l+p|0,ne=b&=15,b=15==(0|b),r[u+-9|0]=(pe=0|f[0|l],ke=ne,b?pe:ke),l=l+b|0,oe=p=(b=0|f[k+4|0])>>>4|0,p=15==(0|p),r[u+-8|0]=(pe=0|f[0|l],ke=oe,p?pe:ke),l=l+p|0,fe=b&=15,b=15==(0|b),r[u+-7|0]=(pe=0|f[0|l],ke=fe,b?pe:ke),l=l+b|0,ae=p=(b=0|f[k+5|0])>>>4|0,p=15==(0|p),r[u+-6|0]=(pe=0|f[0|l],ke=ae,p?pe:ke),l=l+p|0,ie=b&=15,b=15==(0|b),r[u+-5|0]=(pe=0|f[0|l],ke=ie,b?pe:ke),l=l+b|0,ce=p=(b=0|f[k+6|0])>>>4|0,p=15==(0|p),r[u+-4|0]=(pe=0|f[0|l],ke=ce,p?pe:ke),l=l+p|0,se=b&=15,b=15==(0|b),r[u+-3|0]=(pe=0|f[0|l],ke=se,b?pe:ke),l=l+b|0,ue=b=(k=0|f[k+7|0])>>>4|0,b=15==(0|b),r[u+-2|0]=(pe=0|f[0|l],ke=ue,b?pe:ke),de=u+-1|0,u=l+b|0,be=k&=15,k=15==(0|k),r[0|de]=(pe=0|f[0|u],ke=be,k?pe:ke),k=u+k|0;break c;case 3:}h=f[0|k]|f[k+1|0]<<8|f[k+2|0]<<16|f[k+3|0]<<24,v=f[k+4|0]|f[k+5|0]<<8|f[k+6|0]<<16|f[k+7|0]<<24,le=h,h=u,O=le,r[0|u]=O,r[u+1|0]=O>>>8|0,r[u+2|0]=O>>>16|0,r[u+3|0]=O>>>24|0,r[u+4|0]=v,r[u+5|0]=v>>>8|0,r[u+6|0]=v>>>16|0,r[u+7|0]=v>>>24|0,v=f[0|(g=k+8|0)]|f[g+1|0]<<8|f[g+2|0]<<16|f[g+3|0]<<24,h=f[g+4|0]|f[g+5|0]<<8|f[g+6|0]<<16|f[g+7|0]<<24,E=v,r[0|(v=u+8|0)]=E,r[v+1|0]=E>>>8|0,r[v+2|0]=E>>>16|0,r[v+3|0]=E>>>24|0,r[v+4|0]=h,r[v+5|0]=h>>>8|0,r[v+6|0]=h>>>16|0,r[v+7|0]=h>>>24|0,k=k+16|0}if(s>>>0>=m>>>0||(A=A+2|0,u=s+16|0,!((_-k|0)>>>0>23)))break i}if(s>>>0>>0)break f;if(!k)break f;if(x)for(A=0|f[y+B|0],u=y+8448|0,s=S,l=x;A=((w=0|f[0|u])>>>1^0-(1&w))+A|0,r[0|s]=A,s=s+n|0,u=u+1|0,l=l+-1|0;);if(S=S+1|0,U=(B=B+1|0)>>>0>>0,w=k,(0|B)!=(0|n))continue a;break n}break a}if(k=0,1&U)break o;break n}if(p=k+a(I,n)|0,x){m=0,U=1,b=y+256|0;a:for(;;){if((_-k|0)>>>0>>0)break o;if(!k)break f;for(k=k+I|0,A=0|f[y+m|0],u=y+8448|0,s=b,l=x;A=((w=0|f[0|u])>>>1^0-(1&w))+A|0,r[0|s]=A,s=s+n|0,u=u+1|0,l=l+-1|0;);if(b=b+1|0,U=(m=m+1|0)>>>0>>0,(0|m)==(0|n))break a}k=p;break n}u=0,U=1;a:for(;;){if((_-k|0)>>>0>>0)break o;if(!k)break f;if(k=k+I|0,U=(u=u+1|0)>>>0>>0,(0|n)==(0|u))break a}k=p;break n}if(k=0,!(1&U))break n}k=-2;break e}if(c(e+a(j,n)|0,y+256|0,0|a(x,n)),c(0|y,(y+256|0)+a(x+-1|0,n)|0,0|n),j=x+j|0,!k)break t}k=-2;break e}k=(_-k|0)==(0|(n>>>0>32?n:32))?0:-3}return i=d+8704|0,0|k},meshopt_decodeIndexBuffer:function(e,t,a,c,u){e|=0,a|=0,c|=0;var d,b=0,l=0,p=0,k=0,v=0,y=0,A=0,h=0,w=0,m=0,x=0,g=0,_=0,I=0,U=0,j=0,B=0,O=0,E=0,S=0;i=d=i-192|0,k=-2;e:if(!((17+(x=((t|=0)>>>0)/3|0)|0)>>>0>(u|=0)>>>0||(k=-1,224!=(240&(I=0|f[0|c]))||(b=15&I)>>>0>1))){if(s(d+64|0,255,128),m=-1,o[(h=d+56|0)>>2]=-1,o[h+4>>2]=m,m=-1,o[(h=d+48|0)>>2]=-1,o[h+4>>2]=m,m=-1,o[(h=d+40|0)>>2]=-1,o[h+4>>2]=m,m=-1,o[(h=d+32|0)>>2]=-1,o[h+4>>2]=m,m=-1,o[(h=d+24|0)>>2]=-1,o[h+4>>2]=m,m=-1,o[(h=d+16|0)>>2]=-1,o[h+4>>2]=m,h=d,m=-1,o[d+8>>2]=-1,o[d+12>>2]=m,h=d,m=-1,o[d>>2]=-1,o[d+4>>2]=m,j=(c+u|0)-16|0,k=(I=c+1|0)+x|0,t){O=1==(0|b)?13:15,g=0,w=0,x=0,c=0,u=0;r:for(;;){if(!(k>>>0<=j>>>0)){k=-2;break e}t:if((b=0|f[0|I])>>>0>239)if(b>>>0>253){if(A=(_=(v=0|f[0|k])?g:0)+(b=254==(0|b))|0,U=15&v,B=v>>>4|0,v>>>0>15?(y=A,A=0|o[d+((c-B&15)<<2)>>2]):y=A+1|0,U?(g=y,y=0|o[d+((c-v&15)<<2)>>2]):g=y+1|0,b)b=k+1|0;else{b=k+2|0,l=255&(p=0|r[k+1|0]);n:if(!((0|p)>-1)){_=k+6|0,l&=127,k=7;o:{f:for(;;){if(l|=(127&(p=0|r[0|b]))<-1)break o;if(b=b+1|0,35==(0|(k=k+7|0)))break f}b=_;break n}b=b+1|0}_=w=(l>>>1^0-(1&l))+w|0}if(15==(0|B)){l=b+1|0,p=255&(k=0|r[0|b]);n:if(!((0|k)>-1)){A=b+5|0,p&=127,k=7;o:{f:for(;;){if(p|=(127&(b=0|r[0|l]))<-1)break o;if(l=l+1|0,35==(0|(k=k+7|0)))break f}l=A;break n}l=l+1|0}A=w=(p>>>1^0-(1&p))+w|0}else l=b;if(15==(0|U)){k=l+1|0,p=255&(b=0|r[0|l]);n:if(!((0|b)>-1)){y=l+5|0,p&=127,b=7;o:{f:for(;;){if(p|=(127&(l=0|r[0|k]))<-1)break o;if(k=k+1|0,35==(0|(b=b+7|0)))break f}k=y;break n}k=k+1|0}y=w=(p>>>1^0-(1&p))+w|0}else k=l;2!=(0|a)?(o[(b=e+(x<<2)|0)>>2]=_,o[b+4>>2]=A,o[b+8>>2]=y):(n[(b=e+(x<<1)|0)>>1]=_,n[b+2>>1]=A,n[b+4>>1]=y),o[(b=(d+64|0)+(u<<3)|0)>>2]=A,o[b+4>>2]=_,o[d+(c<<2)>>2]=_,o[(b=(d+64|0)+((u+1&15)<<3)|0)>>2]=y,o[b+4>>2]=A,o[d+((15&(c=c+1|0))<<2)>>2]=A,o[(b=(d+64|0)+((u+2&15)<<3)|0)>>2]=_,o[b+4>>2]=y,o[d+((15&(c=c+(v>>>0<16|15==(0|B))|0))<<2)>>2]=y,c=c+(!U|15==(0|U))|0,u=u+3|0}else y=g+1|0,p=(l=0|f[j+(15&b)|0])>>>0<16,E=y,S=0|o[d+((c-(l>>>4|0)&15)<<2)>>2],b=p?E:S,A=y+p|0,y=15&l,E=0|o[d+((c-l&15)<<2)>>2],S=A,l=y?E:S,y=!y,2!=(0|a)?(o[(v=e+(x<<2)|0)>>2]=g,o[v+4>>2]=b,o[v+8>>2]=l):(n[(v=e+(x<<1)|0)>>1]=g,n[v+2>>1]=b,n[v+4>>1]=l),o[d+(c<<2)>>2]=g,o[(v=(d+64|0)+(u<<3)|0)>>2]=b,o[v+4>>2]=g,o[d+((15&(c=c+1|0))<<2)>>2]=b,o[(v=(d+64|0)+((u+1&15)<<3)|0)>>2]=l,o[v+4>>2]=b,o[d+((c=c+p&15)<<2)>>2]=l,o[(b=(d+64|0)+((u=u+2&15)<<3)|0)>>2]=g,o[b+4>>2]=l,u=u+1|0,c=c+y|0,g=A+y|0;else{if(A=0|o[4+(l=(d+64|0)+((u+((p=0|~b)>>>4|0)&15)<<3)|0)>>2],v=0|o[l>>2],!((b&=15)>>>0>=O>>>0)){E=0|o[d+((c+p&15)<<2)>>2],S=g,l=b?E:S,b=!b,2!=(0|a)?(o[(p=e+(x<<2)|0)>>2]=v,o[p+4>>2]=A,o[p+8>>2]=l):(n[(p=e+(x<<1)|0)>>1]=v,n[p+2>>1]=A,n[p+4>>1]=l),g=g+b|0,o[(p=(d+64|0)+(u<<3)|0)>>2]=l,o[p+4>>2]=A,o[d+(c<<2)>>2]=l,o[(p=(d+64|0)+((u=u+1&15)<<3)|0)>>2]=v,o[p+4>>2]=l,c=c+b|0,u=u+1|0;break t}if(15==(0|b)){b=k+1|0,p=255&(l=0|r[0|k]);n:if((0|l)<=-1){k=k+5|0,p&=127,l=7;o:for(;p|=(127&(y=0|r[0|b]))<-1);)if(b=b+1|0,35==(0|(l=l+7|0)))break n;k=b+1|0}else k=b;w=(p>>>1^0-(1&p))+w|0}else w=1+((w+b|0)+(-4^b)|0)|0;2!=(0|a)?(o[(b=e+(x<<2)|0)>>2]=v,o[b+4>>2]=A,o[b+8>>2]=w):(n[(b=e+(x<<1)|0)>>1]=v,n[b+2>>1]=A,n[b+4>>1]=w),o[(b=(d+64|0)+(u<<3)|0)>>2]=w,o[b+4>>2]=A,o[d+(c<<2)>>2]=w,o[(b=(d+64|0)+((u=u+1&15)<<3)|0)>>2]=v,o[b+4>>2]=w,c=c+1|0,u=u+1|0}if(I=I+1|0,u&=15,c&=15,!((x=x+3|0)>>>0>>0))break r}}k=(0|k)==(0|j)?0:-3}return i=d+192|0,0|k},sbrk:function(e){e|=0;var r,t,n=0;return e=(r=0|o[256])+(e+3&-4)|0,o[256]=e,(e>>>0<=(t=u()<<16)>>>0||(n=-1,-1!=(0|d((65535+(e-t|0)|0)>>>16|0))))&&(n=r),0|n}}}()}e.exports=r}(n);var o=n.exports;e("m",t({__proto__:null,default:r(o)},[o]))}}})); diff --git a/build/web-mobile/cocos-js/meshopt_decoder.wasm-Cvy1kpGq.js b/build/web-mobile/cocos-js/meshopt_decoder.wasm-Cvy1kpGq.js new file mode 100644 index 0000000..5120a03 --- /dev/null +++ b/build/web-mobile/cocos-js/meshopt_decoder.wasm-Cvy1kpGq.js @@ -0,0 +1 @@ +System.register([],(function(e){"use strict";return{execute:function(){e("default","assets/meshopt_decoder.wasm-Dt74TiIT.wasm")}}})); diff --git a/build/web-mobile/cocos-js/meshopt_decoder.wasm-DKe5VOQW.js b/build/web-mobile/cocos-js/meshopt_decoder.wasm-DKe5VOQW.js new file mode 100644 index 0000000..73d0b8b --- /dev/null +++ b/build/web-mobile/cocos-js/meshopt_decoder.wasm-DKe5VOQW.js @@ -0,0 +1 @@ +System.register([],(function(e){"use strict";return{execute:function(){e("default",function(){var e,t=!1,r=function(r){return void 0===r&&(r={}),"function"!=typeof r?Promise.reject(new Error("No wasm support detected")):r().then((function(r){t=!0,(e=r.instance).exports.__wasm_call_ctors()}))};function n(t,r,n,o,s,c){var u=e.exports.sbrk,i=n+3&-4,a=u(i*o),d=u(s.length),f=new Uint8Array(e.exports.memory.buffer);f.set(s,d);var p=t(a,n,o,d,s.length);if(0==p&&c&&c(a,i,o),r.set(f.subarray(a,a+n*o)),u(a-u(0)),0!=p)throw new Error("Malformed buffer data: "+p)}var o={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},s={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},c=[],u=0;function i(e){var t={object:new Worker(e),pending:0,requests:{}};return t.object.onmessage=function(e){var r=e.data;t.pending-=r.count,t.requests[r.id][r.action](r.value),delete t.requests[r.id]},t}function a(e){for(var t="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(unpack(wasm))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+n.toString()+f.toString(),r=new Blob([t],{type:"text/javascript"}),o=URL.createObjectURL(r),s=0;s0?d(t,u,i,s[a],o[f]):r.then((function(){var r=new Uint8Array(t*u);return n(e.exports[s[a]],r,t,u,i,e.exports[o[f]]),r}))}}}())}}})); diff --git a/build/web-mobile/cocos-js/spine-B64FaKrv.js b/build/web-mobile/cocos-js/spine-B64FaKrv.js new file mode 100644 index 0000000..c315178 --- /dev/null +++ b/build/web-mobile/cocos-js/spine-B64FaKrv.js @@ -0,0 +1 @@ +System.register([],(function(e){"use strict";return{execute:function(){e("default","assets/spine-BUh5FZoK.wasm")}}})); diff --git a/build/web-mobile/cocos-js/spine.asm-CuMHFj9t.js b/build/web-mobile/cocos-js/spine.asm-CuMHFj9t.js new file mode 100644 index 0000000..709c8bc --- /dev/null +++ b/build/web-mobile/cocos-js/spine.asm-CuMHFj9t.js @@ -0,0 +1 @@ +System.register([],(function(r){"use strict";return{execute:function(){var n;r("default",(n="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(r={}){var e,f,i;e||(e=void 0!==r?r:{}),e.ready=new Promise(((r,n)=>{f=r,i=n}));var t,u=Object.assign({},e),o="";function a(r){return e.locateFile?e.locateFile(r,o):o+r}"undefined"!=typeof document&&document.currentScript&&(o=document.currentScript.src),n&&(o=n),o=0!==o.indexOf("blob:")?o.substr(0,o.replace(/[?#].*/,"").lastIndexOf("/")+1):"",t=(r,n)=>{var e=new XMLHttpRequest;e.open("GET",J,!0),e.responseType="arraybuffer",e.onload=()=>{200==e.status||0==e.status&&e.response?r(e.response):n()},e.onerror=n,e.send(null)};var c,b=e.printErr||console.error.bind(console);function k(r){this.exports=function(r){var n=new ArrayBuffer(16),e=new Int32Array(n),f=new Float32Array(n),i=new Float64Array(n);function t(r){return e[r]}function u(r,n){e[r]=n}function o(){return i[0]}function a(r){i[0]=r}function c(){throw new Error("abort")}function b(r){f[2]=r}function k(){return f[2]}return function(r){var n=r.a,e=n.a,f=e.buffer;e.grow=function(r){r|=0;var n=0|$a(),t=n+r|0;if(n>2]=0,v[r>>2]=389,$(21533,4929,4,11280,11296,390,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=391,$(21533,4931,2,11304,11312,392,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=393,$(21533,2249,3,11316,11328,394,0|r,0,0),C(21539,21540,21541,0,11240,395,11243,0,11243,0,2377,11245,396),P(21539,1,11336,11240,397,398),r=Wt(8),v[r+4>>2]=0,v[r>>2]=399,$(21539,4929,4,11344,11360,400,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=401,$(21539,4931,2,11368,11312,402,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=403,$(21539,2249,3,11376,11388,404,0|r,0,0),r=Wt(4),v[r>>2]=405,$(21539,2242,4,11408,11360,1596,0|r,0,0),C(21544,21545,21546,0,11240,406,11243,0,11243,0,2357,11245,407),P(21544,1,11424,11240,408,409),r=Wt(8),v[r+4>>2]=0,v[r>>2]=410,$(21544,4929,4,11440,11296,411,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=412,$(21544,4931,2,11456,11312,413,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=414,$(21544,2249,3,11464,11328,415,0|r,0,0),r=Wt(4),v[r>>2]=416,$(21544,2242,4,11488,11296,1597,0|r,0,0),C(21547,21548,21549,0,11240,417,11243,0,11243,0,2143,11245,418),P(21547,1,11504,11240,419,420),r=Wt(8),v[r+4>>2]=0,v[r>>2]=421,$(21547,4929,4,11520,11296,422,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=423,$(21547,4931,2,11536,11312,424,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=425,$(21547,2249,3,11544,11328,426,0|r,0,0),r=Wt(4),v[r>>2]=427,$(21547,2242,4,11568,11296,1598,0|r,0,0),C(21550,21551,21552,0,11240,428,11243,0,11243,0,1760,11245,429),P(21550,1,11584,11240,430,431),r=Wt(8),v[r+4>>2]=0,v[r>>2]=432,$(21550,4929,4,11616,11296,433,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=434,$(21550,4931,2,11632,11312,435,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=436,$(21550,2249,3,11640,11328,437,0|r,0,0),r=Wt(4),v[r>>2]=438,$(21550,2242,4,11664,11296,1599,0|r,0,0),C(21554,21555,21556,0,11240,439,11243,0,11243,0,2125,11245,440),P(21554,1,11680,11240,441,442),r=Wt(8),v[r+4>>2]=0,v[r>>2]=443,$(21554,4929,4,11696,11296,444,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=445,$(21554,4931,2,11712,11312,446,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=447,$(21554,2249,3,11720,11328,448,0|r,0,0),r=Wt(4),v[r>>2]=449,$(21554,2242,4,11744,11296,1600,0|r,0,0),C(21557,21558,21559,0,11240,450,11243,0,11243,0,2391,11245,451),P(21557,1,11760,11240,452,453),r=Wt(8),v[r+4>>2]=0,v[r>>2]=454,$(21557,4929,4,11776,11296,455,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=456,$(21557,4931,2,11792,11312,457,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=458,$(21557,2249,3,11800,11328,459,0|r,0,0),r=Wt(4),v[r>>2]=460,$(21557,2242,4,11824,11296,1601,0|r,0,0),C(21560,21561,21562,0,11240,461,11243,0,11243,0,1498,11245,462),P(21560,1,11840,11240,463,464),r=Wt(8),v[r+4>>2]=0,v[r>>2]=465,$(21560,4929,4,11856,11296,466,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=467,$(21560,4931,2,11872,11312,468,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=469,$(21560,2249,3,11880,11328,470,0|r,0,0),r=Wt(4),v[r>>2]=471,$(21560,2242,4,11904,11296,1602,0|r,0,0),C(21564,21565,21566,0,11240,472,11243,0,11243,0,4867,11245,473),P(21564,1,11920,11240,474,475),r=Wt(8),v[r+4>>2]=0,v[r>>2]=476,$(21564,4929,4,11936,11296,477,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=478,$(21564,4931,2,11952,11312,479,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=480,$(21564,2249,3,11960,11328,481,0|r,0,0),r=Wt(4),v[r>>2]=482,$(21564,2242,4,11984,11296,1603,0|r,0,0),C(21567,21568,21569,0,11240,483,11243,0,11243,0,3283,11245,484),P(21567,1,12e3,11240,485,486),r=Wt(8),v[r+4>>2]=0,v[r>>2]=487,$(21567,4929,4,12016,11296,488,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=489,$(21567,4931,2,12032,11312,490,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=491,$(21567,2249,3,12040,11328,492,0|r,0,0),C(21570,21571,21572,0,11240,493,11243,0,11243,0,3500,11245,494),P(21570,1,12052,11240,495,496),r=Wt(8),v[r+4>>2]=0,v[r>>2]=497,$(21570,4929,4,12064,11296,498,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=499,$(21570,4931,2,12080,11312,500,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=501,$(21570,2249,3,12088,11328,502,0|r,0,0),C(21574,21575,21576,0,11240,503,11243,0,11243,0,3340,11245,504),P(21574,1,12100,11240,505,506),r=Wt(8),v[r+4>>2]=0,v[r>>2]=507,$(21574,4929,4,12112,11296,508,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=509,$(21574,4931,2,12128,11312,510,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=511,$(21574,2249,3,12136,11328,512,0|r,0,0),C(21578,21579,21580,0,11240,513,11243,0,11243,0,3386,11245,514),P(21578,1,12148,11240,515,516),r=Wt(8),v[r+4>>2]=0,v[r>>2]=517,$(21578,4929,4,12160,11296,518,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=519,$(21578,4931,2,12176,11312,520,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=521,$(21578,2249,3,12184,11328,522,0|r,0,0),C(21581,21582,21583,0,11240,523,11243,0,11243,0,3449,11245,524),P(21581,1,12196,11240,525,526),r=Wt(8),v[r+4>>2]=0,v[r>>2]=527,$(21581,4929,4,12208,11296,528,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=529,$(21581,4931,2,12224,11312,530,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=531,$(21581,2249,3,12232,11328,532,0|r,0,0),C(21584,21585,21586,0,11240,533,11243,0,11243,0,3360,11245,534),P(21584,1,12244,11240,535,536),r=Wt(8),v[r+4>>2]=0,v[r>>2]=537,$(21584,4929,4,12256,11296,538,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=539,$(21584,4931,2,12272,11312,540,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=541,$(21584,2249,3,12280,11328,542,0|r,0,0),C(21587,21588,21589,0,11240,543,11243,0,11243,0,3127,11245,544),P(21587,1,12292,11240,545,546),r=Wt(8),v[r+4>>2]=0,v[r>>2]=547,$(21587,4929,4,12304,11296,548,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=549,$(21587,4931,2,12320,11312,550,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=551,$(21587,2249,3,12328,11328,552,0|r,0,0),C(21591,21592,21593,0,11240,553,11243,0,11243,0,3262,11245,554),P(21591,1,12340,11240,555,556),r=Wt(8),v[r+4>>2]=0,v[r>>2]=557,$(21591,4929,4,12352,11296,558,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=559,$(21591,4931,2,12368,11312,560,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=561,$(21591,2249,3,12376,11328,562,0|r,0,0),C(21595,21596,21597,0,11240,563,11243,0,11243,0,3479,11245,564),P(21595,1,12388,11240,565,566),r=Wt(8),v[r+4>>2]=0,v[r>>2]=567,$(21595,4929,4,12400,11296,568,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=569,$(21595,4931,2,12416,11312,570,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=571,$(21595,2249,3,12424,11328,572,0|r,0,0),C(21599,21600,21601,0,11240,573,11243,0,11243,0,3224,11245,574),P(21599,1,12436,11240,575,576),r=Wt(8),v[r+4>>2]=0,v[r>>2]=577,$(21599,4929,4,12448,11296,578,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=579,$(21599,4931,2,12464,11312,580,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=581,$(21599,2249,3,12472,11328,582,0|r,0,0),C(21603,21604,21605,0,11240,583,11243,0,11243,0,3241,11245,584),P(21603,1,12484,11240,585,586),r=Wt(8),v[r+4>>2]=0,v[r>>2]=587,$(21603,4929,4,12496,11296,588,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=589,$(21603,4931,2,12512,11312,590,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=591,$(21603,2249,3,12520,11328,592,0|r,0,0),C(21607,21608,21609,0,11240,593,11243,0,11243,0,3174,11245,594),P(21607,1,12532,11240,595,596),r=Wt(8),v[r+4>>2]=0,v[r>>2]=597,$(21607,4929,4,12544,11296,598,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=599,$(21607,4931,2,12560,11312,600,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=601,$(21607,2249,3,12568,11328,602,0|r,0,0),C(21610,21611,21612,0,11240,603,11243,0,11243,0,3421,11245,604),P(21610,1,12580,11240,605,606),r=Wt(8),v[r+4>>2]=0,v[r>>2]=607,$(21610,4929,4,12592,11296,608,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=609,$(21610,4931,2,12608,11312,610,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=611,$(21610,2249,3,12616,11328,612,0|r,0,0),C(21613,21614,21615,0,11240,613,11243,0,11243,0,3143,11245,614),P(21613,1,12628,11240,615,616),r=Wt(8),v[r+4>>2]=0,v[r>>2]=617,$(21613,4929,4,12640,11296,618,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=619,$(21613,4931,2,12656,11312,620,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=621,$(21613,2249,3,12664,11328,622,0|r,0,0),C(21616,21617,21618,0,11240,623,11243,0,11243,0,3198,11245,624),P(21616,1,12676,11240,625,626),r=Wt(8),v[r+4>>2]=0,v[r>>2]=627,$(21616,4929,4,12688,11296,628,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=629,$(21616,4931,2,12704,11312,630,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=631,$(21616,2249,3,12712,11328,632,0|r,0,0),C(21619,21620,21621,0,11240,633,11243,0,11243,0,3299,11245,634),P(21619,1,12724,11240,635,636),r=Wt(8),v[r+4>>2]=0,v[r>>2]=637,$(21619,4929,4,12736,11296,638,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=639,$(21619,4931,2,12752,11312,640,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=641,$(21619,2249,3,12760,11328,642,0|r,0,0),r=Wt(4),v[r>>2]=643,$(21619,2242,4,12784,11296,1604,0|r,0,0),C(21622,21623,21624,0,11240,644,11243,0,11243,0,3100,11245,645),P(21622,1,12800,11240,646,647),r=Wt(8),v[r+4>>2]=0,v[r>>2]=648,$(21622,4929,4,12816,11296,649,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=650,$(21622,4931,2,12832,11312,651,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=652,$(21622,2249,3,12840,11328,653,0|r,0,0),C(21626,21627,21628,0,11240,654,11243,0,11243,0,3319,11245,655),P(21626,1,12852,11240,656,657),r=Wt(8),v[r+4>>2]=0,v[r>>2]=658,$(21626,4929,4,12864,11296,659,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=660,$(21626,4931,2,12880,11312,661,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=662,$(21626,2249,3,12888,11328,663,0|r,0,0),C(21629,21630,21631,0,11240,664,11243,0,11243,0,3079,11245,665),P(21629,1,12900,11240,666,667),r=Wt(8),v[r+4>>2]=0,v[r>>2]=668,$(21629,4929,4,12928,11296,669,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=670,$(21629,4931,2,12944,11312,671,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=672,$(21629,2249,3,12952,11328,673,0|r,0,0),C(21633,21634,21635,0,11240,674,11243,0,11243,0,3052,11245,675),P(21633,1,12964,11240,676,677),r=Wt(8),v[r+4>>2]=0,v[r>>2]=678,$(21633,4929,4,12992,11296,679,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=680,$(21633,4931,2,13008,11312,681,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=682,$(21633,2249,3,13016,11328,683,0|r,0,0),C(21636,21637,21638,0,11240,684,11243,0,11243,0,6953,11245,685),P(21636,1,13028,11240,686,687),P(21636,3,13032,13044,688,689),r=Wt(4),v[r>>2]=0,n=Wt(4),v[n>>2]=0,I(21636,1391,21542,13049,690,0|r,21542,13053,691,0|n),r=Wt(4),v[r>>2]=4,n=Wt(4),v[n>>2]=4,I(21636,1217,21542,13049,690,0|r,21542,13053,691,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=692,$(21636,2242,4,13072,13088,693,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=694,$(21636,4696,2,13096,13049,695,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=696,$(21636,4936,2,13104,11312,697,0|r,0,0),C(21639,21640,21641,0,11240,698,11243,0,11243,0,3548,11245,699),P(21639,1,13112,11240,700,701),P(21639,5,13120,13140,702,703),r=Wt(8),v[r+4>>2]=0,v[r>>2]=704,$(21639,2242,6,13152,13176,705,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=706,$(21639,6332,6,13152,13176,705,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=707,$(21639,3772,2,13184,11312,708,0|r,0,0),r=Wt(4),v[r>>2]=4,n=Wt(4),v[n>>2]=4,I(21639,3765,21542,13049,709,0|r,21542,13053,710,0|n),r=Wt(4),v[r>>2]=8,n=Wt(4),v[n>>2]=8,I(21639,4927,21542,13049,709,0|r,21542,13053,710,0|n),r=Wt(4),v[r>>2]=12,n=Wt(4),v[n>>2]=12,I(21639,6352,21542,13049,709,0|r,21542,13053,710,0|n),r=Wt(4),v[r>>2]=16,n=Wt(4),v[n>>2]=16,I(21639,6567,21542,13049,709,0|r,21542,13053,710,0|n),C(4305,7481,7475,0,11240,711,11243,0,11243,0,4305,11245,712),r=Wt(8),v[r+4>>2]=1,v[r>>2]=4,$(4305,1198,3,13192,13204,713,0|r,1,0),C(21642,21643,21644,0,11240,714,11243,0,11243,0,2253,11245,715),P(21642,1,13212,11240,716,717),C(6413,8011,8005,0,11240,718,11243,0,11243,0,6413,11245,719),P(6413,2,13216,11312,720,721),r=Wt(8),v[r+4>>2]=0,v[r>>2]=722,I(6413,5773,21520,11312,723,0|r,0,0,0,0),r=Wt(4),v[r>>2]=16,n=Wt(4),v[n>>2]=16,I(6413,3633,21537,11312,724,0|r,21537,13224,725,0|n),r=Wt(4),v[r>>2]=20,n=Wt(4),v[n>>2]=20,I(6413,6286,21645,11312,726,0|r,21645,13224,727,0|n),C(6392,7961,7955,6413,11240,728,11240,729,11240,730,6392,11245,731),P(6392,2,13232,11312,732,733),r=Wt(4),v[r>>2]=734,$(6392,2780,2,13240,11312,1605,0|r,0,0),r=Wt(4),v[r>>2]=40,n=Wt(4),v[n>>2]=40,I(6392,2246,21646,11312,735,0|r,21646,13224,736,0|n),r=Wt(4),v[r>>2]=44,n=Wt(4),v[n>>2]=44,I(6392,3998,21543,11312,737,0|r,21543,13224,738,0|n),r=Wt(4),v[r>>2]=48,n=Wt(4),v[n>>2]=48,I(6392,2581,21645,11312,739,0|r,21645,13224,740,0|n),r=Wt(4),v[r>>2]=49,n=Wt(4),v[n>>2]=49,I(6392,4833,21645,11312,739,0|r,21645,13224,740,0|n),r=Wt(4),v[r>>2]=50,n=Wt(4),v[n>>2]=50,I(6392,4494,21645,11312,739,0|r,21645,13224,740,0|n),r=Wt(4),v[r>>2]=52,n=Wt(4),v[n>>2]=52,I(6392,1231,21542,13049,741,0|r,21542,13053,742,0|n),r=Wt(4),v[r>>2]=56,n=Wt(4),v[n>>2]=56,I(6392,2590,21542,13049,741,0|r,21542,13053,742,0|n),C(6409,7985,7979,6413,11240,743,11240,744,11240,745,6409,11245,746),P(6409,2,13248,11312,747,748),r=Wt(4),v[r>>2]=749,$(6409,2780,2,13256,11312,1606,0|r,0,0),r=Wt(4),v[r>>2]=40,n=Wt(4),v[n>>2]=40,I(6409,2246,21647,11312,750,0|r,21647,13224,751,0|n),r=Wt(4),v[r>>2]=44,n=Wt(4),v[n>>2]=44,I(6409,5922,21527,11312,752,0|r,21527,13224,753,0|n),r=Wt(4),v[r>>2]=48,n=Wt(4),v[n>>2]=48,I(6409,6003,21528,11312,754,0|r,21528,13224,755,0|n),r=Wt(4),v[r>>2]=52,n=Wt(4),v[n>>2]=52,I(6409,6034,21529,11312,756,0|r,21529,13224,757,0|n),r=Wt(4),v[r>>2]=56,n=Wt(4),v[n>>2]=56,I(6409,4065,21542,13049,758,0|r,21542,13053,759,0|n),r=Wt(4),v[r>>2]=60,n=Wt(4),v[n>>2]=60,I(6409,3948,21542,13049,758,0|r,21542,13053,759,0|n),r=Wt(4),v[r>>2]=64,n=Wt(4),v[n>>2]=64,I(6409,4921,21542,13049,758,0|r,21542,13053,759,0|n),r=Wt(4),v[r>>2]=68,n=Wt(4),v[n>>2]=68,I(6409,1269,21542,13049,758,0|r,21542,13053,759,0|n),r=Wt(4),v[r>>2]=72,n=Wt(4),v[n>>2]=72,I(6409,1279,21542,13049,758,0|r,21542,13053,759,0|n),C(21648,21649,21650,0,11240,760,11243,0,11243,0,2976,11245,761),P(21648,1,13264,11240,762,763),r=Wt(8),v[r+4>>2]=0,v[r>>2]=764,$(21648,5116,4,13280,11296,765,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=766,$(21648,1682,4,13296,13088,767,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=768,$(21648,2071,6,13312,13176,769,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=770,$(21648,3872,3,13336,11328,771,0|r,0,0),r=Wt(4),v[r>>2]=772,$(21648,1668,4,13360,13088,1607,0|r,0,0),r=Wt(4),v[r>>2]=773,$(21648,2053,6,13376,13176,1608,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=774,$(21648,4740,2,13400,13049,775,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=776,$(21648,2190,2,13400,13049,775,0|r,0,0),C(21652,21602,21653,0,11240,777,11243,0,11243,0,1817,11245,778),P(21652,3,13408,13420,779,780),r=Wt(4),v[r>>2]=781,I(21652,6354,21654,11312,782,0|r,0,0,0,0),r=Wt(4),v[r>>2]=12,n=Wt(4),v[n>>2]=12,I(21652,5013,21543,11312,783,0|r,21543,13224,784,0|n),r=Wt(4),v[r>>2]=16,n=Wt(4),v[n>>2]=16,I(21652,5022,21542,13049,785,0|r,21542,13053,786,0|n),r=Wt(4),v[r>>2]=20,n=Wt(4),v[n>>2]=20,I(21652,5033,21520,11312,787,0|r,21520,13224,788,0|n),r=Wt(4),v[r>>2]=8,I(21652,5688,21542,13049,785,0|r,0,0,0,0),r=Wt(4),v[r>>2]=32,n=Wt(4),v[n>>2]=32,I(21652,5681,21542,13049,785,0|r,21542,13053,786,0|n),r=Wt(4),v[r>>2]=36,n=Wt(4),v[n>>2]=36,I(21652,6107,21542,13049,785,0|r,21542,13053,786,0|n),C(21654,21598,21655,0,11240,789,11243,0,11243,0,6428,11245,790),P(21654,2,13428,11312,791,792),r=Wt(8),v[r+4>>2]=0,v[r>>2]=793,I(21654,5773,21520,11312,794,0|r,0,0,0,0),r=Wt(4),v[r>>2]=16,n=Wt(4),v[n>>2]=16,I(21654,5013,21543,11312,795,0|r,21543,13224,796,0|n),r=Wt(4),v[r>>2]=20,n=Wt(4),v[n>>2]=20,I(21654,5022,21542,13049,797,0|r,21542,13053,798,0|n),r=Wt(4),v[r>>2]=24,n=Wt(4),v[n>>2]=24,I(21654,5033,21520,11312,799,0|r,21520,13224,800,0|n),r=Wt(4),v[r>>2]=36,n=Wt(4),v[n>>2]=36,I(21654,4765,21520,11312,799,0|r,21520,13224,800,0|n),r=Wt(4),v[r>>2]=48,n=Wt(4),v[n>>2]=48,I(21654,5681,21542,13049,797,0|r,21542,13053,798,0|n),r=Wt(4),v[r>>2]=52,n=Wt(4),v[n>>2]=52,I(21654,6107,21542,13049,797,0|r,21542,13053,798,0|n),C(2042,7288,7282,0,11240,801,11243,0,11243,0,2042,11245,802),r=Wt(8),v[r+4>>2]=0,v[r>>2]=803,I(2042,5773,21520,11312,804,0|r,0,0,0,0),C(1877,7147,7141,2042,11240,805,11240,806,11240,807,1877,11245,808),r=Wt(8),v[r+4>>2]=0,v[r>>2]=809,I(1877,6270,21543,11312,810,0|r,0,0,0,0),r=Wt(4),v[r>>2]=811,$(1877,2780,2,13436,11312,1609,0|r,0,0),r=Wt(4),v[r>>2]=812,$(1877,2910,2,13444,11312,1610,0|r,0,0),r=Wt(4),v[r>>2]=52,n=Wt(4),v[n>>2]=52,I(1877,4703,21537,11312,813,0|r,21537,13224,814,0|n),r=Wt(4),v[r>>2]=56,n=Wt(4),v[n>>2]=56,I(1877,1961,1877,11312,815,0|r,1877,13224,816,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=817,$(1877,2939,8,13456,13488,818,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=819,$(1877,3822,3,13500,13224,820,0|r,0,0),C(1855,7118,7112,1877,11240,821,11240,822,11240,823,1855,11245,824),P(1855,2,13512,11312,825,826),r=Wt(8),v[r+4>>2]=0,v[r>>2]=803,I(1855,5773,21520,11312,827,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(1855,1168,2,13520,11312,828,0|r,0,0),C(2017,7262,7256,1877,11240,829,11240,830,11240,831,2017,11245,832),P(2017,2,13528,11312,833,834),r=Wt(8),v[r+4>>2]=0,v[r>>2]=835,n=Wt(8),v[n+4>>2]=0,v[n>>2]=836,I(2017,1614,21647,11312,837,0|r,21647,13224,838,0|n),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(2017,1168,2,13536,11312,839,0|r,0,0),C(1999,7240,7234,1877,11240,840,11240,841,11240,842,1999,11245,843),P(1999,2,13544,11312,844,845),r=Wt(4),v[r>>2]=168,n=Wt(4),v[n>>2]=168,I(1999,4749,21520,11312,846,0|r,21520,13224,847,0|n),rt(3018,848),rt(3011,849),nt(2841,850),r=Wt(4),v[r>>2]=851,I(1999,3520,21639,11312,852,0|r,0,0,0,0),r=Wt(4),v[r>>2]=196,n=Wt(4),v[n>>2]=196,I(1999,4734,21542,13049,853,0|r,21542,13053,854,0|n),r=Wt(4),v[r>>2]=200,n=Wt(4),v[n>>2]=200,I(1999,2183,21542,13049,853,0|r,21542,13053,854,0|n);r=Wt(4),v[r>>2]=224,n=Wt(4),v[n>>2]=224,I(1999,4723,21543,11312,855,0|r,21543,13224,856,0|n),nt(2877,857),r=Wt(8),v[r+4>>2]=0,v[r>>2]=858,$(1999,3031,2,13568,13576,859,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=860,$(1999,4800,2,13580,11312,861,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=862,$(1999,4786,3,13588,13224,863,0|r,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(1999,1168,2,13600,11312,864,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=865,$(1999,4814,2,13580,11312,861,0|r,0,0),C(1981,7218,7212,1877,11240,866,11240,867,11240,868,1981,11245,869),P(1981,2,13608,11312,870,871),r=Wt(4),v[r>>2]=872,$(1981,2730,2,13616,11312,1613,0|r,0,0),r=Wt(4),v[r>>2]=80,n=Wt(4),v[n>>2]=80,I(1981,6279,21645,11312,873,0|r,21645,13224,874,0|n),r=Wt(4),v[r>>2]=81,n=Wt(4),v[n>>2]=81,I(1981,6318,21645,11312,873,0|r,21645,13224,874,0|n),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(1981,1168,2,13624,11312,875,0|r,0,0),C(1897,7171,7165,2042,11240,876,11240,877,11240,878,1897,11245,879),P(1897,2,13632,11312,880,881),r=Wt(4),v[r>>2]=20,n=Wt(4),v[n>>2]=20,I(1897,1391,21542,13049,882,0|r,21542,13053,883,0|n),r=Wt(4),v[r>>2]=24,n=Wt(4),v[n>>2]=24,I(1897,1217,21542,13049,882,0|r,21542,13053,883,0|n),r=Wt(4),v[r>>2]=28,n=Wt(4),v[n>>2]=28,I(1897,4056,21542,13049,882,0|r,21542,13053,883,0|n),r=Wt(4),v[r>>2]=884,$(1897,3957,5,13648,13668,1614,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=885,$(1897,4122,3,13676,11388,886,0|r,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(1897,1168,2,13688,11312,887,0|r,0,0),C(1944,7194,7188,2042,11240,888,11240,889,11240,890,1944,11245,891),P(1944,2,13696,11312,892,893),r=Wt(4),v[r>>2]=32,n=Wt(4),v[n>>2]=32,I(1944,1391,21542,13049,894,0|r,21542,13053,895,0|n),r=Wt(4),v[r>>2]=36,n=Wt(4),v[n>>2]=36,I(1944,1217,21542,13049,894,0|r,21542,13053,895,0|n),r=Wt(4),v[r>>2]=44,n=Wt(4),v[n>>2]=44,I(1944,6726,21542,13049,894,0|r,21542,13053,895,0|n),r=Wt(4),v[r>>2]=48,n=Wt(4),v[n>>2]=48,I(1944,6633,21542,13049,894,0|r,21542,13053,895,0|n),r=Wt(4),v[r>>2]=40,n=Wt(4),v[n>>2]=40,I(1944,4056,21542,13049,894,0|r,21542,13053,895,0|n),r=Wt(4),v[r>>2]=52,n=Wt(4),v[n>>2]=52,I(1944,4734,21542,13049,894,0|r,21542,13053,895,0|n),r=Wt(4),v[r>>2]=56,n=Wt(4),v[n>>2]=56,I(1944,2183,21542,13049,894,0|r,21542,13053,895,0|n),r=Wt(4),v[r>>2]=896,I(1944,3520,21639,11312,897,0|r,0,0,0,0),r=Wt(4),v[r>>2]=116,n=Wt(4),v[n>>2]=116,I(1944,4749,21520,11312,898,0|r,21520,13224,899,0|n),et(2215,900),r=Wt(8),v[r+4>>2]=0,v[r>>2]=901,$(1944,3004,7,13712,13740,902,0|r,0,0),et(3011,903),r=Wt(8),v[r+4>>2]=0,v[r>>2]=904,$(1944,2233,2,13752,13576,905,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=906,$(1944,2939,6,13760,13784,907,0|r,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(1944,1168,2,13792,11312,908,0|r,0,0),C(3667,7406,7400,0,11240,909,11243,0,11243,0,3667,11245,910),r=Wt(8),v[r+4>>2]=1,v[r>>2]=32,$(3667,2014,4,13808,13824,911,0|r,1,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=28,$(3667,1894,4,13840,13824,912,0|r,1,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=24,$(3667,1978,4,13856,13824,913,0|r,1,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=20,$(3667,1852,4,13872,13824,914,0|r,1,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=16,$(3667,1996,5,13888,13908,915,0|r,1,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(3667,1941,5,13920,13908,916,0|r,1,0),C(3662,7377,7371,3667,11240,917,11240,918,11240,919,3662,11245,920),P(3662,2,13940,11312,921,922),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(3662,1941,5,13952,13908,923,0|r,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=16,$(3662,1996,5,13984,13908,924,0|r,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=20,$(3662,1852,4,14016,13824,925,0|r,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=24,$(3662,1978,4,14032,13824,926,0|r,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=28,$(3662,1894,4,14048,13824,927,0|r,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=32,$(3662,2014,4,14064,13824,928,0|r,0,0),C(21659,21660,21661,0,11240,929,11243,0,11243,0,5905,11245,930),P(21659,2,14080,11312,931,932),r=Wt(4),v[r>>2]=933,$(21659,5812,2,14088,11312,1616,0|r,0,0),r=Wt(4),v[r>>2]=44,n=Wt(4),v[n>>2]=44,I(21659,3554,21530,11312,934,0|r,21530,13224,935,0|n),r=Wt(4),v[r>>2]=48,n=Wt(4),v[n>>2]=48,I(21659,3564,21530,11312,934,0|r,21530,13224,935,0|n),r=Wt(4),v[r>>2]=52,n=Wt(4),v[n>>2]=52,I(21659,3784,21531,11312,936,0|r,21531,13224,937,0|n),r=Wt(4),v[r>>2]=56,n=Wt(4),v[n>>2]=56,I(21659,3778,21531,11312,936,0|r,21531,13224,937,0|n),r=Wt(4),v[r>>2]=60,n=Wt(4),v[n>>2]=60,I(21659,4734,21543,11312,938,0|r,21543,13224,939,0|n),r=Wt(4),v[r>>2]=64,n=Wt(4),v[n>>2]=64,I(21659,2183,21543,11312,938,0|r,21543,13224,939,0|n),C(21662,21663,21664,0,11240,940,11243,0,11243,0,4351,11245,941),r=Wt(4),v[r>>2]=942,$(21662,5812,2,14096,11312,1617,0|r,0,0),r=Wt(4),v[r>>2]=20,n=Wt(4),v[n>>2]=20,I(21662,1391,21543,11312,943,0|r,21543,13224,944,0|n),r=Wt(4),v[r>>2]=24,n=Wt(4),v[n>>2]=24,I(21662,1217,21543,11312,943,0|r,21543,13224,944,0|n),r=Wt(4),v[r>>2]=68,n=Wt(4),v[n>>2]=68,I(21662,1301,21543,11312,943,0|r,21543,13224,944,0|n),r=Wt(4),v[r>>2]=72,n=Wt(4),v[n>>2]=72,I(21662,5081,21645,11312,945,0|r,21645,13224,946,0|n),r=Wt(4),v[r>>2]=76,n=Wt(4),v[n>>2]=76,I(21662,2893,21543,11312,943,0|r,21543,13224,944,0|n),C(21665,21666,21667,0,11240,947,11243,0,11243,0,3684,11245,948),C(21668,21658,21669,0,11240,949,11243,0,11243,0,2991,11245,950),P(21668,4,14112,13824,951,952),r=Wt(8),v[r+4>>2]=0,v[r>>2]=953,$(21668,4370,3,14128,11328,954,0|r,0,0),C(4282,7430,7424,4305,11240,955,11240,956,11240,957,1393,11245,958),P(4282,2,14140,11312,959,960),C(4299,7454,7448,4305,11240,961,11240,962,11240,963,1402,11245,964),P(4299,2,14148,11312,965,966),C(21647,21577,21670,0,11240,967,11243,0,11243,0,6359,11245,968),P(21647,4,14160,13824,969,970),r=Wt(8),v[r+4>>2]=0,v[r>>2]=971,I(21647,1301,21543,11312,972,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=973,I(21647,5773,21520,11312,974,0|r,0,0,0,0),r=Wt(4),v[r>>2]=975,I(21647,6508,21646,11312,976,0|r,0,0,0,0),r=Wt(4),v[r>>2]=977,I(21647,3520,21639,11312,978,0|r,0,0,0,0),r=Wt(4),v[r>>2]=979,I(21647,3544,21639,11312,978,0|r,0,0,0,0),r=Wt(4),v[r>>2]=80,n=Wt(4),v[n>>2]=80,I(21647,6063,21525,11312,980,0|r,21525,13224,981,0|n),C(5833,7913,7907,0,11240,982,11243,0,11243,0,5833,11245,983),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(5833,5116,2,14176,13576,984,0|r,1,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=16,$(5833,4990,2,14184,11312,985,0|r,1,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=16,n=Wt(8),v[n+4>>2]=1,v[n>>2]=20,I(5833,4983,21645,11312,986,0|r,21645,13224,987,0|n),C(1728,7076,7070,5833,11240,988,11240,989,11240,990,1728,11245,991),P(1728,3,14192,11328,992,993),r=Wt(4),v[r>>2]=994,I(1728,6354,6392,11312,995,0|r,0,0,0,0),r=Wt(4),v[r>>2]=996,$(1728,2780,2,14204,11312,1618,0|r,0,0),r=Wt(4),v[r>>2]=40,n=Wt(4),v[n>>2]=40,I(1728,2246,5364,11312,997,0|r,5364,13224,998,0|n),r=Wt(4),v[r>>2]=24,n=Wt(4),v[n>>2]=24,I(1728,3998,21543,11312,999,0|r,21543,13224,1e3,0|n),r=Wt(4),v[r>>2]=28,n=Wt(4),v[n>>2]=28,I(1728,2581,21645,11312,1001,0|r,21645,13224,1002,0|n),r=Wt(4),v[r>>2]=29,n=Wt(4),v[n>>2]=29,I(1728,4833,21645,11312,1001,0|r,21645,13224,1002,0|n),r=Wt(4),v[r>>2]=32,n=Wt(4),v[n>>2]=32,I(1728,1231,21542,13049,1003,0|r,21542,13053,1004,0|n),r=Wt(4),v[r>>2]=36,n=Wt(4),v[n>>2]=36,I(1728,2590,21542,13049,1003,0|r,21542,13053,1004,0|n),R(1728,6964,8,14224,14256,1005,1006,0),R(1728,6946,9,14272,14308,1007,1008,0),C(1745,7096,7090,5833,11240,1009,11240,1010,11240,1011,1745,11245,1012),P(1745,3,14320,11328,1013,1014),r=Wt(4),v[r>>2]=1015,I(1745,6354,6409,11312,1016,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1017,$(1745,2780,2,14332,11312,1619,0|r,0,0),r=Wt(4),v[r>>2]=24,n=Wt(4),v[n>>2]=24,I(1745,2246,21656,11312,1018,0|r,21656,13224,1019,0|n),r=Wt(4),v[r>>2]=28,n=Wt(4),v[n>>2]=28,I(1745,3948,21542,13049,1020,0|r,21542,13053,1021,0|n),r=Wt(4),v[r>>2]=32,n=Wt(4),v[n>>2]=32,I(1745,4921,21542,13049,1020,0|r,21542,13053,1021,0|n),r=Wt(4),v[r>>2]=36,n=Wt(4),v[n>>2]=36,I(1745,1269,21542,13049,1020,0|r,21542,13053,1021,0|n),r=Wt(4),v[r>>2]=40,n=Wt(4),v[n>>2]=40,I(1745,1279,21542,13049,1020,0|r,21542,13053,1021,0|n),C(6368,7930,7924,6413,11240,1022,11240,1023,11240,1024,6368,11245,1025),P(6368,2,14340,11312,1026,1027),r=Wt(4),v[r>>2]=1028,$(6368,2780,2,14348,11312,1620,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1029,I(6368,2246,21646,11312,1030,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1031,I(6368,1269,21542,13049,1032,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1033,I(6368,1279,21542,13049,1032,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1034,I(6368,1292,21542,13049,1032,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1035,I(6368,1260,21542,13049,1032,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1036,I(6368,4065,21542,13049,1032,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1037,I(6368,6675,21542,13049,1032,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1038,I(6368,6569,21542,13049,1032,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1039,I(6368,6733,21542,13049,1032,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1040,I(6368,6640,21542,13049,1032,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1041,I(6368,6601,21542,13049,1032,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1042,I(6368,4999,21645,11312,1043,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1044,I(6368,4588,21645,11312,1043,0|r,0,0,0,0),C(1704,7049,7043,5833,11240,1045,11240,1046,11240,1047,1704,11245,1048),P(1704,3,14356,11328,1049,1050),r=Wt(4),v[r>>2]=1051,I(1704,6354,6368,11312,1052,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1053,$(1704,2780,2,14368,11312,1621,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1054,I(1704,2246,5364,11312,1055,0|r,0,0,0,0),r=Wt(4),v[r>>2]=28,n=Wt(4),v[n>>2]=28,I(1704,1269,21542,13049,1056,0|r,21542,13053,1057,0|n),r=Wt(4),v[r>>2]=32,n=Wt(4),v[n>>2]=32,I(1704,1279,21542,13049,1056,0|r,21542,13053,1057,0|n),r=Wt(4),v[r>>2]=36,n=Wt(4),v[n>>2]=36,I(1704,1292,21542,13049,1056,0|r,21542,13053,1057,0|n),r=Wt(4),v[r>>2]=40,n=Wt(4),v[n>>2]=40,I(1704,1260,21542,13049,1056,0|r,21542,13053,1057,0|n),C(5364,7502,7496,5833,11240,1058,11240,1059,11240,1060,5364,11245,1061),P(5364,4,14384,13824,1062,1063),r=Wt(4),v[r>>2]=1064,I(5364,6354,21646,11312,1065,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1066,I(5364,3838,21651,11312,1067,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1068,I(5364,1834,5364,11312,1069,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1070,$(5364,4444,2,14400,11312,1622,0|r,0,0),r=Wt(4),v[r>>2]=32,n=Wt(4),v[n>>2]=32,I(5364,1391,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=36,n=Wt(4),v[n>>2]=36,I(5364,1217,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=40,n=Wt(4),v[n>>2]=40,I(5364,4056,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=44,n=Wt(4),v[n>>2]=44,I(5364,6726,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=48,n=Wt(4),v[n>>2]=48,I(5364,6633,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=52,n=Wt(4),v[n>>2]=52,I(5364,6700,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=56,n=Wt(4),v[n>>2]=56,I(5364,6594,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=60,n=Wt(4),v[n>>2]=60,I(5364,1390,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=64,n=Wt(4),v[n>>2]=64,I(5364,1216,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=68,n=Wt(4),v[n>>2]=68,I(5364,4055,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=72,n=Wt(4),v[n>>2]=72,I(5364,6725,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=76,n=Wt(4),v[n>>2]=76,I(5364,6632,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=80,n=Wt(4),v[n>>2]=80,I(5364,6699,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=84,n=Wt(4),v[n>>2]=84,I(5364,6593,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=88,n=Wt(4),v[n>>2]=88,I(5364,6260,21645,11312,1073,0|r,21645,13224,1074,0|n),r=Wt(4),v[r>>2]=92,n=Wt(4),v[n>>2]=92,I(5364,6567,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=96,n=Wt(4),v[n>>2]=96,I(5364,6352,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=104,n=Wt(4),v[n>>2]=104,I(5364,6350,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=108,n=Wt(4),v[n>>2]=108,I(5364,6348,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=100,n=Wt(4),v[n>>2]=100,I(5364,6761,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(4),v[r>>2]=112,n=Wt(4),v[n>>2]=112,I(5364,6668,21542,13049,1071,0|r,21542,13053,1072,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1075,$(5364,4473,2,14408,13576,1076,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1077,$(5364,4671,9,14416,14452,1078,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1079,$(5364,5130,2,14408,13576,1076,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1080,$(5364,6707,2,14464,13049,1081,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1082,$(5364,6614,2,14464,13049,1081,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1083,$(5364,6746,2,14464,13049,1081,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1084,$(5364,6653,2,14464,13049,1081,0|r,0,0),ft(4594,1085),ft(6176,1086),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1087,$(5364,4080,3,14484,13204,1088,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1089,$(5364,4101,3,14484,13204,1088,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1090,$(5364,6189,3,14496,13053,1091,0|r,0,0),C(21646,21573,21672,0,11240,1092,11243,0,11243,0,6517,11245,1093),P(21646,4,14512,13824,1094,1095),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1096,I(21646,1301,21543,11312,1097,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1098,I(21646,5773,21520,11312,1099,0|r,0,0,0,0),r=Wt(4),v[r>>2]=20,n=Wt(4),v[n>>2]=20,I(21646,1834,21646,11312,1100,0|r,21646,13224,1101,0|n),r=Wt(4),v[r>>2]=24,n=Wt(4),v[n>>2]=24,I(21646,4696,21542,13049,1102,0|r,21542,13053,1103,0|n),r=Wt(4),v[r>>2]=28,n=Wt(4),v[n>>2]=28,I(21646,1391,21542,13049,1102,0|r,21542,13053,1103,0|n),r=Wt(4),v[r>>2]=32,n=Wt(4),v[n>>2]=32,I(21646,1217,21542,13049,1102,0|r,21542,13053,1103,0|n),r=Wt(4),v[r>>2]=36,n=Wt(4),v[n>>2]=36,I(21646,4056,21542,13049,1102,0|r,21542,13053,1103,0|n),r=Wt(4),v[r>>2]=40,n=Wt(4),v[n>>2]=40,I(21646,6726,21542,13049,1102,0|r,21542,13053,1103,0|n),r=Wt(4),v[r>>2]=44,n=Wt(4),v[n>>2]=44,I(21646,6633,21542,13049,1102,0|r,21542,13053,1103,0|n),r=Wt(4),v[r>>2]=48,n=Wt(4),v[n>>2]=48,I(21646,6700,21542,13049,1102,0|r,21542,13053,1103,0|n),r=Wt(4),v[r>>2]=52,n=Wt(4),v[n>>2]=52,I(21646,6594,21542,13049,1102,0|r,21542,13053,1103,0|n),r=Wt(4),v[r>>2]=56,n=Wt(4),v[n>>2]=56,I(21646,5955,21526,11312,1104,0|r,21526,13224,1105,0|n),r=Wt(4),v[r>>2]=60,n=Wt(4),v[n>>2]=60,I(21646,6286,21645,11312,1106,0|r,21645,13224,1107,0|n),C(21656,21590,21673,0,11240,1108,11243,0,11243,0,1617,11245,1109),P(21656,3,14528,11328,1110,1111),r=Wt(4),v[r>>2]=1112,I(21656,6354,21647,11312,1113,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1114,I(21656,5343,5364,11312,1115,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1116,I(21656,3520,21639,11312,1117,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1118,I(21656,3544,21639,11312,1117,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1119,$(21656,4509,2,14540,11312,1624,0|r,0,0),r=Wt(4),v[r>>2]=1120,$(21656,3860,2,14548,11312,1625,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1121,$(21656,1927,2,14556,11312,1122,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1123,$(21656,1913,3,14564,13224,1124,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1125,$(21656,5701,3,14576,13053,1126,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1127,$(21656,5719,2,14588,13049,1128,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1129,$(21656,5130,2,14596,13576,1130,0|r,0,0),C(21657,21594,21674,0,11240,1131,11243,0,11243,0,4427,11245,1132),P(21657,2,14604,11312,1133,1134),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1135,I(21657,5773,21520,11312,1136,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1137,$(21657,2780,2,14612,11312,1626,0|r,0,0),r=Wt(4),v[r>>2]=1138,$(21657,2454,2,14620,11312,1627,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1139,$(21657,1913,5,14640,14660,1140,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1141,$(21657,4424,3,14668,13224,1142,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1143,$(21657,4386,3,14668,13224,1142,0|r,0,0),r=Wt(4),v[r>>2]=1144,$(21657,1572,3,14680,11328,1628,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1145,$(21657,1927,4,14704,13824,1146,0|r,0,0),r=Wt(4),v[r>>2]=1147,$(21657,2558,2,14720,11312,1629,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1148,$(21657,2036,4,14736,11296,1149,0|r,0,0),r=Wt(4),v[r>>2]=1150,$(21657,1550,3,14752,11328,1630,0|r,0,0),C(21675,21632,21676,0,11240,1151,11243,0,11243,0,1069,11245,1152),P(21675,4,14768,13824,1153,1154),r=Wt(4),v[r>>2]=0,n=Wt(4),v[n>>2]=0,I(21675,1307,21537,11312,1155,0|r,21537,13224,1156,0|n),r=Wt(4),v[r>>2]=1157,$(21675,5812,2,14784,11312,1631,0|r,0,0),r=Wt(4),v[r>>2]=1158,$(21675,1927,2,14792,11312,1632,0|r,0,0),C(21678,21679,21680,0,11240,1159,11243,0,11243,0,4904,11245,1160),P(21678,1,14800,11240,1161,1162),r=Wt(4),v[r>>2]=1163,I(21678,2960,21539,11312,1164,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1165,I(21678,2854,21560,11312,1166,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1167,I(21678,3041,21539,11312,1164,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1168,$(21678,1520,4,14816,13824,1169,0|r,0,0);r=Wt(8),v[r+4>>2]=0,v[r>>2]=1170,$(21678,1589,3,14832,13224,1171,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1172,$(21678,6146,2,14844,13576,1173,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1174,$(21678,4893,2,14852,11312,1175,0|r,0,0),C(21681,21682,21683,0,11240,1176,11243,0,11243,0,6476,11245,1177),P(21681,1,14860,11240,1178,1179),r=Wt(4),v[r>>2]=4,n=Wt(4),v[n>>2]=4,I(21681,5773,21520,11312,1180,0|r,21520,13224,1181,0|n),r=Wt(4),v[r>>2]=1182,$(21681,2780,2,14864,11312,1633,0|r,0,0),r=Wt(4),v[r>>2]=1183,$(21681,2445,2,14872,11312,1634,0|r,0,0),r=Wt(4),v[r>>2]=1184,$(21681,2691,2,14880,11312,1635,0|r,0,0),r=Wt(4),v[r>>2]=64,n=Wt(4),v[n>>2]=64,I(21681,4395,21657,11312,1185,0|r,21657,13224,1186,0|n),r=Wt(4),v[r>>2]=1187,$(21681,2536,2,14888,11312,1636,0|r,0,0),r=Wt(4),v[r>>2]=1188,$(21681,2671,2,14896,11312,1637,0|r,0,0),r=Wt(4),v[r>>2]=1189,$(21681,2493,2,14904,11312,1638,0|r,0,0),r=Wt(4),v[r>>2]=1190,$(21681,2469,2,14912,11312,1639,0|r,0,0),r=Wt(4),v[r>>2]=1191,$(21681,2510,2,14920,11312,1640,0|r,0,0),r=Wt(4),v[r>>2]=148,n=Wt(4),v[n>>2]=148,I(21681,1391,21542,13049,1192,0|r,21542,13053,1193,0|n),r=Wt(4),v[r>>2]=152,n=Wt(4),v[n>>2]=152,I(21681,1217,21542,13049,1192,0|r,21542,13053,1193,0|n),r=Wt(4),v[r>>2]=156,n=Wt(4),v[n>>2]=156,I(21681,4734,21542,13049,1192,0|r,21542,13053,1193,0|n),r=Wt(4),v[r>>2]=160,n=Wt(4),v[n>>2]=160,I(21681,2183,21542,13049,1192,0|r,21542,13053,1193,0|n),r=Wt(4),v[r>>2]=164,n=Wt(4),v[n>>2]=164,I(21681,4319,21520,11312,1180,0|r,21520,13224,1181,0|n),r=Wt(4),v[r>>2]=176,n=Wt(4),v[n>>2]=176,I(21681,4828,21520,11312,1180,0|r,21520,13224,1181,0|n),r=Wt(4),v[r>>2]=204,n=Wt(4),v[n>>2]=204,I(21681,2613,21542,13049,1192,0|r,21542,13053,1193,0|n),r=Wt(4),v[r>>2]=208,n=Wt(4),v[n>>2]=208,I(21681,4754,21520,11312,1180,0|r,21520,13224,1181,0|n),r=Wt(4),v[r>>2]=220,n=Wt(4),v[n>>2]=220,I(21681,4765,21520,11312,1180,0|r,21520,13224,1181,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1194,$(21681,5360,3,14928,11328,1195,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1196,$(21681,1376,3,14940,11328,1197,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1198,$(21681,1605,3,14952,11328,1199,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1200,$(21681,1317,3,14940,11328,1197,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1201,$(21681,4415,3,14964,11328,1202,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1203,$(21681,1813,3,14976,11328,1204,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1205,$(21681,4239,3,14988,11328,1206,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1207,$(21681,1724,3,15e3,11328,1208,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1209,$(21681,1700,3,15012,11328,1210,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1211,$(21681,1741,3,15024,11328,1212,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1213,$(21681,1331,3,14940,11328,1197,0|r,0,0),C(21684,21606,21685,0,11240,1214,11243,0,11243,0,4256,11245,1215),P(21684,4,15040,15056,1216,1217),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1218,I(21684,5773,21520,11312,1219,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1220,$(21684,2789,2,15068,11312,1641,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1221,$(21684,5483,3,15076,11328,1222,0|r,0,0),r=Wt(4),v[r>>2]=32,n=Wt(4),v[n>>2]=32,I(21684,4143,21542,13049,1223,0|r,21542,13053,1224,0|n),C(5672,7897,7891,0,11240,1225,11243,0,11243,0,5672,11245,1226),r=Wt(8),v[r+4>>2]=1,v[r>>2]=16,$(5672,6336,2,15088,11312,1227,0|r,1,0),C(5620,7808,7802,5672,11240,1228,11240,1229,11240,1230,5620,11245,1231),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1232,$(5620,1648,2,15096,11312,1233,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1234,$(5620,3732,3,15104,13224,1235,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1236,$(5620,6307,3,15104,13224,1235,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1237,$(5620,4952,7,15120,15148,1238,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1239,$(5620,2109,4,15168,15184,1240,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1241,$(5620,5270,3,15192,11388,1242,0|r,0,0),C(5649,7851,7845,5620,11240,1243,11240,1244,11240,1245,5649,11245,1246),P(5649,2,15204,11312,1247,1248),S(5649,6768,21543,11020,11240,1249,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1250,$(5649,5764,6,15216,15240,1251,0|r,0,0),C(5667,7876,7870,5649,11240,1252,11240,1253,11240,1254,5667,11245,1255),P(5667,2,15248,11312,1256,1257),C(5530,7727,7721,5649,11240,1258,11240,1259,11240,1260,5530,11245,1261),P(5530,2,15256,11312,1262,1263),C(5634,7829,7823,5620,11240,1264,11240,1265,11240,1266,5634,11245,1267),P(5634,2,15264,11312,1268,1269),r=Wt(4),v[r>>2]=20,n=Wt(4),v[n>>2]=20,I(5634,1366,21543,11312,1270,0|r,21543,13224,1271,0|n),r=Wt(4),v[r>>2]=1272,$(5634,2802,2,15272,11312,1642,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1273,$(5634,5764,5,15280,13668,1274,0|r,0,0),C(5498,7681,7675,5620,11240,1275,11240,1276,11240,1277,5498,11245,1278),P(5498,2,15300,11312,1279,1280),S(5498,6768,21543,9332,11240,1249,0,0),r=Wt(4),v[r>>2]=20,n=Wt(4),v[n>>2]=20,I(5498,1307,21543,11312,1281,0|r,21543,13224,1282,0|n),r=Wt(4),v[r>>2]=1283,$(5498,2802,2,15308,11312,1643,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1284,$(5498,5764,8,15328,15360,1285,0|r,0,0),C(5495,7657,7651,5620,11240,1286,11240,1287,11240,1288,5495,11245,1289),P(5495,2,15372,11312,1290,1291),S(5495,6768,21543,9332,11240,1249,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1292,n=Wt(8),v[n+4>>2]=0,v[n>>2]=1293,I(5495,1307,21543,11312,1294,0|r,21543,13224,1295,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1296,$(5495,5764,11,15392,15436,1297,0|r,0,0),C(5464,7631,7625,5672,11240,1298,11240,1299,11240,1300,5464,11245,1301),P(5464,2,15452,11312,1302,1303),r=Wt(4),v[r>>2]=4,n=Wt(4),v[n>>2]=4,I(5464,1307,21537,11312,1304,0|r,21537,13224,1305,0|n),r=Wt(4),v[r>>2]=1306,$(5464,2802,2,15460,11312,1644,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1307,$(5464,2812,2,15468,11312,1308,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1309,$(5464,1648,2,15476,11312,1310,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1311,$(5464,5764,5,15488,15508,1312,0|r,0,0),C(5575,7786,7780,5620,11240,1313,11240,1314,11240,1315,5575,11245,1316),P(5575,2,15516,11312,1317,1318),r=Wt(4),v[r>>2]=20,n=Wt(4),v[n>>2]=20,I(5575,1307,21543,11312,1319,0|r,21543,13224,1320,0|n),r=Wt(4),v[r>>2]=56,n=Wt(4),v[n>>2]=56,I(5575,1841,1877,11312,1321,0|r,1877,13224,1322,0|n),r=Wt(4),v[r>>2]=1323,$(5575,2802,2,15524,11312,1645,0|r,0,0),r=Wt(4),v[r>>2]=1324,$(5575,2922,2,15532,11312,1646,0|r,0,0),r=Wt(4),v[r>>2]=1325,$(5575,5764,5,15552,15508,1647,0|r,0,0),C(5450,7610,7604,5672,11240,1326,11240,1327,11240,1328,5450,11245,1329),P(5450,2,15572,11312,1330,1331),r=Wt(4),v[r>>2]=1332,$(5450,2802,2,15580,11312,1648,0|r,0,0),r=Wt(4),v[r>>2]=1333,$(5450,2536,2,15588,11312,1649,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1334,$(5450,1648,2,15596,11312,1335,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1336,$(5450,5764,4,15616,11296,1337,0|r,0,0),C(5512,7702,7696,5672,11240,1338,11240,1339,11240,1340,5512,11245,1341),P(5512,2,15632,11312,1342,1343),r=Wt(4),v[r>>2]=1344,$(5512,2802,2,15640,11312,1650,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1345,$(5512,1648,2,15648,11312,1346,0|r,0,0),r=Wt(4),v[r>>2]=1347,$(5512,2599,2,15656,11312,1651,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1348,$(5512,5764,5,15664,15508,1349,0|r,0,0),C(5429,7582,7576,5620,11240,1350,11240,1351,11240,1352,5429,11245,1353),P(5429,2,15684,11312,1354,1355),S(5429,6768,21543,9684,11240,1249,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1356,$(5429,5764,9,15696,15732,1357,0|r,0,0),C(5401,7547,7541,5620,11240,1358,11240,1359,11240,1360,5401,11245,1361),P(5401,2,15744,11312,1362,1363),S(5401,6768,21543,10988,11240,1249,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1364,$(5401,5764,8,15760,15360,1365,0|r,0,0),C(5544,7748,7742,5620,11240,1366,11240,1367,11240,1368,5544,11245,1369),P(5544,2,15792,11312,1370,1371),S(5544,6768,21543,10988,11240,1249,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1372,$(5544,5764,5,15808,13668,1373,0|r,0,0),C(5375,7514,7508,5620,11240,1374,11240,1375,11240,1376,5375,11245,1377),P(5375,2,15828,11312,1378,1379),S(5375,6768,21543,9940,11240,1249,0,0),C(21687,21625,21688,0,11240,1380,11243,0,11243,0,1089,11245,1381),P(21687,1,15836,11240,1382,1383),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1384,I(21687,4164,21684,11312,1385,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1386,I(21687,1397,21687,11312,1387,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1388,I(21687,4519,21687,11312,1387,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1389,I(21687,3829,21687,11312,1387,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1390,I(21687,1355,21543,11312,1391,0|r,0,0,0,0),r=Wt(4),v[r>>2]=36,n=Wt(4),v[n>>2]=36,I(21687,3767,21645,11312,1392,0|r,21645,13224,1393,0|n),r=Wt(4),v[r>>2]=37,n=Wt(4),v[n>>2]=37,I(21687,2419,21645,11312,1392,0|r,21645,13224,1393,0|n),r=Wt(4),v[r>>2]=40,n=Wt(4),v[n>>2]=40,I(21687,6201,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(4),v[r>>2]=44,n=Wt(4),v[n>>2]=44,I(21687,6216,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(4),v[r>>2]=48,n=Wt(4),v[n>>2]=48,I(21687,6236,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(4),v[r>>2]=52,n=Wt(4),v[n>>2]=52,I(21687,1530,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(4),v[r>>2]=56,n=Wt(4),v[n>>2]=56,I(21687,6154,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1396,n=Wt(8),v[n+4>>2]=0,v[n>>2]=1397,I(21687,1469,21542,13049,1398,0|r,21542,13053,1399,0|n),r=Wt(4),v[r>>2]=68,n=Wt(4),v[n>>2]=68,I(21687,1213,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(4),v[r>>2]=72,n=Wt(4),v[n>>2]=72,I(21687,5754,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(4),v[r>>2]=84,n=Wt(4),v[n>>2]=84,I(21687,6167,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(4),v[r>>2]=88,n=Wt(4),v[n>>2]=88,I(21687,5875,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(4),v[r>>2]=92,n=Wt(4),v[n>>2]=92,I(21687,6526,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(4),v[r>>2]=96,n=Wt(4),v[n>>2]=96,I(21687,5693,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(4),v[r>>2]=100,n=Wt(4),v[n>>2]=100,I(21687,4152,21542,13049,1394,0|r,21542,13053,1395,0|n),r=Wt(4),v[r>>2]=112,n=Wt(4),v[n>>2]=112,I(21687,6121,21523,11312,1400,0|r,21523,13224,1401,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1402,$(21687,5737,2,15840,13049,1403,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1404,$(21687,5070,2,15848,11312,1405,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1406,$(21687,2617,2,15856,13576,1407,0|r,0,0),C(21689,21690,21691,0,11240,1408,11243,0,11243,0,6489,11245,1409),P(21689,2,15864,11312,1410,1411),r=Wt(4),v[r>>2]=8,n=Wt(4),v[n>>2]=8,I(21689,1235,21542,13049,1412,0|r,21542,13053,1413,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1414,I(21689,6463,21681,11312,1415,0|r,0,0,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1416,$(21689,1246,5,15872,15892,1417,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1418,$(21689,4626,5,15904,15892,1419,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1420,$(21689,1253,4,15936,15952,1421,0|r,0,0),C(21692,21693,21694,0,11240,1422,11243,0,11243,0,5091,11245,1423),P(21692,2,15960,11312,1424,1425),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1426,I(21692,6354,21689,11312,1427,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1428,$(21692,2700,2,15968,11312,1652,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1429,n=Wt(8),v[n+4>>2]=0,v[n>>2]=1430,I(21692,5875,21542,13049,1431,0|r,21542,13053,1432,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1433,$(21692,5116,3,15976,13053,1434,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1435,$(21692,1198,3,15988,11328,1436,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1437,$(21692,2710,2,16e3,13576,1438,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1439,$(21692,4615,3,16008,13224,1440,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1441,$(21692,4210,5,16032,13908,1442,0|r,0,0),r=Wt(4),v[r>>2]=1443,$(21692,4637,5,16064,13908,1653,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1444,$(21692,4253,6,16096,16120,1445,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1446,$(21692,4654,6,16128,16120,1447,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1448,$(21692,4174,4,16160,15056,1449,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1450,$(21692,4192,5,16176,16196,1451,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1452,$(21692,2652,3,15976,13053,1434,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1453,$(21692,1823,3,16204,11328,1454,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1455,$(21692,5045,2,16e3,13576,1438,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1456,$(21692,5058,2,16e3,13576,1438,0|r,0,0),C(21651,21695,21696,0,11240,1457,11243,0,11243,0,3907,11245,1458),P(21651,2,16216,11312,1459,1460),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1461,I(21651,6354,21681,11312,1462,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1463,$(21651,2780,2,16224,11312,1654,0|r,0,0),Qi(2445,1464),Qi(3649,1465),r=Wt(4),v[r>>2]=1466,$(21651,2493,2,16240,11312,1656,0|r,0,0),r=Wt(4),v[r>>2]=1467,$(21651,2469,2,16248,11312,1657,0|r,0,0),r=Wt(4),v[r>>2]=1468,$(21651,2510,2,16256,11312,1658,0|r,0,0),r=Wt(4),v[r>>2]=1469,$(21651,1409,2,16264,11312,1659,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1470,I(21651,4381,21657,11312,1471,0|r,0,0,0,0),r=Wt(4),v[r>>2]=1472,I(21651,3520,21639,11312,1473,0|r,0,0,0,0),r=Wt(4),v[r>>2]=160,n=Wt(4),v[n>>2]=160,I(21651,5688,21542,13049,1474,0|r,21542,13053,1475,0|n),r=Wt(4),v[r>>2]=164,n=Wt(4),v[n>>2]=164,I(21651,6726,21542,13049,1474,0|r,21542,13053,1475,0|n),r=Wt(4),v[r>>2]=168,n=Wt(4),v[n>>2]=168,I(21651,6633,21542,13049,1474,0|r,21542,13053,1475,0|n),r=Wt(4),v[r>>2]=172,n=Wt(4),v[n>>2]=172,I(21651,1391,21542,13049,1474,0|r,21542,13053,1475,0|n),r=Wt(4),v[r>>2]=176,n=Wt(4),v[n>>2]=176,I(21651,1217,21542,13049,1474,0|r,21542,13053,1475,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1476,$(21651,5893,2,16272,13576,1477,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1478,$(21651,4473,2,16272,13576,1477,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1479,$(21651,5130,2,16272,13576,1477,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1480,$(21651,5165,2,16272,13576,1477,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1481,$(21651,5145,2,16272,13576,1477,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1482,$(21651,5348,2,16280,11312,1483,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1484,$(21651,5360,3,16288,11328,1485,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1486,$(21651,1376,3,16300,11328,1487,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1488,$(21651,1605,3,16312,11328,1489,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1490,$(21651,1317,3,16300,11328,1487,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1491,$(21651,5798,3,16324,13224,1492,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1493,$(21651,4407,3,16336,13224,1494,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1495,$(21651,5778,4,16352,13824,1496,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1497,$(21651,1927,4,16368,13824,1498,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1499,$(21651,1913,4,16384,11296,1500,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1501,$(21651,1724,3,16400,11328,1502,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1503,$(21651,1700,3,16412,11328,1504,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1505,$(21651,1741,3,16424,11328,1506,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1507,$(21651,5116,3,16436,13053,1508,0|r,0,0),C(2295,7357,7351,0,11240,1509,11243,0,11243,0,2295,11245,1510),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(2295,4432,3,16448,13224,1511,0|r,1,0),r=Wt(4),v[r>>2]=1512,$(2295,4463,4,16464,16480,1660,0|r,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=20,$(2295,6142,2,16488,13576,1513,0|r,1,0),C(2271,7306,7300,2295,11240,1514,11240,1515,11240,1516,2311,11245,1517),P(2271,3,16496,13044,1518,1519),r=Wt(4),v[r>>2]=4,n=Wt(4),v[n>>2]=4,I(2271,6683,21542,13049,1520,0|r,21542,13053,1521,0|n),r=Wt(4),v[r>>2]=8,n=Wt(4),v[n>>2]=8,I(2271,6577,21542,13049,1520,0|r,21542,13053,1521,0|n),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(2271,4432,3,16508,13224,1522,0|r,0,0),r=Wt(4),v[r>>2]=1523,$(2271,4463,4,16464,16480,1660,0|r,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=20,$(2271,6142,2,16520,13576,1524,0|r,0,0),C(2290,7332,7326,2295,11240,1525,11240,1526,11240,1527,2339,11245,1528),P(2290,3,16528,13420,1529,1530),r=Wt(8),v[r+4>>2]=1,v[r>>2]=12,$(2290,4432,3,16540,13224,1531,0|r,0,0),r=Wt(4),v[r>>2]=1532,$(2290,4463,4,16464,16480,1660,0|r,0,0),r=Wt(8),v[r+4>>2]=1,v[r>>2]=20,$(2290,6142,2,16552,13576,1533,0|r,0,0),r=Wt(4),v[r>>2]=4,n=Wt(4),v[n>>2]=4,I(2290,6691,21542,13049,1534,0|r,21542,13053,1535,0|n),r=Wt(4),v[r>>2]=8,n=Wt(4),v[n>>2]=8,I(2290,6585,21542,13049,1534,0|r,21542,13053,1535,0|n),r=Wt(4),v[r>>2]=12,n=Wt(4),v[n>>2]=12,I(2290,2432,21542,13049,1534,0|r,21542,13053,1535,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1536,n=Wt(8),v[n+4>>2]=0,v[n>>2]=1537,I(2290,5820,21542,13049,1538,0|r,21542,13053,1539,0|n),r=Wt(4),v[r>>2]=20,n=Wt(4),v[n>>2]=20,I(2290,6761,21542,13049,1534,0|r,21542,13053,1535,0|n),r=Wt(4),v[r>>2]=24,n=Wt(4),v[n>>2]=24,I(2290,6668,21542,13049,1534,0|r,21542,13053,1535,0|n),C(21697,21698,21699,0,11240,1540,11243,0,11243,0,4554,11245,1541),r=Wt(4),v[r>>2]=32,n=Wt(4),v[n>>2]=32,I(21697,1634,21553,11312,1542,0|r,21553,13224,1543,0|n),r=Wt(4),v[r>>2]=36,n=Wt(4),v[n>>2]=36,I(21697,1641,21553,11312,1542,0|r,21553,13224,1543,0|n),r=Wt(4),v[r>>2]=40,n=Wt(4),v[n>>2]=40,I(21697,3122,21553,11312,1542,0|r,21553,13224,1543,0|n),r=Wt(4),v[r>>2]=44,n=Wt(4),v[n>>2]=44,I(21697,3278,21553,11312,1542,0|r,21553,13224,1543,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1544,$(21697,2747,2,16560,11312,1545,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1546,$(21697,6438,2,16568,11312,1547,0|r,0,0),C(21538,21700,21701,0,11240,1548,11243,0,11243,0,5322,11245,1549),r=Wt(4),v[r>>2]=0,n=Wt(4),v[n>>2]=0,I(21538,5206,21553,11312,1550,0|r,21553,13224,1551,0|n),r=Wt(4),v[r>>2]=4,n=Wt(4),v[n>>2]=4,I(21538,2207,21553,11312,1550,0|r,21553,13224,1551,0|n),r=Wt(4);v[r>>2]=8,n=Wt(4),v[n>>2]=8,I(21538,1634,21553,11312,1550,0|r,21553,13224,1551,0|n),r=Wt(4),v[r>>2]=12,n=Wt(4),v[n>>2]=12,I(21538,2225,21553,11312,1550,0|r,21553,13224,1551,0|n),r=Wt(4),v[r>>2]=16,n=Wt(4),v[n>>2]=16,I(21538,1641,21553,11312,1550,0|r,21553,13224,1551,0|n),C(21702,21703,21704,0,11240,1552,11243,0,11243,0,6090,11245,1553),P(21702,1,16576,11240,1554,1555),r=Wt(4),v[r>>2]=0,n=Wt(4),v[n>>2]=0,I(21702,5885,21645,11312,1556,0|r,21645,13224,1557,0|n),r=Wt(4),v[r>>2]=4,n=Wt(4),v[n>>2]=4,I(21702,5123,21542,13049,1558,0|r,21542,13053,1559,0|n),r=Wt(4),v[r>>2]=1,n=Wt(4),v[n>>2]=1,I(21702,5843,21645,11312,1556,0|r,21645,13224,1557,0|n),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1560,$(21702,3847,3,16580,11328,1561,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1562,$(21702,4210,5,16592,16612,1563,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1564,$(21702,4407,3,16620,13224,1565,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1566,$(21702,4223,3,16632,13053,1567,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1568,$(21702,6446,2,16644,11312,1569,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1570,$(21702,6547,3,16652,13224,1571,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1572,$(21702,1773,3,16652,13224,1571,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1573,$(21702,3526,6,16672,16696,1574,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1575,$(21702,2308,3,16704,13224,1576,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1577,$(21702,2336,3,16716,13224,1578,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1579,$(21702,2324,2,16728,13576,1580,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1581,$(21702,5088,2,16736,11312,1582,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1583,$(21702,1246,5,16752,15892,1584,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1585,$(21702,3617,3,16772,13224,1586,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1587,$(21702,3595,4,16784,11296,1588,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1589,$(21702,5990,3,16652,13224,1571,0|r,0,0),r=Wt(4),v[r>>2]=1590,$(21702,2759,2,16800,11312,1661,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1591,$(21702,4334,6,16816,13784,1592,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1593,$(21702,1173,2,16728,13576,1580,0|r,0,0),r=Wt(8),v[r+4>>2]=0,v[r>>2]=1594,$(21702,5191,4,16848,11296,1595,0|r,0,0)}function X(r){var n,e=0,f=0,i=0,t=0,u=0,o=0,a=0,c=0,b=0,k=0,s=0,h=0;V=n=V-16|0;r:{n:{e:{f:{i:{t:{u:{o:{a:{c:{b:{k:{s:{v:{if((r|=0)>>>0<=244){if(3&(e=(o=v[5447])>>>(f=(a=r>>>0<11?16:r+11&-8)>>>3|0)|0)){e=21828+(r=(f=f+(1&~e)|0)<<3)|0,i=v[r+21836>>2],(0|e)!=(0|(r=v[i+8>>2]))?(v[r+12>>2]=e,v[e+8>>2]=r):(s=21788,h=ot(f)&o,v[s>>2]=h),r=i+8|0,e=f<<3,v[i+4>>2]=3|e,v[4+(e=e+i|0)>>2]=1|v[e+4>>2];break r}if((k=v[5449])>>>0>=a>>>0)break v;if(e){e=21828+(r=(i=nu(0-(r=(0-(r=2<>2],(0|e)!=(0|(r=v[t+8>>2]))?(v[r+12>>2]=e,v[e+8>>2]=r):(o=ot(i)&o,v[5447]=o),v[t+4>>2]=3|a,i=(r=i<<3)-a|0,v[4+(f=t+a|0)>>2]=1|i,v[r+t>>2]=i,k&&(e=21828+(-8&k)|0,u=v[5452],(r=1<<(k>>>3))&o?r=v[e+8>>2]:(v[5447]=r|o,r=e),v[e+8>>2]=u,v[r+12>>2]=u,v[u+12>>2]=e,v[u+8>>2]=r),r=t+8|0,v[5452]=f,v[5449]=i;break r}if(!(b=v[5448]))break v;for(f=v[22092+(nu(0-b&b)<<2)>>2],u=(-8&v[f+4>>2])-a|0,e=f;(r=v[e+16>>2])||(r=v[e+20>>2]);)u=(i=(e=(-8&v[r+4>>2])-a|0)>>>0>>0)?e:u,f=i?r:f,e=r;if(c=v[f+24>>2],(0|(i=v[f+12>>2]))!=(0|f)){r=v[f+8>>2],v[r+12>>2]=i,v[i+8>>2]=r;break n}if(!(r=v[(e=f+20|0)>>2])){if(!(r=v[f+16>>2]))break s;e=f+16|0}for(;t=e,i=r,(r=v[(e=r+20|0)>>2])||(e=i+16|0,r=v[i+16>>2]););v[t>>2]=0;break n}if(a=-1,!(r>>>0>4294967231)&&(a=-8&(r=r+11|0),b=v[5448])){u=0-a|0,o=0,a>>>0<256||(o=31,a>>>0>16777215||(o=62+((a>>>38-(r=F(r>>>8|0))&1)-(r<<1)|0)|0));l:{h:{if(e=v[22092+(o<<2)>>2])for(r=0,f=a<<(31!=(0|o)?25-(o>>>1|0):0);;){if(!((t=(-8&v[e+4>>2])-a|0)>>>0>=u>>>0||(i=e,u=t,t))){u=0,r=e;break h}if(t=v[e+20>>2],e=v[16+((f>>>29&4)+e|0)>>2],r=t?(0|t)==(0|e)?r:t:r,f<<=1,!e)break}else r=0;if(!(r|i)){if(i=0,!(r=(0-(r=2<>2]}if(!r)break l}for(;u=(f=(e=(-8&v[r+4>>2])-a|0)>>>0>>0)?e:u,i=f?r:i,r=(e=v[r+16>>2])||v[r+20>>2];);}if(!(!i|v[5449]-a>>>0<=u>>>0)){if(o=v[i+24>>2],(0|i)!=(0|(f=v[i+12>>2]))){r=v[i+8>>2],v[r+12>>2]=f,v[f+8>>2]=r;break e}if(!(r=v[(e=i+20|0)>>2])){if(!(r=v[i+16>>2]))break k;e=i+16|0}for(;t=e,f=r,(r=v[(e=r+20|0)>>2])||(e=f+16|0,r=v[f+16>>2]););v[t>>2]=0;break e}}}if((r=v[5449])>>>0>=a>>>0){i=v[5452],(e=r-a|0)>>>0>=16?(v[4+(f=i+a|0)>>2]=1|e,v[r+i>>2]=e,v[i+4>>2]=3|a):(v[i+4>>2]=3|r,v[4+(r=r+i|0)>>2]=1|v[r+4>>2],f=0,e=0),v[5449]=e,v[5452]=f,r=i+8|0;break r}if((c=v[5450])>>>0>a>>>0){e=c-a|0,v[5450]=e,r=(f=v[5453])+a|0,v[5453]=r,v[r+4>>2]=1|e,v[f+4>>2]=3|a,r=f+8|0;break r}if(r=0,b=a+47|0,v[5565]?f=v[5567]:(v[5568]=-1,v[5569]=-1,v[5566]=4096,v[5567]=4096,v[5565]=n+12&-16^1431655768,v[5570]=0,v[5558]=0,f=4096),(e=(t=b+f|0)&(u=0-f|0))>>>0<=a>>>0)break r;if((i=v[5557])&&i>>>0<(o=(f=v[5555])+e|0)>>>0|f>>>0>=o>>>0)break r;v:{if(!(4&l[22232])){l:{h:{d:{p:{if(i=v[5453])for(r=22236;;){if((f=v[r>>2])>>>0<=i>>>0&i>>>0>2]>>>0)break p;if(!(r=v[r+8>>2]))break}if(-1==(0|(f=Ff(0))))break l;if(o=e,(r=(i=v[5566])-1|0)&f&&(o=(e-f|0)+(r+f&0-i)|0),o>>>0<=a>>>0)break l;if((i=v[5557])&&i>>>0<(u=(r=v[5555])+o|0)>>>0|r>>>0>=u>>>0)break l;if((0|f)!=(0|(r=Ff(o))))break d;break v}if((0|(f=Ff(o=u&t-c)))==(v[r>>2]+v[r+4>>2]|0))break h;r=f}if(-1==(0|r))break l;if(a+48>>>0<=o>>>0){f=r;break v}if(-1==(0|Ff(f=(f=v[5567])+(b-o|0)&0-f)))break l;o=f+o|0,f=r;break v}if(-1!=(0|f))break v}v[5558]=4|v[5558]}if(-1==(0|(f=Ff(e)))|-1==(0|(r=Ff(0)))|r>>>0<=f>>>0)break a;if((o=r-f|0)>>>0<=a+40>>>0)break a}r=v[5555]+o|0,v[5555]=r,r>>>0>d[5556]&&(v[5556]=r);v:{if(t=v[5453]){for(r=22236;;){if(((i=v[r>>2])+(e=v[r+4>>2])|0)==(0|f))break v;if(!(r=v[r+8>>2]))break}break b}for((r=v[5451])>>>0<=f>>>0&&r||(v[5451]=f),r=0,v[5560]=o,v[5559]=f,v[5455]=-1,v[5456]=v[5565],v[5562]=0;e=21828+(i=r<<3)|0,v[i+21836>>2]=e,v[i+21840>>2]=e,32!=(0|(r=r+1|0)););e=(i=o-40|0)-(r=f+8&7?-8-f&7:0)|0,v[5450]=e,r=r+f|0,v[5453]=r,v[r+4>>2]=1|e,v[4+(f+i|0)>>2]=40,v[5454]=v[5569];break c}if(8&v[r+12>>2]|f>>>0<=t>>>0|i>>>0>t>>>0)break b;v[r+4>>2]=e+o,f=(r=t+8&7?-8-t&7:0)+t|0,v[5453]=f,r=(e=v[5450]+o|0)-r|0,v[5450]=r,v[f+4>>2]=1|r,v[4+(e+t|0)>>2]=40,v[5454]=v[5569];break c}i=0;break n}f=0;break e}d[5451]>f>>>0&&(v[5451]=f),e=f+o|0,r=22236;b:{k:{s:{for(;;){if((0|e)!=v[r>>2]){if(r=v[r+8>>2])continue;break s}break}if(!(8&l[r+12|0]))break k}for(r=22236;;){if((e=v[r>>2])>>>0<=t>>>0&&(u=e+v[r+4>>2]|0)>>>0>t>>>0)break b;r=v[r+8>>2]}}if(v[r>>2]=f,v[r+4>>2]=v[r+4>>2]+o,v[4+(b=(f+8&7?-8-f&7:0)+f|0)>>2]=3|a,r=(o=e+(e+8&7?-8-e&7:0)|0)-(c=a+b|0)|0,(0|t)==(0|o)){v[5453]=c,r=v[5450]+r|0,v[5450]=r,v[c+4>>2]=1|r;break f}if(v[5452]==(0|o)){v[5452]=c,r=v[5449]+r|0,v[5449]=r,v[c+4>>2]=1|r,v[r+c>>2]=r;break f}if(1!=(3&(u=v[o+4>>2])))break i;if(t=-8&u,u>>>0<=255){if((0|(f=v[o+12>>2]))==(0|(e=v[o+8>>2]))){s=21788,h=v[5447]&ot(u>>>3|0),v[s>>2]=h;break t}v[e+12>>2]=f,v[f+8>>2]=e;break t}if(a=v[o+24>>2],(0|o)!=(0|(f=v[o+12>>2]))){e=v[o+8>>2],v[e+12>>2]=f,v[f+8>>2]=e;break u}if(!(u=v[(e=o+20|0)>>2])){if(!(u=v[o+16>>2]))break o;e=o+16|0}for(;i=e,(u=v[(e=(f=u)+20|0)>>2])||(e=f+16|0,u=v[f+16>>2]););v[i>>2]=0;break u}for(e=(i=o-40|0)-(r=f+8&7?-8-f&7:0)|0,v[5450]=e,r=r+f|0,v[5453]=r,v[r+4>>2]=1|e,v[4+(f+i|0)>>2]=40,v[5454]=v[5569],v[(i=(r=(u+(u-39&7?39-u&7:0)|0)-47|0)>>>0>>0?t:r)+4>>2]=27,r=v[5562],v[i+16>>2]=v[5561],v[i+20>>2]=r,r=v[5560],v[i+8>>2]=v[5559],v[i+12>>2]=r,v[5561]=i+8,v[5560]=o,v[5559]=f,v[5562]=0,r=i+24|0;v[r+4>>2]=7,e=r+8|0,r=r+4|0,e>>>0>>0;);if((0|i)!=(0|t))if(v[i+4>>2]=-2&v[i+4>>2],u=i-t|0,v[t+4>>2]=1|u,v[i>>2]=u,u>>>0<=255)e=21828+(-8&u)|0,(f=v[5447])&(r=1<<(u>>>3))?r=v[e+8>>2]:(v[5447]=r|f,r=e),v[e+8>>2]=t,v[r+12>>2]=t,v[t+12>>2]=e,v[t+8>>2]=r;else{r=31,u>>>0<=16777215&&(r=62+((u>>>38-(r=F(u>>>8|0))&1)-(r<<1)|0)|0),v[t+28>>2]=r,v[t+16>>2]=0,v[t+20>>2]=0,e=22092+(r<<2)|0;b:{if((i=v[5448])&(f=1<>>1|0):0),i=v[e>>2];;){if((0|u)==(-8&v[(e=i)+4>>2]))break b;if(f=r>>>29|0,r<<=1,!(i=v[16+(f=(4&f)+e|0)>>2]))break}v[f+16>>2]=t}else v[5448]=f|i,v[e>>2]=t;v[t+24>>2]=e,v[t+12>>2]=t,v[t+8>>2]=t;break c}r=v[e+8>>2],v[r+12>>2]=t,v[e+8>>2]=t,v[t+24>>2]=0,v[t+12>>2]=e,v[t+8>>2]=r}}if(!((r=v[5450])>>>0<=a>>>0)){e=r-a|0,v[5450]=e,r=(f=v[5453])+a|0,v[5453]=r,v[r+4>>2]=1|e,v[f+4>>2]=3|a,r=f+8|0;break r}}v[5446]=48,r=0;break r}f=0}if(a){i=v[o+28>>2];u:{if(v[(e=22092+(i<<2)|0)>>2]==(0|o)){if(v[e>>2]=f,f)break u;s=21792,h=v[5448]&ot(i),v[s>>2]=h;break t}if(v[a+(v[a+16>>2]==(0|o)?16:20)>>2]=f,!f)break t}v[f+24>>2]=a,(e=v[o+16>>2])&&(v[f+16>>2]=e,v[e+24>>2]=f),(e=v[o+20>>2])&&(v[f+20>>2]=e,v[e+24>>2]=f)}}r=r+t|0,u=v[4+(o=t+o|0)>>2]}if(v[o+4>>2]=-2&u,v[c+4>>2]=1|r,v[r+c>>2]=r,r>>>0<=255)e=21828+(-8&r)|0,(f=v[5447])&(r=1<<(r>>>3))?r=v[e+8>>2]:(v[5447]=r|f,r=e),v[e+8>>2]=c,v[r+12>>2]=c,v[c+12>>2]=e,v[c+8>>2]=r;else{u=31,r>>>0<=16777215&&(u=62+((r>>>38-(e=F(r>>>8|0))&1)-(e<<1)|0)|0),v[c+28>>2]=u,v[c+16>>2]=0,v[c+20>>2]=0,e=22092+(u<<2)|0;i:{if((i=v[5448])&(f=1<>>1|0):0),f=v[e>>2];;){if(e=f,(-8&v[f+4>>2])==(0|r))break i;if(f=u>>>29|0,u<<=1,!(f=v[16+(i=(4&f)+e|0)>>2]))break}v[i+16>>2]=c}else v[5448]=f|i,v[e>>2]=c;v[c+24>>2]=e,v[c+12>>2]=c,v[c+8>>2]=c;break f}r=v[e+8>>2],v[r+12>>2]=c,v[e+8>>2]=c,v[c+24>>2]=0,v[c+12>>2]=e,v[c+8>>2]=r}}r=b+8|0;break r}e:if(o){e=v[i+28>>2];f:{if(v[(r=22092+(e<<2)|0)>>2]==(0|i)){if(v[r>>2]=f,f)break f;b=ot(e)&b,v[5448]=b;break e}if(v[o+(v[o+16>>2]==(0|i)?16:20)>>2]=f,!f)break e}v[f+24>>2]=o,(r=v[i+16>>2])&&(v[f+16>>2]=r,v[r+24>>2]=f),(r=v[i+20>>2])&&(v[f+20>>2]=r,v[r+24>>2]=f)}e:if(u>>>0<=15)r=u+a|0,v[i+4>>2]=3|r,v[4+(r=r+i|0)>>2]=1|v[r+4>>2];else if(v[i+4>>2]=3|a,v[4+(t=i+a|0)>>2]=1|u,v[t+u>>2]=u,u>>>0<=255)e=21828+(-8&u)|0,(f=v[5447])&(r=1<<(u>>>3))?r=v[e+8>>2]:(v[5447]=r|f,r=e),v[e+8>>2]=t,v[r+12>>2]=t,v[t+12>>2]=e,v[t+8>>2]=r;else{r=31,u>>>0<=16777215&&(r=62+((u>>>38-(r=F(u>>>8|0))&1)-(r<<1)|0)|0),v[t+28>>2]=r,v[t+16>>2]=0,v[t+20>>2]=0,e=22092+(r<<2)|0;f:{if((f=1<>>1|0):0),a=v[e>>2];;){if((-8&v[(e=a)+4>>2])==(0|u))break f;if(f=r>>>29|0,r<<=1,!(a=v[16+(f=(4&f)+e|0)>>2]))break}v[f+16>>2]=t}else v[5448]=f|b,v[e>>2]=t;v[t+24>>2]=e,v[t+12>>2]=t,v[t+8>>2]=t;break e}r=v[e+8>>2],v[r+12>>2]=t,v[e+8>>2]=t,v[t+24>>2]=0,v[t+12>>2]=e,v[t+8>>2]=r}r=i+8|0;break r}n:if(c){e=v[f+28>>2];e:{if(v[(r=22092+(e<<2)|0)>>2]==(0|f)){if(v[r>>2]=i,i)break e;s=21792,h=ot(e)&b,v[s>>2]=h;break n}if(v[c+(v[c+16>>2]==(0|f)?16:20)>>2]=i,!i)break n}v[i+24>>2]=c,(r=v[f+16>>2])&&(v[i+16>>2]=r,v[r+24>>2]=i),(r=v[f+20>>2])&&(v[i+20>>2]=r,v[r+24>>2]=i)}u>>>0<=15?(r=u+a|0,v[f+4>>2]=3|r,v[4+(r=r+f|0)>>2]=1|v[r+4>>2]):(v[f+4>>2]=3|a,v[4+(i=f+a|0)>>2]=1|u,v[i+u>>2]=u,k&&(e=21828+(-8&k)|0,t=v[5452],(r=1<<(k>>>3))&o?r=v[e+8>>2]:(v[5447]=r|o,r=e),v[e+8>>2]=t,v[r+12>>2]=t,v[t+12>>2]=e,v[t+8>>2]=r),v[5452]=i,v[5449]=u),r=f+8|0}return V=n+16|0,0|r}function Q(r,n,e,f,t){var o,a=0,c=0,b=0,s=0,h=0,d=w(0),y=0,m=0,g=0,F=0,A=0,T=0,$=0,I=0,C=0,P=0,E=0,O=0,R=0,S=0,W=0,G=0,U=0,j=0,H=0,L=0,M=0,_=0,z=0,x=0,J=0,K=0,B=0,N=0,q=0,D=0,Z=0,Y=0,X=0,Q=0,rr=0,nr=0,er=0;V=o=V-32|0;r:{n:{e:{if(e){if($=jn(n,1))break e;break r}if(y=Ae(a=ut(68),e=ht(c=o+20|0,e=(e=jn(n,1))?v[(v[f+200>>2]+(e<<2)|0)-4>>2]:0,0)),gi(e),(0|(a=jn(n,1)))>0)for(c=y+36|0,e=0;s=jn(n,1),Un(c,v[f+28>>2]+(s<<2)|0),(0|a)!=(0|(e=e+1|0)););if((0|(a=jn(n,1)))>0)for(c=y+52|0,e=0;s=jn(n,1),v[o+20>>2]=v[v[f+112>>2]+(s<<2)>>2],Un(c,o+20|0),(0|a)!=(0|(e=e+1|0)););if((0|(a=jn(n,1)))>0)for(c=y+52|0,e=0;s=jn(n,1),v[o+20>>2]=v[v[f+128>>2]+(s<<2)>>2],Un(c,o+20|0),(0|a)!=(0|(e=e+1|0)););if((0|(a=jn(n,1)))>0)for(c=y+52|0,e=0;s=jn(n,1),v[o+20>>2]=v[v[f+144>>2]+(s<<2)>>2],Un(c,o+20|0),(0|a)!=(0|(e=e+1|0)););$=jn(n,1);break n}y=Ae(a=ut(68),e=ht(o+20|0,2155,0)),gi(e)}if(!((0|$)<=0))for(;;){if(P=jn(n,1),I=0,(0|(E=jn(n,1)))>0)for(;;){a=C=ht(a=o+20|0,e=(e=jn(n,1))?v[(v[f+200>>2]+(e<<2)|0)-4>>2]:0,0),V=s=V-80|0,m=ht(c=s+68|0,e=(e=jn(n,1))?v[(v[f+200>>2]+(e<<2)|0)-4>>2]:0,0),v[m+4>>2]||te(m,a),a=v[n+4>>2],v[n+4>>2]=a+1,e=0;n:{e:switch(l[0|a]){case 0:c=ht(a=s+56|0,e=(e=jn(n,1))?v[(v[f+200>>2]+(e<<2)|0)-4>>2]:0,0),v[c+4>>2]||te(c,m),a=v[n+4>>2],v[n+4>>2]=a+1,h=l[0|a],v[n+4>>2]=a+2,b=l[a+1|0],v[n+4>>2]=a+3,F=l[a+2|0],v[n+4>>2]=a+4,g=l[a+3|0],v[n+4>>2]=a+5,A=l[a+4|0],v[n+4>>2]=a+6,T=l[a+5|0],v[n+4>>2]=a+7,W=l[a+6|0],v[n+4>>2]=a+8,G=l[a+7|0],v[n+4>>2]=a+9,U=l[a+8|0],v[n+4>>2]=a+10,j=l[a+9|0],v[n+4>>2]=a+11,H=l[a+10|0],v[n+4>>2]=a+12,L=l[a+11|0],v[n+4>>2]=a+13,M=l[a+12|0],v[n+4>>2]=a+14,_=l[a+13|0],v[n+4>>2]=a+15,z=l[a+14|0],v[n+4>>2]=a+16,x=l[a+15|0],v[n+4>>2]=a+17,J=l[a+16|0],v[n+4>>2]=a+18,K=l[a+17|0],v[n+4>>2]=a+19,B=l[a+18|0],v[n+4>>2]=a+20,N=l[a+19|0],v[n+4>>2]=a+21,q=l[a+20|0],v[n+4>>2]=a+22,D=l[a+21|0],v[n+4>>2]=a+23,Z=l[a+22|0],v[n+4>>2]=a+24,Y=l[a+23|0],v[n+4>>2]=a+25,X=l[a+24|0],v[n+4>>2]=a+26,Q=l[a+25|0],v[n+4>>2]=a+27,rr=l[a+26|0],e=a+28|0,v[n+4>>2]=e,a=l[a+27|0],l[21364]||(v[5337]=0,v[5338]=0,v[5339]=0,v[5340]=0,v[5336]=9372,i[21364]=1,e=v[n+4>>2]),v[n+4>>2]=e+1,p[5337]=w(l[0|e])/w(255),v[n+4>>2]=e+2,p[5338]=w(l[e+1|0])/w(255),v[n+4>>2]=e+3,p[5339]=w(l[e+2|0])/w(255),v[n+4>>2]=e+4,p[5340]=w(l[e+3|0])/w(255),e=v[r+4>>2],O=Ue(s+44|0,m),R=Ue(s+32|0,c),e=0|Ta[v[v[e>>2]+12>>2]](e,y,O,R),gi(R),gi(O),e&&(te(e+116|0,c),v[e+40>>2]=g|(F|b<<8|h<<16)<<8,d=p[r+36>>2],v[e+48>>2]=(K<<8|J<<16|B)<<8|N,v[e+44>>2]=(_<<8|M<<16|z)<<8|x,p[e+56>>2]=d*(u(2,a|(Q<<8|X<<16|rr)<<8),k()),p[e+52>>2]=d*(u(2,(D<<8|q<<16|Z)<<8|Y),k()),p[e+36>>2]=d*(u(2,(j<<8|U<<16|H)<<8|L),k()),p[e+32>>2]=d*(u(2,(T<<8|A<<16|W)<<8|G),k()),a=v[5338],v[e+148>>2]=v[5337],v[e+152>>2]=a,a=v[5340],v[e+156>>2]=v[5339],v[e+160>>2]=a,Jr(e),a=v[r+4>>2],Ta[v[v[a>>2]+36>>2]](a,e)),gi(c);break n;case 1:a=jn(n,1),e=v[r+4>>2],c=Ue(s+56|0,m),e=0|Ta[v[v[e>>2]+20>>2]](e,y,c),gi(c),Cr(r,n,e,a),t&&(v[n+4>>2]=v[n+4>>2]+4),a=v[r+4>>2],Ta[v[v[a>>2]+36>>2]](a,e);break n;case 2:h=ht(a=s+56|0,e=(e=jn(n,1))?v[(v[f+200>>2]+(e<<2)|0)-4>>2]:0,0),v[h+4>>2]||te(h,m),e=v[r+4>>2],c=Ue(s+44|0,m),b=Ue(s+32|0,h),a=0|Ta[v[v[e>>2]+16>>2]](e,y,c,b),gi(b),gi(c),e=a,a||(e=zr(ut(236),m)),te(e+168|0,h),b=aa(e),c=v[n+4>>2],v[n+4>>2]=c+1,p[b+4>>2]=w(l[0|c])/w(255),v[n+4>>2]=c+2,p[b+8>>2]=w(l[c+1|0])/w(255),v[n+4>>2]=c+3,p[b+12>>2]=w(l[c+2|0])/w(255),v[n+4>>2]=c+4,p[b+16>>2]=w(l[c+3|0])/w(255),Vr(n,(c=jn(n,1))<<1,w(1),e+120|0),fe(n,e+136|0),Cr(r,n,e,c),lr(e),nr=e,er=jn(n,1)<<1,v[nr+224>>2]=er,t?(fe(n,e+152|0),c=v[n+4>>2],v[n+4>>2]=c+1,b=l[0|c],v[n+4>>2]=c+2,F=l[c+1|0],v[n+4>>2]=c+3,g=l[c+2|0],v[n+4>>2]=c+4,d=p[r+36>>2],p[e+196>>2]=d*(u(2,l[c+3|0]|(g|F<<8|b<<16)<<8),k()),v[n+4>>2]=c+5,b=l[c+4|0],v[n+4>>2]=c+6,F=l[c+5|0],v[n+4>>2]=c+7,g=l[c+6|0],v[n+4>>2]=c+8,d=w(d*(u(2,l[c+7|0]|(g|F<<8|b<<16)<<8),k()))):(v[e+196>>2]=0,d=w(0)),p[e+200>>2]=d,a?(a=v[r+4>>2],Ta[v[v[a>>2]+36>>2]](a,e)):(Ta[v[v[e>>2]+4>>2]](e),e=0),gi(h);break n;case 3:h=ht(a=s+56|0,e=(e=jn(n,1))?v[(v[f+200>>2]+(e<<2)|0)-4>>2]:0,0),v[h+4>>2]||te(h,m),e=v[r+4>>2],c=Ue(a=s+44|0,m),b=Ue(s+32|0,h),e=0|Ta[v[v[e>>2]+16>>2]](e,y,c,b),gi(b),gi(c),te(e+168|0,h),b=aa(e),c=v[n+4>>2],v[n+4>>2]=c+1,p[b+4>>2]=w(l[0|c])/w(255),v[n+4>>2]=c+2,p[b+8>>2]=w(l[c+1|0])/w(255),v[n+4>>2]=c+3,p[b+12>>2]=w(l[c+2|0])/w(255),v[n+4>>2]=c+4,p[b+16>>2]=w(l[c+3|0])/w(255),c=ht(a,c=(c=jn(n,1))?v[(v[f+200>>2]+(c<<2)|0)-4>>2]:0,0),b=ht(b=s+32|0,a=(a=jn(n,1))?v[(v[f+200>>2]+(a<<2)|0)-4>>2]:0,0),a=v[n+4>>2],v[n+4>>2]=a+1,F=l[0|a],t&&(v[n+4>>2]=a+2,g=l[a+1|0],v[n+4>>2]=a+3,A=l[a+2|0],v[n+4>>2]=a+4,T=l[a+3|0],v[n+4>>2]=a+5,d=p[r+36>>2],p[e+196>>2]=d*(u(2,l[a+4|0]|(T|A<<8|g<<16)<<8),k()),v[n+4>>2]=a+6,g=l[a+5|0],v[n+4>>2]=a+7,A=l[a+6|0],v[n+4>>2]=a+8,T=l[a+7|0],v[n+4>>2]=a+9,p[e+200>>2]=d*(u(2,l[a+8|0]|(T|A<<8|g<<16)<<8),k())),F=Ui(T=ut(40),e,a=Ue(s+20|0,c),P,A=Ue(g=s+8|0,b),!!(0|F)),gi(A),gi(a),v[s+8>>2]=F,Un(r+8|0,g),gi(b),gi(c),gi(h);break n;case 4:if(e=v[r+4>>2],a=Ue(c=s+56|0,m),e=0|Ta[v[v[e>>2]+24>>2]](e,y,a),gi(a),a=v[n+4>>2],v[n+4>>2]=a+1,h=0,i[e+80|0]=0!=l[0|a],v[n+4>>2]=a+2,i[e+81|0]=0!=l[a+1|0],Cr(r,n,e,a=jn(n,1)),v[s+56>>2]=0,wn(e- -64|0,b=(0|a)/3|0,c),(0|a)>=3)for(F=v[e+76>>2],a=v[n+4>>2];v[n+4>>2]=a+1,g=l[0|a],v[n+4>>2]=a+2,A=l[a+1|0],v[n+4>>2]=a+3,T=l[a+2|0],c=a+4|0,v[n+4>>2]=c,p[F+(h<<2)>>2]=p[r+36>>2]*(u(2,l[a+3|0]|(T|A<<8|g<<16)<<8),k()),a=c,(0|b)!=(0|(h=h+1|0)););t&&(v[n+4>>2]=v[n+4>>2]+4),a=v[r+4>>2],Ta[v[v[a>>2]+36>>2]](a,e);break n;case 5:e=v[r+4>>2],a=Ue(s+56|0,m),e=0|Ta[v[v[e>>2]+28>>2]](e,y,a),gi(a),a=v[n+4>>2],v[n+4>>2]=a+1,c=l[0|a],v[n+4>>2]=a+2,h=l[a+1|0],v[n+4>>2]=a+3,b=l[a+2|0],v[n+4>>2]=a+4,v[e+28>>2]=l[a+3|0]|(b|h<<8|c<<16)<<8,v[n+4>>2]=a+5,c=l[a+4|0],v[n+4>>2]=a+6,h=l[a+5|0],v[n+4>>2]=a+7,b=l[a+6|0],v[n+4>>2]=a+8,d=p[r+36>>2],p[e+20>>2]=d*(u(2,l[a+7|0]|(b|h<<8|c<<16)<<8),k()),v[n+4>>2]=a+9,c=l[a+8|0],v[n+4>>2]=a+10,h=l[a+9|0],v[n+4>>2]=a+11,b=l[a+10|0],v[n+4>>2]=a+12,p[e+24>>2]=d*(u(2,l[a+11|0]|(b|h<<8|c<<16)<<8),k()),t&&(v[n+4>>2]=a+16),a=v[r+4>>2],Ta[v[v[a>>2]+36>>2]](a,e);break n;case 6:break e;default:break n}a=jn(n,1),c=jn(n,1),e=v[r+4>>2],Cr(r,n,e=0|Ta[v[v[e>>2]+32>>2]](e,y,m),c),v[e+64>>2]=v[v[f+44>>2]+(a<<2)>>2],t&&(v[n+4>>2]=v[n+4>>2]+4),a=v[r+4>>2],Ta[v[v[a>>2]+36>>2]](a,e)}if(gi(m),V=s+80|0,e&&(It(y,P,a=Ue(o+8|0,C),e),gi(a)),gi(C),(0|E)==(0|(I=I+1|0)))break}if((0|(S=S+1|0))==(0|$))break}}return V=o+32|0,y}function rr(r,n,e){r|=0,n|=0,e|=0;var f,t=0,u=0,o=0,a=0,c=0,b=0,k=0,s=0,h=0,d=w(0),y=w(0),m=0,g=0,F=w(0),A=w(0),T=w(0),$=0,I=0,C=w(0),P=w(0),E=0,O=0,R=w(0),S=w(0),W=w(0),G=w(0),U=w(0),j=w(0),H=0,L=0,M=0;if(V=f=V-16|0,!v[r+224>>2]){v[r+224>>2]=e,u=v[e+52>>2],v[f+12>>2]=0,wn(b=r+128|0,u,f+12|0),Ji(e,n,0,u,b,0,2),nn(b),e=0,V=c=V-16|0,n=v[b+4>>2],v[40+(a=r+4|0)>>2]=0,ya(g=a+36|0,k=n>>>1|0),v[c+12>>2]=0,gn(g,k,c+12|0);r:if(n>>>0>=2){for(u=k>>>0<=1?1:k,s=v[a+48>>2];v[s+(e<<2)>>2]=e,(0|u)!=(0|(e=e+1|0)););if(Yf(u=a+52|0,k),e=0,i[c+11|0]=0,On(u,k,c+11|0),n>>>0<2)break r;for(u=k>>>0<=1?1:k,s=v[a- -64>>2];L=e+s|0,M=re(e,k,b,g),i[0|L]=M,(0|u)!=(0|(e=e+1|0)););}else Yf(e=a+52|0,k),i[c+11|0]=0,On(e,k,c+11|0);if(v[a+72>>2]=0,ya($=a+68|0,(((0|k)<=2?2:k)<<2)-8|0),n>>>0>=8)for(t=v[a- -64>>2];;){I=v[b+12>>2],h=v[a+48>>2],n=0,e=1,s=k=(o=k)-1|0;r:{for(;;){n:{u=n,n=e;e:if(!l[t+u|0]){if((0|s)==(0|(e=(0|(e=n+1|0))!=(0|o)?e:0)))break n;for(m=I+(v[h+(n<<2)>>2]<<3)|0,C=p[m>>2],E=I+(v[h+(u<<2)>>2]<<3)|0,T=p[E>>2],O=I+(v[h+(s<<2)>>2]<<3)|0,R=p[O>>2],y=p[m+4>>2],d=p[E+4>>2],G=w(y-d),A=p[O+4>>2],U=w(d-A),j=w(A-y);;){if(l[e+t|0]&&(m=I+(v[h+(e<<2)>>2]<<3)|0,P=p[m>>2],F=p[m+4>>2],!(!(w(w(P*j)+w(w(C*w(F-A))+w(R*w(y-F))))>=w(0))|!(w(w(P*U)+w(w(R*w(F-d))+w(T*w(A-F))))>=w(0)))&&w(w(P*G)+w(w(T*w(F-y))+w(C*w(d-F))))>=w(0)))break e;if((0|s)==(0|(e=(e+1>>>0)%(o>>>0)|0)))break}break n}if(n){e=(0|(e=n+1|0))!=(0|o)?e:0,s=u;continue}for(;;){if(!l[t+u|0])break n;if(n=0,!(u=u-1|0))break r}}break}n=u}if(Un($,h+(((I=n+k|0)>>>0)%(o>>>0)<<2)|0),Un($,(e=n<<2)+v[a+48>>2]|0),Un($,v[a+48>>2]+((n+1>>>0)%(o>>>0)<<2)|0),u=v[a+40>>2]-1|0,v[a+40>>2]=u,n>>>0>>0)for(s=v[a+48>>2],o=v[s+e>>2],e=n;m=s+(e<<2)|0,t=s+((e=e+1|0)<<2)|0,v[m>>2]=v[t>>2],v[t>>2]=o,(0|e)!=(0|u););if(s=v[a+56>>2]-1|0,v[a+56>>2]=s,t=v[a+64>>2],n>>>0>>0)for(o=l[n+t|0],e=n;m=l[0|(h=(u=e+1|0)+t|0)],i[0|h]=o,i[e+t|0]=m,(0|s)!=(0|(e=u)););if(L=(e=(I-1>>>0)%(k>>>0)|0)+t|0,M=re(e,k,b,g),i[0|L]=M,L=(n=(0|n)!=(0|k)?n:0)+t|0,M=re(n,k,b,g),i[0|L]=M,!(k>>>0>3))break}if(3==(0|k)&&(Un($,v[a+48>>2]+8|0),Un($,v[a+48>>2]),Un($,v[a+48>>2]+4|0)),e=$,n=0,V=t=(V=c+16|0)-48|0,u=v[a+8>>2])for(s=a+84|0;pe(s,v[v[a+16>>2]+(n<<2)>>2]),(0|u)!=(0|(n=n+1|0)););if(n=0,v[a+8>>2]=0,u=v[a+24>>2])for(s=a+104|0;pe(s,v[v[a+32>>2]+(n<<2)>>2]),(0|u)!=(0|(n=n+1|0)););if(s=a+4|0,v[a+24>>2]=0,n=ea(k=a+104|0),v[t+44>>2]=n,v[n+4>>2]=0,n=fa($=a+84|0),v[t+40>>2]=n,v[n+4>>2]=0,E=v[e+4>>2]){for(g=a+20|0,I=-1,u=0,n=0;o=v[e+12>>2]+(n<<2)|0,h=(c=v[o>>2])<<1,v[t+36>>2]=h,m=v[o+4>>2],v[t+32>>2]=m<<1,O=v[o+8>>2],v[t+28>>2]=O<<1,c=(o=v[b+12>>2])+(c<<3)|0,p[t+24>>2]=p[c>>2],p[t+20>>2]=p[c+4>>2],c=o+(m<<3)|0,p[t+16>>2]=p[c>>2],p[t+12>>2]=p[c+4>>2],F=p[(o=o+(O<<3)|0)>>2],p[t+8>>2]=F,y=p[o+4>>2],p[t+4>>2]=y,c=v[t+40>>2],m=v[c+4>>2],(0|h)!=(0|I)||(o=v[c+12>>2],d=p[(h=o+(m<<2)|0)-16>>2],C=p[h-12>>2],A=w(p[h-4>>2]-C),T=w(p[h-8>>2]-d),(0|(w(w(w(T*C)+w(w(F*A)-w(y*T)))-w(d*A))>=w(0)?1:-1))!=(0|u)||(d=w(p[o>>2]-F),A=w(d*y),y=w(p[o+4>>2]-y),(0|(w(w(A+w(w(p[o+8>>2]*y)-w(p[o+12>>2]*d)))-w(F*y))>=w(0)?1:-1))!=(0|u)))?(m?(Un(s,t+40|0),Un(g,t+44|0)):(pe($,c),pe(k,v[t+44>>2])),u=fa($),v[t+40>>2]=u,v[u+4>>2]=0,Gn(u,t+24|0),Gn(v[t+40>>2],t+20|0),Gn(v[t+40>>2],t+16|0),Gn(v[t+40>>2],t+12|0),Gn(v[t+40>>2],t+8|0),Gn(v[t+40>>2],t+4|0),u=ea(k),v[t+44>>2]=u,v[u+4>>2]=0,Un(u,t+36|0),Un(v[t+44>>2],t+32|0),Un(v[t+44>>2],t+28|0),y=p[t+20>>2],F=w(p[t+12>>2]-y),d=p[t+24>>2],A=w(p[t+16>>2]-d),u=w(w(w(A*y)+w(w(p[t+8>>2]*F)-w(p[t+4>>2]*A)))-w(d*F))>=w(0)?1:-1,I=v[t+36>>2]):(Gn(c,t+8|0),Gn(v[t+40>>2],t+4|0),Un(v[t+44>>2],t+28|0)),E>>>0>(n=n+3|0)>>>0;);v[v[t+40>>2]+4>>2]&&(Un(s,t+40|0),Un(g,t+44|0))}if(o=v[a+8>>2]){for(e=0;;){if(n=v[(u=e<<2)+v[a+32>>2]>>2],v[t+44>>2]=n,b=v[n+4>>2])for(n=v[n+12>>2],c=v[(n+(b<<2)|0)-4>>2],h=v[n>>2],n=v[u+v[a+16>>2]>>2],v[t+40>>2]=n,u=v[n+4>>2]<<2,n=v[n+12>>2],F=p[(u=u+n|0)-8>>2],d=p[u-4>>2],A=p[u-12>>2],y=w(d-A),C=p[u-16>>2],T=w(F-C),R=p[n>>2],P=p[n+4>>2],G=w(w(w(T*A)+w(w(R*y)-w(P*T)))-w(C*y)),U=p[n+12>>2],j=p[n+8>>2],n=0;y=d,(0|n)!=(0|e)?(u=v[(g=n<<2)+v[a+32>>2]>>2],3!=v[u+4>>2]||(b=v[u+12>>2],I=v[b+4>>2],m=v[b>>2],v[t+36>>2]=v[b+8>>2],b=v[g+v[a+16>>2]>>2],g=(v[b+4>>2]<<2)+v[b+12>>2]|0,d=p[g-8>>2],p[t+32>>2]=d,T=p[g-4>>2],p[t+28>>2]=T,(0|h)!=(0|m)|(0|c)!=(0|I)||(g=G>=w(0),S=w(F-C),W=w(y-A),(0|g)==(0|!(w(w(w(S*A)+w(w(d*W)-w(T*S)))-w(C*W))>=w(0)))||(S=w(R-d),W=w(S*T),T=w(P-T),g^w(w(W+w(w(j*T)-w(U*S)))-w(d*T))>=w(0))))?d=y:(n=0,v[b+4>>2]=0,v[u+4>>2]=0,Gn(v[t+40>>2],t+32|0),Gn(v[t+40>>2],t+28|0),Un(v[t+44>>2],t+36|0),d=p[t+28>>2],A=y,C=F,F=p[t+32>>2])):n=e,o>>>0>(n=n+1|0)>>>0;);if((0|o)==(0|(e=e+1|0)))break}if(!((0|(u=v[a+8>>2]))<=0))for(;;){if(o=v[(c=(e=u-1|0)<<2)+v[a+16>>2]>>2],v[t+40>>2]=o,!v[o+4>>2]){if(b=v[a+8>>2]-1|0,v[a+8>>2]=b,b>>>0>(n=e)>>>0){for(;o=v[a+16>>2],g=v[(h=o+(n<<2)|0)>>2],m=o,o=(n=n+1|0)<<2,v[h>>2]=v[m+o>>2],v[o+v[a+16>>2]>>2]=g,(0|n)!=(0|b););o=v[t+40>>2]}if(pe($,o),o=v[c+v[a+32>>2]>>2],v[t+44>>2]=o,b=v[a+24>>2]-1|0,v[a+24>>2]=b,b>>>0>(n=e)>>>0){for(;o=v[a+32>>2],h=v[(c=o+(n<<2)|0)>>2],m=o,o=(n=n+1|0)<<2,v[c>>2]=v[m+o>>2],v[o+v[a+32>>2]>>2]=h,(0|n)!=(0|b););o=v[t+44>>2]}pe(k,o)}if(n=(0|u)>1,u=e,!n)break}}if(V=t+48|0,e=s,v[r+228>>2]=e,v[e+4>>2])for(;nn(n=v[v[e+12>>2]+(H<<2)>>2]),Gn(n,v[n+12>>2]),Gn(n,v[n+12>>2]+4|0),e=v[r+228>>2],(u=v[e+4>>2])>>>0>(H=H+1|0)>>>0;);else u=0}return V=f+16|0,0|u}function nr(r){var n,e,f,t=0,u=0,o=0,a=0,c=0,b=0,k=0,h=0,d=0,p=0,y=0,m=0;if(v[124+(r|=0)>>2]=0,v[r+108>>2]=0,u=v[r+12>>2])for(;a=v[v[r+20>>2]+(t<<2)>>2],h=l[v[a+4>>2]+60|0],i[a+116|0]=h,i[a+117|0]=1^h,(0|u)!=(0|(t=t+1|0)););if((h=v[r+136>>2])&&(u=v[h+40>>2]))for(t=0;;){for(a=v[v[r+20>>2]+(v[v[v[h+48>>2]+(t<<2)>>2]+4>>2]<<2)>>2];s[a+116>>1]=256,a=v[a+12>>2];);if((0|u)==(0|(t=t+1|0)))break}r:if(h=(f=v[r+92>>2])+((n=v[r+76>>2])+(e=v[r+60>>2])|0)|0)for(a=0;;){n:{e:{f:if(e){if(t=0,d=1,u=v[v[r+68>>2]>>2],v[v[u+4>>2]+16>>2]!=(0|a)){for(;;){if((0|e)==(0|(t=t+1|0)))break f;if(u=v[v[r+68>>2]+(t<<2)>>2],v[v[u+4>>2]+16>>2]==(0|a))break}d=t>>>0>>0}V=c=V-16|0;i:{t:if(l[v[u+40>>2]+117|0]){u:{if(l[v[u+4>>2]+20|0]){if(!(t=v[r+136>>2]))break t;if(!(o=v[t+56>>2])){i[u+44|0]=0;break i}if(k=v[u+4>>2],b=v[t- -64>>2],(0|k)!=v[b>>2]){for(t=0;(0|o)!=(0|(t=t+1|0))&(0|k)!=v[b+(t<<2)>>2];);if(t=t>>>0>>0,i[u+44|0]=t,t)break u;break i}}i[u+44|0]=1}Qf(r,v[u+40>>2]),Qf(r,k=v[v[u+20>>2]>>2]);u:if(!((t=v[u+12>>2])>>>0<2)){if(o=v[(v[u+20>>2]+(t<<2)|0)-4>>2],v[c+12>>2]=o,b=v[r+108>>2]){if(p=v[r+116>>2],(0|o)==v[p>>2])break u;for(t=0;(0|b)!=(0|(t=t+1|0))&(0|o)!=v[p+(t<<2)>>2];);if(t>>>0>>0)break u}Un(r+120|0,c+12|0)}v[c+8>>2]=u,Un(r+104|0,c+8|0),kf(k+16|0),i[v[(v[u+20>>2]+(v[u+12>>2]<<2)|0)-4>>2]+116|0]=1;break i}i[u+44|0]=0}if(V=c+16|0,a=a+1|0,d)break e}f:if(n){if(t=0,d=1,u=v[v[r+84>>2]>>2],v[v[u+4>>2]+16>>2]!=(0|a)){for(;;){if((0|n)==(0|(t=t+1|0)))break f;if(u=v[v[r+84>>2]+(t<<2)>>2],v[v[u+4>>2]+16>>2]==(0|a))break}d=t>>>0>>0}V=c=V-16|0;i:{t:{u:if(l[v[u+24>>2]+117|0]){o:{if(l[v[u+4>>2]+20|0]){if(!(t=v[r+136>>2]))break u;if(!(o=v[t+56>>2])){i[u+44|0]=0;break i}if(k=v[u+4>>2],b=v[t- -64>>2],(0|k)!=v[b>>2]){for(t=0;(0|o)!=(0|(t=t+1|0))&(0|k)!=v[b+(t<<2)>>2];);if(t=t>>>0>>0,i[u+44|0]=t,t)break o;break i}}i[u+44|0]=1}if(Qf(r,v[u+24>>2]),o=v[u+12>>2],l[v[u+4>>2]+85|0]){if(!o)break t;for(p=r+120|0,b=0;;){t=v[v[u+20>>2]+(b<<2)>>2],v[c+12>>2]=t,Qf(r,v[t+12>>2]);o:{if(k=v[r+108>>2]){if(t=0,y=v[c+12>>2],m=v[r+116>>2],(0|y)==v[m>>2])break o;for(;(0|k)!=(0|(t=t+1|0))&v[(t<<2)+m>>2]!=(0|y););if(t>>>0>>0)break o}Un(p,c+12|0)}if((0|o)==(0|(b=b+1|0)))break}}else{if(!o)break t;for(t=0;Qf(r,v[v[u+20>>2]+(t<<2)>>2]),(0|o)!=(0|(t=t+1|0)););}if(v[c+8>>2]=u,Un(r+104|0,c+8|0),!o)break i;for(t=0;kf(v[v[u+20>>2]+(t<<2)>>2]+16|0),(0|o)!=(0|(t=t+1|0)););if(!o)break i;for(u=v[u+20>>2],t=0;i[v[u+(t<<2)>>2]+116|0]=1,(0|o)!=(0|(t=t+1|0)););break i}i[u+44|0]=0;break i}v[c+8>>2]=u,Un(r+104|0,c+8|0)}if(V=c+16|0,a=a+1|0,d)break e}if(t=0,!f)break n;for(;;){if(u=v[v[r+100>>2]+(t<<2)>>2],v[v[u+4>>2]+16>>2]!=(0|a)){if((0|f)!=(0|(t=t+1|0)))continue;break n}break}V=c=V-16|0;f:{i:{t:if(l[v[v[u+24>>2]+8>>2]+117|0]){u:{if(l[v[u+4>>2]+20|0]){if(!(t=v[r+136>>2]))break t;if(!(o=v[t+56>>2])){i[u+140|0]=0;break f}if(b=v[u+4>>2],d=v[t- -64>>2],(0|b)!=v[d>>2]){for(t=0;(0|o)!=(0|(t=t+1|0))&(0|b)!=v[d+(t<<2)>>2];);if(t=t>>>0>>0,i[u+140|0]=t,t)break u;break f}}i[u+140|0]=1}if(b=v[u+24>>2],d=v[v[b+4>>2]+4>>2],o=v[b+8>>2],(t=v[r+136>>2])?(Yr(r,t,d,o),k=v[r+136>>2]):k=0,t=v[r+4>>2],!(p=v[t+64>>2])|(0|k)==(0|p)||(Yr(r,p,d,o),t=v[r+4>>2]),k=v[t+52>>2])for(t=0;Yr(r,v[v[v[r+4>>2]+60>>2]+(t<<2)>>2],d,o),(0|k)!=(0|(t=t+1|0)););if((t=v[b+60>>2])&&Si(0|Ta[v[v[t>>2]+8>>2]](t),21212)&&Mn(r,t,o),!(o=v[u+12>>2])){v[c+12>>2]=u,Un(r+104|0,c+12|0);break f}for(t=0;Qf(r,v[v[u+20>>2]+(t<<2)>>2]),(0|o)!=(0|(t=t+1|0)););break i}i[u+140|0]=0;break f}if(v[c+12>>2]=u,Un(r+104|0,c+12|0),o){for(t=0;kf(v[v[u+20>>2]+(t<<2)>>2]+16|0),(0|o)!=(0|(t=t+1|0)););if(o)for(u=v[u+20>>2],t=0;i[v[u+(t<<2)>>2]+116|0]=1,(0|o)!=(0|(t=t+1|0)););}}V=c+16|0,a=a+1|0}if(h>>>0>a>>>0)continue;break r}if(!(h>>>0>(a=a+1|0)>>>0))break}if(h=v[r+12>>2])for(a=0;Qf(r,v[v[r+20>>2]+(a<<2)>>2]),(0|h)!=(0|(a=a+1|0)););}function er(r,n,e,f,i,t){var u,o,a,c=0,b=0,k=0,l=0,d=w(0),y=0,F=w(0),A=w(0),T=0,$=0,I=0,C=w(0),P=0,E=w(0),O=0,R=0,S=w(0),W=0,G=0,U=w(0),j=0,H=w(0),L=w(0),M=w(0),_=w(0),z=w(0),x=w(0),J=0,K=w(0),B=w(0),N=w(0),q=0,D=0,Z=0,Y=w(0),X=w(0),Q=w(0),rr=w(0),nr=w(0),er=w(0),fr=w(0),ir=w(0),tr=w(0),ur=w(0),or=0,ar=w(0),cr=w(0),br=w(0),kr=0;V=u=V-16|0,o=v[r+228>>2],a=v[o+4>>2],v[r+196>>2]=0,v[r+164>>2]=0,v[r+180>>2]=0;r:if(f)for(q=r+192|0,D=r+176|0,Z=r+160|0,O=r+144|0;;){n:{if(a)for(k=m(h[(c=(G<<1)+e|0)>>1],t)<<2,Y=p[k+i>>2],l=m(h[c+4>>1],t)<<2,X=p[l+i>>2],c=m(h[c+2>>1],t)<<2,Q=p[c+i>>2],rr=p[(y=k+4|0)+i>>2],nr=p[(T=l+4|0)+i>>2],er=p[(b=c+4|0)+i>>2],K=p[n+b>>2],U=p[n+T>>2],fr=w(K-U),B=p[n+k>>2],H=p[n+l>>2],ir=w(B-H),N=p[n+c>>2],tr=w(H-N),x=p[n+y>>2],ur=w(w(1)/w(w(fr*ir)+w(tr*w(x-U)))),br=w(U-x),J=0;;){$=v[r+164>>2],j=v[v[o+12>>2]+(J<<2)>>2],I=0,V=b=V-48|0,p[b+40>>2]=x,p[b+44>>2]=B,p[b+36>>2]=N,p[b+32>>2]=K,p[b+28>>2]=H,p[b+24>>2]=U,c=r+208|0,l=2&v[j+4>>2],v[(k=l?O:c)+4>>2]=0,Gn(k,y=b+44|0),Gn(k,T=b+40|0),Gn(k,b+36|0),Gn(k,b+32|0),Gn(k,b+28|0),Gn(k,b+24|0),Gn(k,y),Gn(k,T),v[(c=l?c:O)+4>>2]=0,kr=v[j+4>>2]-4|0,y=0;e:{f:{for(;;){if(P=v[j+12>>2],F=p[(R=P+(l=y<<2)|0)>>2],p[b+20>>2]=F,d=p[P+(4|l)>>2],p[b+16>>2]=d,or=v[k+4>>2]-2|0){for(l=k,L=p[P+((T=y+2|0)<<2)>>2],ar=w(F-L),F=p[R+12>>2],cr=w(-w(d-F)),k=0;;){P=v[l+12>>2],d=p[P+(4|(R=k<<2))>>2],A=p[(R=P+R|0)>>2],E=p[P+((k=k+2|0)<<2)>>2],p[b+12>>2]=E,C=p[R+12>>2],p[b+8>>2]=C,S=w(w(ar*w(C-F))+w(w(E-L)*cr));i:if(w(w(ar*w(d-F))+w(w(A-L)*cr))>w(0)){if(S>w(0)){Gn(c,b+12|0),Gn(c,b+8|0);break i}if(S=w(C-d),C=p[b+20>>2],M=w(L-C),_=p[b+16>>2],E=w(E-A),z=w(w(S*M)-w(w(F-_)*E)),w(g(z))>w(9.999999974752427e-7)){d=w(w(w(E*w(_-d))-w(w(C-A)*S))/z),p[b+4>>2]=w(M*d)+C,Gn(c,I=b+4|0),A=p[b+16>>2],p[b+4>>2]=w(w(F-A)*d)+A,Gn(c,I),I=1;break i}Gn(c,b+20|0),Gn(c,b+16|0),I=1}else I=1,S>w(0)&&(S=w(C-d),C=p[b+20>>2],M=w(L-C),_=p[b+16>>2],E=w(E-A),z=w(w(S*M)-w(w(F-_)*E)),w(g(z))>w(9.999999974752427e-7)?(d=w(w(w(E*w(_-d))-w(w(C-A)*S))/z),p[b+4>>2]=w(M*d)+C,Gn(c,P=b+4|0),A=p[b+16>>2],p[b+4>>2]=w(w(F-A)*d)+A,Gn(c,P)):(Gn(c,b+20|0),Gn(c,b+16|0)),Gn(c,b+12|0),Gn(c,b+8|0));if(!(k>>>0>>0))break}if(v[c+4>>2]){if(Gn(c,v[c+12>>2]),Gn(c,v[c+12>>2]+4|0),(0|y)==(0|kr))break f;v[l+4>>2]=0,y=T,k=c,c=l;continue}}break}v[O+4>>2]=0,I=1;break e}if((0|c)==(0|O))c=v[O+4>>2],v[b+20>>2]=0,wn(O,c-2|0,b+20|0);else{if(k=0,v[O+4>>2]=0,!(l=v[c+4>>2]-2|0))break e;for(;Gn(O,v[c+12>>2]+(k<<2)|0),(0|l)!=(0|(k=k+1|0)););}}if(V=b+48|0,!I)break n;if(k=v[r+148>>2]){for(c=0,v[u+12>>2]=0,wn(Z,l=(-2&k)+$|0,y=u+12|0),v[u+12>>2]=0,wn(q,l,y),l=v[r+204>>2],y=v[r+172>>2],T=v[r+156>>2];F=p[(I=c<<2)+T>>2],j=4+(b=$<<2)|0,d=p[T+(4|I)>>2],p[j+y>>2]=d,p[b+y>>2]=F,A=w(F-H),d=w(d-U),F=w(ur*w(w(fr*A)+w(tr*d))),d=w(ur*w(w(br*A)+w(ir*d))),A=w(w(w(1)-F)-d),p[l+j>>2]=w(nr*A)+w(w(rr*F)+w(er*d)),p[b+l>>2]=w(X*A)+w(w(Y*F)+w(Q*d)),$=$+2|0,k>>>0>(c=c+2|0)>>>0;);if($=v[r+180>>2],s[u+12>>1]=0,Fn(D,(m(k=k>>>1|0,3)+$|0)-6|0,u+12|0),(y=k-1|0)>>>0>=2)for(T=v[r+188>>2],c=1;s[(l=T+($<<1)|0)>>1]=W,b=c+W|0,s[l+2>>1]=b,s[l+4>>1]=b+1,$=$+3|0,(0|y)!=(0|(c=c+1|0)););W=k+W|0}if((0|a)==(0|(J=J+1|0)))break}if((G=G+3|0)>>>0>>0)continue;break r}if(v[u+12>>2]=0,wn(Z,c=$+6|0,l=u+12|0),v[u+12>>2]=0,wn(q,c,l),k=v[r+172>>2],p[k+(y=20+(c=$<<2)|0)>>2]=U,p[(T=c+16|0)+k>>2]=H,p[(b=c+12|0)+k>>2]=K,p[($=c+8|0)+k>>2]=N,p[(I=c+4|0)+k>>2]=x,p[c+k>>2]=B,k=v[r+204>>2],p[k+y>>2]=nr,p[k+T>>2]=X,p[b+k>>2]=er,p[k+$>>2]=Q,p[k+I>>2]=rr,p[c+k>>2]=Y,c=v[r+180>>2],s[u+12>>1]=0,Fn(D,c+3|0,l),c=v[r+188>>2]+(c<<1)|0,s[c>>1]=W,s[c+4>>1]=W+2,s[c+2>>1]=W+1,W=W+3|0,!((G=G+3|0)>>>0>>0))break}V=u+16|0}function fr(r,n){var e,f=0,i=0,o=0,a=0,c=0,s=0,l=0,h=0,d=0,p=0,F=0,T=0,$=0,I=0,C=0,P=0,E=0,O=0,R=0,S=0,W=0,G=0;V=e=V-16|0,b(r);r:if((o=2147483647&(P=t(2)))>>>0<=1305022426){if(C=(h=+r)+-1.5707963109016418*(f=.6366197723675814*h+6755399441055744-6755399441055744)+-1.5893254773528196e-8*f,y[n>>3]=C,a=C<-.7853981852531433,o=g(f)<2147483648?~~f:-2147483648,a){f+=-1,y[n>>3]=h+-1.5707963109016418*f+-1.5893254773528196e-8*f,o=o-1|0;break r}if(!(C>.7853981852531433))break r;f+=1,y[n>>3]=h+-1.5707963109016418*f+-1.5893254773528196e-8*f,o=o+1|0}else if(o>>>0>=2139095040)y[n>>3]=w(r-r),o=0;else{if(i=o,o=(o>>>23|0)-150|0,y[e+8>>3]=(u(2,i-(o<<23)|0),k()),E=e+8|0,V=c=V-560|0,l=o+m($=(0|(i=(o-3|0)/24|0))>0?i:0,-24)|0,(0|(p=v[4408]))>=0)for(o=p+1|0,i=$;y[(c+320|0)+(a<<3)>>3]=(0|i)<0?0:+v[17648+(i<<2)>>2],i=i+1|0,(0|o)!=(0|(a=a+1|0)););for(F=l-24|0,o=0,a=(0|p)>0?p:0;;){for(i=0,f=0;f=y[(i<<3)+E>>3]*y[(c+320|0)+(o-i<<3)>>3]+f,1!=(0|(i=i+1|0)););if(y[(o<<3)+c>>3]=f,i=(0|o)==(0|a),o=o+1|0,i)break}W=47-l|0,O=48-l|0,R=(0|l)<25,G=l-25|0,o=p;n:{for(;;){if(f=y[(o<<3)+c>>3],i=0,a=o,!(d=(0|o)<=0))for(;T=(c+480|0)+(i<<2)|0,s=g(h=5.960464477539063e-8*f)<2147483648?~~h:-2147483648,s=g(f=-16777216*(h=+(0|s))+f)<2147483648?~~f:-2147483648,v[T>>2]=s,f=y[((a=a-1|0)<<3)+c>>3]+h,(0|(i=i+1|0))!=(0|o););f=Hn(f,F),f+=-8*A(.125*f),f-=+(0|(T=g(f)<2147483648?~~f:-2147483648));e:{f:{i:{if(R){if(F)break i;s=v[476+((o<<2)+c|0)>>2]>>23}else I=i=(o<<2)+c|0,i=(s=v[i+476>>2])-((a=s>>O)<>2]=i,T=a+T|0,s=i>>W;if((0|s)<=0)break e;break f}if(s=2,!(f>=.5)){s=0;break e}}if(i=0,a=0,!d)for(;S=v[(I=(c+480|0)+(i<<2)|0)>>2],d=16777215,a||(d=16777216,S)?(v[I>>2]=d-S,a=1):a=0,(0|(i=i+1|0))!=(0|o););f:if(!R){i=8388607;i:switch(0|G){case 1:i=4194303;break;case 0:break i;default:break f}v[476+(d=(o<<2)+c|0)>>2]=v[d+476>>2]&i}T=T+1|0,2==(0|s)&&(f=1-f,s=2,a&&(f-=Hn(1,F)))}if(0!=f)break;if(i=1,d=0,a=o,!((0|o)<=(0|p))){for(;d=v[(c+480|0)+((a=a-1|0)<<2)>>2]|d,(0|a)>(0|p););if(d){for(l=F;l=l-24|0,!v[(c+480|0)+((o=o-1|0)<<2)>>2];);break n}}for(;a=i,i=i+1|0,!v[(c+480|0)+(p-a<<2)>>2];);for(a=o+a|0;;){for(y[(c+320|0)+((o=o+1|0)<<3)>>3]=v[17648+(o+$<<2)>>2],i=0,f=0;f=y[(i<<3)+E>>3]*y[(c+320|0)+(o-i<<3)>>3]+f,1!=(0|(i=i+1|0)););if(y[(o<<3)+c>>3]=f,!((0|o)<(0|a)))break}o=a}(f=Hn(f,24-l|0))>=16777216?(F=(c+480|0)+(o<<2)|0,i=g(h=5.960464477539063e-8*f)<2147483648?~~h:-2147483648,a=g(f=-16777216*+(0|i)+f)<2147483648?~~f:-2147483648,v[F>>2]=a,o=o+1|0):(i=g(f)<2147483648?~~f:-2147483648,l=F),v[(c+480|0)+(o<<2)>>2]=i}if(f=Hn(1,l),(0|o)>=0){for(a=o;y[((i=a)<<3)+c>>3]=f*+v[(c+480|0)+(i<<2)>>2],a=i-1|0,f*=5.960464477539063e-8,i;);for(a=o;;){if(f=0,i=0,(0|(F=(0|(l=o-a|0))>(0|p)?p:l))>=0)for(;f=y[20416+(i<<3)>>3]*y[(i+a<<3)+c>>3]+f,$=(0|i)!=(0|F),i=i+1|0,$;);if(y[(c+160|0)+(l<<3)>>3]=f,i=(0|a)>0,a=a-1|0,!i)break}}if(f=0,(0|o)>=0)for(;a=o,o=o-1|0,f+=y[(c+160|0)+(a<<3)>>3],a;);y[e>>3]=s?-f:f,V=c+560|0,o=7&T,f=y[e>>3],(0|P)<0?(y[n>>3]=-f,o=0-o|0):y[n>>3]=f}return V=e+16|0,o}function ir(r,n){r|=0,n|=0;var e,f=0,t=0,u=0,o=0,a=0,c=0,b=0,k=0,s=w(0),h=0,d=0,y=0,m=w(0),g=0,F=0,A=w(0),T=0,$=0,I=w(0);if(V=e=V-16|0,l[r+88|0]){if(i[r+88|0]=0,t=v[r+80>>2])for(;f=v[t+12>>2],Ta[v[v[t>>2]+4>>2]](t),t=f,f;);if(v[r+80>>2]=0,v[r+84>>2]=0,g=v[r+44>>2]){for(;;){if(f=v[v[r+52>>2]+(d<<2)>>2]){for(;t=f,f=v[f+24>>2];);for(;;){if(f=v[t+28>>2],3!=v[t+112>>2]||!f){b=0,V=a=V-16|0,y=v[t+16>>2],c=v[y+8>>2],f=v[t+28>>2],v[a+12>>2]=0,gn(t+116|0,c,o=a+12|0),v[a+12>>2]=0,$n(t+132|0,c,o);r:if(!f|!l[f+37|0]){if(c)for(T=r+76|0;;){o=v[(k=b<<2)+v[y+16>>2]>>2],$=0|Ta[v[v[o>>2]+16>>2]](o),v[a+12>>2]=$;n:{if(u=v[r+80>>2])for(;;){if(v[u+4>>2]==(0|$)){u=0;break n}if(!(u=v[u+12>>2]))break}if(u=1,i[a+11|0]=1,_n(T,a+12|0,a+11|0),f&&!Fu(0|Ta[v[v[o>>2]+8>>2]](o),20988)&&!Fu(0|Ta[v[v[o>>2]+8>>2]](o),21096)&&!Fu(0|Ta[v[v[o>>2]+8>>2]](o),21108)&&(o=f,Pf(v[f+16>>2],v[a+12>>2]))){for(;;){if(u=2,!(o=v[o+28>>2]))break n;if(!Pf(v[o+16>>2],v[a+12>>2]))break}if(p[t+100>>2]>w(0)){if(v[k+v[t+128>>2]>>2]=3,v[k+v[t+144>>2]>>2]=t,c>>>0>(b=b+1|0)>>>0)continue;break r}}}if(v[k+v[t+128>>2]>>2]=u,!(c>>>0>(b=b+1|0)>>>0))break}}else{if(!c)break r;for(o=r+76|0,f=0;;){u=v[(b=f<<2)+v[y+16>>2]>>2],k=0|Ta[v[v[u>>2]+16>>2]](u),v[a+12>>2]=k;n:{if(u=v[r+80>>2])for(;;){if((0|k)==v[u+4>>2])break n;if(!(u=v[u+12>>2]))break}i[a+11|0]=1,_n(o,a+12|0,a+11|0)}if(v[b+v[t+128>>2]>>2]=2,(0|c)==(0|(f=f+1|0)))break}}V=a+16|0,f=v[t+28>>2]}if(!(t=f))break}}if((0|g)==(0|(d=d+1|0)))break}if(t=v[r+80>>2])for(;f=v[t+12>>2],Ta[v[v[t>>2]+4>>2]](t),t=f,f;);if(v[r+80>>2]=0,v[r+84>>2]=0,!((0|(f=v[r+44>>2]))<=0))for(;;){if(o=f,f=f-1|0,t=v[v[r+52>>2]+(f<<2)>>2])for(;;){if(u=0,V=a=V-16|0,b=v[t+16>>2],d=v[b+8>>2])for(y=r+76|0;;){c=v[(k=u<<2)+v[b+16>>2]>>2];r:if(Fu(0|Ta[v[v[c>>2]+8>>2]](c),20988)){g=v[k+v[b+16>>2]>>2],T=v[g+4>>2];n:{if(c=v[r+80>>2])for(;;){if((0|T)==v[c+4>>2])break n;if(!(c=v[c+12>>2]))break}v[a+12>>2]=v[g+4>>2],i[a+11|0]=1,_n(y,a+12|0,a+11|0);break r}c=k+v[t+128>>2]|0,v[c>>2]=4|v[c>>2]}if((0|d)==(0|(u=u+1|0)))break}if(V=a+16|0,!(t=v[t+24>>2]))break}if(!((0|o)>1))break}}}if(d=v[r+44>>2])for(a=r+56|0;;){if(!(!(f=v[v[r+52>>2]+(F<<2)>>2])|p[f+68>>2]>w(0))){t=F?v[f+112>>2]:1,m=p[f+92>>2],v[f+24>>2]?m=w(m*dr(r,f,n,t)):p[f+72>>2]>=p[f+84>>2]&&(m=v[f+20>>2]?m:w(0)),s=p[f+52>>2],I=p[f+60>>2];r:if(l[f+36|0]){if((A=w(p[f+56>>2]-s))==w(0))break r;s=w(s+Er(p[f+72>>2],A))}else s=(s=w(s+p[f+72>>2]))<(A=p[f+56>>2])?s:A;c=v[f+16>>2],o=v[c+8>>2];r:if(!(!F&m==w(1))&3!=(0|t)){if(b=f+148|0,(y=v[f+152>>2])||(v[e+12>>2]=0,wn(b,o<<1,e+12|0)),o)for(h=0;k=3&v[(u=h<<2)+v[f+128>>2]>>2]?0:t,u=v[u+v[c+16>>2]>>2],Fu(0|Ta[v[v[u>>2]+8>>2]](u),21308)?pr(u,n,s,m,k,b,h<<1,!y):Ta[v[v[u>>2]+12>>2]](u,n,I,s,a,m,k,0),(0|o)!=(0|(h=h+1|0)););}else{if(!o)break r;for(h=0;u=v[v[c+16>>2]+(h<<2)>>2],Ta[v[v[u>>2]+12>>2]](u,n,I,s,a,m,t,0),(0|o)!=(0|(h=h+1|0)););}Br(r,f,s),v[r+60>>2]=0,p[f+64>>2]=s,p[f+80>>2]=p[f+72>>2],h=1}if((0|d)==(0|(F=F+1|0)))break}return mr(v[r+72>>2]),V=e+16|0,1&h}function tr(r,n,e,f,t){var u,o,a=0,c=0,b=0,k=0,s=0,h=0,d=0,y=0,m=0,g=0,F=0,A=w(0),T=w(0),$=0,I=0,C=0,P=0,E=0;if(V=u=V+-64|0,v[u+60>>2]=n,(0|(o=ee(f)))>0&&(d=47!=(0|(c=l[(f+o|0)-1|0]))&92!=(0|c)),v[u+56>>2]=0,ue(u+60|0,c=n+e|0,u+48|0))for($=r+4|0,I=r+20|0,C=1+(o+d|0)|0,m=u+44|0,g=u+36|0,s=12|(n=u+16|0),h=4|n,F=u+52|0;;){if((0|(a=v[u+52>>2]))!=(0|(e=v[u+48>>2])))if(v[u+56>>2])zi((n=ut(112))+4|0,0,108),v[n>>2]=9016,Tt(n+8|0),v[n+108>>2]=0,v[n+100>>2]=0,v[n+104>>2]=0,v[n+96>>2]=8744,v[n+92>>2]=0,v[n+84>>2]=0,v[n+88>>2]=0,v[n+80>>2]=8744,v[u>>2]=n,v[n+4>>2]=v[u+56>>2],b=v[5280],n=a-e|0,e=Ri(0|Ta[v[v[b>>2]+12>>2]](b,n+1|0,8590,308),e,n),i[n+e|0]=0,n=ht(u+4|0,e,1),te(v[u>>2]+8|0,n),gi(n),xf(u+60|0,c,u+48|0),n=90,Ie(5008,e=v[u+48>>2],a=v[u+52>>2]-e|0)&&(n=0,Ie(5185,e,a)&&(n=$u(e,F))),e=v[u>>2],v[e+76>>2]=n,i[e+72|0]=90==(0|n),sn(u+60|0,c,u+16|0),n=$u(v[u+16>>2],h),v[v[u>>2]+20>>2]=n,n=$u(v[u+24>>2],s),v[v[u>>2]+24>>2]=n,sn(u+60|0,c,u+16|0),n=$u(v[u+16>>2],h),v[v[u>>2]+28>>2]=n,e=$u(v[u+24>>2],s),n=v[u>>2],v[n+32>>2]=e,a=v[n+20>>2],k=v[u+56>>2],A=w(v[k+60>>2]),p[n+36>>2]=w(0|a)/A,b=v[n+24>>2],T=w(v[k+64>>2]),p[n+40>>2]=w(0|b)/T,l[n+72|0]?(b=b+v[n+28>>2]|0,e=e+a|0):(b=e+b|0,e=a+v[n+28>>2]|0),p[n+48>>2]=w(0|b)/T,p[n+44>>2]=w(0|e)/A,4==(0|sn(u+60|0,c,u+16|0))&&(v[u+4>>2]=0,gn(n+80|0,4,u+4|0),n=$u(v[u+16>>2],h),v[v[v[u>>2]+92>>2]>>2]=n,n=$u(v[u+24>>2],s),v[v[v[u>>2]+92>>2]+4>>2]=n,n=$u(v[u+32>>2],g),v[v[v[u>>2]+92>>2]+8>>2]=n,n=$u(v[u+40>>2],m),e=v[u>>2],v[v[e+92>>2]+12>>2]=n,4==(0|sn(u+60|0,c,u+16|0))&&(v[u+4>>2]=0,gn(e+96|0,4,u+4|0),n=$u(v[u+16>>2],h),v[v[v[u>>2]+108>>2]>>2]=n,n=$u(v[u+24>>2],s),v[v[v[u>>2]+108>>2]+4>>2]=n,n=$u(v[u+32>>2],g),v[v[v[u>>2]+108>>2]+8>>2]=n,n=$u(v[u+40>>2],m),v[v[v[u>>2]+108>>2]+12>>2]=n,sn(u+60|0,c,u+16|0))),n=$u(v[u+16>>2],h),v[v[u>>2]+60>>2]=n,n=$u(v[u+24>>2],s),v[v[u>>2]+64>>2]=n,sn(n=u+60|0,c,u+16|0),e=$u(v[u+16>>2],h),p[v[u>>2]+52>>2]=0|e,e=$u(v[u+24>>2],s),p[v[u>>2]+56>>2]=0|e,xf(n,c,u+48|0),n=$u(v[u+48>>2],F),v[v[u>>2]+68>>2]=n,Un(I,u);else{for(n=v[5280],a=a-e|0,n=Ri(0|Ta[v[v[n>>2]+12>>2]](n,a+1|0,8590,308),e,a),i[n+a|0]=0,e=ee(n),a=v[5280],b=Ri(0|Ta[v[v[a>>2]+12>>2]](a,e+C|0,8590,116),f,o),d&&(i[b+o|0]=47),yn((b+o|0)+d|0,n),P=u,E=Ze(e=ut(68),n=ht(u+4|0,n,1)),v[P+56>>2]=E,gi(n),sn(u+60|0,c,u+16|0),n=$u(v[u+16>>2],h),v[v[u+56>>2]+60>>2]=n,n=$u(v[u+24>>2],s),a=v[u+56>>2],v[a+64>>2]=n,sn(u+60|0,c,u+16|0),e=v[u+16>>2],k=v[u+20>>2]-e|0,n=8;;){if(n){if(Ie(v[8912+((n=n-1|0)<<2)>>2],e,k))continue}else n=0;break}for(v[a+40>>2]=n,sn(u+60|0,c,u+16|0),e=v[u+16>>2],k=v[u+20>>2]-e|0,n=8;;){if(n){if(Ie(v[8944+((n=n-1|0)<<2)>>2],e,k))continue}else n=0;break}for(v[a+44>>2]=n,e=v[u+24>>2],k=v[u+28>>2]-e|0,n=8;;){if(n){if(Ie(v[8944+((n=n-1|0)<<2)>>2],e,k))continue}else n=0;break}v[a+48>>2]=n,xf(u+60|0,c,u+48|0),v[a+52>>2]=1,v[a+56>>2]=1;r:if(Ie(5338,k=v[u+48>>2],y=v[u+52>>2]-k|0)){e=a+56|0,n=a+52|0;n:{e:{if(1==(0|y))switch(l[0|k]-120|0){case 0:break n;case 1:break e;default:break r}if(Ie(1056,k,y))break r;v[a+52>>2]=2}n=e}v[n>>2]=2}t?((n=v[r+36>>2])&&(e=ht(u+4|0,b,0),Ta[v[v[n>>2]+8>>2]](n,a,e),gi(e)),n=v[5280],Ta[v[v[n>>2]+20>>2]](n,b,8590,156)):(n=ht(u+4|0,b,1),te(v[u+56>>2]+28|0,n),gi(n)),Un($,u+56|0)}else v[u+56>>2]=0;if(!ue(u+60|0,c,u+48|0))break}V=u- -64|0}function ur(r,n){var e=0,f=0,t=0,u=0,o=0,a=0,c=0,b=0;r:{n:{e:{f:{i:{if((0|(e=i[0|n]))<=90)switch(e-34|0){case 11:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:break n;case 0:break i;default:break r}if((0|e)<=109){if(91==(0|e))break f;if(102!=(0|e))break r;if(Ie(n+1|0,5186,4))break r;return v[r+8>>2]=0,n+5|0}if(123==(0|e))break e;if(116!=(0|e)){if(110!=(0|e))break r;if(Ie(n+1|0,4536,3))break r;return v[r+8>>2]=2,n+4|0}if(Ie(n+1|0,5009,3))break r;return v[r+20>>2]=1,v[r+8>>2]=1,n+4|0}return wr(r,n)}for(t=r,v[r+8>>2]=5,n=n+1|0;n=(r=n)+1|0,((e=l[0|r])-1&255)>>>0<32;);f:{i:{if(93!=(0|e)){for(Le(e=Wt(32),0),v[t+4>>2]=e;n=r,r=r+1|0,(l[0|n]-1&255)>>>0<32;);if(!(n=ur(e,n)))break i;for(;n=(r=n)+1|0,(l[0|r]-1&255)>>>0<32;);for(n=1;;){t:{if(v[t+12>>2]=n,44!=(0|(n=l[0|r]))){if(93!=(0|n))break t;n=r+1|0;break f}for(Le(f=Wt(32),0),v[e>>2]=f;n=l[r+1|0],r=r+1|0,(n-1&255)>>>0<32;);if(!(n=ur(f,r)))break i;for(;n=(r=n)+1|0,(l[0|r]-1&255)>>>0<32;);n=v[t+12>>2]+1|0,e=f;continue}break}v[5290]=r,n=0}break f}n=0}return n}for(o=r,v[r+8>>2]=6,e=n+1|0;e=(r=e)+1|0,((n=l[0|r])-1&255)>>>0<32;);e:{f:{i:if(125!=(0|n)){for(Le(f=Wt(32),0),v[o+4>>2]=f;n=r,r=r+1|0,(l[0|n]-1&255)>>>0<32;);if(r=0,!(e=wr(f,n)))break e;for(;e=(r=e)+1|0,(l[0|r]-1&255)>>>0<32;);if(v[f+28>>2]=v[f+16>>2],e=0,v[f+16>>2]=0,58!=l[0|r])break f;for(;n=l[r+1|0],r=r+1|0,(n-1&255)>>>0<32;);if(n=ur(f,r)){for(;n=(r=n)+1|0,(l[0|r]-1&255)>>>0<32;);for(e=1;;){t:{if(v[o+12>>2]=e,44!=(0|(n=l[0|r]))){if(125!=(0|n))break t;r=r+1|0;break e}for(Le(t=Wt(32),0),v[f>>2]=t;n=l[r+1|0],r=r+1|0,(n-1&255)>>>0<32;);if(e=0,!(n=wr(t,r)))break i;for(;n=(r=n)+1|0,(l[0|r]-1&255)>>>0<32;);if(v[t+28>>2]=v[t+16>>2],v[t+16>>2]=0,58!=l[0|r]){v[5290]=r,r=0;break e}for(;n=l[r+1|0],r=r+1|0,(n-1&255)>>>0<32;);if(!(n=ur(t,r)))break i;for(;n=(r=n)+1|0,(l[0|r]-1&255)>>>0<32;);e=v[o+12>>2]+1|0,f=t;continue}break}e=0,v[5290]=r}}r=e;break e}v[5290]=r,r=0}return r}if(f=r,t=n,a=l[0|n],((n=l[0|(e=(45==(0|a))+n|0)])-48&255)>>>0>9)r=e;else for(;u=10*u+ +((255&n)-48|0),n=l[e+1|0],e=r=e+1|0,(n-48&255)>>>0<10;);if(46==(255&n)){if(n=r+1|0,((e=l[r+1|0])-48&255)>>>0>9)r=n;else for(;c=10*c+ +((255&e)-48|0),o=o+1|0,e=l[n+1|0],n=r=n+1|0,(e-48&255)>>>0<10;);u+=c/(+(Tf(o)>>>0)+4294967296*+(Z>>>0)),n=l[0|r]}if(b=c=45==(0|a)?-u:u,101==(255&n|32)){if(n=(e=45==(0|(a=l[r+1|0]))|43==(0|a))?r+2|0:r+1|0,o=0,((e=l[(e?2:1)+r|0])-48&255)>>>0>9)r=n;else for(;o=(m(o,10)+(255&e)|0)-48|0,e=l[n+1|0],n=r=n+1|0,(e-48&255)>>>0<10;);b=c/(u=+(Tf(o)>>>0)+4294967296*+(Z>>>0)),45!=(0|a)&&(b=c*u)}return u=b,(0|r)==(0|t)?(v[5290]=t,r=0):(v[f+8>>2]=3,n=g(u)<2147483648?~~u:-2147483648,v[f+20>>2]=n,p[f+24>>2]=u),r}return v[5290]=n,0}function or(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t|=0,u=w(u),o=w(o);var a,c,b,k,s=w(0),h=w(0),d=w(0),y=w(0),m=w(0),F=w(0),A=0,$=w(0),I=w(0),C=w(0),P=w(0),E=w(0),O=w(0),R=0,S=w(0),W=w(0),G=w(0),U=w(0),j=w(0),H=w(0);if(A=v[r+12>>2],o!=w(0)){if(l[r+88|0]||Tr(r),l[n+88|0]||Tr(n),P=p[n+60>>2],G=p[r+64>>2],U=p[r+60>>2],h=p[n+72>>2],$=p[A+96>>2],y=p[A+104>>2],I=p[A+92>>2],C=p[v[n+4>>2]+24>>2],d=p[A+108>>2],R=(O=p[r+72>>2])>2])>2],s=w(p[r+112>>2]+w(w(p[r+104>>2]*P)+w(W*p[r+108>>2]))),m=w(p[r+100>>2]+w(w(p[r+92>>2]*P)+w(W*p[r+96>>2])))):(s=w(w(p[r+104>>2]*P)+p[r+112>>2]),m=w(w(p[r+92>>2]*P)+p[r+100>>2])),E=w(m-p[A+100>>2]),s=w(s-p[A+112>>2]),m=w(w(1)/w(w(I*d)-w(y*$))),H=w(w(w(w(d*E)-w($*s))*m)-U),s=w(w(w(w(s*I)-w(y*E))*m)-G),+(s=w(T(w(w(H*H)+w(s*s)))))<1e-4)return Ar(r,e,f,0,t,0,o),void br(n,P,W,w(0),p[n+72>>2],p[n+76>>2],p[n+80>>2],p[n+84>>2]);k=0-(c=R?-1:1)|0,E=(b=h>2]),f=w(f-p[A+112>>2]),e=w(w(w(w(h*d)-w($*f))*m)-U),h=w(w(w(w(f*I)-w(y*h))*m)-G),d=w(w(e*e)+w(h*h)),u!=w(0)&&(f=w(w(w(F*w(E+w(1)))*w(.5))*u),$=w(T(d)),(u=w(f+w(w($-s)-w(C*F))))>w(0)&&(d=f,f=(f=w(u/w(f+f)))>w(1)?w(0):w(f+w(-1)),f=w(w(-w(u-w(d*w(w(1)-w(f*f)))))/$),e=w(w(f*e)+e),h=w(w(f*h)+h),d=w(w(e*e)+w(h*h)))),A=a?k:c,E=w(R?180:0),f=w(F*C),S<=w(9999999747378752e-20)?(u=w(-1),(F=w(w(w(d-w(s*s))-w(f*f))/w(f*w(s+s))))w(1))?w(1):F,!R|!t||(u=w(1),O=w(O*w(w(w(w(w(T(d))/w(f+s))+w(-1))*o)+w(1))))),s=w(w(f*u)+s),d=w(Qr(u)*w(0|i)),f=w(f*Ur(d)),u=Or(w(w(h*s)-w(f*e)),w(w(e*s)+w(h*f)))):($=w(0),S=Or(h,e),C=w(j*C),e=w(C*C),u=w(w(e*w(-2))*s),h=w(f*f),y=w(e-h),I=w(w(w(e*w(s*s))+w(h*d))-w(h*e)),(m=w(w(u*u)+w(w(y*w(-4))*I)))>=w(0)&&(m=w(T(m)),u=w(w(u+(u=w(-1))|!(e<=w(1)))&&(h=Ur(e=Qr(e)),s=w(w(f*Wr(e))+s),h=w(C*h),F>(f=w(w(s*s)+w(h*h)))&&(m=e,F=f,$=h,u=s),f>I)||(e=w(0),s=y,f=I,h=w(0)),t=w(w(F+f)*w(.5))>=d,f=w(0|i),u=w(S-Or(w((t?$:h)*f),t?u:s)),d=w((t?m:e)*f))),e=w(b?180:0),s=u,f=w(0|A),u=w(Or(W,P)*f),(s=w(w(w(w(s-u)*w(57.2957763671875))+E)-p[r+68>>2]))>w(180)?s=w(s+w(-360)):s>2]),O,p[r+76>>2],w(0),w(0)),s=w(w(d+u)*w(57.2957763671875)),u=p[n+80>>2],f=w(w(w(s-u)*f)+e),e=p[n+68>>2],(s=w(f-e))>w(180)?s=w(s+w(-360)):s>2],p[n+76>>2],u,p[n+84>>2])}else Mi(n)}function ar(r){var n=0,e=0,f=0,i=0,t=0,u=0,o=0,a=0,c=0;r:if(r|=0){t=(f=r-8|0)+(r=-8&(n=v[r-4>>2]))|0;n:if(!(1&n)){if(!(3&n))break r;if((f=f-(n=v[f>>2])|0)>>>0>>0<=255){if(i=n>>>3|0,(0|(n=v[f+12>>2]))==(0|(e=v[f+8>>2]))){a=21788,c=v[5447]&ot(i),v[a>>2]=c;break n}v[e+12>>2]=n,v[n+8>>2]=e;break n}if(u=v[f+24>>2],(0|f)!=(0|(n=v[f+12>>2]))){e=v[f+8>>2],v[e+12>>2]=n,v[n+8>>2]=e;break e}if(!(e=v[(i=f+20|0)>>2])){if(!(e=v[f+16>>2]))break f;i=f+16|0}for(;o=i,(e=v[(i=(n=e)+20|0)>>2])||(i=n+16|0,e=v[n+16>>2]););v[o>>2]=0;break e}if(3&~(n=v[t+4>>2]))break n;return v[5449]=r,v[t+4>>2]=-2&n,v[f+4>>2]=1|r,void(v[t>>2]=r)}n=0}if(u){e=v[f+28>>2];e:{if(v[(i=22092+(e<<2)|0)>>2]==(0|f)){if(v[i>>2]=n,n)break e;a=21792,c=v[5448]&ot(e),v[a>>2]=c;break n}if(v[u+(v[u+16>>2]==(0|f)?16:20)>>2]=n,!n)break n}v[n+24>>2]=u,(e=v[f+16>>2])&&(v[n+16>>2]=e,v[e+24>>2]=n),(e=v[f+20>>2])&&(v[n+20>>2]=e,v[e+24>>2]=n)}}if(!(f>>>0>=t>>>0)&&1&(n=v[t+4>>2])){n:{e:{f:{i:{if(!(2&n)){if(v[5453]==(0|t)){if(v[5453]=f,r=v[5450]+r|0,v[5450]=r,v[f+4>>2]=1|r,v[5452]!=(0|f))break r;return v[5449]=0,void(v[5452]=0)}if(v[5452]==(0|t))return v[5452]=f,r=v[5449]+r|0,v[5449]=r,v[f+4>>2]=1|r,void(v[r+f>>2]=r);if(r=(-8&n)+r|0,n>>>0<=255){if(i=n>>>3|0,(0|(n=v[t+12>>2]))==(0|(e=v[t+8>>2]))){a=21788,c=v[5447]&ot(i),v[a>>2]=c;break e}v[e+12>>2]=n,v[n+8>>2]=e;break e}if(u=v[t+24>>2],(0|t)!=(0|(n=v[t+12>>2]))){e=v[t+8>>2],v[e+12>>2]=n,v[n+8>>2]=e;break f}if(!(e=v[(i=t+20|0)>>2])){if(!(e=v[t+16>>2]))break i;i=t+16|0}for(;o=i,(e=v[(i=(n=e)+20|0)>>2])||(i=n+16|0,e=v[n+16>>2]););v[o>>2]=0;break f}v[t+4>>2]=-2&n,v[f+4>>2]=1|r,v[r+f>>2]=r;break n}n=0}if(u){e=v[t+28>>2];f:{if(v[(i=22092+(e<<2)|0)>>2]==(0|t)){if(v[i>>2]=n,n)break f;a=21792,c=v[5448]&ot(e),v[a>>2]=c;break e}if(v[u+(v[u+16>>2]==(0|t)?16:20)>>2]=n,!n)break e}v[n+24>>2]=u,(e=v[t+16>>2])&&(v[n+16>>2]=e,v[e+24>>2]=n),(e=v[t+20>>2])&&(v[n+20>>2]=e,v[e+24>>2]=n)}}if(v[f+4>>2]=1|r,v[r+f>>2]=r,v[5452]==(0|f))return void(v[5449]=r)}if(r>>>0<=255)return n=21828+(-8&r)|0,(e=v[5447])&(r=1<<(r>>>3))?r=v[n+8>>2]:(v[5447]=r|e,r=n),v[n+8>>2]=f,v[r+12>>2]=f,v[f+12>>2]=n,void(v[f+8>>2]=r);e=31,r>>>0<=16777215&&(e=62+((r>>>38-(n=F(r>>>8|0))&1)-(n<<1)|0)|0),v[f+28>>2]=e,v[f+16>>2]=0,v[f+20>>2]=0,n=22092+(e<<2)|0;n:{e:{if((i=v[5448])&(o=1<>>1|0):0),n=v[n>>2];;){if(i=n,(-8&v[n+4>>2])==(0|r))break e;if(n=e>>>29|0,e<<=1,!(n=v[16+(o=i+(4&n)|0)>>2]))break}v[o+16>>2]=f,v[f+24>>2]=i}else v[5448]=i|o,v[n>>2]=f,v[f+24>>2]=n;v[f+12>>2]=f,v[f+8>>2]=f;break n}r=v[i+8>>2],v[r+12>>2]=f,v[i+8>>2]=f,v[f+24>>2]=0,v[f+12>>2]=i,v[f+8>>2]=r}r=v[5455]-1|0,v[5455]=r||-1}}}function cr(r,n){var e,f=0,i=0,t=0,u=0,o=0,a=0,c=0;e=r+n|0;r:{n:if(!(1&(f=v[r+4>>2]))){if(!(3&f))break r;n=(f=v[r>>2])+n|0;e:{f:{i:{if((0|(r=r-f|0))!=v[5452]){if(f>>>0<=255){if((0|(i=v[r+8>>2]))!=(0|(t=v[r+12>>2])))break i;a=21788,c=v[5447]&ot(f>>>3|0),v[a>>2]=c;break n}if(u=v[r+24>>2],(0|(f=v[r+12>>2]))!=(0|r)){i=v[r+8>>2],v[i+12>>2]=f,v[f+8>>2]=i;break e}if(!(i=v[(t=r+20|0)>>2])){if(!(i=v[r+16>>2]))break f;t=r+16|0}for(;o=t,(i=v[(t=(f=i)+20|0)>>2])||(t=f+16|0,i=v[f+16>>2]););v[o>>2]=0;break e}if(3&~(f=v[e+4>>2]))break n;return v[5449]=n,v[e+4>>2]=-2&f,v[r+4>>2]=1|n,void(v[e>>2]=n)}v[i+12>>2]=t,v[t+8>>2]=i;break n}f=0}if(u){i=v[r+28>>2];e:{if(v[(t=22092+(i<<2)|0)>>2]==(0|r)){if(v[t>>2]=f,f)break e;a=21792,c=v[5448]&ot(i),v[a>>2]=c;break n}if(v[u+(v[u+16>>2]==(0|r)?16:20)>>2]=f,!f)break n}v[f+24>>2]=u,(i=v[r+16>>2])&&(v[f+16>>2]=i,v[i+24>>2]=f),(i=v[r+20>>2])&&(v[f+20>>2]=i,v[i+24>>2]=f)}}n:{e:{f:{i:{if(!(2&(f=v[e+4>>2]))){if(v[5453]==(0|e)){if(v[5453]=r,n=v[5450]+n|0,v[5450]=n,v[r+4>>2]=1|n,v[5452]!=(0|r))break r;return v[5449]=0,void(v[5452]=0)}if(v[5452]==(0|e))return v[5452]=r,n=v[5449]+n|0,v[5449]=n,v[r+4>>2]=1|n,void(v[r+n>>2]=n);if(n=(-8&f)+n|0,f>>>0<=255){if(t=f>>>3|0,(0|(f=v[e+12>>2]))==(0|(i=v[e+8>>2]))){a=21788,c=v[5447]&ot(t),v[a>>2]=c;break e}v[i+12>>2]=f,v[f+8>>2]=i;break e}if(u=v[e+24>>2],(0|e)!=(0|(f=v[e+12>>2]))){i=v[e+8>>2],v[i+12>>2]=f,v[f+8>>2]=i;break f}if(!(i=v[(t=e+20|0)>>2])){if(!(i=v[e+16>>2]))break i;t=e+16|0}for(;o=t,(i=v[(t=(f=i)+20|0)>>2])||(t=f+16|0,i=v[f+16>>2]););v[o>>2]=0;break f}v[e+4>>2]=-2&f,v[r+4>>2]=1|n,v[r+n>>2]=n;break n}f=0}if(u){i=v[e+28>>2];f:{if(v[(t=22092+(i<<2)|0)>>2]==(0|e)){if(v[t>>2]=f,f)break f;a=21792,c=v[5448]&ot(i),v[a>>2]=c;break e}if(v[u+(v[u+16>>2]==(0|e)?16:20)>>2]=f,!f)break e}v[f+24>>2]=u,(i=v[e+16>>2])&&(v[f+16>>2]=i,v[i+24>>2]=f),(i=v[e+20>>2])&&(v[f+20>>2]=i,v[i+24>>2]=f)}}if(v[r+4>>2]=1|n,v[r+n>>2]=n,v[5452]==(0|r))return void(v[5449]=n)}if(n>>>0<=255)return f=21828+(-8&n)|0,(i=v[5447])&(n=1<<(n>>>3))?n=v[f+8>>2]:(v[5447]=n|i,n=f),v[f+8>>2]=r,v[n+12>>2]=r,v[r+12>>2]=f,void(v[r+8>>2]=n);i=31,n>>>0<=16777215&&(i=62+((n>>>38-(f=F(n>>>8|0))&1)-(f<<1)|0)|0),v[r+28>>2]=i,v[r+16>>2]=0,v[r+20>>2]=0,f=22092+(i<<2)|0;n:{if((t=v[5448])&(o=1<>>1|0):0),f=v[f>>2];;){if(t=f,(-8&v[f+4>>2])==(0|n))break n;if(f=i>>>29|0,i<<=1,!(f=v[16+(o=t+(4&f)|0)>>2]))break}v[o+16>>2]=r,v[r+24>>2]=t}else v[5448]=t|o,v[f>>2]=r,v[r+24>>2]=f;return v[r+12>>2]=r,void(v[r+8>>2]=r)}n=v[t+8>>2],v[n+12>>2]=r,v[t+8>>2]=r,v[r+24>>2]=0,v[r+12>>2]=t,v[r+8>>2]=n}}function br(r,n,e,f,t,u,o,a){r|=0,n=w(n),e=w(e),f=w(f),t=w(t),u=w(u),o=w(o),a=w(a);var c,b=w(0),k=w(0),s=w(0),l=w(0),h=0,d=w(0),y=w(0),m=w(0),F=0,A=w(0);if(i[r+88|0]=1,p[r+84>>2]=a,p[r+80>>2]=o,p[r+76>>2]=u,p[r+72>>2]=t,p[r+68>>2]=f,p[r+64>>2]=e,p[r+60>>2]=n,c=v[r+8>>2],d=p[c+168>>2],y=p[c+164>>2],!(h=v[r+12>>2]))return o=w(w(f+o)*w(.01745329238474369)),F=r,A=w(w(Ur(o)*t)*d),p[F+104>>2]=A,F=r,A=w(w(Wr(o)*t)*y),p[F+92>>2]=A,f=w(w(w(f+w(90))+a)*w(.01745329238474369)),F=r,A=w(w(Ur(f)*u)*d),p[F+108>>2]=A,F=r,A=w(w(Wr(f)*u)*y),p[F+96>>2]=A,p[r+100>>2]=w(n*y)+p[c+172>>2],void(p[r+112>>2]=w(e*d)+p[c+176>>2]);b=p[h+104>>2],s=p[h+108>>2],k=p[h+92>>2],l=p[h+96>>2],p[r+100>>2]=w(w(k*n)+w(l*e))+p[h+100>>2],p[r+112>>2]=w(w(b*n)+w(s*e))+p[h+112>>2];r:{n:{e:{f:{i:{switch(0|(h=v[v[r+4>>2]+56>>2])){case 3:case 4:break n;case 2:break e;case 1:break f;case 0:break i}f=p[r+108>>2],n=p[r+104>>2],u=p[r+96>>2],t=p[r+92>>2];break r}return e=Ur(n=w(w(f+o)*w(.01745329238474369))),n=w(Wr(n)*t),e=w(e*t),p[r+104>>2]=w(b*n)+w(e*s),p[r+92>>2]=w(k*n)+w(e*l),e=Ur(n=w(w(w(f+w(90))+a)*w(.01745329238474369))),n=w(Wr(n)*u),e=w(e*u),p[r+108>>2]=w(b*n)+w(e*s),void(p[r+96>>2]=w(k*n)+w(e*l))}e=w(w(f+o)*w(.01745329238474369)),n=w(Ur(e)*t),t=w(Wr(e)*t),e=w(w(w(f+w(90))+a)*w(.01745329238474369)),f=w(Ur(e)*u),u=w(Wr(e)*u);break r}n=w(f+o),(e=w(w(k*k)+w(b*b)))>w(9999999747378752e-20)?(e=w(w(g(w(w(k*s)-w(b*l))))/e),s=w(k*e),l=w(b*e),e=w(Or(b,k)*w(57.2957763671875))):(b=w(0),k=w(0),e=w(w(Or(s,l)*w(-57.2957763671875))+w(90))),o=Ur(n=w(w(n-e)*w(.01745329238474369))),m=w(Wr(n)*t),t=w(o*t),n=w(w(b*m)+w(s*t)),t=w(w(k*m)-w(t*l)),f=Ur(e=w(w(w(w(f+a)-e)+w(90))*w(.01745329238474369))),e=w(Wr(e)*u),u=w(f*u),f=w(w(b*e)+w(s*u)),u=w(w(k*e)-w(u*l));break r}n=Ur(e=w(f*w(.01745329238474369))),f=Wr(e),m=e=w(w(w(k*f)+w(n*l))/y),n=w(w(w(b*f)+w(n*s))/d),f=(e=w(T(w(w(e*e)+w(n*n)))))>w(9999999747378752e-21)?w(w(1)/e):e,e=w(m*f),n=w(n*f),f=w(T(w(w(e*e)+w(n*n)))),b=3==(0|h)&&y>2]=d*f,p[r+104>>2]=d*n,p[r+96>>2]=y*u,p[r+92>>2]=y*t}function kr(r,n){var e,f=0,i=0,t=0,u=0,o=0,a=0,c=0;if(V=e=V-16|0,v[r+4>>2]=n,v[r+120>>2]=9260,v[r+116>>2]=0,v[r+108>>2]=0,v[r+112>>2]=0,v[r+104>>2]=10296,v[r+100>>2]=0,v[r+92>>2]=0,v[r+96>>2]=0,v[r+88>>2]=10280,v[r+84>>2]=0,v[r+76>>2]=0,v[r+80>>2]=0,v[r+72>>2]=10264,v[r+68>>2]=0,v[r+60>>2]=0,v[r+64>>2]=0,v[r+56>>2]=10248,v[r+52>>2]=0,v[r+44>>2]=0,v[r+48>>2]=0,v[r+40>>2]=10232,v[r+36>>2]=0,v[r+28>>2]=0,v[r+32>>2]=0,v[r+24>>2]=10232,v[r+20>>2]=0,v[r+12>>2]=0,v[r+16>>2]=0,v[r+8>>2]=9260,v[r>>2]=10216,v[r+132>>2]=0,v[r+136>>2]=0,v[r+124>>2]=0,v[r+128>>2]=0,v[r+140>>2]=9372,v[r+144>>2]=1065353216,v[r+148>>2]=1065353216,v[r+152>>2]=1065353216,v[r+156>>2]=1065353216,vf(r+140|0),v[r+176>>2]=0,v[r+168>>2]=1065353216,v[r+172>>2]=0,v[r+160>>2]=0,v[r+164>>2]=1065353216,u=r+8|0,f=v[r+4>>2],ya(u,v[(n=f)+20>>2]),v[n+20>>2])for(n=0;i=v[v[f+28>>2]+(n<<2)>>2],(t=v[i+20>>2])?(t=v[v[r+20>>2]+(v[t+4>>2]<<2)>>2],a=e,c=me(ut(120),i,r,t),v[a+12>>2]=c,Un(t+16|0,e+12|0)):(a=e,c=me(ut(120),i,r,0),v[a+12>>2]=c),Un(u,e+12|0),(n=n+1|0)>>>0>2];);if(i=r+24|0,f=v[r+4>>2],ya(i,v[(n=f)+36>>2]),ya(t=r+40|0,v[n+36>>2]),v[n+36>>2])for(n=0;u=v[v[f+44>>2]+(n<<2)>>2],o=v[v[r+20>>2]+(v[v[u+20>>2]+4>>2]<<2)>>2],a=e,c=Cn(ut(84),u,o),v[a+12>>2]=c,Un(i,u=e+12|0),Un(t,u),(n=n+1|0)>>>0>2];);if(i=r+56|0,f=v[r+4>>2],ya(i,v[(n=f)+104>>2]),v[n+104>>2])for(n=0;t=v[v[f+112>>2]+(n<<2)>>2],a=e,c=un(ut(48),t,r),v[a+12>>2]=c,Un(i,e+12|0),(n=n+1|0)>>>0>2];);if(i=r+72|0,f=v[r+4>>2],ya(i,v[(n=f)+120>>2]),v[n+120>>2])for(n=0;t=v[v[f+128>>2]+(n<<2)>>2],a=e,c=on(ut(48),t,r),v[a+12>>2]=c,Un(i,e+12|0),(n=n+1|0)>>>0>2];);if(i=r+88|0,f=v[r+4>>2],ya(i,v[(n=f)+136>>2]),v[n+136>>2])for(n=0;t=v[v[f+144>>2]+(n<<2)>>2],a=e,c=$r(ut(144),t,r),v[a+12>>2]=c,Un(i,e+12|0),(n=n+1|0)>>>0>2];);return nr(r),V=e+16|0,r}function sr(r,n,e,f){var i,t=0,u=0,o=0,a=0,c=0,b=0,k=w(0),s=0,l=0;if(V=i=V-32|0,d[r+8>>2]<=n>>>0){v[i+24>>2]=0,v[i+16>>2]=0,v[i+20>>2]=0,v[i+12>>2]=10832,o=v[r+8>>2],t=n+1|0,v[r+8>>2]=t,d[r+12>>2]>>0&&(k=w(w(t>>>0)*w(1.75)),t=(t=w(g(k))>>0<=8?8:t,v[r+12>>2]=t,a=v[5280],s=r,l=0|Ta[v[v[a>>2]+16>>2]](a,v[r+16>>2],t<<4,8590,85),v[s+16>>2]=l,t=v[r+8>>2]),a=i+12|0;r:if(t>>>0<=o>>>0){if(t>>>0>=o>>>0)break r;for(;u=v[r+16>>2]+(t<<4)|0,Ta[v[v[u>>2]>>2]](u),(0|o)!=(0|(t=t+1|0)););}else for(;;){if(t=v[r+16>>2]+(o<<4)|0,v[t>>2]=10832,v[t+4>>2]=v[a+4>>2],u=v[a+8>>2],v[t+12>>2]=0,v[t+8>>2]=u,u&&(c=v[5280],s=t,l=0|Ta[v[v[c>>2]+12>>2]](c,m(u,20),8590,210),v[s+12>>2]=l,v[t+4>>2]))for(u=0;c=(b=m(u,20))+v[t+12>>2]|0,b=b+v[a+12>>2]|0,v[c>>2]=v[b>>2],Ue(c+4|0,b+4|0),v[c+16>>2]=v[b+16>>2],(u=u+1|0)>>>0>2];);if(!((o=o+1|0)>>>0>2]))break}le(a)}r:{n:{e:{if(t=v[r+16>>2]+(n<<4)|0,v[t+4>>2])for(r=0;;){if(ei(4+(v[t+12>>2]+m(r,20)|0)|0,e))break e;if(!((r=r+1|0)>>>0>2]))break}Co(f);break n}if(Co(f),!((0|r)<0)){r=m(r,20),_i(v[16+(r+v[t+12>>2]|0)>>2]),v[16+(r+v[t+12>>2]|0)>>2]=f;break r}}v[i+12>>2]=n,o=Ue(i+16|0,e),v[i+28>>2]=f,r=i+12|0,V=n=V-32|0,(0|(e=v[t+4>>2]))!=v[t+8>>2]?(v[t+4>>2]=e+1,e=v[t+12>>2]+m(e,20)|0,v[e>>2]=v[r>>2],Ue(e+4|0,r+4|0),v[e+16>>2]=v[r+16>>2]):(v[n+12>>2]=v[r>>2],e=Ue(n+16|0,r+4|0),v[n+28>>2]=v[r+16>>2],k=w(w(d[t+4>>2])*w(1.75)),r=(r=w(g(k))>>0<=8?8:r,v[t+8>>2]=r,f=v[5280],r=0|Ta[v[v[f>>2]+16>>2]](f,v[t+12>>2],m(r,20),8590,113),v[t+12>>2]=r,f=v[t+4>>2],v[t+4>>2]=f+1,r=r+m(f,20)|0,v[r>>2]=v[n+12>>2],Ue(r+4|0,e),v[r+16>>2]=v[n+28>>2],gi(e)),V=n+32|0,gi(o)}V=i+32|0}function vr(r,n,e,f,i,t,u){var o,a=0,c=w(0),b=w(0),k=0,s=0,l=w(0),h=w(0),d=w(0),y=0,g=0,F=w(0),A=w(0),T=0,$=w(0),I=0,C=0;o=m(f>>>1|0,u)+t|0,k=v[n+8>>2];r:{n:{e:{if(v[r+24>>2]){if(e)break e;f=0;break n}if(t>>>0>=o>>>0)break r;for(c=p[k+108>>2],b=p[k+104>>2],l=p[k+96>>2],h=p[k+92>>2],d=p[k+112>>2],$=p[k+100>>2],r=v[12+(v[n+72>>2]?n+68|0:r+36|0)>>2];n=(t<<2)+i|0,F=p[(f=r+(e<<2)|0)>>2],A=p[f+4>>2],p[n+4>>2]=d+w(w(F*b)+w(c*A)),p[n>>2]=$+w(w(F*h)+w(l*A)),e=e+2|0,o>>>0>(t=t+u|0)>>>0;);break r}for(y=v[r+32>>2],f=0;f=(g=v[y+(a<<2)>>2])+f|0,a=1+(a+g|0)|0,(s=s+2|0)>>>0>>0;);}if(k=v[k+8>>2],v[n+72>>2]){if(!(t>>>0>=o>>>0))for(s=m(f,3),e=f<<1,g=v[n+80>>2],I=v[r+48>>2],n=v[r+32>>2];;){if(f=a+1|0,(0|(r=v[n+(a<<2)>>2]))<=0)c=w(0),a=f,b=w(0);else for(a=(0|(r=r+f|0))>(0|(a=a+2|0))?r:a,C=v[k+20>>2],b=w(0),c=w(0);r=v[(v[n+(f<<2)>>2]<<2)+C>>2],T=g+(e<<2)|0,l=w(p[(y=(s<<2)+I|0)>>2]+p[T>>2]),h=w(p[y+4>>2]+p[T+4>>2]),d=p[y+8>>2],b=w(w(w(p[r+112>>2]+w(w(l*p[r+104>>2])+w(h*p[r+108>>2])))*d)+b),c=w(w(w(p[r+100>>2]+w(w(l*p[r+92>>2])+w(h*p[r+96>>2])))*d)+c),e=e+2|0,s=s+3|0,(0|a)!=(0|(f=f+1|0)););if(p[(r=(t<<2)+i|0)>>2]=c,p[r+4>>2]=b,!(o>>>0>(t=t+u|0)>>>0))break}}else{if(t>>>0>=o>>>0)break r;for(s=m(f,3),y=v[r+48>>2],n=v[r+32>>2];;){if(f=a+1|0,(0|(r=v[n+(a<<2)>>2]))<=0)c=w(0),b=w(0),a=f;else for(a=(0|(r=r+f|0))>(0|(e=a+2|0))?r:e,g=v[k+20>>2],b=w(0),c=w(0);r=v[g+(v[n+(f<<2)>>2]<<2)>>2],l=p[(e=y+(s<<2)|0)>>2],h=p[e+4>>2],d=p[e+8>>2],b=w(w(w(p[r+112>>2]+w(w(l*p[r+104>>2])+w(h*p[r+108>>2])))*d)+b),c=w(w(w(p[r+100>>2]+w(w(l*p[r+92>>2])+w(h*p[r+96>>2])))*d)+c),s=s+3|0,(0|a)!=(0|(f=f+1|0)););if(p[(r=(t<<2)+i|0)>>2]=c,p[r+4>>2]=b,!(o>>>0>(t=t+u|0)>>>0))break}}}}function lr(r){r|=0;var n,e=w(0),f=0,i=w(0),t=0,u=w(0),o=w(0),a=0,c=0,b=w(0),k=w(0),s=w(0),l=0;V=n=V-16|0,(0|(c=v[r+108>>2]))!=(0|(t=v[r+124>>2]))&&(v[n+12>>2]=0,wn(r+104|0,t,n+12|0),c=v[r+124>>2]),e=p[r+184>>2],i=p[r+180>>2];r:{n:{if(270!=(0|(t=v[r+232>>2]))){if(180!=(0|t)){if(90!=(0|t))break n;if((0|c)<=0)break r;for(u=p[r+84>>2],o=w(u/w(p[r+192>>2]-e)),b=p[r+92>>2],u=w(e-w(w(w(b-p[r+76>>2])-u)/o)),k=p[r+88>>2],e=w(k/w(p[r+188>>2]-i)),s=i,i=p[r+96>>2],k=w(s-w(w(w(i-p[r+80>>2])-k)/e)),o=w(b/o),e=w(i/e),t=v[r+116>>2],a=v[r+132>>2],r=0;l=4|(f=r<<2),p[t+f>>2]=w(p[a+l>>2]*e)+k,p[t+l>>2]=w(w(w(1)-p[f+a>>2])*o)+u,(0|c)>(0|(r=r+2|0)););break r}if((0|c)<=0)break r;for(u=p[r+84>>2],o=w(u/w(p[r+188>>2]-i)),s=i,i=p[r+92>>2],u=w(s-w(w(w(i-p[r+76>>2])-u)/o)),b=w(p[r+88>>2]/w(p[r+192>>2]-e)),k=w(p[r+96>>2]/b),i=w(i/o),e=w(e-w(p[r+80>>2]/b)),t=v[r+116>>2],a=v[r+132>>2],r=0;p[(f=r<<2)+t>>2]=w(w(w(1)-p[f+a>>2])*i)+u,p[(f|=4)+t>>2]=w(w(w(1)-p[f+a>>2])*k)+e,(0|c)>(0|(r=r+2|0)););break r}if((0|c)<=0)break r;for(o=w(p[r+88>>2]/w(p[r+192>>2]-e)),u=w(p[r+92>>2]/o),b=w(p[r+84>>2]/w(p[r+188>>2]-i)),k=w(p[r+96>>2]/b),e=w(e-w(p[r+76>>2]/o)),i=w(i-w(p[r+80>>2]/b)),t=v[r+116>>2],a=v[r+132>>2],r=0;l=4|(f=r<<2),p[t+f>>2]=w(w(w(1)-p[a+l>>2])*k)+i,p[t+l>>2]=w(p[f+a>>2]*u)+e,(0|c)>(0|(r=r+2|0)););break r}if(!((0|c)<=0))for(u=p[r+88>>2],o=w(u/w(p[r+192>>2]-e)),s=e,e=p[r+96>>2],u=w(s-w(w(w(e-p[r+80>>2])-u)/o)),e=w(e/o),o=w(p[r+84>>2]/w(p[r+188>>2]-i)),b=w(p[r+92>>2]/o),i=w(i-w(p[r+76>>2]/o)),t=v[r+116>>2],a=v[r+132>>2],r=0;p[(f=r<<2)+t>>2]=w(p[f+a>>2]*b)+i,p[(f|=4)+t>>2]=w(p[f+a>>2]*e)+u,(0|c)>(0|(r=r+2|0)););}V=n+16|0}function hr(r,n,e){var f,i=0,t=0,u=0,o=0,a=0,c=0,b=0,k=0;if(V=f=V-48|0,v[f+40>>2]=0,v[f+44>>2]=0,v[f+36>>2]=17084,(0|(a=v[n+4>>2]))>0)for(;;){u=(i=m(t,12))+v[n+12>>2]|0,c=i+v[e+12>>2]|0;r:{n:{if(i=v[f+40>>2])for(;;){if(ei(o=i+4|0,u))break n;if(!(i=v[i+28>>2]))break}i=ut(36),v[i>>2]=17100,o=Tt(i+4|0),b=Tt(i+16|0),v[i+28>>2]=0,v[i+32>>2]=0,te(o,u),te(b,c),(u=v[f+40>>2])&&(v[u+32>>2]=i,v[i+28>>2]=u),v[f+40>>2]=i,v[f+44>>2]=v[f+44>>2]+1;break r}te(o,u),te(i+16|0,c)}if((0|a)==(0|(t=t+1|0)))break}if(c=v[r+52>>2])for(;;){Xt(f+24|0,v[v[r+60>>2]+(k<<2)>>2]),t=v[f+28>>2],n=v[f+24>>2];r:if(!(t>>>0>=(i=v[n+4>>2])>>>0))for(;;){if(e=v[f+32>>2],u=v[n+12>>2],e>>>0>=d[4+(u+(t<<4)|0)>>2]){n:{e:{for(;;){if((0|i)==(0|(t=t+1|0)))break e;if(v[4+(u+(t<<4)|0)>>2])break}n=t;break n}n=i}if(v[f+28>>2]=n,i=i>>>0<=t>>>0,e=0,t=n,i)break r}n=v[12+(u+(t<<4)|0)>>2],v[f+32>>2]=e+1,i=68,n=v[16+(n+m(e,20)|0)>>2],(Fu(0|Ta[v[v[n>>2]+8>>2]](n),21200)||(i=24,Fu(0|Ta[v[v[n>>2]+8>>2]](n),21296)))&&(a=v[n+i>>2]);n:if(a){i=a+20|0;e:{if(t=v[f+40>>2])for(;;){if(ei(t+4|0,i))break e;if(!(t=v[t+28>>2]))break}n=Ue(f+12|0,i),e=v[n+4>>2],t=(u=ee(8027))+e|0,v[n+4>>2]=t,o=v[5280],b=v[n+8>>2],t=0|Ta[v[v[o>>2]+16>>2]](o,b,t+1|0,8590,140),v[n+8>>2]=t,Ri(e+t|0,8027!=(0|b)?8027:t,u+1|0),Pe(n,i),v[f>>2]=v[f+20>>2],H(20831,17040,0|f),gi(n);break n}n=f+12|0;e:{f:{if(e=v[f+40>>2])for(;;){if(ei(e+4|0,i))break f;if(!(e=v[e+28>>2]))break}ht(n,0,0);break e}Ue(n,e+16|0)}te(a+8|0,n),gi(n)}if(t=v[f+28>>2],n=v[f+24>>2],!(t>>>0<(i=v[n+4>>2])>>>0))break}if((0|c)==(0|(k=k+1|0)))break}Af(f+36|0),V=f+48|0}function dr(r,n,e,f){var i,t,u,o,a,c=w(0),b=0,k=w(0),s=w(0),h=0,d=w(0),y=0,m=0,g=0,F=w(0),A=w(0),T=w(0),$=w(0),I=0,C=0;V=u=V-16|0,i=v[n+24>>2],v[i+24>>2]&&dr(r,i,e,f),(c=p[n+100>>2])!=w(0)?(s=(c=w(p[n+96>>2]/c))>w(1)?w(1):c,h=1,1!=(0|f)&&(h=v[i+112>>2])):(s=w(1),h=1!=(0|f)?f:0),f=r+56|0,b=p[i+40>>2]>s,k=p[i+52>>2],F=p[i+60>>2],A=p[i+48>>2],T=p[i+44>>2];r:if(l[i+36|0]){if((c=w(p[i+56>>2]-k))==w(0))break r;k=w(k+Er(p[i+72>>2],c))}else k=(c=w(k+p[i+72>>2]))<(d=p[i+56>>2])?c:d;a=b?f:0,d=w(p[i+92>>2]*p[n+104>>2]),$=w(w(w(1)-s)*d),o=v[i+16>>2],t=v[o+8>>2];r:if(3!=(0|h)){if(I=i+148|0,(C=v[i+152>>2])||(v[u+12>>2]=0,wn(I,t<<1,u+12|0)),v[i+108>>2]=0,t)for(;;){b=v[(m=g<<2)+v[o+16>>2]>>2],f=0,c=$;n:{e:{switch(3&v[v[i+128>>2]+m>>2]){case 0:if(f=h,!(s>2]+8>>2]](b),20988)&&(f=0,4&l[v[i+128>>2]+m|0]))break n;if(s>2]+8>>2]](b),21096))break e;break n;case 2:c=d;break e;case 1:break e}y=v[v[i+144>>2]+m>>2],c=w(w(1)-w(p[y+96>>2]/p[y+100>>2])),c=w(d*(c>2]=c+p[i+108>>2],Fu(0|Ta[v[v[b>>2]+8>>2]](b),21308))pr(b,e,k,c,f,I,g<<1,!C);else{y=1;e:if(!f)if(Fu(0|Ta[v[v[b>>2]+8>>2]](b),20988)){if(!(s>2]+m|0]))break e;y=0}else y=!(s>2]+8>>2]](b),21096);Ta[v[v[b>>2]+12>>2]](b,e,F,k,a,c,f,y)}}if((0|(g=g+1|0))==(0|t))break}}else{if(!t)break r;for(f=0;h=v[v[o+16>>2]+(f<<2)>>2],Ta[v[v[h>>2]+12>>2]](h,e,F,k,a,$,3,1),(0|t)!=(0|(f=f+1|0)););}return p[n+100>>2]>w(0)&&Br(r,i,k),v[r+60>>2]=0,p[i+64>>2]=k,p[i+80>>2]=p[i+72>>2],V=u+16|0,s}function pr(r,n,e,f,i,t,u,o){var a,c=w(0),b=0,k=w(0),s=0,l=w(0);if(o&&(v[v[t+12>>2]+(u<<2)>>2]=0),f!=w(1)){a=v[v[n+20>>2]+(v[r+20>>2]<<2)>>2];r:if(0|Ta[v[v[a>>2]+16>>2]](a)){if(s=v[r+36>>2],p[s>>2]>e){n:switch(0|i){case 0:return void(p[a+40>>2]=p[v[a+4>>2]+36>>2]);case 1:break n;default:break r}l=p[a+40>>2],e=p[v[a+4>>2]+36>>2]}else n=i?a+40|0:v[a+4>>2]+36|0,l=p[n>>2],n=s+(v[r+28>>2]<<2)|0,p[n-8>>2]<=e?e=w(p[v[a+4>>2]+36>>2]+p[n-4>>2]):(n=(s=(i=Se(r+24|0,e,2))<<2)+v[r+36>>2]|0,k=p[n-4>>2],c=e,e=p[n>>2],e=vn(r,(i>>1)-1|0,w(w(1)-w(w(c-e)/w(p[n-8>>2]-e)))),c=w(p[4+(v[r+36>>2]+s|0)>>2]-k),b=16384.499999999996-+w(c/w(360)),r=g(b)<2147483648?~~b:-2147483648,e=w(p[v[a+4>>2]+36>>2]+w(w(w(c-w(0|m(16384-r|0,360)))*e)+k)),b=16384.499999999996-+w(e/w(360)),r=g(b)<2147483648?~~b:-2147483648,e=w(e-w(0|m(16384-r|0,360))));e=w(e-l),b=+w(e/w(-360))+16384.499999999996,r=g(b)<2147483648?~~b:-2147483648,c=w(0),(k=w(e-w(0|m(16384-r|0,360))))!=w(0)?(e=k,o||(r=v[t+12>>2]+(u<<2)|0,c=p[r>>2],e=p[r+4>>2]),r=c>=w(0),n=k>w(0),!(w(g(e))<=w(90))|tu(e)==tu(k)||(w(g(c))>w(180)&&(c=w(w(tu(c)*w(360))+c)),r=n),e=w(w(k+c)-Er(c,w(360))),(0|r)!=(0|n)&&(e=w(w(tu(c)*w(360))+e)),r=v[t+12>>2],p[r+(u<<2)>>2]=e):(r=v[t+12>>2],e=p[r+(u<<2)>>2]),p[4+((u<<2)+r|0)>>2]=k,e=w(w(e*f)+l),b=+w(e/w(-360))+16384.499999999996,r=g(b)<2147483648?~~b:-2147483648,p[a+40>>2]=e-w(0|m(16384-r|0,360))}}else Ta[v[v[r>>2]+12>>2]](r,n,w(0),e,0,w(1),i,0)}function yr(r,n,e,f){var i,t=0,u=0,o=0,a=0,c=w(0),b=0,k=0,s=0;if(V=i=V+-64|0,v[i+60>>2]=0,v[i+52>>2]=0,v[i+56>>2]=0,v[i+48>>2]=8776,v[e+52>>2]=f,n=En(n,2901),(u=v[n+12>>2])&&(v[i+56>>2]=u,t=v[5280],k=i,s=0|Ta[v[v[t>>2]+16>>2]](t,0,u<<2,8590,101),v[k+60>>2]=s),v[i+12>>2]=0,wn(i+48|0,u,i+12|0),n=v[n+4>>2])for(t=0,o=v[i+60>>2];p[o+(t<<2)>>2]=p[n+24>>2],t=t+1|0,n=v[n>>2];);if((0|f)!=(0|u)){if(v[i+44>>2]=0,v[i+36>>2]=0,v[i+40>>2]=0,v[i+28>>2]=0,v[i+20>>2]=0,v[i+24>>2]=0,v[i+32>>2]=8776,v[i+16>>2]=10768,v[i+12>>2]=10752,f&&(v[i+24>>2]=m(f,3),n=v[5280],n=0|Ta[v[v[n>>2]+16>>2]](n,0,m(f,12),8590,101),v[i+40>>2]=m(f,9),v[i+28>>2]=n,n=v[5280],k=i,s=0|Ta[v[v[n>>2]+16>>2]](n,0,m(f,36),8590,101),v[k+44>>2]=s),n=i+32|0,f=i+16|0,u)for(t=0;;){if(c=p[v[i+60>>2]+(t<<2)>>2],o=w(g(c))>2]=o,Wn(f,i+8|0),(t=t+1|0)>>>0<(b=t+(o<<2)|0)>>>0)for(;c=p[(o=t<<2)+v[i+60>>2]>>2],a=w(g(c))>2]=a,Wn(f,a=i+8|0),p[i+8>>2]=p[4+(o+v[i+60>>2]|0)>>2]*p[r+24>>2],Gn(n,a),p[i+8>>2]=p[8+(o+v[i+60>>2]|0)>>2]*p[r+24>>2],Gn(n,a),Gn(n,12+(o+v[i+60>>2]|0)|0),b>>>0>(t=t+4|0)>>>0;);if(!(t>>>0>>0))break}v[e+40>>2]=0,Df(e+36|0,n),v[e+24>>2]=0,Vf(e+20|0,f),v[i+12>>2]=10752,To(n),Ou(f)}else{if(!(!f|p[r+24>>2]==w(1)))for(n=0,t=v[i+60>>2];p[(u=t+(n<<2)|0)>>2]=p[r+24>>2]*p[u>>2],(0|f)!=(0|(n=n+1|0)););v[e+40>>2]=0,Df(e+36|0,i+48|0)}To(i+48|0),V=i- -64|0}function mr(r){var n=0,e=0,f=0,t=0,u=0,o=0;if(!l[r+28|0]){if(i[r+28|0]=1,v[r+8>>2]){for(e=v[r+20>>2];;){t=v[r+16>>2]+(u<<4)|0,n=v[t+8>>2];r:{n:{e:{f:{i:switch(0|(f=v[t+4>>2])){case 5:break n;case 3:break e;case 2:break f;case 0:case 1:case 4:break i;default:break r}if((o=v[n+168>>2])?Ta[v[v[o>>2]+8>>2]](o,e,f,n,0):Ta[v[n+164>>2]](e,f,n,0),!(f=v[e+96>>2])){Ta[v[e+92>>2]](e,v[t+4>>2],n,0);break r}Ta[v[v[f>>2]+8>>2]](f,e,v[t+4>>2],n,0);break r}(f=v[n+168>>2])?Ta[v[v[f>>2]+8>>2]](f,e,2,n,0):Ta[v[n+164>>2]](e,2,n,0),(f=v[e+96>>2])?Ta[v[v[f>>2]+8>>2]](f,e,v[t+4>>2],n,0):Ta[v[e+92>>2]](e,v[t+4>>2],n,0)}(t=v[n+168>>2])?Ta[v[v[t>>2]+8>>2]](t,e,3,n,0):Ta[v[n+164>>2]](e,3,n,0),(t=v[e+96>>2])?Ta[v[v[t>>2]+8>>2]](t,e,3,n,0):Ta[v[e+92>>2]](e,3,n,0),v[n+16>>2]=0,v[n+20>>2]=0,v[n+24>>2]=0,v[n+28>>2]=0,(t=v[n+12>>2])&&(f=v[n+8>>2])&&Ta[0|t](f),v[n+168>>2]=0,v[n+164>>2]=9,v[n+8>>2]=0,v[n+12>>2]=0,v[n+152>>2]=0,v[n+136>>2]=0,v[n+120>>2]=0,pe(v[r+24>>2],n);break r}(f=v[n+168>>2])?Ta[v[v[f>>2]+8>>2]](f,e,5,n,v[t+12>>2]):Ta[v[n+164>>2]](e,5,n,v[t+12>>2]),(f=v[e+96>>2])?Ta[v[v[f>>2]+8>>2]](f,e,v[t+4>>2],n,v[t+12>>2]):Ta[v[e+92>>2]](e,v[t+4>>2],n,v[t+12>>2])}if(!((n=v[r+8>>2])>>>0>(u=u+1|0)>>>0))break}if(n)for(e=0;n=v[r+16>>2]+(~e+n<<4)|0,Ta[v[v[n>>2]>>2]](n),(n=v[r+8>>2])>>>0>(e=e+1|0)>>>0;);}i[r+28|0]=0,v[r+8>>2]=0}}function wr(r,n){var e,f=0,t=0,u=0,o=0,a=0;V=e=V-16|0;r:if(34!=l[0|n])v[5290]=n,u=0;else{for(f=n=n+1|0;!(!(o=l[0|f])|34==(0|o));)t=t+1|0,f=(92==(0|o)?2:1)+f|0;if(o=v[5280],u=0,!(o=0|Ta[v[v[o>>2]+8>>2]](o,t+1|0,8590,265)))break r;for(f=o;;){n:{e:if(92==(0|(u=l[0|n]))){u=n+1|0;f:{i:{t:{u:{o:{a:{switch((a=i[n+1|0])-110|0){case 1:case 2:case 3:case 5:break i;case 7:break t;case 6:break u;case 4:break o;case 0:break a}c:switch(a-98|0){case 0:i[0|f]=8;break f;case 4:break c;default:break i}i[0|f]=12;break f}i[0|f]=10;break f}i[0|f]=13;break f}i[0|f]=9;break f}if(Jn(n+2|0,e+12|0),u=n+5|0,!(t=v[e+12>>2]))break e;if(56320==(0|(a=-1024&t)))break e;t:{u:{o:{if(55296!=(0|a)){if(n=1,t>>>0<128)break t;if(n=2,t>>>0<2048)break u;if(n=3,t>>>0<65536)break o}else{if(92!=l[n+6|0]|117!=l[n+7|0])break e;if(Jn(n+8|0,e+8|0),u=n+11|0,(n=v[e+8>>2])-57344>>>0<4294966272)break e;t=65536+(1023&n|t<<10&1047552)|0,v[e+12>>2]=t}i[f+3|0]=63&t|128,t=v[e+12>>2]>>>6|0,v[e+12>>2]=t,n=4}i[f+2|0]=63&t|128,t=v[e+12>>2]>>>6|0,v[e+12>>2]=t}i[f+1|0]=63&t|128,t=v[e+12>>2]>>>6|0,v[e+12>>2]=t}i[0|f]=l[n+9724|0]|t,f=n+f|0;break e}i[0|f]=a}f=f+1|0}else{if(!u|34==(0|u))break n;i[0|f]=u,f=f+1|0,u=n}n=u+1|0;continue}break}i[0|f]=0,u=l[0|n],v[r+8>>2]=4,v[r+16>>2]=o,u=(34==(0|u))+n|0}return V=e+16|0,u}function gr(r,n,e,f){var t,u=0,o=0,a=0,c=0,b=0,k=0,s=0,h=0,d=0,p=0,y=0,m=0,w=0,g=0,F=0;V=t=V-16|0;r:{n:{e:{if((0|e)<=36){if(u=l[0|r])break e;o=r;break n}v[5446]=28,f=0;break r}o=r;e:{for(;;){if(!co(u<<24>>24))break e;if(u=l[o+1|0],o=o+1|0,!u)break}break n}e:switch((u&=255)-43|0){case 0:case 2:break e;default:break n}s=45==(0|u)?-1:0,o=o+1|0}n:if(16!=(16|e)|48!=l[0|o])d=e||10;else{if(w=1,88==(223&l[o+1|0])){o=o+2|0,d=16;break n}o=o+1|0,d=e||8}for(e=0;u=-48,(((a=i[0|o])-48&255)>>>0<10||(u=-87,(a-97&255)>>>0<26||(u=-55,!((a-65&255)>>>0>25))))&&!((0|(a=u+a|0))>=(0|d));)c=je(h,0,0,0),b=Z,F=je(k,0,d,0),u=Z,p=je(0,0,k,0),y=Z,c=c+(y=(u=u+p|0)>>>0

>>0?y+1|0:y)|0,p=je(h,0,d,0)+u|0,m=Z,m=(u=u>>>0>p>>>0?m+1|0:m)+c|0,v[t+8>>2]=m,b=c>>>0>>0?b+1|0:b,v[t+12>>2]=u>>>0>m>>>0?b+1|0:b,v[t>>2]=F,v[t+4>>2]=p,u=1,v[t+8>>2]|v[t+12>>2]||(b=je(k,h,d,0),-1==(0|(c=Z))&~a>>>0>>0||(h=(k=a+b|0)>>>0>>0?c+1|0:c,w=1,u=e)),o=o+1|0,e=u;n&&(v[n>>2]=w?o:r);n:{if(e)v[5446]=68,s=(r=1&f)?0:s,k=f,h=0;else{if(!h&f>>>0>k>>>0)break n;r=1&f}if(!(r|s)){v[5446]=68,f=(r=f)-1|0,g=0-!r|0;break r}if(!(!h&f>>>0>=k>>>0)){v[5446]=68;break r}}f=(r=s^k)-s|0,g=((n=s>>31)^h)-((r>>>0>>0)+n|0)|0}return V=t+16|0,Z=g,f}function Fr(r,n){var e=0,f=0,i=0,c=0,s=0,l=w(0),h=0,d=0;b(n),c=mu(i=t(2));r:{n:{e:{b(r);f:{if((e=t(2))-2139095040>>>0>=2164260864){if(c)break f;break n}if(!c)break e}if(l=w(1),1065353216==(0|e))break r;if(!(s=i<<1))break r;if(!(s>>>0<4278190081&(e<<=1)>>>0<=4278190080))return w(r+n);if(2130706432==(0|e))break r;return w(e>>>0>2130706431^(0|i)>=0?0:n*n)}if(mu(e)){if(l=w(r*r),(0|e)<0&&(l=1==(0|Zf(i))?w(-l):l),(0|i)>=0)break r;return Ft(w(w(1)/l))}if((0|e)<0){if(!(i=Zf(i)))return r=w(r-r),w(r/r);s=(1==(0|i))<<16,e&=2147483647}e>>>0>8388607||(e=(2147483647&(b(w(r*w(8388608))),t(2)))-192937984|0)}if(c=(i=e-1060306944|0)>>>15&240,u(2,e-(-8388608&i)|0),a(+(f=((h=(f=+k()*y[c+20480>>3]-1)*f)*h*(.288457581109214*f-.36092606229713164)+((.480898481472577*f-.7213474675006291)*h+(1.4426950408774342*f+(y[c+20488>>3]+ +(i>>23)))))*+n)),e=0|t(1),t(0),!(1079967744==(0|(e&=2147450880))|e>>>0<1079967744)){if(f>127.99999995700433)return Eu(s,w(15845632502852868e13));if(f<=-150)return Eu(s,w(2524354896707238e-44))}f-=(d=(h=y[2179])+f)-h,f=(y[2180]*f+y[2181])*f*f+y[2182]*f+1,a(+d),t(1),e=s+(c=0|t(0))|0,i=c=v[(s=17176+((31&c)<<3)|0)>>2],e=v[s+4>>2]+(e<<15)|0,u(0,0|i),u(1,0|(i>>>0>>0?e+1:e)),l=w(f*+o())}return l}function Ar(r,n,e,f,i,t,u){r|=0,n=w(n),e=w(e),f|=0,i|=0,t|=0,u=w(u);var o=w(0),a=w(0),c=0,b=w(0),k=w(0),s=w(0),h=w(0),d=w(0),y=w(0);h=p[r+68>>2],s=w(-p[r+80>>2]),c=v[r+12>>2],k=p[c+108>>2],o=p[c+104>>2],b=p[c+96>>2],a=p[c+92>>2],l[r+88|0]||Tr(r),h=w(s-h);r:{switch(v[v[r+4>>2]+56>>2]-1|0){case 0:c=r+112|0,o=e,a=w(n-p[r+100>>2]);break r;case 1:b=w(w(g(w(w(a*k)-w(o*b))))/w(w(a*a)+w(o*o))),k=w(a*b),b=w(b*w(-o)),h=w(w(Or(o,a)*w(57.2957763671875))+h)}s=w(e-p[c+112>>2]),d=w(n-p[c+100>>2]),y=w(w(s*a)-w(o*d)),a=w(w(a*k)-w(o*b)),o=w(y/a),c=r- -64|0,a=w(w(w(w(d*k)-w(b*s))/a)-p[r+60>>2])}s=w(o-p[c>>2]),o=w(w(Or(s,a)*w(57.2957763671875))+h),(o=(k=p[r+72>>2])w(180)?o=w(o+w(-360)):o>2];r:if(f|i){c=f,n=(f=v[v[r+4>>2]+56>>2]-3>>>0<2)?w(n-p[r+100>>2]):a,a=w(n*n),n=f?w(e-p[r+112>>2]):s;n:{if(!((e=w(T(w(a+w(n*n)))))<(n=w(k*p[v[r+4>>2]+24>>2]))&&c)){if(!i|!(n>w(9999999747378752e-20)))break r;if(nw(9999999747378752e-20)))break r}n=w(w(w(w(e/n)+w(-1))*u)+w(1)),k=w(k*n),b=w(b*(t?n:w(1)))}br(r,p[r+60>>2],p[r+64>>2],w(w(o*u)+p[r+68>>2]),k,b,p[r+80>>2],p[r+84>>2])}function Tr(r){var n,e=w(0),f=w(0),t=w(0),u=w(0),o=w(0),a=w(0),c=w(0),b=w(0),k=w(0),s=0,l=w(0);return i[r+88|0]=1,(n=v[r+12>>2])?(e=p[n+112>>2],o=p[n+100>>2],f=p[n+108>>2],u=p[n+92>>2],c=p[n+104>>2],t=p[n+96>>2],v[r+80>>2]=0,a=w(p[r+112>>2]-e),e=w(w(1)/w(w(u*f)-w(c*t))),o=w(p[r+100>>2]-o),p[r+64>>2]=w(w(u*a)*e)-w(e*w(c*o)),p[r+60>>2]=w(w(f*o)*e)-w(e*w(t*a)),f=w(f*e),o=p[r+92>>2],a=w(-e),k=w(t*a),b=p[r+104>>2],t=w(w(f*o)+w(k*b)),e=w(u*e),a=w(c*a),u=w(w(e*b)+w(a*o)),c=w(T(w(w(t*t)+w(u*u)))),p[r+72>>2]=c,o=p[r+108>>2],b=a,a=p[r+96>>2],e=w(w(e*o)+w(b*a)),f=w(w(f*a)+w(k*o)),c>w(9999999747378752e-20)?(o=w(w(t*e)-w(u*f)),p[r+76>>2]=o/c,s=r,l=w(Or(w(w(t*f)+w(u*e)),o)*w(57.2957763671875)),p[s+84>>2]=l,s=r,l=w(Or(u,t)*w(57.2957763671875)),void(p[s+68>>2]=l)):(v[r+84>>2]=0,v[r+72>>2]=0,p[r+76>>2]=T(w(w(f*f)+w(e*e))),s=r,l=w(w(Or(e,f)*w(-57.2957763671875))+w(90)),void(p[s+68>>2]=l))):(p[r+60>>2]=p[r+100>>2],p[r+64>>2]=p[r+112>>2],e=p[r+104>>2],f=p[r+92>>2],v[r+80>>2]=0,p[r+72>>2]=T(w(w(f*f)+w(e*e))),s=r,l=w(Or(e,f)*w(57.2957763671875)),p[s+68>>2]=l,t=p[r+96>>2],u=p[r+108>>2],p[r+76>>2]=T(w(w(t*t)+w(u*u))),s=r,l=w(Or(w(w(f*t)+w(e*u)),w(w(f*u)-w(e*t)))*w(57.2957763671875)),void(p[s+84>>2]=l))}function $r(r,n,e){var f,t,u,o=w(0),a=0,c=0;if(V=t=V-16|0,f=Ho(r),v[f+8>>2]=9260,v[f+4>>2]=n,v[f>>2]=9892,r=0,v[f+20>>2]=0,v[f+12>>2]=0,v[f+16>>2]=0,a=f,c=ku(e,Qo(v[n+40>>2])),v[a+24>>2]=c,p[f+28>>2]=p[n+60>>2],p[f+32>>2]=p[n+64>>2],p[f+36>>2]=p[n+68>>2],o=p[n+72>>2],v[f+124>>2]=8776,v[f+120>>2]=0,v[f+112>>2]=0,v[f+116>>2]=0,v[f+108>>2]=8776,v[f+104>>2]=0,v[f+96>>2]=0,v[f+100>>2]=0,v[f+92>>2]=8776,v[f+88>>2]=0,v[f+80>>2]=0,v[f+84>>2]=0,v[f+76>>2]=8776,v[f+72>>2]=0,v[(n=f- -64|0)>>2]=0,v[n+4>>2]=0,v[f+60>>2]=8776,v[f+56>>2]=0,v[f+48>>2]=0,v[f+52>>2]=0,v[f+44>>2]=8776,p[f+40>>2]=o,i[f+133|0]=0,i[f+134|0]=0,i[f+135|0]=0,i[f+136|0]=0,i[f+137|0]=0,i[f+138|0]=0,i[f+139|0]=0,i[f+140|0]=0,v[f+128>>2]=0,v[f+132>>2]=0,ya(u=f+8|0,v[v[f+4>>2]+28>>2]),n=v[f+4>>2],v[n+28>>2])for(;a=t,c=wu(e,Qo(v[v[n+36>>2]+(r<<2)>>2])),v[a+12>>2]=c,Un(u,t+12|0),r=r+1|0,n=v[f+4>>2],r>>>0>2];);return v[t+8>>2]=0,wn(f+124|0,10,t+8|0),V=t+16|0,f}function Ir(r,n){r|=0,n=w(n);var e,f=0,i=0,t=w(0),u=w(0),o=0,a=w(0),c=0,b=w(0);if(e=v[r+44>>2])for(n=w(p[r+100>>2]*n);;){c=v[r+52>>2]+(o<<2)|0;r:if(f=v[c>>2]){if(p[f+60>>2]=p[f+64>>2],u=p[f+80>>2],p[f+76>>2]=u,a=p[f+88>>2],t=w(n*a),(b=p[f+68>>2])>w(0)){if(t=w(b-t),p[f+68>>2]=t,t>w(0))break r;v[f+68>>2]=0,t=w(-t)}n:{if(i=v[f+20>>2]){if(!((u=w(u-p[i+68>>2]))>=w(0)))break n;if(v[i+68>>2]=0,p[i+72>>2]=(a!=w(0)?w(w(n+w(u/a))*p[i+88>>2]):w(0))+p[i+72>>2],p[f+72>>2]=t+p[f+72>>2],Tn(r,o,i,1),!(f=v[i+24>>2]))break r;for(;p[i+96>>2]=n+p[i+96>>2],i=f,f=v[f+24>>2];);break r}if(!(v[f+24>>2]|!(u>=p[f+84>>2]))){v[c>>2]=0,Bi(v[r+72>>2],f),If(r,f);break r}}if(v[f+24>>2]&&mn(r,f,n)&&(i=v[f+24>>2],v[f+24>>2]=0,i))for(v[i+28>>2]=0;Bi(v[r+72>>2],i),i=v[i+24>>2];);p[f+72>>2]=t+p[f+72>>2]}if((0|e)==(0|(o=o+1|0)))break}mr(v[r+72>>2])}function Cr(r,n,e,f){var i,t,o=0,a=0,c=0,b=0,s=w(0),h=0,d=0,y=0,g=0,F=0;if(V=i=V-16|0,s=p[r+36>>2],r=f<<1,v[e+52>>2]=r,o=v[n+4>>2],v[n+4>>2]=o+1,t=e+36|0,l[0|o]){if(ya(t,m(f,18)),ya(o=e+20|0,m(f,6)),!((0|f)<=0))for(;;){if(h=jn(n,1),v[i+12>>2]=h,Wn(o,i+12|0),d=0,(0|h)>0)for(;g=i,F=jn(n,1),v[g+12>>2]=F,Wn(o,e=i+12|0),r=v[n+4>>2],v[n+4>>2]=r+1,a=l[0|r],v[n+4>>2]=r+2,c=l[r+1|0],v[n+4>>2]=r+3,b=l[r+2|0],v[n+4>>2]=r+4,p[i+12>>2]=s*(u(2,l[r+3|0]|(b|c<<8|a<<16)<<8),k()),Gn(t,e),r=v[n+4>>2],v[n+4>>2]=r+1,a=l[0|r],v[n+4>>2]=r+2,c=l[r+1|0],v[n+4>>2]=r+3,b=l[r+2|0],v[n+4>>2]=r+4,p[i+12>>2]=s*(u(2,l[r+3|0]|(b|c<<8|a<<16)<<8),k()),Gn(t,e),r=v[n+4>>2],v[n+4>>2]=r+1,a=l[0|r],v[n+4>>2]=r+2,c=l[r+1|0],v[n+4>>2]=r+3,b=l[r+2|0],v[n+4>>2]=r+4,v[i+12>>2]=l[r+3|0]|(b|c<<8|a<<16)<<8,Gn(t,e),(0|(d=d+1|0))!=(0|h););if((0|(y=y+1|0))==(0|f))break}}else Vr(n,r,s,t);V=i+16|0}function Pr(r){return v[r+208>>2]=8776,v[r+204>>2]=0,v[r+196>>2]=0,v[r+200>>2]=0,v[r+192>>2]=8776,v[r+188>>2]=0,v[r+180>>2]=0,v[r+184>>2]=0,v[r+176>>2]=9852,v[r+172>>2]=0,v[r+164>>2]=0,v[r+168>>2]=0,v[r+160>>2]=8776,v[r+156>>2]=0,v[r+148>>2]=0,v[r+152>>2]=0,v[r+144>>2]=8776,v[r+140>>2]=0,v[r+132>>2]=0,v[r+136>>2]=0,v[r+128>>2]=8776,v[r+124>>2]=0,v[r+116>>2]=0,v[r+120>>2]=0,v[r+112>>2]=10456,v[r+108>>2]=10504,v[r+104>>2]=0,v[r+96>>2]=0,v[r+100>>2]=0,v[r+92>>2]=10440,v[r+88>>2]=10488,v[r+84>>2]=0,v[r+76>>2]=0,v[r+80>>2]=0,v[r+72>>2]=8744,v[r+68>>2]=0,v[r+60>>2]=0,v[r+64>>2]=0,v[r+56>>2]=10472,v[r+52>>2]=0,v[r+44>>2]=0,v[r+48>>2]=0,v[r+40>>2]=8744,v[r+36>>2]=0,v[r+28>>2]=0,v[r+32>>2]=0,v[r+24>>2]=10456,v[r+20>>2]=0,v[r+12>>2]=0,v[r+16>>2]=0,v[r+8>>2]=10440,v[r+4>>2]=11080,v[r>>2]=10424,v[r+220>>2]=0,v[r+224>>2]=0,v[r+212>>2]=0,v[r+216>>2]=0,ya(r+144|0,128),ya(r+160|0,128),ma(r+176|0,128),ya(r+192|0,128),r}function Er(r,n){var e=0,f=0,i=0,o=0,a=0,c=0;if(b(n),!((e=(o=t(2))<<1)&&(b(r),255!=(0|(i=(c=t(2))>>>23&255))&&(2147483647&(b(n),t(2)))>>>0<2139095041)))return r=w(r*n),w(r/r);if((f=c<<1)>>>0<=e>>>0)return(0|f)==(0|e)?w(r*w(0)):r;if(a=o>>>23&255,i)f=8388607&c|8388608;else{if(i=0,(0|(f=c<<9))>=0)for(;i=i-1|0,(0|(f<<=1))>=0;);f=c<<1-i}if(a)e=8388607&o|8388608;else{if(a=0,(0|(e=o<<9))>=0)for(;a=a-1|0,(0|(e<<=1))>=0;);e=o<<1-a}if(o=e,(0|i)>(0|a)){for(;;){if(!((0|(e=f-o|0))<0||(f=e)))return w(r*w(0));if(f<<=1,!((0|a)<(0|(i=i-1|0))))break}i=a}if(!((0|(e=f-o|0))<0||(f=e)))return w(r*w(0));if(f>>>0>8388607)e=f;else for(;i=i-1|0,o=f>>>0<4194304,f=e=f<<1,o;);return u(2,-2147483648&c|((0|i)>0?e-8388608|i<<23:e>>>1-i)),k()}function Or(r,n){var e,f,i=0,o=0,a=w(0);if(!((2147483647&(b(r),t(2)))>>>0<2139095041&(2147483647&(b(n),t(2)))>>>0<=2139095040))return w(r+n);if(b(n),1065353216==(0|(i=t(2))))return Rr(r);f=i>>>30&2,b(r),e=f|(o=t(2))>>>31;r:{n:{e:{if(!(o&=2147483647)){f:switch(e-2|0){case 0:return w(3.1415927410125732);case 1:break f;default:break e}return w(-3.1415927410125732)}if(2139095040!=(0|(i&=2147483647))){if(!i|!(2139095040!=(0|o)&o>>>0<=i+218103808>>>0))break r;switch(f&&(a=w(0),i>>>0>o+218103808>>>0)||(a=Rr(w(g(w(r/n))))),r=a,0|e){case 1:return w(-r);case 2:return w(w(3.1415927410125732)-w(r+w(8.742277657347586e-8)));case 0:break e}return w(w(r+w(8.742277657347586e-8))+w(-3.1415927410125732))}if(2139095040==(0|o))break n;r=p[17572+(e<<2)>>2]}return r}return p[17556+(e<<2)>>2]}return u(2,-2147483648&(b(r),t(2))|1070141403),k()}function Rr(r){var n,e,f=0,i=w(0),o=w(0),a=w(0);if(b(r),(n=2147483647&(e=t(2)))>>>0>=1283457024)return(2147483647&(b(r),t(2)))>>>0>2139095040?r:(u(2,-2147483648&(b(r),t(2))|1070141402),k());r:{n:{if(n>>>0<=1054867455){if(f=-1,n>>>0>=964689920)break n;break r}if(r=w(g(r)),n>>>0<=1066926079){if(n>>>0<=1060110335){r=w(w(w(r+r)+w(-1))/w(r+w(2))),f=0;break n}r=w(w(r+w(-1))/w(r+w(1))),f=1}else n>>>0<=1075576831?(r=w(w(r+w(-1.5))/w(w(r*w(1.5))+w(1))),f=2):(r=w(w(-1)/r),f=3)}if(o=w(r*r),i=w(o*o),a=w(i*w(w(i*w(-.106480173766613))+w(-.19999158382415771))),i=w(o*w(w(i*w(w(i*w(.06168760731816292))+w(.14253635704517365)))+w(.333333283662796))),n>>>0<=1054867455)return w(r-w(r*w(a+i)));r=w(p[17600+(f<<=2)>>2]-w(w(w(r*w(a+i))-p[f+17616>>2])-r)),r=(0|e)<0?w(-r):r}return r}function Sr(r,n){var e,f,i=0,t=0,u=0,o=0,a=w(0);if(V=f=V-16|0,e=df(r,n),v[e+40>>2]=9464,v[e+24>>2]=8776,v[e+20>>2]=0,v[e>>2]=9436,v[e+44>>2]=0,v[e+48>>2]=0,v[e+36>>2]=0,v[e+28>>2]=0,v[e+32>>2]=0,v[e+52>>2]=0,v[e+56>>2]=0,ya(r=e+24|0,n),da(e+40|0,n),v[f>>2]=0,wn(r,n,f),(0|n)>0)for(r=0;v[f+12>>2]=0,v[f+4>>2]=0,v[f+8>>2]=0,v[f>>2]=8776,V=u=V-16|0,(0|(i=v[e+44>>2]))!=v[e+48>>2]?(v[e+44>>2]=i+1,Bn(v[e+52>>2]+(i<<4)|0,f)):(o=Bn(u,f),a=w(w(d[e+44>>2])*w(1.75)),t=(i=w(g(a))>>0<=8?8:i,v[e+48>>2]=t,i=v[5280],t=0|Ta[v[v[i>>2]+16>>2]](i,v[e+52>>2],t<<4,8590,113),v[e+52>>2]=t,i=v[e+44>>2],v[e+44>>2]=i+1,Bn(t+(i<<4)|0,o),To(o)),V=u+16|0,To(f),(0|n)!=(0|(r=r+1|0)););return V=f+16|0,e}function Wr(r){var n,e,f=w(0),i=0,u=0;V=n=V-16|0,b(r);r:if((e=2147483647&(i=t(2)))>>>0<=1061752794){if(f=w(1),e>>>0<964689920)break r;f=ri(+r)}else if(e>>>0<=1081824209){if(e>>>0>=1075235812){f=w(-ri(+r+((0|i)<0?3.141592653589793:-3.141592653589793)));break r}if(u=+r,(0|i)<0){f=zf(u+1.5707963267948966);break r}f=zf(1.5707963267948966-u)}else if(e>>>0<=1088565717){if(e>>>0>=1085271520){f=ri(+r+((0|i)<0?6.283185307179586:-6.283185307179586));break r}if((0|i)<0){f=zf(-4.71238898038469-+r);break r}f=zf(+r-4.71238898038469)}else if(f=w(r-r),!(e>>>0>=2139095040)){switch(3&fr(r,n+8|0)){case 0:f=ri(y[n+8>>3]);break r;case 1:f=zf(-y[n+8>>3]);break r;case 2:f=w(-ri(y[n+8>>3]));break r}f=zf(y[n+8>>3])}return V=n+16|0,f}function Gr(r){var n=0,e=0,f=0,t=0,u=0;if(n=v[12+(r|=0)>>2])for(;De(v[v[r+20>>2]+(e<<2)>>2]),(0|n)!=(0|(e=e+1|0)););if(t=v[r+60>>2])for(u=v[r+68>>2],e=0;n=v[u+(e<<2)>>2],f=v[n+4>>2],v[n+24>>2]=v[f+44>>2],i[n+28|0]=l[f+48|0],i[n+29|0]=l[f+49|0],p[n+32>>2]=p[f+52>>2],p[n+36>>2]=p[f+56>>2],(0|t)!=(0|(e=e+1|0)););if(t=v[r+76>>2])for(u=v[r+84>>2],e=0;n=v[u+(e<<2)>>2],f=v[n+4>>2],p[n+28>>2]=p[f+44>>2],p[n+32>>2]=p[f+48>>2],p[n+36>>2]=p[f+52>>2],p[n+40>>2]=p[f+56>>2],(0|t)!=(0|(e=e+1|0)););if(f=v[r+92>>2])for(t=v[r+100>>2],e=0;r=v[t+(e<<2)>>2],n=v[r+4>>2],p[r+28>>2]=p[n+60>>2],p[r+32>>2]=p[n+64>>2],p[r+36>>2]=p[n+68>>2],p[r+40>>2]=p[n+72>>2],(0|f)!=(0|(e=e+1|0)););}function Ur(r){var n,e,f=0,i=0;V=n=V-16|0,b(r);r:if((e=2147483647&(i=t(2)))>>>0<=1061752794){if(e>>>0<964689920)break r;r=zf(+r)}else if(e>>>0<=1081824209){if(f=+r,e>>>0<=1075235811){if((0|i)<0){r=w(-ri(f+1.5707963267948966));break r}r=ri(f+-1.5707963267948966);break r}r=zf(-(((0|i)>=0?-3.141592653589793:3.141592653589793)+f))}else if(e>>>0<=1088565717){if(e>>>0<=1085271519){if(f=+r,(0|i)<0){r=ri(f+4.71238898038469);break r}r=w(-ri(f+-4.71238898038469));break r}r=zf(+r+((0|i)<0?6.283185307179586:-6.283185307179586))}else if(e>>>0>=2139095040)r=w(r-r);else{switch(3&fr(r,n+8|0)){case 0:r=zf(y[n+8>>3]);break r;case 1:r=ri(y[n+8>>3]);break r;case 2:r=zf(-y[n+8>>3]);break r}r=w(-ri(y[n+8>>3]))}return V=n+16|0,r}function jr(r,n){n|=0;var e=0,f=0,i=0,t=0,u=0,o=0,a=0;if((0|(t=v[136+(r|=0)>>2]))!=(0|n)){r:if(n)if(t){if(!(e=v[t+24>>2]))break r;for(a=n+16|0;;){if(u=v[t+32>>2],d[4+(u+(f<<4)|0)>>2]<=o>>>0){n:{e:{for(;;){if((0|(f=f+1|0))==(0|e))break e;if(v[4+(u+(f<<4)|0)>>2])break}i=f;break n}i=e}if(e=e>>>0<=f>>>0,o=0,f=i,e)break r}if(i=v[12+(u+(f<<4)|0)>>2]+m(o,20)|0,e=v[i>>2],u=v[v[r+36>>2]+(e<<2)>>2],v[u+60>>2]==v[i+16>>2]&&(i=Xn(a,e,i+4|0))&&hi(u,i),o=o+1|0,!(f>>>0<(e=v[t+24>>2])>>>0))break}}else if(i=v[r+28>>2])for(;f=v[v[r+36>>2]+(e<<2)>>2],t=No(v[f+4>>2]),v[t+4>>2]&&(t=Pt(n,e,t))&&hi(f,t),(0|i)!=(0|(e=e+1|0)););v[r+136>>2]=n,nr(r)}}function Hr(r,n){var e,f,i=0,t=0,u=0,o=0,a=w(0);if(V=f=V-16|0,e=jo(r),v[e+20>>2]=9508,v[e+4>>2]=8776,v[e>>2]=9480,v[e+32>>2]=0,v[e+24>>2]=0,v[e+28>>2]=0,v[e+16>>2]=0,v[e+8>>2]=0,v[e+12>>2]=0,ya(r=e+4|0,n),da(e+20|0,n),v[f>>2]=0,wn(r,n,f),(0|n)>0)for(r=0;v[f+12>>2]=0,v[f+4>>2]=0,v[f+8>>2]=0,v[f>>2]=8744,V=u=V-16|0,(0|(i=v[e+24>>2]))!=v[e+28>>2]?(v[e+24>>2]=i+1,Nn(v[e+32>>2]+(i<<4)|0,f)):(o=Nn(u,f),a=w(w(d[e+24>>2])*w(1.75)),t=(i=w(g(a))>>0<=8?8:i,v[e+28>>2]=t,i=v[5280],t=0|Ta[v[v[i>>2]+16>>2]](i,v[e+32>>2],t<<4,8590,113),v[e+32>>2]=t,i=v[e+24>>2],v[e+24>>2]=i+1,Nn(t+(i<<4)|0,o),oo(o)),V=u+16|0,oo(f),(0|n)!=(0|(r=r+1|0)););return V=f+16|0,e}function Lr(r,n,e){var f,i=0,t=0,o=0,a=0,c=0,b=0,s=0,h=0,d=0,p=0,y=0,m=0,w=0,g=0,F=0;switch(f=v[r+4>>2],v[r+4>>2]=f+1,l[0|f]-1|0){case 0:return void yt(e,n);case 1:v[r+4>>2]=f+2,i=l[f+1|0],v[r+4>>2]=f+3,t=l[f+2|0],v[r+4>>2]=f+4,o=l[f+3|0],v[r+4>>2]=f+5,a=l[f+4|0],v[r+4>>2]=f+6,c=l[f+5|0],v[r+4>>2]=f+7,b=l[f+6|0],v[r+4>>2]=f+8,s=l[f+7|0],v[r+4>>2]=f+9,h=l[f+8|0],v[r+4>>2]=f+10,d=l[f+9|0],v[r+4>>2]=f+11,p=l[f+10|0],v[r+4>>2]=f+12,y=l[f+11|0],v[r+4>>2]=f+13,m=l[f+12|0],v[r+4>>2]=f+14,w=l[f+13|0],v[r+4>>2]=f+15,g=l[f+14|0],v[r+4>>2]=f+16,F=l[f+15|0],v[r+4>>2]=f+17,xr(e,n,(u(2,(t<<8|i<<16|o)<<8|a),k()),(u(2,(b<<8|c<<16|s)<<8|h),k()),(u(2,(p<<8|d<<16|y)<<8|m),k()),(u(2,l[f+16|0]|(g<<8|w<<16|F)<<8),k()))}}function Mr(r){return v[r>>2]=10520,Tt(r+4|0),v[r+52>>2]=0,v[r+56>>2]=0,v[r+48>>2]=10552,v[r+44>>2]=0,v[r+36>>2]=0,v[r+40>>2]=0,v[r+32>>2]=10536,v[r+28>>2]=0,v[r+20>>2]=0,v[r+24>>2]=0,v[r+16>>2]=9676,v[r+60>>2]=0,v[r+64>>2]=0,v[r+132>>2]=10632,v[r+128>>2]=0,v[r+120>>2]=0,v[r+124>>2]=0,v[r+116>>2]=10616,v[r+112>>2]=0,v[r+104>>2]=0,v[r+108>>2]=0,v[r+100>>2]=10600,v[r+96>>2]=0,v[r+88>>2]=0,v[r+92>>2]=0,v[r+84>>2]=10584,v[r+80>>2]=0,v[r+72>>2]=0,v[r+76>>2]=0,v[r+68>>2]=10568,v[r+160>>2]=0,v[r+152>>2]=0,v[r+156>>2]=0,v[r+144>>2]=0,v[r+148>>2]=0,v[r+136>>2]=0,v[r+140>>2]=0,Tt(r+164|0),Tt(r+176|0),v[r+192>>2]=0,v[r+196>>2]=0,v[r+188>>2]=10648,v[r+200>>2]=0,v[r+204>>2]=0,Tt(r+208|0),Tt(r+220|0),r}function _r(r,n){var e;return V=e=V-16|0,r=wt(r,n),v[r+52>>2]=0,v[r+56>>2]=0,v[r+48>>2]=1065353216,v[r+40>>2]=0,v[r+44>>2]=1065353216,v[r+32>>2]=0,v[r+36>>2]=0,v[r+20>>2]=10116,v[r>>2]=10092,v[r+24>>2]=0,v[r+28>>2]=0,v[r+100>>2]=8776,v[r+84>>2]=8776,v[r+60>>2]=0,v[r+64>>2]=0,v[r+68>>2]=0,v[r+72>>2]=0,v[r+76>>2]=0,v[r+80>>2]=0,v[r+112>>2]=0,v[r+104>>2]=0,v[r+108>>2]=0,v[r+96>>2]=0,v[r+88>>2]=0,v[r+92>>2]=0,Tt(r+116|0),v[r+136>>2]=0,v[r+140>>2]=0,v[r+128>>2]=0,v[r+132>>2]=0,v[r+156>>2]=1065353216,v[r+160>>2]=1065353216,v[r+148>>2]=1065353216,v[r+152>>2]=1065353216,v[r+144>>2]=9372,vf(r+144|0),v[e+12>>2]=0,wn(r+84|0,8,e+12|0),v[e+8>>2]=0,wn(r+100|0,8,e+8|0),V=e+16|0,r}function zr(r,n){return r=Te(r,n),v[r+76>>2]=0,v[r+80>>2]=0,v[r+64>>2]=9836,v[r>>2]=9812,v[r+68>>2]=0,v[r+72>>2]=0,v[r+152>>2]=9852,v[r+136>>2]=9852,v[r+120>>2]=8776,v[r+104>>2]=8776,v[r+84>>2]=0,v[r+88>>2]=0,v[r+92>>2]=0,v[r+96>>2]=0,v[r+100>>2]=0,v[r+164>>2]=0,v[r+156>>2]=0,v[r+160>>2]=0,v[r+148>>2]=0,v[r+140>>2]=0,v[r+144>>2]=0,v[r+132>>2]=0,v[r+124>>2]=0,v[r+128>>2]=0,v[r+116>>2]=0,v[r+108>>2]=0,v[r+112>>2]=0,Tt(r+168|0),v[r+196>>2]=0,v[r+200>>2]=0,v[r+188>>2]=0,v[r+192>>2]=0,v[r+180>>2]=0,v[r+184>>2]=0,v[r+216>>2]=1065353216,v[r+220>>2]=1065353216,v[r+208>>2]=1065353216,v[r+212>>2]=1065353216,v[r+204>>2]=9372,vf(r+204|0),v[r+232>>2]=0,i[r+228|0]=0,v[r+224>>2]=0,r}function xr(r,n,e,f,i,t){r|=0,n|=0,e=w(e),f=w(f),i=w(i),t=w(t);var u,o=w(0),a=w(0),c=w(0),b=w(0),k=0;if(u=v[r+16>>2],r=m(n,19),v[u+(r<<2)>>2]=1073741824,(n=r+1|0)>>>0<(r=r+19|0)>>>0)for(o=w(w(i-w(e+e))*w(.029999999329447746)),c=w(w(w(w(e-i)*w(3))+w(1))*w(.006000000052154064)),i=w(w(o+o)+c),a=w(w(t-w(f+f))*w(.029999999329447746)),b=w(w(w(w(f-t)*w(3))+w(1))*w(.006000000052154064)),t=w(w(a+a)+b),a=f=w(w(b*w(.1666666716337204))+w(w(f*w(.30000001192092896))+a)),o=e=w(w(c*w(.1666666716337204))+w(w(e*w(.30000001192092896))+o));p[(k=(n<<2)+u|0)>>2]=e,p[k+4>>2]=f,a=w(t+a),f=w(a+f),o=w(o+i),e=w(e+o),i=w(c+i),t=w(b+t),r>>>0>(n=n+2|0)>>>0;);}function Jr(r){r|=0;var n,e=w(0),f=w(0),i=w(0),t=w(0),u=w(0),o=w(0),a=w(0),c=w(0),b=w(0),k=w(0),s=w(0),l=w(0),h=w(0);i=p[r+52>>2],e=p[r+44>>2],u=p[r+76>>2],c=p[r+60>>2],b=p[r+68>>2],f=Ur(o=w(p[r+40>>2]*w(.01745329238474369))),t=p[r+56>>2],a=p[r+48>>2],k=p[r+80>>2],s=p[r+64>>2],o=Wr(o),l=p[r+32>>2],h=p[r+72>>2],u=w(e*w(i/u)),i=w(w(e*w(i*w(-.5)))+w(u*c)),n=v[r+96>>2],e=w(a*w(t*w(-.5))),t=w(a*w(t/k)),e=w(e+w(s*t)),a=p[r+36>>2],c=w(w(o*e)+a),u=w(w(b*u)+i),b=w(f*u),p[n+28>>2]=c+b,k=w(l+w(i*o)),t=w(w(h*t)+e),s=w(f*t),p[n+8>>2]=k-s,i=w(i*f),p[n+4>>2]=c+i,f=w(e*f),p[n>>2]=k-f,e=w(l+w(u*o)),p[n+24>>2]=e-f,f=w(a+w(t*o)),p[n+20>>2]=f+b,p[n+16>>2]=e-s,p[n+12>>2]=f+i}function Kr(r){r|=0;var n,e,f=0,t=0;return zr(n=ut(236),na(r)),f=v[r+68>>2],(e=v[n+72>>2])&&(!(t=v[n+68>>2])|(0|f)==(0|t)||Ta[0|e](t)),v[n+72>>2]=0,v[n+68>>2]=f,p[n+180>>2]=p[r+180>>2],p[n+184>>2]=p[r+184>>2],p[n+188>>2]=p[r+188>>2],p[n+192>>2]=p[r+192>>2],i[n+228|0]=l[r+228|0],v[n+232>>2]=v[r+232>>2],p[n+76>>2]=p[r+76>>2],p[n+80>>2]=p[r+80>>2],p[n+84>>2]=p[r+84>>2],p[n+88>>2]=p[r+88>>2],p[n+92>>2]=p[r+92>>2],p[n+96>>2]=p[r+96>>2],te(n+168|0,r+168|0),p[n+208>>2]=p[r+208>>2],p[n+212>>2]=p[r+212>>2],p[n+216>>2]=p[r+216>>2],p[n+220>>2]=p[r+220>>2],vf(n+204|0),v[n+56>>2]=v[r+56>>2],Kn(n,(f=v[r+100>>2])||r),lr(n),0|n}function Br(r,n,e){var f,i,t=0,u=0,o=w(0),a=w(0),c=0,b=w(0),k=w(0),s=w(0);V=f=V-16|0,i=v[r+60>>2],o=p[n+56>>2],b=p[n+52>>2],a=w(o-b),k=Er(p[n+76>>2],a);r:if(i){for(;;){if(u=v[v[r+68>>2]+(t<<2)>>2],(s=p[u+8>>2])>2],lt(f,5,n,u),Zr(c+4|0,f)),(0|i)==(0|(t=t+1|0)))break}t=i}r:{n:{if(l[n+36|0]){if(a==w(0))break n;if(Er(p[n+72>>2],a)=o)|!(p[n+60>>2]>2],lt(f,4,n,0),Zr(u+4|0,f)}if(t>>>0>>0)for(;u=v[v[r+68>>2]+(t<<2)>>2],p[u+8>>2]>2],lt(f,5,n,u),Zr(c+4|0,f)),(0|i)!=(0|(t=t+1|0)););V=f+16|0}function Nr(){C(21705,21706,21707,0,11240,1662,11243,0,11243,0,4540,11245,1663),R(21705,2163,1,16864,11245,1664,1665,0),R(21705,1181,1,16864,11245,1664,1666,0),R(21705,1100,2,16868,11312,1667,1668,0),R(21705,1118,1,16864,11245,1664,1669,0),R(21705,6797,2,16876,11312,1670,1671,0),R(21705,3916,5,16896,13908,1672,1673,0),R(21705,1134,5,16928,13908,1674,1675,0),R(21705,6859,3,16948,13224,1676,1677,0),R(21705,6826,2,16960,13576,1678,1679,0),R(21705,3895,2,16272,13576,1680,1681,0),R(21705,6776,1,15064,11240,1682,1683,0),R(21705,5211,1,16968,11240,1684,1685,0),R(21705,1079,1,15836,11240,1382,1686,0),R(21705,1797,1,16972,11240,1687,1688,0)}function qr(r,n,e,f){var t,u=0,o=0,a=0,c=0,b=0;if(V=t=V-16|0,v[r>>2]=1032,v[r+4>>2]=1048,v[r+8>>2]=v[e+4>>2],u=v[e+8>>2],v[r+16>>2]=0,v[r+12>>2]=u,u&&(o=v[5280],c=r,b=0|Ta[v[v[o>>2]+12>>2]](o,u<<2,8590,210),v[c+16>>2]=b,o=v[r+8>>2]))for(u=0;v[(a=u<<2)+v[r+16>>2]>>2]=v[v[e+12>>2]+a>>2],(0|o)!=(0|(u=u+1|0)););if(p[r+32>>2]=f,v[r+24>>2]=0,v[r+28>>2]=0,v[r+20>>2]=8600,Ue(r+36|0,n),v[e+4>>2]>0)for(u=r+20|0,n=0;o=v[v[e+12>>2]+(n<<2)>>2],c=t,b=0|Ta[v[v[o>>2]+16>>2]](o),v[c+12>>2]=b,i[t+11|0]=1,_n(u,t+12|0,t+11|0),(0|(n=n+1|0))>2];);return V=t+16|0,r}function Dr(r,n,e,f,i,u,o,a,c,k,s,l){var h=w(0),d=w(0),y=w(0),m=w(0),g=0,F=w(0),A=w(0),T=w(0),$=w(0);r:{if(!(r>2])+(s<<2)|0,d=w(r*r),F=w(d*r),$=w(c*F),c=w(w(1)-r),y=w(c*r),h=w(y*w(3)),A=w(h*r),m=w(c*c),T=w(c*m),c=w(c*h),h=w($+w(w(o*A)+w(w(e*T)+w(c*i)))),p[g+4>>2]=h,a=w(w(a*F)+w(w(u*A)+w(w(n*T)+w(c*f)))),p[g>>2]=a,!l)break r;+r<.001?r=Or(w(i-e),w(f-n)):(r=w(y*i),e=w(h-w(w(o*d)+w(w(e*m)+w(r+r)))),r=w(y*f),r=Or(e,w(a-w(w(u*d)+w(w(n*m)+w(r+r))))))}else k=v[k+12>>2],p[(l=k+(s<<2)|0)>>2]=n,p[l+4>>2]=e,r=Or(w(i-e),w(f-n));p[8+((s<<2)+k|0)>>2]=r}}function Vr(r,n,e,f){var i,t=0,o=0,a=0,c=0,b=0,s=0;V=i=V-16|0,v[i+12>>2]=0,wn(f,n,i+12|0);r:if(e==w(1)){if(!((0|n)<=0))for(t=v[r+4>>2],a=v[f+12>>2],f=0;v[r+4>>2]=t+1,c=l[0|t],v[r+4>>2]=t+2,b=l[t+1|0],v[r+4>>2]=t+3,s=l[t+2|0],o=t+4|0,v[r+4>>2]=o,v[a+(f<<2)>>2]=l[t+3|0]|(s|b<<8|c<<16)<<8,t=o,(0|(f=f+1|0))!=(0|n););}else{if((0|n)<=0)break r;for(t=v[r+4>>2],a=v[f+12>>2],f=0;v[r+4>>2]=t+1,c=l[0|t],v[r+4>>2]=t+2,b=l[t+1|0],v[r+4>>2]=t+3,s=l[t+2|0],o=t+4|0,v[r+4>>2]=o,p[a+(f<<2)>>2]=(u(2,l[t+3|0]|(s|b<<8|c<<16)<<8),k()*e),t=o,(0|(f=f+1|0))!=(0|n););}V=i+16|0}function Zr(r,n){var e,f=0,i=w(0),t=0;V=e=V-16|0,(0|(f=v[r+4>>2]))!=v[r+8>>2]?(v[r+4>>2]=f+1,r=v[r+12>>2]+(f<<4)|0,v[r>>2]=8664,f=v[n+8>>2],v[r+4>>2]=v[n+4>>2],v[r+8>>2]=f,v[r+12>>2]=v[n+12>>2]):(v[e>>2]=8664,v[e+12>>2]=v[n+12>>2],t=v[n+8>>2],v[e+4>>2]=v[n+4>>2],v[e+8>>2]=t,i=w(w(f>>>0)*w(1.75)),n=(n=w(g(i))>>0<=8?8:n,v[r+8>>2]=n,f=v[5280],n=0|Ta[v[v[f>>2]+16>>2]](f,v[r+12>>2],n<<4,8590,113),v[r+12>>2]=n,f=r,r=v[r+4>>2],v[f+4>>2]=r+1,v[(r=n+(r<<4)|0)>>2]=8664,n=v[e+8>>2],v[r+4>>2]=v[e+4>>2],v[r+8>>2]=n,v[r+12>>2]=v[e+12>>2]),V=e+16|0}function Yr(r,n,e,f){var i,t=0,u=0,o=0,a=0,c=0;V=i=V-32|0,Xt(i+20|0,n),n=v[i+24>>2],t=v[i+20>>2];r:if(!(n>>>0>=(u=v[t+4>>2])>>>0))for(c=i+4|0;;){if(o=v[i+28>>2],a=v[t+12>>2],o>>>0>=d[4+(a+(n<<4)|0)>>2]){n:{e:{for(;;){if((0|u)==(0|(n=n+1|0)))break e;if(v[4+((n<<4)+a|0)>>2])break}t=n;break n}t=u}if(v[i+24>>2]=t,u=n>>>0>=u>>>0,o=0,n=t,u)break r}if(n=v[12+((n<<4)+a|0)>>2],v[i+28>>2]=o+1,n=n+m(o,20)|0,v[i>>2]=v[n>>2],t=Ue(c,n+4|0),n=v[n+16>>2],v[i+16>>2]=n,v[i>>2]==(0|e)&&Mn(r,n,f),gi(t),n=v[i+24>>2],t=v[i+20>>2],!(n>>>0<(u=v[t+4>>2])>>>0))break}V=i+32|0}function Xr(r,n,e,f,i){var t,u=w(0),o=w(0),a=w(0),c=w(0),b=w(0),k=w(0),s=w(0),l=w(0);b=p[n+100>>2],k=p[n+92>>2],s=p[n+96>>2],t=(f<<2)+e|0,a=p[n+112>>2],r=v[r+96>>2],u=p[r+24>>2],c=p[n+104>>2],l=p[n+108>>2],o=p[r+28>>2],p[t+4>>2]=a+w(w(u*c)+w(l*o)),p[t>>2]=b+w(w(u*k)+w(s*o)),f=((n=f+i|0)<<2)+e|0,u=p[r>>2],o=p[r+4>>2],p[f+4>>2]=a+w(w(c*u)+w(l*o)),p[f>>2]=b+w(w(u*k)+w(s*o)),f=((n=n+i|0)<<2)+e|0,u=p[r+8>>2],o=p[r+12>>2],p[f+4>>2]=a+w(w(c*u)+w(l*o)),p[f>>2]=b+w(w(u*k)+w(s*o)),n=(n+i<<2)+e|0,u=a,a=p[r+16>>2],o=w(c*a),c=p[r+20>>2],p[n+4>>2]=u+w(o+w(l*c)),p[n>>2]=b+w(w(a*k)+w(s*c))}function Qr(r){var n,e,f=w(0),i=w(0);if(b(r),(n=2147483647&(e=t(2)))>>>0>=1065353216)return w(1065353216==(0|n)?(0|e)>=0?0:3.141592502593994:w(0)/w(r-r));r:{if(n>>>0<=1056964607){if(f=w(1.570796251296997),n>>>0<847249409)break r;return w(w(w(w(7.549789415861596e-8)-w(r*Kf(w(r*r))))-r)+w(1.570796251296997))}if((0|e)<0)return r=w(w(r+w(1))*w(.5)),f=w(T(r)),r=w(w(1.570796251296997)-w(f+w(w(f*Kf(r))+w(-7.549789415861596e-8)))),w(r+r);f=w(w(w(1)-r)*w(.5)),u(2,-4096&(b(i=w(T(f))),t(2))),r=k(),r=w(w(w(i*Kf(f))+w(w(f-w(r*r))/w(i+r)))+r),f=w(r+r)}return f}function rn(r){var n=0,e=0,f=0,i=0;if(v[4+(r|=0)>>2]=8712,v[r>>2]=8696,n=v[r+44>>2])for(;;){if(f=v[v[r+52>>2]+(i<<2)>>2]){if(n=v[f+24>>2])for(;e=v[n+24>>2],Ta[v[v[n>>2]+4>>2]](n),n=e;);if(n=v[f+20>>2])for(;e=v[n+20>>2],Ta[v[v[n>>2]+4>>2]](n),n=e;);Ta[v[v[f>>2]+4>>2]](f),n=v[r+44>>2]}if(!((i=i+1|0)>>>0>>0))break}return(n=v[r+72>>2])&&Ta[v[v[n>>2]+4>>2]](n),Cf(r+76|0),Fo(r+56|0),lo(r+40|0),kt(r+20|0),v[r+4>>2]=8728,(n=v[r+12>>2])&&(e=v[r+8>>2])&&Ta[0|n](e),0|r}function nn(r){var n,e,f=0,i=0,t=0,u=w(0),o=w(0),a=w(0),c=0;n=v[r+12>>2],u=p[n>>2],i=v[r+4>>2],o=w(w(p[((e=i-2|0)<<2)+n>>2]*p[n+4>>2])-w(p[((i<<2)+n|0)-4>>2]*u));r:{if(f=i-3|0){for(r=0;a=w(u*p[12+((t=r<<2)+n|0)>>2]),u=p[((r=r+2|0)<<2)+n>>2],o=w(o+w(a-w(p[(4|t)+n>>2]*u))),r>>>0>>0;);if(i>>>0<2|o>>1|0}else if(i=1,o>2],u=p[(t=(4|t)+n|0)>>2],c=f,f=(e-r<<2)+n|0,p[c>>2]=p[f>>2],p[t>>2]=p[f+4>>2],p[f+4>>2]=u,p[f>>2]=o,i>>>0>(r=r+2|0)>>>0;);}}function en(r){var n,e=0,f=0,i=0,t=0,u=0,o=0;V=n=V-32|0,v[(r|=0)>>2]=10800;r:if(e=v[r+24>>2])for(o=n+16|0;;){if(u=v[r+32>>2],d[4+(u+(f<<4)|0)>>2]<=t>>>0){n:{e:{for(;;){if((0|(f=f+1|0))==(0|e))break e;if(v[4+((f<<4)+u|0)>>2])break}i=f;break n}i=e}if(e=e>>>0<=f>>>0,t=0,f=i,e)break r}if(i=v[12+((f<<4)+u|0)>>2]+m(t,20)|0,v[n+12>>2]=v[i>>2],e=Ue(o,i+4|0),i=v[i+16>>2],v[n+28>>2]=i,_i(i),gi(e),t=t+1|0,!(f>>>0<(e=v[r+24>>2])>>>0))break}return no(r+52|0),mo(r+36|0),v[r+16>>2]=10784,Qu(r+20|0),gi(r+4|0),V=n+32|0,0|r}function fn(r,n,e,f,t){var u=0,o=w(0),a=0;return(u=v[r+28>>2])?(a=u-1|0,u=v[v[r+36>>2]+(a<<2)>>2],v[r+28>>2]=a):bn(u=ut(172)),v[u+40>>2]=0,v[u+44>>2]=0,i[u+37|0]=0,i[u+36|0]=f,v[u+16>>2]=e,v[u+32>>2]=n,v[u+48>>2]=0,v[u+52>>2]=0,o=p[e+32>>2],v[u+104>>2]=1065353216,v[u+84>>2]=2139095039,v[u+88>>2]=1065353216,v[u+76>>2]=-1082130432,v[u+80>>2]=-1082130432,v[u+68>>2]=0,v[u+72>>2]=0,v[u+60>>2]=-1082130432,v[u+64>>2]=-1082130432,p[u+56>>2]=o,v[u+92>>2]=1065353216,v[u+96>>2]=0,o=t?Ln(v[r+16>>2],v[t+16>>2],e):w(0),p[u+100>>2]=o,u}function tn(r,n,e){r|=0,n|=0,e|=0;var f=0,i=w(0),t=0,u=0,o=0;f=v[r+4>>2],v[r+4>>2]=n,d[r+8>>2]>>0&&(i=w(w(n>>>0)*w(1.75)),n=(n=w(g(i))>>0<=8?8:n,v[r+8>>2]=n,t=v[5280],u=r,o=0|Ta[v[v[t>>2]+16>>2]](t,v[r+12>>2],m(n,12),8590,85),v[u+12>>2]=o,n=v[r+4>>2]);r:if(n>>>0<=f>>>0){if(n>>>0>=f>>>0)break r;for(;e=v[r+12>>2]+m(n,12)|0,Ta[v[v[e>>2]>>2]](e),(0|f)!=(0|(n=n+1|0)););}else for(;Ue(v[r+12>>2]+m(f,12)|0,e),(f=f+1|0)>>>0>2];);}function un(r,n,e){var f,t,u,o=0,a=0;if(V=t=V-16|0,f=Ho(r),v[f+8>>2]=9260,v[f+4>>2]=n,v[f>>2]=9620,r=0,v[f+20>>2]=0,v[f+12>>2]=0,v[f+16>>2]=0,v[f+24>>2]=v[n+44>>2],i[f+28|0]=l[n+48|0],i[f+29|0]=l[n+49|0],p[f+32>>2]=p[n+52>>2],p[f+36>>2]=p[n+56>>2],n=wu(e,Qo(v[n+40>>2])),i[f+44|0]=0,v[f+40>>2]=n,ya(u=f+8|0,v[v[f+4>>2]+28>>2]),n=v[f+4>>2],v[n+28>>2])for(;o=t,a=wu(e,Qo(v[v[n+36>>2]+(r<<2)>>2])),v[o+12>>2]=a,Un(u,t+12|0),r=r+1|0,n=v[f+4>>2],r>>>0>2];);return V=t+16|0,f}function on(r,n,e){var f,t,u,o=w(0),a=0,c=0;if(V=t=V-16|0,f=Ho(r),v[f+8>>2]=9260,v[f+4>>2]=n,v[f>>2]=10940,r=0,v[f+20>>2]=0,v[f+12>>2]=0,v[f+16>>2]=0,a=f,c=wu(e,Qo(v[n+40>>2])),v[a+24>>2]=c,p[f+28>>2]=p[n+44>>2],p[f+32>>2]=p[n+48>>2],p[f+36>>2]=p[n+52>>2],o=p[n+56>>2],i[f+44|0]=0,p[f+40>>2]=o,ya(u=f+8|0,v[v[f+4>>2]+28>>2]),n=v[f+4>>2],v[n+28>>2])for(;a=t,c=wu(e,Qo(v[v[n+36>>2]+(r<<2)>>2])),v[a+12>>2]=c,Un(u,t+12|0),r=r+1|0,n=v[f+4>>2],r>>>0>2];);return V=t+16|0,f}function an(r,n,e,f,i){r|=0,n|=0,e|=0,f|=0,i=w(i);var t=0,u=0,o=w(0),a=w(0);r:if(t=xe(r,n)){for(;t=v[(u=t)+20>>2];);if(t=fn(r,n,e,f,u),v[u+20>>2]=t,!(i<=w(0)))break r;if((a=w(p[u+56>>2]-p[u+52>>2]))!=w(0)){o=p[u+72>>2],l[u+36|0]?(o=w(o/a),n=w(g(o))>2],v[u+16>>2],e));break r}i=p[u+72>>2]}else Tn(r,n,t=fn(r,n,e,f,0),1),mr(v[r+72>>2]);return p[t+68>>2]=i,0|t}function cn(r,n,e){r|=0,n|=0,e|=0;var f=0,i=0,t=w(0),u=0,o=0;if(i=v[r+4>>2],v[r+4>>2]=n,d[r+8>>2]>>0&&(t=w(w(n>>>0)*w(1.75)),n=(n=w(g(t))>>0<=8?8:n,v[r+8>>2]=n,f=v[5280],u=r,o=0|Ta[v[v[f>>2]+16>>2]](f,v[r+12>>2],m(n,20),8590,85),v[u+12>>2]=o,n=v[r+4>>2]),n>>>0>i>>>0)for(;f=v[e+4>>2],n=v[r+12>>2]+m(i,20)|0,v[n>>2]=v[e>>2],v[n+4>>2]=f,v[n+16>>2]=v[e+16>>2],f=v[e+12>>2],v[n+8>>2]=v[e+8>>2],v[n+12>>2]=f,(i=i+1|0)>>>0>2];);}function bn(r){return v[r+16>>2]=0,v[r+20>>2]=0,v[r+8>>2]=0,v[r+12>>2]=0,v[r+4>>2]=8648,v[r>>2]=8632,v[r+24>>2]=0,v[r+28>>2]=0,s[r+30>>1]=0,s[r+32>>1]=0,s[r+34>>1]=0,s[r+36>>1]=0,zi(r+40|0,0,48),v[r+92>>2]=0,v[r+96>>2]=0,v[r+88>>2]=1065353216,v[r+100>>2]=0,v[r+104>>2]=0,v[r+168>>2]=0,v[r+164>>2]=9,v[r+160>>2]=0,v[r+152>>2]=0,v[r+156>>2]=0,v[r+148>>2]=8776,v[r+144>>2]=0,v[r+136>>2]=0,v[r+140>>2]=0,v[r+132>>2]=8760,v[r+128>>2]=0,v[r+120>>2]=0,v[r+124>>2]=0,v[r+116>>2]=8744,v[r+108>>2]=0,v[r+112>>2]=2,r}function kn(r,n){return v[r+16>>2]=n,v[r+8>>2]=0,v[r+12>>2]=0,v[r+68>>2]=0,v[r+60>>2]=0,v[r+64>>2]=0,v[r+56>>2]=8824,v[r+52>>2]=0,v[r+44>>2]=0,v[r+48>>2]=0,v[r+40>>2]=8760,v[r+36>>2]=0,v[r+28>>2]=0,v[r+32>>2]=0,v[r+24>>2]=8760,v[r+20>>2]=8808,v[r+4>>2]=8712,v[r>>2]=8696,n=ut(32),i[n+28|0]=0,v[n+24>>2]=r+20,v[n+20>>2]=r,v[n+16>>2]=0,v[n+8>>2]=0,v[n+12>>2]=0,v[n+4>>2]=8792,v[n>>2]=8680,v[r+80>>2]=0,v[r+84>>2]=0,v[r+76>>2]=8600,v[r+72>>2]=n,i[r+88|0]=0,v[r+96>>2]=0,v[r+100>>2]=1065353216,v[r+92>>2]=9,r}function sn(r,n,e){var f,i,t=0,u=0,o=0,a=0;V=f=V-16|0,v[f+8>>2]=0,v[f+12>>2]=0,ue(r,n,f+8|0),i=v[f+12>>2],n=v[f+8>>2];r:{for(;;){if(r=0,(0|n)==(0|i))break r;if(r=l[0|n],n=n+1|0,58==(0|r))break}for(v[f+8>>2]=n,r=n;;){v[(a=(t<<3)+e|0)>>2]=n;n:{for(;;){if(u=r,(0|r)==(0|i)){r=n,o=t;break n}if(r=u+1|0,44==l[0|u])break}if(o=3,v[4+((t<<3)+e|0)>>2]=u-1,qn(a),n=r,3!=(0|(t=t+1|0)))continue}break}v[4+(n=(o<<3)+e|0)>>2]=i,v[n>>2]=r,qn(n),r=o+1|0}return V=f+16|0,r}function vn(r,n,e){r|=0,n|=0,e=w(e);var f,i=w(0),t=w(0),u=0,o=0,a=w(0);if(e=Au(e),f=v[r+16>>2],r=m(n,19),(i=p[f+(r<<2)>>2])==w(0))return w(e);if(i!=w(1)){if((u=r+1|0)>>>0<(o=r+19|0)>>>0){for(r=u;;){if(n=r,e<=(t=p[(r<<2)+f>>2]))return i=w(0),(0|n)!=(0|u)&&(a=p[(r=(n<<2)+f|0)-4>>2],i=p[r-8>>2]),w(w(a+w(w(w(e-i)*w(p[4+((n<<2)+f|0)>>2]-a))/w(t-i))));if(!(o>>>0>(r=n+2|0)>>>0))break}r=n+1|0}i=p[(r<<2)+f>>2],e=w(i+w(w(w(e-t)*w(w(1)-i))/w(w(1)-t)))}else e=w(0);return w(e)}function ln(r,n){var e,f,i,t=0,u=0,o=0,a=0;if(V=f=V-16|0,e=jo(r),v[e+24>>2]=9212,v[e+8>>2]=8776,r=0,v[e+4>>2]=0,v[e>>2]=9184,v[e+36>>2]=0,v[e+28>>2]=0,v[e+32>>2]=0,v[e+20>>2]=0,v[e+12>>2]=0,v[e+16>>2]=0,ya(t=e+8|0,n),d[8+(i=e+24|0)>>2]>>0&&(v[i+8>>2]=n,u=v[5280],o=i,a=0|Ta[v[v[u>>2]+16>>2]](u,v[i+12>>2],m(n,12),8590,101),v[o+12>>2]=a),v[f+4>>2]=0,wn(t,n,f+4|0),(0|n)>0)for(;An(i,t=Tt(f+4|0)),gi(t),(0|n)!=(0|(r=r+1|0)););return V=f+16|0,e}function hn(r){var n,e,f,i,t,u,o,a,c=0,b=0;if(v[(r|=0)>>2]=10520,Rn(n=r+16|0),Rn(e=r+32|0),Rn(f=r+48|0),v[r+64>>2]=0,Rn(i=r+68|0),Rn(t=r+84|0),Rn(u=r+100|0),Rn(o=r+116|0),Rn(a=r+132|0),v[r+192>>2])for(;b=v[5280],Ta[v[v[b>>2]+20>>2]](b,v[v[r+200>>2]+(c<<2)>>2],8590,74),(c=c+1|0)>>>0>2];);return gi(r+220|0),gi(r+208|0),Bu(r+188|0),gi(r+176|0),gi(r+164|0),uo(a),Nu(o),qu(u),Du(t),Zu(i),Yu(f),Xu(e),mo(n),gi(r+4|0),0|r}function dn(r,n){var e=0,f=0,i=0,t=0,u=w(0);if(ma(r,v[n+4>>2]+v[r+4>>2]|0),v[n+4>>2])for(;i=v[n+12>>2]+(t<<1)|0,(0|(e=v[r+4>>2]))!=v[r+8>>2]?s[v[r+12>>2]+(e<<1)>>1]=h[i>>1]:(i=h[i>>1],u=w(w(e>>>0)*w(1.75)),e=(e=w(g(u))>>0<=8?8:e,v[r+8>>2]=e,f=v[5280],f=0|Ta[v[v[f>>2]+16>>2]](f,v[r+12>>2],e<<1,8590,113),v[r+12>>2]=f,e=v[r+4>>2],s[f+(e<<1)>>1]=i),v[r+4>>2]=e+1,(t=t+1|0)>>>0>2];);}function pn(r){var n=0,e=0,f=0,t=0,u=0;if(f=v[124+(r|=0)>>2])for(u=v[r+132>>2];n=v[(e<<2)+u>>2],i[n+88|0]=1,p[n+60>>2]=p[n+32>>2],t=v[n+40>>2],v[n+64>>2]=v[n+36>>2],v[n+68>>2]=t,t=v[n+48>>2],v[n+72>>2]=v[n+44>>2],v[n+76>>2]=t,t=v[n+56>>2],v[n+80>>2]=v[n+52>>2],v[n+84>>2]=t,(0|f)!=(0|(e=e+1|0)););if(e=v[r+108>>2])for(n=0;f=v[v[r+116>>2]+(n<<2)>>2],Ta[v[v[f>>2]+12>>2]](f),(0|e)!=(0|(n=n+1|0)););}function yn(r,n){var e=0,f=0;r:{if(3&((f=r)^n))e=l[0|n];else{if(3&n)for(;;){if(e=l[0|n],i[0|f]=e,!e)break r;if(f=f+1|0,!(3&(n=n+1|0)))break}if(!(~(e=v[n>>2])&e-16843009&-2139062144))for(;v[f>>2]=e,e=v[n+4>>2],f=f+4|0,n=n+4|0,!(e-16843009&~e&-2139062144););}if(i[0|f]=e,255&e)for(;e=l[n+1|0],i[f+1|0]=e,f=f+1|0,n=n+1|0,e;);}return r}function mn(r,n,e){var f,i=0,t=w(0),u=w(0),o=0;if(!(f=v[n+24>>2]))return 1;i=mn(r,f,e),p[f+60>>2]=p[f+64>>2],p[f+76>>2]=p[f+80>>2];r:{if((t=p[n+96>>2])>w(0)&&(u=p[n+100>>2])<=t){if(u!=w(0)&p[f+108>>2]!=w(0))break r;return v[n+24>>2]=v[f+24>>2],(o=v[f+24>>2])&&(v[o+28>>2]=n),p[n+104>>2]=p[f+104>>2],Bi(v[r+72>>2],f),i}p[f+72>>2]=w(e*p[f+88>>2])+p[f+72>>2],p[n+96>>2]=t+e,i=0}return i}function wn(r,n,e){r|=0,n|=0,e|=0;var f=0,i=w(0),t=0,u=0,o=0;if(f=v[r+4>>2],v[r+4>>2]=n,d[r+8>>2]>>0&&(i=w(w(n>>>0)*w(1.75)),n=(n=w(g(i))>>0<=8?8:n,v[r+8>>2]=n,t=v[5280],u=r,o=0|Ta[v[v[t>>2]+16>>2]](t,v[r+12>>2],n<<2,8590,85),v[u+12>>2]=o,n=v[r+4>>2]),n>>>0>f>>>0)for(r=v[r+12>>2];p[r+(f<<2)>>2]=p[e>>2],(0|(f=f+1|0))!=(0|n););}function gn(r,n,e){r|=0,n|=0,e|=0;var f=0,i=w(0),t=0,u=0,o=0;if(f=v[r+4>>2],v[r+4>>2]=n,d[r+8>>2]>>0&&(i=w(w(n>>>0)*w(1.75)),n=(n=w(g(i))>>0<=8?8:n,v[r+8>>2]=n,t=v[5280],u=r,o=0|Ta[v[v[t>>2]+16>>2]](t,v[r+12>>2],n<<2,8590,85),v[u+12>>2]=o,n=v[r+4>>2]),n>>>0>f>>>0)for(r=v[r+12>>2];v[r+(f<<2)>>2]=v[e>>2],(0|(f=f+1|0))!=(0|n););}function Fn(r,n,e){r|=0,n|=0,e|=0;var f=0,i=w(0),t=0,u=0,o=0;if(f=v[r+4>>2],v[r+4>>2]=n,d[r+8>>2]>>0&&(i=w(w(n>>>0)*w(1.75)),n=(n=w(g(i))>>0<=8?8:n,v[r+8>>2]=n,t=v[5280],u=r,o=0|Ta[v[v[t>>2]+16>>2]](t,v[r+12>>2],n<<1,8590,85),v[u+12>>2]=o,n=v[r+4>>2]),n>>>0>f>>>0)for(r=v[r+12>>2];s[r+(f<<1)>>1]=h[e>>1],(0|(f=f+1|0))!=(0|n););}function An(r,n){var e,f=0,i=0,t=w(0);V=e=V-16|0,(0|(f=v[r+4>>2]))!=v[r+8>>2]?(v[r+4>>2]=f+1,Ue(v[r+12>>2]+m(f,12)|0,n)):(f=Ue(e+4|0,n),t=w(w(d[r+4>>2])*w(1.75)),n=(n=w(g(t))>>0<=8?8:n,v[r+8>>2]=n,i=v[5280],n=0|Ta[v[v[i>>2]+16>>2]](i,v[r+12>>2],m(n,12),8590,113),v[r+12>>2]=n,i=r,r=v[r+4>>2],v[i+4>>2]=r+1,Ue(n+m(r,12)|0,f),gi(f)),V=e+16|0}function Tn(r,n,e,f){var t,u,o=w(0);V=u=V-16|0,t=xe(r,n),v[v[r+52>>2]+(n<<2)>>2]=e,t&&(f&&(n=v[r+72>>2],lt(u,1,t,0),Zr(n+4|0,u)),v[e+24>>2]=t,v[t+28>>2]=e,v[e+96>>2]=0,v[t+24>>2]&&(o=p[t+100>>2])>w(0)&&(o=w(p[t+96>>2]/o),p[e+104>>2]=p[e+104>>2]*(o>w(1)?w(1):o)),v[t+152>>2]=0),n=v[r+72>>2],V=r=V-16|0,lt(r,0,e,0),Zr(n+4|0,r),i[v[n+20>>2]+88|0]=1,V=r+16|0,V=u+16|0}function $n(r,n,e){r|=0,n|=0,e|=0;var f=0,i=w(0),t=0,u=0,o=0;if(f=v[r+4>>2],v[r+4>>2]=n,d[r+8>>2]>>0&&(i=w(w(n>>>0)*w(1.75)),n=(n=w(g(i))>>0<=8?8:n,v[r+8>>2]=n,t=v[5280],u=r,o=0|Ta[v[v[t>>2]+16>>2]](t,v[r+12>>2],n<<2,8590,85),v[u+12>>2]=o,n=v[r+4>>2]),n>>>0>f>>>0)for(;v[v[r+12>>2]+(f<<2)>>2]=v[e>>2],(0|(f=f+1|0))!=(0|n););}function In(){B(21536,6255),K(21645,4530,1,1,0),O(22296,3707,1,-128,127),O(22297,3700,1,-128,127),O(22298,3698,1,0,255),O(22299,1492,2,-32768,32767),O(21563,1483,2,0,65535),O(21543,1793,4,-2147483648,2147483647),O(21553,1784,4,0,-1),O(22300,4850,4,-2147483648,2147483647),O(21537,4841,4,0,-1),Tu(22301,2407,-2147483648,2147483647),Tu(22302,2406,0,-1),M(21542,2351,4),M(22303,5826,8),J(21686,4565)}function Cn(r,n,e){return v[r+8>>2]=e,v[r+4>>2]=n,v[r>>2]=10864,e=v[e+8>>2],v[r+28>>2]=1065353216,v[r+32>>2]=1065353216,v[r+20>>2]=1065353216,v[r+24>>2]=1065353216,v[r+16>>2]=9372,v[r+12>>2]=e,vf(r+16|0),v[r+40>>2]=0,v[r+44>>2]=0,v[r+36>>2]=9372,v[r+48>>2]=0,v[r+52>>2]=0,vf(r+36|0),n=l[n+64|0],v[r+80>>2]=0,v[r+72>>2]=0,v[r+76>>2]=0,v[r+68>>2]=8776,v[r+60>>2]=0,v[r+64>>2]=0,i[r+56|0]=n,Sn(r),r}function Pn(r,n,e){var f=0,i=0;r:{if(f=v[r+4>>2])for(;;){if(Gi(f+4|0,n))break r;if(!(f=v[f+20>>2]))break}return f=ut(28),v[f>>2]=8888,_t(f+4|0,0,0),v[f+20>>2]=0,v[f+24>>2]=0,i=v[n+8>>2],v[f+8>>2]=v[n+4>>2],v[f+12>>2]=i,p[f+16>>2]=p[e>>2],(n=v[r+4>>2])&&(v[n+24>>2]=f,v[f+20>>2]=n),v[r+4>>2]=f,void(v[r+8>>2]=v[r+8>>2]+1)}r=v[n+8>>2],v[f+8>>2]=v[n+4>>2],v[f+12>>2]=r,p[f+16>>2]=p[e>>2]}function En(r,n){var e=0,f=0,i=0,t=0,u=0;for(r=r+4|0;;){if(r=v[r>>2]){if(!n|!(f=v[r+28>>2]))e=-1,n>>>0>f>>>0||(e=(0|n)!=(0|f));else{i=n,u=0;r:if(e=l[0|f]){for(;;){if((t=l[0|i])&&((0|e)==(0|t)||(0|ho(e))==(0|ho(t)))){if(i=i+1|0,e=l[f+1|0],f=f+1|0,e)continue;break r}break}u=e}e=ho(255&u)-ho(l[0|i])|0}if(e)continue}break}return r}function On(r,n,e){var f=0,t=w(0),u=0,o=0,a=0;if(f=v[r+4>>2],v[r+4>>2]=n,d[r+8>>2]>>0&&(t=w(w(n>>>0)*w(1.75)),n=(n=w(g(t))>>0<=8?8:n,v[r+8>>2]=n,u=v[5280],o=r,a=0|Ta[v[v[u>>2]+16>>2]](u,v[r+12>>2],n,8590,85),v[o+12>>2]=a,n=v[r+4>>2]),n>>>0>f>>>0)for(r=v[r+12>>2];i[r+f|0]=l[0|e],(0|(f=f+1|0))!=(0|n););}function Rn(r){var n=0,e=0,f=0,i=0,t=0,u=0,o=0,a=0;if((0|(e=v[r+4>>2]))>0)for(i=e;;){if(t=i-1|0,(n=v[v[r+12>>2]+(t<<2)>>2])&&(Ta[v[v[n>>2]+4>>2]](n),e=v[r+4>>2]),e=e-1|0,v[r+4>>2]=e,e>>>0>(n=t)>>>0)for(;f=v[r+12>>2],o=v[(u=f+(n<<2)|0)>>2],a=f,f=(n=n+1|0)<<2,v[u>>2]=v[a+f>>2],v[f+v[r+12>>2]>>2]=o,(0|n)!=(0|e););if(n=(0|i)>1,i=t,!n)break}}function Sn(r){r|=0;var n=0,e=w(0);n=Xo(v[r+4>>2]),p[r+20>>2]=p[n+4>>2],p[r+24>>2]=p[n+8>>2],p[r+28>>2]=p[n+12>>2],p[r+32>>2]=p[n+16>>2],vf(r+16|0),n=No(v[r+4>>2]);r:{if(v[n+4>>2]){if(v[r+60>>2]=0,(0|(n=Ef(v[r+12>>2],v[v[r+4>>2]+4>>2],n)))==v[r+60>>2])break r;v[r+60>>2]=n}else{if(!v[r+60>>2])break r;v[r+60>>2]=0}e=p[v[r+12>>2]+160>>2],v[r+72>>2]=0,p[r+64>>2]=e}}function Wn(r,n){var e=0,f=w(0),i=0;if((0|(e=v[r+4>>2]))==v[r+8>>2])return i=v[n>>2],f=w(w(e>>>0)*w(1.75)),n=(n=w(g(f))>>0<=8?8:n,v[r+8>>2]=n,e=v[5280],n=0|Ta[v[v[e>>2]+16>>2]](e,v[r+12>>2],n<<2,8590,113),v[r+12>>2]=n,e=r,r=v[r+4>>2],v[e+4>>2]=r+1,void(v[n+(r<<2)>>2]=i);v[r+4>>2]=e+1,v[v[r+12>>2]+(e<<2)>>2]=v[n>>2]}function Gn(r,n){var e=0,f=w(0),i=w(0);(0|(e=v[r+4>>2]))!=v[r+8>>2]?p[v[r+12>>2]+(e<<2)>>2]=p[n>>2]:(i=p[n>>2],f=w(w(e>>>0)*w(1.75)),n=(n=w(g(f))>>0<=8?8:n,v[r+8>>2]=n,e=v[5280],n=0|Ta[v[v[e>>2]+16>>2]](e,v[r+12>>2],n<<2,8590,113),v[r+12>>2]=n,e=v[r+4>>2],p[n+(e<<2)>>2]=i),v[r+4>>2]=e+1}function Un(r,n){var e=0,f=w(0),i=0;(0|(e=v[r+4>>2]))!=v[r+8>>2]?v[v[r+12>>2]+(e<<2)>>2]=v[n>>2]:(i=v[n>>2],f=w(w(e>>>0)*w(1.75)),n=(n=w(g(f))>>0<=8?8:n,v[r+8>>2]=n,e=v[5280],n=0|Ta[v[v[e>>2]+16>>2]](e,v[r+12>>2],n<<2,8590,113),v[r+12>>2]=n,e=v[r+4>>2],v[n+(e<<2)>>2]=i),v[r+4>>2]=e+1}function jn(r,n){var e,f=0,t=0;return e=v[r+4>>2],v[r+4>>2]=e+1,t=127&(f=i[0|e]),(0|f)>=0||(v[r+4>>2]=e+2,t|=(f=i[e+1|0])<<7&16256,(0|f)>=0||(v[r+4>>2]=e+3,t|=(f=i[e+2|0])<<14&2080768,(0|f)>=0||(v[r+4>>2]=e+4,t|=(f=i[e+3|0])<<21&266338304,(0|f)>=0||(v[r+4>>2]=e+5,t=l[e+4|0]<<28|t)))),n?t:0-(1&t)^t>>>1}function Hn(r,n){r:if((0|n)>=1024){if(r*=898846567431158e293,n>>>0<2047){n=n-1023|0;break r}r*=898846567431158e293,n=((0|n)>=3069?3069:n)-2046|0}else(0|n)>-1023||(r*=2004168360008973e-307,n>>>0>4294965304?n=n+969|0:(r*=2004168360008973e-307,n=((0|n)<=-2960?-2960:n)+1938|0));return u(0,0),u(1,n+1023<<20),r*+o()}function Ln(r,n,e){r|=0,n|=0,e|=0;var f,i=w(0);V=f=V-16|0,_t(f+4|0,n,e);r:{n:{e:{if(e=v[r+16>>2])for(;;){if(Gi(e+4|0,f+4|0))break e;if(!(e=v[e+20>>2]))break}r=r+8|0;break n}if(!(e=v[r+16>>2]))break r;for(;;){if(!Gi(e+4|0,f+4|0)){if(e=v[e+20>>2])continue;break r}break}r=e+16|0}i=p[r>>2]}return V=f+16|0,w(i)}function Mn(r,n,e){var f=0,i=0;if(n&&Si(0|Ta[v[v[n>>2]+8>>2]](n),21212))if(i=v[n+24>>2])for(e=0;;){if(f=e<<2,(e=e+1|0)>>>0<(f=e+v[f+v[n+32>>2]>>2]|0)>>>0){for(;Qf(r,v[v[r+20>>2]+(v[v[n+32>>2]+(e<<2)>>2]<<2)>>2]),(0|f)!=(0|(e=e+1|0)););e=f}if(!(e>>>0>>0))break}else Qf(r,e)}function _n(r,n,e){var f=0,t=0;r:{if(f=v[r+4>>2])for(t=v[n>>2];;){if(v[f+4>>2]==(0|t))break r;if(!(f=v[f+12>>2]))break}return f=ut(20),v[f+12>>2]=0,v[f+16>>2]=0,v[f>>2]=8616,v[f+4>>2]=v[n>>2],i[f+8|0]=l[0|e],(n=v[r+4>>2])&&(v[n+16>>2]=f,v[f+12>>2]=n),v[r+4>>2]=f,void(v[r+8>>2]=v[r+8>>2]+1)}v[f+4>>2]=t,i[f+8|0]=l[0|e]}function zn(r,n){var e=0,f=0,i=0,t=0;if(v[r>>2]=9212,v[r+4>>2]=v[n+4>>2],e=v[n+8>>2],v[r+12>>2]=0,v[r+8>>2]=e,e&&(f=v[5280],i=r,t=0|Ta[v[v[f>>2]+12>>2]](f,m(e,12),8590,210),v[i+12>>2]=t,v[r+4>>2]))for(e=0;Ue((f=m(e,12))+v[r+12>>2]|0,f+v[n+12>>2]|0),(e=e+1|0)>>>0>2];);return r}function xn(r,n,e){var f=0,i=0,t=0,u=0;if(v[r>>2]=e,v[r+4>>2]=v[n+4>>2],e=v[n+8>>2],v[r+12>>2]=0,v[r+8>>2]=e,e&&(f=v[5280],t=r,u=0|Ta[v[v[f>>2]+12>>2]](f,e<<2,8590,210),v[t+12>>2]=u,f=v[r+4>>2]))for(e=0;v[(i=e<<2)+v[r+12>>2]>>2]=v[v[n+12>>2]+i>>2],(0|f)!=(0|(e=e+1|0)););return r}function Jn(r,n){var e=0,f=0,i=0,t=0;for(v[n>>2]=0;;){r:{n:{e:{if(((f=l[r+i|0])-58&255)>>>0<=245){if(f-65>>>0<6|f-97>>>0<6)break e;return void(v[n>>2]=0)}e<<=4,t=-48;break n}if(e<<=4,v[n>>2]=e,t=-55,!((f-65&255)>>>0<6)&&(t=-87,(f-97&255)>>>0>5))break r}e|=(f<<24>>24)+t,v[n>>2]=e}if(4==(0|(i=i+1|0)))break}}function Kn(r,n){n|=0;var e=0;v[100+(r|=0)>>2]=n,n&&(v[r+24>>2]=0,Vf(r+20|0,n+20|0),v[r+40>>2]=0,Df(r+36|0,n+36|0),e=v[n+52>>2],v[r+124>>2]=0,v[r+52>>2]=e,Df(r+120|0,n+120|0),v[r+140>>2]=0,dn(r+136|0,n+136|0),e=v[n+224>>2],v[r+156>>2]=0,v[r+224>>2]=e,dn(r+152|0,n+152|0),p[r+196>>2]=p[n+196>>2],p[r+200>>2]=p[n+200>>2])}function Bn(r,n){var e=0,f=0,i=0,t=0;if(v[r>>2]=8776,v[r+4>>2]=v[n+4>>2],e=v[n+8>>2],v[r+12>>2]=0,v[r+8>>2]=e,e&&(f=v[5280],e=0|Ta[v[v[f>>2]+12>>2]](f,e<<2,8590,210),v[r+12>>2]=e,f=v[r+4>>2]))for(t=v[n+12>>2],n=0;p[e+(i=n<<2)>>2]=p[t+i>>2],(0|f)!=(0|(n=n+1|0)););return r}function Nn(r,n){var e=0,f=0,i=0,t=0;if(v[r>>2]=8744,v[r+4>>2]=v[n+4>>2],e=v[n+8>>2],v[r+12>>2]=0,v[r+8>>2]=e,e&&(f=v[5280],e=0|Ta[v[v[f>>2]+12>>2]](f,e<<2,8590,210),v[r+12>>2]=e,f=v[r+4>>2]))for(t=v[n+12>>2],n=0;v[e+(i=n<<2)>>2]=v[t+i>>2],(0|f)!=(0|(n=n+1|0)););return r}function qn(r){var n=0,e=0,f=0,i=0;e=v[r+4>>2];r:{n:if(n=v[r>>2],co(l[0|n])){for(;;){if(n>>>0>=e>>>0)break n;if(f=n+1|0,v[r>>2]=f,i=l[n+1|0],n=f,!co(i))break}break r}f=n}if((0|e)!=(0|f)){for(;e=(n=e)-1|0,v[r+4>>2]=e,!(e>>>0>>0||13!=l[0|e]););v[r+4>>2]=n}}function Dn(r,n,e,f){return v[r+4>>2]=n,v[r>>2]=10880,Ue(r+8|0,e),v[r+36>>2]=1065353216,v[r+40>>2]=1065353216,v[r+28>>2]=1065353216,v[r+32>>2]=1065353216,v[r+24>>2]=9372,v[r+20>>2]=f,vf(r+24|0),v[r+48>>2]=0,v[r+52>>2]=0,v[r+44>>2]=9372,v[r+56>>2]=0,v[r+60>>2]=0,vf(r+44|0),i[r+64|0]=0,Tt(r+68|0),v[r+80>>2]=0,r}function Vn(r,n,e,f){var i,t=0,u=0,o=0;return V=i=V-16|0,o=1,(t=xe(r,n))?p[t+80>>2]!=w(-1)?If(r,t):(v[v[r+52>>2]+(n<<2)>>2]=v[t+24>>2],u=v[r+72>>2],o=0,lt(i,1,t,0),Zr(u+4|0,i),Bi(v[r+72>>2],t),If(r,t),t=v[t+24>>2]):t=0,Tn(r,u=n,n=fn(r,n,e,f,t),o),mr(v[r+72>>2]),V=i+16|0,n}function Zn(r,n,e,f,i){var t,u,o,a=0,c=0;if(v[r+4>>2]=0,v[r>>2]=16984,Tt(r+8|0),u=Tt(r+20|0),t=Wt(16),v[r+4>>2]=t,r=Wt((o=je(n,0,24,0),Z?-1:o)),n)for(c=r+m(n,24)|0,a=r;v[a+20>>2]=0,(0|c)!=(0|(a=a+24|0)););v[t+8>>2]=n,v[t>>2]=r,v[t+12>>2]=f,v[t+4>>2]=e,te(u,i)}function Yn(r,n){n|=0;var e=0,f=0;if(!(d[44+(r|=0)>>2]<=n>>>0)&&(e=v[v[r+52>>2]+(n<<2)>>2])){if(Bi(v[r+72>>2],e),If(r,e),n=v[e+24>>2])for(f=e;Bi(v[r+72>>2],n),v[f+24>>2]=0,v[f+28>>2]=0,f=n,n=v[n+24>>2];);v[v[r+52>>2]+(v[e+32>>2]<<2)>>2]=0,mr(v[r+72>>2])}}function Xn(r,n,e){var f=0,i=0,t=0;if(!(d[r+8>>2]<=n>>>0)&&(i=v[r+16>>2]+(n<<4)|0,v[i+4>>2])){r:{for(;;){if(ei(4+(v[i+12>>2]+m(f,20)|0)|0,e))break r;if(!((f=f+1|0)>>>0>2]))break}return 0}(0|f)<0||(t=v[16+(v[12+(v[r+16>>2]+(n<<4)|0)>>2]+m(f,20)|0)>>2])}return t}function Qn(r,n,e,f,i,t){r|=0,n=w(n),e=w(e),f=w(f),i=w(i),t|=0;var u=0;r=v[r+112>>2],t?(p[r+28>>2]=e,p[r+24>>2]=n,p[r+20>>2]=i,p[r+16>>2]=n,p[r+4>>2]=e,p[r>>2]=f,u=r+8|0,t=3):(p[r+28>>2]=e,p[r+24>>2]=f,p[r+20>>2]=e,p[r+16>>2]=n,p[r+12>>2]=i,p[r+8>>2]=n,u=r,t=1),p[u>>2]=f,p[r+(t<<2)>>2]=i}function re(r,n,e,f){var i,t,u=w(0),o=w(0),a=w(0);return e=v[e+12>>2],f=v[f+12>>2],i=e+(v[f+((r+1|0)%(0|n)<<2)>>2]<<3)|0,t=e+(v[f+(r<<2)>>2]<<3)|0,u=p[t+4>>2],r=e+(v[f+(((r+n|0)-1|0)%(0|n)<<2)>>2]<<3)|0,o=p[r+4>>2],a=p[i+4>>2],!(w(w(p[i>>2]*w(u-o))+w(w(p[r>>2]*w(a-u))+w(p[t>>2]*w(o-a))))>=w(0))}function ne(r,n,e,f){return v[r+4>>2]=n,v[r>>2]=9276,Ue(r+8|0,e),v[r+24>>2]=0,v[r+28>>2]=0,v[r+20>>2]=f,v[r+32>>2]=0,v[r+36>>2]=0,v[r+48>>2]=0,v[r+52>>2]=0,v[r+40>>2]=1065353216,v[r+44>>2]=1065353216,i[r+53|0]=0,i[r+54|0]=0,i[r+55|0]=0,i[r+56|0]=0,i[r+57|0]=0,i[r+58|0]=0,i[r+59|0]=0,i[r+60|0]=0,r}function ee(r){var n=0,e=0,f=0;r:{n:if(3&(n=r)){if(!l[0|r])return 0;for(;;){if(!(3&(n=n+1|0)))break n;if(!l[0|n])break}break r}for(;e=n,n=n+4|0,!(~(f=v[e>>2])&f-16843009&-2139062144););for(;e=(n=e)+1|0,l[0|n];);}return n-r|0}function fe(r,n){var e,f,i=0,t=0,u=0,o=0,a=0;if(V=e=V-16|0,f=jn(r,1),s[e+14>>1]=0,Fn(n,f,e+14|0),(0|f)>0)for(i=v[r+4>>2],a=v[n+12>>2];v[r+4>>2]=i+1,u=(t<<1)+a|0,o=l[0|i]<<8,s[u>>1]=o,n=i+2|0,v[r+4>>2]=n,s[u>>1]=l[i+1|0]|o,i=n,(0|(t=t+1|0))!=(0|f););V=e+16|0}function ie(r,n,e){var f=0,i=0,t=w(0),u=w(0),o=w(0);return i=je(v[5576],v[5577],1284865837,1481765933),f=Z,f=(i=i+1|0)?f:f+1|0,v[5576]=i,v[5577]=f,t=w(w(f>>>1|0)*w(4.656612873077393e-10)),o=w(e-r),u=w(n-r),t<=w(o/u)?w(w(T(w(o*w(u*t))))+r):w(n-w(T(w(w(n-e)*w(u*w(w(1)-t))))))}function te(r,n){var e=0,f=0;if((0|r)!=(0|n)){if((e=v[r+8>>2])&&(f=v[5280],Ta[v[v[f>>2]+20>>2]](f,e,8590,106)),!v[n+8>>2])return v[r+4>>2]=0,void(v[r+8>>2]=0);v[r+4>>2]=v[n+4>>2],e=r,r=v[5280],r=0|Ta[v[v[r>>2]+12>>2]](r,v[n+4>>2]+1|0,8590,113),v[e+8>>2]=r,Ri(r,v[n+8>>2],v[n+4>>2]+1|0)}}function ue(r,n,e){var f=0,i=0;if((0|(f=v[r>>2]))==(0|n))return 0;v[e>>2]=f,i=n;r:if((0|(f=v[r>>2]))!=(0|n)){for(;;){if(i=f,10==l[0|f])break r;if(f=f+1|0,v[r>>2]=f,(0|n)==(0|f))break}i=n}return v[e+4>>2]=i,qn(e),(0|(e=n))!=(0|(n=v[r>>2]))&&(v[r>>2]=n+1),1}function oe(r,n,e){var f,t,u=0,o=0;if(V=f=V-272|0,t=yn(f+16|0,n),e){u=ee(n),n=ee(n=u+t|0)+n|0;r:if(u=255-u|0)for(;;){if(!(o=l[0|e]))break r;if(i[0|n]=o,n=n+1|0,e=e+1|0,!(u=u-1|0))break}i[0|n]=0}te(n=r+24|0,r=ht(f+4|0,t,0)),gi(r),V=f+272|0}function ae(r){var n=0,e=0,f=0;if(v[44+(r|=0)>>2]=0,e=v[r+28>>2]){for(f=r+40|0;Un(f,v[r+36>>2]+(n<<2)|0),(0|e)!=(0|(n=n+1|0)););if(e=v[r+28>>2])for(n=0;Sn(v[v[r+36>>2]+(n<<2)>>2]),(0|e)!=(0|(n=n+1|0)););}}function ce(r){var n=0,e=0,f=0;if(v[(r|=0)>>2]=8904,v[r+36>>2]&&(e=v[r+8>>2]))for(;f=v[r+36>>2],Ta[v[v[f>>2]+12>>2]](f,v[v[v[r+16>>2]+(n<<2)>>2]+8>>2]),(0|e)!=(0|(n=n+1|0)););return Rn(n=r+4|0),Rn(e=r+20|0),bo(e),ko(n),0|r}function be(r){var n=0,e=0;if(v[(r|=0)>>2]=9212,n=v[r+4>>2])for(;n=v[r+12>>2]+m(~e+n|0,12)|0,Ta[v[v[n>>2]>>2]](n),(n=v[r+4>>2])>>>0>(e=e+1|0)>>>0;);return v[r+4>>2]=0,(n=v[r+12>>2])&&(e=v[5280],Ta[v[v[e>>2]+20>>2]](e,n,8590,219)),0|r}function ke(r){var n=0;return v[r+12>>2]=0,(n=v[r+24>>2])&&Ta[v[v[n>>2]+4>>2]](n),(n=v[r+20>>2])&&Ta[v[v[n>>2]+4>>2]](n),(n=v[r+16>>2])&&Ta[v[v[n>>2]+4>>2]](n),(n=v[r+8>>2])&&Ta[v[v[n>>2]+4>>2]](n),(n=v[r+32>>2])&&ar(Uo(n)),zu(r+80|0),Uu(r- -64|0),r}function se(r,n,e,f,i){n|=0,e|=0,f|=0,i|=0;var t,u,o=0;return V=t=V-32|0,n=((o=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&o?v[v[n>>2]+r>>2]:r,o=n,u=e,n=$e(t+20|0,f+4|0,v[f>>2],0),e=$e(t+8|0,i+4|0,v[i>>2],0),r=0|Ta[0|r](o,u,n,e),gi(e),gi(n),V=t+32|0,0|r}function ve(r,n){var e=0,f=0;if((0|(e=v[r+8>>2]))!=(0|n)){if(e&&(f=v[5280],Ta[v[v[f>>2]+20>>2]](f,e,8590,122)),!n)return v[r+4>>2]=0,void(v[r+8>>2]=0);e=ee(n),v[r+4>>2]=e,f=v[5280],e=0|Ta[v[v[f>>2]+12>>2]](f,e+1|0,8590,129),v[r+8>>2]=e,Ri(e,n,v[r+4>>2]+1|0)}}function le(r){var n=0,e=0;if(v[(r|=0)>>2]=10832,n=v[r+4>>2])for(;gi(4+(v[r+12>>2]+m(~e+n|0,20)|0)|0),(e=e+1|0)>>>0<(n=v[r+4>>2])>>>0;);return v[r+4>>2]=0,(n=v[r+12>>2])&&(e=v[5280],Ta[v[v[e>>2]+20>>2]](e,n,8590,219)),0|r}function he(r,n){var e=0;if(v[r>>2]=n,n=v[r+4>>2])for(;n=v[r+12>>2]+(~e+n<<4)|0,Ta[v[v[n>>2]>>2]](n),(n=v[r+4>>2])>>>0>(e=e+1|0)>>>0;);return v[r+4>>2]=0,(n=v[r+12>>2])&&(e=v[5280],Ta[v[v[e>>2]+20>>2]](e,n,8590,219)),r}function de(r,n){var e;return V=e=V-16|0,r=jo(r),v[r+20>>2]=8824,v[r+4>>2]=8776,v[r>>2]=9556,v[r+32>>2]=0,v[r+24>>2]=0,v[r+28>>2]=0,v[r+16>>2]=0,v[r+8>>2]=0,v[r+12>>2]=0,v[e+12>>2]=0,wn(r+4|0,n,e+12|0),v[e+8>>2]=0,$n(r+20|0,n,e+8|0),V=e+16|0,r}function pe(r,n){var e,f,i=0,t=0;V=e=V-16|0,v[e+12>>2]=n;r:{if(f=v[r+8>>2]){if(t=v[r+16>>2],v[t>>2]==(0|n))break r;for(;(0|f)!=(0|(i=i+1|0))&v[(i<<2)+t>>2]!=(0|n););if(i>>>0>>0)break r}Un(r+4|0,e+12|0)}V=e+16|0}function ye(r,n){var e,f=w(0);return V=e=V-16|0,f=w(-1),ee(r)>>>1>>>0<=n>>>0||(r=(n<<1)+r|0,i[e+13|0]=l[0|r],r=l[r+1|0],i[e+15|0]=0,i[e+14|0]=r,r=gr(e+13|0,e+8|0,16,-1),l[v[e+8>>2]]||(f=w(w(0|r)/w(255)))),V=e+16|0,f}function me(r,n,e,f){return r=Ho(r),v[r+16>>2]=9260,v[r+12>>2]=f,v[r+8>>2]=e,v[r+4>>2]=n,v[r>>2]=9228,zi(r+20|0,0,69),s[r+116>>1]=0,v[r+108>>2]=1065353216,v[r+112>>2]=0,v[r+100>>2]=0,v[r+104>>2]=0,v[r+92>>2]=1065353216,v[r+96>>2]=0,De(r),r}function we(r,n,e,f,i){var t=w(0),u=w(0),o=w(0),a=0,c=w(0);f=v[f+12>>2]+(i<<2)|0,n=v[n+12>>2]+(e<<2)|0,u=p[n+12>>2],o=p[n+8>>2],t=Or(w(u-p[n+4>>2]),w(o-p[n>>2])),p[f+8>>2]=t,a=f,c=w(u+w(r*Ur(t))),p[a+4>>2]=c,a=f,c=w(o+w(r*Wr(t))),p[a>>2]=c}function ge(r,n,e,f,i){r|=0,n|=0,e|=0,f|=0,i=w(i);var t,u=0;V=t=V-32|0,n=((u=v[r+4>>2])>>1)+n|0,r=v[r>>2],r=1&u?v[v[n>>2]+r>>2]:r,u=n,n=$e(t+20|0,e+4|0,v[e>>2],0),e=$e(t+8|0,f+4|0,v[f>>2],0),Ta[0|r](u,n,e,i),gi(e),gi(n),V=t+32|0}function Fe(r){var n=0,e=0;for(n=v[r+4>>2];n&&(e=v[n>>2],Fe(n),ar(n),n=e););return(n=v[r+16>>2])&&(e=v[5280],Ta[v[v[e>>2]+20>>2]](e,n,8590,164)),(n=v[r+28>>2])&&(e=v[5280],Ta[v[v[e>>2]+20>>2]](e,n,8590,168)),r}function Ae(r,n){return v[r>>2]=10800,Ue(r+4|0,n),v[r+32>>2]=0,v[r+24>>2]=0,v[r+28>>2]=0,v[r+20>>2]=10816,v[r+16>>2]=10784,v[r- -64>>2]=0,v[r+56>>2]=0,v[r+60>>2]=0,v[r+52>>2]=10848,v[r+48>>2]=0,v[r+40>>2]=0,v[r+44>>2]=0,v[r+36>>2]=9676,r}function Te(r,n){return r=wt(r,n),v[r+36>>2]=8776,v[r+20>>2]=10768,v[r>>2]=11160,v[r+40>>2]=0,v[r+44>>2]=0,v[r+32>>2]=0,v[r+24>>2]=0,v[r+28>>2]=0,v[r+48>>2]=0,v[r+52>>2]=0,v[r+56>>2]=r,n=v[5366],v[5366]=n+1,v[r+60>>2]=n<<11&134215680,r}function $e(r,n,e,f){return v[r>>2]=10896,n?(v[r+4>>2]=e,f?(v[r+8>>2]=n,r):(f=v[5280],e=0|Ta[v[v[f>>2]+12>>2]](f,e+1|0,8590,48),v[r+8>>2]=e,i[e+v[r+4>>2]|0]=0,Ri(v[r+8>>2],n,v[r+4>>2]),r)):(v[r+4>>2]=0,v[r+8>>2]=0,r)}function Ie(r,n,e){var f=0,i=0,t=0;if(!e)return 0;r:if(f=l[0|r]){for(;;){if(!((0|(i=l[0|n]))!=(0|f)|!i)&&(e=e-1|0)){if(n=n+1|0,f=l[r+1|0],r=r+1|0,f)continue;break r}break}t=f}return(255&t)-l[0|n]|0}function Ce(r,n,e,f){if(r|=0,n|=0,e=w(e),f|=0,p[v[r+16>>2]+(n<<2)>>2]=e,r=v[r+32>>2]+(n<<4)|0,v[r+4>>2]=0,n=0,ya(r,v[f+4>>2]+v[r+4>>2]|0),v[f+4>>2])for(;Un(r,v[f+12>>2]+(n<<2)|0),(n=n+1|0)>>>0>2];);}function Pe(r,n){var e,f,i,t,u,o=0;return o=(e=v[r+4>>2])+(f=v[n+4>>2])|0,v[r+4>>2]=o,u=v[n+8>>2],i=v[5280],t=v[r+8>>2],o=0|Ta[v[v[i>>2]+16>>2]](i,t,o+1|0,8590,150),v[r+8>>2]=o,Ri(o+e|0,(0|u)==(0|t)?o:v[n+8>>2],f+1|0),r}function Ee(r,n,e,f){var i=w(0),t=w(0),u=w(0),o=0,a=w(0);n=v[n+12>>2],t=p[n+4>>2],e=v[e+12>>2]+(f<<2)|0,u=p[n>>2],i=Or(w(p[n+12>>2]-t),w(p[n+8>>2]-u)),p[e+8>>2]=i,o=e,a=w(t+w(r*Ur(i))),p[o+4>>2]=a,o=e,a=w(u+w(r*Wr(i))),p[o>>2]=a}function Oe(r,n,e,f){n|=0,e|=0,f|=0;var i,t=0;V=i=V-32|0,n=((t=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&t?v[v[n>>2]+r>>2]:r,t=n,n=$e(i+20|0,e+4|0,v[e>>2],0),e=$e(i+8|0,f+4|0,v[f>>2],0),Ta[0|r](t,n,e),gi(e),gi(n),V=i+32|0}function Re(r){var n=0;r:{n:if(n=En(r,4381)){if(r=v[n+16>>2])return!uf(r,5008);r=1;e:switch(v[n+8>>2]){case 0:case 2:return 0;case 1:break r;case 3:break e;default:break n}return p[n+24>>2]!=w(0)}r=0}return r}function Se(r,n,e){var f=0,i=0,t=0,u=0,o=0;if(f=(v[r+4>>2]/(0|e)|0)-2|0){for(o=v[r+12>>2],r=0,i=f;i=(r=(u=p[(m(i=1+(t=i>>>1|0)|0,e)<<2)+o>>2]<=n)?i:r)+(f=u?f:t)|0,(0|r)!=(0|f););e=m(r+1|0,e)}return e}function We(r){var n,e=0;return v[64+(r|=0)>>2]=9836,v[r>>2]=9812,gi(r+168|0),Ao(r+152|0),Ao(r+136|0),To(r+120|0),To(r+104|0),v[r+64>>2]=8728,(n=v[r+72>>2])&&(e=v[r+68>>2])&&Ta[0|n](e),0|st(r)}function Ge(r,n,e,f,i,t,u,o,a,c){r|=0,n|=0,e=w(e),f=w(f),i=w(i),t=w(t),u=w(u),o=w(o),a=w(a),c=w(c),r=v[r+32>>2]+(n<<5)|0,p[r>>2]=e,p[r+4>>2]=f,p[r+8>>2]=i,p[r+12>>2]=t,p[r+16>>2]=u,p[r+20>>2]=o,p[r+24>>2]=a,p[r+28>>2]=c}function Ue(r,n){var e=0;return v[r>>2]=10896,v[n+8>>2]?(v[r+4>>2]=v[n+4>>2],e=v[5280],e=0|Ta[v[v[e>>2]+12>>2]](e,v[n+4>>2]+1|0,8590,67),v[r+8>>2]=e,Ri(e,v[n+8>>2],v[n+4>>2]+1|0),r):(v[r+4>>2]=0,v[r+8>>2]=0,r)}function je(r,n,e,f){var i,t,u,o,a=0,c=0;return o=m(a=e>>>16|0,c=r>>>16|0),a=(65535&(c=((u=m(i=65535&e,t=65535&r))>>>16|0)+m(c,i)|0))+m(a,t)|0,Z=(m(n,e)+o|0)+m(r,f)+(c>>>16)+(a>>>16)|0,65535&u|a<<16}function He(r,n){var e,f=0,i=0,t=0,u=0;if(!(f=v[r+4>>2]-2|0))return 1;for(e=v[r+12>>2],r=0,i=f;i=(r=(u=p[((i=1+(t=i>>>1|0)|0)<<2)+e>>2]<=n)?i:r)+(f=u?f:t)|0,(0|r)!=(0|f););return r+1|0}function Le(r,n){var e=0;if(v[r>>2]=0,v[r+4>>2]=0,v[r+24>>2]=0,v[r+28>>2]=0,v[r+16>>2]=0,v[r+20>>2]=0,v[r+8>>2]=0,v[r+12>>2]=0,n){for(;n=(e=n)+1|0,(l[0|e]-1&255)>>>0<32;);ur(r,e)}return r}function Me(r){var n,e,f,i,t;return v[(r|=0)>>2]=10216,Rn(n=r+8|0),Rn(e=r+24|0),Rn(f=r+56|0),Rn(i=r+72|0),Rn(t=r+88|0),go(r+120|0),Su(r+104|0),Wu(t),Gu(i),Hu(f),ro(r+40|0),ro(e),go(n),0|r}function _e(r,n){var e,f;return V=e=V-16|0,r=df(r,n),v[r+20>>2]=8776,v[r>>2]=11052,v[r+24>>2]=0,v[r+28>>2]=0,v[r+32>>2]=0,v[r+36>>2]=0,ya(f=r+20|0,n=m(n,3)),v[e+12>>2]=0,wn(f,n,e+12|0),V=e+16|0,r}function ze(r,n,e,f){n|=0,e|=0,f|=0;var i,t=0;return V=i=V-16|0,n=((t=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&t?v[v[n>>2]+r>>2]:r,t=n,n=$e(i+4|0,f+4|0,v[f>>2],0),r=0|Ta[0|r](t,e,n),gi(n),V=i+16|0,0|r}function xe(r,n){var e,f=0,i=0;if(V=e=V-16|0,d[r+44>>2]<=n>>>0)for(f=r+40|0;v[e+12>>2]=0,Un(f,e+12|0),d[r+44>>2]<=n>>>0;);else i=v[v[r+52>>2]+(n<<2)>>2];return V=e+16|0,i}function Je(r,n){var e,f;return V=e=V-16|0,r=df(r,n),v[r+20>>2]=8776,v[r>>2]=11100,v[r+24>>2]=0,v[r+28>>2]=0,v[r+32>>2]=0,v[r+36>>2]=0,ya(f=r+20|0,n<<=3),v[e+12>>2]=0,wn(f,n,e+12|0),V=e+16|0,r}function Ke(r,n,e){var f;if(f=En(r,4946)){if(v[f+8>>2]==v[2430]&&!uf(v[f+16>>2],6299))return void yt(n,e);xr(n,e,Lt(r,4946,w(0)),Lt(r,6961,w(0)),Lt(r,6943,w(1)),Lt(r,6931,w(1)))}}function Be(r,n,e){n|=0,e|=0;var f,i=0;return V=f=V-16|0,n=((i=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&i?v[v[n>>2]+r>>2]:r,i=n,n=$e(f+4|0,e+4|0,v[e>>2],0),r=0|Ta[0|r](i,n),gi(n),V=f+16|0,0|r}function Ne(r){var n,e,f=0;if(f=v[72+(r|=0)>>2],e=l[f+28|0],i[f+28|0]=1,n=v[r+44>>2]){for(f=0;Yn(r,f),(0|n)!=(0|(f=f+1|0)););f=v[r+72>>2]}v[r+44>>2]=0,i[f+28|0]=e,mr(f)}function qe(r,n){n|=0;var e=0,f=0;r:{n:if(v[88+(r|=0)>>2]){for(;;){if(!ei(Yo(f=v[v[r+96>>2]+(e<<2)>>2]),n)){if((e=e+1|0)>>>0>2])continue;break n}break}break r}f=0}return 0|f}function De(r){var n;n=v[4+(r|=0)>>2],p[r+32>>2]=p[n+28>>2],p[r+36>>2]=p[n+32>>2],p[r+40>>2]=p[n+36>>2],p[r+44>>2]=p[n+40>>2],p[r+48>>2]=p[n+44>>2],p[r+52>>2]=p[n+48>>2],p[r+56>>2]=p[n+52>>2]}function Ve(r,n,e,f){n|=0,e|=0,f|=0;var i,t=0;V=i=V-16|0,n=((t=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&t?v[v[n>>2]+r>>2]:r,t=n,n=$e(i+4|0,f+4|0,v[f>>2],0),Ta[0|r](t,e,n),gi(n),V=i+16|0}function Ze(r,n){return v[r+8>>2]=0,v[r+12>>2]=0,v[r+4>>2]=9e3,v[r>>2]=8984,Ue(r+16|0,n),Tt(r+28|0),v[r+64>>2]=0,v[r+56>>2]=1,v[r+60>>2]=0,v[r+48>>2]=1,v[r+52>>2]=1,v[r+40>>2]=6,v[r+44>>2]=1,r}function Ye(){var r,n=0;V=r=V-16|0,l[20896]||(v[5221]=0,v[5222]=0,v[5220]=1048,v[5223]=0,i[20896]=1),l[20948]||(qr(20900,n=ht(r+4|0,6893,0),20880,w(0)),gi(n),i[20948]=1),V=r+16|0}function Xe(r){var n,e=0;return v[4+(r|=0)>>2]=8648,v[r>>2]=8632,To(r+148|0),lo(r+132|0),oo(r+116|0),v[r+4>>2]=8728,(n=v[r+12>>2])&&(e=v[r+8>>2])&&Ta[0|n](e),0|r}function Qe(r,n){return r=at(r,n),v[r+24>>2]=9676,v[r>>2]=9656,v[r+52>>2]=1065353216,v[r+56>>2]=0,i[r+50|0]=0,s[r+48>>1]=0,v[r+44>>2]=1,v[r+28>>2]=0,v[r+32>>2]=0,v[r+36>>2]=0,v[r+40>>2]=0,r}function rf(r,n,e,f){var i;return V=i=V-16|0,r=df(r,n),v[r+20>>2]=8776,v[r>>2]=f,v[r+24>>2]=0,v[r+28>>2]=0,v[r+32>>2]=0,v[r+36>>2]=0,v[i+12>>2]=0,wn(r+20|0,m(n,e),i+12|0),V=i+16|0,r}function nf(r,n){n|=0;var e,f=0;if(e=v[24+(r|=0)>>2])for(;;){if(ei(v[v[r+32>>2]+(f<<2)>>2]+8|0,n))return v[v[r+32>>2]+(f<<2)>>2];if((0|e)==(0|(f=f+1|0)))break}return 0}function ef(r,n){var e;return V=e=V-16|0,r=df(r,n),v[r+24>>2]=8776,v[r+20>>2]=0,v[r>>2]=9344,v[r+36>>2]=0,v[r+28>>2]=0,v[r+32>>2]=0,v[e+12>>2]=0,wn(r+24|0,m(n,5),e+12|0),V=e+16|0,r}function ff(r,n){var e;return V=e=V-16|0,r=df(r,n),v[r+24>>2]=8776,v[r+20>>2]=0,v[r>>2]=10132,v[r+36>>2]=0,v[r+28>>2]=0,v[r+32>>2]=0,v[e+12>>2]=0,wn(r+24|0,n<<1,e+12|0),V=e+16|0,r}function tf(r,n){var e;return V=e=V-16|0,r=df(r,n),v[r+20>>2]=8776,v[r>>2]=9996,v[r+24>>2]=0,v[r+28>>2]=0,v[r+32>>2]=0,v[r+36>>2]=0,v[e+12>>2]=0,wn(r+20|0,n<<1,e+12|0),V=e+16|0,r}function uf(r,n){var e=0,f=0;r:if(!(!(e=l[0|r])|(0|(f=l[0|n]))!=(0|e)))for(;;){if(f=l[n+1|0],!(e=l[r+1|0]))break r;if(n=n+1|0,r=r+1|0,(0|e)!=(0|f))break}return e-f|0}function of(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i=w(i),t|=0,u|=0,o|=0,r=v[r+32>>2]+m(n,24)|0,p[r>>2]=e,p[r+4>>2]=f,p[r+8>>2]=i,p[r+12>>2]=0|t,p[r+16>>2]=u>>>0,p[r+20>>2]=o>>>0}function af(r,n){var e=0,f=0;r:if(v[r+4>>2]){for(;;){if(f=v[v[r+12>>2]+(e<<2)>>2],!ei(Qo(v[f+4>>2]),n)){if((e=e+1|0)>>>0>2])continue;break r}break}return f}return 0}function cf(r,n,e){n|=0,e|=0;var f,i=0;V=f=V-16|0,n=((i=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&i?v[v[n>>2]+r>>2]:r,i=n,n=$e(f+4|0,e+4|0,v[e>>2],0),Ta[0|r](i,n),gi(n),V=f+16|0}function bf(r,n){n|=0;var e=0;return e=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(e=v[e+v[n>>2]>>2]),e=0|Ta[0|e](n),n=X((r=v[e+4>>2])+4|0),v[n>>2]=r,Ri(n+4|0,v[e+8>>2],r),0|n}function kf(r){var n,e=0,f=0;if(n=v[r+4>>2])for(;e=v[v[r+12>>2]+(f<<2)>>2],l[e+117|0]&&(l[e+116|0]&&kf(e+16|0),i[e+116|0]=0),(0|n)!=(0|(f=f+1|0)););}function sf(r,n,e){return v[r+36>>2]=0,v[r+32>>2]=0,v[r+24>>2]=0,v[r+28>>2]=0,v[r+20>>2]=9048,v[r+16>>2]=0,v[r+8>>2]=0,v[r+12>>2]=0,v[r+4>>2]=9032,v[r>>2]=8904,tr(r,n,e,8590,0),r}function vf(r){r|=0;var n=0,e=w(0);return n=r,e=Au(p[r+4>>2]),p[n+4>>2]=e,n=r,e=Au(p[r+8>>2]),p[n+8>>2]=e,n=r,e=Au(p[r+12>>2]),p[n+12>>2]=e,n=r,e=Au(p[r+16>>2]),p[n+16>>2]=e,0|r}function lf(r,n,e,f){var i;return r|=0,n|=0,e|=0,f|=0,V=i=V-32|0,v[i+28>>2]=n,n=$e(i+16|0,e+4|0,v[e>>2],0),v[i+12>>2]=f,r=0|Ta[0|r](i+28|0,n,i+12|0),gi(n),V=i+32|0,0|r}function hf(r){var n,e=0;return v[(r|=0)>>2]=10312,Rn(n=r+8|0),v[r+12>>2]=0,l[r+40|0]&&(e=v[r+4>>2])&&Ta[v[v[e>>2]+4>>2]](e),gi(r+24|0),eo(n),0|r}function df(r,n){var e;return V=e=V-16|0,r=jo(r),v[r+4>>2]=8776,v[r>>2]=9408,v[r+16>>2]=0,v[r+8>>2]=0,v[r+12>>2]=0,v[e+12>>2]=0,wn(r+4|0,m(n,19)-19|0,e+12|0),V=e+16|0,r}function pf(r,n){var e=0,f=0;r:if(v[r+4>>2]){for(;;){if(!ei(na(f=v[v[r+12>>2]+(e<<2)>>2]),n)){if((e=e+1|0)>>>0>2])continue;break r}break}return f}return 0}function yf(r,n){var e=0,f=0;r:if(v[r+4>>2]){for(;;){if(!ei(Qo(f=v[v[r+12>>2]+(e<<2)>>2]),n)){if((e=e+1|0)>>>0>2])continue;break r}break}return f}return 0}function mf(r,n,e,f){var i,t;n|=0,e|=0,f|=0,V=i=V-16|0,n=((t=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&t?v[v[n>>2]+r>>2]:r,v[i+12>>2]=f,Ta[0|r](n,e,i+12|0),V=i+16|0}function wf(r,n){var e,f,i;V=e=V-16|0,n=(f=+G(v[n>>2],21520,e+12|0))<4294967296&f>=0?~~f>>>0:0,i=v[e+12>>2],$e(r,n+4|0,v[n>>2],0),W(0|i),V=e+16|0}function gf(r,n,e,f,i,t,u,o){r|=0,n|=0,e|=0,f=w(f),i=w(i),t=w(t),u=w(u),o=w(o);var a=0;a=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(a=v[a+v[n>>2]>>2]),Ta[0|a](n,e,f,i,t,u,o)}function Ff(r){var n,e;return(r=(n=v[5198])+(e=r+7&-8)|0)>>>0<=n>>>0&&e||r>>>0>$a()<<16>>>0&&!(0|x(0|r))?(v[5446]=48,-1):(v[5198]=r,n)}function Af(r){var n=0,e=0;if(v[(r|=0)>>2]=17084,n=v[r+4>>2])for(;e=v[n+28>>2],Ta[v[v[n>>2]+4>>2]](n),n=e;);return v[r+4>>2]=0,v[r+8>>2]=0,0|r}function Tf(r){var n=0,e=0,f=0,i=0,t=0;if(n=10,f=1,r)for(;f=je((e=1&r)?n:1,e?i:0,f,t),t=Z,e=r>>>0>1,n=je(n,i,n,i),i=Z,r=r>>>1|0,e;);return Z=t,f}function $f(r){var n=0,e=0;return(n=jn(r,1))?(e=v[5280],e=0|Ta[v[v[e>>2]+8>>2]](e,n,8590,373),n=n-1|0,e=Ri(e,v[r+4>>2],n),v[r+4>>2]=n+v[r+4>>2],i[n+e|0]=0,e):0}function If(r,n){var e,f=0,i=0;if(V=e=V-16|0,f=v[n+20>>2])for(;i=v[r+72>>2],lt(e,3,f,0),Zr(i+4|0,e),f=v[f+20>>2];);v[n+20>>2]=0,V=e+16|0}function Cf(r){var n=0,e=0;if(v[(r|=0)>>2]=8600,n=v[r+4>>2])for(;e=v[n+12>>2],Ta[v[v[n>>2]+4>>2]](n),n=e;);return v[r+4>>2]=0,v[r+8>>2]=0,0|r}function Pf(r,n){n|=0;var e=0;e=0;r:if(r=v[24+(r|=0)>>2]){for(;;){if(e=r,v[r+4>>2]==(0|n))break r;if(!(r=v[r+12>>2]))break}e=0}return 0|!!(0|e)}function Ef(r,n,e){n|=0,e|=0;var f=0;if(!(f=v[136+(r|=0)>>2])||!(f=Pt(f,n,e))){if(!v[v[r+4>>2]+64>>2])return 0;f=Pt(v[v[r+4>>2]+64>>2],n,e)}return 0|f}function Of(r,n){var e;n|=0,!(e=v[224+(r|=0)>>2])|v[e+64>>2]!=v[n+4>>2]||(v[r+224>>2]=0,v[r+228>>2]=0,v[r+196>>2]=0,v[r+164>>2]=0,v[r+180>>2]=0,v[r+132>>2]=0)}function Rf(r,n){var e=0,f=0;(0|(e=v[r+8>>2]))!=(0|n)&&(e&&(f=v[5280],Ta[v[v[f>>2]+20>>2]](f,e,8590,86)),n?e=ee(n):(n=0,e=0),v[r+8>>2]=n,v[r+4>>2]=e)}function Sf(r,n){var e,f;return n|=0,V=e=V-16|0,f=e+4|0,Ta[v[(r|=0)>>2]](f,n),n=X((r=v[e+8>>2])+4|0),v[n>>2]=r,Ri(n+4|0,v[e+12>>2],r),gi(f),V=e+16|0,0|n}function Wf(r){var n,e=0;return v[(r|=0)>>2]=10664,Rn(n=r+8|0),l[r+28|0]&&(e=v[r+4>>2])&&Ta[v[v[e>>2]+4>>2]](e),gi(r+32|0),eo(n),0|r}function Gf(r,n){var e=0;return(e=v[r+8>>2])?(n=e-1|0,e=v[v[r+16>>2]+(n<<2)>>2],v[r+8>>2]=n,e):(r=ut(16),v[r+12>>2]=0,v[r+4>>2]=0,v[r+8>>2]=0,v[r>>2]=n,r)}function Uf(r,n){var e,f=0;if(e=v[r+4>>2])for(;;){if(ei(Qo(v[v[v[r+12>>2]+(f<<2)>>2]+4>>2]),n))return f;if((0|e)==(0|(f=f+1|0)))break}return-1}function jf(r,n,e,f){var i;r|=0,n|=0,e|=0,f=w(f),V=i=V-16|0,n=qe(v[r+4>>2],n),e=qe(v[r+4>>2],e),p[i+12>>2]=f,_t(i,n,e),Pn(r+12|0,i,i+12|0),V=i+16|0}function Hf(r,n){var e=0;if(v[r>>2]=n,n=v[r+4>>2])for(;e=v[n+20>>2],Ta[v[v[n>>2]+4>>2]](n),n=e;);return v[r+4>>2]=0,v[r+8>>2]=0,r}function Lf(r,n,e,f,i,t,u){r|=0,n|=0,e=w(e),f=w(f),i=w(i),t=w(t),u=w(u),r=v[r+32>>2]+m(n,20)|0,p[r>>2]=e,p[r+16>>2]=u,p[r+12>>2]=t,p[r+8>>2]=i,p[r+4>>2]=f}function Mf(r,n,e,f,i,t,u){r|=0,n|=0,e=w(e),f=w(f),i=w(i),t=w(t),u=w(u),r=v[r+36>>2]+m(n,20)|0,p[r>>2]=e,p[r+16>>2]=u,p[r+12>>2]=t,p[r+8>>2]=i,p[r+4>>2]=f}function _f(r){var n,e;return v[(r|=0)>>2]=11080,Rn(n=r+4|0),Rn(e=r+20|0),bt(r+104|0),ct(r+84|0),oo(r+68|0),Ku(r+52|0),oo(r+36|0),to(e),io(n),0|r}function zf(r){var n,e;return w((e=(n=r*r)*r)*n*n*(2718311493989822e-21*n-.00019839334836096632)+(e*(.008333329385889463*n-.16666666641626524)+r))}function xf(r,n,e){var f=0;for(ue(r,n,e),r=v[e+4>>2],n=v[e>>2];;){if((0|r)==(0|n))return;if(f=l[0|n],n=n+1|0,58==(0|f))break}v[e>>2]=n,qn(e)}function Jf(r,n){var e,f=0;if(e=v[r+4>>2])for(;;){if(ei(Qo(v[v[r+12>>2]+(f<<2)>>2]),n))return f;if((0|e)==(0|(f=f+1|0)))break}return-1}function Kf(r){return w(w(w(w(r*w(w(r*w(-.008656363002955914))+w(-.04274342209100723)))+w(.16666586697101593))*r)/w(w(r*w(-.7066296339035034))+w(1)))}function Bf(r){var n,e=0;return v[(r|=0)>>2]=16984,e=v[r+4>>2],(!(n=v[e>>2])||(ar(n),e=v[r+4>>2]))&&ar(e),gi(r+20|0),gi(r+8|0),0|r}function Nf(r,n,e){var f=0,i=0,t=0;d[r+8>>2]>>0&&(v[r+8>>2]=n,f=v[5280],i=r,t=0|Ta[v[v[f>>2]+16>>2]](f,v[r+12>>2],n<>2]=t)}function qf(r,n,e){var f,i,t;V=f=V-16|0,n=v[n>>2],v[f+8>>2]=v[e>>2],e=r,r=0|_(21543,f+8|0),i=e,t=0|U(0|n,0|r),v[i>>2]=t,E(0|r),V=f+16|0}function Df(r,n){var e=0;if(ya(r,v[n+4>>2]+v[r+4>>2]|0),v[n+4>>2])for(;Gn(r,v[n+12>>2]+(e<<2)|0),(e=e+1|0)>>>0>2];);}function Vf(r,n){var e=0;if(ya(r,v[n+4>>2]+v[r+4>>2]|0),v[n+4>>2])for(;Wn(r,v[n+12>>2]+(e<<2)|0),(e=e+1|0)>>>0>2];);}function Zf(r){var n=0,e=0;return n=0,(e=r>>>23&255)>>>0<127||(n=2,e>>>0>150||(n=0,(e=1<<150-e)-1&r||(n=r&e?1:2))),n}function Yf(r,n){var e=0,f=0,i=0;d[r+8>>2]>>0&&(v[r+8>>2]=n,e=v[5280],f=r,i=0|Ta[v[v[e>>2]+16>>2]](e,v[r+12>>2],n,8590,101),v[f+12>>2]=i)}function Xf(r,n){return r=Te(r,n),v[r+64>>2]=8776,v[r>>2]=9868,v[r+68>>2]=0,v[r+72>>2]=0,s[r+74>>1]=0,s[r+76>>1]=0,s[r+78>>1]=0,s[r+80>>1]=0,r}function Qf(r,n){var e,f=0;V=e=V-16|0,l[n+116|0]||((f=v[n+12>>2])&&Qf(r,f),i[n+116|0]=1,v[e+12>>2]=n,Un(r+104|0,e+12|0)),V=e+16|0}function ri(r){var n;return w((r*=r)*(n=r*r)*(2439044879627741e-20*r-.001388676377460993)+.04166662332373906*n+-.499999997251031*r+1)}function ni(r,n,e,f,i){r|=0,n|=0,e|=0,f=w(f),i=w(i);var t=0;t=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(t=v[t+v[n>>2]>>2]),Ta[0|t](n,e,f,i)}function ei(r,n){var e,f;return(0|(e=v[r+8>>2]))==(0|(f=v[n+8>>2]))?1:!(r=!f|!e|v[r+4>>2]!=v[n+4>>2]?1:uf(e,f))}function fi(r,n){var e,f=0;for(f=ee(r)+1|0,e=255&n;n=0,f&&(0|e)!=l[0|(n=(f=f-1|0)+r|0)];);return n}function ii(r,n,e){return v[r+12>>2]=0,v[r+16>>2]=0,p[r+8>>2]=n,v[r+4>>2]=e,v[r>>2]=9524,Tt(r+20|0),v[r+32>>2]=1065353216,v[r+36>>2]=0,r}function ti(r,n,e,f,i){p[f>>2]=p[r+100>>2]+w(w(n*p[r+92>>2])+w(p[r+96>>2]*e)),p[i>>2]=p[r+112>>2]+w(w(n*p[r+104>>2])+w(p[r+108>>2]*e))}function ui(r,n){r|=0,v[24+(n|=0)>>2]=0,Vf(n+20|0,r+20|0),v[n+40>>2]=0,Df(n+36|0,r+36|0),v[n+52>>2]=v[r+52>>2],v[n+56>>2]=v[r+56>>2]}function oi(r,n,e){var f;r|=0,n=w(n),e=w(e),V=f=V-16|0,p[f+12>>2]=n,p[f+8>>2]=e,Ta[v[v[r>>2]+16>>2]](r,f+12|0,f+8|0),V=f+16|0}function ai(r,n,e){var f;return r|=0,n=w(n),e=w(e),V=f=V-16|0,p[f+12>>2]=n,p[f+8>>2]=e,r=0|Ta[0|r](f+12|0,f+8|0),V=f+16|0,0|r}function ci(r,n){return v[r>>2]=9540,Ue(r+4|0,n),v[r+16>>2]=0,v[r+20>>2]=0,Tt(r+24|0),Tt(r+36|0),v[r+48>>2]=1065353216,v[r+52>>2]=0,r}function bi(r,n,e){r|=0,n|=0,e=w(e);var f=0;return f=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),w(w(Ta[0|f](n,e)))}function ki(r,n,e){n|=0,e|=0;var f=0;return f=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),v[Ta[0|f](n,e)>>2]}function si(r,n,e){n|=0,e|=0;var f=0;return f=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),w(w(Ta[0|f](n,e)))}function vi(r,n,e,f){n|=0,e|=0,f|=0;var i=0;i=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(i=v[i+v[n>>2]>>2]),Ta[0|i](n,e,f)}function li(r,n,e){n|=0,e|=0;var f=0;return f=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),0|Ta[0|f](n,e)}function hi(r,n){r|=0,n|=0;var e=w(0);v[r+60>>2]!=(0|n)&&(v[r+60>>2]=n,e=p[v[r+12>>2]+160>>2],v[r+72>>2]=0,p[r+64>>2]=e)}function di(r,n,e){n|=0,e|=0,r=v[12+(r|=0)>>2]+(n<<4)|0,n=v[e+8>>2],v[r+4>>2]=v[e+4>>2],v[r+8>>2]=n,v[r+12>>2]=v[e+12>>2]}function pi(r,n){n|=0;var e=0;return e=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(e=v[e+v[n>>2]>>2]),w(w(Ta[0|e](n)))}function yi(r,n,e){var f;r|=0,n|=0,V=f=V-16|0,e=$e(f+4|0,4+(e|=0)|0,v[e>>2],0),te(v[r>>2]+n|0,e),gi(e),V=f+16|0}function mi(r){v[224+(r|=0)>>2]&&(v[r+224>>2]=0,v[r+228>>2]=0,v[r+196>>2]=0,v[r+164>>2]=0,v[r+180>>2]=0,v[r+132>>2]=0)}function wi(r,n){var e;return r|=0,V=e=V-16|0,n=$e(e+4|0,4+(n|=0)|0,v[n>>2],0),r=0|Ta[0|r](n),gi(n),V=e+16|0,0|r}function gi(r){var n,e=0;return v[(r|=0)>>2]=10896,(n=v[r+8>>2])&&(e=v[5280],Ta[v[v[e>>2]+20>>2]](e,n,8590,187)),0|r}function Fi(r,n,e,f){var i;n|=0,e|=0,f|=0,V=i=V-16|0,r=v[(r|=0)>>2],v[i+12>>2]=f,Ta[0|r](n,e,i+12|0),V=i+16|0}function Ai(r,n,e){r|=0,n|=0,e=w(e);var f=0;f=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),Ta[0|f](n,e)}function Ti(r,n){var e=0;return v[r+4>>2]=0,v[r>>2]=n,(n=v[r+12>>2])&&(e=v[5280],Ta[v[v[e>>2]+20>>2]](e,n,8590,219)),r}function $i(r,n,e){n|=0,e|=0;var f=0;f=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),Ta[0|f](n,e)}function Ii(r,n){var e;return n|=0,e=v[(r|=0)>>2]+n|0,n=X((r=v[e+4>>2])+4|0),v[n>>2]=r,Ri(n+4|0,v[e+8>>2],r),0|n}function Ci(r,n){n|=0;var e=0;return e=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(e=v[e+v[n>>2]>>2]),0|Ta[0|e](n)}function Pi(r,n,e,f){var i;V=i=V-16|0,te(r+32|0,Pe(r=Ue(i+4|0,e),f)),gi(r),n&&ar(Fe(n)),V=i+16|0}function Ei(r,n,e){var f;return r|=0,n=w(n),e|=0,V=f=V-16|0,p[f+12>>2]=n,r=0|Ta[0|r](f+12|0,e),V=f+16|0,0|r}function Oi(r){var n,e;return n=Wt(32),e=v[r+4>>2],Zn(n,v[e+8>>2],v[e+4>>2],v[e+12>>2],r+20|0),te(n+8|0,r+8|0),n}function Ri(r,n,e){var f=0;if(e)for(f=r;i[0|f]=l[0|n],f=f+1|0,n=n+1|0,e=e-1|0;);return r}function Si(r,n){var e=0;for(n=v[n+4>>2];(e=uf(v[r+4>>2],n))&&(r=v[r+8>>2]););return!e}function Wi(r,n,e,f,i){r|=0,n|=0,e=w(e),f=w(f),i=w(i),r=v[r+32>>2]+m(n,12)|0,p[r>>2]=e,p[r+8>>2]=i,p[r+4>>2]=f}function Gi(r,n){return ei(v[r+4>>2]+36|0,v[n+4>>2]+36|0)?ei(v[r+8>>2]+36|0,v[n+8>>2]+36|0):0}function Ui(r,n,e,f,t,u){return v[r+4>>2]=n,v[r>>2]=9740,Ue(r+8|0,e),v[r+20>>2]=f,Ue(r+24|0,t),i[r+36|0]=u,r}function ji(r,n){n|=0;var e=0;e=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(e=v[e+v[n>>2]>>2]),Ta[0|e](n)}function Hi(r,n){var e;return r|=0,n|=0,V=e=V-16|0,v[e+12>>2]=n,r=0|Ta[0|r](e+12|0),V=e+16|0,0|r}function Li(r,n){return v[r+8>>2]=0,v[r+4>>2]=n,v[r+16>>2]=0,v[r+20>>2]=0,v[r+12>>2]=8872,v[r>>2]=8840,r}function Mi(r){br(r|=0,p[r+32>>2],p[r+36>>2],p[r+40>>2],p[r+44>>2],p[r+48>>2],p[r+52>>2],p[r+56>>2])}function _i(r){r&&(v[r+16>>2]=v[r+16>>2]-1,v[r+16>>2]||Ta[v[v[r>>2]+4>>2]](r))}function zi(r,n,e){var f=0;if(e)for(f=r;i[0|f]=n,f=f+1|0,e=e-1|0;);return r}function xi(r,n,e,f){r|=0,n|=0,e=w(e),f|=0,p[v[r+20>>2]+(n<<2)>>2]=e,te(v[r+36>>2]+m(n,12)|0,f)}function Ji(r,n,e,f,i,t,u){t|=0,u|=0,vr(r|=0,n|=0,e|=0,f|=0,v[12+(i|=0)>>2],t,u)}function Ki(r){var n;return v[(r|=0)>>2]=1032,Rn(n=r+4|0),gi(r+36|0),Cf(r+20|0),so(n),0|r}function Bi(r,n){var e;V=e=V-16|0,lt(e,2,n,0),Zr(r+4|0,e),i[v[r+20>>2]+88|0]=1,V=e+16|0}function Ni(r,n,e){n|=0,e|=0,p[(n<<=2)+v[16+(r|=0)>>2]>>2]=p[e+8>>2],v[n+v[r+32>>2]>>2]=e}function qi(r,n,e,f){r|=0,n|=0,e=w(e),f=w(f),r=v[r+32>>2]+(n<<3)|0,p[r>>2]=e,p[r+4>>2]=f}function Di(r,n,e,f){r|=0,n|=0,e=w(e),f=w(f),r=v[r+36>>2]+(n<<3)|0,p[r>>2]=e,p[r+4>>2]=f}function Vi(r,n){return r=wt(r,n),v[r+28>>2]=0,v[r+20>>2]=0,v[r+24>>2]=0,v[r>>2]=10052,r}function Zi(r,n,e,f){p[v[r+36>>2]+(n<<2)>>2]=e,r=v[r+52>>2]+(n<<4)|0,v[r+4>>2]=0,Df(r,f)}function Yi(r){var n;return n=ut(16),v[n+12>>2]=0,v[n+4>>2]=0,v[n+8>>2]=0,v[n>>2]=r,n}function Xi(r){var n;return v[(r|=0)>>2]=9556,Rn(n=r+20|0),Fo(n),To(r+4|0),0|r}function Qi(r,n){var e;e=Wt(4),v[e>>2]=n,$(21651,0|r,2,16232,11312,1655,0|e,0,0)}function rt(r,n){var e;e=Wt(4),v[e>>2]=n,$(1999,0|r,2,13552,11312,1611,0|e,0,0)}function nt(r,n){var e;e=Wt(4),v[e>>2]=n,$(1999,0|r,2,13560,11312,1612,0|e,0,0)}function et(r,n){var e;e=Wt(4),v[e>>2]=n,$(1944,0|r,2,13704,11312,1615,0|e,0,0)}function ft(r,n){var e;e=Wt(4),v[e>>2]=n,$(5364,0|r,3,14472,13224,1623,0|e,0,0)}function it(r,n){return r=at(r,n),v[r+24>>2]=9676,v[r>>2]=10976,zi(r+28|0,0,58),r}function tt(r,n){return r=at(r,n),v[r+24>>2]=9676,v[r>>2]=9928,zi(r+28|0,0,48),r}function ut(r){var n;return n=v[5280],0|Ta[v[v[n>>2]+12>>2]](n,r,8590,40)}function ot(r){var n;return(-1>>>(n=31&r)&-2)<>>r}function at(r,n){return v[r>>2]=9388,Ue(r+4|0,n),i[r+20|0]=0,v[r+16>>2]=0,r}function ct(r){var n;return v[(r|=0)>>2]=10488,Rn(n=r+4|0),io(n),0|r}function bt(r){var n;return v[(r|=0)>>2]=10504,Rn(n=r+4|0),to(n),0|r}function kt(r){var n;return v[(r|=0)>>2]=8808,Rn(n=r+4|0),lo(n),0|r}function st(r){return v[(r|=0)>>2]=11160,To(r+36|0),Ou(r+20|0),0|Bt(r)}function vt(r,n,e){return r|=0,n=w(n),e=w(e),p[r+4>>2]=e,p[r>>2]=n,0|r}function lt(r,n,e,f){v[r+12>>2]=f,v[r+8>>2]=e,v[r+4>>2]=n,v[r>>2]=8664}function ht(r,n,e){return $e(r,n,n?ee(n):0,e)}function dt(r,n,e){n|=0,e|=0,v[v[12+(r|=0)>>2]+(n<<2)>>2]=v[e>>2]}function pt(r){var n;n=v[5280],Ta[v[v[n>>2]+20>>2]](n,r,8590,62)}function yt(r,n){n|=0,v[v[16+(r|=0)>>2]+m(n,76)>>2]=1065353216}function mt(r,n){return v[r>>2]=9136,v[r+4>>2]=n,v[r>>2]=9064,r}function wt(r,n){return v[r>>2]=9112,Ue(r+4|0,n),v[r+16>>2]=0,r}function gt(r,n,e,f){n|=0,e|=0,f|=0,Ta[v[(r|=0)>>2]](n,e,f)}function Ft(r){var n;return p[12+(n=V-16|0)>>2]=r,p[n+12>>2]}function At(r){return v[4+(0|Ta[v[v[(r|=0)>>2]+8>>2]](r))>>2]}function Tt(r){return v[r+4>>2]=0,v[r+8>>2]=0,v[r>>2]=10896,r}function $t(r,n){return r=Te(r,n),v[r+64>>2]=0,v[r>>2]=9316,r}function It(r,n,e,f){sr(16+(r|=0)|0,n|=0,e|=0,f|=0)}function Ct(r){return v[4+(0|Ta[v[v[(r|=0)>>2]>>2]](r))>>2]}function Pt(r,n,e){return 0|Xn(16+(r|=0)|0,n|=0,e|=0)}function Et(r){return v[(r|=0)>>2]=11052,To(r+20|0),0|Kt(r)}function Ot(r,n){return r=mt(r,n),v[r+8>>2]=n,v[r>>2]=17e3,r}function Rt(r){return v[(r|=0)>>2]=9996,To(r+20|0),0|Kt(r)}function St(r,n,e){return n|=0,e|=0,0|Ta[0|(r|=0)](n,e)}function Wt(r){return(r=X(r>>>0<=1?1:r))||(L(),c()),r}function Gt(r,n,e){return(r=En(r,n))&&(e=v[r+20>>2]),e}function Ut(r,n){var e;e=tf(r,n),v[e>>2]=10024}function jt(r,n,e){v[r+8>>2]=e,v[r+4>>2]=n,v[r>>2]=10076}function Ht(r,n,e){return(r=En(r,n))&&(e=v[r+16>>2]),e}function Lt(r,n,e){return(r=En(r,n))&&(e=p[r+24>>2]),e}function Mt(r,n){return n|=0,v[12+(r|=0)>>2]+(n<<4)|0}function _t(r,n,e){v[r+8>>2]=e,v[r+4>>2]=n,v[r>>2]=8856}function zt(r,n,e){r|=0,n|=0,e=w(e),p[v[r>>2]+n>>2]=e}function xt(r,n){return n|=0,v[12+(r|=0)>>2]+(n<<2)|0}function Jt(r,n){r|=0,n=w(n),p[r+160>>2]=p[r+160>>2]+n}function Kt(r){return v[(r|=0)>>2]=9408,To(r+4|0),0|r}function Bt(r){return v[(r|=0)>>2]=9112,gi(r+4|0),0|r}function Nt(r,n){v[r+8>>2]=0,v[r+4>>2]=n,v[r>>2]=10076}function qt(r,n){return n|=0,w(p[v[(r|=0)>>2]+n>>2])}function Dt(r){return v[(r|=0)>>2]=9388,gi(r+4|0),0|r}function Vt(r){return v[(r|=0)>>2]=8680,ao(r+4|0),0|r}function Zt(r,n,e){n|=0,e|=0,v[v[(r|=0)>>2]+n>>2]=e}function Yt(r,n,e){n|=0,e|=0,i[v[(r|=0)>>2]+n|0]=e}function Xt(r,n){v[r+4>>2]=0,v[r+8>>2]=0,v[r>>2]=n+20}function Qt(r,n){return n|=0,0|Ta[v[(r|=0)>>2]](n)}function ru(r){(r|=0)&&Ta[v[v[r>>2]+16>>2]](r)}function nu(r){return r?31-F(r-1^r)|0:32}function eu(r,n){return 0|pf(100+(r|=0)|0,n|=0)}function fu(r,n){return 0|pf(116+(r|=0)|0,n|=0)}function iu(r,n){return 0|pf(132+(r|=0)|0,n|=0)}function tu(r){return rw(0)?w(1):w(0)}function uu(r,n){return n|=0,v[v[(r|=0)>>2]+n>>2]}function ou(r,n){return n|=0,l[v[(r|=0)>>2]+n|0]}function au(r,n){return 0|Jf(32+(r|=0)|0,n|=0)}function cu(r,n){return 0|pf(48+(r|=0)|0,n|=0)}function bu(r,n){n|=0,jr(r|=0,cu(v[r+4>>2],n))}function ku(r,n){return 0|af(24+(r|=0)|0,n|=0)}function su(r,n){return 0|yf(32+(r|=0)|0,n|=0)}function vu(r,n){return 0|Jf(16+(r|=0)|0,n|=0)}function lu(r){(r|=0)&&Ta[v[v[r>>2]+4>>2]](r)}function hu(r,n){return 0|pf(68+(r|=0)|0,n|=0)}function du(r,n){return 0|yf(16+(r|=0)|0,n|=0)}function pu(r,n){return r=_e(r,n),v[r>>2]=10160,r}function yu(r,n){return r=_e(r,n),v[r>>2]=10188,r}function mu(r){return 16777216+(r<<1)>>>0<16777217}function wu(r,n){return 0|af(8+(r|=0)|0,n|=0)}function gu(r,n){return r=Te(r,n),v[r>>2]=9292,r}function Fu(r,n){return!uf(v[r+4>>2],v[n+4>>2])}function Au(r){return rw(1)?w(1):r}function Tu(r,n,e,f){z(0|r,0|n,8,0,0|e,-1,0|f)}function $u(r,n){return gr(r,n,10,-2147483648)}function Iu(r){return v[v[4+(r|=0)>>2]+16>>2]}function Cu(r){return 0!=v[224+(r|=0)>>2]|0}function Pu(r){v[r+4>>2]=v[5571],v[5571]=r}function Eu(r,n){return w(Ft(r?w(-n):n)*n)}function Ou(r){return 0|Ti(r|=0,10768)}function Ru(r,n){n|=0,v[28+(r|=0)>>2]=n}function Su(r){return 0|Ti(r|=0,10296)}function Wu(r){return 0|Ti(r|=0,10280)}function Gu(r){return 0|Ti(r|=0,10264)}function Uu(r){return 0|Ti(r|=0,11260)}function ju(r){return 0|Ti(r|=0,12912)}function Hu(r){return 0|Ti(r|=0,10248)}function Lu(r){return 0|Ti(r|=0,11596)}function Mu(r){return w(p[60+(r|=0)>>2])}function _u(r,n){n|=0,v[36+(r|=0)>>2]=n}function zu(r){return 0|Hf(r|=0,17052)}function xu(r){return 0|Hf(r|=0,17116)}function Ju(r){return 0|Ti(r|=0,10392)}function Ku(r){return 0|Ti(r|=0,10472)}function Bu(r){return 0|Ti(r|=0,10648)}function Nu(r){return 0|Ti(r|=0,10616)}function qu(r){return 0|Ti(r|=0,10600)}function Du(r){return 0|Ti(r|=0,10584)}function Vu(r){return 0|Ti(r|=0,10408)}function Zu(r){return 0|Ti(r|=0,10568)}function Yu(r){return 0|Ti(r|=0,10552)}function Xu(r){return 0|Ti(r|=0,10536)}function Qu(r){return 0|he(r|=0,10816)}function ro(r){return 0|Ti(r|=0,10232)}function no(r){return 0|Ti(r|=0,10848)}function eo(r){return 0|Ti(r|=0,10344)}function fo(r){return 0|he(r|=0,12976)}function io(r){return 0|Ti(r|=0,10440)}function to(r){return 0|Ti(r|=0,10456)}function uo(r){return 0|Ti(r|=0,10632)}function oo(r){return 0|Ti(r|=0,8744)}function ao(r){return 0|he(r|=0,8792)}function co(r){return 32==(0|r)|r-9>>>0<5}function bo(r){return 0|Ti(r|=0,9048)}function ko(r){return 0|Ti(r|=0,9032)}function so(r){return 0|Ti(r|=0,1048)}function vo(r){return 0|Hf(r|=0,8872)}function lo(r){return 0|Ti(r|=0,8760)}function ho(r){return r-65>>>0<26?32|r:r}function po(r){return 0|he(r|=0,9464)}function yo(r){return 0|he(r|=0,9508)}function mo(r){return 0|Ti(r|=0,9676)}function wo(r,n){n|=0,i[44+(r|=0)|0]=n}function go(r){return 0|Ti(r|=0,9260)}function Fo(r){return 0|Ti(r|=0,8824)}function Ao(r){return 0|Ti(r|=0,9852)}function To(r){return 0|Ti(r|=0,8776)}function $o(r){return 0|Ta[0|(r|=0)]()}function Io(r){return v[60+(r|=0)>>2]}function Co(r){v[r+16>>2]=v[r+16>>2]+1}function Po(r){return v[12+(r|=0)>>2]}function Eo(r){return v[24+(r|=0)>>2]}function Oo(r){return v[20+(r|=0)>>2]}function Ro(r){return v[16+(r|=0)>>2]}function So(r,n){return rf(r,n,6,9696)}function Wo(r,n){return rf(r,n,5,11e3)}function Go(r,n){return rf(r,n,3,9952)}function Uo(r){return be(r+16|0),Lu(r)}function jo(r){return v[r>>2]=10912,r}function Ho(r){return v[r>>2]=11128,r}function Lo(r){return l[44+(r|=0)|0]}function Mo(r,n){return xn(r,n,12912)}function _o(r){return v[8+(r|=0)>>2]}function zo(r){return v[4+(r|=0)>>2]}function xo(r,n){return xn(r,n,10392)}function Jo(r){return(r|=0)- -64|0}function Ko(r){return 100+(r|=0)|0}function Bo(r){return 104+(r|=0)|0}function No(r){return 68+(r|=0)|0}function qo(r){return 20+(r|=0)|0}function Do(r){return 40+(r|=0)|0}function Vo(r){return 16+(r|=0)|0}function Zo(r){return 84+(r|=0)|0}function Yo(r){return 36+(r|=0)|0}function Xo(r){return 24+(r|=0)|0}function Qo(r){return 8+(r|=0)|0}function ra(r){(r|=0)&&ar(r)}function na(r){return 4+(r|=0)|0}function ea(r){return Gf(r,8744)}function fa(r){return Gf(r,8776)}function ia(r){Gr(r|=0),ae(r)}function ta(r){return 0|r}function ua(r){pt(st(r|=0))}function oa(r){pt(Et(r|=0))}function aa(r){return r+204|0}function ca(r){return r+140|0}function ba(r,n){v[r+16>>2]=n}function ka(r){return r+144|0}function sa(){}function va(r,n){i[r+20|0]=n}function la(r){return r+44|0}function ha(r){i[r+64|0]=1}function da(r,n){Nf(r,n,4)}function pa(r){pt(r|=0)}function ya(r,n){Nf(r,n,2)}function ma(r,n){Nf(r,n,1)}function wa(r){ar(r|=0)}function ga(){c()}function Fa(){}var Aa,Ta=(Aa=[null,Ki,function(r){Ki(r|=0),pt(r)},so,function(r){pt(so(r|=0))},Cf,function(r){pt(Cf(r|=0))},ta,pa,function(){},function(){so(20880)},function(){Ki(20900)},Xe,function(r){Xe(r|=0),pt(r)},function(r){return 0|Xe((r|=0)-4|0)},function(r){Xe(r=(r|=0)-4|0),pt(r)},pa,Vt,function(r){Vt(r|=0),pt(r)},rn,function(r){rn(r|=0),pt(r)},function(r){return 0|rn((r|=0)-4|0)},function(r){rn(r=(r|=0)-4|0),pt(r)},function(r){var n,e=0;return v[(r|=0)>>2]=8728,(n=v[r+8>>2])&&(e=v[r+4>>2])&&Ta[0|n](e),0|r},function(r){var n,e=0;v[(r|=0)>>2]=8728,(n=v[r+8>>2])&&(e=v[r+4>>2])&&Ta[0|n](e),ar(r)},oo,function(r){pt(oo(r|=0))},lo,function(r){pt(lo(r|=0))},To,function(r){pt(To(r|=0))},ao,function(r){pt(ao(r|=0))},kt,function(r){pt(kt(r|=0))},Fo,function(r){pt(Fo(r|=0))},function(r){return v[(r|=0)>>2]=8840,vo(r+12|0),0|r},function(r){v[(r|=0)>>2]=8840,vo(r+12|0),pt(r)},pa,vo,function(r){pt(vo(r|=0))},function(r){return v[(r|=0)>>2]=8888,0|r},function(r){v[(r|=0)>>2]=8888,pt(r)},ce,function(r){ce(r|=0),pt(r)},function(r){var n,e=0;return v[4+(r|=0)>>2]=9e3,v[r>>2]=8984,gi(r+28|0),gi(r+16|0),v[r+4>>2]=8728,(n=v[r+12>>2])&&(e=v[r+8>>2])&&Ta[0|n](e),0|r},function(r){var n,e=0;v[4+(r|=0)>>2]=9e3,v[r>>2]=8984,gi(r+28|0),gi(r+16|0),v[r+4>>2]=8728,(n=v[r+12>>2])&&(e=v[r+8>>2])&&Ta[0|n](e),pt(r)},function(r){var n,e;return v[(r|=0)>>2]=9e3,v[(n=r-4|0)>>2]=8984,gi(r+24|0),gi(r+12|0),v[r>>2]=8728,(e=v[r+8>>2])&&(r=v[r+4>>2])&&Ta[0|e](r),0|n},function(r){var n,e;v[(r|=0)>>2]=9e3,v[(n=r-4|0)>>2]=8984,gi(r+24|0),gi(r+12|0),v[r>>2]=8728,(e=v[r+8>>2])&&(r=v[r+4>>2])&&Ta[0|e](r),pt(n)},function(r){return v[(r|=0)>>2]=9016,oo(r+96|0),oo(r+80|0),gi(r+8|0),0|r},function(r){v[(r|=0)>>2]=9016,oo(r+96|0),oo(r+80|0),gi(r+8|0),pt(r)},ko,function(r){pt(ko(r|=0))},bo,function(r){pt(bo(r|=0))},Fa,ta,pa,function(){return 20952},function(r,n,e,f){return n|=0,e|=0,f|=0,(r=nf(v[4+(r|=0)>>2],f))?(n=_r(ut(164),e),(f=v[n+28>>2])&&(!(e=v[n+24>>2])|(0|r)==(0|e)||Ta[0|f](e)),v[n+28>>2]=0,v[n+24>>2]=r,Qn(n,p[r+36>>2],p[r+40>>2],p[r+44>>2],p[r+48>>2],l[r+72|0]),p[n+60>>2]=p[r+52>>2],p[n+64>>2]=p[r+56>>2],p[n+68>>2]=v[r+28>>2],p[n+72>>2]=v[r+32>>2],p[n+76>>2]=v[r+60>>2],p[n+80>>2]=v[r+64>>2],0|n):0},function(r,n,e,f){return n|=0,e|=0,f|=0,(n=nf(v[4+(r|=0)>>2],f))?(r=zr(ut(236),e),(f=v[r+72>>2])&&(!(e=v[r+68>>2])|(0|n)==(0|e)||Ta[0|f](e)),v[r+72>>2]=0,v[r+68>>2]=n,p[r+180>>2]=p[n+36>>2],p[r+184>>2]=p[n+40>>2],p[r+188>>2]=p[n+44>>2],p[r+192>>2]=p[n+48>>2],i[r+228|0]=l[n+72|0],v[r+232>>2]=v[n+76>>2],p[r+76>>2]=p[n+52>>2],p[r+80>>2]=p[n+56>>2],p[r+84>>2]=v[n+28>>2],p[r+88>>2]=v[n+32>>2],p[r+92>>2]=v[n+60>>2],p[r+96>>2]=v[n+64>>2],0|r):0},function(r,n,e){return e|=0,0|gu(ut(64),e)},function(r,n,e){return e|=0,0|Xf(ut(84),e)},function(r,n,e){return e|=0,0|Vi(ut(32),e)},function(r,n,e){return e|=0,0|$t(ut(68),e)},sa,Fa,Bt,ga,function(){return 20964},function(){L(),c()},Fa,ga,function(){return 20976},Fa,function(r){return v[(r|=0)>>2]=9184,be(r+24|0),To(r+8|0),0|r},function(r){v[(r|=0)>>2]=9184,be(r+24|0),To(r+8|0),pt(r)},function(){return 20988},function(r,n,e,f,i,t,u,o){r|=0,n|=0,f=w(f),i|=0,u|=0,o|=0;var a=0;r:if(a=v[v[n+36>>2]+(v[r+4>>2]<<2)>>2],i=v[a+8>>2],0|Ta[v[v[i>>2]+16>>2]](i)){n:{e:{if(1!=(0|o)|u)if(o=v[r+20>>2],p[o>>2]>f){if(u>>>0>1)break r;if(i=v[a+4>>2],!v[i+72>>2])break e;i=i+68|0}else{if(i=v[r+12>>2]-1|0,p[o+(i<<2)>>2]<=f||(i=Se(r+8|0,f,1)-1|0),u=v[r+36>>2],!v[4+(u+m(i,12)|0)>>2])break e;i=u+m(i,12)|0}else{if(i=v[a+4>>2],!v[i+72>>2])break e;i=i+68|0}r=Ef(n,v[r+4>>2],i);break n}r=0}hi(a,r)}},function(r){return v[4+(r|=0)>>2]+67108864|0},be,function(r){pt(be(r|=0))},Fa,function(r){return v[(r|=0)>>2]=9228,go(r+16|0),0|r},function(r){v[(r|=0)>>2]=9228,go(r+16|0),pt(r)},function(){return 21e3},Mi,function(r){return l[117+(r|=0)|0]},function(r,n){n|=0,i[117+(r|=0)|0]=n},go,function(r){pt(go(r|=0))},function(r){return v[(r|=0)>>2]=9276,gi(r+8|0),0|r},function(r){v[(r|=0)>>2]=9276,gi(r+8|0),pt(r)},Fa,st,ua,function(){return 21012},function(r){var n;return r|=0,gu(n=ut(64),na(r)),ui(r,n),0|n},Fa,ua,function(){return 21024},function(r){var n;return r|=0,$t(n=ut(68),na(r)),ui(r,n),v[n+64>>2]=v[r+64>>2],0|n},Fa,function(r){return v[(r|=0)>>2]=9344,To(r+24|0),0|Kt(r)},function(r){v[(r|=0)>>2]=9344,To(r+24|0),pt(Kt(r))},function(){return 21036},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a=w(0),c=w(0),b=w(0),k=0,s=0,l=w(0);V=i=V-32|0,n=v[v[n+36>>2]+(v[r+20>>2]<<2)>>2],o=v[n+8>>2];r:if(0|Ta[v[v[o>>2]+16>>2]](o))if(o=v[r+36>>2],p[o>>2]>f){n:switch(0|u){case 0:r=v[n+4>>2],p[n+20>>2]=p[r+28>>2],p[n+24>>2]=p[r+32>>2],p[n+28>>2]=p[r+36>>2],p[n+32>>2]=p[r+40>>2],vf(n+16|0);break r;case 1:break n;default:break r}r=v[n+4>>2],v[i+12>>2]=9372,u=v[r+40>>2],v[i+24>>2]=v[r+36>>2],v[i+28>>2]=u,u=v[r+32>>2],v[i+16>>2]=v[r+28>>2],v[i+20>>2]=u,e=p[i+24>>2],f=p[i+16>>2],a=p[i+28>>2],c=p[n+24>>2],p[n+24>>2]=w(w(p[i+20>>2]-c)*t)+c,c=e,e=p[n+28>>2],p[n+28>>2]=w(w(c-e)*t)+e,e=p[n+32>>2],p[n+32>>2]=w(w(a-e)*t)+e,e=p[n+20>>2],p[n+20>>2]=w(w(f-e)*t)+e,vf(n+16|0)}else o=o+(v[r+28>>2]<<2)|0,p[o-20>>2]<=f?(f=p[o-4>>2],e=p[o-8>>2],c=p[o-12>>2],a=p[o-16>>2]):(o=(s=(k=Se(r+24|0,f,5))<<2)+v[r+36>>2]|0,b=p[o-16>>2],c=p[o-12>>2],e=p[o-8>>2],l=p[o-4>>2],a=f,f=p[o>>2],a=vn(r,((k>>>0)/5|0)-1|0,w(w(1)-w(w(a-f)/w(p[o-20>>2]-f)))),r=v[r+36>>2]+s|0,f=w(l+w(a*w(p[r+16>>2]-l))),e=w(e+w(a*w(p[r+12>>2]-e))),c=w(c+w(a*w(p[r+8>>2]-c))),a=w(b+w(a*w(p[r+4>>2]-b)))),r=n+16|0,t!=w(1)?(u||(u=Xo(v[n+4>>2]),p[n+20>>2]=p[u+4>>2],p[n+24>>2]=p[u+8>>2],p[n+28>>2]=p[u+12>>2],p[n+32>>2]=p[u+16>>2],vf(r)),b=p[n+32>>2],p[n+32>>2]=b+w(w(f-b)*t),f=p[n+28>>2],p[n+28>>2]=f+w(w(e-f)*t),e=p[n+24>>2],p[n+24>>2]=e+w(w(c-e)*t),e=p[n+20>>2],p[n+20>>2]=e+w(w(a-e)*t),vf(r)):(p[n+32>>2]=f,p[n+28>>2]=e,p[n+24>>2]=c,p[n+20>>2]=a,vf(r));V=i+32|0},function(r){return v[20+(r|=0)>>2]+83886080|0},pa,Fa,Fa,Dt,function(r){Dt(r|=0),pt(r)},function(){return 21060},Fa,Kt,ga,function(){return 21072},Fa,function(r){return v[(r|=0)>>2]=9436,po(r+40|0),To(r+24|0),0|Kt(r)},function(r){v[(r|=0)>>2]=9436,po(r+40|0),To(r+24|0),pt(Kt(r))},function(){return 21084},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a,c=0,b=0,k=0,s=w(0),l=0;V=a=V-16|0,n=v[v[n+36>>2]+(v[r+20>>2]<<2)>>2],i=v[n+8>>2];r:if(0|Ta[v[v[i>>2]+16>>2]](i)&&(o=v[n+60>>2])&&!(!Si(0|Ta[v[v[o>>2]+8>>2]](o),21452)|v[o+56>>2]!=v[r+56>>2])){k=v[n+72>>2]?u:0,u=n+68|0,i=v[v[r+52>>2]+4>>2];n:if(p[v[r+36>>2]>>2]>f){e:switch(0|k){case 0:v[n+72>>2]=0;break r;case 2:case 3:break r;case 1:break e;default:break n}if(t==w(1)){v[n+72>>2]=0;break r}if(v[a+12>>2]=0,wn(u,i,a+12|0),!v[o+24>>2]){if(!i)break r;for(n=v[n+80>>2],u=v[o+48>>2],r=0;e=p[(c=(o=r<<2)+n|0)>>2],p[c>>2]=w(w(p[u+o>>2]-e)*t)+e,(0|i)!=(0|(r=r+1|0)););break r}if(!i)break r;for(e=w(w(1)-t),n=v[n+80>>2],r=0;p[(u=n+(r<<2)|0)>>2]=e*p[u>>2],(0|i)!=(0|(r=r+1|0)););break r}if(v[a+8>>2]=0,wn(u,i,a+8|0),u=v[r+28>>2]-1|0,p[v[r+36>>2]+(u<<2)>>2]<=f){if(r=v[r+52>>2],t==w(1)){if(3==(0|k)){if(v[o+24>>2]){if(!i)break r;for(n=v[n+80>>2],u=v[12+(r+(u<<4)|0)>>2],r=0;p[(c=(o=r<<2)+n|0)>>2]=p[u+o>>2]+p[c>>2],(0|i)!=(0|(r=r+1|0)););break r}if(!i)break r;for(c=v[n+80>>2],o=v[o+48>>2],u=v[12+(r+(u<<4)|0)>>2],r=0;p[(b=(n=r<<2)+c|0)>>2]=w(p[n+u>>2]-p[n+o>>2])+p[b>>2],(0|i)!=(0|(r=r+1|0)););break r}Ri(v[n+80>>2],v[12+(r+(u<<4)|0)>>2],i<<2);break r}n:switch(0|k){case 0:if(v[o+24>>2]){if(!i)break r;for(n=v[n+80>>2],u=v[12+(r+(u<<4)|0)>>2],r=0;p[(o=r<<2)+n>>2]=p[u+o>>2]*t,(0|i)!=(0|(r=r+1|0)););break r}if(!i)break r;for(c=v[n+80>>2],o=v[o+48>>2],u=v[12+(r+(u<<4)|0)>>2],r=0;e=p[(n=r<<2)+o>>2],p[n+c>>2]=w(w(p[n+u>>2]-e)*t)+e,(0|i)!=(0|(r=r+1|0)););break r;case 1:case 2:if(!i)break r;for(n=v[n+80>>2],u=v[12+(r+(u<<4)|0)>>2],r=0;e=p[(c=(o=r<<2)+n|0)>>2],p[c>>2]=w(w(p[u+o>>2]-e)*t)+e,(0|i)!=(0|(r=r+1|0)););break r;case 3:break n;default:break r}if(v[o+24>>2]){if(!i)break r;for(n=v[n+80>>2],u=v[12+(r+(u<<4)|0)>>2],r=0;p[(c=(o=r<<2)+n|0)>>2]=w(p[u+o>>2]*t)+p[c>>2],(0|i)!=(0|(r=r+1|0)););break r}if(!i)break r;for(c=v[n+80>>2],o=v[o+48>>2],u=v[12+(r+(u<<4)|0)>>2],r=0;p[(b=(n=r<<2)+c|0)>>2]=w(w(p[n+u>>2]-p[n+o>>2])*t)+p[b>>2],(0|i)!=(0|(r=r+1|0)););}else if(c=He(r+24|0,f),u=v[r+52>>2],l=r,b=c-1|0,r=v[r+36>>2],e=p[r+(c<<2)>>2],e=vn(l,b,w(w(1)-w(w(f-e)/w(p[r+(b<<2)>>2]-e)))),t!=w(1)){n:switch(0|k){case 0:if(v[o+24>>2]){if(!i)break r;for(o=v[n+80>>2],c=v[12+(u+(c<<4)|0)>>2],u=v[12+(u+(b<<4)|0)>>2],r=0;f=p[(n=r<<2)+u>>2],p[n+o>>2]=w(w(w(p[n+c>>2]-f)*e)+f)*t,(0|i)!=(0|(r=r+1|0)););break r}if(!i)break r;for(k=v[n+80>>2],o=v[o+48>>2],c=v[12+(u+(c<<4)|0)>>2],u=v[12+(u+(b<<4)|0)>>2],n=0;f=p[(r=n<<2)+u>>2],s=w(w(w(p[r+c>>2]-f)*e)+f),f=p[r+o>>2],p[r+k>>2]=w(w(s-f)*t)+f,(0|i)!=(0|(n=n+1|0)););break r;case 1:case 2:if(!i)break r;for(o=v[n+80>>2],c=v[12+(u+(c<<4)|0)>>2],u=v[12+(u+(b<<4)|0)>>2],r=0;b=(n=r<<2)+o|0,f=p[n+u>>2],s=w(w(w(p[n+c>>2]-f)*e)+f),f=p[b>>2],p[b>>2]=w(w(s-f)*t)+f,(0|i)!=(0|(r=r+1|0)););break r;case 3:break n;default:break r}if(v[o+24>>2]){if(!i)break r;for(o=v[n+80>>2],c=v[12+(u+(c<<4)|0)>>2],u=v[12+(u+(b<<4)|0)>>2],r=0;b=(n=r<<2)+o|0,f=p[n+u>>2],p[b>>2]=w(w(w(w(p[n+c>>2]-f)*e)+f)*t)+p[b>>2],(0|i)!=(0|(r=r+1|0)););}else if(i)for(k=v[n+80>>2],o=v[o+48>>2],c=v[12+(u+(c<<4)|0)>>2],u=v[12+(u+(b<<4)|0)>>2],n=0;b=(r=n<<2)+k|0,f=p[r+u>>2],p[b>>2]=w(w(w(w(w(p[r+c>>2]-f)*e)+f)-p[r+o>>2])*t)+p[b>>2],(0|i)!=(0|(n=n+1|0)););}else{if(3!=(0|k)){if(!i)break r;for(o=v[n+80>>2],c=v[12+(u+(c<<4)|0)>>2],u=v[12+(u+(b<<4)|0)>>2],r=0;f=p[(n=r<<2)+u>>2],p[n+o>>2]=w(w(p[n+c>>2]-f)*e)+f,(0|i)!=(0|(r=r+1|0)););break r}if(v[o+24>>2]){if(!i)break r;for(o=v[n+80>>2],c=v[12+(u+(c<<4)|0)>>2],u=v[12+(u+(b<<4)|0)>>2],r=0;b=(n=r<<2)+o|0,f=p[n+u>>2],p[b>>2]=p[b>>2]+w(w(w(p[n+c>>2]-f)*e)+f),(0|i)!=(0|(r=r+1|0)););break r}if(!i)break r;for(k=v[n+80>>2],o=v[o+48>>2],c=v[12+(u+(c<<4)|0)>>2],u=v[12+(u+(b<<4)|0)>>2],n=0;b=(r=n<<2)+k|0,f=p[r+u>>2],p[b>>2]=w(w(w(w(p[r+c>>2]-f)*e)+f)-p[r+o>>2])+p[b>>2],(0|i)!=(0|(n=n+1|0)););}}V=a+16|0},function(r){return 100663296+(v[v[56+(r|=0)>>2]+60>>2]+v[r+20>>2]|0)|0},po,function(r){pt(po(r|=0))},Fa,function(r){return v[(r|=0)>>2]=9480,yo(r+20|0),To(r+4|0),0|r},function(r){v[(r|=0)>>2]=9480,yo(r+20|0),To(r+4|0),pt(r)},function(){return 21096},function(r,n,e,f,i,t,u,o){r|=0,n|=0,f=w(f),i|=0,i=n+40|0;r:if(1!=(0|(o|=0))|(u|=0)){if(o=v[r+16>>2],p[o>>2]>f){if(u>>>0>1)break r;if(u=0,v[n+44>>2]=0,ya(i,v[n+28>>2]),!(r=v[n+28>>2]))break r;for(;Un(i,v[n+36>>2]+(u<<2)|0),(0|r)!=(0|(u=u+1|0)););}else if(u=v[r+8>>2]-1|0,p[o+(u<<2)>>2]<=f||(u=He(r+4|0,f)-1|0),r=v[r+32>>2]+(u<<4)|0,o=v[r+4>>2])for(u=0;v[(i=u<<2)+v[n+52>>2]>>2]=v[v[n+36>>2]+(v[i+v[r+12>>2]>>2]<<2)>>2],(0|o)!=(0|(u=u+1|0)););else if(u=0,v[n+44>>2]=0,r=v[n+28>>2])for(;Un(i,v[n+36>>2]+(u<<2)|0),(0|r)!=(0|(u=u+1|0)););}else{if(u=0,v[n+44>>2]=0,ya(i,v[n+28>>2]),!(r=v[n+28>>2]))break r;for(;Un(i,v[n+36>>2]+(u<<2)|0),(0|r)!=(0|(u=u+1|0)););}},function(){return 134217728},yo,function(r){pt(yo(r|=0))},function(r){return v[(r|=0)>>2]=9524,gi(r+20|0),0|r},function(r){v[(r|=0)>>2]=9524,gi(r+20|0),pt(r)},function(r){return v[(r|=0)>>2]=9540,gi(r+36|0),gi(r+24|0),gi(r+4|0),0|r},function(r){v[(r|=0)>>2]=9540,gi(r+36|0),gi(r+24|0),gi(r+4|0),pt(r)},Fa,Xi,function(r){Xi(r|=0),pt(r)},function(){return 21108},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a=0,c=0;r:if(i){if(a=v[r+8>>2],e>f)Ta[v[v[r>>2]+12>>2]](r,n,e,w(34028234663852886e22),i,t,u,o),o=v[r+16>>2],e=w(-1);else if(o=v[r+16>>2],p[(o+(a<<2)|0)-4>>2]<=e)break r;if(!((t=p[o>>2])>f)){o=0;n:if(!(e>31,c=v[r+16>>2],e=p[c+(u<<2)>>2];;){if((0|(o=u))<=0){o=n;break n}if(e!=p[((u=o-1|0)<<2)+c>>2])break}if(!(o>>>0>=a>>>0))for(;;){if(!(p[(n=o<<2)+v[r+16>>2]>>2]<=f))break r;if(Un(i,n+v[r+32>>2]|0),(0|a)==(0|(o=o+1|0)))break}}}},function(){return 117440512},ta,ga,Fa,function(r){return v[(r|=0)>>2]=9620,go(r+8|0),0|r},function(r){v[(r|=0)>>2]=9620,go(r+8|0),pt(r)},function(){return 21124},function(r){var n=0,e=0,f=0;switch(v[12+(r|=0)>>2]-1|0){case 0:return n=v[r+40>>2],void Ar(v[v[r+20>>2]>>2],p[n+100>>2],p[n+112>>2],l[r+28|0],l[r+29|0],l[v[r+4>>2]+50|0],p[r+32>>2]);case 1:n=v[r+20>>2],e=v[n>>2],f=v[n+4>>2],n=v[r+40>>2],or(e,f,p[n+100>>2],p[n+112>>2],v[r+24>>2],l[r+29|0],p[r+36>>2],p[r+32>>2])}},Lo,wo,Iu,Fa,function(r){return v[(r|=0)>>2]=9656,mo(r+24|0),0|Dt(r)},function(r){v[(r|=0)>>2]=9656,mo(r+24|0),pt(Dt(r))},function(){return 21136},mo,function(r){pt(mo(r|=0))},Fa,function(r){return v[(r|=0)>>2]=9696,To(r+20|0),0|Kt(r)},function(r){v[(r|=0)>>2]=9696,To(r+20|0),pt(Kt(r))},function(){return 21148},function(r,n,e,f,t,u,o,a){r|=0,n|=0,e=w(e),f=w(f),t|=0,u=w(u),o|=0,a|=0;var c=0,b=w(0),k=w(0);r:{n:{e:{n=v[v[n+68>>2]+(v[r+36>>2]<<2)>>2];f:if(0|Ta[v[v[n>>2]+16>>2]](n)){if(t=v[r+32>>2],p[t>>2]>f){i:switch(0|o){case 0:r=v[n+4>>2],p[n+32>>2]=p[r+52>>2],p[n+36>>2]=p[r+56>>2];break e;case 1:break i;default:break f}r=v[n+4>>2],e=p[n+32>>2],p[n+32>>2]=w(w(p[r+52>>2]-e)*u)+e,e=p[n+36>>2],p[n+36>>2]=w(w(p[r+56>>2]-e)*u)+e;break e}if(c=v[r+24>>2],p[(t+(c<<2)|0)-24>>2]<=f){if(!o){if(r=t+(c<<2)|0,t=v[n+4>>2],e=p[t+52>>2],p[n+32>>2]=w(w(p[r-20>>2]-e)*u)+e,e=p[t+56>>2],p[n+36>>2]=w(w(p[r-16>>2]-e)*u)+e,1==(0|a))break n;break r}if(r=t+(c<<2)|0,e=p[n+32>>2],p[n+32>>2]=w(w(p[r-20>>2]-e)*u)+e,e=p[n+36>>2],p[n+36>>2]=w(w(p[r-16>>2]-e)*u)+e,a)break f;break r}if(t=Se(r+20|0,f,6),c=v[r+32>>2]+(t<<2)|0,e=p[c-16>>2],b=p[c-20>>2],k=f,f=p[c>>2],f=vn(r,((0|t)/6|0)-1|0,w(w(1)-w(w(k-f)/w(p[c-24>>2]-f)))),!o){if(c=v[r+32>>2],k=w(w(w(p[4+(o=c+(t<<2)|0)>>2]-b)*f)+b),t=v[n+4>>2],b=p[t+52>>2],p[n+32>>2]=w(w(k-b)*u)+b,f=w(w(w(p[o+8>>2]-e)*f)+e),e=p[t+56>>2],p[n+36>>2]=w(w(f-e)*u)+e,1==(0|a))break n;return e=p[(c+(v[r+24>>2]<<2)|0)-12>>2],r=w(g(e))>2]=r,i[n+28|0]=p[o-8>>2]!=w(0),void(i[n+29|0]=p[o-4>>2]!=w(0))}r=v[r+32>>2]+(t<<2)|0,k=w(w(w(p[r+4>>2]-b)*f)+b),b=p[n+32>>2],p[n+32>>2]=w(w(k-b)*u)+b,f=w(w(w(p[r+8>>2]-e)*f)+e),e=p[n+36>>2],p[n+36>>2]=w(w(f-e)*u)+e,a||(e=p[r-12>>2],t=w(g(e))>2]=t,i[n+28|0]=p[r-8>>2]!=w(0),i[n+29|0]=p[r-4>>2]!=w(0))}return}return v[n+24>>2]=v[r+44>>2],i[n+28|0]=l[r+48|0],void(i[n+29|0]=l[r+49|0])}return v[n+24>>2]=v[t+44>>2],i[n+28|0]=l[t+48|0],void(i[n+29|0]=l[t+49|0])}e=p[r-12>>2],t=w(g(e))>2]=t,i[n+28|0]=p[r-8>>2]!=w(0),i[n+29|0]=p[r-4>>2]!=w(0)},function(r){return v[36+(r|=0)>>2]+150994944|0},function(r){return v[(r|=0)>>2]=9740,gi(r+24|0),gi(r+8|0),0|r},function(r){v[(r|=0)>>2]=9740,gi(r+24|0),gi(r+8|0),pt(r)},Fa,Fa,Fa,function(){return 21176},function(r,n){return r|=0,(n=w(n))<=w(.5)?w(w(Fr(w(n+n),w(v[r+4>>2]))*w(.5))):(n=w(n+w(-1)),r=v[r+4>>2],w(w(w(Fr(w(n+n),w(0|r))/w(1&r?2:-2))+w(1))))},function(r,n,e,f){return r|=0,n=w(n),e=w(e),f=w(f),w(w(w(w(e-n)*w(Ta[v[v[r>>2]+4>>2]](r,f)))+n))},ta,wa,function(){return 21188},function(r,n){return r|=0,n=w(n),r=v[r+4>>2],w(w(w(Fr(w(n+w(-1)),w(0|r))*w(1&r?1:-1))+w(1)))},wa,Fa,We,function(r){We(r|=0),pt(r)},function(){return 21200},function(r){var n,e,f=0,t=0;return v[100+(r|=0)>>2]?0|Kr(r):(zr(n=ut(236),na(r)),f=v[r+68>>2],(e=v[n+72>>2])&&(!(t=v[n+68>>2])|(0|f)==(0|t)||Ta[0|e](t)),v[n+72>>2]=0,v[n+68>>2]=f,p[n+180>>2]=p[r+180>>2],p[n+184>>2]=p[r+184>>2],p[n+188>>2]=p[r+188>>2],p[n+192>>2]=p[r+192>>2],i[n+228|0]=l[r+228|0],v[n+232>>2]=v[r+232>>2],p[n+76>>2]=p[r+76>>2],p[n+80>>2]=p[r+80>>2],p[n+84>>2]=p[r+84>>2],p[n+88>>2]=p[r+88>>2],p[n+92>>2]=p[r+92>>2],p[n+96>>2]=p[r+96>>2],te(n+168|0,r+168|0),p[n+208>>2]=p[r+208>>2],p[n+212>>2]=p[r+212>>2],p[n+216>>2]=p[r+216>>2],p[n+220>>2]=p[r+220>>2],vf(n+204|0),ui(r,n),v[n+124>>2]=0,Df(n+120|0,r+120|0),v[n+108>>2]=0,Df(n+104|0,r+104|0),v[n+140>>2]=0,dn(n+136|0,r+136|0),f=v[r+224>>2],v[n+156>>2]=0,v[n+224>>2]=f,dn(f=n+152|0,f),p[n+196>>2]=p[r+196>>2],p[n+200>>2]=p[r+200>>2],0|n)},function(r){return 0|We((r|=0)-64|0)},function(r){We(r=(r|=0)-64|0),pt(r)},Ao,function(r){pt(Ao(r|=0))},Fa,function(r){return v[(r|=0)>>2]=9868,To(r- -64|0),0|st(r)},function(r){v[(r|=0)>>2]=9868,To(r- -64|0),pt(st(r))},function(){return 21212},function(r){var n;return r|=0,Xf(n=ut(84),na(r)),ui(r,n),v[n+68>>2]=0,Df(n- -64|0,r- -64|0),i[n+80|0]=l[r+80|0],i[n+81|0]=l[r+81|0],0|n},Fa,function(r){return v[(r|=0)>>2]=9892,To(r+124|0),To(r+108|0),To(r+92|0),To(r+76|0),To(r+60|0),To(r+44|0),go(r+8|0),0|r},function(r){v[(r|=0)>>2]=9892,To(r+124|0),To(r+108|0),To(r+92|0),To(r+76|0),To(r+60|0),To(r+44|0),go(r+8|0),pt(r)},function(){return 21224},function(r){r|=0;var n,e=w(0),f=0,t=w(0),u=w(0),o=0,a=w(0),c=w(0),b=0,k=0,s=0,h=0,d=0,y=w(0),g=w(0),F=0,A=w(0),$=w(0),I=w(0),C=0,P=w(0),E=w(0),O=0,R=0,S=0,W=w(0),G=0,U=0,j=w(0),H=w(0),L=w(0),M=w(0),_=w(0),z=w(0),x=0,J=0,K=0,B=0,N=0,q=w(0),D=0,Z=0,Y=w(0);if(V=n=V-16|0,(k=v[v[r+24>>2]+60>>2])&&Si(0|Ta[v[v[k>>2]+8>>2]](k),21212)&&(q=p[r+40>>2],M=p[r+36>>2],q>w(0)|M>w(0))){K=v[r+12>>2],x=v[r+4>>2],s=v[x+48>>2],G=v[x+52>>2],v[n+12>>2]=0,wn(r+44|0,C=!!(0|G)+K|0,n+12|0),a=p[r+32>>2];r:if(2==(0|G)|2!=(0|s)){if(2==(0|G)&&(v[n+8>>2]=0,wn(r+108|0,K,n+8|0)),O=C-1|0)for(b=v[x+48>>2];;){o=v[(h=f<<2)+v[r+20>>2]>>2];n:if((c=p[v[o+4>>2]+24>>2])>2]>>2]=0}else if(2!=(0|s))e=w(c*p[o+92>>2]),t=w(e*e),e=w(c*p[o+104>>2]),e=w(T(w(t+w(e*e)))),2==(0|G)&&(p[h+v[r+120>>2]>>2]=e),e=w(w(w(a+(b?w(-0):c))*e)/c);else{if(e=a,2!=(0|G))break n;e=w(c*p[o+92>>2]),t=w(e*e),e=w(c*p[o+104>>2]),p[h+v[r+120>>2]>>2]=T(w(t+w(e*e))),e=a}if(f=f+1|0,p[v[r+56>>2]+(f<<2)>>2]=e,!(f>>>0>>0))break}}else{if(C>>>0<2)break r;for(o=v[r+56>>2],f=1;p[o+(f<<2)>>2]=a,(0|C)!=(0|(f=f+1|0)););}D=!G,U=1==v[x+44>>2],B=2==(0|s),V=R=V-16|0,h=r,u=p[r+28>>2],d=v[r+24>>2],v[R+12>>2]=0,wn(O=r+60|0,m(C,3)+2|0,R+12|0),F=r+76|0,b=(0|(f=v[k+52>>2]))/6|0,J=l[k+80|0];r:if(l[k+81|0]){if(J?(v[R+12>>2]=0,wn(F,S=f+2|0,R+12|0),Ji(k,d,2,r=f-2|0,F,0,2),Ji(k,d,0,2,F,r,2),r=v[h+88>>2],p[(f=r+(f<<2)|0)>>2]=p[r>>2],p[f+4>>2]=p[r+4>>2]):(v[R+12>>2]=0,wn(F,S=f-4|0,R+12|0),Ji(k,d,2,S,F,0,2),b=b-1|0),f=0,v[R+12>>2]=0,wn(h+92|0,b,R+12|0),s=v[h+88>>2],a=p[s+4>>2],c=p[s>>2],(0|b)>0)for(d=v[h+104>>2],o=2,e=a,t=c;P=p[(r=(N=o<<2)+s|0)>>2],_=p[r+8>>2],c=p[r+16>>2],a=w(w(w(w(w(P-_)*w(3))-t)+c)*w(.09375)),A=w(w(P-t)*w(.75)),t=w(w(w(t-w(P+P))+_)*w(.1875)),y=w(w(a*w(.1666666716337204))+w(A+t)),t=w(w(t+t)+a),W=w(y+t),t=w(a+t),j=w(W+t),A=w(j+w(a+t)),E=p[s+(4|N)>>2],z=p[r+12>>2],a=p[r+20>>2],t=w(w(w(w(w(E-z)*w(3))-e)+a)*w(.09375)),$=w(w(E-e)*w(.75)),e=w(w(w(e-w(E+E))+z)*w(.1875)),g=w(w(t*w(.1666666716337204))+w($+e)),$=w(w(e+e)+t),e=w(g+$),L=w(t+$),$=w(e+L),t=w($+w(t+L)),I=w(w(w(w(I+w(T(w(w(y*y)+w(g*g)))))+w(T(w(w(W*W)+w(e*e)))))+w(T(w(w(j*j)+w($*$)))))+w(T(w(w(A*A)+w(t*t))))),p[d+(f<<2)>>2]=I,o=o+6|0,j=a,e=a,W=c,t=c,(0|b)!=(0|(f=f+1|0)););if(e=I,e=U?e:w(e/p[(v[k+76>>2]+(b<<2)|0)-4>>2]),!(!B|(0|C)<2))for(f=v[h+56>>2],r=1;p[(o=f+(r<<2)|0)>>2]=I*p[o>>2],(0|C)!=(0|(r=r+1|0)););if(!((0|C)<=0))for(y=w(u*e),S=S-4|0,s=-1,f=0,r=0,k=0,b=0,u=w(0);;){Y=p[v[h+56>>2]+(b<<2)>>2],y=w(y+Y);n:{e:{if(J)o=0,e=Er(y,I),e=w(e+(eI)break e;o=r,e=y}for(d=v[h+104>>2];o=(r=o)+1|0,(t=p[(U=d+(r<<2)|0)>>2])>2],e=w(w(A-e)/w(t-e))):e=w(e/t),A=e,(0|r)!=(0|s)){for(d=v[h+136>>2],f=v[h+88>>2]+m(r,24)|0,P=p[f+8>>2],_=p[f+16>>2],c=p[f>>2],W=p[f+24>>2],$=w(w(w(w(w(P-_)*w(3))-c)+W)*w(.006000000052154064)),g=w(w(w(c-w(P+P))+_)*w(.029999999329447746)),e=w(w($*w(.1666666716337204))+w(w(w(P-c)*w(.30000001192092896))+g)),E=p[f+12>>2],z=p[f+20>>2],a=p[f+4>>2],j=p[f+28>>2],L=w(w(w(w(w(E-z)*w(3))-a)+j)*w(.006000000052154064)),u=w(w(w(a-w(E+E))+z)*w(.029999999329447746)),t=w(w(L*w(.1666666716337204))+w(w(w(E-a)*w(.30000001192092896))+u)),H=w(T(w(w(e*e)+w(t*t)))),p[d>>2]=H,u=w(w(u+u)+L),g=w(w(g+g)+$),f=1;e=w(g+e),t=w(u+t),H=w(H+w(T(w(w(e*e)+w(t*t))))),p[(f<<2)+d>>2]=H,u=w(L+u),g=w($+g),8!=(0|(f=f+1|0)););e=w(g+e),t=w(u+t),H=w(H+w(T(w(w(e*e)+w(t*t))))),p[d+32>>2]=H,e=w(w($+g)+e),$=w(e*e),e=w(w(L+u)+t),u=w(H+w(T(w($+w(e*e))))),p[d+36>>2]=u,s=r,f=0}else d=v[h+136>>2];for(o=f,e=w(A*u);o=(f=o)+1|0,(t=p[(U=(f<<2)+d|0)>>2])>2],e=w(w(w(A-e)/w(t-e))+w(0|f))):e=w(e/t),Dr(w(e*w(.10000000149011612)),c,a,P,E,_,z,W,j,O,k,!!(0|b)&Y>2]+(o<<2)>>2],!(!B|(0|C)<2))for(s=v[h+56>>2],r=1;p[(b=s+(r<<2)|0)>>2]=a*p[b>>2],(0|C)!=(0|(r=r+1|0)););if(v[R+12>>2]=0,wn(F,8,R+12|0),(0|C)<=0)break r;for(u=w(u*(U?a:w(1))),U=f-4|0,B=f-6|0,s=-1,r=0,b=0;;){t=p[v[h+56>>2]+(S<<2)>>2],u=w(u+t);n:{if(J)e=Er(u,a),e=w(e+(ea){-3!=(0|s)&&Ji(k,d,B,4,F,0,2),we(w(u-a),F,0,O,b),s=-3;break n}f=r,e=u}for(N=v[k+76>>2];f=(r=f)+1|0,(c=p[(Z=N+(r<<2)|0)>>2])>2],e=w(w(A-e)/w(c-e))):e=w(e/c),(0|r)!=(0|s)&&(!J|(0|r)!=(0|o)?(Ji(k,d,m(r,6)+2|0,8,F,0,2),s=r):(Ji(k,d,U,4,F,0,2),Ji(k,d,0,4,F,4,2),s=o)),f=v[h+88>>2],Dr(e,p[f>>2],p[f+4>>2],p[f+8>>2],p[f+12>>2],p[f+16>>2],p[f+20>>2],p[f+24>>2],p[f+28>>2],O,b,!!(0|S)&t>2],e=p[r+4>>2],a=p[r>>2],(W=p[x+56>>2])==w(0)?r=1==(0|G):(r=v[v[h+24>>2]+8>>2],W=w(W*(w(w(p[r+92>>2]*p[r+108>>2])-w(p[r+104>>2]*p[r+96>>2]))>w(0)?w(.01745329238474369):w(-.01745329238474369))),r=0),K)for(f=0,s=3;o=v[(k=f<<2)+v[h+20>>2]>>2],c=p[o+100>>2],p[o+100>>2]=w(w(a-c)*q)+c,c=p[o+112>>2],p[o+112>>2]=w(w(e-c)*q)+c,b=v[O+12>>2]+(s<<2)|0,c=p[b>>2],y=w(c-a),a=p[b+4>>2],e=w(a-e),2==(0|G)&&(t=p[k+v[h+120>>2]>>2])>=w(9999999747378752e-21)&&(t=w(w(w(w(w(T(w(w(y*y)+w(e*e))))/t)+w(-1))*M)+w(1)),p[o+92>>2]=t*p[o+92>>2],p[o+104>>2]=t*p[o+104>>2]),M>w(0)?(j=p[o+108>>2],t=p[o+104>>2],A=p[o+96>>2],I=p[o+92>>2],u=p[b-4>>2],G&&(u=p[b+8>>2],p[4+(k+v[h+56>>2]|0)>>2]>2]+24>>2],e=w(w(w(w(g*w(w(E*I)+w(t*P)))-e)*M)+a),a=w(w(w(w(g*w(w(P*I)-w(t*E)))-y)*M)+c)):(u=w(W+u),e=a,a=c),u>w(3.1415927410125732)?u=w(u+w(-6.2831854820251465)):u>2]=w(u*A)+w(j*c),p[o+104>>2]=w(u*I)+w(t*c),p[o+96>>2]=w(c*A)-w(j*u),p[o+92>>2]=w(c*I)-w(t*u)):(e=a,a=c),i[o+88|0]=0,s=s+3|0,(0|K)!=(0|(f=f+1|0)););}V=n+16|0},function(r){return l[140+(r|=0)|0]},function(r,n){n|=0,i[140+(r|=0)|0]=n},Iu,Fa,function(r){return v[(r|=0)>>2]=9928,mo(r+24|0),0|Dt(r)},function(r){v[(r|=0)>>2]=9928,mo(r+24|0),pt(Dt(r))},function(){return 21236},Fa,function(r){return v[(r|=0)>>2]=9952,To(r+20|0),0|Kt(r)},function(r){v[(r|=0)>>2]=9952,To(r+20|0),pt(Kt(r))},function(){return 21248},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a=w(0),c=0,b=w(0);r:if(n=v[v[n+100>>2]+(v[r+36>>2]<<2)>>2],0|Ta[v[v[n>>2]+16>>2]](n)){if(i=v[r+32>>2],p[i>>2]>f){n:switch(0|u){case 0:return r=v[n+4>>2],p[n+36>>2]=p[r+68>>2],void(p[n+40>>2]=p[r+72>>2]);case 1:break n;default:break r}return r=v[n+4>>2],e=p[n+36>>2],p[n+36>>2]=w(w(p[r+68>>2]-e)*t)+e,e=p[n+40>>2],void(p[n+40>>2]=w(w(p[r+72>>2]-e)*t)+e)}if(i=i+(v[r+24>>2]<<2)|0,p[i-12>>2]<=f?(f=p[i-4>>2],e=p[i-8>>2]):(i=(c=(o=Se(r+20|0,f,3))<<2)+v[r+32>>2]|0,e=p[i-8>>2],b=p[i-4>>2],a=f,f=p[i>>2],a=vn(r,((0|o)/3|0)-1|0,w(w(1)-w(w(a-f)/w(p[i-12>>2]-f)))),r=v[r+32>>2]+c|0,f=w(b+w(a*w(p[r+8>>2]-b))),e=w(e+w(a*w(p[r+4>>2]-e)))),!u)return a=e,r=v[n+4>>2],e=p[r+68>>2],p[n+36>>2]=w(w(a-e)*t)+e,e=p[r+72>>2],void(p[n+40>>2]=w(w(f-e)*t)+e);a=e,e=p[n+36>>2],p[n+36>>2]=w(w(a-e)*t)+e,e=p[n+40>>2],p[n+40>>2]=w(w(f-e)*t)+e}},function(r){return v[36+(r|=0)>>2]+218103808|0},Fa,Rt,function(r){Rt(r|=0),pt(r)},function(){return 21260},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a=0,c=w(0);r:if(n=v[v[n+100>>2]+(v[r+36>>2]<<2)>>2],0|Ta[v[v[n>>2]+16>>2]](n)){if(i=v[r+32>>2],p[i>>2]>f){n:switch(0|u){case 0:return void(p[n+28>>2]=p[v[n+4>>2]+60>>2]);case 1:break n;default:break r}return e=p[n+28>>2],void(p[n+28>>2]=w(w(p[v[n+4>>2]+60>>2]-e)*t)+e)}if(i=i+(v[r+24>>2]<<2)|0,p[i-8>>2]<=f?e=p[i-4>>2]:(i=(a=(o=Se(r+20|0,f,2))<<2)+v[r+32>>2]|0,e=p[i-4>>2],c=f,f=p[i>>2],e=w(e+w(vn(r,((0|o)/2|0)-1|0,w(w(1)-w(w(c-f)/w(p[i-8>>2]-f))))*w(p[4+(v[r+32>>2]+a|0)>>2]-e)))),!u)return f=e,e=p[v[n+4>>2]+60>>2],void(p[n+28>>2]=w(w(f-e)*t)+e);f=e,e=p[n+28>>2],p[n+28>>2]=w(w(f-e)*t)+e}},function(r){return v[36+(r|=0)>>2]+184549376|0},Fa,function(r){pt(Rt(r|=0))},function(){return 21272},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a=0,c=w(0);r:if(n=v[v[n+100>>2]+(v[r+36>>2]<<2)>>2],0|Ta[v[v[n>>2]+16>>2]](n)){if(i=v[r+32>>2],p[i>>2]>f){n:switch(0|u){case 0:return void(p[n+32>>2]=p[v[n+4>>2]+64>>2]);case 1:break n;default:break r}return e=p[n+32>>2],void(p[n+32>>2]=w(w(p[v[n+4>>2]+64>>2]-e)*t)+e)}if(a=v[r+24>>2],o=v[2493],p[i+(a-o<<2)>>2]<=f?e=p[i+(a+v[2495]<<2)>>2]:(i=Se(r+20|0,f,o),a=v[r+32>>2],e=p[a+(i+v[2495]<<2)>>2],c=f,f=p[a+(i<<2)>>2],e=w(e+w(vn(r,((0|i)/(0|o)|0)-1|0,w(w(1)-w(w(c-f)/w(p[a+(i+v[2494]<<2)>>2]-f))))*w(p[v[r+32>>2]+(i+v[2496]<<2)>>2]-e)))),!u)return f=e,e=p[v[n+4>>2]+64>>2],void(p[n+32>>2]=w(w(f-e)*t)+e);f=e,e=p[n+32>>2],p[n+32>>2]=w(w(f-e)*t)+e}},function(r){return v[36+(r|=0)>>2]+201326592|0},Fa,function(r){pt(Bt(r|=0))},function(){return 21284},function(r){var n;return r|=0,Vi(n=ut(32),na(r)),p[n+20>>2]=p[r+20>>2],p[n+24>>2]=p[r+24>>2],p[n+28>>2]=p[r+28>>2],0|n},pa,Fa,function(r){var n,e=0;return v[20+(r|=0)>>2]=10116,v[r>>2]=10092,gi(r+116|0),To(r+100|0),To(r+84|0),v[r+20>>2]=8728,(n=v[r+28>>2])&&(e=v[r+24>>2])&&Ta[0|n](e),0|Bt(r)},function(r){var n,e=0;v[20+(r|=0)>>2]=10116,v[r>>2]=10092,gi(r+116|0),To(r+100|0),To(r+84|0),v[r+20>>2]=8728,(n=v[r+28>>2])&&(e=v[r+24>>2])&&Ta[0|n](e),pt(Bt(r))},function(){return 21296},function(r){r|=0;var n,e,f,i=0,t=w(0);return _r(n=ut(164),na(r)),p[n+68>>2]=p[r+68>>2],p[n+72>>2]=p[r+72>>2],p[n+60>>2]=p[r+60>>2],p[n+64>>2]=p[r+64>>2],p[n+76>>2]=p[r+76>>2],p[n+80>>2]=p[r+80>>2],e=v[r+24>>2],(f=v[n+28>>2])&&(!(i=v[n+24>>2])|(0|e)==(0|i)||Ta[0|f](i)),v[n+28>>2]=0,v[n+24>>2]=e,te(n+116|0,r+116|0),p[n+32>>2]=p[r+32>>2],p[n+36>>2]=p[r+36>>2],p[n+44>>2]=p[r+44>>2],p[n+48>>2]=p[r+48>>2],p[n+40>>2]=p[r+40>>2],p[n+52>>2]=p[r+52>>2],t=p[r+56>>2],v[n+104>>2]=0,p[n+56>>2]=t,Df(n+100|0,r+100|0),v[n+88>>2]=0,Df(n+84|0,r+84|0),p[n+148>>2]=p[r+148>>2],p[n+152>>2]=p[r+152>>2],p[n+156>>2]=p[r+156>>2],p[n+160>>2]=p[r+160>>2],vf(n+144|0),0|n},function(r){var n,e;return v[(r|=0)>>2]=10116,v[(n=r-20|0)>>2]=10092,gi(r+96|0),To(r+80|0),To(r- -64|0),v[r>>2]=8728,(e=v[r+8>>2])&&(r=v[r+4>>2])&&Ta[0|e](r),0|Bt(n)},function(r){var n,e;v[(r|=0)>>2]=10116,v[(n=r-20|0)>>2]=10092,gi(r+96|0),To(r+80|0),To(r- -64|0),v[r>>2]=8728,(e=v[r+8>>2])&&(r=v[r+4>>2])&&Ta[0|e](r),pt(Bt(n))},Fa,function(r){return v[(r|=0)>>2]=10132,To(r+24|0),0|Kt(r)},function(r){v[(r|=0)>>2]=10132,To(r+24|0),pt(Kt(r))},function(){return 21308},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a=0,c=w(0),b=0;r:if(n=v[v[n+20>>2]+(v[r+20>>2]<<2)>>2],l[n+117|0]){if(i=v[r+36>>2],p[i>>2]>f){n:switch(0|u){case 0:return void(p[n+40>>2]=p[v[n+4>>2]+36>>2]);case 1:break n;default:break r}return e=p[n+40>>2],f=w(p[v[n+4>>2]+36>>2]-e),a=+w(f/w(-360))+16384.499999999996,r=g(a)<2147483648?~~a:-2147483648,void(p[n+40>>2]=w(w(f-w(0|m(16384-r|0,360)))*t)+e)}if(i=i+(v[r+28>>2]<<2)|0,p[i-8>>2]<=f){f=p[i-4>>2];n:{e:switch(0|u){case 3:e=p[n+40>>2];break n;case 0:return void(p[n+40>>2]=w(f*t)+p[v[n+4>>2]+36>>2]);case 1:case 2:break e;default:break r}e=p[n+40>>2],f=w(f+w(p[v[n+4>>2]+36>>2]-e)),a=+w(f/w(-360))+16384.499999999996,r=g(a)<2147483648?~~a:-2147483648,f=w(f-w(0|m(16384-r|0,360)))}return void(p[n+40>>2]=w(f*t)+e)}i=(b=(o=Se(r+24|0,f,2))<<2)+v[r+36>>2]|0,e=p[i-4>>2],c=f,f=p[i>>2],f=vn(r,(o>>1)-1|0,w(w(1)-w(w(c-f)/w(p[i-8>>2]-f)))),c=w(p[4+(v[r+36>>2]+b|0)>>2]-e),a=+w(c/w(-360))+16384.499999999996,r=g(a)<2147483648?~~a:-2147483648,f=w(w(w(c-w(0|m(16384-r|0,360)))*f)+e);n:{e:switch(0|u){case 3:e=p[n+40>>2];break n;case 0:return a=+w(f/w(-360))+16384.499999999996,r=g(a)<2147483648?~~a:-2147483648,void(p[n+40>>2]=w(w(f-w(0|m(16384-r|0,360)))*t)+p[v[n+4>>2]+36>>2]);case 1:case 2:break e;default:break r}e=p[n+40>>2],f=w(f+w(p[v[n+4>>2]+36>>2]-e))}a=+w(f/w(-360))+16384.499999999996,r=g(a)<2147483648?~~a:-2147483648,p[n+40>>2]=w(w(f-w(0|m(16384-r|0,360)))*t)+e}},Oo,Fa,Et,oa,function(){return 21320},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a=w(0),c=w(0),b=0,k=w(0),s=w(0),h=0,d=w(0),y=0,m=w(0);r:{n=v[v[n+20>>2]+(v[r+36>>2]<<2)>>2];n:if(l[n+117|0]){if(i=v[r+32>>2],p[i>>2]>f){e:switch(0|u){case 0:return r=v[n+4>>2],p[n+44>>2]=p[r+40>>2],void(p[n+48>>2]=p[r+44>>2]);case 1:break e;default:break n}return r=v[n+4>>2],e=p[n+44>>2],p[n+44>>2]=w(w(p[r+40>>2]-e)*t)+e,e=p[n+48>>2],void(p[n+48>>2]=w(w(p[r+44>>2]-e)*t)+e)}if(b=v[r+24>>2],h=v[2755],p[i+(b-h<<2)>>2]<=f?(r=v[n+4>>2],c=p[r+44>>2],f=w(p[i+(b+v[2758]<<2)>>2]*c),a=p[r+40>>2],e=w(p[i+(b+v[2757]<<2)>>2]*a)):(i=Se(r+20|0,f,h),b=v[r+32>>2],e=p[b+(i+v[2757]<<2)>>2],a=p[b+(i+v[2758]<<2)>>2],k=f,f=p[b+(i<<2)>>2],s=vn(r,((0|i)/(0|h)|0)-1|0,w(w(1)-w(w(k-f)/w(p[b+(i+v[2756]<<2)>>2]-f)))),b=v[n+4>>2],c=p[b+44>>2],r=v[r+32>>2],f=w(c*w(a+w(s*w(p[r+(i+v[2760]<<2)>>2]-a)))),a=p[b+40>>2],e=w(w(e+w(s*w(p[r+(i+v[2759]<<2)>>2]-e)))*a)),t==w(1))return 3==(0|u)?(p[n+44>>2]=p[n+44>>2]+w(e-a),void(p[n+48>>2]=p[n+48>>2]+w(f-c))):(p[n+48>>2]=f,void(p[n+44>>2]=e));if(1==(0|o)){e:switch(0|u){case 0:return y=n,m=w(w(w(w(w(g(e))*tu(a))-a)*t)+a),p[y+44>>2]=m,y=n,m=w(w(w(w(w(g(f))*tu(c))-c)*t)+c),void(p[y+48>>2]=m);case 1:case 2:return c=p[n+48>>2],a=p[n+44>>2],y=n,m=w(a+w(w(w(w(g(e))*tu(a))-a)*t)),p[y+44>>2]=m,y=n,m=w(c+w(w(w(w(g(f))*tu(c))-c)*t)),void(p[y+48>>2]=m);case 3:break e;default:break n}return c=p[n+48>>2],k=w(g(e)),e=p[n+44>>2],a=w(k*tu(e)),p[n+44>>2]=e+w(w(a-p[v[n+4>>2]+40>>2])*t),y=n,m=w(c+w(w(w(w(g(f))*tu(c))-p[v[n+4>>2]+44>>2])*t)),void(p[y+48>>2]=m)}e:switch(0|u){case 0:c=tu(e),s=p[v[n+4>>2]+44>>2];break r;case 1:case 2:a=p[n+44>>2],c=tu(e),s=p[n+48>>2];break r;case 3:break e;default:break n}c=tu(e),a=tu(f),r=v[n+4>>2],p[n+44>>2]=w(c*w(g(p[n+44>>2])))+w(w(e-w(c*w(g(p[r+40>>2]))))*t),p[n+48>>2]=w(a*w(g(p[n+48>>2])))+w(w(f-w(a*w(g(p[r+44>>2]))))*t)}return}d=tu(f),k=e,e=w(c*w(g(a))),p[n+44>>2]=w(w(k-e)*t)+e,e=w(d*w(g(s))),p[n+48>>2]=w(w(f-e)*t)+e},function(r){return v[36+(r|=0)>>2]+33554432|0},Fa,oa,function(){return 21332},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a=w(0),c=0,b=w(0);r:if(n=v[v[n+20>>2]+(v[r+36>>2]<<2)>>2],l[n+117|0]){if(i=v[r+32>>2],p[i>>2]>f){n:switch(0|u){case 0:return r=v[n+4>>2],p[n+52>>2]=p[r+48>>2],void(p[n+56>>2]=p[r+52>>2]);case 1:break n;default:break r}return r=v[n+4>>2],e=p[n+52>>2],p[n+52>>2]=w(w(p[r+48>>2]-e)*t)+e,e=p[n+56>>2],void(p[n+56>>2]=w(w(p[r+52>>2]-e)*t)+e)}o=v[r+24>>2],c=v[2755],p[i+(o-c<<2)>>2]<=f?(f=p[i+(o+v[2758]<<2)>>2],e=p[i+(o+v[2757]<<2)>>2]):(i=Se(r+20|0,f,c),o=v[r+32>>2],e=p[o+(i+v[2757]<<2)>>2],b=p[o+(i+v[2758]<<2)>>2],a=f,f=p[o+(i<<2)>>2],a=vn(r,((0|i)/(0|c)|0)-1|0,w(w(1)-w(w(a-f)/w(p[o+(i+v[2756]<<2)>>2]-f)))),r=v[r+32>>2],f=w(b+w(a*w(p[r+(i+v[2760]<<2)>>2]-b))),e=w(e+w(a*w(p[r+(i+v[2759]<<2)>>2]-e))));n:switch(0|u){case 0:return r=v[n+4>>2],p[n+52>>2]=w(e*t)+p[r+48>>2],void(p[n+56>>2]=w(f*t)+p[r+52>>2]);case 1:case 2:return r=v[n+4>>2],a=w(e+p[r+48>>2]),e=p[n+52>>2],p[n+52>>2]=w(w(a-e)*t)+e,e=p[n+56>>2],void(p[n+56>>2]=w(w(w(f+p[r+52>>2])-e)*t)+e);case 3:break n;default:break r}p[n+52>>2]=w(e*t)+p[n+52>>2],p[n+56>>2]=w(f*t)+p[n+56>>2]}},function(r){return v[36+(r|=0)>>2]+50331648|0},Me,function(r){Me(r|=0),pt(r)},ro,function(r){pt(ro(r|=0))},Hu,function(r){pt(Hu(r|=0))},Gu,function(r){pt(Gu(r|=0))},Wu,function(r){pt(Wu(r|=0))},Su,function(r){pt(Su(r|=0))},Fa,hf,function(r){hf(r|=0),pt(r)},pa,eo,function(r){pt(eo(r|=0))},function(r){return v[(r|=0)>>2]=10360,Ju(r+36|0),Vu(r+20|0),Ju(r+4|0),0|r},function(r){v[(r|=0)>>2]=10360,Ju(r+36|0),Vu(r+20|0),Ju(r+4|0),pt(r)},function(r){return v[(r|=0)>>2]=10376,To(r+4|0),0|r},function(r){v[(r|=0)>>2]=10376,To(r+4|0),pt(r)},Ju,function(r){pt(Ju(r|=0))},Vu,function(r){pt(Vu(r|=0))},function(r){return v[(r|=0)>>2]=10424,To(r+208|0),To(r+192|0),Ao(r+176|0),To(r+160|0),To(r+144|0),To(r+128|0),_f(r+4|0),0|r},function(r){v[(r|=0)>>2]=10424,To(r+208|0),To(r+192|0),Ao(r+176|0),To(r+160|0),To(r+144|0),To(r+128|0),_f(r+4|0),pt(r)},io,function(r){pt(io(r|=0))},to,function(r){pt(to(r|=0))},Ku,function(r){pt(Ku(r|=0))},ct,function(r){pt(ct(r|=0))},bt,function(r){pt(bt(r|=0))},hn,function(r){hn(r|=0),pt(r)},Xu,function(r){pt(Xu(r|=0))},Yu,function(r){pt(Yu(r|=0))},Zu,function(r){pt(Zu(r|=0))},Du,function(r){pt(Du(r|=0))},qu,function(r){pt(qu(r|=0))},Nu,function(r){pt(Nu(r|=0))},uo,function(r){pt(uo(r|=0))},Bu,function(r){pt(Bu(r|=0))},Wf,function(r){Wf(r|=0),pt(r)},function(r){return v[(r|=0)>>2]=10752,To(r+20|0),Ou(r+4|0),0|r},function(r){v[(r|=0)>>2]=10752,To(r+20|0),Ou(r+4|0),pt(r)},Ou,function(r){pt(Ou(r|=0))},function(r){return v[(r|=0)>>2]=10784,Qu(r+4|0),0|r},function(r){v[(r|=0)>>2]=10784,Qu(r+4|0),pt(r)},en,function(r){en(r|=0),pt(r)},Qu,function(r){pt(Qu(r|=0))},le,function(r){pt(le(r|=0))},no,function(r){pt(no(r|=0))},function(r){return v[(r|=0)>>2]=10864,To(r+68|0),0|r},function(r){v[(r|=0)>>2]=10864,To(r+68|0),pt(r)},function(r){return v[(r|=0)>>2]=10880,gi(r+68|0),gi(r+8|0),0|r},function(r){v[(r|=0)>>2]=10880,gi(r+68|0),gi(r+8|0),pt(r)},gi,function(r){gi(r|=0),pt(r)},Fa,ta,ga,function(){return 21368},Fa,function(r){return v[(r|=0)>>2]=10940,go(r+8|0),0|r},function(r){v[(r|=0)>>2]=10940,go(r+8|0),pt(r)},function(){return 21380},function(r){r|=0;var n=w(0),e=0,f=0,t=w(0),u=0,o=w(0),a=w(0),c=0,b=0,k=w(0),s=w(0),h=w(0),y=w(0),F=w(0),A=w(0),$=w(0),I=w(0),C=w(0),P=w(0),E=w(0),O=w(0),R=w(0),S=w(0),W=0,G=0,U=0,j=w(0);if(f=v[r+4>>2],b=l[f+84|0],l[f+85|0]){if(b){if(k=p[r+40>>2],s=p[r+36>>2],h=p[r+32>>2],a=p[r+28>>2],u=v[r+24>>2],l[u+88|0]||Tr(u),v[r+12>>2])for(;f=v[v[r+20>>2]+(c<<2)>>2],l[f+88|0]||Tr(f),o=p[f+68>>2],o=a!=w(0)?w(w(w(p[u+68>>2]+p[v[r+4>>2]+60>>2])*a)+o):o,$=p[f+64>>2],I=p[f+60>>2],h!=w(0)&&(b=v[r+4>>2],$=w(w(w(p[u+64>>2]+p[b+68>>2])*h)+$),I=w(w(w(p[u+60>>2]+p[b+64>>2])*h)+I)),n=p[f+76>>2],t=p[f+72>>2],s!=w(0)&&(t=t>w(9999999747378752e-21)?w(t*w(w(w(w(p[u+72>>2]+w(-1))+p[v[r+4>>2]+72>>2])*s)+w(1))):t,n>w(9999999747378752e-21)&&(n=w(n*w(w(w(w(p[u+76>>2]+w(-1))+p[v[r+4>>2]+76>>2])*s)+w(1))))),C=p[f+84>>2],y=p[f+80>>2],k!=w(0)&&(C=w(w(w(p[u+84>>2]+p[v[r+4>>2]+80>>2])*k)+C)),br(f,I,$,o,t,n,y,C),(c=c+1|0)>>>0>2];);return}if(y=p[r+40>>2],k=p[r+36>>2],a=p[r+32>>2],C=p[r+28>>2],b=v[r+24>>2],l[b+88|0]||Tr(b),v[r+12>>2])for(;u=v[v[r+20>>2]+(c<<2)>>2],l[u+88|0]||Tr(u),s=p[u+68>>2],C!=w(0)&&(n=w(w(p[b+68>>2]-s)+p[v[r+4>>2]+60>>2]),G=+w(n/w(-360))+16384.499999999996,f=g(G)<2147483648?~~G:-2147483648,s=w(w(w(n-w(0|m(16384-f|0,360)))*C)+s)),h=p[u+64>>2],o=p[u+60>>2],a!=w(0)&&(f=v[r+4>>2],h=w(w(w(w(p[b+64>>2]-h)+p[f+68>>2])*a)+h),o=w(w(w(w(p[b+60>>2]-o)+p[f+64>>2])*a)+o)),n=p[u+76>>2],t=p[u+72>>2],k!=w(0)&&(t=t>w(9999999747378752e-21)?w(w(w(w(w(p[b+72>>2]-t)+p[v[r+4>>2]+72>>2])*k)+t)/t):t,n>w(9999999747378752e-21)&&(n=w(w(w(w(w(p[b+76>>2]-n)+p[v[r+4>>2]+76>>2])*k)+n)/n))),I=p[u+84>>2],y!=w(0)&&($=w(w(p[b+84>>2]-I)+p[v[r+4>>2]+80>>2]),G=+w($/w(-360))+16384.499999999996,f=g(G)<2147483648?~~G:-2147483648,p[u+56>>2]=w(w($-w(0|m(16384-f|0,360)))*y)+p[u+56>>2]),br(u,o,h,s,t,n,p[u+80>>2],I),(c=c+1|0)>>>0>2];);}else if(b){if(V=u=V-16|0,v[r+12>>2])for(f=v[r+4>>2],c=v[r+24>>2],F=p[c+92>>2],P=p[c+108>>2],A=p[c+104>>2],E=p[c+96>>2],n=w(w(F*P)-w(A*E))>w(0)?w(.01745329238474369):w(-.01745329238474369),C=w(p[f+80>>2]*n),I=w(p[f+60>>2]*n),R=p[r+40>>2],S=p[r+36>>2],s=p[r+32>>2],b=(h=p[r+28>>2])!=w(0),$=w(w(T(w(w(E*E)+w(P*P))))+w(-1)),o=w(w(T(w(w(F*F)+w(A*A))))+w(-1));;){e=v[v[r+20>>2]+(W<<2)>>2],h!=w(0)&&(k=p[e+108>>2],a=p[e+104>>2],y=p[e+96>>2],t=p[e+92>>2],(n=w(I+Or(A,F)))>w(3.1415927410125732)?n=w(n+w(-6.2831854820251465)):n>2]=w(n*y)+w(k*O),p[e+104>>2]=w(n*t)+w(a*O),p[e+96>>2]=w(O*y)-w(k*n),p[e+92>>2]=w(O*t)-w(a*n)),f=b,s!=w(0)&&(f=v[r+4>>2],ti(c,p[f+64>>2],p[f+68>>2],u+12|0,u+8|0),p[e+100>>2]=w(p[u+12>>2]*s)+p[e+100>>2],p[e+112>>2]=w(p[u+8>>2]*s)+p[e+112>>2],f=1);r:{n:{e:{if(!(S>w(0))){if(R>w(0))break e;if(f)break n;break r}if(f=v[r+4>>2],n=w(w(w(o+p[f+72>>2])*S)+w(1)),p[e+92>>2]=p[e+92>>2]*n,p[e+104>>2]=n*p[e+104>>2],n=w(w(w($+p[f+76>>2])*S)+w(1)),p[e+96>>2]=p[e+96>>2]*n,p[e+108>>2]=n*p[e+108>>2],!(R>w(0)))break n}(n=w(Or(P,E)-Or(A,F)))>w(3.1415927410125732)?n=w(n+w(-6.2831854820251465)):n>2],n=p[e+96>>2],t=w(t+Or(y,n)),n=w(T(w(w(n*n)+w(y*y)))),U=e,j=w(Ur(t)*n),p[U+108>>2]=j,U=e,j=w(Wr(t)*n),p[U+96>>2]=j}i[e+88|0]=0}if(!((W=W+1|0)>>>0>2]))break}V=u+16|0}else{if(V=u=V-16|0,v[r+12>>2])for(f=v[r+4>>2],c=v[r+24>>2],F=p[c+92>>2],P=p[c+108>>2],A=p[c+104>>2],E=p[c+96>>2],n=w(w(F*P)-w(A*E))>w(0)?w(.01745329238474369):w(-.01745329238474369),y=w(p[f+80>>2]*n),C=w(p[f+60>>2]*n),R=p[r+40>>2],S=p[r+36>>2],s=p[r+32>>2],b=(h=p[r+28>>2])!=w(0),I=w(T(w(w(E*E)+w(P*P)))),$=w(T(w(w(F*F)+w(A*A))));;){e=v[v[r+20>>2]+(W<<2)>>2],h!=w(0)&&(k=p[e+108>>2],a=p[e+96>>2],n=Or(A,F),o=p[e+104>>2],t=p[e+92>>2],(n=w(C+w(n-Or(o,t))))>w(3.1415927410125732)?n=w(n+w(-6.2831854820251465)):n>2]=w(n*a)+w(k*O),p[e+104>>2]=w(n*t)+w(o*O),p[e+96>>2]=w(O*a)-w(k*n),p[e+92>>2]=w(O*t)-w(o*n)),f=b,s!=w(0)&&(f=v[r+4>>2],ti(c,p[f+64>>2],p[f+68>>2],u+12|0,u+8|0),n=p[e+100>>2],p[e+100>>2]=w(w(p[u+12>>2]-n)*s)+n,n=p[e+112>>2],p[e+112>>2]=w(w(p[u+8>>2]-n)*s)+n,f=1);r:{n:{e:{f:{if(S>w(0)){if(o=p[e+92>>2],t=p[e+104>>2],(n=w(T(w(w(o*o)+w(t*t)))))>w(9999999747378752e-21)&&(n=w(w(w(w(w($-n)+p[v[r+4>>2]+72>>2])*S)+n)/n)),k=w(t*n),p[e+104>>2]=k,t=w(o*n),p[e+92>>2]=t,a=p[e+96>>2],o=p[e+108>>2],(n=w(T(w(w(a*a)+w(o*o)))))>w(9999999747378752e-21)&&(n=w(w(w(w(w(I-n)+p[v[r+4>>2]+76>>2])*S)+n)/n)),o=w(o*n),p[e+108>>2]=o,n=w(a*n),p[e+96>>2]=n,R>w(0))break f;break n}if(!(R>w(0)))break e;t=p[e+92>>2],k=p[e+104>>2],o=p[e+108>>2],n=p[e+96>>2]}a=Or(o,n),(t=w(w(Or(P,E)-Or(A,F))-w(a-Or(k,t))))>w(3.1415927410125732)?t=w(t+w(-6.2831854820251465)):t>2]=j,U=e,j=w(o*Wr(n)),p[U+96>>2]=j;break n}if(!f)break r}i[e+88|0]=0}if(!((W=W+1|0)>>>0>2]))break}V=u+16|0}},Lo,wo,Iu,Fa,function(r){return v[(r|=0)>>2]=10976,mo(r+24|0),0|Dt(r)},function(r){v[(r|=0)>>2]=10976,mo(r+24|0),pt(Dt(r))},function(){return 21392},Fa,function(r){return v[(r|=0)>>2]=11e3,To(r+20|0),0|Kt(r)},function(r){v[(r|=0)>>2]=11e3,To(r+20|0),pt(Kt(r))},function(){return 21404},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a=w(0),c=w(0),b=w(0),k=0,s=w(0);r:if(n=v[v[n+84>>2]+(v[r+36>>2]<<2)>>2],0|Ta[v[v[n>>2]+16>>2]](n)){if(i=v[r+32>>2],p[i>>2]>f){n:switch(0|u){case 0:return r=v[n+4>>2],p[n+28>>2]=p[r+44>>2],p[n+32>>2]=p[r+48>>2],p[n+36>>2]=p[r+52>>2],void(p[n+40>>2]=p[r+56>>2]);case 1:break n;default:break r}return r=v[n+4>>2],e=p[n+28>>2],p[n+28>>2]=w(w(p[r+44>>2]-e)*t)+e,e=p[n+32>>2],p[n+32>>2]=w(w(p[r+48>>2]-e)*t)+e,e=p[n+36>>2],p[n+36>>2]=w(w(p[r+52>>2]-e)*t)+e,e=p[n+40>>2],void(p[n+40>>2]=w(w(p[r+56>>2]-e)*t)+e)}if(i=i+(v[r+24>>2]<<2)|0,p[i-20>>2]<=f?(f=p[i-4>>2],e=p[i-8>>2],c=p[i-12>>2],a=p[i-16>>2]):(i=(k=(o=Se(r+20|0,f,5))<<2)+v[r+32>>2]|0,b=p[i-16>>2],c=p[i-12>>2],e=p[i-8>>2],s=p[i-4>>2],a=f,f=p[i>>2],a=vn(r,((0|o)/5|0)-1|0,w(w(1)-w(w(a-f)/w(p[i-20>>2]-f)))),r=v[r+32>>2]+k|0,f=w(s+w(a*w(p[r+16>>2]-s))),e=w(e+w(a*w(p[r+12>>2]-e))),c=w(c+w(a*w(p[r+8>>2]-c))),a=w(b+w(a*w(p[r+4>>2]-b)))),!u)return b=a,r=v[n+4>>2],a=p[r+44>>2],p[n+28>>2]=w(w(b-a)*t)+a,a=p[r+48>>2],p[n+32>>2]=w(w(c-a)*t)+a,a=e,e=p[r+52>>2],p[n+36>>2]=w(w(a-e)*t)+e,e=p[r+56>>2],void(p[n+40>>2]=w(w(f-e)*t)+e);b=a,a=p[n+28>>2],p[n+28>>2]=w(w(b-a)*t)+a,a=p[n+32>>2],p[n+32>>2]=w(w(c-a)*t)+a,a=e,e=p[n+36>>2],p[n+36>>2]=w(w(a-e)*t)+e,e=p[n+40>>2],p[n+40>>2]=w(w(f-e)*t)+e}},function(r){return v[36+(r|=0)>>2]+167772160|0},Fa,function(r){Et(r|=0),pt(r)},function(){return 21416},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a=w(0),c=0,b=w(0);r:if(n=v[v[n+20>>2]+(v[r+36>>2]<<2)>>2],l[n+117|0]){if(i=v[r+32>>2],p[i>>2]>f){n:switch(0|u){case 0:return r=v[n+4>>2],p[n+32>>2]=p[r+28>>2],void(p[n+36>>2]=p[r+32>>2]);case 1:break n;default:break r}return r=v[n+4>>2],e=p[n+32>>2],p[n+32>>2]=w(w(p[r+28>>2]-e)*t)+e,e=p[n+36>>2],void(p[n+36>>2]=w(w(p[r+32>>2]-e)*t)+e)}i=i+(v[r+24>>2]<<2)|0,p[i-12>>2]<=f?(f=p[i-4>>2],e=p[i-8>>2]):(i=(c=(o=Se(r+20|0,f,3))<<2)+v[r+32>>2]|0,e=p[i-8>>2],b=p[i-4>>2],a=f,f=p[i>>2],a=vn(r,((0|o)/3|0)-1|0,w(w(1)-w(w(a-f)/w(p[i-12>>2]-f)))),r=v[r+32>>2]+c|0,f=w(b+w(a*w(p[r+8>>2]-b))),e=w(e+w(a*w(p[r+4>>2]-e))));n:switch(0|u){case 0:return r=v[n+4>>2],p[n+32>>2]=w(e*t)+p[r+28>>2],void(p[n+36>>2]=w(f*t)+p[r+32>>2]);case 1:case 2:return r=v[n+4>>2],a=w(e+p[r+28>>2]),e=p[n+32>>2],p[n+32>>2]=w(w(a-e)*t)+e,e=p[n+36>>2],void(p[n+36>>2]=w(w(w(f+p[r+32>>2])-e)*t)+e);case 3:break n;default:break r}p[n+32>>2]=w(e*t)+p[n+32>>2],p[n+36>>2]=w(f*t)+p[n+36>>2]}},function(r){return v[36+(r|=0)>>2]+16777216|0},_f,function(r){_f(r|=0),pt(r)},Fa,function(r){return v[(r|=0)>>2]=11100,To(r+20|0),0|Kt(r)},function(r){v[(r|=0)>>2]=11100,To(r+20|0),pt(Kt(r))},function(){return 21428},function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t=w(t),u|=0,o|=0;var a=0,c=w(0),b=w(0),k=w(0),s=w(0),l=w(0),h=w(0),d=0,y=0,m=0,g=0,F=w(0);r:if(n=v[v[n+36>>2]+(v[r+36>>2]<<2)>>2],i=v[n+8>>2],0|Ta[v[v[i>>2]+16>>2]](i)){if(d=n+36|0,y=n+16|0,i=Xo(v[n+4>>2]),o=la(v[n+4>>2]),a=v[r+32>>2],p[a>>2]>f){n:switch(0|u){case 0:return p[n+20>>2]=p[i+4>>2],p[n+24>>2]=p[i+8>>2],p[n+28>>2]=p[i+12>>2],p[n+32>>2]=p[i+16>>2],vf(y),p[n+40>>2]=p[o+4>>2],p[n+44>>2]=p[o+8>>2],p[n+48>>2]=p[o+12>>2],p[n+52>>2]=p[o+16>>2],void vf(d);case 1:break n;default:break r}return e=p[n+20>>2],p[n+20>>2]=w(w(e-p[i+4>>2])*t)+e,e=p[n+24>>2],p[n+24>>2]=w(w(e-p[i+8>>2])*t)+e,e=p[n+28>>2],p[n+28>>2]=w(w(e-p[i+12>>2])*t)+e,e=p[n+32>>2],p[n+32>>2]=w(w(e-p[i+16>>2])*t)+e,e=p[n+40>>2],p[n+40>>2]=w(w(e-p[o+4>>2])*t)+e,e=p[n+44>>2],p[n+44>>2]=w(w(e-p[o+8>>2])*t)+e,e=p[n+48>>2],void(p[n+48>>2]=w(w(e-p[o+12>>2])*t)+e)}if(a=a+(v[r+24>>2]<<2)|0,p[a-32>>2]<=f?(f=p[a-4>>2],b=p[a-8>>2],k=p[a-12>>2],c=p[a-16>>2],s=p[a-20>>2],l=p[a-24>>2],e=p[a-28>>2]):(a=(g=(m=Se(r+20|0,f,8))<<2)+v[r+32>>2]|0,h=p[a-28>>2],l=p[a-24>>2],s=p[a-20>>2],c=p[a-16>>2],k=p[a-12>>2],b=p[a-8>>2],F=p[a-4>>2],e=p[a>>2],e=vn(r,(m>>>3|0)-1|0,w(w(1)-w(w(f-e)/w(p[a-32>>2]-e)))),r=v[r+32>>2]+g|0,f=w(F+w(e*w(p[r+28>>2]-F))),b=w(b+w(e*w(p[r+24>>2]-b))),k=w(k+w(e*w(p[r+20>>2]-k))),c=w(c+w(e*w(p[r+16>>2]-c))),s=w(s+w(e*w(p[r+12>>2]-s))),l=w(l+w(e*w(p[r+8>>2]-l))),e=w(h+w(e*w(p[r+4>>2]-h)))),t==w(1))return p[n+32>>2]=c,p[n+28>>2]=s,p[n+24>>2]=l,p[n+20>>2]=e,vf(y),v[n+52>>2]=1065353216,p[n+48>>2]=f,p[n+44>>2]=b,p[n+40>>2]=k,void vf(d);u||(p[n+20>>2]=p[i+4>>2],p[n+24>>2]=p[i+8>>2],p[n+28>>2]=p[i+12>>2],p[n+32>>2]=p[i+16>>2],vf(y),p[n+40>>2]=p[o+4>>2],p[n+44>>2]=p[o+8>>2],p[n+48>>2]=p[o+12>>2],p[n+52>>2]=p[o+16>>2],vf(d)),h=p[n+32>>2],p[n+32>>2]=h+w(w(c-h)*t),c=p[n+28>>2],p[n+28>>2]=c+w(w(s-c)*t),c=p[n+24>>2],p[n+24>>2]=c+w(w(l-c)*t),c=p[n+20>>2],p[n+20>>2]=c+w(w(e-c)*t),vf(y),p[n+52>>2]=p[n+52>>2]+w(0),e=p[n+48>>2],p[n+48>>2]=e+w(w(f-e)*t),e=p[n+44>>2],p[n+44>>2]=e+w(w(b-e)*t),e=p[n+40>>2],p[n+40>>2]=e+w(w(k-e)*t),vf(d)}},function(r){return v[36+(r|=0)>>2]+234881024|0},Fa,ta,ga,function(){return 21440},Fa,ga,function(){return 21452},Fa,Fa,Fa,pa,function(){return 21480},sa,function(r,n,e){r|=0,n|=0,e|=0;var f=w(0),i=w(0),t=w(0),u=0,o=w(0);i=p[r+8>>2],f=p[r+4>>2],t=w(-f),u=n,o=w(ie(t,f,w(w(f-f)*w(.5)))+p[n>>2]),p[u>>2]=o,u=e,o=w(ie(t,i,w(w(i-f)*w(.5)))+p[e>>2]),p[u>>2]=o},Fa,pa,function(){return 21492},function(r,n){n|=0,p[20+(r|=0)>>2]=p[n+172>>2]+p[r+4>>2],p[r+24>>2]=p[n+176>>2]+p[r+8>>2]},function(r,n,e){r|=0,n|=0,e|=0;var f=w(0),i=w(0),t=w(0),u=w(0),o=0;t=w(p[n>>2]-p[r+20>>2]),u=w(p[e>>2]-p[r+24>>2]),(f=w(T(w(w(t*t)+w(u*u)))))<(i=p[r+12>>2])&&(o=v[r+28>>2],i=Ur(f=w(Ta[v[v[o>>2]+8>>2]](o,w(0),p[r+16>>2],w(w(i-f)/i)))),f=Wr(f),p[n>>2]=p[r+20>>2]+w(w(f*t)-w(u*i)),p[e>>2]=w(w(i*t)+w(u*f))+p[r+24>>2])},Fa,function(){return 21533},lu,$o,function(){return 0|Yi(11260)},cn,vi,zo,Ci,function(r,n){return n|=0,v[12+(r|=0)>>2]+m(n,20)|0},function(r,n,e){n|=0,e|=0;var f=0;return f=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),r=0|Ta[0|f](n,e),n=Wt(20),v[n+16>>2]=v[r+16>>2],e=v[r+12>>2],v[n+8>>2]=v[r+8>>2],v[n+12>>2]=e,e=v[r+4>>2],v[n>>2]=v[r>>2],v[n+4>>2]=e,0|n},function(){return 21539},lu,$o,function(){return 0|Yi(8776)},wn,function(r,n,e,f){var i,t;r|=0,n|=0,e|=0,f=w(f),V=i=V-16|0,n=((t=v[r+4>>2])>>1)+n|0,r=v[r>>2],r=1&t?v[v[n>>2]+r>>2]:r,p[i+12>>2]=f,Ta[0|r](n,e,i+12|0),V=i+16|0},zo,Ci,xt,function(r,n,e){n|=0,e|=0;var f=0;return f=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),w(p[Ta[0|f](n,e)>>2])},function(r,n,e){n|=0,e|=0,p[v[12+(r|=0)>>2]+(n<<2)>>2]=p[e>>2]},function(){return 21544},lu,$o,function(){return 0|Yi(9464)},function(r,n,e){r|=0,n|=0,e|=0;var f=0,i=w(0),t=0,u=0,o=0;f=v[r+4>>2],v[r+4>>2]=n,d[r+8>>2]>>0&&(i=w(w(n>>>0)*w(1.75)),n=(n=w(g(i))>>0<=8?8:n,v[r+8>>2]=n,t=v[5280],u=r,o=0|Ta[v[v[t>>2]+16>>2]](t,v[r+12>>2],n<<4,8590,85),v[u+12>>2]=o,n=v[r+4>>2]);r:if(n>>>0<=f>>>0){if(n>>>0>=f>>>0)break r;for(;e=v[r+12>>2]+(n<<4)|0,Ta[v[v[e>>2]>>2]](e),(0|f)!=(0|(n=n+1|0)););}else for(;Bn(v[r+12>>2]+(f<<4)|0,e),(f=f+1|0)>>>0>2];);},vi,zo,Ci,Mt,function(r,n,e){n|=0,e|=0;var f=0;return f=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),r=0|Ta[0|f](n,e),0|Bn(ut(16),r)},di,function(){return 21547},lu,$o,function(){return 0|Yi(8744)},gn,mf,zo,Ci,xt,ki,dt,function(){return 21550},lu,$o,function(){return 0|Yi(11596)},gn,mf,zo,Ci,xt,ki,dt,function(){return 21554},lu,$o,function(){return 0|Yi(9508)},function(r,n,e){r|=0,n|=0,e|=0;var f=0,i=w(0),t=0,u=0,o=0;f=v[r+4>>2],v[r+4>>2]=n,d[r+8>>2]>>0&&(i=w(w(n>>>0)*w(1.75)),n=(n=w(g(i))>>0<=8?8:n,v[r+8>>2]=n,t=v[5280],u=r,o=0|Ta[v[v[t>>2]+16>>2]](t,v[r+12>>2],n<<4,8590,85),v[u+12>>2]=o,n=v[r+4>>2]);r:if(n>>>0<=f>>>0){if(n>>>0>=f>>>0)break r;for(;e=v[r+12>>2]+(n<<4)|0,Ta[v[v[e>>2]>>2]](e),(0|f)!=(0|(n=n+1|0)););}else for(;Nn(v[r+12>>2]+(f<<4)|0,e),(f=f+1|0)>>>0>2];);},vi,zo,Ci,Mt,function(r,n,e){n|=0,e|=0;var f=0;return f=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),r=0|Ta[0|f](n,e),0|Nn(ut(16),r)},di,function(){return 21557},lu,$o,function(){return 0|Yi(10768)},function(r,n,e){r|=0,n|=0,e|=0;var f=0,i=w(0),t=0,u=0,o=0;if(f=v[r+4>>2],v[r+4>>2]=n,d[r+8>>2]>>0&&(i=w(w(n>>>0)*w(1.75)),n=(n=w(g(i))>>0<=8?8:n,v[r+8>>2]=n,t=v[5280],u=r,o=0|Ta[v[v[t>>2]+16>>2]](t,v[r+12>>2],n<<2,8590,85),v[u+12>>2]=o,n=v[r+4>>2]),n>>>0>f>>>0)for(n=v[r+12>>2];v[n+(f<<2)>>2]=v[e>>2],(f=f+1|0)>>>0>2];);},mf,zo,Ci,xt,ki,dt,function(){return 21560},lu,$o,function(){return 0|Yi(9852)},Fn,function(r,n,e,f){var i,t;n|=0,e|=0,f|=0,V=i=V-16|0,n=((t=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&t?v[v[n>>2]+r>>2]:r,s[i+14>>1]=f,Ta[0|r](n,e,i+14|0),V=i+16|0},zo,Ci,function(r,n){return n|=0,v[12+(r|=0)>>2]+(n<<1)|0},function(r,n,e){n|=0,e|=0;var f=0;return f=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),h[Ta[0|f](n,e)>>1]},function(r,n,e){n|=0,e|=0,s[v[12+(r|=0)>>2]+(n<<1)>>1]=h[e>>1]},function(){return 21564},lu,$o,function(){return 0|Yi(9212)},tn,Ve,zo,Ci,function(r,n){return n|=0,v[12+(r|=0)>>2]+m(n,12)|0},function(r,n,e){n|=0,e|=0;var f=0;return f=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),e=0|Ta[0|f](n,e),n=X((r=v[e+4>>2])+4|0),v[n>>2]=r,Ri(n+4|0,v[e+8>>2],r),0|n},function(r,n,e){n|=0,e|=0,te(v[12+(r|=0)>>2]+m(n,12)|0,e)},function(){return 21567},lu,$o,function(){return 0|Yi(9260)},$n,mf,zo,Ci,xt,ki,function(){return 21570},lu,$o,function(){return 0|Yi(9676)},$n,mf,zo,Ci,xt,ki,function(){return 21574},lu,$o,function(){return 0|Yi(10536)},$n,mf,zo,Ci,xt,ki,function(){return 21578},lu,$o,function(){return 0|Yi(10616)},$n,mf,zo,Ci,xt,ki,function(){return 21581},lu,$o,function(){return 0|Yi(10632)},$n,mf,zo,Ci,xt,ki,function(){return 21584},lu,$o,function(){return 0|Yi(10848)},$n,mf,zo,Ci,xt,ki,function(){return 21587},lu,$o,function(){return 0|Yi(10232)},$n,mf,zo,Ci,xt,ki,function(){return 21591},lu,$o,function(){return 0|Yi(10552)},$n,mf,zo,Ci,xt,ki,function(){return 21595},lu,$o,function(){return 0|Yi(10568)},$n,mf,zo,Ci,xt,ki,function(){return 21599},lu,$o,function(){return 0|Yi(8824)},$n,mf,zo,Ci,xt,ki,function(){return 21603},lu,$o,function(){return 0|Yi(10584)},$n,mf,zo,Ci,xt,ki,function(){return 21607},lu,$o,function(){return 0|Yi(10248)},$n,mf,zo,Ci,xt,ki,function(){return 21610},lu,$o,function(){return 0|Yi(10600)},$n,mf,zo,Ci,xt,ki,function(){return 21613},lu,$o,function(){return 0|Yi(10264)},$n,mf,zo,Ci,xt,ki,function(){return 21616},lu,$o,function(){return 0|Yi(10280)},$n,mf,zo,Ci,xt,ki,function(){return 21619},lu,$o,function(){return 0|Yi(1048)},$n,mf,zo,Ci,xt,ki,dt,function(){return 21622},lu,$o,function(){return 0|Yi(8760)},$n,mf,zo,Ci,xt,ki,function(){return 21626},lu,$o,function(){return 0|Yi(10296)},$n,mf,zo,Ci,xt,ki,function(){return 21629},lu,$o,function(){return 0|Yi(12912)},$n,mf,zo,Ci,xt,ki,function(){return 21633},lu,$o,function(){return 0|Yi(12976)},function(r,n,e){r|=0,n|=0,e|=0;var f=0,i=w(0),t=0,u=0,o=0;f=v[r+4>>2],v[r+4>>2]=n,d[r+8>>2]>>0&&(i=w(w(n>>>0)*w(1.75)),n=(n=w(g(i))>>0<=8?8:n,v[r+8>>2]=n,t=v[5280],u=r,o=0|Ta[v[v[t>>2]+16>>2]](t,v[r+12>>2],n<<4,8590,85),v[u+12>>2]=o,n=v[r+4>>2]);r:if(n>>>0<=f>>>0){if(n>>>0>=f>>>0)break r;for(;e=v[r+12>>2]+(n<<4)|0,Ta[v[v[e>>2]>>2]](e),(0|f)!=(0|(n=n+1|0)););}else for(;Mo(v[r+12>>2]+(f<<4)|0,e),(f=f+1|0)>>>0>2];);},vi,zo,Ci,Mt,function(r,n,e){n|=0,e|=0;var f=0;return f=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(f=v[f+v[n>>2]>>2]),r=0|Ta[0|f](n,e),0|Mo(ut(16),r)},function(){return 21636},ra,$o,function(){var r;return r=Wt(8),v[r>>2]=0,v[r+4>>2]=0,0|r},ai,function(r,n){return r|=0,n|=0,0|vt(Wt(8),p[r>>2],p[n>>2])},qt,zt,vt,function(r,n,e,f){r|=0,n|=0,e=w(e),f=w(f);var i=0;return i=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(i=v[i+v[n>>2]>>2]),r=0|Ta[0|i](n,e,f),n=Wt(8),i=v[r+4>>2],v[n>>2]=v[r>>2],v[n+4>>2]=i,0|n},function(r){r|=0;var n=w(0),e=w(0);return n=p[r>>2],e=w(n*n),n=p[r+4>>2],w(w(T(w(e+w(n*n)))))},pi,function(r){r|=0;var n=w(0),e=w(0),f=w(0);return n=p[r>>2],e=p[r+4>>2],f=w(w(1)/w(T(w(w(n*n)+w(e*e))))),p[r+4>>2]=e*f,p[r>>2]=n*f,0|r},function(r,n){n|=0;var e=0;return e=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(e=v[e+v[n>>2]>>2]),r=0|Ta[0|e](n),n=Wt(8),e=v[r+4>>2],v[n>>2]=v[r>>2],v[n+4>>2]=e,0|n},function(){return 21639},lu,$o,function(){var r;return r=ut(20),v[r+4>>2]=0,v[r+8>>2]=0,v[r>>2]=9372,v[r+12>>2]=0,v[r+16>>2]=0,0|r},function(r,n,e,f,i){var t;return r|=0,n=w(n),e=w(e),f=w(f),i=w(i),V=t=V-16|0,p[t+12>>2]=n,p[t+8>>2]=e,p[t+4>>2]=f,p[t>>2]=i,r=0|Ta[0|r](t+12|0,t+8|0,t+4|0,t),V=t+16|0,0|r},function(r,n,e,f){r|=0,n|=0,e|=0,f|=0;var i,t=w(0),u=w(0),o=w(0);return i=ut(20),t=p[r>>2],u=p[n>>2],o=p[e>>2],p[i+16>>2]=p[f>>2],p[i+12>>2]=o,p[i+8>>2]=u,p[i+4>>2]=t,v[i>>2]=9372,vf(i),0|i},function(r,n,e,f,i){return r|=0,n=w(n),e=w(e),f=w(f),i=w(i),p[r+16>>2]=i,p[r+12>>2]=f,p[r+8>>2]=e,p[r+4>>2]=n,vf(r),0|r},function(r,n,e,f,i,t){r|=0,n|=0,e=w(e),f=w(f),i=w(i),t=w(t);var u=0;return u=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(u=v[u+v[n>>2]>>2]),n=0|Ta[0|u](n,e,f,i,t),r=ut(20),v[r>>2]=9372,u=v[n+8>>2],v[r+4>>2]=v[n+4>>2],v[r+8>>2]=u,u=v[n+16>>2],v[r+12>>2]=v[n+12>>2],v[r+16>>2]=u,0|r},function(r,n,e,f,i){return r|=0,n=w(n),e=w(e),f=w(f),i=w(i),p[r+4>>2]=p[r+4>>2]+n,p[r+8>>2]=p[r+8>>2]+e,p[r+12>>2]=p[r+12>>2]+f,p[r+16>>2]=p[r+16>>2]+i,vf(r),0|r},vf,function(r,n){n|=0;var e=0;return e=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(e=v[e+v[n>>2]>>2]),n=0|Ta[0|e](n),r=ut(20),v[r>>2]=9372,e=v[n+8>>2],v[r+4>>2]=v[n+4>>2],v[r+8>>2]=e,e=v[n+16>>2],v[r+12>>2]=v[n+12>>2],v[r+16>>2]=e,0|r},qt,zt,Ct,ru,bi,function(){return 21642},lu,$o,function(){var r;return r=Wt(12),v[r+4>>2]=0,v[r+8>>2]=0,v[r>>2]=8728,0|r},At,lu,wi,function(r){return r|=0,0|at(ut(24),r)},na,bf,uu,Zt,ou,Yt,At,ta,ta,lu,wi,function(r){return r|=0,0|Qe(ut(60),r)},Xo,uu,Zt,uu,Zt,ou,Yt,qt,zt,At,ta,ta,lu,wi,function(r){return r|=0,0|tt(ut(76),r)},Xo,uu,Zt,uu,Zt,uu,Zt,uu,Zt,qt,zt,function(){return 21648},lu,$o,function(){var r;return r=ut(68),v[r+40>>2]=0,v[r+44>>2]=0,v[r+36>>2]=10392,v[r+32>>2]=0,v[r+24>>2]=0,v[r+28>>2]=0,v[r+20>>2]=10408,v[r+16>>2]=0,v[r+8>>2]=0,v[r+12>>2]=0,v[r+4>>2]=10392,v[r>>2]=10360,v[r+48>>2]=0,v[r+52>>2]=0,v[r+56>>2]=0,v[r+60>>2]=0,v[r- -64>>2]=0,0|r},function(r,n,e){r|=0,n|=0,e|=0;var f,i=0,t=0,u=0,o=w(0),a=0,c=w(0),b=w(0),k=w(0),s=w(0),l=0,h=0,y=0,m=0,g=0;if(V=f=V-16|0,l=v[n+28>>2],v[r+24>>2]=0,i=v[r+40>>2])for(a=r+4|0;Un(a,v[r+48>>2]+(t<<2)|0),(0|i)!=(0|(t=t+1|0)););if(v[r+40>>2]=0,l)for(m=r+36|0,g=r+20|0,t=0;a=v[v[n+36>>2]+(t<<2)>>2],i=v[a+8>>2],0|Ta[v[v[i>>2]+16>>2]](i)&&(i=v[a+60>>2])&&Si(0|Ta[v[v[i>>2]+8>>2]](i),21012)&&(v[f+12>>2]=i,Un(g,f+12|0),v[f+8>>2]=0,(i=v[r+8>>2])?(u=i-1|0,i=v[v[r+16>>2]+(u<<2)>>2],v[r+8>>2]=u):(i=ut(24),v[i+4>>2]=8776,v[i>>2]=10376,v[i+8>>2]=0,v[i+12>>2]=0,v[i+16>>2]=0,v[i+20>>2]=0,ya(i+4|0,16)),v[f+8>>2]=i,Un(m,f+8|0),u=v[f+8>>2],i=v[f+12>>2],h=v[i+52>>2],v[u+20>>2]=h,y=u+4|0,d[u+8>>2]>>0&&(v[f+4>>2]=0,wn(y,h,f+4|0),i=v[f+12>>2]),vr(i,a,0,v[i+52>>2],v[y+12>>2],0,2)),(0|l)!=(0|(t=t+1|0)););if(e){if(n=0,t=v[r+40>>2])for(l=v[r+48>>2],k=w(34028234663852886e22),s=w(11754943508222875e-54),c=w(11754943508222875e-54),b=w(34028234663852886e22);;){if(e=v[l+(n<<2)>>2],(0|(a=v[e+20>>2]))>0)for(i=v[e+16>>2],e=0;k=(o=p[(u=e<<2)+i>>2])s?s:o,b=(o=p[i+(4|u)>>2])c?c:o,(0|a)>(0|(e=e+2|0)););if((0|t)==(0|(n=n+1|0)))break}else c=w(11754943508222875e-54),b=w(34028234663852886e22),k=w(34028234663852886e22),s=w(11754943508222875e-54);p[r+64>>2]=b,p[r+60>>2]=k,p[r+56>>2]=c,p[r+52>>2]=s}else v[r+60>>2]=2139095039,v[r+64>>2]=2139095039,v[r+52>>2]=8388608,v[r+56>>2]=8388608;V=f+16|0},vi,function(r,n,e){r|=0,n=w(n),e=w(e);var f=0;return!(p[r+56>>2]<=e)|!(p[r+52>>2]<=n)|!(p[r+60>>2]>=n)||(f=p[r+64>>2]>=e),0|f},function(r,n,e,f){r|=0,n|=0,e=w(e),f=w(f);var i=0;return i=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(i=v[i+v[n>>2]>>2]),0|Ta[0|i](n,e,f)},function(r,n,e,f,i){r|=0,n=w(n),e=w(e),f=w(f),i=w(i);var t=w(0),u=w(0),o=w(0),a=w(0),c=0;return(t=p[r+52>>2])>=n&f<=t|(u=p[r+56>>2])>=e&i<=u|(o=p[r+60>>2])<=n&f>=o|(a=p[r+64>>2])<=e&i>=a||(c=1,f=w(w(i-e)/w(f-n)),(i=w(w(f*w(t-n))+e))>u&iu&it&it&n>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(u=v[u+v[n>>2]>>2]),0|Ta[0|u](n,e,f,i,t)},function(r,n){n|=0;var e=0;return!(p[56+(r|=0)>>2]>2])|!(p[r+52>>2]>2])|!(p[r+60>>2]>p[n+52>>2])||(e=p[r+64>>2]>p[n+56>>2]),0|e},function(r,n,e){e|=0;var f,i,t,u=0,o=0,a=0,c=0,b=0;if(V=f=V-80|0,i=(u=n|=0)+((n=v[4+(r|=0)>>2])>>1)|0,r=v[r>>2],r=1&n?v[v[i>>2]+r>>2]:r,v[f+12>>2]=10360,t=xo(f+16|0,e+4|0),v[(n=f+32|0)>>2]=10408,v[n+4>>2]=v[e+24>>2],u=v[e+28>>2],v[n+12>>2]=0,v[n+8>>2]=u,u&&(o=v[5280],c=n,b=0|Ta[v[v[o>>2]+12>>2]](o,u<<2,8590,210),v[c+12>>2]=b,o=v[n+4>>2]))for(u=0;v[(a=u<<2)+v[n+12>>2]>>2]=v[v[e+32>>2]+a>>2],(0|o)!=(0|(u=u+1|0)););return u=xo(f+48|0,e+36|0),o=v[e+64>>2],v[f+72>>2]=v[e+60>>2],v[f+76>>2]=o,o=v[e+56>>2],v[f+64>>2]=v[e+52>>2],v[f+68>>2]=o,r=0|Ta[0|r](i,f+12|0),v[f+12>>2]=10360,Ju(u),Vu(n),Ju(t),V=f+80|0,0|r},function(r,n,e){r|=0,n=w(n),e=w(e);var f,i=w(0),t=0,u=w(0),o=0,a=0,c=0,b=0,k=0,s=0,l=0;r:{if(f=v[r+40>>2])for(s=r,l=v[r+48>>2];;){if(a=0,r=v[(o<<2)+l>>2],(0|(c=v[r+20>>2]))>0)for(t=c-2|0,b=v[r+16>>2],r=0;!((i=p[(4|(k=r<<2))+b>>2])>2])>=e)&(!(e<=i)|!(e>u))||(u=w(w(e-i)/w(u-i)),i=p[b+k>>2],w(w(u*w(p[t>>2]-i))+i)(0|(r=r+2|0)););if(r=v[v[s+32>>2]+(o<<2)>>2],1&a)break r;if((0|f)==(0|(o=o+1|0)))break}r=0}return 0|r},function(r,n,e,f,i){r|=0,n=w(n),e=w(e),f=w(f),i=w(i);var t,u=0,o=w(0),a=w(0),c=0,b=w(0),k=w(0),s=0,l=w(0),h=0,d=0,y=w(0),m=w(0),g=w(0),F=w(0),A=w(0),T=w(0),$=0,I=w(0);b=n,k=e;r:{if(t=v[r+40>>2])for($=v[r+48>>2];;){u=v[(s<<2)+$>>2];n:{if(h=v[u+20>>2])for(y=w(w(b*i)-w(k*f)),m=w(-w(k-i)),d=v[u+16>>2],n=p[(u=d+(h<<2)|0)-8>>2],e=p[u-4>>2],g=w(b-f),I=w(-g),u=0;;){if(l=e,o=n,n=p[(c=u<<2)+d>>2],a=w(o-n),e=p[(4|c)+d>>2],F=w(w(o*e)-w(n*l)),A=w(l-e),T=w(w(g*A)+w(a*m)),!(!((a=w(w(w(y*a)+w(F*I))/T))>=o&n>=a)&(!(n<=a)|!(o>=a))|!(a>=b&f>=a)&(!(f<=a)|!(a<=b))||!((o=w(w(w(y*A)+w(F*m))/T))>=l&e>=o)&(!(e<=o)|!(o<=l)))){if(c=1,o>=k&i>=o)break n;if(i<=o&&o<=k)break n}if(!(h>>>0>(u=u+2|0)>>>0))break}c=0}if(u=v[v[r+32>>2]+(s<<2)>>2],c)break r;if((0|t)==(0|(s=s+1|0)))break}u=0}return 0|u},function(r){return w(w(p[60+(r|=0)>>2]-p[r+52>>2]))},pi,function(r){return w(w(p[64+(r|=0)>>2]-p[r+56>>2]))},function(){return 21652},lu,Ei,function(r,n){return r|=0,n|=0,0|ii(ut(40),p[r>>2],n)},zo,Qt,uu,Zt,qt,zt,Ii,yi,function(){return 21654},lu,wi,function(r){return r|=0,0|ci(ut(56),r)},na,bf,uu,Zt,qt,zt,Ii,yi,At,lu,na,bf,At,ta,ta,lu,Io,Ci,qo,Yo,uu,Zt,uu,Zt,Ji,function(r,n,e,f,i,t,u,o){n|=0,e|=0,f|=0,i|=0,t|=0,u|=0,o|=0;var a=0;a=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(a=v[a+v[n>>2]>>2]),Ta[0|a](n,e,f,i,t,u,o)},ui,$i,At,ta,ta,lu,wi,function(r){return r|=0,0|gu(ut(64),r)},bf,Ci,At,ta,ta,lu,wi,function(r){return r|=0,0|$t(ut(68),r)},function(r){return v[64+(r|=0)>>2]},function(r,n){n|=0,v[64+(r|=0)>>2]=n},Ci,$i,Ci,At,ta,ta,lu,wi,function(r){return r|=0,0|zr(ut(236),r)},Ii,yi,function(r){return 120+(r|=0)|0},Bo,function(r){return 136+(r|=0)|0},function(r){return 0|aa(r|=0)},Qt,qt,zt,uu,Zt,function(r){return 152+(r|=0)|0},lr,ji,function(r){return v[100+(r|=0)>>2]},Ci,Kn,$i,Ci,Kr,At,ta,ta,lu,wi,function(r){return r|=0,0|Xf(ut(84),r)},Jo,ou,Yt,Ci,At,ta,ta,lu,wi,function(r){return r|=0,0|Vi(ut(32),r)},qt,zt,function(r,n,e,f){var i;r|=0,n|=0,e=w(e),f=w(f),V=i=V-16|0,p[i+12>>2]=e,p[i+8>>2]=f,ti(n,p[r+20>>2],p[r+24>>2],i+12|0,i+8|0),V=i+16|0},function(r,n){r|=0,n|=0;var e=w(0),f=w(0),i=w(0),t=w(0);return i=p[n+96>>2],f=Ur(e=w(p[r+28>>2]*w(.01745329238474369))),t=p[n+92>>2],e=Wr(e),w(w(Or(w(w(e*p[n+104>>2])+w(f*p[n+108>>2])),w(w(e*t)+w(f*i)))*w(57.2957763671875)))},si,Ci,At,ta,ta,lu,wi,function(r){return r|=0,0|_r(ut(164),r)},qt,zt,function(r){return 0|ka(r|=0)},Qt,Ii,yi,Zo,Qn,function(r,n,e,f,i,t,u){r|=0,n|=0,e=w(e),f=w(f),i=w(i),t=w(t),u|=0;var o=0;o=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(o=v[o+v[n>>2]>>2]),Ta[0|o](n,e,f,i,t,u)},Ko,Jr,ji,function(r,n,e,f,i){f|=0,i|=0,Xr(r|=0,n|=0,v[12+(e|=0)>>2],f,i)},function(r,n,e,f,i,t){n|=0,e|=0,f|=0,i|=0,t|=0;var u=0;u=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(u=v[u+v[n>>2]>>2]),Ta[0|u](n,e,f,i,t)},Ci,At,lu,ze,ze,ze,ze,se,se,At,ta,ta,lu,Hi,function(r){return r|=0,0|mt(ut(8),v[r>>2])},se,se,ze,ze,ze,ze,function(){return 21659},lu,wi,function(r){return r|=0,0|Ze(ut(68),r)},function(r,n){Ue(r|=0,16+(n|=0)|0)},uu,Zt,uu,Zt,uu,Zt,function(){return 21662},lu,function(r,n){Ue(r|=0,8+(n|=0)|0)},uu,Zt,ou,Yt,function(){return 21665},lu,function(){return 21668},lu,function(r,n,e,f){var t;return r|=0,e|=0,f|=0,V=t=V-32|0,n=$e(t+20|0,4+(n|=0)|0,v[n>>2],0),v[t+16>>2]=e,i[t+15|0]=f,r=0|Ta[0|r](n,t+16|0,t+15|0),gi(n),V=t+32|0,0|r},function(r,n,e){var f,t,u,o,a;return r|=0,n|=0,e|=0,f=ut(40),a=l[0|e],V=t=V-16|0,v[f+36>>2]=v[n>>2],v[f+32>>2]=0,v[f+24>>2]=0,v[f+28>>2]=0,v[f+20>>2]=9048,v[f+16>>2]=0,v[f+8>>2]=0,v[f+12>>2]=0,v[f+4>>2]=9032,v[f>>2]=8904,u=t+4|0,e=fi(n=v[r+8>>2],47),n=ei(e=ht(u,o=(n=fi(n,92))>>>0>>0?e:n,0),r),gi(e),e=v[5280],n=(n=n+o|0)?n-v[r+8>>2]|0:0,e=Ri(0|Ta[v[v[e>>2]+12>>2]](e,n+1|0,8590,54),v[r+8>>2],n),i[n+e|0]=0,n=v[5280],(n=0|Ta[v[v[n>>2]+24>>2]](n,r,u))&&tr(f,n,v[t+4>>2],e,a),r=v[5280],Ta[v[v[r>>2]+20>>2]](r,n,8590,63),r=v[5280],Ta[v[v[r>>2]+20>>2]](r,e,8590,64),V=t+16|0,0|f},nf,Be,Ct,ta,ta,ru,Hi,function(r){var n;return r|=0,n=Wt(8),v[n+4>>2]=v[r>>2],v[n>>2]=9756,0|n},Ct,ta,ta,ru,Hi,function(r){var n;return r|=0,n=Wt(8),v[n+4>>2]=v[r>>2],v[n>>2]=9784,0|n},function(){return 21647},lu,function(r,n,e,f){var i;return r|=0,n|=0,e|=0,f|=0,V=i=V-16|0,v[i+12>>2]=n,n=$e(i,e+4|0,v[e>>2],0),r=0|Ta[0|r](i+12|0,n,f),gi(n),V=i+16|0,0|r},function(r,n,e){return r|=0,n|=0,e|=0,0|Dn(ut(84),v[r>>2],n,e)},zo,Ci,Qo,bf,Oo,Qt,function(r){return 0|Xo(r|=0)},Qt,function(r){return 0|la(r|=0)},uu,Zt,At,lu,ji,Ci,Ci,$i,At,ta,ta,lu,St,function(r,n){return r|=0,n|=0,0|un(ut(48),r,n)},zo,Qt,Qo,uu,Zt,uu,Zt,ou,Yt,qt,zt,function(r,n,e,f,i,t,u,o){r|=0,n|=0,e=w(e),f=w(f),i|=0,t|=0,u|=0,o=w(o),Ta[0|r](n,e,f,i,t,u,o)},Ar,function(r,n,e,f,i,t,u,o,a){r|=0,n|=0,e|=0,f=w(f),i=w(i),t|=0,u|=0,o=w(o),a=w(a),Ta[0|r](n,e,f,i,t,u,o,a)},or,At,ta,ta,lu,St,function(r,n){return r|=0,n|=0,0|$r(ut(144),r,n)},zo,Qt,Qo,uu,Zt,qt,zt,At,ta,ta,lu,wi,function(r){return r|=0,0|it(ut(88),r)},Xo,function(r){return v[40+(r|=0)>>2]},Ci,function(r){return w(p[44+(r|=0)>>2])},pi,function(r){return w(p[48+(r|=0)>>2])},function(r){return w(p[52+(r|=0)>>2])},function(r){return w(p[56+(r|=0)>>2])},Mu,function(r){return w(p[64+(r|=0)>>2])},function(r){return w(p[68+(r|=0)>>2])},function(r){return w(p[72+(r|=0)>>2])},function(r){return w(p[76+(r|=0)>>2])},function(r){return w(p[80+(r|=0)>>2])},function(r){return l[84+(r|=0)|0]},Ci,function(r){return l[85+(r|=0)|0]},At,ta,ta,lu,St,function(r,n){return r|=0,n|=0,0|on(ut(48),r,n)},zo,Qt,Qo,Eo,Ci,qt,zt,At,ta,ta,lu,function(r,n,e,f){var i;return r|=0,n|=0,e|=0,f|=0,V=i=V-16|0,v[i+12>>2]=f,r=0|Ta[0|r](n,e,i+12|0),V=i+16|0,0|r},function(r,n,e){return r|=0,n|=0,e|=0,0|me(ut(120),r,n,v[e>>2])},zo,Qt,_o,Qt,Po,Ci,Vo,qt,zt,ou,Yt,Mi,ji,br,function(r,n,e,f,i,t,u,o,a){r|=0,n|=0,e=w(e),f=w(f),i=w(i),t=w(t),u=w(u),o=w(o),a=w(a);var c=0;c=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(c=v[c+v[n>>2]>>2]),Ta[0|c](n,e,f,i,t,u,o,a)},De,function(r){return w(w(Or(p[104+(r|=0)>>2],p[r+92>>2])*w(57.2957763671875)))},pi,function(r){return w(w(Or(p[108+(r|=0)>>2],p[r+96>>2])*w(57.2957763671875)))},function(r){r|=0;var n=w(0),e=w(0);return n=p[r+92>>2],e=w(n*n),n=p[r+104>>2],w(w(T(w(e+w(n*n)))))},function(r){r|=0;var n=w(0),e=w(0);return n=p[r+96>>2],e=w(n*n),n=p[r+108>>2],w(w(T(w(e+w(n*n)))))},function(r,n){r|=0,n|=0;var e,f=w(0),i=w(0),t=w(0),u=w(0),o=w(0),a=w(0),c=w(0);V=e=V-16|0,u=p[r+92>>2],f=p[r+108>>2],o=p[r+104>>2],i=p[r+96>>2],t=w(w(1)/w(w(u*f)-w(o*i))),a=f,f=w(p[n>>2]-p[r+100>>2]),c=i,i=w(p[n+4>>2]-p[r+112>>2]),p[e+12>>2]=w(w(a*f)*t)-w(t*w(c*i)),p[e+8>>2]=w(w(u*i)*t)-w(t*w(o*f)),p[n>>2]=p[e+12>>2],p[n+4>>2]=p[e+8>>2],V=e+16|0},function(r,n){var e;V=e=V-16|0,ti(r|=0,p[(n|=0)>>2],p[n+4>>2],e+12|0,e+8|0),p[n>>2]=p[e+12>>2],p[n+4>>2]=p[e+8>>2],V=e+16|0},function(r,n){r|=0,n=w(n);var e=w(0),f=w(0),i=w(0);return f=p[r+96>>2],n=Ur(e=w(n*w(.01745329238474369))),i=p[r+108>>2],e=Wr(e),w(w(w(w(Or(w(w(n*p[r+92>>2])-w(e*p[r+104>>2])),w(w(i*e)-w(n*f)))*w(57.2957763671875))+p[r+40>>2])-p[r+52>>2]))},bi,function(r,n){r|=0,n=w(n);var e=w(0),f=w(0),i=w(0);return f=p[r+96>>2],n=Ur(e=w(w(n-w(p[r+40>>2]-p[r+52>>2]))*w(.01745329238474369))),i=p[r+92>>2],e=Wr(e),w(w(Or(w(w(e*p[r+104>>2])+w(n*p[r+108>>2])),w(w(e*i)+w(n*f)))*w(57.2957763671875)))},function(r,n){r|=0,n=w(n);var e=w(0),f=w(0),t=w(0),u=w(0),o=w(0);i[r+88|0]=0,f=p[r+108>>2],n=Wr(e=w(n*w(.01745329238474369))),t=p[r+96>>2],e=Ur(e),p[r+108>>2]=w(t*e)+w(n*f),u=p[r+92>>2],o=p[r+104>>2],p[r+104>>2]=w(e*u)+w(n*o),p[r+96>>2]=w(n*t)-w(f*e),p[r+92>>2]=w(n*u)-w(o*e)},Ai,function(){return 21646},lu,lf,function(r,n,e){return r|=0,n|=0,e|=0,0|ne(ut(64),v[r>>2],n,v[e>>2])},zo,Ci,Qo,bf,uu,Zt,qt,zt,uu,Zt,ou,Yt,function(){return 21656},lu,St,function(r,n){return r|=0,n|=0,0|Cn(ut(84),r,n)},zo,Qt,_o,Qt,Vo,Qt,Yo,No,Po,Io,Ci,hi,$i,function(r,n){r|=0,n=w(n),p[r+64>>2]=p[v[r+12>>2]+160>>2]-n},Ai,function(r){return w(w(p[v[12+(r|=0)>>2]+160>>2]-p[r+64>>2]))},pi,Sn,ji,function(){return 21657},lu,wi,function(r){return r|=0,0|Ae(ut(68),r)},na,bf,Yo,function(r){return 52+(r|=0)|0},It,function(r,n,e,f,i){n|=0,e|=0,f|=0,i|=0;var t,u=0;V=t=V-16|0,n=((u=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&u?v[v[n>>2]+r>>2]:r,u=n,n=$e(t+4|0,f+4|0,v[f>>2],0),Ta[0|r](u,e,n,i),gi(n),V=t+16|0},function(r,n){r|=0;var e=0,f=0,i=0,t=0,u=0,o=0,a=0,c=0;if(f=v[40+(n|=0)>>2])for(c=r+36|0;;){t=v[n+48>>2]+(i<<2)|0;r:{if(u=v[r+40>>2]){if(e=0,o=v[t>>2],a=v[r+48>>2],(0|o)==v[a>>2])break r;for(;(0|u)!=(0|(e=e+1|0))&(0|o)!=v[a+(e<<2)>>2];);if(e>>>0>>0)break r}Un(c,t),f=v[n+40>>2]}if(!((i=i+1|0)>>>0>>0))break}if(f=v[n+56>>2])for(c=r+52|0,i=0;;){t=v[n+64>>2]+(i<<2)|0;r:{if(u=v[r+56>>2]){if(e=0,o=v[t>>2],a=v[r+64>>2],(0|o)==v[a>>2])break r;for(;(0|u)!=(0|(e=e+1|0))&(0|o)!=v[a+(e<<2)>>2];);if(e>>>0>>0)break r}Un(c,t),f=v[n+56>>2]}if(!((i=i+1|0)>>>0>>0))break}r:if(f=v[n+24>>2])for(u=r+16|0,r=0,e=0;;){if(t=v[n+32>>2],d[4+(t+(e<<4)|0)>>2]<=r>>>0){n:{e:{for(;;){if((0|f)==(0|(e=e+1|0)))break e;if(v[4+(t+(e<<4)|0)>>2])break}r=e;break n}r=f}if(i=r,f=e>>>0>=f>>>0,r=0,e=i,f)break r}if(i=v[12+(t+(e<<4)|0)>>2]+m(r,20)|0,sr(u,v[i>>2],i+4|0,v[i+16>>2]),r=r+1|0,!((f=v[n+24>>2])>>>0>e>>>0))break}},$i,function(r,n){r|=0;var e=0,f=0,i=0,t=0,u=0,o=0,a=0,c=0;if(i=v[40+(n|=0)>>2])for(c=r+36|0;;){u=v[n+48>>2]+(e<<2)|0;r:{if(t=v[r+40>>2]){if(f=0,o=v[u>>2],a=v[r+48>>2],(0|o)==v[a>>2])break r;for(;(0|t)!=(0|(f=f+1|0))&(0|o)!=v[a+(f<<2)>>2];);if(f>>>0>>0)break r}Un(c,u),i=v[n+40>>2]}if(!(i>>>0>(e=e+1|0)>>>0))break}if(i=v[n+56>>2])for(c=r+52|0,e=0;;){u=v[n+64>>2]+(e<<2)|0;r:{if(t=v[r+56>>2]){if(f=0,o=v[u>>2],a=v[r+64>>2],(0|o)==v[a>>2])break r;for(;(0|t)!=(0|(f=f+1|0))&(0|o)!=v[a+(f<<2)>>2];);if(f>>>0>>0)break r}Un(c,u),i=v[n+56>>2]}if(!(i>>>0>(e=e+1|0)>>>0))break}r:if(e=v[n+24>>2])for(u=r+16|0,i=0,f=0;;){if(t=v[n+32>>2],d[4+(t+(f<<4)|0)>>2]<=i>>>0){n:{e:{for(;;){if((0|(f=f+1|0))==(0|e))break e;if(v[4+(t+(f<<4)|0)>>2])break}r=f;break n}r=e}if(e=e>>>0<=f>>>0,i=0,f=r,e)break r}if(r=v[12+(t+(f<<4)|0)>>2]+m(i,20)|0,e=v[r+16>>2],t=Fu(0|Ta[v[v[e>>2]+8>>2]](e),21200),e=v[r+16>>2],i=i+1|0,sr(u,o=v[r>>2],a=r+4|0,r=t?Kr(e):0|Ta[v[v[e>>2]+12>>2]](e)),!(f>>>0<(e=v[n+24>>2])>>>0))break}},function(r,n,e){n|=0,e|=0;var f,i=0,t=0,u=0,o=0;V=f=V-16|0,v[12+(r|=0)>>2]=0,v[r+4>>2]=0,v[r+8>>2]=0,v[r>>2]=9212,Xt(f+4|0,n),n=v[f+8>>2],t=v[f+4>>2];r:if(!(n>>>0>=(i=v[t+4>>2])>>>0))for(;;){if(u=v[f+12>>2],o=v[t+12>>2],u>>>0>=d[4+(o+(n<<4)|0)>>2]){for(;;){if((0|i)==(0|(n=n+1|0)))break r;if(v[4+((n<<4)+o|0)>>2])break}if(v[f+8>>2]=n,u=0,n>>>0>=i>>>0)break r}if(i=v[12+((n<<4)+o|0)>>2],v[f+12>>2]=u+1,i=i+m(u,20)|0,v[i>>2]==(0|e)&&(An(r,i+4|0),t=v[f+4>>2],n=v[f+8>>2]),!((i=v[t+4>>2])>>>0>n>>>0))break}V=f+16|0},Pt,ze,function(r,n){n|=0;var e,f=0,i=0,t=0;V=e=V-16|0,v[12+(r|=0)>>2]=0,v[r+4>>2]=0,v[r+8>>2]=0,v[r>>2]=12912,Xt(e+4|0,n),n=v[e+8>>2],f=v[e+4>>2];r:if(!(n>>>0>=(i=v[f+4>>2])>>>0))for(;;){if(t=v[e+12>>2],f=v[f+12>>2],t>>>0>=d[4+(f+(n<<4)|0)>>2]){for(;;){if((0|i)==(0|(n=n+1|0)))break r;if(v[4+(f+(n<<4)|0)>>2])break}if(v[e+8>>2]=n,t=0,n>>>0>=i>>>0)break r}if(n=v[12+(f+(n<<4)|0)>>2],v[e+12>>2]=t+1,v[e>>2]=n+m(t,20),Un(r,e),n=v[e+8>>2],f=v[e+4>>2],!(n>>>0<(i=v[f+4>>2])>>>0))break}V=e+16|0},function(r,n,e){n|=0,e|=0;var f=0,i=0,t=0,u=0,o=0;r:if(!(d[24+(r|=0)>>2]<=n>>>0)&&(f=v[r+32>>2]+(n<<4)|0,v[f+4>>2])){for(;;){if(!ei(4+(v[f+12>>2]+m(i,20)|0)|0,e)){if((i=i+1|0)>>>0>2])continue;break r}break}if(!((0|i)<0)){if(_i(v[16+(v[12+((e=n<<4)+v[r+32>>2]|0)>>2]+m(i,20)|0)>>2]),V=n=V-32|0,r=e+v[r+32>>2]|0,e=v[r+4>>2]-1|0,v[r+4>>2]=e,e>>>0>i>>>0)for(o=n+16|0;f=(e=m(i,20))+v[r+12>>2]|0,v[n+12>>2]=v[f>>2],u=Ue(o,f+4|0),v[n+28>>2]=v[f+16>>2],f=e+(t=v[r+12>>2])|0,e=t+(t=e+20|0)|0,v[f>>2]=v[e>>2],te(f+4|0,e+4|0),v[f+16>>2]=v[e+16>>2],e=v[r+12>>2]+t|0,v[e>>2]=v[n+12>>2],te(e+4|0,u),v[e+16>>2]=v[n+28>>2],gi(u),(e=v[r+4>>2])>>>0>(i=i+1|0)>>>0;);gi(4+(v[r+12>>2]+m(e,20)|0)|0),V=n+32|0}}},Ve,function(r,n,e){n|=0,e|=0;var f,i=0,t=0,u=0,o=0;V=f=V-16|0,v[12+(r|=0)>>2]=0,v[r+4>>2]=0,v[r+8>>2]=0,v[r>>2]=12912,Xt(f+4|0,n),n=v[f+8>>2],t=v[f+4>>2];r:if(!(n>>>0>=(i=v[t+4>>2])>>>0))for(;;){if(u=v[f+12>>2],o=v[t+12>>2],u>>>0>=d[4+(o+(n<<4)|0)>>2]){for(;;){if((0|i)==(0|(n=n+1|0)))break r;if(v[4+((n<<4)+o|0)>>2])break}if(v[f+8>>2]=n,u=0,n>>>0>=i>>>0)break r}if(i=v[12+((n<<4)+o|0)>>2],v[f+12>>2]=u+1,i=i+m(u,20)|0,v[i>>2]==(0|e)&&(v[f>>2]=i,Un(r,f),t=v[f+4>>2],n=v[f+8>>2]),!((i=v[t+4>>2])>>>0>n>>>0))break}V=f+16|0},function(){return 21675},function(r){(r|=0)&&(gi(r+4|0),ar(r))},lf,function(r,n,e){var f;return r|=0,n|=0,e|=0,f=Wt(20),e=v[e>>2],v[f>>2]=v[r>>2],Ue(f+4|0,n),v[f+16>>2]=e,0|f},uu,Zt,function(r,n){Ue(r|=0,4+(n|=0)|0)},Ro,function(){return 21678},lu,$o,function(){return 0|Pr(ut(232))},function(r){return 160+(r|=0)|0},Qt,function(r){return 176+(r|=0)|0},Qt,function(r){return 192+(r|=0)|0},rr,function(r,n,e,f){n|=0,e|=0,f|=0;var i=0;return i=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(i=v[i+v[n>>2]>>2]),0|Ta[0|i](n,e,f)},Of,$i,mi,ji,Cu,Ci,function(){return 21681},lu,$o,function(){return 0|Mr(ut(232))},Ii,yi,Vo,function(r){return 32+(r|=0)|0},function(r){return 48+(r|=0)|0},uu,Zt,No,Zo,Ko,function(r){return 116+(r|=0)|0},function(r){return 132+(r|=0)|0},qt,zt,du,Be,vu,Be,su,Be,au,cu,Be,hu,Be,qe,Be,eu,Be,fu,Be,iu,Be,function(r,n){n|=0;var e,f=0;r:{if(e=v[136+(r|=0)>>2])for(;;){if(ei(na(v[v[r+144>>2]+(f<<2)>>2]),n))break r;if((0|e)==(0|(f=f+1|0)))break}f=-1}return 0|f},function(){return 21684},lu,function(r,n,e,f){var i;return r|=0,n|=0,e|=0,f=w(f),V=i=V-16|0,n=$e(i+4|0,n+4|0,v[n>>2],0),v[i>>2]=e,r=0|Ta[0|r](n,i,f),E(v[i>>2]),gi(n),V=i+16|0,0|r},function(r,n,e){r|=0,n|=0,e=w(e);var f,i=0,t=0,u=0,o=0,a=0,c=0,b=0;if(V=f=V-32|0,i=v[n>>2],t=0|j(4696),u=0|U(0|i,0|t),E(0|t),o=+G(0|u,21553,0|(t=f+12|0)),W(v[f+12>>2]),E(0|u),v[f+24>>2]=0,v[f+16>>2]=0,v[f+20>>2]=0,v[f+12>>2]=1048,v[f+28>>2]=0,$n(i=t,t=o<4294967296&o>=0?~~o>>>0:0,f+28|0),v[f+8>>2]=0,t)for(;V=u=V-16|0,i=v[n>>2],v[u+8>>2]=v[f+8>>2],a=i,i=0|_(21553,u+8|0),c=f,b=0|U(0|a,0|i),v[c+4>>2]=b,E(0|i),V=u+16|0,o=+G(v[f+4>>2],7897,f+28|0),W(v[f+28>>2]),a=v[f+24>>2]+(v[f+8>>2]<<2)|0,i=o<4294967296&o>=0?~~o>>>0:0,v[a>>2]=i,E(v[f+4>>2]),u=v[f+8>>2]+1|0,v[f+8>>2]=u,u>>>0>>0;);return n=r,r=f+12|0,n=qr(ut(48),n,r,e),so(r),V=f+32|0,0|n},Yo,bf,na,Pf,li,qt,zt,At,lu,Ci,At,ta,ta,lu,function(r){return 1+(d[8+(r|=0)>>2]/19|0)|0},Ci,function(r,n){n|=0,v[v[16+(r|=0)>>2]+m(n,76)>>2]=0},$i,yt,xr,function(r,n,e,f,i,t,u){r|=0,n|=0,e|=0,f=w(f),i=w(i),t=w(t),u=w(u);var o=0;o=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(o=v[o+v[n>>2]>>2]),Ta[0|o](n,e,f,i,t,u)},vn,function(r,n,e,f){r|=0,n|=0,e|=0,f=w(f);var i=0;return i=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(i=v[i+v[n>>2]>>2]),w(w(Ta[0|i](n,e,f)))},function(r,n){return n|=0,w(p[v[16+(r|=0)>>2]+m(n,76)>>2])},si,At,ta,ta,lu,Hi,function(r){return r|=0,0|_e(ut(40),v[r>>2])},function(r){return v[(r|=0)>>2]},Wi,function(r,n,e,f,i,t){r|=0,n|=0,e|=0,f=w(f),i=w(i),t=w(t);var u=0;u=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(u=v[u+v[n>>2]>>2]),Ta[0|u](n,e,f,i,t)},At,ta,ta,lu,Hi,function(r){return r|=0,0|pu(ut(40),v[r>>2])},At,ta,ta,lu,Hi,function(r){return r|=0,0|yu(ut(40),v[r>>2])},At,ta,ta,lu,Hi,function(r){return r|=0,0|ff(ut(40),v[r>>2])},uu,Zt,Xo,Di,ni,At,ta,ta,lu,Hi,function(r){return r|=0,0|ef(ut(40),v[r>>2])},uu,Zt,Xo,Mf,gf,At,ta,ta,lu,Hi,function(r){return r|=0,0|Je(ut(40),v[r>>2])},function(r){return v[36+(r|=0)>>2]},_u,Ci,$i,Ge,function(r,n,e,f,i,t,u,o,a,c,b){r|=0,n|=0,e|=0,f=w(f),i=w(i),t=w(t),u=w(u),o=w(o),a=w(a),c=w(c),b=w(b);var k=0;k=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(k=v[k+v[n>>2]>>2]),Ta[0|k](n,e,f,i,t,u,o,a,c,b)},At,ta,ta,lu,Hi,function(r){return r|=0,0|ln(ut(40),v[r>>2])},uu,Zt,Qo,Xo,function(r,n){n|=0;var e=0;return e=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(e=v[e+v[n>>2]>>2]),r=0|Ta[0|e](n),0|zn(ut(16),r)},Po,Ci,xi,function(r,n,e,f,i){r|=0,n|=0,e|=0,f=w(f),i|=0;var t,u=0;V=t=V-16|0,n=((u=v[r+4>>2])>>1)+n|0,r=v[r>>2],r=1&u?v[v[n>>2]+r>>2]:r,u=n,n=$e(t+4|0,i+4|0,v[i>>2],0),Ta[0|r](u,e,f,n),gi(n),V=t+16|0},At,ta,ta,lu,Hi,function(r){return r|=0,0|Sr(ut(60),v[r>>2])},uu,Zt,uu,Zt,Xo,Do,function(r,n,e,f){r|=0,n|=0,e=w(e);var i,t=0,u=0,o=0;if(V=i=V-32|0,t=v[(f|=0)>>2],u=0|j(4696),t=0|U(0|t,0|u),E(0|u),o=+G(0|t,21553,0|(u=i+12|0)),W(v[i+12>>2]),E(0|t),v[i+24>>2]=0,v[i+16>>2]=0,v[i+20>>2]=0,v[i+12>>2]=8776,v[i+28>>2]=0,wn(u,t=o<4294967296&o>=0?~~o>>>0:0,i+28|0),v[i+8>>2]=0,t)for(;qf(i+4|0,f,i+8|0),o=+G(v[i+4>>2],21542,i+28|0),W(v[i+28>>2]),p[v[i+24>>2]+(v[i+8>>2]<<2)>>2]=o,E(v[i+4>>2]),u=v[i+8>>2]+1|0,v[i+8>>2]=u,u>>>0>>0;);Zi(f=r,n,e,r=i+12|0),To(r),V=i+32|0},At,ta,ta,lu,Hi,function(r){return r|=0,0|de(ut(36),v[r>>2])},na,qo,_o,Ci,Ni,vi,At,ta,ta,lu,Hi,function(r){return r|=0,0|Hr(ut(36),v[r>>2])},na,_o,Ci,qo,Ce,function(r,n,e,f,i){r|=0,n|=0,e|=0,f=w(f),i|=0;var t=0;t=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(t=v[t+v[n>>2]>>2]),Ta[0|t](n,e,f,i)},At,ta,ta,lu,Hi,function(r){return r|=0,0|So(ut(40),v[r>>2])},of,function(r,n,e,f,i,t,u,o,a){r|=0,n|=0,e|=0,f=w(f),i=w(i),t=w(t),u|=0,o|=0,a|=0;var c=0;c=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(c=v[c+v[n>>2]>>2]),Ta[0|c](n,e,f,i,t,u,o,a)},At,ta,ta,lu,Hi,function(r){return r|=0,0|Wo(ut(40),v[r>>2])},Lf,gf,At,ta,ta,lu,Hi,function(r){return r|=0,0|tf(ut(40),v[r>>2])},qi,ni,At,ta,ta,lu,Hi,function(r){return r|=0,0|Go(ut(40),v[r>>2])},function(){return 21687},lu,$o,function(){return 0|bn(ut(172))},Ro,Ci,Oo,Ci,Eo,function(r){return v[28+(r|=0)>>2]},function(r){return v[32+(r|=0)>>2]},Ci,ou,Yt,qt,zt,Mu,function(r,n){r|=0,n=w(n),p[r+64>>2]=n,p[r+60>>2]=n},pi,Ai,uu,Zt,function(r){r|=0;var n=w(0),e=w(0);n=p[r+52>>2];r:{if(l[r+36|0]){if((e=w(p[r+56>>2]-n))==w(0))break r;return w(w(n+Er(p[r+72>>2],e)))}n=(n=w(p[r+72>>2]+n))<(e=p[r+56>>2])?n:e}return w(n)},pi,function(r){return p[72+(r|=0)>>2]>=w(p[r+56>>2]-p[r+52>>2])|0},Ci,function(r){v[152+(r|=0)>>2]=0},ji,function(){return 21689},lu,Hi,function(r){return r|=0,0|Li(ut(24),v[r>>2])},qt,zt,zo,Ci,jf,ge,function(r,n,e,f){var i;r|=0,n|=0,e|=0,f=w(f),V=i=V-16|0,p[i+12>>2]=f,_t(i,n,e),Pn(r+12|0,i,i+12|0),V=i+16|0},function(r,n,e,f,i){r|=0,n|=0,e|=0,f|=0,i=w(i);var t=0;t=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(t=v[t+v[n>>2]>>2]),Ta[0|t](n,e,f,i)},Ln,function(r,n,e,f){n|=0,e|=0,f|=0;var i=0;return i=v[(r|=0)>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(i=v[i+v[n>>2]>>2]),w(w(Ta[0|i](n,e,f)))},function(){return 21692},lu,Hi,function(r){return r|=0,0|kn(ut(104),v[r>>2])},Ro,Ci,Do,function(r){return w(p[100+(r|=0)>>2])},function(r,n){r|=0,n=w(n),p[r+100>>2]=n},pi,Ai,Ir,Ai,ir,li,Ne,ji,Yn,$i,function(r,n,e,f){return e|=0,f|=0,0|Vn(r|=0,n|=0,qe(v[v[r+16>>2]+4>>2],e),f)},function(r,n,e,f,i){n|=0,e|=0,f|=0,i|=0;var t,u=0;return V=t=V-16|0,n=((u=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&u?v[v[n>>2]+r>>2]:r,u=n,n=$e(t+4|0,f+4|0,v[f>>2],0),r=0|Ta[0|r](u,e,n,i),gi(n),V=t+16|0,0|r},function(r,n,e,f){return 0|Vn(r|=0,n|=0,e|=0,f|=0)},function(r,n,e,f,i){return r|=0,n|=0,e|=0,f|=0,i=w(i),0|an(r,n,qe(v[v[r+16>>2]+4>>2],e),f,i)},function(r,n,e,f,i,t){r|=0,n|=0,e|=0,f|=0,i|=0,t=w(t);var u,o=0;return V=u=V-16|0,n=((o=v[r+4>>2])>>1)+n|0,r=v[r>>2],r=1&o?v[v[n>>2]+r>>2]:r,o=n,n=$e(u+4|0,f+4|0,v[f>>2],0),r=0|Ta[0|r](o,e,n,i,t),gi(n),V=u+16|0,0|r},an,function(r,n,e,f,i,t){r|=0,n|=0,e|=0,f|=0,i|=0,t=w(t);var u=0;return u=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(u=v[u+v[n>>2]>>2]),0|Ta[0|u](n,e,f,i,t)},function(r,n,e){return r|=0,n|=0,e=w(e),Ye(),r=Vn(r,n,20900,0),p[r+84>>2]=e,p[r+100>>2]=e,0|r},function(r,n,e,f){r|=0,n|=0,e|=0,f=w(f);var i=0;return i=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(i=v[i+v[n>>2]>>2]),0|Ta[0|i](n,e,f)},function(r,n,e,f){return r|=0,n|=0,e=w(e),f=w(f),Ye(),r=an(r,n,20900,0,w(f-(f<=w(0)?e:w(0)))),p[r+84>>2]=e,p[r+100>>2]=e,0|r},function(r,n,e,f,i){r|=0,n|=0,e|=0,f=w(f),i=w(i);var t=0;return t=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(t=v[t+v[n>>2]>>2]),0|Ta[0|t](n,e,f,i)},function(r,n){r|=0,n=w(n);var e,f,t=0,u=0;if(t=v[r+72>>2],f=l[t+28|0],i[t+28|0]=1,e=v[r+44>>2]){for(t=0;v[v[r+52>>2]+(t<<2)>>2]&&(Ye(),u=Vn(r,t,20900,0),p[u+84>>2]=n,p[u+100>>2]=n),(0|e)!=(0|(t=t+1|0)););t=v[r+72>>2]}i[t+28|0]=f,mr(t)},function(r,n){return n|=0,0|(d[44+(r|=0)>>2]>n>>>0?v[v[r+52>>2]+(n<<2)>>2]:0)},li,function(r){i[v[72+(r|=0)>>2]+28|0]=1},function(r){i[v[72+(r|=0)>>2]+28|0]=0},function(){return 21651},lu,Hi,function(r){return r|=0,0|kr(ut(180),v[r>>2])},zo,Ci,Qo,Xo,Do,function(r){return 56+(r|=0)|0},function(r){return 72+(r|=0)|0},function(r){return 88+(r|=0)|0},Bo,function(r){return v[136+(r|=0)>>2]},Ci,function(r){return 0|ca(r|=0)},Qt,qt,zt,nr,ji,pn,ia,Gr,ae,function(r){return v[12+(r|=0)>>2]?v[v[r+20>>2]>>2]:0},Ci,wu,Be,function(r,n){return 0|Uf(8+(r|=0)|0,n|=0)},Be,ku,Be,function(r,n){return 0|Uf(24+(r|=0)|0,n|=0)},bu,cf,jr,$i,function(r,n,e){return n|=0,e|=0,0|Ef(r|=0,au(v[r+4>>2],n),e)},function(r,n,e,f){n|=0,e|=0,f|=0;var i,t=0;return V=i=V-32|0,n=((t=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&t?v[v[n>>2]+r>>2]:r,t=n,n=$e(i+20|0,e+4|0,v[e>>2],0),e=$e(i+8|0,f+4|0,v[f>>2],0),r=0|Ta[0|r](t,n,e),gi(e),gi(n),V=i+32|0,0|r},Ef,ze,function(r,n,e){n|=0,e|=0;var f,i=0,t=0;if(f=v[28+(r|=0)>>2])for(;;){if(t=v[v[r+36>>2]+(i<<2)>>2],ei(Qo(v[t+4>>2]),n))return void hi(t,r=v[e+4>>2]?Ef(r,i,e):0);if((0|f)==(0|(i=i+1|0)))break}},Oe,function(r,n){n|=0;var e=0,f=0,i=0;r:if(f=v[60+(r|=0)>>2]){for(;;){if(i=v[v[r+68>>2]+(e<<2)>>2],!ei(na(v[i+4>>2]),n)){if((0|f)!=(0|(e=e+1|0)))continue;break r}break}return 0|i}return 0},Be,function(r,n){n|=0;var e=0,f=0,i=0;r:if(f=v[76+(r|=0)>>2]){for(;;){if(i=v[v[r+84>>2]+(e<<2)>>2],!ei(na(v[i+4>>2]),n)){if((0|f)!=(0|(e=e+1|0)))continue;break r}break}return 0|i}return 0},Be,function(r,n){n|=0;var e=0,f=0,i=0;r:if(f=v[92+(r|=0)>>2]){for(;;){if(i=v[v[r+100>>2]+(e<<2)>>2],!ei(na(v[i+4>>2]),n)){if((0|f)!=(0|(e=e+1|0)))continue;break r}break}return 0|i}return 0},Be,Jt,Ai,At,lu,$i,oi,ji,At,ta,ta,lu,ai,function(r,n){r|=0,n|=0;var e,f=w(0);return e=ut(12),f=p[r>>2],p[e+8>>2]=p[n>>2],p[e+4>>2]=f,v[e>>2]=11184,0|e},qt,zt,$i,oi,ji,At,ta,ta,lu,Ei,function(r,n){r|=0,n|=0;var e,f=w(0);return e=ut(32),f=p[r>>2],v[e+28>>2]=n,v[e+24>>2]=0,v[e+16>>2]=0,v[e+20>>2]=0,p[e+12>>2]=f,v[e+4>>2]=0,v[e+8>>2]=0,v[e>>2]=11216,0|e},$i,oi,ji,qt,zt,function(r){return w(p[16+(r|=0)>>2])},function(r,n){r|=0,n=w(n),p[r+16>>2]=n*w(.01745329238474369)},pi,Ai,function(){return 21697},function(r){(r|=0)&&ar(Uo(r))},uu,Zt,Vo,Ci,ta,Ci,function(){return 21538},ra,uu,Zt,function(){return 21702},function(r){(r|=0)&&ar(ke(r))},$o,function(){var r,n,e;return r=Wt(92),v[r+4>>2]=1065353216,s[r>>1]=256,zi(r+8|0,0,40),v[r+84>>2]=0,v[r+88>>2]=0,v[r+80>>2]=17052,v[r+76>>2]=0,v[r+68>>2]=0,v[r+72>>2]=0,v[r+64>>2]=11260,v[r+56>>2]=1065353216,v[r+60>>2]=1065353216,v[r+48>>2]=1065353216,v[r+52>>2]=1065353216,n=Wt(52),V=e=V-16|0,v[n+12>>2]=0,v[n+4>>2]=0,v[n+8>>2]=0,v[n+20>>2]=0,v[n+24>>2]=0,v[n+16>>2]=9212,v[n>>2]=11596,v[n+28>>2]=0,v[n+32>>2]=0,v[n+36>>2]=0,v[n+40>>2]=0,v[n+44>>2]=0,v[n+48>>2]=0,v[e+12>>2]=0,gn(n,6,e+12|0),V=e+16|0,v[r+32>>2]=n,0|r},ou,Yt,qt,zt,function(r,n){n|=0;var e,f=0,i=0,t=0,u=0;return(f=v[24+(r|=0)>>2])&&Ta[v[v[f>>2]+4>>2]](f),(f=v[r+20>>2])&&Ta[v[v[f>>2]+4>>2]](f),(f=v[r+16>>2])&&Ta[v[v[f>>2]+4>>2]](f),(f=v[r+8>>2])&&Ta[v[v[f>>2]+4>>2]](f),v[r+12>>2]=n,t=r,u=kr(ut(180),v[r+12>>2]),v[t+8>>2]=u,t=r,u=Li(ut(24),v[r+12>>2]),v[t+16>>2]=u,t=r,u=kn(ut(104),v[r+16>>2]),v[t+20>>2]=u,t=r,u=Pr(ut(232)),v[t+24>>2]=u,ia(v[r+8>>2]),pn(v[r+8>>2]),n=f=v[r+20>>2],(e=v[f+12>>2])&&(!(i=v[f+8>>2])|(0|r)==(0|i)||(Ta[0|e](i),n=v[r+20>>2])),v[f+12>>2]=0,v[f+8>>2]=r,v[n+96>>2]=0,v[n+92>>2]=1705,v[r+8>>2]},li,function(r,n,e,f){r|=0,n=w(n),e|=0,f|=0;var i=0,t=0;if(i=v[r+8>>2]){if(i=qe(v[i+4>>2],e),e=v[r+20>>2],!i)return Ne(e),ia(v[r+8>>2]),0;t=Vn(e,t=n=w(0)?~~n>>>0:0,i,f),ir(v[r+20>>2],v[r+8>>2]),pn(v[r+8>>2])}return 0|t},function(r,n,e,f,i){r|=0,n|=0,e=w(e),f|=0,i|=0;var t,u=0;return V=t=V-16|0,n=((u=v[r+4>>2])>>1)+n|0,r=v[r>>2],r=1&u?v[v[n>>2]+r>>2]:r,u=n,n=$e(t+4|0,f+4|0,v[f>>2],0),r=0|Ta[0|r](u,e,n,i),gi(n),V=t+16|0,0|r},function(r,n){var e;n|=0,(e=v[8+(r|=0)>>2])&&(bu(e,n),ae(v[r+8>>2]))},cf,function(r,n){var e;r|=0,n=w(n),(e=v[r+8>>2])&&(Jt(e,n=w(p[r+4>>2]*n)),Ir(v[r+20>>2],n),ir(v[r+20>>2],v[r+8>>2]))},Ai,function(r){r|=0;var n,e,f,i,t,u=0,o=0,a=0,c=0,b=0,k=0,d=0,y=0,g=w(0),F=w(0),A=0,T=0,$=0,I=0,C=0,P=0,E=w(0),O=w(0),R=w(0),S=0,W=0,G=0,U=w(0),j=w(0),H=w(0);if(l[r+46|0]&&(v[r+68>>2]=0),pn(v[r+8>>2]),v[5428]=v[5427],v[5430]=v[5429],u=v[r+32>>2],V=o=V-16|0,v[o+4>>2]=0,gn(u,0,a=o+4|0),tn(u+16|0,0,a=ht(a,8590,0)),gi(a),v[u+32>>2]=0,v[u+36>>2]=0,V=o+16|0,v[v[r+32>>2]+48>>2]=l[r+44|0]?28:24,V=n=V+-64|0,i=v[r+8>>2],t=v[i+44>>2],o=l[r+44|0],v[n+48>>2]=v[5435],u=v[5434],v[n+40>>2]=v[5433],v[n+44>>2]=u,u=v[5432],v[n+32>>2]=v[5431],v[n+36>>2]=u,f=Ue(n+52|0,21744),(u=v[r+28>>2])&&Ta[v[v[u>>2]+12>>2]](u,v[r+8>>2]),e=ca(v[r+8>>2]),t)for(P=(C=o?28:24)>>>2|0,W=r+80|0,G=r- -64|0;;){u=v[v[i+52>>2]+(S<<2)>>2],v[n+28>>2]=u,k=v[u+8>>2];r:if(0|Ta[v[v[k>>2]+16>>2]](k))if(v[v[n+28>>2]+60>>2]){F=p[r+60>>2],E=p[r+56>>2],g=p[r+52>>2],O=p[r+48>>2];n:{e:{f:{i:{t:{if(a=v[v[n+28>>2]+60>>2],Fu(u=0|Ta[v[v[a>>2]+8>>2]](a),21296)){if(u=v[a+24>>2],o=v[u+4>>2],$=(b=v[o+12>>2])<<1,d=v[o+8>>2],c=v[5428],y=v[5430],!l[r+44|0])break t;if(o=0,(0|d)<=0)break e;for(;A=v[v[u+4>>2]>>2]+m(o,24)|0,I=v[A+16>>2],T=c+m(o,28)|0,v[T+12>>2]=v[A+12>>2],v[T+16>>2]=I,(0|d)!=(0|(o=o+1|0)););break e}if(Fu(u,21200)){if(u=v[a+68>>2],o=v[u+4>>2],b=(k=v[o+12>>2])<<1,d=v[o+8>>2],c=v[5428],$=v[5430],!l[r+44|0])break i;if(o=0,(0|d)<=0)break f;for(;T=v[v[u+4>>2]>>2]+m(o,24)|0,A=v[T+16>>2],y=c+m(o,28)|0,v[y+12>>2]=v[T+12>>2],v[y+16>>2]=A,(0|d)!=(0|(o=o+1|0)););break f}if(d=Fu(u,21024),u=v[r+24>>2],o=v[n+28>>2],d){rr(u,o,a);break r}Of(u,o);break r}Ri(c,v[v[u+4>>2]>>2],m(d,C));break e}Ri(c,v[v[u+4>>2]>>2],m(d,C))}o=Ri($,v[v[u+4>>2]+4>>2],b),vr(a,v[n+28>>2],0,v[a+52>>2],c,0,P),v[n+44>>2]=k,v[n+40>>2]=d,v[n+36>>2]=o,v[n+32>>2]=c,$=1,o=aa(a);break n}o=Ri(y,v[v[u+4>>2]+4>>2],$),$=0,Xr(a,k,c,0,P),v[n+44>>2]=b,v[n+40>>2]=d,v[n+36>>2]=o,v[n+32>>2]=c,o=ka(a)}U=p[o+12>>2],j=p[o+4>>2],R=p[o+8>>2],H=p[o+16>>2],te(f,u+8|0),d=v[n+28>>2],u=(F=w(w(F*H)*w(w(p[e+16>>2]*w(255))*p[d+32>>2])))=w(0)?~~F>>>0:0,F=l[r+45|0]?w(u>>>0):w(255),R=w(g*R),o=(g=w(F*w(R*w(p[e+8>>2]*p[d+24>>2]))))=w(0)?~~g>>>0:0,o<<=8,O=w(O*j),c=o+((a=(g=w(w(O*w(p[e+4>>2]*p[d+20>>2]))*F))=w(0)?~~g>>>0:0)+(u<<24)|0)|0,E=w(E*U),k=(o=(g=w(F*w(E*w(p[e+12>>2]*p[d+28>>2]))))=w(0)?~~g>>>0:0)<<16,u=0,o=0,a=0,l[d+56|0]&&(a=v[n+28>>2],u=(g=w(F*w(E*w(p[e+12>>2]*p[a+48>>2]))))=w(0)?~~g>>>0:0,o=(g=w(F*w(R*w(p[e+8>>2]*p[a+44>>2]))))=w(0)?~~g>>>0:0,a=(F=w(F*w(O*w(p[e+4>>2]*p[a+40>>2]))))=w(0)?~~F>>>0:0),d=c+k|0,k=l[r+45|0],y=l[r+44|0],b=Cu(v[r+24>>2]),c=v[n+32>>2];n:if(y){if(k=(a+((o<<8)+(u<<16)|0)|0)+(k?-16777216:0)|0,b){if(er(v[r+24>>2],c,v[n+36>>2],v[n+44>>2],c+12|0,P),u=v[r+24>>2],!(a=v[u+180>>2])){Of(u,v[n+28>>2]);break r}if(b=v[5428],c=v[5430],o=(y=v[u+164>>2])>>1,v[n+40>>2]=o,v[n+36>>2]=c,v[n+32>>2]=b,v[n+44>>2]=a,Ri(c,v[u+188>>2],a<<1),c=v[u+204>>2],b=v[u+172>>2],T=v[n+32>>2],v[r+28>>2]){if((0|y)<2)break n;for(A=(0|o)<=1?1:o,u=0,o=0;a=T+m(o,28)|0,y=u<<2,p[a>>2]=p[y+b>>2],I=4|y,p[a+4>>2]=p[I+b>>2],p[a+12>>2]=p[c+y>>2],p[a+16>>2]=p[c+I>>2],y=v[r+28>>2],Ta[v[v[y>>2]+16>>2]](y,a,a+4|0),v[a+24>>2]=k,v[a+20>>2]=d,u=u+2|0,(0|A)!=(0|(o=o+1|0)););break n}if((0|y)<2)break n;for(A=(0|o)<=1?1:o,u=0,o=0;a=T+m(o,28)|0,y=u<<2,p[a>>2]=p[y+b>>2],I=4|y,p[a+4>>2]=p[I+b>>2],p[a+12>>2]=p[c+y>>2],F=p[c+I>>2],v[a+24>>2]=k,v[a+20>>2]=d,p[a+16>>2]=F,u=u+2|0,(0|A)!=(0|(o=o+1|0)););}else if(a=v[n+40>>2],v[r+28>>2]){if(o=0,!a)break n;for(;b=v[r+28>>2],u=c+m(o,28)|0,Ta[v[v[b>>2]+16>>2]](b,u,u+4|0),v[u+24>>2]=k,v[u+20>>2]=d,(0|a)!=(0|(o=o+1|0)););}else if(u=0,a)for(;o=c+m(u,28)|0,v[o+24>>2]=k,v[o+20>>2]=d,(0|a)!=(0|(u=u+1|0)););}else{if(b){if(er(v[r+24>>2],c,v[n+36>>2],v[n+44>>2],c+12|0,P),u=v[r+24>>2],!(a=v[u+180>>2])){Of(u,v[n+28>>2]);break r}if(k=v[5428],c=v[5430],o=(b=v[u+164>>2])>>1,v[n+40>>2]=o,v[n+36>>2]=c,v[n+32>>2]=k,v[n+44>>2]=a,Ri(c,v[u+188>>2],a<<1),c=v[u+204>>2],k=v[u+172>>2],y=v[n+32>>2],v[r+28>>2]){if((0|b)<2)break n;for(T=(0|o)<=1?1:o,o=0,u=0;a=y+m(o,24)|0,b=u<<2,p[a>>2]=p[b+k>>2],A=4|b,p[a+4>>2]=p[A+k>>2],p[a+12>>2]=p[c+b>>2],p[a+16>>2]=p[c+A>>2],b=v[r+28>>2],Ta[v[v[b>>2]+16>>2]](b,a,a+4|0),v[a+20>>2]=d,u=u+2|0,(0|T)!=(0|(o=o+1|0)););break n}if((0|b)<2)break n;for(T=(0|o)<=1?1:o,o=0,u=0;a=y+m(o,24)|0,b=u<<2,p[a>>2]=p[b+k>>2],A=4|b,p[a+4>>2]=p[A+k>>2],p[a+12>>2]=p[c+b>>2],F=p[c+A>>2],v[a+20>>2]=d,p[a+16>>2]=F,u=u+2|0,(0|T)!=(0|(o=o+1|0)););break n}if(o=v[n+40>>2],v[r+28>>2]){if(u=0,!o)break n;for(;k=v[r+28>>2],a=c+m(u,24)|0,Ta[v[v[k>>2]+16>>2]](k,a,a+4|0),v[a+20>>2]=d,(0|o)!=(0|(u=u+1|0)););break n}if(u=0,!o)break n;for(;v[20+(c+m(u,24)|0)>>2]=d,(0|o)!=(0|(u=u+1|0)););}v[5428]=v[5428]+m(v[n+40>>2],C),v[5430]=v[5430]+(v[n+44>>2]<<1),l[r+46|0]&&(u=v[r+68>>2],v[n+24>>2]=0,v[n+16>>2]=0,v[n+20>>2]=0,v[n+8>>2]=0,v[n+12>>2]=0,cn(G,u+1|0,n+8|0),u=v[r+76>>2]+m(u,20)|0,v[u>>2]=$,o=v[r+32>>2],v[u+4>>2]=v[o+32>>2],v[u+8>>2]=v[n+40>>2],v[u+12>>2]=v[o+36>>2],v[u+16>>2]=v[n+44>>2]),v[n+48>>2]=v[v[v[n+28>>2]+4>>2]+80>>2];n:if(l[r+47|0]&&(o=v[r+84>>2])){for(u=v[n+28>>2];;){if((0|u)!=v[o+4>>2]){if(o=v[o+20>>2])continue;break n}break}o=n+8|0;e:{f:{if(u=v[W+4>>2])for(a=v[n+28>>2];;){if((0|a)==v[u+4>>2])break f;if(!(u=v[u+20>>2]))break}ht(o,0,0);break e}Ue(o,u+8|0)}te(f,o),gi(o)}if(V=d=V-16|0,o=v[r+32>>2],u=n+32|0,!(a=v[o+4>>2])|v[(v[o+12>>2]+(a<<2)|0)-4>>2]!=v[u+16>>2]||!ei((v[o+28>>2]+m((a>>>0)/5|0,12)|0)-12|0,u+20|0)?(v[d+12>>2]=0,gn(o,a+5|0,d+12|0),a=v[o+12>>2]+(a<<2)|0,v[a>>2]=v[u>>2],v[a+4>>2]=v[u+4>>2],v[a+8>>2]=v[u+8>>2],v[a+12>>2]=v[u+12>>2],v[a+16>>2]=v[u+16>>2],An(o+16|0,u+20|0)):(a=v[o+12>>2]+(a<<2)|0,v[(c=a-12|0)>>2]=v[c>>2]+v[u+8>>2],v[(a=a-8|0)>>2]=v[a>>2]+v[u+12>>2]),c=v[u+12>>2])for(k=v[u+4>>2],b=v[o+32>>2],a=0;s[($=k+(a<<1)|0)>>1]=b+h[$>>1],(0|c)!=(0|(a=a+1|0)););if(k=v[u+8>>2])for(b=v[o+48>>2]>>>2|0,u=v[u>>2],a=0;v[8+(u+(m(a,b)<<2)|0)>>2]=0,(0|k)!=(0|(a=a+1|0)););v[o+32>>2]=k+v[o+32>>2],v[o+36>>2]=c+v[o+36>>2],V=d+16|0,Of(v[r+24>>2],v[n+28>>2])}else Of(v[r+24>>2],v[n+28>>2]);if((0|(S=S+1|0))==(0|t))break}return mi(v[r+24>>2]),(u=v[r+28>>2])&&Ta[v[v[u>>2]+20>>2]](u),gi(f),V=n- -64|0,u=v[5427],o=v[r+32>>2],v[o+44>>2]=v[5429],v[o+40>>2]=u,v[r+32>>2]},Ci,function(r,n){n|=0,i[45+(r|=0)|0]=n},$i,wo,function(r,n,e,f,i){r|=0,n=w(n),e=w(e),f=w(f),i=w(i),p[r+60>>2]=i,p[r+56>>2]=f,p[r+52>>2]=e,p[r+48>>2]=n},function(r,n,e,f,i,t){r|=0,n|=0,e=w(e),f=w(f),i=w(i),t=w(t);var u=0;u=v[r>>2],n=((r=v[r+4>>2])>>1)+n|0,1&r&&(u=v[u+v[n>>2]>>2]),Ta[0|u](n,e,f,i,t)},Ru,$i,Ru,$i,function(r){v[28+(r|=0)>>2]=0},ji,Oo,Ci,function(r,n,e,f){r|=0,n|=0,e|=0,f=w(f),jf(v[r+16>>2],n,e,f)},ge,_u,$i,function(r,n,e){r|=0,n|=0,v[8+(e|=0)>>2]||(v[r+40>>2]=n,v[e+12>>2]=0,v[e+8>>2]=r,v[e+168>>2]=0,v[e+164>>2]=1706)},vi,function(r,n){n|=0,i[46+(r|=0)|0]=n},Jo,function(r,n,e,f,t){r|=0,n|=0,e|=0,f|=0,t|=0;var u=w(0),o=w(0),a=0,c=0;if((r=v[r+8>>2])&&(r=ku(r,n))&&(n=v[r+60>>2]))if(t&&hi(r,n=0|Ta[v[v[n>>2]+12>>2]](n)),Fu(0|Ta[v[v[n>>2]+8>>2]](n),21296))for(u=w(e>>>0),p[n+68>>2]=u,o=w(f>>>0),p[n+72>>2]=o,p[n+76>>2]=u,p[n+80>>2]=o,p[n+52>>2]=u,p[n+56>>2]=o,r=0,Qn(n,w(0),w(0),w(1),w(1),0),Jr(n),f=v[n+24>>2],t&&(f=Oi(f),(t=v[n+28>>2])&&(!(e=v[n+24>>2])|(0|e)==(0|f)||Ta[0|t](e)),v[n+28>>2]=0,v[n+24>>2]=f),e=v[n+112>>2],f=v[v[f+4>>2]>>2],n=0;t=f+m(r,24)|0,a=n<<2,p[t+12>>2]=p[a+e>>2],p[t+16>>2]=p[e+(4|a)>>2],n=n+2|0,4!=(0|(r=r+1|0)););else if(Fu(0|Ta[v[v[n>>2]+8>>2]](n),21200)&&(u=w(e>>>0),p[n+84>>2]=u,o=w(f>>>0),p[n+88>>2]=o,p[n+92>>2]=u,p[n+96>>2]=o,p[n+196>>2]=u,p[n+200>>2]=o,p[n+180>>2]=0,p[n+184>>2]=0,p[n+188>>2]=1,p[n+192>>2]=1,i[n+228|0]=1,v[n+232>>2]=0,lr(n),r=v[n+68>>2],t&&(r=Oi(r),(f=v[n+72>>2])&&(!(e=v[n+68>>2])|(0|r)==(0|e)||Ta[0|f](e)),v[n+72>>2]=0,v[n+68>>2]=r),e=v[n+52>>2]))for(f=v[v[r+4>>2]>>2],t=e-1>>>1|0,e=v[n+116>>2],n=0,r=0;a=f+m(r,24)|0,c=n<<2,p[a+12>>2]=p[e+c>>2],p[a+16>>2]=p[e+(4|c)>>2],n=n+2|0,a=(0|r)!=(0|t),r=r+1|0,a;);},function(r,n,e,f,i,t){n|=0,e|=0,f|=0,i|=0,t|=0;var u,o=0;V=u=V-16|0,n=((o=v[4+(r|=0)>>2])>>1)+n|0,r=v[r>>2],r=1&o?v[v[n>>2]+r>>2]:r,o=n,n=$e(u+4|0,e+4|0,v[e>>2],0),Ta[0|r](o,n,f,i,t),gi(n),V=u+16|0},function(r){ke(r|=0),ar(r)},function(r,n,e){n|=0,e|=0;var f,t=0;if(V=f=V-16|0,(t=v[8+(r|=0)>>2])&&(n=ku(t,n),v[f+12>>2]=n,n)){i[r+47|0]=1;r:{n:{if(n=v[r+84>>2])for(t=v[f+12>>2];;){if((0|t)==v[n+4>>2])break n;if(!(n=v[n+20>>2]))break}n=ut(28),v[n>>2]=17068,t=Tt(n+8|0),v[n+20>>2]=0,v[n+24>>2]=0,v[n+4>>2]=v[f+12>>2],te(t,e),(e=v[r+84>>2])&&(v[e+24>>2]=n,v[n+20>>2]=e),v[r+84>>2]=n,v[r+88>>2]=v[r+88>>2]+1;break r}v[n+4>>2]=t,te(n+8|0,e)}}V=f+16|0},Oe,function(r,n,e,f){var i;r|=0,n|=0,e|=0,f=w(f),V=i=V-16|0,r=v[r>>2],p[i+12>>2]=f,Ta[0|r](n,e,i+12|0),V=i+16|0},gt,Fi,Fi,gt,Fi,function(r,n,e,f){var i;n|=0,e|=0,f|=0,V=i=V-16|0,r=v[(r|=0)>>2],s[i+14>>1]=f,Ta[0|r](n,e,i+14|0),V=i+16|0},function(r,n,e,f){var i,t;n|=0,e|=0,f|=0,V=i=V-16|0,r=v[(r|=0)>>2],t=n,n=$e(i+4|0,f+4|0,v[f>>2],0),Ta[0|r](t,e,n),gi(n),V=i+16|0},Fi,Qt,Qt,function(r,n,e,f){return r|=0,n|=0,e=w(e),f=w(f),0|Ta[v[r>>2]](n,e,f)},function(r,n,e,f,i,t){return r|=0,n|=0,e=w(e),f=w(f),i=w(i),t=w(t),0|Ta[v[r>>2]](n,e,f,i,t)},Qt,Qt,Qt,Qt,Qt,function(r,n,e,f,i){r|=0,n|=0,e|=0,f=w(f),i=w(i),Ta[v[r>>2]](n,e,f,i)},Qt,Sf,Sf,Qt,Qt,Qt,Qt,Qt,function(r,n,e){n|=0,e|=0,Ta[v[(r|=0)>>2]](n,e)},Qt,Qt,Qt,Qt,function(r,n,e){var f;return n|=0,e|=0,V=f=V-16|0,Ta[v[(r|=0)>>2]](f,n,e),r=zn(ut(16),f),be(f),V=f+16|0,0|r},function(r,n){var e;return n|=0,V=e=V-16|0,Ta[v[(r|=0)>>2]](e,n),r=Mo(ut(16),e),ju(e),V=e+16|0,0|r},function(r,n,e){var f;return n|=0,e|=0,V=f=V-16|0,Ta[v[(r|=0)>>2]](f,n,e),r=Mo(ut(16),f),ju(f),V=f+16|0,0|r},Sf,Qt,Qt,Qt,Qt,Qt,Qt,Qt,Qt,Qt,Qt,Qt,Qt,Qt,Qt,Qt,function(r,n,e,f,i){var t;r|=0,n|=0,e|=0,f=w(f),i|=0,V=t=V-16|0,r=v[r>>2],v[t+12>>2]=i,Ta[0|r](n,e,f,t+12|0),E(v[t+12>>2]),V=t+16|0},Qt,Qt,Qt,Qt,Qt,function(r,n,e,f,i){return n|=0,e|=0,f|=0,i|=0,0|Ta[v[(r|=0)>>2]](n,e,f,i)},Qt,Qt,Qt,Qt,Qt,Qt,function(r,n,e,f){r|=0,n|=0,e=w(e),f=w(f),Ta[v[r>>2]](n,e,f)},Qt,function(){return 21705},ra,function(r){Ta[0|(r|=0)]()},function(){var r=0,n=0;r=Wt(4),v[r>>2]=9584,v[r>>2]=17148,v[5280]=r,v[5427]||(n=X(3669960),v[5427]=n,r=X(1048560),v[5428]=n,v[5429]=r,v[5430]=r)},function(){var r=0;(r=v[5280])&&Ta[v[v[r>>2]+4>>2]](r),(r=v[5445])&&(ar(r),v[5445]=0),ar(v[5427]),v[5427]=0,ar(v[5429]),v[5429]=0},function(r,n){return n|=0,0|Ta[0|(r|=0)](n)},function(r){return r=Wt(r|=0),v[5445]=r,0|r},function(){var r;(r=v[5445])&&(ar(r),v[5445]=0)},wi,function(r){r|=0;var n=0,e=0;r:if(n=v[5440]){for(;;){if(!ei(n+4|0,r)){if(n=v[n+20>>2])continue;break r}break}if(n=v[5440]){for(;;){if(!ei(n+4|0,r)){if(n=v[n+20>>2])continue;break r}break}e=v[n+16>>2]}}return 0|e},function(r,n,e,f,i){var t;return r|=0,e|=0,f|=0,i|=0,V=t=V-32|0,n=$e(t+20|0,4+(n|=0)|0,v[n>>2],0),e=$e(t+8|0,e+4|0,v[e>>2],0),v[t>>2]=i,v[t+4>>2]=f,r=0|Ta[0|r](n,e,t+4|0,t),E(v[t>>2]),E(v[t+4>>2]),gi(e),gi(n),V=t+32|0,0|r},function(r,n,e,f){r|=0,n|=0,e|=0,f|=0;var t,u,o,a,c,b,k=0,h=0,y=0,g=0,F=0,A=0,T=0,$=0,I=w(0),C=0,P=w(0),O=0,R=0,S=0,L=0,M=0,_=0,z=0,x=0,J=0,K=0,B=0,N=0,q=w(0),D=0,Z=w(0),Y=0;if(V=o=V+-64|0,y=v[e>>2],k=0|j(4696),y=0|U(0|y,0|k),E(0|k),b=+G(0|y,21553,0|(k=o+48|0)),W(v[o+48>>2]),E(0|y),v[o+60>>2]=0,v[o+52>>2]=0,v[o+56>>2]=0,v[o+48>>2]=9212,v[o+44>>2]=0,v[o+36>>2]=0,v[o+40>>2]=0,v[o+32>>2]=9212,tn(h=k,y=b<4294967296&b>=0?~~b>>>0:0,k=ht(o+20|0,8590,0)),gi(k),tn(o+32|0,y,k=ht(o+20|0,8590,0)),gi(k),v[o+16>>2]=0,y)for(;qf(T=o+12|0,e,k=o+16|0),wf(C=o+20|0,T),te(v[o+60>>2]+m(v[o+16>>2],12)|0,C),gi(C),E(v[o+12>>2]),qf(T,f,k),wf(C,T),te(v[o+44>>2]+m(v[o+16>>2],12)|0,C),gi(C),E(v[o+12>>2]),k=v[o+16>>2]+1|0,v[o+16>>2]=k,k>>>0>>0;);V=c=V-48|0,n=sf(ut(40),v[n+8>>2],v[n+4>>2]),n=Ot(ut(12),n),i[28+(u=c+4|0)|0]=0,v[u+4>>2]=n,v[u+20>>2]=0,v[u+24>>2]=1065353216,v[u+12>>2]=0,v[u+16>>2]=0,v[u+8>>2]=10344,v[u>>2]=10664,Tt(n=u+32|0),v[u+24>>2]=1065353216,r=v[r+8>>2],V=t=V-288|0,ve(n,8590),v[u+12>>2]=0,a=Le(Wt(32),r),k=Mr(ut(232)),(y=En(a,3838))&&(ve(k+176|0,Ht(y,4828,0)),ve(k+164|0,Ht(y,5369,0)),f=v[k+172>>2],e=v[k+168>>2],(51!=l[0|f]|(0|e)<3|46!=l[f+1|0]||56!=l[f+2|0])&&(n=zi(t+49|0,0,238),i[t+48|0]=l[10688],r=v[2671],v[t+40>>2]=v[2670],v[t+44>>2]=r,r=v[2669],v[t+32>>2]=v[2668],v[t+36>>2]=r,Ri(Ri(n,f,e)+e|0,10704,38),Pi(u,0,n=ht(t+20|0,t+32|0,0),r=ht(t+8|0,8590,0)),gi(r),gi(n)),D=k,Z=Lt(y,1391,w(0)),p[D+148>>2]=Z,D=k,Z=Lt(y,1217,w(0)),p[D+152>>2]=Z,D=k,Z=Lt(y,4734,w(0)),p[D+156>>2]=Z,D=k,Z=Lt(y,2183,w(0)),p[D+160>>2]=Z,D=k,Z=Lt(y,2613,w(30)),p[D+204>>2]=Z,ve(k+220|0,Ht(y,3816,0)),ve(k+208|0,Ht(y,2886,0))),n=En(a,2774),r=v[n+12>>2],v[t+32>>2]=0,$n(k+16|0,r,t+32|0);r:{n:{if(r=v[n+4>>2])for(f=0;;){if(g=0,(e=Ht(r,1834,0))&&(g=du(k,n=ht(t+32|0,e,0)),gi(n),!g))break n;n=ne(n=ut(64),f,e=ht(t+32|0,Ht(r,5773,0),0),g),gi(e),D=n,Z=w(Lt(r,4696,w(0))*p[u+24>>2]),p[D+24>>2]=Z,D=n,Z=w(Lt(r,1391,w(0))*p[u+24>>2]),p[D+28>>2]=Z,D=n,Z=w(Lt(r,1217,w(0))*p[u+24>>2]),p[D+32>>2]=Z,D=n,Z=Lt(r,4056,w(0)),p[D+36>>2]=Z,D=n,Z=Lt(r,6726,w(1)),p[D+40>>2]=Z,D=n,Z=Lt(r,6633,w(1)),p[D+44>>2]=Z,D=n,Z=Lt(r,6700,w(0)),p[D+48>>2]=Z,D=n,Z=Lt(r,6594,w(0)),p[D+52>>2]=Z,y=Ht(r,4463,4581),v[n+56>>2]=0;e:if(uf(y,4581)){if(e=1,uf(y,4266)&&(e=2,uf(y,4012)&&(e=3,uf(y,5856)))){if(uf(y,4035))break e;e=4}v[n+56>>2]=e}if(D=n,Y=Re(r),i[D+60|0]=Y,v[v[k+28>>2]+(f<<2)>>2]=n,f=f+1|0,!(r=v[r>>2]))break}e:{if((e=En(a,2439))&&(ya(n=k+32|0,v[e+12>>2]),r=v[e+12>>2],v[t+32>>2]=0,$n(n,r,t+32|0),r=v[e+4>>2]))for(f=0;;){if(y=du(k,n=ht(t+32|0,e=Ht(r,5343,0),0)),gi(n),!y)break e;n=Dn(n=ut(84),f,e=ht(t+32|0,Ht(r,5773,0),0),y),gi(e),(y=Ht(r,3520,0))&&(D=e=Xo(n),Z=ye(y,0),p[D+4>>2]=Z,D=e,Z=ye(y,1),p[D+8>>2]=Z,D=e,Z=ye(y,2),p[D+12>>2]=Z,D=e,Z=ye(y,3),p[D+16>>2]=Z),(y=Ht(r,4607,0))&&(D=e=la(n),Z=ye(y,0),p[D+4>>2]=Z,D=e,Z=ye(y,1),p[D+8>>2]=Z,I=ye(y,2),v[e+16>>2]=1065353216,p[e+12>>2]=I,ha(n)),(e=En(r,1841))&&(te(n+68|0,e=ht(t+32|0,v[e+16>>2],0)),gi(e));f:if(e=En(r,6115)){if(y=1,uf(e=v[e+16>>2],4974)&&(y=2,uf(e,1204))){if(uf(e,4456))break f;y=3}v[n+80>>2]=y}if(v[v[k+44>>2]+(f<<2)>>2]=n,f=f+1|0,!(r=v[r>>2]))break}if((e=En(a,4612))&&(ya(n=k+100|0,v[e+12>>2]),r=v[e+12>>2],v[t+32>>2]=0,$n(n,r,t+32|0),e=v[e+4>>2]))for(C=0;;){T=Qe(n=ut(60),r=ht(f=t+32|0,Ht(e,5773,0),0)),gi(r),ba(T,Gt(e,3633,0)),va(T,Re(e)),n=T+24|0,y=En(e,2774),ya(n,v[y+12>>2]),r=v[y+12>>2],v[t+32>>2]=0,$n(n,r,f);f:if(r=v[y+4>>2]){for(g=0;;){if(f=du(k,y=ht(t+32|0,v[r+16>>2],0)),v[(n=g<<2)+v[T+36>>2]>>2]=f,gi(y),v[n+v[T+36>>2]>>2]){if(g=g+1|0,r=v[r>>2])continue;break f}break}Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8554,0),r=ht(t+20|0,v[r+16>>2],0)),gi(r),gi(n);break r}if(D=T,Y=du(k,r=ht(t+32|0,f=Ht(e,2246,0),0)),v[D+40>>2]=Y,gi(r),!v[T+40>>2]){k&&Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8459,0),r=ht(t+20|0,f,0)),gi(r),gi(n);break r}if(D=T,Z=Lt(e,1231,w(1)),p[D+52>>2]=Z,D=T,Z=w(Lt(e,2590,w(0))*p[u+24>>2]),p[D+56>>2]=Z,D=T,Y=Gt(e,4961,1)?1:-1,v[D+44>>2]=Y,D=T,Y=!!(0|Gt(e,2581,0)),i[D+48|0]=Y,D=T,Y=!!(0|Gt(e,4833,0)),i[D+49|0]=Y,D=T,Y=!!(0|Gt(e,4494,0)),i[D+50|0]=Y,v[v[k+112>>2]+(C<<2)>>2]=T,C=C+1|0,!(e=v[e>>2]))break}if((e=En(a,4463))&&(ya(n=k+116|0,v[e+12>>2]),r=v[e+12>>2],v[t+32>>2]=0,$n(n,r,t+32|0),e=v[e+4>>2]))for(C=0;;){T=it(n=ut(88),r=ht(f=t+32|0,Ht(e,5773,0),0)),gi(r),ba(T,Gt(e,3633,0)),va(T,Re(e)),n=T+24|0,y=En(e,2774),ya(n,v[y+12>>2]),r=v[y+12>>2],v[t+32>>2]=0,$n(n,r,f);f:if(g=v[y+4>>2]){for(f=0;;){if(n=du(k,y=ht(t+32|0,v[g+16>>2],0)),v[(r=f<<2)+v[T+36>>2]>>2]=n,gi(y),v[r+v[T+36>>2]>>2]){if(f=f+1|0,g=v[g>>2])continue;break f}break}k&&Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8505,0),r=ht(t+20|0,v[g+16>>2],0)),gi(r),gi(n);break r}if(D=T,Y=du(k,r=ht(t+32|0,f=Ht(e,2246,0),0)),v[D+40>>2]=Y,gi(r),!v[T+40>>2]){k&&Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8459,0),r=ht(t+20|0,f,0)),gi(r),gi(n);break r}if(D=T,Y=!!(0|Gt(e,4588,0)),i[D+85|0]=Y,D=T,Y=!!(0|Gt(e,4999,0)),i[D+84|0]=Y,D=T,Z=Lt(e,4056,w(0)),p[D+60>>2]=Z,D=T,Z=w(Lt(e,1391,w(0))*p[u+24>>2]),p[D+64>>2]=Z,D=T,Z=w(Lt(e,1217,w(0))*p[u+24>>2]),p[D+68>>2]=Z,D=T,Z=Lt(e,6726,w(0)),p[D+72>>2]=Z,D=T,Z=Lt(e,6633,w(0)),p[D+76>>2]=Z,D=T,Z=Lt(e,6594,w(0)),p[D+80>>2]=Z,D=T,Z=Lt(e,1269,w(1)),p[D+44>>2]=Z,D=T,Z=Lt(e,1279,w(1)),p[D+48>>2]=Z,D=T,Z=Lt(e,1292,w(1)),p[D+52>>2]=Z,D=T,Z=Lt(e,1260,w(1)),p[D+56>>2]=Z,v[v[k+128>>2]+(C<<2)>>2]=T,C=C+1|0,!(e=v[e>>2]))break}if((e=En(a,4749))&&(ya(n=k+132|0,v[e+12>>2]),r=v[e+12>>2],v[t+32>>2]=0,$n(n,r,t+32|0),e=v[e+4>>2]))for(C=0;;){r=tt(r=ut(76),n=ht(y=t+32|0,Ht(e,5773,0),0)),gi(n),ba(r,Gt(e,3633,0)),va(r,Re(e)),f=r+24|0,T=En(e,2774),ya(f,v[T+12>>2]),n=v[T+12>>2],v[t+32>>2]=0,$n(f,n,y);f:if(g=v[T+4>>2]){for(f=0;;){if(y=du(k,T=ht(t+32|0,v[g+16>>2],0)),v[(n=f<<2)+v[r+36>>2]>>2]=y,gi(T),v[n+v[r+36>>2]>>2]){if(f=f+1|0,g=v[g>>2])continue;break f}break}k&&Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8532,0),r=ht(t+20|0,v[g+16>>2],0)),gi(r),gi(n);break r}if(D=r,Y=su(k,n=ht(t+32|0,f=Ht(e,2246,0),0)),v[D+40>>2]=Y,gi(n),!v[r+40>>2]){k&&Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8160,0),r=ht(t+20|0,f,0)),gi(r),gi(n);break r}f:{if(uf(n=Ht(e,5922,2101),6273)){if(uf(n,2101))break f;n=1}else n=0;v[r+44>>2]=n}f=0;f:{if(uf(n=Ht(e,6003,4696),4696)&&(f=1,uf(n,6273))){if(uf(n,2101))break f;f=2}v[r+48>>2]=f}f=0;f:{if(uf(n=Ht(e,6034,2093),2093)&&(f=1,uf(n,4438))){if(uf(n,5864))break f;f=2}v[r+52>>2]=f}if(D=r,Z=Lt(e,4056,w(0)),p[D+56>>2]=Z,I=Lt(e,3948,w(0)),p[r+60>>2]=I,v[r+44>>2]||(p[r+60>>2]=I*p[u+24>>2]),I=Lt(e,4921,w(0)),p[r+64>>2]=I,d[r+48>>2]<=1&&(p[r+64>>2]=I*p[u+24>>2]),D=r,Z=Lt(e,1269,w(1)),p[D+68>>2]=Z,D=r,Z=Lt(e,1279,w(1)),p[D+72>>2]=Z,v[v[k+144>>2]+(C<<2)>>2]=r,C=C+1|0,!(e=v[e>>2]))break}if(z=u+8|0,(e=En(a,2685))&&(ya(n=k+48|0,v[e+12>>2]),r=v[e+12>>2],v[t+32>>2]=0,$n(n,r,t+32|0),F=v[e+4>>2]))for(;;){if(g=Ht(F,5773,8590),l[0|g]||(g=v[F+28>>2]),O=Ae(n=ut(68),r=ht(t+32|0,g,0)),gi(r),(r=En(F,2774))&&(r=v[r+4>>2]))for(e=O+36|0;;){if(f=du(k,n=ht(t+32|0,v[r+16>>2],0)),gi(n),v[t+8>>2]=f,!f){k&&Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8483,0),r=ht(t+20|0,v[r+16>>2],0)),gi(r),gi(n);break r}if(Un(e,t+8|0),!(r=v[r>>2]))break}if((r=En(F,4612))&&(r=v[r+4>>2]))for(e=O+52|0;;){if(f=eu(k,n=ht(t+32|0,v[r+16>>2],0)),gi(n),!f){k&&Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8300,0),r=ht(t+20|0,v[r+16>>2],0)),gi(r),gi(n);break r}if(v[t+32>>2]=f,Un(e,t+32|0),!(r=v[r>>2]))break}if((r=En(F,4463))&&(r=v[r+4>>2]))for(e=O+52|0;;){if(f=fu(k,n=ht(t+32|0,v[r+16>>2],0)),gi(n),!f){k&&Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8201,0),r=ht(t+20|0,v[r+16>>2],0)),gi(r),gi(n);break r}if(v[t+32>>2]=f,Un(e,t+32|0),!(r=v[r>>2]))break}if((r=En(F,4749))&&(r=v[r+4>>2]))for(e=O+52|0;;){if(f=iu(k,n=ht(t+32|0,v[r+16>>2],0)),gi(n),!f){k&&Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8239,0),r=ht(t+20|0,v[r+16>>2],0)),gi(r),gi(n);break r}if(v[t+32>>2]=f,Un(e,t+32|0),!(r=v[r>>2]))break}if(v[v[k+60>>2]+(R<<2)>>2]=O,uf(g,2155)||(v[k+64>>2]=O),r=En(F,2546),A=v[(r||F)+4>>2])for(;;){if(C=su(k,r=ht(t+32|0,v[A+28>>2],0)),gi(r),r=v[A+4>>2])for(;;){n=Ht(r,5773,T=v[r+28>>2]),y=Ht(r,4749,n);f:{i:{t:{u:{o:{a:{c:{if(uf(e=Ht(r,5206,4327),4327)){if(!uf(e,4781))break c;if(!uf(e,4775))break c;if(!uf(e,1219))break a;if(!uf(e,4749))break o;if(!uf(e,4884))break t;if(!uf(e,1662))break u;k&&Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8099,0),r=ht(t+20|0,e,0)),gi(r),gi(n);break r}if(f=v[u+4>>2],e=ht(t+32|0,n,0),n=ht(t+20|0,y,0),g=0|Ta[v[v[f>>2]+12>>2]](f,O,e,n),gi(n),gi(e),!g)break f;ve(g+116|0,y),D=g,Z=w(Lt(r,1391,w(0))*p[u+24>>2]),p[D+32>>2]=Z,D=g,Z=w(Lt(r,1217,w(0))*p[u+24>>2]),p[D+36>>2]=Z,D=g,Z=Lt(r,6726,w(1)),p[D+44>>2]=Z,D=g,Z=Lt(r,6633,w(1)),p[D+48>>2]=Z,D=g,Z=Lt(r,4056,w(0)),p[D+40>>2]=Z,D=g,Z=w(Lt(r,4734,w(32))*p[u+24>>2]),p[D+52>>2]=Z,D=g,Z=w(Lt(r,2183,w(32))*p[u+24>>2]),p[D+56>>2]=Z,(n=Ht(r,3520,0))&&(I=ye(n,0),D=ka(g),Z=I,p[D+4>>2]=Z,I=ye(n,1),D=ka(g),Z=I,p[D+8>>2]=Z,I=ye(n,2),D=ka(g),Z=I,p[D+12>>2]=Z,I=ye(n,3),D=ka(g),Z=I,p[D+16>>2]=Z),Jr(g),n=v[u+4>>2],Ta[v[v[n>>2]+36>>2]](n,g);break i}if(f=v[u+4>>2],e=ht(t+32|0,n,0),n=ht(t+20|0,y,0),g=0|Ta[v[v[f>>2]+16>>2]](f,O,e,n),gi(n),gi(e),!g)break f;if(ve(g+168|0,y),(n=Ht(r,3520,0))&&(I=ye(n,0),D=aa(g),Z=I,p[D+4>>2]=Z,I=ye(n,1),D=aa(g),Z=I,p[D+8>>2]=Z,I=ye(n,2),D=aa(g),Z=I,p[D+12>>2]=Z,I=ye(n,3),D=aa(g),Z=I,p[D+16>>2]=Z),D=g,Z=w(Lt(r,4734,w(32))*p[u+24>>2]),p[D+196>>2]=Z,D=g,Z=w(Lt(r,2183,w(32))*p[u+24>>2]),p[D+200>>2]=Z,!(e=En(r,1834))){if(e=g+136|0,f=En(r,2831),ma(e,v[f+12>>2]),n=v[f+12>>2],s[t+32>>1]=0,Fn(e,n,t+32|0),f=v[f+4>>2])for(n=v[g+148>>2],e=0;s[n+(e<<1)>>1]=v[f+20>>2],e=e+1|0,f=v[f>>2];);if(e=g+120|0,n=En(r,2415),ya(e,y=v[n+12>>2]),v[t+32>>2]=0,wn(e,y,t+32|0),f=v[n+4>>2])for(n=v[g+132>>2],e=0;p[n+(e<<2)>>2]=p[f+24>>2],e=e+1|0,f=v[f>>2];);if(yr(u,r,g,y),lr(g),D=g,Y=Gt(r,4535,0),v[D+224>>2]=Y,(f=En(r,2871))&&(ma(e=g+152|0,v[f+12>>2]),n=v[f+12>>2],s[t+32>>1]=0,Fn(e,n,t+32|0),f=v[f+4>>2]))for(n=v[g+164>>2],e=0;s[n+(e<<1)>>1]=v[f+20>>2],e=e+1|0,f=v[f>>2];);n=v[u+4>>2],Ta[v[v[n>>2]+36>>2]](n,g);break i}n=Gt(r,4502,1),n=Ui(h=ut(40),g,y=ht(t+32|0,Ht(r,4381,0),0),$=v[C+4>>2],e=ht(f=t+20|0,v[e+16>>2],0),!!(0|n)),gi(e),gi(y),v[t+20>>2]=n,Un(z,f);break i}e=v[u+4>>2],n=ht(t+32|0,n,0),g=0|Ta[v[v[e>>2]+20>>2]](e,O,n),gi(n),yr(u,r,g,Gt(r,1622,0)<<1),n=v[u+4>>2],Ta[v[v[n>>2]+36>>2]](n,g);break i}if(e=v[u+4>>2],n=ht(f=t+32|0,n,0),g=0|Ta[v[v[e>>2]+24>>2]](e,O,n),gi(n),D=g,Y=!!(0|Gt(r,6279,0)),i[D+80|0]=Y,D=g,Y=!!(0|Gt(r,6318,1)),i[D+81|0]=Y,yr(u,r,g,(n=Gt(r,1622,0))<<1),ya(e=g- -64|0,n=(0|n)/3|0),v[t+32>>2]=0,wn(e,n,f),f=v[En(r,2722)+4>>2])for(n=v[g+76>>2],e=0;p[n+(e<<2)>>2]=p[f+24>>2]*p[u+24>>2],e=e+1|0,f=v[f>>2];);n=v[u+4>>2],Ta[v[v[n>>2]+36>>2]](n,g);break i}e=v[u+4>>2],n=ht(t+32|0,n,0),g=0|Ta[v[v[e>>2]+28>>2]](e,O,n),gi(n),D=g,Z=w(Lt(r,1391,w(0))*p[u+24>>2]),p[D+20>>2]=Z,D=g,Z=w(Lt(r,1217,w(0))*p[u+24>>2]),p[D+24>>2]=Z,D=g,Z=Lt(r,4056,w(0)),p[D+28>>2]=Z,n=v[u+4>>2],Ta[v[v[n>>2]+36>>2]](n,g);break i}e=v[u+4>>2],n=ht(t+32|0,n,0),g=0|Ta[v[v[e>>2]+32>>2]](e,O,n),gi(n),(n=Ht(r,6142,0))&&(D=g,Y=su(k,n=ht(t+32|0,n,0)),v[D+64>>2]=Y,gi(n)),yr(u,r,g,Gt(r,1622,0)<<1),n=v[u+4>>2],Ta[v[v[n>>2]+36>>2]](n,g)}It(O,e=v[C+4>>2],n=ht(t+32|0,T,0),g),gi(n)}if(!(r=v[r>>2]))break}if(!(A=v[A>>2]))break}if(R=R+1|0,!(F=v[F>>2]))break}if((0|(n=v[u+12>>2]))>0)for(g=0;f=v[v[u+20>>2]+(g<<2)>>2],(r=v[f+12>>2]?cu(k,f+8|0):v[k+64>>2])&&(e=Pt(r,v[f+20>>2],f+24|0))&&(r=v[f+4>>2],v[r+56>>2]=l[f+36|0]?e:r,Kn(r,e),lr(v[f+4>>2]),r=v[u+4>>2],Ta[v[v[r>>2]+36>>2]](r,v[f+4>>2])),(0|n)!=(0|(g=g+1|0)););if(Rn(z),v[u+12>>2]=0,(e=En(a,2529))&&(ya(n=k+68|0,v[e+12>>2]),r=v[e+12>>2],v[t+32>>2]=0,$n(n,r,t+32|0),r=v[e+4>>2]))for(f=0;e=ci(e=ut(56),n=ht(t+32|0,v[r+28>>2],0)),gi(n),D=e,Y=Gt(r,1793,0),v[D+16>>2]=Y,D=e,Z=Lt(r,2351,w(0)),p[D+20>>2]=Z,ve(e+24|0,Ht(r,4860,0)),ve(e+36|0,n=Ht(r,3816,0)),n&&(D=e,Z=Lt(r,5681,w(1)),p[D+48>>2]=Z,D=e,Z=Lt(r,6107,w(0)),p[D+52>>2]=Z),v[v[k+80>>2]+(f<<2)>>2]=e,f=f+1|0,r=v[r>>2];);if((e=En(a,2641))&&(ya(n=k+84|0,v[e+12>>2]),r=v[e+12>>2],g=0,v[t+32>>2]=0,$n(n,r,t+32|0),r=v[e+4>>2]))for(;;){I=w(0),V=h=V-80|0,v[h+76>>2]=0,v[h+68>>2]=0,v[h+72>>2]=0,v[h+64>>2]=1048,x=En(r,2774),n=En(r,2439),f=r,B=En(r,4612),O=En(r,4463),(L=En(r,4749))||(L=En(f,2741)),z=En(f,4502),J=En(f,3639),N=En(f,2529),J||(J=En(f,3629));f:{i:{if(n&&($=v[n+4>>2]))for(C=v[2429],T=v[2333],y=v[2772];;){if(M=au(k,r=ht(h+48|0,v[$+28>>2],0)),gi(r),-1==(0|M)){Rn(h- -64|0),F=0,Pi(u,0,n=ht(h+48|0,8184,0),r=ht(h+32|0,v[$+28>>2],0)),gi(r),gi(n);break f}if(A=v[$+4>>2])for(;;){if(uf(r=v[A+28>>2],1841))if(uf(r,3520)){if(uf(r,3535))break i;if(_=Je(ut(40),v[A+12>>2]),v[_+36>>2]=M,e=0,r=v[A+4>>2])for(;S=Ht(r,2177,0),n=Ht(r,4607,0),Ge(_,e,Lt(r,5688,w(0)),ye(S,0),ye(S,1),ye(S,2),ye(S,3),ye(n,0),ye(n,1),ye(n,2)),Ke(r,_,e),e=e+1|0,r=v[r>>2];);v[h+48>>2]=_,Un(h- -64|0,h+48|0),n=m(y,v[A+12>>2]-1|0),r=_+32|0}else{if(S=ef(ut(40),v[A+12>>2]),v[S+20>>2]=M,e=0,r=v[A+4>>2])for(;n=Ht(r,3520,0),Mf(S,e,Lt(r,5688,w(0)),ye(n,0),ye(n,1),ye(n,2),ye(n,3)),Ke(r,S,e),e=e+1|0,r=v[r>>2];);v[h+48>>2]=S,Un(h- -64|0,h+48|0),n=m(T,v[A+12>>2]-1|0),r=S+36|0}else{if(S=ln(ut(40),v[A+12>>2]),v[S+4>>2]=M,F=0,r=v[A+4>>2])for(;e=h+48|0,n=En(r,5773),n=ht(e,n=(0|C)!=v[n+8>>2]?v[n+16>>2]:8590,0),xi(S,F,Lt(r,5688,w(0)),n),gi(n),F=F+1|0,r=v[r>>2];);v[h+48>>2]=S,Un(h- -64|0,h+48|0),n=v[A+12>>2]-1|0,r=S+20|0}if(I=I>(P=p[v[r>>2]+(n<<2)>>2])?I:P,!(A=v[A>>2]))break}if(!($=v[$>>2]))break}t:{if(x&&(A=v[x+4>>2]))for(e=v[2755];;){if(T=vu(k,r=ht(h+48|0,v[A+28>>2],0)),gi(r),-1==(0|T)){Rn(h- -64|0),F=0,Pi(u,0,n=ht(h+48|0,8574,0),r=ht(h+32|0,v[A+28>>2],0)),gi(r),gi(n);break f}if($=v[A+4>>2])for(;;){if(uf(r=v[$+28>>2],5081)){if(n=uf(r,5850),y=uf(r,5106),(r=uf(r,3761))&&!(!n|!y))break t;if(P=p[u+24>>2],n?y?(q=w(0),n=0,r||(n=yu(ut(40),v[$+12>>2]))):(q=w(0),n=_e(ut(40),v[$+12>>2])):(q=w(1),n=pu(ut(40),v[$+12>>2])),v[n+36>>2]=T,r=v[$+4>>2])for(P=y?w(1):P,F=0;Wi(n,F,Lt(r,5688,w(0)),w(P*Lt(r,1391,q)),w(P*Lt(r,1217,q))),Ke(r,n,F),F=F+1|0,r=v[r>>2];);v[h+48>>2]=n,Un(h- -64|0,h+48|0),F=m(e,v[$+12>>2]-1|0),r=n+32|0}else{if(n=ff(ut(40),v[$+12>>2]),v[n+20>>2]=T,F=0,r=v[$+4>>2])for(;Di(n,F,Lt(r,5688,w(0)),Lt(r,5820,w(0))),Ke(r,n,F),F=F+1|0,r=v[r>>2];);v[h+48>>2]=n,Un(h- -64|0,h+48|0),F=(v[$+12>>2]<<1)-2|0,r=n+36|0}if(I=I>(P=p[v[r>>2]+(F<<2)>>2])?I:P,!($=v[$>>2]))break}if(!(A=v[A>>2]))break}if(B&&(A=v[B+4>>2]))for(T=v[2421];;){y=eu(k,r=ht(h+48|0,v[A+28>>2],0)),gi(r),C=So(ut(40),v[A+12>>2]);u:if(e=v[k+104>>2])for(n=v[k+112>>2],r=0;;){if((0|y)==v[n+(r<<2)>>2]){v[C+36>>2]=r;break u}if((0|e)==(0|(r=r+1|0)))break}if(F=0,r=v[A+4>>2])for(;of(C,F,Lt(r,5688,w(0)),Lt(r,1231,w(1)),w(Lt(r,2590,w(0))*p[u+24>>2]),Gt(r,4961,1)?1:-1,!!(0|Gt(r,2581,0)),!!(0|Gt(r,4833,0))),Ke(r,C,F),F=F+1|0,r=v[r>>2];);if(v[h+48>>2]=C,Un(h- -64|0,h+48|0),I=I>(P=p[v[C+32>>2]+(m(T,v[A+12>>2]-1|0)<<2)>>2])?I:P,!(A=v[A>>2]))break}if(O&&(A=v[O+4>>2]))for(T=v[2747];;){y=fu(k,r=ht(h+48|0,v[A+28>>2],0)),gi(r),C=Wo(ut(40),v[A+12>>2]);u:if(e=v[k+120>>2])for(n=v[k+128>>2],r=0;;){if((0|y)==v[n+(r<<2)>>2]){v[C+36>>2]=r;break u}if((0|e)==(0|(r=r+1|0)))break}if(F=0,r=v[A+4>>2])for(;Lf(C,F,Lt(r,5688,w(0)),Lt(r,1269,w(1)),Lt(r,1279,w(1)),Lt(r,1292,w(1)),Lt(r,1260,w(1))),Ke(r,C,F),F=F+1|0,r=v[r>>2];);if(v[h+48>>2]=C,Un(h- -64|0,h+48|0),I=I>(P=p[v[C+32>>2]+(m(T,v[A+12>>2]-1|0)<<2)>>2])?I:P,!(A=v[A>>2]))break}u:{if(L&&(R=v[L+4>>2]))for(y=v[2493],e=v[2485];;){if(C=iu(k,r=ht(h+48|0,v[R+28>>2],0)),gi(r),!C)break u;o:{if(n=v[k+136>>2])for(r=v[k+144>>2],A=0;;){if((0|C)==v[r+(A<<2)>>2])break o;if((0|n)==(0|(A=A+1|0)))break}A=0}if($=v[R+4>>2])for(;;){if(uf(T=v[$+28>>2],3948)&&uf(T,4921)){if(!uf(T,1231)){if(n=Go(ut(40),v[$+12>>2]),v[n+36>>2]=A,F=0,r=v[$+4>>2])for(;Wi(n,F,Lt(r,5688,w(0)),Lt(r,1269,w(1)),Lt(r,1279,w(1))),Ke(r,n,F),F=F+1|0,r=v[r>>2];);v[h+48>>2]=n,Un(h- -64|0,h+48|0),I=I>(P=p[v[n+32>>2]+(m(e,v[$+12>>2]-1|0)<<2)>>2])?I:P}}else{if(r=uf(T,4921),O=ut(40),n=v[$+12>>2],r?(tf(O,n),n=!v[C+44>>2]):(Ut(O,n),n=d[C+48>>2]<2),P=p[u+24>>2],v[O+36>>2]=A,r=v[$+4>>2])for(P=n?P:w(1),F=0;qi(O,F,Lt(r,5688,w(0)),w(P*Lt(r,T,w(0)))),Ke(r,O,F),F=F+1|0,r=v[r>>2];);v[h+48>>2]=O,Un(h- -64|0,h+48|0),I=I>(P=p[v[O+32>>2]+(m(y,v[$+12>>2]-1|0)<<2)>>2])?I:P}if(!($=v[$>>2]))break}if(!(R=v[R>>2]))break}if(z&&(L=v[z+4>>2]))for(;;){if(B=cu(k,r=ht(h+48|0,v[L+28>>2],0)),gi(r),M=v[L+4>>2])for(;;){if(S=au(k,r=ht(h+48|0,v[M+28>>2],0)),gi(r),e=v[M+4>>2])for(;;){if(K=Pt(B,S,r=ht(h+48|0,v[e+28>>2],0)),gi(r),K){if(r=v[K+40>>2],_=(x=v[K+24>>2])?(r>>>0)/3<<1:r,$=Sr(ut(60),v[e+12>>2]),v[$+56>>2]=K,v[$+20>>2]=S,A=v[e+4>>2])for(O=K+36|0,R=0,z=!!(0|x)|(0|_)<=0;;){r=En(A,2901),v[h+60>>2]=0,v[h+52>>2]=0,v[h+56>>2]=0,v[h+48>>2]=8776;o:if(r){F=Gt(A,2200,0),v[h+32>>2]=0,wn(h+48|0,_,h+32|0),r=v[r+4>>2];a:if(p[u+24>>2]!=w(1)){if(r)for(n=v[h+60>>2];p[n+(F<<2)>>2]=p[r+24>>2]*p[u+24>>2],F=F+1|0,r=v[r>>2];);}else{if(!r)break a;for(n=v[h+60>>2];p[n+(F<<2)>>2]=p[r+24>>2],F=F+1|0,r=v[r>>2];);}if(!z)for(C=v[K+48>>2],r=0,T=v[h+60>>2];p[(n=T+(y=r<<2)|0)>>2]=p[y+C>>2]+p[n>>2],(0|_)!=(0|(r=r+1|0)););}else{if(x){v[h+32>>2]=0,wn(h+48|0,_,h+32|0);break o}Df(h+48|0,O)}if(r=h+48|0,Zi($,R,Lt(A,5688,w(0)),r),Ke(A,$,R),R=R+1|0,To(r),!(A=v[A>>2]))break}v[h+48>>2]=$,Un(h- -64|0,h+48|0),I=I>(P=p[(v[$+36>>2]+(v[e+12>>2]<<2)|0)-4>>2])?I:P}else Rn(h- -64|0);if(!(e=v[e>>2]))break}if(!(M=v[M>>2]))break}if(!(L=v[L>>2]))break}if(J){if(C=Hr(ut(36),v[J+12>>2]),A=v[J+4>>2])for(R=0;;){if(v[h+60>>2]=0,v[h+52>>2]=0,v[h+56>>2]=0,v[h+48>>2]=8744,e=En(A,2573)){v[h+44>>2]=0,v[h+36>>2]=0,v[h+40>>2]=0,v[h+32>>2]=8744,(0|(r=v[k+36>>2]))!=(0|(n=v[e+12>>2]))?(n=r-n|0,v[h+40>>2]=n,r=v[5280],D=h,Y=0|Ta[v[v[r>>2]+16>>2]](r,0,n<<2,8590,101),v[D+44>>2]=Y,r=v[e+12>>2],n=v[k+36>>2]):n=r,v[h+20>>2]=0,gn(h+32|0,n-r|0,h+20|0),(r=v[k+36>>2])>>>0>d[h+56>>2]&&(v[h+56>>2]=r,n=v[5280],D=h,Y=0|Ta[v[v[n>>2]+16>>2]](n,v[h+60>>2],r<<2,8590,101),v[D+60>>2]=Y,r=v[k+36>>2]),v[h+20>>2]=0,gn(h+48|0,r,h+20|0),(0|(r=v[k+36>>2]))>0&&zi(v[h+60>>2],255,r<<2),r=0,F=0;o:if($=v[e+4>>2]){for(;;){if(n=au(k,e=ht(h+20|0,Ht($,1545,0),0)),gi(e),-1!=(0|n)){if((0|r)!=(0|n)){for(e=v[h+44>>2];v[e+(F<<2)>>2]=r,F=F+1|0,(0|n)!=(0|(r=r+1|0)););r=n}if(n=Gt($,2200,0),v[v[h+60>>2]+(r+n<<2)>>2]=r,r=r+1|0,$=v[$>>2])continue;break o}break}Rn(h- -64|0),F=0,Pi(u,0,n=ht(h+20|0,8184,0),r=ht(h+8|0,Ht($,1545,0),0)),gi(r),gi(n),oo(h+32|0),oo(h+48|0);break f}if((e=v[k+36>>2])>>>0>r>>>0)for(n=v[h+44>>2];v[n+(F<<2)>>2]=r,F=F+1|0,(0|e)!=(0|(r=r+1|0)););if((0|e)>0)for(T=v[h+44>>2],y=v[h+60>>2];-1==v[(n=y+((r=e-1|0)<<2)|0)>>2]&&(F=F-1|0,v[n>>2]=v[T+(F<<2)>>2]),n=e>>>0>1,e=r,n;);oo(h+32|0)}if(r=h+48|0,Ce(C,R,Lt(A,5688,w(0)),r),R=R+1|0,oo(r),!(A=v[A>>2]))break}v[h+48>>2]=C,Un(h- -64|0,h+48|0),I=I>(P=p[(v[C+16>>2]+(v[J+12>>2]<<2)|0)-4>>2])?I:P}o:{if(N){if(e=de(ut(36),v[N+12>>2]),r=v[N+4>>2])for($=0;;){if(y=hu(k,n=ht(h+48|0,Ht(r,5773,0),0)),gi(n),!y)break o;if(D=n=ii(ut(40),Lt(r,5688,w(0)),y),Y=Gt(r,1793,v[y+16>>2]),v[D+12>>2]=Y,D=n,Z=Lt(r,2351,p[y+20>>2]),p[D+16>>2]=Z,ve(n+20|0,Ht(r,4860,v[y+32>>2])),v[y+40>>2]&&(D=n,Z=Lt(r,5681,w(1)),p[D+32>>2]=Z,D=n,Z=Lt(r,6107,w(0)),p[D+36>>2]=Z),Ni(e,$,n),$=$+1|0,!(r=v[r>>2]))break}v[h+48>>2]=e,Un(h- -64|0,h+48|0),I=I>(P=p[(v[e+16>>2]+(v[N+12>>2]<<2)|0)-4>>2])?I:P}F=qr(n=ut(48),r=ht(h+48|0,v[f+28>>2],0),h- -64|0,I),gi(r);break f}Rn(h- -64|0),F=0,Pi(u,0,n=ht(h+48|0,8331,0),r=ht(h+32|0,Ht(r,5773,0),0)),gi(r),gi(n);break f}Rn(h- -64|0),F=0,Pi(u,0,n=ht(h+48|0,8272,0),r=ht(h+32|0,v[R+28>>2],0)),gi(r),gi(n);break f}Rn(h- -64|0),F=0,Pi(u,0,n=ht(h+48|0,8125,0),r=ht(h+32|0,v[$+28>>2],0)),gi(r),gi(n);break f}Rn(h- -64|0),F=0,Pi(u,0,n=ht(h+48|0,8064,0),r=ht(h+32|0,v[A+28>>2],0)),gi(r),gi(n)}if(so(h- -64|0),V=h+80|0,F&&(v[v[k+96>>2]+(g<<2)>>2]=F,g=g+1|0),!(r=v[f>>2]))break}ar(Fe(a));break r}Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8413,0),r=ht(t+20|0,e,0)),gi(r),gi(n);break r}Ta[v[v[k>>2]+4>>2]](k),k=0,Pi(u,a,n=ht(t+32|0,8435,0),r=ht(t+20|0,e,0)),gi(r),gi(n)}return V=t+288|0,r=k,v[u+36>>2]&&(v[c>>2]=v[u+40>>2],H(20831,17040,0|c)),hr(r,e=o+48|0,n=o+32|0),Wf(u),V=c+48|0,be(n),be(e),V=o- -64|0,0|r},function(r,n,e,f,i){var t;return r|=0,n|=0,f|=0,i|=0,V=t=V-32|0,e=$e(t+20|0,4+(e|=0)|0,v[e>>2],0),v[t+12>>2]=i,v[t+16>>2]=f,r=0|Ta[0|r](n,e,t+16|0,t+12|0),E(v[t+12>>2]),E(v[t+16>>2]),gi(e),V=t+32|0,0|r},function(r,n,e,f){r|=0,n|=0,e|=0,f|=0;var t,o,a,c,b=0,s=0,h=0,y=0,g=0,F=0,A=w(0),T=0,$=0,I=0,C=0,P=0,O=w(0),R=0,S=0,L=0,M=0,_=0,z=0,x=0,J=0,K=0,B=0,N=0,q=0,D=0,Z=0,Y=0,X=0,rr=w(0),nr=0,er=0,fr=0,ir=0,tr=0;if(V=o=V+-64|0,h=v[e>>2],s=0|j(4696),b=0|U(0|h,0|s),E(0|s),c=+G(0|b,21553,0|(s=o+48|0)),W(v[o+48>>2]),E(0|b),v[o+60>>2]=0,v[o+52>>2]=0,v[o+56>>2]=0,v[o+48>>2]=9212,v[o+44>>2]=0,v[o+36>>2]=0,v[o+40>>2]=0,v[o+32>>2]=9212,tn(h=s,s=c<4294967296&c>=0?~~c>>>0:0,b=ht(o+20|0,8590,0)),gi(b),tn(o+32|0,s,b=ht(o+20|0,8590,0)),gi(b),v[o+16>>2]=0,s)for(;qf(y=o+12|0,e,$=o+16|0),wf(b=o+20|0,y),te(v[o+60>>2]+m(v[o+16>>2],12)|0,b),gi(b),E(v[o+12>>2]),qf(y,f,$),wf(b,y),te(v[o+44>>2]+m(v[o+16>>2],12)|0,b),gi(b),E(v[o+12>>2]),b=v[o+16>>2]+1|0,v[o+16>>2]=b,b>>>0>>0;);V=a=V-48|0,n=sf(ut(40),v[n+8>>2],v[n+4>>2]),ir=$=a+4|0,tr=Ot(ut(12),n),v[ir+4>>2]=tr,v[$+20>>2]=0,v[$+12>>2]=0,v[$+16>>2]=0,v[$+8>>2]=10344,v[$>>2]=10312,Tt($+24|0),i[$+40|0]=0,v[$+36>>2]=1065353216,v[$+36>>2]=1065353216,n=v[5445],V=t=V-16|0,b=ut(12),v[b+8>>2]=r+n,v[b+4>>2]=n,v[b>>2]=10328,v[$+12>>2]=0,Rf((e=Mr(ut(232)))+176|0,$f(b)),Rf(r=e+164|0,$f(b)),r=ei(n=ht(t+4|0,6917,0),r),gi(n);r:if(r)Ta[v[v[b>>2]+4>>2]](b),e&&Ta[v[v[e>>2]+4>>2]](e),oe($,6971,8590),e=0;else{if(r=v[b+4>>2],v[b+4>>2]=r+1,n=l[0|r],v[b+4>>2]=r+2,f=l[r+1|0],v[b+4>>2]=r+3,s=l[r+2|0],v[b+4>>2]=r+4,v[e+148>>2]=l[r+3|0]|(s|f<<8|n<<16)<<8,v[b+4>>2]=r+5,n=l[r+4|0],v[b+4>>2]=r+6,f=l[r+5|0],v[b+4>>2]=r+7,s=l[r+6|0],v[b+4>>2]=r+8,v[e+152>>2]=l[r+7|0]|(s|f<<8|n<<16)<<8,v[b+4>>2]=r+9,n=l[r+8|0],v[b+4>>2]=r+10,f=l[r+9|0],v[b+4>>2]=r+11,s=l[r+10|0],v[b+4>>2]=r+12,v[e+156>>2]=l[r+11|0]|(s|f<<8|n<<16)<<8,v[b+4>>2]=r+13,n=l[r+12|0],v[b+4>>2]=r+14,f=l[r+13|0],v[b+4>>2]=r+15,s=l[r+14|0],v[b+4>>2]=r+16,v[e+160>>2]=l[r+15|0]|(s|f<<8|n<<16)<<8,v[b+4>>2]=r+17,(y=l[r+16|0])&&(v[b+4>>2]=r+18,n=l[r+17|0],v[b+4>>2]=r+19,f=l[r+18|0],v[b+4>>2]=r+20,s=l[r+19|0],v[b+4>>2]=r+21,v[e+204>>2]=l[r+20|0]|(s|f<<8|n<<16)<<8,Rf(e+208|0,$f(b)),Rf(e+220|0,$f(b))),(0|(r=jn(b,1)))>0)for(n=e+188|0;ir=t,tr=$f(b),v[ir+4>>2]=tr,Un(n,t+4|0),(0|r)!=(0|(F=F+1|0)););if(s=jn(b,1),v[t+4>>2]=0,$n(e+16|0,s,t+4|0),(0|s)>0)for(f=0;n=$f(b),f?(r=jn(b,1),r=v[v[e+28>>2]+(r<<2)>>2]):r=0,n=ne(g=ut(64),f,h=ht(t+4|0,n,1),r),gi(h),r=v[b+4>>2],v[b+4>>2]=r+1,h=l[0|r],v[b+4>>2]=r+2,F=l[r+1|0],v[b+4>>2]=r+3,g=l[r+2|0],v[b+4>>2]=r+4,v[n+36>>2]=l[r+3|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=r+5,h=l[r+4|0],v[b+4>>2]=r+6,F=l[r+5|0],v[b+4>>2]=r+7,g=l[r+6|0],v[b+4>>2]=r+8,A=p[$+36>>2],p[n+28>>2]=A*(u(2,l[r+7|0]|(g|F<<8|h<<16)<<8),k()),v[b+4>>2]=r+9,h=l[r+8|0],v[b+4>>2]=r+10,F=l[r+9|0],v[b+4>>2]=r+11,g=l[r+10|0],v[b+4>>2]=r+12,p[n+32>>2]=A*(u(2,l[r+11|0]|(g|F<<8|h<<16)<<8),k()),v[b+4>>2]=r+13,h=l[r+12|0],v[b+4>>2]=r+14,F=l[r+13|0],v[b+4>>2]=r+15,g=l[r+14|0],v[b+4>>2]=r+16,v[n+40>>2]=l[r+15|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=r+17,h=l[r+16|0],v[b+4>>2]=r+18,F=l[r+17|0],v[b+4>>2]=r+19,g=l[r+18|0],v[b+4>>2]=r+20,v[n+44>>2]=l[r+19|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=r+21,h=l[r+20|0],v[b+4>>2]=r+22,F=l[r+21|0],v[b+4>>2]=r+23,g=l[r+22|0],v[b+4>>2]=r+24,v[n+48>>2]=l[r+23|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=r+25,h=l[r+24|0],v[b+4>>2]=r+26,F=l[r+25|0],v[b+4>>2]=r+27,g=l[r+26|0],v[b+4>>2]=r+28,v[n+52>>2]=l[r+27|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=r+29,h=l[r+28|0],v[b+4>>2]=r+30,F=l[r+29|0],v[b+4>>2]=r+31,g=l[r+30|0],v[b+4>>2]=r+32,p[n+24>>2]=A*(u(2,l[r+31|0]|(g|F<<8|h<<16)<<8),k()),ir=n,tr=jn(b,1),v[ir+56>>2]=tr,r=v[b+4>>2],v[b+4>>2]=r+1,i[n+60|0]=0!=l[0|r],y&&(v[b+4>>2]=r+5),v[v[e+28>>2]+(f<<2)>>2]=n,(0|s)!=(0|(f=f+1|0)););if(h=jn(b,1),v[t+4>>2]=0,$n(e+32|0,h,t+4|0),(0|h)>0)for(r=0;n=$f(b),f=jn(b,1),f=v[v[e+28>>2]+(f<<2)>>2],f=Dn(s=ut(84),r,n=ht(t+4|0,n,1),f),gi(n),s=Xo(f),n=v[b+4>>2],v[b+4>>2]=n+1,p[s+4>>2]=w(l[0|n])/w(255),v[b+4>>2]=n+2,p[s+8>>2]=w(l[n+1|0])/w(255),v[b+4>>2]=n+3,p[s+12>>2]=w(l[n+2|0])/w(255),v[b+4>>2]=n+4,p[s+16>>2]=w(l[n+3|0])/w(255),v[b+4>>2]=n+5,s=l[n+4|0],v[b+4>>2]=n+6,F=l[n+5|0],v[b+4>>2]=n+7,g=l[n+6|0],v[b+4>>2]=n+8,255==(s&F)&255==(g&l[n+7|0])||(n=la(f),v[n+16>>2]=1065353216,p[n+12>>2]=w(g>>>0)/w(255),p[n+8>>2]=w(F>>>0)/w(255),p[n+4>>2]=w(s>>>0)/w(255),vf(n),ha(f)),ve(s=f+68|0,n=(n=jn(b,1))?v[(v[e+200>>2]+(n<<2)|0)-4>>2]:0),ir=f,tr=jn(b,1),v[ir+80>>2]=tr,v[v[e+44>>2]+(r<<2)>>2]=f,(0|h)!=(0|(r=r+1|0)););if(s=jn(b,1),v[t+4>>2]=0,$n(e+100|0,s,t+4|0),(0|s)>0)for(r=0;;){if(n=$f(b),f=Qe(f=ut(60),n=ht(h=t+4|0,n,1)),gi(n),ba(f,jn(b,1)),n=v[b+4>>2],v[b+4>>2]=n+1,va(f,0!=l[0|n]),n=jn(b,1),v[t+4>>2]=0,$n(f+24|0,n,h),(0|n)>0)for(F=0;h=jn(b,1),v[v[f+36>>2]+(F<<2)>>2]=v[v[e+28>>2]+(h<<2)>>2],(0|n)!=(0|(F=F+1|0)););if(n=jn(b,1),v[f+40>>2]=v[v[e+28>>2]+(n<<2)>>2],n=v[b+4>>2],v[b+4>>2]=n+1,h=l[0|n],v[b+4>>2]=n+2,F=l[n+1|0],v[b+4>>2]=n+3,g=l[n+2|0],v[b+4>>2]=n+4,v[f+52>>2]=l[n+3|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=n+5,h=l[n+4|0],v[b+4>>2]=n+6,F=l[n+5|0],v[b+4>>2]=n+7,g=l[n+6|0],v[b+4>>2]=n+8,p[f+56>>2]=p[$+36>>2]*(u(2,l[n+7|0]|(g|F<<8|h<<16)<<8),k()),v[b+4>>2]=n+9,v[f+44>>2]=i[n+8|0],v[b+4>>2]=n+10,i[f+48|0]=0!=l[n+9|0],v[b+4>>2]=n+11,i[f+49|0]=0!=l[n+10|0],v[b+4>>2]=n+12,i[f+50|0]=0!=l[n+11|0],v[v[e+112>>2]+(r<<2)>>2]=f,(0|s)==(0|(r=r+1|0)))break}if(s=jn(b,1),v[t+4>>2]=0,$n(e+116|0,s,t+4|0),(0|s)>0)for(r=0;;){if(n=$f(b),f=it(f=ut(88),n=ht(h=t+4|0,n,1)),gi(n),ba(f,jn(b,1)),n=v[b+4>>2],v[b+4>>2]=n+1,va(f,0!=l[0|n]),n=jn(b,1),v[t+4>>2]=0,$n(f+24|0,n,h),(0|n)>0)for(F=0;h=jn(b,1),v[v[f+36>>2]+(F<<2)>>2]=v[v[e+28>>2]+(h<<2)>>2],(0|n)!=(0|(F=F+1|0)););if(n=jn(b,1),v[f+40>>2]=v[v[e+28>>2]+(n<<2)>>2],n=v[b+4>>2],v[b+4>>2]=n+1,i[f+85|0]=0!=l[0|n],v[b+4>>2]=n+2,i[f+84|0]=0!=l[n+1|0],v[b+4>>2]=n+3,h=l[n+2|0],v[b+4>>2]=n+4,F=l[n+3|0],v[b+4>>2]=n+5,g=l[n+4|0],v[b+4>>2]=n+6,v[f+60>>2]=l[n+5|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=n+7,h=l[n+6|0],v[b+4>>2]=n+8,F=l[n+7|0],v[b+4>>2]=n+9,g=l[n+8|0],v[b+4>>2]=n+10,A=p[$+36>>2],p[f+64>>2]=A*(u(2,l[n+9|0]|(g|F<<8|h<<16)<<8),k()),v[b+4>>2]=n+11,h=l[n+10|0],v[b+4>>2]=n+12,F=l[n+11|0],v[b+4>>2]=n+13,g=l[n+12|0],v[b+4>>2]=n+14,p[f+68>>2]=A*(u(2,l[n+13|0]|(g|F<<8|h<<16)<<8),k()),v[b+4>>2]=n+15,h=l[n+14|0],v[b+4>>2]=n+16,F=l[n+15|0],v[b+4>>2]=n+17,g=l[n+16|0],v[b+4>>2]=n+18,v[f+72>>2]=l[n+17|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=n+19,h=l[n+18|0],v[b+4>>2]=n+20,F=l[n+19|0],v[b+4>>2]=n+21,g=l[n+20|0],v[b+4>>2]=n+22,v[f+76>>2]=l[n+21|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=n+23,h=l[n+22|0],v[b+4>>2]=n+24,F=l[n+23|0],v[b+4>>2]=n+25,g=l[n+24|0],v[b+4>>2]=n+26,v[f+80>>2]=l[n+25|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=n+27,h=l[n+26|0],v[b+4>>2]=n+28,F=l[n+27|0],v[b+4>>2]=n+29,g=l[n+28|0],v[b+4>>2]=n+30,v[f+44>>2]=l[n+29|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=n+31,h=l[n+30|0],v[b+4>>2]=n+32,F=l[n+31|0],v[b+4>>2]=n+33,g=l[n+32|0],v[b+4>>2]=n+34,v[f+48>>2]=l[n+33|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=n+35,h=l[n+34|0],v[b+4>>2]=n+36,F=l[n+35|0],v[b+4>>2]=n+37,g=l[n+36|0],v[b+4>>2]=n+38,v[f+52>>2]=l[n+37|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=n+39,h=l[n+38|0],v[b+4>>2]=n+40,F=l[n+39|0],v[b+4>>2]=n+41,g=l[n+40|0],v[b+4>>2]=n+42,v[f+56>>2]=l[n+41|0]|(g|F<<8|h<<16)<<8,v[v[e+128>>2]+(r<<2)>>2]=f,(0|s)==(0|(r=r+1|0)))break}if(s=jn(b,1),v[t+4>>2]=0,$n(e+132|0,s,t+4|0),(0|s)>0)for(r=0;;){if(n=$f(b),f=tt(f=ut(76),n=ht(h=t+4|0,n,1)),gi(n),ba(f,jn(b,1)),n=v[b+4>>2],v[b+4>>2]=n+1,va(f,0!=l[0|n]),n=jn(b,1),v[t+4>>2]=0,$n(f+24|0,n,h),(0|n)>0)for(F=0;h=jn(b,1),v[v[f+36>>2]+(F<<2)>>2]=v[v[e+28>>2]+(h<<2)>>2],(0|n)!=(0|(F=F+1|0)););if(n=jn(b,1),v[f+40>>2]=v[v[e+44>>2]+(n<<2)>>2],ir=f,tr=jn(b,1),v[ir+44>>2]=tr,ir=f,tr=jn(b,1),v[ir+48>>2]=tr,ir=f,tr=jn(b,1),v[ir+52>>2]=tr,n=v[b+4>>2],v[b+4>>2]=n+1,h=l[0|n],v[b+4>>2]=n+2,F=l[n+1|0],v[b+4>>2]=n+3,g=l[n+2|0],v[b+4>>2]=n+4,v[f+56>>2]=l[n+3|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=n+5,h=l[n+4|0],v[b+4>>2]=n+6,F=l[n+5|0],v[b+4>>2]=n+7,g=l[n+6|0],v[b+4>>2]=n+8,h=l[n+7|0]|(g|F<<8|h<<16)<<8,v[f+60>>2]=h,v[f+44>>2]||(p[f+60>>2]=p[$+36>>2]*(u(2,h),k())),v[b+4>>2]=n+9,h=l[n+8|0],v[b+4>>2]=n+10,F=l[n+9|0],v[b+4>>2]=n+11,g=l[n+10|0],v[b+4>>2]=n+12,h=l[n+11|0]|(g|F<<8|h<<16)<<8,v[f+64>>2]=h,d[f+48>>2]<=1&&(p[f+64>>2]=p[$+36>>2]*(u(2,h),k())),v[b+4>>2]=n+13,h=l[n+12|0],v[b+4>>2]=n+14,F=l[n+13|0],v[b+4>>2]=n+15,g=l[n+14|0],v[b+4>>2]=n+16,v[f+68>>2]=l[n+15|0]|(g|F<<8|h<<16)<<8,v[b+4>>2]=n+17,h=l[n+16|0],v[b+4>>2]=n+18,F=l[n+17|0],v[b+4>>2]=n+19,g=l[n+18|0],v[b+4>>2]=n+20,v[f+72>>2]=l[n+19|0]|(g|F<<8|h<<16)<<8,v[v[e+144>>2]+(r<<2)>>2]=f,(0|s)==(0|(r=r+1|0)))break}if(r=Q($,b,1,e,!!(0|y)),v[t>>2]=r,r&&(v[e+64>>2]=r,Un(e+48|0,t)),r=jn(b,1))for(n=e+48|0,F=0;ir=t,tr=Q($,b,0,e,!!(0|y)),v[ir+4>>2]=tr,Un(n,t+4|0),(0|r)!=(0|(F=F+1|0)););if((0|(y=v[$+12>>2]))>0)for(r=0;;){if(f=v[v[$+20>>2]+(r<<2)>>2],!(n=v[f+12>>2]?cu(e,f+8|0):v[e+64>>2])){Ta[v[v[b>>2]+4>>2]](b),e&&Ta[v[v[e>>2]+4>>2]](e),oe($,8372,v[f+16>>2]),e=0;break r}if(!(n=Pt(n,v[f+20>>2],f+24|0))){Ta[v[v[b>>2]+4>>2]](b),e&&Ta[v[v[e>>2]+4>>2]](e),oe($,8389,v[f+32>>2]),e=0;break r}if(s=v[f+4>>2],v[s+56>>2]=l[f+36|0]?n:s,Kn(s,n),lr(v[f+4>>2]),n=v[$+4>>2],Ta[v[v[n>>2]+36>>2]](n,v[f+4>>2]),(0|y)==(0|(r=r+1|0)))break}if(Rn($+8|0),v[$+12>>2]=0,s=jn(b,1),v[t+4>>2]=0,$n(e+68|0,s,t+4|0),(0|s)>0)for(f=0;r=(r=jn(b,1))?v[(v[e+200>>2]+(r<<2)|0)-4>>2]:0,n=ci(n=ut(56),r=ht(t+4|0,r,0)),gi(r),ir=n,tr=jn(b,0),v[ir+16>>2]=tr,r=v[b+4>>2],v[b+4>>2]=r+1,y=l[0|r],v[b+4>>2]=r+2,h=l[r+1|0],v[b+4>>2]=r+3,F=l[r+2|0],v[b+4>>2]=r+4,v[n+20>>2]=l[r+3|0]|(F|h<<8|y<<16)<<8,Rf(n+24|0,$f(b)),Rf(n+36|0,$f(b)),v[n+40>>2]&&(r=v[b+4>>2],v[b+4>>2]=r+1,y=l[0|r],v[b+4>>2]=r+2,h=l[r+1|0],v[b+4>>2]=r+3,F=l[r+2|0],v[b+4>>2]=r+4,v[n+48>>2]=l[r+3|0]|(F|h<<8|y<<16)<<8,v[b+4>>2]=r+5,y=l[r+4|0],v[b+4>>2]=r+6,h=l[r+5|0],v[b+4>>2]=r+7,F=l[r+6|0],v[b+4>>2]=r+8,v[n+52>>2]=l[r+7|0]|(F|h<<8|y<<16)<<8),v[v[e+80>>2]+(f<<2)>>2]=n,(0|s)!=(0|(f=f+1|0)););if(nr=jn(b,1),v[t+4>>2]=0,$n(e+84|0,nr,t+4|0),(0|nr)>0)for(F=0;;){er=ht(t+4|0,$f(b),1),h=0,O=w(0),V=y=V+-64|0,v[y+60>>2]=0,v[y+52>>2]=0,v[y+56>>2]=0,v[y+48>>2]=1048,rr=p[$+36>>2];n:{e:if(!((0|(C=jn(b,1)))<=0))for(K=v[2333],L=v[2772],T=1;;){if(I=jn(b,1),g=0,(0|(z=jn(b,1)))>0)for(;;){r=v[b+4>>2],v[b+4>>2]=r+1,r=l[0|r],f=jn(b,1);f:{i:{t:{u:{switch(0|r){case 0:if(r=ln(ut(40),f),v[r+4>>2]=I,n=0,(0|f)<=0)break i;for(;s=v[b+4>>2],v[b+4>>2]=s+1,R=l[0|s],v[b+4>>2]=s+2,S=l[s+1|0],v[b+4>>2]=s+3,P=l[s+2|0],v[b+4>>2]=s+4,u(2,l[s+3|0]|(P|S<<8|R<<16)<<8),xi(r,n,A=k(),s=ht(P=y+32|0,s=(s=jn(b,1))?v[(v[e+200>>2]+(s<<2)|0)-4>>2]:0,0)),gi(s),(0|f)!=(0|(n=n+1|0)););break i;case 1:if(s=ef(ut(40),f),v[s+20>>2]=I,R=f-1|0,n=0,(0|f)<=0)break t;for(;r=v[b+4>>2],v[b+4>>2]=r+1,S=l[0|r],v[b+4>>2]=r+2,P=l[r+1|0],v[b+4>>2]=r+3,_=l[r+2|0],v[b+4>>2]=r+4,M=l[r+3|0],v[b+4>>2]=r+5,J=l[r+4|0],v[b+4>>2]=r+6,x=l[r+5|0],v[b+4>>2]=r+7,B=l[r+6|0],v[b+4>>2]=r+8,Mf(s,n,(u(2,M|(_|P<<8|S<<16)<<8),k()),w(w(J>>>0)/w(255)),w(w(x>>>0)/w(255)),w(w(B>>>0)/w(255)),w(w(l[r+7|0])/w(255))),(0|n)<(0|R)&&Lr(b,n,s),(0|f)!=(0|(n=n+1|0)););break t;case 2:if(s=Je(ut(40),f),v[s+36>>2]=I,R=f-1|0,n=0,(0|f)<=0)break u;for(;r=v[b+4>>2],v[b+4>>2]=r+1,S=l[0|r],v[b+4>>2]=r+2,P=l[r+1|0],v[b+4>>2]=r+3,_=l[r+2|0],v[b+4>>2]=r+4,M=l[r+3|0],v[b+4>>2]=r+5,J=l[r+4|0],v[b+4>>2]=r+6,x=l[r+5|0],v[b+4>>2]=r+7,B=l[r+6|0],v[b+4>>2]=r+8,q=l[r+7|0],v[b+4>>2]=r+10,D=l[r+9|0],v[b+4>>2]=r+11,N=l[r+10|0],v[b+4>>2]=r+12,Ge(s,n,(u(2,M|(_|P<<8|S<<16)<<8),k()),w(w(J>>>0)/w(255)),w(w(x>>>0)/w(255)),w(w(B>>>0)/w(255)),w(w(q>>>0)/w(255)),w(w(D>>>0)/w(255)),w(w(N>>>0)/w(255)),w(w(l[r+11|0])/w(255))),(0|n)<(0|R)&&Lr(b,n,s),(0|f)!=(0|(n=n+1|0)););break u}if(Rn(y+48|0),oe($,8064,v[v[v[e+44>>2]+(I<<2)>>2]+16>>2]),r=0,1&T)break n;break e}v[y+32>>2]=s,n=s+32|0,Un(y+48|0,y+32|0),r=m(R,L);break f}v[y+32>>2]=s,n=s+36|0,Un(y+48|0,y+32|0),r=m(R,K);break f}v[y+32>>2]=r,n=r+20|0,Un(y+48|0,y+32|0),r=f-1|0}if(O=(A=p[v[n>>2]+(r<<2)>>2])(0|(h=h+1|0)),(0|h)==(0|C))break}e:if(!((0|(C=jn(b,1)))<=0))for(h=0,K=v[2755],T=1;;){if(I=jn(b,1),g=0,(0|(L=jn(b,1)))>0)for(;;){r=v[b+4>>2],v[b+4>>2]=r+1,r=l[0|r],s=jn(b,1);f:{i:{t:{u:{o:switch(0|r){case 0:if(f=ff(ut(40),s),v[f+20>>2]=I,(0|s)>0)for(R=s-1|0,n=0;r=v[b+4>>2],v[b+4>>2]=r+1,z=l[0|r],v[b+4>>2]=r+2,S=l[r+1|0],v[b+4>>2]=r+3,P=l[r+2|0],v[b+4>>2]=r+4,_=l[r+3|0],v[b+4>>2]=r+5,M=l[r+4|0],v[b+4>>2]=r+6,J=l[r+5|0],v[b+4>>2]=r+7,x=l[r+6|0],v[b+4>>2]=r+8,Di(f,n,(u(2,_|(P|S<<8|z<<16)<<8),k()),(u(2,l[r+7|0]|(x|J<<8|M<<16)<<8),k())),(0|n)<(0|R)&&Lr(b,n,f),(0|s)!=(0|(n=n+1|0)););v[y+32>>2]=f,n=(s<<1)-2|0,Un(y+48|0,y+32|0),r=f+36|0;break f;case 2:A=w(1),f=pu(ut(40),s);break u;case 3:A=w(1),f=yu(ut(40),s);break u;case 1:break o;default:break t}A=rr,f=_e(ut(40),s)}if(v[f+36>>2]=I,R=s-1|0,n=0,(0|s)<=0)break i;for(;r=v[b+4>>2],v[b+4>>2]=r+1,z=l[0|r],v[b+4>>2]=r+2,S=l[r+1|0],v[b+4>>2]=r+3,P=l[r+2|0],v[b+4>>2]=r+4,_=l[r+3|0],v[b+4>>2]=r+5,M=l[r+4|0],v[b+4>>2]=r+6,J=l[r+5|0],v[b+4>>2]=r+7,x=l[r+6|0],v[b+4>>2]=r+8,B=l[r+7|0],v[b+4>>2]=r+9,q=l[r+8|0],v[b+4>>2]=r+10,D=l[r+9|0],v[b+4>>2]=r+11,N=l[r+10|0],v[b+4>>2]=r+12,Wi(f,n,(u(2,_|(P|S<<8|z<<16)<<8),k()),w(A*(u(2,B|(x|J<<8|M<<16)<<8),k())),w(A*(u(2,l[r+11|0]|(N|D<<8|q<<16)<<8),k()))),(0|n)<(0|R)&&Lr(b,n,f),(0|s)!=(0|(n=n+1|0)););break i}if(Rn(y+48|0),oe($,8125,v[v[v[e+28>>2]+(I<<2)>>2]+16>>2]),r=0,1&T)break n;break e}n=m(R,K),v[y+32>>2]=f,Un(y+48|0,y+32|0),r=f+32|0}if(O=(A=p[v[r>>2]+(n<<2)>>2])(0|(h=h+1|0)),(0|h)==(0|C))break}if((0|(T=jn(b,1)))>0)for(I=v[2421],g=0;;){if(r=jn(b,1),f=jn(b,1),s=So(ut(40),f),v[s+36>>2]=r,h=f-1|0,n=0,(0|f)>0)for(;r=v[b+4>>2],v[b+4>>2]=r+1,C=l[0|r],v[b+4>>2]=r+2,R=l[r+1|0],v[b+4>>2]=r+3,K=l[r+2|0],v[b+4>>2]=r+4,L=l[r+3|0],v[b+4>>2]=r+5,z=l[r+4|0],v[b+4>>2]=r+6,S=l[r+5|0],v[b+4>>2]=r+7,P=l[r+6|0],v[b+4>>2]=r+8,_=l[r+7|0],v[b+4>>2]=r+9,M=l[r+8|0],v[b+4>>2]=r+10,J=l[r+9|0],v[b+4>>2]=r+11,x=l[r+10|0],v[b+4>>2]=r+12,A=p[$+36>>2],B=l[r+11|0],v[b+4>>2]=r+13,q=i[r+12|0],v[b+4>>2]=r+14,D=l[r+13|0],v[b+4>>2]=r+15,of(s,n,(u(2,L|(K|R<<8|C<<16)<<8),k()),(u(2,_|(P|S<<8|z<<16)<<8),k()),w(A*(u(2,B|(x|J<<8|M<<16)<<8),k())),q,!!(0|D),0!=l[r+14|0]),(0|n)<(0|h)&&Lr(b,n,s),(0|f)!=(0|(n=n+1|0)););if(v[y+32>>2]=s,Un(y+48|0,y+32|0),O=(A=p[v[s+32>>2]+(m(h,I)<<2)>>2])0)for(I=v[2747],f=0;;){if(r=jn(b,1),s=jn(b,1),h=Wo(ut(40),s),v[h+36>>2]=r,g=s-1|0,n=0,(0|s)>0)for(;r=v[b+4>>2],v[b+4>>2]=r+1,C=l[0|r],v[b+4>>2]=r+2,R=l[r+1|0],v[b+4>>2]=r+3,K=l[r+2|0],v[b+4>>2]=r+4,L=l[r+3|0],v[b+4>>2]=r+5,z=l[r+4|0],v[b+4>>2]=r+6,S=l[r+5|0],v[b+4>>2]=r+7,P=l[r+6|0],v[b+4>>2]=r+8,_=l[r+7|0],v[b+4>>2]=r+9,M=l[r+8|0],v[b+4>>2]=r+10,J=l[r+9|0],v[b+4>>2]=r+11,x=l[r+10|0],v[b+4>>2]=r+12,B=l[r+11|0],v[b+4>>2]=r+13,q=l[r+12|0],v[b+4>>2]=r+14,D=l[r+13|0],v[b+4>>2]=r+15,N=l[r+14|0],v[b+4>>2]=r+16,Z=l[r+15|0],v[b+4>>2]=r+17,Y=l[r+16|0],v[b+4>>2]=r+18,X=l[r+17|0],v[b+4>>2]=r+19,fr=l[r+18|0],v[b+4>>2]=r+20,Lf(h,n,(u(2,L|(K|R<<8|C<<16)<<8),k()),(u(2,_|(P|S<<8|z<<16)<<8),k()),(u(2,B|(x|J<<8|M<<16)<<8),k()),(u(2,Z|(N|D<<8|q<<16)<<8),k()),(u(2,l[r+19|0]|(X<<8|Y<<16|fr)<<8),k())),(0|n)<(0|g)&&Lr(b,n,h),(0|s)!=(0|(n=n+1|0)););if(v[y+32>>2]=h,Un(y+48|0,y+32|0),O=(A=p[v[h+32>>2]+(m(g,I)<<2)>>2])0)for(T=0,K=v[2493],L=v[2485];;){if(h=jn(b,1),I=v[v[e+144>>2]+(h<<2)>>2],(0|(z=jn(b,1)))>0)for(g=0;;){r=v[b+4>>2],v[b+4>>2]=r+1,r=i[0|r],f=jn(b,1);e:{f:switch(0|r){case 0:case 1:if(s=ut(40),1!=(0|r)?(tf(s,f),r=!v[I+44>>2]):(Ut(s,f),r=d[I+48>>2]<2),v[s+36>>2]=h,C=f-1|0,n=0,(0|f)>0)for(A=r?rr:w(1);r=v[b+4>>2],v[b+4>>2]=r+1,S=l[0|r],v[b+4>>2]=r+2,P=l[r+1|0],v[b+4>>2]=r+3,_=l[r+2|0],v[b+4>>2]=r+4,M=l[r+3|0],v[b+4>>2]=r+5,J=l[r+4|0],v[b+4>>2]=r+6,x=l[r+5|0],v[b+4>>2]=r+7,B=l[r+6|0],v[b+4>>2]=r+8,qi(s,n,(u(2,M|(_|P<<8|S<<16)<<8),k()),w(A*(u(2,l[r+7|0]|(B|x<<8|J<<16)<<8),k()))),(0|n)<(0|C)&&Lr(b,n,s),(0|f)!=(0|(n=n+1|0)););v[y+32>>2]=s,Un(y+48|0,y+32|0),O=(A=p[v[s+32>>2]+(m(C,K)<<2)>>2])>2]=h,C=f-1|0,n=0,(0|f)>0)for(;r=v[b+4>>2],v[b+4>>2]=r+1,S=l[0|r],v[b+4>>2]=r+2,P=l[r+1|0],v[b+4>>2]=r+3,_=l[r+2|0],v[b+4>>2]=r+4,M=l[r+3|0],v[b+4>>2]=r+5,J=l[r+4|0],v[b+4>>2]=r+6,x=l[r+5|0],v[b+4>>2]=r+7,B=l[r+6|0],v[b+4>>2]=r+8,q=l[r+7|0],v[b+4>>2]=r+9,D=l[r+8|0],v[b+4>>2]=r+10,N=l[r+9|0],v[b+4>>2]=r+11,Z=l[r+10|0],v[b+4>>2]=r+12,Wi(s,n,(u(2,M|(_|P<<8|S<<16)<<8),k()),(u(2,q|(B|x<<8|J<<16)<<8),k()),(u(2,l[r+11|0]|(Z|N<<8|D<<16)<<8),k())),(0|n)<(0|C)&&Lr(b,n,s),(0|f)!=(0|(n=n+1|0)););v[y+32>>2]=s,Un(y+48|0,y+32|0),O=(A=p[v[s+32>>2]+(m(C,L)<<2)>>2])>2]+(r<<2)>>2],T=0,(0|(x=jn(b,1)))>0)for(;;){if(g=0,_=jn(b,1),(0|(B=jn(b,1)))>0)for(;;){if(r=0,(n=jn(b,1))&&(r=v[(v[e+200>>2]+(n<<2)|0)-4>>2]),I=Pt(J,_,n=ht(y+32|0,r,0)),gi(n),!I){if(Rn(y+48|0),oe($,8349,r),r=0,P)break n;break e}if(r=v[I+40>>2],R=(M=v[I+24>>2])?(r>>>0)/3<<1:r,K=jn(b,1),C=Sr(ut(60),K),v[C+56>>2]=I,v[C+20>>2]=_,K)for(q=I+36|0,D=R<<2,z=K-1|0,h=0;;){r=v[b+4>>2],v[b+4>>2]=r+1,n=l[0|r],v[b+4>>2]=r+2,s=l[r+1|0],v[b+4>>2]=r+3,L=l[r+2|0],v[b+4>>2]=r+4,r=l[r+3|0],v[y+44>>2]=0,v[y+36>>2]=0,v[y+40>>2]=0,v[y+32>>2]=8776,u(2,r|(L|s<<8|n<<16)<<8),A=k();f:if(r=jn(b,1)){v[y+16>>2]=0,wn(y+32|0,R,y+16|0),L=r+(n=jn(b,1))|0;i:if(rr==w(1)){if(!(n>>>0>=L>>>0))for(r=v[b+4>>2],N=v[y+44>>2];v[b+4>>2]=r+1,Z=l[0|r],v[b+4>>2]=r+2,Y=l[r+1|0],v[b+4>>2]=r+3,X=l[r+2|0],s=r+4|0,v[b+4>>2]=s,v[N+(n<<2)>>2]=l[r+3|0]|(X|Y<<8|Z<<16)<<8,r=s,(0|L)!=(0|(n=n+1|0)););}else{if(n>>>0>=L>>>0)break i;for(r=v[b+4>>2],N=v[y+44>>2];v[b+4>>2]=r+1,Z=l[0|r],v[b+4>>2]=r+2,Y=l[r+1|0],v[b+4>>2]=r+3,X=l[r+2|0],s=r+4|0,v[b+4>>2]=s,p[N+(n<<2)>>2]=rr*(u(2,l[r+3|0]|(X|Y<<8|Z<<16)<<8),k()),r=s,(0|L)!=(0|(n=n+1|0)););}if(!M&&(n=v[y+36>>2]))for(s=v[I+48>>2],r=0,L=v[y+44>>2];p[(Z=(N=r<<2)+L|0)>>2]=p[s+N>>2]+p[Z>>2],(0|n)!=(0|(r=r+1|0)););}else{if(M){if(v[y+16>>2]=0,wn(y+32|0,R,y+16|0),!R)break f;zi(v[y+44>>2],0,D);break f}v[y+36>>2]=0,Df(y+32|0,q)}if(Zi(C,h,A,y+32|0),h>>>0>>0&&Lr(b,h,C),To(y+32|0),(0|K)==(0|(h=h+1|0)))break}else z=-1;if(v[y+32>>2]=C,Un(y+48|0,y+32|0),O=(A=p[v[C+36>>2]+(z<<2)>>2])(0|(f=f+1|0)),(0|f)==(0|S))break}if(T=jn(b,1)){for(I=Hr(ut(36),T),R=(f=v[e+36>>2])<<2,h=0;;){if(r=v[b+4>>2],v[b+4>>2]=r+1,K=l[0|r],v[b+4>>2]=r+2,L=l[r+1|0],v[b+4>>2]=r+3,z=l[r+2|0],v[b+4>>2]=r+4,S=l[r+3|0],C=jn(b,1),v[y+44>>2]=0,v[y+36>>2]=0,v[y+40>>2]=0,v[y+32>>2]=8744,v[y+16>>2]=0,gn(y+32|0,f,y+16|0),(P=(0|f)<=0)||zi(v[y+44>>2],255,R),r=0,v[y+28>>2]=0,v[y+20>>2]=0,v[y+24>>2]=0,v[y+16>>2]=8744,v[y+12>>2]=0,gn(y+16|0,f-C|0,y+12|0),n=0,C)for(g=0,_=v[y+44>>2],M=v[y+28>>2];;){if((0|(s=jn(b,1)))!=(0|r)){for(;v[M+(n<<2)>>2]=r,n=n+1|0,(0|s)!=(0|(r=r+1|0)););r=s}if(ir=_+(jn(b,1)+r<<2)|0,tr=r,v[ir>>2]=tr,r=r+1|0,(0|C)==(0|(g=g+1|0)))break}if(r>>>0>>0)for(s=v[y+28>>2];v[s+(n<<2)>>2]=r,n=n+1|0,(0|f)!=(0|(r=r+1|0)););if(!P)for(g=v[y+28>>2],C=v[y+44>>2],r=f;-1==v[(P=C+((s=r-1|0)<<2)|0)>>2]&&(n=n-1|0,v[P>>2]=v[g+(n<<2)>>2]),P=r>>>0>1,r=s,P;);if(r=y+32|0,Ce(I,h,(u(2,S|(z|L<<8|K<<16)<<8),k()),r),oo(y+16|0),oo(r),(0|T)==(0|(h=h+1|0)))break}v[y+32>>2]=I,Un(y+48|0,y+32|0),O=(A=p[(v[I+16>>2]+(T<<2)|0)-4>>2])0){for(s=de(ut(36),f),h=0;r=v[b+4>>2],v[b+4>>2]=r+1,n=l[0|r],v[b+4>>2]=r+2,T=l[r+1|0],v[b+4>>2]=r+3,I=l[r+2|0],v[b+4>>2]=r+4,r=l[r+3|0],g=jn(b,1),g=v[v[e+80>>2]+(g<<2)>>2],ir=n=ii(ut(40),(u(2,r|(I|T<<8|n<<16)<<8),k()),g),tr=jn(b,0),v[ir+12>>2]=tr,r=v[b+4>>2],v[b+4>>2]=r+1,T=l[0|r],v[b+4>>2]=r+2,I=l[r+1|0],v[b+4>>2]=r+3,C=l[r+2|0],v[b+4>>2]=r+4,v[n+16>>2]=l[r+3|0]|(C|I<<8|T<<16)<<8,v[b+4>>2]=r+5,te(I=n+20|0,T=ht(T=y+32|0,r=(C=l[r+4|0])?$f(b):v[g+32>>2],0)),gi(T),C&&(T=v[5280],Ta[v[v[T>>2]+20>>2]](T,r,8590,1028)),v[g+40>>2]&&(r=v[b+4>>2],v[b+4>>2]=r+1,g=l[0|r],v[b+4>>2]=r+2,T=l[r+1|0],v[b+4>>2]=r+3,I=l[r+2|0],v[b+4>>2]=r+4,v[n+32>>2]=l[r+3|0]|(I|T<<8|g<<16)<<8,v[b+4>>2]=r+5,g=l[r+4|0],v[b+4>>2]=r+6,T=l[r+5|0],v[b+4>>2]=r+7,I=l[r+6|0],v[b+4>>2]=r+8,v[n+36>>2]=l[r+7|0]|(I|T<<8|g<<16)<<8),Ni(s,h,n),(0|f)!=(0|(h=h+1|0)););v[y+32>>2]=s,Un(y+48|0,y+32|0),O=(A=p[(v[s+16>>2]+(f<<2)|0)-4>>2])>2]+4>>2]](b),e&&Ta[v[v[e>>2]+4>>2]](e),gi(er),e=0;break r}if(v[v[e+96>>2]+(F<<2)>>2]=r,gi(er),(0|nr)==(0|(F=F+1|0)))break}Ta[v[v[b>>2]+4>>2]](b)}return V=t+16|0,v[$+28>>2]&&(v[a>>2]=v[$+32>>2],H(20831,17040,0|a)),hr(e,r=o+48|0,n=o+32|0),hf($),V=a+48|0,be(n),be(r),V=o- -64|0,0|e},function(r,n,e){var f,i;r|=0,V=f=V-16|0,i=n|=0,n=$e(f+4|0,4+(e|=0)|0,v[e>>2],0),Ta[0|r](i,n),gi(n),V=f+16|0},function(r,n){r|=0,n|=0;var e,f=0;V=e=V-16|0,v[e+12>>2]=r;r:{if(r=v[5440])for(;;){if(ei(r+4|0,n))break r;if(!(r=v[r+20>>2]))break}n:{e:{if(r=v[5440])for(;;){if(ei(f=r+4|0,n))break e;if(!(r=v[r+20>>2]))break}r=ut(28),v[r>>2]=17132,f=Tt(r+4|0),v[r+20>>2]=0,v[r+24>>2]=0,te(f,n),v[r+16>>2]=v[e+12>>2],(n=v[5440])&&(v[n+24>>2]=r,v[r+20>>2]=n),v[5440]=r,v[5441]=v[5441]+1;break n}te(f,n),v[r+16>>2]=v[e+12>>2]}}V=e+16|0},function(r,n){var e;r|=0,V=e=V-16|0,n=$e(e+4|0,4+(n|=0)|0,v[n>>2],0),Ta[0|r](n),gi(n),V=e+16|0},function(r){r|=0;var n=0,e=0;r:if(n=v[5440]){for(;;){if(!ei(n+4|0,r)){if(n=v[n+20>>2])continue;break r}break}n:if(n=v[5440]){for(;;){if(!ei(n+4|0,r)){if(n=v[n+20>>2])continue;break n}break}(n=v[n+16>>2])&&Ta[v[v[n>>2]+4>>2]](n)}n:if(n=v[5440]){for(;;){if(!ei(n+4|0,r)){if(n=v[n+20>>2])continue;break n}break}r=v[n+24>>2],e=v[n+20>>2],v[(r?r+20:21760)>>2]=e,e&&(v[e+24>>2]=r),Ta[v[v[n>>2]+4>>2]](n),v[5441]=v[5441]-1}}},function(r,n){n|=0,Ta[0|(r|=0)](n)},lu,$o,function(){return v[5442]},$o,function(){return v[5197]},function(){return v[5443]},$o,function(){return v[5444]},Y,Nr,Uu,function(r){pt(Uu(r|=0))},Lu,function(r){pt(Lu(r|=0))},ju,function(r){pt(ju(r|=0))},fo,function(r){pt(fo(r|=0))},lu,Bf,function(r){Bf(r|=0),ar(r)},ta,pa,function(r,n){r|=0;var e,f=0,i=0,t=0,u=0,o=0,a=0,c=0,b=0,k=0;if(V=e=V-16|0,Fu(0|Ta[v[v[(n|=0)>>2]+8>>2]](n),21296)){for(r=v[n+24>>2],Zn(i=Wt(32),4,20776,6,v[r+4>>2]+16|0),u=v[n+112>>2],a=v[v[i+4>>2]>>2],r=0;o=a+m(r,24)|0,t=f<<2,p[o+12>>2]=p[t+u>>2],p[o+16>>2]=p[u+(4|t)>>2],f=f+2|0,4!=(0|(r=r+1|0)););(f=v[n+28>>2])&&(!(r=v[n+24>>2])|(0|r)==(0|i)||Ta[0|f](r)),v[n+28>>2]=1699,v[n+24>>2]=i}else if(Fu(0|Ta[v[v[n>>2]+8>>2]](n),21200)){if(r=v[n+68>>2],Zn(i=Wt(32),v[n+52>>2]>>>1|0,v[n+148>>2],v[n+140>>2],v[r+4>>2]+16|0),r=v[n+52>>2])for(a=v[v[i+4>>2]>>2],o=r-1>>>1|0,u=v[n+116>>2],r=0;t=a+m(r,24)|0,c=f<<2,p[t+12>>2]=p[u+c>>2],p[t+16>>2]=p[u+(4|c)>>2],f=f+2|0,t=(0|r)==(0|o),r=r+1|0,!t;);(f=v[n+72>>2])&&(!(r=v[n+68>>2])|(0|r)==(0|i)||Ta[0|f](r)),v[n+72>>2]=1699,v[n+68>>2]=i}else b=e,k=v[na(n)+8>>2],v[b>>2]=k,H(20796,17040,0|e);V=e+16|0},function(r,n,e,f){n|=0,e|=0,f|=0,r=v[8+(r|=0)>>2],v[5443]=e,v[5197]=n,v[5444]=f,(r=v[r+36>>2])&&(v[5442]=r,q())},function(r,n,e,f){n|=0,e|=0,f|=0,(r=v[8+(r|=0)>>2])&&(v[e+8>>2]&&(r=v[r+40>>2],v[5197]=n,v[5442]=r,v[5443]=e,v[5444]=f,N()),3==(0|n)&&(r=v[e+8>>2])&&((n=v[e+12>>2])&&Ta[0|n](r),v[e+8>>2]=0,v[e+12>>2]=0))},function(){gi(21744)},zu,function(r){pt(zu(r|=0))},function(r){return v[(r|=0)>>2]=17068,gi(r+8|0),0|r},function(r){v[(r|=0)>>2]=17068,gi(r+8|0),pt(r)},function(){xu(21756)},Af,function(r){pt(Af(r|=0))},function(r){return v[(r|=0)>>2]=17100,gi(r+16|0),gi(r+4|0),0|r},function(r){v[(r|=0)>>2]=17100,gi(r+16|0),gi(r+4|0),pt(r)},xu,function(r){pt(xu(r|=0))},function(r){return v[(r|=0)>>2]=17132,gi(r+4|0),0|r},function(r){v[(r|=0)>>2]=17132,gi(r+4|0),pt(r)},ta,wa,function(r,n){return(n|=0)?0|X(n):0},function(r,n){return r|=0,(n|=0)?(!(r=X(n))|!(3&l[r-4|0])||zi(r,0,n),0|r):0},function(r,n,e,f,i){r|=0,n|=0,f|=0,i|=0;var t=0,u=0,o=0,a=0,c=0,b=0,k=0,s=0,l=0,h=0;if(!(e|=0))return ar(n),0;if(n)if(e>>>0>=4294967232)v[5446]=48,i=0;else{t=e>>>0<11?16:e+11&-8,r=0,i=-8&(a=v[4+(f=n-8|0)>>2]);r:if(3&a){u=f+i|0;n:if(i>>>0>=t>>>0){if((r=i-t|0)>>>0<16)break n;v[f+4>>2]=1&a|t|2,v[4+(i=f+t|0)>>2]=3|r,v[u+4>>2]=1|v[u+4>>2],cr(i,r)}else if(v[5453]!=(0|u))if(v[5452]!=(0|u)){if(2&(o=v[u+4>>2]))break r;if((c=i+(-8&o)|0)>>>0>>0)break r;k=c-t|0;e:if(o>>>0<=255){if((0|(r=v[u+12>>2]))==(0|(i=v[u+8>>2]))){l=21788,h=v[5447]&ot(o>>>3|0),v[l>>2]=h;break e}v[i+12>>2]=r,v[r+8>>2]=i}else{b=v[u+24>>2];f:if((0|u)==(0|(i=v[u+12>>2]))){i:{if(!(o=v[(r=u+20|0)>>2])){if(!(o=v[u+16>>2]))break i;r=u+16|0}for(;s=r,(o=v[(r=(i=o)+20|0)>>2])||(r=i+16|0,o=v[i+16>>2]););v[s>>2]=0;break f}i=0}else r=v[u+8>>2],v[r+12>>2]=i,v[i+8>>2]=r;if(b){r=v[u+28>>2];f:{if(v[(o=22092+(r<<2)|0)>>2]==(0|u)){if(v[o>>2]=i,i)break f;l=21792,h=v[5448]&ot(r),v[l>>2]=h;break e}if(v[(v[b+16>>2]==(0|u)?16:20)+b>>2]=i,!i)break e}v[i+24>>2]=b,(r=v[u+16>>2])&&(v[i+16>>2]=r,v[r+24>>2]=i),(r=v[u+20>>2])&&(v[i+20>>2]=r,v[r+24>>2]=i)}}k>>>0<=15?(v[f+4>>2]=1&a|c|2,v[4+(r=f+c|0)>>2]=1|v[r+4>>2]):(v[f+4>>2]=1&a|t|2,v[4+(r=f+t|0)>>2]=3|k,v[4+(i=f+c|0)>>2]=1|v[i+4>>2],cr(r,k))}else{if((i=i+v[5449]|0)>>>0>>0)break r;(r=i-t|0)>>>0>=16?(v[f+4>>2]=1&a|t|2,v[4+(o=f+t|0)>>2]=1|r,v[(i=f+i|0)>>2]=r,v[i+4>>2]=-2&v[i+4>>2]):(v[f+4>>2]=i|1&a|2,v[4+(r=f+i|0)>>2]=1|v[r+4>>2],r=0),v[5452]=o,v[5449]=r}else{if((i=i+v[5450]|0)>>>0<=t>>>0)break r;v[f+4>>2]=1&a|t|2,i=i-t|0,v[4+(r=f+t|0)>>2]=1|i,v[5450]=i,v[5453]=r}r=f}else{if(t>>>0<256)break r;if(i>>>0>=t+4>>>0&&(r=f,i-t>>>0<=v[5567]<<1>>>0))break r;r=0}i=r+8|0,r||(i=0,(f=X(e))&&(Ri(f,n,(r=(3&(r=v[n-4>>2])?-4:-8)+(-8&r)|0)>>>0>>0?r:e),ar(n),i=f))}else i=X(e);return 0|i},function(r,n){ar(n|=0)},function(){return 0},In],Aa.set=function(r,n){this[r]=n},Aa.get=function(r){return this[r]},Aa);function $a(){return f.byteLength/65536|0}return{z:function(){jt(20952,3662,20976),Nt(20964,2042),Nt(20976,3667),jt(20988,5464,21368),jt(21e3,5364,21440),jt(21012,1855,21452),jt(21024,2017,21452),jt(21036,5498,21072),jt(21048,1749,21440),Nt(21060,6413),jt(21072,5620,21368),jt(21084,5575,21072),jt(21096,5512,21368),jt(21108,5450,21368),jt(21124,1728,21440),jt(21136,6392,21060),jt(21148,5429,21072),Nt(21164,4305),jt(21176,4282,21164),jt(21188,4299,21164),jt(21200,1999,21452),jt(21212,1981,21452),jt(21224,1745,21440),jt(21236,6409,21060),jt(21248,5375,21072),jt(21260,5544,21072),jt(21272,5590,21260),jt(21284,1897,20964),jt(21296,1944,20964),jt(21308,5634,21072),jt(21320,5667,21416),jt(21332,5530,21416),Nt(21368,5672),jt(21380,1704,21440),jt(21392,6368,21060),jt(21404,5401,21072),jt(21416,5649,21072),jt(21428,5495,21072),Nt(21440,5833),jt(21452,1877,20964),Nt(21468,2295),jt(21480,2271,21468),jt(21492,2290,21468),v[5376]=1689,v[5377]=0,Y(),Pu(21504),v[5378]=1690,v[5379]=0,Nr(),Pu(21512),v[5431]=0,v[5432]=0,v[5435]=0,v[5433]=0,v[5434]=0,Tt(21744),v[5440]=0,v[5441]=0,v[5439]=17116,v[5572]=1728,v[5573]=0,In(),v[5573]=v[5571],v[5571]=22288},A:Ta,B:X,C:ar,D:function(r){r|=0;var n,e=0,f=0,t=0,u=0;for(V=n=V-32|0,v[n+16>>2]=v[4388],e=v[4387],v[n+8>>2]=v[4386],v[n+12>>2]=e,e=v[4385],v[n>>2]=v[4384],v[n+4>>2]=e,f=7,t=2,u=1;(u&=!(f=r>>>((e=f)<<2)&15)&!!(0|e))||(i[n+t|0]=l[f+17504|0],t=t+1|0),f=e-1|0,e;);return i[n+t|0]=0,r=(e=X(r=ee(n)+1|0))?Ri(e,n,r):0,V=n+32|0,0|r},E:function(){var r=0;if(r=v[5571])for(;Ta[v[r>>2]](),r=v[r+4>>2];);}}}(r)}(r)}function s(r){return{then:function(n){n({instance:new k(r)})}}}Object.assign(e,u),u=null,e.wasmBinary&&(c=e.wasmBinary),e.noExitRuntime;var v=Error,l={};c=[],"object"!=typeof l&&H("no native wasm support detected");var h,d,p,y,m,w,g,F,A,T=!1;function $(){var r=h.buffer;e.HEAP8=d=new Int8Array(r),e.HEAP16=y=new Int16Array(r),e.HEAP32=w=new Int32Array(r),e.HEAPU8=p=new Uint8Array(r),e.HEAPU16=m=new Uint16Array(r),e.HEAPU32=g=new Uint32Array(r),e.HEAPF32=F=new Float32Array(r),e.HEAPF64=A=new Float64Array(r)}var I=e.INITIAL_MEMORY||33554432;65536<=I||H("INITIAL_MEMORY should be larger than STACK_SIZE, was "+I+"! (STACK_SIZE=65536)"),h=e.wasmMemory?e.wasmMemory:new function(){this.buffer=new ArrayBuffer(I/65536*65536)},$(),I=h.buffer.byteLength;var C,P=[],E=[],O=[];function R(){var r=e.preRun.shift();P.unshift(r)}var S,W=0,G=null;function U(){W++,e.monitorRunDependencies&&e.monitorRunDependencies(W)}function j(){if(W--,e.monitorRunDependencies&&e.monitorRunDependencies(W),0==W&&G){var r=G;G=null,r()}}function H(r){throw e.onAbort&&e.onAbort(r),b(r="Aborted("+r+")"),T=!0,r=new v(r+". Build with -sASSERTIONS for more info."),i(r),r}function L(r){return r.startsWith("data:application/octet-stream;base64,")}function M(r){try{if(r==S&&c)return new Uint8Array(c);throw"both async and sync fetching of the wasm failed"}catch(r){H(r)}}function _(r){return c||"function"!=typeof fetch?Promise.resolve().then((()=>M(r))):fetch(r,{credentials:"same-origin"}).then((n=>{if(!n.ok)throw"failed to load wasm binary file at '"+r+"'";return n.arrayBuffer()})).catch((()=>M(r)))}function z(r,n,e){return _(r).then((()=>s(n))).then((r=>r)).then(e,(r=>{b("failed to asynchronously prepare wasm: "+r),H(r)}))}function x(r,n){var e=S;return c||"function"!=typeof l.instantiateStreaming||L(e)||"function"!=typeof fetch?z(e,r,n):fetch(e,{credentials:"same-origin"}).then((f=>l.instantiateStreaming(f,r).then(n,(function(f){return b("wasm streaming compile failed: "+f),b("falling back to ArrayBuffer instantiation"),z(e,r,n)}))))}L(S="spine.wasm")||(S=a(S));var J="spine.js.mem";function K(){L(J)||(J=a(J)),U();var r=r=>{r.byteLength&&(r=new Uint8Array(r)),p.set(r,1024),e.memoryInitializerRequest&&delete e.memoryInitializerRequest.response,j()},n=()=>{t(r,(()=>{i(Error("could not load memory initializer "+J))}))};if(e.memoryInitializerRequest){var f=()=>{var f=e.memoryInitializerRequest,i=f.response;200!==f.status&&0!==f.status?(console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+f.status+", retrying "+J),n()):r(i)};e.memoryInitializerRequest.response?setTimeout(f,0):e.memoryInitializerRequest.addEventListener("load",f)}else n()}var B={20796:r=>{console.log(r?Vr(r):"")},20831:r=>{console.warn("[Spine]",r?Vr(r):"")}};function N(r){for(;0=n?`_${r}`:r}function rr(r,n){return r=Q(r),{[r]:function(){return n.apply(this,arguments)}}[r]}function nr(r){var n=Error,e=rr(r,(function(n){this.name=r,this.message=n,void 0!==(n=Error(n).stack)&&(this.stack=this.toString()+"\n"+n.replace(/^Error(:[^\n]*)?\n/,""))}));return e.prototype=Object.create(n.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},e}var er=void 0;function fr(r){throw new er(r)}var ir=void 0;function tr(r){throw new ir(r)}function ur(r,n,e){function f(n){(n=e(n)).length!==r.length&&tr("Mismatched type converter count");for(var f=0;f{Y.hasOwnProperty(r)?i[n]=Y[r]:(t.push(r),Z.hasOwnProperty(r)||(Z[r]=[]),Z[r].push((()=>{i[n]=Y[r],++u===t.length&&f(i)})))})),0===t.length&&f(i)}function or(r,n){if(!("argPackAdvance"in n))throw new TypeError("registerType registeredInstance requires argPackAdvance");var e=n.name;if(r||fr(`type "${e}" must have a positive integer typeid pointer`),Y.hasOwnProperty(r)){if({}.qa)return;fr(`Cannot register type '${e}' twice`)}Y[r]=n,delete X[r],Z.hasOwnProperty(r)&&(n=Z[r],delete Z[r],n.forEach((r=>r())))}function ar(r){fr(r.F.I.G.name+" instance already deleted")}var cr=!1;function br(){}function kr(r){--r.count.value,0===r.count.value&&(r.L?r.M.S(r.L):r.I.G.S(r.H))}function sr(r,n,e){return n===e?r:void 0===e.J||null===(r=sr(r,n,e.J))?null:e.ha(r)}var vr={},lr=[];function hr(){for(;lr.length;){var r=lr.pop();r.F.U=!1,r.delete()}}var dr=void 0,pr={};function yr(r,n){for(void 0===n&&fr("ptr should not be undefined");r.J;)n=r.W(n),r=r.J;return pr[n]}function mr(r,n){return n.I&&n.H||tr("makeClassHandle requires ptr and ptrType"),!!n.M!=!!n.L&&tr("Both smartPtrType and smartPtr must be specified"),n.count={value:1},wr(Object.create(r,{F:{value:n}}))}function wr(r){return"undefined"==typeof FinalizationRegistry?(wr=r=>r,r):(cr=new FinalizationRegistry((r=>{kr(r.F)})),br=r=>{cr.unregister(r)},(wr=r=>{var n=r.F;return n.L&&cr.register(r,{F:n},r),r})(r))}function gr(){}function Fr(r,n,e){if(void 0===r[n].K){var f=r[n];r[n]=function(){return r[n].K.hasOwnProperty(arguments.length)||fr(`Function '${e}' called with an invalid number of arguments (${arguments.length}) - expects one of (${r[n].K})!`),r[n].K[arguments.length].apply(this,arguments)},r[n].K=[],r[n].K[f.T]=f}}function Ar(r,n){e.hasOwnProperty(r)?(fr(`Cannot register public name '${r}' twice`),Fr(e,r,r),e.hasOwnProperty(void 0)&&fr("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),e[r].K[void 0]=n):e[r]=n}function Tr(r,n,e,f,i,t,u,o){this.name=r,this.constructor=n,this.P=e,this.S=f,this.J=i,this.ia=t,this.W=u,this.ha=o,this.la=[]}function $r(r,n,e){for(;n!==e;)n.W||fr(`Expected null or instance of ${e.name}, got an instance of ${n.name}`),r=n.W(r),n=n.J;return r}function Ir(r,n){return null===n?(this.$&&fr(`null is not a valid ${this.name}`),0):(n.F||fr(`Cannot pass "${Br(n)}" as a ${this.name}`),n.F.H||fr(`Cannot pass deleted object as a pointer of type ${this.name}`),$r(n.F.H,n.F.I.G,this.G))}function Cr(r,n){if(null===n){if(this.$&&fr(`null is not a valid ${this.name}`),this.Z){var e=this.ma();return null!==r&&r.push(this.S,e),e}return 0}if(n.F||fr(`Cannot pass "${Br(n)}" as a ${this.name}`),n.F.H||fr(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.Y&&n.F.I.Y&&fr(`Cannot convert argument of type ${n.F.M?n.F.M.name:n.F.I.name} to parameter type ${this.name}`),e=$r(n.F.H,n.F.I.G,this.G),this.Z)switch(void 0===n.F.L&&fr("Passing raw pointer to smart pointer is illegal"),this.pa){case 0:n.F.M===this?e=n.F.L:fr(`Cannot convert argument of type ${n.F.M?n.F.M.name:n.F.I.name} to parameter type ${this.name}`);break;case 1:e=n.F.L;break;case 2:if(n.F.M===this)e=n.F.L;else{var f=n.clone();e=this.na(e,Kr((function(){f.delete()}))),null!==r&&r.push(this.S,e)}break;default:fr("Unsupporting sharing policy")}return e}function Pr(r,n){return null===n?(this.$&&fr(`null is not a valid ${this.name}`),0):(n.F||fr(`Cannot pass "${Br(n)}" as a ${this.name}`),n.F.H||fr(`Cannot pass deleted object as a pointer of type ${this.name}`),n.F.I.Y&&fr(`Cannot convert argument of type ${n.F.I.name} to parameter type ${this.name}`),$r(n.F.H,n.F.I.G,this.G))}function Er(r){return this.fromWireType(w[r>>2])}function Or(r,n,e,f){this.name=r,this.G=n,this.$=e,this.Y=f,this.Z=!1,this.S=this.na=this.ma=this.da=this.pa=this.ka=void 0,void 0!==n.J?this.toWireType=Cr:(this.toWireType=f?Ir:Pr,this.O=null)}function Rr(r,n){e.hasOwnProperty(r)||tr("Replacing nonexistant public symbol"),e[r]=n,e[r].T=void 0}function Sr(r,n){var f=[];return function(){if(f.length=0,Object.assign(f,arguments),r.includes("j")){var i=e["dynCall_"+r];i=f.length?i.apply(null,[n].concat(f)):i.call(null,n)}else i=C.get(n).apply(null,f);return i}}function Wr(r,n){var e=(r=V(r)).includes("j")?Sr(r,n):C.get(n);return"function"!=typeof e&&fr(`unknown function pointer with signature ${r}: ${n}`),e}var Gr=void 0;function Ur(r){var n=V(r=an(r));return on(r),n}function jr(r,n){var e=[],f={};throw n.forEach((function r(n){f[n]||Y[n]||(X[n]?X[n].forEach(r):(e.push(n),f[n]=!0))})),new Gr(`${r}: `+e.map(Ur).join([", "]))}function Hr(r){for(;r.length;){var n=r.pop();r.pop()(n)}}function Lr(r,n,e,f,i){var t=n.length;2>t&&fr("argTypes array size mismatch! Must at least get return value and 'this' types!");var u=null!==n[1]&&null!==e,o=!1;for(e=1;e>2]);return e}function _r(r,n,e){return r instanceof Object||fr(`${e} with invalid "this": ${r}`),r instanceof n.G.constructor||fr(`${e} incompatible with "this" of type ${r.constructor.name}`),r.F.H||fr(`cannot call emscripten binding method ${e} on deleted object`),$r(r.F.H,r.F.I.G,n.G)}var zr=new function(){this.N=[void 0],this.aa=[],this.get=function(r){return this.N[r]},this.has=function(r){return void 0!==this.N[r]},this.ea=function(r){var n=this.aa.pop()||this.N.length;return this.N[n]=r,n},this.fa=function(r){this.N[r]=void 0,this.aa.push(r)}};function xr(r){r>=zr.ba&&0==--zr.get(r).oa&&zr.fa(r)}var Jr=r=>(r||fr("Cannot use deleted val. handle = "+r),zr.get(r).value),Kr=r=>{switch(r){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return zr.ea({oa:1,value:r})}};function Br(r){if(null===r)return"null";var n=typeof r;return"object"===n||"array"===n||"function"===n?r.toString():""+r}function Nr(r,n){switch(n){case 2:return function(r){return this.fromWireType(F[r>>2])};case 3:return function(r){return this.fromWireType(A[r>>3])};default:throw new TypeError("Unknown float type: "+r)}}function qr(r,n,e){switch(n){case 0:return e?function(r){return d[r]}:function(r){return p[r]};case 1:return e?function(r){return y[r>>1]}:function(r){return m[r>>1]};case 2:return e?function(r){return w[r>>2]}:function(r){return g[r>>2]};default:throw new TypeError("Unknown integer type: "+r)}}var Dr="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function Vr(r,n){var e=p,f=r+n;for(n=r;e[n]&&!(n>=f);)++n;if(16(i=224==(240&i)?(15&i)<<12|t<<6|u:(7&i)<<18|t<<12|u<<6|63&e[r++])?f+=String.fromCharCode(i):(i-=65536,f+=String.fromCharCode(55296|i>>10,56320|1023&i))}}else f+=String.fromCharCode(i)}return f}function Zr(r,n){var e=Y[r];return void 0===e&&fr(n+" has unknown type "+Ur(r)),e}var Yr={},Xr=[];function Qr(){var r=e.SpineWasmUtil,n=r.getCurrentListenerID(),f=r.getCurrentTrackEntry(),i=r.getCurrentEvent();r=r.getCurrentEventType(),globalThis.TrackEntryListeners.emitListener(n,f,i,r)}function rn(){var r=e.SpineWasmUtil,n=r.getCurrentListenerID(),f=r.getCurrentEventType(),i=r.getCurrentTrackEntry();r=r.getCurrentEvent(),globalThis.TrackEntryListeners.emitTrackEntryListener(n,i,r,f)}e._spineListenerCallBackFromJS=Qr,e._spineTrackListenerCallback=rn;for(var nn=Array(256),en=0;256>en;++en)nn[en]=String.fromCharCode(en);D=nn,er=e.BindingError=nr("BindingError"),ir=e.InternalError=nr("InternalError"),gr.prototype.isAliasOf=function(r){if(!(this instanceof gr&&r instanceof gr))return!1;var n=this.F.I.G,e=this.F.H,f=r.F.I.G;for(r=r.F.H;n.J;)e=n.W(e),n=n.J;for(;f.J;)r=f.W(r),f=f.J;return n===f&&e===r},gr.prototype.clone=function(){if(this.F.H||ar(this),this.F.V)return this.F.count.value+=1,this;var r=wr,n=Object,e=n.create,f=Object.getPrototypeOf(this),i=this.F;return(r=r(e.call(n,f,{F:{value:{count:i.count,U:i.U,V:i.V,H:i.H,I:i.I,L:i.L,M:i.M}}}))).F.count.value+=1,r.F.U=!1,r},gr.prototype.delete=function(){this.F.H||ar(this),this.F.U&&!this.F.V&&fr("Object already scheduled for deletion"),br(this),kr(this.F),this.F.V||(this.F.L=void 0,this.F.H=void 0)},gr.prototype.isDeleted=function(){return!this.F.H},gr.prototype.deleteLater=function(){return this.F.H||ar(this),this.F.U&&!this.F.V&&fr("Object already scheduled for deletion"),lr.push(this),1===lr.length&&dr&&dr(hr),this.F.U=!0,this},e.getInheritedInstanceCount=function(){return Object.keys(pr).length},e.getLiveInheritedInstances=function(){var r,n=[];for(r in pr)pr.hasOwnProperty(r)&&n.push(pr[r]);return n},e.flushPendingDeletes=hr,e.setDelayFunction=function(r){dr=r,lr.length&&dr&&dr(hr)},Or.prototype.ja=function(r){return this.da&&(r=this.da(r)),r},Or.prototype.ca=function(r){this.S&&this.S(r)},Or.prototype.argPackAdvance=8,Or.prototype.readValueFromPointer=Er,Or.prototype.deleteObject=function(r){null!==r&&r.delete()},Or.prototype.fromWireType=function(r){function n(){return this.Z?mr(this.G.P,{I:this.ka,H:e,M:this,L:r}):mr(this.G.P,{I:this,H:r})}var e=this.ja(r);if(!e)return this.ca(r),null;var f=yr(this.G,e);if(void 0!==f)return 0===f.F.count.value?(f.F.H=e,f.F.L=r,f.clone()):(f=f.clone(),this.ca(r),f);if(f=this.G.ia(e),!(f=vr[f]))return n.call(this);f=this.Y?f.ga:f.pointerType;var i=sr(e,this.G,f.G);return null===i?n.call(this):this.Z?mr(f.G.P,{I:f,H:i,M:this,L:r}):mr(f.G.P,{I:f,H:i})},Gr=e.UnboundTypeError=nr("UnboundTypeError"),zr.N.push({value:void 0},{value:null},{value:!0},{value:!1}),zr.ba=zr.N.length,e.count_emval_handles=function(){for(var r=0,n=zr.ba;n>t])},O:null})},d:function(r,n,e,f,i,t,u,o,a,c,b,k,s){b=V(b),t=Wr(i,t),o&&(o=Wr(u,o)),c&&(c=Wr(a,c)),s=Wr(k,s);var v=Q(b);Ar(v,(function(){jr(`Cannot construct ${b} due to unbound types`,[f])})),ur([r,n,e],f?[f]:[],(function(n){if(n=n[0],f)var e=n.G,i=e.P;else i=gr.prototype;n=rr(v,(function(){if(Object.getPrototypeOf(this)!==u)throw new er("Use 'new' to construct "+b);if(void 0===a.R)throw new er(b+" has no accessible constructor");var r=a.R[arguments.length];if(void 0===r)throw new er(`Tried to invoke ctor of ${b} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(a.R).toString()}) parameters instead!`);return r.apply(this,arguments)}));var u=Object.create(i,{constructor:{value:n}});n.prototype=u;var a=new Tr(b,n,u,s,e,t,o,c);a.J&&(void 0===a.J.X&&(a.J.X=[]),a.J.X.push(a)),e=new Or(b,a,!0,!1),i=new Or(b+"*",a,!1,!1);var k=new Or(b+" const*",a,!1,!0);return vr[r]={pointerType:i,ga:k},Rr(v,n),[e,i,k]}))},h:function(r,n,e,f,i,t,u){var o=Mr(e,f);n=V(n),t=Wr(i,t),ur([],[r],(function(r){function f(){jr(`Cannot call ${i} due to unbound types`,o)}var i=`${(r=r[0]).name}.${n}`;n.startsWith("@@")&&(n=Symbol[n.substring(2)]);var a=r.G.constructor;return void 0===a[n]?(f.T=e-1,a[n]=f):(Fr(a,n,i),a[n].K[e-1]=f),ur([],o,(function(f){if(f=Lr(i,[f[0],null].concat(f.slice(1)),null,t,u),void 0===a[n].K?(f.T=e-1,a[n]=f):a[n].K[e-1]=f,r.G.X)for(const e of r.G.X)e.constructor.hasOwnProperty(n)||(e.constructor[n]=f);return[]})),[]}))},i:function(r,n,e,f,i,t,u,o){n=V(n),t=Wr(i,t),ur([],[r],(function(r){var i=`${(r=r[0]).name}.${n}`,a={get:function(){jr(`Cannot access ${i} due to unbound types`,[e])},enumerable:!0,configurable:!0};return a.set=o?()=>{jr(`Cannot access ${i} due to unbound types`,[e])}:()=>{fr(`${i} is a read-only property`)},Object.defineProperty(r.G.constructor,n,a),ur([],[e],(function(e){e=e[0];var i={get:function(){return e.fromWireType(t(f))},enumerable:!0};return o&&(o=Wr(u,o),i.set=r=>{var n=[];o(f,e.toWireType(n,r)),Hr(n)}),Object.defineProperty(r.G.constructor,n,i),[]})),[]}))},e:function(r,n,e,f,i,t){0{jr(`Cannot construct ${r.name} due to unbound types`,u)},ur([],u,(function(f){return f.splice(1,0,null),r.G.R[n-1]=Lr(e,f,null,i,t),[]})),[]}))},b:function(r,n,e,f,i,t,u,o){var a=Mr(e,f);n=V(n),t=Wr(i,t),ur([],[r],(function(r){function f(){jr(`Cannot call ${i} due to unbound types`,a)}var i=`${(r=r[0]).name}.${n}`;n.startsWith("@@")&&(n=Symbol[n.substring(2)]),o&&r.G.la.push(n);var c=r.G.P,b=c[n];return void 0===b||void 0===b.K&&b.className!==r.name&&b.T===e-2?(f.T=e-2,f.className=r.name,c[n]=f):(Fr(c,n,i),c[n].K[e-2]=f),ur([],a,(function(f){return f=Lr(i,f,r,t,u),void 0===c[n].K?(f.T=e-2,c[n]=f):c[n].K[e-2]=f,[]})),[]}))},c:function(r,n,e,f,i,t,u,o,a,c){n=V(n),i=Wr(f,i),ur([],[r],(function(r){var f=`${(r=r[0]).name}.${n}`,b={get:function(){jr(`Cannot access ${f} due to unbound types`,[e,u])},enumerable:!0,configurable:!0};return b.set=a?()=>{jr(`Cannot access ${f} due to unbound types`,[e,u])}:()=>{fr(f+" is a read-only property")},Object.defineProperty(r.G.P,n,b),ur([],a?[e,u]:[e],(function(e){var u=e[0],b={get:function(){var n=_r(this,r,f+" getter");return u.fromWireType(i(t,n))},enumerable:!0};if(a){a=Wr(o,a);var k=e[1];b.set=function(n){var e=_r(this,r,f+" setter"),i=[];a(c,e,k.toWireType(i,n)),Hr(i)}}return Object.defineProperty(r.G.P,n,b),[]})),[]}))},t:function(r,n){or(r,{name:n=V(n),fromWireType:function(r){var n=Jr(r);return xr(r),n},toWireType:function(r,n){return Kr(n)},argPackAdvance:8,readValueFromPointer:Er,O:null})},p:function(r,n,e){e=q(e),or(r,{name:n=V(n),fromWireType:function(r){return r},toWireType:function(r,n){return n},argPackAdvance:8,readValueFromPointer:Nr(n,e),O:null})},g:function(r,n,e,f,i){n=V(n),-1===i&&(i=4294967295),i=q(e);var t=r=>r;if(0===f){var u=32-8*e;t=r=>r<>>u}e=n.includes("unsigned")?function(r,n){return n>>>0}:function(r,n){return n},or(r,{name:n,fromWireType:t,toWireType:e,argPackAdvance:8,readValueFromPointer:qr(n,i,0!==f),O:null})},y:function(r,n){var e="std::string"===(n=V(n));or(r,{name:n,fromWireType:function(r){var n=g[r>>2],f=r+4;if(e)for(var i=f,t=0;t<=n;++t){var u=f+t;if(t==n||0==p[u]){if(i=i?Vr(i,u-i):"",void 0===o)var o=i;else o+=String.fromCharCode(0),o+=i;i=u+1}}else{for(o=Array(n),t=0;t=u?i++:2047>=u?i+=2:55296<=u&&57343>=u?(i+=4,++f):i+=3}else i=n.length;if(u=(i=un(4+(f=i)+1))+4,g[i>>2]=f,e&&t){if(t=u,u=f+1,f=p,0=a&&(a=65536+((1023&a)<<10)|1023&n.charCodeAt(++o)),127>=a){if(t>=u)break;f[t++]=a}else{if(2047>=a){if(t+1>=u)break;f[t++]=192|a>>6}else{if(65535>=a){if(t+2>=u)break;f[t++]=224|a>>12}else{if(t+3>=u)break;f[t++]=240|a>>18,f[t++]=128|a>>12&63}f[t++]=128|a>>6&63}f[t++]=128|63&a}}f[t]=0}}else if(t)for(t=0;t>2]=i,n.toWireType(f,r)},f:xr,l:function(r,n){return r=Jr(r),n=Jr(n),Kr(r[n])},m:function(r){var n=Yr[r];return Kr(void 0===n?V(r):n)},j:function(r){Hr(Jr(r)),xr(r)},q:function(r,n){return r=(r=Zr(r,"_emval_take_value")).readValueFromPointer(n),Kr(r)},o:function(){H("")},n:function(r,n,e){var f;for(Xr.length=0,e>>=2;f=p[n++];)e+=105!=f&e,Xr.push(105==f?w[e]:A[e++>>1]),++e;return B[r].apply(null,Xr)},s:function(r){var n=p.length;if(2147483648<(r>>>=0))return!1;for(var e=1;4>=e;e*=2){var f=n*(1+.2/e);f=Math.min(f,r+100663296);var i=Math;f=Math.max(r,f);r:{i=i.min.call(i,2147483648,f+(65536-f%65536)%65536)-h.buffer.byteLength+65535>>>16;try{h.grow(i),$();var t=1;break r}catch(r){}t=void 0}if(t)return!0}return!1},a:h,x:Qr,w:rn};function un(){return(un=e.asm.B).apply(null,arguments)}function on(){return(on=e.asm.C).apply(null,arguments)}function an(){return(an=e.asm.D).apply(null,arguments)}function cn(){function r(){if(!fn&&(fn=!0,e.calledRun=!0,!T)){if(N(E),f(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;){var r=e.postRun.shift();O.unshift(r)}N(O)}}if(!(0=t?"_"+n:n}function D(n,t){var e;return(e={},e[n=V(n)]=function(){return t.apply(this,arguments)},e)[n]}function z(n){var t=Error,e=D(n,(function(t){this.name=n,this.message=t,void 0!==(t=Error(t).stack)&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},e}var B=void 0;function Z(n){throw new B(n)}var X=void 0;function Y(n){throw new X(n)}function $(n,t,e){function r(t){(t=e(t)).length!==n.length&&Y("Mismatched type converter count");for(var r=0;r>2])}function Tn(n,t,e,r){this.name=n,this.G=t,this.$=e,this.Y=r,this.Z=!1,this.S=this.na=this.ma=this.da=this.pa=this.ka=void 0,void 0!==t.J?this.toWireType=bn:(this.toWireType=r?gn:wn,this.O=null)}function Cn(n,t){r.hasOwnProperty(n)||Y("Replacing nonexistant public symbol"),r[n]=t,r[n].T=void 0}function Pn(n,t){var e=[];return function(){if(e.length=0,Object.assign(e,arguments),n.includes("j")){var i=r["dynCall_"+n];i=e.length?i.apply(null,[t].concat(e)):i.call(null,t)}else i=F.get(t).apply(null,e);return i}}function An(n,t){var e=(n=J(n)).includes("j")?Pn(n,t):F.get(t);return"function"!=typeof e&&Z("unknown function pointer with signature "+n+": "+t),e}var kn=void 0;function Wn(n){var t=J(n=Qn(n));return qn(n),t}function On(n,t){var e=[],r={};throw t.forEach((function n(t){r[t]||K[t]||(N[t]?N[t].forEach(n):(e.push(t),r[t]=!0))})),new kn(n+": "+e.map(Wn).join([", "]))}function In(n){for(;n.length;){var t=n.pop();n.pop()(t)}}function En(n,t,e,r,i){var o=t.length;2>o&&Z("argTypes array size mismatch! Must at least get return value and 'this' types!");var a=null!==t[1]&&null!==e,u=!1;for(e=1;e>2]);return e}function Gn(n,t,e){return n instanceof Object||Z(e+' with invalid "this": '+n),n instanceof t.G.constructor||Z(e+' incompatible with "this" of type '+n.constructor.name),n.F.H||Z("cannot call emscripten binding method "+e+" on deleted object"),mn(n.F.H,n.F.I.G,t.G)}var Rn=new function(){this.N=[void 0],this.aa=[],this.get=function(n){return this.N[n]},this.has=function(n){return void 0!==this.N[n]},this.ea=function(n){var t=this.aa.pop()||this.N.length;return this.N[t]=n,t},this.fa=function(n){this.N[n]=void 0,this.aa.push(n)}};function jn(n){n>=Rn.ba&&0==--Rn.get(n).oa&&Rn.fa(n)}var Hn=function(n){return n||Z("Cannot use deleted val. handle = "+n),Rn.get(n).value},Un=function(n){switch(n){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Rn.ea({oa:1,value:n})}};function Ln(n){if(null===n)return"null";var t=typeof n;return"object"===t||"array"===t||"function"===t?n.toString():""+n}function _n(n,t){switch(t){case 2:return function(n){return this.fromWireType(m[n>>2])};case 3:return function(n){return this.fromWireType(g[n>>3])};default:throw new TypeError("Unknown float type: "+n)}}function Mn(n,t,e){switch(t){case 0:return e?function(n){return l[n]}:function(n){return h[n]};case 1:return e?function(n){return p[n>>1]}:function(n){return d[n>>1]};case 2:return e?function(n){return v[n>>2]}:function(n){return y[n>>2]};default:throw new TypeError("Unknown integer type: "+n)}}var Jn="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function xn(n,t){var e=h,r=n+t;for(t=n;e[t]&&!(t>=r);)++t;if(16(i=224==(240&i)?(15&i)<<12|o<<6|a:(7&i)<<18|o<<12|a<<6|63&e[n++])?r+=String.fromCharCode(i):(i-=65536,r+=String.fromCharCode(55296|i>>10,56320|1023&i))}}else r+=String.fromCharCode(i)}return r}function Kn(n,t){var e=K[n];return void 0===e&&Z(t+" has unknown type "+Wn(n)),e}var Nn={},Vn=[];function Dn(){var n=r.SpineWasmUtil,t=n.getCurrentListenerID(),e=n.getCurrentTrackEntry(),i=n.getCurrentEvent();n=n.getCurrentEventType(),globalThis.TrackEntryListeners.emitListener(t,e,i,n)}function zn(){var n=r.SpineWasmUtil,t=n.getCurrentListenerID(),e=n.getCurrentEventType(),i=n.getCurrentTrackEntry();n=n.getCurrentEvent(),globalThis.TrackEntryListeners.emitTrackEntryListener(t,i,n,e)}r._spineListenerCallBackFromJS=Dn,r._spineTrackListenerCallback=zn;for(var Bn=Array(256),Zn=0;256>Zn;++Zn)Bn[Zn]=String.fromCharCode(Zn);M=Bn,B=r.BindingError=z("BindingError"),X=r.InternalError=z("InternalError"),pn.prototype.isAliasOf=function(n){if(!(this instanceof pn&&n instanceof pn))return!1;var t=this.F.I.G,e=this.F.H,r=n.F.I.G;for(n=n.F.H;t.J;)e=t.W(e),t=t.J;for(;r.J;)n=r.W(n),r=r.J;return t===r&&e===n},pn.prototype.clone=function(){if(this.F.H||Q(this),this.F.V)return this.F.count.value+=1,this;var n=hn,t=Object,e=t.create,r=Object.getPrototypeOf(this),i=this.F;return(n=n(e.call(t,r,{F:{value:{count:i.count,U:i.U,V:i.V,H:i.H,I:i.I,L:i.L,M:i.M}}}))).F.count.value+=1,n.F.U=!1,n},pn.prototype.delete=function(){this.F.H||Q(this),this.F.U&&!this.F.V&&Z("Object already scheduled for deletion"),tn(this),en(this.F),this.F.V||(this.F.L=void 0,this.F.H=void 0)},pn.prototype.isDeleted=function(){return!this.F.H},pn.prototype.deleteLater=function(){return this.F.H||Q(this),this.F.U&&!this.F.V&&Z("Object already scheduled for deletion"),an.push(this),1===an.length&&sn&&sn(un),this.F.U=!0,this},r.getInheritedInstanceCount=function(){return Object.keys(cn).length},r.getLiveInheritedInstances=function(){var n,t=[];for(n in cn)cn.hasOwnProperty(n)&&t.push(cn[n]);return t},r.flushPendingDeletes=un,r.setDelayFunction=function(n){sn=n,an.length&&sn&&sn(un)},Tn.prototype.ja=function(n){return this.da&&(n=this.da(n)),n},Tn.prototype.ca=function(n){this.S&&this.S(n)},Tn.prototype.argPackAdvance=8,Tn.prototype.readValueFromPointer=Fn,Tn.prototype.deleteObject=function(n){null!==n&&n.delete()},Tn.prototype.fromWireType=function(n){function t(){return this.Z?ln(this.G.P,{I:this.ka,H:e,M:this,L:n}):ln(this.G.P,{I:this,H:n})}var e=this.ja(n);if(!e)return this.ca(n),null;var r=fn(this.G,e);if(void 0!==r)return 0===r.F.count.value?(r.F.H=e,r.F.L=n,r.clone()):(r=r.clone(),this.ca(n),r);if(r=this.G.ia(e),!(r=on[r]))return t.call(this);r=this.Y?r.ga:r.pointerType;var i=rn(e,this.G,r.G);return null===i?t.call(this):this.Z?ln(r.G.P,{I:r,H:i,M:this,L:n}):ln(r.G.P,{I:r,H:i})},kn=r.UnboundTypeError=z("UnboundTypeError"),Rn.N.push({value:void 0},{value:null},{value:!0},{value:!1}),Rn.ba=Rn.N.length,r.count_emval_handles=function(){for(var n=0,t=Rn.ba;t>o])},O:null})},c:function(n,t,e,r,i,o,a,u,s,c,f,l,h){f=J(f),o=An(i,o),u&&(u=An(a,u)),c&&(c=An(s,c)),h=An(l,h);var p=V(f);vn(p,(function(){On("Cannot construct "+f+" due to unbound types",[r])})),$([n,t,e],r?[r]:[],(function(t){if(t=t[0],r)var e=t.G,i=e.P;else i=pn.prototype;t=D(p,(function(){if(Object.getPrototypeOf(this)!==a)throw new B("Use 'new' to construct "+f);if(void 0===s.R)throw new B(f+" has no accessible constructor");var n=s.R[arguments.length];if(void 0===n)throw new B("Tried to invoke ctor of "+f+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(s.R).toString()+") parameters instead!");return n.apply(this,arguments)}));var a=Object.create(i,{constructor:{value:t}});t.prototype=a;var s=new yn(f,t,a,h,e,o,u,c);s.J&&(void 0===s.J.X&&(s.J.X=[]),s.J.X.push(s)),e=new Tn(f,s,!0,!1),i=new Tn(f+"*",s,!1,!1);var l=new Tn(f+" const*",s,!1,!0);return on[n]={pointerType:i,ga:l},Cn(p,t),[e,i,l]}))},g:function(n,e,r,i,o,a,u){var s=Sn(r,i);e=J(e),a=An(o,a),$([],[n],(function(n){function i(){On("Cannot call "+o+" due to unbound types",s)}var o=(n=n[0]).name+"."+e;e.startsWith("@@")&&(e=Symbol[e.substring(2)]);var c=n.G.constructor;return void 0===c[e]?(i.T=r-1,c[e]=i):(dn(c,e,o),c[e].K[r-1]=i),$([],s,(function(i){if(i=En(o,[i[0],null].concat(i.slice(1)),null,a,u),void 0===c[e].K?(i.T=r-1,c[e]=i):c[e].K[r-1]=i,n.G.X)for(var s,f=t(n.G.X);!(s=f()).done;){var l=s.value;l.constructor.hasOwnProperty(e)||(l.constructor[e]=i)}return[]})),[]}))},h:function(n,t,e,r,i,o,a,u){t=J(t),o=An(i,o),$([],[n],(function(n){var i=(n=n[0]).name+"."+t,s={get:function(){On("Cannot access "+i+" due to unbound types",[e])},enumerable:!0,configurable:!0};return s.set=u?function(){On("Cannot access "+i+" due to unbound types",[e])}:function(){Z(i+" is a read-only property")},Object.defineProperty(n.G.constructor,t,s),$([],[e],(function(e){e=e[0];var i={get:function(){return e.fromWireType(o(r))},enumerable:!0};return u&&(u=An(a,u),i.set=function(n){var t=[];u(r,e.toWireType(t,n)),In(t)}),Object.defineProperty(n.G.constructor,t,i),[]})),[]}))},d:function(n,t,e,r,i,o){0>>a}}e=t.includes("unsigned")?function(n,t){return t>>>0}:function(n,t){return t},q(n,{name:t,fromWireType:o,toWireType:e,argPackAdvance:8,readValueFromPointer:Mn(t,i,0!==r),O:null})},x:function(n,t){var e="std::string"===(t=J(t));q(n,{name:t,fromWireType:function(n){var t=y[n>>2],r=n+4;if(e)for(var i=r,o=0;o<=t;++o){var a=r+o;if(o==t||0==h[a]){if(i=i?xn(i,a-i):"",void 0===u)var u=i;else u+=String.fromCharCode(0),u+=i;i=a+1}}else{for(u=Array(t),o=0;o=a?i++:2047>=a?i+=2:55296<=a&&57343>=a?(i+=4,++r):i+=3}else i=t.length;if(a=(i=$n(4+(r=i)+1))+4,y[i>>2]=r,e&&o){if(o=a,a=r+1,r=h,0=s&&(s=65536+((1023&s)<<10)|1023&t.charCodeAt(++u)),127>=s){if(o>=a)break;r[o++]=s}else{if(2047>=s){if(o+1>=a)break;r[o++]=192|s>>6}else{if(65535>=s){if(o+2>=a)break;r[o++]=224|s>>12}else{if(o+3>=a)break;r[o++]=240|s>>18,r[o++]=128|s>>12&63}r[o++]=128|s>>6&63}r[o++]=128|63&s}}r[o]=0}}else if(o)for(o=0;o>2]=i,t.toWireType(r,n)},e:jn,k:function(n,t){return n=Hn(n),t=Hn(t),Un(n[t])},l:function(n){var t=Nn[n];return Un(void 0===t?J(n):t)},i:function(n){In(Hn(n)),jn(n)},p:function(n,t){return n=(n=Kn(n,"_emval_take_value")).readValueFromPointer(t),Un(n)},n:function(){I("")},m:function(n,t,e){var r;for(Vn.length=0,e>>=2;r=h[t++];)e+=105!=r&e,Vn.push(105==r?v[e]:g[e++>>1]),++e;return U[n].apply(null,Vn)},r:function(n){var t=h.length;if(2147483648<(n>>>=0))return!1;for(var e=1;4>=e;e*=2){var r=t*(1+.2/e);r=Math.min(r,n+100663296);var i=Math;r=Math.max(n,r);n:{i=i.min.call(i,2147483648,r+(65536-r%65536)%65536)-f.buffer.byteLength+65535>>>16;try{f.grow(i),w();var o=1;break n}catch(n){}o=void 0}if(o)return!0}return!1},w:Dn,v:zn};function $n(){return($n=r.asm.B).apply(null,arguments)}function qn(){return(qn=r.asm.C).apply(null,arguments)}function Qn(){return(Qn=r.asm.D).apply(null,arguments)}function nt(){function n(){if(!Xn&&(Xn=!0,r.calledRun=!0,!b)){if(L(C),i(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;){var n=r.postRun.shift();P.unshift(n)}L(P)}}if(!(0

r{ZX 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 literal 0 HcmV?d00001 diff --git a/build/web-mobile/assets/internal/native/b5/b5475517-23b9-4873-bc1a-968d96616081/OpenSans-Bold.ttf b/build/web-mobile/assets/internal/native/b5/b5475517-23b9-4873-bc1a-968d96616081/OpenSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fd79d43bea0293ac1b20e8aca1142627983d2c07 GIT binary patch literal 224592 zcmbTe349bq+CN^^*W8&qlRGn+9E1>Zk;HIi2qAQM&s|SFJ%kcM ztoRa0YJNqpo==B7){*c7z97W@SkL?(1tgw-mGBjZ&?~BEY2ON6wlN#$xK1AGSq zD5=XEgs-#_!XNKjk&?b;$_pWc&;z($J8bNb35hSKj3UIe4+De^oBEj3njH2FA(1*xUL`h==2ehvp%>%NZf8hd%rho_>j8a zE}aO%^E=~u)+jUtC2GrY{us_ zl92eM36q9Tcwf`}2q6&+zFUOhj)t!5_)^Ym4;wrGN;GOT5OOllv016VFM8pQzGbI& zxq3PJY6!<#@xguS)^auAJm@t4J5F5ciajAhZ>sOh+m47dPrUltPqjf1StrvwLw~6)2dGq)H|u z#QC5|Ejb{Dl4;@JZPe3A3a+ga zmJ=drO#Jn3}ACeJ4qc6{t&MC z?*Z;vn?PD`^J4)kp2Mq23Q8w77qJkqbs-ZOzUj8sCbU=c;UtIMuhNtD{xT4_@1o$H z;rtVF#4^kFTg{S_cX1vb$3N=A30MGwsa|W(+QU8Ei zh5A)S1K=UaUvCzVk~}S6bvgMU~%$87_zLY|bd|5$e- z(%oyIF~cdN>;1LrB$=i1*Vg9;8fLt=!_|qCP%jAa1?)|kQ$DrT;Yt7_c zkvS&spl?9#nd~w7zrTh|Z3d4X3-AErdB%5vx!r}ei5wJ^Lc>vi#dLwNiB{4bkn1LL zM%YI-;QXAhi5wK?x4zHhPSmz;lwN7wD1@SJY&|YTwl0#2T95O2ttS;(gRT?mf$x0C zCF2>u#%RyRW;A8=Q}mZ#&jHSIc1^sAcF2zKHgqj;#pWkn0^XtHR2&&A6+y>9E)^L| z2EHef5=K)VMNA|OBHBQc&B9W`DYAm=d^6f`UAPWC!D_}cS73QqzoSHA*A+SXfrO&Z zbftd|+Db?wd#2PM$A??@h89^Yhz=TkV16>>hji`if#hmijlzKS>UjgL^3&+n!#HP zw@1;2g1IvM66rANV&%MA%*L_brU+xf+u%oO9&iPFAkM+HTryLI{;Eqjeg)S~aqxU^;{80gNp`&oCKc{0ABThRL}q9B_x@e)M55urYv(&B6}wNGP7|mxn*r zid-=HfQ^S&qZDQf=^+xz3Rg*T=|K|8H~5MW2fOVeGlfhtljq1#=^UA&&4o^af57|( z?mBz~6rlk&M=MX`hmsNCS>^|ntK5KPCCQVR|By%$)j4FL2zoPK1n?=s$tb8hbQ~ArcpVx}qxe7QU&#u?Kf{&Sgt7IYgG@3Q z|0%wK-=0W~@+3U73eTLb-i*1UNb4ZS<4Lv32AgOjczSa%3Vh@{7g2xCiXt!IYlZ&c zFZDj?R~vkhp`b5tpjrpM9|5|b!#Qk)T8nYPZ_;?+pqbdzxL2jc^&p&2B+)9S8<>3h z^|lDU5ZJx`8b0bYO(OWZ(FdC{UNot`J1&!1X6G)DQNk3m4|u)-op&1Ll*2 z37E!!_pXB1e;|Tl;~D=$uk%-NegX6O1as*G_!nbr$S;#2=yu2&U}e7DDb#V`<(ue# z9(@`h7YA|uI_9<;&&TsL1apHtO4)!l7xLk^(TYACfw7tHhsPhNaWBJ>Rt5bdRl;8x zPsWO8$V?{xOa@UO5Gx@otI-cDn?TL<6Vo$H)%dq6yr54GWFbejQI+*DbrtcJ;6QEBM=AQ`N#CV_SsBqvGJ`Uznts06_LPDjRkjo9= z`65!H&WFC83Er#1oHqf!5uis2=3|09T!3Gc0y&)w`Yr{|PT|>qz{i8v&%6+~~ zKp*^HwZhj-cQZb}uV#KIbjU2|k7U%)NUUy7`(t5#3)i2RSm8g%dhY@m!T*f)9dtAb zTf;d}{$u?nrGc)OpyT~Mn&SU5ANan4b=3jb^W&&rM7|^Qcdu9*43UHWT)# zbt8@sw6^#PIY5?@-HMXM`j=1~>7fY_4`OXQ>>CRcsZO#{+yIrEo z>I!x_T`{hBS9@1Y3>PEC7-K9kVKGrLNil^nwK2ovKDZ;ut*tGst$^GKh@m&ghvZ}0 zhGx*AfOs=~6%gO%LKKLP1LA)GVsaPaCjs$O{8s*D{u4k zu2Hk2Hb=c5bt>vQASO<$)8TX~5T`qH{186|h_?dbm;V6qAV0+B`yj3Z!~_sGx3;!^ zMM&#ctw-=3D2?PDvX=~L?Zqh5x>}wuKPgXb9o0Ilb!h8gGO{(Fkd`y-TFYs9t_<#L zfkl(SeKHiatogd?>yWQzd|ginD_PCVn;l9KVKN%dg|tlgs=D@)N(2T;n&9fAi0iU-->@1HXdCgS*?%MB0`n(RMVM zwx=mHm8OB?GiV2zNwa7+eTe4Jj ztLb1`Lm#HKke8u!7_Fnj=?H!c9YsgeG4v7oC>=}3(eZQwok%Cq$@DQgg-+$Sa---5 zx{+?8&(qEPHhw$ZO1IJNbO(Kr8_kWOKhn$e3jK**rPsjA|EAaJFZ2fem3xHVq`z^i zxM#R$xz*fr+!}5zw~pSTzw+x2i4)HXVYI2%z3@$N!gL6dt(qqEl87>{bm zea*Fv9`qdXhn^l^PtV<+)a2|;IRf_XmvQ$;i$2Vd%_;trYltrxHdgH z?%{~qz=p+4dkm>-EG?_*kst1Id6V1qY7BDYNw`G1E01iHx;LtnM> zmn=JAB13DF^mXpKA=Ool{1Du`gzvFr$-+i+Qe&b!zcF#f*CD{s@WyuT{2q--?5VxW z?~c>^-jK9Wj5E2NOMWGoj{B!8n8$rBL;NjLoatA>E;e%A8)OT!xrmU$aZwWDZ9fT~QrpuBgZwQNvT zBNtcT95n>Uz<;jW^-#FWe76rC@ZT>JpasYQhFva(hNTBQWGGG=XO~s^&Yfgv_+H{k zN%A&wwd~5ffh+cY?8@xGmAkjsx$4|EG=$!H7;Ex-iMd2$fZho_t`;GsMp%J@%xg;Eo}+AlPU|*Rra{6!(Nin>)|P zMQC7P^%z}IrQG6c?a^rK-iRFn|6PqKJ#a5rzsC~BY5%XJoDEXWS>_$p5#zecs@^0S ztrz!naE8B@K{^m`KAzMV+#MVl-(yKt-H68M+VDEa=m=+3xU13Q1vhxzRl~iEMS;!4 zivSHDpa6VTS=GD3-MegH6*$1~TU|k3T%dT@~(o44Ac19jA6yapAld9ZhI( z7U000*BRf9syH=@3B*xa8I$LAc2?1F66g&u8WWv8hUfeHvGWHWiW5Grdtu;d5V!pwe(z4PNff+I)BqVFKc;au0WV-J_h1p3*9Y zB8DD?B7S5j^zl)!cV*T6XZIlsXd*6LRxsyBW@ACpT^usxHuhA`1Gol%J$SiS;Ieax z+TFWi38RGD|3CuBdo>cq?w*Itm^QQo;}|#ew9^FfSA>7b9*>6!K4T8&5_hkt(`5f; z+h;@WN*gJ@D+g7%Ad=3oli^EDKQT&qp@5c{zDf2h)wl|s{hXBV7hTBri{e|OON)b} z`}V1eE-9{yj_+XV7nc#+FVxx^trA+JC0y@Q92H$xOp6N)(bf!0KM}VI8MvLNMn0E+ zmFK121*Zy{3V3%$OuvYX@P5G=_I_q+>}Sd__IuTM#>k}_Da|1L#*CEkD%iKDY+$3bsFCy=IH+n5rB8Y1FJDgbB6~Nc zS5!4RBfY&F>u_L-+!IXlypty<;h%jb*Gztl)yfw;P(C3wh%Y#>Lf((>DdK+dGA5-uz7KWx1jCqI?J~78xt}|34oV3B%_baufTIN#rcqOF0~) zke|o}tO5wd&MH2!{=fcY2DwIO(C@hk+#>FE?n~au_vT0O_53FO5HAZ!!gS%1*jAh` zUX-*_z4W=ttSVGZR6VCUqK;C(qQ0&v*F2*+rIoaq+9ld|v_I>@bpv(Nb?@kI>pSab z>OV2W8lE)lGF%8U2aOGSHRvm2h_R!w$~eQg!}yl*qN$_lDbok$Nb_X#>y|Q0gXM3Q zTh?4_f9qcBPqtLsd|Q*|OO(f(DiJ$Pd9euwDj=$P-=;J6%;gum*LmqUfn+R(Q{ zzY41jdoJ7*J|g^J__^>45o05sj5ru^BeH$uyvQAq*P`4}`B6_qy&QEZIy1U=bZzw1 z=)XsQ7k$gAafUhDIlDMFICnbVbbjD$a{lC$T}G@A(_M32t6bY$ue*-B&bfYw35}T= zvoK~&%u6wUi}}zU_E6=l(u+PVDm7jj?}?eJl2(*bA{g$I&=z+{(BY z;`YQHiTgC}%eY_SJH$U7za{>)_@nXv6aRHW*MzyPS4C+Lg6i(eC4Rm)c!#Cnsx?!;;%3XC*IA{(JIw$-lK%w-0IGwtc7eyHe6q zx~Ej6Je=}K%Ht`^QZ}aiHRbJ;k5c}b@@>j*sj5^uw2#vMmG*NwO*f~7GfxU6Ye%d%d`+Mo47)`hHJvZd^x z?BMLI?5^1b*(KTivtP}ABm14~o7wV1(nI+V6+blbq3I7DedyFfXLGvc^vYSA)6&t{ z(bX}nW4DfF9fx*&tm8jB_2{&$v(R~b=QCY&U23~5>GE`!=B`55?5?}J?(5o|TbTQF z?!P>to&lb>yTx{!+U>J$-*vl{r_Kw>OU&z(_iWydyx;O#yQ{i~c6W7O(EVb5e13L* zVg8K#x%nsZ&*Y!$(WXagk0*P4T@YT-u3$*P^93&!yjt)^!8-*f3eFUq>*?y5*fXtX zUC)g@KP|Ks4laDT@cUk!dTs3WbFW)P1B>1$`g`w~-fer=_x@M0wK%qTQ1NrcU-k*^ z6V)fbPjR2hJ~R8w>+@ru>m_j|gG*MHeA?I1cWB>@eSawJUb?b$OPR4Ox@>IOl(PD= zhO+0%ekt!&{(O03`Mc#eDncu|R`ji?t(aIbx8j+K9Tjg>ykBv?;(Dd3GO4n-@{!6V zl`mIb>}T%Rt>1!v*ZW)g*Yy8=03DzikUe0;fJp-y2E12gta`Gl)jQAIJaE9k4+pgw zlsag^ppAp}4LUXG%j&Mx)2cUA|Ev0!!Lfsv4L&^hTuqyr+M3lhXKOChTz=U8aPGrH z9-jB`j)%Xfjjo+g`&RAOLyCv2{qw(}SB6y&8#`=D9j)tK_jcWxx{GyJ>TV4ehIbr3 zYk0%(=ZDK9YDYAVRE;!^3>_IWvSei4$SETij9fi($Ed_nPmcP>=r*ID8hv$4)|h!? zu02xy$lo9B`{?&$XOBxAcXiy&aq{?z@h^?PF`@H>k_ojFewa9M;@6Y)h;++1}Z2&54?`d#-10@!YDp%jX`QdupC)-oSY~ zpQKL?esar`U(HXMKV$x>1z`)y7c5#JFC4${=Ax;Ko>P~~9A*x|=!^wuGhAR#73gZgriqsW(D=JnDUomyXq7`dbyuae+ zO7+UHmB}kTEBmb+v+~%}&Zh@IJ^blYt2(XP{EYZa-7_bibv--v*)yvXR?k@d{&R-s z%AR{;jeSj$Y0WQd#kJvUQ`hFLtz0`|?O)a| zS-WBFD{J3f$E^!q7qhPYy4-c8>xQhGxNhFMXV<;B?#*?l)}3E>Z9QEdyuR)FPV0-; zSFNvGKVkjj>zA+Jw7zluk@f$x{@eApHfT3QY-qos`-TAUxj*mIt!NR&q}@FK@^YK_3F2!SfiFk5I&jyc1ek(O$8 znO)f^hxuO3Z;axmw=5L*-!2*@e9N9QrS%(nR(Xz*#Ct5fR?7*3$xKxSRi)Qp<#>{t zn`9=+^UN8_^QfD5(GFP|>A`lJ7!y4|<2`U6I)e@)T@$ih(>1K+@ewdz?N)dx~q0kM9#}c`>@FnhV`I$4Z z!k&W|wIGZ8kQWwB>OJ}Dh-kZD(`d8;#ddRuC`uM%kWSEAt+wE(NR=Qt93de#Nh>&A zYC)%qph3~ZXbiPmg7BwxSb0fn0RXufmK-d2F*$(2{*}r?9SnVz|Mm??RW3UqwYpi! zbY-JhGx!Wv>|#c?oBu9_a`L%8Uz8jvK38;=+EbdTt4~v(<0a=xer}0;FXcVH`1_CK zF?2O6AASD`eNG~e(?Gf8gWHZp+_L#)|lPDlz%aB1QseS{;Tuh-^~^rc==;w1*0ya2$10aMOQYpq-M_YirY!>EHJ5-oB4| zUwWNuZ2s(LK570R+XXVKzWMgd`ftDc=^{P((?4z(iTj&5U)wj|{d56sjN;|3S0sYD zMS|jKWTGc0+2GdF$Y7!kHdw6*prjwvX2& z2(DtUV5MN`+$0hLp|y~lkQ6pcg|s<}m@$pu<7q#|L3H#;OLe&tAj`3gqzYku(ygLd z*)B+G9K%62l_c6B9vHIQ99dZskrz&W=ifKvFQ>2So&UqpgBO;pqY*tj(5|shls3OR zXZRDt<$WEy(~*Ta-TOS;zk1^Qi|;HxT-kr);57&Tx^mhvuY7sRfrWDGuzCGQbfHD< zYPkiOT|Awt#-t9$Y8X0$ZcucF1xk(=IHoL4D|7HE3Pnly^aBTo-sU9*c+L$w3$)_K#1dCQjwfvSfDP5;B4IKlN1cXG=Oh742i*9 znJ#b-^q$#Go8)>ruZhl+>zlZ`Cb~eL(S-dR%t*dPPm!zGfwR8>(;ppRe#%ghx*SCx;XQ zp68h8+-El_bx}UQ<$`>fb1{pFJ2+C*dPOM2s#}M3b{mgP4<#*;kWh`iuUDhujeWhy z1r5mGT?-7paK#X_$>K^U)C5t=GMktj359p$J1uhSZ7Q@-z9n<;xJPS;JTkV1Ym(>4 zE9m3cW0^=z30ZiMPQ#N+U|~xYE!4#m6%j;L zB$x(AMF*=?oYtZ(@mf?Iji3=FUN(qN!}uy@DwXLnA!CDO(ym;lqAXMiT{&nI<}6@% zyGtl-=IHpXb?t_f_1ipP=c7;U9JTn<$9g_{=nz+bj!u4Y&bUrh{Ywf@R2L`K?R#wa zo`bvhfM9?Pn9l=j@nn!ECB^}*sNy3ckc44SCA4ux#YO@5A&wA7saGFD4SYz5HdbXY zX-$2-T1FBWyb##Gl!t2uD}V=_8VHpCPeGGnr7_&39GmW6=c*rQ60y9t#L3J@r?v}t36C34ETUKy$Xk?=tqvh3c9poD{ zMgD}QoZ}mtN8jpt#adn>KLQNb0mGSqD4g{7B*C0I_)wcINFBth`G`oHRb$n|%=Yz$ zBB{l04=M55B}w1cE8SywW^fd@LUBEP450wXED+Nn%w;5g#5yxOxEMN_d&*~LaU=fc zj{K?o-Hp|KKdqtRa#QB)HZ!yN(3YFw?k@a}t7m?dZ}p|Rwwd3bx9jt`ALQHeB~=jc zSO};~#S`!dVo5iTOS0(oF)<{wrS$P7+ZyC=zx`RhI)7FD zI4W5GGHUXqiL*ZYvhR>S!-tmCi6`ILGU3%8RqssN*Yx4v>W>ul-S^1GBXw^ezIuLkThsJS#7g25OwLlT$;1Z-hxPRa zt9W(k{o0r@XMo(8kR^w$I6&=~giHoJlNNYDaB2yNZi!Q-;hU6DBtIiJ%b~9b%iNZ0wT}+1t65Ob7s#b@|Dap;K}TP%DgO1Jm#KM;eBtnukB@nL zW+|h%f2D;iCuTX~Jyr{Zhma7Xz0zwm-8Er~)KH-0HI zb7kHtjK^&8S&SzU3oMn@pi)_RL4prw)tV~3T9Y8bGK0g|Xr?3SOqswyI}{7e-!~XN zWK^tmN?@?74xiQLngWA?pR33zAqT2UA_*RoNSXassRe}8!Pz3|qBs;7A;4E`DC8&D zDHU>>qxnlMmE7)AbbkZ=`Dgj4{2jwr72N_4h4HnD#Cptdb71P!B1>?=5*5$KGgAgL zAHfeha}y{^6@Q66l8Vz_n@^&kUIot1RBcwaU2-{zxq~GZX4OJjhwN-zm!uQbJI5DI z3N=0Y;+_ww{vZ9%baxbciWmH{;RE^a&m-|AWQ;uX@A4fa84dWHuB74@bl{<8vU^~S z){x<;U&{Tw;@YB~9p`-Z=2^7Z!z0U$2sdDljj#ny*yMI9n@teHqI9|#tow{cm)aC+3hm?7o8a%5Oh#f1EA|>K zB&67jyYH!Vh1qL!sy=(dV7x~F011o#A9Fyk_9ljq@Hw~Kl6Uav} zN%MrLtX3?>4GtS(7R6q(pc1uWu~)13?aVb({ILLd5QP}brFOx~6^qk`K$T?4a47e0Hv`e1~vS{{6D-=p#4xhQ~bSYdYYKkw2k!WT%AiyQ+i@hQ*7_ejp`Fsw+eS?EDVP&0g)?IFMhEtp(50@X8htgAY1YIV- zE!S?JPv3Chxq=zRKZz&Liq}5WYmo&v*y#y*TmBV4) z98a~yUba}j&lyo%(*P6@FU4tR3ofMyT=RausO1X1CYw1MhLzuu<%LYUVN_nms2bA2 z6Q<^Q9sCJOwQSJ)#$&4+g$bA$yf@1IgU}!3GkihIWeOd~23XkQqoSAqDu$6_PeNEo z2p429aGW*5s#b>wnRF&F8`utL)(IiOVld_=f~bm@syN(9_bAI0o$|*PuP!t618A!_ zTq;OBR^%|m*=85_6_>yK_qp=x@>cpR9eL@Kk(>W|^7_$(L+a$qd}fQbeH@*SWVE4l z*}z++^7XH;-my`(o@TTjpGZ&Ac}f5U+gVbQ?**uN<0n6e>vR$iEZs$tpI}PGFr`>p)R+%L7F8+8 z%7$(eOXbb-oOujgGw3o}C3D=UnwFbD*|6R8-z`|O`lKTlql;`#f(qJHqR^k1lwS_~ z)PR$#Jof-lUncIqQ-t(b}!S$PIsfNamPbPn|1Gr!(q`J2Bp+sHKBF3emFha1{P&}i%=D9C8E8KBh- z2BXQOF7}#uSfM}BHh1ldh$XhNUUdre>WGG?rp;Q;9g;tnf1VE}I*VY3otGv)I(F0t zS8li568C?@MxO>N$uMAq&z0wiVJ|i#GN=}`2yTa)wAwIU1rq~61Qn1Xs(_EmWZduXjZS-#=;QzXgq)-rh-E&Ov#iG>QL9Hhh(Z*@2XEn>CW zV0$R^g-#b@)#!<)4>YGvuLsife6UVonY&6F0bD=KrVvD~83Qp%1l;#*G?>_Dzlj45 z#?`u2%NkbK0D-%Z6CCx_Tv}8o@07Rl$wNnvs%n|uaz@<$`T02~b7boZ4(a}s)WAkN zpxqN-v0}o*!d%29+Vl{zHi}?-mm0F`Fs1>C|eg zMFTAZUh<2UFDB_1EwfD$z&uRz`WC=uv1X-w^>6aG^7}M%(Z)3}8Ocj7Sz;(rS!0t4K*mh-l>X5fPD*(R!UO zD#9x2_zCDve6gAoGVAbY9Tw)SM_H(8*KgyD6$3Al}vW0mfuVV;Ub~ z5%?GT%bVog_}fRnkvk&uy%QFAC2}U0*m91$&b`-ioeOG7^1*cz#pe}9}((y~=aQQ(fbQw86gOTOH4!5=rLBm?6+ zl<~1YgCK+kQ&kgHEF?7mfG_ftmg>kbV?WjG%D8ZWel15#6f4jE&OBP8=F~zL@omHy zl07zr6+}rugh7pKpp8o8Bs_@)NRj=ckU`Owz>gKi-i;~K{VV9TYjEGc=hXcE<|1xh z3tlv#t-#}3mn^u{khe9kYIT;PoekB+E3 z@SQYTaW=Ny!_NC$y|52hXemA(K3=fH&K=FYkx%>Q?iN08cP!67{QYod$@)X@cEbCS zY#+186K~P0^;}F$NJwm?TJ6?{_V()aqRnP3@Y>+hiO~gKF__pDo9bIEDVuxu+*ihW zY&GY?a$8cOSXf1~-AsQN0UP=VBPgqHencmApRMy=c=Pu=M_yU*`tZY-Fa0ckGIjpk zXU5E0Go<%{U3*{BNNKyuJ{tbs`z;O*IIbEvXU1^Aycsa>!+wF_4G=?#M;w~A1b-GxXB6eZ^9{oM8AxrTi~$5TDVor53nKJ>OeqP zSp~2qC?9nE;&&&GO|WPDK-2X4MlOYyB42iBS33)QIj~>}7Ii(nqKOy*S#SU{KhrYIiExZq=vOgQ zW)mzd)}9hKqU9!bJTynv4J>@T>(#4Ot9utcXXCoiNSa)HB{B{g_&`d!d?zIq_`$fs zL_dB!9+xKA1cy2(h#|^pwCjl(n`;VwObUMPLcxsbJ^TPe4hByQhYcgFdNbmgeQ|@Z z34n=hMkrR4k$@%1AnPO{t|lNBn+e<@R3| zZ4DsD59LrLE*K8W;N~rY5Nb9@TD01T5W9u96nS~(MUf(}!KAVmcvbhqsf1APx+Tmq zD4`yZ&4tCe;%8>06T97|?3^IBBXQ%0j8oIy+@vh|y8JN>z4a4Sx1@+G<__OCv~)ke zZsx>^Gn>odt(Xy9%aE^MeP-^{ZQEaIlfWb%)}5b%H)!povnR^NaVn^rU=bI&C-)w_?<6nAw#(bJ_Pu{>T{V1Bq-{`!r(a_H&Pi{)Zx-$d zxrGBua#Q>AeFlvgGw1`*ZZov@ zpTj4O%3@QoYG#&=p{&-R9Q>Ox!cO_jzS)!HGc*l5_cw(^;eFzT!$h!8n<}h zw*NT}9$y9Kxqz|pE ziXF5o8$_J-?6W=l-fT zN}(jkr>xVJjRwVAl=#4a1yd>udiCi^(>|J@3@h70f426o6n5Q7+kD_ z%qWQT^0)=qPDHLHQ8Wc<4FI8}IriU>e^%p>%zyWh~`mCAM(K zzi$<91jN{XWknRjeMivupjRRxo&Nz_u$?h){~E@<04C$LNk>0mgS~uQ0idkn> zFe|bKqw286#VTLY>%)oF8WybS=?yj+`JP_mU4`ru7{%WVY`{TcVC0|>xJ+iwf-Q8_ z*qJjPd35HCM|n}cD7U_F^GO;-c~o55j$JRkxMRom7v*d6hs&wDky>c#GWj-xVl%Yf zK0slGt?%xM34z;>sFo_yq%t|7If=nw>j?v)Hmbr&_&t;AM@1l&%}g)EFv z8L<2|PT~XB9;o7_V-rj!`OK}PphrGEesT1X^NO`UJ>1r?ELiR&6|LNX-S(eflW#5I zS1HDxmc!UHd;!vl3cj4oD+%T!d2Gal#%K^A4-0n~qk{Doi;C$RJ?ZJy-$mYkSY6*9 zbzH#6VoB%l+u&eF21}qccVK&j-1x^H701s!_lR)(;x{M8Z0f8I$NKRjgCT88)BGKA z`!>k0?A&n;UcU+G>`+?S@cVxHS(iu3Dt(f`PXnwbw!-8r3O|{dS~7?t^OxX*`=!Xo z;WXXBE7mH&;k>D9q9ZQz>8qR;GF5%-~G=A?^IVlUA%C>s(CXy(&F9wT+Ze;S+%jr zIq_N5(*``dwd#x5_Pr82cgn2(3xhWW@MhzeO6&wVCwjHfXtiq9oLOxSc4#d|OM%y* zHyTBd4j!35iRGyTM#vX6dst>?~+*3+ASkPMEagjTfKZS#=ak z<`caxxWCGH^Gz;%&WI~lziIiVTUQ3dI>;Pie30~XPY7o=+ibyD``axVBPRxlLCV;Q zhv8d;-CH6*;B$jW{xE>c%pXWJrR|%1?0uTXB%Y=u*YT$^B{WKVmhK*ybF~ zmHP`dE%T;7T05Vs_l*G+EFHrbkt|zM6tvJGk;LIZkXjWU9uX0Zg+Y{q1+b0AaLGtS zrhB1%fm00T^Q06Mvs6(Wuzx_nBTx4(7%UDD#WUT@AQH0sKc@OnJ|G{VsdJ*8k`QfL zLQCffW|M(Rn)ccSG)aD&E~HnRmkKqqdH#>Z+xu}LE#C+CA2K+i@J>5=4S-`64BV_% za8vAwl@K7&V5y0@L4_!cH@-Qsgqf#(-K;m>Zn+fqN z0lNtrO^As(HfXX4!FCh&eW4S>*;W(C=5qmjR!i{$6o?f2;1g~$3!?al$kuGWG=%JI zT5>jAE9snPXiqtz+rMAvTb$jkYN|5!e>Gi{I6}oRj2GK2KJ2 z+I`&NAC9+_VWeoR;XlI~KAJ^Ec$+#p+8h$%G(<$W1m0>jfSY0sdjE1>;Z$V=-%&;e z!#!+rCUz<^Suz9G26i)+d%<=)Q?+(TE{&d7|HRxQH-`0=zW%YO?#2-sG@$xgRk@mW zU0Z*NFUXfaI~1dL@6pJgNDZKe zh<>DGq}L;1!LJh(mF?$qOcypa6FM3}RPY9(#Xym8S)NV6G#@}YMRr;xIm%^;!x1E>^FYGkul*mtHZ*?@NmxI&~n;{$WUuv zuR5r&mx$_6{7K=V5;Bu~N$Z#(HWKg4O2XhQp)?kY@n!kV=w!Kz<`Cl!=$tWtE|OGv z+8Hf6PGc~H1qX8>rVxw86cw!x2@NUpYC=Pa6{g9Egvbyg0^kP{sC-FqzE>ug3RP$W zaQ*t{-U1XR%BF%}!MG_C8HQje?$FVrgEvktsif27#m{jc-T8iGpS^p(5l@wW>+x0` zZfe+7A~)Y^H>qxA)6tWkgJKhjEVzVSz-I#1$T23pRUgB124UTFM$apxAtBpCO)+L7@N+6ca!* z>~1?NE(P&GK0>vH2odJUbB^A;c~idh+i$yBd(6qF+*0w=$(Q&=K(ZTAV-d?1m+!tE&%?;l^=}=~> zXa{EQtSq5F5cg071iF@`dMHVJKC=T&p}2SPjL;4iF+h}mdSRFO7xwQuT%NzYq^xMz zq^;}fyXIaydFtu1;{`|J2A00DDIaoehgY15RYEi$q_GBBr%E}gXP`3CBYa3%t4@07s z;z}s51>Hp~JMeLmqGkh{#usf>;z|@*Oc}^xvfDW9g2i&#@C!21W7!J<_;nfVRL&YQ z=2Xs;Ie&Tb!;9xnJiDQ2VsribwB`d=j>ua+J|k~A`qVZWv1J<#-?~lyddoKXo2~ry zXXeS@M@7DqbNl=kzn1LmDF2|`BX9ZOn7rfTGj!l_*6qIA7-yw$KXV6=CFvk8WW`2> zsHnpcWl~|!M->(0HX01kI-Qk9Ww7{?t6V;IsJHif*wIoIDO%w?u4ZYrIU?PSz z3wVG!Y?6s04MMUs#K6xf2>L7Ht+=P4lh1E8{T=TxWE@s@15AfuEv(c*sS3Y)q*Uc} za+CZ6bu`J#VG<^N!H&O>pF(i=1ooNbZPVznuzQEhI+I(l&bi262=lPbC>1svk)W&C3#kKUd}^3B3o+zZ@yi;D_5RC%jH-2XO_v=bMm@n$rt`l&ZVul zC7U2g=OML$-59uYK7xV~8E&OJHw3+8JE^Sx`B0wu6G6yN3h`+0f?q_qMIXY5;(OUk z@liUk*bvit3LD>V&Z?_7*HphSc<|=ID^I?IAGR1csGDbyFp;%xsUG~oz!NJy1FO5{ z)>MN}t3bLOk%P`+c^@H0l?vHiIz1A9bUKsSpw}ViNJ1=0SOWc+wEJ|kLZ5sIkQdhy?ToLy+<`;}ukj1X2a0;o}5uyo-=8zTY z1ZFHbz|LLO?;9f<9tE@3_mW6eF7EA?=@&=jq_!y=HgnZmi#OHG8BJ@sqMc23-t_o3 zRcq$VpVDvjl!q~9CoYHEkNnU$($y1b({XTjh*NUvOp;EDPvC7fyIm9Ejt2&6cuviy@+$`hX6RpGEq$bRQ z-8O(8s&W{E!B0l~J|GLcvB0En@x(T40;}WuCk$JvWMZ-X8m2N691es95Du-Xc>+;@ z?~;sd|5DX;lv5O0e3X7NefnSDW6^-s{ra_U*KeczE`IBll8JJ&(175n5m9El&V(f| zCTlXQ)fDmFKHealr)02fc9zuco2ZFph+wKry4}c{#B$1%mEjT^Uf8jvYvn&q{quXS zT5gs~e{bY7EVu7afyHsBaEbIR)*Cuv_h?{%^}MFii`Tz=acjkUV0vD0@0C}nSh6{H zHsH=<@3aXKafC9kC)mN`Fd0}J3x>sJG8t?Jt0suOScY&o_yJ&oM{*wbgUdJuysErw z8Hg|?WM{xDpH##s@t|dfx>kg)>k=}Y(W@FV!7^)<_n!o$ zbl(5|Qxp>lCJ~Ga6&AoyKE(Lme~QcC3a|2FcxuU5n*0t|MBkq9aBSNyv*6j`7p8ya zF2QOtuO!-I2)x~8gi`_|dGGa6pE6aDthgiMeGW2r>5b>tzWLhLH3wyPx5C2Q+`__c zLiNjskG=TPkz+gRh7Yf+8#e3@R&SuEtqzeNWXvN84_nY`?34uEGkStz?5K#hn_>Kz zeqnR_Q=@k{9oJ#-@C}AQrZn<*MPDVXlb1KqVEM-;juG?dGz~uhSUpY73A=a5 zY*%~4kDdm$@MEpHIbYj|%Cf|HpU=)3Pf`;y1_o9L_B%b8eL z)^i}9+6WyJPo_jGPsMMn`<{Bx|I}pPQ-P^2@^t$S$JGrbfq`WXhx>J*&XnY1DW=4!4-x8Q~0m~o<`uyx7VEQxa-}pmDv5OS?;9w z(XlxLynXl8ju`sem@n=OX?Qr3wz;>uEgJe%pOUKFoT83x&p*`T@Jo+w8V&ce6YU?6 z5#_f%kx#Cg%*EpkCCrg@N8V#OQNM;g>3EWq`CocWC7=B7J!o&z-`6Aj!DrM4M!{8o z56go+`UiTDF-i~ZKAv+cUG71m_4koz>69vk#%{!QKx0q?A5|P^Y{cHccu!}^%A2gb zSuj&=P!RG#^w7a}q_5aaNWsz~!CH^k7J2p#0hO#8B`29joqzvSNDpTIh zyO-6VC<$gve3?kfu8NXM5A(@Ps0+JwZdF|KbFzK4e2i-lR=1o+2G4aa<4z=6Rg`QaGqcEE# zI9N}$+EAo3AcY>OMTp!W=UZ#x%q*)tAa{yky0;gv_(P14EMA0+MJ4MSw2Na7ff?&? zB-y7d_NUh?srHKn;p0!Y{`Av4dW0|M>X2jqSC(zhRWASjn!HYycl&52o>Vc8XQ_-T z%<$}kc<^P+DtKUqo=M&mr3V)kpoo%FdtZ;KwBUd50m(b+>){g`##1aWSAjzr1y}t& z!X6xjVcQ4C7^Mf3yd)ppVb$hPyy@uw>{R~@%J*1<^`5o86D&I%+`K{ckysafd)nPFOj|3S%Upu znd)2e>sCHBYtiF8_suOCuOfVNRqi}`#v`Ku7R%ETM<=5MgvBAep9pSWr-Q z`;?TdpfHz;BqXT9_>i_4ZF_n%NQ&JYQsg!Jx7QT^R{32Jrg(jj`InH)dNTNe@Wv3^ z{PQ`60rw3XguVk=-t^%Qy9X68LTI^&10hOOwFx!tqVSzh$S(1LN@7${HbWq>>Us_D3y86~# z&OP_6-^pwHxg7gkm;_0h_I77}1D&dB54OkdV1p6ZM0ez>cVKto4!weSznkp)CGcv9yGMT#MWQNN#YZ}YTDIq*1rL3kg#c3-Th|qh#-tVeH zh=35TYDAn_aTUek@v}7^0ncNNH2uY`ro&zq%Y_xkB9oa5J6#9$B`z7Mk!M_?MC5O4 zkQc>xwFVcmED8kEl`Q$Zdd%BTKK0g5Kfcje_rNnZymtDFnZ2LC?NcU1ixB&@f7hU0 z(Ox&*amNEU-X?}mxY$;4lJ~}mvl?G}hN2G}`t`1R@5Y6ZUdq|i2nQQ+CNE!1mgTFi zMjRsh;mnLXXw~8Orzk(nX_b1CvxWR5r}&96oEoZCYIu&XR(5Q)F8_QsyyjTVKl_{w zH1f|2+J2u_TWx<59fDZPlGtjutif|X;XU{n?{MlU2;spqm^IeMGMv62CfqT*rC-}S zTJFIe-?iSs1}g8Xceu1R2!CB%26IEMpgv_1zk~QyQ0)o05sxL&hq>fDJJJ=^S^|Mo zol&w#qUcIZwO9(WT(10}kR;+F+?h$D-;Y=UgquRR7VSAzjds5z4r~NCNUOm)76Yhi zSRfT5ml&T=#ca9~J1%nbD*fE2;6}n{I7{FO)`7}g93e3@8B&^=GPwH2hj0FT?B=zP zD*tZzMfn$#KRsM!>@)AHv7-C-$#bUPHe>E2U7$Q~Td&&tS5J6IS@DhXjdFmwzdOxb zW90R>KDahIVai{YJo3PU8;CyEffH}i)2( zHER30L6|Kp<|`on$sKw&5TO={d_ir2dcdE+hN_>Zw|xSwpxT2;_?#%ISX)2fKnb5B z2l@c`g9B^WF5>o^k+>}*_Bu^S4I;D^+@1_w(Ea%W(2}T97Hmtp1WS2h_BisRqYG<# z_a0EwtJlDq-hHa+H(*>&eqTGVen8dGdPyEwH>7{nka|3KRLc%TBQ4`nL%6NfkfTWr z6bB@Q`d=PS@_&^YN-N}56rgnHls>EbuA&&FyKkvnb;X0tO&-?0u;=Yl*kP-3D7WJF z$pF(qz*5nT6UVMa6ewbrIt`uDutsSbUCmAgo_TgiH>K3^99Eb|b?_A)p{_9J1S~B! z|7|~~72c@su|K&3D-1ys`#4SkY74Z2>JuhGWTqY1PF+FtfyWN;K8)ghn2r2Fw2;AX zzz*ecRl(L0=eep#*&1&zyg88HbF`&nw{Yl#yFa>nfGd@bYq`LY%uV{TSk$WCZMwzsyx z27b?52*)T=ZDAbx#{0kqu@h{5m~5Oi9tK2IRfE?1HYOvy+Y2qUr)j@_C@k3)}_E6E43IW-}u5XT7t z^if0&w|TZ6H(asA$7F4eMa(0pCbzsCjsoyNQZ0WMI?pb?`N=!~netq@IiS3a9H7!Q zYc58t6KbbTly6)#eb`tp%VZ);X10dG3vVnt@YGWWni>#AKX+y7w!7|oZpBI(DarYW zk-<9T^Es+(`Bj}|N5UM*V>pF#If2zR(OQe@&X2XgDO_!#zUA9LYJpR@+Cn{Fr^{Oy z5bwhvRR1U^?&4|F2fj|!0#Qp(wT(E%?ZR$AE|%H`-wiPGpm(E`d>L5+xQ=h~>pcZ8 zuKyk5PPB2<#%vt%eMzTYg8ap5VKTzFLowBib5eD@4W%pP#j9;#4|HL`<^Fx|#VcUyMDP2>zDK)j93Ow7HvV<$v*T8x zbtJhMHlyW%+8yO=iD22m!eKLfVgGi;>~Q)FXqq0_s)t1Ky@(v39JOEo0ZqVhGbIHK zwT*sqO$pWjUM4qE$W5_~xmLu>));lt_f*#vlswuwu(07pktwjYm50b-r5pFkD{5Z+ zE=tcvW<32RpFhy_5v9n>MF;ln+ZTOn#|}s)GMB)-LMrsoc5ZlUg>)n}5`k9!RDa|BFkL zT-t_P^L@4vV=Ll*WbuHQIy2dy{%W2&45a$SL8+FPDY8!@F8wT_vnezm- zjr!lUf&C}$<2*raqdwM;cpJSHFJTj?V}Yf4$gM<`g=*#kuGZq2xEi9Xuq49PNc%v2 z-XNht?X${3$d-WlILaf!v`BvkBOe%F57i#4M*8CxYEK!evw$Xfd$6t+K~AOX%fV%U zMTqP4bc0YQVpn0_fpQ?3_+BVdDP7TcV9c^Z85iQ$#0x|Ub_BOj-c{$U^|Zo1M4CLt z08a(&Lt!m{<~pS-WlZ2Y@lCzhWfmIXTEPW$)*V!`kMW>&Se^3*l92{!cZ_HE6Cbcz!BaUOpms1$peo=lv_s>pq1JCu zx>AOQ`dylp79F1z{#4z|>fP|-bY`y-f={=ci=O*>h|L$j1-aR@t8uz$MvX0&<4{wI|YBs+rD zVD6Bv0&D6(TP@PGFznmsF&!E^O0uenMs7(qvzCb(0cS7y2n# zt%j&~@XBO3z2n*kR#pd;3AGJQ*%#xKjl2}~n<{0i^pyBSNNwlTC&s0=b(|l^o~UQF z*cfXALgZMORz zQWE@?ZVjO%PqjKB7mxDEX-T!@V$~#o3pidh(2~klJdQk`=jhc-7jGVR&48)1P0dOi z55tJ?r5{y5ldFfx^%^op^Pb{O5T~piFj{&MLY~mU?vv}fcALwy&`uY4O1Ite z)_Z$++SX?Ahm%@1&!8(mI?%lJ#W#r-NaFdLpA4n6($I!9|3Li2=avF~GN_h5w<%Pe`1%Dsl6Kpm>1KA`q;5f{( zoJL4X%-8Dm<3>r2Rlq}TgB zes1eHW0(sH$`A@MOEV%@6nC^E$|g70*s)`p*V`%6Xe>+h1&e((jm5=+)7c(!i&L}% zTf6`{s7@gW!z%*G`!~v$8(tADq6KU4U!2;wu*J<~v_(jN$)teWSmG9i;!+|lqEOU8 zZhdP$XO)X+H znAkpXmUqpX2bl2%=3_;J>ef=et#STRB;3Np+E2>|+c$I0^m!UbspdQk0w?h>VVO#G zai0k|inN?l%$2wU8ZlT1I7-~cMjQ;08lXC~z&Y3s&cSdxQ63bo<9lsSCtbo5!Nbbb zC#J=?<}f^QSL+j5?c@B3{umGAcqY8h6rOn zfRYFQzm@W2R2UWtS5X!Cgkl0XA=HBvvOLrb9If<%>Otr%7cZ*#EWiFLHYh;*0!Rzs zJMeVsA7zZC3)e)7T_&$LDK*t(Np|=hHk0T#`7<)@0dJtHF@>uZNmhjMxV#QMQpmVR zgtElw!^IyuvSnHumh3Lr}ltfzsRrCw%fyL{|esbKvXj2Ha^u2k8kp9IsR0r z?Re@yE=pn!<9iKlB>I41zwoMU#8=@mo3CcSU~vzV+QM-3t{XiAaX4;m^r``aMuusZ zZ{j_L!I<-2jgQ5nd9Zt>&Ag}A;12LHbRGS4$JSbHfpk0G0_5_5+RwP9Ms0y~1Zn}2 zyRZ{oLmM$4)8)MYXZlfXBc{_5ztQ+H??sFsJ9sZhD#PbJ;fuBkSrMn%4(v>u1!?*H z8;ydj22+9^sLmr2yLjR@PCkG%h=b=VNA?_k^0xk?bVW;=M#?Haqb!{P zk!-{;BtxsP>da>3=cFYgyVahY3>=F9QhtFB1Dm;uw%`P6UP4%kD&uP=h1Nhs68hR8 zMfk{uD4yQ44MJbnd7C!FYH6A{$}YW;6=Q)9e5E-s!oy31AK6i zVKXAVDfYfdxHZz%rIQ1CuOT%pDU_6C5rnM#h$TNC8j$Gq8VJLt7+PnCfF3wo0RvJ% zy@errsyzo8{i?avR#r4h7RxXps=XhxLU=drvFrN^cSd^V<%ipc!(~N92x0EoGc75Of>Q+)oPO;q zD)PE@?Cp*Gf5YJj$w|&nO8@;nIk967NfjAKot@TMf?%2Vzar%zY&bSk2?=fnZPrLE z`=79MltX;pd>a-Vd2q&zdl%m{?cpbB0!uo!tN0&qc67yj0+S~8Ro_WDO8Bmp z;#`n>{dgO@aR+z{Gy$}rDgx*Q9772b4&;p{>f0#D8?EvUuD**e3%lhLGQ1721HgYt zczqBQp!$n;hiF;=qeO9OGHL*6+mQ}m9<@rOiZshg0LcV=Qo|E<^^YBTtq;2~+RgDO~P66uEUfmXG37(xe5@a3TsR91ZgV<}3 z2v~}^F*;JWaQNue|aDr@nCYuAOU(E0PE~Zn=C~LpJg31g|lfVcBTyM;yjv zImZ%F!Ap>B)gT|2YV_NATyti`0Sx#cP~S`$U_mAyFZV%6+I$U&ad4T3dym@?drcx8 zS9Am&>keE_qR88ZrEwi7&V_tjy~P8ovymdedE7VHQh?MpEmI%4X=O%0A(&`?Ok0aZ|4sO~h5=8QP1pG27X!QsN4_?!q^PQq| z0rEYP-@it66M=&GNRplJ(#%3r3X@Nirj|c1oYg^O2Q#|ZR#+aIT`;JwCY!%sb_>1N z^)9biwjq?4*@^!O!HguV1qBB|!6rnx=SN&NhubXck!vD&yf)nes1FGwjC_MnN-5`{ zmCcsLvJckwm=3Kg^UInu_jhJR!Glwfg>dEH3w-78R;0W+)mQlP5R8`{2krFLkH#U1 zEF)wW!6uBH2BT1{Wi)`tV^k_D&E=phMcVNB! z&}K^`e&BMYW~66i=v`L5H8YfvVwWUmP~q@7t?a-^Kh_eaW7PcfpIW_JSS2 zBl`>Fjcg3mz#5`Iwmc@-UKU-YKvdE75DMYh03Vqp<{>L#E=KOc^!LU$pTLe=ruzk! zseIuf?Yr;r?=nZJ!y$^X@6w&RU-+Gce{`o_pLnNqoZs1AX#Rbh33tAO*sLzN6Sk9~ zYQMi%`yDI|22G}Ti}ynHO5-hdV;NeDFQ~n=mIC9`7{Bu!+&P6>WV1&mw#c$ev$I{U z_+sU#9Vd{Z|}+$SXu<@OOmL?Ae57=h#&6h*3-P=?_HQJ;D*Bsn}d&3+}#G) z?{tVPwIgc{5XCy+mjnNrVi04|haf7heaQ{c)yjLioh?FB4Zei-5GxF@?mePj%#XKE zK0`fLgFfeyCjYy8>~q3l#^>;Gff~8>3RWXEilu)f2N;&H2#EkgHK$7GiB*Ehh@+12 z5LCi$HN>H8e{UYrjtID<2P4rOw1TjbvG(^)QyUX=Fy4&wI68@pfIv**=U-;~BF z%96`bZhvZO`st@;ev{c)a2bf$qK4vQC~#-Y;M=CRWLW{-5MB6U}qt6M-< zG&9=TqA##3s{vM zM8$}tMavK%(K3`sj`ZpfP}xK@10sX4wvq4$lmr14G-NaI;Q;(gqXVinfY>y@0!jTb z0~{8D+oOquxTLHu47>~FDE5F6XCYe#X;ZFxfMAtNUnn(Y+t@ow_=h5P(>0XbjOaRzpYuPTw3_K+-1X(hbj6VKZMhYv3A8< zCg8Bvuf)=&2$4vJPp3nH6AKat)9fg{C>veIx<;SNrBC)Cv6t8mRWVa7LJ6WenP6x{ z*w*BICc`g&QOEI%hUp6FS1SKhJ}OhbEkk(wNtU&8dj|7oY+cR5(sAW$<$_YncA$)# zpM9Z(o_IhqHeX!!DEk8a!wTu$;6jBQ_3UbBv4Kv|LflsS zP|G=a4?o==;VoR*S3BFZ@VRm=f(Vun@U?dEV7|D32qzC0QArGjmMBi2Jy|BeFYn>gKmTj? z4XZfam_Rxz~;C^j+=9!;aM}TkoS;vNk(UsRXO;FyQZT`XR ztQ+|(#)28cjAy{cR6zJ5S?TF!eO{h~C1QTgtI#7!lxY{=(gaFMf0o6Z4Yb(;YjI4@qXpC&h3G3)qR7nHvn+DWNcvFl^cpG6z_1Bem5ZU zJw1LJ(Ed~-Yi`Up4l+@o>X(m(WR?8Q|J;AF7 zNAm1Gx6dLF-X#RBtf0jbvIK*^j0~eOm)`6KLTQ#t>UEGV~cj zJV7Nd+to?Pf!>YCCLhXF`Ml{O)=c{8KIL$~L4(F2j05FPQy(f*{w)nZs9ao>H(-3P zjZfyR*n7>I;>-e19lP@=+t_R{f41{k97$gOaLgeM25$sZv{rtnDFOnH>Kw(IM>l?XyekamH z{0Q^+R5hBI1X6DU07zl|@r|jTXNl4^bZ6LNP~DA;Ch|()FP~F>Rn9Rh_#KYh=;yO0 z>y%1);+!edOza)wM9Hd5R%Wp^DAn>9yH}amTz>l8cW2~9$1Z$zie`vT2XGCW5Q04d zZCI^#o5O^FFq1}Uoh1lio0P$DfuRnV*PZ09ZcOr%pGBQk z*D5J|j97MH6<~}wZZVIfd(7nXh)M!LUqjsyieN&KQv_)k5at9VIyC@;crSGoeFa<} z=*sO1IUzEK^sLLj`Wa`AW1U94u}(RMS$*`&$5F$j5LIKADle@|*pD6H^)JoI%`GSh z%X$>1wCa-(u!|yR9aCWi2^AI=OF^I})PT-xxd5Xw*-U_u))=ZZPY7u8Fm3jb10FPc1U$r+Hf|0h5b8|;MvgG9A#}D`MOW6Zo`R=ae8#g__y7>Bg zH$JItaq}98~kB`g8M;?9-QOS*K z*xKargfS%y;?{Zl^emWPvGNJPi61$=T|R!M;$-+_Fnz<*V(;errCAHdosPa&2Kh`B z=3xC-g5SH~{R9FrrajY7n2{NFU=P}z<`gN|nu!tD?P2~uC*NeqSxcH!M%XP}vavGq;iuwsfvopTH zkXNv+Mll=9+V%X1=O^5GbLrSc&pv^5eRSvzSk`kWztVm1H@)}2RWrIvTKF%MR=xkv z>$3~J?M`d5qf@>PJSLgyD_Bi|fZYq2O(7L|4=GmE#RMaC$Sy5lL)+_dCK%r?Fo>!# zC?P0_SS;*p4w40`ls7GIdRA#xJ{NBlyDMMrXg+uA>|1W@+P8H5J?!KoU)+w|T%*|Y zv)9+J-SGIs(_b34f##|Jd`SRJxiMGCV0;EU5J#PMyGO7)?NyD=Hf)e9e;QxrTLtUb zh99DuRLCdJ9MEm>jLBBs6!9Sx%4+p^Q0)=e zg0e#ZxUit{-8kWDE2GNy9KjwuC{KlS0x2GWa7LXjT@N&%EI%-|(nCI@ zE(xXQQ|wlkwYm`^y(1k+eAQ|}gcvS3RdL`WNSto+Tai);21sW}07fFn!!dJto`k<8 z?U4ClQ@XsBTGhRz)0NZa{k78s%=oM9!ac#N&Yip7EKe=FY3`@&Y*er0 zM9OXFG8R9{s-i2TS?s#19-i|VL=}oxUj>Cch^VQr9g~aGq&U8nX{OZ_5ju&%fkhOYtPF{KBXPVQbyFjc z&5txiQQmd?+5&TjHMjorOvebznRml=!)jTuwqf+xc`PSVa?U$(;1JkW$@>A&g z(G6Q}xrgN`Cl=3q?rBsT(XUsOHK_RhF-{aK*Mku;q3XfHB;^;JEToI8Nf>0oRW)I{ zhik&Zq&)QwHRyou;O7!)({wJ8w%(g->+wu9wFT0)Rb9FP<}&Eo@!TXnhg=(9iSNVq zj!Y4LM?A}!>}?{q8NjMbQ3>4FPyN)eDLCgkrds4ss#?9OFEVMgD|`HlUfqh(&rN%`S}*X}xc zf+QvyR|9!F+4X!}vxP-!41*eHjZu*eGYl(TDoM;bt2-D>hpypvr%CY0OOnG6;NM2S z?0`MU(bg=TATe{R0y&%LjG#TMl{e&&fT(_zmn+q5{-;%(6J2CGxaV&_Pda=%Dsw%$ zoz?yKUp}2O{i+A$gKunBw(mm?%lt4EvHXHvwX3pYb51vmL95aQsRR*a_#2Dg#y>-VMWiDj0)7)TsJamqXqER7=uH$nIxlIhKnIq`IEB> z42c3n5)`1;^F%vx8rrYONd@J@Som z{f*;pgg==q$9yMI?f0J znI^f_4M0;2S3rYu4An0y#AGBF4QKEHG}X#G&`a1%LsQtshSs{&T*oAObrQMa6(dk~?snuMcaCmQh6C(s^@JxL zd347hB1ol@{A10aKrE&@gRLGn?QeM8L_P5w^wf;mfkzIKsE2a3P+Ly6$vA1PFp}Hg zIr3RiPr+o%bLlY{(5hPoCvA1o2xWAjwV5=mIcJ?*SSVAsl}e!uVf!JM`KD!?3Z#a& zlw-|Plw;z-%oW#&U6Iw8g_Ny9O|{Vm!j0FDKBWkUrR`de<32sCCw>g~qsK1fZsnVR zKPe%w!Ucpfqs46Yh=}uaxlz^@HBUegc8kkxkQtmxRC$x@aU{m5Jtq4Zmuh&I`E{@d zobl)`{vUfI8WkVx;V1C-2^K-tj}b+g1IlOkw?n)L@WO7W&qn`xM~&jCXbSy9KZ!FQ z2k%CnUL?mar=*ZY!EG?)hw`KV)Cjm#0_N=O^t#4uK;PG?1&6t$4^vSL$v`CqjeC&| z72sg10X39~GYN<`iFQ*c`FU`$0M=ylyMH@)93^xFhU4=6>_>qD3FP zxp*E+`rG#`O}=jFuAtt#^O5(y9mM3Kvg6lJ_-VwrfsMBw8CLf$?HkbarE86VnA-E_i;=odbZI243DAJ7Tl6vuJpt_xL8>1r? ztX;InYscl`s9XB_Qs!$~r_rhIQ@)S4Yx`KsdyMCMQGc#Of6R!sNCLt=D8Xt*?RD8= zfX_`f>e^P_15ILivA&wz8sf{!7gl$jvMzd#*rI4A!O$tbgm^feKb&KDP+cV` zx!tIf4CFAg*9~W(TQb6XXY?>^T5Z?HRiGHdxcpclAEL7QvO{Fe9~>Miwg1ke8uwV^ z^EO^h^?vFr_VYA;{*p`)_f4wzb5t=s=#b{QjbD&<6Y)>Xs)ur+L~tl1M>ug#8K49C zfbH%D__fZ1{7f9S@k*0?hsTGlDnNV>(e|-Z;WS?Nmy*!R0PxpE>2~Fc_aB)zWyHc^ z@)GXl~G`uKT}~V@>a?Ed4_Cx)@K#%)o1?16g2Z ziXwjSMa%~(Z+LmhO&vq=O-=$N%qJes{Kz0VUdvlB4(rTBdB>$1^|<14i89={7f*5^7PLns9W`@M*2Cm7==FG_(=JkU zkJW^;$>cWB*+>&fjJ}K^qD$RWq_z;j^PQeBqfC7=ruDZh_2ClaUO3Mqt+RWn1}6`# zs*2&}qr52K*~4iLq;(;H!of(#F`1C^2=NF}A#IAGYuqtTel!8Z7`a4;;U@|~D35*w zNA_@KnYdvtKQN2wsC;oSi9aNdw+cSsXV^RX#h4W{);vI3CoI$!pVu3t1VI@k=y>>t zLG~j)1*dmRO5-E|#vMNe<5Q#cDX~X1UGh5RD74KPtYRz@7s{jcLmq!{$(BCy@?&aoh3nsed)4|owJkYbnRWItBP>PH9%koWXf zpzK*aJjMhd(3>HK!uSqu1F*q|8^4kBLve zuGHm3uk{A6e-tp;Dj#F*!+%j;y7P|i21ohUu}8jAK5Y@;8Tec*IkCTDa-;7r;*;zy z_E33pzH-4);vM|x+@T|)XOth5kJ$9vSRo6S4k1ed_8X5PZzJhF?D^5@agqqr7k1qyN&k6H$43} zdGw0tir!t7ivvX6xKBINnSq{58_@GM5p+~qN6TSQXBHGpxrr`mgHog%kw>3uUX1UE zLYgvNSHi#T!S2q{(cv!&ZqaSQQQ$)vBh+{$v#-GtcI$8;z$#5+)=mSwi7i}Azvf3m zjtij)h$Z7^5xhC1SWBZ$1+S_@jMllRQ#m*Ky1yh#{tcgrt9L8gABjH9mMPQ487pv9 zWjEiYN&p<=L(efjaP)#RH=~~}Xwi9kgpWCZPsPh%24`iZ@P|6*^%A5dBKL0~hCWp63FaeRDfq zr|^6hGlih1|6dev~ z(uFb4Hj?=*R7py&hXd3unXR(TVX)GqwkA%ik_TxeE-x&=n7vLA`CRNkK$O{Z<%Bn? zD31VEpsGswL2@>&XRqISq8SwpiHq3c$N{}5zMdONItWEWI3eAK?k=W(-{>LKBH zL$DyTno)7UU@`099TbefM2K~WgpyW)UlR#pYYMub#|A6?*ncY}0DgC?e#}7O*=E%%+jEy3hDXiLvv_XI$ho=nbfQmYbJ{Rp6m2Jw#7PA5y+>RusN- z;$UHkNBNR%cr(4s6v}D;0$V5D)Z?Qmij`fQcA#(bLs+D6-Mjr)E}X_l{o?#^3wmV{ z$|6BbIig1y`SPs1S{E}*76)p1YQ)e+{^hb5^+9{Fqii!P!AuM%z60aQR?xv=r3{U0 z`y6PQI7^0N_0{LD!bdzt6Sd|{fG0H?WR%lIEgSy4__WihtUUwhY#+d-kM^6^Q=MG3 zZHjb2ok+AjjB61%r#LF3UZ~>FDhAK*&YzW!O7|47DVX#|QE$M;G{o3vECo!HbvY9a zmCN0gM=+#ioRLa%PGKYho`y@-n%Ev$bsvHkcHT7gx zd@jmzJZxKY%F-9y;yTx^#dp8tiH>z|r*%Rm0ad)i=wQ~Qb;7wZ7IXIp8kmFh6dXW4 zDIDJ`Z4E^5HYex{^4_PFbItXD!g-yQenv-uJeo=!<0*6T)OC1@n=~*;yGTC+dw?>E zL^`|K;6`;ynyudpyA&lyY8PIbD#o@f9`RTm5#pqsSHAo%C~^EF`I+ns5aXWC9bSE& zty8JbKzq?bo?@t7AbFSyWnw#e(P5Ms2$48|rdGC&O4GlH2gF{6&~NiGrd!p2>X7)b zaOz_A3{>|})4rg2k&@>kEf(>@c7&)|e>aJLqJ1UKBt6<=2yIZ#{&ueQ(d!cClsbS4 zhN|v0j*rwsx)){@m3mRvT?Z=%bJjGXDxbxII-C}V(N)uEq%kL2rV==xy5Gw(A*0do z%VWZgxbip?e^oru@07K2`S=O{_!#n)GI+yAWi2*LRP1$ya#54K^hM~28LR9^gm?&= zmeGq+yh(sDKmlW~PjJ+bx!-4U7}2v>U;aSpifO^r86*m!H?hv>=>5^1~tTQ2BUZ(17Jz&T_)~Z=!7~!$;}YCfIFd=E@ga)bgkI&7Y>Qo2{&r`9y%E)ZlCQ(AaN%{7| zr^>IX2WgQGr!m(*&$3`NXUt90$J{Vu`WQfMo>e}$c$$t9W#~W8DhHKco_+4QXP;L2!O1UQVCj{5^~eM20pHh5S4rAsEBKfK>gE%b8j!oYojW4PVXI3SQO< zGBbMk?=j5wXjn7br%k&Y%dGjk7vI$6J~cO-9p+=7oyMg;dn_xPPU#=`9splTa=Ku2 zPC*cgBqiIyiR^aZM_X`GItB0lvI%GxsP+Y|tYOUkS%GjpajEjHatbcK5Mp;WPo6l_ z!JbjBwoe;B=&$1*^s+D@7TdARniIWlpLb~CyzKVh4$!0(o<*uBlnkuna*P1A+;J+_ z(%&toKzPgB;2wVfG9*8>hI@>Av^wqhP8~kO!eeg{&p}le==|+Ohbt`&2Lk|)fv{rA zbV1pKO$>=-Rqzn%E!6}Rkp>-73$igh=uYBs;a6w8OMljFHNtc^8$gz%c_~Kw+2?)|dBJ z<)^A_NpfcFj7dcML!OJ<1K~Q|lBVJPnM`SZ1aABv;rUE@_hHq+;BP6;1qe6)TIR7-hP=7ZhcI-jocP9l$>* zNep9>)g0C_hY_bPwhqw`kN7D|uv@AOEsG7##X^%xc zKW$?+8~cZC5RS$bd=)3L>1cyEL0KF{MC}RTm5fyH5frq-@8L_W zgkrtR-~eboBo{yxXkGcZl#fQ8j8KmDo1IZ-1t#i@*gNUCHbL=;YJC#byhIII)c&%H zsQjg~nE?Q)w2>n$)<<#-vY8s*>wsO7BW+Z6R4U(ADhC-Vqx&mat+Xz^ zxwrIs`j6@CDdpO9T6bu$(r)y`C(MiVuv<)euS<}8!0?oHhzN0jhCDFpBP_%ZdeD>k z!C(MxtKDm{TWlVy)onB4rE>_Bw2LmP*to5|Oz0h76B6fQo#wV7{7qr?EXSvHJ+D&h zzb_{sP6ue|OO?v$&Hz@aEiR`2cV>Y~x>_t2W&D(ZGQ)H5>(ntC)NRVW_;rlNH3nrd z*2x7pV>~-S%ZNM&RD*^BfPI*dqCe)*`8(dT9*>Vn$n}?wHd11H7LOfa}BHH>0 zVZH02=>GoF zp0H0~4fd1enfp$iZ*nz)7OL%AED}X}mXjdCYY(DIBAf*|5Jo+J^Z^g{zWi>+x)zmQ zcU@@_dv*JkXLhj0=Ux)GH6QyyDqM8=bvC#?-PxY)-nMna4mRSsm!jpeFn?b2rMdII z`ugmD*uk^^MK0rJQN4ER>$9KX+P~GmzWj#&6`e$?*aPvCfNSvT*@XGoODz3&1#uIL;9lOgR-+I_U(h!G z0In+FP}EZo`1|SassL<6g0vuohQ;^{zF2i+6NREK{ig3-r zLQSqXRhr^8eHoTcT-JQ-d!W}KWgfSqzvIMa$&5OVZUI>_q(BR9liTAJOb85gWSG-c zgO*w#mW%ORGmEKYklB$QQaNYMsPdf?3gKkN@HwC&maWK*vcVgjGaOAeQ_ESpWkdP$iPz=^qN- z?|uEPYw8#F8(hoAE05#fW4fvus(U|npl&;UzSJEW`c+zZ`0$&y&D>ryB~NL-*lyC5 z+h=Z@`2j?CL=!->JB|4_BATE;xGB;tGc}x-m!6uF3LwBj1hP8{5xC}XvIU=g#cz_eWO$Fh%X8P!>HT zItn8r?V*Cn9dfdxCPN$dXaea!&dTbyHJ-^->kdOvUiBfrNRS-iGr!hk-k_Ns}&>~d|r>LaaUA`cXg}NAF=G({qp-e$29DD z`{~yY{j_srdESW8uir54lh=;ypI@>+IhC#1_59YAJCv3gr(cow-e22O*_F2m>jdr3 za1OhaYK9WJ?&wI7)06CFC=d+mg&{N9o9p!!Ap*L6I8cxlzzgY67O+nVZfC}$pD_Xw z&G;~Acj6UWEgbP$Hl_yC4dY?hO;Cae{-6jkQouY3s8)${+hB7?CTcL53OU&k^o!EPa?oYB%M@ct za=%82Tu^RZGZHhM`(l@ZrKTDYwB^dM*^G!LD=saDWY2kjnG4;Eoeb(GB2zgb zVsOX08{Ci*Bq}IP3-%Ul8G}ol^Tdyf?mNF?)z6EY-!9oWbm7ZGs>hsIUi$Qi=Wh=$ zXSyf;*7CrEO7t0JZF$wiy9(CaA>Pk?<-KPqr_uK-TE5Y51$9wvVmMauJ0g7)eGxX_ zx&KCN84#?Q3*4<-tx?<+cOS(LqPyW7;dfu)chACKm)|{-->tUY=5Db&1nJA~?t{A@ z*Lw1#*7obvw%8LEp*DA8j=O@3kAWOa(mCv~DOqmBg$h{)ApB)p(%~1f$UdK=f1}SJ zCne@6#!Tnh=?mV=Pa>o((H`#PCQd|*$l$^|H!F2l@^cuBNgngO^2we9AFcT9uM-;r z+bbR)zIo%fKSt+|-;`;uFRz+8Kw5=l#>h7xAKA(())btn=)xQ$m47!^Fz-J)b(->D zGgc98bV2+A@SqS4V<-G05lX%p(E=7AKRBE`gw?HQM9U=Nw007#6p954F^DjB5!zi| zZWs0{8_jk#6^j!^U;a69WV0oEyUu*+{5JV@$5r=5J4r&`T{!O$P(V1+;AcP)g^L%K z1%x7V3@dP#VtP=F8Q>JsteLVodO~?iUawT@=l!vT}YK>vx!ad(tj` zek^)WH-+SP?Q<0B7q)UMF!)=7b^tjz3e$p?h1c9}>E z#Hw>KfOr(i(BMr(f|so|Da6Ec^VFk-pO2tNKcpj7EQCmuWgtcX`AJu~bMdyhU6&79 zy5pq>w#}Tk>46uT7mcXT9bDSEUq5luRYL}k?A*6XJpADPZFSe|TK({wTQ|R=e6_f5 zpSo_{1~B8IC4;+MF_7jKmO7~xwg5jU#eozHGb$CB15gC41~~l@R-+OM^_j~n1n94Y zlK}0Xc8)Js+*;Oc|E{USukJH#->XxHH|o6Ay_)1#-z-q_9+WS>vNvDJ1=ktDu0d_S z-jKnr$4-Bn8R&OQh2VUFrS58}-I0piY!%22D=s`FchLoL`i+bf*_ zZ=@$+fY=FHOe~pyu<=_qc(8JvC@(xX>a4PL5POQPSI#!PadPts799T8iOnamr{QZs z54(dR%!rXmMpqCEgfbc6T6!Il63j*e{Idp3u*&M`$#{H1chEW#21V!#$` zEXimvnj{fwGHC&7$PbON4g12QiE2m^EQ0{)kq0Z?Z&tdqw{Cv*{Q2|ZXVH-OnfTw) zbhcU_2_Pr2fM$3oA zo!DhYAqASbhEWMitI+eH*2%UYm7@t9GI{Xu?ef=z2Dxn^wV`wsceX4<8wogg0atCvrR8-eg)6jEFJVO&6Hps`l=lF6AgPe`_9;zo2t`Ko@z zcD)|0_%<&g`X~^~#m{gKTVO%V1VW+>-tD#OMHRshPq&Bw6PS;lL#W z63ZznDecgqw4{jbR@QIemL9V6+_7N(+`03VGH&UiXIaG>@dD0Hio}3i<<=SOP{?os zi8|5awVMnky_>;w0NX*jlu4vW)DQm3`K;OvRdiQ5SlEXxUrszBRNko)<1~mD=ABdS zVt1XHr>xMM${q8?&mVhiwb(0qc*F29$x{MvfX*7kF5)4ag2^}qvteQL1_F{N2rx9G z9dNBuN-D%uU?PDi^+~>TD`r@YNF-)N+dj50=)L;4+8ek%HFgTVPHJ(MA&;;G4HazZ zLw|q$4k=6>l9Sf8LNmC1QW?Gmh z;rE~T`%~9^Ja!)mNJO@TNDOVCy%mFTeY$!r}*%^Zk2P z^qthZf%a%utl)9X9ndc$NYE0HR0oN|0C7Z=(gj*Fni8!mG&y8n15fs`)vQ6O6W1zl zpoJZ~RzwTHd}y2}xeQ2H;Z>24NAHt-IZ|OxA+&U7y4h*&P>f*j%*_1!6k8|@$23m} zi_Lp0f1+if)#0WWS_ea{KsN;MN>Wg{g%hW3o*pnhm;lsq#u~9jOE>kY9oRek#$!*t z-2bZiTfJ9w>Dq14jk5}iI_2h;w$mM&GqLB`!gk#Uw4b%&f!lgb>d<)SgxjOjin??u z8q&T!d%8HSpw#CnElexMx)p-5jzPM{`HPsIK(fw-2ntxo!r7LzG!R$7n_>LpMFWXz zE2c%&g!$reLo~{rsNh-XuXyaj*8?g_${x7iXzYLI?f30`bi*EHOL_0kT`Q~l%4JHk zV~>Bv!ZD97T(bFCxPPz8UOfx@3`2h!l)DUjb?0yjSkRvUH0TV--FeVPi-9m%2^7Pg zutE1n9OKo(WZ@R!4q*wiL>5Q7b<{Z=y}FkO*7}AUX3V(mx+zl@+&+H%?7L@Ao?Lx* z^@zI{FCNh#Sp)qFa?D=>btSM7w&z?Md;K0d~M_ES>8M5e> zQKJlQx3wrOh!U?>zb(5Yue5LX{yp-074}9PT<=~zx|f#NjI4cXlGVUEcgobua+mTD z33+NHHEn)+&yOg+m#y5ySQv_T`k5Es~)|2LudQ@L-h$X>;->5{DK_nkduW({B<9=z2L_$3M;N&ev53 zQwdqub0`ua7Qn9$hdnW?8qoJ?!-i2Ws+?E~n)m7(Sn->>4_L>kzX{Xd)Y;#f8Xdq~ zO`kKn@)NVmFHgl!(>~^G?l>J)!I<+_=DM_LI)3yDKKSe6`STYqo`2`P%FM<1VV`fA zI-^7Tt{tb2J~Fp=hwOI6U295mMzYbJQVWB_=S`GfXC0^S-8)_R$KKyWR=jWO)P2fP zdV*e=KK;@rC^8~*T*U)2{i=EVWYi|HQXi)YVHsfTK5Czr__#y@F93hi;MHda?e0Hx-N>FjN~#;W zru47sJ)pWzbw9ngd3f_x(sND4rM*gq-Z^6N>dx)955A(fd|*Z288uy%vpuT^^oR_o zRwHx7(-e83)$^+*fS5Ls7n%Il0aDsL$t zoIGhwNp07$cEzfZ;~m$JTDDyLkMi#N&)@!$rM7=W`s}$qox9w;;OoL7fIzK%W@Gup z!gi@?JBN=R(es}E0|$NeYeq=C<>&)Xy`h{`P7;C|esp@>Taa0*B3a1h5de)zAkzVu zW&BQ$2YF3iq}3YDI&)p4jAp)|HIIqWT6J}j| zW$*UE{PN^JJ1dm;l^`1|HQf8lw%#eHtc7{kDQh2$9uteD#aOE{)CZ#sA1|^qrbNok zNzOo0Ala8}l)~Z6Od|k(jBWriw6mdPRw$&iB{?lN1e)0(kmjc8ki{hEVh}D^7T#lZ zfnr)uD;;a>iVuc|V$yK|8xzzY;30)T%%apOFBCgBz=Swe>#EKUGY>uY>8YN|rLFpJ z6{Y8?vPko~9;3!L)Uu@7hVi4kAAZQ}&D)OxHtFd0X5}Z*`P|0`x2;?@bMcZTi)TIz z>3tW(qK^zzK^l0>(EDbyw^#$waJ)*@Itcr{iOPk++8yVxT(~1%K|zRa;#dY83mp}( zu4ZZ$?(pa)xoc~6YFx(`TUwNxVd?II%sY-jj{8SNf5QjRqoSL{dPvda<3;2L+`9zs z??Cxij_c2*N3J!zA3I%D`t&Cv`-}CzL-tozO}VW21hB{C32?F>2hr!?t;p}z9|xE9K)Ot)s)iOfGClPf4x5cq($d{X2?0OrlPsZxT`Yq!`2%hZ0@*S6>@+Ei|0cQ1DTLH$$jm@Rd5EM=4i}c`f})^jy07Di z9R6*(0w<0^T*=eGe%P2=om5Y<|?;GiUa1bVSTfDY-RJ_xU?hI^!AqV6?FoR#X8`-Q9%FV4{MUIrK9-P>zxhY;~?s~)wqk8;O zX57ZytYg1^ML+oOd17+%ywzHHxoAG<78RfjR1r26E6^oEXjAEW0K6U{jV0uc|xg!^!U@qR)qki(e*S6un&cMSM8rGW`!|AbA=po~5hC#N9dx!ZMj>i_ z9^T=2)frN-)qaLr$51BiDsXpvapv3avXbGW7u?KB`qyKIGpD@#;JSzEhJW;qcp^HJ zFh526EdTOb{A)Lj^EDr7X=(P$CzPw8r6Dry63$ax`G#l^48Zn~SUH2p_D-jW7) z3o4H_!D274<`eQ;$~yf9>;mu0I@D#dxI}2q2j9o!a)YwhUp7E~{5f`ow|GwJawyE3nCIo6g%+hAKHN^KfDtUoePh5ewC+td#Hi z<`Ww?HVoaUe7$mI|9X{|0(FWif#q{f*{9`pHTKRMizNiN1!e`|H&N0QMkq9>cf>2H zQf_QQ#c`p}bHr=Kc)hK4ly67em}kN1g+5l!i&Y$IoTT6e#_rHrN`*0zlC)HqRh_9) zVPSs0zhg(Uxf4IQ*y~ z1jN#1z=@6Q3t5fMZd2#85xaUA$6v!bz55U4+yO@=XCQ=^D12WhoCw z|NTCjrz`{?!4I<6C<8267zAV;w_m4Abug${X2i6^wg=${Ne9UQ)j{61(Iyy?$sfb8 zLhp)U-G`T-q8Z4DLh>H|(>8!F4hjSt3xoa_dp$K=>Rb2Tv)psfIrp3#i*WgH9KIB8KaZk$ z(k+-&Gank8sSE|P-4$b~&>FJWfb30ErI8g)G0&smjDIpp1bJwuwXM(i!`2ITUpiy| zBAoQUH}_3C=6|?WTq!C(eQ(Ox9it!ogHN6!FM8@vRh673twr=SkNM|_ZqrW&yFK;* zut6tj3URuDGX2+OyNj}r#0*i1$o&h0w#`^clxp1BNRM;Bu9uZ#=SIj)J<1RndK0h^|5J} zEm-&XuYAY8HBQxh__x}ML%rwE`{?SchJSOmNz;d6BTPr$kh2rzDl`x$jNuuXiVODf zbPv2gDC08}CxPrPIDw4pV9bLZ4~de*>Do1de~1g`2`^W`g91u@&}P|sXo~*rw72v_ za-CQzhfgjPU9b11Q?4@3SN8l*{go-A_3Rkwn8agr%7^SG@S0^v=}v2!LqYu(8%YK) zjE+e3=d|L)zSHK$86SmDktTa&vKGq*mIYBz1WzN(0d%;BdWD}LWT7&-ML$0LE);e+ zj9~6}vDa~njPmBfJeoK9pH8333x{tQJ%M_LwE_E^=dpt2N|zTiNEjB6wI4{^-67t;8OM0Yff)q^P3&|S8pTrtZPvMc_2Ydv z>wkG!KZt;Bhgkcxn8U~_|8i2cUmVaI`F}ouY#c_G*Z;XcTp-xZW0e^I>uD}Dzv~ix zF_zo{R0)uLdFgIGW&G4pK^714EM-)L7FN8P9R$wcDs6h-{cDB#sxA=#)=27hz z#g_^DaPJ5*T*KT&nB!rX>H0A$lIZkfjE)DH450uj=@MQfFXGYIUWJUS-csaOrNiCO z+!f(14Xx|8r*$VN_nl*Y&|UoF4dPSOGQ^2GtMAbJ_9!Yr(?!Zp7t>hGREw}m}$}dzcuD~sc&J` zvT^$RmYDut>*DImbbVspSz-NnQ;+P4V#W@Ay%@Xf*Ck^1%$fSyl3y>?H;drVzUg{z zu}AISqQ5IY_91pC#Fw*y% zF|q(uvT&{_uSCHZXPL8XNUK~}h-ZEINI*NZH4UpxTAIBC=d+v$>POK}DkDQ&%i=n@ zM0TbCfuxQG3Bc;b7ad7~uJOaa2tZDHu_ZMa`IksS$iwfdjUsg?SX%Cj3f} z{nz-(p|!0u*56p<9^3TPx7!bXb!yMHWY)pAUi{U0PcNEu?V+Z7T1HQ`eW%^!Twk{9 z>KmUy0>Y=)?mwypLu0Jg&?iuREZc5-bc5Y8bxtZBVbc(8(Y5(i_e^Q2$2LnU#{8CB zr{K)x)b>P`&_v?2K=Jy=OIenFcTB25W(X^J{i9~jF_0Zlu`t?Ar|HfEj zY*1@sqj%uIeiFHv2e(RzbL{=xMHK^Di}Jj|yaBDHrNN-L9#uQcMZSDyH?lv~MAiUakteA^4+TUMt;o#QuhqZM1RgpF-*8j;XpLpWaudllf8DHil6TSGukn zG3p}g6!*G}xn(z9c)`*FN&&NFdoUKOrrFnW9Cxq(-9w2!NCsnOipeQeFS#H;w0_!< zIA`O3=IlA%p9Z<#E>*=Mcd}Lw4hiaH_RQW)zVy^N5c?rd_-E?Jy zF?CWASu<}pT1oJZcBt~v!CrN-I2S)t+nOJI!P}POdwSb_&*sY?~8GP`!AxCR2rJh5fUu5Vk$ib27oE#XcP~iw>Di~3c z=h=VWQ?M7<3O!93s1VoIv9FyhQ!r4qeRScxOud(D&XmdXT;k=-*`2LYHzH}bbQ%81 z8|KfOH=igT|E!zYp5BLIL{!zD3Fi)SSh`$b_eBu1ihLJ*_eO^{?#&A=ru zFUBUHm0Bt->+OZgqaZzN-}*!~EP#(er|l|AYy4W%*7*1Ci@8^pLzZc<^`WX7%D`CC1nO>NW+EC)LWF`>Lyb2lDi}Cj2(Cq! zj8ng7>=b3J;r+MSAKI~?lf4f{;FYRf8XYq0{2|RX!IG#SM*jWSc;Ecsu(?-?F*na_ zDEP`-8$Wprw8*nW))@I}vc@QvTZ6F1(0R%b8*Gy2DG#xaXNB>MHdonyj zTQl+THr| zc{?A~220)&1NC5^?|;)WG~Vaj#buthKkGY@x9WNQDKP|z^!kaxCrdVMd-TEIJo>u_ zF?(x9%$q(=UUFTNpO(S2zl z@CwaHm!Hi@q_DgkGZKNQZK#7~x6U1aT{n=`VMb6b?EmbHbZ`Swq0M&IvuqGU-_A?7 zWfZ+7nt4u!4(pnrIXTfiWe2u)FcpI#X+{PwI&DTmrb+nWjuvC^CTY!!PF-v3YHNVD zTZPO%)!y>r++YUkRbbmwS}IA^h@cLY2Qz|5H1Ecd*Wz3|iicViM7{Tp?&qbuci#SX z%MKF)u_sn+7A00fK1vi&9z3iKS=l(V%P|pjU7@)v>2r&%D>RqCmCwJtQ2!9S`Fc^| z?%%Vq*&~WY!--`#ugN;QOWoPoB3u7DIBi-;KMH~Pl73Cqf&~>wJv9JCu{6*lQrkD6 zU#CC+>aoh|qN3_SuwmUibnsxLCZN22Ypov34vew}nU-snBCjha%~nxSUCr73>av{9 z+F(Vs3(ichmT^0{mY>J-w}j>n0lHReD&h@$q9q5vV$c_7F&33(aJ@>tyn{-A-f zc^A7?dcbD&eEVryb5qxWY40EV`={PHGyNa5om_FBw`BJW4G>2K~ee9*P^_1#E3Hey)X4+y@EBR(c&kry5^z6@L3H_eT>!0(bI7gYLyO@ zTBVJN;X{V?>@jj!BHG+MY*?0BSl|x9;uDfVppS|FLZMV#K@A%d9NN#;i`p({SF77sO(aIKGfAX4GqO!KK zWnjxlHu8phC5^lTM+|OB8hLw#*~oib|8CwzQ|AcJk01V^^m(}{lo9RTF!{2kKwUt8 za>9-FQJLL}ydHO6L1Q-@k7v)4ZI68fcIgS6A={J~(Z9JdHnh2>PoL&yr9911Dbr>m8~28Mg9r+~jqjm<62eV5}Kv`DKJ9@nt3BIqc_NM92>KG^01NO4ls<4{qCzIFSvt5!Ytgcy}sc&LZ|H#nn? z=zp3w&-OJTCDuK1_S9Y#gq7_R*VslmyB9N7V%=H|NeKUhy)XO|3F($Zb74X69^GSc z6nG&|MfUQ{TkRU}2 zD*j`g?0@dgQ2cN!m7D)J{-=EL?Bm17h^E$YaBi#|5s%#6a8|?Jk@)cco(JIQ7$jEd z*N$XIhdj4++jRWf#xu)459=n_qN=4;i9Y#hd1@$7SyWn9R$1wn3*bzL6C_{F%Y)uZ zrcS>=TKHNxL28OZp+I>tj+6xg)qYjDw7fjS8-iJZRf1*^^Tal$4m3<62>+9wX!=E1 zGcl(VTO9}>SVCD(Ya%~Mk&-Ob#-5T+Gbc9c)8IF$bi(ET&>GQuzuo8cSkq=s60z6b z*FRdhP7aQUH>_{q|A%A!y>{;9`Av`z3)^nb?$x`y|1NQZ2oQjqrg0A=vz=alY=B8F>(TN;S+-^ zWj|tMDOH>@7Tf&msOHIsUrrtO%-B7L#eLnLY|#(+k`+(Lh_C4%x<#c2^vLSb}{P{NIWkQA`=)NRW_?+g?`w^h^oqY_D2F5-R86?M^gipjsOGG8b zRxDa}t^StVi#6R&8HrF&?6<$&u&uHUenP}#pZW=Przu;tXQy5B`7Zb(-4l=DCCxvi{^E^cuwz~={5C5=M1|3X}5Jl zWnG|Y;e`#|V>w0fJ(3UyEqjnHV+{656$zJ9fi>FU@dCi?heGLZ7|dXdU?0sLMVw_K z7zBNxl*vu<+<`3!1L@yz)zjzO#&m1U&qE%fH%m=Hz-buJ@Md_ zBVtc*b}k%!gP6;lBYwl_i?AZ^T;7F3O=$VFvaC(-UgFiXy!=LzwGP;ob|Xr3EjpYB zy|YQ`k9F_@?8w(A1`UtZHrLkXTr{g&QJ`-iFi~;mr03+!nmB6Ks5x_|OdLIP`gxNk zO+Tkk_hIp~&+av3$XI(_WpOk=6e{b|#W!~B^yzjjJHuyD`BdiXk#Lk04t6WRdadCv z>{jST^4gHIbQ7co+!N;a@kvMgO8w3Am~G;!yvYllF7-zfrntjj6xQ*-@mc4uDPK&O zZy#puadu0@Iyimr_yxA)AJ!@IBlvT;wMTz^HpDvh#HXG9w0z#_&(l7&KAikCigthc zQ}Qov$+~vxgxcCr_~m~cn>L; z`T2qS`W#ttVr<`+h8Exhm@QFb4huI1810!MbzOa%RrHc42vdtJ?X*HyrOKQoXKA! z2a&M@D`3=&kU<^?Q`_T(k*tp_~}mHbiVSYogfKCJ)LSN8}2u@cLX^3(ntYQVB+f^SdP|28M#M zE(?MOP&PK*Mgy~BLseRWs+I{QGu@)O-2QZAvrYG>m75kA^0sx&qj4J9NX{_6-%~iA znb6r79Vc~Wp&m#L&rI?xYHrp4x;mNaIpqKQr@uKcT@~)M*7?(?IAj-cGY;VF&nH(< zYS&~2Xz}3-za4bv^_R3G>AKNGKVZ zSly*e3x3kwN;(#KM8@&rYN+PCpEf-FB&V3PdDleI5y@x?%Iwgwh?1z$-$@lxTD@8{ z8C4Lh#rg)0lql8jqGDbsr6l7tCvt*vJV!2e{UKX6a`@&uEZNxzH*w|JHHk8%B2L1A z6Kay=l3fUtaQWe*PR3qAp#EaCgqLE`@q_9WM$klgD&gG*L`WcnBbh&RgEE_=C9I9_ zzyGS zqH^kYV;v zX+<&W)Mt57;W1DaD9*{m0cD(0%Y^qI=PZi{wj!e}v@(nfIvF$jFN_a^fvU{wHjU17 zs?Z3LUA3G`)lxDRV;jdKRv{;H=IJ}w- zeo;Zq$g_A5kIhCVu2}@Di9EY; zkp8-|uI;{AckC7ocdt2d_nb9@R;*m}z^8IH1vfR{hYyJ^JC_WaSEX_~7HO z?4zD<)K$(RUnsRE>avii#*1U~QZc*=UN2SIQC)ei=GMGCup`a`_*`B;&aSG>troZ- z48ve*1jKY8zZ9o24N~tbxw~Bai);y{$-($Bm@JQF^^y;6yZO?(#SND&)Av@_>u)Iy zx-@9;eJ5_{|D>+3j0$^B(Svu12Ahs_<;TBw-l(6XoxFsKKpxCFF~^)l6BZNH;!z-h zv;5dpQrYATr!xydE2ue{?E=BM{B9Ik^Fsd@9=|6en5wcyOAO?%A%kg96l`j08W<2? zwm(7WfTEy>Dj_BEYruOYWGt)9vHYc!&{_A#Jc8qvjx zm>ruepU0+9F=Ll23n7Eq7-SZx2WOpdR>O^894w|jm&@blWX66qxoFb1In`sVn;iy| zx=kaaLfU5-35~BqMG3!9^>2RNxu}G7eS296{cc(*JC>F}%5L~KCPD_Ho*ZIDpMcN8 zt}GYGn9f5KfFt2rk6+RY)l2MKvc8T7*Lla2mPNZJC)4 zC(hfzd1Q4t%qoaR8AKje$Dy*-z*tX7ZqP6dl)>UYP=9Avr+R7)LQNtA%8gkXkNN~H z#@Yy+P@j;MS#ilo{-mb6kq;7{Zv+@-B2ORoWGJtK-5HL@IQ%xo0>}u`+Q7mubPFe+ zJM_$~_z*(z-ql9U2L**K+CFceUHtW7+isRO@UM|<^-32e!s&LW4LkEpB(=+MrE6NI z1CO92n#*rPniLY&c|XQQVX{5W!hS1TAwbEgAHaBn%W0OhOswX9+Eh?PEcG=hR>)drc9{EY zbQDw!ot8R?5D9_O^5q%=k2Z>ei`MQ!elIGc@$BKX7wR9=3@#NtR(wIlG=%!Nn6kKS zzp-jqD>0uwX;LEWMAVnV;`Sl%l?uurcq$9G-04W}E~Cz*9RXHQIzSvAPr54OkcJWM zW-MIBJo03+BsAt0!Uf&NIM7kjo1*9;W$(a$G`r;%C~~V;FA+B;CsSW>Emk*cc-1Oh z|9qSHo@P>>F|qAO3s}X-5BwuEyDVu&B8p_w86KMhX>l@u^qe%G!vY~FAh7X?2la$A z+&(|@HA2&)UT3&i!=v4?A;6hNS!*ECO|rtclazZz7-qj|4Ys2|UWcBOve#YT>$a?f zBX*45AF*5;^%r3S+F)Jqo8P>qZ`ZftsBV7SDzW!seUoJyNp4Ut)oCQ2Iv3S((yS9VO4H-^Z7NRm(dqG%W*4zvxdqKY;=t%%}`0-k&(QZON z(Ds56fF&BAF~uN4S207V?ZoFdNCr}VX6nnpLS-2yWqP+j@`^l}DD8yFL1Au_?SD~mW8Ol4F*#>cHz~=KNk>-Sg3Zr}vRk2X&R#Wq z#mZ~9zVk`9$q3SQ>91SHE9LG-^taz6rPG%WrSqLFuk7=;ouny6=V?{YRogq5$s!s@ zp2uVJCcN3CfR-R@X))AKP0iPuTl4d?kzIa3YmUpC{WJaZv;qi8semc=bR|zFk$z_l zlvBwk86gf8)b`He5AI+Ubiwj_?zCa*Q3*+Tclcf3U)TT1Q_?C^1-)Z~j&dYatw%4m z+@!Y=pDsGJ&H59p%poZzElKn)aVn8WxH?=>p=B3TS7Rk^D$umXim+52uC9#)YlpT5 z-9A_cd=}KGQmm0kX>n#T(1P0TD)hYGukhgnQ+39vO;Ai~x7R*2`kb*uAWFQAEo>G? z%fo-#=@3kLiQ&g%t1$F!D`%l&=e+gc-;2}J~vHJ#2P6nD=W!Fl!hI7vQShc6I)>v7dOtCAg;}v zs!qgAYeVPBG9Ke+&op0UP^<-p(FXCgKQ7@rhWL_v75n zyVh;73|leu;U}JXsB81JSB*}PJ`Dd5SG*12j3w*Ca#z-q$zOAX^kiv(abIl2Z;IC( z1uqKa-D*PRFIiUcC2R^Z(vc#SN_6v*V5|tqZKYwz$E^HpC6K@3Mc{RP0W$C`Fyy}l zbw+i{eHun)eyTW?jyy(%P8d2 zS39y<^GXhqy?-30h5gJYSXWxa@W=CtGn^G=+eM2$6xn>f0y8_#xuwUBN#eL6Tk&%0 z2iCfYiTZS#OHM-#53D3ubp zd~}LL!HES6Ho7hxV!(k6h<|Jp{dAzxMzz6wnRY+z*D+J3=udVE3X|DcVi?E~b0I>K z404>BQ)h9&!G2IbBFaynz)$pl3Hv9Vrx5B1_Hp|$gQPED4kgT38gzUdPlpPHG-7VM zgGxtPak2u6o+Cq5+)!+=rAzMU%w8J8ExCDu{tUh*J|dm&=dfDPX~kQ$r{sgnc)TbJ4zvmsX>D=1R}=YFOgv zl0Gx?yBP%F#Tgeq6H=}yrKM4^QeP*=zWbgStKa?^c<`I2j((+Yw%n-7-Q{w9gP78G zMBl__>E-$gLlW32m!C@-jJ)xZ)sesvopc#n7EN|%2H`AJY_b9y8%$9WWCI=XAdz6~ zRVXev>1+liXmqxgi6FVUo4>_66prhzUo7Y0p!8*iih$y7^}1wpG7=gbq{A z+%Xyh-n6P&F9fCZr=o)TB;q8h@N^71Z7F;g7bT)dnv)GHO#qp5sx=C92$fVwWqCMM zRO!x2q+_2^oSv4Rqu7zNg7WgUQrM^=!eM8El>s4Y`#?49lWC_Kq9H>asf<)0yEUa8 zPzXCQ%Akzn9Z{}Ytl@1#(rn1b@k z0;or?_uea#^d^Tr>tHa?jEi>Q@fjy-zvvO)E_=_8_+kJO(JDT$Y=Fp-3o- zCrc?F)T)>zacQi1G)_`YP5)CzE@>aHXrj__Nab!gUXjQHLl2hlz%gzl=(3{*o@gl* zS?^)ZZ_Bmbv1;aXlUrWAUT@Ri^6I-n2XiOMl@qT_6MN)E@?!`V{rk7KUvq0s-B-aX zVLkT2q_g9VEnh8IJnu@vCgdVvvjS1E%Myulq%#j?!$=0KR^{X%4k;r$yG{iW*=s9; z!Q9GxZ{?8Isx()^g7e8a77fLbB(J3?zbqedBV|A>4-qv4PseS0;F7sSlS+XV4`?<_ zUkGadB?L#A1dwI7)I_!N{Ezy3d1uD(^F#%+|JPOe;pGOd9aSh^o_Pi|6AdJKrRh^_ z3zPVUG$wpw!li2x{fbLUDl2`W5H1^Eg&)WBQIy{23prriuvV3n=i}&6R(VcoQOGuB56&lmqgCK48i)vh1DF1GZ%_ z+<~HLtynF_w7q26C&ITUymUs&`zu_D7k9T))gzX^XdQT4IW22b=G}Q z6&%*(mV^X~>qcC4 zbGrq0>=XJ|cOdCqo`3f?@l(#v%aeA6to%uXp zR@n|O75TP_w^9ZGW8qDm;RQ>jy5f`Q!~#2$H!#=e+p^JGgs z6UDNk(Dp<^y$PqeJrUTRC_#b4*-7sF8A6>e{WwZ7D>*pRKQd9BBc&m2wPN)kz%S2}ftnR?10$7~JD4S> z$u=w~9tbgyd19S6v#eqmhV_p4!jcRH6Jo5rfCafgj0mwNZ#n3zT;G`HMa{d-Vyq20 zGB%s^^*+*d!_+&(vQ&RyVcQtgsdxanGK^ri9Sv6t-wF27z%ODSf;ptTTZsEeSF`i8 zy|85<$xBhYOe?gxvR&4E4_vdS3pCE^fljhd;7naNg&HN+FINJ=AWgFu;S9ZGh&EfP z8O!#OyQ${YclXycc=eCPrr#Gu(@HCApAZ{O2{*sj+n4B0aeU5e{ZGQVrI!!gH}KAD z=ZNhPc4yWItSd<)fX2ugfn;a|a;k#kDCCG5&-Fa};|ZJGghUj`5!JCCC0d|blH7tc zQyRtR8Wp)bb*_=x=+2dAxeaM1YJyTl;j=nclC;AoiyB?OVoe3#u<6L=XOp(@->9u& z>BIf3GW(fnXfCd#=3?ZsqPnBaMn93z4gEChOv=(GwCI6mOy_CA1&Dc3)xun;Ed?5) zb>LOCXZR^C74K;%=_9W}Q0WKvfA}Y*8R5(RLMXVJ%RO`!9qPOe2=dBUh z4~ntkTK#rJ5N**Pu+(I{eaC})(%bTOSPqOED4ge=taG^%pgvZCW}#xc=%<9^;#qdMNbIIQYDQC;;f03ciM5Ejgzc1( zB&$qnG>UEW@hW-jMVG63FZr?_!iOFDC#R(E_3!1+t#@93(KEBgytw!Bg>#lEkHKH~ zt^S4nhDiSoJB~o)tJ(_C5YHrGT>g-70gQiRV!R=RaUKO>T>cwjLz)TIvO^7NL(_yV zidGC=RGKNqa4WJ1rdlzyQM4jh8^tqj+@kZa!4&08#C#p*b`W>My{R+X>5*!u1<#aI zZ#aMpy?N7UrI*nPBxF}SF%xo$VkfI?xw(Q;Q)gn?&CkrU;qFkBz;Y^19G-Q0tqNP& zU}Q7>5bf@Wlup}WBLsUTTz(?Uf+`}VCCR`ja!a9x)r_{!l$Z43-=n_yb4W|p_WKD( zXFUASAKqH3jKvmLdR3pI{^gZFd^1egYa1`VblL?NqSO_(@==gPdC~~PdFJJzuT~l9 zmbd=s-m3M z-8rL|QMm$k&-G(RrNR%Rm;^;nhBnXd`YUoTfx4`)27C>!B zO#D`+@XKv5ez^^4CfXn>DNj)eGSyi>qgHSh%%GAz+=?RCq*@`GUB^;t1ocFki3&?Z zvtg4;{$Kt8IuVrhe>Q&rFr31Te3glty^I@+68<@Ec-q+T1bc09#&pPDq-A>dTE*s!Xb<_=8cFk&umP zs9BUFP}Rin45qQC!GW!&!(*d>6l29~xA}G4by!BWtv77x)}5!MldN5#N#5zqRW?DI z{j7E5;Q6`3u~X|Qw}G-ruQQC{)1$2?ALoKIjuvs(}km z>|y;3y`Ie6;E`g9JVf8w?MN*qc@?-&;4-&5Ft>g{6kq^Ms6m8F< zC;6a|^AaHtq9qVO7>(OqRU%2jtX#D`w|oeSr+QJML@A`+S#zPipkwSg!1_;4L7F^F zP7>t?uE~~>>?j+q*^R<+=)CDmb{!$!<8ksceSv6HhK(BAA{xH?`jXwjn#Y!X{;j;F z`QFtN#*LgTcK+8t<%Sc_^zAckzPL%R+w*2i&)$QMipMU#WYV-gU<1~AZTk`9SR&O@ z?#ZIG3PhM8QWXBPocd}-smlPTA)sVL;SQQ-9nr5rYugWjUD9LVaEy>D&LYmQW zrvm&SVZkqs1~f%orW^!xX29>m;3xrD6E-jgu8g6H+wNO6_0pl+hmF1B@O1}{9r}6; zBkAKKCvW}Ldiilm5mj0CPJLkG>KD4I!55Y=a`wJ)_f1o$y-g#@g@tATa8iu3c=aA7 zD+`IBGU(8)s+Q)LAc;|i;`Ml;@}u%(VIeZ<6!cZ!AIJp9l-heY-FA}588jTEmgwh|^bGa>}y>gQVPfQK@Q zrYj>fsPJInzrBl0T6MW z2_3LBLxACjhaG?D3Hu_8+ z(+{z36;q$JBFRMIQsFYN9DFpIqolDtMTvv`?b2PVVm}ioe z|5=Z@dj_c_MM@ACFz_A{cZi7GaxS`E_r>2n`%>0t!N$w6$!)nr8kp=?5A1(=6lGh) z4Ab7_JIIhiM0=DL78GRqQ9c><9*bPC(jx>1t1fgir^Skl{8n>TY4Pp2`=)bW#Au~d zA_c}8%KuQ3%>R%i4y93k4rvUZL#*(M--)3g3E#)FE`4dn3y0r*d;Mej8l`b5PR6Z6 zUW)0Th>=gt`l)NRe*DX$`onkG(M!@CjzL!BQZI9Ja-3dR3cPlEUIxO1v4rMQ!553_ zwjiOL#hl51(@W|kZ3T@!+Bio=W2t;6YHK{NQ?Y=vMeW~S89(@`<_GT){uQ_Bf05Ts zXnO*Bf(EaAmr-Aq2OoY?fA+GAh(@VO4e3)bJfm7JwgHH^BPz|-aE8%ClxcT*5K7ce zl}Y8rlvONvIXtX0AreL6NB(N?s4+uC!`Gi4{l*M?Owr%oHx9h0^yctK^dyX)3;f>0iWLo6V@3^u zBJuGT-^d8Fn)r!sF_nhBZ@l)3EYlW58Ut({O6m%pf-HL_`J~DU?e^-dva(R6*X{NW zg)h1osk;!4;bq6v=@!d&O~JJ8uwqY29WAPs_Sjcw!e)XGipwZ1si54Nje)?*8-BX~ zaiLtk>i2K1T=~xDOICk*bo17$McReCk*Di@edilb-~Y5_(!~#t>o@F^MduElHs;uj z3#VV$5Z1pQ_T}rhKJB&TK7+B4<*gEwR{;+o3fjROiTHVIK|uhuQY*a`a)k^pdj)ET z6eGIFodJhnhB>z>-MPa^AdYyBNzxnLrtB#G_Fgx}5Nu%t_L4TFG;g`}HX+UZaLhJj zANo=M?CM{?BgE0UpN<>x+ebfId5iq`+x^d3TwnFW(1$k7y1qbdICRsx+NyU3&gdJ5 zzU|iCHloaccnWC2uFrx6PC&;F5m#1;A zKs;fXM$xv>#-U^z$|7qi?|v28C=o$>R%%7JEl;+hEV5vyjNPvyhf-FA)7!biT5PtH zpWH>CdK>L@@6gT_G!Aa3OXqeRgHrujoa#@z#h3cC#dbW^pT(B_W;;DjYiDw*oh8;n zvp==T{_wcE+uf;lmZZkjr@b8=IN=H!m}4m@2BR|V2+Sno27Sl*FKUnX_KYW6iP0W# zJ@~{adeQ<#lAgq2^5m1aVO{C)rh2#38ZvvA+qrkP-KpL!wH!1@S>N8f)7rVx%onN1 zCBN9tm1e$3MQ%K;oiVBYEK9Z1Zuw+dLg^}#mXu|w{v=Lor+wD1O0{E{#*)<3an`R& zwPV^+=)^Y9`ZC0hWnkxunTL-K`*7G4WF*p4%rq5IWEhLYQ^ij#@tJK$XX@K!3o^mm z+VtBh9i`7_V=#A`8DfNxXYy#nrmqTDX4K&JE$F zoMr!ciK>_mA*>*s4*Jg}B!6QcbgvB@@;|H=_(K(n>tpMqEo?D&ktSNPJzw6HV{rHYO$8 z5F<`~d&V|0%{FYPO7rs;{$VG+=U#xPpJxh`g&{l$Q|Je31ry(MKk$r^X;hKRk{CY) zn#5?@+quHB+iWLA$*11u@wB&dg~<^e70CC4Q_0_?e&@6itN{i*K_zBh3pjN#EN=_A|g z;}F;Xop3hYas(C&;LH$_c#h+&81IO)BCIOp5$lL|I3(mAjQ78rPrybx|aJW=XIpbb=*gMvmWLz_4Xh|DnIaUqpd$vXDpMA> z0?MLu-?X9_Bu>pHa4PFd}~KW>L9%jnPIRDarS{zMUvGi4e5 zS)A%mG({0cJ49JVJ4;giiFF*8WgSzN(asVJ)_WdTyBC{r!jy$}B*+!QiLhg3AxXayA<+l%+<)EkLSqA4sZw zhVf&(DP6>915(Xs1K&Sz#x@|;jB$t&DE`o?1$_ino-I&*OOyCAdO`T&UI1U1GioD6HAXK8U)%Aa`s12+_QEnkcxtM>d zQ)jfm^AEzL82}zpAI|t5-$%M`+=pJkC&B_!4+AgMC%z9~8RKibao;w|xQ|suXMEv# z#>TtcLy?gjC41@^U-%|J@c@rfS=|wANA^807~v%Jvq<>(5(} z9T1@GgGKCzhkG+-ImFmxeO~?wy$~oGF64BOEz6fznq|)-r5`vi%4gF|YIi zz5ZM#>Pn}C+76v_sF<%T?=~EW`+JklXaGNrLMN+(4J7c5LF6Mb=HOW zPaF2HQMBGQ{6<3;r5vgha_VyYM>cYzMg92miwEXibm@f;%$qK{H?AsZJ-_k$ejC?W z-W@z{YM=aT?reFa_~mhP{H+Vodnan(<(luvO{AmXGUbMmh3r6)`3Vu2E5Zjc45N9Z zJEWJz@vAYKm3=ad7xZYjs_KCYFP(Yu17q&mlsMLOp5=#Y?rh#vo8M>Zqyc*tjrPxj z!GXte>V4aB98@ZiDia!x+fy+;x5bj>Di8&^zSNL#5R5i{7};s1^|0IPJlN7@w&iNP zZ)Ht+W!8X+^Y?Wcvu)C)xjiqFiwpfl>T+AN9%>&udeeYW=Od&h8>a(837;lOI7Czm zhnYX$Rf;0Ar6{Wtjvkp1c>^g3Vf~^6c9?~-dKo)tq^HBanzUBRP-pXY!hjyH7~I^i zpsFTge%h?_Du*`r%?pJx=R0TKcJobR&%5KMt$l^3%hf$>#kobfr44hh$t%jM=z;_} z&kj6yP)q)%NoQZz-Rz&uwi{IDmw**i!%kQHu1t}MRFu>!Sm(%$WMaFL{WQU-aqOTi zJ|KK#{DN!6Tj_f?KJ={PPRD{VV=hgz9=~{!f6j$1_wCrWdGvV`krjbwA^8^27k2BJ zE@W>-!YyO${0l}6(jZ#iO0b?MrfQ;&oP=m#8^wvL5Jb8ce9d;Yz9Vc9JT_vKV5J_&Vz`n~3ZP}WYRfzW?vGE%dOx(K-)`6?T ztgQ$GdL#J<@T@uM+=+%rlWmq74R&uV%o;FiioU*6XKc%3eLSH#X*sze#|&G)b*WCJ zdgVqw2%MfsWFvuHSt2c?xh$&)NkObGXR%XuDsWR13A_ptaKBLlh#9925Yp-Wm1iV} zlLzcGC-2R?BW>415AIHvZA=a|RUn7S<5T32KEoz=AF$%qyY9cC0fbOdKV>l!!t8kv zJ@5wm#74*#5Blasv~5O)Ly~-60GR&M^O4092V)Hj6s0;f`6W9R2x2eA6(o%~>4Pl; zo*dS<{DyghM)Zi6*L@V5-M7c!;o<4av$uPy@E%w_Q=)CoGdC%{+Rt!&hOr1sR%x;yK}$uZiT0GiV;dK?y-HD7PO3Rvc zj+)YS&x%FR0wvoLpLFs97kya|lpEj)3A8;wdT3xwGH(b&=0+bupJ$6$e z!+*JXq+Al~re1dG)M*PYohpB*e|PdH{qMs2(?5kv?*7Q{e)q_>t&cnc`{)4?5rrZP zVRvs}mU?1raahRCI5zjc8yn@53&M*XNBRP5#(6n=?i9y_Lsr+UbM@C&(dY#2Of0=I zx;)BV0Y9}*NKyf!+wvhtWmQvKTD5?TzjIq!=~af&&G^-B>}U51O=zR&g{15O5_d`8 z9Qxodwe&uzhzj&Zl_6aJ52_Ny^nqHiBX6kbi!j0Mw2ecgJ=<}Tge`SmW)Pc}xf82D2W zS&A$&IQB|8qTp($0}fWJ-{uompLKX^n$M@W>}~}E;NWWZ3V~lcSg|4RFx3d$!> zoaxFmi9nD;ma@X5z!>?KQJu*S!!9DN<4y9kKb_G3sDJjuox}b(QRM6IHC|n{G_K^f z{g_|gQ=a_ITmR6H4-@Itjh`R!JNwFCz$W{lJrg<}#cmC^zJ|z#Tu3+}#r5Yc!!7d= z16!N$Bh|Q!2uFu(=fKMrI)hh14%pMY;jnERk(M9Hm2F{5ZrfqB^0=_Pd?J(dNP5R0 z>wdf=AMcQ*zWP?nAj?X;v66D`6k5GbXL&i)wLs8W;&zt|hlL$J;k;q3Spmf{yp<5w z!5eS9oe~T)(RsR(UI(X$c^ZY0hV`H^Mwuo&IOS)0=W(ua5W<3Qxu)O9@%QYT>2P*i zcj-%i5$T^k@b_!lzMXW*KG&V&7f!b;u5%d&E=|$=JHsmx@x`aa2jdbwIUsp|`K~Qoa2}s-FD<%Wn;F1IM zfuO*9PuFCsE>JW_;`2HICQKgBf!GL|6&;dpBcvtC$`VR>wpOl1z1}E(#mf~rcg@1N zV-}353zt`3(j2_{(hKIr&gv1Ytg9Y$@c^-Ev(2*U_{Oc@Zn4-NQ?^f;U-RpxV0nJP z)7YaWHsR9PvV3G5EUvAHPSC%SwYmC4`H(IPy)7)(EpGdk=pclsIpouT#vTV9*rg?6 z1Mero$iES{4#EA==6%Rc&+5hI{j$9$Xw`ODIllSV6ZP|R}`+xQQ zVU+H<=^-54PZwSh-E<4a%l)Svr?M8T1q%b@FLrvdD}; zPCA^5w(k6C(5X|WUd5E#X$P&`iSO8@eyHfqmNaK_SNAZU_`Jgtm!BHf`H52-v7%br zpAdufPmL#%XBtkmp^ZlSho+vvOa z&VMi)Neuq~`OfKWNNdp75wwG+e$f70*>22VYKFJL_IW%tJFwv>w9CfBlC(1-iF0gM zBVAlmg=Cc~PR$35LoQmSt_-^|?15F;D)m407~p_YD**>GY-Tv<)E?X!&hT7@Bl!M# zd_9t{&*$q=4976MhTnB9!|NEXWOzNpRSfUv_ddWaJjid~#PA`8n;AaLa0|oV@{?N` zKEiMt!$%qJVE7cnoeZC5xQpSl44>n^JTMQ2|e4F7r3=cDWm*IO1k1%|n-}NEGj~IT!@F#-8#?ZkqgQ1JQB{YU!hJJ?G z{An)3LWZRbD+rq+z_5nz)G-V*Y+x8=*vPPnpFE4OAi6Q^N8=St31R?^S}+X=rU5aE zKfQqAWQG?rT+B}{IdvG%FJ*WY-&w(LxrXmt%kVmes~E0kcq2b~Ge3C?U;monZ4B>b zxQR!-mEZLkUo)1)>)gVde4lY4-r?*2;%9i~#b5dQONL)F{D$9kjGz38XW%45ouG{E zBH(CxMjk`Y$gR`|c@lkBp3L`W^7Wmq!PJM+>m-GFV3|BE+&G06M+Zi&I%5U=Z zTm0R38UC5ZBEQGif8pyReEnCx{(ztV8()9S@H@V9jNuOil{9)@QTaNZubq6&^rLwA zP8Q$EW0=pdfbSPFETWMr#e7}D*QI=2#@FS1UCA)OcY=If#n&OeuIB3+zOLo#I=-&w z>o8w;;p+yzj_`GquVZ}O#JxI;VK;_77$z9@W!RtLAcjL2wlHM5q_9L%M)937497AY z&u}6`#-_s9RHhJ4m1zuTFr3No5{7da&Lyf)<}+Nt@D@;u$`Vy&iK?=I`|Efe1RfUJ1AW2kJB8jR>BvDm~ zB&sTrL{%k{sH#K~Rh3AhsuD?5RU(P1;v5=5lBlXg5>=H*qN)-}R8=C0s!CfKl0;P{ zlBlXg5>=ImR#l03O_fNZsuD?56%lg;NusI}NmNxLiKBvDm~B&sTrL{%l?VpSrEs!AkLRf#03Dv?B0C6cJBM0~AEBvDm~ zB&sTrL{%k{sH#K~Rh3Ahsw`1eK@wFJBvDaFiN3`WRTU&rk-VNENmNykL{$YzR8^2f zRRu{@l_jbwNTRBOB&sS%qN;)*u>QB{_xDoa$AC9292 zRb`2)3X-U*Ac?99lBlX6iK+^cs47cTRggqg1xZv@kVI7lNmNykL{$YzR8^2fRRu{@ zRggqg1xZv@kVI7lNmNykL{$YzR8^2fRRu{@RWO!WqN;)*u>QB^?_Rb`2)vP4x`qN*%WRhFnKOH@^!N$toaQB|2F zsw$I2Rav5{GD%cbCW)%bBvDnFB&sTtL{(*`QkJNyOcGU zs!S49l}VziGD%cbCW)%bBvDnFB&sU^K#(P>$`VyoNTR9=NmNxKiK?-`5 zqN)l>R8=8~swyN=RfQy~s*prg6_Ti`LK0O~NTR9=NmNxKiK;3jQB{Q`s;ZDgRTYw` zszMS~RY;<$3Q1H|A&IIgBvDm`B&w>gTw;l;vP4xClBlXe5>-`5qN)l>R8=8~sAL`|3KpaHw2z^V0s)eIvHV+`XM zmrFVe_;N{I@kW&^qFhzvXXz&+zXI+xSx+osvP%D2z>oRtlHGI92@gq>@eVRdV?H9EO7#4rMru z;kgXYV|YHp(F|J|j$=51AH ze}crDnnb**NyM9)M7*g<#G9H#ys1gVo0>$tsY%3}nnb**NyM9)M7*gh*u zcvA!J=t<&DO%QKtf~Z$x-qd8`O^ta|W8T!5H#M1fQ)AxLWa3RtCf?L!;!RB^-qd8` zO-&}=)MVmK4HSa@FmGxy@unsdZ)%_xx=*~R$;6u)^QI;fZ)!5}rX~|_YBKSrCi7UB zH#M1fQh)L z@usE_Z)ythrlt^YY6|hDrVwvx3h}0<5N~P<@usE_Z)ythrlt^YYRsD&^QOkUsVT&p znnJv(Da4zaLcFOd#G9Hzys0U~n;JM}KFse{hAP7Vo~!`Z5Udl}Ie>TQny9OSd8Yzg z^BAtXF{Bl(0$f9%-p=q2hIcZ&i{Uzk>lqSvRDe6^`PUh~!SGFnr1MmOI|!1_QvvP( z1a}a0GxRX@F(mG&VD6{@<)c?j`4vq06`*|j)=zx@BtxAbQ(%Q`r|-(7FI9jJ@gy)p za4^H642Lm1m*IH~&u2KAVJpLN3@0!&+M#)_;CZg#d9L7ju9RGOd!?i?tibb?n9n_c zIE4q;jbV4b--EAvG9)d!68kBF*D)jxt;BwcAZgT9HNQpl=Ieg^t&M#B6T_1XQKDU{#Jmx7Q2%8o!!h(cbV!253`-f7GpuA7 zWEf&t!?2EFm|+9MD8sqbKIV*c;Nfh$@2MCW1s2LCAAJrivg_MUbf?C=*o#nJR)z6+!GK=nhdu z5c>#%L={2o9S9Ot1hHQrNK_HT9)TcHMG#U8Z(*tkGF1e@O?wbET!%cfA30 zxt=Mxo+-JWDY>30xt=Mxo+-JWDY>30xt=Mxo+-JWDY>30xt=Mxo+-JWDY>30xt=Mx zo+-JWDY>30xt=Mxo+-JWDY>30xt=Mxo+-JWDY>30IgE8=JZi_O42fq^I)NeaY?wzH z25r+dNue+(oUXeu>;asHc^<+%4`H5%FwaAn=ON7V5axLZL;Io@HZZ)G;e8D6=XQwS z!#qo2o~1C)QkZ8c%(E2cSqk$kg?W~cx{toavlQl83WHPV4vz)e7v2c%i(oy&E({|K zV+@=4`Ln1G;3k43F~Z;)f+rd31i>}<6l)M>3~LZUk_KVuLTH~c5@w8q86#oFNSHAa zW{iXxBVoo!m@yJ&jD#5@VFM%34XCw?7*1t4o#Dj{XEB`3a4z)+Tt;vK!&}gw2ur63 zOQ#5PR)nQfgr!r2rBj5ZQ-q~cgr!r2xi7-p7h&#;F!x26`y$MJ5tdF7=D`T_V1#)v z!qO?i(ka5yDZbc8uN!WNx8e?;vJ zjbR1!v?$L~l;kA7kvt82d5CevGjnW9-Km`!U9T zjIkeM?8g}UF~)w3u^(gX#~Ax@%-c#>+uhKS;+Q?UrnM=KIh+qj@+8i(G0v+%oMmGi z_vo4akOpyBR1tkoIeF*z*ZK!f+eIM;Y#5NPD+9?D+(rX1I&tvkYk;8izff z;0p|CHy4*);?a>+KMt!t&EzY5y_c_F6)~} zIIR72eTd=P49VIYhqa#|S#jgA_7gn9khID;Z2okIbjvs_|8z||nmFwLbp0`3f5O*4 zQO|{qp@U%tL)!Jkg^QlywJ9z%z9x+{F1&nAdTCtv`8u1wmCLY@XaL@U|Bs}%50CSz z&;0ew)8Eo9G^?s~Q+2p5Xh|jyU>rkR*&fR^7ix%0T0vqaS)xE%#qWU_*#))Rb>H-Y(C@xK`RBgA z*U>Z2Ip_YKbD!@y&(S$Xe;wG$*MY72I^ewA-?s+t?^^@+_pO2Z`&NA&FnWyM8dST5 z1b+a22=q6Ct@=hFR`rd*=+SMfz7#m!tFl{zHB#1%v6z1q3&CFk9a(K9vf8SZcIBo1 zsNZU(U2kIq+^Y3by|N_Z?*j{Y_Cpl)#|j!wCC5 z*zd*m>h#ud6Sh~Uw`z6TZ@3$K3-$-FKZxzs>8)Cw_A^!3+rT7P4SopxF!+a{XOUY& zdMhLNR;^U~J)R?M4QsJIQ`pLAzBQy5Gp271>BWrfTeXhuUwQ7ZRjb*y>C556*!1P_ z5p2&UwrYLb&p3+Ms#R{=Z*uqlAb+oo!>S}aswq3fqAp8jEcDuc7H>h*uWPcpI zAAErHJ=mYXPGRdmYxSgSv0a=vuO_e=OoJ_825jZYHn1J+06W1hup9g~xqJug1N*@N za1cBUeis}9kAO$P95@1=0KG=KUCL=Z1&)HJ$uSR(f#cvLWj@O@UW47PFQNWz5qk=| z#FKxEJ&pYX>>2Erv1hSg!G0C|A$T5K055=-z$@TYex?6FRgSNNKLURYz5!kbe*$_Q zx?P%S{AKW0!P`K$;qB5)|J5ydyP|sAzmENO?BBq?9a|?l>91~?+ohRCx4rGsNu%4| zcIl*%wkMsmU1MgXhkifpN_yyY+LiQBw%Wg1soKBsAyWR6e<}vJjw$(fI zS1F$Usy<@-UD&^k{X5w2#=aADEU{e?i=T|J--GR$*LL+Fr*Fc3KlWzqyRp4`yj^|D z&v=fuT~Uqg-^2D?X1l(}89hhauJ3Wi4}l*Bsk>$?F8N1Exexn~vHt|S7W-q^^e-u% z-$VbB;@PHuN%3sMk`&MOC;645m+hL}I2T7R+rv*`e;OMOrFc$%lf%#O*ZtsU!Owwz z3VvRgL_LzIN0QhqiFzbakECKVKV$Vsq8>@qBZ+z>6_qV0-Cj;=kA$DGdL$K<8C|=i zqB7gAT~bk*ZL3ET^+=)~Nz@~$xNBJHR*$6OE~C{WskqC}TRoDByNp(kq~b24)g!66 z%V_mTD(*5`J(Ai-VYGTAwU5GR^+;+Th0*GfRNQ5>dL*@v!f5qKY9EEs>XAe}lBh>g z`zV}Z^++o2GFm;7+DBoudL$Kb`5CK667@);9!c$^aJtnasff$=G`7_vsff$zR*$42 zF56a*q#`b()g!6>6-KK^QW2NY>XB5$Wwd%E6>%A@9!W)9Myp3s5tq^Gk<`8mqtzpc zdL&VgWMK73Y8}96^+=)~Nz@~WdL&VgWMK73D&q1pR*z(0^+=)~Nz@~WdL&VgB?&q2dgvmV=4k0k1mL_Lz40Xg03kyN~7+v<@- zJ(8$L67@);9!bSZ{;Sm^iFzbak0k1m)Yp8cTRoDfM-uf&DqeCetR6|lOSY{ZNv(d^ zrhlOxNz@~WdL&VgB1Nb_E!%9y_EG3qrHBLn>jkX6|6Fw1c_Q4(3Wbm@DmIuC#->(hlZIJ6Olt z!MtM!Gmah1HFmH)04!OJBTWG5Krz9GfsC5xr6AjTH2V_&M?ngtI@`4X`^k|x|&*7Q|oGK zT`g_wR{BRk?*yopHX1!5R7)Gr3cY`q9ul&`o zS_)}w2EDtcS_*0O9-C^|u7>Su*sg}{YS^xZ?P}PrmO?tO?|^+^KR5smf``HHg8s^1 zErm251#{pCcmniS#cC;}(cea^rI1GNG^=K(S+x|>ws)FUOCeq6vpiG4{yugQdkVWm z-TxMQ8v6&>GuSU<&tkuV{VMoF@I1HxUH~tFS3u86tEG^}*TElwKL+0buY*4Uy)&&^ z3TgDtv}!4&@izZe3aOgX8mpy{w%sPHrI5DWGOMMKw!LGmS_)}&Y*Q_TGwG`6m zU24@*NTYYDRkKU2S~F0;=MO+f9o5oIaVX97n`v*f|7vNbQ$Ff9OEdM1G}HKy-zLqp z?eC}6^pt98rfu)5td?f#uhLAVNHcA}3)^$&YH6m^-;I4Im>}gY>0Evfy9(R}Cc$d(L*R!&>P}CumS*}5_n8@KrtLq$uEqWs z_WdCJ4h5(V>38TrwKUVe@*J~TnrYi{X|*)dww0k;nrWL}Db2L)IcBvq)ApMjdT(mA zG}GvvRMpZ|{*Y$!M~ZabzbW$RDsD><{$?WJxD@{faU67VxdYdq}^B z^m|y5yN4CId&#xBi-|pUcb60*a}uVMeX1CA#jcKbtCV;C&v4kzkfvk{qUZ$ zk7!q^F!mNu{~)F_fn2KH<*m! zZgSsE?z_qTkCgkD%Kk{X3zfU^t-|}r{XTNPk6+!#uWE^e*s{{Y^90PjD*`yY7o z{dj*5x$GgAJ>;^7T=tO59&*`3E_=vj54r3imp$aNhg|lM%N}ysLoR#BWe>Te)W#kt zOR0?+9X+OKMX55kq7)*DO!GtmY<^K zr)c>pT7HU_pQ7cbX!$8xeu|c#qUEP(`6*g{ik6?ES#rEw4yp%Q5~(Qj#gAhE2^Uv)zOOT zXft)RnL64`9c`wLHd9BNsiV!*(PrvsGj+6?I@(MfZKIC1QAgXTqixjD9_sLZ9loo> zcXjx#4&T+`yE=SVhwtj}T^+uw!*_M~t`6VT;k!C~SBLNF@Le6gtHXDX!1g1st-ZJ6 zUpwYN`{)taegw83f$c|N`_qi7jnbC-vPNl((Q}YSMG;2tPirjuAhug$W107MHkNsR zT4R~_r!|&&e_A6mg+^uyjm#7pnJF|fQ)pzS(8x@oQQsx~yyNgjW@nAe&KjAWH8MME zBz|sWcGk%3tWlAMo+ln|3>*nJD$+3edtalzW*WUetugSf=|+9cG+MP9_0`hp-k;VO zcz;@BtjvFv`sr6vKcgeAMxwq(;=M*9y+*|z=QKR0;W-V@X?RYcx4?4?Jh#Ae3+=fDo?GC#1)f{rxdonE;JF2!Tj03`o?GC#1)f{rxdonE z;JF2!Tj03`o?GC#1)f{rxdonE;JF2!Tj03`o?GC#1)f{rxdonE;JF2!Tj03`o?GC# z1)f{rxdonE;JF2!Tj03`o?GC#1)f{rxdonE;JF2!Tj03`o?GC#1)ekToPlSZwWIc& zf#(c7XW%&l&lz~mz;gzkGw_^&=L|e&;5h@&8F@SK6?3_NGxIRnobc+S9c z2A(tUoPp;IJZIoJ1J4Af#(c7XW%&l&lz~mz;gzkGw_^&=L|e&;5h@& z8F@SK6?3_NGxIRnobc+S9c2A(tUoPp=Bv9q)lhFf8{6>eMMwiOOr;jk4B zTj8)34qM@{6%JcruNC%MVXqbTT4Aph_F7@D74}+TuNC%MVXqbTTH&Xay0=pIR_fkL z-CL=9D|K(B?yc0lmAbc5_g3oOO5Izj``4-Ce+Qoi{~COz%(2-sWsc3B(W>u)(7TbJ zQCnIPCczz~dwt-UvYlWfDNSHAm@E1n48Ka~9XNV!6iTO+7Gg{>{z7zCrEfdgSR$#YlF8ocxz*)TpPT#!CPBs-rCqH*A|+$Hg?Lju~V*1 z--euG-rCgHlncDI!CRa9+S#&pcx#8Zc6e)tw|01IhqrckYlpXXcx#8Zc6e)tw|01I zhqrckYlpXXcx#8Zc6e)tw|01IhqrckYlpXXcx#8Zc6e)tw|01IhqrckYlpXXcx#8Z zc6e)tw|01IhqrckYlpXXcx#8Zc6e)tw|01IhqrckYlpXXcx#8Zc6e)tw+?vgfVU2K z>wvcocwvcocwvcocwvcocwvcocwvco zcwvdTcPI&8tw@!HLgttz3>x8#XcPI&8tw@!HL zgttz3>x8#XcPI&8tw@!HLgttz3>x8#XcPI&8tw@!HLgttz3>x8#Xc zPI&8tw@!HLgttz3>x8#XcPI&8tw@!HLgttz3>x8#XcPI&8tw=Q_=g10Vs z>w>o~cw>o~cw>o~cw>o~cw>o~cw>o~ zcw-7^Kdwe1{g)o-@l?C*q`2Rpz{unX)4y+pyy+ zyhkD%c#lMuJrY^=NMzX~kqx{@A{%&*L^kjqi7b00vh0z_>I<66qc3Pi?~%x|M(<4ZTMq8~O`=HuN5eY)G$U zk3^PPc9uO7S@uX|L+_EuhTbEQWsgKQ^d5;UdnB^#k$8ds8he5N8hb%{(p~lfvB3*O zQ!l8$JEaM12Gd{*m;ooj0$4OM;=jO%{{kca3qg(3`LD4T_^+`Sc%SQj#*bDNk z@!jB^;9cN*!1sag2k!?~wkTnA7`6?<2jB z^gh!2N$)4UpY(px2S^_veSq`<(g#T&Bz=(dLDGjvA0mB-Z_`73n;zoZ^bp^shxj%< z#JA}ozD*DDZF-1r(?fil9^%{d5Z|VUc>mCw@8{d}5pp>~E=S1a2)P^~mm}nIgj|l0 z%Mo%pLM}(hk`y93_{de$I0b5xf~~#WvwwEZ|OO)*;%Jvdvdx^5WMA=@VY%fu^NtLa>Y*J-2IzF5vKAdFTev&A0 zk|=Rfb3;Gl?@*JP8yfu`YLX~!k~QZ^)|@9NrW>=Y%@tzGs(*HBoWIbvC1S-$|Uj0q~?+;kLHp_f4`m#{QY`Tb4la9&P8)Z zr~CW$q~?r5%^CGqv8P{&J)1^6$(e*yjr@Lz!c0{j=?zX1OQ z_%FbJ0saf{Ux5Dt{1@QA0RIK}FTj5R{tNJ5fd2yg7vR4D{{{Fjz<&Y$3-Din{{s9M z;J*O>1^6$(e*yjr@Lz!c0{nj;{=X0Z--rM2!+#O}i|}8B|04Vs;lBv~Mffkme-ZwR z@Lz=gBK#NOzX<(U+FT#Hj{)_Nmg#RM^7vaAM|3&yO z!haF|i|}8B|04Vs;lBv~Mffkme-ZwR@Lz=gBK#NOzX<(U+FT#Hj{)_Nmg#RM^Pr?5b{7=FE6#SRqyaeYZ*e=0#306z6T7uOQtd?N41gj-j zEx~6AK1=Xfg3l6smf*7lpC$M#!Dk6ROYm8O&k~H4V50;ZCDo zrm5XDwVS4P)6{O7+D%itX=*o3?WU>SG_{+icGJ{un%YfMyJ>1SP3@+s-88kErgqcR zZkpQ7P`epwH$&}asND>;o1u0y)NY2_%}~1;YBxjeW~ki^wVR=KGt_Q|+RaeA8EQ8} z?PjRm47Hn~b~Ds&hT6?gyBTUXL+xg$-3+yxp>{LWZid>;P`epwH$&}asND>;o27QM z)NYpA%~HErYBx*mW~tpQwVS1Ov(#>u+RakCS!y>+?PjUnEVY}ZcC*xOmfFoyyIE>C zOYLT<-7K}6rFOH_ZkF23QoC7dH%skisogBKo27QM)NYpA%~HErYBxuOFh_(ir`g;> z*<6{|e&@=(_B$tiGy0q0oK()X*M8?T%X5mq3C?L%$LMdVb6V9g`kUY!Yrk_^EwNny zi$>{{-Y>l}`djLp^vXzH%mn9{3C;!nmO7`Ipnv6WsdKFT&aw787xy7> ze@mTX?e|rptXGM$Ue$e5-z`s^Y~&OU(Dl+d3-UCFXr*ZJieI67xP-J zS}2>x7xVaH9$(Dki+Ox8k1yu&#XP>4#~1VXVjf@2`s^Y~&OU(Dl+d3T>jHUQAg>GLb%DGtlGi2jxE|J$I^14J`m&of9d0ir}OXPKlye^T~CGxsVURTKL3VB^2uPfwrg}kni*A?=* zLS9$M>k4^YA+Iasb%ngHkk=LRxM%9;5 z^<`9j8C73K)t6EAWmJ6`RbNKcmr?a)RDBs$Uq;oJQT1h1eHm3>M%9;5^<`9j8C73K z)t6EAWmJ6`RbNKcmr?a)RDBs$Uq;oJQT1h1eHm3>M%7oehQCm@Qs%kOO4)AE|G}}s z4)7IrfUmFve1#q0E9?MYVF&mMJHS`i0lvZx@D+A|udoArg&p84>;PY32lxs*z*pD- zzQPXh6?TBHumgOB9pEeM0AFDT_)6I&N^->*_zT)f;4f$^!LNhNG}VF&mMJHS`8n(7q)-^vO*z*oXrY-$~T0^9$$vceAVmC*lhyAt~U z^jFvczQPXhRd`#4w^evsW#{}Vysg69D!i@2+bX=R!rLmmt-{+Xysg69D!i@2+bX=R z!rLmmt-{+Xysg69D!i@2+bX=R!rLmmt(KX$Rd`#4w^evs4b0mrysg69D!i@2+bX=R z!rLmmt-{+Xysg69D!i@2+iGauR^e@xo%5^kwhC{n@U{wXtMIm_UiL`YntGWrq2I32 zv)1TYYxJx&jb%>vSihzb&9=R{rm^g-(BFX8=yz-MyEXdV8vSmKez!)yTjNx{HBQxA z)0xJ8TQBHS_15T>YxK%BdgU6ua*bZOMz36>SFX`3*XWgN^vX4QEid)XABwi_6$EWM~bRD0rE_;ekguH(~ne7cTL*YW8(K3xy&({+5hj!)O|={i1L$EWM~bRD0rE_;ekguH(~ne7cTL*YW8(K3&JB>-cmXpRVK6b$q&xPuKD3IzC;;r|bB19iOi2 z6lIlJrzjik)Ai6kU00+e-tg%|UCz^5DdbOWDm;L{C!x`9u9=eYBFUM1PUryKZm1D|f-(+zyOfloK^=>|UCz^5Dd zbOWDm;L{C!x`9tO@aYCV-N2_C_;drGZs5}me7b>8H}L5OKHb2l8~AhspKjpO4Sc$R zPdD)C20q=uryKZm1D|f-(+zyOfloK^=>|UCz^5DdbOWDm;L{C!x`9tO@aYCV-N2_C z_;drGZs5}me7b>8H}L5OKHb2l8~Aj?KGnr!`hP>A{@+ljnTYUrK+QyCYbGMpOhl-e zh)^>Tp=KgN%|wKMXWKIoq5l6a2;5GD(sQ9SP^kZA5`GZW|JTTto(rYtLg~3sdM=cn z3#I2mebX1}o4!!r^o9DSFVr`Eq1uU1?L>G8l%C6$o(t9Yh3fl4eM1-O>$yZ1@5TAzlG{mPNJ`M3{=)SLa+NU8t4e@D+PeXhf;?oeH zhWIqZry)KK@o9)pLwp*#?+2m#zR*4m@o9)pL-&29*ry>r4e@D+PeXhf;?oeHhWIqZ zry)KK@o9)pLwp+I(-5DA_%y_)q5FOi;?vN5U$%W3y6+3^(-5DA_%y_)AwCW9X^2ll z_kBHSpN9A}#HS%X4e@D+PeXhf;?rN2PnUGfqUNExhWRa^zE%gfmFb(5P~W74X6ZJ0 z_N-8=Izp|q2(_vs)T)k9t2#oh>Ik)}BWwn>sw2Av%z)bItrV^52n%4*C|~IP@`X{W zIzlVMZQ|Lu102s*X^rI>J@(=b%<~g4@KuQL8#aeLE9sRVTR3D+xla>Ik)} zBh;#nP%8<-yFjh#$kwWkP^&t^yFsn$$kwWkP^&sZt?CH1sw4cSN?s0c=jF>mGYRt|6F@K&yN>vZ#04sYe~Rt|6F@Kz3Q2kZm;!2xg( zJPdvp90HGkN5LF80-gX*g5LvAfurDA@cZBt__yE>z?Z>Sz*oT^g6F{n@B*m0zsj#U ztneB&`VsgB_!DFBAN<$g*T7!~e*=UWpBSLO!U++}?L;iM`^13YcF%l++kIky@Lk~V zfC(@H9m(7tZUQ%hIwedgj%{w&4lbid|Jyxx7CNfA-E(K5cCQIP3{sx(qu758YRy4^ z#YZ7N^4wV|)~?&bhe545$o@3w(pKXAO1xi*_bc&!WtqKSiT5k zMF{QvN}m@YwD&8$f+4i`E4_jtwD&8$f+4i`E4_jtwD&8$f+4i`EAf7%&x??4?^pV~ zh@cYhSK|H3z}~M6?EOlg7a_FwEAf6M-mk>_m3Y4r?^ojeO1xj`^CE)E(B7{M?fpva z?lao^l|C;*Xzy3z{Yt!FiT5k!aw4?%EAf6M-mk>_ zm3Y4r?^lNQekI z>U2k$&R`enjBDXXc=BFQXIv{qr#cID2D|WnP^UM`-h-{vn`Ni4bq2d^?W+`8Kkq2B zM&02Rc%j?s9a@2R*>ncGP-n0Uo53{L0%pKgo^J!&!49w!>;k(%ox!g6=nQtD&R`en z40fT;U>E8PcA?H-7wQal;ShKP)EVqb(HZPQoxv{D8SFxx!7ltBs597Q>kM|G&R`ej zL7l-aTW7EfCn$-|V3(~k*o6gboxv`>cV0wqM8A8SJuujIA@+Wnahs3HGW>9{fA- zm%(2JZ}T(iJ9?g3(jDqSwkt^28SJv(j;%A;W#7)PDnadNc&Wu6^G2T?oiKly3Sx1uJPM- zV@zkT3q$aiK<)ijiuQgBA97xb$MjqEbiIwa*d6NcPTA+bDo&HFzOTP3TC=S)*o8WS zU8pnIg*t;>cqgbc*k#{^tuxqV>kM|G&R`e54_jxj%hnm}LY=`b)EVqToxv{D8SFxx z!7kJp>_VNvF4P(9LY=`b)EVqToxv{D8SFxx!7ltm@Q++~X^2zq!`2z>vi}5IXRyou z820@jy_nhM9a0$oHATA4V3++6HY_pUyhEDfbo#QC$M&aqMrW|g_Nu}iQX$)Ka`+jT z+z);h{2chF;OD_V<5xO^J-AaNmr*CV1$Rn~jXLQ_t;d>{K+_UvS^`Z=plRHbrN4R< zPM~QCG%bOqCD614nwHQASg&W?W)f&x0!>SxX$g&nPPe8dG$z`%rX|X(X$dqffu<$U zv;>-#K+_UvS^`Z=plJy-EuqWrg3|h(3-~WT|#Rbw|5DxX$g(Ue%_jv zK+_UvS^`Z=plJy-ErF&b(6od`WdF*VmO#@IXj%eIOQ2~9G%cYK+0R(h5@=ciO-uM* z38h%m5@=dNb0t4xO-rC@360&ht!W93;I^%4360}Uv8E+7n%lOfB{Zhnwx%UCvfH+% zCD614nwCJ*5*pc^ZcR&|X$dqffu?b1nbNIk+*~HKrg49n(3+Oe|EH+rXj(%5pJLmZ z#_eW8YZ`Z)39V@fG%canz_v9lp$NgYH7yZX(-MI-ErF&b(6of|QOiWr5@=ciO-rC@ z2{bK%rX~E9Sx;Ki5@=ciO-rC@2{bK%rg6`jo}qoBX$dqf5m?g_Xj%eIOT?^ciI_Dl zfu<$Uv;>-#K+_UvS^`Z=plJy-ErF&b(6j`amO#@IXj%eIOQ2~9#X0gUnwC(sW80dR zK+_UvT0)VJ)2(RyU?_|(6k6m zi_o+PO^eX92u+KK(;_r2LenBNEke^GG%Z5YA~Y>R(;_r2LenBNEke^GG%Z5YA~Y>R z(;_r2LenBNEke^GG%Z5YA~Y>R(;_r2LenBNEke^GG%aEkH$u}QR&gUVEn*cnLenBN zEke^GG%Z5YA~Y>R(;_r2LenBNEke^GG%Z5YA~Y>R(;_r2LenBNEke^GG%Z5YA~Y>R z(;_r2LenBNEke^GG%Z5YA~Y>R(;_r2LenBNEke^GG%Z5YA~Y>R(;_r2LenBNEke^G zG%Z5YA~Y>R(<0)u2u+KK(;_r2B2J6YvR z(;_r2LenBNEke^GG%Z5YA~Y>R(;_r2LenBNEke^GG%Z5YA~Y>R(;_r2LenBNEke^G z;er-Xo72|C3YXQ{y|q-v-|e z-U;3X>c7AB%=xmVx}2NT#*8lKCd#=enR0HXoSP}e znR0HXoSP}r78oLea8 z7RtGWa&DoVTPWui%DIJdZlRo8DCZW+xrK6Wp`2SN=N8Jjg>r78oLea87RtGWa&DoV zAEcZgq@2FJaVhZ4j7GOl-^^&V-+eQq(SG-xj7Iz2cQOhor*BbQ2z-m8(e2Z>C>q^9 zeT$;ee)lbkM*H2jC>q^9eT$;ee)lbkMz>GjGq@mhKk_|;PH{PXhoI5r^c{jmm(zC$ z8eLA`9%ytqeH);Va{9hMy^V7EzCWc?PT%)u+vW6qe@2(n_x%}NPT%)ubUA(BpV8&4 zQaN>|hRSL5YEqR-J1k7_SAYAiQj}u!m+mUXCksNatX7qI)v>Bm}jl+pp}))?7cU^nPh z?kd(ft61l(Vx6;!b}v0Tg94fmEsEjm3F1LLblq!+NavT@gY)lYm98i`BjP>{ESz~ zs}woNR`1YXS>3HtAF=%||5ZK3w%7Tq)L(4t))=AJPOH>wY)9C-HAc2q9;(!XY;VHW ztueAUW8aPKF9KESQ%?7~Yn6JI?cc-px1lOU4#p(tZ$njz9E=|Z=~IdvT=I{Sav$~| zWB&0gQ*{091$A_v>_FIJMP6gl{9{+3jw$icQ(YpWDF*!F5|l_Ce*{<>79 z$iX%oDsr&>8E`+STVs^+IZ(I8$o{-=t7bqtUA@e^iF`xou+X~*xEnOs%BuTT`A#XU zz5AZT;lTIt>GV%MX|(2SljhjA7q&4o+9u7hZ4S3db9Ca5G{<-^xEnNA+oU;Xg*s_O zs1px_I%!0x6Ay$sX+)^oScJNbMd)=c-vH-aT^&PMe)JY>s82|^t!=O$YQTh<5lSX781#_TI8d1s# zP$!MZ{vLP=90he7i_-I;Zex+H+gOA;X+(IIXLQntY@IYB)JY@4DeMw8(n%vq@k-7% zDUa1yCoA=&w3yM5vQSgkGKACgm}{4(g;4*oMv!mSCHd$Ee#_ggR+Nc$@#KS&!bytY@2)$94tjzmENO?BBq?onPss5k2Ex zzfHkoirlU zNh87}sFOxy>!cCkhe7JjEM}Xu$mw2f-lkcMZLc37Uxwn>ZpSFbj2 zlNQsXHffP{-EqU~srZ_*rAinVAv3bP$8+Kv`&M~i%e;c$>di;`$jk|%v@o=zo3i+pR|f^2J% zZ_P8BAK#j1v=$}H+%|k`p8sks@~wGBbK+a`Y?~9`nrGWuyVkxt&pBF)e0QGF zTI9R)jMgIGo#!XpK(8(P?mVN{mVI}g(QC`TJI{Gpi+p#U(OTrY^NiLa-<@Z)7WwWx zqqWF)=NYXCx9N#1w8*#V`TdT!eVd+bYf%y{ z@@;y05-m!iMZQf>&!9!VP0zObk#Ez}lW37|)3a?Y@@;yytwp{~&$hM5x9K^>T9ibK ze4CzaYmsl$vu!Q%ZF;t?MZQhXwzbH&>Djgx`8GY<)*|1gXS5diHa(-Y$hYYktwp{~ z&-h2KHCp7`^lV#;e4CzaYmsl$vu!O(hV(nM$hYbFuht^prf1t)~o^5MU z5-sv=dbX`azD>_I9HK=@#YJY)TIAdGjMgIGrf0Mk`8K^J;d?>Po_0t*jGoK*Ha(-~ zGQLgE=(&t<(=&Q5s?zD>{Q*xtA486D62Ha(+b^&M)TM#tyAO;1RK z?A!EYi$kNMO5dhubUf+X^o))neVd-qaiee3GdfoEZF)-q_g)EIJMO&_x^~=qC3Nk$ z_e$v6aqpGTwd39^p=-yzS3=j0d#{A99rs=dT|4f*3b^-5=-P4bmC&{0-m8FnuLAD9 z61sNWdnI)3xc5rv+Hvod(6!^%3yQtkRe76hV?V@(O@ZBzIw+r9x!gssy-7adk z3*YUccDwN1E^4<6-|eDyyYSsEYPSpD?V@%y+5=o4)RgJu7NO(q8r9UOn@5Bm>1tG8 zqfTxS>f{!oPHqwEYP{)Sw|Xs7DRDQ6oP6ytSeRm8d}+i|lVI7w%0H{)$@8A1Zg_TZQ+qhx1y(lv8VToJ!6%h5qn1RVh8NK?0~&D*hP8`zw(aj zd)WbdFFRoG6{|`St47c4?j?@8SL2Ry(fDF~C+Hp5_i8jT-U;3Xz6X3C_lrJ zCzMhL|8?+R7d)uv>jJlmx?msZnQvY2IQE}m*DLorz2E6yApI%q2JmY}*rLO!KdXTp_n(mRrn~rdlcV2itiq!){p8v^}(a~?ooXAXkgzx zitir9caP$`NAcZb`0g=$_ZYr=4BtJ5?;gWzkKv=o@W^9$WG}wh%QxA*cx11B`$(`? zzcuayJ*Mx~8=P_g`$_SzR~~WtpR1gE_;EjN?6Z{lvy}O>uKBdwC#G@c75QsT~FJt58Srv1GnvZ+IBr{yIz{( zH@I!r)3)max9$4CZM!~j+pZ7Xw(Duz^|bB!z-_xeaNDjA+_vijx9$4CZM!~j+pZ7X zw(A48?fSrNyPmdPPus4iZP(Mb>uKBdwC#G@_CeS<2oDFvLpnGp9*kDqgS3Z(;=#66 z_aN=(AgX&1)jf#n9z=Byiifj$#;SWzJah})yAO(iVWCy`pcpV(bq|UGqgD4Hbw8-O z+qUW+RNehotL{P7+O}2qplWTj>K;_BZCiB@QpbbT@gS=Eq-xh4JgM3VX_HUVCZD8D zKB+c&R_PwOo}^7asWv$*`ylCGP+NLZtpgnE@e@k_0{nadX1)M3U!Z4w zfu8jg+&%@jPbv4|;3?&9+y`0>o>J~ku_io4`JbZvUsOpJf-llLzDSSwBJIC{cQ)|O z2K?24zZ&pY1LbMJUk#M1fl@W#uLk_pfWI2>R|EcPz+Vmcs{wyC;I9V!)quYm@K*!= zYQSF&_^SbbHQ=uX{MCTJ8t_*G{%XKq4fv}8e>LE*2I|{DeH-xCp9f#l`u3NkNJ~OT zgI|))7#$6MS?R;VUopb-m*M%#dPXUFW;pl?Z}_TM8VAi)TM>Gv``n{Dm5HrC}D;YX2kh|Qe3Kx*fzR68L_&cI{!cFpjlGqspN7s0``g>oECsnEX0SejO&i z4wFw)>!+#p(aIGLcQPkHsQ1U z_E~=WEWdr0-#*K4pXIl{dFO1(MjAL64ph20h}l zCl~+^>kU1Dch2_&W7scYd-bm;xJ=3w&}(r$!FBLoje5V{ruQ2^4}RIdjeQl{O4}3b z1fK^7!SDLbu_4}Yg6B_SdzG>$b_)A%ut%}Sczzsvg7h=klr!cTQ%~$1>F2Tk4O|9S zz*TS!{5iPJ^S`hiI_~NTf7L1BZQ{8nv{v_o<=D47_wYCMq;CXB3;ll_z864tkac>{ zr{{YE|Nla7FpTYb^#-m>Z*UsSOHX=(asM`$;jdmP?G0vmkN4m926H_5Dmc$ye+asE zy}@~&{NLDKLG2A*<5w53FM{5q+bgd*mn+~^Qm*mN*Lmhg;E%yK!0SBu6YNFs2G8Hb z{yXu|8~l{_ERpi}*#AIzZh`+q`oDnx%G>@8d&Q_$t@029^b!O3HUzP!R&D&8-xm8X zJo%^2H|FuZH&#!|LH_C)dT;D0QvNIW=b&Tw-k6oMH};o2>0Z_w^IW?(=DBun%=^82 zW1egG#=PIVH|9vJH`a>nn5Q@P-$5%|Z|tv0cU03Gb0pIn>jhunuipmoc+4yFy=uv> z-BE13A3KKqB2OOYZT}0~|H;xDJK>fPJISw3fumraXJ{d@GrVCEEP!5z?~QqPcW=z= z@V&7T_7C_KZ7DWO`YUkdRrlT)?I(5~n>G{kUhdu)?Ih;^Pw9=l4leSZo8V9F@fg02 z{R6-KKcxR7PyS!*TiE}E{mj%Kb)MevZQyM@>G82Qbkx)vR=8f_+p&Lx-~LCQ{7vT){uXwezrI6HX6c(* z`e2qmm{spvP`Y(28*@v`(sHu2lPoPHOWVlC+$yp$w}))Ze$2+~!L0mZwB}@E-v_5a zD^E6Nma;MPlZ}~~tm-aQ9gWuNtQ5xRF(Mnf7B7(U0x3R!emL;?^Fma*50&l>Asj%x(}7^i&>@n zVpi$Cm{qzDmF|mK&HB`0{kHF6TiNZ~zVm z;BWvA2jFl34hP_H01gM>(Dx(gop3k+hXZgp0EYu`H~@zOa5w;m18_J1hXZgp0EYu` zH~@zOa5w;m18_J1hXZgp0EYu`H~@zOa5w;m18_J1hXZgp0EYu`H~@zOa5w;m18_J1 zhXZgp0EYu`H~@!(=+7YfGl>2SqCbOTY#|tgpFvb;P&_CFEgD3N2GOEHv}h158bpf* z(V{`LXi&BDudGOes-4lgG$>u_7J7^rR85`Y9yf?O4WdqisMDb8<#cP*AR0A@Mh&7! zgDBD<8Z{VJDh57G{BxMd=dfz06e6F)L_UX!d=3ZJio>e4|LVPVhgIvd!oS6ymG=(^ zuPDdEif3%UhJ6XV3R=MqE8Z~vtZcvV@3H@ZH{9Y^|Lk<4h{Hq?hZRNWdGV|5CXg#FLh z_S#`a&%+u$ZF}@QtkKi9N6f<-F~xv9sJevzk@VjJJxU%9-=V+yMv{7=$KN6K^lqV} znj!UZr&!O2=;K4`<4(U!ihVRh@Amy8dQ$z`_<5((uZQT@L-gw*^=qd;4-SIg_1oyz zL+aQ5t;d%k_3O0oZ@@90p$zopAzJ$oeR&ABhiL6XwDuwT^$@LnC`JimZ}3i!BSW+Za%f9V z+M-;TkK|(im3MkRl8gNX_!XCy`A9DISJIq z&Cf9($;CV$$uS?vF(1jrUf`XckK|&WkK~w-2o{!|D1InHGNG|kzB*%Ot$9yD*qUM;7E5Sz zig^1};Hd8uY@E`F>}RGx?=m_iO*Y;#!u%w+Uz1!&M?v#4B@h9L7p7|Hh zGr?2D-lvGVPr>l1(Bto^(4*}sTF5C{$SL(cr&Rd28n2CUQr;nZl&^B5e3cs&&*@-P z+;$6xvCZwMSarI~KdSN0f3+fwiZ>x&=tlWMH!9wo@+9c*`=hWl3J;^ydQ>W>w@Kyv zq{qHd)z^3hbbUvu%P4gjRht=BiswP2s*8TBy6Ab;!uC64pQaa_rWc&17o4USoTmMs zrv0C$<)5bIpQh!Xrsbce<)5bIpQh!Xrsbce&7Y>VpC&#zO?+~ic7B?6ewucEns$Dg z7Jix*ewr43nihVV7Jix*o+kpy6M^K3K=PD4PXv+|^YuYq%y$btFUV7)JT=M_f#ium z@^u=j9^K9pf#ium@}bK1d=BL$rFL(i9qs1AY=5_G5YD4`sq?IMn4^+pN`Q_$LObH>Zksz=kH_cp=X7j zzmKVJ4hubhA5-tM?fLtddYSPm=$Y4;dWX^T_c8Sj+n&FVsdxBSp1+UL=ErFBW6a;j z)Y|n7EqqKZTu-VcJLNC^2DM(>X>8Bm$JBbA?)m$eTCZ)--^bK$jh?@cF@GP6dHz18 z7U*=(-^bJfZF~MchBl6&jbmuznA(+UjY5twe;=bQjWK^8Lo>%{Ib*b(F}D#q;+uwGG?9FyiYm=I>+pdW`w|82%lTf5m`2t6wpHACpi0D@T=M z%-_d}F2;#2#uZ&G1mp6laR5B5T8zuTPH}WG9(V*C4_*WvU5pc5j0gTNfN{peam5u* zp8_3Mj1yOk6IYBASBw)^j1yOk6IYBYuF$WDD8`8>#u+QeWB-%%?}Cmf#uZT*{|0nK zF|LTh=qO@bJR2QFj1xbMi(#iYei$cy7>{{AI3D{K@ZWgP3bj)(9Vc=aCvq4k zau_Fa7+2(=HxN0Di^-*6f{|;25o$s$e?ci;d6*#9nqcIeK#eDeJSWiD2^4h#EuBC` zC(zFclyd^bn?UO(h?gd4X%j?E6STJpbZi0zn;`O>pmj~4FcWCY1gbJYTr@$;nP6O= zU|gPHT%KTDo1Rpz?S#XDZzmM0Ev1G2MqCIS zqZU~8EvTK?_NsnC?ZkieicmpgtI>VGpwZLl`B#Be-vXOX@OPWg4&W&#MoJ(zY!P2n{9u6D6nee z8wQ61-!LeI!y+6O;jjpYMK~Vs+7=CBBdMK~)VtVw(Ys?6f=b>ackQ%jw$;76k0ch)=i;xQ}q2Q z6mJT}n?muXP`oKAp5NdZ(-h24!TA(yPl;!}8Qq&g_omRjDRgfN-J3%9rkF8Jp?g#4 zUJ15Kuw8=f5^R@Xy9C=M*e=0#3ARhHU4rcrY?olW1luLpF2QyQwo9;Gg6$G)mteaD z+a=g8!FCC@OR!yn?GkL4V7mm{CD<;(b_upiuw8=f5^R@Xy9C=M*e=0#3ARhHU4rcr zY?olW1luLpF2QyQwo9;Gg6$G)mteaD+a=g8!FCC@OR!yn?GkL4V0&8nuoO&7AB5`H zM(-$_3I0y&LNCh~-NJHt^JRHNws<=$^l139*t7i_wpWs0R>WoeDfsu`EkDCPqL1%m`#+doR%~PRI>XC~XM~Dj zjBf)g{G=ilr~DT94yDXe_gU&bOWkLw`zxfsLi#JDze4&PapoKm<{S~`91-Rm3OPrF zIY(?cNAx&HlsHFxI7ehSM@%?J95_eRH%GiThqBF~X>+ln*q)1(K#vY{L~(P(Z*xR$ zbHr?O=-3?5+8lA(98uXEQQ50_@Em16N14x2=5v(!9A!R7na@$?bCmfUWj;rl&r#-c zl=&QGK1Z3)QRZ`$`5a|FN14x2=5wg=Im&#FGM}T&=P2_z%6yJ8pQFs@DDyeW{2I)^ z2J^2m*M3bS(Ngf5Mk3=ivGJNpZu>g;uSR_I8a{fBIpAv=Wt@Hz^t$nD8b_RR2Al-F zGW?oK>vXT~zNWFm_A2;u@E1mAL$5I#dQBsRQ_8{L6kepv7b){a%6ySBU!=?zDf30j ze33F=)EKH?QRa)3`66Y$NSQBE=8G|x`66Y$NSQB+XaCA&zDSubQs#@4`66Y$s4>pZ zxXc$R^F_*hkuqPT%ojDHEd`h9*O%$nm+9A+>DQO(*O%$nm+9A+)n@d(+Kkct`m$P! z(f#@|{rWQf`ZE3cGX458{rWQf`ZE3cGX46p+LeB*c4c(GzN~g-bick#zrHLz^qbwU zFVn9t)2}bnuP@WDFVn9tOVjiu{rWQf`m!|bY;c7UvJ?puG&R;?2 zuc&NJ@%-_M-e!D<@G3sNichcN)2sOODn7l6Pp{(BtN8RPKD~-huj13I`1C41y^2q- z;?t}6^eR5RichcN)2sOODn7l6Pp{(BtN8RPKD~-huj13I`1C41y^2q-(bKQd)34Ff zugPl*!8LmNHG29rdiphb`Zap`HG29rdiphb`Zap`HG29rdiphb`Zap`HG29rdiphb z`Zap`HG29rdiphb`Zap`HG29rdiphb`Zap`>oEK}48IO8>GKM`gNtJ zgX>Bc;*sm}NVn`O^7wT;a$PkYmVKS{e|5Uvpy%}l;{ma8J?7P?>#ROqXHDrkp1Lki z>230q@f5!u1>F;`%WF++-V7k&mm zUdNBu7wFozri(Kq^671bdj1aQqx6hx=2kIsp%p$U8JUq)O1lT*6(pm z7pdtYHC?2pi_~d~COR}x@H>l|i)zr4t{sz5_`!oaY(-iuf z;|+S*4SLxPYH@>Jc0;w$ujpkrDESR~*$qm5gI;!nUUq|Cc7tAagEHTs%s1#|H|S+I z=w&x)pEqfrH!1T?%6yYD-=xepDf3Ore3LTYq$S^^CEujXH!1T?%6yYD-=xepDf3Or ze3LTYq|7%d^G(WplQQ3=%r`0XP0D3YLL@H4$(Ay{IhSYo7DVx(ANq*!94SYo8mcqpEi7%7$lj}%Lc6ibX0ONET9?G}CQ7Jcm&eeD)~?H1m@ zMPIx1|C99o;c;E{x$n##TU*ce$W)etO$i7g6d{BVLLqg1eR6&J^f~m`ZJ~R@~b@_Y~qtHc60w#D*x2U1^xuNdP4zI0jmNsYZ|@%XSLa zAWP$sXEZx|?)!fD=Y77;tu3K}B{Z-^ zTU(;7Ez#DBTxpRjEpnwruC&ON7P-)Uq{u~QT26HeH~R_N7W_z%93x<>6m*JyMfQQ{g)x;n>RPgSC?EYVk%=qpRQE|t?)mgp-> z^pz$0%4PDIW%8M2@|k7wnPu{sW%8M2@|k7wnPu{sW%8M2@|m*suqR#SzF1lNQOxXO znfdmzM$`AH#P`L@Y0qwznRP5P>saQ#Seg4`W$ufWxi41MnRq{5nNvnlW$ufW)4nfO z=Dt`t?K!Tp&emIcWllNmdmLpk?|)q&_R5^HYQZI5nNyY~jb52kMw#WbSLT#eJ4W9Z zE2q6Or!1{{ORvl+b6>2S_DpP<`(ov^SLT#eo8FJ_i zeX%n4#mdatmZdK5$C*i)mQ@aR6Z=VlGIP0Qsm}2*<$hA29E=b@0(xb5S!#5-SLT$t zFIMKhSeX`D=Dt`t@XDMr_r=O;v$|gHiIQPZM+!re|Yh6~0^OlQj>6JNU zX0Xd@eU3ddT$bDT{Jk=#EVnUwWlovJ{Qw+47sj=ZM|l-*H?bJ~rqGp?v-cIfBg^R7m6dcI=;s+%(hZ>JRrtcV(6cLiXI!|B zxXH)jZ8m&!T(MW$tfb!tz5{FlJHaln8|(pl!4HFeQ|JnB3SCM6C-(di%F$ICUC~lj zXeleaDRf0|CegomQ|Jos(&3BeD!I%5Bz`~TepBcQZwg(}8?hXJkn$el4-xxKp(~kNiEjfp zft$fC;8yUrK-v`V0^&RD`tR>@6~D)?zfb%J#D7Rk`^wP1GPJJ@?JGn3;!U9|nNP4~ zAOHF!@twqfO8hC}PZR$c@t+g_1@W&q{68uA4EW!`yFuTDU*S!m`sRD;kJ9?)JLt8_ zRq~=LPNMIdyPS+jUpXiC>g5>EiSeA6En_?<#&cpkC&qJPy|d`5wl_a<%G!wWoH%7| z#CkiQf3@etDRUC1%t@RwCvnQ0#3^$Ur|da#%AOOa>^U)>6XQ8?%AOOa>^U)>6Z2N6 z7|)4Q_MDivLdAL;l4E;L%v+)2lszZLb7DLvPT6zflszX-*>mEQJtx+C`Hc3Qn70$h zcut(M=fo*{PMn$q?KyEO5889$l<#B4cutJx#3_4DjOWBDdrpk!#3_4DoU-S{DSJ+g z=fo*{PMosm#3_4DoU-S{cut(M=fo*{PR!ehV>~C;d-+^$&xunrpgku}`JQ`>=frqU zjOWBDdrpk!#CT4O=frqUjOWC7PK@Woyq!44bKamJn# zXY4sKo)hCaamJn#XY4sKo)hCaF`g4=>^X79o)c&6IWe9SXY4s~#-0;r>^ZUC!e_MS z#Ci*#kv4_r#F>v$V$X>)_MA9l&xtekoR~L~#TnWco)hCaF`g6SIWe9S<2f;JCyq1r zoH%38iFsdHoU!M`8GBBgvFF4Ydrr*TiDTYQ9P2H7F0tptdJCV?o)haWe8zi)Z{j&` z;yG{1NhVa{=Of<4N#4YB-o$g>#B<(M4NjyJJSV|(61Gh6oCMEF@SFtCN${Km&q?r{ z1kXwEoCMEF@SFtCN${Km&q?r{1kXwEoCMEF@SFtCN${Km&q?r{1kXwEoCMEF@SFtC zN${Km&q?r{1kXwEoCMEF@SFtCN${Km&q?r{1kXwEoCMEF@SFtCN${M6JSV|(67rk` z&q?r{1kXwEoCMEF@SFtCN${Km&q?r{1kXwEoCMEF@SFtCN${Km&q?r{1kXwEoCMEF z@SFtCNyu{&JSV|(5RkfYB)&^&#B=#H9V(g&k0i6a*t3mJVLz@UHBei zWt)oM2gS2^2n5}za1TZmPDo>26Y!ENXdDOdRvQ7Zy^?HR$r(U9YW3R z3$>y{xQ@7qcs=n=#Ci*{e$`uug?bCIP;Vg?>Mg`Vy@goV4fcS&;DLTo~37PBPAO@;r+;q9DmZ=%Zs$VyvVWMLL8*zMf%lmAr|T_ z#KLzG>n+5J-%YHy5G&SOh=sRMqPGw$elKwcvED+g61|03_v-*TZwN2H-VeME#Ox0w?MAl?+ewQKT65(68|3Y?-Tz4@gEX@45Z!3i~KLzoxI5L zpRna8i2H~?Nqi^qpAvtHm{ut-@-@Pt-$JbTR~+h1Uy45i{x?u>Ay$drLM+rJleQNL^%g0i##};sQIPr#V_I`N!dt-mz(e3s@GPhigtqyy&N&q+|PeopMN{{k%>&q>uG5xEs`rv`U6R z%}6VLoa26xJ&beo!{8CnoY%>vjZcAkkB8zD;FrKJgHMD11nPMxZ8HVx`D?{r0iOfy z(sjxYjdtleT)Iv!?em%DC@&GeOstt_mA^v#P4@5__$^R#&ieIV!0&;&TcMH}@B%ms z{sjCtjyMO-gO@?OZXK>$hwIkix^?nf?M+T=Yyxir?XGpWYn|NHvEHjG)Yp)O`f{ky zPFsi5*5R~u%JE!cr>*n*-i5cZ3;zK7x)->m~+sb zCjF{s--Oh1+I?l6=C@r=U1)yW@xQVS%xiwz+y5N=1^7#jrI~z{ufRYICPwv#;(;Ed zPCbaWQ4gZCQs1Hd(09}YcN1^t*B#)4wX6DdC*{sq>H_B~b(#q`{vCJ>k~3ZZ-OI?b7Td-vLPfnBan^XD$neJJ5|qwgsQwaP`PXKjS; z4eN9t!MKi+w-Wz4sAu$4elz9z8nxng`byOsI(`?izDBM1-NgDDwcxg>ew{R=?Ti|bl9|eC8`~whQ zQcvgY_0~WHN;Uv<;Fg)9W}&JL*>Sf?Wmzf+&+pOHPndPXh#h-;x^h*LmV~Kh}&D90PU!u z@?N7IHPndP=(ZN(sG;&+$9B|EBW|M|HN;Uv95uvILmV~4QNxrSHB{c~`=FHPmR@Xh#h-f;QSwLmV~4Q9~Rx z#8E>WHN;Uvjg+;Yv>i3XQ9~Rx#8E>WHN;Uv95uvILmV~4Q9~Rx#8E>WHPn}dR0}w2 zh@*x$YKWtTIBJNahB#`7qlRfaYN)r28ttf|-YGgGw4;VNYUuZfDz>ABX*+6&qlRfa zYN+>!8ttfI+Kw8g?WiG+8m8^2VcL!wrtPSq@7)XSs3DFT;;12x8sexSjvC^qq3#%Z zOFL?aqlRfaYN&hSK9(Id#8E@ds;U)e9!rR$hB#`7qlP$Yh@*x$YKWtTfgLpr?5JU2 zM-6e*FtDSBIBJNahB#`ddy6hdr8sJcqlP$Yh@*x$YKWtTIBJNahB#`7qlP$Yh@*x$ zYKWtTIBJNahB#`7qlP$Yh@*zON2znrJxZe;HN;UvjW2W+IBJNahB#`dxek}xQA5pj zIJTpP8eh1?jv8uw;n^a~&?RqlOw;811N`W;TrY5{??;s3DFT;;12x8ftXlE$yfwjvC^q zA&wg2s3DFT;;12x8sexSjv8j{sG-088q}ve&ZeHW54c6`s8TH6Qz)koCY6~_;FZ^0n(F1E>myD1q0 zhrtnWKX}|n*C@t&cosYj>K#fd@k~p-o`~@g^$sQB^OV0p`HLL!tCVvs!Pkjj244Zc z&o=Hs>a~``ds_sH;G6u))#;fRZR6D!LTBCeUV|a@Y(~9CQaT@vq#XZe@OQ!A2mcWK z82EAUkHJrXo`0y<{GRdCAnaveFY|wx!_5B${@>t#2mc57m*6(e=RR-;`1d-Wh}>R$UP!*4~@*V&xp}nMD7uhdqm_O5xGZ1?h%oD zMC2Y3xkp6q5s`aD>R z$UP!*kBHnOBKL^MJtA_Ch}>R$UP!*kBHnO zBKL^MJtA_Ch}>R$UP!*kBHnOBKL^MJtA_C zh}>R$UP!*kBHnOBKL^MJ@hRd>xA4RBKL^M zJtA_Ch}>R$UP!*kBHnOBKL^MJtA_Ch}>R$UP!*kBHnOBKL^MJtA_Ch}>R$UP!*kBHnOBKL^MJtA_Ch}>R$UP!*kBHnOBKL^MJtA_Ch}>R z$UP!*kBHnOBKL^MJtA_Ch}>R$UP!*kBHnO zBKL^MJtA_Ch}>R$UP!*kBHnOBKL^MJtA_C zh}>R$UP!*kBHnOBKL^MJtA_Ch}2gRJg^8l8J&btly5+#{QE z?vYJ7_sFK4dt_72J+dk19$DQ5@HWmpvYPofI`_zudt^0x@7TFVHswA#OYV^+_sEia zWYf+)vYJuU7b(a+vg96Fa*r&zM>g%;BTMd)CHKgZdt}Kyvg96Fa*r&zN0!_pOYV^+ z_sFK5dt}qjJ+f)%9@(^WkF4e`eO%`rS}Aw)v7*! zM>cTokqw-CWCQ0O*}%C+mfRyt?vd5nQSZUIM>gQ<$UU;;9$9jaEV)OP+#^fwktO%Y zl6z!z7gBr3IQPhAoO@(5&ONdj=N?(j@Ee_bWHZh^vg96Fa*wR$@Ll5EBTMd)CHKf? zoO@(5&ONdj=N{RNbB}DsxkonR+#{QD?vd3@vc7a8Jw73d*ZUpnn~Z-C{sZ{`^6UR1 z{v5HshoWr`fR9l=N<3!Nb?H2HT}G`N4Eprcz+;RAi#W$R08RkO;qs#%yA zX^(wD=xYf))7Z!TwLb1o^+})Fv-D~7-Kak4)9Cw9ecXZSlRh2$u2Y}%Y4n|@KIzkF z)%BseK2+C->OSeGGlEZwXQ7U6)br-Sol@6?(D#+@l)7ew-p`%NYK&T?Beb^fOn;X6 zKGox$sQ1ovKjj0ITgi8(hmERb?M=08w6^~u^`CWr>Mv5C06&@fjN&`NKLtMpzGzIh zd7E@Q_#2c|!8eV;tu7Bf41OB?Gh^nn{x$P=#Qz|?OGo^S@Dreqco#>!E9E2JmGTkq zO8JO)>4?U5&_}#WYa5L|;$1qT@x$P!!9O!{#JhAv$NwO_8;0+O;k#k@ZWz7?hVOyl zd*t(1gL{<4%?R}t3!zpF3QvF&;7RaVew`%tJ(qjZ&lA50ehqwyZC(MjqEFlW09-Os z3-?e9_XOL$y)rbH-w!@O$u8m?_&6m`66-A%+H%sz^?MbBdW(hd4BI?U%$fMT3MzMN zx<|R3QST@aexF!t2o=wQKLLHO{GQ+qwkd%(D5-!|@J*xNs~`-)22d*oRid?mLao~o zYGt7C?UdZCm~Vawt>?c~K0G7*0k~v@6TaT1cn2llF=}tdn}zqP9w&s6QT3$~)s)e9 zFz;3WYkY~4AA@#@dsX8qSB)DV0C$PKd)1#BkF$+y`ChT=ZG4yWUUBPR^#&xN>-S#u zlExR=hGU6IZ~vxI{oSbWE#L-k$vw(#I_EvXHl4H3&jblQFR?BC6YY7MpXCwiDP5uS zgl&GxEZC-V*7iDQqx+6+eilaP+0kvmBj6LD=NY!qvu_K&!hfFw&+@B#_HBO3OsEyA z!f#OSwHe#|yopdx=?bq9{~Ro{2hTQd3u4d?xh+%YUo-WfXBD>5r*ESl|E!;%3O=js z$Y?cwR(X+e&Zw-$I0)_rhrnTQ1l$ik3!VnQ3Vt1Y8GHq_az3jJ#JC6+!NjOhhH(w( zKH{@FPvcF(?W&Rcgzne2OGTr?qoC)JwsX$gr6rfY1X@emxr*(oBgLv6ZK>KZ-b={? z-cotmgwXx<_P~AI_FxP=26{ElcI9R+cRscqrEMo4+fF{VT}tyd=54!_=GY8uS6g;$ z9=0nVbL=%X+oeFG+1T#)X$$AUHz_w8+cO!k!AJBHf5NvAo0IKor`iKr-2pQ@U}lHL zsx!e3jZ%%Xpmn;-i(CF1AzW}Y_9k8?mmUd_~s$Ws^4#uH7G!Au% zRlNgM@6edk@m_ErXr1rS$kb?^@6h{y6Tr-jRyVbsvlkTqpN;&)vvcm z>9}$*Z)08cqpN;&)sL?F(N#aX>PJ`o=&B!G^`onPbk&cp`q5QCy6Q(){phM6UG>ZB zd@Sp#A6@m!_wG|{UG<}@e%e|;y6Q()128iHGXv;q09_5Bs{#CQ09_5Bs{wR1fUXA6 z)d0F0z#9i(X#kc6(A5CC8bDVA=xP964WO$5bTxpk1~k_(6Aa*=1L$f1T@9eC0dzHh zmkyw-0dzGW-bVE=>uLa94d9{!=xP964QTemd$z6yG~;2kt_IN60J<7LR|Dv309_5B zs{wR1fUXA6)c}qZ3||fYO59!z{)YH(i0>zRxu5>@etOUQ$tdoZTCN87OD#rc z2=|jA+^_%61o!K|GrVioXnP&S zxZT^+Q$L{WLfb35@HQ7Hp9Oznlp7n}|307$L0i(NKcL*ev3vFhrI4#a=fDrrOFk%7 zIQ|LfUh+Yy!X=l$Wuuf}bhi9p@PxNfZ91L;-2*_j0uQHZ}RxhL?KC56h4t_ly!Np?vU z_X#J6C&91qtDa|6xmVckN`I4BZ*x`bmbFV7aO@s=7tXm0x7?+xc8UAnU4EOZ(7o_3 z%^`blOZ-c3a}E4mOPz_7V|0(aOIew=k&1LaQjzwr49z7w`E@t3`{iAladNqP=Utk2 za%?Z%6^sz?2i;Te^4na6dYh}zYTt#s?$S(@WB1*==zVt4@9a{);}X5iRrm_=tHhos z+$GidteoNOVitOrROhq(324{dr99Akw)gH*Ht5)XwM(;7j_t#{=(Bb)|GW$D-NpR# zE*yB5w5MZ9dpee~MEwgN-h~72k`Ddr&HD8rTKz+``iF4Hhj7S;aL9*fn-9@8AHo|S z!WAFF@gBnKa;PGQDsreIhbnTYB8Mt+@`uqNr(F7~(5lFxiX5uQ>9`Xru_|(?B8Mt+ zs3M0da;PGQDsreIhbnTYB8Mt+e#dW+LlrqxkwXq>=9ID8niX5uQp^6-;$f>uT)_$yt z9ID8niX5uQp^6-;$k7+)P(=<^Hn6RPivXcoR6%V6|-RxmEd)Un$cC&}w z>|r;1*v%exvxnX6VK;l&%^v*q*onYjj}@|qJ?vo*d(gdKm$L_Dud0zf>|qak*ux%% z*uxNe7@|iTqDLE|M;oF?8=^-Wl1gWSA$qhSzh_dhd$b{Xv>|%5A$qhSdbA;Byxzt= z+K|r8=pJoI=O*ObhB&t&dbA;(q02oVGDMFyM2|K^k2XY)Hbjp$M2|KUxJMhJM;oF? z8=^-WqDLE|M;oF?8=^-Wl8SV;V!-?VKCyeWA$qhSdbA;Wv>|%5A$qhSdbA;Wv>|%5 zA?3sR7d_e#J=zdG+7Lb35Ix$E7}inf(T3>JhQzks<3o?OmmX~|J=$J+w7v9bd+E{k z(xdIAN83w}wwE4lFFo2`dbGXtXnX0=_R^#6rAOOKkG7W{Z7)6AUbPn;mmX~|J=$J+ zw7v9bd+E{k(xdIAN83w}wwE4lFFo2Y3K>Qr!zg4Jg$$#RVH7fqLWWVuFbWw)A;TzS z7=;X@kYN-uj6#M{$S?{SMj^u}WEh1EqmW?~GK@loQOGa~8Ac()C}bFg45N@?6f%rL zhEd2c3K>Qr!zg4Jg$$#RVH7fqLWWVuFbWw)A;aW6!zg4Jg$$#RVH7fqLWWVuFbWw) zA;TzS7=;X@kYN-uj6#M{$S?{SMj^u}WEh3)Lm~T6$UYRZ4~6VQA^T9sJ`}PKh3rEi z`%uU}6tWM6>_Z{@P{=+MvJZvqLm~T6$UYRZ4~6VQA^T9sJ`}PKh3rEi`%uU}6tWM6 z>_Z{@Pzc|E4)_LiFoHrxP{;@h89^ZBmBPe79g^Zw( z5fn0lLPk&sUz!g1(zI~9TIC1|89^ZBmBPe79g^Zw( z5fn0lLPk)?2nrcNAtNYc1ci*CkP#FzfBslegYTER{ObbfS-bt}i;bR7*w3uperE0VOII%WHSi|k=ln+W;B$T>dhj`Z{T#o3 zo;LD%+Q{co{^wD?zr;Ne_)FYE>2OAP6!cv2qf(UdB}#q_dS>rY?Lp<*gVA%vk4iJs zLeCXHDxG*6&$K)$wfI-h6+bG?_*c&rKPt7jo|Z99MGBTUpi-_=ZX(#e#7W-&;gyZ%RN_oKy_#I?AZb3T}F?I4yXoQ?osoB zz$1RQpY$3QRyi4GKxQs;?JYh#VGzfia(Fy&!g}^D*m+}_#efeNAc%T{CO0A9)VmCYQ!a0`xq`UhD(h3 z9cU`?SanQaByfD5_**UAMUMD}6z5>3%mj6!tbN>7Pah_Kx`2{6j<2@#~^nQxO z*V(2-d;_c)gTQ+WJeNKetOD!(FS)DnZtpGlA8hG69bv_-aS;jQhbL{?QOk+LA%fyL~qBof7UwVU?vCieR zmoc?^|LR_2Ol{w>@0E|y>#+?WOL_OH^FOFUO|kn#9I zM&btlt%t}Z4#@)*%l%X?_cOYOJwy+Ch#vNk zdRUjAU`vnb4$;FNQV;9@7Qp8zcMp3=S(*3nRbuzEhsZh((c2!9qP&g!+(YCThsdlB zsW!D|@~cCtQ^y-X_rhP`8o$6beu1<70%!XLH1Gv9z?bWT$H__fe!XJnPX2!Vw9r@W zuh>rrebs!+Uid##|3UbmJe=>^3*FxNuD#H0obTETol`vy4}9HTv0LKfu<^Kh2gmNI z{iS>3%RVms_2X)Hj@@fNE(ZLoTL)jg7rI6GtM@ABiulsKVr%$u@{lK_%&Wl@(xh<~ zd>!-*{1Z~9@fSwHm3+jDwivJEg1^yH0dH5&j(Voz`IsPel4fJfl6H=qm z^Q%utlg2FQobUYqddPg46| z^cMkwar(Y-YIB@EZk*a2r#8o_&2egToZ1{GD;}pd$EnS6Jbawm9LKlEsm*b`dYsxE zr#8pQlgFveacXm%+8n1g$EnS6YIB_09H%zNsm*a}bDY{7$K}SU&2egToZ1|RpK)q) zoZ380Z62mJ4^x|m4^x|msm&wQ#Sv=Z2(@s8@yHRz zfJbnWBk+HOG2IcEKLYbdVEzcqAA$KJFnrwptD1LqvKR=3}9~J-J<`n2z^rKwGQO^G;YB`Edj&kNl@%f|p z{84=VC_aCbGe3&kAI0sD;`2xG`D5^Z4E~S7|1tPK2LH!6=VS1H4E~S7|1tPK2LH$4 z{}}uqga2dje+>SQ!T&MN{22TnsJu{|Wd%0skksmJ{gz1pJ>s z|0m%81pJ?X{}br{1pJ?X{}b@fx8?)BGA}g$C(u9NmsjjO=LGzpK>sJ;pRddZC(!>1 z^nU{WPr(0|=moySJj0i`qAzhpUuLZLWyX46W(4^@^{{i9#8oT z??#WOo=$r_(Jf3=*@sz*k?%3lgzUMCVc*@^%cZu`frx{N@9e6zD zue!Tr0`z!_ueu98p5m+SLXW5Ts=LtRsizrF@eOyy9#8oj?*6aGQ~rj#V~?l&4R^;L zPx%|}jy<08H{AU%kEi?%cOyz*JoPl=DSyM=?0G!pZ@Bwk9#8QNcOmu2c#5yLtHk3e zzTPhMc#5yL3q79V>+M31r~IvU9g*=A-)dJ}?>#e~^0(TxJ>w~VtKG44Ie)9&=<$@l z)$aXxJjJ)#g&t2m&3MY+YIp4Ml)u$J8cfjcCTMpPw7UsLRTE@86O5`R$ayBD_N&2! z)NXX{Iw7qZJ*v|Ca&!)Q^9^Vn>M2t1A01AR5lt}8njkOIJv9GUDl$4RnviCU&Wk2g zvqq1zCd9B~=Ry*F5_Ri zJn(GiNoG4wGTV7l*X1oe&v`Pi$DU*z*U7*$oG0n~PICSyIrEd8^GVM3BD;Fd{(tEBRmRvock=Z$Imj#c$QJdv&;`aD?arrBaUYoaXibM@Ux6No@LzeEVI6+ z=u=M7r<`Jz?3Auo-}7Mp@Ko9}U8i*IF7f=~DdrDP(fgdD_c_J<;VE6Oe%19F?I)*n zrH(z?I;AT$+A&V)8XddUpJM*-6!V9tm_IzFYuB&Lhn%AQo)Ql(@v5g&;^As=n*8K6 zJ=bY^uG8cvr>UdUc=c%<_%u1mX>yX&Br*XW~c-?7g znz6FFCgl%`IrB;N$fJtA0%uZv zvExb5I+^5(CYjru)OG2<>V>_{w?NM!Ps(BZU(aez(hEiZ5V@yzq2dSRp2u}so(CspGDY}EH1gl^rF>X#i~0o^Z8 zs$X`AzV9IXIs3Uv$uEe1$@wgSMaoOyGJCs0TrtWIwSW1caTVxQLzD7D~0*V})dJ^N|IN%hpmC-~Jp^`v@gm)JQcalA?O(T=Ho&3QWZoadxG+^3;*?>h*c z(M_tSFjxOVjDDnfm!lc=+Wr?hQLpV--**tY{Z29qI;p!bs&Vz*{?{)-k60(w?|4hk zg-)vXaqO9&N%cXFJr_DD2k`m(NvKIVfYH7Aq`&VV48S^Xi5pC+#p%E5zl?U^N%dmJ zwQTA8JCo|ojq7|}{=S3IGfR`|S zh4PFG@{9=bj0o~_p@|@mujX-~JY#`;`W)pR3*;FK}^JM;cGXK14WKWRCPx7h}ZBL$`$4~O)`FZmEJb8Ye zJU>sKpC`}HE6>-N(97gikKTjlQS+)z$99jr>eR8_Bd?luZ1>31`{Y&2E^(fpC(qB5 z=jX}u^W^q^&cN?3R}%eMDync|CXU5`A4l z=sqG(KA$I_&(nwIrCx7uPsmHdj_nC~DcN!2f04=O$>j5D?=Fe_tJ=HcEU~lqJiTq6 z>^)ERo+o?H)86xH1^$<3!18Jfj-9>d$=<)B7BLZgMJ+-oJzo_%Gx>^Iu}}(8xfEjb zO0chpE1`~J^y;YsZK^<J07Z3^QP7 zXf9P+MSR*;Vc=#S?S*;9`B!(=8YcjpOs3D9`B!( zK8+q{oz=M+J@!9Kws4kg;Vjw0S)HNE$r;X)Go0mY&vLeB$sEp-IXq7-JkLDj^KA1x z+q}S-@dd_=FEA2(fsx>gZ2uzLzsUA4vi(=t{;O>NRkr^s+fS=}I+#|ukg@G_`lwi% z*4)A#q3@+mGs4yPgemuvIMZ;YueMUM>=Nx$d(b|OzMrdA{KPrXE2gHYab>CAGj*;0 zO+A9#7xap$X=;C3v(w&#`JC1~gJZKgt@#AU=60HK>onumX~wP7nqly-=5|`6Y{f7z zt+BRa&oWIj;+{qcFX`GxgO_yeLay#5jlX6T`?_AzC|juO(yzKMqZRuSXZ}*)apFrF z1sJW^mvlbH6)-mH=o3PZJzwI8FN@Wg;AQ3tUS_V~WwGHBKcDroco6E$jc*ZtgIfCr zwe}5a?HknEE9~bL_VWt+d4>JF!hT+1Kd-Q#SJ=<1?B`YX^D6s!mHnKfrJtjXpQDYR zQyZTN&T*IFoN8Gyt@|8z8P3tJ&(W^W(XP+YuFuh~&(W^W(W1}MqR(-c;hgHx`}rE^ z`J!`-jLtD8I>%jxbE;F9d(3ihv6~`y77wnp*cv z@S0k;(RX=XQ|mVRT3%D@Hu^5lYiiv_-{pBtt=qU4^z$sQsdXEDm+dvRZlkZ_HR;f3 zFM16ZdW|!GO)cFe*FfLpc}*?d=rey!E!~&}eV6AoweFeVJgx6Mt?#^A?q`DY)a-d` z;XJMHyp%bua-aWsDN`|R?L2MmyvE&ERpJ(RUV6|r!9$efh#w|?1U$iit+(^iu=nHD z6z8R6@4;&-&P&gZefQx!ZSXu-eV#UWo@+mk8=r@P^SJSOcsNhnJP#Y^X^H2#_Vdhl zomYKnpUirlSFJhTDEt=J^(~I_E%yH{_V6wK`)%Cp+ql`csqt@94yr3G~BlP-GZe?gH)Zg6hlV zZg&@Ww)XER4;<*es0A!q_Z~&BE9$jLpK>ER4;<*es0A z!q_Z~&BE9$jLpK>ER6ja#(oTAKZda%!`SPTzfSqt#uWN5`Q#ic?dRw(=IEj3=%MCVi#r!Q={=}+jGiH%qtBY7 z&zcLodTLJf;$L4RcCRrPoCCiNdJH&6uQ8`g-oM)C=aju0y@Gd+mG*P2w4Y<8{TwUp z=U8b!r~1-1tn!^>mG2xLHHSORDeLyH9%Ig_zKn0D#N*A2)Xqg}=OS~z7o}L0D|0Y< z&i10z>)3Pk7nMZ_smF`d*G1+eFG`s%_gwwOz*)gX>Cmxro{Q3+(es2Cr8mb{h|9z) zU<^9jxyW4oMP}zNN_8&rT>V8U?P@TOLgrD(JPMgdA@e9?9)-+nygU=kqmX$NGM~0W z=26Hz3YkYC^C)BC}bXm%%hNb6f%!O=26Hz z3YkYC^C)BG5LN1|@ODNOu8;>_ArHJl9(aX3@Cte0 z74pC<8s%ww^1v(Pfmg@_uW%JtIR7hw^S~?QKUX;OE98M!$OErv#OGg~2VUXKuaE~` zArHKwQJ%`l1K*&9zCjCpgI4nft>z6{#~ZYcH)sWK&nP+p3b~F#uA`9a zDC9Z{xsF1vqmb(;nP+p3b~F#uA`9aDC9Z{xsF1v zqmb(;^DWQ-O3MrwG5(+7ykP-?hp^y>^DWQ-O3MrwG5(+7ykP-?hp^y>^ zDWQ-O3MrwG5(+7ykP-?hp^y>^DWQ-O3MrwG5(+7ykP-?hp^y>^DWQ-O3MrwG5(+7y zkP-?hp^y>^DWQ-O3MrwG5(+7ykP-?hp^y>^DWQ-O3MrwG5(+7ykP-?hp^y>^DWQ-O z3MrwGWfZcELY7g;G74EnA()mb5+EN*>OFUb6BiK#sIl~*ueqHXF!yC$h z9XoHlp-kAZ-+Xd|9P)@}Y^q&jgW)%mQPE#Hvpe4bt(azm;!dN%TgvS{zwbCNfdOFMQ(dP5ntW9OweR9`}6 z)cP0M=?&%8jy+d-L)z1^q&*!=*|q*f)_Q}i^@eolUvJj0WmU-qly?+#Hb=h z75?t?o}k96PJjJbF*6u7v{6GFHMCJf8#QJ&YSPAxw)7M0H7R65cwT-|V^wEOXX5>M zRcDQ!w3hxCw)d*eTH34fYH81z*L1et(yKaaX|K?$Nm2fnS9R934#a3TuBk8fQM{_N zCZ)N=GlaFYSM1cJI-^&0)>ze9Qy=Xuy{fa8_NvZW`VF@Cs?J*4t2%2^srTcRel@Ao zu~&80#GcWsI%`@PV)Uxcn%0Ln_NvYrt2%3}>a4M<(_hNgztD3{de+`p)mdYZ`@%97k?XN+v>a6L$zj4rKE9HAX4-r2MdZwtRR^aj>Vz26~F>6#)D{wqQ zxmR`8)E10h)maO?sbamICH46s(V%zN;v&RXDmIyL63YHDlVgI9Id z)Ycq(wzkHq&Km8mCf%AVuj;I66^ii(Aex~i)@X?}T4GHt(fjdCZ;e%*HCA=jSk+l$ zRcDQvv6|Ycw_IdPuj;HZOIA}mb?iIWHRWc$7O(28DK|5ERcB4BP>f#HStC!Yk*C#Y z*EO|k?SXb(Q@eJ&mMy)ivql@QsU_;VSk+l$&aI}F?k&Blv!?d$*ttPXt#wbv-(DXT z>YkBM8AT?gwl*!)Ouq03#Q#dHXEapuI;fQxinS6$sAn`XDX;1j>KP5;Dp1d8DAsB; z;oaU+`t+815?QD<8$zww5NgeaP-`}XTC*Y4nhl|z(GY5#hEUIF2$w)TqmfC84Wphr z7OwM_x>Cn_MnibBN-|tshO5hPbs0bTmC4wVgokSrLcK{ts3*UK6O?G3r(&%l5XzT? z@+G0NT%q2iA=Jt=q1FltmGudg^$Gu(?d492wenM_m7hYb{1i%KLaqE1Y7L?AU-_3- zek#_JUqU_kCDiIcp&Uu5^`AmHl2GeEh4Y}+e=64cPoca>s3*UKKj*(%|EX9{3<>q* zm++UwT2-jHNUSHn6qktgNVkZ zbEsPOmIIXN$uGrv@=K^Ezl3rjp`QE_%6Wu(@=GY^5$ee=p;m+n_2idO&LfoP2=(Nb zP%A=(dXt7wPkssY1V8d1esBPx{t2=(NbQ2ry- zlV3uuDi_LagnE;PP;MiX+X%I4RH#vaP@@2$Mgc;N0)%oKA=;4JcyC$>EYy=S zLumI{jZ3WdIt0abgVngfYJ6a|@&}h_RkrYwW7@)MueDSBpj>D*YF~}cSEKONXnQrP zUX7|(t7r6ot;5wQaJ70p$1i|dYo}Oim4$keOZW}SwboAYtHc^*E4C_DqleWfVYO;s z<<#bCjq&v>b+=l5!A!>At-dO>x7VpIjP~|AU6IiaU#A)o;@)-mb{)R$Z%n(~zFjBg zjrQ$2e7jC9#j);_3U!B6Xb<<7qmA}(e>vKy`(GJybeDPsf&RI(86<75F}{#}>iiwQ zEIo(LC4}FnL}O>gW;=xK5Vk|l6saUJs%071fNo78R}{j3=(}KMl*yu z6SX6kYXy!_Yp8^IumI|7(JHZ@uhE>Lw|8&8M)huVy{}QdJ9fRV3CNm3;qOjFT4h?UZeR#$L>SdX#UXnCTLZx(JZ1$aNsqXOLS}>UgH@>p_yOfc}1c5 zU!xgCou^vsbS4Y`S@_SAV`SkltMSWBCJU4PmYHKSnbr70F??p>GfV&I?~dtL_{qYC zzbxhwGvKd@8GY6Mf|${LP*(Y>QR^p#G3YDGaxGb|g71i_M7gNY=iI*uXV5pqYlinrT2Y z4QQqT%`~8y26$*dGYzoOfMy!tqyfz|Xoguw53HF6SZY8s4RFSzZU-2!v9)0TnmS5(ac(yTnm$HVR9{+Sqq+*22SD z7+A}-ujQ)Oa=mN0uC-`pEt*-2X4Y~=Yq^%ST*X?Qzutd`X4Z1fZ=tt+i&y<+-on+r zh3on?UCY(XujyKZIzyvYSY;Zy#zwBO5sfvXu|_o3h{hVxSR)#1L}QI;tPzbhqOnH! zX@s9fm}!KWMwn@YlSVjcL}QI;tPzbhqOnFa)`-R$;jIykHNsva8f%2ZMl{xl#v0LB zBdj)}u|~LUL}QIG+=#{+;kglwHNtiy8f%2}Ml{xl#v0LBBN}U@E*jBTBN}T&V~uF6 zks4`4V~x~HBN}U@b{f%GBel?o#u}-MMl{w)eXWE4b@0Cq4%flqIyANpCfC8_I+$FC z#@4~-I`~`%SLp15o&bf(mZbCCnXr>9xG@+R$G}DA;n$S!WnrT8aO=zZx>uutCo4C>@uC$3O zZQ>f6xW*7sn$S!WY&4;nCOBzAGfilw3C%RYQWKhKf~zJp z(*$EpXr>9?n$S!W>@}g8COB+DGfilw3C%R2nI^bxLNiThrU}h7p_wKaZbCCn@Z5xE znqa#L%`~BzCN$H8W}47U6a24-|Ml>{9uC*T;d(T)9wyhrtSg<{H%wK_3*GB2G(=!>$&RnT=+ zqM69tq!Eo!3b`sgsb1zLDa7dP@g~oX3O$CpNj0u*RLjO3_&D24f_kPv<$9(-=oyBa zR7b`OlsFr|Ni|};>~gVf425qMdq$66-YWL43ccl9#hX!U8Z&PdSNc_48K0o!EchCD z1uTPFuc&RbUNQ4lF<`6*osGPey4#>5PUsyU9w%;4d(m?mYA;5QTsFYN2Jzq$^RR)O ze1qDEOMXm=$4478 z@&#g!F6F!2d~T51jarE+^mucFST&l}4brm^Za2W~2GqL&-ENR#wP)4-OlBjB-H2j0 zqS%cnb|Z@2h+;RQ*o`Q5BZ}RKVmG4LjVN{_irt7}H=@{$D0U-?-H2j0qS%cnb|Z@2 zh+;RQ*o`Q5BZ}RKVmG4LjVN{_irt7}-^Tg8jXl4OJ->~8zK#FBoqqQ1^s{fLwZ5IY zzFAj#HFLABRH*Yex}SZA%I_0u22yy7IC)3veW1QHs`x|1w}Sf8s7myuQQ>BAi{>=m z;V+E}{}KEg_<2w(>Q#OK90m1NVwHGo`;L_B@g1r2;J3lo!JmQ`L96Q>X)E>}{?e#$ z9k?FUSBX_}3wWE)$6p#1ZU#TXHkyf5iDqJj9yPziUm6wai2$MQx(ff?Tl!0*!rujd zAN)h`W8lZZKL$SmeiHms@YCS0_Os3V&)f%U-d^$F>nQJp|98UwJK_JG@ZSvo&G6q0 z|IP5<>@U4$n&H3MUwTz+{+r>y8UCA7=D!*Ko8iAXW&WG}rB|W(Z-)P7f9X}R`EQ2* zX83Q0|K^nWZ%=9KwwPMQDal=*Ll|7Q4ahW}=N=~dy8UCB$zZw3UGv>e9UwRdq|K^POZ_b$i=8XAo&Y1sZf9X|d z{+l!Azd2+6o8iCNUwTz+{@(@v?}Gn#!T-D9zXkqV;J*d_Tj0M1{#)R`1^!#$zXkqV z;J*d_Tj0M1{#)R`1^!#$zXkqV;J*d_Tj0M1{#)R`1^!#$zXkqV;J*d_Tj0M1{#)R` z1^!#$zXkqV;J*d_Tj0M1{#)R`1^!#$zXkqV;J*d_Tj0M1{#)R`1^!#$zXkqV;J*d_ zTj0M1{#)R`1^!#$zXkqV;J*d_Tj2lQ@c(Z3e>eQU8~$72zZL#l;lCCBTj9SI{#)U{ z75-b{zZL#l;lCCBTj9SI{#)U{75-b{zZL#l;lCCBTj9SI{#)U{75-b{zZL#l;lCCB zTj9SI{#)U{75-b{zZL#l;lCCBTj9SI{#)U{75-b{zZL#l;lCCBTj9SI{#)U{75-b{ zzZL#l;lCCBTj9SI{#)U{75-b{zZL#l;lCCB-vj^ef&cfw|9jxS4gTBUzYYG|;J*$2 z+u*+q{@dWc4gTBUzYYG|;J*$2+u*+q{@dWc4gTBUzYYG|;J*$2+u*+q{@dWc4gTBU zzYYG|;J*$2+u*+q{@dWc4gTBUzYYG|;J*$2+u*+q{@dWc4gTBUzYYG|;J*$2+u*+q z{@dWc4gTBUzYYG|;J*$2+u*+q{@dWc4gTBUzYYG|;Qto*zXkqpf&W|Jza9SD;lCaJ z+u^?*{@dZd9sb+lza9SD;lCaJ+u^?*{@dZd9sb+lza9SD;lCaJ+u^?*{@dZd9sb+l zza9SD;lCaJ+u^?*{@dZd9sb+lza9SD;lCaJ+u^?*{@dZd9sb+lza9SD;lCaJ+u^?* z{@dZd9sb+lza9SD;lCaJ+u^?*{@dZd9sb+lza9SD;lCaJ+u{Gc@c&-;e=q#M7ydio zzXSd|;J*X@JK(c z|9<#?Km5NR{=4A63;w&{zYG4m;J*w0yWqbI{=4A63;w&{zYG4m;J*w0yWqbI{=4A6 z3;w&{zYG4m;J*w0yWqbI{=4A63;w&{zYG4m;J*w0yWqbI{=4A63;w&{zYG4m;J*w0 zyWqbI{=4A63;w&{zYG4m;J*w0yWqbI{=4A63;w&{zYG4m;J*w0yWqbI{=4A63;w&{ zzYG390RJC={|~_b2jIUO{=4D78~(fDzZ?F$;lCUHyWzhZ{=4D78~(fDzZ?F$;lCUH zyWzhZ{=4D78~(fDzZ?F$;lCUHyWzhZ{=4D78~(fDzZ?F$;lCUHyWzhZ{=4D78~(fD zzZ?F$;lCUHyWzhZ{=4D78~(fDzZ?F$;lCUHyWzhZ{=4D78~(fDzZ?F$;lCUHyWzhZ z{=4D78~(fD|AX-VLHPe5{C^Psd*HtZ{(IoR2mX8DzX$$%;J*j{d*HtZ{(IoR2mX8D zzX$$%;J*j{d*HtZ{(IoR2mX8DzX$$%;J*j{d*HtZ{(IoR2mX8DzX$$%;J*j{d*HtZ z{(IoR2mX8DzX$$%;J*j{d*HtZ{(IoR2mX8DzX$$%;J*j{d*HtZ{(IoR2mX8DzX$$% z;J*j{d*HtZ{(IoR2mU_<{~v{;lCIDd*Qzq z{(IrS7yf(UzZd>{;lCIDd*Qzq{(IrS7yf(UzZd>{;lCIDd*Qzq{(IrS7yf(UzZd>{ z;lCIDd*Qzq{(IrS7yf(UzZd>{;lCIDd*Qzq{(IrS7yf(UzZd>{;lCIDd*Qzq{(IrS z7yf(UzZd>{;lCIDd*Qzq{(Is7R`|aa{%?io+;pW{$O) zV{PVGn>p5IjpyU;+d0voQHJIA`6W8KcNZs%CHbFAAr*8k42wsNek9BV7b z+RCxEa;&W!Yb(dv%CWX`tgRetE63W(v9@xotsHAB$J)xVwsNfh$gzIw|F7=L!=otj z_q(b(lN-=*2m%hsC6LgQJBmk6$T19I7{C}}Cdnk3FquwIPq@4wD5$8x1J_$rM8$hO zR$Y%3Z(Vg=&(-z7WA&@9_kHc}Q*YNyqVDc@pM9S1A3u2VsZSqOZ}t1Bdb_K-W(HUl zz^VXN1+XfBRROFDU{wIC0$3HmssL66uquF60jvsORRF63Se3x40#+5Us(@7mtSVqt z0jmmFRluqORu!&oDqvLss|r|Ez^VdPttQ_u)N1nmLajE9+G;K7*aKwCs14VW zj!An6_RAJts~rj}=gez0TE|QFMA(yHH^Xj$rBCtD(LL}Vgq16ZYDt%~Q#%$R*z<)RJCFE8iN_l3tM|y^>bG0jb3skXpV%o-ZcB9soN9_CVO_ zurpx~f}I1K3p)?i16u%V%JNCCq^0j0Bs)kouS0a|5S=JXheM5hkXsY7(?5uJKOrykL%M|A2Doq9y49?_|%d(DTU9?_}S zWOV8goq9y4UX#(O*JO0+H5r|Hy4T3_WpwH_8J&7fMyDRpsYi6`5uJKOrykL%M|A3$ zj7~kGQ_o~{>Y0pAJ)%>O=+q-R^@vVAqEnCP)FV3eh)%tb(Ww_QI`u+Er(VeD)C(D% zdLg4zFJyG;g^W(UkkP3ZGCK7_MyHjQ0@gh22M8}Khco7{hqT@w$ zyoin$(eWZWUPQ->=y(wwFQVf`bi9a;7t!$|I$lJ_i|BX}9WSEeMRdG~ju+AKB063~ z$BXEA5gjk0<3)75h>jQ0@gh22M8}Khco7{hqT@w$yoin$(eWZWUPQ->=y(wwFQVf` zbi9a;7t!$|IzI5`18+X?<^yj&@a6+=KJexPZ$9wm18+X?<^yj&@a6+=KJexPZ$9wm z18+X?<^yj&@a6+=KJexPZ$9wm18+X?<^yj&@a6+=KJexPZ$9wm18+X?<^yj&@a6+= zKJexPZ$9wm18+X?<^yj&@a6+=KJexPZ$9wm18+X?<^yky;H?q7HG;QB@YV?48o^s5 zcxwc2jo_^jyfuQiM)1}M-WtJMBY0~BZ;jxs5xg~mw?^>R2;LgOTO)XD1aFPttr5I6 zg11KS)(GAj!CNDEYXonN;H?q7HG;QB@YV?48o^s5cxwc2jo_^jyfuQiM)1}M-WtJM zBY0~BZ;jxs5xg~mw?^>h2XB7x<_B+n@a6|^e(>f8Z+`IR2XB7x<_B+n@a6|^e(>f8 zZ+`IR2XB7x<_B+n@a6|^e(>f8Z+`IR2XB7x<_B+n@a6|^e(>f8Z+`IR2XB7x<_B+n z@a6|^e(>f8Z+`IR2XB7x<_B+n@a6|^e(>f8Z+`IR2XB7x<_B+n@D>1X0q_<8ZvpTY z0B-^C765Mn@D>1X0q_<8ZvpTY0B-^C765Mn@D>1X0q_<8ZvpTY0B-^C765Mn@D>1X z0q_<8ZvpTY0B-^C765Mn@D>1X0q_<8ZvpTY0B-^C765Mn@D>1X0q_<8ZvpTY0B-^C z765Mn@D>1X0q_<8ZvpVOLaWu5h!xs$*dw)0@|$3ff^CMqPg*uzp2KFsmSE5Kus=%6 z3*~-Z1iKQpMOx7(kBZabZzJ0T#3mp%X%evsh)tSAY|l;|wg9mOh%G>D0b&afTY%UC#1y# zEkJAmVha#kf!GSfRv@+lu@#7|Kx_qKD-c_O*b2l}AhrUr6^N}sYz1N~5Lla-%f3Q}*9R<4H+Qa_URLD+|-rG7z{T0WIS zEnnIdau2n9X%B#%0(&6rbl91&2f@yP&4rx@>wzsG+eyrHl3flf+gm4?=>#*KV5Sqy zbP_Xkl$eoLwzp0&(+Orei5c2M%t*TuwnbVn(@D%oe;e6uAa(<>8?opHVmA=Gf!Gbi zZXk98u^WipK;Yl~h!G%0fEWQ{1c(tJMt~RrVg!g0AVz=~0b&G* z5gteUA+(ds)>tASkryAZYx=P#zQ zn5i|wF2R03{H5>%@R!lp(9~AImn$($>QfSN6YPnwC&6xp-2y9D4Vjp=GcjvtV%E;Y zteuHjI}@{Zrgk~7u7IUao>HzWVd+~y$-fHrYFPTlPTI2@_F7o_Tq^Ck9`;t)+hA{p z{T=Kbuy?`AmEoo)*SwjUT!Ch4auvNv3LvlO0i5$7eEInilkTc=|0D3_x+YV548C05 zWNJ^qmus9%jedEAtXyehYVuQKrbeGpB}<=CB`ZHQW@_{qRkHMnX0r4<5oBM5l`C^h z?R8kWKF8GLCjv~&QkvRZ@ZW}g2lhKzXXb*HpSLnuHmqDpWit86P!sc+CX=5GH8HDc zvK;twZI8*uz?UoKOg0{Nl8iE&0y_tLa$)DedSDA+i(u!YoWo#`fUT5VF|;>^_J%o9 zlcBw_I$1I)DxE`$D(!Mv4(Y1&kCgS{N6T_}EBrQjl=PO4ipg>hsjl?h@Tb6^3jaX( z(_v>|&rJBU;2#8kHvBp8=fcm0p9g;)d;`7*em?vH_=WI`VM}2ThMf<41Z)K?t{pSI zrl`Xnx!%ka4e;fvCsQnfFV{YqnEN#a`W9IP)FKOS5G-hs1ue3m zMHaNkf)-iOA`4n%X;OQj08Tk;SAI zSq!wAwB1@oGLW?ZCv9h2=7PQC`Qj07hwa5}ui!33v$P!YE zEFrZh1}%y~i(;fOH_#qAyB>qW#GpknXi*GW6r%{9rVTB!p+z>d$c7f# z&>|aJWJ8N=Xps#qvY|ybw8(}Q+0Y^zT4Y0uY-o`UEwZ6SHnhlw7TM4u8(L&Ti)?6- z4K1>vMK-j^h8Ee-A{$y{LyK%^kqs@fp+z>d$c7f#&>|aJWJ8N=Xps#qvY|ybw8(}Q z+0Y^zT4Y0uY-o`UEwZ6SHnhlw7TM4u8(L&Ti)?6-4K1>vMK-j^h8Ee-A{$y{LyK%^ zkqs@fp+z>d$c7f#&>|aJWJ8N=Xps#qvY|ybw8(}Q+0Y^zT4Y0uY-o`UEwZ6SHnhlw z7TM4u8(L&Ti)?6-4K1>vMK-j^h8Ee-A{$y{LyK%^kqs@fp+z>d$c7f#&>|aJWJ8N= zXps#qvY|ybw8(}Q+0Y^zT4Y0uY-o`UEwZ6SHnhlw7TM4u8(L&Ti)?6-4K1>vMK-j^ zh8Ee-A{);|Hnhlw7TM4u8(L&Ti)?6-4K1>vMK-j^h8Ee-A{$y{LyK%^kqs@fp+z>d z$c7f#&>|aJWJ8N=Xps#qvY|ybw8(}Q+0Y^zT4Y0uY-o`UEwZ6SHnhlw7TM4u8(L&T zi)?6-4K1>vMK-j^h8Ee-A{$y{LyK%^kqs@fp+z>d$c7f#&>|aJWJ8N=Xps#qvY|zB zXi*$m6o(eYp+#{hOdMJihZe=5MR91+>6Ggj8nb0cOXo)>w@7R*v1bZSZeajH-*$hkHGDN-{-wi^?2BBkv z(6K@2*dTOl5IQzUIwsG*0`=bsdnN2H*sEZ#hP?)7?uNY<_Bz<>Vd?vYs2uq@@j=ot zX@3WM2kc$2zsJ?x4NJe>K|4!DN)J)nm*lbui${Qp#qjR8UgQRBCm!F*(BsG)19OVs?nn`~g za*c>8?{pC z+aT$iM6UyuT+1=Yew3EJqlWTw`V~~NI;|&rJBU;2#8kHvBp8=fcm0p9g;)d;`7*em?vH z_=WI`;g`Z53_Bn82-phPD%e_i?WBIPwsKTBNa`njIVv0^^^?9F6%IoE21)(o9{IVL zK~g{I%TLD)lKM$sK8X#I`bl3ti4BtaNnbvR4U+mvUp|QqlKM$sjtU1!{iN@3*a0Rx zVY^{_U?Z?mSh=cakXqtFH20JOn;|V}nzWhPL7MzGfgPqXc$!v5spB&(owgjGYr0mU ze4!nv)hJ)rMre)7Ptmfpu<~76w$`tF8hdI3%1_fqYtJb^Q=6#0r~E7}kLk+KCO=>K zBedD9Rim%E($lG4F?Oo*nYJ(cLHS%u<0F(Wv>HBE`MNfd&sBbkwjXa+zDt|H#D+C;dpp`sKeb6j0fHAX5YG4 zxT`zvzQ&zzc#K>!p1JM?rr8wI&QOP>d=Zj=I}Jv3QWup8i-(0)#SCCz4QLvvG}^aP)EoPcSWiGdEN2eNJE&e)h7IYTyeZRP7zQTsl*$qSn_%e{uR-uZ6S@%}swn+76P}u9;e& zwoZ%TtZv%t)~=zye9h22^hYbH;d!*Vw08lWZBl6wD#xu=k{_eo(#rC}0U^%0ZubZF(|x8qm`*%+OXOMkyU-<`}My?!cL=60h-hPDiOZG|WI=HW=9 zoCIoavXsP;p&Gd9 zRF1qRhv6`;UtVjB_6G?~^3g-rBAK?SoG>ww;LN5g_%%2GoL?EEI5B*%HjnEXw$M$36 z*#x#fo5&`y$?O2;W>eTyMxV1|^eHbklg(lWvDs`6o6B-p9-GGu=3)7)fEBVLMk`WT zDJx?KvqRW?b|^cH9nOwm<*b5LvMN^1YS;p{kkzs}R?ixkmn~vGwwN`tCCty3vH)Ag zma`S?NY=!TV$EzNYhg#TRu*J!tethR5bI=Jteb^d4_n0|td~WZ$@-YZV$5c7*3VY6 zHEb@0RR zJBMv&=d$0h^Vs?90(K$0h+WJsVVANU>@s#ayMpaxSF&B~Dt0xyhV5q8vg_FO>;`rt zyNTV*e#>rQx3b&V?TmiEn%&9nV!vm1vwPUR>^}Afc0b$0=$9nfL+oMp2z!)0#vW%+ zus^aV*;DLk_9ylX`!jo%J;$DBFR&NcOYAS~Wk$aS#$IKwvDeufY%hD0y~W;U@36nI zcNzWa345P?z&>PuXCJYT*(Z#CNrHXOzF=Rnuh`e@8}=>xj(yL5U_Y{-*gv?&8Rwk7 zXOO3G7fr48kLMHk{(K^z#3%CuxSLPm zQ~7~>8lTQ*@R@uTKZwufbNF1I%k%g=Zg3CJ=LNiw7x7|V!b^D>KbRlF=kr7PVf=7@ z1TW_mypmV(YF@(^@P)jV*YSGZz`cAC_wmKNkuTwXzLW>}GQOOz;79T%eiWzo0ckyl><~@8BkMLd|voUkKxDiMyVqcLXM$%+hlu&&P;rA5;u$Aid)33;x=)+ z_?@^z+$ru7zZZ9ld&IrsKJf=}zt|%l5D$un#KYnd@u+xAJT9IPe-uxOr^M6ZPvRNz zXYs6fPCPGO5HE_C#9zeA;uY~%@v3-Dye{4ld&QgLE%CN^NBm8^E8Y|TBiC^QY z`b>S6evm#}pQF#!bM-uZo^I$KJzp=-3-uzsSTE5_^)mfn{SbY=eyDz!ez<;wUanW@ zm3oz4t=H%a^o4q@UZ>aV4Z2rfr2F*6dZWHX_v=gbfWAy$uCLIK)SL99^k#jf-l89^ zx9UN?O>fsb^pM`Ecj?`FSnttS=@GqGkLsr0r(1eVxAnN*udmkE=xgzqi@&G)qkU( zr=PE1pkJt8q+hIGqF<`-&@a<3*RRlb>R0N!^sDr%^=tIq`n9QfQ8V5V>eQqCk;tg1 z8I_OY;b>PZ6z`8kQ*3&U4Y@*V+atl=G^^i?hdSCK8PWdUHu;F(6?Ju(kw`F>+82t^ zlX5&g*h`*G&+wTz*`|^rq4d6BEEJ7|I^!AeFz84N%18UKy-M$k^xG-)Y~CAmb+7B| z4n!alZGGRaCkx)ukEVw%K-#ibb%hE#^HBns#DNPa|p`&T-{V@tm`#P~M6s4lgRiP*q zn`(zJxJv5?)7Z-n+v&-XVx}4E=p3;IO)!uVF}uR;!3edc)c$DLFv_bk zhQ@E{=4xsd^4eV;A&LPt2?{!u({E=|SnYm9JeG~{Cbm+7?fvl(@9mfECrF(2b&qgb zhP(7-dc+w>uc=bRgAEJ1fyH zBw4O<#K~2TdSsS6aqNtQ*1F2Ubb5J$p_K9%@yW}p(<)V!T-8qIYA18`Q0DaNM6Qfl zoFkiCMlH^h?#SAqbLDn+ZQ^{nC931yu0?=%`5XwJ1K}IW=JGl9^Cfbo_4Y^N;l9W^ zmk+Jf6>zc!oUDPNtm%P79@mjLn6k9nj72lLLa|=z)@>2nB}1_~~ar%*c0%@uae2|MSg{v&x$4=2tMA)+Db&|o^J zo6hOxP?0XvsgIe+3_Z55`lgRXu1HMb^hv?bIWLB%_)N3ljCwct$AcrdF%kg;edToq|J1 zG8YWhD6?zGcP(&A?n0t3kag`MleGZK?Vx0J4co|EIFviHd&t)plE&!WQom{uAK9#3 zG%-a@C$rYM4!J8e?D!eAfOO7+n_27B+&RnfN7N=SQ0`8nEh+n9S8bi#=HZ^qx}iE` z_6+%1^}{Niwd!XZQmUd6YWLxGSA!G82$HOZ;pat$ZMYg7IwMH*21!(ejH|(EbP*?6 zp`372%bj~jYEX%$BjGrf z=_nceEdMb6vgl?@4^*o257jlr0e9$10Zr-2s_Bv`mqS7d2+kVLQ%c;7ns#>LVzHG` z9_i~2!c7m-y`P>kV}| zC+-ubEI-3b0iIqFiU(5`1nCO#uu)J}n5r=KCOSkn$spag$V-!;5-+7b*w+`NPTbqp z5#-)}zNnwC2vg@lE%@TFSki5#_`_YjL9sO0pQ>sk7I%k5CH*b7!wyt=*(h0NqE@o( zk?Q2czKmd!l&sLOD@&saIaJB(f;YO~IiARhohit#x6$b-UGgGRIzo|nFjbXBPsDVI z@*vGe$Ah{oEM*lgkDk)$@|=oRRPty)UmH#})iw5oMXcL&(PMjW(365h#OYF16+|Ch zW;^{+jZ#b*gDhEcqGlt1QPV6{tP? zQB)+EO>Py-t>pP7Nv|~Nl_k7lBk3iviW69#!lJ}cPqGwGvJ_9Ul>B5V`N>l96QvmW zg^5z~ljY?XC-)^w&QF${pDei`S#m+Lr#@e zOG&cil4Qvx$&yQwC6^>iE=`tPn!Mi9Bt~fxqcn+8n#3qgVw5H^N|P9+NsO{2Mp+W0 zEQwK;#3)N*lqE6Bk{D%4jFO>J5*XA|R2%XbiK8APf#ER{7#<^m;V}{z9wUL_F%lRa zBXJ!bBZ=WjVhq)}D6!8dD|Ib*9*fsF$#UFWTx*b|FHgup`kI92I?_3Dos-bJK^nEY zLcKD<)lm00O0$QCzch$Q$Ls)R1mIzGHezVXpe<;JvYjLJSRJD`a5OS=CLd%b=Ma^H ze91#Hm#ZV#MPrq8C!teZZ8WhFil>DlkuWKnok>GTdYbQ-lN2sF0*!}UG~hL(9T?DJ z#zJCX=!h+Vq^m)6TO_TM9+l+WL3%VX=1ieo(RSxzOUnv9G=X7DWv=dznb=$G$yZ&7 zJk_L%Jq1Pi>B(21DY)&W%V~*Tnxg1Prx66^G`h1eDt3H3Q%-v*KMOM-i32o9j)#Mh zj&NsZN)_%GeKE76zdfFA_tQN@);I+t?o@i~Du?Q6;b@`Z zO48)rT+W%K%jal#S!(tK8>ta{wLvQgN@`CXi02k$q9?ZhOBA6VHhe! z&1pMdZ5ODtP^CpGEmmoXN=sE*rqXhiR>-ubx~2wcO--drt7K|;YJh9xS75(UPz8KS zfln!LJkDV!{Ss z`=v!q3Y-#+0;fbu3-oT&TqQ%+7K)f_a8{u@tI%-p3X7cj7Z$1QVzpiDTt{KCa~*}n zsD)8j3?3;3kCfv2Ch1*EmgRs3b#z*lqno~1eWcquuS2UDV#EOon;EIOyQL&yfTGXrtr!X zUYWuxQ+Va-I?L5{mMi>ng7?a)n>6@XHl`xxz13_!SDj zLg7~^{0fC%q3|mdeucuXQ1}%Jze3?xDEtbAuli$Qg~G2;_!Tvo;I-0_kDw06m8uSv zst%Q^4wb47m8uSvst%Q^4wb47m8uSvst%Q^4wZ_7N>zu-YK2`hgk7b0P`Xj5bfd6J z)uBq&p-R=k(G#PvO4XrC)uBq&p-R=EO4XrC)uBq&p-S;krQ%Sn@T(OE)rx~^gTJM84iAt;aq=_(%T}#!7nnL>o4*+{1o4*+*I(oTzNgyhrJN=Zl6~5C?XTj5uNA5XQ@M=4d;@AOgHR@d+JQQB75 zUs)pi8f}**`WpFVYG3)VeX1T#U!`+YJt`Fsm8u?2KlM~Q{ghHw52v5fwyKBIPib4# z!|A8At>WPHQ`%N>aQZ22t2j9Ql(rSV(@#CsPCuno#lh*Pw5{Uc^i$eaad7%6ZL2sq z{gk#<9Grei+v@tAeoEWw`kj7C+v@tAe(I@q`YEOAdYyhr+v<9qeo5QvdYyimZ>al1 zfl-q)G<}6Z2t6#e4cmudhupXC(0TGX<`<`7K1=Q!fd|uMNzP`nkZc@Hn<(>*z<@+lW7 zJ>bgY^lU4S=vx^y{X zh6y2EdRfvWhL38%YZN60vPKbFhEeGBWJ(h~TeXnNa*bBp(n?zT#whw7X{^4@q6K4P z>5t1TaSd6Ww#ZjDLo3vZH5LiRqm*xy#=X7EZ(&+Dd@y&9E6|AyOSz9@V9SNUck zUj=fc(+b-(EtAe4q3uH}hR10Wus?%p;G$K@SyYRW+P>NtZ9i>)btFYgrO#_*Q*B3S zIaKfQREJ5Ca92>f3HEl_yCc+Sv^}to!afx-+aua@urHhP=o_%_!G0nenf49rPtr2o zmf_5R-4}L(Z5tjo6?QgkKG}SBFzgYqHDn7|1MCvm6>(Ww3v4HB6#U3_&T{4TkWGa@ z+@@iVw6uhaxcYUPh?NsDY2`{l8N2^99g6c%%;i3YQXI=^O}PtY4o@?P{mI%4TGLpp z9Y!m~7twmh7L{wUO4qA&w@M#Y=|?L4!b#aEm5xgd0w zy-xp`wwL~M?JfE*w0G#gPFs1@mgZ__XoK1|?M&@`?L+M&?Gx=Y?F(8}*hT9DFJqU} z3apoCHPQk)o6(w|YjAZFw2XhYN=TkVZH?MGdCob%Tt{>w9T9X+4xKZG&SbRSXn>+C zdm8zapHZEVo6Z?c=ZvM+z8|&T3DmMD(h)|;rvZU-&>572@~Ir;{kt3^G+nM@Vs18t za&R_{O{W0T8cSKO?7LJ8xoUqjAx+h0(Kl8IT1D!k@2`+)1APLDYqh+HtdAFxZII}6 zME;YW(;l=jEwnuvd$lpkjDayrTW6H3?^w9@| zmz{mdLr>hi@u7u(eShw!NA3FLM)!_^eO4L+V!biI+ja=K)^Swn^cTPTCV1l|Uu=7K z#%(V&J#S|S$jBK%OVY#iCL=o6T^nuB^UN_0k_SZ2 z)WiYz(r|Cc?T^!H9eU&A_J?AtX_30^t}HhukIObnjA9Qx=gNOgQ~1V>+Jm=!wq(rRCvR>& zXl&h4^XkuBwdKsuiRVUXZsc^Q=Ynb58qcMcvltQs161_nU#;EB^9i#pk(y=zs0>Yacmd(gl%* zwC$5$d*$PvOrFMs&r-2aS#Q8-=bkY7Z$Xsf_8f zj2XtX#J0gU@25TnV7A+Rc{F($rZ+87`Pl;_ix`=d!`MG`ZfHh<+&Vy?Ys@xg?U=D+ z+UBV$V|y&}vwZX7ww>D^%%lCrSea?MEF#OuNPvnoV}#s4QtsCUcm2VbEVuX3sZH$6 zG4}C{BwEn~Tuc4s9{Qli&zq7MU`$*5Q2nFRHoX3J_Ov~(O}P0oe%Y>p+^kJwHkM=z zjF@{<)41SmFQxo+@++U7dFCz4CLFQrgR|}}ExW0|IDYVXzPC&6I{%c%w^vNM>CQ)X zoWA^x@1F0_D~cAeX9_MK_o#RG%tt=kySagvdN-|o_y_+RAH3n(^6JiWFKNj-@69Xk zy>H;82U_>Oe*LVM9=Wo<=MoqAcp)_JF1@WI`wQx2~xPfxuqG;!M9 z3!kmp@WEwIKgMqz{q)jD#$K_Z`P+4et&AOa^0-UpR$l(N|Ec2+{c85XclgfHuI$a& zwDQ{){}=n+vV3IU1K)pn{q`Lr#=Z97*bS|ZjhqwRtbh8!7i(uelk(6;vvr@V}E&CX3l75hr5zysl%N# zO)KYZJqH+*ocN7Zhh+!06a80p+XCvTG+meIwsNx|(QW@vv|@lw9nOmEt^;hOW(=?l zE?d+!kNzJCA6`?`YnT+uP{<==n%c)_(N8mFu{{+;jB$9#5V)e`C(o3*1k6?Cj;aPp&O2 z*uL-i``-Cl_q^SIduz|Br_Fv~>y#~>_iS3R-0Z(^{_YuDRz5yz%=}AFe1GZv8PNxS zdZ_NzJ5%@h&D3LGIc(-Llh=NDspqjz|2B2}D-YhXpz?wVNAH-t?d_H?KRWi)?#SPq_}tO2bi-*Y!<$NFIaEZp)JfC-orEwKX&NMi zTISC2#<)cL7CBiYA=J=Hb3M651;gV{_as3&UAOAn_gCzxn&>%Y-T8CQy>H+;_QJ%5 zCvQ4+MfCNwgRW?K^zpNE-qn|6f4pGkJgxMmw;wxu(FM;qEzX z`E=GLpZw;hInN%lWdHq3XMTNnoiU*QKz||Ck3&ml?EP)tetVA`dC*DMO?|id7d1AH z9@dTj-CeZAC?Z0rhvrq%vQ*n$;9lI{Mz1;Ci(~Y{CbsV9J=R^`FPDtb%N5*F%Z#FY zdbyYAnsSrgi92`Hjko`YHBcgunKO3imKy7~()2mY%rKO0$EW7U(V}9~S6MNm*{b zd{p?~y8pdhlWuL@O{*oAjXSpUv6ju*&wqN|Ro136wx040EnXhux-0j@Dcj$E=Ay+7 z-~V~)JuiRu+oD4z4?d9o{SP^LP4}I0?4gHDpZwM5D~`G73wGPX8Fy@W>fV|0VAo7< z&pRJ(46ayr#T(;B?K@`XO?$nCC(K#kuDbKJ&S{;eKIyybfQL#SUAk>=?5pve{XKWq zc0XOZE_=6e^(%8*7hdw>?$PX;O)r+7X_V!hD-J&Ph^4n*|Hi!iH~sbMeU==?Z+UUf zk5g{Hs`-kMnb+(ZwRl8fp7*M!9&4HY+-Y}z9zFJ;yV=SgJX@NcKkcNh6(^71abM9V z@6Wkn%DdaX+VsxVe{Wsea!l){AD3sYEYEIV+WJD}l#iY6Kfqogre4Ht;Fn#wPj)f4 z9yYp+kSnuw^Fp@yn`)LiP8iFKS&6$lXJaS+%lNhT*~aYTncSE>;a{IivHtmU0(J7< zL|&Gq2aTgITe;&X<49w<5g40Jt-32TuPfY1Pp=0Usp?@^A3gZavlBL7clsHt9(Z~~ z&vOg+n|sXoJY)LU1J%zDCuRT}*0hABK^msJYaPORKO!Q1J_M;ut_V+=PFQ`lkT#-}d z5%iIQ(ZBiAs;g)8J$l*U=Nyoh`(V+9J1?93*)P;Y>fcuJhgZ*esr>R__@*&euYJUL zc-#ErE54p~``erBakP$q)J2!Q`Q65OAN=9*s&`{=EWSN3%DpLi?pbeN(AaZpiRZ6Z z=6-OR_Q)jPyWae}PWooiz29{OLZ9^9yZ-Tx(g~wRt*u_|`F!(wF|u{fEh{hnYHR1} zf&Gu%yXl>KYOgF^_ReeNYeuXXX$+*~&~wc9O8+|F`lM^!<73A5F7}%zkDsvV7d1Bi zzm*>vsgP)uaNdrRqy=UsWkC*x}~r%v|!_EheAeCsvKK8`MQU7a$f zY;yY{)ArqV=Xp;*o>p{R?5zdMe_Z#(sdeuj(U)7)e!>kKo__Ggm%jh{u^&!(>BXHp zUP=G#^3RU>_{skJzYZ<#n0oO&$K8GX9rb@)Q9Z)@%#jV=gxYN)wL5`^yVSvQFwXhe z&?I$(Q6&!@pdV_`?P^EKj-t&4iE)qJUO+<=d3(wIRoAWbS0)ak2cs0XQ_9b!lXM^< zDgRbFr5yf~2O(kfC$iJvPD=BCHn=-Hk;~x!^ooMv;Lm08XIB)883#yS4%Df2Z20F= zvyUs?xkXe^#b}tPkD`V&G%vBgj%P%T9ut4j$1%KH^tY*7UhgU&Gw#hle{}qar}mux zLi;_R+;;XmJ+ZdEU;cT1=|@)|ns)SE3pNfMeN=tz7n9uIjXXR3Pm{(ks~UIt$)A6J z`o%YVon7?W{H*J$&S|Zlec?|Rnhl5CT-en&YV$vu%9@+riVR#^bZn^p$Mbq`8*@(W zMJM--y7$nV+qU2O%B|16{NBao+m8R~xI1^A^+EKrsi!`?rr3LGQ>H(~^X!~iH!j(G z`ubJ3t*N>v>-sNNPM`bMlcySo)r*VPJ-%zv4VioXI4w2v{&NPt8ujU2+it(`f|r`- z=Y0A;ckMURJO323;M8X~zxF>X3i=QI;Oy|5Rpufs^7Qj3y}WGK1-lM^qG3w+w$EDc z+WVesW!aRR{J(n!L>I|oJ7>(;_{9IWvd2gLO3;Vqsdn@kqlUGJERURL7@wRqN*A82 zVTX0nxuNEh=@~&26hqr%j01-<>K?lPeOpp?^T9d(^#zZNT(z()>l`EXsfOV#jmCfa z#tp|6ei}Whd~mJN%-iydj(TQwdd9B$rxvEYQnY^6*&qDRjOjPE6^yxL`<`0^$IZLs zk7tTS8z0@e`X8tCO#a)IcW%A-(ks3RZ@D~e^ZO-F-@GjAv{}c$zvZjVRc|ltfBJ%X zUAuihy0gCgaLNszUh~(9xB3o#>F%!%3(URuVD^t0kt*NqgXgcAQ3X8&ZeZdg=S(&I&9l96JNncPTa6oTZD6wgSyrO}E$qsUWSL@$b) zeiedGcV2q--ffxBzFdAxvvoq-q3`jk!R^h($ literal 0 HcmV?d00001 diff --git a/build/web-mobile/assets/main/config.json b/build/web-mobile/assets/main/config.json index ce5e60e..0036386 100644 --- a/build/web-mobile/assets/main/config.json +++ b/build/web-mobile/assets/main/config.json @@ -1 +1 @@ -{"importBase":"import","nativeBase":"native","name":"main","deps":["internal"],"uuids":["022134be3","02bEoV4H1AU4ben5/jAYjl","02bEoV4H1AU4ben5/jAYjl@6c48a","03+wHB/rFKYYZu5T6eMyq/","03+wHB/rFKYYZu5T6eMyq/@6c48a","03+wHB/rFKYYZu5T6eMyq/@f9941","0a1ef0880","0afa13991","0bc0d7670","0cb0WVRpZHQJpB05qvwnNK","0d5620352","0daOEVeZtPxKgJ0tsm76YT","0daOEVeZtPxKgJ0tsm76YT@6c48a","0daOEVeZtPxKgJ0tsm76YT@f9941","0de320681","0eGwHSAmlChpVBQo/ZvEe/","0eGwHSAmlChpVBQo/ZvEe/@6c48a","0eGwHSAmlChpVBQo/ZvEe/@f9941","0e37129cf","0eRt9dqbpHbZXG1dyoxoQ/","0eRt9dqbpHbZXG1dyoxoQ/@6c48a","0eRt9dqbpHbZXG1dyoxoQ/@f9941","0ffc6f32c","12Y9dMgWdJKJGmTiZyQR9H@2e76e","14IieDNr9LRJ/gL2XT4gBn","14IieDNr9LRJ/gL2XT4gBn@6c48a","14IieDNr9LRJ/gL2XT4gBn@f9941","14cvMSlnFJlqA2NMPzwb1B","15JrabkcZGwrQWiv0XGsvi","15JrabkcZGwrQWiv0XGsvi@6c48a","15JrabkcZGwrQWiv0XGsvi@f9941","15ixPDTw1IE5wzu8e+DKP5","15ixPDTw1IE5wzu8e+DKP5@6c48a","15ixPDTw1IE5wzu8e+DKP5@f9941","18JHC/JbhJ9YlrCJARk+tW","18JHC/JbhJ9YlrCJARk+tW@6c48a","18JHC/JbhJ9YlrCJARk+tW@f9941","19F0RUlJtKCbscW1N2UL61","19F0RUlJtKCbscW1N2UL61@6c48a","19F0RUlJtKCbscW1N2UL61@f9941","19UQ5aZ15Csr7VYiZu2kF7","19UQ5aZ15Csr7VYiZu2kF7@6c48a","19UQ5aZ15Csr7VYiZu2kF7@f9941","19gZFizj9PfIiJiy81vydM","19gZFizj9PfIiJiy81vydM@6c48a","1bX5DgiURICZdheLjYNyYW","1bX5DgiURICZdheLjYNyYW@6c48a","1bX5DgiURICZdheLjYNyYW@f9941","1brw/JvvpFnIvdrxpFCgMZ","1c60ceAHZLn6Dqbpowfj6b","1c60ceAHZLn6Dqbpowfj6b@6c48a","1c60ceAHZLn6Dqbpowfj6b@f9941","1c9zKTPhBJwb+hWdqq29GL@b452c","1eeVRGHctBOrfjx3wilJoX","1eeVRGHctBOrfjx3wilJoX@6c48a","1eeVRGHctBOrfjx3wilJoX@f9941","20g1ukYUVPvKWKBRznAKo+","20g1ukYUVPvKWKBRznAKo+@6c48a","20g1ukYUVPvKWKBRznAKo+@f9941","2056wdhlZADJdfCpd+O52l","2056wdhlZADJdfCpd+O52l@6c48a","2056wdhlZADJdfCpd+O52l@f9941","21JdfvsitHKpt1lhQVbict","212jWhr3hExpNqcZOfxEF3","212jWhr3hExpNqcZOfxEF3@6c48a","212jWhr3hExpNqcZOfxEF3@f9941","25h9W+0lxPRp5+EnDq6EQn","25h9W+0lxPRp5+EnDq6EQn@6c48a","25h9W+0lxPRp5+EnDq6EQn@f9941","27bFM/8Z5B+Zv92Yx7qOIf","27bFM/8Z5B+Zv92Yx7qOIf@6c48a","27bFM/8Z5B+Zv92Yx7qOIf@f9941","27chMo7S1Ba5pmNFASz/TL","27chMo7S1Ba5pmNFASz/TL@6c48a","27chMo7S1Ba5pmNFASz/TL@f9941","27rEEsnvpOrY4s/mUzx4eP@96245","28pz1lCZlCOrwydpmw/9VE","28pz1lCZlCOrwydpmw/9VE@6c48a","28pz1lCZlCOrwydpmw/9VE@f9941","2cy/QXLWJKHZEHYw9brby2","54AgfrJPVBmJ5zCFSv8S7Y","2cy/QXLWJKHZEHYw9brby2@6c48a","2cy/QXLWJKHZEHYw9brby2@f9941","2eKVxG9ytMmYoPQyNnGBGj","2eKVxG9ytMmYoPQyNnGBGj@6c48a","2eKVxG9ytMmYoPQyNnGBGj@f9941","30Cx9pws9AqKFcax97HWfw","30Cx9pws9AqKFcax97HWfw@6c48a","30Cx9pws9AqKFcax97HWfw@f9941","37LvwjW+VPiqRcON1lpg+E","37LvwjW+VPiqRcON1lpg+E@6c48a","37LvwjW+VPiqRcON1lpg+E@f9941","38nGNkcPFMXI9fJvNZ9bz3","38nGNkcPFMXI9fJvNZ9bz3@6c48a","38nGNkcPFMXI9fJvNZ9bz3@f9941","39wB2fT6JPkK1QyPTDXMXm","39wB2fT6JPkK1QyPTDXMXm@6c48a","3a+b4vk9JBoLe3PMAwVLNK","3a+b4vk9JBoLe3PMAwVLNK@6c48a","3bagv1TAVFfpkocC4+hdC2","3bagv1TAVFfpkocC4+hdC2@6c48a","3bagv1TAVFfpkocC4+hdC2@f9941","3b8kKElPJF8ZhHyHvvS1ki","3b8kKElPJF8ZhHyHvvS1ki@6c48a","3b8kKElPJF8ZhHyHvvS1ki@f9941","41oF+TEYpAcJ+L64HZ5wM0","41oF+TEYpAcJ+L64HZ5wM0@6c48a","41oF+TEYpAcJ+L64HZ5wM0@f9941","42SOhw4TdMK4ykuLhxKBy7","42SOhw4TdMK4ykuLhxKBy7@6c48a","42SOhw4TdMK4ykuLhxKBy7@f9941","42bw2WdUVDEoCL0iHueEv5","42bw2WdUVDEoCL0iHueEv5@6c48a","42bw2WdUVDEoCL0iHueEv5@f9941","42pUve0FRMSYkm8FMJDmnF","42pUve0FRMSYkm8FMJDmnF@6c48a","42pUve0FRMSYkm8FMJDmnF@f9941","44GmRzoDBIDrEAL1fH2Q5U","44GmRzoDBIDrEAL1fH2Q5U@6c48a","44GmRzoDBIDrEAL1fH2Q5U@f9941","44XV2dxWtFKLyQyEc1fl2U@ab65f","46s4s47htOk7+5UhgYr90H","46s4s47htOk7+5UhgYr90H@6c48a","46s4s47htOk7+5UhgYr90H@f9941","47GMWTU2hPob2HmUleN0Ki","47GMWTU2hPob2HmUleN0Ki@6c48a","47GMWTU2hPob2HmUleN0Ki@f9941","4ayFrqYNhPeJswa4xifxO5","b5ngdh6gRKeLfAFnIhnH8Y","4ayFrqYNhPeJswa4xifxO5@6c48a","4ayFrqYNhPeJswa4xifxO5@f9941","4bSlmx4cVFvrHjUG64LuB6","4bSlmx4cVFvrHjUG64LuB6@6c48a","4bSlmx4cVFvrHjUG64LuB6@f9941","4efRc8EW1HQaiS6u1u5IVI","4efRc8EW1HQaiS6u1u5IVI@6c48a","4efRc8EW1HQaiS6u1u5IVI@f9941","4fTgPxMfBPk4VAwMPLsxjF","4fTgPxMfBPk4VAwMPLsxjF@6c48a","4fTgPxMfBPk4VAwMPLsxjF@f9941","4fx+4CJz9Jd61HbKFVv1MF","4fx+4CJz9Jd61HbKFVv1MF@6c48a","4fx+4CJz9Jd61HbKFVv1MF@f9941","50HaPF8thF97wEUTDViBH/@cd579","50c14gchFOnLZ2TWSM3Ay7@b6423","52i6pgbXBORoy7vA+X0VA+","52i6pgbXBORoy7vA+X0VA+@6c48a","52i6pgbXBORoy7vA+X0VA+@f9941","54TknWPwVPqJqeCR+Y/Czo","8cawES9CZK0LmfRrGgoGER","54TknWPwVPqJqeCR+Y/Czo@6c48a","54TknWPwVPqJqeCR+Y/Czo@f9941","54ejgvm45FqZTywz8lD1fm","54ejgvm45FqZTywz8lD1fm@6c48a","54ejgvm45FqZTywz8lD1fm@f9941","57bIaUjDVFN5cRMLjSam3I","58ftAD36dAkbyR7OzO5HN9","58ftAD36dAkbyR7OzO5HN9@6c48a","58ftAD36dAkbyR7OzO5HN9@f9941","58yf2/3klBQYP6mtg/eFkc@b940a","58zz2z5vRJQ6B2JhV5EkKc","59bJZYG5tDJ7ELKUmYfmuw","59bJZYG5tDJ7ELKUmYfmuw@6c48a","59bJZYG5tDJ7ELKUmYfmuw@f9941","5asuPqtxJIDasBD0Gy6SsS","5bXmlPTRVM9I9B4KHreWgR","5bXmlPTRVM9I9B4KHreWgR@6c48a","5bXmlPTRVM9I9B4KHreWgR@f9941","5b7p8Ml3FOc7DqC7ttpnaY@a865e","5cUewJqfxHR6nyT1O46dn6","5cUewJqfxHR6nyT1O46dn6@6c48a","5cUewJqfxHR6nyT1O46dn6@f9941","5cxfD0Q91AXKnAYkfRv6Gw@438fe","5cxfD0Q91AXKnAYkfRv6Gw@73b7f","5cxfD0Q91AXKnAYkfRv6Gw@b4e6b","5cxfD0Q91AXKnAYkfRv6Gw@d1932","5cxfD0Q91AXKnAYkfRv6Gw@e39f7","5cxfD0Q91AXKnAYkfRv6Gw@f605f","5fTdeYKuZLv4S0UEu2zOrt","5fTdeYKuZLv4S0UEu2zOrt@6c48a","65Cp4tlEZK55E4GHhJ6/pp","65Cp4tlEZK55E4GHhJ6/pp@6c48a","65Cp4tlEZK55E4GHhJ6/pp@f9941","68xNkbuiVAipWIifHltfxk","6bHJPbIyBPnKPuOme7iPFh","6bHJPbIyBPnKPuOme7iPFh@6c48a","6bHJPbIyBPnKPuOme7iPFh@f9941","6ciCT1eRlBYJbP3wDkkl90","6ciCT1eRlBYJbP3wDkkl90@6c48a","6ciCT1eRlBYJbP3wDkkl90@f9941","6c1OjBtj9Lu7PbsyP6CLQ1","6ftPVHbvtACqZljC0rufHc","6ftPVHbvtACqZljC0rufHc@6c48a","6ftPVHbvtACqZljC0rufHc@f9941","70jqOrfKpCNZ8ipVTiJAaH","73yIepYitHBoVchk3GwGT1","73yIepYitHBoVchk3GwGT1@6c48a","73yIepYitHBoVchk3GwGT1@f9941","76fANB9Y1K7rJPjk8WILpE","76fANB9Y1K7rJPjk8WILpE@6c48a","76fANB9Y1K7rJPjk8WILpE@f9941","7az8mBYelB4JK9AkjIfqS6","7az8mBYelB4JK9AkjIfqS6@6c48a","7az8mBYelB4JK9AkjIfqS6@f9941","7egaiZbHxJPYDP5Pcw5PSP","81JUI9LDxHgLSD3P1FMsBf","82QbxRzWJJj4n7mqJsPsMh","82QbxRzWJJj4n7mqJsPsMh@6c48a","82QbxRzWJJj4n7mqJsPsMh@f9941","84Eip2kD1FeIJKKKwM0kYK","84Eip2kD1FeIJKKKwM0kYK@6c48a","84Eip2kD1FeIJKKKwM0kYK@f9941","84iy5lk7pEEb6EjoNt1bJf","89ScHxmytBjLFQYRqUVDQW","89ScHxmytBjLFQYRqUVDQW@6c48a","8abH0ojEBArqZ2Yzh/LoN8","8abH0ojEBArqZ2Yzh/LoN8@6c48a","8abH0ojEBArqZ2Yzh/LoN8@f9941","8dHjmY6jhBM7YJD19BR6YA","8dHjmY6jhBM7YJD19BR6YA@6c48a","8dHjmY6jhBM7YJD19BR6YA@f9941","8fGC/47MBKtKbu817prghw","8fGC/47MBKtKbu817prghw@6c48a","8fGC/47MBKtKbu817prghw@f9941","90+GVzW69B4pfbhgTR9Ctl@a9630","95EkngnxZFbYuFpsqVTaFr","95EkngnxZFbYuFpsqVTaFr@6c48a","95EkngnxZFbYuFpsqVTaFr@f9941","95vBxQpFZIRaUzWo2NL9Fr","957Y4ui01C44iECl0G0/n0","957Y4ui01C44iECl0G0/n0@6c48a","957Y4ui01C44iECl0G0/n0@f9941","99et/B3p5BgrZO5CfEzduf","99et/B3p5BgrZO5CfEzduf@6c48a","99et/B3p5BgrZO5CfEzduf@f9941","9fdghPAJpPM6ps0IvZopwB","9fdghPAJpPM6ps0IvZopwB@6c48a","9fdghPAJpPM6ps0IvZopwB@f9941","9fuafV/PRLeZGkwd8rZXgM","9fuafV/PRLeZGkwd8rZXgM@6c48a","9fuafV/PRLeZGkwd8rZXgM@f9941","a0dRR+wHVG05qOgxMWK5Zu","a0dRR+wHVG05qOgxMWK5Zu@6c48a","a0dRR+wHVG05qOgxMWK5Zu@f9941","a1KZkqZL1MRb8F4DXtG2J5","a1KZkqZL1MRb8F4DXtG2J5@6c48a","a1KZkqZL1MRb8F4DXtG2J5@f9941","a3zQCfCrBCDZJ4uf2rk5u8","a4vgulFcxC7afwgzAe47zr","a4vgulFcxC7afwgzAe47zr@6c48a","a4vgulFcxC7afwgzAe47zr@f9941","a52kK/VKhPWYrFcMzOHtmQ","a5/Tk5fk1OT4M3YkeyugyO","a5/Tk5fk1OT4M3YkeyugyO@6c48a","a5/Tk5fk1OT4M3YkeyugyO@f9941","a7YJzyJxhAKoUOH4gt0hkD","a7YJzyJxhAKoUOH4gt0hkD@6c48a","a7YJzyJxhAKoUOH4gt0hkD@f9941","a8c6dCtQNKloVwb+VCaXA1@57e42","a8/sSDBCRMTYuVKIwUgI4+","a8/sSDBCRMTYuVKIwUgI4+@6c48a","a8/sSDBCRMTYuVKIwUgI4+@f9941","aaL0uG+fZENJT/EBZcTpeA","aaL0uG+fZENJT/EBZcTpeA@6c48a","aaL0uG+fZENJT/EBZcTpeA@f9941","aa+G8B2exLEIbBP+5RK72d","aa+G8B2exLEIbBP+5RK72d@6c48a","aa+G8B2exLEIbBP+5RK72d@f9941","acVf2TPV5O6pknusWqaHMS","acVf2TPV5O6pknusWqaHMS@6c48a","acVf2TPV5O6pknusWqaHMS@f9941","aePhLhb8BEvqKAI5c/aWK3","aePhLhb8BEvqKAI5c/aWK3@6c48a","aePhLhb8BEvqKAI5c/aWK3@f9941","afP/lR7e9MfqHcdVXgYPzY","afP/lR7e9MfqHcdVXgYPzY@6c48a","afP/lR7e9MfqHcdVXgYPzY@f9941","afSLMLCmxBF5oZRpecKJgq","afSLMLCmxBF5oZRpecKJgq@6c48a","afSLMLCmxBF5oZRpecKJgq@f9941","afxHkx8GZGsJC+n+YfITQo","afxHkx8GZGsJC+n+YfITQo@6c48a","afxHkx8GZGsJC+n+YfITQo@f9941","af+vHLzJ9JvZXY+R7ByiOZ","af+vHLzJ9JvZXY+R7ByiOZ@6c48a","af+vHLzJ9JvZXY+R7ByiOZ@f9941","b1pgtXwk1Ba5pioPgHPW2y","b1pgtXwk1Ba5pioPgHPW2y@6c48a","b1pgtXwk1Ba5pioPgHPW2y@f9941","b1yzLmyMlAyZ1SEZ2uQWsy@0a7b5","b2RaVqqQ5KHaI6A1a3NF3P","b2RaVqqQ5KHaI6A1a3NF3P@6c48a","b2RaVqqQ5KHaI6A1a3NF3P@f9941","b2vHhrWQtIMbMhgTESoyCZ","b2vHhrWQtIMbMhgTESoyCZ@6c48a","b2vHhrWQtIMbMhgTESoyCZ@f9941","b3CpiafZRDH449MonBWD2o","b3CpiafZRDH449MonBWD2o@6c48a","b3CpiafZRDH449MonBWD2o@f9941","b7MFJ8MjNBwqr3fNq1j5dJ","b7MFJ8MjNBwqr3fNq1j5dJ@6c48a","b7MFJ8MjNBwqr3fNq1j5dJ@f9941","b7qevBlvZJyYLjF6sr4VgF","b7qevBlvZJyYLjF6sr4VgF@6c48a","b7qevBlvZJyYLjF6sr4VgF@f9941","b9gVk1MmBJc6/d6ysKk9lA","d2ghBe2I5EWJ+DUTQAufKx","b9gVk1MmBJc6/d6ysKk9lA@6c48a","b9gVk1MmBJc6/d6ysKk9lA@f9941","baIUdvKGZPgZxNbjWTFuRI","baksN0ny5Ajbzh34OoiqXK","baksN0ny5Ajbzh34OoiqXK@6c48a","baksN0ny5Ajbzh34OoiqXK@f9941","beGfQd/6BBxZyHa8JNhTUC","beGfQd/6BBxZyHa8JNhTUC@6c48a","beGfQd/6BBxZyHa8JNhTUC@f9941","bey6303uNCjLzIjDHmr+a4","bey6303uNCjLzIjDHmr+a4@6c48a","bey6303uNCjLzIjDHmr+a4@f9941","c0ExG6bCNHv7BScpvr46Qr","c0ExG6bCNHv7BScpvr46Qr@6c48a","c0ExG6bCNHv7BScpvr46Qr@f9941","c3rQ4CD15BvKxmfuEb3RGM","c3rQ4CD15BvKxmfuEb3RGM@6c48a","c3rQ4CD15BvKxmfuEb3RGM@f9941","c9nhQb8U9AIKuzEzP78ygt","c9nhQb8U9AIKuzEzP78ygt@6c48a","c9nhQb8U9AIKuzEzP78ygt@f9941","ca8XLfA7dMWopTk/PkvlFG@5ecd9","ccSEOm3uZFw566I8GJuMvE","ccSEOm3uZFw566I8GJuMvE@6c48a","ccSEOm3uZFw566I8GJuMvE@f9941","cdYY3lWfxImbpPVRlfPiTO","cdYY3lWfxImbpPVRlfPiTO@6c48a","ceXzg9vlFFr7mcfXU9oBHa","ceXzg9vlFFr7mcfXU9oBHa@6c48a","ceXzg9vlFFr7mcfXU9oBHa@f9941","d3x4IMKphEKYvHuEU7yaxB","d4733GKxlOma0Jf2xocNWC","d4733GKxlOma0Jf2xocNWC@6c48a","d4733GKxlOma0Jf2xocNWC@f9941","d5CuKKYsBEeo4OzUmEKs/l","d5CuKKYsBEeo4OzUmEKs/l@6c48a","d5CuKKYsBEeo4OzUmEKs/l@f9941","d8e+Z+OVxHrL0pC/8Lbk/I","d8e+Z+OVxHrL0pC/8Lbk/I@6c48a","d8e+Z+OVxHrL0pC/8Lbk/I@f9941","d845rIc3RPYrLzgtqyVdqK","d845rIc3RPYrLzgtqyVdqK@6c48a","d845rIc3RPYrLzgtqyVdqK@f9941","dceKxx6LtMiZEVcbzmzEko","ddrGd/jKdGH6/ZIe6KMetg","ddrGd/jKdGH6/ZIe6KMetg@6c48a","ddrGd/jKdGH6/ZIe6KMetg@f9941","deQgAK58dAY7cTgFqTXEX+","deQgAK58dAY7cTgFqTXEX+@6c48a","deQgAK58dAY7cTgFqTXEX+@f9941","dflYbLyHVCGpMjOvO8iSlm","dflYbLyHVCGpMjOvO8iSlm@6c48a","dflYbLyHVCGpMjOvO8iSlm@f9941","e3gtlA63VIZrjX54R8CIRh","e3gtlA63VIZrjX54R8CIRh@6c48a","e3gtlA63VIZrjX54R8CIRh@f9941","e32TzDrI5JV7W/FOR4p76Q","e32TzDrI5JV7W/FOR4p76Q@6c48a","e32TzDrI5JV7W/FOR4p76Q@f9941","e66M7XK/9PNoNcsS0s/RUX","e66M7XK/9PNoNcsS0s/RUX@6c48a","e66M7XK/9PNoNcsS0s/RUX@f9941","e9XFLb9i5Oy4/XWlDk2Yla","e9XFLb9i5Oy4/XWlDk2Yla@6c48a","e9XFLb9i5Oy4/XWlDk2Yla@f9941","eabKcMPatJKbXJuR2V0d5m","eabKcMPatJKbXJuR2V0d5m@6c48a","eabKcMPatJKbXJuR2V0d5m@f9941","efHs6CRuVD87eu+MoGbrBB","efHs6CRuVD87eu+MoGbrBB@6c48a","efHs6CRuVD87eu+MoGbrBB@f9941","f0N5ZyemhJg5iZxBxHun4Y","f0N5ZyemhJg5iZxBxHun4Y@6c48a","f0N5ZyemhJg5iZxBxHun4Y@f9941","f1wTLXr2JCOq5X0LiJ2YFZ","f1wTLXr2JCOq5X0LiJ2YFZ@6c48a","f1wTLXr2JCOq5X0LiJ2YFZ@f9941","f2+777fQZDMqWHbDIWXFJA","f2+777fQZDMqWHbDIWXFJA@6c48a","f2+777fQZDMqWHbDIWXFJA@f9941","f3EHG9KBpBT7hDzNV5b367","f3EHG9KBpBT7hDzNV5b367@6c48a","f3EHG9KBpBT7hDzNV5b367@f9941","f3ijXqwy5KZJ0s28iGnL5L","f3ijXqwy5KZJ0s28iGnL5L@6c48a","f3ijXqwy5KZJ0s28iGnL5L@f9941","f480AFIm1B/Y9sn8s3NPU9","f480AFIm1B/Y9sn8s3NPU9@6c48a","f480AFIm1B/Y9sn8s3NPU9@f9941","f87vU+mcJLPo5nbPUEx7IN","f87vU+mcJLPo5nbPUEx7IN@6c48a","f87vU+mcJLPo5nbPUEx7IN@f9941","f9cCFo8YpDyJPMj0ur5qnI","f9cCFo8YpDyJPMj0ur5qnI@6c48a","f9cCFo8YpDyJPMj0ur5qnI@f9941","fbmCWg/X9IxbEhmvkPnyAR@72704","fbtc95DOZKA5OBL2UQV0FV","fbtc95DOZKA5OBL2UQV0FV@6c48a","fbtc95DOZKA5OBL2UQV0FV@f9941","fdjsU2o1RKF5x0TziDw3jI","ffuIqPr2JI9I8dPLYGRDpD","ffuIqPr2JI9I8dPLYGRDpD@6c48a","ffuIqPr2JI9I8dPLYGRDpD@f9941"],"paths":{"80":["db:/assets/scene/rocker",0,1],"128":["db:/assets/scene/home",0,1],"149":["db:/assets/scene/list-with-data",0,1],"306":["db:/assets/scene/test-list",0,1],"309":["db:/internal/physics/default-physics-material",2,1],"406":["db:/internal/default_renderpipeline/builtin-forward",1,1]},"scenes":{"db://assets/scene/home.scene":128,"db://assets/scene/list-with-data.scene":149,"db://assets/scene/rocker.scene":80,"db://assets/scene/test-list.scene":306},"packs":{"022134be3":[23,48,80,160,168,190,204,224,234,312,337,402],"0a1ef0880":[155,301],"0afa13991":[13,264,306,377],"0bc0d7670":[42,107,149,340],"0d5620352":[12,16,20,46,50,54,81,84,98,100,103,4,129,132,135,138,141,166,170,176,179,185,188,192,202,216,219,222,236,239,60,64,2,77,96,106,115,122,196,230,32,70,87,90,93,112,118,146,150,153,157,162,181,199,233,29,67,109,125,207,214,41,57,210,35,226,25,38,44,73,249,253,260,256,242,245,263,266,269,272,275,278,281,284,287,294,303,297,291,300,307,311,314,317,323,326,320,330,333,335,339,348,342,345,352,355,358,364,367,370,361,373,376,382,385,394,397,391,388,379,400,404,408],"0de320681":[5,17,21,26,30,33,36,39,47,51,55,58,61,65,71,74,78,82,85,88,91,94,101,104,110,113,116,119,123,126,130,133,136,139,142,147,151,154,158,163,167,171,182,186,189,193,194,197,200,203,208,211,217,220,223,227,231,237,240,243,246,250,254,257,261,267,270,273,276,279,282,285,288,292,295,298,128,304,308,315,318,321,324,327,331,336,343,346,349,350,353,356,359,362,365,368,371,374,380,383,386,389,392,395,398,401,409],"0e37129cf":[62,68,405],"0ffc6f32c":[172,174,175,177]},"versions":{"import":[],"native":[]},"redirect":[247,"0"],"debug":false,"extensionMap":{".cconb":[120,143,144,159,164,173,183,205,212,228,251,258,27,289,328,52,75,9]},"hasPreloadScript":true,"dependencyRelationships":{},"types":["cc.SceneAsset","cc.RenderPipeline","cc.PhysicsMaterial"]} \ No newline at end of file +{"importBase":"import","nativeBase":"native","name":"main","deps":["internal"],"uuids":["022134be3","02bEoV4H1AU4ben5/jAYjl","02bEoV4H1AU4ben5/jAYjl@6c48a","03+wHB/rFKYYZu5T6eMyq/","03+wHB/rFKYYZu5T6eMyq/@6c48a","03+wHB/rFKYYZu5T6eMyq/@f9941","0a1ef0880","0afa13991","0bc0d7670","0cb0WVRpZHQJpB05qvwnNK","0d5620352","0daOEVeZtPxKgJ0tsm76YT","0daOEVeZtPxKgJ0tsm76YT@6c48a","0daOEVeZtPxKgJ0tsm76YT@f9941","0de320681","0eGwHSAmlChpVBQo/ZvEe/","0eGwHSAmlChpVBQo/ZvEe/@6c48a","0eGwHSAmlChpVBQo/ZvEe/@f9941","0e37129cf","0eRt9dqbpHbZXG1dyoxoQ/","0eRt9dqbpHbZXG1dyoxoQ/@6c48a","0eRt9dqbpHbZXG1dyoxoQ/@f9941","0ffc6f32c","12Y9dMgWdJKJGmTiZyQR9H@2e76e","14IieDNr9LRJ/gL2XT4gBn","14IieDNr9LRJ/gL2XT4gBn@6c48a","14IieDNr9LRJ/gL2XT4gBn@f9941","14cvMSlnFJlqA2NMPzwb1B","15JrabkcZGwrQWiv0XGsvi","15JrabkcZGwrQWiv0XGsvi@6c48a","15JrabkcZGwrQWiv0XGsvi@f9941","15ixPDTw1IE5wzu8e+DKP5","15ixPDTw1IE5wzu8e+DKP5@6c48a","15ixPDTw1IE5wzu8e+DKP5@f9941","18JHC/JbhJ9YlrCJARk+tW","18JHC/JbhJ9YlrCJARk+tW@6c48a","18JHC/JbhJ9YlrCJARk+tW@f9941","19F0RUlJtKCbscW1N2UL61","19F0RUlJtKCbscW1N2UL61@6c48a","19F0RUlJtKCbscW1N2UL61@f9941","19UQ5aZ15Csr7VYiZu2kF7","19UQ5aZ15Csr7VYiZu2kF7@6c48a","19UQ5aZ15Csr7VYiZu2kF7@f9941","19gZFizj9PfIiJiy81vydM","19gZFizj9PfIiJiy81vydM@6c48a","1bX5DgiURICZdheLjYNyYW","1bX5DgiURICZdheLjYNyYW@6c48a","1bX5DgiURICZdheLjYNyYW@f9941","1brw/JvvpFnIvdrxpFCgMZ","1c60ceAHZLn6Dqbpowfj6b","1c60ceAHZLn6Dqbpowfj6b@6c48a","1c60ceAHZLn6Dqbpowfj6b@f9941","1c9zKTPhBJwb+hWdqq29GL@b452c","1eeVRGHctBOrfjx3wilJoX","1eeVRGHctBOrfjx3wilJoX@6c48a","1eeVRGHctBOrfjx3wilJoX@f9941","20g1ukYUVPvKWKBRznAKo+","20g1ukYUVPvKWKBRznAKo+@6c48a","20g1ukYUVPvKWKBRznAKo+@f9941","2056wdhlZADJdfCpd+O52l","2056wdhlZADJdfCpd+O52l@6c48a","2056wdhlZADJdfCpd+O52l@f9941","21JdfvsitHKpt1lhQVbict","212jWhr3hExpNqcZOfxEF3","212jWhr3hExpNqcZOfxEF3@6c48a","212jWhr3hExpNqcZOfxEF3@f9941","25h9W+0lxPRp5+EnDq6EQn","25h9W+0lxPRp5+EnDq6EQn@6c48a","25h9W+0lxPRp5+EnDq6EQn@f9941","27bFM/8Z5B+Zv92Yx7qOIf","27bFM/8Z5B+Zv92Yx7qOIf@6c48a","27bFM/8Z5B+Zv92Yx7qOIf@f9941","27chMo7S1Ba5pmNFASz/TL","27chMo7S1Ba5pmNFASz/TL@6c48a","27chMo7S1Ba5pmNFASz/TL@f9941","27rEEsnvpOrY4s/mUzx4eP@96245","28pz1lCZlCOrwydpmw/9VE","28pz1lCZlCOrwydpmw/9VE@6c48a","28pz1lCZlCOrwydpmw/9VE@f9941","2cy/QXLWJKHZEHYw9brby2","54AgfrJPVBmJ5zCFSv8S7Y","2cy/QXLWJKHZEHYw9brby2@6c48a","2cy/QXLWJKHZEHYw9brby2@f9941","2eKVxG9ytMmYoPQyNnGBGj","2eKVxG9ytMmYoPQyNnGBGj@6c48a","2eKVxG9ytMmYoPQyNnGBGj@f9941","30Cx9pws9AqKFcax97HWfw","30Cx9pws9AqKFcax97HWfw@6c48a","30Cx9pws9AqKFcax97HWfw@f9941","37LvwjW+VPiqRcON1lpg+E","37LvwjW+VPiqRcON1lpg+E@6c48a","37LvwjW+VPiqRcON1lpg+E@f9941","38nGNkcPFMXI9fJvNZ9bz3","38nGNkcPFMXI9fJvNZ9bz3@6c48a","38nGNkcPFMXI9fJvNZ9bz3@f9941","39wB2fT6JPkK1QyPTDXMXm","39wB2fT6JPkK1QyPTDXMXm@6c48a","3a+b4vk9JBoLe3PMAwVLNK","3a+b4vk9JBoLe3PMAwVLNK@6c48a","3bagv1TAVFfpkocC4+hdC2","3bagv1TAVFfpkocC4+hdC2@6c48a","3bagv1TAVFfpkocC4+hdC2@f9941","3b8kKElPJF8ZhHyHvvS1ki","3b8kKElPJF8ZhHyHvvS1ki@6c48a","3b8kKElPJF8ZhHyHvvS1ki@f9941","41oF+TEYpAcJ+L64HZ5wM0","41oF+TEYpAcJ+L64HZ5wM0@6c48a","41oF+TEYpAcJ+L64HZ5wM0@f9941","42SOhw4TdMK4ykuLhxKBy7","42SOhw4TdMK4ykuLhxKBy7@6c48a","42SOhw4TdMK4ykuLhxKBy7@f9941","42bw2WdUVDEoCL0iHueEv5","42bw2WdUVDEoCL0iHueEv5@6c48a","42bw2WdUVDEoCL0iHueEv5@f9941","42pUve0FRMSYkm8FMJDmnF","42pUve0FRMSYkm8FMJDmnF@6c48a","42pUve0FRMSYkm8FMJDmnF@f9941","44GmRzoDBIDrEAL1fH2Q5U","44GmRzoDBIDrEAL1fH2Q5U@6c48a","44GmRzoDBIDrEAL1fH2Q5U@f9941","44XV2dxWtFKLyQyEc1fl2U@ab65f","46s4s47htOk7+5UhgYr90H","46s4s47htOk7+5UhgYr90H@6c48a","46s4s47htOk7+5UhgYr90H@f9941","47GMWTU2hPob2HmUleN0Ki","47GMWTU2hPob2HmUleN0Ki@6c48a","47GMWTU2hPob2HmUleN0Ki@f9941","4ayFrqYNhPeJswa4xifxO5","b5ngdh6gRKeLfAFnIhnH8Y","4ayFrqYNhPeJswa4xifxO5@6c48a","4ayFrqYNhPeJswa4xifxO5@f9941","4bSlmx4cVFvrHjUG64LuB6","4bSlmx4cVFvrHjUG64LuB6@6c48a","4bSlmx4cVFvrHjUG64LuB6@f9941","4efRc8EW1HQaiS6u1u5IVI","4efRc8EW1HQaiS6u1u5IVI@6c48a","4efRc8EW1HQaiS6u1u5IVI@f9941","4fTgPxMfBPk4VAwMPLsxjF","4fTgPxMfBPk4VAwMPLsxjF@6c48a","4fTgPxMfBPk4VAwMPLsxjF@f9941","4fx+4CJz9Jd61HbKFVv1MF","4fx+4CJz9Jd61HbKFVv1MF@6c48a","4fx+4CJz9Jd61HbKFVv1MF@f9941","50HaPF8thF97wEUTDViBH/@cd579","50c14gchFOnLZ2TWSM3Ay7@b6423","52i6pgbXBORoy7vA+X0VA+","52i6pgbXBORoy7vA+X0VA+@6c48a","52i6pgbXBORoy7vA+X0VA+@f9941","54TknWPwVPqJqeCR+Y/Czo","8cawES9CZK0LmfRrGgoGER","54TknWPwVPqJqeCR+Y/Czo@6c48a","54TknWPwVPqJqeCR+Y/Czo@f9941","54ejgvm45FqZTywz8lD1fm","54ejgvm45FqZTywz8lD1fm@6c48a","54ejgvm45FqZTywz8lD1fm@f9941","57bIaUjDVFN5cRMLjSam3I","58ftAD36dAkbyR7OzO5HN9","58ftAD36dAkbyR7OzO5HN9@6c48a","58ftAD36dAkbyR7OzO5HN9@f9941","58yf2/3klBQYP6mtg/eFkc@b940a","58zz2z5vRJQ6B2JhV5EkKc","59bJZYG5tDJ7ELKUmYfmuw","59bJZYG5tDJ7ELKUmYfmuw@6c48a","59bJZYG5tDJ7ELKUmYfmuw@f9941","5asuPqtxJIDasBD0Gy6SsS","5bXmlPTRVM9I9B4KHreWgR","5bXmlPTRVM9I9B4KHreWgR@6c48a","5bXmlPTRVM9I9B4KHreWgR@f9941","5b7p8Ml3FOc7DqC7ttpnaY@a865e","5cUewJqfxHR6nyT1O46dn6","5cUewJqfxHR6nyT1O46dn6@6c48a","5cUewJqfxHR6nyT1O46dn6@f9941","5cxfD0Q91AXKnAYkfRv6Gw@438fe","5cxfD0Q91AXKnAYkfRv6Gw@73b7f","5cxfD0Q91AXKnAYkfRv6Gw@b4e6b","5cxfD0Q91AXKnAYkfRv6Gw@d1932","5cxfD0Q91AXKnAYkfRv6Gw@e39f7","5cxfD0Q91AXKnAYkfRv6Gw@f605f","5fTdeYKuZLv4S0UEu2zOrt","5fTdeYKuZLv4S0UEu2zOrt@6c48a","65Cp4tlEZK55E4GHhJ6/pp","65Cp4tlEZK55E4GHhJ6/pp@6c48a","65Cp4tlEZK55E4GHhJ6/pp@f9941","68xNkbuiVAipWIifHltfxk","6bHJPbIyBPnKPuOme7iPFh","6bHJPbIyBPnKPuOme7iPFh@6c48a","6bHJPbIyBPnKPuOme7iPFh@f9941","6ciCT1eRlBYJbP3wDkkl90","6ciCT1eRlBYJbP3wDkkl90@6c48a","6ciCT1eRlBYJbP3wDkkl90@f9941","6c1OjBtj9Lu7PbsyP6CLQ1","6ftPVHbvtACqZljC0rufHc","6ftPVHbvtACqZljC0rufHc@6c48a","6ftPVHbvtACqZljC0rufHc@f9941","70jqOrfKpCNZ8ipVTiJAaH","73yIepYitHBoVchk3GwGT1","73yIepYitHBoVchk3GwGT1@6c48a","73yIepYitHBoVchk3GwGT1@f9941","76fANB9Y1K7rJPjk8WILpE","76fANB9Y1K7rJPjk8WILpE@6c48a","76fANB9Y1K7rJPjk8WILpE@f9941","7az8mBYelB4JK9AkjIfqS6","7az8mBYelB4JK9AkjIfqS6@6c48a","7az8mBYelB4JK9AkjIfqS6@f9941","7egaiZbHxJPYDP5Pcw5PSP","81JUI9LDxHgLSD3P1FMsBf","82QbxRzWJJj4n7mqJsPsMh","82QbxRzWJJj4n7mqJsPsMh@6c48a","82QbxRzWJJj4n7mqJsPsMh@f9941","84Eip2kD1FeIJKKKwM0kYK","84Eip2kD1FeIJKKKwM0kYK@6c48a","84Eip2kD1FeIJKKKwM0kYK@f9941","84iy5lk7pEEb6EjoNt1bJf","89ScHxmytBjLFQYRqUVDQW","89ScHxmytBjLFQYRqUVDQW@6c48a","8abH0ojEBArqZ2Yzh/LoN8","8abH0ojEBArqZ2Yzh/LoN8@6c48a","8abH0ojEBArqZ2Yzh/LoN8@f9941","8dHjmY6jhBM7YJD19BR6YA","8dHjmY6jhBM7YJD19BR6YA@6c48a","8dHjmY6jhBM7YJD19BR6YA@f9941","8fGC/47MBKtKbu817prghw","8fGC/47MBKtKbu817prghw@6c48a","8fGC/47MBKtKbu817prghw@f9941","90+GVzW69B4pfbhgTR9Ctl@a9630","95EkngnxZFbYuFpsqVTaFr","95EkngnxZFbYuFpsqVTaFr@6c48a","95EkngnxZFbYuFpsqVTaFr@f9941","95vBxQpFZIRaUzWo2NL9Fr","957Y4ui01C44iECl0G0/n0","957Y4ui01C44iECl0G0/n0@6c48a","957Y4ui01C44iECl0G0/n0@f9941","99et/B3p5BgrZO5CfEzduf","99et/B3p5BgrZO5CfEzduf@6c48a","99et/B3p5BgrZO5CfEzduf@f9941","9fdghPAJpPM6ps0IvZopwB","9fdghPAJpPM6ps0IvZopwB@6c48a","9fdghPAJpPM6ps0IvZopwB@f9941","9fuafV/PRLeZGkwd8rZXgM","9fuafV/PRLeZGkwd8rZXgM@6c48a","9fuafV/PRLeZGkwd8rZXgM@f9941","a0dRR+wHVG05qOgxMWK5Zu","a0dRR+wHVG05qOgxMWK5Zu@6c48a","a0dRR+wHVG05qOgxMWK5Zu@f9941","a1KZkqZL1MRb8F4DXtG2J5","a1KZkqZL1MRb8F4DXtG2J5@6c48a","a1KZkqZL1MRb8F4DXtG2J5@f9941","a3zQCfCrBCDZJ4uf2rk5u8","a4vgulFcxC7afwgzAe47zr","a4vgulFcxC7afwgzAe47zr@6c48a","a4vgulFcxC7afwgzAe47zr@f9941","a52kK/VKhPWYrFcMzOHtmQ","a5/Tk5fk1OT4M3YkeyugyO","a5/Tk5fk1OT4M3YkeyugyO@6c48a","a5/Tk5fk1OT4M3YkeyugyO@f9941","a7YJzyJxhAKoUOH4gt0hkD","a7YJzyJxhAKoUOH4gt0hkD@6c48a","a7YJzyJxhAKoUOH4gt0hkD@f9941","a8c6dCtQNKloVwb+VCaXA1@57e42","a8/sSDBCRMTYuVKIwUgI4+","a8/sSDBCRMTYuVKIwUgI4+@6c48a","a8/sSDBCRMTYuVKIwUgI4+@f9941","aaL0uG+fZENJT/EBZcTpeA","aaL0uG+fZENJT/EBZcTpeA@6c48a","aaL0uG+fZENJT/EBZcTpeA@f9941","aa+G8B2exLEIbBP+5RK72d","aa+G8B2exLEIbBP+5RK72d@6c48a","aa+G8B2exLEIbBP+5RK72d@f9941","acVf2TPV5O6pknusWqaHMS","acVf2TPV5O6pknusWqaHMS@6c48a","acVf2TPV5O6pknusWqaHMS@f9941","aePhLhb8BEvqKAI5c/aWK3","aePhLhb8BEvqKAI5c/aWK3@6c48a","aePhLhb8BEvqKAI5c/aWK3@f9941","afP/lR7e9MfqHcdVXgYPzY","afP/lR7e9MfqHcdVXgYPzY@6c48a","afP/lR7e9MfqHcdVXgYPzY@f9941","afSLMLCmxBF5oZRpecKJgq","afSLMLCmxBF5oZRpecKJgq@6c48a","afSLMLCmxBF5oZRpecKJgq@f9941","afxHkx8GZGsJC+n+YfITQo","afxHkx8GZGsJC+n+YfITQo@6c48a","afxHkx8GZGsJC+n+YfITQo@f9941","af+vHLzJ9JvZXY+R7ByiOZ","af+vHLzJ9JvZXY+R7ByiOZ@6c48a","af+vHLzJ9JvZXY+R7ByiOZ@f9941","b1pgtXwk1Ba5pioPgHPW2y","b1pgtXwk1Ba5pioPgHPW2y@6c48a","b1pgtXwk1Ba5pioPgHPW2y@f9941","b1yzLmyMlAyZ1SEZ2uQWsy@0a7b5","b2RaVqqQ5KHaI6A1a3NF3P","b2RaVqqQ5KHaI6A1a3NF3P@6c48a","b2RaVqqQ5KHaI6A1a3NF3P@f9941","b2vHhrWQtIMbMhgTESoyCZ","b2vHhrWQtIMbMhgTESoyCZ@6c48a","b2vHhrWQtIMbMhgTESoyCZ@f9941","b3CpiafZRDH449MonBWD2o","b7MFJ8MjNBwqr3fNq1j5dJ","d2ghBe2I5EWJ+DUTQAufKx","baIUdvKGZPgZxNbjWTFuRI","b3CpiafZRDH449MonBWD2o@6c48a","b3CpiafZRDH449MonBWD2o@f9941","b7MFJ8MjNBwqr3fNq1j5dJ@6c48a","b7MFJ8MjNBwqr3fNq1j5dJ@f9941","b7qevBlvZJyYLjF6sr4VgF","b7qevBlvZJyYLjF6sr4VgF@6c48a","b7qevBlvZJyYLjF6sr4VgF@f9941","b9gVk1MmBJc6/d6ysKk9lA","b9gVk1MmBJc6/d6ysKk9lA@6c48a","b9gVk1MmBJc6/d6ysKk9lA@f9941","baksN0ny5Ajbzh34OoiqXK","baksN0ny5Ajbzh34OoiqXK@6c48a","baksN0ny5Ajbzh34OoiqXK@f9941","beGfQd/6BBxZyHa8JNhTUC","beGfQd/6BBxZyHa8JNhTUC@6c48a","beGfQd/6BBxZyHa8JNhTUC@f9941","bey6303uNCjLzIjDHmr+a4","bey6303uNCjLzIjDHmr+a4@6c48a","bey6303uNCjLzIjDHmr+a4@f9941","c0ExG6bCNHv7BScpvr46Qr","c0ExG6bCNHv7BScpvr46Qr@6c48a","c0ExG6bCNHv7BScpvr46Qr@f9941","c3rQ4CD15BvKxmfuEb3RGM","c3rQ4CD15BvKxmfuEb3RGM@6c48a","c3rQ4CD15BvKxmfuEb3RGM@f9941","c9nhQb8U9AIKuzEzP78ygt","c9nhQb8U9AIKuzEzP78ygt@6c48a","c9nhQb8U9AIKuzEzP78ygt@f9941","ca8XLfA7dMWopTk/PkvlFG@5ecd9","ccSEOm3uZFw566I8GJuMvE","ccSEOm3uZFw566I8GJuMvE@6c48a","ccSEOm3uZFw566I8GJuMvE@f9941","cdYY3lWfxImbpPVRlfPiTO","cdYY3lWfxImbpPVRlfPiTO@6c48a","ceXzg9vlFFr7mcfXU9oBHa","ceXzg9vlFFr7mcfXU9oBHa@6c48a","ceXzg9vlFFr7mcfXU9oBHa@f9941","d3x4IMKphEKYvHuEU7yaxB","d4733GKxlOma0Jf2xocNWC","d4733GKxlOma0Jf2xocNWC@6c48a","d4733GKxlOma0Jf2xocNWC@f9941","d5CuKKYsBEeo4OzUmEKs/l","d5CuKKYsBEeo4OzUmEKs/l@6c48a","d5CuKKYsBEeo4OzUmEKs/l@f9941","d8e+Z+OVxHrL0pC/8Lbk/I","d8e+Z+OVxHrL0pC/8Lbk/I@6c48a","d8e+Z+OVxHrL0pC/8Lbk/I@f9941","d845rIc3RPYrLzgtqyVdqK","d845rIc3RPYrLzgtqyVdqK@6c48a","d845rIc3RPYrLzgtqyVdqK@f9941","dceKxx6LtMiZEVcbzmzEko","ddrGd/jKdGH6/ZIe6KMetg","ddrGd/jKdGH6/ZIe6KMetg@6c48a","ddrGd/jKdGH6/ZIe6KMetg@f9941","deQgAK58dAY7cTgFqTXEX+","deQgAK58dAY7cTgFqTXEX+@6c48a","deQgAK58dAY7cTgFqTXEX+@f9941","dflYbLyHVCGpMjOvO8iSlm","dflYbLyHVCGpMjOvO8iSlm@6c48a","dflYbLyHVCGpMjOvO8iSlm@f9941","e3gtlA63VIZrjX54R8CIRh","e3gtlA63VIZrjX54R8CIRh@6c48a","e3gtlA63VIZrjX54R8CIRh@f9941","e32TzDrI5JV7W/FOR4p76Q","e32TzDrI5JV7W/FOR4p76Q@6c48a","e32TzDrI5JV7W/FOR4p76Q@f9941","e66M7XK/9PNoNcsS0s/RUX","e66M7XK/9PNoNcsS0s/RUX@6c48a","e66M7XK/9PNoNcsS0s/RUX@f9941","e9XFLb9i5Oy4/XWlDk2Yla","e9XFLb9i5Oy4/XWlDk2Yla@6c48a","e9XFLb9i5Oy4/XWlDk2Yla@f9941","eabKcMPatJKbXJuR2V0d5m","eabKcMPatJKbXJuR2V0d5m@6c48a","eabKcMPatJKbXJuR2V0d5m@f9941","efHs6CRuVD87eu+MoGbrBB","efHs6CRuVD87eu+MoGbrBB@6c48a","efHs6CRuVD87eu+MoGbrBB@f9941","f0N5ZyemhJg5iZxBxHun4Y","f0N5ZyemhJg5iZxBxHun4Y@6c48a","f0N5ZyemhJg5iZxBxHun4Y@f9941","f1wTLXr2JCOq5X0LiJ2YFZ","f1wTLXr2JCOq5X0LiJ2YFZ@6c48a","f1wTLXr2JCOq5X0LiJ2YFZ@f9941","f2+777fQZDMqWHbDIWXFJA","f2+777fQZDMqWHbDIWXFJA@6c48a","f2+777fQZDMqWHbDIWXFJA@f9941","f3EHG9KBpBT7hDzNV5b367","f3EHG9KBpBT7hDzNV5b367@6c48a","f3EHG9KBpBT7hDzNV5b367@f9941","f3ijXqwy5KZJ0s28iGnL5L","f3ijXqwy5KZJ0s28iGnL5L@6c48a","f3ijXqwy5KZJ0s28iGnL5L@f9941","f480AFIm1B/Y9sn8s3NPU9","f480AFIm1B/Y9sn8s3NPU9@6c48a","f480AFIm1B/Y9sn8s3NPU9@f9941","f87vU+mcJLPo5nbPUEx7IN","f87vU+mcJLPo5nbPUEx7IN@6c48a","f87vU+mcJLPo5nbPUEx7IN@f9941","f9cCFo8YpDyJPMj0ur5qnI","f9cCFo8YpDyJPMj0ur5qnI@6c48a","f9cCFo8YpDyJPMj0ur5qnI@f9941","fbmCWg/X9IxbEhmvkPnyAR@72704","fbtc95DOZKA5OBL2UQV0FV","fbtc95DOZKA5OBL2UQV0FV@6c48a","fbtc95DOZKA5OBL2UQV0FV@f9941","fdjsU2o1RKF5x0TziDw3jI","ffuIqPr2JI9I8dPLYGRDpD","ffuIqPr2JI9I8dPLYGRDpD@6c48a","ffuIqPr2JI9I8dPLYGRDpD@f9941"],"paths":{"80":["db:/assets/scene/rocker",0,1],"128":["db:/assets/scene/home",0,1],"149":["db:/assets/scene/list-with-data",0,1],"298":["db:/assets/scene/test-list",0,1],"299":["db:/internal/physics/default-physics-material",2,1],"406":["db:/internal/default_renderpipeline/builtin-forward",1,1]},"scenes":{"db://assets/scene/home.scene":128,"db://assets/scene/list-with-data.scene":149,"db://assets/scene/rocker.scene":80,"db://assets/scene/test-list.scene":298},"packs":{"022134be3":[23,48,80,160,168,190,204,224,234,312,337,402],"0a1ef0880":[155,303],"0afa13991":[13,264,298,377],"0bc0d7670":[42,107,149,340],"0d5620352":[12,16,20,46,50,54,81,84,98,100,103,4,129,132,135,138,141,166,170,176,179,185,188,192,202,216,219,222,236,239,60,64,2,77,96,106,115,122,196,230,32,70,87,90,93,112,118,146,150,153,157,162,181,199,233,29,67,109,125,207,214,41,57,210,35,226,25,38,44,73,249,253,260,256,242,245,263,266,269,272,275,278,281,284,287,294,305,300,291,302,308,311,314,317,323,326,320,330,333,335,339,348,342,345,352,355,358,364,367,370,361,373,376,382,385,394,397,391,388,379,400,404,408],"0de320681":[5,17,21,26,30,33,36,39,47,51,55,58,61,65,71,74,78,82,85,88,91,94,101,104,110,113,116,119,123,126,130,133,136,139,142,147,151,154,158,163,167,171,182,186,189,193,194,197,200,203,208,211,217,220,223,227,231,237,240,243,246,250,254,257,261,267,270,273,276,279,282,285,288,292,295,301,128,306,309,315,318,321,324,327,331,336,343,346,349,350,353,356,359,362,365,368,371,374,380,383,386,389,392,395,398,401,409],"0e37129cf":[62,68,405],"0ffc6f32c":[172,174,175,177]},"versions":{"import":[],"native":[]},"redirect":[247,"0",299,"0"],"debug":false,"extensionMap":{".cconb":[120,143,144,159,164,173,183,205,212,228,251,258,27,289,328,52,75,9]},"hasPreloadScript":true,"dependencyRelationships":{},"types":["cc.SceneAsset","cc.RenderPipeline","cc.PhysicsMaterial"]} \ No newline at end of file diff --git a/build/web-mobile/assets/main/import/ba/ba21476f-2866-4f81-9c4d-6e359316e448.json b/build/web-mobile/assets/main/import/ba/ba21476f-2866-4f81-9c4d-6e359316e448.json deleted file mode 100644 index 1c25a07..0000000 --- a/build/web-mobile/assets/main/import/ba/ba21476f-2866-4f81-9c4d-6e359316e448.json +++ /dev/null @@ -1 +0,0 @@ -[1,0,0,[["cc.PhysicsMaterial",["_name","_friction","_rollingFriction","_spinningFriction","_restitution"],-2]],[[0,0,1,2,3,4,6]],[[0,"default-physics-material",0.8,0.1,0.1,0.1]],0,0,[],[],[]] diff --git a/build/web-mobile/cocos-js/_virtual_cc-tJPAyuI0.js b/build/web-mobile/cocos-js/_virtual_cc-tJPAyuI0.js new file mode 100644 index 0000000..250e572 --- /dev/null +++ b/build/web-mobile/cocos-js/_virtual_cc-tJPAyuI0.js @@ -0,0 +1 @@ +System.register([],(function(t,e){"use strict";return{execute:function(){function i(t,e){for(var i=0;i=0||(r[i]=t[i]);return r}function f(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _(t,e){if(t){if("string"==typeof t)return d(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?d(t,e):void 0}}function d(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function m(t,e){if("object"!=typeof t||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}function g(t){var e=m(t,"string");return"symbol"==typeof e?e:String(e)}function y(t,e,i,n){i&&Object.defineProperty(t,e,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(n):void 0})}function v(t,e,i,n,r){var s={};return Object.keys(n).forEach((function(t){s[t]=n[t]})),s.enumerable=!!s.enumerable,s.configurable=!!s.configurable,("value"in s||s.initializer)&&(s.writable=!0),s=i.slice().reverse().reduce((function(i,n){return n(t,e,i)||i}),s),r&&void 0!==s.initializer&&(s.value=s.initializer?s.initializer.call(r):void 0,s.initializer=void 0),void 0===s.initializer&&(Object.defineProperty(t,e,s),s=null),s}function b(t,e){const i="undefined"==typeof window?global:window;return void 0===i[t]?i[t]=e:i[t]}t({$:function(t){return bR.test(t)},J:cR,N:SR,P:xR,W:wR,X:TR,Y:AR,Z:CR,_:p,a0:function(t){return vR.test(t)},a1:MR,a2:PR,a3:ER,aA:F2,aC:function(t,e){for(var i=t,n="";null!==i&&i!==e;)n=i.name+"/"+n,i=i.parent;return n.slice(0,-1)},aD:sY,aR:ds,aT:ir,aV:Nn,aX:zr,a_:Zr,az:R2,b0:ms,b2:bs,b4:cr,b9:Ji,bB:Be,bC:Pe,bD:ke,bI:function(t){t>0&&(bt=t)},bM:Ct,bN:function(t){for(var e,i=p(t);!(e=i()).done;)Dt(e.value)},bO:function(t){return wt||(wt="undefined"==typeof Proxy?{}:new Proxy(t,{get:function(t,e,i){return Dt(e),Reflect.get(t,e,i)}})),wt},bP:Zo,bQ:$o,bT:Li,bU:Ni,ba:Qi,bb:Zi,bc:$i,bd:tn,be:en,bf:nn,bg:rn,bh:sn,bi:an,bj:on,bk:hn,bl:un,bm:ln,bn:cn,bo:fn,bp:_n,bq:dn,br:pn,bs:mn,bt:gn,bu:xn,bv:wn,c3:function(t){return t[ou]},c6:Do,c8:J,c9:q,cH:Gf,cI:Tc,cJ:Uc,cU:uu,cW:Hf,cZ:wi,c_:Ti,ca:Y,cb:X,cc:K,cd:nt,ce:et,cf:ot,cg:st,ch:ut,ci:ft,cj:_t,ck:ct,d1:yo,d2:vo,d5:function(t,e){e.forEach((function(e){Object.getOwnPropertyNames(e.prototype).forEach((function(i){"constructor"!==i&&Object.defineProperty(t.prototype,i,Object.getOwnPropertyDescriptor(e.prototype,i))}))}))},d6:Q,d7:function(t,e){return Oh(t,e,0)},d8:Oh,d9:function(t,e,i){for(var n=0,r=t.length-1,s=r>>>1;n<=r;s=n+r>>>1){var a=t[s];if(i(a,e)<0)r=s-1;else{if(!(i(a,e)>0))return s;n=s+1}}return~n},dX:ay,dZ:j$,da:function(){},db:function(){},dc:Ie,dd:Yf,dr:NP,fy:function(){return Promise.resolve()},g:tDt,g9:PHt,gS:EXt,gT:OXt,hn:n5t}),b("CC_WECHAT",!1),b("CC_XIAOMI",!1),b("CC_ALIPAY",!1),b("CC_BYTEDANCE",!1),b("CC_OPPO",!1),b("CC_VIVO",!1),b("CC_HUAWEI",!1),b("CC_MIGU",!1),b("CC_HONOR",!1),b("CC_COCOS_RUNTIME",!1);const S=!1;b("CC_EDITOR",!1);const x=!1;b("CC_PREVIEW",!1),b("CC_BUILD",!0),b("CC_TEST",!1),b("CC_DEBUG",!1),b("CC_DEV",!1),b("CC_MINIGAME",!1),b("CC_RUNTIME_BASED",!1),b("CC_SUPPORT_JIT",!0),b("CC_JSB",!1);var w="undefined"==typeof window?global:window,T=t("aO",{_global:w}),A=T;T.internal={};var C=t("aN","3.8.6");w.CocosEngine=A.ENGINE_VERSION=C,w.cc=A;var D=void 0!==globalThis.jsb&&void 0!==jsb.window?jsb.window:globalThis;w.ccwindow=D;var B=2147483647;function I(t){return(t>0)-(t<0)}function M(t,e){return t^(t^e)&-(t65535)<<4,e|=i=((t>>>=e)>255)<<3,e|=i=((t>>>=i)>15)<<2,(e|=i=((t>>>=i)>3)<<1)|(t>>>=i)>>1}function E(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24}function O(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}function k(t){return--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,1+(t|=t>>>16)}var R=new Array(256);!function(t){for(var e=0;e<256;++e){var i=e,n=e,r=7;for(i>>>=1;i;i>>>=1)n<<=1,n|=1&i,--r;t[e]=n<>31;return(t^e)-e},countTrailingZeros:O,deinterleave2:function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},deinterleave3:function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},interleave2:function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},interleave3:function(t,e,i){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(i=1227133513&((i=3272356035&((i=251719695&((i=4278190335&((i&=1023)|i<<16))|i<<8))|i<<4))|i<<2))<<2},isPow2:function(t){return!(t&t-1||!t)},log10:function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},log2:P,max:M,min:function(t,e){return e^(t^e)&-(t>>O(t)+1},nextPow2:k,parity:function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1},popCount:E,prevPow2:function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},reverse:function(t){return R[255&t]<<24|R[t>>>8&255]<<16|R[t>>>16&255]<<8|R[t>>>24&255]},sign:I});t("aP",F);var L=D.document,N="https://github.com/cocos/cocos-engine/blob/"+C+"/EngineErrorMap.md",V=null,z=console.log.bind(console),U=z,G=z,H=function(t,e){if(!t){for(var i=arguments.length,n=new Array(i>2?i-2:0),r=2;r2?i-2:0),r=2;r4){var e=function(t){if(A.game.canvas){if(!V){var e=L.createElement("Div");e.setAttribute("id","logInfoDiv"),e.setAttribute("width","200");var i=A.game.canvas.height;e.setAttribute("height",""+i);var n=e.style;n.zIndex="99999",n.position="absolute",n.top=n.left="0",(V=L.createElement("textarea")).setAttribute("rows","20"),V.setAttribute("cols","30"),V.setAttribute("disabled","true");var r=V.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="0px",e.appendChild(V),A.game.canvas.parentNode.appendChild(e)}V.value=V.value+t+"\r\n",V.scrollTop=V.scrollHeight}};G=function(){e("ERROR : "+j.apply(void 0,arguments))},H=function(t,i){if(!t){for(var n=arguments.length,r=new Array(n>2?n-2:0),s=2;s2?i-2:0),r=2;r1?n-1:0),s=1;s1?e-1:0),n=1;n1?e-1:0),n=1;n1?e-1:0),n=1;n1?e-1:0),n=1;n2?i-2:0),r=2;r1?e-1:0),n=1;no.count&&(r("'%s' is deprecated, please use '%s' instead. "+a,t+"."+e,i+"."+n),o.count++)},t("bJ",dt=function(t,e,i){null!=t&&i.forEach((function(i){var n=St++;xt.set(n,{id:n,count:0,logTimes:void 0!==i.logTimes?i.logTimes:bt});var r=null!=i.target?i.target:t,s=null!=i.newName?i.newName:i.name,a=null!=i.targetName?i.targetName:e,o=r===t,h=i.suggest?"("+i.suggest+")":"";if(null!=i.customFunction)t[i.name]=function(){var t;return gt(e,i.name,a,s,X,n,h),(t=i.customFunction).call.apply(t,[this].concat(Array.prototype.slice.call(arguments)))};else if(null!=i.customSetter||null!=i.customGetter){var u=null!=i.customSetter,l=null!=i.customGetter;u&&l?Object.defineProperty(t,i.name,{get:function(){return gt(e,i.name,a,s,X,n,h),i.customGetter.call(this)},set:function(t){gt(e,i.name,a,s,X,n,h),i.customSetter.call(this,t)},enumerable:!1}):u?Object.defineProperty(t,i.name,{set:function(t){gt(e,i.name,a,s,X,n,h),i.customSetter.call(this,t)},enumerable:!1}):l&&Object.defineProperty(t,i.name,{get:function(){return gt(e,i.name,a,s,X,n,h),i.customGetter.call(this)},enumerable:!1})}else Object.defineProperty(t,i.name,{get:function(){return gt(e,i.name,a,s,X,n,h),o?this[s]:r[s]},set:function(t){gt(e,i.name,a,s,X,n,h),o?this[s]=t:r[s]=t},enumerable:!1})}))}),yt=function(t,e,i,n,r){var s=xt.get(n);s&&s.logTimes>s.count&&(i("'%s' has been removed. "+r,t+"."+e),s.count++)},t("bK",pt=function(t,e,i){null!=t&&i.forEach((function(i){var n=St++;xt.set(n,{id:n,count:0,logTimes:void 0!==i.logTimes?i.logTimes:bt});var r=i.suggest?"("+i.suggest+")":"";Object.defineProperty(t,i.name,{get:function(){return yt(e,i.name,Y,n,r)},set:function(){yt(e,i.name,Y,n,r)},enumerable:!1})}))}),t("bL",mt=function(){});var wt,Tt,At={};function Ct(t){for(var e in t){var i=t[e];At[e]=i}}function Dt(t){var e=At[t];if(e){var i=e.newName,n=e.since;e.removed?i?ot(16003,t,n,i):ot(16002,t,n):i?st(16001,t,n,i):st(16e3,t,n)}}var Bt=function(){function t(t){this.id=0|998*Math.random(),this.prefix=t?t+".":""}return t.prototype.getNewId=function(){return this.prefix+(++this.id).toString()},t}();Tt=Bt,Bt.global=new Tt("global");var It=new Bt("TmpCId."),Mt="undefined"==typeof Symbol?"__aliases__":Symbol("[[Aliases]]"),Pt="__classname__",Et="__cid__";function Ot(t){return"number"==typeof t||t instanceof Number}function kt(t){return"string"==typeof t||t instanceof String}function Rt(t){for(var e in t)return!1;return!0}var Ft,Lt=(Ft={value:void 0,enumerable:!1,writable:!1,configurable:!0},function(t,e,i,n,r){Ft.value=i,Ft.writable=n,Ft.enumerable=r,Object.defineProperty(t,e,Ft),Ft.value=void 0}),Nt=function(){var t={get:void 0,set:void 0,enumerable:!1};return function(e,i,n,r,s,a){void 0===s&&(s=!1),void 0===a&&(a=!1),"boolean"==typeof r&&(et(1031),s=r,r=void 0),t.get=n,t.set=r,t.enumerable=s,t.configurable=a,Object.defineProperty(e,i,t),t.get=void 0,t.set=void 0}}(),Vt=function(){var t={get:void 0,enumerable:!1,configurable:!1};return function(e,i,n,r,s){t.get=n,t.enumerable=r,t.configurable=s,Object.defineProperty(e,i,t),t.get=void 0}}(),zt=function(){var t={set:void 0,enumerable:!1,configurable:!1};return function(e,i,n,r,s){t.set=n,t.enumerable=r,t.configurable=s,Object.defineProperty(e,i,t),t.set=void 0}}();function Ut(t){var e=Object.create(null);return t&&(e["."]=1,e["/"]=1,delete e["."],delete e["/"]),e}function Gt(t){if("function"==typeof t){var e=t.prototype;if(e&&e.hasOwnProperty(Pt)&&e[Pt])return e[Pt];var i="";if(t.name)i=t.name;else if(t.toString){var n,r=t.toString();(n="["===r.charAt(0)?/\[\w+\s*(\w+)\]/.exec(r):/^function\s*(\w+)/.exec(r))&&2===n.length&&(i=n[1])}return"Object"!==i?i:""}return t&&t.constructor?Gt(t.constructor):""}function Ht(t,e,i,n){var r=/([^.]+)$/,s=r.exec(e)[0],a=r.exec(i)[0];function o(){return this[a]}n?Nt(t,s,o,(function(t){this[a]=t})):Vt(t,s,o)}function Wt(t,e,i,n){for(var r in i)Ht(t,e+"."+r,i[r],n)}var jt=/(%d)|(%s)/,qt=/%s/;function Xt(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n0){--this.count;var t=this._pool[this.count];return this._pool[this.count]=null,t}return null},t.put=function(t){var e=this._pool;if(this.count=0&&(this._pool.length=t,this.count>t&&(this.count=t))},e}(),ge=function(){function t(t){this.i=0,this.array=t}var e=t.prototype;return e.remove=function(t){var e=this.array.indexOf(t);e>=0&&this.removeAt(e)},e.removeAt=function(t){this.array.splice(t,1),t<=this.i&&--this.i},e.fastRemove=function(t){var e=this.array.indexOf(t);e>=0&&this.fastRemoveAt(e)},e.fastRemoveAt=function(t){var e=this.array;e[t]=e[e.length-1],--e.length,t<=this.i&&--this.i},e.push=function(t){this.array.push(t)},n(t,[{key:"length",get:function(){return this.array.length},set:function(t){this.array.length=t,this.i>=t&&(this.i=t-1)}}]),t}();function ye(t,e){t.splice(e,1)}function ve(t,e){var i=t.length;e<0||e>=i||(t[e]=t[i-1],t.length=i-1)}function be(t,e){var i=t.indexOf(e);return i>=0&&(ye(t,i),!0)}function Se(t,e){var i=t.indexOf(e);i>=0&&(t[i]=t[t.length-1],--t.length)}function xe(t,e){var i=t.findIndex(e);if(i>=0){var n=t[i];return ye(t,i),n}}function we(t,e){return t.indexOf(e)>=0}function Te(t){for(var e=0,i=arguments.length<=1?0:arguments.length-1;e0)for(var i,n=p(t);!(i=n()).done;)if(!(i.value instanceof e))return et(1300),!1;return!0}}),Ce={IDGenerator:Bt,Pool:me,array:Ae,isNumber:Ot,isString:kt,isEmptyObject:Rt,getPropertyDescriptor:Kt,addon:Qt,mixin:Zt,extend:$t,getSuper:te,isChildClassOf:ee,clear:ie,value:Lt,getset:Nt,get:Vt,set:zt,unregisterClass:le,getClassName:Gt,setClassName:he,setClassAlias:ue,getClassByName:_e,getClassById:fe,get _registeredClassNames(){return r({},re)},set _registeredClassNames(t){ie(re),Object.assign(re,t)},get _registeredClassIds(){return r({},ne)},set _registeredClassIds(t){ie(ne),Object.assign(ne,t)},_getClassId:de,getClassId:pe,_setClassId:ae,_getClassById:ce,obsolete:Ht,obsoletes:Wt,formatStr:Xt,shiftArguments:Yt,createMap:Ut};A.js=Ce;var De=Object.freeze({__proto__:null,IDGenerator:Bt,Pool:me,_getClassById:ce,_getClassId:de,_idToClass:ne,_nameToClass:re,_setClassId:ae,addon:Qt,array:Ae,clear:ie,copyAllProperties:function(t,e,i){for(var n=Object.getOwnPropertyNames(t),r=0,s=n.length;r=0&&t.length,t.length}t("bF",De),Be.isBitMask=function(t){return t&&Object.prototype.hasOwnProperty.call(t,"__bitmask__")},Be.getList=function(t){return t.__bitmask__?t.__bitmask__:Be.update(t)},Be.update=function(t){Array.isArray(t.__bitmask__)||(t.__bitmask__=[]);var e=t.__bitmask__;for(var i in e.length=0,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},A.BitMask=Be;var Me=Object.prototype.hasOwnProperty;function Pe(t){return"__enums__"in t?t:(Lt(t,"__enums__",null,!0),Pe.update(t))}function Ee(t){Me.call(t,"__enums__")}function Oe(t){Ee(t);var e=t.__enums__||[];e.length=0;var i=!0;for(var n in t){var r=t[n],s=Number.isInteger(r);s||(i=!1),(s||"string"==typeof r&&t[r]!==Number.parseInt(n))&&e.push({name:n,value:r})}return i&&e.sort((function(t,e){return t.value-e.value})),t.__enums__=e,e}function ke(t){"__enums__"in t||Lt(t,"__enums__",null,!0)}Pe.update=function(t){for(var e=-1,i=Object.keys(t),n=0;n2?n-2:0),s=2;s1?e-1:0),n=1;ni){var n=e;e=i,i=n}return t=0;n--){var r=i[n];r.hasOwnProperty("__attrs__")&&r.__attrs__||ni(r,(e=i[n+1])&&e.__attrs__)}return ni(t,(e=i[0])&&e.__attrs__),t.__attrs__}function si(t,e){var i=ai(t),n=e+ii,r={};for(var s in i)s.startsWith(n)&&(r[s.slice(n.length)]=i[s]);return r}function ai(t){return t.hasOwnProperty("__attrs__")&&t.__attrs__||ri(t)}function oi(t,e,i,n){ai(t)[e+ii+i]=n}var hi=function(){function t(t,e){this.name=t,this.default=e}return t.prototype.toString=function(){return this.name},t}(),ui=t("bX",new hi("Integer",0));A.Integer=ui,A.CCInteger=ui;var li=t("bY",new hi("Float",0));A.Float=li,A.CCFloat=li;var ci=t("bZ",new hi("Boolean",!1));A.Boolean=ci,A.CCBoolean=ci;var fi=t("b_",new hi("String",""));function _i(t,e){return function(i,n){var r='"'+Gt(i)+"."+n+'"',s=si(i,n),a=s.type;if(a===ui||a===li?a="Number":a!==fi&&a!==ci||(a=""+a),a===t){if(s.hasOwnProperty("default")){var o=s.default;if(void 0!==o&&!Array.isArray(o)&&!Ze(o)){var h=typeof o,u=t.toLowerCase();if(h===u)if("object"===u){if(!o||o instanceof s.ctor)return;st(3605,r,Gt(s.ctor))}else"Number"!==t&&st(3606,e,r,t);else{if("function"===h)return;t===fi.default&&null==o?st(3607,r):st(3611,e,r,h)}delete s.type}}}else st(3604,r)}}A.String=fi,A.CCString=fi;var di=Object.freeze({__proto__:null,CCBoolean:ci,CCFloat:li,CCInteger:ui,CCString:fi,DELIMETER:ii,PrimitiveType:hi,attr:si,createAttrs:ri,createAttrsSingle:ni,getClassAttrs:ai,getObjTypeChecker_ET:function(t){return function(e,i){_i("Object","type")(e,i);var n=ai(e)[i+ii+"default"],r=A.Class.getDefault(n);if(!Array.isArray(r)&&ee(t,A.ValueType)){var s=Gt(t),a=Xt('No need to specify the "type" of "%s.%s" because %s is a child class of ValueType.',Gt(e),i,s);n?q(a):st(3612,a,s,Gt(e),i,s)}}},getTypeChecker_ET:_i,setClassAttr:oi}),pi={default:{},serializable:{},editorOnly:{},formerlySerializedAs:{}};function mi(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 s={};for(var a in n[r]=s,pi){var o=pi[a];t.hasOwnProperty(a)&&(s[a]=t[a],o.canUsedInGet||delete t[a])}}}function gi(t,e,i,n){if(Array.isArray(e)){if(!(e.length>0))return ot(5508,i,n);t.type=e=e[0]}"function"==typeof e&&(e===String?t.type=A.String:e===Boolean?t.type=A.Boolean:e===Number&&(t.type=A.Float))}function yi(t,e,i){var n=t||void 0===e?{_short:!0}:{_short:!0,default:e};return i&&(n.type=i),n}function vi(t,e){if(!t||t.constructor!==Object){if(Array.isArray(t)&&t.length>0)return yi(e,[],t);if("function"==typeof t){var i=t;return yi(e,ee(i,A.ValueType)?new i:null,i)}return t instanceof hi?yi(e,void 0,t):yi(e,t)}return null}function bi(t,e){for(var i in t){var n=t[i],r=vi(n,!1);if(r&&(n=t[i]=r),n){var s=n.notify;s&&mi(n,i,s,t),"type"in n&&gi(n,n.type,e,i)}}}var Si=[];function xi(){return Si[Si.length-1]}function wi(t,e,i){Ti(ai(t),e,i)}function Ti(t,e,i){t[""+e+ii+"type"]="Enum",t[""+e+ii+"enumList"]=Pe.getList(i)}A._RF={push:function(t,e,i,n){void 0===i&&(i=e,e=""),Si.push({uuid:e,script:i,module:t,exports:t.exports,beh:null,importMeta:n})},pop:function(){var t=Si.pop(),e=t.module,i=e.exports;if(i===t.exports){for(var n in i)return;e.exports=i=t.cls}},peek:xi};var Ai=ii,Ci="__ctors__",Di=t("c$","Enum"),Bi=t("d0","BitMask");function Ii(t,e){t.indexOf(e)<0&&t.push(e)}function Mi(t,e){Ii(t.__props__,e)}function Pi(t,e,i,n){Mi(t,i),zi(t,n,e,i)}function Ei(t,e,i,n){var r=n.get;n.set,r&&(zi(t,n,e,i),oi(t,i,"serializable",!1))}function Oi(t){return"function"==typeof t?t():t}function ki(t,e,i){var n=i.ctor;return Lt(n,Ci,!0,!0),n.prototype,e&&(n.$super=e),he(t,n),n}function Ri(t,e,i){var n=A.Component,r=xi();if(r&&ee(e,n)){if(ee(r.cls,n))return ot(3615),null;t=t||r.script}var s=ki(t,e,i);if(r)if(ee(e,n)){var a=r.uuid;a&&ae(a,s),r.cls=s}else ee(r.cls,n)||(r.cls=s);return s}function Fi(t,e,i,n){if(t.__props__=[],n&&n.__props__&&(t.__props__=n.__props__.slice()),i)for(var r in bi(i,e),i){var s=i[r];s.get||s.set?Ei(t,e,r,s):Pi(t,e,r,s)}var a=ai(t);t.__values__=t.__props__.filter((function(t){return!1!==a[""+t+Ai+"serializable"]}))}function Li(t){var e=t.name,i=t.extends,n=Ri(e,i,t);e||(e=A.js.getClassName(n)),n._sealed=!0,i&&(i._sealed=!1),Fi(n,e,t.properties,i);var r=t.editor;return r&&ee(i,A.Component)&&A.Component._registerEditorProps(n,r),n}function Ni(t){return null==t||null==t.hasOwnProperty?void 0:t.hasOwnProperty("__values__")}Li._isCCClass=function(t){return null==t||null==t.hasOwnProperty?void 0:t.hasOwnProperty(Ci)},Li.fastDefine=function(t,e,i){he(t,e);for(var n=e.__props__=e.__values__=Object.keys(i),r=ai(e),s=0;s=2&&((r||a())[s+"min"]=l[0],r[s+"max"]=l[1],l.length>2&&(r[s+"step"]=l[2])),u("step","number"),u("userData","object")}Li.isArray=function(t){return t=Oi(t),Array.isArray(t)},Li.getDefault=Oi,Li.escapeForJS=function(t){return JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")},Li.IDENTIFIER_RE=/^[A-Za-z_$][0-9A-Za-z_$]*$/,Li.getNewValueTypeCode=function(t){for(var e=Gt(t),i=t.constructor,n="new "+e+"(",r=0;ri){var n=e;e=i,i=n}return ti?i:t}function $i(t){return t<0?0:t>1?1:t}function tn(t,e,i){return t+(e-t)*i}function en(t){return t*Wi}function nn(t){return t*ji}function rn(){return qi()}function sn(t){qi=t}function an(t,e){return rn()*(e-t)+t}function on(t,e){return Gi(an(t,e))}function hn(t){return(t=(9301*t+49297)%233280)/233280}function un(t,e,i){return hn(t)*(i-e)+e}function ln(t,e,i){return Gi(un(t,e,i))}function cn(t){return k(t)}function fn(t,e){return t-Gi(t/e)*e}function _n(t,e){return t=fn(t,2*e),e-Ui(t-e)}function dn(t,e,i){return(i-t)/(e-t)}function pn(t){return Ui(t.x)>Ui(t.y)?Ui(t.x)>Ui(t.z)?t.x:t.z:Ui(t.y)>Ui(t.z)?t.y:t.z}function mn(t,e){return Ui(t)>Ui(e)?t:e}function gn(t,e){e.forEach((function(e){Object.defineProperty(t,e,{enumerable:!0})}))}var yn,vn,bn=(yn=new Float32Array(1),vn=new Int32Array(yn.buffer),function(t){yn[0]=t;var e=vn[0],i=e>>16&32768,n=2147483647&e,r=n-(112<<23)+4096>>13;return r=n<113<<23?0:r,r=n>=143<<23?31744:r,r=n>255<<23?32256:r,vn[0]=i|r,vn[0]}),Sn=function(){var t=new Float32Array(1),e=new Int32Array(t.buffer);return function(i){var n,r=32767&i,s=r<<13;return 31744!==s?(s+=112<<23,0===r?s=(1048575&s)>>1:32767===r&&(s=2147483647)):s=2139095040,n=(i>>15&1)<<31|s,e[0]=n,t[0]}}();function xn(t){return bn(t)}function wn(t){return Sn(t)}var Tn=Math.abs,An=Math.max,Cn=Math.min,Dn=Math.PI,Bn=Math.sin,In=Math.cos,Mn=Math.atan2,Pn=Math.sqrt,En=Math.ceil,On=Math.floor,kn=Math.round;function Rn(t,e,i,n){return Object.freeze(new Ln(t,e,i,n))}var Fn,Ln=t("aU",function(t){function e(e,i,n,r){var s;return s=t.call(this)||this,"object"==typeof e?(s.x=e.x,s.y=e.y,s.z=e.z,s.w=e.w):(s.x=e||0,s.y=i||0,s.z=n||0,s.w=r||0),s}s(e,t),e.clone=function(t){return new e(t.x,t.y,t.z,t.w)},e.copy=function(t,e){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t},e.set=function(t,e,i,n,r){return t.x=e,t.y=i,t.z=n,t.w=r,t},e.fromColor=function(t,e){return t.x=e.r,t.y=e.g,t.z=e.b,t.w=e.a,t},e.angle=function(t,e){var i=t.y*e.z-t.z*e.y,n=t.z*e.x-t.x*e.z,r=t.x*e.y-t.y*e.x,s=t.x*e.x+t.y*e.y+t.z*e.z;return Mn(Pn(i*i+n*n+r*r),s)},e.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},e.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},e.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},e.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},e.ceil=function(t,e){return t.x=En(e.x),t.y=En(e.y),t.z=En(e.z),t.w=En(e.w),t},e.floor=function(t,e){return t.x=On(e.x),t.y=On(e.y),t.z=On(e.z),t.w=On(e.w),t},e.min=function(t,e,i){return t.x=Cn(e.x,i.x),t.y=Cn(e.y,i.y),t.z=Cn(e.z,i.z),t.w=Cn(e.w,i.w),t},e.max=function(t,e,i){return t.x=An(e.x,i.x),t.y=An(e.y,i.y),t.z=An(e.z,i.z),t.w=An(e.w,i.w),t},e.round=function(t,e){return t.x=kn(e.x),t.y=kn(e.y),t.z=kn(e.z),t.w=kn(e.w),t},e.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},e.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},e.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 Pn(i*i+n*n+r*r+s*s)},e.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},e.len=function(t){var e=t.x,i=t.y,n=t.z,r=t.w;return Pn(e*e+i*i+n*n+r*r)},e.lengthSqr=function(t){var e=t.x,i=t.y,n=t.z,r=t.w;return e*e+i*i+n*n+r*r},e.negate=function(t,e){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},e.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},e.inverseSafe=function(t,e){var i=e.x,n=e.y,r=e.z,s=e.w;return Tn(i)0?(a=1/Pn(a),t.x=i*a,t.y=n*a,t.z=r*a,t.w=s*a):(t.x=0,t.y=0,t.z=0,t.w=0),t},e.dot=function(t,e){return t.x*e.x+t.y*e.y+t.z*e.z+t.w*e.w},e.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},e.scale=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},e.random=function(t,e){e=e||1;var i=2*rn()*Dn,n=2*rn()-1,r=Pn(1-n*n);return t.x=r*In(i)*e,t.y=r*Bn(i)*e,t.z=n*e,t.w=0,t},e.transformMat4=function(t,e,i){var n=e.x,r=e.y,s=e.z,a=e.w;return t.x=i.m00*n+i.m04*r+i.m08*s+i.m12*a,t.y=i.m01*n+i.m05*r+i.m09*s+i.m13*a,t.z=i.m02*n+i.m06*r+i.m10*s+i.m14*a,t.w=i.m03*n+i.m07*r+i.m11*s+i.m15*a,t},e.transformAffine=function(t,e,i){var n=e.x,r=e.y,s=e.z,a=e.w;return t.x=i.m00*n+i.m04*r+i.m08*s+i.m12*a,t.y=i.m01*n+i.m05*r+i.m09*s+i.m13*a,t.z=i.m02*n+i.m06*r+i.m10*s+i.m14*a,t.w=e.w,t},e.transformQuat=function(t,e,i){var n=e.x,r=e.y,s=e.z,a=i.x,o=i.y,h=i.z,u=i.w,l=u*n+o*s-h*r,c=u*r+h*n-a*s,f=u*s+a*r-o*n,_=-a*n-o*r-h*s;return t.x=l*u+_*-a+c*-h-f*-o,t.y=c*u+_*-o+f*-a-l*-h,t.z=f*u+_*-h+l*-o-c*-a,t.w=e.w,t},e.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},e.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},e.strictEquals=function(t,e){return t.x===e.x&&t.y===e.y&&t.z===e.z&&t.w===e.w},e.equals=function(t,e,i){void 0===i&&(i=Ki);var n=1/0;return!(Tn(t.x)===n||Tn(t.y)===n||Tn(t.z)===n||Tn(t.w)===n||Tn(e.x)===n||Tn(e.y)===n||Tn(e.z)===n||Tn(e.w)===n)&&Tn(t.x-e.x)<=i*An(1,Tn(t.x),Tn(e.x))&&Tn(t.y-e.y)<=i*An(1,Tn(t.y),Tn(e.y))&&Tn(t.z-e.z)<=i*An(1,Tn(t.z),Tn(e.z))&&Tn(t.w-e.w)<=i*An(1,Tn(t.w),Tn(e.w))};var i=e.prototype;return i.clone=function(){return new e(this.x,this.y,this.z,this.w)},i.set=function(t,e,i,n){return"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},i.equals=function(t,e){void 0===e&&(e=Ki);var i=this;return Tn(i.x-t.x)<=e*An(1,Tn(i.x),Tn(t.x))&&Tn(i.y-t.y)<=e*An(1,Tn(i.y),Tn(t.y))&&Tn(i.z-t.z)<=e*An(1,Tn(i.z),Tn(t.z))&&Tn(i.w-t.w)<=e*An(1,Tn(i.w),Tn(t.w))},i.equals4f=function(t,e,i,n,r){void 0===r&&(r=Ki);var s=this;return Tn(s.x-t)<=r*An(1,Tn(s.x),Tn(t))&&Tn(s.y-e)<=r*An(1,Tn(s.y),Tn(e))&&Tn(s.z-i)<=r*An(1,Tn(s.z),Tn(i))&&Tn(s.w-n)<=r*An(1,Tn(s.w),Tn(n))},i.strictEquals=function(t){return this.x===t.x&&this.y===t.y&&this.z===t.z&&this.w===t.w},i.strictEquals4f=function(t,e,i,n){return this.x===t&&this.y===e&&this.z===i&&this.w===n},i.lerp=function(t,e){var i=this,n=i.x,r=i.y,s=i.z,a=i.w;return i.x=n+e*(t.x-n),i.y=r+e*(t.y-r),i.z=s+e*(t.z-s),i.w=a+e*(t.w-a),i},i.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},i.clampf=function(t,e){var i=this;return i.x=Zi(i.x,t.x,e.x),i.y=Zi(i.y,t.y,e.y),i.z=Zi(i.z,t.z,e.z),i.w=Zi(i.w,t.w,e.w),i},i.add=function(t){var e=this;return e.x+=t.x,e.y+=t.y,e.z+=t.z,e.w+=t.w,e},i.add4f=function(t,e,i,n){var r=this;return r.x+=t,r.y+=e,r.z+=i,r.w+=n,r},i.subtract=function(t){var e=this;return e.x-=t.x,e.y-=t.y,e.z-=t.z,e.w-=t.w,e},i.subtract4f=function(t,e,i,n){var r=this;return r.x-=t,r.y-=e,r.z-=i,r.w-=n,r},i.multiplyScalar=function(t){var e=this;return e.x*=t,e.y*=t,e.z*=t,e.w*=t,e},i.multiply=function(t){var e=this;return e.x*=t.x,e.y*=t.y,e.z*=t.z,e.w*=t.w,e},i.multiply4f=function(t,e,i,n){var r=this;return r.x*=t,r.y*=e,r.z*=i,r.w*=n,r},i.divide=function(t){var e=this;return e.x/=t.x,e.y/=t.y,e.z/=t.z,e.w/=t.w,e},i.divide4f=function(t,e,i,n){var r=this;return r.x/=t,r.y/=e,r.z/=i,r.w/=n,r},i.negative=function(){var t=this;return t.x=-t.x,t.y=-t.y,t.z=-t.z,t.w=-t.w,t},i.dot=function(t){var e=this;return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},i.cross=function(t){var e=this,i=e.x,n=e.y,r=e.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},i.length=function(){var t=this,e=t.x,i=t.y,n=t.z,r=t.w;return Pn(e*e+i*i+n*n+r*r)},i.lengthSqr=function(){var t=this,e=t.x,i=t.y,n=t.z,r=t.w;return e*e+i*i+n*n+r*r},i.normalize=function(){var t=this,e=t.x,i=t.y,n=t.z,r=t.w,s=e*e+i*i+n*n+r*r;return s>0&&(s=1/Pn(s),t.x=e*s,t.y=i*s,t.z=n*s,t.w=r*s),t},i.scale=function(t){var e=this;return e.x*=t,e.y*=t,e.z*=t,e.w*=t,e},i.transformMat4=function(t){var e=this,i=e.x,n=e.y,r=e.z,s=e.w;return e.x=t.m00*i+t.m04*n+t.m08*r+t.m12*s,e.y=t.m01*i+t.m05*n+t.m09*r+t.m13*s,e.z=t.m02*i+t.m06*n+t.m10*r+t.m14*s,e.w=t.m03*i+t.m07*n+t.m11*r+t.m15*s,e},e}(Re));function Nn(t,e,i,n){return new Ln(t,e,i,n)}Ln.ZERO=Rn(0,0,0,0),Ln.ONE=Rn(1,1,1,1),Ln.NEG_ONE=Rn(-1,-1,-1,-1),Ln.UNIT_X=Rn(1,0,0,0),Ln.UNIT_Y=Rn(0,1,0,0),Ln.UNIT_Z=Rn(0,0,1,0),Ln.UNIT_W=Rn(0,0,0,1),Li.fastDefine("cc.Vec4",Ln,{x:0,y:0,z:0,w:0}),A.Vec4=Ln,A.v4=Nn;var Vn=Math.abs,zn=Math.max,Un=Math.min,Gn=Math.PI,Hn=Math.acos,Wn=Math.sin,jn=Math.cos,qn=Math.sqrt,Xn=Math.ceil,Yn=Math.floor,Kn=Math.round;function Jn(t,e,i){return Object.freeze(new er(t,e,i))}var Qn,Zn,$n,tr,er=t("aS",function(t){function e(e,i,n){var r;return r=t.call(this)||this,"object"==typeof e?(r.x=e.x,r.y=e.y,r.z=e.z):(r.x=e||0,r.y=i||0,r.z=n||0),r}s(e,t),e.zero=function(t){return t.x=0,t.y=0,t.z=0,t},e.clone=function(t){return new e(t.x,t.y,t.z)},e.copy=function(t,e){return t.x=e.x,t.y=e.y,t.z=e.z,t},e.set=function(t,e,i,n){return t.x=e,t.y=i,t.z=n,t},e.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},e.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},e.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},e.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},e.ceil=function(t,e){return t.x=Xn(e.x),t.y=Xn(e.y),t.z=Xn(e.z),t},e.floor=function(t,e){return t.x=Yn(e.x),t.y=Yn(e.y),t.z=Yn(e.z),t},e.min=function(t,e,i){return t.x=Un(e.x,i.x),t.y=Un(e.y,i.y),t.z=Un(e.z,i.z),t},e.max=function(t,e,i){return t.x=zn(e.x,i.x),t.y=zn(e.y,i.y),t.z=zn(e.z,i.z),t},e.round=function(t,e){return t.x=Kn(e.x),t.y=Kn(e.y),t.z=Kn(e.z),t},e.multiplyScalar=function(t,e,i){return t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t},e.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},e.distance=function(t,e){var i=e.x-t.x,n=e.y-t.y,r=e.z-t.z;return qn(i*i+n*n+r*r)},e.squaredDistance=function(t,e){var i=e.x-t.x,n=e.y-t.y,r=e.z-t.z;return i*i+n*n+r*r},e.len=function(t){var e=t.x,i=t.y,n=t.z;return qn(e*e+i*i+n*n)},e.lengthSqr=function(t){var e=t.x,i=t.y,n=t.z;return e*e+i*i+n*n},e.negate=function(t,e){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},e.invert=function(t,e){return t.x=1/e.x,t.y=1/e.y,t.z=1/e.z,t},e.invertSafe=function(t,e){var i=e.x,n=e.y,r=e.z;return Vn(i)0?(s=1/qn(s),t.x=i*s,t.y=n*s,t.z=r*s):(t.x=0,t.y=0,t.z=0),t},e.dot=function(t,e){return t.x*e.x+t.y*e.y+t.z*e.z},e.cross=function(t,e,i){var n=e.x,r=e.y,s=e.z,a=i.x,o=i.y,h=i.z;return t.x=r*h-s*o,t.y=s*a-n*h,t.z=n*o-r*a,t},e.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},e.random=function(t,e){e=e||1;var i=2*rn()*Gn,n=2*rn()-1,r=qn(1-n*n);return t.x=r*jn(i)*e,t.y=r*Wn(i)*e,t.z=n*e,t},e.transformMat4=function(t,e,i){var n=e.x,r=e.y,s=e.z,a=i.m03*n+i.m07*r+i.m11*s+i.m15;return a=a?1/a:1,t.x=(i.m00*n+i.m04*r+i.m08*s+i.m12)*a,t.y=(i.m01*n+i.m05*r+i.m09*s+i.m13)*a,t.z=(i.m02*n+i.m06*r+i.m10*s+i.m14)*a,t},e.transformMat4Normal=function(t,e,i){var n=e.x,r=e.y,s=e.z,a=i.m03*n+i.m07*r+i.m11*s;return a=a?1/a:1,t.x=(i.m00*n+i.m04*r+i.m08*s)*a,t.y=(i.m01*n+i.m05*r+i.m09*s)*a,t.z=(i.m02*n+i.m06*r+i.m10*s)*a,t},e.transformMat3=function(t,e,i){var n=e.x,r=e.y,s=e.z;return t.x=n*i.m00+r*i.m03+s*i.m06,t.y=n*i.m01+r*i.m04+s*i.m07,t.z=n*i.m02+r*i.m05+s*i.m08,t},e.transformAffine=function(t,e,i){var n=e.x,r=e.y,s=e.z;return t.x=i.m00*n+i.m04*r+i.m08*s+i.m12,t.y=i.m01*n+i.m05*r+i.m09*s+i.m13,t.z=i.m02*n+i.m06*r+i.m10*s+i.m14,t},e.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},e.transformRTS=function(t,e,i,n,r){var s=e.x*r.x,a=e.y*r.y,o=e.z*r.z,h=i.w*s+i.y*o-i.z*a,u=i.w*a+i.z*s-i.x*o,l=i.w*o+i.x*a-i.y*s,c=-i.x*s-i.y*a-i.z*o;return t.x=h*i.w+c*-i.x+u*-i.z-l*-i.y+n.x,t.y=u*i.w+c*-i.y+l*-i.x-h*-i.z+n.y,t.z=l*i.w+c*-i.z+h*-i.y-u*-i.x+n.z,t},e.transformInverseRTS=function(t,e,i,n,r){var s=e.x-n.x,a=e.y-n.y,o=e.z-n.z,h=i.w*s-i.y*o+i.z*a,u=i.w*a-i.z*s+i.x*o,l=i.w*o-i.x*a+i.y*s,c=i.x*s+i.y*a+i.z*o;return t.x=(h*i.w+c*i.x+u*i.z-l*i.y)/r.x,t.y=(u*i.w+c*i.y+l*i.x-h*i.z)/r.y,t.z=(l*i.w+c*i.z+h*i.y-u*i.x)/r.z,t},e.rotateX=function(t,e,i,n){var r=e.x-i.x,s=e.y-i.y,a=e.z-i.z,o=jn(n),h=Wn(n),u=r,l=s*o-a*h,c=s*h+a*o;return t.x=u+i.x,t.y=l+i.y,t.z=c+i.z,t},e.rotateY=function(t,e,i,n){var r=e.x-i.x,s=e.y-i.y,a=e.z-i.z,o=jn(n),h=Wn(n),u=a*h+r*o,l=s,c=a*o-r*h;return t.x=u+i.x,t.y=l+i.y,t.z=c+i.z,t},e.rotateZ=function(t,e,i,n){var r=e.x-i.x,s=e.y-i.y,a=e.z-i.z,o=jn(n),h=Wn(n),u=r*o-s*h,l=r*h+s*o,c=a;return t.x=u+i.x,t.y=l+i.y,t.z=c+i.z,t},e.rotateN=function(t,e,i,n,r){var s=e.x-i.x,a=e.y-i.y,o=e.z-i.z,h=n.x,u=n.y,l=n.z,c=jn(r),f=Wn(r),_=s*(h*h*(1-c)+c)+a*(h*u*(1-c)-l*f)+o*(h*l*(1-c)+u*f),d=s*(h*u*(1-c)+l*f)+a*(u*u*(1-c)+c)+o*(u*l*(1-c)-h*f),p=s*(h*l*(1-c)-u*f)+a*(u*l*(1-c)+h*f)+o*(l*l*(1-c)+c);return t.x=_+i.x,t.y=d+i.y,t.z=p+i.z,t},e.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},e.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},e.strictEquals=function(t,e){return t.x===e.x&&t.y===e.y&&t.z===e.z},e.equals=function(t,e,i){void 0===i&&(i=Ki);var n=t.x,r=t.y,s=t.z,a=e.x,o=e.y,h=e.z;return Vn(n-a)<=i*zn(1,Vn(n),Vn(a))&&Vn(r-o)<=i*zn(1,Vn(r),Vn(o))&&Vn(s-h)<=i*zn(1,Vn(s),Vn(h))},e.angle=function(t,e){var i=t.x*t.x+t.y*t.y+t.z*t.z,n=e.x*e.x+e.y*e.y+e.z*e.z;if(0===i||0===n)return 0;var r=(t.x*e.x+t.y*e.y+t.z*e.z)/qn(i*n);return r=Zi(r,-1,1),Hn(r)},e.projectOnPlane=function(t,i,n){return e.subtract(t,i,e.project(t,i,n))},e.project=function(t,i,n){var r=e.lengthSqr(n);return r<1e-6?e.set(t,0,0,0):e.multiplyScalar(t,n,e.dot(i,n)/r)},e.moveTowards=function(t,e,i,n){var r=i.x-e.x,s=i.y-e.y,a=i.z-e.z,o=r*r+s*s+a*a;if(0===o||n>=0&&o0&&(r=1/qn(r),t.x=e*r,t.y=i*r,t.z=n*r),t},i.transformMat4=function(t){var e=this,i=e.x,n=e.y,r=e.z,s=t.m03*i+t.m07*n+t.m11*r+t.m15;return s=s?1/s:1,e.x=(t.m00*i+t.m04*n+t.m08*r+t.m12)*s,e.y=(t.m01*i+t.m05*n+t.m09*r+t.m13)*s,e.z=(t.m02*i+t.m06*n+t.m10*r+t.m14)*s,e},i.toVec2=function(){return new A.Vec2(this.x,this.y)},e}(Re));function ir(t,e,i){return new er(t,e,i)}Fn=er,er.UNIT_X=Jn(1,0,0),er.UNIT_Y=Jn(0,1,0),er.UNIT_Z=Jn(0,0,1),er.RIGHT=Jn(1,0,0),er.UP=Jn(0,1,0),er.FORWARD=Jn(0,0,-1),er.ZERO=Jn(0,0,0),er.ONE=Jn(1,1,1),er.NEG_ONE=Jn(-1,-1,-1),er.slerp=(Qn=new Fn,Zn=new Fn,$n=new Fn,function(t,e,i,n){var r=1e-5,s=Fn.len(e),a=Fn.len(i);if(s.99999)return Fn.lerp(t,e,i,n);if(h<-.99999){var u=Fn.multiplyScalar(Qn,e,1/s),l=Fn.generateOrthogonal(Zn,u);return rr($n,u,l,Gn*n),Fn.multiplyScalar(t,$n,o),t}var c=h,f=Hn(c)*n,_=Fn.multiplyScalar(Qn,e,1/s),d=Fn.multiplyScalar(Zn,i,1/a);return Fn.scaleAndAdd($n,d,_,-c),Fn.normalize($n,$n),Fn.multiplyScalar($n,$n,Wn(f)),Fn.scaleAndAdd($n,$n,_,jn(f)),Fn.multiplyScalar(t,$n,o),t}),er.signedAngle=(tr=new Fn,function(t,e,i){var n=Fn.angle(t,e),r=Fn.cross(tr,t,e);return Fn.dot(r,i)<0?-n:n}),Li.fastDefine("cc.Vec3",er,{x:0,y:0,z:0}),A.Vec3=er;var nr,rr=(nr={x:0,y:0,z:0,w:0},function(t,e,i,n){var r=.5*n,s=Wn(r);return nr.x=s*i.x,nr.y=s*i.y,nr.z=s*i.z,nr.w=jn(r),er.transformQuat(t,e,nr),t});A.v3=ir;var sr=1/255,ar=Math.abs,or=Math.max;function hr(t,e,i,n){return Object.freeze(new lr(t,e,i,n))}var ur,lr=t("b3",function(t){function e(e,i,n,r){var s;return(s=t.call(this)||this)._data=new Uint8ClampedArray(4),"string"==typeof e?s.fromHEX(e):void 0!==i?s.set(e,i,n,r):s.set(e),s}s(e,t),e.clone=function(t){var i=new e;return i.r=t.r,i.g=t.g,i.b=t.b,i.a=t.a,i},e.copy=function(t,e){return t.r=e.r,t.g=e.g,t.b=e.b,t.a=e.a,t},e.set=function(t,e,i,n,r){return t.r=e,t.g=i,t.b=n,t.a=r,t},e.toVec4=function(t,e){var i=t._data;return(e=void 0!==e?e:new Ln).x=i[0]*sr,e.y=i[1]*sr,e.z=i[2]*sr,e.w=i[3]*sr,e},e.fromVec4=function(t,i){var n=(i=void 0===i?new e:i)._data;return n[0]=t.x/sr,n[1]=t.y/sr,n[2]=t.z/sr,n[3]=t.w/sr,i},e.fromHEX=function(t,e){var i;return"string"==typeof e?(6===(e="#"===e[0]?e.substring(1):e).length?e+="FF":3===e.length?e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]+"FF":4===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]),i=Number("0x"+e)):(e<16777216&&(e=255+(e<<8)),i=e),t.r=i>>>24,t.g=(16711680&i)>>>16,t.b=(65280&i)>>>8,t.a=255&i,t},e.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},e.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},e.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},e.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},e.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},e.lerp=function(t,e,i,n){var r=e.r,s=e.g,a=e.b,o=e.a;return t.r=r+(i.r-r)*n,t.g=s+(i.g-s)*n,t.b=a+(i.b-a)*n,t.a=o+(i.a-o)*n,t},e.toArray=function(t,i,n){void 0===n&&(n=0);var r=i instanceof e||i.a>1?1/255:1;return t[n+0]=i.r*r,t[n+1]=i.g*r,t[n+2]=i.b*r,t[n+3]=i.a*r,t},e.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},e.fromUint32=function(t,e){return e>>>=0,t.r=255&e,t.g=e>>8&255,t.b=e>>16&255,t.a=e>>24&255,t},e.toUint32=function(t){return(t.a<<24|t.b<<16|t.g<<8|t.r)>>>0},e.strictEquals=function(t,e){return t.r===e.r&&t.g===e.g&&t.b===e.b&&t.a===e.a},e.equals=function(t,e,i){return void 0===i&&(i=Ki),!(ar(t.r)===1/0||ar(t.g)===1/0||ar(t.b)===1/0||ar(t.a)===1/0)&&ar(t.r-e.r)<=i*or(1,ar(t.r),ar(e.r))&&ar(t.g-e.g)<=i*or(1,ar(t.g),ar(e.g))&&ar(t.b-e.b)<=i*or(1,ar(t.b),ar(e.b))&&ar(t.a-e.a)<=i*or(1,ar(t.a),ar(e.a))},e.hex=function(t){return(255*t.r<<24|255*t.g<<16|255*t.b<<8|255*t.a)>>>0};var i=e.prototype;return i.clone=function(){var t=new e;return t._data.set(this._data),t},i.equals=function(t){var e=t,i=this._data;return t&&i[0]===e.r&&i[1]===e.g&&i[2]===e.b&&i[3]===e.a},i.lerp=function(t,i){return e.lerp(this,this,t,i),this},i.toString=function(){return"rgba("+this.r.toFixed()+", "+this.g.toFixed()+", "+this.b.toFixed()+", "+this.a.toFixed()+")"},i.toCSS=function(t){return void 0===t&&(t="rgba"),"rgba"===t?"rgba("+this.r+","+this.g+","+this.b+","+(this.a*sr).toFixed(2)+")":"rgb"===t?"rgb("+this.r+","+this.g+","+this.b+")":"#"+this.toHEX(t)},i.fromHEX=function(t){var e;return"string"==typeof t?(6===(t="#"===t[0]?t.substring(1):t).length?t+="FF":3===t.length?t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]+"FF":4===t.length&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]),e=Number("0x"+t)):(t<16777216&&(t=255+(t<<8)),e=t),this.r=e>>>24,this.g=(16711680&e)>>>16,this.b=(65280&e)>>>8,this.a=255&e,this},i.toHEX=function(t){void 0===t&&(t="#rrggbb");var e=this._data,i="0",n=[(e[0]<16?i:"")+e[0].toString(16),(e[1]<16?i:"")+e[1].toString(16),(e[2]<16?i:"")+e[2].toString(16)];return"#rgb"===t?(n[0]=n[0][0],n[1]=n[1][0],n[2]=n[2][0]):"#rrggbbaa"===t&&n.push((e[3]<16?i:"")+e[3].toString(16)),n.join("")},i.toRGBValue=function(){return this._data[2]<<16|this._data[1]<<8|this._data[0]},i.fromHSV=function(t,e,i){var n=0,r=0,s=0;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,h=i*(1-e),u=i*(1-e*o),l=i*(1-e*(1-o));switch(a){default:case 0:n=i,r=l,s=h;break;case 1:n=u,r=i,s=h;break;case 2:n=h,r=i,s=l;break;case 3:n=h,r=u,s=i;break;case 4:n=l,r=h,s=i;break;case 5:n=i,r=h,s=u}}var c=this._data;return c[0]=255*n,c[1]=255*r,c[2]=255*s,this},i.toHSV=function(){var t=this._data[0]*sr,e=this._data[1]*sr,i=this._data[2]*sr,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},i.set=function(t,e,i,n){var r=this._data;if("object"==typeof t){var s,a,o,h,u=t;u._data?r.set(u._data):(r[0]=null!==(s=u.r)&&void 0!==s?s:0,r[1]=null!==(a=u.g)&&void 0!==a?a:0,r[2]=null!==(o=u.b)&&void 0!==o?o:0,r[3]=null!==(h=u.a)&&void 0!==h?h:255)}else r[0]=null!=t?t:0,r[1]=null!=e?e:0,r[2]=null!=i?i:0,r[3]=null!=n?n:255;return this},i.multiply=function(t){var e=this._data;return e[0]*=t.r/255,e[1]*=t.g/255,e[2]*=t.b/255,e[3]*=t.a/255,this},i.getModifiableProperties=function(){return["r","g","b","a"]},n(e,[{key:"r",get:function(){return this._data[0]},set:function(t){this._data[0]=t}},{key:"g",get:function(){return this._data[1]},set:function(t){this._data[1]=t}},{key:"b",get:function(){return this._data[2]},set:function(t){this._data[2]=t}},{key:"a",get:function(){return this._data[3]},set:function(t){this._data[3]=t}},{key:"x",get:function(){return this._data[0]*sr},set:function(t){this._data[0]=255*t}},{key:"y",get:function(){return this._data[1]*sr},set:function(t){this._data[1]=255*t}},{key:"z",get:function(){return this._data[2]*sr},set:function(t){this._data[2]=255*t}},{key:"w",get:function(){return this._data[3]*sr},set:function(t){this._data[3]=255*t}}]),e}(Re));function cr(t,e,i,n){return new lr(t,e,i,n)}function fr(t,e,i){if(e>i){var n=e;e=i,i=n}return ti?i:t}function _r(t){var e=t.clone();return e.x=Math.floor(t.x),e.y=Math.floor(t.y),e.z=Math.floor(t.z),e}function dr(t){var e=Math.max(Math.max(t.x,t.y),t.z),i=128;e>1e-4&&(i=Math.log(e)/Math.log(1.1),i=Zi((i=Math.ceil(i))+128,0,255));var n=1/Math.pow(1.1,i-128),r=fr(t.multiplyScalar(n),new er(0,0,0),new er(1,1,1));r.multiplyScalar(255);var s,a,o=_r(r).add((s=r.subtract(_r(r)))<(a=new er(.5,.5,.5))?a:s);return new Ln(o.x/255,o.y/255,o.z/255,i/255)}lr.WHITE=hr(255,255,255,255),lr.GRAY=hr(127,127,127,255),lr.BLACK=hr(0,0,0,255),lr.TRANSPARENT=hr(0,0,0,0),lr.RED=hr(255,0,0,255),lr.GREEN=hr(0,255,0,255),lr.BLUE=hr(0,0,255,255),lr.CYAN=hr(0,255,255,255),lr.MAGENTA=hr(255,0,255,255),lr.YELLOW=hr(255,255,0,255),Li.fastDefine("cc.Color",lr,{r:0,g:0,b:0,a:255}),A.Color=lr,A.color=cr;var pr=Math.abs,mr=Math.max,gr=t("aY",function(t){function e(e,i,n,r,s,a,o,h,u){var l;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===h&&(h=0),void 0===u&&(u=1);var c=f(l=t.call(this)||this);return"object"==typeof e?(c.m00=e.m00,c.m01=e.m01,c.m02=e.m02,c.m03=e.m03,c.m04=e.m04,c.m05=e.m05,c.m06=e.m06,c.m07=e.m07,c.m08=e.m08):(c.m00=e,c.m01=i,c.m02=n,c.m03=r,c.m04=s,c.m05=a,c.m06=o,c.m07=h,c.m08=u),l}s(e,t),e.clone=function(t){return new e(t.m00,t.m01,t.m02,t.m03,t.m04,t.m05,t.m06,t.m07,t.m08)},e.copy=function(t,e){return t.m00=e.m00,t.m01=e.m01,t.m02=e.m02,t.m03=e.m03,t.m04=e.m04,t.m05=e.m05,t.m06=e.m06,t.m07=e.m07,t.m08=e.m08,t},e.set=function(t,e,i,n,r,s,a,o,h,u){return t.m00=e,t.m01=i,t.m02=n,t.m03=r,t.m04=s,t.m05=a,t.m06=o,t.m07=h,t.m08=u,t},e.identity=function(t){return t.m00=1,t.m01=0,t.m02=0,t.m03=0,t.m04=1,t.m05=0,t.m06=0,t.m07=0,t.m08=1,t},e.transpose=function(t,e){if(t===e){var i=e.m01,n=e.m02,r=e.m05;t.m01=e.m03,t.m02=e.m06,t.m03=i,t.m05=e.m07,t.m06=n,t.m07=r}else t.m00=e.m00,t.m01=e.m03,t.m02=e.m06,t.m03=e.m01,t.m04=e.m04,t.m05=e.m07,t.m06=e.m02,t.m07=e.m05,t.m08=e.m08;return t},e.invert=function(t,i){var n=i.m00,r=i.m01,s=i.m02,a=i.m03,o=i.m04,h=i.m05,u=i.m06,l=i.m07,c=i.m08,f=c*o-h*l,_=-c*a+h*u,d=l*a-o*u,p=n*f+r*_+s*d;return 0===p?(e.set(t,0,0,0,0,0,0,0,0,0),t):(p=1/p,t.m00=f*p,t.m01=(-c*r+s*l)*p,t.m02=(h*r-s*o)*p,t.m03=_*p,t.m04=(c*n-s*u)*p,t.m05=(-h*n+s*a)*p,t.m06=d*p,t.m07=(-l*n+r*u)*p,t.m08=(o*n-r*a)*p,t)},e.determinant=function(t){var e=t.m00,i=t.m01,n=t.m02,r=t.m03,s=t.m04,a=t.m05,o=t.m06,h=t.m07,u=t.m08;return e*(u*s-a*h)+i*(-u*r+a*o)+n*(h*r-s*o)},e.multiply=function(t,e,i){var n=e.m00,r=e.m01,s=e.m02,a=e.m03,o=e.m04,h=e.m05,u=e.m06,l=e.m07,c=e.m08,f=i.m00,_=i.m01,d=i.m02,p=i.m03,m=i.m04,g=i.m05,y=i.m06,v=i.m07,b=i.m08;return t.m00=f*n+_*a+d*u,t.m01=f*r+_*o+d*l,t.m02=f*s+_*h+d*c,t.m03=p*n+m*a+g*u,t.m04=p*r+m*o+g*l,t.m05=p*s+m*h+g*c,t.m06=y*n+v*a+b*u,t.m07=y*r+v*o+b*l,t.m08=y*s+v*h+b*c,t},e.multiplyMat4=function(t,e,i){var n=e.m00,r=e.m01,s=e.m02,a=e.m03,o=e.m04,h=e.m05,u=e.m06,l=e.m07,c=e.m08,f=i.m00,_=i.m01,d=i.m02,p=i.m04,m=i.m05,g=i.m06,y=i.m08,v=i.m09,b=i.m10;return t.m00=f*n+_*a+d*u,t.m01=f*r+_*o+d*l,t.m02=f*s+_*h+d*c,t.m03=p*n+m*a+g*u,t.m04=p*r+m*o+g*l,t.m05=p*s+m*h+g*c,t.m06=y*n+v*a+b*u,t.m07=y*r+v*o+b*l,t.m08=y*s+v*h+b*c,t},e.transform=function(t,e,i){this.translate(t,e,i)},e.translate=function(t,e,i){var n=e.m00,r=e.m01,s=e.m02,a=e.m03,o=e.m04,h=e.m05,u=e.m06,l=e.m07,c=e.m08,f=i.x,_=i.y;return t.m00=n,t.m01=r,t.m02=s,t.m03=a,t.m04=o,t.m05=h,t.m06=f*n+_*a+u,t.m07=f*r+_*o+l,t.m08=f*s+_*h+c,t},e.scale=function(t,e,i){var n=i.x,r=i.y;return t.m00=n*e.m00,t.m01=n*e.m01,t.m02=n*e.m02,t.m03=r*e.m03,t.m04=r*e.m04,t.m05=r*e.m05,t.m06=e.m06,t.m07=e.m07,t.m08=e.m08,t},e.rotate=function(t,e,i){var n=e.m00,r=e.m01,s=e.m02,a=e.m03,o=e.m04,h=e.m05,u=e.m06,l=e.m07,c=e.m08,f=Math.sin(i),_=Math.cos(i);return t.m00=_*n+f*a,t.m01=_*r+f*o,t.m02=_*s+f*h,t.m03=_*a-f*n,t.m04=_*o-f*r,t.m05=_*h-f*s,t.m06=u,t.m07=l,t.m08=c,t},e.fromMat4=function(t,e){return t.m00=e.m00,t.m01=e.m01,t.m02=e.m02,t.m03=e.m04,t.m04=e.m05,t.m05=e.m06,t.m06=e.m08,t.m07=e.m09,t.m08=e.m10,t},e.fromViewUp=function(t,i,n){return er.lengthSqr(i)-.999?(e.x=Math.asin(-o),e.y=Math.atan2(a,h),e.z=Math.atan2(n,s),!0):(e.x=Xi,e.y=Math.atan2(r,i),e.z=0,!1):(e.x=-Xi,e.y=Math.atan2(-r,i),e.z=0,!1)};var i=e.prototype;return i.clone=function(){return new e(this)},i.set=function(t,e,i,n,r,s,a,o,h){void 0===t&&(t=1),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=1),void 0===s&&(s=0),void 0===a&&(a=0),void 0===o&&(o=0),void 0===h&&(h=1);var u=this;return"object"==typeof t?(u.m00=t.m00,u.m01=t.m01,u.m02=t.m02,u.m03=t.m03,u.m04=t.m04,u.m05=t.m05,u.m06=t.m06,u.m07=t.m07,u.m08=t.m08):(u.m00=t,u.m01=e,u.m02=i,u.m03=n,u.m04=r,u.m05=s,u.m06=a,u.m07=o,u.m08=h),u},i.equals=function(t,i){return void 0===i&&(i=Ki),e.equals(this,t,i)},i.strictEquals=function(t){return e.strictEquals(this,t)},i.toString=function(){var t=this;return"[\n"+t.m00+", "+t.m01+", "+t.m02+",\n"+t.m03+", "+t.m04+", "+t.m05+",\n"+t.m06+", "+t.m07+", "+t.m08+"\n]"},i.identity=function(){return e.identity(this)},i.transpose=function(){var t=this,e=t.m01,i=t.m02,n=t.m05;return t.m01=t.m03,t.m02=t.m06,t.m03=e,t.m05=t.m07,t.m06=i,t.m07=n,t},i.invert=function(){return e.invert(this,this)},i.determinant=function(){return e.determinant(this)},i.add=function(t){var e=this;return e.m00+=t.m00,e.m01+=t.m01,e.m02+=t.m02,e.m03+=t.m03,e.m04+=t.m04,e.m05+=t.m05,e.m06+=t.m06,e.m07+=t.m07,e.m08+=t.m08,e},i.subtract=function(t){var e=this;return e.m00-=t.m00,e.m01-=t.m01,e.m02-=t.m02,e.m03-=t.m03,e.m04-=t.m04,e.m05-=t.m05,e.m06-=t.m06,e.m07-=t.m07,e.m08-=t.m08,e},i.multiply=function(t){return e.multiply(this,this,t)},i.multiplyScalar=function(t){var e=this;return e.m00*=t,e.m01*=t,e.m02*=t,e.m03*=t,e.m04*=t,e.m05*=t,e.m06*=t,e.m07*=t,e.m08*=t,e},i.scale=function(t){var e=t.x,i=t.y,n=this;return n.m00*=e,n.m01*=e,n.m02*=e,n.m03*=i,n.m04*=i,n.m05*=i,n},i.rotate=function(t){var e=this,i=e.m00,n=e.m01,r=e.m02,s=e.m03,a=e.m04,o=e.m05,h=e.m06,u=e.m07,l=e.m08,c=Math.sin(t),f=Math.cos(t);return e.m00=f*i+c*s,e.m01=f*n+c*a,e.m02=f*r+c*o,e.m03=f*s-c*i,e.m04=f*a-c*n,e.m05=f*o-c*r,e.m06=h,e.m07=u,e.m08=l,e},i.fromQuat=function(t){var e=t.x,i=t.y,n=t.z,r=t.w,s=e+e,a=i+i,o=n+n,h=e*s,u=i*s,l=i*a,c=n*s,f=n*a,_=n*o,d=r*s,p=r*a,m=r*o,g=this;return g.m00=1-l-_,g.m03=u-m,g.m06=c+p,g.m01=u+m,g.m04=1-h-_,g.m07=f-d,g.m02=c-p,g.m05=f+d,g.m08=1-h-l,g},e}(Re));ur=gr,gr.IDENTITY=Object.freeze(new ur);var yr,vr=new er,br=new er;Li.fastDefine("cc.Mat3",gr,{m00:1,m01:0,m02:0,m03:0,m04:1,m05:0,m06:0,m07:0,m08:1}),A.Mat3=gr;var Sr=Math.abs,wr=Math.max,Tr=Math.min,Ar=Math.PI,Cr=Math.acos,Dr=Math.sin,Br=Math.cos,Ir=Math.sqrt,Mr=Math.atan2,Pr=Math.asin,Er=Math.sign,Or=t("aW",function(t){function e(e,i,n,r){var s;return s=t.call(this)||this,"object"==typeof e?(s.x=e.x,s.y=e.y,s.z=e.z,s.w=e.w):(s.x=e||0,s.y=i||0,s.z=n||0,s.w=null!=r?r:1),s}s(e,t),e.clone=function(t){return new e(t.x,t.y,t.z,t.w)},e.copy=function(t,e){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t},e.set=function(t,e,i,n,r){return t.x=e,t.y=i,t.z=n,t.w=r,t},e.identity=function(t){return t.x=0,t.y=0,t.z=0,t.w=1,t},e.rotationTo=function(t,i,n){var r=er.dot(i,n);return r<-.999999?(er.cross(Lr,er.UNIT_X,i),Lr.length()<1e-6&&er.cross(Lr,er.UNIT_Y,i),er.normalize(Lr,Lr),e.fromAxisAngle(t,Lr,Ar),t):r>.999999?(t.x=0,t.y=0,t.z=0,t.w=1,t):(er.cross(Lr,i,n),t.x=Lr.x,t.y=Lr.y,t.z=Lr.z,t.w=1+r,e.normalize(t,t))},e.getAxisAngle=function(t,e){var i=2*Cr(e.w),n=Dr(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},e.multiply=function(t,e,i){var n=e.x*i.w+e.w*i.x+e.y*i.z-e.z*i.y,r=e.y*i.w+e.w*i.y+e.z*i.x-e.x*i.z,s=e.z*i.w+e.w*i.z+e.x*i.y-e.y*i.x,a=e.w*i.w-e.x*i.x-e.y*i.y-e.z*i.z;return t.x=n,t.y=r,t.z=s,t.w=a,t},e.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},e.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},e.rotateX=function(t,e,i){var n=Dr(i*=.5),r=Br(i),s=e.x,a=e.y,o=e.z,h=e.w;return t.x=s*r+h*n,t.y=a*r+o*n,t.z=o*r-a*n,t.w=h*r-s*n,t},e.rotateY=function(t,e,i){var n=Dr(i*=.5),r=Br(i),s=e.x,a=e.y,o=e.z,h=e.w;return t.x=s*r-o*n,t.y=a*r+h*n,t.z=o*r+s*n,t.w=h*r-a*n,t},e.rotateZ=function(t,e,i){var n=Dr(i*=.5),r=Br(i),s=e.x,a=e.y,o=e.z,h=e.w;return t.x=s*r+a*n,t.y=a*r-s*n,t.z=o*r+h*n,t.w=h*r-o*n,t},e.rotateAround=function(t,i,n,r){return e.invert(Rr,i),er.transformQuat(Lr,n,Rr),e.fromAxisAngle(Rr,Lr,r),e.multiply(t,i,Rr),t},e.rotateAroundLocal=function(t,i,n,r){return e.fromAxisAngle(Rr,n,r),e.multiply(t,i,Rr),t},e.calculateW=function(t,e){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=Ir(Sr(1-e.x*e.x-e.y*e.y-e.z*e.z)),t},e.dot=function(t,e){return t.x*e.x+t.y*e.y+t.z*e.z+t.w*e.w},e.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},e.slerp=function(t,e,i,n){var r=0,s=0,a=i.x,o=i.y,h=i.z,u=i.w,l=e.x*i.x+e.y*i.y+e.z*i.z+e.w*i.w;if(l<0&&(l=-l,a=-a,o=-o,h=-h,u=-u),1-l>1e-6){var c=Cr(l),f=Dr(c);r=Dr((1-n)*c)/f,s=Dr(n*c)/f}else r=1-n,s=n;return t.x=r*e.x+s*a,t.y=r*e.y+s*o,t.z=r*e.z+s*h,t.w=r*e.w+s*u,t},e.sqlerp=function(t,i,n,r,s,a){return e.slerp(Rr,i,s,a),e.slerp(Fr,n,r,a),e.slerp(t,Rr,Fr,2*a*(1-a)),t},e.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},e.conjugate=function(t,e){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},e.len=function(t){return Ir(t.x*t.x+t.y*t.y+t.z*t.z+t.w*t.w)},e.lengthSqr=function(t){return t.x*t.x+t.y*t.y+t.z*t.z+t.w*t.w},e.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/Ir(i),t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t.w=e.w*i):(t.x=0,t.y=0,t.z=0,t.w=0),t},e.fromAxes=function(t,i,n,r){return gr.set(Nr,i.x,i.y,i.z,n.x,n.y,n.z,r.x,r.y,r.z),e.normalize(t,e.fromMat3(t,Nr))},e.fromViewUp=function(t,i,n){return gr.fromViewUp(Nr,i,n),e.normalize(t,e.fromMat3(t,Nr))},e.fromAxisAngle=function(t,e,i){var n=Dr(i*=.5);return t.x=n*e.x,t.y=n*e.y,t.z=n*e.z,t.w=Br(i),t},e.fromMat3=function(t,e){var i=e.m00,n=e.m01,r=e.m02,s=e.m03,a=e.m04,o=e.m05,h=e.m06,u=e.m07,l=e.m08,c=i-a-l,f=a-i-l,_=l-i-a,d=0,p=i+a+l;c>p&&(p=c,d=1),f>p&&(p=f,d=2),_>p&&(p=_,d=3);var m=.5*Ir(p+1),g=.25/m;switch(d){case 0:t.w=m,t.x=(o-u)*g,t.y=(h-r)*g,t.z=(n-s)*g;break;case 1:t.w=(o-u)*g,t.x=m,t.y=(n+s)*g,t.z=(h+r)*g;break;case 2:t.w=(h-r)*g,t.x=(n+s)*g,t.y=m,t.z=(o+u)*g;break;case 3:t.w=(n-s)*g,t.x=(h+r)*g,t.y=(o+u)*g,t.z=m;break;default:t.w=1,t.x=0,t.y=0,t.z=0}return t},e.fromEuler=function(t,e,i,n){i*=Vr,n*=Vr;var r=Dr(e*=Vr),s=Br(e),a=Dr(i),o=Br(i),h=Dr(n),u=Br(n);return t.x=r*o*u+s*a*h,t.y=s*a*u+r*o*h,t.z=s*o*h-r*a*u,t.w=s*o*u-r*a*h,t},e.fromAngleZ=function(t,e){return e*=Vr,t.x=t.y=0,t.z=Dr(e),t.w=Br(e),t},e.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},e.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},e.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},e.toEuler=function(t,e,i){var n=e.x,r=e.y,s=e.z,a=e.w,o=0,h=0,u=0,l=n*r+s*a;if(l>.499999)o=0,h=nn(2*Mr(n,a)),u=90;else if(l<-.499999)o=0,h=-nn(2*Mr(n,a)),u=-90;else{var c=r*r,f=s*s;o=nn(Mr(2*n*a-2*r*s,1-n*n*2-2*f)),h=nn(Mr(2*r*a-2*n*s,1-2*c-2*f)),u=nn(Pr(2*l)),i&&(o=-180*Er(o+1e-6)+o,h=-180*Er(h+1e-6)+h,u=180*Er(u+1e-6)-u)}return t.x=o,t.y=h,t.z=u,t},e.toEulerInYXZOrder=function(t,e){gr.fromQuat(Nr,e),gr.toEuler(Nr,t),t.x=nn(t.x),t.y=nn(t.y),t.z=nn(t.z)},e.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},e.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},e.strictEquals=function(t,e){return t.x===e.x&&t.y===e.y&&t.z===e.z&&t.w===e.w},e.equals=function(t,e,i){return void 0===i&&(i=Ki),Sr(t.x-e.x)<=i*wr(1,Sr(t.x),Sr(e.x))&&Sr(t.y-e.y)<=i*wr(1,Sr(t.y),Sr(e.y))&&Sr(t.z-e.z)<=i*wr(1,Sr(t.z),Sr(e.z))&&Sr(t.w-e.w)<=i*wr(1,Sr(t.w),Sr(e.w))},e.angle=function(t,i){var n=Tr(Sr(e.dot(t,i)),1);return 2*Cr(n)},e.rotateTowards=function(t,i,n,r){var s=e.angle(i,n);if(0===s)return t.x=n.x,t.y=n.y,t.z=n.z,t.w=n.w,t;var a=Tr(r/nn(s),1);return e.slerp(t,i,n,a)};var i=e.prototype;return i.clone=function(){return new e(this.x,this.y,this.z,this.w)},i.set=function(t,e,i,n){return"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=null!=n?n:1),this},i.equals=function(t,i){return void 0===i&&(i=Ki),e.equals(this,t,i)},i.strictEquals=function(t){return t&&this.x===t.x&&this.y===t.y&&this.z===t.z&&this.w===t.w},i.getEulerAngles=function(t){return e.toEuler(t,this)},i.lerp=function(t,e){var i=this;return i.x+=e*(t.x-i.x),i.y+=e*(t.y-i.y),i.z+=e*(t.z-i.z),i.w+=e*(t.w-i.w),i},i.slerp=function(t,i){return e.slerp(this,this,t,i)},i.length=function(){var t=this,e=t.x,i=t.y,n=t.z,r=t.w;return Ir(e*e+i*i+n*n+r*r)},i.lengthSqr=function(){var t=this,e=t.x,i=t.y,n=t.z,r=t.w;return e*e+i*i+n*n+r*r},i.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},e}(Re));yr=Or,Or.IDENTITY=Object.freeze(new yr);var kr,Rr=new Or,Fr=new Or,Lr=new er,Nr=new gr,Vr=.5*Ar/180;function zr(t,e,i,n){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=1),new Or(t,e,i,n)}Li.fastDefine("cc.Quat",Or,{x:0,y:0,z:0,w:1}),A.Quat=Or,A.quat=zr;var Ur=Object.freeze,Gr=t("b5",Ur([Ur([1,0,0,1]),Ur([0,1,-1,0]),Ur([-1,0,0,-1]),Ur([0,-1,1,0])])),Hr=Math.abs,Wr=Math.max,jr=Math.sqrt,qr=Math.sin,Xr=Math.cos,Yr=Math.tan,Kr=t("aZ",function(t){function e(e,i,n,r,s,a,o,h,u,l,c,_,d,p,m,g){var y;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===o&&(o=0),void 0===h&&(h=0),void 0===u&&(u=0),void 0===l&&(l=0),void 0===c&&(c=1),void 0===_&&(_=0),void 0===d&&(d=0),void 0===p&&(p=0),void 0===m&&(m=0),void 0===g&&(g=1);var v=f(y=t.call(this)||this);return"object"==typeof e?(v.m00=e.m00,y.m01=e.m01,y.m02=e.m02,y.m03=e.m03,v.m04=e.m04,y.m05=e.m05,y.m06=e.m06,y.m07=e.m07,v.m08=e.m08,y.m09=e.m09,y.m10=e.m10,y.m11=e.m11,v.m12=e.m12,y.m13=e.m13,y.m14=e.m14,y.m15=e.m15):(v.m00=e,y.m01=i,y.m02=n,y.m03=r,v.m04=s,y.m05=a,y.m06=o,y.m07=h,v.m08=u,y.m09=l,y.m10=c,y.m11=_,v.m12=d,y.m13=p,y.m14=m,y.m15=g),y}s(e,t),e.clone=function(t){return new e(t.m00,t.m01,t.m02,t.m03,t.m04,t.m05,t.m06,t.m07,t.m08,t.m09,t.m10,t.m11,t.m12,t.m13,t.m14,t.m15)},e.copy=function(t,e){return t.m00=e.m00,t.m01=e.m01,t.m02=e.m02,t.m03=e.m03,t.m04=e.m04,t.m05=e.m05,t.m06=e.m06,t.m07=e.m07,t.m08=e.m08,t.m09=e.m09,t.m10=e.m10,t.m11=e.m11,t.m12=e.m12,t.m13=e.m13,t.m14=e.m14,t.m15=e.m15,t},e.set=function(t,e,i,n,r,s,a,o,h,u,l,c,f,_,d,p,m){return t.m00=e,t.m01=i,t.m02=n,t.m03=r,t.m04=s,t.m05=a,t.m06=o,t.m07=h,t.m08=u,t.m09=l,t.m10=c,t.m11=f,t.m12=_,t.m13=d,t.m14=p,t.m15=m,t},e.identity=function(t){return t.m00=1,t.m01=0,t.m02=0,t.m03=0,t.m04=0,t.m05=1,t.m06=0,t.m07=0,t.m08=0,t.m09=0,t.m10=1,t.m11=0,t.m12=0,t.m13=0,t.m14=0,t.m15=1,t},e.zero=function(t){return t.m00=0,t.m01=0,t.m02=0,t.m03=0,t.m04=0,t.m05=0,t.m06=0,t.m07=0,t.m08=0,t.m09=0,t.m10=0,t.m11=0,t.m12=0,t.m13=0,t.m14=0,t.m15=0,t},e.transpose=function(t,e){if(t===e){var i=e.m01,n=e.m02,r=e.m03,s=e.m06,a=e.m07,o=e.m11;t.m01=e.m04,t.m02=e.m08,t.m03=e.m12,t.m04=i,t.m06=e.m09,t.m07=e.m13,t.m08=n,t.m09=s,t.m11=e.m14,t.m12=r,t.m13=a,t.m14=o}else t.m00=e.m00,t.m01=e.m04,t.m02=e.m08,t.m03=e.m12,t.m04=e.m01,t.m05=e.m05,t.m06=e.m09,t.m07=e.m13,t.m08=e.m02,t.m09=e.m06,t.m10=e.m10,t.m11=e.m14,t.m12=e.m03,t.m13=e.m07,t.m14=e.m11,t.m15=e.m15;return t},e.invert=function(t,i){var n=i.m00,r=i.m01,s=i.m02,a=i.m03,o=i.m04,h=i.m05,u=i.m06,l=i.m07,c=i.m08,f=i.m09,_=i.m10,d=i.m11,p=i.m12,m=i.m13,g=i.m14,y=i.m15,v=n*h-r*o,b=n*u-s*o,S=n*l-a*o,x=r*u-s*h,w=r*l-a*h,T=s*l-a*u,A=c*m-f*p,C=c*g-_*p,D=c*y-d*p,B=f*g-_*m,I=f*y-d*m,M=_*y-d*g,P=v*M-b*I+S*B+x*D-w*C+T*A;return 0===P?e.zero(t):(P=1/P,t.m00=(h*M-u*I+l*B)*P,t.m01=(s*I-r*M-a*B)*P,t.m02=(m*T-g*w+y*x)*P,t.m03=(_*w-f*T-d*x)*P,t.m04=(u*D-o*M-l*C)*P,t.m05=(n*M-s*D+a*C)*P,t.m06=(g*S-p*T-y*b)*P,t.m07=(c*T-_*S+d*b)*P,t.m08=(o*I-h*D+l*A)*P,t.m09=(r*D-n*I-a*A)*P,t.m10=(p*w-m*S+y*v)*P,t.m11=(f*S-c*w-d*v)*P,t.m12=(h*C-o*B-u*A)*P,t.m13=(n*B-r*C+s*A)*P,t.m14=(m*b-p*x-g*v)*P,t.m15=(c*x-f*b+_*v)*P,t)},e.determinant=function(t){var e=t.m00,i=t.m01,n=t.m02,r=t.m03,s=t.m04,a=t.m05,o=t.m06,h=t.m07,u=t.m08,l=t.m09,c=t.m10,f=t.m11,_=t.m12,d=t.m13,p=t.m14,m=t.m15;return(e*a-i*s)*(c*m-f*p)-(e*o-n*s)*(l*m-f*d)+(e*h-r*s)*(l*p-c*d)+(i*o-n*a)*(u*m-f*_)-(i*h-r*a)*(u*p-c*_)+(n*h-r*o)*(u*d-l*_)},e.multiply=function(t,e,i){var n=e.m00,r=e.m01,s=e.m02,a=e.m03,o=e.m04,h=e.m05,u=e.m06,l=e.m07,c=e.m08,f=e.m09,_=e.m10,d=e.m11,p=e.m12,m=e.m13,g=e.m14,y=e.m15,v=i.m00,b=i.m01,S=i.m02,x=i.m03;return t.m00=v*n+b*o+S*c+x*p,t.m01=v*r+b*h+S*f+x*m,t.m02=v*s+b*u+S*_+x*g,t.m03=v*a+b*l+S*d+x*y,v=i.m04,b=i.m05,S=i.m06,x=i.m07,t.m04=v*n+b*o+S*c+x*p,t.m05=v*r+b*h+S*f+x*m,t.m06=v*s+b*u+S*_+x*g,t.m07=v*a+b*l+S*d+x*y,v=i.m08,b=i.m09,S=i.m10,x=i.m11,t.m08=v*n+b*o+S*c+x*p,t.m09=v*r+b*h+S*f+x*m,t.m10=v*s+b*u+S*_+x*g,t.m11=v*a+b*l+S*d+x*y,v=i.m12,b=i.m13,S=i.m14,x=i.m15,t.m12=v*n+b*o+S*c+x*p,t.m13=v*r+b*h+S*f+x*m,t.m14=v*s+b*u+S*_+x*g,t.m15=v*a+b*l+S*d+x*y,t},e.transform=function(t,e,i){var n=i.x,r=i.y,s=i.z;if(e===t)t.m12=e.m00*n+e.m04*r+e.m08*s+e.m12,t.m13=e.m01*n+e.m05*r+e.m09*s+e.m13,t.m14=e.m02*n+e.m06*r+e.m10*s+e.m14,t.m15=e.m03*n+e.m07*r+e.m11*s+e.m15;else{var a=e.m00,o=e.m01,h=e.m02,u=e.m03,l=e.m04,c=e.m05,f=e.m06,_=e.m07,d=e.m08,p=e.m09,m=e.m10,g=e.m11;t.m00=a,t.m01=o,t.m02=h,t.m03=u,t.m04=l,t.m05=c,t.m06=f,t.m07=_,t.m08=d,t.m09=p,t.m10=m,t.m11=g,t.m12=a*n+l*r+d*s+e.m12,t.m13=o*n+c*r+p*s+e.m13,t.m14=h*n+f*r+m*s+e.m14,t.m15=u*n+_*r+g*s+e.m15}return t},e.translate=function(t,e,i){return e===t?(t.m12+=i.x,t.m13+=i.y,t.m14+=i.z):(t.m00=e.m00,t.m01=e.m01,t.m02=e.m02,t.m03=e.m03,t.m04=e.m04,t.m05=e.m05,t.m06=e.m06,t.m07=e.m07,t.m08=e.m08,t.m09=e.m09,t.m10=e.m10,t.m11=e.m11,t.m12=e.m12+i.x,t.m13=e.m13+i.y,t.m14=e.m14+i.z,t.m15=e.m15),t},e.scale=function(t,e,i){var n=i.x,r=i.y,s=i.z;return t.m00=e.m00*n,t.m01=e.m01*n,t.m02=e.m02*n,t.m03=e.m03*n,t.m04=e.m04*r,t.m05=e.m05*r,t.m06=e.m06*r,t.m07=e.m07*r,t.m08=e.m08*s,t.m09=e.m09*s,t.m10=e.m10*s,t.m11=e.m11*s,t.m12=e.m12,t.m13=e.m13,t.m14=e.m14,t.m15=e.m15,t},e.rotate=function(t,e,i,n){var r=n.x,s=n.y,a=n.z,o=jr(r*r+s*s+a*a);if(Hr(o)0?(n=2*jr(i+1),t.w=.25*n,t.x=(e.m06-e.m09)/n,t.y=(e.m08-e.m02)/n,t.z=(e.m01-e.m04)/n):e.m00>e.m05&&e.m00>e.m10?(n=2*jr(1+e.m00-e.m05-e.m10),t.w=(e.m06-e.m09)/n,t.x=.25*n,t.y=(e.m01+e.m04)/n,t.z=(e.m08+e.m02)/n):e.m05>e.m10?(n=2*jr(1+e.m05-e.m00-e.m10),t.w=(e.m08-e.m02)/n,t.x=(e.m01+e.m04)/n,t.y=.25*n,t.z=(e.m06+e.m09)/n):(n=2*jr(1+e.m10-e.m00-e.m05),t.w=(e.m01-e.m04)/n,t.x=(e.m08+e.m02)/n,t.y=(e.m06+e.m09)/n,t.z=.25*n),t},e.toRTS=function(t,i,n,r){e.toSRT(t,i,n,r)},e.toSRT=function(t,e,i,n){i&&er.set(i,t.m12,t.m13,t.m14);var r=er.set(Jr,t.m00,t.m01,t.m02).length(),s=er.set(Jr,t.m04,t.m05,t.m06).length(),a=er.set(Jr,t.m08,t.m09,t.m10).length();if(n&&(n.x=r,n.y=s,n.z=a),0!==r&&0!==s&&0!==a){Qr.m00=t.m00/r,Qr.m01=t.m01/r,Qr.m02=t.m02/r,Qr.m03=t.m04/s,Qr.m04=t.m05/s,Qr.m05=t.m06/s,Qr.m06=t.m08/a,Qr.m07=t.m09/a,Qr.m08=t.m10/a;var o=gr.determinant(Qr);n&&o<0&&(n.x*=-1),e&&(o<0&&(Qr.m00*=-1,Qr.m01*=-1,Qr.m02*=-1),Or.fromMat3(e,Qr))}else e&&Or.identity(e)},e.toEuler=function(t,e){return gr.set(Qr,t.m00,t.m01,t.m02,t.m04,t.m05,t.m06,t.m08,t.m09,t.m10),gr.toEuler(Qr,e)},e.fromRTS=function(t,i,n,r){return e.fromSRT(t,i,n,r)},e.fromSRT=function(t,e,i,n){var r=e.x,s=e.y,a=e.z,o=e.w,h=r+r,u=s+s,l=a+a,c=r*h,f=r*u,_=r*l,d=s*u,p=s*l,m=a*l,g=o*h,y=o*u,v=o*l,b=n.x,S=n.y,x=n.z;return t.m00=(1-(d+m))*b,t.m01=(f+v)*b,t.m02=(_-y)*b,t.m03=0,t.m04=(f-v)*S,t.m05=(1-(c+m))*S,t.m06=(p+g)*S,t.m07=0,t.m08=(_+y)*x,t.m09=(p-g)*x,t.m10=(1-(c+d))*x,t.m11=0,t.m12=i.x,t.m13=i.y,t.m14=i.z,t.m15=1,t},e.fromRTSOrigin=function(t,i,n,r,s){return e.fromSRTOrigin(t,i,n,r,s)},e.fromSRTOrigin=function(t,e,i,n,r){var s=e.x,a=e.y,o=e.z,h=e.w,u=s+s,l=a+a,c=o+o,f=s*u,_=s*l,d=s*c,p=a*l,m=a*c,g=o*c,y=h*u,v=h*l,b=h*c,S=n.x,x=n.y,w=n.z,T=r.x,A=r.y,C=r.z;return t.m00=(1-(p+g))*S,t.m01=(_+b)*S,t.m02=(d-v)*S,t.m03=0,t.m04=(_-b)*x,t.m05=(1-(f+g))*x,t.m06=(m+y)*x,t.m07=0,t.m08=(d+v)*w,t.m09=(m-y)*w,t.m10=(1-(f+p))*w,t.m11=0,t.m12=i.x+T-(t.m00*T+t.m04*A+t.m08*C),t.m13=i.y+A-(t.m01*T+t.m05*A+t.m09*C),t.m14=i.z+C-(t.m02*T+t.m06*A+t.m10*C),t.m15=1,t},e.fromQuat=function(t,e){var i=e.x,n=e.y,r=e.z,s=e.w,a=i+i,o=n+n,h=r+r,u=i*a,l=n*a,c=n*o,f=r*a,_=r*o,d=r*h,p=s*a,m=s*o,g=s*h;return t.m00=1-c-d,t.m01=l+g,t.m02=f-m,t.m03=0,t.m04=l-g,t.m05=1-u-d,t.m06=_+p,t.m07=0,t.m08=f+m,t.m09=_-p,t.m10=1-u-c,t.m11=0,t.m12=0,t.m13=0,t.m14=0,t.m15=1,t},e.frustum=function(t,e,i,n,r,s,a){var o=1/(i-e),h=1/(r-n),u=1/(s-a);return t.m00=2*s*o,t.m01=0,t.m02=0,t.m03=0,t.m04=0,t.m05=2*s*h,t.m06=0,t.m07=0,t.m08=(i+e)*o,t.m09=(r+n)*h,t.m10=(a+s)*u,t.m11=-1,t.m12=0,t.m13=0,t.m14=a*s*2*u,t.m15=0,t},e.perspective=function(t,e,i,n,r,s,a,o,h){void 0===s&&(s=!0),void 0===a&&(a=-1),void 0===o&&(o=1),void 0===h&&(h=0);var u=1/Yr(e/2),l=1/(n-r),c=s?u/i:u,f=(s?u:u*i)*o,_=Gr[h];return t.m00=c*_[0],t.m01=c*_[1],t.m02=0,t.m03=0,t.m04=f*_[2],t.m05=f*_[3],t.m06=0,t.m07=0,t.m08=0,t.m09=0,t.m10=(r-a*n)*l,t.m11=-1,t.m12=0,t.m13=0,t.m14=r*n*l*(1-a),t.m15=0,t},e.ortho=function(t,e,i,n,r,s,a,o,h,u){void 0===o&&(o=-1),void 0===h&&(h=1),void 0===u&&(u=0);var l=1/(e-i),c=1/(n-r)*h,f=1/(s-a),_=-2*l,d=-2*c,p=(e+i)*l,m=(r+n)*c,g=Gr[u];return t.m00=_*g[0],t.m01=_*g[1],t.m02=0,t.m03=0,t.m04=d*g[2],t.m05=d*g[3],t.m06=0,t.m07=0,t.m08=0,t.m09=0,t.m10=f*(1-o),t.m11=0,t.m12=p*g[0]+m*g[2],t.m13=p*g[1]+m*g[3],t.m14=(s-o*a)*f,t.m15=1,t},e.lookAt=function(t,e,i,n){var r=e.x,s=e.y,a=e.z,o=n.x,h=n.y,u=n.z,l=r-i.x,c=s-i.y,f=a-i.z,_=1/jr(l*l+c*c+f*f),d=h*(f*=_)-u*(c*=_),p=u*(l*=_)-o*f,m=o*c-h*l,g=c*(m*=_=1/jr(d*d+p*p+m*m))-f*(p*=_),y=f*(d*=_)-l*m,v=l*p-c*d;return t.m00=d,t.m01=g,t.m02=l,t.m03=0,t.m04=p,t.m05=y,t.m06=c,t.m07=0,t.m08=m,t.m09=v,t.m10=f,t.m11=0,t.m12=-(d*r+p*s+m*a),t.m13=-(g*r+y*s+v*a),t.m14=-(l*r+c*s+f*a),t.m15=1,t},e.inverseTranspose=function(t,e){var i=e.m00,n=e.m01,r=e.m02,s=e.m03,a=e.m04,o=e.m05,h=e.m06,u=e.m07,l=e.m08,c=e.m09,f=e.m10,_=e.m11,d=e.m12,p=e.m13,m=e.m14,g=e.m15,y=i*o-n*a,v=i*h-r*a,b=i*u-s*a,S=n*h-r*o,x=n*u-s*o,w=r*u-s*h,T=l*p-c*d,A=l*m-f*d,C=l*g-_*d,D=c*m-f*p,B=c*g-_*p,I=f*g-_*m,M=y*I-v*B+b*D+S*C-x*A+w*T;return M?(M=1/M,t.m00=(o*I-h*B+u*D)*M,t.m01=(h*C-a*I-u*A)*M,t.m02=(a*B-o*C+u*T)*M,t.m03=0,t.m04=(r*B-n*I-s*D)*M,t.m05=(i*I-r*C+s*A)*M,t.m06=(n*C-i*B-s*T)*M,t.m07=0,t.m08=(p*w-m*x+g*S)*M,t.m09=(m*b-d*w-g*v)*M,t.m10=(d*x-p*b+g*y)*M,t.m11=0,t.m12=0,t.m13=0,t.m14=0,t.m15=1,t):null},e.toArray=function(t,e,i){return void 0===i&&(i=0),t[i+0]=e.m00,t[i+1]=e.m01,t[i+2]=e.m02,t[i+3]=e.m03,t[i+4]=e.m04,t[i+5]=e.m05,t[i+6]=e.m06,t[i+7]=e.m07,t[i+8]=e.m08,t[i+9]=e.m09,t[i+10]=e.m10,t[i+11]=e.m11,t[i+12]=e.m12,t[i+13]=e.m13,t[i+14]=e.m14,t[i+15]=e.m15,t},e.fromArray=function(t,e,i){return void 0===i&&(i=0),t.m00=e[i+0],t.m01=e[i+1],t.m02=e[i+2],t.m03=e[i+3],t.m04=e[i+4],t.m05=e[i+5],t.m06=e[i+6],t.m07=e[i+7],t.m08=e[i+8],t.m09=e[i+9],t.m10=e[i+10],t.m11=e[i+11],t.m12=e[i+12],t.m13=e[i+13],t.m14=e[i+14],t.m15=e[i+15],t},e.add=function(t,e,i){return t.m00=e.m00+i.m00,t.m01=e.m01+i.m01,t.m02=e.m02+i.m02,t.m03=e.m03+i.m03,t.m04=e.m04+i.m04,t.m05=e.m05+i.m05,t.m06=e.m06+i.m06,t.m07=e.m07+i.m07,t.m08=e.m08+i.m08,t.m09=e.m09+i.m09,t.m10=e.m10+i.m10,t.m11=e.m11+i.m11,t.m12=e.m12+i.m12,t.m13=e.m13+i.m13,t.m14=e.m14+i.m14,t.m15=e.m15+i.m15,t},e.subtract=function(t,e,i){return t.m00=e.m00-i.m00,t.m01=e.m01-i.m01,t.m02=e.m02-i.m02,t.m03=e.m03-i.m03,t.m04=e.m04-i.m04,t.m05=e.m05-i.m05,t.m06=e.m06-i.m06,t.m07=e.m07-i.m07,t.m08=e.m08-i.m08,t.m09=e.m09-i.m09,t.m10=e.m10-i.m10,t.m11=e.m11-i.m11,t.m12=e.m12-i.m12,t.m13=e.m13-i.m13,t.m14=e.m14-i.m14,t.m15=e.m15-i.m15,t},e.multiplyScalar=function(t,e,i){return t.m00=e.m00*i,t.m01=e.m01*i,t.m02=e.m02*i,t.m03=e.m03*i,t.m04=e.m04*i,t.m05=e.m05*i,t.m06=e.m06*i,t.m07=e.m07*i,t.m08=e.m08*i,t.m09=e.m09*i,t.m10=e.m10*i,t.m11=e.m11*i,t.m12=e.m12*i,t.m13=e.m13*i,t.m14=e.m14*i,t.m15=e.m15*i,t},e.multiplyScalarAndAdd=function(t,e,i,n){return t.m00=e.m00+i.m00*n,t.m01=e.m01+i.m01*n,t.m02=e.m02+i.m02*n,t.m03=e.m03+i.m03*n,t.m04=e.m04+i.m04*n,t.m05=e.m05+i.m05*n,t.m06=e.m06+i.m06*n,t.m07=e.m07+i.m07*n,t.m08=e.m08+i.m08*n,t.m09=e.m09+i.m09*n,t.m10=e.m10+i.m10*n,t.m11=e.m11+i.m11*n,t.m12=e.m12+i.m12*n,t.m13=e.m13+i.m13*n,t.m14=e.m14+i.m14*n,t.m15=e.m15+i.m15*n,t},e.strictEquals=function(t,e){return t.m00===e.m00&&t.m01===e.m01&&t.m02===e.m02&&t.m03===e.m03&&t.m04===e.m04&&t.m05===e.m05&&t.m06===e.m06&&t.m07===e.m07&&t.m08===e.m08&&t.m09===e.m09&&t.m10===e.m10&&t.m11===e.m11&&t.m12===e.m12&&t.m13===e.m13&&t.m14===e.m14&&t.m15===e.m15},e.equals=function(t,e,i){return void 0===i&&(i=Ki),Hr(t.m00-e.m00)<=i*Wr(1,Hr(t.m00),Hr(e.m00))&&Hr(t.m01-e.m01)<=i*Wr(1,Hr(t.m01),Hr(e.m01))&&Hr(t.m02-e.m02)<=i*Wr(1,Hr(t.m02),Hr(e.m02))&&Hr(t.m03-e.m03)<=i*Wr(1,Hr(t.m03),Hr(e.m03))&&Hr(t.m04-e.m04)<=i*Wr(1,Hr(t.m04),Hr(e.m04))&&Hr(t.m05-e.m05)<=i*Wr(1,Hr(t.m05),Hr(e.m05))&&Hr(t.m06-e.m06)<=i*Wr(1,Hr(t.m06),Hr(e.m06))&&Hr(t.m07-e.m07)<=i*Wr(1,Hr(t.m07),Hr(e.m07))&&Hr(t.m08-e.m08)<=i*Wr(1,Hr(t.m08),Hr(e.m08))&&Hr(t.m09-e.m09)<=i*Wr(1,Hr(t.m09),Hr(e.m09))&&Hr(t.m10-e.m10)<=i*Wr(1,Hr(t.m10),Hr(e.m10))&&Hr(t.m11-e.m11)<=i*Wr(1,Hr(t.m11),Hr(e.m11))&&Hr(t.m12-e.m12)<=i*Wr(1,Hr(t.m12),Hr(e.m12))&&Hr(t.m13-e.m13)<=i*Wr(1,Hr(t.m13),Hr(e.m13))&&Hr(t.m14-e.m14)<=i*Wr(1,Hr(t.m14),Hr(e.m14))&&Hr(t.m15-e.m15)<=i*Wr(1,Hr(t.m15),Hr(e.m15))};var i=e.prototype;return i.clone=function(){return new e(this.m00,this.m01,this.m02,this.m03,this.m04,this.m05,this.m06,this.m07,this.m08,this.m09,this.m10,this.m11,this.m12,this.m13,this.m14,this.m15)},i.set=function(t,e,i,n,r,s,a,o,h,u,l,c,f,_,d,p){void 0===t&&(t=1),void 0===e&&(e=0),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===h&&(h=0),void 0===u&&(u=0),void 0===l&&(l=1),void 0===c&&(c=0),void 0===f&&(f=0),void 0===_&&(_=0),void 0===d&&(d=0),void 0===p&&(p=1);var m=this;return"object"==typeof t?(m.m01=t.m01,m.m02=t.m02,m.m03=t.m03,m.m04=t.m04,m.m05=t.m05,m.m06=t.m06,m.m07=t.m07,m.m08=t.m08,m.m09=t.m09,m.m10=t.m10,m.m11=t.m11,m.m12=t.m12,m.m13=t.m13,m.m14=t.m14,m.m15=t.m15,m.m00=t.m00):(m.m01=e,m.m02=i,m.m03=n,m.m04=r,m.m05=s,m.m06=a,m.m07=o,m.m08=h,m.m09=u,m.m10=l,m.m11=c,m.m12=f,m.m13=_,m.m14=d,m.m15=p,m.m00=t),m},i.equals=function(t,e){void 0===e&&(e=Ki);var i=1/0,n=this,r=n.m00,s=n.m01,a=n.m02,o=n.m03,h=n.m04,u=n.m05,l=n.m06,c=n.m07,f=n.m08,_=n.m09,d=n.m10,p=n.m11,m=n.m12,g=n.m13,y=n.m14,v=n.m15;return!(Hr(r)===i||Hr(s)===i||Hr(a)===i||Hr(o)===i||Hr(h)===i||Hr(u)===i||Hr(l)===i||Hr(c)===i||Hr(f)===i||Hr(_)===i||Hr(d)===i||Hr(p)===i||Hr(m)===i||Hr(g)===i||Hr(y)===i||Hr(v)===i)&&Hr(r-t.m00)<=e*Wr(1,Hr(r),Hr(t.m00))&&Hr(s-t.m01)<=e*Wr(1,Hr(s),Hr(t.m01))&&Hr(a-t.m02)<=e*Wr(1,Hr(a),Hr(t.m02))&&Hr(o-t.m03)<=e*Wr(1,Hr(o),Hr(t.m03))&&Hr(h-t.m04)<=e*Wr(1,Hr(h),Hr(t.m04))&&Hr(u-t.m05)<=e*Wr(1,Hr(u),Hr(t.m05))&&Hr(l-t.m06)<=e*Wr(1,Hr(l),Hr(t.m06))&&Hr(c-t.m07)<=e*Wr(1,Hr(c),Hr(t.m07))&&Hr(f-t.m08)<=e*Wr(1,Hr(f),Hr(t.m08))&&Hr(_-t.m09)<=e*Wr(1,Hr(_),Hr(t.m09))&&Hr(d-t.m10)<=e*Wr(1,Hr(d),Hr(t.m10))&&Hr(p-t.m11)<=e*Wr(1,Hr(p),Hr(t.m11))&&Hr(m-t.m12)<=e*Wr(1,Hr(m),Hr(t.m12))&&Hr(g-t.m13)<=e*Wr(1,Hr(g),Hr(t.m13))&&Hr(y-t.m14)<=e*Wr(1,Hr(y),Hr(t.m14))&&Hr(v-t.m15)<=e*Wr(1,Hr(v),Hr(t.m15))},i.strictEquals=function(t){var e=this;return e.m00===t.m00&&e.m01===t.m01&&e.m02===t.m02&&e.m03===t.m03&&e.m04===t.m04&&e.m05===t.m05&&e.m06===t.m06&&e.m07===t.m07&&e.m08===t.m08&&e.m09===t.m09&&e.m10===t.m10&&e.m11===t.m11&&e.m12===t.m12&&e.m13===t.m13&&e.m14===t.m14&&e.m15===t.m15},i.toString=function(){var t=this;return"[\n"+t.m00+", "+t.m01+", "+t.m02+", "+t.m03+",\n"+t.m04+", "+t.m05+", "+t.m06+", "+t.m07+",\n"+t.m08+", "+t.m09+", "+t.m10+", "+t.m11+",\n"+t.m12+", "+t.m13+", "+t.m14+", "+t.m15+"\n]"},i.identity=function(){return e.identity(this)},i.zero=function(){return e.zero(this)},i.transpose=function(){var t=this,e=t.m01,i=t.m02,n=t.m03,r=t.m06,s=t.m07,a=t.m11;return t.m01=t.m04,t.m02=t.m08,t.m03=t.m12,t.m04=e,t.m06=t.m09,t.m07=t.m13,t.m08=i,t.m09=r,t.m11=t.m14,t.m12=n,t.m13=s,t.m14=a,t},i.invert=function(){var t=this,e=t.m00,i=t.m01,n=t.m02,r=t.m03,s=t.m04,a=t.m05,o=t.m06,h=t.m07,u=t.m08,l=t.m09,c=t.m10,f=t.m11,_=t.m12,d=t.m13,p=t.m14,m=t.m15,g=e*a-i*s,y=e*o-n*s,v=e*h-r*s,b=i*o-n*a,S=i*h-r*a,x=n*h-r*o,w=u*d-l*_,T=u*p-c*_,A=u*m-f*_,C=l*p-c*d,D=l*m-f*d,B=c*m-f*p,I=g*B-y*D+v*C+b*A-S*T+x*w;return 0===I?(t.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),t):(I=1/I,t.m00=(a*B-o*D+h*C)*I,t.m01=(n*D-i*B-r*C)*I,t.m02=(d*x-p*S+m*b)*I,t.m03=(c*S-l*x-f*b)*I,t.m04=(o*A-s*B-h*T)*I,t.m05=(e*B-n*A+r*T)*I,t.m06=(p*v-_*x-m*y)*I,t.m07=(u*x-c*v+f*y)*I,t.m08=(s*D-a*A+h*w)*I,t.m09=(i*A-e*D-r*w)*I,t.m10=(_*S-d*v+m*g)*I,t.m11=(l*v-u*S-f*g)*I,t.m12=(a*T-s*C-o*w)*I,t.m13=(e*C-i*T+n*w)*I,t.m14=(d*y-_*b-p*g)*I,t.m15=(u*b-l*y+c*g)*I,t)},i.determinant=function(){var t=this,e=t.m00,i=t.m01,n=t.m02,r=t.m03,s=t.m04,a=t.m05,o=t.m06,h=t.m07,u=t.m08,l=t.m09,c=t.m10,f=t.m11,_=t.m12,d=t.m13,p=t.m14,m=t.m15;return(e*a-i*s)*(c*m-f*p)-(e*o-n*s)*(l*m-f*d)+(e*h-r*s)*(l*p-c*d)+(i*o-n*a)*(u*m-f*_)-(i*h-r*a)*(u*p-c*_)+(n*h-r*o)*(u*d-l*_)},i.add=function(t){var e=this;return e.m00+=t.m00,e.m01+=t.m01,e.m02+=t.m02,e.m03+=t.m03,e.m04+=t.m04,e.m05+=t.m05,e.m06+=t.m06,e.m07+=t.m07,e.m08+=t.m08,e.m09+=t.m09,e.m10+=t.m10,e.m11+=t.m11,e.m12+=t.m12,e.m13+=t.m13,e.m14+=t.m14,e.m15+=t.m15,e},i.subtract=function(t){var e=this;return e.m00-=t.m00,e.m01-=t.m01,e.m02-=t.m02,e.m03-=t.m03,e.m04-=t.m04,e.m05-=t.m05,e.m06-=t.m06,e.m07-=t.m07,e.m08-=t.m08,e.m09-=t.m09,e.m10-=t.m10,e.m11-=t.m11,e.m12-=t.m12,e.m13-=t.m13,e.m14-=t.m14,e.m15-=t.m15,e},i.multiply=function(t){return e.multiply(this,this,t)},i.multiplyScalar=function(t){var e=this;return e.m00*=t,e.m01*=t,e.m02*=t,e.m03*=t,e.m04*=t,e.m05*=t,e.m06*=t,e.m07*=t,e.m08*=t,e.m09*=t,e.m10*=t,e.m11*=t,e.m12*=t,e.m13*=t,e.m14*=t,e.m15*=t,e},i.translate=function(t){return this.m12+=t.x,this.m13+=t.y,this.m14+=t.z,this},i.transform=function(t){var e=t.x,i=t.y,n=t.z,r=this,s=r.m00,a=r.m01,o=r.m02,h=r.m03,u=r.m04,l=r.m05,c=r.m06,f=r.m07,_=r.m08,d=r.m09,p=r.m10,m=r.m11;return r.m12=s*e+u*i+_*n+r.m12,r.m13=a*e+l*i+d*n+r.m13,r.m14=o*e+c*i+p*n+r.m14,r.m15=h*e+f*i+m*n+r.m15,r},i.scale=function(t){var e=t.x,i=t.y,n=t.z,r=this;return r.m00*=e,r.m01*=e,r.m02*=e,r.m03*=e,r.m04*=i,r.m05*=i,r.m06*=i,r.m07*=i,r.m08*=n,r.m09*=n,r.m10*=n,r.m11*=n,r},i.rotate=function(t,e){var i=e.x,n=e.y,r=e.z,s=jr(i*i+n*n+r*r);if(Hr(s)0?(r=1/as(r),t.x=i*r,t.y=n*r):(t.x=0,t.y=0),t},e.dot=function(t,e){return t.x*e.x+t.y*e.y},e.cross=function(t,e,i){return t instanceof er?(t.x=t.y=0,t.z=e.x*i.y-e.y*i.x,t):t.x*e.y-t.y*e.x},e.lerp=function(t,e,i,n){var r=e.x,s=e.y;return t.x=r+n*(i.x-r),t.y=s+n*(i.y-s),t},e.random=function(t,e){e=e||1;var i=2*rn()*is;return t.x=ss(i)*e,t.y=rs(i)*e,t},e.transformMat3=function(t,e,i){var n=e.x,r=e.y;return t.x=i.m00*n+i.m03*r+i.m06,t.y=i.m01*n+i.m04*r+i.m07,t},e.transformMat4=function(t,e,i){var n=e.x,r=e.y;return t.x=i.m00*n+i.m04*r+i.m12,t.y=i.m01*n+i.m05*r+i.m13,t},e.str=function(t){return"Vec2("+t.x+", "+t.y+")"},e.toArray=function(t,e,i){return void 0===i&&(i=0),t[i+0]=e.x,t[i+1]=e.y,t},e.fromArray=function(t,e,i){return void 0===i&&(i=0),t.x=e[i+0],t.y=e[i+1],t},e.strictEquals=function(t,e){return t.x===e.x&&t.y===e.y},e.equals=function(t,e,i){return void 0===i&&(i=Ki),$r(t.x-e.x)<=i*ts(1,$r(t.x),$r(e.x))&&$r(t.y-e.y)<=i*ts(1,$r(t.y),$r(e.y))},e.angle=function(t,e){var i=t.x*t.x+t.y*t.y,n=e.x*e.x+e.y*e.y;if(0===i||0===n)return 0;var r=(t.x*e.x+t.y*e.y)/as(i*n);return r=Zi(r,-1,1),ns(r)};var i=e.prototype;return i.clone=function(){return new e(this.x,this.y)},i.set=function(t,e){return"object"==typeof t?(this.x=t.x,this.y=t.y):(this.x=t||0,this.y=e||0),this},i.equals=function(t,i){return void 0===i&&(i=Ki),e.equals(this,t,i)},i.equals2f=function(t,e,i){return void 0===i&&(i=Ki),$r(this.x-t)<=i*ts(1,$r(this.x),$r(t))&&$r(this.y-e)<=i*ts(1,$r(this.y),$r(e))},i.strictEquals=function(t){return t&&this.x===t.x&&this.y===t.y},i.strictEquals2f=function(t,e){return this.x===t&&this.y===e},i.toString=function(){return"("+this.x+", "+this.y+")"},i.lerp=function(t,e){var i=this.x,n=this.y;return this.x=i+e*(t.x-i),this.y=n+e*(t.y-n),this},i.clampf=function(t,e){return this.x=Zi(this.x,t.x,e.x),this.y=Zi(this.y,t.y,e.y),this},i.add=function(t){return this.x+=t.x,this.y+=t.y,this},i.add2f=function(t,e){return this.x+=t,this.y+=e,this},i.subtract=function(t){return this.x-=t.x,this.y-=t.y,this},i.subtract2f=function(t,e){return this.x-=t,this.y-=e,this},i.multiplyScalar=function(t){return"object"==typeof t&&st(16359),this.x*=t,this.y*=t,this},i.multiply=function(t){return"object"!=typeof t&&st(16360),this.x*=t.x,this.y*=t.y,this},i.multiply2f=function(t,e){return this.x*=t,this.y*=e,this},i.divide=function(t){return this.x/=t.x,this.y/=t.y,this},i.divide2f=function(t,e){return this.x/=t,this.y/=e,this},i.negative=function(){return this.x=-this.x,this.y=-this.y,this},i.dot=function(t){return this.x*t.x+this.y*t.y},i.cross=function(t){return this.x*t.y-this.y*t.x},i.length=function(){return as(this.x*this.x+this.y*this.y)},i.lengthSqr=function(){return this.x*this.x+this.y*this.y},i.normalize=function(){var t=this,e=t.x,i=t.y,n=e*e+i*i;return n>0&&(n=1/as(n),t.x*=n,t.y*=n),t},i.angle=function(t){var e=this.lengthSqr(),i=t.lengthSqr();if(0===e||0===i)return 0;var n=this.dot(t)/as(e*i);return n=Zi(n,-1,1),ns(n)},i.signAngle=function(t){var e=this.cross(t),i=this.dot(t);return os(e,i)},i.rotate=function(t){var e=this.x,i=this.y,n=rs(t),r=ss(t);return this.x=r*e-n*i,this.y=n*e+r*i,this},i.project=function(t){var e=this.dot(t)/t.dot(t);return this.x=t.x*e,this.y=t.y*e,this},i.transformMat4=function(t){var e=this.x,i=this.y;return this.x=t.m00*e+t.m04*i+t.m12,this.y=t.m01*e+t.m05*i+t.m13,this},i.toVec3=function(){return new er(this.x,this.y,0)},e}(Re));function ds(t,e){return new _s(t,e)}_s.ZERO=cs(0,0),_s.ONE=cs(1,1),_s.NEG_ONE=cs(-1,-1),_s.UNIT_X=cs(1,0),_s.UNIT_Y=cs(0,1),Li.fastDefine("cc.Vec2",_s,{x:0,y:0}),A.Vec2=_s,A.v2=ds,dt(_s,"Vec2",[{name:"sub",newName:"subtract",target:_s,targetName:"Vec2"},{name:"mul",newName:"multiply",target:_s,targetName:"Vec2"},{name:"div",newName:"divide",target:_s,targetName:"Vec2"},{name:"dist",newName:"distance",target:_s,targetName:"Vec2"},{name:"sqrDist",newName:"squaredDistance",target:_s,targetName:"Vec2"},{name:"mag",newName:"len",target:_s,targetName:"Vec2"},{name:"sqrMag",newName:"lengthSqr",target:_s,targetName:"Vec2"},{name:"scale",newName:"multiplyScalar",target:_s,targetName:"Vec2"},{name:"exactEquals",newName:"strictEquals",target:_s,targetName:"Vec2"}]),dt(_s.prototype,"Vec2",[{name:"mag",newName:"length",target:_s.prototype,targetName:"Vec2"},{name:"magSqr",newName:"lengthSqr",target:_s.prototype,targetName:"Vec2"},{name:"scale",newName:"multiplyScalar",target:_s.prototype,targetName:"Vec2"},{name:"exactEquals",newName:"strictEquals",target:_s.prototype,targetName:"Vec2"}]),dt(er,"Vec3",[{name:"sub",newName:"subtract",target:er,targetName:"Vec3"},{name:"mul",newName:"multiply",target:er,targetName:"Vec3"},{name:"div",newName:"divide",target:er,targetName:"Vec3"},{name:"dist",newName:"distance",target:er,targetName:"Vec3"},{name:"sqrDist",newName:"squaredDistance",target:er,targetName:"Vec3"},{name:"mag",newName:"len",target:er,targetName:"Vec3"},{name:"sqrMag",newName:"lengthSqr",target:er,targetName:"Vec3"},{name:"scale",newName:"multiplyScalar",target:er,targetName:"Vec3"},{name:"exactEquals",newName:"strictEquals",target:er,targetName:"Vec3"}]),dt(er.prototype,"Vec3",[{name:"mag",newName:"length",target:er.prototype,targetName:"Vec3"},{name:"magSqr",newName:"lengthSqr",target:er.prototype,targetName:"Vec3"},{name:"scale",newName:"multiplyScalar",target:er.prototype,targetName:"Vec3"},{name:"exactEquals",newName:"strictEquals",target:er.prototype,targetName:"Vec3"}]),dt(Ln,"Vec4",[{name:"sub",newName:"subtract",target:Ln,targetName:"Vec4"},{name:"mul",newName:"multiply",target:Ln,targetName:"Vec4"},{name:"div",newName:"divide",target:Ln,targetName:"Vec4"},{name:"dist",newName:"distance",target:Ln,targetName:"Vec4"},{name:"sqrDist",newName:"squaredDistance",target:Ln,targetName:"Vec4"},{name:"mag",newName:"len",target:Ln,targetName:"Vec4"},{name:"sqrMag",newName:"lengthSqr",target:Ln,targetName:"Vec4"},{name:"scale",newName:"multiplyScalar",target:Ln,targetName:"Vec4"},{name:"exactEquals",newName:"strictEquals",target:Ln,targetName:"Vec4"}]),dt(Ln.prototype,"Vec4",[{name:"mag",newName:"length",target:Ln.prototype,targetName:"Vec4"},{name:"magSqr",newName:"lengthSqr",target:Ln.prototype,targetName:"Vec4"},{name:"scale",newName:"multiplyScalar",target:Ln.prototype,targetName:"Vec4"},{name:"exactEquals",newName:"strictEquals",target:Ln.prototype,targetName:"Vec4"}]),dt(Or,"Quat",[{name:"mag",newName:"len",target:Or,targetName:"Quat"},{name:"mul",newName:"multiply",target:Or,targetName:"Quat"},{name:"sqrMag",newName:"lengthSqr",target:Or,targetName:"Quat"},{name:"scale",newName:"multiplyScalar",target:Or,targetName:"Quat"},{name:"exactEquals",newName:"strictEquals",target:Or,targetName:"Quat"}]),dt(Or.prototype,"Quat",[{name:"scale",newName:"multiplyScalar",target:Or.prototype,targetName:"Quat"},{name:"exactEquals",newName:"strictEquals",target:Or.prototype,targetName:"Quat"}]),dt(lr,"Color",[{name:"sub",newName:"subtract",target:lr,targetName:"Color"},{name:"mul",newName:"multiply",target:lr,targetName:"Color"},{name:"div",newName:"divide",target:lr,targetName:"Color"},{name:"exactEquals",newName:"strictEquals",target:lr,targetName:"Color"},{name:"fromHex",newName:"fromHEX",customFunction:function(){for(var t=arguments.length,e=new Array(t),i=0;i=t.x&&e.y<=t.y&&e.y+e.height>=t.y},i.containsRect=function(t){var e=this;return e.x<=t.x&&e.x+e.width>=t.x+t.width&&e.y<=t.y&&e.y+e.height>=t.y+t.height},i.transformMat4=function(t){var e=this,i=e.x,n=e.y,r=i+e.width,s=n+e.height,a=t.m00*i+t.m04*n+t.m12,o=t.m01*i+t.m05*n+t.m13,h=t.m00*r+t.m04*n+t.m12,u=t.m01*r+t.m05*n+t.m13,l=t.m00*i+t.m04*s+t.m12,c=t.m01*i+t.m05*s+t.m13,f=t.m00*r+t.m04*s+t.m12,_=t.m01*r+t.m05*s+t.m13,d=ys(a,h,l,f),p=gs(a,h,l,f),m=ys(o,u,c,_),g=gs(o,u,c,_);return e.x=d,e.y=m,e.width=p-d,e.height=g-m,e},i.transformMat4ToPoints=function(t,e,i,n,r){var s=this,a=s.x,o=s.y,h=a+s.width,u=o+s.height;e.x=t.m00*a+t.m04*o+t.m12,e.y=t.m01*a+t.m05*o+t.m13,r.x=t.m00*h+t.m04*o+t.m12,r.y=t.m01*h+t.m05*o+t.m13,i.x=t.m00*a+t.m04*u+t.m12,i.y=t.m01*a+t.m05*u+t.m13,n.x=t.m00*h+t.m04*u+t.m12,n.y=t.m01*h+t.m05*u+t.m13},n(e,[{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(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(this.x,this.y)},set:function(t){this.x=t.x,this.y=t.y}},{key:"size",get:function(){return new ps(this.width,this.height)},set:function(t){this.width=t.width,this.height=t.height}},{key:"z",get:function(){return this.width},set:function(t){this.width=t}},{key:"w",get:function(){return this.height},set:function(t){this.height=t}}]),e}(Re));function bs(t,e,i,n){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),new vs(t,e,i,n)}Li.fastDefine("cc.Rect",vs,{x:0,y:0,width:0,height:0}),A.Rect=vs,A.rect=bs;var Ss=t("bw",Float64Array),xs=t("bx",function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e.createFloatArray=function(t){return new Ss(t)},n(e,[{key:"array",get:function(){return this._array}}]),e}(Re)),ws=Object.freeze({__proto__:null,Color:lr,EPSILON:Ki,HALF_PI:Xi,MATH_FLOAT_ARRAY:Ss,Mat3:gr,Mat4:Kr,MathBase:xs,Quat:Or,Rect:vs,Size:ps,TWO_PI:Yi,Vec2:_s,Vec3:er,Vec4:Ln,absMax:mn,absMaxComponent:pn,approx:Qi,bits:F,clamp:Zi,clamp01:$i,color:cr,enumerableProps:gn,equals:Ji,floatToHalf:xn,halfToFloat:wn,inverseLerp:dn,lerp:tn,mat4:Zr,nextPow2:cn,pingPong:_n,preTransforms:Gr,pseudoRandom:hn,pseudoRandomRange:un,pseudoRandomRangeInt:ln,quat:zr,random:rn,randomRange:an,randomRangeInt:on,rect:bs,repeat:fn,setRandGenerator:sn,size:ms,toDegree:nn,toRadian:en,v2:ds,v3:ir,v4:Nn});t("aK",ws);var Ts=new er,As=new er,Cs=new er,Ds=new er,Bs=new er,Is=new er,Ms=new Array(3),Ps=new Array(3);function Es(t,e){return er.dot(e.n,t)-e.d}function Os(t,e,i){return er.copy(t,e),er.subtract(Bs,i.center,i.halfExtents),er.add(Is,i.center,i.halfExtents),t.x=t.xIs.x?Is.x:t.x,t.y=t.y>Is.y?Is.y:t.y,t.z=t.z>Is.z?Is.z:t.z,t}function ks(t,e,i){er.set(Ts,i.orientation.m00,i.orientation.m01,i.orientation.m02),er.set(As,i.orientation.m03,i.orientation.m04,i.orientation.m05),er.set(Cs,i.orientation.m06,i.orientation.m07,i.orientation.m08),Ms[0]=Ts,Ms[1]=As,Ms[2]=Cs,Ps[0]=i.halfExtents.x,Ps[1]=i.halfExtents.y,Ps[2]=i.halfExtents.z,er.subtract(Ds,e,i.center),er.set(t,i.center.x,i.center.y,i.center.z);for(var n=0;n<3;n++){var r=er.dot(Ds,Ms[n]);r>Ps[n]&&(r=Ps[n]),r<-Ps[n]&&(r=-Ps[n]),t.x+=r*Ms[n].x,t.y+=r*Ms[n].y,t.z+=r*Ms[n].z}return t}var Rs=Object.freeze({__proto__:null,point_plane:Es,pt_point_aabb:Os,pt_point_line:function(t,e,i,n){er.subtract(Ts,i,n);var r=Ts.clone(),s=er.lengthSqr(r);if(0===s)er.copy(t,i);else{er.subtract(Ts,e,i);var a=er.dot(Ts,r)/s;a<0?er.copy(t,i):a>1?er.copy(t,n):er.scaleAndAdd(t,i,r,a)}},pt_point_obb:ks,pt_point_plane:function(t,e,i){var n=Es(e,i);return er.subtract(t,e,er.multiplyScalar(t,i.n,n))}}),Fs=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=0),void 0===s&&(s=-1),this.s=void 0,this.e=void 0,this._type=void 0,this._type=2,this.s=new er(t,e,i),this.e=new er(n,r,s)}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 er.copy(t.s,e.s),er.copy(t.e,e.e),t},t.fromPoints=function(t,e,i){return er.copy(t.s,e),er.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 er.distance(t.s,t.e)},t.prototype.length=function(){return er.distance(this.s,this.e)},n(t,[{key:"type",get:function(){return this._type}}]),t}(),Ls=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=0),void 0===s&&(s=-1),this._type=1,this.o=new er(t,e,i),this.d=new er(n,r,s)}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 er.copy(t.o,e.o),er.copy(t.d,e.d),t},t.fromPoints=function(t,e,i){return er.copy(t.o,e),er.normalize(t.d,er.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){er.normalize(t,this.d),er.scaleAndAdd(t,this.o,t,e)},n(t,[{key:"type",get:function(){return this._type}}]),t}(),Ns=new er,Vs=new er,zs=new er,Us=new er;function Gs(t){return Math.max(Math.max(t.x,t.y),t.z)}var Hs,Ws,js,qs,Xs,Ys=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._type=4,this._center=new er(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 er.copy(t.center,e.center),t.radius=e.radius,t},t.fromPoints=function(t,e,i){return er.multiplyScalar(t.center,er.add(Ns,e,i),.5),t.radius=.5*er.subtract(Ns,i,e).length(),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.destroy=function(){},e.clone=function(){return t.clone(this)},e.copy=function(e){return t.copy(this,e)},e.getBoundary=function(t,e){er.set(t,this.center.x-this.radius,this.center.y-this.radius,this.center.z-this.radius),er.set(e,this.center.x+this.radius,this.center.y+this.radius,this.center.z+this.radius)},e.transform=function(t,e,i,n,r){er.transformMat4(r.center,this.center,t),r.radius=this.radius*Gs(n)},e.translateAndRotate=function(t,e,i){er.transformMat4(i.center,this.center,t)},e.setScale=function(t,e){e.radius=this.radius*Gs(t)},e.mergePoint=function(t){this.radius<0&&(this.center.set(t),this.radius=0),er.subtract(Vs,t,this.center);var e=Vs.length();if(e>this.radius){var i=.5*(e-this.radius);this.radius+=i,er.multiplyScalar(Vs,Vs,i/e),er.add(this.center,this.center,Vs)}},e.mergePoints=function(t){var e=t.length;if(!(e<1)){this.radius=-1;for(var i=0;i-Number.EPSILON))return 0;var r=1/n;Js(qs,t.o,e.a);var s=Qs(qs,js)*r;if(s<0||s>1)return 0;$s(Xs,qs,Hs);var a=Qs(t.d,Xs)*r;if(a<0||s+a>1)return 0;var o=Qs(Ws,Xs)*r;return o<0?0:o}),ua=function(){var t=ir();return function(e,i){var n=i.radius,r=i.center,s=e.o,a=e.d,o=n*n;Js(t,r,s);var h=t.lengthSqr(),u=Qs(t,a),l=o-(h-u*u);if(l<0)return 0;var c=Math.sqrt(l),f=hp?0:d>0?d:p}var fa=function(){var t=ir(),e=ir(),i=ir(),n=ir(),r=ir(),s=ir(),a=ir(),o=new Array(3),h=new Array(3),u=new Array(3),l=new Array(6);return function(c,f){var _=f.halfExtents,d=f.orientation;o[0]=_.x,o[1]=_.y,o[2]=_.z,t=f.center,e=c.o,i=c.d,Zs(n,d.m00,d.m01,d.m02),Zs(r,d.m03,d.m04,d.m05),Zs(s,d.m06,d.m07,d.m08),Js(a,t,e),h[0]=Qs(n,i),h[1]=Qs(r,i),h[2]=Qs(s,i),u[0]=Qs(n,a),u[1]=Qs(r,a),u[2]=Qs(s,a);for(var p=0;p<3;++p){if(0===h[p]){if(-u[p]-o[p]>0||-u[p]+o[p]<0)return 0;h[p]=1e-7}l[2*p+0]=(u[p]+o[p])/h[p],l[2*p+1]=(u[p]-o[p])/h[p]}var m=ra(ra(sa(l[0],l[1]),sa(l[2],l[3])),sa(l[4],l[5])),g=sa(sa(ra(l[0],l[1]),ra(l[2],l[3])),ra(l[4],l[5]));return g<0||m>g?0:m>0?m:g}}(),_a=function(){var t=ir(),e=ir(),i=ir(),n=ir(),r=ir(),s=ir(),a=ir(),o=new Ys;return function(h,u){var l=u.ellipseCenter0,c=u.ellipseCenter1,f=Js(e,c,l);if(f.length()=0&&B<=1?T:B<0?(o.radius=u.radius,o.center.set(u.ellipseCenter0),Qa.raySphere(h,o)):B>1?(o.radius=u.radius,o.center.set(u.ellipseCenter1),Qa.raySphere(h,o)):0}}(),da=function(){var t=ir();return function(e,i){Js(t,e.e,e.s);var n=-Es(e.s,i)/Qs(t,i.n);return n<0||n>1?0:n}}(),pa=function(){var t=ir(),e=ir(),i=ir(),n=ir(),r=ir(),s=ir();return function(a,o,h){Js(t,o.b,o.a),Js(e,o.c,o.a),Js(i,a.s,a.e),$s(r,t,e);var u=Qs(i,r);if(u<=0)return 0;Js(n,a.s,o.a);var l=Qs(n,r);if(l<0||l>u)return 0;$s(s,i,n);var c=Qs(e,s);if(c<0||c>u)return 0;var f=-Qs(t,s);if(f<0||c+f>u)return 0;if(h){var _=1/u,d=1-(c*=_)-(f*=_);Zs(h,o.a.x*d+o.b.x*c+o.c.x*f,o.a.y*d+o.b.y*c+o.c.y*f,o.a.z*d+o.b.z*c+o.c.z*f)}return 1}}(),ma=new Ls;function ga(t,e){ma.o.set(t.s),Js(ma.d,t.e,t.s),ma.d.normalize();var i=la(ma,e);return i<=t.length()?i:0}function ya(t,e){ma.o.set(t.s),Js(ma.d,t.e,t.s),ma.d.normalize();var i=fa(ma,e);return i<=t.length()?i:0}function va(t,e){ma.o.set(t.s),Js(ma.d,t.e,t.s),ma.d.normalize();var i=ua(ma,e);return i<=t.length()?i:0}var ba,Sa,xa,wa,Ta=(ba=ir(),Sa=ir(),xa=ir(),wa=ir(),function(t,e){return Js(ba,t.center,t.halfExtents),ia(Sa,t.center,t.halfExtents),Js(xa,e.center,e.halfExtents),ia(wa,e.center,e.halfExtents),ba.x<=wa.x&&Sa.x>=xa.x&&ba.y<=wa.y&&Sa.y>=xa.y&&ba.z<=wa.z&&Sa.z>=xa.z});function Aa(t,e,i){Zs(i[0],t.x,e.y,e.z),Zs(i[1],t.x,e.y,t.z),Zs(i[2],t.x,t.y,e.z),Zs(i[3],t.x,t.y,t.z),Zs(i[4],e.x,e.y,e.z),Zs(i[5],e.x,e.y,t.z),Zs(i[6],e.x,t.y,e.z),Zs(i[7],e.x,t.y,t.z)}function Ca(t,e,i,n,r,s){Zs(s[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),Zs(s[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),Zs(s[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),Zs(s[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),Zs(s[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),Zs(s[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),Zs(s[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),Zs(s[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 Da(t,e){for(var i=Qs(e,t[0]),n=i,r=1;r<8;++r){var s=Qs(e,t[r]);i=sn?s:n}return[i,n]}var Ba,Ia,Ma,Pa,Ea,Oa=function(){for(var t=new Array(15),e=0;e<15;e++)t[e]=ir();for(var i=new Array(8),n=new Array(8),r=0;r<8;r++)i[r]=ir(),n[r]=ir();var s=ir(),a=ir();return function(e,r){var o=r.orientation;Zs(t[0],1,0,0),Zs(t[1],0,1,0),Zs(t[2],0,0,1),Zs(t[3],o.m00,o.m01,o.m02),Zs(t[4],o.m03,o.m04,o.m05),Zs(t[5],o.m06,o.m07,o.m08);for(var h=0;h<3;++h)$s(t[6+3*h],t[h],t[3]),$s(t[7+3*h],t[h],t[4]),$s(t[7+3*h],t[h],t[5]);Js(s,e.center,e.halfExtents),ia(a,e.center,e.halfExtents),Aa(s,a,i),Ca(r.center,r.halfExtents,t[3],t[4],t[5],n);for(var u=0;u<15;++u){var l=Da(i,t[u]),c=Da(n,t[u]);if(c[0]>l[1]||l[0]>c[1])return 0}return 1}}(),ka=function(t,e){var i=t.halfExtents,n=e.n,r=i.x*aa(n.x)+i.y*aa(n.y)+i.z*aa(n.z),s=Qs(n,t.center);return s+re.d?0:1},Ra=function(t,e){for(var i=e.planes,n=0;na.x?e++:t[c].x<-a.x&&i++;if(e===s.length||i===s.length)return 0;e=0,i=0;for(var f=0;fa.y?e++:t[f].y<-a.y&&i++;if(e===s.length||i===s.length)return 0;e=0,i=0;for(var _=0;_a.z?e++:t[_].z<-a.z&&i++;return e===s.length||i===s.length?0:1}}(),La=(Ba=ir(),Ia=new gr,function(t,e){return Js(Ba,e,t.center),er.transformMat3(Ba,Ba,gr.transpose(Ia,t.orientation)),i=Ba,n=t.halfExtents,aa(i.x)s?0:1}),Va=function(t,e){for(var i=e.planes,n=0;nh.x?i++:e<-h.x&&n++;if(i===u.length||n===u.length)return 0;i=0,n=0;for(var m=0;mh.y?i++:e<-h.y&&n++;if(i===u.length||n===u.length)return 0;i=0,n=0;for(var g=0;gh.z?i++:e<-h.z&&n++;return i===u.length||n===u.length?0:1}}(),Ua=function(){for(var t=new Array(15),e=0;e<15;e++)t[e]=ir();for(var i=new Array(8),n=new Array(8),r=0;r<8;r++)i[r]=ir(),n[r]=ir();return function(e,r){var s=e.orientation,a=r.orientation;Zs(t[0],s.m00,s.m01,s.m02),Zs(t[1],s.m03,s.m04,s.m05),Zs(t[2],s.m06,s.m07,s.m08),Zs(t[3],a.m00,a.m01,a.m02),Zs(t[4],a.m03,a.m04,a.m05),Zs(t[5],a.m06,a.m07,a.m08);for(var o=0;o<3;++o)$s(t[6+3*o],t[o],t[3]),$s(t[7+3*o],t[o],t[4]),$s(t[8+3*o],t[o],t[5]);Ca(e.center,e.halfExtents,t[0],t[1],t[2],i),Ca(r.center,r.halfExtents,t[3],t[4],t[5],n);for(var h=0;h<15;++h){var u=Da(i,t[h]),l=Da(n,t[h]);if(l[0]>u[1]||u[0]>l[1])return 0}return 1}}(),Ga=function(){for(var t=new Ys,e=ir(),i=ir(),n=ir(),r=new Array(8),s=0;s<8;s++)r[s]=ir();for(var a=new Array(8),o=0;o<8;o++)a[o]=ir();return function(s,o){var h=o.ellipseCenter0,u=o.ellipseCenter1,l=o.radius;if(0===Ks(h,u))return t.radius=o.radius,t.center.set(h),Qa.sphereOBB(t,s);var c=s.orientation;e.x=c.m00,e.y=c.m01,e.z=c.m02,i.x=c.m03,i.y=c.m04,i.z=c.m05,n.x=c.m06,n.y=c.m07,n.z=c.m08,Ca(s.center,s.halfExtents,e,i,n,r);var f=a,_=ea(f[0],e),d=ea(f[1],i),p=ea(f[2],n);Js(f[3],o.center,s.center).normalize();var m=Js(f[4],h,u);m.normalize(),$s(f[5],_,m),$s(f[6],d,m),$s(f[7],p,m);for(var g=0;g<8;++g){var y=Da(r,f[g]),v=Qs(f[g],h),b=Qs(f[g],u),S=ra(v,b)+l;if(sa(v,b)-l>y[1]||y[0]>S)return 0}return 1}}(),Ha=function(t,e){var i=Qs(e.n,t.center),n=t.radius*e.n.length();return i+ne.d?0:1},Wa=function(t,e){for(var i=e.planes,n=0;no)){ia(Pa,s,ta(Pa,a,r));for(var u=0;u<6;u++)if(u!==i&&u!==i+Ea[i]){var l=e.planes[u];if(Qs(l.n,Pa)1?Ks(a,s)w&&(h=w,u=S+y,T=v)),u<0?(u=0,-b<0?h=0:-b>g?h=w:(h=-b,w=g)):u>T&&(u=T,-b+y<0?h=0:-b+y>g?h=w:(h=-b+y,w=g));var A=aa(h)0&&(t.d=e.d/i),t},t.prototype.transform=function(t){Kr.invert(to,t),Kr.transpose(to,to),Ln.set(eo,this.n.x,this.n.y,this.n.z,-this.d),Ln.transformMat4(eo,eo,to),er.set(this.n,eo.x,eo.y,eo.z),this.d=-eo.w},n(t,[{key:"type",get:function(){return this._type}},{key:"x",get:function(){return this.n.x},set:function(t){this.n.x=t}},{key:"y",get:function(){return this.n.y},set:function(t){this.n.y=t}},{key:"z",get:function(){return this.n.z},set:function(t){this.n.z=t}},{key:"w",get:function(){return this.d},set:function(t){this.d=t}}]),t}(),no=function(){function t(t,e,i,n,r,s,a,o,h){void 0===t&&(t=0),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),void 0===a&&(a=0),void 0===o&&(o=1),void 0===h&&(h=0),this._type=64,this.a=new er(t,e,i),this.b=new er(n,r,s),this.c=new er(a,o,h)}return t.create=function(e,i,n,r,s,a,o,h,u){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=0),void 0===a&&(a=0),void 0===o&&(o=0),void 0===h&&(h=0),void 0===u&&(u=1),new t(e,i,n,r,s,a,o,h,u)},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 er.copy(t.a,e.a),er.copy(t.b,e.b),er.copy(t.c,e.c),t},t.fromPoints=function(t,e,i,n){return er.copy(t.a,e),er.copy(t.b,i),er.copy(t.c,n),t},t.set=function(t,e,i,n,r,s,a,o,h,u){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=h,t.c.z=u,t},n(t,[{key:"type",get:function(){return this._type}}]),t}();Ct({replaceProperty:{since:"3.6.0",removed:!1},removeProperty:{since:"3.6.0",removed:!1},markAsWarning:{since:"3.6.0",removed:!1},setDefaultLogTimes:{since:"3.6.0",removed:!1}});var ro=function(){function t(){this._poolHandle=-1,ao.addContainer(this)}return t.prototype.destroy=function(){ao.removeContainer(this)},t}(),so=function(){function t(){this._pools=[],this._lastShrinkPassed=0,this.shrinkTimeSpan=5}var e=t.prototype;return e.addContainer=function(t){-1===t._poolHandle&&(t._poolHandle=this._pools.length,this._pools.push(t))},e.removeContainer=function(t){-1!==t._poolHandle&&(this._pools[this._pools.length-1]._poolHandle=t._poolHandle,ve(this._pools,t._poolHandle),t._poolHandle=-1)},e.tryShrink=function(){for(var t=0;tthis.shrinkTimeSpan&&(this.tryShrink(),this._lastShrinkPassed-=this.shrinkTimeSpan)},t}(),ao=new so,oo=t("by",function(t){function e(e,i,n,r){var s;(s=t.call(this)||this)._freePool=[],s._ctor=e,s._dtor=n||null,s._elementsPerBatch=Math.max(i,1),s._shrinkThreshold=r?M(r,1):s._elementsPerBatch,s._nextAvail=s._elementsPerBatch-1;for(var a=0;a>1>=this._shrinkThreshold?t>>1:Math.floor((t-this._shrinkThreshold+1)/2),this._dtor)for(var i=this._nextAvail-e+1;i<=this._nextAvail;++i)this._dtor(this._freePool[i]);this._nextAvail-=e,this._freePool.length=this._nextAvail+1}},i.destroy=function(){var e=arguments.length>0?arguments[0]:null;e&&st(14100);var i=e||this._dtor;if(i)for(var n=0;n<=this._nextAvail;n++)i(this._freePool[n]);this._freePool.length=0,this._nextAvail=-1,t.prototype.destroy.call(this)},e}(ro)),ho=t("bz",function(t){function e(e,i,n){var r;(r=t.call(this)||this)._count=0,r._fn=e,r._dtor=n||null,r._data=new Array(i),r._initSize=i;for(var s=0;sthis._data.length)for(var e=this._data.length;e=this._data.length&&this.resize(this._data.length<<1),this._data[this._count++]},i.destroy=function(){if(this._dtor)for(var e=0;e>2>this._count){var t=Math.max(this._initSize,this._data.length>>1);if(this._dtor)for(var e=t;e=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(e,[{key:"length",get:function(){return this._count}},{key:"data",get:function(){return this._data}}]),e}(ro)),uo=t("bA",function(t){function e(e,i){var n;return(n=t.call(this)||this).length=0,n._initSize=0,n.array=new Array(e),n._initSize=e,n._compareFn=i,n}s(e,t);var i=e.prototype;return i.push=function(t){this.array[this.length++]=t},i.pop=function(){return this.array[--this.length]},i.get=function(t){return this.array[t]},i.clear=function(){this.length=0},i.destroy=function(){this.length=0,this.array.length=0,t.prototype.destroy.call(this)},i.tryShrink=function(){this.array.length>>2>this.length&&(this.array.length=Math.max(this._initSize,this.array.length>>1))},i.sort=function(){this.array.length=this.length,this.array.sort(this._compareFn)},i.concat=function(t){for(var e=0;e=this.length||t<0)){var e=--this.length;this.array[t]=this.array[e]}},i.indexOf=function(t){for(var e=0,i=this.length;e=0;--t)this.callbackInfos[t]||bo(this.callbackInfos,t);this.containCanceled=!1},e.clear=function(){this.cancelAll(),this.callbackInfos.length=0,this.isInvoking=!1,this.containCanceled=!1},t}(),Ao=new oo((function(){return new To}),16),Co=t("d4",function(){function t(){this._callbackTable=Ut(!0),this._offCallback=void 0}var e=t.prototype;return e.on=function(t,e,i,n){if(!this.hasEventListener(t,e,i)){var r=this._callbackTable[t];r||(r=this._callbackTable[t]=Ao.alloc());var s=wo.alloc();s.set(e,i,n),r.callbackInfos.push(s)}return e},e.hasEventListener=function(t,e,i){var n=this._callbackTable&&this._callbackTable[t];if(!n)return!1;var r=n.callbackInfos;if(!e){if(n.isInvoking){for(var s=0;s0}for(var a=0;a1)&&(h=!0,u="",l=0);var f=Eo.UNKNOWN;-1!==r.appVersion.indexOf("Win")?f=Eo.WINDOWS:h?f=Eo.IOS:-1!==r.appVersion.indexOf("Mac")?f=Eo.OSX:-1!==r.appVersion.indexOf("X11")&&-1===r.appVersion.indexOf("Linux")?f=Eo.LINUX:o?f=Eo.ANDROID:-1===r.appVersion.indexOf("Linux")&&-1===s.indexOf("ubuntu")||(f=Eo.LINUX),i.os=f,i.osVersion=u,i.osMainVersion=l,i.browserType=Io.UNKNOWN;var _=/wechat|weixin|micromessenger/i.exec(s)||/mqqbrowser|micromessenger|qqbrowser|sogou|qzone|liebao|maxthon|ucbs|360 aphone|360browser|baiduboxapp|baidubrowser|maxthon|mxbrowser|miuibrowser/i.exec(s)||/qq|qqbrowser|ucbrowser|ubrowser|edge|HuaweiBrowser/i.exec(s)||/chrome|safari|firefox|trident|opera|opr\/|oupeng/i.exec(s),d=_?_[0].toLowerCase():Eo.UNKNOWN;("safari"===d&&o||"qq"===d&&/android.*applewebkit/i.test(s))&&(d=Io.ANDROID);var p={micromessenger:Io.WECHAT,wechat:Io.WECHAT,weixin:Io.WECHAT,trident:Io.IE,edge:Io.EDGE,"360 aphone":Io.BROWSER_360,mxbrowser:Io.MAXTHON,"opr/":Io.OPERA,ubrowser:Io.UC,huaweibrowser:Io.HUAWEI};i.browserType=p[d]||d,i.browserVersion="";var m=/(mqqbrowser|micromessenger|qqbrowser|sogou|qzone|liebao|maxthon|uc|ucbs|360 aphone|360|baiduboxapp|baidu|maxthon|mxbrowser|miui(?:.hybrid)?)(mobile)?(browser)?\/?([\d.]+)/i.exec(s);m||(m=/(qq|chrome|safari|firefox|trident|opera|opr\/|oupeng)(mobile)?(browser)?\/?([\d.]+)/i.exec(s)),i.browserVersion=m?m[4]:"",i.isXR=!1;var g,y=document.createElement("canvas");y.getContext("2d");try{g=y.toDataURL("image/webp").startsWith("data:image/webp")}catch(t){g=!1}if(i.os===Eo.IOS){var v,b=null==(v=/ applewebkit\/(\d+)/.exec(s))?void 0:v[1];"string"==typeof b&&Number.parseInt(b)>=604&&(g=!0)}else if(i.browserType===Io.SAFARI){var w,T=null==(w=/ version\/(\d+)/.exec(s))?void 0:w[1];"string"==typeof T&&Number.parseInt(T)>=14&&(g=!0)}var A=void 0!==document.documentElement.ontouchstart||void 0!==document.ontouchstart||S,C=void 0!==document.documentElement.onmouseup||S,D=void 0!==navigator.xr,B=function(){if((i.os===Eo.IOS||i.os===Eo.OSX)&&/(OS 15_4)|(Version\/15.4)/.test(window.navigator.userAgent))return!1;try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){var t=new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0]));if(t instanceof WebAssembly.Module)return new WebAssembly.Instance(t)instanceof WebAssembly.Instance}}catch(t){return!1}return!1}();return i._featureMap=((e={})[ko.WEBP]=g,e[ko.IMAGE_BITMAP]=!1,e[ko.WEB_VIEW]=!0,e[ko.VIDEO_PLAYER]=!0,e[ko.SAFE_AREA]=!1,e[ko.HPE]=!1,e[ko.INPUT_TOUCH]=A,e[ko.EVENT_KEYBOARD]=void 0!==document.documentElement.onkeyup||S,e[ko.EVENT_MOUSE]=C,e[ko.EVENT_TOUCH]=A||C,e[ko.EVENT_ACCELEROMETER]=void 0!==window.DeviceMotionEvent||void 0!==window.DeviceOrientationEvent,e[ko.EVENT_GAMEPAD]=void 0!==navigator.getGamepads||void 0!==navigator.webkitGetGamepads||D,e[ko.EVENT_HANDLE]=x,e[ko.EVENT_HMD]=D,e[ko.EVENT_HANDHELD]=D,e[ko.WASM]=B,e),i._initPromise.push(i._supportsImageBitmapPromise()),i._registerEvent(),i}s(e,t);var i=e.prototype;return i._supportsImageBitmapPromise=function(){var t=this;if("undefined"!=typeof createImageBitmap&&"undefined"!=typeof Blob){var e=document.createElement("canvas");e.width=e.height=2;var i=createImageBitmap(e);if(i instanceof Promise)return i.then((function(e){e&&e.close&&(t._setFeature(ko.IMAGE_BITMAP,!0),e.close())}))}return Promise.resolve()},i._registerEvent=function(){var t,e=this;t=void 0!==document.hidden?"hidden":void 0!==document.mozHidden?"mozHidden":void 0!==document.msHidden?"msHidden":void 0!==document.webkitHidden?"webkitHidden":"hidden";var i=!1,n=function(){i||(i=!0,e.emit("hide"))},r=function(t,n,r,s,a){i&&(i=!1,e.emit("show",t,n,r,s,a))};if(t)for(var s=["visibilitychange","mozvisibilitychange","msvisibilitychange","webkitvisibilitychange","qbrowserVisibilityChange"],a=0;a-1&&(window.onfocus=r),"onpageshow"in window&&"onpagehide"in window&&(window.addEventListener("pagehide",n),window.addEventListener("pageshow",r),document.addEventListener("pagehide",n),document.addEventListener("pageshow",r))},i._setFeature=function(t,e){return this._featureMap[t]=e},i.init=function(){return Promise.all(this._initPromise)},i.hasFeature=function(t){return this._featureMap[t]},i.getBatteryLevel=function(){return this._battery?this._battery.level:1},i.triggerGC=function(){},i.openURL=function(t){window.open(t)},i.now=function(){return Date.now?Date.now():+new Date},i.restartJSVM=function(){},i.exit=function(){window.close()},i.close=function(){this.emit("close")},e}(Bo),Lo=new Fo,No=/(\.[^./?\\]*)(\?.*)?$/,Vo=/((.*)(\/|\\|\\\\))?(.*?\..*$)?/,zo=/[^./]+\/\.\.\//;function Uo(){for(var t="",e=arguments.length,i=new Array(e),n=0;n0&&(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}function jo(t){var e=Vo.exec(t);return e?e[2]:""}function qo(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}function Xo(t,e,i){if(0===e.indexOf("."))return qo(t,e);var n=t.indexOf("?"),r="",s=i?Go(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}function Yo(t){var e=t=String(t);do{e=t,t=t.replace(zo,"")}while(e.length!==t.length);return t}function Ko(t){return t.replace(/[/\\]$/,"")}function Jo(){return Lo.os===Eo.WINDOWS?"\\":"/"}t("bH",Object.freeze({__proto__:null,_normalize:Yo,basename:Wo,changeBasename:Xo,changeExtname:qo,dirname:jo,extname:Go,getSeperator:Jo,join:Uo,mainFileName:Ho,stripSep:Ko}));var Qo=new er;function Zo(t,e,i,n){n||(n=new er),t.convertToUINode(e,i,n);var r=i.position;return n.add(r),n}function $o(t,e,i){return i||(i=new er),t.worldToScreen(e,i),i.x/=A.view.getScaleX(),i.y/=A.view.getScaleY(),i}var th=t("bR",{WorldNode3DToLocalNodeUI:Zo,WorldNode3DToWorldNodeUI:$o});A.pipelineUtils=th,dt(A.pipelineUtils,"cc.pipelineUtils",[{name:"WorldNode3DToLocalNodeUI",newName:"convertToUINode",targetName:"cc.Camera.prototype",customFunction:function(){for(var t=arguments.length,e=new Array(t),i=0;iwindow.innerHeight;this.isFrameRotated=Lo.isMobile&&(e&&t===Ne.PORTRAIT||!e&&t===Ne.LANDSCAPE)},e._updateContainer=function(){if(this._gameContainer){if(this.isProportionalToFrame){if(!this._gameFrame)return void st(9201);var t,e,i=A.view.getDesignResolutionSize(),n=this._gameFrame,r=n.clientWidth,s=n.clientHeight,a=i.width,o=i.height,h=r/a,u=s/o,l=this._gameContainer.style;h0&&st(1400,"screen.requestFullScreen(element, onFullScreenChange?, onFullScreenError?)","screen.requestFullScreen(): Promise"),rh.requestFullScreen().then((function(){null==e||e.call(document)})).catch((function(t){Y(t),null==i||i.call(document)}))},e.exitFullScreen=function(){return rh.exitFullScreen()},e.autoFullScreen=function(t,e){var i;null==(i=this.requestFullScreen(t,e))||i.catch((function(t){X(t)}))},e.disableAutoFullScreen=function(){},e.on=function(t,e,i){rh.on(t,e,i)},e.once=function(t,e,i){rh.once(t,e,i)},e.off=function(t,e,i){rh.off(t,e,i)},n(t,[{key:"devicePixelRatio",get:function(){return rh.devicePixelRatio}},{key:"windowSize",get:function(){return rh.windowSize},set:function(t){rh.windowSize=t}},{key:"resolution",get:function(){return rh.resolution}},{key:"supportsFullScreen",get:function(){return rh.supportFullScreen}}]),t}(),ah=t("cm",new sh);A.screen=ah;var oh=t("cn",{Feature:ko,hasFeature:function(t){return Lo.hasFeature(t)},NetworkType:Po,Language:Mo,OS:Eo,Platform:Oo,BrowserType:Io,isNative:Lo.isNative,isBrowser:Lo.isBrowser,isMobile:Lo.isMobile,isLittleEndian:Lo.isLittleEndian,platform:Lo.platform,language:Lo.language,languageCode:Lo.nativeLanguage,os:Lo.os,osVersion:Lo.osVersion,osMainVersion:Lo.osMainVersion,browserType:Lo.browserType,browserVersion:Lo.browserVersion,isXR:Lo.isXR,windowPixelResolution:ah.windowSize,capabilities:{canvas:!0,opengl:!0,webp:Lo.hasFeature(ko.WEBP),imageBitmap:Lo.hasFeature(ko.IMAGE_BITMAP),touches:Lo.hasFeature(ko.INPUT_TOUCH),mouse:Lo.hasFeature(ko.EVENT_MOUSE),keyboard:Lo.hasFeature(ko.EVENT_KEYBOARD),accelerometer:Lo.hasFeature(ko.EVENT_ACCELEROMETER)},localStorage:{},getNetworkType:function(){return Lo.networkType},getBatteryLevel:function(){return Lo.getBatteryLevel()},garbageCollect:function(){Lo.triggerGC()},isObjectValid:function(t){return null!=t},__isWebIOS14OrIPadOS14Env:!1,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+="supports webp: "+oh.hasFeature(ko.WEBP)+"\r\n",t+="supports bitmap: "+oh.hasFeature(ko.IMAGE_BITMAP)+"\r\n",t+="supports touches: "+oh.hasFeature(ko.INPUT_TOUCH)+"\r\n",t+="supports mouse: "+oh.hasFeature(ko.EVENT_MOUSE)+"\r\n",t+="supports keyboard: "+oh.hasFeature(ko.EVENT_KEYBOARD)+"\r\n",t+="supports accelerometer: "+oh.hasFeature(ko.EVENT_ACCELEROMETER)+"\r\n",t+="os : "+this.os+"\r\n",t+="osVersion : "+this.osVersion+"\r\n",t+="platform : "+this.platform+"\r\n",q(t+="Using "+(A.game.renderType===A.game.RENDER_TYPE_WEBGL?"WEBGL":"CANVAS")+" renderer.\r\n")},openURL:function(t){Lo.openURL(t)},init:function(){var t=this;return Promise.resolve().then((function(){return Lo.init()})).then((function(){try{var e=oh.localStorage=window.localStorage;e.setItem("storage",""),e.removeItem("storage"),e=null}catch(e){var i=function(){st(5200)};t.localStorage={getItem:i,setItem:i,clear:i,removeItem:i,key:i,length:0}}t.__isWebIOS14OrIPadOS14Env=(oh.os===Eo.IOS||oh.os===Eo.OSX)&&Lo.isBrowser&&/(OS 14)|(Version\/14)/.test(window.navigator.userAgent)}))},now:function(){return Lo.now()},restartVM:function(){Lo.restartJSVM()},getSafeAreaRect:function(t){void 0===t&&(t=!0);var e=A.view,i=rh.safeAreaEdge;t&&(rh.orientation===ze.ORIENTATION_PORTRAIT?i.toplh.x&&(lh.x=t.x),t.y>lh.y&&(lh.y=t.y),t.z>lh.z&&(lh.z=t.z),er.add(ch,uh,lh),this.center.set(er.multiplyScalar(ch,ch,.5)),this.halfExtents.set(lh.x-ch.x,lh.y-ch.y,lh.z-ch.z)},e.mergePoints=function(t){if(!(t.length<1))for(var e=0;e>>1;n<=r;s=n+r>>>1){var a=t[s];if(a>e+i)r=s-1;else{if(!(a=t._times.length)return{done:!0,value:void 0};var i=[t._times[e],t._values[e]];return++e,{done:!1,value:i}}}},e.keyframes=function(){return this},e.times=function(){return this._times},e.values=function(){return this._values},e.getKeyframeTime=function(t){return this._times[t]},e.getKeyframeValue=function(t){return this._values[t]},e.addKeyFrame=function(t,e){return this._insertNewKeyframe(t,e)},e.removeKeyframe=function(t){this._times.splice(t,1),this._values.splice(t,1)},e.indexOfKeyframe=function(t){return Oh(this._times,t)},e.updateTime=function(t,e){var i=this._values[t];this.removeKeyframe(t),this._insertNewKeyframe(e,i)},e.assignSorted=function(t,e){if(void 0!==e)this.setKeyframes(t.slice(),e.slice());else{var i=Array.from(t);this.setKeyframes(i.map((function(t){return t[0]})),i.map((function(t){return t[1]})))}},e.clear=function(){this._times.length=0,this._values.length=0},e.searchKeyframe=function(t){return Oh(this._times,t)},e.setKeyframes=function(t,e){t.length,e.length,Rh(t),this._times=t,this._values=e},e._insertNewKeyframe=function(t,e){var i=this._times,n=this._values,r=i.length,s=Oh(i,t);if(s>=0)return s;var a=~s;return 0===a?(i.unshift(t),n.unshift(e)):a===r?(i.push(t),n.push(e)):(i.splice(a-1,0,t),n.splice(a-1,0,e)),a},n(t,[{key:"keyFramesCount",get:function(){return this._times.length}},{key:"rangeMin",get:function(){return this._times[0]}},{key:"rangeMax",get:function(){return this._times[this._values.length-1]}}]),t}();function Rh(t){return t.every((function(t,e,i){return 0===e||t>i[e-1]||Qi(t,i[e-1],1e-6)}))}function Fh(t,e,i,n,r){var s=i/n,a=e/n,o=s*s,h=1/3*(-1/3*o+a),u=.5*(2/27*s*o-1/3*s*a+t/n),l=h*h*h,c=u*u+l,f=0;if(Nh(c)){if(Nh(u))return r[0]=0,1;var _=Math.cbrt(-u);return r[0]=2*_,r[1]=-_,2}if(c<0){var d=1/3*Math.acos(-u/Math.sqrt(-l)),p=2*Math.sqrt(-h);r[0]=p*Math.cos(d),r[1]=-p*Math.cos(d+Math.PI/3),r[2]=-p*Math.cos(d-Math.PI/3),f=3}else{var m=Math.sqrt(c),g=Math.cbrt(m-u),y=-Math.cbrt(m+u);r[0]=g+y,f=1}for(var v=1/3*s,b=0;b-1e-9&&t>3},n=i.storageUnit,r=ju(i.elementType),s=new(qu(n))(t,this._byteOffset,this._unitCount),a=new Array(this._length),o=0;o=1?1:t*t*(3-2*t)}function Il(t){return t<=0?0:t>=1?1:t*t*t*(t*(6*t-15)+10)}A._decorator=Hu;var Ml=zl(Zu,$u),Pl=zl(el,il),El=zl(rl,sl),Ol=zl(ol,hl),kl=zl(ll,cl),Rl=zl(_l,dl),Fl=zl(ml,gl),Ll=zl(vl,bl),Nl=zl(xl,wl),Vl=zl(Al,Cl);function zl(t,e){return function(i){return i<.5?e(2*i)/2:t(2*i-1)/2+.5}}var Ul,Gl=Object.freeze({__proto__:null,backIn:xl,backInOut:Tl,backOut:wl,backOutIn:Nl,bounceIn:Al,bounceInOut:Dl,bounceOut:Cl,bounceOutIn:Vl,circIn:ml,circInOut:yl,circOut:gl,circOutIn:Fl,constant:Ju,cubicIn:el,cubicInOut:nl,cubicOut:il,cubicOutIn:Pl,elasticIn:vl,elasticInOut:Sl,elasticOut:bl,elasticOutIn:Ll,expoIn:_l,expoInOut:pl,expoOut:dl,expoOutIn:Rl,fade:Il,linear:Qu,quadIn:Zu,quadInOut:tl,quadOut:$u,quadOutIn:Ml,quartIn:rl,quartInOut:al,quartOut:sl,quartOutIn:El,quintIn:ol,quintInOut:ul,quintOut:hl,quintOutIn:Ol,sineIn:ll,sineInOut:fl,sineOut:cl,sineOutIn:kl,smooth:Bl});t("cG",Gl),t("d3",{LINEAR:0,CONSTANT:1,QUAD_IN:2,QUAD_OUT:3,QUAD_IN_OUT:4,QUAD_OUT_IN:5,CUBIC_IN:6,CUBIC_OUT:7,CUBIC_IN_OUT:8,CUBIC_OUT_IN:9,QUART_IN:10,QUART_OUT:11,QUART_IN_OUT:12,QUART_OUT_IN:13,QUINT_IN:14,QUINT_OUT:15,QUINT_IN_OUT:16,QUINT_OUT_IN:17,SINE_IN:18,SINE_OUT:19,SINE_IN_OUT:20,SINE_OUT_IN:21,EXPO_IN:22,EXPO_OUT:23,EXPO_IN_OUT:24,EXPO_OUT_IN:25,CIRC_IN:26,CIRC_OUT:27,CIRC_IN_OUT:28,CIRC_OUT_IN:29,ELASTIC_IN:30,ELASTIC_OUT:31,ELASTIC_IN_OUT:32,ELASTIC_OUT_IN:33,BACK_IN:34,BACK_OUT:35,BACK_IN_OUT:36,BACK_OUT_IN:37,BOUNCE_IN:38,BOUNCE_OUT:39,BOUNCE_IN_OUT:40,BOUNCE_OUT_IN:41,SMOOTH:42,FADE:43});var Hl,Wl=((Ul={})[1]=Ju,Ul[0]=Qu,Ul[2]=Zu,Ul[3]=$u,Ul[4]=tl,Ul[5]=Ml,Ul[6]=el,Ul[7]=il,Ul[8]=nl,Ul[9]=Pl,Ul[10]=rl,Ul[11]=sl,Ul[12]=al,Ul[13]=El,Ul[14]=ol,Ul[15]=hl,Ul[16]=ul,Ul[17]=Ol,Ul[18]=ll,Ul[19]=cl,Ul[20]=fl,Ul[21]=kl,Ul[22]=_l,Ul[23]=dl,Ul[24]=pl,Ul[25]=Rl,Ul[26]=ml,Ul[27]=gl,Ul[28]=yl,Ul[29]=Fl,Ul[30]=vl,Ul[31]=bl,Ul[32]=Sl,Ul[33]=Ll,Ul[34]=xl,Ul[35]=wl,Ul[36]=Tl,Ul[37]=Nl,Ul[38]=Al,Ul[39]=Cl,Ul[40]=Dl,Ul[41]=Vl,Ul[42]=Bl,Ul[43]=Il,Ul);function jl(t){return Wl[t]}E(255),E(65280);var ql=function(t){function e(){var e;return(e=t.call(this)||this).value=0,e.rightTangent=0,e.rightTangentWeight=0,e.leftTangent=0,e.leftTangentWeight=0,e._flags=0,e}return s(e,t),n(e,[{key:"interpolationMode",get:function(){return 255&this._flags},set:function(t){this._flags&=-256,this._flags|=0|t}},{key:"tangentWeightMode",get:function(){return(65280&this._flags)>>8},set:function(t){this._flags&=-65281,this._flags|=t<<8}},{key:"easingMethod",get:function(){return(16711680&this._flags)>>16},set:function(t){this._flags&=-16711681,this._flags|=t<<16}}]),e}(Gu);function Xl(t){var e=new ql;if("number"==typeof t)e.value=t;else{var i=t.interpolationMode,n=t.tangentWeightMode,r=t.value,s=t.rightTangent,a=t.rightTangentWeight,o=t.leftTangent,h=t.leftTangentWeight,u=t.easingMethod,l=t[lo];e.value=null!=r?r:e.value,e.rightTangent=null!=s?s:e.rightTangent,e.rightTangentWeight=null!=a?a:e.rightTangentWeight,e.leftTangent=null!=o?o:e.leftTangent,e.leftTangentWeight=null!=h?h:e.leftTangentWeight,e.interpolationMode=null!=i?i:e.interpolationMode,e.tangentWeightMode=null!=n?n:e.tangentWeightMode,e.easingMethod=null!=u?u:e.easingMethod,l&&(e[lo]=l)}return e}Li.fastDefine("cc.RealKeyframeValue",ql,((Hl={interpolationMode:0,tangentWeightMode:0,value:0,rightTangent:0,rightTangentWeight:0,leftTangent:0,leftTangentWeight:0,easingMethod:0})[lo]=void 0,Hl)),Li.Attr.setClassAttr(ql,lo,"editorOnly",!0),(function(t){var e,i;return null!==(i=(e=t)[ou])&&void 0!==i?i:e[ou]={}}(ql)).uniquelyReferenced=!0;var Yl=t("cr",function(t){function e(){var e;return(e=t.call(this)||this).preExtrapolation=1,e.postExtrapolation=1,e}s(e,t);var i=e.prototype;return i.evaluate=function(t){var e=this._times,i=this._values,n=e.length;if(0===n)return 0;var r=e[0],s=e[n-1];if(ts){var h=this.postExtrapolation,u=i[n-1];if(1===h||n<2)return u.value;switch(h){case 0:return bc(s,u.value,e[n-2],i[n-2].value,t);case 2:t=yc(t,r,s);break;case 3:t=vc(t,r,s);break;default:return u.value}}var l=Oh(e,t);if(l>=0)return i[l].value;var c=~l,f=c-1,_=e[f],d=i[f],p=e[c];return Sc(_,d,p,i[c],(t-_)/(p-_))},i.addKeyFrame=function(e,i){return t.prototype.addKeyFrame.call(this,e,Xl(i))},i.assignSorted=function(t,e){if(void 0!==e)this.setKeyframes(t.slice(),e.map((function(t){return Xl(t)})));else{var i=Array.from(t);this.setKeyframes(i.map((function(t){return t[0]})),i.map((function(t){return Xl(t[1])})))}},i.isConstant=function(t){if(this._values.length<=1)return!0;var e=this._values[0].value;return this._values.every((function(i){return Qi(i.value,e,t)}))},i[Yu]=function(t,e){if(e.toCCON){var i=this._times,n=this._values,r=i.length,s=new DataView(new ArrayBuffer(0+Ql+Ql+Zl+$l*r+pc*r)),a=0;s.setUint8(a,this.preExtrapolation),a+=Ql,s.setUint8(a,this.postExtrapolation),a+=Ql,s.setUint32(a,r,!0),a+=Zl,i.forEach((function(t,e){return s.setFloat32(a+$l*e,t,!0)})),a+=$l*r;for(var o,h=p(n);!(o=h()).done;){var u=o.value;a=mc(s,u,a)}var l=new Uint8Array(s.buffer,0,a);t.writeProperty("bytes",l);var c=n.map((function(t){return t[lo]}));c.some((function(t){return void 0!==t}))&&t.writeProperty("keyframeValueEditorExtras",c)}else t.writeThis()},i[Ku]=function(t,e){if(e.fromCCON){var i=t.readProperty("bytes"),n=new DataView(i.buffer,i.byteOffset,i.byteLength),r=0;this.preExtrapolation=n.getUint8(r),r+=Ql,this.postExtrapolation=n.getUint8(r),r+=Ql;var s=n.getUint32(r,!0);r+=Zl;var a=Array.from({length:s},(function(t,e){return n.getFloat32(r+$l*e,!0)}));r+=$l*s;for(var o=new Array(s),h=0;h>Kl;return e.easingMethod=s,n}function yc(t,e,i){return e+fn(t-e,i-e)}function vc(t,e,i){return e+_n(t-e,i-e)}function bc(t,e,i,n,r){return e+(n-e)/(i-t)*(r-t)}function Sc(t,e,i,n,r){var s=i-t;switch(e.interpolationMode){default:case 1:return e.value;case 0:var a=0===e.easingMethod?r:jl(e.easingMethod)(r);return tn(e.value,n.value,a);case 2:var o=1/3,h=e.rightTangent,u=e.rightTangentWeight,l=!!(2&e.tangentWeightMode),c=n.leftTangent,f=n.leftTangentWeight,_=!!(1&n.tangentWeightMode);if(l||_){var d=0;if(l)d=u;else{var p=s,m=s*h;d=Math.sqrt(p*p+m*m)*o}var g=Math.atan(h),y=Math.cos(g)*d+t,v=Math.sin(g)*d+e.value,b=0;if(_)b=f;else{var S=s,x=s*c;b=Math.sqrt(S*S+x*x)*o}var w=Math.atan(c),T=(y-t)/s,A=(-Math.cos(w)*b+i-t)/s,C=v,D=-Math.sin(w)*b+n.value,B=[0,0,0],I=wc(B,Fh(0-r,3*T,3*A-6*T,3*(T-A)+1,B),r);return xc(e.value,C,D,n.value,I)}var M=e.value+o*h*s,P=n.value-o*c*s;return xc(e.value,M,P,n.value,r)}}function xc(t,e,i,n,r){var s=1-r;return s*s*s*t+3*s*s*r*e+3*s*r*r*i+r*r*r*n}function wc(t,e,i){var n=i;if(1===e)n=t[0];else{n=-1/0;for(var r=0;r=0&&s<=1&&s>n&&(n=s)}n===-1/0&&(n=0)}return n}function Tc(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}A.bezier=Tc;var Ac,Cc,Dc,Bc,Ic,Mc,Pc,Ec,Oc,kc=Math.cos,Rc=Math.acos,Fc=Math.max,Lc=2*Math.PI,Nc=Math.sqrt;function Vc(t){return t<0?-Math.pow(-t,1/3):Math.pow(t,1/3)}function zc(t,e){var i,n,r,s,a=e-0,o=e-t[0],h=3*a,u=3*o,l=3*(e-t[2]),c=1/(-a+u-l+(e-1)),f=1/3,_=(h-6*o+l)*c,d=_*f,p=(-h+u)*c,m=(3*p-_*_)*f,g=m*f,y=(2*_*_*_-9*_*p+a*c*27)/27,v=y/2,b=v*v+g*g*g;if(b<0){var S=-m*f,x=Nc(S*S*S),w=-y/(2*x),T=Rc(w<-1?-1:w>1?1:w),A=2*Vc(x);return n=A*kc(T*f)-d,r=A*kc((T+Lc)*f)-d,s=A*kc((T+2*Lc)*f)-d,n>=0&&n<=1?r>=0&&r<=1?s>=0&&s<=1?Fc(n,r,s):Fc(n,r):s>=0&&s<=1?Fc(n,s):n:r>=0&&r<=1?s>=0&&s<=1?Fc(r,s):r:s}if(0===b)return r=-(i=v<0?Vc(-v):-Vc(v))-d,(n=2*i-d)>=0&&n<=1?r>=0&&r<=1?Fc(n,r):n:r;var C=Nc(b);return(i=Vc(-v+C))-Vc(v+C)-d}function Uc(t,e){var i=zc(t,e),n=t[1];return((1-i)*(n+(t[3]-n)*i)*3+i*i)*i}A.bezierByTime=Uc,t("cw",{SLERP:0,CONSTANT:1});var Gc=Kh("cc.QuatKeyframeValue")(Ac=fu((Cc=function(t){var e=void 0===t?{}:t,i=e.value,n=e.interpolationMode,r=e.easingMethod;this.interpolationMode=Dc&&Dc(),this.value=Bc&&Bc(),this.easingMethod=Ic&&Ic(),this.value=i?Or.clone(i):this.value,this.interpolationMode=null!=n?n:this.interpolationMode,this.easingMethod=null!=r?r:this.easingMethod},Dc=Vh(Cc.prototype,"interpolationMode",[hu],(function(){return 0})),Bc=Vh(Cc.prototype,"value",[hu],(function(){return Or.clone(Or.IDENTITY)})),Ic=Vh(Cc.prototype,"easingMethod",[hu],(function(){return 0})),Ac=Cc))||Ac)||Ac;function Hc(t){return new Gc(t)}var Wc,jc=t("cv",Kh("cc.QuatCurve")((Pc=function(t){function e(){var e;return(e=t.call(this)||this).preExtrapolation=Ec&&Ec(),e.postExtrapolation=Oc&&Oc(),e}s(e,t);var i=e.prototype;return i.evaluate=function(t,e){var i;null!==(i=e)&&void 0!==i||(e=new Or);var n=this._times,r=this._values,s=this.postExtrapolation,a=this.preExtrapolation,o=n.length;if(0===o)return e;var h=n[0],u=n[o-1];if(tu){var c=r[o-1];switch(s){case 2:t=h+fn(t-h,u-h);break;case 3:t=h+_n(t-h,u-h);break;default:return Or.copy(e,c.value)}}var f=Oh(n,t);if(f>=0)return Or.copy(e,r[f].value);var _=~f,d=_-1,p=n[d],m=r[d],g=n[_],y=r[_],v=(t-p)/(g-p);switch(m.interpolationMode){default:case 1:return Or.copy(e,m.value);case 0:var b=m.easingMethod,S=0===b?v:Array.isArray(b)?Uc(b,v):jl(b)(v);return Or.slerp(e,m.value,y.value,S)}},i.addKeyFrame=function(e,i){var n=new Gc(i);return t.prototype.addKeyFrame.call(this,e,n)},i.assignSorted=function(t,e){if(void 0!==e)this.setKeyframes(t.slice(),e.map((function(t){return Hc(t)})));else{var i=Array.from(t);this.setKeyframes(i.map((function(t){return t[0]})),i.map((function(t){return Hc(t[1])})))}},i[Yu]=function(t,e){if(e.toCCON){var i=this._times,n=this._values,r=!0;n.forEach((function(t,e,i){var n=i[0];r&&t.interpolationMode!==n.interpolationMode&&(r=!1)}));var s=i.length,a=Jc*(r?1:s),o=n.reduce((function(t,e){var i=e.easingMethod;return t+(Array.isArray(i)?Qc+4*$c:Qc)}),0),h=0,u=new DataView(new ArrayBuffer(h+=qc+Xc+Yc*s+4*Kc*s+o+a+0)),l=0,c=0;r&&(c|=1),u.setUint32(l,c,!0),l+=qc,u.setUint32(l,s,!0),l+=Xc,i.forEach((function(t,e){return u.setFloat32(l+Yc*e,t,!0)})),l+=Yc*s,n.forEach((function(t,e){var i=t.value,n=i.x,r=i.y,s=i.z,a=i.w,o=l+4*Kc*e;u.setFloat32(o+0*Kc,n,!0),u.setFloat32(o+1*Kc,r,!0),u.setFloat32(o+2*Kc,s,!0),u.setFloat32(o+3*Kc,a,!0)})),l+=4*Kc*s,n.forEach((function(t){var e=t.easingMethod;Array.isArray(e)?(u.setUint8(l,Zc),++l,u.setFloat32(l+0*$c,e[0],!0),u.setFloat32(l+1*$c,e[1],!0),u.setFloat32(l+2*$c,e[2],!0),u.setFloat32(l+3*$c,e[3],!0),l+=4*$c):(u.setUint8(l,e),++l)}));var f=l;l+=a;var _=f;n.forEach((function(t){var e=t.interpolationMode;u.setUint8(_,e),r||(_+=Jc)}));var d=new Uint8Array(u.buffer);t.writeProperty("bytes",d)}else t.writeThis()},i[Ku]=function(t,e){if(e.fromCCON){var i=t.readProperty("bytes"),n=new DataView(i.buffer,i.byteOffset,i.byteLength),r=0,s=n.getUint32(r,!0);r+=qc;var a=1&s,o=n.getUint32(r,!0);r+=Xc;var h=Array.from({length:o},(function(t,e){return n.getFloat32(r+Yc*e,!0)})),u=r+=Yc*o;r+=4*Kc*o;var l=Array.from({length:o},(function(t,e){var i=u+4*Kc*e,s=n.getFloat32(i+0*Kc,!0),a=n.getFloat32(i+1*Kc,!0),o=n.getFloat32(i+2*Kc,!0),h=n.getFloat32(i+3*Kc,!0),l=n.getUint8(r);++r;var c=Hc({value:{x:s,y:a,z:o,w:h}});return l!==Zc?c.easingMethod=l:(c.easingMethod=[n.getFloat32(r+0*$c,!0),n.getFloat32(r+1*$c,!0),n.getFloat32(r+2*$c,!0),n.getFloat32(r+3*$c,!0)],r+=4*$c),c}));if(a){var c=n.getUint8(r);++r;for(var f=0;f=0)return this._values[e];var i=Zi(~e-1,0,this._values.length-1);return this._values[i]},e}(kh))||Wc),ef={Blend:0,Fixed:1};Pe(ef);var nf=t("cy",(function(){this.color=lr.WHITE.clone(),this.time=0}));Li.fastDefine("cc.ColorKey",nf,{color:lr.WHITE.clone(),time:0}),Li.Attr.setClassAttr(nf,"color","visible",!0),Li.Attr.setClassAttr(nf,"time","visible",!0);var rf=t("cz",(function(){this.alpha=1,this.time=0}));Li.fastDefine("cc.AlphaKey",rf,{alpha:1,time:0}),Li.Attr.setClassAttr(rf,"alpha","visible",!0),Li.Attr.setClassAttr(rf,"time","visible",!0);var sf=t("cA",function(){function t(){this.colorKeys=[],this.alphaKeys=[],this.mode=0}var e=t.prototype;return e.setKeys=function(t,e){this.colorKeys=t,this.alphaKeys=e},e.sortKeys=function(){this.colorKeys.length>1&&this.colorKeys.sort((function(t,e){return t.time-e.time})),this.alphaKeys.length>1&&this.alphaKeys.sort((function(t,e){return t.time-e.time}))},e.evaluate=function(t){return this.evaluateFast(new lr,t)},e.evaluateFast=function(t,e){return this.getRGB(t,e),t.a=this.getAlpha(e),t},e.randomColor=function(){return this.getRandomColor(new lr)},e.getRandomColor=function(t){var e=this.colorKeys[Math.trunc(rn()*this.colorKeys.length)],i=this.alphaKeys[Math.trunc(rn()*this.alphaKeys.length)];return t.set(e.color),t.a=i.alpha,t},e.getRGB=function(t,e){var i=this.colorKeys,n=i.length;if(n>1){e=fn(e,1+Ki);for(var r=1;r=s&&ei[h].time&&lr.lerp(t,i[h].color,lr.BLACK,(e-i[h].time)/(1-i[h].time))}else 1===n?lr.copy(t,i[0].color):lr.copy(t,lr.WHITE);return t},e.getAlpha=function(t){var e=this.alphaKeys,i=e.length;if(i>1){t=fn(t,1+Ki);for(var n=1;n=r&&te[o].time?tn(e[o].alpha,0,(t-e[o].time)/(1-e[o].time)):255}return 1===i?e[0].alpha:255},t}());sf.Mode=ef,Li.fastDefine("cc.Gradient",sf,{colorKeys:[],alphaKeys:[],mode:0}),Li.Attr.setClassAttr(sf,"colorKeys","visible",!0),Li.Attr.setClassAttr(sf,"alphaKeys","visible",!0),Li.Attr.setClassAttr(sf,"mode","visible",!0);var af=function(){this.time=0,this.value=0,this.inTangent=0,this.outTangent=0};Li.fastDefine("cc.Keyframe",af,{time:0,value:0,inTangent:0,outTangent:0});var of=function(){function t(){this.index=void 0,this.time=void 0,this.endTime=void 0,this.coefficient=void 0,this.index=-1,this.time=0,this.endTime=0,this.coefficient=new Float32Array(4)}return t.prototype.evaluate=function(t){return hf(t-this.time,this.coefficient)},t}();function hf(t,e){return t*(t*(t*e[0]+e[1])+e[2])+e[3]}var uf=function(){function t(t){if(void 0===t&&(t=null),this._curve=void 0,this.cachedKey=void 0,t instanceof Yl)this._curve=t;else{var e=new Yl;this._curve=e,e.preExtrapolation=2,e.postExtrapolation=1,t?e.assignSorted(t.map((function(t){return[t.time,{interpolationMode:2,value:t.value,leftTangent:t.inTangent,rightTangent:t.outTangent}]}))):e.assignSorted([[0,{interpolationMode:2,value:1}],[1,{interpolationMode:2,value:1}]])}this.cachedKey=new of}var e=t.prototype;return e.addKey=function(t){t?this._curve.addKeyFrame(t.time,{interpolationMode:2,value:t.value,leftTangent:t.inTangent,rightTangent:t.outTangent}):this._curve.clear()},e.evaluate_slow=function(t){return this._curve.evaluate(t)},e.evaluate=function(t){var e=this.cachedKey,i=this._curve,n=i.keyFramesCount-1,r=t,s=t<0?i.preExtrapolation:i.postExtrapolation,a=i.getKeyframeTime(0),o=i.getKeyframeTime(n);switch(s){case 2:r=fn(t-a,o-a)+a;break;case 3:r=_n(t-a,o-a)+a;break;default:r=Zi(t,a,o)}if(r>=e.time&&ri.getKeyframeTime(r))for(var s=0;s<3;s++){var a=r+s;if(a+1e)return a}else for(var o=0;o<3;o++){var h=r-o;if(h>=0&&i.getKeyframeTime(h-1)<=e)return h-1}for(var u,l=0,c=n;c-l>1;)u=Math.floor((l+c)/2),i.getKeyframeTime(u)>=e?c=u:l=u;return l},n(t,[{key:"_internalCurve",get:function(){return this._curve}},{key:"keyFrames",get:function(){return Array.from(this._curve.keyframes()).map((function(t){var e=t[0],i=t[1],n=new af;return n.time=e,n.value=i.value,n.inTangent=i.leftTangent,n.outTangent=i.rightTangent,n}))},set:function(t){this._curve.assignSorted(t.map((function(t){return[t.time,{interpolationMode:2,value:t.value,leftTangent:t.inTangent,rightTangent:t.outTangent}]})))}},{key:"preWrapMode",get:function(){return cf(this._curve.preExtrapolation)},set:function(t){this._curve.preExtrapolation=lf(t)}},{key:"postWrapMode",get:function(){return cf(this._curve.postExtrapolation)},set:function(t){this._curve.postExtrapolation=lf(t)}}]),t}();function lf(t){switch(t){default:case 0:case 1:case 8:return 1;case 22:return 3;case 2:return 2}}function cf(t){switch(t){default:case 0:case 1:return 8;case 3:return 22;case 2:return 2}}function ff(){var t=new Yl;return t.assignSorted([[0,{interpolationMode:2,value:1}],[1,{interpolationMode:2,value:1}]]),t}uf.defaultKF=[{time:0,value:1,inTangent:0,outTangent:0},{time:1,value:1,inTangent:0,outTangent:0}],Li.fastDefine("cc.AnimationCurve",uf,{_curve:null});var _f=er.multiplyScalar,df=er.add,pf=4294967295,mf=ir(),gf=ir(),yf=ir(),vf=ir(),bf=function(){function t(t,e){void 0===t&&(t=2),void 0===e&&(e=[]),this._type=void 0,this._knots=[],this._type=1024,this._mode=t;for(var i=0;i=this._knots.length?this._knots.push(i):this._knots.splice(t,0,i)},e.removeKnot=function(t){Ie(this._knots,t),this._knots.splice(t,1)},e.setKnot=function(t,e){Ie(this._knots,t),this._knots[t].set(e)},e.getKnot=function(t){return Ie(this._knots,t),this._knots[t]},e.getPoint=function(e,i){void 0===i&&(i=pf),e=Zi(e,0,1);var n=this.getSegments();if(0===n)return ir();if(i===pf){var r=1/n;i=Math.floor(e/r),e=e%r/r}var s=this._knots;if(i>=n)return ir(s[s.length-1]);switch(this._mode){case 0:return t.calcLinear(s[i],s[i+1],e);case 1:var a=4*i;return t.calcBezier(s[a],s[a+1],s[a+2],s[a+3],e);case 2:var o=i>0?s[i-1]:s[i],h=i+2e.priority?-1:0};var e=t.prototype;return e.init=function(){},e.update=function(){},e.postUpdate=function(){},e.destroy=function(){},n(t,[{key:"priority",get:function(){return this._priority},set:function(t){this._priority=t}},{key:"id",get:function(){return this._id},set:function(t){this._id=t}}]),t}());Ef.Priority=Pe({LOW:0,MEDIUM:100,HIGH:200,SCHEDULER:2147483648});var Of=new Bt("Scheduler"),kf=function(){function t(t,e,i,n){this.target=void 0,this.priority=void 0,this.paused=void 0,this.markedForDeletion=void 0,this.target=t,this.priority=e,this.paused=i,this.markedForDeletion=n}return t.get=function(e,i,n,r){var s=t._listEntries.pop();return s?(s.target=e,s.priority=i,s.paused=n,s.markedForDeletion=r):s=new t(e,i,n,r),s},t.put=function(e){t._listEntries.length<20&&(e.target=null,t._listEntries.push(e))},t}();kf._listEntries=[];var Rf=function(){function t(t,e,i,n){this.list=void 0,this.entry=void 0,this.target=void 0,this.callback=void 0,this.list=t,this.entry=e,this.target=i,this.callback=n}return t.get=function(e,i,n,r){var s=t._hashUpdateEntries.pop();return s?(s.list=e,s.entry=i,s.target=n,s.callback=r):s=new t(e,i,n,r),s},t.put=function(e){t._hashUpdateEntries.length<20&&(e.list=e.entry=e.target=e.callback=null,t._hashUpdateEntries.push(e))},t}();Rf._hashUpdateEntries=[];var Ff=function(){function t(t,e,i,n,r,s){this.timers=void 0,this.target=void 0,this.timerIndex=void 0,this.currentTimer=void 0,this.currentTimerSalvaged=void 0,this.paused=void 0,this.timers=t,this.target=e,this.timerIndex=i,this.currentTimer=n,this.currentTimerSalvaged=r,this.paused=s}return t.get=function(e,i,n,r,s,a){var o=t._hashTimerEntries.pop();return o?(o.timers=e,o.target=i,o.timerIndex=n,o.currentTimer=r,o.currentTimerSalvaged=s,o.paused=a):o=new t(e,i,n,r,s,a),o},t.put=function(e){t._hashTimerEntries.length<20&&(e.timers=e.target=e.currentTimer=null,t._hashTimerEntries.push(e))},t}();Ff._hashTimerEntries=[];var Lf=function(){function t(){this._lock=void 0,this._scheduler=void 0,this._elapsed=void 0,this._runForever=void 0,this._useDelay=void 0,this._timesExecuted=void 0,this._repeat=void 0,this._delay=void 0,this._interval=void 0,this._target=void 0,this._callback=void 0,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}t.get=function(){return t._timers.pop()||new t},t.put=function(e){t._timers.length<20&&!e._lock&&(e._scheduler=e._target=e._callback=null,t._timers.push(e))};var e=t.prototype;return e.initWithCallback=function(t,e,i,n,r,s){return this._lock=!1,this._scheduler=t,this._target=i,this._callback=e,this._timesExecuted=0,this._elapsed=-1,this._interval=n,this._delay=s,this._useDelay=this._delay>0,this._repeat=r,this._runForever=this._repeat===A.macro.REPEAT_FOREVER,!0},e.getInterval=function(){return this._interval},e.setInterval=function(t){this._interval=t},e.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()))},e.getCallback=function(){return this._callback},e.trigger=function(){this._target&&this._callback&&(this._lock=!0,this._callback.call(this._target,this._elapsed),this._lock=!1)},e.cancel=function(){this._scheduler&&this._callback&&this._target&&this._scheduler.unscheduleForTimer(this,this._target)},t}();Lf._timers=[];var Nf=t("cq",function(t){function e(){var e;return(e=t.call(this)||this)._timeScale=void 0,e._updatesNegList=void 0,e._updates0List=void 0,e._updatesPosList=void 0,e._hashForUpdates=void 0,e._hashForTimers=void 0,e._currentTarget=void 0,e._currentTargetSalvaged=void 0,e._updateHashLocked=void 0,e._arrayForTimers=void 0,e._timeScale=1,e._updatesNegList=[],e._updates0List=[],e._updatesPosList=[],e._hashForUpdates=Ut(!0),e._hashForTimers=Ut(!0),e._currentTarget=null,e._currentTargetSalvaged=!1,e._updateHashLocked=!1,e._arrayForTimers=[],e}s(e,t),e.enableForTarget=function(t){var e=!1;(t.uuid||t.id)&&(e=!0),e||(t.id=Of.getNewId())};var i=e.prototype;return i.setTimeScale=function(t){this._timeScale=t},i.getTimeScale=function(){return this._timeScale},i.update=function(t){var e,i,n,r,s;for(this._updateHashLocked=!0,1!==this._timeScale&&(t*=this._timeScale),e=0,n=(i=this._updatesNegList).length;e=s&&n.timerIndex--,void(0===r.length&&(this._currentTarget===n?this._currentTargetSalvaged=!0:this._removeHashElement(n)))}}}else ot(1510)}},i.unscheduleForTimer=function(t,e){var i=e.uuid||e.id,n=this._hashForTimers[i],r=n.timers;if(r&&0!==r.length)for(var s=r.length-1;s>=0;s--){var a=r[s];if(a===t)return r.splice(s,1),Lf.put(a),n.timerIndex>=s&&n.timerIndex--,void(0===r.length&&(this._currentTargetSalvaged=!0))}},i.unscheduleUpdate=function(t){if(t){var e=t.uuid||t.id;if(e){var i=this._hashForUpdates[e];null!=i&&i.entry&&(this._updateHashLocked?i.entry.markedForDeletion=!0:this._removeUpdateFromHash(i.entry))}else ot(1510)}},i.unscheduleAllForTarget=function(t){if(t){var e=t.uuid||t.id;if(e){var i=this._hashForTimers[e];if(null!=i&&i.timers){var n=i.timers;i.currentTimer&&n.indexOf(i.currentTimer)>-1&&!i.currentTimerSalvaged&&(i.currentTimerSalvaged=!0);for(var r=0,s=n.length;r=0;e--)(i=r[e]).target&&this.unscheduleAllForTarget(i.target);var s=0;if(t<0)for(e=0;e=t&&this.unscheduleUpdate(n.target),s===this._updatesNegList.length&&e++}if(t<=0)for(e=0;e=t&&this.unscheduleUpdate(n.target),s===this._updatesPosList.length&&e++}},i.isScheduled=function(t,e){ut(Boolean(t),1508),ut(Boolean(e),1509);var i=e.uuid||e.id;if(!i)return ot(1510),!1;var n=this._hashForTimers[i];if(!n)return!1;if(null==n.timers)return!1;for(var r=n.timers,s=0;s=t&&(r.paused=!0,s.push(r.target))}if(t<=0)for(i=0;i=t&&(r.paused=!0,s.push(r.target))}return s},i.resumeTargets=function(t){if(t)for(var e=0;e=4;){var a=255&s.call(t,r)|(255&s.call(t,++r))<<8|(255&s.call(t,++r))<<16|(255&s.call(t,++r))<<24;a=1540483477*(65535&a)+((1540483477*(a>>>16)&65535)<<16),n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16)^(a=1540483477*(65535&(a^=a>>>24))+((1540483477*(a>>>16)&65535)<<16)),i-=4,++r}switch(i){case 3:n^=(255&s.call(t,r+2))<<16;case 2:n^=(255&s.call(t,r+1))<<8;case 1:n=1540483477*(65535&(n^=255&s.call(t,r)))+((1540483477*(n>>>16)&65535)<<16)}return n=1540483477*(65535&(n^=n>>>13))+((1540483477*(n>>>16)&65535)<<16),(n^=n>>>15)>>>0}function Hf(t,e,i){if(Ie(t,e),Ie(t,i),e===i)return t;var n=t[e];if(e0&&!(t&t-1)}var ip=Math.ceil;function np(t,e,i,n){if(!Zd[t].isCompressed)return e*i*n*Zd[t].size;switch(t){case 56:case 57:case 58:case 59:case 72:case 73:case 74:case 75:case 79:case 80:case 85:case 86:case 88:return ip(e/4)*ip(i/4)*8*n;case 60:case 61:case 62:case 63:case 64:case 65:case 69:case 68:case 70:case 71:case 77:case 76:case 81:case 82:case 89:case 103:return ip(e/4)*ip(i/4)*16*n;case 66:case 67:return ip(e/4)*ip(i/4)*32*n;case 83:case 84:case 87:return ip(e/8)*ip(i/4)*8*n;case 90:case 104:return ip(e/5)*ip(i/4)*16*n;case 91:case 105:return ip(e/5)*ip(i/5)*16*n;case 92:case 106:return ip(e/6)*ip(i/5)*16*n;case 93:case 107:return ip(e/6)*ip(i/6)*16*n;case 94:case 108:return ip(e/8)*ip(i/5)*16*n;case 95:case 109:return ip(e/8)*ip(i/6)*16*n;case 96:case 110:return ip(e/8)*ip(i/8)*16*n;case 97:case 111:return ip(e/10)*ip(i/5)*16*n;case 98:case 112:return ip(e/10)*ip(i/6)*16*n;case 99:case 113:return ip(e/10)*ip(i/8)*16*n;case 100:case 114:return ip(e/10)*ip(i/10)*16*n;case 101:case 115:return ip(e/12)*ip(i/10)*16*n;case 102:case 116:return ip(e/12)*ip(i/12)*16*n;default:return 0}}function rp(t,e,i,n,r){for(var s=0,a=0;a>1,1),i=Math.max(i>>1,1);return s}var sp=[0,4,8,12,16,4,8,12,16,4,8,12,16,4,8,12,16,16,24,32,24,36,48,32,48,64,4,4,4,4,4,4];function ap(t){return sp[t]||0}function op(t){if(t.isCompressed)return Uint8Array;var e=t.size/t.count;switch(t.type){case 1:case 3:switch(e){case 1:default:return Uint8Array;case 2:return Uint16Array;case 4:return Uint32Array}case 2:case 4:switch(e){case 1:default:return Int8Array;case 2:return Int16Array;case 4:return Int32Array}case 6:return 2===e?Uint16Array:Float32Array}return Float32Array}function hp(t){switch(t){case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 69:case 68:case 70:case 71:case 66:case 67:case 72:case 73:case 74:case 75:case 79:case 80:case 77:case 76:case 81:case 82:case 85:case 86:case 88:case 89:case 103:return{width:4,height:4};case 83:case 84:case 87:return{width:8,height:4};case 90:case 104:return{width:5,height:4};case 91:case 105:return{width:5,height:5};case 92:case 106:return{width:6,height:5};case 93:case 107:return{width:6,height:6};case 94:case 108:return{width:8,height:5};case 95:case 109:return{width:8,height:6};case 96:case 110:return{width:8,height:8};case 97:case 111:return{width:10,height:5};case 98:case 112:return{width:10,height:6};case 99:case 113:return{width:10,height:8};case 100:case 114:return{width:10,height:10};case 101:case 115:return{width:12,height:10};case 102:case 116:return{width:12,height:12};default:return{width:1,height:1}}}function up(t,e){return ip(t/e)*e}var lp=Object.freeze({__proto__:null,API:Zf,AccessFlagBit:C_,Address:g_,Attribute:xd,AttributeName:Yd,BarrierType:z_,BindingMappingInfo:id,BlendFactor:b_,BlendOp:S_,BufferBarrierInfo:Od,BufferFlagBit:a_,BufferInfo:sd,BufferTextureCopy:Z_,BufferUsageBit:s_,BufferViewInfo:ad,ClearFlagBit:V_,Color:td,ColorAttachment:Ad,ColorMask:x_,CommandBufferInfo:zd,CommandBufferType:N_,ComparisonFunc:y_,CullMode:E_,DESCRIPTOR_BUFFER_TYPE:$d,DESCRIPTOR_DYNAMIC_TYPE:10,DESCRIPTOR_SAMPLER_TYPE:tp,DESCRIPTOR_STORAGE_BUFFER_TYPE:12,DRAW_INFO_SIZE:28,DepthStencilAttachment:Cd,DescriptorSetInfo:Ld,DescriptorSetLayoutBinding:Rd,DescriptorSetLayoutInfo:Fd,DescriptorType:R_,DeviceCaps:H_,DeviceInfo:rd,DeviceOptions:W_,DispatchInfo:hd,DrawInfo:od,DynamicStateFlagBit:O_,DynamicStates:qd,DynamicStencilStates:jd,Extent:X_,Feature:t_,Filter:m_,Format:e_,FormatFeatureBit:__,FormatInfo:Hd,FormatInfos:Zd,FormatSize:np,FormatSurfaceSize:rp,FormatType:i_,FramebufferInfo:kd,GFXObject:Xd,GeneralBarrierInfo:Pd,GetTypeSize:ap,IndirectBuffer:ud,InputAssemblerInfo:Td,InputState:Vd,IsPowerOf2:ep,LoadOp:T_,MarkerInfo:ed,MemoryAccessBit:o_,MemoryStatus:Wd,MemoryUsageBit:h_,ObjectType:Jf,Offset:j_,PassType:U_,PipelineBindPoint:B_,PipelineLayoutInfo:Nd,PolygonMode:M_,PrimitiveMode:I_,QueryPoolInfo:Gd,QueryType:L_,QueueInfo:Ud,QueueType:F_,Rect:q_,RenderPassInfo:Id,ResolveMode:D_,ResourceRange:Md,SampleCount:d_,SampleType:n_,SamplerInfo:fd,ShadeModel:P_,ShaderInfo:wd,ShaderStage:Sd,ShaderStageFlagBit:w_,Size:G_,Status:Qf,StencilFace:k_,StencilOp:v_,StoreOp:A_,SubpassDependency:Bd,SubpassInfo:Dd,SurfaceTransform:$f,SwapchainInfo:nd,TextureBarrierInfo:Ed,TextureBlit:Q_,TextureCopy:J_,TextureFlagBit:f_,TextureInfo:ld,TextureSubresLayers:Y_,TextureSubresRange:K_,TextureType:u_,TextureUsageBit:c_,TextureViewInfo:cd,Type:r_,Uniform:_d,UniformBlock:dd,UniformInputAttachment:bd,UniformSampler:md,UniformSamplerTexture:pd,UniformStorageBuffer:vd,UniformStorageImage:yd,UniformTexture:gd,ViewDimension:l_,Viewport:$_,VsyncMode:p_,alignTo:up,formatAlignment:hp,getTypedArrayConstructor:op}),cp=function(t){function e(){var e;return(e=t.call(this,2)||this)._usage=0,e._memUsage=0,e._size=0,e._stride=1,e._count=0,e._flags=0,e._isBufferView=!1,e}return s(e,t),n(e,[{key:"usage",get:function(){return this._usage}},{key:"memUsage",get:function(){return this._memUsage}},{key:"size",get:function(){return this._size}},{key:"stride",get:function(){return this._stride}},{key:"count",get:function(){return this._count}},{key:"flags",get:function(){return this._flags}}]),e}(Xd),fp=function(t){function e(){var e;return(e=t.call(this,13)||this)._queue=null,e._type=0,e._numDrawCalls=0,e._numInstances=0,e._numTris=0,e}return s(e,t),n(e,[{key:"type",get:function(){return this._type}},{key:"queue",get:function(){return this._queue}},{key:"numDrawCalls",get:function(){return this._numDrawCalls}},{key:"numInstances",get:function(){return this._numInstances}},{key:"numTris",get:function(){return this._numTris}}]),e}(Xd),_p=function(){function t(){this._gfxAPI=0,this._renderer="",this._vendor="",this._features=new Array(10),this._formatFeatures=new Array(117),this._queue=null,this._cmdBuff=null,this._numDrawCalls=0,this._numInstances=0,this._numTris=0,this._memoryStatus=new Wd,this._caps=new H_,this._bindingMappingInfo=new id,this._samplers=new Map,this._generalBarrierss=new Map,this._textureBarriers=new Map,this._bufferBarriers=new Map,this._swapchainFormat=35}var e=t.prototype;return e.hasFeature=function(t){return this._features[t]},e.getFormatFeatures=function(t){return this._formatFeatures[t]},e.enableAutoBarrier=function(){},e.getMaxSampleCount=function(){return 1},n(t,[{key:"gfxAPI",get:function(){return this._gfxAPI}},{key:"queue",get:function(){return this._queue}},{key:"commandBuffer",get:function(){return this._cmdBuff}},{key:"swapchainFormat",get:function(){return this._swapchainFormat}},{key:"renderer",get:function(){return this._renderer}},{key:"vendor",get:function(){return this._vendor}},{key:"numDrawCalls",get:function(){return this._numDrawCalls}},{key:"numInstances",get:function(){return this._numInstances}},{key:"numTris",get:function(){return this._numTris}},{key:"memoryStatus",get:function(){return this._memoryStatus}},{key:"capabilities",get:function(){return this._caps}},{key:"bindingMappingInfo",get:function(){return this._bindingMappingInfo}}]),t}();_p.canvas=void 0;var dp=function(){function t(t){this._texture2D=null,this._texture3D=null,this._textureCube=null,this._texture2DArray=null;var e=t.capabilities,i=new Uint8Array(64);if(i.fill(255),e.maxTextureSize>=2){this._texture2D=t.createTexture(new ld(1,12,35,2,2,0));var n=new Z_(0,0,0,new j_(0,0,0),new X_(2,2,1));t.copyBuffersToTexture([i],this._texture2D,[n])}if(e.maxTextureSize>=2){this._textureCube=t.createTexture(new ld(3,12,35,2,2,0,6));var r=new Z_(0,0,0,new j_(0,0,0),new X_(2,2,1));t.copyBuffersToTexture([i],this._textureCube,[r]),r.texSubres.baseArrayLayer=1,t.copyBuffersToTexture([i],this._textureCube,[r]),r.texSubres.baseArrayLayer=2,t.copyBuffersToTexture([i],this._textureCube,[r]),r.texSubres.baseArrayLayer=3,t.copyBuffersToTexture([i],this._textureCube,[r]),r.texSubres.baseArrayLayer=4,t.copyBuffersToTexture([i],this._textureCube,[r]),r.texSubres.baseArrayLayer=5,t.copyBuffersToTexture([i],this._textureCube,[r])}if(e.max3DTextureSize>=2){this._texture3D=t.createTexture(new ld(2,12,35,2,2,0,1,1,1,2));var s=new Z_(0,0,0,new j_(0,0,0),new X_(2,2,2),new Y_(0,0,1));t.copyBuffersToTexture([i],this._texture3D,[s])}if(e.maxArrayTextureLayers>=2){this._texture2DArray=t.createTexture(new ld(5,12,35,2,2,0,2));var a=new Z_(0,0,0,new j_(0,0,0),new X_(2,2,1),new Y_(0,0,1));t.copyBuffersToTexture([i],this._texture2DArray,[a]),a.texSubres.baseArrayLayer=1,t.copyBuffersToTexture([i],this._texture2DArray,[a])}}return t.prototype.getTexture=function(t){switch(t){case 1:return this._texture2D;case 2:return this._texture3D;case 3:return this._textureCube;case 5:return this._texture2DArray;default:return null}},t}(),pp=function(t){function e(){var e;return(e=t.call(this,1)||this)._transform=0,e._colorTexture=null,e._depthStencilTexture=null,e}return s(e,t),n(e,[{key:"colorTexture",get:function(){return this._colorTexture}},{key:"depthStencilTexture",get:function(){return this._depthStencilTexture}},{key:"surfaceTransform",get:function(){return this._transform}},{key:"width",get:function(){return this._colorTexture.width}},{key:"height",get:function(){return this._colorTexture.height}}]),e}(Xd),mp=function(t){function e(){var e;return(e=t.call(this,5)||this)._renderPass=null,e._colorTextures=[],e._depthStencilTexture=null,e._width=0,e._height=0,e}return s(e,t),n(e,[{key:"renderPass",get:function(){return this._renderPass}},{key:"colorTextures",get:function(){return this._colorTextures}},{key:"depthStencilTexture",get:function(){return this._depthStencilTexture}},{key:"width",get:function(){var t,e;return this.colorTextures.length>0?null!==(t=null==(e=this.colorTextures[0])?void 0:e.width)&&void 0!==t?t:this._width:this.depthStencilTexture?this.depthStencilTexture.width:this._width}},{key:"height",get:function(){var t,e;return this.colorTextures.length>0?null!==(t=null==(e=this.colorTextures[0])?void 0:e.height)&&void 0!==t?t:this._height:this.depthStencilTexture?this.depthStencilTexture.height:this._height}},{key:"needRebuild",get:function(){return!1}}]),e}(Xd),gp=function(t){function e(){var e;return(e=t.call(this,12)||this)._attributes=[],e._attributesHash=0,e._vertexBuffers=[],e._indexBuffer=null,e._indirectBuffer=null,e._drawInfo=new od,e}s(e,t);var i=e.prototype;return i.getVertexBuffer=function(t){return void 0===t&&(t=0),t=0){var o=this._colorInfos[i.depthStencil];t+="ds,"+o.format+","+o.sampleCount}}else{t+="ca";for(var h=0;h>2&3,e.mipFilter=t>>4&3,e.addressU=t>>6&3,e.addressV=t>>8&3,e.addressW=t>>10&3,e.maxAnisotropy=t>>12&31,e.cmpFunc=t>>17&7,e},n(e,[{key:"info",get:function(){return this._info}},{key:"hash",get:function(){return this._hash}}]),e}(Xd),Mp=function(t){function e(){var e;return(e=t.call(this,7)||this)._name="",e._stages=[],e._attributes=[],e._blocks=[],e._samplers=[],e}return s(e,t),n(e,[{key:"name",get:function(){return this._name}},{key:"attributes",get:function(){return this._attributes}},{key:"blocks",get:function(){return this._blocks}},{key:"samplers",get:function(){return this._samplers}},{key:"stages",get:function(){return this._stages}}]),e}(Xd),Pp=function(t){function e(){var e;return(e=t.call(this,3)||this)._info=new ld,e._viewInfo=new cd,e._isPowerOf2=!1,e._isTextureView=!1,e._size=0,e}return s(e,t),e.getLevelCount=function(t,e){return Math.floor(Math.log2(Math.max(t,e)))},n(e,[{key:"type",get:function(){return this._info.type}},{key:"usage",get:function(){return this._info.usage}},{key:"format",get:function(){return this._info.format}},{key:"width",get:function(){return this._info.width}},{key:"height",get:function(){return this._info.height}},{key:"depth",get:function(){return this._info.depth}},{key:"layerCount",get:function(){return this._info.layerCount}},{key:"levelCount",get:function(){return this._info.levelCount}},{key:"samples",get:function(){return this._info.samples}},{key:"flags",get:function(){return this._info.flags}},{key:"size",get:function(){return this._size}},{key:"info",get:function(){return this._info}},{key:"viewInfo",get:function(){return this._viewInfo}},{key:"isTextureView",get:function(){return this._isTextureView}}]),e}(Xd),Ep=function(t){function e(e,i){var n;return(n=t.call(this,16)||this)._info=new Pd,n._hash=0,n._info.copy(e),n._hash=i,n}return s(e,t),e.computeHash=function(t){return Gf(t.prevAccesses+" "+t.nextAccesses+" "+t.type,666)},n(e,[{key:"info",get:function(){return this._info}},{key:"hash",get:function(){return this._hash}}]),e}(Xd),Op=function(t){function e(e,i){var n;return(n=t.call(this,17)||this)._info=new Ed,n._hash=0,n._info.copy(e),n._hash=i,n}return s(e,t),e.computeHash=function(t){var e=t.prevAccesses+" "+t.nextAccesses;return e+=t.type,e+=t.range.mipLevel,e+=t.range.levelCount,e+=t.range.firstSlice,e+=t.range.numSlices,e+=t.range.basePlane,e+=t.range.planeCount,e+=t.discardContents,e+=t.srcQueue?t.srcQueue.type:0,Gf(e+=t.dstQueue?t.dstQueue.type:0,666)},n(e,[{key:"info",get:function(){return this._info}},{key:"hash",get:function(){return this._hash}}]),e}(Xd),kp=function(t){function e(e,i){var n;return(n=t.call(this,18)||this)._info=new Od,n._hash=0,n._info.copy(e),n._hash=i,n}return s(e,t),e.computeHash=function(t){var e=t.prevAccesses+" "+t.nextAccesses;return e+=t.type,e+=t.offset,e+=t.size,e+=t.discardContents,e+=t.srcQueue?t.srcQueue.type:0,Gf(e+=t.dstQueue?t.dstQueue.type:0,666)},n(e,[{key:"info",get:function(){return this._info}},{key:"hash",get:function(){return this._hash}}]),e}(Xd),Rp={Device:_p,Swapchain:pp,Buffer:cp,Texture:Pp,Sampler:Ip,Shader:Mp,InputAssembler:gp,RenderPass:Bp,Framebuffer:mp,DescriptorSet:yp,DescriptorSetLayout:vp,PipelineLayout:bp,PipelineState:Cp,CommandBuffer:fp,Queue:Dp,GeneralBarrier:Ep,TextureBarrier:Op,BufferBarrier:kp,RasterizerState:Sp,BlendState:Tp,BlendTarget:wp,DepthStencilState:xp,PipelineStateInfo:Ap};Object.assign(Rp,lp),T.gfx=Rp;var Fp={GFXDevice:!0,GFXBuffer:!0,GFXTexture:!0,GFXSampler:!0,GFXShader:!0,GFXInputAssembler:!0,GFXRenderPass:!0,GFXFramebuffer:!0,GFXPipelineState:!0,GFXCommandBuffer:!0,GFXQueue:!0,GFXObjectType:!0,GFXObject:!1,GFXAttributeName:!0,GFXType:!0,GFXFormat:!0,GFXBufferUsageBit:!0,GFXMemoryUsageBit:!0,GFXBufferFlagBit:!0,GFXBufferAccessBit:"MemoryAccessBit",GFXPrimitiveMode:!0,GFXPolygonMode:!0,GFXShadeModel:!0,GFXCullMode:!0,GFXComparisonFunc:!0,GFXStencilOp:!0,GFXBlendOp:!0,GFXBlendFactor:!0,GFXColorMask:!0,GFXFilter:!0,GFXAddress:!0,GFXTextureType:!0,GFXTextureUsageBit:!0,GFXSampleCount:!0,GFXTextureFlagBit:!0,GFXShaderStageFlagBit:!0,GFXDescriptorType:!0,GFXCommandBufferType:!0,GFXLoadOp:!0,GFXStoreOp:!0,GFXPipelineBindPoint:!0,GFXDynamicStateFlagBit:!0,GFXStencilFace:!0,GFXQueueType:!0,GFXRect:!0,GFXViewport:!0,GFXColor:!0,GFXClearFlag:!0,GFXOffset:!0,GFXExtent:!0,GFXTextureSubres:"TextureSubresLayers",GFXTextureCopy:!0,GFXBufferTextureCopy:!0,GFXFormatType:!0,GFXFormatInfo:!0,GFXMemoryStatus:!0,GFXFormatInfos:!0,GFXFormatSize:!0,GFXFormatSurfaceSize:!0,GFXGetTypeSize:!0,getTypedArrayConstructor:!1};for(var Lp in Fp){var Np=Fp[Lp];!0===Np?Np=Lp.slice(3):!1===Np&&(Np=Lp),dt(T,"cc",[{name:Lp,newName:Np,target:T.gfx,targetName:"cc.gfx"}])}pt(T,"cc",[{name:"GFX_MAX_VERTEX_ATTRIBUTES"},{name:"GFX_MAX_TEXTURE_UNITS"},{name:"GFX_MAX_ATTACHMENTS"},{name:"GFX_MAX_BUFFER_BINDINGS"},{name:"GFXTextureLayout"}]),pt(t_,"Feature",[{name:"COLOR_FLOAT",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.R32F) & FormatFeatureBit.RENDER_TARGET;"},{name:"COLOR_HALF_FLOAT",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.R16F) & FormatFeatureBit.RENDER_TARGET;"},{name:"TEXTURE_FLOAT",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = (device.getFormatFeatures(Format.R32F) & (FormatFeatureBit.RENDER_TARGET | FormatFeatureBit.SAMPLED_TEXTURE)) === (FormatFeatureBit.RENDER_TARGET | FormatFeatureBit.SAMPLED_TEXTURE);"},{name:"TEXTURE_HALF_FLOAT",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = (device.getFormatFeatures(Format.R16F) & (FormatFeatureBit.RENDER_TARGET | FormatFeatureBit.SAMPLED_TEXTURE)) === (FormatFeatureBit.RENDER_TARGET | FormatFeatureBit.SAMPLED_TEXTURE);"},{name:"TEXTURE_FLOAT_LINEAR",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.R32F) & FormatFeatureBit.LINEAR_FILTER;"},{name:"TEXTURE_HALF_FLOAT_LINEAR",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.R16F) & FormatFeatureBit.LINEAR_FILTER;"},{name:"FORMAT_R11G11B10F",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.R11G11B10F) !== FormatFeatureBit.NONE;"},{name:"FORMAT_SRGB",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.SRGB8) !== FormatFeatureBit.NONE;"},{name:"FORMAT_ETC1",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.ETC_RGB8) !== FormatFeatureBit.NONE;"},{name:"FORMAT_ETC2",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.ETC2_RGB8) !== FormatFeatureBit.NONE;"},{name:"FORMAT_DXT",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.BC1) !== FormatFeatureBit.NONE;"},{name:"FORMAT_PVRTC",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.PVRTC_RGB2) !== FormatFeatureBit.NONE;"},{name:"FORMAT_ASTC",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.ASTC_RGBA_4x4) !== FormatFeatureBit.NONE;"},{name:"FORMAT_RGB8",suggest:"Please use device.getFormatFeatures() instead, like: \nlet isSupported = device.getFormatFeatures(Format.RGB8) !== FormatFeatureBit.NONE;"}]),pt(Ad.prototype,"ColorAttachment",[{name:"beginAccesses",suggest:"Please assign to ColorAttachment.barrier instead"},{name:"endAccesses",suggest:"Please assign to ColorAttachment.barrier instead"}]),pt(Cd.prototype,"DepthStencilAttachment",[{name:"beginAccesses",suggest:"Please assign to DepthStencilAttachment.barrier instead"},{name:"endAccesses",suggest:"Please assign to DepthStencilAttachment.barrier instead"}]),dt(_p.prototype,"Device",[{name:"getGlobalBarrier",newName:"getGeneralBarrier"}]);var Vp=function(){function t(){this.initialized=!1,this._gfxDevice=void 0,this._canvas=null,this._swapchain=void 0,this._renderType=-1,this._deviceInitialized=!1}var e=t.prototype;return e._tryInitializeWebGPUDevice=function(t,e){var i=this;return this._deviceInitialized?Promise.resolve(!0):t?(this._gfxDevice=new t,new Promise((function(t,n){i._gfxDevice.initialize(e).then((function(e){i._deviceInitialized=e,t(e)})).catch((function(t){n(t)}))}))):Promise.resolve(!1)},e._tryInitializeDeviceSync=function(t,e){return!!this._deviceInitialized||(t&&(this._gfxDevice=new t,this._deviceInitialized=this._gfxDevice.initialize(e)),this._deviceInitialized)},e.init=function(t,e){var i=this;if(this.initialized)return!0;var n=Ve.querySettings(Le.Category.RENDERING,"renderMode");this._canvas=t,this._canvas&&(this._canvas.oncontextmenu=function(){return!1}),this._renderType=this._determineRenderType(n),this._deviceInitialized=!1;var r=new rd(e);if(1===this._renderType||2===this._renderType){var s=!!globalThis.WebGL2RenderingContext;if(globalThis.navigator.userAgent.toLowerCase(),oh.browserType===Io.UC&&(s=!1),_p.canvas=t,2===this._renderType&&T.WebGPUDevice)return new Promise((function(t,e){i._tryInitializeWebGPUDevice(T.WebGPUDevice,r).then((function(e){i._initSwapchain(),t(e)})).catch((function(t){e(t)}))}));s&&T.WebGL2Device&&this._tryInitializeDeviceSync(T.WebGL2Device,r),T.WebGLDevice&&this._tryInitializeDeviceSync(T.WebGLDevice,r),T.EmptyDevice&&this._tryInitializeDeviceSync(T.EmptyDevice,r),this._initSwapchain()}else 4===this._renderType&&T.EmptyDevice&&(this._tryInitializeDeviceSync(T.EmptyDevice,r),this._initSwapchain());return!!this._gfxDevice||(ot(16337),this._renderType=-1,!1)},e._initSwapchain=function(){var t=new nd(1,this._canvas),e=ah.windowSize;t.width=e.width,t.height=e.height,this._swapchain=this._gfxDevice.createSwapchain(t)},e._supportWebGPU=function(){return"gpu"in globalThis.navigator},e._determineRenderType=function(t){("number"!=typeof t||t>4||t<0)&&(t=0);var e=0,i=!1;if(1===t?(e=0,i=!0):0===t||4===t?(e=this._supportWebGPU()?2:1,i=!0):2===t?(e=1,i=!0):3===t&&(e=4,i=!0),!i)throw new Error(ct(3820,t));return e},n(t,[{key:"gfxDevice",get:function(){return this._gfxDevice}},{key:"swapchain",get:function(){return this._swapchain}}]),t}(),zp=new Vp;t("aH",Object.freeze({__proto__:null,API:Zf,AccessFlagBit:C_,Address:g_,Attribute:xd,AttributeName:Yd,BarrierType:z_,BindingMappingInfo:id,BlendFactor:b_,BlendOp:S_,BlendState:Tp,BlendTarget:wp,Buffer:cp,BufferBarrierInfo:Od,BufferFlagBit:a_,BufferInfo:sd,BufferTextureCopy:Z_,BufferUsageBit:s_,BufferViewInfo:ad,ClearFlagBit:V_,Color:td,ColorAttachment:Ad,ColorMask:x_,CommandBuffer:fp,CommandBufferInfo:zd,CommandBufferType:N_,ComparisonFunc:y_,CullMode:E_,DESCRIPTOR_BUFFER_TYPE:$d,DESCRIPTOR_DYNAMIC_TYPE:10,DESCRIPTOR_SAMPLER_TYPE:tp,DESCRIPTOR_STORAGE_BUFFER_TYPE:12,DRAW_INFO_SIZE:28,DefaultResource:dp,DepthStencilAttachment:Cd,DepthStencilState:xp,DescriptorSet:yp,DescriptorSetInfo:Ld,DescriptorSetLayout:vp,DescriptorSetLayoutBinding:Rd,DescriptorSetLayoutInfo:Fd,DescriptorType:R_,Device:_p,DeviceCaps:H_,DeviceInfo:rd,DeviceManager:Vp,DeviceOptions:W_,DispatchInfo:hd,DrawInfo:od,DynamicStateFlagBit:O_,DynamicStates:qd,DynamicStencilStates:jd,Extent:X_,Feature:t_,Filter:m_,Format:e_,FormatFeatureBit:__,FormatInfo:Hd,FormatInfos:Zd,FormatSize:np,FormatSurfaceSize:rp,FormatType:i_,Framebuffer:mp,FramebufferInfo:kd,GFXObject:Xd,GeneralBarrier:Ep,GeneralBarrierInfo:Pd,GetTypeSize:ap,IndirectBuffer:ud,InputAssembler:gp,InputAssemblerInfo:Td,InputState:Vd,IsPowerOf2:ep,LegacyRenderMode:{AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,WEBGPU:4},LoadOp:T_,MarkerInfo:ed,MemoryAccessBit:o_,MemoryStatus:Wd,MemoryUsageBit:h_,ObjectType:Jf,Offset:j_,PassType:U_,PipelineBindPoint:B_,PipelineLayout:bp,PipelineLayoutInfo:Nd,PipelineState:Cp,PipelineStateInfo:Ap,PolygonMode:M_,PrimitiveMode:I_,QueryPoolInfo:Gd,QueryType:L_,Queue:Dp,QueueInfo:Ud,QueueType:F_,RasterizerState:Sp,Rect:q_,RenderPass:Bp,RenderPassInfo:Id,RenderType:{UNKNOWN:-1,CANVAS:0,WEBGL:1,WEBGPU:2,OPENGL:3,HEADLESS:4},ResolveMode:D_,ResourceRange:Md,SampleCount:d_,SampleType:n_,Sampler:Ip,SamplerInfo:fd,ShadeModel:P_,Shader:Mp,ShaderInfo:wd,ShaderStage:Sd,ShaderStageFlagBit:w_,Size:G_,Status:Qf,StencilFace:k_,StencilOp:v_,StoreOp:A_,SubpassDependency:Bd,SubpassInfo:Dd,SurfaceTransform:$f,Swapchain:pp,SwapchainInfo:nd,Texture:Pp,TextureBarrier:Op,TextureBarrierInfo:Ed,TextureBlit:Q_,TextureCopy:J_,TextureFlagBit:f_,TextureInfo:ld,TextureSubresLayers:Y_,TextureSubresRange:K_,TextureType:u_,TextureUsageBit:c_,TextureViewInfo:cd,Type:r_,Uniform:_d,UniformBlock:dd,UniformInputAttachment:bd,UniformSampler:md,UniformSamplerTexture:pd,UniformStorageBuffer:vd,UniformStorageImage:yd,UniformTexture:gd,ViewDimension:l_,Viewport:$_,VsyncMode:p_,alignTo:up,deviceManager:zp,formatAlignment:hp,getTypedArrayConstructor:op}));var Up=new Ln;function Gp(t,e,i,n){var r=i.chunk,s=i.data,a=r.vb,o=i.vertexCount,h=t.worldMatrix,u=h.m00,l=h.m01,c=h.m02,f=h.m03,_=h.m04,d=h.m05,p=h.m06,m=h.m07,g=h.m12,y=h.m13,v=h.m14,b=h.m15;Up.set(n.r/255,n.g/255,n.b/255,n.a/255);for(var S=0,x=0;x>>0;else if(n.size/n.count==4)for(var c=o+3;c>2}}var Wp=function(){function t(t){this._map=null,this._count=0,t?(this._map=t,this._count=Object.keys(t).length):(this._map=Ut(!0),this._count=0)}var e=t.prototype;return e.add=function(t,e){return t in this._map||this._count++,this._map[t]=e},e.get=function(t){return this._map[t]},e.has=function(t){return t in this._map},e.remove=function(t){var e=this._map[t];return t in this._map&&(delete this._map[t],this._count--),e},e.clear=function(){0!==this._count&&(this._map=Ut(!0),this._count=0)},e.forEach=function(t){for(var e in this._map)t(this._map[e],e)},e.find=function(t){for(var e in this._map)if(t(this._map[e],e))return this._map[e];return null},e.destroy=function(){this._map=null},n(t,[{key:"map",get:function(){return this._map}},{key:"count",get:function(){return this._count}}]),t}(),jp=function(){function t(e,i){this.id=t._pipelineId++,this.name="",this.pipes=[],this.name=e;for(var n=0,r=i.length;nthis.pipes.length?(st(4921),this):(this.pipes.splice(e,0,t),this)},e.append=function(t){return this.pipes.push(t),this},e.remove=function(t){return this.pipes.splice(t,1),this},e.sync=function(t){var e=this.pipes;if(0===e.length)return null;t.isFinished=!1;for(var i=0,n=e.length;i>2],rm[sm[n++]]=im[(3&r)<<2|s>>4],rm[sm[n++]]=im[15&s]}return t.replace(e,rm.join(""))}var om=/.*[/\\][0-9a-fA-F]{2}[/\\]([0-9a-fA-F-@]{8,}).*/;function hm(t){var e=om.exec(t);return e?e[1]:""}function um(t,e){(e=e||Object.create(null)).__isNative__=e.isNative,e.nativeExt&&(e.ext=e.nativeExt);var i=Kp.find((function(e){return!!e.getAssetInfo(t)}));return i&&(e.bundle=i.name),fm(t,e)}function lm(t){return!!t&&(t instanceof T.SceneAsset||t instanceof T.Scene)}function cm(t){return t&&(46===t.charCodeAt(0)&&47===t.charCodeAt(1)?t=t.slice(2):47===t.charCodeAt(0)&&(t=t.slice(1))),t}function fm(t,e){var i=em.create({input:t,options:e}),n=[];try{for(var r,s=p(Zp.sync(i));!(r=s()).done;){var a=r.value,o=a.url;a.recycle(),n.push(o)}}catch(t){for(var h,u=p(i.output);!(h=u()).done;)h.value.recycle();Y(t.message,t.stack)}return i.recycle(),n.length>1?n:n[0]}var _m,dm,pm,mm,gm,ym,vm=Object.freeze({__proto__:null,decodeUuid:am,getUrlWithUuid:um,getUuidFromURL:hm,isScene:lm,normalize:cm,transform:fm}),bm=hu,Sm=$h,xm=t("d_",Kh("cc.Asset")((dm=function(t){function e(e){var i;return(i=t.call(this,e)||this).loaded=!0,i._native=pm&&pm(),i._nativeUrl="",i._file=null,i._ref=0,Object.defineProperty(f(i),"_uuid",{value:"",writable:!0}),i}s(e,t),e.deserialize=function(t){return T.deserialize(t)};var i=e.prototype;return i.toString=function(){return this.nativeUrl},i.serialize=function(){},i._setRawAsset=function(t,e){void 0===e&&(e=!0),this._native=!1!==e?t||"":"/"+t},i.addRef=function(){return this._ref++,this},i.decRef=function(t){return void 0===t&&(t=!0),this._ref>0&&this._ref--,t&&T.assetManager.getReleaseManager().tryRelease(this),this},i.onLoaded=function(){},i.initDefault=function(t){t&&(this._uuid=t),this.isDefault=!0},i.validate=function(){return!0},i.destroy=function(){return J(ct(12101,this._uuid)),t.prototype.destroy.call(this)},n(e,[{key:"nativeUrl",get:function(){if(!this._nativeUrl){if(!this._native)return"";var t=this._native;if(47===t.charCodeAt(0))return t.slice(1);46===t.charCodeAt(0)?this._nativeUrl=um(this._uuid,{nativeExt:t,isNative:!0}):this._nativeUrl=um(this._uuid,{__nativeName__:t,nativeExt:Go(t),isNative:!0})}return this._nativeUrl}},{key:"uuid",get:function(){return this._uuid}},{key:"_nativeAsset",get:function(){return this._file},set:function(t){this._file=t}},{key:"nativeAsset",get:function(){return this._file}},{key:"_nativeDep",get:function(){if(this._native)return{__isNative__:!0,uuid:this._uuid,ext:this._native}}},{key:"refCount",get:function(){return this._ref}}]),e}(Do(po)),pm=Vh(dm.prototype,"_native",[bm],(function(){return""})),v(dm.prototype,"_nativeAsset",[Sm],Object.getOwnPropertyDescriptor(dm.prototype,"_nativeAsset"),dm.prototype),_m=dm))||_m);xm.prototype.createNode=null,T.Asset=xm;var wm=1346981187,Tm=Pe({PVR:0,PKM:1,ASTC:2});function Am(t,e){return 4===t?89:5===t?4===e?90:91:6===t?5===e?92:93:8===t?5===e?94:6===e?95:96:10===t?5===e?97:6===e?98:8===e?99:100:10===e?101:102}function Cm(t,e){return t[e]<<8|t[e+1]}function Dm(t){return!!(oh.hasFeature(oh.Feature.IMAGE_BITMAP)&&t instanceof ImageBitmap)}var Bm,Im,Mm,Pm,Em,Om,km,Rm,Fm,Lm,Nm,Vm=t("e4",Kh("cc.ImageAsset")((ym=function(t){s(i,t),i.mergeCompressedTextureMips=function(t){var e=new Uint8Array(0);try{for(var i,n=8+4*t.length,r=0,s=p(t);!(i=s()).done;)r+=i.value.byteLength;r+=n,e=new Uint8Array(r);var a=new DataView(e.buffer,e.byteOffset,e.byteLength);a.setUint32(0,wm,!0),a.setUint32(4,t.length,!0);for(var o=n,h=0;h0){var u=new Uint8Array(s,o,h),l=new Uint8Array(r._data.byteLength+u.byteLength);l.set(r._data),l.set(u,r._data.byteLength),r._data=l,r.mipmapLevelDataSize[e]=h}else r._data=new Uint8Array(s,o);r.width=e>0?r.width:a[7],r.height=e>0?r.height:a[6]}else{if(559044176!==a[11])throw new Error("Invalid magic number in PVR header");var c=i+a[0],f=n-a.byteLength;if(n>0){var _=new Uint8Array(s,c,f),d=new Uint8Array(r._data.byteLength+_.byteLength);d.set(r._data),d.set(_,r._data.byteLength),r._data=d,r.mipmapLevelDataSize[e]=f}else r._data=new Uint8Array(s,c);r.width=e>0?r.width:a[1],r.height=e>0?r.height:a[2]}},i.parsePKMTexture=function(t,e,i,n,r){var s=t instanceof ArrayBuffer?t:t.buffer,a=new Uint8Array(s,i,16),o=Cm(a,6);if(0!==o&&1!==o&&3!==o)throw new Error("Invalid magic number in ETC header");var h=i+16,u=n-16;if(n>0){var l=new Uint8Array(s,h,u),c=new Uint8Array(r._data.byteLength+l.byteLength);c.set(r._data),c.set(l,r._data.byteLength),r._data=c,r.mipmapLevelDataSize[e]=u}else r._data=new Uint8Array(s,h);r.width=e>0?r.width:Cm(a,12),r.height=e>0?r.height:Cm(a,14)},i.parseASTCTexture=function(t,e,i,n,r){var s=t instanceof ArrayBuffer?t:t.buffer,a=new Uint8Array(s,i,16);if(1554098963!==a[0]+(a[1]<<8)+(a[2]<<16)+(a[3]<<24))throw new Error("Invalid magic number in ASTC header");var o=a[4],h=a[5],u=a[6];if((o<3||o>6||h<3||h>6||u<3||u>6)&&(o<4||7===o||9===o||11===o||o>12||h<4||7===h||9===h||11===h||h>12||1!==u))throw new Error("Invalid block number in ASTC header");var l=Am(o,h),c=i+16,f=n-16;if(n>0){var _=new Uint8Array(s,c,f),d=new Uint8Array(r._data.byteLength+_.byteLength);d.set(r._data),d.set(_,r._data.byteLength),r._data=d,r.mipmapLevelDataSize[e]=f}else r._data=new Uint8Array(s,c);r.width=e>0?r.width:a[7]+(a[8]<<8)+(a[9]<<16),r.height=e>0?r.height:a[10]+(a[11]<<8)+(a[12]<<16),r.format=l};var e=i.prototype;function i(e){var i;return(i=t.call(this)||this)._nativeData=void 0,i._exportedExts=void 0,i._format=35,i._width=0,i._height=0,i._nativeData={_data:null,width:0,height:0,format:0,_compressed:!1,mipmapLevelDataSize:[]},void 0!==e&&i.reset(e),i}return e.extractMipmap0=function(){if(this.mipmapLevelDataSize&&this.mipmapLevelDataSize.length>0){var t=this.mipmapLevelDataSize[0],e=this.data,n=new i({_data:new Uint8Array(e.buffer,0,t),_compressed:!0,width:this.width,height:this.height,format:this.format,mipmapLevelDataSize:[]});return n._uuid=""+this._uuid,n}return this},e.extractMipmaps=function(){var t=[];if(this.mipmapLevelDataSize&&this.mipmapLevelDataSize.length>0)for(var e,n=this.mipmapLevelDataSize,r=this.data,s=0,a=this.height,o=this.width,h=p(n);!(e=h()).done;){var u=e.value,l=new i({_data:new Uint8Array(r.buffer,s,u),_compressed:!0,width:o,height:a,format:this.format,mipmapLevelDataSize:[]});s+=u,l._uuid=""+this._uuid,o=Math.max(o>>1,1),a=Math.max(a>>1,1),t.push(l)}else t.push(this);return t},e.reset=function(t){Dm(t)||t instanceof HTMLElement?this._nativeData=t:(this._nativeData=t,this._format=t.format)},e.destroy=function(){if(this.data&&this.data instanceof HTMLImageElement)this.data.src="",this._setRawAsset("");else if(Dm(this.data)){var e;null==(e=this.data)||e.close()}return t.prototype.destroy.call(this)},e._serialize=function(){},e._deserialize=function(t){var e="";"string"==typeof t?e=t:(this._width=t.w,this._height=t.h,e=t.fmt);for(var n,r=zp.gfxDevice,s=e.split("_"),a=Number.MAX_VALUE,o=this._format,h="",u=ze.SUPPORT_TEXTURE_FORMATS,l=p(s);!(n=l()).done;){var c=n.value.split("@"),f=parseInt(c[0],void 0),_=i.extnames[f]||c[0],d=u.indexOf(_);if(-1!==d&&d=72&&this._format<=102||this._format>=1024&&this._format<=1026}},{key:"mipmapLevelDataSize",get:function(){return this._nativeData.mipmapLevelDataSize}},{key:"url",get:function(){return this.nativeUrl}}]),i}(xm),ym.extnames=[".png",".jpg",".jpeg",".bmp",".webp",".pvr",".pkm",".astc"],ym._sharedPlaceHolderCanvas=null,v((gm=ym).prototype,"_nativeAsset",[Uu],Object.getOwnPropertyDescriptor(gm.prototype,"_nativeAsset"),gm.prototype),mm=gm))||mm);T.ImageAsset=Vm,ke(e_);var zm,Um,Gm,Hm=new Bt("Tex"),Wm=Kh("cc.TextureBase")((Nm=function(t){function e(e){var i;return(i=t.call(this,e)||this)._format=Mm&&Mm(),i._minFilter=Pm&&Pm(),i._magFilter=Em&&Em(),i._mipFilter=Om&&Om(),i._wrapS=km&&km(),i._wrapT=Rm&&Rm(),i._wrapR=Fm&&Fm(),i._anisotropy=Lm&&Lm(),i._width=1,i._height=1,i._samplerInfo=new fd,i._gfxSampler=null,i._gfxDevice=null,i._textureHash=0,i._id=Hm.getNewId(),i._gfxDevice=i._getGFXDevice(),i._textureHash=Gf(i._id,666),i}s(e,t);var i=e.prototype;return i.getId=function(){return this._id},i.getPixelFormat=function(){return this._format},i.getAnisotropy=function(){return this._anisotropy},i.setWrapMode=function(t,e,i){void 0===i&&(i=t),this._wrapS=t,this._samplerInfo.addressU=t,this._wrapT=e,this._samplerInfo.addressV=e,this._wrapR=i,this._samplerInfo.addressW=i,this._gfxDevice&&(this._gfxSampler=this._gfxDevice.getSampler(this._samplerInfo))},i.setFilters=function(t,e){this._minFilter=t,this._samplerInfo.minFilter=t,this._magFilter=e,this._samplerInfo.magFilter=e,this._gfxDevice&&(this._gfxSampler=this._gfxDevice.getSampler(this._samplerInfo))},i.setMipFilter=function(t){this._mipFilter=t,this._samplerInfo.mipFilter=t,this._gfxDevice&&(this._gfxSampler=this._gfxDevice.getSampler(this._samplerInfo))},i.setAnisotropy=function(t){t=Math.min(t,16),this._anisotropy=t,this._samplerInfo.maxAnisotropy=t,this._gfxDevice&&(this._gfxSampler=this._gfxDevice.getSampler(this._samplerInfo))},i.destroy=function(){var e,i=t.prototype.destroy.call(this);return i&&null!=(e=T.director.root)&&e.batcher2D&&T.director.root.batcher2D._releaseDescriptorSetCache(this._textureHash),i},i.getHash=function(){return this._textureHash},i.getGFXTexture=function(){return null},i.getSamplerInfo=function(){return this._samplerInfo},i.getGFXSampler=function(){return this._gfxSampler||(this._gfxDevice?this._gfxSampler=this._gfxDevice.getSampler(this._samplerInfo):ot(9302)),this._gfxSampler},i._serialize=function(){return""},i._deserialize=function(t){var e=t.split(",");e.unshift(""),e.length>=5&&(this.setFilters(parseInt(e[1]),parseInt(e[2])),this.setWrapMode(parseInt(e[3]),parseInt(e[4]))),e.length>=7&&(this.setMipFilter(parseInt(e[5])),this.setAnisotropy(parseInt(e[6])))},i._getGFXDevice=function(){return zp.gfxDevice},i._getGFXFormat=function(){return this._getGFXPixelFormat(this._format)},i._setGFXFormat=function(t){this._format=void 0===t?35:t},i._getGFXPixelFormat=function(t){return 1026===t?t=72:1025===t?t=85:1024===t&&(t=83),t},n(e,[{key:"isCompressed",get:function(){return this._format>=72&&this._format<=102||this._format>=1024&&this._format<=1026}},{key:"width",get:function(){return this._width}},{key:"height",get:function(){return this._height}}]),e}(xm),Nm.PixelFormat={RGB565:47,RGB5A1:49,RGBA4444:50,RGB888:24,RGB32F:32,RGBA8888:35,BGRA8888:36,RGBA32F:44,A8:1,I8:2,AI8:3,RGB_PVRTC_2BPPV1:83,RGBA_PVRTC_2BPPV1:84,RGB_A_PVRTC_2BPPV1:1024,RGB_PVRTC_4BPPV1:85,RGBA_PVRTC_4BPPV1:86,RGB_A_PVRTC_4BPPV1:1025,RGB_ETC1:72,RGBA_ETC1:1026,RGB_ETC2:73,RGBA_ETC2:77,RGBA_ASTC_4x4:89,RGBA_ASTC_5x4:90,RGBA_ASTC_5x5:91,RGBA_ASTC_6x5:92,RGBA_ASTC_6x6:93,RGBA_ASTC_8x5:94,RGBA_ASTC_8x6:95,RGBA_ASTC_8x8:96,RGBA_ASTC_10x5:97,RGBA_ASTC_10x6:98,RGBA_ASTC_10x8:99,RGBA_ASTC_10x10:100,RGBA_ASTC_12x10:101,RGBA_ASTC_12x12:102},Nm.WrapMode={REPEAT:0,CLAMP_TO_EDGE:2,MIRRORED_REPEAT:1,CLAMP_TO_BORDER:3},Nm.Filter={NONE:0,LINEAR:2,NEAREST:1},Mm=Vh((Im=Nm).prototype,"_format",[hu],(function(){return 35})),Pm=Vh(Im.prototype,"_minFilter",[hu],(function(){return 2})),Em=Vh(Im.prototype,"_magFilter",[hu],(function(){return 2})),Om=Vh(Im.prototype,"_mipFilter",[hu],(function(){return 0})),km=Vh(Im.prototype,"_wrapS",[hu],(function(){return 0})),Rm=Vh(Im.prototype,"_wrapT",[hu],(function(){return 0})),Fm=Vh(Im.prototype,"_wrapR",[hu],(function(){return 0})),Lm=Vh(Im.prototype,"_anisotropy",[hu],(function(){return 0})),Bm=Im))||Bm;T.TextureBase=Wm;var jm=t("ea",Kh("cc.Script")(zm=function(t){function e(e){return t.call(this,e)||this}return s(e,t),e}(xm))||zm);T._Script=jm;var qm=t("eb",Kh("cc.JavaScript")(Um=function(t){function e(e){return t.call(this,e)||this}return s(e,t),e}(jm))||Um);T._JavaScript=qm;var Xm,Ym,Km,Jm,Qm,Zm,$m,tg=t("ec",Kh("cc.TypeScript")(Gm=function(t){function e(e){return t.call(this,e)||this}return s(e,t),e}(jm))||Gm);T._TypeScript=tg;var eg,ig,ng,rg,sg,ag,og,hg,ug,lg,cg,fg=t("ds",Kh("cc.ClickEvent")((Ym=function(){function t(){this.target=Km&&Km(),this.component=Jm&&Jm(),this._componentId=Qm&&Qm(),this.handler=Zm&&Zm(),this.customEventData=$m&&$m()}t.emitEvents=function(e){for(var i=arguments.length,n=new Array(i>1?i-1:0),r=1;r=0,1620),i=Number.isNaN(i)?A.macro.REPEAT_FOREVER:i,n=n||0;var r=A.director.getScheduler(),s=r.isTargetPaused(this);r.schedule(t,this,e,i,n,s)},i.scheduleOnce=function(t,e){void 0===e&&(e=0),this.schedule(t,0,0,e)},i.unschedule=function(t){t&&A.director.getScheduler().unschedule(t,this)},i.unscheduleAllCallbacks=function(){A.director.getScheduler().unscheduleAllForTarget(this)},n(e,[{key:"name",get:function(){if(this._name)return this._name;var t=Gt(this),e=t.lastIndexOf(".");return e>=0&&(t=t.slice(e+1)),this.node?this.node.name+"<"+t+">":t},set:function(t){this._name=t}},{key:"uuid",get:function(){return this._id}},{key:"__scriptAsset",get:function(){return null}},{key:"enabled",get:function(){return this._enabled},set:function(t){if(this._enabled!==t&&(this._enabled=t,this.node.activeInHierarchy)){var e=A.director._compScheduler;t?e.enableComp(this):e.disableComp(this)}}},{key:"enabledInHierarchy",get:function(){return this._enabled&&this.node&&this.node.activeInHierarchy}},{key:"_isOnLoadCalled",get:function(){return 16384&this._objFlags}},{key:"internalUpdate",get:function(){return this.update}},{key:"internalLateUpdate",get:function(){return this.lateUpdate}},{key:"internalPreload",get:function(){return this.__preload}},{key:"internalOnLoad",get:function(){return this.onLoad}},{key:"internalStart",get:function(){return this.start}},{key:"internalOnEnable",get:function(){return this.onEnable}},{key:"internalOnDisable",get:function(){return this.onDisable}},{key:"internalOnDestroy",get:function(){return this.onDestroy}}]),e}(po),hg.EventHandler=fg,hg._executionOrder=0,hg._requireComponent=null,hg.system=null,v((rg=hg).prototype,"__scriptAsset",[ig],Object.getOwnPropertyDescriptor(rg.prototype,"__scriptAsset"),rg.prototype),sg=Vh(rg.prototype,"node",[hu],(function(){return null})),ag=Vh(rg.prototype,"_enabled",[hu],(function(){return!0})),og=Vh(rg.prototype,"__prefab",[hu],(function(){return null})),ng=rg))||ng));Lt(dg,"_registerEditorProps",(function(t,e){var i=e.requireComponent;i&&(Array.isArray(i)&&(i=i.filter(Boolean)),t._requireComponent=i);var n=e.executionOrder;n&&"number"==typeof n&&(t._executionOrder=n)})),A.Component=dg;var pg=t("dQ",Kh("cc.MissingScript")((lg=function(t){function e(){var e;return(e=t.call(this)||this)._$erialized=cg&&cg(),e}return s(e,t),e.safeFindClass=function(t){var e=fe(t);if(e)return e;T.deserialize.reportMissingClass(t)},e.prototype.onLoad=function(){st(4600,this.node.name)},e}(dg),cg=Vh(lg.prototype,"_$erialized",[hu,lu],(function(){return null})),ug=lg))||ug);T._MissingScript=pg;try{var mg=pg.__values__;0!==mg.length&&"_$erialized"===mg[mg.length-1]||(ot(16338),ot(16339,mg.join(", ")))}catch(Ps){ot(16340,""+Ps)}var gg=function(){function t(t,e){this._document=t,this._chunks=e}return n(t,[{key:"document",get:function(){return this._document}},{key:"chunks",get:function(){return this._chunks}}]),t}();function yg(t){var e=t;return{chunks:e.chunks,document:e.document}}function vg(t){if(t.length<16)throw new Sg(ct(13102));var e=new DataView(t.buffer,t.byteOffset,t.byteLength);if(1313817411!==e.getUint32(0,!0))throw new Sg(ct(13100));var i=e.getUint32(4,!0);if(1!==i)throw new Sg(ct(13101,i));if(e.getUint32(8,!0)!==e.byteLength)throw new Sg(ct(13102));var n=12,r=e.getUint32(n,!0);n+=4;var s=new Uint8Array(e.buffer,n+e.byteOffset,r);n+=r;var a,o=bg(s);try{a=JSON.parse(o)}catch(t){throw new Sg(t)}for(var h=[];n0&&(t.chunks.length,this._mainBinChunk=t.chunks[0])):e=t,this._serializedData=e,this._context={fromCCON:i};var n=Array.isArray(e)?e[0]:e;return this.deserializedData=this._deserializeObject(n,0),this._serializedData=void 0,this._mainBinChunk=void 0,this._context=void 0,this.deserializedData},e._deserializeObject=function(t,e,i,n){switch(t.__type__){case"TypedArray":return this._deserializeTypedArrayView(t);case"TypedArrayRef":return this._deserializeTypedArrayViewRef(t);default:return t.__type__?this._deserializeTypeTaggedObject(t,e,i,n):Array.isArray(t)?this._deserializeArray(t):this._deserializePlainObject(t)}},e._deserializeTypedArrayView=function(t){return globalThis[t.ctor].from(t.array)},e._deserializeTypedArrayViewRef=function(t){var e=t.offset,i=t.length,n=t.ctor;return new globalThis[n](this._mainBinChunk.buffer,this._mainBinChunk.byteOffset+e,i)},e._deserializeArray=function(t){for(var e,i=new Array(t.length),n=0;n=0&&(r.deserializedList[e]=i),i}(a);return this._deserializeInto(t,o,a),o},e._deserializeInto=function(t,e,i,n){void 0===n&&(n=!1),n||!e[Ku]?e._deserialize?e._deserialize(t.content,this):T.Class._isCCClass(i)?this._deserializeFireClass(e,t,i):this._deserializeFastDefinedObject(e,t,i):this._runCustomizedDeserialize(t,e,i)},e._runCustomizedDeserialize=function(t,e,i){var n=this,r={readProperty:function(e){var i=t[e];return"object"==typeof i&&i?n._deserializeObjectField(i):i},readThis:function(){n._deserializeInto(t,e,i,!0)},readSuper:function(){var r=te(i);r&&n._deserializeInto(t,e,r)}};e[Ku](r,this._context)},e._deserializeFireClass=function(t,e,i){var n;if(i.hasOwnProperty("__deserialize__"))n=i.__deserialize__;else{n=wg(0,i);try{if(i===pg){var r=i.__values__;0!==r.length&&"_$erialized"===r[r.length-1]||(ot(16341),ot(16342,r.join(", ")));var s=n;n=function(t,e,i,n){s(t,e,i,n),e._$erialized||ot(16343,JSON.stringify(i))}}}catch(t){ot(16344,""+t)}Lt(i,"__deserialize__",n,!0)}n(this,t,e,i)},e._deserializeAndAssignField=function(t,e,i){var n=e.__id__;if("number"==typeof n){var r=this.deserializedList[n];if(r)t[i]=r;else{var s,a=this._serializedData[n];t[i]=this._deserializeObject(a,n,void 0,i),null==(s=this._onDereferenced)||s.call(this,this.deserializedList,n,t,i)}}else{var o=e.__uuid__;if(o){var h=e.__expectedType__;this.result.push(t,i,o,h)}else t[i]=this._deserializeObject(e,-1)}return!1},e._deserializeObjectField=function(t){var e=t.__id__;if("number"==typeof e){var i=this.deserializedList[e];if(i)return i;var n=this._serializedData[e];return this._deserializeObject(n,e,void 0,void 0)}if(t.__uuid__)throw t.__expectedType__,new Error("Asset reference field serialization is currently not supported in custom serialization.");return this._deserializeObject(t,-1)},e._fillPlainObject=function(t,e){for(var i in e)if(e.hasOwnProperty(i)){var n=e[i];"object"!=typeof n?"__type__"!==i&&(t[i]=n):n?this._deserializeAndAssignField(t,n,i)&&(t[i]=null):t[i]=null}},e._deserializeFastDefinedObject=function(t,e,i){if(i===T.Vec2)return t.x=e.x||0,void(t.y=e.y||0);if(i===T.Vec3)return t.x=e.x||0,t.y=e.y||0,void(t.z=e.z||0);if(i!==T.Color){if(i===T.Size)return t.width=e.width||0,void(t.height=e.height||0);for(var n=Li.Attr.getClassAttrs(i),r=i.__values__,s=0;s=0?a[i[h]]=o:a[~h]=o}for(;r=0?u[i[c]]=l:u[~c]=l}}function jg(t,e){for(var i=t[4][e[Gg]],n=i[Ug],r=new(0,n[Ng]),s=n[Vg],a=n[zg],o=i[i.length-1],h=Ug+1;h=0?e[i]=t[5][n]:t[7][3*~n]=e}function Yg(t){return function(e,i,n,r){for(var s=0;s=0){var c=o[u];e[a]=qg(t,c,l)}else(0,Qg[u=~u])(t,e,a,l)}return r}function $g(t,e,i){return t||i(e),Object}function ty(t,e,i,n,r,s,a){var o=t(e);if(!o){if(r)return void(i[n]=function(e,i,n){return function(){var r=t(n)||$g(s,n,a);return e[i]=r,new r}}(i,n,e));o=$g(s,e,a)}i[n]=o}function ey(t,e,i,n){for(var r=i||fe,s=t[3],a=0;a=0?i[u]:~u,s[o]=u);var l=a[o];"number"==typeof l&&(a[o]=n[l])}}function ry(t){if(Array.isArray(t)){var e=t[0];return"number"==typeof e||e instanceof oy}return!1}function sy(t,e,i){var n;e.init(t),null!==(n=i)&&void 0!==n||(i={});var r=t[0],s=!1;if("object"==typeof r&&(s=r.preprocessed,r=r.version),r>=1,n++;return n}function by(t){return t&&!(t&t-1)}function Sy(t,e,i){return!(6===t.gfxAPI)||by(e)&&by(i)}var xy,wy,Ty,Ay,Cy,Dy=Kh("cc.SimpleTexture")(my=function(t){function e(e){var i;return(i=t.call(this,e)||this)._gfxTexture=null,i._gfxTextureView=null,i._mipmapLevel=1,i._textureWidth=0,i._textureHeight=0,i._baseLevel=0,i._maxLevel=1e3,i}s(e,t);var i=e.prototype;return i.getGFXTexture=function(){return this._gfxTextureView},i.destroy=function(){return this._tryDestroyTextureView(),this._tryDestroyTexture(),t.prototype.destroy.call(this)},i.updateImage=function(){this.updateMipmaps(0)},i.updateMipmaps=function(){},i.uploadData=function(t,e,i){if(void 0===e&&(e=0),void 0===i&&(i=0),this._gfxTexture&&!(this._mipmapLevel<=e)){var n=this._getGFXDevice();if(n){var r=yy[0];r.texExtent.width=this._textureWidth>>e,r.texExtent.height=this._textureHeight>>e,r.texSubres.mipLevel=e,r.texSubres.baseArrayLayer=i,ArrayBuffer.isView(t)?n.copyBuffersToTexture([t],this._gfxTexture,yy):n.copyTexImagesToTexture([t],this._gfxTexture,yy)}}},i._assignImage=function(t,e,i){var n=t.data;if(n&&(this.uploadData(n,e,i),this._checkTextureLoaded(),ze.CLEANUP_IMAGE_CACHE)){var r=gy.getDeps(this._uuid),s=r.indexOf(t._uuid);-1!==s&&(ve(r,s),t.decRef())}},i._checkTextureLoaded=function(){this._textureReady()},i._textureReady=function(){this.loaded=!0,this.emit("load")},i._setMipmapLevel=function(t){this._mipmapLevel=t<1?1:t},i._setMipRange=function(t,e){this._baseLevel=t<1?0:t,this._maxLevel=e<1?0:e},i.setMipRange=function(t,e){ut(t<=e,3124),this._setMipRange(t,e);var i=this._getGFXDevice();if(i){var n=this._createTextureView(i);this._tryDestroyTextureView(),this._gfxTextureView=n}},i._getGfxTextureCreateInfo=function(){return null},i._getGfxTextureViewCreateInfo=function(){return null},i._tryReset=function(){if(this._tryDestroyTextureView(),this._tryDestroyTexture(),0!==this._mipmapLevel){var t=this._getGFXDevice();t&&(this._createTexture(t),this._gfxTextureView=this._createTextureView(t))}},i.isUsingOfflineMipmaps=function(){return!1},i._createTexture=function(t){if(0!==this._width&&0!==this._height){var e=0;0!==this._mipFilter&&Sy(t,this._width,this._height)&&(this._mipmapLevel=vy(this._width,this._height),this.isUsingOfflineMipmaps()||this.isCompressed||(e=1));var i=this._getGfxTextureCreateInfo({usage:22,format:this._getGFXFormat(),levelCount:this._mipmapLevel,flags:e});if(i){var n=t.createTexture(i);this._textureWidth=i.width,this._textureHeight=i.height,this._gfxTexture=n}}},i._createTextureView=function(t){if(!this._gfxTexture)return null;var e=this._maxLevel0){var i=this._generatedMipmaps[0];this.reset({width:i.width,height:i.height,format:i.format,mipmapLevel:this._generatedMipmaps.length,baseLevel:this._baseLevel,maxLevel:this._maxLevel}),this._generatedMipmaps.forEach((function(t,i){e._assignImage(t,i)}))}else this.reset({width:0,height:0,mipmapLevel:this._generatedMipmaps.length,baseLevel:this._baseLevel,maxLevel:this._maxLevel})},i.initialize=function(){this.mipmaps=this._mipmaps},i.onLoaded=function(){this.initialize()},i.reset=function(t){this._width=t.width,this._height=t.height,this._setGFXFormat(t.format);var e=void 0===t.mipmapLevel?1:t.mipmapLevel;this._setMipmapLevel(e);var i=void 0===t.baseLevel?0:t.baseLevel,n=void 0===t.maxLevel?1e3:t.maxLevel;this._setMipRange(i,n),this._tryReset()},i.create=function(t,e,i,n,r,s){void 0===i&&(i=35),void 0===n&&(n=1),void 0===r&&(r=0),void 0===s&&(s=1e3),this.reset({width:t,height:e,format:i,mipmapLevel:n,baseLevel:r,maxLevel:s})},i.toString=function(){return 0!==this._mipmaps.length?this._mipmaps[0].url:""},i.updateMipmaps=function(t,e){if(void 0===t&&(t=0),void 0===e&&(e=void 0),!(t>=this._generatedMipmaps.length))for(var i=Math.min(void 0===e?this._generatedMipmaps.length:e,this._generatedMipmaps.length-t),n=0;n"},i.releaseTexture=function(){this.destroy()},i._serialize=function(){return null},i._deserialize=function(e,i){var n=e;t.prototype._deserialize.call(this,n.base,i),this._mipmaps=new Array(n.mipmaps.length);for(var r=0;r1)for(var n=0;nthis._width&&(this._x=2,this._y=this._nextY),this._y+o+2>this._nextY&&(this._nextY=this._y+o+2),this._nextY>this._height)return null;var h=this._texture,u=i.image;T.internal.dynamicAtlasManager.textureBleeding&&((a<=8||o<=8)&&(Iy(h,u,this._x-1,this._y-1),Iy(h,u,this._x-1,this._y+1),Iy(h,u,this._x+1,this._y-1),Iy(h,u,this._x+1,this._y+1)),Iy(h,u,this._x-1,this._y),Iy(h,u,this._x+1,this._y),Iy(h,u,this._x,this._y-1),Iy(h,u,this._x,this._y+1)),Iy(h,u,this._x,this._y),this._innerTextureInfos[i.getId()]={x:this._x,y:this._y,texture:i},this._count++,r+=this._x,s+=this._y,this._x+=a+2}var l={x:r,y:s,texture:this._texture};return this._innerSpriteFrames.push(t),l},e.removeSpriteFrame=function(t){Se(this._innerSpriteFrames,t)},e.deleteInnerTexture=function(t){t&&this._innerTextureInfos[t.getId()]&&(delete this._innerTextureInfos[t.getId()],this._count--)},e.isEmpty=function(){return this._count<=0},e.reset=function(){this._x=2,this._y=2,this._nextY=2;for(var t=this._innerSpriteFrames,e=0,i=t.length;e19||i<0)st(16365);else{var n=1<19||e<0)st(16366);else{var i=1<31||e<0?(st(16368),""):t.Enum[1<0)for(var n=0;n=0;--n)if((e=r[n]).eventProcessor.capturingTarget&&(t.currentTarget=e,e.eventProcessor.capturingTarget.emit(t.type,t,r),t.propagationStopped))return void Zy.free(r);if(t.eventPhase=2,t.currentTarget=i,this.capturingTarget&&this.capturingTarget.emit(t.type,t),!t.propagationImmediateStopped&&this.bubblingTarget&&this.bubblingTarget.emit(t.type,t),!t.propagationStopped&&t.bubbles)for(r.length=0,this.getBubblingTargets(t.type,r),t.eventPhase=3,n=0;n0?n:null}return null},e._attachMask=function(){this.maskList=this._searchComponentsInParent(t._maskComp)},e._isTouchEvent=function(t){return-1!==ev.indexOf(t)},e._isMouseEvent=function(t){return-1!==iv.indexOf(t)},e._hasTouchListeners=function(){for(var t=0;t=0;--a){var o=i[a];Kr.fromSRT(xv,o.rotation,o.position,o.scale),Kr.multiply(e,e,xv)}s=!0}else e.set(t._mat);return wv.length=0,s}function Cv(t,e){if(t.isSkewEnabled()&&(0!==t.x||0!==t.y))if(t.rotational){var i=-t.x*Tv,n=t.y*Tv,r=Math.cos(i),s=Math.sin(i),a=Math.cos(n),o=Math.sin(n),h=e.m00,u=e.m01,l=e.m04,c=e.m05;e.m00=a*h-s*u,e.m01=o*h+r*u,e.m04=a*l-s*c,e.m05=o*l+r*c}else{var f=Math.tan(t.x*Tv),_=Math.tan(t.y*Tv),d=e.m00,p=e.m01,m=e.m04,g=e.m05;e.m00=d+m*_,e.m01=p+g*_,e.m04=m+d*f,e.m05=g+p*f}}var Dv=128,Bv="transform-changed",Iv="active-changed",Mv=new Bt("Node");function Pv(t){return t?"string"==typeof t?_e(t):t:(ot(3804),null)}var Ev,Ov,kv,Rv,Fv,Lv,Nv,Vv=ir(),zv=ir(),Uv=zr(),Gv=zr(),Hv=zr(),Wv=new gr,jv=Zr(),qv=Zr(),Xv=[],Yv=Symbol("ReserveContentsForAllSyncablePrefab"),Kv=0,Jv=0,Qv=t("dn",(sv=Kh("cc.Node"),av=Eu(er),ov=Eu(Ly),sv((Sv=function(t){s(i,t);var e=i.prototype;function i(e){var i;return void 0===e&&(e="New Node"),(i=t.call(this,e)||this)._parent=lv&&lv(),i._children=cv&&cv(),i._active=fv&&fv(),i._components=_v&&_v(),i._prefab=dv&&dv(),i._scene=null,i._activeInHierarchy=!1,i._id=Mv.getNewId(),i._eventProcessor=new rv(f(i)),i._eventMask=0,i._siblingIndex=0,i._originalSceneId="",i._uiProps=new ky(f(i)),i._static=!1,i._lpos=pv&&pv(),i._lrot=mv&&mv(),i._lscale=gv&&gv(),i._mobility=yv&&yv(),i._layer=vv&&vv(),i._euler=bv&&bv(),i._transformFlags=15,i._eulerDirty=!1,i._flagChangeVersion=0,i._hasChangedFlags=0,i._pos=new er,i._rot=new Or,i._scale=new er(1,1,1),i._mat=new Kr,i}return e._setActiveInHierarchy=function(t){this._activeInHierarchy=t},i._setScene=function(t){t._updateScene()},i._incSkewCompCount=function(){++Jv},i._decSkewCompCount=function(){--Jv},i._findComponent=function(t,e){var i=e,n=t._components;if(i._sealed)for(var r=0;r0&&(s=i._findChildComponent(r._children,e)))return s}return null},i._findChildComponents=function(t,e,n){for(var r=0;r0&&i._findChildComponents(s._children,e,n)}},e.getWritableComponents=function(){return this._components},e._updateScene=function(){null==this._parent?ot(1640,this.name,this.uuid):this._scene=this._parent._scene},e.attr=function(t){Zt(this,t)},e.getParent=function(){return this._parent},e.modifyParent=function(t){this._parent=t},e.setParent=function(t,e){if(void 0===e&&(e=!1),e&&this.updateWorldTransform(),this._parent!==t){var i=this._parent,n=t;if(this._parent=n,this._siblingIndex=0,this._onSetParent(i,e),this.emit&&this.emit("parent-changed",i),i&&!(i._objFlags&Dv)){var r=i._children.indexOf(this);i._children.splice(r,1),i._updateSiblingIndex(),i.emit&&i.emit("child-removed",this)}n&&(n._children.push(this),this._siblingIndex=n._children.length-1,n.emit&&n.emit("child-added",this)),this._onHierarchyChanged(i)}},e.getChildByUuid=function(t){if(!t)return q("Invalid uuid"),null;for(var e=this._children,i=0,n=e.length;i=0?t:e.length+t;var i=e.indexOf(this);t!==i&&(e.splice(i,1),t0?(h=s,r=s._children,a=0,o[n]=r[a],n++):(o[n]=s,n++,u=!0);o.length=0,i._stackId--},e.removeFromParent=function(){this._parent&&this._parent.removeChild(this)},e.removeChild=function(t){this._children.indexOf(t)>-1&&(t.parent=null)},e.removeAllChildren=function(){for(var t=this._children,e=t.length-1;e>=0;e--){var i=t[e];i&&(i.parent=null)}this._children.length=0},e.isChildOf=function(t){var e=this;do{if(e===t)return!0;e=e._parent}while(e);return!1},e.getComponent=function(t){var e=Pv(t);return e?i._findComponent(this,e):null},e.getComponents=function(t){var e=Pv(t),n=[];return e&&i._findComponents(this,e,n),n},e.getComponentInChildren=function(t){var e=Pv(t);return e?i._findChildComponent(this._children,e):null},e.getComponentsInChildren=function(t){var e=Pv(t),n=[];return e&&(i._findComponents(this,e,n),i._findChildComponents(this._children,e,n)),n},e.addComponent=function(t){var e;if("string"==typeof t){if(!(e=_e(t)))throw T._RF.peek()&&ot(3808,t),TypeError(ct(3807,t))}else{if(!t)throw TypeError(ct(3804));e=t}if("function"!=typeof e)throw TypeError(ct(3809));if(!ee(e,T.Component))throw TypeError(ct(3810));var i=e._requireComponent;if(i)if(Array.isArray(i))for(var n=0;n0){if(t){var a=Av(t,qv);Kr.fromSRT(jv,n._lrot,n._lpos,n._lscale);var o=a?qv:t._mat;Kr.multiply(n._mat,o,jv)}Av(r,qv)&&(s=qv)}Kr.multiply(jv,Kr.invert(jv,s),n._mat),Kr.toSRT(jv,n._lrot,n._lpos,n._lscale)}else er.copy(n._lpos,n._pos),Or.copy(n._lrot,n._rot),er.copy(n._lscale,n._scale);n._eulerDirty=!0}n.invalidateChildren(7)},e._onHierarchyChanged=function(t){this.eventProcessor.reattach(),this._onHierarchyChangedBase(t)},e._onBatchCreated=function(t){2&this._eventMask&&(this._activeInHierarchy||this.emit(Iv,this,!1)),this.hasChangedFlags=7,this._children.forEach((function(e,i){e._siblingIndex=i,e._onBatchCreated(t)}))},e._onBeforeSerialize=function(){this.eulerAngles},e._onPostActivated=function(t){var e=this;2&e._eventMask&&e.emit(Iv,e,t);var i=this._eventProcessor;if(i.isEnabled===t&&rv.callbacksInvoker.emit(2),i.setEnabled(t),t){e.invalidateChildren(7);var n=e._uiProps&&e._uiProps.uiComp;n&&(n.setNodeDirty(),n.setTextureDirty(),n._markForUpdateRenderData())}},e.translate=function(t,e){var i=e||0;if(0===i)er.transformQuat(Vv,t,this._lrot),this._lpos.x+=Vv.x,this._lpos.y+=Vv.y,this._lpos.z+=Vv.z;else if(1===i)if(this._parent){Or.invert(Uv,this._parent.worldRotation),er.transformQuat(Vv,t,Uv);var n=this.worldScale;this._lpos.x+=Vv.x/n.x,this._lpos.y+=Vv.y/n.y,this._lpos.z+=Vv.z/n.z}else this._lpos.x+=t.x,this._lpos.y+=t.y,this._lpos.z+=t.z;this.invalidateChildren(1),1&this._eventMask&&this.emit(Bv,1)},e.rotate=function(t,e){var i=e||0;if(Or.normalize(Uv,t),0===i)Or.multiply(this._lrot,this._lrot,Uv);else if(1===i){var n=this.worldRotation;Or.multiply(Gv,Uv,n),Or.invert(Uv,n),Or.multiply(Gv,Uv,Gv),Or.multiply(this._lrot,this._lrot,Gv)}this._eulerDirty=!0,this.invalidateChildren(2),1&this._eventMask&&this.emit(Bv,2)},e.lookAt=function(t,e){this.getWorldPosition(Vv),er.subtract(Vv,Vv,t),er.normalize(Vv,Vv),Or.fromViewUp(Uv,Vv,e),this.setWorldRotation(Uv)},e.invalidateChildren=function(t){var e,i,n=0,r=0,s=0,a=0,o=1|t;for(Xv[0]=this;n>=0;){if(a=(e=Xv[n--]).hasChangedFlags,e.isValid&&(e._transformFlags&a&t)!==t)for(e._transformFlags|=t,e.hasChangedFlags=a|t,s=(i=e._children).length,r=0;r0&&(u=Av(n,qv),((h=t._uiProps._uiSkewComp)||u)&&(Kr.multiply(qv,qv,jv),h&&Cv(h,jv),l=qv)),Kr.multiply(e,n._mat,jv);var c=2&s?t._rot:null;Kr.toSRT(l,c,i,t._scale),u&&er.transformMat4(i,t._lpos,n._mat)}}else a&&(er.copy(i,t._lpos),e.m12=i.x,e.m13=i.y,e.m14=i.z),o&&(2&s&&Or.copy(t._rot,t._lrot),4&s&&er.copy(t._scale,t._lscale),Kr.fromSRT(e,t._rot,t._pos,t._scale),Jv>0&&(h=t._uiProps._uiSkewComp)&&Cv(h,e));t._transformFlags=0,n=t}}},e.setPosition=function(t,e,i){var n=this._lpos;void 0===e?er.copy(n,t):(void 0===i&&(i=n.z),er.set(n,t,e,i)),this.invalidateChildren(1),1&this._eventMask&&this.emit(Bv,1)},e.getPosition=function(t){return t?er.set(t,this._lpos.x,this._lpos.y,this._lpos.z):er.copy(new er,this._lpos)},e.setRotation=function(t,e,i,n){void 0===e?Or.copy(this._lrot,t):Or.set(this._lrot,t,e,i,n),this._eulerDirty=!0,this.invalidateChildren(2),1&this._eventMask&&this.emit(Bv,2)},e.setRotationFromEuler=function(t,e,i){if(void 0===e)er.copy(this._euler,t),Or.fromEuler(this._lrot,t.x,t.y,t.z);else{var n=void 0===i?this._euler.z:i;er.set(this._euler,t,e,n),Or.fromEuler(this._lrot,t,e,n)}this._eulerDirty=!1,this.invalidateChildren(2),1&this._eventMask&&this.emit(Bv,2)},e.getRotation=function(t){return t?Or.set(t,this._lrot.x,this._lrot.y,this._lrot.z,this._lrot.w):Or.copy(new Or,this._lrot)},e.setScale=function(t,e,i){var n=this._lscale;void 0===e?er.copy(n,t):(void 0===i&&(i=n.z),er.set(n,t,e,i)),this.invalidateChildren(4),1&this._eventMask&&this.emit(Bv,4)},e.getScale=function(t){return t?er.set(t,this._lscale.x,this._lscale.y,this._lscale.z):er.copy(new er,this._lscale)},e.inverseTransformPoint=function(t,e){er.copy(t,e);for(var i=this,n=0;i._parent;)Xv[n++]=i,i=i._parent;for(;n>=0;)er.transformInverseRTS(t,t,i._lrot,i._lpos,i._lscale),i=Xv[--n];return t},e.setWorldPosition=function(t,e,i){var n=this._pos;void 0===e?er.copy(n,t):er.set(n,t,e,i);var r=this._parent,s=this._lpos;r?(r.updateWorldTransform(),er.transformMat4(s,n,Kr.invert(jv,r._mat))):er.copy(s,n),this.invalidateChildren(1),1&this._eventMask&&this.emit(Bv,1)},e.getWorldPosition=function(t){return this.updateWorldTransform(),t?er.copy(t,this._pos):er.copy(new er,this._pos)},e.setWorldRotation=function(t,e,i,n){var r=this._rot;void 0===e?Or.copy(r,t):Or.set(r,t,e,i,n),this._parent?(this._parent.updateWorldTransform(),Or.multiply(this._lrot,Or.conjugate(this._lrot,this._parent._rot),r)):Or.copy(this._lrot,r),this._eulerDirty=!0,this.invalidateChildren(2),1&this._eventMask&&this.emit(Bv,2)},e.setWorldRotationFromEuler=function(t,e,i){Or.fromEuler(Uv,t,e,i),this.setWorldRotation(Uv)},e.getWorldRotation=function(t){return this.updateWorldTransform(),t?Or.copy(t,this._rot):Or.copy(new Or,this._rot)},e.setWorldScale=function(t,e,i){var n=this,r=n._parent;r&&n.updateWorldTransform();var s=n._scale;void 0===e?er.copy(s,t):er.set(s,t,e,i);var a=0;if(r){var o=n._mat;n._uiProps._uiSkewComp&&(Kr.fromSRT(jv,n._lrot,n._lpos,n._lscale),Kr.multiply(o,r._mat,jv));var h=er.set(zv,o.m00,o.m01,o.m02).length(),u=er.set(zv,o.m04,o.m05,o.m06).length(),l=er.set(zv,o.m08,o.m09,o.m10).length();0===h?(Vv.x=s.x,o.m00=1,a=2):Vv.x=s.x/h,0===u?(Vv.y=s.y,o.m05=1,a=2):Vv.y=s.y/u,0===l?(Vv.z=s.z,o.m10=1,a=2):Vv.z=s.z/l,Kr.scale(jv,o,Vv),Kr.multiply(qv,Kr.invert(qv,r._mat),jv),gr.fromQuat(Wv,Or.conjugate(Hv,n._lrot)),gr.multiplyMat4(Wv,Wv,qv);var c=n._lscale;c.x=er.set(Vv,Wv.m00,Wv.m01,Wv.m02).length(),c.y=er.set(Vv,Wv.m03,Wv.m04,Wv.m05).length(),c.z=er.set(Vv,Wv.m06,Wv.m07,Wv.m08).length(),0!==c.x&&0!==c.y&&0!==c.z||(a=2)}else er.copy(n._lscale,s);n.invalidateChildren(4|a),1&n._eventMask&&n.emit(Bv,4|a)},e.getWorldScale=function(t){return this.updateWorldTransform(),t?er.copy(t,this._scale):er.copy(new er,this._scale)},e.getWorldMatrix=function(t){this.updateWorldTransform();var e=t||new Kr;return Kr.copy(e,this._mat)},e.getWorldRS=function(t){this.updateWorldTransform();var e=t||new Kr;return Kr.copy(e,this._mat),e.m12=0,e.m13=0,e.m14=0,e},e.getWorldRT=function(t){this.updateWorldTransform();var e=t||new Kr;return Kr.fromRT(e,this._rot,this._pos)},e.setRTS=function(t,e,i){var n=0;t&&(n|=2,void 0!==t.w?(Or.copy(this._lrot,t),this._eulerDirty=!0):(er.copy(this._euler,t),Or.fromEuler(this._lrot,t.x,t.y,t.z),this._eulerDirty=!1)),e&&(er.copy(this._lpos,e),n|=1),i&&(er.copy(this._lscale,i),n|=4),n&&(this.invalidateChildren(n),1&this._eventMask&&this.emit(Bv,n))},e.isTransformDirty=function(){return 0!==this._transformFlags},e.pauseSystemEvents=function(t){this._eventProcessor.setEnabled(!1,t)},e.resumeSystemEvents=function(t){this._eventProcessor.setEnabled(!0,t)},i.resetHasChangedFlags=function(){Kv+=1},i.clearNodeArray=function(){i.ClearFrame0},set:function(t){t?this._objFlags|=64:this._objFlags&=-65}},{key:"name",get:function(){return this._name},set:function(t){this._name=t}},{key:"uuid",get:function(){return this._id}},{key:"children",get:function(){return this._children}},{key:"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&&T.director._nodeActivator.activateNode(this,t)}}},{key:"activeInHierarchy",get:function(){return this._activeInHierarchy}},{key:"parent",get:function(){return this._parent},set:function(t){this.setParent(t)}},{key:"scene",get:function(){return this._scene}},{key:"eventProcessor",get:function(){return this._eventProcessor}},{key:"prefab",get:function(){return this._prefab}},{key:"id",set:function(t){this._id=t}},{key:"siblingIndex",get:function(){return this._siblingIndex},set:function(t){this._siblingIndex=t}},{key:"position",get:function(){return this._lpos},set:function(t){this.setPosition(t)}},{key:"x",get:function(){return this._lpos.x},set:function(t){this.setPosition(t,this._lpos.y,this._lpos.z)}},{key:"y",get:function(){return this._lpos.y},set:function(t){this.setPosition(this._lpos.x,t,this._lpos.z)}},{key:"z",get:function(){return this._lpos.z},set:function(t){this.setPosition(this._lpos.x,this._lpos.y,t)}},{key:"worldPosition",get:function(){return this.updateWorldTransform(),this._pos},set:function(t){this.setWorldPosition(t)}},{key:"worldPositionX",get:function(){return this.updateWorldTransform(),this._pos.x},set:function(t){this.setWorldPosition(t,this._pos.y,this._pos.z)}},{key:"worldPositionY",get:function(){return this.updateWorldTransform(),this._pos.y},set:function(t){this.setWorldPosition(this._pos.x,t,this._pos.z)}},{key:"worldPositionZ",get:function(){return this.updateWorldTransform(),this._pos.z},set:function(t){this.setWorldPosition(this._pos.x,this._pos.y,t)}},{key:"rotation",get:function(){return this._lrot},set:function(t){this.setRotation(t)}},{key:"eulerAngles",get:function(){return this._eulerDirty&&(Or.toEuler(this._euler,this._lrot),this._eulerDirty=!1),this._euler},set:function(t){this.setRotationFromEuler(t.x,t.y,t.z)}},{key:"angle",get:function(){return this.eulerAngles.z},set:function(t){er.set(this._euler,0,0,t),Or.fromAngleZ(this._lrot,t),this._eulerDirty=!1,this.invalidateChildren(2),1&this._eventMask&&this.emit(Bv,2)}},{key:"worldRotation",get:function(){return this.updateWorldTransform(),this._rot},set:function(t){this.setWorldRotation(t)}},{key:"scale",get:function(){return this._lscale},set:function(t){this.setScale(t)}},{key:"worldScale",get:function(){return this.updateWorldTransform(),this._scale},set:function(t){this.setWorldScale(t)}},{key:"matrix",set:function(t){Kr.toSRT(t,this._lrot,this._lpos,this._lscale),this.invalidateChildren(7),this._eulerDirty=!0,1&this._eventMask&&this.emit(Bv,7)}},{key:"worldMatrix",get:function(){return this.updateWorldTransform(),this._mat}},{key:"forward",get:function(){return er.transformQuat(new er,er.FORWARD,this.worldRotation)},set:function(t){var e=t.length();er.multiplyScalar(Vv,t,-1/e),Or.fromViewUp(Uv,Vv),this.setWorldRotation(Uv)}},{key:"up",get:function(){return er.transformQuat(new er,er.UP,this.worldRotation)}},{key:"right",get:function(){return er.transformQuat(new er,er.RIGHT,this.worldRotation)}},{key:"mobility",get:function(){return this._mobility},set:function(t){this._mobility!==t&&(this._mobility=t,this.emit("mobility-changed"))}},{key:"layer",get:function(){return this._layer},set:function(t){var e=this;if(e._layer!==t){e._layer=t;var i=e._uiProps&&e._uiProps.uiComp;i&&(i.setNodeDirty(),i._markForUpdateRenderData()),e.emit("layer-changed",e._layer)}}},{key:"flagChangedVersion",get:function(){return this._flagChangeVersion}},{key:"hasChangedFlags",get:function(){return this._flagChangeVersion===Kv?this._hasChangedFlags:0},set:function(t){this._flagChangeVersion=Kv,this._hasChangedFlags=t}}]),i}(po),Sv.idGenerator=Mv,Sv._stacks=[[]],Sv._stackId=0,Sv.EventType=Ny,Sv.NodeSpace=Ry,Sv.TransformDirtyBit=Fy,Sv.TransformBit=Fy,Sv.reserveContentsForAllSyncablePrefabTag=Yv,Sv.ClearFrame=0,Sv.ClearRound=1e3,v((uv=Sv).prototype,"_persistNode",[$h],Object.getOwnPropertyDescriptor(uv.prototype,"_persistNode"),uv.prototype),lv=Vh(uv.prototype,"_parent",[hu],(function(){return null})),cv=Vh(uv.prototype,"_children",[hu],(function(){return[]})),fv=Vh(uv.prototype,"_active",[hu],(function(){return!0})),_v=Vh(uv.prototype,"_components",[hu],(function(){return[]})),dv=Vh(uv.prototype,"_prefab",[hu],(function(){return null})),pv=Vh(uv.prototype,"_lpos",[hu],(function(){return new er})),mv=Vh(uv.prototype,"_lrot",[hu],(function(){return new Or})),gv=Vh(uv.prototype,"_lscale",[hu],(function(){return new er(1,1,1)})),yv=Vh(uv.prototype,"_mobility",[hu],(function(){return Ly.Static})),vv=Vh(uv.prototype,"_layer",[hu],(function(){return Oy.Enum.DEFAULT})),bv=Vh(uv.prototype,"_euler",[hu],(function(){return new er})),v(uv.prototype,"eulerAngles",[av],Object.getOwnPropertyDescriptor(uv.prototype,"eulerAngles"),uv.prototype),v(uv.prototype,"mobility",[ov],Object.getOwnPropertyDescriptor(uv.prototype,"mobility"),uv.prototype),hv=uv))||hv));T.Node=Qv;var Zv=t("e6",Kh("cc.TextureCube")((Nv=function(t){function e(e){var i;return(i=t.call(this,e)||this).isRGBE=kv&&kv(),i._mipmapAtlas=Rv&&Rv(),i._mipmapMode=Fv&&Fv(),i._mipmaps=Lv&&Lv(),i._generatedMipmaps=[],i}s(e,t);var i=e.prototype;return i._setMipmapParams=function(t){var e=this;if(this._generatedMipmaps=t,this._setMipmapLevel(this._generatedMipmaps.length),this._generatedMipmaps.length>0){var i=this._generatedMipmaps[0].front;this.reset({width:i.width,height:i.height,format:i.format,mipmapLevel:this._generatedMipmaps.length,baseLevel:this._baseLevel,maxLevel:this._maxLevel}),this._generatedMipmaps.forEach((function(t,i){$v(t,(function(t,n){e._assignImage(t,i,n)}))}))}else this.reset({width:0,height:0,mipmapLevel:this._generatedMipmaps.length,baseLevel:this._baseLevel,maxLevel:this._maxLevel})},i.isUsingOfflineMipmaps=function(){return 2===this._mipmapMode},e.fromTexture2DArray=function(t,i){for(var n=[],r=t.length/6,s=0;s=this._generatedMipmaps.length))for(var n=Math.min(void 0===e?this._generatedMipmaps.length:e,this._generatedMipmaps.length-t),r=function(){var e=t+s;$v(i._generatedMipmaps[e],(function(t,n){i._assignImage(t,e,n)}))},s=0;s1&&t.forEach((function(t){var i={front:t.front.extractMipmap0(),back:t.back.extractMipmap0(),left:t.left.extractMipmap0(),right:t.right.extractMipmap0(),top:t.top.extractMipmap0(),bottom:t.bottom.extractMipmap0()};e.push(i)}));this._setMipmapParams(e)}},{key:"mipmapAtlas",get:function(){return this._mipmapAtlas},set:function(t){var e=this;if(this._mipmapAtlas=t,this._mipmapAtlas){var i=this._mipmapAtlas.atlas.front;if(i.data){var n=this._mipmapAtlas.atlas,r=this._mipmapAtlas.layout,s=r[0],a=Object.assign(D.document.createElement("canvas"),{width:i.width,height:i.height}).getContext("2d");this.reset({width:s.width,height:s.height,format:i.format,mipmapLevel:r.length});for(var o=function(){var t=r[h];$v(n,(function(n,r){a.clearRect(0,0,i.width,i.height);var s=n.data;a.drawImage(s,0,0);var o=a.getImageData(t.left,t.top,t.width,t.height),h=new Vm({_data:o.data,_compressed:n.isCompressed,width:o.width,height:o.height,format:n.format});e._assignImage(h,t.level,r)}))},h=0;h>>26},YS=function(t){return(t&WS)>>>20},KS=function(t){return(t&jS)>>>12},JS=function(t){return 4095&t},QS=function(t,e){return 67108863&t|e<<26&HS},ZS=((kS={})[0]=function(t,e,i){return void 0===i&&(i=0),st(12010,i)},kS[5]=function(t,e,i){return void 0===i&&(i=0),t[i]},kS[6]=function(t,e,i){return void 0===i&&(i=0),_s.fromArray(e,t,i)},kS[7]=function(t,e,i){return void 0===i&&(i=0),er.fromArray(e,t,i)},kS[8]=function(t,e,i){return void 0===i&&(i=0),Ln.fromArray(e,t,i)},kS[13]=function(t,e,i){return void 0===i&&(i=0),t[i]},kS[14]=function(t,e,i){return void 0===i&&(i=0),_s.fromArray(e,t,i)},kS[15]=function(t,e,i){return void 0===i&&(i=0),er.fromArray(e,t,i)},kS[16]=function(t,e,i){return void 0===i&&(i=0),Ln.fromArray(e,t,i)},kS[21]=function(t,e,i){return void 0===i&&(i=0),gr.fromArray(e,t,i)},kS[25]=function(t,e,i){return void 0===i&&(i=0),Kr.fromArray(e,t,i)},kS),$S=((RS={})[0]=function(t,e,i){return void 0===i&&(i=0),st(12010,i)},RS[5]=function(t,e,i){return void 0===i&&(i=0),t[i]=e},RS[6]=function(t,e,i){return void 0===i&&(i=0),_s.toArray(t,e,i)},RS[7]=function(t,e,i){return void 0===i&&(i=0),er.toArray(t,e,i)},RS[8]=function(t,e,i){return void 0===i&&(i=0),Ln.toArray(t,e,i)},RS[13]=function(t,e,i){return void 0===i&&(i=0),t[i]=e},RS[14]=function(t,e,i){return void 0===i&&(i=0),_s.toArray(t,e,i)},RS[15]=function(t,e,i){return void 0===i&&(i=0),er.toArray(t,e,i)},RS[16]=function(t,e,i){return void 0===i&&(i=0),Ln.toArray(t,e,i)},RS[21]=function(t,e,i){return void 0===i&&(i=0),gr.toArray(t,e,i)},RS[25]=function(t,e,i){return void 0===i&&(i=0),Kr.toArray(t,e,i)},RS),tx=((FS={})[5]=function(t){return"number"==typeof t},FS[13]=function(t){return"number"==typeof t},FS[6]=function(t){return!!(t instanceof _s)},FS[14]=function(t){return!!(t instanceof _s)},FS[7]=function(t){return!!(t instanceof er)},FS[15]=function(t){return!!(t instanceof er)},FS[8]=function(t){return!!(t instanceof Ln)},FS[16]=function(t){return!!(t instanceof Ln||t instanceof lr||t instanceof Or)},FS[21]=function(t){return!!(t instanceof gr)},FS[25]=function(t){return!!(t instanceof Kr)},FS),ex=[Object.freeze([0]),Object.freeze([0,0]),Object.freeze([0,0,0,0]),Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])];function ix(t){switch(t){case 1:case 5:case 9:case 13:return ex[0];case 2:case 6:case 10:case 14:return ex[1];case 4:case 8:case 12:case 16:return ex[2];case 25:return ex[3];case 28:return"default-texture";case 31:return"default-cube-texture";case 29:return"default-array-texture";case 30:return"default-3d-texture"}return ex[0]}function nx(t){switch(t){case 28:return"-texture";case 31:return"-cube-texture";case 29:return"-array-texture";case 30:return"-3d-texture";default:return"-unknown"}}function rx(t,e){for(var i=Object.entries(e),n=!1,r=0;r>2)*o.count}for(var h=0;h31&&(t.uber=!0),t.constantMacros="",t.builtins.statistics)t.constantMacros+="#define "+r+" "+t.builtins.statistics[r]+"\n"}function mx(t){var e=Object.keys(t).reduce((function(e,i){return e.reduce((function(e,n){for(var s=t[i],a=0;a0&&this.shaders.length>0},e}(xm),Bx._effects={},Bx._layoutValid=!0,Tx=Vh((wx=Bx).prototype,"techniques",[hu],(function(){return[]})),Ax=Vh(wx.prototype,"shaders",[hu],(function(){return[]})),Cx=Vh(wx.prototype,"combinations",[hu],(function(){return[]})),Dx=Vh(wx.prototype,"hideInEditor",[hu,lu],(function(){return!1})),xx=wx))||xx);T.EffectAsset=Px;var Ex=function(t,e){return!(t.length>e.length)||47===t.charCodeAt(e.length)},Ox=function(t){var e=t.uuids,i=t.paths,n=t.types,r=t.deps,s=t.paths=Object.create(null);if(!1===t.debug){for(var a=0,o=e.length;a0&&zx(t)>0)){qp.remove(i);for(var n=gy.getDeps(i),r=0,s=n.length;rthis._maxInterval?this._maxInterval:e;t-this._lastDate>1e3*i&&(this._totalNumThisPeriod=0,this._lastDate=t)},t._handleQueue=function(t,e){for(this._checkNextPeriod=!1,this._updateTime();this._queue.length>0&&this._totalNum0&&(Qe(this._handleQueue.bind(this),t,e),this._checkNextPeriod=!0)},n(e,[{key:"remoteServerAddress",get:function(){return this._remoteServerAddress}},{key:"handlers",get:function(){return this._downloaders}}],[{key:"instance",get:function(){return e._instance||(e._instance=new e),e._instance}}]),e}();yw._instance=void 0;var vw,bw,Sw,xw,ww,Tw,Aw=yw.instance,Cw=yw.instance,Dw=t("e3",Kh("cc.JsonAsset")((bw=function(t){function e(e){var i;return(i=t.call(this,e)||this).json=Sw&&Sw(),i}return s(e,t),e}(xm),Sw=Vh(bw.prototype,"json",[hu],(function(){return null})),vw=bw))||vw);T.JsonAsset=Dw;var Bw,Iw,Mw=t("e2",Kh("cc.TextAsset")((ww=function(t){function e(e){var i;return(i=t.call(this,e)||this).text=Tw&&Tw(),i}return s(e,t),e.prototype.toString=function(){return this.text},e}(xm),Tw=Vh(ww.prototype,"text",[hu],(function(){return""})),xw=ww))||xw);T.TextAsset=Mw;var Pw=t("d$",Kh("cc.BufferAsset")((Iw=function(t){function e(e){var i;return(i=t.call(this,e)||this)._buffer=null,i}s(e,t);var i=e.prototype;return i.buffer=function(){return this._buffer,this._buffer},i.validate=function(){return!!this._buffer},n(e,[{key:"_nativeAsset",get:function(){return this._buffer},set:function(t){t instanceof ArrayBuffer?this._buffer=t:this._buffer=t.buffer}}]),e}(xm),v(Iw.prototype,"_nativeAsset",[Uu],Object.getOwnPropertyDescriptor(Iw.prototype,"_nativeAsset"),Iw.prototype),Bw=Iw))||Bw);function Ew(t,e,i,n){var r=null,s=null;try{(r=new Vm)._nativeUrl=t,r._nativeAsset=e}catch(t){s=t}n(s,r)}function Ow(t,e,i,n){var r=new Dw;r.json=e,n(null,r)}function kw(t,e,i,n){var r=new Mw;r.text=e,n(null,r)}function Rw(t,e,i,n){var r=new Pw;r._nativeUrl=t,r._nativeAsset=e,n(null,r)}function Fw(t,e,i,n){var r=new xm;r._nativeUrl=t,r._nativeAsset=e,n(null,r)}function Lw(t,i,n,r){var s=Kp.get(i.name);s||(s="resources"===i.name?nw:new iw,i.base=i.base||t+"/",s.init(i)),e.import("virtual:///prerequisite-imports/"+s.name).then((function(){r(null,s)})).catch(r)}T.BufferAsset=Pw;var Nw=function(){function t(){this._creating=new Wp,this._producers={".png":Ew,".jpg":Ew,".bmp":Ew,".jpeg":Ew,".gif":Ew,".ico":Ew,".tiff":Ew,".webp":Ew,".image":Ew,".pvr":Ew,".pkm":Ew,".astc":Ew,".txt":kw,".xml":kw,".vsh":kw,".fsh":kw,".atlas":kw,".tmx":kw,".tsx":kw,".fnt":kw,".json":Ow,".ExportJson":Ow,".binary":Rw,".bin":Rw,".dbbin":Rw,".skel":Rw,bundle:Lw,default:Fw}}var e=t.prototype;return e.register=function(t,e){"object"==typeof t?Zt(this._producers,t):this._producers[t]=e},e.create=function(t,e,i,n,r){var s=this,a=this._producers[i]||this._producers.default,o=qp.get(t);if(n.reloadAsset||!o){var h=this._creating.get(t);h?h.push(r):(this._creating.add(t,[r]),a(t,e,n,(function(e,i){!e&&i instanceof xm&&(i._uuid=t,Yx(t,i,n.cacheAsset));for(var r=s._creating.remove(t),a=0,o=r.length;a0){var a=em.create({input:s,progress:r,options:n,onProgress:t.onProgress,onError:em.prototype.recycle,onComplete:function(n){var r;n||((r=t.output).push.apply(r,a.output),a.recycle()),i&&Hw(t),e(n)}});Qp.async(a)}else i&&Hw(t),e()}))}function Hw(t){for(var e=t.output,i=0,n=e.length;i0&&(this.downloader.maxConcurrency=r),this._files.clear(),this._parsed.clear(),this._releaseManager.init(),this.assets.clear(),this.bundles.clear(),this.packManager.init(),this.downloader.init(e,i,n),this.parser.init(),this.dependUtil.init();var s=t.importBase||rT(sT,"importBase")||"";s&&s.endsWith("/")&&(s=s.substring(0,s.length-1));var a=t.nativeBase||rT(sT,"nativeBase")||"";a&&a.endsWith("/")&&(a=a.substring(0,a.length-1)),this.generalImportBase=s,this.generalNativeBase=a,this._projectBundles=rT(sT,"projectBundles")||[];var o=rT(sT,"assetsOverrides")||{};for(var h in o)this.assetsOverrideMap.set(h,o[h])},e.getBundle=function(t){return Kp.get(t)||null},e.removeBundle=function(t){t._destroy(),Kp.remove(t.name)},e.loadAny=function(t,e,i,n){var r=Zx(e,i,n),s=r.options,a=r.onProgress,o=r.onComplete;s.preset=s.preset||"default",t=Array.isArray(t)?t.slice():t;var h=em.create({input:t,onProgress:a,onComplete:ew(o),options:s});Jp.async(h)},e.preloadAny=function(t,e,i,n){var r=Zx(e,i,n),s=r.options,a=r.onProgress,o=r.onComplete;s.preset=s.preset||"preload",t=Array.isArray(t)?t.slice():t;var h=em.create({input:t,onProgress:a,onComplete:ew(o),options:s});Qp.async(h)},e.loadRemote=function(t,e,i){var n=Zx(e,void 0,i),r=n.options,s=n.onComplete;r.reloadAsset||!this.assets.has(t)?(r.__isNative__=!0,r.preset=r.preset||"remote",this.loadAny({url:t},r,null,(function(e,i){e?(Y(e.message,e.stack),s&&s(e,i)):Vw.create(t,i,r.ext||Go(t),r,(function(t,e){s&&s(t,e)}))}))):ew(s)(null,this.assets.get(t))},e.loadBundle=function(t,e,i){var n=Zx(e,void 0,i),r=n.options,s=n.onComplete,a=Wo(t);this.bundles.has(a)?ew(s)(null,this.getBundle(a)):(r.preset=r.preset||"bundle",r.ext="bundle",r.__isNative__=!0,this.loadAny({url:t},r,null,(function(e,i){e?(Y(e.message,e.stack),s&&s(e,i)):Vw.create(t,i,"bundle",r,(function(t,e){s&&s(t,e)}))})))},e.releaseAsset=function(t){Gx.tryRelease(t,!0)},e.releaseUnusedAssets=function(){qp.forEach((function(t){Gx.tryRelease(t)}))},e.releaseAll=function(){qp.forEach((function(t){Gx.tryRelease(t,!0)}))},e.loadWithJson=function(){throw new Error("Only valid in Editor")},n(t,[{key:"files",get:function(){return this._files}},{key:"main",get:function(){return Kp.get("main")||null}},{key:"resources",get:function(){return Kp.get("resources")||null}}],[{key:"instance",get:function(){return this._instance||(this._instance=new t),this._instance}}]),t}());oT._instance=void 0,oT.Pipeline=jp,oT.Task=em,oT.Cache=Wp,oT.RequestItem=$w,oT.Bundle=iw,oT.BuiltinBundleName={INTERNAL:"internal",RESOURCES:"resources",MAIN:"main",START_SCENE:"start-scene"},oT.CacheManager=function(){this.cacheDir=void 0,this.cacheEnabled=void 0,this.autoClear=void 0,this.cacheInterval=void 0,this.deleteInterval=void 0,this.cachedFiles=void 0},oT.Downloader=yw,oT.Parser=Xw,oT.DependUtil=py;var hT=t("ed",T.assetManager=oT.instance);T.AssetManager=oT;var uT,lT,cT=t("ek",function(){function t(){this._resources={},this._materialsToBeCompiled=[]}var e=t.prototype;return e.init=function(){for(var t=this._resources,e=new Uint8Array(16),i=new Uint8Array(16),n=new Uint8Array(16),r=new Uint8Array(16),s=new Uint8Array(16),a=0,o=0;o<4;o++)e[a]=0,e[a+1]=0,e[a+2]=0,e[a+3]=255,i[a]=0,i[a+1]=0,i[a+2]=0,i[a+3]=0,n[a]=119,n[a+1]=119,n[a+2]=119,n[a+3]=255,r[a]=255,r[a+1]=255,r[a+2]=255,r[a+3]=255,s[a]=127,s[a+1]=127,s[a+2]=255,s[a+3]=255,a+=4;var h=new Uint8Array(1024);a=0;for(var u=0;u<256;u++)h[a]=221,h[a+1]=221,h[a+2]=221,h[a+3]=255,a+=4;a=0;for(var l=0;l<8;l++){for(var c=0;c<8;c++)h[a]=85,h[a+1]=85,h[a+2]=85,h[a+3]=255,a+=4;a+=32}a+=32;for(var f=0;f<8;f++){for(var _=0;_<8;_++)h[a]=85,h[a+1]=85,h[a+2]=85,h[a+3]=255,a+=4;a+=32}var d={width:2,height:2,_data:e,_compressed:!1,format:35},p={width:2,height:2,_data:i,_compressed:!1,format:35},m={width:2,height:2,_data:n,_compressed:!1,format:35},g={width:2,height:2,_data:r,_compressed:!1,format:35},y={width:2,height:2,_data:s,_compressed:!1,format:35},v={width:16,height:16,_data:h,_compressed:!1,format:35},b=new Vm(d),S=new By;S._uuid="black-texture",S.image=b,t[S._uuid]=S;var x=new Vm(p),w=new By;w._uuid="empty-texture",w.image=x,t[w._uuid]=w;var A=new Zv;A._uuid="black-cube-texture",A.setMipFilter(1),A.image={front:new Vm(d),back:new Vm(d),left:new Vm(d),right:new Vm(d),top:new Vm(d),bottom:new Vm(d)},t[A._uuid]=A;var C=new Vm(m),D=new By;D._uuid="grey-texture",D.image=C,t[D._uuid]=D;var B=new Zv;B._uuid="grey-cube-texture",B.setMipFilter(1),B.image={front:new Vm(m),back:new Vm(m),left:new Vm(m),right:new Vm(m),top:new Vm(m),bottom:new Vm(m)},t[B._uuid]=B;var I=new Vm(g),M=new By;M._uuid="white-texture",M.image=I,t[M._uuid]=M;var P=new Zv;P._uuid="white-cube-texture",P.setMipFilter(1),P.image={front:new Vm(g),back:new Vm(g),left:new Vm(g),right:new Vm(g),top:new Vm(g),bottom:new Vm(g)},t[P._uuid]=P;var E=new Vm(y),O=new By;O._uuid="normal-texture",O.image=E,t[O._uuid]=O;var k=new Vm(v),R=new By;R._uuid="default-texture",R.image=k,t[R._uuid]=R;var F=new Zv;if(F.setMipFilter(1),F._uuid="default-cube-texture",F.image={front:new Vm(v),back:new Vm(v),left:new Vm(v),right:new Vm(v),top:new Vm(v),bottom:new Vm(v)},t[F._uuid]=F,T.SpriteFrame){var L=new T.SpriteFrame,N=b,V=new By;V.image=N,L.texture=V,L._uuid="default-spriteframe",t[L._uuid]=L}},e.addAsset=function(t,e){this._resources[t]=e},e.get=function(t){return this._resources[t]},e.loadBuiltinAssets=function(){var t=this,e=Ve.querySettings("engine","builtinAssets");if(!e)return Promise.resolve();var i=this._resources;return new Promise((function(n,r){hT.loadBundle("internal",(function(s){s?r(s):hT.loadAny(e,(function(e,s){e?r(e):(s.forEach((function(e){i[e.name]=e,Gx.addIgnoredAsset(e),e instanceof T.Material&&t._materialsToBeCompiled.push(e)})),n())}))}))}))},e.compileBuiltinMaterial=function(){for(var t=0;t=1024)&&m.lightingMap.objectID===o.objectID&&m.useReflectionProbeType===l&&m.reflectionProbeCubemap.objectID===h.objectID&&m.reflectionProbePlanarMap.objectID===u.objectID&&m.stride===r){if(m.count>=m.capacity){m.capacity<<=1;var g=m.stride*m.capacity,y=m.data;m.data=new Uint8Array(g),m.data.set(y),m.vb.resize(g)}return m.shader=c,m.descriptorSet=f,m.data.set(n.buffer,m.stride*m.count++),void(this.hasPendingModels=!0)}}for(var v=this._device.createBuffer(new sd(10,3,32*r,r)),b=new Uint8Array(32*r),S=s.vertexBuffers.slice(),x=s.attributes.slice(),w=s.indexBuffer,T=0;T>2,s=this._getBlockView(n,i),a=JS(t),o=0;o>2)*s,l=0;l+h.length<=u;l+=h.length)a.set(h,r+l);this._rootBufferDirty=!0}},e.resetTexture=function(t,e){var i=this.getHandle(t);if(i){var n,r=XS(i),s=YS(i),a=this._properties[t],o=a&&a.value,h=(n="string"==typeof o?fT.get(""+o+nx(r)):o||fT.get(ix(r)))&&n.getGFXTexture(),u=a&&void 0!==a.samplerHash?Ip.unpackFromHash(a.samplerHash):n&&n.getSamplerInfo(),l=this._device.getSampler(u);this._descriptorSet.bindSampler(s,l,e||0),this._descriptorSet.bindTexture(s,h,e||0)}},e.resetUBOs=function(){for(var t=0;t>2)*r.count,u=0;u+o.length<=h;u+=o.length)s.set(o,i+u);i+=h}this._rootBufferDirty=!0},e.resetTextures=function(){var t=this;if(T.rendering)this._shaderInfo.descriptors[1].samplerTextures.forEach((function(e){for(var i=0;i=0;--e){var i=t[e];if(i.window.swapchain)return void(kT=i)}kT=null}function FT(t,e,i,n,r){if(!GS()&&n&&n.enabled&&r===kT){var s=n.subModels[0],a=s.inputAssembler,o=s.passes,h=s.shaders,u=s.descriptorSet;xT.width=wT.width=r.window.width,xT.height=wT.height=r.window.height;var l=ST.getOrCreatePipelineState(t,o[0],h[0],e,a);i.setViewport(xT),i.setScissor(wT),i.bindPipelineState(l),i.bindDescriptorSet(1,o[0].descriptorSet),i.bindDescriptorSet(2,u),i.bindInputAssembler(a),i.draw(a)}}var LT=new Ln,NT=t("e8",(AT=Kh("cc.Material"),CT=Eu(Px),AT((BT=function(t){function e(e){var i;return(i=t.call(this,e)||this)._effectAsset=IT&&IT(),i._techIdx=MT&&MT(),i._defines=PT&&PT(),i._states=ET&&ET(),i._props=OT&&OT(),i._passes=[],i._hash=0,i}s(e,t),e.getHash=function(t){for(var e,i=0,n=p(t.passes);!(e=n()).done;)i^=e.value.hash;return i};var i=e.prototype;return i.initialize=function(t){this._passes.length?st(12005):(this._defines||(this._defines=[]),this._states||(this._states=[]),this._props||(this._props=[]),this._fillInfo(t),this._update())},i.reset=function(t){this.initialize(t)},i.destroy=function(){return this._doDestroy(),t.prototype.destroy.call(this)},i.recompileShaders=function(){st(16370,this.name)},i.overridePipelineStates=function(){st(16371,this.name)},i.onLoaded=function(){this._update()},i.resetUniforms=function(t){void 0===t&&(t=!0),this._props.length=this._passes.length;for(var e=0;e=this._passes.length&&st(16372,i);var h=this._passes[i];this._uploadProperty(h,t,e)&&(this._props[h.propertyIndex][t]=e,n=!0)}n||st(16373,t)},i.getProperty=function(t,e){if(void 0===e)for(var i=this._props,n=i.length,r=0;r=this._passes.length)return st(16372,e),null;var a=this._props[this._passes[e].propertyIndex];if(t in a)return a[t]}return null},i.copy=function(t,e){this._techIdx=t._techIdx,this._props.length=t._props.length;for(var i=0;i0},n(e,[{key:"effectAsset",get:function(){return this._effectAsset}},{key:"effectName",get:function(){return this._effectAsset?this._effectAsset.name:""}},{key:"technique",get:function(){return this._techIdx}},{key:"passes",get:function(){return this._passes}},{key:"hash",get:function(){return this._hash}},{key:"parent",get:function(){return null}},{key:"owner",get:function(){return null}}]),e}(xm),IT=Vh(BT.prototype,"_effectAsset",[CT],(function(){return null})),MT=Vh(BT.prototype,"_techIdx",[hu],(function(){return 0})),PT=Vh(BT.prototype,"_defines",[hu],(function(){return[]})),ET=Vh(BT.prototype,"_states",[hu],(function(){return[]})),OT=Vh(BT.prototype,"_props",[hu],(function(){return[]})),DT=BT))||DT));T.Material=NT;var VT=Pe({Low_256x256:256,Medium_512x512:512,High_1024x1024:1024,Ultra_2048x2048:2048}),zT=Pe({Planar:0,ShadowMap:1}),UT=Pe({HARD:0,SOFT:1,SOFT_2X:2,SOFT_4X:3}),GT=Pe({LEVEL_1:1,LEVEL_2:2,LEVEL_3:3,LEVEL_4:4}),HT=Pe({NONE:1,RemoveDuplicates:2,DisableRotationFix:3}),WT=zT.ShadowMap+1,jT=function(){function t(){this.fixedSphere=new Ys(0,0,0,.01),this.maxReceived=4,this._matLight=new Kr,this._material=null,this._instancingMaterial=null,this._enabled=!1,this._type=WT,this._distance=0,this._planeBias=1,this._normal=new er(0,1,0),this._shadowColor=new lr(0,0,0,76),this._size=new _s(1024,1024),this._shadowMapDirty=!1}var e=t.prototype;return e.getPlanarShader=function(t){this._material||(this._material=new NT,this._material.initialize({effectName:"pipeline/planar-shadow"}));var e=this._material.passes;return e.length>0?e[0].getShaderVariant(t):null},e.initialize=function(t){this._enabled=t.enabled,this._type=this.enabled?t.type:WT,this.normal=t.planeDirection,this.distance=t.planeHeight,this.planeBias=t.planeBias,this.shadowColor=t.shadowColor,this.maxReceived=t.maxReceived,t.shadowMapSize!==this._size.x&&(this.size.set(t.shadowMapSize,t.shadowMapSize),this._shadowMapDirty=!0)},e.activate=function(){if(this._enabled)if(this.type===zT.Planar)this._updatePlanarInfo();else{var t=T.director.root;t.pipeline.macros.CC_SHADOW_TYPE=2,t.onGlobalPipelineStateChanged()}else{var e=T.director.root;e.pipeline.macros.CC_SHADOW_TYPE=0,e.onGlobalPipelineStateChanged()}},e._updatePlanarInfo=function(){this._material||(this._material=new NT,this._material.initialize({effectName:"pipeline/planar-shadow"}));var t=T.director.root;t.pipeline.macros.CC_SHADOW_TYPE=1,t.onGlobalPipelineStateChanged()},e.destroy=function(){this._material&&this._material.destroy(),this._instancingMaterial&&this._instancingMaterial.destroy(),this.fixedSphere.destroy()},n(t,[{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled=t,this.activate()}},{key:"type",get:function(){return this._type},set:function(t){this._type=this.enabled?t:WT,this.activate()}},{key:"normal",get:function(){return this._normal},set:function(t){er.copy(this._normal,t)}},{key:"distance",get:function(){return this._distance},set:function(t){this._distance=t}},{key:"planeBias",get:function(){return this._planeBias},set:function(t){this._planeBias=t}},{key:"shadowColor",get:function(){return this._shadowColor},set:function(t){this._shadowColor=t}},{key:"size",get:function(){return this._size},set:function(t){this._size.set(t)}},{key:"shadowMapDirty",get:function(){return this._shadowMapDirty},set:function(t){this._shadowMapDirty=t}},{key:"matLight",get:function(){return this._matLight}},{key:"material",get:function(){return this._material}},{key:"instancingMaterial",get:function(){return this._instancingMaterial}}]),t}();jT.MAX_FAR=2e3,jT.COEFFICIENT_OF_EXPANSION=2*Math.sqrt(3),T.Shadows=jT;var qT=function(t){function e(e,i){var n;(n=t.call(this,e.root)||this)._dontNotify=!1,n._parent=e,n._owner=i,n._doInit(n._parent,!0),n._shaderInfo.blocks.forEach((function(t){var e=n._blocks[t.binding],i=n._parent.blocks[t.binding];e.set(i)})),n._rootBufferDirty=!0;var r=n._parent,s=n._descriptorSet;return n._shaderInfo.samplerTextures.forEach((function(t){for(var e=0;e0)for(var h=0;h=0&&s.node.getWritableComponents().splice(a,1)}}}function vI(t,e,i){if(!(e.length<=0))for(var n=null,r=0;r0){var h=o.pop();if(!h)continue;for(var u=0;u0){var g=p.pop();if(!g)return;for(var y=0;yMath.abs(e)?t:-e},e}(RI),zI=function(t){function e(e){var i;return(i=t.call(this)||this).up=e.up,i.down=e.down,i.left=e.left,i.right=e.right,i.xAxis=new VI({positive:i.right,negative:i.left}),i.yAxis=new VI({positive:i.up,negative:i.down}),i}return s(e,t),e.prototype.getValue=function(){return new _s(this.xAxis.getValue(),this.yAxis.getValue())},e}(FI);!function(t){function e(e){var i;return(i=t.call(this)||this).up=e.up,i.down=e.down,i.left=e.left,i.right=e.right,i.forward=e.forward,i.backward=e.backward,i.xAxis=new VI({positive:i.right,negative:i.left}),i.yAxis=new VI({positive:i.up,negative:i.down}),i.zAxis=new VI({positive:i.forward,negative:i.backward}),i}s(e,t),e.prototype.getValue=function(){return new er(this.xAxis.getValue(),this.yAxis.getValue(),this.zAxis.getValue())}}(LI);var UI,GI=function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e.prototype.getValue=function(){return t.prototype.getValue.call(this)},e}(RI),HI=function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e}(zI),WI=function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e}(zI),jI=function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e.prototype.getValue=function(){return t.prototype.getValue.call(this)},e}(NI),qI=function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e.prototype.getValue=function(){return t.prototype.getValue.call(this)},e}(LI),XI=function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e.prototype.getValue=function(){return t.prototype.getValue.call(this)},e}(RI),YI="left",KI="right",JI=[];!function(t){t[t.HAND_LEFT=1]="HAND_LEFT",t[t.HAND_RIGHT=4]="HAND_RIGHT",t[t.AIM_LEFT=2]="AIM_LEFT",t[t.AIM_RIGHT=5]="AIM_RIGHT"}(UI||(UI={}));var QI,ZI,$I,tM,eM,iM=function(){function t(t){var e;this._deviceId=-1,this._connected=!1,this._webPoseState=((e={})[UI.HAND_LEFT]={position:er.ZERO,orientation:Or.IDENTITY},e[UI.HAND_RIGHT]={position:er.ZERO,orientation:Or.IDENTITY},e[UI.AIM_LEFT]={position:er.ZERO,orientation:Or.IDENTITY},e[UI.AIM_RIGHT]={position:er.ZERO,orientation:Or.IDENTITY},e),this._deviceId=t,this._initInputSource()}t._init=function(){Lo.hasFeature(ko.EVENT_GAMEPAD)&&t._registerEvent()},t._on=function(e,i,n){t._eventTarget.on(e,i,n)},t._removeInputDevice=function(e){var i=t.all.findIndex((function(t){return t.deviceId===e}));-1!==i&&ve(t.all,i)},t._getOrCreateInputDevice=function(e,i){var n=t.all.find((function(t){return t.deviceId===e}));return n||(n=new t(e),t.all.push(n)),n._connected=i,n},t._ensureDirectorDefined=function(e){t._intervalId=setInterval((function(){A.director&&A.Director&&(clearInterval(t._intervalId),t._intervalId=-1,e())}),50)},t._updateGamepadCnt=function(){for(var e=0,i=0,n=t._cachedWebGamepads.length;i.01){a=t._getOrCreateInputDevice(r.index,!0);break}}if(a){e.push(a);continue}for(var c=s.axes,f=0;f.01){a=t._getOrCreateInputDevice(r.index,!0);break}}if(a){e.push(a);continue}}}}t._cachedWebGamepads=i}}},t._scanGamepads=function(){JI.length=0,t._scanWebGamepads(JI),t._scanWebXRGamepads(JI);for(var e=0;e0?{negative:0,positive:e}:t<0?{negative:e,positive:0}:{negative:0,positive:0}},e._updateWebPoseState=function(t){t.code!==UI.HAND_LEFT&&t.code!==UI.AIM_LEFT&&t.code!==UI.HAND_RIGHT&&t.code!==UI.AIM_RIGHT||(this._webPoseState[t.code]={position:new er(t.position.x,t.position.y,t.position.z),orientation:new Or(t.orientation.x,t.orientation.y,t.orientation.z,t.orientation.w)})},e._initInputSource=function(){var e=this;this._buttonNorth=new GI,this._buttonNorth.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(YI);return n&&n.buttons.length>5?n.buttons[5].value:0}var r=t._getWebGamepad(e.deviceId);return r?r.buttons[3].value:0},this._buttonEast=new GI,this._buttonEast.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(KI);return n&&n.buttons.length>5?n.buttons[5].value:0}var r=t._getWebGamepad(e.deviceId);return r?r.buttons[1].value:0},this._buttonWest=new GI,this._buttonWest.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(YI);return n&&n.buttons.length>4?n.buttons[4].value:0}var r=t._getWebGamepad(e.deviceId);return r?r.buttons[2].value:0},this._buttonSouth=new GI,this._buttonSouth.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(KI);return n&&n.buttons.length>4?n.buttons[4].value:0}var r=t._getWebGamepad(e.deviceId);return r?r.buttons[0].value:0},this._buttonL1=new GI,this._buttonL1.getValue=function(){var i=t._getWebGamepad(e.deviceId);return i?i.buttons[4].value:0},this._buttonL2=new GI,this._buttonL2.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(YI);return n&&n.buttons.length>0?n.buttons[0].value:0}var r=t._getWebGamepad(e.deviceId);return r?r.buttons[6].value:0},this._buttonL3=new GI,this._buttonL3.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(YI);if(n){if(n.buttons.length>3&&0!==n.buttons[3].value)return n.buttons[3].value;if(n.buttons.length>2&&0!==n.buttons[2].value)return n.buttons[2].value}return 0}var r=t._getWebGamepad(e.deviceId);return r?r.buttons[10].value:0},this._buttonR1=new GI,this._buttonR1.getValue=function(){var i=t._getWebGamepad(e.deviceId);return i?i.buttons[5].value:0},this._buttonR2=new GI,this._buttonR2.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(KI);return n&&n.buttons.length>0?n.buttons[0].value:0}var r=t._getWebGamepad(e.deviceId);return r?r.buttons[7].value:0},this._buttonR3=new GI,this._buttonR3.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(KI);if(n){if(n.buttons.length>3&&0!==n.buttons[3].value)return n.buttons[3].value;if(n.buttons.length>2&&0!==n.buttons[2].value)return n.buttons[2].value}return 0}var r=t._getWebGamepad(e.deviceId);return r?r.buttons[11].value:0},this._buttonShare=new GI,this._buttonShare.getValue=function(){var i=t._getWebGamepad(e.deviceId);return i?i.buttons[8].value:0},this._buttonOptions=new GI,this._buttonOptions.getValue=function(){var i=t._getWebGamepad(e.deviceId);return i?i.buttons[9].value:0};var i=new GI;i.getValue=function(){var i=t._getWebGamepad(e.deviceId);return i?i.buttons[12].value:0};var n=new GI;n.getValue=function(){var i=t._getWebGamepad(e.deviceId);return i?i.buttons[13].value:0};var r=new GI;r.getValue=function(){var i=t._getWebGamepad(e.deviceId);return i?i.buttons[14].value:0};var s=new GI;s.getValue=function(){var i=t._getWebGamepad(e.deviceId);return i?i.buttons[15].value:0},this._dpad=new HI({up:i,down:n,left:r,right:s});var a=new GI;a.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(YI);if(n){if(n.axes.length>3&&0!==n.axes[3])return e._axisToButtons(n.axes[3]).negative;if(n.axes.length>1&&0!==n.axes[1])return e._axisToButtons(n.axes[1]).negative}return 0}var r=t._getWebGamepad(e.deviceId);return r?e._axisToButtons(r.axes[1]).negative:0};var o=new GI;o.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(YI);if(n){if(n.axes.length>3&&0!==n.axes[3])return e._axisToButtons(n.axes[3]).positive;if(n.axes.length>1&&0!==n.axes[1])return e._axisToButtons(n.axes[1]).positive}return 0}var r=t._getWebGamepad(e.deviceId);return r?e._axisToButtons(r.axes[1]).positive:0};var h=new GI;h.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(YI);if(n){if(n.axes.length>2&&0!==n.axes[2])return e._axisToButtons(n.axes[2]).negative;if(n.axes.length>0&&0!==n.axes[0])return e._axisToButtons(n.axes[0]).negative}return 0}var r=t._getWebGamepad(e.deviceId);return r?e._axisToButtons(r.axes[0]).negative:0};var u=new GI;u.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(YI);if(n){if(n.axes.length>2&&0!==n.axes[2])return e._axisToButtons(n.axes[2]).positive;if(n.axes.length>0&&0!==n.axes[0])return e._axisToButtons(n.axes[0]).positive}return 0}var r=t._getWebGamepad(e.deviceId);return r?e._axisToButtons(r.axes[0]).positive:0},this._leftStick=new WI({up:a,down:o,left:h,right:u});var l=new GI;l.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(KI);if(n){if(n.axes.length>3&&0!==n.axes[3])return e._axisToButtons(n.axes[3]).negative;if(n.axes.length>1&&0!==n.axes[1])return e._axisToButtons(n.axes[1]).negative}return 0}var r=t._getWebGamepad(e.deviceId);return r?e._axisToButtons(r.axes[3]).negative:0};var c=new GI;c.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(KI);if(n){if(n.axes.length>3&&0!==n.axes[3])return e._axisToButtons(n.axes[3]).positive;if(n.axes.length>1&&0!==n.axes[1])return e._axisToButtons(n.axes[1]).positive}return 0}var r=t._getWebGamepad(e.deviceId);return r?e._axisToButtons(r.axes[3]).positive:0};var f=new GI;f.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(KI);if(n){if(n.axes.length>2&&0!==n.axes[2])return e._axisToButtons(n.axes[2]).negative;if(n.axes.length>0&&0!==n.axes[0])return e._axisToButtons(n.axes[0]).negative}return 0}var r=t._getWebGamepad(e.deviceId);return r?e._axisToButtons(r.axes[2]).negative:0};var _=new GI;_.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(KI);if(n){if(n.axes.length>2&&0!==n.axes[2])return e._axisToButtons(n.axes[2]).positive;if(n.axes.length>0&&0!==n.axes[0])return e._axisToButtons(n.axes[0]).positive}return 0}var r=t._getWebGamepad(e.deviceId);return r?e._axisToButtons(r.axes[2]).positive:0},this._rightStick=new WI({up:l,down:c,left:f,right:_}),this._buttonStart=new GI,this._buttonStart.getValue=function(){return 0},this._gripLeft=new GI,this._gripLeft.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(YI);if(n&&n.buttons.length>1)return n.buttons[1].value}return 0},this._gripRight=new GI,this._gripRight.getValue=function(){if(-1===e.deviceId){var i,n=null==(i=t._getWebXRGamepadMap())?void 0:i.get(KI);if(n&&n.buttons.length>1)return n.buttons[1].value}return 0},this._handLeftPosition=new qI,this._handLeftPosition.getValue=function(){return e._webPoseState[UI.HAND_LEFT].position},this._handLeftOrientation=new jI,this._handLeftOrientation.getValue=function(){return e._webPoseState[UI.HAND_LEFT].orientation},this._handRightPosition=new qI,this._handRightPosition.getValue=function(){return e._webPoseState[UI.HAND_RIGHT].position},this._handRightOrientation=new jI,this._handRightOrientation.getValue=function(){return e._webPoseState[UI.HAND_RIGHT].orientation},this._aimLeftPosition=new qI,this._aimLeftPosition.getValue=function(){return e._webPoseState[UI.AIM_LEFT].position},this._aimLeftOrientation=new jI,this._aimLeftOrientation.getValue=function(){return e._webPoseState[UI.AIM_LEFT].orientation},this._aimRightPosition=new qI,this._aimRightPosition.getValue=function(){return e._webPoseState[UI.AIM_RIGHT].position},this._aimRightOrientation=new jI,this._aimRightOrientation.getValue=function(){return e._webPoseState[UI.AIM_RIGHT].orientation}},n(t,[{key:"buttonNorth",get:function(){return this._buttonNorth}},{key:"buttonEast",get:function(){return this._buttonEast}},{key:"buttonWest",get:function(){return this._buttonWest}},{key:"buttonSouth",get:function(){return this._buttonSouth}},{key:"buttonL1",get:function(){return this._buttonL1}},{key:"buttonL2",get:function(){return this._buttonL2}},{key:"buttonL3",get:function(){return this._buttonL3}},{key:"buttonR1",get:function(){return this._buttonR1}},{key:"buttonR2",get:function(){return this._buttonR2}},{key:"buttonR3",get:function(){return this._buttonR3}},{key:"buttonShare",get:function(){return this._buttonShare}},{key:"buttonOptions",get:function(){return this._buttonOptions}},{key:"dpad",get:function(){return this._dpad}},{key:"leftStick",get:function(){return this._leftStick}},{key:"rightStick",get:function(){return this._rightStick}},{key:"buttonStart",get:function(){return this._buttonStart}},{key:"gripLeft",get:function(){return this._gripLeft}},{key:"gripRight",get:function(){return this._gripRight}},{key:"handLeftPosition",get:function(){return this._handLeftPosition}},{key:"handLeftOrientation",get:function(){return this._handLeftOrientation}},{key:"handRightPosition",get:function(){return this._handRightPosition}},{key:"handRightOrientation",get:function(){return this._handRightOrientation}},{key:"aimLeftPosition",get:function(){return this._aimLeftPosition}},{key:"aimLeftOrientation",get:function(){return this._aimLeftOrientation}},{key:"aimRightPosition",get:function(){return this._aimRightPosition}},{key:"aimRightOrientation",get:function(){return this._aimRightOrientation}},{key:"deviceId",get:function(){return this._deviceId}},{key:"connected",get:function(){return this._connected}}]),t}();iM.all=[],iM.xr=null,iM._eventTarget=new Bo,iM._cachedWebGamepads=[],iM._cachedWebXRGamepadMap=null,iM._intervalId=-1,iM._totalGamepadCnt=0,function(t){t[t.BUTTON_EAST=0]="BUTTON_EAST",t[t.BUTTON_SOUTH=1]="BUTTON_SOUTH",t[t.BUTTON_WEST=2]="BUTTON_WEST",t[t.BUTTON_NORTH=3]="BUTTON_NORTH",t[t.BUTTON_TRIGGER_LEFT=4]="BUTTON_TRIGGER_LEFT",t[t.BUTTON_TRIGGER_RIGHT=5]="BUTTON_TRIGGER_RIGHT",t[t.TRIGGER_LEFT=6]="TRIGGER_LEFT",t[t.TRIGGER_RIGHT=7]="TRIGGER_RIGHT",t[t.GRIP_LEFT=8]="GRIP_LEFT",t[t.GRIP_RIGHT=9]="GRIP_RIGHT",t[t.BUTTON_LEFT_STICK=10]="BUTTON_LEFT_STICK",t[t.LEFT_STICK_UP=11]="LEFT_STICK_UP",t[t.LEFT_STICK_DOWN=12]="LEFT_STICK_DOWN",t[t.LEFT_STICK_LEFT=13]="LEFT_STICK_LEFT",t[t.LEFT_STICK_RIGHT=14]="LEFT_STICK_RIGHT",t[t.BUTTON_RIGHT_STICK=15]="BUTTON_RIGHT_STICK",t[t.RIGHT_STICK_UP=16]="RIGHT_STICK_UP",t[t.RIGHT_STICK_DOWN=17]="RIGHT_STICK_DOWN",t[t.RIGHT_STICK_LEFT=18]="RIGHT_STICK_LEFT",t[t.RIGHT_STICK_RIGHT=19]="RIGHT_STICK_RIGHT",t[t.ROKID_MENU=20]="ROKID_MENU",t[t.ROKID_START=21]="ROKID_START"}(QI||(QI={})),function(t){t[t.KET_CLICK=0]="KET_CLICK",t[t.KET_STICK=1]="KET_STICK",t[t.KET_GRAB=2]="KET_GRAB",t[t.KET_TOUCH=3]="KET_TOUCH"}(ZI||(ZI={})),function(t){t[t.UNDEFINE=0]="UNDEFINE",t[t.A=1]="A",t[t.B=2]="B",t[t.X=3]="X",t[t.Y=4]="Y",t[t.L1=5]="L1",t[t.R1=6]="R1",t[t.MINUS=7]="MINUS",t[t.PLUS=8]="PLUS",t[t.L3=9]="L3",t[t.R3=10]="R3",t[t.MENU=11]="MENU",t[t.START=12]="START",t[t.TRIGGER_LEFT=13]="TRIGGER_LEFT",t[t.TRIGGER_RIGHT=14]="TRIGGER_RIGHT"}($I||($I={})),function(t){t[t.UNDEFINE=0]="UNDEFINE",t[t.X=1]="X",t[t.Y=2]="Y",t[t.LEFT_STICK_X=3]="LEFT_STICK_X",t[t.LEFT_STICK_Y=4]="LEFT_STICK_Y",t[t.RIGHT_STICK_X=5]="RIGHT_STICK_X",t[t.RIGHT_STICK_Y=6]="RIGHT_STICK_Y",t[t.L2=7]="L2",t[t.R2=8]="R2",t[t.LEFT_GRIP=9]="LEFT_GRIP",t[t.RIGHT_GRIP=10]="RIGHT_GRIP"}(tM||(tM={})),function(t){t[t.UNDEFINE=0]="UNDEFINE",t[t.A=1]="A",t[t.B=2]="B",t[t.X=3]="X",t[t.Y=4]="Y",t[t.LEFT_TRIGGER=5]="LEFT_TRIGGER",t[t.RIGHT_TRIGGER=6]="RIGHT_TRIGGER",t[t.LEFT_THUMBSTICK=7]="LEFT_THUMBSTICK",t[t.RIGHT_THUMBSTICK=8]="RIGHT_THUMBSTICK"}(eM||(eM={}));var nM,rM={1:QI.BUTTON_EAST,2:QI.BUTTON_SOUTH,3:QI.BUTTON_NORTH,4:QI.BUTTON_WEST,9:QI.BUTTON_LEFT_STICK,10:QI.BUTTON_RIGHT_STICK,11:QI.ROKID_MENU,12:QI.ROKID_START,13:QI.BUTTON_TRIGGER_LEFT,14:QI.BUTTON_TRIGGER_RIGHT},sM=function(){function t(){var t,e,i=this;this._eventTarget=new Bo,this._nativeButtonState=((t={})[QI.BUTTON_SOUTH]=0,t[QI.BUTTON_EAST]=0,t[QI.BUTTON_WEST]=0,t[QI.BUTTON_NORTH]=0,t[QI.BUTTON_TRIGGER_LEFT]=0,t[QI.BUTTON_TRIGGER_RIGHT]=0,t[QI.TRIGGER_LEFT]=0,t[QI.TRIGGER_RIGHT]=0,t[QI.GRIP_LEFT]=0,t[QI.GRIP_RIGHT]=0,t[QI.LEFT_STICK_UP]=0,t[QI.LEFT_STICK_DOWN]=0,t[QI.LEFT_STICK_LEFT]=0,t[QI.LEFT_STICK_RIGHT]=0,t[QI.RIGHT_STICK_UP]=0,t[QI.RIGHT_STICK_DOWN]=0,t[QI.RIGHT_STICK_LEFT]=0,t[QI.RIGHT_STICK_RIGHT]=0,t[QI.BUTTON_LEFT_STICK]=0,t[QI.BUTTON_RIGHT_STICK]=0,t[QI.ROKID_MENU]=0,t[QI.ROKID_START]=0,t),this._nativeTouchState=((e={})[eM.UNDEFINE]=0,e[eM.A]=0,e[eM.B]=0,e[eM.X]=0,e[eM.Y]=0,e[eM.LEFT_TRIGGER]=0,e[eM.RIGHT_TRIGGER]=0,e[eM.LEFT_THUMBSTICK]=0,e[eM.RIGHT_THUMBSTICK]=0,e),this._initInputSource(),window.addEventListener("xr-remote-input",(function(t){var e=t,n=e.detail.keyEventType,r=e.detail.stickAxisCode,s=e.detail.stickAxisValue,a=e.detail.stickKeyCode,o=e.detail.isButtonPressed,h=e.detail.touchCode,u=e.detail.touchValue;if(n===ZI.KET_CLICK){var l=rM[a];i._nativeButtonState[l]=o?1:0}else if(n===ZI.KET_STICK||n===ZI.KET_GRAB){var c,f,_;switch(r){case tM.LEFT_STICK_X:c=QI.LEFT_STICK_LEFT,f=QI.LEFT_STICK_RIGHT,_=i._axisToButtons(s);break;case tM.LEFT_STICK_Y:c=QI.LEFT_STICK_DOWN,f=QI.LEFT_STICK_UP,_=i._axisToButtons(s);break;case tM.RIGHT_STICK_X:c=QI.RIGHT_STICK_LEFT,f=QI.RIGHT_STICK_RIGHT,_=i._axisToButtons(s);break;case tM.RIGHT_STICK_Y:c=QI.RIGHT_STICK_DOWN,f=QI.RIGHT_STICK_UP,_=i._axisToButtons(s);break;case tM.L2:i._nativeButtonState[QI.TRIGGER_LEFT]=s;break;case tM.R2:i._nativeButtonState[QI.TRIGGER_RIGHT]=s;break;case tM.LEFT_GRIP:i._nativeButtonState[QI.GRIP_LEFT]=s;break;case tM.RIGHT_GRIP:i._nativeButtonState[QI.GRIP_RIGHT]=s}c&&f&&_&&(i._nativeButtonState[c]=_.negative,i._nativeButtonState[f]=_.positive)}else if(n===ZI.KET_TOUCH)switch(h){case eM.A:case eM.B:case eM.X:case eM.Y:case eM.LEFT_TRIGGER:case eM.RIGHT_TRIGGER:case eM.LEFT_THUMBSTICK:case eM.RIGHT_THUMBSTICK:i._nativeTouchState[h]=u}i._eventTarget.emit("handle-input",new qy("handle-input",i))}))}var e=t.prototype;return e._axisToButtons=function(t){var e=Math.abs(t);return t>0?{negative:0,positive:e}:t<0?{negative:e,positive:0}:{negative:0,positive:0}},e._on=function(t,e,i){this._eventTarget.on(t,e,i)},e._initInputSource=function(){var t=this;this._buttonNorth=new GI,this._buttonNorth.getValue=function(){return t._nativeButtonState[QI.BUTTON_NORTH]},this._buttonEast=new GI,this._buttonEast.getValue=function(){return t._nativeButtonState[QI.BUTTON_EAST]},this._buttonWest=new GI,this._buttonWest.getValue=function(){return t._nativeButtonState[QI.BUTTON_WEST]},this._buttonSouth=new GI,this._buttonSouth.getValue=function(){return t._nativeButtonState[QI.BUTTON_SOUTH]},this._buttonTriggerLeft=new GI,this._buttonTriggerLeft.getValue=function(){return t._nativeButtonState[QI.BUTTON_TRIGGER_LEFT]},this._buttonTriggerRight=new GI,this._buttonTriggerRight.getValue=function(){return t._nativeButtonState[QI.BUTTON_TRIGGER_RIGHT]},this._triggerLeft=new GI,this._triggerLeft.getValue=function(){return t._nativeButtonState[QI.TRIGGER_LEFT]},this._triggerRight=new GI,this._triggerRight.getValue=function(){return t._nativeButtonState[QI.TRIGGER_RIGHT]},this._gripLeft=new GI,this._gripLeft.getValue=function(){return t._nativeButtonState[QI.GRIP_LEFT]},this._gripRight=new GI,this._gripRight.getValue=function(){return t._nativeButtonState[QI.GRIP_RIGHT]},this._buttonLeftStick=new GI,this._buttonLeftStick.getValue=function(){return t._nativeButtonState[QI.BUTTON_LEFT_STICK]};var e=new GI;e.getValue=function(){return t._nativeButtonState[QI.LEFT_STICK_UP]};var i=new GI;i.getValue=function(){return t._nativeButtonState[QI.LEFT_STICK_DOWN]};var n=new GI;n.getValue=function(){return t._nativeButtonState[QI.LEFT_STICK_LEFT]};var r=new GI;r.getValue=function(){return t._nativeButtonState[QI.LEFT_STICK_RIGHT]},this._leftStick=new WI({up:e,down:i,left:n,right:r}),this._buttonRightStick=new GI,this._buttonRightStick.getValue=function(){return t._nativeButtonState[QI.BUTTON_RIGHT_STICK]};var s=new GI;s.getValue=function(){return t._nativeButtonState[QI.RIGHT_STICK_UP]};var a=new GI;a.getValue=function(){return t._nativeButtonState[QI.RIGHT_STICK_DOWN]};var o=new GI;o.getValue=function(){return t._nativeButtonState[QI.RIGHT_STICK_LEFT]};var h=new GI;h.getValue=function(){return t._nativeButtonState[QI.RIGHT_STICK_RIGHT]},this._rightStick=new WI({up:s,down:a,left:o,right:h}),this._buttonOptions=new GI,this._buttonOptions.getValue=function(){return t._nativeButtonState[QI.ROKID_MENU]},this._buttonStart=new GI,this._buttonStart.getValue=function(){return t._nativeButtonState[QI.ROKID_START]},this._handLeftPosition=new qI,this._handLeftPosition.getValue=function(){return er.ZERO},this._handLeftOrientation=new jI,this._handLeftOrientation.getValue=function(){return Or.IDENTITY},this._handRightPosition=new qI,this._handRightPosition.getValue=function(){return er.ZERO},this._handRightOrientation=new jI,this._handRightOrientation.getValue=function(){return Or.IDENTITY},this._aimLeftPosition=new qI,this._aimLeftPosition.getValue=function(){return er.ZERO},this._aimLeftOrientation=new jI,this._aimLeftOrientation.getValue=function(){return Or.IDENTITY},this._aimRightPosition=new qI,this._aimRightPosition.getValue=function(){return er.ZERO},this._aimRightOrientation=new jI,this._aimRightOrientation.getValue=function(){return Or.IDENTITY},this._touchButtonA=new XI,this._touchButtonA.getValue=function(){return t._nativeTouchState[eM.A]},this._touchButtonB=new XI,this._touchButtonB.getValue=function(){return t._nativeTouchState[eM.B]},this._touchButtonX=new XI,this._touchButtonX.getValue=function(){return t._nativeTouchState[eM.X]},this._touchButtonY=new XI,this._touchButtonY.getValue=function(){return t._nativeTouchState[eM.Y]},this._touchButtonTriggerLeft=new XI,this._touchButtonTriggerLeft.getValue=function(){return t._nativeTouchState[eM.LEFT_TRIGGER]},this._touchButtonTriggerRight=new XI,this._touchButtonTriggerRight.getValue=function(){return t._nativeTouchState[eM.RIGHT_TRIGGER]},this._touchButtonThumbStickLeft=new XI,this._touchButtonThumbStickLeft.getValue=function(){return t._nativeTouchState[eM.LEFT_THUMBSTICK]},this._touchButtonThumbStickRight=new XI,this._touchButtonThumbStickRight.getValue=function(){return t._nativeTouchState[eM.RIGHT_THUMBSTICK]}},n(t,[{key:"buttonNorth",get:function(){return this._buttonNorth}},{key:"buttonEast",get:function(){return this._buttonEast}},{key:"buttonWest",get:function(){return this._buttonWest}},{key:"buttonSouth",get:function(){return this._buttonSouth}},{key:"buttonTriggerLeft",get:function(){return this._buttonTriggerLeft}},{key:"buttonTriggerRight",get:function(){return this._buttonTriggerRight}},{key:"triggerLeft",get:function(){return this._triggerLeft}},{key:"triggerRight",get:function(){return this._triggerRight}},{key:"gripLeft",get:function(){return this._gripLeft}},{key:"gripRight",get:function(){return this._gripRight}},{key:"leftStick",get:function(){return this._leftStick}},{key:"rightStick",get:function(){return this._rightStick}},{key:"buttonLeftStick",get:function(){return this._buttonLeftStick}},{key:"buttonRightStick",get:function(){return this._buttonRightStick}},{key:"buttonOptions",get:function(){return this._buttonOptions}},{key:"buttonStart",get:function(){return this._buttonStart}},{key:"handLeftPosition",get:function(){return this._handLeftPosition}},{key:"handLeftOrientation",get:function(){return this._handLeftOrientation}},{key:"handRightPosition",get:function(){return this._handRightPosition}},{key:"handRightOrientation",get:function(){return this._handRightOrientation}},{key:"aimLeftPosition",get:function(){return this._aimLeftPosition}},{key:"aimLeftOrientation",get:function(){return this._aimLeftOrientation}},{key:"aimRightPosition",get:function(){return this._aimRightPosition}},{key:"aimRightOrientation",get:function(){return this._aimRightOrientation}},{key:"touchButtonA",get:function(){return this._touchButtonA}},{key:"touchButtonB",get:function(){return this._touchButtonB}},{key:"touchButtonX",get:function(){return this._touchButtonX}},{key:"touchButtonY",get:function(){return this._touchButtonY}},{key:"touchButtonTriggerLeft",get:function(){return this._touchButtonTriggerLeft}},{key:"touchButtonTriggerRight",get:function(){return this._touchButtonTriggerRight}},{key:"touchButtonThumbStickLeft",get:function(){return this._touchButtonThumbStickLeft}},{key:"touchButtonThumbStickRight",get:function(){return this._touchButtonThumbStickRight}}]),t}();!function(t){t[t.VIEW_LEFT=0]="VIEW_LEFT",t[t.VIEW_RIGHT=3]="VIEW_RIGHT",t[t.HEAD_MIDDLE=6]="HEAD_MIDDLE"}(nM||(nM={}));var aM,oM=function(){function t(){var t;this._eventTarget=new Bo,this._intervalId=-1,this._webPoseState=((t={})[nM.VIEW_LEFT]={position:er.ZERO,orientation:Or.IDENTITY},t[nM.VIEW_RIGHT]={position:er.ZERO,orientation:Or.IDENTITY},t[nM.HEAD_MIDDLE]={position:er.ZERO,orientation:Or.IDENTITY},t),this._initInputSource(),this._registerEvent()}var e=t.prototype;return e._ensureDirectorDefined=function(){var t=this;return new Promise((function(e){t._intervalId=setInterval((function(){A.director&&A.Director&&(clearInterval(t._intervalId),t._intervalId=-1,e())}),50)}))},e._registerEvent=function(){var t=this;this._ensureDirectorDefined().then((function(){A.director.on(A.Director.EVENT_BEGIN_FRAME,t._scanHmd,t)})).catch((function(){}))},e._scanHmd=function(){var t,e=null==(t=globalThis.__globalXR)?void 0:t.webxrHmdPoseInfos;if(e){for(var i=0;ize.TOUCH_TIMEOUT&&(et(2302,t.getID()),e.releaseTouch(t.getID()))})),i>=this._touchMap.size},t}()),dM=function(){function t(){this._canvas=void 0,this._eventTarget=new Bo,Lo.hasFeature(ko.INPUT_TOUCH)&&(this._canvas=document.getElementById("GameCanvas"),this._canvas||X("failed to access canvas"),this._registerEvent())}var e=t.prototype;return e._registerEvent=function(){var t,e,i,n;null==(t=this._canvas)||t.addEventListener("touchstart",this._createCallback("touch-start")),null==(e=this._canvas)||e.addEventListener("touchmove",this._createCallback("touch-move")),null==(i=this._canvas)||i.addEventListener("touchend",this._createCallback("touch-end")),null==(n=this._canvas)||n.addEventListener("touchcancel",this._createCallback("touch-cancel"))},e._createCallback=function(t){var e=this;return function(i){for(var n,r=e._getCanvasRect(),s=[],a=i.changedTouches.length,o=0;o0){var f=new Wy(s,!1,t,_M.getAllTouches());e._eventTarget.emit(t,f)}}},e._getCanvasRect=function(){var t=this._canvas,e=null==t?void 0:t.getBoundingClientRect();return e?new vs(e.x,e.y,e.width,e.height):new vs(0,0,0,0)},e._getLocation=function(t,e){if(globalThis.__globalXR&&globalThis.__globalXR.ar&&globalThis.__globalXR.ar.isWebXR())return new _s(t.clientX,t.clientY);var i=t.clientX-e.x,n=e.y+e.height-t.clientY;if(rh.isFrameRotated){var r=i;i=e.height-n,n=r}var s=rh.devicePixelRatio;return new _s(i*=s,n*=s)},e.on=function(t,e,i){this._eventTarget.on(t,e,i)},e.dispatchEventsInCache=function(){},t}(),pM=function(){function t(t){this.priority=0,this._inputEventTarget=t}var e=t.prototype;return e.onThrowException=function(){},e.dispatchEvent=function(t){return this._inputEventTarget.emit(t.type,t),!0},t}(),mM=((aM={})["mouse-down"]="touch-start",aM["mouse-move"]="touch-move",aM["mouse-up"]="touch-end",aM),gM=t("eB",function(){function t(){this._eventTarget=new Bo,this._touchInput=new dM,this._mouseInput=new cM,this._keyboardInput=new lM,this._accelerometerInput=new OI,this._eventKeyboardList=[],this._eventAccelerationList=[],this._eventGamepadList=[],this._eventHandleList=[],this._eventHMDList=[],this._eventHandheldList=[],this._needSimulateTouchMoveEvent=!1,this._eventDispatcherList=[],this._handleInput=new sM,this._hmdInput=new oM,this._handheldInput=new hM,this._registerEvent(),this._inputEventDispatcher=new pM(this._eventTarget),this._registerEventDispatcher(this._inputEventDispatcher),iM._init()}var e=t.prototype;return e._dispatchMouseDownEvent=function(t){var e,i;null==(e=(i=this._mouseInput).dispatchMouseDownEvent)||e.call(i,t)},e._dispatchMouseMoveEvent=function(t){var e,i;null==(e=(i=this._mouseInput).dispatchMouseMoveEvent)||e.call(i,t)},e._dispatchMouseUpEvent=function(t){var e,i;null==(e=(i=this._mouseInput).dispatchMouseUpEvent)||e.call(i,t)},e._dispatchMouseScrollEvent=function(t){var e,i;null==(e=(i=this._mouseInput).dispatchScrollEvent)||e.call(i,t)},e._dispatchKeyboardDownEvent=function(t){var e,i;null==(e=(i=this._keyboardInput).dispatchKeyboardDownEvent)||e.call(i,t)},e._dispatchKeyboardUpEvent=function(t){var e,i;null==(e=(i=this._keyboardInput).dispatchKeyboardUpEvent)||e.call(i,t)},e.on=function(t,e,i){return this._eventTarget.on(t,e,i),e},e.once=function(t,e,i){return this._eventTarget.once(t,e,i),e},e.off=function(t,e,i){this._eventTarget.off(t,e,i)},e.getTouch=function(t){return _M.getTouch(t)},e.getAllTouches=function(){return _M.getAllTouches()},e.getTouchCount=function(){return _M.getTouchCount()},e.setAccelerometerEnabled=function(t){t?this._accelerometerInput.start():this._accelerometerInput.stop()},e.setAccelerometerInterval=function(t){this._accelerometerInput.setInterval(t)},e._simulateEventTouch=function(t){var e=mM[t.type],i=_M.getOrCreateTouch(0,t.getLocationX(),t.getLocationY());if(i){var n=[i],r=new Wy(n,!1,e,"touch-end"===e?[]:n);r.windowId=t.windowId,"touch-end"===e&&_M.releaseTouch(0),this._dispatchEventTouch(r)}},e._registerEventDispatcher=function(t){this._eventDispatcherList.push(t),this._eventDispatcherList.sort((function(t,e){return e.priority-t.priority}))},e._emitEvent=function(t){for(var e=this._eventDispatcherList.length,i=0;i8?ot(12004,8):(this._passes=t,this._flushPassInfo(),this._descriptorSet&&(this._descriptorSet.destroy(),FM.layout=t[0].localSetLayout,this._descriptorSet=this._device.createDescriptorSet(FM)))}},{key:"shaders",get:function(){return this._shaders}},{key:"subMesh",get:function(){return this._subMesh},set:function(t){this._inputAssembler.destroy(),this._inputAssembler=this._device.createInputAssembler(t.iaInfo),this._subMesh=t}},{key:"priority",get:function(){return this._priority},set:function(t){this._priority=t}},{key:"inputAssembler",get:function(){return this._inputAssembler}},{key:"descriptorSet",get:function(){return this._descriptorSet}},{key:"worldBoundDescriptorSet",get:function(){return this._worldBoundDescriptorSet}},{key:"patches",get:function(){return this._patches}},{key:"instancedAttributeBlock",get:function(){return this._instancedAttributeBlock}},{key:"instancedWorldMatrixIndex",get:function(){return this._instancedWorldMatrixIndex},set:function(t){this._instancedWorldMatrixIndex=t}},{key:"instancedSHIndex",get:function(){return this._instancedSHIndex},set:function(t){this._instancedSHIndex=t}},{key:"useReflectionProbeType",get:function(){return this._useReflectionProbeType},set:function(t){this._useReflectionProbeType=t}}]),t}(),NM=new Kr,VM=[{name:"CC_RECEIVE_SHADOW",value:!0}],zM=[{name:"CC_USE_LIGHTMAP",value:1}],UM=[{name:"CC_USE_LIGHTMAP",value:2}],GM=[{name:"CC_LIGHT_MAP_VERSION",value:2}],HM=[{name:"CC_USE_LIGHT_PROBE",value:!0}],WM=new fd(2,2,0,2,2,2),jM=new fd(2,2,2,2,2,2),qM=function(){function t(){this.type=0,this.scene=null,this.isDynamicBatching=!1,this._worldBounds=null,this._modelBounds=null,this._subModels=[],this._node=null,this._transform=null,this._inited=!1,this._descriptorSetCount=1,this._updateStamp=-1,this._localDataUpdated=!0,this._localData=new Float32Array(56),this._localBuffer=null,this._localSHData=null,this._localSHBuffer=null,this._lightmap=null,this._lightmapUVParam=Nn(),this._tetrahedronIndex=-1,this._lastWorldBoundCenter=ir(1/0,1/0,1/0),this._useLightProbe=!1,this._worldBoundBuffer=null,this._receiveShadow=!1,this._castShadow=!1,this._receiveDirLight=!0,this._shadowBias=0,this._shadowNormalBias=0,this._reflectionProbeId=-1,this._reflectionProbeBlendId=-1,this._reflectionProbeBlendWeight=0,this._enabled=!0,this._visFlags=Oy.Enum.NONE,this._priority=0,this._bakeToReflectionProbe=!0,this._reflectionProbeType=0,this._device=zp.gfxDevice}var e=t.prototype;return e.initialize=function(){this._inited||(this._receiveShadow=!0,this.castShadow=!1,this.enabled=!0,this.visFlags=Oy.Enum.NONE,this._inited=!0,this._bakeToReflectionProbe=!0,this._reflectionProbeType=0)},e.destroy=function(){for(var t=this._subModels,e=0;e=0?h.updateInstancedWorldMatrix(s,u):a=!0}(a||r)&&this._localBuffer&&(Kr.toArray(this._localData,s,0),Kr.invert(NM,s),Kr.transpose(NM,NM),Kr.toArray(this._localData,NM,16),this._localBuffer.update(this._localData))}},e.invalidateLocalData=function(){this._localDataUpdated=!0},e.showTetrahedron=function(){return this.isLightProbeAvailable()},e.isLightProbeAvailable=function(){if(!this._useLightProbe)return!1;var t=tb().lightProbes;return!(!t||t.empty()||!this._worldBounds)},e.updateSHBuffer=function(){if(this._localSHData){for(var t=this._subModels,e=!1,i=0;i=0?n.updateInstancedSH(this._localSHData,r):e=!0}e&&this._localSHBuffer&&this._localSHBuffer.update(this._localSHData)}},e.clearSHUBOs=function(){if(this._localSHData){for(var t=0;t<28;t++)this._localSHData[t]=0;this.updateSHBuffer()}},e.updateSHUBOs=function(){if(this.isLightProbeAvailable()){var t=this._worldBounds.center;if(!t.equals(this._lastWorldBoundCenter,Ki)){var e=[],i=new Ln,n=T.director.root.pipeline.pipelineSceneData.lightProbes;if(this._lastWorldBoundCenter.set(t),this._tetrahedronIndex=n.data.getInterpolationWeights(t,this._tetrahedronIndex,i),n.data.getInterpolationSHCoefficients(this._tetrahedronIndex,i,e)&&this._localSHData){var r=T.internal.SH;r.reduceRinging(e,n.reduceRinging),r.updateUBOData(this._localSHData,0,e),this.updateSHBuffer()}}}},e.createBoundingShape=function(t,e){t&&e&&(this._modelBounds||(this._modelBounds=mh.create()),this._worldBounds||(this._worldBounds=mh.create()),mh.fromPoints(this._modelBounds,t,e),this._worldBounds.copy(this._modelBounds))},e._createSubModel=function(){return new LM},e.initSubModel=function(t,e,i){this.initialize(),null==this._subModels[t]?this._subModels[t]=this._createSubModel():this._subModels[t].destroy(),this._subModels[t].initialize(e,i.passes,this.getMacroPatches(t)),this._updateAttributesAndBinding(t)},e.setSubModelMesh=function(t,e){this._subModels[t]&&(this._subModels[t].subMesh=e)},e.setSubModelMaterial=function(t,e){this._subModels[t]&&(this._subModels[t].passes=e.passes,this._updateAttributesAndBinding(t))},e.onGlobalPipelineStateChanged=function(){for(var t=this._subModels,e=0;e1?jM:WM),r=this._subModels,s=0;s15e3&&(e=15e3);var i=e*e,n=(.860117757+.000154118254*e+1.28641212e-7*i)/(1+.000842420235*e+7.08145163e-7*i),r=(.317398726+422806245e-13*e+4.20481691e-8*i)/(1-289741816e-13*e+1.61456053e-7*i),s=2*n-8*r+4,a=3*n/s,o=2*r/s,h=1/o*a,u=1/o*(1-a-o);t.x=3.2404542*h-1.5371385+-.4985314*u,t.y=-.969266*h+1.8760108+.041556*u,t.z=.0556434*h-.2040259+1.0572252*u}var JM,QM={DIRECTIONAL:0,SPHERE:1,SPOT:2,POINT:3,RANGED_DIRECTIONAL:4,UNKNOWN:5},ZM=function(t){return 4*Math.PI*Math.PI*t*t},$M=function(){function t(){this._baked=!1,this._color=ir(1,1,1),this._colorTemp=6550,this._colorTempRGB=ir(1,1,1),this._finalColor=ir(1,1,1),this._scene=null,this._node=null,this._name=null,this._useColorTemperature=!1,this._type=5,this._visibility=LS}var e=t.prototype;return e.initialize=function(){this.color=ir(1,1,1),this.colorTemperature=6550},e.attachToScene=function(t){this._scene=t},e.detachFromScene=function(){this._scene=null},e.destroy=function(){this._name=null,this._node=null},e.update=function(){},n(t,[{key:"baked",get:function(){return this._baked},set:function(t){this._baked=t}},{key:"color",get:function(){return this._color},set:function(t){this._color.set(t),this._useColorTemperature&&er.multiply(this._finalColor,this._color,this._colorTempRGB)}},{key:"useColorTemperature",get:function(){return this._useColorTemperature},set:function(t){this._useColorTemperature=t,t&&er.multiply(this._finalColor,this._color,this._colorTempRGB)}},{key:"colorTemperature",get:function(){return this._colorTemp},set:function(t){this._colorTemp=t,KM(this._colorTempRGB,this._colorTemp),this._useColorTemperature&&er.multiply(this._finalColor,this._color,this._colorTempRGB)}},{key:"colorTemperatureRGB",get:function(){return this._colorTempRGB}},{key:"finalColor",get:function(){return this._finalColor}},{key:"visibility",get:function(){return this._visibility},set:function(t){this._visibility=t}},{key:"node",get:function(){return this._node},set:function(t){this._node=t,this._node&&(this._node.hasChangedFlags|=2)}},{key:"type",get:function(){return this._type}},{key:"name",get:function(){return this._name},set:function(t){this._name=t}},{key:"scene",get:function(){return this._scene}}]),t}(),tP=new er(0,0,-1),eP=new er,iP=function(t){function e(){var e;return(e=t.call(this)||this)._dir=new er(1,-1,-1),e._illuminanceHDR=pb.SUN_ILLUM,e._illuminanceLDR=1,e._shadowEnabled=!1,e._shadowPcf=UT.HARD,e._shadowBias=1e-5,e._shadowNormalBias=0,e._shadowSaturation=1,e._shadowDistance=50,e._shadowInvisibleOcclusionRange=200,e._csmLevel=GT.LEVEL_4,e._csmNeedUpdate=!1,e._csmLayerLambda=.75,e._csmOptimizationMode=HT.DisableRotationFix,e._csmLayersTransition=!1,e._csmTransitionRange=.05,e._shadowFixedArea=!1,e._shadowNear=.1,e._shadowFar=10,e._shadowOrthoSize=5,e._type=0,e}s(e,t);var i=e.prototype;return i.initialize=function(){t.prototype.initialize.call(this),this.illuminance=pb.SUN_ILLUM,this.direction=new er(1,-1,-1)},i.update=function(){this._node&&this._node.hasChangedFlags&&(this.direction=er.transformQuat(eP,tP,this._node.worldRotation))},i.activate=function(){var t=T.director.root,e=t.pipeline;this._shadowEnabled?(this._shadowFixedArea||!e.pipelineSceneData.csmSupported?e.macros.CC_DIR_LIGHT_SHADOW_TYPE=1:this.csmLevel>1&&e.pipelineSceneData.csmSupported?(e.macros.CC_DIR_LIGHT_SHADOW_TYPE=2,e.macros.CC_CASCADED_LAYERS_TRANSITION=this._csmLayersTransition):e.macros.CC_DIR_LIGHT_SHADOW_TYPE=1,e.macros.CC_DIR_SHADOW_PCF_TYPE=this._shadowPcf):e.macros.CC_DIR_LIGHT_SHADOW_TYPE=0,t.onGlobalPipelineStateChanged()},n(e,[{key:"direction",get:function(){return this._dir},set:function(t){er.normalize(this._dir,t)}},{key:"illuminance",get:function(){return tb().isHDR?this._illuminanceHDR:this._illuminanceLDR},set:function(t){tb().isHDR?this.illuminanceHDR=t:this.illuminanceLDR=t}},{key:"illuminanceHDR",get:function(){return this._illuminanceHDR},set:function(t){this._illuminanceHDR=t}},{key:"illuminanceLDR",get:function(){return this._illuminanceLDR},set:function(t){this._illuminanceLDR=t}},{key:"shadowEnabled",get:function(){return this._shadowEnabled},set:function(t){this._shadowEnabled=t,this.activate()}},{key:"shadowPcf",get:function(){return this._shadowPcf},set:function(t){this._shadowPcf=t,this.activate()}},{key:"shadowBias",get:function(){return this._shadowBias},set:function(t){this._shadowBias=t}},{key:"shadowNormalBias",get:function(){return this._shadowNormalBias},set:function(t){this._shadowNormalBias=t}},{key:"shadowSaturation",get:function(){return this._shadowSaturation},set:function(t){this._shadowSaturation=t}},{key:"shadowDistance",get:function(){return this._shadowDistance},set:function(t){this._shadowDistance=Math.min(t,jT.MAX_FAR)}},{key:"shadowInvisibleOcclusionRange",get:function(){return this._shadowInvisibleOcclusionRange},set:function(t){this._shadowInvisibleOcclusionRange=Math.min(t,jT.MAX_FAR)}},{key:"csmLevel",get:function(){return this._csmLevel},set:function(t){this._csmLevel=t,this.activate()}},{key:"csmNeedUpdate",get:function(){return this._csmNeedUpdate},set:function(t){this._csmNeedUpdate=t}},{key:"csmLayerLambda",get:function(){return this._csmLayerLambda},set:function(t){this._csmLayerLambda=t}},{key:"csmOptimizationMode",get:function(){return this._csmOptimizationMode},set:function(t){this._csmOptimizationMode=t}},{key:"shadowFixedArea",get:function(){return this._shadowFixedArea},set:function(t){this._shadowFixedArea=t,this.activate()}},{key:"shadowNear",get:function(){return this._shadowNear},set:function(t){this._shadowNear=t}},{key:"shadowFar",get:function(){return this._shadowFar},set:function(t){this._shadowFar=Math.min(t,jT.MAX_FAR)}},{key:"shadowOrthoSize",get:function(){return this._shadowOrthoSize},set:function(t){this._shadowOrthoSize=t}},{key:"csmLayersTransition",get:function(){return this._csmLayersTransition},set:function(t){this._csmLayersTransition=t,this.activate()}},{key:"csmTransitionRange",get:function(){return this._csmTransitionRange},set:function(t){this._csmTransitionRange=t}}]),e}($M),nP=function(t){function e(){var e;return(e=t.call(this)||this)._needUpdate=!1,e._size=.15,e._range=1,e._luminanceHDR=0,e._luminanceLDR=0,e._pos=new er,e._aabb=mh.create(),e._type=1,e}s(e,t);var i=e.prototype;return i.initialize=function(){t.prototype.initialize.call(this),this.size=.15,this.range=1,this.luminanceHDR=1700/ZM(.15),this.luminanceLDR=1},i.update=function(){if(this._node&&(this._node.hasChangedFlags||this._needUpdate)){this._node.getWorldPosition(this._pos);var t=this._range;mh.set(this._aabb,this._pos.x,this._pos.y,this._pos.z,t,t,t),this._needUpdate=!1}},n(e,[{key:"position",get:function(){return this._pos}},{key:"size",get:function(){return this._size},set:function(t){this._size=t}},{key:"range",get:function(){return this._range},set:function(t){this._range=t,this._needUpdate=!0}},{key:"luminance",get:function(){return tb().isHDR?this._luminanceHDR:this._luminanceLDR},set:function(t){tb().isHDR?this.luminanceHDR=t:this.luminanceLDR=t}},{key:"luminanceHDR",get:function(){return this._luminanceHDR},set:function(t){this._luminanceHDR=t}},{key:"luminanceLDR",set:function(t){this._luminanceLDR=t}},{key:"aabb",get:function(){return this._aabb}}]),e}($M),rP=new er(0,0,-1),sP=new Or,aP=new Kr,oP=new Kr,hP=new Kr,uP=new Kr,lP=function(t){function e(){var e;return(e=t.call(this)||this)._dir=new er(1,-1,-1),e._range=5,e._spotAngle=Math.cos(Math.PI/6),e._angleAttenuationStrength=0,e._pos=new er,e._aabb=mh.create(),e._frustum=Ch.create(),e._angle=0,e._needUpdate=!1,e._size=.15,e._luminanceHDR=0,e._luminanceLDR=0,e._shadowEnabled=!1,e._shadowPcf=UT.HARD,e._shadowBias=1e-5,e._shadowNormalBias=0,e._type=2,e}s(e,t);var i=e.prototype;return i.initialize=function(){t.prototype.initialize.call(this),this.size=.15,this.luminanceHDR=1700/ZM(.15),this.luminanceLDR=1,this.range=Math.cos(Math.PI/6),this._dir.set(new er(1,-1,-1))},i.update=function(){this._node&&(this._node.hasChangedFlags||this._needUpdate)&&(this._node.getWorldPosition(this._pos),er.transformQuat(this._dir,rP,this._node.getWorldRotation(sP)),er.normalize(this._dir,this._dir),mh.set(this._aabb,this._pos.x,this._pos.y,this._pos.z,this._range,this._range,this._range),this._node.getWorldRT(aP),Kr.invert(aP,aP),Kr.perspective(oP,this._angle,1,.001,this._range),Kr.multiply(hP,oP,aP),this._frustum.update(hP,uP),this._needUpdate=!1)},n(e,[{key:"position",get:function(){return this._pos}},{key:"size",get:function(){return this._size},set:function(t){this._size=t}},{key:"range",get:function(){return this._range},set:function(t){this._range=t,this._needUpdate=!0}},{key:"luminance",get:function(){return tb().isHDR?this._luminanceHDR:this._luminanceLDR},set:function(t){tb().isHDR?this.luminanceHDR=t:this.luminanceLDR=t}},{key:"luminanceHDR",get:function(){return this._luminanceHDR},set:function(t){this._luminanceHDR=t}},{key:"luminanceLDR",get:function(){return this._luminanceLDR},set:function(t){this._luminanceLDR=t}},{key:"direction",get:function(){return this._dir}},{key:"spotAngle",get:function(){return this._spotAngle},set:function(t){this._angle=t,this._spotAngle=Math.cos(.5*t),this._needUpdate=!0}},{key:"angleAttenuationStrength",get:function(){return this._angleAttenuationStrength},set:function(t){this._angleAttenuationStrength=t,this._needUpdate=!0}},{key:"angle",get:function(){return this._angle}},{key:"aabb",get:function(){return this._aabb}},{key:"frustum",get:function(){return this._frustum}},{key:"shadowEnabled",get:function(){return this._shadowEnabled},set:function(t){this._shadowEnabled=t}},{key:"shadowPcf",get:function(){return this._shadowPcf},set:function(t){this._shadowPcf=t}},{key:"shadowBias",get:function(){return this._shadowBias},set:function(t){this._shadowBias=t}},{key:"shadowNormalBias",get:function(){return this._shadowNormalBias},set:function(t){this._shadowNormalBias=t}}]),e}($M),cP=function(t){function e(){var e;return(e=t.call(this)||this)._needUpdate=!1,e._range=1,e._luminanceHDR=0,e._luminanceLDR=0,e._pos=ir(),e._aabb=mh.create(),e._type=3,e}s(e,t);var i=e.prototype;return i.initialize=function(){t.prototype.initialize.call(this),this.range=1,this.luminanceHDR=1700/ZM(1),this.luminanceLDR=1},i.update=function(){if(this._node&&(this._node.hasChangedFlags||this._needUpdate)){this._node.getWorldPosition(this._pos);var t=this._range;mh.set(this._aabb,this._pos.x,this._pos.y,this._pos.z,t,t,t),this._needUpdate=!1}},n(e,[{key:"position",get:function(){return this._pos}},{key:"range",get:function(){return this._range},set:function(t){this._range=t,this._needUpdate=!0}},{key:"luminance",get:function(){return tb().isHDR?this._luminanceHDR:this._luminanceLDR},set:function(t){tb().isHDR?this.luminanceHDR=t:this.luminanceLDR=t}},{key:"luminanceHDR",get:function(){return this._luminanceHDR},set:function(t){this._luminanceHDR=t}},{key:"luminanceLDR",set:function(t){this._luminanceLDR=t}},{key:"aabb",get:function(){return this._aabb}}]),e}($M),fP=new er(0,0,-1),_P=function(t){function e(){var e;return(e=t.call(this)||this)._dir=new er(0,0,-1),e._pos=new er(0,0,0),e._scale=new er(1,1,1),e._right=new er(1,0,0),e._illuminanceHDR=pb.SUN_ILLUM,e._illuminanceLDR=1,e._type=4,e}s(e,t);var i=e.prototype;return i.initialize=function(){t.prototype.initialize.call(this),this.illuminance=pb.SUN_ILLUM},i.update=function(){this._node&&this._node.hasChangedFlags&&(this._node.getWorldPosition(this._pos),this._node.getWorldScale(this._scale),er.transformQuat(this._dir,fP,this._node.worldRotation),er.transformQuat(this._right,er.RIGHT,this._node.worldRotation))},n(e,[{key:"direction",get:function(){return this._dir}},{key:"right",get:function(){return this._right}},{key:"position",get:function(){return this._pos}},{key:"scale",get:function(){return this._scale}},{key:"illuminance",get:function(){return tb().isHDR?this._illuminanceHDR:this._illuminanceLDR},set:function(t){tb().isHDR?this.illuminanceHDR=t:this.illuminanceLDR=t}},{key:"illuminanceHDR",get:function(){return this._illuminanceHDR},set:function(t){this._illuminanceHDR=t}},{key:"illuminanceLDR",get:function(){return this._illuminanceLDR},set:function(t){this._illuminanceLDR=t}}]),e}($M),dP=new Ad;dP.format=35;var pP=new Cd;pP.format=55;var mP=new Id([dP],pP),gP={width:1,height:1,renderPassInfo:mP},yP=t("e9",Kh("cc.RenderTexture")(JM=function(t){function e(e){var i;return(i=t.call(this,e)||this)._window=null,i}s(e,t);var i=e.prototype;return i.initialize=function(t){this._name=t.name||"",this._width=t.width,this._height=t.height,this._initWindow(t)},i.reset=function(t){this.initialize(t)},i.destroy=function(){if(this._window){var e=T.director.root;null==e||e.destroyWindow(this._window),this._window=null}return t.prototype.destroy.call(this)},i.resize=function(t,e){this._width=Math.floor(Zi(t,1,2048)),this._height=Math.floor(Zi(e,1,2048)),this._window&&this._window.resize(this._width,this._height),this.emit("resize",this._window)},i._serialize=function(){return{}},i._deserialize=function(e,i){var n=e;this._width=n.w,this._height=n.h,this._name=n.n,t.prototype._deserialize.call(this,n.base,i)},i.getGFXTexture=function(){return this._window&&this._window.framebuffer.colorTextures[0]},i.onLoaded=function(){this._initWindow()},i._initWindow=function(t){var e=T.director.root;gP.title=this._name,gP.width=this._width,gP.height=this._height,gP.renderPassInfo=t&&t.passInfo?t.passInfo:mP,gP.externalResLow=t&&t.externalResLow?t.externalResLow:0,gP.externalResHigh=t&&t.externalResHigh?t.externalResHigh:0,gP.externalFlag=t&&t.externalFlag?t.externalFlag:0,gP.renderPassInfo.colorAttachments.forEach((function(t){t.format=e.device.swapchainFormat})),dP.barrier=zp.gfxDevice.getGeneralBarrier(new Pd(128,128)),this._window?(this._window.destroy(),this._window.initialize(zp.gfxDevice,gP)):this._window=e.createWindow(gP)},i.initDefault=function(e){t.prototype.initDefault.call(this,e),this._width=this._height=1,this._initWindow()},i.validate=function(){return this.width>=1&&this.width<=2048&&this.height>=1&&this.height<=2048},i.readPixels=function(t,e,i,n,r){t=t||0,e=e||0,i=i||this.width,n=n||this.height;var s=this.getGFXTexture();if(!s)return ot(7606),null;var a=4*i*n;if(void 0===r)r=new Uint8Array(a);else if(r.length=0&&this._models.splice(e,1)},e.clearModels=function(){this._models.length=0},n(t,[{key:"models",get:function(){return this._models}}]),t}(),DP=function(){function t(){this.scene=void 0,this.node=null,this.enabled=!0,this._localBoundaryCenter=ir(0,0,0),this._objectSize=1,this._lodDataArray=[],this._lockedLODLevelVec=[],this._isLockLevelChanged=!1,this._device=zp.gfxDevice}var e=t.prototype;return e.attachToScene=function(t){this.scene=t},e.detachFromScene=function(){this.scene=null},e.lockLODLevels=function(t){if(t.length!==this._lockedLODLevelVec.length)this._isLockLevelChanged=!0;else for(var e=t.length,i=0;i=this.lodDataArray[n].screenUsagePercentage){i=n;break}return i},e.getScreenUsagePercentage=function(t){return this.node?(1===t.projectionType&&(e=er.len(this.localBoundaryCenter.transformMat4(this.node.worldMatrix).subtract(t.node.worldPosition))),this.distanceToScreenUsagePercentage(t,e,this.getWorldSpaceSize())):0;var e},e.distanceToScreenUsagePercentage=function(t,e,i){return 1===t.projectionType?i*t.matProj.m05/(2*e):i*t.matProj.m05*.5},e.getWorldSpaceSize=function(){var t=this.node.scale;return Math.max(Math.abs(t.x),Math.abs(t.y),Math.abs(t.z))*this.objectSize},n(t,[{key:"localBoundaryCenter",get:function(){return this._localBoundaryCenter.clone()},set:function(t){this._localBoundaryCenter.set(t)}},{key:"lodCount",get:function(){return this._lodDataArray.length}},{key:"objectSize",get:function(){return this._objectSize},set:function(t){this._objectSize=t}},{key:"lodDataArray",get:function(){return this._lodDataArray}}]),t}(),BP=Object.freeze({__proto__:null,Ambient:pb,CSMLevel:GT,CSMOptimizationMode:HT,Camera:RM,CameraAperture:TM,CameraFOVAxis:xM,CameraISO:AM,CameraProjection:wM,CameraShutter:CM,CameraType:{DEFAULT:-1,LEFT_EYE:0,RIGHT_EYE:1,MAIN:2},CameraUsage:{EDITOR:0,GAME_VIEW:1,SCENE_VIEW:2,PREVIEW:3,GAME:100},ColorTemperatureToRGB:KM,DirectionalLight:iP,EnvironmentLightingType:JT,FOG_TYPE_NONE:tA,Fog:eA,FogType:$T,LODData:CP,LODGroup:DP,Light:$M,LightType:QM,Model:qM,ModelType:{DEFAULT:0,SKINNING:1,BAKED_SKINNING:2,BATCH_2D:3,PARTICLE_BATCH:4,LINE:5},Octree:XM,PCFType:UT,PointLight:cP,PostSettings:AD,ProbeClearFlag:SP,ProbeType:xP,RangedDirectionalLight:_P,ReflectionProbe:AP,SKYBOX_FLAG:8,ShadowSize:VT,ShadowType:zT,Shadows:jT,Skin:YM,SkyBoxFlagValue:{VALUE:8},Skybox:QT,SphereLight:nP,SpotLight:lP,SubModel:LM,ToneMappingType:TD,TrackingType:{NO_TRACKING:0,POSITION_AND_ROTATION:1,POSITION:2,ROTATION:3},nt2lm:ZM}),IP=function(){function t(t){this._name="",this._cameras=[],this._models=[],this._lodGroups=[],this._batches=[],this._directionalLights=[],this._sphereLights=[],this._spotLights=[],this._pointLights=[],this._rangedDirLights=[],this._mainLight=null,this._modelId=0,this._lodStateCache=null,this._root=t}t.registerCreateFunc=function(e){e._createSceneFun=function(e){return new t(e)}};var e=t.prototype;return e.initialize=function(t){return this._name=t.name,this._lodStateCache=new PP(this),!0},e.update=function(t){var e=this._mainLight;e&&e.update();for(var i=this._sphereLights,n=0;n=0&&(this._lodGroups.splice(e,1),t.detachFromScene(),this._lodStateCache.removeLodGroup(t))},e.removeLODGroups=function(){var t=this;this._lodGroups.forEach((function(e){t._lodStateCache.removeLodGroup(e)})),this._lodGroups.length=0},e.onGlobalPipelineStateChanged=function(){this._models.forEach((function(t){t.onGlobalPipelineStateChanged()}))},e.generateModelId=function(){return this._modelId++},n(t,[{key:"root",get:function(){return this._root}},{key:"name",get:function(){return this._name}},{key:"cameras",get:function(){return this._cameras}},{key:"mainLight",get:function(){return this._mainLight}},{key:"sphereLights",get:function(){return this._sphereLights}},{key:"spotLights",get:function(){return this._spotLights}},{key:"pointLights",get:function(){return this._pointLights}},{key:"rangedDirLights",get:function(){return this._rangedDirLights}},{key:"models",get:function(){return this._models}},{key:"batches",get:function(){return this._batches}},{key:"lodGroups",get:function(){return this._lodGroups}}]),t}(),MP=function(){this.usedLevel=-1,this.lastUsedLevel=-1,this.transformDirty=!0},PP=function(){function t(t){this._renderScene=null,this._modelsInLODGroup=new Map,this._lodStateInCamera=new Map,this._newAddedLodGroupVec=[],this._levelModels=new Map,this._renderScene=t}var e=t.prototype;return e.addCamera=function(t){for(var e=this._renderScene.lodGroups,i=0;i0){if(i.node.hasChangedFlags>0)for(var s,a=p(t._lodStateInCamera);!(s=a()).done;){var o=s.value,h=o[1].get(i);h||(h=new MP,o[1].set(i,h)),h.transformDirty=!0}if(i.isLockLevelChanged()){i.resetLockChangeFlag();var u=t._levelModels.get(i);u&&(u.forEach((function(e){e.forEach((function(e){var i=t._modelsInLODGroup.get(e);i&&i.clear()}))})),r.forEach((function(e){var i=u.get(e);i&&i.forEach((function(e){var i=t._modelsInLODGroup.get(e);if(i&&e.node&&e.node.active)for(var n,r=p(t._lodStateInCamera);!(n=r()).done;){var s=n.value;i.set(s[0],!0)}}))})))}return 0}for(var l,c=!1,f=p(t._lodStateInCamera);!(l=f()).done;){var _=l.value,d=_[1].get(i);d||(d=new MP,_[1].set(i,d));var m=_[0].node.hasChangedFlags,g=i.node.hasChangedFlags;if(m>0||g>0||d.transformDirty){d.transformDirty&&(d.transformDirty=!1);var y=i.getVisibleLODLevel(_[0]);y!==d.usedLevel&&(d.lastUsedLevel=d.usedLevel,d.usedLevel=y,c=!0)}}var v=t._levelModels.get(i);if(!v)return 0;i.isLockLevelChanged()?(i.resetLockChangeFlag(),v.forEach((function(e){e.forEach((function(e){var i=t._modelsInLODGroup.get(e);i&&i.clear()}))})),c=!0):c&&t._lodStateInCamera.forEach((function(e){var n=e.get(i);if(n&&n.usedLevel!==n.lastUsedLevel){var r=v.get(n.lastUsedLevel);r&&r.forEach((function(e){var i=t._modelsInLODGroup.get(e);i&&i.clear()}))}})),c&&t._lodStateInCamera.forEach((function(e,n){var r=e.get(i);if(r){var s=r.usedLevel,a=v.get(s);a&&a.forEach((function(e){var i=t._modelsInLODGroup.get(e);i&&e.node&&e.node.active&&i.set(n,!0)}))}}))}},n=0;n1&&(this._fps=this._frameCount,this._frameCount=0,this._fpsTime=0),null!=(e=globalThis.__globalXR)&&e.isWebXR?this._doWebXRFrameMove():(this._frameMoveBegin(),this._frameMoveProcess(),this._frameMoveEnd())},e.createWindow=function(t){var e=this._createWindowFun(this);return e.initialize(this.device,t),this._windows.push(e),e},e.destroyWindow=function(t){for(var e=0;e=0;_--){var d=n[_];(0===h&&1===d.cameraType||1===h&&0===d.cameraType)&&n.splice(_,1)}t._frameMoveEnd()},h=0;h0){this._device.acquire([zp.swapchain]);var r=this._scenes,s=t.getTotalFrames();this._batcher&&(this._batcher.update(),this._batcher.uploadBuffers());for(var a=0;a0){t.emit(e.EVENT_BEFORE_COMMIT),i.sort((function(t,e){return t.priority-e.priority}));for(var n=0;n0&&(this._fixedFPS=t)}},{key:"dataPoolManager",get:function(){return this._dataPoolMgr}},{key:"useDeferredPipeline",get:function(){return this._useDeferredPipeline}},{key:"cameraList",get:function(){return this._cameraList}}]),t}());T.Root=FP,Li.Attr.setClassAttr(fg,"target","type","Object"),Li.Attr.setClassAttr(fg,"target","ctor",Qv),dt(Qv.prototype,"Node",[{name:"childrenCount",newName:"children.length",customGetter:function(){return this.children.length}}]),dt(Qv.prototype,"Node",[{name:"width",targetName:"node.getComponent(UITransform)",customGetter:function(){return this._getUITransformComp().width},customSetter:function(t){this._getUITransformComp().width=t}},{name:"height",targetName:"node.getComponent(UITransform)",customGetter:function(){return this._getUITransformComp().height},customSetter:function(t){this._getUITransformComp().height=t}},{name:"anchorX",targetName:"node.getComponent(UITransform)",customGetter:function(){return this._getUITransformComp().anchorX},customSetter:function(t){this._getUITransformComp().anchorX=t}},{name:"anchorY",targetName:"node.getComponent(UITransform)",customGetter:function(){return this._getUITransformComp().anchorY},customSetter:function(t){this._getUITransformComp().anchorY=t}},{name:"getAnchorPoint",targetName:"node.getComponent(UITransform)",customFunction:function(t){return t||(t=new _s),t.set(this._getUITransformComp().anchorPoint),t}},{name:"setAnchorPoint",targetName:"node.getComponent(UITransform)",customFunction:function(t,e){this._getUITransformComp().setAnchorPoint(t,e)}},{name:"getContentSize",targetName:"node.getComponent(UITransform)",customFunction:function(t){return t||(t=new ps),t.set(this._getUITransformComp().contentSize),t}},{name:"setContentSize",targetName:"node.getComponent(UITransform)",customFunction:function(t,e){"number"==typeof t?this._getUITransformComp().setContentSize(t,e):this._getUITransformComp().setContentSize(t)}}]),pt(rI.prototype,"SceneGlobals.prototype",[{name:"aspect"},{name:"selfShadow"},{name:"linear"},{name:"packing"},{name:"autoAdapt"},{name:"fixedArea"},{name:"pcf"},{name:"bias"},{name:"normalBias"},{name:"near"},{name:"far"},{name:"shadowDistance"},{name:"invisibleOcclusionRange"},{name:"orthoSize"},{name:"saturation"}]),dt(rI.prototype,"SceneGlobals.prototype",[{name:"distance",newName:"planeHeight"},{name:"normal",newName:"planeDirection"},{name:"size",newName:"shadowMapSize"}]),pt(Qv.prototype,"Node.prototype",[{name:"addLayer"},{name:"removeLayer"}]),dt(ky.prototype,"NodeUIProperties",[{name:"opacityDirty",newName:"colorDirty"}]),pt(Oy,"Layers",[{name:"All"},{name:"RaycastMask"},{name:"check"}]),dt(Oy,"Layers",[{name:"Default",newName:"DEFAULT",target:Oy.Enum,targetName:"Layers.Enum"},{name:"Always",newName:"ALWAYS",target:Oy.Enum,targetName:"Layers.Enum"},{name:"IgnoreRaycast",newName:"IGNORE_RAYCAST",target:Oy.Enum,targetName:"Layers.Enum"},{name:"Gizmos",newName:"GIZMOS",target:Oy.Enum,targetName:"Layers.Enum"},{name:"Editor",newName:"EDITOR",target:Oy.Enum,targetName:"Layers.Enum"},{name:"UI",newName:"UI_3D",target:Oy.Enum,targetName:"Layers.Enum"},{name:"UI2D",newName:"UI_2D",target:Oy.Enum,targetName:"Layers.Enum"},{name:"SceneGizmo",newName:"SCENE_GIZMO",target:Oy.Enum,targetName:"Layers.Enum"},{name:"makeInclusiveMask",newName:"makeMaskInclude",target:Oy,targetName:"Layers"},{name:"makeExclusiveMask",newName:"makeMaskExclude",target:Oy,targetName:"Layers"}]),pt(Oy.Enum,"Layers.Enum",[{name:"ALWAYS"}]),pt(Oy.BitMask,"Layers.BitMask",[{name:"ALWAYS"}]);var LP=t("dM",Kh("cc.PrivateNode")(bP=function(t){function e(e){var i;return st(12003,(i=t.call(this,e)||this).name),i.hideFlags|=1032,i}return s(e,t),e}(Qv))||bP);function NP(t,e){if(!e){var i=A.director.getScene();if(!i)return null;e=i}return e.getChildByPath(t)}dt(Ky,"SystemEventType",["MOUSE_ENTER","MOUSE_LEAVE","TRANSFORM_CHANGED","SCENE_CHANGED_FOR_PERSISTS","SIZE_CHANGED","ANCHOR_CHANGED","COLOR_CHANGED","CHILD_ADDED","CHILD_REMOVED","PARENT_CHANGED","NODE_DESTROYED","LAYER_CHANGED","SIBLING_ORDER_CHANGED"].map((function(t){return{name:t,target:Qv.EventType,targetName:"Node.EventType"}}))),dt(Qv.EventType,"Node.EventType",[{name:"DEVICEMOTION",target:vM.EventType,targetName:"SystemEvent.EventType"},{name:"KEY_DOWN",target:vM.EventType,targetName:"SystemEvent.EventType"},{name:"KEY_UP",target:vM.EventType,targetName:"SystemEvent.EventType"}]),A.PrivateNode=LP,Ct({BaseNode:{newName:"Node",since:"3.7.0",removed:!1}}),A.find=NP;var VP=ve,zP=65536,UP=2048;function GP(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],h=o.constructor._executionOrder;if(h>i)s=a-1;else if(hn)s=a-1;else{if(!(u0&&(t.array.sort(jP),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(jP),this._invoke(e),e.array.length=0)},e}(WP),XP=function(t){function e(e){return t.call(this,e)||this}s(e,t);var i=e.prototype;return i.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=GP(i,t);n<0&&i.splice(~n,0,t)}},i.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=GP(i.array,t);n>=0&&i.removeAt(n)}},i.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)},e}(WP);function YP(t,e,i){var n="var a=it.array;for(it.i=0;it.i=0?VP(this._deferredComps,e):(!t.internalStart||t._objFlags&zP||this.startInvoker.remove(t),t.internalUpdate&&this.updateInvoker.remove(t),t.internalLateUpdate&&this.lateUpdateInvoker.remove(t))},e.enableComp=function(t,e){if(!(t._objFlags&UP)){if(t.internalOnEnable){if(e)return void e.add(t);if(t.internalOnEnable(),!t.node.activeInHierarchy)return}this._onEnabled(t)}},e.disableComp=function(t){t._objFlags&UP&&(t.internalOnDisable&&t.internalOnDisable(),this._onDisabled(t))},e.startPhase=function(){this._updating=!0,this.startInvoker.invoke(),this._startForNewComps()},e.updatePhase=function(t){this.updateInvoker.invoke(t)},e.lateUpdatePhase=function(t){this.lateUpdateInvoker.invoke(t),this._updating=!1,this._startForNewComps()},e._startForNewComps=function(){this._deferredComps.length>0&&(this._deferredSchedule(),this.startInvoker.invoke())},e._scheduleImmediate=function(t){"function"!=typeof t.internalStart||t._objFlags&zP||this.startInvoker.add(t),"function"==typeof t.internalUpdate&&this.updateInvoker.add(t),"function"==typeof t.internalLateUpdate&&this.lateUpdateInvoker.add(t)},e._deferredSchedule=function(){for(var t=this._deferredComps,e=0,i=t.length;e1)t.push("t="+this._targetExp+";"),e="t";else{if(1!==this._exps.length)return;e=this._targetExp}for(var i=0;i0&&(i=fE+this.globalVariables.join(",")+";");var n=Yf(["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=e.OptimizationPolicyThreshold)?(t=this._doInstantiate(),this.data._instantiate(t)):t=this.data._instantiate(),++this._instantiatedTimes,t},i.initDefault=function(e){t.prototype.initDefault.call(this,e),this.data=new Qv,this.data.name="(Missing Node)";var i=new A._PrefabInfo;i.asset=this,i.root=this.data,this.data._prefab=i},i.validate=function(){return!!this.data},i.onLoaded=function(){var t=this.data;xI(t),bI(t)},e}(xm),CE.OptimizationPolicy=IE,CE.OptimizationPolicyThreshold=3,wE=Vh((xE=CE).prototype,"data",[hu],(function(){return null})),TE=Vh(xE.prototype,"optimizationPolicy",[hu],(function(){return IE.AUTO})),AE=Vh(xE.prototype,"persistent",[hu],(function(){return!1})),SE=xE))||SE);Lt(ME,"_utils",MI),A.Prefab=ME,Ht(A,"cc._Prefab","Prefab");var PE=function(){function t(){this._allRenderers=[],this._dirtyRenderers=[],this._dirtyVersion=0}var e=t.prototype;return e.addRenderer=function(t){-1===t._internalId&&(t._internalId=this._allRenderers.length,this._allRenderers.push(t))},e.removeRenderer=function(t){if(-1!==t._internalId){var e=t._internalId;this._allRenderers[this._allRenderers.length-1]._internalId=e,ve(this._allRenderers,e),t._internalId=-1,t._dirtyVersion===this._dirtyVersion&&(Se(this._dirtyRenderers,t),t._dirtyVersion=-1)}},e.markDirtyRenderer=function(t){t._dirtyVersion!==this._dirtyVersion&&-1!==t._internalId&&(this._dirtyRenderers.push(t),t._dirtyVersion=this._dirtyVersion)},e.updateAllDirtyRenderers=function(){for(var t=this._dirtyRenderers,e=0;e1){var u=Object.create(null);e.forEach((function(t){u[t._uuid]=t})),r={isCompleted:RE,_map:u}}else r=e[0]}i&&i(t,r)}))},e.getXMLHttpRequest=function(){return new XMLHttpRequest},e.getItem=function(t){return hT.assets.has(t)?{content:hT.assets.get(t)}:null},e.loadRes=function(t,e,i,n){var r=this._parseLoadResArgs(e,i,n),s=r.type,a=r.onProgress,o=r.onComplete,h=Go(t);h&&!nw.getInfoWithPath(t,s)&&(t=t.slice(0,-h.length)),nw.load(t,s,a,o)},e.loadResArray=function(t,e,i,n){var r=this._parseLoadResArgs(e,i,n),s=r.type,a=r.onProgress,o=r.onComplete;t.forEach((function(e,i){var n=Go(e);n&&!nw.getInfoWithPath(e,s)&&(t[i]=e.slice(0,-n.length))})),nw.load(t,s,a,o)},e.loadResDir=function(t,e,i,n){var r=this._parseLoadResArgs(e,i,n),s=r.type,a=r.onProgress,o=r.onComplete;nw.loadDir(t,s,a,(function(e,i){var n=[];e||(n=nw.getDirWithPath(t,s).map((function(t){return t.path}))),o&&o(e,i,n)}))},e.getRes=function(t,e){return qp.has(t)?qp.get(t):nw.get(t,e)},e.getResCount=function(){return qp.count},e.getDependsRecursively=function(t){if(!t)return[];var e="string"==typeof t?t:t._uuid;return gy.getDepsRecursively(e).concat([e])},e.addDownloadHandlers=function(t){var e=Object.create(null),i=function(){var i=t[n];e["."+n]=function(t,e,n){i({url:t},n)}};for(var n in t)i();Cw.register(e)},e.addLoadHandlers=function(t){var e=Object.create(null),i=function(){var i=t[n];e["."+n]=function(t,e,n){i({content:t},n)}};for(var n in t)i();Yw.register(e)},e.release=function(t){if(Array.isArray(t))for(var e=0;eg.x?t[b]:g.x,g.y=t[b+1]>g.y?t[b+1]:g.y,y.x=t[b]g.x?t[b]:g.x,g.y=t[b+1]>g.y?t[b+1]:g.y,g.z=t[b+2]>g.z?t[b+2]:g.z,y.x=t[b]1&&t.csmOptimizationMode===HT.RemoveDuplicates)if(this._level>=h-1)yO=this._castLightViewBoundingBox.halfExtents.z,gO=this._castLightViewBoundingBox.center.z;else{var u=Math.abs(this._castLightViewBoundingBox.center.z-gO)+yO;this._castLightViewBoundingBox.halfExtents.z=Math.max(this._castLightViewBoundingBox.center.z,u)}var l=this._castLightViewBoundingBox.halfExtents.z;this._shadowCameraFar=2*l+r;var c=this._castLightViewBoundingBox.center;if(mO.set(c.x,c.y,c.z+l+r),er.transformMat4(mO,mO,nO),Kr.fromRT(nO,t.node.rotation,mO),Kr.invert(rO,nO),!i){var f=.5*s,_=.5*a;Kr.ortho(sO,-f,f,-_,_,.1,this._shadowCameraFar,n.capabilities.clipSpaceMinZ,n.capabilities.clipSpaceSignY),Kr.multiply(oO,sO,o),er.transformMat4(lO,mO,oO);var d=2/e;cO.set(d,d);var p=lO.x%cO.x,m=lO.y%cO.y;fO.set(lO.x-p,lO.y-m,lO.z),Kr.invert(hO,oO),er.transformMat4(_O,fO,hO),Kr.fromRT(nO,t.node.rotation,_O),Kr.invert(rO,nO),Kr.multiply(aO,sO,rO),Kr.copy(this._matShadowView,rO),Kr.copy(this._matShadowProj,sO),Kr.copy(this._matShadowViewProj,aO)}Ch.createOrtho(this._validFrustum,s,a,.1,this._shadowCameraFar,nO)},n(t,[{key:"level",get:function(){return this._level}},{key:"shadowObjects",get:function(){return this._shadowObjects}},{key:"shadowCameraFar",get:function(){return this._shadowCameraFar},set:function(t){this._shadowCameraFar=t}},{key:"matShadowView",get:function(){return this._matShadowView},set:function(t){this._matShadowView=t}},{key:"matShadowProj",get:function(){return this._matShadowProj},set:function(t){this._matShadowProj=t}},{key:"matShadowViewProj",get:function(){return this._matShadowViewProj},set:function(t){this._matShadowViewProj=t}},{key:"validFrustum",get:function(){return this._validFrustum}},{key:"splitFrustum",get:function(){return this._splitFrustum}},{key:"lightViewFrustum",get:function(){return this._lightViewFrustum}},{key:"castLightViewBoundingBox",get:function(){return this._castLightViewBoundingBox}}]),t}(),bO=function(t){function e(e){var i;return(i=t.call(this,e)||this)._splitCameraNear=0,i._splitCameraFar=0,i._csmAtlas=new Ln,i._calculateAtlas(e),i}s(e,t);var i=e.prototype;return i.destroy=function(){t.prototype.destroy.call(this)},i._calculateAtlas=function(t){var e=T.director.root.device.capabilities.clipSpaceSignY,i=t%2-.5,n=(.5-Math.floor(t/2))*e;this._csmAtlas.set(.5,.5,i,n)},n(e,[{key:"splitCameraNear",get:function(){return this._splitCameraNear},set:function(t){this._splitCameraNear=t}},{key:"splitCameraFar",get:function(){return this._splitCameraFar},set:function(t){this._splitCameraFar=t}},{key:"csmAtlas",get:function(){return this._csmAtlas},set:function(t){this._csmAtlas=t}}]),e}(vO),SO=function(){function t(){this._castShadowObjects=[],this._layerObjects=new uo(64),this._layers=[],this._levelCount=0,this._specialLayer=new vO(1),this._shadowDistance=0;for(var t=0;t1?.5*i.size.x:i.size.x;if(!(r<0)){this._getCameraWorldMatrix(iO,t);for(var s=n-1;s>=0;s--){var a=this._layers[s],o=a.splitCameraNear,h=a.splitCameraFar;a.calculateSplitFrustum(t,iO,o,h),a.createMatrix(e,r,!1)}n===GT.LEVEL_1?(this._specialLayer.shadowCameraFar=this._layers[0].shadowCameraFar,Kr.copy(this._specialLayer.matShadowView,this._layers[0].matShadowView),Kr.copy(this._specialLayer.matShadowProj,this._layers[0].matShadowProj),Kr.copy(this._specialLayer.matShadowViewProj,this._layers[0].matShadowViewProj),this._specialLayer.copyToValidFrustum(this._layers[0].validFrustum)):(this._specialLayer.calculateSplitFrustum(t,iO,.1,e.shadowDistance),this._specialLayer.createMatrix(e,r,!0))}},e._getCameraWorldMatrix=function(t,e){if(e.node){var i=e.node,n=i.worldPosition,r=i.worldRotation;Kr.fromRT(t,r,n)}},n(t,[{key:"castShadowObjects",get:function(){return this._castShadowObjects}},{key:"layerObjects",get:function(){return this._layerObjects}},{key:"layers",get:function(){return this._layers}},{key:"specialLayer",get:function(){return this._specialLayer}}]),t}(),xO=t("df",function(){function t(){this.fog=new eA,this.ambient=new pb,this.skybox=new QT,this.shadows=new jT,this.csmLayers=new SO,this.octree=new XM,this.skin=new YM,this.postSettings=new AD,this.lightProbes=T.internal.LightProbes?new T.internal.LightProbes:null,this.validPunctualLights=[],this.renderObjects=[],this.shadowFrameBufferMap=new Map,this._geometryRendererMaterials=[],this._geometryRendererPasses=[],this._geometryRendererShaders=[],this._occlusionQueryVertexBuffer=null,this._occlusionQueryIndicesBuffer=null,this._occlusionQueryInputAssembler=null,this._occlusionQueryMaterial=null,this._occlusionQueryShader=null,this._isHDR=!0,this._shadingScale=1,this._csmSupported=!0,this._standardSkinMeshRenderer=null,this._standardSkinModel=null,this._skinMaterialModel=null,this._shadingScale=1}var e=t.prototype;return e.activate=function(t){return this._device=t,this.initGeometryRendererMaterials(),this.initOcclusionQuery(),!0},e.initGeometryRendererMaterials=function(){for(var t=0,e=this._geometryRendererMaterials,i=0;i<6;i++){e[i]=new NT,e[i]._uuid="geometry-renderer-material-"+i,e[i].initialize({effectName:"internal/builtin-geometry-renderer",technique:i});for(var n=e[i].passes,r=0;r0&&(this._occlusionQueryShader=t.passes[0].getShaderVariant())}},e.getOcclusionQueryPass=function(){return this._occlusionQueryMaterial&&this._occlusionQueryMaterial.passes.length>0?this._occlusionQueryMaterial.passes[0]:null},e.updatePipelineSceneData=function(){},e.destroy=function(){var t,e,i;this.shadows.destroy(),this.csmLayers.destroy(),this.validPunctualLights.length=0,null==(t=this._occlusionQueryInputAssembler)||t.destroy(),this._occlusionQueryInputAssembler=null,null==(e=this._occlusionQueryVertexBuffer)||e.destroy(),this._occlusionQueryVertexBuffer=null,null==(i=this._occlusionQueryIndicesBuffer)||i.destroy(),this._occlusionQueryIndicesBuffer=null,this._standardSkinMeshRenderer=null,this._standardSkinModel=null,this._skinMaterialModel=null},e._createOcclusionQueryIA=function(){var t=this._device,e=new Float32Array([-1,-1,-1,1,-1,-1,-1,1,-1,1,1,-1,-1,-1,1,1,-1,1,-1,1,1,1,1,1]);this._occlusionQueryVertexBuffer=t.createBuffer(new sd(10,1,96,12)),this._occlusionQueryVertexBuffer.update(e);var i=new Uint16Array([0,2,1,1,2,3,4,5,6,5,7,6,1,3,7,1,7,5,0,4,6,0,6,2,0,1,5,0,5,4,2,6,7,2,7,3]);this._occlusionQueryIndicesBuffer=t.createBuffer(new sd(6,1,72,2)),this._occlusionQueryIndicesBuffer.update(i);var n=[new xd("a_position",32)],r=new Td(n,[this._occlusionQueryVertexBuffer],this._occlusionQueryIndicesBuffer);return t.createInputAssembler(r)},n(t,[{key:"isHDR",get:function(){return this._isHDR},set:function(t){this._isHDR=t}},{key:"shadingScale",get:function(){return this._shadingScale},set:function(t){this._shadingScale=t}},{key:"csmSupported",get:function(){return this._csmSupported},set:function(t){this._csmSupported=t}},{key:"standardSkinModel",get:function(){return this._standardSkinModel},set:function(t){this._standardSkinModel=t}},{key:"standardSkinMeshRenderer",get:function(){return this._standardSkinMeshRenderer},set:function(t){this._standardSkinMeshRenderer&&this._standardSkinMeshRenderer!==t&&this._standardSkinMeshRenderer.clearGlobalStandardSkinObjectFlag(),this._standardSkinMeshRenderer=t,this.standardSkinModel=t?t.model:null}},{key:"skinMaterialModel",get:function(){return this._skinMaterialModel},set:function(t){this._skinMaterialModel=t}},{key:"geometryRendererPasses",get:function(){return this._geometryRendererPasses}},{key:"geometryRendererShaders",get:function(){return this._geometryRendererShaders}}]),t}()),wO=ms(),TO=(($E={})[ze.ORIENTATION_AUTO]=Ne.AUTO,$E[ze.ORIENTATION_LANDSCAPE]=Ne.LANDSCAPE,$E[ze.ORIENTATION_PORTRAIT]=Ne.PORTRAIT,$E),AO=t("ha",function(t){function e(){var e;(e=t.call(this)||this)._designResolutionSize=ms(0,0),e._scaleX=1,e._scaleY=1,e._viewportRect=bs(),e._visibleRect=bs(),e._autoFullScreen=!1,e._retinaEnabled=!1,e._resizeCallback=null;var i=CO,n=DO;return e._rpExactFit=new RO(i.EQUAL_TO_FRAME,n.EXACT_FIT),e._rpShowAll=new RO(i.EQUAL_TO_FRAME,n.SHOW_ALL),e._rpNoBorder=new RO(i.EQUAL_TO_FRAME,n.NO_BORDER),e._rpFixedHeight=new RO(i.EQUAL_TO_FRAME,n.FIXED_HEIGHT),e._rpFixedWidth=new RO(i.EQUAL_TO_FRAME,n.FIXED_WIDTH),e._resolutionPolicy=e._rpShowAll,e}s(e,t);var i=e.prototype;return i.init=function(){var t=ah.windowSize,e=t.width,i=t.height;this._designResolutionSize.width=e,this._designResolutionSize.height=i,this._viewportRect.width=e,this._viewportRect.height=i,this._visibleRect.width=e,this._visibleRect.height=i,wO.width=this._visibleRect.width,wO.height=this._visibleRect.height,hh.init(this._visibleRect),this.resizeWithBrowserSize(!0);var n=Ve.querySettings("screen","designResolution");n&&this.setDesignResolutionSize(Number(n.width),Number(n.height),n.policy||RO.FIXED_HEIGHT),ah.on("window-resize",this._updateAdaptResult,this),ah.on("fullscreen-change",this._updateAdaptResult,this)},i.resizeWithBrowserSize=function(t){rh.handleResizeEvent=t},i.setResizeCallback=function(t){"function"!=typeof t&&null!=t||(this._resizeCallback=t)},i.setOrientation=function(t){rh.orientation=TO[t]},i.adjustViewportMeta=function(){},i.enableRetina=function(t){this._retinaEnabled=!!t},i.isRetinaEnabled=function(){return this._retinaEnabled},i.enableAutoFullScreen=function(t){t!==this._autoFullScreen&&(this._autoFullScreen=t,t&&ah.requestFullScreen().catch((function(){})))},i.isAutoFullScreenEnabled=function(){return this._autoFullScreen},i.setCanvasSize=function(t,e){rh.resolutionScale=1;var i=rh.devicePixelRatio,n=new ps(t*i,e*i);ah.windowSize=n},i.getCanvasSize=function(){return ah.windowSize},i.getFrameSize=function(){var t=rh.devicePixelRatio,e=ah.windowSize;return e.width/=t,e.height/=t,e},i.setFrameSize=function(t,e){var i=rh.devicePixelRatio;ah.windowSize=new ps(t*i,e*i)},i.getVisibleSize=function(){return new ps(this._visibleRect.width,this._visibleRect.height)},i.getVisibleSizeInPixel=function(){return new ps(this._visibleRect.width*this._scaleX,this._visibleRect.height*this._scaleY)},i.getVisibleOrigin=function(){return new _s(this._visibleRect.x,this._visibleRect.y)},i.getVisibleOriginInPixel=function(){return new _s(this._visibleRect.x*this._scaleX,this._visibleRect.y*this._scaleY)},i.getResolutionPolicy=function(){return this._resolutionPolicy},i._updateResolutionPolicy=function(t){if(t instanceof RO)this._resolutionPolicy=t;else{var e=RO;t===e.EXACT_FIT&&(this._resolutionPolicy=this._rpExactFit),t===e.SHOW_ALL&&(this._resolutionPolicy=this._rpShowAll),t===e.NO_BORDER&&(this._resolutionPolicy=this._rpNoBorder),t===e.FIXED_HEIGHT&&(this._resolutionPolicy=this._rpFixedHeight),t===e.FIXED_WIDTH&&(this._resolutionPolicy=this._rpFixedWidth)}},i.setResolutionPolicy=function(t){this._updateResolutionPolicy(t);var e=FO.getDesignResolutionSize();FO.setDesignResolutionSize(e.width,e.height,t)},i.setDesignResolutionSize=function(t,e,i){if(t>0&&e>0){this._updateResolutionPolicy(i);var n=this._resolutionPolicy;n&&n.preApply(this),this._designResolutionSize.width=t,this._designResolutionSize.height=e;var r=n.apply(this,this._designResolutionSize);if(r.scale&&2===r.scale.length&&(this._scaleX=r.scale[0],this._scaleY=r.scale[1]),r.viewport){var s=this._viewportRect,a=this._visibleRect,o=r.viewport;s.x=o.x,s.y=o.y,s.width=o.width,s.height=o.height,a.x=0,a.y=0,a.width=o.width/this._scaleX,a.height=o.height/this._scaleY}n.postApply(this),wO.width=this._visibleRect.width,wO.height=this._visibleRect.height,hh.init(this._visibleRect),this.emit("design-resolution-changed")}else ot(2200)},i.getDesignResolutionSize=function(){return new ps(this._designResolutionSize.width,this._designResolutionSize.height)},i.setRealPixelResolution=function(t,e,i){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)},i.getViewportRect=function(){return this._viewportRect},i.getScaleX=function(){return this._scaleX},i.getScaleY=function(){return this._scaleY},i.getDevicePixelRatio=function(){return rh.devicePixelRatio},i.convertToLocationInView=function(t,e,i,n){void 0===n&&(n=new _s);var r=rh.devicePixelRatio*(t-i.left),s=rh.devicePixelRatio*(i.top+i.height-e);return rh.isFrameRotated?(n.x=ah.windowSize.width-s,n.y=r):(n.x=r,n.y=s),n},i._convertToUISpace=function(t){var e=this._viewportRect;t.x=(t.x-e.x)/this._scaleX,t.y=(t.y-e.y)/this._scaleY},i._updateAdaptResult=function(t,e,i){T.director.root.resize(t,e,void 0===i||0===i?1:i);var n=this._designResolutionSize,r=n.width,s=n.height;t>0&&e>0?this.setDesignResolutionSize(r,s,this._resolutionPolicy):K(!1,"_updateAdaptResult Invalid size."),this.emit("canvas-resize"),this._resizeCallback&&this._resizeCallback()},e}(Do(Ef)));AO.instance=void 0;var CO=function(){function t(){this.name="ContainerStrategy"}var e=t.prototype;return e.preApply=function(){},e.apply=function(){},e.postApply=function(){},e._setupCanvas=function(){var t=T.game.canvas;if(t){var e=ah.windowSize;t.width!==e.width&&(t.width=e.width),t.height!==e.height&&(t.height=e.height)}},t}();CO.EQUAL_TO_FRAME=void 0,CO.PROPORTION_TO_FRAME=void 0;var DO=function(){function t(){this.name="ContentStrategy",this._result={scale:[1,1],viewport:null},this._strategy=RO.UNKNOWN}var e=t.prototype;return e.preApply=function(){},e.apply=function(){return{scale:[1,1]}},e.postApply=function(){},e._buildResult=function(t,e,i,n,r,s){Math.abs(t-i)<2&&(i=t),Math.abs(e-n)<2&&(n=e);var a=new vs(Math.round((t-i)/2),Math.round((e-n)/2),i,n),o=this._result;return o.scale=[r,s],o.viewport=a,o},n(t,[{key:"strategy",get:function(){return this._strategy}}]),t}(),BO=function(t){function e(){var e;return(e=t.call(this)||this).name="EqualToFrame",e}return s(e,t),e.prototype.apply=function(){rh.isProportionalToFrame=!1,this._setupCanvas()},e}(CO),IO=function(t){function e(){var e;return(e=t.call(this)||this).name="ProportionalToFrame",e}return s(e,t),e.prototype.apply=function(){rh.isProportionalToFrame=!0,this._setupCanvas()},e}(CO);CO.EQUAL_TO_FRAME=new BO,CO.PROPORTION_TO_FRAME=new IO;var MO=function(t){function e(){var e;return(e=t.call(this)||this).name="ExactFit",e._strategy=RO.EXACT_FIT,e}return s(e,t),e.prototype.apply=function(t,e){var i=ah.windowSize,n=i.width,r=i.height,s=n/e.width,a=r/e.height;return this._buildResult(n,r,n,r,s,a)},e}(DO),PO=function(t){function e(){var e;return(e=t.call(this)||this).name="ShowAll",e._strategy=RO.SHOW_ALL,e}return s(e,t),e.prototype.apply=function(t,e){var i,n,r=ah.windowSize,s=r.width,a=r.height,o=e.width,h=e.height,u=s/o,l=a/h,c=0;return ue){var r=n;n=i,i=r}this.scaleSize=t/e>16/9?e/n:t/i},t.update=function(t){var e=this.settings,i=this.device,n=this.swapchain,r=i.capabilities;Kr.ortho(this.projection,-1,1,-1,1,-1,1,r.clipSpaceMinZ,r.clipSpaceSignY,n.surfaceTransform);var s=n.width,a=n.height;this.initScale(),this._curTime+=1e3*t;var o=il($i(this._curTime/e.totalTime)),h=1,u=1,l=this.bgImage;if("custom"===e.background.type){e.policy===RO.FIXED_WIDTH?(h=s,u=s/l.width*l.height):e.policy===RO.FIXED_HEIGHT?(h=a/l.height*l.width,u=a):e.policy===RO.SHOW_ALL?l.width/this.bgHeight>s/a?(h=s,u=s/l.width*l.height):(h=a/l.height*l.width,u=a):e.policy===RO.NO_BORDER?l.width/l.height>s/a?(h=a/l.height*l.width,u=a):(h=s,u=s/l.width*l.height):(h=s,u=a);var c=this.bgMat;NO(c,"resolution",LO.set(s,a),0),NO(c,"scale",LO.set(h,u),0),NO(c,"translate",LO.set(.5*s,.5*a),0),NO(c,"percent",1),NO(c,"u_projection",this.projection),c.passes[0].update()}var f=a*this.logoYTrans;if("none"!==this.settings.logo.type){u=.185*a*e.displayRatio,h=this.logoWidth*(.185*a/this.logoHeight)*e.displayRatio;var _=this.logoMat;NO(_,"resolution",LO.set(s,a),0),NO(_,"scale",LO.set(h,u),0),NO(_,"translate",LO.set(s*this.logoXTrans,f),0),NO(_,"percent",o),NO(_,"u_projection",this.projection),_.passes[0].update()}if("default"===this.settings.logo.type&&this.watermarkMat){var d=this.watermarkTexture.width,p=this.watermarkTexture.height;h=d,u=p;var m=f-(.5*this.logoHeight*e.displayRatio+this.textYExtraTrans)*this.scaleSize-.5*p,g=this.watermarkMat;NO(g,"resolution",LO.set(s,a),0),NO(g,"scale",LO.set(h,u),0),NO(g,"translate",LO.set(s*this.textXTrans,m),0),NO(g,"percent",o),NO(g,"u_projection",this.projection),g.passes[0].update()}this.frame()},t.initBG=function(){var t=this.device;this.bgMat=new NT,this.bgMat.initialize({effectName:"util/splash-screen"});var e=new fd;e.addressU=2,e.addressV=2,e.addressW=2,this.sampler=t.getSampler(e),this.bgTexture=t.createTexture(new ld(1,6,35,this.bgImage.width,this.bgImage.height));var i=this.bgMat.passes[0],n=i.getBinding("mainTexture");i.bindTexture(n,this.bgTexture),this.shader=i.getShaderVariant();var r=i.descriptorSet;r.bindSampler(n,this.sampler),r.update();var s=new Z_,a=s.texExtent;a.width=this.bgImage.width,a.height=this.bgImage.height,a.depth=1,t.copyTexImagesToTexture([this.bgImage],this.bgTexture,[s])},t.initLogo=function(){var t=this.device;this.logoMat=new NT,this.logoMat.initialize({effectName:"util/splash-screen"});var e=new fd;e.addressU=2,e.addressV=2,e.addressW=2,this.sampler=t.getSampler(e),this.logoTexture=t.createTexture(new ld(1,6,35,this.logoImage.width,this.logoImage.height));var i=this.logoMat.passes[0],n=i.getBinding("mainTexture");i.bindTexture(n,this.logoTexture),this.shader=i.getShaderVariant();var r=i.descriptorSet;r.bindSampler(n,this.sampler),r.update();var s=new Z_,a=s.texExtent;a.width=this.logoImage.width,a.height=this.logoImage.height,a.depth=1,t.copyTexImagesToTexture([this.logoImage],this.logoTexture,[s]);var o=this.logoImage.width/this.logoImage.height;o<1?(this.logoWidth=this.logoWidthTemp,this.logoHeight=this.logoWidthTemp/o):(this.logoWidth=this.logoHeightTemp*o,this.logoHeight=this.logoHeightTemp)},t.initWaterMark=function(){var t=D.document.createElement("canvas");t.height=this.textHeight*this.scaleSize,t.style.width=""+t.width,t.style.height=""+t.height;var e="Created with Cocos",i=t.getContext("2d");i.font=this.textSize*this.scaleSize+"px Arial",i.textBaseline="top",i.textAlign="center",i.fillStyle="#707070";var n=i.measureText(e).width+10;t.width=n,i.font=this.textSize*this.scaleSize+"px Arial",i.textBaseline="top",i.textAlign="center",i.fillStyle="#707070",i.fillText(e,t.width/2,0);var r=new Z_,s=r.texExtent;s.width=t.width,s.height=t.height,s.depth=1,this.watermarkTexture=this.device.createTexture(new ld(1,6,35,t.width,t.height)),this.device.copyTexImagesToTexture([t],this.watermarkTexture,[r]),this.watermarkMat=new NT,this.watermarkMat.initialize({effectName:"util/splash-screen"});var a=this.watermarkMat.passes[0],o=a.getBinding("mainTexture");a.bindTexture(o,this.watermarkTexture),a.descriptorSet.update()},t.frame=function(){var t=this.device,e=this.swapchain,i=this.projection,n=this.bgMat,r=this.logoMat,s=this.watermarkMat,a=this.settings,o=this.quadAssmebler,h=t.capabilities;if(!oh.isXR||xr.entry.isRenderAllowable())for(var u=oh.isXR?2:1,l=0;l=this.settings.totalTime}},{key:"curTime",get:function(){return this._curTime},set:function(t){this._curTime=t}}],[{key:"instance",get:function(){return e._ins}}]),e}();VO._ins=null,T.internal.SplashScreen=VO;var zO=new(function(){function t(){this._data=null}return t.prototype.init=function(t){var e=this;return void 0===t&&(t=""),A.rendering&&A.rendering.enableEffectImport&&t?new Promise((function(i,n){var r=new XMLHttpRequest;r.open("GET",t),r.responseType="arraybuffer",r.onload=function(){e._data=r.response,i()},r.onerror=function(){n(new Error("request effect settings failed!"))},r.send(null)})):Promise.resolve()},n(t,[{key:"data",get:function(){return this._data}}]),t}());A.effectSettings=zO;var UO=Ve.querySettings.bind(Ve),GO=t("dV",function(t){function i(){var e;return(e=t.call(this)||this).frame=null,e.container=null,e.canvas=null,e.renderType=-1,e.eventTargetOn=t.prototype.on,e.eventTargetOnce=t.prototype.once,e.config={},e.onStart=null,e.frameTime=1e3/60,e._isCloning=!1,e._inited=!1,e._engineInited=!1,e._rendererInitialized=!1,e._paused=!0,e._pausedByEngine=!1,e._frameRate=60,e._pacer=null,e._initTime=0,e._startTime=0,e._deltaTime=0,e._useFixedDeltaTime=!1,e._shouldLoadLaunchScene=!0,e.onPreBaseInitDelegate=new Ro,e.onPostBaseInitDelegate=new Ro,e.onPreInfrastructureInitDelegate=new Ro,e.onPostInfrastructureInitDelegate=new Ro,e.onPreSubsystemInitDelegate=new Ro,e.onPostSubsystemInitDelegate=new Ro,e.onPreProjectInitDelegate=new Ro,e.onPostProjectInitDelegate=new Ro,e}s(i,t);var r=i.prototype;return r.setFrameRate=function(t){this.frameRate=t},r.getFrameRate=function(){return this.frameRate},r.step=function(){WE.tick(this._calculateDT(!0))},r.pauseByEngine=function(){this._paused||(this._pausedByEngine=!0,this.pause())},r.resumeByEngine=function(){this._pausedByEngine&&(this.resume(),this._pausedByEngine=!1)},r.pause=function(){var t;this._paused||(this._paused=!0,null==(t=this._pacer)||t.stop(),this.emit(i.EVENT_PAUSE))},r.resume=function(){var t;this._paused&&(yM._clearEvents(),this._paused=!1,null==(t=this._pacer)||t.start(),this.emit(i.EVENT_RESUME))},r.isPaused=function(){return this._paused},r.restart=function(){var t=this;return new Promise((function(t){WE.once("director_end_frame",(function(){return t()}))})).then((function(){WE.reset(),T.Object._deferredDestroy(),t.pause(),t.resume(),t._shouldLoadLaunchScene=!0})).then((function(){return VO.createInstance().init()})).then((function(){t._safeEmit(i.EVENT_RESTART)}))},r.end=function(){Lo.close()},r.on=function(t,e,i,n){return this.canRegisterEvent(t)&&e.call(i),this.eventTargetOn(t,e,i,n)},r.once=function(t,e,i){return this.canRegisterEvent(t)?e.call(i):this.eventTargetOnce(t,e,i)},r.canRegisterEvent=function(t){return this._engineInited&&t===i.EVENT_ENGINE_INITED||this._inited&&t===i.EVENT_GAME_INITED||this._rendererInitialized&&t===i.EVENT_RENDERER_INITED},r.init=function(t){var n=this;return this._compatibleWithOldParams(t),Promise.resolve().then((function(){return n.emit(i.EVENT_PRE_BASE_INIT),n.onPreBaseInitDelegate.dispatch()})).then((function(){Q(t.debugMode||0)})).then((function(){return oh.init()})).then((function(){n._initEvents()})).then((function(){return Ve.init(t.settingsPath,t.overrideSettings)})).then((function(){return n.emit(i.EVENT_POST_BASE_INIT),n.onPostBaseInitDelegate.dispatch()})).then((function(){return n.emit(i.EVENT_PRE_INFRASTRUCTURE_INIT),n.onPreInfrastructureInitDelegate.dispatch()})).then((function(){ze.init(),n._initXR();var t={frame:document.querySelector("#GameDiv"),container:document.querySelector("#Cocos3dGameContainer"),canvas:document.querySelector("#GameCanvas")};return n.canvas=t.canvas,n.frame=t.frame,n.container=t.container,ah.init(),jf.init(),zp.init(n.canvas,xb)})).then((function(){if(UO("rendering","customPipeline")){if(!T.rendering)return void ot(12109);ze.CUSTOM_PIPELINE_NAME||(ze.CUSTOM_PIPELINE_NAME="Builtin")}else T.rendering=void 0;hT.init(),fT.init(),Oy.init(),n.initPacer()})).then((function(){return n.emit(i.EVENT_POST_INFRASTRUCTURE_INIT),n.onPostInfrastructureInitDelegate.dispatch()})).then((function(){return n.emit(i.EVENT_PRE_SUBSYSTEM_INIT),n.onPreSubsystemInitDelegate.dispatch()})).then((function(){return zO.init(UO("rendering","effectSettingsPath"))})).then((function(){if(T.rendering&&T.rendering.enableEffectImport)if(3!==UO("rendering","renderMode")){var t=zO.data;null!==t?T.rendering.init(zp.gfxDevice,t):ot(1102)}else T.rendering.init(zp.gfxDevice,null)})).then((function(){var t=UO("scripting","scriptPackages");return t?Promise.all(t.map((function(t){return e.import(t)}))):Promise.resolve([])})).then((function(){return WE.init(),fT.loadBuiltinAssets()})).then((function(){return n.emit(i.EVENT_POST_SUBSYSTEM_INIT),n.onPostSubsystemInitDelegate.dispatch()})).then((function(){q("Cocos Creator v"+C),n.emit(i.EVENT_ENGINE_INITED),n._engineInited=!0})).then((function(){return n.emit(i.EVENT_PRE_PROJECT_INIT),n.onPreProjectInitDelegate.dispatch()})).then((function(){var t=UO("plugins","jsList"),e=Promise.resolve();return t&&t.forEach((function(t){e=e.then((function(){return e="src/"+t,new Promise((function(t,i){var n;function r(t){t.filename===e&&(n=t.error)}window.addEventListener("error",r);var s=document.createElement("script");s.charset="utf-8",s.async=!0,s.crossOrigin="anonymous",s.addEventListener("error",(function(){window.removeEventListener("error",r),i(Error("Error loading "+e))})),s.addEventListener("load",(function(){window.removeEventListener("error",r),document.head.removeChild(s),n?i(n):t()})),s.src=e.replace("#","%23"),document.head.appendChild(s)}));var e}))})),e})).then((function(){return n._loadProjectBundles()})).then((function(){return n._loadCCEScripts()})).then((function(){return n._setupRenderPipeline()})).then((function(){return n._loadPreloadAssets()})).then((function(){return fT.compileBuiltinMaterial(),VO.createInstance().init()})).then((function(){return n.emit(i.EVENT_POST_PROJECT_INIT),n.onPostProjectInitDelegate.dispatch()})).then((function(){n._inited=!0,n._safeEmit(i.EVENT_GAME_INITED)}))},r._initXR=function(){var t;if(void 0===globalThis.__globalXR&&(globalThis.__globalXR={}),globalThis.__globalXR.webxrCompatible=null!==(t=UO("xr","webxrCompatible"))&&void 0!==t&&t,oh.isXR){var e,i;xr.entry=xr.XrEntry.getInstance();var n=null!==(e=UO("rendering","msaa"))&&void 0!==e?e:1,r=null!==(i=UO("rendering","renderingScale"))&&void 0!==i?i:1;xr.entry.setMultisamplesRTT(n),xr.entry.setRenderingScale(r)}},r._compatibleWithOldParams=function(t){var e=t.overrideSettings=t.overrideSettings||{};"showFPS"in t&&(e.profiling=e.profiling||{},e.profiling.showFPS=t.showFPS),"frameRate"in t&&(e.screen=e.screen||{},e.screen.frameRate=t.frameRate),"renderMode"in t&&(e.rendering=e.rendering||{},e.rendering.renderMode=t.renderMode),"renderPipeline"in t&&(e.rendering=e.rendering||{},e.rendering.renderPipeline=t.renderPipeline),"assetOptions"in t&&(e.assets=e.assets||{},Object.assign(e.assets,t.assetOptions)),"customJointTextureLayouts"in t&&(e.animation=e.animation||{},e.animation.customJointTextureLayouts=t.customJointTextureLayouts),"physics"in t&&(e.physics=e.physics||{},Object.assign(e.physics,t.physics)),"orientation"in t&&(e.screen=e.screen||{},e.screen.orientation=t.orientation),"exactFitScreen"in t&&(e.screen=e.screen||{},e.screen.exactFitScreen=t.exactFitScreen)},r._loadPreloadAssets=function(){var t=UO("assets","preloadAssets");return t?Promise.all(t.map((function(t){return new Promise((function(e,i){hT.loadAny(t,(function(t){t?i(t):e()}))}))}))):Promise.resolve([])},r._loadCCEScripts=function(){return new Promise((function(t){t()}))},r._loadProjectBundles=function(){var t=UO("assets","preloadBundles");return t?Promise.all(t.map((function(t){var e=t.bundle,i=t.version;return new Promise((function(t,n){var r={};i&&(r.version=i),hT.loadBundle(e,r,(function(e){e?n(e):t()}))}))}))):Promise.resolve([])},r.run=function(t){t&&(this.onStart=t),this._inited&&this.resume()},r._calculateDT=function(t){if(this._useFixedDeltaTime=t,t)return this._startTime=performance.now(),this.frameTime/1e3;var e=performance.now();return this._deltaTime=e>this._startTime?(e-this._startTime)/1e3:0,this._deltaTime>i.DEBUG_DT_THRESHOLD&&(this._deltaTime=this.frameTime/1e3),this._startTime=e,this._deltaTime},r._updateCallback=function(){var t=this;if(this._inited)if(VO.instance&&!VO.instance.isFinished)VO.instance.update(this._calculateDT(!1));else if(this._shouldLoadLaunchScene){VO.releaseInstance(),this._shouldLoadLaunchScene=!1;var e,i=UO("launch","launchScene");i?WE.loadScene(i,(function(){et(1103,i),t._initTime=performance.now(),WE.startAnimation(),null==t.onStart||t.onStart()})):(this._initTime=performance.now(),WE.startAnimation(),null==(e=this.onStart)||e.call(this))}else WE.tick(this._calculateDT(!1))},r.initPacer=function(){var t,e=null!==(t=UO("screen","frameRate"))&&void 0!==t?t:60;K("number"==typeof e),this._pacer=new qE,this._pacer.onTick=this._updateCallback.bind(this),this.frameRate=e},r._initEvents=function(){Lo.on("show",this._onShow,this),Lo.on("hide",this._onHide,this),Lo.on("close",this._onClose,this)},r._onHide=function(){this.emit(i.EVENT_HIDE),this.pauseByEngine()},r._onShow=function(){this.emit(i.EVENT_SHOW),this.resumeByEngine()},r._onClose=function(){this.emit(i.EVENT_CLOSE),Lo.exit()},r.addPersistRootNode=function(t){WE.addPersistRootNode(t)},r.removePersistRootNode=function(t){WE.removePersistRootNode(t)},r.isPersistRootNode=function(t){return WE.isPersistRootNode(t)},r._setupRenderPipeline=function(){var t=UO("rendering","customPipeline");return this._setRenderPipeline(!!t)},r._setRenderPipeline=function(t){WE.root.setRenderPipeline(t)?(this._rendererInitialized=!0,this._safeEmit(i.EVENT_RENDERER_INITED)):ot(1222)},r._safeEmit=function(t){this.emit(t)},n(i,[{key:"inited",get:function(){return this._inited}},{key:"frameRate",get:function(){return this._frameRate},set:function(t){"number"!=typeof t&&(t=parseInt(t,10),Number.isNaN(t)&&(t=60)),this._frameRate=t,this.frameTime=1e3/t,this._pacer&&(this._pacer.targetFrameRate=this._frameRate)}},{key:"deltaTime",get:function(){return this._useFixedDeltaTime?this.frameTime/1e3:this._deltaTime}},{key:"totalTime",get:function(){return performance.now()-this._initTime}},{key:"frameStartTime",get:function(){return this._startTime}}]),i}(Bo));GO.EVENT_HIDE="game_on_hide",GO.EVENT_SHOW="game_on_show",GO.EVENT_LOW_MEMORY="game_on_low_memory",GO.EVENT_GAME_INITED="game_inited",GO.EVENT_ENGINE_INITED="engine_inited",GO.EVENT_RENDERER_INITED="renderer_inited",GO.EVENT_PRE_BASE_INIT="pre_base_init",GO.EVENT_POST_BASE_INIT="post_base_init",GO.EVENT_PRE_INFRASTRUCTURE_INIT="pre_infrastructure_init",GO.EVENT_POST_INFRASTRUCTURE_INIT="post_infrastructure_init",GO.EVENT_PRE_SUBSYSTEM_INIT="pre_subsystem_init",GO.EVENT_POST_SUBSYSTEM_INIT="post_subsystem_init",GO.EVENT_PRE_PROJECT_INIT="pre_project_init",GO.EVENT_POST_PROJECT_INIT="post_project_init",GO.EVENT_RESTART="game_on_restart",GO.EVENT_PAUSE="game_on_pause",GO.EVENT_RESUME="game_on_resume",GO.EVENT_CLOSE="game_on_close",GO.RENDER_TYPE_CANVAS=0,GO.RENDER_TYPE_WEBGL=1,GO.RENDER_TYPE_OPENGL=2,GO.RENDER_TYPE_HEADLESS=3,GO.DEBUG_DT_THRESHOLD=1,T.Game=GO;var HO=t("dW",T.game=new GO);mt(HE.prototype,"director",[{name:"calculateDeltaTime"},{name:"getDeltaTime",suggest:"Use game.deltaTime instead"},{name:"getTotalTime",suggest:"Use game.totalTime instead"},{name:"getCurrentTime",suggest:"Use game.frameStartTime instead"}]),pt(HE.prototype,"director",[{name:"setAnimationInterval",suggest:"please use game.frameRate instead"},{name:"getAnimationInterval",suggest:"please use game.frameRate instead"},{name:"getRunningScene",suggest:"please use getScene instead"},{name:"setDepthTest",suggest:"please use camera API instead"},{name:"setClearColor",suggest:"please use camera API instead"},{name:"getWinSize",suggest:"please use view.getVisibleSize instead"},{name:"getWinSizeInPixels"},{name:"purgeCachedData",suggest:"please use assetManager.releaseAll instead"},{name:"convertToGL"},{name:"convertToUI"}]),dt(WE,"director",[{name:"_getSceneUuid",targetName:"assetManager.main",newName:"getSceneInfo",customFunction:function(t){var e;return hT.main?null==(e=hT.main.getSceneInfo(t))?void 0:e.uuid:""}}]),mt(HO,"game",[{name:"collisionMatrix"},{name:"groupList"}]),dt(HO,"game",[{name:"_sceneInfos",targetName:"assetManager.main",newName:"getSceneInfo",customGetter:function(){var t=[];return hT.main&&hT.main.config.scenes.forEach((function(e){t.push(e)})),t}}]);var WO=t("a4",function(t){function e(){var e;return(e=t.call(this)||this)._atlases=[],e._atlasIndex=-1,e._maxAtlasCount=5,e._textureSize=2048,e._maxFrameSize=512,e._textureBleeding=!0,e._enabled=!1,e}s(e,t);var i=e.prototype;return i.newAtlas=function(){var t=this._atlases[++this._atlasIndex];return!t&&this._atlasIndex=this._maxAtlasCount||!t||t.original)return null;if(!t.packable)return null;var e=t.texture.getSamplerInfo();if(2!==e.minFilter||2!==e.magFilter||0!==e.mipFilter)return null;var i=this._atlases[this._atlasIndex];i||(i=this.newAtlas());var n=i?i.insertSpriteFrame(t):null;return!n&&this._atlasIndex=0;e--)this._atlases[e].removeSpriteFrame(t);var i=t.original._texture;this.deleteAtlasTexture(i)}},i.deleteAtlasTexture=function(t){if(t)for(var e=this._atlases.length-1;e>=0;e--)this._atlases[e].deleteInnerTexture(t),this._atlases[e].isEmpty()&&(this._atlases[e].destroy(),this._atlases.splice(e,1),this._atlasIndex--)},i.packToDynamicAtlas=function(t,e){if(this._enabled&&e&&!e.original&&e.packable&&e.texture&&e.texture.width>0&&e.texture.height>0){var i=this.insertSpriteFrame(e);i&&e._setDynamicAtlasFrame(i)}},n(e,[{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled!==t&&(t?(this.reset(),WE.on("director_before_scene_launch",this.beforeSceneLoad,this)):(this.reset(),WE.off("director_before_scene_launch",this.beforeSceneLoad,this)),this._enabled=t)}},{key:"maxAtlasCount",get:function(){return this._maxAtlasCount},set:function(t){this._maxAtlasCount=t}},{key:"atlasCount",get:function(){return this._atlases.length}},{key:"textureBleeding",get:function(){return this._textureBleeding},set:function(t){this._textureBleeding=t}},{key:"textureSize",get:function(){return this._textureSize},set:function(t){this._textureSize=t}},{key:"maxFrameSize",get:function(){return this._maxFrameSize},set:function(t){this._maxFrameSize=t}}]),e}(Ef));WO.instance=void 0;var jO=t("a5",WO.instance=new WO);WE.registerSystem("dynamicAtlasManager",jO,0),T.internal.dynamicAtlasManager=jO;var qO={positions:"a_position",normals:"a_normal",uvs:"a_texCoord",colors:"a_color"},XO=function(){function t(){this._arrayBufferOrPaddings=[],this._length=0}var e=t.prototype;return e.setNextAlignment=function(t){if(0!==t){var e=this._length%t;if(0!==e){var i=t-e;this._arrayBufferOrPaddings.push(i),this._length+=i}}},e.addBuffer=function(t){var e=this._length;return this._arrayBufferOrPaddings.push(t),this._length+=t.byteLength,e},e.getLength=function(){return this._length},e.getCombined=function(){var t=new Uint8Array(this._length),e=0;return this._arrayBufferOrPaddings.forEach((function(i){"number"==typeof i?e+=i:(t.set(new Uint8Array(i),e),e+=i.byteLength)})),t.buffer},t}();function YO(t,e){return new KO(t,e)}var KO=function(){function t(t,e){if(this._subMeshRenderings=[],this._mesh=t,this._mesh.struct.morph){var i=this._mesh.struct.primitives.length;this._subMeshRenderings=new Array(i).fill(null);for(var n=0;n60?this._subMeshRenderings[n]=new QO(this._mesh,n,this._mesh.struct.morph,e):this._subMeshRenderings[n]=new JO(this._mesh,n,this._mesh.struct.morph,e))}}}return t.prototype.createInstance=function(){for(var t=this,e=this._mesh.struct.primitives.length,i=new Array(e),n=0;n>1;return{width:1<<(1&e?i+1:i),height:1<_&&(_=t[u]),t[u]>=1;for(c=n<<16|u,l=o;l>>=1){case 0:var n=this.input,a=this.a,u=this.c,l=this.b,c=n.length,f=e,d=u.length,p=e;switch(this.d=this.f=0,a+1>=c&&t(Error("invalid uncompressed block header: LEN")),f=n[a++]|n[a++]<<8,a+1>=c&&t(Error("invalid uncompressed block header: NLEN")),f===~(n[a++]|n[a++]<<8)&&t(Error("invalid uncompressed block header: length verify")),a+f>n.length&&t(Error("input buffer is broken")),this.e){case o:for(;l+f>u.length;){if(f-=p=d-l,r)u.set(n.subarray(a,a+p),l),l+=p,a+=p;else for(;p--;)u[l++]=n[a++];this.b=l,u=E(this),l=this.b}break;case h:for(;l+f>u.length;)u=O(this,{m:2});break;default:t(Error("invalid inflate mode"))}if(r)u.set(n.subarray(a,a+f),l),l+=f,a+=f;else for(;f--;)u[l++]=n[a++];this.a=a,this.b=l,this.c=u;break;case 1:switch(this.e){case h:P(this,A,D);break;case o:M(this,A,D);break;default:t(Error("invalid inflate mode"))}break;case 2:var m,g,y,v,b=B(this,5)+257,S=B(this,5)+1,x=B(this,4)+4,w=new(r?Uint8Array:Array)(_.length),T=e,C=e,k=e,R=e,F=e;for(F=0;FY&&(this.c.length=Y),X=this.c),this.buffer=X;default:t(Error("invalid inflate mode"))}};var l,c,f=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],_=r?new Uint16Array(f):f,d=[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],p=r?new Uint16Array(d):d,m=[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],g=r?new Uint8Array(m):m,y=[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],v=r?new Uint16Array(y):y,b=[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],S=r?new Uint8Array(b):b,x=new(r?Uint8Array:Array)(288);for(l=0,c=x.length;l=l?8:255>=l?9:279>=l?7:8;var w,T,A=s(x),C=new(r?Uint8Array:Array)(30);for(w=0,T=C.length;w>3)>=a.length&&t(Error("input buffer is broken"));s>>i,e.d=s-i,e.a=o,n}function I(e,i){for(var n,r,s=e.f,a=e.d,o=e.input,h=e.a,u=o.length,l=i[0],c=i[1];a=u);)s|=o[h++]<>>16)>a&&t(Error("invalid code length: "+r)),e.f=s>>r,e.d=a-r,e.a=h,65535&n}function M(t,e,i){var n=t.c,r=t.b;t.l=e;for(var s,a,o,h,u=n.length-258;256!==(s=I(t,e));)if(256>s)r>=u&&(t.b=r,n=E(t),r=t.b),n[r++]=s;else for(h=p[a=s-257],0=u&&(t.b=r,n=E(t),r=t.b);h--;)n[r]=n[r++-o];for(;8<=t.d;)t.d-=8,t.a--;t.b=r}function P(t,e,i){var n=t.c,r=t.b;t.l=e;for(var s,a,o,h,u=n.length;256!==(s=I(t,e));)if(256>s)r>=u&&(u=(n=O(t)).length),n[r++]=s;else for(h=p[a=s-257],0u&&(u=(n=O(t)).length);h--;)n[r]=n[r++-o];for(;8<=t.d;)t.d-=8,t.a--;t.b=r}function E(t){var e,i,n=new(r?Uint8Array:Array)(t.b-32768),s=t.b-32768,a=t.c;if(r)n.set(a.subarray(32768,n.length));else for(e=0,i=n.length;ee;++e)a[e]=a[s+e];return t.b=32768,a}function O(t,e){var i,n,s,a=t.input.length/t.a+1|0,o=t.input,h=t.c;return e&&("number"==typeof e.m&&(a=e.m),"number"==typeof e.r&&(a+=e.r)),n=2>a?(s=(o.length-t.a)/t.l[2]/2*258|0)>>0;var r=e;if("string"==typeof r){var s,a,o=r.split("");for(s=0,a=o.length;s>>0;r=o}for(var h,u=1,l=0,c=r.length,f=0;0>>0&&t(Error("invalid adler-32 checksum"))}return e};var R=8;n("Zlib.Inflate",k),n("Zlib.Inflate.prototype.decompress",k.prototype.i);var F,L,N,V,z={ADAPTIVE:u.p,BLOCK:u.q};if(Object.keys)F=Object.keys(z);else for(L in F=[],N=0,z)F[N++]=L;for(N=0,V=F.length;N=65536){st(10001,k,65536);continue}E>>=1,O>>=1}I=w.createBuffer(new sd(4,1,O,E)),A.push(I),M=new(wk(P.stride))(x,P.offset,P.count),P.stride!==E&&(M=wk(E).from(M)),I.update(M)}var R=B.vertexBundelIndices.map((function(t){return T[t]})),F=[];if(B.vertexBundelIndices.length>0)for(var L=B.vertexBundelIndices[0],N=this._struct.vertexBundles[L].attributes,V=0;V=this._struct.primitives.length)st(14201);else{var i=[];if(e.positions.length>0&&i.push(e.positions),e.normals&&e.normals.length>0&&i.push(e.normals),e.uvs&&e.uvs.length>0&&i.push(e.uvs),e.tangents&&e.tangents.length>0&&i.push(e.tangents),e.colors&&e.colors.length>0&&i.push(e.colors),e.customAttributes)for(var n=0;n0&&(p.set(m),g.update(m,d)),c.view.count=_,h.vertexCount=_}if(a.indexView){var y=a.indexView,v=y.stride,b=2===v?e.indices16.length:e.indices32.length,S=b*v,x=new Uint8Array(this._data.buffer,y.offset,S),w=2===v?new Uint8Array(e.indices16.buffer,e.indices16.byteOffset,S):new Uint8Array(e.indices32.buffer,e.indices32.byteOffset,S),T=o.indexBuffer;s.maxSubMeshIndices,S>0&&(x.set(w),T.update(w,S)),y.count=b,h.indexCount=b}if(e.minPos&&e.maxPos){var A=ir(e.minPos.x,e.minPos.y,e.minPos.z),C=ir(e.maxPos.x,e.maxPos.y,e.maxPos.z);r.bounds[t]||(r.bounds[t]=new mh),yk(r.bounds[t],A,C);var D=ir(),B=ir();r.bounds.forEach((function(t){t&&(t.getBoundary(D,B),bk(A,D,A),vk(C,B,C))})),this._struct.minPosition=ir(A.x,A.y,A.z),this._struct.maxPosition=ir(C.x,C.y,C.z)}o.invalidateGeometricInfo()}else st(14200)},i.destroy=function(){return this.destroyRenderingMesh(),t.prototype.destroy.call(this)},i.destroyRenderingMesh=function(){if(this._renderingSubMeshes){for(var t=0;t=n.length)){xk(Ak,Tk,n[d]),i[d]=!0;var p=e[d];bk(p.center,p.center,Ak),vk(p.halfExtents,p.halfExtents,Ak)}}}}for(var m=0;m=this._struct.primitives.length)return null;var e=this._struct.primitives[t];if(!e.indexView)return null;var i=e.indexView.stride;return new(1===i?Uint8Array:2===i?Uint16Array:Uint32Array)(this._data.buffer,e.indexView.offset,e.indexView.count)},i.copyIndices=function(t,e){if(t>=this._struct.primitives.length)return!1;var i=this._struct.primitives[t];if(!i.indexView)return!1;for(var n=i.indexView.count,r=1===i.indexView.stride?6:2===i.indexView.stride?9:12,s=Pk(new DataView(this._data.buffer),r),a=0;a=this._struct.primitives.length))for(var n=this._struct.primitives[t].vertexBundelIndices,r=0;r0){n=null,t.attributes&&(n=t.attributes.find((function(t){return"a_position"===t.name}))||null),n||(n=Fk[0]),r.push(n);var u=Zd[n.format];o=Math.max(o,Math.floor(h.length/u.count)),a.push({offset:s,data:h,attribute:n}),s+=u.size}if(t.normals&&t.normals.length>0){n=null,t.attributes&&(n=t.attributes.find((function(t){return"a_normal"===t.name}))||null),n||(n=Fk[1]);var l=Zd[n.format];r.push(n),o=Math.max(o,Math.floor(t.normals.length/l.count)),a.push({offset:s,data:t.normals,attribute:n}),s+=l.size}if(t.uvs&&t.uvs.length>0){n=null,t.attributes&&(n=t.attributes.find((function(t){return"a_texCoord"===t.name}))||null),n||(n=Fk[2]);var c=Zd[n.format];r.push(n),o=Math.max(o,Math.floor(t.uvs.length/c.count)),a.push({offset:s,data:t.uvs,attribute:n}),s+=c.size}if(t.tangents&&t.tangents.length>0){n=null,t.attributes&&(n=t.attributes.find((function(t){return"a_tangent"===t.name}))||null),n||(n=Fk[3]);var f=Zd[n.format];r.push(n),o=Math.max(o,Math.floor(t.tangents.length/f.count)),a.push({offset:s,data:t.tangents,attribute:n}),s+=f.size}if(t.colors&&t.colors.length>0){n=null,t.attributes&&(n=t.attributes.find((function(t){return"a_color"===t.name}))||null),n||(n=Fk[4]);var _=Zd[n.format];r.push(n),o=Math.max(o,Math.floor(t.colors.length/_.count)),a.push({offset:s,data:t.colors,attribute:n}),s+=_.size}if(t.customAttributes)for(var d=0;d0){var i=t%e;if(0!==i)return e-i}return 0}function zk(t,e,i,n){n=n||{maxSubMeshes:1,maxSubMeshVertices:1024,maxSubMeshIndices:1024};var r=[],s=0;if(e.positions.length>0&&r.push(new xd("a_position",32,!1,s++,!1,0)),e.normals&&e.normals.length>0&&r.push(new xd("a_normal",32,!1,s++,!1,0)),e.uvs&&e.uvs.length>0&&r.push(new xd("a_texCoord",21,!1,s++,!1,0)),e.tangents&&e.tangents.length>0&&r.push(new xd("a_tangent",44,!1,s++,!1,0)),e.colors&&e.colors.length>0&&r.push(new xd("a_color",44,!1,s++,!1,0)),e.customAttributes)for(var a=0;a0?x=2:e.indices32&&e.indices32.length>0&&(x=4),x>0){c+=Vk(c,x);var w=n.maxSubMeshIndices*x,T={offset:c,length:w,count:0,stride:x};d.indexView=T,c+=w}l.push(d)}var A={info:{maxSubMeshes:n.maxSubMeshes,maxSubMeshVertices:n.maxSubMeshVertices,maxSubMeshIndices:n.maxSubMeshIndices},bounds:[]};A.bounds.length=n.maxSubMeshes;var C={struct:{vertexBundles:u,primitives:l,dynamic:A},data:new Uint8Array(c)};return i||(i=new Dk),i.reset(C),i.initialize(),i.updateSubMesh(t,e),i}var Uk,Gk,Hk=function(){function t(){}return t.createMesh=function(t,e,i){return Nk(t,e,i)},t.createDynamicMesh=function(t,e,i,n){return zk(t,e,i,n)},t.decodeMesh=function(t){return Ok(t)},t.inflateMesh=function(t){return kk(t)},t}(),Wk=Object.freeze({__proto__:null,MeshUtils:Hk,createMesh:Nk,find:NP,mapBuffer:ZE,readBuffer:QE,readMesh:function(t,e){void 0===e&&(e=0);var i={positions:[]},n=new DataView(t.data.buffer,t.data.byteOffset,t.data.byteLength),r=t.struct,s=r.primitives[e];s.vertexBundelIndices.forEach((function(t){var e=r.vertexBundles[t],s=e.view.offset,a=e.view,o=a.length,h=a.stride;e.attributes.forEach((function(t){var e=qO[t.name];e&&(i[e]=(i[e]||[]).concat(QE(n,t.format,s,o,h))),s+=Zd[t.format].size}))}));var a=s.indexView;return i.indices=QE(n,e_["R"+8*a.stride+"UI"],a.offset,a.length),i},toPPM:function(t,e,i){return"P3 "+e+" "+i+" 255\n"+t.filter((function(t,e){return e%4<3})).toString()+"\n"},writeBuffer:JE});t("a8",Wk);var jk,qk,Xk,Yk=ir(),Kk=Zr(),Jk=er.transformMat4,Qk=er.toArray,Zk=[{u:0,v:0},{u:0,v:0},{u:0,v:0},{u:0,v:0}],$k=(t("b",{UV_UPDATED:"uv_updated"}),t("c",Kh("cc.SpriteFrame")((Gk=function(t){function e(e){var i;return(i=t.call(this,e)||this).vertices=null,i.uv=[],i.unbiasUV=[],i.uvSliced=[],i._rect=bs(),i._trimmedBorder=Nn(),i._offset=ds(),i._originalSize=ms(),i._rotated=!1,i._capInsets=[0,0,0,0],i._atlasUuid="",i._texture=void 0,i._isFlipUVY=!1,i._isFlipUVX=!1,i._original=null,i._packable=!0,i._pixelsToUnit=100,i._pivot=ds(.5,.5),i._meshType=0,i._extrude=0,i._customOutLine=[],i._mesh=null,i._minPos=ir(),i._maxPos=ir(),i}s(e,t),e.createWithImage=function(t){var i=t instanceof Vm?t:new Vm(t),n=new By;n.image=i;var r=new e;return r.texture=n,r};var i=e.prototype;return i.textureLoaded=function(){return!!this.texture},i.isRotated=function(){return this._rotated},i.setRotated=function(t){this.rotated=t},i.getRect=function(t){return t?(t.set(this._rect),t):this._rect.clone()},i.setRect=function(t){this.rect=t},i.getOriginalSize=function(t){return t?(t.set(this._originalSize),t):this._originalSize.clone()},i.setOriginalSize=function(t){this.originalSize=t},i.getOffset=function(t){return t?(t.set(this._offset),t):this._offset.clone()},i.setOffset=function(t){this.offset=t},i.getGFXTexture=function(){return this._texture.getGFXTexture()},i.getGFXSampler=function(){return this._texture.getGFXSampler()},i.getHash=function(){return this._texture.getHash()},i.getSamplerInfo=function(){return this._texture.getSamplerInfo()},i.reset=function(t,e){void 0===e&&(e=!1);var i=this,n=!1;if(e&&(i._originalSize.set(0,0),i._rect.set(0,0,0,0),i._offset.set(0,0),i._capInsets=[0,0,0,0],i._rotated=!1,n=!0),t){t.texture&&(i._rect.set(0,0,t.texture.width,t.texture.height),i._refreshTexture(t.texture),i.checkRect(i._texture)),t.originalSize&&i._originalSize.set(t.originalSize),t.rect&&i._rect.set(t.rect),t.offset&&i._offset.set(t.offset);var r=i._capInsets;void 0!==t.borderTop&&(r[1]=t.borderTop),void 0!==t.borderBottom&&(r[3]=t.borderBottom),void 0!==t.borderLeft&&(r[0]=t.borderLeft),void 0!==t.borderRight&&(r[2]=t.borderRight),void 0!==t.isRotate&&(i._rotated=!!t.isRotate),void 0!==t.isFlipUv&&(i._isFlipUVY=!!t.isFlipUv),n=!0}n&&i.texture&&i._calculateUV(),i._calcTrimmedBorder()},i.checkRect=function(t){var e=this._rect,i=e.x,n=e.y;return this._rotated?(i+=e.height,n+=e.width):(i+=e.width,n+=e.height),i>t.width?(ot(3300,this.name+"/"+t.name,i,t.width),!1):!(n>t.height&&(ot(3301,this.name+"/"+t.name,n,t.height),1))},i._calcTrimmedBorder=function(){var t=this,e=t._originalSize.width,i=t._originalSize.height,n=.5*(e-t._rect.width),r=.5*(i-t._rect.height),s=t._offset,a=t._trimmedBorder;a.x=s.x+n,a.y=s.x-n,a.z=s.y+r,a.w=s.y-r},i.ensureMeshData=function(){this._mesh||(this._initVertices(),this._createMesh())},i.destroy=function(){return this._packable&&jO&&jO.deleteAtlasSpriteFrame(this),t.prototype.destroy.call(this)},i._calculateSlicedUV=function(){var t=this,e=t._rect,i=t.texture,n=t._capInsets,r=i.width,s=i.height,a=n[0],o=n[2],h=e.width-a-o,u=n[1],l=n[3],c=e.height-u-l,f=t.uvSliced;if(f.length=0,t._rotated){Zk[0].u=e.x/r,Zk[1].u=(e.x+l)/r,Zk[2].u=(e.x+l+c)/r,Zk[3].u=(e.x+e.height)/r,Zk[3].v=e.y/s,Zk[2].v=(e.y+a)/s,Zk[1].v=(e.y+a+h)/s,Zk[0].v=(e.y+e.width)/s;for(var _=0;_<4;++_)for(var d=Zk[_],p=0;p<4;++p){var m=Zk[3-p];f.push({u:d.u,v:m.v})}}else{Zk[0].u=e.x/r,Zk[1].u=(e.x+a)/r,Zk[2].u=(e.x+a+h)/r,Zk[3].u=(e.x+e.width)/r,Zk[3].v=e.y/s,Zk[2].v=(e.y+u)/s,Zk[1].v=(e.y+u+c)/s,Zk[0].v=(e.y+e.height)/s;for(var g=0;g<4;++g)for(var y=Zk[g],v=0;v<4;++v){var b=Zk[v];f.push({u:b.u,v:y.v})}}this.emit("uv_updated",this)},i._calculateUV=function(){var t=Te,e=this,i=e._rect,n=e.uv,r=e.unbiasUV,s=e.texture,a=s.width,o=s.height;if(e._rotated){var h=0===a?0:i.x/a,u=0===a?1:(i.x+i.height)/a,l=0===o?0:i.y/o,c=0===o?1:(i.y+i.width)/o;e._isFlipUVX&&e._isFlipUVY?t(n,u,c,u,l,h,c,h,l):e._isFlipUVX?t(n,u,l,u,c,h,l,h,c):e._isFlipUVY?t(n,h,c,h,l,u,c,u,l):t(n,h,l,h,c,u,l,u,c);var f=0===a?0:i.x/a,_=0===a?1:(i.x+i.height)/a,d=0===o?0:i.y/o,p=0===o?1:(i.y+i.width)/o;e._isFlipUVX&&e._isFlipUVY?t(r,_,p,_,d,f,p,f,d):e._isFlipUVX?t(r,_,d,_,p,f,d,f,p):e._isFlipUVY?t(r,f,p,f,d,_,p,_,d):t(r,f,d,f,p,_,d,_,p)}else{var m=0===a?0:i.x/a,g=0===a?1:(i.x+i.width)/a,y=0===o?1:(i.y+i.height)/o,v=0===o?0:i.y/o;e._isFlipUVX&&e._isFlipUVY?t(n,g,v,m,v,g,y,m,y):e._isFlipUVX?t(n,g,y,m,y,g,v,m,v):e._isFlipUVY?t(n,m,v,g,v,m,y,g,y):t(n,m,y,g,y,m,v,g,v);var b=0===a?0:i.x/a,S=0===a?1:(i.x+i.width)/a,x=0===o?1:(i.y+i.height)/o,w=0===o?0:i.y/o;e._isFlipUVX&&e._isFlipUVY?t(r,S,w,b,w,S,x,b,x):e._isFlipUVX?t(r,S,x,b,x,S,w,b,w):e._isFlipUVY?t(r,b,w,S,w,b,x,S,x):t(r,b,x,S,x,b,w,S,w)}e._calculateSlicedUV()},i._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())},i._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())},i._checkPackable=function(){var t=jO;if(t){var e=this._texture;if(e instanceof By&&!e.isCompressed){var i=this.width,n=this.height;if(!e.image||i>t.maxFrameSize||n>t.maxFrameSize)this._packable=!1;else{var r=D.HTMLCanvasElement;e.image&&e.image instanceof r&&(this._packable=!0)}}else this._packable=!1}},i._serialize=function(){return null},i._deserialize=function(t){var e=this,i=t,n=i.rect;n&&(e._rect=new vs(n.x,n.y,n.width,n.height));var r=i.offset;i.offset&&(e._offset=ds(r.x,r.y));var s=i.originalSize;i.originalSize&&(e._originalSize=ms(s.width,s.height)),e._rotated=!!i.rotated,e._name=i.name,e._packable=!!i.packable,e._pixelsToUnit=i.pixelsToUnit;var a=i.pivot;a&&(e._pivot=ds(a.x,a.y)),e._meshType=i.meshType;var o=i.capInsets;if(o){var h=e._capInsets;h[0]=o[0],h[1]=o[1],h[2]=o[2],h[3]=o[3]}var u=i.vertices;if(u){e.vertices||(e.vertices={rawPosition:[],positions:[],indexes:u.indexes,uv:u.uv,nuv:u.nuv,minPos:ir(u.minPos.x,u.minPos.y,u.minPos.z),maxPos:ir(u.maxPos.x,u.maxPos.y,u.maxPos.z)}),e.vertices.rawPosition.length=0;for(var l=u.rawPosition,c=0;c0){var e=this.spriteFrames[t[0]];return e&&e.texture}return null},i.getSpriteFrame=function(t){var e=this.spriteFrames[t];return e?(e.name||(e.name=t),e):null},i.getSpriteFrames=function(){var t=[],e=this.spriteFrames;for(var i in e)t.push(e[i]);return t},i._serialize=function(){return null},i._deserialize=function(t,e){var i=t;this._name=i.name;var n=i.spriteFrames;this.spriteFrames=Ut();for(var r=0;r=this.limit){var n=this.tail;delete this.datas[n.key],this.count--,this.tail=n.prev,this.tail.next=null,n.prev=null,n.next=null,fR.put(n)}this.moveToHead(i)},e.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,delete this.datas[t.key],this.count--},e.get=function(t){var e=this.datas[t];return e?(this.remove(e),this.moveToHead(e),e.value):null},e.clear=function(){this.count=0,this.datas={},this.head=null,this.tail=null},e.has=function(t){return!!this.datas[t]},e.delete=function(t){var e=this.datas[t];this.remove(e)},t}()),dR=new _R(100),pR=/([a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûа-яА-ЯЁё]+|\S)/,mR=/^[!,.:;'}\]%\?>、‘“》?。,!]/,gR="[a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûаíìÍÌïÁÀáàÉÈÒÓòóŐőÙÚŰúűñÑæÆœŒÃÂãÔõěščřžýáíéóúůťďňĚŠČŘŽÁÍÉÓÚŤżźśóńłęćąŻŹŚÓŃŁĘĆĄ-яА-ЯЁёáàảạãăắằẳẵặâấầẩẫậéèẻẽẹêếềểễệiíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵđÁÀẢẠÃĂẮẰẲẴẶÂẤẦẨẪẬÉÈẺẼẸÊẾỀỂỄỆIÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴĐ]",yR=new RegExp("("+gR+"+|\\S)$"),vR=new RegExp(gR+"+$"),bR=new RegExp("^"+gR);function SR(t){return/^[\u4E00-\u9FFF\u3400-\u4DFF]+$/.test(t)||/[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]|[\u2605-\u2606]|[\u2190-\u2195]|\u203B/g.test(t)||/^[\u1100-\u11FF]|[\u3130-\u318F]|[\uA960-\uA97F]|[\uAC00-\uD7AF]|[\uD7B0-\uD7FF]+$/.test(t)}function xR(t){var e=t.charCodeAt(0);return e>=9&&e<=13||32===e||133===e||160===e||5760===e||e>=8192&&e<=8202||8232===e||8233===e||8239===e||8287===e||12288===e}function wR(t,e,i){var n=(i||t.font)+"🎮"+e,r=dR.get(n);if(null!==r)return r;var s=t.measureText(e),a=s&&s.width||0;return dR.put(n,a),a}function TR(t){for(var e=t.length,i=0,n=0,r=0;r=55296&&n<=56319&&(n=t.charCodeAt(r+1))>=56320&&n<=57343?((r+2>=e||8205!==t.charCodeAt(r+2))&&i++,r++):i++);return i}function AR(t,e){for(var i=t.length,n=0,r=0,s=0,a=0,o=0;o=55296&&a<=56319&&(n++,(a=t.charCodeAt(o+1))>=56320&&a<=57343)){if(n++,o+2>=i||8205!==t.charCodeAt(o+2)){if(e===r)return t.slice(s,s+n);s+=n,r++,n=0}o++}else{if(e===r)return t.charAt(o);s=o+1,r++,n=0}else n++;return""}function CR(t,e){var i=AR(t,e);if(1===i.length)return""+i.charCodeAt(0);for(var n="",r=0;r=t.length)return t.length;for(var i=e,n=t[i];i>=0&&("‍"===n&&(n=t[--i]),n>="\udc00"&&n<="\udfff"&&i-1>=0&&(n=t[--i]),n>="\ud800"&&n<="\udbff")&&i-1>=0&&"‍"===t[i-1];)n=t[--i];return i}function BR(t,e){for(var i=e,n=e,r=t[n];n="\ud800"&&r<="\udbff"&&(i++,r=t[++n])),r>="\ud800"&&r<="\udbff")i++,r=t[++n];else{if(!(r>="\udc00"&&r<="\udfff"))break;if(r=t[++n],!(nn?r=n:r+=1}return t.substring(n,r)}function MR(t){return bR.exec(t)}function PR(t){return vR.exec(t)}function ER(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=IR(s,a),h=e-n(o),u=o,l=0,c=0;h>i&&c++<100;)a*=i/h,h=e-n(o=IR(s,a|=0));for(c=0;o&&h<=i&&c++<100;){var f=pR.exec(o);u=o,h=e-n(o=IR(s,a+=l=f?f[0].length:1))}0==(a-=l)?(a=1,u=IR(s,1)):1===a&&s[0]>="\ud800"&&s[0]<="\udbff"&&(a=2,u=IR(s,2));var _=IR(s,0,a),d=void 0;mR.test(u||o)&&(0==(a-=(d=yR.exec(_))?d[0].length:0)&&(a=1),u=IR(s,a),_=IR(s,0,a)),bR.test(u)&&(d=vR.exec(_))&&_!==d[0]&&(u=IR(s,a-=d[0].length),_=IR(s,0,a)),(0===r.length||(_=_.trim()).length>0)&&r.push(_),e=n(s=u||o)}return(0===r.length||(s=s.trim()).length>0)&&r.push(s),r}var OR,kR=D.document,RR=null,FR=-1,LR="BES bswy:->@123丁ぁᄁ",NR=Object.create(null),VR=[],zR=3e3,UR=function(){if(void 0===OR)if("FontFace"in D){var t=/Gecko.*Firefox\/(\d+)/.exec(D.navigator.userAgent),e=/OS X.*Version\/10\..*Safari/.exec(D.navigator.userAgent)&&/Apple/.exec(D.navigator.vendor);OR=t?parseInt(t[1],10)>42:!e}else OR=!1;return OR};function GR(){for(var t=!0,e=Date.now(),i=VR.length-1;i>=0;i--){var n=VR[i],r=n.fontFamilyName;if(e-n.startTime>zR)st(4933,r),n.onComplete(null,r),VR.splice(i,1);else{var s=n.refWidth,a="40px "+r;RR.font=a,s!==wR(RR,LR,a)?(VR.splice(i,1),n.onComplete(null,r)):t=!1}}t&&(clearInterval(FR),FR=-1)}function HR(t,e,i){var n=new Promise((function(i,n){!function r(){Date.now()-t>=zR?n():kR.fonts.load("40px "+e).then((function(t){t.length>=1?i():setTimeout(r,100)}),(function(){n()}))}()})),r=null,s=new Promise((function(t,e){r=setTimeout(e,zR)}));Promise.race([s,n]).then((function(){r&&(clearTimeout(r),r=null),i(null,e)}),(function(){st(4933,e),i(null,e)}))}function WR(t,e,i){var n=jR(t);if(NR[n])i(null,n);else{if(!RR){var r=kR.createElement("canvas");r.width=100,r.height=100,RR=r.getContext("2d")}var s="40px "+n,a=kR.createElement("style");a.type="text/css";var o="";Number.isNaN(n)?o+="@font-face { font-family:"+n+"; src:":o+='@font-face { font-family:"'+n+'"; src:',o+='url("'+t+'");',a.textContent=o+"}",kR.body.appendChild(a);var h=kR.createElement("div"),u=h.style;if(u.fontFamily=n,h.innerHTML=".",u.position="absolute",u.left="-100px",u.top="-100px",kR.body.appendChild(h),UR())HR(Date.now(),n,i);else{var l={fontFamilyName:n,refWidth:wR(RR,LR,s),onComplete:i,startTime:Date.now()};VR.push(l),-1===FR&&(FR=setInterval(GR,100))}NR[n]=a}}function jR(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}function qR(t,e,i,n){var r=new aR;r._nativeUrl=t,r._nativeAsset=e,n(null,r)}Cw.register({".font":WR,".eot":WR,".ttf":WR,".woff":WR,".svg":WR,".ttc":WR}),Vw.register({".font":qR,".eot":qR,".ttf":qR,".woff":qR,".svg":qR,".ttc":qR});var XR,YR,KR,JR,QR,ZR,$R,tF,eF,iF=/^(click)(\s)*=|(param)(\s)*=/,nF=/(\s)*src(\s)*=|(\s)*height(\s)*=|(\s)*width(\s)*=|(\s)*align(\s)*=|(\s)*offset(\s)*=|(\s)*click(\s)*=|(\s)*param(\s)*=/,rF=t("z",function(){function t(){this._specialSymbolArray=[],this._stack=[],this._resultObjectArray=[],this._specialSymbolArray.push([/</g,"<"]),this._specialSymbolArray.push([/>/g,">"]),this._specialSymbolArray.push([/&/g,"&"]),this._specialSymbolArray.push([/"/g,'"']),this._specialSymbolArray.push([/'/g,"'"])}var e=t.prototype;return e.parse=function(t){this._resultObjectArray.length=0,this._stack.length=0;for(var e=0,i=t.length;e",e),r=-1;if(n>=0&&(r=t.lastIndexOf("<",n))",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},e._attributeToObject=function(t){t=t.trim();var e={},i=/^(color|size)(\s)*=/.exec(t),n="",r=0,s="";if(i){if(n=i[0],""===(t=t.substring(n.length).trim()))return e;switch(r=t.indexOf(" "),n[0]){case"c":e.color=r>-1?t.substring(0,r).trim():t;break;case"s":e.size=parseInt(t)}return r>-1&&(s=t.substring(r+1).trim(),e.event=this._processEventHandler(s)),e}if((i=/^(br(\s)*\/)/.exec(t))&&i[0].length>0&&(n=i[0].trim()).startsWith("br")&&"/"===n[n.length-1])return e.isNewLine=!0,this._resultObjectArray.push({text:"",style:{isNewLine:!0}}),e;var a="",o=-1;if((i=/^(img(\s)*src(\s)*=[^>]+\/)/.exec(t))&&i[0].length>0&&(n=i[0].trim()).startsWith("img")&&"/"===n[n.length-1]){var h;i=nF.exec(t);for(var u=!1;i;){var l=(n=(t=t.substring(t.indexOf(i[0]))).substring(0,i[0].length)).length;if(n=(n=n.replace(/[^a-zA-Z]/g,"").trim()).toLowerCase(),a=t.substring(l).trim(),o="src"===n?this.getRightQuotationIndex(a):-1,h=(r=a.indexOf(" ",o+1>=a.length?-1:o+1))>-1?a.substring(0,r):a,t=a.substring(r).trim(),h.endsWith("/")&&(h=h.slice(0,-1)),"src"===n){switch(h.charCodeAt(0)){case 34:case 39:u=!0,h=h.slice(1,-1)}e.isImage=!0,e.src=h}else if("height"===n)e.imageHeight=parseInt(h);else if("width"===n)e.imageWidth=parseInt(h);else if("align"===n){switch(h.charCodeAt(0)){case 34:case 39:h=h.slice(1,-1)}e.imageAlign=h.toLowerCase()}else"offset"===n?e.imageOffset=h:"click"===n&&(e.event=this._processEventHandler(n+"="+h));e.event&&"param"===n&&(e.event[n]=h.replace(/^"|"$/g,"")),i=nF.exec(t)}return u&&e.isImage&&this._resultObjectArray.push({text:"",style:e}),{}}if(i=/^(outline(\s)*[^>]*)/.exec(t)){var c={color:"#ffffff",width:1};if(t=i[0].substring(7).trim()){var f,_=/(\s)*color(\s)*=|(\s)*width(\s)*=|(\s)*click(\s)*=|(\s)*param(\s)*=/;for(i=_.exec(t);i;)n=(t=t.substring(t.indexOf(i[0]))).substring(0,i[0].length),f=(r=(a=t.substring(n.length).trim()).indexOf(" "))>-1?a.substring(0,r):a,n=(n=n.replace(/[^a-zA-Z]/g,"").trim()).toLowerCase(),t=a.substring(r).trim(),"click"===n?e.event=this._processEventHandler(n+"="+f):"color"===n?c.color=f:"width"===n&&(c.width=parseInt(f)),e.event&&"param"===n&&(e.event[n]=f.replace(/^"|"$/g,"")),i=_.exec(t)}e.outline=c}if((i=/^(on|u|b|i)(\s)*/.exec(t))&&i[0].length>0){switch(n=i[0],t=t.substring(n.length).trim(),n[0]){case"u":e.underline=!0;break;case"i":e.italic=!0;break;case"b":e.bold=!0}if(""===t)return e;e.event=this._processEventHandler(t)}return e},e.getRightQuotationIndex=function(t){var e=-1,i=-1,n=t.indexOf("'"),r=t.indexOf('"'),s=r>-1&&(r-1&&(n=t.length?-1:e+1)):s&&(e=r,i=t.indexOf('"',e+1>=t.length?-1:e+1)),i},e._processEventHandler=function(t){for(var e={},i=0,n=!1,r=iF.exec(t);r;){var s=r[0],a="";if(n=!1,'"'===(t=t.substring(s.length).trim()).charAt(0))(i=t.indexOf('"',1))>-1&&(a=t.substring(1,i).trim(),n=!0),i++;else if("'"===t.charAt(0))(i=t.indexOf("'",1))>-1&&(a=t.substring(1,i).trim(),n=!0),i++;else{var o=/(\S)+/.exec(t);i=(a=o?o[0]:"").length}n&&(e[s=s.substring(0,s.length-1).trim()]=a),t=t.substring(i).trim(),r=iF.exec(t)}return e},e._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)}},e._processResult=function(t){0!==t.length&&(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}))},e._escapeSpecialSymbol=function(t){for(var e,i=p(this._specialSymbolArray);!(e=i()).done;){var n=e.value,r=n[0],s=n[1];t=t.replace(r,s)}return t},t}()),sF=function(){this.u=0,this.v=0,this.w=0,this.h=0,this.offsetX=0,this.offsetY=0,this.valid=!1,this.xAdvance=0},aF=function(){function t(t){this.letterDefinitions={},this._texture=null,this.texture=t}var e=t.prototype;return e.addLetterDefinitions=function(t,e){this.letterDefinitions[t]=e},e.cloneLetterDefinition=function(){var t={};for(var e in this.letterDefinitions){var i=new sF;Zt(i,this.letterDefinitions[e]),t[e]=i}return t},e.getTexture=function(){return this._texture},e.getLetter=function(t){return this.letterDefinitions[t]},e.getLetterDefinitionForChar=function(t){var e=CR(t,0),i=null;return Object.prototype.hasOwnProperty.call(this.letterDefinitions,e)&&(i=this.letterDefinitions[e]),i},e.clear=function(){this.letterDefinitions={}},n(t,[{key:"texture",get:function(){return this._texture},set:function(t){var e=this._texture;e!==t&&(e&&(e.decRef(!1),e.refCount<=0&&e.destroy()),t&&t.addRef(),this._texture=t)}}]),t}(),oF=t("B",(XR=Kh("cc.BitmapFont"),YR=Eu($k),XR((JR=function(t){function e(){var e;return(e=t.call(this)||this).fntDataStr=QR&&QR(),e.spriteFrame=ZR&&ZR(),e.fontSize=$R&&$R(),e.fntConfig=tF&&tF(),e}return s(e,t),e.prototype.onLoaded=function(){var t=this.spriteFrame;!this.fontDefDictionary&&t&&(this.fontDefDictionary=new aF(t.texture));var e=this.fntConfig;if(e){var i=e.fontDefDictionary;for(var n in i){var r=i[n],s=new sF,a=r.rect;s.offsetX=r.xOffset,s.offsetY=r.yOffset,s.w=a.width,s.h=a.height,s.u=a.x,s.v=a.y,s.valid=!0,s.xAdvance=r.xAdvance,this.fontDefDictionary.addLetterDefinitions(n,s)}}else st(16376)},e}(sR),QR=Vh(JR.prototype,"fntDataStr",[hu],(function(){return""})),ZR=Vh(JR.prototype,"spriteFrame",[YR],(function(){return null})),$R=Vh(JR.prototype,"fontSize",[hu],(function(){return-1})),tF=Vh(JR.prototype,"fntConfig",[hu],(function(){return null})),KR=JR))||KR));T.BitmapFont=oF;var hF,uF=t("L",Kh("cc.LabelAtlas")(eF=function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e}(oF))||eF);T.LabelAtlas=uF;var lF=function(){function t(){this.pool=[]}t.getInstance=function(){return hF||(hF=new t),hF};var e=t.prototype;return e.get=function(){var t=this.pool.pop();if(!t){var e=D.document.createElement("canvas"),i=e.getContext("2d");t={canvas:e,context:i}}return t},e.put=function(t){this.pool.length>=ze.MAX_LABEL_CANVAS_POOL_SIZE||this.pool.push(t)},t}(),cF=lr.WHITE.clone(),fF="rgba(255, 255, 255, "+(1/255).toFixed(3)+")",_F=cR(),dF=function(){function t(t,e){this.image=null,this.data=null,this.canvas=null,this.context=null,this.width=0,this.height=0,this.offsetY=0,this.char=t,this.labelInfo=e,this.hash=""+CR(t,0)+e.hash}var e=t.prototype;return e.updateRenderData=function(){this._updateProperties(),this._updateTexture()},e.destroy=function(){this.image=null,lF.getInstance().put(this.data),this.data=null},e._updateProperties=function(){if(this.data=lF.getInstance().get(),this.canvas=this.data.canvas,this.context=this.data.context,this.context){var t=this.labelInfo.fontScale;this.context.font=this.labelInfo.fontDesc;var e=wR(this.context,this.char,this.labelInfo.fontDesc),i=2*this.labelInfo.margin+2;this.width=parseFloat(e.toFixed(2))*t+i,this.height=(1+hR)*this.labelInfo.fontSize*t+i,this.offsetY=-this.labelInfo.fontSize*hR*t/2}this.canvas.width!==this.width&&(this.canvas.width=this.width),this.canvas.height!==this.height&&(this.canvas.height=this.height),this.image||(this.image=new Vm),this.image.reset(this.canvas)},e._updateTexture=function(){if(this.context&&this.canvas){var t=this.context,e=this.labelInfo,i=this.canvas.width,n=this.canvas.height,r=e.fontScale;t.textAlign="center",t.textBaseline="alphabetic",t.clearRect(0,0,i,n),t.fillStyle=fF,t.fillRect(0,0,i,n),t.font=e.fontDesc.replace(/(\d+)(\.\d+)?(px|em|rem|pt)/g,(function(t,e,i,n){return(+e*r+(+i||0)*r).toString()+n}));var s=e.fontSize*r,a=i/2,o=n/2+s*lR+s*_F,h=e.color;if(t.lineJoin="round",t.fillStyle="rgba("+h.r+", "+h.g+", "+h.b+", 1)",e.isOutlined){var u=e.out||cF;t.strokeStyle="rgba("+u.r+", "+u.g+", "+u.b+", "+u.a/255+")",t.lineWidth=2*e.margin*r,t.strokeText(this.char,a,o)}t.fillText(this.char,a,o)}},t}(),pF=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.initWithSize=function(t,e,i){void 0===i&&(i=35),this.reset({width:t,height:e,format:i})},i.drawTextureAt=function(t,e,i){var n=this.getGFXTexture();if(t&&n){var r=this._getGFXDevice();if(r){var s=new Z_;s.texOffset.x=e,s.texOffset.y=i,s.texExtent.width=t.width,s.texExtent.height=t.height,r.copyTexImagesToTexture([t.data],n,[s])}else st(16363)}},e}(By),mF=function(){function t(t,e){this._x=0,this._y=0,this._nextY=0,this._width=0,this._height=0,this._halfBleed=0,this._dirty=!1;var i=new pF;i.initWithSize(t,e),this.fontDefDictionary=new aF(i),this._halfBleed=1,this._width=t,this._height=e,WE.on("director_before_scene_launch",this.beforeSceneLoad,this)}var e=t.prototype;return e.insertLetterTexture=function(t){var e=t.image,i=WE.root.device;if(!e||!this.fontDefDictionary||!i)return null;var n=e.width,r=e.height;if(this._x+n+0>this._width&&(this._x=0,this._y=this._nextY),this._y+r>this._nextY&&(this._nextY=this._y+r+0),this._nextY>this._height)return st(12100),null;if(!this.fontDefDictionary.texture)return null;this.fontDefDictionary.texture.drawTextureAt(e,this._x,this._y),this._dirty=!0;var s=new sF;return s.u=this._x+this._halfBleed,s.v=this._y+this._halfBleed,s.valid=!0,s.w=t.width-2,s.h=t.height-2,s.xAdvance=s.w,s.offsetY=t.offsetY,this._x+=n+0,this.fontDefDictionary.addLetterDefinitions(t.hash,s),s},e.update=function(){this._dirty&&(this._dirty=!1)},e.reset=function(){this._x=0,this._y=0,this._nextY=0,this.fontDefDictionary.clear()},e.destroy=function(){this.reset();var t=this.fontDefDictionary;t&&t.texture&&(t.texture=null)},e.getTexture=function(){return this.fontDefDictionary.getTexture()},e.beforeSceneLoad=function(){this.clearAllCache()},e.clearAllCache=function(){this.destroy();var t=new pF;t.initWithSize(this._width,this._height),this.fontDefDictionary.texture=t},e.getLetter=function(t){return this.fontDefDictionary.letterDefinitions[t]},e.getLetterDefinitionForChar=function(t,e){var i=CR(t,0)+e.hash,n=this.fontDefDictionary.letterDefinitions[i];if(!n){var r=new dF(t,e);r.updateRenderData(),n=this.insertLetterTexture(r),r.destroy()}return n},n(t,[{key:"width",get:function(){return this._width}},{key:"height",get:function(){return this._height}}]),t}(),gF={fontAtlas:null,fontSize:0,lineHeight:0,hAlign:0,vAlign:0,hash:"",fontFamily:"",fontDesc:"Arial",color:lr.WHITE.clone(),isOutlined:!1,out:lr.WHITE.clone(),margin:0,fontScale:1};function yF(t){var e=t.color.toHEX(),i="";return t.isOutlined&&t.margin>0&&(i=i+t.margin+t.out.toHEX()),""+t.fontSize+t.fontFamily+e+i}var vF="a_position",bF="a_color",SF="a_texCoord",xF="a_color2",wF=[new xd(vF,32)],TF=[new xd(vF,32),new xd(bF,44)],AF=[new xd(vF,32),new xd(SF,21),new xd(bF,44)],CF=[new xd(vF,32),new xd(SF,21),new xd(bF,35,!0)],DF=[new xd(vF,32),new xd(SF,21),new xd(bF,44),new xd(xF,44)],BF=[new xd(vF,32),new xd(SF,21),new xd(bF,35,!0),new xd(xF,35,!0)];function IF(t){for(var e=0,i=0;i>2,this._initVDataCount,this._floatsPerVertex,ct(9005),this.vData&&this.iData||(this.vData=new Float32Array(this._initVDataCount),this.iData=new Uint16Array(this._initIDataCount)),this._iaPool.push(this.createNewIA(t))},t.reset=function(){this._nextFreeIAHandle=0,this.dirty=!1},t.destroy=function(){this.reset(),this._attributes=null,this._iaInfo=null,this.vData=null,this.iData=null;for(var t=0;tthis._initVDataCount||n>this._initIDataCount)},t.uploadBuffers=function(){if(0!==this.byteOffset&&this._dirty){var t=oh.__isWebIOS14OrIPadOS14Env,e=t?this._nextFreeIAHandle:1;if(t&&e/this._iaPool.length<.5){for(var i=e/.5,n=this._iaPool.length-1;n>=i;n--){var r=this._iaPool[n];r.vertexBuffers[0]&&r.vertexBuffers[0].destroy(),r.indexBuffer&&r.indexBuffer.destroy(),r.ia.destroy()}this._iaPool.length=i}for(var s=this.byteOffset,a=this.indexOffset,o=0;o>2),l=new Uint16Array(this.iData.buffer,0,a),c=h.vertexBuffers[0];s>c.size&&c.resize(s),c.update(u),2*a>h.indexBuffer.size&&h.indexBuffer.resize(2*a),h.indexBuffer.update(l)}this.dirty=!1}},t.createNewIA=function(t){var e,i,n;if(oh.__isWebIOS14OrIPadOS14Env||!this._iaPool[0]){var r=this._vertexFormatBytes=4*this._floatsPerVertex,s=t.createBuffer(new sd(10,3,r,r));n=t.createBuffer(new sd(6,3,2,2)),i=[s],this._iaInfo=new Td(this._attributes,i,n),e=t.createInputAssembler(this._iaInfo)}else e=t.createInputAssembler(this._iaInfo),i=this._iaInfo.vertexBuffers,n=this._iaInfo.indexBuffer;return{ia:e,vertexBuffers:i,indexBuffer:n}},n(e,[{key:"attributes",get:function(){return this._attributes}},{key:"vertexFormatBytes",get:function(){return this._vertexFormatBytes}},{key:"byteOffset",get:function(){return this._byteOffset},set:function(t){this._byteOffset=t}},{key:"vertexOffset",get:function(){return this._vertexOffset},set:function(t){this._vertexOffset=t}},{key:"indexOffset",get:function(){return this._indexOffset},set:function(t){this._indexOffset=t}},{key:"dirty",get:function(){return this._dirty},set:function(t){this._dirty=t}},{key:"floatsPerVertex",get:function(){return this._floatsPerVertex},set:function(t){this._floatsPerVertex=t}},{key:"vData",get:function(){return this._vData},set:function(t){this._vData=t}},{key:"iData",get:function(){return this._iData},set:function(t){this._iData=t}},{key:"nativeObj",get:function(){return this._nativeObj}},{key:"sharedBuffer",get:function(){return this._sharedBuffer}}]),e}()),EF=function(){function t(t,e){this._buffers=[],this._device=t,this._attributes=e,this._floatsPerVertex=MF(e)>>2,this._vertexFormatBytes=4*this._floatsPerVertex}var e=t.prototype;return e.initialize=function(){},e.reset=function(){},e.request=function(){},e.appendBuffers=function(){},e.uploadBuffers=function(){},e.destroy=function(){this._attributes.length=0},n(t,[{key:"attributes",get:function(){return this._attributes}},{key:"vertexFormatBytes",get:function(){return this._vertexFormatBytes}},{key:"floatsPerVertex",get:function(){return this._floatsPerVertex}}]),t}(),OF=new oo((function(){return{offset:0,length:0}}),32),kF=function(){function t(t,e,i,n,r,s){this.vertexAccessor=t,this.bufferId=e,this.meshBuffer=i,this.vertexOffset=n,this.vb=r,this.indexCount=s,this._ib=new Uint16Array(s),t.getMeshBuffer(e)}return t.prototype.setIndexBuffer=function(){},n(t,[{key:"ib",get:function(){return this._ib}}]),t}(),RF=function(t){function e(i,n,r,s){var a;return(a=t.call(this,i,n)||this)._freeLists=[],a._vCount=0,a._iCount=0,a._id=0,a._vCount=r||Math.floor(1024*ze.BATCHER2D_MEM_INCREMENT/a._vertexFormatBytes),a._iCount=s||a._vCount*e.IB_SCALE,a._id=e.generateID(),a._allocateBuffer(),a}s(e,t);var i=e.prototype;return i.destroy=function(){for(var e=0;ethis._vCount||e>this._iCount)return ot(9004,i),null;for(var n,r=null,s=0,a=-1,o=null,h=0;h=i){o=n[u],s=h,a=u;break}if(o)break}if(o||(s=this._allocateBuffer(),(r=this._buffers[s])&&(a=0,o=this._freeLists[s][a])),o){var l=o.offset/this.vertexFormatBytes,c=new Float32Array(r.vData.buffer,o.offset,i>>2).fill(0);return this._allocateChunkFromEntry(s,a,o,i),new kF(this,s,r,l,c,e)}return null},i.recycleChunk=function(t){var e=this._freeLists[t.bufferId],i=this._buffers[t.bufferId],n=t.vertexOffset*this.vertexFormatBytes,r=t.vb.byteLength;if(0!==r){for(var s=!1,a=0,o=null,h=e[a];h&&h.offset=0,9004,t,i.offset,i.length),0===r?(this._freeLists[t].splice(e,1),OF.free(i)):(i.offset+=n,i.length=r)},i._allocateBuffer=function(){ut(this._buffers.length===this._freeLists.length,9003);var t=new PF,e=this._vCount*this._floatsPerVertex;t.initialize(this._device,this._attributes,e,this._iCount),this._buffers.push(t);var i=OF.alloc();i.offset=0,i.length=t.vData.byteLength;var n=[i];return this._freeLists.push(n),WE.root.batcher2D.syncMeshBuffersToNative(this.id,this._buffers),this._buffers.length-1},e.generateID=function(){return e.ID_COUNT++},n(e,[{key:"id",get:function(){return this._id}}]),e}(EF);RF.IB_SCALE=4,RF.ID_COUNT=0;var FF,LF,NF,VF,zF,UF,GF,HF,WF,jF,qF,XF=function(){function t(t){this._accId=-1,this._bufferId=-1,this._vertexOffset=0,this._indexOffset=0,this._vb=null,this._ib=null,this._vData=null,this._iData=null,this._vertDirty=!1,this._vbCount=0,this._ibCount=0,this._dataHash=0,this._isMeshBuffer=!1,this._material=null,this._texture=null,this._sampler=null,this._stride=0,this._useLocal=!1,this._model=null,this._drawInfoType=0,this._subNode=null,this._render2dBuffer=null,this.init(t);var e=this._nativeObj.getAttrSharedBufferForJS(),i=0;this._uint8SharedBuffer=new Uint8Array(e,i,4),i+=4,this._uint16SharedBuffer=new Uint16Array(e,i,2),i+=4,this._uint32SharedBuffer=new Uint32Array(e,i,5)}var e=t.prototype;return e.init=function(){},e.clear=function(){this._bufferId=0,this._vertexOffset=0,this._indexOffset=0,this._vertDirty=!1},e.setAccId=function(t){this._accId=t},e.setBufferId=function(t){this._bufferId=t},e.setAccAndBuffer=function(t,e){this._bufferId=e,this._accId=t},e.setVertexOffset=function(t){this._vertexOffset=t},e.setIndexOffset=function(t){this._indexOffset=t},e.setVB=function(){},e.setIB=function(){},e.setVData=function(){},e.setIData=function(){},e.setVBCount=function(t){this._vbCount=t},e.setIBCount=function(){},e.setVertDirty=function(t){this._vertDirty=t},e.setDataHash=function(t){this._dataHash=t},e.setIsMeshBuffer=function(t){this._isMeshBuffer=t},e.setVertexPositionInWorld=function(){},e.setMaterial=function(t){this._material=t},e.setTexture=function(t){this._texture=t},e.setSampler=function(t){this._sampler=t},e.setModel=function(){},e.setDrawInfoType=function(t){this._drawInfoType=t},e.setSubNode=function(t){this._subNode=t},e.setStride=function(t){this._stride=t},e.initRender2dBuffer=function(){},e.fillRender2dBuffer=function(){},n(t,[{key:"nativeObj",get:function(){return this._nativeObj}},{key:"render2dBuffer",get:function(){return this._render2dBuffer}}]),t}(),YF=MF(AF)>>2,KF=t("t",function(){function t(t){void 0===t&&(t=AF),this.chunk=null,this._renderDrawInfo=null,this._material=null,this._dataHash=0,this._isMeshBuffer=!1,this._vc=0,this._ic=0,this._floatStride=0,this._vertexFormat=AF,this._drawInfoType=0,this._multiOwner=!1,this._batcher=null,this._floatStride=t===AF?YF:MF(t)>>2,this._vertexFormat=t}var e=t.prototype;return e.isValid=function(){return this._ic>0&&this.chunk.vertexAccessor},e.initRenderDrawInfo=function(){},e.removeRenderDrawInfo=function(){},e.setRenderDrawInfoAttributes=function(){},n(t,[{key:"vertexCount",get:function(){return this._vc}},{key:"indexCount",get:function(){return this._ic}},{key:"stride",get:function(){return this._floatStride<<2}},{key:"floatStride",get:function(){return this._floatStride}},{key:"vertexFormat",get:function(){return this._vertexFormat}},{key:"drawInfoType",get:function(){return this._drawInfoType},set:function(t){this._drawInfoType=t}},{key:"renderDrawInfo",get:function(){return this._renderDrawInfo}},{key:"material",get:function(){return this._material},set:function(t){this._material=t}},{key:"dataHash",get:function(){return this._dataHash},set:function(t){this._dataHash=t}},{key:"multiOwner",get:function(){return this._multiOwner},set:function(t){this._multiOwner=t}},{key:"batcher",get:function(){return this._batcher||(this._batcher=WE.root.batcher2D),this._batcher}}]),t}()),JF=t("u",function(t){function e(e,i){var n;return void 0===e&&(e=AF),void 0===i&&(i=null),(n=t.call(this,e)||this)._vertDirty=!0,n._textureHash=0,n.indices=null,n.layer=0,n.nodeDirty=!0,n.passDirty=!0,n.textureDirty=!0,n.hashDirty=!0,n._data=[],n._frame=null,n._accessor=null,n.vertexRow=1,n.vertexCol=1,i||(i=n.batcher.switchBufferAccessor(n._vertexFormat)),n._accessor=i,n}s(e,t),e.add=function(t,i){void 0===t&&(t=AF),void 0===i&&(i=null);var n=new e(t,i);return i||(i=WE.root.batcher2D.switchBufferAccessor(n._vertexFormat)),n._accessor=i,n},e.remove=function(t){t.clear(),t._accessor=null};var i=e.prototype;return i.resize=function(t,e){t===this._vc&&e===this._ic&&this.chunk||(this._vc=t,this._ic=e,this.chunk&&(this._accessor.recycleChunk(this.chunk),this.chunk=null),this.chunk=this._accessor.allocateChunk(t,e),this.updateHash())},i.setRenderDrawInfoAttributes=function(){},i.fillDrawInfoAttributes=function(){},i.syncRender2dBuffer=function(){},i.resizeAndCopy=function(t,e){if(t!==this._vc||e!==this._ic||!this.chunk){this._vc=t,this._ic=e;var i=this.chunk;this.chunk=this._accessor.allocateChunk(t,e),i&&(this.chunk.vb.set(i.vb),this._accessor.recycleChunk(i)),this.updateHash()}},i.getMeshBuffer=function(){return this.chunk&&this._accessor?this._accessor.getMeshBuffer(this.chunk.bufferId):null},i.updateNode=function(t){this.layer=t.node.layer,this.nodeDirty=!1,this.hashDirty=!0},i.updatePass=function(t){this.material=t.getRenderMaterial(0),this.passDirty=!1,this.hashDirty=!0},i.updateTexture=function(t){this.frame=t,this.textureHash=t.getHash(),this.textureDirty=!1,this.hashDirty=!0},i.updateHash=function(){var t=""+(this.chunk?this.chunk.bufferId:-1)+this.layer+" "+this.textureHash;this.dataHash=Gf(t,666),this.hashDirty=!1},i.updateRenderData=function(t,e){if(this.passDirty&&(this.material=t.getRenderMaterial(0),this.passDirty=!1,this.hashDirty=!0),this.nodeDirty){var i=t.node.scene?t._getRenderScene():null;this.layer=t.node.layer,null!==i&&(this.nodeDirty=!1),this.hashDirty=!0}this.textureDirty&&(this.frame=e,this.textureHash=e.getHash(),this.textureDirty=!1,this.hashDirty=!0),this.hashDirty&&this.updateHash()},i.clear=function(){this.resize(0,0),this._data.length=0,this.indices=null,this.vertDirty=!0,this.material=null,this.nodeDirty=!0,this.passDirty=!0,this.textureDirty=!0,this.hashDirty=!0,this.layer=0,this.frame=null,this.textureHash=0,this.dataHash=0},e.createStaticVBAccessor=function(t,e,i){var n=WE.root.device;return new RF(n,t,e,i)},n(e,[{key:"dataLength",get:function(){return this._data.length},set:function(t){var e=this._data;if(e.length!==t){for(var i=e.length;i>2,i._vertexFormat=t,i},e.remove=function(t){t.clear()};var i=e.prototype;return i.request=function(t,e){var i=this._byteLength+t*this.stride;return!!this.reserve(t,e)&&(this._vc+=t,this._ic+=e,this._byteLength=i,this.vertexRange=this._vc,this.indexRange=this._ic,!0)},i.reserve=function(t,e){var i=this._byteLength+t*this.stride,n=this.indexCount+e;if(t+this.vertexCount>65535)return!1;var r=this.vData.byteLength,s=this.iData.length,a=this.vData.length,o=this.iData.length;if(i>r||n>s){for(;r=0&&e>=0&&i<=this.vData.byteLength&&this.iData.length,this._vc=t,this._ic=e,this._byteLength=i,this.updateRange(0,t,0,e)},i.updateRange=function(t,e,i,n){e>=0&&n>=0&&e<=this._vc&&this._ic,this.vertexStart=t,this.indexStart=i,this.vertexRange=e,this.indexRange=n},i.requestIA=function(t){this._initIAInfo(t);var e=this._iaPool.add();return e.firstIndex=this.indexStart,e.indexCount=this.indexRange,e},i.uploadBuffers=function(){if(0!==this._byteLength&&this._vertexBuffers[0]&&this._indexBuffer){var t=this._ic,e=new Float32Array(this.vData.buffer,0,this._byteLength>>2),i=new Uint16Array(this.iData.buffer,0,t),n=this._vertexBuffers[0];this._byteLength>n.size&&n.resize(this._byteLength),n.update(e);var r=t<<1;r>this._indexBuffer.size&&this._indexBuffer.resize(r),this._indexBuffer.update(i)}},i.freeIAPool=function(){this._iaPool&&this._iaPool.reset()},i.reset=function(){this._vc=0,this._ic=0,this._byteLength=0,this.vertexStart=0,this.vertexRange=0,this.indexStart=0,this.indexRange=0,this.lastFilledIndex=0,this.lastFilledVertex=0,this.material=null,this.freeIAPool()},i.clear=function(){this.reset(),this._iaPool&&this._iaPool.destroy(),this._vertexBuffers[0]&&(this._vertexBuffers[0].destroy(),this._vertexBuffers=[]),this._iaInfo=null,this.vData=new Float32Array(256*this.stride),this.iData=new Uint16Array(1536)},i._initIAInfo=function(t){var e=this;if(!this._iaInfo){var i=this.stride,n=this._vertexBuffers;n.length||n.push(t.createBuffer(new sd(10,1,i,i))),this._indexBuffer||(this._indexBuffer=t.createBuffer(new sd(6,1,2,2))),this._iaInfo=new Td(this._vertexFormat,n,this._indexBuffer),this._iaPool=new ho((function(){return t.createInputAssembler(e._iaInfo)}),1,(function(t){t.destroy()}))}},i._reallocBuffer=function(t,e){var i=this.vData;this.vData=new Float32Array(t),i&&this.vData.set(i,0);var n=this.iData;this.iData=new Uint16Array(e),n&&this.iData.set(n,0)},i.setRenderDrawInfoAttributes=function(){},i.particleInitRenderDrawInfo=function(){},n(e,[{key:"formatByte",get:function(){return this.stride},set:function(){}},{key:"floatStride",get:function(){return this._floatStride}},{key:"vDataOffset",get:function(){return this._byteLength>>>2}}]),e}(KF)),ZF=new _s,$F=new _s,tL=new er,eL=new Kr,iL=new Kr,nL=new Kr,rL=new Kr(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),sL=new vs,aL=t("e",Kh("cc.UITransform")(FF=Qh(110)(FF=Zh((zF=function(t){function e(){var e;return(e=t.call(this)||this)._priority=0,e._contentSize=NF&&NF(),e._anchorPoint=VF&&VF(),e}s(e,t);var i=e.prototype;return i.__preload=function(){this.node._uiProps.uiTransformComp=this},i.onLoad=function(){this.node.parent&&e.insertChangeMap(this.node.parent)},i.onEnable=function(){this.node.on("parent-changed",this._parentChanged,this),this._markRenderDataDirty()},i.onDisable=function(){this.node.off("parent-changed",this._parentChanged,this)},i.onDestroy=function(){this.node._uiProps.uiTransformComp=null},i.setContentSize=function(t,e){var i,n,r=this._contentSize;if(void 0===e){if(Qi(t.width,r.width,Ki)&&Qi(t.height,r.height,Ki))return;i=t.width,n=t.height}else{if(Qi(t,r.width,Ki)&&Qi(e,r.height,Ki))return;i=t,n=e}r.width=i,r.height=n,this.node.emit("size-changed"),this._markRenderDataDirty()},i.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.node.emit("anchor-changed",this._anchorPoint),this._markRenderDataDirty()},i.isHit=function(t){for(var e=this._contentSize.width,i=this._contentSize.height,n=ZF,r=$F,s=this._getRenderScene().cameras,a=0;a=0&&r.y>=0&&r.x<=e&&r.y<=i&&(c=this._maskTest(n)),c)return!0}}}return!1},i.hitTest=function(t,e){void 0===e&&(e=0);for(var i=this._contentSize.width,n=this._contentSize.height,r=tL,s=ZF,a=$F,o=this._getRenderScene().cameras,h=0;h=0&&a.y>=0&&a.x<=i&&a.y<=n&&(l=this._maskTest(s)),l)return!0}}return!1},i._maskTest=function(t){var e,i,n=null==(e=this.node)||null==(i=e.eventProcessor)?void 0:i.maskList;if(n)for(var r=this.node,s=n.length,a=0,o=0;r&&oh.index){n.length=o;break}}return!0},i.convertToNodeSpaceAR=function(t,e){return this.node.getWorldMatrix(nL),Kr.invert(eL,nL),e||(e=new er),er.transformMat4(e,t,eL)},i.convertToWorldSpaceAR=function(t,e){return this.node.getWorldMatrix(nL),e||(e=new er),er.transformMat4(e,t,nL)},i.getBoundingBox=function(){var t=new vs;return this._selfBoundingBox(t),Kr.fromSRT(iL,this.node.rotation,this.node.position,this.node.scale),t.transformMat4(iL),t},i.getBoundingBoxToWorld=function(){for(var t=new vs,i=this.node.children,n=0;n=this._materials.length?null:this._materials[t]},i.setSharedMaterial=function(t,e){if(t&&t instanceof XT&&ot(12012),this._materials[e]!==t){this._materials[e]=t;var i=this._materialInstances[e];i&&(i.destroy(),this._materialInstances[e]=null),this._onMaterialModified(e,this._materials[e])}},i.getMaterialInstance=function(t){if(!this._materials[t])return null;if(!this._materialInstances[t]){vL.parent=this._materials[t],vL.owner=this,vL.subModelIdx=t;var e=new XT(vL);vL.parent=null,vL.owner=null,vL.subModelIdx=0,this.setMaterialInstance(e,t)}return this._materialInstances[t]},i.setMaterialInstance=function(t,e){if("number"==typeof t){st(12007);var i=t;t=e,e=i}var n=this._materialInstances[e];t&&t.parent?t!==n&&(this._materialInstances[e]=t,this._onMaterialModified(e,t)):(t!==this._materials[e]||n)&&this.setSharedMaterial(t,e)},i.getRenderMaterial=function(t){return this._materialInstances[t]||this._materials[t]},i._onMaterialModified=function(){},i._onRebuildPSO=function(){},i._clearMaterials=function(){},n(e,[{key:"sharedMaterial",get:function(){return this.getSharedMaterial(0)}},{key:"sharedMaterials",get:function(){return this._materials},set:function(t){for(var e=0;e0},i._postCanRender=function(){},i.updateMaterial=function(){if(this._customMaterial)this.getSharedMaterial(0)!==this._customMaterial&&this.setSharedMaterial(this._customMaterial,0);else{var t=this._updateBuiltinMaterial();this.setSharedMaterial(t,0),2!==this.stencilStage&&6!==this.stencilStage||this.getMaterialInstance(0).recompileShaders({USE_ALPHA_TEST:!0}),this._updateBlendFunc()}},i._updateColor=function(){this.node._uiProps.colorDirty=!0,this.setEntityColorDirty(!0),this.setEntityColor(this._color),this.setEntityOpacity(this.node._uiProps.localOpacity);var t=this._assembler;if(t){t.updateColor&&t.updateColor(this);var e=this._renderFlag;if(this._renderFlag=this._canRender(),this.setEntityEnabled(this._renderFlag),e!==this._renderFlag){var i=this.renderData;i&&(i.vertDirty=!0)}}},e.setEntityColorDirtyRecursively=function(t,i){var n=t._uiProps.uiComp;n&&n.color&&(n._renderEntity.colorDirty=i);for(var r=0;r>16,t|=t>>8,t|=t>>4,t|=t>>2,t|=t>>1,++t}function tV(t,e){return Math.ceil(t/e)*e}var eV=function(){function t(t){this._format=0,this._formatSize=0,this._chunks=[],this._chunkCount=0,this._handles=[],this._region0=new Z_,this._region1=new Z_,this._region2=new Z_,this._roundUpFn=null,this._bufferViewCtor=Uint8Array,this._channels=4,this._alignment=1,this._device=t}var e=t.prototype;return e.initialize=function(t){var e=Zd[t.format];this._format=t.format,this._formatSize=e.size,this._channels=e.count,this._bufferViewCtor=op(e),this._roundUpFn=t.roundUpFn||null,this._alignment=t.alignment||1,t.inOrderFree&&(this.alloc=this._McDonaldAlloc)},e.destroy=function(){for(var t=0;t=0));++r);if(n>=0){var s=this._chunks[i];s.start+=t;var a={chunkIdx:i,start:n,end:n+t,texture:s.texture};return this._handles.push(a),a}var o=Math.sqrt(t/this._formatSize),h=this._roundUpFn&&this._roundUpFn(o,this._formatSize)||Math.max(1024,$N(o)),u=this._chunks[this.createChunk(h)];u.start+=t;var l={chunkIdx:this._chunkCount-1,start:0,end:t,texture:u.texture};return this._handles.push(l),l},e.free=function(t){for(var e=0;e0&&(this._region0.texOffset.x=a,this._region0.texOffset.y=o,this._region0.texExtent.width=h,this._region0.texExtent.height=1,i.push(new this._bufferViewCtor(e,u*this._formatSize,h*this._channels)),n.push(this._region0),a=0,o+=1,s-=h,u+=h),s>0&&(this._region1.texOffset.x=a,this._region1.texOffset.y=o,s>t.texture.width?(this._region1.texExtent.width=t.texture.width,this._region1.texExtent.height=Math.floor(s/t.texture.width),h=this._region1.texExtent.width*this._region1.texExtent.height):(h=s,this._region1.texExtent.width=h,this._region1.texExtent.height=1),i.push(new this._bufferViewCtor(e,u*this._formatSize,h*this._channels)),n.push(this._region1),a=0,o+=this._region1.texExtent.height,s-=h,u+=h),s>0&&(this._region2.texOffset.x=a,this._region2.texOffset.y=o,this._region2.texExtent.width=s,this._region2.texExtent.height=1,i.push(new this._bufferViewCtor(e,u*this._formatSize,s*this._channels)),n.push(this._region2)),this._device.copyBuffersToTexture(i,t.texture,n)},e._findAvailableSpace=function(t,e){var i=this._chunks[e],n=!1,r=i.start;if(r+t<=i.size)n=!0;else{r=0;for(var s=this._handles.filter((function(t){return t.chunkIdx===e})).sort((function(t,e){return t.start-e.start})),a=0;ai.end?r+t<=i.size?n=!0:t<=i.end&&(i.start=r=0,n=!0):r===i.end&&(i.start=r=0,i.end=i.size,t<=i.end&&(n=!0)),n){i.start+=t;var s={chunkIdx:e,start:r,end:r+t,texture:i.texture};return this._handles.push(s),s}}var a=Math.sqrt(t/this._formatSize),o=this._roundUpFn&&this._roundUpFn(a,this._formatSize)||Math.max(1024,$N(a)),h=this._chunks[this.createChunk(o)];h.start+=t;var u={chunkIdx:this._chunkCount,start:0,end:t,texture:h.texture};return this._handles.push(u),u},t}();pt(IP.prototype,"RenderScene.prototype",[{name:"raycastUI2DNode"},{name:"raycastUINode"}]),pt(IP.prototype,"RenderScene.prototype",[{name:"raycastAll",suggest:"using intersect.rayModel in geometry"},{name:"raycastAllModels",suggest:"using intersect.rayModel in geometry"},{name:"raycastSingleModel",suggest:"using intersect.rayModel in geometry"},{name:"raycastAllCanvas",suggest:"using intersect.rayAABB in geometry"},{name:"rayResultCanvas"},{name:"rayResultModels"},{name:"rayResultAll"},{name:"rayResultSingleModel"}]),pt(qM.prototype,"Model.prototype",[{name:"isInstancingEnabled"},{name:"instancedAttributes"}]);var iV={};pt(iV,"CameraVisFlags",[{name:"GENERAL"}]),dt(iV,"CameraVisFlags",[{name:"PROFILER",newName:"PROFILER",target:Oy.BitMask,targetName:"PROFILER"},{name:"GIZMOS",newName:"GIZMOS",target:Oy.BitMask,targetName:"GIZMOS"},{name:"EDITOR",newName:"EDITOR",target:Oy.BitMask,targetName:"EDITOR"},{name:"UI",newName:"UI",target:Oy.BitMask,targetName:"UI_3D"},{name:"UI2D",newName:"UI2D",target:Oy.BitMask,targetName:"UI_2D"}]),A.CameraVisFlags=iV;var nV={};pt(nV,"VisibilityFlags",[{name:"GENERAL"}]),dt(nV,"VisibilityFlags",[{name:"ALWALS",newName:"ALWALS",target:Oy.Enum,targetName:"ALWALS"},{name:"PROFILER",newName:"PROFILER",target:Oy.Enum,targetName:"PROFILER"},{name:"GIZMOS",newName:"GIZMOS",target:Oy.Enum,targetName:"GIZMOS"},{name:"EDITOR",newName:"EDITOR",target:Oy.Enum,targetName:"EDITOR"},{name:"UI",newName:"UI",target:Oy.Enum,targetName:"UI_3D"},{name:"UI2D",newName:"UI2D",target:Oy.Enum,targetName:"UI_2D"}]),A.VisibilityFlags=nV,dt(yT.prototype,"Pass.prototype",[{name:"getBindingTypeFromHandle",newName:"getDescriptorTypeFromHandle"}]),pt(RM.prototype,"Camera.prototype",[{name:"getSplitFrustum"},{name:"setMatView"},{name:"setMatViewInv"},{name:"setMatProjInv"},{name:"setMatViewProjInv"},{name:"setMatProj"},{name:"setMatViewProj"},{name:"getMatViewInv"}]),pt(jT.prototype,"Shadows.prototype",[{name:"aspect"},{name:"selfShadow"},{name:"linear"},{name:"packing"},{name:"autoAdapt"},{name:"fixedArea"},{name:"pcf"},{name:"bias"},{name:"normalBias"},{name:"near"},{name:"far"},{name:"shadowDistance"},{name:"invisibleOcclusionRange"},{name:"orthoSize"},{name:"saturation"}]),pt(lP.prototype,"SpotLight.prototype",[{name:"aspect"}]),dt(LM.prototype,"SubModel.prototype",[{name:"subMeshData",newName:"subMesh"}]),pt(LM.prototype,"SubModel.prototype",[{name:"getSubModel",suggest:"Use `subModels[i]` instead"},{name:"subModelNum",suggest:"Use `subModels.length` instead"}]);var rV=Object.freeze({__proto__:null,BatchingSchemes:{NONE:0,INSTANCING:1},CameraVisFlags:iV,MaterialInstance:XT,Pass:yT,PassInstance:qT,PassStage:{DEFAULT:1,FORWARD:2,SHADOWCAST:4},RenderQueue:{OPAQUE:0,TRANSPARENT:1,OVERLAY:2},RenderScene:IP,RenderWindow:kP,TextureBufferPool:eV,VisibilityFlags:nV,createIA:function(t,e){if(!e.positions)return ot(16306),null;for(var i=[],n=e.positions.length/3,r=0;r=2*oV)l=2*oV;else for(;l<0;)l+=2*oV;else if(fV(l)>=2*oV)l=2*-oV;else for(;l>0;)l-=2*oV;for(h=0|uV(1,hV(fV(l)/(.5*oV)+.5,5)),c=fV(4/3*(1-lV(o=l/h/2))/cV(o)),a||(c=-c),x=0;x<=h;x++)d=e+(f=lV(u=r+l*(x/h)))*n,p=i+(_=cV(u))*n,m=-_*n*c,g=f*n*c,0===x?t.moveTo(d,p):t.bezierCurveTo(y+b,v+S,d-m,p-g,d,p),y=d,v=p,b=m,S=g}function mV(t,e,i,n,r){t.moveTo(e-n,i),t.bezierCurveTo(e-n,i+r*dV,e-n*dV,i+r,e,i+r),t.bezierCurveTo(e+n*dV,i+r,e+n,i+r*dV,e+n,i),t.bezierCurveTo(e+n,i-r*dV,e+n*dV,i-r,e,i-r),t.bezierCurveTo(e-n*dV,i-r,e-n,i-r*dV,e-n,i),t.close()}function gV(t,e,i,n,r,s){if(s<.1)t.rect(e,i,n,r);else{var a=hV(s,.5*fV(n))*_V(n),o=hV(s,.5*fV(r))*_V(r);t.moveTo(e,i+o),t.lineTo(e,i+r-o),t.bezierCurveTo(e,i+r-o*(1-dV),e+a*(1-dV),i+r,e+a,i+r),t.lineTo(e+n-a,i+r),t.bezierCurveTo(e+n-a*(1-dV),i+r,e+n,i+r-o*(1-dV),e+n,i+r-o),t.lineTo(e+n,i+o),t.bezierCurveTo(e+n,i+o*(1-dV),e+n-a*(1-dV),i,e+n-a,i),t.lineTo(e+a,i),t.bezierCurveTo(e+a*(1-dV),i,e,i+o*(1-dV),e,i+o),t.close()}}function yV(t,e,i,n,r,s,a,o,h,u,l){var c,f,_,d,p,m,g,y,v,b,S,x,w,T,A,C;u>10||(p=.5*(s+o),m=.5*(a+h),g=.5*((c=.5*(e+n))+(_=.5*(n+s))),y=.5*((f=.5*(i+r))+(d=.5*(r+a))),((A=fV((n-o)*(T=h-i)-(r-h)*(w=o-e)))+(C=fV((s-o)*T-(a-h)*w)))*(A+C)0){for(var i=0;ii)for(var n=i;n=0&&s.y>=0&&s.x<=n&&s.y<=r;else if(1===this.type){var h=n/2,u=r/2,l=s.x-.5*n,c=s.y-.5*r;o=l*l/(h*h)+c*c/(u*u)<1}return this._inverted&&(o=!o),o},i._nodeStateChange=function(){this._updateGraphics()},i._changeRenderType=function(){3!==this._type?this._createGraphics():this._createSprite()},i._createSprite=function(){if(!this._sprite){var t=this._sprite=this.node.getComponent(NN);if(!t){var e=this.node;t=this._sprite=e.addComponent(NN)}}this._sprite.stencilStage=this.inverted?6:2,this._sprite.updateMaterial()},i._createGraphics=function(){if(!this._graphics){var t=this._graphics=this.node.getComponent(YV);if(!t){var e=this.node;t=this._graphics=e.addComponent(YV)}t.lineWidth=1;var i=lr.WHITE.clone();i.a=0,t.fillColor=i}this._graphics.stencilStage=this.inverted?6:2},i._updateGraphics=function(){if(this._graphics&&(0===this._type||1===this._type)){var t=this.node._getUITransformComp(),e=this._graphics;e.clear();var i=t.contentSize,n=i.width,r=i.height,s=t.anchorPoint,a=-n*s.x,o=-r*s.y;if(0===this._type)e.rect(a,o,n,r);else if(1===this._type){for(var h=$V(new er(a+n/2,o+r/2,0),new er(n/2,r/2,0),this._segments),u=0;up?0:d>0?d:p}T.Canvas=lU,pt(t("U",Kh("cc.UIComponent")(oU=Jh(aL)(oU=Qh(110)(oU=Zh(oU=function(t){function e(){var e;return(e=t.call(this)||this)._lastParent=null,e.stencilStage=0,e}s(e,t);var i=e.prototype;return i.__preload=function(){this.node._uiProps.uiComp=this},i.onEnable=function(){},i.onDisable=function(){},i.onDestroy=function(){var t=this.node._uiProps;t.uiComp===this&&(t.uiComp=null)},i.postUpdateAssembler=function(){},i.markForUpdateRenderData=function(){},i.setNodeDirty=function(){},i.setTextureDirty=function(){},e}(dg))||oU)||oU)||oU)||oU).prototype,"UIComponent",[{name:"_visibility"},{name:"setVisibility"}]),dt(lU.prototype,"Canvas.prototype",[{name:"camera",newName:"cameraComponent.camera",customGetter:function(){var t;return null==(t=this._cameraComponent)?void 0:t.camera}},{name:"clearFlag",newName:"cameraComponent.clearFlags",customGetter:function(){return this._cameraComponent?this._cameraComponent.clearFlags:0},customSetter:function(t){this._cameraComponent&&(this._cameraComponent.clearFlags=t)}},{name:"color",newName:"cameraComponent.clearColor",customGetter:function(){return this._cameraComponent?this._cameraComponent.clearColor:lr.BLACK},customSetter:function(t){this._cameraComponent&&(this._cameraComponent.clearColor=t)}},{name:"priority",newName:"cameraComponent.priority",customGetter:function(){return this._cameraComponent?this._cameraComponent.priority:0},customSetter:function(t){this._cameraComponent&&(this._cameraComponent.priority=t)}},{name:"targetTexture",newName:"cameraComponent.targetTexture",customGetter:function(){return this._cameraComponent?this._cameraComponent.targetTexture:null},customSetter:function(t){this._cameraComponent&&(this._cameraComponent.targetTexture=t)}},{name:"visibility",newName:"cameraComponent.visibility",customGetter:function(){return this._cameraComponent?this._cameraComponent.visibility:0}}]),mt(aL.prototype,"UITransform.prototype",[{name:"priority",suggest:"Please use setSiblingIndex to change index of the current node in its parent's children array."}]),T.UITransformComponent=aL,ue(aL,"cc.UITransformComponent"),ue(TL,"cc.RenderComponent"),T.CanvasComponent=lU,ue(lU,"cc.CanvasComponent"),T.internal.Renderable2D=TL,ue(TL,"cc.Renderable2D");var fU,_U,dU,pU,mU,gU,yU,vU,bU=(fU=no.create(),_U={distance:1/0,doubleSided:!1,mode:2},dU=0,pU=function(t,e,i,n,r,s){1===t?(dU>e||0===dU)&&(dU=e,s&&(0===s.length?s.push({distance:e,vertexIndex0:i/3,vertexIndex1:n/3,vertexIndex2:r/3}):(s[0].distance=e,s[0].vertexIndex0=i/3,s[0].vertexIndex1=n/3,s[0].vertexIndex2=r/3))):(dU=e,s&&s.push({distance:e,vertexIndex0:i/3,vertexIndex1:n/3,vertexIndex2:r/3}))},mU=function(t,e,i,n,r){if(7===i)for(var s=e.length,a=0;ar.distance)&&(pU(r.mode,l,o,h,u,r.result),2===r.mode))return l}else if(8===i)for(var c=e.length-2,f=0,_=0;_r.distance)&&(pU(r.mode,g,d,p,m,r.result),2===r.mode))return g}else if(9===i){var y=e.length-1,v=3*e[0];er.set(fU.a,t[v],t[v+1],t[v+2]);for(var b=1;br.distance)&&(pU(r.mode,w,v,S,x,r.result),2===r.mode))return w}}return dU},function(t,e,i){if(dU=0,0===e.geometricInfo.positions.length)return dU;var n=void 0===i?_U:i;if(cU(t,e.geometricInfo.boundingBox.min,e.geometricInfo.boundingBox.max)){var r=e.primitiveMode,s=e.geometricInfo,a=s.positions,o=s.indices;mU(a,o,r,t,n)}return dU}),SU=function(){var t=0,e={distance:1/0,doubleSided:!1,mode:2};return function(i,n,r){t=0;var s=void 0===r?e:r,a=n.renderingSubMeshes.length,o=n.struct.minPosition,h=n.struct.maxPosition;if(o&&h&&!cU(i,o,h))return t;for(var u=0;uc)&&(t=c,s.subIndices&&(s.subIndices[0]=u));else if(t=c,s.subIndices&&s.subIndices.push(u),2===s.mode)return c}return t&&1===s.mode&&(s.result&&(s.result[0].distance=t,s.result.length=1),s.subIndices&&(s.subIndices.length=1)),t}}(),xU=function(){var t=0,e={distance:1/0,doubleSided:!1,mode:2},i=new Ls,n=new Kr;return function(r,s,a){t=0;var o=void 0===a?e:a,h=s.worldBounds;if(h&&!Qa.rayAABB(r,h))return t;Ls.copy(i,r),s.node&&(Kr.invert(n,s.node.getWorldMatrix(n)),er.transformMat4(i.o,r.o,n),er.transformMat4Normal(i.d,r.d,n));for(var u=s.subModels,l=0;lf)&&(t=f,o.subIndices&&(o.subIndices[0]=l));else if(t=f,o.subIndices&&o.subIndices.push(l),2===o.mode)return f}return t&&1===o.mode&&(o.result&&(o.result[0].distance=t,o.result.length=1),o.subIndices&&(o.subIndices.length=1)),t}}();Qa.rayModel=xU,Qa.raySubMesh=bU,Qa.rayMesh=SU,_T("specular-pass");var wU,TU,AU,CU,DU,BU,IU,MU,PU,EU,OU,kU,RU,FU,LU,NU,VU=t("dO",Kh("cc.ModelRenderer")((yU=function(t){function e(){var e;return(e=t.call(this)||this)._visFlags=vU&&vU(),e._models=[],e._priority=0,e}s(e,t);var i=e.prototype;return i._collectModels=function(){return this._models},i.onEnable=function(){this._updatePriority()},i._attachToScene=function(){},i._detachFromScene=function(){},i._onVisibilityChange=function(){},i._updatePriority=function(){if(this._models.length>0)for(var t=0;tc;){if((s/=2)<1){s*=2;break}a=a.substring(r,s),o=n.substring(s),this._calculateSize(h,e,a)}for(var f=1e3,_=1;f&&r0&&(_=d[0].length),s+=_,a=n.substring(r,s),o=n.substring(s),this._calculateSize(h,e,a),f--}for(;f&&a.length>=2&&h.x>c;)s-=_,a=n.substring(r,s),this._calculateSize(h,e,a),_=1,f--;if(a.length>=2){var p=PR(a);p&&p.length>0&&a!==p[0]&&(s-=p[0].length,a=n.substring(r,s))}if(i.push(a),r=s,s+=a.length,a=n.substring(r,s),o=n.substring(s),this._calculateSize(u,e,o),this._calculateSize(h,e,a),f--,u.x<2048&&h.x=0;e--){var i=t[e];if(i.name===dG||i.name===pG){i.parent=null;var n=bG(i.name);n.node=i,i.name===dG?(n.comp=i.getComponent(ON),yG.put(n)):(n.comp=i.getComponent(NN),vG.put(n)),this._labelChildrenNum--}}this._segments.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},i._activateChildren=function(t){for(var e=this.node.children.length-1;e>=0;e--){var i=this.node.children[e];i.name!==dG&&i.name!==pG||(i.active=t)}},i._addLabelSegment=function(t,e){var i;if(0===this._labelSegmentsCache.length)i=this._createFontLabel(t);else{var n=(i=this._labelSegmentsCache.pop()).node.getComponent(ON);n&&(n.string=t)}var r=i.comp;return r.verticalAlign!==this._verticalAlign&&(r.verticalAlign=this._verticalAlign),i.styleIndex=e,i.lineCount=this._lineCount,i.node._getUITransformComp().setAnchorPoint(0,0),i.node.layer=this.node.layer,this.node.insertChild(i.node,this._labelChildrenNum++),this._applyTextAttribute(i),this._segments.push(i),i},i._updateRichTextWithMaxWidth=function(t,e,i){var n=e;if(this._lineOffsetX>0&&n+this._lineOffsetX>this._maxWidth)for(var r=0;this._lineOffsetX<=this._maxWidth;){var s=this._getFirstWordLen(t,r,t.length),a=t.substr(r,s),o=this._measureText(i,a);if(!(this._lineOffsetX+o<=this._maxWidth)){if(r>0){var h=t.substr(0,r);this._addLabelSegment(h,i),t=t.substr(r,t.length),n=this._measureText(i,t)}this._updateLineInfo();break}this._lineOffsetX+=o,r+=s}if(n>this._maxWidth)for(var u=ER(t,n,this._maxWidth,this._measureText(i)),l=0;l1&&l0?(o*=a=l/h,h*=a):(o*=a=this._lineHeight/h,h*=a),u>0&&(o=u),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.node._getUITransformComp().setContentSize(o,h),r.lineCount=this._lineCount,r.clickHandler="",r.clickParam="";var c=e.event;c&&(r.clickHandler=c.click,r.clickParam=c.param)}else st(4400)}},i._updateTextDefaultColor=function(){for(var t=0;t0){var u=this._measureText(n,h);this._updateRichTextWithMaxWidth(h,u,n),a.length>1&&othis._labelWidth&&(this._labelWidth=this._lineOffsetX),a.length>1&&o0&&(this._labelWidth=this._maxWidth),this._labelHeight=(this._lineCount+hR)*this._lineHeight,this.node._getUITransformComp().setContentSize(this._labelWidth,this._labelHeight),this._updateRichTextPosition(),this._layoutDirty=!1}},i._getFirstWordLen=function(t,e,i){var n=AR(t,e);if(SR(n)||xR(n))return 1;for(var r=1,s=e+1;se&&(t=0,e=h);var u=this._labelWidth*(.5*this._horizontalAlign-r);switch(this._horizontalAlign){case 0:break;case 1:u-=this._linesWidth[h-1]/2;break;case 2:u-=this._linesWidth[h-1]}var l=o.node.position;if(o.node.setPosition(t+u,this._lineHeight*(i-h)-this._labelHeight*s,l.z),h===e&&(t+=o.node._getUITransformComp().width),o.node.getComponent(NN)){var c=o.node.position.clone(),f=this._lineHeight,_=this._lineHeight*(1+hR);switch(o.node._getUITransformComp().anchorY){case 1:c.y+=f+(_-f)/2;break;case.5:c.y+=_/2;break;default:c.y+=(_-f)/2}if(o.imageOffset){var d=o.imageOffset.split(",");if(1===d.length&&d[0]){var p=parseFloat(d[0]);Number.isInteger(p)&&(c.y+=p)}else if(2===d.length){var m=parseFloat(d[0]),g=parseFloat(d[1]);Number.isInteger(m)&&(c.x+=m),Number.isInteger(g)&&(c.y+=g)}}o.node.position=c}var y=o.node.getComponent(ON);if(y&&y.enableOutline){var v=o.node.position.clone();v.y-=y.outlineWidth,o.node.position=v}}},i._convertLiteralColorValue=function(t){var e=t.toUpperCase();return lr[e]?lr[e]:(new lr).fromHEX(t)},i._applyTextAttribute=function(t){var e=t.node.getComponent(ON);if(e){this._resetLabelState(e);var i,n=t.styleIndex;if(this._textArray[n]&&(i=this._textArray[n].style),i){if(i.color?e.color=this._convertLiteralColorValue(i.color):e.color=this._fontColor,e.isBold=!!i.bold,e.isItalic=!!i.italic,e.isUnderline=!!i.underline,i.outline){var r=t.node.getComponent(ON);r||(r=t.node.addComponent(ON)),r.enableOutline=!0,r.outlineColor=this._convertLiteralColorValue(i.outline.color),r.outlineWidth=i.outline.width}e.fontSize=i.size||this._fontSize,t.clickHandler="",t.clickParam="";var s=i.event;s&&(t.clickHandler=s.click||"",t.clickParam=s.param||"")}e.cacheMode=this._cacheMode,this._font instanceof sR&&!this._isSystemFontUsed?e.font=this._font:e.fontFamily=this._fontFamily,e.useSystemFont=this._isSystemFontUsed,e.lineHeight=this._lineHeight,e.updateRenderData(!0)}},i._applyLayer=function(){var t=this;this._segments.forEach((function(e){e.node.layer=t.node.layer}))},i._resetLabelState=function(t){t.fontSize=this._fontSize,t.color=this._fontColor,t.isBold=!1,t.isItalic=!1,t.isUnderline=!1},n(e,[{key:"string",get:function(){return this._string},set:function(t){this._string!==t&&(this._string=t,this._updateRichTextStatus())}},{key:"horizontalAlign",get:function(){return this._horizontalAlign},set:function(t){this.horizontalAlign!==t&&(this._horizontalAlign=t,this._layoutDirty=!0,this._updateRichTextStatus())}},{key:"verticalAlign",get:function(){return this._verticalAlign},set:function(t){this._verticalAlign!==t&&(this._verticalAlign=t,this._layoutDirty=!0,this._updateRichTextStatus())}},{key:"fontSize",get:function(){return this._fontSize},set:function(t){this._fontSize!==t&&(this._fontSize=t,this._layoutDirty=!0,this._updateRichTextStatus())}},{key:"fontColor",get:function(){return this._fontColor},set:function(t){this._fontColor!==t&&(this._fontColor=t,this._updateTextDefaultColor())}},{key:"fontFamily",get:function(){return this._fontFamily},set:function(t){this._fontFamily!==t&&(this._fontFamily=t,this._layoutDirty=!0,this._updateRichTextStatus())}},{key:"font",get:function(){return this._font},set:function(t){this._font!==t&&(this._font=t,this._layoutDirty=!0,this._font?(this.useSystemFont=!1,this._onTTFLoaded()):this.useSystemFont=!0,this._updateRichTextStatus())}},{key:"useSystemFont",get:function(){return this._isSystemFontUsed},set:function(t){this._isSystemFontUsed!==t&&(this._isSystemFontUsed=t,this._layoutDirty=!0,this._updateRichTextStatus())}},{key:"cacheMode",get:function(){return this._cacheMode},set:function(t){this._cacheMode!==t&&(this._cacheMode=t,this._updateRichTextStatus())}},{key:"maxWidth",get:function(){return this._maxWidth},set:function(t){this._maxWidth!==t&&(this._maxWidth=t,this._layoutDirty=!0,this._updateRichTextStatus())}},{key:"lineHeight",get:function(){return this._lineHeight},set:function(t){this._lineHeight!==t&&(this._lineHeight=t,this._layoutDirty=!0,this._updateRichTextStatus())}},{key:"imageAtlas",get:function(){return this._imageAtlas},set:function(t){this._imageAtlas!==t&&(this._imageAtlas=t,this._layoutDirty=!0,this._updateRichTextStatus())}},{key:"handleTouchEvent",get:function(){return this._handleTouchEvent},set:function(t){this._handleTouchEvent!==t&&(this._handleTouchEvent=t,this.enabledInHierarchy&&(this.handleTouchEvent?this._addEventListeners():this._removeEventListeners()))}}]),e}(dg),fG.HorizontalAlign=uN,fG.VerticalAlign=lN,v((QU=fG).prototype,"horizontalAlign",[WU],Object.getOwnPropertyDescriptor(QU.prototype,"horizontalAlign"),QU.prototype),v(QU.prototype,"verticalAlign",[jU],Object.getOwnPropertyDescriptor(QU.prototype,"verticalAlign"),QU.prototype),v(QU.prototype,"fontColor",[qU],Object.getOwnPropertyDescriptor(QU.prototype,"fontColor"),QU.prototype),v(QU.prototype,"font",[XU],Object.getOwnPropertyDescriptor(QU.prototype,"font"),QU.prototype),v(QU.prototype,"cacheMode",[YU],Object.getOwnPropertyDescriptor(QU.prototype,"cacheMode"),QU.prototype),v(QU.prototype,"imageAtlas",[KU],Object.getOwnPropertyDescriptor(QU.prototype,"imageAtlas"),QU.prototype),ZU=Vh(QU.prototype,"_lineHeight",[hu],(function(){return 40})),$U=Vh(QU.prototype,"_string",[hu],(function(){return"RichText"})),tG=Vh(QU.prototype,"_horizontalAlign",[hu],(function(){return 0})),eG=Vh(QU.prototype,"_verticalAlign",[hu],(function(){return 0})),iG=Vh(QU.prototype,"_fontSize",[hu],(function(){return 40})),nG=Vh(QU.prototype,"_fontColor",[hu],(function(){return lr.WHITE.clone()})),rG=Vh(QU.prototype,"_maxWidth",[hu],(function(){return 0})),sG=Vh(QU.prototype,"_fontFamily",[hu],(function(){return"Arial"})),aG=Vh(QU.prototype,"_font",[hu],(function(){return null})),oG=Vh(QU.prototype,"_isSystemFontUsed",[hu],(function(){return!0})),hG=Vh(QU.prototype,"_userDefinedFont",[hu],(function(){return null})),uG=Vh(QU.prototype,"_cacheMode",[hu],(function(){return 0})),lG=Vh(QU.prototype,"_imageAtlas",[hu],(function(){return null})),cG=Vh(QU.prototype,"_handleTouchEvent",[hu],(function(){return!0})),JU=QU))||JU)||JU));T.RichText=xG,T.MaskComponent=oz,ue(oz,"cc.MaskComponent"),T.LabelComponent=ON,ue(ON,"cc.LabelComponent"),T.LabelOutlineComponent=UN,ue(UN,"cc.LabelOutlineComponent"),T.RichTextComponent=xG,ue(xG,"cc.RichTextComponent"),T.SpriteComponent=NN,ue(NN,"cc.SpriteComponent"),T.UIModelComponent=zN,ue(zN,"cc.UIModelComponent"),T.GraphicsComponent=YV,ue(YV,"cc.GraphicsComponent"),ue(JN,"cc.UIStaticBatchComponent"),ue(ZN,"cc.UIOpacityComponent"),dt(oz.prototype,"Mask",[{name:"graphics",newName:"subComp",target:oz.prototype,targetName:"Mask"}]),dt(tz,"MaskType",[{name:"RECT",newName:"GRAPHICS_RECT",target:tz,targetName:"MaskType"},{name:"ELLIPSE",newName:"GRAPHICS_ELLIPSE",target:tz,targetName:"MaskType"},{name:"IMAGE_STENCIL",newName:"SPRITE_STENCIL",target:tz,targetName:"MaskType"}]),mt(UN.prototype,"LabelOutline",[{name:"width",suggest:"Please use Label.outlineWidth instead."},{name:"color",suggest:"Please use Label.outlineColor instead."}]),mt(QN.prototype,"LabelShadow",[{name:"color",suggest:"Please use Label.shadowColor instead."},{name:"offset",suggest:"Please use Label.shadowOffset instead."},{name:"blur",suggest:"Please use Label.shadowBlur instead."}]);var wG=["left","center","right"],TG=2048,AG=cR(),CG=(1/255).toFixed(3),DG=function(){this.char="",this.valid=!0,this.x=0,this.y=0,this.line=0,this.hash=""},BG=function(){function t(){this._context=null,this._canvas=null,this._canvasData=null,this._lettersInfo=[],this._tmpRect=new vs,this._maxFontSize=100,this._fontScale=1;var t=this._canvasData=lF.getInstance().get();this._canvas=t.canvas,this._context=t.context}var e=t.prototype;return e.destroy=function(){lF.getInstance().put(this._canvasData),this._canvasData=null,this._canvas=null,this._context=null,this._lettersInfo.length=0},e.processingString=function(t,e,i,n,r,s){if(t)e.fntConfig?this._fontScale=1:this._fontScale=this._getStyleFontScale(e.originFontSize,e.fontScale),gF.fontScale=this._fontScale,this._setupBMFontOverflowMetrics(i,n),this._updateFontScale(e),this._computeHorizontalKerningForText(e,i,r),this._alignText(e,i,n,r);else{var a=0;for(this._fontScale=this._getStyleFontScale(e.fontSize,e.fontScale),this._updatePaddingRect(e,n),this._calculateLabelFont(e,i,n,r);(n.canvasSize.width>TG||n.canvasSize.height>TG)&&a<=3;){if(++a>3)this._fontScale=1;else{var o=Math.max(n.canvasSize.width,n.canvasSize.height),h=TG/o;this._fontScale*=h,this._fontScale=Math.max(1,this._fontScale)}this._updatePaddingRect(e,n),this._calculateLabelFont(e,i,n,r)}}s&&(s=n.parsedString)},e.generateRenderInfo=function(t,e,i,n,r,s,a){t?(this._computeAlignmentOffset(e,i,n),this.generateVertexData(t,e,i,n,r,s,a)):(this._updateLabelDimensions(e,i,n),this._updateTexture(e,i,n,r),this.generateVertexData(t,e,i,n,r,s,a))},e.setCanvasUsed=function(t,e){this._canvas=t,this._context=e},e._getStyleFontScale=function(t,e){var i=e,n=this._maxFontSize;return i*t>n&&td?f:d}var p=f,m=(s.length+hR)*this._getLineHeight(e.lineHeight,t.actualFontSize,t.fontSize);o.width=p+u.width*c,o.height=m+u.height*c,h.width=(p+l.width*c)/c,h.height=(m+l.height*c)/c;break;case 2:this._calculateShrinkFont(r,t,e,i),this._calculateWrapText(r,t,e,i),o.width=h.width*c,o.height=h.height*c;break;case 1:this._calculateWrapText(r,t,e,i),o.width=h.width*c,o.height=h.height*c;break;case 3:this._calculateWrapText(r,t,e,i);var g=(i.parsedString.length+hR)*this._getLineHeight(e.lineHeight,t.actualFontSize,t.fontSize);o.width=h.width*c,o.height=g+u.height*c,h.height=(g+l.height*c)/c}}},e._getFontDesc=function(t,e,i,n){var r=t.toString()+"px ";return r+=e,i&&(r="bold "+r),n&&(r="italic "+r),r},e._getLineHeight=function(t,e,i){return 0===t?e:t*e/i},e._calculateShrinkFont=function(t,e,i,n){if(this._context){var r=this._getFontDesc(e.actualFontSize,e.fontFamily,e.isBold,e.isItalic);this._context.font=r;var s=this._calculateParagraphLength(t,this._context,r),a=0,o=0,h=0,u=e.actualFontSize,l=n.canvasSize,c=n.nodeContentSize,f=n.canvasPadding,_=this._fontScale;if(i.wrapping){var d=c.width*_,p=c.height*_;if(d<0||p<0)return;o=p+1;for(var m=0,g=0|e.actualFontSize+1,y=0;m>1)<=0){et(4003);break}u=y,r=this._getFontDesc(u,e.fontFamily,e.isBold,e.isItalic),this._context.font=r;var v=this._getLineHeight(i.lineHeight,u,e.fontSize);for(o=0,a=0;ap?g=y-1:m=y}0===m?et(4003):(u=m,r=this._getFontDesc(u,e.fontFamily,e.isBold,e.isItalic),this._context.font=r)}else{for(o=t.length*this._getLineHeight(i.lineHeight,u,e.fontSize),a=0;a1&&i.hasShadow,h=this._measureText(this._context,i.fontDesc),u=0,l=0,c=0;c0&&this._isVerticalClamp(t,e,i,n,this)&&this._shrinkLabelToContentSize(t,e,i,n,this._isVerticalClamp),t.fontSize>0&&this._isHorizontalNeedShrink(e,i)&&this._shrinkLabelToContentSize(t,e,i,n,this._isHorizontalClamp)),this._parsedString(i,n)},e._parsedString=function(t,e){for(var i=[],n="",r=0,s=0,a=TR(e);r0&&h>0&&C+d.w*t.bmfontScale>e.maxLineWidth&&!xR(m)){e.linesWidth.push(c),c=0,o++,h=0,u-=e.lineHeight*this._getFontScale(t,e)+0,x=!0;break}w.x=C,w.y=u-d.offsetY*t.bmfontScale,this._recordLetterInfo(w,m,A,o),A+1w.y-d.h*t.bmfontScale&&(v=w.y-d.h*t.bmfontScale)}else this._recordPlaceholderInfo(A,m),null!=t.fntConfig?et(16354,t.fntConfig.atlasName,m):et(16355,t.fontFamily,m);else this._recordPlaceholderInfo(A,m)}x||(h=S,fv&&(_=v),l<(c=b)&&(l=c),p+=g)}else e.linesWidth.push(c),c=0,o++,h=0,u-=e.lineHeight*this._getFontScale(t,e)+0,this._recordPlaceholderInfo(p,m),p++}e.linesWidth.push(c),e.numberOfLines=o+1,e.textDesiredHeight=e.numberOfLines*e.lineHeight*this._getFontScale(t,e),e.numberOfLines>1&&(e.textDesiredHeight+=0*(e.numberOfLines-1));var D=i.nodeContentSize;return D.width=e.textWidthTemp,D.height=e.textHeightTemp,e.textWidthTemp<=0&&(D.width=parseFloat(l.toFixed(2))+2*gF.margin),e.textHeightTemp<=0&&(D.height=parseFloat(e.textDesiredHeight.toFixed(2))+2*gF.margin),e.tailoredTopY=D.height,e.tailoredBottomY=0,f>0&&(e.tailoredTopY=D.height+f),_<-e.textDesiredHeight&&(e.tailoredBottomY=e.textDesiredHeight+_),!0},e._recordPlaceholderInfo=function(t,e){var i=this._lettersInfo;if(t>=i.length){var n=new DG;i.push(n)}i[t].char=e,i[t].hash=""+CR(e,0)+gF.hash,i[t].valid=!1},e._recordLetterInfo=function(t,e,i,n){var r=this._lettersInfo;if(i>=r.length){var s=new DG;r.push(s)}var a=""+CR(e,0)+gF.hash;r[i].line=n,r[i].char=e,r[i].hash=a,r[i].valid=gF.fontAtlas.getLetter(a).valid,r[i].x=t.x,r[i].y=t.y},e._getFirstWordLen=function(t,e,i,n,r){var s=AR(i,n);if(SR(s)||"\n"===s||xR(s))return 1;var a=gF.fontAtlas,o=1,h=a.getLetterDefinitionForChar(s,gF);if(!h)return o;for(var u=h.xAdvance*t.bmfontScale+e.spacingX,l=n+1;le.maxLineWidth&&!xR(s)&&e.maxLineWidth>0)return o;if(u+=h.xAdvance*t.bmfontScale+e.spacingX,"\n"===s||xR(s)||SR(s))break;o++}return o},e._computeAlignmentOffset=function(t,e,i){var n=i.nodeContentSize;switch(e.linesOffsetX.length=0,e.letterOffsetY=0,e.horizontalAlign){case 0:for(var r=0;ri.nodeContentSize.height},e._isHorizontalClamp=function(t,e,i,n,r){for(var s=!1,a=0,o=TR(n);a0){var f=i.nodeContentSize;if(e.wrapping){if(e.linesWidth[c]>f.width&&(l>f.width||l<0)){s=!0;break}}else if(l>f.width){s=!0;break}}}}return s},e._isHorizontalNeedShrink=function(t,e){for(var i=0,n=t.linesWidth.length;ie.nodeContentSize.width)return!0;return!1},e._shrinkLabelToContentSize=function(t,e,i,n,r){for(var s=0,a=0|t.actualFontSize,o=0;s>1;if(h<=0)break;t.bmfontScale=h/(t.originFontSize*this._fontScale),this._multilineTextWrap(t,e,i,n,this._getFirstWordLen),this._computeAlignmentOffset(t,e,i),r(t,e,i,n,this)?a=o-1:s=o}s>=0&&this._scaleFontSizeDown(t,e,i,n,s)},e._scaleFontSizeDown=function(t,e,i,n,r){var s=!0;r||(r=.1,s=!1),t.actualFontSize=r,s&&(this._updateFontScale(t),this._multilineTextWrap(t,e,i,n,this._getFirstWordLen))},e._updateQuads=function(t,e,i,n,r,s){for(var a=gF.fontAtlas,o=t.spriteFrame?t.spriteFrame.texture:a.getTexture(),h=i.nodeContentSize,u=n.uiTransAnchorX*h.width,l=n.uiTransAnchorY*h.height,c=0,f=TR(r);c0){if(m>e.tailoredTopY){var g=m-e.tailoredTopY;p.y+=g,p.height-=g,m-=g}m-p.height*t.bmfontScale0&&this._isHorizontalClamped(e,i,v,y)&&1===e.overFlow&&(p.width=0),p.height>0&&p.width>0){var b=this._determineRect(t),S=_.x+e.linesOffsetX[_.line],x=n.quadCount;n.quadCount+=4,this.updateQuatCount(n),s(t,i,n,x,o,p,b,S-u,m-l)}}else st(16353)}}return!0},e._isHorizontalClamped=function(t,e,i,n){var r=e.nodeContentSize,s=t.linesWidth[n],a=i>r.width||i<0;return t.wrapping?s>r.width&&a:a},e._determineRect=function(t){var e=t.spriteFrame;if(!e)return!1;var i=e.isRotated(),n=e.getOriginalSize(),r=e.getRect(),s=e.getOffset(),a=s.x+(n.width-r.width)/2,o=s.y-(n.height-r.height)/2,h=this._tmpRect;if(i){var u=h.x;h.x=r.x+r.height-h.y-h.height-o,h.y=u+r.y-a,h.y<0&&(h.height+=o)}else h.x+=r.x-a,h.y+=r.y+o;return i},t}();BG.instance=void 0,BG.instance=new BG;var IG=new mF(64,64),MG=new aF(null),PG=null,EG=null,OG=null,kG=null,RG=null,FG=function(){function t(){}var e=t.prototype;return e.updateProcessingData=function(t,e,i,n,r,s){t.fontSize=r.fontSize,t.actualFontSize=r.fontSize,t.originFontSize=OG?OG.fontSize:r.fontSize,e.horizontalAlign=r.horizontalAlign,e.verticalAlign=r.verticalAlign,e.spacingX=r.spacingX;var a=r.overflow;e.overFlow=a,e.lineHeight=r.lineHeight,i.nodeContentSize.width=s.width,i.nodeContentSize.height=s.height,0===a?(e.wrapping=!1,i.nodeContentSize.width+=2*gF.margin,i.nodeContentSize.height+=2*gF.margin):3===a?(e.wrapping=!0,i.nodeContentSize.height+=2*gF.margin):e.wrapping=r.enableWrapText,n.uiTransAnchorX=s.anchorX,n.uiTransAnchorY=s.anchorY,gF.lineHeight=r.lineHeight,gF.fontSize=r.fontSize,t.spriteFrame=kG,t.fntConfig=OG,t.fontFamily=gF.fontFamily,t.color.set(r.color)},e.updateRenderData=function(t){if(t.renderData&&PG!==t){if(t.renderData.vertDirty){EG=(PG=t).node._getUITransformComp();var e=t.renderData,i=BG.instance,n=t.textStyle,r=t.textLayout,s=t.textLayoutData,a=t.textRenderData;n.fontScale=FO.getScaleX(),this._updateFontFamily(t),this.updateProcessingData(n,r,s,a,t,EG),this._updateLabelInfo(t),n.fontDesc=gF.fontDesc,i.processingString(!0,n,r,s,t.string),a.quadCount=0,i.generateRenderInfo(!0,n,r,s,a,t.string,this.generateVertexData),e.dataLength!==a.quadCount&&(this.resetRenderData(t),e.dataLength=a.quadCount,e.resize(e.dataLength,e.dataLength/2*3));for(var o=e.data,h=0,u=a.quadCount;h0?(gF.isOutlined=!0,gF.margin=t.outlineWidth,gF.out=t.outlineColor.clone(),gF.out.a=t.outlineColor.a*t.color.a/255):(gF.isOutlined=!1,gF.margin=0)},i._getFontFamily=function(t){var e="Arial";return t.useSystemFont?e=t.fontFamily||"Arial":t.font&&(e=t.font._nativeAsset||"Arial"),e},i._updateLabelInfo=function(t){gF.fontDesc=this._getFontDesc(),gF.color.set(t.color),gF.hash=yF(gF)},i._getFontDesc=function(){return gF.fontSize.toString()+"px "+gF.fontFamily},e}(FG),GG=new lr(255,255,255,255),HG=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.createData=function(t){var e=t.requestRenderData();return e.resize(0,0),e},i.fillBuffers=function(t){if(t.renderData){var e=t.node;GG.a=255*e._uiProps.opacity,Gp(e,0,t.renderData,GG)}},i.updateColor=function(){},e}(UG),WG=new HG;ON.Overflow;var jG=function(){function t(){}var e=t.prototype;return e.updateProcessingData=function(t,e,i,n,r,s){t.isSystemFontUsed=r.useSystemFont,t.fontSize=r.fontSize,i.nodeContentSize.width=i.canvasSize.width=s.width,i.nodeContentSize.height=i.canvasSize.height=s.height,e.lineHeight=r.lineHeight,e.overFlow=r.overflow,0===r.overflow?e.wrapping=!1:3===r.overflow?e.wrapping=!0:e.wrapping=r.enableWrapText,t.isBold=r.isBold,t.isItalic=r.isItalic,t.isUnderline=r.isUnderline,t.underlineHeight=r.underlineHeight,r.enableOutline&&r.outlineWidth>0?(t.isOutlined=!0,t.outlineColor.set(r.outlineColor),t.outlineWidth=r.outlineWidth):t.isOutlined=!1,r.enableShadow&&(r.shadowBlur>0||!Qi(r.shadowOffset.x,0)||!Qi(r.shadowOffset.y,0))?(t.hasShadow=!0,t.shadowColor.set(r.shadowColor),t.shadowBlur=r.shadowBlur,t.shadowOffsetX=r.shadowOffset.x,t.shadowOffsetY=r.shadowOffset.y):t.hasShadow=!1,t.color.set(r.color),n.texture=r.spriteFrame,n.uiTransAnchorX=s.anchorX,n.uiTransAnchorY=s.anchorY,e.horizontalAlign=r.horizontalAlign,e.verticalAlign=r.verticalAlign},e.getAssemblerData=function(){var t=ON._canvasPool.get();return t.canvas.width=t.canvas.height=1,t},e.resetAssemblerData=function(t){t&&ON._canvasPool.put(t)},e.updateRenderData=function(t){if(t.renderData){if(t.renderData.vertDirty){var e=t.node._getUITransformComp(),i=BG.instance,n=t.textStyle,r=t.textLayout,s=t.textLayoutData,a=t.textRenderData;n.fontScale=FO.getScaleX(),this.updateProcessingData(n,r,s,a,t,e),i.setCanvasUsed(t.assemblerData.canvas,t.assemblerData.context),n.fontFamily=this._updateFontFamily(t),this._resetDynamicAtlas(t),i.processingString(!1,n,r,s,t.string),i.generateRenderInfo(!1,n,r,s,a,t.string,this.generateVertexData);var o=t.renderData;o.textureDirty=!0,this._calDynamicAtlas(t,s),t.actualFontSize=n.actualFontSize,e.setContentSize(s.nodeContentSize);var h=o.data;h[0]=a.vertexBuffer[0],h[1]=a.vertexBuffer[1],h[2]=a.vertexBuffer[2],h[3]=a.vertexBuffer[3],this.updateUVs(t),t.renderData.vertDirty=!1,t.contentWidth=s.nodeContentSize.width}t.spriteFrame&&t.renderData.updateRenderData(t,t.spriteFrame)}},e.generateVertexData=function(t,e,i){var n=i.vertexBuffer,r=e.nodeContentSize.width,s=e.nodeContentSize.height,a=i.uiTransAnchorX*r,o=i.uiTransAnchorY*s;n[0].x=-a,n[0].y=-o,n[1].x=r-a,n[1].y=-o,n[2].x=-a,n[2].y=s-o,n[3].x=r-a,n[3].y=s-o},e.updateVertexData=function(){},e.updateUVs=function(){},e._updateFontFamily=function(t){return t.useSystemFont?t.fontFamily||"Arial":t.font&&t.font._nativeAsset||"Arial"},e._calDynamicAtlas=function(t,e){if(!(1!==t.cacheMode||e.canvasSize.width<=0||e.canvasSize.height<=0)){var i=t.ttfSpriteFrame;jO.packToDynamicAtlas(t,i)}},e._resetDynamicAtlas=function(t){if(1===t.cacheMode){var e=t.ttfSpriteFrame;jO.deleteAtlasSpriteFrame(e),e._resetDynamicAtlasFrame()}},t}(),qG=lr.WHITE.clone(),XG=Uint16Array.from([0,1,2,1,3,2]),YG=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.createData=function(t){var e=t.requestRenderData();e.dataLength=4,e.resize(4,6),t.textRenderData.quadCount=4;for(var i=e.chunk.vb,n=e.floatStride,r=[{u:0,v:1},{u:1,v:1},{u:0,v:0},{u:1,v:0}],s=3,a=0,o=e.dataLength;a1?1:r)<0?0:r;var s=(n=(n=n>1?1:n)<0?0:n)+(r=(r-=n)<0?0:r);s=s>1?1:s,this.updateUVs(t,n,s),this.updateVertexData(t,n,s),i.updateRenderData(t,e)}},e.updateUVs=function(t,e,i){var n=t.spriteFrame,r=t.renderData,s=r.chunk.vb,a=n.width,o=n.height,h=n.rect,u=0,l=0,c=0,f=0,_=0,d=0,p=0,m=0,g=0,y=0;n.isRotated()?(u=h.x/a,l=(h.y+h.width)/o,c=_=u,p=g=(h.x+h.height)/a,d=y=l,f=m=h.y/o):(u=h.x/a,l=(h.y+h.height)/o,c=p=u,_=g=(h.x+h.width)/a,f=d=l,m=y=h.y/o);var v=r.floatStride,b=3;switch(t.fillType){case 0:s[b]=c+(_-c)*e,s[b+1]=f+(d-f)*e,s[b+=v]=c+(_-c)*i,s[b+1]=f+(d-f)*i,s[b+=v]=p+(g-p)*e,s[b+1]=m+(y-m)*e,s[b+=v]=p+(g-p)*i,s[b+1]=m+(y-m)*i;break;case 1:s[b]=c+(p-c)*e,s[b+1]=f+(m-f)*e,s[b+=v]=_+(g-_)*e,s[b+1]=d+(y-d)*e,s[b+=v]=c+(p-c)*i,s[b+1]=f+(m-f)*i,s[b+=v]=_+(g-_)*i,s[b+1]=d+(y-d)*i;break;default:ot(2626)}},e.updateVertexData=function(t,e,i){var n=t.renderData.data,r=t.node._getUITransformComp(),s=r.width,a=r.height,o=r.anchorX*s,h=r.anchorY*a,u=-o,l=-h,c=s-o,f=a-h,_=0;switch(t.fillType){case 0:_=u+(c-u)*i,u+=(c-u)*e,c=_;break;case 1:_=l+(f-l)*i,l+=(f-l)*e,f=_;break;default:ot(2626)}n[0].x=u,n[0].y=l,n[1].x=c,n[1].y=l,n[2].x=u,n[2].y=f,n[3].x=c,n[3].y=f},e.createData=function(t){var e=t.requestRenderData();return e.dataLength=4,e.resize(4,6),e.chunk.setIndexBuffer(ZG),e.data.forEach((function(t){t.z=0})),e},e.updateWorldVertexData=function(t,e){t.node.getWorldMatrix(QG);for(var i=t.renderData.floatStride,n=t.renderData.data,r=e.vb,s=0,a=0;a<4;a++){var o=n[a],h=o.x,u=o.y,l=QG.m03*h+QG.m07*u+QG.m15;l=l?1/l:1,r[s=a*i]=(QG.m00*h+QG.m04*u+QG.m12)*l,r[s+1]=(QG.m01*h+QG.m05*u+QG.m13)*l,r[s+2]=(QG.m02*h+QG.m06*u+QG.m14)*l}},e.fillBuffers=function(t){var e=t.renderData,i=e.chunk;(t._flagChangedVersion!==t.node.flagChangedVersion||e.vertDirty)&&(this.updateWorldVertexData(t,i),e.vertDirty=!1,t._flagChangedVersion=t.node.flagChangedVersion),i.bufferId;var n=i.vertexOffset,r=i.meshBuffer,s=i.meshBuffer.iData,a=r.indexOffset;s[a++]=n,s[a++]=n+1,s[a++]=n+2,s[a++]=n+2,s[a++]=n+1,s[a++]=n+3,r.indexOffset+=6},e.updateColor=function(t){for(var e=t.renderData,i=e.chunk.vb,n=e.floatStride,r=5,s=t.color,a=s.r/255,o=s.g/255,h=s.b/255,u=t.node._uiProps.opacity,l=0;l<4;l++)i[r]=a,i[r+1]=o,i[r+2]=h,i[r+3]=u,r+=n},t}(),tH=new $G,eH=2*Math.PI,iH=1e-6,nH=new Kr,rH=[new _s,new _s,new _s,new _s],sH=new Array(4),aH=new Array(8),oH=[new _s,new _s,new _s,new _s],hH=[new _s,new _s,new _s,new _s],uH=new _s,lH=[new _s,new _s,new _s,new _s],cH=null;function fH(t,e,i,n,r,s,a){var o=Math.sin(s);o=Math.abs(o)>iH?o:0;var h=Math.cos(s),u=0,l=0;if(0!==(h=Math.abs(h)>iH?h:0)){if(u=o/h,(t-r.x)*h>0){var c=r.y+u*(t-r.x);a[0].x=t,a[0].y=c}if((e-r.x)*h>0){var f=r.y+u*(e-r.x);a[2].x=e,a[2].y=f}}if(0!==o){if(l=h/o,(n-r.y)*o>0){var _=r.x+l*(n-r.y);a[3].x=_,a[3].y=n}if((i-r.y)*o>0){var d=r.x+l*(i-r.y);a[1].x=d,a[1].y=i}}}function _H(t){var e=t.node._getUITransformComp(),i=e.width,n=e.height,r=e.anchorX*i,s=e.anchorY*n,a=-r,o=-s,h=i-r,u=n-s,l=sH;l[0]=a,l[1]=o,l[2]=h,l[3]=u;var c=t.fillCenter,f=uH.x=Math.min(Math.max(0,c.x),1)*(h-a)+a,_=uH.y=Math.min(Math.max(0,c.y),1)*(u-o)+o;rH[0].x=rH[3].x=a,rH[1].x=rH[2].x=h,rH[0].y=rH[1].y=o,rH[2].y=rH[3].y=u,lH.forEach((function(t){_s.set(t,0,0)})),f!==l[0]&&_s.set(lH[0],3,0),f!==l[2]&&_s.set(lH[2],1,2),_!==l[1]&&_s.set(lH[1],0,1),_!==l[3]&&_s.set(lH[3],2,3)}function dH(t){var e=t.width,i=t.height,n=t.getRect(),r=0,s=0,a=0,o=0,h=aH;t.isRotated()?(r=n.x/e,s=(n.x+n.height)/e,a=n.y/i,o=(n.y+n.width)/i,h[0]=h[2]=r,h[4]=h[6]=s,h[3]=h[7]=o,h[1]=h[5]=a):(r=n.x/e,s=(n.x+n.width)/e,a=n.y/i,o=(n.y+n.height)/i,h[0]=h[4]=r,h[2]=h[6]=s,h[1]=h[3]=o,h[5]=h[7]=a)}function pH(t,e){var i=e.x-t.x,n=e.y-t.y;if(0===i&&0===n)return 0;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}function mH(t,e,i,n,r){var s=sH,a=s[0],o=s[1],h=s[2],u=s[3];t[e].x=i.x,t[e].y=i.y,t[e+1].x=n.x,t[e+1].y=n.y,t[e+2].x=r.x,t[e+2].y=r.y,gH((i.x-a)/(h-a),(i.y-o)/(u-o),t,e),gH((n.x-a)/(h-a),(n.y-o)/(u-o),t,e+1),gH((r.x-a)/(h-a),(r.y-o)/(u-o),t,e+2)}function gH(t,e,i,n){var r=aH,s=r[0]+(r[2]-r[0])*t,a=r[4]+(r[6]-r[4])*t,o=r[1]+(r[3]-r[1])*t,h=r[5]+(r[7]-r[5])*t,u=i[n];u.u=s+(a-s)*e,u.v=o+(h-o)*e}for(var yH=function(){function t(){}var e=t.prototype;return e.createData=function(t){return t.requestRenderData()},e.updateRenderData=function(t){var e=t.spriteFrame;jO.packToDynamicAtlas(t,e),this.updateUVs(t);var i=t.renderData;if(i&&e){if(!i.vertDirty)return;var n=i.data,r=t.fillStart,s=t.fillRange;for(s<0&&(r+=s,s=-s);r>=1;)r-=1;for(;r<0;)r+=1;var a=(r*=eH)+(s*=eH);_H(t),dH(e),fH(sH[0],sH[2],sH[1],sH[3],uH,r,oH),fH(sH[0],sH[2],sH[1],sH[3],uH,r+s,hH);for(var o=0,h=0;h<4;++h){var u=lH[h];if(u)if(s>=eH)i.dataLength=o+3,mH(n,o,uH,rH[u.x],rH[u.y]),o+=3;else{var l=pH(uH,rH[u.x]),c=pH(uH,rH[u.y]);c=a||(l>=r?(i.dataLength=o+3,mH(n,o,uH,rH[u.x],c>=a?hH[h]:rH[u.y]),o+=3):c>r&&(c<=a?(i.dataLength=o+3,mH(n,o,uH,oH[h],rH[u.y]),o+=3):(i.dataLength=o+3,mH(n,o,uH,oH[h],hH[h]),o+=3))),l+=eH,c+=eH}}0===o&&(i.dataLength=0),i.resize(o,o),i.updateRenderData(t,e)}},e.createQuadIndices=function(t){cH=null,cH=new Uint16Array(t);for(var e=0,i=0;i1?1:p,m=Number.isNaN(m)||m>1?1:m,_=_<0?0:_,d=d<0?0:d,wH[0].x=-a,wH[0].y=-o,wH[1].x=u*p-a,wH[1].y=f*m-o,wH[2].x=wH[1].x+_,wH[2].y=wH[1].y+d,wH[3].x=r-a,wH[3].y=s-o;for(var g=0;g<4;g++)for(var y=0;y<4;y++){var v=4*g+y;v0||t.insetBottom>0||t.insetLeft>0||t.insetRight>0)?2:0}var VH=function(){function t(){}var e=t.prototype;return e.createData=function(t){return t.requestRenderData()},e.updateRenderData=function(t){var e=t.renderData;if(e){var i=t.spriteFrame;if(i&&e&&e.vertDirty){var n=t.node._getUITransformComp(),r=Math.abs(n.width),s=Math.abs(n.height),a=i.getRect(),o=i.insetLeft,h=i.insetRight,u=a.width-o-h,l=i.insetTop,c=i.insetBottom,f=a.height-l-c,_=r-o-h,d=s-l-c;_=_>0?_:0,d=d>0?d:0;var p=0===u?_:_/u,m=0===f?d:d/f,g=NH(i),y=Math.ceil(m+g),v=Math.ceil(p+g);e.dataLength=4*y*v,this.updateVerts(t,_,d,y,v),e.vertexCount!==y*v*4&&(t.renderEntity.colorDirty=!0),e.resize(y*v*4,y*v*6),e.updateRenderData(t,i)}}},e.createQuadIndices=function(t){if(t%6==0){var e=t/6;LH=new Uint16Array(t);for(var i=0,n=0;n1?1:s.width/(m+g),w=s.height/(v+b)>1?1:s.height/(v+b);o=y>0?Math.floor(1e3*e)/1e3%y==0?y:e%y:e,h=S>0?Math.floor(1e3*i)/1e3%S==0?S:i%S:i,FH.length=0,RH=Math.max(n+1,r+1);for(var T=0;T=r?f-d:C*y-d,FH[C].y=C>=n?_-p:C*S-p;else for(var D=0;D1&&D0?m*x-d+y*(D-1):m+e-d:D===r-1?FH[D].x=m*x-d+o+y*(D-2):D>=r&&(FH[D].x=Math.min(m+e+g,f)-d),0===D?FH[D].y=-p:1===D?FH[D].y=b*w-p:D>1&&D0?b*w-p+S*(D-1):b+i-p:D===n-1?FH[D].y=b*w-p+h+S*(D-2):D>=n&&(FH[D].y=Math.min(b+i+v,_)-p);for(var B=0,I=0,M=0,P=0,E=0;ES?i>=(A>0?H:H+1)*S?1:z%1:z;for(var W=0;Wy?e>=(A>0?W:W+1)*y?1:V%1:V,R?(0===A?(U[0]=IH.u,U[1]=IH.u,U[2]=IH.u+(MH.u-IH.u)*N,G[0]=CH.v,G[1]=CH.v+(DH.v-CH.v)*L,G[2]=CH.v):(0===H?(U[0]=AH.u,U[1]=AH.u,U[2]=IH.u):H0){var h=a.claimedTouchIdList.indexOf(n.getID());if(-1!==h){if(a._handleEventTouch(t),"touch-end"!==t.type&&"touch-cancel"!==t.type||(ye(a.claimedTouchIdList,h),t.preventSwallow||this._removeClaimedTouch(s+1,n.getID())),r=!1,!t.preventSwallow)break;t.preventSwallow=!1}}}return--this._inDispatchCount<=0&&this._updatePointerEventProcessorList(),r},e._removeClaimedTouch=function(t,e){for(var i=this._pointerEventProcessorList,n=i.length,r=t;re)for(;e0){for(var t=this._meshDataArray.length,e=0;e0){Hp(r.renderData,a);var h=r.renderData.getMeshBuffer();h&&h.setDirty()}if(i.length>0&&!t._static)for(var u=0;u0&&(this.autoMergeBatches(this._currComponent),this.resetRenderStates(),GH.sharedManager.exitMask())),e+=1}},e._screenSort=function(t,e){return t.node.siblingIndex-e.node.siblingIndex},e._releaseDescriptorSetCache=function(t){this._descriptorSetCache.releaseDescriptorSetCache(t)},e._createClearModel=function(){if(!this._maskClearModel){this._maskClearMtl=fT.get("default-clear-stencil"),this._maskClearModel=T.director.root.createModel(qM);var t=MF(wF),e=zp.gfxDevice,i=e.createBuffer(new sd(10,1,4*t,t)),n=new Float32Array([-1,-1,0,1,-1,0,-1,1,0,1,1,0]);i.update(n);var r=e.createBuffer(new sd(6,1,12,2)),s=new Uint16Array([0,1,2,2,1,3]);r.update(s),this._maskModelMesh=new eO([i],wF,7,r),this._maskModelMesh.subMeshIdx=0,this._maskClearModel.initSubModel(0,this._maskModelMesh,this._maskClearMtl)}},e._insertMaskBatch=function(t){this.autoMergeBatches(this._currComponent),this.resetRenderStates(),this._createClearModel(),this._maskClearModel.node=this._maskClearModel.transform=t.node;var e=GH.sharedManager;e.pushMask(1);var i=e.clear(t),n=null,r=0,s=this._maskClearMtl;s&&(n=e.getStencilStage(i,s),r=e.getStencilHash(i));var a=this._maskClearModel,o=T.director.getTotalFrames();a&&(a.updateTransform(o),a.updateUBOs(o));for(var h=0;h=0;a--){var o=i[a],h=t[o];t.splice(o,1),this._localCachePool.free(h)}}},e.reset=function(){for(var t=this._localDescriptorSetCache,e=t.length,i=0;i>>0},t.getLayerIndex=function(t){void 0===t&&(t=0);var e=0;return this.indexMap.has(t)?e=this.indexMap.get(t):ot(2105),e},t.getLayerIndexByName=function(t){var e=this.getLayerByName(t);return this.getLayerIndex(e)},t.getLayerName=function(t){void 0===t&&(t=0);var e="";return this.nameMap.has(t)?e=this.nameMap.get(t):ot(2105),e},t.getLayerByName=function(t){for(var e=this.nameMap.size,i=this.nameMap.keys(),n=0,r=0;r=i.length||i[e].length===t.length&&(i[e]=t.slice(0),this._uploadSubMeshShapesWeights(e))},e.setWeight=function(t,e,i){var n=this._subMeshShapesWeights;if(!(e>=n.length)){var r=n[e];i>=r.length||(r[i]=t,this._uploadSubMeshShapesWeights(e))}},e.setInstancedAttribute=function(t,e){if(this.model)for(var i=this.model.subModels,n=0;n0&&this.bindposes.length>0},n(e,[{key:"joints",get:function(){return this._joints},set:function(t){this._joints=t}},{key:"bindposes",get:function(){return this._bindposes},set:function(t){this._bindposes=t}},{key:"inverseBindposes",get:function(){if(!this._invBindposes){this._invBindposes=[];for(var t=0;tGT.LEVEL_1},set:function(t){this._csmLevel=t?GT.LEVEL_4:GT.LEVEL_1,this._light&&(this._light.csmLevel=this._csmLevel,this._light.csmNeedUpdate=!0)}},{key:"csmLayerLambda",get:function(){return this._csmLayerLambda},set:function(t){this._csmLayerLambda=t,this._light&&(this._light.csmLayerLambda=this._csmLayerLambda,this._light.csmNeedUpdate=!0)}},{key:"csmOptimizationMode",get:function(){return this._csmOptimizationMode},set:function(t){this._csmOptimizationMode=t,this._light&&(this._light.csmOptimizationMode=this._csmOptimizationMode)}},{key:"shadowFixedArea",get:function(){return this._shadowFixedArea},set:function(t){this._shadowFixedArea=t,this._light&&(this._light.shadowFixedArea=this._shadowFixedArea)}},{key:"shadowNear",get:function(){return this._shadowNear},set:function(t){this._shadowNear=t,this._light&&(this._light.shadowNear=this._shadowNear)}},{key:"shadowFar",get:function(){return this._shadowFar},set:function(t){this._shadowFar=Math.min(t,jT.MAX_FAR),this._light&&(this._light.shadowFar=this._shadowFar)}},{key:"shadowOrthoSize",get:function(){return this._shadowOrthoSize},set:function(t){this._shadowOrthoSize=t,this._light&&(this._light.shadowOrthoSize=this._shadowOrthoSize)}},{key:"csmAdvancedOptions",get:function(){return this._csmAdvancedOptions},set:function(t){this._csmAdvancedOptions=t}},{key:"csmLayersTransition",get:function(){return this._csmLayersTransition},set:function(t){this._csmLayersTransition=t,this._light&&(this._light.csmLayersTransition=t)}},{key:"csmTransitionRange",get:function(){return this._csmTransitionRange},set:function(t){this._csmTransitionRange=t,this._light&&(this._light.csmTransitionRange=t)}}]),e}(WX),yq=Vh(gq.prototype,"_illuminanceHDR",[jX,Ej],(function(){return 65e3})),vq=Vh(gq.prototype,"_illuminanceLDR",[qX],(function(){return 65e3*RM.standardExposureValue})),bq=Vh(gq.prototype,"_shadowEnabled",[qX],(function(){return!1})),Sq=Vh(gq.prototype,"_shadowPcf",[qX],(function(){return UT.HARD})),xq=Vh(gq.prototype,"_shadowBias",[qX],(function(){return 1e-5})),wq=Vh(gq.prototype,"_shadowNormalBias",[qX],(function(){return 0})),Tq=Vh(gq.prototype,"_shadowSaturation",[qX],(function(){return 1})),Aq=Vh(gq.prototype,"_shadowDistance",[qX],(function(){return 50})),Cq=Vh(gq.prototype,"_shadowInvisibleOcclusionRange",[qX],(function(){return 200})),Dq=Vh(gq.prototype,"_csmLevel",[qX],(function(){return GT.LEVEL_4})),Bq=Vh(gq.prototype,"_csmLayerLambda",[qX],(function(){return.75})),Iq=Vh(gq.prototype,"_csmOptimizationMode",[qX],(function(){return HT.RemoveDuplicates})),Mq=Vh(gq.prototype,"_csmAdvancedOptions",[qX],(function(){return!1})),Pq=Vh(gq.prototype,"_csmLayersTransition",[qX],(function(){return!1})),Eq=Vh(gq.prototype,"_csmTransitionRange",[qX],(function(){return.05})),Oq=Vh(gq.prototype,"_shadowFixedArea",[qX],(function(){return!1})),kq=Vh(gq.prototype,"_shadowNear",[qX],(function(){return.1})),Rq=Vh(gq.prototype,"_shadowFar",[qX],(function(){return 10})),Fq=Vh(gq.prototype,"_shadowOrthoSize",[qX],(function(){return 5})),v(gq.prototype,"illuminance",[Oj],Object.getOwnPropertyDescriptor(gq.prototype,"illuminance"),gq.prototype),v(gq.prototype,"shadowEnabled",[kj,Rj],Object.getOwnPropertyDescriptor(gq.prototype,"shadowEnabled"),gq.prototype),v(gq.prototype,"shadowPcf",[Fj,Lj],Object.getOwnPropertyDescriptor(gq.prototype,"shadowPcf"),gq.prototype),v(gq.prototype,"shadowBias",[Nj,Vj],Object.getOwnPropertyDescriptor(gq.prototype,"shadowBias"),gq.prototype),v(gq.prototype,"shadowNormalBias",[zj,Uj],Object.getOwnPropertyDescriptor(gq.prototype,"shadowNormalBias"),gq.prototype),v(gq.prototype,"shadowSaturation",[Gj,Hj],Object.getOwnPropertyDescriptor(gq.prototype,"shadowSaturation"),gq.prototype),v(gq.prototype,"shadowDistance",[Wj,jj],Object.getOwnPropertyDescriptor(gq.prototype,"shadowDistance"),gq.prototype),v(gq.prototype,"shadowInvisibleOcclusionRange",[qj,Xj],Object.getOwnPropertyDescriptor(gq.prototype,"shadowInvisibleOcclusionRange"),gq.prototype),v(gq.prototype,"csmLevel",[Yj,Kj],Object.getOwnPropertyDescriptor(gq.prototype,"csmLevel"),gq.prototype),v(gq.prototype,"enableCSM",[Jj,Qj],Object.getOwnPropertyDescriptor(gq.prototype,"enableCSM"),gq.prototype),v(gq.prototype,"csmLayerLambda",[Zj,$j],Object.getOwnPropertyDescriptor(gq.prototype,"csmLayerLambda"),gq.prototype),v(gq.prototype,"csmOptimizationMode",[tq,eq],Object.getOwnPropertyDescriptor(gq.prototype,"csmOptimizationMode"),gq.prototype),v(gq.prototype,"shadowFixedArea",[iq,nq],Object.getOwnPropertyDescriptor(gq.prototype,"shadowFixedArea"),gq.prototype),v(gq.prototype,"shadowNear",[rq,sq],Object.getOwnPropertyDescriptor(gq.prototype,"shadowNear"),gq.prototype),v(gq.prototype,"shadowFar",[aq,oq],Object.getOwnPropertyDescriptor(gq.prototype,"shadowFar"),gq.prototype),v(gq.prototype,"shadowOrthoSize",[hq,uq],Object.getOwnPropertyDescriptor(gq.prototype,"shadowOrthoSize"),gq.prototype),v(gq.prototype,"csmAdvancedOptions",[lq,cq],Object.getOwnPropertyDescriptor(gq.prototype,"csmAdvancedOptions"),gq.prototype),v(gq.prototype,"csmLayersTransition",[fq,_q],Object.getOwnPropertyDescriptor(gq.prototype,"csmLayersTransition"),gq.prototype),v(gq.prototype,"csmTransitionRange",[dq,pq],Object.getOwnPropertyDescriptor(gq.prototype,"csmTransitionRange"),gq.prototype),mq=gq))||mq)),JX=t("af",(Lq=Kh("cc.SphereLight"),Nq=uu("_luminance"),Vq=Eu(ui),zq=Eu(ui),Uq=Eu(GX),Gq=Eu(li),Hq=Eu(li),Lq((jq=function(t){function e(){var e;return(e=t.call(this)||this)._size=qq&&qq(),e._luminanceHDR=Xq&&Xq(),e._luminanceLDR=Yq&&Yq(),e._term=Kq&&Kq(),e._range=Jq&&Jq(),e._lightType=nP,e}return s(e,t),e.prototype._createLight=function(){t.prototype._createLight.call(this),this._type=1,this.size=this._size,this.range=this._range,this._light&&(this._light.luminanceHDR=this._luminanceHDR,this._light.luminanceLDR=this._luminanceLDR)},n(e,[{key:"luminousFlux",get:function(){return tb().isHDR?this._luminanceHDR*ZM(this._size):this._luminanceLDR},set:function(t){var e=0;tb().isHDR?(this._luminanceHDR=t/ZM(this._size),e=this._luminanceHDR):(this._luminanceLDR=t,e=this._luminanceLDR),this._light&&(this._light.luminance=e)}},{key:"luminance",get:function(){return tb().isHDR?this._luminanceHDR:this._luminanceLDR},set:function(t){tb().isHDR?(this._luminanceHDR=t,this._light&&(this._light.luminanceHDR=this._luminanceHDR)):(this._luminanceLDR=t,this._light&&(this._light.luminanceLDR=this._luminanceLDR))}},{key:"term",get:function(){return this._term},set:function(t){this._term=t}},{key:"size",get:function(){return this._size},set:function(t){this._size=t,this._light&&(this._light.size=t)}},{key:"range",get:function(){return this._range},set:function(t){this._range=t,this._light&&(this._light.range=t)}}]),e}(WX),qq=Vh(jq.prototype,"_size",[hu],(function(){return.15})),Xq=Vh(jq.prototype,"_luminanceHDR",[hu,Nq],(function(){return 1700/ZM(.15)})),Yq=Vh(jq.prototype,"_luminanceLDR",[hu],(function(){return 1700/ZM(.15)*RM.standardExposureValue*RM.standardLightMeterScale})),Kq=Vh(jq.prototype,"_term",[hu],(function(){return GX.LUMINOUS_FLUX})),Jq=Vh(jq.prototype,"_range",[hu],(function(){return 1})),v(jq.prototype,"luminousFlux",[Vq],Object.getOwnPropertyDescriptor(jq.prototype,"luminousFlux"),jq.prototype),v(jq.prototype,"luminance",[zq],Object.getOwnPropertyDescriptor(jq.prototype,"luminance"),jq.prototype),v(jq.prototype,"term",[Uq],Object.getOwnPropertyDescriptor(jq.prototype,"term"),jq.prototype),v(jq.prototype,"size",[Gq],Object.getOwnPropertyDescriptor(jq.prototype,"size"),jq.prototype),v(jq.prototype,"range",[Hq],Object.getOwnPropertyDescriptor(jq.prototype,"range"),jq.prototype),Wq=jq))||Wq)),QX=Eu,ZX=hu,$X=uu,tY=$h,eY=t("ag",(Qq=Kh("cc.SpotLight"),Zq=$X("_luminance"),$q=QX(GX),tX=QX(li),eX=tY({group:{name:"DynamicShadowSettings",displayOrder:1}}),iX=QX(ci),nX=tY({group:{name:"DynamicShadowSettings",displayOrder:2}}),rX=QX(UT),sX=tY({group:{name:"DynamicShadowSettings",displayOrder:3}}),aX=QX(li),oX=tY({group:{name:"DynamicShadowSettings",displayOrder:4}}),hX=QX(li),Qq((lX=function(t){function e(){var e;return(e=t.call(this)||this)._size=cX&&cX(),e._luminanceHDR=fX&&fX(),e._luminanceLDR=_X&&_X(),e._term=dX&&dX(),e._range=pX&&pX(),e._spotAngle=mX&&mX(),e._angleAttenuationStrength=gX&&gX(),e._shadowEnabled=yX&&yX(),e._shadowPcf=vX&&vX(),e._shadowBias=bX&&bX(),e._shadowNormalBias=SX&&SX(),e._lightType=lP,e}return s(e,t),e.prototype._createLight=function(){if(t.prototype._createLight.call(this),this._type=2,this.size=this._size,this.range=this._range,this.spotAngle=this._spotAngle,this.angleAttenuationStrength=this._angleAttenuationStrength,this._light){var e=this._light;e.luminanceHDR=this._luminanceHDR,e.luminanceLDR=this._luminanceLDR,e.shadowEnabled=this._shadowEnabled,e.shadowPcf=this._shadowPcf,e.shadowBias=this._shadowBias,e.shadowNormalBias=this._shadowNormalBias}},n(e,[{key:"luminousFlux",get:function(){return tb().isHDR?this._luminanceHDR*ZM(this._size):this._luminanceLDR},set:function(t){var e=0;tb().isHDR?(this._luminanceHDR=t/ZM(this._size),e=this._luminanceHDR):(this._luminanceLDR=t,e=this._luminanceLDR),this._light&&(this._light.luminance=e)}},{key:"luminance",get:function(){return tb().isHDR?this._luminanceHDR:this._luminanceLDR},set:function(t){tb().isHDR?(this._luminanceHDR=t,this._light&&(this._light.luminanceHDR=this._luminanceHDR)):(this._luminanceLDR=t,this._light&&(this._light.luminanceLDR=this._luminanceLDR))}},{key:"term",get:function(){return this._term},set:function(t){this._term=t}},{key:"size",get:function(){return this._size},set:function(t){this._size=t,this._light&&(this._light.size=t)}},{key:"range",get:function(){return this._range},set:function(t){this._range=t,this._light&&(this._light.range=t)}},{key:"spotAngle",get:function(){return this._spotAngle},set:function(t){this._spotAngle=t,this._light&&(this._light.spotAngle=en(t))}},{key:"angleAttenuationStrength",get:function(){return this._angleAttenuationStrength},set:function(t){this._angleAttenuationStrength=t,this._light&&(this._light.angleAttenuationStrength=t)}},{key:"shadowEnabled",get:function(){return this._shadowEnabled},set:function(t){this._shadowEnabled=t,this._light&&(this._light.shadowEnabled=t)}},{key:"shadowPcf",get:function(){return this._shadowPcf},set:function(t){this._shadowPcf=t,this._light&&(this._light.shadowPcf=t)}},{key:"shadowBias",get:function(){return this._shadowBias},set:function(t){this._shadowBias=t,this._light&&(this._light.shadowBias=t)}},{key:"shadowNormalBias",get:function(){return this._shadowNormalBias},set:function(t){this._shadowNormalBias=t,this._light&&(this._light.shadowNormalBias=t)}}]),e}(WX),cX=Vh(lX.prototype,"_size",[ZX],(function(){return.15})),fX=Vh(lX.prototype,"_luminanceHDR",[ZX,Zq],(function(){return 1700/ZM(.15)})),_X=Vh(lX.prototype,"_luminanceLDR",[ZX],(function(){return 1700/ZM(.15)*RM.standardExposureValue*RM.standardLightMeterScale})),dX=Vh(lX.prototype,"_term",[ZX],(function(){return GX.LUMINOUS_FLUX})),pX=Vh(lX.prototype,"_range",[ZX],(function(){return 1})),mX=Vh(lX.prototype,"_spotAngle",[ZX],(function(){return 60})),gX=Vh(lX.prototype,"_angleAttenuationStrength",[ZX],(function(){return 0})),yX=Vh(lX.prototype,"_shadowEnabled",[ZX],(function(){return!1})),vX=Vh(lX.prototype,"_shadowPcf",[ZX],(function(){return UT.HARD})),bX=Vh(lX.prototype,"_shadowBias",[ZX],(function(){return 1e-5})),SX=Vh(lX.prototype,"_shadowNormalBias",[ZX],(function(){return 0})),v(lX.prototype,"term",[$q],Object.getOwnPropertyDescriptor(lX.prototype,"term"),lX.prototype),v(lX.prototype,"size",[tX],Object.getOwnPropertyDescriptor(lX.prototype,"size"),lX.prototype),v(lX.prototype,"shadowEnabled",[eX,iX],Object.getOwnPropertyDescriptor(lX.prototype,"shadowEnabled"),lX.prototype),v(lX.prototype,"shadowPcf",[nX,rX],Object.getOwnPropertyDescriptor(lX.prototype,"shadowPcf"),lX.prototype),v(lX.prototype,"shadowBias",[sX,aX],Object.getOwnPropertyDescriptor(lX.prototype,"shadowBias"),lX.prototype),v(lX.prototype,"shadowNormalBias",[oX,hX],Object.getOwnPropertyDescriptor(lX.prototype,"shadowNormalBias"),lX.prototype),uX=lX))||uX));t("ah",(xX=Kh("cc.PointLight"),wX=uu("_luminance"),TX=Eu(ui),AX=Eu(ui),CX=Eu(GX),DX=Eu(li),xX((IX=function(t){function e(){var e;return(e=t.call(this)||this)._luminanceHDR=MX&&MX(),e._luminanceLDR=PX&&PX(),e._term=EX&&EX(),e._range=OX&&OX(),e._lightType=cP,e}return s(e,t),e.prototype._createLight=function(){t.prototype._createLight.call(this),this._type=3,this.range=this._range,this._light&&(this._light.luminanceHDR=this._luminanceHDR,this._light.luminanceLDR=this._luminanceLDR)},n(e,[{key:"luminousFlux",get:function(){return tb().isHDR?this._luminanceHDR*ZM(1):this._luminanceLDR},set:function(t){var e=0;tb().isHDR?(this._luminanceHDR=t/ZM(1),e=this._luminanceHDR):(this._luminanceLDR=t,e=this._luminanceLDR),this._light&&(this._light.luminance=e)}},{key:"luminance",get:function(){return tb().isHDR?this._luminanceHDR:this._luminanceLDR},set:function(t){tb().isHDR?(this._luminanceHDR=t,this._light&&(this._light.luminanceHDR=this._luminanceHDR)):(this._luminanceLDR=t,this._light&&(this._light.luminanceLDR=this._luminanceLDR))}},{key:"term",get:function(){return this._term},set:function(t){this._term=t}},{key:"range",get:function(){return this._range},set:function(t){this._range=t,this._light&&(this._light.range=t)}}]),e}(WX),MX=Vh(IX.prototype,"_luminanceHDR",[hu,wX],(function(){return 1700/ZM(.15)})),PX=Vh(IX.prototype,"_luminanceLDR",[hu],(function(){return 1700/ZM(.15)*RM.standardExposureValue*RM.standardLightMeterScale})),EX=Vh(IX.prototype,"_term",[hu],(function(){return GX.LUMINOUS_FLUX})),OX=Vh(IX.prototype,"_range",[hu],(function(){return 1})),v(IX.prototype,"luminousFlux",[TX],Object.getOwnPropertyDescriptor(IX.prototype,"luminousFlux"),IX.prototype),v(IX.prototype,"luminance",[AX],Object.getOwnPropertyDescriptor(IX.prototype,"luminance"),IX.prototype),v(IX.prototype,"term",[CX],Object.getOwnPropertyDescriptor(IX.prototype,"term"),IX.prototype),v(IX.prototype,"range",[DX],Object.getOwnPropertyDescriptor(IX.prototype,"range"),IX.prototype),BX=IX))||BX)),t("ai",(kX=Kh("cc.RangedDirectionalLight"),RX=uu("_illuminance"),FX=Eu(ui),kX((NX=function(t){function e(){var e;return(e=t.call(this)||this)._illuminanceHDR=VX&&VX(),e._illuminanceLDR=zX&&zX(),e._lightType=_P,e}return s(e,t),e.prototype._createLight=function(){t.prototype._createLight.call(this),this._type=4,this._light&&(this._light.illuminanceHDR=this._illuminanceHDR,this._light.illuminanceLDR=this._illuminanceLDR)},n(e,[{key:"illuminance",get:function(){return tb().isHDR?this._illuminanceHDR:this._illuminanceLDR},set:function(t){tb().isHDR?(this._illuminanceHDR=t,this._light&&(this._light.illuminanceHDR=this._illuminanceHDR)):(this._illuminanceLDR=t,this._light&&(this._light.illuminanceLDR=this._illuminanceLDR))}}]),e}(WX),VX=Vh(NX.prototype,"_illuminanceHDR",[$h,RX],(function(){return 65e3})),zX=Vh(NX.prototype,"_illuminanceLDR",[hu],(function(){return 65e3*RM.standardExposureValue})),v(NX.prototype,"illuminance",[FX],Object.getOwnPropertyDescriptor(NX.prototype,"illuminance"),NX.prototype),LX=NX))||LX)),T.LightComponent=WX,ue(WX,"cc.LightComponent"),T.DirectionalLightComponent=KX,ue(KX,"cc.DirectionalLightComponent"),T.SphereLightComponent=JX,ue(JX,"cc.SphereLightComponent"),T.SpotLightComponent=eY,ue(eY,"cc.SpotLightComponent"),dt(eY.prototype,"SpotLight.prototype",[{name:"luminousPower",newName:"luminousFlux",customGetter:function(){return this.luminousFlux},customSetter:function(t){this.luminousFlux=t}}]),dt(JX.prototype,"SphereLight.prototype",[{name:"luminousPower",newName:"luminousFlux",customGetter:function(){return this.luminousFlux},customSetter:function(t){this.luminousFlux=t}}]),dt(WX.PhotometricTerm,"Light.PhotometricTerm",[{name:"LUMINOUS_POWER",newName:"LUMINOUS_FLUX"}]);var iY=Symbol("BakeNodeCurves"),nY=t("g4",function(){function t(){}return t.getOrExtract=function(e){var i=t.pool.get(e);if(!i||i.samples!==e.sample){i&&T.director.root.dataPoolManager.releaseAnimationClip(e);var n=Math.ceil(e.sample*e.duration)+1,r=e.sample;i=e[iY](0,r,n),t.pool.set(e,i)}return i},t.destroy=function(e){t.pool.delete(e)},t}());nY.pool=new Map;var rY=new Kr;function sY(t,e,i){for(Kr.identity(i);t!==e;)Kr.fromRTS(rY,t.rotation,t.position,t.scale),Kr.multiply(i,rY,i),t=t.parent;return i}var aY=new fd(1,1,0,2,2,2),oY=function(t,e,i){t[e+0]=i.m00,t[e+1]=i.m01,t[e+2]=i.m02,t[e+3]=i.m12,t[e+4]=i.m04,t[e+5]=i.m05,t[e+6]=i.m06,t[e+7]=i.m13,t[e+8]=i.m08,t[e+9]=i.m09,t[e+10]=i.m10,t[e+11]=i.m14};function hY(t){return 2&t.getFormatFeatures(44)?44:35}function uY(t,e){var i=4/Math.sqrt(e);return 12*Math.ceil(Math.max(480*i,t)/12)}new Or,new Or,new er,new Or,new er;var lY=new er,cY=new er,fY=new er,_Y=new er,dY=new Kr,pY=new Kr,mY=new mh,gY=Number.MAX_SAFE_INTEGER,yY=function(){function t(t){this._device=void 0,this._pool=void 0,this._textureBuffers=new Map,this._formatSize=void 0,this._pixelsPerJoint=void 0,this._customPool=void 0,this._chunkIdxMap=new Map,this._device=t;var e=hY(this._device);this._formatSize=Zd[e].size,this._pixelsPerJoint=48/this._formatSize,this._pool=new eV(t),this._pool.initialize({format:e,roundUpFn:uY}),this._customPool=new eV(t),this._customPool.initialize({format:e,roundUpFn:uY})}var e=t.prototype;return e.clear=function(){this._pool.destroy(),this._textureBuffers.clear()},e.registerCustomTextureLayouts=function(t){for(var e=0;e0&&t.refCount--,!t.refCount&&t.readyToBeDeleted){var e=t.skeletonHash^t.clipHash;(void 0!==this._chunkIdxMap.get(e)?this._customPool:this._pool).free(t.handle),this._textureBuffers.get(e)===t&&this._textureBuffers.delete(e)}},e.releaseSkeleton=function(t){for(var e=this._textureBuffers.values(),i=e.next();!i.done;){var n=i.value;n.skeletonHash===t.hash&&(n.readyToBeDeleted=!0,n.refCount?this._textureBuffers.delete(n.skeletonHash^n.clipHash):this.releaseHandle(n)),i=e.next()}},e.releaseAnimationClip=function(t){for(var e=this._textureBuffers.values(),i=e.next();!i.done;){var n=i.value;n.clipHash===t.hash&&(n.readyToBeDeleted=!0,n.refCount?this._textureBuffers.delete(n.skeletonHash^n.clipHash):this.releaseHandle(n)),i=e.next()}},e._createAnimInfos=function(t,e,i){for(var n=[],r=t.joints,s=t.bindposes,a=r.length,o=nY.getOrExtract(e),h=0;h0;){t=bY[--i],bY[i]=null;var r=t.node;Kr.fromRTS(t.local,r.rotation,r.position,r.scale),n=Kr.multiply(t.world,n,t.local)}return n}function wY(t,e){for(var i,n=null,r=0;t!==e;){var s=t.uuid;if(SY.has(s)){n=SY.get(s);break}n={node:t,local:new Kr,world:new Kr,stamp:-1,parent:null},SY.set(s,n),bY[r++]=n,t=t.parent,n=null}for(;r>0;)i=bY[--r],bY[r]=null,i.parent=n,n=i;return n}function TY(t){for(var e=SY.get(t.uuid)||null;e;)SY.delete(e.node.uuid),e=e.parent}var AY=[{name:"CC_USE_SKINNING",value:!0},{name:"CC_USE_REAL_TIME_JOINT_TEXTURE",value:!1}],CY=[{name:"CC_USE_SKINNING",value:!0},{name:"CC_USE_REAL_TIME_JOINT_TEXTURE",value:!0}];function DY(t,e,i,n){for(var r=0;r=0&&(e.push(r),t.push(a))}}var BY=new er,IY=new er,MY=new er,PY=new er,EY=new Kr,OY=new mh,kY=function(){this._format=44,this._textures=[],this._buffers=[]};kY.WIDTH=256,kY.HEIGHT=3;var RY,FY,LY,NY,VY,zY,UY,GY,HY,WY,jY,qY,XY,YY,KY,JY,QY,ZY,$Y,tK,eK,iK,nK,rK,sK,aK,oK,hK,uK,lK,cK,fK,_K=function(t){function e(){var e;return(e=t.call(this)||this)._buffers=[],e._dataArray=[],e._joints=[],e._bufferIndices=null,e._realTimeJointTexture=new kY,e._realTimeTextureMode=!1,e.type=1,e}s(e,t);var i=e.prototype;return i.destroy=function(){if(this.bindSkeleton(),this._buffers.length){for(var e=0;e=0?a.instancedAttributeBlock.views[r][0]=i.data[0]:n=!0}return n&&i.dirty&&(i.buffer.update(i.data),i.dirty=!1),!0},i.getMacroPatches=function(e){var i=t.prototype.getMacroPatches.call(this,e);return i?i.concat(dK):dK},i.uploadAnimation=function(t){if(this._skeleton&&this._mesh&&this.uploadedAnim!==t){this.uploadedAnim=t;var e=this._dataPoolManager,i=null;t?(i=e.jointTexturePool.getSequencePoseTexture(this._skeleton,t,this._mesh,this.transform),this._jointsMedium.boundsInfo=i&&i.bounds.get(this._mesh.hash),this._modelBounds=null):(i=e.jointTexturePool.getDefaultPoseTexture(this._skeleton,this._mesh,this.transform),this._jointsMedium.boundsInfo=null,this._modelBounds=i&&i.bounds.get(this._mesh.hash)[0]),this._applyJointTexture(i)}},i._applyJointTexture=function(t){void 0===t&&(t=null);var e=this._jointsMedium.texture;if(e&&e!==t&&this._dataPoolManager.jointTexturePool.releaseHandle(e),this._jointsMedium.texture=t,t){var i=this._jointsMedium,n=i.buffer,r=i.jointTextureInfo;r[0]=t.handle.texture.width,r[1]=this._skeleton.joints.length,r[2]=t.pixelOffset+.1,r[3]=1/r[0],this.updateInstancedJointTextureInfo(),n&&n.update(r);for(var s=t.handle.texture,a=0;a=0&&s.length>0){var a=s[n];a[0]=i.data[0],a[1]=e[1],a[2]=e[2]}}},e}(qW),mK=t("aj",(RY=Kh("cc.SkinnedMeshRenderer"),FY=Qh(100),LY=Eu(Mj),NY=Eu(Qv),VY=Eu(Mj),zY=Eu(Qv),RY(UY=FY((GY=function(t){function e(){var e;return(e=t.call(this)||this)._skeleton=HY&&HY(),e._skinningRoot=WY&&WY(),e._clip=null,e.associatedAnimation=null,e._modelType=pK,e}s(e,t);var i=e.prototype;return i.onLoad=function(){t.prototype.onLoad.call(this),this._tryBindAnimation()},i.onDestroy=function(){this.associatedAnimation&&(this.associatedAnimation.notifySkinnedMeshRemoved(this),this.associatedAnimation),t.prototype.onDestroy.call(this)},i.uploadAnimation=function(t){this._clip=t,this.model&&this.model.uploadAnimation&&this.model.uploadAnimation(t)},i.setUseBakedAnimation=function(t,e){void 0===t&&(t=!0),void 0===e&&(e=!1);var i=t?pK:_K;(e||this._modelType!==i)&&(this._modelType=i,this._model&&(T.director.root.destroyModel(this._model),this._model=null,this._models.length=0,this._updateModels(),this._updateCastShadow(),this._updateReceiveShadow(),this._updateUseLightProbe(),this.enabledInHierarchy&&this._attachToScene()))},i.setSharedMaterial=function(e,i){t.prototype.setSharedMaterial.call(this,e,i),this._modelType===_K&&this.getMaterialInstance(i)},i._updateModelParams=function(){this._update(),t.prototype._updateModelParams.call(this)},i._tryBindAnimation=function(){var t=this._skinningRoot;if(t){for(var e=!1,i=this.node;i;i=i.parent)if(i===t){e=!0;break}if(e){var n=t.getComponent("cc.SkeletalAnimation");n&&n.enabledInHierarchy?n.notifySkinnedMeshAdded(this):this.setUseBakedAnimation(!1)}}},i._update=function(){this.model&&(this.model.bindSkeleton(this._skeleton,this._skinningRoot,this._mesh),this.model.uploadAnimation&&this.model.uploadAnimation(this._clip))},n(e,[{key:"skeleton",get:function(){return this._skeleton},set:function(t){t!==this._skeleton&&(this._skeleton=t,this._update())}},{key:"skinningRoot",get:function(){return this._skinningRoot},set:function(t){t!==this._skinningRoot&&(this._skinningRoot=t,this._tryBindAnimation(),this._update())}},{key:"model",get:function(){return this._model}}]),e}(fj),HY=Vh(GY.prototype,"_skeleton",[LY],(function(){return null})),WY=Vh(GY.prototype,"_skinningRoot",[NY],(function(){return null})),v(GY.prototype,"skeleton",[VY],Object.getOwnPropertyDescriptor(GY.prototype,"skeleton"),GY.prototype),v(GY.prototype,"skinningRoot",[zY],Object.getOwnPropertyDescriptor(GY.prototype,"skinningRoot"),GY.prototype),UY=GY))||UY)||UY)),gK=new xd("a_batch_id",11),yK=new xd("a_batch_uv",21),vK=Zd[gK.format].size+Zd[yK.format].size,bK=t("al",(jY=Kh("cc.SkinnedMeshUnit"),qY=Eu(Dk),XY=Eu(Mj),YY=Eu(NT),KY=Eu(mK),jY((QY=function(){function t(){this.mesh=ZY&&ZY(),this.skeleton=$Y&&$Y(),this.material=tK&&tK(),this._localTransform=eK&&eK(),this._offset=iK&&iK(),this._size=nK&&nK()}return n(t,[{key:"offset",get:function(){return this._offset},set:function(t){_s.copy(this._offset,t)}},{key:"size",get:function(){return this._size},set:function(t){_s.copy(this._size,t)}},{key:"copyFrom",get:function(){return null},set:function(t){t&&(this.mesh=t.mesh,this.skeleton=t.skeleton,this.material=t.getSharedMaterial(0),t.skinningRoot&&sY(t.node,t.skinningRoot,this._localTransform))}}]),t}(),ZY=Vh(QY.prototype,"mesh",[qY],(function(){return null})),$Y=Vh(QY.prototype,"skeleton",[XY],(function(){return null})),tK=Vh(QY.prototype,"material",[YY],(function(){return null})),eK=Vh(QY.prototype,"_localTransform",[hu],(function(){return new Kr})),iK=Vh(QY.prototype,"_offset",[hu],(function(){return new _s(0,0)})),nK=Vh(QY.prototype,"_size",[hu],(function(){return new _s(1,1)})),v(QY.prototype,"copyFrom",[KY],Object.getOwnPropertyDescriptor(QY.prototype,"copyFrom"),QY.prototype),JY=QY))||JY)),SK=new Kr;new Kr;var xK,wK,TK,AK,CK,DK,BK,IK,MK,PK,EK,OK,kK,RK,FK,LK,NK,VK=new er,zK=t("ak",(rK=Kh("cc.SkinnedMeshBatchRenderer"),sK=Qh(100),aK=Eu([fi]),oK=Eu([bK]),rK(hK=sK((uK=function(t){function e(){var e;return(e=t.call(this)||this).atlasSize=lK&&lK(),e.batchableTextureNames=cK&&cK(),e.units=fK&&fK(),e._textures={},e._batchMaterial=null,e}s(e,t);var i=e.prototype;return i.onLoad=function(){t.prototype.onLoad.call(this),this.cook()},i.onDestroy=function(){for(var e in this._textures)this._textures[e].destroy();this._textures={},this._mesh&&(this._mesh.destroy(),this._mesh=null),t.prototype.onDestroy.call(this)},i._onMaterialModified=function(e){this.cookMaterials(),t.prototype._onMaterialModified.call(this,e,this.getMaterialInstance(e))},i.cook=function(){this.cookMaterials(),this.cookSkeletons(),this.cookMeshes()},i.cookMaterials=function(){var t=this;this._batchMaterial||(this._batchMaterial=this.getSharedMaterial(0));var e=this.getMaterialInstance(0);if(e&&this._batchMaterial&&this._batchMaterial.effectAsset){e.copy(this._batchMaterial),this.resizeAtlases();for(var i=e.effectAsset.techniques[e.technique],n=function(n){var r=i.passes[n];if(!r.properties)return 1;var s=function(i){if(r.properties[i].type>=26){var s=null;t.batchableTextureNames.find((function(t){return t===i}))?((s=t._textures[i])||(s=t.createTexture(i)),t.cookTextures(s,i,n)):t.units.some((function(t){return s=t.material&&t.material.getProperty(i,n)})),s&&e.setProperty(i,s,n)}else{for(var a=[],o=0;o=0)return 1;t.push(i),e.push(Kr.multiply(new Kr,r.bindposes[a]||Kr.IDENTITY,SK))},a=0;at[i]?1:t[e]0&&_.copyBuffersToTexture(s,f,a),n.length>0&&_.copyTexImagesToTexture(n,f,r)},i.createTexture=function(t){var e=new By;return e.setFilters(2,2),e.setMipFilter(1),e.reset({width:this.atlasSize,height:this.atlasSize,format:35}),this._textures[t]=e,e},i.resizeAtlases=function(){for(var t in this._textures)this._textures[t].reset({width:this.atlasSize,height:this.atlasSize,format:35})},i._createUnitMesh=function(t,e){for(var i=JSON.parse(JSON.stringify(e.struct)),n={},r=0;rthis._renderers.length)&&(t=this._renderers.length),this._renderers.splice(t,0,e);var i=!1;return e.model&&(i=!0,this._LODData.addModel(e.model)),this._modelAddedCallback&&i&&this._modelAddedCallback(),e},e.deleteRenderer=function(t){var e,i=this._renderers.splice(t,1),n=i.length>0?null==(e=i[0])?void 0:e.model:null;return n&&this._LODData.eraseModel(n),i[0]},e.getRenderer=function(t){return this._renderers[t]||null},e.setRenderer=function(t,e){t<0||t>=this.rendererCount?Y("setRenderer to LOD error, index out of range"):(this.deleteRenderer(t),this.insertRenderer(t,e))},n(t,[{key:"screenUsagePercentage",get:function(){return this._screenUsagePercentage},set:function(t){this._screenUsagePercentage=t,this._LODData.screenUsagePercentage=t}},{key:"renderers",get:function(){return this._renderers},set:function(t){if(t!==this._renderers){var e=!1;this._renderers.length=0,this._LODData.clearModels();for(var i=0;ithis.lodCount)&&(t=this.lodCount),i||(i=new GK),i.modelAddedCallback=this.onLodModelAddedCallback.bind(this),!e){var n=this.getLOD(t-1),r=this.getLOD(t);if(n&&r)e=(n.screenUsagePercentage+r.screenUsagePercentage)/2;else if(n&&!r)(e=n.screenUsagePercentage/2)>.01&&(e=.01);else if(r&&!n){e=r.screenUsagePercentage;var s=this.getLOD(t+1);r.screenUsagePercentage=(e+(s?s.screenUsagePercentage:0))/2}else e=UK[0]}return i.screenUsagePercentage=e,this._LODs.splice(t,0,i),this._lodGroup.insertLOD(t,i.lodData),this._updateDataToScene(),this.node&&this._emitChangeNode(this.node),i},i.eraseLOD=function(t){if(t<0||t>=this.lodCount)return X("eraseLOD error, index out of range"),null;var e=this._LODs[t];return e?(this._LODs.splice(t,1),this._lodGroup.eraseLOD(t),this._updateDataToScene(),this._emitChangeNode(this.node),e):(X("eraseLOD error, LOD not exist at specified index."),null)},i.getLOD=function(t){return t<0||t>=this.lodCount?(X("getLOD error, index out of range"),null):this._LODs[t]},i.setLOD=function(t,e){t<0||t>=this.lodCount?X("setLOD error, index out of range"):(this._LODs[t]=e,e.modelAddedCallback=this.onLodModelAddedCallback.bind(this),this.lodGroup.updateLOD(t,e.lodData),this._updateDataToScene())},i.recalculateBounds=function(){for(var t=new er,e=new er,i=null,n=new er,r=0;r0&&this._lodGroup.lodCount<1&&this._LODs.forEach((function(e,i){e.lodData.screenUsagePercentage=e.screenUsagePercentage;var n=e.renderers;if(null!==n&&n.length>0)for(var r=0;r1?e[1]:null},e._getModelsByProbe=function(t){var e=[],i=this._useCubeModels;1===t.probeType&&(i=this._usePlanarModels);for(var n,r=p(i.entries());!(n=r()).done;){var s=n.value;s[1]===t&&e.push(s[0])}return e},e._removeDependentModels=function(t){for(var e,i=p(this._useCubeModels.keys());!(e=i()).done;){var n=e.value,r=this._useCubeModels.get(n);void 0!==r&&r===t&&(this._useCubeModels.delete(n),this.selectReflectionProbe(n))}for(var s,a=p(this._usePlanarModels.keys());!(s=a()).done;){var o=s.value,h=this._usePlanarModels.get(o);void 0!==h&&h===t&&(this._usePlanarModels.delete(o),this.selectPlanarReflectionProbe(o))}},e._updateCubemapOfModel=function(t,e){var i=t.node;if(i){var n=i.getComponent(fj);if(n&&(n.updateProbeCubemap(e?e.cubemap:null),n.updateReflectionProbeId(e&&e.cubemap?e.getProbeId():-1),e&&(n.updateReflectionProbeDataMap(this._dataTexture),this._isUsedBlending(t)))){var r=this._getBlendProbe(t);this._updateBlendProbeInfo(t,e,r)}}},e._updatePlanarMapOfModel=function(t,e,i){var n=t.node.getComponent(fj);n&&(n.updateProbePlanarMap(e),i?(n.updateReflectionProbeId(i.getProbeId()),n.updateReflectionProbeDataMap(this._dataTexture)):n.updateReflectionProbeId(-1))},e._isUsedBlending=function(t){return 3===t.reflectionProbeType||4===t.reflectionProbeType},e._updateBlendProbeInfo=function(t,e,i){var n=t.node;if(n){var r=n.getComponent(fj);r&&(r.updateReflectionProbeBlendId(-1),4===t.reflectionProbeType&&r.updateReflectionProbeBlendWeight(this._calculateBlendWeight(t,e,i)))}},e._updateBlendCubemap=function(t,e){var i=t.node;if(i&&this._isUsedBlending(t)){var n=i.getComponent(fj);n&&n.updateProbeBlendCubemap(e.cubemap)}},e._calculateBlendWeight=function(t,e,i){if(i){var n=er.distance(t.node.worldPosition,e.node.worldPosition),r=er.distance(t.node.worldPosition,i.node.worldPosition);return 1-r/(n+r)}return 3===t.reflectionProbeType?0:4===t.reflectionProbeType?this._calculateBlendOfSkybox(t.worldBounds,e.boundingBox):0},e._calculateBlendOfSkybox=function(t,e){if(!t)return 1;var i=new er,n=new er,r=new er,s=new er;if(er.subtract(i,t.center,t.halfExtents),er.add(n,t.center,t.halfExtents),er.subtract(r,e.center,e.halfExtents),er.add(s,e.center,e.halfExtents),i.x<=s.x&&n.x>=r.x&&i.y<=s.y&&n.y>=r.y&&i.z<=s.z&&n.z>=r.z){var a=new er;er.multiplyScalar(a,t.halfExtents,2);var o=i.x+a.x<=s.x&&n.x+a.x>=r.x,h=i.x-a.x<=s.x&&n.x-a.x>=r.x,u=i.y+a.y<=s.y&&n.y+a.y>=r.y,l=i.y-a.y<=s.y&&n.y-a.y>=r.y,c=i.z+a.z<=s.z&&n.z+a.z>=r.z,f=i.z-a.z<=s.z&&n.z-a.z>=r.z,_=[];if(!o){var d=n.x-s.x;_.push(d/a.x)}if(!h){var p=Math.abs(i.x-r.x);_.push(p/a.x)}if(!u){var m=n.y-s.y;_.push(m/a.y)}if(!l){var g=Math.abs(i.y-r.y);_.push(g/a.y)}if(!c){var y=n.z-s.z;_.push(y/a.z)}if(!f){var v=Math.abs(i.z-r.z);_.push(v/a.z)}return _.length>0?(_.sort((function(t,e){return e-t})),_[0]):0}return 1},n(t,[{key:"updateForRuntime",get:function(){return this._updateForRuntime},set:function(t){this._updateForRuntime=t}}]),t}());function jK(t){return void 0===(t=t||{}).includeNormal&&(t.includeNormal=!0),void 0===t.includeUV&&(t.includeUV=!0),t}WK.probeManager=void 0,WK.probeManager=new WK,T.internal.reflectionProbeManager=WK.probeManager;var qK=new er,XK=new er,YK=new er,KK=new er,JK=new er,QK=new er,ZK=new er,$K=new er,tJ=new er,eJ=new er,iJ=new er,nJ=new er,rJ=new er(0,0,0),sJ=new er(0,0,0);function aJ(t,e,i,n){void 0===t&&(t=.5),void 0===e&&(e=.5),void 0===i&&(i=2),void 0===n&&(n={});var r=.5*i,s=n.radialSegments||32,a=n.heightSegments||1,o=void 0===n.capped||n.capped,h=n.arc||2*Math.PI,u=0;o&&(t>0&&u++,e>0&&u++);var l=(s+1)*(a+1);o&&(l+=(s+1)*u+s*u);var c=s*a*6;o&&(c+=s*u*3);var f=new Array(c),_=new Array(3*l),d=new Array(3*l),p=new Array(2*l),m=Math.max(t,e),g=new er(-m,-r,-m),y=new er(m,r,m),v=Math.sqrt(m*m+r*r),b=0,S=0;return function(){for(var n=[],o=t-e,u=o*o/i*Math.sign(o),l=0;l<=a;l++){for(var c=[],m=l/a,g=m*o+e,y=0;y<=s;++y){var v=y/s,x=v*h,w=Math.sin(x),T=Math.cos(x);_[3*b]=g*w,_[3*b+1]=m*i-r,_[3*b+2]=g*T,er.normalize(rJ,er.set(sJ,w,-u,T)),d[3*b]=rJ.x,d[3*b+1]=rJ.y,d[3*b+2]=rJ.z,p[2*b]=2*(1-v)%1,p[2*b+1]=m,c.push(b),++b}n.push(c)}for(var A=0;A0&&x(!1),t>0&&x(!0)),{positions:_,normals:d,uvs:p,indices:f,minPos:g,maxPos:y,boundingRadius:v};function x(i){for(var n=i?t:e,a=i?1:-1,o=b,u=1;u<=s;++u)_[3*b]=0,_[3*b+1]=r*a,_[3*b+2]=0,d[3*b]=0,d[3*b+1]=a,d[3*b+2]=0,p[2*b]=.5,p[2*b+1]=.5,++b;for(var l=b,c=0;c<=s;++c){var m=c/s*h,g=Math.cos(m),y=Math.sin(m);_[3*b]=n*y,_[3*b+1]=r*a,_[3*b+2]=n*g,d[3*b]=0,d[3*b+1]=a,d[3*b+2]=0,p[2*b]=.5-.5*y*a,p[2*b+1]=.5+.5*g,++b}for(var v=0;v0&&(n[n.length-1]=1),{positions:i,indices:n,minPos:{x:1,y:1,z:0},maxPos:{x:-1,y:-1,z:0},boundingRadius:1,primitiveMode:9}},cone:function(t,e,i){return void 0===t&&(t=.5),void 0===e&&(e=1),void 0===i&&(i={}),aJ(0,t,e,i)},cylinder:aJ,invWinding:function(t){for(var e=[],i=0;io?o<<16|a:a<<16|o;void 0===n[h]&&(n[h]=0,i.push(a,o))}return i},wireframed:function(t){var e=t.indices;if(!e)return t;if(t.primitiveMode&&7!==t.primitiveMode)return t;for(var i=[[0,1],[1,2],[2,0]],n=[],r={},s=0;sh?h<<16|o:o<<16|h;void 0===r[u]&&(r[u]=0,n.push(o,h))}return t.indices=n,t.primitiveMode=1,t}});t("g0",yJ);var vJ=new er;function bJ(t){return t.x=Math.abs(t.x),t.y=Math.abs(t.y),t.z=Math.abs(t.z),t}var SJ,xJ,wJ,TJ,AJ,CJ,DJ,BJ,IJ,MJ,PJ,EJ,OJ,kJ,RJ,FJ,LJ,NJ,VJ,zJ,UJ,GJ,HJ,WJ=Object.freeze({__proto__:null,CharacterTriggerEventObject:{type:"onControllerTriggerEnter",collider:null,characterController:null,impl:null},CollisionEventObject:{type:"onCollisionEnter",selfCollider:null,otherCollider:null,contacts:[],impl:null},TriggerEventObject:{type:"onTriggerEnter",selfCollider:null,otherCollider:null,impl:null},VEC3_0:vJ,absolute:bJ,cylinder:aJ,getWrap:function(t){return t.__cc_wrapper__},maxComponent:function(t){return Math.max(t.x,Math.max(t.y,t.z))},setWrap:function(t,e){t.__cc_wrapper__=e},shrinkPositions:function(t){var e=[],i={};if(t.length>=3){e[0]=t[0],e[1]=t[1],e[2]=t[2];for(var n=t.length,r=3;r0&&(this._delayTime-=t,this._delayTime>0)||(this._currentFramePlayed?this.time+=t*this._speed:this._currentFramePlayed=!0,this._process())},i.sample=function(){var t=this.getWrappedInfo(this.time,this._wrappedInfo);return this._sampleCurves(t.time),this._sampleEvents(t),this._sampleEmbeddedPlayers(t),t},i.onPlay=function(){var t;this.setTime(this._getPlaybackStart()),this._delayTime=this._delay,this._onReplayOrResume(),this.emit("play",this),null==(t=this._clipEmbeddedPlayerEval)||t.notifyHostPlay(this.current)},i.onStop=function(){var t;this.isPaused||this._onPauseOrStop(),this.emit("stop",this),null==(t=this._clipEmbeddedPlayerEval)||t.notifyHostStop()},i.onResume=function(){var t;this._onReplayOrResume(),this.emit("resume",this),null==(t=this._clipEmbeddedPlayerEval)||t.notifyHostPlay(this.current)},i.onPause=function(){var t;this._onPauseOrStop(),this.emit("pause",this),null==(t=this._clipEmbeddedPlayerEval)||t.notifyHostPause(this.current)},i._sampleCurves=function(t){var e=this._poseOutput,i=this._clipEval;e&&(e.weight=this.weight),i&&i.evaluate(t)},i._process=function(){this._useSimpleProcess?this.simpleProcess():this.process()},i.process=function(){var t,e=this.sample();this._allowLastFrame&&(t=this._lastWrapInfo?this._lastWrapInfo:this._lastWrapInfo=new rQ(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))},i.simpleProcess=function(){var t=this._playbackRange.min,e=this._playbackDuration,i=0,n=0;if(0!==e&&((i=this.time%e)<0&&(i+=e),n=(t+i)*this._invDuration),this._sampleCurves(t+i),this._clipEventEval||this._clipEmbeddedPlayerEval){var r=this.getWrappedInfo(this.time,this._wrappedInfo);this._sampleEvents(r),this._sampleEmbeddedPlayers(r)}this._allowLastFrame&&(Number.isNaN(this._lastIterations)&&(this._lastIterations=n),(this.time>0&&this._lastIterations>n||this.time<0&&this._lastIterations0&&(t-=1),1&t&&(i=!i)),36&~e||(i=!i),i},i.getWrappedInfo=function(t,e){e=e||new rQ;var i=this._playbackRange.min,n=this._playbackDuration,r=this.repeatCount;if(0===n)return e.time=0,e.ratio=0,e.direction=1,e.stopped=!!Number.isFinite(r),e.iterations=0,e;var s=!1,a=(t-=i)>0?t/n:-t/n;if(a>=r){a=r,s=!0;var o=r-(0|r);0===o&&(o=1),t=o*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 u=!1,l=4&this._wrapMode;l&&(u=this._needReverse(a));var c=u?-1:1;return this.speed<0&&(c*=-1),l&&u&&(t=n-t),e.time=i+t,e.ratio=e.time/this.duration,e.direction=c,e.stopped=s,e.iterations=a,e},i._getPlaybackStart=function(){return this._playbackRange.min},i._sampleEvents=function(t){var e;null==(e=this._clipEventEval)||e.sample(t.ratio,t.direction,t.iterations)},i._sampleEmbeddedPlayers=function(t){var e;null==(e=this._clipEmbeddedPlayerEval)||e.evaluate(t.time,Math.trunc(t.iterations))},i._emit=function(t,e){this._target&&this._target.isValid&&this._target.emit(t,t,e)},i._onReplayOrResume=function(){aQ().addAnimation(this)},i._onPauseOrStop=function(){aQ().removeAnimation(this)},n(e,[{key:"clip",get:function(){return this._clip}},{key:"name",get:function(){return this._name}},{key:"length",get:function(){return this.duration}},{key:"wrapMode",get:function(){return this._wrapMode},set:function(t){var e;this._wrapMode=t,this.time=0,this.repeatCount=2&t?1/0:1,null==(e=this._clipEventEval)||e.setWrapMode(t)}},{key:"repeatCount",get:function(){return this._repeatCount},set:function(t){this._repeatCount=t;var e=4&this._wrapMode,i=!(36&~this.wrapMode);this._useSimpleProcess=t===1/0&&!e&&!i}},{key:"delay",get:function(){return this._delay},set:function(t){this._delayTime=this._delay=t}},{key:"playbackRange",get:function(){return this._playbackRange},set:function(t){t.max,t.min,this._playbackRange.min=Math.max(t.min,0),this._playbackRange.max=Math.min(t.max,this.duration),this._playbackDuration=this._playbackRange.max-this._playbackRange.min,this.setTime(0)}},{key:"speed",get:function(){return this._speed},set:function(t){var e;this._speed=t,null==(e=this._clipEmbeddedPlayerEval)||e.notifyHostSpeedChanged(t)}},{key:"current",get:function(){return this.getWrappedInfo(this.time).time}},{key:"ratio",get:function(){return 0===this.duration?0:this.current/this.duration}},{key:"weight",get:function(){return this._weight},set:function(t){this._weight=t,this._poseOutput&&(this._poseOutput.weight=t)}},{key:"curveLoaded",get:function(){return this._curveLoaded}}]),e}(iQ));T.AnimationState=cQ,Kh(ZJ+"EmbeddedAnimationClipPlayable")((hQ=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;re){var i;(i=this._channels).push.apply(i,Array.from({length:t-e},(function(){return new QQ(new Yl)})))}}}]),e}(JQ),KQ=Vh(YQ.prototype,"_channels",[tZ],(function(){return[]})),YQ));var eZ,iZ,nZ,rZ,sZ,aZ,oZ,hZ,uZ,lZ,cZ,fZ,_Z,dZ=function(){function t(t){this._curves=t,this._result=new Array(t.length).fill(0)}return t.prototype.evaluate=function(t){for(var e=this._result,i=e.length,n=0;n=t.passes.length)st(3941,t.name,e);else{var r=t.passes[e],s=r.getHandle(i);if(s){if(XS(s)<26){var a=void 0===n?s:r.getHandle(i,n,13);return a?mZ(r,i)?{set:function(t){r.setUniformArray(a,t)}}:{set:function(t){r.setUniform(a,t)}}:void st(3943,t.name,e,i,n)}var o=YS(s),h=r.properties[i],u=h&&h.value?""+h.value+nx(h.type):ix(h.type),l=fT.get(u);return l||(X("Illegal texture default value: "+u+"."),l=fT.get("default-texture")),{set:function(t){t||(t=l);var e=t.getGFXTexture();e&&e.width&&e.height&&(r.bindTexture(o,e),t instanceof Wm&&r.bindSampler(o,zp.gfxDevice.getSampler(t.getSamplerInfo())))}}}st(3942,t.name,e,i)}}else st(3940,t)},t}(),nZ=Vh(iZ.prototype,"passIndex",[hu],(function(){return 0})),rZ=Vh(iZ.prototype,"uniformName",[hu],(function(){return""})),sZ=v(iZ.prototype,"channelIndex",[Iu],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){}}),eZ=iZ))||eZ;function mZ(t,e){for(var i,n=p(t.shaderInfo.blocks);!(i=n()).done;)for(var r,s=p(i.value.members);!(r=s()).done;){var a=r.value;if(a.name===e)return a.count>1}return!1}var gZ,yZ,vZ,bZ,SZ,xZ=Kh("cc.animation.MorphWeightValueProxy")((oZ=function(){function t(){this.subMeshIndex=hZ&&hZ(),this.shapeIndex=uZ&&uZ()}return t.prototype.forTarget=function(t){var e=this;return{set:function(i){t.setWeight(i,e.subMeshIndex,e.shapeIndex)}}},t}(),hZ=Vh(oZ.prototype,"subMeshIndex",[hu],(function(){return 0})),uZ=Vh(oZ.prototype,"shapeIndex",[hu],(function(){return 0})),aZ=oZ))||aZ,wZ=Kh("cc.animation.MorphWeightsValueProxy")((cZ=function(){function t(){this.subMeshIndex=fZ&&fZ()}return t.prototype.forTarget=function(t){var e=this;return{set:function(i){t.setWeights(i,e.subMeshIndex)}}},t}(),fZ=Vh(cZ.prototype,"subMeshIndex",[hu],(function(){return 0})),lZ=cZ))||lZ,TZ=Kh("cc.animation.MorphWeightsAllValueProxy")(_Z=function(){function t(){}return t.prototype.forTarget=function(t){return{set:function(e){for(var i,n,r=null!==(i=null==(n=t.mesh)?void 0:n.struct.primitives.length)&&void 0!==i?i:0,s=0;s2?i-2:0),r=2;r>1},set:function(t){this._flags&=-7,this._flags|=t<<1}}]),t}(),d$=Vh(_$.prototype,"_flags",[hu],(function(){return 0})),f$=_$))||f$,C$=function(t){function e(e,i){var n;return(n=t.call(this,2)||this).resetMode=0,n._value=void 0,n.resetMode=i,n._value=e,n}s(e,t);var i=e.prototype;return i.getValue=function(){return this._value},i.setValue=function(t){this._value=t},e}(x$),D$=Kh("cc.animation.Vec3Variable")((m$=function(){function t(){this._value=g$&&g$()}return t.prototype[S$]=function(){return new B$(this.value)},n(t,[{key:"type",get:function(){return 4}},{key:"value",get:function(){return this._value},set:function(t){er.copy(this._value,t)}}]),t}(),g$=Vh(m$.prototype,"_value",[hu],(function(){return new er})),p$=m$))||p$,B$=function(t){function e(e){var i;return(i=t.call(this,4)||this)._value=new er,er.copy(i._value,e),i}s(e,t);var i=e.prototype;return i.getValue=function(){return this._value},i.setValue=function(t){er.copy(this._value,t)},e}(x$),I$=Kh("cc.animation.QuatVariable")((v$=function(){function t(){this._value=b$&&b$()}return t.prototype[S$]=function(){return new M$(this._value)},n(t,[{key:"type",get:function(){return 5}},{key:"value",get:function(){return this._value},set:function(t){Or.copy(this._value,t)}}]),t}(),b$=Vh(v$.prototype,"_value",[hu],(function(){return new Or})),y$=v$))||y$,M$=function(t){function e(e){var i;return(i=t.call(this,5)||this)._value=new Or,Or.copy(i._value,e),i}s(e,t);var i=e.prototype;return i.getValue=function(){return this._value},i.setValue=function(t){Or.copy(this._value,t)},e}(x$);function P$(t,e){var i;switch(t){case 0:case 3:case 1:i=new w$(t);break;case 2:i=new A$;break;case 4:i=new D$;break;case 5:i=new I$;break;default:throw new Error("Unknown variable type "+t)}return void 0!==e&&(i.value=e),i}var E$,O$,k$,R$,F$,L$,N$=function(t){function e(e){var i;return(i=t.call(this,e+" transition is invalid")||this).name="TransitionRejectError",i}return s(e,t),e}(l(Error)),V$=function(t){function e(e){return t.call(this,"Graph variable "+e+" is not defined")||this}return s(e,t),e}(l(Error)),z$=function(t){function e(e,i,n){return t.call(this,"Expect graph variable "+e+" to have type '"+i+"' instead of received '"+(null!=n?n:typeof n)+"'")||this}return s(e,t),e}(l(Error)),U$=1,G$=-4192741,H$=[];function W$(t){return"function"==typeof t._instantiate}function j$(t){var e;if(yo(t)){if(W$(t))return T.game._isCloning=!0,e=t._instantiate(null,!0),T.game._isCloning=!1,e;if(t instanceof T.Asset)throw new TypeError(ct(6903))}return T.game._isCloning=!0,e=q$(t),T.game._isCloning=!1,e}function q$(t,e){var i;Y$(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=0&&this._bindings.splice(e,1)},i.moveArrayElementBindingForward=function(t,e,i){for(var n=this._bindings,r=[],s=0;s=e&&(r.push(a),n.splice(s,1))}for(var l=0,c=r;l=0?this._bindings[e]:void 0},i._findBindingIndex=function(t){return this._bindings.findIndex((function(e){return P0(e.inputPath,t)}))},i._emplaceBinding=function(t){var e=this._bindings.findIndex((function(e){return P0(e.inputPath,t.inputPath)}));e>=0?this._bindings[e]=t:this._bindings.push(t)},e}(Gu),w0=Vh(x0.prototype,"_bindings",[hu],(function(){return[]})),S0=x0))||S0;function P0(t,e){var i=t[0],n=t[1],r=e[0],s=e[1];return i===r&&n===s}var E0=Kh(ZJ+"PoseGraphNodeInputBinding")((A0=function(){function t(t,e,i){this._inputPath=C0&&C0(),this._producer=D0&&D0(),this._outputIndex=B0&&B0(),this._inputPath=t,this._producer=e,void 0!==i&&(this._outputIndex=i)}return n(t,[{key:"inputPath",get:function(){return this._inputPath}},{key:"producer",get:function(){return this._producer}},{key:"outputIndex",get:function(){return this._outputIndex}}]),t}(),C0=Vh(A0.prototype,"_inputPath",[hu],null),D0=Vh(A0.prototype,"_producer",[hu],null),B0=Vh(A0.prototype,"_outputIndex",[hu],(function(){return 0})),T0=A0))||T0,O0=function(t){function e(e){return t.call(this,"Can not add the specified "+e.toString()+" since it has already been added into another graph.")||this}return s(e,t),e}(l(Error)),k0=function(t){function e(e){return t.call(this,"Can not perform specified operation on "+e.toString()+" since it has not been added in to graph.")||this}return s(e,t),e}(l(Error)),R0=function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e}(Gu),F0=new WeakMap;function L0(t){var e=F0.get(t);if(e)return e;var i={};return F0.set(t,i),i}function N0(t){return function(e){if(ee(e,R0)||(Y("This kind of decorator should only be applied to pose graph node classes."),0)){var i=L0(e);t(i)}}}var V0=function(t){return N0((function(e){e.category=t}))},z0=function(t){return N0((function(e){e.factory=t}))},U0=function(t){return void 0===t&&(t=!0),N0((function(e){e.hide=t}))},G0=function(t){return N0((function(e){var i;Object.assign(null!==(i=e.appearance)&&void 0!==i?i:e.appearance={},t)}))};var H0=["arraySyncGroup"],W0=function(){function t(){this._classInputMap=new WeakMap}var e=t.prototype;return e.setPropertyNodeInputRecord=function(t,e,i){var n=this._classInputMap.get(t);n||(n={properties:{}},this._classInputMap.set(t,n)),i.arraySyncGroup;var r=c(i,H0),s=i.arraySyncGroup;if(s){var a,o;n.arraySyncGroups||(n.arraySyncGroups={});var h=null!==(o=(a=n.arraySyncGroups)[s])&&void 0!==o?o:a[s]={members:[]};h.members.includes(e)||h.members.push(e),r.arraySyncGroup=h}n.properties[e]=Object.freeze(r)},e.getInputKeys=function(t){var e=this,i=[];return function n(r){if(r){n(te(r));var s=e._classInputMap.get(r);if(s)for(var a=function(){var e=h[o][0];if(i.findIndex((function(t){var i=t[0];return e===i}))>=0)return 1;var n=t[e];if(Array.isArray(n))for(var r=0;r=a.length)return;var o,h,u=null!==(o=null==(h=s.getArrayElementDisplayName)?void 0:h.call(t,r))&&void 0!==o?o:s.displayName;return{type:s.type,displayName:u,deletable:!(s.arraySyncGroup&&s.arraySyncGroupFollower),insertPoint:!0}}return{type:s.type,displayName:s.displayName}}},e.hasInput=function(t,e){var i=e[0],n=e[1],r=void 0===n?-1:n;if(!this._getPropertyNodeInputRecord(t.constructor,i))return!1;var s=t[i];return!Array.isArray(s)||!(r<0||r>=s.length)},e.getInputInsertInfos=function(t){for(var e={},i=t.constructor;i;i=te(i)){var n=this._classInputMap.get(i);if(n)for(var r in n.properties){var s=n.properties[r],a=t[r];if(Array.isArray(a)){if(s.arraySyncGroup&&s.arraySyncGroupFollower)continue;e[r]={displayName:r}}}}return e},e.deleteInput=function(t,e,i){var n=i[0],r=i[1],s=void 0===r?-1:r,a=this._getPropertyNodeInputRecord(e.constructor,n);if(a){var o=e[n];if(Array.isArray(o)&&!(s<0||s>=o.length)){var h=a.arraySyncGroup;h?this._deleteInputInArraySyncGroup(t,e,h,o.length,s):q0(t,e,i)}}},e.insertInput=function(t,e,i){var n=i,r=this._getPropertyNodeInputRecord(e.constructor,n);if(r){var s=e[n];if(Array.isArray(s)){var a=s.length,o=r.arraySyncGroup;o?this._insertInputInArraySyncGroup(t,e,o,s.length,a):j0(t,e,[n,a],X0(r.type))}}},e._getPropertyNodeInputRecord=function(t,e){if(t){var i=this._classInputMap.get(t);if(i){var n=i.properties[e];if(n)return n}return this._getPropertyNodeInputRecord(te(t),e)}},e._insertInputInArraySyncGroup=function(t,e,i,n,r){for(var s=0;s=o.length||(n.deleteBinding(i),o.splice(a,1),n.moveArrayElementBindingForward(r,a+1,!0)))}function X0(t){switch(t){default:case 0:case 1:return 0;case 2:return!1;case 5:return null;case 3:return new er;case 4:return new Or}}var Y0,K0=new W0;ke({NO:0,LOCAL:1,COMPONENT:2});var J0,Q0,Z0,$0,t1,e1,i1=Kh(ZJ+"PoseNode")(Y0=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;rr)for(var h=r+1;h<=s;++h){var u=n[h],l=a.indexOf(u);a[o]=u,o=l}else if(r>s)for(var c=r-1;c>=s;--c){var f=n[c],_=a.indexOf(f);a[o]=f,o=_}a[o]=t,Hf(n,r,s)}},e.copyTo=function(t){for(var e,i=t._states.filter((function(e){switch(e){case t._entryState:case t._exitState:case t._anyState:return!0;default:return!1}})),n=p(i);!(e=n()).done;){var r=e.value;t.remove(r)}for(var s,a=new Map,o=p(this._states);!(s=o()).done;){var h=s.value;switch(h){case this._entryState:a.set(h,t._entryState);break;case this._exitState:a.set(h,t._exitState);break;case this._anyState:a.set(h,t._anyState);break;default:if(h instanceof g0||h instanceof D2||h instanceof b2||h instanceof x2){if(h instanceof b2&&!t._allowEmptyStates)continue;var u=j$(h);t._addState(u),a.set(h,u)}}}for(var l,c=p(this._transitions);!(l=c()).done;){var f=l.value;if(t._allowEmptyStates||!(f.from instanceof b2||f.to instanceof b2)){var _=a.get(f.from),d=a.get(f.to),m=t.connect(_,d);m.conditions=f.conditions.map((function(t){return t.clone()})),f.copyTo(m)}}},e.clone=function(){var t=new i(this._allowEmptyStates);return this.copyTo(t),t},e._addState=function(t){return this._states.push(t),t},n(i,[{key:"allowEmptyStates",get:function(){return this._allowEmptyStates}},{key:"entryState",get:function(){return this._entryState}},{key:"exitState",get:function(){return this._exitState}},{key:"anyState",get:function(){return this._anyState}}]),i}(Gu),W1=Vh(H1.prototype,"_states",[hu],(function(){return[]})),j1=Vh(H1.prototype,"_transitions",[hu],(function(){return[]})),q1=Vh(H1.prototype,"_entryState",[hu],null),X1=Vh(H1.prototype,"_exitState",[hu],null),Y1=Vh(H1.prototype,"_anyState",[hu],null),G1=H1))||G1,D2=Kh("cc.animation.SubStateMachine")((J1=function(t){function e(e){var i;return(i=t.call(this)||this)._stateMachine=Q1&&Q1(),i._stateMachine=new C2(e),i}return s(e,t),e.prototype.copyTo=function(e){t.prototype.copyTo.call(this,e),this._stateMachine.copyTo(e._stateMachine)},n(e,[{key:"stateMachine",get:function(){return this._stateMachine}}]),e}(s0),Q1=Vh(J1.prototype,"_stateMachine",[hu],null),K1=J1))||K1,B2=Kh(ZJ+"PoseGraphStash")(($1=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;r1e-6){n=!1;break}this._findRatio=n?L2:Oh}return t.prototype.sample=function(t){return this._findRatio(this.ratios,t)},t}());T.RatioSampler=O2;var k2=t("ax",function(){function t(e,i){this.types=void 0,this.type=null,this._values=[],this._lerp=void 0,this._duration=void 0,this._array=void 0,this._duration=i,this._values=e.values;var n=function(e){return"string"==typeof e?e:Array.isArray(e)?e[0]===e[1]&&e[2]===e[3]?t.Linear:t.Bezier(e):t.Linear};if(void 0!==e.easingMethod)this.type=n(e.easingMethod);else if(Array.isArray(e.easingMethods))this.types=e.easingMethods.map(n);else if(void 0!==e.easingMethods){this.types=new Array(this._values.length).fill(null);for(var r=0,s=Object.keys(e.easingMethods);r=e.ratios.length))return t.valueBetween(i,n-1,e.ratios[n-1],n,e.ratios[n]);n=e.ratios.length-1}return t.valueAt(n)}function F2(t,e){if("string"==typeof e){var i=Gl[e];i?t=i(t):ot(3906,e)}else Array.isArray(e)&&(t=Uc(e,t));return t}function L2(t,e){var i=t.length-1;if(0===i)return 0;var n=t[0];if(er)return i;var s=(e=(e-n)/(r-n))/(1/i),a=0|s,o=1e-6;return s-a=0)i=r;else{var s=~r,a=s-1;i=a;var o=t[s],h=t[a];n=(e-h)/(o-h)}return{index:i,ratio:n}}!function(){function t(){this._reset()}var e=t.prototype;e.calculate=function(t,e,i){if(this._reset(),!(e>i)){var n=t.length;if(n){var r=t[0],s=t[n-1],a=0,o=0;if(e=s)a=n-1,o=0;else{var h=k3(t,e);a=h.index,o=h.ratio}var u=0,l=0;if(i=s)u=n-1,l=0;else{var c=k3(t,i);u=c.index,l=c.ratio}var f=!o,_=!l;a!==u||o!==l?(f||(this.preLerpIndex=a,this.preLerpRatio=o),this.directKeyframesBegin=f?a:a+1,this.directKeyframesEnd=u+1,_||(this.postLerpIndex=u,this.postLerpRatio=l)):f?(this.directKeyframesBegin=a,this.directKeyframesEnd=a+1):(this.preLerpIndex=a,this.preLerpRatio=o)}}},e._reset=function(){this.preLerpIndex=-1,this.preLerpRatio=0,this.directKeyframesBegin=0,this.directKeyframesEnd=0,this.postLerpIndex=-1,this.postLerpRatio=0},n(t,[{key:"keyframesCount",get:function(){var t=this.preLerpIndex,e=this.directKeyframesBegin;return 0+(t<0?0:1)+(this.directKeyframesEnd-e)+(this.postLerpIndex<0?0:1)}}])}();var R3=function(){function t(t,e){this._nodeEvaluations=void 0,this._nodeEvaluations=t.map((function(t){return t.createEvaluator(e)}))}return t.prototype.evaluate=function(t){this._nodeEvaluations.forEach((function(e){e.evaluate(t)}))},t}(),F3=function(){function t(t,e,i,n,r){this._position=null,this._rotation=null,this._scale=null,e&&(this._position=J3(e.times,e.values,er,t,"position",r)),i&&(this._rotation=J3(i.times,i.values,Or,t,"rotation",r)),n&&(this._scale=J3(n.times,n.values,er,t,"scale",r))}return t.prototype.evaluate=function(t){if(this._position){var e=this._position.evaluator.evaluate(t);this._position.runtimeBinding.setValue(e)}if(this._rotation){var i=this._rotation.evaluator.evaluate(t);this._rotation.runtimeBinding.setValue(i)}if(this._scale){var n=this._scale.evaluator.evaluate(t);this._scale.runtimeBinding.setValue(n)}},t}(),L3=function(){function t(t,e,i){this._times=void 0,this._inputSampleResultCache={just:!1,index:-1,nextIndex:-1,ratio:0},this._values=void 0,this._prevValue=void 0,this._nextValue=void 0,this._resultValue=void 0,this._times=t,this._values=e,this._prevValue=new i,this._nextValue=new i,this._resultValue=new i}return t.prototype.evaluate=function(t){var e=this._times,i=this._values,n=this._resultValue;if(0===e.length)return n;var r=z3(e,t,this._inputSampleResultCache);return r.just?i.get(r.index,n):i.lerp(r.index,r.nextIndex,r.ratio,this._prevValue,this._nextValue,n),n},t}(),N3=function(){function t(t,e){this._nodeEvaluations=void 0,this._nodeEvaluations=t.map((function(t){return t.createEvaluatorForAnimationGraph(e)})).filter((function(t){return!!t}))}var e=t.prototype;return e.destroy=function(){for(var t=this._nodeEvaluations,e=t.length,i=0;is)i.just=!0,i.index=n-1;else{var a=Oh(t,e);if(a>=0)i.just=!0,i.index=a;else{var o=~a,h=o-1,u=t[h],l=t[o],c=(e-t[h])/(l-u);i.just=!1,i.index=h,i.nextIndex=o,i.ratio=c}}return i}var U3={uint8:Uint8Array,uint16:Uint16Array};function G3(t){switch(t.BYTES_PER_ELEMENT){default:case 4:return 0;case 8:return 1}}var H3,W3,j3,q3,X3=T3(ZJ+"QuantizedFloatArray")((g3=function(){function t(t,e,i,n){void 0===n&&(n=0),this.originalPrecision=y3&&y3(),this.min=v3&&v3(),this.extent=b3&&b3(),this.values=S3&&S3(),this.originalPrecision=t,this.values=e,this.extent=i,this.min=n}return t.prototype.toHashString=function(){var t=this.originalPrecision,e=this.min,i=this.extent,n=this.values;return t+" "+B3(e)+" "+B3(i)+" "+n.join(" ")},n(t,[{key:"quantizationType",get:function(){switch(this.values.BYTES_PER_ELEMENT){default:case 1:return"uint8";case 2:return"uint16"}}}]),t}(),y3=Vh(g3.prototype,"originalPrecision",[A3],null),v3=Vh(g3.prototype,"min",[A3],null),b3=Vh(g3.prototype,"extent",[A3],null),S3=Vh(g3.prototype,"values",[A3],null),m3=g3))||m3;function Y3(t,e){var i=U3[e],n=1<=0){var f=u.substring(0,c),_=h[f];_&&(l.parent=_)}}for(var d=this._createEvalWithBinder(void 0,(function(t){var e=t.parseTrsPath();if(e){var i=h[e.node];if(i)return L5(i,e.property)}}),void 0),p=0;p=0&&this._embeddedPlayers.splice(e,1)},i[A5]=function(){this._embeddedPlayers.length=0},i.getAuxiliaryCurveNames_experimental=function(){return this._auxiliaryCurveEntries.map((function(t){return t.name}))},i.hasAuxiliaryCurve_experimental=function(t){return!!this._findAuxiliaryCurveEntry(t)},i.addAuxiliaryCurve_experimental=function(t){var e=this._findAuxiliaryCurveEntry(t);return e||((e=new y5).name=t,this._auxiliaryCurveEntries.push(e)),e.curve},i.getAuxiliaryCurve_experimental=function(t){return this._findAuxiliaryCurveEntry(t).curve},i.renameAuxiliaryCurve_experimental=function(t,e){var i=this._findAuxiliaryCurveEntry(t);i&&(i.name=e)},i.removeAuxiliaryCurve_experimental=function(t){xe(this._auxiliaryCurveEntries,(function(e){return e.name===t}))},i._trySyncLegacyData=function(){this._legacyDataDirty&&(this._legacyDataDirty=!1,this.syncLegacyData())},i._createEvalWithBinder=function(t,e,i){this._legacyDataDirty&&(this._legacyDataDirty=!1,this.syncLegacyData());var n,r=[];i&&(n=this._createRootMotionEvaluation(t,i,r));for(var s,a=[],o=this._tracks,h=o.length,u=0;u=c&&t<=f?o?e!==u&&(h.stop(),h.play(),a.entered=!0):(h.play(),a.entered=!0):o&&(h.stop(),a.entered=!1),a.lastIterations=e,a.entered){var _=t-c;a.instantiatedPlayer.setTime(_)}}}},e.notifyHostSpeedChanged=function(t){for(var e=this._embeddedPlayers,i=this._embeddedPlayerEvaluationInfos,n=e.length,r=0;r0?(22&~s?h=n:e*=-1,o++):1===e&&h===n-1&&ra)break}h+=e,this._doFire(h,!0)}while(h!==r&&h>-1&&h=e.length||this._ignoreIndex===t))for(var i=e[t],n=i.events.length,r=0;r0?t/e:-t/e;if(o>=n){o=n,a=!0;var h=n-(0|n);0===h&&(h=1),t=h*e*(t>0?1:-1)}if(t>e){var u=t%e;t=0===u?e:u}else t<0&&0!=(t%=e)&&(t+=e);var l=!1,c=4&i;c&&(l=H5(i,o));var f=l?-1:1;return c&&l&&(t=e-t),s.time=t,s.ratio=s.time/e,s.direction=f,s.stopped=a,s.iterations=o,s}function H5(t,e){var i=!1;return 22&~t||(e-(0|e)==0&&e>0&&(e-=1),1&e&&(i=!i)),36&~t||(i=!i),i}var W5=new er,j5=new er,q5=new Or;new Or;var X5,Y5,K5=function(){function t(){this._position=new er,this._rotation=new Or,this._scale=er.clone(er.ONE)}return t.clone=function(e){var i=new t;return t.copy(i,e),i},t.setIdentity=function(t){return er.copy(t._position,er.ZERO),Or.copy(t._rotation,Or.IDENTITY),er.copy(t._scale,er.ONE),t},t.copy=function(t,e){return er.copy(t._position,e._position),Or.copy(t._rotation,e._rotation),er.copy(t._scale,e._scale),t},t.equals=function(t,e,i){return er.equals(t._position,e._position,i)&&Or.equals(t._rotation,e._rotation,i)&&er.equals(t._scale,e._scale,i)},t.strictEquals=function(t,e){return er.strictEquals(t._position,e._position)&&Or.strictEquals(t._rotation,e._rotation)&&er.strictEquals(t._scale,e._scale)},t.lerp=function(e,i,n,r){return 0===r?t.copy(e,i):1===r?t.copy(e,n):(er.lerp(e._position,i._position,n._position,r),Or.slerp(e._rotation,i._rotation,n._rotation,r),er.lerp(e._scale,i._scale,n._scale,r),e)},t.multiply=function(t,e,i){var n=Or.multiply(q5,e._rotation,i._rotation),r=er.multiply(W5,i._scale,e._scale),s=er.multiply(j5,i._position,e._scale);return er.transformQuat(s,s,e._rotation),er.add(s,s,e._position),er.copy(t._position,s),Or.copy(t._rotation,n),er.copy(t._scale,r),t},t.invert=function(t,e){var i=t._rotation,n=t._scale,r=t._position;return Or.invert(i,e._rotation),J5(n,e._scale,Ki),er.negate(r,e._position),er.multiply(r,r,n),er.transformQuat(r,r,i),t},t.fromMatrix=function(t,e){return Kr.toSRT(e,t._rotation,t._position,t._scale),t},t.toMatrix=function(t,e){return Kr.fromSRT(t,e._rotation,e._position,e._scale)},n(t,[{key:"position",get:function(){return this._position},set:function(t){er.copy(this._position,t)}},{key:"rotation",get:function(){return this._rotation},set:function(t){Or.copy(this._rotation,t)}},{key:"scale",get:function(){return this._scale},set:function(t){er.copy(this._scale,t)}}]),t}();function J5(t,e,i){var n=e.x,r=e.y,s=e.z;return er.set(t,Math.abs(n)<=i?0:1/n,Math.abs(r)<=i?0:1/r,Math.abs(s)<=i?0:1/s)}function Q5(t,e,i){return er.subtract(t.position,e.position,i.position),e4(t.rotation,i.rotation,e.rotation),er.subtract(t.scale,e.scale,i.scale),t}N5=K5,K5.IDENTITY=Object.freeze(new N5),K5.ZERO=Object.freeze(function(){var t=new N5;return er.copy(t._position,er.ZERO),Or.set(t._rotation,0,0,0,0),er.copy(t._scale,er.ZERO),t}()),K5.calculateRelative=(X5=new Or,Y5=new er,function(t,e,i){var n=Or.invert(X5,i._rotation),r=J5(Y5,i._scale,Ki),s=er.subtract(j5,e._position,i._position);return er.transformQuat(s,s,n),er.multiply(s,s,r),er.copy(t._position,s),Or.multiply(t._rotation,n,e._rotation),er.multiply(t._scale,e._scale,r),t});var Z5,$5,t4=(Z5=new Or,function(t,e,i,n){er.scaleAndAdd(t.position,e.position,i.position,n);var r=Or.slerp(Z5,Or.IDENTITY,i.rotation,n);return Or.multiply(t.rotation,r,e.rotation),er.scaleAndAdd(t.scale,e.scale,i.scale,n),t}),e4=($5=new Or,function(t,e,i){var n=Or.invert($5,e);return Or.multiply(t,i,n)}),i4=Object.freeze(function(){var t=new K5;return t.position=er.ZERO,t.rotation=Or.IDENTITY,t.scale=er.ZERO,t}()),n4=function(){function t(t,e){this.transforms=void 0,this.auxiliaryCurves=void 0,this._poseTransformSpace=0,this.transforms=t,this.auxiliaryCurves=e}return t._create=function(e,i){return new t(e,i)},t}(),r4=function(){function t(t){this._involvedTransforms=new Uint16Array(t)}return n(t,[{key:"involvedTransforms",get:function(){return this._involvedTransforms}}]),t}();function s4(t,e,i,n){void 0===n&&(n=void 0),a4(t.transforms,e.transforms,i,n),c4(t.auxiliaryCurves,e.auxiliaryCurves,i)}function a4(t,e,i,n){void 0===n&&(n=void 0);var r=t.length;if(t.length,0!==i)if(1!==i)if(n)for(var s=0;s=r)return{done:!0,value:void 0};var o=i[s];e=null==o?void 0:o.getClipStatuses(t*n[s]),++s}}}},e.__evaluatePort=function(t,e,i){for(var n=this._childEvaluators.length,r=0,s=null,a=0;a5?h-5:0),l=5;l=e[e.length-1])t[t.length-1]=1;else{for(var n=0,r=1;ri){n=r;break}var s=e[n-1],a=e[n],o=a-s;t[n-1]=(a-i)/o,t[n]=(i-s)/o}}var I6,M6,P6=Kh,E6=hu,O6=P6(ZJ+"AnimationBlend1DItem")((t6=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;r=0?t[n]=1:t.fill(1/e.length)}else{for(var r=-1,s=-1,a=-1,o=Number.NEGATIVE_INFINITY,h=Number.NEGATIVE_INFINITY,u=i.x,l=i.y,c=0;c0?d>=h&&(h=d,r=c):d>=o&&(o=d,s=c)}}var p=0;if(r<0||s<0)p=1;else{var m=(T=e[r],A=e[s],C=i,D=M6,(B=_s.cross(T,A))?(D.wA=_s.cross(C,A)/B,D.wB=_s.cross(C,T)/-B):(D.wA=0,D.wB=0),D),g=m.wA,y=m.wB,v=0,b=0,S=g+y;S>1?(v=g/S,b=y/S):S<0?(v=0,b=0,p=1):(v=g,b=y,p=1-S),t[r]=v,t[s]=b}if(p>0)if(a>=0)t[a]=p;else for(var x=p/t.length,w=0;w0&&t.forEach((function(e,i){return t[i]=e/a}))}var V6,z6,U6,G6,H6,W6,j6,q6,X6,Y6,K6=function(t,e,i,n,r){_s.subtract(n,i,t),_s.subtract(r,e,t)},J6=function(){function t(e){for(var i=t._ANGLE_MULTIPLIER,n=e.length,r=this._exampleMagnitudes=new Array(n).fill(0),s=this._exampleDirections=e.map((function(t,e){var i=_s.copy(new _s,t),n=_s.len(i);return r[e]=n,Qi(n,0,1e-5)||_s.multiplyScalar(i,i,1/n),i})),a=this._precomputedVIJs=new Float32Array(3*n*n),o=0;o0)for(var R=0;Rr;case 5:return n>=r}},t}(),E7=hu,O7=Kh(ZJ+"TriggerCondition")((B7=function(){function t(){this.trigger=I7&&I7()}var e=t.prototype;return e.clone=function(){var e=new t;return e.trigger=this.trigger,e},e[P2]=function(t){var e=new k7(!1),i=t.getVar(this.trigger);return A6(i,this.trigger)&&(D6(i.type,this.trigger),e.setTrigger(i.bind(e.setTrigger,e))),e},t}(),I7=Vh(B7.prototype,"trigger",[E7],(function(){return""})),D7=B7))||D7,k7=function(){function t(t){this._triggered=!1,this._triggered=t}var e=t.prototype;return e.setTrigger=function(t){this._triggered=t},e.eval=function(){return this._triggered},t}(),R7=Kh(ZJ+"StateMachineComponent")(M7=function(){function t(){}var e=t.prototype;return e.onMotionStateEnter=function(){},e.onMotionStateExit=function(){},e.onMotionStateUpdate=function(){},e.onStateMachineEnter=function(){},e.onStateMachineExit=function(){},t}())||M7,F7=10,L7=er.fromArray,N7=er.toArray,V7=Or.fromArray,z7=Or.toArray,U7=function(){function t(t,e,i){this._data=void 0,this._data=void 0===t?new Float64Array:"number"==typeof t?new Float64Array(F7*t):new Float64Array(t,e,"number"==typeof i?F7*i:void 0)}var e=t.prototype;return e.getTransform=function(t,e){var i=this._data,n=e.position,r=e.rotation,s=e.scale,a=F7*t;return L7(n,i,a),V7(r,i,a+3),L7(s,i,a+7),e},e.getPosition=function(t,e){var i=this._data;return L7(e,i,F7*t),e},e.getRotation=function(t,e){var i=this._data;return V7(e,i,F7*t+3),e},e.getScale=function(t,e){var i=this._data;return L7(e,i,F7*t+7),e},e.setTransform=function(t,e){var i=this._data,n=e.position,r=e.rotation,s=e.scale,a=F7*t;N7(i,n,a),z7(i,r,a+3),N7(i,s,a+7)},e.setPosition=function(t,e){var i=this._data;N7(i,e,F7*t)},e.setRotation=function(t,e){var i=this._data;z7(i,e,F7*t+3)},e.setScale=function(t,e){var i=this._data;N7(i,e,F7*t+7)},e.copyWithin=function(t,e,i){this._data.copyWithin(t*F7,e*F7,"number"==typeof i?i*F7:void 0)},e.fill=function(t,e,i){var n,r,s=this.length;if(null!==(n=e)&&void 0!==n||(e=0),null!==(r=i)&&void 0!==r||(i=s),!(e>=s)){this.setTransform(e,t);for(var a=e+1;a=0&&this._pages.length,this._pages[t].buffer},e.pushPage=function(t){var e=t[G7];this._pages.length,e===this._pages.length&&this._pushNewPage(),this._pages.length;var i=this._pages[e];return++i.useCount,++t[G7],i},e.popPage=function(t){var e=t[G7]-1,i=this._pages[e];i.useCount,--i.useCount,--t[G7],0===i.useCount&&(this._pages.length,this._pages.pop())},e.createAllocator=function(t){var e=new X7(this,t);return++this._allocatorCount,e},e.destroyAllocator=function(t){for(var e=t[G7],i=0;ii[e-1]}))}var e=t.prototype;return e.createAllocator=function(t){var e=t,i=this._selectStackPageSize(e),n=this._stacks.get(i);return n||(n=new j7(this,i),this._stacks.set(i,n)),n.createAllocator(e)},e[H7]=function(t){for(var e,i=p(this._stacks);!(e=i()).done;){var n=e.value,r=n[0];if(n[1]===t){this._stacks.delete(r);break}}},e._selectStackPageSize=function(t){var e=Oh(this._thresholds,t),i=t;return e>=0?i=this._thresholds[e]:(e=~e)===this._thresholds.length||(e>=0&&this._thresholds.length,i=this._thresholds[e]),i},n(t,[{key:"isEmpty",get:function(){return 0===this._stacks.size}}]),t}(),K7=function(){function t(t,e){this._poses=[],this._allocatedCount=0,this._memoryAllocator=void 0,this._transformCount=t,this._auxiliaryCurveCount=e;var i=J7(t,e,1);this._memoryAllocator=Q7.createAllocator(i)}var e=t.prototype;return e.destroy=function(){this._allocatedCount;for(var t=0;t>c9},set:function(t){this._id&=l9,this._id|=t<=n)return null;r>=0&&e.length;var s=null!==(t=e[r])&&void 0!==t?t:e[r]=this._createPose(r);return s[o9].poseIndex=r,this._idleFlags&=~(1<=0&&e.length,e[i],this._idleFlags|=1<=0){var n=e[i];return++n.refCount,n.handle}for(var r=0,s=function(t){var i=e.findIndex((function(e){return e.node===t}));if(i>=0)return r=i+1,1},a=t.parent;a&&!s(a);a=a.parent);for(var o=r;o=0){var n=e[i];return++n.refCount,n.handle}var r=e.length,s=new b9(new H9(this,r),t);return e.push(s),s.handle},e.createEvaluationContext=function(){return this._bindStarted,new U9(this.transformCount,this.auxiliaryCurveCount,this._parentTable.slice(),this._origin)},e.resetPoseStashAllocator=function(t){this._bindStarted,t._reset(this.transformCount,this.auxiliaryCurveCount)},e.createTransformFilter=function(t){for(var e,i=this._origin,n=[],r=p(this._transformRecords);!(e=r()).done;){var s=e.value,a=s.node,o=s.handle,h=u(i,a);if(void 0===h)Y(a.getPathInHierarchy()+" is not a child of "+i.getPathInHierarchy());else if(t.isExcluded(h))continue;n.push(o.index)}return n.sort(),new r4(n);function u(t,e){for(var i=[],n=e;n;n=n.parent){if(n===t)return i.join("/");i.unshift(n.name)}}},e.fetchDefaultTransforms=function(t){var e=this._transformRecords.length;t.length;for(var i=0;i=0&&this._transformRecords.length;var e=this._transformRecords[t];e.refCount,--e.refCount},e._destroyAuxiliaryCurveHandle=function(t){t>=0&&this._auxiliaryCurveRecords.length;var e=this._auxiliaryCurveRecords[t];e.refCount,--e.refCount},e.startBind=function(){this._bindStarted=!0,this._transformCountBeforeBind=this._transformRecords.length,this._auxiliaryCurveCountBeforeBind=this._auxiliaryCurveRecords.length},e.endBind=function(){var t=this._transformRecords,e=this._auxiliaryCurveRecords,i=0;if(S9(t),t.length!==this._transformCountBeforeBind){i|=1;for(var n=t.length,r=0;r=0?n:-1}else{var r=t.findIndex((function(t){return t.node===i}));u[f]=r}},f=0;f0}));if(t.length,e!==t.length){for(var i=0;i=0;--i){var n=this._parentTable[i];if(!(n<0)){var r=e.getTransform(i,V9),s=e.getTransform(n,z9);K5.calculateRelative(r,r,s),e.setTransform(i,r)}}t._poseTransformSpace=0},e._convertPoseSpaceTransformToTargetSpace=function(t,e,i,n){var r=i._poseTransformSpace;switch(e){default:break;case 0:1===r?K5.multiply(t,this._getComponentToWorldTransform(),t):K5.multiply(t,this._getLocalToWorldTransform(z9,i,n),t);break;case 1:1===r||K5.multiply(t,this._getLocalToComponentTransform(z9,i,n),t);break;case 2:if(1===r){var s=this._parentTable[n];if(s>=0){var a=i.transforms.getTransform(s,z9),o=K5.invert(a,a);K5.multiply(t,o,t)}}break;case 3:var h=i.transforms.getTransform(n,z9),u=K5.invert(h,h);K5.multiply(t,u,t)}return t},e._convertTransformToPoseTransformSpace=function(t,e,i,n){var r=i._poseTransformSpace;switch(e){default:break;case 0:if(1===r){var s=K5.invert(z9,this._getComponentToWorldTransform());K5.multiply(t,s,t)}else{var a=this._getLocalToWorldTransform(z9,i,n),o=K5.invert(a,a);K5.multiply(t,o,t)}break;case 1:if(1===r);else{var h=this._getLocalToComponentTransform(z9,i,n),u=K5.invert(h,h);K5.multiply(t,u,t)}break;case 2:if(1===r){var l=this._parentTable[n];if(l>=0){var c=i.transforms.getTransform(l,z9);K5.multiply(t,c,t)}}break;case 3:var f=i.transforms.getTransform(n,z9);K5.multiply(t,f,t)}return t},e._getComponentToWorldTransform=function(){var t=this._cacheComponentToWorldTransform,e=this._componentNode;return t.position=e.worldPosition,t.rotation=e.worldRotation,t.scale=e.worldScale,t},e._getLocalToComponentTransform=function(t,e,i){var n=this._parentTable;K5.setIdentity(t);for(var r=n[i];r>=0;r=n[r]){var s=e.transforms.getTransform(r,V9);K5.multiply(t,s,t)}return t},e._getLocalToWorldTransform=function(t,e,i){return this._getLocalToComponentTransform(t,e,i),K5.multiply(t,this._getComponentToWorldTransform(),t),t},n(t,[{key:"allocatedPoseCount",get:function(){return this._poseAllocator.allocatedCount}},{key:"parentTable",get:function(){return this._parentTable}},{key:"_stackSize_debugging",get:function(){return this._poseAllocator.allocatedCount}}]),t}(),G9=function(){function t(t,e){this.index=-1,this._host=void 0,this._host=t,this.index=e}return t.prototype.destroy=function(){this._host._destroyTransformHandle(this.index)},t}(),H9=function(){function t(t,e){this.index=-1,this._host=void 0,this._host=t,this.index=e}return t.prototype.destroy=function(){this._host._destroyAuxiliaryCurveHandle(this.index)},t}(),W9=function(){function t(){this._context={deltaTime:0,indicativeWeight:0}}var e=t.prototype;return e.generate=function(t,e){return this._context.deltaTime=t,this._context.indicativeWeight=e,this._context},e.forkSubWeight=function(t,e){this._context.deltaTime=t.deltaTime,this._context.indicativeWeight=t.indicativeWeight*e},t}(),j9=function(){function t(){this._allocator=null}var e=t.prototype;return e._reset=function(t,e){this._allocator=new h9(t,e)},e.allocatePose=function(){return this._allocator,this._allocator.allocatePose()},e.destroyPose=function(t){return this._allocator,this._allocator.destroyPose(t)},n(t,[{key:"allocatedPoseCount",get:function(){return this._allocator,this._allocator.allocatedCount}}]),t}(),q9=Kh(ZJ+"MotionSyncInfo")((w9=function(){this.group=T9&&T9()},T9=Vh(w9.prototype,"group",[hu],(function(){return""})),x9=w9))||x9;function X9(t){return{listEntries:function(){return[{arg:{type:"clip-motion"},menu:"i18n:ENGINE.animation_graph.pose_graph_node_sub_menus.play_or_sample_clip_motion"},{arg:{type:"animation-blend-1d"},menu:"i18n:ENGINE.animation_graph.pose_graph_node_sub_menus.play_or_sample_animation_blend_1d"},{arg:{type:"animation-blend-2d"},menu:"i18n:ENGINE.animation_graph.pose_graph_node_sub_menus.play_or_sample_animation_blend_2d"}]},create:function(e){var i=null;switch(e.type){case"clip-motion":i=new l6;break;case"animation-blend-1d":i=new k6;break;case"animation-blend-2d":i=new h8}return t(i)}}}var Y9=1e-5,K9=(A9=Kh(ZJ+"PoseNodePlayMotion"),C9=V0(J8),D9=z0(X9((function(t){var e=new K9;return e.motion=t,e}))),B9=G0({themeColor:"#227F9B"}),I9=s1({type:0}),M9=s1({type:0}),A9(P9=C9(P9=D9(P9=B9((E9=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;rY9&&(r=e*this.speedMultiplier/n),i?i.notifyUpdate(r,t.indicativeWeight):this._workspace.normalizedTime+=r,this._workspace.lastIndicativeWeight=t.indicativeWeight}},i.doEvaluate=function(t){if(this._workspace){var e=this._runtimeSyncRecord?this._runtimeSyncRecord.getSyncedEnterTime():this._workspace.normalizedTime;return this._workspace.motionEvalPort.evaluate(e,t)}return t.pushDefaultedPose()},n(e,[{key:"lastIndicativeWeight",get:function(){var t,e;return null!==(t=null==(e=this._workspace)?void 0:e.lastIndicativeWeight)&&void 0!==t?t:0}},{key:"elapsedMotionTime",get:function(){var t,e;return null!==(t=null==(e=this._workspace)?void 0:e.normalizedTime)&&void 0!==t?t:0}}]),e}(i1),O9=Vh(E9.prototype,"motion",[hu],(function(){return new l6})),k9=Vh(E9.prototype,"syncInfo",[hu],(function(){return new q9})),R9=v(E9.prototype,"startTime",[hu,I9],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),F9=v(E9.prototype,"speedMultiplier",[hu,M9],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 1}}),P9=E9))||P9)||P9)||P9)||P9),J9=function(t,e){this.normalizedTime=0,this.lastIndicativeWeight=0,this.motionEval=t,this.motionEvalPort=e};function Q9(t){return t instanceof i1||t instanceof n1}var Z9=function(){function t(t,e){this._rootPoseNode=t,this._countingPlayMotionNodes=e}var e=t.prototype;return e.bind=function(t){var e;null==(e=this._rootPoseNode)||e.bind(t)},e.settle=function(t){var e;null==(e=this._rootPoseNode)||e.settle(t)},e.reenter=function(){var t;null==(t=this._rootPoseNode)||t.reenter()},e.update=function(t){var e;null==(e=this._rootPoseNode)||e.update(t)},e.evaluate=function(t){var e,i;return null!==(e=null==(i=this._rootPoseNode)?void 0:i.evaluate(t,1))&&void 0!==e?e:null},e.countMotionTime=function(){var t=this._countingPlayMotionNodes;if(!t)return 0;for(var e=0,i=Number.NEGATIVE_INFINITY,n=0;ni&&(i=a,e=s)}return e},t}();function $9(t,e,i){void 0===i&&(i=!1);var n=t.outputNode,r=t.getShell(n).getBindings();if(r.length,0===r.length)return new Z9(void 0,i?[]:void 0);var s=r[0];s.outputIndex,s.producer;var a=new Map,o=ttt(t,s.producer,a,e);return new Z9(o,i?Array.from(a.values()).filter((function(t){return t instanceof K9})):void 0)}function ttt(t,e,i,n){var r=t.getShell(e),s=i.get(e);if(s)return s;var a=j$(e);"__callOnAfterDeserializeRecursive"in a&&a.__callOnAfterDeserializeRecursive(),a instanceof n1&&a.link(n);for(var o,h=a,u=[],l=p(r.getBindings());!(o=l()).done;){var c=o.value,f=c.producer,_=c.outputIndex,d=c.inputPath;if(Q9(f)){var m=ttt(t,f,i,n);if(m instanceof i1)ntt(h,d,m,_);else{var g=ott(h,d,m,_);g&&u.push(g)}}else X("There's a input bound to a node with unrecognized type.")}var y,v=new ett(u);return h instanceof i1?(h._setDependencyEvaluation(v),y=h):y=new itt(h,v),i.set(e,y),y}var ett=function(){function t(t){this._bindingEvaluations=void 0,this._bindingEvaluations=t}return t.prototype.evaluate=function(){for(var t,e=p(this._bindingEvaluations);!(t=e()).done;)t.value.evaluate()},t}(),itt=function(){function t(t,e){this._outputs=void 0,this._node=t,this._dependency=e,this._outputs=new Array(t.outputCount)}var e=t.prototype;return e.getDefaultOutput=function(){return this.getOutput(0)},e.getOutput=function(t){return this._outputs[t]},e.evaluate=function(){var t=this._node;this._dependency.evaluate(),t.selfEvaluate(this._outputs)},n(t,[{key:"node",get:function(){return this._node}},{key:"outputCount",get:function(){return this._outputs.length}}]),t}();function ntt(t,e,i,n){var r=e[0],s=e[1],a=void 0===s?-1:s;if(r in t)if(0===n){var o=t[r];if(a<0)return null!==o?void X("Invalid binding: consumer node's input "+r+" should be leaved as evaluation before evaluation."):void(t[r]=i);Array.isArray(o)?a>=o.length?X("Invalid binding: consumer node's input "+r+" have length "+o.length+" but the binding specified "+a):null===o[a]?o[a]=i:X("Invalid binding: consumer node's input "+r+"["+a+"] should be leaved as null before evaluation"):X("Invalid binding: consumer node's input "+r+" should be an array.")}else X("Node "+i.toString()+" does not have specified output "+n+".");else X("Invalid binding: consumer node has no property "+r)}var rtt,stt=function(){function t(t,e,i,n){this._consumerNode=t,this._consumerPropertyKey=e,this._producerRecord=i,this._producerOutputIndex=n}return t.prototype.evaluate=function(){this._producerRecord.evaluate(),this._consumerNode[this._consumerPropertyKey]=this._producerRecord.getOutput(this._producerOutputIndex)},t}(),att=function(){function t(t,e,i,n,r){this._consumerNode=t,this._consumerPropertyKey=e,this._consumerElementIndex=i,this._producerRecord=n,this._producerOutputIndex=r}return t.prototype.evaluate=function(){this._producerRecord.evaluate(),this._consumerNode[this._consumerPropertyKey][this._consumerElementIndex]=this._producerRecord.getOutput(this._producerOutputIndex)},t}();function ott(t,e,i,n){var r=e[0],s=e[1],a=void 0===s?-1:s;if(r in t){var o=t[r];if(a<0)return new stt(t,r,i,n);if(Array.isArray(o)){if(!(a>=o.length))return new att(t,r,a,i,n);X("Invalid binding: consumer node's input "+r+" have length "+o.length+" but the binding specified "+a)}else X("Invalid binding: consumer node's input "+r+" should be an array.")}else X("Invalid binding: consumer node has no property "+r)}var htt=function(){function t(t,e,i){this.passthroughWeight=1,this._motionStates=[],this._proceduralPoseStates=[],this._topLevelEntry=void 0,this._topLevelExit=void 0,this._currentNode=void 0,this._pendingTransitionPath=[],this._activatedTransitions=[],this._activatedTransitionPool=Ntt.createPool(4),this._updateContextGenerator=new W9,this._conditionEvaluationContext=new Ltt,this._additive=!1,this._additive=i.additive,this.name=e,this._controller=i.controller;var n=this._addStateMachine(t,null,i,e),r=n.entry,s=n.exit;this._topLevelEntry=r,this._topLevelExit=s,this._currentNode=r,r.increaseActiveReference(),this._resetTrigger=i.triggerResetter}var e=t.prototype;return e.settle=function(t){for(var e=this._proceduralPoseStates,i=e.length,n=0;n=16){st(14e3,16,"");break}var r=this._matchNextTransition(i);if(!r)break;var s=r.to,a=i;if(i=s,utt(s)){if(s===a)break;this._activateTransition(t,r),t.length=0}else t.push(r)}t.length=0},e._resetStateTickFlagsAndWeights=function(){var t=this._currentNode,e=this._activatedTransitions;t.resetTickFlagsAndWeight();for(var i=0;i=0;--i){var s=e[i],a=0===i?this._currentNode:e[i-1].destination;if(s.update(t,a),s.done){this._dropActivatedTransitions(r);break}var o=s.normalizedElapsedTime*n;s.destination.increaseAbsoluteWeight(o),n*=1-s.normalizedElapsedTime,r=i-1}this._currentNode.increaseAbsoluteWeight(n)},e._dropActivatedTransitions=function(t){var e=this._activatedTransitions,i=this._activatedTransitionPool;t>=0&&e.length;var n=t+1,r=e[t],s=r.destination;r.path.length;var a=r.path[r.path.length-1];a.endEventBinding&&this._emit(a.endEventBinding),this._callExitMethods(this._currentNode);for(var o=0;o<=t;++o){var h=e[o];o!==t&&h.destination.decreaseActiveReference();for(var u=o===t?h.path.length-1:h.path.length,l=0;l=0?e:1+e}var btt,Stt,xtt,wtt,Ttt,Att,Ctt,Dtt,Btt,Itt,Mtt,Ptt,Ett,Ott,ktt=function(t){function e(e,i){var n;return(n=t.call(this,e)||this).kind=void 0,n.kind=i,n}return s(e,t),e}(ftt),Rtt=function(t){function e(e){var i;return(i=t.call(this,e)||this).kind=4,i}return s(e,t),e}(ftt),Ftt=function(t){function e(e,i){var n;(n=t.call(this,e)||this).kind=5,n.elapsedTime=0,n.statusCache={progress:0},n._instantiatedPoseGraph=void 0,n._statusCache={progress:0},n._elapsedTime=0;var r=$9(e.graph,i,!0);return r.bind(i),n._instantiatedPoseGraph=r,n._statusCache.progress=0,n}s(e,t);var i=e.prototype;return i.settle=function(t){this._instantiatedPoseGraph.settle(t)},i.reenter=function(){this._statusCache.progress=0,this._instantiatedPoseGraph.reenter()},i.update=function(t){this._elapsedTime+=t.deltaTime,this._instantiatedPoseGraph.update(t)},i.evaluate=function(t){var e;return null!==(e=this._instantiatedPoseGraph.evaluate(t))&&void 0!==e?e:null},i.getStatus=function(){return this._statusCache.progress=vtt(this._elapsedTime),this._statusCache},i.countMotionTime=function(){return this._instantiatedPoseGraph.countMotionTime()},e}(_tt),Ltt=function(){function t(){this.sourceStateWeight=0,this._sourceState=void 0}var e=t.prototype;return e.set=function(t){this._sourceState=t,utt(t)?(t.activeReferenceCount,this.sourceStateWeight=t.absoluteWeight):this.sourceStateWeight=0},e.unset=function(){this._sourceState=void 0,this.sourceStateWeight=0},n(t,[{key:"sourceStateMotionTimeNormalized",get:function(){var t=this._sourceState;switch(t&&(3===t.kind||5===t.kind)&&t.activeReferenceCount,t.kind){case 3:return t.normalizedTime;case 5:return t.countMotionTime();default:return 0}}}]),t}(),Ntt=function(){function t(){this.normalizedElapsedTime=0,this.path=[],this._durationMultiplier=1}var e=t.prototype;return e.getAbsoluteDuration=function(t){return this._getAbsoluteDurationUnscaled(t)*this._durationMultiplier},e.update=function(t,e){if(utt(e)){var i=this.getAbsoluteDuration(e);if(i<=0)this.normalizedElapsedTime=1;else{var n=this.normalizedElapsedTime*i,r=i-n,s=$i((n+Math.min(r,t))/i);this.normalizedElapsedTime=s}}else this.normalizedElapsedTime=1},t.createPool=function(e){return new oo((function(){return new t}),e,void 0)},e.reset=function(t,e){var i=e.to;utt(i),this.normalizedElapsedTime=0,this.destination=i,this.path=[].concat(t,[e]);var n=i.activeReferenceCount;if(i.increaseActiveReference(),0===n)if(3===i.kind){var r=this.path[0],s=r.destinationStart,a=r.relativeDestinationStart?s:0===i.duration?0:s/i.duration;i.reenter(a)}else 5===i.kind&&i.reenter();i.activeReferenceCount,this._durationMultiplier=1-i.absoluteWeight},e._getAbsoluteDurationUnscaled=function(t){this.path.length;var e=this.path[0],i=e.duration;return e.normalizedDuration?(3===t.kind?t.duration:1)*i:i},n(t,[{key:"done",get:function(){return Qi(this.normalizedElapsedTime,1,1e-6)}}]),t}();Kh(ZJ+"PoseNodeStateMachine")(btt=V0(J8)(btt=G0({themeColor:"#CCCCCC",inline:!0})((Stt=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;r=0&&e=r)){var a=s.length,o=0,h=0;t>r-n?(this._elapsedTransitionTime=r,h=1):(this._elapsedTransitionTime+=t,h=this._elapsedTransitionTime/r);for(var u=0;u=r)){var s=Math.max(e[t],0);if(s=s;--c)if(n.test(c)){var f=t.parentTable[c];if(f>=0){var _=e.transforms.getTransform(c,xit),d=e.transforms.getTransform(f,wit);K5.calculateRelative(_,_,d),e.transforms.setTransform(c,_)}}for(var p=0;p=c)return er.scaleAndAdd(s,t,l,o),void er.scaleAndAdd(a,t,l,c);er.copy(a,n);var f=Zi((o*o+u*u-h*h)/(2*o*u),-1,1),_=er.subtract(Ant,r,t),d=er.projectOnPlane(Cnt,_,l);d.normalize();var p=o*f,m=o*o-p*p,g=Math.sqrt(m);er.scaleAndAdd(s,t,l,p),er.scaleAndAdd(s,s,d,g)}),Ynt=J8+"/i18n:ENGINE.animation_graph.pose_graph_node_sub_categories.pose_nodes_ik/",Knt=new K5,Jnt=new K5,Qnt=new K5,Znt=new er,$nt=new er,trt=new K5,ert={NONE:0,VALUE:1,BONE:2};ke(ert);var irt=(Dnt=Kh(ZJ+"PoseNodeTwoBoneIKSolver.TargetSpecification"),Bnt=Eu(ert),Int=Eu(Wit),Dnt((Pnt=function(){function t(t){this.type=Ent&&Ent(),this.targetPosition=Ont&&Ont(),this.targetPositionSpace=knt&&knt(),this.targetBone=Rnt&&Rnt(),this._sourceBoneHandle=void 0,this._targetBoneHandle=void 0,void 0!==t&&(this.type=t)}var e=t.prototype;return e.bind=function(t,e){var i;this._sourceBoneHandle=e,2===this.type&&this.targetBone&&(this._targetBoneHandle=null!==(i=t.bindTransformByName(this.targetBone))&&void 0!==i?i:void 0)},e.evaluate=function(t,e,i){if(this._sourceBoneHandle,this._targetBoneHandle)e.transforms.getPosition(this._targetBoneHandle.index,t);else if(0===this.type)e.transforms.getPosition(this._sourceBoneHandle.index,t);else{var n=K5.setIdentity(trt);n.position=this.targetPosition,i._convertTransformToPoseTransformSpace(n,this.targetPositionSpace,e,this._sourceBoneHandle.index),er.copy(t,n.position)}return t},t}(),Ent=Vh(Pnt.prototype,"type",[hu,Bnt],(function(){return 1})),Ont=Vh(Pnt.prototype,"targetPosition",[hu],(function(){return new er})),knt=Vh(Pnt.prototype,"targetPositionSpace",[hu,Int],(function(){return 0})),Rnt=Vh(Pnt.prototype,"targetBone",[hu],(function(){return""})),Mnt=Pnt))||Mnt);Fnt=Kh(ZJ+"PoseNodeTwoBoneIKSolver"),Lnt=V0(Ynt),Nnt=s1({type:3}),Vnt=s1({type:3}),Fnt(znt=Lnt((Unt=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;r=0&&this._layerRecords.length,this._layerRecords[t].weight},i.setLayerWeight=function(t,e){t>=0&&this._layerRecords.length,this._layerRecords[t].weight=e},i.getLayerTopLevelStateMachineEvaluation=function(t){return this._layerRecords[t].stateMachineEvaluation},i.overrideClips=function(t){for(var e=this._layerRecords,i=e.length,n=0;n0||delete e[t])},e.apply=function(t){var e,i,n,r=this._transformApplyFlags,s=this._properties,a=s.position,o=s.scale,h=s.rotation,u=s.eulerAngles;r&&(a&&1&r&&(e=a.result),o&&4&r&&(i=o.result),u&&8&r&&(n=u.result),h&&2&r&&(n=h.result),(n||e||i)&&t.setRTS(n,e,i),this._transformApplyFlags=0)},n(t,[{key:"empty",get:function(){var t=this._properties;return!(t.position||t.rotation||t.eulerAngles||t.scale)}}]),t}(),jrt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.apply=function(e){var i=this._properties,n=i.position,r=i.scale,s=i.rotation,a=i.eulerAngles;n&&n.accumulatedWeight&&(this._transformApplyFlags|=1,n.accumulatedWeight<1&&n.blend(e.position,1-n.accumulatedWeight)),r&&r.accumulatedWeight&&(this._transformApplyFlags|=4,r.accumulatedWeight<1&&r.blend(e.scale,1-r.accumulatedWeight)),a&&a.accumulatedWeight&&(this._transformApplyFlags|=8,a.accumulatedWeight<1&&a.blend(e.eulerAngles,1-a.accumulatedWeight)),s&&s.accumulatedWeight&&(this._transformApplyFlags|=2,s.accumulatedWeight<1&&s.blend(e.rotation,1-s.accumulatedWeight)),t.prototype.apply.call(this,e),null==n||n.reset(),null==r||r.reset(),null==s||s.reset(),null==a||a.reset()},i._createVec3BlendState=function(){return new Grt},i._createQuatBlendState=function(){return new Hrt},e}(Wrt),qrt=function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e.prototype.createNodeBlendState=function(){return new jrt},e}(zrt);function Xrt(t,e,i,n,r){var s=i+r;if(1!==r||i){if(s){var a=r/s;er.lerp(t,t,n,a)}}else er.copy(t,n);return s}function Yrt(t,e,i,n,r){var s=i+r;if(1!==r||i){if(s){var a=r/s;Or.slerp(t,e,n,a)}}else Or.copy(t,n);return s}var Krt=t("aB",Kh((Vrt=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;r=0?this._crossFades.fastRemoveAt(e):ot(3907)},i.update=function(t){var e=this._delayEvents,i=this._crossFades,n=this._sockets,r=i.array;for(i.i=0;i.i=0?this._anims.fastRemoveAt(e):ot(3907)},i.pushDelayEvent=function(t,e,i){this._delayEvents.push({fn:t,thisArg:e,args:i})},i.addSockets=function(t,e){for(var i=this,n=function(){var n=e[r];if(i._sockets.find((function(t){return t.target===n.target})))return 1;var s=t.getChildByPath(n.path),a=n.target&&s&&wY(s,t);a&&i._sockets.push({target:n.target,transform:a})},r=0;r=h.easeDuration){a=o+1,h.easeTime=h.easeDuration;break}}if(a!==i.length){for(var c=a;c=0||(this._clips.push(t),this.createState(t)))}}]),e}(Do(dg)),ast.EventType=oQ,v((ist=ast).prototype,"clips",[Zrt],Object.getOwnPropertyDescriptor(ist.prototype,"clips"),ist.prototype),v(ist.prototype,"defaultClip",[$rt],Object.getOwnPropertyDescriptor(ist.prototype,"defaultClip"),ist.prototype),nst=Vh(ist.prototype,"playOnLoad",[hu],(function(){return!1})),rst=Vh(ist.prototype,"_clips",[tst],(function(){return[]})),sst=Vh(ist.prototype,"_defaultClip",[hu],(function(){return null})),est=ist))||est)||est));function fst(t,e){return t===e||!!t&&!!e&&t._uuid===e._uuid&&t._uuid}T.Animation=cst,T.AnimationComponent=cst,ue(cst,"cc.AnimationComponent"),function(t){t.PLAYED="play",t.PAUSED="pause",t.STOPPED="stop",t.SEEKED="seeked",t.ENDED="ended",t.INTERRUPTION_BEGIN="interruptionBegin",t.INTERRUPTION_END="interruptionEnd",t.USER_GESTURE="on_gesture"}(ost||(ost={})),function(t){t[t.DOM_AUDIO=0]="DOM_AUDIO",t[t.WEB_AUDIO=1]="WEB_AUDIO",t[t.MINIGAME_AUDIO=2]="MINIGAME_AUDIO",t[t.NATIVE_AUDIO=3]="NATIVE_AUDIO",t[t.UNKNOWN_AUDIO=4]="UNKNOWN_AUDIO"}(hst||(hst={})),function(t){t[t.INIT=0]="INIT",t[t.PLAYING=1]="PLAYING",t[t.PAUSED=2]="PAUSED",t[t.STOPPED=3]="STOPPED",t[t.INTERRUPTED=4]="INTERRUPTED"}(ust||(ust={}));var _st=t("aG",function(){function t(){this._bufferView=void 0,this._normalizeFactor=1;for(var t=arguments.length,e=new Array(t),i=0;i=0;s--){var a=i[s];if("stop"===a.op){n.push(a);break}if("seek"===a.op)r||(n.push(a),r=!0);else{if(r){n.push(a);break}0===n.length&&n.push(a)}}t._operationQueue=n.reverse()}var pst,mst=0;function gst(t,e){var i;e.invoking||(e.invoking=!0,(i=e.func).call.apply(i,[t].concat(e.args)).then((function(){e.invoking=!1,t._operationQueue.shift(),t._eventTarget.emit(e.id.toString()),t._eventTarget.off(e.id.toString()),dst(t);var i=t._operationQueue[0];i&&gst(t,i)})).catch((function(){})))}function yst(t,e,i){var n=i.value;i.value=function(){for(var t=this,i=arguments.length,r=new Array(i),s=0;s=this.duration&&(this._startTime=this._now(),this._startOffset=0),e%this.duration},e.start=function(){this._isPaused=!1,this._startTime=this._now()},e.pause=function(){this._isPaused||(this._isPaused=!0,this._startOffset=this._calculateCurrentTime())},e.stop=function(){this._isPaused=!0,this._startOffset=0},e.seek=function(t){this._startTime=this._now(),this._startOffset=Zi(t,0,this.duration)},n(t,[{key:"duration",get:function(){return this._nativeAudio.duration}},{key:"currentTime",get:function(){return this._isPaused?this._startOffset:this._calculateCurrentTime()}}]),t}(),Ast=function(){function t(){this._audioBufferDataMap={}}var e=t.prototype;return e.addCache=function(t,e){this._audioBufferDataMap[t]?st(5204,t):this._audioBufferDataMap[t]={usedCount:1,audioBuffer:e}},e.retainCache=function(t){var e=this._audioBufferDataMap[t];e?e.usedCount++:st(5203,t)},e.getCache=function(t){var e=this._audioBufferDataMap[t];return null==e?void 0:e.audioBuffer},e.tryReleasingCache=function(t){var e=this._audioBufferDataMap[t];e?--e.usedCount<=0&&delete this._audioBufferDataMap[t]:st(5203,t)},t}(),Cst=new Ast,Dst=window.AudioContext||window.webkitAudioContext||window.mozAudioContext,Bst="on-context-running",Ist=function(){function t(){var t=this;this._eventTarget=void 0,this._context=void 0,this._isRunning=!1,this._context=new(window.AudioContext||window.webkitAudioContext||window.mozAudioContext),this._eventTarget=new Bo,this._context.onstatechange=function(){"running"===t._context.state?(t._isRunning=!0,t._eventTarget.emit(Bst)):t._isRunning=!1}}var e=t.prototype;return e.onceRunning=function(t,e){this._eventTarget.once(Bst,t,e)},e.offRunning=function(t,e){this._eventTarget.off(Bst,t,e)},e.decodeAudioData=function(t){var e=this;return new Promise((function(i,n){var r=e._context.decodeAudioData(t,(function(t){i(t)}),(function(t){console.error("failed to load Web Audio",t)}));null==r||r.catch(n)}))},e.runContext=function(){var t=this;return new Promise((function(e){if(t.isRunning)e();else{var i=t._context;if(i.resume){if("suspended"===i.state)i.resume().catch((function(t){X("runContext error",t)}));else if("running"===i.state)return void e();var n=document.getElementById("GameCanvas"),r=function t(){i.resume().then((function(){null==n||n.removeEventListener("touchend",t,{capture:!0}),null==n||n.removeEventListener("mouseup",t,{capture:!0}),e()})).catch((function(t){X("onGesture resume error",t)}))};null==n||n.addEventListener("touchend",r,{capture:!0}),null==n||n.addEventListener("mouseup",r,{capture:!0})}else e()}}))},e.createBufferSource=function(t,e){var i=this._context.createBufferSource();return void 0!==t&&(i.buffer=t),void 0!==e&&(i.loop=e),i},e.createGain=function(t){void 0===t&&(t=1);var e=this._context.createGain();return this.setGainValue(e,t),e},e.setGainValue=function(t,e){if(t.gain.setTargetAtTime)try{t.gain.setTargetAtTime(e,this._context.currentTime,0)}catch(i){t.gain.setTargetAtTime(e,this._context.currentTime,.01)}else t.gain.value=e},e.connectContext=function(t){this._context&&t.connect(this._context.destination)},n(t,[{key:"isRunning",get:function(){return this._isRunning}},{key:"currentTime",get:function(){return this._context.currentTime}}]),t}();Ist.support=!!Dst,Ist.support&&(Sst=new Ist);var Mst,Pst,Est,Ost,kst=function(){function t(t,e,i){this._duration=void 0,this._bufferSourceNode=void 0,this._onPlayCb=void 0,this._currentTimer=0,this._url=void 0,this._onEndCb=void 0,this._duration=t.duration,this._url=i,this._bufferSourceNode=Sst.createBufferSource(t,!1);var n=Sst.createGain(e);this._bufferSourceNode.connect(n),Sst.connectContext(n)}var e=t.prototype;return e.play=function(){var t=this;this._bufferSourceNode.start(),Sst.runContext().then((function(){null==t.onPlay||t.onPlay(),t._currentTimer=window.setTimeout((function(){Cst.tryReleasingCache(t._url),null==t.onEnd||t.onEnd()}),1e3*t._duration)})).catch((function(t){X("play error",t)}))},e.stop=function(){clearTimeout(this._currentTimer),Cst.tryReleasingCache(this._url),this._bufferSourceNode.stop(),this._bufferSourceNode.disconnect(),this._bufferSourceNode.buffer=null},n(t,[{key:"onPlay",get:function(){return this._onPlayCb},set:function(t){this._onPlayCb=t}},{key:"onEnd",get:function(){return this._onEndCb},set:function(t){this._onEndCb=t}}]),t}(),Rst=(bst=function(){function t(t,e){this._src=void 0,this._audioBuffer=void 0,this._sourceNode=void 0,this._gainNode=void 0,this._currentTimer=0,this._volume=1,this._loop=!1,this._state=ust.INIT,this._audioTimer=void 0,this._runningCallback=void 0,this._eventTarget=new Bo,this._operationQueue=[],this._audioBuffer=t,this._audioTimer=new Tst(t),this._gainNode=Sst.createGain(),Sst.connectContext(this._gainNode),this._src=e,HO.on(GO.EVENT_PAUSE,this._onInterruptedBegin,this),HO.on(GO.EVENT_RESUME,this._onInterruptedEnd,this)}var e=t.prototype;return e.destroy=function(){window.clearTimeout(this._currentTimer),this._audioTimer.destroy(),this._audioBuffer&&(this._audioBuffer=null),Cst.tryReleasingCache(this._src),HO.off(GO.EVENT_PAUSE,this._onInterruptedBegin,this),HO.off(GO.EVENT_RESUME,this._onInterruptedEnd,this),this.offRunning()},t.load=function(e){return new Promise((function(i,n){t.loadNative(e).then((function(n){i(new t(n,e))})).catch(n)}))},t.loadNative=function(t){return new Promise((function(e,i){var n=Cst.getCache(t);if(n)return Cst.retainCache(t),void e(n);var r=new XMLHttpRequest,s="load audio failed: "+t+", status: ";r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=function(){200===r.status||0===r.status?Sst.decodeAudioData(r.response).then((function(i){Cst.addCache(t,i),e(i)})).catch((function(e){X("loadNative error",t,e)})):i(new Error(""+s+r.status+"(no response)"))},r.onerror=function(){i(new Error(""+s+r.status+"(error)"))},r.ontimeout=function(){i(new Error(""+s+r.status+"(time out)"))},r.onabort=function(){i(new Error(""+s+r.status+"(abort)"))},r.send(null)}))},t.loadOneShotAudio=function(e,i){return new Promise((function(n,r){t.loadNative(e).then((function(t){var r=new kst(t,i,e);n(r)})).catch(r)}))},e.getPCMData=function(t){return new _st(this._audioBuffer.getChannelData(t),1)},e._onInterruptedBegin=function(){var t=this;this._state===ust.PLAYING&&this.pause().then((function(){t._state=ust.INTERRUPTED,t._eventTarget.emit(ost.INTERRUPTION_BEGIN)})).catch((function(t){X("_onInterruptedBegin error",t)}))},e._onInterruptedEnd=function(){var t=this;this._state===ust.INTERRUPTED&&this.play().then((function(){t._eventTarget.emit(ost.INTERRUPTION_END)})).catch((function(t){X("_onInterruptedEnd error",t)}))},e.offRunning=function(){this._runningCallback&&(Sst.offRunning(this._runningCallback),this._runningCallback=void 0)},e.seek=function(t){var e=this;return new Promise((function(i){e.offRunning(),e._audioTimer.seek(t),e._state===ust.PLAYING?e._doPlay().then(i).catch((function(t){X("seek error",t)})):i()}))},e.play=function(){return this.offRunning(),this._doPlay()},e._doPlay=function(){var t=this;return new Promise((function(e){Sst.isRunning?(t._startSourceNode(),e()):(t.offRunning(),t._runningCallback=function(){t._startSourceNode(),e()},Sst.onceRunning(t._runningCallback),Sst.runContext().catch((function(t){X("doPlay error",t)})))}))},e._startSourceNode=function(){var t=this;this._stopSourceNode(),this._sourceNode=Sst.createBufferSource(this._audioBuffer,this.loop),this._sourceNode.connect(this._gainNode),this._sourceNode.loop=this._loop,this._sourceNode.start(0,this._audioTimer.currentTime),this._state=ust.PLAYING,this._audioTimer.start(),window.clearTimeout(this._currentTimer),this._currentTimer=window.setTimeout((function e(){t.loop?t._currentTimer=window.setTimeout(e,1e3*t._audioBuffer.duration):(t._audioTimer.stop(),t._eventTarget.emit(ost.ENDED),t._state=ust.INIT)}),1e3*(this._audioBuffer.duration-this._audioTimer.currentTime))},e._stopSourceNode=function(){try{this._sourceNode&&(this._sourceNode.stop(),this._sourceNode.disconnect(),this._sourceNode.buffer=null,this._sourceNode=void 0)}catch(t){}},e.pause=function(){return this.offRunning(),this._state===ust.PLAYING&&this._sourceNode?(this._audioTimer.pause(),this._state=ust.PAUSED,window.clearTimeout(this._currentTimer),this._stopSourceNode(),Promise.resolve()):Promise.resolve()},e.stop=function(){return this.offRunning(),this._sourceNode?(this._audioTimer.stop(),this._state=ust.STOPPED,window.clearTimeout(this._currentTimer),this._stopSourceNode(),Promise.resolve()):(this._audioTimer.stop(),this._state=ust.STOPPED,Promise.resolve())},e.onInterruptionBegin=function(t){this._eventTarget.on(ost.INTERRUPTION_BEGIN,t)},e.offInterruptionBegin=function(t){this._eventTarget.off(ost.INTERRUPTION_BEGIN,t)},e.onInterruptionEnd=function(t){this._eventTarget.on(ost.INTERRUPTION_END,t)},e.offInterruptionEnd=function(t){this._eventTarget.off(ost.INTERRUPTION_END,t)},e.onEnded=function(t){this._eventTarget.on(ost.ENDED,t)},e.offEnded=function(t){this._eventTarget.off(ost.ENDED,t)},n(t,[{key:"sampleRate",get:function(){return this._audioBuffer.sampleRate}},{key:"src",get:function(){return this._src}},{key:"type",get:function(){return hst.WEB_AUDIO}},{key:"state",get:function(){return this._state}},{key:"loop",get:function(){return this._loop},set:function(t){this._loop=t,this._sourceNode&&(this._sourceNode.loop=t)}},{key:"volume",get:function(){return this._volume},set:function(t){t=$i(t),this._volume=t,Sst.setGainValue(this._gainNode,t)}},{key:"duration",get:function(){return this._audioBuffer.duration}},{key:"currentTime",get:function(){return this._audioTimer.currentTime}}]),t}(),v(bst.prototype,"seek",[yst],Object.getOwnPropertyDescriptor(bst.prototype,"seek"),bst.prototype),v(bst.prototype,"play",[yst],Object.getOwnPropertyDescriptor(bst.prototype,"play"),bst.prototype),v(bst.prototype,"pause",[yst],Object.getOwnPropertyDescriptor(bst.prototype,"pause"),bst.prototype),v(bst.prototype,"stop",[yst],Object.getOwnPropertyDescriptor(bst.prototype,"stop"),bst.prototype),bst),Fst=function(){function t(t){this._audio=void 0,this._audio=t}var e=t.prototype;return e.play=function(){this._audio.play()},e.stop=function(){this._audio.stop()},n(t,[{key:"onPlay",get:function(){return this._audio.onPlay},set:function(t){this._audio.onPlay=t}},{key:"onEnd",get:function(){return this._audio.onEnd},set:function(t){this._audio.onEnd=t}}]),t}(),Lst=function(){function t(t){this._player=void 0,this._player=t}t.load=function(e,i){return new Promise((function(n,r){(null==i?void 0:i.audioLoadMode)!==hst.DOM_AUDIO&&Ist.support?Rst.load(e).then((function(e){n(new t(e))})).catch(r):(Ist.support||st(5201),wst.load(e).then((function(e){n(new t(e))})).catch(r))}))};var e=t.prototype;return e.destroy=function(){this._player.destroy()},t.loadNative=function(t,e){return(null==e?void 0:e.audioLoadMode)!==hst.DOM_AUDIO&&Ist.support?Rst.loadNative(t):(Ist.support||st(5201),wst.loadNative(t))},t.loadOneShotAudio=function(t,e,i){return new Promise((function(n,r){(null==i?void 0:i.audioLoadMode)!==hst.DOM_AUDIO&&Ist.support?Rst.loadOneShotAudio(t,e).then((function(t){n(new Fst(t))})).catch(r):(Ist.support||st(5201),wst.loadOneShotAudio(t,e).then((function(t){n(new Fst(t))})).catch(r))}))},e.getPCMData=function(t){return this._player.getPCMData(t)},e.seek=function(t){return this._player.seek(t)},e.play=function(){return this._player.play()},e.pause=function(){return this._player.pause()},e.stop=function(){return this._player.stop()},e.onInterruptionBegin=function(t){this._player.onInterruptionBegin(t)},e.offInterruptionBegin=function(t){this._player.offInterruptionBegin(t)},e.onInterruptionEnd=function(t){this._player.onInterruptionEnd(t)},e.offInterruptionEnd=function(t){this._player.offInterruptionEnd(t)},e.onEnded=function(t){this._player.onEnded(t)},e.offEnded=function(t){this._player.offEnded(t)},n(t,[{key:"src",get:function(){return this._player.src}},{key:"type",get:function(){return this._player.type}},{key:"state",get:function(){return this._player.state}},{key:"loop",get:function(){return this._player.loop},set:function(t){this._player.loop=t}},{key:"volume",get:function(){return this._player.volume},set:function(t){this._player.volume=t}},{key:"duration",get:function(){return this._player.duration}},{key:"currentTime",get:function(){return this._player.currentTime}},{key:"sampleRate",get:function(){return this._player.sampleRate}}]),t}();Lst.maxAudioChannel=24;var Nst=t("aF",Kh("cc.AudioClip")((Ost=function(t){function e(e){var i;return(i=t.call(this,e)||this)._duration=Est&&Est(),i._loadMode=hst.UNKNOWN_AUDIO,i._meta=null,i._player=null,i}s(e,t);var i=e.prototype;return i.destroy=function(){var e,i=t.prototype.destroy.call(this);return null==(e=this._player)||e.destroy(),this._player=null,this._meta&&(this._meta.player=null),i},i.validate=function(){return!!this._meta},i.getDuration=function(){return this._duration?this._duration:this._meta?this._meta.duration:0},i.getCurrentTime=function(){return this._player?this._player.currentTime:0},i.getVolume=function(){return this._player?this._player.volume:0},i.getLoop=function(){return!!this._player&&this._player.loop},i.setCurrentTime=function(t){var e;null==(e=this._player)||e.seek(t).catch((function(){}))},i.setVolume=function(t){this._player&&(this._player.volume=t)},i.setLoop=function(t){this._player&&(this._player.loop=t)},i.play=function(){var t;null==(t=this._player)||t.play().catch((function(){}))},i.pause=function(){var t;null==(t=this._player)||t.pause().catch((function(){}))},i.stop=function(){var t;null==(t=this._player)||t.stop().catch((function(){}))},i.playOneShot=function(t){void 0===t&&(t=1),this._nativeAsset&&Lst.loadOneShotAudio(this._nativeAsset.url,t).then((function(t){t.play()})).catch((function(){}))},n(e,[{key:"duration",set:function(t){this._duration=t}},{key:"_nativeAsset",get:function(){return this._meta},set:function(t){this._meta=t,t?(this._loadMode=t.type,this._player=t.player):(this._meta=null,this._loadMode=hst.UNKNOWN_AUDIO,this._duration=0)}},{key:"_nativeDep",get:function(){return{uuid:this._uuid,audioLoadMode:this.loadMode,ext:this._native,__isNative__:!0}}},{key:"loadMode",get:function(){return this._loadMode}},{key:"state",get:function(){return this._player?this._player.state:ust.INIT}}]),e}(xm),Ost.AudioType=hst,Est=Vh((Pst=Ost).prototype,"_duration",[hu],(function(){return 0})),v(Pst.prototype,"_nativeDep",[Uu],Object.getOwnPropertyDescriptor(Pst.prototype,"_nativeDep"),Pst.prototype),Mst=Pst))||Mst);function Vst(t,e,i){Lst.load(t,{audioLoadMode:e.audioLoadMode}).then((function(e){var n={player:e,url:t,duration:e.duration,type:e.type};i(null,n)})).catch((function(t){i(t)}))}function zst(t,e,i,n){var r=new Nst;r._nativeUrl=t,r._nativeAsset=e,r.duration=e.duration,n(null,r)}T.AudioClip=Nst,Cw.register({".mp3":Vst,".ogg":Vst,".wav":Vst,".m4a":Vst}),Vw.register({".mp3":zst,".ogg":zst,".wav":zst,".m4a":zst});var Ust,Gst,Hst,Wst,jst,qst,Xst,Yst,Kst,Jst,Qst=new(function(){function t(){this._oneShotAudioInfoList=[],this._audioPlayerInfoList=[]}var e=t.prototype;return e._findIndex=function(t,e){return t.findIndex((function(t){return t.audio===e}))},e._tryAddPlaying=function(t,e){var i=this._findIndex(t,e);if(i>-1)return t[i].playTime=performance.now(),!1;var n={audio:e,playTime:performance.now()};return t.push(n),!0},e.addPlaying=function(t){t instanceof Lst?this._tryAddPlaying(this._audioPlayerInfoList,t):this._tryAddPlaying(this._oneShotAudioInfoList,t)},e._tryRemovePlaying=function(t,e){var i=this._findIndex(t,e);return-1!==i&&(ve(t,i),!0)},e.removePlaying=function(t){t instanceof Lst?this._tryRemovePlaying(this._audioPlayerInfoList,t):this._tryRemovePlaying(this._oneShotAudioInfoList,t)},e.discardOnePlayingIfNeeded=function(){var t;this._audioPlayerInfoList.length+this._oneShotAudioInfoList.length0?this._oneShotAudioInfoList.forEach((function(e){(!t||e.playTime0){for(var i=0,n=this._objects;i0){for(var r=0;ri&&(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}(sat),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,h=t.x,u=t.y,l=h+t.width,c=u+t.height,f=i*h+r*u+a,_=n*h+s*u+o,d=i*l+r*u+a,p=n*l+s*u+o,m=i*l+r*c+a,g=n*l+s*c+o,y=i*h+r*c+a,v=n*h+s*c+o,b=0;f>d&&(b=f,f=d,d=b),m>y&&(b=m,m=y,y=b),t.x=Math.floor(fy?d:y)-t.x),_>p&&(b=_,_=p,p=b),g>v&&(b=g,g=v,v=b),t.y=Math.floor(_v?p:v)-t.y)},t}();t.Matrix=e}(sat),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&&s=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}(sat),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}(sat),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}(sat),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}(sat),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 rat(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=0&&t=0&&t=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 rat(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 rat(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 rat(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}(sat),function(t){var e=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rat(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 rat(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 rat(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}(sat),function(t){var e=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rat(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}(sat),function(t){var e=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.displays={},e}return rat(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];er&&(a|=2),es&&(a|=8),a},e.rectangleIntersectsSegment=function(t,i,n,r,s,a,o,h,u,l,c){void 0===u&&(u=null),void 0===l&&(l=null),void 0===c&&(c=null);var f=t>s&&ta&&is&&na&&r=-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 h=.5*this.width,u=.5*this.height;return e.rectangleIntersectsSegment(t,i,n,r,-h,-u,h,u,s,a,o)},e}(e);t.RectangleBoundingBoxData=i;var n=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rat(e,t),e.toString=function(){return"[class dragonBones.EllipseData]"},e.ellipseIntersectsSegment=function(t,e,i,n,r,s,a,o,h,u,l){void 0===h&&(h=null),void 0===u&&(u=null),void 0===l&&(l=null);var c=a/o,f=c*c,_=i-t,d=(n*=c)-(e*=c),p=Math.sqrt(_*_+d*d),m=_/p,g=d/p,y=(r-t)*m+(s-e)*g,v=a*a,b=v-(t*t+e*e)+y*y,S=0;if(b>=0){var x=Math.sqrt(b),w=y-x,T=y+x,A=w<0?-1:w<=p?0:1,C=T<0?-1:T<=p?0:1,D=A*C;if(D<0)return-1;0===D&&(-1===A?(S=2,i=t+T*m,n=(e+T*g)/c,null!==h&&(h.x=i,h.y=n),null!==u&&(u.x=i,u.y=n),null!==l&&(l.x=Math.atan2(n/v*f,i/v),l.y=l.x+Math.PI)):1===C?(S=1,t+=w*m,e=(e+w*g)/c,null!==h&&(h.x=t,h.y=e),null!==u&&(u.x=t,u.y=e),null!==l&&(l.x=Math.atan2(e/v*f,t/v),l.y=l.x+Math.PI)):(S=3,null!==h&&(h.x=t+w*m,h.y=(e+w*g)/c,null!==l&&(l.x=Math.atan2(h.y/v*f,h.x/v))),null!==u&&(u.x=t+T*m,u.y=(e+T*g)/c,null!==l&&(l.y=Math.atan2(u.y/v*f,u.x/v)))))}return S},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 rat(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 h=r.length,u=t-i,l=e-n,c=t*n-e*i,f=0,_=r[h-2],d=r[h-1],p=0,m=0,g=0,y=0,v=0,b=0,S=0;S=_&&B<=x||B>=x&&B<=_)&&(0===u||B>=t&&B<=i||B>=i&&B<=t)){var I=(c*A-l*C)/D;if((I>=d&&I<=w||I>=w&&I<=d)&&(0===l||I>=e&&I<=n||I>=n&&I<=e)){if(null===a){g=B,y=I,v=B,b=I,f++,null!==o&&(o.x=Math.atan2(w-d,x-_)-.5*Math.PI,o.y=o.x);break}var M=B-t;M<0&&(M=-M),0===f?(p=M,m=M,g=B,y=I,v=B,b=I,null!==o&&(o.x=Math.atan2(w-d,x-_)-.5*Math.PI,o.y=o.x)):(Mm&&(m=M,v=B,b=I,null!==o&&(o.y=Math.atan2(w-d,x-_)-.5*Math.PI))),f++}}_=x,d=w}return 1===f?(null!==s&&(s.x=g,s.y=y),null!==a&&(a.x=g,a.y=y),null!==o&&(o.y=o.x+Math.PI)):f>1&&(f++,null!==s&&(s.x=g,s.y=y),null!==a&&(a.x=v,a.y=b)),f},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=e||a=e){var h=this.vertices[s],u=this.vertices[n];(e-o)*(h-u)/(a-o)+u0)){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=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=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=0&&r.contains(o)&&this.boneMask.splice(h,1)}else for(var u=0,l=t.getBones();ue._zOrder?1:-1},i.prototype._onClear=function(){null!==this._clock&&this._clock.remove(this);for(var t=0,e=this._bones;t=s)){var o=i[a],h=this.getSlot(o.name);null!==h&&h._setZorder(r)}}this._slotsDirty=!0,this._zOrderDirty=!n}},i.prototype._addBone=function(t){this._bones.indexOf(t)<0&&this._bones.push(t)},i.prototype._addSlot=function(t){this._slots.indexOf(t)<0&&this._slots.push(t)},i.prototype._addConstraint=function(t){this._constraints.indexOf(t)<0&&this._constraints.push(t)},i.prototype._bufferAction=function(t,e){this._actions.indexOf(t)<0&&(e?this._actions.push(t):this._actions.unshift(t))},i.prototype.dispose=function(){null!==this._armatureData&&(this._lockUpdate=!0,this._dragonBones.bufferObject(this))},i.prototype.init=function(e,i,n,r){null===this._armatureData&&(this._armatureData=e,this._animation=t.BaseObject.borrowObject(t.Animation),this._proxy=i,this._display=n,this._dragonBones=r,this._proxy.dbInit(this),this._animation.init(this),this._animation.animations=this._armatureData.animations)},i.prototype.advanceTime=function(t){if(!this._lockUpdate)if(null!==this._armatureData)if(null!==this._armatureData.parent){var e=this._cacheFrameIndex;if(this._animation.advanceTime(t),this._slotsDirty&&(this._slotsDirty=!1,this._slots.sort(i._onSortSlots)),this._cacheFrameIndex<0||this._cacheFrameIndex!==e){var n=0,r=0;for(n=0,r=this._bones.length;n0){this._lockUpdate=!0;for(var s=0,a=this._actions;s0){if(null!==(a=this.getBone(t))&&(a.invalidUpdate(),e))for(var i=0,n=this._slots;i0){if(null===r&&null===s){m=b;break}var S;null!==r&&((S=o?r.y-e:r.x-t)<0&&(S=-S),(null===m||Su)&&(u=S,f=s.x,_=s.y,g=b,null!==a&&(p=a.y)))}}return null!==m&&null!==r&&(r.x=l,r.y=c,null!==a&&(a.x=d)),null!==g&&null!==s&&(s.x=f,s.y=_,null!==a&&(a.y=p)),m},i.prototype.getBone=function(t){for(var e=0,i=this._bones;e=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=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=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=s)return this.globalTransformMatrix;if(d=7*(2*(o*(h+1)+2*o+h+_)+((r=i>this._kX*(t+s)+m)?1:0)),this._matrixCahce[d]>0)y.copyFromArray(g,d+1);else{var v=_*(u+2),b=this._hullCache[4],S=this._hullCache[5],x=this._hullCache[2]-(h-_)*b,w=this._hullCache[3]-(h-_)*S,T=this._vertices;r?this._getAffineTransform(-200,m+c,800,c,T[v+u+2],T[v+u+3],x+b,w+S,T[v],T[v+1],e._helpTransform,y,!0):this._getAffineTransform(-1e3,m,800,c,x,w,T[v],T[v+1],x+b,w+S,e._helpTransform,y,!1),g[d]=1,g[d+1]=y.a,g[d+2]=y.b,g[d+3]=y.c,g[d+4]=y.d,g[d+5]=y.tx,g[d+6]=y.ty}}else if(t>=s){if(i<-200||i>=s)return this.globalTransformMatrix;d=7*(2*(o*(h+1)+o+_)+((r=i>this._kX*(t-n)+m)?1:0)),this._matrixCahce[d]>0?y.copyFromArray(g,d+1):(v=(_+1)*(u+2)-2,b=this._hullCache[4],S=this._hullCache[5],x=this._hullCache[0]+_*b,w=this._hullCache[1]+_*S,T=this._vertices,r?this._getAffineTransform(n,m+c,800,c,x+b,w+S,T[v+u+2],T[v+u+3],x,w,e._helpTransform,y,!0):this._getAffineTransform(s,m,800,c,T[v],T[v+1],x,w,T[v+u+2],T[v+u+3],e._helpTransform,y,!1),g[d]=1,g[d+1]=y.a,g[d+2]=y.b,g[d+3]=y.c,g[d+4]=y.d,g[d+5]=y.tx,g[d+6]=y.ty)}else if(i<-200){if(t<-200||t>=s)return this.globalTransformMatrix;d=7*(o*(h+1)+2*f+((r=i>this._kY*(t-p-l)-n)?1:0)),this._matrixCahce[d]>0?y.copyFromArray(g,d+1):(v=2*f,b=this._hullCache[10],S=this._hullCache[11],x=this._hullCache[8]+f*b,w=this._hullCache[9]+f*S,T=this._vertices,r?this._getAffineTransform(p+l,-200,l,800,T[v+2],T[v+3],T[v],T[v+1],x+b,w+S,e._helpTransform,y,!0):this._getAffineTransform(p,-1e3,l,800,x,w,x+b,w+S,T[v],T[v+1],e._helpTransform,y,!1),g[d]=1,g[d+1]=y.a,g[d+2]=y.b,g[d+3]=y.c,g[d+4]=y.d,g[d+5]=y.tx,g[d+6]=y.ty)}else if(i>=s){if(t<-200||t>=s)return this.globalTransformMatrix;d=7*(2*(o*(h+1)+o+h+_)+((r=i>this._kY*(t-p-l)+s)?1:0)),this._matrixCahce[d]>0?y.copyFromArray(g,d+1):(v=h*(u+2)+2*f,b=this._hullCache[10],S=this._hullCache[11],x=this._hullCache[6]-(o-f)*b,w=this._hullCache[7]-(o-f)*S,T=this._vertices,r?this._getAffineTransform(p+l,n,l,800,x+b,w+S,x,w,T[v+2],T[v+3],e._helpTransform,y,!0):this._getAffineTransform(p,s,l,800,T[v],T[v+1],T[v+2],T[v+3],x,w,e._helpTransform,y,!1),g[d]=1,g[d+1]=y.a,g[d+2]=y.b,g[d+3]=y.c,g[d+4]=y.d,g[d+5]=y.tx,g[d+6]=y.ty)}else d=7*(2*(o*_+f)+((r=i>this._k*(t-p-l)+m)?1:0)),this._matrixCahce[d]>0?y.copyFromArray(g,d+1):(v=2*f+_*(u+2),T=this._vertices,r?this._getAffineTransform(p+l,m+c,l,c,T[v+u+4],T[v+u+5],T[v+u+2],T[v+u+3],T[v+2],T[v+3],e._helpTransform,y,!0):this._getAffineTransform(p,m,l,c,T[v],T[v+1],T[v+2],T[v+3],T[v+u+2],T[v+u+3],e._helpTransform,y,!1),g[d]=1,g[d+1]=y.a,g[d+2]=y.b,g[d+3]=y.c,g[d+4]=y.d,g[d+5]=y.tx,g[d+6]=y.ty);return y},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=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=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=0;this._localDirty&&this._updateGlobalTransformMatrix(l),l&&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 c=2*this.global.x,f=2*this.global.y,_=e._helpPoint;this.globalTransformMatrix.transformPoint(1e3,-200,_),this._hullCache[0]=_.x,this._hullCache[1]=_.y,this._hullCache[2]=c-_.x,this._hullCache[3]=f-_.y,this.globalTransformMatrix.transformPoint(0,this._dY,_,!0),this._hullCache[4]=_.x,this._hullCache[5]=_.y,this.globalTransformMatrix.transformPoint(200,1e3,_),this._hullCache[6]=_.x,this._hullCache[7]=_.y,this._hullCache[8]=c-_.x,this._hullCache[9]=f-_.y,this.globalTransformMatrix.transformPoint(this._dX,0,_,!0),this._hullCache[10]=_.x,this._hullCache[11]=_.y}else this._childrenTransformDirty&&(this._childrenTransformDirty=!1);this._localDirty=!0},e}(t.Bone);t.Surface=e}(sat),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 rat(i,e),i.prototype._onClear=function(){e.prototype._onClear.call(this);for(var i=[],n=0,r=this._displayList;n=0&&(null!==this._rawDisplayDatas&&(s=this._displayIndex=0&&this._displayIndex=0&&null!==this._rawDisplayDatas){var a=this._displayIndex0)for(var o=0,h=s;o0){this._displayList.length!==e.length&&(this._displayList.length=e.length);for(var i=0,n=e.length;i0&&(this._displayList.length=0);return this._displayIndex>=0&&this._displayIndex=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;i0&&(1===h||2===h?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))),h},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;rd)continue}for(;;W++){var L=p[W];if(!(F>L)){0===W?F/=L:F=(F-(z=p[W-1]))/(L-z);break}}if(W!==f){f=W;var N=6*W;for(T=u[N],A=u[N+1],C=u[N+2],D=u[N+3],B=u[N+4],I=u[N+5],b=2*(m=.03*(T-2*C+B))+(y=.006*(3*(C-B)-T+(M=u[N+6]))),S=2*(g=.03*(A-2*D+I))+(v=.006*(3*(D-I)-A+(P=u[N+7]))),x=.3*(C-T)+m+.16666667*y,w=.3*(D-A)+g+.16666667*v,k=Math.sqrt(x*x+w*w),O[0]=k,N=1;N<8;N++)x+=b,w+=S,b+=y,S+=v,k+=Math.sqrt(x*x+w*w),O[N]=k;x+=b,w+=S,k+=Math.sqrt(x*x+w*w),O[8]=k,x+=b+y,w+=S+v,k+=Math.sqrt(x*x+w*w),O[9]=k,R=0}for(F*=k;;R++){var V=O[R];if(!(F>V)){var z;0===R?F/=V:F=R+(F-(z=O[R-1]))/(V-z);break}}this.addCurvePosition(.1*F,T,A,C,D,B,I,M,P,a,H,i)}}else{var U=t.curveLengths;if(d=U[c-=h?1:2],n&&(_*=d),r)for(var G=0;Gd)continue}for(var j=0;;W++){var q=U[W];if(!(_>q)){if(0===W)j=_/q;else{var X=U[W-1];j=(_-X)/(q-X)}break}}W!==f&&(f=W,h&&W===c?(this._computeVertices(l-4,4,0,u),this._computeVertices(0,4,4,u)):this._computeVertices(6*W+2,8,0,u)),this.addCurvePosition(j,u[0],u[1],u[2],u[3],u[4],u[5],u[6],u[7],a,H,i)}}},i.prototype.addCurvePosition=function(t,e,i,n,r,s,a,o,h,u,l,c){if(0===t)return u[l]=e,u[l+1]=i,void(u[l+2]=0);if(1===t)return u[l]=o,u[l+1]=h,void(u[l+2]=0);var f=1-t,_=f*f,d=t*t,p=_*f,m=_*t*3,g=f*d*3,y=t*d,v=p*e+m*n+g*s+y*o,b=p*i+m*r+g*a+y*h;u[l]=v,u[l+1]=b,u[l+2]=c?Math.atan2(b-(p*i+m*r+g*a),v-(p*e+m*n+g*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;n0?t.Transform.DEG_RAD:-t.Transform.DEG_RAD));for(var B=this.rotateMix,I=this.translateMix,M=(g=0,3);g<_;g++,M+=3){var P,E;(P=u[g]).updateByConstraint(),(E=P.globalTransformMatrix).tx+=(C-E.tx)*I,E.ty+=(D-E.ty)*I;var O=(b=T[M])-C,k=(S=T[M+1])-D;if(c){var R=this._boneLengths[g],F=(Math.sqrt(O*O+k*k)/R-1)*B+1;E.a*=F,E.b*=F}if(C=b,D=S,B>0){var L=E.a,N=E.b,V=E.c,z=E.d,U=void 0,G=void 0,H=void 0;if(U=f?T[M-1]:Math.atan2(k,O),U-=Math.atan2(N,L),w){G=Math.cos(U),H=Math.sin(U);var W=P._boneData.length;C+=(W*(G*L-H*N)-O)*B,D+=(W*(H*L+G*N)-k)*B}else U+=A;U>t.Transform.PI?U-=t.Transform.PI_D:U<-t.Transform.PI&&(U+=t.Transform.PI_D),U*=B,G=Math.cos(U),H=Math.sin(U),E.a=G*L-H*N,E.b=H*L+G*N,E.c=G*V-H*z,E.d=H*V+G*z}P.global.fromMatrix(E)}this.dirty=!1}}},i.prototype.invalidUpdate=function(){},i}(e);t.PathConstraint=n}(sat),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;i0&&(this._animatebles[i-n]=s,this._animatebles[i]=null),s.advanceTime(t)):n++}if(n>0){for(r=this._animatebles.length;i=0&&(this._animatebles[e]=null,t.clock=null)},t.prototype.clear=function(){for(var t=0,e=this._animatebles;t0&&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();r0){var c=l[0];if(null!==c&&c.parent===this._armature.armatureData.defaultSkin){u._cachedFrameIndices=i.getSlotCachedFrameIndices(u.name);continue}}u._cachedFrameIndices=null}}d.advanceTime(t,n)}else if(e>1){for(var f=0,_=0;f0&&d._subFadeState>0?(_++,this._armature._dragonBones.bufferObject(d),this._animationDirty=!0,this._lastAnimationState===d&&(this._lastAnimationState=null)):(_>0&&(this._animationStates[f-_]=d),d.advanceTime(t,0)),f===e-1&&_>0&&(this._animationStates.length-=_,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;t1?(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 h=!1,u=0,l=this._animationStates.length;uthis._animationStates[u].layer){h=!0,this._animationStates.splice(u,0,o);break}if(u!==l-1&&o.layer>this._animationStates[u+1].layer){h=!0,this._animationStates.splice(u+1,0,o);break}}h||this._animationStates.push(o)}else this._animationStates.push(o);for(var c=0,f=this._armature.getSlots();c0)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;t0},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){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),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 o=this._animations[t];return o&&i>0&&(this._animationConfig.timeScale=o.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;e0;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;r0,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 h=Math.floor(this._actionTimeline.currentTime*i);this._armature._cacheFrameIndex===h?(r=!1,s=!1):(this._armature._cacheFrameIndex=h,this._animationData.cachedFrames[h]?s=!1:this._animationData.cachedFrames[h]=!0)}if(r){if(s)for(var u=0,l=this._boneTimelines.length;u0&&(this._subFadeState=0,this._poseTimelines.length>0)){for(var _=0,d=this._poseTimelines;_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;i1e-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=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=0&&n.contains(o)&&this._boneMask.splice(h,1)}else for(var u=0,l=r;u0},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!!(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._duration0&&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;i0))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}(sat),function(t){var e=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rat(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 rat(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.currentPlayTimes0?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 rat(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 rat(e,t),e.prototype._onClear=function(){t.prototype._onClear.call(this),this.slot=null},e}(i);t.SlotTimelineState=r;var s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rat(e,t),e.prototype._onClear=function(){t.prototype._onClear.call(this),this.constraint=null},e}(i);t.ConstraintTimelineState=s}(sat),function(t){var e=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return rat(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;a0&&s.hasDBEventListener(t.EventObject.COMPLETE)&&((u=t.BaseObject.borrowObject(t.EventObject)).type=t.EventObject.COMPLETE,u.armature=this._armature,u.animationState=this._animationState)),this._frameCount>1){var l=this._timelineData,c=Math.floor(this.currentTime*this._frameRate),f=this._frameIndices[l.frameIndicesOffset+c];if(this._frameIndex!==f){var _=this._frameIndex;if(this._frameIndex=f,null!==this._timelineArray)if(this._frameOffset=this._animationData.frameOffset+this._timelineArray[l.offset+5+this._frameIndex],o){if(_<0){var d=Math.floor(r*this._frameRate);_=this._frameIndices[l.frameIndicesOffset+d],this.currentPlayTimes===n&&_===f&&(_=-1)}for(;_>=0;){var p=this._animationData.frameOffset+this._timelineArray[l.offset+5+_],m=this._frameArray[p]/this._frameRate;if(this._position<=m&&m<=this._position+this._duration&&this._onCrossFrame(_),null!==h&&0===_&&(this._armature._dragonBones.bufferEvent(h),h=null),_>0?_--:_=this._frameCount-1,_===f)break}}else for(_<0&&(d=Math.floor(r*this._frameRate),_=this._frameIndices[l.frameIndicesOffset+d],p=this._animationData.frameOffset+this._timelineArray[l.offset+5+_],m=this._frameArray[p]/this._frameRate,this.currentPlayTimes===n&&(r<=m?_>0?_--:_=this._frameCount-1:_===f&&(_=-1)));_>=0&&(_=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 rat(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 rat(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 s=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return rat(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=s;var a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rat(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=a;var o=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._current=[],e._delta=[],e._result=[],e}return rat(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=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 u=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 rat(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=u;var l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._current=[],e._delta=[],e._result=[],e}return rat(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=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}(sat),function(t){var e=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return rat(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}(sat),function(t){var e=function(){function e(){}return e._getArmatureType=function(t){switch(t.toLowerCase()){case"stage":return 2;case"armature":default:return 0;case"movieclip":return 1}},e._getBoneType=function(t){switch(t.toLowerCase()){case"bone":default:return 0;case"surface":return 1}},e._getDisplayType=function(t){switch(t.toLowerCase()){case"image":default:return 0;case"mesh":return 2;case"armature":return 1;case"boundingbox":return 3;case"path":return 4}},e._getBoundingBoxType=function(t){switch(t.toLowerCase()){case"rectangle":default:return 0;case"ellipse":return 1;case"polygon":return 2}},e._getActionType=function(t){switch(t.toLowerCase()){case"play":default:return 0;case"frame":return 10;case"sound":return 11}},e._getBlendMode=function(t){switch(t.toLowerCase()){case"normal":default: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}},e._getPositionMode=function(t){switch(t.toLocaleLowerCase()){case"percent":default:return 1;case"fixed":return 0}},e._getSpacingMode=function(t){switch(t.toLocaleLowerCase()){case"length":default:return 0;case"percent":return 2;case"fixed":return 1}},e._getRotateMode=function(t){switch(t.toLocaleLowerCase()){case"tangent":default:return 0;case"chain":return 1;case"chainscale":return 2}},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("已废弃");for(var r={},s=i[e.SUB_TEXTURE],a=0,o=s.length;a255)return encodeURI(r);return r}return String(r)}return n},n.prototype._getCurvePoint=function(t,e,i,n,r,s,a,o,h,u){var l=1-h,c=l*l,f=h*h,_=l*c,d=3*h*c,p=3*l*f,m=h*f;u.x=_*t+d*i+p*r+m*a,u.y=_*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=0&&n+61e-4;){var y=.5*(g+m);this._getCurvePoint(h,u,l,c,f,_,d,p,y,this._helpPoint),a-this._helpPoint.x>0?m=y:g=y}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,h=this._parseActionData(e,r,s,a),u=0,l=null,c=0,f=h;cn)break;u++}null===l&&((l=new i).frameStart=n,this._actionFrames.splice(u+1,0,l));for(var g=0;g0){var _=r.getBone(c);null!==_?f.parent=_:(c in this._cacheBones||(this._cacheBones[c]=[]),this._cacheBones[c].push(f))}if(f.name in this._cacheBones){for(var d=0,p=this._cacheBones[f.name];d0&&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 h=0,u=a;h0?r:i,this._parsePivot(e,o);break;case 1:var h=a=t.BaseObject.borrowObject(t.ArmatureDisplayData);if(h.name=i,h.path=r.length>0?r:i,h.inheritAnimation=!0,t.DataParser.ACTIONS in e)for(var u=0,l=this._parseActionData(e[t.DataParser.ACTIONS],0,null,null);u0?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 g=a=t.BaseObject.borrowObject(t.BoundingBoxDisplayData);g.name=i,g.path=r.length>0?r:i,g.boundingBox=m}break;case 4:var y=e[t.DataParser.LENGTHS],v=a=t.BaseObject.borrowObject(t.PathDisplayData);v.closed=n._getBoolean(e,t.DataParser.CLOSED,!1),v.constantSpeed=n._getBoolean(e,t.DataParser.CONSTANT_SPEED,!1),v.name=i,v.path=r.length>0?r:i,v.vertices.data=this._data,v.curveLengths.length=y.length;for(var b=0,S=y.length;bi.width&&(i.width=h),ui.height&&(i.height=u))}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;a0&&(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,h,u,l){if(null!==e&&s.length>0&&s in e&&(r=e[s]),null===r)return null;var c=r.length;if(0===c)return null;var f=this._frameIntArray.length,_=this._frameFloatArray.length,d=t.BaseObject.borrowObject(t.TimelineData),p=this._timelineArray.length;if(this._timelineArray.length+=5+c,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]=c,this._timelineArray[p+3]=u,this._timelineArray[p+4]=o?f-this._animation.frameIntOffset:h?_-this._animation.frameFloatOffset:0,this._timeline=d,d.type=a,d.offset=p,1===c)d.frameIndicesOffset=-1,this._timelineArray[p+5+0]=l.call(this,r[0],0,0)-this._animation.frameOffset;else{var m=this._animation.frameCount+1,g=this._data.frameIndices,y=0;t.DragonBones.webAssembly?(y=g.size(),g.resize(y+m,0)):(y=g.length,g.length+=m),d.frameIndicesOffset=y;for(var v=0,b=0,S=0,x=0;v0)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;o0){for(var a=this._armature.sortedSlots.length,o=new Array(a-s.length/2),h=new Array(a),u=0;u0?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],h=n._getNumber(e,t.DataParser.OFFSET,0),u=this._surface.vertices.length/2,l=0,c=0;this._frameFloatArray.length+=2*u;for(var f=0;f<2*u;f+=2)l=f=o.length?0:o[f-h],c=f+1=o.length?0:o[f+1-h],this._frameFloatArray[s+f]=l,this._frameFloatArray[s+f+1]=c;if(0===i){var _=this._frameIntArray.length;this._frameIntArray.length+=5,this._frameIntArray[_+0]=0,this._frameIntArray[_+1]=this._frameFloatArray.length-s,this._frameIntArray[_+2]=this._frameFloatArray.length-s,this._frameIntArray[_+3]=0,this._frameIntArray[_+4]=s-this._animation.frameFloatOffset,this._timelineArray[this._timeline.offset+3]=_-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 h=this._frameIntArray.length;return this._frameIntArray.length+=1,this._frameIntArray[h]=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,h=n._getNumber(e,t.DataParser.OFFSET,0),u=this._intArray[this._mesh.vertices.offset+0],l=this._mesh.parent.name+"_"+this._slot.name+"_"+this._mesh.name,c=this._mesh.vertices.weight,f=0,_=0,d=0,p=0;if(null!==c){var m=this._weightSlotPose[l];this._helpMatrixA.copyFromArray(m,0),this._frameFloatArray.length+=2*c.count,d=c.offset+2+c.bones.length}else this._frameFloatArray.length+=2*u;for(var g=0;g<2*u;g+=2)if(null===o?(f=0,_=0):(f=g=o.length?0:o[g-h],_=g+1=o.length?0:o[g+1-h]),null!==c){var y=this._weightBonePoses[l],v=this._intArray[d++];this._helpMatrixA.transformPoint(f,_,this._helpPoint,!0),f=this._helpPoint.x,_=this._helpPoint.y;for(var b=0;b=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,h=e[t.DataParser.ARMATURE];o0&&(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,h=a.length;o0&&f>0&&(l.frame=t.TextureData.createRectangle(),l.frame.x=n._getNumber(u,t.DataParser.FRAME_X,0),l.frame.y=n._getNumber(u,t.DataParser.FRAME_Y,0),l.frame.width=c,l.frame.height=f),i.addTexture(l)}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}(sat),function(t){var e=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return rat(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 h=t[i++];if(-1===h)e=0!==s?65533:-1;else if(0===s)this._inRange(h,0,127)?e=h:(this._inRange(h,194,223)?(s=1,o=128,r=h-192):this._inRange(h,224,239)?(s=2,o=2048,r=h-224):this._inRange(h,240,244)&&(s=3,o=65536,r=h-240),r*=Math.pow(64,s),e=null);else if(this._inRange(h,128,191))if(a+=1,r+=(h-128)*Math.pow(64,s-a),a!==s)e=null;else{var u=r,l=o;r=0,s=0,a=0,o=0,e=this._inRange(u,l,1114111)&&!this._inRange(u,55296,57343)?u:h}else r=0,s=0,a=0,o=0,i--,e=h;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;e255)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,h=this._data.frameIndices;t.DragonBones.webAssembly?(a=h.size(),h.resize(a+o,0)):(a=h.length,h.length+=o),r.frameIndicesOffset=a;for(var u=0,l=0,c=0,f=0;u=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;o0&&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 h=this._dragonBonesDataMap[o].getArmature(n);if(null!==h){t.skin=h.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;n0&&(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 h=i;null!==e&&e.textureAtlasName.length>0&&(h.texture=this._getTextureData(e.textureAtlasName,h.path)),null===h.texture&&(h.texture=this._getTextureData(s,h.path)),a=this._isSupportMesh()?r.meshDisplay:r.rawDisplay;break;case 1:var u=i,l=this._buildChildArmature(e,r,i);if(null!==l){if(l.inheritAnimation=u.inheritAnimation,!l.inheritAnimation){var c=u.actions.length>0?u.actions:l.armatureData.defaultActions;if(c.length>0)for(var f=0,_=c;f<_.length;f++){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 l.animation.play()}u.armature=l.armatureData}a=l}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=0)){var l=i.getDisplays(u.name);if(l||(null!==a&&i!==a&&(l=a.getDisplays(u.name)),l)){var c=t.DragonBones.webAssembly?l.size():l.length,f=u.displayList;f.length=c;for(var _=0,d=c;_0&&n.inheritDeform,a=this._localVertices;if(r){var o=n.data,h=o.intArray,u=o.floatArray,l=h[n.offset+Not.MeshVertexCount],c=h[r.offset+Not.WeigthFloatOffset];c<0&&(c+=65536);for(var f=0,_=r.offset+Not.WeigthBoneIndices+i.length,d=c,p=0,m=0;f=0;o--)if(s>=e[o]._zOrder){e.splice(o+1,0,r),a=!0;break}a||e.unshift(r)}this._slots=e},i._buildArmature=function(t){var e=vat.borrowObject(eot);e._skinData=t.skin,e._animation=vat.borrowObject(lot),e._animation._armature=e,e._animation.animations=t.armature.animations,e._isChildArmature=!1;var i=new Qot;return e.init(t.armature,i,i,this._dragonBones),e},i._buildSlot=function(t,e,i){var n=vat.borrowObject(Jot),r=n;return n.init(e,i,r,r),n},i.getDragonBonesDataByUUID=function(t){for(var e in this._dragonBonesDataMap)if(-1!==e.indexOf(t))return this._dragonBonesDataMap[e];return null},i.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])},e}(Fot),cat._factory=null,lat=cat))||lat,$ot=1/60,tht=[],eht=[],iht=0,nht=0,rht=0,sht=null,aht=null,oht=0,hht=0,uht=0,lht=0,cht=0,fht=function(){function t(){this.maxVertexCount=0,this.maxIndexCount=0,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}var e=t.prototype;return e.init=function(t,e){this._inited=!0,this._armatureInfo=t,this._animationName=e},e.clear=function(){this._inited=!1;for(var t=0,e=this.frames.length;t0&&(r[lht-1].vfOffset=rht),r.length=lht,s.length=iht;var a=uht-1;if(a>=0)if(hht>0){var o=n[a];o.indexCount=hht,o.vfCount=9*oht,o.vertexCount=oht,n.length=uht}else n.length=uht-1;if(0!==n.length){var h,u=i.vertices,l=rht/5,c=9*l;(!u||u.length>8&255)/255,u[f+7]=(h>>16&255)/255,u[f+8]=(h>>24&255)/255,f+=9;var d=i.indices;(!d||d.lengththis.maxVertexCount?l:this.maxVertexCount,this.maxIndexCount=d.length>this.maxIndexCount?d.length:this.maxIndexCount}},e._traverseArmature=function(t,e){var i,n,r,s,a,o,h,u,l,c=this._tempColors,f=this._tempSegments,_=this._tempBoneInfos,d=t._slots,p=t._bones;if(this._enableCacheAttachedInfo)for(var m=0,g=p.length;m=0&&(hht>0?((l=f[u]).indexCount=hht,l.vertexCount=oht,l.vfCount=9*oht):uht--),f[uht]={tex:h,blendMode:r._blendMode,indexCount:0,vertexCount:0,vfCount:0},uht++,hht=0,oht=0),o=(a.a*e<<24>>>0)+(a.b<<16)+(a.g<<8)+a.r,cht!==o&&(cht=o,lht>0&&(c[lht-1].vfOffset=rht),c[lht++]={r:a.r,g:a.g,b:a.b,a:a.a*e,vfOffset:0}),i=r._localVertices,n=r._indices,s=r._worldMatrix;for(var w=0,T=i.length;w":0},r=i.animations,s=0;for(var a in r)r.hasOwnProperty(a)&&(n[a]=s+1,s++);return Pe(n)}return null},i.destroy=function(){return this._clear(),t.prototype.destroy.call(this)},i._clear=function(){this._factory&&(_ht.sharedCache.resetArmature(this._uuid),this._factory.removeDragonBonesDataByUUID(this._uuid,!0))},n(e,[{key:"dragonBonesJson",get:function(){return this._dragonBonesJson},set:function(t){this._dragonBonesJson=t,this._dragonBonesJsonData=JSON.parse(t),this.reset()}}]),e}(xm),gat=Vh(mat.prototype,"_dragonBonesJson",[xht],(function(){return""})),pat=mat))||pat;T.internal.DragonBonesAsset=wht;var Tht,Aht=hu,Cht=Eu,Dht=(dht=Kh("dragonBones.DragonBonesAtlasAsset"),pht=Cht(By),dht((ght=function(t){function e(){var e;return(e=t.call(this)||this)._atlasJson=yht&&yht(),e._texture=vht&&vht(),e._atlasJsonData=bht&&bht(),e._factory=null,e._textureAtlasData=Sht&&Sht(),e._clear(),e}s(e,t);var i=e.prototype;return i.createNode=function(t){var e=new Qv(this.name);return e.addComponent("dragonBones.ArmatureDisplay").dragonAtlasAsset=this,t(null,e)},i.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)},i.destroy=function(){return this._clear(),t.prototype.destroy.call(this)},i._clear=function(){this._factory&&(_ht.sharedCache.resetArmature(this._uuid),this._factory.removeTextureAtlasData(this._uuid,!0),this._factory.removeDragonBonesDataByUUID(this._uuid,!0)),this._textureAtlasData=null},n(e,[{key:"atlasJson",get:function(){return this._atlasJson},set:function(t){this._atlasJson=t,this._atlasJsonData=JSON.parse(this.atlasJson),this._clear()}},{key:"texture",get:function(){return this._texture},set:function(t){this._texture=t,this._clear()}}]),e}(xm),yht=Vh(ght.prototype,"_atlasJson",[Aht],(function(){return""})),vht=Vh(ght.prototype,"_texture",[Aht,pht],(function(){return null})),bht=Vh(ght.prototype,"_atlasJsonData",[Aht],(function(){return{}})),Sht=Vh(ght.prototype,"_textureAtlasData",[Aht],(function(){return null})),mht=ght))||mht);T.internal.DragonBonesAtlasAsset=Dht;var Bht,Iht,Mht,Pht,Eht,Oht,kht,Rht,Fht,Lht,Nht,Vht,zht,Uht,Ght,Hht,Wht,jht,qht,Xht,Yht,Kht,Jht,Qht,Zht,$ht,tut,eut,iut,nut,rut=new Kr,sut=Kh("dragonBones.AttachUtil")(Tht=function(){function t(){this._inited=!1,this._armature=null,this._armatureNode=null,this._armatureDisplay=null}var e=t.prototype;return e.init=function(t){this._inited=!0,this._armature=t._armature,this._armatureNode=t.node,this._armatureDisplay=t},e.reset=function(){this._inited=!1,this._armature=null,this._armatureNode=null,this._armatureDisplay=null},e._syncAttachedNode=function(){if(this._inited){this._armatureNode.worldMatrix;var t=null,e=this._armatureDisplay.isAnimationCached();if(!e||!this._armatureDisplay||(t=this._armatureDisplay._curFrame&&this._armatureDisplay._curFrame.boneInfos))for(var i,n,r,s=this._armatureDisplay.sockets,a=this._armatureDisplay.socketNodes,o=this._armature.getBones(),h=s.length-1;h>=0;h--){var u=s[h],l=u.target;if(l)if(l.isValid){var c=e?t[u.boneIndex]:o[u.boneIndex];c&&(i=l,n=c.globalTransformMatrix,r=void 0,(r=rut).m00=n.a,r.m01=n.b,r.m04=-n.c,r.m05=-n.d,r.m12=n.tx,r.m13=n.ty,i.matrix=rut)}else a.delete(u.path),s.splice(h,1)}}},t}())||Tht,aut=function(t){function e(){var e;return(e=t.call(this)||this)._armatures=new Set,e}s(e,t),e.getInstance=function(){return e._instance||(e._instance=new e,WE.registerSystem(e.ID,e._instance,200)),e._instance};var i=e.prototype;return i.add=function(t){t&&(this._armatures.has(t)||this._armatures.add(t))},i.remove=function(t){t&&this._armatures.has(t)&&this._armatures.delete(t)},i.postUpdate=function(t){this._armatures&&this._armatures.forEach((function(e){e.updateAnimation(t),e.syncAttachedNode()}))},i.prepareRenderData=function(){this._armatures&&this._armatures.forEach((function(t){t._markForUpdateRenderData()}))},e}(Ef);aut.ID="ARMATURE",aut._instance=void 0,T.internal.ArmatureSystem=aut;var out={default:-1};ke(out);var hut={"":0};ke(hut);var uut={REALTIME:0};ke(uut);var lut={REALTIME:0,SHARED_CACHE:1,PRIVATE_CACHE:2};ke(lut);var cut=Kh,fut=hu,_ut=Eu,dut=Uu,put=(Bht=cut("dragonBones.ArmatureDisplay.DragonBoneSocket"),Iht=_ut(Qv),Bht((Pht=function(t,e){void 0===t&&(t=""),void 0===e&&(e=null),this.path=Eht&&Eht(),this.target=Oht&&Oht(),this.boneIndex=null,this.path=t,this.target=e},Eht=Vh(Pht.prototype,"path",[fut],(function(){return""})),Oht=Vh(Pht.prototype,"target",[Iht,fut],(function(){return null})),Mht=Pht))||Mht);ue(put,"dragonBones.ArmatureDisplay.DragonBoneSocket");var mut=(kht=cut("dragonBones.ArmatureDisplay"),Rht=_ut(wht),Fht=_ut(Dht),Lht=_ut(out),Nht=_ut(hut),Vht=_ut([put]),zht=_ut(NT),kht((nut=function(t){s(i,t);var e=i.prototype;function i(){var e;return(e=t.call(this)||this).playTimes=Hht&&Hht(),e.premultipliedAlpha=Wht&&Wht(),e._armature=null,e.attachUtil=void 0,e._defaultArmatureIndexValue=jht&&jht(),e._dragonAsset=qht&&qht(),e._dragonAtlasAsset=Xht&&Xht(),e._armatureName=Yht&&Yht(),e._animationName=Kht&&Kht(),e._animationIndexValue=Jht&&Jht(),e._preCacheMode=-1,e._cacheMode=0,e._defaultCacheModeValue=Qht&&Qht(),e._timeScale=Zht&&Zht(),e._playTimes=$ht&&$ht(),e._debugBones=tut&&tut(),e._enableBatch=eut&&eut(),e._debugDraw=null,e._armatureKey="",e._accTime=0,e._playCount=0,e._frameCache=null,e._curFrame=null,e._playing=!1,e._armatureCache=null,e._eventTarget=void 0,e._factory=null,e._displayProxy=null,e._drawIdx=0,e._drawList=new ho((function(){return{material:null,texture:null,indexOffset:0,indexCount:0}}),1),e.maxVertexCount=0,e.maxIndexCount=0,e._materialCache={},e._enumArmatures=Pe({}),e._enumAnimations=Pe({}),e._socketNodes=new Map,e._cachedSockets=new Map,e._sockets=iut&&iut(),e._inited=void 0,e._drawInfoList=[],e._cacheModeEnum=void 0,e._eventTarget=new Bo,e._inited=!1,e.attachUtil=new sut,e.initFactory(),wi(f(e),"_animationIndex",e._enumAnimations),wi(f(e),"_defaultArmatureIndex",e._enumArmatures),e._useVertexOpacity=!0,e}return e.requestDrawInfo=function(t){return this._drawInfoList[t]||(this._drawInfoList[t]=new XF),this._drawInfoList[t]},e.initFactory=function(){this._factory=Zot.getInstance()},e.onLoad=function(){t.prototype.onLoad.call(this)},e._requestDrawData=function(t,e,i,n){var r=this._drawList.add();return r.material=t,r.texture=e,r.indexOffset=i,r.indexCount=n,r},e.destroyRenderData=function(){this._drawList.reset(),t.prototype.destroyRenderData.call(this)},e.getMaterialTemplate=function(){return null!==this.customMaterial?this.customMaterial:(this.material||this.updateMaterial(),this.material)},e.getMaterialForBlend=function(t,e){var i=t+"/"+e,n=this._materialCache[i];if(n)return n;var r=this.getMaterialTemplate();return(n=new XT({parent:r,subModelIdx:0,owner:this})).recompileShaders({TWO_COLORED:!1,USE_LOCAL:!1}),this._materialCache[i]=n,n.overridePipelineStates({blendState:{targets:[{blendSrc:t,blendDst:e}]}}),n},e._updateBuiltinMaterial=function(){return fT.get("default-spine-material")},e.updateMaterial=function(){var t;t=this._customMaterial?this._customMaterial:this._updateBuiltinMaterial(),this.setSharedMaterial(t,0),this._cleanMaterialCache()},e._render=function(t){var e=0;if(this.renderData&&this._drawList){for(var i=this.renderData,n=i.chunk,r=n.vertexAccessor,s=i.getMeshBuffer(),a=s.indexOffset,o=0;othis.maxVertexCount?e.maxVertexCount:this.maxVertexCount,this.maxIndexCount=e.maxIndexCount>this.maxIndexCount?e.maxIndexCount:this.maxIndexCount,this.renderData.resize(this.maxVertexCount,this.maxIndexCount),(!this.renderData.indices||this.maxIndexCount>this.renderData.indices.length)&&(this.renderData.indices=new Uint16Array(this.maxIndexCount)))),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._playing=!1,this._playCount=0,this._emitCacheCompleteEvent(),void this.attachUtil._syncAttachedNode();this._accTime=0,r=0,this._emitCacheCompleteEvent()}this._curFrame=i[r],this.attachUtil._syncAttachedNode()}else e.isInvalid()&&(e.updateToFrame(),this._curFrame=i[i.length-1],this.renderData&&(this.renderData.vertexCountthis.maxVertexCount?e.maxVertexCount:this.maxVertexCount,this.maxIndexCount=e.maxIndexCount>this.maxIndexCount?e.maxIndexCount:this.maxIndexCount,this.renderData.resize(this.maxVertexCount,this.maxIndexCount),(!this.renderData.indices||this.maxIndexCount>this.renderData.indices.length)&&(this.renderData.indices=new Uint16Array(this.maxIndexCount))))}}},e.onDestroy=function(){this._materialInstances=this._materialInstances.filter((function(t){return!!t})),this._inited=!1,2===this._cacheMode?(this._armatureCache.dispose(),this._armatureCache=null,this._armature=null):1===this._cacheMode?(this._armatureCache=null,this._armature=null):this._armature&&(this._armature.dispose(),this._armature=null),this._drawList.destroy(),t.prototype.onDestroy.call(this)},e._updateDebugDraw=function(){if(this.debugBones){if(!this._debugDraw){var t,e=new Qv("DEBUG_DRAW_NODE");e.hideFlags|=1032;try{(t=e.addComponent("cc.Graphics")).lineWidth=1,t.strokeColor=new lr(255,0,0,255),this._debugDraw=t,this._debugDraw.node.parent=this.node}catch(t){ot(4501,t.message),e.destroy(),e=null}}}else this._debugDraw&&(this._debugDraw.node.parent=null);this._markForUpdateRenderData()},e._updateBatch=function(){this._cleanMaterialCache(),this._markForUpdateRenderData()},e._buildArmature=function(){if(this.dragonAsset&&this.dragonAtlasAsset&&this.armatureName){this._armature&&(2===this._preCacheMode?this._armatureCache.dispose():0===this._preCacheMode&&this._armature.dispose(),this._armatureCache=null,this._armature=null,this._displayProxy=null,this._frameCache=null,this._curFrame=null,this._playing=!1,this._preCacheMode=-1),1===this._cacheMode?this._armatureCache=_ht.sharedCache:2===this._cacheMode&&(this._armatureCache=new _ht,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=0)),this._preCacheMode=this._cacheMode,0===this._cacheMode){if(this._displayProxy=this._factory.buildArmatureDisplay(this.armatureName,this._armatureKey,"",t),!this._displayProxy)return;this._displayProxy._ccNode=this.node,this._displayProxy._ccComponent=this,this._displayProxy.setEventTarget(this._eventTarget),this._armature=this._displayProxy._armature,this._armature.animation.timeScale=this.timeScale}if(0!==this._cacheMode&&this.debugBones&&X("Debug bones is invalid in cached mode"),this._armature){var e=this._armature.armatureData.aabb;this.node._getUITransformComp().setContentSize(e.width,e.height)}this.attachUtil.init(this),this.animationName&&this.playAnimation(this.animationName,this.playTimes),this._flushAssembler()}},e.querySockets=function(){return this._armature?(0===this._cachedSockets.size&&this._indexBoneSockets(),Array.from(this._cachedSockets.keys()).sort()):[]},e.querySocketPathByName=function(t){for(var e,i=[],n=p(this._cachedSockets.keys());!(e=n()).done;){var r=e.value;r.endsWith(t)&&i.push(r)}return i},e._parseDragonAtlasAsset=function(){this.dragonAtlasAsset&&this.dragonAtlasAsset.init(this._factory)},e._refresh=function(){this._buildArmature(),this._indexBoneSockets(),this._markForUpdateRenderData()},e._updateCacheModeEnum=function(){this._cacheModeEnum=Pe({}),this._armature?Object.assign(this._cacheModeEnum,lut):Object.assign(this._cacheModeEnum,uut),wi(this,"_defaultCacheMode",this._cacheModeEnum)},e._updateAnimEnum=function(){var t;t=this.dragonAsset?this.dragonAsset.getAnimsEnum(this.armatureName):hut,this._enumAnimations=Pe({}),Object.assign(this._enumAnimations,t||hut),Pe.update(this._enumAnimations),wi(this,"_animationIndex",this._enumAnimations)},e._updateArmatureEnum=function(){var t;t=this.dragonAsset?this.dragonAsset.getArmatureEnum():out,this._enumArmatures=Pe({}),Object.assign(this._enumArmatures,t||out),Pe.update(this._enumArmatures),wi(this,"_defaultArmatureIndex",this._enumArmatures)},e._indexBoneSockets=function(){if(this._armature){this._cachedSockets.clear();var t=this._cachedSockets,e=function t(e,i,n){if(n.has(e))return n.get(e);var r=i[e];if(!r.parent)return n.set(e,r.name),r.path=r.name,r.name;var s=t(r.parent._boneIndex,i,n)+"/"+r.name;return n.set(e,s),r.path=s,s};!function i(n,r){for(var s=r.getBones(),a=new Map,o=0;o0&&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);return this._markForUpdateRenderData(),null},e.updateAnimationCache=function(t){this.isAnimationCached()&&this._armatureCache.updateAnimationCache(this._armatureKey,t)},e.invalidAnimationCache=function(){this.isAnimationCached()&&this._armatureCache.invalidAnimationCache(this._armatureKey)},e.getArmatureNames=function(){var t=this._factory.getDragonBonesData(this._armatureKey);return t&&t.armatureNames||[]},e.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},e.on=function(t,e,i){this.addEventListener(t,e,i)},e.off=function(t,e,i){this.removeEventListener(t,e,i)},e.once=function(t,e,i){this._eventTarget.once(t,e,i)},e.addEventListener=function(t,e,i){this._eventTarget.on(t,e,i)},e.removeEventListener=function(t,e,i){this._eventTarget.off(t,e,i)},e.buildArmature=function(t,e){return this._factory.createArmatureNode(this,t,e)},e.armature=function(){return this._armature},e._flushAssembler=function(){var t=i.Assembler.getAssembler(this);this._assembler!==t&&(this._assembler=t),this._armature&&this._assembler&&(this._renderData=this._assembler.createData(this),this._renderData&&(this.maxVertexCount=this._renderData.vertexCount,this.maxIndexCount=this._renderData.indexCount),this._markForUpdateRenderData(),this._updateColor())},e._updateSocketBindings=function(){if(this._armature){this._socketNodes.clear();for(var t=0,e=this._sockets.length;t0&&this._frameCache&&this._frameCache.enableCacheAttachedInfo()}},{key:"socketNodes",get:function(){return this._socketNodes}},{key:"drawList",get:function(){return this._drawList}},{key:"customMaterial",get:function(){return this._customMaterial},set:function(t){this._customMaterial=t,this.updateMaterial(),this._markForUpdateRenderData()}}]),i}(TL),nut.AnimationCacheMode=lut,v((Ght=nut).prototype,"dragonAsset",[Rht],Object.getOwnPropertyDescriptor(Ght.prototype,"dragonAsset"),Ght.prototype),v(Ght.prototype,"dragonAtlasAsset",[Fht],Object.getOwnPropertyDescriptor(Ght.prototype,"dragonAtlasAsset"),Ght.prototype),v(Ght.prototype,"_defaultArmatureIndex",[Lht],Object.getOwnPropertyDescriptor(Ght.prototype,"_defaultArmatureIndex"),Ght.prototype),v(Ght.prototype,"_animationIndex",[Nht],Object.getOwnPropertyDescriptor(Ght.prototype,"_animationIndex"),Ght.prototype),v(Ght.prototype,"timeScale",[fut],Object.getOwnPropertyDescriptor(Ght.prototype,"timeScale"),Ght.prototype),Hht=Vh(Ght.prototype,"playTimes",[fut],(function(){return-1})),Wht=Vh(Ght.prototype,"premultipliedAlpha",[fut],(function(){return!1})),v(Ght.prototype,"sockets",[Vht],Object.getOwnPropertyDescriptor(Ght.prototype,"sockets"),Ght.prototype),jht=Vh(Ght.prototype,"_defaultArmatureIndexValue",[fut],(function(){return-1})),qht=Vh(Ght.prototype,"_dragonAsset",[fut],(function(){return null})),Xht=Vh(Ght.prototype,"_dragonAtlasAsset",[fut],(function(){return null})),Yht=Vh(Ght.prototype,"_armatureName",[fut],(function(){return""})),Kht=Vh(Ght.prototype,"_animationName",[fut],(function(){return""})),Jht=Vh(Ght.prototype,"_animationIndexValue",[fut],(function(){return 0})),Qht=Vh(Ght.prototype,"_defaultCacheModeValue",[fut],(function(){return 0})),Zht=Vh(Ght.prototype,"_timeScale",[fut],(function(){return 1})),$ht=Vh(Ght.prototype,"_playTimes",[fut],(function(){return-1})),tut=Vh(Ght.prototype,"_debugBones",[fut],(function(){return!1})),eut=Vh(Ght.prototype,"_enableBatch",[fut],(function(){return!1})),iut=Vh(Ght.prototype,"_sockets",[fut],(function(){return[]})),v(Ght.prototype,"customMaterial",[dut,zht],Object.getOwnPropertyDescriptor(Ght.prototype,"customMaterial"),Ght.prototype),Uht=Ght))||Uht);T.internal.ArmatureDisplay=mut;var gut,yut,vut,but,Sut,xut,wut,Tut,Aut,Cut,Dut,But=new lr(255,0,0,255),Iut=new lr(0,0,255,255),Mut=new lr(0,255,0,255),Put=0,Eut=0,Out=0,kut=0,Rut=0,Fut=0,Lut=0,Nut=0,Vut=0,zut=new Float32Array(4),Uut=new er(0,0,0),Gut=new Kr,Hut=null,Wut=null;function jut(t,e){if(!t)return null;var i,n;switch(e){case 1:i=Sut?1:2,n=1;break;case 10:i=7,n=4;break;case 12:i=1,n=8;break;default:i=Sut?1:2,n=4}return Cut.getMaterialForBlend(i,n)}function qut(t,e){var i=t.a*e*but,n=Sut?i/255:1,r=t.r*gut*n/255,s=t.g*yut*n/255,a=t.b*vut*n/255;zut[0]=r,zut[1]=s,zut[2]=a,zut[3]=Sut?1:i/255}var Xut=null,Yut=function(){function t(){this.accessor=Xut,this.vCount=32767}var e=t.prototype;return e.ensureAccessor=function(){if(!Xut){var t=WE.root.device,e=WE.root.batcher2D,i=AF;this.accessor=Xut=new RF(t,i,this.vCount),e.registerBufferAccessor(Number.parseInt("DRAGONBONES",36),Xut)}return this.accessor},e.createData=function(t){var e=t.renderData;if(!e){this.ensureAccessor();for(var i=t._armature._slots,n=0,r=0,s=0;s0&&(Cut._requestDrawData(Hut,Wut,Vut,d),Vut=Fut),Wut=_,Hut=r}qut(o,e),Gut.set(h._worldMatrix),s=h._localVertices,Eut=s.length/4,Put=9*Eut,a=h._indices,Rut=a.length;var p=!1;if(Out+Eut>Lut&&(Lut=Out+Eut,p=!0),Fut+Rut>Nut&&(Nut=Fut+Rut,p=!0),p){var m=Tut,g=n.chunk.vertexOffset;n.resizeAndCopy(Lut,Nut>n.indexCount?Nut:n.indexCount),Aut=n.chunk.vb,Nut>Tut.length&&(Tut=n.indices=new Uint16Array(Nut));for(var y=n.chunk.vertexOffset-g,v=0;v0&&(Cut._requestDrawData(Hut,Wut,Vut,u),Vut=Fut),Cut.maxIndexCount0&&(Cut._requestDrawData(Hut,Wut,Vut,b),Vut=Fut),Hut=n,Wut=v.tex}Eut=v.vertexCount,Rut=v.indexCount,a=d.chunk.vertexOffset;for(var S=Fut,x=Fut+Rut;S=_&&(qut(f=c[l++],1),_=f.vfOffset),p.set(zut,B+5);o+=u,Out+=Eut,Fut+=Rut,Eut=0,Rut=0}}var M=Fut-Vut;Wut&&M>0&&Cut._requestDrawData(Hut,Wut,Vut,M)}}}function Zut(t){var e=t._armature;if(e&&null!==t.renderData){xut=!0,Sut=t.premultipliedAlpha,t.drawList.reset(),Cut=t,t.node,wut=t.renderData,Cut=t,Dut=0,Hut=null;var i=t.color;gut=i.r/255,yut=i.g/255,vut=i.b/255,but=t.node._uiProps.opacity,4294967295!==lr.toUint32(i)&&(Dut|=1);var n=t.node.getWorldMatrix();if(Put=0,Out=0,kut=0,Rut=0,Fut=0,Vut=0,Lut=Cut.maxVertexCount,Nut=Cut.maxIndexCount,t.isAnimationCached())Qut(t._curFrame,n);else{Jut(e,1,n);var r=t._debugDraw;if(t.debugBones&&r){r.clear(),r.lineWidth=5,r.strokeColor=But,r.fillColor=Iut;for(var s=e.getBones(),a=0,o=s.length;ar._maxVertices)st(12008);else{var s=r._vertexCount*(er.length+lr.length);er.toArray(r._vertices,t,s),s+=er.length,lr.toArray(r._vertices,i,s),s+=lr.length,er.toArray(r._vertices,e,s),s+=er.length,lr.toArray(r._vertices,i,s),r._vertexCount+=2}},e.addLine=function(t,e,i,n){void 0===n&&(n=!0);var r=this._buffers.lines[n?1:0];if(r._vertexCount+2>r._maxVertices)st(12008);else{var s=r._vertexCount*(er.length+lr.length);er.toArray(r._vertices,t,s),s+=er.length,lr.toArray(r._vertices,i,s),s+=lr.length,er.toArray(r._vertices,e,s),s+=er.length,lr.toArray(r._vertices,i,s),r._vertexCount+=2}},e.addTriangle=function(t,e,i,n,r,s,a){if(void 0===r&&(r=!0),void 0===s&&(s=!0),void 0===a&&(a=!1),r)return this.addLine(t,e,n,s),this.addLine(e,i,n,s),void this.addLine(i,t,n,s);var o=this._buffers.triangles[s?1:0];if(o._vertexCount+3>o._maxVertices)st(12009);else{var h=new Ln(Ln.ZERO);if(!a){var u=new er(e.x-t.x,e.y-t.y,e.z-t.z),l=new er(i.x-t.x,i.y-t.y,i.z-t.z),c=new er;er.normalize(c,er.cross(c,u,l)),h.set(c.x,c.y,c.z,1)}var f=o._vertexCount*(er.length+Ln.length+lr.length);er.toArray(o._vertices,t,f),f+=er.length,Ln.toArray(o._vertices,h,f),f+=Ln.length,lr.toArray(o._vertices,n,f),f+=lr.length,er.toArray(o._vertices,e,f),f+=er.length,Ln.toArray(o._vertices,h,f),f+=Ln.length,lr.toArray(o._vertices,n,f),f+=lr.length,er.toArray(o._vertices,i,f),f+=er.length,Ln.toArray(o._vertices,h,f),f+=Ln.length,lr.toArray(o._vertices,n,f),o._vertexCount+=3}},e.addQuad=function(t,e,i,n,r,s,a,o){void 0===s&&(s=!0),void 0===a&&(a=!0),void 0===o&&(o=!1),s?(this.addLine(t,e,r,a),this.addLine(e,i,r,a),this.addLine(i,n,r,a),this.addLine(n,t,r,a)):(this.addTriangle(t,e,i,r,s,a,o),this.addTriangle(t,i,n,r,s,a,o))},e.addBoundingBox=function(t,e,i,n,r,s,a){void 0===i&&(i=!0),void 0===n&&(n=!0),void 0===r&&(r=!1),void 0===s&&(s=!1),void 0===a&&(a=new Kr),ilt.set(t.center.x-t.halfExtents.x,t.center.y-t.halfExtents.y,t.center.z-t.halfExtents.z),nlt.set(t.center.x+t.halfExtents.x,t.center.y+t.halfExtents.y,t.center.z+t.halfExtents.z),rlt.set(ilt.x,ilt.y,ilt.z),slt.set(nlt.x,ilt.y,ilt.z),alt.set(ilt.x,nlt.y,ilt.z),olt.set(nlt.x,nlt.y,ilt.z),hlt.set(ilt.x,ilt.y,nlt.z),ult.set(nlt.x,ilt.y,nlt.z),llt.set(ilt.x,nlt.y,nlt.z),clt.set(nlt.x,nlt.y,nlt.z),s&&(er.transformMat4(rlt,rlt,a),er.transformMat4(slt,slt,a),er.transformMat4(alt,alt,a),er.transformMat4(olt,olt,a),er.transformMat4(hlt,hlt,a),er.transformMat4(ult,ult,a),er.transformMat4(llt,llt,a),er.transformMat4(clt,clt,a)),i?(this.addLine(llt,clt,e,n),this.addLine(clt,olt,e,n),this.addLine(olt,alt,e,n),this.addLine(alt,llt,e,n),this.addLine(hlt,ult,e,n),this.addLine(ult,slt,e,n),this.addLine(slt,rlt,e,n),this.addLine(rlt,hlt,e,n),this.addLine(llt,hlt,e,n),this.addLine(clt,ult,e,n),this.addLine(olt,slt,e,n),this.addLine(alt,rlt,e,n)):(this.addQuad(hlt,ult,clt,llt,e,i,n,r),this.addQuad(ult,slt,olt,clt,e,i,n,r),this.addQuad(slt,rlt,alt,olt,e,i,n,r),this.addQuad(rlt,hlt,llt,alt,e,i,n,r),this.addQuad(llt,clt,olt,alt,e,i,n,r),this.addQuad(rlt,slt,ult,hlt,e,i,n,r))},e.addCross=function(t,e,i,n){void 0===n&&(n=!0);var r=.5*e,s=new er(t.x-r,t.y,t.z),a=new er(t.x+r,t.y,t.z);this.addLine(s,a,i,n),s.set(t.x,t.y-r,t.z),a.set(t.x,t.y+r,t.z),this.addLine(s,a,i,n),s.set(t.x,t.y,t.z-r),a.set(t.x,t.y,t.z+r),this.addLine(s,a,i,n)},e.addFrustum=function(t,e,i){void 0===i&&(i=!0);var n=t.vertices;this.addLine(n[0],n[1],e,i),this.addLine(n[1],n[2],e,i),this.addLine(n[2],n[3],e,i),this.addLine(n[3],n[0],e,i),this.addLine(n[4],n[5],e,i),this.addLine(n[5],n[6],e,i),this.addLine(n[6],n[7],e,i),this.addLine(n[7],n[4],e,i),this.addLine(n[0],n[4],e,i),this.addLine(n[1],n[5],e,i),this.addLine(n[2],n[6],e,i),this.addLine(n[3],n[7],e,i)},e.addCapsule=function(t,e,i,n,r,s,a,o,h,u,l){void 0===r&&(r=32),void 0===s&&(s=8),void 0===a&&(a=!0),void 0===o&&(o=!0),void 0===h&&(h=!1),void 0===u&&(u=!1),void 0===l&&(l=Kr.IDENTITY);for(var c=2*Math.PI/r,f=Math.PI/2/s,_=new er(t.x,t.y-i/2,t.z),d=new er(t.x,t.y+i/2,t.z),p=[],m=[],g=0;g0&&4294967295===i)for(var c=new lr(255-e.r,255-e.g,255-e.b,e.a),f=t.getKnotCount(),_=t.knots,d=0;d0&&(t.extensions.useVAO&&n.glVAO&&(t.extensions.OES_vertex_array_object.bindVertexArrayOES(null),n.glVAO=null),Ult.gpuInputAssembler=null,n.glArrayBuffer!==e.glBuffer&&(i.bindBuffer(34962,e.glBuffer),n.glArrayBuffer=e.glBuffer),i.bufferData(34962,e.size,r),i.bindBuffer(34962,null),n.glArrayBuffer=null))}else if(4&e.usage){e.glTarget=34963;var a=i.createBuffer();a&&(e.glBuffer=a,e.size>0&&(t.extensions.useVAO&&n.glVAO&&(t.extensions.OES_vertex_array_object.bindVertexArrayOES(null),n.glVAO=null),Ult.gpuInputAssembler=null,n.glElementArrayBuffer!==e.glBuffer&&(i.bindBuffer(34963,e.glBuffer),n.glElementArrayBuffer=e.glBuffer),i.bufferData(34963,e.size,r),i.bindBuffer(34963,null),n.glElementArrayBuffer=null))}else 16&e.usage?(e.glTarget=0,e.buffer&&(e.vf32=new Float32Array(e.buffer.buffer))):(64&e.usage||2&e.usage||1&e.usage||ot(16315),e.glTarget=0)}function Plt(t,e){var i=t.gl,n=t.stateCache;if(e.glBuffer){switch(e.glTarget){case 34962:t.extensions.useVAO&&n.glVAO&&(t.extensions.OES_vertex_array_object.bindVertexArrayOES(null),n.glVAO=null),Ult.gpuInputAssembler=null,i.bindBuffer(34962,null),n.glArrayBuffer=null;break;case 34963:t.extensions.useVAO&&n.glVAO&&(t.extensions.OES_vertex_array_object.bindVertexArrayOES(null),n.glVAO=null),Ult.gpuInputAssembler=null,i.bindBuffer(34963,null),n.glElementArrayBuffer=null}i.deleteBuffer(e.glBuffer),e.glBuffer=null}}function Elt(t,e,i,n,r){if(16&e.usage)ArrayBuffer.isView(i)?e.vf32.set(i,n/4):e.vf32.set(new Float32Array(i),n/4);else if(64&e.usage){e.indirects.clearDraws();for(var s=i.drawInfos,a=0;at.capabilities.maxTextureSize&&ot(9100,a,t.capabilities.maxTextureSize),t.textureExclusive[e.format]||t.extensions.WEBGL_depth_texture||!Zd[e.format].hasDepth){if(e.glTexture=i.createTexture(),e.size>0){var o=n.glTexUnits[n.texUnit];if(o.glTexture!==e.glTexture&&(i.bindTexture(3553,e.glTexture),o.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var h=0;h>1),s=mlt(1,s>>1)}else for(var c=0;c>1),s=mlt(1,s>>1);e.isPowerOf2?(e.glWrapS=10497,e.glWrapT=10497):(e.glWrapS=33071,e.glWrapT=33071),e.glMinFilter=9729,e.glMagFilter=9729,i.texParameteri(e.glTarget,10242,e.glWrapS),i.texParameteri(e.glTarget,10243,e.glWrapT),i.texParameteri(e.glTarget,10241,e.glMinFilter),i.texParameteri(e.glTarget,10240,e.glMagFilter)}}else e.glInternalFmt=vlt(e.format),e.glRenderbuffer=i.createRenderbuffer(),e.size>0&&(n.glRenderbuffer!==e.glRenderbuffer&&(i.bindRenderbuffer(36161,e.glRenderbuffer),n.glRenderbuffer=e.glRenderbuffer),i.renderbufferStorage(36161,e.glInternalFmt,r,s));break;case 3:e.glTarget=34067;var f=mlt(r,s);if(f>t.capabilities.maxCubeMapTextureSize&&ot(9100,f,t.capabilities.maxTextureSize),e.glTexture=i.createTexture(),e.size>0){var _=n.glTexUnits[n.texUnit];if(_.glTexture!==e.glTexture&&(i.bindTexture(34067,e.glTexture),_.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var d=0;d<6;++d){r=e.width,s=e.height;for(var p=0;p>1),s=mlt(1,s>>1)}}else for(var y=0;y<6;++y){r=e.width,s=e.height;for(var v=0;v>1),s=mlt(1,s>>1)}e.isPowerOf2?(e.glWrapS=10497,e.glWrapT=10497):(e.glWrapS=33071,e.glWrapT=33071),e.glMinFilter=9729,e.glMagFilter=9729,i.texParameteri(e.glTarget,10242,e.glWrapS),i.texParameteri(e.glTarget,10243,e.glWrapT),i.texParameteri(e.glTarget,10241,e.glMinFilter),i.texParameteri(e.glTarget,10240,e.glMagFilter)}break;default:ot(16317),e.type=1,e.glTarget=3553}}function klt(t,e){var i=t.gl,n=t.stateCache;if(e.glTexture){var r=n.glTexUnits,s=n.texUnit;i.deleteTexture(e.glTexture);for(var a=0;at.capabilities.maxTextureSize&&ot(9100,a,t.capabilities.maxTextureSize),e.glRenderbuffer)n.glRenderbuffer!==e.glRenderbuffer&&(i.bindRenderbuffer(36161,e.glRenderbuffer),n.glRenderbuffer=e.glRenderbuffer),i.renderbufferStorage(36161,e.glInternalFmt,r,s);else if(e.glTexture){var o=n.glTexUnits[n.texUnit];if(o.glTexture!==e.glTexture&&(i.bindTexture(3553,e.glTexture),o.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var h=0;h>1),s=mlt(1,s>>1)}else for(var c=0;c>1),s=mlt(1,s>>1)}break;case 3:e.glTarget=34067;var f=mlt(r,s);f>t.capabilities.maxCubeMapTextureSize&&ot(9100,f,t.capabilities.maxTextureSize);var _=n.glTexUnits[n.texUnit];if(_.glTexture!==e.glTexture&&(i.bindTexture(34067,e.glTexture),_.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var d=0;d<6;++d){r=e.width,s=e.height;for(var p=0;p>1),s=mlt(1,s>>1)}}else for(var y=0;y<6;++y){r=e.width,s=e.height;for(var v=0;v>1),s=mlt(1,s>>1)}break;default:ot(16317),e.type=1,e.glTarget=3553}}}function Flt(t,e){for(var i=0;i0){e.glBlocks=new Array(e.blocks.length);for(var w=0;w0){e.glSamplerTextures=new Array(e.samplerTextures.length);for(var k=0;k=0&&D.gpuDescriptors[B],M=null,P=0;if(I&&I.gpuBuffer){var E=I.gpuBuffer,O=T[C.set],k=O&&O[C.binding];k>=0&&(P=r[k]),"vf32"in E?M=E.vf32:(P+=E.offset,M=E.gpuBuffer.vf32),P>>=2}if(M)for(var R=C.glActiveUniforms.length,F=0;F=0&&Pt.gpuDescriptors[Et],kt=Mt.units.length,Rt=0;Rt0){var Lt=Ot.gpuTexture,Nt=l.glTexUnits[Ft];Nt.glTexture!==Lt.glTexture&&(l.texUnit!==Ft&&(u.activeTexture(33984+Ft),l.texUnit=Ft),Lt.glTexture?u.bindTexture(Lt.glTarget,Lt.glTexture):u.bindTexture(Lt.glTarget,t.nullTex2D.gpuTexture.glTexture),Nt.glTexture=Lt.glTexture);var Vt=Ot.gpuSampler;Lt.isPowerOf2?(a=Vt.glWrapS,o=Vt.glWrapT):(a=33071,o=33071),h=Lt.isPowerOf2?Lt.mipLevel<=1&&(9985===Vt.glMinFilter||9987===Vt.glMinFilter)?9729:Vt.glMinFilter:9729===Vt.glMinFilter||9985===Vt.glMinFilter||9987===Vt.glMinFilter?9729:9728,Lt.glWrapS!==a&&(l.texUnit!==Ft&&(u.activeTexture(33984+Ft),l.texUnit=Ft),u.texParameteri(Lt.glTarget,10242,a),Lt.glWrapS=a),Lt.glWrapT!==o&&(l.texUnit!==Ft&&(u.activeTexture(33984+Ft),l.texUnit=Ft),u.texParameteri(Lt.glTarget,10243,o),Lt.glWrapT=o),Lt.glMinFilter!==h&&(l.texUnit!==Ft&&(u.activeTexture(33984+Ft),l.texUnit=Ft),u.texParameteri(Lt.glTarget,10241,h),Lt.glMinFilter=h),Lt.glMagFilter!==Vt.glMagFilter&&(l.texUnit!==Ft&&(u.activeTexture(33984+Ft),l.texUnit=Ft),u.texParameteri(Lt.glTarget,10240,Vt.glMagFilter),Lt.glMagFilter=Vt.glMagFilter)}Ot=Pt.gpuDescriptors[++Et]}}}if(i&&_&&(d||Ult.gpuInputAssembler!==i)){Ult.gpuInputAssembler=i;var zt=t.extensions.ANGLE_instanced_arrays;if(t.extensions.useVAO){var Ut=t.extensions.OES_vertex_array_object,Gt=i.glVAOs.get(_.glProgram);if(!Gt){var Ht;Gt=Ut.createVertexArrayOES(),i.glVAOs.set(_.glProgram,Gt),Ut.bindVertexArrayOES(Gt),u.bindBuffer(34962,null),u.bindBuffer(34963,null),l.glArrayBuffer=null,l.glElementArrayBuffer=null;for(var Wt=_.glInputs.length,jt=0;jt=0&&(u.enableVertexAttribArray(ue),l.glEnabledAttribLocs[ue]=!0),l.glCurrentAttribLocs[ue]=!0,u.vertexAttribPointer(ue,re.count,re.glType,re.isNormalized,re.stride,le),zt&&zt.vertexAttribDivisorANGLE(ue,re.isInstanced?1:0)}}}var ce=i.gpuIndexBuffer;ce&&l.glElementArrayBuffer!==ce.glBuffer&&(u.bindBuffer(34963,ce.glBuffer),l.glElementArrayBuffer=ce.glBuffer);for(var fe=0;fe0){var _=e.firstIndex*h.stride;r.drawElementsInstancedANGLE(o,e.indexCount,a.glIndexType,_,e.instanceCount)}}else e.vertexCount>0&&r.drawArraysInstancedANGLE(o,e.firstVertex,e.vertexCount,e.instanceCount);else if(h){if(e.indexCount>0){var d=e.firstIndex*h.stride;i.drawElements(o,e.indexCount,a.glIndexType,d)}}else e.vertexCount>0&&i.drawArrays(o,e.firstVertex,e.vertexCount)}}function qlt(t,e,i,n){var r=t.gl,s=t.stateCache,a=s.glTexUnits[s.texUnit];a.glTexture!==i.glTexture&&(r.bindTexture(i.glTarget,i.glTexture),a.glTexture=i.glTexture);var o=0,h=0;switch(i.glTarget){case 3553:for(var u=0;u0?A:_.width,p.height=g.buffTexHeight>0?g.buffTexHeight:_.height;var C=S+d.x===i.width>>y?S:_.width,D=x+d.y===i.height>>y?x:_.height,B=void 0,I=e[o++];if(p.width===_.width&&p.height===_.height){var M=np(i.format,C,D,1)/l.BYTES_PER_ELEMENT;ut(Number.isInteger(M),9101),B=new l(I.buffer,I.byteOffset+g.buffOffset,M)}else B=Ylt(I,i.format,g.buffOffset,p,_);c?36196===i.glInternalFmt||t.extensions.noCompressedTexSubImage2D?r.compressedTexImage2D(3553,y,i.glInternalFmt,C,D,0,B):r.compressedTexSubImage2D(3553,y,d.x,d.y,C,D,i.glFormat,B):r.texSubImage2D(3553,y,d.x,d.y,C,D,i.glFormat,i.glType,B)}break;case 34067:for(var P=0;P0?E.buffStride:_.width,p.height=E.buffTexHeight>0?E.buffTexHeight:_.height;var U=L+d.x===i.width>>O?L:_.width,G=N+d.y===i.height>>O?N:_.height,H=F.baseArrayLayer+F.layerCount;for(h=F.baseArrayLayer;h0,this.instancedDraw=!!e.instanceCount,this.drawCount=Math.max(t+1,this.drawCount),this.drawByIndex?(this.counts[t]=e.indexCount,this.offsets[t]=e.firstIndex):(this.counts[t]=e.vertexCount,this.offsets[t]=e.firstVertex),this.instances[t]=Math.max(1,e.instanceCount)},e._ensureCapacity=function(t){if(!(this._capacity>t)){this._capacity=k(t);var e=$lt(this._capacity),i=$lt(this._capacity),n=$lt(this._capacity);this.byteOffsets=$lt(this._capacity),e.set(this.counts),i.set(this.offsets),n.set(this.instances),this.counts=e,this.offsets=i,this.instances=n}},t}(),ect=function(){function t(){this._gpuShader=null,this._gpuDescriptorSetLayout=null,this._gpuPipelineLayout=null,this._gpuPipelineState=null,this._gpuVertexBuffer=null,this._gpuInputAssembler=null,this._gpuPointSampler=null,this._gpuLinearSampler=null,this._gpuDescriptorSet=null,this._gpuUniformBuffer=null,this._drawInfo=null,this._glFramebuffer=null,this._uniformBuffer=null;var t=Zlt.instance.bindingMappingInfo.maxBlockCounts[0];this._gpuShader={name:"Blit Pass",blocks:[new dd(0,0,"BlitParams",[new _d("tilingOffsetSrc",16,1),new _d("tilingOffsetDst",16,1)],1)],samplerTextures:[new pd(0,t,"textureSrc",28,1)],subpassInputs:[],gpuStages:[{type:1,source:"\nprecision mediump float;\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 tilingOffsetSrc;\nuniform vec4 tilingOffsetDst;\nvarying vec2 v_texCoord;\nvoid main() {\n v_texCoord = a_texCoord * tilingOffsetSrc.xy + tilingOffsetSrc.zw;\n gl_Position = vec4((a_position + 1.0) * tilingOffsetDst.xy - 1.0 + tilingOffsetDst.zw * 2.0, 0, 1);\n}",glShader:null},{type:16,source:"\nprecision mediump float;\nuniform sampler2D textureSrc;\nvarying vec2 v_texCoord;\nvoid main() {\n gl_FragColor = texture2D(textureSrc, v_texCoord);\n}",glShader:null}],glProgram:null,glInputs:[],glUniforms:[],glBlocks:[],glSamplerTextures:[]},Llt(Zlt.instance,this._gpuShader),this._gpuDescriptorSetLayout={bindings:[new Rd(0,1,1,1),new Rd(t,16,1,16)],dynamicBindings:[],descriptorIndices:[],descriptorCount:t+1};for(var e=0;e0&&(this._uniformBuffer=new Uint8Array(this._size)),this._gpuBuffer={usage:this._usage,memUsage:this._memUsage,size:this._size,stride:this._stride,buffer:null,vf32:null,indirects:new tct,glTarget:0,glBuffer:null},16&this._usage&&(this._gpuBuffer.buffer=this._uniformBuffer),Mlt(Zlt.instance,this._gpuBuffer),Zlt.instance.memoryStatus.bufferSize+=this._size},i.destroy=function(){this._gpuBuffer&&(Plt(Zlt.instance,this._gpuBuffer),Zlt.instance.memoryStatus.bufferSize-=this._size,this._gpuBuffer=null),this._gpuBufferView&&(this._gpuBufferView=null)},i.resize=function(t){if(this._isBufferView)st(16379);else{var e,i,n,r,s,a=this._size;a!==t&&(this._size=t,this._count=this._size/this._stride,this._uniformBuffer&&(this._uniformBuffer=new Uint8Array(t)),this._gpuBuffer&&(this._uniformBuffer&&(this._gpuBuffer.buffer=this._uniformBuffer),this._gpuBuffer.size=t,t>0&&(e=Zlt.instance,i=this._gpuBuffer,n=e.gl,r=e.stateCache,s=2&i.memUsage?35048:35044,8&i.usage?(e.extensions.useVAO&&r.glVAO&&(e.extensions.OES_vertex_array_object.bindVertexArrayOES(null),r.glVAO=null),Ult.gpuInputAssembler=null,r.glArrayBuffer!==i.glBuffer&&n.bindBuffer(34962,i.glBuffer),i.buffer?n.bufferData(34962,i.buffer,s):n.bufferData(34962,i.size,s),n.bindBuffer(34962,null),r.glArrayBuffer=null):4&i.usage?(e.extensions.useVAO&&r.glVAO&&(e.extensions.OES_vertex_array_object.bindVertexArrayOES(null),r.glVAO=null),Ult.gpuInputAssembler=null,r.glElementArrayBuffer!==i.glBuffer&&n.bindBuffer(34963,i.glBuffer),i.buffer?n.bufferData(34963,i.buffer,s):n.bufferData(34963,i.size,s),n.bindBuffer(34963,null),r.glElementArrayBuffer=null):16&i.usage?i.buffer&&(i.vf32=new Float32Array(i.buffer.buffer)):(64&i.usage||2&i.usage||1&i.usage||ot(16315),i.glTarget=0),Zlt.instance.memoryStatus.bufferSize-=a,Zlt.instance.memoryStatus.bufferSize+=t)))}},i.update=function(t,e){var i;this._isBufferView?st(16380):(i=void 0!==e?e:64&this._usage?0:t.byteLength,Elt(Zlt.instance,this._gpuBuffer,t,0,i))},n(e,[{key:"gpuBuffer",get:function(){return this._gpuBuffer}},{key:"gpuBufferView",get:function(){return this._gpuBufferView}}]),e}(cp),nct=function(t){function e(){var e;return(e=t.call(this)||this)._isInRenderPass=!1,e._curGPUPipelineState=null,e._curGPUInputAssembler=null,e._curGPUDescriptorSets=[],e._curDynamicOffsets=Array(8).fill(0),e._curDynamicStates=new qd,e._isStateInvalied=!1,e}s(e,t);var i=e.prototype;return i.initialize=function(t){this._type=t.type,this._queue=t.queue;for(var e=Zlt.instance.bindingMappings.blockOffsets.length,i=0;i0?this.gpuColorTextures[0].width:this.gpuDepthStencilTexture?this.gpuDepthStencilTexture.width:u},set width(t){u=t},get height(){return this.gpuColorTextures.length>0?this.gpuColorTextures[0].height:this.gpuDepthStencilTexture?this.gpuDepthStencilTexture.height:l},set height(t){l=t},lodLevel:r},Flt(Zlt.instance,this._gpuFramebuffer),this._gpuFramebuffer.gpuColorTextures.forEach((function(t){return i._gpuColorTextures.push(t.glTexture)})),this._gpuDepthStencilTexture=null==(e=this._gpuFramebuffer.gpuDepthStencilTexture)?void 0:e.glTexture,this._width=this._gpuFramebuffer.width,this._height=this._gpuFramebuffer.height},e.destroy=function(){var t,e,i,n;this._gpuFramebuffer&&(t=Zlt.instance,e=this._gpuFramebuffer,i=t.gl,n=t.stateCache,e.glFramebuffer&&(i.deleteFramebuffer(e.glFramebuffer),n.glFramebuffer===e.glFramebuffer&&(i.bindFramebuffer(36160,null),n.glFramebuffer=null),e.glFramebuffer=null),this._gpuFramebuffer=null,this._gpuColorTextures.length=0,this._gpuDepthStencilTexture=null)},n(i,[{key:"needRebuild",get:function(){var t=this._gpuFramebuffer;if(t){for(var e,i=0;ii&&(i=s.binding)}this._bindingIndices=Array(i+1).fill(-1);for(var a=this._descriptorIndices=Array(i+1).fill(-1),o=0;o1&&(s.levelCount=Math.min(s.levelCount,e.getLevelCount(t,i)));var a=n._size;s.width=t,s.height=i,n._size=rp(s.format,n.width,n.height,n.depth,s.levelCount)*s.layerCount;var o=n._gpuTexture;!n._isTextureView&&o&&(o.width=t,o.height=i,o.size=n._size,o.isSwapchainTexture||(Rlt(r,o),r.memoryStatus.textureSize-=a,r.memoryStatus.textureSize+=n._size))}},i.initAsSwapchainTexture=function(t){var e=new ld;e.format=t.format,e.usage=Zd[t.format].hasDepth?32:16,e.width=t.width,e.height=t.height,this.initialize(e,!0)},n(e,[{key:"gpuTexture",get:function(){return this._gpuTexture}},{key:"lodLevel",get:function(){return this._lodLevel}}]),e}(Pp),yct="webglcontextlost";function vct(t){t.activeTexture(33984),t.pixelStorei(3333,1),t.pixelStorei(3317,1),t.pixelStorei(37440,!1),t.bindFramebuffer(36160,null),t.enable(3089),t.enable(2884),t.cullFace(1029),t.frontFace(2305),t.disable(32823),t.polygonOffset(0,0),t.enable(2929),t.depthMask(!0),t.depthFunc(513),t.depthRange(0,1),t.stencilFuncSeparate(1028,519,1,65535),t.stencilOpSeparate(1028,7680,7680,7680),t.stencilMaskSeparate(1028,65535),t.stencilFuncSeparate(1029,519,1,65535),t.stencilOpSeparate(1029,7680,7680,7680),t.stencilMaskSeparate(1029,65535),t.disable(2960),t.disable(32926),t.disable(3042),t.blendEquationSeparate(32774,32774),t.blendFuncSeparate(1,0,1,0),t.colorMask(!0,!0,!0,!0),t.blendColor(0,0,0,0)}function bct(t,e){for(var i=["","WEBKIT_","MOZ_"],n=0;n0&&(t.extensions.useVAO&&n.glVAO&&(i.bindVertexArray(null),n.glVAO=null),rft.gpuInputAssembler=null,n.glArrayBuffer!==e.glBuffer&&(i.bindBuffer(34962,e.glBuffer),n.glArrayBuffer=e.glBuffer),i.bufferData(34962,e.size,r),i.bindBuffer(34962,null),n.glArrayBuffer=null))}else if(4&e.usage){e.glTarget=34963;var a=i.createBuffer();a&&(e.glBuffer=a,e.size>0&&(t.extensions.useVAO&&n.glVAO&&(i.bindVertexArray(null),n.glVAO=null),rft.gpuInputAssembler=null,n.glElementArrayBuffer!==e.glBuffer&&(i.bindBuffer(34963,e.glBuffer),n.glElementArrayBuffer=e.glBuffer),i.bufferData(34963,e.size,r),i.bindBuffer(34963,null),n.glElementArrayBuffer=null))}else if(16&e.usage){e.glTarget=35345;var o=i.createBuffer();o&&e.size>0&&(e.glBuffer=o,n.glUniformBuffer!==e.glBuffer&&(i.bindBuffer(35345,e.glBuffer),n.glUniformBuffer=e.glBuffer),i.bufferData(35345,e.size,r),i.bindBuffer(35345,null),n.glUniformBuffer=null)}else 64&e.usage||2&e.usage||1&e.usage||ot(16315),e.glTarget=0}function jct(t,e){var i=t.gl,n=t.getStateCache(),r=t.extensions.useVAO;if(e.glBuffer){switch(e.glTarget){case 34962:r&&n.glVAO&&(i.bindVertexArray(null),n.glVAO=null),rft.gpuInputAssembler=null,i.bindBuffer(34962,null),n.glArrayBuffer=null;break;case 34963:r&&n.glVAO&&(i.bindVertexArray(null),n.glVAO=null),rft.gpuInputAssembler=null,i.bindBuffer(34963,null),n.glElementArrayBuffer=null;break;case 35345:i.bindBuffer(35345,null),n.glUniformBuffer=null}i.deleteBuffer(e.glBuffer),e.glBuffer=null}}function qct(t,e){var i=t.gl,n=t.getStateCache(),r=2&e.memUsage?35048:35044;8&e.usage?(t.extensions.useVAO&&n.glVAO&&(i.bindVertexArray(null),n.glVAO=null),rft.gpuInputAssembler=null,n.glArrayBuffer!==e.glBuffer&&i.bindBuffer(34962,e.glBuffer),e.buffer?i.bufferData(34962,e.buffer,r):i.bufferData(34962,e.size,r),i.bindBuffer(34962,null),n.glArrayBuffer=null):4&e.usage?(t.extensions.useVAO&&n.glVAO&&(i.bindVertexArray(null),n.glVAO=null),rft.gpuInputAssembler=null,n.glElementArrayBuffer!==e.glBuffer&&i.bindBuffer(34963,e.glBuffer),e.buffer?i.bufferData(34963,e.buffer,r):i.bufferData(34963,e.size,r),i.bindBuffer(34963,null),n.glElementArrayBuffer=null):16&e.usage?(n.glUniformBuffer!==e.glBuffer&&i.bindBuffer(35345,e.glBuffer),i.bufferData(35345,e.size,r),i.bindBuffer(35345,null),n.glUniformBuffer=null):(64&e.usage||2&e.usage||1&e.usage||ot(16315),e.glTarget=0)}function Xct(t,e,i,n,r){if(64&e.usage){e.indirects.clearDraws();for(var s=i.drawInfos,a=0;ar.maxTextureSize&&ot(9100,u,r.maxTextureSize),1===e.samples){if(e.glTexture=i.createTexture(),e.size>0){var l=n.glTexUnits[n.texUnit];if(l.glTexture!==e.glTexture&&(i.bindTexture(3553,e.glTexture),l.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var c=0;c>1),a=Pct(1,a>>1)}else 128&e.flags?i.texImage2D(3553,0,e.glInternalFmt,s,a,0,e.glFormat,e.glType,null):i.texStorage2D(3553,e.mipLevel,e.glInternalFmt,s,a)}}else e.glRenderbuffer=i.createRenderbuffer(),e.size>0&&(n.glRenderbuffer!==e.glRenderbuffer&&(i.bindRenderbuffer(36161,e.glRenderbuffer),n.glRenderbuffer=e.glRenderbuffer),i.renderbufferStorageMultisample(36161,e.samples,e.glInternalFmt,e.width,e.height));break;case 5:e.glTarget=35866;var d=Pct(s,a);if(d>r.maxTextureSize&&ot(9100,d,r.maxTextureSize),h>r.maxArrayTextureLayers&&ot(9100,h,r.maxArrayTextureLayers),e.glTexture=i.createTexture(),e.size>0){var p=n.glTexUnits[n.texUnit];if(p.glTexture!==e.glTexture&&(i.bindTexture(35866,e.glTexture),p.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var m=0;m>1),a=Pct(1,a>>1)}else i.texStorage3D(35866,e.mipLevel,e.glInternalFmt,s,a,h)}break;case 2:e.glTarget=32879;var v=Pct(Pct(s,a),o);if(v>r.max3DTextureSize&&ot(9100,v,r.max3DTextureSize),e.glTexture=i.createTexture(),e.size>0){var b=n.glTexUnits[n.texUnit];if(b.glTexture!==e.glTexture&&(i.bindTexture(32879,e.glTexture),b.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var S=0;S>1),a=Pct(1,a>>1)}else i.texStorage3D(32879,e.mipLevel,e.glInternalFmt,s,a,o)}break;case 3:e.glTarget=34067;var T=Pct(s,a);if(T>r.maxCubeMapTextureSize&&ot(9100,T,r.maxTextureSize),e.glTexture=i.createTexture(),e.size>0){var A=n.glTexUnits[n.texUnit];if(A.glTexture!==e.glTexture&&(i.bindTexture(34067,e.glTexture),A.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var C=0;C>1),a=Pct(1,a>>1)}else i.texStorage2D(34067,e.mipLevel,e.glInternalFmt,s,a)}break;default:ot(16317),e.type=1,e.glTarget=3553}}function Kct(t,e){var i=t.gl,n=t.getStateCache();if(e.glTexture){var r=n.glTexUnits,s=n.texUnit;i.deleteTexture(e.glTexture);for(var a=0;ar.maxTextureSize&&ot(9100,u,r.maxTextureSize),1===e.samples){var l=n.glTexUnits[n.texUnit];if(l.glTexture!==e.glTexture&&(i.bindTexture(3553,e.glTexture),l.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var c=0;c>1),a=Pct(1,a>>1)}else Kct(t,e),Yct(t,e)}else e.glRenderbuffer&&(n.glRenderbuffer!==e.glRenderbuffer&&(i.bindRenderbuffer(36161,e.glRenderbuffer),n.glRenderbuffer=e.glRenderbuffer),i.renderbufferStorageMultisample(36161,e.samples,e.glInternalFmt,e.width,e.height));break;case 5:e.glTarget=35866;var d=Pct(s,a);if(d>r.maxTextureSize&&ot(9100,d,r.maxTextureSize),h>r.maxArrayTextureLayers&&ot(9100,h,r.maxArrayTextureLayers),e.glTexture=i.createTexture(),e.size>0){var p=n.glTexUnits[n.texUnit];if(p.glTexture!==e.glTexture&&(i.bindTexture(35866,e.glTexture),p.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var m=0;m>1),a=Pct(1,a>>1)}else i.texStorage3D(35866,e.mipLevel,e.glInternalFmt,s,a,h)}break;case 2:e.glTarget=32879;var v=Pct(Pct(s,a),o);if(v>r.max3DTextureSize&&ot(9100,v,r.max3DTextureSize),e.glTexture=i.createTexture(),e.size>0){var b=n.glTexUnits[n.texUnit];if(b.glTexture!==e.glTexture&&(i.bindTexture(32879,e.glTexture),b.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var S=0;S>1),a=Pct(1,a>>1)}else i.texStorage3D(32879,e.mipLevel,e.glInternalFmt,s,a,o)}break;case 3:e.type=3,e.glTarget=34067;var T=Pct(s,a);T>r.maxCubeMapTextureSize&&ot(9100,T,r.maxTextureSize);var A=n.glTexUnits[n.texUnit];if(A.glTexture!==e.glTexture&&(i.bindTexture(34067,e.glTexture),A.glTexture=e.glTexture),Zd[e.format].isCompressed)for(var C=0;C<6;++C){s=e.width,a=e.height;for(var D=0;D>1),a=Pct(1,a>>1)}}else Kct(t,e),Yct(t,e);break;default:ot(16317),e.type=1,e.glTarget=3553}}}function Qct(t,e){for(var i=t.gl,n=e.glSamplers.values().next();!n.done;){i.deleteSampler(n.value);for(var r=t.getStateCache().glSamplerUnits,s=0;s>h.baseLevel),e.height=Ect(e.height,u.height>>h.baseLevel))}var l=e.gpuDepthStencilView;if(l){var c=l.gpuTexture,f=Zd[c.format].hasStencil?33306:36096;c.glTexture?r.framebufferTexture2D(36160,f,c.glTarget,c.glTexture,e.gpuDepthStencilView.baseLevel):r.framebufferRenderbuffer(36160,f,36161,c.glRenderbuffer),e.width=Ect(e.width,c.width>>l.baseLevel),e.height=Ect(e.height,c.height>>l.baseLevel)}r.drawBuffers(s);var _=r.checkFramebufferStatus(36160);if(36053!==_)switch(_){case 36054:ot(16318);break;case 36055:ot(16319);break;case 36057:ot(16320);break;case 36061:ot(16321)}i.glFramebuffer!==e.glFramebuffer&&r.bindFramebuffer(36160,i.glFramebuffer)}}function $ct(t,e){var i=t.gl,n=t.getStateCache();e.glFramebuffer&&(i.deleteFramebuffer(e.glFramebuffer),n.glFramebuffer===e.glFramebuffer&&(i.bindFramebuffer(36160,null),n.glFramebuffer=null),e.glFramebuffer=null)}function tft(t,e){for(var i,n=t.gl,r=t.getStateCache(),s=t.capabilities,a=function(){var t=e.gpuStages[o],i=0,r="",s=1;switch(t.type){case 1:r="VertexShader",i=35633;break;case 16:r="FragmentShader",i=35632;break;default:return ot(16322),{v:void 0}}var a=n.createShader(i);if(a&&(t.glShader=a,n.shaderSource(t.glShader,"#version 300 es\n"+t.source),n.compileShader(t.glShader),!n.getShaderParameter(t.glShader,35713))){ot(16323,r,e.name),ot(16324,t.source.replace(/^|\n/g,(function(){return"\n"+s+++" "}))),Y(n.getShaderInfoLog(t.glShader));for(var h=0;h0){e.glSamplerTextures=new Array(e.samplerTextures.length);for(var k=0;k=0&&D.gpuDescriptors[B];if(I&&I.gpuBuffer){var M=T[C.set],P=M&&M[C.binding],E=I.gpuBuffer.glOffset;P>=0&&(E+=r[P]),h.glBindUBOs[C.glBinding]===I.gpuBuffer.glBuffer&&h.glBindUBOOffsets[C.glBinding]===E||(E?a.bindBufferRange(35345,C.glBinding,I.gpuBuffer.glBuffer,E,I.gpuBuffer.size):a.bindBufferBase(35345,C.glBinding,I.gpuBuffer.glBuffer),h.glUniformBuffer=h.glBindUBOs[C.glBinding]=I.gpuBuffer.glBuffer,h.glBindUBOOffsets[C.glBinding]=E)}}for(var O=_.glSamplerTextures.length,k=0;k=0&&F.gpuDescriptors[L],V=0;V0){U.glTexture!==H.glTexture&&(h.texUnit!==z&&(a.activeTexture(33984+z),h.texUnit=z),H.glTexture?a.bindTexture(H.glTarget,H.glTexture):a.bindTexture(H.glTarget,t.nullTex2D.gpuTexture.glTexture),U.glTexture=H.glTexture);var q=N.gpuSampler.getGLSampler(t,W,j);h.glSamplerUnits[z]!==q&&(a.bindSampler(z,q),h.glSamplerUnits[z]=q)}N=F.gpuDescriptors[++L]}}}if(i&&_&&(d||rft.gpuInputAssembler!==i))if(rft.gpuInputAssembler=i,t.extensions.useVAO){var X=i.glVAOs.get(_.glProgram);if(!X){var Y;X=a.createVertexArray(),i.glVAOs.set(_.glProgram,X),a.bindVertexArray(X),a.bindBuffer(34962,null),a.bindBuffer(34963,null),h.glArrayBuffer=null,h.glElementArrayBuffer=null;for(var K=0;K<_.glInputs.length;K++){var J=_.glInputs[K];Y=null;for(var Q=0;Q=0&&(a.enableVertexAttribArray(lt),h.glEnabledAttribLocs[lt]=!0),h.glCurrentAttribLocs[lt]=!0,a.vertexAttribPointer(lt,at.count,at.glType,at.isNormalized,at.stride,ct),a.vertexAttribDivisor(lt,at.isInstanced?1:0)}}}var ft=i.gpuIndexBuffer;ft&&h.glElementArrayBuffer!==ft.glBuffer&&(a.bindBuffer(34963,ft.glBuffer),h.glElementArrayBuffer=ft.glBuffer);for(var _t=0;_t0){var c=e.firstIndex*a.stride;i.drawElementsInstanced(r,e.indexCount,n.glIndexType,c,e.instanceCount)}}else e.vertexCount>0&&i.drawArraysInstanced(r,e.firstVertex,e.vertexCount,e.instanceCount);else if(a){if(e.indexCount>0){var f=e.firstIndex*a.stride;i.drawElements(r,e.indexCount,n.glIndexType,f)}}else e.vertexCount>0&&i.drawArrays(r,e.firstVertex,e.vertexCount)}}function hft(t,e){if(t.length>1||e.length>1)return!1;if(t[0]instanceof HTMLVideoElement){var i=t[0];return 0===e[0].texOffset.x&&0===e[0].texOffset.y&&e[0].texExtent.width===i.videoWidth&&e[0].texExtent.height===i.videoHeight}return!1}function uft(t,e,i,n){var r=t.gl,s=t.getStateCache(),a=s.glTexUnits[s.texUnit];a.glTexture!==i.glTexture&&(r.bindTexture(i.glTarget,i.glTexture),a.glTexture=i.glTexture);var o=0,h=0;switch(i.glTarget){case 3553:if(128&i.flags||hft(e,n))r.texImage2D(3553,n[0].texSubres.mipLevel,i.glInternalFmt,n[0].texExtent.width,n[0].texExtent.height,0,i.glFormat,i.glType,e[0]);else for(var u=0;u0?A:_.width,p.height=g.buffTexHeight>0?g.buffTexHeight:_.height;var C=S+d.x===i.width>>y?S:_.width,D=x+d.y===i.height>>y?x:_.height,B=void 0,I=e[o++];if(p.width===_.width&&p.height===_.height){var M=np(i.format,C,D,1)/l.BYTES_PER_ELEMENT;ut(Number.isInteger(M),9101),B=new l(I.buffer,I.byteOffset+g.buffOffset,M)}else B=cft(I,i.format,g.buffOffset,p,_);c?36196!==i.glInternalFmt?r.compressedTexSubImage2D(3553,y,d.x,d.y,C,D,i.glFormat,B):r.compressedTexImage2D(3553,y,i.glInternalFmt,C,D,0,B):r.texSubImage2D(3553,y,d.x,d.y,C,D,i.glFormat,i.glType,B)}break;case 35866:for(var P=0;P0?z:_.width,p.height=E.buffTexHeight>0?E.buffTexHeight:_.height;var G=F+d.x===i.width>>O?F:_.width,H=L+d.y===i.height>>O?L:_.height,W=U.baseArrayLayer+U.layerCount;for(h=U.baseArrayLayer;h0?nt:_.width,p.height=K.buffTexHeight>0?K.buffTexHeight:_.height;var rt=$+d.x===i.width>>J?$:_.width,st=tt+d.y===i.height>>J?tt:_.height,at=void 0,ht=e[o++];if(p.width===_.width&&p.height===_.height){var lt=np(i.format,rt,st,_.depth)/l.BYTES_PER_ELEMENT;ut(Number.isInteger(lt),9101),at=new l(ht.buffer,ht.byteOffset+K.buffOffset,lt)}else at=cft(ht,i.format,K.buffOffset,p,_);c?36196!==i.glInternalFmt?r.compressedTexSubImage3D(35866,J,d.x,d.y,d.z,rt,st,_.depth,i.glFormat,at):r.compressedTexImage3D(35866,J,i.glInternalFmt,rt,st,_.depth,0,at):r.texSubImage3D(35866,J,d.x,d.y,d.z,rt,st,_.depth,i.glFormat,i.glType,at)}break;case 34067:for(var ct=0;ct0?bt:_.width,p.height=ft.buffTexHeight>0?ft.buffTexHeight:_.height;var xt=mt+d.x===i.width>>_t?mt:_.width,wt=gt+d.y===i.height>>_t?gt:_.height,Tt=St.baseArrayLayer+St.layerCount;for(h=St.baseArrayLayer;h0,this.instancedDraw=!!e.instanceCount,this.drawCount=Math.max(t+1,this.drawCount),this.drawByIndex?(this.counts[t]=e.indexCount,this.offsets[t]=e.firstIndex):(this.counts[t]=e.vertexCount,this.offsets[t]=e.firstVertex),this.instances[t]=Math.max(1,e.instanceCount)},e._ensureCapacity=function(t){if(!(this._capacity>t)){this._capacity=cn(t);var e=new Int32Array(this._capacity),i=new Int32Array(this._capacity),n=new Int32Array(this._capacity);this.byteOffsets=new Int32Array(this._capacity),e.set(this.counts),i.set(this.offsets),n.set(this.instances),this.counts=e,this.offsets=i,this.instances=n}},t}(),gft=function(){function t(){this._srcFramebuffer=void 0,this._dstFramebuffer=void 0;var t=pft.instance.gl;this._srcFramebuffer=t.createFramebuffer(),this._dstFramebuffer=t.createFramebuffer()}return t.prototype.destroy=function(){var t=pft.instance.gl;t.deleteFramebuffer(this._srcFramebuffer),t.deleteFramebuffer(this._dstFramebuffer)},n(t,[{key:"srcFramebuffer",get:function(){return this._srcFramebuffer}},{key:"dstFramebuffer",get:function(){return this._dstFramebuffer}}]),t}(),yft=function(t){function e(){var e;return(e=t.call(this)||this)._gpuBuffer=null,e}s(e,t);var i=e.prototype;return i.getGpuBuffer=function(){return this._gpuBuffer},i.initialize=function(t){if("buffer"in t){this._isBufferView=!0;var e=t.buffer;this._usage=e.usage,this._memUsage=e.memUsage,this._size=this._stride=t.range,this._count=1,this._flags=e.flags,this._gpuBuffer={usage:this._usage,memUsage:this._memUsage,size:this._size,stride:this._stride,buffer:null,indirects:e.getGpuBuffer().indirects,glTarget:e.getGpuBuffer().glTarget,glBuffer:e.getGpuBuffer().glBuffer,glOffset:t.offset}}else this._usage=t.usage,this._memUsage=t.memUsage,this._size=t.size,this._stride=Math.max(t.stride||this._size,1),this._count=this._size/this._stride,this._flags=t.flags,this._gpuBuffer={usage:this._usage,memUsage:this._memUsage,size:this._size,stride:this._stride,buffer:null,indirects:new mft,glTarget:0,glBuffer:null,glOffset:0},Wct(pft.instance,this._gpuBuffer),pft.instance.memoryStatus.bufferSize+=this._size},i.destroy=function(){this._gpuBuffer&&(this._isBufferView||(jct(pft.instance,this._gpuBuffer),pft.instance.memoryStatus.bufferSize-=this._size),this._gpuBuffer=null)},i.resize=function(t){if(this._isBufferView)st(16379);else{var e=this._size;e!==t&&(this._size=t,this._count=this._size/this._stride,this._gpuBuffer&&(this._gpuBuffer.size=t,t>0&&(qct(pft.instance,this._gpuBuffer),pft.instance.memoryStatus.bufferSize-=e,pft.instance.memoryStatus.bufferSize+=t)))}},i.update=function(t,e){var i;this._isBufferView?st(16380):(i=void 0!==e?e:64&this._usage?0:t.byteLength,Xct(pft.instance,this._gpuBuffer,t,0,i))},e}(cp),vft=function(t){function e(){var e;return(e=t.call(this)||this)._isInRenderPass=!1,e._curGPUPipelineState=null,e._curGPUDescriptorSets=[],e._curGPUInputAssembler=null,e._curDynamicOffsets=Array(8).fill(0),e._curDynamicStates=new qd,e._isStateInvalid=!1,e}s(e,t);var i=e.prototype;return i.initialize=function(t){this._type=t.type,this._queue=t.queue;for(var e=pft.instance.bindingMappings.blockOffsets.length,i=0;i0?this.gpuColorViews[0].gpuTexture.width:this.gpuDepthStencilView?this.gpuDepthStencilView.gpuTexture.width:o},set width(t){o=t},get height(){return this.gpuColorViews.length>0?this.gpuColorViews[0].gpuTexture.height:this.gpuDepthStencilView?this.gpuDepthStencilView.gpuTexture.height:h},set height(t){h=t}},Zct(pft.instance,this._gpuFramebuffer),this._gpuFramebuffer.gpuColorViews.forEach((function(t){return i._gpuColorViews.push(t.gpuTexture.glTexture)})),this._gpuDepthStencilView=null==(e=this._gpuFramebuffer.gpuDepthStencilView)?void 0:e.gpuTexture.glTexture,this._width=this._gpuFramebuffer.width,this._height=this._gpuFramebuffer.height},i.destroy=function(){this._gpuFramebuffer&&($ct(pft.instance,this._gpuFramebuffer),this._gpuFramebuffer=null,this._gpuColorViews.length=0,this._gpuDepthStencilView=null)},n(e,[{key:"needRebuild",get:function(){var t=this.getGpuFramebuffer();if(t){for(var e,i=0;ii&&(i=s.binding)}this._bindingIndices=Array(i+1).fill(-1);for(var a=this._descriptorIndices=Array(i+1).fill(-1),o=0;o1&&(s.levelCount=Math.min(s.levelCount,e.getLevelCount(t,i)));var a=n._size;s.width=t,s.height=i,n._size=rp(s.format,n.width,n.height,n.depth,s.levelCount)*s.layerCount;var o=n._gpuTexture;!n._isTextureView&&o&&(o.width=t,o.height=i,o.size=n._size,o.isSwapchainTexture||(Jct(r,o),r.memoryStatus.textureSize-=a,r.memoryStatus.textureSize+=n._size))}},i.initAsSwapchainTexture=function(t){var e=new ld;e.format=t.format,e.usage=Zd[t.format].hasDepth?32:16,e.width=t.width,e.height=t.height,this.initialize(e,!0)},n(e,[{key:"gpuTexture",get:function(){return this._gpuTexture}},{key:"gpuTextureView",get:function(){return this._gpuTextureView}}]),e}(Pp),Oft="webglcontextlost";function kft(t){t.activeTexture(33984),t.pixelStorei(3333,1),t.pixelStorei(3317,1),t.pixelStorei(37440,!1),t.bindFramebuffer(36160,null),t.enable(3089),t.enable(2884),t.cullFace(1029),t.frontFace(2305),t.polygonOffset(0,0),t.enable(2929),t.depthMask(!0),t.depthFunc(513),t.stencilFuncSeparate(1028,519,1,65535),t.stencilOpSeparate(1028,7680,7680,7680),t.stencilMaskSeparate(1028,65535),t.stencilFuncSeparate(1029,519,1,65535),t.stencilOpSeparate(1029,7680,7680,7680),t.stencilMaskSeparate(1029,65535),t.disable(2960),t.disable(32926),t.disable(3042),t.blendEquationSeparate(32774,32774),t.blendFuncSeparate(1,0,1,0),t.colorMask(!0,!0,!0,!0),t.blendColor(0,0,0,0)}function Rft(t,e){for(var i=["","WEBKIT_","MOZ_"],n=0;n0)for(s=e;s=e;s-=n)a=h_t(s,t[s],t[s+1],a);return a&&i_t(a,a.next)&&(u_t(a),a=a.next),a}function Wft(t,e){if(void 0===e&&(e=null),!t)return t;e||(e=t);var i=t,n=!1;do{if(n=!1,i.steiner||!i_t(i,i.next)&&0!==e_t(i.prev,i,i.next))i=i.next;else{if(u_t(i),(i=e=i.prev)===i.next)return null;n=!0}}while(n||i!==e);return e}function jft(t,e,i,n,r,s,a){if(void 0===a&&(a=0),t){!a&&s&&Jft(t,n,r,s);for(var o=t,h=null,u=null;t.prev!==t.next;)if(h=t.prev,u=t.next,s?Xft(t,n,r,s):qft(t))e.push(h.i/i),e.push(t.i/i),e.push(u.i/i),u_t(t),t=u.next,o=u.next;else if((t=u)===o){a?1===a?jft(t=Yft(t,e,i),e,i,n,r,s,2):2===a&&Kft(t,e,i,n,r,s):jft(Wft(t),e,i,n,r,s,1);break}}}function qft(t){var e=t.prev,i=t,n=t.next;if(e_t(e,i,n)>=0)return!1;for(var r=t.next.next;r!==t.prev;){if($ft(e.x,e.y,i.x,i.y,n.x,n.y,r.x,r.y)&&e_t(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function Xft(t,e,i,n){var r=t.prev,s=t,a=t.next;if(e_t(r,s,a)>=0)return!1;for(var o=r.xs.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,c=Zft(o,h,e,i,n),f=Zft(u,l,e,i,n),_=t.nextZ;_&&_.z<=f;){if(_!==t.prev&&_!==t.next&&$ft(r.x,r.y,s.x,s.y,a.x,a.y,_.x,_.y)&&e_t(_.prev,_,_.next)>=0)return!1;_=_.nextZ}for(_=t.prevZ;_&&_.z>=c;){if(_!==t.prev&&_!==t.next&&$ft(r.x,r.y,s.x,s.y,a.x,a.y,_.x,_.y)&&e_t(_.prev,_,_.next)>=0)return!1;_=_.prevZ}return!0}function Yft(t,e,i){var n=t;do{var r=n.prev,s=n.next.next;!i_t(r,s)&&n_t(r,n,n.next,s)&&s_t(r,s)&&s_t(s,r)&&(e.push(r.i/i),e.push(n.i/i),e.push(s.i/i),u_t(n),u_t(n.next),n=t=s),n=n.next}while(n!==t);return n}function Kft(t,e,i,n,r,s){var a=t;do{for(var o=a.next.next;o!==a.prev;){if(a.i!==o.i&&t_t(a,o)){var h=o_t(a,o);return a=Wft(a,a.next),h=Wft(h,h.next),jft(a,e,i,n,r,s),void jft(h,e,i,n,r,s)}o=o.next}a=a.next}while(a!==t)}function Jft(t,e,i,n){var r=t;do{null===r.z&&(r.z=Zft(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,Qft(r)}function Qft(t){var e=0,i=null,n=null,r=null,s=null,a=0,o=0,h=0,u=1;do{for(i=t,t=null,s=null,a=0;i;){for(a++,n=i,o=0,e=0;e0||h>0&&n;)0===o?(r=n,n=n.nextZ,h--):0!==h&&n?i.z<=n.z?(r=i,i=i.nextZ,o--):(r=n,n=n.nextZ,h--):(r=i,i=i.nextZ,o--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;i=n}s.nextZ=null,u*=2}while(a>1);return t}function Zft(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 $ft(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 t_t(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!r_t(t,e)&&s_t(t,e)&&s_t(e,t)&&a_t(t,e)}function e_t(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function i_t(t,e){return t.x===e.x&&t.y===e.y}function n_t(t,e,i,n){return!!(i_t(t,e)&&i_t(i,n)||i_t(t,n)&&i_t(i,e))||e_t(t,e,i)>0!=e_t(t,e,n)>0&&e_t(i,n,t)>0!=e_t(i,n,e)>0}function r_t(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&&n_t(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}function s_t(t,e){return e_t(t.prev,t,t.next)<0?e_t(t,e,t.next)>=0&&e_t(t,t.prev,e)>=0:e_t(t,e,t.prev)<0||e_t(t,t.next,e)<0}function a_t(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 o_t(t,e){var i=new Gft(t.i,t.x,t.y),n=new Gft(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 h_t(t,e,i,n){var r=new Gft(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 u_t(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 l_t(t,e,i,n){for(var r=0,s=e,a=i-n;s80*i){a=h=t[0],o=u=t[1];for(var _=i;_h&&(h=l),c>u&&(u=c);f=Math.max(h-a,u-o)}return jft(r,s,i,a,o,f),s}for(var f_t=Math.PI,__t=Math.min,d_t=Math.max,p_t=Math.ceil,m_t=Math.acos,g_t=Math.cos,y_t=Math.sin,v_t=Math.atan2,b_t=null,S_t=null,x_t=new lr,w_t=[],T_t=0;T_t<4;T_t++)w_t.push(new er);function A_t(t,e,i){var n=2*m_t(t/(t+i));return d_t(2,p_t(e/n))}function C_t(t,e,i){return ti?i:t}var D_t=function(){function t(){}var e=t.prototype;return e.updateRenderData=function(){},e.getRenderData=function(t,e){if(!S_t)return null;var i=S_t.getRenderDataList(),n=i[S_t.dataOffset];if(!n)return null;var r=n,s=r?r.vertexStart+e:0;return(s>65535||3*s>131070)&&(++S_t.dataOffset,S_t.dataOffset0&&(r=1/e);for(var s=t.paths,a=t.pathOffset,o=t.pathLength;a1e-6){var b=1/d;b>600&&(b=600),f.dmx*=b,f.dmy*=b}f.dx*c.dy-c.dx*f.dy>0&&(f.flags|=2),d*(p=d_t(11,__t(c.len,f.len)*r))*p<1&&(f.flags|=8),1&f.flags&&(d*n*n<1||0===i||1===i)&&(f.flags|=4),12&f.flags&&h.bevel++,c=f,f=u[_+1]}}},e._flattenPaths=function(t){for(var e=t.paths,i=t.pathOffset,n=t.pathLength;i2&&a.equals(o)&&(r.closed=!0,s.pop(),a=s[s.length-1]);for(var h=0,u=s.length;hm&&(g-=2*f_t),this._vSet(f,_,1),this._vSet(u-s*n,e.y-a*n,-1);for(var y=C_t(p_t((m-g)/f_t)*r,2,r),v=0;v=0&&o<=1&&h>=0&&h<=1)return!0}return!1}YV.Assembler=I_t,T.UI.graphicsAssembler=I_t;var P_t=new _s,E_t=new _s,O_t=new _s,k_t=new _s;function R_t(t,e,i){for(var n=i.length,r=0;rr!=c>r&&n<(l-h)*(r-u)/(c-u)+h&&(i=!i)}return i}function L_t(t,e,i,n){var r,s=i.x-e.x,a=i.y-e.y,o=s*s+a*a,h=((t.x-e.x)*s+(t.y-e.y)*a)/o;return r=n?o?h<0?e:h>1?i:P_t.set(e.x+h*s,e.y+h*a):e:P_t.set(e.x+h*s,e.y+h*a),s=t.x-r.x,a=t.y-r.y,Math.sqrt(s*s+a*a)}var N_t=t("eK",(function(){}));N_t.lineLine=M_t,N_t.lineRect=function(t,e,i){var n=P_t.set(i.x,i.y),r=E_t.set(i.x,i.yMax),s=O_t.set(i.xMax,i.yMax),a=k_t.set(i.xMax,i.y);return!!(M_t(t,e,n,r)||M_t(t,e,r,s)||M_t(t,e,s,a)||M_t(t,e,a,n))},N_t.linePolygon=R_t,N_t.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,h=e.x+e.width,u=e.y+e.height;return i<=h&&r>=a&&n<=u&&s>=o},N_t.rectPolygon=function(t,e){var i=P_t.set(t.x,t.y),n=E_t.set(t.x,t.yMax),r=O_t.set(t.xMax,t.yMax),s=k_t.set(t.xMax,t.y);if(R_t(i,n,e))return!0;if(R_t(n,r,e))return!0;if(R_t(r,s,e))return!0;if(R_t(s,i,e))return!0;for(var a=0,o=e.length;as+o&&(u=s+o),ra+h&&(l=a+h);var c=n-u,f=r-l;return Math.sqrt(c*c+f*f)<=i},N_t.polygonPolygon=function(t,e){var i,n;for(i=0,n=t.length;i=0){var s=t._probes,a=s[this.vertex0].position,o=s[this.vertex1].position,h=s[this.vertex2].position,u=s[this.vertex3].position;this.sphere.init(a,o,h,u)}}var e=t.prototype;return e.isInCircumSphere=function(t){return er.squaredDistance(t,this.sphere.center)=0},e.isOuterCell=function(){return this.vertex3<0},t}(),ldt=Vh(udt.prototype,"invalid",[xdt],(function(){return!1})),cdt=Vh(udt.prototype,"vertex0",[xdt],(function(){return-1})),fdt=Vh(udt.prototype,"vertex1",[xdt],(function(){return-1})),_dt=Vh(udt.prototype,"vertex2",[xdt],(function(){return-1})),ddt=Vh(udt.prototype,"vertex3",[xdt],(function(){return-1})),pdt=Vh(udt.prototype,"neighbours",[xdt],(function(){return[-1,-1,-1,-1]})),mdt=Vh(udt.prototype,"matrix",[xdt],(function(){return new gr})),gdt=Vh(udt.prototype,"offset",[xdt],(function(){return new er(0,0,0)})),ydt=Vh(udt.prototype,"sphere",[xdt],(function(){return new kdt})),hdt=udt))||hdt),Fdt=t("eQ",function(){function t(t){this._probes=[],this._tetrahedrons=[],this._triangles=[],this._edges=[],this._probes=t}var e=t.prototype;return e.build=function(){return this.reset(),this.tetrahedralize(),this.computeAdjacency(),this.computeMatrices(),this._tetrahedrons},e.reset=function(){this._tetrahedrons.length=0,this._triangles.length=0,this._edges.length=0},e.tetrahedralize=function(){for(var t=this._probes.length,e=this.initTetrahedron(),i=0;i0&&er.negate(t,t),er.add(l.normal,l.normal,t),er.add(c.normal,c.normal,t),er.add(f.normal,f.normal,t);var p=this._triangles[h].vertex0,m=d>0?this._triangles[h].vertex2:this._triangles[h].vertex1,g=d>0?this._triangles[h].vertex1:this._triangles[h].vertex2,y=new Rdt(this,p,m,g);y.neighbours[3]=this._triangles[h].tetrahedron,this._tetrahedrons[this._triangles[h].tetrahedron].neighbours[this._triangles[h].index]=this._tetrahedrons.length,this._tetrahedrons.push(y)}}for(var v=0,b=r;b=0?this.computeTetrahedronMatrix(e):this.computeOuterCellMatrix(e)}},e.computeTetrahedronMatrix=function(t){var e=this._probes[t.vertex0].position,i=this._probes[t.vertex1].position,n=this._probes[t.vertex2].position,r=this._probes[t.vertex3].position;t.matrix.set(e.x-r.x,i.x-r.x,n.x-r.x,e.y-r.y,i.y-r.y,n.y-r.y,e.z-r.z,i.z-r.z,n.z-r.z),t.matrix.invert(),t.matrix.transpose()},e.computeOuterCellMatrix=function(t){var e=[],i=[];e[0]=this._probes[t.vertex0].normal,e[1]=this._probes[t.vertex1].normal,e[2]=this._probes[t.vertex2].normal,i[0]=this._probes[t.vertex0].position,i[1]=this._probes[t.vertex1].position,i[2]=this._probes[t.vertex2].position,er.subtract(Adt,i[0],i[2]),er.subtract(Cdt,e[0],e[2]),er.subtract(Ddt,i[1],i[2]),er.subtract(Bdt,e[1],e[2]),Idt.set(i[2]),er.negate(Mdt,e[2]);var n=[];n[0]=Cdt.y*Bdt.z-Cdt.z*Bdt.y,n[3]=-Cdt.x*Bdt.z+Cdt.z*Bdt.x,n[6]=Cdt.x*Bdt.y-Cdt.y*Bdt.x,n[9]=Adt.x*Bdt.y*Mdt.z-Adt.y*Bdt.x*Mdt.z+Cdt.x*Ddt.y*Mdt.z-Cdt.y*Ddt.x*Mdt.z+Adt.z*Bdt.x*Mdt.y-Adt.z*Bdt.y*Mdt.x+Cdt.z*Ddt.x*Mdt.y-Cdt.z*Ddt.y*Mdt.x-Adt.x*Bdt.z*Mdt.y+Adt.y*Bdt.z*Mdt.x-Cdt.x*Ddt.z*Mdt.y+Cdt.y*Ddt.z*Mdt.x,n[9]-=Idt.x*n[0]+Idt.y*n[3]+Idt.z*n[6],n[1]=Cdt.y*Ddt.z+Adt.y*Bdt.z-Cdt.z*Ddt.y-Adt.z*Bdt.y,n[4]=-Adt.x*Bdt.z-Cdt.x*Ddt.z+Adt.z*Bdt.x+Cdt.z*Ddt.x,n[7]=Adt.x*Bdt.y-Adt.y*Bdt.x+Cdt.x*Ddt.y-Cdt.y*Ddt.x,n[10]=Adt.x*Ddt.y*Mdt.z-Adt.y*Ddt.x*Mdt.z-Adt.x*Ddt.z*Mdt.y+Adt.y*Ddt.z*Mdt.x+Adt.z*Ddt.x*Mdt.y-Adt.z*Ddt.y*Mdt.x,n[10]-=Idt.x*n[1]+Idt.y*n[4]+Idt.z*n[7],n[2]=-Adt.z*Ddt.y+Adt.y*Ddt.z,n[5]=-Adt.x*Ddt.z+Adt.z*Ddt.x,n[8]=Adt.x*Ddt.y-Adt.y*Ddt.x,n[11]=0,n[11]-=Idt.x*n[2]+Idt.y*n[5]+Idt.z*n[8];var r=Cdt.x*Bdt.y*Mdt.z-Cdt.y*Bdt.x*Mdt.z+Cdt.z*Bdt.x*Mdt.y-Cdt.z*Bdt.y*Mdt.x+Cdt.y*Bdt.z*Mdt.x-Cdt.x*Bdt.z*Mdt.y;if(Math.abs(r)>Ki)for(var s=0;s<12;s++)n[s]/=r;else t.vertex3=-2;t.matrix.set(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8]),t.offset.set(n[9],n[10],n[11])},t}()),Ldt=t("eR",function(){function t(){}return t.uniformSampleSphere=function(t,e){var i=1-2*t,n=Math.sqrt(Math.max(0,1-i*i)),r=2*Math.PI*e,s=n*Math.cos(r),a=n*Math.sin(r);return new er(s,a,i)},t.uniformSampleSphereAll=function(t){for(var e=Math.floor(Math.sqrt(t)),i=e,n=[],r=1/e,s=1/i,a=0;a0&&(t.length,e.length);for(var i=this.getBasisCount(),n=t.length,r=1/(Ldt.uniformSpherePdf()*n),s=[],a=0;a0){var h=Math.sqrt(o);n.push(Math.cbrt(-a+h)+Math.cbrt(-a-h))}else if(o<0){var u=Math.acos(-a*Math.sqrt(-s)/(s*s))/3;n.push(2*Math.sqrt(-s)*Math.cos(u)),n.push(2*Math.sqrt(-s)*Math.cos(u+2*Math.PI/3)),n.push(2*Math.sqrt(-s)*Math.cos(u+4*Math.PI/3))}else if(0===a)n.push(0);else{var l=Math.cbrt(a);n.push(l),n.push(-2*l)}for(var c=0;c=0)return n[c]+r;return 0},t}(),Xdt=new er(0,0,0),Ydt=new er(0,0,0),Kdt=new er(0,0,0),Jdt=new er(0,0,0),Qdt=new er(0,0,0),Zdt=new er(0,0,0),$dt=new er(0,0,0),tpt=new er(0,0,0),ept=new er(0,0,0),ipt=new er(0,0,0),npt=new er(0,0,0),rpt=new er(0,0,0),spt=new er(0,0,0),apt=new er(0,0,0),opt=new er(0,0,0),hpt=t("eT",(Vdt=Kh("cc.LightProbesData"),zdt=Eu([Pdt]),Udt=Eu([Rdt]),Vdt((Hdt=function(){function t(){this._probes=Wdt&&Wdt(),this._tetrahedrons=jdt&&jdt()}var e=t.prototype;return e.empty=function(){return 0===this._probes.length||0===this._tetrahedrons.length},e.reset=function(){this._probes.length=0,this._tetrahedrons.length=0},e.updateProbes=function(t){this._probes.length=t.length;for(var e=this._probes.length,i=0;i=0)for(var h=this._probes[r.vertex3].coefficients,u=0;u=n)&&(e=0);for(var r=-1,s=-1,a=0;a=0&&i.y>=0&&i.z>=0&&i.w>=0)break;if(r===(s=i.x=0?this.getTetrahedronBarycentricCoord(t,e,i):this.getOuterCellBarycentricCoord(t,e,i)},e.getTetrahedronBarycentricCoord=function(t,e,i){var n=new er(0,0,0);er.subtract(n,t,this._probes[e.vertex3].position),er.transformMat3(n,n,e.matrix),i.set(n.x,n.y,n.z,1-n.x-n.y-n.z)},e.getOuterCellBarycentricCoord=function(e,i,n){var r=this._probes[i.vertex0].position,s=this._probes[i.vertex1].position,a=this._probes[i.vertex2].position;er.subtract(ipt,s,r),er.subtract(npt,a,r),er.cross(ept,ipt,npt),er.subtract(rpt,e,r);var o=er.dot(rpt,ept);if(o<0)n.set(0,0,0,-1);else{var h=new er(0,0,0);er.transformMat3(h,e,i.matrix),er.add(h,h,i.offset),o=-1===i.vertex3?qdt.getCubicUniqueRoot(h.x,h.y,h.z):qdt.getQuadraticUniqueRoot(h.x,h.y,h.z),er.scaleAndAdd(spt,r,this._probes[i.vertex0].normal,o),er.scaleAndAdd(apt,s,this._probes[i.vertex1].normal,o),er.scaleAndAdd(opt,a,this._probes[i.vertex2].normal,o);var u=t.getTriangleBarycentricCoord(spt,apt,opt,e);n.set(u.x,u.y,u.z,0)}},n(t,[{key:"probes",get:function(){return this._probes}},{key:"tetrahedrons",get:function(){return this._tetrahedrons}}]),t}(),Wdt=Vh(Hdt.prototype,"_probes",[hu,zdt],(function(){return[]})),jdt=Vh(Hdt.prototype,"_tetrahedrons",[hu,Udt],(function(){return[]})),Gdt=Hdt))||Gdt));T.internal.LightProbesData=hpt;var upt,lpt,cpt,fpt,_pt,dpt,ppt,mpt,gpt,ypt,vpt,bpt,Spt,xpt,wpt,Tpt=t("eU",function(){function t(){this._giScale=1,this._giSamples=1024,this._bounces=2,this._reduceRinging=0,this._showProbe=!0,this._showWireframe=!0,this._showConvex=!1,this._data=null,this._lightProbeSphereVolume=1}var e=t.prototype;return e.initialize=function(t){this._giScale=t.giScale,this._giSamples=t.giSamples,this._bounces=t.bounces,this._reduceRinging=t.reduceRinging,this._showProbe=t.showProbe,this._showWireframe=t.showWireframe,this._showConvex=t.showConvex,this._data=t.data,this._lightProbeSphereVolume=t.lightProbeSphereVolume},e.empty=function(){return!this._data||this._data.empty()},n(t,[{key:"giScale",get:function(){return this._giScale},set:function(t){this._giScale=t}},{key:"giSamples",get:function(){return this._giSamples},set:function(t){this._giSamples=t}},{key:"bounces",get:function(){return this._bounces},set:function(t){this._bounces=t}},{key:"reduceRinging",get:function(){return this._reduceRinging},set:function(t){this._reduceRinging=t}},{key:"showProbe",get:function(){return this._showProbe},set:function(t){this._showProbe=t}},{key:"showWireframe",get:function(){return this._showWireframe},set:function(t){this._showWireframe=t}},{key:"showConvex",get:function(){return this._showConvex},set:function(t){this._showConvex=t}},{key:"data",get:function(){return this._data},set:function(t){this._data=t}},{key:"lightProbeSphereVolume",get:function(){return this._lightProbeSphereVolume},set:function(t){this._lightProbeSphereVolume=t}}]),t}());T.internal.LightProbes=Tpt,t("eV",(upt=Kh("cc.LightProbeGroup"),lpt=Eu([er]),cpt=Eu(vdt),fpt=Eu(ui),_pt=Eu(ui),dpt=Eu(ui),upt(ppt=Zh((mpt=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;r=n.length&&(t=n.length-1),t<0&&(t=0),this._techIndex=t,this.updateTechnique()}}]),i}(dg),Mpt=Vh(Ipt.prototype,"_texture",[Cpt],(function(){return null})),v(Ipt.prototype,"texture",[Dpt],Object.getOwnPropertyDescriptor(Ipt.prototype,"texture"),Ipt.prototype),Ppt=Vh(Ipt.prototype,"_height",[hu],(function(){return 0})),Ept=Vh(Ipt.prototype,"_width",[hu],(function(){return 0})),Opt=Vh(Ipt.prototype,"_rotation",[hu],(function(){return 0})),kpt=Vh(Ipt.prototype,"_techIndex",[hu],(function(){return 0})),Bpt=Ipt))||Bpt)),tmt=[new xd("a_position",32),new xd("a_texCoord",44),new xd("a_texCoord1",32),new xd("a_color",35,!0)],emt=new er,imt=new er,nmt=function(t){function e(){var e;return(e=t.call(this)||this)._capacity=void 0,e._vertSize=0,e._vBuffer=null,e._vertAttrsFloatCount=0,e._vdataF32=null,e._vdataUint32=null,e._subMeshData=null,e._vertCount=0,e._indexCount=0,e._material=null,e._iaVertCount=0,e._iaIndexCount=0,e.type=5,e._capacity=100,e}s(e,t);var i=e.prototype;return i.setCapacity=function(t){this._capacity=t,this.createBuffer()},i.createBuffer=function(){this._vertSize=0;for(var t=0,e=tmt;t1){var n=0;er.subtract(emt,t[1],t[0]),this._vdataF32[n++]=t[0].x,this._vdataF32[n++]=t[0].y,this._vdataF32[n++]=t[0].z,this._vdataF32[n++]=0,this._vdataF32[n++]=e.evaluate(0,1),this._vdataF32[n++]=0,this._vdataF32[n++]=0,this._vdataF32[n++]=emt.x,this._vdataF32[n++]=emt.y,this._vdataF32[n++]=emt.z,this._vdataUint32[n++]=lr.toUint32(i.evaluate(0,1)),this._vdataF32[n++]=t[0].x,this._vdataF32[n++]=t[0].y,this._vdataF32[n++]=t[0].z,this._vdataF32[n++]=1,this._vdataF32[n++]=e.evaluate(0,1),this._vdataF32[n++]=0,this._vdataF32[n++]=1,this._vdataF32[n++]=emt.x,this._vdataF32[n++]=emt.y,this._vdataF32[n++]=emt.z,this._vdataUint32[n++]=lr.toUint32(i.evaluate(0,1));for(var r=1;r0&&this._models[0]&&this._detachFromScene()},i._attachToScene=function(){if(t.prototype._attachToScene.call(this),this._models.length>0&&this._models[0]&&this.node&&this.node.scene){var e=this._models[0];e.scene&&this._detachFromScene(),this._getRenderScene().addModel(e)}},i._detachFromScene=function(){if(t.prototype._detachFromScene.call(this),this._models.length>0&&this._models[0]){var e=this._models[0];e.scene&&e.scene.removeModel(e)}},i._onMaterialModified=function(e,i){t.prototype._onMaterialModified.call(this,e,i);var n=this.getMaterialInstance(0);n&&(jmt[Wmt]=this.worldSpace,n.recompileShaders(jmt),this._models[0]&&this._models[0].updateMaterial(n))},n(e,[{key:"texture",get:function(){return this._texture},set:function(t){this._texture=t,this.material&&this.material.setProperty("mainTexture",t)}},{key:"lineMaterial",get:function(){return this.getSharedMaterial(0)},set:function(t){this.setSharedMaterial(t,0)}},{key:"sharedMaterials",get:function(){return t.prototype.sharedMaterials},set:function(t){this.sharedMaterials=t}},{key:"worldSpace",get:function(){return this._worldSpace},set:function(t){this._worldSpace=t;var e=this.getMaterialInstance(0);e&&(jmt[Wmt]=this.worldSpace,e.recompileShaders(jmt),this._models[0]&&this._models[0].setSubModelMaterial(0,e))}},{key:"positions",get:function(){return this._positions},set:function(t){this._positions=t,this._models[0]&&this._models[0].addLineVertexData(this._positions,this.width,this.color)}},{key:"width",get:function(){return this._width},set:function(t){this._width=t,this._models[0]&&this._models[0].addLineVertexData(this._positions,this._width,this._color)}},{key:"color",get:function(){return this._color},set:function(t){this._color=t,this._models[0]&&this._models[0].addLineVertexData(this._positions,this._width,this._color)}},{key:"tile",get:function(){return this._tile},set:function(t){this._tile.set(t),this.material&&(this._tile_offset.x=this._tile.x,this._tile_offset.y=this._tile.y,this.material.setProperty("mainTiling_Offset",this._tile_offset))}},{key:"offset",get:function(){return this._offset},set:function(t){this._offset.set(t),this.material&&(this._tile_offset.z=this._offset.x,this._tile_offset.w=this._offset.y,this.material.setProperty("mainTiling_Offset",this._tile_offset))}}]),e}(VU),Imt=Vh(Bmt.prototype,"_texture",[ymt],(function(){return null})),v(Bmt.prototype,"texture",[vmt],Object.getOwnPropertyDescriptor(Bmt.prototype,"texture"),Bmt.prototype),Mmt=Vh(Bmt.prototype,"_material",[hu],(function(){return null})),v(Bmt.prototype,"lineMaterial",[bmt],Object.getOwnPropertyDescriptor(Bmt.prototype,"lineMaterial"),Bmt.prototype),v(Bmt.prototype,"sharedMaterials",[Uu,hu],Object.getOwnPropertyDescriptor(Bmt.prototype,"sharedMaterials"),Bmt.prototype),Pmt=Vh(Bmt.prototype,"_worldSpace",[hu],(function(){return!1})),Emt=Vh(Bmt.prototype,"_positions",[Smt],(function(){return[]})),v(Bmt.prototype,"positions",[xmt],Object.getOwnPropertyDescriptor(Bmt.prototype,"positions"),Bmt.prototype),v(Bmt.prototype,"width",[wmt],Object.getOwnPropertyDescriptor(Bmt.prototype,"width"),Bmt.prototype),Omt=Vh(Bmt.prototype,"_width",[hu],(function(){return new omt})),v(Bmt.prototype,"color",[Tmt],Object.getOwnPropertyDescriptor(Bmt.prototype,"color"),Bmt.prototype),kmt=Vh(Bmt.prototype,"_color",[hu],(function(){return new zmt})),Rmt=Vh(Bmt.prototype,"_tile",[hu],(function(){return new _s(1,1)})),v(Bmt.prototype,"tile",[Amt],Object.getOwnPropertyDescriptor(Bmt.prototype,"tile"),Bmt.prototype),Fmt=Vh(Bmt.prototype,"_offset",[hu],(function(){return new _s(0,0)})),v(Bmt.prototype,"offset",[Cmt],Object.getOwnPropertyDescriptor(Bmt.prototype,"offset"),Bmt.prototype),Dmt=Bmt))||Dmt)),Xmt=function(){function t(t){this.particleSystem=void 0,this.position=void 0,this.velocity=void 0,this.animatedVelocity=void 0,this.ultimateVelocity=void 0,this.angularVelocity=void 0,this.axisOfRotation=void 0,this.rotation=void 0,this.startEuler=void 0,this.startRotation=void 0,this.startRotated=void 0,this.deltaQuat=void 0,this.deltaMat=void 0,this.localMat=void 0,this.startSize=void 0,this.size=void 0,this.startColor=void 0,this.color=void 0,this.randomSeed=void 0,this.remainingLifetime=void 0,this.loopCount=void 0,this.lastLoop=void 0,this.trailDelay=void 0,this.startLifetime=void 0,this.emitAccumulator0=void 0,this.emitAccumulator1=void 0,this.frameIndex=void 0,this.startRow=void 0,this.particleSystem=t,this.position=new er(0,0,0),this.velocity=new er(0,0,0),this.animatedVelocity=new er(0,0,0),this.ultimateVelocity=new er(0,0,0),this.angularVelocity=new er(0,0,0),this.axisOfRotation=new er(0,0,0),this.rotation=new er(0,0,0),this.startEuler=new er(0,0,0),this.startRotation=new Or,this.startRotated=!1,this.deltaQuat=new Or,this.deltaMat=new Kr,this.localMat=new Kr,this.startSize=new er(0,0,0),this.size=new er(0,0,0),this.startColor=lr.WHITE.clone(),this.color=lr.WHITE.clone(),this.randomSeed=0,this.remainingLifetime=0,this.loopCount=0,this.lastLoop=0,this.trailDelay=0,this.startLifetime=0,this.emitAccumulator0=0,this.emitAccumulator1=0,this.frameIndex=0,this.startRow=0}return t.prototype.reset=function(){this.rotation.set(0,0,0),this.startEuler.set(0,0,0),this.startRotation.set(0,0,0,1),this.startRotated=!1,this.deltaQuat.set(0,0,0,1),this.deltaMat.identity(),this.localMat.identity()},t}();Xmt.INDENTIFY_NEG_QUAT=10,Xmt.R2D=180/Math.PI;var Ymt,Kmt,Jmt,Qmt,Zmt,$mt,tgt="noiseModule",egt=["sizeModule","colorModule","forceModule","velocityModule","limitModule","rotationModule","textureModule","noiseModule"],igt=["_colorOverLifetimeModule","_shapeModule","_sizeOvertimeModule","_velocityOvertimeModule","_forceOvertimeModule","_limitVelocityOvertimeModule","_rotationOvertimeModule","_textureAnimationModule","_noiseModule","_trailModule"],ngt=function(){function t(){this.target=null,this.needUpdate=!1,this.needAnimate=!0,this.name=void 0}var e=t.prototype;return e.bindTarget=function(t){this.target=t},e.update=function(){},t}(),rgt=new er(0,0,-1);function sgt(t,e,i,n){return e!==t?(0===t||Kr.invert(i,i),Kr.getRotation(n,i),!0):(Or.set(n,0,0,0,1),!1)}function agt(t,e){_s.set(t,Math.cos(e),Math.sin(e))}function ogt(t){var e=an(-1,1),i=an(0,2*Math.PI),n=Math.sqrt(1-e*e),r=n*Math.cos(i),s=n*Math.sin(i);er.set(t,r,s,e)}function hgt(t,e,i){ogt(t),er.multiplyScalar(t,t,e+(i-e)*rn())}function ugt(t,e,i,n){agt(t,n),t.z=0,er.multiplyScalar(t,t,e+(i-e)*rn())}function lgt(t){for(var e=0;ee){var s=r-r*i;r=s>e?s:e}return r*n}var gyt,yyt,vyt,byt,Syt,xyt,wyt,Tyt,Ayt,Cyt,Dyt,Byt,Iyt,Myt,Pyt,Eyt,Oyt,kyt,Ryt,Fyt,Lyt,Nyt,Vyt,zyt,Uyt,Gyt,Hyt,Wyt,jyt,qyt,Xyt,Yyt,Kyt,Jyt,Qyt,Zyt,$yt,tvt,evt,ivt,nvt,rvt,svt,avt,ovt,hvt,uvt,lvt,cvt,fvt,_vt,dvt,pvt,mvt,gvt,yvt,vvt,bvt,Svt,xvt,wvt,Tvt,Avt,Cvt,Dvt,Bvt,Ivt,Mvt,Pvt,Evt,Ovt,kvt,Rvt,Fvt,Lvt,Nvt,Vvt,zvt,Uvt,Gvt,Hvt,Wvt,jvt,qvt,Xvt,Yvt,Kvt=125292,Jvt=(Zgt=Kh("cc.RotationOvertimeModule"),$gt=Eu(omt),tyt=Eu(omt),eyt=Eu(omt),Zgt((nyt=function(t){function e(){var e;return(e=t.call(this)||this)._enable=ryt&&ryt(),e._separateAxes=syt&&syt(),e.x=ayt&&ayt(),e.y=oyt&&oyt(),e.z=hyt&&hyt(),e.name="rotationModule",e._startMat=new Kr,e._matRot=new Kr,e._quatRot=new Or,e._otherEuler=new er,e}s(e,t);var i=e.prototype;return i._processRotation=function(t){var e=t.particleSystem.processor.getInfo().renderMode;4!==e&&1===e&&this._quatRot.set(0,0,0,1),Or.normalize(this._quatRot,this._quatRot),this._quatRot.w<0&&(this._quatRot.x+=Xmt.INDENTIFY_NEG_QUAT)},i.animate=function(t,e){var i=1-t.remainingLifetime/t.startLifetime,n=fgt(this.z)?hn(t.randomSeed+Kvt):0,r=t.particleSystem.processor.getInfo().renderMode;if(this._separateAxes&&3!==r&&2!==r){var s=fgt(this.x)?hn(t.randomSeed+Kvt):0,a=fgt(this.y)?hn(t.randomSeed+Kvt):0;Or.fromEuler(t.deltaQuat,this.x.evaluate(i,s)*e*Xmt.R2D,this.y.evaluate(i,a)*e*Xmt.R2D,this.z.evaluate(i,n)*e*Xmt.R2D)}else Or.fromEuler(t.deltaQuat,0,0,this.z.evaluate(i,n)*e*Xmt.R2D);t.deltaMat=Kr.fromQuat(t.deltaMat,t.deltaQuat),t.localMat=t.localMat.multiply(t.deltaMat),t.startRotated||(4!==r&&(1===r?t.startEuler.set(0,0,0):0!==r&&t.startEuler.set(0,0,t.startEuler.z)),Or.fromEuler(t.startRotation,t.startEuler.x*Xmt.R2D,t.startEuler.y*Xmt.R2D,t.startEuler.z*Xmt.R2D),t.startRotated=!0),this._startMat=Kr.fromQuat(this._startMat,t.startRotation),this._matRot=this._startMat.multiply(t.localMat),Kr.getRotation(this._quatRot,this._matRot),this._processRotation(t,Xmt.R2D),t.rotation.set(this._quatRot.x,this._quatRot.y,this._quatRot.z)},n(e,[{key:"enable",get:function(){return this._enable},set:function(t){this._enable!==t&&(this._enable=t,this.target&&this.target.enableModule(this.name,t,this))}},{key:"separateAxes",get:function(){return this._separateAxes},set:function(t){this._separateAxes=t}}]),e}(ngt),ryt=Vh(nyt.prototype,"_enable",[hu],(function(){return!1})),syt=Vh(nyt.prototype,"_separateAxes",[hu],(function(){return!1})),ayt=Vh(nyt.prototype,"x",[$gt,hu],(function(){return new omt})),oyt=Vh(nyt.prototype,"y",[tyt,hu],(function(){return new omt})),hyt=Vh(nyt.prototype,"z",[eyt,hu],(function(){return new omt})),iyt=nyt))||iyt),Qvt=39825,Zvt=(gyt=Kh("cc.SizeOvertimeModule"),yyt=Eu(omt),vyt=Eu(omt),byt=Eu(omt),Syt=Eu(omt),gyt((wyt=function(t){function e(){var e;return(e=t.call(this)||this)._enable=Tyt&&Tyt(),e.separateAxes=Ayt&&Ayt(),e.size=Cyt&&Cyt(),e.x=Dyt&&Dyt(),e.y=Byt&&Byt(),e.z=Iyt&&Iyt(),e.name="sizeModule",e}return s(e,t),e.prototype.animate=function(t){if(this.separateAxes){var e=1-t.remainingLifetime/t.startLifetime,i=fgt(this.x)?hn(t.randomSeed+Qvt):0,n=fgt(this.y)?hn(t.randomSeed+Qvt):0,r=fgt(this.z)?hn(t.randomSeed+Qvt):0;t.size.x=t.startSize.x*this.x.evaluate(e,i),t.size.y=t.startSize.y*this.y.evaluate(e,n),t.size.z=t.startSize.z*this.z.evaluate(e,r)}else{var s=fgt(this.size)?hn(t.randomSeed+Qvt):0;er.multiplyScalar(t.size,t.startSize,this.size.evaluate(1-t.remainingLifetime/t.startLifetime,s))}},n(e,[{key:"enable",get:function(){return this._enable},set:function(t){this._enable!==t&&(this._enable=t,this.target&&this.target.enableModule(this.name,t,this))}}]),e}(ngt),Tyt=Vh(wyt.prototype,"_enable",[hu],(function(){return!1})),Ayt=Vh(wyt.prototype,"separateAxes",[hu],(function(){return!1})),Cyt=Vh(wyt.prototype,"size",[yyt,hu],(function(){return new omt})),Dyt=Vh(wyt.prototype,"x",[vyt,hu],(function(){return new omt})),Byt=Vh(wyt.prototype,"y",[byt,hu],(function(){return new omt})),Iyt=Vh(wyt.prototype,"z",[Syt,hu],(function(){return new omt})),xyt=wyt))||xyt),$vt=Pe({Grid:0}),tbt=Pe({WholeSheet:0,SingleRow:1}),ebt=(Myt=Kh("cc.TextureAnimationModule"),Pyt=uu("numTilesX"),Eyt=uu("numTilesY"),Oyt=Eu($vt),kyt=Eu($vt),Ryt=Eu(tbt),Fyt=Eu(omt),Lyt=Eu(omt),Myt((Vyt=function(t){function e(){var e;return(e=t.call(this)||this)._enable=zyt&&zyt(),e._numTilesX=Uyt&&Uyt(),e._numTilesY=Gyt&&Gyt(),e._mode=Hyt&&Hyt(),e.animation=Wyt&&Wyt(),e.frameOverTime=jyt&&jyt(),e.startFrame=qyt&&qyt(),e.cycleCount=Xyt&&Xyt(),e._flipU=Yyt&&Yyt(),e._flipV=Kyt&&Kyt(),e._uvChannelMask=Jyt&&Jyt(),e.randomRow=Qyt&&Qyt(),e.rowIndex=Zyt&&Zyt(),e.name="textureModule",e}s(e,t);var i=e.prototype;return i.init=function(t){t.startRow=Math.floor(rn()*this.numTilesY)},i.animate=function(t){var e=1-t.remainingLifetime/t.startLifetime,i=fgt(this.startFrame)?hn(t.randomSeed+90794):0,n=fgt(this.frameOverTime)?hn(t.randomSeed+90794):0,r=this.startFrame.evaluate(e,i)/(this.numTilesX*this.numTilesY);if(this.animation===tbt.WholeSheet)t.frameIndex=fn(this.cycleCount*(this.frameOverTime.evaluate(e,n)+r),1);else if(this.animation===tbt.SingleRow){var s=1/this.numTilesY;if(this.randomRow){var a=fn(this.cycleCount*(this.frameOverTime.evaluate(e,n)+r),1),o=t.startRow*s,h=o+s;t.frameIndex=tn(o,h,a)}else{var u=this.rowIndex*s,l=u+s;t.frameIndex=tn(u,l,fn(this.cycleCount*(this.frameOverTime.evaluate(e,n)+r),1))}}},n(e,[{key:"enable",get:function(){return this._enable},set:function(t){this._enable!==t&&(this._enable=t,this.target&&(this.target.updateMaterialParams(),this.target.enableModule(this.name,t,this)))}},{key:"mode",get:function(){return this._mode},set:function(t){t!==$vt.Grid&&Y("particle texture animation's sprites is not supported!")}},{key:"numTilesX",get:function(){return this._numTilesX},set:function(t){this._numTilesX!==t&&(this._numTilesX=t,this.target.updateMaterialParams())}},{key:"numTilesY",get:function(){return this._numTilesY},set:function(t){this._numTilesY!==t&&(this._numTilesY=t,this.target.updateMaterialParams())}},{key:"flipU",get:function(){return this._flipU},set:function(){Y("particle texture animation's flipU is not supported!")}},{key:"flipV",get:function(){return this._flipV},set:function(){Y("particle texture animation's flipV is not supported!")}},{key:"uvChannelMask",get:function(){return this._uvChannelMask},set:function(){Y("particle texture animation's uvChannelMask is not supported!")}}]),e}(ngt),zyt=Vh(Vyt.prototype,"_enable",[hu],(function(){return!1})),Uyt=Vh(Vyt.prototype,"_numTilesX",[Pyt],(function(){return 0})),Gyt=Vh(Vyt.prototype,"_numTilesY",[Eyt],(function(){return 0})),Hyt=Vh(Vyt.prototype,"_mode",[Oyt],(function(){return $vt.Grid})),v(Vyt.prototype,"mode",[kyt],Object.getOwnPropertyDescriptor(Vyt.prototype,"mode"),Vyt.prototype),Wyt=Vh(Vyt.prototype,"animation",[Ryt,hu],(function(){return tbt.WholeSheet})),jyt=Vh(Vyt.prototype,"frameOverTime",[Fyt,hu],(function(){return new omt})),qyt=Vh(Vyt.prototype,"startFrame",[Lyt,hu],(function(){return new omt})),Xyt=Vh(Vyt.prototype,"cycleCount",[hu],(function(){return 0})),Yyt=Vh(Vyt.prototype,"_flipU",[hu],(function(){return 0})),Kyt=Vh(Vyt.prototype,"_flipV",[hu],(function(){return 0})),Jyt=Vh(Vyt.prototype,"_uvChannelMask",[hu],(function(){return-1})),Qyt=Vh(Vyt.prototype,"randomRow",[hu],(function(){return!1})),Zyt=Vh(Vyt.prototype,"rowIndex",[hu],(function(){return 0})),Nyt=Vyt))||Nyt),ibt=197866,nbt=new er,rbt=($yt=Kh("cc.VelocityOvertimeModule"),tvt=Eu(omt),evt=Eu(omt),ivt=Eu(omt),nvt=Eu(omt),rvt=Eu(pgt),$yt((avt=function(t){function e(){var e;return(e=t.call(this)||this)._enable=ovt&&ovt(),e.x=hvt&&hvt(),e.y=uvt&&uvt(),e.z=lvt&&lvt(),e.speedModifier=cvt&&cvt(),e.space=fvt&&fvt(),e.rotation=void 0,e.needTransform=void 0,e.name="velocityModule",e.rotation=new Or,e.speedModifier.constant=1,e.needTransform=!1,e.needUpdate=!0,e}s(e,t);var i=e.prototype;return i.update=function(t,e){this.needTransform=sgt(t,this.space,e,this.rotation)},i.animate=function(t){var e=1-t.remainingLifetime/t.startLifetime,i=fgt(this.x)?hn(t.randomSeed^ibt):0,n=fgt(this.y)?hn(156497^t.randomSeed):0,r=fgt(this.z)?hn(984136^t.randomSeed):0,s=fgt(this.speedModifier)?hn(t.randomSeed+ibt):0,a=er.set(nbt,this.x.evaluate(e,i),this.y.evaluate(e,n),this.z.evaluate(e,r));this.needTransform&&er.transformQuat(a,a,this.rotation),er.add(t.animatedVelocity,t.animatedVelocity,a),er.add(t.ultimateVelocity,t.velocity,t.animatedVelocity),er.multiplyScalar(t.ultimateVelocity,t.ultimateVelocity,this.speedModifier.evaluate(1-t.remainingLifetime/t.startLifetime,s))},n(e,[{key:"enable",get:function(){return this._enable},set:function(t){this._enable!==t&&(this._enable=t,this.target&&this.target.enableModule(this.name,t,this))}}]),e}(ngt),ovt=Vh(avt.prototype,"_enable",[hu],(function(){return!1})),hvt=Vh(avt.prototype,"x",[tvt,hu],(function(){return new omt})),uvt=Vh(avt.prototype,"y",[evt,hu],(function(){return new omt})),lvt=Vh(avt.prototype,"z",[ivt,hu],(function(){return new omt})),cvt=Vh(avt.prototype,"speedModifier",[nvt,hu],(function(){return new omt})),fvt=Vh(avt.prototype,"space",[rvt,hu],(function(){return 1})),svt=avt))||svt),sbt=t("f1",(_vt=Kh("cc.Burst"),dvt=Eu(omt),_vt((mvt=function(){function t(){this._time=gvt&&gvt(),this._repeatCount=yvt&&yvt(),this.repeatInterval=vvt&&vvt(),this.count=bvt&&bvt(),this._remainingCount=0,this._curTime=0}var e=t.prototype;return e.update=function(t,e){if(0===this._remainingCount&&(this._remainingCount=this._repeatCount,this._curTime=this._time),this._remainingCount>0){var i=fn(t.time-t.startDelay.evaluate(0,1),t.duration)-e;i=i>0?i:0;var n=fn(t.time-t.startDelay.evaluate(0,1),t.duration);this._curTime>=i&&this._curTime0&&(t.position.x+=an(-this.randomPositionAmount,this.randomPositionAmount),t.position.y+=an(-this.randomPositionAmount,this.randomPositionAmount),t.position.z+=an(-this.randomPositionAmount,this.randomPositionAmount)),er.transformQuat(t.velocity,t.velocity,this.quat),er.transformMat4(t.position,t.position,this.mat),this.sphericalDirectionAmount>0){var e=er.normalize(abt,t.position);er.lerp(t.velocity,t.velocity,e,this.sphericalDirectionAmount)}this.lastTime=this.particleSystem.time},e.constructMat=function(){Or.fromEuler(this.quat,this._rotation.x,this._rotation.y,this._rotation.z),Kr.fromRTS(this.mat,this.quat,this._position,this._scale)},e.generateArcAngle=function(){if(0===this.arcMode)return an(0,this._arc);var t=this.totalAngle+2*Math.PI*this.arcSpeed.evaluate(this.particleSystem.time,1)*(this.particleSystem.time-this.lastTime);switch(this.totalAngle=t,0!==this.arcSpread&&(t=Math.floor(t/(this._arc*this.arcSpread))*this._arc*this.arcSpread),this.arcMode){case 1:default:return fn(t,this._arc);case 2:return _n(t,this._arc)}},n(t,[{key:"position",get:function(){return this._position},set:function(t){this._position=t,this.constructMat()}},{key:"rotation",get:function(){return this._rotation},set:function(t){this._rotation=t,this.constructMat()}},{key:"scale",get:function(){return this._scale},set:function(t){this._scale=t,this.constructMat()}},{key:"arc",get:function(){return nn(this._arc)},set:function(t){this._arc=en(t)}},{key:"angle",get:function(){return Math.round(100*nn(this._angle))/100},set:function(t){this._angle=en(t)}},{key:"enable",get:function(){return this._enable},set:function(t){this._enable=t}},{key:"shapeType",get:function(){return this._shapeType},set:function(t){switch(this._shapeType=t,this._shapeType){case 0:0===this.emitFrom&&(this.emitFrom=3);break;case 2:1===this.emitFrom&&(this.emitFrom=0);break;case 3:case 4:0!==this.emitFrom&&1!==this.emitFrom||(this.emitFrom=3)}}}]),t}(),Mvt=Vh(Ivt.prototype,"_enable",[hu],(function(){return!1})),Pvt=Vh(Ivt.prototype,"_shapeType",[xvt,wvt],(function(){return 2})),v(Ivt.prototype,"shapeType",[Tvt],Object.getOwnPropertyDescriptor(Ivt.prototype,"shapeType"),Ivt.prototype),Evt=Vh(Ivt.prototype,"emitFrom",[Avt,hu],(function(){return 3})),Ovt=Vh(Ivt.prototype,"alignToDirection",[hu],(function(){return!1})),kvt=Vh(Ivt.prototype,"randomDirectionAmount",[hu],(function(){return 0})),Rvt=Vh(Ivt.prototype,"sphericalDirectionAmount",[hu],(function(){return 0})),Fvt=Vh(Ivt.prototype,"randomPositionAmount",[hu],(function(){return 0})),Lvt=Vh(Ivt.prototype,"radius",[hu],(function(){return 1})),Nvt=Vh(Ivt.prototype,"radiusThickness",[hu],(function(){return 1})),Vvt=Vh(Ivt.prototype,"arcMode",[Cvt,hu],(function(){return 0})),zvt=Vh(Ivt.prototype,"arcSpread",[hu],(function(){return 0})),Uvt=Vh(Ivt.prototype,"arcSpeed",[Dvt,hu],(function(){return new omt})),Gvt=Vh(Ivt.prototype,"length",[hu],(function(){return 5})),Hvt=Vh(Ivt.prototype,"boxThickness",[hu],(function(){return new er(0,0,0)})),Wvt=Vh(Ivt.prototype,"_position",[hu],(function(){return new er(0,0,0)})),jvt=Vh(Ivt.prototype,"_rotation",[hu],(function(){return new er(0,0,0)})),qvt=Vh(Ivt.prototype,"_scale",[hu],(function(){return new er(1,1,1)})),Xvt=Vh(Ivt.prototype,"_arc",[hu],(function(){return en(360)})),Yvt=Vh(Ivt.prototype,"_angle",[hu],(function(){return en(25)})),Bvt=Ivt))||Bvt);function lbt(t,e,i,n,r){switch(t){case 3:hgt(n,e*(1-i),e),er.normalize(r,n);break;case 2:ogt(n),er.multiplyScalar(n,n,e),er.normalize(r,n);break;default:X(t+" is not supported for sphere emitter.")}}function cbt(t,e,i,n,r){switch(t){case 3:hgt(n,e*(1-i),e),n.z>0&&(n.z*=-1),er.normalize(r,n);break;case 2:ogt(n),er.multiplyScalar(n,n,e),n.z>0&&(n.z*=-1),er.normalize(r,n);break;default:X(t+" is not supported for hemisphere emitter.")}}function fbt(t,e,i,n,r,s,a,o){switch(t){case 0:ugt(a,e*(1-i),e,n),_s.multiplyScalar(o,a,Math.sin(r)),o.z=-Math.cos(r)*e,er.normalize(o,o),a.z=0;break;case 2:agt(a,n),_s.multiplyScalar(o,a,Math.sin(r)),o.z=-Math.cos(r),er.normalize(o,o),_s.multiplyScalar(a,a,e),a.z=0;break;case 3:ugt(a,e*(1-i),e,n),_s.multiplyScalar(o,a,Math.sin(r)),o.z=-Math.cos(r)*e,er.normalize(o,o),a.z=0,er.add(a,a,er.multiplyScalar(abt,o,s*rn()/-o.z));break;default:X(t+" is not supported for cone emitter.")}}function _bt(t,e,i,n){switch(t){case 3:r=i,s=hbt,er.set(r,an(-s.x,s.x),an(-s.y,s.y),an(-s.z,s.z));break;case 2:obt[0]=an(-.5,.5),obt[1]=an(-.5,.5),obt[2]=.5*cgt(),lgt(obt),pbt(obt,e),er.set(i,obt[0],obt[1],obt[2]);break;case 1:obt[0]=an(-.5,.5),obt[1]=.5*cgt(),obt[2]=.5*cgt(),lgt(obt),pbt(obt,e),er.set(i,obt[0],obt[1],obt[2]);break;default:X(t+" is not supported for box emitter.")}var r,s;er.copy(n,rgt)}function dbt(t,e,i,n,r){ugt(n,t*(1-e),t,i),er.normalize(r,n)}function pbt(t,e){e.x>0&&(t[0]+=.5*an(-e.x,e.x),t[0]=Zi(t[0],-.5,.5)),e.y>0&&(t[1]+=.5*an(-e.y,e.y),t[1]=Zi(t[1],-.5,.5)),e.z>0&&(t[2]+=.5*an(-e.z,e.z),t[2]=Zi(t[2],-.5,.5))}var mbt=[0,0,1,0,0,1,1,1],gbt=[0,0,0,1,0,0,0,1,0,1,1,0],ybt=function(t){function e(){var e;return(e=t.call(this)||this)._capacity=void 0,e._bufferSize=void 0,e._vertAttrs=void 0,e._vertAttribSize=void 0,e._vBuffer=void 0,e._vertAttrsFloatCount=void 0,e._vdataF32=void 0,e._vdataUint32=void 0,e._subMeshData=void 0,e._mesh=void 0,e._vertCount=0,e._indexCount=0,e._startTimeOffset=0,e._lifeTimeOffset=0,e._material=null,e._vertAttribSizeStatic=void 0,e._vertStaticAttrsFloatCount=void 0,e._insBuffers=void 0,e._insIndices=void 0,e._useInstance=void 0,e._iaVertCount=0,e._iaIndexCount=0,e.type=4,e._capacity=0,e._bufferSize=16,e._vertAttrs=null,e._vertAttribSize=0,e._vBuffer=null,e._vertAttrsFloatCount=0,e._vdataF32=null,e._vdataUint32=null,e._vertAttribSizeStatic=0,e._vertStaticAttrsFloatCount=0,e._insBuffers=[],e._insIndices=null,zp.gfxDevice.hasFeature(1)?e._useInstance=!0:e._useInstance=!1,e._subMeshData=null,e._mesh=null,e}s(e,t);var i=e.prototype;return i.setCapacity=function(t){var e=this._capacity!==t;this._capacity=t,this._bufferSize=Math.max(this._capacity,16),this._subMeshData&&e&&this.rebuild()},i.setVertexAttributes=function(t,e){if(this._useInstance)this.setVertexAttributesIns(t,e);else{if(this._mesh===t&&this._vertAttrs===e)return;this._mesh=t,this._vertAttrs=e,this._vertAttribSize=0;for(var i,n=p(this._vertAttrs);!(i=n()).done;){var r=i.value;r.offset=this._vertAttribSize,this._vertAttribSize+=Zd[r.format].size}this._vertAttrsFloatCount=this._vertAttribSize/4,this.rebuild()}},i.setVertexAttributesIns=function(t,e){if(this._mesh!==t||this._vertAttrs!==e){this._mesh=t,this._vertAttrs=e,this._vertAttribSize=0,this._vertAttribSizeStatic=0;for(var i,n=p(this._vertAttrs);!(i=n()).done;){var r=i.value;0===r.stream?(r.offset=this._vertAttribSize,this._vertAttribSize+=Zd[r.format].size):1===r.stream&&(r.offset=this._vertAttribSizeStatic,this._vertAttribSizeStatic+=Zd[r.format].size)}this._vertAttrsFloatCount=this._vertAttribSize/4,this._vertStaticAttrsFloatCount=this._vertAttribSizeStatic/4,this.rebuild()}},i.createSubMeshData=function(){this.destroySubMeshData(),this._vertCount=4,this._indexCount=6,this._mesh&&(this._vertCount=this._mesh.struct.vertexBundles[this._mesh.struct.primitives[0].vertexBundelIndices[0]].view.count,this._indexCount=this._mesh.struct.primitives[0].indexView.count);var t=this._device.createBuffer(new sd(10,3,this._vertAttribSize*this._bufferSize*this._vertCount,this._vertAttribSize)),e=new ArrayBuffer(this._vertAttribSize*this._bufferSize*this._vertCount);if(this._mesh&&this._capacity>0){var i=this._vertAttrs[this._vertAttrs.findIndex((function(t){return"a_texCoord"===t.name}))].offset;this._mesh.copyAttribute(0,"a_texCoord",e,this._vertAttribSize,i);var n=this._vertAttrs.findIndex((function(t){return"a_texCoord3"===t.name}));if(i=this._vertAttrs[n++].offset,this._mesh.copyAttribute(0,"a_position",e,this._vertAttribSize,i),i=this._vertAttrs[n++].offset,this._mesh.copyAttribute(0,"a_normal",e,this._vertAttribSize,i),i=this._vertAttrs[n++].offset,!this._mesh.copyAttribute(0,"a_color",e,this._vertAttribSize,i))for(var r=new Uint32Array(e),s=0;s0){this._mesh.copyIndices(0,h);for(var u=1;u=this._particleSystem.capacity?null:this._particles.add()},i.getDefaultTrailMaterial=function(){return this._defaultTrailMat},i.setNewParticle=function(){},i._initModuleList=function(){var t=this;Cbt.forEach((function(e){if(t._particleSystem){var i=t._particleSystem[e];i&&i.enable&&(i.needUpdate&&t._updateList.set(i.name,i),i.needAnimate&&t._animateList.set(i.name,i))}})),this._runAnimateList.length=0;for(var e=0,i=egt.length;e0,this._particles.length},i.getNoisePreview=function(t,e,i){var n=this;this._runAnimateList.forEach((function(r){r.name===tgt&&r.getNoisePreview(t,n._particleSystem,e,i)}))},i.updateRenderData=function(){for(var t=0,e=0;e=(null==(t=this._particleSystem)?void 0:t.capacity)?null:this._tempParticle},i.setNewParticle=function(t){this._particleSystem&&(this._model.addGPUParticleVertexData(t,this._particleNum,this._particleSystem.time),this._particleNum++)},i.getDefaultMaterial=function(){return this._defaultMat},i.updateRotation=function(t){t&&this.doUpdateRotation(t)},i.doUpdateRotation=function(t){if(4===this._renderInfo.renderMode||2!==this._alignSpace){var e;if(1===this._alignSpace)null==(e=this._particleSystem)||e.node.getRotation($bt);else if(0===this._alignSpace){var i;null==(i=this._particleSystem)||i.node.getWorldRotation($bt)}else if(2===this._alignSpace){var n,r;$bt.set(0,0,0,1);var s=null==(n=this._particleSystem)||null==(r=n.node.scene.renderScene)?void 0:r.cameras;if(void 0!==s&&this._particleSystem)for(var a=0;a<(null==s?void 0:s.length);++a){var o=s[a];if((o.visibility&this._particleSystem.node.layer)===this._particleSystem.node.layer){Or.fromViewUp($bt,o.forward);break}}}else $bt.set(0,0,0,1);t.setUniform(this._uNodeRotHandle,$bt)}},i.updateScale=function(t){t&&this.doUpdateScale(t)},i.doUpdateScale=function(t){var e,i=this._node_scale;switch(null==(e=this._particleSystem)?void 0:e.scaleSpace){case 1:this._particleSystem.node.getScale(i);break;case 0:this._particleSystem.node.getWorldScale(i)}t.setUniform(t.getHandle("scale"),Kbt.set(i.x,i.y,i.z))},i.updateParticles=function(t){return this._particleSystem?(this._particleNum=this._model.updateGPUParticles(this._particleNum,this._particleSystem.time,t),this.updateShaderUniform(t),this._model.enabled=this._particleNum>0,this._particleNum):this._particleNum},i.updateRenderData=function(){},i.beforeRender=function(){this._model.updateIA(this._particleNum)},i.updateAlignSpace=function(t){this._alignSpace=t},i.updateShaderUniform=function(t){if(this._particleSystem){var e=this._particleSystem.getMaterialInstance(0)||this._defaultMat;if(e){var i=e.passes[0];Qbt.x=this._particleSystem.time,Qbt.y=t,i.setUniform(this._uTimeHandle,Qbt),this._particleSystem.node.getWorldRotation(Zbt),i.setUniform(this._uRotHandle,Zbt),this.doUpdateRotation(i)}}},i.initShaderUniform=function(t){var e,i,n,r,s,a,o=t.passes[0];this._uTimeHandle=o.getHandle("u_timeDelta"),this._uRotHandle=o.getHandle("u_worldRot"),this._uNodeRotHandle=o.getHandle("nodeRotation"),this.doUpdateScale(o),o.setUniform(o.getHandle("frameTile_velLenScale"),this._unifrom_velLenScale),Qbt.x=SSt,Qbt.y=.03125,o.setUniform(o.getHandle("u_sampleInfo"),Qbt);var h=!1,u=null==(e=this._particleSystem)?void 0:e._forceOvertimeModule;if(h=!!u&&u.enable,this._defines.FORCE_OVER_TIME_MODULE_ENABLE=h,h){var l=pmt(this._forceTexture,this._forceData,SSt,u.x,u.y,u.z);this._forceTexture=l.texture,this._forceData=l.texdata;var c=o.getHandle("force_over_time_tex0"),f=YS(c);o.bindSampler(f,this._forceTexture.getGFXSampler()),o.bindTexture(f,this._forceTexture.getGFXTexture());var _=o.getHandle("u_force_space");o.setUniform(_,u.space);var d=o.getHandle("u_force_mode");o.setUniform(d,this._forceTexture.height)}var p=null==(i=this._particleSystem)?void 0:i._velocityOvertimeModule;if(h=!!p&&p.enable,this._defines.VELOCITY_OVER_TIME_MODULE_ENABLE=h,h){var m=mmt(this._velocityTexture,this._velocityData,SSt,p.x,p.y,p.z,p.speedModifier);this._velocityTexture=m.texture,this._velocityData=m.texdata;var g=o.getHandle("velocity_over_time_tex0"),y=YS(g);o.bindSampler(y,this._velocityTexture.getGFXSampler()),o.bindTexture(y,this._velocityTexture.getGFXTexture());var v=o.getHandle("u_velocity_space");o.setUniform(v,p.space);var b=o.getHandle("u_velocity_mode");o.setUniform(b,this._velocityTexture.height)}var S=null==(n=this._particleSystem)?void 0:n._colorOverLifetimeModule;if(h=!!S&&S.enable,this._defines.COLOR_OVER_TIME_MODULE_ENABLE=h,h){var x=Hmt(this._colorTexture,this._colorData,SSt,S.color);this._colorTexture=x.texture,this._colorData=x.texdata;var w=o.getHandle("color_over_time_tex0"),T=YS(w);o.bindSampler(T,this._colorTexture.getGFXSampler()),o.bindTexture(T,this._colorTexture.getGFXTexture());var A=o.getHandle("u_color_mode");o.setUniform(A,this._colorTexture.height)}var C,D=null==(r=this._particleSystem)?void 0:r._rotationOvertimeModule;if(h=!!D&&D.enable,this._defines.ROTATION_OVER_TIME_MODULE_ENABLE=h,h&&(C=D.separateAxes?pmt(this._rotationTexture,this._rotationData,SSt,D.x,D.y,D.z):fmt(this._rotationTexture,this._rotationData,SSt,D.z),this._rotationTexture=C.texture,this._rotationData=C.texdata,this._rotationTexture)){var B=o.getHandle("rotation_over_time_tex0"),I=YS(B);o.bindSampler(I,this._rotationTexture.getGFXSampler()),o.bindTexture(I,this._rotationTexture.getGFXTexture());var M=o.getHandle("u_rotation_mode");o.setUniform(M,this._rotationTexture.height)}var P,E=null==(s=this._particleSystem)?void 0:s._sizeOvertimeModule;if(h=!!E&&E.enable,this._defines.SIZE_OVER_TIME_MODULE_ENABLE=h,h&&(P=E.separateAxes?pmt(this._sizeTexture,this._sizeData,SSt,E.x,E.y,E.z,!0):_mt(this._sizeTexture,this._sizeData,SSt,E.size),this._sizeTexture=P.texture,this._sizeData=P.texdata,this._sizeTexture)){var O=o.getHandle("size_over_time_tex0"),k=YS(O);o.bindSampler(k,this._sizeTexture.getGFXSampler()),o.bindTexture(k,this._sizeTexture.getGFXTexture());var R=o.getHandle("u_size_mode");o.setUniform(R,this._sizeTexture.height)}var F=null==(a=this._particleSystem)?void 0:a._textureAnimationModule;if(h=!!F&&F.enable,this._defines.TEXTURE_ANIMATION_MODULE_ENABLE=h,h){var L=dmt(this._animTexture,this._animData,SSt,F.startFrame,F.frameOverTime);this._animTexture=L.texture,this._animData=L.texdata;var N=o.getHandle("texture_animation_tex0"),V=YS(N);o.bindSampler(V,this._animTexture.getGFXSampler()),o.bindTexture(V,this._animTexture.getGFXTexture());var z=o.getHandle("u_anim_info");Qbt.x=this._animTexture.height,Qbt.y=F.numTilesX*F.numTilesY,Qbt.z=F.cycleCount,o.setUniform(z,Qbt)}this._defines.USE_VK_SHADER=4===zp.gfxDevice.gfxAPI,this._defines.CC_INSTANCE_PARTICLE=this._useInstance},i.getParticleCount=function(){return this._particleNum},i.onMaterialModified=function(){this._inited&&this.updateMaterialParams()},i.onRebuildPSO=function(t,e){this._model&&0===t&&this._model.setSubModelMaterial(0,e)},i.updateVertexAttrib=function(){if(4===this._renderInfo.renderMode&&this._renderInfo.mesh){var t=this._renderInfo.mesh.readAttributeFormat(0,"a_color");if(t){for(var e=35,i=0;i=8&&3&t.getFormatFeatures(44))||(T.warn("Maybe the device has restrictions on vertex textures or does not support float textures."),!1)}var VSt,zSt,USt,GSt,HSt,WSt,jSt,qSt,XSt,YSt,KSt,JSt,QSt,ZSt,$St,txt,ext,ixt,nxt,rxt,sxt,axt,oxt,hxt,uxt,lxt,cxt,fxt,_xt,dxt,pxt,mxt,gxt,yxt,vxt,bxt,Sxt,xxt,wxt,Txt,Axt,Cxt,Dxt,Bxt,Ixt,Mxt,Pxt,Ext,Oxt,kxt,Rxt,Fxt,Lxt,Nxt,Vxt,zxt,Uxt,Gxt,Hxt,Wxt,jxt,qxt,Xxt,Yxt,Kxt,Jxt,Qxt,Zxt,$xt,twt,ewt,iwt,nwt,rwt,swt,awt,owt,hwt,uwt,lwt,cwt,fwt,_wt,dwt,pwt,mwt,gwt,ywt,vwt,bwt,Swt,xwt,wwt,Twt,Awt,Cwt,Dwt,Bwt,Iwt,Mwt,Pwt,Ewt,Owt,kwt,Rwt,Fwt,Lwt,Nwt,Vwt,zwt,Uwt,Gwt,Hwt,Wwt,jwt,qwt,Xwt,Ywt,Kwt,Jwt,Qwt,Zwt,$wt,tTt,eTt,iTt,nTt,rTt,sTt,aTt,oTt,hTt,uTt,lTt,cTt,fTt,_Tt,dTt,pTt,mTt,gTt,yTt,vTt,bTt,STt,xTt=(tSt=Kh("cc.ParticleSystemRenderer"),eSt=Eu(ygt),iSt=Eu(ygt),nSt=Eu(Dk),rSt=Eu(NT),sSt=Eu(NT),aSt=Eu(NT),oSt=Eu(NT),hSt=Eu(ggt),tSt((bSt=function(){function t(){this._renderMode=cSt&&cSt(),this._velocityScale=fSt&&fSt(),this._lengthScale=_St&&_St(),this._mesh=dSt&&dSt(),this._cpuMaterial=pSt&&pSt(),this._gpuMaterial=mSt&&mSt(),this._mainTexture=gSt&&gSt(),this._useGPU=ySt&&ySt(),this._alignSpace=vSt&&vSt(),this._particleSystem=null}var e=t.prototype;return e.create=function(t){null===this._particleSystem?this._particleSystem=t:this._particleSystem!==t&&ot(6033)},e.onInit=function(t){this.create(t);var e=this._useGPU&&NSt();this._particleSystem.processor?ot(6034):(this._particleSystem.processor=e?new LSt(this):new Ybt(this),this._particleSystem.processor.updateAlignSpace(this.alignSpace),this._particleSystem.processor.onInit(t)),e?this.gpuMaterial=this.particleMaterial:(this.particleMaterial&&-1!==this.particleMaterial.effectName.indexOf("particle-gpu")&&(this.particleMaterial=null,st(6035)),this.cpuMaterial=this.particleMaterial)},e._switchProcessor=function(){if(this._particleSystem){this._particleSystem.processor&&(this._particleSystem.processor.detachFromScene(),this._particleSystem.processor.clear(),this._particleSystem.processor=null);var t=this._useGPU&&NSt();this.particleMaterial=t?this.gpuMaterial:this.cpuMaterial,this._particleSystem.processor=t?new LSt(this):new Ybt(this),this._particleSystem.processor.updateAlignSpace(this.alignSpace),this._particleSystem.processor.onInit(this._particleSystem),this._particleSystem.processor.onEnable(),this._particleSystem.bindModule()}},n(t,[{key:"renderMode",get:function(){return this._renderMode},set:function(t){this._renderMode!==t&&(this._renderMode=t,this._particleSystem&&this._particleSystem.processor.updateRenderMode())}},{key:"velocityScale",get:function(){return this._velocityScale},set:function(t){this._velocityScale=t,this._particleSystem&&this._particleSystem.processor.updateMaterialParams()}},{key:"lengthScale",get:function(){return this._lengthScale},set:function(t){this._lengthScale=t,this._particleSystem&&this._particleSystem.processor.updateMaterialParams()}},{key:"mesh",get:function(){return this._mesh},set:function(t){this._mesh=t,this._particleSystem&&this._particleSystem.processor.setVertexAttributes()}},{key:"particleMaterial",get:function(){return this._particleSystem?this._particleSystem.getSharedMaterial(0):null},set:function(t){this._particleSystem&&this._particleSystem.setSharedMaterial(t,0)}},{key:"cpuMaterial",get:function(){return this._cpuMaterial},set:function(t){if(t){var e=t.effectName;if(-1===e.indexOf("particle")||-1!==e.indexOf("particle-gpu"))return void st(6035)}this._cpuMaterial=t,this.particleMaterial=this._cpuMaterial}},{key:"gpuMaterial",get:function(){return this._gpuMaterial},set:function(t){t&&-1===t.effectName.indexOf("particle-gpu")?st(6035):(this._gpuMaterial=t,this.particleMaterial=this._gpuMaterial)}},{key:"trailMaterial",get:function(){return this._particleSystem?this._particleSystem.getSharedMaterial(1):null},set:function(t){this._particleSystem&&this._particleSystem.setSharedMaterial(t,1)}},{key:"mainTexture",get:function(){return this._mainTexture},set:function(t){this._mainTexture=t}},{key:"useGPU",get:function(){return this._useGPU},set:function(t){this._useGPU!==t&&(NSt()?this._useGPU=t:this._useGPU=!1,this._switchProcessor())}},{key:"alignSpace",get:function(){return this._alignSpace},set:function(t){this._alignSpace=t,this._particleSystem.processor.updateAlignSpace(this._alignSpace)}}]),t}(),bSt.AlignmentSpace=ggt,v((lSt=bSt).prototype,"renderMode",[eSt],Object.getOwnPropertyDescriptor(lSt.prototype,"renderMode"),lSt.prototype),cSt=Vh(lSt.prototype,"_renderMode",[iSt,hu],(function(){return 0})),fSt=Vh(lSt.prototype,"_velocityScale",[hu],(function(){return 1})),_St=Vh(lSt.prototype,"_lengthScale",[hu],(function(){return 1})),dSt=Vh(lSt.prototype,"_mesh",[hu],(function(){return null})),v(lSt.prototype,"mesh",[nSt],Object.getOwnPropertyDescriptor(lSt.prototype,"mesh"),lSt.prototype),v(lSt.prototype,"particleMaterial",[rSt],Object.getOwnPropertyDescriptor(lSt.prototype,"particleMaterial"),lSt.prototype),v(lSt.prototype,"cpuMaterial",[sSt],Object.getOwnPropertyDescriptor(lSt.prototype,"cpuMaterial"),lSt.prototype),pSt=Vh(lSt.prototype,"_cpuMaterial",[hu],(function(){return null})),v(lSt.prototype,"gpuMaterial",[aSt],Object.getOwnPropertyDescriptor(lSt.prototype,"gpuMaterial"),lSt.prototype),mSt=Vh(lSt.prototype,"_gpuMaterial",[hu],(function(){return null})),v(lSt.prototype,"trailMaterial",[oSt],Object.getOwnPropertyDescriptor(lSt.prototype,"trailMaterial"),lSt.prototype),gSt=Vh(lSt.prototype,"_mainTexture",[hu],(function(){return null})),ySt=Vh(lSt.prototype,"_useGPU",[hu],(function(){return!1})),v(lSt.prototype,"alignSpace",[hSt],Object.getOwnPropertyDescriptor(lSt.prototype,"alignSpace"),lSt.prototype),vSt=Vh(lSt.prototype,"_alignSpace",[hu],(function(){return 2})),uSt=lSt))||uSt),wTt=Math.cos(en(100)),TTt={position:new er,velocity:new er},ATt=new Or,CTt=new er,DTt=new er,BTt=new lr,ITt=function(){function t(t){for(this.start=void 0,this.end=void 0,this.trailElements=void 0,this.start=-1,this.end=-1,this.trailElements=[];t--;)this.trailElements.push({position:new er,lifetime:0,width:0,velocity:new er,direction:0,color:new lr})}var e=t.prototype;return e.getElement=function(t){return-1===this.start?null:(t<0&&(t=(t+this.trailElements.length)%this.trailElements.length),t>=this.trailElements.length&&(t%=this.trailElements.length),this.trailElements[t])},e.addElement=function(){if(0===this.trailElements.length)return null;if(-1===this.start)return this.start=0,this.end=1,this.trailElements[0];this.start===this.end&&(this.trailElements.splice(this.end,0,{position:new er,lifetime:0,width:0,velocity:new er,direction:0,color:new lr}),this.start++,this.start%=this.trailElements.length);var t=this.end++;return this.end%=this.trailElements.length,this.trailElements[t]},e.iterateElement=function(t,e,i,n){for(var r=this.start>=this.end?this.end+this.trailElements.length:this.end,s=this.start;st.lastLoop)t.trailDelay>1?(t.lastLoop=t.loopCount,t.trailDelay=0):t.trailDelay++;else{var i=this._particleTrail.get(t);if(!i)return i=this._trailSegments.alloc(),void this._particleTrail.set(t,i);var n=i.getElement(i.end-1);if(this._needTransform?er.transformMat4(CTt,t.position,this._psTransform):er.copy(CTt,t.position),!(n&&(i.iterateElement(this,this._updateTrailElement,t,e),er.squaredDistance(n.position,CTt)2){var a=i.getElement(i.end-2),o=i.getElement(i.end-3);er.subtract(CTt,o.position,a.position),er.subtract(DTt,n.position,a.position),er.subtract(a.velocity,DTt,CTt),er.equals(er.ZERO,a.velocity)&&er.copy(a.velocity,CTt),er.normalize(a.velocity,a.velocity),this._checkDirectionReverse(a,o)}this.colorFromParticle?n.color.set(t.color):n.color.set(this.colorOvertime.evaluate(0,1))}}},t.removeParticle=function(t){var e=this._particleTrail.get(t);e&&this._trailSegments&&(e.clear(),this._trailSegments.free(e),this._particleTrail.delete(t))},t.updateRenderData=function(){this.vbOffset=0,this.ibOffset=0;for(var t,e=p(this._particleTrail.keys());!(t=e()).done;){var i=t.value,n=this._particleTrail.get(i);if(-1!==n.start){var r=4*this.vbOffset/this._vertSize,s=n.start>=n.end?n.end+n.trailElements.length:n.end,a=s-n.start,o=1/a,h=n.trailElements[n.start];this._fillVertexBuffer(h,this.colorOverTrail.evaluate(1,1),r,1,0,4);for(var u=n.start+1;u2){var v=n.getElement(n.end-1),b=n.getElement(n.end-2);er.subtract(CTt,b.position,v.position),er.subtract(DTt,TTt.position,v.position),er.normalize(CTt,CTt),er.normalize(DTt,DTt),er.subtract(v.velocity,DTt,CTt),er.normalize(v.velocity,v.velocity),this._checkDirectionReverse(v,b),this.vbOffset-=this._vertSize/4*2,this.ibOffset-=6,this._fillVertexBuffer(v,this.colorOverTrail.evaluate(o,1),r,o,a-1,5),er.subtract(TTt.velocity,TTt.position,v.position),er.normalize(TTt.velocity,TTt.velocity),this._checkDirectionReverse(TTt,v)}this.widthFromParticle?TTt.width=i.size.x*this.widthRatio.evaluate(0,1):TTt.width=this.widthRatio.evaluate(0,1),TTt.color=i.color,er.equals(TTt.velocity,er.ZERO)?this.ibOffset-=3:this._fillVertexBuffer(TTt,this.colorOverTrail.evaluate(0,1),r,0,a,1)}}this._trailModel&&(this._trailModel.enabled=this.ibOffset>0)},t.updateIA=function(t){var e=this._trailModel&&this._trailModel.subModels;if(e&&e.length>0){var i=e[0];i.inputAssembler.vertexBuffers[0].update(this._vbF32),i.inputAssembler.indexBuffer.update(this._iBuffer),i.inputAssembler.firstIndex=0,i.inputAssembler.indexCount=t,i.inputAssembler.vertexCount=this._iaVertCount}},t.beforeRender=function(){this.updateIA(this.ibOffset)},t._createModel=function(){this._trailModel||(this._trailModel=T.director.root.createModel(qM))},t.rebuild=function(){var t=this,e=WE.root.device,i=e.createBuffer(new sd(10,3,t._vertSize*(t._trailNum+1)*2,t._vertSize)),n=new ArrayBuffer(t._vertSize*(t._trailNum+1)*2);t._vbF32=new Float32Array(n),t._vbUint32=new Uint32Array(n),i.update(n);var r=e.createBuffer(new sd(6,3,12*Math.max(1,t._trailNum),2));t._iBuffer=new Uint16Array(6*Math.max(1,t._trailNum)),r.update(t._iBuffer),t._iaVertCount=2*(t._trailNum+1),t._iaIndexCount=6*t._trailNum,t._subMeshData=new eO([i],t._vertAttrs,7,r);var s=t._trailModel;s&&t._material&&(s.node=s.transform=t._particleSystem.node,s.visFlags=t._particleSystem.visibility,s.initSubModel(0,t._subMeshData,t._material),s.enabled=!0)},t._updateTrailElement=function(t,e,i,n){return e.lifetime+=n,t.colorFromParticle?(e.color.set(i.color),e.color.multiply(t.colorOvertime.evaluate(1-i.remainingLifetime/i.startLifetime,1))):e.color.set(t.colorOvertime.evaluate(1-i.remainingLifetime/i.startLifetime,1)),t.widthFromParticle?e.width=i.size.x*t.widthRatio.evaluate(e.lifetime/t._trailLifetime,1):e.width=t.widthRatio.evaluate(e.lifetime/t._trailLifetime,1),e.lifetime>t._trailLifetime},t._fillVertexBuffer=function(t,e,i,n,r,s){this._vbF32[this.vbOffset++]=t.position.x,this._vbF32[this.vbOffset++]=t.position.y,this._vbF32[this.vbOffset++]=t.position.z,this._vbF32[this.vbOffset++]=t.direction,this._vbF32[this.vbOffset++]=t.width,this._vbF32[this.vbOffset++]=n,this._vbF32[this.vbOffset++]=0,this._vbF32[this.vbOffset++]=t.velocity.x,this._vbF32[this.vbOffset++]=t.velocity.y,this._vbF32[this.vbOffset++]=t.velocity.z,BTt.set(t.color),BTt.multiply(e),this._vbUint32[this.vbOffset++]=lr.toUint32(BTt),this._vbF32[this.vbOffset++]=t.position.x,this._vbF32[this.vbOffset++]=t.position.y,this._vbF32[this.vbOffset++]=t.position.z,this._vbF32[this.vbOffset++]=1-t.direction,this._vbF32[this.vbOffset++]=t.width,this._vbF32[this.vbOffset++]=n,this._vbF32[this.vbOffset++]=1,this._vbF32[this.vbOffset++]=t.velocity.x,this._vbF32[this.vbOffset++]=t.velocity.y,this._vbF32[this.vbOffset++]=t.velocity.z,this._vbUint32[this.vbOffset++]=lr.toUint32(BTt),1&s&&(this._iBuffer[this.ibOffset++]=i+2*r,this._iBuffer[this.ibOffset++]=i+2*r-1,this._iBuffer[this.ibOffset++]=i+2*r+1),4&s&&(this._iBuffer[this.ibOffset++]=i+2*r,this._iBuffer[this.ibOffset++]=i+2*r+1,this._iBuffer[this.ibOffset++]=i+2*r+2)},t._checkDirectionReverse=function(t,e){er.dot(t.velocity,e.velocity)0&&!n._isCulled&&(null!=(e=r.getModel())&&e.scene||r.attachToScene(),s&&s.enable&&(null!=(i=s.getModel())&&i.scene||s._attachToScene()),n._needAttach=!1);!n.renderer.useGPU&&s&&s.enable&&(s.inited||(s.clear(),s.destroy(),s.onInit(this),s.enable=!1,s.enable=!0))},i.beforeRender=function(){var t,e,i=this,n=i.processor,r=i.trailModule;i.getParticleCount()<=0?null!=(e=n.getModel())&&e.scene&&(n.detachFromScene(),r&&r.enable&&r._detachFromScene(),i._needAttach=!1):null!=(t=n.getModel())&&t.scene||(i._needAttach=!0),i._isPlaying&&(n.updateRenderData(),n.beforeRender(),r&&r.enable&&(r.updateRenderData(),r.beforeRender()))},i._onVisibilityChange=function(t){this.processor.model&&(this.processor.model.visFlags=t)},i.emit=function(t,e){var i=this,n=i.node,r=i._time%i.duration/i.duration;i._needRefresh&&(n.invalidateChildren(1),i._needRefresh=!1),0===i._simulationSpace&&(n.getWorldMatrix(zTt),n.getWorldRotation(UTt));for(var s=0;si){if(e._time>e.duration+i&&(e.loop||(e._isEmitting=!1)),!e._isEmitting)return;if(e._emitRateTimeCounter+=e.rateOverTime.evaluate(e._time/e.duration,1)*t,e._emitRateTimeCounter>1){var n=Math.floor(e._emitRateTimeCounter);e._emitRateTimeCounter-=n,e.emit(n,t)}var r=e.rateOverDistance.evaluate(e._time/e.duration,1);if(r>0){er.copy(e._oldWPos,e._curWPos),e.node.getWorldPosition(e._curWPos);var s=er.distance(e._curWPos,e._oldWPos);e._emitRateDistanceCounter+=s*r}if(e._emitRateDistanceCounter>1){var a=Math.floor(e._emitRateDistanceCounter);e._emitRateDistanceCounter-=a,e.emit(a,t)}for(var o,h=p(e.bursts);!(o=h()).done;)o.value.update(e,t)}},i._resetPosition=function(){this.node.getWorldPosition(this._oldWPos),er.copy(this._curWPos,this._oldWPos)},i.addSubEmitter=function(t){this._subEmitters.push(t)},i.removeSubEmitter=function(t){this._subEmitters.splice(this._subEmitters.indexOf(t),1)},i.addBurst=function(t){this.bursts.push(t)},i.removeBurst=function(t){var e=this.bursts.indexOf(t);e>-1&&this.bursts.splice(e,1)},i.getBoundingX=function(){return this._aabbHalfX},i.getBoundingY=function(){return this._aabbHalfY},i.getBoundingZ=function(){return this._aabbHalfZ},i.setBoundingX=function(t){this._boundingBox&&this._culler&&(this._boundingBox.halfExtents.x=t,this._culler.setBoundingBoxSize(this._boundingBox.halfExtents),this._aabbHalfX=t)},i.setBoundingY=function(t){this._boundingBox&&this._culler&&(this._boundingBox.halfExtents.y=t,this._culler.setBoundingBoxSize(this._boundingBox.halfExtents),this._aabbHalfY=t)},i.setBoundingZ=function(t){this._boundingBox&&this._culler&&(this._boundingBox.halfExtents.z=t,this._culler.setBoundingBoxSize(this._boundingBox.halfExtents),this._aabbHalfZ=t)},i._onBeforeSerialize=function(t){var e=this;return this.dataCulling?t.filter((function(t){return!igt.includes(t)||e[t]&&e[t].enable})):t},i.getNoisePreview=function(t,e){var i=[];return this.processor&&this.processor.getNoisePreview(i,t,e),i},n(e,[{key:"capacity",get:function(){return this._capacity},set:function(t){this._capacity=Math.floor(t>0?t:0),this.processor&&this.processor.model&&this.processor.model.setCapacity(this._capacity)}},{key:"prewarm",get:function(){return this._prewarm},set:function(t){!0===t&&this.loop,this._prewarm=t}},{key:"simulationSpace",get:function(){return this._simulationSpace},set:function(t){t!==this._simulationSpace&&(this._simulationSpace=t,this.processor&&(this.processor.updateMaterialParams(),this.processor.updateTrailMaterial()))}},{key:"renderCulling",get:function(){return this._renderCulling},set:function(t){this._renderCulling=t,t&&(this._boundingBox||(this._boundingBox=new mh,this._calculateBounding(!1)))}},{key:"cullingMode",get:function(){return this._cullingMode},set:function(t){this._cullingMode=t}},{key:"aabbHalfX",get:function(){return this.getBoundingX()||0},set:function(t){this.setBoundingX(t)}},{key:"aabbHalfY",get:function(){return this.getBoundingY()||0},set:function(t){this.setBoundingY(t)}},{key:"aabbHalfZ",get:function(){return this.getBoundingZ()||0},set:function(t){this.setBoundingZ(t)}},{key:"dataCulling",get:function(){return this._dataCulling},set:function(t){this._dataCulling=t}},{key:"sharedMaterials",get:function(){return GTt.get.call(this)},set:function(t){GTt.set.call(this,t)}},{key:"colorOverLifetimeModule",get:function(){return this._colorOverLifetimeModule},set:function(t){t&&(this._colorOverLifetimeModule=t)}},{key:"shapeModule",get:function(){return this._shapeModule},set:function(t){t&&(this._shapeModule=t)}},{key:"sizeOvertimeModule",get:function(){return this._sizeOvertimeModule},set:function(t){t&&(this._sizeOvertimeModule=t)}},{key:"velocityOvertimeModule",get:function(){return this._velocityOvertimeModule},set:function(t){t&&(this._velocityOvertimeModule=t)}},{key:"forceOvertimeModule",get:function(){return this._forceOvertimeModule},set:function(t){t&&(this._forceOvertimeModule=t)}},{key:"limitVelocityOvertimeModule",get:function(){return this._limitVelocityOvertimeModule},set:function(t){t&&(this._limitVelocityOvertimeModule=t)}},{key:"rotationOvertimeModule",get:function(){return this._rotationOvertimeModule},set:function(t){t&&(this._rotationOvertimeModule=t)}},{key:"textureAnimationModule",get:function(){return this._textureAnimationModule},set:function(t){t&&(this._textureAnimationModule=t)}},{key:"noiseModule",get:function(){return this._noiseModule},set:function(t){t&&(this._noiseModule=t)}},{key:"trailModule",get:function(){return this._trailModule},set:function(t){t&&(this._trailModule=t)}},{key:"isPlaying",get:function(){return this._isPlaying}},{key:"isPaused",get:function(){return this._isPaused}},{key:"isStopped",get:function(){return this._isStopped}},{key:"isEmitting",get:function(){return this._isEmitting}},{key:"time",get:function(){return this._time}}]),e}(VU),STt.CullingMode=mgt,kwt=Vh((Owt=STt).prototype,"startColor",[Uxt,hu],(function(){return new zmt})),Rwt=Vh(Owt.prototype,"scaleSpace",[Gxt,hu],(function(){return 1})),Fwt=Vh(Owt.prototype,"startSize3D",[hu],(function(){return!1})),Lwt=Vh(Owt.prototype,"startSizeX",[Hxt,Wxt],(function(){return new omt})),Nwt=Vh(Owt.prototype,"startSizeY",[jxt,hu],(function(){return new omt})),Vwt=Vh(Owt.prototype,"startSizeZ",[qxt,hu],(function(){return new omt})),zwt=Vh(Owt.prototype,"startSpeed",[Xxt,hu],(function(){return new omt})),Uwt=Vh(Owt.prototype,"startRotation3D",[hu],(function(){return!1})),Gwt=Vh(Owt.prototype,"startRotationX",[Yxt,hu],(function(){return new omt})),Hwt=Vh(Owt.prototype,"startRotationY",[Kxt,hu],(function(){return new omt})),Wwt=Vh(Owt.prototype,"startRotationZ",[Jxt,Qxt],(function(){return new omt})),jwt=Vh(Owt.prototype,"startDelay",[Zxt,hu],(function(){return new omt})),qwt=Vh(Owt.prototype,"startLifetime",[$xt,hu],(function(){return new omt})),Xwt=Vh(Owt.prototype,"duration",[hu],(function(){return 5})),Ywt=Vh(Owt.prototype,"loop",[hu],(function(){return!0})),v(Owt.prototype,"simulationSpace",[twt,hu],Object.getOwnPropertyDescriptor(Owt.prototype,"simulationSpace"),Owt.prototype),Kwt=Vh(Owt.prototype,"simulationSpeed",[hu],(function(){return 1})),Jwt=Vh(Owt.prototype,"playOnAwake",[hu],(function(){return!0})),Qwt=Vh(Owt.prototype,"gravityModifier",[ewt,hu],(function(){return new omt})),Zwt=Vh(Owt.prototype,"rateOverTime",[iwt,hu],(function(){return new omt})),$wt=Vh(Owt.prototype,"rateOverDistance",[nwt,hu],(function(){return new omt})),tTt=Vh(Owt.prototype,"bursts",[rwt,hu],(function(){return[]})),v(Owt.prototype,"renderCulling",[swt],Object.getOwnPropertyDescriptor(Owt.prototype,"renderCulling"),Owt.prototype),eTt=Vh(Owt.prototype,"_renderCulling",[hu],(function(){return!1})),v(Owt.prototype,"cullingMode",[awt],Object.getOwnPropertyDescriptor(Owt.prototype,"cullingMode"),Owt.prototype),iTt=Vh(Owt.prototype,"_cullingMode",[hu],(function(){return 0})),v(Owt.prototype,"aabbHalfX",[owt],Object.getOwnPropertyDescriptor(Owt.prototype,"aabbHalfX"),Owt.prototype),nTt=Vh(Owt.prototype,"_aabbHalfX",[hu],(function(){return 0})),v(Owt.prototype,"aabbHalfY",[hwt],Object.getOwnPropertyDescriptor(Owt.prototype,"aabbHalfY"),Owt.prototype),rTt=Vh(Owt.prototype,"_aabbHalfY",[hu],(function(){return 0})),v(Owt.prototype,"aabbHalfZ",[uwt],Object.getOwnPropertyDescriptor(Owt.prototype,"aabbHalfZ"),Owt.prototype),sTt=Vh(Owt.prototype,"_aabbHalfZ",[hu],(function(){return 0})),aTt=Vh(Owt.prototype,"_dataCulling",[hu,lwt],(function(){return!1})),v(Owt.prototype,"sharedMaterials",[Uu,hu],Object.getOwnPropertyDescriptor(Owt.prototype,"sharedMaterials"),Owt.prototype),oTt=Vh(Owt.prototype,"_colorOverLifetimeModule",[cwt],(function(){return null})),v(Owt.prototype,"colorOverLifetimeModule",[fwt],Object.getOwnPropertyDescriptor(Owt.prototype,"colorOverLifetimeModule"),Owt.prototype),hTt=Vh(Owt.prototype,"_shapeModule",[_wt],(function(){return null})),v(Owt.prototype,"shapeModule",[dwt],Object.getOwnPropertyDescriptor(Owt.prototype,"shapeModule"),Owt.prototype),uTt=Vh(Owt.prototype,"_sizeOvertimeModule",[pwt],(function(){return null})),v(Owt.prototype,"sizeOvertimeModule",[mwt],Object.getOwnPropertyDescriptor(Owt.prototype,"sizeOvertimeModule"),Owt.prototype),lTt=Vh(Owt.prototype,"_velocityOvertimeModule",[gwt],(function(){return null})),v(Owt.prototype,"velocityOvertimeModule",[ywt],Object.getOwnPropertyDescriptor(Owt.prototype,"velocityOvertimeModule"),Owt.prototype),cTt=Vh(Owt.prototype,"_forceOvertimeModule",[vwt],(function(){return null})),v(Owt.prototype,"forceOvertimeModule",[bwt],Object.getOwnPropertyDescriptor(Owt.prototype,"forceOvertimeModule"),Owt.prototype),fTt=Vh(Owt.prototype,"_limitVelocityOvertimeModule",[Swt],(function(){return null})),v(Owt.prototype,"limitVelocityOvertimeModule",[xwt],Object.getOwnPropertyDescriptor(Owt.prototype,"limitVelocityOvertimeModule"),Owt.prototype),_Tt=Vh(Owt.prototype,"_rotationOvertimeModule",[wwt],(function(){return null})),v(Owt.prototype,"rotationOvertimeModule",[Twt],Object.getOwnPropertyDescriptor(Owt.prototype,"rotationOvertimeModule"),Owt.prototype),dTt=Vh(Owt.prototype,"_textureAnimationModule",[Awt],(function(){return null})),v(Owt.prototype,"textureAnimationModule",[Cwt],Object.getOwnPropertyDescriptor(Owt.prototype,"textureAnimationModule"),Owt.prototype),pTt=Vh(Owt.prototype,"_noiseModule",[Dwt],(function(){return null})),v(Owt.prototype,"noiseModule",[Bwt],Object.getOwnPropertyDescriptor(Owt.prototype,"noiseModule"),Owt.prototype),mTt=Vh(Owt.prototype,"_trailModule",[Iwt],(function(){return null})),v(Owt.prototype,"trailModule",[Mwt],Object.getOwnPropertyDescriptor(Owt.prototype,"trailModule"),Owt.prototype),gTt=Vh(Owt.prototype,"renderer",[Pwt,hu],(function(){return new xTt})),yTt=Vh(Owt.prototype,"_prewarm",[hu],(function(){return!1})),vTt=Vh(Owt.prototype,"_capacity",[hu],(function(){return 100})),bTt=Vh(Owt.prototype,"_simulationSpace",[hu],(function(){return 1})),Ewt=Owt))||Ewt)||Ewt)),WTt=t("e_",function(){function t(){}return t.instantiate=function(t){this.registeredSceneEvent||(WE.on("director_before_scene_launch",this.onSceneUnload,this),this.registeredSceneEvent=!0);var e=t._uuid;if(!this.particleSystemPool.has(e)){var i=new oo((function(){return j$(t)||new Qv}),1,(function(t){return t.destroy()}));this.particleSystemPool.set(e,i)}return this.particleSystemPool.get(e).alloc()},t.destroy=function(t){var e,i,n=null==(e=t.prefab)||null==(i=e.asset)?void 0:i.uuid;n&&this.particleSystemPool.has(n)&&(this.stop(t),this.particleSystemPool.get(n).free(t))},t.play=function(t){for(var e,i=p(t.getComponentsInChildren(HTt));!(e=i()).done;)e.value.play()},t.stop=function(t){for(var e,i=p(t.getComponentsInChildren(HTt));!(e=i()).done;)e.value.stop()},t.onSceneUnload=function(){this.particleSystemPool.forEach((function(t){return t.destroy()})),this.particleSystemPool.clear()},t}());WTt.particleSystemPool=new Map,WTt.registeredSceneEvent=!1,pt(sbt.prototype,"Burst.prototype",[{name:"minCount"},{name:"maxCount"}]),dt(HTt.prototype,"ParticleSystem.prototype",[{name:"enableCulling",newName:"dataCulling"}]),T.ParticleSystemComponent=HTt,ue(HTt,"cc.ParticleSystemComponent"),T.BillboardComponent=$pt,ue($pt,"cc.BillboardComponent"),T.LineComponent=qmt,ue(qmt,"cc.LineComponent"),T.ParticleUtils=WTt;var jTt=Pe({GRAVITY:0,RADIUS:1}),qTt=Pe({FREE:0,RELATIVE:1,GROUPED:2}),XTt=new _s,YTt=new _s,KTt=new _s,JTt=new _s,QTt=new Ln,ZTt=IF(AF);function $Tt(t){for(var e=0,i=t;i;)e+=i.eulerAngles.z,i=i.parent;return e}var tAt,eAt,iAt,nAt=function(){this.pos=new _s(0,0),this.startPos=new _s(0,0),this.color=new lr(0,0,0,255),this.deltaColor={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=new _s(0,0),this.aspectRatio=1,this.dir=new _s(0,0),this.radialAccel=0,this.tangentialAccel=0,this.angle=0,this.degreesPerSecond=0,this.radius=0,this.deltaRadius=0},rAt=function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e.prototype.get=function(){return this._get()||new nAt},e}(me),sAt=new rAt((function(t){t.pos.set(_s.ZERO),t.startPos.set(_s.ZERO),t.color.set(0,0,0,255),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(_s.ZERO),t.aspectRatio=1,t.dir.set(_s.ZERO),t.radialAccel=0,t.tangentialAccel=0,t.angle=0,t.degreesPerSecond=0,t.radius=0,t.deltaRadius=0}),1024),aAt=function(){function t(t){this.particles=[],this.active=!1,this.uvFilled=0,this.finished=!1,this.renderData=null,this.readyToPlay=!0,this.elapsed=0,this.emitCounter=0,this._worldRotation=0,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}var e=t.prototype;return e.stop=function(){this.active=!1,this.readyToPlay=!1,this.elapsed=this.sys.duration,this.emitCounter=0},e.reset=function(){this.active=!0,this.readyToPlay=!0,this.elapsed=0,this.emitCounter=0,this.finished=!1;for(var t=this.particles,e=0;e1?h=o/u:o=h*u;var l=o/2,c=h/2;if(t.rotation){var f=-l,_=-c,d=l,p=c,m=-en(t.rotation),g=Math.cos(m),y=Math.sin(m);r[n]=f*g-_*y+s,r[n+1]=f*y+_*g+a,r[n+2]=0,r[n+9]=d*g-_*y+s,r[n+10]=d*y+_*g+a,r[n+11]=0,r[n+18]=f*g-p*y+s,r[n+19]=f*y+p*g+a,r[n+20]=0,r[n+27]=d*g-p*y+s,r[n+28]=d*y+p*g+a,r[n+29]=0}else r[n]=s-l,r[n+1]=a-c,r[n+2]=0,r[n+9]=s+l,r[n+10]=a-c,r[n+11]=0,r[n+18]=s-l,r[n+19]=a+c,r[n+20]=0,r[n+27]=s+l,r[n+28]=a+c,r[n+29]=0;var v=t.color;QTt.x=v.r/255,QTt.y=v.g/255,QTt.z=v.b/255,QTt.w=v.a/255,Ln.toArray(r,QTt,n+5),Ln.toArray(r,QTt,n+14),Ln.toArray(r,QTt,n+23),Ln.toArray(r,QTt,n+32)},e.step=function(t){var e=this.sys.assembler,i=this.sys,n=i.node,r=this.particles;if(t=t>e.maxParticleDeltaTime?e.maxParticleDeltaTime:t,n.updateWorldTransform(),i.positionType===qTt.FREE){this._worldRotation=$Tt(n);var s=n.worldMatrix;XTt.x=s.m12,XTt.y=s.m13}else i.positionType===qTt.RELATIVE?(this._worldRotation=n.eulerAngles.z,XTt.x=n.position.x,XTt.y=n.position.y):this._worldRotation=0;if(this.active&&i.emissionRate){var a=1/i.emissionRate;for(r.lengtha;)this.emitParticle(XTt),this.emitCounter-=a;this.elapsed+=t,-1!==i.duration&&i.durationthis.uvFilled&&this.updateUVs();for(var u=0;u0){if(i.emitterMode===jTt.GRAVITY){var c=JTt,f=YTt,_=KTt;(l.pos.x||l.pos.y)&&(f.set(l.pos),f.normalize()),_.set(f),f.multiplyScalar(l.radialAccel);var d=_.x;_.x=-_.y,_.y=d,_.multiplyScalar(l.tangentialAccel),c.set(f),c.add(_),c.add(i.gravity),c.multiplyScalar(t),l.dir.add(c),c.set(l.dir),c.multiplyScalar(t),l.pos.add(c)}else l.angle+=l.degreesPerSecond*t,l.radius+=l.deltaRadius*t,l.pos.x=-Math.cos(l.angle)*l.radius,l.pos.y=-Math.sin(l.angle)*l.radius;l.color.r+=l.deltaColor.r*t,l.color.g+=l.deltaColor.g*t,l.color.b+=l.deltaColor.b*t,l.color.a+=l.deltaColor.a*t,l.size+=l.deltaSize*t,l.size<0&&(l.size=0),l.rotation+=l.deltaRotation*t;var p=YTt;p.set(l.pos),i.positionType!==qTt.GROUPED&&p.add(l.startPos);var m=ZTt*u*4;this.updateParticleBuffer(l,p,o,m),++u}else{var g=r[u];u!==r.length-1&&(r[u]=r[r.length-1]),sAt.put(g),r.length--,o.resize(o.vertexCount-4,o.indexCount-6)}}o.material=this.sys.getRenderMaterial(0),o.frame=this.sys._renderSpriteFrame,o.setRenderDrawInfoAttributes(),0!==r.length||this.active||this.readyToPlay||(this.finished=!0,i._finishedSimulation())}},e.requestData=function(t,e){if(this.renderData){var i=this.renderData.indexCount;this.renderData.request(t,e);for(var n=this.renderData.indexCount/6,r=this.renderData.iData,s=i;s=0?hr;r>=0?++h:--h)t.push(n[this.pos++]);break;case"tRNS":switch(this.transparency={},this.colorType){case 3:this.transparency.indexed=this.read(r);var u=255-this.transparency.indexed.length;if(u>0)for(var l=0;u>=0?lu;u>=0?++l:--l)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(r)[0];break;case 2:this.transparency.rgb=this.read(r)}break;case"tEXt":var c=this.read(r),f=c.indexOf(0),_=String.fromCharCode.apply(String,c.slice(0,f));this.text[_]=String.fromCharCode.apply(String,c.slice(f+1));break;case"IEND":i&&this.animation.frames.push(i),this.colors=function(){switch(e.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3;default:return}}.call(this);var d=this.colorType;this.hasAlphaChannel=4===d||6===d;var p=this.colors+(this.hasAlphaChannel?1:0);return this.pixelBitlength=this.bits*p,this.colorSpace=function(){switch(e.colors){case 1:return"DeviceGray";case 3:return"DeviceRGB";default:return}}.call(this),void(this.imgData instanceof Uint8Array||(this.imgData=new Uint8Array(this.imgData)));default:this.pos+=r}if(this.pos+=4,this.pos>n.length)throw new Error(ct(6017))}}var e=t.prototype;return e.read=function(t){var e=0,i=[];for(e=0;t>=0?et;t>=0?++e:--e)i.push(this.data[this.pos++]);return i},e.readUInt32=function(){var t=this.data;return t[this.pos++]<<24|t[this.pos++]<<16|t[this.pos++]<<8|t[this.pos++]},e.readUInt16=function(){return this.data[this.pos++]<<8|this.data[this.pos++]},e.decodePixels=function(t){if(null==t&&(t=this.imgData),0===t.length)return new Uint8Array(0);t=new _k.Inflate(t,{index:0,verify:!1}).decompress();for(var e=this.pixelBitlength/8,i=e*this.width,n=new Uint8Array(i*this.height),r=t.length,s=0,a=0,o=0,h=0,u=0,l=0,c=0,f=0,_=0,d=0,p=0,m=0,g=0,y=0,v=0,b=0,S=0,x=0,w=0;a>>8*(4-s)):r.push(n);else for(var a=0;a=8?-1!==["RATIONAL","SRATIONAL"].indexOf(e)?(r.push(this.getUint32(n+o)),r.push(this.getUint32(n+o+4))):et(8e3):r.push(this.getBytes(s,n+o))}return"ASCII"===e&&r.forEach((function(t,e,i){i[e]=String.fromCharCode(t)})),r},e.getBytes=function(t,e){if(t<=0)et(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);et(8002)}return 0},e.getBits=function(t,e,i){i=i||0;var n=e+Math.floor(i/8),r=i+t,s=32-t,a=0,o=0;return r<=0?et(6023):r<=8?(a=24+i,o=this.getUint8(n)):r<=16?(a=16+i,o=this.getUint16(n)):r<=32?(a=i,o=this.getUint32(n)):et(6022),{bits:o<>>s,byteOffset:n+Math.floor(r/8),bitOffset:r%8}},e.parseFileDirectory=function(t){var e=this.getUint16(t),i={},n=0,r=0;for(n=t+2,r=0;r=0&&R<=127?g=R+1:R>=-127&&R<=-1?y=1-R:A=!0}else{for(var F=this.getUint8(b+x),L=0;L0)for(var a=0;a>4,i=(15&r)<<4|(s=dAt[t.charCodeAt(h++)])>>2,n=(3&s)<<6|(a=dAt[t.charCodeAt(h++)]),o.push(String.fromCharCode(e)),64!==s&&o.push(String.fromCharCode(i)),64!==a&&o.push(String.fromCharCode(n));return o.join("")},decodeAsArray:function(t,e){var i,n,r,s=this.decode(t),a=[];for(i=0,r=s.length/e;i=0;--n)a[i]+=s.charCodeAt(i*e+n)<<8*n;return a}},yAt=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(yAt.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};yAt.gunzip=function(t){return t.constructor===Array||t.constructor,new yAt(t).gunzip()[0][0]},yAt.HufNode=function(){this.b0=0,this.b1=0,this.jump=null,this.jumppos=-1},yAt.LITERALS=288,yAt.NAMEMAX=256,yAt.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],yAt.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],yAt.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],yAt.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],yAt.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],yAt.border=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],yAt.prototype.gunzip=function(){return this.outputArr=[],this.nextFile(),this.unzipped},yAt.prototype.readByte=function(){return this.bits+=8,this.bytepos>=1,0===this.bb&&(this.bb=this.readByte(),t=1&this.bb,this.bb=this.bb>>1|128),t},yAt.prototype.readBits=function(t){for(var e=0,i=t;i--;)e=e<<1|this.readBit();return t&&(e=yAt.bitReverse[e]>>8-t),e},yAt.prototype.flushBuffer=function(){this.bIdx=0},yAt.prototype.addBuffer=function(t){this.buf32k[this.bIdx++]=t,this.outputArr.push(String.fromCharCode(t)),32768===this.bIdx&&(this.bIdx=0)},yAt.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]++}},yAt.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},yAt.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},yAt.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>1)>23?(a=a<<1|this.readBit())>199?a=(a-=128)<<1|this.readBit():(a-=48)>143&&(a+=136):a+=256,a<256)this.addBuffer(a);else{if(256===a)break;for(a-=257,d=this.readBits(yAt.cplext[a])+yAt.cplens[a],a=yAt.bitReverse[this.readBits(5)]>>3,yAt.cpdext[a]>8?(p=this.readBits(8),p|=this.readBits(yAt.cpdext[a]-8)<<8):p=this.readBits(yAt.cpdext[a]),p+=yAt.cpdist[a],a=0;ao)return this.flushBuffer(),1;for(f=i?c[i-1]:0;a--;)c[i++]=f}else{if(i+(a=17===a?3+this.readBits(3):11+this.readBits(7))>o)return this.flushBuffer(),1;for(;a--;)c[i++]=0}for(d=this.literalTree.length,i=0;i=256){var d,p;if(0==(a-=256))break;for(a--,d=this.readBits(yAt.cplext[a])+yAt.cplens[a],a=this.DecodeValue(this.distanceTree),yAt.cpdext[a]>8?(p=this.readBits(8),p|=this.readBits(yAt.cpdext[a]-8)<<8):p=this.readBits(yAt.cpdext[a]),p+=yAt.cpdist[a];d--;)s=this.buf32k[this.bIdx-p&32767],this.addBuffer(s)}else this.addBuffer(a)}}while(!t);return this.flushBuffer(),this.byteAlign(),0},yAt.prototype.unzipFile=function(t){var e;for(this.gunzip(),e=0;e=0;--n)a[i]+=s.charCodeAt(i*e+n)<<8*n;return a},gCt.unzipAsArray=function(t,e){e=e||1;var i,n,r,s=this.unzip(t),a=[];for(i=0,r=s.length/e;i=0;--n)a[i]+=s.charCodeAt(i*e+n)<<8*n;return a};var vCt,bCt,SCt,xCt,wCt,TCt,ACt,CCt,DCt,BCt,ICt,MCt=parseInt,PCt=parseFloat,ECt=t("f2",(vAt=Kh("cc.ParticleSystem2D"),bAt=Eu(hAt),SAt=Eu($k),xAt=Eu(qTt),wAt=Eu(jTt),TAt=uu("preview"),vAt((mCt=function(t){function e(){var e;return(e=t.call(this)||this).duration=DAt&&DAt(),e.emissionRate=BAt&&BAt(),e.life=IAt&&IAt(),e.lifeVar=MAt&&MAt(),e.angle=PAt&&PAt(),e.angleVar=EAt&&EAt(),e.startSize=OAt&&OAt(),e.startSizeVar=kAt&&kAt(),e.endSize=RAt&&RAt(),e.endSizeVar=FAt&&FAt(),e.startSpin=LAt&&LAt(),e.startSpinVar=NAt&&NAt(),e.endSpin=VAt&&VAt(),e.endSpinVar=zAt&&zAt(),e.sourcePos=UAt&&UAt(),e.posVar=GAt&&GAt(),e.emitterMode=HAt&&HAt(),e.gravity=WAt&&WAt(),e.speed=jAt&&jAt(),e.speedVar=qAt&&qAt(),e.tangentialAccel=XAt&&XAt(),e.tangentialAccelVar=YAt&&YAt(),e.radialAccel=KAt&&KAt(),e.radialAccelVar=JAt&&JAt(),e.rotationIsDir=QAt&&QAt(),e.startRadius=ZAt&&ZAt(),e.startRadiusVar=$At&&$At(),e.endRadius=tCt&&tCt(),e.endRadiusVar=eCt&&eCt(),e.rotatePerS=iCt&&iCt(),e.rotatePerSVar=nCt&&nCt(),e.aspectRatio=1,e.playOnLoad=rCt&&rCt(),e.autoRemoveOnFinish=sCt&&sCt(),e._preview=aCt&&aCt(),e._custom=oCt&&oCt(),e._file=hCt&&hCt(),e._spriteFrame=uCt&&uCt(),e._totalParticles=lCt&&lCt(),e._startColor=cCt&&cCt(),e._startColorVar=fCt&&fCt(),e._endColor=_Ct&&_Ct(),e._endColorVar=dCt&&dCt(),e._positionType=pCt&&pCt(),e._stopped=!0,e._useFile=void 0,e.initProperties(),e._useFile=!1,e}s(e,t);var i=e.prototype;return i.onEnable=function(){t.prototype.onEnable.call(this),this._updateMaterial(),this._updatePositionType()},i.onDestroy=function(){t.prototype.onDestroy.call(this),this.autoRemoveOnFinish&&(this.autoRemoveOnFinish=!1),this._simulator.uvFilled=0,this.destroyRenderData()},i.initProperties=function(){this._previewTimer=null,this._focused=!1,this.aspectRatio=1,this._simulator=new aAt(this)},i.onFocusInEditor=function(){this._focused=!0;for(var t=yCt(this.node),e=0;e=this.totalParticles},i._applyFile=function(){var t=this._file;if(t){if(!t)return void ot(6029);if(!this.isValid)return;this._plistFile=t.nativeUrl,this._custom||(this._spriteFrame!==t.spriteFrame&&(this.spriteFrame=t.spriteFrame),this._initWithDictionary(t._nativeAsset)),this._spriteFrame?!this._renderSpriteFrame&&this._spriteFrame&&this._applySpriteFrame():t.spriteFrame?this.spriteFrame=t.spriteFrame:this._custom&&this._initTextureWithDictionary(t._nativeAsset)}},i._initTextureWithDictionary=function(t){var e,i=this;if(t.spriteFrameUuid){var n=t.spriteFrameUuid;hT.loadAny(n,(function(e,n){e?(t.spriteFrameUuid=void 0,i._initTextureWithDictionary(t),Y(e)):i.spriteFrame=n}))}else{var r=Xo(this._plistFile,t.textureFileName||"");if(t.textureFileName)hT.loadRemote(r,(function(e,n){e?(t.textureFileName=void 0,i._initTextureWithDictionary(t),Y(e)):i.spriteFrame=n?$k.createWithImage(n):$k.createWithImage(fT.get("white-texture"))}));else if(t.textureImageData){var s=t.textureImageData;if(!(s&&s.length>0))return!1;var a=r;this.file&&(a+="-"+this.file.uuid);var o=hT.assets.get(a);if(!o){var h=gCt.unzipBase64AsArray(s,1);if(!h)return st(6030,this._file.name),!1;var u=(e=h).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]?1:e.length>2&&(73===e[0]&&73===e[1]||77===e[0]&&77===e[1]||255===e[0]&&216===e[1])?2:10;if(2!==u&&1!==u)return st(6031,this._file.name),!1;var l=D.document.createElement("canvas");1===u?new uAt(h).render(l):(_At.parseTIFF(h,l),_At.reset()),o=new Vm(l),hT.assets.add(a,o)}o||st(6032,this._file.name),this.spriteFrame=o?$k.createWithImage(o):$k.createWithImage(fT.get("white-texture"))}}return!0},i._initWithDictionary=function(t){this._useFile=!0,this.totalParticles=MCt(t.maxParticles||0),this.life=PCt(t.particleLifespan||0),this.lifeVar=PCt(t.particleLifespanVariance||0);var e=t.emissionRate;this.emissionRate=e||Math.min(this.totalParticles/this.life,Number.MAX_VALUE),this.duration=PCt(t.duration||0),this._srcBlendFactor=MCt(t.blendFuncSource||2),this._dstBlendFactor=MCt(t.blendFuncDestination||4);var i=this._startColor;i.r=255*PCt(t.startColorRed||0),i.g=255*PCt(t.startColorGreen||0),i.b=255*PCt(t.startColorBlue||0),i.a=255*PCt(t.startColorAlpha||0);var n=this._startColorVar;n.r=255*PCt(t.startColorVarianceRed||0),n.g=255*PCt(t.startColorVarianceGreen||0),n.b=255*PCt(t.startColorVarianceBlue||0),n.a=255*PCt(t.startColorVarianceAlpha||0);var r=this._endColor;r.r=255*PCt(t.finishColorRed||0),r.g=255*PCt(t.finishColorGreen||0),r.b=255*PCt(t.finishColorBlue||0),r.a=255*PCt(t.finishColorAlpha||0);var s=this._endColorVar;if(s.r=255*PCt(t.finishColorVarianceRed||0),s.g=255*PCt(t.finishColorVarianceGreen||0),s.b=255*PCt(t.finishColorVarianceBlue||0),s.a=255*PCt(t.finishColorVarianceAlpha||0),this.startSize=PCt(t.startParticleSize||0),this.startSizeVar=PCt(t.startParticleSizeVariance||0),this.endSize=PCt(t.finishParticleSize||0),this.endSizeVar=PCt(t.finishParticleSizeVariance||0),this.positionType=PCt(void 0!==t.positionType?t.positionType:qTt.FREE),this.sourcePos.set(0,0),this.posVar.set(PCt(t.sourcePositionVariancex||0),PCt(t.sourcePositionVariancey||0)),this.angle=PCt(t.angle||0),this.angleVar=PCt(t.angleVariance||0),this.startSpin=PCt(t.rotationStart||0),this.startSpinVar=PCt(t.rotationStartVariance||0),this.endSpin=PCt(t.rotationEnd||0),this.endSpinVar=PCt(t.rotationEndVariance||0),this.emitterMode=MCt(t.emitterType||jTt.GRAVITY),this.emitterMode===jTt.GRAVITY){this.gravity.set(PCt(t.gravityx||0),PCt(t.gravityy||0)),this.speed=PCt(t.speed||0),this.speedVar=PCt(t.speedVariance||0),this.radialAccel=PCt(t.radialAcceleration||0),this.radialAccelVar=PCt(t.radialAccelVariance||0),this.tangentialAccel=PCt(t.tangentialAcceleration||0),this.tangentialAccelVar=PCt(t.tangentialAccelVariance||0);var a=t.rotationIsDir||"";null!==a?(a=a.toString().toLowerCase(),this.rotationIsDir="true"===a||"1"===a):this.rotationIsDir=!1}else{if(this.emitterMode!==jTt.RADIUS)return st(6009),!1;this.startRadius=PCt(t.maxRadius||0),this.startRadiusVar=PCt(t.maxRadiusVariance||0),this.endRadius=PCt(t.minRadius||0),this.endRadiusVar=PCt(t.minRadiusVariance||0),this.rotatePerS=PCt(t.rotatePerSecond||0),this.rotatePerSVar=PCt(t.rotatePerSecondVariance||0)}return this._initTextureWithDictionary(t),!0},i._syncAspect=function(){if(this._renderSpriteFrame){var t=this._renderSpriteFrame.rect;this.aspectRatio=t.width/t.height}},i._applySpriteFrame=function(){this._renderSpriteFrame=this._renderSpriteFrame||this._spriteFrame,this._renderSpriteFrame?this._renderSpriteFrame.texture&&(this._simulator&&this._simulator.updateUVs(!0),this._syncAspect(),this._updateMaterial(),this._stopped=!1,this._markForUpdateRenderData()):this.resetSystem()},i._getTexture=function(){return this._renderSpriteFrame&&this._renderSpriteFrame.texture},i._updateMaterial=function(){if(this._customMaterial){this.setSharedMaterial(this._customMaterial,0);var t=this.getRenderMaterial(0).passes[0].blendState.targets[0];this._dstBlendFactor=t.blendDst,this._srcBlendFactor=t.blendSrc}var e=this.getMaterialInstance(0);e&&e.recompileShaders({USE_LOCAL:this._positionType!==qTt.FREE}),e&&e.passes.length>0&&this._updateBlendFunc()},i._finishedSimulation=function(){this.resetSystem(),this.stopSystem(),this._markForUpdateRenderData(),this.autoRemoveOnFinish&&this._stopped&&this.node.destroy()},i._canRender=function(){return t.prototype._canRender.call(this)&&!this._stopped&&null!==this._renderSpriteFrame&&void 0!==this._renderSpriteFrame},i._render=function(t){this._positionType===qTt.RELATIVE?t.commitComp(this,this._simulator.renderData,this._renderSpriteFrame,this._assembler,this.node.parent):this.positionType===qTt.GROUPED?t.commitComp(this,this._simulator.renderData,this._renderSpriteFrame,this._assembler,this.node):t.commitComp(this,this._simulator.renderData,this._renderSpriteFrame,this._assembler,null)},i._updatePositionType=function(){this._positionType===qTt.RELATIVE?(this._renderEntity.setRenderTransform(this.node.parent),this._renderEntity.setUseLocal(!0)):this.positionType===qTt.GROUPED?(this._renderEntity.setRenderTransform(this.node),this._renderEntity.setUseLocal(!0)):(this._renderEntity.setRenderTransform(null),this._renderEntity.setUseLocal(!1))},n(e,[{key:"custom",get:function(){return this._custom},set:function(t){this._custom!==t&&(this._custom=t,this._applyFile(),this._updateMaterial())}},{key:"file",get:function(){return this._file},set:function(t){this._file!==t&&(this._file=t,t?this._applyFile():this.custom=!0)}},{key:"spriteFrame",get:function(){return this._spriteFrame},set:function(t){this._renderSpriteFrame!==t&&(this._renderSpriteFrame=t,t&&!t._uuid||(this._spriteFrame=t),this._applySpriteFrame())}},{key:"particleCount",get:function(){return this._simulator.particles.length}},{key:"totalParticles",get:function(){return this._totalParticles},set:function(t){this._totalParticles!==t&&(this._totalParticles=t)}},{key:"startColor",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}},{key:"startColorVar",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}},{key:"color",get:function(){return this._color},set:function(){}},{key:"endColor",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}},{key:"endColorVar",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}},{key:"positionType",get:function(){return this._positionType},set:function(t){this._positionType=t,this._updateMaterial(),this._updatePositionType()}},{key:"preview",get:function(){return this._preview},set:function(t){t?this._startPreview():this._stopPreview(),this._preview=t}},{key:"stopped",get:function(){return this._stopped}},{key:"active",get:function(){return this._simulator.active}},{key:"assembler",get:function(){return this._assembler}}]),e}(TL),mCt.EmitterMode=jTt,mCt.PositionType=qTt,mCt.DURATION_INFINITY=-1,mCt.START_SIZE_EQUAL_TO_END_SIZE=-1,mCt.START_RADIUS_EQUAL_TO_END_RADIUS=-1,v((CAt=mCt).prototype,"file",[bAt],Object.getOwnPropertyDescriptor(CAt.prototype,"file"),CAt.prototype),v(CAt.prototype,"spriteFrame",[SAt],Object.getOwnPropertyDescriptor(CAt.prototype,"spriteFrame"),CAt.prototype),DAt=Vh(CAt.prototype,"duration",[hu],(function(){return-1})),BAt=Vh(CAt.prototype,"emissionRate",[hu],(function(){return 10})),IAt=Vh(CAt.prototype,"life",[hu],(function(){return 1})),MAt=Vh(CAt.prototype,"lifeVar",[hu],(function(){return 0})),v(CAt.prototype,"color",[Uu],Object.getOwnPropertyDescriptor(CAt.prototype,"color"),CAt.prototype),PAt=Vh(CAt.prototype,"angle",[hu],(function(){return 90})),EAt=Vh(CAt.prototype,"angleVar",[hu],(function(){return 20})),OAt=Vh(CAt.prototype,"startSize",[hu],(function(){return 50})),kAt=Vh(CAt.prototype,"startSizeVar",[hu],(function(){return 0})),RAt=Vh(CAt.prototype,"endSize",[hu],(function(){return 0})),FAt=Vh(CAt.prototype,"endSizeVar",[hu],(function(){return 0})),LAt=Vh(CAt.prototype,"startSpin",[hu],(function(){return 0})),NAt=Vh(CAt.prototype,"startSpinVar",[hu],(function(){return 0})),VAt=Vh(CAt.prototype,"endSpin",[hu],(function(){return 0})),zAt=Vh(CAt.prototype,"endSpinVar",[hu],(function(){return 0})),UAt=Vh(CAt.prototype,"sourcePos",[hu],(function(){return _s.ZERO.clone()})),GAt=Vh(CAt.prototype,"posVar",[hu],(function(){return _s.ZERO.clone()})),v(CAt.prototype,"positionType",[xAt],Object.getOwnPropertyDescriptor(CAt.prototype,"positionType"),CAt.prototype),HAt=Vh(CAt.prototype,"emitterMode",[hu,wAt],(function(){return jTt.GRAVITY})),WAt=Vh(CAt.prototype,"gravity",[hu],(function(){return _s.ZERO.clone()})),jAt=Vh(CAt.prototype,"speed",[hu],(function(){return 180})),qAt=Vh(CAt.prototype,"speedVar",[hu],(function(){return 50})),XAt=Vh(CAt.prototype,"tangentialAccel",[hu],(function(){return 80})),YAt=Vh(CAt.prototype,"tangentialAccelVar",[hu],(function(){return 0})),KAt=Vh(CAt.prototype,"radialAccel",[hu],(function(){return 0})),JAt=Vh(CAt.prototype,"radialAccelVar",[hu],(function(){return 0})),QAt=Vh(CAt.prototype,"rotationIsDir",[hu],(function(){return!1})),ZAt=Vh(CAt.prototype,"startRadius",[hu],(function(){return 0})),$At=Vh(CAt.prototype,"startRadiusVar",[hu],(function(){return 0})),tCt=Vh(CAt.prototype,"endRadius",[hu],(function(){return 0})),eCt=Vh(CAt.prototype,"endRadiusVar",[hu],(function(){return 0})),iCt=Vh(CAt.prototype,"rotatePerS",[hu],(function(){return 0})),nCt=Vh(CAt.prototype,"rotatePerSVar",[hu],(function(){return 0})),rCt=Vh(CAt.prototype,"playOnLoad",[hu],(function(){return!0})),sCt=Vh(CAt.prototype,"autoRemoveOnFinish",[hu],(function(){return!1})),aCt=Vh(CAt.prototype,"_preview",[TAt],(function(){return!0})),oCt=Vh(CAt.prototype,"_custom",[hu],(function(){return!1})),hCt=Vh(CAt.prototype,"_file",[hu],(function(){return null})),uCt=Vh(CAt.prototype,"_spriteFrame",[hu],(function(){return null})),lCt=Vh(CAt.prototype,"_totalParticles",[hu],(function(){return 150})),cCt=Vh(CAt.prototype,"_startColor",[hu],(function(){return new lr(255,255,255,255)})),fCt=Vh(CAt.prototype,"_startColorVar",[hu],(function(){return new lr(0,0,0,0)})),_Ct=Vh(CAt.prototype,"_endColor",[hu],(function(){return new lr(255,255,255,0)})),dCt=Vh(CAt.prototype,"_endColorVar",[hu],(function(){return new lr(0,0,0,0)})),pCt=Vh(CAt.prototype,"_positionType",[hu],(function(){return qTt.FREE})),AAt=CAt))||AAt)),OCt=function(){function t(t,e){this.point=new _s,this.dir=new _s,this.distance=0,this.time=0,t&&this.point.set(t),e&&this.dir.set(e)}var e=t.prototype;return e.setPoint=function(t,e){this.point.x=t,this.point.y=e},e.setDir=function(t,e){this.dir.x=t,this.dir.y=e},t}(),kCt=t("f3",(vCt=Kh("cc.MotionStreak"),bCt=Eu(By),vCt((ICt=function(t){function e(){var e;return(e=t.call(this)||this)._preview=wCt&&wCt(),e._fadeTime=TCt&&TCt(),e._minSeg=ACt&&ACt(),e._stroke=CCt&&CCt(),e._texture=DCt&&DCt(),e._fastMode=BCt&&BCt(),e._points=[],e}s(e,t);var i=e.prototype;return i.onEnable=function(){t.prototype.onEnable.call(this),this.reset()},i._flushAssembler=function(){var t=e.Assembler.getAssembler(this);this._assembler!==t&&(this._assembler=t),this._renderData||this._assembler&&this._assembler.createData&&(this._renderData=this._assembler.createData(this),this._renderData.material=this.material,this._updateColor())},i.onFocusInEditor=function(){this._preview&&this.reset()},i.onLostFocusInEditor=function(){this._preview&&this.reset()},i.reset=function(){this._points.length=0,this._renderData&&this._renderData.clear()},i.lateUpdate=function(t){this._assembler&&this._assembler.update&&this._assembler.update(this,t)},i._render=function(t){t.commitComp(this,this._renderData,this._texture,this._assembler,null)},n(e,[{key:"preview",get:function(){return this._preview},set:function(t){this._preview=t,this.reset()}},{key:"fadeTime",get:function(){return this._fadeTime},set:function(t){this._fadeTime=t,this.reset()}},{key:"minSeg",get:function(){return this._minSeg},set:function(t){this._minSeg=t}},{key:"stroke",get:function(){return this._stroke},set:function(t){this._stroke=t}},{key:"texture",get:function(){return this._texture},set:function(t){this._texture!==t&&(this._texture=t)}},{key:"fastMode",get:function(){return this._fastMode},set:function(t){this._fastMode=t}},{key:"points",get:function(){return this._points}}]),e}(TL),ICt.Point=OCt,v((xCt=ICt).prototype,"texture",[bCt],Object.getOwnPropertyDescriptor(xCt.prototype,"texture"),xCt.prototype),wCt=Vh(xCt.prototype,"_preview",[hu],(function(){return!1})),TCt=Vh(xCt.prototype,"_fadeTime",[hu],(function(){return 1})),ACt=Vh(xCt.prototype,"_minSeg",[hu],(function(){return 1})),CCt=Vh(xCt.prototype,"_stroke",[hu],(function(){return 64})),DCt=Vh(xCt.prototype,"_texture",[hu],(function(){return null})),BCt=Vh(xCt.prototype,"_fastMode",[hu],(function(){return!1})),SCt=xCt))||SCt)),RCt=new _s,FCt=new _s,LCt=null;function NCt(t,e){return t.x=-e.y,t.y=e.x,t}var VCt=function(){function t(){}var e=t.prototype;return e.createData=function(t){var e=t.requestRenderData();return e.dataLength=4,e.resize(16,42),e},e.update=function(t,e){var i,n=t.stroke/2,r=t.node.worldMatrix,s=r.m12,a=r.m13,o=t.points;if(o.length>1){var h=o[0],u=h.point.x-s,l=h.point.y-a;u*u+l*l=0;w--){var T=o[w],A=T.point,C=T.dir;if(T.time-=e,T.time<0)o.splice(w,1);else{var D=T.time/S,B=o[w-1];if(!x){if(!B){o.splice(w,1);continue}A.x=B.point.x-C.x*D,A.y=B.point.y-C.y*D}x=!0,NCt(RCt,C);var I=D*y,M=f;b[M].x=A.x+RCt.x*n,b[M].y=A.y+RCt.y*n,b[M].u=1,b[M].v=D,b[M].color.set(p,m,g,I),b[M+=1].x=A.x-RCt.x*n,b[M].y=A.y-RCt.y*n,b[M].u=0,b[M].v=D,b[M].color.set(p,m,g,I),f+=2}}c=f<=2?0:3*(f-2),_.resize(f,c)}},e.updateWorldVertexAllData=function(t){for(var e=t.renderData,i=e.floatStride,n=e.data,r=e.chunk.vb,s=0;se?t:e}function k(t,e,i){return ti?i:t}var R=isFinite;function F(t){return t*t}function L(t){return 1/Math.sqrt(t)}var N=Math.sqrt,V=Math.pow;var z=Math.cos,U=Math.sin,G=Math.acos,H=Math.asin,W=Math.atan2;var j=function(){function t(){for(var t=arguments.length,e=new Array(t),i=0;i=r){var e=1/t;this.x*=e,this.y*=e}return t},e.SelfNormalize=function(){var t=this.Length();if(t>=r){var e=1/t;this.x*=e,this.y*=e}return this},e.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},e.SelfRotateCosSin=function(t,e){var i=this.x;return this.x=t*i-e*this.y,this.y=e*i+t*this.y,this},e.IsValid=function(){return isFinite(this.x)&&isFinite(this.y)},e.SelfCrossVS=function(t){var e=this.x;return this.x=t*this.y,this.y=-t*e,this},e.SelfCrossSV=function(t){var e=this.x;return this.x=-t*this.y,this.y=t*e,this},e.SelfMinV=function(t){return this.x=E(this.x,t.x),this.y=E(this.y,t.y),this},e.SelfMaxV=function(t){return this.x=O(this.x,t.x),this.y=O(this.y,t.y),this},e.SelfAbs=function(){return this.x=P(this.x),this.y=P(this.y),this},e.SelfNeg=function(){return this.x=-this.x,this.y=-this.y,this},e.SelfSkew=function(){var t=this.x;return this.x=-this.y,this.y=t,this},t.MakeArray=function(e){return C(e,(function(){return new t}))},t.AbsV=function(t,e){return e.x=P(t.x),e.y=P(t.y),e},t.MinV=function(t,e,i){return i.x=E(t.x,e.x),i.y=E(t.y,e.y),i},t.MaxV=function(t,e,i){return i.x=O(t.x,e.x),i.y=O(t.y,e.y),i},t.ClampV=function(t,e,i,n){return n.x=k(t.x,e.x,i.x),n.y=k(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},n(t,[{key:"x",get:function(){return this.data[0]},set:function(t){this.data[0]=t}},{key:"y",get:function(){return this.data[1]},set:function(t){this.data[1]=t}}]),t}();j.ZERO=new j(0,0),j.UNITX=new j(1,0),j.UNITY=new j(0,1),j.s_t0=new j,j.s_t1=new j,j.s_t2=new j,j.s_t3=new j;var q=new j(0,0),X=function(){function t(){for(var t=arguments.length,e=new Array(t),i=0;ithis.m_count&&(this.m_min_count=this.m_count)},t}(),rt=function(){function t(t){this.m_stack=[],this.m_count=0,this.m_stack=C(t,(function(){return null})),this.m_count=0}var e=t.prototype;return e.Reset=function(){return this.m_count=0,this},e.Push=function(t){this.m_stack[this.m_count]=t,this.m_count++},e.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},e.GetCount=function(){return this.m_count},t}(),st=function(){function t(){this.m_buffer=j.MakeArray(2),this.m_vertices=this.m_buffer,this.m_count=0,this.m_radius=0}var e=t.prototype;return e.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},e.Reset=function(){return this.m_vertices=this.m_buffer,this.m_count=0,this.m_radius=0,this},e.SetShape=function(t,e){t.SetupDistanceProxy(this,e)},e.SetVerticesRadius=function(t,e,i){this.m_vertices=t,this.m_count=e,this.m_radius=i},e.GetSupport=function(t){for(var e=0,i=j.DotVV(this.m_vertices[0],t),n=1;ni&&(e=n,i=r)}return e},e.GetSupportVertex=function(t){for(var e=0,i=j.DotVV(this.m_vertices[0],t),n=1;ni&&(e=n,i=r)}return this.m_vertices[e]},e.GetVertexCount=function(){return this.m_count},e.GetVertex=function(t){return this.m_vertices[t]},t}(),at=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}(),ot=function(){function t(){this.proxyA=new st,this.proxyB=new st,this.transformA=new Q,this.transformB=new Q,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}(),ht=function(){function t(){this.pointA=new j,this.pointB=new j,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 ut=function(){function t(){this.wA=new j,this.wB=new j,this.w=new j,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}(),lt=function(){function t(){this.m_v1=new ut,this.m_v2=new ut,this.m_v3=new ut,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}var e=t.prototype;return e.ReadCache=function(t,e,i,n,s){this.m_count=t.count;for(var a=this.m_vertices,o=0;o1){var c=t.metric,f=this.GetMetric();(f<.5*c||2*c0?j.CrossOneV(e,t):j.CrossVOne(e,t);default:return t.SetZero()}},e.GetClosestPoint=function(t){switch(this.m_count){case 0:case 3:default: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)}},e.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}},e.GetMetric=function(){switch(this.m_count){case 0:case 1:default:return 0;case 2:return j.DistanceVV(this.m_v1.w,this.m_v2.w);case 3:return j.CrossVV(j.SubVV(this.m_v2.w,this.m_v1.w,j.s_t0),j.SubVV(this.m_v3.w,this.m_v1.w,j.s_t1))}},e.Solve2=function(){var e=this.m_v1.w,i=this.m_v2.w,n=j.SubVV(i,e,t.s_e12),r=-j.DotVV(e,n);if(r<=0)return this.m_v1.a=1,void(this.m_count=1);var s=j.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},e.Solve3=function(){var e=this.m_v1.w,i=this.m_v2.w,n=this.m_v3.w,r=j.SubVV(i,e,t.s_e12),s=j.DotVV(e,r),a=j.DotVV(i,r),o=-s,h=j.SubVV(n,e,t.s_e13),u=j.DotVV(e,h),l=j.DotVV(n,h),c=-u,f=j.SubVV(n,i,t.s_e23),_=j.DotVV(i,f),d=j.DotVV(n,f),p=-_,m=j.CrossVV(r,h),g=m*j.CrossVV(i,n),y=m*j.CrossVV(n,e),v=m*j.CrossVV(e,i);if(o<=0&&c<=0)return this.m_v1.a=1,void(this.m_count=1);if(a>0&&o>0&&v<=0){var b=1/(a+o);return this.m_v1.a=a*b,this.m_v2.a=o*b,void(this.m_count=2)}if(l>0&&c>0&&y<=0){var S=1/(l+c);return this.m_v1.a=l*S,this.m_v3.a=c*S,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(l<=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&&g<=0){var x=1/(d+p);return this.m_v2.a=d*x,this.m_v3.a=p*x,this.m_count=2,void this.m_v1.Copy(this.m_v3)}var w=1/(g+y+v);this.m_v1.a=g*w,this.m_v2.a=y*w,this.m_v3.a=v*w,this.m_count=3},t}();lt.s_e12=new j,lt.s_e13=new j,lt.s_e23=new j;var ct=new lt,ft=[0,0,0],_t=[0,0,0],dt=new j,pt=new j,mt=new j,gt=new j,yt=new j;function vt(e,i,n){++t.b2_gjkCalls;var s=n.proxyA,o=n.proxyB,h=n.transformA,u=n.transformB,l=ct;l.ReadCache(i,s,h,o,u);for(var c=l.m_vertices,f=ft,_=_t,d=0,p=0;p<20;){d=l.m_count;for(var m=0;mS+x&&e.distance>r){e.distance-=S+x;var w=j.SubVV(e.pointB,e.pointA,mt);w.Normalize(),e.pointA.SelfMulAdd(S,w),e.pointB.SelfMulSub(x,w)}else{var T=j.MidVV(e.pointA,e.pointB,dt);e.pointA.Copy(T),e.pointB.Copy(T),e.distance=0}}}var bt,St=new j,xt=new lt,wt=new j,Tt=new j,At=new j,Ct=new j,Dt=new j,Bt=new j;(bt=t.b2ContactFeatureType||(t.b2ContactFeatureType={}))[bt.e_vertex=0]="e_vertex",bt[bt.e_face=1]="e_face";var It,Mt=function(){function t(){this._key=0,this._key_invalid=!1,this._indexA=0,this._indexB=0,this._typeA=0,this._typeB=0}return n(t,[{key:"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}},{key:"indexA",get:function(){return this._indexA},set:function(t){this._indexA=t,this._key_invalid=!0}},{key:"indexB",get:function(){return this._indexB},set:function(t){this._indexB=t,this._key_invalid=!0}},{key:"typeA",get:function(){return this._typeA},set:function(t){this._typeA=t,this._key_invalid=!0}},{key:"typeB",get:function(){return this._typeB},set:function(t){this._typeB=t,this._key_invalid=!0}}]),t}(),Pt=function(){function t(){this.cf=new Mt}var e=t.prototype;return e.Copy=function(t){return this.key=t.key,this},e.Clone=function(){return(new t).Copy(this)},n(t,[{key:"key",get:function(){return this.cf.key},set:function(t){this.cf.key=t}}]),t}(),Et=function(){function t(){this.localPoint=new j,this.normalImpulse=0,this.tangentImpulse=0,this.id=new Pt}t.MakeArray=function(e){return C(e,(function(){return new t}))};var e=t.prototype;return e.Reset=function(){this.localPoint.SetZero(),this.normalImpulse=0,this.tangentImpulse=0,this.id.key=0},e.Copy=function(t){return this.localPoint.Copy(t.localPoint),this.normalImpulse=t.normalImpulse,this.tangentImpulse=t.tangentImpulse,this.id.Copy(t.id),this},t}();(It=t.b2ManifoldType||(t.b2ManifoldType={}))[It.e_unknown=-1]="e_unknown",It[It.e_circles=0]="e_circles",It[It.e_faceA=1]="e_faceA",It[It.e_faceB=2]="e_faceB";var Ot,kt=function(){function e(){this.points=Et.MakeArray(2),this.localNormal=new j,this.localPoint=new j,this.type=t.b2ManifoldType.e_unknown,this.pointCount=0}var i=e.prototype;return i.Reset=function(){for(var e=0;e<2;++e)this.points[e].Reset();this.localNormal.SetZero(),this.localPoint.SetZero(),this.type=t.b2ManifoldType.e_unknown,this.pointCount=0},i.Copy=function(t){this.pointCount=t.pointCount;for(var e=0;e<2;++e)this.points[e].Copy(t.points[e]);return this.localNormal.Copy(t.localNormal),this.localPoint.Copy(t.localPoint),this.type=t.type,this},i.Clone=function(){return(new e).Copy(this)},e}(),Rt=function(){function e(){this.normal=new j,this.points=j.MakeArray(2),this.separations=D(2)}return e.prototype.Initialize=function(i,n,r,s,o){if(0!==i.pointCount)switch(i.type){case t.b2ManifoldType.e_circles:this.normal.Set(1,0);var h=Q.MulXV(n,i.localPoint,e.Initialize_s_pointA),u=Q.MulXV(s,i.points[0].localPoint,e.Initialize_s_pointB);j.DistanceSquaredVV(h,u)>a&&j.SubVV(u,h,this.normal).SelfNormalize();var l=j.AddVMulSV(h,r,this.normal,e.Initialize_s_cA),c=j.SubVMulSV(u,o,this.normal,e.Initialize_s_cB);j.MidVV(l,c,this.points[0]),this.separations[0]=j.DotVV(j.SubVV(c,l,j.s_t0),this.normal);break;case t.b2ManifoldType.e_faceA:J.MulRV(n.q,i.localNormal,this.normal);for(var f=Q.MulXV(n,i.localPoint,e.Initialize_s_planePoint),_=0;_p){var g=d;d=p,p=g,m=1}if(d>n&&(f.x=m,f.y=0,n=d),n>(s=E(s,p)))return!1}if(cb){var x=v;v=b,b=x,S=1}if(v>n&&(f.x=0,f.y=S,n=v),n>(s=E(s,b)))return!1}return!(n<0||e.maxFraction0;){var n=i.Pop();if(null!==n&&n.aabb.TestOverlap(t))if(n.IsLeaf()){if(!e(n))return}else i.Push(n.child1),i.Push(n.child2)}},e.QueryPoint=function(t,e){var i=this.m_stack.Reset();for(i.Push(this.m_root);i.GetCount()>0;){var n=i.Pop();if(null!==n&&n.aabb.TestContain(t))if(n.IsLeaf()){if(!e(n))return}else i.Push(n.child1),i.Push(n.child2)}},e.RayCast=function(e,i){var n=e.p1,r=e.p2,s=j.SubVV(r,n,t.s_r);s.Normalize();var a=j.CrossOneV(s,t.s_v),o=j.AbsV(a,t.s_abs_v),h=e.maxFraction,u=t.s_segmentAABB,l=n.x+h*(r.x-n.x),c=n.y+h*(r.y-n.y);u.lowerBound.x=E(n.x,l),u.lowerBound.y=E(n.y,c),u.upperBound.x=O(n.x,l),u.upperBound.y=O(n.y,c);var f=this.m_stack.Reset();for(f.Push(this.m_root);f.GetCount()>0;){var _=f.Pop();if(null!==_&&zt(_.aabb,u)){var d=_.aabb.GetCenter(),p=_.aabb.GetExtents();if(!(P(j.DotVV(a,j.SubVV(n,d,j.s_t0)))-j.DotVV(o,p)>0))if(_.IsLeaf()){var m=t.s_subInput;m.p1.Copy(e.p1),m.p2.Copy(e.p2),m.maxFraction=h;var g=i(m,_);if(0===g)return;g>0&&(h=g,l=n.x+h*(r.x-n.x),c=n.y+h*(r.y-n.y),u.lowerBound.x=E(n.x,l),u.lowerBound.y=E(n.y,c),u.upperBound.x=O(n.x,l),u.upperBound.y=O(n.y,c))}else f.Push(_.child1),f.Push(_.child2)}}},e.AllocateNode=function(){if(null!==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,e}return new Xt(t.s_node_id++)},e.FreeNode=function(t){t.parent=this.m_freeList,t.child1=null,t.child2=null,t.height=-1,t.Reset(),this.m_freeList=t},e.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},e.DestroyProxy=function(t){this.RemoveLeaf(t),this.FreeNode(t)},e.MoveProxy=function(t,e,i){if(t.aabb.Contains(e))return!1;this.RemoveLeaf(t);t.aabb.lowerBound.x=e.lowerBound.x-.1,t.aabb.lowerBound.y=e.lowerBound.y-.1,t.aabb.upperBound.x=e.upperBound.x+.1,t.aabb.upperBound.y=e.upperBound.y+.1;var n=2*i.x,r=2*i.y;return n<0?t.aabb.lowerBound.x+=n:t.aabb.upperBound.x+=n,r<0?t.aabb.lowerBound.y+=r:t.aabb.upperBound.y+=r,this.InsertLeaf(t),!0},e.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=qt(n.child1),s=qt(n.child2),a=n.aabb.GetPerimeter(),o=t.s_combinedAABB;o.Combine2(n.aabb,i);var h=o.GetPerimeter(),u=2*h,l=2*(h-a),c=void 0,f=t.s_aabb,_=void 0;r.IsLeaf()?(f.Combine2(i,r.aabb),c=f.GetPerimeter()+l):(f.Combine2(i,r.aabb),_=r.aabb.GetPerimeter(),c=f.GetPerimeter()-_+l);var d=void 0;if(s.IsLeaf()?(f.Combine2(i,s.aabb),d=f.GetPerimeter()+l):(f.Combine2(i,s.aabb),_=s.aabb.GetPerimeter(),d=f.GetPerimeter()-_+l),u1){var r=qt(i.child1),s=qt(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+O(e.height,s.height),i.height=1+O(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+O(e.height,r.height),i.height=1+O(t.height,s.height)),i}if(n<-1){var a=qt(e.child1),o=qt(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+O(i.height,o.height),e.height=1+O(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+O(i.height,a.height),e.height=1+O(t.height,o.height)),e}return t},e.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)},e.GetAreaRatio=function(){if(null===this.m_root)return 0;var e=this.m_root.aabb.GetPerimeter();return t.GetAreaNode(this.m_root)/e},t.ComputeHeightNode=function(e){return null===e||e.IsLeaf()?0:1+O(t.ComputeHeightNode(e.child1),t.ComputeHeightNode(e.child2))},e.ComputeHeight=function(){return t.ComputeHeightNode(this.m_root)},e.ValidateStructure=function(t){if(null!==t&&(this.m_root,!t.IsLeaf())){var e=qt(t.child1),i=qt(t.child2);this.ValidateStructure(e),this.ValidateStructure(i)}},e.ValidateMetrics=function(e){if(null!==e&&!e.IsLeaf()){var i=qt(e.child1),n=qt(e.child2);t.s_aabb.Combine2(i.aabb,n.aabb),this.ValidateMetrics(i),this.ValidateMetrics(n)}},e.Validate=function(){},t.GetMaxBalanceNode=function(t,e){if(null===t)return e;if(t.height<=1)return e;var i=qt(t.child1),n=qt(t.child2);return O(e,P(n.height-i.height))},e.GetMaxBalance=function(){return t.GetMaxBalanceNode(this.m_root,0)},e.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)}},e.ShiftOrigin=function(e){t.ShiftOriginNode(this.m_root,e)},t}();function Kt(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function Jt(t,e){return t=i)break;Kt(t,h,i)}}if(0===a)break;r=i,i=s[--a]}return t}Yt.s_r=new j,Yt.s_v=new j,Yt.s_abs_v=new j,Yt.s_segmentAABB=new Vt,Yt.s_subInput=new Lt,Yt.s_combinedAABB=new Vt,Yt.s_aabb=new Vt,Yt.s_node_id=0;var Zt=function(t,e){this.proxyA=t,this.proxyB=e},$t=function(){function t(){this.m_tree=new Yt,this.m_proxyCount=0,this.m_moveCount=0,this.m_moveBuffer=[],this.m_pairCount=0,this.m_pairBuffer=[]}var e=t.prototype;return e.CreateProxy=function(t,e){var i=this.m_tree.CreateProxy(t,e);return++this.m_proxyCount,this.BufferMove(i),i},e.DestroyProxy=function(t){this.UnBufferMove(t),--this.m_proxyCount,this.m_tree.DestroyProxy(t)},e.MoveProxy=function(t,e,i){this.m_tree.MoveProxy(t,e,i)&&this.BufferMove(t)},e.TouchProxy=function(t){this.BufferMove(t)},e.GetProxyCount=function(){return this.m_proxyCount},e.UpdatePairs=function(t){var e=this;this.m_pairCount=0;for(var i=function(){var t=e.m_moveBuffer[n];if(null===t)return 1;var i=t.aabb;e.m_tree.Query(i,(function(i){if(i.m_id===t.m_id)return!0;var n,r;if(i.m_idf+_){e.state=t.b2TOIOutputState.e_separated,e.t=u,x=!0;break}if(D>f-_){d=w;break}var B=S.Evaluate(A[0],C[0],d);if(Bf?(M=k,B=R):(E=k,D=R),50===I)break}if(t.b2_toiMaxRootIters=O(t.b2_toiMaxRootIters,I),++T===a)break}if(++p,++t.b2_toiIters,x)break;if(20===p){e.state=t.b2TOIOutputState.e_failed,e.t=d;break}}t.b2_toiMaxIters=O(t.b2_toiMaxIters,p);var F=n.GetMilliseconds();t.b2_toiMaxTime=O(t.b2_toiMaxTime,F),t.b2_toiTime+=F}var we=new j,Te=new j;function Ae(e,i,n,r,s){e.pointCount=0;var a=Q.MulXV(n,i.m_p,we),o=Q.MulXV(s,r.m_p,Te),h=j.DistanceSquaredVV(a,o),u=i.m_radius+r.m_radius;h>u*u||(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 Ce=new j,De=new j,Be=new j;function Ie(e,i,n,s,a){e.pointCount=0;for(var o=Q.MulXV(a,s.m_p,Ce),h=Q.MulTXV(n,o,De),u=0,l=-1e37,c=i.m_radius+s.m_radius,f=i.m_count,_=i.m_vertices,d=i.m_normals,p=0;pc)return;m>l&&(l=m,u=p)}var g=u,y=(g+1)%f,v=_[g],b=_[y];if(lc*c)return;e.pointCount=1,e.type=t.b2ManifoldType.e_faceA,j.SubVV(h,v,e.localNormal).SelfNormalize(),e.localPoint.Copy(v),e.points[0].localPoint.Copy(s.m_p),e.points[0].id.key=0}else if(x<=0){if(j.DistanceSquaredVV(h,b)>c*c)return;e.pointCount=1,e.type=t.b2ManifoldType.e_faceA,j.SubVV(h,b,e.localNormal).SelfNormalize(),e.localPoint.Copy(b),e.points[0].localPoint.Copy(s.m_p),e.points[0].id.key=0}else{var w=j.MidVV(v,b,Be);if(j.DotVV(j.SubVV(h,w,j.s_t1),d[g])>c)return;e.pointCount=1,e.type=t.b2ManifoldType.e_faceA,e.localNormal.Copy(d[g]).SelfNormalize(),e.localPoint.Copy(w),e.points[0].localPoint.Copy(s.m_p),e.points[0].id.key=0}}var Me=new j,Pe=new j,Ee=new j,Oe=new j;function ke(t,e,n,r,s){for(var a=t.m_vertices,o=t.m_normals,h=r.m_count,u=r.m_vertices,l=J.MulRV(e.q,o[n],Me),c=J.MulTRV(s.q,l,Pe),f=0,_=i,d=0;dl&&(l=f,u=c)}var _=ke(e,i,u,n,r),d=(u+s-1)%s,p=ke(e,i,d,n,r),m=(u+1)%s,g=ke(e,i,m,n,r),y=0,v=0,b=0;if(p>_&&p>g)b=-1,y=d,v=p;else{if(!(g>_))return t[0]=u,_;b=1,y=m,v=g}for(;(_=ke(e,i,u=-1===b?(y+s-1)%s:(y+1)%s,n,r))>v;)y=u,v=_;return t[0]=y,v}var Ne=new j;function Ve(e,n,r,s,a,o){for(var h=n.m_normals,u=a.m_count,l=a.m_vertices,c=a.m_normals,f=J.MulTRV(o.q,J.MulRV(r.q,h[s],j.s_t0),Ne),_=0,d=i,p=0;pa)){var u=We;u[0]=0;var l=Le(u,r,s,i,n);if(!(l>a)){var c,f,_,d,p=0,m=0;l>.98*h+.001?(c=r,f=i,_=s,d=n,p=u[0],e.type=t.b2ManifoldType.e_faceB,m=1):(c=i,f=r,_=n,d=s,p=o[0],e.type=t.b2ManifoldType.e_faceA,m=0);var g=ze;Ve(g,c,_,p,f,d);var y=c.m_count,v=c.m_vertices,b=p,S=(p+1)%y,x=v[b],w=v[S],T=j.SubVV(w,x,je);T.Normalize();var A=j.CrossVOne(T,qe),C=j.MidVV(x,w,Xe),D=J.MulRV(_.q,T,Ke),B=j.CrossVOne(D,Ye),I=Q.MulXV(_,x,Qe),M=Q.MulXV(_,w,Ze),P=j.DotVV(B,I),E=-j.DotVV(D,I)+a,O=j.DotVV(D,M)+a,k=Ue,R=Ge;if(!(Ut(k,g,j.NegV(D,Je),E,b)<2||Ut(R,k,D,O,S)<2)){e.localNormal.Copy(A),e.localPoint.Copy(C);for(var F=0,L=0;L<2;++L){var N=R[L];if(j.DotVV(B,N.v)-P<=a){var V=e.points[F];if(Q.MulTXV(d,N.v,V.localPoint),V.id.Copy(N.id),m){var z=V.id.cf;V.id.cf.indexA=z.indexB,V.id.cf.indexB=z.indexA,V.id.cf.typeA=z.typeB,V.id.cf.typeB=z.typeA}++F}}e.pointCount=F}}}}var ti,ei=new j,ii=new j,ni=new j,ri=new j,si=new j,ai=new j,oi=new j,hi=new Pt;function ui(e,i,n,r,s){e.pointCount=0;var a=Q.MulTXV(n,Q.MulXV(s,r.m_p,j.s_t0),ei),o=i.m_vertex1,h=i.m_vertex2,u=j.SubVV(h,o,ii),l=j.DotVV(u,j.SubVV(h,a,j.s_t0)),c=j.DotVV(u,j.SubVV(a,o,j.s_t0)),f=i.m_radius+r.m_radius,_=hi;if(_.cf.indexB=0,_.cf.typeB=t.b2ContactFeatureType.e_vertex,c<=0){var d=o,p=j.SubVV(a,d,ni);if(j.DotVV(p,p)>f*f)return;if(i.m_hasVertex0){var m=i.m_vertex0,g=o,y=j.SubVV(g,m,ri);if(j.DotVV(y,j.SubVV(g,a,j.s_t0))>0)return}return _.cf.indexA=0,_.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(_),void e.points[0].localPoint.Copy(r.m_p)}if(l<=0){var v=h,b=j.SubVV(a,v,ni);if(j.DotVV(b,b)>f*f)return;if(i.m_hasVertex3){var S=i.m_vertex3,x=h,w=j.SubVV(S,x,si);if(j.DotVV(w,j.SubVV(a,x,j.s_t0))>0)return}return _.cf.indexA=1,_.cf.typeA=t.b2ContactFeatureType.e_vertex,e.pointCount=1,e.type=t.b2ManifoldType.e_circles,e.localNormal.SetZero(),e.localPoint.Copy(v),e.points[0].id.Copy(_),void e.points[0].localPoint.Copy(r.m_p)}var T=j.DotVV(u,u),A=ai;A.x=1/T*(l*o.x+c*h.x),A.y=1/T*(l*o.y+c*h.y);var C=j.SubVV(a,A,ni);if(!(j.DotVV(C,C)>f*f)){var D=oi.Set(-u.y,u.x);j.DotVV(D,j.SubVV(a,o,j.s_t0))<0&&D.Set(-D.x,-D.y),D.Normalize(),_.cf.indexA=0,_.cf.typeA=t.b2ContactFeatureType.e_face,e.pointCount=1,e.type=t.b2ManifoldType.e_faceA,e.localNormal.Copy(D),e.localPoint.Copy(o),e.points[0].id.Copy(_),e.points[0].localPoint.Copy(r.m_p)}}!function(t){t[t.e_unknown=0]="e_unknown",t[t.e_edgeA=1]="e_edgeA",t[t.e_edgeB=2]="e_edgeB"}(ti||(ti={}));var li,ci=function(){this.type=ti.e_unknown,this.index=0,this.separation=0},fi=function(){this.vertices=[],this.normals=[],this.count=0};!function(t){t[t.e_isolated=0]="e_isolated",t[t.e_concave=1]="e_concave",t[t.e_convex=2]="e_convex"}(li||(li={}));var _i=function(){function e(){this.m_polygonB=new fi,this.m_xf=new Q,this.m_centroidB=new j,this.m_v0=new j,this.m_v1=new j,this.m_v2=new j,this.m_v3=new j,this.m_normal0=new j,this.m_normal1=new j,this.m_normal2=new j,this.m_normal=new j,this.m_type1=li.e_isolated,this.m_type2=li.e_isolated,this.m_lowerLimit=new j,this.m_upperLimit=new j,this.m_radius=0,this.m_front=!1}var n=e.prototype;return n.Collide=function(i,n,r,s,a){Q.MulTXX(r,a,this.m_xf),Q.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 o=n.m_hasVertex0,h=n.m_hasVertex3,u=j.SubVV(this.m_v2,this.m_v1,e.s_edge1);u.Normalize(),this.m_normal1.Set(u.y,-u.x);var l=j.DotVV(this.m_normal1,j.SubVV(this.m_centroidB,this.m_v1,j.s_t0)),c=0,f=0,_=!1,d=!1;if(o){var p=j.SubVV(this.m_v1,this.m_v0,e.s_edge0);p.Normalize(),this.m_normal0.Set(p.y,-p.x),_=j.CrossVV(p,u)>=0,c=j.DotVV(this.m_normal0,j.SubVV(this.m_centroidB,this.m_v0,j.s_t0))}if(h){var m=j.SubVV(this.m_v3,this.m_v2,e.s_edge2);m.Normalize(),this.m_normal2.Set(m.y,-m.x),d=j.CrossVV(u,m)>0,f=j.DotVV(this.m_normal2,j.SubVV(this.m_centroidB,this.m_v2,j.s_t0))}o&&h?_&&d?(this.m_front=c>=0||l>=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())):_?(this.m_front=c>=0||l>=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())):d?(this.m_front=f>=0||c>=0&&l>=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=c>=0&&l>=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())):o?_?(this.m_front=c>=0||l>=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=c>=0&&l>=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?d?(this.m_front=l>=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=l>=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=l>=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 g=0;gthis.m_radius)){var v=this.ComputePolygonSeparation(e.s_polygonAxis);if(!(v.type!==ti.e_unknown&&v.separation>this.m_radius)){var b;b=v.type===ti.e_unknown?y:v.separation>.98*y.separation+.001?v:y;var S=e.s_ie,x=e.s_rf;if(b.type===ti.e_edgeA){i.type=t.b2ManifoldType.e_faceA;for(var w=0,T=j.DotVV(this.m_normal,this.m_polygonB.normals[0]),A=1;Athis.m_radius)return i.type=ti.e_edgeB,i.index=r,i.separation=a,i;if(j.DotVV(s,n)>=0){if(j.DotVV(j.SubVV(s,this.m_upperLimit,j.s_t0),this.m_normal)<-.03490658503988889)continue}else if(j.DotVV(j.SubVV(s,this.m_lowerLimit,j.s_t0),this.m_normal)<-.03490658503988889)continue;a>i.separation&&(i.type=ti.e_edgeB,i.index=r,i.separation=a)}return i},e}();_i.s_edge1=new j,_i.s_edge0=new j,_i.s_edge2=new j,_i.s_ie=Ft.MakeArray(2),_i.s_rf=new function(){this.i1=0,this.i2=0,this.v1=new j,this.v2=new j,this.normal=new j,this.sideNormal1=new j,this.sideOffset1=0,this.sideNormal2=new j,this.sideOffset2=0},_i.s_clipPoints1=Ft.MakeArray(2),_i.s_clipPoints2=Ft.MakeArray(2),_i.s_edgeAxis=new ci,_i.s_polygonAxis=new ci,_i.s_n=new j,_i.s_perp=new j;var di=new _i;function pi(t,e,i,n,r){di.Collide(t,e,i,n,r)}var mi,gi=function(){this.mass=0,this.center=new j(0,0),this.I=0};(mi=t.b2ShapeType||(t.b2ShapeType={}))[mi.e_unknown=-1]="e_unknown",mi[mi.e_circleShape=0]="e_circleShape",mi[mi.e_edgeShape=1]="e_edgeShape",mi[mi.e_polygonShape=2]="e_polygonShape",mi[mi.e_chainShape=3]="e_chainShape",mi[mi.e_shapeTypeCount=4]="e_shapeTypeCount";var yi=function(){function e(e,i){this.m_type=t.b2ShapeType.e_unknown,this.m_radius=0,this.m_type=e,this.m_radius=i}var i=e.prototype;return i.Copy=function(t){return this.m_radius=t.m_radius,this},i.GetType=function(){return this.m_type},e}(),vi=function(e){function i(i){var n;return void 0===i&&(i=0),(n=e.call(this,t.b2ShapeType.e_circleShape,i)||this).m_p=new j,n}s(i,e);var n=i.prototype;return n.Set=function(t,e){return void 0===e&&(e=this.m_radius),this.m_p.Copy(t),this.m_radius=e,this},n.Clone=function(){return(new i).Copy(this)},n.Copy=function(t){return e.prototype.Copy.call(this,t),this.m_p.Copy(t.m_p),this},n.GetChildCount=function(){return 1},n.TestPoint=function(t,e){var n=Q.MulXV(t,this.m_p,i.TestPoint_s_center),r=j.SubVV(e,n,i.TestPoint_s_d);return j.DotVV(r,r)<=F(this.m_radius)},n.ComputeDistance=function(t,e,n){var r=Q.MulXV(t,this.m_p,i.ComputeDistance_s_center);return j.SubVV(e,r,n),n.Normalize()-this.m_radius},n.RayCast=function(t,e,n){var s=Q.MulXV(n,this.m_p,i.RayCast_s_position),a=j.SubVV(e.p1,s,i.RayCast_s_s),o=j.DotVV(a,a)-F(this.m_radius),h=j.SubVV(e.p2,e.p1,i.RayCast_s_r),u=j.DotVV(a,h),l=j.DotVV(h,h),c=u*u-l*o;if(c<0||lthis.m_radius)return n.Copy(s),o*this.m_radius*this.m_radius;var h=this.m_radius*this.m_radius,u=a*a,l=h*(H(a/this.m_radius)+o/2)+a*N(h-u),c=-2/3*V(h-u,1.5)/l;return n.x=s.x+t.x*c,n.y=s.y+t.y*c,l},n.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}(yi);vi.TestPoint_s_center=new j,vi.TestPoint_s_d=new j,vi.ComputeDistance_s_center=new j,vi.RayCast_s_position=new j,vi.RayCast_s_s=new j,vi.RayCast_s_r=new j,vi.ComputeAABB_s_p=new j;var bi=function(e){function i(){var i;return(i=e.call(this,t.b2ShapeType.e_polygonShape,f)||this).m_centroid=new j(0,0),i.m_vertices=[],i.m_normals=[],i.m_count=0,i}s(i,e);var n=i.prototype;return n.Clone=function(){return(new i).Copy(this)},n.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=j.MakeArray(this.m_count),this.m_normals=j.MakeArray(this.m_count);for(var i=0;il||f===l&&r[c].yy.LengthSquared()&&(m=g)}else m=g;if(++d,p=m,m===u)break}this.m_count=d,this.m_vertices=j.MakeArray(this.m_count),this.m_normals=j.MakeArray(this.m_count);for(var S=0;S0)return!1;return!0},n.ComputeDistance=function(t,e,n){for(var r=Q.MulTXV(t,e,i.ComputeDistance_s_pLocal),s=-1e37,a=i.ComputeDistance_s_normalForMaxDistance.Copy(r),o=0;os&&(s=h,a.Copy(this.m_normals[o]))}if(s>0){for(var u=i.ComputeDistance_s_minDistance.Copy(a),l=s*s,c=0;c_&&(u.Copy(f),l=_)}return J.MulRV(t.q,u,n),n.Normalize(),Math.sqrt(l)}return J.MulRV(t.q,a,n),s},n.RayCast=function(t,e,n){for(var r=Q.MulTXV(n,e.p1,i.RayCast_s_p1),s=Q.MulTXV(n,e.p2,i.RayCast_s_p2),a=j.SubVV(s,r,i.RayCast_s_d),o=0,h=e.maxFraction,u=-1,l=0;l0&&c=0&&(t.fraction=o,J.MulRV(n.q,this.m_normals[u],t.normal),!0)},n.ComputeAABB=function(t,e){for(var n=Q.MulXV(e,this.m_vertices[0],t.lowerBound),r=t.upperBound.Copy(n),s=0;s0&&(_?c||(u=f-1,h++):c&&(l=f-1,h++)),c=_}switch(h){case 0:if(c){var d=i.ComputeSubmergedArea_s_md;return this.ComputeMass(d,1),Q.MulXV(n,d.center,r),d.mass}return 0;case 1:-1===u?u=this.m_count-1:l=this.m_count-1}for(var p,m=(u+1)%this.m_count,g=(l+1)%this.m_count,y=(0-o[u])/(o[m]-o[u]),v=(0-o[l])/(o[g]-o[l]),b=i.ComputeSubmergedArea_s_intoVec.Set(this.m_vertices[u].x*(1-y)+this.m_vertices[m].x*y,this.m_vertices[u].y*(1-y)+this.m_vertices[m].y*y),S=i.ComputeSubmergedArea_s_outoVec.Set(this.m_vertices[l].x*(1-v)+this.m_vertices[g].x*v,this.m_vertices[l].y*(1-v)+this.m_vertices[g].y*v),x=0,w=i.ComputeSubmergedArea_s_center.SetZero(),T=this.m_vertices[m],A=m;A!==g;){p=(A=(A+1)%this.m_count)===g?S:this.m_vertices[A];var C=.5*((T.x-b.x)*(p.y-b.y)-(T.y-b.y)*(p.x-b.x));x+=C,w.x+=C*(b.x+T.x+p.x)/3,w.y+=C*(b.y+T.y+p.y)/3,T=p}return w.SelfMul(1/x),Q.MulXV(n,w,r),x},n.Dump=function(t){t(" const shape: b2PolygonShape = new b2PolygonShape();\n"),t(" const vs: b2Vec2[] = [];\n");for(var e=0;e0){var u=j.DotVV(o,o);h>u?j.SubVV(e,s,a):a.SelfMulSub(h/u,o)}return n.Copy(a),n.Normalize()},n.RayCast=function(t,e,n){var r=Q.MulTXV(n,e.p1,i.RayCast_s_p1),s=Q.MulTXV(n,e.p2,i.RayCast_s_p2),a=j.SubVV(s,r,i.RayCast_s_d),o=this.m_vertex1,h=this.m_vertex2,u=j.SubVV(h,o,i.RayCast_s_e),l=t.normal.Set(u.y,-u.x).SelfNormalize(),c=j.DotVV(l,j.SubVV(o,r,j.s_t0)),f=j.DotVV(l,a);if(0===f)return!1;var _=c/f;if(_<0||e.maxFraction<_)return!1;var d=j.AddVMulSV(r,_,a,i.RayCast_s_q),p=j.SubVV(h,o,i.RayCast_s_r),m=j.DotVV(p,p);if(0===m)return!1;var g=j.DotVV(j.SubVV(d,o,j.s_t0),p)/m;return!(g<0||10&&t.normal.SelfNeg(),0))},n.ComputeAABB=function(t,e){var n=Q.MulXV(e,this.m_vertex1,i.ComputeAABB_s_v1),r=Q.MulXV(e,this.m_vertex2,i.ComputeAABB_s_v2);j.MinV(n,r,t.lowerBound),j.MaxV(n,r,t.upperBound);var s=this.m_radius;t.lowerBound.SelfSubXY(s,s),t.upperBound.SelfAddXY(s,s)},n.ComputeMass=function(t){t.mass=0,j.MidVV(this.m_vertex1,this.m_vertex2,t.center),t.I=0},n.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},n.ComputeSubmergedArea=function(t,e,i,n){return n.SetZero(),0},n.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}(yi);Si.ComputeDistance_s_v1=new j,Si.ComputeDistance_s_v2=new j,Si.ComputeDistance_s_d=new j,Si.ComputeDistance_s_s=new j,Si.RayCast_s_p1=new j,Si.RayCast_s_p2=new j,Si.RayCast_s_d=new j,Si.RayCast_s_e=new j,Si.RayCast_s_q=new j,Si.RayCast_s_r=new j,Si.ComputeAABB_s_v1=new j,Si.ComputeAABB_s_v2=new j;var xi=function(e){function i(){var i;return(i=e.call(this,t.b2ShapeType.e_chainShape,f)||this).m_vertices=[],i.m_count=0,i.m_prevVertex=new j,i.m_nextVertex=new j,i.m_hasPrevVertex=!1,i.m_hasNextVertex=!1,i}s(i,e);var n=i.prototype;return n.CreateLoop=function(){for(var t=arguments.length,e=new Array(t),i=0;i0?(t.m_vertex0.Copy(this.m_vertices[e-1]),t.m_hasVertex0=!0):(t.m_vertex0.Copy(this.m_prevVertex),t.m_hasVertex0=this.m_hasPrevVertex),e0&&this.ResetMassData(),this.m_world.m_newFixture=!0,e},n.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)},n.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.Reset(),--this.m_fixtureCount,this.ResetMassData()},n.SetTransformVec=function(t,e){this.SetTransformXY(t.x,t.y,e)},n.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),Q.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.SynchronizeProxies(this.m_xf,this.m_xf,j.ZERO);this.m_world.m_contactManager.FindNewContacts()},n.SetTransform=function(t){this.SetTransformVec(t.p,t.GetAngle())},n.GetTransform=function(){return this.m_xf},n.GetPosition=function(){return this.m_xf.p},n.SetPosition=function(t){this.SetTransformVec(t,this.GetAngle())},n.SetPositionXY=function(t,e){this.SetTransformXY(t,e,this.GetAngle())},n.GetAngle=function(){return this.m_sweep.a},n.SetAngle=function(t){this.SetTransformVec(this.GetPosition(),t)},n.GetWorldCenter=function(){return this.m_sweep.c},n.GetLocalCenter=function(){return this.m_sweep.localCenter},n.SetLinearVelocity=function(e){this.m_type!==t.b2BodyType.b2_staticBody&&(j.DotVV(e,e)>0&&this.SetAwake(!0),this.m_linearVelocity.Copy(e))},n.GetLinearVelocity=function(){return this.m_linearVelocity},n.SetAngularVelocity=function(e){this.m_type!==t.b2BodyType.b2_staticBody&&(e*e>0&&this.SetAwake(!0),this.m_angularVelocity=e)},n.GetAngularVelocity=function(){return this.m_angularVelocity},n.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},n.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))},n.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))},n.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))},n.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)))},n.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))},n.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))},n.GetMass=function(){return this.m_mass},n.GetInertia=function(){return this.m_I+this.m_mass*j.DotVV(this.m_sweep.localCenter,this.m_sweep.localCenter)},n.GetMassData=function(t){return t.mass=this.m_mass,t.I=this.m_I+this.m_mass*j.DotVV(this.m_sweep.localCenter,this.m_sweep.localCenter),t.center.Copy(this.m_sweep.localCenter),t},n.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*j.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),Q.MulXV(this.m_xf,this.m_sweep.localCenter,this.m_sweep.c),this.m_sweep.c0.Copy(this.m_sweep.c),j.AddVCrossSV(this.m_linearVelocity,this.m_angularVelocity,j.SubVV(this.m_sweep.c,n,j.s_t0),this.m_linearVelocity)}},n.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*j.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),Q.MulXV(this.m_xf,this.m_sweep.localCenter,this.m_sweep.c),this.m_sweep.c0.Copy(this.m_sweep.c),j.AddVCrossSV(this.m_linearVelocity,this.m_angularVelocity,j.SubVV(this.m_sweep.c,s,j.s_t0),this.m_linearVelocity)},n.GetWorldPoint=function(t,e){return Q.MulXV(this.m_xf,t,e)},n.GetWorldVector=function(t,e){return J.MulRV(this.m_xf.q,t,e)},n.GetLocalPoint=function(t,e){return Q.MulTXV(this.m_xf,t,e)},n.GetLocalVector=function(t,e){return J.MulTRV(this.m_xf.q,t,e)},n.GetLinearVelocityFromWorldPoint=function(t,e){return j.AddVCrossSV(this.m_linearVelocity,this.m_angularVelocity,j.SubVV(t,this.m_sweep.c,j.s_t0),e)},n.GetLinearVelocityFromLocalPoint=function(t,e){return this.GetLinearVelocityFromWorldPoint(this.GetWorldPoint(t,e),e)},n.GetLinearDamping=function(){return this.m_linearDamping},n.SetLinearDamping=function(t){this.m_linearDamping=t},n.GetAngularDamping=function(){return this.m_angularDamping},n.SetAngularDamping=function(t){this.m_angularDamping=t},n.GetGravityScale=function(){return this.m_gravityScale},n.SetGravityScale=function(t){this.m_gravityScale=t},n.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()}},n.GetType=function(){return this.m_type},n.SetBullet=function(t){this.m_bulletFlag=t},n.IsBullet=function(){return this.m_bulletFlag},n.SetSleepingAllowed=function(t){this.m_autoSleepFlag=t,t||this.SetAwake(!0)},n.IsSleepingAllowed=function(){return this.m_autoSleepFlag},n.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)},n.IsAwake=function(){return this.m_awakeFlag},n.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();else{for(var i=this.m_fixtureList;i;i=i.m_next)i.DestroyProxies();for(var n=this.m_contactList;n;){var r=n;n=n.next,this.m_world.m_contactManager.Destroy(r.contact)}this.m_contactList=null}},n.IsActive=function(){return this.m_activeFlag},n.SetFixedRotation=function(t){this.m_fixedRotationFlag!==t&&(this.m_fixedRotationFlag=t,this.m_angularVelocity=0,this.ResetMassData())},n.IsFixedRotation=function(){return this.m_fixedRotationFlag},n.GetFixtureList=function(){return this.m_fixtureList},n.GetJointList=function(){return this.m_jointList},n.GetContactList=function(){return this.m_contactList},n.GetNext=function(){return this.m_next},n.GetUserData=function(){return this.m_userData},n.SetUserData=function(t){this.m_userData=t},n.GetWorld=function(){return this.m_world},n.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")},n.SynchronizeFixtures=function(){var t=i.SynchronizeFixtures_s_xf1;t.q.SetAngle(this.m_sweep.a0),J.MulRV(t.q,this.m_sweep.localCenter,t.p),j.SubVV(this.m_sweep.c0,t.p,t.p);for(var e=j.SubVV(this.m_sweep.c,this.m_sweep.c0,i.SynchronizeFixtures_s_displacement),n=this.m_fixtureList;n;n=n.m_next)n.SynchronizeProxies(t,this.m_xf,e)},n.SynchronizeTransform=function(){this.m_xf.q.SetAngle(this.m_sweep.a),J.MulRV(this.m_xf.q,this.m_sweep.localCenter,this.m_xf.p),j.SubVV(this.m_sweep.c,this.m_xf.p,this.m_xf.p)},n.ShouldCollide=function(e){return(this.m_type!==t.b2BodyType.b2_staticBody||e.m_type!==t.b2BodyType.b2_staticBody)&&this.ShouldCollideConnected(e)},n.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},n.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),J.MulRV(this.m_xf.q,this.m_sweep.localCenter,this.m_xf.p),j.SubVV(this.m_sweep.c,this.m_xf.p,this.m_xf.p)},n.GetControllerList=function(){return this.m_controllerList},n.GetControllerCount=function(){return this.m_controllerCount},i}();Mi.CreateFixtureShapeDensity_s_def=new Ti,Mi.SetMassData_s_oldCenter=new j,Mi.ResetMassData_s_localCenter=new j,Mi.ResetMassData_s_oldCenter=new j,Mi.ResetMassData_s_massData=new gi,Mi.SynchronizeFixtures_s_xf1=new Q,Mi.SynchronizeFixtures_s_displacement=new j,(Ii=t.b2JointType||(t.b2JointType={}))[Ii.e_unknownJoint=0]="e_unknownJoint",Ii[Ii.e_revoluteJoint=1]="e_revoluteJoint",Ii[Ii.e_prismaticJoint=2]="e_prismaticJoint",Ii[Ii.e_distanceJoint=3]="e_distanceJoint",Ii[Ii.e_pulleyJoint=4]="e_pulleyJoint",Ii[Ii.e_mouseJoint=5]="e_mouseJoint",Ii[Ii.e_gearJoint=6]="e_gearJoint",Ii[Ii.e_wheelJoint=7]="e_wheelJoint",Ii[Ii.e_weldJoint=8]="e_weldJoint",Ii[Ii.e_frictionJoint=9]="e_frictionJoint",Ii[Ii.e_ropeJoint=10]="e_ropeJoint",Ii[Ii.e_motorJoint=11]="e_motorJoint",Ii[Ii.e_areaJoint=12]="e_areaJoint",(Bi=t.b2LimitState||(t.b2LimitState={}))[Bi.e_inactiveLimit=0]="e_inactiveLimit",Bi[Bi.e_atLowerLimit=1]="e_atLowerLimit",Bi[Bi.e_atUpperLimit=2]="e_atUpperLimit",Bi[Bi.e_equalLimits=3]="e_equalLimits";var Pi=function(){function t(){this.linear=new j,this.angularA=0,this.angularB=0}var e=t.prototype;return e.SetZero=function(){return this.linear.SetZero(),this.angularA=0,this.angularB=0,this},e.Set=function(t,e,i){return this.linear.Copy(t),this.angularA=e,this.angularB=i,this},t}(),Ei=function(){function t(t){this._other=null,this.prev=null,this.next=null,this.joint=t}return t.prototype.Reset=function(){this._other=null,this.prev=null,this.next=null},n(t,[{key:"other",get:function(){if(null===this._other)throw new Error;return this._other},set:function(t){if(null!==this._other)throw new Error;this._other=t}}]),t}(),Oi=function(e){this.type=t.b2JointType.e_unknownJoint,this.userData=null,this.collideConnected=!1,this.type=e},ki=function(){function i(i){this.m_type=t.b2JointType.e_unknownJoint,this.m_prev=null,this.m_next=null,this.m_edgeA=new Ei(this),this.m_edgeB=new Ei(this),this.m_index=0,this.m_islandFlag=!1,this.m_collideConnected=!1,this.m_userData=null,this.m_type=i.type,this.m_edgeA.other=i.bodyB,this.m_edgeB.other=i.bodyA,this.m_bodyA=i.bodyA,this.m_bodyB=i.bodyB,this.m_collideConnected=e(i.collideConnected,!1),this.m_userData=e(i.userData,null)}var n=i.prototype;return n.GetType=function(){return this.m_type},n.GetBodyA=function(){return this.m_bodyA},n.GetBodyB=function(){return this.m_bodyB},n.GetNext=function(){return this.m_next},n.GetUserData=function(){return this.m_userData},n.SetUserData=function(t){this.m_userData=t},n.IsActive=function(){return this.m_bodyA.IsActive()&&this.m_bodyB.IsActive()},n.GetCollideConnected=function(){return this.m_collideConnected},n.Dump=function(t){t("// Dump is not supported for this joint type.\n")},n.ShiftOrigin=function(){},i}(),Ri=function(e){function i(){var i;return(i=e.call(this,t.b2JointType.e_distanceJoint)||this).localAnchorA=new j,i.localAnchorB=new j,i.length=1,i.frequencyHz=0,i.dampingRatio=0,i}return s(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=j.DistanceVV(i,n),this.frequencyHz=0,this.dampingRatio=0},i}(Oi),Fi=function(t){function i(i){var n;return(n=t.call(this,i)||this).m_frequencyHz=0,n.m_dampingRatio=0,n.m_bias=0,n.m_localAnchorA=new j,n.m_localAnchorB=new j,n.m_gamma=0,n.m_impulse=0,n.m_length=0,n.m_indexA=0,n.m_indexB=0,n.m_u=new j,n.m_rA=new j,n.m_rB=new j,n.m_localCenterA=new j,n.m_localCenterB=new j,n.m_invMassA=0,n.m_invMassB=0,n.m_invIA=0,n.m_invIB=0,n.m_mass=0,n.m_qA=new J,n.m_qB=new J,n.m_lalcA=new j,n.m_lalcB=new j,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}s(i,t);var n=i.prototype;return n.GetAnchorA=function(t){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,t)},n.GetAnchorB=function(t){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,t)},n.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},n.GetReactionTorque=function(){return 0},n.GetLocalAnchorA=function(){return this.m_localAnchorA},n.GetLocalAnchorB=function(){return this.m_localAnchorB},n.SetLength=function(t){this.m_length=t},n.Length=function(){return this.m_length},n.SetFrequency=function(t){this.m_frequencyHz=t},n.GetFrequency=function(){return this.m_frequencyHz},n.SetDampingRatio=function(t){this.m_dampingRatio=t},n.GetDampingRatio=function(){return this.m_dampingRatio},n.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)},n.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,h=t.positions[this.m_indexB].a,u=t.velocities[this.m_indexB].v,c=t.velocities[this.m_indexB].w,f=this.m_qA.SetAngle(n),_=this.m_qB.SetAngle(h);j.SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA),J.MulRV(f,this.m_lalcA,this.m_rA),j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB),J.MulRV(_,this.m_lalcB,this.m_rB),this.m_u.x=a.x+this.m_rB.x-e.x-this.m_rA.x,this.m_u.y=a.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=j.CrossVV(this.m_rA,this.m_u),m=j.CrossVV(this.m_rB,this.m_u),g=this.m_invMassA+this.m_invIA*p*p+this.m_invMassB+this.m_invIB*m*m;if(this.m_mass=0!==g?1/g:0,this.m_frequencyHz>0){var y=d-this.m_length,v=2*o*this.m_frequencyHz,b=2*this.m_mass*this.m_dampingRatio*v,S=this.m_mass*v*v,x=t.step.dt;this.m_gamma=x*(b+x*S),this.m_gamma=0!==this.m_gamma?1/this.m_gamma:0,this.m_bias=y*x*S*this.m_gamma,g+=this.m_gamma,this.m_mass=0!==g?1/g:0}else this.m_gamma=0,this.m_bias=0;if(t.step.warmStarting){this.m_impulse*=t.step.dtRatio;var w=j.MulSV(this.m_impulse,this.m_u,i.InitVelocityConstraints_s_P);r.SelfMulSub(this.m_invMassA,w),s-=this.m_invIA*j.CrossVV(this.m_rA,w),u.SelfMulAdd(this.m_invMassB,w),c+=this.m_invIB*j.CrossVV(this.m_rB,w)}else this.m_impulse=0;t.velocities[this.m_indexA].w=s,t.velocities[this.m_indexB].w=c},n.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=j.AddVCrossSV(e,n,this.m_rA,i.SolveVelocityConstraints_s_vpA),o=j.AddVCrossSV(r,s,this.m_rB,i.SolveVelocityConstraints_s_vpB),h=j.DotVV(this.m_u,j.SubVV(o,a,j.s_t0)),u=-this.m_mass*(h+this.m_bias+this.m_gamma*this.m_impulse);this.m_impulse+=u;var l=j.MulSV(u,this.m_u,i.SolveVelocityConstraints_s_P);e.SelfMulSub(this.m_invMassA,l),n-=this.m_invIA*j.CrossVV(this.m_rA,l),r.SelfMulAdd(this.m_invMassB,l),s+=this.m_invIB*j.CrossVV(this.m_rB,l),t.velocities[this.m_indexA].w=n,t.velocities[this.m_indexB].w=s},n.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=J.MulRV(a,this.m_lalcA,this.m_rA),u=J.MulRV(o,this.m_lalcB,this.m_rB),c=this.m_u;c.x=r.x+u.x-e.x-h.x,c.y=r.y+u.y-e.y-h.y;var f=this.m_u.Normalize()-this.m_length;f=k(f,-.2,_);var d=-this.m_mass*f,p=j.MulSV(d,c,i.SolvePositionConstraints_s_P);return e.SelfMulSub(this.m_invMassA,p),n-=this.m_invIA*j.CrossVV(h,p),r.SelfMulAdd(this.m_invMassB,p),s+=this.m_invIB*j.CrossVV(u,p),t.positions[this.m_indexA].a=n,t.positions[this.m_indexB].a=s,P(f)F(_)&&v.SelfMul(_/N(b)),b>F(l)&&(d=!1),g.x+=v.x,g.y+=v.y}return d},i}(ki),Vi=function(e){function i(){var i;return(i=e.call(this,t.b2JointType.e_frictionJoint)||this).localAnchorA=new j,i.localAnchorB=new j,i.maxForce=0,i.maxTorque=0,i}return s(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}(Oi),zi=function(t){function i(i){var n;return(n=t.call(this,i)||this).m_localAnchorA=new j,n.m_localAnchorB=new j,n.m_linearImpulse=new j,n.m_angularImpulse=0,n.m_maxForce=0,n.m_maxTorque=0,n.m_indexA=0,n.m_indexB=0,n.m_rA=new j,n.m_rB=new j,n.m_localCenterA=new j,n.m_localCenterB=new j,n.m_invMassA=0,n.m_invMassB=0,n.m_invIA=0,n.m_invIB=0,n.m_linearMass=new Y,n.m_angularMass=0,n.m_qA=new J,n.m_qB=new J,n.m_lalcA=new j,n.m_lalcB=new j,n.m_K=new Y,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}s(i,t);var n=i.prototype;return n.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),h=this.m_qB.SetAngle(r);j.SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var u=J.MulRV(o,this.m_lalcA,this.m_rA);j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var l=J.MulRV(h,this.m_lalcB,this.m_rB),c=this.m_invMassA,f=this.m_invMassB,_=this.m_invIA,d=this.m_invIB,p=this.m_K;if(p.ex.x=c+f+_*u.y*u.y+d*l.y*l.y,p.ex.y=-_*u.x*u.y-d*l.x*l.y,p.ey.x=p.ex.y,p.ey.y=c+f+_*u.x*u.x+d*l.x*l.x,p.GetInverse(this.m_linearMass),this.m_angularMass=_+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(c,m),n-=_*(j.CrossVV(this.m_rA,m)+this.m_angularImpulse),s.SelfMulAdd(f,m),a+=d*(j.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},n.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,h=this.m_invIA,u=this.m_invIB,l=t.step.dt,c=s-n,f=-this.m_angularMass*c,_=this.m_angularImpulse,d=l*this.m_maxTorque;this.m_angularImpulse=k(this.m_angularImpulse+f,-d,d),n-=h*(f=this.m_angularImpulse-_),s+=u*f;var p=j.SubVV(j.AddVCrossSV(r,s,this.m_rB,j.s_t0),j.AddVCrossSV(e,n,this.m_rA,j.s_t1),i.SolveVelocityConstraints_s_Cdot_v2),m=Y.MulMV(this.m_linearMass,p,i.SolveVelocityConstraints_s_impulseV).SelfNeg(),g=i.SolveVelocityConstraints_s_oldImpulseV.Copy(this.m_linearImpulse);this.m_linearImpulse.SelfAdd(m);var y=l*this.m_maxForce;this.m_linearImpulse.LengthSquared()>y*y&&(this.m_linearImpulse.Normalize(),this.m_linearImpulse.SelfMul(y)),j.SubVV(this.m_linearImpulse,g,m),e.SelfMulSub(a,m),n-=h*j.CrossVV(this.m_rA,m),r.SelfMulAdd(o,m),s+=u*j.CrossVV(this.m_rB,m),t.velocities[this.m_indexA].w=n,t.velocities[this.m_indexB].w=s},n.SolvePositionConstraints=function(){return!0},n.GetAnchorA=function(t){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,t)},n.GetAnchorB=function(t){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,t)},n.GetReactionForce=function(t,e){return e.x=t*this.m_linearImpulse.x,e.y=t*this.m_linearImpulse.y,e},n.GetReactionTorque=function(t){return t*this.m_angularImpulse},n.GetLocalAnchorA=function(){return this.m_localAnchorA},n.GetLocalAnchorB=function(){return this.m_localAnchorB},n.SetMaxForce=function(t){this.m_maxForce=t},n.GetMaxForce=function(){return this.m_maxForce},n.SetMaxTorque=function(t){this.m_maxTorque=t},n.GetMaxTorque=function(){return this.m_maxTorque},n.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}(ki);zi.SolveVelocityConstraints_s_Cdot_v2=new j,zi.SolveVelocityConstraints_s_impulseV=new j,zi.SolveVelocityConstraints_s_oldImpulseV=new j;var Ui=function(e){function i(){var i;return(i=e.call(this,t.b2JointType.e_gearJoint)||this).ratio=1,i}return s(i,e),i}(Oi),Gi=function(i){function n(n){var r,s,a;(r=i.call(this,n)||this).m_typeA=t.b2JointType.e_unknownJoint,r.m_typeB=t.b2JointType.e_unknownJoint,r.m_localAnchorA=new j,r.m_localAnchorB=new j,r.m_localAnchorC=new j,r.m_localAnchorD=new j,r.m_localAxisC=new j,r.m_localAxisD=new j,r.m_referenceAngleA=0,r.m_referenceAngleB=0,r.m_constant=0,r.m_ratio=0,r.m_impulse=0,r.m_indexA=0,r.m_indexB=0,r.m_indexC=0,r.m_indexD=0,r.m_lcA=new j,r.m_lcB=new j,r.m_lcC=new j,r.m_lcD=new j,r.m_mA=0,r.m_mB=0,r.m_mC=0,r.m_mD=0,r.m_iA=0,r.m_iB=0,r.m_iC=0,r.m_iD=0,r.m_JvAC=new j,r.m_JvBD=new j,r.m_JwA=0,r.m_JwB=0,r.m_JwC=0,r.m_JwD=0,r.m_mass=0,r.m_qA=new J,r.m_qB=new J,r.m_qC=new J,r.m_qD=new J,r.m_lalcA=new j,r.m_lalcB=new j,r.m_lalcC=new j,r.m_lalcD=new j,r.m_joint1=n.joint1,r.m_joint2=n.joint2,r.m_typeA=r.m_joint1.GetType(),r.m_typeB=r.m_joint2.GetType(),r.m_bodyC=r.m_joint1.GetBodyA(),r.m_bodyA=r.m_joint1.GetBodyB();var o=r.m_bodyA.m_xf,h=r.m_bodyA.m_sweep.a,u=r.m_bodyC.m_xf,l=r.m_bodyC.m_sweep.a;if(r.m_typeA===t.b2JointType.e_revoluteJoint){var c=n.joint1;r.m_localAnchorC.Copy(c.m_localAnchorA),r.m_localAnchorA.Copy(c.m_localAnchorB),r.m_referenceAngleA=c.m_referenceAngle,r.m_localAxisC.SetZero(),s=h-l-r.m_referenceAngleA}else{var f=n.joint1;r.m_localAnchorC.Copy(f.m_localAnchorA),r.m_localAnchorA.Copy(f.m_localAnchorB),r.m_referenceAngleA=f.m_referenceAngle,r.m_localAxisC.Copy(f.m_localXAxisA);var _=r.m_localAnchorC,d=J.MulTRV(u.q,j.AddVV(J.MulRV(o.q,r.m_localAnchorA,j.s_t0),j.SubVV(o.p,u.p,j.s_t1),j.s_t0),j.s_t0);s=j.DotVV(j.SubVV(d,_,j.s_t0),r.m_localAxisC)}r.m_bodyD=r.m_joint2.GetBodyA(),r.m_bodyB=r.m_joint2.GetBodyB();var p=r.m_bodyB.m_xf,m=r.m_bodyB.m_sweep.a,g=r.m_bodyD.m_xf,y=r.m_bodyD.m_sweep.a;if(r.m_typeB===t.b2JointType.e_revoluteJoint){var v=n.joint2;r.m_localAnchorD.Copy(v.m_localAnchorA),r.m_localAnchorB.Copy(v.m_localAnchorB),r.m_referenceAngleB=v.m_referenceAngle,r.m_localAxisD.SetZero(),a=m-y-r.m_referenceAngleB}else{var b=n.joint2;r.m_localAnchorD.Copy(b.m_localAnchorA),r.m_localAnchorB.Copy(b.m_localAnchorB),r.m_referenceAngleB=b.m_referenceAngle,r.m_localAxisD.Copy(b.m_localXAxisA);var S=r.m_localAnchorD,x=J.MulTRV(g.q,j.AddVV(J.MulRV(p.q,r.m_localAnchorB,j.s_t0),j.SubVV(p.p,g.p,j.s_t1),j.s_t0),j.s_t0);a=j.DotVV(j.SubVV(x,S,j.s_t0),r.m_localAxisD)}return r.m_ratio=e(n.ratio,1),r.m_constant=s+r.m_ratio*a,r.m_impulse=0,r}s(n,i);var r=n.prototype;return r.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,h=e.velocities[this.m_indexB].w,u=e.positions[this.m_indexC].a,l=e.velocities[this.m_indexC].v,c=e.velocities[this.m_indexC].w,f=e.positions[this.m_indexD].a,_=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),g=this.m_qC.SetAngle(u),y=this.m_qD.SetAngle(f);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 v=J.MulRV(g,this.m_localAxisC,n.InitVelocityConstraints_s_u);j.SubVV(this.m_localAnchorC,this.m_lcC,this.m_lalcC);var b=J.MulRV(g,this.m_lalcC,n.InitVelocityConstraints_s_rC);j.SubVV(this.m_localAnchorA,this.m_lcA,this.m_lalcA);var S=J.MulRV(p,this.m_lalcA,n.InitVelocityConstraints_s_rA);this.m_JvAC.Copy(v),this.m_JwC=j.CrossVV(b,v),this.m_JwA=j.CrossVV(S,v),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{var x=J.MulRV(y,this.m_localAxisD,n.InitVelocityConstraints_s_u);j.SubVV(this.m_localAnchorD,this.m_lcD,this.m_lalcD);var w=J.MulRV(y,this.m_lalcD,n.InitVelocityConstraints_s_rD);j.SubVV(this.m_localAnchorB,this.m_lcB,this.m_lalcB);var T=J.MulRV(m,this.m_lalcB,n.InitVelocityConstraints_s_rB);j.MulSV(this.m_ratio,x,this.m_JvBD),this.m_JwD=this.m_ratio*j.CrossVV(w,x),this.m_JwB=this.m_ratio*j.CrossVV(T,x),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),h+=this.m_iB*this.m_impulse*this.m_JwB,l.SelfMulSub(this.m_mC*this.m_impulse,this.m_JvAC),c-=this.m_iC*this.m_impulse*this.m_JwC,_.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=h,e.velocities[this.m_indexC].w=c,e.velocities[this.m_indexD].w=d},r.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,h=t.velocities[this.m_indexD].w,u=j.DotVV(this.m_JvAC,j.SubVV(e,s,j.s_t0))+j.DotVV(this.m_JvBD,j.SubVV(n,o,j.s_t0));u+=this.m_JwA*i-this.m_JwC*a+(this.m_JwB*r-this.m_JwD*h);var l=-this.m_mass*u;this.m_impulse+=l,e.SelfMulAdd(this.m_mA*l,this.m_JvAC),i+=this.m_iA*l*this.m_JwA,n.SelfMulAdd(this.m_mB*l,this.m_JvBD),r+=this.m_iB*l*this.m_JwB,s.SelfMulSub(this.m_mC*l,this.m_JvAC),a-=this.m_iC*l*this.m_JwC,o.SelfMulSub(this.m_mD*l,this.m_JvBD),h-=this.m_iD*l*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=h},r.SolvePositionConstraints=function(e){var i,r,s,a,o,h,u=e.positions[this.m_indexA].c,l=e.positions[this.m_indexA].a,c=e.positions[this.m_indexB].c,f=e.positions[this.m_indexB].a,_=e.positions[this.m_indexC].c,d=e.positions[this.m_indexC].a,p=e.positions[this.m_indexD].c,m=e.positions[this.m_indexD].a,g=this.m_qA.SetAngle(l),y=this.m_qB.SetAngle(f),v=this.m_qC.SetAngle(d),b=this.m_qD.SetAngle(m),S=this.m_JvAC,x=this.m_JvBD,w=0;if(this.m_typeA===t.b2JointType.e_revoluteJoint)S.SetZero(),s=1,o=1,w+=this.m_iA+this.m_iC,i=l-d-this.m_referenceAngleA;else{var T=J.MulRV(v,this.m_localAxisC,n.SolvePositionConstraints_s_u),A=J.MulRV(v,this.m_lalcC,n.SolvePositionConstraints_s_rC),C=J.MulRV(g,this.m_lalcA,n.SolvePositionConstraints_s_rA);S.Copy(T),o=j.CrossVV(A,T),s=j.CrossVV(C,T),w+=this.m_mC+this.m_mA+this.m_iC*o*o+this.m_iA*s*s;var D=this.m_lalcC,B=J.MulTRV(v,j.AddVV(C,j.SubVV(u,_,j.s_t0),j.s_t0),j.s_t0);i=j.DotVV(j.SubVV(B,D,j.s_t0),this.m_localAxisC)}if(this.m_typeB===t.b2JointType.e_revoluteJoint)x.SetZero(),a=this.m_ratio,h=this.m_ratio,w+=this.m_ratio*this.m_ratio*(this.m_iB+this.m_iD),r=f-m-this.m_referenceAngleB;else{var I=J.MulRV(b,this.m_localAxisD,n.SolvePositionConstraints_s_u),M=J.MulRV(b,this.m_lalcD,n.SolvePositionConstraints_s_rD),P=J.MulRV(y,this.m_lalcB,n.SolvePositionConstraints_s_rB);j.MulSV(this.m_ratio,I,x),h=this.m_ratio*j.CrossVV(M,I),a=this.m_ratio*j.CrossVV(P,I),w+=this.m_ratio*this.m_ratio*(this.m_mD+this.m_mB)+this.m_iD*h*h+this.m_iB*a*a;var E=this.m_lalcD,O=J.MulTRV(b,j.AddVV(P,j.SubVV(c,p,j.s_t0),j.s_t0),j.s_t0);r=j.DotVV(j.SubVV(O,E,j.s_t0),this.m_localAxisD)}var k=i+this.m_ratio*r-this.m_constant,R=0;return w>0&&(R=-k/w),u.SelfMulAdd(this.m_mA*R,S),l+=this.m_iA*R*s,c.SelfMulAdd(this.m_mB*R,x),f+=this.m_iB*R*a,_.SelfMulSub(this.m_mC*R,S),d-=this.m_iC*R*o,p.SelfMulSub(this.m_mD*R,x),m-=this.m_iD*R*h,e.positions[this.m_indexA].a=l,e.positions[this.m_indexB].a=f,e.positions[this.m_indexC].a=d,e.positions[this.m_indexD].a=m,!0},r.GetAnchorA=function(t){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,t)},r.GetAnchorB=function(t){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,t)},r.GetReactionForce=function(t,e){return j.MulSV(t*this.m_impulse,this.m_JvAC,e)},r.GetReactionTorque=function(t){return t*this.m_impulse*this.m_JwA},r.GetJoint1=function(){return this.m_joint1},r.GetJoint2=function(){return this.m_joint2},r.GetRatio=function(){return this.m_ratio},r.SetRatio=function(t){this.m_ratio=t},r.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}(ki);Gi.InitVelocityConstraints_s_u=new j,Gi.InitVelocityConstraints_s_rA=new j,Gi.InitVelocityConstraints_s_rB=new j,Gi.InitVelocityConstraints_s_rC=new j,Gi.InitVelocityConstraints_s_rD=new j,Gi.SolvePositionConstraints_s_u=new j,Gi.SolvePositionConstraints_s_rA=new j,Gi.SolvePositionConstraints_s_rB=new j,Gi.SolvePositionConstraints_s_rC=new j,Gi.SolvePositionConstraints_s_rD=new j;var Hi=function(e){function i(){var i;return(i=e.call(this,t.b2JointType.e_motorJoint)||this).linearOffset=new j(0,0),i.angularOffset=0,i.maxForce=1,i.maxTorque=1,i.correctionFactor=.3,i}return s(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}(Oi),Wi=function(t){function i(i){var n;return(n=t.call(this,i)||this).m_linearOffset=new j,n.m_angularOffset=0,n.m_linearImpulse=new j,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 j,n.m_rB=new j,n.m_localCenterA=new j,n.m_localCenterB=new j,n.m_linearError=new j,n.m_angularError=0,n.m_invMassA=0,n.m_invMassB=0,n.m_invIA=0,n.m_invIB=0,n.m_linearMass=new Y,n.m_angularMass=0,n.m_qA=new J,n.m_qB=new J,n.m_K=new Y,n.m_linearOffset.Copy(e(i.linearOffset,j.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}s(i,t);var n=i.prototype;return n.GetAnchorA=function(t){var e=this.m_bodyA.GetPosition();return t.x=e.x,t.y=e.y,t},n.GetAnchorB=function(t){var e=this.m_bodyB.GetPosition();return t.x=e.x,t.y=e.y,t},n.GetReactionForce=function(t,e){return j.MulSV(t,this.m_linearImpulse,e)},n.GetReactionTorque=function(t){return t*this.m_angularImpulse},n.SetLinearOffset=function(t){j.IsEqualToV(t,this.m_linearOffset)||(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_linearOffset.Copy(t))},n.GetLinearOffset=function(){return this.m_linearOffset},n.SetAngularOffset=function(t){t!==this.m_angularOffset&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_angularOffset=t)},n.GetAngularOffset=function(){return this.m_angularOffset},n.SetMaxForce=function(t){this.m_maxForce=t},n.GetMaxForce=function(){return this.m_maxForce},n.SetMaxTorque=function(t){this.m_maxTorque=t},n.GetMaxTorque=function(){return this.m_maxTorque},n.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,h=t.velocities[this.m_indexB].w,u=this.m_qA.SetAngle(i),l=this.m_qB.SetAngle(a),c=J.MulRV(u,j.SubVV(this.m_linearOffset,this.m_localCenterA,j.s_t0),this.m_rA),f=J.MulRV(l,j.NegV(this.m_localCenterB,j.s_t0),this.m_rB),_=this.m_invMassA,d=this.m_invMassB,p=this.m_invIA,m=this.m_invIB,g=this.m_K;if(g.ex.x=_+d+p*c.y*c.y+m*f.y*f.y,g.ex.y=-p*c.x*c.y-m*f.x*f.y,g.ey.x=g.ex.y,g.ey.y=_+d+p*c.x*c.x+m*f.x*f.x,g.GetInverse(this.m_linearMass),this.m_angularMass=p+m,this.m_angularMass>0&&(this.m_angularMass=1/this.m_angularMass),j.SubVV(j.AddVV(s,f,j.s_t0),j.AddVV(e,c,j.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 y=this.m_linearImpulse;n.SelfMulSub(_,y),r-=p*(j.CrossVV(c,y)+this.m_angularImpulse),o.SelfMulAdd(d,y),h+=m*(j.CrossVV(f,y)+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=h},n.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,h=this.m_invIA,u=this.m_invIB,l=t.step.dt,c=t.step.inv_dt,f=s-n+c*this.m_correctionFactor*this.m_angularError,_=-this.m_angularMass*f,d=this.m_angularImpulse,p=l*this.m_maxTorque;this.m_angularImpulse=k(this.m_angularImpulse+_,-p,p),n-=h*(_=this.m_angularImpulse-d),s+=u*_;var m=this.m_rA,g=this.m_rB,y=j.AddVV(j.SubVV(j.AddVV(r,j.CrossSV(s,g,j.s_t0),j.s_t0),j.AddVV(e,j.CrossSV(n,m,j.s_t1),j.s_t1),j.s_t2),j.MulSV(c*this.m_correctionFactor,this.m_linearError,j.s_t3),i.SolveVelocityConstraints_s_Cdot_v2),v=Y.MulMV(this.m_linearMass,y,i.SolveVelocityConstraints_s_impulse_v2).SelfNeg(),b=i.SolveVelocityConstraints_s_oldImpulse_v2.Copy(this.m_linearImpulse);this.m_linearImpulse.SelfAdd(v);var S=l*this.m_maxForce;this.m_linearImpulse.LengthSquared()>S*S&&(this.m_linearImpulse.Normalize(),this.m_linearImpulse.SelfMul(S)),j.SubVV(this.m_linearImpulse,b,v),e.SelfMulSub(a,v),n-=h*j.CrossVV(m,v),r.SelfMulAdd(o,v),s+=u*j.CrossVV(g,v),t.velocities[this.m_indexA].w=n,t.velocities[this.m_indexB].w=s},n.SolvePositionConstraints=function(){return!0},n.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}(ki);Wi.SolveVelocityConstraints_s_Cdot_v2=new j,Wi.SolveVelocityConstraints_s_impulse_v2=new j,Wi.SolveVelocityConstraints_s_oldImpulse_v2=new j;var ji=function(e){function i(){var i;return(i=e.call(this,t.b2JointType.e_mouseJoint)||this).target=new j,i.maxForce=0,i.frequencyHz=5,i.dampingRatio=.7,i}return s(i,e),i}(Oi),qi=function(t){function i(i){var n;return(n=t.call(this,i)||this).m_localAnchorB=new j,n.m_targetA=new j,n.m_frequencyHz=0,n.m_dampingRatio=0,n.m_beta=0,n.m_impulse=new j,n.m_maxForce=0,n.m_gamma=0,n.m_indexA=0,n.m_indexB=0,n.m_rB=new j,n.m_localCenterB=new j,n.m_invMassB=0,n.m_invIB=0,n.m_mass=new Y,n.m_C=new j,n.m_qB=new J,n.m_lalcB=new j,n.m_K=new Y,n.m_targetA.Copy(e(i.target,j.ZERO)),Q.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}s(i,t);var n=i.prototype;return n.SetTarget=function(t){this.m_bodyB.IsAwake()||this.m_bodyB.SetAwake(!0),this.m_targetA.Copy(t)},n.GetTarget=function(){return this.m_targetA},n.SetMaxForce=function(t){this.m_maxForce=t},n.GetMaxForce=function(){return this.m_maxForce},n.SetFrequency=function(t){this.m_frequencyHz=t},n.GetFrequency=function(){return this.m_frequencyHz},n.SetDampingRatio=function(t){this.m_dampingRatio=t},n.GetDampingRatio=function(){return this.m_dampingRatio},n.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,s=this.m_qB.SetAngle(i),a=this.m_bodyB.GetMass(),h=2*o*this.m_frequencyHz,u=2*a*this.m_dampingRatio*h,l=a*h*h,c=t.step.dt;this.m_gamma=c*(u+c*l),0!==this.m_gamma&&(this.m_gamma=1/this.m_gamma),this.m_beta=c*l*this.m_gamma,j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB),J.MulRV(s,this.m_lalcB,this.m_rB);var f=this.m_K;f.ex.x=this.m_invMassB+this.m_invIB*this.m_rB.y*this.m_rB.y+this.m_gamma,f.ex.y=-this.m_invIB*this.m_rB.x*this.m_rB.y,f.ey.x=f.ex.y,f.ey.y=this.m_invMassB+this.m_invIB*this.m_rB.x*this.m_rB.x+this.m_gamma,f.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*j.CrossVV(this.m_rB,this.m_impulse)):this.m_impulse.SetZero(),t.velocities[this.m_indexB].w=r},n.SolveVelocityConstraints=function(t){var e=t.velocities[this.m_indexB].v,n=t.velocities[this.m_indexB].w,r=j.AddVCrossSV(e,n,this.m_rB,i.SolveVelocityConstraints_s_Cdot),s=Y.MulMV(this.m_mass,j.AddVV(r,j.AddVV(this.m_C,j.MulSV(this.m_gamma,this.m_impulse,j.s_t0),j.s_t0),j.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()),j.SubVV(this.m_impulse,a,s),e.SelfMulAdd(this.m_invMassB,s),n+=this.m_invIB*j.CrossVV(this.m_rB,s),t.velocities[this.m_indexB].w=n},n.SolvePositionConstraints=function(){return!0},n.GetAnchorA=function(t){return t.x=this.m_targetA.x,t.y=this.m_targetA.y,t},n.GetAnchorB=function(t){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,t)},n.GetReactionForce=function(t,e){return j.MulSV(t,this.m_impulse,e)},n.GetReactionTorque=function(){return 0},n.Dump=function(t){t("Mouse joint dumping is not supported.\n")},n.ShiftOrigin=function(t){this.m_targetA.SelfSub(t)},i}(ki);qi.SolveVelocityConstraints_s_Cdot=new j,qi.SolveVelocityConstraints_s_impulse=new j,qi.SolveVelocityConstraints_s_oldImpulse=new j;var Xi=function(e){function i(){var i;return(i=e.call(this,t.b2JointType.e_prismaticJoint)||this).localAnchorA=new j,i.localAnchorB=new j,i.localAxisA=new j(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 s(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}(Oi),Yi=function(i){function n(n){var r;return(r=i.call(this,n)||this).m_localAnchorA=new j,r.m_localAnchorB=new j,r.m_localXAxisA=new j,r.m_localYAxisA=new j,r.m_referenceAngle=0,r.m_impulse=new X(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 j,r.m_localCenterB=new j,r.m_invMassA=0,r.m_invMassB=0,r.m_invIA=0,r.m_invIB=0,r.m_axis=new j(0,0),r.m_perp=new j(0,0),r.m_s1=0,r.m_s2=0,r.m_a1=0,r.m_a2=0,r.m_K=new K,r.m_K3=new K,r.m_K2=new Y,r.m_motorMass=0,r.m_qA=new J,r.m_qB=new J,r.m_lalcA=new j,r.m_lalcB=new j,r.m_rA=new j,r.m_rB=new j,r.m_localAnchorA.Copy(e(n.localAnchorA,j.ZERO)),r.m_localAnchorB.Copy(e(n.localAnchorB,j.ZERO)),r.m_localXAxisA.Copy(e(n.localAxisA,new j(1,0))).SelfNormalize(),j.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}s(n,i);var r=n.prototype;return r.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,u=e.velocities[this.m_indexB].v,l=e.velocities[this.m_indexB].w,c=this.m_qA.SetAngle(r),f=this.m_qB.SetAngle(h);j.SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var _=J.MulRV(c,this.m_lalcA,this.m_rA);j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var d=J.MulRV(f,this.m_lalcB,this.m_rB),p=j.AddVV(j.SubVV(o,i,j.s_t0),j.SubVV(d,_,j.s_t1),n.InitVelocityConstraints_s_d),m=this.m_invMassA,g=this.m_invMassB,y=this.m_invIA,v=this.m_invIB;if(J.MulRV(c,this.m_localXAxisA,this.m_axis),this.m_a1=j.CrossVV(j.AddVV(p,_,j.s_t0),this.m_axis),this.m_a2=j.CrossVV(d,this.m_axis),this.m_motorMass=m+g+y*this.m_a1*this.m_a1+v*this.m_a2*this.m_a2,this.m_motorMass>0&&(this.m_motorMass=1/this.m_motorMass),J.MulRV(c,this.m_localYAxisA,this.m_perp),this.m_s1=j.CrossVV(j.AddVV(p,_,j.s_t0),this.m_perp),this.m_s2=j.CrossVV(d,this.m_perp),this.m_K.ex.x=m+g+y*this.m_s1*this.m_s1+v*this.m_s2*this.m_s2,this.m_K.ex.y=y*this.m_s1+v*this.m_s2,this.m_K.ex.z=y*this.m_s1*this.m_a1+v*this.m_s2*this.m_a2,this.m_K.ey.x=this.m_K.ex.y,this.m_K.ey.y=y+v,0===this.m_K.ey.y&&(this.m_K.ey.y=1),this.m_K.ey.z=y*this.m_a1+v*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=m+g+y*this.m_a1*this.m_a1+v*this.m_a2*this.m_a2,this.m_enableLimit){var b=j.DotVV(this.m_axis,p);P(this.m_upperTranslation-this.m_lowerTranslation)<.016?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 S=j.AddVV(j.MulSV(this.m_impulse.x,this.m_perp,j.s_t0),j.MulSV(this.m_motorImpulse+this.m_impulse.z,this.m_axis,j.s_t1),n.InitVelocityConstraints_s_P),x=this.m_impulse.x*this.m_s1+this.m_impulse.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_a1,w=this.m_impulse.x*this.m_s2+this.m_impulse.y+(this.m_motorImpulse+this.m_impulse.z)*this.m_a2;s.SelfMulSub(m,S),a-=y*x,u.SelfMulAdd(g,S),l+=v*w}else this.m_impulse.SetZero(),this.m_motorImpulse=0;e.velocities[this.m_indexA].w=a,e.velocities[this.m_indexB].w=l},r.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,h=this.m_invMassB,u=this.m_invIA,l=this.m_invIB;if(this.m_enableMotor&&this.m_limitState!==t.b2LimitState.e_equalLimits){var c=j.DotVV(this.m_axis,j.SubVV(s,i,j.s_t0))+this.m_a2*a-this.m_a1*r,f=this.m_motorMass*(this.m_motorSpeed-c),_=this.m_motorImpulse,d=e.step.dt*this.m_maxMotorForce;this.m_motorImpulse=k(this.m_motorImpulse+f,-d,d),f=this.m_motorImpulse-_;var p=j.MulSV(f,this.m_axis,n.SolveVelocityConstraints_s_P),m=f*this.m_a1,g=f*this.m_a2;i.SelfMulSub(o,p),r-=u*m,s.SelfMulAdd(h,p),a+=l*g}var y=j.DotVV(this.m_perp,j.SubVV(s,i,j.s_t0))+this.m_s2*a-this.m_s1*r,v=a-r;if(this.m_enableLimit&&this.m_limitState!==t.b2LimitState.e_inactiveLimit){var b=j.DotVV(this.m_axis,j.SubVV(s,i,j.s_t0))+this.m_a2*a-this.m_a1*r,S=n.SolveVelocityConstraints_s_f1.Copy(this.m_impulse),x=this.m_K.Solve33(-y,-v,-b,n.SolveVelocityConstraints_s_df3);this.m_impulse.SelfAdd(x),this.m_limitState===t.b2LimitState.e_atLowerLimit?this.m_impulse.z=O(this.m_impulse.z,0):this.m_limitState===t.b2LimitState.e_atUpperLimit&&(this.m_impulse.z=E(this.m_impulse.z,0));var w=-y-(this.m_impulse.z-S.z)*this.m_K.ez.x,T=-v-(this.m_impulse.z-S.z)*this.m_K.ez.y,A=this.m_K.Solve22(w,T,n.SolveVelocityConstraints_s_f2r);A.x+=S.x,A.y+=S.y,this.m_impulse.x=A.x,this.m_impulse.y=A.y,x.x=this.m_impulse.x-S.x,x.y=this.m_impulse.y-S.y,x.z=this.m_impulse.z-S.z;var C=j.AddVV(j.MulSV(x.x,this.m_perp,j.s_t0),j.MulSV(x.z,this.m_axis,j.s_t1),n.SolveVelocityConstraints_s_P),D=x.x*this.m_s1+x.y+x.z*this.m_a1,B=x.x*this.m_s2+x.y+x.z*this.m_a2;i.SelfMulSub(o,C),r-=u*D,s.SelfMulAdd(h,C),a+=l*B}else{var I=this.m_K.Solve22(-y,-v,n.SolveVelocityConstraints_s_df2);this.m_impulse.x+=I.x,this.m_impulse.y+=I.y;var M=j.MulSV(I.x,this.m_perp,n.SolveVelocityConstraints_s_P),P=I.x*this.m_s1+I.y,R=I.x*this.m_s2+I.y;i.SelfMulSub(o,M),r-=u*P,s.SelfMulAdd(h,M),a+=l*R}e.velocities[this.m_indexA].w=r,e.velocities[this.m_indexB].w=a},r.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),h=this.m_invMassA,u=this.m_invMassB,f=this.m_invIA,d=this.m_invIB,p=J.MulRV(a,this.m_lalcA,this.m_rA),m=J.MulRV(o,this.m_lalcB,this.m_rB),g=j.SubVV(j.AddVV(r,m,j.s_t0),j.AddVV(e,p,j.s_t1),n.SolvePositionConstraints_s_d),y=J.MulRV(a,this.m_localXAxisA,this.m_axis),v=j.CrossVV(j.AddVV(g,p,j.s_t0),y),b=j.CrossVV(m,y),S=J.MulRV(a,this.m_localYAxisA,this.m_perp),x=j.CrossVV(j.AddVV(g,p,j.s_t0),S),w=j.CrossVV(m,S),T=n.SolvePositionConstraints_s_impulse,A=j.DotVV(S,g),C=s-i-this.m_referenceAngle,D=P(A),B=P(C),I=!1,M=0;if(this.m_enableLimit){var E=j.DotVV(y,g);P(this.m_upperTranslation-this.m_lowerTranslation)<.016?(M=k(E,-.2,_),D=O(D,P(E)),I=!0):E<=this.m_lowerTranslation?(M=k(E-this.m_lowerTranslation+l,-.2,0),D=O(D,this.m_lowerTranslation-E),I=!0):E>=this.m_upperTranslation&&(M=k(E-this.m_upperTranslation-l,0,_),D=O(D,E-this.m_upperTranslation),I=!0)}if(I){var R=h+u+f*x*x+d*w*w,F=f*x+d*w,L=f*x*v+d*w*b,N=f+d;0===N&&(N=1);var V=f*v+d*b,z=h+u+f*v*v+d*b*b,U=this.m_K3;U.ex.SetXYZ(R,F,L),U.ey.SetXYZ(F,N,V),U.ez.SetXYZ(L,V,z),T=U.Solve33(-A,-C,-M,T)}else{var G=h+u+f*x*x+d*w*w,H=f*x+d*w,W=f+d;0===W&&(W=1);var q=this.m_K2;q.ex.Set(G,H),q.ey.Set(H,W);var X=q.Solve(-A,-C,n.SolvePositionConstraints_s_impulse1);T.x=X.x,T.y=X.y,T.z=0}var Y=j.AddVV(j.MulSV(T.x,S,j.s_t0),j.MulSV(T.z,y,j.s_t1),n.SolvePositionConstraints_s_P),K=T.x*x+T.y+T.z*v,Q=T.x*w+T.y+T.z*b;return e.SelfMulSub(h,Y),i-=f*K,r.SelfMulAdd(u,Y),s+=d*Q,t.positions[this.m_indexA].a=i,t.positions[this.m_indexB].a=s,D<=l&&B<=c},r.GetAnchorA=function(t){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,t)},r.GetAnchorB=function(t){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,t)},r.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},r.GetReactionTorque=function(t){return t*this.m_impulse.y},r.GetLocalAnchorA=function(){return this.m_localAnchorA},r.GetLocalAnchorB=function(){return this.m_localAnchorB},r.GetLocalAxisA=function(){return this.m_localXAxisA},r.GetReferenceAngle=function(){return this.m_referenceAngle},r.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=j.SubVV(e,t,n.GetJointTranslation_s_d),r=this.m_bodyA.GetWorldVector(this.m_localXAxisA,n.GetJointTranslation_s_axis);return j.DotVV(i,r)},r.GetJointSpeed=function(){var t=this.m_bodyA,e=this.m_bodyB;j.SubVV(this.m_localAnchorA,t.m_sweep.localCenter,this.m_lalcA);var i=J.MulRV(t.m_xf.q,this.m_lalcA,this.m_rA);j.SubVV(this.m_localAnchorB,e.m_sweep.localCenter,this.m_lalcB);var n=J.MulRV(e.m_xf.q,this.m_lalcB,this.m_rB),r=j.AddVV(t.m_sweep.c,i,j.s_t0),s=j.AddVV(e.m_sweep.c,n,j.s_t1),a=j.SubVV(s,r,j.s_t2),o=t.GetWorldVector(this.m_localXAxisA,this.m_axis),h=t.m_linearVelocity,u=e.m_linearVelocity,l=t.m_angularVelocity,c=e.m_angularVelocity;return j.DotVV(a,j.CrossSV(l,o,j.s_t0))+j.DotVV(o,j.SubVV(j.AddVCrossSV(u,c,n,j.s_t0),j.AddVCrossSV(h,l,i,j.s_t1),j.s_t0))},r.IsLimitEnabled=function(){return this.m_enableLimit},r.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)},r.GetLowerLimit=function(){return this.m_lowerTranslation},r.GetUpperLimit=function(){return this.m_upperTranslation},r.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)},r.IsMotorEnabled=function(){return this.m_enableMotor},r.EnableMotor=function(t){t!==this.m_enableMotor&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_enableMotor=t)},r.SetMotorSpeed=function(t){t!==this.m_motorSpeed&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_motorSpeed=t)},r.GetMotorSpeed=function(){return this.m_motorSpeed},r.SetMaxMotorForce=function(t){t!==this.m_maxMotorForce&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_maxMotorForce=t)},r.GetMaxMotorForce=function(){return this.m_maxMotorForce},r.GetMotorForce=function(t){return t*this.m_motorImpulse},r.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}(ki);Yi.InitVelocityConstraints_s_d=new j,Yi.InitVelocityConstraints_s_P=new j,Yi.SolveVelocityConstraints_s_P=new j,Yi.SolveVelocityConstraints_s_f2r=new j,Yi.SolveVelocityConstraints_s_f1=new X,Yi.SolveVelocityConstraints_s_df3=new X,Yi.SolveVelocityConstraints_s_df2=new j,Yi.SolvePositionConstraints_s_d=new j,Yi.SolvePositionConstraints_s_impulse=new X,Yi.SolvePositionConstraints_s_impulse1=new j,Yi.SolvePositionConstraints_s_P=new j,Yi.GetJointTranslation_s_pA=new j,Yi.GetJointTranslation_s_pB=new j,Yi.GetJointTranslation_s_d=new j,Yi.GetJointTranslation_s_axis=new j;var Ki=function(e){function i(){var i;return(i=e.call(this,t.b2JointType.e_pulleyJoint)||this).groundAnchorA=new j(-1,1),i.groundAnchorB=new j(1,1),i.localAnchorA=new j(-1,0),i.localAnchorB=new j(1,0),i.lengthA=0,i.lengthB=0,i.ratio=1,i.collideConnected=!0,i}return s(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=j.DistanceVV(r,i),this.lengthB=j.DistanceVV(s,n),this.ratio=a},i}(Oi),Ji=function(t){function i(i){var n;return(n=t.call(this,i)||this).m_groundAnchorA=new j,n.m_groundAnchorB=new j,n.m_lengthA=0,n.m_lengthB=0,n.m_localAnchorA=new j,n.m_localAnchorB=new j,n.m_constant=0,n.m_ratio=0,n.m_impulse=0,n.m_indexA=0,n.m_indexB=0,n.m_uA=new j,n.m_uB=new j,n.m_rA=new j,n.m_rB=new j,n.m_localCenterA=new j,n.m_localCenterB=new j,n.m_invMassA=0,n.m_invMassB=0,n.m_invIA=0,n.m_invIB=0,n.m_mass=0,n.m_qA=new J,n.m_qB=new J,n.m_lalcA=new j,n.m_lalcB=new j,n.m_groundAnchorA.Copy(e(i.groundAnchorA,new j(-1,1))),n.m_groundAnchorB.Copy(e(i.groundAnchorB,new j(1,0))),n.m_localAnchorA.Copy(e(i.localAnchorA,new j(-1,0))),n.m_localAnchorB.Copy(e(i.localAnchorB,new j(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}s(i,t);var n=i.prototype;return n.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,u=t.velocities[this.m_indexB].w,l=this.m_qA.SetAngle(n),c=this.m_qB.SetAngle(o);j.SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA),J.MulRV(l,this.m_lalcA,this.m_rA),j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB),J.MulRV(c,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(),_=this.m_uB.Length();f>.08?this.m_uA.SelfMul(1/f):this.m_uA.SetZero(),_>.08?this.m_uB.SelfMul(1/_):this.m_uB.SetZero();var d=j.CrossVV(this.m_rA,this.m_uA),p=j.CrossVV(this.m_rB,this.m_uB),m=this.m_invMassA+this.m_invIA*d*d,g=this.m_invMassB+this.m_invIB*p*p;if(this.m_mass=m+this.m_ratio*this.m_ratio*g,this.m_mass>0&&(this.m_mass=1/this.m_mass),t.step.warmStarting){this.m_impulse*=t.step.dtRatio;var y=j.MulSV(-this.m_impulse,this.m_uA,i.InitVelocityConstraints_s_PA),v=j.MulSV(-this.m_ratio*this.m_impulse,this.m_uB,i.InitVelocityConstraints_s_PB);r.SelfMulAdd(this.m_invMassA,y),s+=this.m_invIA*j.CrossVV(this.m_rA,y),h.SelfMulAdd(this.m_invMassB,v),u+=this.m_invIB*j.CrossVV(this.m_rB,v)}else this.m_impulse=0;t.velocities[this.m_indexA].w=s,t.velocities[this.m_indexB].w=u},n.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=j.AddVCrossSV(e,n,this.m_rA,i.SolveVelocityConstraints_s_vpA),o=j.AddVCrossSV(r,s,this.m_rB,i.SolveVelocityConstraints_s_vpB),h=-j.DotVV(this.m_uA,a)-this.m_ratio*j.DotVV(this.m_uB,o),u=-this.m_mass*h;this.m_impulse+=u;var l=j.MulSV(-u,this.m_uA,i.SolveVelocityConstraints_s_PA),c=j.MulSV(-this.m_ratio*u,this.m_uB,i.SolveVelocityConstraints_s_PB);e.SelfMulAdd(this.m_invMassA,l),n+=this.m_invIA*j.CrossVV(this.m_rA,l),r.SelfMulAdd(this.m_invMassB,c),s+=this.m_invIB*j.CrossVV(this.m_rB,c),t.velocities[this.m_indexA].w=n,t.velocities[this.m_indexB].w=s},n.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);j.SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var h=J.MulRV(a,this.m_lalcA,this.m_rA);j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var u=J.MulRV(o,this.m_lalcB,this.m_rB),c=this.m_uA.Copy(e).SelfAdd(h).SelfSub(this.m_groundAnchorA),f=this.m_uB.Copy(r).SelfAdd(u).SelfSub(this.m_groundAnchorB),_=c.Length(),d=f.Length();_>.08?c.SelfMul(1/_):c.SetZero(),d>.08?f.SelfMul(1/d):f.SetZero();var p=j.CrossVV(h,c),m=j.CrossVV(u,f),g=this.m_invMassA+this.m_invIA*p*p,y=this.m_invMassB+this.m_invIB*m*m,v=g+this.m_ratio*this.m_ratio*y;v>0&&(v=1/v);var b=this.m_constant-_-this.m_ratio*d,S=P(b),x=-v*b,w=j.MulSV(-x,c,i.SolvePositionConstraints_s_PA),T=j.MulSV(-this.m_ratio*x,f,i.SolvePositionConstraints_s_PB);return e.SelfMulAdd(this.m_invMassA,w),n+=this.m_invIA*j.CrossVV(h,w),r.SelfMulAdd(this.m_invMassB,T),s+=this.m_invIB*j.CrossVV(u,T),t.positions[this.m_indexA].a=n,t.positions[this.m_indexB].a=s,S0&&(this.m_motorMass=1/this.m_motorMass),this.m_enableMotor&&!m||(this.m_motorImpulse=0),this.m_enableLimit&&!m){var g=a-i-this.m_referenceAngle;P(this.m_upperAngle-this.m_lowerAngle)<2*c?this.m_limitState=t.b2LimitState.e_equalLimits:g<=this.m_lowerAngle?(this.m_limitState!==t.b2LimitState.e_atLowerLimit&&(this.m_impulse.z=0),this.m_limitState=t.b2LimitState.e_atLowerLimit):g>=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 y=n.InitVelocityConstraints_s_P.Set(this.m_impulse.x,this.m_impulse.y);r.SelfMulSub(f,y),s-=d*(j.CrossVV(this.m_rA,y)+this.m_motorImpulse+this.m_impulse.z),o.SelfMulAdd(_,y),h+=p*(j.CrossVV(this.m_rB,y)+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=h},r.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,h=this.m_invMassB,u=this.m_invIA,l=this.m_invIB,c=u+l===0;if(this.m_enableMotor&&this.m_limitState!==t.b2LimitState.e_equalLimits&&!c){var f=a-r-this.m_motorSpeed,_=-this.m_motorMass*f,d=this.m_motorImpulse,p=e.step.dt*this.m_maxMotorTorque;this.m_motorImpulse=k(this.m_motorImpulse+_,-p,p),r-=u*(_=this.m_motorImpulse-d),a+=l*_}if(this.m_enableLimit&&this.m_limitState!==t.b2LimitState.e_inactiveLimit&&!c){var m=j.SubVV(j.AddVCrossSV(s,a,this.m_rB,j.s_t0),j.AddVCrossSV(i,r,this.m_rA,j.s_t1),n.SolveVelocityConstraints_s_Cdot1),g=a-r,y=this.m_mass.Solve33(m.x,m.y,g,n.SolveVelocityConstraints_s_impulse_v3).SelfNeg();if(this.m_limitState===t.b2LimitState.e_equalLimits)this.m_impulse.SelfAdd(y);else if(this.m_limitState===t.b2LimitState.e_atLowerLimit)if(this.m_impulse.z+y.z<0){var v=-m.x+this.m_impulse.z*this.m_mass.ez.x,b=-m.y+this.m_impulse.z*this.m_mass.ez.y,S=this.m_mass.Solve22(v,b,n.SolveVelocityConstraints_s_reduced_v2);y.x=S.x,y.y=S.y,y.z=-this.m_impulse.z,this.m_impulse.x+=S.x,this.m_impulse.y+=S.y,this.m_impulse.z=0}else this.m_impulse.SelfAdd(y);else if(this.m_limitState===t.b2LimitState.e_atUpperLimit)if(this.m_impulse.z+y.z>0){var x=-m.x+this.m_impulse.z*this.m_mass.ez.x,w=-m.y+this.m_impulse.z*this.m_mass.ez.y,T=this.m_mass.Solve22(x,w,n.SolveVelocityConstraints_s_reduced_v2);y.x=T.x,y.y=T.y,y.z=-this.m_impulse.z,this.m_impulse.x+=T.x,this.m_impulse.y+=T.y,this.m_impulse.z=0}else this.m_impulse.SelfAdd(y);var A=n.SolveVelocityConstraints_s_P.Set(y.x,y.y);i.SelfMulSub(o,A),r-=u*(j.CrossVV(this.m_rA,A)+y.z),s.SelfMulAdd(h,A),a+=l*(j.CrossVV(this.m_rB,A)+y.z)}else{var C=j.SubVV(j.AddVCrossSV(s,a,this.m_rB,j.s_t0),j.AddVCrossSV(i,r,this.m_rA,j.s_t1),n.SolveVelocityConstraints_s_Cdot_v2),D=this.m_mass.Solve22(-C.x,-C.y,n.SolveVelocityConstraints_s_impulse_v2);this.m_impulse.x+=D.x,this.m_impulse.y+=D.y,i.SelfMulSub(o,D),r-=u*j.CrossVV(this.m_rA,D),s.SelfMulAdd(h,D),a+=l*j.CrossVV(this.m_rB,D)}e.velocities[this.m_indexA].w=r,e.velocities[this.m_indexB].w=a},r.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,h=this.m_qA.SetAngle(s),u=this.m_qB.SetAngle(o),f=0,_=this.m_invIA+this.m_invIB===0;if(this.m_enableLimit&&this.m_limitState!==t.b2LimitState.e_inactiveLimit&&!_){var p=o-s-this.m_referenceAngle,m=0;if(this.m_limitState===t.b2LimitState.e_equalLimits){var g=k(p-this.m_lowerAngle,-.13962634015955555,d);m=-this.m_motorMass*g,f=P(g)}else if(this.m_limitState===t.b2LimitState.e_atLowerLimit){var y=p-this.m_lowerAngle;f=-y,y=k(y+c,-.13962634015955555,0),m=-this.m_motorMass*y}else if(this.m_limitState===t.b2LimitState.e_atUpperLimit){var v=p-this.m_upperAngle;f=v,v=k(v-c,0,d),m=-this.m_motorMass*v}s-=this.m_invIA*m,o+=this.m_invIB*m}h.SetAngle(s),u.SetAngle(o),j.SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var b=J.MulRV(h,this.m_lalcA,this.m_rA);j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var S=J.MulRV(u,this.m_lalcB,this.m_rB),x=j.SubVV(j.AddVV(a,S,j.s_t0),j.AddVV(r,b,j.s_t1),n.SolvePositionConstraints_s_C_v2);i=x.Length();var w=this.m_invMassA,T=this.m_invMassB,A=this.m_invIA,C=this.m_invIB,D=this.m_K;D.ex.x=w+T+A*b.y*b.y+C*S.y*S.y,D.ex.y=-A*b.x*b.y-C*S.x*S.y,D.ey.x=D.ex.y,D.ey.y=w+T+A*b.x*b.x+C*S.x*S.x;var B=D.Solve(x.x,x.y,n.SolvePositionConstraints_s_impulse).SelfNeg();return r.SelfMulSub(w,B),s-=A*j.CrossVV(b,B),a.SelfMulAdd(T,B),o+=C*j.CrossVV(S,B),e.positions[this.m_indexA].a=s,e.positions[this.m_indexB].a=o,i<=l&&f<=c},r.GetAnchorA=function(t){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,t)},r.GetAnchorB=function(t){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,t)},r.GetReactionForce=function(t,e){return e.x=t*this.m_impulse.x,e.y=t*this.m_impulse.y,e},r.GetReactionTorque=function(t){return t*this.m_impulse.z},r.GetLocalAnchorA=function(){return this.m_localAnchorA},r.GetLocalAnchorB=function(){return this.m_localAnchorB},r.GetReferenceAngle=function(){return this.m_referenceAngle},r.GetJointAngle=function(){return this.m_bodyB.m_sweep.a-this.m_bodyA.m_sweep.a-this.m_referenceAngle},r.GetJointSpeed=function(){return this.m_bodyB.m_angularVelocity-this.m_bodyA.m_angularVelocity},r.IsMotorEnabled=function(){return this.m_enableMotor},r.EnableMotor=function(t){t!==this.m_enableMotor&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_enableMotor=t)},r.GetMotorTorque=function(t){return t*this.m_motorImpulse},r.GetMotorSpeed=function(){return this.m_motorSpeed},r.SetMaxMotorTorque=function(t){t!==this.m_maxMotorTorque&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_maxMotorTorque=t)},r.GetMaxMotorTorque=function(){return this.m_maxMotorTorque},r.IsLimitEnabled=function(){return this.m_enableLimit},r.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)},r.GetLowerLimit=function(){return this.m_lowerAngle},r.GetUpperLimit=function(){return this.m_upperAngle},r.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)},r.SetMotorSpeed=function(t){t!==this.m_motorSpeed&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_motorSpeed=t)},r.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}(ki);Zi.InitVelocityConstraints_s_P=new j,Zi.SolveVelocityConstraints_s_P=new j,Zi.SolveVelocityConstraints_s_Cdot_v2=new j,Zi.SolveVelocityConstraints_s_Cdot1=new j,Zi.SolveVelocityConstraints_s_impulse_v3=new X,Zi.SolveVelocityConstraints_s_reduced_v2=new j,Zi.SolveVelocityConstraints_s_impulse_v2=new j,Zi.SolvePositionConstraints_s_C_v2=new j,Zi.SolvePositionConstraints_s_impulse=new j;var $i=function(e){function i(){var i;return(i=e.call(this,t.b2JointType.e_ropeJoint)||this).localAnchorA=new j(-1,0),i.localAnchorB=new j(1,0),i.maxLength=0,i}return s(i,e),i}(Oi),tn=function(i){function n(n){var r;return(r=i.call(this,n)||this).m_localAnchorA=new j,r.m_localAnchorB=new j,r.m_maxLength=0,r.m_length=0,r.m_impulse=0,r.m_indexA=0,r.m_indexB=0,r.m_u=new j,r.m_rA=new j,r.m_rB=new j,r.m_localCenterA=new j,r.m_localCenterB=new j,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 J,r.m_qB=new J,r.m_lalcA=new j,r.m_lalcB=new j,r.m_localAnchorA.Copy(e(n.localAnchorA,new j(-1,0))),r.m_localAnchorB.Copy(e(n.localAnchorB,new j(1,0))),r.m_maxLength=e(n.maxLength,0),r}s(n,i);var r=n.prototype;return r.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,u=e.velocities[this.m_indexB].v,c=e.velocities[this.m_indexB].w,f=this.m_qA.SetAngle(r),_=this.m_qB.SetAngle(h);j.SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA),J.MulRV(f,this.m_lalcA,this.m_rA),j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB),J.MulRV(_,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=j.CrossVV(this.m_rA,this.m_u),m=j.CrossVV(this.m_rB,this.m_u),g=this.m_invMassA+this.m_invIA*p*p+this.m_invMassB+this.m_invIB*m*m;if(this.m_mass=0!==g?1/g:0,e.step.warmStarting){this.m_impulse*=e.step.dtRatio;var y=j.MulSV(this.m_impulse,this.m_u,n.InitVelocityConstraints_s_P);s.SelfMulSub(this.m_invMassA,y),a-=this.m_invIA*j.CrossVV(this.m_rA,y),u.SelfMulAdd(this.m_invMassB,y),c+=this.m_invIB*j.CrossVV(this.m_rB,y)}else this.m_impulse=0;e.velocities[this.m_indexA].w=a,e.velocities[this.m_indexB].w=c},r.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=j.AddVCrossSV(e,i,this.m_rA,n.SolveVelocityConstraints_s_vpA),o=j.AddVCrossSV(r,s,this.m_rB,n.SolveVelocityConstraints_s_vpB),h=this.m_length-this.m_maxLength,u=j.DotVV(this.m_u,j.SubVV(o,a,j.s_t0));h<0&&(u+=t.step.inv_dt*h);var l=-this.m_mass*u,c=this.m_impulse;this.m_impulse=E(0,this.m_impulse+l),l=this.m_impulse-c;var f=j.MulSV(l,this.m_u,n.SolveVelocityConstraints_s_P);e.SelfMulSub(this.m_invMassA,f),i-=this.m_invIA*j.CrossVV(this.m_rA,f),r.SelfMulAdd(this.m_invMassB,f),s+=this.m_invIB*j.CrossVV(this.m_rB,f),t.velocities[this.m_indexA].w=i,t.velocities[this.m_indexB].w=s},r.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);j.SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var h=J.MulRV(a,this.m_lalcA,this.m_rA);j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var u=J.MulRV(o,this.m_lalcB,this.m_rB),c=this.m_u.Copy(r).SelfAdd(u).SelfSub(e).SelfSub(h),f=c.Normalize(),d=f-this.m_maxLength;d=k(d,0,_);var p=-this.m_mass*d,m=j.MulSV(p,c,n.SolvePositionConstraints_s_P);return e.SelfMulSub(this.m_invMassA,m),i-=this.m_invIA*j.CrossVV(h,m),r.SelfMulAdd(this.m_invMassB,m),s+=this.m_invIB*j.CrossVV(u,m),t.positions[this.m_indexA].a=i,t.positions[this.m_indexB].a=s,f-this.m_maxLength0){p.GetInverse22(this.m_mass);var m=_+d,g=m>0?1/m:0,y=s-e-this.m_referenceAngle,v=2*o*this.m_frequencyHz,b=2*g*this.m_dampingRatio*v,S=g*v*v,x=t.step.dt;this.m_gamma=x*(b+x*S),this.m_gamma=0!==this.m_gamma?1/this.m_gamma:0,this.m_bias=y*x*S*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 w=i.InitVelocityConstraints_s_P.Set(this.m_impulse.x,this.m_impulse.y);n.SelfMulSub(c,w),r-=_*(j.CrossVV(this.m_rA,w)+this.m_impulse.z),a.SelfMulAdd(f,w),h+=d*(j.CrossVV(this.m_rB,w)+this.m_impulse.z)}else this.m_impulse.SetZero();t.velocities[this.m_indexA].w=r,t.velocities[this.m_indexB].w=h},n.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,h=this.m_invIA,u=this.m_invIB;if(this.m_frequencyHz>0){var l=s-n,c=-this.m_mass.ez.z*(l+this.m_bias+this.m_gamma*this.m_impulse.z);this.m_impulse.z+=c,n-=h*c,s+=u*c;var f=j.SubVV(j.AddVCrossSV(r,s,this.m_rB,j.s_t0),j.AddVCrossSV(e,n,this.m_rA,j.s_t1),i.SolveVelocityConstraints_s_Cdot1),_=K.MulM33XY(this.m_mass,f.x,f.y,i.SolveVelocityConstraints_s_impulse1).SelfNeg();this.m_impulse.x+=_.x,this.m_impulse.y+=_.y;var d=_;e.SelfMulSub(a,d),n-=h*j.CrossVV(this.m_rA,d),r.SelfMulAdd(o,d),s+=u*j.CrossVV(this.m_rB,d)}else{var p=j.SubVV(j.AddVCrossSV(r,s,this.m_rB,j.s_t0),j.AddVCrossSV(e,n,this.m_rA,j.s_t1),i.SolveVelocityConstraints_s_Cdot1),m=s-n,g=K.MulM33XYZ(this.m_mass,p.x,p.y,m,i.SolveVelocityConstraints_s_impulse).SelfNeg();this.m_impulse.SelfAdd(g);var y=i.SolveVelocityConstraints_s_P.Set(g.x,g.y);e.SelfMulSub(a,y),n-=h*(j.CrossVV(this.m_rA,y)+g.z),r.SelfMulAdd(o,y),s+=u*(j.CrossVV(this.m_rB,y)+g.z)}t.velocities[this.m_indexA].w=n,t.velocities[this.m_indexB].w=s},n.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),h=this.m_invMassA,u=this.m_invMassB,f=this.m_invIA,_=this.m_invIB;j.SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var d=J.MulRV(a,this.m_lalcA,this.m_rA);j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var p,m,g=J.MulRV(o,this.m_lalcB,this.m_rB),y=this.m_K;if(y.ex.x=h+u+d.y*d.y*f+g.y*g.y*_,y.ey.x=-d.y*d.x*f-g.y*g.x*_,y.ez.x=-d.y*f-g.y*_,y.ex.y=y.ey.x,y.ey.y=h+u+d.x*d.x*f+g.x*g.x*_,y.ez.y=d.x*f+g.x*_,y.ex.z=y.ez.x,y.ey.z=y.ez.y,y.ez.z=f+_,this.m_frequencyHz>0){var v=j.SubVV(j.AddVV(r,g,j.s_t0),j.AddVV(e,d,j.s_t1),i.SolvePositionConstraints_s_C1);p=v.Length(),m=0;var b=y.Solve22(v.x,v.y,i.SolvePositionConstraints_s_P).SelfNeg();e.SelfMulSub(h,b),n-=f*j.CrossVV(d,b),r.SelfMulAdd(u,b),s+=_*j.CrossVV(g,b)}else{var S=j.SubVV(j.AddVV(r,g,j.s_t0),j.AddVV(e,d,j.s_t1),i.SolvePositionConstraints_s_C1),x=s-n-this.m_referenceAngle;p=S.Length(),m=P(x);var w=y.Solve33(S.x,S.y,x,i.SolvePositionConstraints_s_impulse).SelfNeg(),T=i.SolvePositionConstraints_s_P.Set(w.x,w.y);e.SelfMulSub(h,T),n-=f*(j.CrossVV(this.m_rA,T)+w.z),r.SelfMulAdd(u,T),s+=_*(j.CrossVV(this.m_rB,T)+w.z)}return t.positions[this.m_indexA].a=n,t.positions[this.m_indexB].a=s,p<=l&&m<=c},n.GetAnchorA=function(t){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,t)},n.GetAnchorB=function(t){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,t)},n.GetReactionForce=function(t,e){return e.x=t*this.m_impulse.x,e.y=t*this.m_impulse.y,e},n.GetReactionTorque=function(t){return t*this.m_impulse.z},n.GetLocalAnchorA=function(){return this.m_localAnchorA},n.GetLocalAnchorB=function(){return this.m_localAnchorB},n.GetReferenceAngle=function(){return this.m_referenceAngle},n.SetFrequency=function(t){this.m_frequencyHz=t},n.GetFrequency=function(){return this.m_frequencyHz},n.SetDampingRatio=function(t){this.m_dampingRatio=t},n.GetDampingRatio=function(){return this.m_dampingRatio},n.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}(ki);nn.InitVelocityConstraints_s_P=new j,nn.SolveVelocityConstraints_s_Cdot1=new j,nn.SolveVelocityConstraints_s_impulse1=new j,nn.SolveVelocityConstraints_s_impulse=new X,nn.SolveVelocityConstraints_s_P=new j,nn.SolvePositionConstraints_s_C1=new j,nn.SolvePositionConstraints_s_P=new j,nn.SolvePositionConstraints_s_impulse=new X;var rn=function(e){function i(){var i;return(i=e.call(this,t.b2JointType.e_wheelJoint)||this).localAnchorA=new j(0,0),i.localAnchorB=new j(0,0),i.localAxisA=new j(1,0),i.enableMotor=!1,i.maxMotorTorque=0,i.motorSpeed=0,i.frequencyHz=2,i.dampingRatio=.7,i}return s(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}(Oi),sn=function(t){function i(i){var n;return(n=t.call(this,i)||this).m_frequencyHz=0,n.m_dampingRatio=0,n.m_localAnchorA=new j,n.m_localAnchorB=new j,n.m_localXAxisA=new j,n.m_localYAxisA=new j,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 j,n.m_localCenterB=new j,n.m_invMassA=0,n.m_invMassB=0,n.m_invIA=0,n.m_invIB=0,n.m_ax=new j,n.m_ay=new j,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 J,n.m_qB=new J,n.m_lalcA=new j,n.m_lalcB=new j,n.m_rA=new j,n.m_rB=new j,n.m_frequencyHz=e(i.frequencyHz,2),n.m_dampingRatio=e(i.dampingRatio,.7),n.m_localAnchorA.Copy(e(i.localAnchorA,j.ZERO)),n.m_localAnchorB.Copy(e(i.localAnchorB,j.ZERO)),n.m_localXAxisA.Copy(e(i.localAxisA,j.UNITX)),j.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}s(i,t);var n=i.prototype;return n.GetMotorSpeed=function(){return this.m_motorSpeed},n.GetMaxMotorTorque=function(){return this.m_maxMotorTorque},n.SetSpringFrequencyHz=function(t){this.m_frequencyHz=t},n.GetSpringFrequencyHz=function(){return this.m_frequencyHz},n.SetSpringDampingRatio=function(t){this.m_dampingRatio=t},n.GetSpringDampingRatio=function(){return this.m_dampingRatio},n.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,s=this.m_invIB,a=t.positions[this.m_indexA].c,h=t.positions[this.m_indexA].a,u=t.velocities[this.m_indexA].v,l=t.velocities[this.m_indexA].w,c=t.positions[this.m_indexB].c,f=t.positions[this.m_indexB].a,_=t.velocities[this.m_indexB].v,d=t.velocities[this.m_indexB].w,p=this.m_qA.SetAngle(h),m=this.m_qB.SetAngle(f);j.SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var g=J.MulRV(p,this.m_lalcA,this.m_rA);j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var y=J.MulRV(m,this.m_lalcB,this.m_rB),v=j.SubVV(j.AddVV(c,y,j.s_t0),j.AddVV(a,g,j.s_t1),i.InitVelocityConstraints_s_d);if(J.MulRV(p,this.m_localYAxisA,this.m_ay),this.m_sAy=j.CrossVV(j.AddVV(v,g,j.s_t0),this.m_ay),this.m_sBy=j.CrossVV(y,this.m_ay),this.m_mass=e+n+r*this.m_sAy*this.m_sAy+s*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){J.MulRV(p,this.m_localXAxisA,this.m_ax),this.m_sAx=j.CrossVV(j.AddVV(v,g,j.s_t0),this.m_ax),this.m_sBx=j.CrossVV(y,this.m_ax);var b=e+n+r*this.m_sAx*this.m_sAx+s*this.m_sBx*this.m_sBx;if(b>0){this.m_springMass=1/b;var S=j.DotVV(v,this.m_ax),x=2*o*this.m_frequencyHz,w=2*this.m_springMass*this.m_dampingRatio*x,T=this.m_springMass*x*x,A=t.step.dt;this.m_gamma=A*(w+A*T),this.m_gamma>0&&(this.m_gamma=1/this.m_gamma),this.m_bias=S*A*T*this.m_gamma,this.m_springMass=b+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+s,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 C=j.AddVV(j.MulSV(this.m_impulse,this.m_ay,j.s_t0),j.MulSV(this.m_springImpulse,this.m_ax,j.s_t1),i.InitVelocityConstraints_s_P),D=this.m_impulse*this.m_sAy+this.m_springImpulse*this.m_sAx+this.m_motorImpulse,B=this.m_impulse*this.m_sBy+this.m_springImpulse*this.m_sBx+this.m_motorImpulse;u.SelfMulSub(this.m_invMassA,C),l-=this.m_invIA*D,_.SelfMulAdd(this.m_invMassB,C),d+=this.m_invIB*B}else this.m_impulse=0,this.m_springImpulse=0,this.m_motorImpulse=0;t.velocities[this.m_indexA].w=l,t.velocities[this.m_indexB].w=d},n.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,h=t.velocities[this.m_indexB].v,u=t.velocities[this.m_indexB].w,l=j.DotVV(this.m_ax,j.SubVV(h,a,j.s_t0))+this.m_sBx*u-this.m_sAx*o,c=-this.m_springMass*(l+this.m_bias+this.m_gamma*this.m_springImpulse);this.m_springImpulse+=c;var f=j.MulSV(c,this.m_ax,i.SolveVelocityConstraints_s_P),_=c*this.m_sAx,d=c*this.m_sBx;a.SelfMulSub(e,f),o-=r*_,h.SelfMulAdd(n,f);var p=(u+=s*d)-o-this.m_motorSpeed,m=-this.m_motorMass*p,g=this.m_motorImpulse,y=t.step.dt*this.m_maxMotorTorque;this.m_motorImpulse=k(this.m_motorImpulse+m,-y,y),o-=r*(m=this.m_motorImpulse-g),u+=s*m;var v=j.DotVV(this.m_ay,j.SubVV(h,a,j.s_t0))+this.m_sBy*u-this.m_sAy*o,b=-this.m_mass*v;this.m_impulse+=b;var S=j.MulSV(b,this.m_ay,i.SolveVelocityConstraints_s_P),x=b*this.m_sAy,w=b*this.m_sBy;a.SelfMulSub(e,S),o-=r*x,h.SelfMulAdd(n,S),u+=s*w,t.velocities[this.m_indexA].w=o,t.velocities[this.m_indexB].w=u},n.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);j.SubVV(this.m_localAnchorA,this.m_localCenterA,this.m_lalcA);var h=J.MulRV(a,this.m_lalcA,this.m_rA);j.SubVV(this.m_localAnchorB,this.m_localCenterB,this.m_lalcB);var u,c=J.MulRV(o,this.m_lalcB,this.m_rB),f=j.AddVV(j.SubVV(r,e,j.s_t0),j.SubVV(c,h,j.s_t1),i.SolvePositionConstraints_s_d),_=J.MulRV(a,this.m_localYAxisA,this.m_ay),d=j.CrossVV(j.AddVV(f,h,j.s_t0),_),p=j.CrossVV(c,_),m=j.DotVV(f,this.m_ay),g=this.m_invMassA+this.m_invMassB+this.m_invIA*this.m_sAy*this.m_sAy+this.m_invIB*this.m_sBy*this.m_sBy;u=0!==g?-m/g:0;var y=j.MulSV(u,_,i.SolvePositionConstraints_s_P),v=u*d,b=u*p;return e.SelfMulSub(this.m_invMassA,y),n-=this.m_invIA*v,r.SelfMulAdd(this.m_invMassB,y),s+=this.m_invIB*b,t.positions[this.m_indexA].a=n,t.positions[this.m_indexB].a=s,P(m)<=l},n.GetDefinition=function(t){return t},n.GetAnchorA=function(t){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA,t)},n.GetAnchorB=function(t){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB,t)},n.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},n.GetReactionTorque=function(t){return t*this.m_motorImpulse},n.GetLocalAnchorA=function(){return this.m_localAnchorA},n.GetLocalAnchorB=function(){return this.m_localAnchorB},n.GetLocalAxisA=function(){return this.m_localXAxisA},n.GetJointTranslation=function(){return this.GetPrismaticJointTranslation()},n.GetJointLinearSpeed=function(){return this.GetPrismaticJointSpeed()},n.GetJointAngle=function(){return this.GetRevoluteJointAngle()},n.GetJointAngularSpeed=function(){return this.GetRevoluteJointSpeed()},n.GetPrismaticJointTranslation=function(){var t=this.m_bodyA,e=this.m_bodyB,i=t.GetWorldPoint(this.m_localAnchorA,new j),n=e.GetWorldPoint(this.m_localAnchorB,new j),r=j.SubVV(n,i,new j),s=t.GetWorldVector(this.m_localXAxisA,new j);return j.DotVV(r,s)},n.GetPrismaticJointSpeed=function(){var t=this.m_bodyA,e=this.m_bodyB;j.SubVV(this.m_localAnchorA,t.m_sweep.localCenter,this.m_lalcA);var i=J.MulRV(t.m_xf.q,this.m_lalcA,this.m_rA);j.SubVV(this.m_localAnchorB,e.m_sweep.localCenter,this.m_lalcB);var n=J.MulRV(e.m_xf.q,this.m_lalcB,this.m_rB),r=j.AddVV(t.m_sweep.c,i,j.s_t0),s=j.AddVV(e.m_sweep.c,n,j.s_t1),a=j.SubVV(s,r,j.s_t2),o=t.GetWorldVector(this.m_localXAxisA,new j),h=t.m_linearVelocity,u=e.m_linearVelocity,l=t.m_angularVelocity,c=e.m_angularVelocity;return j.DotVV(a,j.CrossSV(l,o,j.s_t0))+j.DotVV(o,j.SubVV(j.AddVCrossSV(u,c,n,j.s_t0),j.AddVCrossSV(h,l,i,j.s_t1),j.s_t0))},n.GetRevoluteJointAngle=function(){return this.m_bodyB.m_sweep.a-this.m_bodyA.m_sweep.a},n.GetRevoluteJointSpeed=function(){var t=this.m_bodyA.m_angularVelocity;return this.m_bodyB.m_angularVelocity-t},n.IsMotorEnabled=function(){return this.m_enableMotor},n.EnableMotor=function(t){t!==this.m_enableMotor&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_enableMotor=t)},n.SetMotorSpeed=function(t){t!==this.m_motorSpeed&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_motorSpeed=t)},n.SetMaxMotorTorque=function(t){t!==this.m_maxMotorTorque&&(this.m_bodyA.SetAwake(!0),this.m_bodyB.SetAwake(!0),this.m_maxMotorTorque=t)},n.GetMotorTorque=function(t){return t*this.m_motorImpulse},n.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}(ki);function an(t,e){return N(t*e)}function on(t,e){return t>e?t:e}sn.InitVelocityConstraints_s_d=new j,sn.InitVelocityConstraints_s_P=new j,sn.SolveVelocityConstraints_s_P=new j,sn.SolvePositionConstraints_s_d=new j,sn.SolvePositionConstraints_s_P=new j;var hn=function(){function t(t){this._other=null,this.prev=null,this.next=null,this.contact=t}return t.prototype.Reset=function(){this._other=null,this.prev=null,this.next=null},n(t,[{key:"other",get:function(){if(null===this._other)throw new Error;return this._other},set:function(t){if(null!==this._other)throw new Error;this._other=t}}]),t}(),un=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_nodeA=new hn(this),this.m_nodeB=new hn(this),this.m_indexA=0,this.m_indexB=0,this.m_manifold=new kt,this.m_toiCount=0,this.m_toi=0,this.m_friction=0,this.m_restitution=0,this.m_tangentSpeed=0,this.m_oldManifold=new kt}var e=t.prototype;return e.GetManifold=function(){return this.m_manifold},e.GetWorldManifold=function(t){var e=this.m_fixtureA.GetBody(),i=this.m_fixtureB.GetBody(),n=this.GetShapeA(),r=this.GetShapeB();t.Initialize(this.m_manifold,e.GetTransform(),n.m_radius,i.GetTransform(),r.m_radius)},e.IsTouching=function(){return this.m_touchingFlag},e.SetEnabled=function(t){this.m_enabledFlag=t},e.IsEnabled=function(){return this.m_enabledFlag},e.GetNext=function(){return this.m_next},e.GetFixtureA=function(){return this.m_fixtureA},e.GetChildIndexA=function(){return this.m_indexA},e.GetShapeA=function(){return this.m_fixtureA.GetShape()},e.GetFixtureB=function(){return this.m_fixtureB},e.GetChildIndexB=function(){return this.m_indexB},e.GetShapeB=function(){return this.m_fixtureB.GetShape()},e.FlagForFiltering=function(){this.m_filterFlag=!0},e.SetFriction=function(t){this.m_friction=t},e.GetFriction=function(){return this.m_friction},e.ResetFriction=function(){this.m_friction=an(this.m_fixtureA.m_friction,this.m_fixtureB.m_friction)},e.SetRestitution=function(t){this.m_restitution=t},e.GetRestitution=function(){return this.m_restitution},e.ResetRestitution=function(){this.m_restitution=on(this.m_fixtureA.m_restitution,this.m_fixtureB.m_restitution)},e.SetTangentSpeed=function(t){this.m_tangentSpeed=t},e.GetTangentSpeed=function(){return this.m_tangentSpeed},e.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,this.m_nodeA.Reset(),this.m_nodeB.Reset(),this.m_toiCount=0,this.m_friction=an(this.m_fixtureA.m_friction,this.m_fixtureB.m_friction),this.m_restitution=on(this.m_fixtureA.m_restitution,this.m_fixtureB.m_restitution)},e.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(),h=this.m_fixtureB.GetBody(),u=o.GetTransform(),l=h.GetTransform();if(a){var c=this.GetShapeA(),f=this.GetShapeB();i=jt(c,this.m_indexA,f,this.m_indexB,u,l),this.m_manifold.pointCount=0}else{this.Evaluate(this.m_manifold,u,l),i=this.m_manifold.pointCount>0;for(var _=0;_0:!!(s.maskBits&a.categoryBits)&&!!(s.categoryBits&a.maskBits)},i.ShouldCollideFixtureParticle=function(){return!0},i.ShouldCollideParticleParticle=function(){return!0},e}();bn.b2_defaultFilter=new bn;var Sn=function(){this.normalImpulses=D(2),this.tangentImpulses=D(2),this.count=0},xn=function(){function t(){}var e=t.prototype;return e.BeginContact=function(){},e.EndContact=function(){},e.BeginContactFixtureParticle=function(){},e.EndContactFixtureParticle=function(){},e.BeginContactParticleParticle=function(){},e.EndContactParticleParticle=function(){},e.PreSolve=function(){},e.PostSolve=function(){},t}();xn.b2_defaultListener=new xn;var wn=function(){function t(){}var e=t.prototype;return e.ReportFixture=function(){return!0},e.ReportParticle=function(){return!1},e.ShouldQueryParticleSystem=function(){return!0},t}(),Tn=function(){function t(){}var e=t.prototype;return e.ReportFixture=function(t,e,i,n){return n},e.ReportParticle=function(){return 0},e.ShouldQueryParticleSystem=function(){return!0},t}(),An=function(){function e(){this.m_broadPhase=new $t,this.m_contactList=null,this.m_contactCount=0,this.m_contactFilter=bn.b2_defaultFilter,this.m_contactListener=xn.b2_defaultListener,this.m_contactFactory=new yn}var i=e.prototype;return i.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 h=o.GetContactList();h;){if(h.other===a){var u=h.contact.GetFixtureA(),l=h.contact.GetFixtureB(),c=h.contact.GetChildIndexA(),f=h.contact.GetChildIndexB();if(u===i&&l===n&&c===r&&f===s)return;if(u===n&&l===i&&c===s&&f===r)return}h=h.next}if(!this.m_contactFilter||this.m_contactFilter.ShouldCollide(i,n)){var _=this.m_contactFactory.Create(i,r,n,s);null!==_&&(i=_.GetFixtureA(),n=_.GetFixtureB(),r=_.GetChildIndexA(),s=_.GetChildIndexB(),a=i.m_body,o=n.m_body,_.m_prev=null,_.m_next=this.m_contactList,null!==this.m_contactList&&(this.m_contactList.m_prev=_),this.m_contactList=_,_.m_nodeA.other=o,_.m_nodeA.prev=null,_.m_nodeA.next=a.m_contactList,null!==a.m_contactList&&(a.m_contactList.prev=_.m_nodeA),a.m_contactList=_.m_nodeA,_.m_nodeB.other=a,_.m_nodeB.prev=null,_.m_nodeB.next=o.m_contactList,null!==o.m_contactList&&(o.m_contactList.prev=_.m_nodeB),o.m_contactList=_.m_nodeB,i.IsSensor()||n.IsSensor()||(a.SetAwake(!0),o.SetAwake(!0)),++this.m_contactCount)}}},i.FindNewContacts=function(){var t=this;this.m_broadPhase.UpdatePairs((function(e,i){t.AddPair(e,i)}))},i.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),t.m_manifold.pointCount>0&&!e.IsSensor()&&!i.IsSensor()&&(e.GetBody().SetAwake(!0),i.GetBody().SetAwake(!0)),this.m_contactFactory.Destroy(t),--this.m_contactCount},i.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)){var h=e;e=h.m_next,this.Destroy(h);continue}e.m_filterFlag=!1}var u=a.IsAwake()&&a.m_type!==t.b2BodyType.b2_staticBody,l=o.IsAwake()&&o.m_type!==t.b2BodyType.b2_staticBody;if(u||l){var c=i.m_proxies[r].treeNode,f=n.m_proxies[s].treeNode;if(zt(c.aabb,f.aabb))e.Update(this.m_contactListener),e=e.m_next;else{var _=e;e=_.m_next,this.Destroy(_)}}else e=e.m_next}},e}(),Cn=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}(),Dn=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}(),Bn=function(){function t(){this.c=new j,this.a=0}return t.MakeArray=function(e){return C(e,(function(){return new t}))},t}(),In=function(){function t(){this.v=new j,this.w=0}return t.MakeArray=function(e){return C(e,(function(){return new t}))},t}(),Mn=function(){this.step=new Dn},Pn=!1,En=function(){function t(){this.rA=new j,this.rB=new j,this.normalImpulse=0,this.tangentImpulse=0,this.normalMass=0,this.tangentMass=0,this.velocityBias=0}return t.MakeArray=function(e){return C(e,(function(){return new t}))},t}(),On=function(){function t(){this.points=En.MakeArray(2),this.normal=new j,this.tangent=new j,this.normalMass=new Y,this.K=new Y,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 C(e,(function(){return new t}))},t}(),kn=function(){function e(){this.localPoints=j.MakeArray(2),this.localNormal=new j,this.localPoint=new j,this.indexA=0,this.indexB=0,this.invMassA=0,this.invMassB=0,this.localCenterA=new j,this.localCenterB=new j,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 C(t,(function(){return new e}))},e}(),Rn=function(){this.step=new Dn,this.count=0},Fn=function(){function e(){this.normal=new j,this.point=new j,this.separation=0}return e.prototype.Initialize=function(i,n,r,s){var a=e.Initialize_s_pointA,o=e.Initialize_s_pointB,h=e.Initialize_s_planePoint,u=e.Initialize_s_clipPoint;switch(i.type){case t.b2ManifoldType.e_circles:Q.MulXV(n,i.localPoint,a),Q.MulXV(r,i.localPoints[0],o),j.SubVV(o,a,this.normal).SelfNormalize(),j.MidVV(a,o,this.point),this.separation=j.DotVV(j.SubVV(o,a,j.s_t0),this.normal)-i.radiusA-i.radiusB;break;case t.b2ManifoldType.e_faceA:J.MulRV(n.q,i.localNormal,this.normal),Q.MulXV(n,i.localPoint,h),Q.MulXV(r,i.localPoints[s],u),this.separation=j.DotVV(j.SubVV(u,h,j.s_t0),this.normal)-i.radiusA-i.radiusB,this.point.Copy(u);break;case t.b2ManifoldType.e_faceB:J.MulRV(r.q,i.localNormal,this.normal),Q.MulXV(r,i.localPoint,h),Q.MulXV(n,i.localPoints[s],u),this.separation=j.DotVV(j.SubVV(u,h,j.s_t0),this.normal)-i.radiusA-i.radiusB,this.point.Copy(u),this.normal.SelfNeg()}},e}();Fn.Initialize_s_pointA=new j,Fn.Initialize_s_pointB=new j,Fn.Initialize_s_planePoint=new j,Fn.Initialize_s_clipPoint=new j;var Ln=function(){function t(){this.m_step=new Dn,this.m_positionConstraints=kn.MakeArray(1024),this.m_velocityConstraints=On.MakeArray(1024),this.m_count=0}var e=t.prototype;return e.Initialize=function(t){if(this.m_step.Copy(t.step),this.m_count=t.count,this.m_positionConstraints.length0?1/P:0;var E=s.tangent,O=j.CrossVV(B.rA,E),k=j.CrossVV(B.rB,E),R=f+_+d*O*O+p*k*k;B.tangentMass=R>0?1/R:0,B.velocityBias=0;var F=j.DotVV(s.normal,j.SubVV(j.AddVCrossSV(T,A,B.rB,j.s_t0),j.AddVCrossSV(b,S,B.rA,j.s_t1),j.s_t0));F<-1&&(B.velocityBias+=-s.restitution*F)}s.pointCount}},e.WarmStart=function(){for(var e=t.WarmStart_s_P,i=0;i0?-B/P:0;j.MulSV(O,A,a),b.SelfMulSub(d,a),S-=p*j.CrossVV(r,a),x.SelfMulAdd(g,a),w+=y*j.CrossVV(s,a)}this.m_positions[c].a=S,this.m_positions[f].a=w}return o>-.024},e.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,u=0,c=0;c0?-M/R:0;j.MulSV(F,D,h),x.SelfMulSub(y,h),w-=v*j.CrossVV(a,h),T.SelfMulAdd(b,h),A+=S*j.CrossVV(o,h)}this.m_positions[_].a=w,this.m_positions[d].a=A}return u>=-.012},t}();Ln.InitializeVelocityConstraints_s_xfA=new Q,Ln.InitializeVelocityConstraints_s_xfB=new Q,Ln.InitializeVelocityConstraints_s_worldManifold=new Rt,Ln.WarmStart_s_P=new j,Ln.SolveVelocityConstraints_s_dv=new j,Ln.SolveVelocityConstraints_s_dv1=new j,Ln.SolveVelocityConstraints_s_dv2=new j,Ln.SolveVelocityConstraints_s_P=new j,Ln.SolveVelocityConstraints_s_a=new j,Ln.SolveVelocityConstraints_s_b=new j,Ln.SolveVelocityConstraints_s_x=new j,Ln.SolveVelocityConstraints_s_d=new j,Ln.SolveVelocityConstraints_s_P1=new j,Ln.SolveVelocityConstraints_s_P2=new j,Ln.SolveVelocityConstraints_s_P1P2=new j,Ln.SolvePositionConstraints_s_xfA=new Q,Ln.SolvePositionConstraints_s_xfB=new Q,Ln.SolvePositionConstraints_s_psm=new Fn,Ln.SolvePositionConstraints_s_rA=new j,Ln.SolvePositionConstraints_s_rB=new j,Ln.SolvePositionConstraints_s_P=new j,Ln.SolveTOIPositionConstraints_s_xfA=new Q,Ln.SolveTOIPositionConstraints_s_xfB=new Q,Ln.SolveTOIPositionConstraints_s_psm=new Fn,Ln.SolveTOIPositionConstraints_s_rA=new j,Ln.SolveTOIPositionConstraints_s_rB=new j,Ln.SolveTOIPositionConstraints_s_P=new j;var Nn,Vn=function(){function e(){this.m_bodies=[],this.m_contacts=[],this.m_joints=[],this.m_positions=Bn.MakeArray(1024),this.m_velocities=In.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}var n=e.prototype;return n.Initialize=function(t,e,i,n){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_listener=n,this.m_positions.length4){var B=2/D.Length();A.SelfMul(B)}var I=h*C;I*I>g&&(C*=m/P(I)),w.x+=h*A.x,w.y+=h*A.y,T+=h*C,this.m_positions[x].a=T,this.m_velocities[x].w=C}o.Reset();for(var M=!1,O=0;O.0012184696791469947||j.DotVV(G.m_linearVelocity,G.m_linearVelocity)>1e-4?(G.m_sleepTime=0,z=0):(G.m_sleepTime+=h,z=E(z,G.m_sleepTime)))}if(z>=.5&&M)for(var H=0;H4){var v=2/y.Length();d.SelfMul(v)}var b=l*p;b*b>g&&(p*=m/P(b)),f.SelfMulAdd(l,d),_+=l*p,this.m_positions[c].a=_,this.m_velocities[c].w=p;var S=this.m_bodies[c];S.m_sweep.c.Copy(f),S.m_sweep.a=_,S.m_linearVelocity.Copy(d),S.m_angularVelocity=p,S.SynchronizeTransform()}this.Report(o.m_velocityConstraints)},n.Report=function(t){if(null!==this.m_listener)for(var i=0;i0){var r=1/this.m_mass;this.m_center.SelfMul(r),this.m_linearVelocity.SelfMul(r)}this.m_inertia=0,this.m_angularVelocity=0;for(var s=this.m_firstIndex;s0&&(this.m_angularVelocity*=1/this.m_inertia),this.m_timestamp=this.m_system.m_timestamp}},e}();jn.GetLinearVelocityFromWorldPoint_s_t0=new j;var qn=function(){function t(t){this.m_buffer=[],this.m_front=0,this.m_back=0,this.m_buffer.fill(null,0,t)}var e=t.prototype;return e.Push=function(t){if(this.m_back>=this.m_capacity){for(var e=this.m_front;e=0&&f>=0&&c0&&h.Push(new Kn(d-1,p,m-1,g)),p>0&&h.Push(new Kn(d,p-1,m-this.m_countX,g)),dL*L+N*N&&(this.m_diagram[P]=k,I>0&&h.Push(new Kn(I-1,M,P-1,k)),M>0&&h.Push(new Kn(I,M-1,P-this.m_countX,k)),I=i)break;Jn(t,h,i)}}if(0===a)break;r=i,i=s[--a]}return t}function $n(t,e,i,n){return void 0===i&&(i=t.length-e),void 0===n&&(n=Qn),Zn(t,e,i,n)}function tr(t,e,i){void 0===i&&(i=t.length);for(var n=0,r=0;r0;){var a=Math.floor(s/2),o=e+a;r(t[o],n)?(e=++o,s-=a+1):s=a}return e}function ir(t,e,i,n,r){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 nr(t,e,i,n){for(var r=i;e!==r;)Jn(t,e++,r++),r===n?r=i:e===i&&(i=r)}function rr(t,e,i,n){if(e===i)return i;for(var r=e;++e!==i;)n(t[r],t[e])||Jn(t,++r,e);return++r}var sr=function(){function t(t){this.data=[],this.count=0,this.capacity=0,this.allocator=t}var e=t.prototype;return e.Append=function(){return this.count>=this.capacity&&this.Grow(),this.count++},e.Reserve=function(t){if(!(this.capacity>=t)){for(var e=this.capacity;e=0;)this.ReportFixtureAndParticle(t,i,s);return!0},i.ReportParticle=function(){return!1},i.ReportFixtureAndParticle=function(){},e}(wn),or=function(){function t(){this.indexA=0,this.indexB=0,this.weight=0,this.normal=new j,this.flags=0}var e=t.prototype;return e.SetIndices=function(t,e){this.indexA=t,this.indexB=e},e.SetWeight=function(t){this.weight=t},e.SetNormal=function(t){this.normal.Copy(t)},e.SetFlags=function(t){this.flags=t},e.GetIndexA=function(){return this.indexA},e.GetIndexB=function(){return this.indexB},e.GetWeight=function(){return this.weight},e.GetNormal=function(){return this.normal},e.GetFlags=function(){return this.flags},e.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},e.IsNotEqual=function(t){return!this.IsEqual(t)},e.ApproximatelyEqual=function(t){return this.indexA===t.indexA&&this.indexB===t.indexB&&this.flags===t.flags&&P(this.weight-t.weight)<.01&&j.DistanceSquaredVV(this.normal,t.normal)<1e-4},t}(),hr=function(){this.index=0,this.weight=0,this.normal=new j,this.mass=0},ur=function(){this.indexA=0,this.indexB=0,this.flags=0,this.strength=0,this.distance=0},lr=function(){this.indexA=0,this.indexB=0,this.indexC=0,this.flags=0,this.strength=0,this.pa=new j(0,0),this.pb=new j(0,0),this.pc=new j(0,0),this.ka=0,this.kb=0,this.kc=0,this.s=0},cr=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}var e=t.prototype;return e.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},e.Clone=function(){return(new t).Copy(this)},t}(),fr=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 _r,this.m_flagsBuffer=new _r,this.m_positionBuffer=new _r,this.m_velocityBuffer=new _r,this.m_forceBuffer=[],this.m_weightBuffer=[],this.m_staticPressureBuffer=[],this.m_accumulationBuffer=[],this.m_accumulation2Buffer=[],this.m_depthBuffer=[],this.m_colorBuffer=new _r,this.m_groupBuffer=[],this.m_userDataBuffer=new _r,this.m_stuckThreshold=0,this.m_lastBodyContactStepBuffer=new _r,this.m_bodyContactCountBuffer=new _r,this.m_consecutiveContactStepsBuffer=new _r,this.m_stuckParticleBuffer=new sr((function(){return 0})),this.m_proxyBuffer=new sr((function(){return new dr})),this.m_contactBuffer=new sr((function(){return new or})),this.m_bodyContactBuffer=new sr((function(){return new hr})),this.m_pairBuffer=new sr((function(){return new ur})),this.m_triadBuffer=new sr((function(){return new lr})),this.m_expirationTimeBuffer=new _r,this.m_indexByExpirationTimeBuffer=new _r,this.m_timeElapsed=0,this.m_expirationTimeBufferRequiresSorting=!1,this.m_groupCount=0,this.m_groupList=null,this.m_def=new cr,this.m_prev=null,this.m_next=null,this.UpdateBodyContacts_callback=null,this.SolveCollision_callback=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)}n.computeTag=function(t,e){return(e+n.yOffset>>>0<>>0)>>>0},n.computeRelativeTag=function(t,e,i){return t+(i<>>0};var r=n.prototype;return r.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)},r.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:S;this.ReallocateInternalAllocatedBuffers(i)}if(this.m_count>=this.m_internalAllocatedCapacity){if(!this.m_def.destroyByAge)return y;this.DestroyOldestParticle(0,!1),this.SolveZombie()}var n=this.m_count++;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[n]=(this.m_positionBuffer.data[n]||new j).Copy(e(t.position,j.ZERO)),this.m_velocityBuffer.data[n]=(this.m_velocityBuffer.data[n]||new j).Copy(e(t.velocity,j.ZERO)),this.m_weightBuffer[n]=0,this.m_forceBuffer[n]=(this.m_forceBuffer[n]||new j).SetZero(),this.m_staticPressureBuffer&&(this.m_staticPressureBuffer[n]=0),this.m_depthBuffer&&(this.m_depthBuffer[n]=0);var r=(new tt).Copy(e(t.color,tt.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 tt).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;(this.m_expirationTimeBuffer.data||o)&&(this.SetParticleLifetime(n,o?a:this.ExpirationTimeToLifetime(-this.GetQuantizedTimeElapsed())),this.m_indexByExpirationTimeBuffer.data[n]=n),s.index=n;var h=e(t.group,null);return this.m_groupBuffer[n]=h,h&&(h.m_firstIndex0?n:r,e)},r.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 Sr(this,t,e,i),a=r;return t.ComputeAABB(a,e,0),this.m_world.QueryAABB(s,a),s.Destroyed()},r.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,j.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;o0&&(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))},r.GetStuckCandidates=function(){return this.m_stuckParticleBuffer.Data()},r.GetStuckCandidateCount=function(){return this.m_stuckParticleBuffer.GetCount()},r.ComputeCollisionEnergy=function(){for(var t=n.ComputeCollisionEnergy_s_v,e=this.m_velocityBuffer.data,i=0,r=0;r0?this.GetQuantizedTimeElapsed()+s:s;a!==this.m_expirationTimeBuffer.data[t]&&(this.m_expirationTimeBuffer.data[t]=a,this.m_expirationTimeBufferRequiresSorting=!0)},r.GetParticleLifetime=function(t){return this.ExpirationTimeToLifetime(this.GetExpirationTimeBuffer()[t])},r.SetDestructionByAge=function(t){t&&this.GetExpirationTimeBuffer(),this.m_def.destroyByAge=t},r.GetDestructionByAge=function(){return this.m_def.destroyByAge},r.GetExpirationTimeBuffer=function(){return this.m_expirationTimeBuffer.data=this.RequestBuffer(this.m_expirationTimeBuffer.data),this.m_expirationTimeBuffer.data},r.ExpirationTimeToLifetime=function(t){return(t>0?t-this.GetQuantizedTimeElapsed():t)*this.m_def.lifetimeGranularity},r.GetIndexByExpirationTimeBuffer=function(){return this.GetParticleCount()?this.SetParticleLifetime(0,this.GetParticleLifetime(0)):this.m_indexByExpirationTimeBuffer.data=this.RequestBuffer(this.m_indexByExpirationTimeBuffer.data),this.m_indexByExpirationTimeBuffer.data},r.ParticleApplyLinearImpulse=function(t,e){this.ApplyLinearImpulse(t,t+1,e)},r.ApplyLinearImpulse=function(t,e,i){for(var n=this.m_velocityBuffer.data,r=(e-t)*this.GetParticleMass(),s=(new j).Copy(i).SelfMul(1/r),a=t;a=0;){var m=j.SubVV(e,u[c],s),g=j.DotVV(m,_),y=g*g-d*(j.DotVV(m,m)-this.m_squaredDiameter);if(y>=0){var v=N(y),b=(-g-v)/d;if(b>f)continue;if(b<0&&((b=(-g+v)/d)<0||b>f))continue;var S=j.AddVMulSV(m,b,_,o);if(S.Normalize(),(f=E(f,t.ReportParticle(this,c,j.AddVMulSV(e,b,_,h),S,b)))<=0)break}}}},r.ComputeAABB=function(t){var e=this.GetParticleCount();t.lowerBound.x=1e37,t.lowerBound.y=1e37,t.upperBound.x=-1e37,t.upperBound.y=-1e37;for(var i=this.m_positionBuffer.data,n=0;ne?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_internalAllocatedCapacity0;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}},r.CreateParticleForGroup=function(t,i,n){var r=new zn;r.flags=e(t.flags,0),Q.MulXV(i,n,r.position),j.AddVV(e(t.linearVelocity,j.ZERO),j.CrossSV(e(t.angularVelocity,0),j.SubVV(r.position,e(t.position,j.ZERO),j.s_t0),j.s_t0),r.velocity),r.color.Copy(e(t.color,tt.ZERO)),r.lifetime=e(t.lifetime,0),r.userData=t.userData,this.CreateParticle(r)},r.CreateParticlesStrokeShapeForGroup=function(i,r,s){var a=n.CreateParticlesStrokeShapeForGroup_s_edge,o=n.CreateParticlesStrokeShapeForGroup_s_d,h=n.CreateParticlesStrokeShapeForGroup_s_p,u=e(r.stride,0);0===u&&(u=this.GetParticleStride());for(var l=0,c=i.GetChildCount(),f=0;f=e&&_=e&&dy||j.DotVV(m,m)>y||j.DotVV(g,g)>y)return;var v=A.m_groupBuffer[t],b=A.m_groupBuffer[e],S=A.m_groupBuffer[i],x=A.m_triadBuffer.data[A.m_triadBuffer.Append()];x.indexA=t,x.indexB=e,x.indexC=i,x.flags=u|l|c,x.strength=E(E(v?v.m_strength:1,b?b.m_strength:1),S?S.m_strength:1);var w=(f.x+_.x+d.x)/3,T=(f.y+_.y+d.y)/3;x.pa.x=f.x-w,x.pa.y=f.y-T,x.pb.x=_.x-w,x.pb.y=_.y-T,x.pc.x=d.x-w,x.pc.y=d.y-T,x.ka=-j.DotVV(g,p),x.kb=-j.DotVV(p,m),x.kc=-j.DotVV(m,g),x.s=j.CrossVV(f,_)+j.CrossVV(_,d)+j.CrossVV(d,f)}})),$n(this.m_triadBuffer.data,0,this.m_triadBuffer.count,n.CompareTriadIndices),this.m_triadBuffer.Unique(n.MatchTriadIndices)}},r.UpdatePairsAndTriadsWithReactiveParticles=function(){var e=new Tr(this.m_flagsBuffer);this.UpdatePairsAndTriads(0,this.m_count,e);for(var i=0;iO&&(this.m_depthBuffer[B]=O,A=!0),E>k&&(this.m_depthBuffer[I]=k,A=!0)}if(!A)break}for(var R=0;R0)for(var i=this.GetParticleCount(),r=0;rthis.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),null===this.UpdateBodyContacts_callback&&(this.UpdateBodyContacts_callback=new Ar(this));var a=this.UpdateBodyContacts_callback;a.m_contactFilter=this.GetFixtureContactFilter(),this.m_world.QueryAABB(a,s),this.m_def.strictContactCheck&&this.RemoveSpuriousBodyContacts(),this.NotifyBodyContactListenerPostContact(e)},r.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_iterationIndexi&&r.SelfMul(N(i/s))}},r.SolveGravity=function(t){for(var e=n.SolveGravity_s_gravity,i=this.m_velocityBuffer.data,r=j.MulSV(t.dt*this.m_def.gravityScale,this.m_world.GetGravity(),e),s=0;s=0;){var R=p[k],F=this.m_groupBuffer[k];if(D!==F&&B!==F){var L=this.GetLinearVelocity(F,k,R,h),V=j.SubVV(R,T,u),z=j.SubVV(L,I,l),U=j.CrossVV(E,z),G=j.CrossVV(P,z)-j.CrossVV(V,E),H=j.CrossVV(P,V),W=void 0,q=void 0,X=c,Y=f;if(0===U){if(0===G)continue;if(!((q=-H/G)>=0&&q=0&&W<=1))continue}else{var K=G*G-4*H*U;if(K<0)continue;var J=N(K),Q=(-G-J)/(2*U),Z=(-G+J)/(2*U);if(Q>Z){var $=Q;Q=Z,Z=$}if(q=Q,j.AddVMulSV(P,q,E,X),j.AddVMulSV(V,q,z,Y),W=j.DotVV(X,Y)/j.DotVV(X,X),!(q>=0&&q=0&&W<=1)){if(!((q=Z)>=0&&q=0&&W<=1))continue}}var tt=_;tt.x=I.x+W*E.x-L.x,tt.y=I.y+W*E.y-L.y;var et=j.MulSV(v,tt,d);if(F&&this.IsRigidGroup(F)){var it=F.GetMass(),nt=F.GetInertia();it>0&&F.m_linearVelocity.SelfMulAdd(1/it,et),nt>0&&(F.m_angularVelocity+=j.CrossVV(j.SubVV(R,F.GetCenter(),j.s_t0),et)/nt)}else m[k].SelfAdd(tt);this.ParticleApplyForce(k,et.SelfMul(-e.inv_dt))}}}}},r.SolveStaticPressure=function(e){this.m_staticPressureBuffer=this.RequestBuffer(this.m_staticPressureBuffer);for(var i=this.GetCriticalPressure(e),n=this.m_def.staticPressureStrength*i,r=b*i,s=this.m_def.staticPressureRelaxation,a=0;ao){var _=l.body,d=l.mass,p=r[c],m=l.normal,g=j.MulSV(a*d*(f-o),m,i);s[c].SelfMulSub(h,g),_.ApplyLinearImpulse(g,p,!0)}}}for(var y=0;yo){var S=v.indexA,x=v.indexB,w=v.normal,T=j.MulSV(a*(b-o),w,i);s[S].SelfSub(T),s[x].SelfAdd(T)}}}},r.SolveSolid=function(t){var e=n.SolveSolid_s_f,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=0?(C=E(C,M),D=O(D,M+1)):B=!0}Cr:s})),this.m_expirationTimeBufferRequiresSorting=!1);for(var s=r-1;s>=0;--s){var a=n[s],o=i[a];if(ee.weight:t.index3)return!0;var o=t.Copy(n.normal);o.SelfMul(r.m_particleDiameter*(1-n.weight));var h=j.AddVV(r.m_positionBuffer.data[n.index],o,e);if(!n.fixture.TestPoint(h)){for(var u=n.fixture.GetShape().GetChildCount(),c=0;cthis.m_stuckThreshold&&(this.m_stuckParticleBuffer.data[this.m_stuckParticleBuffer.Append()]=t)),this.m_lastBodyContactStepBuffer.data[t]=this.m_timestamp)},r.ValidateParticleIndex=function(t){return t>=0&&t0?1/n:0,e[0]=r>0?1/r:0,i[0]=j.CrossVV(j.SubVV(a,s,j.s_t0),o)},r.InitDampingParameterWithRigidGroupOrParticle=function(e,i,n,r,s,a,o,h){if(s&&r)this.InitDampingParameter(e,i,n,s.GetMass(),s.GetInertia(),s.GetCenter(),o,h);else{var u=this.m_flagsBuffer.data[a];this.InitDampingParameter(e,i,n,u&t.b2ParticleFlag.b2_wallParticle?0:this.GetParticleMass(),0,o,o,h)}},r.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},r.ApplyDamping=function(t,e,i,n,r,s,a,o){r&&n?(r.m_linearVelocity.SelfMulAdd(a*t,o),r.m_angularVelocity+=a*i*e):this.m_velocityBuffer.data[s].SelfMulAdd(a*t,o)},n}();fr.xTruncBits=12,fr.yTruncBits=12,fr.tagBits=32,fr.yOffset=1<>>0,this.m_xUpper=(i&fr.xMask)>>>0,this.m_yLower=(e&fr.yMask)>>>0,this.m_yUpper=(i&fr.yMask)>>>0,this.m_first=n,this.m_last=r}return t.prototype.GetNext=function(){for(;this.m_first>>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 y},t}(),mr=function(){this.next=null,this.count=0,this.index=0},gr=function(){function t(){}var e=t.prototype;return e.Allocate=function(t,e){return e},e.Clear=function(){},e.GetCount=function(){return 0},e.Invalidate=function(){},e.GetValidBuffer=function(){return[]},e.GetBuffer=function(){return[]},e.SetCount=function(){},t}(),yr=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.Initialize=function(){},i.Find=function(){return y},e}(gr),vr=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.Initialize=function(){},i.Find=function(){return y},e}(gr),br=function(){function t(){}var e=t.prototype;return e.IsNecessary=function(){return!0},e.ShouldCreatePair=function(){return!0},e.ShouldCreateTriad=function(){return!0},t}(),Sr=function(t){function e(e,i,n,r){var s;return(s=t.call(this)||this).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}s(e,t);var i=e.prototype;return i.ReportFixture=function(){return!1},i.ReportParticle=function(t,e){return t===this.m_system&&(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)},i.Destroyed=function(){return this.m_destroyed},e}(wn),xr=function(t){function e(e){var i;return(i=t.call(this)||this).m_threshold=0,i.m_threshold=e,i}s(e,t);var i=e.prototype;return i.ShouldCreatePair=function(t,e){return t0?1/f:0,p=_>0?1/_:0,m=this.m_system.m_flagsBuffer.data[r]&t.b2ParticleFlag.b2_wallParticle?0:this.m_system.GetParticleInvMass(),g=j.SubVV(o,c,a),y=j.CrossVV(g,h),v=m+d+p*y*y,b=this.m_system.m_bodyContactBuffer.data[this.m_system.m_bodyContactBuffer.Append()];b.index=r,b.body=l,b.fixture=e,b.weight=1-u*this.m_system.m_inverseDiameter,b.normal.Copy(h.SelfNeg()),b.mass=v>0?1/v:0,this.m_system.DetectStuckParticle(r)}},i}(ar);Ar.ReportFixtureAndParticle_s_n=new j,Ar.ReportFixtureAndParticle_s_rp=new j;var Cr=function(e){function i(t,i){var n;return(n=e.call(this,t)||this).m_step=i,n}s(i,e);var n=i.prototype;return n.ReportFixtureAndParticle=function(e,n,r){var s=i.ReportFixtureAndParticle_s_p1,a=i.ReportFixtureAndParticle_s_output,o=i.ReportFixtureAndParticle_s_input,h=i.ReportFixtureAndParticle_s_p,u=i.ReportFixtureAndParticle_s_v,c=i.ReportFixtureAndParticle_s_f,f=e.GetBody(),_=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 g=Q.MulTXV(f.m_xf0,_,s);e.GetShape().GetType()===t.b2ShapeType.e_circleShape&&(g.SelfSub(f.GetLocalCenter()),J.MulRV(f.m_xf0.q,g,g),J.MulTRV(f.m_xf.q,g,g),g.SelfAdd(f.GetLocalCenter())),Q.MulXV(f.m_xf,g,m.p1)}else m.p1.Copy(_);if(j.AddVMulSV(_,this.m_step.dt,d,m.p2),m.maxFraction=1,e.RayCast(p,m,n)){var y=p.normal,v=h;v.x=(1-p.fraction)*m.p1.x+p.fraction*m.p2.x+l*y.x,v.y=(1-p.fraction)*m.p1.y+p.fraction*m.p2.y+l*y.y;var b=u;b.x=this.m_step.inv_dt*(v.x-_.x),b.y=this.m_step.inv_dt*(v.y-_.y),this.m_system.m_velocityBuffer.data[r].Copy(b);var S=c;S.x=this.m_step.inv_dt*this.m_system.GetParticleMass()*(d.x-b.x),S.y=this.m_step.inv_dt*this.m_system.GetParticleMass()*(d.y-b.y),this.m_system.ParticleApplyForce(r,S)}},n.ReportParticle=function(){return!1},i}(ar);Cr.ReportFixtureAndParticle_s_p1=new j,Cr.ReportFixtureAndParticle_s_output=new Nt,Cr.ReportFixtureAndParticle_s_input=new Lt,Cr.ReportFixtureAndParticle_s_p=new j,Cr.ReportFixtureAndParticle_s_v=new j,Cr.ReportFixtureAndParticle_s_f=new j;var Dr=function(){function e(t){this.m_newFixture=!1,this.m_locked=!1,this.m_clearForces=!0,this.m_contactManager=new An,this.m_bodyList=null,this.m_jointList=null,this.m_particleSystemList=null,this.m_bodyCount=0,this.m_jointCount=0,this.m_gravity=new j,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 Cn,this.m_island=new Vn,this.s_stack=[],this.m_controllerList=null,this.m_controllerCount=0,this.m_gravity.Copy(t)}var n=e.prototype;return n.SetDestructionListener=function(t){this.m_destructionListener=t},n.SetContactFilter=function(t){this.m_contactManager.m_contactFilter=t},n.SetContactListener=function(t){this.m_contactManager.m_contactListener=t},n.SetDebugDraw=function(t){this.m_debugDraw=t},n.CreateBody=function(t){if(void 0===t&&(t={}),this.IsLocked())throw new Error;var e=new Mi(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},n.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 h=o;o=o.m_next,this.m_destructionListener&&this.m_destructionListener.SayGoodbyeFixture(h),h.DestroyProxies(),h.Reset(),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 Fi(e);case t.b2JointType.e_mouseJoint:return new qi(e);case t.b2JointType.e_prismaticJoint:return new Yi(e);case t.b2JointType.e_revoluteJoint:return new Zi(e);case t.b2JointType.e_pulleyJoint:return new Ji(e);case t.b2JointType.e_gearJoint:return new Gi(e);case t.b2JointType.e_wheelJoint:return new sn(e);case t.b2JointType.e_weldJoint:return new nn(e);case t.b2JointType.e_frictionJoint:return new zi(e);case t.b2JointType.e_ropeJoint:return new tn(e);case t.b2JointType.e_motorJoint:return new Wi(e);case t.b2JointType.e_areaJoint:return new Ni(e)}throw new Error},e._Joint_Destroy=function(){},n.CreateJoint=function(t){if(this.IsLocked())throw new Error;var i=e._Joint_Create(t);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=i.m_bodyA,r=i.m_bodyB;if(!i.m_collideConnected)for(var s=r.GetContactList();s;)s.other===n&&s.contact.FlagForFiltering(),s=s.next;return i},n.DestroyJoint=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_jointList&&(this.m_jointList=t.m_next);var i=t.m_bodyA,n=t.m_bodyB,r=t.m_collideConnected;if(i.SetAwake(!0),n.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===i.m_jointList&&(i.m_jointList=t.m_edgeA.next),t.m_edgeA.Reset(),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===n.m_jointList&&(n.m_jointList=t.m_edgeB.next),t.m_edgeB.Reset(),e._Joint_Destroy(t),--this.m_jointCount,!r)for(var s=n.GetContactList();s;)s.other===i&&s.contact.FlagForFiltering(),s=s.next},n.CreateParticleSystem=function(t){if(this.IsLocked())throw new Error;var e=new fr(t,this);return e.m_prev=null,e.m_next=this.m_particleSystemList,this.m_particleSystemList&&(this.m_particleSystemList.m_prev=e),this.m_particleSystemList=e,e},n.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)},n.CalculateReasonableParticleIterations=function(t){if(null===this.m_particleSystemList)return 1;return Un(this.m_gravity.Length(),function(t){for(var e=i,n=t.GetParticleSystemList();null!==n;n=n.m_next)e=E(e,n.GetRadius());return e}(this),t)},n.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 h=e.Step_s_timer.Reset(),u=this.m_particleSystemList;u;u=u.m_next)u.Solve(a);this.Solve(a),this.m_profile.solve=h.GetMilliseconds()}if(this.m_continuousPhysics&&a.dt>0){var l=e.Step_s_timer.Reset();this.SolveTOI(a),this.m_profile.solveTOI=l.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()},n.ClearForces=function(){for(var t=this.m_bodyList;t;t=t.m_next)t.m_force.SetZero(),t.m_torque=0},n.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)}}},n.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 h=this.m_jointList;h;h=h.m_next)this.DrawJoint(h);if(i&t.b2DrawFlags.e_aabbBit){n.SetRGB(.9,.3,.9);for(var u=e.DrawDebugData_s_vs,l=this.m_bodyList;l;l=l.m_next)if(l.IsActive())for(var c=l.GetFixtureList();c;c=c.m_next)for(var f=0;f0;){var c=h[--l];if(!c)throw new Error;if(r.AddBody(c),c.m_awakeFlag=!0,c.GetType()!==t.b2BodyType.b2_staticBody){for(var f=c.m_contactList;f;f=f.next){var _=f.contact;if(!_.m_islandFlag&&_.IsEnabled()&&_.IsTouching()){var d=_.m_fixtureA.m_isSensor,p=_.m_fixtureB.m_isSensor;if(!d&&!p){r.AddContact(_),_.m_islandFlag=!0;var m=f.other;m.m_islandFlag||(h[l++]=m,m.m_islandFlag=!0)}}}for(var g=c.m_jointList;g;g=g.next)if(!g.joint.m_islandFlag){var y=g.other;y.IsActive()&&(r.AddJoint(g.joint),g.joint.m_islandFlag=!0,y.m_islandFlag||(h[l++]=y,y.m_islandFlag=!0))}}}var v=new Cn;r.Solve(v,e,this.m_gravity,this.m_allowSleep),this.m_profile.solveInit+=v.solveInit,this.m_profile.solveVelocity+=v.solveVelocity,this.m_profile.solvePosition+=v.solvePosition;for(var b=0;b8)){var u=1;if(h.m_toiFlag)u=h.m_toi;else{var l=h.GetFixtureA(),c=h.GetFixtureB();if(l.IsSensor()||c.IsSensor())continue;var f=l.GetBody(),_=c.GetBody(),d=f.m_type,p=_.m_type,m=f.IsAwake()&&d!==t.b2BodyType.b2_staticBody,g=_.IsAwake()&&p!==t.b2BodyType.b2_staticBody;if(!m&&!g)continue;var y=f.IsBullet()||d!==t.b2BodyType.b2_dynamicBody,v=_.IsBullet()||p!==t.b2BodyType.b2_dynamicBody;if(!y&&!v)continue;var b=f.m_sweep.alpha0;f.m_sweep.alpha0<_.m_sweep.alpha0?(b=_.m_sweep.alpha0,f.m_sweep.Advance(b)):_.m_sweep.alpha0this.maxTimestep&&this.maxTimestep>0&&(i=this.maxTimestep);for(var n=this.m_bodyList;n;n=n.nextBody){var s=n.body;if(s.IsAwake()){var a=s.GetWorldVector(Y.MulMV(this.T,s.GetLocalVector(s.GetLinearVelocity(),j.s_t0),j.s_t1),e.Step_s_damping);s.SetLinearVelocity(j.AddVV(s.GetLinearVelocity(),j.MulSV(i,a,j.s_t0),j.s_t1))}}}},i.Draw=function(){},i.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/O(t,e):0},e}(Ir);kr.Step_s_damping=new j;var Rr=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 j,this.m_damping=0,this.m_k2=1,this.m_k3=.1}var e=t.prototype;return e.GetVertexCount=function(){return this.m_count},e.GetVertices=function(){return this.m_ps},e.Initialize=function(t){this.m_count=t.count,this.m_ps=j.MakeArray(this.m_count),this.m_p0s=j.MakeArray(this.m_count),this.m_vs=j.MakeArray(this.m_count),this.m_ims=D(this.m_count);for(var e=0;e0?1/i:0}var n=this.m_count-1,r=this.m_count-2;this.m_Ls=D(n),this.m_as=D(r);for(var s=0;s0&&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(var r=0;ro;)w=(m-=2*o)-this.m_as[i];for(;w<-3.14159265359;)w=(m+=2*o)-this.m_as[i];var T=-this.m_k3*x*w;n.SelfMulAdd(a*T,v),r.SelfMulAdd(h*T,b),s.SelfMulAdd(u*T,S)}}}},e.Draw=function(t){for(var e=new tt(.4,.5,.7),i=0;i1?e-1:0),n=1;n0&&!(t&t-1)},t.b2IsValid=R,t.b2Island=Vn,t.b2Jacobian=Pi,t.b2Joint=ki,t.b2JointDef=Oi,t.b2JointEdge=Ei,t.b2Log=function(){},t.b2MakeArray=C,t.b2MakeNullArray=function(t){for(var e=new Array(t),i=0;i>1&2147483647,t|=t>>2&1073741823,t|=t>>4&268435455,1+((t|=t>>8&16777215)|t>>16&65535)},t.b2Pair=Zt,t.b2PairLessThan=te,t.b2ParseInt=function(t){return parseInt(t,10)},t.b2ParseUInt=function(t){return Math.abs(parseInt(t,10))},t.b2ParticleBodyContact=hr,t.b2ParticleContact=or,t.b2ParticleDef=zn,t.b2ParticleGroup=jn,t.b2ParticleGroupDef=Wn,t.b2ParticleHandle=Hn,t.b2ParticlePair=ur,t.b2ParticlePairSet=vr,t.b2ParticleSystem=fr,t.b2ParticleSystemDef=cr,t.b2ParticleSystem_CompositeShape=wr,t.b2ParticleSystem_ConnectionFilter=br,t.b2ParticleSystem_DestroyParticlesInShapeCallback=Sr,t.b2ParticleSystem_FixedSetAllocator=gr,t.b2ParticleSystem_FixtureParticle=function(t,e){this.second=y,this.first=t,this.second=e},t.b2ParticleSystem_FixtureParticleSet=yr,t.b2ParticleSystem_InsideBoundsEnumerator=pr,t.b2ParticleSystem_JoinParticleGroupsFilter=xr,t.b2ParticleSystem_ParticleListNode=mr,t.b2ParticleSystem_ParticlePair=function(t,e){this.first=y,this.second=y,this.first=t,this.second=e},t.b2ParticleSystem_Proxy=dr,t.b2ParticleSystem_ReactiveFilter=Tr,t.b2ParticleSystem_SolveCollisionCallback=Cr,t.b2ParticleSystem_UpdateBodyContactsCallback=Ar,t.b2ParticleSystem_UserOverridableBuffer=_r,t.b2ParticleTriad=lr,t.b2PolygonAndCircleContact=fn,t.b2PolygonContact=cn,t.b2PolygonShape=bi,t.b2Position=Bn,t.b2PositionSolverManifold=Fn,t.b2Pow=V,t.b2PrismaticJoint=Yi,t.b2PrismaticJointDef=Xi,t.b2Profile=Cn,t.b2PulleyJoint=Ji,t.b2PulleyJointDef=Ki,t.b2QueryCallback=wn,t.b2RadToDeg=function(t){return t*I},t.b2Random=function(){return 2*Math.random()-1},t.b2RandomRange=function(t,e){return(e-t)*Math.random()+t},t.b2RayCastCallback=Tn,t.b2RayCastInput=Lt,t.b2RayCastOutput=Nt,t.b2RevoluteJoint=Zi,t.b2RevoluteJointDef=Qi,t.b2Rope=Rr,t.b2RopeDef=function(){this.vertices=[],this.count=0,this.masses=[],this.gravity=new j(0,0),this.damping=.1,this.k2=.9,this.k3=.1},t.b2RopeJoint=tn,t.b2RopeJointDef=$i,t.b2Rot=J,t.b2SeparationFunction=fe,t.b2Shape=yi,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=O(i.m_radius,f)+O(n.m_radius,f),s=e.transformA,a=e.transformB,o=e.translationB,h=St.Set(0,0),u=0,l=xt;l.m_count=0;for(var c=l.m_vertices,_=i.GetSupport(J.MulTRV(s.q,j.NegV(o,j.s_t1),j.s_t0)),d=Q.MulXV(s,i.GetVertex(_),wt),p=n.GetSupport(J.MulTRV(a.q,o,j.s_t0)),m=Q.MulXV(a,n.GetVertex(p),Tt),g=j.SubVV(d,m,At),y=O(f,r-f),v=0;v<20&&P(g.Length()-y)>.004;){t.iterations+=1,_=i.GetSupport(J.MulTRV(s.q,j.NegV(g,j.s_t1),j.s_t0)),d=Q.MulXV(s,i.GetVertex(_),wt),p=n.GetSupport(J.MulTRV(a.q,g,j.s_t0)),m=Q.MulXV(a,n.GetVertex(p),Tt);var b=j.SubVV(d,m,Ct);g.Normalize();var S=j.DotVV(g,b),x=j.DotVV(g,o);if(S-y>u*x){if(x<=0)return!1;if((u=(S-y)/x)>1)return!1;h.Copy(g).SelfNeg(),l.m_count=0}var w=c[l.m_count];switch(w.indexA=p,w.wA.Copy(m).SelfMulAdd(u,o),w.indexB=_,w.wB.Copy(d),w.w.Copy(w.wB).SelfSub(w.wA),w.a=1,l.m_count+=1,l.m_count){case 1:break;case 2:l.Solve2();break;case 3:l.Solve3()}if(3===l.m_count)return!1;l.GetClosestPoint(g),++v}var T=Dt,A=Bt;return l.GetWitnessPoints(T,A),g.LengthSquared()>0&&(h.Copy(g).SelfNeg(),h.Normalize()),t.normal.Copy(h),t.lambda=u,t.iterations=v,!0},t.b2ShapeCastInput=function(){this.proxyA=new st,this.proxyB=new st,this.transformA=new Q,this.transformB=new Q,this.translationB=new j},t.b2ShapeCastOutput=function(){this.point=new j,this.normal=new j,this.lambda=0,this.iterations=0},t.b2Simplex=lt,t.b2SimplexCache=at,t.b2SimplexVertex=ut,t.b2Sin=U,t.b2SolverData=Mn,t.b2Sq=F,t.b2Sqrt=N,t.b2StackAllocator=function(){},t.b2Swap=function(t,e){var i=t[0];t[0]=e[0],e[0]=i},t.b2Sweep=$,t.b2TOIInput=ue,t.b2TOIOutput=ce,t.b2TensorDampingController=kr,t.b2TestOverlapAABB=zt,t.b2TestOverlapShape=jt,t.b2TimeOfImpact=xe,t.b2TimeStep=Dn,t.b2Timer=it,t.b2Transform=Q,t.b2TreeNode=Xt,t.b2Vec2=j,t.b2Vec2_zero=q,t.b2Vec3=X,t.b2Velocity=In,t.b2VelocityConstraintPoint=En,t.b2Version=T,t.b2WeldJoint=nn,t.b2WeldJointDef=en,t.b2WheelJoint=sn,t.b2WheelJointDef=rn,t.b2World=Dr,t.b2WorldManifold=Rt,t.b2_180_over_pi=I,t.b2_aabbExtension=h,t.b2_aabbMultiplier=2,t.b2_angularSleepTolerance=w,t.b2_angularSlop=c,t.b2_barrierCollisionTime=2.5,t.b2_baumgarte=.2,t.b2_branch="master",t.b2_commit="fbf51801d80fc389d43dc46524520e89043b6faf",t.b2_epsilon=r,t.b2_epsilon_sq=a,t.b2_gjk_reset=function(){t.b2_gjkCalls=0,t.b2_gjkIters=0,t.b2_gjkMaxIters=0},t.b2_invalidParticleIndex=y,t.b2_linearSleepTolerance=x,t.b2_linearSlop=l,t.b2_maxAngularCorrection=d,t.b2_maxFloat=i,t.b2_maxLinearCorrection=_,t.b2_maxManifoldPoints=2,t.b2_maxParticleForce=.5,t.b2_maxParticleIndex=2147483647,t.b2_maxParticlePressure=b,t.b2_maxPolygonVertices=8,t.b2_maxRotation=m,t.b2_maxRotationSquared=g,t.b2_maxSubSteps=8,t.b2_maxTOIContacts=32,t.b2_maxTranslation=2,t.b2_maxTranslationSquared=4,t.b2_maxTriadDistance=2,t.b2_maxTriadDistanceSquared=4,t.b2_minParticleSystemBufferCapacity=S,t.b2_minParticleWeight=1,t.b2_minPulleyLength=2,t.b2_particleStride=v,t.b2_pi=o,t.b2_pi_over_180=B,t.b2_polygonRadius=f,t.b2_timeToSleep=.5,t.b2_toiBaumgarte=.75,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.b2_two_pi=M,t.b2_velocityThreshold=1,t.b2_version=A,t.g_blockSolve=Pn,Object.defineProperty(t,"__esModule",{value:!0})}(eDt);var iDt=eDt;tDt(iDt);var nDt=iDt,rDt={};for(var sDt in nDt)-1===sDt.indexOf("b2_")&&(rDt[sDt.replace("b2","")]=nDt[sDt]);var aDt=tDt(rDt),oDt=t("f9",{Static:0,Kinematic:1,Dynamic:2,Animated:3});Pe(oDt),Pe(t("fa",{None:0,BOX:1,CIRCLE:2,POLYGON:3})),Pe(t("fb",{None:0,DISTANCE:1,SPRING:2,WHEEL:3,MOUSE:4,FIXED:5,SLIDER:6,RELATIVE:7,HINGE:8}));var hDt=t("fc",{DEFAULT:1});Pe(hDt),t("fd",hDt),t("fe",{Closest:0,Any:1,AllClosest:2,All:3});var uDt=t("ff",{None:"none-contact",BEGIN_CONTACT:"begin-contact",END_CONTACT:"end-contact",PRE_SOLVE:"pre-solve",POST_SOLVE:"post-solve"}),lDt=(t("fg",{None:0,Shape:1,Joint:2,Aabb:4,Pair:8,CenterOfMass:16,Particle:32,Controller:64,All:63}),t("fh",32)),cDt=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;r=3?1:n):-1},i.getFixtures=function(){return this._fixtures},i.getPoints=function(){return this._points},i.getNormals=function(){return this._normals},i.getFractions=function(){return this._fractions},e}(aDt.RayCastCallback);function dDt(t,e){var i=e.length;return e[t<0?i- -t%i:t%i]}function pDt(t,e,i){for(var n=[];e0}function bDt(t,e,i){return BDt(t,e,i)>=0}function SDt(t,e,i){return BDt(t,e,i)<=0}function xDt(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function wDt(t){TDt(t)||t.reverse()}function TDt(t){return t.length<3||ADt(t)>0}function ADt(t){var e,i=0;for(e=0;e0&&_<1&&d>0&&d<1&&(r.x=s+_*(o-s),r.y=a+_*(h-a),!0))}function BDt(t,e,i){return t.x*(e.y-i.y)+e.x*(i.y-t.y)+i.x*(t.y-e.y)}var IDt=Object.freeze({__proto__:null,ConvexPartition:function t(e){wDt(e);for(var i,n,r,s=[],a=0,o=0,h=0,u=new _s,l=new _s,c=0,f=0,_=0;_m&&(g=y,m=v)}n=pDt(_,g,e),r=pDt(g,_,e)}return(s=s.concat(t(n))).concat(t(r))}s.push(e);for(var b=s.length-1;b>=0;b--)0==s[b].length&&s.splice(b,0);return s},ForceCounterClockWise:wDt,IsCounterClockWise:TDt});function MDt(t){FDt(t);for(var e=!0,i=0,n=t.length;i0||EDt(c,l,a[(o+2)%h])>0)){for(var m=[],g=(o+1)%h;g!==o;g=(g+1)%h)m.push(a[g]);m.push(u,c),a=m,h=m.length,o=-1,s.splice(f,1)}}r.push(a)}return r}var PDt=function(){this.isActive=!1,this.isConvex=!1,this.isEar=!1,this.point=null,this.angleCos=0,this.shouldUpdate=!1,this.index=0,this.prev=null,this.next=null};function EDt(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function ODt(t,e,i){return EDt(t,e,i)<0}function kDt(t,e){return t.x===e.x&&t.y===e.y}function RDt(t){for(var e=0,i=0,n=t.length;i0}function FDt(t){RDt(t)&&t.reverse()}function LDt(t,e){if(t.shouldUpdate){t.shouldUpdate=!1;var i=t.prev.point,n=t.point,r=t.next.point;t.isConvex=ODt(i,n,r);var s=i.x-n.x,a=i.y-n.y,o=Math.sqrt(s*s+a*a);s/=o,a/=o;var h=r.x-n.x,u=r.y-n.y,l=Math.sqrt(h*h+u*u);if(h/=l,u/=l,t.angleCos=s*h+a*u,t.isConvex){t.isEar=!0;for(var c=0,f=e.length;c0&&m>0&&g>0){t.isEar=!1;break}if(0===p&&m>=0&&g>=0&&(EDt(i,_.prev.point,n)>0||EDt(i,_.next.point,n)>0)){t.isEar=!1;break}if(0===m&&p>=0&&g>=0&&(EDt(n,_.prev.point,r)>0||EDt(n,_.next.point,r)>0)){t.isEar=!1;break}if(0===g&&p>=0&&m>=0&&(EDt(r,_.prev.point,i)>0||EDt(r,_.next.point,i)>0)){t.isEar=!1;break}}}}}else t.isEar=!1}}function NDt(t){for(var e=t,i=t;;)if(kDt(e.point,e.next.point)||0===EDt(e.prev.point,e.point,e.next.point)){if(e.prev.next=e.next,e.next.prev=e.prev,e.prev.shouldUpdate=!0,e.next.shouldUpdate=!0,e===e.next)break;i=e.prev,e=e.next}else if((e=e.next)===i)break}function VDt(t){if(FDt(t),t.length<4)return[t];for(var e=t.length,i=[],n=[],r=0;ru.angleCos&&(u=c):u=c)}if(!u){for(var f=0;f1e-5)return et(9644),null}}break}if(n.push([u.prev.point,u.point,u.next.point]),u.isActive=!1,u.prev.next=u.next,u.next.prev=u.prev,u.prev.shouldUpdate=!0,u.next.shouldUpdate=!0,NDt(u.next),h===e-4)break;for(var g=0;g1e-5&&n.push([b,S,x])}}return n}var zDt=Object.freeze({__proto__:null,ConvexPartition:MDt}),UDt=function(t){if(1===t){for(var e=this,i=function(t){var i="_"+(1<e;)this.physicsWorld.step(e,i,n),this._accumulator-=e;for(var s=this._delayEvents,a=0,o=s.length;a0){for(var a=r.getPoints(),o=r.getNormals(),h=r.getFractions(),u=[],l=0,c=s.length;lMath.PI&&(r-=Yi);var s=(this._animatedAngle-r)*n;this._animatedAngle<-Xi&&r>Xi&&(s=(this._animatedAngle+Yi-r)*n),this._animatedAngle>Xi&&r<-Xi&&(s=(this._animatedAngle-Yi-r)*n),e.SetAngularVelocity(s)}},e.syncSceneToPhysics=function(){var t=this._rigidBody.node.hasChangedFlags;t&&this.nodeTransformChanged(t)},e.syncPositionToPhysics=function(t){void 0===t&&(t=!1);var e=this._body;if(e){var i,n=this._rigidBody.node.worldPosition,r=this._rigidBody.type;(i=3===r?e.GetLinearVelocity():e.GetPosition()).x=n.x/lDt,i.y=n.y/lDt,3===r&&t?this._animatedPos.set(i.x,i.y):e.SetTransformVec(i,e.GetAngle())}},e.syncRotationToPhysics=function(t){void 0===t&&(t=!1);var e=this._body;if(e){var i=this._rigidBody.node.worldRotation,n=OPt;Or.toEulerInYXZOrder(n,i);var r=en(n.z);3===this._rigidBody.type&&t?this._animatedAngle=r:e.SetTransformVec(e.GetPosition(),r)}},e.resetVelocity=function(){var t=this._body;if(t){var e=t.m_linearVelocity;e.Set(0,0),t.SetLinearVelocity(e),t.SetAngularVelocity(0)}},e.setType=function(t){HDt.instance.physicsWorld._updateBodyType(this),this._body.SetType(t)},e.setLinearDamping=function(t){this._body.SetLinearDamping(t)},e.setAngularDamping=function(t){this._body.SetAngularDamping(t)},e.setGravityScale=function(t){this._body.SetGravityScale(t)},e.setFixedRotation=function(t){this._body.SetFixedRotation(t)},e.setAllowSleep=function(t){this._body.SetSleepingAllowed(t)},e.isActive=function(){return this._body.IsActive()},e.setActive=function(t){this._body.m_world.IsLocked()||this._body.SetActive(t)},e.wakeUp=function(){this._body.SetAwake(!0)},e.sleep=function(){this._body.SetAwake(!1)},e.getMass=function(){return this._body.GetMass()},e.setLinearVelocity=function(t){this._body.SetLinearVelocity(t)},e.getLinearVelocity=function(t){var e=this._body.GetLinearVelocity();return t.x=e.x,t.y=e.y,t},e.getLinearVelocityFromWorldPoint=function(t,e){return kPt.Set(t.x/lDt,t.y/lDt),this._body.GetLinearVelocityFromWorldPoint(kPt,e),e.x*=lDt,e.y*=lDt,e},e.setAngularVelocity=function(t){this._body.SetAngularVelocity(t)},e.getAngularVelocity=function(){return this._body.GetAngularVelocity()},e.getLocalVector=function(t,e){return e=e||new _s,kPt.Set(t.x/lDt,t.y/lDt),this._body.GetLocalVector(kPt,e),e.x*=lDt,e.y*=lDt,e},e.getWorldVector=function(t,e){return kPt.Set(t.x/lDt,t.y/lDt),this._body.GetWorldVector(kPt,e),e.x*=lDt,e.y*=lDt,e},e.getLocalPoint=function(t,e){return e=e||new _s,kPt.Set(t.x/lDt,t.y/lDt),this._body.GetLocalPoint(kPt,e),e.x*=lDt,e.y*=lDt,e},e.getWorldPoint=function(t,e){return e=e||new _s,kPt.Set(t.x/lDt,t.y/lDt),this._body.GetWorldPoint(kPt,e),e.x*=lDt,e.y*=lDt,e},e.getLocalCenter=function(t){t=t||new _s;var e=this._body.GetLocalCenter();return t.x=e.x*lDt,t.y=e.y*lDt,t},e.getWorldCenter=function(t){t=t||new _s;var e=this._body.GetWorldCenter();return t.x=e.x*lDt,t.y=e.y*lDt,t},e.getInertia=function(){return this._body.GetInertia()},e.applyForce=function(t,e,i){this._body&&(kPt.Set(e.x/lDt,e.y/lDt),this._body.ApplyForce(t,kPt,i))},e.applyForceToCenter=function(t,e){this._body&&this._body.ApplyForceToCenter(t,e)},e.applyTorque=function(t,e){this._body&&this._body.ApplyTorque(t,e)},e.applyLinearImpulse=function(t,e,i){this._body&&(kPt.Set(e.x/lDt,e.y/lDt),this._body.ApplyLinearImpulse(t,kPt,i))},e.applyLinearImpulseToCenter=function(t,e){this._body&&this._body.ApplyLinearImpulse(t,this._body.GetPosition(),e)},e.applyAngularImpulse=function(t,e){this._body&&this._body.ApplyAngularImpulse(t,e)},n(t,[{key:"impl",get:function(){return this._body}},{key:"_imp",set:function(t){this._body=t}},{key:"rigidBody",get:function(){return this._rigidBody}},{key:"isAwake",get:function(){return this._body.IsAwake()}},{key:"isSleeping",get:function(){return!this._body.IsAwake()}}]),t}(),FPt=new aDt.Filter,LPt=new aDt.Vec2,NPt=new aDt.Vec2;function VPt(t){var e=t.collider;return e.body?FPt.categoryBits=1===e.group?e.body.group:e.group:FPt.categoryBits=e.group,FPt.maskBits=HDt.instance.collisionMatrix[FPt.categoryBits],FPt}var zPt,UPt=function(){function t(){this._shapes=[],this._fixtures=[],this._collider=null,this._body=null,this._inited=!1,this._rect=new vs}var e=t.prototype;return e.initialize=function(t){this._collider=t},e.onLoad=function(){},e.onEnable=function(){HDt.instance._callAfterStep(this,this._init)},e.onDisable=function(){HDt.instance._callAfterStep(this,this._destroy)},e.start=function(){},e.onGroupChanged=function(){var t=VPt(this);this._fixtures.forEach((function(e){e.SetFilterData(t)}))},e.apply=function(){this._destroy(),this.collider.enabledInHierarchy&&this._init()},e.getFixtureIndex=function(t){return this._fixtures.indexOf(t)},e._createShapes=function(){return[]},e._init=function(){if(!this._inited){var t=this.collider,e=t.node.worldScale,i=er.ZERO,n=t.getComponent(rPt);n&&n.impl&&n.impl.impl?this._body=n.impl.impl:(this._body=HDt.instance.physicsWorld.groundBodyImpl,i=t.node.worldPosition);for(var r=0===e.x&&0===e.y?[]:this._createShapes(e.x,e.y,i.x,i.y),s=VPt(this),a=0;a=0;i--){var n=t[i];n.m_userData=null,HDt.instance.physicsWorld.unregisterContactFixture(n),e&&e.DestroyFixture(n)}this._body=null,this._fixtures.length=0,this._shapes.length=0,this._inited=!1}},n(t,[{key:"impl",get:function(){return this._shapes}},{key:"collider",get:function(){return this._collider}},{key:"worldAABB",get:function(){for(var t=1e7,e=t,i=t,n=-1e7,r=-1e7,s=this._fixtures,a=0;an&&(n=NPt.x),NPt.y>r&&(r=NPt.y)}e*=lDt,i*=lDt,n*=lDt,r*=lDt;var c=this._rect;return c.x=e,c.y=i,c.width=n-e,c.height=r-i,c}}]),t}(),GPt=new vs,HPt=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;r0&&a[0].equals(a[a.length-1])&&(a.length-=1);var o=MDt(a);if(!o)return et(16408,s.node.name),r;for(var h=s.offset,u=0;u=0&&e.allMaterials.splice(i,1),!0}return!1},i.setValues=function(t,i,n,r){var s=this._friction!==t||this._rollingFriction!==i||this._spinningFriction!==n||this._restitution!==r;this._friction=t,this._rollingFriction=i,this._spinningFriction=n,this._restitution=r,s&&this.emit(e.EVENT_UPDATE)},n(e,[{key:"friction",get:function(){return this._friction},set:function(t){Ji(this._friction,t)||(this._friction=t,this.emit(e.EVENT_UPDATE))}},{key:"rollingFriction",get:function(){return this._rollingFriction},set:function(t){Ji(this._rollingFriction,t)||(this._rollingFriction=t,this.emit(e.EVENT_UPDATE))}},{key:"spinningFriction",get:function(){return this._spinningFriction},set:function(t){Ji(this._spinningFriction,t)||(this._spinningFriction=t,this.emit(e.EVENT_UPDATE))}},{key:"restitution",get:function(){return this._restitution},set:function(t){Ji(this._restitution,t)||(this._restitution=t,this.emit(e.EVENT_UPDATE))}}]),e}(xm),HEt.allMaterials=[],HEt.EVENT_UPDATE="event_update",HEt._idCounter=0,v((NEt=HEt).prototype,"friction",[OEt],Object.getOwnPropertyDescriptor(NEt.prototype,"friction"),NEt.prototype),v(NEt.prototype,"rollingFriction",[kEt],Object.getOwnPropertyDescriptor(NEt.prototype,"rollingFriction"),NEt.prototype),v(NEt.prototype,"spinningFriction",[REt],Object.getOwnPropertyDescriptor(NEt.prototype,"spinningFriction"),NEt.prototype),v(NEt.prototype,"restitution",[FEt],Object.getOwnPropertyDescriptor(NEt.prototype,"restitution"),NEt.prototype),VEt=Vh(NEt.prototype,"_friction",[hu],(function(){return.6})),zEt=Vh(NEt.prototype,"_rollingFriction",[hu],(function(){return 0})),UEt=Vh(NEt.prototype,"_spinningFriction",[hu],(function(){return 0})),GEt=Vh(NEt.prototype,"_restitution",[hu],(function(){return 0})),LEt=NEt))||LEt)),ZEt=t("fF",function(){function t(){this._hitPoint=new er,this._hitNormal=new er,this._distance=0,this._collider=null,this._closestHitFraction=0}var e=t.prototype;return e._assign=function(t,e,i,n,r){er.copy(this._hitPoint,t),er.copy(this._hitNormal,n),this._distance=e,this._collider=i,r&&(this._closestHitFraction=r)},e.clone=function(){var e=new t;return er.copy(e._hitPoint,this._hitPoint),er.copy(e._hitNormal,this._hitNormal),e._distance=this._distance,e._collider=this._collider,e._closestHitFraction=this._closestHitFraction,e},n(t,[{key:"hitPoint",get:function(){return this._hitPoint}},{key:"distance",get:function(){return this._distance}},{key:"collider",get:function(){return this._collider}},{key:"hitNormal",get:function(){return this._hitNormal}},{key:"closestHitFraction",get:function(){return this._closestHitFraction}}]),t}()),$Et=t("fG",function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;r=this._fixedTimeStep)){this.physicsWorld.syncSceneToPhysics();break}this.physicsWorld.syncSceneToPhysics(),this.physicsWorld.step(this._fixedTimeStep),this.physicsWorld.emitEvents(),this.physicsWorld.syncAfterEvents(),this._accumulator-=this._fixedTimeStep,this._subStepCount++}WE.emit("director_after_physics")}}else this.physicsWorld.syncSceneToPhysics()},e.resetConfiguration=function(t){var e=t?t.allowSleep:mOt("physics","allowSleep");"boolean"==typeof e&&(this._allowSleep=e);var i=t?t.fixedTimeStep:mOt("physics","fixedTimeStep");"number"==typeof i&&(this._fixedTimeStep=i);var n=t?t.maxSubSteps:mOt("physics","maxSubSteps");"number"==typeof n&&(this._maxSubSteps=n);var r=t?t.sleepThreshold:mOt("physics","sleepThreshold");"number"==typeof r&&(this._sleepThreshold=r);var s=t?t.autoSimulation:mOt("physics","autoSimulation");"boolean"==typeof s&&(this.autoSimulation=s);var a=t?t.gravity:mOt("physics","gravity");a&&er.copy(this._gravity,a);var o=t?t.collisionMatrix:mOt("physics","collisionMatrix");if(o)for(var h in o)this.collisionMatrix[""+(1<>>0,this.raycastOptions.maxDistance=i,this.raycastOptions.queryTrigger=n,this.physicsWorld.raycast(t,this.raycastOptions,this.raycastResultPool,this.raycastResults))},e.raycastClosest=function(t,e,i,n){return void 0===e&&(e=4294967295),void 0===i&&(i=1e7),void 0===n&&(n=!0),!!this.physicsWorld&&(this.raycastOptions.mask=e>>>0,this.raycastOptions.maxDistance=i,this.raycastOptions.queryTrigger=n,this.physicsWorld.raycastClosest(t,this.raycastOptions,this.raycastClosestResult))},e.lineStripCast=function(t,e,i,n){if(void 0===e&&(e=4294967295),void 0===i&&(i=1e7),void 0===n&&(n=!0),t.length<2)return!1;this.lineStripCastResults=[];for(var r=0,s=new Ls,a=1;ai);++a){var o=t[a-1],h=t[a],u=new er;er.subtract(u,h,o);var l=er.len(u);if(r+=l,er.multiplyScalar(u,u,1/l),s.d=u,s.o=o,this.raycast(s,e,l,n))for(var c=0;c0},e.lineStripCastClosest=function(t,e,i,n){if(void 0===e&&(e=4294967295),void 0===i&&(i=1e7),void 0===n&&(n=!0),t.length<2)return!1;for(var r=0,s=new Ls,a=!1,o=1;oi);++o){var h=t[o-1],u=t[o],l=new er;er.subtract(l,u,h);var c=er.len(l);if(r+=c,er.multiplyScalar(l,l,1/c),s.d=l,s.o=h,a=this.raycastClosest(s,e,c,n)){var f=this.raycastClosestResult,_=new $Et;_._assign(f.hitPoint,f.distance,f.collider,f.hitNormal,o-1),this.lineStripCastClosestResult=_;break}}return a},e.sweepBox=function(t,e,i,n,r,s){return void 0===n&&(n=4294967295),void 0===r&&(r=1e7),void 0===s&&(s=!0),!!this.physicsWorld&&(this.sweepResultPool.reset(),this.sweepCastResults.length=0,this.raycastOptions.mask=n>>>0,this.raycastOptions.maxDistance=r,this.raycastOptions.queryTrigger=s,this.physicsWorld.sweepBox(t,e,i,this.raycastOptions,this.sweepResultPool,this.sweepCastResults))},e.sweepBoxClosest=function(t,e,i,n,r,s){return void 0===n&&(n=4294967295),void 0===r&&(r=1e7),void 0===s&&(s=!0),!!this.physicsWorld&&(this.raycastOptions.mask=n>>>0,this.raycastOptions.maxDistance=r,this.raycastOptions.queryTrigger=s,this.physicsWorld.sweepBoxClosest(t,e,i,this.raycastOptions,this.sweepCastClosestResult))},e.sweepSphere=function(t,e,i,n,r){return void 0===i&&(i=4294967295),void 0===n&&(n=1e7),void 0===r&&(r=!0),!!this.physicsWorld&&(this.sweepResultPool.reset(),this.sweepCastResults.length=0,this.raycastOptions.mask=i>>>0,this.raycastOptions.maxDistance=n,this.raycastOptions.queryTrigger=r,this.physicsWorld.sweepSphere(t,e,this.raycastOptions,this.sweepResultPool,this.sweepCastResults))},e.sweepSphereClosest=function(t,e,i,n,r){return void 0===i&&(i=4294967295),void 0===n&&(n=1e7),void 0===r&&(r=!0),!!this.physicsWorld&&(this.raycastOptions.mask=i>>>0,this.raycastOptions.maxDistance=n,this.raycastOptions.queryTrigger=r,this.physicsWorld.sweepSphereClosest(t,e,this.raycastOptions,this.sweepCastClosestResult))},e.sweepCapsule=function(t,e,i,n,r,s,a){return void 0===r&&(r=4294967295),void 0===s&&(s=1e7),void 0===a&&(a=!0),!!this.physicsWorld&&(this.sweepResultPool.reset(),this.sweepCastResults.length=0,this.raycastOptions.mask=r>>>0,this.raycastOptions.maxDistance=s,this.raycastOptions.queryTrigger=a,this.physicsWorld.sweepCapsule(t,e,i,n,this.raycastOptions,this.sweepResultPool,this.sweepCastResults))},e.sweepCapsuleClosest=function(t,e,i,n,r,s,a){return void 0===r&&(r=4294967295),void 0===s&&(s=1e7),void 0===a&&(a=!0),!!this.physicsWorld&&(this.raycastOptions.mask=r>>>0,this.raycastOptions.maxDistance=s,this.raycastOptions.queryTrigger=a,this.physicsWorld.sweepCapsuleClosest(t,e,i,n,this.raycastOptions,this.sweepCastClosestResult))},e._updateMaterial=function(){this.physicsWorld&&this.physicsWorld.setDefaultMaterial(this._material)},i.constructAndRegister=function(){if(!i._instance){var t=this.doConstructAndRegister();t&&HO.onPostProjectInitDelegate.add(t.initDefaultMaterial.bind(t))}},i.constructAndRegisterManually=function(){return Promise.resolve()},i.doConstructAndRegister=function(){var t;if(null!==(t=mOt("physics","enabled"))&&void 0!==t&&!t)return null;if(!i._instance){var e=new i;i._instance=e,e.resetConfiguration(),rEt(e),WE.registerSystem(i.ID,e,e.priority)}return i._instance},n(i,[{key:"enable",get:function(){return this._enable},set:function(t){this._enable=t}},{key:"allowSleep",get:function(){return this._allowSleep},set:function(t){this._allowSleep=t,this.physicsWorld&&this.physicsWorld.setAllowSleep(t)}},{key:"maxSubSteps",get:function(){return this._maxSubSteps},set:function(t){this._maxSubSteps=t}},{key:"fixedTimeStep",get:function(){return this._fixedTimeStep},set:function(t){this._fixedTimeStep=t}},{key:"gravity",get:function(){return this._gravity},set:function(t){this._gravity.set(t),this.physicsWorld&&this.physicsWorld.setGravity(t)}},{key:"sleepThreshold",get:function(){return this._sleepThreshold},set:function(t){this._sleepThreshold=t}},{key:"autoSimulation",get:function(){return this._autoSimulation},set:function(t){this._autoSimulation=t}},{key:"defaultMaterial",get:function(){return this._material}},{key:"physicsWorld",get:function(){return nEt.physicsWorld}},{key:"debugDrawFlags",get:function(){return this.physicsWorld.debugDrawFlags},set:function(t){this.physicsWorld.debugDrawFlags=t}},{key:"debugDrawConstraintSize",get:function(){return this.physicsWorld.debugDrawConstraintSize},set:function(t){this.physicsWorld.debugDrawConstraintSize=t}}],[{key:"PHYSICS_NONE",get:function(){return!nEt.id}},{key:"PHYSICS_BUILTIN",get:function(){return"builtin"===nEt.id}},{key:"PHYSICS_CANNON",get:function(){return"cannon.js"===nEt.id}},{key:"PHYSICS_BULLET",get:function(){return"bullet"===nEt.id}},{key:"PHYSICS_PHYSX",get:function(){return"physx"===nEt.id}},{key:"PhysicsGroup",get:function(){return $Dt}},{key:"instance",get:function(){return i._instance}}]),i}(Ef));gOt.ID="PHYSICS",gOt._instance=null,WE.once("director_init",(function(){gOt.constructAndRegister()}));var yOt,vOt,bOt,SOt,xOt,wOt,TOt,AOt,COt,DOt,BOt,IOt=t("fB",(tOt=Kh("cc.RigidBody"),eOt=Qh(-1),iOt=Eu(gOt.PhysicsGroup),nOt=Eu(WDt),tOt(rOt=Zh(rOt=eOt((pOt=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;r2||this._direction!==t&&(this._direction=t,this._shape&&this.shape.setDirection(t))}},{key:"height",get:function(){return 2*this._radius+this._cylinderHeight},set:function(t){var e=t-2*this._radius;e<0&&(e=0),this.cylinderHeight=e}},{key:"worldHeight",get:function(){return 2*this._radius*this._getRadiusScale()+this._cylinderHeight*this._getHeightScale()}},{key:"shape",get:function(){return this._shape}}]),e}(ROt),v(GOt.prototype,"direction",[zOt],Object.getOwnPropertyDescriptor(GOt.prototype,"direction"),GOt.prototype),HOt=Vh(GOt.prototype,"_radius",[hu],(function(){return.5})),WOt=Vh(GOt.prototype,"_cylinderHeight",[hu],(function(){return 1})),jOt=Vh(GOt.prototype,"_direction",[hu],(function(){return 1})),UOt=GOt))||UOt)),Qkt=t("fM",(qOt=Kh("cc.CylinderCollider"),XOt=Eu(jDt),qOt((KOt=function(t){function e(){var e;return(e=t.call(this,3)||this)._radius=JOt&&JOt(),e._height=QOt&&QOt(),e._direction=ZOt&&ZOt(),e}return s(e,t),n(e,[{key:"radius",get:function(){return this._radius},set:function(t){this._radius!==t&&(this._radius=Math.abs(t),this._shape&&this.shape.setRadius(t))}},{key:"height",get:function(){return this._height},set:function(t){this._height!==t&&(this._height=Math.abs(t),this._shape&&this.shape.setHeight(t))}},{key:"direction",get:function(){return this._direction},set:function(t){this._direction!==t&&(t<0||t>2||(this._direction=t,this._shape&&this.shape.setDirection(t)))}},{key:"shape",get:function(){return this._shape}}]),e}(ROt),v(KOt.prototype,"direction",[XOt],Object.getOwnPropertyDescriptor(KOt.prototype,"direction"),KOt.prototype),JOt=Vh(KOt.prototype,"_radius",[hu],(function(){return.5})),QOt=Vh(KOt.prototype,"_height",[hu],(function(){return 2})),ZOt=Vh(KOt.prototype,"_direction",[hu],(function(){return 1})),YOt=KOt))||YOt)),Zkt=t("fN",($Ot=Kh("cc.ConeCollider"),tkt=Eu(jDt),$Ot((ikt=function(t){function e(){var e;return(e=t.call(this,4)||this)._radius=nkt&&nkt(),e._height=rkt&&rkt(),e._direction=skt&&skt(),e}return s(e,t),n(e,[{key:"radius",get:function(){return this._radius},set:function(t){this._radius!==t&&(this._radius=Math.abs(t),this._shape&&this.shape.setRadius(t))}},{key:"height",get:function(){return this._height},set:function(t){this._height!==t&&(t<0&&(t=0),this._height=t,this._shape&&this.shape.setHeight(t))}},{key:"direction",get:function(){return this._direction},set:function(t){this._direction!==t&&(t<0||t>2||(this._direction=t,this._shape&&this.shape.setDirection(t)))}},{key:"shape",get:function(){return this._shape}}]),e}(ROt),v(ikt.prototype,"direction",[tkt],Object.getOwnPropertyDescriptor(ikt.prototype,"direction"),ikt.prototype),nkt=Vh(ikt.prototype,"_radius",[hu],(function(){return.5})),rkt=Vh(ikt.prototype,"_height",[hu],(function(){return 1})),skt=Vh(ikt.prototype,"_direction",[hu],(function(){return 1})),ekt=ikt))||ekt)),$kt=t("fL",(akt=Kh("cc.MeshCollider"),okt=Eu(Dk),akt((ukt=function(t){function e(){var e;return(e=t.call(this,5)||this)._mesh=lkt&&lkt(),e._convex=ckt&&ckt(),e}return s(e,t),e.prototype.onEnable=function(){if(t.prototype.onEnable.call(this),this.node){var e=this.node.getComponent(IOt);e&&e.isValid&&1===e.type&&!this.convex&&st(9630,this.node.name)}},n(e,[{key:"mesh",get:function(){return this._mesh},set:function(t){this._mesh!==t&&(this._mesh=t,this._shape&&this.shape.setMesh(this._mesh))}},{key:"convex",get:function(){return this._convex},set:function(t){this._convex!==t&&(this._convex=t,this._shape&&this._mesh&&this.shape.setMesh(this._mesh))}},{key:"shape",get:function(){return this._shape}}]),e}(ROt),v(ukt.prototype,"mesh",[okt],Object.getOwnPropertyDescriptor(ukt.prototype,"mesh"),ukt.prototype),lkt=Vh(ukt.prototype,"_mesh",[hu],(function(){return null})),ckt=Vh(ukt.prototype,"_convex",[hu],(function(){return!1})),hkt=ukt))||hkt)),tRt=t("fD",Kh("cc.ConstantForce")(fkt=Jh(IOt)(fkt=Zh((_kt=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;rt)){for(var e=this.buffer.byteLength;e=gRt?this.tileSize=e.readDouble():this.tileSize=e.readFloat(),this.tileSize=Math.floor(100*this.tileSize)/100,e.readIntArray(this._blockCount),this.weightMapSize=e.readInt16(),this.lightMapSize=e.readInt16();var i=e.readInt();this.heights=new Uint16Array(i);for(var n=0;n=mRt){var o=e.readInt();this.normals=new Float32Array(o);for(var h=0;h=fRt){var c=e.readInt();this.layerBuffer=new Array(c);for(var f=0;f=_Rt){var _=e.readInt();this._layerBinaryInfos=new Array(_);for(var d=0;d=gRt?this._layerBinaryInfos[d].tileSize=e.readDouble():this._layerBinaryInfos[d].tileSize=e.readFloat(),this._layerBinaryInfos[d].detailMapId=e.readString(),this._version>=dRt&&(this._layerBinaryInfos[d].normalMapId=e.readString(),this._version>=gRt?(this._layerBinaryInfos[d].roughness=e.readDouble(),this._layerBinaryInfos[d].metallic=e.readDouble()):(this._layerBinaryInfos[d].roughness=e.readFloat(),this._layerBinaryInfos[d].metallic=e.readFloat()))}return!0},i._exportNativeData=function(){var t=new bRt;t.writeInt32(yRt),t.writeDouble(this.tileSize),t.writeIntArray(this._blockCount),t.writeInt16(this.weightMapSize),t.writeInt16(this.lightMapSize),t.writeInt32(this.heights.length);for(var e=0;e=0&&(ve(this.ghostStruct.wrappedShapes,i),t.setCompound(0),this.ghostEnabled=!1)}else{var n=this.bodyStruct.wrappedShapes.indexOf(t);n>=0&&(this.bodyStruct.useCompound?t.setCompound(0):bEt.CollisionObject_setCollisionShape(this.body,bEt.EmptyShape_static()),bEt.CollisionObject_activate(this.body,!0),this.dirty|=1,ve(this.bodyStruct.wrappedShapes,n),this.bodyEnabled=!1)}},e.addJoint=function(t,e){e?this.wrappedJoints1.indexOf(t)<0&&this.wrappedJoints1.push(t):this.wrappedJoints0.indexOf(t)<0&&this.wrappedJoints0.push(t)},e.removeJoint=function(t,e){if(e){var i=this.wrappedJoints1.indexOf(t);i>=0&&ve(this.wrappedJoints1,i)}else{var n=this.wrappedJoints0.indexOf(t);n>=0&&ve(this.wrappedJoints0,n)}},e.updateDirty=function(){this.dirty&&(this.bodyIndex>=0&&1&this.dirty&&this.updateBodyByReAdd(),this.ghostIndex>=0&&2&this.dirty&&this.updateGhostByReAdd(),this.dirty=0)},e.syncSceneToPhysics=function(){if(this.node.hasChangedFlags){var t=AEt.instance.BT_QUAT_0,e=bEt.CollisionObject_getWorldTransform(this.body);if(XEt(t,this.node.worldRotation),jEt(bEt.Transform_getOrigin(e),this.node.worldPosition),bEt.Transform_setRotation(e,t),4&this.node.hasChangedFlags&&this.syncBodyScale(),bEt.CollisionObject_isKinematicObject(this.body)){var i=bEt.RigidBody_getMotionState(this.body);i&&bEt.MotionState_setWorldTransform(i,e)}else this.isBodySleeping()&&bEt.CollisionObject_activate(this.body,!1)}},e.syncPhysicsToScene=function(){bEt.CollisionObject_isStaticOrKinematicObject(this.body)||this.syncPhysicsToGraphics()},e.syncPhysicsToGraphics=function(){if(!this.isBodySleeping()){var t=AEt.instance.BT_QUAT_0,e=AEt.instance.BT_TRANSFORM_0;bEt.RigidBody_getWorldTransform(this.body,e);var i=bEt.Transform_getRotationAndOrigin(e,t);if(this.node.worldRotation=YEt(YVt,t),this.node.worldPosition=qEt(XVt,i),this._ghostStruct){var n=bEt.CollisionObject_getWorldTransform(this.ghost);jEt(bEt.Transform_getOrigin(n),this.node.worldPosition),XEt(t,this.node.worldRotation),bEt.Transform_setRotation(n,t)}}},e.syncSceneToGhost=function(){if(this.node.hasChangedFlags){var t=AEt.instance.BT_QUAT_0,e=bEt.CollisionObject_getWorldTransform(this.ghost);jEt(bEt.Transform_getOrigin(e),this.node.worldPosition),XEt(t,this.node.worldRotation),bEt.Transform_setRotation(e,t),4&this.node.hasChangedFlags&&this.syncGhostScale(),bEt.CollisionObject_activate(this.ghost,!1)}},e.syncInitialBody=function(){var t=AEt.instance.BT_QUAT_0,e=bEt.CollisionObject_getWorldTransform(this.body);jEt(bEt.Transform_getOrigin(e),this.node.worldPosition),XEt(t,this.node.worldRotation),bEt.Transform_setRotation(e,t),this.syncBodyScale(),bEt.CollisionObject_activate(this.body,!1)},e.syncInitialGhost=function(){var t=AEt.instance.BT_QUAT_0,e=bEt.CollisionObject_getWorldTransform(this.ghost);jEt(bEt.Transform_getOrigin(e),this.node.worldPosition),XEt(t,this.node.worldRotation),bEt.Transform_setRotation(e,t),this.syncGhostScale(),bEt.CollisionObject_activate(this.body,!1)},e.syncBodyScale=function(){for(var t=0;t=0&&(this.wrappedWorld.removeSharedBody(this),this.bodyIndex=this.wrappedWorld.bodies.length,this.wrappedWorld.addSharedBody(this))},e.updateGhostByReAdd=function(){this.ghostIndex>=0&&(this.wrappedWorld.removeGhostObject(this),this.ghostIndex=this.wrappedWorld.ghosts.length,this.wrappedWorld.addGhostObject(this))},e.destroy=function(){if(t.sharedBodesMap.delete(this.node.uuid),this.node=null,this.wrappedWorld=null,this._bodyStruct){var e=this._bodyStruct;AEt.delWrapper(this.id,SEt.BODY_CACHE_NAME),bEt._safe_delete(e.motionState,3),bEt._safe_delete(e.compound,5),bEt._safe_delete(e.body,4),this._bodyStruct=null}if(this._ghostStruct){var i=this._ghostStruct;bEt._safe_delete(i.compound,5),bEt._safe_delete(i.ghost,4),this._ghostStruct=null}},e.isBodySleeping=function(){return bEt.CollisionObject_isSleeping(this.body)},n(t,[{key:"wrappedBody",get:function(){return this._wrappedBody}},{key:"bodyCompoundShape",get:function(){return this.bodyStruct.compound}},{key:"ghostCompoundShape",get:function(){return this.ghostStruct.compound}},{key:"body",get:function(){return this.bodyStruct.body}},{key:"ghost",get:function(){return this.ghostStruct.ghost}},{key:"collisionFilterGroup",get:function(){return this._collisionFilterGroup},set:function(t){t!==this._collisionFilterGroup&&(this._collisionFilterGroup=t,this.dirty|=1,this.dirty|=2)}},{key:"collisionFilterMask",get:function(){return this._collisionFilterMask},set:function(t){t!==this._collisionFilterMask&&(this._collisionFilterMask=t,this.dirty|=1,this.dirty|=2)}},{key:"bodyStruct",get:function(){return this._instantiateBodyStruct(),this._bodyStruct}},{key:"ghostStruct",get:function(){return this._instantiateGhostStruct(),this._ghostStruct}},{key:"bodyEnabled",set:function(t){if(t){if(this.bodyIndex<0){if(0===this.bodyStruct.wrappedShapes.length){if(!this.wrappedBody)return;if(!this.wrappedBody.rigidBody.isDynamic)return}this.bodyIndex=this.wrappedWorld.bodies.length,this.wrappedWorld.addSharedBody(this),this.syncInitialBody()}}else this.bodyIndex>=0&&(0===this.bodyStruct.wrappedShapes.length&&null==this.wrappedBody||0===this.bodyStruct.wrappedShapes.length&&null!=this.wrappedBody&&!this.wrappedBody.isEnabled||0===this.bodyStruct.wrappedShapes.length&&null!=this.wrappedBody&&!this.wrappedBody.rigidBody.enabledInHierarchy)&&(bEt.RigidBody_clearState(this.body),this.bodyIndex=-1,this.wrappedWorld.removeSharedBody(this))}},{key:"ghostEnabled",set:function(t){t?this.ghostIndex<0&&this.ghostStruct.wrappedShapes.length>0&&(this.ghostIndex=1,this.wrappedWorld.addGhostObject(this),this.syncInitialGhost()):this.ghostIndex>=0&&0===this.ghostStruct.wrappedShapes.length&&this.ghost&&(this.ghostIndex=-1,this.wrappedWorld.removeGhostObject(this))}},{key:"reference",set:function(t){t?this.ref++:this.ref--,0===this.ref&&this.destroy()}}]),t}();JVt.idCounter=0,JVt.sharedBodesMap=new Map;var QVt=CEt,ZVt={},$Vt=function(){function t(){this.id=t.idCounter++,this._isEnabled=!1,this._isTrigger=!1,this._isInitialized=!1,this._impl=0,this._compound=0,this.quat=bEt.Quat_new(0,0,0,1),this.transform=bEt.Transform_new(),this._collider=void 0,this._sharedBody=void 0}var e=t.prototype;return e.updateEventListener=function(){this._sharedBody.wrappedWorld.updateNeedEmitEvents(this.collider.needCollisionEvent||this.collider.needTriggerEvent)},e.setMaterial=function(t){var e=null==t?gOt.instance.defaultMaterial:t;if(!this._isTrigger&&this._isEnabled)if(this._compound){ZVt[e._uuid]||(ZVt[e._uuid]=bEt.ccMaterial_new());var i=ZVt[e._uuid];bEt.ccMaterial_set(i,e.restitution,e.friction,e.rollingFriction,e.spinningFriction),bEt.CollisionShape_setMaterial(this._impl,i)}else bEt.CollisionObject_setMaterial(this._sharedBody.body,e.restitution,e.friction,e.rollingFriction,e.spinningFriction)},e.setCenter=function(t){er.copy(QVt,t),QVt.multiply(this._collider.node.worldScale),jEt(bEt.Transform_getOrigin(this.transform),QVt),this.updateCompoundTransform()},e.setAsTrigger=function(t){this._isTrigger!==t&&(this._isEnabled&&(this._sharedBody.removeShape(this,!t),this._sharedBody.addShape(this,t)),this._isTrigger=t)},e.getAABB=function(t){var e=AEt.instance.BT_TRANSFORM_0;bEt.Transform_setIdentity(e),bEt.Transform_setRotation(e,XEt(AEt.instance.BT_QUAT_0,this._collider.node.worldRotation));var i=AEt.instance.BT_V3_0,n=AEt.instance.BT_V3_1;bEt.CollisionShape_getAabb(this._impl,e,i,n),t.halfExtents.x=(bEt.Vec3_x(n)-bEt.Vec3_x(i))/2,t.halfExtents.y=(bEt.Vec3_y(n)-bEt.Vec3_y(i))/2,t.halfExtents.z=(bEt.Vec3_z(n)-bEt.Vec3_z(i))/2,er.add(t.center,this._collider.node.worldPosition,this._collider.center)},e.getBoundingSphere=function(t){t.radius=bEt.CollisionShape_getLocalBoundingSphere(this._impl),er.add(t.center,this._collider.node.worldPosition,this._collider.center)},e.initialize=function(t){this._collider=t,this._isInitialized=!0,this._sharedBody=gOt.instance.physicsWorld.getSharedBody(this._collider.node),this._sharedBody.reference=!0,this.onComponentSet(),this.setWrapper()},e.setWrapper=function(){AEt.isNotEmptyShape(this._impl)&&(bEt.CollisionShape_setUserPointer(this._impl,this._impl),AEt.setWrapper(this._impl,t.TYPE,this))},e.onLoad=function(){this.setCenter(this._collider.center),this.setAsTrigger(this._collider.isTrigger)},e.onEnable=function(){this._isEnabled=!0,this._sharedBody.addShape(this,this._isTrigger),this.setMaterial(this.collider.sharedMaterial)},e.onDisable=function(){this._isEnabled=!1,this._sharedBody.removeShape(this,this._isTrigger)},e.onDestroy=function(){this._sharedBody.reference=!1,this._collider=null,bEt._safe_delete(this.quat,1),bEt._safe_delete(this.transform,2),this._compound&&bEt._safe_delete(this._compound,5),AEt.isNotEmptyShape(this._impl)&&(bEt._safe_delete(this._impl,5),AEt.delWrapper(this._impl,t.TYPE))},e.updateByReAdd=function(){this._isEnabled&&(this._sharedBody.removeShape(this,this._isTrigger),this._sharedBody.addShape(this,this._isTrigger))},e.getGroup=function(){return this._sharedBody.collisionFilterGroup},e.setGroup=function(t){this._sharedBody.collisionFilterGroup=t},e.addGroup=function(t){this._sharedBody.collisionFilterGroup|=t},e.removeGroup=function(t){this._sharedBody.collisionFilterGroup&=~t},e.getMask=function(){return this._sharedBody.collisionFilterMask},e.setMask=function(t){this._sharedBody.collisionFilterMask=t},e.addMask=function(t){this._sharedBody.collisionFilterMask|=t},e.removeMask=function(t){this._sharedBody.collisionFilterMask&=~t},e.setCompound=function(t){this._compound&&bEt.CompoundShape_removeChildShape(this._compound,this._impl),t&&bEt.CompoundShape_addChildShape(t,this.transform,this._impl),this._compound=t},e.updateScale=function(){this.setCenter(this._collider.center)},e.updateCompoundTransform=function(){this._compound?bEt.CompoundShape_updateChildTransform(this._compound,this._impl,this.transform,!0):this._isEnabled&&!this._isTrigger&&this._sharedBody&&!this._sharedBody.bodyStruct.useCompound&&(this._sharedBody.dirty|=1)},e.needCompound=function(){return 8===this._collider.type||!this._collider.center.equals(er.ZERO)},n(t,[{key:"attachedRigidBody",get:function(){return this._sharedBody.wrappedBody?this._sharedBody.wrappedBody.rigidBody:null}},{key:"impl",get:function(){return this._impl}},{key:"collider",get:function(){return this._collider}},{key:"sharedBody",get:function(){return this._sharedBody}}]),t}();$Vt.TYPE="shape",$Vt.idCounter=0;var tzt=function(){function t(){this.matrix=[]}var e=t.prototype;return e.get=function(t,e){if(e>t){var i=e;e=t,t=i}return this.matrix[(t*(t+1)>>1)+e-1]},e.set=function(t,e,i){if(e>t){var n=e;e=t,t=n}this.matrix[(t*(t+1)>>1)+e-1]=i?1:0},e.reset=function(){this.matrix.length=0},e.setNumObjects=function(t){this.matrix.length=t*(t-1)>>1},t}(),ezt=function(){function t(){this.data=void 0,this.data={keys:[]}}var e=t.prototype;return e.get=function(t,e){if(t>e){var i=e;e=t,t=i}return this.data[t+"-"+e]},e.set=function(t,e,i){if(t>e){var n=e;e=t,t=n}var r=t+"-"+e;if(null==i){var s=this.data.keys.indexOf(r);if(-1!==s)return this.data.keys.splice(s,1),delete this.data[r],i}return this.get(t,e)||this.data.keys.push(r),this.data[r]=i,this.data[r]},e.reset=function(){this.data={keys:[]}},e.getLength=function(){return this.data.keys.length},e.getKeyByIndex=function(t){return this.data.keys[t]},e.getDataByKey=function(t){return this.data[t]},t}(),izt=function(){function t(t){this.impl=0,this.event=void 0,this.event=t}var e=t.prototype;return e.getLocalPointOnA=function(t){this.impl&&qEt(t,bEt.ManifoldPoint_get_m_localPointA(this.impl))},e.getLocalPointOnB=function(t){this.impl&&qEt(t,bEt.ManifoldPoint_get_m_localPointB(this.impl))},e.getWorldPointOnA=function(t){this.impl&&qEt(t,bEt.ManifoldPoint_get_m_positionWorldOnA(this.impl))},e.getWorldPointOnB=function(t){this.impl&&qEt(t,bEt.ManifoldPoint_get_m_positionWorldOnB(this.impl))},e.getLocalNormalOnA=function(t){if(this.impl){var e=AEt.instance.BT_QUAT_0,i=bEt.PersistentManifold_getBody0(this.event.impl),n=bEt.CollisionObject_getWorldTransform(i);bEt.Transform_getRotation(n,e);var r=IEt;YEt(r,e),Or.conjugate(r,r),qEt(t,bEt.ManifoldPoint_get_m_normalWorldOnB(this.impl)),this.isBodyA||er.negate(t,t),er.transformQuat(t,t,r)}},e.getLocalNormalOnB=function(t){if(this.impl){var e=AEt.instance.BT_QUAT_0,i=bEt.PersistentManifold_getBody1(this.event.impl),n=bEt.CollisionObject_getWorldTransform(i);bEt.Transform_getRotation(n,e);var r=IEt;YEt(r,e),Or.conjugate(r,r),qEt(t,bEt.ManifoldPoint_get_m_normalWorldOnB(this.impl)),er.transformQuat(t,t,r)}},e.getWorldNormalOnA=function(t){this.impl&&(qEt(t,bEt.ManifoldPoint_get_m_normalWorldOnB(this.impl)),this.isBodyA||er.negate(t,t))},e.getWorldNormalOnB=function(t){this.impl&&qEt(t,bEt.ManifoldPoint_get_m_normalWorldOnB(this.impl))},n(t,[{key:"isBodyA",get:function(){return this.event.selfCollider.shape.sharedBody.body===bEt.PersistentManifold_getBody0(this.event.impl)}}]),t}(),nzt=[],rzt=CEt,szt=DEt,azt=BEt,ozt=WEt,hzt=new UVt,uzt=function(){var t=e.prototype;function e(){this._world=void 0,this._broadphase=void 0,this._solver=void 0,this._dispatcher=void 0,this._debugDraw=void 0,this._debugLineCount=0,this._MAX_DEBUG_LINE_COUNT=16384,this._debugDrawFlags=0,this._debugConstraintSize=.3,this._needEmitEvents=!1,this._needSyncAfterEvents=!1,this._needEmitCCTEvents=!1,this.bodies=[],this.ghosts=[],this.ccts=[],this.constraints=[],this.triggerArrayMat=new tzt,this.characterControllerArrayMat=new tzt,this.collisionArrayMat=new tzt,this.contactsDic=new ezt,this.oldContactsDic=new ezt,this.cctShapeEventDic=new ezt,this.cctContactsDic=new ezt,this.cctOldContactsDic=new ezt,SEt.CACHE.world=this,this._broadphase=bEt.DbvtBroadphase_new(),this._dispatcher=bEt.CollisionDispatcher_new(),this._solver=bEt.SequentialImpulseConstraintSolver_new(),this._world=bEt.ccDiscreteDynamicsWorld_new(this._dispatcher,this._broadphase,this._solver);var t=bEt.DebugDraw.implement(qVt);this._debugDraw=t.$$.ptr,bEt.CollisionWorld_setDebugDrawer(this._world,this._debugDraw),bEt.DebugDraw_setDebugMode(this._debugDraw,0),bEt.DebugDraw_setAABBColor(this._debugDraw,0,1,1),bEt.DebugDraw_setActiveObjectColor(this._debugDraw,1,0,1),bEt.DebugDraw_setDeactiveObjectColor(this._debugDraw,1,0,1),bEt.DebugDraw_setWantsDeactivationObjectColor(this._debugDraw,1,0,1),bEt.DebugDraw_setDisabledDeactivationObjectColor(this._debugDraw,1,0,1),bEt.DebugDraw_setDisabledSimulationObjectColor(this._debugDraw,1,0,1),bEt.DebugDraw_setConstraintLimitColor(this._debugDraw,.5,.5,.5)}return t.setDefaultMaterial=function(){},t.setAllowSleep=function(t){bEt.ccDiscreteDynamicsWorld_setAllowSleep(this._world,t)},t.setGravity=function(t){bEt.DynamicsWorld_setGravity(this._world,jEt(AEt.instance.BT_V3_0,t))},t.updateNeedEmitEvents=function(t){if(this.ghosts)if(t)this._needEmitEvents=!0;else{this._needEmitEvents=!1;for(var e=0;e=0;t--){var e=this.ghosts[t];e.updateDirty(),e.syncSceneToGhost()}for(var i=this.bodies.length-1;i>=0;i--){var n=this.bodies[i];n.updateDirty(),n.syncSceneToPhysics()}for(var r=this.ccts,s=r.length-1;s>=0;s--){var a=r[s];a.updateDirty(),a.syncSceneToPhysics()}},t.syncAfterEvents=function(){this._needSyncAfterEvents&&this.syncSceneToPhysics()},t.raycast=function(t,e,i,n){t.computeHit(rzt,e.maxDistance);var r=jEt(AEt.instance.BT_V3_0,rzt),s=jEt(AEt.instance.BT_V3_1,t.o),a=bEt.ccAllRayCallback_static();if(bEt.ccAllRayCallback_reset(a,s,r,e.mask>>>0,e.queryTrigger),bEt.ccAllRayCallback_setFlags(a,4),bEt.CollisionWorld_rayTest(this._world,s,r,a),bEt.RayCallback_hasHit(a)){for(var o=bEt.ccAllRayCallback_getHitPointWorld(a),h=bEt.ccAllRayCallback_getHitNormalWorld(a),u=bEt.ccAllRayCallback_getCollisionShapePtrs(a),l=bEt.ccAllRayCallback_getClosestHitFraction(a),c=0,f=bEt.int_array_size(u);c>>0,e.queryTrigger),bEt.ccClosestRayCallback_setFlags(s,4),bEt.CollisionWorld_rayTest(this._world,r,n,s),bEt.RayCallback_hasHit(s)){qEt(rzt,bEt.ccClosestRayCallback_getHitPointWorld(s)),qEt(szt,bEt.ccClosestRayCallback_getHitNormalWorld(s));var a=AEt.getWrapper(bEt.ccClosestRayCallback_getCollisionShapePtr(s),$Vt.TYPE),o=bEt.ccClosestConvexCallback_getClosestHitFraction(s);return i._assign(rzt,er.distance(t.o,rzt),a.collider,szt,o),!0}return!1},t.sweepBox=function(t,i,n,r,s,a){var o=AEt.instance.BT_V3_0;return jEt(o,i),e._sweepBoxGeometry||(e._sweepBoxGeometry=bEt.BoxShape_new(o)),bEt.BoxShape_setUnscaledHalfExtents(e._sweepBoxGeometry,o),this.sweep(t,e._sweepBoxGeometry,n,r,s,a)},t.sweepBoxClosest=function(t,i,n,r,s){var a=AEt.instance.BT_V3_0;return jEt(a,i),e._sweepBoxGeometry||(e._sweepBoxGeometry=bEt.BoxShape_new(a)),bEt.BoxShape_setUnscaledHalfExtents(e._sweepBoxGeometry,a),this.sweepClosest(t,e._sweepBoxGeometry,n,r,s)},t.sweepSphere=function(t,i,n,r,s){return e._sweepSphereGeometry||(e._sweepSphereGeometry=bEt.SphereShape_new(i)),bEt.SphereShape_setUnscaledRadius(e._sweepSphereGeometry,i),this.sweep(t,e._sweepSphereGeometry,Or.IDENTITY,n,r,s)},t.sweepSphereClosest=function(t,i,n,r){return e._sweepSphereGeometry||(e._sweepSphereGeometry=bEt.SphereShape_new(i)),bEt.SphereShape_setUnscaledRadius(e._sweepSphereGeometry,i),this.sweepClosest(t,e._sweepSphereGeometry,Or.IDENTITY,n,r)},t.sweepCapsule=function(t,i,n,r,s,a,o){return e._sweepCapsuleGeometry||(e._sweepCapsuleGeometry=bEt.CapsuleShape_new(i,n)),bEt.CapsuleShape_updateProp(e._sweepCapsuleGeometry,i,.5*n,1),this.sweep(t,e._sweepCapsuleGeometry,r,s,a,o)},t.sweepCapsuleClosest=function(t,i,n,r,s,a){return e._sweepCapsuleGeometry||(e._sweepCapsuleGeometry=bEt.CapsuleShape_new(i,n)),bEt.CapsuleShape_updateProp(e._sweepCapsuleGeometry,i,.5*n,1),this.sweepClosest(t,e._sweepCapsuleGeometry,r,s,a)},t.sweep=function(t,e,i,n,r,s){var a=AEt.instance.BT_TRANSFORM_0,o=AEt.instance.BT_TRANSFORM_1,h=AEt.instance.BT_QUAT_0;jEt(bEt.Transform_getOrigin(a),t.o),XEt(h,i),bEt.Transform_setRotation(a,h),t.computeHit(rzt,n.maxDistance),jEt(bEt.Transform_getOrigin(o),rzt),XEt(h,i),bEt.Transform_setRotation(o,h);var u=bEt.ccAllConvexCallback_static();if(bEt.ccAllConvexCallback_reset(u,a,o,n.mask>>>0,n.queryTrigger),bEt.CollisionWorld_convexSweepTest(this._world,e,a,o,u,0),bEt.ConvexCallback_hasHit(u)){for(var l=bEt.ccAllConvexCallback_getHitPointWorld(u),c=bEt.ccAllConvexCallback_getHitNormalWorld(u),f=bEt.ccAllConvexCallback_getCollisionShapePtrs(u),_=bEt.ccAllConvexCallback_getClosestHitFraction(u),d=0,p=bEt.int_array_size(f);d>>0,n.queryTrigger),bEt.CollisionWorld_convexSweepTest(this._world,e,s,a,h,0),bEt.ConvexCallback_hasHit(h)){qEt(rzt,bEt.ccClosestConvexCallback_getHitPointWorld(h)),qEt(szt,bEt.ccClosestConvexCallback_getHitNormalWorld(h));var u=AEt.getWrapper(bEt.ccClosestConvexCallback_getCollisionShapePtr(h),$Vt.TYPE),l=bEt.ccClosestConvexCallback_getClosestHitFraction(h);return r._assign(rzt,er.distance(t.o,rzt),u.collider,szt,l),!0}return!1},t.getSharedBody=function(t,e){return JVt.getSharedBody(t,this,e)},t.addSharedBody=function(t){if(this.bodies.indexOf(t)<0){this.bodies.push(t);var e=t.collisionFilterGroup,i=t.collisionFilterMask;bEt.DynamicsWorld_addRigidBody(this._world,t.body,e>>>0,i>>>0)}},t.removeSharedBody=function(t){var e=this.bodies.indexOf(t);e>=0&&(ve(this.bodies,e),bEt.DynamicsWorld_removeRigidBody(this._world,t.body))},t.addGhostObject=function(t){if(this.ghosts.indexOf(t)<0){this.ghosts.push(t);var e=t.collisionFilterGroup,i=t.collisionFilterMask;bEt.CollisionWorld_addCollisionObject(this._world,t.ghost,e>>>0,i>>>0)}},t.removeGhostObject=function(t){var e=this.ghosts.indexOf(t);e>=0&&(ve(this.ghosts,e),bEt.CollisionWorld_removeCollisionObject(this._world,t.ghost))},t.addCCT=function(t){if(this.ccts.indexOf(t)<0){this.ccts.push(t);var e=bEt.CharacterController_getGhostObject(t.impl),i=t.getGroup(),n=t.getMask();bEt.CollisionWorld_addCollisionObject(this._world,e,i>>>0,n>>>0),bEt.DynamicsWorld_addAction(this._world,t.impl)}},t.removeCCT=function(t){var e=this.ccts.indexOf(t);if(e>=0){ve(this.ccts,e);var i=bEt.CharacterController_getGhostObject(t.impl);bEt.CollisionWorld_removeCollisionObject(this._world,i),bEt.DynamicsWorld_removeAction(this._world,t.impl)}},t.addConstraint=function(t){var e=this.constraints.indexOf(t);e<0&&(this.constraints.push(t),bEt.DynamicsWorld_addConstraint(this.impl,t.impl,!t.constraint.enableCollision),t.index=e)},t.removeConstraint=function(t){var e=this.constraints.indexOf(t);e>=0&&(this.constraints.splice(e,1),bEt.DynamicsWorld_removeConstraint(this.impl,t.impl),t.index=-1)},t.emitEvents=function(){this._needSyncAfterEvents=!1,this._needEmitEvents&&(this.gatherConatactData(),this.emitCollisionAndTriggerEvent(),this.emitCCTTriggerEvent()),this._needEmitCCTEvents&&this.emitCCTCollisionEvent()},t.emitCollisionAndTriggerEvent=function(){for(var t=this.contactsDic.getLength();t--;){nzt.push.apply(nzt,wEt.contacts),wEt.contacts.length=0;var e=this.contactsDic.getKeyByIndex(t),i=this.contactsDic.getDataByKey(e),n=i.shape0,r=i.shape1;this.oldContactsDic.set(n.id,r.id,i);var s=n.collider,a=r.collider;if(s&&a){if(s.isTrigger||a.isTrigger)this.triggerArrayMat.get(n.id,r.id)?xEt.type="onTriggerStay":(xEt.type="onTriggerEnter",this.triggerArrayMat.set(n.id,r.id,!0)),xEt.impl=i.impl,xEt.selfCollider=s,xEt.otherCollider=a,s.emit(xEt.type,xEt),xEt.selfCollider=a,xEt.otherCollider=s,a.emit(xEt.type,xEt),this._needSyncAfterEvents=!0;else{var o=s.attachedRigidBody,h=a.attachedRigidBody;if(o&&h){if(o.isSleeping&&h.isSleeping)continue}else if(!o&&h){if(h.isSleeping)continue}else if(!h&&o&&o.isSleeping)continue;this.collisionArrayMat.get(n.id,r.id)?wEt.type="onCollisionStay":(wEt.type="onCollisionEnter",this.collisionArrayMat.set(n.id,r.id,!0));for(var u=0;u0){var c=nzt.pop();c.impl=l,wEt.contacts.push(c)}else{var f=new izt(wEt);f.impl=l,wEt.contacts.push(f)}}wEt.impl=i.impl,wEt.selfCollider=s,wEt.otherCollider=a,s.emit(wEt.type,wEt),wEt.selfCollider=a,wEt.otherCollider=s,a.emit(wEt.type,wEt),this._needSyncAfterEvents=!0}null==this.oldContactsDic.get(n.id,r.id)&&this.oldContactsDic.set(n.id,r.id,i)}}for(var _=this.oldContactsDic.getLength();_--;){var d=this.oldContactsDic.getKeyByIndex(_),p=this.oldContactsDic.getDataByKey(d),m=p.shape0,g=p.shape1,y=m.collider,v=g.collider;if(y&&v){var b=y.isTrigger||v.isTrigger;null==this.contactsDic.getDataByKey(d)&&(b?this.triggerArrayMat.get(m.id,g.id)&&(xEt.type="onTriggerExit",xEt.selfCollider=y,xEt.otherCollider=v,y.emit(xEt.type,xEt),xEt.selfCollider=v,xEt.otherCollider=y,v.emit(xEt.type,xEt),this.triggerArrayMat.set(m.id,g.id,!1),this.oldContactsDic.set(m.id,g.id,null),this._needSyncAfterEvents=!0):this.collisionArrayMat.get(m.id,g.id)&&(nzt.push.apply(nzt,wEt.contacts),wEt.contacts.length=0,wEt.type="onCollisionExit",wEt.selfCollider=y,wEt.otherCollider=v,y.emit(wEt.type,wEt),wEt.selfCollider=v,wEt.otherCollider=y,v.emit(wEt.type,wEt),this.collisionArrayMat.set(m.id,g.id,!1),this.oldContactsDic.set(m.id,g.id,null),this._needSyncAfterEvents=!0))}}this.contactsDic.reset()},t.emitCCTTriggerEvent=function(){for(var t=this.cctContactsDic.getLength();t--;){var e=this.cctContactsDic.getKeyByIndex(t),i=this.cctContactsDic.getDataByKey(e),n=i.shape,r=i.cct;this.cctOldContactsDic.set(n.id,r.id,i);var s=n.collider,a=r.characterController;s&&a&&(s.isTrigger&&(this.characterControllerArrayMat.get(n.id,r.id)?TEt.type="onControllerTriggerStay":(TEt.type="onControllerTriggerEnter",this.characterControllerArrayMat.set(n.id,r.id,!0)),TEt.impl=i.impl,TEt.collider=s,TEt.characterController=a,s.emit(TEt.type,TEt),TEt.collider=s,TEt.characterController=a,a.emit(TEt.type,TEt),this._needSyncAfterEvents=!0),null==this.cctOldContactsDic.get(n.id,r.id)&&this.cctOldContactsDic.set(n.id,r.id,i))}for(var o=this.cctOldContactsDic.getLength();o--;){var h=this.cctOldContactsDic.getKeyByIndex(o),u=this.cctOldContactsDic.getDataByKey(h),l=u.shape,c=u.cct,f=l.collider,_=c.characterController;if(f&&_){var d=f.isTrigger;null==this.cctContactsDic.getDataByKey(h)&&d&&this.characterControllerArrayMat.get(l.id,c.id)&&(TEt.type="onControllerTriggerExit",TEt.collider=f,TEt.characterController=_,f.emit(TEt.type,TEt),TEt.collider=f,TEt.characterController=_,_.emit(TEt.type,TEt),this.characterControllerArrayMat.set(l.id,c.id,!1),this.cctOldContactsDic.set(l.id,c.id,null),this._needSyncAfterEvents=!0)}}this.cctContactsDic.reset()},t.emitCCTCollisionEvent=function(){for(var t=this.cctShapeEventDic.getLength();t--;){var e,i=this.cctShapeEventDic.getKeyByIndex(t),n=this.cctShapeEventDic.getDataByKey(i),r=n.BulletCharacterController,s=n.BulletShape,a=n.worldPos,o=n.worldNormal,h=n.motionDir,u=n.motionLength;hzt.controller=r.characterController,hzt.collider=s.collider,hzt.worldPosition.set(a.x,a.y,a.z),hzt.worldNormal.set(o.x,o.y,o.z),hzt.motionDirection.set(h.x,h.y,h.z),hzt.motionLength=u,null==(e=hzt.controller)||e.emit("onControllerColliderHit",hzt),this._needSyncAfterEvents=!0}this.cctShapeEventDic.reset()},t.gatherConatactData=function(){for(var t=bEt.Dispatcher_getNumManifolds(this._dispatcher),e=0;e0){if(this.collider.convex){var i=this._getBtTriangleMesh(e);this._impl=bEt.ConvexTriangleMeshShape_new(i)}else this.btBVHMeshShape=_zt.getBulletBvhTriangleMeshShape(e.hash,e),this._impl=bEt.ScaledBvhTriangleMeshShape_new(this.btBVHMeshShape.bulletBvhTriangleMeshShapePtr,1,1,1);var n=AEt.instance.BT_V3_0;jEt(n,this._collider.node.worldScale),bEt.CollisionShape_setLocalScaling(this._impl,n),bEt.CollisionShape_setMargin(this._impl,.01),this.setCompound(this._compound),this.updateByReAdd(),this.setWrapper()}else this._impl=bEt.EmptyShape_static()}},i.onComponentSet=function(){this.setMesh(this.collider.mesh)},i.onDestroy=function(){this.collider.convex?this.refBtTriangleMesh&&bEt._safe_delete(this.refBtTriangleMesh,8):this.btBVHMeshShape&&(this.btBVHMeshShape.reference=!1),t.prototype.onDestroy.call(this)},i.updateScale=function(){t.prototype.updateScale.call(this);var e=AEt.instance.BT_V3_0;jEt(e,this._collider.node.worldScale),bEt.CollisionShape_setLocalScaling(this._impl,e),this.updateCompoundTransform()},i._getBtTriangleMesh=function(t){return this.refBtTriangleMesh=bEt.TriangleMesh_new(),KEt(this.refBtTriangleMesh,t),this.refBtTriangleMesh},n(e,[{key:"collider",get:function(){return this._collider}}]),e}($Vt),pzt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.setHeight=function(){this.updateProperties(this.collider.radius,this.collider.height,this.collider.direction,this._collider.node.worldScale)},i.setDirection=function(){this.updateProperties(this.collider.radius,this.collider.height,this.collider.direction,this._collider.node.worldScale)},i.setRadius=function(){this.updateProperties(this.collider.radius,this.collider.height,this.collider.direction,this._collider.node.worldScale)},i.onComponentSet=function(){var t=AEt.instance.BT_V3_0;bEt.Vec3_set(t,.5,1,.5),this._impl=bEt.CylinderShape_new(t),this.setRadius(this.collider.radius)},i.updateScale=function(){t.prototype.updateScale.call(this),this.setRadius(this.collider.radius)},i.updateProperties=function(t,e,i,n){var r,s,a=n,o=i;1===o?(s=e*Math.abs(a.y),r=t*Math.abs(mn(a.x,a.z))):0===o?(s=e*Math.abs(a.x),r=t*Math.abs(mn(a.y,a.z))):(s=e*Math.abs(a.z),r=t*Math.abs(mn(a.x,a.y))),bEt.CylinderShape_updateProp(this._impl,r,s/2,o),this.updateCompoundTransform()},n(e,[{key:"collider",get:function(){return this._collider}}]),e}($Vt),mzt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.setHeight=function(){this.updateProperties(this.collider.radius,this.collider.height,this.collider.direction,this._collider.node.worldScale)},i.setDirection=function(){this.updateProperties(this.collider.radius,this.collider.height,this.collider.direction,this._collider.node.worldScale)},i.setRadius=function(){this.updateProperties(this.collider.radius,this.collider.height,this.collider.direction,this._collider.node.worldScale)},i.onComponentSet=function(){this._impl=bEt.ConeShape_new(.5,1),this.setRadius(this.collider.radius)},i.updateScale=function(){t.prototype.updateScale.call(this),this.setRadius(this.collider.radius)},i.updateProperties=function(t,e,i,n){var r,s,a=n,o=i;1===o?(s=e*Math.abs(a.y),r=t*Math.abs(mn(a.x,a.z))):0===o?(s=e*Math.abs(a.x),r=t*Math.abs(mn(a.y,a.z))):(s=e*Math.abs(a.z),r=t*Math.abs(mn(a.x,a.y))),bEt.ConeShape_setRadius(this._impl,r),bEt.ConeShape_setHeight(this._impl,s),bEt.ConeShape_setConeUpIndex(this._impl,o);var h=AEt.instance.BT_V3_0;bEt.Vec3_set(h,1,1,1),bEt.CollisionShape_setLocalScaling(this._impl,h),this.updateCompoundTransform()},n(e,[{key:"impl",get:function(){return this._impl}},{key:"collider",get:function(){return this._collider}}]),e}($Vt),gzt=function(t){function e(){for(var e,i=arguments.length,n=new Array(i),r=0;ru&&(s=u),u>a&&(a=u),r+=4}a+=.01,s-=.01,this._localOffset.set((i-1)/2*this._tileSize,(a+s)/2,(n-1)/2*this._tileSize),this._impl=bEt.TerrainShape_new(i,n,this._bufPtr,1,s,a);var l=AEt.instance.BT_V3_0;bEt.Vec3_set(l,this._tileSize,1,this._tileSize),bEt.CollisionShape_setLocalScaling(this._impl,l),this.setCompound(this._compound),this.updateByReAdd(),this.setWrapper()}else this._impl=bEt.EmptyShape_static()}},i.onComponentSet=function(){this.setTerrain(this.collider.terrain)},i.onDestroy=function(){this._bufPtr&&bEt._free(this._bufPtr),t.prototype.onDestroy.call(this)},i.setCenter=function(t){er.copy(CEt,t),CEt.add(this._localOffset),jEt(bEt.Transform_getOrigin(this.transform),CEt),this.updateCompoundTransform()},n(e,[{key:"collider",get:function(){return this._collider}}]),e}($Vt),yzt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.setShapeType=function(){},i.setVertices=function(){},i.onComponentSet=function(){this._impl=bEt.SimplexShape_new();for(var t=this.collider.shapeType,e=this.collider.vertices,i=AEt.instance.BT_V3_0,n=0;n=0){var t=this._rigidBody.body.sharedBody;t.wrappedWorld.removeConstraint(this),t.wrappedWorld.addConstraint(this)}},e.initialize=function(t){this._com=t,this._rigidBody=t.attachedBody,this._connectedBody=t.connectedBody,this._collided=t.enableCollision,this.onComponentSet(),this.setEnableCollision(this._collided)},e.updateDebugDrawSize=function(){if(this.impl){var t=gOt.instance.physicsWorld.debugDrawConstraintSize;bEt.TypedConstraint_setDbgDrawSize(this.impl,t)}},e.onEnable=function(){var t=this._rigidBody.body.sharedBody;t.wrappedWorld.addConstraint(this),t.addJoint(this,0);var e=this._connectedBody;e&&e.body.sharedBody.addJoint(this,1)},e.onDisable=function(){var t=this._rigidBody.body.sharedBody;t.wrappedWorld.removeConstraint(this),t.removeJoint(this,0);var e=this._connectedBody;e&&e.body.sharedBody.removeJoint(this,1)},e.onDestroy=function(){bEt._safe_delete(this._impl,13),this._com=null,this._rigidBody=null,this._connectedBody=null},n(t,[{key:"impl",get:function(){return this._impl}},{key:"constraint",get:function(){return this._com}}]),t}(),Szt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.setPivotA=function(){var t=this.constraint,e=AEt.instance.BT_V3_0;er.multiply(CEt,t.node.worldScale,t.pivotA),jEt(e,CEt),bEt.P2PConstraint_setPivotA(this._impl,e),t.connectedBody||this.setPivotB(t.pivotB)},i.setPivotB=function(){var t=this.constraint,e=this._rigidBody.node,i=AEt.instance.BT_V3_0,n=t.connectedBody;n?(er.multiply(CEt,n.node.worldScale,t.pivotB),jEt(i,CEt)):(er.multiply(CEt,e.worldScale,t.pivotA),er.transformQuat(CEt,CEt,e.worldRotation),er.add(CEt,CEt,e.worldPosition),jEt(i,CEt)),bEt.P2PConstraint_setPivotB(this._impl,i)},i.onComponentSet=function(){var t=this.constraint.connectedBody,e=this._rigidBody.body.impl,i=t?t.body.impl:bEt.TypedConstraint_getFixedBody(),n=AEt.instance.BT_V3_0,r=AEt.instance.BT_V3_1;this._impl=bEt.P2PConstraint_new(e,i,n,r),this.setPivotA(this.constraint.pivotA),this.setPivotB(this.constraint.pivotB),this.updateDebugDrawSize()},i.updateScale0=function(){this.setPivotA(this.constraint.pivotA)},i.updateScale1=function(){this.setPivotB(this.constraint.pivotB)},n(e,[{key:"constraint",get:function(){return this._com}}]),e}(bzt),xzt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.setBreakForce=function(t){bEt.TypedConstraint_setMaxImpulseThreshold(this._impl,t)},i.setBreakTorque=function(){},i.onComponentSet=function(){var t=this.constraint.connectedBody,e=this._rigidBody.body.impl,i=t?t.body.impl:bEt.TypedConstraint_getFixedBody(),n=AEt.instance.BT_TRANSFORM_0,r=AEt.instance.BT_TRANSFORM_1;this._impl=bEt.FixedConstraint_new(e,i,n,r),this.setBreakForce(this.constraint.breakForce),this.setBreakTorque(this.constraint.breakTorque),this.updateFrames(),this.updateDebugDrawSize()},i.updateFrames=function(){var t=this.constraint.connectedBody,e=this._rigidBody.body.sharedBody,i=CEt,n=IEt,r=AEt.instance.BT_TRANSFORM_0,s=AEt.instance.BT_TRANSFORM_1,a=AEt.instance.BT_QUAT_0,o=PEt;if(Kr.fromRT(o,e.node.worldRotation,e.node.worldPosition),Kr.invert(o,o),Kr.getRotation(n,o),Kr.getTranslation(i,o),jEt(bEt.Transform_getOrigin(r),i),XEt(a,n),bEt.Transform_setRotation(r,a),t){var h=t.body.sharedBody;Kr.fromRT(o,h.node.worldRotation,h.node.worldPosition),Kr.invert(o,o),Kr.getRotation(n,o),Kr.getTranslation(i,o),jEt(bEt.Transform_getOrigin(s),i),XEt(a,n),bEt.Transform_setRotation(s,a)}else bEt.Transform_setIdentity(s);bEt.FixedConstraint_setFrames(this._impl,r,s)},i.updateScale0=function(){this.updateFrames()},i.updateScale1=function(){this.updateFrames()},n(e,[{key:"constraint",get:function(){return this._com}}]),e}(bzt),wzt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.setPivotA=function(){this.updateFrames()},i.setPivotB=function(){this.updateFrames()},i.setAxis=function(){this.updateFrames()},i.setLimitEnabled=function(){this.constraint.limitEnabled?bEt.HingeConstraint_setLimit(this._impl,en(this.constraint.lowerLimit),en(this.constraint.upperLimit),.9,.3,1):bEt.HingeConstraint_setLimit(this._impl,1,0,.9,.3,1)},i.setLowerLimit=function(){this.constraint.limitEnabled&&bEt.HingeConstraint_setLimit(this._impl,en(this.constraint.lowerLimit),en(this.constraint.upperLimit),.9,.3,1)},i.setUpperLimit=function(){this.constraint.limitEnabled&&bEt.HingeConstraint_setLimit(this._impl,en(this.constraint.lowerLimit),en(this.constraint.upperLimit),.9,.3,1)},i.setMotorEnabled=function(t){bEt.HingeConstraint_enableMotor(this._impl,t);var e=-this.constraint.motorVelocity/60,i=JEt(this.constraint.motorForceLimit,gOt.instance.fixedTimeStep);bEt.HingeConstraint_setMotorVelocity(this._impl,e),bEt.HingeConstraint_setMaxMotorImpulse(this._impl,i)},i.setMotorVelocity=function(t){if(this.constraint.motorEnabled){var e=-t/60;bEt.HingeConstraint_setMotorVelocity(this._impl,e)}},i.setMotorForceLimit=function(t){if(this.constraint.motorEnabled){var e=JEt(t,gOt.instance.fixedTimeStep);bEt.HingeConstraint_setMaxMotorImpulse(this._impl,e)}},i.onComponentSet=function(){var t=this.constraint.connectedBody,e=this._rigidBody.body.impl,i=t?t.body.impl:bEt.TypedConstraint_getFixedBody(),n=AEt.instance.BT_TRANSFORM_0,r=AEt.instance.BT_TRANSFORM_1;this._impl=bEt.HingeConstraint_new(e,i,n,r),this.setLimitEnabled(this.constraint.limitEnabled),this.setLowerLimit(this.constraint.lowerLimit),this.setUpperLimit(this.constraint.upperLimit),this.setMotorEnabled(this.constraint.motorEnabled),this.setMotorVelocity(this.constraint.motorVelocity),this.setMotorForceLimit(this.constraint.motorForceLimit),this.updateFrames(),this.updateDebugDrawSize()},i.updateFrames=function(){var t=this.constraint,e=t.node,i=CEt,n=IEt,r=MEt,s=AEt.instance.BT_TRANSFORM_0;er.multiply(i,e.worldScale,t.pivotA),jEt(bEt.Transform_getOrigin(s),i);var a=AEt.instance.BT_QUAT_0;er.normalize(i,t.axis),Or.rotationTo(r,er.UNIT_Z,i),XEt(a,r),bEt.Transform_setRotation(s,a);var o=AEt.instance.BT_TRANSFORM_1,h=this.constraint.connectedBody;h?(er.multiply(i,h.node.worldScale,t.pivotB),Or.multiply(r,e.worldRotation,r),Or.invert(n,h.node.worldRotation),Or.multiply(r,n,r)):(er.multiply(i,e.worldScale,t.pivotA),er.transformQuat(i,i,e.worldRotation),er.add(i,i,e.worldPosition),Or.multiply(r,e.worldRotation,r)),jEt(bEt.Transform_getOrigin(o),i),XEt(a,r),bEt.Transform_setRotation(o,a),bEt.HingeConstraint_setFrames(this._impl,s,o)},i.updateScale0=function(){this.updateFrames()},i.updateScale1=function(){this.updateFrames()},n(e,[{key:"constraint",get:function(){return this._com}}]),e}(bzt),Tzt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i._setLimit=function(t,e,i,n){switch(t){case 2:bEt.Generic6DofSpring2Constraint_setLimit(this._impl,e,0,0);break;case 1:bEt.Generic6DofSpring2Constraint_setLimit(this._impl,e,i,n);break;case 0:bEt.Generic6DofSpring2Constraint_setLimit(this._impl,e,1,0)}},i.setConstraintMode=function(t,e){var i=this.constraint.linearLimitSettings,n=this.constraint.angularLimitSettings,r=[0,0,0],s=[0,0,0],a=0,o=0;switch(t){case 0:case 1:case 2:er.toArray(r,i.lower),er.toArray(s,i.upper),o=r[t],a=s[t];break;case 3:o=-(a=.5*en(n.twistExtent));break;case 4:o=-(a=.5*en(n.swingExtent1));break;case 5:o=-(a=.5*en(n.swingExtent2));break;default:Y("idx should be in [0, 5], but give "+t)}this._setLimit(e,t,o,a)},i.setLinearLimit=function(t,e,i){var n=0,r=this.constraint.linearLimitSettings;switch(t){case 0:n=r.xMotion;break;case 1:n=r.yMotion;break;case 2:n=r.zMotion}this._setLimit(n,t,e,i)},i.setAngularExtent=function(t,e,i){var n=this.constraint.angularLimitSettings;this._setLimit(n.twistMotion,3,.5*-en(t),.5*en(t)),this._setLimit(n.swingMotion1,4,.5*-en(e),.5*en(e)),this._setLimit(n.swingMotion2,5,.5*-en(i),.5*en(i))},i.setSwingSoftConstraint=function(t){bEt.Generic6DofSpring2Constraint_enableSpring(this._impl,4,t),bEt.Generic6DofSpring2Constraint_enableSpring(this._impl,5,t)},i.setTwistSoftConstraint=function(t){bEt.Generic6DofSpring2Constraint_enableSpring(this._impl,3,t)},i.setLinearSoftConstraint=function(t){bEt.Generic6DofSpring2Constraint_enableSpring(this._impl,0,t),bEt.Generic6DofSpring2Constraint_enableSpring(this._impl,1,t),bEt.Generic6DofSpring2Constraint_enableSpring(this._impl,2,t)},i.setLinearStiffness=function(t){bEt.Generic6DofSpring2Constraint_setStiffness(this._impl,0,t),bEt.Generic6DofSpring2Constraint_setStiffness(this._impl,1,t),bEt.Generic6DofSpring2Constraint_setStiffness(this._impl,2,t)},i.setLinearDamping=function(t){bEt.Generic6DofSpring2Constraint_setDamping(this._impl,0,t),bEt.Generic6DofSpring2Constraint_setDamping(this._impl,1,t),bEt.Generic6DofSpring2Constraint_setDamping(this._impl,2,t)},i.setLinearRestitution=function(t){bEt.Generic6DofSpring2Constraint_setBounce(this._impl,0,t),bEt.Generic6DofSpring2Constraint_setBounce(this._impl,1,t),bEt.Generic6DofSpring2Constraint_setBounce(this._impl,2,t)},i.setSwingStiffness=function(t){bEt.Generic6DofSpring2Constraint_setStiffness(this._impl,4,t),bEt.Generic6DofSpring2Constraint_setStiffness(this._impl,5,t)},i.setSwingDamping=function(t){bEt.Generic6DofSpring2Constraint_setDamping(this._impl,4,t),bEt.Generic6DofSpring2Constraint_setDamping(this._impl,5,t)},i.setSwingRestitution=function(t){bEt.Generic6DofSpring2Constraint_setBounce(this._impl,4,t),bEt.Generic6DofSpring2Constraint_setBounce(this._impl,5,t)},i.setTwistStiffness=function(t){bEt.Generic6DofSpring2Constraint_setStiffness(this._impl,3,t)},i.setTwistDamping=function(t){bEt.Generic6DofSpring2Constraint_setDamping(this._impl,3,t)},i.setTwistRestitution=function(t){bEt.Generic6DofSpring2Constraint_setBounce(this._impl,3,t)},i.setDriverMode=function(t,e){0===e?bEt.Generic6DofSpring2Constraint_enableMotor(this._impl,t,!1):1===e?(bEt.Generic6DofSpring2Constraint_enableMotor(this._impl,t,!0),bEt.Generic6DofSpring2Constraint_setServo(this._impl,t,!0)):2===e&&(bEt.Generic6DofSpring2Constraint_enableMotor(this._impl,t,!0),bEt.Generic6DofSpring2Constraint_setServo(this._impl,t,!1))},i._updateMotorTargetAndVelocity=function(t){var e=0,i=0,n=0,r=0,s=this.constraint.linearDriverSettings,a=this.constraint.angularDriverSettings;switch(t){case 0:i=0,e=s.xDrive,n=s.targetPosition.x,r=-s.targetVelocity.x;break;case 1:i=1,e=s.yDrive,n=s.targetPosition.y,r=-s.targetVelocity.y;break;case 2:i=2,e=s.zDrive,n=s.targetPosition.z,r=-s.targetVelocity.z;break;case 3:i=3,e=a.twistDrive,n=-en(a.targetOrientation.x),r=-en(a.targetVelocity.x);break;case 4:i=4,e=a.swingDrive1,n=-en(a.targetOrientation.y),r=-en(a.targetVelocity.y);break;case 5:i=5,e=a.swingDrive2,n=-en(a.targetOrientation.z),r=-en(a.targetVelocity.z)}var o=t>2?a.strength:s.strength;bEt.Generic6DofSpring2Constraint_setServoTarget(this._impl,i,n),1===e?t>2?bEt.Generic6DofSpring2Constraint_setTargetVelocity(this._impl,i,-n*o*.1):bEt.Generic6DofSpring2Constraint_setTargetVelocity(this._impl,i,n*o*.1):2===e&&bEt.Generic6DofSpring2Constraint_setTargetVelocity(this._impl,i,r)},i.setLinearMotorTarget=function(){this._updateMotorTargetAndVelocity(0),this._updateMotorTargetAndVelocity(1),this._updateMotorTargetAndVelocity(2)},i.setLinearMotorVelocity=function(){this._updateMotorTargetAndVelocity(0),this._updateMotorTargetAndVelocity(1),this._updateMotorTargetAndVelocity(2)},i.setLinearMotorForceLimit=function(t){bEt.Generic6DofSpring2Constraint_setMaxMotorForce(this._impl,0,t),bEt.Generic6DofSpring2Constraint_setMaxMotorForce(this._impl,1,t),bEt.Generic6DofSpring2Constraint_setMaxMotorForce(this._impl,2,t)},i.setAngularMotorTarget=function(){this._updateMotorTargetAndVelocity(3),this._updateMotorTargetAndVelocity(4),this._updateMotorTargetAndVelocity(5)},i.setAngularMotorVelocity=function(){this._updateMotorTargetAndVelocity(3),this._updateMotorTargetAndVelocity(4),this._updateMotorTargetAndVelocity(5)},i.setAngularMotorForceLimit=function(t){bEt.Generic6DofSpring2Constraint_setMaxMotorForce(this._impl,3,t),bEt.Generic6DofSpring2Constraint_setMaxMotorForce(this._impl,4,t),bEt.Generic6DofSpring2Constraint_setMaxMotorForce(this._impl,5,t)},i.setPivotA=function(){this.updateFrames()},i.setPivotB=function(){this.updateFrames()},i.setAutoPivotB=function(){this.updateFrames()},i.setAxis=function(){this.updateFrames()},i.setSecondaryAxis=function(){this.updateFrames()},i.setBreakForce=function(){var t=JEt(Math.max(this.constraint.breakForce,this.constraint.breakTorque),gOt.instance.fixedTimeStep);bEt.TypedConstraint_setMaxImpulseThreshold(this._impl,t)},i.setBreakTorque=function(){var t=JEt(Math.max(this.constraint.breakForce,this.constraint.breakTorque),gOt.instance.fixedTimeStep);bEt.TypedConstraint_setMaxImpulseThreshold(this._impl,t)},i.onComponentSet=function(){var t=this.constraint.connectedBody,e=this._rigidBody.body.impl,i=t&&t.body.impl||bEt.TypedConstraint_getFixedBody(),n=AEt.instance.BT_TRANSFORM_0,r=AEt.instance.BT_TRANSFORM_1;this._impl=bEt.Generic6DofSpring2Constraint_new(e,i,n,r,3);var s=this.constraint.linearLimitSettings,a=this.constraint.angularLimitSettings;this.setConstraintMode(0,s.xMotion),this.setConstraintMode(1,s.yMotion),this.setConstraintMode(2,s.zMotion),this.setConstraintMode(3,a.twistMotion),this.setConstraintMode(4,a.swingMotion1),this.setConstraintMode(5,a.swingMotion2),this.setLinearSoftConstraint(s.enableSoftConstraint),this.setLinearStiffness(s.stiffness),this.setLinearDamping(s.damping),this.setLinearRestitution(s.restitution),this.setSwingSoftConstraint(a.enableSoftConstraintSwing),this.setSwingRestitution(a.swingRestitution),this.setSwingStiffness(a.swingStiffness),this.setSwingDamping(a.swingDamping),this.setTwistSoftConstraint(a.enableSoftConstraintTwist),this.setTwistRestitution(a.twistRestitution),this.setTwistStiffness(a.twistStiffness),this.setTwistDamping(a.twistDamping);var o=this.constraint.linearDriverSettings,h=this.constraint.angularDriverSettings;this.setDriverMode(0,o.xDrive),this.setDriverMode(1,o.yDrive),this.setDriverMode(2,o.zDrive),this.setDriverMode(3,h.twistDrive),this.setDriverMode(4,h.swingDrive1),this.setDriverMode(5,h.swingDrive2),this.setLinearMotorTarget(o.targetPosition),this.setLinearMotorVelocity(o.targetVelocity),this.setLinearMotorForceLimit(o.strength),this.setAngularMotorTarget(h.targetOrientation),this.setAngularMotorVelocity(h.targetVelocity),this.setAngularMotorForceLimit(h.strength),this.setBreakForce(this.constraint.breakForce),this.setBreakTorque(this.constraint.breakTorque),this.updateFrames(),this.updateDebugDrawSize()},i.updateFrames=function(){var t=this.constraint,e=t.node,i=CEt,n=IEt,r=MEt,s=AEt.instance.BT_TRANSFORM_0;er.multiply(i,e.worldScale,t.pivotA),jEt(bEt.Transform_getOrigin(s),i);var a=AEt.instance.BT_QUAT_0,o=t.axis,h=t.secondaryAxis,u=er.cross(DEt,o,h);Kr.set(PEt,o.x,o.y,o.z,0,h.x,h.y,h.z,0,u.x,u.y,u.z,0,0,0,0,1).getRotation(n),XEt(a,n),bEt.Transform_setRotation(s,a);var l=AEt.instance.BT_TRANSFORM_1,c=this.constraint.connectedBody;c?(Or.multiply(n,e.worldRotation,n),Or.invert(r,c.node.worldRotation),Or.multiply(n,r,n),t.autoPivotB?(er.multiply(i,t.node.worldScale,t.pivotA),er.transformQuat(i,i,e.worldRotation),er.add(i,i,t.node.worldPosition),er.subtract(i,i,c.node.worldPosition),er.transformQuat(i,i,r)):er.multiply(i,c.node.worldScale,t.pivotB)):(er.multiply(i,e.worldScale,t.pivotA),er.transformQuat(i,i,e.worldRotation),er.add(i,i,e.worldPosition),Or.multiply(n,e.worldRotation,n)),jEt(bEt.Transform_getOrigin(l),i),XEt(a,n),bEt.Transform_setRotation(l,a),bEt.Generic6DofSpring2Constraint_setFrames(this._impl,s,l)},i.updateScale0=function(){this.updateFrames()},i.updateScale1=function(){this.updateFrames()},n(e,[{key:"constraint",get:function(){return this._com}}]),e}(bzt),Azt=new er(0,0,0),Czt=new er(0,0,0);new er(0,0,0);var Dzt=function(){function t(){this.wrappedWorld=void 0,this._isEnabled=!1,this._impl=0,this._comp=null,this._btCollisionFlags=0,this._word3=0,this._dirty=!1,this._collisionFilterGroup=1,this._collisionFilterMask=-1,this.id=t.idCounter++,this.wrappedWorld=gOt.instance.physicsWorld}var e=t.prototype;return e.onComponentSet=function(){},e.updateScale=function(){},e.initialize=function(t){this._comp=t;var e=this._comp.group,i=gOt.instance.collisionMatrix[e];return this._collisionFilterGroup=e,this._collisionFilterMask=i,this.onComponentSet(),0!==this._impl||(Y("[Physics]: Initialize BulletCharacterController failed"),!1)},e.setWrapper=function(){AEt.setWrapper(this._impl,SEt.CCT_CACHE_NAME,this);var t=bEt.CharacterController_getCollisionShape(this.impl);AEt.setWrapper(t,SEt.CCT_CACHE_NAME,this)},e.onEnable=function(){this._isEnabled=!0,this._impl||this.onComponentSet(),this.setDetectCollisions(!1),this.setOverlapRecovery(!0),gOt.instance.physicsWorld.addCCT(this),this.setWrapper()},e.onDisable=function(){this._isEnabled=!1,this.wrappedWorld.removeCCT(this),this.onDestroy()},e.onDestroy=function(){bEt._safe_delete(this._impl,6),AEt.delWrapper(this._impl,SEt.CCT_CACHE_NAME),this._impl=0},e.onLoad=function(){},e.getPosition=function(t){this._impl&&qEt(t,bEt.CharacterController_getPosition(this.impl))},e.setPosition=function(t){this._impl&&(jEt(bEt.CharacterController_getPosition(this.impl),t),this.syncPhysicsToScene())},e.setContactOffset=function(t){this._impl&&bEt.CharacterController_setContactOffset(this._impl,t)},e.setStepOffset=function(t){this._impl&&bEt.CharacterController_setStepOffset(this._impl,t)},e.setSlopeLimit=function(t){this._impl&&bEt.CharacterController_setSlopeLimit(this._impl,ti(t))},e.setDetectCollisions=function(t){this._impl&&bEt.CharacterController_setCollision(this.impl,t)},e.setOverlapRecovery=function(t){this._impl&&bEt.CharacterController_setOverlapRecovery(this.impl,t)},e.onGround=function(){return(4&this._btCollisionFlags)>0},e.syncSceneToPhysics=function(){var t=this.characterController.node;t.hasChangedFlags&&(4&t.hasChangedFlags&&this.syncScale(),1&t.hasChangedFlags&&(er.add(Azt,t.worldPosition,this.scaledCenter),this.setPosition(Azt)))},e.syncPhysicsToScene=function(){this.getPosition(Azt),Azt.subtract(this.scaledCenter),this._comp.node.setWorldPosition(Azt)},e.syncScale=function(){this.updateScale()},e.move=function(t,e,i){if(this._isEnabled){var n=AEt.instance.BT_V3_0;bEt.Vec3_set(n,t.x,t.y,t.z),this._btCollisionFlags=bEt.CharacterController_move(this.impl,n,e,i)}},e.setGroup=function(t){t!==this._collisionFilterGroup&&(this._collisionFilterGroup=t,this._dirty=!0)},e.getGroup=function(){return this._collisionFilterGroup},e.addGroup=function(t){this._collisionFilterGroup|=t,this._dirty=!0},e.removeGroup=function(t){this._collisionFilterGroup&=~t,this._dirty=!0},e.setMask=function(t){t!==this._collisionFilterMask&&(this._collisionFilterMask=t,this._dirty=!0)},e.getMask=function(){return this._collisionFilterMask},e.addMask=function(t){this._collisionFilterMask|=t,this._dirty=!0},e.removeMask=function(t){this._collisionFilterMask&=~t,this._dirty=!0},e.updateEventListener=function(){this.wrappedWorld.updateNeedEmitCCTEvents(this.characterController.needCollisionEvent)},e.updateDirty=function(){this._dirty&&(gOt.instance.physicsWorld.removeCCT(this),gOt.instance.physicsWorld.addCCT(this),this._dirty=!1)},e.onShapeHitExt=function(t){var e=bEt.ControllerShapeHit_getHitShape(t),i=gOt.instance.physicsWorld;i.cctShapeEventDic.get(this.impl,e);var n=new er;qEt(n,bEt.ControllerHit_getHitWorldPos(t));var r=new er;qEt(r,bEt.ControllerHit_getHitWorldNormal(t));var s=new er;qEt(s,bEt.ControllerHit_getHitMotionDir(t));var a=bEt.ControllerHit_getHitMotionLength(t),o=AEt.getWrapper(e,$Vt.TYPE);o&&i.cctShapeEventDic.set(this.impl,e,{BulletCharacterController:this,BulletShape:o,worldPos:n,worldNormal:r,motionDir:s,motionLength:a})},n(t,[{key:"isEnabled",get:function(){return this._isEnabled}},{key:"impl",get:function(){return this._impl}},{key:"characterController",get:function(){return this._comp}},{key:"scaledCenter",get:function(){return er.multiply(Czt,this._comp.center,this._comp.node.worldScale),Czt}}]),t}();Dzt.idCounter=0;var Bzt,Izt,Mzt,Pzt,Ezt,Ozt,kzt,Rzt=new er(0,0,0),Fzt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.onComponentSet=function(){this.component.node.getWorldPosition(Rzt),Rzt.add(this.scaledCenter);var t=AEt.instance.BT_V3_0;bEt.Vec3_set(t,Rzt.x,Rzt.y,Rzt.z);var e=er.UNIT_Y,i=AEt.instance.BT_V3_1;bEt.Vec3_set(i,e.x,e.y,e.z);var n=bEt.ControllerHitReport.implement(qVt).$$.ptr,r=gOt.instance.physicsWorld,s=bEt.CapsuleCharacterControllerDesc_new(ti(this.component.slopeLimit),this.component.stepOffset,this.component.skinWidth,i,t,n,this.component.radius,this.component.height);this._impl=bEt.CapsuleCharacterController_new(r.impl,s,0),this.updateScale()},i.setRadius=function(){this.updateScale()},i.setHeight=function(){this.updateScale()},i.updateScale=function(){this.updateGeometry()},i.updateGeometry=function(){var t=this.component.node.worldScale,e=this.component.radius*mn(t.x,t.z),i=this.component.height*Math.abs(t.y);bEt.CapsuleCharacterController_setRadius(this.impl,e),bEt.CapsuleCharacterController_setHeight(this.impl,i),this._dirty=!0},n(e,[{key:"component",get:function(){return this._comp}}]),e}(Dzt),Lzt=new er(0,0,0),Nzt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.onComponentSet=function(){this.component.node.getWorldPosition(Lzt),Lzt.add(this.scaledCenter);var t=AEt.instance.BT_V3_0;bEt.Vec3_set(t,Lzt.x,Lzt.y,Lzt.z);var e=er.UNIT_Y,i=AEt.instance.BT_V3_1;bEt.Vec3_set(i,e.x,e.y,e.z);var n=bEt.ControllerHitReport.implement(qVt).$$.ptr,r=gOt.instance.physicsWorld,s=bEt.BoxCharacterControllerDesc_new(ti(this.component.slopeLimit),this.component.stepOffset,this.component.skinWidth,i,t,n,this.component.halfHeight,this.component.halfSideExtent,this.component.halfForwardExtent);this._impl=bEt.BoxCharacterController_new(r.impl,s,0),this.updateScale()},i.setHalfHeight=function(){this.updateScale()},i.setHalfSideExtent=function(){this.updateScale()},i.setHalfForwardExtent=function(){this.updateScale()},i.updateScale=function(){this.updateGeometry()},i.updateGeometry=function(){var t=this.component.node.worldScale;bEt.BoxCharacterController_setHalfSideExtent(this.impl,this.component.halfSideExtent*t.x),bEt.BoxCharacterController_setHalfHeight(this.impl,this.component.halfHeight*t.y),bEt.BoxCharacterController_setHalfForwardExtent(this.impl,this.component.halfForwardExtent*t.z),this._dirty=!0},n(e,[{key:"component",get:function(){return this._comp}}]),e}(Dzt);HO.once(GO.EVENT_PRE_SUBSYSTEM_INIT,(function(){nEt.register("bullet",{PhysicsWorld:uzt,RigidBody:jVt,BoxShape:lzt,SphereShape:czt,CapsuleShape:fzt,TrimeshShape:dzt,CylinderShape:pzt,ConeShape:mzt,TerrainShape:gzt,SimplexShape:yzt,PlaneShape:vzt,PointToPointConstraint:Szt,HingeConstraint:wzt,FixedConstraint:xzt,ConfigurableConstraint:Tzt,BoxCharacterController:Nzt,CapsuleCharacterController:Fzt})}));var Vzt={BOX:0,SPHERE:1,CYLINDER:2,CONE:3,CAPSULE:4,TORUS:5,PLANE:6,QUAD:7};Pe(Vzt);var zzt=t("g1",(Bzt=Kh("cc.Primitive"),Izt=Eu(Vzt),Bzt((kzt=function(t){function e(e){var i;return void 0===e&&(e=0),(i=t.call(this)||this).type=Ezt&&Ezt(),i.info=Ozt&&Ozt(),i.type=e,i}return s(e,t),e.prototype.onLoaded=function(){Nk((0,yJ[Vzt[this.type].toLowerCase()])(this.info),this)},e}(Dk),kzt.PrimitiveType=Vzt,Ezt=Vh((Pzt=kzt).prototype,"type",[Izt],(function(){return 0})),Ozt=Vh(Pzt.prototype,"info",[hu],(function(){return{}})),Mzt=Pzt))||Mzt));T.Primitive=zzt,A.primitives=yJ;var Uzt,Gzt=function(){function t(t,e,i){this._total=0,this._value=0,this._averageValue=0,this._accumValue=0,this._accumSamples=0,this._id=t,this._opts=e,this._accumStart=i}var e=t.prototype;return e.sample=function(t){this._average(this._value,t)},e.human=function(){var t=this._opts,e=t.average,i=t.isInteger,n=e?this._averageValue:this._value;return i?Math.round(n):Math.round(100*n)/100},e.alarm=function(){return void 0!==this._opts.below&&this._valuethis._opts.over},e._average=function(t,e){if(void 0===e&&(e=0),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)}},n(t,[{key:"value",get:function(){return this._value},set:function(t){this._value=t}}]),t}(),Hzt=Kh("cc.PerfCounter")(Uzt=function(t){function e(e,i,n){var r;return(r=t.call(this,e,i,n)||this)._time=n,r}s(e,t);var i=e.prototype;return i.start=function(t){void 0===t&&(t=0),this._time=t},i.end=function(t){void 0===t&&(t=0),this._value=t-this._time,this._average(this._value)},i.tick=function(){this.end(),this.start()},i.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}(Gzt))||Uzt,Wzt="0123456789. ",jzt=500,qzt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,".":10},Xzt={fps:{desc:"Framerate (FPS)",below:30,average:jzt,isInteger:!0},draws:{desc:"Draw call",isInteger:!0},frame:{desc:"Frame time (ms)",min:0,max:50,average:jzt},instances:{desc:"Instance Count",isInteger:!0},tricount:{desc:"Triangle",isInteger:!0},logic:{desc:"Game Logic (ms)",min:0,max:50,average:jzt,color:"#080"},physics:{desc:"Physics (ms)",min:0,max:50,average:jzt},render:{desc:"Renderer (ms)",min:0,max:50,average:jzt,color:"#f90"},present:{desc:"Present (ms)",min:0,max:50,average:jzt,color:"#f90"},textureMemory:{desc:"GFX Texture Mem(M)"},bufferMemory:{desc:"GFX Buffer Mem(M)"}},Yzt=t("g2",function(t){function e(){var e;return(e=t.call(this)||this)._profilerStats=null,e._showFPS=!1,e._rootNode=null,e._device=null,e._swapchain=null,e._meshRenderer=null,e._canvas=null,e._ctx=null,e._texture=null,e._region=new Z_,e._canvasArr=[],e._regionArr=[e._region],e.digitsData=null,e.offsetData=null,e.pass=null,e._canvasDone=!1,e._statsDone=!1,e._inited=!1,e._lineHeight=280/(Object.keys(Xzt).length+1),e._wordHeight=0,e._eachNumWidth=0,e._totalLines=0,e.lastTime=0,e._canvas=D.document.createElement("canvas"),e._ctx=e._canvas.getContext("2d"),e._canvasArr.push(e._canvas),e}s(e,t);var i=e.prototype;return i.init=function(){Ve.querySettings("profiling","showFPS")?this.showStats():this.hideStats()},i.isShowingStats=function(){return this._showFPS},i.hideStats=function(){this._showFPS&&(this._rootNode&&(this._rootNode.active=!1),WE.off("director_before_update",this.beforeUpdate,this),WE.off("director_after_update",this.afterUpdate,this),WE.off("director_before_physics",this.beforePhysics,this),WE.off("director_after_physics",this.afterPhysics,this),WE.off("director_before_draw",this.beforeDraw,this),WE.off("director_after_render",this.afterRender,this),WE.off("director_after_draw",this.afterPresent,this),this._showFPS=!1,WE.root.pipeline.profiler=null,T.game.config.showFPS=!1)},i.showStats=function(){if(!this._showFPS){if(!this._device){var t=T.director.root;this._device=zp.gfxDevice,this._swapchain=t.mainWindow.swapchain}this.generateCanvas(),this.generateStats(),T.game.once(T.Game.EVENT_ENGINE_INITED,this.generateNode,this),T.game.on(T.Game.EVENT_RESTART,this.generateNode,this),this._rootNode&&(this._rootNode.active=!0),WE.on("director_before_update",this.beforeUpdate,this),WE.on("director_after_update",this.afterUpdate,this),WE.on("director_before_physics",this.beforePhysics,this),WE.on("director_after_physics",this.afterPhysics,this),WE.on("director_before_draw",this.beforeDraw,this),WE.on("director_after_render",this.afterRender,this),WE.on("director_after_draw",this.afterPresent,this),this._showFPS=!0,this._canvasDone=!0,this._statsDone=!0,T.game.config.showFPS=!0}},i.generateCanvas=function(){if(!this._canvasDone){var t=this._canvas,e=this._ctx;if(e&&t){t.width=280,t.height=280,t.style.width=""+t.width,t.style.height=""+t.height,e.font="23px Arial",e.textBaseline="top",e.fillStyle="#fff",this._texture=this._device.createTexture(new ld(1,6,35,280,280));var i=this._region.texExtent;i.width=280,i.height=280}}},i.generateStats=function(){if(!this._statsDone&&this._ctx&&this._canvas){this._profilerStats=null;var t=performance.now();this._ctx.textAlign="left";var e=0;for(var i in Xzt){var n=Xzt[i];this._ctx.fillText(n.desc,0,e*this._lineHeight),n.counter=new Hzt(i,n,t),e++}this._totalLines=e,this._wordHeight=this._totalLines*this._lineHeight/this._canvas.height;for(var r=0;r<12;++r){var s=this._ctx.measureText(Wzt[r]).width;this._eachNumWidth=Math.max(this._eachNumWidth,s)}for(var a=0;a<12;++a)this._ctx.fillText(Wzt[a],a*this._eachNumWidth,this._totalLines*this._lineHeight);this._eachNumWidth/=this._canvas.width,this._profilerStats=Xzt,this._canvasArr[0]=this._canvas,this._device.copyTexImagesToTexture(this._canvasArr,this._texture,this._regionArr)}},i.generateNode=function(){if(!this._rootNode||!this._rootNode.isValid){this._rootNode=new Qv("PROFILER_NODE"),this._rootNode._objFlags=1032,HO.addPersistRootNode(this._rootNode);var t=new Qv("Profiler_Root");t.parent=this._rootNode;for(var e=.4,i=e/this._totalLines,n=e/this._wordHeight,r=i/23,s=this._eachNumWidth*this._canvas.width*r,a=[0,e,0,n,e,0,n,0,0,0,0,0],o=[0,2,1,0,3,2],h=[0,0,-1,0,1,0,-1,0,1,this._wordHeight,-1,0,0,this._wordHeight,-1,0],u=0,l=0;l=0;o--){var h=8*i+o,u=a[a.length-(8-o)],l=qzt[u];void 0===l&&(l=11),n[h]=l}i++}}}},n(e,[{key:"_stats",get:function(){return st(16381),this._profilerStats}},{key:"stats",get:function(){return this._profilerStats}}]),e}(Ef)),Kzt=t("g3",new Yzt);WE.registerSystem("profiler",Kzt,0),T.profiler=Kzt;var Jzt=function(){function t(t){this.jointTexturePool=void 0,this.jointAnimationInfo=void 0,this.jointTexturePool=new yY(t),this.jointAnimationInfo=new vY(t)}var e=t.prototype;return e.releaseSkeleton=function(t){this.jointTexturePool.releaseSkeleton(t)},e.releaseAnimationClip=function(t){this.jointTexturePool.releaseAnimationClip(t)},e.clear=function(){this.jointTexturePool.clear(),this.jointAnimationInfo.clear()},t}();T.internal.DataPoolManager=Jzt;var Qzt,Zzt,$zt,tUt,eUt,iUt,nUt,rUt,sUt,aUt,oUt,hUt,uUt,lUt,cUt,fUt=new Kr,_Ut=new Kr,dUt=t("g5",function(t){function e(e,i){var n;return void 0===i&&(i=""),(n=t.call(this,e,i)||this)._frames=1,n._bakedDuration=0,n._animInfo=null,n._sockets=[],n._animInfoMgr=void 0,n._parent=null,n._curvesInited=!1,n._animInfoMgr=T.director.root.dataPoolManager.jointAnimationInfo,n}s(e,t);var i=e.prototype;return i.initialize=function(e){if(!this._curveLoaded){this._parent=e.getComponent("cc.SkeletalAnimation");var i=this._parent.useBakedAnimation;this._doNotCreateEval=i,t.prototype.initialize.call(this,e),this._curvesInited=!i;var n=nY.getOrExtract(this.clip),r=n.frames,s=n.samples;this._frames=r-1,this._animInfo=this._animInfoMgr.getData(e.uuid),this._bakedDuration=this._frames/s,this.setUseBaked(i)}},i.onPlay=function(){var e=this;t.prototype.onPlay.call(this),this._parent.useBakedAnimation&&(this._animInfoMgr.switchClip(this._animInfo,this.clip),this._parent.getUsers().forEach((function(t){t.uploadAnimation(e.clip)})))},i.setUseBaked=function(e){e?(this._sampleCurves=this._sampleCurvesBaked,this.duration=this._bakedDuration):(this._sampleCurves=t.prototype._sampleCurves,this.duration=this.clip.duration,this._curvesInited||(this._curveLoaded=!1,t.prototype.initialize.call(this,this._targetNode),this._curvesInited=!0))},i.rebuildSocketCurves=function(t){if(this._sockets.length=0,this._targetNode)for(var e=this._targetNode,i=0;ii?i:t},t.cosDeg=function(t){return Math.cos(t*u)},t.sinDeg=function(t){return Math.sin(t*u)},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}(),e.PI=r,e.PI2=s,e.radiansToDegrees=a,e.radDeg=o,e.degreesToRadians=h,e.degRad=u,e)}(vUt||(vUt={}));var SUt=vUt;function xUt(t,e){return t?e===t.length?t:e=this._maxFrameIdex&&(this.isCompleted=!0)}while(this.needToUpdate(t))},e.getFrame=function(t){var e=t%this._maxFrameIdex;return this.frames[e]},e.invalidAnimationFrames=function(){this._curIndex=-1,this._isCompleted=!1,this.frames.length=0},e.updateRenderData=function(t,e){var i=e.vCount,n=e.iCount,r=_Gt/4,s=new Uint8Array(4*r*i),a=new Uint16Array(n),o=SUt.wasmUtil.wasm.HEAPU8,h=e.vPtr,u=4*i*r;s.set(o.subarray(h,h+u));var l=e.iPtr,c=2*n;new Uint8Array(a.buffer).set(o.subarray(l,l+c));var f=new pGt;f.vCount=i,f.iCount=n,f.vData=s,f.iData=a;for(var _=e.getData(),d=e.getTextures(),p=_.size(),m=0;m0)return void this._sharedCacheMap.set(t,i);this._sharedCacheMap.delete(t)}}var n=this._skeletonCache[t];if(n){var r=this._privateMode?function(t,e){e.destroy()}:function(i,n){e._animationPool[t+"#"+i]=n,n.clear()},s=n.animationsCache;for(var a in s){var o=s[a];o&&r(a,o)}n.skeleton&&SUt.wasmUtil.destroySpineSkeleton(n.skeleton),delete this._skeletonCache[t]}},e.createSkeletonInfo=function(t){var e=t.uuid,i=t.getRuntimeData();if(!this._privateMode){var n=this._sharedCacheMap.get(e);n?n+=1:n=1,this._sharedCacheMap.set(e,n)}if(this._skeletonCache[e])return this._skeletonCache[e];var r=new SUt.Skeleton(i),s=new eGt;return this._skeletonCache[e]={skeleton:r,clipper:null,state:null,listener:s,animationsCache:{},curAnimationCache:null,assetUUID:e}},e.getSkeletonInfo=function(t){var e=t.uuid;return this._skeletonCache[e]},e.getAnimationCache=function(t,e){var i=this._skeletonCache[t];return i?i.animationsCache[e]:null},e.initAnimationCache=function(t,e,i){var n=e.getRuntimeData();if(!n)return null;var r=this._skeletonCache[t];if(!r||!r.skeleton)return null;var s=r.animationsCache,a=s[i];if(!a){var o=t+"#"+i;(a=this._animationPool[o])?delete this._animationPool[o]:(a=new gGt(n))._privateMode=this._privateMode,a.init(r,i),s[i]=a}return a.init(r,i),a.setAnimation(i),a},e.destroyCachedAnimations=function(t){if(t){var e=this._animationPool;for(var i in e)i.includes(t)&&(e[i].destroy(),delete e[i]);var n=this._skeletonCache[t],r=n&&n.skeleton;r&&SUt.wasmUtil.destroySpineSkeleton(r),n&&delete this._skeletonCache[t]}else{var s=this._animationPool;for(var a in s)s[a].destroy(),delete s[a]}},t}();ZUt=yGt,yGt.FrameTime=iGt,yGt.sharedCache=new ZUt;var vGt=(nGt=Kh("sp.SkeletonData"),rGt=Eu([By]),sGt=Eu([fi]),nGt((oGt=function(t){function e(){var e;return(e=t.call(this)||this)._skeletonJson=hGt&&hGt(),e.textures=uGt&&uGt(),e.textureNames=lGt&&lGt(),e.scale=cGt&&cGt(),e._atlasText=fGt&&fGt(),e._buffer=void 0,e._skeletonCache=null,e._skinsEnum=null,e._animsEnum=null,e.reset(),e}s(e,t);var i=e.prototype;return i.createNode=function(t){var e=new Qv(this.name);return e.addComponent("cc.Skeleton").skeletonData=this,t(null,e)},i.reset=function(){this._skeletonCache=null},i.resetEnums=function(){},i.getRuntimeData=function(t){if(this._skeletonCache)return this._skeletonCache;if(!(this.textures&&this.textures.length>0)&&this.textureNames&&this.textureNames.length>0)return t||Y(this.name+" no textures found!"),null;var e=this.mergedUUID(),i=SUt.wasmUtil.querySpineSkeletonDataByUUID(e);if(i)this._skeletonCache=i;else{for(var n=this.textures.length,r=[],s=0;s1)return this._animsEnum;var t=this.getRuntimeData(!0);if(t){for(var e={"":0},i=t.animations,n=0;n":0};ke(iHt);var nHt=iHt,rHt=(SGt=Kh("sp.Skeleton.SpineSocket"),xGt=Eu(Qv),SGt((TGt=function(t,e){void 0===t&&(t=""),void 0===e&&(e=null),this.path=AGt&&AGt(),this.target=CGt&&CGt(),this.path=t,this.target=e},AGt=Vh(TGt.prototype,"path",[hu],(function(){return""})),CGt=Vh(TGt.prototype,"target",[xGt,hu],(function(){return null})),wGt=TGt))||wGt);ue(rHt,"sp.Skeleton.SpineSocket");var sHt=(DGt=Kh("sp.Skeleton"),BGt=Eu(vGt),IGt=Eu(eHt),MGt=Eu(iHt),PGt=Eu($Gt),EGt=Eu([rHt]),OGt=Eu(NT),DGt((JGt=function(t){function e(){var e;return(e=t.call(this)||this)._skeletonData=FGt&&FGt(),e.defaultSkin=LGt&&LGt(),e.defaultAnimation=NGt&&NGt(),e._premultipliedAlpha=VGt&&VGt(),e._timeScale=zGt&&zGt(),e._preCacheMode=UGt&&UGt(),e._cacheMode=GGt&&GGt(),e._sockets=HGt&&HGt(),e._useTint=WGt&&WGt(),e._debugMesh=jGt&&jGt(),e._debugBones=qGt&&qGt(),e._debugSlots=XGt&&XGt(),e._enableBatch=YGt&&YGt(),e._runtimeData=null,e._skeleton=null,e._instance=null,e._state=null,e._textures=[],e._skeletonInfo=null,e._animationName="",e._skinName="",e._drawList=new ho((function(){return{material:null,texture:null,indexOffset:0,indexCount:0}}),1),e._materialCache={},e.paused=!1,e._enumSkins=Pe({}),e._enumAnimations=Pe({}),e.attachUtil=void 0,e._socketNodes=new Map,e._cachedSockets=new Map,e._startEntry=void 0,e._endEntry=void 0,e._paused=!1,e._accTime=0,e._playCount=0,e._skeletonCache=null,e._animCache=null,e._animationQueue=[],e._headAniInfo=null,e._isAniComplete=!0,e._playTimes=0,e._curFrame=null,e._needUpdateSkeltonData=!0,e._listener=null,e._debugRenderer=null,e._startSlotIndex=void 0,e._endSlotIndex=void 0,e._customMaterialInstance=null,e._vLength=0,e._vBuffer=null,e._iLength=0,e._iBuffer=null,e._model=void 0,e._tempColor={r:0,g:0,b:0,a:0},e._eventListenerID=-1,e._slotTextures=null,e.loop=KGt&&KGt(),e._useVertexOpacity=!0,e._startEntry={animation:{name:""},trackIndex:0},e._endEntry={animation:{name:""},trackIndex:0},e._startSlotIndex=-1,e._endSlotIndex=-1,e._instance=new SUt.SkeletonInstance,e._instance.dtRate=1*e._timeScale,e._instance.isCache=e.isAnimationCached(),e.attachUtil=new ZGt,e}s(e,t);var i=e.prototype;return i.__preload=function(){t.prototype.__preload.call(this),this._updateSkeletonData(),this._updateDebugDraw()},i.onRestore=function(){this.updateMaterial(),this._markForUpdateRenderData()},i.getState=function(){return this._state},i.onEnable=function(){t.prototype.onEnable.call(this),this._instance&&(this._instance.enable=!0),this._flushAssembler(),bGt.getInstance().add(this)},i.onDisable=function(){t.prototype.onDisable.call(this),this._instance&&(this._instance.enable=!1),bGt.getInstance().remove(this)},i.onDestroy=function(){var e;this._eventListenerID>0&&(eGt.removeListener(this._eventListenerID),this._eventListenerID=-1),this._drawList.destroy(),this.destroyRenderData(),this._cleanMaterialCache(),this._vBuffer=null,this._iBuffer=null,this.attachUtil.reset(),null==(e=this._slotTextures)||e.clear(),this._slotTextures=null,this._cachedSockets.clear(),this._socketNodes.clear(),this._animCache=null,bGt.getInstance().remove(this),this._instance&&(this._instance.destroy(),this._instance=null),this._destroySkeletonInfo(this._skeletonCache),this._skeletonCache=null,t.prototype.onDestroy.call(this)},i.clearAnimation=function(t){this.isAnimationCached()||(this.clearTrack(t||0),this.setToSetupPose())},i.clearAnimations=function(){this.isAnimationCached()||(this.clearTracks(),this.setToSetupPose())},i._updateSkeletonData=function(){var t=this._skeletonData;if(!t)return this._runtimeData=null,this._state=null,this._skeleton=null,this._textures=[],void this._refreshInspector();this._instance&&(this._instance.dtRate=1*this._timeScale),this._needUpdateSkeltonData=!1,this._runtimeData=t.getRuntimeData(),this._runtimeData&&(this.setSkeletonData(this._runtimeData),this._textures=t.textures,this._refreshInspector(),this.defaultSkin&&""!==this.defaultSkin?this.setSkin(this.defaultSkin):this._skinName&&""!==this._skinName&&this.setSkin(this._skinName),this.defaultAnimation?this.animation=this.defaultAnimation.toString():this._animationName?this.animation=this._animationName:this.animation="",this._updateUseTint(),this._indexBoneSockets(),this._updateSocketBindings(),this.attachUtil.init(this),this._preCacheMode=this._cacheMode)},i.setSkeletonData=function(t){var e=this._skeletonCache;if(1===this._cacheMode?this._skeletonCache=yGt.sharedCache:2===this._cacheMode?(this._skeletonCache=new yGt,this._skeletonCache.enablePrivateMode()):this._skeletonCache=null,e!==this._skeletonCache&&this._destroySkeletonInfo(e),this.isAnimationCached()){(this.debugBones||this.debugSlots)&&st(16410);var i=this._skeletonCache.getSkeletonInfo(this._skeletonData);this._skeletonInfo!==i&&(this._destroySkeletonInfo(this._skeletonCache),i||2!==this._cacheMode||(this._animCache=this._skeletonCache.initAnimationCache(this.skeletonData.uuid,this._skeletonData,this._animationName)),this._skeletonInfo=this._skeletonCache.createSkeletonInfo(this._skeletonData)),this._skeletonInfo&&(this._skeleton=this._skeletonInfo.skeleton)}else this._skeleton=this._instance.initSkeleton(t),this._state=this._instance.getAnimationState(),this._instance.setPremultipliedAlpha(this._premultipliedAlpha);this._flushAssembler()},i.setSlotsRange=function(t,e){this.isAnimationCached()?st(16411):(this._startSlotIndex=t,this._endSlotIndex=e)},i.getAttachment=function(t,e){return this._skeleton?this._skeleton.getAttachmentByName(t,e):null},i.setAttachment=function(t,e){this._skeleton&&this._skeleton.setAttachment(t,e),this.invalidAnimationCache()},i.getTextureAtlas=function(t){return t.region},i.setAnimation=function(t,e,i){if("string"!=typeof e)return et(7511),null;var n=this._skeleton;if(!n||!n.data.findAnimation(e))return et(7509,e),null;var r=null;if(void 0===i&&(i=!0),this._playTimes=i?0:1,this.isAnimationCached()){if(0!==t&&st(16412),!this._skeletonCache)return null;var s=this._skeletonCache.getAnimationCache(this._skeletonData.uuid,e);s||(s=this._skeletonCache.initAnimationCache(this.skeletonData.uuid,this._skeletonData,e))&&this._skinName&&s.setSkin(this._skinName),s&&(this._animationName=e,this._isAniComplete=!1,this._accTime=0,this._playCount=0,this._animCache=s,this._socketNodes.size>0&&this._animCache.enableCacheAttachedInfo(),this._animCache.updateToFrame(0),this._curFrame=this._animCache.frames[0])}else this._animationName=e,r=this._instance.setAnimation(t,e,i);return this._markForUpdateRenderData(),r},i.addAnimation=function(t,e,i,n){if(n=n||0,this.isAnimationCached())return 0!==t&&st(16413),this._animationQueue.push({animationName:e,loop:i,delay:n}),null;if(this._skeleton){var r,s=this._skeleton.data.findAnimation(e);return s?null==(r=this._state)?void 0:r.addAnimationWith(t,s,i,n):(et(7510,e),null)}return null},i.findAnimation=function(t){return this._skeleton?this._skeleton.data.findAnimation(t):null},i.getCurrent=function(t){if(this.isAnimationCached())st(16414);else if(this._state)return this._state.getCurrent(t);return null},i.setSkin=function(t){t&&(this._skeleton&&this._skeleton.setSkinByName(t),this._instance.setSkin(t),this.isAnimationCached()&&this._animCache&&this._animCache.setSkin(t),this._skinName=t,this.invalidAnimationCache())},i.updateAnimation=function(t){if(this._markForUpdateRenderData(),!this.paused)if(this.isAnimationCached()){if(t*=1*this._timeScale,this._isAniComplete){var e;if(0===this._animationQueue.length&&!this._headAniInfo){var i=this._animCache;if(i&&i.isInvalid()){i.updateToFrame(0);var n=i.frames;this._curFrame=n[n.length-1]}return}if(this._headAniInfo||(this._headAniInfo=this._animationQueue.shift()),this._accTime+=t,this._accTime>(null==(e=this._headAniInfo)?void 0:e.delay)){var r=this._headAniInfo;this._headAniInfo=null,this.setAnimation(0,null==r?void 0:r.animationName,null==r?void 0:r.loop)}return}this._updateCache(t)}else this._instance.updateAnimation(t)},i._updateCache=function(t){var e=this._animCache;if(e.isInited()){var i=e.frames,n=yGt.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),this._curFrame=i[r],void 0!==this._curFrame&&this.attachUtil.updateSkeletonBones(this._curFrame.boneInfos),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._curFrame=i[r],this._emitCacheCompleteEvent()}}},i._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))},i.updateRenderData=function(){return this.isAnimationCached()?this._curFrame?this._curFrame.model:null:this._instance.updateRenderData()},i._flushAssembler=function(){var t=e.Assembler.getAssembler(this);this._assembler!==t&&(this._assembler=t),this._skeleton&&this._assembler&&this._assembler.createData&&(this._renderData=this._assembler.createData(this),this._markForUpdateRenderData(),this._updateColor())},i._render=function(t){var e=0;if(this.renderData&&this._drawList.length>0){for(var i=this.renderData,n=i.chunk,r=n.vertexAccessor,s=i.getMeshBuffer(),a=s.indexOffset,o=0;o":e(t[i.parent.data.index])+"/"+i.data.name},i=0,n=t.length;i0?Array.from(this._cachedSockets.keys()).sort():[]):[]},i._updateUseTint=function(){this._cleanMaterialCache(),this.destroyRenderData(),this.isAnimationCached()||this._instance.setUseTint(this._useTint);var t=this._assembler;t&&t.createData&&this._skeleton&&(this._renderData=t.createData(this),this._markForUpdateRenderData())},i._updateBatch=function(){this._cleanMaterialCache(),this._markForUpdateRenderData()},i._updateDebugDraw=function(){if(this.debugBones||this.debugSlots||this.debugMesh){if(!this._debugRenderer){var t=new Qv("DEBUG_DRAW_NODE");t.layer=this.node.layer,t.hideFlags|=1032;var e=null;try{(e=t.addComponent("cc.Graphics")).lineWidth=5,e.strokeColor=new lr(255,0,0,255),this._debugRenderer=e,t.parent=this.node,this.node.on("layer-changed",this._applyLayer,this)}catch(e){ot(4501,e.message),t.destroy(),t=null}}this.isAnimationCached()?st(16418):this._instance.setDebugMode(!0)}else this._debugRenderer&&(this.node.off("layer-changed",this._applyLayer,this),this._debugRenderer.node.destroy(),this._debugRenderer=null,this.isAnimationCached()||this._instance&&this._instance.setDebugMode(!1))},i._updateUITransform=function(){var t=this.node._getUITransformComp(),e=this._runtimeData;if(!e)return t.setContentSize(100,100),t.anchorX=.5,void(t.anchorX=.5);var i=e.width,n=e.height;i&&n&&(t.setContentSize(i,n),0!==i&&(t.anchorX=Math.abs(e.x)/i),0!==n&&(t.anchorY=Math.abs(e.y)/n))},i._updateColor=function(){var t=this,e=t.node._uiProps,i=t._tempColor,n=t._color,r=t.node.parent?t.node.parent._uiProps.opacity:1,s=e.localOpacity*r*n.a/255;if(i.r!==n.r||i.g!==n.g||i.b!==n.b||i.a!==s){e.colorDirty=!0,i.r=n.r,i.g=n.g,i.b=n.b,i.a=s;var a=n.r/255,o=n.g/255,h=n.b/255;this._instance.setColor(a,o,h,s)}},i.setVertexEffectDelegate=function(t){if(this._instance)if(t){var e=null==t?void 0:t.getEffectType();if("jitter"===e){var i=null==t?void 0:t.getJitterVertexEffect();this._instance.setJitterEffect(i)}else if("swirl"===e){var n=null==t?void 0:t.getJitterVertexEffect();this._instance.setSwirlEffect(n)}}else this._instance.clearEffect()},i._ensureListener=function(){this._listener||(this._listener=new eGt,this._eventListenerID=eGt.addListener(this._listener),this._instance.setListener(this._eventListenerID))},i.setStartListener=function(t){this._ensureListener(),this._listener.start=t},i.setInterruptListener=function(t){this._ensureListener(),this._listener.interrupt=t},i.setEndListener=function(t){this._ensureListener(),this._listener.end=t},i.setDisposeListener=function(t){this._ensureListener(),this._listener.dispose=t},i.setCompleteListener=function(t){this._ensureListener(),this._listener.complete=t},i.setEventListener=function(t){this._ensureListener(),this._listener.event=t},i.setTrackStartListener=function(t,e){eGt.getListeners(t,this._instance).start=e},i.setTrackInterruptListener=function(t,e){eGt.getListeners(t,this._instance).interrupt=e},i.setTrackEndListener=function(t,e){eGt.getListeners(t,this._instance).end=e},i.setTrackDisposeListener=function(t,e){eGt.getListeners(t,this._instance).dispose=e},i.setTrackCompleteListener=function(t,e){eGt.getListeners(t,this._instance).complete=function(t){var i=Math.floor(t.trackTime/t.animationEnd);e(t,i)}},i.setTrackEventListener=function(t,e){eGt.getListeners(t,this._instance).event=e},i.getDebugShapes=function(){return this._instance.getDebugShapes()},i.setSlotTexture=function(t,e,i){if(this.isAnimationCached())Y("Cached mode can't change texture of slot");else if(this.findSlot(t)){var n=e.width,r=e.height,s=i||!1;this._instance.resizeSlotRegion(t,n,r,s);var a=e.uuid;a||(a=e.getId()),this._instance.setSlotTexture(t,a),this._slotTextures||(this._slotTextures=new Map),this._slotTextures.set(a,e)}else Y("No slot named:"+t)},i._destroySkeletonInfo=function(t){t&&this._skeletonInfo&&(t.destroySkeleton(this._skeletonInfo.assetUUID),this._skeletonInfo=null)},i._applyLayer=function(){this._debugRenderer&&(this._debugRenderer.node.layer=this.node.layer)},n(e,[{key:"drawList",get:function(){return this._drawList}},{key:"skeletonData",get:function(){return this._skeletonData},set:function(t){t&&t.resetEnums(),this._skeletonData!==t&&(this.destroyRenderData(),this._skeletonData=t,this.defaultSkin="",this.defaultAnimation="",this._animationName="",this._skinName="",this._updateSkeletonData(),this._updateUITransform())}},{key:"_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){var i=e[t];void 0!==i?(this.defaultSkin=String(i),this.setSkin(this.defaultSkin),this._refreshInspector(),this._markForUpdateRenderData()):Y(this.name+" skin enums are invalid")}else Y(this.name+" skin enums are invalid")}},{key:"_animationIndex",get:function(){var t=this.animation;if(this.skeletonData)if(t){var e=this.skeletonData.getAnimsEnum();if(e){var i=e[t];if(void 0!==i)return i}}else this._refreshInspector();return 0},set:function(t){var e;if(this.skeletonData&&(e=this.skeletonData.getAnimsEnum()),e){var i=String(e[t]);void 0!==i?(this.animation=i,this.animation=i):Y(this.name+" animation enums are invalid")}else Y(this.name+" animation enums are invalid")}},{key:"defaultCacheMode",get:function(){return this._cacheMode},set:function(t){this._cacheMode=t,this.setAnimationCacheMode(this._cacheMode)}},{key:"premultipliedAlpha",get:function(){return this._premultipliedAlpha},set:function(t){t!==this._premultipliedAlpha&&(this._premultipliedAlpha=t,this._instance.setPremultipliedAlpha(t),this._markForUpdateRenderData())}},{key:"timeScale",get:function(){return this._timeScale},set:function(t){t!==this._timeScale&&(this._timeScale=t,this._instance&&(this._instance.dtRate=1*this._timeScale))}},{key:"useTint",get:function(){return this._useTint},set:function(t){t!==this._useTint&&(this._useTint=t,this._updateUseTint())}},{key:"enableBatch",get:function(){return this._enableBatch},set:function(t){t!==this._enableBatch&&(this._enableBatch=t,this._updateBatch())}},{key:"sockets",get:function(){return this._sockets},set:function(t){this._sockets=t,this._updateSocketBindings(),this.attachUtil.init(this)}},{key:"debugSlots",get:function(){return this._debugSlots},set:function(t){t!==this._debugSlots&&(this._debugSlots=t,this._updateDebugDraw(),this._markForUpdateRenderData())}},{key:"debugBones",get:function(){return this._debugBones},set:function(t){t!==this._debugBones&&(this._debugBones=t,this._updateDebugDraw(),this._markForUpdateRenderData())}},{key:"debugMesh",get:function(){return this._debugMesh},set:function(t){t!==this._debugMesh&&(this._debugMesh=t,this._updateDebugDraw(),this._markForUpdateRenderData())}},{key:"socketNodes",get:function(){return this._socketNodes}},{key:"animation",get:function(){return this._animationName},set:function(t){t?this.setAnimation(0,t,this.loop):this.clearAnimation(0)}},{key:"customMaterial",get:function(){return this._customMaterial},set:function(t){this._customMaterial=t,this.updateMaterial(),this._markForUpdateRenderData()}},{key:"customMaterialInstance",get:function(){if(!this._customMaterial)return null;if(!this._customMaterialInstance){var t={parent:this._customMaterial,subModelIdx:0,owner:this};this._customMaterialInstance=new XT(t)}return this._customMaterialInstance}}]),e}(TL),JGt.SpineSocket=rHt,JGt.AnimationCacheMode=$Gt,FGt=Vh((RGt=JGt).prototype,"_skeletonData",[hu],(function(){return null})),LGt=Vh(RGt.prototype,"defaultSkin",[hu],(function(){return""})),NGt=Vh(RGt.prototype,"defaultAnimation",[hu],(function(){return""})),VGt=Vh(RGt.prototype,"_premultipliedAlpha",[hu],(function(){return!0})),zGt=Vh(RGt.prototype,"_timeScale",[hu],(function(){return 1})),UGt=Vh(RGt.prototype,"_preCacheMode",[hu],(function(){return-1})),GGt=Vh(RGt.prototype,"_cacheMode",[hu],(function(){return 0})),HGt=Vh(RGt.prototype,"_sockets",[hu],(function(){return[]})),WGt=Vh(RGt.prototype,"_useTint",[hu],(function(){return!1})),jGt=Vh(RGt.prototype,"_debugMesh",[hu],(function(){return!1})),qGt=Vh(RGt.prototype,"_debugBones",[hu],(function(){return!1})),XGt=Vh(RGt.prototype,"_debugSlots",[hu],(function(){return!1})),YGt=Vh(RGt.prototype,"_enableBatch",[hu],(function(){return!1})),v(RGt.prototype,"skeletonData",[BGt],Object.getOwnPropertyDescriptor(RGt.prototype,"skeletonData"),RGt.prototype),v(RGt.prototype,"_defaultSkinIndex",[IGt],Object.getOwnPropertyDescriptor(RGt.prototype,"_defaultSkinIndex"),RGt.prototype),v(RGt.prototype,"_animationIndex",[MGt],Object.getOwnPropertyDescriptor(RGt.prototype,"_animationIndex"),RGt.prototype),v(RGt.prototype,"defaultCacheMode",[PGt],Object.getOwnPropertyDescriptor(RGt.prototype,"defaultCacheMode"),RGt.prototype),KGt=Vh(RGt.prototype,"loop",[hu],(function(){return!0})),v(RGt.prototype,"sockets",[EGt],Object.getOwnPropertyDescriptor(RGt.prototype,"sockets"),RGt.prototype),v(RGt.prototype,"customMaterial",[Uu,OGt],Object.getOwnPropertyDescriptor(RGt.prototype,"customMaterial"),RGt.prototype),kGt=RGt))||kGt);A.internal.SpineSkeleton=sHt;var aHt,oHt,hHt,uHt,lHt=function(){function t(){this.name="sp.VertexEffectDelegate",this._vertexEffect=void 0,this._interpolation=void 0,this._effectType=void 0,this._vertexEffect=null,this._interpolation=null,this._effectType="none"}var e=t.prototype;return e.clear=function(){this._vertexEffect=null,this._interpolation=null,this._effectType="none"},e.initJitter=function(t,e){return this._effectType="jitter",this._vertexEffect=new SUt.JitterEffect(t,e),this._vertexEffect},e.initSwirlWithPow=function(t,e){return this._effectType="swirl",this._interpolation=new SUt.Pow(e),this._vertexEffect=new SUt.SwirlEffect(t,this._interpolation),this._vertexEffect},e.initSwirlWithPowOut=function(t,e){return this._effectType="swirl",this._interpolation=new SUt.PowOut(e),this._vertexEffect=new SUt.SwirlEffect(t,this._interpolation),this._vertexEffect},e.getJitterVertexEffect=function(){return this._vertexEffect},e.getSwirlVertexEffect=function(){return this._vertexEffect},e.getVertexEffect=function(){return this._vertexEffect},e.getEffectType=function(){return this._effectType},t}(),cHt=new lr(0,0,255,255),fHt=new lr(255,0,0,255),_Ht=new lr(0,255,0,255),dHt=new lr(255,255,0,255),pHt=null,mHt=null,gHt=!1,yHt=!1,vHt=MF(CF),bHt=MF(BF),SHt=new er(0,0,0);function xHt(t,e){var i,n;switch(t){case 1:i=gHt?1:2,n=1;break;case 2:i=7,n=4;break;case 3:i=gHt?1:2,n=8;break;default:i=gHt?1:2,n=4}return e.getMaterialForBlendAndTint(i,n,yHt?1:0)}var wHt=function(){function t(){this.vCount=32767}var e=t.prototype;return e.ensureAccessor=function(t){var e=t?mHt:pHt;if(!e){var i=WE.root.device,n=WE.root.batcher2D,r=t?BF:CF;t?(e=mHt=new RF(i,r,this.vCount),n.registerBufferAccessor(Number.parseInt("SPINETINT",36),mHt)):(e=pHt=new RF(i,r,this.vCount),n.registerBufferAccessor(Number.parseInt("SPINE",36),pHt))}return e},e.createData=function(t){var e=t.renderData;if(!e){var i=t.useTint||t.isAnimationCached(),n=this.ensureAccessor(i);e=JF.add(i?BF:CF,n)}return e},e.updateRenderData=function(t){var e;t._skeleton&&t.node.active&&null!=(e=t.skeletonData)&&e.isValid&&AHt(t)},t}(),THt=new wHt;function AHt(t){if(t.drawList.reset(),0!==t.color.a){t._updateColor(),gHt=t.premultipliedAlpha,yHt=t.useTint||t.isAnimationCached(),t.isAnimationCached()?DHt(t):CHt(t);var e=t.renderData,i=yHt?mHt:pHt;t.syncAttachedNode(),(e.vertexCount>0||e.indexCount>0)&&i.getMeshBuffer(e.chunk.bufferId).setDirty()}}function CHt(t){var e,i,n=(t.useTint?bHt:vHt)/4,r=t.updateRenderData(),s=r.vCount,a=r.iCount;if(!(s<1||a<1)){var o=t.renderData;o.vertexCount===s&&o.indexCount===a||(o.resize(s,a),o.indices=new Uint16Array(a),t._vLength=4*s*n,t._vBuffer=new Uint8Array(o.chunk.vb.buffer,o.chunk.vb.byteOffset,4*o.chunk.vb.length),t._iLength=2*a,t._iBuffer=new Uint8Array(o.indices.buffer));var h=o.chunk.vb,u=r.vPtr,l=r.iPtr,c=o.indices,f=SUt.wasmUtil.wasm.HEAPU8;null==(e=t._vBuffer)||e.set(f.subarray(u,u+t._vLength),0),null==(i=t._iBuffer)||i.set(f.subarray(l,l+t._iLength),0);for(var _=o.chunk.vertexOffset,d=0;dKi||4294967295!==lr.toUint32(o)||gHt){aHt=o.r/255,oHt=o.g/255,hHt=o.b/255,uHt=h;for(var u=0;u>t,n=0;if(t<3&&(i-=2,n=e*mWt+e),0!==i&&0!==i){var r=i*i*6;this._bodyIndexPool[t].indices=new Uint16Array(r);for(var s=0,a=new Uint16Array(r),o=n,h=o+mWt*e,u=0;u>e,o=0,h=new Uint16Array(2*a+2);h[o++]=0,h[o++]=0;for(var u=1;u>e,o=0,h=new Uint16Array(2*a+2);h[o++]=1056,h[o++]=1056;for(var u=1;u>e,o=0,h=new Uint16Array(2*a+2);h[o++]=0,h[o++]=0;for(var u=1;u>e,o=0,h=new Uint16Array(2*a+2);h[o++]=32,h[o++]=32;for(var u=1;u0&&(this._brushPass=n.passes[0],this._currentMaterial.passes.push(this._brushPass),n.passes.pop())}return e&&this._model.initSubModel(0,this._meshData,this._currentMaterial),this.setSharedMaterial(this._currentMaterial,0),this._currentMaterialLayers=i,this._model.enabled=!0,this._model.receiveShadow=t.getTerrain().receiveShadow,!0}return!1},i._updateLightingmap=function(t,e){null!=this._model&&(this._lightmap=t,this._updateReceiveDirLight(),this._model.updateLightingmap(t,e))},i._onMaterialModified=function(t,e){null!=this._model&&this._onRebuildPSO(t,e||this._getBuiltinMaterial())},i._onRebuildPSO=function(t,e){this._model&&this._model.setSubModelMaterial(t,e)},i._clearMaterials=function(){null!=this._model&&this._onMaterialModified(0,null)},i._onUpdateReceiveDirLight=function(t,e){void 0===e&&(e=!1),this._model&&(e?this._model.receiveDirLight=!1:this.node&&(t&this.node.layer)===this.node.layer||t&this._model.visFlags?this._model.receiveDirLight=!0:this._model.receiveDirLight=!1)},i._updateReceiveDirLight=function(){var t=this.node.scene;if(t&&t.renderScene){var e=t.renderScene.mainLight;if(e){var i=e.visibility;e.node&&(e.node.mobility===Ly.Static&&this._lightmap?this._onUpdateReceiveDirLight(i,!0):this._onUpdateReceiveDirLight(i))}}},i._getBuiltinMaterial=function(){return fT.get("missing-material")},e}(VU),AWt=t("gd",Kh("cc.TerrainBlockLightmapInfo")((qHt=function(){this.texture=XHt&&XHt(),this.UOff=YHt&&YHt(),this.VOff=KHt&&KHt(),this.UScale=JHt&&JHt(),this.VScale=QHt&&QHt()},XHt=Vh(qHt.prototype,"texture",[hu],(function(){return null})),YHt=Vh(qHt.prototype,"UOff",[hu],(function(){return 0})),KHt=Vh(qHt.prototype,"VOff",[hu],(function(){return 0})),JHt=Vh(qHt.prototype,"UScale",[hu],(function(){return 0})),QHt=Vh(qHt.prototype,"VScale",[hu],(function(){return 0})),jHt=qHt))||jHt),CWt=t("ge",function(){function t(t,e,i){this._terrain=void 0,this._node=void 0,this._renderable=void 0,this._index=[1,1],this._weightMap=null,this._lightmapInfo=null,this._lodLevel=0,this._lodKey=new yWt,this._errorMetrics=[0,0,0,0],this._LevelDistances=[gWt,gWt,gWt,gWt],this._bbMin=ir(),this._bbMax=ir(),this._terrain=t,this._index[0]=e,this._index[1]=i,this._lightmapInfo=t._getLightmapInfo(e,i),this._node=new Qv("TerrainBlock"),this._node.setParent(this._terrain.node),this._node.hideFlags|=1032,this._node.layer=this._terrain.node.layer,this._renderable=this._node.addComponent(TWt)}var e=t.prototype;return e.build=function(){var t=WE.root.device,e=new Float32Array(sRt*rRt*rRt);this._buildVertexData(e);var i=t.createBuffer(new sd(10,1,4*sRt*rRt*rRt,4*sRt));i.update(e),this._buildBoundingBox();var n=[new xd("a_position",32),new xd("a_normal",32),new xd("a_texCoord",21)];this._renderable._meshData=new eO([i],n,7,this._terrain._getSharedIndexBuffer(),null,!1),this._renderable._model=A.director.root.createModel(qM),this._renderable._model.createBoundingShape(this._bbMin,this._bbMax),this._renderable._model.node=this._renderable._model.transform=this._node,null!=this._renderable.node.scene&&(this.visible=!0),this._updateWeightMap(),this._updateMaterial(!0),this._terrain.lodEnable&&(this._updateLodBuffer(e),this._updateIndexBuffer())},e.rebuild=function(){this._updateHeight(),this._updateWeightMap(),this._renderable._invalidMaterial(),this._updateMaterial(!1)},e.destroy=function(){this.visible=!1,this._renderable._destroyModel(),null!=this._node&&this._node.isValid&&this._node.destroy(),null!=this._weightMap&&this._weightMap.destroy()},e.update=function(){this._updateMaterial(!1),this.lightmap!==this._renderable._lightmap&&this._renderable._updateLightingmap(this.lightmap,this.lightmapUVParam);var t=this._terrain.useNormalMap,e=this._terrain.usePBR,i=function(t){return null!==t?t.detailMap:null},n=function(t){var e=null!==t?t.normalMap:null;return null===e&&(e=fT.get("normal-texture")),e},r=this._renderable._currentMaterial;if(null!==r){var s=this.getMaxLayer(),a=new Ln(1,1,1,1),o=new Ln(1,1,1,1),h=new Ln(0,0,0,0);if(0===s)if(-1!==this.layers[0]){var u=this._terrain.getLayer(this.layers[0]);null!==u&&(a.x=1/u.tileSize,o.x=u.roughness,h.x=u.metallic),r.setProperty("detailMap0",i(u)),t&&r.setProperty("normalMap0",n(u))}else r.setProperty("detailMap0",fT.get("default-texture")),t&&r.setProperty("normalMap0",fT.get("normal-texture"));else if(1===s){var l=this._terrain.getLayer(this.layers[0]),c=this._terrain.getLayer(this.layers[1]);null!==l&&(a.x=1/l.tileSize,o.x=l.roughness,h.x=l.metallic),null!==c&&(a.y=1/c.tileSize,o.y=c.roughness,h.y=c.metallic),r.setProperty("weightMap",this._weightMap),r.setProperty("detailMap0",i(l)),r.setProperty("detailMap1",i(c)),t&&(r.setProperty("normalMap0",n(l)),r.setProperty("normalMap1",n(c)))}else if(2===s){var f=this._terrain.getLayer(this.layers[0]),_=this._terrain.getLayer(this.layers[1]),d=this._terrain.getLayer(this.layers[2]);null!==f&&(a.x=1/f.tileSize,o.x=f.roughness,h.x=f.metallic),null!==_&&(a.y=1/_.tileSize,o.y=_.roughness,h.y=_.metallic),null!==d&&(a.z=1/d.tileSize,o.z=d.roughness,h.z=d.metallic),r.setProperty("weightMap",this._weightMap),r.setProperty("detailMap0",i(f)),r.setProperty("detailMap1",i(_)),r.setProperty("detailMap2",i(d)),t&&(r.setProperty("normalMap0",n(f)),r.setProperty("normalMap1",n(_)),r.setProperty("normalMap2",n(d)))}else if(3===s){var p=this._terrain.getLayer(this.layers[0]),m=this._terrain.getLayer(this.layers[1]),g=this._terrain.getLayer(this.layers[2]),y=this._terrain.getLayer(this.layers[3]);null!==p&&(a.x=1/p.tileSize,o.x=p.roughness,h.x=p.metallic),null!==m&&(a.y=1/m.tileSize,o.y=m.roughness,h.y=m.metallic),null!==g&&(a.z=1/g.tileSize,o.z=g.roughness,h.z=g.metallic),null!==y&&(a.w=1/y.tileSize,o.w=y.roughness,h.w=y.metallic),r.setProperty("weightMap",this._weightMap),r.setProperty("detailMap0",i(p)),r.setProperty("detailMap1",i(m)),r.setProperty("detailMap2",i(g)),r.setProperty("detailMap3",i(y)),t&&(r.setProperty("normalMap0",n(p)),r.setProperty("normalMap1",n(m)),r.setProperty("normalMap2",n(g)),r.setProperty("normalMap3",n(y)))}r.setProperty("UVScale",a),e&&(r.setProperty("roughness",o),r.setProperty("metallic",h))}},e._buildLodInfo=function(){var t=new Float32Array(sRt*rRt*rRt);this._buildVertexData(t),this._updateLodBuffer(t),this._updateIndexBuffer()},e._updateLevel=function(t){var e=this._terrain,i=e.node,n=ir(),r=ir();er.add(n,this._bbMin,i.worldPosition),er.add(r,this._bbMax,i.worldPosition);var s=er.distance(n,t),a=er.distance(r,t),o=Math.min(s,a);for(o-=e.LodBias,this._lodLevel=0;this._lodLevel<3&&!(o<=this._LevelDistances[this._lodLevel+1]);)++this._lodLevel},e.setBrushMaterial=function(t){this._renderable._brushMaterial!==t&&(this._renderable._invalidMaterial(),this._renderable._brushMaterial=t)},e._getBrushMaterial=function(){return this._renderable?this._renderable._brushMaterial:null},e._getBrushPass=function(){return this._renderable?this._renderable._brushPass:null},e.getTerrain=function(){return this._terrain},e.getIndex=function(){return this._index},e.getRect=function(){var t=new vs;return t.x=this._index[0]*nRt,t.y=this._index[1]*nRt,t.width=nRt,t.height=nRt,t},e.setLayer=function(t,e){this.layers[t]!==e&&(this._terrain.setBlockLayer(this._index[0],this._index[1],t,e),this._renderable._invalidMaterial(),this._updateMaterial(!1))},e.getLayer=function(t){return this.layers[t]},e.getMaxLayer=function(){return this.layers[3]>=0?3:this.layers[2]>=0?2:this.layers[1]>=0?1:0},e._getMaterialDefines=function(t){var e=1;return this._terrain.node&&this._terrain.node.scene&&this._terrain.node.scene.globals.bakedWithStationaryMainLight&&(e=2),{LAYERS:t+1,CC_USE_LIGHTMAP:null!==this.lightmap?e:0,USE_NORMALMAP:this._terrain.useNormalMap?1:0,USE_PBR:this._terrain.usePBR?1:0}},e._invalidMaterial=function(){this._renderable._invalidMaterial()},e._updateMaterial=function(t){this._renderable._updateMaterial(this,t)&&(null!==this.lightmap&&this.lightmap.setWrapMode(3,3),this._renderable._updateLightingmap(this.lightmap,this.lightmapUVParam))},e._updateHeight=function(){if(null!=this._renderable._meshData){var t=new Float32Array(sRt*rRt*rRt);this._buildVertexData(t),this._renderable._meshData.vertexBuffers[0].update(t),this._buildBoundingBox(),this._renderable._model.createBoundingShape(this._bbMin,this._bbMax),this._renderable._model.updateWorldBound(),this._updateLodBuffer(t),this._updateIndexBuffer()}},e._updateWeightMap=function(){if(0!==this.getMaxLayer()){null==this._weightMap&&(this._weightMap=new By,this._weightMap.create(this._terrain.weightMapSize,this._terrain.weightMapSize,35),this._weightMap.setFilters(2,2),this._weightMap.setWrapMode(2,2));for(var t=new Uint8Array(this._terrain.weightMapSize*this._terrain.weightMapSize*4),e=0,i=0;i0){var e=this.getTerrain().getBlock(this._index[0]-1,this._index[1]);t.west=e._lodLevel,t.west0){var n=this.getTerrain().getBlock(this._index[0],this._index[1]-1);t.north=n._lodLevel,t.north>t,o=s-1>>t,h=0;hthis.vertexCount[0]-1||s<0||s>this.vertexCount[1]-1)return null;r=Zi(r,0,this.vertexCount[0]-1),s=Zi(s,0,this.vertexCount[1]-1),a=Zi(a,0,this.vertexCount[0]-1),o=Zi(o,0,this.vertexCount[1]-1);var l=this.getHeight(r,s),c=this.getHeight(a,s),f=this.getHeight(r,o),_=this.getHeight(a,o),d=.5*(c+f);return h+u<=1?_=d+(d-l):l=d+(d-_),(l*(1-h)+c*h)*(1-u)+(f*(1-h)+_*h)*u},i._setNormal=function(t,e,i){var n=e*this.vertexCount[0]+t;this._normals[3*n+0]=i.x,this._normals[3*n+1]=i.y,this._normals[3*n+2]=i.z},i.getNormal=function(t,e){var i=e*this.vertexCount[0]+t,n=ir();return n.x=this._normals[3*i+0],n.y=this._normals[3*i+1],n.z=this._normals[3*i+2],n},i.getNormalAt=function(t,e){var i=t/this.tileSize,n=e/this.tileSize,r=Math.floor(i),s=Math.floor(n),a=r+1,o=s+1,h=i-r,u=n-s;if(r<0||r>this.vertexCount[0]-1||s<0||s>this.vertexCount[1]-1)return null;r=Zi(r,0,this.vertexCount[0]-1),s=Zi(s,0,this.vertexCount[1]-1),a=Zi(a,0,this.vertexCount[0]-1),o=Zi(o,0,this.vertexCount[1]-1);var l=this.getNormal(r,s),c=this.getNormal(a,s),f=this.getNormal(r,o),_=this.getNormal(a,o),d=ir();er.add(d,c,f).multiplyScalar(.5),h+u<=1?(_.set(d),_.subtract(l),_.add(d)):(l.set(d),l.subtract(_),l.add(d));var p=ir(),m=ir(),g=ir();return er.lerp(p,l,c,h),er.lerp(m,f,_,h),er.lerp(g,p,m,u),g},i.setWeight=function(t,e,i){var n=e*this._weightMapSize*this._blockCount[0]+t;this._weights[4*n+0]=255*i.x,this._weights[4*n+1]=255*i.y,this._weights[4*n+2]=255*i.z,this._weights[4*n+3]=255*i.w},i.getWeight=function(t,e){var i=e*this._weightMapSize*this._blockCount[0]+t,n=new Ln;return n.x=this._weights[4*i+0]/255,n.y=this._weights[4*i+1]/255,n.z=this._weights[4*i+2]/255,n.w=this._weights[4*i+3]/255,n},i.getWeightAt=function(t,e){var i=this.weightMapSize*this.blockCount[0],n=this.weightMapSize*this.blockCount[1];if(0===i||0===n)return null;var r=t/i,s=e/n,a=Math.floor(r),o=Math.floor(s),h=a+1,u=o+1,l=r-a,c=s-o;if(a<0||a>i-1||o<0||o>n-1)return null;a=Zi(a,0,i-1),o=Zi(o,0,n-1),h=Zi(h,0,i-1),u=Zi(u,0,n-1);var f=this.getWeight(a,o),_=this.getWeight(h,o),d=this.getWeight(a,u),p=this.getWeight(h,u),m=new Ln;Ln.add(m,_,d).multiplyScalar(.5),l+c<=1?(p=new Ln,Ln.subtract(p,m,f).add(m)):(f=new Ln,Ln.subtract(f,m,p).add(m));var g=new Ln,y=new Ln,v=new Ln;return Ln.lerp(g,f,_,l),Ln.lerp(y,d,p,l),Ln.lerp(v,g,y,c),v},i.getMaxWeightLayerAt=function(t,e){var i=this.weightMapSize*this.blockCount[0],n=this.weightMapSize*this.blockCount[1];if(0===i||0===n)return null;var r=t/i,s=e/n,a=Math.floor(r),o=Math.floor(s);if(a<0||a>i-1||o<0||o>n-1)return null;var h=this.getWeight(a,o),u=Math.floor(t/this.weightMapSize),l=Math.floor(e/this.weightMapSize),c=this.getBlock(u,l),f=0;return h.y>h[f]&&-1!==c.getLayer(1)&&(f=1),h.y>h[f]&&-1!==c.getLayer(2)&&(f=2),h.z>h[f]&&-1!==c.getLayer(3)&&(f=3),f=c.getLayer(f),this.getLayer(f)},i.getBlockLayers=function(t,e){var i=(e*this._blockCount[0]+t)*eRt;return[this._layerBuffer[i],this._layerBuffer[i+1],this._layerBuffer[i+2],this._layerBuffer[i+3]]},i.getBlockLayer=function(t,e,i){var n=(e*this._blockCount[0]+t)*eRt;return this._layerBuffer[n+i]},i.setBlockLayer=function(t,e,i,n){var r=(e*this._blockCount[0]+t)*eRt;this._layerBuffer[r+i]=n},i.getBlock=function(t,e){return this._blocks[e*this._blockCount[0]+t]},i.getBlocks=function(){return this._blocks},i.rayCheck=function(t,e,i,n){void 0===n&&(n=!0);var r=t;n&&er.subtract(r,t,this.node.worldPosition);var s=ir();s.set(e),s.multiplyScalar(i);var a=null;if(e.equals(ir(0,1,0))){var o=this.getHeightAt(r.x,r.z);null!=o&&r.y<=o&&(a=ir(r.x,o,r.z))}else if(e.equals(ir(0,-1,0))){var h=this.getHeightAt(r.x,r.z);null!=h&&r.y>=h&&(a=ir(r.x,h,r.z))}else{for(var u=0;u++<2e3;){var l=this.getHeightAt(r.x,r.z);if(null!=l&&r.y<=l)break;r.add(e)}for(;u++<2e3;){var c=this.getHeightAt(r.x,r.z);if(null!=c&&r.y<=c){a=ir(r.x,c,r.z);break}r.add(s)}}return a},i._createSharedIndexBuffer=function(){var t=zp.gfxDevice;if(null!==this._lod){var e=t.createBuffer(new sd(6,1,2*this._lod._indexBuffer.length,2));return e.update(this._lod._indexBuffer),e}for(var i=new Uint16Array(nRt*nRt*6),n=0,r=0;r0}},{key:"info",get:function(){var t=new xWt;return t.tileSize=this.tileSize,t.blockCount[0]=this.blockCount[0],t.blockCount[1]=this.blockCount[1],t.weightMapSize=this.weightMapSize,t.lightMapSize=this.lightMapSize,t}}]),e}(dg),hWt=Vh(oWt.prototype,"__asset",[$Ht,hu],(function(){return null})),uWt=Vh(oWt.prototype,"_effectAsset",[tWt,hu],(function(){return null})),lWt=Vh(oWt.prototype,"_lightmapInfos",[eWt,hu],(function(){return[]})),cWt=Vh(oWt.prototype,"_receiveShadow",[hu],(function(){return!1})),fWt=Vh(oWt.prototype,"_useNormalmap",[hu],(function(){return!1})),_Wt=Vh(oWt.prototype,"_usePBR",[hu],(function(){return!1})),dWt=Vh(oWt.prototype,"_lodEnable",[hu],(function(){return!1})),pWt=Vh(oWt.prototype,"_lodBias",[iWt,hu],(function(){return 0})),v(oWt.prototype,"_asset",[nWt],Object.getOwnPropertyDescriptor(oWt.prototype,"_asset"),oWt.prototype),v(oWt.prototype,"effectAsset",[rWt],Object.getOwnPropertyDescriptor(oWt.prototype,"effectAsset"),oWt.prototype),v(oWt.prototype,"info",[sWt],Object.getOwnPropertyDescriptor(oWt.prototype,"info"),oWt.prototype),aWt=oWt))||aWt)||aWt)),{ORTHO:0,HEX:1,ISO:2});ke(DWt);var BWt={NONE:0,MAP:1,LAYER:2,OBJECTGROUP:3,OBJECT:4,TILE:5};ke(BWt);var IWt={HORIZONTAL:2147483648,VERTICAL:1073741824,DIAGONAL:536870912,FLIPPED_ALL:4026531840,FLIPPED_MASK:268435455};ke(IWt);var MWt={STAGGERAXIS_X:0,STAGGERAXIS_Y:1};ke(MWt);var PWt={STAGGERINDEX_ODD:0,STAGGERINDEX_EVEN:1};ke(PWt);var EWt={RightDown:0,RightUp:1,LeftDown:2,LeftUp:3};ke(EWt);var OWt={RECT:0,ELLIPSE:1,POLYGON:2,POLYLINE:3,IMAGE:4,TEXT:5};ke(OWt);var kWt=function(){function t(){this.name="",this.firstGid=0,this.spacing=0,this.margin=0,this.sourceImage=void 0,this.imageName=null,this.imageOffset=null,this.imageSize=new ps(0,0),this.tileOffset=new _s(0,0),this._tileSize=new ps(0,0),this.collection=!1}return t.prototype.rectForGID=function(t,e){var i=e||new vs(0,0,0,0);i.width=this._tileSize.width,i.height=this._tileSize.height;var n=t;if(n&=268435455,n-=this.firstGid,this.imageOffset)i.x=this.imageOffset.x,i.y=this.imageOffset.y;else{var r=Math.floor((this.imageSize.width-2*this.margin+this.spacing)/(this._tileSize.width+this.spacing));i.x=Math.round(n%r*(this._tileSize.width+this.spacing)+this.margin),i.y=Math.round(Math.floor(n/r)*(this._tileSize.height+this.spacing)+this.margin)}return i},t}(),RWt=function(){function t(){this.properties={},this.name="",this.objects=[],this.visible=!0,this.opacity=0,this.color=new lr(255,255,255,255),this.offset=new _s(0,0),this.draworder="topdown",this.tintColor=null}var e=t.prototype;return e.getProperties=function(){return this.properties},e.setProperties=function(t){this.properties=t},t}(),FWt=function(){function t(){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=new _s(0,0),this.tintColor=null}var e=t.prototype;return e.getProperties=function(){return this.properties},e.setProperties=function(t){this.properties=t},t}();FWt.ATTRIB_NONE=1,FWt.ATTRIB_BASE64=2,FWt.ATTRIB_GZIP=4,FWt.ATTRIB_ZLIB=8;var LWt=function(){this.name="",this.visible=!0,this.width=0,this.height=0,this.offset=new _s(0,0),this.opacity=0,this.trans=new lr(255,255,255,255),this.sourceImage=void 0,this.tintColor=null};function NWt(t){if(t.length%4!=0)return null;for(var e=t.length/4,i=window.Uint32Array?new Uint32Array(e):[],n=0;n1,x=b[0],w=x.getAttribute("source");w=w.replace(/\\/g,"/");var T=m.getElementsByTagName("tile"),A=T&&T.length||1,C=null,D=m.getAttribute("name")||"",B=parseInt(m.getAttribute("spacing"))||0,I=parseInt(m.getAttribute("margin"))||0,M=i||parseInt(m.getAttribute("firstgid"))||0,P=new ps(0,0);P.width=parseFloat(m.getAttribute("tilewidth")),P.height=parseFloat(m.getAttribute("tileheight"));var E=m.getElementsByTagName("tileoffset")[0],O=0,k=0;E&&(O=parseFloat(E.getAttribute("x"))||0,k=parseFloat(E.getAttribute("y"))||0);for(var R=null,F=0;F0){var H=U[0],W=H.getAttribute("source");if(W=W.replace(/\\/g,"/"),R.imageName=W,R.imageSize.width=parseFloat(H.getAttribute("width"))||0,R.imageSize.height=parseFloat(H.getAttribute("height"))||0,G||(R._tileSize.width=R.imageSize.width,R._tileSize.height=R.imageSize.height),R.sourceImage=this._spriteFrameMap[W],!R.sourceImage){var j=t.getNameWithPostfix(W);if(R.imageName=j,R.sourceImage=this._spriteFrameMap[j],!R.sourceImage){var q=t.getShortName(W);R.imageName=q,R.sourceImage=this._spriteFrameMap[q],R.sourceImage||(ot(7221,W),X("Please try asset type of "+W+" to 'sprite-frame'"))}}R.firstGid=268435455&this.parentGID}var K=(268435455&this.parentGID)>>>0;this._tileProperties.set(K,GWt(C));var J=C.getElementsByTagName("animation");if(J&&J.length>0){var Q=J[0].getElementsByTagName("frame"),Z={frames:[],dt:0,frameIdx:0};this._tileAnimations.set(K,Z);for(var $=Z.frames,tt=0;tt0){var _=f[0];l.type=5,l.wrap="1"===_.getAttribute("wrap"),l.color=UWt(_.getAttribute("color")),l.halign=VWt(_.getAttribute("halign")),l.valign=zWt(_.getAttribute("valign")),l.pixelsize=parseInt(_.getAttribute("pixelsize"))||16,l.text=_.childNodes[0].nodeValue}var d=u.getAttribute("gid");d&&(l.gid=parseInt(d),l.type=4);var p=u.getElementsByTagName("ellipse");p&&p.length>0&&(l.type=1);var m=u.getElementsByTagName("polygon");if(m&&m.length>0){l.type=2;var g=m[0].getAttribute("points");g&&(l.points=this._parsePointsString(g))}var y=u.getElementsByTagName("polyline");if(y&&y.length>0){l.type=3;var v=y[0].getAttribute("points");v&&(l.polylinePoints=this._parsePointsString(v))}l.type||(l.type=0),e.objects.push(l)}"index"!==a&&e.objects.sort((function(t,e){return t.y-e.y}))}return e},e._parsePointsString=function(t){if(!t)return null;for(var e=[],i=t.split(" "),n=0;n1||t.imageOffset)if(i){v._name=i.name;var w=i.unbiasUV[0],T=i.rotated?i.unbiasUV[1]:i.unbiasUV[5];rjt?(v.l=w+(v.x+.5)/c,v.t=T+(v.y+.5)/f,v.r=w+(v.x+v.width-.5)/c,v.b=T+(v.y+v.height-.5)/f):(v.l=w+v.x/c,v.t=T+v.y/f,v.r=w+(v.x+v.width)/c,v.b=T+(v.y+v.height)/f),v._rect=new vs(v.x,v.y,v.width,v.height)}else v.l=v.x/c,v.t=v.y/f,v.r=(v.x+v.width)/c,v.b=(v.y+v.height)/f,v._rect=new vs(v.x,v.y,v.width,v.height);else i.rotated?(v._rotated=!0,v._name=i.name,v._rect=i.getRect(),v.l=i.unbiasUV[0],v.t=i.unbiasUV[1],v.r=i.unbiasUV[4],v.b=i.unbiasUV[3]):(v._name=i.name,v._rect=i.getRect(),v.l=i.unbiasUV[0],v.t=i.unbiasUV[5],v.r=i.unbiasUV[2],v.b=i.unbiasUV[1]);v.cx=(v.l+v.r)/2,v.cy=(v.t+v.b)/2,e.set(x,v)}}var ojt=new Kr,hjt=new _s,ujt=new er,ljt=new er,cjt={row:0,col:0};function fjt(t){return"subNodes"in t}for(var _jt,djt,pjt,mjt,gjt,yjt,vjt,bjt,Sjt,xjt,wjt,Tjt,Ajt,Cjt,Djt,Bjt,Ijt,Mjt,Pjt,Ejt,Ojt,kjt,Rjt,Fjt,Ljt,Njt,Vjt,zjt,Ujt,Gjt,Hjt,Wjt,jjt=t("gJ",Kh("cc.TiledUserNodeData")(tjt=function(t){function e(){var e;return(e=t.call(this)||this)._index=-1,e._row=-1,e._col=-1,e._tiledLayer=null,e}return s(e,t),e}(dg))||tjt),qjt=t("gK",Kh("cc.TiledLayer")(ejt=function(t){s(i,t);var e=i.prototype;function i(){var e;return(e=t.call(this)||this)._userNodeGrid={},e._userNodeMap={},e._userNodeDirty=!1,e.tiledTiles=[],e._viewPort={x:-1,y:-1,width:-1,height:-1},e._cullingRect={leftDown:{row:-1,col:-1},rightTop:{row:-1,col:-1}},e._cullingDirty=!0,e._rightTop={row:-1,col:-1},e._layerInfo=null,e._mapInfo=null,e._topOffset=0,e._downOffset=0,e._leftOffset=0,e._rightOffset=0,e.tiles=[],e.vertices=[],e._verticesDirty=!0,e._layerName="",e._layerSize=void 0,e._minGID=void 0,e._maxGID=void 0,e._layerOrientation=null,e._opacity=void 0,e._tintColor=void 0,e.texGrids=null,e._textures=[],e._tilesets=[],e._leftDownToCenterX=0,e._leftDownToCenterY=0,e._hasTiledNodeGrid=!1,e._hasAniGrid=!1,e._animations=null,e._enableCulling=void 0,e.colorChanged=!1,e._properties=void 0,e.renderOrder=void 0,e._staggerAxis=void 0,e._staggerIndex=void 0,e._hexSideLength=void 0,e._mapTileSize=void 0,e._odd_even=void 0,e._diffX1=void 0,e._diffY1=void 0,e._useAutomaticVertexZ=void 0,e._vertexZvalue=void 0,e._offset=void 0,e._tiledDataArray=[],e._cameraNode=void 0,e._drawInfoList=[],e._tiledDataArrayIdx=0,e}return e.requestDrawInfo=function(t){return this._drawInfoList[t]||(this._drawInfoList[t]=new XF,this._drawInfoList[t].setDrawInfoType(2)),this._drawInfoList[t]},e.hasTiledNode=function(){return this._hasTiledNodeGrid},e.hasAnimation=function(){return this._hasAniGrid},e.addUserNode=function(t){var e=t.getComponent(jjt);return e?(st(7242),!1):(e=t.addComponent(jjt),t.parent=this.node,this._userNodeMap[t.uuid]=e,e._row=-1,e._col=-1,e._tiledLayer=this,this._nodeLocalPosToLayerPos(t.getPosition(),hjt),this._positionToRowCol(hjt.x,hjt.y,cjt),this._addUserNodeToGrid(e,cjt),this._updateCullingOffsetByUserNode(t),t.on("transform-changed",this._userNodePosChange,e),t.on("size-changed",this._userNodeSizeChange,e),!0)},e.removeUserNode=function(t){var e=t.getComponent(jjt);return e?(t.off("transform-changed",this._userNodePosChange,e),t.off("size-changed",this._userNodeSizeChange,e),this._removeUserNodeFromGrid(e),delete this._userNodeMap[t.uuid],t._removeComponent(e),e.destroy(),t.removeFromParent(),!0):(st(7243),!1)},e.destroyUserNode=function(t){this.removeUserNode(t),t.destroy()},e._nodeLocalPosToLayerPos=function(t,e){e.x=t.x+this._leftDownToCenterX,e.y=t.y+this._leftDownToCenterY},e.getNodesByRowCol=function(t,e){var i=this._userNodeGrid[t];return i?i[e]:null},e.getNodesCountByRow=function(t){var e=this._userNodeGrid[t];return e?e.count:0},e._updateAllUserNode=function(){for(var t in this._userNodeGrid={},this._userNodeMap){var e=this._userNodeMap[t];this._nodeLocalPosToLayerPos(e.node.getPosition(),hjt),this._positionToRowCol(hjt.x,hjt.y,cjt),this._addUserNodeToGrid(e,cjt),this._updateCullingOffsetByUserNode(e.node)}},e._updateCullingOffsetByUserNode=function(t){var e=t._getUITransformComp().contentSize;this._topOffsetthis._rightTop.row&&(t.row=this._rightTop.row),i<0&&(t.col=0),i>this._rightTop.col&&(t.col=this._rightTop.col)},e._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,this._markForUpdateRenderData()},e.isUserNodeDirty=function(){return this._userNodeDirty},e.setUserNodeDirty=function(t){this._userNodeDirty=t},e._reinstallCamera=function(){var t=WE.root.batcher2D.getFirstRenderCamera(this.node),e=null==t?void 0:t.node;return this._cameraNode!==e&&(this._uninstallCamera(),e&&(e.on("transform-changed",this.updateCulling,this),e.on("size-changed",this.updateCulling,this),this._cameraNode=e)),t},e._uninstallCamera=function(){this._cameraNode&&(this._cameraNode.off("transform-changed",this.updateCulling,this),this._cameraNode.off("size-changed",this.updateCulling,this),delete this._cameraNode)},e.onEnable=function(){t.prototype.onEnable.call(this),this.node.on("anchor-changed",this._syncAnchorPoint,this),this.node.on("transform-changed",this.updateCulling,this),this.node.on("size-changed",this.updateCulling,this),this.node.parent.on("transform-changed",this.updateCulling,this),this.node.parent.on("size-changed",this.updateCulling,this),this._markForUpdateRenderData(),this.scheduleOnce(this.updateCulling.bind(this))},e.onDisable=function(){var e,i;t.prototype.onDisable.call(this),null==(e=this.node.parent)||e.off("size-changed",this.updateCulling,this),null==(i=this.node.parent)||i.off("transform-changed",this.updateCulling,this),this.node.off("size-changed",this.updateCulling,this),this.node.off("transform-changed",this.updateCulling,this),this.node.off("anchor-changed",this._syncAnchorPoint,this),this._uninstallCamera()},e._syncAnchorPoint=function(){var t=this.node,e=t._getUITransformComp(),i=t.getScale();this._leftDownToCenterX=e.width*e.anchorX*i.x,this._leftDownToCenterY=e.height*e.anchorY*i.y,this._cullingDirty=!0,this._markForUpdateRenderData()},e.getLayerName=function(){return this._layerName},e.setLayerName=function(t){this._layerName=t},e.getProperty=function(t){return this._properties[t]},e.getPositionAt=function(t,e){var i;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 0:return this._positionForOrthoAt(i,e);case 2:return this._positionForIsoAt(i,e);case 1:return this._positionForHexAt(i,e)}return null},e.isInvalidPosition=function(t,e){return t>=this._layerSize.width||e>=this._layerSize.height||t<0||e<0},e._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=(268435455&s)>>>0,o=this.texGrids.get(a).tileset.tileOffset;i=o.x,n=o.y}return new _s(.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)},e._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=(268435455&s)>>>0,o=this.texGrids.get(a).tileset.tileOffset;i=o.x,n=o.y}return new _s(t*this._mapTileSize.width+i,(this._layerSize.height-e-1)*this._mapTileSize.height-n)},e._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=(268435455&this.tiles[a])>>>0;i=this.texGrids.get(o)?this.texGrids.get(o).tileset.tileOffset:{x:0,y:0};var h=0===this._staggerIndex?1:-1,u=0,l=0,c=0,f=0;switch(this._staggerAxis){case 1:c=0,e%2==1&&(c=n/2*h),u=t*n+c+i.x,l=(s-e-1)*(r-(r-this._hexSideLength)/2)-i.y;break;case 0:f=0,t%2==1&&(f=r/2*-h),u=t*(n-(n-this._hexSideLength)/2)+i.x,l=(s-e-1)*r+f-i.y}return new _s(u,l)},e.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=t.length)return;this._updateTileForGID(t[r],o,a),r++}}},e.setTileGIDAt=function(t,e,i,n){var r=(268435455&t)>>>0;if(e=Math.floor(e),i=Math.floor(i),this.isInvalidPosition(e,i))throw new Error("cc.TiledLayer.setTileGIDAt(): invalid position");this.tiles&&this._tilesets&&0!==this._tilesets.length?0!==r&&r>>0,e,i)):et(7238)},e._updateTileForGID=function(t,e,i){var n=0|e+i*this._layerSize.width;if(!(n>=this.tiles.length)&&t!==this.tiles[n]){var r=(268435455&t)>>>0;this.texGrids.get(r)?(this.tiles[n]=t,this._updateVertex(e,i)):this.tiles[n]=0,this._cullingDirty=!0}},e.getTileGIDAt=function(t,e){if(this.isInvalidPosition(t,e))throw new Error("cc.TiledLayer.getTileGIDAt(): invalid position");if(!this.tiles)return et(7237),null;var i=Math.floor(t)+Math.floor(e)*this._layerSize.width;return(268435455&this.tiles[i])>>>0},e.getTileFlagsAt=function(t,e){if(this.isInvalidPosition(t,e))throw new Error("TiledLayer.getTileFlagsAt: invalid position");if(!this.tiles)return et(7240),null;var i=Math.floor(t)+Math.floor(e)*this._layerSize.width;return(4026531840&this.tiles[i])>>>0},e.setCullingDirty=function(t){this._cullingDirty=t},e.isCullingDirty=function(){return this._cullingDirty},e.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;2===this._layerOrientation&&(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,h=a-this._downOffset,u=s+i+this._rightOffset,l=a+n+this._topOffset,c=this._cullingRect.leftDown,f=this._cullingRect.rightTop;o<0&&(o=0),h<0&&(h=0),this._positionToRowCol(o,h,cjt),cjt.row-=r,cjt.col-=r,cjt.row=cjt.row>0?cjt.row:0,cjt.col=cjt.col>0?cjt.col:0,cjt.row===c.row&&cjt.col===c.col||(c.row=cjt.row,c.col=cjt.col,this._cullingDirty=!0),u<0||l<0?(cjt.row=-1,cjt.col=-1):(this._positionToRowCol(u,l,cjt),cjt.row++,cjt.col++),cjt.row===f.row&&cjt.col===f.col||(f.row=cjt.row,f.col=cjt.col,this._cullingDirty=!0),this._cullingDirty&&this._markForUpdateRenderData()}},e._positionToRowCol=function(t,e,i){var n=this._mapTileSize.width,r=this._mapTileSize.height,s=.5*n,a=.5*r,o=0,h=0,u=0,l=0,c=this._staggerAxis;switch(this._layerOrientation){case 0:h=Math.floor(t/n),o=Math.floor(e/r);break;case 2:h=Math.floor(t/s),o=Math.floor(e/a);break;case 1:1===c?(u=(o=Math.floor(e/(r-this._diffY1)))%2==1?s*this._odd_even:0,h=Math.floor((t-u)/n)):(l=(h=Math.floor(t/(n-this._diffX1)))%2==1?a*-this._odd_even:0,o=Math.floor((e-l)/r))}return i.row=o,i.col=h,i},e.updateCulling=function(){if(this._enableCulling){this.node.updateWorldTransform(),Kr.invert(ojt,this.node.getWorldMatrix());var t=this._reinstallCamera();t&&(ujt.x=0,ujt.y=0,ujt.z=0,ljt.x=t.width,ljt.y=t.height,ljt.z=0,t.screenToWorld(ujt,ujt),t.screenToWorld(ljt,ljt),er.transformMat4(ujt,ujt,ojt),er.transformMat4(ljt,ljt,ojt),this.updateViewPort(ujt.x,ujt.y,ljt.x-ujt.x,ljt.y-ujt.y))}},e.getLayerOrientation=function(){return this._layerOrientation},e.getProperties=function(){return this._properties},e._updateVertex=function(t,e){var i=this.vertices,n=this._layerOrientation,r=this.tiles;if(r){var s,a,o,h,u=this._rightTop,l=this._mapTileSize.width,c=this._mapTileSize.height,f=.5*l,_=.5*c,d=this._layerSize.height,p=this._layerSize.width,m=this.texGrids,g=0,y=0;1===n&&(s=this._staggerAxis,a=this._diffX1,o=this._diffY1,h=this._odd_even);var v,b,S,x=0,w=0,T=0,A=0,C=e*p+t;v=(268435455&r[C])>>>0;var D=m.get(v);if(D){switch(this._animations.get(v)&&(this._hasAniGrid=this._hasAniGrid||!0),n){case 0:g=(x=t)*l,y=(w=d-e-1)*c;break;case 2:g=f*(x=d+t-e-1),y=_*(w=d+p-t-e-2);break;case 1:g=t*(l-a)+(1===s&&e%2==1?f*h:0),y=(d-e-1)*(c-o)+(0===s&&t%2==1?_*-h:0),x=t,w=d-e-1}var B=i[w]=i[w]||{minCol:0,maxCol:0},I=B[x]=B[x]||{left:0,bottom:0,index:0};B.minCol>x&&(B.minCol=x),B.maxCol=0&&this._textures.length>t?this._textures[t]:null},e.getTextures=function(){return this._textures},e.setTexture=function(t){this.setTextures([t])},e.setTextures=function(t){this._textures=t,this._markForUpdateRenderData()},e.getLayerSize=function(){return this._layerSize},e.getMapTileSize=function(){return this._mapTileSize},e.getTileSet=function(t){return t=t||0,this._tilesets&&t>=0&&this._tilesets.length>t?this._tilesets[t]:null},e.getTileSets=function(){return this._tilesets},e.setTileSet=function(t){this.setTileSets([t])},e.setTileSets=function(t){this._tilesets=t;var e=this._textures=[],i=this.texGrids;i.clear();for(var n=0;n0&&t[t.length-1].subNodes&&0===t[t.length-1].subNodes.length;)t.pop();if(t.length>0){var e=t[t.length-1];if(e.renderData&&0===e.renderData.vertexCount)return e}var i={renderData:null,texture:null};return this._tiledDataArray.push(i),i},e.requestSubNodesData=function(){var t=this._tiledDataArray;if(t.length>0){var e=t[t.length-1];if(fjt(e)&&0===e.subNodes.length)return e}var i={subNodes:[]};return this._tiledDataArray.push(i),i},e.destroyRenderData=function(){this._tiledDataArray.forEach((function(t){var e=t.renderData;e&&JF.remove(e)})),this._tiledDataArray.length=0,t.prototype.destroyRenderData.call(this)},e._flushAssembler=function(){var t=i.Assembler.getAssembler(this);this._assembler!==t&&(this._assembler=t,this._assembler.createData(this)),0===this._tiledDataArray.length&&(this._markForUpdateRenderData(),this._updateColor())},e._render=function(t){for(var e=0;e>>0,I=i.get(B);if(!I)continue;var M=I.tileset,P="img"+g.id;d[P]=!0;var E=this.node.getChildByName(P);g.width=g.width||I.width,g.height=g.height||I.height,E&&1024&E._objFlags&&(E.removeFromParent(),E.hideFlags|=8,E.destroy(),E=null),E||(E=new Qv),this._animations.get(B)&&(this.aniObjects.push({object:g,imgNode:E,gridGID:B}),this._hasAniObj=!0);var O=M.tileOffset.x,k=M.tileOffset.y;E.active=g.visible,E.setRotationFromEuler(0,0,-g.rotation),E.setPosition(g.x-c,g.y-f),E.name=P,E.parent=this.node,E.setSiblingIndex(p),E.layer=this.node.layer;var R=E.getComponent(NN);R||(R=E.addComponent(NN));var F=E._getUITransformComp();h?(F.anchorX=.5+O/g.width,F.anchorY=k/g.height):(F.anchorX=O/g.width,F.anchorY=k/g.height),this._tintColor?(o.set(this._tintColor),o.a*=this._opacity/255,R.color.set(o)):R.color.a*=this._opacity/255,R.sizeMode=0;var L=this._premultiplyAlpha?1:2;R.srcBlendFactor!==L&&(R.srcBlendFactor=L,R.material&&R._updateBlendFunc());var N=I.spriteFrame;N=N?N.clone():new $k,(2147483648&D)>>>0&&(N.flipUVX=!N.flipUVX),(1073741824&D)>>>0&&(N.flipUVY=!N.flipUVY),N.rotated=I._rotated,N.rect=I._rect,R.spriteFrame=N,F.setContentSize(g.width,g.height),R._markForUpdateRenderData()}}this._objects=_;for(var V=this.node.children,z=/^(?:img|text)\d+$/,U=0,G=V.length;U0&&(m[d[g]]=p[g].text);var y=new ijt(i.tmxXmlStr,m,a,o,c),v=y.getTilesets();v&&0!==v.length||et(7241),this._buildWithMapInfo(y)}else this._releaseMapInfo()},i._releaseMapInfo=function(){for(var t=this._layers,e=0,i=t.length;e0)for(var x=0,w=y.length;x=o.length&&(a.frameIdx=0),h=o[a.frameIdx]),n.set(s,h.grid)}for(var u=this.getLayers(),l=0,c=u.length;l>>0&&(i=sqt,sqt=aqt,aqt=i),(2147483648&e)>>>0&&(i=rqt,rqt=aqt,aqt=i,i=sqt,sqt=oqt,oqt=i),(1073741824&e)>>>0&&(i=rqt,rqt=sqt,sqt=i,i=aqt,aqt=oqt,oqt=i)}function gqt(){if(!(cqt<1)&&fqt){var t=4*cqt,e=6*cqt,i=$jt.requestTiledRenderData();i.renderData=JF.add(AF),i.texture=fqt;var n=i.renderData;n.resize(t,e),n.chunk.vb.set(Zjt.subarray(0,9*t),0),cqt=0,fqt=null}}function yqt(t,e,i,n,r){if(!(e.row<0||e.col<0)){$jt=r;var s=r.node.worldMatrix;hqt=0;var a,o,h,u,l,c,f,_,d,p=r.tiledTiles,m=r.texGrids,g=r.tiles,y=18,v=27,b=r.vertices,S=0,x=0,w=0,T=0,A=0,C=0,D=!0;tqt=mqt;var B=new Float32Array(4);B[0]=r.color.r/255,B[1]=r.color.g/255,B[2]=r.color.b/255,B[3]=r.color.a/255,-1===i?(u=e.row,l=t.row):(u=t.row,l=e.row);var I=Math.abs(t.row-e.row)+1,M=Math.abs(e.col-t.col)+1;Zjt=new Float32Array(I*M*36),cqt=0;for(var P=Zjt;(l-u)*i>=0;u+=i)for(a=b[u],C=r.getNodesCountByRow(u),D=a&&0===C,1===n?(o=D&&t.cola.maxCol?a.maxCol:e.col):(o=D&&e.col>a.maxCol?a.maxCol:e.col,h=D&&t.col=0;o+=n){if(c=a&&a[o],C>0){gqt();var E=r.requestSubNodesData(),O=r.getNodesByRowCol(u,o);O&&O.count>0&&(E.subNodes=O.list)}c&&(S=g[c.index],(_=m.get((268435455&S)>>>0))&&(fqt!==_.texture&&(gqt(),fqt=_.texture),f=_.tileset._tileSize,x=c.left-uqt,w=c.bottom-lqt,T=x+f.width,A=w+f.height,d=p[c.index],hqt=36*cqt,d?d.node.active&&vqt(d.node,B,P,x,T,A,w):(Jjt[0].x=x,Jjt[0].y=A,Jjt[1].x=x,Jjt[1].y=w,Jjt[2].x=T,Jjt[2].y=A,Jjt[3].x=T,Jjt[3].y=w,Jjt[0].transformMat4(s),P[hqt]=Jjt[0].x,P[hqt+1]=Jjt[0].y,P[hqt+2]=Jjt[0].z,Jjt[1].transformMat4(s),P[hqt+9]=Jjt[1].x,P[hqt+9+1]=Jjt[1].y,P[hqt+9+2]=Jjt[1].z,Jjt[2].transformMat4(s),P[hqt+y]=Jjt[2].x,P[hqt+y+1]=Jjt[2].y,P[hqt+y+2]=Jjt[2].z,Jjt[3].transformMat4(s),P[hqt+v]=Jjt[3].x,P[hqt+v+1]=Jjt[3].y,P[hqt+v+2]=Jjt[3].z,P.set(B,hqt+5),P.set(B,hqt+9+5),P.set(B,hqt+y+5),P.set(B,hqt+v+5)),tqt(_,S),P[hqt+3]=rqt.x,P[hqt+4]=rqt.y,P[hqt+9+3]=sqt.x,P[hqt+9+4]=sqt.y,P[hqt+y+3]=aqt.x,P[hqt+y+4]=aqt.y,P[hqt+v+3]=oqt.x,P[hqt+v+4]=oqt.y,++cqt>=Kjt&&gqt()))}gqt()}}function vqt(t,e,i,n,r,s,a){t.updateWorldTransform(),Kr.fromRTS(eqt,t.rotation,t.position,t.scale),er.set(iqt,-(n+uqt),-(a+lqt),0),Kr.transform(eqt,eqt,iqt),Kr.multiply(eqt,t.parent.worldMatrix,eqt);var o=eqt,h=o.m12,u=o.m13,l=o.m00,c=o.m01,f=o.m04,_=o.m05;1===l&&0===c&&0===f&&1===_?(i[hqt]=n+h,i[hqt+1]=s+u,i[hqt+9]=n+h,i[hqt+9+1]=a+u,i[hqt+18]=r+h,i[hqt+18+1]=s+u,i[hqt+27]=r+h,i[hqt+27+1]=a+u):(i[hqt]=n*l+s*f+h,i[hqt+1]=n*c+s*_+u,i[hqt+9]=n*l+a*f+h,i[hqt+9+1]=n*c+a*_+u,i[hqt+18]=r*l+s*f+h,i[hqt+18+1]=r*c+s*_+u,i[hqt+27]=r*l+a*f+h,i[hqt+27+1]=r*c+a*_+u),i.set(e,hqt+5),i.set(e,hqt+9+5),i.set(e,hqt+18+5),i.set(e,hqt+27+5)}var bqt=t("gN",{getAssembler:function(){return pqt}});qjt.Assembler=bqt;var Sqt=new er,xqt=new er;function wqt(t,e){var i=null;return{value:e.length>0?e[e.length-1]:er.ZERO,progress:function(t,e,n,r){return i.getPoint(r)},clone:function(t){return er.clone(t)},add:function(t,e){return t.clone().add(e)},sub:function(t,e){return t.clone().subtract(e)},onStart:function(n){var r=n.start,s=n.end,a=n.relative,o=n.reversed;(i=bf.create(t)).addKnot(r);var h=null;a&&o&&(h=xqt,er.subtract(h,r,e[e.length-1]));for(var u=0,l=e.length;u0&&i.addKnot(er.copy(Sqt,h).add(c)):i.addKnot(er.copy(Sqt,r).add(c)):i.addKnot(c)}a&&o&&i.addKnot(s)},onComplete:function(){i=null},onStop:function(){i=null},legacyProgress:!1}}var Tqt=Object.freeze({__proto__:null,bezier:function(){for(var t=arguments.length,e=new Array(t),i=0;i=n&&i.actionIndex--;break}}},e._removeActionByTag=function(t,e,i){for(var n=0,r=e.actions.length;n=0;--n){var r=e.actions[n];if(r&&r.getTag()===t){if(i&&r.getOriginalTarget()!==i)continue;this._removeActionAtIndex(n,e)}}},e.removeActionByTag=function(t,e){var i=this;-1===t&&et(1002);var n=this._hashTargets;if(e){var r=n.get(e);r&&this._removeActionByTag(t,r,e)}else n.forEach((function(e){i._removeActionByTag(t,e)}))},e.removeAllActionsByTag=function(t,e){var i=this;-1===t&&et(1002);var n=this._hashTargets;if(e){var r=n.get(e);r&&this._removeAllActionsByTag(t,r,e)}else n.forEach((function(e){i._removeAllActionsByTag(t,e)}))},e.getActionByTag=function(t,e){-1===t&&et(1004);var i=this._hashTargets.get(e);if(i){if(null!=i.actions)for(var n=0;n=t&&e.actionIndex--,0===e.actions.length&&(e.target instanceof Qv&&this._unregisterNodeEvent(e.target),this._deleteHashElement(e))},e._deleteHashElement=function(t){var e=!1;if(t&&!t.lock&&this._hashTargets.get(t.target)){this._hashTargets.delete(t.target);for(var i=this._arrayTargets,n=0,r=i.length;n"},e}(Iqt),Pqt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.update=function(){var t=this._getWorkerTarget();if(t)for(var e=t.getComponentsInChildren(xL),i=0;i"},e}(Iqt);!function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;i.update=function(){var t=this._getWorkerTarget();if(t)for(var e=t.getComponentsInChildren(xL),i=0;i"}}(Iqt);var Eqt=function(t){function e(e){var i;return(i=t.call(this)||this)._isNeedCleanUp=!0,void 0!==e&&i.init(e),i}s(e,t);var i=e.prototype;return i.update=function(){var t=this._getWorkerTarget();t&&(t.removeFromParent(),this._isNeedCleanUp&&t.destroy())},i.init=function(t){return this._isNeedCleanUp=t,!0},i.reverse=function(){return new e(this._isNeedCleanUp)},i.clone=function(){var t=new e(this._isNeedCleanUp);return t._id=this._id,t},i.toString=function(){return""},e}(Iqt);function Oqt(t){return new Eqt(t)}var kqt=function(t){function e(e,i,n){var r;return(r=t.call(this)||this)._callbackThis=void 0,r._callback=void 0,r._data=void 0,r.initWithFunction(e,i,n),r}s(e,t);var i=e.prototype;return i.initWithFunction=function(t,e,i){return t&&(this._callback=t),e&&(this._callbackThis=e),void 0!==i&&(this._data=i),!0},i.execute=function(){if(this._callback){var t=this._getWorkerTarget();this._callback.call(this._callbackThis,t,this._data)}},i.update=function(){this.execute()},i.getTargetCallback=function(){return this._callbackThis},i.setTargetCallback=function(t){t!==this._callbackThis&&(this._callbackThis=t)},i.clone=function(){var t=new e;return t._id=this._id,this._callback&&t.initWithFunction(this._callback,this._callbackThis,this._data),t},i.toString=function(){return""},e}(Iqt);function Rqt(t,e,i){return new kqt(t,e,i)}var Fqt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.clone=function(){return new e},i.reverse=function(){return this.clone()},i.update=function(){},i.step=function(){},i.isUnknownDuration=function(){return!1},i.toString=function(){return"DummyAction"},e}(Bqt),Lqt=function(t){function e(e){var i;return(i=t.call(this)||this).MAX_VALUE=2,i._elapsed=0,i._startTime=0,i._firstTick=!1,i._speed=1,void 0===e||Number.isNaN(e)||i.initWithDuration(e),i}s(e,t);var i=e.prototype;return i.setStartTime=function(t){t=t<0?0:t>this._duration?this._duration:t,this._startTime=t},i.getElapsed=function(){return this._elapsed},i.initWithDuration=function(t){return this._duration=0===t?ze.FLT_EPSILON:t,this._elapsed=0,this._firstTick=!0,!0},i.isDone=function(){return this._elapsed>=this._duration&&!this.isUnknownDuration()},i._cloneDecoration=function(t){t._speed=this._speed},i.step=function(t){if(!this._paused&&0!==this._speed){t*=this._speed,this._firstTick?this._elapsed=this._startTime:this._elapsed+=t;var e=this._elapsed/(this._duration>1.192092896e-7?this._duration:1.192092896e-7);e=e<1?e:1,this.update(e>0?e:0),this.isUnknownDuration()&&!this._firstTick&&(e<1?this._elapsed-=t:this._elapsed=this._startTime+this._duration),this._firstTick&&(this._firstTick=!1,this._startTime>0&&(this._startTime=0))}},i.startWithTarget=function(e){t.prototype.startWithTarget.call(this,e),this._elapsed=0,this._firstTick=!0},i.getSpeed=function(){return this._speed},i.setSpeed=function(t){this._speed=t},i.getDurationScaled=function(){return this._duration/this._speed},e}(Bqt);function Nqt(t,e){var i=new Vqt;return i.initWithTwoActions(t,e),i}var Vqt=function(t){function e(e){var i;if((i=t.call(this)||this)._actions=[],i._split=0,i._last=0,i._reversed=!1,!e||0===e.length)return f(i);1===e.length&&e.push(new Fqt);var n=e.length-1;if(n>=0&&null==e[n]&&et(1015),n>=0){for(var r=e[0],s=1;s1?i%1:i),this._last=n)}},i.reverse=function(){var t=Nqt(this._actions[1].reverse(),this._actions[0].reverse());return this._cloneDecoration(t),t._reversed=!0,t},i.updateOwner=function(t){if(!(this._actions.length<2)){var i=this._actions[0],n=this._actions[1];n._owner||(n._owner=t),i instanceof e||i instanceof qqt?i.updateOwner(t):i._owner||(i._owner=t)}},i.findAction=function(t){for(var i=0,n=this._actions.length;i"},e}(Lqt);function zqt(t){return new Vqt(t)}var Uqt=function(t){function e(e,i){var n;return(n=t.call(this)||this)._times=0,n._total=0,n._nextDt=0,n._actionInstant=!1,n._innerAction=null,n.initWithAction(e,i),n}s(e,t);var i=e.prototype;return i.initWithAction=function(t,e){if(!t||void 0===e)return!1;var i=t.getDurationScaled()*e;return!!this.initWithDuration(i)&&(this._times=e,this._innerAction=t,t instanceof Iqt&&(this._actionInstant=!0,this._times-=1),this._total=0,!0)},i.clone=function(){var t=new e;return t._id=this._id,t._speed=this._speed,this._cloneDecoration(t),this._innerAction&&t.initWithAction(this._innerAction.clone(),this._times),t},i.startWithTarget=function(e){this._total=0,this._nextDt=(this._innerAction?this._innerAction.getDurationScaled():0)/this._duration,t.prototype.startWithTarget.call(this,e),this._innerAction&&this._innerAction.startWithTarget(e)},i.stop=function(){this._innerAction&&this._innerAction.stop(),t.prototype.stop.call(this)},i.update=function(t){var e=this._innerAction,i=this._duration,n=this._times,r=this._nextDt;if(e)if(t>=r){for(;t>r&&this._total1?1:r}if(t>=1&&this._total"},e}(Lqt);function Gqt(t,e){return new Uqt(t,e)}var Hqt=function(t){function e(e){var i;return(i=t.call(this)||this)._innerAction=null,e&&i.initWithAction(e),i}s(e,t);var i=e.prototype;return i.initWithAction=function(t){return t?(this._innerAction=t,this._duration=1/0,!0):(ot(1026),!1)},i.clone=function(){var t=new e;return t._id=this._id,t._speed=this._speed,this._cloneDecoration(t),this._innerAction&&t.initWithAction(this._innerAction.clone()),t},i.startWithTarget=function(e){t.prototype.startWithTarget.call(this,e),this._innerAction&&this._innerAction.startWithTarget(e)},i.stop=function(){this._innerAction&&this._innerAction.stop(),t.prototype.stop.call(this)},i.step=function(t){if(!this._paused&&0!==this._speed){var e=this._innerAction;e&&(t*=this._speed,e.step(t),e.isDone()&&(e.startWithTarget(this.target),e.step(e.getElapsed()-e.getDurationScaled())))}},i.update=function(){et(1007)},i.isDone=function(){return!1},i.reverse=function(){if(this._innerAction){var t=new e(this._innerAction.reverse());return this._cloneDecoration(t),t}return this},i.setInnerAction=function(t){this._innerAction!==t&&(this._innerAction=t)},i.getInnerAction=function(){return this._innerAction},i.isUnknownDuration=function(){return!!this._innerAction&&this._innerAction.isUnknownDuration()},i.toString=function(){return""},e}(Lqt);function Wqt(t){return new Hqt(t)}function jqt(t,e){var i=new qqt;return i.initWithTwoActions(t,e),i}var qqt=function(t){function e(e){var i;if((i=t.call(this)||this)._one=null,i._two=null,i._finished=!1,!e||0===e.length)return f(i);1===e.length&&e.push(new Fqt);var n=e.length-1;if(n>=0&&null==e[n]&&et(1015),n>=0){for(var r=e[0],s=1;sr?this._two=Nqt(e,Yqt(n-r)):n"},e}(Lqt),Xqt=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.update=function(){},i.reverse=function(){var t=new e(this._duration);return this._cloneDecoration(t),t},i.clone=function(){var t=new e;return t._id=this._id,t._speed=this._speed,this._cloneDecoration(t),t.initWithDuration(this._duration),t},i.isUnknownDuration=function(){return!1},i.toString=function(){return""},e}(Lqt);function Yqt(t){return new Xqt(t)}var Kqt=function(t){function e(e){var i;return(i=t.call(this)||this)._other=null,e&&i.initWithAction(e),i}s(e,t);var i=e.prototype;return i.initWithAction=function(e){return e?e===this._other?(ot(1029),!1):!!t.prototype.initWithDuration.call(this,e.getDurationScaled())&&(this._other=e,!0):(ot(1028),!1)},i.clone=function(){var t=new e;return t._id=this._id,t._speed=this._speed,this._cloneDecoration(t),this._other&&t.initWithAction(this._other.clone()),t},i.startWithTarget=function(e){t.prototype.startWithTarget.call(this,e),this._other&&this._other.startWithTarget(e)},i.update=function(t){this._other&&this._other.update(1-t)},i.reverse=function(){return this._other?this._other.clone():this},i.stop=function(){this._other&&this._other.stop(),t.prototype.stop.call(this)},i.isUnknownDuration=function(){return!1},i.toString=function(){return""},e}(Lqt);function Jqt(t){return new Kqt(t)}var Qqt=function(t){function e(e,i,n){var r;return(r=t.call(this,e)||this)._cb=i,r._args=n,r}s(e,t);var i=e.prototype;return i.clone=function(){return new e(this._duration,this._cb,this._args)},i.update=function(t){this._cb.apply(this,[this.target,t].concat(this._args))},i.reverse=function(){return this.clone()},i.isUnknownDuration=function(){return!1},i.toString=function(){return""},e}(Lqt),Zqt=function(t){function e(e,i){var n;return(n=t.call(this)||this)._finished=!1,n._cb=e,n._args=i,n}s(e,t);var i=e.prototype;return i.clone=function(){return new e(this._cb,this._args)},i.reverse=function(){return this.clone()},i.step=function(){throw new Error("should never go here")},i.update=function(){var t=T.game.deltaTime;this._finished=this._cb.apply(this,[this.target,t].concat(this._args))},i.isDone=function(){return this._finished},i.isUnknownDuration=function(){return!this.isDone()},i.toString=function(){return""},e}(Bqt);function $qt(t){var e=t.charAt(0);if(/[A-Z]/.test(e)){var i=(t=t.replace(e,e.toLowerCase())).split("-");if(2===i.length){var n=i[0];if("linear"===n)t="linear";else{var r=i[1];switch(n){case"quadratic":t="quad"+r;break;case"quartic":t="quart"+r;break;case"quintic":t="quint"+r;break;case"sinusoidal":t="sine"+r;break;case"exponential":t="expo"+r;break;case"circular":t="circ"+r;break;default:t=n+r}}}}return t}function tXt(t){var e=" [Tween:] ",i=" option is not support in v + "+C,n=t;n.delay&&X(e+"delay"+i),n.repeat&&X(e+"repeat"+i),n.repeatDelay&&X(e+"repeatDelay"+i),n.interpolation&&X(e+"interpolation"+i),n.onStop&&X(e+"onStop"+i)}var eXt=t("gQ",function(t){function e(e,i,n){var r;if((r=t.call(this)||this)._reversed=!1,null==n)n=Object.create(null);else if(tXt(n),n.easing&&"string"==typeof n.easing&&(n.easing=$qt(n.easing)),n.progress||(n.progress=r.progress),n.easing&&"string"==typeof n.easing){var s=n.easing;n.easing=Gl[s],n.easing||st(1031,s)}for(var a in r._opts=n,r._props=Object.create(null),i){var o;if(i.hasOwnProperty(a)){var h=i[a];if("function"==typeof h)h=h();else if(null==h)continue;var u=void 0,l=void 0,c=void 0;void 0!==h.value?("function"==typeof(c=h.value)&&(c=c()),void 0!==h.easing&&("string"==typeof h.easing?(u=Gl[h.easing])||st(1031,h.easing):u=h.easing),void 0!==h.progress&&(l=h.progress)):c=h;var f=Object.create(null);f.start=f.current=f.end=null,f.keys=null,f.value=c,f.easing=u,f.progress=l,f.convert=h.convert,f.clone=h.clone,f.add=h.add,f.sub=h.sub,f.legacyProgress=null===(o=h.legacyProgress)||void 0===o||o,f.toFixed=h.toFixed,f.onStart=h.onStart,f.onStop=h.onStop,f.onComplete=h.onComplete,f.valid=!0,r._props[a]=f}}return r._originProps=i,r.initWithDuration(e),r}s(e,t);var i=e.prototype;return i.clone=function(){var t=new e(this._duration,this._originProps,this._opts);return t._reversed=this._reversed,t._owner=this._owner,t._id=this._id,this._cloneDecoration(t),t},i.reverse=function(){if(!this._opts.relative)return st(16382),new e(0,{});var t=new e(this._duration,this._originProps,this._opts);return this._cloneDecoration(t),t._reversed=!this._reversed,t._owner=this._owner,t},i.startWithTarget=function(e){t.prototype.startWithTarget.call(this,e);var i=this._getWorkerTarget();if(i){var n=!!this._opts.relative,r=this._props,s=this._reversed,a=function(){var t=i[o];if(void 0===t)return 0;var e=r[o],a=e.value;if("number"==typeof t)e.start=t,e.current=t,e.end=n?s?t-a:t+a:a;else if("object"==typeof t)if(e.legacyProgress){if(null==e.start){var h=t.constructor;e.start=new h,e.current=new h,e.end=new h}var u;u=a.getModifiableProperties?a.getModifiableProperties():Object.keys(a),e.keys=u;for(var l=0,c=u.length;l0&&this._actions[this._actions.length-1].setId(t),this})),e.then=function(t){var e=t._union(!0);return e&&(e.setSpeed(t._timeScale),this._actions.push(e)),this},e.reverse=function(e,i){if(null==e&&null==i)return this.reverseTween();var n,r;if(e instanceof t?(n=e,void 0!==i&&(r=i)):"number"==typeof e&&(n=this,r=e),n){var s=t.reverseAction(n,r);s&&this._actions.push(s)}return this},e.reverseTween=function(){if(0===this._actions.length)return st(16388),this.clone(this._target);var t=this._union(!1),e=EXt(this._target);return e._timeScale=this._timeScale,t&&e.insertAction(t.reverse()),e},t.reverseAction=function(t,e){var i=t._actions;if(0===i.length)return null;var n=null,r=null;return"number"==typeof e?n=t.findAction(e,i):t&&(n=t._union(!1)),n?(r=n.reverse())._owner=t:st(16391,""+e),r},e.findAction=function(t,e){for(var i=null,n=0,r=e.length;n1){var s=n.splice(r);1===s.length?n.push(s[0]):n.push(zqt(s))}return this},e.to=function(t,e,i){var n=i||Object.create(null);n.relative=!1;var r=new eXt(t,e,n);return this._actions.push(r),this},e.by=function(t,e,i){var n=i||Object.create(null);n.relative=!0;var r=new eXt(t,e,n);return this._actions.push(r),this},e.update=function(t,e){for(var i=arguments.length,n=new Array(i>2?i-2:0),r=2;r1?e-1:0),n=1;n0&&(i=this._time/this._duration),i>=1&&(i=1),1===this._transition){var n=e._uiProps.uiComp;lr.lerp(kXt,this._fromColor,this._toColor,i),n&&(n.color=kXt)}else 3===this.transition&&(e.getScale(this._targetScale),this._targetScale.x=tn(this._fromScale.x,this._toScale.x,i),this._targetScale.y=tn(this._fromScale.y,this._toScale.y,i),e.setScale(this._targetScale));1===i&&(this._transitionFinished=!0)}},i._resizeNodeToTargetNode=function(){this.target&&this.target._getUITransformComp()},i._resetState=function(){this._pressed=!1,this._hovered=!1;var t=this.target;if(t){var e=this._transition;if(1===e&&this._interactable){var i=t.getComponent(TL);i&&(i.color=this._normalColor)}else 3===e&&this._originalScale&&t.setScale(this._originalScale);this._transitionFinished=!0}},i._registerNodeEvent=function(){var t=this,e=t.node;e.on("touch-start",t._onTouchBegan,t),e.on("touch-move",t._onTouchMove,t),e.on("touch-end",t._onTouchEnded,t),e.on("touch-cancel",t._onTouchCancel,t),e.on("mouse-enter",t._onMouseMoveIn,t),e.on("mouse-leave",t._onMouseMoveOut,t),e.on("xrui-hover-entered",t._xrHoverEnter,t),e.on("xrui-hover-exited",t._xrHoverExit,t),e.on("xrui-click",t._xrClick,t),e.on("xrui-unclick",t._xrUnClick,t)},i._registerTargetEvent=function(t){t.on("transform-changed",this._onTargetTransformChanged,this)},i._unregisterNodeEvent=function(){var t=this,e=t.node;e.off("touch-start",t._onTouchBegan,t),e.off("touch-move",t._onTouchMove,t),e.off("touch-end",t._onTouchEnded,t),e.off("touch-cancel",t._onTouchCancel,t),e.off("mouse-enter",t._onMouseMoveIn,t),e.off("mouse-leave",t._onMouseMoveOut,t),e.off("xrui-hover-entered",t._xrHoverEnter,t),e.off("xrui-hover-exited",t._xrHoverExit,t),e.off("xrui-click",t._xrClick,t),e.off("xrui-unclick",t._xrUnClick,t)},i._unregisterTargetEvent=function(t){t.off("transform-changed")},i._getTargetSprite=function(t){var e=null;return t&&(e=t.getComponent(NN)),e},i._applyTarget=function(){this.target&&(this._sprite=this._getTargetSprite(this.target),this._originalScale||(this._originalScale=new er),er.copy(this._originalScale,this.target.scale),this._registerTargetEvent(this.target))},i._onTargetSpriteFrameChanged=function(t){2===this._transition&&this._setCurrentStateSpriteFrame(t.spriteFrame)},i._setCurrentStateSpriteFrame=function(t){if(t)switch(this._getButtonState()){case 0:this._normalSprite=t;break;case 1:this._hoverSprite=t;break;case 2:this._pressedSprite=t;break;case 3:this._disabledSprite=t}},i._onTargetColorChanged=function(t){1===this._transition&&this._setCurrentStateColor(t)},i._setCurrentStateColor=function(t){switch(this._getButtonState()){case 0:this._normalColor=t;break;case 1:this._hoverColor=t;break;case 2:this._pressedColor=t;break;case 3:this._disabledColor=t}},i._onTargetTransformChanged=function(t){4&t&&this._originalScale&&3===this._transition&&this._transitionFinished&&er.copy(this._originalScale,this.target.scale)},i._onTouchBegan=function(t){this._interactable&&this.enabledInHierarchy&&(this._pressed=!0,this._updateState(),t&&(t.propagationStopped=!0))},i._onTouchMove=function(t){if(this._interactable&&this.enabledInHierarchy&&this._pressed&&t){var e=t.touch;if(e){var i,n=this.node._getUITransformComp().hitTest(e.getLocation(),t.windowId);3===this._transition&&this.target&&this._originalScale?n?(er.copy(this._fromScale,this._originalScale),er.multiplyScalar(this._toScale,this._originalScale,this._zoomScale),this._transitionFinished=!1):(this._time=0,this._transitionFinished=!0,this.target.setScale(this._originalScale)):(i=n?2:0,this._applyTransition(i)),t&&(t.propagationStopped=!0)}}},i._onTouchEnded=function(t){this._interactable&&this.enabledInHierarchy&&(this._pressed&&(fg.emitEvents(this.clickEvents,t),this.node.emit("click",this)),this._pressed=!1,this._updateState(),t&&(t.propagationStopped=!0))},i._onTouchCancel=function(){this._interactable&&this.enabledInHierarchy&&(this._pressed=!1,this._updateState())},i._onMouseMoveIn=function(){!this._pressed&&this.interactable&&this.enabledInHierarchy&&(2!==this._transition||this._hoverSprite)&&(this._hovered||(this._hovered=!0,this._updateState()))},i._onMouseMoveOut=function(){this._hovered&&(this._hovered=!1,this._updateState())},i._updateState=function(){var t=this._getButtonState();this._applyTransition(t)},i._getButtonState=function(){var t=0;return this._interactable?this._pressed?t=2:this._hovered&&(t=1):t=3,t},i._updateColorTransition=function(t){var e,i=this._getColorByState(t),n=null==(e=this.target)?void 0:e.getComponent(TL);n&&(3===t?(n.color=i,this._transitionFinished=!0):(this._fromColor=n.color.clone(),this._toColor=i,this._time=0,this._transitionFinished=!1))},i._updateSpriteTransition=function(t){var e=this._getSpriteFrameByState(t);this._sprite&&e&&(this._sprite.spriteFrame=e)},i._updateScaleTransition=function(t){this._interactable&&(2===t?this._zoomUp():this._zoomBack())},i._zoomUp=function(){this._originalScale&&(er.copy(this._fromScale,this._originalScale),er.multiplyScalar(this._toScale,this._originalScale,this._zoomScale),this._time=0,this._transitionFinished=!1)},i._zoomBack=function(){this.target&&this._originalScale&&(er.copy(this._fromScale,this.target.scale),er.copy(this._toScale,this._originalScale),this._time=0,this._transitionFinished=!1)},i._applyTransition=function(t){var e=this._transition;1===e?this._updateColorTransition(t):2===e?this._updateSpriteTransition(t):3===e&&this._updateScaleTransition(t)},i._getSpriteFrameByState=function(t){switch(t){case 0:return this._normalSprite;case 3:return this._disabledSprite;case 1:return this.hoverSprite;case 2:return this._pressedSprite;default:return null}},i._getColorByState=function(t){switch(t){case 0:return this._normalColor;case 3:return this._disabledColor;case 1:return this._hoverColor;case 2:return this._pressedColor;default:return new lr}},i._xrHoverEnter=function(){this._onMouseMoveIn(),this._updateState()},i._xrHoverExit=function(){this._onMouseMoveOut(),this._pressed&&(this._pressed=!1,this._updateState())},i._xrClick=function(){this._interactable&&this.enabledInHierarchy&&(this._pressed=!0,this._updateState())},i._xrUnClick=function(){this._interactable&&this.enabledInHierarchy&&(this._pressed&&(fg.emitEvents(this.clickEvents,this),this.node.emit("click",this)),this._pressed=!1,this._updateState())},n(e,[{key:"target",get:function(){return this._target||this.node},set:function(t){this._target!==t&&(this._target&&this._unregisterTargetEvent(this._target),this._target=t,this._applyTarget())}},{key:"interactable",get:function(){return this._interactable},set:function(t){this._interactable!==t&&(this._interactable=t,this._updateState(),this._interactable||this._resetState())}},{key:"_resizeToTarget",set:function(t){t&&this._resizeNodeToTargetNode()}},{key:"transition",get:function(){return this._transition},set:function(t){this._transition!==t&&(1===this._transition?this._updateColorTransition(0):2===this._transition&&this._updateSpriteTransition(0),this._transition=t,this._updateState())}},{key:"normalColor",get:function(){return this._normalColor},set:function(t){this._normalColor!==t&&(this._normalColor.set(t),this._updateState())}},{key:"pressedColor",get:function(){return this._pressedColor},set:function(t){this._pressedColor!==t&&this._pressedColor.set(t)}},{key:"hoverColor",get:function(){return this._hoverColor},set:function(t){this._hoverColor!==t&&this._hoverColor.set(t)}},{key:"disabledColor",get:function(){return this._disabledColor},set:function(t){this._disabledColor!==t&&(this._disabledColor.set(t),this._updateState())}},{key:"duration",get:function(){return this._duration},set:function(t){this._duration!==t&&(this._duration=t)}},{key:"zoomScale",get:function(){return this._zoomScale},set:function(t){this._zoomScale!==t&&(this._zoomScale=t)}},{key:"normalSprite",get:function(){return this._normalSprite},set:function(t){if(this._normalSprite!==t){this._normalSprite=t;var e=this.node.getComponent(NN);e&&(e.spriteFrame=t),this._updateState()}}},{key:"pressedSprite",get:function(){return this._pressedSprite},set:function(t){this._pressedSprite!==t&&(this._pressedSprite=t,this._updateState())}},{key:"hoverSprite",get:function(){return this._hoverSprite},set:function(t){this._hoverSprite!==t&&(this._hoverSprite=t,this._updateState())}},{key:"disabledSprite",get:function(){return this._disabledSprite},set:function(t){this._disabledSprite!==t&&(this._disabledSprite=t,this._updateState())}}]),e}(dg),MXt.Transition=RXt,MXt.EventType=FXt,v((pXt=MXt).prototype,"target",[oXt],Object.getOwnPropertyDescriptor(pXt.prototype,"target"),pXt.prototype),v(pXt.prototype,"transition",[hXt],Object.getOwnPropertyDescriptor(pXt.prototype,"transition"),pXt.prototype),v(pXt.prototype,"normalSprite",[uXt],Object.getOwnPropertyDescriptor(pXt.prototype,"normalSprite"),pXt.prototype),v(pXt.prototype,"pressedSprite",[lXt],Object.getOwnPropertyDescriptor(pXt.prototype,"pressedSprite"),pXt.prototype),v(pXt.prototype,"hoverSprite",[cXt],Object.getOwnPropertyDescriptor(pXt.prototype,"hoverSprite"),pXt.prototype),v(pXt.prototype,"disabledSprite",[fXt],Object.getOwnPropertyDescriptor(pXt.prototype,"disabledSprite"),pXt.prototype),mXt=Vh(pXt.prototype,"clickEvents",[_Xt,hu],(function(){return[]})),gXt=Vh(pXt.prototype,"_interactable",[hu],(function(){return!0})),yXt=Vh(pXt.prototype,"_transition",[hu],(function(){return 0})),vXt=Vh(pXt.prototype,"_normalColor",[hu],(function(){return lr.WHITE.clone()})),bXt=Vh(pXt.prototype,"_hoverColor",[hu],(function(){return new lr(211,211,211,255)})),SXt=Vh(pXt.prototype,"_pressedColor",[hu],(function(){return lr.WHITE.clone()})),xXt=Vh(pXt.prototype,"_disabledColor",[hu],(function(){return new lr(124,124,124,255)})),wXt=Vh(pXt.prototype,"_normalSprite",[hu],(function(){return null})),TXt=Vh(pXt.prototype,"_hoverSprite",[hu],(function(){return null})),AXt=Vh(pXt.prototype,"_pressedSprite",[hu],(function(){return null})),CXt=Vh(pXt.prototype,"_disabledSprite",[hu],(function(){return null})),DXt=Vh(pXt.prototype,"_duration",[hu],(function(){return.1})),BXt=Vh(pXt.prototype,"_zoomScale",[hu],(function(){return 1.2})),IXt=Vh(pXt.prototype,"_target",[hu],(function(){return null})),dXt=pXt))||dXt)||dXt)||dXt));A.Button=LXt;var NXt=function(){function t(){}return t.add=function(t){var e=this._tabIndexList;-1===e.indexOf(t)&&e.push(t)},t.remove=function(t){var e=this._tabIndexList,i=e.indexOf(t);-1!==i&&e.splice(i,1)},t.resort=function(){this._tabIndexList.sort((function(t,e){return t._delegate.tabIndex-e._delegate.tabIndex}))},t.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)}},t}();NXt._tabIndexList=[];var VXt=function(){function t(){this._editing=!1,this._delegate=null}var e=t.prototype;return e.init=function(){},e.onEnable=function(){},e.beforeDraw=function(){},e.onDisable=function(){this._editing&&this.endEditing()},e.clear=function(){this._delegate=null},e.setTabIndex=function(){},e.setSize=function(){},e.setFocus=function(t){t?this.beginEditing():this.endEditing()},e.isFocused=function(){return this._editing},e.beginEditing=function(){},e.endEditing=function(){},t}(),zXt=D.document,UXt=new Kr,GXt=new Kr,HXt=new er,WXt=null,jXt=0,qXt=function(t){function e(){var e;return(e=t.call(this)||this)._delegate=null,e._inputMode=-1,e._inputFlag=-1,e._returnType=-1,e.__eventListeners={},e.__autoResize=!1,e.__orientationChanged=void 0,e._edTxt=null,e._isTextArea=!1,e._textLabelFont=null,e._textLabelFontSize=null,e._textLabelFontColor=null,e._textLabelAlign=null,e._placeholderLabelFont=null,e._placeholderLabelFontSize=null,e._placeholderLabelFontColor=null,e._placeholderLabelAlign=null,e._placeholderLineHeight=null,e._placeholderStyleSheet=null,e._domId="EditBoxId_"+ ++jXt,e._forceUpdate=!1,e}s(e,t);var i=e.prototype;return i.init=function(t){t&&(this._delegate=t,0===t.inputMode?this._createTextArea():this._createInput(),NXt.add(this),this.setTabIndex(t.tabIndex),this._initStyleSheet(),this._registerEventListeners(),this._addDomToGameContainer(),AO.instance.on("canvas-resize",this._resize,this),rh.on("window-resize",this._resize,this))},i.clear=function(){AO.instance.off("canvas-resize",this._resize,this),rh.off("window-resize",this._resize,this),this._removeEventListeners(),this._removeDomFromGameContainer(),NXt.remove(this),WXt===this&&(WXt=null),this._delegate=null},i._resize=function(){this._forceUpdate=!0},i.beforeDraw=function(){(this._delegate.node.hasChangedFlags||this._forceUpdate)&&(this._forceUpdate=!1,this._updateMatrix())},i.setTabIndex=function(t){this._edTxt.tabIndex=t,NXt.resort()},i.setSize=function(t,e){var i=this._edTxt;i&&(i.style.width=t+"px",i.style.height=e+"px")},i.beginEditing=function(){WXt&&WXt!==this&&WXt.setFocus(!1),this._editing=!0,WXt=this,this._delegate._editBoxEditingDidBegan(),this._showDom(),this._edTxt.focus()},i.endEditing=function(){this._edTxt.blur()},i._createInput=function(){this._isTextArea=!1,this._edTxt=zXt.createElement("input")},i._createTextArea=function(){this._isTextArea=!0,this._edTxt=zXt.createElement("textarea")},i._addDomToGameContainer=function(){HO.container&&this._edTxt&&(HO.container.appendChild(this._edTxt),zXt.head.appendChild(this._placeholderStyleSheet))},i._removeDomFromGameContainer=function(){Ke(HO.container,this._edTxt)&&this._edTxt&&HO.container.removeChild(this._edTxt),Ke(zXt.head,this._placeholderStyleSheet)&&zXt.head.removeChild(this._placeholderStyleSheet),this._edTxt=null,this._placeholderStyleSheet=null},i._showDom=function(){this._updateMaxLength(),this._updateInputType(),this._updateStyleSheet(),this._edTxt&&this._delegate&&(this._edTxt.style.display="",this._delegate._hideLabels()),oh.isMobile&&this._showDomOnMobile()},i._hideDom=function(){var t=this._edTxt;t&&this._delegate&&(t.style.display="none",this._delegate._showLabels()),oh.isMobile&&this._hideDomOnMobile()},i._showDomOnMobile=function(){oh.os!==Eo.ANDROID&&oh.os!==Eo.OHOS||(rh.handleResizeEvent=!1,this._adjustWindowScroll())},i._hideDomOnMobile=function(){oh.os!==Eo.ANDROID&&oh.os!==Eo.OHOS||(rh.handleResizeEvent=!0),this._scrollBackWindow()},i._isElementInViewport=function(){if(this._edTxt){var t=this._edTxt.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(D.innerHeight||zXt.documentElement.clientHeight)&&t.right<=(D.innerWidth||zXt.documentElement.clientWidth)}return!1},i._adjustWindowScroll=function(){var t=this;setTimeout((function(){D.scrollY<40&&!t._isElementInViewport()&&t._edTxt.scrollIntoView({block:"start",inline:"nearest",behavior:"smooth"})}),400)},i._scrollBackWindow=function(){setTimeout((function(){oh.browserType!==Io.WECHAT||oh.os!==Eo.IOS?D.scrollTo(0,0):D.top&&D.top.scrollTo(0,0)}),400)},i._updateMatrix=function(){if(this._edTxt){var t=this._delegate.node,e=FO.getScaleX(),i=FO.getScaleY(),n=FO.getViewportRect(),r=rh.devicePixelRatio;t.getWorldMatrix(UXt);var s=t._getUITransformComp();if(s&&(er.set(HXt,-s.anchorX*s.width,-s.anchorY*s.height,HXt.z),Kr.transform(UXt,UXt,HXt)),t._getUITransformComp()){var a=WE.root.batcher2D.getFirstRenderCamera(t);if(a){a.node.getWorldRT(GXt);var o=GXt.m12,h=GXt.m13,u=hh.center;GXt.m12=u.x-(GXt.m00*o+GXt.m04*h),GXt.m13=u.y-(GXt.m01*o+GXt.m05*h),e/=r,i/=r,er.set(HXt,e,i,1),Kr.scale(GXt,GXt,HXt);var l=HO.container,c=parseInt(l&&l.style.paddingLeft||"0");c+=n.x/r;var f=parseInt(l&&l.style.paddingBottom||"0");f+=n.y/r,GXt.m12+=c,GXt.m13+=f,Kr.multiply(GXt,GXt,UXt);var _="matrix("+GXt.m00+","+-GXt.m01+","+-GXt.m04+","+GXt.m05+","+GXt.m12+","+-GXt.m13+")";this._edTxt.style.transform=_,this._edTxt.style["-webkit-transform"]=_,this._edTxt.style["transform-origin"]="0px 100% 0px",this._edTxt.style["-webkit-transform-origin"]="0px 100% 0px"}}}},i._updateInputType=function(){var t=this._delegate,e=t.inputMode,i=t.inputFlag,n=t.returnType,r=this._edTxt;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 4===i?s="uppercase":2===i&&(s="capitalize"),void(r.style.textTransform=s)}if(0===i)return r.type="password",void(r.style.textTransform="none");var a=r.type;1===e?a="email":2===e?a="number":5===e?a="digit":3===e?(a="tel",r.addEventListener("wheel",(function(){return!1}))):4===e?a="url":(a="text",3===n&&(a="search")),r.type=a;var o="none";4===i?o="uppercase":2===i&&(o="capitalize"),r.style.textTransform=o}},i._updateMaxLength=function(){var t=this._delegate.maxLength;t<0&&(t=65535),this._edTxt.maxLength=t},i._initStyleSheet=function(){if(this._edTxt){var t=this._edTxt;t.style.color="#000000",t.style.border="0px",t.style.background="transparent",t.style.width="100%",t.style.height="100%",t.style.outline="medium",t.style.padding="0",t.style.textTransform="none",t.style.display="none",t.style.position="absolute",t.style.bottom="0px",t.style.left="2px",t.className="cocosEditBox",t.style.fontFamily="Arial",t.id=this._domId,this._isTextArea?(t.style.resize="none",t.style.overflowY="scroll"):(t.type="text",t.style["-moz-appearance"]="textfield"),this._placeholderStyleSheet=zXt.createElement("style")}},i._updateStyleSheet=function(){var t=this._delegate,e=this._edTxt;e&&t&&(e.value=t.string,this._updateTextLabel(t.textLabel))},i._updateTextLabel=function(t){if(t){var e=t.font;e=!e||e instanceof oF?t.fontFamily:e._fontFamily;var i=t.fontSize*t.node.scale.y;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,this._edTxt)){var n=this._edTxt;switch(n.style.fontSize=i+"px",n.style.color=t.color.toCSS(),n.style.fontFamily=e,t.horizontalAlign){case ON.HorizontalAlign.LEFT:n.style.textAlign="left";break;case ON.HorizontalAlign.CENTER:n.style.textAlign="center";break;case ON.HorizontalAlign.RIGHT:n.style.textAlign="right"}}}},i._updatePlaceholderLabel=function(t){if(t){var e=t.font;e=!e||e instanceof oF?t.fontFamily:t.font._fontFamily;var i=t.fontSize*t.node.scale.y;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=this._placeholderStyleSheet,r=t.color.toCSS(),s=t.fontSize,a="";switch(t.horizontalAlign){case ON.HorizontalAlign.LEFT:a="left";break;case ON.HorizontalAlign.CENTER:a="center";break;case ON.HorizontalAlign.RIGHT:a="right"}n.innerHTML="#"+this._domId+"::-webkit-input-placeholder{text-transform: initial;-family: "+e+";font-size: "+i+"px;color: "+r+";line-height: "+s+"px;text-align: "+a+";}#"+this._domId+"::-moz-placeholder{text-transform: initial;-family: "+e+";font-size: "+i+"px;color: "+r+";line-height: "+s+"px;text-align: "+a+";}#"+this._domId+"::-ms-input-placeholder{text-transform: initial;-family: "+e+";font-size: "+i+"px;color: "+r+";line-height: "+s+"px;text-align: "+a+";}",oh.browserType===Io.EDGE&&(n.innerHTML+="#"+this._domId+"::-ms-clear{display: none;}")}}},i._registerEventListeners=function(){var t=this;if(this._edTxt){var e=this._edTxt,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,r=n.maxLength;r>=0&&"number"!==e.type&&(e.value=e.value.slice(0,r)),n._editBoxTextChanged(e.value)}},n.onClick=function(){t._editing&&oh.isMobile&&t._adjustWindowScroll()},n.onKeydown=function(i){13===i.keyCode?(i.propagationStopped=!0,t._delegate._editBoxEditingReturn(),t._isTextArea||e.blur()):9===i.keyCode&&(i.propagationStopped=!0,i.preventDefault(),NXt.next(t))},n.onBlur=function(){oh.isMobile&&i&&n.compositionEnd(),t._editing=!1,WXt=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)}},i._removeEventListeners=function(){if(this._edTxt){var t=this._edTxt,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}},e}(VXt),XXt={DEFAULT:0,DONE:1,SEND:2,SEARCH:3,GO:4,NEXT:5};Pe(XXt);var YXt={ANY:0,EMAIL_ADDR:1,NUMERIC:2,PHONE_NUMBER:3,URL:4,DECIMAL:5,SINGLE_LINE:6};Pe(YXt);var KXt,JXt,QXt,ZXt,$Xt,tYt,eYt,iYt,nYt,rYt,sYt,aYt,oYt,hYt,uYt,lYt,cYt,fYt,_Yt,dYt,pYt,mYt,gYt,yYt,vYt,bYt,SYt,xYt,wYt,TYt={PASSWORD:0,SENSITIVE:1,INITIAL_CAPS_WORD:2,INITIAL_CAPS_SENTENCE:3,INITIAL_CAPS_ALL_CHARACTERS:4,DEFAULT:5};Pe(TYt);var AYt,CYt,DYt,BYt,IYt,MYt,PYt,EYt,OYt,kYt,RYt,FYt,LYt,NYt,VYt,zYt,UYt,GYt,HYt,WYt,jYt,qYt,XYt,YYt,KYt,JYt,QYt,ZYt,$Yt=t("gV",(KXt=Kh("cc.EditBox"),JXt=Qh(110),QXt=Jh(aL),ZXt=Eu(ON),$Xt=Eu(ON),tYt=Eu($k),eYt=Eu(TYt),iYt=Eu(YXt),nYt=Eu(XXt),rYt=Eu([fg]),sYt=Eu([fg]),aYt=Eu([fg]),oYt=Eu([fg]),KXt(hYt=JXt(hYt=QXt((wYt=function(t){function e(){var e;return(e=t.call(this)||this).editingDidBegan=lYt&&lYt(),e.textChanged=cYt&&cYt(),e.editingDidEnded=fYt&&fYt(),e.editingReturn=_Yt&&_Yt(),e._impl=null,e._background=null,e._textLabel=dYt&&dYt(),e._placeholderLabel=pYt&&pYt(),e._returnType=mYt&&mYt(),e._string=gYt&&gYt(),e._tabIndex=yYt&&yYt(),e._backgroundImage=vYt&&vYt(),e._inputFlag=bYt&&bYt(),e._inputMode=SYt&&SYt(),e._maxLength=xYt&&xYt(),e._isLabelVisible=!1,e}s(e,t);var i=e.prototype;return i.__preload=function(){this._init()},i.onEnable=function(){this._registerEvent(),this._ensureBackgroundSprite(),this._impl&&this._impl.onEnable()},i._beforeDraw=function(){this._impl&&this._impl.beforeDraw()},i.onDisable=function(){this._unregisterEvent(),this._unregisterBackgroundEvent(),this._impl&&this._impl.onDisable()},i.onDestroy=function(){WE.off("director_before_draw",this._beforeDraw,this),this._impl&&this._impl.clear()},i.setFocus=function(){this._impl&&this._impl.setFocus(!0)},i.focus=function(){this._impl&&this._impl.setFocus(!0)},i.blur=function(){this._impl&&this._impl.setFocus(!1)},i.isFocused=function(){return!!this._impl&&this._impl.isFocused()},i._editBoxEditingDidBegan=function(){fg.emitEvents(this.editingDidBegan,this),this.node.emit("editing-did-began",this)},i._editBoxEditingDidEnded=function(t){fg.emitEvents(this.editingDidEnded,this),this.node.emit("editing-did-ended",this,t)},i._editBoxTextChanged=function(t){t=this._updateLabelStringStyle(t,!0),this.string=t,fg.emitEvents(this.textChanged,t,this),this.node.emit("text-changed",this)},i._editBoxEditingReturn=function(t){fg.emitEvents(this.editingReturn,this),this.node.emit("editing-return",this,t)},i._showLabels=function(){this._isLabelVisible=!0,this._updateLabels()},i._hideLabels=function(){this._isLabelVisible=!1,this._textLabel&&(this._textLabel.node.active=!1),this._placeholderLabel&&(this._placeholderLabel.node.active=!1)},i._onTouchBegan=function(t){t.propagationStopped=!0},i._onTouchCancel=function(t){t.propagationStopped=!0},i._onTouchEnded=function(t){this._impl&&this._impl.beginEditing(),t.propagationStopped=!0},i._init=function(){this._updatePlaceholderLabel(),this._updateTextLabel(),this._isLabelVisible=!0,this.node.on("size-changed",this._resizeChildNodes,this),WE.on("director_before_draw",this._beforeDraw,this),(this._impl=new e._EditBoxImpl).init(this),this._updateString(this._string),this._syncSize()},i._ensureBackgroundSprite=function(){if(!this._background){var t=this.node.getComponent(NN);t||(t=this.node.addComponent(NN)),t!==this._background&&(t.type=NN.Type.SLICED,t.spriteFrame=this._backgroundImage,this._background=t,this._registerBackgroundEvent())}},i._updateTextLabel=function(){var t=this._textLabel;if(!t){var e=this.node.getChildByName("TEXT_LABEL");e||((e=new Qv("TEXT_LABEL")).layer=this.node.layer),(t=e.getComponent(ON))||(t=e.addComponent(ON)),e.parent=this.node,this._textLabel=t}0===this._inputMode?(t.verticalAlign=0,t.enableWrapText=!0):t.enableWrapText=!1,t.string=this._updateLabelStringStyle(this._string)},i._updatePlaceholderLabel=function(){var t=this._placeholderLabel;if(!t){var e=this.node.getChildByName("PLACEHOLDER_LABEL");e||((e=new Qv("PLACEHOLDER_LABEL")).layer=this.node.layer),(t=e.getComponent(ON))||(t=e.addComponent(ON)),e.parent=this.node,this._placeholderLabel=t}0===this._inputMode?t.enableWrapText=!0:t.enableWrapText=!1,t.string=this.placeholder},i._syncSize=function(){var t=this.node._getUITransformComp(),e=t.contentSize;if(this._background){var i=this._background.node._getUITransformComp();i.anchorPoint=t.anchorPoint,i.setContentSize(e)}this._updateLabelPosition(e),this._impl&&this._impl.setSize(e.width,e.height)},i._updateLabels=function(){if(this._isLabelVisible){var t=this._string;this._textLabel&&(this._textLabel.node.active=""!==t),this._placeholderLabel&&(this._placeholderLabel.node.active=""===t)}},i._updateString=function(t){var e=this._textLabel;if(e){var i=t;i&&(i=this._updateLabelStringStyle(i)),e.string=i,this._updateLabels()}},i._updateLabelStringStyle=function(t,e){void 0===e&&(e=!1);var i,n=this._inputFlag;if(e||0!==n)4===n?t=t.toUpperCase():2===n?t=t.replace(/(?:^|\s)\S/g,(function(t){return t.toUpperCase()})):3===n&&(t=(i=t).charAt(0).toUpperCase()+i.slice(1));else{for(var r="",s=t.length,a=0;a=0&&t.length>=this._maxLength&&(t=t.slice(0,this._maxLength)),this._string!==t&&(this._string=t,this._updateString(t))}},{key:"placeholder",get:function(){return this._placeholderLabel?this._placeholderLabel.string:""},set:function(t){this._placeholderLabel&&(this._placeholderLabel.string=t)}},{key:"textLabel",get:function(){return this._textLabel},set:function(t){this._textLabel!==t&&(this._textLabel=t,this._textLabel&&(this._updateTextLabel(),this._updateLabels()))}},{key:"placeholderLabel",get:function(){return this._placeholderLabel},set:function(t){this._placeholderLabel!==t&&(this._placeholderLabel=t,this._placeholderLabel&&(this._updatePlaceholderLabel(),this._updateLabels()))}},{key:"backgroundImage",get:function(){return this._backgroundImage},set:function(t){this._backgroundImage!==t&&(this._backgroundImage=t,this._ensureBackgroundSprite(),this._background.spriteFrame=t)}},{key:"inputFlag",get:function(){return this._inputFlag},set:function(t){this._inputFlag!==t&&(this._inputFlag=t,this._updateString(this._string))}},{key:"inputMode",get:function(){return this._inputMode},set:function(t){this._inputMode!==t&&(this._inputMode=t,this._updateTextLabel(),this._updatePlaceholderLabel())}},{key:"returnType",get:function(){return this._returnType},set:function(t){this._returnType=t}},{key:"maxLength",get:function(){return this._maxLength},set:function(t){this._maxLength=t}},{key:"tabIndex",get:function(){return this._tabIndex},set:function(t){this._tabIndex!==t&&(this._tabIndex=t,this._impl&&this._impl.setTabIndex(t))}}]),e}(dg),wYt._EditBoxImpl=VXt,wYt.KeyboardReturnType=XXt,wYt.InputFlag=TYt,wYt.InputMode=YXt,wYt.EventType={EDITING_DID_BEGAN:"editing-did-began",EDITING_DID_ENDED:"editing-did-ended",TEXT_CHANGED:"text-changed",EDITING_RETURN:"editing-return",XR_EDITING_DID_BEGAN:"xr-editing-did-began",XR_EDITING_DID_ENDED:"xr-editing-did-ended"},v((uYt=wYt).prototype,"textLabel",[ZXt],Object.getOwnPropertyDescriptor(uYt.prototype,"textLabel"),uYt.prototype),v(uYt.prototype,"placeholderLabel",[$Xt],Object.getOwnPropertyDescriptor(uYt.prototype,"placeholderLabel"),uYt.prototype),v(uYt.prototype,"backgroundImage",[tYt],Object.getOwnPropertyDescriptor(uYt.prototype,"backgroundImage"),uYt.prototype),v(uYt.prototype,"inputFlag",[eYt],Object.getOwnPropertyDescriptor(uYt.prototype,"inputFlag"),uYt.prototype),v(uYt.prototype,"inputMode",[iYt],Object.getOwnPropertyDescriptor(uYt.prototype,"inputMode"),uYt.prototype),v(uYt.prototype,"returnType",[nYt],Object.getOwnPropertyDescriptor(uYt.prototype,"returnType"),uYt.prototype),lYt=Vh(uYt.prototype,"editingDidBegan",[rYt,hu],(function(){return[]})),cYt=Vh(uYt.prototype,"textChanged",[sYt,hu],(function(){return[]})),fYt=Vh(uYt.prototype,"editingDidEnded",[aYt,hu],(function(){return[]})),_Yt=Vh(uYt.prototype,"editingReturn",[oYt,hu],(function(){return[]})),dYt=Vh(uYt.prototype,"_textLabel",[hu],(function(){return null})),pYt=Vh(uYt.prototype,"_placeholderLabel",[hu],(function(){return null})),mYt=Vh(uYt.prototype,"_returnType",[hu],(function(){return 0})),gYt=Vh(uYt.prototype,"_string",[hu],(function(){return""})),yYt=Vh(uYt.prototype,"_tabIndex",[hu],(function(){return 0})),vYt=Vh(uYt.prototype,"_backgroundImage",[hu],(function(){return null})),bYt=Vh(uYt.prototype,"_inputFlag",[hu],(function(){return 5})),SYt=Vh(uYt.prototype,"_inputMode",[hu],(function(){return 0})),xYt=Vh(uYt.prototype,"_maxLength",[hu],(function(){return 20})),hYt=uYt))||hYt)||hYt)||hYt));"object"==typeof window&&"object"==typeof document&&($Yt._EditBoxImpl=qXt),A.internal.EditBox=$Yt;var tKt={NONE:0,HORIZONTAL:1,VERTICAL:2,GRID:3};ke(tKt);var eKt={NONE:0,CONTAINER:1,CHILDREN:2};ke(eKt);var iKt={HORIZONTAL:0,VERTICAL:1};ke(iKt);var nKt={BOTTOM_TO_TOP:0,TOP_TO_BOTTOM:1};ke(nKt);var rKt={LEFT_TO_RIGHT:0,RIGHT_TO_LEFT:1};ke(rKt);var sKt={NONE:0,FIXED_ROW:1,FIXED_COL:2};ke(sKt);var aKt,oKt,hKt,uKt,lKt,cKt,fKt,_Kt,dKt,pKt,mKt,gKt,yKt,vKt=new er,bKt=t("gW",(AYt=Kh("cc.Layout"),CYt=Qh(110),DYt=Jh(aL),BYt=Eu(tKt),IYt=Eu(eKt),MYt=Eu(iKt),PYt=Eu(nKt),EYt=Eu(rKt),OYt=Eu(sKt),AYt(kYt=CYt(kYt=DYt((ZYt=function(t){function e(){var e;return(e=t.call(this)||this)._resizeMode=FYt&&FYt(),e._layoutType=LYt&&LYt(),e._cellSize=NYt&&NYt(),e._startAxis=VYt&&VYt(),e._paddingLeft=zYt&&zYt(),e._paddingRight=UYt&&UYt(),e._paddingTop=GYt&&GYt(),e._paddingBottom=HYt&&HYt(),e._spacingX=WYt&&WYt(),e._spacingY=jYt&&jYt(),e._verticalDirection=qYt&&qYt(),e._horizontalDirection=XYt&&XYt(),e._constraint=YYt&&YYt(),e._constraintNum=KYt&&KYt(),e._affectedByScale=JYt&&JYt(),e._isAlign=QYt&&QYt(),e._layoutSize=new ps(300,200),e._layoutDirty=!0,e._childrenDirty=!1,e._usefulLayoutObj=[],e._init=!1,e}s(e,t);var i=e.prototype;return i.updateLayout=function(t){void 0===t&&(t=!1),(this._layoutDirty||t)&&(this._doLayout(),this._layoutDirty=!1)},i.onEnable=function(){this._addEventListeners();var t=this.node._getUITransformComp();t.contentSize.equals(ps.ZERO)&&t.setContentSize(this._layoutSize),this._childrenChanged()},i.onDisable=function(){this._usefulLayoutObj.length=0,this._removeEventListeners()},i._checkUsefulObj=function(){this._usefulLayoutObj.length=0;for(var t=this.node.children,e=0;ef&&(_=Math.max(f,_),c=f||D,f=D),u+=a*(A*C+this._spacingX);var B=a*(1-A)*C;if(e){if(s>0)(d=v/s>0&&v%s==0)&&(c=f>D?f:c);else if(C>t-g)u>h+a*A*C&&(d=!0);else{var I=(1-this._horizontalDirection-r.x)*t,M=u+B+a*(a>0?this._paddingRight:this._paddingLeft);d=Math.abs(M)>Math.abs(I)}d&&(u=h+a*A*C,D!==f&&(c=f),l+=c+this._spacingY,c=f=D)}var P=i(S,b,l);n&&S.setPosition(u,P),u+=B}return c=Math.max(c,f),Math.max(_,l+c)+this._getPaddingV()},i._doLayoutVertically=function(t,e,i,n){var r=this.node._getUITransformComp().anchorPoint,s=this._getFixedBreakingNum(),a=1,o=this._paddingBottom;1===this._verticalDirection&&(a=-1,o=this._paddingTop);var h=(this._verticalDirection-r.y)*t+a*o,u=h-a*this._spacingY,l=0,c=0,f=0,_=0,d=!1,p=this._usefulLayoutObj.length,m=this._cellSize.height,g=this._getPaddingV();3!==this._layoutType&&2===this._resizeMode&&(m=(t-g-(p-1)*this._spacingY)/p);for(var y=this._usefulLayoutObj,v=0;vl&&(c=Math.max(l,c),f=l||C,l=C),u+=a*(A*D+this._spacingY);var B=a*(1-A)*D;if(e){if(s>0)(d=v/s>0&&v%s==0)&&(f=l>D?l:f);else if(D>t-g)u>h+a*A*D&&(d=!0);else{var I=(1-this._verticalDirection-r.y)*t,M=u+B+a*(a>0?this._paddingTop:this._paddingBottom);d=Math.abs(M)>Math.abs(I)}d&&(u=h+a*A*D,C!==l&&(f=l),_+=f+this._spacingX,f=l=C)}var P=i(S,b,_);n&&(S.getPosition(vKt),S.setPosition(P,u,vKt.z)),u+=B}return f=Math.max(f,l),Math.max(c,_+f)+this._getPaddingH()},i._doLayoutGridAxisHorizontal=function(t,e){var i=this,n=e.width,r=1,s=-t.y*e.height,a=this._paddingBottom;1===this._verticalDirection&&(r=-1,s=(1-t.y)*e.height,a=this._paddingTop);var o=function(t,e,n){return s+r*(n+(1-e.anchorY)*e.height*i._getUsedScaleValue(t.scale.y)+a)},h=0;1===this._resizeMode&&(h=this._doLayoutHorizontally(n,!0,o,!1),s=-t.y*h,1===this._verticalDirection&&(r=-1,s=(1-t.y)*h)),this._doLayoutHorizontally(n,!0,o,!0),1===this._resizeMode&&this.node._getUITransformComp().setContentSize(n,h)},i._doLayoutGridAxisVertical=function(t,e){var i=this,n=e.height,r=1,s=-t.x*e.width,a=this._paddingLeft;1===this._horizontalDirection&&(r=-1,s=(1-t.x)*e.width,a=this._paddingRight);var o=function(t,e,n){return s+r*(n+(1-e.anchorX)*e.width*i._getUsedScaleValue(t.scale.x)+a)},h=0;1===this._resizeMode&&(h=this._doLayoutVertically(n,!0,o,!1),s=-t.x*h,1===this._horizontalDirection&&(r=-1,s=(1-t.x)*h)),this._doLayoutVertically(n,!0,o,!0),1===this._resizeMode&&this.node._getUITransformComp().setContentSize(h,n)},i._doLayoutGrid=function(){var t=this.node._getUITransformComp(),e=t.anchorPoint,i=t.contentSize;0===this.startAxis?this._doLayoutGridAxisHorizontal(e,i):1===this.startAxis&&this._doLayoutGridAxisVertical(e,i)},i._getHorizontalBaseWidth=function(){var t=this._usefulLayoutObj,e=0,i=t.length;if(1===this._resizeMode){for(var n=0;n0?n:-n)),i*(e/r)},i._calculatePosition=function(t,e,i,n,r,s,a){var o=e-i;s&&(o+=Math.abs(s));var h=0;o&&(h=$i(h=r/o));var u=(n-a)*h;1===this._direction?t.set(0,u):t.set(u,0)},i._updateLength=function(t){if(this._handle){var e=this._handle.node._getUITransformComp(),i=e.contentSize,n=e.anchorPoint;n.x===VKt.x&&n.y===VKt.y||e.setAnchorPoint(VKt),0===this._direction?e.setContentSize(t,i.height):e.setContentSize(i.width,t)}},i._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)}},n(e,[{key:"handle",get:function(){return this._handle},set:function(t){this._handle!==t&&(this._handle=t,this.onScroll(_s.ZERO))}},{key:"direction",get:function(){return this._direction},set:function(t){this._direction!==t&&(this._direction=t,this.onScroll(_s.ZERO))}},{key:"enableAutoHide",get:function(){return this._enableAutoHide},set:function(t){this._enableAutoHide!==t&&(this._enableAutoHide=t,this._enableAutoHide&&this._setOpacity(0))}},{key:"autoHideTime",get:function(){return this._autoHideTime},set:function(t){this._autoHideTime!==t&&(this._autoHideTime=t)}}]),e}(dg),kKt.Direction=GKt,v((BKt=kKt).prototype,"handle",[AKt],Object.getOwnPropertyDescriptor(BKt.prototype,"handle"),BKt.prototype),v(BKt.prototype,"direction",[CKt],Object.getOwnPropertyDescriptor(BKt.prototype,"direction"),BKt.prototype),IKt=Vh(BKt.prototype,"_scrollView",[hu],(function(){return null})),MKt=Vh(BKt.prototype,"_handle",[hu],(function(){return null})),PKt=Vh(BKt.prototype,"_direction",[hu],(function(){return 0})),EKt=Vh(BKt.prototype,"_enableAutoHide",[hu],(function(){return!1})),OKt=Vh(BKt.prototype,"_autoHideTime",[hu],(function(){return 1})),DKt=BKt))||DKt)||DKt)||DKt));A.ScrollBar=WKt;var jKt,qKt,XKt,YKt,KKt,JKt,QKt,ZKt,$Kt,tJt,eJt,iJt,nJt,rJt,sJt,aJt,oJt,hJt,uJt,lJt,cJt,fJt=t("h1",Kh("cc.ViewGroup")(HKt=Qh(110)(HKt=function(t){function e(){return t.apply(this,arguments)||this}return s(e,t),e}(dg))||HKt)||HKt);A.ViewGroup=fJt;var _Jt,dJt,pJt,mJt,gJt,yJt,vJt,bJt,SJt,xJt,wJt,TJt,AJt,CJt=1e-4,DJt=ir(),BJt=ir(),IJt=ds(),MJt=ds(),PJt=function(){return(new Date).getMilliseconds()},EJt={"scroll-to-top":0,"scroll-to-bottom":1,"scroll-to-left":2,"scroll-to-right":3,scrolling:4,"bounce-bottom":6,"bounce-left":7,"bounce-right":8,"bounce-top":5,"scroll-ended":9,"touch-up":10,"scroll-ended-with-threshold":11,"scroll-began":12},OJt={anchor:ds(),applyToHorizontal:!1,applyToVertical:!1},kJt=function(t,e,i,n){OJt.anchor.set(t,e),OJt.applyToHorizontal=i,OJt.applyToVertical=n},RJt={NONE:"",SCROLL_TO_TOP:"scroll-to-top",SCROLL_TO_BOTTOM:"scroll-to-bottom",SCROLL_TO_LEFT:"scroll-to-left",SCROLL_TO_RIGHT:"scroll-to-right",SCROLL_BEGAN:"scroll-began",SCROLL_ENDED:"scroll-ended",BOUNCE_TOP:"bounce-top",BOUNCE_BOTTOM:"bounce-bottom",BOUNCE_LEFT:"bounce-left",BOUNCE_RIGHT:"bounce-right",SCROLLING:"scrolling",SCROLL_ENG_WITH_THRESHOLD:"scroll-ended-with-threshold",TOUCH_UP:"touch-up"},FJt=t("gZ",(jKt=Kh("cc.ScrollView"),qKt=Qh(110),XKt=Jh(aL),YKt=Eu(Qv),KKt=Eu(WKt),JKt=Eu(WKt),QKt=Eu([fg]),jKt(ZKt=qKt(ZKt=XKt((cJt=function(t){function e(){var e;return(e=t.call(this)||this).bounceDuration=tJt&&tJt(),e.brake=eJt&&eJt(),e.elastic=iJt&&iJt(),e.inertia=nJt&&nJt(),e.horizontal=rJt&&rJt(),e.vertical=sJt&&sJt(),e.cancelInnerEvents=aJt&&aJt(),e.scrollEvents=oJt&&oJt(),e._autoScrolling=!1,e._scrolling=!1,e._content=hJt&&hJt(),e._horizontalScrollBar=uJt&&uJt(),e._verticalScrollBar=lJt&&lJt(),e._topBoundary=0,e._bottomBoundary=0,e._leftBoundary=0,e._rightBoundary=0,e._touchMoveDisplacements=[],e._touchMoveTimeDeltas=[],e._touchMovePreviousTimestamp=0,e._touchMoved=!1,e._autoScrollAttenuate=!1,e._autoScrollStartPosition=new er,e._autoScrollTargetDelta=new er,e._autoScrollTotalTime=0,e._autoScrollAccumulatedTime=0,e._autoScrollCurrentlyOutOfBoundary=!1,e._autoScrollBraking=!1,e._autoScrollBrakingStartPosition=new er,e._outOfBoundaryAmount=new er,e._outOfBoundaryAmountDirty=!0,e._stopMouseWheel=!1,e._mouseWheelEventElapsedTime=0,e._isScrollEndedWithThresholdEventFired=!1,e._scrollEventEmitMask=0,e._isBouncing=!1,e._contentPos=new er,e._deltaPos=new er,e._deltaAmount=new er,e._hoverIn=0,e}s(e,t);var i=e.prototype;return i.scrollToBottom=function(t,e){void 0===e&&(e=!0),this._doScroll(0,0,!1,!0,t,e)},i.scrollToTop=function(t,e){void 0===e&&(e=!0),this._doScroll(0,1,!1,!0,t,e)},i.scrollToLeft=function(t,e){void 0===e&&(e=!0),this._doScroll(0,0,!0,!1,t,e)},i.scrollToRight=function(t,e){void 0===e&&(e=!0),this._doScroll(1,0,!0,!1,t,e)},i.scrollToTopLeft=function(t,e){void 0===e&&(e=!0),this._doScroll(0,1,!0,!0,t,e)},i.scrollToTopRight=function(t,e){void 0===e&&(e=!0),this._doScroll(1,1,!0,!0,t,e)},i.scrollToBottomLeft=function(t,e){void 0===e&&(e=!0),this._doScroll(0,0,!0,!0,t,e)},i.scrollToBottomRight=function(t,e){void 0===e&&(e=!0),this._doScroll(1,0,!0,!0,t,e)},i.scrollToOffset=function(t,e,i){void 0===i&&(i=!0);var n=this.getMaxScrollOffset(),r=ds();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)},i.getScrollOffset=function(){var t=this._getContentTopBoundary()-this._topBoundary,e=this._getContentLeftBoundary()-this._leftBoundary;return new _s(e,t)},i.getMaxScrollOffset=function(){if(!this._content||!this.view)return _s.ZERO;var t=this._content._getUITransformComp().contentSize,e=t.width-this.view.width,i=t.height-this.view.height;return new _s(e=e>=0?e:0,i=i>=0?i:0)},i.scrollToPercentHorizontal=function(t,e,i){this._doScroll(t,0,!0,!1,e,i)},i.scrollTo=function(t,e,i){this._doScroll(t.x,t.y,!0,!0,e,i)},i.scrollToPercentVertical=function(t,e,i){this._doScroll(0,t,!1,!0,e,i)},i._doScroll=function(t,e,i,n,r,s){void 0===s&&(s=!0),kJt(t,e,i,n);var a=this._calculateMovePercentDelta(OJt);r?this._startAutoScroll(a,r,s):this._moveContent(a)},i.stopAutoScroll=function(){this._autoScrolling=!1,this._autoScrollAccumulatedTime=this._autoScrollTotalTime},i.setContentPosition=function(t){this._setContentPosition(t)},i._setContentPosition=function(t){if(this._content){var e=this._getContentPosition();Math.abs(t.x-e.x)7&&!i._touchMoved&&t.target!==i.node){var s=new Wy(t.getTouches(),t.bubbles,"touch-cancel");s.touch=t.touch,s.simulate=!0,t.target.dispatchEvent(s),i._touchMoved=!0}i._stopPropagationIfTargetIsMe(t)}}},i._onTouchEnded=function(t,e){var i=this;if(i.enabledInHierarchy&&i._content&&t&&!i._hasNestedViewGroup(t,e)){i._dispatchEvent("touch-up");var n=t.touch;i._handleReleaseLogic(n),i._touchMoved?t.propagationStopped=!0:i._stopPropagationIfTargetIsMe(t)}},i._onTouchCancelled=function(t,e){var i=this;i.enabledInHierarchy&&i._content&&(i._hasNestedViewGroup(t,e)||(t&&!t.simulate&&i._handleReleaseLogic(t.touch),i._stopPropagationIfTargetIsMe(t)))},i._calculateBoundary=function(){var t=this;if(t._content&&t.view){var e=t._content.getComponent(bKt);e&&e.enabledInHierarchy&&e.updateLayout();var i=t.view,n=i.width*i.anchorX,r=i.height*i.anchorY;t._leftBoundary=-n,t._bottomBoundary=-r,t._rightBoundary=t._leftBoundary+i.width,t._topBoundary=t._bottomBoundary+i.height,t._moveContentToTopLeft(i.contentSize)}},i._hasNestedViewGroup=function(t,e){if(!t||t.eventPhase!==Vy.CAPTURING_PHASE)return!1;if(e)for(var i=0;i0&&l>7?(l=Math.sqrt(l),i.set(t),i.multiplyScalar(l+1)):i.add(t);var c=this._calculateAutoScrollTimeByInitialSpeed(e.length());this.brake>0&&l>3&&(c*=l=3),0===this.brake&&l>1&&(c*=l),this._startAutoScroll(i,c,!0)},i._calculateAutoScrollTimeByInitialSpeed=function(t){return Math.sqrt(Math.sqrt(t/5))},i._startAutoScroll=function(t,e,i){void 0===i&&(i=!1);var n=this,r=n._flattenVectorByDirection(t);n._autoScrolling=!0,n._autoScrollTargetDelta=r,n._autoScrollAttenuate=i,er.copy(n._autoScrollStartPosition,n._getContentPosition()),n._autoScrollTotalTime=e,n._autoScrollAccumulatedTime=0,n._autoScrollBraking=!1,n._isScrollEndedWithThresholdEventFired=!1,n._autoScrollBrakingStartPosition.set(0,0,0),n._getHowMuchOutOfBoundary().equals(er.ZERO,CJt)||(this._autoScrollCurrentlyOutOfBoundary=!0)},i._calculateTouchMoveVelocity=function(){var t=new er,e=0;if((e=this._touchMoveTimeDeltas.reduce((function(t,e){return t+e}),e))<=0||e>=.5)t.set(er.ZERO);else{var i=DJt;i.set(0,0,0),i=this._touchMoveDisplacements.reduce((function(t,e){return t.add(e),t}),i),t.set(i.x*(1-this.brake)/e,i.y*(1-this.brake)/e,i.z)}return t},i._flattenVectorByDirection=function(t){return this.horizontal||(t.x=0),this.vertical||(t.y=0),t},i._moveContent=function(t,e){var i=this._flattenVectorByDirection(t);DJt.set(this._getContentPosition()),DJt.add(i),DJt.set(Math.round(1e4*DJt.x)*CJt,Math.round(1e4*DJt.y)*CJt,DJt.z),this._setContentPosition(DJt);var n=this._getHowMuchOutOfBoundary();IJt.set(n.x,n.y),this._updateScrollBar(IJt),this.elastic&&e&&this._startBounceBackIfNeeded()},i._getContentLeftBoundary=function(){if(!this._content)return-1;var t=this._getContentPosition(),e=this._content._getUITransformComp();return t.x-e.anchorX*e.width},i._getContentRightBoundary=function(){if(!this._content)return-1;var t=this._content._getUITransformComp();return this._getContentLeftBoundary()+t.width},i._getContentTopBoundary=function(){if(!this._content)return-1;var t=this._content._getUITransformComp();return this._getContentBottomBoundary()+t.height},i._getContentBottomBoundary=function(){if(!this._content)return-1;var t=this._getContentPosition(),e=this._content._getUITransformComp();return t.y-e.anchorY*e.height},i._getHowMuchOutOfBoundary=function(t){if(t||(t=er.ZERO),t.equals(er.ZERO,CJt)&&!this._outOfBoundaryAmountDirty)return this._outOfBoundaryAmount;var e=new er,i=this._getContentLeftBoundary(),n=this._getContentRightBoundary();i+t.x>this._leftBoundary?e.x=this._leftBoundary-(i+t.x):n+t.xthis._bottomBoundary&&(e.y=this._bottomBoundary-(s+t.y)),t.equals(er.ZERO,CJt)&&(this._outOfBoundaryAmount=e,this._outOfBoundaryAmountDirty=!1),this._clampDelta(e),e},i._updateScrollBar=function(t){this._horizontalScrollBar&&this._horizontalScrollBar.isValid&&this._horizontalScrollBar.onScroll(t),this._verticalScrollBar&&this._verticalScrollBar.isValid&&this._verticalScrollBar.onScroll(t)},i._onScrollBarTouchBegan=function(){this._horizontalScrollBar&&this._horizontalScrollBar.isValid&&this._horizontalScrollBar.onTouchBegan(),this._verticalScrollBar&&this._verticalScrollBar.isValid&&this._verticalScrollBar.onTouchBegan()},i._onScrollBarTouchEnded=function(){this._horizontalScrollBar&&this._horizontalScrollBar.isValid&&this._horizontalScrollBar.onTouchEnded(),this._verticalScrollBar&&this._verticalScrollBar.isValid&&this._verticalScrollBar.onTouchEnded()},i._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<0?c.y-h*l+n.y>=e._bottomBoundary&&(r="scroll-to-bottom"):n.y<0&&c.y-h*l+l+n.y<=e._topBoundary&&(r="scroll-to-top")),e.horizontal&&(n.x<0?c.x-o*u+u+n.x<=e._rightBoundary&&(s="scroll-to-right"):n.x>0&&c.x-o*u+n.x>=e._leftBoundary&&(s="scroll-to-left"))}e._moveContent(n,!1),(e.horizontal&&0!==n.x||e.vertical&&0!==n.y)&&(e._scrolling||(e._scrolling=!0,e._dispatchEvent("scroll-began")),e._dispatchEvent("scrolling")),""!==r&&e._dispatchEvent(r),""!==s&&e._dispatchEvent(s)},i._handlePressLogic=function(){var t=this;t._autoScrolling&&t._dispatchEvent("scroll-ended"),t._autoScrolling=!1,t._isBouncing=!1,t._touchMovePreviousTimestamp=PJt(),t._touchMoveDisplacements.length=0,t._touchMoveTimeDeltas.length=0,t._onScrollBarTouchBegan()},i._clampDelta=function(t){if(this._content&&this.view){var e=this.view.contentSize,i=this._content._getUITransformComp();i.width=5;)e._touchMoveDisplacements.shift(),e._touchMoveTimeDeltas.shift();e._touchMoveDisplacements.push(i);var n=PJt();e._touchMoveTimeDeltas.push((n-e._touchMovePreviousTimestamp)/1e3),e._touchMovePreviousTimestamp=n},i._startBounceBackIfNeeded=function(){var t=this;if(!t.elastic)return!1;var e=t._getHowMuchOutOfBoundary();if(t._clampDelta(e),e.equals(er.ZERO,CJt))return!1;var i=Math.max(t.bounceDuration,0);return t._startAutoScroll(e,i,!0),t._isBouncing||(e.y>0&&t._dispatchEvent("bounce-top"),e.y<0&&t._dispatchEvent("bounce-bottom"),e.x>0&&t._dispatchEvent("bounce-right"),e.x<0&&t._dispatchEvent("bounce-left"),t._isBouncing=!0),!0},i._processInertiaScroll=function(){if(!this._startBounceBackIfNeeded()&&this.inertia){var t=this._calculateTouchMoveVelocity();!t.equals(er.ZERO,CJt)&&this.brake<1&&this._startInertiaScroll(t)}this._onScrollBarTouchEnded()},i._isOutOfBoundary=function(){return!this._getHowMuchOutOfBoundary().equals(er.ZERO,CJt)},i._isNecessaryAutoScrollBrake=function(){var t=this;if(t._autoScrollBraking)return!0;if(t._isOutOfBoundary()){if(!t._autoScrollCurrentlyOutOfBoundary)return t._autoScrollCurrentlyOutOfBoundary=!0,t._autoScrollBraking=!0,er.copy(t._autoScrollBrakingStartPosition,t._getContentPosition()),!0}else t._autoScrollCurrentlyOutOfBoundary=!1;return!1},i._processAutoScrolling=function(t){var e=this,i=e._isNecessaryAutoScrollBrake(),n=i?.05:1;e._autoScrollAccumulatedTime+=t*(1/n);var r,s=Math.min(1,e._autoScrollAccumulatedTime/e._autoScrollTotalTime);e._autoScrollAttenuate&&(r=s,s=(r-=1)*r*r*r*r+1);var a=e._autoScrollTargetDelta.clone();a.multiplyScalar(s);var o=e._autoScrollStartPosition.clone();o.add(a);var h=Math.abs(s-1)<=CJt;if(Math.abs(s-1)<=e.getScrollEndedEventTiming()&&!e._isScrollEndedWithThresholdEventFired&&(e._dispatchEvent("scroll-ended-with-threshold"),e._isScrollEndedWithThresholdEventFired=!0),e.elastic){var u=o.clone();u.subtract(e._autoScrollBrakingStartPosition),i&&u.multiplyScalar(n),o.set(e._autoScrollBrakingStartPosition),o.add(u)}else{var l=o.clone();l.subtract(e.getContentPosition());var c=e._getHowMuchOutOfBoundary(l);c.equals(er.ZERO,CJt)||(o.add(c),h=!0)}h&&(e._autoScrolling=!1);var f=o.clone();f.subtract(e._getContentPosition()),e._clampDelta(f),e._moveContent(f,h),e._dispatchEvent("scrolling"),e._autoScrolling||(e._isBouncing=!1,e._scrolling=!1,e._dispatchEvent("scroll-ended"))},i._checkMouseWheel=function(t){var e=this;if(!e._getHowMuchOutOfBoundary().equals(er.ZERO,CJt))return e._processInertiaScroll(),e._scrolling&&(e._scrolling=!1,e._autoScrolling||e._dispatchEvent("scroll-ended")),e.unschedule(e._checkMouseWheel),void(e._stopMouseWheel=!1);e._mouseWheelEventElapsedTime+=t,e._mouseWheelEventElapsedTime>.1&&(e._onScrollBarTouchEnded(),e._scrolling&&(e._scrolling=!1,e._autoScrolling||e._dispatchEvent("scroll-ended")),e.unschedule(e._checkMouseWheel),e._stopMouseWheel=!1)},i._calculateMovePercentDelta=function(t){var e=t.anchor,i=t.applyToHorizontal,n=t.applyToVertical,r=this;r._calculateBoundary(),e.clampf(_s.ZERO,_s.ONE);var s=r._getContentBottomBoundary()-r._bottomBoundary;s=-s;var a=r._getContentLeftBoundary()-r._leftBoundary;a=-a;var o=new er;if(r._content&&r.view){var h=0,u=r._content._getUITransformComp().contentSize,l=r.view.contentSize;i&&(h=u.width-l.width,o.x=a-h*e.x),n&&(h=u.height-l.height,o.y=s-h*e.y)}return o},i._moveContentToTopLeft=function(t){var e=this,i=e._getContentBottomBoundary()-e._bottomBoundary;i=-i;var n=new er,r=0,s=e._getContentLeftBoundary()-e._leftBoundary;if(s=-s,e._content){var a=e._content._getUITransformComp().contentSize;a.height1)for(var n=i[0],r=0;r0){var i=this.node.parent&&this.node.parent._uiProps,n=i&&i.uiTransformComp,r=n?n.contentSize:hh;this.isAlignLeft&&8===t?this._left=e?this._left*r.width:this._left/r.width:this.isAlignRight&&32===t?this._right=e?this._right*r.width:this._right/r.width:this.isAlignHorizontalCenter&&16===t?this._horizontalCenter=e?this._horizontalCenter*r.width:this._horizontalCenter/r.width:this.isAlignTop&&1===t?this._top=e?this._top*r.height:this._top/r.height:this.isAlignBottom&&4===t?this._bottom=e?this._bottom*r.height:this._bottom/r.height:this.isAbsoluteVerticalCenter&&2===t&&(this._verticalCenter=this._verticalCenter/r.height),this._recursiveDirty()}},i._registerTargetEvents=function(){var t=this._target||this.node.parent;t&&t.getComponent(aL)&&(t.on("transform-changed",this._setDirtyByMode,this),t.on("size-changed",this._setDirtyByMode,this),t.on("anchor-changed",this._setDirtyByMode,this))},i._unregisterTargetEvents=function(){var t=this._target||this.node.parent;t&&(t.off("transform-changed",this._setDirtyByMode,this),t.off("size-changed",this._setDirtyByMode,this),t.off("anchor-changed",this._setDirtyByMode,this))},i._unregisterOldParentEvents=function(t){var e=this._target||t;e&&(e.off("transform-changed",this._setDirtyByMode,this),e.off("size-changed",this._setDirtyByMode,this))},i._setDirtyByMode=function(){1===this.alignMode&&this._recursiveDirty()},i._setAlign=function(t,e){if(e!==(this._alignFlags&t)>0){var i=(40&t)>0,n=this.node._getUITransformComp();e?(this._alignFlags|=t,i?(this.isAlignHorizontalCenter=!1,this.isStretchWidth&&(this._originalWidth=n.width)):(this.isAlignVerticalCenter=!1,this.isStretchHeight&&(this._originalHeight=n.height))):(i?this.isStretchWidth&&(n.width=this._originalWidth):this.isStretchHeight&&(n.height=this._originalHeight),this._alignFlags&=~t)}},i._recursiveDirty=function(){this._dirty||(this._dirty=!0)},n(e,[{key:"target",get:function(){return this._target},set:function(t){this._target!==t&&(this._unregisterTargetEvents(),this._target=t,this._registerTargetEvents(),this._validateTargetInDEV(),this._recursiveDirty())}},{key:"isAlignTop",get:function(){return(1&this._alignFlags)>0},set:function(t){this._setAlign(1,t),this._recursiveDirty()}},{key:"isAlignBottom",get:function(){return(4&this._alignFlags)>0},set:function(t){this._setAlign(4,t),this._recursiveDirty()}},{key:"isAlignLeft",get:function(){return(8&this._alignFlags)>0},set:function(t){this._setAlign(8,t),this._recursiveDirty()}},{key:"isAlignRight",get:function(){return(32&this._alignFlags)>0},set:function(t){this._setAlign(32,t),this._recursiveDirty()}},{key:"isAlignVerticalCenter",get:function(){return(2&this._alignFlags)>0},set:function(t){t?(this.isAlignTop=!1,this.isAlignBottom=!1,this._alignFlags|=2):this._alignFlags&=-3,this._recursiveDirty()}},{key:"isAlignHorizontalCenter",get:function(){return(16&this._alignFlags)>0},set:function(t){t?(this.isAlignLeft=!1,this.isAlignRight=!1,this._alignFlags|=16):this._alignFlags&=-17,this._recursiveDirty()}},{key:"isStretchWidth",get:function(){return!(40&~this._alignFlags)}},{key:"isStretchHeight",get:function(){return!(5&~this._alignFlags)}},{key:"top",get:function(){return this._top},set:function(t){this._top=t,this._recursiveDirty()}},{key:"editorTop",get:function(){return this._isAbsTop?this._top:100*this._top},set:function(t){this._top=this._isAbsTop?t:t/100,this._recursiveDirty()}},{key:"bottom",get:function(){return this._bottom},set:function(t){this._bottom=t,this._recursiveDirty()}},{key:"editorBottom",get:function(){return this._isAbsBottom?this._bottom:100*this._bottom},set:function(t){this._bottom=this._isAbsBottom?t:t/100,this._recursiveDirty()}},{key:"left",get:function(){return this._left},set:function(t){this._left=t,this._recursiveDirty()}},{key:"editorLeft",get:function(){return this._isAbsLeft?this._left:100*this._left},set:function(t){this._left=this._isAbsLeft?t:t/100,this._recursiveDirty()}},{key:"right",get:function(){return this._right},set:function(t){this._right=t,this._recursiveDirty()}},{key:"editorRight",get:function(){return this._isAbsRight?this._right:100*this._right},set:function(t){this._right=this._isAbsRight?t:t/100,this._recursiveDirty()}},{key:"horizontalCenter",get:function(){return this._horizontalCenter},set:function(t){this._horizontalCenter=t,this._recursiveDirty()}},{key:"editorHorizontalCenter",get:function(){return this._isAbsHorizontalCenter?this._horizontalCenter:100*this._horizontalCenter},set:function(t){this._horizontalCenter=this._isAbsHorizontalCenter?t:t/100,this._recursiveDirty()}},{key:"verticalCenter",get:function(){return this._verticalCenter},set:function(t){this._verticalCenter=t,this._recursiveDirty()}},{key:"editorVerticalCenter",get:function(){return this._isAbsVerticalCenter?this._verticalCenter:100*this._verticalCenter},set:function(t){this._verticalCenter=this._isAbsVerticalCenter?t:t/100,this._recursiveDirty()}},{key:"isAbsoluteTop",get:function(){return this._isAbsTop},set:function(t){this._isAbsTop!==t&&(this._isAbsTop=t,this._autoChangedValue(1,this._isAbsTop))}},{key:"isAbsoluteBottom",get:function(){return this._isAbsBottom},set:function(t){this._isAbsBottom!==t&&(this._isAbsBottom=t,this._autoChangedValue(4,this._isAbsBottom))}},{key:"isAbsoluteLeft",get:function(){return this._isAbsLeft},set:function(t){this._isAbsLeft!==t&&(this._isAbsLeft=t,this._autoChangedValue(8,this._isAbsLeft))}},{key:"isAbsoluteRight",get:function(){return this._isAbsRight},set:function(t){this._isAbsRight!==t&&(this._isAbsRight=t,this._autoChangedValue(32,this._isAbsRight))}},{key:"isAbsoluteHorizontalCenter",get:function(){return this._isAbsHorizontalCenter},set:function(t){this._isAbsHorizontalCenter!==t&&(this._isAbsHorizontalCenter=t,this._autoChangedValue(16,this._isAbsHorizontalCenter))}},{key:"isAbsoluteVerticalCenter",get:function(){return this._isAbsVerticalCenter},set:function(t){this._isAbsVerticalCenter!==t&&(this._isAbsVerticalCenter=t,this._autoChangedValue(2,this._isAbsVerticalCenter))}},{key:"alignMode",get:function(){return this._alignMode},set:function(t){this._alignMode=t,this._recursiveDirty()}},{key:"alignFlags",get:function(){return this._alignFlags},set:function(t){this._alignFlags!==t&&(this._alignFlags=t,this._recursiveDirty())}}]),e}(dg),PQt.AlignMode=FQt,v((fQt=PQt).prototype,"target",[uQt],Object.getOwnPropertyDescriptor(fQt.prototype,"target"),fQt.prototype),v(fQt.prototype,"alignMode",[lQt],Object.getOwnPropertyDescriptor(fQt.prototype,"alignMode"),fQt.prototype),_Qt=Vh(fQt.prototype,"_alignFlags",[hu],(function(){return 0})),dQt=Vh(fQt.prototype,"_target",[hu],(function(){return null})),pQt=Vh(fQt.prototype,"_left",[hu],(function(){return 0})),mQt=Vh(fQt.prototype,"_right",[hu],(function(){return 0})),gQt=Vh(fQt.prototype,"_top",[hu],(function(){return 0})),yQt=Vh(fQt.prototype,"_bottom",[hu],(function(){return 0})),vQt=Vh(fQt.prototype,"_horizontalCenter",[hu],(function(){return 0})),bQt=Vh(fQt.prototype,"_verticalCenter",[hu],(function(){return 0})),SQt=Vh(fQt.prototype,"_isAbsLeft",[hu],(function(){return!0})),xQt=Vh(fQt.prototype,"_isAbsRight",[hu],(function(){return!0})),wQt=Vh(fQt.prototype,"_isAbsTop",[hu],(function(){return!0})),TQt=Vh(fQt.prototype,"_isAbsBottom",[hu],(function(){return!0})),AQt=Vh(fQt.prototype,"_isAbsHorizontalCenter",[hu],(function(){return!0})),CQt=Vh(fQt.prototype,"_isAbsVerticalCenter",[hu],(function(){return!0})),DQt=Vh(fQt.prototype,"_originalWidth",[hu],(function(){return 0})),BQt=Vh(fQt.prototype,"_originalHeight",[hu],(function(){return 0})),IQt=Vh(fQt.prototype,"_alignMode",[hu],(function(){return 2})),MQt=Vh(fQt.prototype,"_lockFlags",[hu,lu],(function(){return 0})),cQt=fQt))||cQt)||cQt)||cQt));T.internal.computeInverseTransForTarget=RQt,T.internal.getReadonlyNodeSize=kQt,T.Widget=JQt;var QQt=new lr,ZQt={HORIZONTAL:0,VERTICAL:1};ke(ZQt);var $Qt,tZt,eZt,iZt,nZt,rZt,sZt,aZt,oZt,hZt,uZt,lZt,cZt,fZt,_Zt,dZt,pZt,mZt,gZt,yZt,vZt,bZt,SZt,xZt,wZt=t("h4",(LQt=Kh("cc.PageViewIndicator"),NQt=Qh(110),VQt=Eu($k),zQt=Eu(ZQt),UQt=Eu(ps),LQt(GQt=NQt((YQt=function(t){function e(){var e;return(e=t.call(this)||this).spacing=WQt&&WQt(),e._spriteFrame=jQt&&jQt(),e._direction=qQt&&qQt(),e._cellSize=XQt&&XQt(),e._layout=null,e._pageView=null,e._indicators=[],e}s(e,t);var i=e.prototype;return i.onLoad=function(){this._updateLayout()},i.setPageView=function(t){this._pageView=t,this._refresh()},i._updateLayout=function(){this._layout=this.getComponent(bKt),this._layout||(this._layout=this.addComponent(bKt));var t=this._layout;0===this.direction?(t.type=1,t.spacingX=this.spacing):1===this.direction&&(t.type=2,t.spacingY=this.spacing),t.resizeMode=1},i._createIndicator=function(){var t=new Qv;t.layer=this.node.layer;var e=t.addComponent(NN);return e.spriteFrame=this.spriteFrame,e.sizeMode=0,t.parent=this.node,t._getUITransformComp().setContentSize(this._cellSize),t},i._changedState=function(){var t=this._indicators;if(0!==t.length&&this._pageView){var e=this._pageView.curPageIdx;if(!(e>=t.length)){for(var i=0;it.length)for(i=0;i0;--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()}}},n(e,[{key:"spriteFrame",get:function(){return this._spriteFrame},set:function(t){this._spriteFrame!==t&&(this._spriteFrame=t)}},{key:"direction",get:function(){return this._direction},set:function(t){this._direction!==t&&(this._direction=t)}},{key:"cellSize",get:function(){return this._cellSize},set:function(t){this._cellSize!==t&&(this._cellSize=t)}}]),e}(dg),YQt.Direction=ZQt,v((HQt=YQt).prototype,"spriteFrame",[VQt],Object.getOwnPropertyDescriptor(HQt.prototype,"spriteFrame"),HQt.prototype),v(HQt.prototype,"direction",[zQt],Object.getOwnPropertyDescriptor(HQt.prototype,"direction"),HQt.prototype),v(HQt.prototype,"cellSize",[UQt],Object.getOwnPropertyDescriptor(HQt.prototype,"cellSize"),HQt.prototype),WQt=Vh(HQt.prototype,"spacing",[hu],(function(){return 0})),jQt=Vh(HQt.prototype,"_spriteFrame",[hu],(function(){return null})),qQt=Vh(HQt.prototype,"_direction",[hu],(function(){return 0})),XQt=Vh(HQt.prototype,"_cellSize",[hu],(function(){return new ps(20,20)})),GQt=HQt))||GQt)||GQt));A.PageViewIndicator=wZt;var TZt=new _s,AZt={Unified:0,Free:1};ke(AZt);var CZt={HORIZONTAL:0,VERTICAL:1};ke(CZt);var DZt=t("h3",($Qt=Kh("cc.PageView"),tZt=Qh(110),eZt=Eu(AZt),iZt=Eu(CZt),nZt=Eu(wZt),rZt=Eu(WKt),sZt=Eu(WKt),aZt=Eu([fg]),oZt=Eu([fg]),$Qt(hZt=tZt((xZt=function(t){function e(){var e;return(e=t.call(this)||this).autoPageTurningThreshold=lZt&&lZt(),e.horizontal=cZt&&cZt(),e.vertical=fZt&&fZt(),e.cancelInnerEvents=_Zt&&_Zt(),e.scrollEvents=dZt&&dZt(),e.pageTurningSpeed=pZt&&pZt(),e.pageEvents=mZt&&mZt(),e._sizeMode=gZt&&gZt(),e._direction=yZt&&yZt(),e._scrollThreshold=vZt&&vZt(),e._pageTurningEventTiming=bZt&&bZt(),e._indicator=SZt&&SZt(),e._curPageIdx=0,e._lastPageIdx=0,e._pages=[],e._initContentPos=ir(),e._scrollCenterOffsetX=[],e._scrollCenterOffsetY=[],e._touchBeganPosition=ds(),e._touchEndPosition=ds(),e}s(e,t);var i=e.prototype;return i.onEnable=function(){t.prototype.onEnable.call(this),this.node.on("size-changed",this._updateAllPagesSize,this),this.node.on(e.EventType.SCROLL_ENG_WITH_THRESHOLD,this._dispatchPageTurningEvent,this)},i.onDisable=function(){t.prototype.onDisable.call(this),this.node.off("size-changed",this._updateAllPagesSize,this),this.node.off(e.EventType.SCROLL_ENG_WITH_THRESHOLD,this._dispatchPageTurningEvent,this)},i.onLoad=function(){this._initPages(),this.indicator&&this.indicator.setPageView(this)},i.getCurrentPageIndex=function(){return this._curPageIdx},i.setCurrentPageIndex=function(t){this.scrollToPage(t,1)},i.getPages=function(){return this._pages},i.addPage=function(t){t&&-1===this._pages.indexOf(t)&&this.content&&(t._getUITransformComp()?(this.content.addChild(t),this._pages.push(t),this._updatePageView()):et(4301))},i.insertPage=function(t,e){if(!(e<0)&&t&&-1===this._pages.indexOf(t)&&this.content)if(e>=this._pages.length)this.addPage(t);else{if(!t._getUITransformComp())return void et(4301);this._pages.splice(e,0,t),this.content.insertChild(t,e),this._updatePageView()}},i.removePage=function(t){if(t&&this.content){var e=this._pages.indexOf(t);-1!==e?this.removePageAtIndex(e):st(4300,t.name)}},i.removePageAtIndex=function(t){var e=this._pages;if(!(t<0||t>=e.length)){var i=e[t];i&&this.content&&(this.content.removeChild(i),e.splice(t,1),this._updatePageView())}},i.removeAllPages=function(){if(this.content){for(var t=this._pages,e=0,i=t.length;e=this._pages.length||(this._curPageIdx=t,this.scrollToOffset(this._moveOffsetValue(t),e,!0),this.indicator&&this.indicator._changedState())},i.getScrollEndedEventTiming=function(){return this.pageTurningEventTiming},i._updatePageView=function(){if(this.content){var t=this.content.getComponent(bKt);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,n=0;n0){var i=this._pages[0]._getUITransformComp(),n=this._pages[this._pages.length-1]._getUITransformComp();0===this.direction?(e.paddingLeft=(t.width-i.width)/2,e.paddingRight=(t.width-n.width)/2):1===this.direction&&(e.paddingTop=(t.height-i.height)/2,e.paddingBottom=(t.height-n.height)/2)}e.updateLayout()}}},i._initPages=function(){if(this.content){this._initContentPos=this.content.position;for(var t=this.content.children,e=0;e=0||this._pages.push(i)}this._syncScrollDirection(),this._syncSizeMode(),this._updatePageView()}},i._dispatchPageTurningEvent=function(){this._lastPageIdx!==this._curPageIdx&&(this._lastPageIdx=this._curPageIdx,fg.emitEvents(this.pageEvents,this,"page-turning"),this.node.emit("page-turning",this))},i._isQuicklyScrollable=function(t){if(0===this.direction){if(Math.abs(t.x)>this.autoPageTurningThreshold)return!0}else if(1===this.direction&&Math.abs(t.y)>this.autoPageTurningThreshold)return!0;return!1},i._moveOffsetValue=function(t){var e=new _s;if(1===this._sizeMode)0===this.direction?e.x=this._scrollCenterOffsetX[t]:1===this.direction&&(e.y=this._scrollCenterOffsetY[t]);else{var i=this.view;if(!i)return e;0===this.direction?e.x=t*i.width:1===this.direction&&(e.y=t*i.height)}return e},i._getDragDirection=function(t){return 0===this._direction?0===t.x?0:t.x>0?1:-1:0===t.y?0:t.y<0?1:-1},i._isScrollable=function(t,e,i){if(1===this._sizeMode){var n=0,r=0;if(0===this.direction)return n=this._scrollCenterOffsetX[e],r=this._scrollCenterOffsetX[i],Math.abs(t.x)>=Math.abs(n-r)*this.scrollThreshold;if(1===this.direction)return n=this._scrollCenterOffsetY[e],r=this._scrollCenterOffsetY[i],Math.abs(t.y)>=Math.abs(n-r)*this.scrollThreshold}else{var s=this.view;if(!s)return!1;if(0===this.direction)return Math.abs(t.x)>=s.width*this.scrollThreshold;if(1===this.direction)return Math.abs(t.y)>=s.height*this.scrollThreshold}return!1},i._autoScrollToPage=function(){if(this._startBounceBackIfNeeded()){var t=this._getHowMuchOutOfBoundary();this._clampDelta(t),(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=new _s;_s.subtract(e,this._touchBeganPosition,this._touchEndPosition);var i=this._curPageIdx,n=i+this._getDragDirection(e),r=this.pageTurningSpeed*Math.abs(i-n);if(n1e-10?e:t}var n=t.node,r=n.parent;if(r){var s=EZt;s.set(0,0);var a=OZt;if(a.set(1,1),t.target&&RQt(n,r=t.target,s,a),!e)return;var o=r._uiProps&&r._getUITransformComp(),h=o?o.anchorPoint:IZt,u=n._getUITransformComp(),l=kQt(r),c=u.anchorPoint,f=n.position,_=KQt,d=n.scale,p=0;if(e&_.LEFT){var m=-h.x*l.width;m+=s.x,m*=a.x,p=f.x-c.x*u.width*Math.abs(d.x)-m,t.isAbsoluteLeft||(p/=l.width),p/=a.x,t.left=i(t.left,p)}if(e&_.RIGHT){var g=(1-h.x)*l.width;g+=s.x,p=(g*=a.x)-(f.x+(1-c.x)*u.width*Math.abs(d.x)),t.isAbsoluteRight||(p/=l.width),p/=a.x,t.right=i(t.right,p)}if(e&_.TOP){var y=(1-h.y)*l.height;y+=s.y,p=(y*=a.y)-(f.y+(1-c.y)*u.height*Math.abs(d.y)),t.isAbsoluteTop||(p/=l.height),p/=a.y,t.top=i(t.top,p)}if(e&_.BOT){var v=-h.y*l.height;v+=s.y,v*=a.y,p=f.y-c.y*u.height*Math.abs(d.y)-v,t.isAbsoluteBottom||(p/=l.height),p/=a.y,t.bottom=i(t.bottom,p)}}},updateAlignment:function t(e){var i=e.parent;i&&Qv.isNode(i)&&t(i);var n=e.getComponent(JQt);n&&i&&kZt(e,n)},AlignMode:FQt,AlignFlags:KQt});WE.on("director_init",(function(){UZt.init()}));var GZt,HZt,WZt,jZt,qZt,XZt,YZt,KZt,JZt,QZt,ZZt,$Zt,t$t=t("h5",Kh("cc.SafeArea")(LZt=Qh(110)(LZt=Jh(JQt)((NZt=function(t){function e(){var e;return(e=t.call(this)||this)._symmetric=VZt&&VZt(),e}s(e,t);var i=e.prototype;return i.onEnable=function(){this.updateArea(),rh.on("window-resize",this.updateArea,this),rh.on("orientation-change",this.updateArea,this)},i.onDisable=function(){rh.off("window-resize",this.updateArea,this),rh.off("orientation-change",this.updateArea,this)},i.updateArea=function(){var t=this.node.getComponent(JQt),e=this.node.getComponent(aL);if(t&&e){t.updateAlignment();var i=this.node.position.clone(),n=e.anchorPoint.clone();t.isAlignTop=t.isAlignBottom=t.isAlignLeft=t.isAlignRight=!0;var r=FO.getVisibleSize(),s=r.width,a=r.height,o=oh.getSafeAreaRect(this._symmetric);t.top=a-o.y-o.height,t.bottom=o.y,t.left=o.x,t.right=s-o.x-o.width,t.updateAlignment();var h=this.node.position.clone(),u=n.x-(h.x-i.x)/e.width,l=n.y-(h.y-i.y)/e.height;e.setAnchorPoint(u,l),UZt.add(t)}},n(e,[{key:"symmetric",get:function(){return this._symmetric},set:function(t){this._symmetric=t}}]),e}(dg),VZt=Vh(NZt.prototype,"_symmetric",[hu],(function(){return!0})),LZt=NZt))||LZt)||LZt)||LZt);A.SafeArea=t$t;var e$t,i$t=t("h6",(GZt=Kh("cc.UICoordinateTracker"),HZt=Qh(110),WZt=Eu(Qv),jZt=Eu(Zz),qZt=Eu([fg]),GZt(XZt=HZt((YZt=function(t){function e(){var e;return(e=t.call(this)||this).syncEvents=KZt&&KZt(),e._target=JZt&&JZt(),e._camera=QZt&&QZt(),e._useScale=ZZt&&ZZt(),e._distance=$Zt&&$Zt(),e._transformPos=ir(),e._viewPos=ir(),e._canMove=!0,e._lastWPos=ir(),e._lastCameraPos=ir(),e}s(e,t);var i=e.prototype;return i.onEnable=function(){this._checkCanMove()},i.update=function(){var t=this.node.worldPosition,e=this._camera;if(this._canMove&&e&&e.camera&&(!this._lastWPos.equals(t)||!this._lastCameraPos.equals(e.node.worldPosition))&&(this._lastWPos.set(t),this._lastCameraPos.set(e.node.worldPosition),e.camera.update(),e.convertToUINode(t,this._target,this._transformPos),this._useScale&&er.transformMat4(this._viewPos,this.node.worldPosition,e.camera.matView),this.syncEvents.length>0)){var i=this._distance/Math.abs(this._viewPos.z);fg.emitEvents(this.syncEvents,this._transformPos,i)}},i._checkCanMove=function(){this._canMove=!(!this._camera||!this._target)},n(e,[{key:"target",get:function(){return this._target},set:function(t){this._target!==t&&(this._target=t,this._checkCanMove())}},{key:"camera",get:function(){return this._camera},set:function(t){this._camera!==t&&(this._camera=t,this._checkCanMove())}},{key:"useScale",get:function(){return this._useScale},set:function(t){this._useScale!==t&&(this._useScale=t)}},{key:"distance",get:function(){return this._distance},set:function(t){this._distance!==t&&(this._distance=t)}}]),e}(dg),v(YZt.prototype,"target",[WZt],Object.getOwnPropertyDescriptor(YZt.prototype,"target"),YZt.prototype),v(YZt.prototype,"camera",[jZt],Object.getOwnPropertyDescriptor(YZt.prototype,"camera"),YZt.prototype),KZt=Vh(YZt.prototype,"syncEvents",[qZt,hu],(function(){return[]})),JZt=Vh(YZt.prototype,"_target",[hu],(function(){return null})),QZt=Vh(YZt.prototype,"_camera",[hu],(function(){return null})),ZZt=Vh(YZt.prototype,"_useScale",[hu],(function(){return!0})),$Zt=Vh(YZt.prototype,"_distance",[hu],(function(){return 1})),XZt=YZt))||XZt)||XZt)),n$t=["touch-start","touch-end","touch-move","mouse-down","mouse-move","mouse-up","mouse-enter","mouse-leave","mouse-wheel"];function r$t(t){t.propagationStopped=!0}var s$t,a$t,o$t,h$t,u$t,l$t=t("h7",Kh("cc.BlockInputEvents")(e$t=function(t){function e(){return t.apply(this,arguments)||this}s(e,t);var i=e.prototype;return i.onEnable=function(){for(var t=0;tn?n:i;e.width*=r,e.height*=r;var s=FO.getViewportRect(),a=e.getBoundingBoxToWorld(),o=FO.getVisibleSize(),h=rh.devicePixelRatio,u=(s.width*(a.x/o.width)+s.x)/h,l=(s.height*(a.y/o.height)+s.y)/h,c=s.width*(a.width/o.width)/h,f=s.height*(a.height/o.height)/h;this._openDataContext.postMessage({fromEngine:!0,type:"engine",event:"viewport",x:u,y:l,width:c,height:f})}},i._updateSubContextTexture=function(){var t=this._imageAsset;if(t&&this._openDataContext&&!(t.width<=0||t.height<=0)){var e=this._openDataContext.canvas;t.reset(e),(e.width>t.width||e.height>t.height)&&this._texture.create(e.width,e.height),this._texture.uploadData(e)}},i._registerNodeEvent=function(){this.node.on("transform-changed",this._updateSubContextView,this),this.node.on("size-changed",this._updateSubContextView,this),this.node.on("layer-changed",this._updateContentLayer,this)},i._unregisterNodeEvent=function(){this.node.off("transform-changed",this._updateSubContextView,this),this.node.off("size-changed",this._updateSubContextView,this),this.node.off("layer-changed",this._updateContentLayer,this)},i._updateContentLayer=function(){this._content.layer=this.node.layer},i.update=function(t){void 0===t?this._updateSubContextTexture():performance.now()-this._updatedTime>=this._updateInterval&&(this._updatedTime+=this._updateInterval,this._updateSubContextTexture())},i.onDestroy=function(){this._content.destroy(),this._texture.destroy(),this._sprite&&this._sprite.destroy(),this._imageAsset.destroy(),this._openDataContext=null},n(e,[{key:"designResolutionSize",get:function(){return this._designResolutionSize},set:function(){}},{key:"fps",get:function(){return this._fps},set:function(t){this._fps!==t&&(this._fps=t,this._updateInterval=1e3/t)}}]),e}(dg),o$t=Vh(a$t.prototype,"_fps",[hu],(function(){return 60})),h$t=Vh(a$t.prototype,"_designResolutionSize",[hu],(function(){return new ps(640,960)})),s$t=a$t))||s$t)||s$t)||s$t);A.SubContextView=c$t,Ct({ButtonComponent:{newName:"Button",since:"1.2.0",removed:!1},EditBoxComponent:{newName:"EditBox",since:"1.2.0",removed:!1},LayoutComponent:{newName:"Layout",since:"1.2.0",removed:!1},ProgressBarComponent:{newName:"ProgressBar",since:"1.2.0",removed:!1},ScrollViewComponent:{newName:"ScrollView",since:"1.2.0",removed:!1},ScrollBarComponent:{newName:"ScrollBar",since:"1.2.0",removed:!1},SliderComponent:{newName:"Slider",since:"1.2.0",removed:!1},ToggleComponent:{newName:"Toggle",since:"1.2.0",removed:!1},ToggleContainerComponent:{newName:"ToggleContainer",since:"1.2.0",removed:!1},WidgetComponent:{newName:"Widget",since:"1.2.0",removed:!1},PageViewComponent:{newName:"PageView",since:"1.2.0",removed:!1},PageViewIndicatorComponent:{newName:"PageViewIndicator",since:"1.2.0",removed:!1},SafeAreaComponent:{newName:"SafeArea",since:"1.2.0",removed:!1},UICoordinateTrackerComponent:{newName:"UICoordinateTracker",since:"1.2.0",removed:!1},BlockInputEventsComponent:{newName:"BlockInputEvents",since:"1.2.0",removed:!1}});var f$t,_$t,d$t,p$t,m$t,g$t,y$t,v$t=t("hd",Kh("cc.UIReorderComponent")(u$t=function(){st(1408,"UIReorderComponent")})||u$t);A.UIReorderComponent=v$t,A.ButtonComponent=LXt,ue(LXt,"cc.ButtonComponent"),A.EditBoxComponent=$Yt,ue($Yt,"cc.EditBoxComponent"),A.LayoutComponent=bKt,ue(bKt,"cc.LayoutComponent"),A.ProgressBarComponent=RKt,ue(RKt,"cc.ProgressBarComponent"),A.ScrollViewComponent=FJt,ue(FJt,"cc.ScrollViewComponent"),A.ScrollBarComponent=WKt,ue(WKt,"cc.ScrollBarComponent"),A.SliderComponent=JJt,ue(JJt,"cc.SliderComponent"),A.ToggleComponent=sQt,ue(sQt,"cc.ToggleComponent"),A.ToggleContainerComponent=EQt,ue(EQt,"cc.ToggleContainerComponent"),A.WidgetComponent=JQt,ue(JQt,"cc.WidgetComponent"),A.PageViewComponent=DZt,ue(DZt,"cc.PageViewComponent"),A.PageViewIndicatorComponent=wZt,ue(wZt,"cc.PageViewIndicatorComponent"),A.SafeAreaComponent=t$t,ue(t$t,"cc.SafeAreaComponent"),ue(i$t,"cc.UICoordinateTrackerComponent"),A.BlockInputEventsComponent=l$t,ue(l$t,"cc.BlockInputEventsComponent"),pt(AO.prototype,"View.prototype",[{name:"isAntiAliasEnabled",suggest:"The API of Texture2d have been largely modified, no alternative"},{name:"enableAntiAlias",suggest:"The API of Texture2d have been largely modified, no alternative"}]),mt(AO.prototype,"View.prototype",[{name:"adjustViewportMeta"},{name:"enableAutoFullScreen",suggest:"use screen.requestFullScreen() instead."},{name:"isAutoFullScreenEnabled"},{name:"setCanvasSize",suggest:"setting size in CSS pixels is not recommended, please use screen.windowSize instead."},{name:"getCanvasSize",suggest:"please use screen.windowSize instead."},{name:"getFrameSize",suggest:"getting size in CSS pixels is not recommended, please use screen.windowSize instead."},{name:"setFrameSize",suggest:"setting size in CSS pixels is not recommended, please use screen.windowSize instead."},{name:"getDevicePixelRatio",suggest:"use screen.devicePixelRatio instead."},{name:"convertToLocationInView"},{name:"enableRetina"},{name:"isRetinaEnabled"},{name:"setRealPixelResolution"}]);var b$t,S$t,x$t,w$t=ds(),T$t=t("he",(f$t=Kh("cc.UISkew"),_$t=Eu(ci),d$t=Eu(_s),f$t(p$t=Zh((m$t=function(t){function e(){var e;return(e=t.call(this)||this)._skew=g$t&&g$t(),e._rotational=y$t&&y$t(),e._skewEnabled=!1,e}s(e,t);var i=e.prototype;return i.isSkewEnabled=function(){return this._skewEnabled},i.__preload=function(){this.node._uiProps._uiSkewComp=this},i.onEnable=function(){this._skewEnabled=!0,Qv._incSkewCompCount(),this._syncNative(!0),this._updateNodeTransformFlags()},i.onDisable=function(){this._skewEnabled=!1,Qv._decSkewCompCount(),this._syncNative(!1),this._updateNodeTransformFlags()},i.onDestroy=function(){this._skewEnabled=!1,this._syncNative(!1),this.node._uiProps._uiSkewComp=null,this._updateNodeTransformFlags()},i._syncNative=function(){},i.setSkew=function(t,e){var i=this._skew;"number"==typeof t?w$t.set(t,e):_s.copy(w$t,t),_s.equals(i,w$t)||(i.set(w$t),this._skewEnabled&&this._updateNodeTransformFlags())},i.getSkew=function(t){return t||(t=new _s),t.set(this._skew)},i._updateNodeTransformFlags=function(){var t=this.node;t.invalidateChildren(8),1&t._eventMask&&t.emit("transform-changed",8)},n(e,[{key:"rotational",get:function(){return this._rotational},set:function(t){this._rotational=t,this._skewEnabled&&this._updateNodeTransformFlags()}},{key:"x",get:function(){return this._skew.x},set:function(t){this._skew.x=t,this._skewEnabled&&this._updateNodeTransformFlags()}},{key:"y",get:function(){return this._skew.y},set:function(t){this._skew.y=t,this._skewEnabled&&this._updateNodeTransformFlags()}},{key:"skew",get:function(){return this._skew},set:function(t){this.setSkew(t)}}]),e}(dg),g$t=Vh(m$t.prototype,"_skew",[hu],(function(){return ds()})),y$t=Vh(m$t.prototype,"_rotational",[hu],(function(){return!1})),v(m$t.prototype,"rotational",[_$t],Object.getOwnPropertyDescriptor(m$t.prototype,"rotational"),m$t.prototype),v(m$t.prototype,"skew",[d$t],Object.getOwnPropertyDescriptor(m$t.prototype,"skew"),m$t.prototype),p$t=m$t))||p$t)||p$t));T.UISkew=T$t;var A$t=t("hf",Kh("cc.VideoClip")((S$t=function(t){function e(){var e;return(e=t.call(this)||this)._duration=x$t&&x$t(),e._video=null,e}return s(e,t),n(e,[{key:"_nativeAsset",get:function(){return this._video},set:function(t){this._video=t,this._duration=t?t.duration:0}}]),e}(xm),x$t=Vh(S$t.prototype,"_duration",[hu],(function(){return 0})),b$t=S$t))||b$t),C$t=D.document;function D$t(t,e,i){var n=C$t.createElement("video"),r=C$t.createElement("source");n.appendChild(r);var s=new XMLHttpRequest;s.open("GET",t,!0),s.responseType="blob",s.onload=function(){200===this.status||0===this.status?(r.src=URL.createObjectURL(this.response),i(null,n)):i(new Error(s.status+"(no response)"))},s.onerror=function(){var e="load video failure - "+t;q(e),i(new Error(e))},s.send()}function B$t(t,e,i,n){var r=new A$t;r._nativeUrl=t,r._nativeAsset=e,n(null,r)}Cw.register({".mp4":D$t,".avi":D$t,".mov":D$t,".mpg":D$t,".mpeg":D$t,".rm":D$t,".rmvb":D$t}),Vw.register({".mp4":B$t,".avi":B$t,".mov":B$t,".mpg":B$t,".mpeg":B$t,".rm":B$t,".rmvb":B$t});var I$t=function(){function t(t){var e=this;this._componentEventList=new Map,this._state="none",this._video=null,this._onInterruptedBegin=void 0,this._onInterruptedEnd=void 0,this._interrupted=!1,this._loaded=!1,this._loadedMeta=!1,this._ignorePause=!1,this._fullScreenOnAwake=!1,this._visible=!0,this._playing=!1,this._cachedCurrentTime=-1,this._waitingFullscreen=!1,this._waitingPlay=!1,this._keepAspectRatio=!1,this._component=null,this._uiTrans=null,this._node=null,this._stayOnBottom=!1,this._dirty=!1,this._forceUpdate=!1,this._w=0,this._h=0,this._m00=0,this._m01=0,this._m04=0,this._m05=0,this._m12=0,this._m13=0,this._component=t,this._node=t.node,this._uiTrans=t.node.getComponent(aL),this._onInterruptedBegin=function(){e.video&&"playing"===e._state&&(e.video.pause(),e._interrupted=!0)},this._onInterruptedEnd=function(){e._interrupted&&e.video&&(e.video.play(),e._interrupted=!1)},A.game.on(A.Game.EVENT_PAUSE,this._onInterruptedBegin),A.game.on(A.Game.EVENT_RESUME,this._onInterruptedEnd)}var e=t.prototype;return e.onLoadedMetadata=function(t){this._loadedMeta=!0,this._forceUpdate=!0,this._visible?this.enable():this.disable(),this.dispatchEvent("meta-loaded");var e=t.target;this._keepAspectRatio&&e&&this.syncUITransform(e.videoWidth,e.videoHeight),this.delayedFullScreen(),this.delayedPlay()},e.onCanPlay=function(){this._loaded=!0,this.dispatchEvent("ready-to-play")},e.onPlay=function(){this._playing=!0,this.dispatchEvent("playing")},e.onPlaying=function(){this.dispatchEvent("playing")},e.onPause=function(){this._playing=!1,this._ignorePause?this._ignorePause=!1:this.dispatchEvent("paused")},e.onStoped=function(){this._playing=!1,this._ignorePause=!1,this.dispatchEvent("stopped")},e.onEnded=function(){this._playing=!1,this.dispatchEvent("completed")},e.onClick=function(){this.dispatchEvent("clicked")},e.onError=function(t){this.dispatchEvent("error");var e=t.target;e&&e.error&&Y("Error "+e.error.code+"; details: "+e.error.message)},e.play=function(){this._loadedMeta||this._loaded?this.canPlay():this._waitingPlay=!0},e.delayedPlay=function(){this._waitingPlay&&(this.canPlay(),this._waitingPlay=!1)},e.syncFullScreenOnAwake=function(t){this._fullScreenOnAwake=t,this._loadedMeta||this._loaded?this.canFullScreen(t):this._waitingFullscreen=!0},e.delayedFullScreen=function(){this._waitingFullscreen&&(this.canFullScreen(this._fullScreenOnAwake),this._waitingFullscreen=!1)},e.dispatchEvent=function(t){var e=this._componentEventList.get(t);e&&(this._state=t,e.call(this))},e.syncUITransform=function(t,e){var i=this._uiTrans;i&&(i.width=t,i.height=e)},e.syncCurrentTime=function(){this.video&&-1!==this._cachedCurrentTime&&this.video.currentTime!==this._cachedCurrentTime&&(this.seekTo(this._cachedCurrentTime),this._cachedCurrentTime=-1)},e.destroy=function(){this.removeVideoPlayer(),this._componentEventList.clear(),A.game.off(A.Game.EVENT_PAUSE,this._onInterruptedBegin),A.game.off(A.Game.EVENT_RESUME,this._onInterruptedEnd)},n(t,[{key:"fullScreenOnAwake",get:function(){return this._fullScreenOnAwake}},{key:"loaded",get:function(){return this._loaded}},{key:"componentEventList",get:function(){return this._componentEventList}},{key:"video",get:function(){return this._video}},{key:"state",get:function(){return this._state}},{key:"isPlaying",get:function(){return this._playing}},{key:"UICamera",get:function(){return WE.root.batcher2D.getFirstRenderCamera(this._node)}}]),t}();A.internal.VideoPlayerImpl=I$t;var M$t=D.document,P$t=-Math.pow(2,15),E$t=Zr(),O$t=function(t){function e(e){var i;return(i=t.call(this,e)||this)._eventList=new Map,i._clearColorA=-1,i._clearFlag=void 0,i}s(e,t);var i=e.prototype;return i.addListener=function(t,e){this._video&&(this._eventList.set(t,e),this._video.addEventListener(t,e))},i.removeAllListeners=function(){var t=this;this._eventList.forEach((function(e,i){t._video&&t._video.removeEventListener(i,e)})),this._eventList.clear()},i.canPlay=function(){var t=this;if(this.video){var e=this.video.play();D.Promise&&e instanceof Promise&&e.catch((function(){})).then((function(){t.syncCurrentTime()}))}},i.pause=function(){this.video&&(this.video.pause(),this._cachedCurrentTime=this.video.currentTime)},i.resume=function(){this.play()},i.stop=function(){var t=this;this.video&&(this._ignorePause=!0,this.video.currentTime=0,this.video.pause(),this._cachedCurrentTime=0,setTimeout((function(){t._ignorePause=!1,t.dispatchEvent("stopped")}),0))},i.syncClip=function(t){this.removeVideoPlayer(),t&&this.createVideoPlayer(t.nativeUrl)},i.syncURL=function(t){this.removeVideoPlayer(),t&&this.createVideoPlayer(t)},i.syncPlaybackRate=function(t){oh.browserType!==Io.UC?this.video&&(this.video.playbackRate=t):X("playbackRate is not supported by the uc mobile browser.")},i.syncVolume=function(t){this.video&&(this.video.volume=t)},i.syncMute=function(t){this.video&&(this.video.muted=t)},i.syncLoop=function(t){this.video&&(this.video.loop=t)},i.getDuration=function(){return this.video?this.video.duration:0},i.getCurrentTime=function(){return this.video?this.video.currentTime:-1},i.seekTo=function(t){this.video&&(this.video.currentTime=t,this._cachedCurrentTime=this.video.currentTime)},i.canFullScreen=function(t){var e=this,i=this._video;if(i&&4===i.readyState)return oh.os===Eo.IOS&&oh.isBrowser?(t?i.webkitEnterFullscreen&&i.webkitEnterFullscreen():i.webkitExitFullscreen&&i.webkitExitFullscreen(),void(this._fullScreenOnAwake=i.webkitDisplayingFullscreen)):ah.supportsFullScreen?void(t?(oh.browserType===Io.IE&&(i.style.transform=""),i.setAttribute("x5-video-player-fullscreen","true"),ah.requestFullScreen(i,(function(t){var n=oh.browserType===Io.IE?t.msFullscreenElement:t.fullscreenElement;e._fullScreenOnAwake=n===i}),(function(){e._fullScreenOnAwake=!1}))):(i.removeAttribute("x5-video-player-fullscreen"),ah.exitFullScreen())):(this._fullScreenOnAwake=t,this._forceUpdate=!0,void this.syncMatrix())},i.syncStayOnBottom=function(t){this._video&&(this._video.style["z-index"]=t?P$t:0,this._stayOnBottom=t),this._dirty=!0},i.syncKeepAspectRatio=function(t){this._keepAspectRatio=t,t&&this._loadedMeta&&this._video&&this.syncUITransform(this._video.videoWidth,this._video.videoHeight)},i.removeVideoPlayer=function(){var t=this._video;t&&Ke(HO.container,t)&&(HO.container.removeChild(t),this.removeAllListeners()),this._cachedCurrentTime=0,this._playing=!1,this._loaded=!1,this._loadedMeta=!1,this._video=null},i.createVideoPlayer=function(t){var e=this._video=M$t.createElement("video");e.className="cocosVideo",e.style.visibility="hidden",e.style.position="absolute",e.style.bottom="0px",e.style.left="0px",e.style["transform-origin"]="0px 100% 0px",e.style["-webkit-transform-origin"]="0px 100% 0px",e.setAttribute("preload","auto"),e.setAttribute("webkit-playsinline",""),e.setAttribute("x5-playsinline",""),e.setAttribute("playsinline",""),this._bindDomEvent(),HO.container.appendChild(e);var i=M$t.createElement("source");e.appendChild(i),i.src=t},i._bindDomEvent=function(){this._video,this.addListener("loadedmetadata",this.onLoadedMetadata.bind(this)),this.addListener("canplay",this.onCanPlay.bind(this)),this.addListener("canplaythrough",this.onCanPlay.bind(this)),this.addListener("play",this.onPlay.bind(this)),this.addListener("playing",this.onPlaying.bind(this)),this.addListener("pause",this.onPause.bind(this)),this.addListener("click",this.onClick.bind(this)),this.addListener("ended",this.onEnded.bind(this)),this.addListener("error",this.onError.bind(this))},i.onCanPlay=function(e){var i=e.target;if(!this._loaded||!i)switch(i.readyState){case 1:case 4:t.prototype.onCanPlay.call(this,e)}},i.enable=function(){if(this._video){if(this._visible=!0,"visible"===this._video.style.visibility)return;this._video.style.visibility="visible"}},i.disable=function(t){if(this._video){if(!t&&this._playing&&this._video.pause(),this._visible=!1,"hidden"===this._video.style.visibility)return;this._video.style.visibility="hidden"}},i.syncMatrix=function(){if(this._video&&this._visible&&this._component){var t=this.UICamera;if(t){this._dirty&&(this._dirty=!1,this._stayOnBottom?(this._clearColorA=t.clearColor.w,this._clearFlag=t.clearFlag,t.clearColor.w=0,t.clearFlag=7):this._clearFlag&&(t.clearColor.w=this._clearColorA,t.clearFlag=this._clearFlag,this._clearColorA=-1,this._clearFlag=null)),this._component.node.getWorldMatrix(E$t),t.update(!0),t.worldMatrixToScreen(E$t,E$t,HO.canvas.width,HO.canvas.height);var e=0,i=0;if(this._fullScreenOnAwake?(e=hh.width,i=hh.height):(e=this._uiTrans.contentSize.width,i=this._uiTrans.contentSize.height),this._forceUpdate||this._m00!==E$t.m00||this._m01!==E$t.m01||this._m04!==E$t.m04||this._m05!==E$t.m05||this._m12!==E$t.m12||this._m13!==E$t.m13||this._w!==e||this._h!==i){this._m00=E$t.m00,this._m01=E$t.m01,this._m04=E$t.m04,this._m05=E$t.m05,this._m12=E$t.m12,this._m13=E$t.m13,this._w=e,this._h=i;var n=rh.devicePixelRatio,r=1/n,s=1/n,a=HO.container,o=E$t.m00*r,h=E$t.m01,u=E$t.m04,l=E$t.m05*s;this._video.style.width=this._w+"px",this._video.style.height=this._h+"px",oh.browserType!==Io.MOBILE_QQ?this._video.style.objectFit=this._keepAspectRatio?"none":"fill":X("keepAspectRatio is not supported by the qq mobile browser.");var c=this._w*r,f=this._h*s,_=this._uiTrans.anchorPoint,d=_.x,p=_.y,m=c*E$t.m00*d,g=f*E$t.m05*p,y=a&&a.style.paddingLeft?parseInt(a.style.paddingLeft):0,v=a&&a.style.paddingBottom?parseInt(a.style.paddingBottom):0,b="matrix("+o+","+-h+","+-u+","+l+","+(E$t.m12*r-m+y)+","+-(E$t.m13*s-g+v)+")";this._video.style.transform=b,this._video.style["-webkit-transform"]=b,oh.browserType!==Io.IE&&(this._forceUpdate=!1)}}}},e}(I$t),k$t=function(){function t(){}return t.getImpl=function(t){return new O$t(t)},t}();A.internal.VideoPlayerImplManager=k$t;var R$t,F$t,L$t,N$t,V$t,z$t,U$t,G$t,H$t,W$t,j$t,q$t,X$t,Y$t,K$t,J$t,Q$t,Z$t,$$t,t0t,e0t,i0t=Pe({REMOTE:0,LOCAL:1}),n0t=t("hg",(R$t=Kh("cc.VideoPlayer"),F$t=Jh(aL),L$t=Eu(A$t),N$t=Eu(i0t),V$t=Eu(A$t),z$t=Eu([fg]),R$t(U$t=F$t((e0t=function(t){function e(){var e;return(e=t.call(this)||this)._resourceType=H$t&&H$t(),e._remoteURL=W$t&&W$t(),e._clip=j$t&&j$t(),e._playOnAwake=q$t&&q$t(),e._volume=X$t&&X$t(),e._mute=Y$t&&Y$t(),e._playbackRate=K$t&&K$t(),e._loop=J$t&&J$t(),e._fullScreenOnAwake=Q$t&&Q$t(),e._stayOnBottom=Z$t&&Z$t(),e._keepAspectRatio=$$t&&$$t(),e._impl=null,e._cachedCurrentTime=0,e.videoPlayerEvent=t0t&&t0t(),e}s(e,t);var i=e.prototype;return i.syncSource=function(){var t=this._impl;t&&(this._resourceType===i0t.REMOTE?t.syncURL(this._remoteURL):t.syncClip(this._clip),this._cachedCurrentTime=0,t.syncLoop(this._loop),t.syncVolume(this._volume),t.syncMute(this._mute),t.seekTo(this._cachedCurrentTime),t.syncPlaybackRate(this._playbackRate),t.syncStayOnBottom(this._stayOnBottom),t.syncKeepAspectRatio(this._keepAspectRatio),t.syncFullScreenOnAwake(this._fullScreenOnAwake))},i.__preload=function(){this._impl=k$t.getImpl(this),this.syncSource();var t=this._impl.componentEventList;t.set("meta-loaded",this.onMetaLoaded.bind(this)),t.set("ready-to-play",this.onReadyToPlay.bind(this)),t.set("playing",this.onPlaying.bind(this)),t.set("paused",this.onPaused.bind(this)),t.set("stopped",this.onStopped.bind(this)),t.set("completed",this.onCompleted.bind(this)),t.set("error",this.onError.bind(this)),t.set("clicked",this.onClicked.bind(this)),this._playOnAwake&&this._impl.loaded&&this.play()},i.onEnable=function(){this._impl&&this._impl.enable()},i.onDisable=function(){this._impl&&this._impl.disable()},i.onDestroy=function(){this._impl&&(this._impl.destroy(),this._impl=null)},i.update=function(){this._impl&&this._impl.syncMatrix()},i.onMetaLoaded=function(){fg.emitEvents(this.videoPlayerEvent,this,"meta-loaded"),this.node.emit("meta-loaded",this)},i.onReadyToPlay=function(){this._playOnAwake&&!this.isPlaying&&this.play(),fg.emitEvents(this.videoPlayerEvent,this,"ready-to-play"),this.node.emit("ready-to-play",this)},i.onPlaying=function(){fg.emitEvents(this.videoPlayerEvent,this,"playing"),this.node.emit("playing",this)},i.onPaused=function(){fg.emitEvents(this.videoPlayerEvent,this,"paused"),this.node.emit("paused",this)},i.onStopped=function(){fg.emitEvents(this.videoPlayerEvent,this,"stopped"),this.node.emit("stopped",this)},i.onCompleted=function(){fg.emitEvents(this.videoPlayerEvent,this,"completed"),this.node.emit("completed",this)},i.onError=function(){fg.emitEvents(this.videoPlayerEvent,this,"error"),this.node.emit("error",this)},i.onClicked=function(){fg.emitEvents(this.videoPlayerEvent,this,"clicked"),this.node.emit("clicked",this)},i.play=function(){this._impl&&this._impl.play()},i.resume=function(){this._impl&&this._impl.resume()},i.pause=function(){this._impl&&this._impl.pause()},i.stop=function(){this._impl&&this._impl.stop()},n(e,[{key:"resourceType",get:function(){return this._resourceType},set:function(t){this._resourceType!==t&&(this._resourceType=t,this.syncSource())}},{key:"remoteURL",get:function(){return this._remoteURL},set:function(t){this._remoteURL!==t&&(this._remoteURL=t,this.syncSource())}},{key:"clip",get:function(){return this._clip},set:function(t){this._clip!==t&&(this._clip=t,this.syncSource())}},{key:"playOnAwake",get:function(){return this._playOnAwake},set:function(t){this._playOnAwake=t}},{key:"playbackRate",get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._impl&&this._impl.syncPlaybackRate(t)}},{key:"volume",get:function(){return this._volume},set:function(t){this._volume=t,this._impl&&this._impl.syncVolume(t)}},{key:"mute",get:function(){return this._mute},set:function(t){this._mute=t,this._impl&&this._impl.syncMute(t)}},{key:"loop",get:function(){return this._loop},set:function(t){this._loop=t,this._impl&&this._impl.syncLoop(t)}},{key:"keepAspectRatio",get:function(){return this._keepAspectRatio},set:function(t){this._keepAspectRatio!==t&&(this._keepAspectRatio=t,this._impl&&this._impl.syncKeepAspectRatio(t))}},{key:"fullScreenOnAwake",get:function(){return this._impl?(this._fullScreenOnAwake=this._impl.fullScreenOnAwake,this._fullScreenOnAwake):this._fullScreenOnAwake},set:function(t){this._fullScreenOnAwake!==t&&(this._fullScreenOnAwake=t,this._impl&&this._impl.syncFullScreenOnAwake(t))}},{key:"stayOnBottom",get:function(){return this._stayOnBottom},set:function(t){this._stayOnBottom!==t&&(this._stayOnBottom=t,this._impl&&this._impl.syncStayOnBottom(t))}},{key:"nativeVideo",get:function(){return this._impl&&this._impl.video||null}},{key:"currentTime",get:function(){return this._impl?this._impl.getCurrentTime():this._cachedCurrentTime},set:function(t){Number.isNaN(t)?X("illegal video time! value:"+t):(t=Zi(t,0,this.duration),this._cachedCurrentTime=t,this._impl&&this._impl.seekTo(t))}},{key:"duration",get:function(){return this._impl?this._impl.getDuration():0}},{key:"state",get:function(){return this._impl?this._impl.state:"none"}},{key:"isPlaying",get:function(){return!!this._impl&&this._impl.isPlaying}}]),e}(dg),e0t.EventType={NONE:"none",PLAYING:"playing",PAUSED:"paused",STOPPED:"stopped",COMPLETED:"completed",META_LOADED:"meta-loaded",READY_TO_PLAY:"ready-to-play",ERROR:"error",CLICKED:"clicked"},e0t.ResourceType=i0t,H$t=Vh((G$t=e0t).prototype,"_resourceType",[hu],(function(){return i0t.LOCAL})),W$t=Vh(G$t.prototype,"_remoteURL",[hu],(function(){return""})),j$t=Vh(G$t.prototype,"_clip",[L$t,hu],(function(){return null})),q$t=Vh(G$t.prototype,"_playOnAwake",[hu],(function(){return!0})),X$t=Vh(G$t.prototype,"_volume",[hu],(function(){return 1})),Y$t=Vh(G$t.prototype,"_mute",[hu],(function(){return!1})),K$t=Vh(G$t.prototype,"_playbackRate",[hu],(function(){return 1})),J$t=Vh(G$t.prototype,"_loop",[hu],(function(){return!1})),Q$t=Vh(G$t.prototype,"_fullScreenOnAwake",[hu],(function(){return!1})),Z$t=Vh(G$t.prototype,"_stayOnBottom",[hu],(function(){return!1})),$$t=Vh(G$t.prototype,"_keepAspectRatio",[hu],(function(){return!0})),v(G$t.prototype,"resourceType",[N$t],Object.getOwnPropertyDescriptor(G$t.prototype,"resourceType"),G$t.prototype),v(G$t.prototype,"clip",[V$t],Object.getOwnPropertyDescriptor(G$t.prototype,"clip"),G$t.prototype),t0t=Vh(G$t.prototype,"videoPlayerEvent",[hu,z$t],(function(){return[]})),U$t=G$t))||U$t)||U$t));A.internal.VideoPlayer=n0t,dt(n0t.prototype,"VideoPlayer.prototype",[{name:"onPasued",newName:"onPaused"}]);var r0t=function(){function t(t){this._componentEventList=new Map,this._state="none",this._wrapper=void 0,this._webview=null,this._loaded=!1,this._forceUpdate=!1,this._component=null,this._uiTrans=null,this._node=null,this._w=0,this._h=0,this._m00=0,this._m01=0,this._m04=0,this._m05=0,this._m12=0,this._m13=0,this._component=t,this._node=t.node,this._uiTrans=t.node.getComponent(aL),this.reset(),this.createWebView()}var e=t.prototype;return e.reset=function(){this._wrapper=null,this._webview=null,this._loaded=!1,this._w=0,this._h=0,this._m00=0,this._m01=0,this._m04=0,this._m05=0,this._m12=0,this._m13=0,this._state="none",this._forceUpdate=!1},e.dispatchEvent=function(t){var e=this._componentEventList.get(t);if(e){this._state=t;for(var i=arguments.length,n=new Array(i>1?i-1:0),r=1;r=0;h--){var u=r.array[h];if(u){var l=u.model;l&&l.enabled&&l.node&&((o&l.node.layer)===l.node.layer||o&l.visFlags)&&l.worldBounds&&l.castShadow?Qa.aabbFrustum(l.worldBounds,s)&&(a.push(u),i.level>3)]+=(o.isCompositeModeEnabled(u)?1:0)*Math.pow(10,l)}r[19]+=(o.lightingWithAlbedo?1:0)*Math.pow(10,6),r[19]+=(o.csmLayerColoration?1:0)*Math.pow(10,7)}},t.updateCameraUBOView=function(t,e,i){var n,r=(i.scene?i.scene:T.director.getScene().renderScene).mainLight,s=t.pipelineSceneData,a=s.ambient,o=s.skybox,h=s.fog,u=s.shadows,l=e,c=i.exposure,f=s.isHDR;if(l[104]=s.shadingScale,l[105]=s.shadingScale,l[106]=1/l[104],l[107]=1/l[105],l[108]=c,l[109]=1/c,l[110]=f?1:0,l[111]=1/RM.standardExposureValue,r){var _=r.shadowEnabled&&u.type===zT.ShadowMap?1:0,d=r.direction;if(V0t.set(d.x,d.y,d.z,_),G0t(l,V0t,112),er.toArray(l,r.color,116),r.useColorTemperature){var p=r.colorTemperatureRGB;l[116]*=p.x,l[117]*=p.y,l[118]*=p.z}l[119]=f?r.illuminance*c:r.illuminance}else V0t.set(0,0,1,0),G0t(l,V0t,112),G0t(l,Ln.ZERO,116);var m=a.skyColor;m.w=f?a.skyIllum*c:a.skyIllum,l[120]=m.x,l[121]=m.y,l[122]=m.z,l[123]=m.w,l[124]=a.groundAlbedo.x,l[125]=a.groundAlbedo.y,l[126]=a.groundAlbedo.z,l[127]=o.envmap?null==(n=o.envmap)?void 0:n.mipmapLevel:1,U0t(l,i.matView,0),U0t(l,i.node.worldMatrix,16),er.toArray(l,i.position,96),U0t(l,i.matProj,32),U0t(l,i.matProjInv,48),U0t(l,i.matViewProj,64),U0t(l,i.matViewProjInv,80),l[99]=this.getCombineSignY(),l[100]=i.surfaceTransform,l[101]=i.cameraUsage,l[102]=Math.cos(en(s.skybox.getRotationAngle())),l[103]=Math.sin(en(s.skybox.getRotationAngle()));var g=h.colorArray;l[128]=g.x,l[129]=g.y,l[130]=g.z,l[131]=g.z,l[132]=h.fogStart,l[133]=h.fogEnd,l[134]=h.fogDensity,l[136]=h.fogTop,l[137]=h.fogRange,l[138]=h.fogAtten,l[140]=i.nearClip,l[141]=i.farClip,l[142]=i.getClipSpaceMinz(),l[144]=s.shadingScale*i.window.width*i.viewport.x,l[145]=s.shadingScale*i.window.height*i.viewport.y,l[146]=s.shadingScale*i.window.width*i.viewport.z,l[147]=s.shadingScale*i.window.height*i.viewport.w},t.getPCFRadius=function(t,e){var i=t.size.x;switch(e.shadowPcf){case UT.HARD:return 0;case UT.SOFT:return 1/(.5*i);case UT.SOFT_2X:return 2/(.5*i);case UT.SOFT_4X:return 3/(.5*i)}return 0},t.updatePlanarNormalAndDistance=function(t,e){er.normalize(z0t,t.normal),e[60]=z0t.x,e[61]=z0t.y,e[62]=z0t.z,e[63]=-t.distance},t.updateShadowUBOView=function(e,i,n,r){var s=e.device,a=r.scene.mainLight,o=e.pipelineSceneData,h=o.shadows,u=o.csmLayers,l=i,c=n,f=o.csmSupported,_=US(s)?0:1;if(a&&h.enabled){if(h.type===zT.ShadowMap){if(a.shadowEnabled){if(a.shadowFixedArea||a.csmLevel===GT.LEVEL_1||!f){var d=u.specialLayer.matShadowView,p=u.specialLayer.matShadowProj,m=u.specialLayer.matShadowViewProj,g=.1,y=0,v=0;a.shadowFixedArea?(g=a.shadowNear,y=a.shadowFar,v=0):(y=u.specialLayer.shadowCameraFar,v=1),U0t(l,d,0),l[36]=p.m10,l[37]=p.m14,l[38]=p.m11,l[39]=p.m15,l[40]=p.m00,l[41]=p.m05,l[42]=1/p.m00,l[43]=1/p.m05,U0t(l,m,16),N0t.set(g,y,0,1-a.shadowSaturation),G0t(l,N0t,44),N0t.set(0,_,a.shadowNormalBias,v),G0t(l,N0t,52)}else{for(var b=this.getPCFRadius(h,a),S=0;S0){var o=a;a=s,s=o}var h=0;switch(t){case 0:h=0,i[h++]=-1,i[h++]=-1,i[h++]=n,i[h++]=a,i[h++]=1,i[h++]=-1,i[h++]=r,i[h++]=a,i[h++]=-1,i[h++]=1,i[h++]=n,i[h++]=s,i[h++]=1,i[h++]=1,i[h++]=r,i[h++]=s;break;case 1:h=0,i[h++]=-1,i[h++]=-1,i[h++]=r,i[h++]=a,i[h++]=1,i[h++]=-1,i[h++]=r,i[h++]=s,i[h++]=-1,i[h++]=1,i[h++]=n,i[h++]=a,i[h++]=1,i[h++]=1,i[h++]=n,i[h++]=s;break;case 2:h=0,i[h++]=-1,i[h++]=-1,i[h++]=n,i[h++]=s,i[h++]=1,i[h++]=-1,i[h++]=r,i[h++]=s,i[h++]=-1,i[h++]=1,i[h++]=n,i[h++]=a,i[h++]=1,i[h++]=1,i[h++]=r,i[h++]=a;break;case 3:h=0,i[h++]=-1,i[h++]=-1,i[h++]=n,i[h++]=s,i[h++]=1,i[h++]=-1,i[h++]=n,i[h++]=a,i[h++]=-1,i[h++]=1,i[h++]=r,i[h++]=s,i[h++]=1,i[h++]=1,i[h++]=r,i[h++]=a}return i},i._createQuadInputAssembler=function(){var t=new XE,e=this._device.createBuffer(new sd(10,3,64,16));if(!e)return t;var i=this._device.createBuffer(new sd(6,1,6,1));if(!i)return t;var n=new Uint8Array(6);n[0]=0,n[1]=1,n[2]=2,n[3]=1,n[4]=3,n[5]=2,i.update(n);var r=new Array(2);r[0]=new xd("a_position",21),r[1]=new xd("a_texCoord",21);var s=this._device.createInputAssembler(new Td(r,[e],i));return t.quadIB=i,t.quadVB=e,t.quadIA=s,t},i.updateQuadVertexData=function(t,e){var i=this._lastUsedRenderArea;if(i.x!==t.x||i.y!==t.y||i.width!==t.width||i.height!==t.height){var n=this._genQuadVertexData(0,t);this._quadVBOffscreen.update(n);var r=this._genQuadVertexData(e.swapchain&&e.swapchain.surfaceTransform||0,t);this._quadVBOnscreen.update(r),i.copy(t)}},i.destroy=function(){for(var e,i,n=0;n>1,r>>1)),t.prefilterFramebuffer=e.createFramebuffer(new kd(t.renderPass,[t.prefiterTex])),n>>=1,r>>=1;for(var s=0;s<6;++s)t.downsampleTexs.push(e.createTexture(new ld(1,20,35,n>>1,r>>1))),t.downsampleFramebuffers[s]=e.createFramebuffer(new kd(t.renderPass,[t.downsampleTexs[s]])),t.upsampleTexs.push(e.createTexture(new ld(1,20,35,n,r))),t.upsampleFramebuffers[s]=e.createFramebuffer(new kd(t.renderPass,[t.upsampleTexs[s]])),n>>=1,r>>=1;t.combineTex=e.createTexture(new ld(1,20,35,this._width,this._height)),t.combineFramebuffer=e.createFramebuffer(new kd(t.renderPass,[t.combineTex])),t.sampler=this.globalDSManager.linearSampler}},i.on=function(t,e,i,n){return this._eventProcessor.on(t,e,i,n)},i.once=function(t,e,i){return this._eventProcessor.once(t,e,i)},i.off=function(t,e,i){this._eventProcessor.off(t,e,i)},i.emit=function(t,e,i,n,r,s){this._eventProcessor.emit(t,e,i,n,r,s)},i.targetOff=function(t){this._eventProcessor.targetOff(t)},i.removeAll=function(t){this._eventProcessor.removeAll(t)},i.hasEventListener=function(t,e,i){return this._eventProcessor.hasEventListener(t,e,i)},n(e,[{key:"tag",get:function(){return this._tag}},{key:"flows",get:function(){return this._flows}},{key:"quadIAOnscreen",get:function(){return this._quadIAOnscreen}},{key:"quadIAOffscreen",get:function(){return this._quadIAOffscreen}},{key:"constantMacros",get:function(){return this._constantMacros}},{key:"macros",get:function(){return this._macros}},{key:"device",get:function(){return this._device}},{key:"globalDSManager",get:function(){return this._globalDSManager}},{key:"descriptorSetLayout",get:function(){return this._globalDSManager.descriptorSetLayout}},{key:"descriptorSet",get:function(){return this._descriptorSet}},{key:"commandBuffers",get:function(){return this._commandBuffers}},{key:"pipelineUBO",get:function(){return this._pipelineUBO}},{key:"pipelineSceneData",get:function(){return this._pipelineSceneData}},{key:"profiler",get:function(){return this._profiler},set:function(t){this._profiler=t}},{key:"geometryRenderer",get:function(){return this._geometryRenderer}},{key:"clusterEnabled",get:function(){return this._clusterEnabled},set:function(t){this._clusterEnabled=t}},{key:"bloomEnabled",get:function(){return this._bloomEnabled},set:function(t){this._bloomEnabled=t}},{key:"shadingScale",get:function(){return this._pipelineSceneData.shadingScale},set:function(t){this._pipelineSceneData.shadingScale!==t&&(this._pipelineSceneData.shadingScale=t,this.emit("attachment-scale-changed",t))}}]),e}(xm),r1t=Vh(n1t.prototype,"_tag",[hu],(function(){return 0})),s1t=Vh(n1t.prototype,"_flows",[e1t,hu],(function(){return[]})),i1t=n1t))||i1t));function f1t(t,e){return t.hash-e.hash||t.depth-e.depth||t.shaderId-e.shaderId}function _1t(t,e){return t.priority-e.priority||t.hash-e.hash||e.depth-t.depth||t.shaderId-e.shaderId}T.RenderPipeline=c1t,mt(c1t.prototype,"RenderPipeline.prototype",[{name:"geometryRenderer",suggest:"please use camera.geometryRenderer instead."}]);var d1t=function(){function t(t){this._passDesc=t,this._passPool=new ho((function(){return{priority:0,hash:0,depth:0,shaderId:0,subModel:null,passIdx:0}}),64),this.queue=new uo(64,this._passDesc.sortFunc)}var e=t.prototype;return e.clear=function(){this.queue.clear(),this._passPool.reset()},e.insertRenderPass=function(t,e,i){var n=t.model.subModels[e],r=n.passes[i],s=n.shaders[i];if(r.blendState.targets[0].blend!==this._passDesc.isTransparent||!(r.phase&this._passDesc.phases))return!1;var a=r.priority<<16|n.priority<<8|i,o=this._passPool.add();return o.priority=t.model.priority,o.hash=a,o.depth=t.depth||0,o.shaderId=s.typedID,o.subModel=n,o.passIdx=i,this.queue.push(o),!0},e.sort=function(){this.queue.sort()},e.recordCommandBuffer=function(t,e,i){for(var n=0;n0)))for(var a=0;athis._lightBufferCount&&(this._firstLightBufferView.destroy(),this._lightBufferCount=cn(a.length),this._lightBuffer.resize(this._lightBufferStride*this._lightBufferCount),this._lightBufferData=new Float32Array(this._lightBufferElementCount*this._lightBufferCount),this._firstLightBufferView=zp.gfxDevice.createBuffer(new ad(this._lightBuffer,0,80)));for(var o=0,h=0;o-1&&this.additiveInstanceQueues.splice(e,1)},i.initialize=function(e){return t.prototype.initialize.call(this,e),e.renderQueues&&(this.renderQueues=e.renderQueues),!0},i.activate=function(e,i){t.prototype.activate.call(this,e,i);for(var n=0;n0?.5*(1-Math.floor(a/2))*h.y:.5*Math.floor(a/2)*h.y,this._renderArea.width=.5*h.x,this._renderArea.height=.5*h.y}break;case 2:this._renderArea.x=0,this._renderArea.y=0,this._renderArea.width=h.x,this._renderArea.height=h.y}var c=this._shadowFrameBuffer.renderPass;s.beginRenderPass(c,this._shadowFrameBuffer,this._renderArea,R3t,t.clearDepth,t.clearStencil),s.bindDescriptorSet(0,r),this._additiveShadowQueue.recordCommandBuffer(o,c,s),s.endRenderPass(),this._isShadowMapCleared=!1}},i.activate=function(e,i){t.prototype.activate.call(this,e,i),this._additiveShadowQueue=new k3t(e),this._isShadowMapCleared=!1},e}($0t),P3t.initInfo={name:"ShadowStage",priority:10,tag:0},M3t=P3t))||M3t),L3t=[],N3t=t("hw",Kh("ShadowFlow")((O3t=function(t){function e(){var e;return(e=t.call(this)||this)._shadowRenderPass=null,e}s(e,t);var i=e.prototype;return i.initialize=function(e){if(t.prototype.initialize.call(this,e),0===this._stages.length){var i=new F3t;i.initialize(F3t.initInfo),this._stages.push(i)}return!0},i.activate=function(e){t.prototype.activate.call(this,e);var i=US(e.device)?0:1;e.macros.CC_SHADOWMAP_FORMAT=i;var n=6===e.device.gfxAPI?1:0;e.macros.CC_SHADOWMAP_USE_LINEAR_DEPTH=n,e.pipelineSceneData.csmSupported=e.device.capabilities.maxFragmentUniformVectors>=99,e.macros.CC_SUPPORT_CASCADED_SHADOW_MAP=e.pipelineSceneData.csmSupported,e.macros.CC_SHADOW_TYPE=0,e.macros.CC_DIR_SHADOW_PCF_TYPE=UT.HARD,e.macros.CC_DIR_LIGHT_SHADOW_TYPE=0,e.macros.CC_CASCADED_LAYERS_TRANSITION=0,e.onGlobalPipelineStateChanged()},i.render=function(t){var e=this._pipeline,i=e.pipelineSceneData.shadows,n=e.pipelineSceneData.csmLayers,r=e.pipelineSceneData.shadowFrameBufferMap,s=n.castShadowObjects,a=this._pipeline.pipelineSceneData.validPunctualLights;if(i.enabled&&i.type===zT.ShadowMap){for(var o=0,h=0;o0){this._renderQueues.forEach(g1t);for(var x=0;x0&&(this._stageDesc||(this._stageDesc=i.createDescriptorSet(new Ld(u.localSetLayout)),this._localUBO=i.createBuffer(new sd(18,1,224,224)),this._stageDesc.bindBuffer(0,this._localUBO)),this._stageDesc.update(),r.bindPipelineState(f),r.bindDescriptorSet(1,u.descriptorSet),r.bindDescriptorSet(2,this._stageDesc),r.bindInputAssembler(c),r.draw(c)),this._uiPhase.render(t,h),FT(i,h,r,e.profiler,t),r.endRenderPass()},e}($0t),A5t.initInfo={name:"PostProcessStage",priority:19,tag:0},w5t=Vh((x5t=A5t).prototype,"_postProcessMaterial",[v5t,hu],(function(){return null})),T5t=Vh(x5t.prototype,"renderQueues",[b5t,hu],(function(){return[]})),S5t=x5t))||S5t)),H5t=function(t){function e(){var e;return(e=t.call(this)||this)._antiAliasing=0,e}s(e,t);var i=e.prototype;return i.updatePipelineSceneData=function(){this.updatePipelinePassInfo()},i.updateBloomPass=function(){if(this._bloomMaterial){var t=this._bloomMaterial.passes[0];t.beginChangeStatesSilently(),t.tryCompile(),t.endChangeStatesSilently();for(var e=0;e<6;++e){var i=this._bloomMaterial.passes[1+e];i.beginChangeStatesSilently(),i.tryCompile(),i.endChangeStatesSilently();var n=this._bloomMaterial.passes[7+e];n.beginChangeStatesSilently(),n.tryCompile(),n.endChangeStatesSilently()}var r=this._bloomMaterial.passes[13];r.beginChangeStatesSilently(),r.tryCompile(),r.endChangeStatesSilently()}},i.updatePostProcessPass=function(){if(this.postprocessMaterial){var t=this.postprocessMaterial.passes[0];t.beginChangeStatesSilently(),t.tryCompile(),t.endChangeStatesSilently()}},i.initPipelinePassInfo=function(){var t=new NT;t._uuid="builtin-deferred-material",t.initialize({effectName:"pipeline/deferred-lighting"});for(var e=0;e>=1,this._renderArea.height>>=1;var i=e.commandBuffers[0],n=e.pipelineSceneData.bloomMaterial.passes[0],r=e.getPipelineRenderData(),s=r.bloom,a=new Float32Array(j5t.COUNT);a[j5t.TEXTURE_SIZE_OFFSET+2]=this.threshold,i.updateBuffer(this._bloomUBO[0],a),i.beginRenderPass(s.renderPass,s.prefilterFramebuffer,this._renderArea,W5t,0,0),i.bindDescriptorSet(0,e.descriptorSet),n.descriptorSet.bindBuffer(0,this._bloomUBO[0]),n.descriptorSet.bindTexture(1,r.outputRenderTargets[0]),n.descriptorSet.bindSampler(1,s.sampler),n.descriptorSet.update(),i.bindDescriptorSet(1,n.descriptorSet);var o=t.window.swapchain?e.quadIAOffscreen:e.quadIAOnscreen,h=null,u=n.getShaderVariant();null!=n&&null!=u&&null!=o&&(h=ST.getOrCreatePipelineState(e.device,n,u,s.renderPass,o)),null!=h&&(i.bindPipelineState(h),i.bindInputAssembler(o),i.draw(o)),i.endRenderPass()},i._downsamplePass=function(t,e){e.generateRenderArea(t,this._renderArea),this._renderArea.width>>=1,this._renderArea.height>>=1;for(var i=e.commandBuffers[0],n=e.pipelineSceneData.bloomMaterial,r=e.getPipelineRenderData().bloom,s=new Float32Array(j5t.COUNT),a=0;a>=1,this._renderArea.height>>=1,i.beginRenderPass(r.renderPass,r.downsampleFramebuffers[a],this._renderArea,W5t,0,0);var o=n.passes[1+a],h=o.getShaderVariant();o.descriptorSet.bindBuffer(0,this._bloomUBO[a+1]),0===a?o.descriptorSet.bindTexture(1,r.prefiterTex):o.descriptorSet.bindTexture(1,r.downsampleTexs[a-1]),o.descriptorSet.bindSampler(1,r.sampler),o.descriptorSet.update(),i.bindDescriptorSet(1,o.descriptorSet);var u=t.window.swapchain?e.quadIAOffscreen:e.quadIAOnscreen,l=null;null!=o&&null!=h&&null!=u&&(l=ST.getOrCreatePipelineState(e.device,o,h,r.renderPass,u)),null!=l&&(i.bindPipelineState(l),i.bindInputAssembler(u),i.draw(u)),i.endRenderPass()}},i._upsamplePass=function(t,e){var i=e.getPipelineRenderData().bloom;e.generateRenderArea(t,this._renderArea),this._renderArea.width>>=this.iterations+1,this._renderArea.height>>=this.iterations+1;for(var n=e.commandBuffers[0],r=e.pipelineSceneData.bloomMaterial,s=new Float32Array(j5t.COUNT),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%0DlzG z8h$m*eunjWn4JPyhS}EOwESsci$g%tbRDL<5`%cS0a)a63p)ZfXnK_fS(@AAP>wCV ztkAkXuB#Tz7<}xDBr^NeyI;|=1|ps*h;3N`_1W_Rc6;2*#@BKsXa0LWvs#x>G$Tsb zGEi_-lehi}UPC7(V+B8&maZR&>AZ<10^at7rfvZjUeG8T+mU@4A5TjS?s52BTBIaD zTRso11$4JVY8~J}A)g>QXmMG4^M@b%9zXT*rsUN^(rqGVH(q1LJYk|lZpKW^0HBj%K z;HBQ(cEE4ejqrYi)^9%2w)6L zr8HeHZNuA_=nxLYV zBGL7$>u9E^l*oA|Jyb&^Ew(sn8X%4&ZD(1YS$K!=NhZ|wIg{vpvzTS7O383M0z$?2 zfn5YUGkr4adU|<48bDmG^vsugkJOP3CM_y*933>^G&=fjBnHzOa=A!}z=;MMQ&t5V zm_QKRAHx*m&`fJ6k6@LE$J(D1+j(2j0P{L^vV95H6V1{eXSxSA;+hiw~p*dPtEXk~O&A^8j#a zU2TWX=G2aH zC$nIC7V=q)G2*bgF1v5~abetBoyu4m+lG!vZ-HmW!EK)uDbx=t^y2K1)dz}(2j(IWdU z*8Y4>aW?83XwDXwyd3lg$&qf^M950Bjpizqck0)6o>INq)%TWBIDR&iqa1%Cx9NYc zouNG>1Z{Zx(LS>uP3>x{v=6f1VDq)1EO^b6Zh{_U7b)zrHhuPwiOw1)MP-ZucNx#7 zMMpzD;^C2~PgHm3cpkPWTXB#4Sjg91n_loh??pKoH@V8Jg9mhILOyT`*f1iB1o=ls zg8V~^3+pu3>sR(3k4C+qUGd1HkRKZDRsFr4`t>FgrA(!QK-ob)Z~Y>DtDt1dBc-iF zEt)hNbR+O>7XrO#RS2OXkDOb=_EN{3AeW-dEHP zO6);n7%?&G3HwuYdQep@N!(q;xp$X73_=u&!@a4=`Xz4;%2r;M!vKud^lIRkq9-(OCMY@qXbbuZb6CD&xqhj{+A>lhCZ9W(U5@M3{0TKI(f*}S1J^TYAP?p-4 zDR2OTB~Z|?odjFFApo{iugr}7=S$Qw=;?eAq!+U#CItsw;6PJWpYqY5Ks)w*k8C4b z183ZQ!t3%Qoe_d-4#7G`-ytVsAc&H)xG6#@(2O-B8;qze<48!58-Z*|?WMWCDuu;# zKTbnZ1EK&r>4X^bMjwZ9t{!G!1&%dJCJbD}@*Mj~zC@G&h!{A??Pk=Rv{c>tBfHeb zuo`u{zsdCx_UZKU5X|n-yg0@lA$>^$B><%@>sB zdph-FgkiqN68Z13XhqWZSelh|tzAso8!S;<BV;D!p%;O zCq(6<`HRbjtvn2rg%273HdwRaO(u-VXof??P}W&(TGcrFAx4@X)2`6~kmWe|g*KXo zc;<(AWYYN>QnpdOVq8YsJY679U!~7!b;*DjkwGA4BZEFFnH^oxo*!3{fgfm31~9;C z4!zKhClXOzAOqXVM17#7%N+C}fzHH>9CfRgSQYr^|Cz!du{&|mH~ZZ;<&E=*1JIxD zl$WvS95%$LIsO=Tz6NDQZ7$L~5ufHJBuQQV>r<8ELmcvhUIC#Q%SWohN2|b!pi$Ae zAa&VIr#jjbiJi=40S?%9+lMx&c8_^Pf_L8FPSYEs_3d~jcVaO(iIF?6p5NfgrY>$= zcu{@#n?C=h>>mWcz8mO)JU4Va>|VJ1$3unC;l>IQV!?T8e_y@Bf73(j;WqE(oJm`1 z_%DxBlzd~ZA8n;7S{5O4`R~N|S=Q;J3h%tZwIis`FHu#Yk>Fq%b_Cmea=#{k5s65< zj#`gr&^MnBEyV3yT{322!e{AZ8UnGhb173Uq=?V6nuGB&e|mq?fjF9lnAs+#oj$dn z*2~6O{W5K(32?4g8M%)*S=iLq=HW=c9u9)>9Yz>XrXa zUKI(s05B#tL!2fs-+zc$d~TuzEtaa&qU{4tn-z2QbuJL7LN^BjOD5=&2?~-An0>Y) z+kzR_Gm0`l%vQ|1lt^ZiCa=dg5^)&_sQK`d@YC3UZ;YGlc8y9M6gewp91i$BJkK0W}Tm#E0>U zk@um_Ws!Pdw#uD}mM9BSn26Pi!No92=uS1bRMZq@+wkFt7<})+@sapOV+Q>N$&B3rCAN6Z|qH!a3Q?x0NAs|SHJ$ht_S6uZ<5rd(1tey+nw zNWGzpR+vrucsze@fl{T)vJY-)`BsQPH+$H=5Luik{w!!O_1hWca(7^Lb$A_)9(&0};3 z0rjpM&McgC1&AmQ476;itnVobO;p7wLVqWeVb9J9ZOpq9c65kF-C@ zwK6JBJjQ@B01PsR?8s!WukuA+b_5?x-*yV}cnB8qmZ;{8Q|qgI!X>hxu$J0a`HbG| zI}MOOnq2`$k93JJbW@#{WJ6^V#w^xAV4oqHQ&vg@j4&sI{K7=zn_@j$O4Aph- zO+>Js!nhwIJc6W~(3DyP%?14FD}+eAI*PH47~^sHH%Hm5Y3e&|0`$$%2Gflad~?*x zQnrP${Sm5eO+}rm*kpx}m4}ZN58DHy^`0%7vG#5tdfbP4$E5@yu>TqLWW2vhUd8DW}O?~JplUpnUV zgozcP?P!Bu{`)W}S!X(r~>&)^%B*fcRnXnRuI|;y))PrIj zG66)mXXpb%W(AIHnGNe6laY-{NS01aa%A9mk{&cinW%xbw5a({k{-tNw1CakC@`u= zV|rTAJc(=B0_5)M6_}pcs@XS56PO+n&yjmzF+D5W{U&J_=bpBtQ#+K~p=Jw2rI{(B zN`5D|lObHzB`Q`0+7h=zgzj)V6n=bz)TVSMqC#>vqO!S-g}Z|4n0h;h+gYs90_JU= z+gXW#3WzH8L=}sudOT4fq8~w2k{`gL39G5+N+?>4r~*m#7)kYrr0gTeKC3Y#wo4)@ zzjZYV2_!`xeLb~HQm}VVQkF1FQc%UAB!$>}I7vwv=qV1L$$WvNSos4<9jc--RgxAP zU6AW2sMt)|f~8dy|KSA1h-el|FfuO1pbPH^S(>4?A6CC@hb$_lbB13Gm=Q1*19Nj% z9MQ43o^0?PJHFr&*}nsuZ-n)72X0W`$iyu+qGn>I9+IK{Emvwt{q6jxjn)4$s4QC9 z>MJip`P$98KJj(!zEGF>;`(C+qL#6>(3oYY4_;t(9lYQvWA)Ua6j16MEpK?sX)B(8 z$BoSoI809LU2M&>i{? zLR9a;jC}SP1kBx@FVtF(ObWn+LFb!nyypfrnZ@TqD(0S|>*d5UCVYer^DT}LPa+J% zzoX3Z6(IVk1ld&>CZwyu{yS}xb+_&#fXDUj}Y3n?u zhp)z(KWRuG`PB9SAzK{{SsR>4fC#f5{%PtB9d3OeU1NlnMLV5FosZ_kl=A)PT01BX zVd*AN#UG8ZD^#(=%pL4y3oYzNRKSZDkEDWS(Q5(}yyAXDC5rpKQ24Rk$5JSy(69Y} z&`s5S;&AaPl=3%K?{vPxTV^Y~^$)5Ls|c&`)==TDP$4!49SE=fgDRX16s?DE=L+Y0Sg zw72KnlVE-mTZ<3^^-s6jRcv2nmOZn4ADgf*Q_Hsp^KFYeYvTN|!wOD4@`A6=_`Vg5 zvb1S3u`Jt^)FU%CVSIFXNVFz13#7VcnU8#)#>-v+t@Xxd^3T)6HqAY!ht@~5npqrQ zToz}c+k8k*Jcm@i$1H9HSbVKn(zSSlL@0dNLz@|r9<1uABPq2-8;eQnSq*R#)*HS3 zcM}>aJ6qHZottIR#D+&ojZ|lgSbVf4H6SLHywJopOUE3xM%Qqf#bV{?B2cs)J-+cf z;`@$>N1D~%Rqsev=sEnEAv$7S&S4rH2FBryIT)A~M!UtcVOH4pvDA^wY##}zkE)J8 zNN-MGb+TIg@9Zl!=F<9vmj=6iodd!n>1X}%JEP`nVy1@8t#(GoA;9xz?S~0H1Ln!d zZm$wDVO(K{jLfX{eyK??Znx*JV|_h2;i9}{vkDpE_&mOlTl%8GKoR0LQv)cNvbJKm zqn33%&xHm!YyKGB>?RKB*h-Fag`?f$g5`r&r*rCr_x0k)c7mK#k5!}I5(y{5ngS=q zngSJBH*HvvGODmN40%-m!%RgE$kAso0h4}XM30pRH{@C?)%+q15?FpKU1psO?@!Vq zujo=%JPSile$Sl2noCAPyj7;BW#(aSg59k>*fOjLS%hPbqOU~i+d@`wx;;d{Cdy{# zrS<_`LD>u_!2s%s2;D6VLBtxj(!hCW$X&RdIq2VL8wh#9s@{s3&Fi1b9xVkG)~1?| zSb1T8;Ge^jcf90cA|ISU4?pfo1!%~6(Ln|A;NKo$Itog#l{yp)Jf_*f!td(hkzl)7 zpfQV^+r=Z%5g(Gb(?zU>=%QY)XfOCZJ*}O|oJWkb;fJfh4ETn_I(6nuEm6EV_72t? zL)GGP!G`VyBEzE(`@2ORjyi72s!n({0xB0kFQL3p+V0WjChoi;yDS>lxmySCvn0rf zoULIoTC+v6)GfoUz|)0uc&7DqsQHjS82-z-5UZBOc7Za0Y!ThjUtpupEpR>-EDmYF zdq@MAtdRm!uaI@1I*E&P?S7H4c*B5SR%Mi^rFP={YQY%OO98F1{pA8IyOgrWcz|W! zGu6p4G1ca%?g$JRbMa=`C7*H=ja$@tW7to5uVjg#t=^96Z0-*UUD%r8q*Y7T4?Q8x z7Q`6LW>1JYe@sL%K-K(l4QNgiio&qI96Wyv*EffZK$dxjq92}j2>yqd`$wZ2L;AmI z6u|njXt~aRm%4S{giP;%AAvBo9L5x}RmY}@AH6Yy7-M>T$cn3Lfl*ri zPF7=9$|ru+7CS-`LuM!?!fj_1I}wX~1fyIIFeHZc72#!1!_ampllK;<{qUTs$5Pdi z)gl+D-7ZAH3|r@4xGZ&wblh5$A7G1g`C9l#s1*H;1^pt?Vh$0bEIl z`&@l6zUUO(=2ajms;`t@&X?DlUQ{y~dl%DD3vUZ9_MH~qi7Rk+h49|F%~M`Ysvb2d z_rBmB#8tTmLwE;!cct$P?ylh865QRv-Gi%gdxN_JO^C{E3+|TSP6qcul$J_A7~K1U ztB>lco&&+%hui#F4+ApgmPN9QsULi)JM9-+zWeKhdye%%0$+RAbw9c42M<5|XNtIQ zZt4L72Vd~rU%cWAFaETp-aR*U|D4qKZ&u;GbCdTF=v3{KcN240r{!A+y#MCwA2cv_ z5xDU!A+VFc?l158)jNL{VA?^%ot@NeKJdURe)y3$tWl#|=9Zl#a4k(VmGa)im<`Z8FINmWgb=#a&57ri9xF!(QlXwJ@s`VXu@WmnNARd9v zKYb!reeEP2z|-l7PrAF4v>%Tk`4EtV@$4k+nUiFMu$u@CiQ)McA9!H8GbFo+5N0iP zCjnvhw(f8eAp*42Z3ILm*K`PQ%iOY)bIN*<9^C3_$O<1MAQ}qa8CE}u>9%};fQW&& z&GbQ6lJ6#_+w^_{qVDMqb?+sj+o?T1V4d=a+C8`MEd)And&qXpP2NeMQ@2mvK@4E< z{afJJ<^!I#wh(yur_;Z*lt}{D|8)8{7I^R)ciO!_3n>Q)y!UzUe&DrN|Kw&Pvis(y z9w2bwp?iPz=J&nsDoee4ZtDIyslGFNiFw`wq3S&ZI#q|hhSGj~L+RIc>fRL!`|%Bh z-`s&~2NCLzA729M&+HIwAx53DoL&(lc_ALAcKN1TF%^8TY(Jtr=uc&AM zJTV99Hkc015seRp)Mk&LEZ{U~> z=z;N0%G4B(DS$Fhf#)IgqQsHo(cwqt5=mM%9vYTD8x{>xq&=d|8(!e?80R9Xm*$y- z{T}Vy9}O6TqCM`JRI|AEV)Y$7tuW!|-Lb;6-Ep(&ZP)1y?KXYKG$;Y>9_p@SPOp1} z^`@}i8?de`qJ}+@{p=MgkLu24cG2T;bMWpf);HzsUaP&OBeX-rehB?gP(m&0MHo;0 zv^*OCf^MK&kdu`#NNAHeRJH-;dLhqYT&z8ZrUFOP=|#Hmf9dRmuoGf!4{QK9OlxC; z6iTa{I9A(U6@n8Oqr(&_t?goK!hF!ofgN#IO}EwIMI(Z3s$8Tmq3L_j%x>~TTu39# zMe)9J6kdh(CRcvZ+)}+RYV-aLcYig_7b?}5!a}_-)Kf0#MCdbei>|F8cSuD54~j^* zlV&9~m2?pu`cMHQ=6<6hT{pG|dj`4<59kr2USpyLiK^B#G7_{=ExBf;JB50lpS%6W zgGBNmTnK88f|}N&I9Z2Yc@DVlT%Wbi08KbN7v2*&1^c(9SF}%ewJfn-a zyxSy4nfYJmY`RQ!YV*xW+_TwNg4vf1#)Sm! z!ut`&e7gHG_n40XRXy02&q^ zU7Trz_{Q9L?#>)Fp6fG5)D!gDT!AvHUa!}dDV^!HX93_P5Cfp-G~~QaJKSLE>a>-~ zBaB@!&!?g*INILQ&3PWPgNV|sJ~%~|WT0aL9VTmJ`r3?}wVr^B4LaOMHzl;oShLw| z(TFx#!D%$dMIdWrwsGVk;vu`*I~s1jf5>ZMLp8?HE^}g()d#2h$vz-~WYGLTEaSSD zptK&NqjsO1QNM^ayt*Me3iI@p_Qh&_6eA)TqXUV5yOG^Kge zf)g#xca{%774_veqQnaI9GTkX%~jPJQkbwT#A+Cu9G@An069Qy>m4pD?;m?uL3!42 zHN|?(JhxiMiACQf0QK-nN`;*gWtAXeDXpb7WajWm} z_YWsq?R=anZvkVQVg#Bhu25PH$&PavUtGygdv|iI1TgtFN4#oYA|$3)f!I zzVY$OD|Epw*B<3LUj{5Ydb)>s#@q+qqgQ$_lPT_+3faua{Wc`S9QP)AXD4v;`xriR{6QUakbod6<=w< z{p5A;{LxjD+g|b!YJVUU(&4!(LmOjH_$%{0ilgvdav_Py3s-Sj9`e|0Z)p=r1zVMf zI}_X+m@%)S;D&N!{2CJ2XDNm!Cgd!h zO*qNNEcec85+*hpq9}+m2HaYSGre>6Y{7GV%rm|7Z0}q+oBkXha~UxJJ4q+(HYEmF z&F>{{h|ia?ifI+WV38N2Hq`F#?RhMo2GLsrIQmE{jyQ1QkCV0L@U%1+%X0qo#dp?8 zj^vu;s(A0Y>{AY|5|}BK{JCzSHTdJTEXfD`Wa?J}Tbf?{z4A9$>{;$1BJ7m#6lLG( zkZ8}DthTI_1SL?w!F3s$Y8vIxlkNOXH?ELN{hA9qXwoGtTi8tA~+I5WW4bGmk&UHEjv7Wj@4d@LV8cnEyl zQQc@eUO+7~T_|qy;u1?B4Vk?}DRW z9^d6FwfeJ0wbm;o0oG=7XK&mmfz3=uB(UM9h0*$9UC5Ppk@p@Unqh%BC6V=kcg9OMS#74%pryWeYAEQw4PvW_sWI`nokn?-vsM*P4g zF~hDO?ENS4Q-;ZCv#&3`q z#~30uX$-kxZn$rD#;Pcr8bjU!u=s(w@r>b7;~B#v>Iq{g;kt62M*;dZh9b>>1%NPy zU_+M#b`CfY*KZzw8>xw2B?EpF(JWB zaIr2}Y4MXOCzib+j1_>97hNj5?n`U@brXzimZUct`BVqOksjFBr=RRCCq2R8AAjI6 zCzKcnP-feqr=1iUHfs$+!wRLHG?s7V>rNWB{D@$d2J0D@MGcOJeKB0x;SJ!EzIYDs z%14Gn`hbuSGC``wa|o)I&__!jmq=mhOmAOFCmlI~2$?n+hR_()iF%AI)dAvg2z*fk zLpTiRv+WF1C7|o5y}%^PW=0tbcN!PCmNr`+r49l%)>4c|!#+)>dm+u{>1Kk-WyAl% z=exxAY3N8caLC3CKC3QR%jl_i0jsb1-k5qkNwNzDn8$IA zaSO_7%@+1~AWVg(uYm;cneoIh!70XsuqmcTEzAfhJ3k>iKJ-DV*k{L!W=^dVJ`d~M zOSJQrbvz*2nt-?T@1AHh|J{bd%W+s|iJ34k+WQ3cytW0o9aQ^-mQQHeegP|DJ*i_Q z^jS^e!zZYObYDWFPZ*vpG3*m~!`Co2TS9tDO0X^~VRW{{DAdT3riBQMfS)ox-Sh-l zoT;l->sgbaQWA5w#b=u10i7?ZYE8<40m$&KIOh4T67gly;E=!6h?89L)d7{i=`X;LZL{wqhR<>ZR!(*RN+qT z`4YpkC4@T?8a_drRjN`6;f@3$&2ZOkgPCVbIRqtE{jVVlIGHTX<~I^1QNL_XHI1}% zM4CVR_!(4I)@erJ3{SL++s?#ZYl(G>lA>a+{dKfCiy06`seI&o2~bi^KMf!TAbtXB z^eUr*aeWFwAF`Eg`~PC^{e$c}uKUjW~}LFaQRa0dVi-kbIy3ab%B)i3AzA zBrL-cq+ngFUDS%C5Svl4Fwia`LoWOQlA{ung{-M93K-gOmPy7e#D*0lOIwV|TEiw{ zBQ_+%5xr*0TnC9!8}0_S8JV`}EL}!f`}v;J_q{hiKnxiTU>`%{}~n6K!-k#SM{1y;2AI;k`3S`n~k{NL7_CwrwL`#KWB;eZE zHb3j0R`av!+(O7()|Ia(jbX^Lm8@c*T|+tt93n83+)DP!n$aiPws3l73&*&-s8AwS zKevX%hK(Xb7(sN#(h_XLmD`j(7l81l2pD3H;bUn9ws%HaX1gtW?)w6o9#sDUju%$*-*>9F{X>>8hpi2PwB#dY-t$ z-YVes3I!3(19s9eSt6#6%1aAxqd+yJYoq%v%{O9Qez%(`7GSf<5@?1^N`&M(-+W04 z90$T%i5W1pY~COTVXCO3yGdt8)b=1>X$4Gz3>jd>z;KDgIz*#~bqxlvs!3whR2?(S zElI-%xu`~y-8+f-pOtmeuiQMQ8Dyk{y6nmgD~+(f`V?vC`eZ7%JFI!nl^b2L>ArHK zD>e{9Elp4k1fShkZldbSO@!&D_i^PW+^u$rVxTj42|Zy!c|jca`EWUVY7Nq^7!cjO-_BXiN7Z~e!AcdpW{yW1qC3-_{u>%OoCH!fqCa}6vg*UT*%0? zgsS!e)YEZ+sb@c+`zk$2K4Tjv*+NE|*s!M;Oi)h-D71`Ns;3e;^I=kV33y44ZE7Zq z8V}}-BjSG40`oz4>P(I6j9U-le-u-ql7)U}bkyH$=}Vp{-~6&vvLHA`FZ7}J2avbi z__Ed)EX}>)p270Ed+Oyi^Qf!DEf8=iO3W0OslNNY^LMfH;?}qmM_wcYbhOLEK zi1Ez5s7qYfEmwmPB}tHP4}jR{IY1HguR;?VW1$)Vr1!-z_6_MQQaz;LnQVK$>{E^5 z>*utPlw?&(CDwV{m3BOjf^z6utW)TVgsL%!3H>aV^KuzBZ>PsJRGB%{@u`ZaeBjHtMJqFsS&q&J{WR zep>z6kmdB7>Eqq*=QW{XgAFj1#26Y?>>WG9MD_7C!dF4|x%XaNhb&mIug@w%HeByNNGyZ{G-~V8Geh!NOR z<%kn8!Bq2pZP?jgFlUh~)HSt4$oB6__POuiuH=Ax2%=4dN8Q_bzejYAmOO@o?RHkB zNAVTAk_VNxl^nV+If_gJlA(L7_Ouc*knQP-KtAz4F7jyv&+e$xPFQslytR_Y)RCKU z(Fc!0%d9Fn+$TROdCG45pdtYpqK9_D6r1ls4V(E6Xt!%V9ypc2l=Fxw_#Sdi@&yMu zfwNu<5rS*2KfRLcFwhzrdO&+3mQ}5GT=B674{6g(Qjksy!rxFU7BrwH22Ydk(cI)) zJEJ|S+?8a+-bT$G-G4Hmn9S_dX{z{tlweYB*bzz2s9yf}s-bsdBfBM>m$huz0;A95dHIp{vXVwn!) z*1G+=Hl*d_qsB^dks`0yrGw~w@p_WhH>R7LT<0iCN^3zOj907pFq#g>Zy&D6<;pHB z*KFbh<_D>JjnjlWQ-1(r!gF~9>T#q3bfAY;i7dMBXPAYbP+3-TypTgyVAft+M>r}C zKHdZ9thZ9@VRbkyM^}sB9&BJwGdLKW_sUI&jJT|yXP6YM<5>y&8~!aaWyA?Xx~Qg@ zdI|-~tgZ@FC-Ezdh5;xAwu06|CXBV9wU0xb?0o@C5_k;4j}tyfA)ZythS>CJ2|~)) zxQq^e(cvt*`e;0bF6ZzpyYzNM!`NQ%`bR$}F!Y2VZMJ&BT5iLIWX zN@E>Rhu>|2tdzYi3w@fo=JkkK;c%#;FJs3kgwW+`^CmfN_X#{=o& z;De5$!vmgidM>{-!#L~gs5PZ}cZbTv2ul)Rd)gjOg?g*SQ40+#CNxu%KNT+RAR*ak zv9d{ALblA)ah{a>J%UC)1U-W(R~95`qB)X61Z5!5tZtm1A+N1Y0dtLAvy)aZ_rp=C zxv{r^#4$zCjqytC7m25+EbwYN6B+dBnooDFsFJglH|GQ{hL;q=azL z$P68ka-jLSQJSm@IsHnY7Jev1&7v;?H~%*=v9E0!-)aV=odP^}7JuIJ-zvT8L|IIe zq4jW>@GV#I*ui!+g$J@8ILPN%Nd+CPiRe{0j4($pjS8d>fehZNE^8Z|PtPg%|))S`qpL0w=-z;pV1tNl5z&$s#140$KG zuaVN**7K~5n=w+{L}xj=(vGWzIB8vY+|_nm9O8Tol<(EFaflZA+>LC5@#;^1{bxUF zhwU!bG|>Sk@FfQM5C@d;M`8q&QXkQEK^P~g3jpgN-EUt4YWzlnXPnoWeEd++moul~ zt^mYCnjdJsxSm@dqAow48(7Xp^nl(k?iTz*z9{36BsAen6x#2eCN?n~Hc856=VdC{xSFa&OmEYG!&&dbXPgf^!vk(U zs=1;)$2m4;{6QH^NF#iktzN${o2wXbIjj-=aP%nS$4MG$3G|JVeLi&tbDwwwRo17@ z$SNLkb2b$AI0Oe@1~BfQNDm%H&4M}CvS5zIr<56kL(GTv1J8hf8QuPbK@*ta?2%#G zd(XW>hNtxn34hGXJZwvgtFq~N1s0mR-d=D5-m7!#oQ)AJD4IjOVZVM*G7Z^#&5T}2+}iyOxo zP9GiV)1$^xCdNZY%uYYv8wty;h0#QNXo8M-Dmqf7dc8`ej&R@GI^wD5NR{eJm8!cV z2fZT?(Tufv61g{9$MeTN$oAHR?veNM4J8W$e#=4fZR{;ant~YOTY@W$t$?{sfaK{| z`fe>@1bm2Y*?BJMF6}iTfKLnyx1ssC1=10A6tW8hcs9Gf2WmDnHKzO08uh(Kt;FE0>Ve!+@QgzU5fKj+e^%V zlTzfVX5GRUjUlAnPZn>n1w_v(6HK++U%CTG>0y|=d9Kku93qSd_`7~#9u(yQLcu^U_~sS!4e(X0kqH1CoVOh<#U)sg=Q&% z90c@Y25WG6Y$>uH=VZFlLe1?}C}3m&!7ei;m`*}e&Z#!KP3FcQx02B(R@rszNmw_K zc?vcKj5`d1<2;%V%6Ux3OFF4CG#^3#DniB~ifJtMK?oMAAIpo5U5A zY1+ulsy@3!;&C^KyMr=`Yih>vyka}w8^n!MCUHGJ8#{5=h`W6vwBdBd4o`(QgbHDBgfKWl7#txCPC%H)K^VRqVP5TE z$)%3>g^qW=RiAi+gU3AiV5eaO`<21mR)!LL2I35hN<-;k1ohL3hMpvw-y@V!i`dNhUEa zx0&4~hpS+$S#T(K>PzM;GI?0ebGd!2>2~XAkOAJN5W8kj$fpYmHQg5AJtK+0c2ezLL&jgnfkU0lqu{3E5fIdb7-05M5#sy+hOU0sC=6C zg82TeJciZB)}9sop5#I(@}d>FmtE9WubTO#b&_mW{xf~u6|nZ4$+=eK6|it=a|)mt z%-r@gjNXf(u1oE@UI=wv^14DjrJIFC;-Y@cEvN^967^(pj@Dy?%FwZ4gP~T@iOYR1 zDU0=GS%Z!zmm8@if$P0lgnR)WA!pmfrmqn~(Zpq6+Rx)YjWicxu z%kpaL3uTvAOCJk|yc_UBo8^UvD_Jt+)y9|=LS7cR5~43JoBoouNM1J3*c%yey7yYY zsHA4g4tKD)2Fme%p2+%^YIf++Pu_JKCfKHf-q&NcZ-BhpB-nxgmeXL)LE4jG)UM?4 zJ|H}wq|r@|en_%`1?h}}bZDy+)fN@56C&%%52R1WKLyw#6`Iw&=nAH9tn%Pr1DcV$ zR|R6GN^KhR0yX!FwGv6GK$3FlPP4@dWRC@TRzG#V&K6wrjrt^QC7W!tSvc9)b}8J7 zLkx}8Q`$iXB?%5ySv!!$hjxrp>p`j2Jj#k2w3Wv2J{r?-l3Q`ew6DO$PNf(b(4qju>sz&nrxNPl(oz zm{P*H#?zb>#i-Bne8eVuv_+Z9fBTQm{k1>r4&fPYZi2giZNTPZJ6aqb6TzYt>qi(O zTe2M=i7n6L1nycoNnV@UYCdbL$)s%kqyja<0ssOissI!Wx*G4r%(mOTs0(%JsFFr1 zu{d?jTEUt^vUE19Sr@26toR-vqrSXra%+%MzoHqhCl=aW@=lE}->I%9Q*SlOi(1>= z*H-AOnqzIZ(Wna+vBALx+QtUEO(bG)0Ee_wLjnWT!UV(I5gl=|0c)W^ zVZIL9SiKe6WHrMGMxm=ioUZ8Wl|=}op^r4!?aVyr?E`KD=ydwHaP_wSr64%eA6|@@l)y0mEy$WevPvINjh*kxsQi_E~F|g>qr23bn>)-RZ{P z`tqO_FbsbUghDP&DQlae$aPBu5L#C7He@&aHD#ii7yjzk->}O=4pODdY%~pNJ83XV zQB4|0jBHk@RM!G1vVqP*zbpOksCPqxS7fd&2ebv+gbSf;Mc%OE!)}ou8wdfu9 zas*Jm?Ot*EZ@O0t+YR@!upx*V$OkZrPv}gC8GEMVeXGs!YAu4#V!gg6x!JEnOgt|R z__5NpekeWm3@q@?{({Y>dCv_nr~Gg+)r;;K=l0(A z9)1l;8Xstbh|EjRMphYgAs#LX7LI1~N(P&}PFuTr(A{j>V2ysKYV?hMZ#0cpqwP4y zmRg!^Ct|Pnvp7(v8p!k1tnk(!&Z`Jm?Tv%qWMzhL3Y;C=5)P-d?x_zPqDsoNnvSa3 zcH(9ShBVvg?(Lc_cxiyohQ>3dKH`kDo$8$T#v^nTUjs;~g!C^Dh}W%vMD2QBR4agu zxp#@R?G3FvAPQ|}aYeU*ga|HG6gWfU?W(V`v*K#`ux`SQ0zzHRWk6u7fg4&b#^Lfo z&soDs3%v8D)8gB96U0`t;rp%4^vb(QzpX!SIATdUOxwVH@8;W}Sm-7_Ry#!!NWqlo z?y4DlwAle*tPgr_+|52(|5tlww0r34KU}7IrN_#x|2BQ7+2AX5?izM15(v;5K^yA2 zB%5MO&N#)r?GOY=gLF0o7pft6E(`(aDm3k?(nbb!u7=>E55cV=tx@j4&}8jlG&{iT z9>ES&i>?vufVX=DSA;=66kQXvYg9UORa8vaK+kO`0KQ`b=wW?kY%~;I@Uvk0UkwF_ zA#CV^Wf$THSZXv-6Vv`murDp+>m6R*dLHmTe&8UmTF^)k^QQr)1jgJKjD z2{mvGIVM4{8dB4KV<1p-v$e-|)-)GP4a3i^(W=mSUWM$!qYh%jQ-?1NlwOji1hZ{o z$KNt*Vp;+e^^IhDe1kb)j3m%XBi@N?lbd(UnzI9#BZ((2m5`Za;;m>ocmo7su*ma&RQae@LV;ol$p?1zr?Huvmm6WaB`9|a44kh2*IAB0vT=sQ>>4;LTe`uaWC|I?8dJo|@GyRQP@#soJL zxfTMy*HT{AhPak}@2FDc-%~BU<@qlqJEI7W=6k}C`pp`uDinPo#ZZaMo!+S-pdjdc zD)k6XOYhj`-**2Ts11{6R(OEXsn0`1@ zjLqib>@AZs#TH`|LuP7WfH4Y_EolR)sY@CWGzy;5BE8f($l+3hl=m9Ens4O$2+Z#S5H~Jq%8xu?rU3O*(1OvTcRyIaAn^?B2I3 zW=vAo4eVDvC3|4$&JMubt7HunB{KvRA{h_Z>7z+{qYPWM@Zq;DyNzU3@-{8ayyCK`cWtPTOq6Y_J9k z(CCgT<_;e#%xZz-G8=}2onH-;Nz&-sope4JL)rr0!3f=@CXZKvW7(Z^*6yeOo3nfAwbV?2mZ9K8^?iq9-v`1sFiNvb%i*2b4#LbPNuC){K3IJh4wRkYn>;#% z(p@JcqSkeXFEezV0mVuYP?$-umQ4eSt!U^RYmF69^i5IXviq@|t}S~MF|aiZMgdKR zOW=mc2-*;qKo<;4mrxCL+-42xMK)_{HUw5D$HT%77WX96IB<<-F1y2*ag76tjA}@Y zaWI_MI9QroV>z5@9PHa@!NyGEpl|Zv=)MJcv2^1HDk1F_v7wIGmUqlMF2r7#S6I>} z)q)rT5`#O$nu(+ZoB&$|+H{+611<`?;(5eD=^N^ARQg(sXc07eJsh#TrgIrz28{ee z_JzQXGimm{Ql64bo0W+AN2Dj-56_E&rU*&`09bO^RfsVTXeEY7*dD&AxedQ~vr2=H zvLWB3(j+Mlw!(NxO{JL@m`XFM%z?4$QE3j0hR!0(4u5d>SBm6;>Bb}f?h)|@jjxc+ zzr_Y57MOm8F(9}TQu_)m);Eayq4HI!(0orTIZ-fg6Ddpz8L zI2N#j6RdVl5C|ZtDGOr%q)N*DA`Cb!E_HEU?P4hn>zXRflnj;U3~i-MThD!A!jzSh z8+WjY{#96Ny4!dyjZ-nI>CR{umw%z~Tmw9g`H8oFA=c$U%ppFdOP$ar281~Qe`BL- zUKb>)!-O}_JaFM(-TjgzYT!eOeG(nx`{ipw%+8u5&|T!d*migG?Zf6w2-s4ud0h7t>s@f>*N?3^Vy*x>hf5h7N&{ z6vYus)woRFBRgqBPxFN4M-{J;UyGE*6!Rr zJ|g70PoE5Xc^PGB4iZc@h=zwZ(<1hQTxj6U)2S?8&Jb$c{BPLq&hlTKy>;r)1B-d^`n3i@OUqh#rl;iJ6A+(&tb-A5^pyN{AjFhQB# zc z&>7a+b$oCPbWd_!It93_WvpGcmSN-`(t`h;n2Q_#^V%E zNrfJ-LahWLqe7Q}gHD7&r`gqrMf@jXL^tdTosAgij=S7w`{4ycNmvP-$Zm7jfbSZ&HjenAI_q*%FxRp%7DA<%rB*VZ*KF%hc-XvO_ z$N37^&NvrC4W1lO`4V$Au_i44@53C5!XWcnONW6%E9Bx_h+IT2NDJ+@38+I-d`v(x zcJd=AA%@DC$>vZ*)rN7Jxu`VDY5Q;040m8@shOrPPJ7FmJwG-38=R`SsmhiXNvEY`u{)C0>>~PGW|lcnwq)|Edmd_rkbf6 zL5S;6XB<6(gv0SYQ$I=fW-P{TolUDXLI7g|K){GQr0oxG=J^L}_NvctEees8G+@#n z1an!LSnl|O^$Mn6XdXin^w?Qu+V)y|WN@kn#qW6(zxivgKdiiqj7!1pTh9==Xql5` zFv{^K$f((s+4V@UJ!qEF75G{iXu|}Qtr~|jeAq+N4PYp-ETc&aAF)`8X{iONxONs& z;j>hUtSPA)^xWBcc|Y~|ZB>hfYnU^9hN{%Uz<7Q&T9HL%%GNaAljSttyA1#_l)4Rg z7&;99@hD%|8hWT22rH2$$uJ%gw$NttS(_tEh~3M!R(xhz>_<(L9% zQ|NN%d%={{FvX0<36yHa<3$f6Dj)_sz9{9$dL7mPjVW6mK^7VGMOJPdvX0RQn-yRR z2J1?2TLUFKa%S0A_WRJ7gEiyDI&i*MswR>TV~<2;eUbNaw9_5vmgN=&V$gSCb`VZz zQpW-58jdDr&6nE^ojOq|<(hs~d;);TB-3N;CVImh+8Lebm>$&Z7FP+IwH(fL+m7pu zg3ON{cbs|LG3bPk4I4oa8Rl3s-=yMvQ#ptCM-3!Bx){;}8uV)10uUTHJ=(XMX~7T= zfXGvWsn96%wRA3v1zvC=1)A65+P6*Vqg?$nP;qzJLDf$|x>Ri7>XF$vnJuU@e2H<} zMS29ZX@krlYanCoZ;vTGa*!{5*<~bv z^Oc66$pucQcy!*(GbXpHRB$Ah4J#d2E<1r?Wag@oVPD?D3IlOa*v>@g6Q98qlciX1 zcj~&He|DmTezlaSTCm1iA(IO4DYEnUsVI_0C&n(L@Gd=aZybFj*66UZe7*n~VHLUq zSy`3__I`d*_AokFh&;k3sr&g)aI{mW-Akxf#fQP+p0tM428Ryt&U5UmNE(oRo;@Wr z0@|jFcKYk^Txr*3J9R#cf>@B}m?>IMFmPeK$UJ4(@JPDF2(XsWb7?!MBCB~eE74A+ALG5X>Pv^|?F5;iLbJ%l|AI}gSZL??l^ zF%NpoK8x8`#k7by!s2B*$cz}iG}0~*{mSUOn0?Ubg56%@rft#zOwkPPMk3#;0ZSV134GsB!} z?eFwWqPffjy_$zYEyh#!nY#x$)_5)rWIPvUUpStDwKDU|l7@9Eg^Po{R6txfprZd+ zT>Y6llMPSxJ;_{cP8aLOAqCYxHFCPBtxlsP<|rw(`Ra}-vw}nq(G8Q_vfP$$Md$}> zL(7$TmL6jDj$X);;s2IEs?fE7Gis3O94A!#$qc(@#ZMr*hX_62enle%<0F)|7ATNXWP!#$Bwc1 zjC!dmP=2qLV*{o8*s)_7(5UeqvkK1eh@6Y04&u-*w$X}delad0Havb322x$&S-X3R8B$QqVhR91;ST#(lx6ewqFAX1Gc2$D;{y9*S zabrJ7tv!+(s95Hzan+b%7Dt8opF_ysa1J9=#(5}59nh?4i^&a$fF<`s*?{y!@I9o- zZob1>q!}>HX1b=WZI&1V!7#FwZO+8mI?;R{zA)0yIBE#iDFQtbW>W%^&VZ6g*=Z-n z;A@gCAdlC^ivFw%yLTQGkIJ}!=%$@AupCels7fU8gd`yjRdOuDpWp@xz{E_oMoptkUkn#1n;bf& zSf|@EN`DAZ2~^}zQDaCp(+epuc@(pYn)f5Yq_76X=#HkkP0MKXg3PiXU**-XE9b|J zLgi%Rx(Wz|OZ}3M%i(T@db2T)tjuCKPZPG39HH$;cp;2`m6w^5uB|VhYre*WonyE55M#k}i=`V$U3hY4s zdK9RyKI%T$K-u~%gtqQm2w5tUDLLAmV z1@~lYk0J+OeU$NMKH1x1G-tmpOe#W0G^!F)De6@oGX^!fPiG5+_74?nr|qq0?j@+V z8k}r3gp)G-^AI{OYNGWvqPI*^^_HXVqYT(8?=2T?LK>*2_8L9(nE5SEmqz-CvRZJ~ z&;^^33O1i2SYTklicRW&nsrJn)~drc4shGqrlaV0tW}4#IRHPDkuhco1Mox4CUvo3 z{??eQz>xKswq>hjDHL8-ot9M6GFM4u)t01mD%;QSG;+RMT&W0=`hcaDPZoL-+8g1ZQh(#+mZj zV2*7nPV}-NQKO;Kb^<_xEo(&=5q`qSGg-xFBg$2~*j63_Em#TG*kl}5;6{EvWr4#s z#dvtahyZ6y%6c-K8mP1ru*TGk9kUa>tIYf-8y_bN3OY<{R?ESzoq)k4kkh9xS$k1k zK#0IY919u&I|vZd=?ldejjZ8relp)u0_Ch{x`_Bjf$_qV+2(BXlTYN^?vJw3Yz*I6 zrhRgpM>cgCxIw}BAuWUC*_w?$Nm4FTQ4wom4`JDpPy8_0vnAX5WHy#%PoB)SDf%!< zV^sg-$@`=K!RV2RZCSZBHzFFCqQim}Z#@r+;vO!BrqMRU_fUaS&h$|Z zZ3sbwpO9?h^wA?1Xg#1H#i4>zJsc9rsNaA^j(Y8Gp-FpWZG^&p9mGXk$-iLkevI?{ZdL*W+sv4)SzJy?LtCmA>$X|c9}vmU%!NF2~K z;HP6G+Wkx=t+)Ed3zCKe!tk6L>1PAgt6^rq>bwRN2KbX0v&oVp_Br8?4Oc#tLVQRq zf+UAKD~tmZL&E{=_&SthY(oySOgbt$yyR9OM$RNjLf(+A!B(myPtrabnJ!qBb?)4! zG~BT`iuxWYP?A0hR5$xUHAja>$;k~wViZ0aj;$4rPKtuI_^I`1Hh7`frpc8u|DJqe zSGu3lIcQ`CJ;_YjrXVIa^JUAEOuVi7<}_AV#{sVRo0dBn0v@o0s2h<^O$;o+Sb$;v z^>Q-U{5{=ox4a{ssp*a^^&!iE{;^olLM%`#aWVLL@k8JNx8%MU7p#~fVdkhRzUo?~ z7PFzCC@~P*@+k^k!z1v?-fWGaKWHdGQ@jdv7r-ZD?Ae?hBLOSBXds{-@ujVId)mA| z`eAT?0D9Z6{Q%%(Rik(%n@}=(y*+Iy89vd}1*zKY?*ZlsrL#I%KZN3N-=fY;nR-#D z^a0`#11XHkxIQDZN4TL_us~6~(U-0Au@P3PAt&e(>uYbA1R@^vn*OjjW};}uAFikP z!EC+FD+I}a79`|dSg=(X%c`OPZjwvNZ0wNjPzYm<_eOE*3>9OSq0vWCK*{@*yia~h zE;p2~uV21qW!9jj1n?45iIrSqIjz zikCjjbjQ&uhGXlNtpg$=tOvZg#Ms#-R6ViFvSC=I!IwauQh1?C6dm8mT-+Zh_f)ol zxHZ`Z#YSDQu$>i_@hMUuVYlTVscDRDSdC2xJ4w{->8S=7Jd&0)e)h0R%gGdFTMuy^ z&yx284``a;QFnNlV`r*ucz~{p;L!&>);K({#R|dBHfW4DfTE(UJp#>|d`N&nWl~M1 z3RV?e{3Z>d`s8+%9Ec#jU@V|2^n^)kBY7*x=pir_cT!J+)$>p zoLM)V#I1!nV^b_z(VTf7FcJeg)P@m*A7JETz`aBt`yr!0>orO+E(*h95I%rD7tX)+h?p%QRVXeo+oCkcJuuv71FBRo5g@(HJes zrSNiOfssJjJ{G{K9R)*4dcb?BA2PfJlt*%tUJ6FesZ;bm6R8rCvS3J~0|~FTg?^3- zm$@JD(teA%5*@Md^z$A%VWATqn1nzX=1j{G4~#>g7Cd-&Cb>3>a1Mcd?SE*$1B=Eph5~2X5TGq3_N6&bzo&|xcLjji&tI&l^4$Y~O|Dx2 zV88$XItistcYw z;21!9H2v5j_$)L>Jd=nm)Yqil#-cx3fXl-KnPVFtHgO^uVh?R5b0%%fgrLcxoG^fB zj%r1h60N+(BBBP-+xTivQhTcJ3B`>S3>>j#EUlP(k_SL8efh5 z;PT2(**XYj?svWI=1q{#KAU=z&VE%*^1|oYcWKuYNijj5 zc)2s)1+9XGV`k3N3!Oop!_{m*8+(Bq?p6iPzNZ3Dg#uA;wE|~CfydkBp)|Gf_CYAr zJY-pFom8P1%ERrlOlNPUeLd`DJ?dp0^0E%J%R2a8+I7Io;v`n>+J~s^>RrjIC)P?s zH=8cjk4I|gRKA5;IG>s3nxa4Lxii`=n%B~)`j((4$k%bnnbF*f{ZK*dw>nCaUQ;FH z;{ZwY5t67_-e!<}T=PxHcCPtadOE^<*)C|C`Ro-y^KsRN&6RmODv48|KP$1SO$u(2 z7R~8=tq7$xzbP`k_7{y2)~L}3F`8-S%$?JBK#_r?QX&+5-|6Ss(X!xc4T`ihDow3%-3Wm*rbB zvygQU_>hN&GHNVCHPru`jwc#=RJp66*L6X-F+f1MiWt#P1p?MgR!J_aQ3Wy&fr6h3 z6kKX3U|NX90*XLF7Z!lT##;}&8At{lBz7!vTpL76(gBS?vgQ^|HZ55L&YEYl)u*$> zfMfnJsEayaKpHeak`^GDze>BXI|i&(&+6d?(gG~=S7~q2xki};h{$;bOMK`e>j8Uk z1iM@h!vMeraYc$jPq>eluU*i!@R&diA|O>19thASI_A@KKFY*FuKuZFos;R#48mBi zA?&6wf0_a!KW!k^1U>?=4BQ30)Bq!(5!wbC+|WWaG)kfwWNgtbX3!=F*PezwfTrMLC_zI&I3$E3$c;hksDE0hQRyKsovT*|-N(hO{q$$=G><<~ZKhjc)&TBqO}UTzTodkF zwt2nB3-*{xn`aHx8mDfA*Kf^dYoYmUeKen~ndY-~R4vaab(yYtCrNKNytb#LA0ceR z_LSvcL&gy7*Sc%IgIbHtcZl`5Vf0fX&F-ZQlLBS@1t~(nPqRKW`A$E_4(X{M%Z879 zihJ15i{!|G(VUYtu@bDuhQC^QwfflxN787%ge^FFVgqN;7sxSRAYnAt8l<_zrr2Tq z)XwO49Ga#n_O~C-d_6g=2bj{I2S?$3%fJ3kdQ8fb%7{gpGu%X7L3$`7>6x2npp+{} z?{+%H?5y=gEQ_`$!$Pb?zA+HXn4zgWSu_HHq_IKo>N>+>%#~wz=(7%%t1cT&;evMP zxZj+$j@PP=$DjX5%x;!$us*8WA&=<02FvNZ<>~3pgZ&xuuxg%R{SJBFZGcse%^I3~ zI1q$HovsPd%r^+4Ney9GN5M|UI%v=#VxqaMx+1GNvlkKt)w5x-(Fxcx4z?f#*P^sO z+w}FU7U-9rj6pV-t^0b`6G&YjK^W`IhQ6Mq7BpDsEi~33NSW7E_nHQvzE&tl77&}J zGLTYl8=*g<68WNDP=dm0`Z7JB^#W8y2Af8OMo5JZDx}ungB++Fe2@bdxK8CmZ8Tu8 z*K1v*ql4I0u?}N|=G~Ak-{hHW7Vx67WolvF;axLrAQN4HR)Y^KfNVZOhCXG0by!gb z)CPsN5YC}$(Utktjow;LW3QS4|oN@}D4jEZfNRXmCy-0s#dV*8Py>+whT?!-CDqx1pVHGfScJZO({hE^qRD zo0PBS`8Itd=J;$x`B=)s5Wt5Ie3Ek_(E1~>9o#UU*aFo^9kzke3L{QQw?R=40I@hW zg2ItTOi??SvI!pX;Ceflwh)Y{NvQ|h!GjhY5v-PkI+`*gX?5smO2DvO!|h<+H6R$H zjVf%U9n9n|FpWWo+?k5UE?*hZXB26J?8>jW+*YY@y6BDO3zs-`SRF+gTbr zV~P-4$}h&8AtIO>=1(tEjg@g}Wr9>JCWcg-bm$UKvyqHGHJSrnQj8+^79YU*Nhhwz z5Q=}29@D0?hyslCT3enoMSd=@g$oYsD3C)lBS)5d_-3T+S$KiPn2)nD0+|L&or$nn z6zw2P_XP7){K+u6ifu=*MMU-UafWxJ?~B19e72c2pDpy}v%M^jKa?3L+sTS|K~_t) zD617WtlNZG0@iK9u`G8HHBGZub3&7bwN`tR@D7J2B^f>|!+h2x^Qo>N{F#pn0}}vq z`3xt_OQlAO?-_EaL+{)2nQX+B{sj^pD6&A>w*4$=Y@A}o4f#N}0rIbP+k6RA(tR~1 z8NLeO?23A|%)wAFXP$&X$v0!ao$2$_>u_41} z@Gzgj!+Zw&INK-`fy=A1;$4u{k}b;GjUtnocsYjPbvk5EiktPTX;7@H05t zKv|**=7jM(i1Jx5Co%4(OXWI8=2KQq_-<+9=o{I#zQ@TDs~Aq?txy^1Yy3cIAKF1; zortZz6pl&rz;9o@`q4RT^{7v>uR(q49RJ(<*wobh2{)Q0GMGTx9W)we+X-V;vSPum;Ych=UGN+23-nVL>jt z-4PDF>_V^5FOe`t$Eq4VkSp`4)H2lE8MQ#wWZCOd-K4r*f@YzxO9e?~VnFRkj!=k( z5fMf*?e{}SfMTSEk2hBtxFkSiGC*X?Z-=5u>I4)^#mf@V-ld?KXlP@o{bE9?oW4;! zR8vP*$N(Kac7b;lA^n}<;xY_36guGGH1YGrpaKWG1A)=fKwz{m`$8D4av0eKUi3`j zPNm^)Xh4i`VI;uFZs06{kugO&dpB~oJHTi+!@E)#QG#H!+hH^*80i|O!zh49>niY> z5R)XF7LG&1(Am<}9|J<~Un_BFcdu&*C2|`;Y1xn7kI-sA8K6I!3Fl3`hda4VqGL0|lqhHr$Oq zBOmp~f9mt&qBp-puL#>24STPedQ~r8jt}WRC$etcJ{hC7le>mCTqw${u;BWN3f5^b z17tKdG6QD}CP6D{I;U=na}ut))2$T1n0wOLG#mlAPGBTHH@FWwn&a zTnyaFr8x;&Nu5(ma}uEh*_3q5 zRbB+vQ@p{J0rniH%f25n{k`tQe-r++tkY0a17~*A^G11&@itXl2B>Cq?u9VE<%IwW z)NvHH;&C3#*)YM6wa1#8G}doN^ez{+;Rf-Qz%(Gy@nLCeA-Tsmj_(gll7;yC;6`ypdg`!o_r0}kk&#K7>b}0%D}0h zppnDr;7+VJfX}yG_uxK-NbvQ-4@!|z&ZHLy>!mVaPj|eRve?I|EQALtEAz63+hvWs zm$HVvEY2xZ)*xH+=VMw_zWx_JqQ(okh~w=L)E?~&BdYt_`JHZbw~W#hsOIiP%LpnI zTI}HriH(J-sO4agh}MCOF_kW`HsfqjxM#}srUTqsBZNi2`PU?D)S_~-@loGA-1w^s z_F^;v5|9U!uogg3-;08q7ToxSo_O^WoC(QD1jGhSOT_#A7<{9t8!E+a6)u0DYi z3Y;*z=ma)-&W6BA1x{il9W6*Md7;JJDT)(@kl&t;vrL>Ik#bg-i5}prPLEJvH+)D2 zuvhce8>X)H+yIvHh>fC8gBYu1!g1|sR7na5>uk}$L~k}&ARF*Ue0dNsk?H`JHhHR1 zwxnyb#VQ>Zgq&=-ESo~|LAzIvEp45n@QJFly`Hs7yH$(_Kg|9Y*Q%7cV%0~=8W|-l z%T`%NKFO@xvKj9N(kvQ*j;dZjB@^d+7!*De40LZ);2M-nc=Jbr()ZymE`d6a)4K`; z%49HoZ+w-rZ4M`8;9L~}M$F$3AT(ZgAA*E5bZ4x8SOu9uYeRt zwCcoi)G<4!_elH<)vsF_Ix03OZ|Ln0nt|bL@+O{~Sf0cqua0aC61krOt6nfVOH}VG z*;>6hQq?vf6&zJYytJh(GZ%0{8blky6;!}*WaQS?6$vI+nO>2UoYdr)YgH(Lp$@EX zairEBiW3s53Tn*lo%`3 z6CScxjrmzFH_6U5-s?3cA)o{u9@zNO?@Sq*6VCG(D01uAOtg(VY!3SdU~A}c6)8ap z@unyN?<(_Nlb1&C#$lMa8nF*wZ#hY0_sh4PjJuKt<+)bN@A9Cx33?RoUAs5{wnT3d z@(^BzQ&;kP%gbC*V5V4?28SBaX43^6DA!LjSapu3n3Vj>>Z|KfV*ka=7T)U~=5QKk z9BP3x$r&}y2nPu`Q`{}XY4MT)PL^|*S+Zno+(U49pA)B+Z8LHLL0;P+9P99UwOAe9#+Wfrl~V6x>LCnX%2Y}o zEgz~dM=Zq}-zLQ06`9!QHP0$$ z*_uw7`rvS$tB!F76-VzP2LhX1pvB=LpB!lk+O>|S1zM2%ZDxShrP=U3 zhpTIL{zM6bCMrIa%qV!Bf_YU}W0_mfJ?sZ&O@Hz$a8mS=RbzJj8Iso!QpaYr|#%(iyGnQSO zu~>*V#MX&H^BZwt^Zr`QjD|YAE*C!XHQe&$H)%QaPD9BRLd}m?6%QS}5>uYfe9bow zFGMbUd1ghfV>t>M)|@T|#+pFIF}H-o7_eY1n+HLG71C_Guz7&yt(9E3EoW^FL#3Xj=WCr z-j)}FXOqY&o>6H zy9`wmlIUq)oF=+MI5nOq!Kvq?Dtb82{)5#sS6pVF=sqhxpuj(S4MB1Mjy6}asHiiFh_`>S_Um0J7DNP8@0-_JRpyiOZNhheViJWrtJ?z0#?O?Rh2_Es_ z-R;&+V^ zN0zO$-4Y7hY7Cod{5!MQmSNUPt-IwLe?o{cV638VrHQeu`>`U#dIIx`eHaX9 zA_q=V`({R9h=}8N=GI;~UDR~P*85Q^SCD;lh9F|DONa~VVNg!x{WjL>e(#_HeVC0Y&hbyaM0hBBchDc zgbd?kEEl(=#uafh-Y0BvHW^_uqP#}*%C=FWexi9slye1dgESe{Zj(Y|ZdQvz4zi>x z*l6_{E$!UH{LSTZ5blB46Ti6vn`OO#G7gJtLzUY5yxUW$csX+ zNj)fKd$N01sv*R;gU5-~TfF1EO%%M7de=xxhF8fi8;Rz=M){m`9Rm^b43U;7PC zvJN2^+rvve(?xBZ4QBaf?MU;E!iVQeGc%WXLSE}X`$cU^o;fd}lW*EHzRmElw3uug z-*N|rOPI)oR0+&_n2dftC4pJp1!gsE>JTN>d@p!W7wJ+P;p+-SP&P09tsp2nCI5NJ z$7D{#Bw{WOtCg>@STg0cKfL-&*0!2$C3$?(cerMyz-*yte|z~Cl!g|u1J<6rS=Nt@ z7Sh0z-9Y4CdB^ajt>Lop<3)uF`+6x1`KILgq}Wat-S0K;CA<@O zN2ln8#-*igB3+@y9RXP#0hx)%^g_`vOahK*4bDiO$(e+-;Y>k!a9WTY9Erkknt3iK zg8js)<#))@h7qTp->JDU3Ezn`m5(b*5pYFyUX?wG;ze+#)YUm zEvH8MZX#*N-9%bDh`hrh1*3b3q)s+GUMG=-MYh1m^<4ILs7l=nROJ`^Dg@(}op*tO z&2PrcbFg(1kqX#4fdlc`0R=dB0~Cnx?48bf?A{$8@-caI-5Vbo$p_tsg7bd&wRR~P|J7>pU<|Ii-uCBK1e^s`ol?(CJwT2O|i7RcA6Q3swom6#bWIx z?;}$-T_j{mn8zu)|8fxV$*H@eN!H^MBObG|38t5))P|1GXkm=WjgnG|zf>e6JUaO> zL^K4hfw{Fz2qZk@5#$U65_ZiNtPnYG0vD_xEjFWDq4zInHZy)N;$}i3B!}RSAs6UJ z$`6oo6Dcn!g|G%m9tdOD1iq2tgQVC2{kAktjJW}eu9J$ z6bCM3DgX(sCO4bTr_HahT07A#O_r*z+tgTq=m;g_LqjWCd2;F3Rh#xeGotjtM@Vafo6}Vqo0fLHDyBTfO z3a)cJEy_EE!xRv804|~f%nN3GdF>C4F89((&`|6g&N$QrXT(YDq_cCAxe?AlTeZVC ziWz9@oywro2As?(bS)p(S3NhnI{~^IZQVw#)OnaTjDqH4djA{3w=K)`us0*ZBglHT zTKo?tj~ze9MUU<axUQ)%>kMAPR^NFzY?;7d;C3BE(Y+Q_TH&}KNIC>O+9M{=nni@wa) zDvR58iUoup(i+2}n~HE_35cP_xtKE6xQAH4a4w~cvTwHB}_Z=PelW_2H76#?OiCrW-D6a$3b2Y9OYVJ~R(*=!UaXU3z&Ci6U8M7lVI z4SjY3-APBD%|@!E?s*t}HYKfno-F~b{DCT??sCWeMI4rPyK3C{tT7N)qk6-mhh8Jw zkg5!Bd;K+=n{p3Y0uMZ{Psz?@S z$vt>l8X(Bhhn4qGu|=tsfJdzrsBb8*`1fopsjcKKmU+v=qgiGg)fkbO6@J74Vds_{ z0koKqEJ)JTrr*a4$eZbHXFWJf?v%YC$hG`CSZSFqyx+hAXNWTmjd zxU!aMKv7>udRwW->$x!3ndg|fJJ5CJ7X_j-zc4$x`CSk2Y;c`sZHO{kLNAL)$+UK4CmYBwDNo8)bkI> z8OiTfO_RQXXCW5jxYJ{713&Bxuq3X;jaM7^59+JEfj5d@b6G+Y8c!UQ(upbZMkA^- z!F}964@0W&fih(u5KD14WJpxboseOG`^+{VosX(RQ9*y?*xTo@be zmvIH09rqcNr$t*VoYqJ&YWQHao$*uHRTduG?Wem~AG|0;MYh<#id)Y9F{xOGtkAs@ z0KBFTfW?mAa)8O)a8p6>uKIyV(1w&>`1$7P7;Lodda!9&V?(VC_OB&zFSmDE$;H_1 zMz&z7OkI-_$GOA62ht~ST$~7Q%bsENR0|>o6@dhchB7Ni$!T)37qUj-ud{&&rh~Io z29Akt77UqYF}r44U(pVsPpK&+D!jKM9ZH<>A{<-}ImHOU!K)l5m7?szmYAQ{?VQ)= zqD7fKZB0pok0^m&CXjjDuHlfCbZInM!vvj96Osi@NFZpPCP*a^P`@5G{(bCvho_`b zV|}Z$jOtDfHCqeSPZcE-=iLJxYj8+m0}WAAYEDZQ4fLW28)(C&i#7l-?KIz^tE<&g z1G8$|I)K9~q-v3%hbU0mdC2nED>2ehM zg8*J-T#p+;D|5fOvcdaBjgnf%BQSp#^YU0n(rfpjpvS6gB?0)U_es`7%vbg;c zx_s!pl=YyOb;!#)@c!ZL5Y}`8?3zx9q-;XKNjA<^K>E|pP=1$z)CK{AJFD!oxZ=$fPcz*Zv zSHH$l5vtRCT>eM@?$7Mw_xM0fIx7D|<#`p474#=~dKGo83V8$1Z(NC55e2(Vxg~|)q<@ke2SL$CA`*vc|4)r{}iva``4?; z3wYWc_!b}5u$S?)dvckNPUEid)oIi7d|97fs5}=d&o?X2Yk0nf$esaGklOvV*!&CI zO*-NlV+Mtib^qtG)Q^;3VkByQ{*_F9!pDo{!3{j>qmVDJ`+0xaTKTB^vHku=tQ`S{_ z8V$ull|8cutCpKSXkx(G_pQWsms#z)Hn?-8u zC+03HK$mf7*|mtvO0Zt#**}Uukc#EdcwGI{^YUgU;SlTwdTjmw*XpFp1lzt zA>s4;)bA*I>y`PU_xW<(a?isH_dd_DPv7&;m*>4eB3}rReb1LKSAjHe-bs8@qA%V5McTk=+5dhidXNtE?K}2weuuVyX78i5y`4dd-crXN z=f%Kkr0jc+A?fpWUiy(se;4HK%JPhoz=bc!(j-gy`hT>M=qq0}50|+5=IK-K&-{#f zdffuOr_Yx+JZ*1#IQGzuzF*iuGRI=e~FtvjC%n7}vrHe+`a-ke@@t@#)%L-IHs17DcO3|)p59WiJ7~Q4p zxqT@|++0SOyqdK!vp+iX%hXcBK#TVlQAtHeeiGpup5q|t-$K;ZKrWrHW=LN^%-N&k z4w9wQ<%kUbL6XYo+zp_y8?!N#2@2C19jSMx>g8|A%OFZP8?&Wood zJ1sX&ON~t%TlLLzQ=7dCLe^ZH$LIipFx&g}l-D_{RWFYqrvy<#Yajpq=ZlRCk!E8T z(!5k`tP=i9wYqp01Y>ce9gtg5nb7r(oqksL)u=nGH}_*osA|KdJMH_Z^T+*}C1YEx2m5$3OQbk=iExd4 zOh73J_Nxfhi*-I85fjT1Hz+4DM5qR6Z#GOiN=SX>%hs(<;wWh-h_zX?-}`AA@z=nQ zW9plfCP9~hY_Qa0d0{}`+LLWyw5%`o7H2i+L;wY%ut^uvM$zA~op3GL%c&6Khj>J| z6;KDb8vfA348c3i&iZ&PlI2YtL_O~%t<4W~N-PWLtBLIL2H`NvbV(0LmuQvO^zxK? z9j_}LGhB}mTiu$o6vV?@Ha(ckM@ZS8s!l(?%X3eX3$B-mDoKE`p+w3*EtCxd^?3PN z(5>p^dz?~5@={gIil&r0Z%w%kdB-qNj)B3hR!I&OH9}>;ySKSt^M>KHr?WsWjj+MO zC{M^+0r{op0~th?-Nq5<1(XY%78-_P092?Xs>l!M14vnAS!bcn%uysN)Fzr(KEtYM zbP)`y9SNkOqKRCtMjtG3>{vxT>e75HE#WqKtd-HnoitAi4V9>?0cx1n1`68(2F>s? zDw1qe$;t-%{{hj1qv~r9ON>Mq16(|Y?lz2^V$RUGvzU~IZCR={ky%U#0W4fD_(&T! zk|cd9eL_pVv5l}}u)IwEH_XIS^uX`0`Np0sI!l7U5h(Iz-zQ)zp=WUB3jWV2{6VP? zBCn=@o5y9f0!LrTBTMiHHrl&dRzW{-uNWKuQ# z$&7I#N^&V=y|iae89bqgpk;>JaKGWWpQZyxy7)0kcd zmlSyCg_9qhdtlXH41NFUxd(p!YhS|wN}aB$49Qnd&z&*$7WryiKEu+hGp!Iq@_7%z z*60~{;aOr505O^~;M@h~qV47X6qmp9FQevgc@5t;Kg5N|Y|zd-OiSc4?pQ+!_J^JgcQq`E@zKUA=%dX3Lt8Vx)##XV)Zb}EwgK93y_;{V0y z{n7nT>FZ6t=0?j}b5;2c-oN-rS;ss3PF%h`*&HlyUWv=!`_~b^%irM0wEU-&%|`jm zH`!p7m*u^Nw^shHyf^+LF2D7m=GyY<-%{UClPfMSnExH~zlJ|9Uoiho{7Lx--&C4& zlC_q9ZT_qHYvs@Wmcrl0-&6j&`Jel3h5y5EDf}}2p7NK?@8$peRfT)`r_Ar=|FQYK z{BM}w%m35g?v(#6^S?=%_41#af9_w$Wq&zq{)_l~%RjU>yn(;3{J&Li^3>ee__^4Nnzf>|pME`I=Pgc?{}FBUac?8KEw5khwC7c_Xz^sb{hGME z72n!_HPMdz!{l;d-WA;D_cZ=TifTSmaK?Tgx2Z@{wYWsAu{6(8gAKCt&~1LB`BSVR zuTyyAM|=qWCR;E0Rx5dvfepMs-mkCr zrH}!AvD7I}R}A@TN>f>*yxW}}?r^55z(J@NPpr*}d6kk!!%hQ5?NDaW9nHFKOmM-P zGr|_3@b}UiCUkWOMQBS2gu*t0m&{U5X$~QC3q;OD3m}b_jpx; zhjPS18)(_ET87niD*;gzB@nvKL;Y$7QYcgpP}b(|zgofNA5zogDI!LQpm46)&9U}} zh)E(g6G2I9y`&H^(O9qE$8Z3wDK?LE_p@=3Qy9>fBfipbA}bQ^(u@I9 z0S7%`e>=crWpuW4d^I>U7Hv-UDu{w4i?K4sZC&^9_haya=?9c0N*`xS02>vvzdKgc zjM1U4mgBMDPfx|rXtNi zHcrM6E%WX$Jne2yb#?Q7nhBw&jGlTrrOi*eTyJ;3pWg27?yY}>-ug%At$!@-?WFe> z*tdIopsTl-4GYBe!4=b1y2_D@x_aQ2T|M}Ix_Yp?tNszX>K~!2{;{;H`x_V1xbYOY z0`#GN#bB1Q5&B%9ln|jb?+LMaopIp_*|8S)o(tY@-p~1^VI`Fy8ezjyNaIBBdwUxA z5(zH(&Xh;b^P1=c{yghvHv}gsKDUZqO-1jgsMXbxaJxA@fX?@aI(T2u7{1$$F*aV@ zWj`CvMUCmV#=M_`*xWtEbm~*r_4cv7Sqgd6{PR&(+w=&gcuyo@Bw_wyX*uh`S~DAy zY|yo)WFw=e`E~XL&@=1gZzM5~@+HkJWMY*-^A2b?w`xb9^?c=lD2gT@k<3D@v_F=L zv_d2m&YG8v^o$W)xTzu3=AN}Lm2)W--#z#2>1V$xAlaNBgy*KbJ+S0dfR-Dw=PmYB zLjiEbNX}sR1Paes%P?*agr5GUXpHxS zGGO6)_kTyHR?h|Il6)Pa#r5L+2OVP)W2!JJTs#OU5xoK_VUX~mHj z%{t<^kYI69D$N`-Dvjs@f~zAU6KjdOh^I7?Ez$*Z(4z?_ z8HdO+@-&eVgiyT{)+=e*G*g=iMv9`ryYrUD#BUI3nbjFU{{)5@`Cm{(F%pL6<0?H1 z(+mCS$q@)BwUvxuhFs#okiIov>H^&_q(MEVm7L?r2Gb|hkYC^+lGd~pm}tTeQiNJB z67hqa!*$e`;1i&A-O1m-zS9M0XSc%BIY=LyuS~*k^+1+wYadf@uxk$=rWVKgIG^M- zHH2nJoyFFg#mzwcuJc1v;ZZg%GjMCu6oX`NwK2CY6OL~1nTEizqv#bmh6v(l_j%5?(w~W{Sr0X2oB>Mpt3iJ(Rbj$!sL%`M zf%#u506=N7GGYMK!hmFe6IDzQMD*wdAqqMO=e4NY5E#}7-VrgHVwk`JF@^OtRqj}? z7c!Lr{PVFEK*5vL;g%ZQV$uh=N%pq_xY^{HPwWtxvh?H#aD$VyLn(t@YOo`u*RV^? z4e(={wBg5el76>?iHJ7*6w!v?;)pi@KTiAS_SqQe*m$ubcRl0`)! zXOdD#cvc`xDFaDc{r(n>V9=Dat|^5fr)o-B`CLS2z-kppqUAt>WUDi!$mJk`uoy^~ zum%z?;R+;LMuCVTnq;ro(|DB@uOZ|)jsGxS|mc`wU4=v79mYh7`5+kA1xYpAJ^n|yKe&Pp_%FP zBRxW|1^xzSEFX|FoYQB?;i#znsK=|R+X3J$4TZK?7;vtpi0*J@C06F5wn&m~OG)8w!S)%O(lI+P^6E z8&#PD?J^tfG6$-(W$WvcV8V>{0paZRqBwzO==WQU*lAn*)Q;J1*-(oIU%yS-dO)(rC zTg(d}YK=-&?{O?yj5Z1USQqGW1Gq->W1zJ&G;cik~$xZwLNMJc^1m3xzX za-R<0vvN7^xCw4@pWWil5oV`gtcLR;of@lrF9w(E1_pU9%USsK;NA!>hOF2dKLiUM zJrMC9KQnt2bQr!gv9CvvA6neQ=my;+Uspml-BlWYq)=(zA&rVSj^PKID({J@bJ1oh_h5}ogel5o#j=TmM04LCP2A@p zA{^>drCV*(ffOC8)}eH~FZqz?UrgUr=H#yAxX12x+QZmA%G^?wcpqa@2Jg|SQ>ZB;oO!9_?bwo6H%}^4~@!Z>y>tFEyQ{^iRF6D)pl$eV$&)wMq#<0 zV-tE1CN)LmE>cK`u)9jzp=XF+_>_ei9%q^>>PB`h(`*HgAyD-6!`J{MsS)v!!X^Jk zg-Epnqq&}HTpDyCm0p5ulQ7i{q2zc#)vlT=nxbem5kFZZn@WrvVwOS_jX2pmQLquu zH44UnpsYW6nMP_=CWI0ar80YsjH=AOig+5?Mk1;*A(g8k|0>gn{F?utz4wo;>&Wu_ z?)yRVk&izfMT&Y9DXH!iB|S-`OxbLkO}pECZH-$!fqtGaco>Yl1|>eQ)Ir%oxkTgj|*Em>2-q2engq3lrc zRjK9(Zddh~o)+eut2Snn>Ws9@SOKpLn!L^hZR6W1O2<0i2syh*J{_ zmt**8*|rp~c`BnuSLebN`|lTTroNG{ zbfv#^>(xS@kgb607iyc7<;}RE2Lu z_}_{Zz8))lwO!%uhpJFqP#tnRR=5@`{8qcdm4~YETd_j1Q#E-xR*2Cw>3>=$zPij?}D=b0@Aj%+*u`Sc<09q=AN_-<$SB!bhc*XdR7iUjW39uaFRvXuu;8GyVk|gl zreZ;!TP%hQbJk-BIdq8}Vjv*VD~eI&MUPR-GN34t+SMV7QqQ+zl*(U;QEIv!qg1a> zu+E6w8s8}P%t=}c-;LpWF}$nrkH7ooKmVV<`{sZ8Wu#x8n|el~{aA52@W(Olk7D=( zg@5|~cmL)8@&0$;M3Vkg`SeVgWwvls<_@9Ycr8A^6QAF*=Y`~tEPS%?{rLWFeE(j2 z|G&ofAIA4Ti0?m&&p(dOKZ?&U;|WCH`-!I~-;M9rVz?5+mk9;m_hbHdV)#}J@5J!6 z7`__AwHU4tHowK`2_4KK`m&;?=W6OqMNB2-C(6jId!AyY1BX+o|uhQ{SatRzl0M3HsDK?YD2Y%e)aY#+P~?j*@PBQmaKu`*FLH zAMrXi=m+iS+r6#ceoIlu!5i(=JMGlh+o`X$Q*XCZU+KN4L2K=|-)@)rR?OJZpyhVi zyg{FC(xCU-m3*HPu|e;&qqN`+=1IAtx!X&Ks4}TF6=5K(!7QuN_BG%A1LsH8e>7RF zUEe9EZsB~^Ka~_0rDiL;IRP>BYp$##&SmbJ5z8}4O<`p-nWxgBmqJ1nFU4t(K&@0! z)p0CH-ONs>+`A3yTk$H(VXC}WF{^9M*D2JgKqYbfqD_MVzvg#9w?Jj=K4^D4#}D=D zm3@d$3MabAUV3PeCo+ub`41P*6@A3X(JhO})?j z^rzRar}gIbv_iK|va0B9PT>I)Uo4YypM`g2K7|V(g>@X_$SG~^f+CnFhl$Wo+TQ58 zdB40nOql0eyb7^3F2^wV(0L&np1?UqFIXX>ezi>o)1~TY1G|89BQ2leNgxaf|M*nV zmR~8gD^Br!36y0@ldlF!$kQ(x3BzV)524{q_t|WR-N)PD)Pe3U=hlx(n(Fe8B%M-F zP7kua!ir1U(L5J!f-1mAkht%lvUm4n;up$mrg5aI1WPE@}-NPnn}0WtAGQZ zMpJW)o`4FT>W)HrP@;IZ4Ku5fTQlV^== zCRhg_kUxwD{xC>7BF`9f`d+2Uxe{rQkPXL9ILnh)4(dR~&1rD_M$BQw)r^O zuCCWHz>-$t6yz0ZOL|v6q6o|Q10rpduZP1lI&*g*G<6?IHwEA{$@`UjK#u;@h?{`C z8V-@ZTj|`3u?u2U`cXlZ-AwBcNE?c6MgRr^#M}mf(gwnw76=sGrL_Ju6uHm`MR;`1 zM5}h$I+X<}1d3A|c8V3~ZZwwb=+U)t$OhD)Gtfcb?daQdw_^~1*6}$!PEzB>{U_C` z&C8M)-UuB%K(pXCl-8a&w;+h=5zDWc$JcgbXMM8Lzq~$IHF7NOD_GC;2E_EZGsu}9 zA2p^IKZHv{MyozV4AIo4Av6?irl*&Ftd?6KY_2G6#`H?-m|jJ8MyN%c=~cp@IqmdL zh@TVIWYaI#T;Lj?d8@Z@y9JNKts*IF3@Usr^-O-4MC^DdxaE)C1DC_F~<#< zVXTpNr^b|q64Hit4Y>s@HQ zLs@SV*E}g+ZdSlD$H~eiU#{RkE9_u}LW+g~H@VsR0|_pe+$ULXlBq}!!NfdC$rA8z z97);~!U$3_v3bi=(GtzkunTMR8!-qIyYY6P1sJoc|5TCs^iNV}^^_e${r|1uXrl&jklY#Jh{zQiy!tCPLj**;ySkuLAdv&PzDd~rb-zu)MM;wz>!y&39X)PwH^dYJv=~a?ikjFjoyTvA5 zG_mK*l`rw0ubM8mB-8TKDa#i1^l+%%BF?$bLL1hw-M8>8XV{L9Sau$Z z^c61kFUS6-UzU{w0H=`3w<~f%aNo?fvHMPKN;#RoI_t0C1zCwekp)g=5x!Q)&tn;awsGi5XYR)ggxLFx@m-`2%a1Dk zlVfg_vr*gWo*hc9MdS(9-&T`=->6}j9eq95*yU#knFWUY&Osb<&w?pu^elreiYD<7 zLpVktzTwzLXDrD}9Ny^}If_A9+E6D3={@f;QQjSO2&p2@*FcG{zLvuFXA=Hfx&*bz zya__WQHBLfYEY<@Ud>VcaJ5pQ_9YQ*8z~$+v@0}D86ka8gf-J=7dQ<-z%fQ6xff|Z zldoaRa-Wm}gA8ZMXF0Bt18Oj&S&rvpjx%|VE9BVKfjh&^_YF4~s}z{2sSjL^D}1kz z8cl;kyE6owViSQuP{cJj1;?#H$4wU^VJ3L{8oS8Zwj8tDdB+Sh!O~o?GIg}^D+jr3 zFi&tthTd@%#ul-hvk!&FLa-1nYk6<{2Csn?S%+x=gA&Grta)_;pEx-5iOI14l-?Tl z=R5|^UlyWCgb=isqp0xzQH%@!ADHo`cC9&!D>F~~uBZ*t!Ve;);2-z-=Cs!d#Z9$7 z^rFZ3`W27qi`weZ*Y(Bk+ZW-xe6e_Z{TGW5`XVF}TM1TU(=K?7FP`z3zW7eZ7vHik z+B_k@DC^o-Fuz%wwviF?uP~|@vaHK|L}^ESq8*)VN1?=ziv9?S8H?*i9UA0Wv^qEs zC~0~?=7<|pDCOeD6rCXVS~Wb348bXDMIG{&eocc>BA4zD%l6yDn$lergX!gHuOQBwk7}{4nKp7$lC5ILUB`{ajgp zuJ$E=gF3H9SKxwPGrzQZ6_AFP`uwq9%O!s_!9mJ!`4X3iOKv7(?d%eWwwVwyfC?j8 zrtx|vspC8Y+4$lm(YW$Y!L~~W(E}fWjW7!Z@-b~9o`)l{Egi1nDQ8jcRyB9^0IfW! z30{>Js2U_-MO_l169T{*mN9Vi z)k#`m;A?0Dx4@?rfX^+BfIpCfuVv}KS@6G!o$_Vc!C{O_-VUJwwRCKUA}plAgb<>p zfJQZ})uLu0#o406qlNJR;vxpp8r1o*i zMG2c}cym>=wUTo26iJA4`-rJ)`b82liKHzFnNW!&q_-ax;jDx!1w;mfRg;XYG?I~( zlVoHikc?n8JXWJAt(K7l9NQxccTcT_y;k5Ne>^k9>!cq(%OVM2_g04 zBCOaJyK6=GipZK7>uo|UfM4}&0l%+rYc1o>l<=QaxYSI(TKzi(QyxfwB=c(&QWS00 zomkHglw>PQr$>unzQspMq^YMa4;mP zzF#YLT|Xp?fsYfrbww}BwZAM*)L=K1U@DzfP)}zRjB4IfkSdr;GX?c@uYx&NK2m6D zhE!m;v*>Pm-Zj!G1@ovd$)XFa$)bC4nCWyqB2OWGL_sZ`RZvNfDk!IqDoE1DR6Jp8 zl|Y-_1R*`3K%3nJmGq#3S>MssHKml(&1HOHRvYMOM^k)ciU~c17U^KB%qo$qqr=QB;D6Kg}lTLR26xG`()N&2=kO=Cs!hnGGwf{NSz~fpHlZ*>H$y1 zxgi%-;9j3_wtX2<7dTh<*oC`w+RoD`020gtH90qgv9=^T_Pw_pf1GKE10Ns zY^Zc~ZEX!pXI|+pdt=AP)Q$agBYivSU2Fo8XaLh>fo{0e*C|YLDfXrt}9r08@IWkJB-OxMWscy+lLs45=2czY59p|F1OW-r} z{%ze)&eN2CTfTO9k_R1vQHMFui9Cr&2xMhJkfetcl+!r{HJX)EjtJ-!;KY7zsGoUD zGh6*U75iD2uac7+in(BWp3$j0QIps_6z1}dg;qevw$+RqtWOXh%u$2PJ_LT$ z|6HRj@-A_WM)KgCP%GmzECOB7ac08~~RV8W- z;HjM4h9RQ*w=0KCC2iffs3olw%?nhUk<5 zB+6q&If(TGL*g+(fO$9p8F#ZB9MlqYL?$28v4GvJZUv5qK^Bej z&LlTC;==y4HknsNHqe5z<_62uh0H{#z`JRyF8`8AIA)?$@r$ zuxvz_a5`Z(p*_ykj?l4@-&0JjLKuHdqex1x-H%#H`%7dLC|TO7x`h!XPo=sCbN~2anN9 z!XR&H_^ik1BY+eJ3;bA1VqNr;kVx(mZU|58xFeC+k|UAWNk<~FvyM7q7lls3tLag1 zq;RHgeoNha)UoOPwyYHIIAOC%cc~|oSz@rl_w)>zT4DNTO+{>>o0V3cN%)VQMfNI5 zS}tUH^yLB@nsQl}xfh}rvcg34aU_0>T1RCWnj~A9u2>h(UXUT%y~Z8Dd|o4q=(|Pc zSMEb3nuJVywn^Aq%lOS~sMt9(qTu0uO66prhG?j+6*4-7m&-~Z3Pxx&(z&9g;~uL$ z!8D(z&9~BKTWO6}T4<$VwWnGr3js(6klLp0%ersS`XyyYw!wL3r17M=#{U1I(xL>8 z;-Yt+bxCY@RxznV=f14tKaI^1qX9OuBI=%O@3|aT`oND^ZJp1i42di^ z!l857e)ZB6SuyZLpJDt4!&kP74W*_oL7;YIRBmP1zpT)~ro;|iib~lBn^#obE@_?a zqu=Q}BS5K^A@z^BPmJby50hGbK(+%8Q4ng-Igoo`fOk~?vZ-R~_`GzRK z=_V8MbtN+PzHc$7*q#p~vH&IxwQGg6;F*7fhYQ25u{3+F>E7s{Z4sCeY`(E zSW4IxuZI0hXO5~q#W`9lwDqiJnA=2*;Z4X87yHI=)~_^Bw~FmfuSR^yphx?M%Y2o@ zzYa6Jy;}(-T580m={eIGb8LO>U<7=hBj%+ONQ&l|5@A4-I(Llr=(Z29Reh3)9mP@{ zET;rlRk$ZL<1KlKOzcdS#2l4?FH3sTlsnz0m`qL5BC}Ay-OyAbn7(IDjiy*fAzIRv zWp#OP*vm2t1w9FstdFG;{@d8$V9|x@o5Unzg##ZYTY{F72RYqjV~H#kHk2qr*HdeP zZk)G6%Bg$WseFXGCWRSZS5SbGcQg!;h|RGw?N%mmHiC$l?Gd*|$Xd&SjWMmV{LuUh zc8Z?Op3Bl2*ANw1n{8uL1;LpOjxiL4e0vb(fmT6E7$g@QfHfA^kE1ov-ithwQdVbp zxADYa=<+=zOj6)8B3KyASIk%^a;q*#gzHjoia@x0oUn%-nq4<3>_sJu??p3Fq&#>k zIEG4)0^_GYJII&~2c`8#Tka$xek8&WMI)KoI5|oF9wQwkBV(VE+P}+Cg3uX>ng$3R zkPRJLrpG*im^x1W9@MA^mzv~+d>Ziftp^ZlEO}o#oC0tVPyZrehwpiZkA|pQPLK|1 z3(N>#;C6@(7`uI?QjQ=YfJwrZm)RUfE+Vys`TbzrM>iHbJ8>h7^kw0j+C<5_lL)&I z<@Nn~avj`^MZqobJK@edMtzhuhrHcJ@Ffu{!@@1eMD<3d6{lbDVB-Oovqt-UPW7~u z9m`pE8T`(jE#)eXl*UdL5UC|h_alJPY{Ow@~4*RqEf01Z4xW+w0~V_ARnoJLA~r8}=>A+Bof3 z?nJ9_`xeVGh5>LwV60An3_LTFXdP7bZy`}b9FgyZ9!AzpxZf!fl0*)T3QfOEKJCG5 z%Tjd)T~bFlaNedI$r}enYm)vLgC_GUT;@3(Fc&R8;ZM6QktzuoZX77rcsE_nJVGiIC1g|AOYnj~FIdKS`v5KK&wfXms<9KkMagu-AEF@tQ9 zk8OJOzHUWXGWewX9nmJ;tmSwWoPKOe=R)=0>5*@6J6i`U6IC)Ji5NL*qaZ(bCl;;s zHE0!4l!Rh-Go|2+isT+Ko+;2zqC6Cd4WS+2sewk6r$(;zL>Le;`5q{m1D@myhAaVX zDM5l_l%VD+=Q74jPq*Zy2D6SBMjfuatPp%VgZ4^8#gld}c#?*SCv`f3I-SH(@53qA z(AQl(UiYqSI3^n2quQOIfOKFK4~`xw%XyNroS>Ye$Mj?9cU7R~eP7P|-cZ*1FA&Ak*ZF}-Y;p%^ijxD zmim;XQpte87zBCBJ5Oo_EhlmoD8;azy&TP8JqStaMf*PQ&HH;!G#9KwQf*@C ziAvnF>o25~%cAO=y~XnNLG6ycQS{w0@G}SMnWW}?ylKaVr+L?VY72p@J8TOcVN3Ea8slXuM&#gno*X_52O@l^0u4TNj93V$tvmxCdgmXvo`DZx^pmLW zlt5?NO1IeyP#zOYI&LVvMykmApv0y zJu4H)HKp^#E-7Q#fP3aQw*8F-xzlzb!mw<%i@-2>E|pgLHJ!3RhA74?h!R}C{dytm zL2l^Ioszv6qtU-VRupD9+CrVU16?YgIyfDra-O% z2{0gRVGNeSOm{hQTd&-KG%TAvio=O+&sJ+y@W)80Nozx)R4jJ1ucZpCpQ7;Btm z!~v_lLWy8sv9tlJ0V?5D1vXf2-bP+Z>;_D9kH?X&xwsvJV2!6a`rfvvID;~84%~Vl zmqu8};Za-5nPnhgw8^#>Un|le_hH|JFpj!J|H&&KTL~fzz-j*E_ZX0pj^ZeNMY=nb zQD6>XNih(IyyU8?(yYf&TsA1fj6;UT6D2B8EId(~_t?C&ES5GaO)1RHs$B9IRi5-1 z6`l1M8r6#)qrPQ9K@lpv>M^PTg_cO&Qc&~#Iud%5j;S4zL~Zj(P%xjSKAmJfkDy)? z6~+5rOh=-Pc4ifM0U(GL19j+@rcjooB?r$ zpyoysiJy2cr*`69jyNe^kv)3@B^bi(Q^-OIT`5gkf^E8`&K|zHsCrIdWf^v$EMY!9qK*lg_Jj~Ih+81Xz zNh^Z20^Z(Ok!>*R4w^a020Cl%?Y>QXRJ+k}BU)1_B|u23ew$Lip@ITAh*^~1W#uRH z@&`9;Gu!kbV*pChv%zqLE{l?Ad-(D|Uh(q`OsB$L& z3*FMN*>1m)2>b97I8kFtG}MkYvZ0~;3%tPz0XO35jkz0$D1=tQ0v*JP_<+Ps?0qPx z6+#)TlWOM5l5drYszbzOIzQ!ARazk+1~Hv5cVJOsbfCj^viM?tn@Xzxr0AaJ*8WQ| zt)emCU-)tRTSYmfrn{Iv#mhJGs<#A(DJ&#sobR9HIN~*Vhb@W;1x|BzVHYRnX2q3Q zQ;a<+gagHxFyK~-**s;-WLC>eaZ0njDrO+2A*I!cRsU|OFm??l%`^YoOviMf@o6hv zt><_eWws=kXQCu%`0m$nZGN%S&tyoVmV-PU)8r|anzpQ)WnA;Ff|x*%IA<@zBzUU% ziZQ@xDX<8WAUFY&D2k)P^;y|S*6B8RkvmaX;jq*VBl$BcB8k8K`Lh;BIvC0k$k4qi zx$S9WVK~(d)8B@XRvIouEseshG*qZJr~s9`2)xK(Fohqd%0&GYs~b@x^iUEL0xMs! z5_~DB~_lOnA-21hShfV%e*ps8Jw z3_E{&v4@)?(m^AjTpt|dOIi68!Wwe^X}iuKkcLO+xGlv4wA+5b zlfOTJw{qw@9R>k8Y?B<*b!x(n9p%z0f=4xekja?OWt_mN*#|>+{NxM%$*w?p`=dOx zKgz?pkDi7kYkYM5CvmQHJ{`~}A&UX|_ZbRN&nU#UX z5G;(P~|NLwJSGr5VrF1vhiW!aygp&eGSWDgM z!Gvd>^gw=o5N&WRgv`O;3llDdPcTrianyQsw*R!mD8v=r~-ux5F(9FuszPEE-MQboTwa{g6_-=-4x#e)W&%*Qj)Cr3p*Mcf)UxoeKqZ%A-P# z9UVDz7YZsKEDSh|+b*bN)IeH1Ll!Kjh21H16^ruX1>){??$*tl^=^-}+RMxPqK`aU z^ic(OlAG=zjNbxP_FQ{c!Gcif^!cI1gVz=$!;*e#If*7)Sab{Of4zQCEp*(PQJ zOtwTX5)H+3uw@=D#0O>)N!hy;j6xFxHOPcjZzCkBj8A}YwmPAq zF`cWHh}aDgv69dOY93HI&aN*HnlJn40nRiQuS@v`P2NxwzAj^zvDcw48SN}ztxEV% z9z0cjMxL_IFJnxoEQ;~DL5cfTh-4yqE^MS{0921_fODG-9FHbVx*ntnLx)|~{ukac z(aKEK2)n@(eHU1ygKc8ZW0|4rauAq!ItlWj11_pZL8ZP6cE=|{QecZp`k#j`DGt9-M=D@Rta37U!^qOt@OcDc)+4sb(*|hasA3bOdse>=cF1Y+ZEhtqlNU&j2XpA1b=ir=K9}kKRqZlTP`~E9IHQ zb{UJCO%RnZx20k-5AIEk3R^&O!i`URy7-AkFAZP8IcWw2C6f9{;;Dt0it>wZ6=|yb zp~-#X3<y2{!2BW>CDu{#lNSt;bW&_YvewWR)H-ww8n=wyLpX_RkgrD)Y{ ztqc`-5sEH2_em0oAvZy3Hl##Fe)m^ZpMX8sC%~r)yHwFVlT2?>sxU^`=JuK`g6~^i z5otHOFGv(O{({o2dF^oo2V*m{+CS9nf-GnOn50)(GDuasEZq$NK~*n)e$aGQlG2EA zR4qnE40?7)exFmgW6(ya4zDnYuo0!Zy6$U>ADPUZG4YYmx|+$PzAZ2a6Val$H;HmS z6qw^hHT~v@Np(Uu{j3>;e+GjQ1%nxcLhxO}E9zw@okD&$uS&r5R2u5=fSER=KzdgRta42hG-*n%p@kg zZnaOM*h(c`c-mpiF;{3Ts*BFo#t_sDA=A{4?s}z=!4u9pQmmzC?_n@p^xnai*dNjY z66QcxrVL1Pn~Lt0xy$SklWZvMLb#RVOGxWlanb)tA9#ij(N?Sj8^srGl#zJy_mHJD z33s7CtQ|$I(8bN`O=)Nz;}_^V}O{mOl+U0uVgySJj4dt*(M zUiv+UWS*i9NA2jXs`i%!z*U3UWIvoTNc~9AKwu`2vY0^1VggB01a%}SNjvB(2_!rb zRH)9D30zQwyo6xB#!8;`q)Fqu^`Nuy5}r^is;MR9m)0n@%urkM%-mYV=#iuL$J8zPQUCHaz4^ioKmnsdl~!B_U0IO}H`-3q`(YN z#@GaNZ>inF7!$nB+}tN`{7f?#1%ehrrPwHjjm;cVEzt3ow~(<*NW&gPNW*}{k;Zoo zY3*+rb*}ps*QofnL}dcR9j3zBjN5O)VJZp@vDcjG3u$bN(FYM}!CJbJ*BiR(;`HpT zNhe^0YiPh;*%8sZao`L-3<@~lqiPKes_{|^O018}cWv*#c5Gp zY=a=%X_`Sc(wt7f@=c7fGLiL4;OH%1zh`0-DX&|G!2zpglHC&M%Z5(Y?q7!;RwN#4 zaBVYo$auJtjhsV)Hj*!aN?}B6FxF=1)jAVdfZdzO>T7)>oJS)Jm(B7Y8An(}QcV>@ zyY@%5-`}oZvJ9onVJSLljZ1Y3t2O3-{8DO9Vg0_sK!-PC%gQ`Z(P1_GLfQ-mVi3)} zUNpF&SML2dbSqxD9bN;10~-sK(51tGVtH8?buc5Fk1X*Tu^#NNLl>GC)(0}|>q?o& zCGR7rvnCrAq)sw@F>{|XS6#4YVJ;eFNOv!=)D272)6aXK9|Fz3>4BeB6|TSTBNu6k4O(=YU9yr`#7B z_~6S@pLE$OotZKp^ID1`X?Q!RB0;W+%j#O#_AIm_Z?4*9hp8DkV==KApqvuM}Y!2g`fIv+iRAYFc<{C7h zF3=Yi*L`8}=kSGDiAl&Yu@SRByH6xlaMQ!afOd8N_hO-{JtIVab_r-46rnvM7>nJE zZcaPs#?%y$GO%I2jjRG!D97B|F0xU^io(|DP)3<8I$e=2eVzQo8L@C$$CJ=dSrVN8 zS4Gsm!t>sZQ-ba}Ky)2sicxKSDu|mS73|dtI`Jf=SS2CZ0;AOhPd%TORhP6t+NS9V zU1t9xX`L8L^MuVlY~E~Ji12 zcpx1t`M>&4x{3qW%R0%*&Ov1gaahbyR&71TcKR5I>hm+IhllN=HDo`nsaPWF=s zk35}Bd-QY)-cGQ@wrfQrb6WFf7&@Q9=^MlucIPw3_!MzWK|!m;uBZ20hm8l~wU=H@wh0K!=ecyNqeo788g)8Gl0=*eM^OU zATur!peuSIJACV2*CXVH-CUFVv5nkzHX+y+vX&GBivFw$TC)E0%x09}UKLYJ@soj( zAsCgOi842nF_5wU!udNUXrmINhN*1$f*#9A5pP#-E*N14qNvN1kvwV&r`l?FvhkPnn!`!zhXQ9RX{HZ+ z(#~hwlre;Dce46R*Elez-p&T;z7U4*WIJDiw&)=A^UB8+Fl1uYuey5FSKMFn5^MQA zB<~Ibq_F(o6AD(oPZ`qCtJKV#l!1%>w3|6uZ8Uy#3L%N7lW9LBLu;ACb}A&JqR_e) zp297SUldBq{Gel(MZSPc6_6X zEHxSE9=84Z)k(X(leBP?&s`XR9fwx+n$-QviCB8jEy{$-7{0y9tRjWz`9$IcK&|C-6lfh(HJ;06_u0ochBu#19l` ziM-fv6*BLLSV|HM2)LGwJCkfdt1%%NiuZl6Vkg+1^AO@W2Is(eh!H=ccVrS5yC?4^ zs;Fe!t*NLB0bV~(61 z1X=wA%|}K@5hor1YZmA2`brY&*PbY86#xNqLkf()|`1X*i{^u`6Qfmx&geV&YEScNnG6Eh#56RARVjHW-4wCc2=%+1W`#3SnCaAQaqYlud^aS>F+|6aQ9ZKRcPsCxI_Q;}3u#^6D!n4Shg<66q z>ih#au~AgOWXM2*Kqj*i1Hv>ygL0N)%b=-q5|N-n-<%&}tdn&LOF0u6(7d=tiRrpq zx+@aUl5i3#Y=1TznTT(*(vt-^d?-FyV85?fLu2?`*b-tQWwC~XPF3W9r;%j(t6jZ=t1T>)LFTHi9D#!D$28VV$;Ew_TU45U~r&_kj! z^cG!l1BX+c?aegSRdLG=Q&w%ct;=Pq2@u9C8*@Q09b0bEtj8}o^{+ro*4TN7LswUr z(xMPuMCJQ!^R12gr%cG)Obxc)l81F&>*8z9K50#k{?I$Z=z%6nFH{seVC)18?qqX= z(+!#*c53^Re-r>Sa1r$$J4P_6!6%{h5uYfrp?<5 zV~+(eqwiT!5xZpVVJAH;HB7S?SOoZT7#2CPc5`wnvO^Jy`BtD*5@5e4Y)(`gcPz-L zs;lvqCQ3Rrp(WOiMPF{vQ;Opam|;8=nS+)Zh2(L7N0BAHbbn0m?@UKEy=gky>3iyd zRz+daa4g<#g<%j@TF}a80H85PLDWGkV4|rO9VIB8+zMN_fqeP6`Uro)~~bk`4i!_eY}Eq2Ee z{VptZZGxpjE$GwT*V}0@U_!v{qG7$?Oz3cD+7BOMX z>tBx#n|ph=@{Egp#j9`f~+73nImP#ky;6kA%qevrjtSdMRjPM zK#s;ey(1T8N~mF}S>E{os?4QOCGCE5C>dz2(GqMRPR7XjluI9N2Q)#P#xP8G@t~)7 zxM`BfKz3zMUAH~Bp(4wSuHR4xz| z#tqtbpEM7+JmT^o6hGuFXWWgWi*^pkb@YCK;midmL2=bC|7`ecH*ub)DczeDc$WB& zc+XmZ<8oa5cvEL0Sb(8mOR01p?iw5(z2X$bFsDWx`=YMF4x1TzMe%x zQ)b#{;P_6qqexT{3f!}TYU!sx{pr7CI$sKjFGO~81v0?ssxp0FD~mp8MyY~}@C>4r}j%Wc9#1B*7zuKG3R zrFF0RnCV`;tPBC=pJeR$TGebcb=|Wv+x-EFfnlP20hn}%oyuteKs<|jR@HoVSsN6b zqB8hJgNfuD=>Xiep?fAdC21?!Y!+W{+hCd&lq#AbqNe49*LAE_*YSs`D{5_`D(5M$ zYqnL_+{4rr)k1FP4(GHsPPXa_TdwP4`3kH4X|Yhg4!OMdA4`WtZH&?RmXW9}S__-? z*e2%_v7}ayv1pa5X;w8&YP2KPm=Z>8C6sdhA1zUf2v-7m3m+-Q6|X+Rq@jtAJm zq_TQTcS=m>DQshtg1bMu&GYneQv8;jG)-xHiUPQ9$a+=T*H7btC*i*(`6KN8&*33# zWHkQ*Rot714BGC;KMZarw~!xSlsC2a8@egQFAgZy%-5>E;*Ol`D_!fp5(aPS2&MY6 z%jYT}M`qA&vVo`!+U4_ti_d$sAaVy(dua z2U6kkn@Cn_wtBInbng~RhhFalYEZ9t)G)Nw8iu@4PyvnsT3s?qqqx%9y2M^pTd$CY zC2PtII(CR<=x=41B!ezIh{V=GI2*}kBhl!J3S1V5I0>3ROjx~6Vj%k7--9*b^?)e; zQjq-gGipLEBeXJHifrpbCS!4C98#AHnN&o~8$7%$oinrD^)Q^TqO^s4uL^P)cMuyE zQdUJv+0R9eUN*+yI0 zh?%XEO#Jx>XG3&UD=wHY?2DHE_9-|XY{5RIDKgf+i?a z0^=Afgi=PnjC3y<@cM6}1Xs+?4IwD1JLmw1M4DHuaK)8zTBg8da%3c*$wSQ-Fr{WZ zQ>YTiIaa)F|Li5#Cvzr5$y!l&=5Ba$XeZmrA=FsPJqyS>KosW&Z_Bdnq>eP-|NGEX z!{}@g8`|kG@)fy(8hAp)XVHK7=fC}5otDE)f9%rdJ^K5+`DfNXk!0hX)8&XPo>+GQ zV4Eb5IZ5J=Lvlz#6lw8OzSJMyOsz89>{(BQuwP1}7O0{EjRzPc=bHYzC^Fm*7Vz)b z?7otXN#r8`QXrQ5K*0Ht-6z3mImKqxITmX?K_^%&sO1*J3xbZHlh1r5SjqZH z>~hAHJMk05)_uaQ_0|_{SJ(bT`?GCO=5>ujNz{)dD(dH^X(t$3YSbTFsH2tM!j9t^ zEHYvXEoRkP%syo?`@F>rB#T)KEhf<8z*%bP?9XVlia-A2Un5?qxga^kV&c*Wr7JkwR!rKMU@J0+@kKyeYz7j*6 zoLO7pL>4Ysw6k>?1u{VBrvmvDeHrqgeUL0)4Gm_mc&7sTHeetBbIYp$JAyL#v(VKD8Q@ zoBpYAUhjStlO3s2{L_!)InHs(L=_u#^w2zL*NKOz>p8FMgx7V9 zSw}~atJ{FJ_U8rs87)gr;;Guh528|aj8H-W15pyaiwB`vN($Bgq)_O-MjCy}|K_9$ z%dE~vEiF3UnwzRQ(XpIXF&W8?9NYNbofvN5ILJ35IiVfhH{sgJ+%l2(-jXFRiN^$d zt*azj(NHEPUro3cm5!iVX6#h|q)@<9t6@4$u*Y;MA7i-%JW@6uKak3_%MOsHgkX-; z`UhA$aso5$VwDuvO?=FJD%s6Cte?wW>9s^GFNS-!$kcX-)F`c#`UIGRaw0DCq9L zr1|>qIF4oSrxhI=L8_g%Q#|?lPERb*LQ%c)G|og=n^pg$x72;T`&#KmtWEAFej7XJ zEdzc@PCQDItxFQCb#|5?Hpp~SGe5}Nj2p9MVL?2+2c|CdGCzzeEal8dR=rM2P0Lp) zk-;a};V|blMMjakQR|i@ILk5~wM+#yFdkDAR;vW&FjUyGMQfQwtF2u*h;Rrcy6K-E zFFpqx=%#7WabnnT5<5l=D?nncn#&Jg^HZ&wkwIe3bFG?ZbC?rq#`mg#B`}|*Etva( znXPkCmR8>Y6sV}WMqa@uYfo!AEb8Im+fvJ6gAZTxmRb(0{a0u?%ZE)+f4C&)bzO%` z6?P2>b>t5zx*q!vSGo6rRqp7w${qh!`Fa8n z$T(sa$oOFr0Yq5)AOJN%?-Bte3ZMcb0qT^}w37xN4$7@|K_r8Rt9+|n5GmnvcY*dK z4WZK-U1CiPH)CFK1mi_qz{;c@xs6s*nuW^ZfN?si<4c`7&~G#Q{afx9^TY2rTbxP6 zXejU$a)M6}$#5aT&8#JDCdqG5WLCS9<_Agj&qfOs)S@c)3RNSh7MNtMo_VZNaLL4X zfU{Y@!q4(wp!}{}xlFY3O?%RtZ(ioc9NAPLOZF@z5=)46FC?0gh;=O_5>SYh7ZR)< z6ss;IGAbk1w~#RBD%QJ@AgL%;S>I=z)$M!5F>=5bg?uBHR$963w>>ep?av@=FL$SRwRJ2&Okfa_<7n00l zVIkS;u>)-LdTjqfvd?4t7LxrQn_5T?caNjuxB7^`6J3iNL^oO-eDzaZV2XeWY=DpDFP!%lD0{yGl^@Fwy+$wZFAOc$kPjyqQ;Vj zWw#bXd{&j3*_9T;I){xKs7H%>&a1J}9p!o+qg-z>lj|*Ja=pb|u2;T33G<{Omq@yg zYvOJ#^347aVoKUT_V!461fVg zBPSx00lY3Thy8(6w6Sqow=Ea&-cJ+DSM1~^y$#x;4x=!WY*mM0NLzB8oq;;ARX@ek zhioHKyYCGd8abHUfyyN_ClV&Lazy7~ZuA_JaUn~CbLFP=QkDTCuo!Qm4u+VmP91pV z>JzCfVfjEDlZYV2aGy>VP3eH8#TruLZNzp9K*RWwo%95T7I3mQ%E~iIX(17YiLn!7 zbIwe{ri~Cx8l=ktLNVjr7Bk*$G2`79Gu~}6*{cyxd~O%PnTS++xPdEoQvjV#doY zX1v^D#>*|{yj+OFA~71?E`hs@)((>#f)iM z%$TOdjA>fTm?p8DX=?RGD!CVXU5!?R8`u~@70GuoU; z{zDM19)1N4RP_(5#oD#e=sbGI6qRWm#L7p3U38hG{d!`tjOd9fVG_5}1e{m5&0PljK>=hmvqOmjgz_vR+HEvYc^{n$#}DdpIOeWK1e zXtGx*KFFwJ-Axr*-P~k8z;=>~aS9Z+k;)z~IUCvb&)m38bzYHtquf?czyzv=vHl!l z3_&>X6^5u-M@mMhxYsJ4;>L$;C_=0-LOhg1JVC|Wz@^6PkAi3vDypuhRbA|W(R^dn zHqqHDj+gmqN4h7kZ<6{r1fI7W@T8%zD^S__dSM~J9 z`eJj(wo>12&A;p*sj*y6rJi}3s(QFNQI|vYqizuFTy$VJHK3YebDWcpx-o&6E=+Tb zu5lFt?!$3WZoBYl8tNX&!h}cmhDn@V;i+wx0!*0{?2a;=Y>UoUUpVam^xZO>fh76$ ziEPlYbUGW?rXZ%G>D0Qc)mvt5U|D5$z+FFC-LjT1r~71x^h#`^k(R}#qE^v0#mK-fUrcI zrg7zt5uLqfP{us}kzYhCj=}I=B+{!R$*N<{**%}Ot zp^y&;y&Iq~zVR7*!>6f5Lj_)DNPgiGJp?8>fedNz!xn`2e7(8-w;*7QAd^dR@o)Dl z6=kVc=ZGQdeQH*bYT!)mIgWly*{R8lm{oCJX;f0aavslCVO+V!(cA9)WwS3EZ+`f< z*e%fDQ!I?b(5v9b+`j)&PqF`cO~?6ypXOt_ocDnW@0J0pF=;FVM`#B_c0_m9iLK+2 z+~VM)Uqg`Xd@^I{XajF>W`+(iNxB_~JA6xUTNK(51N{N)TVm9NBY z{KL<;voJ>RI1Z_{hjC9yWLp|bks@W*P3SI`q8?-TkYFt3DU?c0Hm8TWJ2=4PtuSdA zVm!LP?b8_s;LZV%z&f&y-U_36*1APbqgD>fpU;0eytoGtORoNRIk@w$nX7tOrp6216N$oO9gbJba6r+abuRt%`dXehhuA zYBdh*n#hW7c9(CEoOO{UD9fm_U?2XQ;!1q;^ktsM!%!S+NjAdR+749=#uU*L-rQBJ zZZ5;Qh;NOVp6hFrL)l04avL^vb^Jj%J9V>zC<|&doV{=<<2+pflXac73^t0VG!D_=*v?KIy-EsJ8{-&T zs~$eDf*2@ic;XF--DVA9`!0OM(rm$ZPJLRB z>jFx}(xOcfa9||1I7>*%)1+hUY34x zvjxaH>(;xpA(3K6+eiNqYY}ZLF*l(Svh7#)7n`p{b*j>z^W-zWS#``aFL`3z*F5Qo zlAKvT%WO!Z?FCOo4`j*O)>ZPdo~ieC3|}X7NtjRu?EL8}7NmcB9J1TmEc!2a^HW=v z_^TeN!EBSTUps}})z=G!%7$IdB7I56^1p3zmexONiQzkInx%oHbrsK)ZxpsmK4^Q? z8ijQw2=XxZuRLjaPu^qvI>TIu(To21+@g)1tM5~h0zpO z7!_S`;sAt}y6xMCMr5)WFCEfdHGXrDb7ft0#7$Zq_X=^x5I5T7_X;u81NR0osC1K1 zIdGGZ?z^G2^oxH_yNbFmNc+;Tl(;XA%Q4%R{<|Z^$!le;*mT27i6xsAyPzhV(2nz= z;*vM^svPpETkN33MHNDE z{5xlulAkSLwLB3jZEjN~=kAmBkb#41p;D_ZtH*d*W8VTVHvo(4E zvl)Ln46-!r=0;tUI8U)K?9z35qyQj77{gZ4ajMI9s%cI@r*9dwAd;6k4t@6af_hFRH{on%LLexv$le21a3gsAgE>Bw7V;$ z5Ug%vCQMk#@?t8hTZ1GM(-C@8M|9>*U4jlHmXr#wAQciDoHv2ac6-hmhkAy|M3zyc z=xwWrUUY3AF2mI}B;#QfO7!tPx?Efad?c6z&ap1Ym#0d`T`eI%J$z$C*X@k(%4@bt zN4(NKUg-!z1glM|MzkN!Yh?wn%_`hUUE92_-5LlLt7|){^4-7}48UQl%XBtL@`5_p zWnM*_g|N#gkejwRaOE$)5!1eL$&L;r$u}-l!PzJXf?iBC#+5%Y?&c0L{= zON`1wX4Bpoc1~UU=J$zj78EgWd+U-ml7Wi+C>sB^i$79X_*n9 zu1oH6jOvXc+SFX9bh$FO(UmkR3`6u$k7C>;BxFN;+q|7>KN>CJ$9l)!F<51Qu1mbP zg>Dh`DqNUjt`PAm>=i={i}k8~}o#Ct+r2U%mCooV4nuQ3!Q>(an8ux7QB`GMe+y!DNSAv#9i z?FnOQII0?EDCY+>oh#Edu;^4{K63)8qyhCJjLMD}JRN$!ll5{E1FM6p#=R7~LJSNO zyNJNvyPEDWF*z^EP*h%qqB1fRFGgz%L^%BH+SS3Oz!kzT>lrWp%L;d_aCD6}PgTLb z1ZKdR5?0DURe)*vJhtfb*s*mp*9o7pp7*)xtjh}Wrb)Ro^eG*36~qx-^zOL=@~ou| zzKo@iuFNzRDW;x{0SYSycoi>%4O%OWRwft&FR(3>DvTE>81!P47d97O#Gy7Hz2Z}% zeN^32r;x5l1Oj$GDL16(GFM@1nj`vh!Km>jD;b_H(BVvcAQTco;t&8vnxe{^^trvJ zAasQTR=tMVqT8_73`muh6OU+vh0zrr;Q`Bi6*Kz=c^sgT$eyF%PM5*?-bi&wf8S97|0QIjR$+pO-BY3xE1 z^{zPjt_pp57a~2Vd+0*C#Kt~dXdOc;T__~Qe&ZHabqv~8bxeGr9+S3oJzDSSD=NFt z(Oqh-JJy{q6wx&|-~HP%3xPfpY$rsb4AOY+%%(`~is!vuP8h@0Sn$Uy4_olxFBf{m z>8bZ;b7suz`dOZ3``I1q!_zrOc<(iXuCFtLE_)Ly8D!yB(6A4;f-dRQLU(Bq*}H%% zb2(;WWkc5mV!1CJ8wp(2gIOrK3U=kf12V?bGd(hG#>&u*y!ob`ABf+w^MdxRj>9t; zIKsc>t>JUy(09sgtvd?sv9i`NsM^0*sQ%vtw^I7_Mov{ft235Adm{PS5N~@V-ToVS zn;&ure)!uDTkuc*QgQhDjP$R!3vp2<4w-271HXvkG842|*{3|xj=2>fF-})%HY9f3 z4NQqK_t~6B^u#>!yuBWc6C#Pv`vQp=$FI?J*!z<@iEXhkFSUwAmvkuJVpH?QwU~H@ z1K*z5n3sjSy+3Q`!Ob*RN(sAQuz`4r4sl9uzoKcJsWb2&-T8=X>CQ)VhhoT@A$Nr_ zrb~V_{h`+mJMu@(cpPxgAA<`rtaS8gTf*;BpidkBWaPw8uX`L@|2BSF6Jy7xnG`xd z&BW08X$F5f2=+cHp3mgpxMbIu*|!f0gmU_{0^Mv*&`47Sl@y*!_os*95wl#et0c_K z{0cNZ?DDG*UB%Aom>gvm-bDpK&9Z~lI6;CmLr`O_Y!Zm6r8zf0Ghh6H?Aw`aOuJ3e zk@?~eV^WY*O41|q#UI5a+f*fKcE0#wOtRf6l8(+7KZ;4Va3pDNzW8wwy2J;YmJ?rD z3r*w(PU7#;Du4?{aVo%UnSJ3#nA0|e)=JP@BYRXiiB+=4qC19qHm#hG-(bxXj*^+T zQ#h~ieC6y=?zSP@t9(z~$abxTSnMR zF^7$ABuut!(y=O~>6EAa@^^Wf$evPH98eSS*fAR#TsFS}xKzL`3b?}#+?Q@ZHK~AG z6mW+fxG&!T^{if$3UG%VxPvz!0p08hNIGqbl=@T-S+kf!l?o~}^;!)c7F34?6$%GB zUQpp9*jUF?G{Ohbe)U` ztn2ox!b4u6p@RyKQXvq|u<)hA>^>FhoD@K|>TPoD*Xw*#bw1{G8se#Qjyh@jOn~r? zfSS#LEO4G+U7g)|orlAdYvB1Qv>8_0u4nH2;ejV^ieit3-SJ_s>Yj`b;Ovpmh!6WZ zJ~*e{iJkr;eKce-_88Z~TAk^1cxolxZJnQ{#cSb7zMVDr`a$izC+y4by7`^Vc9Z5_ zz;4lV+Bla$-ucMFfBY6>;;;YpfA?u_DA$6VO*qRTDt?l;sTWiX6$rTL@ivEpE2LG^ zJ>hUzSPNgK=UBF=C#OX{)>dfv5ooyGnbx*?Y{&j^AjS^BJ{G72^~jgQm-AMP(+Xo) zw1O_d5y}QoJ0M-)Wg5blR}}8C1}Nqb>rjSK)8X*NweY1J(xVP3C_18X^~gH33sRu^ zA|=qmd?|b>hiVe2tn+iI@KLj_13RGlV%ROHzO>dm400*DLqjKN4d4Em$u z4l^3pkJ#|f8JG3n;gvK4wE4ib#=CKR`JK!(C^zbn&59|`IKspcI=co?9uJS>A_(_1Tc@4Jjc6j7i+n(Li+1{RP@bZ@84zE{ zu|!`S6%;c9>d3uV`ofC&Hf_X9v6HQnjZ?2t&b$#$c+v>S(KOHo=!rE(&18-yh-KCR zqJxewN!-&nb%@0(-#W=SEFv0^Y!tI#G~}=hwqbdEjjxqG|?(-vvRVG{L#ZGt`Fi$+Xob0{^#KJLz9^^LM>ES+FU%_J8j8l*l6Gt=R- zYL;|~U3w*yT|h4`f2gsLtKpAX$k z!DyaP+RPJ5t20M9PB<&bCWuUjYO}|@LWTib!d*pH8?ep(i^LuYkE}>^o6q(dMA(w) zaTe_*09G<)LLTR`eR`~Cpuqc+z3fbT2uH$^6%2)VDKoTSrOJ}8tiUJ|RJ%Y!1!lrb zED$6%S%CyW$_vz}q+LJ`xnxUl6r=wz-_%%3ZN{ zS9pgOgVpPY+9$T#5R*Hwwc%_ zZJu3$UadfEGudLBiEZBI4+{XF9YRJHr1!S_uD#zoU$mCo+x8FaJ&UOiR31~LX3u#X z^5Go1S^Bq|ay&;R%r#;cG>YgV(d zXLkI9|7rdk?dJ$4evhh73r=6+IZ=LoG8C2vN!|evy(UAKBi#*S1gdkas9P^e ze@UZVwVL^hc1OFKKj5r7$0JgdHz_!4epobnt+5q8t-LES^NQu>Ex8BCT}&~(qeLO4 znX09VCYiwjZ;|Lqn5bp84m4ddj>G5}%P|#mlv_EBtHG?^k2xAKhwYbI9kwumh26y= z^Nn;j4H{?J6n42+ye5h%R=&Gm$htAvu=|<7h#r5bS-1jKbyrhatCH;sUfXQ+(2+p? zUXjjIf>8*@qB@9$b_?2o^~$bD3);%+P1w0nM9ot1;K`UJ^`NIFmWo*&HIbS&i%mW{ zk>W82cc5*d2%^^2a!?Sk1Vs z7r!%LMNRau7G?m#Tj7snN=@kPEP^9wJF3&cZg^uHra28pn?Dm-Y? zYxXF;H64Ipzm}E<7)+GS5Y8A})Hf~eykBgXA*ENlG03B`w^do)hR|Dzx_`en6g?ao zj8=PfN6(LjUGfkq|9{4Vctr)qnMfsS{7OeuXa!0kl_}&;ukvJUNQmf0RkFy*7&Ik} z;a7_E2O(@{*GjhY1)RD?XLx44_FB;#T`3<6;XGf8(OJqlb=GAV`d3rzDZ|be_#p%Q zZ0AZg`GPrFSAxKIHns|f*|mBr)RARY*H9&?ZaAZAXV7Cc$Ich^T7rMhYLgX$mVl5D zxYLTCdxVtV%HA;$w^r0ae5066u4KE~Agc2PXtrY&+SutJYLj&tln-QDW!(a#Bc`N6O=0=EczXu}TN zU9r=HG4Qr?v=ti?j5q zuQ}Yvj%UtUbO{dfPUM15Jp{1uWW-Z#?!u#uL(3qaD}j)nD`LX7YYXdmRq_TBU0G8w z;s%`41U&Ibiy1q|G##+uH@xqmLheknvSO587S74MfwX{F=?q>x6g!CR00N({!OLNn zHa|I!$Bu$|!_r-(v?*%COe!GkOUNT~y?zfE`A7N4FQ=HE;(VQXpqD1r++au7{Ak;n zW+Ne`NeN~xkZmSY>oqBC)@G{eAA zL+FA%)P>@N^)y<3gnhmx;&%1^63BP>5(y$%G2mmJRcA0^F_CD1J&BWoJD{Xq^>T5M zwP2ai$@*=>#0Ltwc; zU-|OyCZZd8=kQn0E3L_S)k4wMib5q>h0KkhZv=27ROS#y8Ua%;NCRN{fT(5I8hq=!<^I6h!nR1` zK)4QPfHZbiabwP+SPuJOA1Bg1{vPj*Ujr|!mBkYay1@jWtdVLV8t9dhcz|sogJ)Lh z_}II`Nq7-2i*qpsT}TvDF#c{oj6rYwNkO1}dUhYPK9B9-NR!9LIU_ZJzGFMqSr~so zZQW=~IoQh)+zIJAv}ebC+yq$eMi+;}Z2s8b5^cALrS&b; zVI#sm8(8#>=^|3!3r_v`R=U%dquo=GcuPH<(4mF%gT;c5*YI)O_dsyoZqx;E#AJ;g z7=vywBj}gTRNRvOBB+Qyv)wl#gxwJHj+Zo)g*x51VHO_xr+F`B=cYJC9gj4Z+Y zjE<$U+*B8rt_04ZGr64iuh^vz`bx8GDR#XCF8}RA+1L#=P8OEV561`=7uRm3lcH@& z6^vq;E#%Ok4Tu0u7(hJR?at!(b-QvxBx7?iKmGqNd+#4*S60>gp1sehs#A5UDyNd_ zbaj&M-sezAb(?6!qEj|OvhCR9Vn1)*d;Ld`3uuow`a1e0J)ShSjvnLEQbK?r0Yg$i zz*rka*P3fCvo1edpYUWnx*k9cizYnCAk!6*pu*_L3s&QS&1!cO0_MGK(;Q6^4IAa3 z%tz5yH-<;)!w;IdMsv?eI0_^(hoZ)bchq6(g@=0aVYK+rEIv#YAEt^AtFi}Jy)N(& zCvVe6$Db%2dXV_^wti|1MpX+5HO^WUnjsF&hd7oAb&Zm>`s}lbUAcjl~^d!1Jve5e}H*NX!3_j-jHNfu?Z4*8C!1A^eJ$gxXA7K z7_aK2n(m7f;_RQJXh6=aC+2PS;(v9w?$5D{RGwSoprST^aG2GA3ml2Y%AJv%dGIrC z+W|;841ntipe9#YDi0SY$mi>Bq=QED8*Tjln~K`us5W3DLYzC60={c=0F z>Q@>D2J=3R#_g5+IrYa0KaScocSMcd!|}jNrXDGH^ics_kryv$qiN%3j!EQa3a4j& zCS@a%dzjsVFx^7v)jZ#Sq=ga(>vp(9bmJ$&b9#_^E+P{LF|wscC+;y0uDcjG?E)d)ZIXuYB$G zD_8y%afu)2Ed_>ORQ^-+%S+fnSeTLwFxI(VxtK^nF9CFKlku(0vY*5eq5Kye* zDrC7AqEk+kvPT|=H}Zxrmirgs%|d9@17w)chfDoKKdCjZ@9Z?oQvb@q^0J(e5BySm z$3c3B-V1bvpsO6}{kk9M^@85uP;aT6A#bKVz?VBbvr0ontsJbl6kT5J=su49%_(b~qJM7~M<8e}bpx?xZ?vF`x~ z(J*i(WZI;MIi38j>2MVfbOJonYwmmhIX%!`@X$_u+sXiY74Vk8Rf^$L)%EXFJaLN| z1VXnI%L5bEB+pA5PIv}Yhha0ZPO3c5xXF`)_^;|v3R%xbduhd`VB^g&5U#G%eOufP zR_Xar00M}VzO^qBg34y(j0K|t*cQNA%mB9 zjcyS&gPU>nm4@aeNV8;+j0Bq{;n9K-OG1fFt0iw#-P%1VyJ*V!N-`B|UddcjuBzB) z^!V6QKH*~O=V+y7)4Il!cOO1s$;X6cy%o&LrBaBXf^g_t~}Js^)_ll z3^(U}Xr&q&RV>704d->`@Eh^MTPNFYX-DEU(H#1k#LaJ0y>zm>Zi_by-S~92JtXQ2 zP#3YPEUXy(C|b#Y5}R&|4}zoW8z-pXDuQ7RO>7=9(* ztj=f|mr9UXE%Hu5k75cA!d8%&UU<#_K}TC0hMY#6;y|X*kVjtL>dlQA~Crk zjG$hHKB3m~4C$g-p{~skAx(Q3e61MvKfjy zLl2&G9%N4`%uwN>JVWYxqMSBSre8IX$nt(dkZIbB&{_}kQk=cY>O=Kd&PPP=+1u_47fU?gno0&ni)$Kkni4I5;X-S8` zJg*EwHwh~H8c@$G;e9H3>JIJL6G4QttIIIFY3G$vr@d5hdy2iEtY&L#TE2;pj}m25 zq{NW#K5y}QvbS^~yUl@YL;*P}%I8c_%5Hnv4wc7FOKp=`l9C)MRU=UePxBJIA9FyF zgwzi!*ZVOG^tyyjAk5SJ$%bN5seR!A$lJgO#JMCZ7b#rtkpaloLxjc5=EpL&`OaFF;lrmm)mjGqR#!gf^(H_UpTkv z_LLKBeBpxQAO_e4$Ae5rrvWaxA=+mR2!mSHpc37{t11gDoQqjEjbZCEPP( zOtF?Qdy_V#h1aS=JhkHh7}i9p#lPG$5c%5O#}KUVe8=7(tP> zRb0YS2S6FbP2od`wOk<=Q(^kmXw2Z7e8e!@?66;fEmy00ur*|}gBDlIRo^vrvOd6RBr<>rLOxGHM_Ai3$-j<#1~4cGI=jkK z)AfL)H6@Y;*M$Z5NdE##q~?0fKEm^KU*UQB^5XZ+E`IA&YC(-4VvW>*jv8S?xox61 zIR>JBU7S*4Iot=K*FQNKYbQFy5;{|#E8*?f=yg;Mi zoWn}>h8UJAKfJgXIu-ag?yEKNT!;3gt+0 z9toZ!8yM{@oMQy0@r=Zda%Ofr#l+Cl!?NoUHXA_+jL@H&&Kjc8lawBSSN{us{6Pgd z6pkiF=1@Jn2?axuEr{?wyp^FS`$|)f?JDd)1#xj8J!F=wKN*O}UlRQy=JjN2dsrK{ zqONYr8e7?JNZY~uFy*lsX4_R(5W_%&<}hZdZ~gAC9Ox$QX8V}MwA2WmCN#(Bx(RFJ zkkovG(wm*jtiDs(9x+-UtYIQ|fyZEzVH$4E-n$rU6PC!1htye^vg9M zY)dvpT#52opy}(|`V^se!`3ww?7YZT{dA#P*?c1Ys+U$ow4lANeU7=F~CJirAaCk_ncu96XMY*fwj7as74?YvP;jXax_AQNE+ zd}OR)XvMG#P!b_28M9Lh5~`VXP$HQ7z`ML@;yVo@t3uX>l_lX_u&qeVf+NZ#J?tjw z;bcNLSrV2>wrCnsL!(2A!YHh#O(~Uz#fG`rWWrFFIAUk_Dl~XFwZNUkfQ%FfvZ_CE z<2t6tT5oioVmA|?sxfR(4wBjRcsppftA`BFw=`4Dq!U+4Fhxjmudk~wXI3UM;l^7}g zs2rF|BrchktW}}SHMO~BZRVC4C82Y*tj##v3-lmy7Ac~pHuF20 zjAt#Vd7A+yh;{t1E5gV@1w)II>YX^$yTgaInJ=6el6iG|3AZAMIcuvv8Da=b^{K)m zF=&ic=m7`VT<3w6^woJ9w56o;SUXlXC@e^(h^P!Gq*#WGs&t+)+8CTr;B~ZQ)^~)Q z2jc%?`i{YKZFCS{64!Tn;qbTx@WkvgJ~9ohR)w%&!!l*u zs0k7_=M#ixL#AwUE;BV<<|Uh&4YY_auQWYO*l-x3D!Y0%MVpwSaPd)TDmEpfML1W% zV@ROIUGS-FiVEdieu{!hDjcB!SQ@Or;jE(a6y++ZGMP4;FhzH1imqYn$L3~}&&^#v zHyc%*hRLh7)h{bG7nNy>^wMU@kYa5zgft-(=ieazM))`G2&1J=?zQbO3%Rh#gq4Ns zR1xUQstd@PDt|7^0YpaLX>9a{1!V>Vwq&DDrJ#$B`Grccrs%72t)}tL22|aH05VV5 z&hgRgCu7!2GA1&HSYNC)grb=Y!xB*dz+*Z(gc!+EC&iTtTbs*Qcm|#0VX&s!qb}Fm z)2cB3iC-)Bl4RHk9FAmtS5dupBBm6Hf`XIQkk()-c~Y}34A3CE%dMIiIh3uHdZpO@z&c*QnE;6_UG!7LIzGAqA4A0wh}l5mGuEH=W4 zj~u60HPF*~$0SWNyhD8_X{azsc?tGuC`fZOn$J;~9tzb2PBCXDiwmPUKNGU zLGB4+BVn}lvk9uM{ANoVWN_iol)uI2dabyu(BC;W_)yQ}gSvQa-FR(Xyte*x_BO}| zOtU~72*Yt#TTEIq2wldLguRFX#tT%r)zZz&uTB1FjXUbd{gFniC(h3$C0M1L8>Uhl zd2vQJaR&}zk_NV$B+{2iYMD}8Z^ZMQ3x_%CwtEB?YR?s>+0nW!ug)^|DswWhK|#uG1CyHGXC| z9_B`Bgyj=#KtyJKFeQKyox~HyiVJeKo|#Oa%KIiNNZ=@!m<9U1ucPYFxW4b^D2U@o zR<;P9nK-k8r&SBAN$V(*jl?zy;;Lwt3E5K!o#u!^6K4?ph5yHO>0{>AQEZOf%H%pP zN5XVkPTfaoG5X5g(k~8xL~`@6lAZyQ2z>~k9hQ!s;JE&D`JPm>p166FR^y|@x{u^4 z2aUBbcyPi?MDlzvf-q3spfM7<%V1;Z4gotJrOAUPF%>KAnF{kz;bR+4i>@gy z+xfp{>J$d?t>XigD6ZDsHz$xCf|hz&0j&*ys<4g*<4qM)YniW>sBKYY($L%w`XBJgA7w zyN3o`VqXi45~E_CtITtuSwc=-I>PskmYqg5sk2Ss5L{eTC!VAPotIa%JrWU{nDla% z4$UBf8j+=0Lf$GaP9u~wIO&hv%f`LWbrpn2;3w=Un-RCJjyi-8L1nk!9q$~pllrIW$p3W=R6NB!0^U5qljqythW$pk#3}3 zA0`*pVLqmsB^HHY0<*r}ra!D!o^_%Vy%ut0CRLd+*cxbjtQL(F?EsN52A6Hc=%L?c zd>hqVNQ*UH1TJTRFsE2WqpD;ncrptck$fMJMoHP&d2&}9*$QTL!B zRdWv-QmfWgwevt~a$OaMr_^eZ21`vt89cRqT@@pZ-p;P8ZcZ=+vbwdQ0HT;FL&n^~ zc7o0SMsf&lxlvOi2Gkcix(6sOchLr4+nNCbq`YK7dg z6k$x|-6#SGX8Xb>HRmLW6epHNk1Aw=a|TP+d+I*9L>Y_-xes~j0eMsz?1gi9&|B&u^Q*Gt!{#Y($rqa^ zmL=!8@n;95OHJEG+MLTtZzqj&tHF1W-V@S0N#hG^@CDNQLV6GB{UN=VG%Vfn>?3_J zr1z6P6w(Js9}ek*q>qI3A<|4a-_G#P1TvB#agu4e2wakA?I((#J#k0_hVWeUbEI zA$^wgNlS~t+{QneqC1q0xzHFBluW!grEB z9nuS=&yZtAF>K&28k%hq@cEsO)4x6%R?Fm;#`D~QzwfW5Cpc+&ydDxz4^`0dZu&8- zw4)fRzY%%i7f*KzUmvXCtbjGX8FZ~i_0DFH%AfVN&g4dQ^UJ-~vSytAVW(GFiI??+ z#q-`?kH%i&WhO99rhy{@ZmwYpa4eR&fZv&xg@B3rnQP=%Q?e2m@q;3cG!RzpXYXAioW(9}->ec!X0t&A!|T%)%rpp-B7e=>1kcB^d> z5Lc*;T%iL4X%p^f9D<>QcxHB;NOqmb>^hO`I?>PB+hEs0_7}+QI{I7-3H?Ps8cS4P zm+>0!i2Xn!Ikb<*&qhad5lbhF4h{lYAV`R;$}1`r20Rcdhck{w0(O?vT?Q&~2W zVe)HQ7<7gK!Q^TCNTK;~7kW^mBczZK#V1LziJ%j()+^sb2EFxlPI*lLy%x%=_1=*@ z?b-(pFTMf(*H{5Lp#C=F2z^wV|FmVeLL1ak*f_km@zT+F%q=1KVT@1nm3dcSWU94C z((lM=OBSa(NtSf)0L`=iRd7`vr7!mF62~Rn9<)xEXq_%)#Mq1%g33zDNObJ1Br`j! z;JK+)@L+1~frDW^Jp9dpGXG+;?+z>;jq%5{zp16lQj?tK}x z&8TDuGq@B3=}7xu73&{k%2z_t;euj-p*FEOW;0P{@S${`^;d^(B_nMD=Fk>y#9}OL z1T-AbRWHPv5DbLDH*+NY*9zabkA;ohhLc0rfpM#)j`F^Y5E>mD#wN2f#~@WG3yI z_&mE4vs$dsU2~*#dof!X%35oWZS}mYLcLkZm9ciU?YQtwu}f-PazLm}zFA>kjf4-l z%9gx0$Z=}9`jA{tRNiolvgf3H?t2T_S=)5p%C~E1$F&Ee^6M&}rV&z2ZezOq*ju0* zlL;21n~&|-zOMJ;Uv@vOPz_HO9Fyg#B9X+F6?cQ7vbV?N1cUxc6P)RW{Sonzo;AuR zU3-kSq-$+oqmcHc{L{Jr&RV?=NE2kJup&SK^k~DCT#vR02rp_+2KZ#Qj09)B_Jy-v zd&+5Oy*84j@DulLM^9U?Y>-qs4d_{~TBv+TBotzW2JVopSACkV*O7kfb);*(vIa(3 zsJ>p4G26CcptrUvHZlw#J2qEZw1I8}O9XB}P(502>&HfWG%VP{1BMtIReJ-6>O5o% zHs8Txowm?X*q9PS8B2*`qT_+dvMoZAX;BZG9}9$Jcq5P~iQ<8GXqFo1XX3$jSaR+u*H^f#J zDrz;IR5T&l;k*uGpwZN8C^7cQiA5^eVHCU8z9O@a*jF&)9Efr@deB^ruAyuu*-oND z&2O(9gq5rGef*}Yw>00RU(Pw|xAE11Xjmg1wIRvYl|~2u6{5j768p2l%M_m#VaA?AzvZ2YGh^`Oa|@!aTpMjW ziIC;D?#h11I0a?RT3Vymns;@XN{wXbfJbl32aTS2+cE4~3$uA+2!bwY@LZh~ocWY@ zqVkvE%xAT`obr4Y`xV?x(Jq8g93ij*JBP$d^XW^f@wZhsB_kVFeUl7gV3VuHNWSMD z@PNA24Rm@yV^HB#_6);BDlC7aA{;>$YDcZulp&Z~8@7BWr^01PsXa%{(jNFUav17{ zWaWf2gfD^YLEL7N_)cmQ>2m zSmm6T?6-o81RokW&;MQsO=dCB;3Ox)c01=)3!ow`v&2aN>WZEMX`O1+D=PDN)L@CB zLNV$U+*KPB*^}(rm5F+#_*Pvt}Bh!Z!NVZOy;AtGwYeY{NzN+xfc>&`HM=* zm1vSYvH7Vx7W+lD!On|3C@jsaUfC1lnLRrrMee_f%{h@TNL3abKrssez0{!9i z=>|Qz4&X(A>hd$vSp)u_W_Tz2zaJ&%y7V>!z880+LZNd8d_THI0r(>Zd?gmG0`PVN z{^1nsVIO6Fk}}t)&-Bm704@UjG{7HCpJl*zmn(X<0so*}(V~VC+$q<@5D9t|nYvK_ zhaLKBQ|VxOn!5gix{g-Tk2v@PD4yv>z?#*MRnm_-_`@o>Gq8W`(0^J}8m(gv{g)pk zZ)avc?$B5N0C_J_uvXqDE9oa3{Mxl;@Noyf>W4}tf6Af1qs*Pz`4fj;xJA?Ruf718 z)jxIc@7`8w#-BO#%`40GecHkA=mLMn!EZt2qo&yt(}Ku+cUz*8yu6kuWN z=PT*w9Q>h?GWZJ)e$9`R8gkm9i&NBio-)2pxnHWJUv%&*(HIMz`74KhqpQ_t9Q;xy zvp6w-9l%U|5&Sm}{!&*VUv}`BuCAYT@b)qAbpG2>`c2yRl}h@z4*qsm?!R;JuU)5M zCHHs8{r8phoP)nKOD7iri$;H~l77{}@4ON43Ba#lGs@t9aPU8_FN6Ql z!8Zm3NJgW=8{9-$ZBQc$-RTlf4hQ}&T#5$&7}w?>d@ETQi8tBp`WAV(rVh~@ZU{J3-#p={SLEKs)<$j%m|4PKA(~eyZeb4d|bhks_GzzpcSqlNGf){DV+i1oc zqV)9+e)-c&U3sHJ&rFsI-s8~UT>=R?K@snuh&M;+n;iVvE_(l~4nFlvR^54WA0qc# z5Fi}|&iOb!0{GXW^sNs5_z#!bvCpCVf0#1%k@*8;ep{6OdMJ7cBfSXtV}SQZ z>DwK=Se};OaOe&~c@_!qZ#wuG9>|4JdWSh)8{!WMf(lgZ+=$=Tz ziAwrg4*uBflw4p_zwO{J3EY{MgARSi57Cv=bVWk#yQ1`W9Q;n4bBgWwT?c>tM@sED z|OsPcI8W9}bzH4sH}^_eUJOsI_^4>HZX$`_U*p z>fra6+x#(y{zFpg-yb`40mD>bwvRbKsoOThkmr2_s<;q6=6|FO8m4# zf8!}7=w}@IIiYd^;~sPHUq7Wh6#vt~Uk3wzmjcX#Ffl7o+S<^C%Nf3pjG#=!@=z<=%FudXW9_%{yy+ok1Zf7!ur zM)oVV?`!}g`xU`|>)=1?%Keo9?#lgl4*o(H_}mq9pX-{0zxUi9>!QYAb?_@!NX+>q zr`_kH^lJ|O(ha4h@pXs(#e_1$4n^pZiT=UC=O^H)`zYhn5CqH){}{kCr7|!>Xwm(t zq_fWA_=ZD2!^Tm%ND<V5$ZXb8Uf~<;LxC=zF>v z_a+Dby->U}t8aGb%gT-WRfm4LOdIz)^uyg_^cIJ|T-J)hXuQ?IpD&NbuQ~LaJPrS>apPnh@{auHC zRWg4EjSe~VP+7+PJ%_%x+_HB&^wMpt;GK|(FM;8QPzk&yn-p&z}j1U=%=9a3NmB=x-xesh+hd#*8+atCXbXt|1Z+#hw#6~UHX!>3tJr(S366b1g^ME~*^mxW46$R< z6G>2Evr2ovH5D+$^;49{UMD+pJh)!*V;tuOR80LqHk7MNu4XA3%P?71_6CDnFs6IG}AMs`j*!F*} zdc->$h{SeOlf-s{*#^>v9u|Cdz;x2vx<6>!b<6|%HyU=fv!>!l6yjMfI8EZ}^D|0Z zeL3W`*rdeaNc)W{M6q*MTedb~-g%g|Tx~+e>!Y>>$C@Fk6Q%H$3oa}dAu|=#35Y_) zQ#2_qxUhG4W7scI2K8?Ajtc*4Snx?|yo>!sel`n9il=P`-FZ2L64ZWZFS>vRWprUn zj}nXLZVX*;C43H@ucg2EU`xB^!_1gs6yTURpuKHAx*NZN_DI-x97;&pCL^xQDX{=b zxi~^^+mq~xhg{V(_F2ZcaX1V9O{I3+EL6nxL)KBE#N&_=iU4oD2;sL{kt4-D+Csi6 zQZQ%Qmc84t;T}ylLB_K|@P6SOU^ifKLJO~ug!5P0W3@A1xc18LjQ=xgh9`G0Qs8U+2`FOLnI6t=qA z;I_T-TjE69+BO;Y+GO18lL3$2B&L%R|vZ*gWa zpvV`?Z=6bU&vChv7@3n7f_aXQ02%5KxZuQ%Q=t&Y;*uB{B^ZeA^vQruTf2Y|*7D~p zKrNf#U=paRd5+^j+Nm>mtB2yN3=JQNtifKwfn2EQd}J|f5*%wHIo8bM+5}C5=v~>h zM&sb)A)lHTGyeD?KkRci??my%422vZAb^~}(t44b!EKy!;yg^P@qzIo|HChb5v9;4 zfcu&IPKo>VaK7Nt-^;Ns!};X?-jDMM-jDMI@BYhkzRNX0?%Q~%^yPdWn=Np@s|IGX z!L%DFlvTRx!#y&Gvj(hYs$Hv^Qyr0#(TIPBvf3_bK!j3 zhwJ$}9D9pgZ!B;}tJaMbe| zE^EFxfz0VRzzs@VNrlgB5BO zYaVPN-^Jw2KU)|vgZ! zN%Xk!!6-u6tf-_*FPooVeD*pW(-rGpAE4EBaL`EZtGZdsB+%-3T!|&F0p(=1v{47D#3Yt1c<#yY<0`)Y~FA@w$IJ-7TVt?tQ*iAv*F;%Eq` z_{)77t*Jc2&k>HcaBNL0w^yE#0OZ0Pf10KD1Yksj$x3hjznE0?U3=t3d`dpDw;M0A zP+k@MY*9qA~w#! z2paRuXqE#u#hSg|WKcDGy~z+Yi*T6&%uy@_-9Re)4lcNr=U8`;^RuVf#yfneYLIIh zWLiawzz8Whq_~w#Q7rNC#k$d0V(PKr;6igHS{V63LhKciaQL0nm*5KG2fwsh-p))4 zt=1`VD<|QHtTV>)XS~K~<+mEAQmarp61+T$GywUd$1{2K1tdSZY4ArJdhO$f0YZ>Vly%!pR1n4$qy2h{7t z#)?H^NMF&wvR0(NYn0FlBXme=ur&Zn)auLE0eAl804)R7g>JSpvczdDuD2MAR^S8x zfm|(&d(ak2hG~yusJSH1JIC_%h26Xp0E?F{v3j(42k9EkcQjy~D#lqpg^g@kW2Y(< zq1IBwpw^)o_9T>>N^Qeo7zqw2rs`!r<4hExjH$_JMyQZ${_-({G+gG>Mx*iNm~be= zkM#1P#cn=i3t&A{cknI7fS}2;K=8w@iu$RGAvon1@*|?JGM$VdrXtpKnr6uAXvBMl zXXX{n&Y!2XUQ`TbX)Cln@B)tBq_75xCMzsv_T@jY2Cu~<*d@I(lRZ?fCLLrJYB%gYa z=noOSk*NePlfR3a)3R~V9j$>Wk?clurBrUk_%TMzC@7Si&{RZ$fW} zpb_bTb2R(MS(KonvYC}G)%hBHXskJEM2D9VVL_j_kRxRFs%}WZ42t52f5`7cAX3j< z)zwV3N)Mcy;*Yh7{45F%hd>zoosUaah$>a)mIjEHrDxPm<)J!z(|mi>qRlbE8`Sn{ z$Wd-BbEVcQZ^*UaeNwI2Ffcx;gKcVRsg6*lvkF@PO;coU;v|dzfyg>6!eYQYMKg4} zv`rM<({w8GOSQsu5}+VygEL}^I=rn`b4m+BY4gaNJBZ!7NSQ9GRX4!6x5N_+{2)r_~vF8F%?xo2`x$2_~ z9&41TRig|g&?pPNJEQEYU!yD>urU@nMY1f8ZKK6&AJj@?#M-UqG`9U4%hVkEq8&st zss3!Bjf&AWP-zZV8n;xgM%Oip%`;J>X&n%S1c1!ln3i&KVvi83UCGW6RwmR@9SyBW zY;5d_kTb;F;|&guK}d_F$W+8@6u>85Aw)rr3vZY=;Lhyy1{#B9nMzfW5t(ZGOE2A4 z-})d9IWOJzuq;%@-Gu5}TKVVFHR7#yP#FyqBK8ty5n9t+frY$5WQ{m_$><|@R4^8` zYBbNwS1a$4#0K@mE3T%%eO5Qi23zvo&Jo0j5Yw9cpw8%P?Z=VNbW0l|(@WQjVOPcY zhV&zafFE6(&Ce7k0r^?gvMkdr=#sdN88fxWcv|h-dri?nanZ2LCqaX_9wNt7I-U&3 zYBdO##FVMaU(n4GSh_B&Ht2{!r8}brEnw*aI+WB5O0+&}H%jkDPoeYP6}kykXuN=V zroKxb6;F@pC0h;oaW@&}`MjT99;*CPJ<+bl{}7t>=)mi{RNzSEB}AbtDXJVqw16b(&I4+^$bsl6)f=Zz zm03Co-|;zII+IOIO^!@?TvPc`O>J{^@n56y-*C~|6R)nofQU_y9<_DQyuOisqyRmV zL;tV(`=gK{IJu!J7zN}6S~ujo%0giWQ_EZ` zBBSocVipz3ZgwF6Np04H15oLRBd*F#UPmJa;uy<=n;lrA(nqyecnjm27$uBK87mg8gmYODFU%U*yDG5laKm`Bwm)R4gIh*9TQDu{6_jc6X!g)aT* zKq>0-r=xiA5z&)SLO|hl zDl5b+G`$s4xAX@a7hk@nw1*od2YhdPAcRDNC-x9@R#eyWHB!LxjjiC!TZn$TJ>G7S z6qWI|wcXkZ?%MtKqG*s8E#KZHr57yU{x4X*y+xS>63MNy6!z~Gvu)}Fx)aI5<8VZ1LKc9 zk$64|0NhinlqddM1&P#@#f_hm9Ocq-%EVZR=-QntTa~ODqvi}YKG_OKK_Q|@SPrb9 z#A9I_{Xq=KX^_DYX#d;Qir4)mQc$wuRRjfvRuVrz zpc&?=`P}x^+1j9GY`lF5m;5bLnEm-0_xw&*(w#SUn%8Oc%cna~HQ;Em(cucf<1P|N z7}1>szQ z*?eF#F?vUAoP;6PEN>mJMU_g#)Ydv7&}D;*(?_dYny4siDi(5;DE$jDu87TrcJq!3 z|9c*IYTkzzpw#Tn@8swA;L?~yt=4pz;uOU{ z_8tDWWLgtU*hX{nGtNBWZBjN4&xSAGxb zcjr;q>Pfv}pW%?TX=kjfN7KFW7B=W`Ty_N{&c^BpnTxuLVJZ}RAMh|Ou}=s2n3hKa z99b<+h&s)5+3%u$>ExrtyQiDC#is=zNm=Tonthb0{HG&NKT4Vi!Ulhg?hvim(#J`k z4e2wa=fk(BNM8(a4aLp?*HCO%T9U0iAnTzHlEjCxDj3sMp$3wZp#qYtL-{19t@un@ zIT>NdN>9dH3=f(=CUSWe%|cVxnSG^CfiVjNLL<4Oy2Fqo!v!JIGQHSYUD#blq=hzH zOQ0JsxHJ~D)>;#-_64R(0j1LTl610vtVbCcacO46r5WvR_DVB~u~XDgkzQ@Zb}1uc z&{f^!)=@~70I4I@VDG1hAfvEGbA5olgpLz5FY-%t^dk2K>wbY$se^gpp0v43% zQ8Hq}s)ml*`zR$x!9d3l8C90cMlwyzMSf<8xyVnQV2k`raeXj9>sgZg%(iaU&m6aB z^0S&dh4~q6U8kQ_EpFeFo^hj*o>rot*;Y$GbFFrw#aLxw>j#ZNOLdx6z@4{Ava5}j zaUJ*Mwsy6bE+ngxWl4Kidl^<1pf~Smb0h952-$9OHy3terb+m6(y!LNVS(JbE!S_( zU19mALOw1&A|E&H>dIg8Emyu9{f1qYcYVmGKuoOn1=gl^_et&`xryXWiUn_k+H^=R+F8Gkl~8QwnmQh~Ot5B1B|Jra!e(Ero(A*gv*LOF@}+BPj*01wf>IHtLdP z((bCsQkfzf9iG+5RAs+;w)2A4&DX@#x%HCW1LJ9dqs1FyTl4dDDC25DR_Smtmuc8q zuaFr*_@cTt|Lo^Mo6LH25>ZW*`m~4SZoW?f&#mz#&-Q%QguOl+vYiLvW0sLiAQvO! z<&Do>-Y9u@w^8!e_?{iA0VAZ`9i#;Bw%s%&Qh7%3XA%HEXu+(3-O4-)>io3Yq9r1c zh}rA4V#-Dj_RyPIvXDY~%}kl2Zpy5?DRY&ZGAG@XIpwCz)h#n+PGibsEzMxVv?XQ6 z%OKsokDyFo3W(Z>4e%)h>w}Lh zk@1;FSp(RB-bx(V=s{+P8o8)UAo5G0ACXh3LimkP=U85=%!s;^+G|DpQ?0sf*lXp^ zuz@?bFvqmfxPfAB64x>NfE_k{z;pP3TSEK;xTCb;UcnQJfis=(>;up&EEU`bWbix~ zwBWGxzHm5tPdR0VKH&`AZbPgy#>{PC=zTskejcn8eseiEt=8o1++_7@;^qu}VCE1W z+4~_*GA2$Z!{+#{zUyq*mSmjSb}NO4)s#cHZP-8?z4f(xUgvyX@uCXzS`G6mfvsm= zSqxqC8UpfPZeC^J>Xq1LuQ;z@cyV51n?JnfG6OPZZO!X=fR7j9%xhmb^V(BRd0usu z5i8#2RjOWRUR_Wt+{GT`v@oweq&~0fahzb;A*OB6?=>B)VCciVqP%Hd!4U0^vY`^@ zb$yuE;huS&&E{2>jYfk;jLG)}4BKQ&PpP|nh5>{bUJ_=wO7xPN$a(o0-ki_y-Pb(B41Jj4%|63- z`wX)k7-o2Lm|>ZX$}4wMHpAi42qqLsk#cljXLPS8b)6B4kD%Ok1-Vn|UO#6*ircQV`$LM`u0}n@ zZC9vyf^o+cRs*HD;z}wODQ>u0<*9jmArepOek&=1yw}xLGoIW-a$2pQOF&`WNRW%zV#mSOsL8fzCb5{4~e)I(2osVdWk z-gT1uF*9@B3DPLteZSD%pe?o>iluS>+KRS!12JQZF4n&8jtc*i3Rq3&n-8Lm5vnF3 z#xlZh{(lV)eq39}M=DWV9T=<*4%YA=jJ0qx6TtyZQE;Hh%m;^nnN<_B!x5#)FH=I6 zZzrRHY~My5oOK=YE^{u7KGTmCHjvR_z@tkQ*>hW;w z3g~LL{^-UIpa)~LomflbIE}!1G9n{NBUvWLm`PMd^vh#T{kG@I*NEkRG$d{$4^d^%6n zd>(^q)THCelsiKm&t_LQsqpcmHLQF5o~XGcZ?$_#9jdu0PgV%tF3O}wjWdp0HE;{) zff{z;97BXDxY*dUEMpkzn0q@PdLyVIbP-l3Qv%{S$CL?Zn1cPrh@E(D=OIGb-XJyzdk9HxWtr8UiczH5xxmmSwax;x0|D@*+ zjarQ24GC^1NeMy1a$v{pG7BP@UyB&9Z@}?m&j9$r#OxgaBbcrN7V*>Zlps7@@qGHx#zi@guxhjJh$S zj1w|Yb?D@OqD5HL|MAg+X-^Lkho#!QOKhU~f50X1gd@U0GV(lrSjLA3#Jsg#Cka}z zFiBnOiY%;!cb7ws0Fg+{OWhqiFIq)f^7S^-%Bf8Z!6ayJ@4`rBS%jIzD1iK#H@H5`>A#X5_-pHmwX&Tw~}03Kb=%~m88O6xZuW#Wfi+g{YoqlCT%S6c-)T# zo{60Wo{F6Xo{q1;0&%c30S76_SRg`zvB1aT5{W}9vfZq}0+Aj1ut0>Q|73yxJFvk0 zRmYFLRcC?ws@Kc{F9oF8QFRu$v+DS9KH$fE)$wDYTEdSDW&GGy?S~)du81H1$pVcz zK8Y;wKhXjK_CKIx#7-86QQ?CJ**%lJ7&e3o?>s2F<9UDl;SI@kO(_;d9=1Kg0To_$ zBwEnVeAFIs)@F~}*c{a3VNUSxQsP*IUChFlnDdnm!P?%j9%B^+`=Ec03TLF7#jjCxb4;TuZr-q^3%;_BDb zY8l5Y>_Wk0r-Cff3lNHbqU*x~nRwKWoBkCBA{r-%i)2q0!qpA|2cD)8bQu49KH ziO2>ex5bng0NAO}G&!%()HIU!Sa1p?o?GJ07M#M8_q#<#(0kV*3aKx*#1AV-nWbLn zfy>;JOGEFDTtV)VXeG-fI20_GLQ0t`fn)|ulCpay4&6_3nx>Oa=1*SAx``3E+m>Jh zx>h1sBBKJr*A5QNf~Uh=bgGF-bs`8^%gqfYYsqUl#R8#88VrC|bTLXp0~6hni@Y2w%A@WecSQ64EI}L;qx^44dobRp@|D4c@q!%tBmOF50Cq_$hdMX zJcb4y4v&H89S@J8c}K$|I9VFUzC_QKhZ=ly;L{yBC-N|5T(JIp6>Ug zj41m&*@pl!I!_1zY!h6zLjv2wMIzW9F^da0Iikk3ou)y_Ac#?V(tw!XwT&_?fpf%3 z-x#EifWtWNjY0Gr6q_dXnA)U445b3NX2S|65F*%GDH&9Fy z5bJpI8erlfTbJpP!So_h)SAj+&XugpY0wefqRboONvzb~=33vqt-C=};RyiF`X=s_ zTd$f>EP!E4H~8FZ*A`%c0L0I<+r5rN5~CzsNMoExCQU2SkqtyPcB8`M^=5F9hBB5c z3$SHmVe`R{4=uE(EQ{2_@nmVp!j^?-(30?YgJm)K7ypE!AmwN zkfOavFKRw2Gof5noJUnOR?dD{=0ySLw~k7IYPk0YlvMs8kXJ;yOu}03!WHLzBv(O* z6H^~e&SXn7Vr)yCPg8e*gB~VK#hE@OX%|(Lo|lv;qzRl6Xpvg23?b_mYZh4v`yiNThn zr?Wr{ZQ{Z1sK&I0u+chFsU&ZRjiLRlhHy#2?04<@Df5e?6m2_z8(h0BU-EkXiZ9fZ zTAO;URH_l8<#mdq~x{7hpdA{pby=bb^^lc)KsbN9j>s0am2pV*+1cw&irICA-WG>5~yF8 z`F=&?zCK{)FqrxI<1jq)tD0j=AQ%c zI;=8)N$(?VP7ho`aaJ%6W1ZnwwCJ>c4=v)!WaJPhvr||>f!o|onEt2O+O4A~_osK1*oF^%*4Co$`P+BE-lAQ6R1_W{;sK!H@w;gaq4#ZH> zb^tfrdg$X*PPwR7Z&RVfQ3Ck)+XoH;al zFHC;B{Mmk|i_RalC@y&8xkI3i{ACLV&H4DC@c;Xkj{$Yd9}+B>)GYx zDM$@->}ByZ?FaT|+0lv^5FmH$SXhwa;ZK|NgzJw#ZPb&k(S>TL{rQYOU(F%4@T0SV z{LJDPgp|iew095OgoAvfF2vZp?R0SDOkpptJS6-@y)qIUK^n=sk5`%=@ibnEVsqS0 z{!jd}n|8fDYX_I-v)Y2=7Z0c#^~?4zyRo;%?Bw38-;;4m7)FZ8plP&Fhn=Y!A0RzK zN?Hp&`|AcCiEl1H)D63wZgtY43kshRLwrzR;8uJS8v20 zgu-rC6;YCq%`$9P1|#;%Ic`XXDbKJf%dkTkMCO^{e27ID+2Rmv563ljKro5R(izV1 zZf`Xi;~m_YciDJ`cl)ZzDDUVL@3H|U$$*+aAOmX0%h*3R>5~DqL!Jz%9q(j7?OZ4W zY6n9ZP)>%bFb4FxWaaMmbcDQbi)R)n2a!sQeV$noH$5H!(Gr%xK8xW9(yK%vh*cwlWJh)2Ksvbz z#G(-RaUE}xHG>6ix!XEA+&TR_)bI4~P;X!`s)57Z&Y9spQ3xm)0hB`_5GK_En{UGA zLx=_17vd5$Imq^1v-!n7F$tEkYTB+q2$Su!`9;(+TUpEGM#>8EW9PG=NC0@$0@kGf zSB*(<85WJ&DEi~FRS0cq#x6Q1`TI*g=1A*sJMl#o8p1UCpN&rXm5Z6;!s0C z88Zp|=1+E$-qjE*0$}u}}v$!9S;W5!L`v;`*euqm6U@ zP0+mEyCp;L3IkF&%m51 z${^>W&S>Q-4uLf@0fYgW48ygmo!Q8I_>vGF%LnfAqovb3=x$-OM8rLY{AEVVvv-eH zfZAwvinz>Zm5X>>qZOpp&S(X!Q%&MKwMqeRM;vc|xgA{}@b-G}_Wi3mcnkXZh$9q$ zdzc^LClCo9jzx%pyvJnO8+S*C#!767jWK=Cd9a4gx~UY{yDr45>14i6CklacqD~ARz2J0j{}*r~zlpS1RNzG6;x*?dLjDIWglDG_9yydR^B|;w z6E($&&`@oDeRPgTdHl~4wjQq<|5GQ_;5ZcT!ZyE(1A5H%SgM3bSENza-&PAuYG?8W zX&WQRCsm=g*n#sVDg0^^>bv6{y&c zCruyabCy47%JK)zSpJYrn2l>J>`1(;+~|;Zb*|9W^`Wcy<*f1Z*4NrwdZgaYUADIh z5!8*MSMBZkVsHH+^wu9jZ~dXSx3k{cO@-dxRp{;Jd}8gS`n7iTZtv<{m+k82@20Dp zi(U1H&{cm3UG<0Fu5J>-a}L&4gGmZgta7mokQvm^&#t;`aVqj7#$0&mE2T9Fnkr(3 zba%`VQ`0Q6mbzGVz;*C|PZeVK`OvOvv*N>=NeV+d?Zl5YGb28G4YV)Tn!(O1EP{Yj zd%KoVI$tl-kmMYLLg3}95sr+=Rno9tEM&AVX9ItC9W+7g_10ODD1*(T8#O%`ER1Id{T5yq%t3Tje&ZhHyQ z93$i`#&fH(ArKQxCuvYTMnBv7fFn|(1u$C5NGgC4`(Rk@xOoj_EZljVe2O_p;##)Aj~1XSTW^5=0aNoV;&bCD1T$Kiapno3W8Q*7 z{ixt45F*GYZJhFu2A)GZsXwV(3+gm($yj84P$z95vti8pVdbbFRtlk;C`M1Z)a{hr zQj*lT*TW{aMP0N<_XgP<6iTIf8}z(f)^XN8lBYQSucmr3s{{nJN+=u@I}LJ(!cq&z z$ZY_SQishTh+QAkWuOfqcBs}mox>my-px!fFCg);!B!;}j*v#tkbfb5GoOxk<5m4nKP%1}MiK<6LdpPj!Q)!nshft8A z0VCnVk*uOXC4))Y#eW~J$4j8I0g;q%Hitm26*)>Ox!P;$Rl;>i44-BIO>LFp=!=9T zJpuo&Gc`kB)>~ug`wD8YTBzv;&oVS!t-Vz3Ms=_j5<6+cMt?-c5s{NgLyS820GdCJ z&;kRwhaj8Ul1#ZEiG6%)^F5$05k57yQL6&t(-Ptw23psGnwkDFQh;k$t)jJU3svUN zK)qVmsm)wn1+C?0R!9idbtJ5zt7A6$t_OFz6$Gi?|QhTrPmE7g@fl0A@pMVM?_9JqI&JW>^ohjo-$VIo@xZlH@u^ zLgBx{QeI~io$V#nRqB=i|4QT zKMDq7GJ(@7_8ov@24FN{#mxH(6`+Ela>)=}m+o&x${H1p(QS}e7*w@8t3=E!Z@?o- z7NLR=&<{XX0TKO1i~&=|sEQnDFsyYg6Vw{bIe!#_a}aNv&O#6k(~E)-JX?^|9`78; z{N|%BNo}@U2!=_53f7v-%KN#3-J{*i6@_4bknp17g0xn6C<(y~Niw)Hb5UE1h|x54 zvS8Pka)QI!eJmo>l@>7qGe#+;On!#%G%>yvzPa9QArEmq5yQy)1I3$EIN)2Ow`jEt z3UW+-=>tQg(4qNVDkLQ&o3S5sz~IJ8t!4{^Vh@o6=RK49r1T%)5{O@|M#G(2&AM{X zm_AyZQ$k>6m_c{nN7OriM78K8%DVFia0B7X4f@Hhz&%<1DVmN zTwSN>q9Sg^=S3cDST7(W{a-*wdW#B#B-s6fO$wW0ZfyyTa03o?<%?I*gkGJNWP`zKf|yVZ19v-L^UQ542XV*pd9j(zr^W`C+1VcDC~?Nz?_|5; z11yhE5K3SyDWL=bkYohqHl!y0s-zN2H4b;sL@iMx&f1-FY*IR!;0@|gMzI<7po#X6 zOK4&W;TgGqf$>#G6Q)dPVwdvNK@-0@DBPq&Lp$~`$wygaJznHoNPZ-F$i40tpoyE- ziba)$o+}ARicV5ZFyo~`5Uwi@C%*fMNhhG$wJMt*tRB{l{;|b3}0;P zB)5Cgzt~g!LK~c?=@D)vr**LnB*at>Z&9xH7!@MRQ+ zG5wAT|1+l)eJ{&;s6{@IDkE%T2yXgEruVQ!P47`V82US5%-tD+Vq{?GOM~LkT4M3A z%nLH}#FQhY;I3Z z6|NxloksWuFpbEmiK(@UzssP*_e~-40h*8P&Mq;6ZN>-&`uVsF6ntFr!ANXHQ;n_g zZDIuYG+go(o~^%Zg}Y>V(LDcH;3&fxGNPI1nm!nYJjOur-!vze8;ud;61DW^I~#9! zV(@`>%BfE($M+%_;P89Rf`JAj6JAP!0WWeYToMerU*v*8v8cx<81Usa2nOIoCKxzA zT$5m6gTeeG7*I_I9}o;W_|Qi%xGFxRacXS92tYepnLdKj8m%m$$p6SC3wP`fk_CQM zPmp9mmr9bwMWHyt#O|oErV>MSBuRnPmq2B|IVp)k3!l$cp+dxZZizg+qPXVHINbf} z9=-O$eRu1PpC_)nGFr%be0VI$x#XROy533iYK=F<8&nYuw83TFw1d^C6Y0N(h!<#P zjb{9WK5%b!#@3{6qrZ(0#ig5wzV-uU{(84UMtbvgO`N4DiT`#)0Md#K+6=)GYHt*?YT4^; zRixh15ERs&aKX}>s~(ZxvvL3SUQHf;V0+j%+tsE=N+i{L%>tO{;s%~x-;Q2=N2OBv zueyydIv|T1fhgx6W{daT33t2bD_Li3bXB4tfLe!N|SFsWLb z91T4b9oeA-!uW^1l`IOUnbv**o_c%5q#=(6fXM_jg={@{WqaV=3!$(BrCB><6J_Q; zBw7r=G=BiH-Wn7#z>X?8E#FuAaI;TvM(F#z1e=AK;c7a{W?4m7EYAigG*jhwM&M!9 zR%^T^7a+NiygFTpY2TX4+ia?|6<~Zls%{Y6jMbU+*t5D>>3i*Rv!Y<4lOT9$Y-9J8 zE19D$@grWrqsCN0fxR$Vn>Yz8_ZCO#>n45jp~Uw zYoD7tskOeM)_ePl6oEoyd+tz#f42@mc6wswR@pnn59t3knrD59b3s1u3(XIae7pNn zBqWDaEeVT14&aVv|gbMgiE&^P6X`UYP zJF-jY^gYeMEE0-+fQ^TcJSY;0NQ_i(BBAo~8TV#hCa>Be?s56jR2bXpVI#}ib@h(C zY+j32gq37i6-gPH)Fmjd4qyR7?u}l3DKOUk38subU+lCNhj;RN3 zt;%f9VsX!TFby)niNlD~YSQPh*Ak(7_d+-=XE02c#P1gDqNudNW(9jlFezq6kE{yu zrbHLRH(wxE$tF9H{FE>4)-58=Srgf?9wEYfmdY#xl8yWkUUJG_=#d_NL}+hgkm2f`-u4C|8N0u?Kw ztn9Q_GdhG&Wg@AJ$*e+_XjNMYZuRD*h?N51Q?1r@$Nt=1xpJI^Fwj8^Mx_34= zWICPjMp?O;-NFaA+@!eBq}ZDzle$C>BoUjeVW!GfFmkq({HmTt-OaAr&&^Kz^(BR$ z-DXCS+3V|N$KEqDt9cDRb4?U0lhsjx*ul(|dQNZ@;mu6h?}ATdzITOkf`?tW%&uVy zyQ}(=Jg(4y;9xhbrNBAqf~Mch{p-w?^BP=C=#E{dB|9&dSqM3}^oUXaIrJeW5_*t% zoM;MY6~o3hzffBSA@LOuNo#=C^t#q5qnl@%A-@@f{K5PrD9+yCDrjZf!xY7`r^f91 zuvo+DOnTL^UX5tg0#cBxV2i~+Sm*a7+^UiC@X$iTGhB;P&GrcJ-g2w>^u;{05z)FDMI}yP|dE)=K2FIH3x}MI)qgpWI1gp zm^(UzMG_Vf%#Lp3Zj6$%`3Dg^f@@1A>@%Sm|4oS_Z;Sl4mLrd<(0GI19YiqKAfr1R zawVXjy(}u&%Yx!|(6%mb=c}Zm#j&5?=F{6!&h~d-C|SB={{MN>8`1a)Rl!&>Zr=Ug zn=xzxA&SamBQ&YYDg0&(MmvD&mBukS%#kZ@?uv=xD^=$x_myDAu=Fv~a1%=(Cyh^`$GCO>HQ&nhV+4uK1=#wNS`CkK9zlYo-}(^mcBsx zNJw8K{b)#EBE1;W^JwoJSF!xtNFNL7?W8$cWAGiMPlWVN(vOAog7Tv&sPCt0bGk~` z(x*wE3h6VXPlxnb(q}??58s{*>Aj@Sh4ens=R7qO5MbgJZ`V#3AmR4+x z+jO6@m9vfUd@Q85lSZ2}_zu#iLV73Z(;>Y;`b`OB>Za_ckb2V@oAH zvnx(Bev$5cqcK0J{OQ6QwR>l*qhIGsBwv{&bg{$r#@Hk&6(#l1Dri1^h3$(7z=rBC zR^0fYfFi$fYti^XpXrlzNLn0DU-U(HQ?+orF(TdP?b^ay+xg;)>4_h~!>4nTx*y2C zqr(3hr^FJH1?xuAr*2wtFqTBA%tlbe`?;LM61_b6ThJ|){C zy!9G(ffZV$!leP+LGVj^Z*T&3Se8rJQl)kJ3~Dn+PNBAFuvTbtwZUY5UU>~8R>OEQ zlGPx$R)C>~tbFBYf40jiVMf!Ma@cE}yP>mn|}} zsy(FvP|tg+ZBl`W`g!LjsbJEeY}4k@DWKdl)2VjGdz)1|o%Pl_nkZ+8NYS_2 zwLR6&Qo(FbwR1q{>>#JjoCbtdf==}6pVsW_dagTTRL0}?e`S{(8x zmjnET=mD-RFMJY1kpAR}b9N zrWjs876W9XAcqAx93WWk6zdy^JaY7KxBghL?xO*6k02K4`^kk1kU0J&@gBs>8R+8|a z6zYUDC{nZmGDD{sqtba)AppQqN3F^hnH#JHu+29cG8M@tQwoG*nDg zRG>ek8N5Z}kwtB^4m;axGfm589mS>+B_?Z?m&C-OYS=6(%ey#XQ)G)uNQ%Vltad}$ z*wNZ@B73nXpYJ)(d;9heBs4SHic?mj`}};LpXWKxdCob{d3;Xq$NFx>`tHU0uA416 z18cS(tSX7B;|NcIMgX&z@fyv`wBkLh42&Z>E3qwXVp<4!<+PJEvMi6y4gy(O=V7)v z%?UmFyrXX>AM-B!fsff10>cLcOu3KQ-se6b08L!gW^=3Ba;_gMSWiPodJ3)E$btvk z`yC>_3g%;N;BR$Lrgn#@uo{`M{9p=^(f0EwbDC(#CcLoeZWSoM!bS7g*=`l4fc&^s zU?ELZj5?|+roFHO-6{_DRB@5^;B`JTgCB@Q^j$w z;%l*rqh1B#$^fmCc8P6(je$Opx_Vh{UaytSz;|UYs-I^^ zzX6?$5pR*pk<}<&?p||W>`T((@*ezlp2e6FBnYi+2YFR^@Z$n%3A zln_sjkrW3?agtbKSS=qjqSnS38@*h5(%U&Pfa_`j_Pd-v3Bl|ttGuNFHkU{RT0D|e zt4%2uR^pVN`ow0GdoQZv$33HKIv-<3hc&Ll-vYoHO>>#i;qHv;BBzKa?n7!k*DRk= zrDNZWYmJ}$jIQ+=_3KoixHzNSM~Ql3tIZ=gEzaYcpWM;Nwi>8cpPyZ*ilM zi8PmqT+^M%HE|->_(Z}KTDmlq&cS}oAIC)6Jvr`UE?t`7QA4$5=Ci!tc>pDlhav1) zrNJ^VJVH~ur{}YUgOSF|OgfP79Tv#<4x>PCFYX<+`ILPbye?UD33?IXtIL{c#3F`3 z#sr376H_z#yl#{K%5X|U)r$C?2vv?+^=a4!oDXOlv|Ju#l)WT7MAi`;74wa)>>hm? zziE!J>*kG#0w%tiFkumGItUBqOj!?KYk=6s3QROxMastNI$B-@-?UWSDJpyHef7@L zv0)S-`HyFVwt2r0^@?Hrh&(w(u}F!i;?06MYH{0!o5MFRVx@2v(SCs-<`HL$r@iZ( zB^LK}3*>WSW8-sUwrFi`O!}ox!(bAXL1l-SfxOQ0W7TQoLk*zm+Y%Mx=SIkr*{w?%cz!Rqnl5%i*!}wfk-he&ZJG@A@A_YiCp9}P$ zXvjZg1`HJQ(XhZOGhmdJW}rJ7xn#CoJi2-#kI_71>(T3;b`3e`Si7uMz=Nz!^Am=? z4&54|gy&cyi2P^`tkr(+`Qq?v+h2v%aRwDAh-)Zs6dkS=I%j)XsSvCOGvlA$Gw!0P zy59o|JHO7Ymb>y?!*fTT@8P*^%t$`adFN_@rBU<^2li<90@<+PDP1?<7J$}-YgjNP z+!$CEQC%J})EiNipt%Yuj-YuUr(Te^zLM##DF7nQPeC>jOpPv9q-)N66%UvZu^O}v zWy5|4SS+R0R3?UniF$P=kTTa~#XxK)4nn>JbgaNWxbo6NA3rHSWP?#%g39g1C7A%n z2iv6SK90|I_i<=$yN`o3C{p=2G*7#agY+!j+JBN>>_6GLQmBuOym7p35?1QY(E^!u$08bN;*{E2nSuA6#8USyib3o*WHW&3FqMFnkQ11`HnqreVUzFlp%UF-#gTeEYit zHV{Y4r(cIRhgNa2;`|9}*qvyA=x{JACpX`<*3eUhGaFWXU1c~nr}zS#DZ0{rSpHo)y+7IWfUj4+Kz=SZ)5O)7?Zt2ZW+-AB} zPBqQs+$^Q3+(z1x^Li<@{k5Dj5^xhs={B)RWzMLEtv+n{h0S0Z_}=4h7{&?X=6r2D zYcFKj_S+O%p1v)nZ_CrSEo3|N&iGbOPh)zTr>6_qcFg_BB;cg11cpHNEO=ZKgM!4h z6t~sm=I67WvJ0p-wRz9nYu|>cVy`C++2fYDJ#1CYl(++fzUYP5>Fq|<x;#OVYUa_3AI~jiLhp29PuMh&8@McxJ$^*^vQ(x|rm$@kj_!KA|d=${orKJZ_uW zXhF2PWJcMo0Jt1uG7+gh^T7mDz+jMp1j}$=8Ag?1lV{i*Gmv1QF1{USqgS|Cr{W#T zfp!DvDepc8?0!1)OEORLX8G zklo6iVWe}ONtvg_7Nt-gIn)Fa$E^~&yCu-45Uk-eb5mUU3oL~u1z1th&u5b| zGD_dH7^&ZKgs_>Et+Z%d;N`f5FSq1nfF#bV@7q{oA+zaR2s^y}>i;%A1VF85E0cz6 zVN+^QuUL}tqcIKnZo0kMs?N5k;2jiAy*oV5e3&{PHhFT!r&~3A+sQXS?{M)1^U|gl zyFxqvqNSGlIMK76Oa~3!8S9)TWz@?XWrSq$ot})7Nk}(I7HE50Urpp?*g~Ue88e|K z(6fzd0?pOvzCq=i{rbxb;|%us&}6YXZh3;avB8~G&$jup-ULk805S(EYOD1o=*tPd z6k;2rleB9qK&=6z9!nl0nSB(*!kQK)VM+I3AK@5BLC6;F30pK3d{-hbLmnFyysu!6 zDk@APC#|SnP%l!2#@ikbhyI{;cXK(=eO_Jc2U> zhQO(UMtb(aF#xZr4vuM3GaGMBMiW>hf>o(lS+C8uDbs{v$5?N+T+eHtVOU1_BWg^! zg)fQM)NBHb7+eFM=K(C>aGS~zpiB@G)*q{LhFm+jc&(9A%Ir5v)Zh3=9ocd z2)95Cge~3GD|~>_8JXnA4PQ5%>~PW*SHa2t}jL$UVw8P&pc%tr5MLk!LnF zO`*P=bd;4v95N~Bwfce*Xway>ZW#`76`Dt(62mbN`J!eVl~idB!5o!f^-aNuO1e@) zX`$Ig9TejI7LDv4+mW?T3Nf5k(n3kRbvt(21#uV@Fr;*t(M`Fc=wxhD=`iVP{;MVP zwT_P5n$mqMm;I9&#r@S2(A-~HR6L7w(3f&qo z2*4MW$vEQM+7S>@O18!(a5i9T_k!^ql;E0UE7O)Pm?&Q|UC6vR)JW*YY~Yb#D=tp` z4|qX`~#mS{RFsSwZ)n{)qp7;|IXh>A=dhcd|e|_H||vjhvM-sQjPU;%mp76)>KkjIW#M8Piyk*e}4 zBY=}Y3FDNZglz*lL_;ztSjYhF+D;41!-66-mvjGY@c;=rP?4ZRqR0hL zz`iN#Lw%tS)@J%-ZKf~QX4n?iX8K}nrZ3iJ`eJ=IHV5DH-jnrx^}YxnevL+m=|ET7 z&c(qObl~2ixE9onHTEd^w$edk+mI?M$P!SsqZgA(5Z6ZpmM0tr7L$bbOMebp5VC?N zuO?M$GlSyip9Siiutn(;-^g0Twe+?zbcj(R4~im`M4{j@=EZ%nSB!d6^vyi|ojm=9 zr;9m7`rSMou8eh;m=>wXKfE)X@WpVW%6Y~KZ2$p^<_eFR zWbc&4CXIT!nq=u}lBLHcaah-9YLca^NtWJiQr11RbSc-#+2Tt+l73)Mop+J?p*Z!^ zbh_QM?3Cj1dj(bpI-+Q^5vG}ibi3Spg>;8pwClFXMT@R27wx)Kh=a-6<<68lyWM%x zojrQ2!pi2zN7;m}>?h??_HMb9y-O}-Psye1&Bl0pSWKVLe7s*wVHxWIv-DGP;a+`O zE+@^;$mIlTH;&2wlm?6ZPs=6$Ub*DATgv4Btit4fM%3REjCE-~h zH{}SVV`n=|00{WAe$^AbLxYP6IECbYoOK zpGOiG4yT4LlDOy{V2H|Y@Wnd0$IOnG7aytHqQ(&|&nU*IeFME z9+SdlyGI$uHWs6J=J?hk&M-uwU;0_PZh)VGdx`ldbqZYEjq~wxkdMUDhfPNb3TfqZ zycB2S)c=nra7; zRsnQ;A*{*4G_Hb`ksq-NqVmPcRlr3l?4;+#KWY{H$ODgBUhlvYd?^n5g0N6Ijytrd zybOH#!ysPTl`A2BAxA)OJ_Z8%H)iNBE<->UKOO?Yumzff-2cMWk?W!%AR-oofEI6G zgS3l4qt4xWS*a>aUFn>5b4ikvqXn;nmtQznfV=4STBR114q7Cyh~eh>vOM7RWigc% zF?}my`j^D;G@a`cRHaYQHN({3wI#Zwtr4aO^LY|l zx`Bb%7;hSJgHfi(c|QTlN3aILfd@G3^=GK{BVhw% zcAt*LdWax3%55UUGzD!(v4oQ&G?0v{>*WQE-gCVO{v~wXYdIIR66%lOgTfqHf}SfX zZ=xpE8|Q(_47;(ehQ#(AVUV>Aa_L2Um8@|>`CFlpv#yj7SywC4qS+R-H$?44L-v#& zdA(ku-$`z9C0QJsv9Y-Kw7Nz|9`{`vquo$s6Ds9uiZDR1&PnSML<^D;H^iD>HzpA( zoG=!!HB=T~1a=NDiW@!1B+PIe$C-sQfU}Q7H%FHl7p~93HXyVw4Wgr;E*^q0h1lueI1=ZoRHm1%B@o=H*N39kA4O2vZj`reogj zDFIBK^IKf`P4yy$)tRG@QH$tfR=_YQw@mp}$enUp9LI6m={WPxg;$VEqthox%OPIO>_!ys?)1zk_^3rQd}NuVncy*~H;%tyYyx;N_{O