window['packerplugin'] = { 'textures': ['texture'] }; window['packerplugin']['json'] = {}; window['packerplugin']['json']['texture'] = '{\x22frames\x22:\x20{\x22media/graphics/sprites/button-continue.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x202,\x20\x22x\x22:\x201962,\x20\x22w\x22:\x2084,\x20\x22h\x22:\x2079},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2079,\x20\x22w\x22:\x2084},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2084,\x20\x22h\x22:\x2079}},\x20\x22media/graphics/sprites/button-reset-game.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x201931,\x20\x22x\x22:\x20676,\x20\x22w\x22:\x20120,\x20\x22h\x22:\x20113},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20113,\x20\x22w\x22:\x20120},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20120,\x20\x22h\x22:\x20113}},\x20\x22media/graphics/sprites/icon-sfx.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20128,\x20\x22x\x22:\x20808,\x20\x22w\x22:\x2038,\x20\x22h\x22:\x2037},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2037,\x20\x22w\x22:\x2038},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2038,\x20\x22h\x22:\x2037}},\x20\x22media/graphics/opening/kittytitle.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20640,\x20\x22x\x22:\x20546,\x20\x22w\x22:\x20380,\x20\x22h\x22:\x20296},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20296,\x20\x22w\x22:\x20380},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20380,\x20\x22h\x22:\x20296}},\x20\x22media/graphics/sprites/coin.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20364,\x20\x22x\x22:\x20546,\x20\x22w\x22:\x2051,\x20\x22h\x22:\x2054},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2054,\x20\x22w\x22:\x2051},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2051,\x20\x22h\x22:\x2054}},\x20\x22media/graphics/sprites/gameover-bg.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x202,\x20\x22x\x22:\x201535,\x20\x22w\x22:\x20423,\x20\x22h\x22:\x20147},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20147,\x20\x22w\x22:\x20423},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20423,\x20\x22h\x22:\x20147}},\x20\x22media/graphics/sprites/button-exit.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20128,\x20\x22x\x22:\x20724,\x20\x22w\x22:\x2040,\x20\x22h\x22:\x2040},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2040,\x20\x22w\x22:\x2040},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2040,\x20\x22h\x22:\x2040}},\x20\x22media/graphics/sprites/icon-bgm.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20128,\x20\x22x\x22:\x20768,\x20\x22w\x22:\x2036,\x20\x22h\x22:\x2039},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2039,\x20\x22w\x22:\x2036},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2036,\x20\x22h\x22:\x2039}},\x20\x22media/graphics/sprites/title.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20353,\x20\x22x\x22:\x20924,\x20\x22w\x22:\x20389,\x20\x22h\x22:\x20242},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20242,\x20\x22w\x22:\x20389},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20389,\x20\x22h\x22:\x20242}},\x20\x22media/graphics/sprites/button-reward-collect.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20435,\x20\x22x\x22:\x201944,\x20\x22w\x22:\x2090,\x20\x22h\x22:\x2031},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2031,\x20\x22w\x22:\x2090},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2090,\x20\x22h\x22:\x2031}},\x20\x22media/graphics/sprites/booster-popup.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x201620,\x20\x22x\x22:\x20552,\x20\x22w\x22:\x20467,\x20\x22h\x22:\x20307},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20307,\x20\x22w\x22:\x20467},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20467,\x20\x22h\x22:\x20307}},\x20\x22media/graphics/sprites/button-play.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x202,\x20\x22x\x22:\x20546,\x20\x22w\x22:\x20174,\x20\x22h\x22:\x20164},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20164,\x20\x22w\x22:\x20174},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20174,\x20\x22h\x22:\x20164}},\x20\x22media/graphics/sprites/button-buy.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20305,\x20\x22x\x22:\x20546,\x20\x22w\x22:\x20120,\x20\x22h\x22:\x2055},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2055,\x20\x22w\x22:\x20120},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20120,\x20\x22h\x22:\x2055}},\x20\x22media/graphics/sprites/hand.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20470,\x20\x22x\x22:\x201944,\x20\x22w\x22:\x2078,\x20\x22h\x22:\x2092},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2092,\x20\x22w\x22:\x2078},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2078,\x20\x22h\x22:\x2092}},\x20\x22media/graphics/sprites/button-more-games.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x201931,\x20\x22x\x22:\x20552,\x20\x22w\x22:\x20120,\x20\x22h\x22:\x20113},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20113,\x20\x22w\x22:\x20120},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20120,\x20\x22h\x22:\x20113}},\x20\x22media/graphics/sprites/button-booster-2.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20501,\x20\x22x\x22:\x20672,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x20122},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20122,\x20\x22w\x22:\x20122},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x20122}},\x20\x22media/graphics/sprites/game-over.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20153,\x20\x22x\x22:\x201535,\x20\x22w\x22:\x20418,\x20\x22h\x22:\x2070},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2070,\x20\x22w\x22:\x20418},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20418,\x20\x22h\x22:\x2070}},\x20\x22media/graphics/sprites/extra-life-splash.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x202,\x20\x22x\x22:\x20878,\x20\x22w\x22:\x20150,\x20\x22h\x22:\x20166},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20166,\x20\x22w\x22:\x20150},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20150,\x20\x22h\x22:\x20166}},\x20\x22media/graphics/sprites/icon-booster-2.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20305,\x20\x22x\x22:\x20798,\x20\x22w\x22:\x2070,\x20\x22h\x22:\x2070},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2070,\x20\x22w\x22:\x2070},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2070,\x20\x22h\x22:\x2070}},\x20\x22media/graphics/sprites/button-pause.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20245,\x20\x22x\x22:\x201256,\x20\x22w\x22:\x2057,\x20\x22h\x22:\x2062},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2062,\x20\x22w\x22:\x2057},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2057,\x20\x22h\x22:\x2062}},\x20\x22media/graphics/sprites/lock.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20245,\x20\x22x\x22:\x201078,\x20\x22w\x22:\x2050,\x20\x22h\x22:\x2070},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2070,\x20\x22w\x22:\x2050},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2050,\x20\x22h\x22:\x2070}},\x20\x22media/graphics/sprites/dot.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20227,\x20\x22x\x22:\x201004,\x20\x22w\x22:\x2028,\x20\x22h\x22:\x2032},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2032,\x20\x22w\x22:\x2028},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2028,\x20\x22h\x22:\x2032}},\x20\x22media/graphics/sprites/button-home.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x2085,\x20\x22x\x22:\x201962,\x20\x22w\x22:\x2084,\x20\x22h\x22:\x2079},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2079,\x20\x22w\x22:\x2084},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2084,\x20\x22h\x22:\x2079}},\x20\x22media/graphics/sprites/tutorial-bg.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x202,\x20\x22x\x22:\x201047,\x20\x22w\x22:\x20484,\x20\x22h\x22:\x20239},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20239,\x20\x22w\x22:\x20484},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20484,\x20\x22h\x22:\x20239}},\x20\x22media/graphics/sprites/icon-booster-1.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20566,\x20\x22x\x22:\x201944,\x20\x22w\x22:\x2076,\x20\x22h\x22:\x2070},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2070,\x20\x22w\x22:\x2076},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2076,\x20\x22h\x22:\x2070}},\x20\x22media/graphics/sprites/button-start-drift.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20227,\x20\x22x\x22:\x20546,\x20\x22w\x22:\x20303,\x20\x22h\x22:\x2074},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2074,\x20\x22w\x22:\x20303},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20303,\x20\x22h\x22:\x2074}},\x20\x22media/graphics/sprites/reward-box.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20251,\x20\x22x\x22:\x201944,\x20\x22w\x22:\x20100,\x20\x22h\x22:\x20180},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20180,\x20\x22w\x22:\x20100},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20100,\x20\x22h\x22:\x20180}},\x20\x22media/graphics/sprites/select-boosters.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20172,\x20\x22x\x22:\x20546,\x20\x22w\x22:\x20477,\x20\x22h\x22:\x2051},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2051,\x20\x22w\x22:\x20477},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20477,\x20\x22h\x22:\x2051}},\x20\x22media/graphics/sprites/dailyreward-popup.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x201620,\x20\x22x\x22:\x202,\x20\x22w\x22:\x20546,\x20\x22h\x22:\x20402},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20402,\x20\x22w\x22:\x20546},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20546,\x20\x22h\x22:\x20402}},\x20\x22media/graphics/sprites/buy-disable.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20362,\x20\x22x\x22:\x20670,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x2053},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2053,\x20\x22w\x22:\x20122},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x2053}},\x20\x22media/graphics/sprites/button-reward.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x201931,\x20\x22x\x22:\x20800,\x20\x22w\x22:\x20120,\x20\x22h\x22:\x20113},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20113,\x20\x22w\x22:\x20120},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20120,\x20\x22h\x22:\x20113}},\x20\x22media/graphics/sprites/button-minimize.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20245,\x20\x22x\x22:\x201194,\x20\x22w\x22:\x2058,\x20\x22h\x22:\x2062},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2062,\x20\x22w\x22:\x2058},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2058,\x20\x22h\x22:\x2062}},\x20\x22media/graphics/sprites/slider.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20453,\x20\x22x\x22:\x20546,\x20\x22w\x22:\x20210,\x20\x22h\x22:\x2027},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2027,\x20\x22w\x22:\x20210},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20210,\x20\x22h\x22:\x2027}},\x20\x22media/graphics/splash/loading.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x202,\x20\x22x\x22:\x202,\x20\x22w\x22:\x20540,\x20\x22h\x22:\x20960},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20960,\x20\x22w\x22:\x20540},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20540,\x20\x22h\x22:\x20960}},\x20\x22media/graphics/sprites/booster-disable.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x202,\x20\x22x\x22:\x20724,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x20122},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20122,\x20\x22w\x22:\x20122},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x20122}},\x20\x22media/graphics/sprites/bg-popup.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20227,\x20\x22x\x22:\x201535,\x20\x22w\x22:\x20405,\x20\x22h\x22:\x20270},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20270,\x20\x22w\x22:\x20405},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20405,\x20\x22h\x22:\x20270}},\x20\x22media/graphics/opening/kitty.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20966,\x20\x22x\x22:\x202,\x20\x22w\x22:\x20872,\x20\x22h\x22:\x20650},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20650,\x20\x22w\x22:\x20872},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20872,\x20\x22h\x22:\x20650}},\x20\x22media/graphics/sprites/button-buy-booster.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20305,\x20\x22x\x22:\x20670,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x2053},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2053,\x20\x22w\x22:\x20122},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x2053}},\x20\x22media/graphics/sprites/button-maximize.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20245,\x20\x22x\x22:\x201132,\x20\x22w\x22:\x2058,\x20\x22h\x22:\x2062},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2062,\x20\x22w\x22:\x2058},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2058,\x20\x22h\x22:\x2062}},\x20\x22media/graphics/sprites/icon-check.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20263,\x20\x22x\x22:\x201004,\x20\x22w\x22:\x2070,\x20\x22h\x22:\x2070},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2070,\x20\x22w\x22:\x2070},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2070,\x20\x22h\x22:\x2070}},\x20\x22media/graphics/sprites/left.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20353,\x20\x22x\x22:\x20872,\x20\x22w\x22:\x2040,\x20\x22h\x22:\x2060},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2060,\x20\x22w\x22:\x2040},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2040,\x20\x22h\x22:\x2060}},\x20\x22media/graphics/sprites/button-booster-3.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20501,\x20\x22x\x22:\x20798,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x20122},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20122,\x20\x22w\x22:\x20122},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x20122}},\x20\x22media/graphics/sprites/booster-selected.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20227,\x20\x22x\x22:\x20878,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x20122},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20122,\x20\x22w\x22:\x20122},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x20122}},\x20\x22media/graphics/sprites/button-settings.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x201931,\x20\x22x\x22:\x20924,\x20\x22w\x22:\x20119,\x20\x22h\x22:\x20113},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20113,\x20\x22w\x22:\x20119},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20119,\x20\x22h\x22:\x20113}},\x20\x22media/graphics/sprites/button-restart.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20168,\x20\x22x\x22:\x201957,\x20\x22w\x22:\x2084,\x20\x22h\x22:\x2079},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2079,\x20\x22w\x22:\x2084},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2084,\x20\x22h\x22:\x2079}},\x20\x22media/graphics/sprites/button-booster-1.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20501,\x20\x22x\x22:\x20546,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x20122},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x20122,\x20\x22w\x22:\x20122},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x20122,\x20\x22h\x22:\x20122}},\x20\x22media/graphics/sprites/icon-booster-3.png\x22:\x20{\x22frame\x22:\x20{\x22y\x22:\x20379,\x20\x22x\x22:\x20798,\x20\x22w\x22:\x2070,\x20\x22h\x22:\x2070},\x20\x22rotated\x22:\x20false,\x20\x22trimmed\x22:\x20false,\x20\x22pivot\x22:\x20{\x22y\x22:\x200.5,\x20\x22x\x22:\x200.5},\x20\x22sourceSize\x22:\x20{\x22h\x22:\x2070,\x20\x22w\x22:\x2070},\x20\x22spriteSourceSize\x22:\x20{\x22y\x22:\x200,\x20\x22x\x22:\x200,\x20\x22w\x22:\x2070,\x20\x22h\x22:\x2070}}},\x20\x22meta\x22:\x20{\x22scale\x22:\x201,\x20\x22format\x22:\x20\x22RGBA8888\x22,\x20\x22app\x22:\x20\x22http://github.com/odrick/free-tex-packer-cli\x22,\x20\x22version\x22:\x20\x220.3.0\x22,\x20\x22image\x22:\x20\x22texture.png\x22,\x20\x22size\x22:\x20{\x22h\x22:\x202046,\x20\x22w\x22:\x202048}}}'; !function(_0x4d69d3, _0x142339) { 'object' == typeof exports && 'object' == typeof module ? module['exports'] = _0x142339() : 'function' == typeof define && define['amd'] ? define('babylonjs', [], _0x142339) : 'object' == typeof exports ? exports['babylonjs'] = _0x142339() : _0x4d69d3['BABYLON'] = _0x142339(); }('undefined' != typeof self ? self : 'undefined' != typeof global ? global : this, function() { return function(_0x2a84bf) { var _0x41f161 = {}; function _0x142f48(_0xf01f76) { if (_0x41f161[_0xf01f76]) return _0x41f161[_0xf01f76]['exports']; var _0x4fd0f2 = _0x41f161[_0xf01f76] = { 'i': _0xf01f76, 'l': !0x1, 'exports': {} }; return _0x2a84bf[_0xf01f76]['call'](_0x4fd0f2['exports'], _0x4fd0f2, _0x4fd0f2['exports'], _0x142f48), _0x4fd0f2['l'] = !0x0, _0x4fd0f2['exports']; } return _0x142f48['m'] = _0x2a84bf, _0x142f48['c'] = _0x41f161, _0x142f48['d'] = function(_0x53b9da, _0x20d078, _0x526c5a) { _0x142f48['o'](_0x53b9da, _0x20d078) || Object['defineProperty'](_0x53b9da, _0x20d078, { 'enumerable': !0x0, 'get': _0x526c5a }); } , _0x142f48['r'] = function(_0x4facea) { 'undefined' != typeof Symbol && Symbol['toStringTag'] && Object['defineProperty'](_0x4facea, Symbol['toStringTag'], { 'value': 'Module' }), Object['defineProperty'](_0x4facea, '__esModule', { 'value': !0x0 }); } , _0x142f48['t'] = function(_0x3f142d, _0x40532d) { if (0x1 & _0x40532d && (_0x3f142d = _0x142f48(_0x3f142d)), 0x8 & _0x40532d) return _0x3f142d; if (0x4 & _0x40532d && 'object' == typeof _0x3f142d && _0x3f142d && _0x3f142d['__esModule']) return _0x3f142d; var _0x35b2ac = Object['create'](null); if (_0x142f48['r'](_0x35b2ac), Object['defineProperty'](_0x35b2ac, 'default', { 'enumerable': !0x0, 'value': _0x3f142d }), 0x2 & _0x40532d && 'string' != typeof _0x3f142d) for (var _0x4f630e in _0x3f142d) _0x142f48['d'](_0x35b2ac, _0x4f630e, function(_0x3f7c61) { return _0x3f142d[_0x3f7c61]; } ['bind'](null, _0x4f630e)); return _0x35b2ac; } , _0x142f48['n'] = function(_0x2922b3) { var _0x1a0505 = _0x2922b3 && _0x2922b3['__esModule'] ? function() { return _0x2922b3['default']; } : function() { return _0x2922b3; } ; return _0x142f48['d'](_0x1a0505, 'a', _0x1a0505), _0x1a0505; } , _0x142f48['o'] = function(_0x25e1a0, _0x2bf4bd) { return Object['prototype']['hasOwnProperty']['call'](_0x25e1a0, _0x2bf4bd); } , _0x142f48['p'] = '', _0x142f48(_0x142f48['s'] = 0x81); }([function(_0x41b357, _0x9cec24, _0x229f34) { 'use strict'; _0x229f34['d'](_0x9cec24, 'u', function() { return _0x53f190; }), _0x229f34['d'](_0x9cec24, 'v', function() { return _0x5e9455; }), _0x229f34['d'](_0x9cec24, 'h', function() { return _0x3e57e9; }), _0x229f34['d'](_0x9cec24, 'e', function() { return _0x30c94a; }), _0x229f34['d'](_0x9cec24, 'f', function() { return _0x3acf15; }), _0x229f34['d'](_0x9cec24, 'w', function() { return _0x461b0a; }), _0x229f34['d'](_0x9cec24, 'x', function() { return _0x3fbe20; }), _0x229f34['d'](_0x9cec24, 'y', function() { return _0x298fee; }), _0x229f34['d'](_0x9cec24, 'r', function() { return _0x1232e4; }), _0x229f34['d'](_0x9cec24, 'q', function() { return _0x897ad5; }), _0x229f34['d'](_0x9cec24, 'j', function() { return _0x5e57bc; }), _0x229f34['d'](_0x9cec24, 'n', function() { return _0x289f15; }), _0x229f34['d'](_0x9cec24, 'z', function() { return _0x34efa7; }), _0x229f34['d'](_0x9cec24, 'i', function() { return _0x4a31f7; }), _0x229f34['d'](_0x9cec24, 's', function() { return _0x51c4bf; }), _0x229f34['d'](_0x9cec24, 'c', function() { return _0x5cc191; }), _0x229f34['d'](_0x9cec24, 'd', function() { return _0x36e0cc; }), _0x229f34['d'](_0x9cec24, 'k', function() { return _0x388ee5; }), _0x229f34['d'](_0x9cec24, 'a', function() { return _0x21c421; }), _0x229f34['d'](_0x9cec24, 'b', function() { return _0x2333b1; }), _0x229f34['d'](_0x9cec24, 'l', function() { return _0x23ab56; }), _0x229f34['d'](_0x9cec24, 'm', function() { return _0x1679c4; }), _0x229f34['d'](_0x9cec24, 'g', function() { return _0x4c8767; }), _0x229f34['d'](_0x9cec24, 'p', function() { return _0x251d0b; }), _0x229f34['d'](_0x9cec24, 'o', function() { return _0x1a40e0; }), _0x229f34['d'](_0x9cec24, 't', function() { return _0x503241; }); var _0x51c4bf, _0x1528c3 = _0x229f34(0x22), _0x15f609 = _0x229f34(0xc), _0x53f190 = 0x1 / 2.2, _0x5e9455 = 2.2, _0x3e57e9 = 0.001, _0x30c94a = function() { function _0x4f9672(_0xfa3b0, _0x3322e1, _0x2a6e1d) { void 0x0 === _0xfa3b0 && (_0xfa3b0 = 0x0), void 0x0 === _0x3322e1 && (_0x3322e1 = 0x0), void 0x0 === _0x2a6e1d && (_0x2a6e1d = 0x0), this['r'] = _0xfa3b0, this['g'] = _0x3322e1, this['b'] = _0x2a6e1d; } return _0x4f9672['prototype']['toString'] = function() { return '{R:\x20' + this['r'] + '\x20G:' + this['g'] + '\x20B:' + this['b'] + '}'; } , _0x4f9672['prototype']['getClassName'] = function() { return 'Color3'; } , _0x4f9672['prototype']['getHashCode'] = function() { var _0x51beae = this['r'] || 0x0; return _0x51beae = 0x18d * (_0x51beae = 0x18d * _0x51beae ^ (this['g'] || 0x0)) ^ (this['b'] || 0x0); } , _0x4f9672['prototype']['toArray'] = function(_0x46ffe8, _0x53fd33) { return void 0x0 === _0x53fd33 && (_0x53fd33 = 0x0), _0x46ffe8[_0x53fd33] = this['r'], _0x46ffe8[_0x53fd33 + 0x1] = this['g'], _0x46ffe8[_0x53fd33 + 0x2] = this['b'], this; } , _0x4f9672['prototype']['toColor4'] = function(_0x4b2a94) { return void 0x0 === _0x4b2a94 && (_0x4b2a94 = 0x1), new _0x3acf15(this['r'],this['g'],this['b'],_0x4b2a94); } , _0x4f9672['prototype']['asArray'] = function() { var _0x78c971 = new Array(); return this['toArray'](_0x78c971, 0x0), _0x78c971; } , _0x4f9672['prototype']['toLuminance'] = function() { return 0.3 * this['r'] + 0.59 * this['g'] + 0.11 * this['b']; } , _0x4f9672['prototype']['multiply'] = function(_0x5a83a4) { return new _0x4f9672(this['r'] * _0x5a83a4['r'],this['g'] * _0x5a83a4['g'],this['b'] * _0x5a83a4['b']); } , _0x4f9672['prototype']['multiplyToRef'] = function(_0x20801c, _0x23cfaf) { return _0x23cfaf['r'] = this['r'] * _0x20801c['r'], _0x23cfaf['g'] = this['g'] * _0x20801c['g'], _0x23cfaf['b'] = this['b'] * _0x20801c['b'], this; } , _0x4f9672['prototype']['equals'] = function(_0x2a3896) { return _0x2a3896 && this['r'] === _0x2a3896['r'] && this['g'] === _0x2a3896['g'] && this['b'] === _0x2a3896['b']; } , _0x4f9672['prototype']['equalsFloats'] = function(_0x513f2b, _0x20a623, _0x497da8) { return this['r'] === _0x513f2b && this['g'] === _0x20a623 && this['b'] === _0x497da8; } , _0x4f9672['prototype']['scale'] = function(_0x5e8b1d) { return new _0x4f9672(this['r'] * _0x5e8b1d,this['g'] * _0x5e8b1d,this['b'] * _0x5e8b1d); } , _0x4f9672['prototype']['scaleToRef'] = function(_0x52c4d0, _0x23f75d) { return _0x23f75d['r'] = this['r'] * _0x52c4d0, _0x23f75d['g'] = this['g'] * _0x52c4d0, _0x23f75d['b'] = this['b'] * _0x52c4d0, this; } , _0x4f9672['prototype']['scaleAndAddToRef'] = function(_0x6c7a9b, _0x49411f) { return _0x49411f['r'] += this['r'] * _0x6c7a9b, _0x49411f['g'] += this['g'] * _0x6c7a9b, _0x49411f['b'] += this['b'] * _0x6c7a9b, this; } , _0x4f9672['prototype']['clampToRef'] = function(_0x434477, _0x5cbc79, _0x59db6c) { return void 0x0 === _0x434477 && (_0x434477 = 0x0), void 0x0 === _0x5cbc79 && (_0x5cbc79 = 0x1), _0x59db6c['r'] = _0x15f609['a']['Clamp'](this['r'], _0x434477, _0x5cbc79), _0x59db6c['g'] = _0x15f609['a']['Clamp'](this['g'], _0x434477, _0x5cbc79), _0x59db6c['b'] = _0x15f609['a']['Clamp'](this['b'], _0x434477, _0x5cbc79), this; } , _0x4f9672['prototype']['add'] = function(_0x43ded7) { return new _0x4f9672(this['r'] + _0x43ded7['r'],this['g'] + _0x43ded7['g'],this['b'] + _0x43ded7['b']); } , _0x4f9672['prototype']['addToRef'] = function(_0x471f2d, _0x3469ea) { return _0x3469ea['r'] = this['r'] + _0x471f2d['r'], _0x3469ea['g'] = this['g'] + _0x471f2d['g'], _0x3469ea['b'] = this['b'] + _0x471f2d['b'], this; } , _0x4f9672['prototype']['subtract'] = function(_0x54daf9) { return new _0x4f9672(this['r'] - _0x54daf9['r'],this['g'] - _0x54daf9['g'],this['b'] - _0x54daf9['b']); } , _0x4f9672['prototype']['subtractToRef'] = function(_0x24a62c, _0x43cbf6) { return _0x43cbf6['r'] = this['r'] - _0x24a62c['r'], _0x43cbf6['g'] = this['g'] - _0x24a62c['g'], _0x43cbf6['b'] = this['b'] - _0x24a62c['b'], this; } , _0x4f9672['prototype']['clone'] = function() { return new _0x4f9672(this['r'],this['g'],this['b']); } , _0x4f9672['prototype']['copyFrom'] = function(_0x4e0552) { return this['r'] = _0x4e0552['r'], this['g'] = _0x4e0552['g'], this['b'] = _0x4e0552['b'], this; } , _0x4f9672['prototype']['copyFromFloats'] = function(_0x1cfa38, _0x5bbbd9, _0x590820) { return this['r'] = _0x1cfa38, this['g'] = _0x5bbbd9, this['b'] = _0x590820, this; } , _0x4f9672['prototype']['set'] = function(_0x3e4175, _0x599cc3, _0x59cab3) { return this['copyFromFloats'](_0x3e4175, _0x599cc3, _0x59cab3); } , _0x4f9672['prototype']['toHexString'] = function() { var _0x458aa9 = 0xff * this['r'] | 0x0 , _0x46f22b = 0xff * this['g'] | 0x0 , _0x14b11b = 0xff * this['b'] | 0x0; return '#' + _0x15f609['a']['ToHex'](_0x458aa9) + _0x15f609['a']['ToHex'](_0x46f22b) + _0x15f609['a']['ToHex'](_0x14b11b); } , _0x4f9672['prototype']['toLinearSpace'] = function() { var _0x2929ac = new _0x4f9672(); return this['toLinearSpaceToRef'](_0x2929ac), _0x2929ac; } , _0x4f9672['prototype']['toLinearSpaceToRef'] = function(_0x290dbe) { return _0x290dbe['r'] = Math['pow'](this['r'], _0x5e9455), _0x290dbe['g'] = Math['pow'](this['g'], _0x5e9455), _0x290dbe['b'] = Math['pow'](this['b'], _0x5e9455), this; } , _0x4f9672['prototype']['toGammaSpace'] = function() { var _0x4ba4d8 = new _0x4f9672(); return this['toGammaSpaceToRef'](_0x4ba4d8), _0x4ba4d8; } , _0x4f9672['prototype']['toGammaSpaceToRef'] = function(_0x4b2ad9) { return _0x4b2ad9['r'] = Math['pow'](this['r'], _0x53f190), _0x4b2ad9['g'] = Math['pow'](this['g'], _0x53f190), _0x4b2ad9['b'] = Math['pow'](this['b'], _0x53f190), this; } , _0x4f9672['FromHexString'] = function(_0x56fcf4) { if ('#' !== _0x56fcf4['substring'](0x0, 0x1) || 0x7 !== _0x56fcf4['length']) return new _0x4f9672(0x0,0x0,0x0); var _0x10b989 = parseInt(_0x56fcf4['substring'](0x1, 0x3), 0x10) , _0x5ecf63 = parseInt(_0x56fcf4['substring'](0x3, 0x5), 0x10) , _0x89b802 = parseInt(_0x56fcf4['substring'](0x5, 0x7), 0x10); return _0x4f9672['FromInts'](_0x10b989, _0x5ecf63, _0x89b802); } , _0x4f9672['FromArray'] = function(_0x486564, _0x245f53) { return void 0x0 === _0x245f53 && (_0x245f53 = 0x0), new _0x4f9672(_0x486564[_0x245f53],_0x486564[_0x245f53 + 0x1],_0x486564[_0x245f53 + 0x2]); } , _0x4f9672['FromInts'] = function(_0x13c730, _0x1f9379, _0x3c5e44) { return new _0x4f9672(_0x13c730 / 0xff,_0x1f9379 / 0xff,_0x3c5e44 / 0xff); } , _0x4f9672['Lerp'] = function(_0xa8ac60, _0x245c2b, _0x2fa242) { var _0x33f0bd = new _0x4f9672(0x0,0x0,0x0); return _0x4f9672['LerpToRef'](_0xa8ac60, _0x245c2b, _0x2fa242, _0x33f0bd), _0x33f0bd; } , _0x4f9672['LerpToRef'] = function(_0x501556, _0x36d5c2, _0x5ca683, _0x401603) { _0x401603['r'] = _0x501556['r'] + (_0x36d5c2['r'] - _0x501556['r']) * _0x5ca683, _0x401603['g'] = _0x501556['g'] + (_0x36d5c2['g'] - _0x501556['g']) * _0x5ca683, _0x401603['b'] = _0x501556['b'] + (_0x36d5c2['b'] - _0x501556['b']) * _0x5ca683; } , _0x4f9672['Red'] = function() { return new _0x4f9672(0x1,0x0,0x0); } , _0x4f9672['Green'] = function() { return new _0x4f9672(0x0,0x1,0x0); } , _0x4f9672['Blue'] = function() { return new _0x4f9672(0x0,0x0,0x1); } , _0x4f9672['Black'] = function() { return new _0x4f9672(0x0,0x0,0x0); } , Object['defineProperty'](_0x4f9672, 'BlackReadOnly', { 'get': function() { return _0x4f9672['_BlackReadOnly']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x4f9672['White'] = function() { return new _0x4f9672(0x1,0x1,0x1); } , _0x4f9672['Purple'] = function() { return new _0x4f9672(0.5,0x0,0.5); } , _0x4f9672['Magenta'] = function() { return new _0x4f9672(0x1,0x0,0x1); } , _0x4f9672['Yellow'] = function() { return new _0x4f9672(0x1,0x1,0x0); } , _0x4f9672['Gray'] = function() { return new _0x4f9672(0.5,0.5,0.5); } , _0x4f9672['Teal'] = function() { return new _0x4f9672(0x0,0x1,0x1); } , _0x4f9672['Random'] = function() { return new _0x4f9672(Math['random'](),Math['random'](),Math['random']()); } , _0x4f9672['_BlackReadOnly'] = _0x4f9672['Black'](), _0x4f9672; }(), _0x3acf15 = function() { function _0x132738(_0x32a795, _0x3d30af, _0x17f9fe, _0x39ccbc) { void 0x0 === _0x32a795 && (_0x32a795 = 0x0), void 0x0 === _0x3d30af && (_0x3d30af = 0x0), void 0x0 === _0x17f9fe && (_0x17f9fe = 0x0), void 0x0 === _0x39ccbc && (_0x39ccbc = 0x1), this['r'] = _0x32a795, this['g'] = _0x3d30af, this['b'] = _0x17f9fe, this['a'] = _0x39ccbc; } return _0x132738['prototype']['addInPlace'] = function(_0x27be62) { return this['r'] += _0x27be62['r'], this['g'] += _0x27be62['g'], this['b'] += _0x27be62['b'], this['a'] += _0x27be62['a'], this; } , _0x132738['prototype']['asArray'] = function() { var _0x532e05 = new Array(); return this['toArray'](_0x532e05, 0x0), _0x532e05; } , _0x132738['prototype']['toArray'] = function(_0x3cda33, _0x450b6b) { return void 0x0 === _0x450b6b && (_0x450b6b = 0x0), _0x3cda33[_0x450b6b] = this['r'], _0x3cda33[_0x450b6b + 0x1] = this['g'], _0x3cda33[_0x450b6b + 0x2] = this['b'], _0x3cda33[_0x450b6b + 0x3] = this['a'], this; } , _0x132738['prototype']['equals'] = function(_0xb67894) { return _0xb67894 && this['r'] === _0xb67894['r'] && this['g'] === _0xb67894['g'] && this['b'] === _0xb67894['b'] && this['a'] === _0xb67894['a']; } , _0x132738['prototype']['add'] = function(_0x527d11) { return new _0x132738(this['r'] + _0x527d11['r'],this['g'] + _0x527d11['g'],this['b'] + _0x527d11['b'],this['a'] + _0x527d11['a']); } , _0x132738['prototype']['subtract'] = function(_0x3c7269) { return new _0x132738(this['r'] - _0x3c7269['r'],this['g'] - _0x3c7269['g'],this['b'] - _0x3c7269['b'],this['a'] - _0x3c7269['a']); } , _0x132738['prototype']['subtractToRef'] = function(_0x12a340, _0x537a6d) { return _0x537a6d['r'] = this['r'] - _0x12a340['r'], _0x537a6d['g'] = this['g'] - _0x12a340['g'], _0x537a6d['b'] = this['b'] - _0x12a340['b'], _0x537a6d['a'] = this['a'] - _0x12a340['a'], this; } , _0x132738['prototype']['scale'] = function(_0x1a7678) { return new _0x132738(this['r'] * _0x1a7678,this['g'] * _0x1a7678,this['b'] * _0x1a7678,this['a'] * _0x1a7678); } , _0x132738['prototype']['scaleToRef'] = function(_0x4eab2b, _0x5df3f3) { return _0x5df3f3['r'] = this['r'] * _0x4eab2b, _0x5df3f3['g'] = this['g'] * _0x4eab2b, _0x5df3f3['b'] = this['b'] * _0x4eab2b, _0x5df3f3['a'] = this['a'] * _0x4eab2b, this; } , _0x132738['prototype']['scaleAndAddToRef'] = function(_0x41b748, _0x35cd67) { return _0x35cd67['r'] += this['r'] * _0x41b748, _0x35cd67['g'] += this['g'] * _0x41b748, _0x35cd67['b'] += this['b'] * _0x41b748, _0x35cd67['a'] += this['a'] * _0x41b748, this; } , _0x132738['prototype']['clampToRef'] = function(_0x5d580b, _0x369d4e, _0x5acf53) { return void 0x0 === _0x5d580b && (_0x5d580b = 0x0), void 0x0 === _0x369d4e && (_0x369d4e = 0x1), _0x5acf53['r'] = _0x15f609['a']['Clamp'](this['r'], _0x5d580b, _0x369d4e), _0x5acf53['g'] = _0x15f609['a']['Clamp'](this['g'], _0x5d580b, _0x369d4e), _0x5acf53['b'] = _0x15f609['a']['Clamp'](this['b'], _0x5d580b, _0x369d4e), _0x5acf53['a'] = _0x15f609['a']['Clamp'](this['a'], _0x5d580b, _0x369d4e), this; } , _0x132738['prototype']['multiply'] = function(_0x25c6c0) { return new _0x132738(this['r'] * _0x25c6c0['r'],this['g'] * _0x25c6c0['g'],this['b'] * _0x25c6c0['b'],this['a'] * _0x25c6c0['a']); } , _0x132738['prototype']['multiplyToRef'] = function(_0x2357d4, _0x36d647) { return _0x36d647['r'] = this['r'] * _0x2357d4['r'], _0x36d647['g'] = this['g'] * _0x2357d4['g'], _0x36d647['b'] = this['b'] * _0x2357d4['b'], _0x36d647['a'] = this['a'] * _0x2357d4['a'], _0x36d647; } , _0x132738['prototype']['toString'] = function() { return '{R:\x20' + this['r'] + '\x20G:' + this['g'] + '\x20B:' + this['b'] + '\x20A:' + this['a'] + '}'; } , _0x132738['prototype']['getClassName'] = function() { return 'Color4'; } , _0x132738['prototype']['getHashCode'] = function() { var _0xafd598 = this['r'] || 0x0; return _0xafd598 = 0x18d * (_0xafd598 = 0x18d * (_0xafd598 = 0x18d * _0xafd598 ^ (this['g'] || 0x0)) ^ (this['b'] || 0x0)) ^ (this['a'] || 0x0); } , _0x132738['prototype']['clone'] = function() { return new _0x132738(this['r'],this['g'],this['b'],this['a']); } , _0x132738['prototype']['copyFrom'] = function(_0x4a461a) { return this['r'] = _0x4a461a['r'], this['g'] = _0x4a461a['g'], this['b'] = _0x4a461a['b'], this['a'] = _0x4a461a['a'], this; } , _0x132738['prototype']['copyFromFloats'] = function(_0x14ffff, _0x4af04a, _0x539a9e, _0x4b2816) { return this['r'] = _0x14ffff, this['g'] = _0x4af04a, this['b'] = _0x539a9e, this['a'] = _0x4b2816, this; } , _0x132738['prototype']['set'] = function(_0x4c8c99, _0x4b289c, _0xd77e81, _0x2d7fd8) { return this['copyFromFloats'](_0x4c8c99, _0x4b289c, _0xd77e81, _0x2d7fd8); } , _0x132738['prototype']['toHexString'] = function() { var _0x4cd1e8 = 0xff * this['r'] | 0x0 , _0x29b4e8 = 0xff * this['g'] | 0x0 , _0x442277 = 0xff * this['b'] | 0x0 , _0x4836c5 = 0xff * this['a'] | 0x0; return '#' + _0x15f609['a']['ToHex'](_0x4cd1e8) + _0x15f609['a']['ToHex'](_0x29b4e8) + _0x15f609['a']['ToHex'](_0x442277) + _0x15f609['a']['ToHex'](_0x4836c5); } , _0x132738['prototype']['toLinearSpace'] = function() { var _0x185154 = new _0x132738(); return this['toLinearSpaceToRef'](_0x185154), _0x185154; } , _0x132738['prototype']['toLinearSpaceToRef'] = function(_0x3e7732) { return _0x3e7732['r'] = Math['pow'](this['r'], _0x5e9455), _0x3e7732['g'] = Math['pow'](this['g'], _0x5e9455), _0x3e7732['b'] = Math['pow'](this['b'], _0x5e9455), _0x3e7732['a'] = this['a'], this; } , _0x132738['prototype']['toGammaSpace'] = function() { var _0x359162 = new _0x132738(); return this['toGammaSpaceToRef'](_0x359162), _0x359162; } , _0x132738['prototype']['toGammaSpaceToRef'] = function(_0x1547b0) { return _0x1547b0['r'] = Math['pow'](this['r'], _0x53f190), _0x1547b0['g'] = Math['pow'](this['g'], _0x53f190), _0x1547b0['b'] = Math['pow'](this['b'], _0x53f190), _0x1547b0['a'] = this['a'], this; } , _0x132738['FromHexString'] = function(_0x473115) { if ('#' !== _0x473115['substring'](0x0, 0x1) || 0x9 !== _0x473115['length']) return new _0x132738(0x0,0x0,0x0,0x0); var _0xc3590f = parseInt(_0x473115['substring'](0x1, 0x3), 0x10) , _0x510f97 = parseInt(_0x473115['substring'](0x3, 0x5), 0x10) , _0x5f174b = parseInt(_0x473115['substring'](0x5, 0x7), 0x10) , _0x2b4f90 = parseInt(_0x473115['substring'](0x7, 0x9), 0x10); return _0x132738['FromInts'](_0xc3590f, _0x510f97, _0x5f174b, _0x2b4f90); } , _0x132738['Lerp'] = function(_0x35e6c5, _0x4d5b47, _0x59bfa8) { var _0xe7ae8b = new _0x132738(0x0,0x0,0x0,0x0); return _0x132738['LerpToRef'](_0x35e6c5, _0x4d5b47, _0x59bfa8, _0xe7ae8b), _0xe7ae8b; } , _0x132738['LerpToRef'] = function(_0x5c58bd, _0x177f66, _0x58b4ee, _0x2848b0) { _0x2848b0['r'] = _0x5c58bd['r'] + (_0x177f66['r'] - _0x5c58bd['r']) * _0x58b4ee, _0x2848b0['g'] = _0x5c58bd['g'] + (_0x177f66['g'] - _0x5c58bd['g']) * _0x58b4ee, _0x2848b0['b'] = _0x5c58bd['b'] + (_0x177f66['b'] - _0x5c58bd['b']) * _0x58b4ee, _0x2848b0['a'] = _0x5c58bd['a'] + (_0x177f66['a'] - _0x5c58bd['a']) * _0x58b4ee; } , _0x132738['FromColor3'] = function(_0x31defe, _0x28d212) { return void 0x0 === _0x28d212 && (_0x28d212 = 0x1), new _0x132738(_0x31defe['r'],_0x31defe['g'],_0x31defe['b'],_0x28d212); } , _0x132738['FromArray'] = function(_0x6dd738, _0x405d1e) { return void 0x0 === _0x405d1e && (_0x405d1e = 0x0), new _0x132738(_0x6dd738[_0x405d1e],_0x6dd738[_0x405d1e + 0x1],_0x6dd738[_0x405d1e + 0x2],_0x6dd738[_0x405d1e + 0x3]); } , _0x132738['FromInts'] = function(_0x5738c5, _0x11859c, _0x58bc11, _0x160553) { return new _0x132738(_0x5738c5 / 0xff,_0x11859c / 0xff,_0x58bc11 / 0xff,_0x160553 / 0xff); } , _0x132738['CheckColors4'] = function(_0x2d9b5d, _0xda9b67) { if (_0x2d9b5d['length'] === 0x3 * _0xda9b67) { for (var _0x374601 = [], _0xdecbd0 = 0x0; _0xdecbd0 < _0x2d9b5d['length']; _0xdecbd0 += 0x3) { var _0x215651 = _0xdecbd0 / 0x3 * 0x4; _0x374601[_0x215651] = _0x2d9b5d[_0xdecbd0], _0x374601[_0x215651 + 0x1] = _0x2d9b5d[_0xdecbd0 + 0x1], _0x374601[_0x215651 + 0x2] = _0x2d9b5d[_0xdecbd0 + 0x2], _0x374601[_0x215651 + 0x3] = 0x1; } return _0x374601; } return _0x2d9b5d; } , _0x132738; }(), _0x461b0a = function() { function _0x1169e8(_0x2eac08, _0x26e9b0) { void 0x0 === _0x2eac08 && (_0x2eac08 = 0x0), void 0x0 === _0x26e9b0 && (_0x26e9b0 = 0x0), this['x'] = _0x2eac08, this['y'] = _0x26e9b0; } return _0x1169e8['prototype']['toString'] = function() { return '{X:\x20' + this['x'] + '\x20Y:' + this['y'] + '}'; } , _0x1169e8['prototype']['getClassName'] = function() { return 'Vector2'; } , _0x1169e8['prototype']['getHashCode'] = function() { var _0x5ba962 = this['x'] || 0x0; return _0x5ba962 = 0x18d * _0x5ba962 ^ (this['y'] || 0x0); } , _0x1169e8['prototype']['toArray'] = function(_0xa48e20, _0x3d95ca) { return void 0x0 === _0x3d95ca && (_0x3d95ca = 0x0), _0xa48e20[_0x3d95ca] = this['x'], _0xa48e20[_0x3d95ca + 0x1] = this['y'], this; } , _0x1169e8['prototype']['asArray'] = function() { var _0x5cfdc7 = new Array(); return this['toArray'](_0x5cfdc7, 0x0), _0x5cfdc7; } , _0x1169e8['prototype']['copyFrom'] = function(_0x2d24d3) { return this['x'] = _0x2d24d3['x'], this['y'] = _0x2d24d3['y'], this; } , _0x1169e8['prototype']['copyFromFloats'] = function(_0x559dbc, _0x38bec4) { return this['x'] = _0x559dbc, this['y'] = _0x38bec4, this; } , _0x1169e8['prototype']['set'] = function(_0x189ad3, _0x39e136) { return this['copyFromFloats'](_0x189ad3, _0x39e136); } , _0x1169e8['prototype']['add'] = function(_0x18af3c) { return new _0x1169e8(this['x'] + _0x18af3c['x'],this['y'] + _0x18af3c['y']); } , _0x1169e8['prototype']['addToRef'] = function(_0x2eb834, _0x1d17b1) { return _0x1d17b1['x'] = this['x'] + _0x2eb834['x'], _0x1d17b1['y'] = this['y'] + _0x2eb834['y'], this; } , _0x1169e8['prototype']['addInPlace'] = function(_0x1c2e66) { return this['x'] += _0x1c2e66['x'], this['y'] += _0x1c2e66['y'], this; } , _0x1169e8['prototype']['addVector3'] = function(_0x45d625) { return new _0x1169e8(this['x'] + _0x45d625['x'],this['y'] + _0x45d625['y']); } , _0x1169e8['prototype']['subtract'] = function(_0x222615) { return new _0x1169e8(this['x'] - _0x222615['x'],this['y'] - _0x222615['y']); } , _0x1169e8['prototype']['subtractToRef'] = function(_0x383517, _0x1ea2d1) { return _0x1ea2d1['x'] = this['x'] - _0x383517['x'], _0x1ea2d1['y'] = this['y'] - _0x383517['y'], this; } , _0x1169e8['prototype']['subtractInPlace'] = function(_0x3f984b) { return this['x'] -= _0x3f984b['x'], this['y'] -= _0x3f984b['y'], this; } , _0x1169e8['prototype']['multiplyInPlace'] = function(_0x27bf21) { return this['x'] *= _0x27bf21['x'], this['y'] *= _0x27bf21['y'], this; } , _0x1169e8['prototype']['multiply'] = function(_0x28919f) { return new _0x1169e8(this['x'] * _0x28919f['x'],this['y'] * _0x28919f['y']); } , _0x1169e8['prototype']['multiplyToRef'] = function(_0x51cd97, _0x39a024) { return _0x39a024['x'] = this['x'] * _0x51cd97['x'], _0x39a024['y'] = this['y'] * _0x51cd97['y'], this; } , _0x1169e8['prototype']['multiplyByFloats'] = function(_0x58ff13, _0x26ab28) { return new _0x1169e8(this['x'] * _0x58ff13,this['y'] * _0x26ab28); } , _0x1169e8['prototype']['divide'] = function(_0x1e5a39) { return new _0x1169e8(this['x'] / _0x1e5a39['x'],this['y'] / _0x1e5a39['y']); } , _0x1169e8['prototype']['divideToRef'] = function(_0x305a3c, _0x557245) { return _0x557245['x'] = this['x'] / _0x305a3c['x'], _0x557245['y'] = this['y'] / _0x305a3c['y'], this; } , _0x1169e8['prototype']['divideInPlace'] = function(_0x5ad31c) { return this['divideToRef'](_0x5ad31c, this); } , _0x1169e8['prototype']['negate'] = function() { return new _0x1169e8(-this['x'],-this['y']); } , _0x1169e8['prototype']['scaleInPlace'] = function(_0x104b7f) { return this['x'] *= _0x104b7f, this['y'] *= _0x104b7f, this; } , _0x1169e8['prototype']['scale'] = function(_0xb316c0) { var _0x4614d7 = new _0x1169e8(0x0,0x0); return this['scaleToRef'](_0xb316c0, _0x4614d7), _0x4614d7; } , _0x1169e8['prototype']['scaleToRef'] = function(_0x37a449, _0x3b1b62) { return _0x3b1b62['x'] = this['x'] * _0x37a449, _0x3b1b62['y'] = this['y'] * _0x37a449, this; } , _0x1169e8['prototype']['scaleAndAddToRef'] = function(_0x2343c8, _0x427918) { return _0x427918['x'] += this['x'] * _0x2343c8, _0x427918['y'] += this['y'] * _0x2343c8, this; } , _0x1169e8['prototype']['equals'] = function(_0x40126d) { return _0x40126d && this['x'] === _0x40126d['x'] && this['y'] === _0x40126d['y']; } , _0x1169e8['prototype']['equalsWithEpsilon'] = function(_0x520151, _0x24f935) { return void 0x0 === _0x24f935 && (_0x24f935 = _0x3e57e9), _0x520151 && _0x15f609['a']['WithinEpsilon'](this['x'], _0x520151['x'], _0x24f935) && _0x15f609['a']['WithinEpsilon'](this['y'], _0x520151['y'], _0x24f935); } , _0x1169e8['prototype']['floor'] = function() { return new _0x1169e8(Math['floor'](this['x']),Math['floor'](this['y'])); } , _0x1169e8['prototype']['fract'] = function() { return new _0x1169e8(this['x'] - Math['floor'](this['x']),this['y'] - Math['floor'](this['y'])); } , _0x1169e8['prototype']['length'] = function() { return Math['sqrt'](this['x'] * this['x'] + this['y'] * this['y']); } , _0x1169e8['prototype']['lengthSquared'] = function() { return this['x'] * this['x'] + this['y'] * this['y']; } , _0x1169e8['prototype']['normalize'] = function() { var _0x54d026 = this['length'](); if (0x0 === _0x54d026) return this; var _0x1ae35a = 0x1 / _0x54d026; return this['x'] *= _0x1ae35a, this['y'] *= _0x1ae35a, this; } , _0x1169e8['prototype']['clone'] = function() { return new _0x1169e8(this['x'],this['y']); } , _0x1169e8['Zero'] = function() { return new _0x1169e8(0x0,0x0); } , _0x1169e8['One'] = function() { return new _0x1169e8(0x1,0x1); } , _0x1169e8['FromArray'] = function(_0xc9bc9c, _0x120904) { return void 0x0 === _0x120904 && (_0x120904 = 0x0), new _0x1169e8(_0xc9bc9c[_0x120904],_0xc9bc9c[_0x120904 + 0x1]); } , _0x1169e8['FromArrayToRef'] = function(_0x2cbe47, _0x35fe8d, _0x55ee91) { _0x55ee91['x'] = _0x2cbe47[_0x35fe8d], _0x55ee91['y'] = _0x2cbe47[_0x35fe8d + 0x1]; } , _0x1169e8['CatmullRom'] = function(_0x48100f, _0x949b7, _0x37957b, _0x1a7a95, _0x11c704) { var _0x29ed7d = _0x11c704 * _0x11c704 , _0x54fdd8 = _0x11c704 * _0x29ed7d; return new _0x1169e8(0.5 * (0x2 * _0x949b7['x'] + (-_0x48100f['x'] + _0x37957b['x']) * _0x11c704 + (0x2 * _0x48100f['x'] - 0x5 * _0x949b7['x'] + 0x4 * _0x37957b['x'] - _0x1a7a95['x']) * _0x29ed7d + (-_0x48100f['x'] + 0x3 * _0x949b7['x'] - 0x3 * _0x37957b['x'] + _0x1a7a95['x']) * _0x54fdd8),0.5 * (0x2 * _0x949b7['y'] + (-_0x48100f['y'] + _0x37957b['y']) * _0x11c704 + (0x2 * _0x48100f['y'] - 0x5 * _0x949b7['y'] + 0x4 * _0x37957b['y'] - _0x1a7a95['y']) * _0x29ed7d + (-_0x48100f['y'] + 0x3 * _0x949b7['y'] - 0x3 * _0x37957b['y'] + _0x1a7a95['y']) * _0x54fdd8)); } , _0x1169e8['Clamp'] = function(_0x1c4f8c, _0xb23fba, _0x5582e5) { var _0x363d11 = _0x1c4f8c['x']; _0x363d11 = (_0x363d11 = _0x363d11 > _0x5582e5['x'] ? _0x5582e5['x'] : _0x363d11) < _0xb23fba['x'] ? _0xb23fba['x'] : _0x363d11; var _0x3d9588 = _0x1c4f8c['y']; return new _0x1169e8(_0x363d11,_0x3d9588 = (_0x3d9588 = _0x3d9588 > _0x5582e5['y'] ? _0x5582e5['y'] : _0x3d9588) < _0xb23fba['y'] ? _0xb23fba['y'] : _0x3d9588); } , _0x1169e8['Hermite'] = function(_0x54dc2b, _0x1b5aa1, _0x5370d5, _0xcaff48, _0x13efd3) { var _0x1995ef = _0x13efd3 * _0x13efd3 , _0x3ec5c1 = _0x13efd3 * _0x1995ef , _0x3e2637 = 0x2 * _0x3ec5c1 - 0x3 * _0x1995ef + 0x1 , _0x241d6f = -0x2 * _0x3ec5c1 + 0x3 * _0x1995ef , _0x5d2dd8 = _0x3ec5c1 - 0x2 * _0x1995ef + _0x13efd3 , _0x46623a = _0x3ec5c1 - _0x1995ef; return new _0x1169e8(_0x54dc2b['x'] * _0x3e2637 + _0x5370d5['x'] * _0x241d6f + _0x1b5aa1['x'] * _0x5d2dd8 + _0xcaff48['x'] * _0x46623a,_0x54dc2b['y'] * _0x3e2637 + _0x5370d5['y'] * _0x241d6f + _0x1b5aa1['y'] * _0x5d2dd8 + _0xcaff48['y'] * _0x46623a); } , _0x1169e8['Lerp'] = function(_0x2bb04d, _0x1aca11, _0x4cc8d9) { return new _0x1169e8(_0x2bb04d['x'] + (_0x1aca11['x'] - _0x2bb04d['x']) * _0x4cc8d9,_0x2bb04d['y'] + (_0x1aca11['y'] - _0x2bb04d['y']) * _0x4cc8d9); } , _0x1169e8['Dot'] = function(_0x2e66b9, _0x7baf20) { return _0x2e66b9['x'] * _0x7baf20['x'] + _0x2e66b9['y'] * _0x7baf20['y']; } , _0x1169e8['Normalize'] = function(_0x485eb7) { var _0x49f99b = _0x485eb7['clone'](); return _0x49f99b['normalize'](), _0x49f99b; } , _0x1169e8['Minimize'] = function(_0x304d16, _0x305d82) { return new _0x1169e8(_0x304d16['x'] < _0x305d82['x'] ? _0x304d16['x'] : _0x305d82['x'],_0x304d16['y'] < _0x305d82['y'] ? _0x304d16['y'] : _0x305d82['y']); } , _0x1169e8['Maximize'] = function(_0xe48c92, _0x4dec8a) { return new _0x1169e8(_0xe48c92['x'] > _0x4dec8a['x'] ? _0xe48c92['x'] : _0x4dec8a['x'],_0xe48c92['y'] > _0x4dec8a['y'] ? _0xe48c92['y'] : _0x4dec8a['y']); } , _0x1169e8['Transform'] = function(_0x44a180, _0x40e521) { var _0x4ba883 = _0x1169e8['Zero'](); return _0x1169e8['TransformToRef'](_0x44a180, _0x40e521, _0x4ba883), _0x4ba883; } , _0x1169e8['TransformToRef'] = function(_0x1f6882, _0x33a949, _0x2c1310) { var _0x79b633 = _0x33a949['m'] , _0x132493 = _0x1f6882['x'] * _0x79b633[0x0] + _0x1f6882['y'] * _0x79b633[0x4] + _0x79b633[0xc] , _0x38b36d = _0x1f6882['x'] * _0x79b633[0x1] + _0x1f6882['y'] * _0x79b633[0x5] + _0x79b633[0xd]; _0x2c1310['x'] = _0x132493, _0x2c1310['y'] = _0x38b36d; } , _0x1169e8['PointInTriangle'] = function(_0x6c0452, _0x47d139, _0x5d3434, _0x15f8e4) { var _0x3b3692 = 0.5 * (-_0x5d3434['y'] * _0x15f8e4['x'] + _0x47d139['y'] * (-_0x5d3434['x'] + _0x15f8e4['x']) + _0x47d139['x'] * (_0x5d3434['y'] - _0x15f8e4['y']) + _0x5d3434['x'] * _0x15f8e4['y']) , _0x359d19 = _0x3b3692 < 0x0 ? -0x1 : 0x1 , _0x58a045 = (_0x47d139['y'] * _0x15f8e4['x'] - _0x47d139['x'] * _0x15f8e4['y'] + (_0x15f8e4['y'] - _0x47d139['y']) * _0x6c0452['x'] + (_0x47d139['x'] - _0x15f8e4['x']) * _0x6c0452['y']) * _0x359d19 , _0x512525 = (_0x47d139['x'] * _0x5d3434['y'] - _0x47d139['y'] * _0x5d3434['x'] + (_0x47d139['y'] - _0x5d3434['y']) * _0x6c0452['x'] + (_0x5d3434['x'] - _0x47d139['x']) * _0x6c0452['y']) * _0x359d19; return _0x58a045 > 0x0 && _0x512525 > 0x0 && _0x58a045 + _0x512525 < 0x2 * _0x3b3692 * _0x359d19; } , _0x1169e8['Distance'] = function(_0x538565, _0xa02de2) { return Math['sqrt'](_0x1169e8['DistanceSquared'](_0x538565, _0xa02de2)); } , _0x1169e8['DistanceSquared'] = function(_0x1bec07, _0x11f129) { var _0x160c53 = _0x1bec07['x'] - _0x11f129['x'] , _0x5880fc = _0x1bec07['y'] - _0x11f129['y']; return _0x160c53 * _0x160c53 + _0x5880fc * _0x5880fc; } , _0x1169e8['Center'] = function(_0x219864, _0x15d105) { var _0x1f5e57 = _0x219864['add'](_0x15d105); return _0x1f5e57['scaleInPlace'](0.5), _0x1f5e57; } , _0x1169e8['DistanceOfPointFromSegment'] = function(_0x2b7b03, _0x1858a7, _0x4e0fbd) { var _0x420a8b = _0x1169e8['DistanceSquared'](_0x1858a7, _0x4e0fbd); if (0x0 === _0x420a8b) return _0x1169e8['Distance'](_0x2b7b03, _0x1858a7); var _0x1f983d = _0x4e0fbd['subtract'](_0x1858a7) , _0x43fff8 = Math['max'](0x0, Math['min'](0x1, _0x1169e8['Dot'](_0x2b7b03['subtract'](_0x1858a7), _0x1f983d) / _0x420a8b)) , _0xf6f717 = _0x1858a7['add'](_0x1f983d['multiplyByFloats'](_0x43fff8, _0x43fff8)); return _0x1169e8['Distance'](_0x2b7b03, _0xf6f717); } , _0x1169e8; }(), _0x3fbe20 = function() { function _0x367725(_0xaa2282, _0x13a6ee, _0x32eb4b) { void 0x0 === _0xaa2282 && (_0xaa2282 = 0x0), void 0x0 === _0x13a6ee && (_0x13a6ee = 0x0), void 0x0 === _0x32eb4b && (_0x32eb4b = 0x0), this['x'] = _0xaa2282, this['y'] = _0x13a6ee, this['z'] = _0x32eb4b; } return _0x367725['prototype']['toString'] = function() { return '{X:\x20' + this['x'] + '\x20Y:' + this['y'] + '\x20Z:' + this['z'] + '}'; } , _0x367725['prototype']['getClassName'] = function() { return 'Vector3'; } , _0x367725['prototype']['getHashCode'] = function() { var _0x522680 = this['x'] || 0x0; return _0x522680 = 0x18d * (_0x522680 = 0x18d * _0x522680 ^ (this['y'] || 0x0)) ^ (this['z'] || 0x0); } , _0x367725['prototype']['asArray'] = function() { var _0x347a48 = []; return this['toArray'](_0x347a48, 0x0), _0x347a48; } , _0x367725['prototype']['toArray'] = function(_0x2dcf08, _0x4be278) { return void 0x0 === _0x4be278 && (_0x4be278 = 0x0), _0x2dcf08[_0x4be278] = this['x'], _0x2dcf08[_0x4be278 + 0x1] = this['y'], _0x2dcf08[_0x4be278 + 0x2] = this['z'], this; } , _0x367725['prototype']['toQuaternion'] = function() { return _0x897ad5['RotationYawPitchRoll'](this['y'], this['x'], this['z']); } , _0x367725['prototype']['addInPlace'] = function(_0x2a53a0) { return this['addInPlaceFromFloats'](_0x2a53a0['x'], _0x2a53a0['y'], _0x2a53a0['z']); } , _0x367725['prototype']['addInPlaceFromFloats'] = function(_0x114bc7, _0x3d15a9, _0x4c13aa) { return this['x'] += _0x114bc7, this['y'] += _0x3d15a9, this['z'] += _0x4c13aa, this; } , _0x367725['prototype']['add'] = function(_0x26d9f4) { return new _0x367725(this['x'] + _0x26d9f4['x'],this['y'] + _0x26d9f4['y'],this['z'] + _0x26d9f4['z']); } , _0x367725['prototype']['addToRef'] = function(_0x20df15, _0x318c5d) { return _0x318c5d['copyFromFloats'](this['x'] + _0x20df15['x'], this['y'] + _0x20df15['y'], this['z'] + _0x20df15['z']); } , _0x367725['prototype']['subtractInPlace'] = function(_0x3a08df) { return this['x'] -= _0x3a08df['x'], this['y'] -= _0x3a08df['y'], this['z'] -= _0x3a08df['z'], this; } , _0x367725['prototype']['subtract'] = function(_0xe65f59) { return new _0x367725(this['x'] - _0xe65f59['x'],this['y'] - _0xe65f59['y'],this['z'] - _0xe65f59['z']); } , _0x367725['prototype']['subtractToRef'] = function(_0x13594d, _0x3df64a) { return this['subtractFromFloatsToRef'](_0x13594d['x'], _0x13594d['y'], _0x13594d['z'], _0x3df64a); } , _0x367725['prototype']['subtractFromFloats'] = function(_0x1693e4, _0x21578b, _0x930c3e) { return new _0x367725(this['x'] - _0x1693e4,this['y'] - _0x21578b,this['z'] - _0x930c3e); } , _0x367725['prototype']['subtractFromFloatsToRef'] = function(_0x4d65a9, _0x4ec48e, _0x35d200, _0x101007) { return _0x101007['copyFromFloats'](this['x'] - _0x4d65a9, this['y'] - _0x4ec48e, this['z'] - _0x35d200); } , _0x367725['prototype']['negate'] = function() { return new _0x367725(-this['x'],-this['y'],-this['z']); } , _0x367725['prototype']['scaleInPlace'] = function(_0x16fc5e) { return this['x'] *= _0x16fc5e, this['y'] *= _0x16fc5e, this['z'] *= _0x16fc5e, this; } , _0x367725['prototype']['scale'] = function(_0x5700ce) { return new _0x367725(this['x'] * _0x5700ce,this['y'] * _0x5700ce,this['z'] * _0x5700ce); } , _0x367725['prototype']['scaleToRef'] = function(_0x7d1f2f, _0x1df097) { return _0x1df097['copyFromFloats'](this['x'] * _0x7d1f2f, this['y'] * _0x7d1f2f, this['z'] * _0x7d1f2f); } , _0x367725['prototype']['scaleAndAddToRef'] = function(_0x25d8c8, _0x5c9ddb) { return _0x5c9ddb['addInPlaceFromFloats'](this['x'] * _0x25d8c8, this['y'] * _0x25d8c8, this['z'] * _0x25d8c8); } , _0x367725['prototype']['equals'] = function(_0x408722) { return _0x408722 && this['x'] === _0x408722['x'] && this['y'] === _0x408722['y'] && this['z'] === _0x408722['z']; } , _0x367725['prototype']['equalsWithEpsilon'] = function(_0x47e511, _0x35ef26) { return void 0x0 === _0x35ef26 && (_0x35ef26 = _0x3e57e9), _0x47e511 && _0x15f609['a']['WithinEpsilon'](this['x'], _0x47e511['x'], _0x35ef26) && _0x15f609['a']['WithinEpsilon'](this['y'], _0x47e511['y'], _0x35ef26) && _0x15f609['a']['WithinEpsilon'](this['z'], _0x47e511['z'], _0x35ef26); } , _0x367725['prototype']['equalsToFloats'] = function(_0x8f06c1, _0xf79a47, _0x48de7f) { return this['x'] === _0x8f06c1 && this['y'] === _0xf79a47 && this['z'] === _0x48de7f; } , _0x367725['prototype']['multiplyInPlace'] = function(_0x301df8) { return this['x'] *= _0x301df8['x'], this['y'] *= _0x301df8['y'], this['z'] *= _0x301df8['z'], this; } , _0x367725['prototype']['multiply'] = function(_0x413a73) { return this['multiplyByFloats'](_0x413a73['x'], _0x413a73['y'], _0x413a73['z']); } , _0x367725['prototype']['multiplyToRef'] = function(_0x449905, _0x52178b) { return _0x52178b['copyFromFloats'](this['x'] * _0x449905['x'], this['y'] * _0x449905['y'], this['z'] * _0x449905['z']); } , _0x367725['prototype']['multiplyByFloats'] = function(_0x395e97, _0x2e10eb, _0x436003) { return new _0x367725(this['x'] * _0x395e97,this['y'] * _0x2e10eb,this['z'] * _0x436003); } , _0x367725['prototype']['divide'] = function(_0x3ab294) { return new _0x367725(this['x'] / _0x3ab294['x'],this['y'] / _0x3ab294['y'],this['z'] / _0x3ab294['z']); } , _0x367725['prototype']['divideToRef'] = function(_0x287af5, _0x6b38d7) { return _0x6b38d7['copyFromFloats'](this['x'] / _0x287af5['x'], this['y'] / _0x287af5['y'], this['z'] / _0x287af5['z']); } , _0x367725['prototype']['divideInPlace'] = function(_0x2ffe86) { return this['divideToRef'](_0x2ffe86, this); } , _0x367725['prototype']['minimizeInPlace'] = function(_0x2c2e43) { return this['minimizeInPlaceFromFloats'](_0x2c2e43['x'], _0x2c2e43['y'], _0x2c2e43['z']); } , _0x367725['prototype']['maximizeInPlace'] = function(_0x36cc58) { return this['maximizeInPlaceFromFloats'](_0x36cc58['x'], _0x36cc58['y'], _0x36cc58['z']); } , _0x367725['prototype']['minimizeInPlaceFromFloats'] = function(_0x505901, _0x1c8c7e, _0x482fad) { return _0x505901 < this['x'] && (this['x'] = _0x505901), _0x1c8c7e < this['y'] && (this['y'] = _0x1c8c7e), _0x482fad < this['z'] && (this['z'] = _0x482fad), this; } , _0x367725['prototype']['maximizeInPlaceFromFloats'] = function(_0x53088a, _0x57c6d7, _0x120a2a) { return _0x53088a > this['x'] && (this['x'] = _0x53088a), _0x57c6d7 > this['y'] && (this['y'] = _0x57c6d7), _0x120a2a > this['z'] && (this['z'] = _0x120a2a), this; } , _0x367725['prototype']['isNonUniformWithinEpsilon'] = function(_0x408b50) { var _0x3e14ac = Math['abs'](this['x']) , _0x413b64 = Math['abs'](this['y']); if (!_0x15f609['a']['WithinEpsilon'](_0x3e14ac, _0x413b64, _0x408b50)) return !0x0; var _0x3bbec2 = Math['abs'](this['z']); return !_0x15f609['a']['WithinEpsilon'](_0x3e14ac, _0x3bbec2, _0x408b50) || !_0x15f609['a']['WithinEpsilon'](_0x413b64, _0x3bbec2, _0x408b50); } , Object['defineProperty'](_0x367725['prototype'], 'isNonUniform', { 'get': function() { var _0x256f49 = Math['abs'](this['x']) , _0x3f18b7 = Math['abs'](this['y']); if (_0x256f49 !== _0x3f18b7) return !0x0; var _0x26baf7 = Math['abs'](this['z']); return _0x256f49 !== _0x26baf7 || _0x3f18b7 !== _0x26baf7; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x367725['prototype']['floor'] = function() { return new _0x367725(Math['floor'](this['x']),Math['floor'](this['y']),Math['floor'](this['z'])); } , _0x367725['prototype']['fract'] = function() { return new _0x367725(this['x'] - Math['floor'](this['x']),this['y'] - Math['floor'](this['y']),this['z'] - Math['floor'](this['z'])); } , _0x367725['prototype']['length'] = function() { return Math['sqrt'](this['x'] * this['x'] + this['y'] * this['y'] + this['z'] * this['z']); } , _0x367725['prototype']['lengthSquared'] = function() { return this['x'] * this['x'] + this['y'] * this['y'] + this['z'] * this['z']; } , _0x367725['prototype']['normalize'] = function() { return this['normalizeFromLength'](this['length']()); } , _0x367725['prototype']['reorderInPlace'] = function(_0x18c312) { var _0x515710 = this; return 'xyz' === (_0x18c312 = _0x18c312['toLowerCase']()) ? this : (_0x53a116['Vector3'][0x0]['copyFrom'](this), ['x', 'y', 'z']['forEach'](function(_0x3c403a, _0x545e8e) { _0x515710[_0x3c403a] = _0x53a116['Vector3'][0x0][_0x18c312[_0x545e8e]]; }), this); } , _0x367725['prototype']['rotateByQuaternionToRef'] = function(_0x283764, _0xb776ae) { return _0x283764['toRotationMatrix'](_0x53a116['Matrix'][0x0]), _0x367725['TransformCoordinatesToRef'](this, _0x53a116['Matrix'][0x0], _0xb776ae), _0xb776ae; } , _0x367725['prototype']['rotateByQuaternionAroundPointToRef'] = function(_0x49cd49, _0x166c59, _0x3de905) { return this['subtractToRef'](_0x166c59, _0x53a116['Vector3'][0x0]), _0x53a116['Vector3'][0x0]['rotateByQuaternionToRef'](_0x49cd49, _0x53a116['Vector3'][0x0]), _0x166c59['addToRef'](_0x53a116['Vector3'][0x0], _0x3de905), _0x3de905; } , _0x367725['prototype']['normalizeFromLength'] = function(_0x39935d) { return 0x0 === _0x39935d || 0x1 === _0x39935d ? this : this['scaleInPlace'](0x1 / _0x39935d); } , _0x367725['prototype']['normalizeToNew'] = function() { var _0xbd11eb = new _0x367725(0x0,0x0,0x0); return this['normalizeToRef'](_0xbd11eb), _0xbd11eb; } , _0x367725['prototype']['normalizeToRef'] = function(_0x28af7b) { var _0xa74a9f = this['length'](); return 0x0 === _0xa74a9f || 0x1 === _0xa74a9f ? _0x28af7b['copyFromFloats'](this['x'], this['y'], this['z']) : this['scaleToRef'](0x1 / _0xa74a9f, _0x28af7b); } , _0x367725['prototype']['clone'] = function() { return new _0x367725(this['x'],this['y'],this['z']); } , _0x367725['prototype']['copyFrom'] = function(_0x23a0b6) { return this['copyFromFloats'](_0x23a0b6['x'], _0x23a0b6['y'], _0x23a0b6['z']); } , _0x367725['prototype']['copyFromFloats'] = function(_0x270b6a, _0x575633, _0x5c561d) { return this['x'] = _0x270b6a, this['y'] = _0x575633, this['z'] = _0x5c561d, this; } , _0x367725['prototype']['set'] = function(_0x2dcb00, _0x1a65ba, _0x223820) { return this['copyFromFloats'](_0x2dcb00, _0x1a65ba, _0x223820); } , _0x367725['prototype']['setAll'] = function(_0x37abdc) { return this['x'] = this['y'] = this['z'] = _0x37abdc, this; } , _0x367725['GetClipFactor'] = function(_0x344bdb, _0x8b7fe0, _0x3a7183, _0x30dd02) { var _0x3483d9 = _0x367725['Dot'](_0x344bdb, _0x3a7183) - _0x30dd02; return _0x3483d9 / (_0x3483d9 - (_0x367725['Dot'](_0x8b7fe0, _0x3a7183) - _0x30dd02)); } , _0x367725['GetAngleBetweenVectors'] = function(_0x2dbf12, _0x1c3f8a, _0x2d5fc3) { var _0x5f7b92 = _0x2dbf12['normalizeToRef'](_0x53a116['Vector3'][0x1]) , _0x484ec6 = _0x1c3f8a['normalizeToRef'](_0x53a116['Vector3'][0x2]) , _0x218bf6 = _0x367725['Dot'](_0x5f7b92, _0x484ec6) , _0x467724 = _0x53a116['Vector3'][0x3]; return _0x367725['CrossToRef'](_0x5f7b92, _0x484ec6, _0x467724), _0x367725['Dot'](_0x467724, _0x2d5fc3) > 0x0 ? Math['acos'](_0x218bf6) : -Math['acos'](_0x218bf6); } , _0x367725['FromArray'] = function(_0x465c74, _0x82331a) { return void 0x0 === _0x82331a && (_0x82331a = 0x0), new _0x367725(_0x465c74[_0x82331a],_0x465c74[_0x82331a + 0x1],_0x465c74[_0x82331a + 0x2]); } , _0x367725['FromFloatArray'] = function(_0x29322d, _0x13fde7) { return _0x367725['FromArray'](_0x29322d, _0x13fde7); } , _0x367725['FromArrayToRef'] = function(_0x30e7fd, _0x2fa21e, _0x5c0446) { _0x5c0446['x'] = _0x30e7fd[_0x2fa21e], _0x5c0446['y'] = _0x30e7fd[_0x2fa21e + 0x1], _0x5c0446['z'] = _0x30e7fd[_0x2fa21e + 0x2]; } , _0x367725['FromFloatArrayToRef'] = function(_0x1b5b1f, _0x322212, _0x2f569d) { return _0x367725['FromArrayToRef'](_0x1b5b1f, _0x322212, _0x2f569d); } , _0x367725['FromFloatsToRef'] = function(_0x323dda, _0x20b240, _0x493944, _0x174d2a) { _0x174d2a['copyFromFloats'](_0x323dda, _0x20b240, _0x493944); } , _0x367725['Zero'] = function() { return new _0x367725(0x0,0x0,0x0); } , _0x367725['One'] = function() { return new _0x367725(0x1,0x1,0x1); } , _0x367725['Up'] = function() { return new _0x367725(0x0,0x1,0x0); } , Object['defineProperty'](_0x367725, 'UpReadOnly', { 'get': function() { return _0x367725['_UpReadOnly']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x367725['Down'] = function() { return new _0x367725(0x0,-0x1,0x0); } , _0x367725['Forward'] = function() { return new _0x367725(0x0,0x0,0x1); } , _0x367725['Backward'] = function() { return new _0x367725(0x0,0x0,-0x1); } , _0x367725['Right'] = function() { return new _0x367725(0x1,0x0,0x0); } , _0x367725['Left'] = function() { return new _0x367725(-0x1,0x0,0x0); } , _0x367725['TransformCoordinates'] = function(_0x5c41ff, _0x361c3d) { var _0x12838d = _0x367725['Zero'](); return _0x367725['TransformCoordinatesToRef'](_0x5c41ff, _0x361c3d, _0x12838d), _0x12838d; } , _0x367725['TransformCoordinatesToRef'] = function(_0xf6e46f, _0x3244f9, _0x23e99f) { _0x367725['TransformCoordinatesFromFloatsToRef'](_0xf6e46f['x'], _0xf6e46f['y'], _0xf6e46f['z'], _0x3244f9, _0x23e99f); } , _0x367725['TransformCoordinatesFromFloatsToRef'] = function(_0xd49762, _0x2a2dc9, _0x285659, _0x4337ec, _0x360949) { var _0x43d7c = _0x4337ec['m'] , _0x551c5d = _0xd49762 * _0x43d7c[0x0] + _0x2a2dc9 * _0x43d7c[0x4] + _0x285659 * _0x43d7c[0x8] + _0x43d7c[0xc] , _0x4d63f4 = _0xd49762 * _0x43d7c[0x1] + _0x2a2dc9 * _0x43d7c[0x5] + _0x285659 * _0x43d7c[0x9] + _0x43d7c[0xd] , _0xd5fb2 = _0xd49762 * _0x43d7c[0x2] + _0x2a2dc9 * _0x43d7c[0x6] + _0x285659 * _0x43d7c[0xa] + _0x43d7c[0xe] , _0x460bbd = 0x1 / (_0xd49762 * _0x43d7c[0x3] + _0x2a2dc9 * _0x43d7c[0x7] + _0x285659 * _0x43d7c[0xb] + _0x43d7c[0xf]); _0x360949['x'] = _0x551c5d * _0x460bbd, _0x360949['y'] = _0x4d63f4 * _0x460bbd, _0x360949['z'] = _0xd5fb2 * _0x460bbd; } , _0x367725['TransformNormal'] = function(_0x53b2b4, _0x43442d) { var _0x250f92 = _0x367725['Zero'](); return _0x367725['TransformNormalToRef'](_0x53b2b4, _0x43442d, _0x250f92), _0x250f92; } , _0x367725['TransformNormalToRef'] = function(_0x37c0ee, _0x118745, _0x1acd40) { this['TransformNormalFromFloatsToRef'](_0x37c0ee['x'], _0x37c0ee['y'], _0x37c0ee['z'], _0x118745, _0x1acd40); } , _0x367725['TransformNormalFromFloatsToRef'] = function(_0x360b63, _0x27dd31, _0x16e765, _0x431d96, _0x5740af) { var _0x3b4b03 = _0x431d96['m']; _0x5740af['x'] = _0x360b63 * _0x3b4b03[0x0] + _0x27dd31 * _0x3b4b03[0x4] + _0x16e765 * _0x3b4b03[0x8], _0x5740af['y'] = _0x360b63 * _0x3b4b03[0x1] + _0x27dd31 * _0x3b4b03[0x5] + _0x16e765 * _0x3b4b03[0x9], _0x5740af['z'] = _0x360b63 * _0x3b4b03[0x2] + _0x27dd31 * _0x3b4b03[0x6] + _0x16e765 * _0x3b4b03[0xa]; } , _0x367725['CatmullRom'] = function(_0xa05058, _0x4c3cb6, _0x11a1d6, _0x2fa461, _0x4d86a7) { var _0x1df388 = _0x4d86a7 * _0x4d86a7 , _0x1c384b = _0x4d86a7 * _0x1df388; return new _0x367725(0.5 * (0x2 * _0x4c3cb6['x'] + (-_0xa05058['x'] + _0x11a1d6['x']) * _0x4d86a7 + (0x2 * _0xa05058['x'] - 0x5 * _0x4c3cb6['x'] + 0x4 * _0x11a1d6['x'] - _0x2fa461['x']) * _0x1df388 + (-_0xa05058['x'] + 0x3 * _0x4c3cb6['x'] - 0x3 * _0x11a1d6['x'] + _0x2fa461['x']) * _0x1c384b),0.5 * (0x2 * _0x4c3cb6['y'] + (-_0xa05058['y'] + _0x11a1d6['y']) * _0x4d86a7 + (0x2 * _0xa05058['y'] - 0x5 * _0x4c3cb6['y'] + 0x4 * _0x11a1d6['y'] - _0x2fa461['y']) * _0x1df388 + (-_0xa05058['y'] + 0x3 * _0x4c3cb6['y'] - 0x3 * _0x11a1d6['y'] + _0x2fa461['y']) * _0x1c384b),0.5 * (0x2 * _0x4c3cb6['z'] + (-_0xa05058['z'] + _0x11a1d6['z']) * _0x4d86a7 + (0x2 * _0xa05058['z'] - 0x5 * _0x4c3cb6['z'] + 0x4 * _0x11a1d6['z'] - _0x2fa461['z']) * _0x1df388 + (-_0xa05058['z'] + 0x3 * _0x4c3cb6['z'] - 0x3 * _0x11a1d6['z'] + _0x2fa461['z']) * _0x1c384b)); } , _0x367725['Clamp'] = function(_0x3477d3, _0x2ca7a6, _0xa86798) { var _0x2fb97d = new _0x367725(); return _0x367725['ClampToRef'](_0x3477d3, _0x2ca7a6, _0xa86798, _0x2fb97d), _0x2fb97d; } , _0x367725['ClampToRef'] = function(_0x49e1c6, _0x461d78, _0x382a4d, _0x10ccb1) { var _0x1c57c0 = _0x49e1c6['x']; _0x1c57c0 = (_0x1c57c0 = _0x1c57c0 > _0x382a4d['x'] ? _0x382a4d['x'] : _0x1c57c0) < _0x461d78['x'] ? _0x461d78['x'] : _0x1c57c0; var _0x391569 = _0x49e1c6['y']; _0x391569 = (_0x391569 = _0x391569 > _0x382a4d['y'] ? _0x382a4d['y'] : _0x391569) < _0x461d78['y'] ? _0x461d78['y'] : _0x391569; var _0xf91b05 = _0x49e1c6['z']; _0xf91b05 = (_0xf91b05 = _0xf91b05 > _0x382a4d['z'] ? _0x382a4d['z'] : _0xf91b05) < _0x461d78['z'] ? _0x461d78['z'] : _0xf91b05, _0x10ccb1['copyFromFloats'](_0x1c57c0, _0x391569, _0xf91b05); } , _0x367725['Hermite'] = function(_0x3c335d, _0x501b18, _0x1e979c, _0x2110a, _0x247783) { var _0x28bce7 = _0x247783 * _0x247783 , _0x9040de = _0x247783 * _0x28bce7 , _0x2ff6c7 = 0x2 * _0x9040de - 0x3 * _0x28bce7 + 0x1 , _0x235104 = -0x2 * _0x9040de + 0x3 * _0x28bce7 , _0x377f1a = _0x9040de - 0x2 * _0x28bce7 + _0x247783 , _0x3c0a8d = _0x9040de - _0x28bce7; return new _0x367725(_0x3c335d['x'] * _0x2ff6c7 + _0x1e979c['x'] * _0x235104 + _0x501b18['x'] * _0x377f1a + _0x2110a['x'] * _0x3c0a8d,_0x3c335d['y'] * _0x2ff6c7 + _0x1e979c['y'] * _0x235104 + _0x501b18['y'] * _0x377f1a + _0x2110a['y'] * _0x3c0a8d,_0x3c335d['z'] * _0x2ff6c7 + _0x1e979c['z'] * _0x235104 + _0x501b18['z'] * _0x377f1a + _0x2110a['z'] * _0x3c0a8d); } , _0x367725['Lerp'] = function(_0x3748de, _0x44c518, _0x45df36) { var _0x5745bb = new _0x367725(0x0,0x0,0x0); return _0x367725['LerpToRef'](_0x3748de, _0x44c518, _0x45df36, _0x5745bb), _0x5745bb; } , _0x367725['LerpToRef'] = function(_0xf0a160, _0xe8f39e, _0x311505, _0x47b36f) { _0x47b36f['x'] = _0xf0a160['x'] + (_0xe8f39e['x'] - _0xf0a160['x']) * _0x311505, _0x47b36f['y'] = _0xf0a160['y'] + (_0xe8f39e['y'] - _0xf0a160['y']) * _0x311505, _0x47b36f['z'] = _0xf0a160['z'] + (_0xe8f39e['z'] - _0xf0a160['z']) * _0x311505; } , _0x367725['Dot'] = function(_0x534252, _0x237530) { return _0x534252['x'] * _0x237530['x'] + _0x534252['y'] * _0x237530['y'] + _0x534252['z'] * _0x237530['z']; } , _0x367725['Cross'] = function(_0x1b655e, _0x5bf251) { var _0x363515 = _0x367725['Zero'](); return _0x367725['CrossToRef'](_0x1b655e, _0x5bf251, _0x363515), _0x363515; } , _0x367725['CrossToRef'] = function(_0x3dc151, _0x35b48b, _0x1ca844) { var _0xad855 = _0x3dc151['y'] * _0x35b48b['z'] - _0x3dc151['z'] * _0x35b48b['y'] , _0x21bd62 = _0x3dc151['z'] * _0x35b48b['x'] - _0x3dc151['x'] * _0x35b48b['z'] , _0x50e42b = _0x3dc151['x'] * _0x35b48b['y'] - _0x3dc151['y'] * _0x35b48b['x']; _0x1ca844['copyFromFloats'](_0xad855, _0x21bd62, _0x50e42b); } , _0x367725['Normalize'] = function(_0x27e20d) { var _0x33cbab = _0x367725['Zero'](); return _0x367725['NormalizeToRef'](_0x27e20d, _0x33cbab), _0x33cbab; } , _0x367725['NormalizeToRef'] = function(_0x5e3ea6, _0x4f1ab2) { _0x5e3ea6['normalizeToRef'](_0x4f1ab2); } , _0x367725['Project'] = function(_0x432f70, _0x55bd19, _0x4c5899, _0x3712c1) { var _0x227505 = _0x3712c1['width'] , _0x179d52 = _0x3712c1['height'] , _0x544461 = _0x3712c1['x'] , _0x1fa15d = _0x3712c1['y'] , _0x4b1e51 = _0x53a116['Matrix'][0x1]; _0x5e57bc['FromValuesToRef'](_0x227505 / 0x2, 0x0, 0x0, 0x0, 0x0, -_0x179d52 / 0x2, 0x0, 0x0, 0x0, 0x0, 0.5, 0x0, _0x544461 + _0x227505 / 0x2, _0x179d52 / 0x2 + _0x1fa15d, 0.5, 0x1, _0x4b1e51); var _0x14b400 = _0x53a116['Matrix'][0x0]; return _0x55bd19['multiplyToRef'](_0x4c5899, _0x14b400), _0x14b400['multiplyToRef'](_0x4b1e51, _0x14b400), _0x367725['TransformCoordinates'](_0x432f70, _0x14b400); } , _0x367725['_UnprojectFromInvertedMatrixToRef'] = function(_0x18354b, _0x22b75d, _0x7a331f) { _0x367725['TransformCoordinatesToRef'](_0x18354b, _0x22b75d, _0x7a331f); var _0x13a7d1 = _0x22b75d['m'] , _0x23299d = _0x18354b['x'] * _0x13a7d1[0x3] + _0x18354b['y'] * _0x13a7d1[0x7] + _0x18354b['z'] * _0x13a7d1[0xb] + _0x13a7d1[0xf]; _0x15f609['a']['WithinEpsilon'](_0x23299d, 0x1) && _0x7a331f['scaleInPlace'](0x1 / _0x23299d); } , _0x367725['UnprojectFromTransform'] = function(_0x1d86ea, _0x4d232d, _0x3d15cd, _0x5f3050, _0x5c9aec) { var _0x23a7dc = _0x53a116['Matrix'][0x0]; _0x5f3050['multiplyToRef'](_0x5c9aec, _0x23a7dc), _0x23a7dc['invert'](), _0x1d86ea['x'] = _0x1d86ea['x'] / _0x4d232d * 0x2 - 0x1, _0x1d86ea['y'] = -(_0x1d86ea['y'] / _0x3d15cd * 0x2 - 0x1); var _0x1a54ae = new _0x367725(); return _0x367725['_UnprojectFromInvertedMatrixToRef'](_0x1d86ea, _0x23a7dc, _0x1a54ae), _0x1a54ae; } , _0x367725['Unproject'] = function(_0x63dba8, _0x3db620, _0x80e6cf, _0x1ef847, _0x2c06f8, _0xea2bb2) { var _0x49e6b6 = _0x367725['Zero'](); return _0x367725['UnprojectToRef'](_0x63dba8, _0x3db620, _0x80e6cf, _0x1ef847, _0x2c06f8, _0xea2bb2, _0x49e6b6), _0x49e6b6; } , _0x367725['UnprojectToRef'] = function(_0x1f1985, _0x1d97c3, _0x150b04, _0x2374f0, _0x42b47a, _0x59517e, _0x2079d4) { _0x367725['UnprojectFloatsToRef'](_0x1f1985['x'], _0x1f1985['y'], _0x1f1985['z'], _0x1d97c3, _0x150b04, _0x2374f0, _0x42b47a, _0x59517e, _0x2079d4); } , _0x367725['UnprojectFloatsToRef'] = function(_0x440175, _0x41cfdc, _0x2b4fc9, _0x512640, _0x29f41f, _0x18bf7a, _0x41eba7, _0x497176, _0x426695) { var _0x31237b = _0x53a116['Matrix'][0x0]; _0x18bf7a['multiplyToRef'](_0x41eba7, _0x31237b), _0x31237b['multiplyToRef'](_0x497176, _0x31237b), _0x31237b['invert'](); var _0x25f284 = _0x53a116['Vector3'][0x0]; _0x25f284['x'] = _0x440175 / _0x512640 * 0x2 - 0x1, _0x25f284['y'] = -(_0x41cfdc / _0x29f41f * 0x2 - 0x1), _0x25f284['z'] = 0x2 * _0x2b4fc9 - 0x1, _0x367725['_UnprojectFromInvertedMatrixToRef'](_0x25f284, _0x31237b, _0x426695); } , _0x367725['Minimize'] = function(_0x1e7104, _0x37e34e) { var _0x1deb13 = _0x1e7104['clone'](); return _0x1deb13['minimizeInPlace'](_0x37e34e), _0x1deb13; } , _0x367725['Maximize'] = function(_0xe43313, _0x7319a6) { var _0x3a5411 = _0xe43313['clone'](); return _0x3a5411['maximizeInPlace'](_0x7319a6), _0x3a5411; } , _0x367725['Distance'] = function(_0x10f7e8, _0x4d4e64) { return Math['sqrt'](_0x367725['DistanceSquared'](_0x10f7e8, _0x4d4e64)); } , _0x367725['DistanceSquared'] = function(_0x2c2a52, _0x1286cd) { var _0x23f958 = _0x2c2a52['x'] - _0x1286cd['x'] , _0x3b740b = _0x2c2a52['y'] - _0x1286cd['y'] , _0x561577 = _0x2c2a52['z'] - _0x1286cd['z']; return _0x23f958 * _0x23f958 + _0x3b740b * _0x3b740b + _0x561577 * _0x561577; } , _0x367725['Center'] = function(_0x3a3383, _0x8a4c1b) { var _0x472893 = _0x3a3383['add'](_0x8a4c1b); return _0x472893['scaleInPlace'](0.5), _0x472893; } , _0x367725['RotationFromAxis'] = function(_0x5e154e, _0xa5efec, _0x41b686) { var _0x32ea12 = _0x367725['Zero'](); return _0x367725['RotationFromAxisToRef'](_0x5e154e, _0xa5efec, _0x41b686, _0x32ea12), _0x32ea12; } , _0x367725['RotationFromAxisToRef'] = function(_0xcb2e14, _0x4cbc0c, _0x3518fa, _0x4ed092) { var _0x4fe5f0 = _0x53a116['Quaternion'][0x0]; _0x897ad5['RotationQuaternionFromAxisToRef'](_0xcb2e14, _0x4cbc0c, _0x3518fa, _0x4fe5f0), _0x4fe5f0['toEulerAnglesToRef'](_0x4ed092); } , _0x367725['_UpReadOnly'] = _0x367725['Up'](), _0x367725; }(), _0x298fee = function() { function _0x4edeb2(_0x5658a7, _0x2a6e81, _0x298214, _0x1c15a1) { this['x'] = _0x5658a7, this['y'] = _0x2a6e81, this['z'] = _0x298214, this['w'] = _0x1c15a1; } return _0x4edeb2['prototype']['toString'] = function() { return '{X:\x20' + this['x'] + '\x20Y:' + this['y'] + '\x20Z:' + this['z'] + '\x20W:' + this['w'] + '}'; } , _0x4edeb2['prototype']['getClassName'] = function() { return 'Vector4'; } , _0x4edeb2['prototype']['getHashCode'] = function() { var _0x5c81a3 = this['x'] || 0x0; return _0x5c81a3 = 0x18d * (_0x5c81a3 = 0x18d * (_0x5c81a3 = 0x18d * _0x5c81a3 ^ (this['y'] || 0x0)) ^ (this['z'] || 0x0)) ^ (this['w'] || 0x0); } , _0x4edeb2['prototype']['asArray'] = function() { var _0x698960 = new Array(); return this['toArray'](_0x698960, 0x0), _0x698960; } , _0x4edeb2['prototype']['toArray'] = function(_0x1352a0, _0x5064c7) { return void 0x0 === _0x5064c7 && (_0x5064c7 = 0x0), _0x1352a0[_0x5064c7] = this['x'], _0x1352a0[_0x5064c7 + 0x1] = this['y'], _0x1352a0[_0x5064c7 + 0x2] = this['z'], _0x1352a0[_0x5064c7 + 0x3] = this['w'], this; } , _0x4edeb2['prototype']['addInPlace'] = function(_0x46524e) { return this['x'] += _0x46524e['x'], this['y'] += _0x46524e['y'], this['z'] += _0x46524e['z'], this['w'] += _0x46524e['w'], this; } , _0x4edeb2['prototype']['add'] = function(_0x2b8451) { return new _0x4edeb2(this['x'] + _0x2b8451['x'],this['y'] + _0x2b8451['y'],this['z'] + _0x2b8451['z'],this['w'] + _0x2b8451['w']); } , _0x4edeb2['prototype']['addToRef'] = function(_0x9a0194, _0x137192) { return _0x137192['x'] = this['x'] + _0x9a0194['x'], _0x137192['y'] = this['y'] + _0x9a0194['y'], _0x137192['z'] = this['z'] + _0x9a0194['z'], _0x137192['w'] = this['w'] + _0x9a0194['w'], this; } , _0x4edeb2['prototype']['subtractInPlace'] = function(_0x394dda) { return this['x'] -= _0x394dda['x'], this['y'] -= _0x394dda['y'], this['z'] -= _0x394dda['z'], this['w'] -= _0x394dda['w'], this; } , _0x4edeb2['prototype']['subtract'] = function(_0x432c60) { return new _0x4edeb2(this['x'] - _0x432c60['x'],this['y'] - _0x432c60['y'],this['z'] - _0x432c60['z'],this['w'] - _0x432c60['w']); } , _0x4edeb2['prototype']['subtractToRef'] = function(_0x2bf5cf, _0x15177b) { return _0x15177b['x'] = this['x'] - _0x2bf5cf['x'], _0x15177b['y'] = this['y'] - _0x2bf5cf['y'], _0x15177b['z'] = this['z'] - _0x2bf5cf['z'], _0x15177b['w'] = this['w'] - _0x2bf5cf['w'], this; } , _0x4edeb2['prototype']['subtractFromFloats'] = function(_0x3f7140, _0x253d60, _0x9706c9, _0x12b1ac) { return new _0x4edeb2(this['x'] - _0x3f7140,this['y'] - _0x253d60,this['z'] - _0x9706c9,this['w'] - _0x12b1ac); } , _0x4edeb2['prototype']['subtractFromFloatsToRef'] = function(_0x25e2e9, _0x36880f, _0x55ae3c, _0x5f423f, _0x1407c2) { return _0x1407c2['x'] = this['x'] - _0x25e2e9, _0x1407c2['y'] = this['y'] - _0x36880f, _0x1407c2['z'] = this['z'] - _0x55ae3c, _0x1407c2['w'] = this['w'] - _0x5f423f, this; } , _0x4edeb2['prototype']['negate'] = function() { return new _0x4edeb2(-this['x'],-this['y'],-this['z'],-this['w']); } , _0x4edeb2['prototype']['scaleInPlace'] = function(_0x522864) { return this['x'] *= _0x522864, this['y'] *= _0x522864, this['z'] *= _0x522864, this['w'] *= _0x522864, this; } , _0x4edeb2['prototype']['scale'] = function(_0x1b2dcf) { return new _0x4edeb2(this['x'] * _0x1b2dcf,this['y'] * _0x1b2dcf,this['z'] * _0x1b2dcf,this['w'] * _0x1b2dcf); } , _0x4edeb2['prototype']['scaleToRef'] = function(_0xd536ca, _0x383513) { return _0x383513['x'] = this['x'] * _0xd536ca, _0x383513['y'] = this['y'] * _0xd536ca, _0x383513['z'] = this['z'] * _0xd536ca, _0x383513['w'] = this['w'] * _0xd536ca, this; } , _0x4edeb2['prototype']['scaleAndAddToRef'] = function(_0x31b65a, _0x1e79ec) { return _0x1e79ec['x'] += this['x'] * _0x31b65a, _0x1e79ec['y'] += this['y'] * _0x31b65a, _0x1e79ec['z'] += this['z'] * _0x31b65a, _0x1e79ec['w'] += this['w'] * _0x31b65a, this; } , _0x4edeb2['prototype']['equals'] = function(_0x2d0833) { return _0x2d0833 && this['x'] === _0x2d0833['x'] && this['y'] === _0x2d0833['y'] && this['z'] === _0x2d0833['z'] && this['w'] === _0x2d0833['w']; } , _0x4edeb2['prototype']['equalsWithEpsilon'] = function(_0x1e4516, _0x2f31a9) { return void 0x0 === _0x2f31a9 && (_0x2f31a9 = _0x3e57e9), _0x1e4516 && _0x15f609['a']['WithinEpsilon'](this['x'], _0x1e4516['x'], _0x2f31a9) && _0x15f609['a']['WithinEpsilon'](this['y'], _0x1e4516['y'], _0x2f31a9) && _0x15f609['a']['WithinEpsilon'](this['z'], _0x1e4516['z'], _0x2f31a9) && _0x15f609['a']['WithinEpsilon'](this['w'], _0x1e4516['w'], _0x2f31a9); } , _0x4edeb2['prototype']['equalsToFloats'] = function(_0x148720, _0x5ea0c2, _0x59fbd1, _0x1fd262) { return this['x'] === _0x148720 && this['y'] === _0x5ea0c2 && this['z'] === _0x59fbd1 && this['w'] === _0x1fd262; } , _0x4edeb2['prototype']['multiplyInPlace'] = function(_0x4d9256) { return this['x'] *= _0x4d9256['x'], this['y'] *= _0x4d9256['y'], this['z'] *= _0x4d9256['z'], this['w'] *= _0x4d9256['w'], this; } , _0x4edeb2['prototype']['multiply'] = function(_0x396d62) { return new _0x4edeb2(this['x'] * _0x396d62['x'],this['y'] * _0x396d62['y'],this['z'] * _0x396d62['z'],this['w'] * _0x396d62['w']); } , _0x4edeb2['prototype']['multiplyToRef'] = function(_0xd7f71c, _0x1837ee) { return _0x1837ee['x'] = this['x'] * _0xd7f71c['x'], _0x1837ee['y'] = this['y'] * _0xd7f71c['y'], _0x1837ee['z'] = this['z'] * _0xd7f71c['z'], _0x1837ee['w'] = this['w'] * _0xd7f71c['w'], this; } , _0x4edeb2['prototype']['multiplyByFloats'] = function(_0x1ad9d4, _0x9caea4, _0xfe04c6, _0x8dfa05) { return new _0x4edeb2(this['x'] * _0x1ad9d4,this['y'] * _0x9caea4,this['z'] * _0xfe04c6,this['w'] * _0x8dfa05); } , _0x4edeb2['prototype']['divide'] = function(_0x2b0645) { return new _0x4edeb2(this['x'] / _0x2b0645['x'],this['y'] / _0x2b0645['y'],this['z'] / _0x2b0645['z'],this['w'] / _0x2b0645['w']); } , _0x4edeb2['prototype']['divideToRef'] = function(_0x274f42, _0x2e6277) { return _0x2e6277['x'] = this['x'] / _0x274f42['x'], _0x2e6277['y'] = this['y'] / _0x274f42['y'], _0x2e6277['z'] = this['z'] / _0x274f42['z'], _0x2e6277['w'] = this['w'] / _0x274f42['w'], this; } , _0x4edeb2['prototype']['divideInPlace'] = function(_0x433d92) { return this['divideToRef'](_0x433d92, this); } , _0x4edeb2['prototype']['minimizeInPlace'] = function(_0x232d10) { return _0x232d10['x'] < this['x'] && (this['x'] = _0x232d10['x']), _0x232d10['y'] < this['y'] && (this['y'] = _0x232d10['y']), _0x232d10['z'] < this['z'] && (this['z'] = _0x232d10['z']), _0x232d10['w'] < this['w'] && (this['w'] = _0x232d10['w']), this; } , _0x4edeb2['prototype']['maximizeInPlace'] = function(_0x227c6b) { return _0x227c6b['x'] > this['x'] && (this['x'] = _0x227c6b['x']), _0x227c6b['y'] > this['y'] && (this['y'] = _0x227c6b['y']), _0x227c6b['z'] > this['z'] && (this['z'] = _0x227c6b['z']), _0x227c6b['w'] > this['w'] && (this['w'] = _0x227c6b['w']), this; } , _0x4edeb2['prototype']['floor'] = function() { return new _0x4edeb2(Math['floor'](this['x']),Math['floor'](this['y']),Math['floor'](this['z']),Math['floor'](this['w'])); } , _0x4edeb2['prototype']['fract'] = function() { return new _0x4edeb2(this['x'] - Math['floor'](this['x']),this['y'] - Math['floor'](this['y']),this['z'] - Math['floor'](this['z']),this['w'] - Math['floor'](this['w'])); } , _0x4edeb2['prototype']['length'] = function() { return Math['sqrt'](this['x'] * this['x'] + this['y'] * this['y'] + this['z'] * this['z'] + this['w'] * this['w']); } , _0x4edeb2['prototype']['lengthSquared'] = function() { return this['x'] * this['x'] + this['y'] * this['y'] + this['z'] * this['z'] + this['w'] * this['w']; } , _0x4edeb2['prototype']['normalize'] = function() { var _0x43fdda = this['length'](); return 0x0 === _0x43fdda ? this : this['scaleInPlace'](0x1 / _0x43fdda); } , _0x4edeb2['prototype']['toVector3'] = function() { return new _0x3fbe20(this['x'],this['y'],this['z']); } , _0x4edeb2['prototype']['clone'] = function() { return new _0x4edeb2(this['x'],this['y'],this['z'],this['w']); } , _0x4edeb2['prototype']['copyFrom'] = function(_0xe583e4) { return this['x'] = _0xe583e4['x'], this['y'] = _0xe583e4['y'], this['z'] = _0xe583e4['z'], this['w'] = _0xe583e4['w'], this; } , _0x4edeb2['prototype']['copyFromFloats'] = function(_0x5c6782, _0x4aba38, _0x2884cb, _0x4d086c) { return this['x'] = _0x5c6782, this['y'] = _0x4aba38, this['z'] = _0x2884cb, this['w'] = _0x4d086c, this; } , _0x4edeb2['prototype']['set'] = function(_0x5dd74d, _0xcf541f, _0x9a3ff9, _0x2889d5) { return this['copyFromFloats'](_0x5dd74d, _0xcf541f, _0x9a3ff9, _0x2889d5); } , _0x4edeb2['prototype']['setAll'] = function(_0x213f8c) { return this['x'] = this['y'] = this['z'] = this['w'] = _0x213f8c, this; } , _0x4edeb2['FromArray'] = function(_0x2a596c, _0x293a99) { return _0x293a99 || (_0x293a99 = 0x0), new _0x4edeb2(_0x2a596c[_0x293a99],_0x2a596c[_0x293a99 + 0x1],_0x2a596c[_0x293a99 + 0x2],_0x2a596c[_0x293a99 + 0x3]); } , _0x4edeb2['FromArrayToRef'] = function(_0x30df50, _0x5c808a, _0x380bf1) { _0x380bf1['x'] = _0x30df50[_0x5c808a], _0x380bf1['y'] = _0x30df50[_0x5c808a + 0x1], _0x380bf1['z'] = _0x30df50[_0x5c808a + 0x2], _0x380bf1['w'] = _0x30df50[_0x5c808a + 0x3]; } , _0x4edeb2['FromFloatArrayToRef'] = function(_0x3dfced, _0x11a21c, _0x1eba8e) { _0x4edeb2['FromArrayToRef'](_0x3dfced, _0x11a21c, _0x1eba8e); } , _0x4edeb2['FromFloatsToRef'] = function(_0x574586, _0x11a7c6, _0x26c433, _0x1dd9ce, _0x34bb1c) { _0x34bb1c['x'] = _0x574586, _0x34bb1c['y'] = _0x11a7c6, _0x34bb1c['z'] = _0x26c433, _0x34bb1c['w'] = _0x1dd9ce; } , _0x4edeb2['Zero'] = function() { return new _0x4edeb2(0x0,0x0,0x0,0x0); } , _0x4edeb2['One'] = function() { return new _0x4edeb2(0x1,0x1,0x1,0x1); } , _0x4edeb2['Normalize'] = function(_0x4ac056) { var _0x58ad06 = _0x4edeb2['Zero'](); return _0x4edeb2['NormalizeToRef'](_0x4ac056, _0x58ad06), _0x58ad06; } , _0x4edeb2['NormalizeToRef'] = function(_0xc8e59c, _0x4f0aa) { _0x4f0aa['copyFrom'](_0xc8e59c), _0x4f0aa['normalize'](); } , _0x4edeb2['Minimize'] = function(_0x411bec, _0x317eb5) { var _0xdc5a72 = _0x411bec['clone'](); return _0xdc5a72['minimizeInPlace'](_0x317eb5), _0xdc5a72; } , _0x4edeb2['Maximize'] = function(_0x477031, _0x39100d) { var _0x31d943 = _0x477031['clone'](); return _0x31d943['maximizeInPlace'](_0x39100d), _0x31d943; } , _0x4edeb2['Distance'] = function(_0x49c0c1, _0x1d4513) { return Math['sqrt'](_0x4edeb2['DistanceSquared'](_0x49c0c1, _0x1d4513)); } , _0x4edeb2['DistanceSquared'] = function(_0x37d8c9, _0x309937) { var _0x34b8ee = _0x37d8c9['x'] - _0x309937['x'] , _0x15cf57 = _0x37d8c9['y'] - _0x309937['y'] , _0x4d1d56 = _0x37d8c9['z'] - _0x309937['z'] , _0x370dfa = _0x37d8c9['w'] - _0x309937['w']; return _0x34b8ee * _0x34b8ee + _0x15cf57 * _0x15cf57 + _0x4d1d56 * _0x4d1d56 + _0x370dfa * _0x370dfa; } , _0x4edeb2['Center'] = function(_0x2b4fe3, _0x56dee7) { var _0x1d8cdf = _0x2b4fe3['add'](_0x56dee7); return _0x1d8cdf['scaleInPlace'](0.5), _0x1d8cdf; } , _0x4edeb2['TransformNormal'] = function(_0x4e3c64, _0x8968de) { var _0x3c1510 = _0x4edeb2['Zero'](); return _0x4edeb2['TransformNormalToRef'](_0x4e3c64, _0x8968de, _0x3c1510), _0x3c1510; } , _0x4edeb2['TransformNormalToRef'] = function(_0x566093, _0x188881, _0xb819d8) { var _0x502f27 = _0x188881['m'] , _0x3ad505 = _0x566093['x'] * _0x502f27[0x0] + _0x566093['y'] * _0x502f27[0x4] + _0x566093['z'] * _0x502f27[0x8] , _0x50828b = _0x566093['x'] * _0x502f27[0x1] + _0x566093['y'] * _0x502f27[0x5] + _0x566093['z'] * _0x502f27[0x9] , _0x581b6a = _0x566093['x'] * _0x502f27[0x2] + _0x566093['y'] * _0x502f27[0x6] + _0x566093['z'] * _0x502f27[0xa]; _0xb819d8['x'] = _0x3ad505, _0xb819d8['y'] = _0x50828b, _0xb819d8['z'] = _0x581b6a, _0xb819d8['w'] = _0x566093['w']; } , _0x4edeb2['TransformNormalFromFloatsToRef'] = function(_0x591cbb, _0x2cbd96, _0x314db0, _0x110d0e, _0x1bc70c, _0xbf787c) { var _0x1eac41 = _0x1bc70c['m']; _0xbf787c['x'] = _0x591cbb * _0x1eac41[0x0] + _0x2cbd96 * _0x1eac41[0x4] + _0x314db0 * _0x1eac41[0x8], _0xbf787c['y'] = _0x591cbb * _0x1eac41[0x1] + _0x2cbd96 * _0x1eac41[0x5] + _0x314db0 * _0x1eac41[0x9], _0xbf787c['z'] = _0x591cbb * _0x1eac41[0x2] + _0x2cbd96 * _0x1eac41[0x6] + _0x314db0 * _0x1eac41[0xa], _0xbf787c['w'] = _0x110d0e; } , _0x4edeb2['FromVector3'] = function(_0x533793, _0xe4875b) { return void 0x0 === _0xe4875b && (_0xe4875b = 0x0), new _0x4edeb2(_0x533793['x'],_0x533793['y'],_0x533793['z'],_0xe4875b); } , _0x4edeb2; }(), _0x1232e4 = function() { function _0xdacaea(_0x24f48a, _0x4d0511) { this['width'] = _0x24f48a, this['height'] = _0x4d0511; } return _0xdacaea['prototype']['toString'] = function() { return '{W:\x20' + this['width'] + ',\x20H:\x20' + this['height'] + '}'; } , _0xdacaea['prototype']['getClassName'] = function() { return 'Size'; } , _0xdacaea['prototype']['getHashCode'] = function() { var _0x1ccf2f = this['width'] || 0x0; return _0x1ccf2f = 0x18d * _0x1ccf2f ^ (this['height'] || 0x0); } , _0xdacaea['prototype']['copyFrom'] = function(_0x477bea) { this['width'] = _0x477bea['width'], this['height'] = _0x477bea['height']; } , _0xdacaea['prototype']['copyFromFloats'] = function(_0x24ae96, _0xf54019) { return this['width'] = _0x24ae96, this['height'] = _0xf54019, this; } , _0xdacaea['prototype']['set'] = function(_0x3204a1, _0x3b9f33) { return this['copyFromFloats'](_0x3204a1, _0x3b9f33); } , _0xdacaea['prototype']['multiplyByFloats'] = function(_0x55053c, _0x1d4d31) { return new _0xdacaea(this['width'] * _0x55053c,this['height'] * _0x1d4d31); } , _0xdacaea['prototype']['clone'] = function() { return new _0xdacaea(this['width'],this['height']); } , _0xdacaea['prototype']['equals'] = function(_0x239164) { return !!_0x239164 && (this['width'] === _0x239164['width'] && this['height'] === _0x239164['height']); } , Object['defineProperty'](_0xdacaea['prototype'], 'surface', { 'get': function() { return this['width'] * this['height']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0xdacaea['Zero'] = function() { return new _0xdacaea(0x0,0x0); } , _0xdacaea['prototype']['add'] = function(_0x111ff9) { return new _0xdacaea(this['width'] + _0x111ff9['width'],this['height'] + _0x111ff9['height']); } , _0xdacaea['prototype']['subtract'] = function(_0x5e12fa) { return new _0xdacaea(this['width'] - _0x5e12fa['width'],this['height'] - _0x5e12fa['height']); } , _0xdacaea['Lerp'] = function(_0x58ff4e, _0x3cd087, _0x4fe305) { return new _0xdacaea(_0x58ff4e['width'] + (_0x3cd087['width'] - _0x58ff4e['width']) * _0x4fe305,_0x58ff4e['height'] + (_0x3cd087['height'] - _0x58ff4e['height']) * _0x4fe305); } , _0xdacaea; }(), _0x897ad5 = function() { function _0x260207(_0x2aaf7c, _0x1a3132, _0x5d082e, _0x30fcee) { void 0x0 === _0x2aaf7c && (_0x2aaf7c = 0x0), void 0x0 === _0x1a3132 && (_0x1a3132 = 0x0), void 0x0 === _0x5d082e && (_0x5d082e = 0x0), void 0x0 === _0x30fcee && (_0x30fcee = 0x1), this['x'] = _0x2aaf7c, this['y'] = _0x1a3132, this['z'] = _0x5d082e, this['w'] = _0x30fcee; } return _0x260207['prototype']['toString'] = function() { return '{X:\x20' + this['x'] + '\x20Y:' + this['y'] + '\x20Z:' + this['z'] + '\x20W:' + this['w'] + '}'; } , _0x260207['prototype']['getClassName'] = function() { return 'Quaternion'; } , _0x260207['prototype']['getHashCode'] = function() { var _0x202156 = this['x'] || 0x0; return _0x202156 = 0x18d * (_0x202156 = 0x18d * (_0x202156 = 0x18d * _0x202156 ^ (this['y'] || 0x0)) ^ (this['z'] || 0x0)) ^ (this['w'] || 0x0); } , _0x260207['prototype']['asArray'] = function() { return [this['x'], this['y'], this['z'], this['w']]; } , _0x260207['prototype']['equals'] = function(_0x50573e) { return _0x50573e && this['x'] === _0x50573e['x'] && this['y'] === _0x50573e['y'] && this['z'] === _0x50573e['z'] && this['w'] === _0x50573e['w']; } , _0x260207['prototype']['clone'] = function() { return new _0x260207(this['x'],this['y'],this['z'],this['w']); } , _0x260207['prototype']['copyFrom'] = function(_0x5d3847) { return this['x'] = _0x5d3847['x'], this['y'] = _0x5d3847['y'], this['z'] = _0x5d3847['z'], this['w'] = _0x5d3847['w'], this; } , _0x260207['prototype']['copyFromFloats'] = function(_0x3e6ec9, _0x1a3b0d, _0x3b4e9a, _0x421925) { return this['x'] = _0x3e6ec9, this['y'] = _0x1a3b0d, this['z'] = _0x3b4e9a, this['w'] = _0x421925, this; } , _0x260207['prototype']['set'] = function(_0x3fbeff, _0x4b4e8d, _0x2af6d9, _0x3fba47) { return this['copyFromFloats'](_0x3fbeff, _0x4b4e8d, _0x2af6d9, _0x3fba47); } , _0x260207['prototype']['add'] = function(_0x4c9334) { return new _0x260207(this['x'] + _0x4c9334['x'],this['y'] + _0x4c9334['y'],this['z'] + _0x4c9334['z'],this['w'] + _0x4c9334['w']); } , _0x260207['prototype']['addInPlace'] = function(_0x40d20d) { return this['x'] += _0x40d20d['x'], this['y'] += _0x40d20d['y'], this['z'] += _0x40d20d['z'], this['w'] += _0x40d20d['w'], this; } , _0x260207['prototype']['subtract'] = function(_0x47a6d) { return new _0x260207(this['x'] - _0x47a6d['x'],this['y'] - _0x47a6d['y'],this['z'] - _0x47a6d['z'],this['w'] - _0x47a6d['w']); } , _0x260207['prototype']['scale'] = function(_0x346553) { return new _0x260207(this['x'] * _0x346553,this['y'] * _0x346553,this['z'] * _0x346553,this['w'] * _0x346553); } , _0x260207['prototype']['scaleToRef'] = function(_0x41c9b3, _0x1418eb) { return _0x1418eb['x'] = this['x'] * _0x41c9b3, _0x1418eb['y'] = this['y'] * _0x41c9b3, _0x1418eb['z'] = this['z'] * _0x41c9b3, _0x1418eb['w'] = this['w'] * _0x41c9b3, this; } , _0x260207['prototype']['scaleInPlace'] = function(_0x3db4f8) { return this['x'] *= _0x3db4f8, this['y'] *= _0x3db4f8, this['z'] *= _0x3db4f8, this['w'] *= _0x3db4f8, this; } , _0x260207['prototype']['scaleAndAddToRef'] = function(_0x32856d, _0x259036) { return _0x259036['x'] += this['x'] * _0x32856d, _0x259036['y'] += this['y'] * _0x32856d, _0x259036['z'] += this['z'] * _0x32856d, _0x259036['w'] += this['w'] * _0x32856d, this; } , _0x260207['prototype']['multiply'] = function(_0x21b883) { var _0x1d5502 = new _0x260207(0x0,0x0,0x0,0x1); return this['multiplyToRef'](_0x21b883, _0x1d5502), _0x1d5502; } , _0x260207['prototype']['multiplyToRef'] = function(_0x2ebd26, _0x3f94d0) { var _0x12f85e = this['x'] * _0x2ebd26['w'] + this['y'] * _0x2ebd26['z'] - this['z'] * _0x2ebd26['y'] + this['w'] * _0x2ebd26['x'] , _0x302186 = -this['x'] * _0x2ebd26['z'] + this['y'] * _0x2ebd26['w'] + this['z'] * _0x2ebd26['x'] + this['w'] * _0x2ebd26['y'] , _0x56b563 = this['x'] * _0x2ebd26['y'] - this['y'] * _0x2ebd26['x'] + this['z'] * _0x2ebd26['w'] + this['w'] * _0x2ebd26['z'] , _0x4f7073 = -this['x'] * _0x2ebd26['x'] - this['y'] * _0x2ebd26['y'] - this['z'] * _0x2ebd26['z'] + this['w'] * _0x2ebd26['w']; return _0x3f94d0['copyFromFloats'](_0x12f85e, _0x302186, _0x56b563, _0x4f7073), this; } , _0x260207['prototype']['multiplyInPlace'] = function(_0x4b3899) { return this['multiplyToRef'](_0x4b3899, this), this; } , _0x260207['prototype']['conjugateToRef'] = function(_0x3f855c) { return _0x3f855c['copyFromFloats'](-this['x'], -this['y'], -this['z'], this['w']), this; } , _0x260207['prototype']['conjugateInPlace'] = function() { return this['x'] *= -0x1, this['y'] *= -0x1, this['z'] *= -0x1, this; } , _0x260207['prototype']['conjugate'] = function() { return new _0x260207(-this['x'],-this['y'],-this['z'],this['w']); } , _0x260207['prototype']['length'] = function() { return Math['sqrt'](this['x'] * this['x'] + this['y'] * this['y'] + this['z'] * this['z'] + this['w'] * this['w']); } , _0x260207['prototype']['normalize'] = function() { var _0x1ca130 = this['length'](); if (0x0 === _0x1ca130) return this; var _0xc9b773 = 0x1 / _0x1ca130; return this['x'] *= _0xc9b773, this['y'] *= _0xc9b773, this['z'] *= _0xc9b773, this['w'] *= _0xc9b773, this; } , _0x260207['prototype']['toEulerAngles'] = function(_0xc6e200) { void 0x0 === _0xc6e200 && (_0xc6e200 = 'YZX'); var _0x1bde49 = _0x3fbe20['Zero'](); return this['toEulerAnglesToRef'](_0x1bde49), _0x1bde49; } , _0x260207['prototype']['toEulerAnglesToRef'] = function(_0xdde1a1) { var _0x1dfe2d = this['z'] , _0x19eeae = this['x'] , _0x5d1661 = this['y'] , _0x572b56 = this['w'] , _0x45007c = _0x572b56 * _0x572b56 , _0x3b256a = _0x1dfe2d * _0x1dfe2d , _0x5e772c = _0x19eeae * _0x19eeae , _0xa40a67 = _0x5d1661 * _0x5d1661 , _0x1f9b33 = _0x5d1661 * _0x1dfe2d - _0x19eeae * _0x572b56; return _0x1f9b33 < -0.4999999 ? (_0xdde1a1['y'] = 0x2 * Math['atan2'](_0x5d1661, _0x572b56), _0xdde1a1['x'] = Math['PI'] / 0x2, _0xdde1a1['z'] = 0x0) : _0x1f9b33 > 0.4999999 ? (_0xdde1a1['y'] = 0x2 * Math['atan2'](_0x5d1661, _0x572b56), _0xdde1a1['x'] = -Math['PI'] / 0x2, _0xdde1a1['z'] = 0x0) : (_0xdde1a1['z'] = Math['atan2'](0x2 * (_0x19eeae * _0x5d1661 + _0x1dfe2d * _0x572b56), -_0x3b256a - _0x5e772c + _0xa40a67 + _0x45007c), _0xdde1a1['x'] = Math['asin'](-0x2 * (_0x1dfe2d * _0x5d1661 - _0x19eeae * _0x572b56)), _0xdde1a1['y'] = Math['atan2'](0x2 * (_0x1dfe2d * _0x19eeae + _0x5d1661 * _0x572b56), _0x3b256a - _0x5e772c - _0xa40a67 + _0x45007c)), this; } , _0x260207['prototype']['toRotationMatrix'] = function(_0x13c412) { return _0x5e57bc['FromQuaternionToRef'](this, _0x13c412), this; } , _0x260207['prototype']['fromRotationMatrix'] = function(_0x15c6fa) { return _0x260207['FromRotationMatrixToRef'](_0x15c6fa, this), this; } , _0x260207['FromRotationMatrix'] = function(_0x151f66) { var _0x393806 = new _0x260207(); return _0x260207['FromRotationMatrixToRef'](_0x151f66, _0x393806), _0x393806; } , _0x260207['FromRotationMatrixToRef'] = function(_0x4d8e58, _0x1efca4) { var _0x123450, _0x324480 = _0x4d8e58['m'], _0x478539 = _0x324480[0x0], _0x4f17eb = _0x324480[0x4], _0x514883 = _0x324480[0x8], _0x12ab62 = _0x324480[0x1], _0x510d22 = _0x324480[0x5], _0x5b7f76 = _0x324480[0x9], _0x43dd48 = _0x324480[0x2], _0x42ad7e = _0x324480[0x6], _0x3d9a7e = _0x324480[0xa], _0x4273b9 = _0x478539 + _0x510d22 + _0x3d9a7e; _0x4273b9 > 0x0 ? (_0x123450 = 0.5 / Math['sqrt'](_0x4273b9 + 0x1), _0x1efca4['w'] = 0.25 / _0x123450, _0x1efca4['x'] = (_0x42ad7e - _0x5b7f76) * _0x123450, _0x1efca4['y'] = (_0x514883 - _0x43dd48) * _0x123450, _0x1efca4['z'] = (_0x12ab62 - _0x4f17eb) * _0x123450) : _0x478539 > _0x510d22 && _0x478539 > _0x3d9a7e ? (_0x123450 = 0x2 * Math['sqrt'](0x1 + _0x478539 - _0x510d22 - _0x3d9a7e), _0x1efca4['w'] = (_0x42ad7e - _0x5b7f76) / _0x123450, _0x1efca4['x'] = 0.25 * _0x123450, _0x1efca4['y'] = (_0x4f17eb + _0x12ab62) / _0x123450, _0x1efca4['z'] = (_0x514883 + _0x43dd48) / _0x123450) : _0x510d22 > _0x3d9a7e ? (_0x123450 = 0x2 * Math['sqrt'](0x1 + _0x510d22 - _0x478539 - _0x3d9a7e), _0x1efca4['w'] = (_0x514883 - _0x43dd48) / _0x123450, _0x1efca4['x'] = (_0x4f17eb + _0x12ab62) / _0x123450, _0x1efca4['y'] = 0.25 * _0x123450, _0x1efca4['z'] = (_0x5b7f76 + _0x42ad7e) / _0x123450) : (_0x123450 = 0x2 * Math['sqrt'](0x1 + _0x3d9a7e - _0x478539 - _0x510d22), _0x1efca4['w'] = (_0x12ab62 - _0x4f17eb) / _0x123450, _0x1efca4['x'] = (_0x514883 + _0x43dd48) / _0x123450, _0x1efca4['y'] = (_0x5b7f76 + _0x42ad7e) / _0x123450, _0x1efca4['z'] = 0.25 * _0x123450); } , _0x260207['Dot'] = function(_0x4253c9, _0x54feea) { return _0x4253c9['x'] * _0x54feea['x'] + _0x4253c9['y'] * _0x54feea['y'] + _0x4253c9['z'] * _0x54feea['z'] + _0x4253c9['w'] * _0x54feea['w']; } , _0x260207['AreClose'] = function(_0x1254b4, _0x22f1bc) { return _0x260207['Dot'](_0x1254b4, _0x22f1bc) >= 0x0; } , _0x260207['Zero'] = function() { return new _0x260207(0x0,0x0,0x0,0x0); } , _0x260207['Inverse'] = function(_0x4a393a) { return new _0x260207(-_0x4a393a['x'],-_0x4a393a['y'],-_0x4a393a['z'],_0x4a393a['w']); } , _0x260207['InverseToRef'] = function(_0x342a80, _0x5e176e) { return _0x5e176e['set'](-_0x342a80['x'], -_0x342a80['y'], -_0x342a80['z'], _0x342a80['w']), _0x5e176e; } , _0x260207['Identity'] = function() { return new _0x260207(0x0,0x0,0x0,0x1); } , _0x260207['IsIdentity'] = function(_0x2b8e50) { return _0x2b8e50 && 0x0 === _0x2b8e50['x'] && 0x0 === _0x2b8e50['y'] && 0x0 === _0x2b8e50['z'] && 0x1 === _0x2b8e50['w']; } , _0x260207['RotationAxis'] = function(_0xbb986f, _0x421f39) { return _0x260207['RotationAxisToRef'](_0xbb986f, _0x421f39, new _0x260207()); } , _0x260207['RotationAxisToRef'] = function(_0x41acd7, _0x5b1c74, _0x59b902) { var _0x10310e = Math['sin'](_0x5b1c74 / 0x2); return _0x41acd7['normalize'](), _0x59b902['w'] = Math['cos'](_0x5b1c74 / 0x2), _0x59b902['x'] = _0x41acd7['x'] * _0x10310e, _0x59b902['y'] = _0x41acd7['y'] * _0x10310e, _0x59b902['z'] = _0x41acd7['z'] * _0x10310e, _0x59b902; } , _0x260207['FromArray'] = function(_0x55cd4f, _0x3e2723) { return _0x3e2723 || (_0x3e2723 = 0x0), new _0x260207(_0x55cd4f[_0x3e2723],_0x55cd4f[_0x3e2723 + 0x1],_0x55cd4f[_0x3e2723 + 0x2],_0x55cd4f[_0x3e2723 + 0x3]); } , _0x260207['FromEulerAngles'] = function(_0x416b9e, _0x17de6d, _0x1d8d5a) { var _0x3e8f92 = new _0x260207(); return _0x260207['RotationYawPitchRollToRef'](_0x17de6d, _0x416b9e, _0x1d8d5a, _0x3e8f92), _0x3e8f92; } , _0x260207['FromEulerAnglesToRef'] = function(_0x115a29, _0x5481d2, _0x360b27, _0x5a652f) { return _0x260207['RotationYawPitchRollToRef'](_0x5481d2, _0x115a29, _0x360b27, _0x5a652f), _0x5a652f; } , _0x260207['FromEulerVector'] = function(_0x372ec3) { var _0x2fba2c = new _0x260207(); return _0x260207['RotationYawPitchRollToRef'](_0x372ec3['y'], _0x372ec3['x'], _0x372ec3['z'], _0x2fba2c), _0x2fba2c; } , _0x260207['FromEulerVectorToRef'] = function(_0x2a2ba8, _0x1960f0) { return _0x260207['RotationYawPitchRollToRef'](_0x2a2ba8['y'], _0x2a2ba8['x'], _0x2a2ba8['z'], _0x1960f0), _0x1960f0; } , _0x260207['RotationYawPitchRoll'] = function(_0x3d9d54, _0x572a65, _0x51be9f) { var _0xd862f9 = new _0x260207(); return _0x260207['RotationYawPitchRollToRef'](_0x3d9d54, _0x572a65, _0x51be9f, _0xd862f9), _0xd862f9; } , _0x260207['RotationYawPitchRollToRef'] = function(_0x260143, _0x494108, _0x2879f5, _0x38a94d) { var _0x1c2ff9 = 0.5 * _0x2879f5 , _0x28fb34 = 0.5 * _0x494108 , _0xbf1cf4 = 0.5 * _0x260143 , _0x4facf0 = Math['sin'](_0x1c2ff9) , _0x414db0 = Math['cos'](_0x1c2ff9) , _0x159373 = Math['sin'](_0x28fb34) , _0x221f73 = Math['cos'](_0x28fb34) , _0x1be32f = Math['sin'](_0xbf1cf4) , _0x2def53 = Math['cos'](_0xbf1cf4); _0x38a94d['x'] = _0x2def53 * _0x159373 * _0x414db0 + _0x1be32f * _0x221f73 * _0x4facf0, _0x38a94d['y'] = _0x1be32f * _0x221f73 * _0x414db0 - _0x2def53 * _0x159373 * _0x4facf0, _0x38a94d['z'] = _0x2def53 * _0x221f73 * _0x4facf0 - _0x1be32f * _0x159373 * _0x414db0, _0x38a94d['w'] = _0x2def53 * _0x221f73 * _0x414db0 + _0x1be32f * _0x159373 * _0x4facf0; } , _0x260207['RotationAlphaBetaGamma'] = function(_0x59dcd0, _0x464a65, _0x4973b1) { var _0x48d612 = new _0x260207(); return _0x260207['RotationAlphaBetaGammaToRef'](_0x59dcd0, _0x464a65, _0x4973b1, _0x48d612), _0x48d612; } , _0x260207['RotationAlphaBetaGammaToRef'] = function(_0x4a4265, _0x28367c, _0x2e64df, _0x2772f6) { var _0x27472a = 0.5 * (_0x2e64df + _0x4a4265) , _0x5db8fe = 0.5 * (_0x2e64df - _0x4a4265) , _0x16f81e = 0.5 * _0x28367c; _0x2772f6['x'] = Math['cos'](_0x5db8fe) * Math['sin'](_0x16f81e), _0x2772f6['y'] = Math['sin'](_0x5db8fe) * Math['sin'](_0x16f81e), _0x2772f6['z'] = Math['sin'](_0x27472a) * Math['cos'](_0x16f81e), _0x2772f6['w'] = Math['cos'](_0x27472a) * Math['cos'](_0x16f81e); } , _0x260207['RotationQuaternionFromAxis'] = function(_0x5bb73c, _0x5e01d8, _0x41cd31) { var _0x439a84 = new _0x260207(0x0,0x0,0x0,0x0); return _0x260207['RotationQuaternionFromAxisToRef'](_0x5bb73c, _0x5e01d8, _0x41cd31, _0x439a84), _0x439a84; } , _0x260207['RotationQuaternionFromAxisToRef'] = function(_0x28bafa, _0x247ae5, _0x1a47bc, _0x2b3b58) { var _0x5cb0fe = _0x53a116['Matrix'][0x0]; _0x5e57bc['FromXYZAxesToRef'](_0x28bafa['normalize'](), _0x247ae5['normalize'](), _0x1a47bc['normalize'](), _0x5cb0fe), _0x260207['FromRotationMatrixToRef'](_0x5cb0fe, _0x2b3b58); } , _0x260207['Slerp'] = function(_0x581c09, _0x47896d, _0xb25d62) { var _0x1ef552 = _0x260207['Identity'](); return _0x260207['SlerpToRef'](_0x581c09, _0x47896d, _0xb25d62, _0x1ef552), _0x1ef552; } , _0x260207['SlerpToRef'] = function(_0x293937, _0x481ddd, _0xb89408, _0x32af89) { var _0x408347, _0x31be83, _0x2269b0 = _0x293937['x'] * _0x481ddd['x'] + _0x293937['y'] * _0x481ddd['y'] + _0x293937['z'] * _0x481ddd['z'] + _0x293937['w'] * _0x481ddd['w'], _0x2af898 = !0x1; if (_0x2269b0 < 0x0 && (_0x2af898 = !0x0, _0x2269b0 = -_0x2269b0), _0x2269b0 > 0.999999) _0x31be83 = 0x1 - _0xb89408, _0x408347 = _0x2af898 ? -_0xb89408 : _0xb89408; else { var _0x272b05 = Math['acos'](_0x2269b0) , _0x583e19 = 0x1 / Math['sin'](_0x272b05); _0x31be83 = Math['sin']((0x1 - _0xb89408) * _0x272b05) * _0x583e19, _0x408347 = _0x2af898 ? -Math['sin'](_0xb89408 * _0x272b05) * _0x583e19 : Math['sin'](_0xb89408 * _0x272b05) * _0x583e19; } _0x32af89['x'] = _0x31be83 * _0x293937['x'] + _0x408347 * _0x481ddd['x'], _0x32af89['y'] = _0x31be83 * _0x293937['y'] + _0x408347 * _0x481ddd['y'], _0x32af89['z'] = _0x31be83 * _0x293937['z'] + _0x408347 * _0x481ddd['z'], _0x32af89['w'] = _0x31be83 * _0x293937['w'] + _0x408347 * _0x481ddd['w']; } , _0x260207['Hermite'] = function(_0x11f961, _0x1208b5, _0x2f6648, _0xcb40ac, _0x35293a) { var _0x20b0ed = _0x35293a * _0x35293a , _0x1c676e = _0x35293a * _0x20b0ed , _0x112137 = 0x2 * _0x1c676e - 0x3 * _0x20b0ed + 0x1 , _0xb4c8b1 = -0x2 * _0x1c676e + 0x3 * _0x20b0ed , _0x9ce56b = _0x1c676e - 0x2 * _0x20b0ed + _0x35293a , _0x3df0ba = _0x1c676e - _0x20b0ed; return new _0x260207(_0x11f961['x'] * _0x112137 + _0x2f6648['x'] * _0xb4c8b1 + _0x1208b5['x'] * _0x9ce56b + _0xcb40ac['x'] * _0x3df0ba,_0x11f961['y'] * _0x112137 + _0x2f6648['y'] * _0xb4c8b1 + _0x1208b5['y'] * _0x9ce56b + _0xcb40ac['y'] * _0x3df0ba,_0x11f961['z'] * _0x112137 + _0x2f6648['z'] * _0xb4c8b1 + _0x1208b5['z'] * _0x9ce56b + _0xcb40ac['z'] * _0x3df0ba,_0x11f961['w'] * _0x112137 + _0x2f6648['w'] * _0xb4c8b1 + _0x1208b5['w'] * _0x9ce56b + _0xcb40ac['w'] * _0x3df0ba); } , _0x260207; }(), _0x5e57bc = function() { function _0xb313f9() { this['_isIdentity'] = !0x1, this['_isIdentityDirty'] = !0x0, this['_isIdentity3x2'] = !0x0, this['_isIdentity3x2Dirty'] = !0x0, this['updateFlag'] = -0x1, this['_m'] = new Float32Array(0x10), this['_updateIdentityStatus'](!0x1); } return Object['defineProperty'](_0xb313f9['prototype'], 'm', { 'get': function() { return this['_m']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0xb313f9['prototype']['_markAsUpdated'] = function() { this['updateFlag'] = _0xb313f9['_updateFlagSeed']++, this['_isIdentity'] = !0x1, this['_isIdentity3x2'] = !0x1, this['_isIdentityDirty'] = !0x0, this['_isIdentity3x2Dirty'] = !0x0; } , _0xb313f9['prototype']['_updateIdentityStatus'] = function(_0x135b68, _0x4807b0, _0x3d08b3, _0x1c5d52) { void 0x0 === _0x4807b0 && (_0x4807b0 = !0x1), void 0x0 === _0x3d08b3 && (_0x3d08b3 = !0x1), void 0x0 === _0x1c5d52 && (_0x1c5d52 = !0x0), this['updateFlag'] = _0xb313f9['_updateFlagSeed']++, this['_isIdentity'] = _0x135b68, this['_isIdentity3x2'] = _0x135b68 || _0x3d08b3, this['_isIdentityDirty'] = !this['_isIdentity'] && _0x4807b0, this['_isIdentity3x2Dirty'] = !this['_isIdentity3x2'] && _0x1c5d52; } , _0xb313f9['prototype']['isIdentity'] = function() { if (this['_isIdentityDirty']) { this['_isIdentityDirty'] = !0x1; var _0x559560 = this['_m']; this['_isIdentity'] = 0x1 === _0x559560[0x0] && 0x0 === _0x559560[0x1] && 0x0 === _0x559560[0x2] && 0x0 === _0x559560[0x3] && 0x0 === _0x559560[0x4] && 0x1 === _0x559560[0x5] && 0x0 === _0x559560[0x6] && 0x0 === _0x559560[0x7] && 0x0 === _0x559560[0x8] && 0x0 === _0x559560[0x9] && 0x1 === _0x559560[0xa] && 0x0 === _0x559560[0xb] && 0x0 === _0x559560[0xc] && 0x0 === _0x559560[0xd] && 0x0 === _0x559560[0xe] && 0x1 === _0x559560[0xf]; } return this['_isIdentity']; } , _0xb313f9['prototype']['isIdentityAs3x2'] = function() { return this['_isIdentity3x2Dirty'] && (this['_isIdentity3x2Dirty'] = !0x1, 0x1 !== this['_m'][0x0] || 0x1 !== this['_m'][0x5] || 0x1 !== this['_m'][0xf] ? this['_isIdentity3x2'] = !0x1 : 0x0 !== this['_m'][0x1] || 0x0 !== this['_m'][0x2] || 0x0 !== this['_m'][0x3] || 0x0 !== this['_m'][0x4] || 0x0 !== this['_m'][0x6] || 0x0 !== this['_m'][0x7] || 0x0 !== this['_m'][0x8] || 0x0 !== this['_m'][0x9] || 0x0 !== this['_m'][0xa] || 0x0 !== this['_m'][0xb] || 0x0 !== this['_m'][0xc] || 0x0 !== this['_m'][0xd] || 0x0 !== this['_m'][0xe] ? this['_isIdentity3x2'] = !0x1 : this['_isIdentity3x2'] = !0x0), this['_isIdentity3x2']; } , _0xb313f9['prototype']['determinant'] = function() { if (!0x0 === this['_isIdentity']) return 0x1; var _0x27f097 = this['_m'] , _0x502395 = _0x27f097[0x0] , _0x282e4a = _0x27f097[0x1] , _0x899010 = _0x27f097[0x2] , _0x196e45 = _0x27f097[0x3] , _0x1c787b = _0x27f097[0x4] , _0x61935a = _0x27f097[0x5] , _0x164d92 = _0x27f097[0x6] , _0x26dcb8 = _0x27f097[0x7] , _0x432b75 = _0x27f097[0x8] , _0x37dfdb = _0x27f097[0x9] , _0x1ec816 = _0x27f097[0xa] , _0x3e8470 = _0x27f097[0xb] , _0x37ed58 = _0x27f097[0xc] , _0x27eca5 = _0x27f097[0xd] , _0x59424f = _0x27f097[0xe] , _0x504877 = _0x27f097[0xf] , _0x47bf26 = _0x1ec816 * _0x504877 - _0x59424f * _0x3e8470 , _0x54fc93 = _0x37dfdb * _0x504877 - _0x27eca5 * _0x3e8470 , _0x5bd5cc = _0x37dfdb * _0x59424f - _0x27eca5 * _0x1ec816 , _0x1aec64 = _0x432b75 * _0x504877 - _0x37ed58 * _0x3e8470 , _0x195fcc = _0x432b75 * _0x59424f - _0x1ec816 * _0x37ed58 , _0x3b98f8 = _0x432b75 * _0x27eca5 - _0x37ed58 * _0x37dfdb; return _0x502395 * +(_0x61935a * _0x47bf26 - _0x164d92 * _0x54fc93 + _0x26dcb8 * _0x5bd5cc) + _0x282e4a * -(_0x1c787b * _0x47bf26 - _0x164d92 * _0x1aec64 + _0x26dcb8 * _0x195fcc) + _0x899010 * +(_0x1c787b * _0x54fc93 - _0x61935a * _0x1aec64 + _0x26dcb8 * _0x3b98f8) + _0x196e45 * -(_0x1c787b * _0x5bd5cc - _0x61935a * _0x195fcc + _0x164d92 * _0x3b98f8); } , _0xb313f9['prototype']['toArray'] = function() { return this['_m']; } , _0xb313f9['prototype']['asArray'] = function() { return this['_m']; } , _0xb313f9['prototype']['invert'] = function() { return this['invertToRef'](this), this; } , _0xb313f9['prototype']['reset'] = function() { return _0xb313f9['FromValuesToRef'](0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, this), this['_updateIdentityStatus'](!0x1), this; } , _0xb313f9['prototype']['add'] = function(_0x3d2e98) { var _0x5c0742 = new _0xb313f9(); return this['addToRef'](_0x3d2e98, _0x5c0742), _0x5c0742; } , _0xb313f9['prototype']['addToRef'] = function(_0x7b4a8c, _0x169195) { for (var _0x430ff4 = this['_m'], _0x1f3ffc = _0x169195['_m'], _0x1c7628 = _0x7b4a8c['m'], _0x16faa5 = 0x0; _0x16faa5 < 0x10; _0x16faa5++) _0x1f3ffc[_0x16faa5] = _0x430ff4[_0x16faa5] + _0x1c7628[_0x16faa5]; return _0x169195['_markAsUpdated'](), this; } , _0xb313f9['prototype']['addToSelf'] = function(_0x7f68bf) { for (var _0x148eb9 = this['_m'], _0x1b8592 = _0x7f68bf['m'], _0x45d178 = 0x0; _0x45d178 < 0x10; _0x45d178++) _0x148eb9[_0x45d178] += _0x1b8592[_0x45d178]; return this['_markAsUpdated'](), this; } , _0xb313f9['prototype']['invertToRef'] = function(_0x3263bf) { if (!0x0 === this['_isIdentity']) return _0xb313f9['IdentityToRef'](_0x3263bf), this; var _0x864525 = this['_m'] , _0x2d8588 = _0x864525[0x0] , _0x3c10a5 = _0x864525[0x1] , _0x2bf53d = _0x864525[0x2] , _0x339529 = _0x864525[0x3] , _0x1439b0 = _0x864525[0x4] , _0x5834ae = _0x864525[0x5] , _0x4f9d2b = _0x864525[0x6] , _0x38b1b4 = _0x864525[0x7] , _0x2faa64 = _0x864525[0x8] , _0x21f508 = _0x864525[0x9] , _0x141f9c = _0x864525[0xa] , _0x2a59fc = _0x864525[0xb] , _0x357e7f = _0x864525[0xc] , _0xdd488d = _0x864525[0xd] , _0x1a8898 = _0x864525[0xe] , _0x42e888 = _0x864525[0xf] , _0x8e28cd = _0x141f9c * _0x42e888 - _0x1a8898 * _0x2a59fc , _0x346cf5 = _0x21f508 * _0x42e888 - _0xdd488d * _0x2a59fc , _0x2b1726 = _0x21f508 * _0x1a8898 - _0xdd488d * _0x141f9c , _0x5df2b7 = _0x2faa64 * _0x42e888 - _0x357e7f * _0x2a59fc , _0x3215b1 = _0x2faa64 * _0x1a8898 - _0x141f9c * _0x357e7f , _0x8f63d0 = _0x2faa64 * _0xdd488d - _0x357e7f * _0x21f508 , _0x1f8566 = +(_0x5834ae * _0x8e28cd - _0x4f9d2b * _0x346cf5 + _0x38b1b4 * _0x2b1726) , _0x40198b = -(_0x1439b0 * _0x8e28cd - _0x4f9d2b * _0x5df2b7 + _0x38b1b4 * _0x3215b1) , _0x1d9d19 = +(_0x1439b0 * _0x346cf5 - _0x5834ae * _0x5df2b7 + _0x38b1b4 * _0x8f63d0) , _0x465246 = -(_0x1439b0 * _0x2b1726 - _0x5834ae * _0x3215b1 + _0x4f9d2b * _0x8f63d0) , _0x2abb5d = _0x2d8588 * _0x1f8566 + _0x3c10a5 * _0x40198b + _0x2bf53d * _0x1d9d19 + _0x339529 * _0x465246; if (0x0 === _0x2abb5d) return _0x3263bf['copyFrom'](this), this; var _0x11fe38 = 0x1 / _0x2abb5d , _0x3f2894 = _0x4f9d2b * _0x42e888 - _0x1a8898 * _0x38b1b4 , _0x58be2a = _0x5834ae * _0x42e888 - _0xdd488d * _0x38b1b4 , _0x18383e = _0x5834ae * _0x1a8898 - _0xdd488d * _0x4f9d2b , _0x21828b = _0x1439b0 * _0x42e888 - _0x357e7f * _0x38b1b4 , _0x3d2686 = _0x1439b0 * _0x1a8898 - _0x357e7f * _0x4f9d2b , _0x511add = _0x1439b0 * _0xdd488d - _0x357e7f * _0x5834ae , _0x27b019 = _0x4f9d2b * _0x2a59fc - _0x141f9c * _0x38b1b4 , _0x151a18 = _0x5834ae * _0x2a59fc - _0x21f508 * _0x38b1b4 , _0x5b0086 = _0x5834ae * _0x141f9c - _0x21f508 * _0x4f9d2b , _0x399297 = _0x1439b0 * _0x2a59fc - _0x2faa64 * _0x38b1b4 , _0x6b9597 = _0x1439b0 * _0x141f9c - _0x2faa64 * _0x4f9d2b , _0x3c1d49 = _0x1439b0 * _0x21f508 - _0x2faa64 * _0x5834ae , _0x5ab461 = -(_0x3c10a5 * _0x8e28cd - _0x2bf53d * _0x346cf5 + _0x339529 * _0x2b1726) , _0xac0613 = +(_0x2d8588 * _0x8e28cd - _0x2bf53d * _0x5df2b7 + _0x339529 * _0x3215b1) , _0x4dbde4 = -(_0x2d8588 * _0x346cf5 - _0x3c10a5 * _0x5df2b7 + _0x339529 * _0x8f63d0) , _0x132da4 = +(_0x2d8588 * _0x2b1726 - _0x3c10a5 * _0x3215b1 + _0x2bf53d * _0x8f63d0) , _0x514d8f = +(_0x3c10a5 * _0x3f2894 - _0x2bf53d * _0x58be2a + _0x339529 * _0x18383e) , _0x3ec500 = -(_0x2d8588 * _0x3f2894 - _0x2bf53d * _0x21828b + _0x339529 * _0x3d2686) , _0x1ba604 = +(_0x2d8588 * _0x58be2a - _0x3c10a5 * _0x21828b + _0x339529 * _0x511add) , _0x5c0ce4 = -(_0x2d8588 * _0x18383e - _0x3c10a5 * _0x3d2686 + _0x2bf53d * _0x511add) , _0x10ff06 = -(_0x3c10a5 * _0x27b019 - _0x2bf53d * _0x151a18 + _0x339529 * _0x5b0086) , _0x3c9470 = +(_0x2d8588 * _0x27b019 - _0x2bf53d * _0x399297 + _0x339529 * _0x6b9597) , _0x209c41 = -(_0x2d8588 * _0x151a18 - _0x3c10a5 * _0x399297 + _0x339529 * _0x3c1d49) , _0x2915f3 = +(_0x2d8588 * _0x5b0086 - _0x3c10a5 * _0x6b9597 + _0x2bf53d * _0x3c1d49); return _0xb313f9['FromValuesToRef'](_0x1f8566 * _0x11fe38, _0x5ab461 * _0x11fe38, _0x514d8f * _0x11fe38, _0x10ff06 * _0x11fe38, _0x40198b * _0x11fe38, _0xac0613 * _0x11fe38, _0x3ec500 * _0x11fe38, _0x3c9470 * _0x11fe38, _0x1d9d19 * _0x11fe38, _0x4dbde4 * _0x11fe38, _0x1ba604 * _0x11fe38, _0x209c41 * _0x11fe38, _0x465246 * _0x11fe38, _0x132da4 * _0x11fe38, _0x5c0ce4 * _0x11fe38, _0x2915f3 * _0x11fe38, _0x3263bf), this; } , _0xb313f9['prototype']['addAtIndex'] = function(_0x3a9dec, _0x27409b) { return this['_m'][_0x3a9dec] += _0x27409b, this['_markAsUpdated'](), this; } , _0xb313f9['prototype']['multiplyAtIndex'] = function(_0x1d016b, _0x263ea8) { return this['_m'][_0x1d016b] *= _0x263ea8, this['_markAsUpdated'](), this; } , _0xb313f9['prototype']['setTranslationFromFloats'] = function(_0x229c0b, _0x2c5700, _0x33dd67) { return this['_m'][0xc] = _0x229c0b, this['_m'][0xd] = _0x2c5700, this['_m'][0xe] = _0x33dd67, this['_markAsUpdated'](), this; } , _0xb313f9['prototype']['addTranslationFromFloats'] = function(_0x182e3f, _0x354301, _0x2b4992) { return this['_m'][0xc] += _0x182e3f, this['_m'][0xd] += _0x354301, this['_m'][0xe] += _0x2b4992, this['_markAsUpdated'](), this; } , _0xb313f9['prototype']['setTranslation'] = function(_0x1aa1df) { return this['setTranslationFromFloats'](_0x1aa1df['x'], _0x1aa1df['y'], _0x1aa1df['z']); } , _0xb313f9['prototype']['getTranslation'] = function() { return new _0x3fbe20(this['_m'][0xc],this['_m'][0xd],this['_m'][0xe]); } , _0xb313f9['prototype']['getTranslationToRef'] = function(_0x323424) { return _0x323424['x'] = this['_m'][0xc], _0x323424['y'] = this['_m'][0xd], _0x323424['z'] = this['_m'][0xe], this; } , _0xb313f9['prototype']['removeRotationAndScaling'] = function() { var _0x3a060e = this['m']; return _0xb313f9['FromValuesToRef'](0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, _0x3a060e[0xc], _0x3a060e[0xd], _0x3a060e[0xe], _0x3a060e[0xf], this), this['_updateIdentityStatus'](0x0 === _0x3a060e[0xc] && 0x0 === _0x3a060e[0xd] && 0x0 === _0x3a060e[0xe] && 0x1 === _0x3a060e[0xf]), this; } , _0xb313f9['prototype']['multiply'] = function(_0x18d0d5) { var _0x373f53 = new _0xb313f9(); return this['multiplyToRef'](_0x18d0d5, _0x373f53), _0x373f53; } , _0xb313f9['prototype']['copyFrom'] = function(_0x8312f1) { _0x8312f1['copyToArray'](this['_m']); var _0x2492d1 = _0x8312f1; return this['_updateIdentityStatus'](_0x2492d1['_isIdentity'], _0x2492d1['_isIdentityDirty'], _0x2492d1['_isIdentity3x2'], _0x2492d1['_isIdentity3x2Dirty']), this; } , _0xb313f9['prototype']['copyToArray'] = function(_0xdd940c, _0x7b8a79) { void 0x0 === _0x7b8a79 && (_0x7b8a79 = 0x0); for (var _0x4f8881 = 0x0; _0x4f8881 < 0x10; _0x4f8881++) _0xdd940c[_0x7b8a79 + _0x4f8881] = this['_m'][_0x4f8881]; return this; } , _0xb313f9['prototype']['multiplyToRef'] = function(_0x4db02d, _0x324ca1) { return this['_isIdentity'] ? (_0x324ca1['copyFrom'](_0x4db02d), this) : _0x4db02d['_isIdentity'] ? (_0x324ca1['copyFrom'](this), this) : (this['multiplyToArray'](_0x4db02d, _0x324ca1['_m'], 0x0), _0x324ca1['_markAsUpdated'](), this); } , _0xb313f9['prototype']['multiplyToArray'] = function(_0x5eb8cf, _0x2cd594, _0x137581) { var _0xffcc3e = this['_m'] , _0x434e89 = _0x5eb8cf['m'] , _0x33c2e4 = _0xffcc3e[0x0] , _0x831565 = _0xffcc3e[0x1] , _0x55e322 = _0xffcc3e[0x2] , _0x212287 = _0xffcc3e[0x3] , _0x25dc3f = _0xffcc3e[0x4] , _0x1b09bb = _0xffcc3e[0x5] , _0x4b30a1 = _0xffcc3e[0x6] , _0x2c2bfe = _0xffcc3e[0x7] , _0x21768a = _0xffcc3e[0x8] , _0x4c8f3f = _0xffcc3e[0x9] , _0x55a9b8 = _0xffcc3e[0xa] , _0x1f9b53 = _0xffcc3e[0xb] , _0x5ef596 = _0xffcc3e[0xc] , _0x2e8de9 = _0xffcc3e[0xd] , _0x498d53 = _0xffcc3e[0xe] , _0x4db4fc = _0xffcc3e[0xf] , _0x450c77 = _0x434e89[0x0] , _0x56f2dd = _0x434e89[0x1] , _0x396e76 = _0x434e89[0x2] , _0x373ea9 = _0x434e89[0x3] , _0x2dede9 = _0x434e89[0x4] , _0x4bfda2 = _0x434e89[0x5] , _0x1ad9b6 = _0x434e89[0x6] , _0x3f10c6 = _0x434e89[0x7] , _0x3cd38a = _0x434e89[0x8] , _0x1bd079 = _0x434e89[0x9] , _0x1ccd76 = _0x434e89[0xa] , _0x25bcfb = _0x434e89[0xb] , _0x31fba8 = _0x434e89[0xc] , _0x5d9412 = _0x434e89[0xd] , _0x4cf098 = _0x434e89[0xe] , _0x3d1a92 = _0x434e89[0xf]; return _0x2cd594[_0x137581] = _0x33c2e4 * _0x450c77 + _0x831565 * _0x2dede9 + _0x55e322 * _0x3cd38a + _0x212287 * _0x31fba8, _0x2cd594[_0x137581 + 0x1] = _0x33c2e4 * _0x56f2dd + _0x831565 * _0x4bfda2 + _0x55e322 * _0x1bd079 + _0x212287 * _0x5d9412, _0x2cd594[_0x137581 + 0x2] = _0x33c2e4 * _0x396e76 + _0x831565 * _0x1ad9b6 + _0x55e322 * _0x1ccd76 + _0x212287 * _0x4cf098, _0x2cd594[_0x137581 + 0x3] = _0x33c2e4 * _0x373ea9 + _0x831565 * _0x3f10c6 + _0x55e322 * _0x25bcfb + _0x212287 * _0x3d1a92, _0x2cd594[_0x137581 + 0x4] = _0x25dc3f * _0x450c77 + _0x1b09bb * _0x2dede9 + _0x4b30a1 * _0x3cd38a + _0x2c2bfe * _0x31fba8, _0x2cd594[_0x137581 + 0x5] = _0x25dc3f * _0x56f2dd + _0x1b09bb * _0x4bfda2 + _0x4b30a1 * _0x1bd079 + _0x2c2bfe * _0x5d9412, _0x2cd594[_0x137581 + 0x6] = _0x25dc3f * _0x396e76 + _0x1b09bb * _0x1ad9b6 + _0x4b30a1 * _0x1ccd76 + _0x2c2bfe * _0x4cf098, _0x2cd594[_0x137581 + 0x7] = _0x25dc3f * _0x373ea9 + _0x1b09bb * _0x3f10c6 + _0x4b30a1 * _0x25bcfb + _0x2c2bfe * _0x3d1a92, _0x2cd594[_0x137581 + 0x8] = _0x21768a * _0x450c77 + _0x4c8f3f * _0x2dede9 + _0x55a9b8 * _0x3cd38a + _0x1f9b53 * _0x31fba8, _0x2cd594[_0x137581 + 0x9] = _0x21768a * _0x56f2dd + _0x4c8f3f * _0x4bfda2 + _0x55a9b8 * _0x1bd079 + _0x1f9b53 * _0x5d9412, _0x2cd594[_0x137581 + 0xa] = _0x21768a * _0x396e76 + _0x4c8f3f * _0x1ad9b6 + _0x55a9b8 * _0x1ccd76 + _0x1f9b53 * _0x4cf098, _0x2cd594[_0x137581 + 0xb] = _0x21768a * _0x373ea9 + _0x4c8f3f * _0x3f10c6 + _0x55a9b8 * _0x25bcfb + _0x1f9b53 * _0x3d1a92, _0x2cd594[_0x137581 + 0xc] = _0x5ef596 * _0x450c77 + _0x2e8de9 * _0x2dede9 + _0x498d53 * _0x3cd38a + _0x4db4fc * _0x31fba8, _0x2cd594[_0x137581 + 0xd] = _0x5ef596 * _0x56f2dd + _0x2e8de9 * _0x4bfda2 + _0x498d53 * _0x1bd079 + _0x4db4fc * _0x5d9412, _0x2cd594[_0x137581 + 0xe] = _0x5ef596 * _0x396e76 + _0x2e8de9 * _0x1ad9b6 + _0x498d53 * _0x1ccd76 + _0x4db4fc * _0x4cf098, _0x2cd594[_0x137581 + 0xf] = _0x5ef596 * _0x373ea9 + _0x2e8de9 * _0x3f10c6 + _0x498d53 * _0x25bcfb + _0x4db4fc * _0x3d1a92, this; } , _0xb313f9['prototype']['equals'] = function(_0x34d738) { var _0x2d2605 = _0x34d738; if (!_0x2d2605) return !0x1; if ((this['_isIdentity'] || _0x2d2605['_isIdentity']) && !this['_isIdentityDirty'] && !_0x2d2605['_isIdentityDirty']) return this['_isIdentity'] && _0x2d2605['_isIdentity']; var _0xdc5dad = this['m'] , _0x59a34f = _0x2d2605['m']; return _0xdc5dad[0x0] === _0x59a34f[0x0] && _0xdc5dad[0x1] === _0x59a34f[0x1] && _0xdc5dad[0x2] === _0x59a34f[0x2] && _0xdc5dad[0x3] === _0x59a34f[0x3] && _0xdc5dad[0x4] === _0x59a34f[0x4] && _0xdc5dad[0x5] === _0x59a34f[0x5] && _0xdc5dad[0x6] === _0x59a34f[0x6] && _0xdc5dad[0x7] === _0x59a34f[0x7] && _0xdc5dad[0x8] === _0x59a34f[0x8] && _0xdc5dad[0x9] === _0x59a34f[0x9] && _0xdc5dad[0xa] === _0x59a34f[0xa] && _0xdc5dad[0xb] === _0x59a34f[0xb] && _0xdc5dad[0xc] === _0x59a34f[0xc] && _0xdc5dad[0xd] === _0x59a34f[0xd] && _0xdc5dad[0xe] === _0x59a34f[0xe] && _0xdc5dad[0xf] === _0x59a34f[0xf]; } , _0xb313f9['prototype']['clone'] = function() { var _0x1a9df2 = new _0xb313f9(); return _0x1a9df2['copyFrom'](this), _0x1a9df2; } , _0xb313f9['prototype']['getClassName'] = function() { return 'Matrix'; } , _0xb313f9['prototype']['getHashCode'] = function() { for (var _0x292a03 = this['_m'][0x0] || 0x0, _0x51a9df = 0x1; _0x51a9df < 0x10; _0x51a9df++) _0x292a03 = 0x18d * _0x292a03 ^ (this['_m'][_0x51a9df] || 0x0); return _0x292a03; } , _0xb313f9['prototype']['decompose'] = function(_0xeca2fe, _0x100faa, _0x35ff84) { if (this['_isIdentity']) return _0x35ff84 && _0x35ff84['setAll'](0x0), _0xeca2fe && _0xeca2fe['setAll'](0x1), _0x100faa && _0x100faa['copyFromFloats'](0x0, 0x0, 0x0, 0x1), !0x0; var _0x1ad6fa = this['_m']; if (_0x35ff84 && _0x35ff84['copyFromFloats'](_0x1ad6fa[0xc], _0x1ad6fa[0xd], _0x1ad6fa[0xe]), (_0xeca2fe = _0xeca2fe || _0x53a116['Vector3'][0x0])['x'] = Math['sqrt'](_0x1ad6fa[0x0] * _0x1ad6fa[0x0] + _0x1ad6fa[0x1] * _0x1ad6fa[0x1] + _0x1ad6fa[0x2] * _0x1ad6fa[0x2]), _0xeca2fe['y'] = Math['sqrt'](_0x1ad6fa[0x4] * _0x1ad6fa[0x4] + _0x1ad6fa[0x5] * _0x1ad6fa[0x5] + _0x1ad6fa[0x6] * _0x1ad6fa[0x6]), _0xeca2fe['z'] = Math['sqrt'](_0x1ad6fa[0x8] * _0x1ad6fa[0x8] + _0x1ad6fa[0x9] * _0x1ad6fa[0x9] + _0x1ad6fa[0xa] * _0x1ad6fa[0xa]), this['determinant']() <= 0x0 && (_0xeca2fe['y'] *= -0x1), 0x0 === _0xeca2fe['x'] || 0x0 === _0xeca2fe['y'] || 0x0 === _0xeca2fe['z']) return _0x100faa && _0x100faa['copyFromFloats'](0x0, 0x0, 0x0, 0x1), !0x1; if (_0x100faa) { var _0x1bd7f9 = 0x1 / _0xeca2fe['x'] , _0x9bfb3b = 0x1 / _0xeca2fe['y'] , _0x429acf = 0x1 / _0xeca2fe['z']; _0xb313f9['FromValuesToRef'](_0x1ad6fa[0x0] * _0x1bd7f9, _0x1ad6fa[0x1] * _0x1bd7f9, _0x1ad6fa[0x2] * _0x1bd7f9, 0x0, _0x1ad6fa[0x4] * _0x9bfb3b, _0x1ad6fa[0x5] * _0x9bfb3b, _0x1ad6fa[0x6] * _0x9bfb3b, 0x0, _0x1ad6fa[0x8] * _0x429acf, _0x1ad6fa[0x9] * _0x429acf, _0x1ad6fa[0xa] * _0x429acf, 0x0, 0x0, 0x0, 0x0, 0x1, _0x53a116['Matrix'][0x0]), _0x897ad5['FromRotationMatrixToRef'](_0x53a116['Matrix'][0x0], _0x100faa); } return !0x0; } , _0xb313f9['prototype']['getRow'] = function(_0x331c50) { if (_0x331c50 < 0x0 || _0x331c50 > 0x3) return null; var _0x1993ed = 0x4 * _0x331c50; return new _0x298fee(this['_m'][_0x1993ed + 0x0],this['_m'][_0x1993ed + 0x1],this['_m'][_0x1993ed + 0x2],this['_m'][_0x1993ed + 0x3]); } , _0xb313f9['prototype']['setRow'] = function(_0x444667, _0x5ce568) { return this['setRowFromFloats'](_0x444667, _0x5ce568['x'], _0x5ce568['y'], _0x5ce568['z'], _0x5ce568['w']); } , _0xb313f9['prototype']['transpose'] = function() { return _0xb313f9['Transpose'](this); } , _0xb313f9['prototype']['transposeToRef'] = function(_0x341c0b) { return _0xb313f9['TransposeToRef'](this, _0x341c0b), this; } , _0xb313f9['prototype']['setRowFromFloats'] = function(_0x4be31f, _0x2f7a91, _0x38b613, _0x2e3f80, _0x41bf35) { if (_0x4be31f < 0x0 || _0x4be31f > 0x3) return this; var _0x34a42a = 0x4 * _0x4be31f; return this['_m'][_0x34a42a + 0x0] = _0x2f7a91, this['_m'][_0x34a42a + 0x1] = _0x38b613, this['_m'][_0x34a42a + 0x2] = _0x2e3f80, this['_m'][_0x34a42a + 0x3] = _0x41bf35, this['_markAsUpdated'](), this; } , _0xb313f9['prototype']['scale'] = function(_0x274786) { var _0x45d9e3 = new _0xb313f9(); return this['scaleToRef'](_0x274786, _0x45d9e3), _0x45d9e3; } , _0xb313f9['prototype']['scaleToRef'] = function(_0x316602, _0x503805) { for (var _0x165cbc = 0x0; _0x165cbc < 0x10; _0x165cbc++) _0x503805['_m'][_0x165cbc] = this['_m'][_0x165cbc] * _0x316602; return _0x503805['_markAsUpdated'](), this; } , _0xb313f9['prototype']['scaleAndAddToRef'] = function(_0x4bc6ba, _0x32d77a) { for (var _0x46988e = 0x0; _0x46988e < 0x10; _0x46988e++) _0x32d77a['_m'][_0x46988e] += this['_m'][_0x46988e] * _0x4bc6ba; return _0x32d77a['_markAsUpdated'](), this; } , _0xb313f9['prototype']['toNormalMatrix'] = function(_0x30dde8) { var _0x58a130 = _0x53a116['Matrix'][0x0]; this['invertToRef'](_0x58a130), _0x58a130['transposeToRef'](_0x30dde8); var _0x39cef5 = _0x30dde8['_m']; _0xb313f9['FromValuesToRef'](_0x39cef5[0x0], _0x39cef5[0x1], _0x39cef5[0x2], 0x0, _0x39cef5[0x4], _0x39cef5[0x5], _0x39cef5[0x6], 0x0, _0x39cef5[0x8], _0x39cef5[0x9], _0x39cef5[0xa], 0x0, 0x0, 0x0, 0x0, 0x1, _0x30dde8); } , _0xb313f9['prototype']['getRotationMatrix'] = function() { var _0x3ff2b0 = new _0xb313f9(); return this['getRotationMatrixToRef'](_0x3ff2b0), _0x3ff2b0; } , _0xb313f9['prototype']['getRotationMatrixToRef'] = function(_0x4710ad) { var _0xb0468 = _0x53a116['Vector3'][0x0]; if (!this['decompose'](_0xb0468)) return _0xb313f9['IdentityToRef'](_0x4710ad), this; var _0x8ebe86 = this['_m'] , _0x217c3c = 0x1 / _0xb0468['x'] , _0x4dfbfe = 0x1 / _0xb0468['y'] , _0x285053 = 0x1 / _0xb0468['z']; return _0xb313f9['FromValuesToRef'](_0x8ebe86[0x0] * _0x217c3c, _0x8ebe86[0x1] * _0x217c3c, _0x8ebe86[0x2] * _0x217c3c, 0x0, _0x8ebe86[0x4] * _0x4dfbfe, _0x8ebe86[0x5] * _0x4dfbfe, _0x8ebe86[0x6] * _0x4dfbfe, 0x0, _0x8ebe86[0x8] * _0x285053, _0x8ebe86[0x9] * _0x285053, _0x8ebe86[0xa] * _0x285053, 0x0, 0x0, 0x0, 0x0, 0x1, _0x4710ad), this; } , _0xb313f9['prototype']['toggleModelMatrixHandInPlace'] = function() { var _0x51bf5a = this['_m']; _0x51bf5a[0x2] *= -0x1, _0x51bf5a[0x6] *= -0x1, _0x51bf5a[0x8] *= -0x1, _0x51bf5a[0x9] *= -0x1, _0x51bf5a[0xe] *= -0x1, this['_markAsUpdated'](); } , _0xb313f9['prototype']['toggleProjectionMatrixHandInPlace'] = function() { var _0x3a8729 = this['_m']; _0x3a8729[0x8] *= -0x1, _0x3a8729[0x9] *= -0x1, _0x3a8729[0xa] *= -0x1, _0x3a8729[0xb] *= -0x1, this['_markAsUpdated'](); } , _0xb313f9['FromArray'] = function(_0x4f5eea, _0x1d61b5) { void 0x0 === _0x1d61b5 && (_0x1d61b5 = 0x0); var _0x1a6936 = new _0xb313f9(); return _0xb313f9['FromArrayToRef'](_0x4f5eea, _0x1d61b5, _0x1a6936), _0x1a6936; } , _0xb313f9['FromArrayToRef'] = function(_0xb14bf8, _0x14d2aa, _0x3475d4) { for (var _0x77d356 = 0x0; _0x77d356 < 0x10; _0x77d356++) _0x3475d4['_m'][_0x77d356] = _0xb14bf8[_0x77d356 + _0x14d2aa]; _0x3475d4['_markAsUpdated'](); } , _0xb313f9['FromFloat32ArrayToRefScaled'] = function(_0x34c7ed, _0x284eef, _0x40e994, _0x1d37ac) { for (var _0x10f076 = 0x0; _0x10f076 < 0x10; _0x10f076++) _0x1d37ac['_m'][_0x10f076] = _0x34c7ed[_0x10f076 + _0x284eef] * _0x40e994; _0x1d37ac['_markAsUpdated'](); } , Object['defineProperty'](_0xb313f9, 'IdentityReadOnly', { 'get': function() { return _0xb313f9['_identityReadOnly']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0xb313f9['FromValuesToRef'] = function(_0x159938, _0x252296, _0x1844b6, _0x30c7e1, _0x25d114, _0x448ec6, _0x28c129, _0x27a173, _0x2c048d, _0x404308, _0x1e8833, _0x3f3a87, _0x52955f, _0x429d32, _0x5d8e3d, _0x39a4ad, _0x30547b) { var _0x445030 = _0x30547b['_m']; _0x445030[0x0] = _0x159938, _0x445030[0x1] = _0x252296, _0x445030[0x2] = _0x1844b6, _0x445030[0x3] = _0x30c7e1, _0x445030[0x4] = _0x25d114, _0x445030[0x5] = _0x448ec6, _0x445030[0x6] = _0x28c129, _0x445030[0x7] = _0x27a173, _0x445030[0x8] = _0x2c048d, _0x445030[0x9] = _0x404308, _0x445030[0xa] = _0x1e8833, _0x445030[0xb] = _0x3f3a87, _0x445030[0xc] = _0x52955f, _0x445030[0xd] = _0x429d32, _0x445030[0xe] = _0x5d8e3d, _0x445030[0xf] = _0x39a4ad, _0x30547b['_markAsUpdated'](); } , _0xb313f9['FromValues'] = function(_0x42c867, _0xee1142, _0x17fd5a, _0x101709, _0x1e072f, _0x45493a, _0x37b36b, _0x392645, _0x41d92d, _0x1c0456, _0x1306c9, _0x1a129a, _0x2da3d7, _0xeb5a1, _0x10a604, _0x3da289) { var _0xc2f166 = new _0xb313f9() , _0x49602c = _0xc2f166['_m']; return _0x49602c[0x0] = _0x42c867, _0x49602c[0x1] = _0xee1142, _0x49602c[0x2] = _0x17fd5a, _0x49602c[0x3] = _0x101709, _0x49602c[0x4] = _0x1e072f, _0x49602c[0x5] = _0x45493a, _0x49602c[0x6] = _0x37b36b, _0x49602c[0x7] = _0x392645, _0x49602c[0x8] = _0x41d92d, _0x49602c[0x9] = _0x1c0456, _0x49602c[0xa] = _0x1306c9, _0x49602c[0xb] = _0x1a129a, _0x49602c[0xc] = _0x2da3d7, _0x49602c[0xd] = _0xeb5a1, _0x49602c[0xe] = _0x10a604, _0x49602c[0xf] = _0x3da289, _0xc2f166['_markAsUpdated'](), _0xc2f166; } , _0xb313f9['Compose'] = function(_0x5c58ac, _0x3f340a, _0x36e48b) { var _0x366e71 = new _0xb313f9(); return _0xb313f9['ComposeToRef'](_0x5c58ac, _0x3f340a, _0x36e48b, _0x366e71), _0x366e71; } , _0xb313f9['ComposeToRef'] = function(_0x589e13, _0x2f65d, _0x117423, _0x47b528) { var _0x509100 = _0x47b528['_m'] , _0x2b7417 = _0x2f65d['x'] , _0x3128bb = _0x2f65d['y'] , _0x56425f = _0x2f65d['z'] , _0x4387f4 = _0x2f65d['w'] , _0x266071 = _0x2b7417 + _0x2b7417 , _0x3c2598 = _0x3128bb + _0x3128bb , _0x56713c = _0x56425f + _0x56425f , _0x29040f = _0x2b7417 * _0x266071 , _0x28c9e4 = _0x2b7417 * _0x3c2598 , _0x50f35d = _0x2b7417 * _0x56713c , _0x177f17 = _0x3128bb * _0x3c2598 , _0x40a987 = _0x3128bb * _0x56713c , _0x175823 = _0x56425f * _0x56713c , _0x166cd3 = _0x4387f4 * _0x266071 , _0x365a14 = _0x4387f4 * _0x3c2598 , _0x456b38 = _0x4387f4 * _0x56713c , _0x55ff71 = _0x589e13['x'] , _0x15caf0 = _0x589e13['y'] , _0x57bdfd = _0x589e13['z']; _0x509100[0x0] = (0x1 - (_0x177f17 + _0x175823)) * _0x55ff71, _0x509100[0x1] = (_0x28c9e4 + _0x456b38) * _0x55ff71, _0x509100[0x2] = (_0x50f35d - _0x365a14) * _0x55ff71, _0x509100[0x3] = 0x0, _0x509100[0x4] = (_0x28c9e4 - _0x456b38) * _0x15caf0, _0x509100[0x5] = (0x1 - (_0x29040f + _0x175823)) * _0x15caf0, _0x509100[0x6] = (_0x40a987 + _0x166cd3) * _0x15caf0, _0x509100[0x7] = 0x0, _0x509100[0x8] = (_0x50f35d + _0x365a14) * _0x57bdfd, _0x509100[0x9] = (_0x40a987 - _0x166cd3) * _0x57bdfd, _0x509100[0xa] = (0x1 - (_0x29040f + _0x177f17)) * _0x57bdfd, _0x509100[0xb] = 0x0, _0x509100[0xc] = _0x117423['x'], _0x509100[0xd] = _0x117423['y'], _0x509100[0xe] = _0x117423['z'], _0x509100[0xf] = 0x1, _0x47b528['_markAsUpdated'](); } , _0xb313f9['Identity'] = function() { var _0x541938 = _0xb313f9['FromValues'](0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1); return _0x541938['_updateIdentityStatus'](!0x0), _0x541938; } , _0xb313f9['IdentityToRef'] = function(_0x4163d8) { _0xb313f9['FromValuesToRef'](0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, _0x4163d8), _0x4163d8['_updateIdentityStatus'](!0x0); } , _0xb313f9['Zero'] = function() { var _0x9a7774 = _0xb313f9['FromValues'](0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0); return _0x9a7774['_updateIdentityStatus'](!0x1), _0x9a7774; } , _0xb313f9['RotationX'] = function(_0x519ade) { var _0x374a43 = new _0xb313f9(); return _0xb313f9['RotationXToRef'](_0x519ade, _0x374a43), _0x374a43; } , _0xb313f9['Invert'] = function(_0x3a34b3) { var _0x92ad5b = new _0xb313f9(); return _0x3a34b3['invertToRef'](_0x92ad5b), _0x92ad5b; } , _0xb313f9['RotationXToRef'] = function(_0x23fed0, _0x4e9b04) { var _0x358d3f = Math['sin'](_0x23fed0) , _0x25b2f4 = Math['cos'](_0x23fed0); _0xb313f9['FromValuesToRef'](0x1, 0x0, 0x0, 0x0, 0x0, _0x25b2f4, _0x358d3f, 0x0, 0x0, -_0x358d3f, _0x25b2f4, 0x0, 0x0, 0x0, 0x0, 0x1, _0x4e9b04), _0x4e9b04['_updateIdentityStatus'](0x1 === _0x25b2f4 && 0x0 === _0x358d3f); } , _0xb313f9['RotationY'] = function(_0x330290) { var _0x16f469 = new _0xb313f9(); return _0xb313f9['RotationYToRef'](_0x330290, _0x16f469), _0x16f469; } , _0xb313f9['RotationYToRef'] = function(_0x5e1091, _0xec8cac) { var _0x538bf1 = Math['sin'](_0x5e1091) , _0x2995cb = Math['cos'](_0x5e1091); _0xb313f9['FromValuesToRef'](_0x2995cb, 0x0, -_0x538bf1, 0x0, 0x0, 0x1, 0x0, 0x0, _0x538bf1, 0x0, _0x2995cb, 0x0, 0x0, 0x0, 0x0, 0x1, _0xec8cac), _0xec8cac['_updateIdentityStatus'](0x1 === _0x2995cb && 0x0 === _0x538bf1); } , _0xb313f9['RotationZ'] = function(_0x39f02a) { var _0x416160 = new _0xb313f9(); return _0xb313f9['RotationZToRef'](_0x39f02a, _0x416160), _0x416160; } , _0xb313f9['RotationZToRef'] = function(_0x3d9df5, _0x1eccd4) { var _0x9027b0 = Math['sin'](_0x3d9df5) , _0x45610d = Math['cos'](_0x3d9df5); _0xb313f9['FromValuesToRef'](_0x45610d, _0x9027b0, 0x0, 0x0, -_0x9027b0, _0x45610d, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, _0x1eccd4), _0x1eccd4['_updateIdentityStatus'](0x1 === _0x45610d && 0x0 === _0x9027b0); } , _0xb313f9['RotationAxis'] = function(_0x10e793, _0x446ae5) { var _0x5ea287 = new _0xb313f9(); return _0xb313f9['RotationAxisToRef'](_0x10e793, _0x446ae5, _0x5ea287), _0x5ea287; } , _0xb313f9['RotationAxisToRef'] = function(_0x5039bd, _0x44254b, _0x8a386) { var _0x86b216 = Math['sin'](-_0x44254b) , _0x222a97 = Math['cos'](-_0x44254b) , _0xef433f = 0x1 - _0x222a97; _0x5039bd['normalize'](); var _0x46760d = _0x8a386['_m']; _0x46760d[0x0] = _0x5039bd['x'] * _0x5039bd['x'] * _0xef433f + _0x222a97, _0x46760d[0x1] = _0x5039bd['x'] * _0x5039bd['y'] * _0xef433f - _0x5039bd['z'] * _0x86b216, _0x46760d[0x2] = _0x5039bd['x'] * _0x5039bd['z'] * _0xef433f + _0x5039bd['y'] * _0x86b216, _0x46760d[0x3] = 0x0, _0x46760d[0x4] = _0x5039bd['y'] * _0x5039bd['x'] * _0xef433f + _0x5039bd['z'] * _0x86b216, _0x46760d[0x5] = _0x5039bd['y'] * _0x5039bd['y'] * _0xef433f + _0x222a97, _0x46760d[0x6] = _0x5039bd['y'] * _0x5039bd['z'] * _0xef433f - _0x5039bd['x'] * _0x86b216, _0x46760d[0x7] = 0x0, _0x46760d[0x8] = _0x5039bd['z'] * _0x5039bd['x'] * _0xef433f - _0x5039bd['y'] * _0x86b216, _0x46760d[0x9] = _0x5039bd['z'] * _0x5039bd['y'] * _0xef433f + _0x5039bd['x'] * _0x86b216, _0x46760d[0xa] = _0x5039bd['z'] * _0x5039bd['z'] * _0xef433f + _0x222a97, _0x46760d[0xb] = 0x0, _0x46760d[0xc] = 0x0, _0x46760d[0xd] = 0x0, _0x46760d[0xe] = 0x0, _0x46760d[0xf] = 0x1, _0x8a386['_markAsUpdated'](); } , _0xb313f9['RotationAlignToRef'] = function(_0x21b6ac, _0x309b9d, _0x502408) { var _0x3f511f = _0x3fbe20['Cross'](_0x309b9d, _0x21b6ac) , _0x1f150c = _0x3fbe20['Dot'](_0x309b9d, _0x21b6ac) , _0x1d985c = 0x1 / (0x1 + _0x1f150c) , _0x4db787 = _0x502408['_m']; _0x4db787[0x0] = _0x3f511f['x'] * _0x3f511f['x'] * _0x1d985c + _0x1f150c, _0x4db787[0x1] = _0x3f511f['y'] * _0x3f511f['x'] * _0x1d985c - _0x3f511f['z'], _0x4db787[0x2] = _0x3f511f['z'] * _0x3f511f['x'] * _0x1d985c + _0x3f511f['y'], _0x4db787[0x3] = 0x0, _0x4db787[0x4] = _0x3f511f['x'] * _0x3f511f['y'] * _0x1d985c + _0x3f511f['z'], _0x4db787[0x5] = _0x3f511f['y'] * _0x3f511f['y'] * _0x1d985c + _0x1f150c, _0x4db787[0x6] = _0x3f511f['z'] * _0x3f511f['y'] * _0x1d985c - _0x3f511f['x'], _0x4db787[0x7] = 0x0, _0x4db787[0x8] = _0x3f511f['x'] * _0x3f511f['z'] * _0x1d985c - _0x3f511f['y'], _0x4db787[0x9] = _0x3f511f['y'] * _0x3f511f['z'] * _0x1d985c + _0x3f511f['x'], _0x4db787[0xa] = _0x3f511f['z'] * _0x3f511f['z'] * _0x1d985c + _0x1f150c, _0x4db787[0xb] = 0x0, _0x4db787[0xc] = 0x0, _0x4db787[0xd] = 0x0, _0x4db787[0xe] = 0x0, _0x4db787[0xf] = 0x1, _0x502408['_markAsUpdated'](); } , _0xb313f9['RotationYawPitchRoll'] = function(_0x5da873, _0x4a09ac, _0x5a4097) { var _0x2ad84e = new _0xb313f9(); return _0xb313f9['RotationYawPitchRollToRef'](_0x5da873, _0x4a09ac, _0x5a4097, _0x2ad84e), _0x2ad84e; } , _0xb313f9['RotationYawPitchRollToRef'] = function(_0x5f1fd4, _0x4e6927, _0x293469, _0x463f24) { _0x897ad5['RotationYawPitchRollToRef'](_0x5f1fd4, _0x4e6927, _0x293469, _0x53a116['Quaternion'][0x0]), _0x53a116['Quaternion'][0x0]['toRotationMatrix'](_0x463f24); } , _0xb313f9['Scaling'] = function(_0x1164c2, _0x551253, _0x94d04a) { var _0x5731b7 = new _0xb313f9(); return _0xb313f9['ScalingToRef'](_0x1164c2, _0x551253, _0x94d04a, _0x5731b7), _0x5731b7; } , _0xb313f9['ScalingToRef'] = function(_0x1469a9, _0x3fb313, _0x5d2a57, _0xeaa32b) { _0xb313f9['FromValuesToRef'](_0x1469a9, 0x0, 0x0, 0x0, 0x0, _0x3fb313, 0x0, 0x0, 0x0, 0x0, _0x5d2a57, 0x0, 0x0, 0x0, 0x0, 0x1, _0xeaa32b), _0xeaa32b['_updateIdentityStatus'](0x1 === _0x1469a9 && 0x1 === _0x3fb313 && 0x1 === _0x5d2a57); } , _0xb313f9['Translation'] = function(_0x1f8610, _0x3931e4, _0x4eba97) { var _0x2e0a65 = new _0xb313f9(); return _0xb313f9['TranslationToRef'](_0x1f8610, _0x3931e4, _0x4eba97, _0x2e0a65), _0x2e0a65; } , _0xb313f9['TranslationToRef'] = function(_0x1a3705, _0x8e9e26, _0x3ec455, _0x3e8c1f) { _0xb313f9['FromValuesToRef'](0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, _0x1a3705, _0x8e9e26, _0x3ec455, 0x1, _0x3e8c1f), _0x3e8c1f['_updateIdentityStatus'](0x0 === _0x1a3705 && 0x0 === _0x8e9e26 && 0x0 === _0x3ec455); } , _0xb313f9['Lerp'] = function(_0x588c62, _0x2ec6ba, _0x358da1) { var _0x113230 = new _0xb313f9(); return _0xb313f9['LerpToRef'](_0x588c62, _0x2ec6ba, _0x358da1, _0x113230), _0x113230; } , _0xb313f9['LerpToRef'] = function(_0x439e01, _0x1d9fa1, _0x110f58, _0x3c5bd8) { for (var _0x573ae3 = _0x3c5bd8['_m'], _0x2f8b85 = _0x439e01['m'], _0x3b48dd = _0x1d9fa1['m'], _0x4f5fb6 = 0x0; _0x4f5fb6 < 0x10; _0x4f5fb6++) _0x573ae3[_0x4f5fb6] = _0x2f8b85[_0x4f5fb6] * (0x1 - _0x110f58) + _0x3b48dd[_0x4f5fb6] * _0x110f58; _0x3c5bd8['_markAsUpdated'](); } , _0xb313f9['DecomposeLerp'] = function(_0x4d58c7, _0x140e5a, _0x4b1876) { var _0x105fe3 = new _0xb313f9(); return _0xb313f9['DecomposeLerpToRef'](_0x4d58c7, _0x140e5a, _0x4b1876, _0x105fe3), _0x105fe3; } , _0xb313f9['DecomposeLerpToRef'] = function(_0x172647, _0x288f84, _0xd1955d, _0x16246c) { var _0x501163 = _0x53a116['Vector3'][0x0] , _0x15360b = _0x53a116['Quaternion'][0x0] , _0x16b638 = _0x53a116['Vector3'][0x1]; _0x172647['decompose'](_0x501163, _0x15360b, _0x16b638); var _0x13a284 = _0x53a116['Vector3'][0x2] , _0x469b56 = _0x53a116['Quaternion'][0x1] , _0x2c5879 = _0x53a116['Vector3'][0x3]; _0x288f84['decompose'](_0x13a284, _0x469b56, _0x2c5879); var _0x5007c9 = _0x53a116['Vector3'][0x4]; _0x3fbe20['LerpToRef'](_0x501163, _0x13a284, _0xd1955d, _0x5007c9); var _0x183185 = _0x53a116['Quaternion'][0x2]; _0x897ad5['SlerpToRef'](_0x15360b, _0x469b56, _0xd1955d, _0x183185); var _0x3adb05 = _0x53a116['Vector3'][0x5]; _0x3fbe20['LerpToRef'](_0x16b638, _0x2c5879, _0xd1955d, _0x3adb05), _0xb313f9['ComposeToRef'](_0x5007c9, _0x183185, _0x3adb05, _0x16246c); } , _0xb313f9['LookAtLH'] = function(_0x1d855c, _0x3d200f, _0xb1750b) { var _0x3e82b8 = new _0xb313f9(); return _0xb313f9['LookAtLHToRef'](_0x1d855c, _0x3d200f, _0xb1750b, _0x3e82b8), _0x3e82b8; } , _0xb313f9['LookAtLHToRef'] = function(_0x17430e, _0x2ba432, _0xf61387, _0x2f80) { var _0x2ebd51 = _0x53a116['Vector3'][0x0] , _0x163c6a = _0x53a116['Vector3'][0x1] , _0x172ef7 = _0x53a116['Vector3'][0x2]; _0x2ba432['subtractToRef'](_0x17430e, _0x172ef7), _0x172ef7['normalize'](), _0x3fbe20['CrossToRef'](_0xf61387, _0x172ef7, _0x2ebd51); var _0x5a8b21 = _0x2ebd51['lengthSquared'](); 0x0 === _0x5a8b21 ? _0x2ebd51['x'] = 0x1 : _0x2ebd51['normalizeFromLength'](Math['sqrt'](_0x5a8b21)), _0x3fbe20['CrossToRef'](_0x172ef7, _0x2ebd51, _0x163c6a), _0x163c6a['normalize'](); var _0x389cd2 = -_0x3fbe20['Dot'](_0x2ebd51, _0x17430e) , _0x5b844a = -_0x3fbe20['Dot'](_0x163c6a, _0x17430e) , _0x25dd55 = -_0x3fbe20['Dot'](_0x172ef7, _0x17430e); _0xb313f9['FromValuesToRef'](_0x2ebd51['x'], _0x163c6a['x'], _0x172ef7['x'], 0x0, _0x2ebd51['y'], _0x163c6a['y'], _0x172ef7['y'], 0x0, _0x2ebd51['z'], _0x163c6a['z'], _0x172ef7['z'], 0x0, _0x389cd2, _0x5b844a, _0x25dd55, 0x1, _0x2f80); } , _0xb313f9['LookAtRH'] = function(_0x40ede6, _0x35a594, _0x3c2fb6) { var _0x46bb4d = new _0xb313f9(); return _0xb313f9['LookAtRHToRef'](_0x40ede6, _0x35a594, _0x3c2fb6, _0x46bb4d), _0x46bb4d; } , _0xb313f9['LookAtRHToRef'] = function(_0x223fa7, _0x25665b, _0x43269d, _0x22274a) { var _0x4dd27b = _0x53a116['Vector3'][0x0] , _0xdc400d = _0x53a116['Vector3'][0x1] , _0x235951 = _0x53a116['Vector3'][0x2]; _0x223fa7['subtractToRef'](_0x25665b, _0x235951), _0x235951['normalize'](), _0x3fbe20['CrossToRef'](_0x43269d, _0x235951, _0x4dd27b); var _0x1bf742 = _0x4dd27b['lengthSquared'](); 0x0 === _0x1bf742 ? _0x4dd27b['x'] = 0x1 : _0x4dd27b['normalizeFromLength'](Math['sqrt'](_0x1bf742)), _0x3fbe20['CrossToRef'](_0x235951, _0x4dd27b, _0xdc400d), _0xdc400d['normalize'](); var _0x12b2c7 = -_0x3fbe20['Dot'](_0x4dd27b, _0x223fa7) , _0x47172c = -_0x3fbe20['Dot'](_0xdc400d, _0x223fa7) , _0x1d1e8c = -_0x3fbe20['Dot'](_0x235951, _0x223fa7); _0xb313f9['FromValuesToRef'](_0x4dd27b['x'], _0xdc400d['x'], _0x235951['x'], 0x0, _0x4dd27b['y'], _0xdc400d['y'], _0x235951['y'], 0x0, _0x4dd27b['z'], _0xdc400d['z'], _0x235951['z'], 0x0, _0x12b2c7, _0x47172c, _0x1d1e8c, 0x1, _0x22274a); } , _0xb313f9['OrthoLH'] = function(_0x5dc47f, _0x4b0a74, _0x716677, _0x19630d) { var _0x5b12cc = new _0xb313f9(); return _0xb313f9['OrthoLHToRef'](_0x5dc47f, _0x4b0a74, _0x716677, _0x19630d, _0x5b12cc), _0x5b12cc; } , _0xb313f9['OrthoLHToRef'] = function(_0x4286db, _0x4291b8, _0x7eaa89, _0x3f36a2, _0x39869f) { var _0x270c24 = 0x2 / _0x4286db , _0x3356e2 = 0x2 / _0x4291b8 , _0x227443 = 0x2 / (_0x3f36a2 - _0x7eaa89) , _0x49bdd5 = -(_0x3f36a2 + _0x7eaa89) / (_0x3f36a2 - _0x7eaa89); _0xb313f9['FromValuesToRef'](_0x270c24, 0x0, 0x0, 0x0, 0x0, _0x3356e2, 0x0, 0x0, 0x0, 0x0, _0x227443, 0x0, 0x0, 0x0, _0x49bdd5, 0x1, _0x39869f), _0x39869f['_updateIdentityStatus'](0x1 === _0x270c24 && 0x1 === _0x3356e2 && 0x1 === _0x227443 && 0x0 === _0x49bdd5); } , _0xb313f9['OrthoOffCenterLH'] = function(_0x300fef, _0x67bd1e, _0x9ea3a7, _0x5de03d, _0x27f7fc, _0x5b28bb) { var _0x21bfe8 = new _0xb313f9(); return _0xb313f9['OrthoOffCenterLHToRef'](_0x300fef, _0x67bd1e, _0x9ea3a7, _0x5de03d, _0x27f7fc, _0x5b28bb, _0x21bfe8), _0x21bfe8; } , _0xb313f9['OrthoOffCenterLHToRef'] = function(_0x7026b9, _0x5b7a6f, _0x35d033, _0x3832a7, _0x31e349, _0x4e1b1b, _0x36fa60) { var _0x278009 = 0x2 / (_0x5b7a6f - _0x7026b9) , _0xf9de30 = 0x2 / (_0x3832a7 - _0x35d033) , _0x1c3ec5 = 0x2 / (_0x4e1b1b - _0x31e349) , _0x5ac4d2 = -(_0x4e1b1b + _0x31e349) / (_0x4e1b1b - _0x31e349) , _0x7fd514 = (_0x7026b9 + _0x5b7a6f) / (_0x7026b9 - _0x5b7a6f) , _0x1d8f98 = (_0x3832a7 + _0x35d033) / (_0x35d033 - _0x3832a7); _0xb313f9['FromValuesToRef'](_0x278009, 0x0, 0x0, 0x0, 0x0, _0xf9de30, 0x0, 0x0, 0x0, 0x0, _0x1c3ec5, 0x0, _0x7fd514, _0x1d8f98, _0x5ac4d2, 0x1, _0x36fa60), _0x36fa60['_markAsUpdated'](); } , _0xb313f9['OrthoOffCenterRH'] = function(_0x52f7e1, _0x22261f, _0x22c420, _0x405a86, _0x483a70, _0x4bde30) { var _0x2813dd = new _0xb313f9(); return _0xb313f9['OrthoOffCenterRHToRef'](_0x52f7e1, _0x22261f, _0x22c420, _0x405a86, _0x483a70, _0x4bde30, _0x2813dd), _0x2813dd; } , _0xb313f9['OrthoOffCenterRHToRef'] = function(_0x4297f7, _0x5760f6, _0x335829, _0x5a7e30, _0x380a63, _0x81e138, _0x2fdff3) { _0xb313f9['OrthoOffCenterLHToRef'](_0x4297f7, _0x5760f6, _0x335829, _0x5a7e30, _0x380a63, _0x81e138, _0x2fdff3), _0x2fdff3['_m'][0xa] *= -0x1; } , _0xb313f9['PerspectiveLH'] = function(_0x4173ce, _0xfd4594, _0x46ce16, _0x537f24) { var _0xf325a8 = new _0xb313f9() , _0x2f226a = 0x2 * _0x46ce16 / _0x4173ce , _0x240fb8 = 0x2 * _0x46ce16 / _0xfd4594 , _0x5b8743 = (_0x537f24 + _0x46ce16) / (_0x537f24 - _0x46ce16) , _0x5e9875 = -0x2 * _0x537f24 * _0x46ce16 / (_0x537f24 - _0x46ce16); return _0xb313f9['FromValuesToRef'](_0x2f226a, 0x0, 0x0, 0x0, 0x0, _0x240fb8, 0x0, 0x0, 0x0, 0x0, _0x5b8743, 0x1, 0x0, 0x0, _0x5e9875, 0x0, _0xf325a8), _0xf325a8['_updateIdentityStatus'](!0x1), _0xf325a8; } , _0xb313f9['PerspectiveFovLH'] = function(_0x461624, _0x3c8cb4, _0x1690c9, _0x1f9d58) { var _0x3be8f2 = new _0xb313f9(); return _0xb313f9['PerspectiveFovLHToRef'](_0x461624, _0x3c8cb4, _0x1690c9, _0x1f9d58, _0x3be8f2), _0x3be8f2; } , _0xb313f9['PerspectiveFovLHToRef'] = function(_0x586182, _0x53da88, _0x324447, _0x1bceaf, _0x2854f8, _0x1f75a6) { void 0x0 === _0x1f75a6 && (_0x1f75a6 = !0x0); var _0x399db4 = _0x324447 , _0x36f997 = _0x1bceaf , _0x3cb8f3 = 0x1 / Math['tan'](0.5 * _0x586182) , _0xfa56dd = _0x1f75a6 ? _0x3cb8f3 / _0x53da88 : _0x3cb8f3 , _0x58817e = _0x1f75a6 ? _0x3cb8f3 : _0x3cb8f3 * _0x53da88 , _0x4d6e1f = (_0x36f997 + _0x399db4) / (_0x36f997 - _0x399db4) , _0x59267c = -0x2 * _0x36f997 * _0x399db4 / (_0x36f997 - _0x399db4); _0xb313f9['FromValuesToRef'](_0xfa56dd, 0x0, 0x0, 0x0, 0x0, _0x58817e, 0x0, 0x0, 0x0, 0x0, _0x4d6e1f, 0x1, 0x0, 0x0, _0x59267c, 0x0, _0x2854f8), _0x2854f8['_updateIdentityStatus'](!0x1); } , _0xb313f9['PerspectiveFovRH'] = function(_0x476948, _0x2d6e58, _0x1318ea, _0x18b625) { var _0x449c9a = new _0xb313f9(); return _0xb313f9['PerspectiveFovRHToRef'](_0x476948, _0x2d6e58, _0x1318ea, _0x18b625, _0x449c9a), _0x449c9a; } , _0xb313f9['PerspectiveFovRHToRef'] = function(_0x226a70, _0x3abb77, _0x40634f, _0x3a47c5, _0x3ccd8a, _0x38c4d1) { void 0x0 === _0x38c4d1 && (_0x38c4d1 = !0x0); var _0x527e31 = _0x40634f , _0x4c19ca = _0x3a47c5 , _0x45aad0 = 0x1 / Math['tan'](0.5 * _0x226a70) , _0x1c02cb = _0x38c4d1 ? _0x45aad0 / _0x3abb77 : _0x45aad0 , _0x1d9c36 = _0x38c4d1 ? _0x45aad0 : _0x45aad0 * _0x3abb77 , _0x294880 = -(_0x4c19ca + _0x527e31) / (_0x4c19ca - _0x527e31) , _0x37adcd = -0x2 * _0x4c19ca * _0x527e31 / (_0x4c19ca - _0x527e31); _0xb313f9['FromValuesToRef'](_0x1c02cb, 0x0, 0x0, 0x0, 0x0, _0x1d9c36, 0x0, 0x0, 0x0, 0x0, _0x294880, -0x1, 0x0, 0x0, _0x37adcd, 0x0, _0x3ccd8a), _0x3ccd8a['_updateIdentityStatus'](!0x1); } , _0xb313f9['PerspectiveFovWebVRToRef'] = function(_0x3a926e, _0x2cf05c, _0xf1f6ef, _0x91862b, _0x4e4071) { void 0x0 === _0x4e4071 && (_0x4e4071 = !0x1); var _0x22859c = _0x4e4071 ? -0x1 : 0x1 , _0x30dc74 = Math['tan'](_0x3a926e['upDegrees'] * Math['PI'] / 0xb4) , _0x5f233e = Math['tan'](_0x3a926e['downDegrees'] * Math['PI'] / 0xb4) , _0x27da41 = Math['tan'](_0x3a926e['leftDegrees'] * Math['PI'] / 0xb4) , _0x500d74 = Math['tan'](_0x3a926e['rightDegrees'] * Math['PI'] / 0xb4) , _0x5228d4 = 0x2 / (_0x27da41 + _0x500d74) , _0x215719 = 0x2 / (_0x30dc74 + _0x5f233e) , _0x24eb4c = _0x91862b['_m']; _0x24eb4c[0x0] = _0x5228d4, _0x24eb4c[0x1] = _0x24eb4c[0x2] = _0x24eb4c[0x3] = _0x24eb4c[0x4] = 0x0, _0x24eb4c[0x5] = _0x215719, _0x24eb4c[0x6] = _0x24eb4c[0x7] = 0x0, _0x24eb4c[0x8] = (_0x27da41 - _0x500d74) * _0x5228d4 * 0.5, _0x24eb4c[0x9] = -(_0x30dc74 - _0x5f233e) * _0x215719 * 0.5, _0x24eb4c[0xa] = -_0xf1f6ef / (_0x2cf05c - _0xf1f6ef), _0x24eb4c[0xb] = 0x1 * _0x22859c, _0x24eb4c[0xc] = _0x24eb4c[0xd] = _0x24eb4c[0xf] = 0x0, _0x24eb4c[0xe] = -0x2 * _0xf1f6ef * _0x2cf05c / (_0xf1f6ef - _0x2cf05c), _0x91862b['_markAsUpdated'](); } , _0xb313f9['GetFinalMatrix'] = function(_0x5d7678, _0xd18c63, _0x34a5f5, _0x28a430, _0x477117, _0x13f1c5) { var _0x2a28ac = _0x5d7678['width'] , _0x1492dd = _0x5d7678['height'] , _0xe05e3f = _0x5d7678['x'] , _0x13ddcb = _0x5d7678['y'] , _0x284823 = _0xb313f9['FromValues'](_0x2a28ac / 0x2, 0x0, 0x0, 0x0, 0x0, -_0x1492dd / 0x2, 0x0, 0x0, 0x0, 0x0, _0x13f1c5 - _0x477117, 0x0, _0xe05e3f + _0x2a28ac / 0x2, _0x1492dd / 0x2 + _0x13ddcb, _0x477117, 0x1) , _0x355dae = _0x53a116['Matrix'][0x0]; return _0xd18c63['multiplyToRef'](_0x34a5f5, _0x355dae), _0x355dae['multiplyToRef'](_0x28a430, _0x355dae), _0x355dae['multiply'](_0x284823); } , _0xb313f9['GetAsMatrix2x2'] = function(_0x4b4d57) { var _0x2c00f1 = _0x4b4d57['m']; return new Float32Array([_0x2c00f1[0x0], _0x2c00f1[0x1], _0x2c00f1[0x4], _0x2c00f1[0x5]]); } , _0xb313f9['GetAsMatrix3x3'] = function(_0x132d8a) { var _0x200d81 = _0x132d8a['m']; return new Float32Array([_0x200d81[0x0], _0x200d81[0x1], _0x200d81[0x2], _0x200d81[0x4], _0x200d81[0x5], _0x200d81[0x6], _0x200d81[0x8], _0x200d81[0x9], _0x200d81[0xa]]); } , _0xb313f9['Transpose'] = function(_0x56e14e) { var _0x1556ca = new _0xb313f9(); return _0xb313f9['TransposeToRef'](_0x56e14e, _0x1556ca), _0x1556ca; } , _0xb313f9['TransposeToRef'] = function(_0x3a2a83, _0x3cd0a3) { var _0x97b076 = _0x3cd0a3['_m'] , _0x146b3f = _0x3a2a83['m']; _0x97b076[0x0] = _0x146b3f[0x0], _0x97b076[0x1] = _0x146b3f[0x4], _0x97b076[0x2] = _0x146b3f[0x8], _0x97b076[0x3] = _0x146b3f[0xc], _0x97b076[0x4] = _0x146b3f[0x1], _0x97b076[0x5] = _0x146b3f[0x5], _0x97b076[0x6] = _0x146b3f[0x9], _0x97b076[0x7] = _0x146b3f[0xd], _0x97b076[0x8] = _0x146b3f[0x2], _0x97b076[0x9] = _0x146b3f[0x6], _0x97b076[0xa] = _0x146b3f[0xa], _0x97b076[0xb] = _0x146b3f[0xe], _0x97b076[0xc] = _0x146b3f[0x3], _0x97b076[0xd] = _0x146b3f[0x7], _0x97b076[0xe] = _0x146b3f[0xb], _0x97b076[0xf] = _0x146b3f[0xf], _0x3cd0a3['_updateIdentityStatus'](_0x3a2a83['_isIdentity'], _0x3a2a83['_isIdentityDirty']); } , _0xb313f9['Reflection'] = function(_0x5c10a7) { var _0x32f076 = new _0xb313f9(); return _0xb313f9['ReflectionToRef'](_0x5c10a7, _0x32f076), _0x32f076; } , _0xb313f9['ReflectionToRef'] = function(_0x368ed7, _0x2fffcb) { _0x368ed7['normalize'](); var _0x53d79e = _0x368ed7['normal']['x'] , _0x451522 = _0x368ed7['normal']['y'] , _0x195e05 = _0x368ed7['normal']['z'] , _0x396a01 = -0x2 * _0x53d79e , _0xade407 = -0x2 * _0x451522 , _0x2fba0e = -0x2 * _0x195e05; _0xb313f9['FromValuesToRef'](_0x396a01 * _0x53d79e + 0x1, _0xade407 * _0x53d79e, _0x2fba0e * _0x53d79e, 0x0, _0x396a01 * _0x451522, _0xade407 * _0x451522 + 0x1, _0x2fba0e * _0x451522, 0x0, _0x396a01 * _0x195e05, _0xade407 * _0x195e05, _0x2fba0e * _0x195e05 + 0x1, 0x0, _0x396a01 * _0x368ed7['d'], _0xade407 * _0x368ed7['d'], _0x2fba0e * _0x368ed7['d'], 0x1, _0x2fffcb); } , _0xb313f9['FromXYZAxesToRef'] = function(_0x5c9f54, _0x36c707, _0x54fc44, _0xcec883) { _0xb313f9['FromValuesToRef'](_0x5c9f54['x'], _0x5c9f54['y'], _0x5c9f54['z'], 0x0, _0x36c707['x'], _0x36c707['y'], _0x36c707['z'], 0x0, _0x54fc44['x'], _0x54fc44['y'], _0x54fc44['z'], 0x0, 0x0, 0x0, 0x0, 0x1, _0xcec883); } , _0xb313f9['FromQuaternionToRef'] = function(_0x3f89c0, _0x4ea172) { var _0x3df0ea = _0x3f89c0['x'] * _0x3f89c0['x'] , _0x58c931 = _0x3f89c0['y'] * _0x3f89c0['y'] , _0x321528 = _0x3f89c0['z'] * _0x3f89c0['z'] , _0x4487db = _0x3f89c0['x'] * _0x3f89c0['y'] , _0x5e05cb = _0x3f89c0['z'] * _0x3f89c0['w'] , _0x118d1c = _0x3f89c0['z'] * _0x3f89c0['x'] , _0x2e604e = _0x3f89c0['y'] * _0x3f89c0['w'] , _0x520ec0 = _0x3f89c0['y'] * _0x3f89c0['z'] , _0xb6e002 = _0x3f89c0['x'] * _0x3f89c0['w']; _0x4ea172['_m'][0x0] = 0x1 - 0x2 * (_0x58c931 + _0x321528), _0x4ea172['_m'][0x1] = 0x2 * (_0x4487db + _0x5e05cb), _0x4ea172['_m'][0x2] = 0x2 * (_0x118d1c - _0x2e604e), _0x4ea172['_m'][0x3] = 0x0, _0x4ea172['_m'][0x4] = 0x2 * (_0x4487db - _0x5e05cb), _0x4ea172['_m'][0x5] = 0x1 - 0x2 * (_0x321528 + _0x3df0ea), _0x4ea172['_m'][0x6] = 0x2 * (_0x520ec0 + _0xb6e002), _0x4ea172['_m'][0x7] = 0x0, _0x4ea172['_m'][0x8] = 0x2 * (_0x118d1c + _0x2e604e), _0x4ea172['_m'][0x9] = 0x2 * (_0x520ec0 - _0xb6e002), _0x4ea172['_m'][0xa] = 0x1 - 0x2 * (_0x58c931 + _0x3df0ea), _0x4ea172['_m'][0xb] = 0x0, _0x4ea172['_m'][0xc] = 0x0, _0x4ea172['_m'][0xd] = 0x0, _0x4ea172['_m'][0xe] = 0x0, _0x4ea172['_m'][0xf] = 0x1, _0x4ea172['_markAsUpdated'](); } , _0xb313f9['_updateFlagSeed'] = 0x0, _0xb313f9['_identityReadOnly'] = _0xb313f9['Identity'](), _0xb313f9; }(), _0x289f15 = function() { function _0x456689(_0x11b867, _0x1cd9db, _0x12fcdd, _0x108a35) { this['normal'] = new _0x3fbe20(_0x11b867,_0x1cd9db,_0x12fcdd), this['d'] = _0x108a35; } return _0x456689['prototype']['asArray'] = function() { return [this['normal']['x'], this['normal']['y'], this['normal']['z'], this['d']]; } , _0x456689['prototype']['clone'] = function() { return new _0x456689(this['normal']['x'],this['normal']['y'],this['normal']['z'],this['d']); } , _0x456689['prototype']['getClassName'] = function() { return 'Plane'; } , _0x456689['prototype']['getHashCode'] = function() { var _0x1c2b34 = this['normal']['getHashCode'](); return _0x1c2b34 = 0x18d * _0x1c2b34 ^ (this['d'] || 0x0); } , _0x456689['prototype']['normalize'] = function() { var _0xbe0f4e = Math['sqrt'](this['normal']['x'] * this['normal']['x'] + this['normal']['y'] * this['normal']['y'] + this['normal']['z'] * this['normal']['z']) , _0x363208 = 0x0; return 0x0 !== _0xbe0f4e && (_0x363208 = 0x1 / _0xbe0f4e), this['normal']['x'] *= _0x363208, this['normal']['y'] *= _0x363208, this['normal']['z'] *= _0x363208, this['d'] *= _0x363208, this; } , _0x456689['prototype']['transform'] = function(_0x5628a7) { var _0x214218 = _0x53a116['Matrix'][0x0]; _0x5e57bc['TransposeToRef'](_0x5628a7, _0x214218); var _0x5622ce = _0x214218['m'] , _0x13b6cf = this['normal']['x'] , _0x23fdd4 = this['normal']['y'] , _0x4afd8f = this['normal']['z'] , _0x50743b = this['d']; return new _0x456689(_0x13b6cf * _0x5622ce[0x0] + _0x23fdd4 * _0x5622ce[0x1] + _0x4afd8f * _0x5622ce[0x2] + _0x50743b * _0x5622ce[0x3],_0x13b6cf * _0x5622ce[0x4] + _0x23fdd4 * _0x5622ce[0x5] + _0x4afd8f * _0x5622ce[0x6] + _0x50743b * _0x5622ce[0x7],_0x13b6cf * _0x5622ce[0x8] + _0x23fdd4 * _0x5622ce[0x9] + _0x4afd8f * _0x5622ce[0xa] + _0x50743b * _0x5622ce[0xb],_0x13b6cf * _0x5622ce[0xc] + _0x23fdd4 * _0x5622ce[0xd] + _0x4afd8f * _0x5622ce[0xe] + _0x50743b * _0x5622ce[0xf]); } , _0x456689['prototype']['dotCoordinate'] = function(_0x1c4cdb) { return this['normal']['x'] * _0x1c4cdb['x'] + this['normal']['y'] * _0x1c4cdb['y'] + this['normal']['z'] * _0x1c4cdb['z'] + this['d']; } , _0x456689['prototype']['copyFromPoints'] = function(_0x3131d5, _0x485fcc, _0x179272) { var _0x45a747, _0x16cf9c = _0x485fcc['x'] - _0x3131d5['x'], _0x12dc68 = _0x485fcc['y'] - _0x3131d5['y'], _0x3213bb = _0x485fcc['z'] - _0x3131d5['z'], _0x33929c = _0x179272['x'] - _0x3131d5['x'], _0x4bb030 = _0x179272['y'] - _0x3131d5['y'], _0x2e406b = _0x179272['z'] - _0x3131d5['z'], _0x33cf92 = _0x12dc68 * _0x2e406b - _0x3213bb * _0x4bb030, _0x1a13e3 = _0x3213bb * _0x33929c - _0x16cf9c * _0x2e406b, _0x48c071 = _0x16cf9c * _0x4bb030 - _0x12dc68 * _0x33929c, _0x1cac68 = Math['sqrt'](_0x33cf92 * _0x33cf92 + _0x1a13e3 * _0x1a13e3 + _0x48c071 * _0x48c071); return _0x45a747 = 0x0 !== _0x1cac68 ? 0x1 / _0x1cac68 : 0x0, this['normal']['x'] = _0x33cf92 * _0x45a747, this['normal']['y'] = _0x1a13e3 * _0x45a747, this['normal']['z'] = _0x48c071 * _0x45a747, this['d'] = -(this['normal']['x'] * _0x3131d5['x'] + this['normal']['y'] * _0x3131d5['y'] + this['normal']['z'] * _0x3131d5['z']), this; } , _0x456689['prototype']['isFrontFacingTo'] = function(_0x19bd42, _0x29b11f) { return _0x3fbe20['Dot'](this['normal'], _0x19bd42) <= _0x29b11f; } , _0x456689['prototype']['signedDistanceTo'] = function(_0x501fd5) { return _0x3fbe20['Dot'](_0x501fd5, this['normal']) + this['d']; } , _0x456689['FromArray'] = function(_0x44c527) { return new _0x456689(_0x44c527[0x0],_0x44c527[0x1],_0x44c527[0x2],_0x44c527[0x3]); } , _0x456689['FromPoints'] = function(_0x1bbe96, _0x1d048c, _0x883699) { var _0x4e5de8 = new _0x456689(0x0,0x0,0x0,0x0); return _0x4e5de8['copyFromPoints'](_0x1bbe96, _0x1d048c, _0x883699), _0x4e5de8; } , _0x456689['FromPositionAndNormal'] = function(_0x47dc3b, _0x41f00d) { var _0x481ffe = new _0x456689(0x0,0x0,0x0,0x0); return _0x41f00d['normalize'](), _0x481ffe['normal'] = _0x41f00d, _0x481ffe['d'] = -(_0x41f00d['x'] * _0x47dc3b['x'] + _0x41f00d['y'] * _0x47dc3b['y'] + _0x41f00d['z'] * _0x47dc3b['z']), _0x481ffe; } , _0x456689['SignedDistanceToPlaneFromPositionAndNormal'] = function(_0x13c656, _0x3f75dd, _0x4aee49) { var _0x1e5e8b = -(_0x3f75dd['x'] * _0x13c656['x'] + _0x3f75dd['y'] * _0x13c656['y'] + _0x3f75dd['z'] * _0x13c656['z']); return _0x3fbe20['Dot'](_0x4aee49, _0x3f75dd) + _0x1e5e8b; } , _0x456689; }(), _0x34efa7 = function() { function _0x383f20(_0x5bdff1, _0x25138a, _0x43b075, _0x53d302) { this['x'] = _0x5bdff1, this['y'] = _0x25138a, this['width'] = _0x43b075, this['height'] = _0x53d302; } return _0x383f20['prototype']['toGlobal'] = function(_0x497b11, _0x53a5dd) { return new _0x383f20(this['x'] * _0x497b11,this['y'] * _0x53a5dd,this['width'] * _0x497b11,this['height'] * _0x53a5dd); } , _0x383f20['prototype']['toGlobalToRef'] = function(_0x39a80c, _0x351df6, _0x40ce39) { return _0x40ce39['x'] = this['x'] * _0x39a80c, _0x40ce39['y'] = this['y'] * _0x351df6, _0x40ce39['width'] = this['width'] * _0x39a80c, _0x40ce39['height'] = this['height'] * _0x351df6, this; } , _0x383f20['prototype']['clone'] = function() { return new _0x383f20(this['x'],this['y'],this['width'],this['height']); } , _0x383f20; }(), _0x4a31f7 = function() { function _0x1b23ff() {} return _0x1b23ff['GetPlanes'] = function(_0x21bd1e) { for (var _0x55ff31 = [], _0xcef724 = 0x0; _0xcef724 < 0x6; _0xcef724++) _0x55ff31['push'](new _0x289f15(0x0,0x0,0x0,0x0)); return _0x1b23ff['GetPlanesToRef'](_0x21bd1e, _0x55ff31), _0x55ff31; } , _0x1b23ff['GetNearPlaneToRef'] = function(_0x23ec6e, _0x59722d) { var _0x181950 = _0x23ec6e['m']; _0x59722d['normal']['x'] = _0x181950[0x3] + _0x181950[0x2], _0x59722d['normal']['y'] = _0x181950[0x7] + _0x181950[0x6], _0x59722d['normal']['z'] = _0x181950[0xb] + _0x181950[0xa], _0x59722d['d'] = _0x181950[0xf] + _0x181950[0xe], _0x59722d['normalize'](); } , _0x1b23ff['GetFarPlaneToRef'] = function(_0x3d4980, _0x9272f4) { var _0x46695c = _0x3d4980['m']; _0x9272f4['normal']['x'] = _0x46695c[0x3] - _0x46695c[0x2], _0x9272f4['normal']['y'] = _0x46695c[0x7] - _0x46695c[0x6], _0x9272f4['normal']['z'] = _0x46695c[0xb] - _0x46695c[0xa], _0x9272f4['d'] = _0x46695c[0xf] - _0x46695c[0xe], _0x9272f4['normalize'](); } , _0x1b23ff['GetLeftPlaneToRef'] = function(_0x1ed586, _0x50ee26) { var _0x115310 = _0x1ed586['m']; _0x50ee26['normal']['x'] = _0x115310[0x3] + _0x115310[0x0], _0x50ee26['normal']['y'] = _0x115310[0x7] + _0x115310[0x4], _0x50ee26['normal']['z'] = _0x115310[0xb] + _0x115310[0x8], _0x50ee26['d'] = _0x115310[0xf] + _0x115310[0xc], _0x50ee26['normalize'](); } , _0x1b23ff['GetRightPlaneToRef'] = function(_0x323764, _0x5703ec) { var _0x232f71 = _0x323764['m']; _0x5703ec['normal']['x'] = _0x232f71[0x3] - _0x232f71[0x0], _0x5703ec['normal']['y'] = _0x232f71[0x7] - _0x232f71[0x4], _0x5703ec['normal']['z'] = _0x232f71[0xb] - _0x232f71[0x8], _0x5703ec['d'] = _0x232f71[0xf] - _0x232f71[0xc], _0x5703ec['normalize'](); } , _0x1b23ff['GetTopPlaneToRef'] = function(_0x128c81, _0x3afccd) { var _0x1b2405 = _0x128c81['m']; _0x3afccd['normal']['x'] = _0x1b2405[0x3] - _0x1b2405[0x1], _0x3afccd['normal']['y'] = _0x1b2405[0x7] - _0x1b2405[0x5], _0x3afccd['normal']['z'] = _0x1b2405[0xb] - _0x1b2405[0x9], _0x3afccd['d'] = _0x1b2405[0xf] - _0x1b2405[0xd], _0x3afccd['normalize'](); } , _0x1b23ff['GetBottomPlaneToRef'] = function(_0x58519c, _0x5f2c1e) { var _0xddc4db = _0x58519c['m']; _0x5f2c1e['normal']['x'] = _0xddc4db[0x3] + _0xddc4db[0x1], _0x5f2c1e['normal']['y'] = _0xddc4db[0x7] + _0xddc4db[0x5], _0x5f2c1e['normal']['z'] = _0xddc4db[0xb] + _0xddc4db[0x9], _0x5f2c1e['d'] = _0xddc4db[0xf] + _0xddc4db[0xd], _0x5f2c1e['normalize'](); } , _0x1b23ff['GetPlanesToRef'] = function(_0x976a74, _0x34dc19) { _0x1b23ff['GetNearPlaneToRef'](_0x976a74, _0x34dc19[0x0]), _0x1b23ff['GetFarPlaneToRef'](_0x976a74, _0x34dc19[0x1]), _0x1b23ff['GetLeftPlaneToRef'](_0x976a74, _0x34dc19[0x2]), _0x1b23ff['GetRightPlaneToRef'](_0x976a74, _0x34dc19[0x3]), _0x1b23ff['GetTopPlaneToRef'](_0x976a74, _0x34dc19[0x4]), _0x1b23ff['GetBottomPlaneToRef'](_0x976a74, _0x34dc19[0x5]); } , _0x1b23ff; }(); !function(_0x5b5472) { _0x5b5472[_0x5b5472['LOCAL'] = 0x0] = 'LOCAL', _0x5b5472[_0x5b5472['WORLD'] = 0x1] = 'WORLD', _0x5b5472[_0x5b5472['BONE'] = 0x2] = 'BONE'; }(_0x51c4bf || (_0x51c4bf = {})); var _0x388ee5, _0x5cc191 = function() { function _0x5a4d97() {} return _0x5a4d97['X'] = new _0x3fbe20(0x1,0x0,0x0), _0x5a4d97['Y'] = new _0x3fbe20(0x0,0x1,0x0), _0x5a4d97['Z'] = new _0x3fbe20(0x0,0x0,0x1), _0x5a4d97; }(), _0x36e0cc = function() { function _0x2ad63d() {} return _0x2ad63d['Interpolate'] = function(_0x4979ff, _0x17170c, _0x2b7282, _0x62a80e, _0x38dbb0) { for (var _0x2cbaef = 0x1 - 0x3 * _0x62a80e + 0x3 * _0x17170c, _0x998cc8 = 0x3 * _0x62a80e - 0x6 * _0x17170c, _0x5dfabf = 0x3 * _0x17170c, _0x462f44 = _0x4979ff, _0x1ca694 = 0x0; _0x1ca694 < 0x5; _0x1ca694++) { var _0x44a167 = _0x462f44 * _0x462f44; _0x462f44 -= (_0x2cbaef * (_0x44a167 * _0x462f44) + _0x998cc8 * _0x44a167 + _0x5dfabf * _0x462f44 - _0x4979ff) * (0x1 / (0x3 * _0x2cbaef * _0x44a167 + 0x2 * _0x998cc8 * _0x462f44 + _0x5dfabf)), _0x462f44 = Math['min'](0x1, Math['max'](0x0, _0x462f44)); } return 0x3 * Math['pow'](0x1 - _0x462f44, 0x2) * _0x462f44 * _0x2b7282 + 0x3 * (0x1 - _0x462f44) * Math['pow'](_0x462f44, 0x2) * _0x38dbb0 + Math['pow'](_0x462f44, 0x3); } , _0x2ad63d; }(); !function(_0x442152) { _0x442152[_0x442152['CW'] = 0x0] = 'CW', _0x442152[_0x442152['CCW'] = 0x1] = 'CCW'; }(_0x388ee5 || (_0x388ee5 = {})); var _0x21c421 = function() { function _0x5d6929(_0x3a33b7) { this['_radians'] = _0x3a33b7, this['_radians'] < 0x0 && (this['_radians'] += 0x2 * Math['PI']); } return _0x5d6929['prototype']['degrees'] = function() { return 0xb4 * this['_radians'] / Math['PI']; } , _0x5d6929['prototype']['radians'] = function() { return this['_radians']; } , _0x5d6929['BetweenTwoPoints'] = function(_0x16a409, _0x2c08b9) { var _0x5300a2 = _0x2c08b9['subtract'](_0x16a409); return new _0x5d6929(Math['atan2'](_0x5300a2['y'], _0x5300a2['x'])); } , _0x5d6929['FromRadians'] = function(_0x47a3a3) { return new _0x5d6929(_0x47a3a3); } , _0x5d6929['FromDegrees'] = function(_0x2c4c85) { return new _0x5d6929(_0x2c4c85 * Math['PI'] / 0xb4); } , _0x5d6929; }() , _0x2333b1 = function() { return function(_0x57d2e1, _0x3d6fc0, _0x3344d6) { this['startPoint'] = _0x57d2e1, this['midPoint'] = _0x3d6fc0, this['endPoint'] = _0x3344d6; var _0x172d19 = Math['pow'](_0x3d6fc0['x'], 0x2) + Math['pow'](_0x3d6fc0['y'], 0x2) , _0x1e27a7 = (Math['pow'](_0x57d2e1['x'], 0x2) + Math['pow'](_0x57d2e1['y'], 0x2) - _0x172d19) / 0x2 , _0x2e279a = (_0x172d19 - Math['pow'](_0x3344d6['x'], 0x2) - Math['pow'](_0x3344d6['y'], 0x2)) / 0x2 , _0x20e54e = (_0x57d2e1['x'] - _0x3d6fc0['x']) * (_0x3d6fc0['y'] - _0x3344d6['y']) - (_0x3d6fc0['x'] - _0x3344d6['x']) * (_0x57d2e1['y'] - _0x3d6fc0['y']); this['centerPoint'] = new _0x461b0a((_0x1e27a7 * (_0x3d6fc0['y'] - _0x3344d6['y']) - _0x2e279a * (_0x57d2e1['y'] - _0x3d6fc0['y'])) / _0x20e54e,((_0x57d2e1['x'] - _0x3d6fc0['x']) * _0x2e279a - (_0x3d6fc0['x'] - _0x3344d6['x']) * _0x1e27a7) / _0x20e54e), this['radius'] = this['centerPoint']['subtract'](this['startPoint'])['length'](), this['startAngle'] = _0x21c421['BetweenTwoPoints'](this['centerPoint'], this['startPoint']); var _0x5cb5e3 = this['startAngle']['degrees']() , _0x303904 = _0x21c421['BetweenTwoPoints'](this['centerPoint'], this['midPoint'])['degrees']() , _0x134da1 = _0x21c421['BetweenTwoPoints'](this['centerPoint'], this['endPoint'])['degrees'](); _0x303904 - _0x5cb5e3 > 0xb4 && (_0x303904 -= 0x168), _0x303904 - _0x5cb5e3 < -0xb4 && (_0x303904 += 0x168), _0x134da1 - _0x303904 > 0xb4 && (_0x134da1 -= 0x168), _0x134da1 - _0x303904 < -0xb4 && (_0x134da1 += 0x168), this['orientation'] = _0x303904 - _0x5cb5e3 < 0x0 ? _0x388ee5['CW'] : _0x388ee5['CCW'], this['angle'] = _0x21c421['FromDegrees'](this['orientation'] === _0x388ee5['CW'] ? _0x5cb5e3 - _0x134da1 : _0x134da1 - _0x5cb5e3); } ; }() , _0x23ab56 = function() { function _0x35e658(_0x1a5984, _0x57d161) { this['_points'] = new Array(), this['_length'] = 0x0, this['closed'] = !0x1, this['_points']['push'](new _0x461b0a(_0x1a5984,_0x57d161)); } return _0x35e658['prototype']['addLineTo'] = function(_0x730fad, _0x46b235) { if (this['closed']) return this; var _0x2e3e16 = new _0x461b0a(_0x730fad,_0x46b235) , _0x4c93df = this['_points'][this['_points']['length'] - 0x1]; return this['_points']['push'](_0x2e3e16), this['_length'] += _0x2e3e16['subtract'](_0x4c93df)['length'](), this; } , _0x35e658['prototype']['addArcTo'] = function(_0x1fbdce, _0x6e7690, _0x29c810, _0x285ee5, _0x9720ed) { if (void 0x0 === _0x9720ed && (_0x9720ed = 0x24), this['closed']) return this; var _0x5b9664 = this['_points'][this['_points']['length'] - 0x1] , _0x3fdc2b = new _0x461b0a(_0x1fbdce,_0x6e7690) , _0x20738d = new _0x461b0a(_0x29c810,_0x285ee5) , _0xa07cb8 = new _0x2333b1(_0x5b9664,_0x3fdc2b,_0x20738d) , _0xee164c = _0xa07cb8['angle']['radians']() / _0x9720ed; _0xa07cb8['orientation'] === _0x388ee5['CW'] && (_0xee164c *= -0x1); for (var _0x48ed9a = _0xa07cb8['startAngle']['radians']() + _0xee164c, _0x574663 = 0x0; _0x574663 < _0x9720ed; _0x574663++) { var _0x2e6f63 = Math['cos'](_0x48ed9a) * _0xa07cb8['radius'] + _0xa07cb8['centerPoint']['x'] , _0x23add7 = Math['sin'](_0x48ed9a) * _0xa07cb8['radius'] + _0xa07cb8['centerPoint']['y']; this['addLineTo'](_0x2e6f63, _0x23add7), _0x48ed9a += _0xee164c; } return this; } , _0x35e658['prototype']['close'] = function() { return this['closed'] = !0x0, this; } , _0x35e658['prototype']['length'] = function() { var _0x532d76 = this['_length']; if (!this['closed']) { var _0x88a043 = this['_points'][this['_points']['length'] - 0x1]; _0x532d76 += this['_points'][0x0]['subtract'](_0x88a043)['length'](); } return _0x532d76; } , _0x35e658['prototype']['getPoints'] = function() { return this['_points']; } , _0x35e658['prototype']['getPointAtLengthPosition'] = function(_0x533c6c) { if (_0x533c6c < 0x0 || _0x533c6c > 0x1) return _0x461b0a['Zero'](); for (var _0x5aa48e = _0x533c6c * this['length'](), _0xeeaad1 = 0x0, _0xb1105b = 0x0; _0xb1105b < this['_points']['length']; _0xb1105b++) { var _0x235b69 = (_0xb1105b + 0x1) % this['_points']['length'] , _0x416a65 = this['_points'][_0xb1105b] , _0x3751d7 = this['_points'][_0x235b69]['subtract'](_0x416a65) , _0x4217ca = _0x3751d7['length']() + _0xeeaad1; if (_0x5aa48e >= _0xeeaad1 && _0x5aa48e <= _0x4217ca) { var _0x31a562 = _0x3751d7['normalize']() , _0x1092b8 = _0x5aa48e - _0xeeaad1; return new _0x461b0a(_0x416a65['x'] + _0x31a562['x'] * _0x1092b8,_0x416a65['y'] + _0x31a562['y'] * _0x1092b8); } _0xeeaad1 = _0x4217ca; } return _0x461b0a['Zero'](); } , _0x35e658['StartingAt'] = function(_0x113f70, _0x21a12b) { return new _0x35e658(_0x113f70,_0x21a12b); } , _0x35e658; }() , _0x1679c4 = function() { function _0x3a2e58(_0x50be3d, _0x1198c6, _0x5e5f21) { void 0x0 === _0x1198c6 && (_0x1198c6 = null), this['path'] = _0x50be3d, this['_curve'] = new Array(), this['_distances'] = new Array(), this['_tangents'] = new Array(), this['_normals'] = new Array(), this['_binormals'] = new Array(); for (var _0x3524ad = 0x0; _0x3524ad < _0x50be3d['length']; _0x3524ad++) this['_curve'][_0x3524ad] = _0x50be3d[_0x3524ad]['clone'](); this['_raw'] = _0x5e5f21 || !0x1, this['_compute'](_0x1198c6); } return _0x3a2e58['prototype']['getCurve'] = function() { return this['_curve']; } , _0x3a2e58['prototype']['getTangents'] = function() { return this['_tangents']; } , _0x3a2e58['prototype']['getNormals'] = function() { return this['_normals']; } , _0x3a2e58['prototype']['getBinormals'] = function() { return this['_binormals']; } , _0x3a2e58['prototype']['getDistances'] = function() { return this['_distances']; } , _0x3a2e58['prototype']['update'] = function(_0x5a95db, _0x1257d6) { void 0x0 === _0x1257d6 && (_0x1257d6 = null); for (var _0x4c0581 = 0x0; _0x4c0581 < _0x5a95db['length']; _0x4c0581++) this['_curve'][_0x4c0581]['x'] = _0x5a95db[_0x4c0581]['x'], this['_curve'][_0x4c0581]['y'] = _0x5a95db[_0x4c0581]['y'], this['_curve'][_0x4c0581]['z'] = _0x5a95db[_0x4c0581]['z']; return this['_compute'](_0x1257d6), this; } , _0x3a2e58['prototype']['_compute'] = function(_0x2797e6) { var _0x37c6d8 = this['_curve']['length']; this['_tangents'][0x0] = this['_getFirstNonNullVector'](0x0), this['_raw'] || this['_tangents'][0x0]['normalize'](), this['_tangents'][_0x37c6d8 - 0x1] = this['_curve'][_0x37c6d8 - 0x1]['subtract'](this['_curve'][_0x37c6d8 - 0x2]), this['_raw'] || this['_tangents'][_0x37c6d8 - 0x1]['normalize'](); var _0x39dd16, _0x5d744c, _0x5c5b4b, _0x3cd036, _0x340dc8 = this['_tangents'][0x0], _0x1a6b54 = this['_normalVector'](_0x340dc8, _0x2797e6); this['_normals'][0x0] = _0x1a6b54, this['_raw'] || this['_normals'][0x0]['normalize'](), this['_binormals'][0x0] = _0x3fbe20['Cross'](_0x340dc8, this['_normals'][0x0]), this['_raw'] || this['_binormals'][0x0]['normalize'](), this['_distances'][0x0] = 0x0; for (var _0x2907aa = 0x1; _0x2907aa < _0x37c6d8; _0x2907aa++) _0x39dd16 = this['_getLastNonNullVector'](_0x2907aa), _0x2907aa < _0x37c6d8 - 0x1 && (_0x5d744c = this['_getFirstNonNullVector'](_0x2907aa), this['_tangents'][_0x2907aa] = _0x39dd16['add'](_0x5d744c), this['_tangents'][_0x2907aa]['normalize']()), this['_distances'][_0x2907aa] = this['_distances'][_0x2907aa - 0x1] + _0x39dd16['length'](), _0x5c5b4b = this['_tangents'][_0x2907aa], _0x3cd036 = this['_binormals'][_0x2907aa - 0x1], this['_normals'][_0x2907aa] = _0x3fbe20['Cross'](_0x3cd036, _0x5c5b4b), this['_raw'] || this['_normals'][_0x2907aa]['normalize'](), this['_binormals'][_0x2907aa] = _0x3fbe20['Cross'](_0x5c5b4b, this['_normals'][_0x2907aa]), this['_raw'] || this['_binormals'][_0x2907aa]['normalize'](); } , _0x3a2e58['prototype']['_getFirstNonNullVector'] = function(_0x970b79) { for (var _0x2b9627 = 0x1, _0xe96e54 = this['_curve'][_0x970b79 + _0x2b9627]['subtract'](this['_curve'][_0x970b79]); 0x0 === _0xe96e54['length']() && _0x970b79 + _0x2b9627 + 0x1 < this['_curve']['length']; ) _0x2b9627++, _0xe96e54 = this['_curve'][_0x970b79 + _0x2b9627]['subtract'](this['_curve'][_0x970b79]); return _0xe96e54; } , _0x3a2e58['prototype']['_getLastNonNullVector'] = function(_0x52e743) { for (var _0x2d7645 = 0x1, _0x36656e = this['_curve'][_0x52e743]['subtract'](this['_curve'][_0x52e743 - _0x2d7645]); 0x0 === _0x36656e['length']() && _0x52e743 > _0x2d7645 + 0x1; ) _0x2d7645++, _0x36656e = this['_curve'][_0x52e743]['subtract'](this['_curve'][_0x52e743 - _0x2d7645]); return _0x36656e; } , _0x3a2e58['prototype']['_normalVector'] = function(_0x4471a8, _0x574dfb) { var _0x2d7e2e, _0x30dbf1, _0x3f72ee = _0x4471a8['length'](); (0x0 === _0x3f72ee && (_0x3f72ee = 0x1), null == _0x574dfb) ? (_0x30dbf1 = _0x15f609['a']['WithinEpsilon'](Math['abs'](_0x4471a8['y']) / _0x3f72ee, 0x1, _0x3e57e9) ? _0x15f609['a']['WithinEpsilon'](Math['abs'](_0x4471a8['x']) / _0x3f72ee, 0x1, _0x3e57e9) ? _0x15f609['a']['WithinEpsilon'](Math['abs'](_0x4471a8['z']) / _0x3f72ee, 0x1, _0x3e57e9) ? _0x3fbe20['Zero']() : new _0x3fbe20(0x0,0x0,0x1) : new _0x3fbe20(0x1,0x0,0x0) : new _0x3fbe20(0x0,-0x1,0x0), _0x2d7e2e = _0x3fbe20['Cross'](_0x4471a8, _0x30dbf1)) : (_0x2d7e2e = _0x3fbe20['Cross'](_0x4471a8, _0x574dfb), _0x3fbe20['CrossToRef'](_0x2d7e2e, _0x4471a8, _0x2d7e2e)); return _0x2d7e2e['normalize'](), _0x2d7e2e; } , _0x3a2e58; }() , _0x4c8767 = function() { function _0x489112(_0x189423) { this['_length'] = 0x0, this['_points'] = _0x189423, this['_length'] = this['_computeLength'](_0x189423); } return _0x489112['CreateQuadraticBezier'] = function(_0x1a7509, _0x313b4b, _0x2b7f33, _0x5ec5b4) { _0x5ec5b4 = _0x5ec5b4 > 0x2 ? _0x5ec5b4 : 0x3; for (var _0x4f0bea = new Array(), _0x30ab70 = function(_0xff9a69, _0x55a28f, _0x4c5d51, _0x3fd489) { return (0x1 - _0xff9a69) * (0x1 - _0xff9a69) * _0x55a28f + 0x2 * _0xff9a69 * (0x1 - _0xff9a69) * _0x4c5d51 + _0xff9a69 * _0xff9a69 * _0x3fd489; }, _0x34b41 = 0x0; _0x34b41 <= _0x5ec5b4; _0x34b41++) _0x4f0bea['push'](new _0x3fbe20(_0x30ab70(_0x34b41 / _0x5ec5b4, _0x1a7509['x'], _0x313b4b['x'], _0x2b7f33['x']),_0x30ab70(_0x34b41 / _0x5ec5b4, _0x1a7509['y'], _0x313b4b['y'], _0x2b7f33['y']),_0x30ab70(_0x34b41 / _0x5ec5b4, _0x1a7509['z'], _0x313b4b['z'], _0x2b7f33['z']))); return new _0x489112(_0x4f0bea); } , _0x489112['CreateCubicBezier'] = function(_0x198092, _0x568f29, _0x26cc36, _0x3d08ad, _0x348dd2) { _0x348dd2 = _0x348dd2 > 0x3 ? _0x348dd2 : 0x4; for (var _0x4c1fb2 = new Array(), _0x37181e = function(_0x4b1f43, _0x303c96, _0x3baf91, _0x2a220e, _0x329d90) { return (0x1 - _0x4b1f43) * (0x1 - _0x4b1f43) * (0x1 - _0x4b1f43) * _0x303c96 + 0x3 * _0x4b1f43 * (0x1 - _0x4b1f43) * (0x1 - _0x4b1f43) * _0x3baf91 + 0x3 * _0x4b1f43 * _0x4b1f43 * (0x1 - _0x4b1f43) * _0x2a220e + _0x4b1f43 * _0x4b1f43 * _0x4b1f43 * _0x329d90; }, _0x450e1f = 0x0; _0x450e1f <= _0x348dd2; _0x450e1f++) _0x4c1fb2['push'](new _0x3fbe20(_0x37181e(_0x450e1f / _0x348dd2, _0x198092['x'], _0x568f29['x'], _0x26cc36['x'], _0x3d08ad['x']),_0x37181e(_0x450e1f / _0x348dd2, _0x198092['y'], _0x568f29['y'], _0x26cc36['y'], _0x3d08ad['y']),_0x37181e(_0x450e1f / _0x348dd2, _0x198092['z'], _0x568f29['z'], _0x26cc36['z'], _0x3d08ad['z']))); return new _0x489112(_0x4c1fb2); } , _0x489112['CreateHermiteSpline'] = function(_0xf1dc62, _0x2b4e07, _0x1e226c, _0x19338b, _0xe0a411) { for (var _0x56a377 = new Array(), _0x56825a = 0x1 / _0xe0a411, _0x55af47 = 0x0; _0x55af47 <= _0xe0a411; _0x55af47++) _0x56a377['push'](_0x3fbe20['Hermite'](_0xf1dc62, _0x2b4e07, _0x1e226c, _0x19338b, _0x55af47 * _0x56825a)); return new _0x489112(_0x56a377); } , _0x489112['CreateCatmullRomSpline'] = function(_0x4408e8, _0x2ece40, _0xbc879) { var _0x4b7a52 = new Array() , _0x22e9b9 = 0x1 / _0x2ece40 , _0x3ca45f = 0x0; if (_0xbc879) { for (var _0x3bb68d = _0x4408e8['length'], _0x30b031 = 0x0; _0x30b031 < _0x3bb68d; _0x30b031++) { _0x3ca45f = 0x0; for (var _0x559b3c = 0x0; _0x559b3c < _0x2ece40; _0x559b3c++) _0x4b7a52['push'](_0x3fbe20['CatmullRom'](_0x4408e8[_0x30b031 % _0x3bb68d], _0x4408e8[(_0x30b031 + 0x1) % _0x3bb68d], _0x4408e8[(_0x30b031 + 0x2) % _0x3bb68d], _0x4408e8[(_0x30b031 + 0x3) % _0x3bb68d], _0x3ca45f)), _0x3ca45f += _0x22e9b9; } _0x4b7a52['push'](_0x4b7a52[0x0]); } else { var _0x3d694b = new Array(); _0x3d694b['push'](_0x4408e8[0x0]['clone']()), Array['prototype']['push']['apply'](_0x3d694b, _0x4408e8), _0x3d694b['push'](_0x4408e8[_0x4408e8['length'] - 0x1]['clone']()); for (_0x30b031 = 0x0; _0x30b031 < _0x3d694b['length'] - 0x3; _0x30b031++) { _0x3ca45f = 0x0; for (_0x559b3c = 0x0; _0x559b3c < _0x2ece40; _0x559b3c++) _0x4b7a52['push'](_0x3fbe20['CatmullRom'](_0x3d694b[_0x30b031], _0x3d694b[_0x30b031 + 0x1], _0x3d694b[_0x30b031 + 0x2], _0x3d694b[_0x30b031 + 0x3], _0x3ca45f)), _0x3ca45f += _0x22e9b9; } _0x30b031--, _0x4b7a52['push'](_0x3fbe20['CatmullRom'](_0x3d694b[_0x30b031], _0x3d694b[_0x30b031 + 0x1], _0x3d694b[_0x30b031 + 0x2], _0x3d694b[_0x30b031 + 0x3], _0x3ca45f)); } return new _0x489112(_0x4b7a52); } , _0x489112['prototype']['getPoints'] = function() { return this['_points']; } , _0x489112['prototype']['length'] = function() { return this['_length']; } , _0x489112['prototype']['continue'] = function(_0x2585fa) { for (var _0x4561cd = this['_points'][this['_points']['length'] - 0x1], _0x5c2558 = this['_points']['slice'](), _0x79e852 = _0x2585fa['getPoints'](), _0x58ac7a = 0x1; _0x58ac7a < _0x79e852['length']; _0x58ac7a++) _0x5c2558['push'](_0x79e852[_0x58ac7a]['subtract'](_0x79e852[0x0])['add'](_0x4561cd)); return new _0x489112(_0x5c2558); } , _0x489112['prototype']['_computeLength'] = function(_0x30f1a1) { for (var _0x121703 = 0x0, _0x4c026d = 0x1; _0x4c026d < _0x30f1a1['length']; _0x4c026d++) _0x121703 += _0x30f1a1[_0x4c026d]['subtract'](_0x30f1a1[_0x4c026d - 0x1])['length'](); return _0x121703; } , _0x489112; }() , _0x251d0b = function() { function _0x380c35(_0x148726, _0x54b55a) { void 0x0 === _0x148726 && (_0x148726 = _0x3fbe20['Zero']()), void 0x0 === _0x54b55a && (_0x54b55a = _0x3fbe20['Up']()), this['position'] = _0x148726, this['normal'] = _0x54b55a; } return _0x380c35['prototype']['clone'] = function() { return new _0x380c35(this['position']['clone'](),this['normal']['clone']()); } , _0x380c35; }() , _0x1a40e0 = function() { function _0x79d303(_0x5b0f6a, _0xf84458, _0x4e1523) { void 0x0 === _0x5b0f6a && (_0x5b0f6a = _0x3fbe20['Zero']()), void 0x0 === _0xf84458 && (_0xf84458 = _0x3fbe20['Up']()), void 0x0 === _0x4e1523 && (_0x4e1523 = _0x461b0a['Zero']()), this['position'] = _0x5b0f6a, this['normal'] = _0xf84458, this['uv'] = _0x4e1523; } return _0x79d303['prototype']['clone'] = function() { return new _0x79d303(this['position']['clone'](),this['normal']['clone'](),this['uv']['clone']()); } , _0x79d303; }() , _0x503241 = function() { function _0x5302f2() {} return _0x5302f2['Color3'] = _0x1528c3['a']['BuildArray'](0x3, _0x30c94a['Black']), _0x5302f2['Color4'] = _0x1528c3['a']['BuildArray'](0x3, function() { return new _0x3acf15(0x0,0x0,0x0,0x0); }), _0x5302f2['Vector2'] = _0x1528c3['a']['BuildArray'](0x3, _0x461b0a['Zero']), _0x5302f2['Vector3'] = _0x1528c3['a']['BuildArray'](0xd, _0x3fbe20['Zero']), _0x5302f2['Vector4'] = _0x1528c3['a']['BuildArray'](0x3, _0x298fee['Zero']), _0x5302f2['Quaternion'] = _0x1528c3['a']['BuildArray'](0x2, _0x897ad5['Zero']), _0x5302f2['Matrix'] = _0x1528c3['a']['BuildArray'](0x8, _0x5e57bc['Identity']), _0x5302f2; }() , _0x53a116 = function() { function _0x4dae3e() {} return _0x4dae3e['Vector3'] = _0x1528c3['a']['BuildArray'](0x6, _0x3fbe20['Zero']), _0x4dae3e['Matrix'] = _0x1528c3['a']['BuildArray'](0x2, _0x5e57bc['Identity']), _0x4dae3e['Quaternion'] = _0x1528c3['a']['BuildArray'](0x3, _0x897ad5['Zero']), _0x4dae3e; }(); } , function(_0x1ee7e7, _0x1b580e, _0xaa40ef) { 'use strict'; _0xaa40ef['d'](_0x1b580e, 'd', function() { return _0x3895cd; }), _0xaa40ef['d'](_0x1b580e, 'a', function() { return _0x1d4edb; }), _0xaa40ef['d'](_0x1b580e, 'c', function() { return _0x15a921; }), _0xaa40ef['d'](_0x1b580e, 'b', function() { return _0x5839d9; }), _0xaa40ef['d'](_0x1b580e, 'e', function() { return _0x5cb60d; }); var _0x36502e = function(_0x53e90d, _0x32f708) { return (_0x36502e = Object['setPrototypeOf'] || { '__proto__': [] }instanceof Array && function(_0x4e90d1, _0x3cf896) { _0x4e90d1['__proto__'] = _0x3cf896; } || function(_0x238d36, _0x3620a3) { for (var _0x447320 in _0x3620a3) _0x3620a3['hasOwnProperty'](_0x447320) && (_0x238d36[_0x447320] = _0x3620a3[_0x447320]); } )(_0x53e90d, _0x32f708); }; function _0x3895cd(_0xf4a5ad, _0x344846) { function _0x1aabcf() { this['constructor'] = _0xf4a5ad; } _0x36502e(_0xf4a5ad, _0x344846), _0xf4a5ad['prototype'] = null === _0x344846 ? Object['create'](_0x344846) : (_0x1aabcf['prototype'] = _0x344846['prototype'], new _0x1aabcf()); } var _0x1d4edb = function() { return (_0x1d4edb = Object['assign'] || function(_0x51eaca) { for (var _0x291b6e, _0x240d3b = 0x1, _0x367e0a = arguments['length']; _0x240d3b < _0x367e0a; _0x240d3b++) for (var _0x7243d9 in _0x291b6e = arguments[_0x240d3b]) Object['prototype']['hasOwnProperty']['call'](_0x291b6e, _0x7243d9) && (_0x51eaca[_0x7243d9] = _0x291b6e[_0x7243d9]); return _0x51eaca; } )['apply'](this, arguments); }; function _0x15a921(_0x4ec9c8, _0x56f125, _0x194314, _0x4fed38) { var _0x2d532, _0x311215 = arguments['length'], _0x3fe3c1 = _0x311215 < 0x3 ? _0x56f125 : null === _0x4fed38 ? _0x4fed38 = Object['getOwnPropertyDescriptor'](_0x56f125, _0x194314) : _0x4fed38; if ('object' == typeof Reflect && 'function' == typeof Reflect['decorate']) _0x3fe3c1 = Reflect['decorate'](_0x4ec9c8, _0x56f125, _0x194314, _0x4fed38); else for (var _0x1edf25 = _0x4ec9c8['length'] - 0x1; _0x1edf25 >= 0x0; _0x1edf25--) (_0x2d532 = _0x4ec9c8[_0x1edf25]) && (_0x3fe3c1 = (_0x311215 < 0x3 ? _0x2d532(_0x3fe3c1) : _0x311215 > 0x3 ? _0x2d532(_0x56f125, _0x194314, _0x3fe3c1) : _0x2d532(_0x56f125, _0x194314)) || _0x3fe3c1); return _0x311215 > 0x3 && _0x3fe3c1 && Object['defineProperty'](_0x56f125, _0x194314, _0x3fe3c1), _0x3fe3c1; } function _0x5839d9(_0x365464, _0x1213c7, _0x5b6811, _0x2d31b3) { return new (_0x5b6811 || (_0x5b6811 = Promise))(function(_0x382ef4, _0x39a6d6) { function _0xe20faa(_0x3392f3) { try { _0xac2dfe(_0x2d31b3['next'](_0x3392f3)); } catch (_0x2620e3) { _0x39a6d6(_0x2620e3); } } function _0x148b6e(_0xf6cf9f) { try { _0xac2dfe(_0x2d31b3['throw'](_0xf6cf9f)); } catch (_0x348410) { _0x39a6d6(_0x348410); } } function _0xac2dfe(_0x5cc7a5) { _0x5cc7a5['done'] ? _0x382ef4(_0x5cc7a5['value']) : new _0x5b6811(function(_0x31ce19) { _0x31ce19(_0x5cc7a5['value']); } )['then'](_0xe20faa, _0x148b6e); } _0xac2dfe((_0x2d31b3 = _0x2d31b3['apply'](_0x365464, _0x1213c7 || []))['next']()); } ); } function _0x5cb60d(_0x16ccdf, _0x19a431) { var _0x4216a0, _0x5d4322, _0x442dc5, _0x48f13c, _0x344e75 = { 'label': 0x0, 'sent': function() { if (0x1 & _0x442dc5[0x0]) throw _0x442dc5[0x1]; return _0x442dc5[0x1]; }, 'trys': [], 'ops': [] }; return _0x48f13c = { 'next': _0x8cfde2(0x0), 'throw': _0x8cfde2(0x1), 'return': _0x8cfde2(0x2) }, 'function' == typeof Symbol && (_0x48f13c[Symbol['iterator']] = function() { return this; } ), _0x48f13c; function _0x8cfde2(_0x275d20) { return function(_0x109002) { return function(_0xe589a) { if (_0x4216a0) throw new TypeError('Generator\x20is\x20already\x20executing.'); for (; _0x344e75; ) try { if (_0x4216a0 = 0x1, _0x5d4322 && (_0x442dc5 = 0x2 & _0xe589a[0x0] ? _0x5d4322['return'] : _0xe589a[0x0] ? _0x5d4322['throw'] || ((_0x442dc5 = _0x5d4322['return']) && _0x442dc5['call'](_0x5d4322), 0x0) : _0x5d4322['next']) && !(_0x442dc5 = _0x442dc5['call'](_0x5d4322, _0xe589a[0x1]))['done']) return _0x442dc5; switch (_0x5d4322 = 0x0, _0x442dc5 && (_0xe589a = [0x2 & _0xe589a[0x0], _0x442dc5['value']]), _0xe589a[0x0]) { case 0x0: case 0x1: _0x442dc5 = _0xe589a; break; case 0x4: return _0x344e75['label']++, { 'value': _0xe589a[0x1], 'done': !0x1 }; case 0x5: _0x344e75['label']++, _0x5d4322 = _0xe589a[0x1], _0xe589a = [0x0]; continue; case 0x7: _0xe589a = _0x344e75['ops']['pop'](), _0x344e75['trys']['pop'](); continue; default: if (!(_0x442dc5 = (_0x442dc5 = _0x344e75['trys'])['length'] > 0x0 && _0x442dc5[_0x442dc5['length'] - 0x1]) && (0x6 === _0xe589a[0x0] || 0x2 === _0xe589a[0x0])) { _0x344e75 = 0x0; continue; } if (0x3 === _0xe589a[0x0] && (!_0x442dc5 || _0xe589a[0x1] > _0x442dc5[0x0] && _0xe589a[0x1] < _0x442dc5[0x3])) { _0x344e75['label'] = _0xe589a[0x1]; break; } if (0x6 === _0xe589a[0x0] && _0x344e75['label'] < _0x442dc5[0x1]) { _0x344e75['label'] = _0x442dc5[0x1], _0x442dc5 = _0xe589a; break; } if (_0x442dc5 && _0x344e75['label'] < _0x442dc5[0x2]) { _0x344e75['label'] = _0x442dc5[0x2], _0x344e75['ops']['push'](_0xe589a); break; } _0x442dc5[0x2] && _0x344e75['ops']['pop'](), _0x344e75['trys']['pop'](); continue; } _0xe589a = _0x19a431['call'](_0x16ccdf, _0x344e75); } catch (_0x5c5d68) { _0xe589a = [0x6, _0x5c5d68], _0x5d4322 = 0x0; } finally { _0x4216a0 = _0x442dc5 = 0x0; } if (0x5 & _0xe589a[0x0]) throw _0xe589a[0x1]; return { 'value': _0xe589a[0x0] ? _0xe589a[0x1] : void 0x0, 'done': !0x0 }; }([_0x275d20, _0x109002]); } ; } } } , function(_0x52917b, _0x1fff53, _0x4edc04) { 'use strict'; _0x4edc04['d'](_0x1fff53, 'b', function() { return _0x2d3906; }), _0x4edc04['d'](_0x1fff53, 'c', function() { return _0x34d352; }), _0x4edc04['d'](_0x1fff53, 'm', function() { return _0x2437f4; }), _0x4edc04['d'](_0x1fff53, 'e', function() { return _0x226a27; }), _0x4edc04['d'](_0x1fff53, 'h', function() { return _0xaeb87d; }), _0x4edc04['d'](_0x1fff53, 'n', function() { return _0x252d33; }), _0x4edc04['d'](_0x1fff53, 'o', function() { return _0x3e9b80; }), _0x4edc04['d'](_0x1fff53, 'k', function() { return _0x5e47cf; }), _0x4edc04['d'](_0x1fff53, 'g', function() { return _0x3af95a; }), _0x4edc04['d'](_0x1fff53, 'f', function() { return _0x1cae37; }), _0x4edc04['d'](_0x1fff53, 'i', function() { return _0x4e5269; }), _0x4edc04['d'](_0x1fff53, 'l', function() { return _0x4aaf5a; }), _0x4edc04['d'](_0x1fff53, 'j', function() { return _0x4279cd; }), _0x4edc04['d'](_0x1fff53, 'd', function() { return _0x31a72b; }), _0x4edc04['d'](_0x1fff53, 'a', function() { return _0x189625; }); var _0x4725dc = _0x4edc04(0x1d) , _0x1b63dc = _0x4edc04(0x0) , _0x445abe = _0x4edc04(0x13) , _0xda6ab3 = {} , _0x46885e = {} , _0x2cebb2 = function(_0x398a2e, _0x1d9976, _0x507c43) { var _0x29a1e6 = _0x398a2e(); _0x4725dc['a'] && _0x4725dc['a']['AddTagsTo'](_0x29a1e6, _0x1d9976['tags']); var _0x1323fc = _0x4ed30f(_0x29a1e6); for (var _0x461768 in _0x1323fc) { var _0x31f1c5 = _0x1323fc[_0x461768] , _0x104949 = _0x1d9976[_0x461768] , _0x1f5b3c = _0x31f1c5['type']; if (null != _0x104949 && 'uniqueId' !== _0x461768) switch (_0x1f5b3c) { case 0x0: case 0x6: case 0xb: _0x29a1e6[_0x461768] = _0x104949; break; case 0x1: _0x29a1e6[_0x461768] = _0x507c43 || _0x104949['isRenderTarget'] ? _0x104949 : _0x104949['clone'](); break; case 0x2: case 0x3: case 0x4: case 0x5: case 0x7: case 0xa: case 0xc: _0x29a1e6[_0x461768] = _0x507c43 ? _0x104949 : _0x104949['clone'](); } } return _0x29a1e6; }; function _0x4ed30f(_0x44c842) { var _0x203b09 = _0x44c842['getClassName'](); if (_0x46885e[_0x203b09]) return _0x46885e[_0x203b09]; _0x46885e[_0x203b09] = {}; for (var _0x438409 = _0x46885e[_0x203b09], _0x5af7ed = _0x44c842, _0x3d18b1 = _0x203b09; _0x3d18b1; ) { var _0x14d832 = _0xda6ab3[_0x3d18b1]; for (var _0x362cc2 in _0x14d832) _0x438409[_0x362cc2] = _0x14d832[_0x362cc2]; var _0x43ca31 = void 0x0 , _0x43ab43 = !0x1; do { if (!(_0x43ca31 = Object['getPrototypeOf'](_0x5af7ed))['getClassName']) { _0x43ab43 = !0x0; break; } if (_0x43ca31['getClassName']() !== _0x3d18b1) break; _0x5af7ed = _0x43ca31; } while (_0x43ca31); if (_0x43ab43) break; _0x3d18b1 = _0x43ca31['getClassName'](), _0x5af7ed = _0x43ca31; } return _0x438409; } function _0x68bae3(_0x5008f3, _0x1b49a0) { return function(_0x343837, _0x4fff56) { var _0x14bdeb = function(_0x2c6a7b) { var _0x34c0d1 = _0x2c6a7b['getClassName'](); return _0xda6ab3[_0x34c0d1] || (_0xda6ab3[_0x34c0d1] = {}), _0xda6ab3[_0x34c0d1]; }(_0x343837); _0x14bdeb[_0x4fff56] || (_0x14bdeb[_0x4fff56] = { 'type': _0x5008f3, 'sourceName': _0x1b49a0 }); } ; } function _0x2d3906(_0x2e1f81, _0x4adef9) { return void 0x0 === _0x4adef9 && (_0x4adef9 = null), function(_0x3d121b, _0x45a65e) { return void 0x0 === _0x45a65e && (_0x45a65e = null), function(_0x3b7bbe, _0x6e0318) { var _0x1bcf27 = _0x45a65e || '_' + _0x6e0318; Object['defineProperty'](_0x3b7bbe, _0x6e0318, { 'get': function() { return this[_0x1bcf27]; }, 'set': function(_0x7da32a) { this[_0x1bcf27] !== _0x7da32a && (this[_0x1bcf27] = _0x7da32a, _0x3b7bbe[_0x3d121b]['apply'](this)); }, 'enumerable': !0x0, 'configurable': !0x0 }); } ; }(_0x2e1f81, _0x4adef9); } function _0x34d352(_0x1a4cfa) { return _0x68bae3(0x0, _0x1a4cfa); } function _0x2437f4(_0x4b8da4) { return _0x68bae3(0x1, _0x4b8da4); } function _0x226a27(_0x252a61) { return _0x68bae3(0x2, _0x252a61); } function _0xaeb87d(_0x4afe33) { return _0x68bae3(0x3, _0x4afe33); } function _0x252d33(_0x141be5) { return _0x68bae3(0x4, _0x141be5); } function _0x3e9b80(_0x568c25) { return _0x68bae3(0x5, _0x568c25); } function _0x5e47cf(_0x38c9ff) { return _0x68bae3(0x6, _0x38c9ff); } function _0x3af95a(_0x3e8645) { return _0x68bae3(0x7, _0x3e8645); } function _0x1cae37(_0x42f5b1) { return _0x68bae3(0x8, _0x42f5b1); } function _0x4e5269(_0xd47b30) { return _0x68bae3(0x9, _0xd47b30); } function _0x4aaf5a(_0x2a7eed) { return _0x68bae3(0xa, _0x2a7eed); } function _0x4279cd(_0x4573ca) { return _0x68bae3(0xc, _0x4573ca); } function _0x31a72b(_0x2adec7) { return _0x68bae3(0xb, _0x2adec7); } var _0x189625 = function() { function _0xcb0708() {} return _0xcb0708['AppendSerializedAnimations'] = function(_0x54533e, _0x26502e) { if (_0x54533e['animations']) { _0x26502e['animations'] = []; for (var _0x5e55a4 = 0x0; _0x5e55a4 < _0x54533e['animations']['length']; _0x5e55a4++) { var _0x163cc6 = _0x54533e['animations'][_0x5e55a4]; _0x26502e['animations']['push'](_0x163cc6['serialize']()); } } } , _0xcb0708['Serialize'] = function(_0x2891e9, _0x5895e4) { _0x5895e4 || (_0x5895e4 = {}), _0x4725dc['a'] && (_0x5895e4['tags'] = _0x4725dc['a']['GetTags'](_0x2891e9)); var _0x36f753 = _0x4ed30f(_0x2891e9); for (var _0x9e71d4 in _0x36f753) { var _0x13e11c = _0x36f753[_0x9e71d4] , _0xc4fbdc = _0x13e11c['sourceName'] || _0x9e71d4 , _0x4f99ae = _0x13e11c['type'] , _0x2514d3 = _0x2891e9[_0x9e71d4]; if (null != _0x2514d3) switch (_0x4f99ae) { case 0x0: _0x5895e4[_0xc4fbdc] = _0x2514d3; break; case 0x1: _0x5895e4[_0xc4fbdc] = _0x2514d3['serialize'](); break; case 0x2: _0x5895e4[_0xc4fbdc] = _0x2514d3['asArray'](); break; case 0x3: _0x5895e4[_0xc4fbdc] = _0x2514d3['serialize'](); break; case 0x4: case 0x5: _0x5895e4[_0xc4fbdc] = _0x2514d3['asArray'](); break; case 0x6: _0x5895e4[_0xc4fbdc] = _0x2514d3['id']; break; case 0x7: _0x5895e4[_0xc4fbdc] = _0x2514d3['serialize'](); break; case 0x8: _0x5895e4[_0xc4fbdc] = _0x2514d3['asArray'](); break; case 0x9: _0x5895e4[_0xc4fbdc] = _0x2514d3['serialize'](); break; case 0xa: _0x5895e4[_0xc4fbdc] = _0x2514d3['asArray'](); break; case 0xb: _0x5895e4[_0xc4fbdc] = _0x2514d3['id']; case 0xc: _0x5895e4[_0xc4fbdc] = _0x2514d3['asArray'](); } } return _0x5895e4; } , _0xcb0708['Parse'] = function(_0x176ec6, _0x2f3a0f, _0x1238b4, _0x54122f) { void 0x0 === _0x54122f && (_0x54122f = null); var _0xb99be2 = _0x176ec6(); _0x54122f || (_0x54122f = ''), _0x4725dc['a'] && _0x4725dc['a']['AddTagsTo'](_0xb99be2, _0x2f3a0f['tags']); var _0xaa1727 = _0x4ed30f(_0xb99be2); for (var _0x26e1a2 in _0xaa1727) { var _0x34a295 = _0xaa1727[_0x26e1a2] , _0x1b181b = _0x2f3a0f[_0x34a295['sourceName'] || _0x26e1a2] , _0x451718 = _0x34a295['type']; if (null != _0x1b181b) { var _0x407703 = _0xb99be2; switch (_0x451718) { case 0x0: _0x407703[_0x26e1a2] = _0x1b181b; break; case 0x1: _0x1238b4 && (_0x407703[_0x26e1a2] = _0xcb0708['_TextureParser'](_0x1b181b, _0x1238b4, _0x54122f)); break; case 0x2: _0x407703[_0x26e1a2] = _0x1b63dc['e']['FromArray'](_0x1b181b); break; case 0x3: _0x407703[_0x26e1a2] = _0xcb0708['_FresnelParametersParser'](_0x1b181b); break; case 0x4: _0x407703[_0x26e1a2] = _0x1b63dc['w']['FromArray'](_0x1b181b); break; case 0x5: _0x407703[_0x26e1a2] = _0x1b63dc['x']['FromArray'](_0x1b181b); break; case 0x6: _0x1238b4 && (_0x407703[_0x26e1a2] = _0x1238b4['getLastMeshByID'](_0x1b181b)); break; case 0x7: _0x407703[_0x26e1a2] = _0xcb0708['_ColorCurvesParser'](_0x1b181b); break; case 0x8: _0x407703[_0x26e1a2] = _0x1b63dc['f']['FromArray'](_0x1b181b); break; case 0x9: _0x407703[_0x26e1a2] = _0xcb0708['_ImageProcessingConfigurationParser'](_0x1b181b); break; case 0xa: _0x407703[_0x26e1a2] = _0x1b63dc['q']['FromArray'](_0x1b181b); break; case 0xb: _0x1238b4 && (_0x407703[_0x26e1a2] = _0x1238b4['getCameraByID'](_0x1b181b)); case 0xc: _0x407703[_0x26e1a2] = _0x1b63dc['j']['FromArray'](_0x1b181b); } } } return _0xb99be2; } , _0xcb0708['Clone'] = function(_0x534f69, _0x147eda) { return _0x2cebb2(_0x534f69, _0x147eda, !0x1); } , _0xcb0708['Instanciate'] = function(_0x349884, _0x10dd6d) { return _0x2cebb2(_0x349884, _0x10dd6d, !0x0); } , _0xcb0708['_ImageProcessingConfigurationParser'] = function(_0x30030a) { throw _0x445abe['a']['WarnImport']('ImageProcessingConfiguration'); } , _0xcb0708['_FresnelParametersParser'] = function(_0x21ad78) { throw _0x445abe['a']['WarnImport']('FresnelParameters'); } , _0xcb0708['_ColorCurvesParser'] = function(_0x2c07a4) { throw _0x445abe['a']['WarnImport']('ColorCurves'); } , _0xcb0708['_TextureParser'] = function(_0xf7618b, _0x56f081, _0x5f12f4) { throw _0x445abe['a']['WarnImport']('Texture'); } , _0xcb0708; }(); } , function(_0x57f133, _0x17ae95, _0x4f0ae2) { 'use strict'; _0x4f0ae2['d'](_0x17ae95, 'a', function() { return _0x4276c6; }); var _0x4276c6 = function() { function _0x47655e() {} return _0x47655e['ALPHA_DISABLE'] = 0x0, _0x47655e['ALPHA_ADD'] = 0x1, _0x47655e['ALPHA_COMBINE'] = 0x2, _0x47655e['ALPHA_SUBTRACT'] = 0x3, _0x47655e['ALPHA_MULTIPLY'] = 0x4, _0x47655e['ALPHA_MAXIMIZED'] = 0x5, _0x47655e['ALPHA_ONEONE'] = 0x6, _0x47655e['ALPHA_PREMULTIPLIED'] = 0x7, _0x47655e['ALPHA_PREMULTIPLIED_PORTERDUFF'] = 0x8, _0x47655e['ALPHA_INTERPOLATE'] = 0x9, _0x47655e['ALPHA_SCREENMODE'] = 0xa, _0x47655e['DELAYLOADSTATE_NONE'] = 0x0, _0x47655e['DELAYLOADSTATE_LOADED'] = 0x1, _0x47655e['DELAYLOADSTATE_LOADING'] = 0x2, _0x47655e['DELAYLOADSTATE_NOTLOADED'] = 0x4, _0x47655e['NEVER'] = 0x200, _0x47655e['ALWAYS'] = 0x207, _0x47655e['LESS'] = 0x201, _0x47655e['EQUAL'] = 0x202, _0x47655e['LEQUAL'] = 0x203, _0x47655e['GREATER'] = 0x204, _0x47655e['GEQUAL'] = 0x206, _0x47655e['NOTEQUAL'] = 0x205, _0x47655e['KEEP'] = 0x1e00, _0x47655e['REPLACE'] = 0x1e01, _0x47655e['INCR'] = 0x1e02, _0x47655e['DECR'] = 0x1e03, _0x47655e['INVERT'] = 0x150a, _0x47655e['INCR_WRAP'] = 0x8507, _0x47655e['DECR_WRAP'] = 0x8508, _0x47655e['TEXTURE_CLAMP_ADDRESSMODE'] = 0x0, _0x47655e['TEXTURE_WRAP_ADDRESSMODE'] = 0x1, _0x47655e['TEXTURE_MIRROR_ADDRESSMODE'] = 0x2, _0x47655e['TEXTUREFORMAT_ALPHA'] = 0x0, _0x47655e['TEXTUREFORMAT_LUMINANCE'] = 0x1, _0x47655e['TEXTUREFORMAT_LUMINANCE_ALPHA'] = 0x2, _0x47655e['TEXTUREFORMAT_RGB'] = 0x4, _0x47655e['TEXTUREFORMAT_RGBA'] = 0x5, _0x47655e['TEXTUREFORMAT_RED'] = 0x6, _0x47655e['TEXTUREFORMAT_R'] = 0x6, _0x47655e['TEXTUREFORMAT_RG'] = 0x7, _0x47655e['TEXTUREFORMAT_RED_INTEGER'] = 0x8, _0x47655e['TEXTUREFORMAT_R_INTEGER'] = 0x8, _0x47655e['TEXTUREFORMAT_RG_INTEGER'] = 0x9, _0x47655e['TEXTUREFORMAT_RGB_INTEGER'] = 0xa, _0x47655e['TEXTUREFORMAT_RGBA_INTEGER'] = 0xb, _0x47655e['TEXTURETYPE_UNSIGNED_BYTE'] = 0x0, _0x47655e['TEXTURETYPE_UNSIGNED_INT'] = 0x0, _0x47655e['TEXTURETYPE_FLOAT'] = 0x1, _0x47655e['TEXTURETYPE_HALF_FLOAT'] = 0x2, _0x47655e['TEXTURETYPE_BYTE'] = 0x3, _0x47655e['TEXTURETYPE_SHORT'] = 0x4, _0x47655e['TEXTURETYPE_UNSIGNED_SHORT'] = 0x5, _0x47655e['TEXTURETYPE_INT'] = 0x6, _0x47655e['TEXTURETYPE_UNSIGNED_INTEGER'] = 0x7, _0x47655e['TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4'] = 0x8, _0x47655e['TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1'] = 0x9, _0x47655e['TEXTURETYPE_UNSIGNED_SHORT_5_6_5'] = 0xa, _0x47655e['TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV'] = 0xb, _0x47655e['TEXTURETYPE_UNSIGNED_INT_24_8'] = 0xc, _0x47655e['TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV'] = 0xd, _0x47655e['TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV'] = 0xe, _0x47655e['TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV'] = 0xf, _0x47655e['TEXTURE_NEAREST_SAMPLINGMODE'] = 0x1, _0x47655e['TEXTURE_BILINEAR_SAMPLINGMODE'] = 0x2, _0x47655e['TEXTURE_TRILINEAR_SAMPLINGMODE'] = 0x3, _0x47655e['TEXTURE_NEAREST_NEAREST_MIPLINEAR'] = 0x1, _0x47655e['TEXTURE_LINEAR_LINEAR_MIPNEAREST'] = 0x2, _0x47655e['TEXTURE_LINEAR_LINEAR_MIPLINEAR'] = 0x3, _0x47655e['TEXTURE_NEAREST_NEAREST_MIPNEAREST'] = 0x4, _0x47655e['TEXTURE_NEAREST_LINEAR_MIPNEAREST'] = 0x5, _0x47655e['TEXTURE_NEAREST_LINEAR_MIPLINEAR'] = 0x6, _0x47655e['TEXTURE_NEAREST_LINEAR'] = 0x7, _0x47655e['TEXTURE_NEAREST_NEAREST'] = 0x8, _0x47655e['TEXTURE_LINEAR_NEAREST_MIPNEAREST'] = 0x9, _0x47655e['TEXTURE_LINEAR_NEAREST_MIPLINEAR'] = 0xa, _0x47655e['TEXTURE_LINEAR_LINEAR'] = 0xb, _0x47655e['TEXTURE_LINEAR_NEAREST'] = 0xc, _0x47655e['TEXTURE_EXPLICIT_MODE'] = 0x0, _0x47655e['TEXTURE_SPHERICAL_MODE'] = 0x1, _0x47655e['TEXTURE_PLANAR_MODE'] = 0x2, _0x47655e['TEXTURE_CUBIC_MODE'] = 0x3, _0x47655e['TEXTURE_PROJECTION_MODE'] = 0x4, _0x47655e['TEXTURE_SKYBOX_MODE'] = 0x5, _0x47655e['TEXTURE_INVCUBIC_MODE'] = 0x6, _0x47655e['TEXTURE_EQUIRECTANGULAR_MODE'] = 0x7, _0x47655e['TEXTURE_FIXED_EQUIRECTANGULAR_MODE'] = 0x8, _0x47655e['TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE'] = 0x9, _0x47655e['SCALEMODE_FLOOR'] = 0x1, _0x47655e['SCALEMODE_NEAREST'] = 0x2, _0x47655e['SCALEMODE_CEILING'] = 0x3, _0x47655e['MATERIAL_TextureDirtyFlag'] = 0x1, _0x47655e['MATERIAL_LightDirtyFlag'] = 0x2, _0x47655e['MATERIAL_FresnelDirtyFlag'] = 0x4, _0x47655e['MATERIAL_AttributesDirtyFlag'] = 0x8, _0x47655e['MATERIAL_MiscDirtyFlag'] = 0x10, _0x47655e['MATERIAL_AllDirtyFlag'] = 0x1f, _0x47655e['MATERIAL_TriangleFillMode'] = 0x0, _0x47655e['MATERIAL_WireFrameFillMode'] = 0x1, _0x47655e['MATERIAL_PointFillMode'] = 0x2, _0x47655e['MATERIAL_PointListDrawMode'] = 0x3, _0x47655e['MATERIAL_LineListDrawMode'] = 0x4, _0x47655e['MATERIAL_LineLoopDrawMode'] = 0x5, _0x47655e['MATERIAL_LineStripDrawMode'] = 0x6, _0x47655e['MATERIAL_TriangleStripDrawMode'] = 0x7, _0x47655e['MATERIAL_TriangleFanDrawMode'] = 0x8, _0x47655e['MATERIAL_ClockWiseSideOrientation'] = 0x0, _0x47655e['MATERIAL_CounterClockWiseSideOrientation'] = 0x1, _0x47655e['ACTION_NothingTrigger'] = 0x0, _0x47655e['ACTION_OnPickTrigger'] = 0x1, _0x47655e['ACTION_OnLeftPickTrigger'] = 0x2, _0x47655e['ACTION_OnRightPickTrigger'] = 0x3, _0x47655e['ACTION_OnCenterPickTrigger'] = 0x4, _0x47655e['ACTION_OnPickDownTrigger'] = 0x5, _0x47655e['ACTION_OnDoublePickTrigger'] = 0x6, _0x47655e['ACTION_OnPickUpTrigger'] = 0x7, _0x47655e['ACTION_OnPickOutTrigger'] = 0x10, _0x47655e['ACTION_OnLongPressTrigger'] = 0x8, _0x47655e['ACTION_OnPointerOverTrigger'] = 0x9, _0x47655e['ACTION_OnPointerOutTrigger'] = 0xa, _0x47655e['ACTION_OnEveryFrameTrigger'] = 0xb, _0x47655e['ACTION_OnIntersectionEnterTrigger'] = 0xc, _0x47655e['ACTION_OnIntersectionExitTrigger'] = 0xd, _0x47655e['ACTION_OnKeyDownTrigger'] = 0xe, _0x47655e['ACTION_OnKeyUpTrigger'] = 0xf, _0x47655e['PARTICLES_BILLBOARDMODE_Y'] = 0x2, _0x47655e['PARTICLES_BILLBOARDMODE_ALL'] = 0x7, _0x47655e['PARTICLES_BILLBOARDMODE_STRETCHED'] = 0x8, _0x47655e['PARTICLES_BaseAssetsUrl'] = 'https://assets.babylonjs.com/particles', _0x47655e['MESHES_CULLINGSTRATEGY_STANDARD'] = 0x0, _0x47655e['MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY'] = 0x1, _0x47655e['MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION'] = 0x2, _0x47655e['MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY'] = 0x3, _0x47655e['SCENELOADER_NO_LOGGING'] = 0x0, _0x47655e['SCENELOADER_MINIMAL_LOGGING'] = 0x1, _0x47655e['SCENELOADER_SUMMARY_LOGGING'] = 0x2, _0x47655e['SCENELOADER_DETAILED_LOGGING'] = 0x3, _0x47655e; }(); } , function(_0x397118, _0x228224, _0x33a343) { 'use strict'; _0x33a343['d'](_0x228224, 'a', function() { return _0x44f3ec; }), _0x33a343['d'](_0x228224, 'b', function() { return _0x18afc9; }); var _0x44f3ec = function() { function _0x4d1a30(_0xa4c053, _0x36f3fa, _0x1ad9d2, _0x15e52c, _0x2eabca, _0x15322c, _0x344927) { void 0x0 === _0x15e52c && (_0x15e52c = 0x0), void 0x0 === _0x2eabca && (_0x2eabca = !0x1), void 0x0 === _0x15322c && (_0x15322c = !0x1), void 0x0 === _0x344927 && (_0x344927 = !0x1), _0xa4c053['getScene'] ? this['_engine'] = _0xa4c053['getScene']()['getEngine']() : this['_engine'] = _0xa4c053, this['_updatable'] = _0x1ad9d2, this['_instanced'] = _0x15322c, this['_data'] = _0x36f3fa, this['byteStride'] = _0x344927 ? _0x15e52c : _0x15e52c * Float32Array['BYTES_PER_ELEMENT'], _0x2eabca || this['create'](); } return _0x4d1a30['prototype']['createVertexBuffer'] = function(_0x3cbe31, _0x36668c, _0x3089f2, _0x468793, _0x1c682c, _0x10400e) { void 0x0 === _0x10400e && (_0x10400e = !0x1); var _0x1ecbf5 = _0x10400e ? _0x36668c : _0x36668c * Float32Array['BYTES_PER_ELEMENT'] , _0x5a1dab = _0x468793 ? _0x10400e ? _0x468793 : _0x468793 * Float32Array['BYTES_PER_ELEMENT'] : this['byteStride']; return new _0x18afc9(this['_engine'],this,_0x3cbe31,this['_updatable'],!0x0,_0x5a1dab,void 0x0 === _0x1c682c ? this['_instanced'] : _0x1c682c,_0x1ecbf5,_0x3089f2,void 0x0,void 0x0,!0x0); } , _0x4d1a30['prototype']['isUpdatable'] = function() { return this['_updatable']; } , _0x4d1a30['prototype']['getData'] = function() { return this['_data']; } , _0x4d1a30['prototype']['getBuffer'] = function() { return this['_buffer']; } , _0x4d1a30['prototype']['getStrideSize'] = function() { return this['byteStride'] / Float32Array['BYTES_PER_ELEMENT']; } , _0x4d1a30['prototype']['create'] = function(_0x572fe6) { void 0x0 === _0x572fe6 && (_0x572fe6 = null), !_0x572fe6 && this['_buffer'] || (_0x572fe6 = _0x572fe6 || this['_data']) && (this['_buffer'] ? this['_updatable'] && (this['_engine']['updateDynamicVertexBuffer'](this['_buffer'], _0x572fe6), this['_data'] = _0x572fe6) : this['_updatable'] ? (this['_buffer'] = this['_engine']['createDynamicVertexBuffer'](_0x572fe6), this['_data'] = _0x572fe6) : this['_buffer'] = this['_engine']['createVertexBuffer'](_0x572fe6)); } , _0x4d1a30['prototype']['_rebuild'] = function() { this['_buffer'] = null, this['create'](this['_data']); } , _0x4d1a30['prototype']['update'] = function(_0x39be1a) { this['create'](_0x39be1a); } , _0x4d1a30['prototype']['updateDirectly'] = function(_0x1786e3, _0x51f800, _0x2866d3, _0x35478f) { void 0x0 === _0x35478f && (_0x35478f = !0x1), this['_buffer'] && this['_updatable'] && (this['_engine']['updateDynamicVertexBuffer'](this['_buffer'], _0x1786e3, _0x35478f ? _0x51f800 : _0x51f800 * Float32Array['BYTES_PER_ELEMENT'], _0x2866d3 ? _0x2866d3 * this['byteStride'] : void 0x0), this['_data'] = null); } , _0x4d1a30['prototype']['dispose'] = function() { this['_buffer'] && this['_engine']['_releaseBuffer'](this['_buffer']) && (this['_buffer'] = null); } , _0x4d1a30; }() , _0x18afc9 = function() { function _0x555f95(_0x53c908, _0xe291f5, _0x2e10f7, _0x10d34a, _0x4ba619, _0x552cae, _0x56ee97, _0x5c7be1, _0x493fe1, _0x2e5e09, _0x2937cc, _0xaaeb29) { if (void 0x0 === _0x2937cc && (_0x2937cc = !0x1), void 0x0 === _0xaaeb29 && (_0xaaeb29 = !0x1), _0xe291f5 instanceof _0x44f3ec ? (this['_buffer'] = _0xe291f5, this['_ownsBuffer'] = !0x1) : (this['_buffer'] = new _0x44f3ec(_0x53c908,_0xe291f5,_0x10d34a,_0x552cae,_0x4ba619,_0x56ee97,_0xaaeb29), this['_ownsBuffer'] = !0x0), this['_kind'] = _0x2e10f7, null == _0x2e5e09) { var _0x5b20e8 = this['getData'](); this['type'] = _0x555f95['FLOAT'], _0x5b20e8 instanceof Int8Array ? this['type'] = _0x555f95['BYTE'] : _0x5b20e8 instanceof Uint8Array ? this['type'] = _0x555f95['UNSIGNED_BYTE'] : _0x5b20e8 instanceof Int16Array ? this['type'] = _0x555f95['SHORT'] : _0x5b20e8 instanceof Uint16Array ? this['type'] = _0x555f95['UNSIGNED_SHORT'] : _0x5b20e8 instanceof Int32Array ? this['type'] = _0x555f95['INT'] : _0x5b20e8 instanceof Uint32Array && (this['type'] = _0x555f95['UNSIGNED_INT']); } else this['type'] = _0x2e5e09; var _0x1ed74d = _0x555f95['GetTypeByteLength'](this['type']); _0xaaeb29 ? (this['_size'] = _0x493fe1 || (_0x552cae ? _0x552cae / _0x1ed74d : _0x555f95['DeduceStride'](_0x2e10f7)), this['byteStride'] = _0x552cae || this['_buffer']['byteStride'] || this['_size'] * _0x1ed74d, this['byteOffset'] = _0x5c7be1 || 0x0) : (this['_size'] = _0x493fe1 || _0x552cae || _0x555f95['DeduceStride'](_0x2e10f7), this['byteStride'] = _0x552cae ? _0x552cae * _0x1ed74d : this['_buffer']['byteStride'] || this['_size'] * _0x1ed74d, this['byteOffset'] = (_0x5c7be1 || 0x0) * _0x1ed74d), this['normalized'] = _0x2937cc, this['_instanced'] = void 0x0 !== _0x56ee97 && _0x56ee97, this['_instanceDivisor'] = _0x56ee97 ? 0x1 : 0x0; } return Object['defineProperty'](_0x555f95['prototype'], 'instanceDivisor', { 'get': function() { return this['_instanceDivisor']; }, 'set': function(_0x2f0443) { this['_instanceDivisor'] = _0x2f0443, this['_instanced'] = 0x0 != _0x2f0443; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x555f95['prototype']['_rebuild'] = function() { this['_buffer'] && this['_buffer']['_rebuild'](); } , _0x555f95['prototype']['getKind'] = function() { return this['_kind']; } , _0x555f95['prototype']['isUpdatable'] = function() { return this['_buffer']['isUpdatable'](); } , _0x555f95['prototype']['getData'] = function() { return this['_buffer']['getData'](); } , _0x555f95['prototype']['getBuffer'] = function() { return this['_buffer']['getBuffer'](); } , _0x555f95['prototype']['getStrideSize'] = function() { return this['byteStride'] / _0x555f95['GetTypeByteLength'](this['type']); } , _0x555f95['prototype']['getOffset'] = function() { return this['byteOffset'] / _0x555f95['GetTypeByteLength'](this['type']); } , _0x555f95['prototype']['getSize'] = function() { return this['_size']; } , _0x555f95['prototype']['getIsInstanced'] = function() { return this['_instanced']; } , _0x555f95['prototype']['getInstanceDivisor'] = function() { return this['_instanceDivisor']; } , _0x555f95['prototype']['create'] = function(_0x421023) { this['_buffer']['create'](_0x421023); } , _0x555f95['prototype']['update'] = function(_0xeca118) { this['_buffer']['update'](_0xeca118); } , _0x555f95['prototype']['updateDirectly'] = function(_0x18e4a9, _0x102d8c, _0x344ee5) { void 0x0 === _0x344ee5 && (_0x344ee5 = !0x1), this['_buffer']['updateDirectly'](_0x18e4a9, _0x102d8c, void 0x0, _0x344ee5); } , _0x555f95['prototype']['dispose'] = function() { this['_ownsBuffer'] && this['_buffer']['dispose'](); } , _0x555f95['prototype']['forEach'] = function(_0x155d5d, _0x483f6d) { _0x555f95['ForEach'](this['_buffer']['getData'](), this['byteOffset'], this['byteStride'], this['_size'], this['type'], _0x155d5d, this['normalized'], _0x483f6d); } , _0x555f95['DeduceStride'] = function(_0x4fda75) { switch (_0x4fda75) { case _0x555f95['UVKind']: case _0x555f95['UV2Kind']: case _0x555f95['UV3Kind']: case _0x555f95['UV4Kind']: case _0x555f95['UV5Kind']: case _0x555f95['UV6Kind']: return 0x2; case _0x555f95['NormalKind']: case _0x555f95['PositionKind']: return 0x3; case _0x555f95['ColorKind']: case _0x555f95['MatricesIndicesKind']: case _0x555f95['MatricesIndicesExtraKind']: case _0x555f95['MatricesWeightsKind']: case _0x555f95['MatricesWeightsExtraKind']: case _0x555f95['TangentKind']: return 0x4; default: throw new Error('Invalid\x20kind\x20\x27' + _0x4fda75 + '\x27'); } } , _0x555f95['GetTypeByteLength'] = function(_0x56729c) { switch (_0x56729c) { case _0x555f95['BYTE']: case _0x555f95['UNSIGNED_BYTE']: return 0x1; case _0x555f95['SHORT']: case _0x555f95['UNSIGNED_SHORT']: return 0x2; case _0x555f95['INT']: case _0x555f95['FLOAT']: return 0x4; default: throw new Error('Invalid\x20type\x20\x27' + _0x56729c + '\x27'); } } , _0x555f95['ForEach'] = function(_0x4733ab, _0x51908b, _0x251b4c, _0x2a7d4d, _0x2ce0fb, _0x514b79, _0x3cea63, _0x5188d1) { if (_0x4733ab instanceof Array) for (var _0x310d21 = _0x51908b / 0x4, _0x4244c8 = _0x251b4c / 0x4, _0x2f465c = 0x0; _0x2f465c < _0x514b79; _0x2f465c += _0x2a7d4d) { for (var _0x286c3e = 0x0; _0x286c3e < _0x2a7d4d; _0x286c3e++) _0x5188d1(_0x4733ab[_0x310d21 + _0x286c3e], _0x2f465c + _0x286c3e); _0x310d21 += _0x4244c8; } else { var _0x1e80de = _0x4733ab instanceof ArrayBuffer ? new DataView(_0x4733ab) : new DataView(_0x4733ab['buffer'],_0x4733ab['byteOffset'],_0x4733ab['byteLength']) , _0x22aeb8 = _0x555f95['GetTypeByteLength'](_0x2ce0fb); for (_0x2f465c = 0x0; _0x2f465c < _0x514b79; _0x2f465c += _0x2a7d4d) { var _0x2d3b51 = _0x51908b; for (_0x286c3e = 0x0; _0x286c3e < _0x2a7d4d; _0x286c3e++) { _0x5188d1(_0x555f95['_GetFloatValue'](_0x1e80de, _0x2ce0fb, _0x2d3b51, _0x3cea63), _0x2f465c + _0x286c3e), _0x2d3b51 += _0x22aeb8; } _0x51908b += _0x251b4c; } } } , _0x555f95['_GetFloatValue'] = function(_0x454e38, _0x25caff, _0x27b3d7, _0x34a556) { switch (_0x25caff) { case _0x555f95['BYTE']: var _0x1a366b = _0x454e38['getInt8'](_0x27b3d7); return _0x34a556 && (_0x1a366b = Math['max'](_0x1a366b / 0x7f, -0x1)), _0x1a366b; case _0x555f95['UNSIGNED_BYTE']: _0x1a366b = _0x454e38['getUint8'](_0x27b3d7); return _0x34a556 && (_0x1a366b /= 0xff), _0x1a366b; case _0x555f95['SHORT']: _0x1a366b = _0x454e38['getInt16'](_0x27b3d7, !0x0); return _0x34a556 && (_0x1a366b = Math['max'](_0x1a366b / 0x3fff, -0x1)), _0x1a366b; case _0x555f95['UNSIGNED_SHORT']: _0x1a366b = _0x454e38['getUint16'](_0x27b3d7, !0x0); return _0x34a556 && (_0x1a366b /= 0xffff), _0x1a366b; case _0x555f95['FLOAT']: return _0x454e38['getFloat32'](_0x27b3d7, !0x0); default: throw new Error('Invalid\x20component\x20type\x20' + _0x25caff); } } , _0x555f95['BYTE'] = 0x1400, _0x555f95['UNSIGNED_BYTE'] = 0x1401, _0x555f95['SHORT'] = 0x1402, _0x555f95['UNSIGNED_SHORT'] = 0x1403, _0x555f95['INT'] = 0x1404, _0x555f95['UNSIGNED_INT'] = 0x1405, _0x555f95['FLOAT'] = 0x1406, _0x555f95['PositionKind'] = 'position', _0x555f95['NormalKind'] = 'normal', _0x555f95['TangentKind'] = 'tangent', _0x555f95['UVKind'] = 'uv', _0x555f95['UV2Kind'] = 'uv2', _0x555f95['UV3Kind'] = 'uv3', _0x555f95['UV4Kind'] = 'uv4', _0x555f95['UV5Kind'] = 'uv5', _0x555f95['UV6Kind'] = 'uv6', _0x555f95['ColorKind'] = 'color', _0x555f95['MatricesIndicesKind'] = 'matricesIndices', _0x555f95['MatricesWeightsKind'] = 'matricesWeights', _0x555f95['MatricesIndicesExtraKind'] = 'matricesIndicesExtra', _0x555f95['MatricesWeightsExtraKind'] = 'matricesWeightsExtra', _0x555f95; }(); } , function(_0x11453a, _0xb2de45, _0x289301) { 'use strict'; _0x289301['d'](_0xb2de45, 'c', function() { return _0x5572a4; }), _0x289301['d'](_0xb2de45, 'b', function() { return _0x3e8cfe; }), _0x289301['d'](_0xb2de45, 'a', function() { return _0x478f45; }); var _0x1a9947 = _0x289301(0x8) , _0x20a51e = _0x289301(0x3) , _0x1e8d1c = _0x289301(0x23) , _0x51f87d = _0x289301(0x6) , _0x5572a4 = function() { function _0x5843e3() { this['_defines'] = {}, this['_currentRank'] = 0x20, this['_maxRank'] = -0x1, this['_mesh'] = null; } return _0x5843e3['prototype']['unBindMesh'] = function() { this['_mesh'] = null; } , _0x5843e3['prototype']['addFallback'] = function(_0x28664d, _0x8c33ec) { this['_defines'][_0x28664d] || (_0x28664d < this['_currentRank'] && (this['_currentRank'] = _0x28664d), _0x28664d > this['_maxRank'] && (this['_maxRank'] = _0x28664d), this['_defines'][_0x28664d] = new Array()), this['_defines'][_0x28664d]['push'](_0x8c33ec); } , _0x5843e3['prototype']['addCPUSkinningFallback'] = function(_0x535daf, _0x573c87) { this['_mesh'] = _0x573c87, _0x535daf < this['_currentRank'] && (this['_currentRank'] = _0x535daf), _0x535daf > this['_maxRank'] && (this['_maxRank'] = _0x535daf); } , Object['defineProperty'](_0x5843e3['prototype'], 'isMoreFallbacks', { 'get': function() { return this['_currentRank'] <= this['_maxRank']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5843e3['prototype']['reduce'] = function(_0x3edd5c, _0x553dca) { if (this['_mesh'] && this['_mesh']['computeBonesUsingShaders'] && this['_mesh']['numBoneInfluencers'] > 0x0 && this['_mesh']['material']) { this['_mesh']['computeBonesUsingShaders'] = !0x1, _0x3edd5c = _0x3edd5c['replace']('#define\x20NUM_BONE_INFLUENCERS\x20' + this['_mesh']['numBoneInfluencers'], '#define\x20NUM_BONE_INFLUENCERS\x200'), _0x553dca['_bonesComputationForcedToCPU'] = !0x0; for (var _0x5bd35a = this['_mesh']['getScene'](), _0x2faade = 0x0; _0x2faade < _0x5bd35a['meshes']['length']; _0x2faade++) { var _0x5c1b6e = _0x5bd35a['meshes'][_0x2faade]; if (_0x5c1b6e['material'] && (_0x5c1b6e['computeBonesUsingShaders'] && 0x0 !== _0x5c1b6e['numBoneInfluencers'])) if (_0x5c1b6e['material']['getEffect']() === _0x553dca) _0x5c1b6e['computeBonesUsingShaders'] = !0x1; else if (_0x5c1b6e['subMeshes']) for (var _0x306028 = 0x0, _0x365276 = _0x5c1b6e['subMeshes']; _0x306028 < _0x365276['length']; _0x306028++) { if (_0x365276[_0x306028]['effect'] === _0x553dca) { _0x5c1b6e['computeBonesUsingShaders'] = !0x1; break; } } } } else { var _0x5cc23e = this['_defines'][this['_currentRank']]; if (_0x5cc23e) for (_0x2faade = 0x0; _0x2faade < _0x5cc23e['length']; _0x2faade++) _0x3edd5c = _0x3edd5c['replace']('#define\x20' + _0x5cc23e[_0x2faade], ''); this['_currentRank']++; } return _0x3edd5c; } , _0x5843e3; }() , _0x3e8cfe = function() { return function() {} ; }() , _0x478f45 = function() { function _0x39d1fb(_0x3372bd, _0x199c50, _0x311e29, _0x48bff4, _0x5d7cec, _0x295414, _0x3f8d63, _0x6ea91b, _0x2eb317, _0x3fa203) { var _0x2dda73, _0x2872c9, _0x19a86a = this; if (void 0x0 === _0x48bff4 && (_0x48bff4 = null), void 0x0 === _0x295414 && (_0x295414 = null), void 0x0 === _0x3f8d63 && (_0x3f8d63 = null), void 0x0 === _0x6ea91b && (_0x6ea91b = null), void 0x0 === _0x2eb317 && (_0x2eb317 = null), this['name'] = null, this['defines'] = '', this['onCompiled'] = null, this['onError'] = null, this['onBind'] = null, this['uniqueId'] = 0x0, this['onCompileObservable'] = new _0x1a9947['c'](), this['onErrorObservable'] = new _0x1a9947['c'](), this['_onBindObservable'] = null, this['_bonesComputationForcedToCPU'] = !0x1, this['_uniformBuffersNames'] = {}, this['_samplers'] = {}, this['_isReady'] = !0x1, this['_compilationError'] = '', this['_uniforms'] = {}, this['_key'] = '', this['_fallbacks'] = null, this['_vertexSourceCode'] = '', this['_fragmentSourceCode'] = '', this['_vertexSourceCodeOverride'] = '', this['_fragmentSourceCodeOverride'] = '', this['_transformFeedbackVaryings'] = null, this['_pipelineContext'] = null, this['_valueCache'] = {}, this['name'] = _0x3372bd, _0x199c50['attributes']) { var _0x3172cb = _0x199c50; if (this['_engine'] = _0x311e29, this['_attributesNames'] = _0x3172cb['attributes'], this['_uniformsNames'] = _0x3172cb['uniformsNames']['concat'](_0x3172cb['samplers']), this['_samplerList'] = _0x3172cb['samplers']['slice'](), this['defines'] = _0x3172cb['defines'], this['onError'] = _0x3172cb['onError'], this['onCompiled'] = _0x3172cb['onCompiled'], this['_fallbacks'] = _0x3172cb['fallbacks'], this['_indexParameters'] = _0x3172cb['indexParameters'], this['_transformFeedbackVaryings'] = _0x3172cb['transformFeedbackVaryings'], _0x3172cb['uniformBuffersNames']) for (var _0x14faa5 = 0x0; _0x14faa5 < _0x3172cb['uniformBuffersNames']['length']; _0x14faa5++) this['_uniformBuffersNames'][_0x3172cb['uniformBuffersNames'][_0x14faa5]] = _0x14faa5; } else this['_engine'] = _0x5d7cec, this['defines'] = null == _0x295414 ? '' : _0x295414, this['_uniformsNames'] = _0x311e29['concat'](_0x48bff4), this['_samplerList'] = _0x48bff4 ? _0x48bff4['slice']() : [], this['_attributesNames'] = _0x199c50, this['onError'] = _0x2eb317, this['onCompiled'] = _0x6ea91b, this['_indexParameters'] = _0x3fa203, this['_fallbacks'] = _0x3f8d63; this['uniqueId'] = _0x39d1fb['_uniqueIdSeed']++, _0x3372bd['vertexElement'] ? (_0x2dda73 = document['getElementById'](_0x3372bd['vertexElement'])) || (_0x2dda73 = _0x3372bd['vertexElement']) : _0x2dda73 = _0x3372bd['vertex'] || _0x3372bd, _0x3372bd['fragmentElement'] ? (_0x2872c9 = document['getElementById'](_0x3372bd['fragmentElement'])) || (_0x2872c9 = _0x3372bd['fragmentElement']) : _0x2872c9 = _0x3372bd['fragment'] || _0x3372bd, this['_loadVertexShader'](_0x2dda73, function(_0x1c89e5) { _0x19a86a['_processIncludes'](_0x1c89e5, function(_0x3c7b90) { _0x19a86a['_processShaderConversion'](_0x3c7b90, !0x1, function(_0x8853a7) { _0x19a86a['_loadFragmentShader'](_0x2872c9, function(_0x16623c) { _0x19a86a['_processIncludes'](_0x16623c, function(_0x529155) { _0x19a86a['_processShaderConversion'](_0x529155, !0x0, function(_0x26d009) { if (_0x3372bd) { var _0x409961 = _0x3372bd['vertexElement'] || _0x3372bd['vertex'] || _0x3372bd , _0x347af5 = _0x3372bd['fragmentElement'] || _0x3372bd['fragment'] || _0x3372bd; _0x19a86a['_vertexSourceCode'] = '#define\x20SHADER_NAME\x20vertex:' + _0x409961 + '\x0a' + _0x8853a7, _0x19a86a['_fragmentSourceCode'] = '#define\x20SHADER_NAME\x20fragment:' + _0x347af5 + '\x0a' + _0x26d009; } else _0x19a86a['_vertexSourceCode'] = _0x8853a7, _0x19a86a['_fragmentSourceCode'] = _0x26d009; _0x19a86a['_prepareEffect'](); }); }); }); }); }); }); } return Object['defineProperty'](_0x39d1fb['prototype'], 'onBindObservable', { 'get': function() { return this['_onBindObservable'] || (this['_onBindObservable'] = new _0x1a9947['c']()), this['_onBindObservable']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x39d1fb['prototype'], 'key', { 'get': function() { return this['_key']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x39d1fb['prototype']['isReady'] = function() { return !!this['_isReady'] || !!this['_pipelineContext'] && this['_pipelineContext']['isReady']; } , _0x39d1fb['prototype']['getEngine'] = function() { return this['_engine']; } , _0x39d1fb['prototype']['getPipelineContext'] = function() { return this['_pipelineContext']; } , _0x39d1fb['prototype']['getAttributesNames'] = function() { return this['_attributesNames']; } , _0x39d1fb['prototype']['getAttributeLocation'] = function(_0x5ab29a) { return this['_attributes'][_0x5ab29a]; } , _0x39d1fb['prototype']['getAttributeLocationByName'] = function(_0x1c91a3) { var _0x408171 = this['_attributesNames']['indexOf'](_0x1c91a3); return this['_attributes'][_0x408171]; } , _0x39d1fb['prototype']['getAttributesCount'] = function() { return this['_attributes']['length']; } , _0x39d1fb['prototype']['getUniformIndex'] = function(_0x351047) { return this['_uniformsNames']['indexOf'](_0x351047); } , _0x39d1fb['prototype']['getUniform'] = function(_0x325a6e) { return this['_uniforms'][_0x325a6e]; } , _0x39d1fb['prototype']['getSamplers'] = function() { return this['_samplerList']; } , _0x39d1fb['prototype']['getCompilationError'] = function() { return this['_compilationError']; } , _0x39d1fb['prototype']['executeWhenCompiled'] = function(_0x559ecd) { var _0x4d35af = this; this['isReady']() ? _0x559ecd(this) : (this['onCompileObservable']['add'](function(_0x39190e) { _0x559ecd(_0x39190e); }), this['_pipelineContext'] && !this['_pipelineContext']['isAsync'] || setTimeout(function() { _0x4d35af['_checkIsReady'](); }, 0x10)); } , _0x39d1fb['prototype']['_checkIsReady'] = function() { var _0x5a628c = this; this['isReady']() || setTimeout(function() { _0x5a628c['_checkIsReady'](); }, 0x10); } , _0x39d1fb['prototype']['_loadVertexShader'] = function(_0x4ed117, _0x1e69d8) { var _0x5bcd93; if (_0x1e8d1c['a']['IsWindowObjectExist']() && _0x4ed117 instanceof HTMLElement) return void _0x1e69d8(_0x1e8d1c['a']['GetDOMTextContent'](_0x4ed117)); 'base64:' !== _0x4ed117['substr'](0x0, 0x7) ? _0x39d1fb['ShadersStore'][_0x4ed117 + 'VertexShader'] ? _0x1e69d8(_0x39d1fb['ShadersStore'][_0x4ed117 + 'VertexShader']) : (_0x5bcd93 = '.' === _0x4ed117[0x0] || '/' === _0x4ed117[0x0] || _0x4ed117['indexOf']('http') > -0x1 ? _0x4ed117 : _0x39d1fb['ShadersRepository'] + _0x4ed117, this['_engine']['_loadFile'](_0x5bcd93 + '.vertex.fx', _0x1e69d8)) : _0x1e69d8(window['atob'](_0x4ed117['substr'](0x7))); } , _0x39d1fb['prototype']['_loadFragmentShader'] = function(_0x1bb300, _0x2eb39e) { var _0x267ca8; if (_0x1e8d1c['a']['IsWindowObjectExist']() && _0x1bb300 instanceof HTMLElement) return void _0x2eb39e(_0x1e8d1c['a']['GetDOMTextContent'](_0x1bb300)); 'base64:' !== _0x1bb300['substr'](0x0, 0x7) ? _0x39d1fb['ShadersStore'][_0x1bb300 + 'PixelShader'] ? _0x2eb39e(_0x39d1fb['ShadersStore'][_0x1bb300 + 'PixelShader']) : _0x39d1fb['ShadersStore'][_0x1bb300 + 'FragmentShader'] ? _0x2eb39e(_0x39d1fb['ShadersStore'][_0x1bb300 + 'FragmentShader']) : (_0x267ca8 = '.' === _0x1bb300[0x0] || '/' === _0x1bb300[0x0] || _0x1bb300['indexOf']('http') > -0x1 ? _0x1bb300 : _0x39d1fb['ShadersRepository'] + _0x1bb300, this['_engine']['_loadFile'](_0x267ca8 + '.fragment.fx', _0x2eb39e)) : _0x2eb39e(window['atob'](_0x1bb300['substr'](0x7))); } , _0x39d1fb['prototype']['_dumpShadersSource'] = function(_0x220bff, _0x189057, _0x3e78a4) { var _0x526041 = (this['_engine']['webGLVersion'] > 0x1 ? '#version\x20300\x20es\x0a#define\x20WEBGL2\x20\x0a' : '') + (_0x3e78a4 ? _0x3e78a4 + '\x0a' : ''); _0x189057 = _0x526041 + _0x189057; var _0xcd9046 = 0x2 , _0x353338 = /\n/gm , _0x6abd3d = '\x0a1\x09' + (_0x220bff = _0x526041 + _0x220bff)['replace'](_0x353338, function() { return '\x0a' + _0xcd9046++ + '\x09'; }); _0xcd9046 = 0x2; var _0x4ee123 = '\x0a1\x09' + _0x189057['replace'](_0x353338, function() { return '\x0a' + _0xcd9046++ + '\x09'; }); this['name']['vertexElement'] ? (_0x51f87d['a']['Error']('Vertex\x20shader:\x20' + this['name']['vertexElement'] + _0x6abd3d), _0x51f87d['a']['Error']('Fragment\x20shader:\x20' + this['name']['fragmentElement'] + _0x4ee123)) : this['name']['vertex'] ? (_0x51f87d['a']['Error']('Vertex\x20shader:\x20' + this['name']['vertex'] + _0x6abd3d), _0x51f87d['a']['Error']('Fragment\x20shader:\x20' + this['name']['fragment'] + _0x4ee123)) : (_0x51f87d['a']['Error']('Vertex\x20shader:\x20' + this['name'] + _0x6abd3d), _0x51f87d['a']['Error']('Fragment\x20shader:\x20' + this['name'] + _0x4ee123)); } , _0x39d1fb['prototype']['_processShaderConversion'] = function(_0x3d9183, _0x3ae77b, _0x1541a7) { var _0x3d63ac = this['_processPrecision'](_0x3d9183); if (0x1 != this['_engine']['webGLVersion']) if (-0x1 === _0x3d63ac['indexOf']('#version\x203')) { var _0x275251 = -0x1 !== _0x3d63ac['search'](/#extension.+GL_EXT_draw_buffers.+require/) , _0x3bcb7d = _0x3d63ac['replace'](/#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g, ''); _0x3bcb7d = (_0x3bcb7d = (_0x3bcb7d = (_0x3bcb7d = _0x3bcb7d['replace'](/varying(?![\n\r])\s/g, _0x3ae77b ? 'in\x20' : 'out\x20'))['replace'](/attribute[ \t]/g, 'in\x20'))['replace'](/[ \t]attribute/g, '\x20in'))['replace'](/texture2D\s*\(/g, 'texture('), _0x3ae77b && (_0x3bcb7d = (_0x3bcb7d = (_0x3bcb7d = (_0x3bcb7d = (_0x3bcb7d = (_0x3bcb7d = (_0x3bcb7d = _0x3bcb7d['replace'](/texture2DLodEXT\s*\(/g, 'textureLod('))['replace'](/textureCubeLodEXT\s*\(/g, 'textureLod('))['replace'](/textureCube\s*\(/g, 'texture('))['replace'](/gl_FragDepthEXT/g, 'gl_FragDepth'))['replace'](/gl_FragColor/g, 'glFragColor'))['replace'](/gl_FragData/g, 'glFragData'))['replace'](/void\s+?main\s*\(/g, (_0x275251 ? '' : 'out\x20vec4\x20glFragColor;\x0a') + 'void\x20main(')), -0x1 !== this['defines']['indexOf']('#define\x20MULTIVIEW\x0a') && !_0x3ae77b && (_0x3bcb7d = '#extension\x20GL_OVR_multiview2\x20:\x20require\x0alayout\x20(num_views\x20=\x202)\x20in;\x0a' + _0x3bcb7d), _0x1541a7(_0x3bcb7d); } else _0x1541a7(_0x3d63ac['replace']('#version\x20300\x20es', '')); else _0x1541a7(_0x3d63ac); } , _0x39d1fb['prototype']['_processIncludes'] = function(_0x47e079, _0x127800) { for (var _0x36d07a = this, _0x15e472 = /#include<(.+)>(\((.*)\))*(\[(.*)\])*/g, _0x2940ec = _0x15e472['exec'](_0x47e079), _0x1c2fdc = new String(_0x47e079); null != _0x2940ec; ) { var _0x2669ae = _0x2940ec[0x1]; if (-0x1 !== _0x2669ae['indexOf']('__decl__') && (_0x2669ae = _0x2669ae['replace'](/__decl__/, ''), this['_engine']['supportsUniformBuffers'] && (_0x2669ae = (_0x2669ae = _0x2669ae['replace'](/Vertex/, 'Ubo'))['replace'](/Fragment/, 'Ubo')), _0x2669ae += 'Declaration'), !_0x39d1fb['IncludesShadersStore'][_0x2669ae]) { var _0x2b2c7f = _0x39d1fb['ShadersRepository'] + 'ShadersInclude/' + _0x2669ae + '.fx'; return void this['_engine']['_loadFile'](_0x2b2c7f, function(_0x8079db) { _0x39d1fb['IncludesShadersStore'][_0x2669ae] = _0x8079db, _0x36d07a['_processIncludes'](_0x1c2fdc, _0x127800); }); } var _0x480773 = _0x39d1fb['IncludesShadersStore'][_0x2669ae]; if (_0x2940ec[0x2]) for (var _0x230616 = _0x2940ec[0x3]['split'](','), _0x10e027 = 0x0; _0x10e027 < _0x230616['length']; _0x10e027 += 0x2) { var _0x3445ed = new RegExp(_0x230616[_0x10e027],'g') , _0x32eb47 = _0x230616[_0x10e027 + 0x1]; _0x480773 = _0x480773['replace'](_0x3445ed, _0x32eb47); } if (_0x2940ec[0x4]) { var _0x30c47a = _0x2940ec[0x5]; if (-0x1 !== _0x30c47a['indexOf']('..')) { var _0x10d390 = _0x30c47a['split']('..') , _0x21fcde = parseInt(_0x10d390[0x0]) , _0x13e5c2 = parseInt(_0x10d390[0x1]) , _0x5ce630 = _0x480773['slice'](0x0); _0x480773 = '', isNaN(_0x13e5c2) && (_0x13e5c2 = this['_indexParameters'][_0x10d390[0x1]]); for (var _0x137474 = _0x21fcde; _0x137474 < _0x13e5c2; _0x137474++) this['_engine']['supportsUniformBuffers'] || (_0x5ce630 = _0x5ce630['replace'](/light\{X\}.(\w*)/g, function(_0x59b2f3, _0x2d459c) { return _0x2d459c + '{X}'; })), _0x480773 += _0x5ce630['replace'](/\{X\}/g, _0x137474['toString']()) + '\x0a'; } else this['_engine']['supportsUniformBuffers'] || (_0x480773 = _0x480773['replace'](/light\{X\}.(\w*)/g, function(_0xedac8e, _0x1032e1) { return _0x1032e1 + '{X}'; })), _0x480773 = _0x480773['replace'](/\{X\}/g, _0x30c47a); } _0x1c2fdc = _0x1c2fdc['replace'](_0x2940ec[0x0], _0x480773), _0x2940ec = _0x15e472['exec'](_0x47e079); } _0x127800(_0x1c2fdc); } , _0x39d1fb['prototype']['_processPrecision'] = function(_0x3367c2) { var _0x338535 = this['_engine']['_shouldUseHighPrecisionShader']; return -0x1 === _0x3367c2['indexOf']('precision\x20highp\x20float') ? _0x3367c2 = _0x338535 ? 'precision\x20highp\x20float;\x0a' + _0x3367c2 : 'precision\x20mediump\x20float;\x0a' + _0x3367c2 : _0x338535 || (_0x3367c2 = _0x3367c2['replace']('precision\x20highp\x20float', 'precision\x20mediump\x20float')), _0x3367c2; } , _0x39d1fb['prototype']['_rebuildProgram'] = function(_0x5eb77d, _0x23edb1, _0x4301c9, _0x13b141) { var _0x4dabd4 = this; this['_isReady'] = !0x1, this['_vertexSourceCodeOverride'] = _0x5eb77d, this['_fragmentSourceCodeOverride'] = _0x23edb1, this['onError'] = function(_0x4b3b08, _0x4d2338) { _0x13b141 && _0x13b141(_0x4d2338); } , this['onCompiled'] = function() { for (var _0x2b07cb = _0x4dabd4['getEngine']()['scenes'], _0x1c47ed = 0x0; _0x1c47ed < _0x2b07cb['length']; _0x1c47ed++) _0x2b07cb[_0x1c47ed]['markAllMaterialsAsDirty'](_0x20a51e['a']['MATERIAL_AllDirtyFlag']); _0x4dabd4['_pipelineContext']['_handlesSpectorRebuildCallback'](_0x4301c9); } , this['_fallbacks'] = null, this['_prepareEffect'](); } , _0x39d1fb['prototype']['_prepareEffect'] = function() { var _0x34c23c = this , _0x2df6d1 = this['_attributesNames'] , _0x12f3bd = this['defines'] , _0x5ea16b = this['_fallbacks']; this['_valueCache'] = {}; var _0x2c04ae = this['_pipelineContext']; try { var _0x3b7cb4 = this['_engine']; this['_pipelineContext'] = _0x3b7cb4['createPipelineContext'](); var _0x566d95 = this['_rebuildProgram']['bind'](this); this['_vertexSourceCodeOverride'] && this['_fragmentSourceCodeOverride'] ? _0x3b7cb4['_preparePipelineContext'](this['_pipelineContext'], this['_vertexSourceCodeOverride'], this['_fragmentSourceCodeOverride'], !0x0, _0x566d95, null, this['_transformFeedbackVaryings']) : _0x3b7cb4['_preparePipelineContext'](this['_pipelineContext'], this['_vertexSourceCode'], this['_fragmentSourceCode'], !0x1, _0x566d95, _0x12f3bd, this['_transformFeedbackVaryings']), _0x3b7cb4['_executeWhenRenderingStateIsCompiled'](this['_pipelineContext'], function() { if (_0x3b7cb4['supportsUniformBuffers']) for (var _0x199d28 in _0x34c23c['_uniformBuffersNames']) _0x34c23c['bindUniformBlock'](_0x199d28, _0x34c23c['_uniformBuffersNames'][_0x199d28]); var _0x2fd5fe; for (_0x3b7cb4['getUniforms'](_0x34c23c['_pipelineContext'], _0x34c23c['_uniformsNames'])['forEach'](function(_0x48e30b, _0x24c56e) { _0x34c23c['_uniforms'][_0x34c23c['_uniformsNames'][_0x24c56e]] = _0x48e30b; }), _0x34c23c['_attributes'] = _0x3b7cb4['getAttributes'](_0x34c23c['_pipelineContext'], _0x2df6d1), _0x2fd5fe = 0x0; _0x2fd5fe < _0x34c23c['_samplerList']['length']; _0x2fd5fe++) { null == _0x34c23c['getUniform'](_0x34c23c['_samplerList'][_0x2fd5fe]) && (_0x34c23c['_samplerList']['splice'](_0x2fd5fe, 0x1), _0x2fd5fe--); } _0x34c23c['_samplerList']['forEach'](function(_0x567200, _0xe8102f) { _0x34c23c['_samplers'][_0x567200] = _0xe8102f; }), _0x3b7cb4['bindSamplers'](_0x34c23c), _0x34c23c['_compilationError'] = '', _0x34c23c['_isReady'] = !0x0, _0x34c23c['onCompiled'] && _0x34c23c['onCompiled'](_0x34c23c), _0x34c23c['onCompileObservable']['notifyObservers'](_0x34c23c), _0x34c23c['onCompileObservable']['clear'](), _0x34c23c['_fallbacks'] && _0x34c23c['_fallbacks']['unBindMesh'](), _0x2c04ae && _0x34c23c['getEngine']()['_deletePipelineContext'](_0x2c04ae); }), this['_pipelineContext']['isAsync'] && this['_checkIsReady'](); } catch (_0x1542d3) { this['_compilationError'] = _0x1542d3['message'], _0x51f87d['a']['Error']('Unable\x20to\x20compile\x20effect:'), _0x51f87d['a']['Error']('Uniforms:\x20' + this['_uniformsNames']['map'](function(_0x3bf66a) { return '\x20' + _0x3bf66a; })), _0x51f87d['a']['Error']('Attributes:\x20' + _0x2df6d1['map'](function(_0x17e3eb) { return '\x20' + _0x17e3eb; })), _0x51f87d['a']['Error']('Error:\x20' + this['_compilationError']), _0x2c04ae && (this['_pipelineContext'] = _0x2c04ae, this['_isReady'] = !0x0, this['onError'] && this['onError'](this, this['_compilationError']), this['onErrorObservable']['notifyObservers'](this)), _0x5ea16b && _0x5ea16b['isMoreFallbacks'] ? (_0x51f87d['a']['Error']('Trying\x20next\x20fallback.'), this['defines'] = _0x5ea16b['reduce'](this['defines'], this), this['_prepareEffect']()) : (this['onError'] && this['onError'](this, this['_compilationError']), this['onErrorObservable']['notifyObservers'](this), this['onErrorObservable']['clear'](), this['_fallbacks'] && this['_fallbacks']['unBindMesh']()); } } , Object['defineProperty'](_0x39d1fb['prototype'], 'isSupported', { 'get': function() { return '' === this['_compilationError']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x39d1fb['prototype']['_bindTexture'] = function(_0x595b95, _0x5a6dd9) { this['_engine']['_bindTexture'](this['_samplers'][_0x595b95], _0x5a6dd9); } , _0x39d1fb['prototype']['setTexture'] = function(_0xc4fec2, _0x1fbec5) { this['_engine']['setTexture'](this['_samplers'][_0xc4fec2], this['_uniforms'][_0xc4fec2], _0x1fbec5); } , _0x39d1fb['prototype']['setDepthStencilTexture'] = function(_0x1ce0fe, _0x1648c6) { this['_engine']['setDepthStencilTexture'](this['_samplers'][_0x1ce0fe], this['_uniforms'][_0x1ce0fe], _0x1648c6); } , _0x39d1fb['prototype']['setTextureArray'] = function(_0x4455ae, _0x149db3) { var _0x3377ad = _0x4455ae + 'Ex'; if (-0x1 === this['_samplerList']['indexOf'](_0x3377ad)) for (var _0x28b544 = this['_samplers'][_0x4455ae], _0x1c41c6 = 0x1; _0x1c41c6 < _0x149db3['length']; _0x1c41c6++) this['_samplerList']['splice'](_0x28b544 + _0x1c41c6, 0x0, _0x3377ad), this['_samplers'][_0x3377ad] = _0x28b544 + _0x1c41c6; this['_engine']['setTextureArray'](this['_samplers'][_0x4455ae], this['_uniforms'][_0x4455ae], _0x149db3); } , _0x39d1fb['prototype']['setTextureFromPostProcess'] = function(_0x460372, _0x477caa) { this['_engine']['setTextureFromPostProcess'](this['_samplers'][_0x460372], _0x477caa); } , _0x39d1fb['prototype']['setTextureFromPostProcessOutput'] = function(_0x23fea4, _0x5d4186) { this['_engine']['setTextureFromPostProcessOutput'](this['_samplers'][_0x23fea4], _0x5d4186); } , _0x39d1fb['prototype']['_cacheMatrix'] = function(_0x2dfa44, _0x4959e6) { var _0x5edab7 = this['_valueCache'][_0x2dfa44] , _0x2fac51 = _0x4959e6['updateFlag']; return (void 0x0 === _0x5edab7 || _0x5edab7 !== _0x2fac51) && (this['_valueCache'][_0x2dfa44] = _0x2fac51, !0x0); } , _0x39d1fb['prototype']['_cacheFloat2'] = function(_0x1203cd, _0x3aed5e, _0x59f2d6) { var _0x2bc195 = this['_valueCache'][_0x1203cd]; if (!_0x2bc195) return _0x2bc195 = [_0x3aed5e, _0x59f2d6], this['_valueCache'][_0x1203cd] = _0x2bc195, !0x0; var _0x16e4d5 = !0x1; return _0x2bc195[0x0] !== _0x3aed5e && (_0x2bc195[0x0] = _0x3aed5e, _0x16e4d5 = !0x0), _0x2bc195[0x1] !== _0x59f2d6 && (_0x2bc195[0x1] = _0x59f2d6, _0x16e4d5 = !0x0), _0x16e4d5; } , _0x39d1fb['prototype']['_cacheFloat3'] = function(_0x56f450, _0x1ad5df, _0x37cae8, _0x43c00f) { var _0xd2036c = this['_valueCache'][_0x56f450]; if (!_0xd2036c) return _0xd2036c = [_0x1ad5df, _0x37cae8, _0x43c00f], this['_valueCache'][_0x56f450] = _0xd2036c, !0x0; var _0x6c5014 = !0x1; return _0xd2036c[0x0] !== _0x1ad5df && (_0xd2036c[0x0] = _0x1ad5df, _0x6c5014 = !0x0), _0xd2036c[0x1] !== _0x37cae8 && (_0xd2036c[0x1] = _0x37cae8, _0x6c5014 = !0x0), _0xd2036c[0x2] !== _0x43c00f && (_0xd2036c[0x2] = _0x43c00f, _0x6c5014 = !0x0), _0x6c5014; } , _0x39d1fb['prototype']['_cacheFloat4'] = function(_0xc1abe0, _0x3f75b0, _0x7a4399, _0x27b3d4, _0x117a71) { var _0x1d5086 = this['_valueCache'][_0xc1abe0]; if (!_0x1d5086) return _0x1d5086 = [_0x3f75b0, _0x7a4399, _0x27b3d4, _0x117a71], this['_valueCache'][_0xc1abe0] = _0x1d5086, !0x0; var _0x246bd1 = !0x1; return _0x1d5086[0x0] !== _0x3f75b0 && (_0x1d5086[0x0] = _0x3f75b0, _0x246bd1 = !0x0), _0x1d5086[0x1] !== _0x7a4399 && (_0x1d5086[0x1] = _0x7a4399, _0x246bd1 = !0x0), _0x1d5086[0x2] !== _0x27b3d4 && (_0x1d5086[0x2] = _0x27b3d4, _0x246bd1 = !0x0), _0x1d5086[0x3] !== _0x117a71 && (_0x1d5086[0x3] = _0x117a71, _0x246bd1 = !0x0), _0x246bd1; } , _0x39d1fb['prototype']['bindUniformBuffer'] = function(_0x2c0016, _0x1afbe2) { var _0x46d00f = this['_uniformBuffersNames'][_0x1afbe2]; void 0x0 !== _0x46d00f && _0x39d1fb['_baseCache'][_0x46d00f] !== _0x2c0016 && (_0x39d1fb['_baseCache'][_0x46d00f] = _0x2c0016, this['_engine']['bindUniformBufferBase'](_0x2c0016, _0x46d00f)); } , _0x39d1fb['prototype']['bindUniformBlock'] = function(_0x320cc3, _0x53f9e3) { this['_engine']['bindUniformBlock'](this['_pipelineContext'], _0x320cc3, _0x53f9e3); } , _0x39d1fb['prototype']['setInt'] = function(_0x4b824a, _0x1695d5) { var _0x1c8cf2 = this['_valueCache'][_0x4b824a]; return void 0x0 !== _0x1c8cf2 && _0x1c8cf2 === _0x1695d5 ? this : (this['_valueCache'][_0x4b824a] = _0x1695d5, this['_engine']['setInt'](this['_uniforms'][_0x4b824a], _0x1695d5), this); } , _0x39d1fb['prototype']['setIntArray'] = function(_0x21c37b, _0x118b98) { return this['_valueCache'][_0x21c37b] = null, this['_engine']['setIntArray'](this['_uniforms'][_0x21c37b], _0x118b98), this; } , _0x39d1fb['prototype']['setIntArray2'] = function(_0x32a20f, _0x30fb68) { return this['_valueCache'][_0x32a20f] = null, this['_engine']['setIntArray2'](this['_uniforms'][_0x32a20f], _0x30fb68), this; } , _0x39d1fb['prototype']['setIntArray3'] = function(_0x490e62, _0x3e19a9) { return this['_valueCache'][_0x490e62] = null, this['_engine']['setIntArray3'](this['_uniforms'][_0x490e62], _0x3e19a9), this; } , _0x39d1fb['prototype']['setIntArray4'] = function(_0x2b8549, _0x46712e) { return this['_valueCache'][_0x2b8549] = null, this['_engine']['setIntArray4'](this['_uniforms'][_0x2b8549], _0x46712e), this; } , _0x39d1fb['prototype']['setFloatArray'] = function(_0xe59523, _0x4fa1e6) { return this['_valueCache'][_0xe59523] = null, this['_engine']['setFloatArray'](this['_uniforms'][_0xe59523], _0x4fa1e6), this; } , _0x39d1fb['prototype']['setFloatArray2'] = function(_0x6a138, _0x9fe321) { return this['_valueCache'][_0x6a138] = null, this['_engine']['setFloatArray2'](this['_uniforms'][_0x6a138], _0x9fe321), this; } , _0x39d1fb['prototype']['setFloatArray3'] = function(_0x4b2a43, _0xf2143d) { return this['_valueCache'][_0x4b2a43] = null, this['_engine']['setFloatArray3'](this['_uniforms'][_0x4b2a43], _0xf2143d), this; } , _0x39d1fb['prototype']['setFloatArray4'] = function(_0x3af40b, _0x34bf0e) { return this['_valueCache'][_0x3af40b] = null, this['_engine']['setFloatArray4'](this['_uniforms'][_0x3af40b], _0x34bf0e), this; } , _0x39d1fb['prototype']['setArray'] = function(_0x48b964, _0x3160d2) { return this['_valueCache'][_0x48b964] = null, this['_engine']['setArray'](this['_uniforms'][_0x48b964], _0x3160d2), this; } , _0x39d1fb['prototype']['setArray2'] = function(_0x1573ad, _0x455ab2) { return this['_valueCache'][_0x1573ad] = null, this['_engine']['setArray2'](this['_uniforms'][_0x1573ad], _0x455ab2), this; } , _0x39d1fb['prototype']['setArray3'] = function(_0x3affd, _0x4900ff) { return this['_valueCache'][_0x3affd] = null, this['_engine']['setArray3'](this['_uniforms'][_0x3affd], _0x4900ff), this; } , _0x39d1fb['prototype']['setArray4'] = function(_0x3d8da0, _0x155a4c) { return this['_valueCache'][_0x3d8da0] = null, this['_engine']['setArray4'](this['_uniforms'][_0x3d8da0], _0x155a4c), this; } , _0x39d1fb['prototype']['setMatrices'] = function(_0x272a28, _0x2959d5) { return _0x2959d5 ? (this['_valueCache'][_0x272a28] = null, this['_engine']['setMatrices'](this['_uniforms'][_0x272a28], _0x2959d5), this) : this; } , _0x39d1fb['prototype']['setMatrix'] = function(_0x2cd56b, _0x460144) { return this['_cacheMatrix'](_0x2cd56b, _0x460144) && this['_engine']['setMatrix'](this['_uniforms'][_0x2cd56b], _0x460144), this; } , _0x39d1fb['prototype']['setMatrix3x3'] = function(_0x45af8e, _0xd06960) { return this['_valueCache'][_0x45af8e] = null, this['_engine']['setMatrix3x3'](this['_uniforms'][_0x45af8e], _0xd06960), this; } , _0x39d1fb['prototype']['setMatrix2x2'] = function(_0x52939f, _0x230894) { return this['_valueCache'][_0x52939f] = null, this['_engine']['setMatrix2x2'](this['_uniforms'][_0x52939f], _0x230894), this; } , _0x39d1fb['prototype']['setFloat'] = function(_0x4f5bf0, _0x41a361) { var _0x4dc33d = this['_valueCache'][_0x4f5bf0]; return void 0x0 !== _0x4dc33d && _0x4dc33d === _0x41a361 ? this : (this['_valueCache'][_0x4f5bf0] = _0x41a361, this['_engine']['setFloat'](this['_uniforms'][_0x4f5bf0], _0x41a361), this); } , _0x39d1fb['prototype']['setBool'] = function(_0x4fd82b, _0xf08b3c) { var _0x49fad0 = this['_valueCache'][_0x4fd82b]; return void 0x0 !== _0x49fad0 && _0x49fad0 === _0xf08b3c ? this : (this['_valueCache'][_0x4fd82b] = _0xf08b3c, this['_engine']['setBool'](this['_uniforms'][_0x4fd82b], _0xf08b3c ? 0x1 : 0x0), this); } , _0x39d1fb['prototype']['setVector2'] = function(_0x1bebec, _0x57afb7) { return this['_cacheFloat2'](_0x1bebec, _0x57afb7['x'], _0x57afb7['y']) && this['_engine']['setFloat2'](this['_uniforms'][_0x1bebec], _0x57afb7['x'], _0x57afb7['y']), this; } , _0x39d1fb['prototype']['setFloat2'] = function(_0x393da1, _0x3c8973, _0x2e39a8) { return this['_cacheFloat2'](_0x393da1, _0x3c8973, _0x2e39a8) && this['_engine']['setFloat2'](this['_uniforms'][_0x393da1], _0x3c8973, _0x2e39a8), this; } , _0x39d1fb['prototype']['setVector3'] = function(_0x2a11da, _0x4579d4) { return this['_cacheFloat3'](_0x2a11da, _0x4579d4['x'], _0x4579d4['y'], _0x4579d4['z']) && this['_engine']['setFloat3'](this['_uniforms'][_0x2a11da], _0x4579d4['x'], _0x4579d4['y'], _0x4579d4['z']), this; } , _0x39d1fb['prototype']['setFloat3'] = function(_0x28f798, _0x5d31f2, _0x3e19b8, _0x1b2767) { return this['_cacheFloat3'](_0x28f798, _0x5d31f2, _0x3e19b8, _0x1b2767) && this['_engine']['setFloat3'](this['_uniforms'][_0x28f798], _0x5d31f2, _0x3e19b8, _0x1b2767), this; } , _0x39d1fb['prototype']['setVector4'] = function(_0x1c5b4f, _0x3b7d19) { return this['_cacheFloat4'](_0x1c5b4f, _0x3b7d19['x'], _0x3b7d19['y'], _0x3b7d19['z'], _0x3b7d19['w']) && this['_engine']['setFloat4'](this['_uniforms'][_0x1c5b4f], _0x3b7d19['x'], _0x3b7d19['y'], _0x3b7d19['z'], _0x3b7d19['w']), this; } , _0x39d1fb['prototype']['setFloat4'] = function(_0x582c90, _0x135d25, _0x477114, _0x2af92b, _0x5ac140) { return this['_cacheFloat4'](_0x582c90, _0x135d25, _0x477114, _0x2af92b, _0x5ac140) && this['_engine']['setFloat4'](this['_uniforms'][_0x582c90], _0x135d25, _0x477114, _0x2af92b, _0x5ac140), this; } , _0x39d1fb['prototype']['setColor3'] = function(_0x2f2ea8, _0x4e294d) { return this['_cacheFloat3'](_0x2f2ea8, _0x4e294d['r'], _0x4e294d['g'], _0x4e294d['b']) && this['_engine']['setColor3'](this['_uniforms'][_0x2f2ea8], _0x4e294d), this; } , _0x39d1fb['prototype']['setColor4'] = function(_0x260a10, _0x10792a, _0x1465a8) { return this['_cacheFloat4'](_0x260a10, _0x10792a['r'], _0x10792a['g'], _0x10792a['b'], _0x1465a8) && this['_engine']['setColor4'](this['_uniforms'][_0x260a10], _0x10792a, _0x1465a8), this; } , _0x39d1fb['prototype']['setDirectColor4'] = function(_0x393da2, _0x361e49) { return this['_cacheFloat4'](_0x393da2, _0x361e49['r'], _0x361e49['g'], _0x361e49['b'], _0x361e49['a']) && this['_engine']['setDirectColor4'](this['_uniforms'][_0x393da2], _0x361e49), this; } , _0x39d1fb['prototype']['dispose'] = function() { this['_engine']['_releaseEffect'](this); } , _0x39d1fb['RegisterShader'] = function(_0x3a0d6d, _0x2e8d40, _0x2a6d2c) { _0x2e8d40 && (_0x39d1fb['ShadersStore'][_0x3a0d6d + 'PixelShader'] = _0x2e8d40), _0x2a6d2c && (_0x39d1fb['ShadersStore'][_0x3a0d6d + 'VertexShader'] = _0x2a6d2c); } , _0x39d1fb['ResetCache'] = function() { _0x39d1fb['_baseCache'] = {}; } , _0x39d1fb['ShadersRepository'] = 'src/Shaders/', _0x39d1fb['_uniqueIdSeed'] = 0x0, _0x39d1fb['_baseCache'] = {}, _0x39d1fb['ShadersStore'] = {}, _0x39d1fb['IncludesShadersStore'] = {}, _0x39d1fb; }(); } , function(_0x819878, _0x544379, _0x54bfc0) { 'use strict'; _0x54bfc0['d'](_0x544379, 'a', function() { return _0x566c42; }); var _0x566c42 = function() { function _0x16225b() {} return _0x16225b['_AddLogEntry'] = function(_0x1847ab) { _0x16225b['_LogCache'] = _0x1847ab + _0x16225b['_LogCache'], _0x16225b['OnNewCacheEntry'] && _0x16225b['OnNewCacheEntry'](_0x1847ab); } , _0x16225b['_FormatMessage'] = function(_0x40f7fc) { var _0x4d18ed = function(_0xec2633) { return _0xec2633 < 0xa ? '0' + _0xec2633 : '' + _0xec2633; } , _0x18d1e9 = new Date(); return '[' + _0x4d18ed(_0x18d1e9['getHours']()) + ':' + _0x4d18ed(_0x18d1e9['getMinutes']()) + ':' + _0x4d18ed(_0x18d1e9['getSeconds']()) + ']:\x20' + _0x40f7fc; } , _0x16225b['_LogDisabled'] = function(_0x35e827) {} , _0x16225b['_LogEnabled'] = function(_0x1b0ad8) { var _0x126ed1 = _0x16225b['_FormatMessage'](_0x1b0ad8); console['log']('BJS\x20-\x20' + _0x126ed1); var _0xabfbe5 = '' + _0x126ed1 + '
'; _0x16225b['_AddLogEntry'](_0xabfbe5); } , _0x16225b['_WarnDisabled'] = function(_0x5908e5) {} , _0x16225b['_WarnEnabled'] = function(_0x2292a0) { var _0x2ffc19 = _0x16225b['_FormatMessage'](_0x2292a0); console['warn']('BJS\x20-\x20' + _0x2ffc19); var _0x3dd232 = '' + _0x2ffc19 + '
'; _0x16225b['_AddLogEntry'](_0x3dd232); } , _0x16225b['_ErrorDisabled'] = function(_0x3adf51) {} , _0x16225b['_ErrorEnabled'] = function(_0x4a8e03) { _0x16225b['errorsCount']++; var _0x2d261d = _0x16225b['_FormatMessage'](_0x4a8e03); console['error']('BJS\x20-\x20' + _0x2d261d); var _0x56460d = '' + _0x2d261d + '
'; _0x16225b['_AddLogEntry'](_0x56460d); } , Object['defineProperty'](_0x16225b, 'LogCache', { 'get': function() { return _0x16225b['_LogCache']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x16225b['ClearLogCache'] = function() { _0x16225b['_LogCache'] = '', _0x16225b['errorsCount'] = 0x0; } , Object['defineProperty'](_0x16225b, 'LogLevels', { 'set': function(_0x3eb66f) { (_0x3eb66f & _0x16225b['MessageLogLevel']) === _0x16225b['MessageLogLevel'] ? _0x16225b['Log'] = _0x16225b['_LogEnabled'] : _0x16225b['Log'] = _0x16225b['_LogDisabled'], (_0x3eb66f & _0x16225b['WarningLogLevel']) === _0x16225b['WarningLogLevel'] ? _0x16225b['Warn'] = _0x16225b['_WarnEnabled'] : _0x16225b['Warn'] = _0x16225b['_WarnDisabled'], (_0x3eb66f & _0x16225b['ErrorLogLevel']) === _0x16225b['ErrorLogLevel'] ? _0x16225b['Error'] = _0x16225b['_ErrorEnabled'] : _0x16225b['Error'] = _0x16225b['_ErrorDisabled']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x16225b['NoneLogLevel'] = 0x0, _0x16225b['MessageLogLevel'] = 0x1, _0x16225b['WarningLogLevel'] = 0x2, _0x16225b['ErrorLogLevel'] = 0x4, _0x16225b['AllLogLevel'] = 0x7, _0x16225b['_LogCache'] = '', _0x16225b['errorsCount'] = 0x0, _0x16225b['Log'] = _0x16225b['_LogEnabled'], _0x16225b['Warn'] = _0x16225b['_WarnEnabled'], _0x16225b['Error'] = _0x16225b['_ErrorEnabled'], _0x16225b; }(); } , function(_0x10df5b, _0x42ddd3, _0x4654a8) { 'use strict'; _0x4654a8['d'](_0x42ddd3, 'a', function() { return _0x281880; }); var _0x17015b = _0x4654a8(0x1) , _0x9d2a2d = _0x4654a8(0x2) , _0x2b4355 = _0x4654a8(0x8) , _0x292450 = _0x4654a8(0x9) , _0x261146 = _0x4654a8(0x0) , _0x40afb4 = _0x4654a8(0x2c) , _0x5d6dab = _0x4654a8(0x3) , _0x2eccda = _0x4654a8(0x16) , _0x3b0ffe = _0x4654a8(0x13) , _0x281880 = function(_0x173745) { function _0x419ce6(_0x22d610, _0x2e2176, _0x17459f, _0xbf91df, _0x46090d, _0x5d20cc, _0x4b4ffa, _0x361c90, _0x56370f, _0x4b108e) { void 0x0 === _0x17459f && (_0x17459f = !0x1), void 0x0 === _0xbf91df && (_0xbf91df = !0x0), void 0x0 === _0x46090d && (_0x46090d = _0x419ce6['TRILINEAR_SAMPLINGMODE']), void 0x0 === _0x5d20cc && (_0x5d20cc = null), void 0x0 === _0x4b4ffa && (_0x4b4ffa = null), void 0x0 === _0x361c90 && (_0x361c90 = null), void 0x0 === _0x56370f && (_0x56370f = !0x1); var _0x1113ff = _0x173745['call'](this, _0x2e2176) || this; if (_0x1113ff['url'] = null, _0x1113ff['uOffset'] = 0x0, _0x1113ff['vOffset'] = 0x0, _0x1113ff['uScale'] = 0x1, _0x1113ff['vScale'] = 0x1, _0x1113ff['uAng'] = 0x0, _0x1113ff['vAng'] = 0x0, _0x1113ff['wAng'] = 0x0, _0x1113ff['uRotationCenter'] = 0.5, _0x1113ff['vRotationCenter'] = 0.5, _0x1113ff['wRotationCenter'] = 0.5, _0x1113ff['inspectableCustomProperties'] = null, _0x1113ff['_noMipmap'] = !0x1, _0x1113ff['_invertY'] = !0x1, _0x1113ff['_rowGenerationMatrix'] = null, _0x1113ff['_cachedTextureMatrix'] = null, _0x1113ff['_projectionModeMatrix'] = null, _0x1113ff['_t0'] = null, _0x1113ff['_t1'] = null, _0x1113ff['_t2'] = null, _0x1113ff['_cachedUOffset'] = -0x1, _0x1113ff['_cachedVOffset'] = -0x1, _0x1113ff['_cachedUScale'] = 0x0, _0x1113ff['_cachedVScale'] = 0x0, _0x1113ff['_cachedUAng'] = -0x1, _0x1113ff['_cachedVAng'] = -0x1, _0x1113ff['_cachedWAng'] = -0x1, _0x1113ff['_cachedProjectionMatrixId'] = -0x1, _0x1113ff['_cachedCoordinatesMode'] = -0x1, _0x1113ff['_initialSamplingMode'] = _0x419ce6['BILINEAR_SAMPLINGMODE'], _0x1113ff['_buffer'] = null, _0x1113ff['_deleteBuffer'] = !0x1, _0x1113ff['_format'] = null, _0x1113ff['_delayedOnLoad'] = null, _0x1113ff['_delayedOnError'] = null, _0x1113ff['onLoadObservable'] = new _0x2b4355['c'](), _0x1113ff['_isBlocking'] = !0x0, _0x1113ff['name'] = _0x22d610 || '', _0x1113ff['url'] = _0x22d610, _0x1113ff['_noMipmap'] = _0x17459f, _0x1113ff['_invertY'] = _0xbf91df, _0x1113ff['_initialSamplingMode'] = _0x46090d, _0x1113ff['_buffer'] = _0x361c90, _0x1113ff['_deleteBuffer'] = _0x56370f, _0x4b108e && (_0x1113ff['_format'] = _0x4b108e), !(_0x2e2176 = _0x1113ff['getScene']())) return _0x1113ff; _0x2e2176['getEngine']()['onBeforeTextureInitObservable']['notifyObservers'](_0x1113ff); var _0x58c17f = function() { _0x1113ff['_texture'] && _0x1113ff['_texture']['_invertVScale'] && (_0x1113ff['vScale'] = -0x1), _0x1113ff['onLoadObservable']['hasObservers']() && _0x1113ff['onLoadObservable']['notifyObservers'](_0x1113ff), _0x5d20cc && _0x5d20cc(), !_0x1113ff['isBlocking'] && _0x2e2176 && _0x2e2176['resetCachedMaterial'](); }; return _0x1113ff['url'] ? (_0x1113ff['_texture'] = _0x1113ff['_getFromCache'](_0x1113ff['url'], _0x17459f, _0x46090d, _0xbf91df), _0x1113ff['_texture'] ? _0x1113ff['_texture']['isReady'] ? _0x292450['h']['SetImmediate'](function() { return _0x58c17f(); }) : _0x1113ff['_texture']['onLoadedObservable']['add'](_0x58c17f) : _0x2e2176['useDelayedTextureLoading'] ? (_0x1113ff['delayLoadState'] = _0x5d6dab['a']['DELAYLOADSTATE_NOTLOADED'], _0x1113ff['_delayedOnLoad'] = _0x58c17f, _0x1113ff['_delayedOnError'] = _0x4b4ffa) : (_0x1113ff['_texture'] = _0x2e2176['getEngine']()['createTexture'](_0x1113ff['url'], _0x17459f, _0xbf91df, _0x2e2176, _0x46090d, _0x58c17f, _0x4b4ffa, _0x1113ff['_buffer'], void 0x0, _0x1113ff['_format']), _0x56370f && delete _0x1113ff['_buffer']), _0x1113ff) : (_0x1113ff['_delayedOnLoad'] = _0x58c17f, _0x1113ff['_delayedOnError'] = _0x4b4ffa, _0x1113ff); } return _0x17015b['d'](_0x419ce6, _0x173745), Object['defineProperty'](_0x419ce6['prototype'], 'noMipmap', { 'get': function() { return this['_noMipmap']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x419ce6['prototype'], 'isBlocking', { 'get': function() { return this['_isBlocking']; }, 'set': function(_0x13fb84) { this['_isBlocking'] = _0x13fb84; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x419ce6['prototype'], 'samplingMode', { 'get': function() { return this['_texture'] ? this['_texture']['samplingMode'] : this['_initialSamplingMode']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x419ce6['prototype'], 'invertY', { 'get': function() { return this['_invertY']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x419ce6['prototype']['updateURL'] = function(_0x33300e, _0x2239b4, _0x18390a) { void 0x0 === _0x2239b4 && (_0x2239b4 = null), this['url'] && (this['releaseInternalTexture'](), this['getScene']()['markAllMaterialsAsDirty'](_0x5d6dab['a']['MATERIAL_TextureDirtyFlag'])), this['url'] = _0x33300e, this['_buffer'] = _0x2239b4, this['delayLoadState'] = _0x5d6dab['a']['DELAYLOADSTATE_NOTLOADED'], _0x18390a && (this['_delayedOnLoad'] = _0x18390a), this['delayLoad'](); } , _0x419ce6['prototype']['delayLoad'] = function() { if (this['delayLoadState'] === _0x5d6dab['a']['DELAYLOADSTATE_NOTLOADED']) { var _0x805abb = this['getScene'](); _0x805abb && (this['delayLoadState'] = _0x5d6dab['a']['DELAYLOADSTATE_LOADED'], this['_texture'] = this['_getFromCache'](this['url'], this['_noMipmap'], this['samplingMode'], this['_invertY']), this['_texture'] ? this['_delayedOnLoad'] && (this['_texture']['isReady'] ? _0x292450['h']['SetImmediate'](this['_delayedOnLoad']) : this['_texture']['onLoadedObservable']['add'](this['_delayedOnLoad'])) : (this['_texture'] = _0x805abb['getEngine']()['createTexture'](this['url'], this['_noMipmap'], this['_invertY'], _0x805abb, this['samplingMode'], this['_delayedOnLoad'], this['_delayedOnError'], this['_buffer'], null, this['_format']), this['_deleteBuffer'] && delete this['_buffer']), this['_delayedOnLoad'] = null, this['_delayedOnError'] = null); } } , _0x419ce6['prototype']['_prepareRowForTextureGeneration'] = function(_0x9c6d23, _0x61c9d6, _0x3098d5, _0x339726) { _0x9c6d23 *= this['uScale'], _0x61c9d6 *= this['vScale'], _0x9c6d23 -= this['uRotationCenter'] * this['uScale'], _0x61c9d6 -= this['vRotationCenter'] * this['vScale'], _0x3098d5 -= this['wRotationCenter'], _0x261146['x']['TransformCoordinatesFromFloatsToRef'](_0x9c6d23, _0x61c9d6, _0x3098d5, this['_rowGenerationMatrix'], _0x339726), _0x339726['x'] += this['uRotationCenter'] * this['uScale'] + this['uOffset'], _0x339726['y'] += this['vRotationCenter'] * this['vScale'] + this['vOffset'], _0x339726['z'] += this['wRotationCenter']; } , _0x419ce6['prototype']['getTextureMatrix'] = function() { var _0x3141d7 = this; if (this['uOffset'] === this['_cachedUOffset'] && this['vOffset'] === this['_cachedVOffset'] && this['uScale'] === this['_cachedUScale'] && this['vScale'] === this['_cachedVScale'] && this['uAng'] === this['_cachedUAng'] && this['vAng'] === this['_cachedVAng'] && this['wAng'] === this['_cachedWAng']) return this['_cachedTextureMatrix']; this['_cachedUOffset'] = this['uOffset'], this['_cachedVOffset'] = this['vOffset'], this['_cachedUScale'] = this['uScale'], this['_cachedVScale'] = this['vScale'], this['_cachedUAng'] = this['uAng'], this['_cachedVAng'] = this['vAng'], this['_cachedWAng'] = this['wAng'], this['_cachedTextureMatrix'] || (this['_cachedTextureMatrix'] = _0x261146['j']['Zero'](), this['_rowGenerationMatrix'] = new _0x261146['j'](), this['_t0'] = _0x261146['x']['Zero'](), this['_t1'] = _0x261146['x']['Zero'](), this['_t2'] = _0x261146['x']['Zero']()), _0x261146['j']['RotationYawPitchRollToRef'](this['vAng'], this['uAng'], this['wAng'], this['_rowGenerationMatrix']), this['_prepareRowForTextureGeneration'](0x0, 0x0, 0x0, this['_t0']), this['_prepareRowForTextureGeneration'](0x1, 0x0, 0x0, this['_t1']), this['_prepareRowForTextureGeneration'](0x0, 0x1, 0x0, this['_t2']), this['_t1']['subtractInPlace'](this['_t0']), this['_t2']['subtractInPlace'](this['_t0']), _0x261146['j']['FromValuesToRef'](this['_t1']['x'], this['_t1']['y'], this['_t1']['z'], 0x0, this['_t2']['x'], this['_t2']['y'], this['_t2']['z'], 0x0, this['_t0']['x'], this['_t0']['y'], this['_t0']['z'], 0x0, 0x0, 0x0, 0x0, 0x1, this['_cachedTextureMatrix']); var _0x52d6c8 = this['getScene'](); return _0x52d6c8 ? (_0x52d6c8['markAllMaterialsAsDirty'](_0x5d6dab['a']['MATERIAL_TextureDirtyFlag'], function(_0x5a550d) { return _0x5a550d['hasTexture'](_0x3141d7); }), this['_cachedTextureMatrix']) : this['_cachedTextureMatrix']; } , _0x419ce6['prototype']['getReflectionTextureMatrix'] = function() { var _0x32d1d3 = this , _0x48780b = this['getScene'](); if (!_0x48780b) return this['_cachedTextureMatrix']; if (this['uOffset'] === this['_cachedUOffset'] && this['vOffset'] === this['_cachedVOffset'] && this['uScale'] === this['_cachedUScale'] && this['vScale'] === this['_cachedVScale'] && this['coordinatesMode'] === this['_cachedCoordinatesMode']) { if (this['coordinatesMode'] !== _0x419ce6['PROJECTION_MODE']) return this['_cachedTextureMatrix']; if (this['_cachedProjectionMatrixId'] === _0x48780b['getProjectionMatrix']()['updateFlag']) return this['_cachedTextureMatrix']; } switch (this['_cachedTextureMatrix'] || (this['_cachedTextureMatrix'] = _0x261146['j']['Zero']()), this['_projectionModeMatrix'] || (this['_projectionModeMatrix'] = _0x261146['j']['Zero']()), this['_cachedUOffset'] = this['uOffset'], this['_cachedVOffset'] = this['vOffset'], this['_cachedUScale'] = this['uScale'], this['_cachedVScale'] = this['vScale'], this['_cachedCoordinatesMode'] = this['coordinatesMode'], this['coordinatesMode']) { case _0x419ce6['PLANAR_MODE']: _0x261146['j']['IdentityToRef'](this['_cachedTextureMatrix']), this['_cachedTextureMatrix'][0x0] = this['uScale'], this['_cachedTextureMatrix'][0x5] = this['vScale'], this['_cachedTextureMatrix'][0xc] = this['uOffset'], this['_cachedTextureMatrix'][0xd] = this['vOffset']; break; case _0x419ce6['PROJECTION_MODE']: _0x261146['j']['FromValuesToRef'](0.5, 0x0, 0x0, 0x0, 0x0, -0.5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0.5, 0.5, 0x1, 0x1, this['_projectionModeMatrix']); var _0x3bdddd = _0x48780b['getProjectionMatrix'](); this['_cachedProjectionMatrixId'] = _0x3bdddd['updateFlag'], _0x3bdddd['multiplyToRef'](this['_projectionModeMatrix'], this['_cachedTextureMatrix']); break; default: _0x261146['j']['IdentityToRef'](this['_cachedTextureMatrix']); } return _0x48780b['markAllMaterialsAsDirty'](_0x5d6dab['a']['MATERIAL_TextureDirtyFlag'], function(_0x1b46cd) { return -0x1 !== _0x1b46cd['getActiveTextures']()['indexOf'](_0x32d1d3); }), this['_cachedTextureMatrix']; } , _0x419ce6['prototype']['clone'] = function() { var _0x2cbb42 = this; return _0x9d2a2d['a']['Clone'](function() { return new _0x419ce6(_0x2cbb42['_texture'] ? _0x2cbb42['_texture']['url'] : null,_0x2cbb42['getScene'](),_0x2cbb42['_noMipmap'],_0x2cbb42['_invertY'],_0x2cbb42['samplingMode'],void 0x0,void 0x0,_0x2cbb42['_texture'] ? _0x2cbb42['_texture']['_buffer'] : void 0x0); }, this); } , _0x419ce6['prototype']['serialize'] = function() { var _0x337ffd = _0x173745['prototype']['serialize']['call'](this); return 'string' == typeof this['_buffer'] && 'data:' === this['_buffer']['substr'](0x0, 0x5) && (_0x337ffd['base64String'] = this['_buffer'], _0x337ffd['name'] = _0x337ffd['name']['replace']('data:', '')), _0x337ffd['invertY'] = this['_invertY'], _0x337ffd['samplingMode'] = this['samplingMode'], _0x337ffd; } , _0x419ce6['prototype']['getClassName'] = function() { return 'Texture'; } , _0x419ce6['prototype']['dispose'] = function() { _0x173745['prototype']['dispose']['call'](this), this['onLoadObservable']['clear'](), this['_delayedOnLoad'] = null, this['_delayedOnError'] = null; } , _0x419ce6['Parse'] = function(_0x489b01, _0x9e889e, _0x59b518) { if (_0x489b01['customType']) { var _0x242736 = _0x292450['h']['Instantiate'](_0x489b01['customType'])['Parse'](_0x489b01, _0x9e889e, _0x59b518); return _0x489b01['samplingMode'] && _0x242736['updateSamplingMode'] && _0x242736['_samplingMode'] && _0x242736['_samplingMode'] !== _0x489b01['samplingMode'] && _0x242736['updateSamplingMode'](_0x489b01['samplingMode']), _0x242736; } if (_0x489b01['isCube'] && !_0x489b01['isRenderTarget']) return _0x419ce6['_CubeTextureParser'](_0x489b01, _0x9e889e, _0x59b518); if (!_0x489b01['name'] && !_0x489b01['isRenderTarget']) return null; var _0x1f80c3 = _0x9d2a2d['a']['Parse'](function() { var _0x1b4290, _0x26395a = !0x0; if (_0x489b01['noMipmap'] && (_0x26395a = !0x1), _0x489b01['mirrorPlane']) { var _0x45871a = _0x419ce6['_CreateMirror'](_0x489b01['name'], _0x489b01['renderTargetSize'], _0x9e889e, _0x26395a); return _0x45871a['_waitingRenderList'] = _0x489b01['renderList'], _0x45871a['mirrorPlane'] = _0x261146['n']['FromArray'](_0x489b01['mirrorPlane']), _0x45871a; } if (_0x489b01['isRenderTarget']) { var _0xf4f08e = null; if (_0x489b01['isCube']) { if (_0x9e889e['reflectionProbes']) for (var _0x29ad57 = 0x0; _0x29ad57 < _0x9e889e['reflectionProbes']['length']; _0x29ad57++) { var _0x14fedf = _0x9e889e['reflectionProbes'][_0x29ad57]; if (_0x14fedf['name'] === _0x489b01['name']) return _0x14fedf['cubeTexture']; } } else (_0xf4f08e = _0x419ce6['_CreateRenderTargetTexture'](_0x489b01['name'], _0x489b01['renderTargetSize'], _0x9e889e, _0x26395a))['_waitingRenderList'] = _0x489b01['renderList']; return _0xf4f08e; } if (_0x489b01['base64String']) _0x1b4290 = _0x419ce6['CreateFromBase64String'](_0x489b01['base64String'], _0x489b01['name'], _0x9e889e, !_0x26395a); else { var _0xd10fd1 = _0x59b518 + _0x489b01['name']; _0x419ce6['UseSerializedUrlIfAny'] && _0x489b01['url'] && (_0xd10fd1 = _0x489b01['url']), _0x1b4290 = new _0x419ce6(_0xd10fd1,_0x9e889e,!_0x26395a,_0x489b01['invertY']); } return _0x1b4290; }, _0x489b01, _0x9e889e); if (_0x489b01['samplingMode']) { var _0x7c0f5d = _0x489b01['samplingMode']; _0x1f80c3 && _0x1f80c3['samplingMode'] !== _0x7c0f5d && _0x1f80c3['updateSamplingMode'](_0x7c0f5d); } if (_0x1f80c3 && _0x489b01['animations']) for (var _0x144145 = 0x0; _0x144145 < _0x489b01['animations']['length']; _0x144145++) { var _0x1d11fe = _0x489b01['animations'][_0x144145] , _0x50e317 = _0x2eccda['a']['GetClass']('BABYLON.Animation'); _0x50e317 && _0x1f80c3['animations']['push'](_0x50e317['Parse'](_0x1d11fe)); } return _0x1f80c3; } , _0x419ce6['CreateFromBase64String'] = function(_0x556a7f, _0x20f6b9, _0x29711b, _0x21158a, _0x8b7272, _0x21d846, _0x492c3a, _0x37ec2d, _0x579ef4) { return void 0x0 === _0x21d846 && (_0x21d846 = _0x419ce6['TRILINEAR_SAMPLINGMODE']), void 0x0 === _0x492c3a && (_0x492c3a = null), void 0x0 === _0x37ec2d && (_0x37ec2d = null), void 0x0 === _0x579ef4 && (_0x579ef4 = _0x5d6dab['a']['TEXTUREFORMAT_RGBA']), new _0x419ce6('data:' + _0x20f6b9,_0x29711b,_0x21158a,_0x8b7272,_0x21d846,_0x492c3a,_0x37ec2d,_0x556a7f,!0x1,_0x579ef4); } , _0x419ce6['LoadFromDataString'] = function(_0x3163f0, _0x19e261, _0x1d8838, _0x23a305, _0x3e9733, _0x674355, _0xac2125, _0x3ca386, _0x243944, _0x48ef0c) { return void 0x0 === _0x23a305 && (_0x23a305 = !0x1), void 0x0 === _0x3e9733 && (_0x3e9733 = !0x1), void 0x0 === _0x674355 && (_0x674355 = !0x0), void 0x0 === _0xac2125 && (_0xac2125 = _0x419ce6['TRILINEAR_SAMPLINGMODE']), void 0x0 === _0x3ca386 && (_0x3ca386 = null), void 0x0 === _0x243944 && (_0x243944 = null), void 0x0 === _0x48ef0c && (_0x48ef0c = _0x5d6dab['a']['TEXTUREFORMAT_RGBA']), 'data:' !== _0x3163f0['substr'](0x0, 0x5) && (_0x3163f0 = 'data:' + _0x3163f0), new _0x419ce6(_0x3163f0,_0x1d8838,_0x3e9733,_0x674355,_0xac2125,_0x3ca386,_0x243944,_0x19e261,_0x23a305,_0x48ef0c); } , _0x419ce6['_CubeTextureParser'] = function(_0x23ff05, _0x14f08a, _0xa0b4d6) { throw _0x3b0ffe['a']['WarnImport']('CubeTexture'); } , _0x419ce6['_CreateMirror'] = function(_0x37cdda, _0x138220, _0x504b24, _0x282eef) { throw _0x3b0ffe['a']['WarnImport']('MirrorTexture'); } , _0x419ce6['_CreateRenderTargetTexture'] = function(_0x4dd686, _0x3bbb76, _0x37f51d, _0x2914f0) { throw _0x3b0ffe['a']['WarnImport']('RenderTargetTexture'); } , _0x419ce6['NEAREST_SAMPLINGMODE'] = _0x5d6dab['a']['TEXTURE_NEAREST_SAMPLINGMODE'], _0x419ce6['NEAREST_NEAREST_MIPLINEAR'] = _0x5d6dab['a']['TEXTURE_NEAREST_NEAREST_MIPLINEAR'], _0x419ce6['BILINEAR_SAMPLINGMODE'] = _0x5d6dab['a']['TEXTURE_BILINEAR_SAMPLINGMODE'], _0x419ce6['LINEAR_LINEAR_MIPNEAREST'] = _0x5d6dab['a']['TEXTURE_LINEAR_LINEAR_MIPNEAREST'], _0x419ce6['TRILINEAR_SAMPLINGMODE'] = _0x5d6dab['a']['TEXTURE_TRILINEAR_SAMPLINGMODE'], _0x419ce6['LINEAR_LINEAR_MIPLINEAR'] = _0x5d6dab['a']['TEXTURE_LINEAR_LINEAR_MIPLINEAR'], _0x419ce6['NEAREST_NEAREST_MIPNEAREST'] = _0x5d6dab['a']['TEXTURE_NEAREST_NEAREST_MIPNEAREST'], _0x419ce6['NEAREST_LINEAR_MIPNEAREST'] = _0x5d6dab['a']['TEXTURE_NEAREST_LINEAR_MIPNEAREST'], _0x419ce6['NEAREST_LINEAR_MIPLINEAR'] = _0x5d6dab['a']['TEXTURE_NEAREST_LINEAR_MIPLINEAR'], _0x419ce6['NEAREST_LINEAR'] = _0x5d6dab['a']['TEXTURE_NEAREST_LINEAR'], _0x419ce6['NEAREST_NEAREST'] = _0x5d6dab['a']['TEXTURE_NEAREST_NEAREST'], _0x419ce6['LINEAR_NEAREST_MIPNEAREST'] = _0x5d6dab['a']['TEXTURE_LINEAR_NEAREST_MIPNEAREST'], _0x419ce6['LINEAR_NEAREST_MIPLINEAR'] = _0x5d6dab['a']['TEXTURE_LINEAR_NEAREST_MIPLINEAR'], _0x419ce6['LINEAR_LINEAR'] = _0x5d6dab['a']['TEXTURE_LINEAR_LINEAR'], _0x419ce6['LINEAR_NEAREST'] = _0x5d6dab['a']['TEXTURE_LINEAR_NEAREST'], _0x419ce6['EXPLICIT_MODE'] = _0x5d6dab['a']['TEXTURE_EXPLICIT_MODE'], _0x419ce6['SPHERICAL_MODE'] = _0x5d6dab['a']['TEXTURE_SPHERICAL_MODE'], _0x419ce6['PLANAR_MODE'] = _0x5d6dab['a']['TEXTURE_PLANAR_MODE'], _0x419ce6['CUBIC_MODE'] = _0x5d6dab['a']['TEXTURE_CUBIC_MODE'], _0x419ce6['PROJECTION_MODE'] = _0x5d6dab['a']['TEXTURE_PROJECTION_MODE'], _0x419ce6['SKYBOX_MODE'] = _0x5d6dab['a']['TEXTURE_SKYBOX_MODE'], _0x419ce6['INVCUBIC_MODE'] = _0x5d6dab['a']['TEXTURE_INVCUBIC_MODE'], _0x419ce6['EQUIRECTANGULAR_MODE'] = _0x5d6dab['a']['TEXTURE_EQUIRECTANGULAR_MODE'], _0x419ce6['FIXED_EQUIRECTANGULAR_MODE'] = _0x5d6dab['a']['TEXTURE_FIXED_EQUIRECTANGULAR_MODE'], _0x419ce6['FIXED_EQUIRECTANGULAR_MIRRORED_MODE'] = _0x5d6dab['a']['TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE'], _0x419ce6['CLAMP_ADDRESSMODE'] = _0x5d6dab['a']['TEXTURE_CLAMP_ADDRESSMODE'], _0x419ce6['WRAP_ADDRESSMODE'] = _0x5d6dab['a']['TEXTURE_WRAP_ADDRESSMODE'], _0x419ce6['MIRROR_ADDRESSMODE'] = _0x5d6dab['a']['TEXTURE_MIRROR_ADDRESSMODE'], _0x419ce6['UseSerializedUrlIfAny'] = !0x1, _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'url', void 0x0), _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'uOffset', void 0x0), _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'vOffset', void 0x0), _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'uScale', void 0x0), _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'vScale', void 0x0), _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'uAng', void 0x0), _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'vAng', void 0x0), _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'wAng', void 0x0), _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'uRotationCenter', void 0x0), _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'vRotationCenter', void 0x0), _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'wRotationCenter', void 0x0), _0x17015b['c']([Object(_0x9d2a2d['c'])()], _0x419ce6['prototype'], 'isBlocking', null), _0x419ce6; }(_0x40afb4['a']); _0x9d2a2d['a']['_TextureParser'] = _0x281880['Parse']; } , function(_0x2bd5e2, _0x8cad38, _0x5592ae) { 'use strict'; _0x5592ae['d'](_0x8cad38, 'a', function() { return _0x1f73e5; }), _0x5592ae['d'](_0x8cad38, 'd', function() { return _0x2c4aa9; }), _0x5592ae['d'](_0x8cad38, 'b', function() { return _0x24057a; }), _0x5592ae['d'](_0x8cad38, 'c', function() { return _0x35f06d; }); var _0x1f73e5 = function() { function _0x2e31d0(_0x2eacbc, _0x24a62d, _0xaf2635, _0x130de4) { void 0x0 === _0x24a62d && (_0x24a62d = !0x1), this['initalize'](_0x2eacbc, _0x24a62d, _0xaf2635, _0x130de4); } return _0x2e31d0['prototype']['initalize'] = function(_0x14cd8e, _0x56118e, _0x2015aa, _0x21f10c) { return void 0x0 === _0x56118e && (_0x56118e = !0x1), this['mask'] = _0x14cd8e, this['skipNextObservers'] = _0x56118e, this['target'] = _0x2015aa, this['currentTarget'] = _0x21f10c, this; } , _0x2e31d0; }() , _0x2c4aa9 = function() { return function(_0x2f9ab5, _0x358aa4, _0x30ad64) { void 0x0 === _0x30ad64 && (_0x30ad64 = null), this['callback'] = _0x2f9ab5, this['mask'] = _0x358aa4, this['scope'] = _0x30ad64, this['_willBeUnregistered'] = !0x1, this['unregisterOnNextCall'] = !0x1; } ; }() , _0x24057a = function() { function _0x10337b() {} return _0x10337b['prototype']['dispose'] = function() { if (this['_observers'] && this['_observables']) for (var _0x4ea134 = 0x0; _0x4ea134 < this['_observers']['length']; _0x4ea134++) this['_observables'][_0x4ea134]['remove'](this['_observers'][_0x4ea134]); this['_observers'] = null, this['_observables'] = null; } , _0x10337b['Watch'] = function(_0x308f8d, _0x219532, _0xd16321, _0x3dc1e1) { void 0x0 === _0xd16321 && (_0xd16321 = -0x1), void 0x0 === _0x3dc1e1 && (_0x3dc1e1 = null); var _0x114a61 = new _0x10337b(); _0x114a61['_observers'] = new Array(), _0x114a61['_observables'] = _0x308f8d; for (var _0x12bfa4 = 0x0, _0x231210 = _0x308f8d; _0x12bfa4 < _0x231210['length']; _0x12bfa4++) { var _0x10240f = _0x231210[_0x12bfa4]['add'](_0x219532, _0xd16321, !0x1, _0x3dc1e1); _0x10240f && _0x114a61['_observers']['push'](_0x10240f); } return _0x114a61; } , _0x10337b; }() , _0x35f06d = function() { function _0xc32dcc(_0x2f1757) { this['_observers'] = new Array(), this['_eventState'] = new _0x1f73e5(0x0), _0x2f1757 && (this['_onObserverAdded'] = _0x2f1757); } return _0xc32dcc['prototype']['add'] = function(_0x47a2c6, _0x1fe0db, _0x30bf23, _0x1734d3, _0x4ff6c6) { if (void 0x0 === _0x1fe0db && (_0x1fe0db = -0x1), void 0x0 === _0x30bf23 && (_0x30bf23 = !0x1), void 0x0 === _0x1734d3 && (_0x1734d3 = null), void 0x0 === _0x4ff6c6 && (_0x4ff6c6 = !0x1), !_0x47a2c6) return null; var _0x4962c1 = new _0x2c4aa9(_0x47a2c6,_0x1fe0db,_0x1734d3); return _0x4962c1['unregisterOnNextCall'] = _0x4ff6c6, _0x30bf23 ? this['_observers']['unshift'](_0x4962c1) : this['_observers']['push'](_0x4962c1), this['_onObserverAdded'] && this['_onObserverAdded'](_0x4962c1), _0x4962c1; } , _0xc32dcc['prototype']['addOnce'] = function(_0x23bd9b) { return this['add'](_0x23bd9b, void 0x0, void 0x0, void 0x0, !0x0); } , _0xc32dcc['prototype']['remove'] = function(_0xbaa4ab) { return !!_0xbaa4ab && (-0x1 !== this['_observers']['indexOf'](_0xbaa4ab) && (this['_deferUnregister'](_0xbaa4ab), !0x0)); } , _0xc32dcc['prototype']['removeCallback'] = function(_0x4f80ef, _0x577c08) { for (var _0xf0673f = 0x0; _0xf0673f < this['_observers']['length']; _0xf0673f++) if (this['_observers'][_0xf0673f]['callback'] === _0x4f80ef && (!_0x577c08 || _0x577c08 === this['_observers'][_0xf0673f]['scope'])) return this['_deferUnregister'](this['_observers'][_0xf0673f]), !0x0; return !0x1; } , _0xc32dcc['prototype']['_deferUnregister'] = function(_0x598d74) { var _0x43d750 = this; _0x598d74['unregisterOnNextCall'] = !0x1, _0x598d74['_willBeUnregistered'] = !0x0, setTimeout(function() { _0x43d750['_remove'](_0x598d74); }, 0x0); } , _0xc32dcc['prototype']['_remove'] = function(_0x2bfa49) { if (!_0x2bfa49) return !0x1; var _0x11e455 = this['_observers']['indexOf'](_0x2bfa49); return -0x1 !== _0x11e455 && (this['_observers']['splice'](_0x11e455, 0x1), !0x0); } , _0xc32dcc['prototype']['makeObserverTopPriority'] = function(_0x1f6ecb) { this['_remove'](_0x1f6ecb), this['_observers']['unshift'](_0x1f6ecb); } , _0xc32dcc['prototype']['makeObserverBottomPriority'] = function(_0x301f35) { this['_remove'](_0x301f35), this['_observers']['push'](_0x301f35); } , _0xc32dcc['prototype']['notifyObservers'] = function(_0x556058, _0x30c0c1, _0x5062b1, _0x484048) { if (void 0x0 === _0x30c0c1 && (_0x30c0c1 = -0x1), !this['_observers']['length']) return !0x0; var _0x584201 = this['_eventState']; _0x584201['mask'] = _0x30c0c1, _0x584201['target'] = _0x5062b1, _0x584201['currentTarget'] = _0x484048, _0x584201['skipNextObservers'] = !0x1, _0x584201['lastReturnValue'] = _0x556058; for (var _0x2f9add = 0x0, _0x11f0fb = this['_observers']; _0x2f9add < _0x11f0fb['length']; _0x2f9add++) { var _0xf2257a = _0x11f0fb[_0x2f9add]; if (!_0xf2257a['_willBeUnregistered'] && (_0xf2257a['mask'] & _0x30c0c1 && (_0xf2257a['scope'] ? _0x584201['lastReturnValue'] = _0xf2257a['callback']['apply'](_0xf2257a['scope'], [_0x556058, _0x584201]) : _0x584201['lastReturnValue'] = _0xf2257a['callback'](_0x556058, _0x584201), _0xf2257a['unregisterOnNextCall'] && this['_deferUnregister'](_0xf2257a)), _0x584201['skipNextObservers'])) return !0x1; } return !0x0; } , _0xc32dcc['prototype']['notifyObserversWithPromise'] = function(_0x398bf8, _0x25ce72, _0x4062aa, _0x3e4e68) { var _0x28268a = this; void 0x0 === _0x25ce72 && (_0x25ce72 = -0x1); var _0x198168 = Promise['resolve'](_0x398bf8); if (!this['_observers']['length']) return _0x198168; var _0xcbde7e = this['_eventState']; return _0xcbde7e['mask'] = _0x25ce72, _0xcbde7e['target'] = _0x4062aa, _0xcbde7e['currentTarget'] = _0x3e4e68, _0xcbde7e['skipNextObservers'] = !0x1, this['_observers']['forEach'](function(_0x53715e) { _0xcbde7e['skipNextObservers'] || _0x53715e['_willBeUnregistered'] || _0x53715e['mask'] & _0x25ce72 && (_0x198168 = _0x53715e['scope'] ? _0x198168['then'](function(_0x94404b) { return _0xcbde7e['lastReturnValue'] = _0x94404b, _0x53715e['callback']['apply'](_0x53715e['scope'], [_0x398bf8, _0xcbde7e]); }) : _0x198168['then'](function(_0xd69e5a) { return _0xcbde7e['lastReturnValue'] = _0xd69e5a, _0x53715e['callback'](_0x398bf8, _0xcbde7e); }), _0x53715e['unregisterOnNextCall'] && _0x28268a['_deferUnregister'](_0x53715e)); }), _0x198168['then'](function() { return _0x398bf8; }); } , _0xc32dcc['prototype']['notifyObserver'] = function(_0x53db55, _0x395b19, _0x4c3e32) { void 0x0 === _0x4c3e32 && (_0x4c3e32 = -0x1); var _0x32d7fd = this['_eventState']; _0x32d7fd['mask'] = _0x4c3e32, _0x32d7fd['skipNextObservers'] = !0x1, _0x53db55['callback'](_0x395b19, _0x32d7fd); } , _0xc32dcc['prototype']['hasObservers'] = function() { return this['_observers']['length'] > 0x0; } , _0xc32dcc['prototype']['clear'] = function() { this['_observers'] = new Array(), this['_onObserverAdded'] = null; } , _0xc32dcc['prototype']['clone'] = function() { var _0x42b751 = new _0xc32dcc(); return _0x42b751['_observers'] = this['_observers']['slice'](0x0), _0x42b751; } , _0xc32dcc['prototype']['hasSpecificMask'] = function(_0xd3fdbe) { void 0x0 === _0xd3fdbe && (_0xd3fdbe = -0x1); for (var _0x402914 = 0x0, _0x15d4f4 = this['_observers']; _0x402914 < _0x15d4f4['length']; _0x402914++) { var _0x33c1d4 = _0x15d4f4[_0x402914]; if (_0x33c1d4['mask'] & _0xd3fdbe || _0x33c1d4['mask'] === _0xd3fdbe) return !0x0; } return !0x1; } , _0xc32dcc; }(); } , function(_0x3fbe92, _0x120cdc, _0x1d54de) { 'use strict'; _0x1d54de['d'](_0x120cdc, 'c', function() { return _0xa97fef; }), _0x1d54de['d'](_0x120cdc, 'b', function() { return _0x5e29c8; }), _0x1d54de['d'](_0x120cdc, 'd', function() { return _0x115104; }), _0x1d54de['d'](_0x120cdc, 'e', function() { return _0x504401; }), _0x1d54de['d'](_0x120cdc, 'g', function() { return _0x135211; }), _0x1d54de['d'](_0x120cdc, 'h', function() { return _0x30df3a; }), _0x1d54de['d'](_0x120cdc, 'f', function() { return _0x4f4b1c; }), _0x1d54de['d'](_0x120cdc, 'i', function() { return _0x4bbde3; }), _0x1d54de['d'](_0x120cdc, 'a', function() { return _0x1f7766; }); var _0x5def82 = _0x1d54de(0x1) , _0xf51fd7 = _0x1d54de(0x0) , _0x25f00c = _0x1d54de(0xc) , _0x51c1ab = _0x1d54de(0x8) , _0x1c8435 = _0x1d54de(0x3b) , _0x4df2f2 = _0x1d54de(0x3) , _0x55e0c9 = _0x1d54de(0x23) , _0x1cb6be = _0x1d54de(0x6) , _0x488bf7 = _0x1d54de(0x16) , _0x1934ec = _0x1d54de(0x20) , _0x4f4d06 = _0x1d54de(0x2f) , _0x2354d1 = _0x1d54de(0x13) , _0x2dfa9e = _0x1d54de(0x3c) , _0xa97fef = function() { function _0x50d22e() {} return _0x50d22e['prototype']['getColorToRef'] = function(_0x2bd9d4) { this['color2'] ? _0xf51fd7['f']['LerpToRef'](this['color1'], this['color2'], Math['random'](), _0x2bd9d4) : _0x2bd9d4['copyFrom'](this['color1']); } , _0x50d22e; }() , _0x5e29c8 = function() { return function() {} ; }() , _0x115104 = function() { function _0x2f97b4() {} return _0x2f97b4['prototype']['getFactor'] = function() { return void 0x0 === this['factor2'] ? this['factor1'] : _0x25f00c['a']['Lerp'](this['factor1'], this['factor2'], Math['random']()); } , _0x2f97b4; }() , _0x504401 = function(_0x590bca) { function _0x648cfc(_0x1c4996, _0x5bec20) { var _0x497412 = _0x590bca['call'](this, _0x1c4996) || this; return _0x497412['request'] = _0x5bec20, _0x497412['name'] = 'LoadFileError', _0x648cfc['_setPrototypeOf'](_0x497412, _0x648cfc['prototype']), _0x497412; } return _0x5def82['d'](_0x648cfc, _0x590bca), _0x648cfc['_setPrototypeOf'] = Object['setPrototypeOf'] || function(_0x4c6314, _0x589bfa) { return _0x4c6314['__proto__'] = _0x589bfa, _0x4c6314; } , _0x648cfc; }(Error) , _0x135211 = function() { function _0xedaa59() {} return _0xedaa59['ExponentialBackoff'] = function(_0x131a2c, _0xbd966e) { return void 0x0 === _0x131a2c && (_0x131a2c = 0x3), void 0x0 === _0xbd966e && (_0xbd966e = 0x1f4), function(_0x349d5e, _0x3fc9f0, _0x3091e8) { return 0x0 !== _0x3fc9f0['status'] || _0x3091e8 >= _0x131a2c || -0x1 !== _0x349d5e['indexOf']('file:') ? -0x1 : Math['pow'](0x2, _0x3091e8) * _0xbd966e; } ; } , _0xedaa59; }() , _0x30df3a = function() { function _0x412670() {} return _0x412670['FetchToRef'] = function(_0x3775ea, _0x85438f, _0x51f44e, _0x1bee3c, _0x261305, _0x521782) { var _0x301f27 = 0x4 * ((Math['abs'](_0x3775ea) * _0x51f44e % _0x51f44e | 0x0) + (Math['abs'](_0x85438f) * _0x1bee3c % _0x1bee3c | 0x0) * _0x51f44e); _0x521782['r'] = _0x261305[_0x301f27] / 0xff, _0x521782['g'] = _0x261305[_0x301f27 + 0x1] / 0xff, _0x521782['b'] = _0x261305[_0x301f27 + 0x2] / 0xff, _0x521782['a'] = _0x261305[_0x301f27 + 0x3] / 0xff; } , _0x412670['Mix'] = function(_0x5b5acc, _0x31f6b0, _0x26f524) { return _0x5b5acc * (0x1 - _0x26f524) + _0x31f6b0 * _0x26f524; } , _0x412670['Instantiate'] = function(_0x4e1888) { if (_0x412670['RegisteredExternalClasses'] && _0x412670['RegisteredExternalClasses'][_0x4e1888]) return _0x412670['RegisteredExternalClasses'][_0x4e1888]; var _0x13c61d = _0x488bf7['a']['GetClass'](_0x4e1888); if (_0x13c61d) return _0x13c61d; _0x1cb6be['a']['Warn'](_0x4e1888 + '\x20not\x20found,\x20you\x20may\x20have\x20missed\x20an\x20import.'); for (var _0x5c51f8 = _0x4e1888['split']('.'), _0x13c1e6 = window || this, _0x436216 = 0x0, _0x45a1fa = _0x5c51f8['length']; _0x436216 < _0x45a1fa; _0x436216++) _0x13c1e6 = _0x13c1e6[_0x5c51f8[_0x436216]]; return 'function' != typeof _0x13c1e6 ? null : _0x13c1e6; } , _0x412670['Slice'] = function(_0x89c40f, _0x38b0a5, _0xabf9d7) { return _0x89c40f['slice'] ? _0x89c40f['slice'](_0x38b0a5, _0xabf9d7) : Array['prototype']['slice']['call'](_0x89c40f, _0x38b0a5, _0xabf9d7); } , _0x412670['SetImmediate'] = function(_0x53bb49) { _0x55e0c9['a']['IsWindowObjectExist']() && window['setImmediate'] ? window['setImmediate'](_0x53bb49) : setTimeout(_0x53bb49, 0x1); } , _0x412670['IsExponentOfTwo'] = function(_0x32223b) { var _0x1a76ff = 0x1; do { _0x1a76ff *= 0x2; } while (_0x1a76ff < _0x32223b); return _0x1a76ff === _0x32223b; } , _0x412670['FloatRound'] = function(_0x3ececa) { return Math['fround'] ? Math['fround'](_0x3ececa) : _0x412670['_tmpFloatArray'][0x0] = _0x3ececa; } , _0x412670['CeilingPOT'] = function(_0x374b9e) { return _0x374b9e--, _0x374b9e |= _0x374b9e >> 0x1, _0x374b9e |= _0x374b9e >> 0x2, _0x374b9e |= _0x374b9e >> 0x4, _0x374b9e |= _0x374b9e >> 0x8, _0x374b9e |= _0x374b9e >> 0x10, ++_0x374b9e; } , _0x412670['FloorPOT'] = function(_0x5e80e2) { return _0x5e80e2 |= _0x5e80e2 >> 0x1, _0x5e80e2 |= _0x5e80e2 >> 0x2, _0x5e80e2 |= _0x5e80e2 >> 0x4, _0x5e80e2 |= _0x5e80e2 >> 0x8, (_0x5e80e2 |= _0x5e80e2 >> 0x10) - (_0x5e80e2 >> 0x1); } , _0x412670['NearestPOT'] = function(_0x2ef36b) { var _0x371d7c = _0x412670['CeilingPOT'](_0x2ef36b) , _0xb8b0b2 = _0x412670['FloorPOT'](_0x2ef36b); return _0x371d7c - _0x2ef36b > _0x2ef36b - _0xb8b0b2 ? _0xb8b0b2 : _0x371d7c; } , _0x412670['GetExponentOfTwo'] = function(_0x16d8e3, _0x208115, _0x1492e5) { var _0xd5e589; switch (void 0x0 === _0x1492e5 && (_0x1492e5 = _0x4df2f2['a']['SCALEMODE_NEAREST']), _0x1492e5) { case _0x4df2f2['a']['SCALEMODE_FLOOR']: _0xd5e589 = _0x412670['FloorPOT'](_0x16d8e3); break; case _0x4df2f2['a']['SCALEMODE_NEAREST']: _0xd5e589 = _0x412670['NearestPOT'](_0x16d8e3); break; case _0x4df2f2['a']['SCALEMODE_CEILING']: default: _0xd5e589 = _0x412670['CeilingPOT'](_0x16d8e3); } return Math['min'](_0xd5e589, _0x208115); } , _0x412670['GetFilename'] = function(_0x515e05) { var _0x3964b8 = _0x515e05['lastIndexOf']('/'); return _0x3964b8 < 0x0 ? _0x515e05 : _0x515e05['substring'](_0x3964b8 + 0x1); } , _0x412670['GetFolderPath'] = function(_0x14e6b5, _0x43d3a0) { void 0x0 === _0x43d3a0 && (_0x43d3a0 = !0x1); var _0x2f8782 = _0x14e6b5['lastIndexOf']('/'); return _0x2f8782 < 0x0 ? _0x43d3a0 ? _0x14e6b5 : '' : _0x14e6b5['substring'](0x0, _0x2f8782 + 0x1); } , _0x412670['ToDegrees'] = function(_0x23edac) { return 0xb4 * _0x23edac / Math['PI']; } , _0x412670['ToRadians'] = function(_0x349153) { return _0x349153 * Math['PI'] / 0xb4; } , _0x412670['EncodeArrayBufferTobase64'] = function(_0x350837) { for (var _0x495814, _0x59257d, _0x277b5b, _0x265f80, _0x3c8f49, _0x26b50e, _0x55e7b5, _0x20227e = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', _0x47298a = '', _0x1e7275 = 0x0, _0x5b8e6c = new Uint8Array(_0x350837); _0x1e7275 < _0x5b8e6c['length']; ) _0x265f80 = (_0x495814 = _0x5b8e6c[_0x1e7275++]) >> 0x2, _0x3c8f49 = (0x3 & _0x495814) << 0x4 | (_0x59257d = _0x1e7275 < _0x5b8e6c['length'] ? _0x5b8e6c[_0x1e7275++] : Number['NaN']) >> 0x4, _0x26b50e = (0xf & _0x59257d) << 0x2 | (_0x277b5b = _0x1e7275 < _0x5b8e6c['length'] ? _0x5b8e6c[_0x1e7275++] : Number['NaN']) >> 0x6, _0x55e7b5 = 0x3f & _0x277b5b, isNaN(_0x59257d) ? _0x26b50e = _0x55e7b5 = 0x40 : isNaN(_0x277b5b) && (_0x55e7b5 = 0x40), _0x47298a += _0x20227e['charAt'](_0x265f80) + _0x20227e['charAt'](_0x3c8f49) + _0x20227e['charAt'](_0x26b50e) + _0x20227e['charAt'](_0x55e7b5); return 'data:image/png;base64,' + _0x47298a; } , _0x412670['ExtractMinAndMaxIndexed'] = function(_0xe81c0c, _0x281239, _0x4af8e5, _0x2fc6f9, _0x2a4161) { void 0x0 === _0x2a4161 && (_0x2a4161 = null); for (var _0x127c6d = new _0xf51fd7['x'](Number['MAX_VALUE'],Number['MAX_VALUE'],Number['MAX_VALUE']), _0x29ff8c = new _0xf51fd7['x'](-Number['MAX_VALUE'],-Number['MAX_VALUE'],-Number['MAX_VALUE']), _0x4c2aff = _0x4af8e5; _0x4c2aff < _0x4af8e5 + _0x2fc6f9; _0x4c2aff++) { var _0x31e9e5 = 0x3 * _0x281239[_0x4c2aff] , _0x8039cc = _0xe81c0c[_0x31e9e5] , _0x4cf987 = _0xe81c0c[_0x31e9e5 + 0x1] , _0xdfabf3 = _0xe81c0c[_0x31e9e5 + 0x2]; _0x127c6d['minimizeInPlaceFromFloats'](_0x8039cc, _0x4cf987, _0xdfabf3), _0x29ff8c['maximizeInPlaceFromFloats'](_0x8039cc, _0x4cf987, _0xdfabf3); } return _0x2a4161 && (_0x127c6d['x'] -= _0x127c6d['x'] * _0x2a4161['x'] + _0x2a4161['y'], _0x127c6d['y'] -= _0x127c6d['y'] * _0x2a4161['x'] + _0x2a4161['y'], _0x127c6d['z'] -= _0x127c6d['z'] * _0x2a4161['x'] + _0x2a4161['y'], _0x29ff8c['x'] += _0x29ff8c['x'] * _0x2a4161['x'] + _0x2a4161['y'], _0x29ff8c['y'] += _0x29ff8c['y'] * _0x2a4161['x'] + _0x2a4161['y'], _0x29ff8c['z'] += _0x29ff8c['z'] * _0x2a4161['x'] + _0x2a4161['y']), { 'minimum': _0x127c6d, 'maximum': _0x29ff8c }; } , _0x412670['ExtractMinAndMax'] = function(_0x265ddf, _0x5d4711, _0xc224e1, _0x537767, _0x3f9768) { void 0x0 === _0x537767 && (_0x537767 = null); var _0x571524 = new _0xf51fd7['x'](Number['MAX_VALUE'],Number['MAX_VALUE'],Number['MAX_VALUE']) , _0x50c2e3 = new _0xf51fd7['x'](-Number['MAX_VALUE'],-Number['MAX_VALUE'],-Number['MAX_VALUE']); _0x3f9768 || (_0x3f9768 = 0x3); for (var _0x420cd7 = _0x5d4711, _0x548e0f = _0x5d4711 * _0x3f9768; _0x420cd7 < _0x5d4711 + _0xc224e1; _0x420cd7++, _0x548e0f += _0x3f9768) { var _0x57212e = _0x265ddf[_0x548e0f] , _0x1d0081 = _0x265ddf[_0x548e0f + 0x1] , _0x228984 = _0x265ddf[_0x548e0f + 0x2]; _0x571524['minimizeInPlaceFromFloats'](_0x57212e, _0x1d0081, _0x228984), _0x50c2e3['maximizeInPlaceFromFloats'](_0x57212e, _0x1d0081, _0x228984); } return _0x537767 && (_0x571524['x'] -= _0x571524['x'] * _0x537767['x'] + _0x537767['y'], _0x571524['y'] -= _0x571524['y'] * _0x537767['x'] + _0x537767['y'], _0x571524['z'] -= _0x571524['z'] * _0x537767['x'] + _0x537767['y'], _0x50c2e3['x'] += _0x50c2e3['x'] * _0x537767['x'] + _0x537767['y'], _0x50c2e3['y'] += _0x50c2e3['y'] * _0x537767['x'] + _0x537767['y'], _0x50c2e3['z'] += _0x50c2e3['z'] * _0x537767['x'] + _0x537767['y']), { 'minimum': _0x571524, 'maximum': _0x50c2e3 }; } , _0x412670['MakeArray'] = function(_0x4344d8, _0x323045) { return !0x0 === _0x323045 || void 0x0 !== _0x4344d8 && null != _0x4344d8 ? Array['isArray'](_0x4344d8) ? _0x4344d8 : [_0x4344d8] : null; } , _0x412670['GetPointerPrefix'] = function() { var _0x1cb781 = 'pointer'; return !_0x55e0c9['a']['IsWindowObjectExist']() || window['PointerEvent'] || navigator['pointerEnabled'] || (_0x1cb781 = 'mouse'), _0x1cb781; } , _0x412670['QueueNewFrame'] = function(_0x405c78, _0x39a6b3) { return _0x55e0c9['a']['IsWindowObjectExist']() ? (_0x39a6b3 || (_0x39a6b3 = window), _0x39a6b3['requestAnimationFrame'] ? _0x39a6b3['requestAnimationFrame'](_0x405c78) : _0x39a6b3['msRequestAnimationFrame'] ? _0x39a6b3['msRequestAnimationFrame'](_0x405c78) : _0x39a6b3['webkitRequestAnimationFrame'] ? _0x39a6b3['webkitRequestAnimationFrame'](_0x405c78) : _0x39a6b3['mozRequestAnimationFrame'] ? _0x39a6b3['mozRequestAnimationFrame'](_0x405c78) : _0x39a6b3['oRequestAnimationFrame'] ? _0x39a6b3['oRequestAnimationFrame'](_0x405c78) : window['setTimeout'](_0x405c78, 0x10)) : setTimeout(_0x405c78, 0x10); } , _0x412670['RequestFullscreen'] = function(_0x404039) { var _0x2a9fe2 = _0x404039['requestFullscreen'] || _0x404039['msRequestFullscreen'] || _0x404039['webkitRequestFullscreen'] || _0x404039['mozRequestFullScreen']; _0x2a9fe2 && _0x2a9fe2['call'](_0x404039); } , _0x412670['ExitFullscreen'] = function() { var _0xf62d9c = document; document['exitFullscreen'] ? document['exitFullscreen']() : _0xf62d9c['mozCancelFullScreen'] ? _0xf62d9c['mozCancelFullScreen']() : _0xf62d9c['webkitCancelFullScreen'] ? _0xf62d9c['webkitCancelFullScreen']() : _0xf62d9c['msCancelFullScreen'] && _0xf62d9c['msCancelFullScreen'](); } , _0x412670['SetCorsBehavior'] = function(_0x503365, _0xd711c3) { if ((!_0x503365 || 0x0 !== _0x503365['indexOf']('data:')) && _0x412670['CorsBehavior']) if ('string' == typeof _0x412670['CorsBehavior'] || _0x412670['CorsBehavior']instanceof String) _0xd711c3['crossOrigin'] = _0x412670['CorsBehavior']; else { var _0x124421 = _0x412670['CorsBehavior'](_0x503365); _0x124421 && (_0xd711c3['crossOrigin'] = _0x124421); } } , _0x412670['CleanUrl'] = function(_0x1ce9ef) { return _0x1ce9ef = _0x1ce9ef['replace'](/#/gm, '%23'); } , _0x412670['LoadImage'] = function(_0x3e9066, _0x223e63, _0x129675, _0x380d30) { var _0x224641, _0x1870e1 = !0x1; _0x3e9066 instanceof ArrayBuffer ? (_0x224641 = URL['createObjectURL'](new Blob([_0x3e9066])), _0x1870e1 = !0x0) : _0x3e9066 instanceof Blob ? (_0x224641 = URL['createObjectURL'](_0x3e9066), _0x1870e1 = !0x0) : (_0x224641 = _0x412670['CleanUrl'](_0x3e9066), _0x224641 = _0x412670['PreprocessUrl'](_0x3e9066)); var _0x457bf7 = new Image(); _0x412670['SetCorsBehavior'](_0x224641, _0x457bf7); var _0xfd0e79 = function() { _0x457bf7['removeEventListener']('load', _0xfd0e79), _0x457bf7['removeEventListener']('error', _0x27cc3), _0x223e63(_0x457bf7), _0x1870e1 && _0x457bf7['src'] && URL['revokeObjectURL'](_0x457bf7['src']); } , _0x27cc3 = function(_0x46923f) { _0x457bf7['removeEventListener']('load', _0xfd0e79), _0x457bf7['removeEventListener']('error', _0x27cc3), _0x1cb6be['a']['Error']('Error\x20while\x20trying\x20to\x20load\x20image:\x20' + _0x3e9066), _0x129675 && _0x129675('Error\x20while\x20trying\x20to\x20load\x20image:\x20' + _0x3e9066, _0x46923f), _0x1870e1 && _0x457bf7['src'] && URL['revokeObjectURL'](_0x457bf7['src']); }; _0x457bf7['addEventListener']('load', _0xfd0e79), _0x457bf7['addEventListener']('error', _0x27cc3); var _0x10fa22 = function() { _0x457bf7['src'] = _0x224641; }; if ('data:' !== _0x224641['substr'](0x0, 0x5) && _0x380d30 && _0x380d30['enableTexturesOffline']) _0x380d30['open'](function() { _0x380d30 && _0x380d30['loadImage'](_0x224641, _0x457bf7); }, _0x10fa22); else { if (-0x1 !== _0x224641['indexOf']('file:')) { var _0x29aeae = decodeURIComponent(_0x224641['substring'](0x5)['toLowerCase']()); if (_0x1c8435['a']['FilesToLoad'][_0x29aeae]) { try { var _0x2d08e4; try { _0x2d08e4 = URL['createObjectURL'](_0x1c8435['a']['FilesToLoad'][_0x29aeae]); } catch (_0x5b2261) { _0x2d08e4 = URL['createObjectURL'](_0x1c8435['a']['FilesToLoad'][_0x29aeae]); } _0x457bf7['src'] = _0x2d08e4, _0x1870e1 = !0x0; } catch (_0x3193e4) { _0x457bf7['src'] = ''; } return _0x457bf7; } } _0x10fa22(); } return _0x457bf7; } , _0x412670['LoadFile'] = function(_0x2e738b, _0x3a0ff8, _0x1b5637, _0x25f069, _0x914f80, _0xada605) { if (_0x2e738b = _0x412670['CleanUrl'](_0x2e738b), -0x1 !== (_0x2e738b = _0x412670['PreprocessUrl'](_0x2e738b))['indexOf']('file:')) { var _0x2f4ff3 = decodeURIComponent(_0x2e738b['substring'](0x5)['toLowerCase']()); if (_0x1c8435['a']['FilesToLoad'][_0x2f4ff3]) return _0x412670['ReadFile'](_0x1c8435['a']['FilesToLoad'][_0x2f4ff3], _0x3a0ff8, _0x1b5637, _0x914f80); } var _0x3f77bd = _0x412670['BaseUrl'] + _0x2e738b , _0x3952d3 = !0x1 , _0x4c967a = { 'onCompleteObservable': new _0x51c1ab['c'](), 'abort': function() { return _0x3952d3 = !0x0; } } , _0x3aec71 = function() { var _0x522499 = new _0x2dfa9e['a']() , _0x2da677 = null; _0x4c967a['abort'] = function() { _0x3952d3 = !0x0, _0x522499['readyState'] !== (XMLHttpRequest['DONE'] || 0x4) && _0x522499['abort'](), null !== _0x2da677 && (clearTimeout(_0x2da677), _0x2da677 = null); } ; var _0x233a96 = function(_0x1d4f41) { _0x522499['open']('GET', _0x3f77bd), _0x914f80 && (_0x522499['responseType'] = 'arraybuffer'), _0x1b5637 && _0x522499['addEventListener']('progress', _0x1b5637); var _0x43a52f = function() { _0x522499['removeEventListener']('loadend', _0x43a52f), _0x4c967a['onCompleteObservable']['notifyObservers'](_0x4c967a), _0x4c967a['onCompleteObservable']['clear'](); }; _0x522499['addEventListener']('loadend', _0x43a52f); var _0x23beb7 = function() { if (!_0x3952d3 && _0x522499['readyState'] === (XMLHttpRequest['DONE'] || 0x4)) { if (_0x522499['removeEventListener']('readystatechange', _0x23beb7), _0x522499['status'] >= 0xc8 && _0x522499['status'] < 0x12c || 0x0 === _0x522499['status'] && (!_0x55e0c9['a']['IsWindowObjectExist']() || _0x412670['IsFileURL']())) return void _0x3a0ff8(_0x914f80 ? _0x522499['response'] : _0x522499['responseText'], _0x522499['responseURL']); var _0x3e773a = _0x412670['DefaultRetryStrategy']; if (_0x3e773a) { var _0x218395 = _0x3e773a(_0x3f77bd, _0x522499, _0x1d4f41); if (-0x1 !== _0x218395) return _0x522499['removeEventListener']('loadend', _0x43a52f), _0x522499 = new _0x2dfa9e['a'](), void (_0x2da677 = setTimeout(function() { return _0x233a96(_0x1d4f41 + 0x1); }, _0x218395)); } var _0x43fd28 = new _0x504401('Error\x20status:\x20' + _0x522499['status'] + '\x20' + _0x522499['statusText'] + '\x20-\x20Unable\x20to\x20load\x20' + _0x3f77bd,_0x522499); if (!_0xada605) throw _0x43fd28; _0xada605(_0x522499, _0x43fd28); } }; _0x522499['addEventListener']('readystatechange', _0x23beb7), _0x522499['send'](); }; _0x233a96(0x0); }; if (_0x25f069 && _0x25f069['enableSceneOffline']) { var _0x4a8db9 = function(_0x46ae84) { _0x46ae84 && _0x46ae84['status'] > 0x190 ? _0xada605 && _0xada605(_0x46ae84) : _0x3952d3 || _0x3aec71(); }; _0x25f069['open'](function() { _0x3952d3 || _0x25f069 && _0x25f069['loadFile'](_0x2e738b, function(_0x1b3740) { _0x3952d3 || _0x3a0ff8(_0x1b3740), _0x4c967a['onCompleteObservable']['notifyObservers'](_0x4c967a); }, _0x1b5637 ? function(_0x1f2a02) { _0x3952d3 || _0x1b5637(_0x1f2a02); } : void 0x0, _0x4a8db9, _0x914f80); }, _0x4a8db9); } else _0x3aec71(); return _0x4c967a; } , _0x412670['LoadScript'] = function(_0x5cc622, _0x3763e8, _0x2ce7c9, _0x363735) { if (_0x55e0c9['a']['IsWindowObjectExist']()) { var _0x582915 = document['getElementsByTagName']('head')[0x0] , _0x59331b = document['createElement']('script'); _0x59331b['setAttribute']('type', 'text/javascript'), _0x59331b['setAttribute']('src', _0x5cc622), _0x363735 && (_0x59331b['id'] = _0x363735), _0x59331b['onload'] = function() { _0x3763e8 && _0x3763e8(); } , _0x59331b['onerror'] = function(_0x46c034) { _0x2ce7c9 && _0x2ce7c9('Unable\x20to\x20load\x20script\x20\x27' + _0x5cc622 + '\x27', _0x46c034); } , _0x582915['appendChild'](_0x59331b); } } , _0x412670['LoadScriptAsync'] = function(_0x45aab4, _0x1e0bf5) { return new Promise(function(_0x22e9c2, _0x45bae3) { if (_0x55e0c9['a']['IsWindowObjectExist']()) { var _0x55b097 = document['getElementsByTagName']('head')[0x0] , _0x3ecfa7 = document['createElement']('script'); _0x3ecfa7['setAttribute']('type', 'text/javascript'), _0x3ecfa7['setAttribute']('src', _0x45aab4), _0x1e0bf5 && (_0x3ecfa7['id'] = _0x1e0bf5), _0x3ecfa7['onload'] = function() { _0x22e9c2(!0x0); } , _0x3ecfa7['onerror'] = function(_0x39b6b9) { _0x22e9c2(!0x1); } , _0x55b097['appendChild'](_0x3ecfa7); } else _0x22e9c2(!0x1); } ); } , _0x412670['ReadFileAsDataURL'] = function(_0x54ef20, _0x4770d9, _0x1c6992) { var _0x5ab01d = new FileReader() , _0x382f72 = { 'onCompleteObservable': new _0x51c1ab['c'](), 'abort': function() { return _0x5ab01d['abort'](); } }; return _0x5ab01d['onloadend'] = function(_0x4202e3) { _0x382f72['onCompleteObservable']['notifyObservers'](_0x382f72); } , _0x5ab01d['onload'] = function(_0x56c1f3) { _0x4770d9(_0x56c1f3['target']['result']); } , _0x5ab01d['onprogress'] = _0x1c6992, _0x5ab01d['readAsDataURL'](_0x54ef20), _0x382f72; } , _0x412670['ReadFile'] = function(_0x4497ed, _0x49d23c, _0x20d935, _0x379700) { var _0x223d17 = new FileReader() , _0x2d2831 = { 'onCompleteObservable': new _0x51c1ab['c'](), 'abort': function() { return _0x223d17['abort'](); } }; return _0x223d17['onloadend'] = function(_0x3c04e3) { return _0x2d2831['onCompleteObservable']['notifyObservers'](_0x2d2831); } , _0x223d17['onerror'] = function(_0x1fa7f9) { _0x1cb6be['a']['Log']('Error\x20while\x20reading\x20file:\x20' + _0x4497ed['name']), _0x49d23c(JSON['stringify']({ 'autoClear': !0x0, 'clearColor': [0x1, 0x0, 0x0], 'ambientColor': [0x0, 0x0, 0x0], 'gravity': [0x0, -9.807, 0x0], 'meshes': [], 'cameras': [], 'lights': [] })); } , _0x223d17['onload'] = function(_0x48d332) { _0x49d23c(_0x48d332['target']['result']); } , _0x20d935 && (_0x223d17['onprogress'] = _0x20d935), _0x379700 ? _0x223d17['readAsArrayBuffer'](_0x4497ed) : _0x223d17['readAsText'](_0x4497ed), _0x2d2831; } , _0x412670['FileAsURL'] = function(_0x1a0996) { var _0x3a8b55 = new Blob([_0x1a0996]); return (window['URL'] || window['webkitURL'])['createObjectURL'](_0x3a8b55); } , _0x412670['Format'] = function(_0x5ed88d, _0x506ec1) { return void 0x0 === _0x506ec1 && (_0x506ec1 = 0x2), _0x5ed88d['toFixed'](_0x506ec1); } , _0x412670['CheckExtends'] = function(_0x240bfe, _0x2e5993, _0x12b456) { _0x2e5993['minimizeInPlace'](_0x240bfe), _0x12b456['maximizeInPlace'](_0x240bfe); } , _0x412670['DeepCopy'] = function(_0x255ecb, _0x34896f, _0x31e271, _0xd7f533) { _0x1934ec['a']['DeepCopy'](_0x255ecb, _0x34896f, _0x31e271, _0xd7f533); } , _0x412670['IsEmpty'] = function(_0x1e94c0) { for (var _0x489563 in _0x1e94c0) if (_0x1e94c0['hasOwnProperty'](_0x489563)) return !0x1; return !0x0; } , _0x412670['EndsWith'] = function(_0x47f3d3, _0x2ef83a) { return -0x1 !== _0x47f3d3['indexOf'](_0x2ef83a, _0x47f3d3['length'] - _0x2ef83a['length']); } , _0x412670['RegisterTopRootEvents'] = function(_0xb5ec77) { for (var _0x4298c8 = 0x0; _0x4298c8 < _0xb5ec77['length']; _0x4298c8++) { var _0x345050 = _0xb5ec77[_0x4298c8]; window['addEventListener'](_0x345050['name'], _0x345050['handler'], !0x1); try { window['parent'] && window['parent']['addEventListener'](_0x345050['name'], _0x345050['handler'], !0x1); } catch (_0xb14a6d) {} } } , _0x412670['UnregisterTopRootEvents'] = function(_0x7454d2) { for (var _0x1d6b1d = 0x0; _0x1d6b1d < _0x7454d2['length']; _0x1d6b1d++) { var _0x226055 = _0x7454d2[_0x1d6b1d]; window['removeEventListener'](_0x226055['name'], _0x226055['handler']); try { window['parent'] && window['parent']['removeEventListener'](_0x226055['name'], _0x226055['handler']); } catch (_0x3d28c7) {} } } , _0x412670['DumpFramebuffer'] = function(_0xe3c1c0, _0x374178, _0x375710, _0x23e214, _0x5bc136, _0x2c9246) { void 0x0 === _0x5bc136 && (_0x5bc136 = 'image/png'); for (var _0x403c67 = 0x4 * _0xe3c1c0, _0x5dd620 = _0x374178 / 0x2, _0x18fbf1 = _0x375710['readPixels'](0x0, 0x0, _0xe3c1c0, _0x374178), _0x5be0f2 = 0x0; _0x5be0f2 < _0x5dd620; _0x5be0f2++) for (var _0x2d0b8e = 0x0; _0x2d0b8e < _0x403c67; _0x2d0b8e++) { var _0x2c0bae = _0x2d0b8e + _0x5be0f2 * _0x403c67 , _0x167a86 = _0x2d0b8e + (_0x374178 - _0x5be0f2 - 0x1) * _0x403c67 , _0x3634aa = _0x18fbf1[_0x2c0bae]; _0x18fbf1[_0x2c0bae] = _0x18fbf1[_0x167a86], _0x18fbf1[_0x167a86] = _0x3634aa; } _0x412670['_ScreenshotCanvas'] || (_0x412670['_ScreenshotCanvas'] = document['createElement']('canvas')), _0x412670['_ScreenshotCanvas']['width'] = _0xe3c1c0, _0x412670['_ScreenshotCanvas']['height'] = _0x374178; var _0x2db801 = _0x412670['_ScreenshotCanvas']['getContext']('2d'); if (_0x2db801) { var _0x5ebd16 = _0x2db801['createImageData'](_0xe3c1c0, _0x374178); _0x5ebd16['data']['set'](_0x18fbf1), _0x2db801['putImageData'](_0x5ebd16, 0x0, 0x0), _0x412670['EncodeScreenshotCanvasData'](_0x23e214, _0x5bc136, _0x2c9246); } } , _0x412670['ToBlob'] = function(_0x4217be, _0x47bbcf, _0x208fee) { void 0x0 === _0x208fee && (_0x208fee = 'image/png'), _0x4217be['toBlob'] || (_0x4217be['toBlob'] = function(_0x2c4383, _0x45ea19, _0x451df0) { var _0x1470e2 = this; setTimeout(function() { for (var _0x366c02 = atob(_0x1470e2['toDataURL'](_0x45ea19, _0x451df0)['split'](',')[0x1]), _0x36c792 = _0x366c02['length'], _0xca2b74 = new Uint8Array(_0x36c792), _0x22d22b = 0x0; _0x22d22b < _0x36c792; _0x22d22b++) _0xca2b74[_0x22d22b] = _0x366c02['charCodeAt'](_0x22d22b); _0x2c4383(new Blob([_0xca2b74])); }); } ), _0x4217be['toBlob'](function(_0x4f6016) { _0x47bbcf(_0x4f6016); }, _0x208fee); } , _0x412670['EncodeScreenshotCanvasData'] = function(_0x14e271, _0x202641, _0x5debf5) { (void 0x0 === _0x202641 && (_0x202641 = 'image/png'), _0x14e271) ? _0x14e271(_0x412670['_ScreenshotCanvas']['toDataURL'](_0x202641)) : this['ToBlob'](_0x412670['_ScreenshotCanvas'], function(_0x5c5aed) { if ('download'in document['createElement']('a')) { if (!_0x5debf5) { var _0x490342 = new Date() , _0x54ead1 = (_0x490342['getFullYear']() + '-' + (_0x490342['getMonth']() + 0x1))['slice'](0x2) + '-' + _0x490342['getDate']() + '_' + _0x490342['getHours']() + '-' + ('0' + _0x490342['getMinutes']())['slice'](-0x2); _0x5debf5 = 'screenshot_' + _0x54ead1 + '.png'; } _0x412670['Download'](_0x5c5aed, _0x5debf5); } else { var _0x4efc44 = URL['createObjectURL'](_0x5c5aed) , _0x29e0bc = window['open'](''); if (!_0x29e0bc) return; var _0x496a5b = _0x29e0bc['document']['createElement']('img'); _0x496a5b['onload'] = function() { URL['revokeObjectURL'](_0x4efc44); } , _0x496a5b['src'] = _0x4efc44, _0x29e0bc['document']['body']['appendChild'](_0x496a5b); } }, _0x202641); } , _0x412670['Download'] = function(_0x3a2940, _0x4adb82) { if (navigator && navigator['msSaveBlob']) navigator['msSaveBlob'](_0x3a2940, _0x4adb82); else { var _0x1109da = window['URL']['createObjectURL'](_0x3a2940) , _0x3a4eb2 = document['createElement']('a'); document['body']['appendChild'](_0x3a4eb2), _0x3a4eb2['style']['display'] = 'none', _0x3a4eb2['href'] = _0x1109da, _0x3a4eb2['download'] = _0x4adb82, _0x3a4eb2['addEventListener']('click', function() { _0x3a4eb2['parentElement'] && _0x3a4eb2['parentElement']['removeChild'](_0x3a4eb2); }), _0x3a4eb2['click'](), window['URL']['revokeObjectURL'](_0x1109da); } } , _0x412670['CreateScreenshot'] = function(_0x41d069, _0x350a17, _0x27b628, _0x492e12, _0x1e5ef3) { throw void 0x0 === _0x1e5ef3 && (_0x1e5ef3 = 'image/png'), _0x2354d1['a']['WarnImport']('ScreenshotTools'); } , _0x412670['CreateScreenshotUsingRenderTarget'] = function(_0x350447, _0x4fad52, _0x2cb944, _0x4a27bc, _0x5a44a5, _0x4552d4, _0x2beca3, _0x3e1146) { throw void 0x0 === _0x5a44a5 && (_0x5a44a5 = 'image/png'), void 0x0 === _0x4552d4 && (_0x4552d4 = 0x1), void 0x0 === _0x2beca3 && (_0x2beca3 = !0x1), _0x2354d1['a']['WarnImport']('ScreenshotTools'); } , _0x412670['RandomId'] = function() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'['replace'](/[xy]/g, function(_0x5a6153) { var _0x19d07e = 0x10 * Math['random']() | 0x0; return ('x' === _0x5a6153 ? _0x19d07e : 0x3 & _0x19d07e | 0x8)['toString'](0x10); }); } , _0x412670['IsBase64'] = function(_0x5b0d18) { return !(_0x5b0d18['length'] < 0x5) && 'data:' === _0x5b0d18['substr'](0x0, 0x5); } , _0x412670['DecodeBase64'] = function(_0x4a4c12) { for (var _0x123d04 = atob(_0x4a4c12['split'](',')[0x1]), _0x4c996d = _0x123d04['length'], _0x277c15 = new Uint8Array(new ArrayBuffer(_0x4c996d)), _0x51776d = 0x0; _0x51776d < _0x4c996d; _0x51776d++) _0x277c15[_0x51776d] = _0x123d04['charCodeAt'](_0x51776d); return _0x277c15['buffer']; } , _0x412670['GetAbsoluteUrl'] = function(_0x5d7e1f) { var _0x599941 = document['createElement']('a'); return _0x599941['href'] = _0x5d7e1f, _0x599941['href']; } , Object['defineProperty'](_0x412670, 'errorsCount', { 'get': function() { return _0x1cb6be['a']['errorsCount']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x412670['Log'] = function(_0x72cee5) { _0x1cb6be['a']['Log'](_0x72cee5); } , _0x412670['Warn'] = function(_0x2744c2) { _0x1cb6be['a']['Warn'](_0x2744c2); } , _0x412670['Error'] = function(_0x5399d4) { _0x1cb6be['a']['Error'](_0x5399d4); } , Object['defineProperty'](_0x412670, 'LogCache', { 'get': function() { return _0x1cb6be['a']['LogCache']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x412670['ClearLogCache'] = function() { _0x1cb6be['a']['ClearLogCache'](); } , Object['defineProperty'](_0x412670, 'LogLevels', { 'set': function(_0x4dd3d5) { _0x1cb6be['a']['LogLevels'] = _0x4dd3d5; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x412670['IsFileURL'] = function() { return 'file:' === location['protocol']; } , Object['defineProperty'](_0x412670, 'PerformanceLogLevel', { 'set': function(_0x4d954c) { return (_0x4d954c & _0x412670['PerformanceUserMarkLogLevel']) === _0x412670['PerformanceUserMarkLogLevel'] ? (_0x412670['StartPerformanceCounter'] = _0x412670['_StartUserMark'], void (_0x412670['EndPerformanceCounter'] = _0x412670['_EndUserMark'])) : (_0x4d954c & _0x412670['PerformanceConsoleLogLevel']) === _0x412670['PerformanceConsoleLogLevel'] ? (_0x412670['StartPerformanceCounter'] = _0x412670['_StartPerformanceConsole'], void (_0x412670['EndPerformanceCounter'] = _0x412670['_EndPerformanceConsole'])) : (_0x412670['StartPerformanceCounter'] = _0x412670['_StartPerformanceCounterDisabled'], void (_0x412670['EndPerformanceCounter'] = _0x412670['_EndPerformanceCounterDisabled'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x412670['_StartPerformanceCounterDisabled'] = function(_0x47f2c0, _0x117383) {} , _0x412670['_EndPerformanceCounterDisabled'] = function(_0x263e37, _0x5f124) {} , _0x412670['_StartUserMark'] = function(_0x438a97, _0x1e3562) { if (void 0x0 === _0x1e3562 && (_0x1e3562 = !0x0), !_0x412670['_performance']) { if (!_0x55e0c9['a']['IsWindowObjectExist']()) return; _0x412670['_performance'] = window['performance']; } _0x1e3562 && _0x412670['_performance']['mark'] && _0x412670['_performance']['mark'](_0x438a97 + '-Begin'); } , _0x412670['_EndUserMark'] = function(_0x35cd1b, _0x1e6442) { void 0x0 === _0x1e6442 && (_0x1e6442 = !0x0), _0x1e6442 && _0x412670['_performance']['mark'] && (_0x412670['_performance']['mark'](_0x35cd1b + '-End'), _0x412670['_performance']['measure'](_0x35cd1b, _0x35cd1b + '-Begin', _0x35cd1b + '-End')); } , _0x412670['_StartPerformanceConsole'] = function(_0x4ca9f8, _0x9381b) { void 0x0 === _0x9381b && (_0x9381b = !0x0), _0x9381b && (_0x412670['_StartUserMark'](_0x4ca9f8, _0x9381b), console['time'] && console['time'](_0x4ca9f8)); } , _0x412670['_EndPerformanceConsole'] = function(_0x4d09fe, _0xa796ec) { void 0x0 === _0xa796ec && (_0xa796ec = !0x0), _0xa796ec && (_0x412670['_EndUserMark'](_0x4d09fe, _0xa796ec), console['time'] && console['timeEnd'](_0x4d09fe)); } , Object['defineProperty'](_0x412670, 'Now', { 'get': function() { return _0x4f4d06['a']['Now']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x412670['GetClassName'] = function(_0x4c4e1a, _0x123f4f) { void 0x0 === _0x123f4f && (_0x123f4f = !0x1); var _0x47523a = null; if (!_0x123f4f && _0x4c4e1a['getClassName']) _0x47523a = _0x4c4e1a['getClassName'](); else { if (_0x4c4e1a instanceof Object) _0x47523a = (_0x123f4f ? _0x4c4e1a : Object['getPrototypeOf'](_0x4c4e1a))['constructor']['__bjsclassName__']; _0x47523a || (_0x47523a = typeof _0x4c4e1a); } return _0x47523a; } , _0x412670['First'] = function(_0x15e70e, _0x3f4b4f) { for (var _0x1911bb = 0x0, _0x49f0e8 = _0x15e70e; _0x1911bb < _0x49f0e8['length']; _0x1911bb++) { var _0x154443 = _0x49f0e8[_0x1911bb]; if (_0x3f4b4f(_0x154443)) return _0x154443; } return null; } , _0x412670['getFullClassName'] = function(_0x2046c9, _0x2dbec8) { void 0x0 === _0x2dbec8 && (_0x2dbec8 = !0x1); var _0x2a84a6 = null , _0x58229a = null; if (!_0x2dbec8 && _0x2046c9['getClassName']) _0x2a84a6 = _0x2046c9['getClassName'](); else { if (_0x2046c9 instanceof Object) { var _0x14b26f = _0x2dbec8 ? _0x2046c9 : Object['getPrototypeOf'](_0x2046c9); _0x2a84a6 = _0x14b26f['constructor']['__bjsclassName__'], _0x58229a = _0x14b26f['constructor']['__bjsmoduleName__']; } _0x2a84a6 || (_0x2a84a6 = typeof _0x2046c9); } return _0x2a84a6 ? (null != _0x58229a ? _0x58229a + '.' : '') + _0x2a84a6 : null; } , _0x412670['DelayAsync'] = function(_0x1b38ae) { return new Promise(function(_0x408a7e) { setTimeout(function() { _0x408a7e(); }, _0x1b38ae); } ); } , _0x412670['GetCurrentGradient'] = function(_0x5a563d, _0x126ba9, _0x425401) { for (var _0x13669c = 0x0; _0x13669c < _0x126ba9['length'] - 0x1; _0x13669c++) { var _0x25875d = _0x126ba9[_0x13669c] , _0x15ea5f = _0x126ba9[_0x13669c + 0x1]; if (_0x5a563d >= _0x25875d['gradient'] && _0x5a563d <= _0x15ea5f['gradient']) return void _0x425401(_0x25875d, _0x15ea5f, (_0x5a563d - _0x25875d['gradient']) / (_0x15ea5f['gradient'] - _0x25875d['gradient'])); } var _0xdb7992 = _0x126ba9['length'] - 0x1; _0x425401(_0x126ba9[_0xdb7992], _0x126ba9[_0xdb7992], 0x1); } , _0x412670['BaseUrl'] = '', _0x412670['UseCustomRequestHeaders'] = !0x1, _0x412670['CustomRequestHeaders'] = _0x2dfa9e['a']['CustomRequestHeaders'], _0x412670['DefaultRetryStrategy'] = _0x135211['ExponentialBackoff'](), _0x412670['CorsBehavior'] = 'anonymous', _0x412670['UseFallbackTexture'] = !0x0, _0x412670['RegisteredExternalClasses'] = {}, _0x412670['fallbackTexture'] = 'data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBmRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAAQAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQubmV0IDQuMC41AP/bAEMABAIDAwMCBAMDAwQEBAQFCQYFBQUFCwgIBgkNCw0NDQsMDA4QFBEODxMPDAwSGBITFRYXFxcOERkbGRYaFBYXFv/bAEMBBAQEBQUFCgYGChYPDA8WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFv/AABEIAQABAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APH6KKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76P//Z', _0x412670['_tmpFloatArray'] = new Float32Array(0x1), _0x412670['GetDOMTextContent'] = _0x55e0c9['a']['GetDOMTextContent'], _0x412670['PreprocessUrl'] = function(_0x4b20b5) { return _0x4b20b5; } , _0x412670['NoneLogLevel'] = _0x1cb6be['a']['NoneLogLevel'], _0x412670['MessageLogLevel'] = _0x1cb6be['a']['MessageLogLevel'], _0x412670['WarningLogLevel'] = _0x1cb6be['a']['WarningLogLevel'], _0x412670['ErrorLogLevel'] = _0x1cb6be['a']['ErrorLogLevel'], _0x412670['AllLogLevel'] = _0x1cb6be['a']['AllLogLevel'], _0x412670['IsWindowObjectExist'] = _0x55e0c9['a']['IsWindowObjectExist'], _0x412670['PerformanceNoneLogLevel'] = 0x0, _0x412670['PerformanceUserMarkLogLevel'] = 0x1, _0x412670['PerformanceConsoleLogLevel'] = 0x2, _0x412670['StartPerformanceCounter'] = _0x412670['_StartPerformanceCounterDisabled'], _0x412670['EndPerformanceCounter'] = _0x412670['_EndPerformanceCounterDisabled'], _0x412670; }() , _0x4f4b1c = function() { function _0x2e3ae8() { this['_startMonitoringTime'] = 0x0, this['_min'] = 0x0, this['_max'] = 0x0, this['_average'] = 0x0, this['_lastSecAverage'] = 0x0, this['_current'] = 0x0, this['_totalValueCount'] = 0x0, this['_totalAccumulated'] = 0x0, this['_lastSecAccumulated'] = 0x0, this['_lastSecTime'] = 0x0, this['_lastSecValueCount'] = 0x0; } return Object['defineProperty'](_0x2e3ae8['prototype'], 'min', { 'get': function() { return this['_min']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2e3ae8['prototype'], 'max', { 'get': function() { return this['_max']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2e3ae8['prototype'], 'average', { 'get': function() { return this['_average']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2e3ae8['prototype'], 'lastSecAverage', { 'get': function() { return this['_lastSecAverage']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2e3ae8['prototype'], 'current', { 'get': function() { return this['_current']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2e3ae8['prototype'], 'total', { 'get': function() { return this['_totalAccumulated']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2e3ae8['prototype'], 'count', { 'get': function() { return this['_totalValueCount']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x2e3ae8['prototype']['fetchNewFrame'] = function() { this['_totalValueCount']++, this['_current'] = 0x0, this['_lastSecValueCount']++; } , _0x2e3ae8['prototype']['addCount'] = function(_0x503911, _0x4190f3) { _0x2e3ae8['Enabled'] && (this['_current'] += _0x503911, _0x4190f3 && this['_fetchResult']()); } , _0x2e3ae8['prototype']['beginMonitoring'] = function() { _0x2e3ae8['Enabled'] && (this['_startMonitoringTime'] = _0x4f4d06['a']['Now']); } , _0x2e3ae8['prototype']['endMonitoring'] = function(_0x2c4c50) { if (void 0x0 === _0x2c4c50 && (_0x2c4c50 = !0x0), _0x2e3ae8['Enabled']) { _0x2c4c50 && this['fetchNewFrame'](); var _0x28cbca = _0x4f4d06['a']['Now']; this['_current'] = _0x28cbca - this['_startMonitoringTime'], _0x2c4c50 && this['_fetchResult'](); } } , _0x2e3ae8['prototype']['_fetchResult'] = function() { this['_totalAccumulated'] += this['_current'], this['_lastSecAccumulated'] += this['_current'], this['_min'] = Math['min'](this['_min'], this['_current']), this['_max'] = Math['max'](this['_max'], this['_current']), this['_average'] = this['_totalAccumulated'] / this['_totalValueCount']; var _0x49e6ac = _0x4f4d06['a']['Now']; _0x49e6ac - this['_lastSecTime'] > 0x3e8 && (this['_lastSecAverage'] = this['_lastSecAccumulated'] / this['_lastSecValueCount'], this['_lastSecTime'] = _0x49e6ac, this['_lastSecAccumulated'] = 0x0, this['_lastSecValueCount'] = 0x0); } , _0x2e3ae8['Enabled'] = !0x0, _0x2e3ae8; }(); function _0x4bbde3(_0x1a49fe, _0x74a655) { return function(_0x4de114) { _0x4de114['__bjsclassName__'] = _0x1a49fe, _0x4de114['__bjsmoduleName__'] = null != _0x74a655 ? _0x74a655 : null; } ; } var _0x1f7766 = function() { function _0x55ad4c(_0x4e942b, _0x270cc0, _0x4bbbf7, _0x4b4400) { void 0x0 === _0x4b4400 && (_0x4b4400 = 0x0), this['iterations'] = _0x4e942b, this['index'] = _0x4b4400 - 0x1, this['_done'] = !0x1, this['_fn'] = _0x270cc0, this['_successCallback'] = _0x4bbbf7; } return _0x55ad4c['prototype']['executeNext'] = function() { this['_done'] || (this['index'] + 0x1 < this['iterations'] ? (++this['index'], this['_fn'](this)) : this['breakLoop']()); } , _0x55ad4c['prototype']['breakLoop'] = function() { this['_done'] = !0x0, this['_successCallback'](); } , _0x55ad4c['Run'] = function(_0x54c11e, _0x1d2eae, _0x33002e, _0x1ed6c7) { void 0x0 === _0x1ed6c7 && (_0x1ed6c7 = 0x0); var _0x1df416 = new _0x55ad4c(_0x54c11e,_0x1d2eae,_0x33002e,_0x1ed6c7); return _0x1df416['executeNext'](), _0x1df416; } , _0x55ad4c['SyncAsyncForLoop'] = function(_0x54be17, _0x520ff3, _0x41ea1b, _0x4901d0, _0x2a64bb, _0x4abb15) { return void 0x0 === _0x4abb15 && (_0x4abb15 = 0x0), _0x55ad4c['Run'](Math['ceil'](_0x54be17 / _0x520ff3), function(_0x17c762) { _0x2a64bb && _0x2a64bb() ? _0x17c762['breakLoop']() : setTimeout(function() { for (var _0x3050e2 = 0x0; _0x3050e2 < _0x520ff3; ++_0x3050e2) { var _0x2b5930 = _0x17c762['index'] * _0x520ff3 + _0x3050e2; if (_0x2b5930 >= _0x54be17) break; if (_0x41ea1b(_0x2b5930), _0x2a64bb && _0x2a64bb()) { _0x17c762['breakLoop'](); break; } } _0x17c762['executeNext'](); }, _0x4abb15); }, _0x4901d0); } , _0x55ad4c; }(); } , function(_0x4e8765, _0xbe3d86, _0x30216a) { 'use strict'; _0x30216a['d'](_0xbe3d86, 'd', function() { return _0x559656; }), _0x30216a['d'](_0xbe3d86, 'a', function() { return _0x23388b; }), _0x30216a['d'](_0xbe3d86, 'c', function() { return _0x35a19f; }), _0x30216a['d'](_0xbe3d86, 'b', function() { return _0x240c27; }); var _0x31b8ef = _0x30216a(0x1) , _0x5d0850 = _0x30216a(0x8) , _0x516b66 = _0x30216a(0x69) , _0x5de640 = _0x30216a(0x3d) , _0x236e8b = _0x30216a(0x6a) , _0x49b495 = _0x30216a(0x9) , _0x17f173 = _0x30216a(0x0) , _0x20fb29 = _0x30216a(0xc) , _0x12c9c8 = _0x30216a(0x5) , _0x5cd921 = _0x30216a(0x14) , _0x1a5085 = _0x30216a(0x1a) , _0x1d88ea = _0x30216a(0x5e) , _0x426396 = _0x30216a(0x3) , _0x28a362 = _0x30216a(0x23) , _0x3fe383 = _0x30216a(0x6) , _0x5aba2b = _0x30216a(0x17) , _0x1ad15a = _0x30216a(0x5c) , _0x51a360 = _0x30216a(0x13) , _0x5ad3c1 = _0x30216a(0x6b) , _0x5f2dad = _0x30216a(0x49) , _0x5d9e3f = function() { return function() {} ; }() , _0x559656 = function() { return function() {} ; }() , _0x23388b = function() { return function() {} ; }() , _0x35a19f = function() { return function() {} ; }() , _0x240c27 = function() { function _0x2b36d6(_0xf681fc, _0x593af2, _0xecf985, _0x792390) { var _0x11ba06 = this; void 0x0 === _0x792390 && (_0x792390 = !0x1), this['forcePOTTextures'] = !0x1, this['isFullscreen'] = !0x1, this['isPointerLock'] = !0x1, this['cullBackFaces'] = !0x0, this['renderEvenInBackground'] = !0x0, this['preventCacheWipeBetweenFrames'] = !0x1, this['enableOfflineSupport'] = !0x1, this['disableManifestCheck'] = !0x1, this['scenes'] = new Array(), this['onNewSceneAddedObservable'] = new _0x5d0850['c'](), this['postProcesses'] = new Array(), this['validateShaderPrograms'] = !0x1, this['onResizeObservable'] = new _0x5d0850['c'](), this['onCanvasBlurObservable'] = new _0x5d0850['c'](), this['onCanvasFocusObservable'] = new _0x5d0850['c'](), this['onCanvasPointerOutObservable'] = new _0x5d0850['c'](), this['onBeforeTextureInitObservable'] = new _0x5d0850['c'](), this['disableUniformBuffers'] = !0x1, this['_uniformBuffers'] = new Array(), this['onBeginFrameObservable'] = new _0x5d0850['c'](), this['customAnimationFrameRequester'] = null, this['onEndFrameObservable'] = new _0x5d0850['c'](), this['onBeforeShaderCompilationObservable'] = new _0x5d0850['c'](), this['onAfterShaderCompilationObservable'] = new _0x5d0850['c'](), this['_windowIsBackground'] = !0x1, this['_webGLVersion'] = 0x1, this['_highPrecisionShadersAllowed'] = !0x0, this['_badOS'] = !0x1, this['_badDesktopOS'] = !0x1, this['_colorWrite'] = !0x0, this['_drawCalls'] = new _0x49b495['f'](), this['_renderingQueueLaunched'] = !0x1, this['_activeRenderLoops'] = new Array(), this['_deterministicLockstep'] = !0x1, this['_lockstepMaxSteps'] = 0x4, this['onContextLostObservable'] = new _0x5d0850['c'](), this['onContextRestoredObservable'] = new _0x5d0850['c'](), this['_contextWasLost'] = !0x1, this['_doNotHandleContextLost'] = !0x1, this['_performanceMonitor'] = new _0x516b66['a'](), this['_fps'] = 0x3c, this['_deltaTime'] = 0x0, this['disablePerformanceMonitorInBackground'] = !0x1, this['disableVertexArrayObjects'] = !0x1, this['_depthCullingState'] = new _0x1d88ea['b'](), this['_stencilState'] = new _0x1d88ea['c'](), this['_alphaState'] = new _0x1d88ea['a'](), this['_alphaMode'] = _0x2b36d6['ALPHA_DISABLE'], this['_internalTexturesCache'] = new Array(), this['_activeChannel'] = 0x0, this['_currentTextureChannel'] = -0x1, this['_boundTexturesCache'] = {}, this['_compiledEffects'] = {}, this['_vertexAttribArraysEnabled'] = [], this['_uintIndicesCurrentlySet'] = !0x1, this['_currentBoundBuffer'] = new Array(), this['_currentFramebuffer'] = null, this['_currentBufferPointers'] = new Array(), this['_currentInstanceLocations'] = new Array(), this['_currentInstanceBuffers'] = new Array(), this['_vaoRecordInProgress'] = !0x1, this['_mustWipeVertexAttributes'] = !0x1, this['_nextFreeTextureSlots'] = new Array(), this['_maxSimultaneousTextures'] = 0x0, this['_activeRequests'] = new Array(), this['_texturesSupported'] = new Array(), this['premultipliedAlpha'] = !0x0, this['_viewportCached'] = new _0x17f173['y'](0x0,0x0,0x0,0x0), this['_unpackFlipYCached'] = null, this['enableUnpackFlipYCached'] = !0x0, this['_boundUniforms'] = {}, _0x236e8b['a']['Apply'](); var _0x15ad73 = null; if (_0x2b36d6['Instances']['push'](this), _0xf681fc) { if (_0xecf985 = _0xecf985 || {}, _0xf681fc['getContext']) { if (_0x15ad73 = _0xf681fc, this['_renderingCanvas'] = _0x15ad73, null != _0x593af2 && (_0xecf985['antialias'] = _0x593af2), void 0x0 === _0xecf985['deterministicLockstep'] && (_0xecf985['deterministicLockstep'] = !0x1), void 0x0 === _0xecf985['lockstepMaxSteps'] && (_0xecf985['lockstepMaxSteps'] = 0x4), void 0x0 === _0xecf985['preserveDrawingBuffer'] && (_0xecf985['preserveDrawingBuffer'] = !0x1), void 0x0 === _0xecf985['audioEngine'] && (_0xecf985['audioEngine'] = !0x0), void 0x0 === _0xecf985['stencil'] && (_0xecf985['stencil'] = !0x0), !0x1 === _0xecf985['premultipliedAlpha'] && (this['premultipliedAlpha'] = !0x1), this['_deterministicLockstep'] = _0xecf985['deterministicLockstep'], this['_lockstepMaxSteps'] = _0xecf985['lockstepMaxSteps'], this['_doNotHandleContextLost'] = !!_0xecf985['doNotHandleContextLost'], navigator && navigator['userAgent']) for (var _0x2e6971 = navigator['userAgent'], _0x26e7fa = 0x0, _0x17ae72 = _0x2b36d6['ExceptionList']; _0x26e7fa < _0x17ae72['length']; _0x26e7fa++) { var _0x133fc6 = _0x17ae72[_0x26e7fa] , _0x2209c0 = _0x133fc6['key'] , _0x20dccf = _0x133fc6['targets']; if (new RegExp(_0x2209c0)['test'](_0x2e6971)) { if (_0x133fc6['capture'] && _0x133fc6['captureConstraint']) { var _0x25f72a = _0x133fc6['capture'] , _0x3c1eb0 = _0x133fc6['captureConstraint'] , _0x2d7e6f = new RegExp(_0x25f72a)['exec'](_0x2e6971); if (_0x2d7e6f && _0x2d7e6f['length'] > 0x0) if (parseInt(_0x2d7e6f[_0x2d7e6f['length'] - 0x1]) >= _0x3c1eb0) continue; } for (var _0x2d2405 = 0x0, _0x3ff6da = _0x20dccf; _0x2d2405 < _0x3ff6da['length']; _0x2d2405++) { switch (_0x3ff6da[_0x2d2405]) { case 'uniformBuffer': this['disableUniformBuffers'] = !0x0; break; case 'vao': this['disableVertexArrayObjects'] = !0x0; } } } } if (!_0xecf985['disableWebGL2Support']) try { this['_gl'] = _0x15ad73['getContext']('webgl2', _0xecf985) || _0x15ad73['getContext']('experimental-webgl2', _0xecf985), this['_gl'] && (this['_webGLVersion'] = 0x2, this['_gl']['deleteQuery'] || (this['_webGLVersion'] = 0x1)); } catch (_0x261df8) {} if (!this['_gl']) { if (!_0x15ad73) throw new Error('The\x20provided\x20canvas\x20is\x20null\x20or\x20undefined.'); try { this['_gl'] = _0x15ad73['getContext']('webgl', _0xecf985) || _0x15ad73['getContext']('experimental-webgl', _0xecf985); } catch (_0x46f835) { throw new Error('WebGL\x20not\x20supported'); } } if (!this['_gl']) throw new Error('WebGL\x20not\x20supported'); this['_gl']['pixelStorei'](this['_gl']['UNPACK_COLORSPACE_CONVERSION_WEBGL'], this['_gl']['NONE']), this['_onCanvasFocus'] = function() { _0x11ba06['onCanvasFocusObservable']['notifyObservers'](_0x11ba06); } , this['_onCanvasBlur'] = function() { _0x11ba06['onCanvasBlurObservable']['notifyObservers'](_0x11ba06); } , _0x15ad73['addEventListener']('focus', this['_onCanvasFocus']), _0x15ad73['addEventListener']('blur', this['_onCanvasBlur']), this['_onBlur'] = function() { _0x11ba06['disablePerformanceMonitorInBackground'] && _0x11ba06['_performanceMonitor']['disable'](), _0x11ba06['_windowIsBackground'] = !0x0; } , this['_onFocus'] = function() { _0x11ba06['disablePerformanceMonitorInBackground'] && _0x11ba06['_performanceMonitor']['enable'](), _0x11ba06['_windowIsBackground'] = !0x1; } , this['_onCanvasPointerOut'] = function(_0x4d9705) { _0x11ba06['onCanvasPointerOutObservable']['notifyObservers'](_0x4d9705); } , _0x28a362['a']['IsWindowObjectExist']() && (window['addEventListener']('blur', this['_onBlur']), window['addEventListener']('focus', this['_onFocus'])), _0x15ad73['addEventListener']('pointerout', this['_onCanvasPointerOut']), this['_doNotHandleContextLost'] || (this['_onContextLost'] = function(_0x5093f1) { _0x5093f1['preventDefault'](), _0x11ba06['_contextWasLost'] = !0x0, _0x3fe383['a']['Warn']('WebGL\x20context\x20lost.'), _0x11ba06['onContextLostObservable']['notifyObservers'](_0x11ba06); } , this['_onContextRestored'] = function() { setTimeout(function() { _0x11ba06['_initGLContext'](), _0x11ba06['_rebuildEffects'](), _0x11ba06['_rebuildInternalTextures'](), _0x11ba06['_rebuildBuffers'](), _0x11ba06['wipeCaches'](!0x0), _0x3fe383['a']['Warn']('WebGL\x20context\x20successfully\x20restored.'), _0x11ba06['onContextRestoredObservable']['notifyObservers'](_0x11ba06), _0x11ba06['_contextWasLost'] = !0x1; }, 0x0); } , _0x15ad73['addEventListener']('webglcontextlost', this['_onContextLost'], !0x1), _0x15ad73['addEventListener']('webglcontextrestored', this['_onContextRestored'], !0x1)), _0xecf985['doNotHandleTouchAction'] || this['_disableTouchAction'](); } else { this['_gl'] = _0xf681fc, this['_renderingCanvas'] = this['_gl']['canvas'], this['_gl']['renderbufferStorageMultisample'] && (this['_webGLVersion'] = 0x2); var _0x31c10e = this['_gl']['getContextAttributes'](); _0x31c10e && (_0xecf985['stencil'] = _0x31c10e['stencil']); } void 0x0 !== _0xecf985['useHighPrecisionFloats'] && (this['_highPrecisionShadersAllowed'] = _0xecf985['useHighPrecisionFloats']); var _0x577eda = _0x28a362['a']['IsWindowObjectExist']() && window['devicePixelRatio'] || 0x1 , _0x17a916 = _0xecf985['limitDeviceRatio'] || _0x577eda; if (this['_hardwareScalingLevel'] = _0x792390 ? 0x1 / Math['min'](_0x17a916, _0x577eda) : 0x1, this['resize'](), this['_isStencilEnable'] = !!_0xecf985['stencil'], this['_initGLContext'](), _0x15ad73) { var _0x35c0a1 = document; this['_onFullscreenChange'] = function() { void 0x0 !== _0x35c0a1['fullscreen'] ? _0x11ba06['isFullscreen'] = _0x35c0a1['fullscreen'] : void 0x0 !== _0x35c0a1['mozFullScreen'] ? _0x11ba06['isFullscreen'] = _0x35c0a1['mozFullScreen'] : void 0x0 !== _0x35c0a1['webkitIsFullScreen'] ? _0x11ba06['isFullscreen'] = _0x35c0a1['webkitIsFullScreen'] : void 0x0 !== _0x35c0a1['msIsFullScreen'] && (_0x11ba06['isFullscreen'] = _0x35c0a1['msIsFullScreen']), _0x11ba06['isFullscreen'] && _0x11ba06['_pointerLockRequested'] && _0x15ad73 && (_0x15ad73['requestPointerLock'] = _0x15ad73['requestPointerLock'] || _0x15ad73['msRequestPointerLock'] || _0x15ad73['mozRequestPointerLock'] || _0x15ad73['webkitRequestPointerLock'], _0x15ad73['requestPointerLock'] && _0x15ad73['requestPointerLock']()); } , document['addEventListener']('fullscreenchange', this['_onFullscreenChange'], !0x1), document['addEventListener']('mozfullscreenchange', this['_onFullscreenChange'], !0x1), document['addEventListener']('webkitfullscreenchange', this['_onFullscreenChange'], !0x1), document['addEventListener']('msfullscreenchange', this['_onFullscreenChange'], !0x1), this['_onPointerLockChange'] = function() { _0x11ba06['isPointerLock'] = _0x35c0a1['mozPointerLockElement'] === _0x15ad73 || _0x35c0a1['webkitPointerLockElement'] === _0x15ad73 || _0x35c0a1['msPointerLockElement'] === _0x15ad73 || _0x35c0a1['pointerLockElement'] === _0x15ad73; } , document['addEventListener']('pointerlockchange', this['_onPointerLockChange'], !0x1), document['addEventListener']('mspointerlockchange', this['_onPointerLockChange'], !0x1), document['addEventListener']('mozpointerlockchange', this['_onPointerLockChange'], !0x1), document['addEventListener']('webkitpointerlockchange', this['_onPointerLockChange'], !0x1), this['_connectVREvents'](_0x15ad73, _0x35c0a1); } !_0x2b36d6['audioEngine'] && _0xecf985['audioEngine'] && _0x2b36d6['AudioEngineFactory'] && (_0x2b36d6['audioEngine'] = _0x2b36d6['AudioEngineFactory'](this['getRenderingCanvas']())); for (var _0x3e24a8 = 0x0; _0x3e24a8 < this['_caps']['maxVertexAttribs']; _0x3e24a8++) this['_currentBufferPointers'][_0x3e24a8] = new _0x5d9e3f(); this['_prepareVRComponent'](), _0xecf985['autoEnableWebVR'] && this['initWebVR'](), this['_badOS'] = /iPad/i['test'](navigator['userAgent']) || /iPhone/i['test'](navigator['userAgent']), this['_badDesktopOS'] = /^((?!chrome|android).)*safari/i['test'](navigator['userAgent']), console['log']('Babylon.js\x20v' + _0x2b36d6['Version'] + '\x20-\x20' + this['description']), this['enableOfflineSupport'] = void 0x0 !== _0x2b36d6['OfflineProviderFactory']; } } return Object['defineProperty'](_0x2b36d6, 'Instances', { 'get': function() { return _0x5aba2b['a']['Instances']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6, 'LastCreatedEngine', { 'get': function() { return _0x5aba2b['a']['LastCreatedEngine']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6, 'LastCreatedScene', { 'get': function() { return _0x5aba2b['a']['LastCreatedScene']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x2b36d6['MarkAllMaterialsAsDirty'] = function(_0x265af0, _0x3aa03d) { for (var _0x4bb568 = 0x0; _0x4bb568 < _0x2b36d6['Instances']['length']; _0x4bb568++) for (var _0x305f0c = _0x2b36d6['Instances'][_0x4bb568], _0x31af1f = 0x0; _0x31af1f < _0x305f0c['scenes']['length']; _0x31af1f++) _0x305f0c['scenes'][_0x31af1f]['markAllMaterialsAsDirty'](_0x265af0, _0x3aa03d); } , Object['defineProperty'](_0x2b36d6, 'NpmPackage', { 'get': function() { return 'babylonjs@4.0.3'; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6, 'Version', { 'get': function() { return '4.0.3'; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'description', { 'get': function() { var _0x5c1d7f = 'WebGL' + this['webGLVersion']; return this['_caps']['parallelShaderCompile'] && (_0x5c1d7f += '\x20-\x20Parallel\x20shader\x20compilation'), _0x5c1d7f; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6, 'ShadersRepository', { 'get': function() { return _0x12c9c8['a']['ShadersRepository']; }, 'set': function(_0x50038d) { _0x12c9c8['a']['ShadersRepository'] = _0x50038d; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x2b36d6['DefaultLoadingScreenFactory'] = function(_0x1930c5) { throw _0x51a360['a']['WarnImport']('LoadingScreen'); } , Object['defineProperty'](_0x2b36d6['prototype'], 'supportsUniformBuffers', { 'get': function() { return this['webGLVersion'] > 0x1 && !this['disableUniformBuffers']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], '_shouldUseHighPrecisionShader', { 'get': function() { return this['_caps']['highPrecisionShaderSupported'] && this['_highPrecisionShadersAllowed']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'needPOTTextures', { 'get': function() { return this['_webGLVersion'] < 0x2 || this['forcePOTTextures']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'doNotHandleContextLost', { 'get': function() { return this['_doNotHandleContextLost']; }, 'set': function(_0x4910f6) { this['_doNotHandleContextLost'] = _0x4910f6; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'performanceMonitor', { 'get': function() { return this['_performanceMonitor']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'texturesSupported', { 'get': function() { return this['_texturesSupported']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'textureFormatInUse', { 'get': function() { return this['_textureFormatInUse']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'currentViewport', { 'get': function() { return this['_cachedViewport']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'emptyTexture', { 'get': function() { return this['_emptyTexture'] || (this['_emptyTexture'] = this['createRawTexture'](new Uint8Array(0x4), 0x1, 0x1, _0x2b36d6['TEXTUREFORMAT_RGBA'], !0x1, !0x1, _0x2b36d6['TEXTURE_NEAREST_SAMPLINGMODE'])), this['_emptyTexture']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'emptyTexture3D', { 'get': function() { return this['_emptyTexture3D'] || (this['_emptyTexture3D'] = this['createRawTexture3D'](new Uint8Array(0x4), 0x1, 0x1, 0x1, _0x2b36d6['TEXTUREFORMAT_RGBA'], !0x1, !0x1, _0x2b36d6['TEXTURE_NEAREST_SAMPLINGMODE'])), this['_emptyTexture3D']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'emptyCubeTexture', { 'get': function() { if (!this['_emptyCubeTexture']) { var _0x15256c = new Uint8Array(0x4) , _0x114d23 = [_0x15256c, _0x15256c, _0x15256c, _0x15256c, _0x15256c, _0x15256c]; this['_emptyCubeTexture'] = this['createRawCubeTexture'](_0x114d23, 0x1, _0x2b36d6['TEXTUREFORMAT_RGBA'], _0x2b36d6['TEXTURETYPE_UNSIGNED_INT'], !0x1, !0x1, _0x2b36d6['TEXTURE_NEAREST_SAMPLINGMODE']); } return this['_emptyCubeTexture']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x2b36d6['prototype']['initWebVR'] = function() { throw _0x51a360['a']['WarnImport']('WebVRCamera'); } , _0x2b36d6['prototype']['_prepareVRComponent'] = function() {} , _0x2b36d6['prototype']['_connectVREvents'] = function(_0x2a02c1, _0x8a7518) {} , _0x2b36d6['prototype']['_submitVRFrame'] = function() {} , _0x2b36d6['prototype']['disableVR'] = function() {} , _0x2b36d6['prototype']['isVRPresenting'] = function() { return !0x1; } , _0x2b36d6['prototype']['_requestVRFrame'] = function() {} , _0x2b36d6['prototype']['_disableTouchAction'] = function() { this['_renderingCanvas'] && (this['_renderingCanvas']['setAttribute']('touch-action', 'none'), this['_renderingCanvas']['style']['touchAction'] = 'none', this['_renderingCanvas']['style']['msTouchAction'] = 'none'); } , _0x2b36d6['prototype']['_rebuildInternalTextures'] = function() { for (var _0x4c6653 = 0x0, _0x3dcd81 = this['_internalTexturesCache']['slice'](); _0x4c6653 < _0x3dcd81['length']; _0x4c6653++) { _0x3dcd81[_0x4c6653]['_rebuild'](); } } , _0x2b36d6['prototype']['_rebuildEffects'] = function() { for (var _0x18656a in this['_compiledEffects']) { this['_compiledEffects'][_0x18656a]['_prepareEffect'](); } _0x12c9c8['a']['ResetCache'](); } , _0x2b36d6['prototype']['areAllEffectsReady'] = function() { for (var _0x150981 in this['_compiledEffects']) { if (!this['_compiledEffects'][_0x150981]['isReady']()) return !0x1; } return !0x0; } , _0x2b36d6['prototype']['_rebuildBuffers'] = function() { for (var _0x2bc9bd = 0x0, _0x254028 = this['scenes']; _0x2bc9bd < _0x254028['length']; _0x2bc9bd++) { var _0x5a738f = _0x254028[_0x2bc9bd]; _0x5a738f['resetCachedMaterial'](), _0x5a738f['_rebuildGeometries'](), _0x5a738f['_rebuildTextures'](); } for (var _0x231680 = 0x0, _0x586ee0 = this['_uniformBuffers']; _0x231680 < _0x586ee0['length']; _0x231680++) { _0x586ee0[_0x231680]['_rebuild'](); } } , _0x2b36d6['prototype']['_initGLContext'] = function() { this['_caps'] = new _0x35a19f(), this['_caps']['maxTexturesImageUnits'] = this['_gl']['getParameter'](this['_gl']['MAX_TEXTURE_IMAGE_UNITS']), this['_caps']['maxCombinedTexturesImageUnits'] = this['_gl']['getParameter'](this['_gl']['MAX_COMBINED_TEXTURE_IMAGE_UNITS']), this['_caps']['maxVertexTextureImageUnits'] = this['_gl']['getParameter'](this['_gl']['MAX_VERTEX_TEXTURE_IMAGE_UNITS']), this['_caps']['maxTextureSize'] = this['_gl']['getParameter'](this['_gl']['MAX_TEXTURE_SIZE']), this['_caps']['maxCubemapTextureSize'] = this['_gl']['getParameter'](this['_gl']['MAX_CUBE_MAP_TEXTURE_SIZE']), this['_caps']['maxRenderTextureSize'] = this['_gl']['getParameter'](this['_gl']['MAX_RENDERBUFFER_SIZE']), this['_caps']['maxVertexAttribs'] = this['_gl']['getParameter'](this['_gl']['MAX_VERTEX_ATTRIBS']), this['_caps']['maxVaryingVectors'] = this['_gl']['getParameter'](this['_gl']['MAX_VARYING_VECTORS']), this['_caps']['maxFragmentUniformVectors'] = this['_gl']['getParameter'](this['_gl']['MAX_FRAGMENT_UNIFORM_VECTORS']), this['_caps']['maxVertexUniformVectors'] = this['_gl']['getParameter'](this['_gl']['MAX_VERTEX_UNIFORM_VECTORS']), this['_glVersion'] = this['_gl']['getParameter'](this['_gl']['VERSION']); var _0x2bd099 = this['_gl']['getExtension']('WEBGL_debug_renderer_info'); if (null != _0x2bd099 && (this['_glRenderer'] = this['_gl']['getParameter'](_0x2bd099['UNMASKED_RENDERER_WEBGL']), this['_glVendor'] = this['_gl']['getParameter'](_0x2bd099['UNMASKED_VENDOR_WEBGL'])), this['_glVendor'] || (this['_glVendor'] = 'Unknown\x20vendor'), this['_glRenderer'] || (this['_glRenderer'] = 'Unknown\x20renderer'), this['_gl']['HALF_FLOAT_OES'] = 0x8d61, 0x881a !== this['_gl']['RGBA16F'] && (this['_gl']['RGBA16F'] = 0x881a), 0x8814 !== this['_gl']['RGBA32F'] && (this['_gl']['RGBA32F'] = 0x8814), 0x88f0 !== this['_gl']['DEPTH24_STENCIL8'] && (this['_gl']['DEPTH24_STENCIL8'] = 0x88f0), this['_caps']['standardDerivatives'] = this['_webGLVersion'] > 0x1 || null !== this['_gl']['getExtension']('OES_standard_derivatives'), this['_caps']['astc'] = this['_gl']['getExtension']('WEBGL_compressed_texture_astc') || this['_gl']['getExtension']('WEBKIT_WEBGL_compressed_texture_astc'), this['_caps']['s3tc'] = this['_gl']['getExtension']('WEBGL_compressed_texture_s3tc') || this['_gl']['getExtension']('WEBKIT_WEBGL_compressed_texture_s3tc'), this['_caps']['pvrtc'] = this['_gl']['getExtension']('WEBGL_compressed_texture_pvrtc') || this['_gl']['getExtension']('WEBKIT_WEBGL_compressed_texture_pvrtc'), this['_caps']['etc1'] = this['_gl']['getExtension']('WEBGL_compressed_texture_etc1') || this['_gl']['getExtension']('WEBKIT_WEBGL_compressed_texture_etc1'), this['_caps']['etc2'] = this['_gl']['getExtension']('WEBGL_compressed_texture_etc') || this['_gl']['getExtension']('WEBKIT_WEBGL_compressed_texture_etc') || this['_gl']['getExtension']('WEBGL_compressed_texture_es3_0'), this['_caps']['textureAnisotropicFilterExtension'] = this['_gl']['getExtension']('EXT_texture_filter_anisotropic') || this['_gl']['getExtension']('WEBKIT_EXT_texture_filter_anisotropic') || this['_gl']['getExtension']('MOZ_EXT_texture_filter_anisotropic'), this['_caps']['maxAnisotropy'] = this['_caps']['textureAnisotropicFilterExtension'] ? this['_gl']['getParameter'](this['_caps']['textureAnisotropicFilterExtension']['MAX_TEXTURE_MAX_ANISOTROPY_EXT']) : 0x0, this['_caps']['uintIndices'] = this['_webGLVersion'] > 0x1 || null !== this['_gl']['getExtension']('OES_element_index_uint'), this['_caps']['fragmentDepthSupported'] = this['_webGLVersion'] > 0x1 || null !== this['_gl']['getExtension']('EXT_frag_depth'), this['_caps']['highPrecisionShaderSupported'] = !0x1, this['_caps']['timerQuery'] = this['_gl']['getExtension']('EXT_disjoint_timer_query_webgl2') || this['_gl']['getExtension']('EXT_disjoint_timer_query'), this['_caps']['timerQuery'] && (0x1 === this['_webGLVersion'] && (this['_gl']['getQuery'] = this['_caps']['timerQuery']['getQueryEXT']['bind'](this['_caps']['timerQuery'])), this['_caps']['canUseTimestampForTimerQuery'] = this['_gl']['getQuery'](this['_caps']['timerQuery']['TIMESTAMP_EXT'], this['_caps']['timerQuery']['QUERY_COUNTER_BITS_EXT']) > 0x0), this['_caps']['colorBufferFloat'] = this['_webGLVersion'] > 0x1 && this['_gl']['getExtension']('EXT_color_buffer_float'), this['_caps']['textureFloat'] = !!(this['_webGLVersion'] > 0x1 || this['_gl']['getExtension']('OES_texture_float')), this['_caps']['textureFloatLinearFiltering'] = !(!this['_caps']['textureFloat'] || !this['_gl']['getExtension']('OES_texture_float_linear')), this['_caps']['textureFloatRender'] = !(!this['_caps']['textureFloat'] || !this['_canRenderToFloatFramebuffer']()), this['_caps']['textureHalfFloat'] = !!(this['_webGLVersion'] > 0x1 || this['_gl']['getExtension']('OES_texture_half_float')), this['_caps']['textureHalfFloatLinearFiltering'] = !!(this['_webGLVersion'] > 0x1 || this['_caps']['textureHalfFloat'] && this['_gl']['getExtension']('OES_texture_half_float_linear')), this['_webGLVersion'] > 0x1 && (this['_gl']['HALF_FLOAT_OES'] = 0x140b), this['_caps']['textureHalfFloatRender'] = this['_caps']['textureHalfFloat'] && this['_canRenderToHalfFloatFramebuffer'](), this['_caps']['textureLOD'] = !!(this['_webGLVersion'] > 0x1 || this['_gl']['getExtension']('EXT_shader_texture_lod')), this['_caps']['multiview'] = this['_gl']['getExtension']('OVR_multiview2'), this['_webGLVersion'] > 0x1) this['_caps']['drawBuffersExtension'] = !0x0; else { var _0x33c44b = this['_gl']['getExtension']('WEBGL_draw_buffers'); if (null !== _0x33c44b) { this['_caps']['drawBuffersExtension'] = !0x0, this['_gl']['drawBuffers'] = _0x33c44b['drawBuffersWEBGL']['bind'](_0x33c44b), this['_gl']['DRAW_FRAMEBUFFER'] = this['_gl']['FRAMEBUFFER']; for (var _0x972c59 = 0x0; _0x972c59 < 0x10; _0x972c59++) this['_gl']['COLOR_ATTACHMENT' + _0x972c59 + '_WEBGL'] = _0x33c44b['COLOR_ATTACHMENT' + _0x972c59 + '_WEBGL']; } else this['_caps']['drawBuffersExtension'] = !0x1; } if (this['_caps']['parallelShaderCompile'] = this['_gl']['getExtension']('KHR_parallel_shader_compile'), this['_webGLVersion'] > 0x1) this['_caps']['depthTextureExtension'] = !0x0; else { var _0x11ddcd = this['_gl']['getExtension']('WEBGL_depth_texture'); null != _0x11ddcd && (this['_caps']['depthTextureExtension'] = !0x0, this['_gl']['UNSIGNED_INT_24_8'] = _0x11ddcd['UNSIGNED_INT_24_8_WEBGL']); } if (this['disableVertexArrayObjects']) this['_caps']['vertexArrayObject'] = !0x1; else if (this['_webGLVersion'] > 0x1) this['_caps']['vertexArrayObject'] = !0x0; else { var _0x48583d = this['_gl']['getExtension']('OES_vertex_array_object'); null != _0x48583d ? (this['_caps']['vertexArrayObject'] = !0x0, this['_gl']['createVertexArray'] = _0x48583d['createVertexArrayOES']['bind'](_0x48583d), this['_gl']['bindVertexArray'] = _0x48583d['bindVertexArrayOES']['bind'](_0x48583d), this['_gl']['deleteVertexArray'] = _0x48583d['deleteVertexArrayOES']['bind'](_0x48583d)) : this['_caps']['vertexArrayObject'] = !0x1; } if (this['_webGLVersion'] > 0x1) this['_caps']['instancedArrays'] = !0x0; else { var _0x40e0b3 = this['_gl']['getExtension']('ANGLE_instanced_arrays'); null != _0x40e0b3 ? (this['_caps']['instancedArrays'] = !0x0, this['_gl']['drawArraysInstanced'] = _0x40e0b3['drawArraysInstancedANGLE']['bind'](_0x40e0b3), this['_gl']['drawElementsInstanced'] = _0x40e0b3['drawElementsInstancedANGLE']['bind'](_0x40e0b3), this['_gl']['vertexAttribDivisor'] = _0x40e0b3['vertexAttribDivisorANGLE']['bind'](_0x40e0b3)) : this['_caps']['instancedArrays'] = !0x1; } if (this['_caps']['astc'] && this['texturesSupported']['push']('-astc.ktx'), this['_caps']['s3tc'] && this['texturesSupported']['push']('-dxt.ktx'), this['_caps']['pvrtc'] && this['texturesSupported']['push']('-pvrtc.ktx'), this['_caps']['etc2'] && this['texturesSupported']['push']('-etc2.ktx'), this['_caps']['etc1'] && this['texturesSupported']['push']('-etc1.ktx'), this['_gl']['getShaderPrecisionFormat']) { var _0x313a44 = this['_gl']['getShaderPrecisionFormat'](this['_gl']['VERTEX_SHADER'], this['_gl']['HIGH_FLOAT']) , _0x16123d = this['_gl']['getShaderPrecisionFormat'](this['_gl']['FRAGMENT_SHADER'], this['_gl']['HIGH_FLOAT']); _0x313a44 && _0x16123d && (this['_caps']['highPrecisionShaderSupported'] = 0x0 !== _0x313a44['precision'] && 0x0 !== _0x16123d['precision']); } this['setDepthBuffer'](!0x0), this['setDepthFunctionToLessOrEqual'](), this['setDepthWrite'](!0x0), this['_maxSimultaneousTextures'] = this['_caps']['maxCombinedTexturesImageUnits']; for (var _0x578623 = 0x0; _0x578623 < this['_maxSimultaneousTextures']; _0x578623++) this['_nextFreeTextureSlots']['push'](_0x578623); } , Object['defineProperty'](_0x2b36d6['prototype'], 'webGLVersion', { 'get': function() { return this['_webGLVersion']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'isStencilEnable', { 'get': function() { return this['_isStencilEnable']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x2b36d6['prototype']['_prepareWorkingCanvas'] = function() { if (!this['_workingCanvas']) { this['_workingCanvas'] = document['createElement']('canvas'); var _0x498b29 = this['_workingCanvas']['getContext']('2d'); _0x498b29 && (this['_workingContext'] = _0x498b29); } } , _0x2b36d6['prototype']['resetTextureCache'] = function() { for (var _0x485c82 in this['_boundTexturesCache']) this['_boundTexturesCache']['hasOwnProperty'](_0x485c82) && (this['_boundTexturesCache'][_0x485c82] = null); this['_currentTextureChannel'] = -0x1; } , _0x2b36d6['prototype']['isDeterministicLockStep'] = function() { return this['_deterministicLockstep']; } , _0x2b36d6['prototype']['getLockstepMaxSteps'] = function() { return this['_lockstepMaxSteps']; } , _0x2b36d6['prototype']['getGlInfo'] = function() { return { 'vendor': this['_glVendor'], 'renderer': this['_glRenderer'], 'version': this['_glVersion'] }; } , _0x2b36d6['prototype']['getAspectRatio'] = function(_0x207926, _0x532d96) { void 0x0 === _0x532d96 && (_0x532d96 = !0x1); var _0x10f614 = _0x207926['viewport']; return this['getRenderWidth'](_0x532d96) * _0x10f614['width'] / (this['getRenderHeight'](_0x532d96) * _0x10f614['height']); } , _0x2b36d6['prototype']['getScreenAspectRatio'] = function() { return this['getRenderWidth'](!0x0) / this['getRenderHeight'](!0x0); } , _0x2b36d6['prototype']['getRenderWidth'] = function(_0x206d61) { return void 0x0 === _0x206d61 && (_0x206d61 = !0x1), !_0x206d61 && this['_currentRenderTarget'] ? this['_currentRenderTarget']['width'] : this['_gl']['drawingBufferWidth']; } , _0x2b36d6['prototype']['getRenderHeight'] = function(_0x39efbe) { return void 0x0 === _0x39efbe && (_0x39efbe = !0x1), !_0x39efbe && this['_currentRenderTarget'] ? this['_currentRenderTarget']['height'] : this['_gl']['drawingBufferHeight']; } , _0x2b36d6['prototype']['getRenderingCanvas'] = function() { return this['_renderingCanvas']; } , _0x2b36d6['prototype']['getRenderingCanvasClientRect'] = function() { return this['_renderingCanvas'] ? this['_renderingCanvas']['getBoundingClientRect']() : null; } , _0x2b36d6['prototype']['setHardwareScalingLevel'] = function(_0x2f86a2) { this['_hardwareScalingLevel'] = _0x2f86a2, this['resize'](); } , _0x2b36d6['prototype']['getHardwareScalingLevel'] = function() { return this['_hardwareScalingLevel']; } , _0x2b36d6['prototype']['getLoadedTexturesCache'] = function() { return this['_internalTexturesCache']; } , _0x2b36d6['prototype']['getCaps'] = function() { return this['_caps']; } , _0x2b36d6['prototype']['getDepthFunction'] = function() { return this['_depthCullingState']['depthFunc']; } , _0x2b36d6['prototype']['setDepthFunction'] = function(_0x29a439) { this['_depthCullingState']['depthFunc'] = _0x29a439; } , _0x2b36d6['prototype']['setDepthFunctionToGreater'] = function() { this['_depthCullingState']['depthFunc'] = this['_gl']['GREATER']; } , _0x2b36d6['prototype']['setDepthFunctionToGreaterOrEqual'] = function() { this['_depthCullingState']['depthFunc'] = this['_gl']['GEQUAL']; } , _0x2b36d6['prototype']['setDepthFunctionToLess'] = function() { this['_depthCullingState']['depthFunc'] = this['_gl']['LESS']; } , _0x2b36d6['prototype']['cacheStencilState'] = function() { this['_cachedStencilBuffer'] = this['getStencilBuffer'](), this['_cachedStencilFunction'] = this['getStencilFunction'](), this['_cachedStencilMask'] = this['getStencilMask'](), this['_cachedStencilOperationPass'] = this['getStencilOperationPass'](), this['_cachedStencilOperationFail'] = this['getStencilOperationFail'](), this['_cachedStencilOperationDepthFail'] = this['getStencilOperationDepthFail'](), this['_cachedStencilReference'] = this['getStencilFunctionReference'](); } , _0x2b36d6['prototype']['restoreStencilState'] = function() { this['setStencilFunction'](this['_cachedStencilFunction']), this['setStencilMask'](this['_cachedStencilMask']), this['setStencilBuffer'](this['_cachedStencilBuffer']), this['setStencilOperationPass'](this['_cachedStencilOperationPass']), this['setStencilOperationFail'](this['_cachedStencilOperationFail']), this['setStencilOperationDepthFail'](this['_cachedStencilOperationDepthFail']), this['setStencilFunctionReference'](this['_cachedStencilReference']); } , _0x2b36d6['prototype']['setDepthFunctionToLessOrEqual'] = function() { this['_depthCullingState']['depthFunc'] = this['_gl']['LEQUAL']; } , _0x2b36d6['prototype']['getStencilBuffer'] = function() { return this['_stencilState']['stencilTest']; } , _0x2b36d6['prototype']['setStencilBuffer'] = function(_0x5a247a) { this['_stencilState']['stencilTest'] = _0x5a247a; } , _0x2b36d6['prototype']['getStencilMask'] = function() { return this['_stencilState']['stencilMask']; } , _0x2b36d6['prototype']['setStencilMask'] = function(_0x1f3ea9) { this['_stencilState']['stencilMask'] = _0x1f3ea9; } , _0x2b36d6['prototype']['getStencilFunction'] = function() { return this['_stencilState']['stencilFunc']; } , _0x2b36d6['prototype']['getStencilFunctionReference'] = function() { return this['_stencilState']['stencilFuncRef']; } , _0x2b36d6['prototype']['getStencilFunctionMask'] = function() { return this['_stencilState']['stencilFuncMask']; } , _0x2b36d6['prototype']['setStencilFunction'] = function(_0x110225) { this['_stencilState']['stencilFunc'] = _0x110225; } , _0x2b36d6['prototype']['setStencilFunctionReference'] = function(_0x4a6353) { this['_stencilState']['stencilFuncRef'] = _0x4a6353; } , _0x2b36d6['prototype']['setStencilFunctionMask'] = function(_0x3ec564) { this['_stencilState']['stencilFuncMask'] = _0x3ec564; } , _0x2b36d6['prototype']['getStencilOperationFail'] = function() { return this['_stencilState']['stencilOpStencilFail']; } , _0x2b36d6['prototype']['getStencilOperationDepthFail'] = function() { return this['_stencilState']['stencilOpDepthFail']; } , _0x2b36d6['prototype']['getStencilOperationPass'] = function() { return this['_stencilState']['stencilOpStencilDepthPass']; } , _0x2b36d6['prototype']['setStencilOperationFail'] = function(_0x41ee18) { this['_stencilState']['stencilOpStencilFail'] = _0x41ee18; } , _0x2b36d6['prototype']['setStencilOperationDepthFail'] = function(_0x30dda0) { this['_stencilState']['stencilOpDepthFail'] = _0x30dda0; } , _0x2b36d6['prototype']['setStencilOperationPass'] = function(_0x38d0d4) { this['_stencilState']['stencilOpStencilDepthPass'] = _0x38d0d4; } , _0x2b36d6['prototype']['setDitheringState'] = function(_0x578a19) { _0x578a19 ? this['_gl']['enable'](this['_gl']['DITHER']) : this['_gl']['disable'](this['_gl']['DITHER']); } , _0x2b36d6['prototype']['setRasterizerState'] = function(_0x4e7096) { _0x4e7096 ? this['_gl']['disable'](this['_gl']['RASTERIZER_DISCARD']) : this['_gl']['enable'](this['_gl']['RASTERIZER_DISCARD']); } , _0x2b36d6['prototype']['stopRenderLoop'] = function(_0x1431c0) { if (_0x1431c0) { var _0x157ab9 = this['_activeRenderLoops']['indexOf'](_0x1431c0); _0x157ab9 >= 0x0 && this['_activeRenderLoops']['splice'](_0x157ab9, 0x1); } else this['_activeRenderLoops'] = []; } , _0x2b36d6['prototype']['_renderLoop'] = function() { if (!this['_contextWasLost']) { var _0x454939 = !0x0; if (!this['renderEvenInBackground'] && this['_windowIsBackground'] && (_0x454939 = !0x1), _0x454939) { this['beginFrame'](); for (var _0x5dfbf8 = 0x0; _0x5dfbf8 < this['_activeRenderLoops']['length']; _0x5dfbf8++) { (0x0, this['_activeRenderLoops'][_0x5dfbf8])(); } this['endFrame'](); } } this['_activeRenderLoops']['length'] > 0x0 ? this['customAnimationFrameRequester'] ? (this['customAnimationFrameRequester']['requestID'] = _0x49b495['h']['QueueNewFrame'](this['customAnimationFrameRequester']['renderFunction'] || this['_bindedRenderFunction'], this['customAnimationFrameRequester']), this['_frameHandler'] = this['customAnimationFrameRequester']['requestID']) : this['isVRPresenting']() ? this['_requestVRFrame']() : this['_frameHandler'] = _0x49b495['h']['QueueNewFrame'](this['_bindedRenderFunction']) : this['_renderingQueueLaunched'] = !0x1; } , _0x2b36d6['prototype']['runRenderLoop'] = function(_0x2d41ef) { -0x1 === this['_activeRenderLoops']['indexOf'](_0x2d41ef) && (this['_activeRenderLoops']['push'](_0x2d41ef), this['_renderingQueueLaunched'] || (this['_renderingQueueLaunched'] = !0x0, this['_bindedRenderFunction'] = this['_renderLoop']['bind'](this), this['_frameHandler'] = _0x49b495['h']['QueueNewFrame'](this['_bindedRenderFunction']))); } , _0x2b36d6['prototype']['switchFullscreen'] = function(_0x52cf58) { this['isFullscreen'] ? this['exitFullscreen']() : this['enterFullscreen'](_0x52cf58); } , _0x2b36d6['prototype']['enterFullscreen'] = function(_0x825396) { this['isFullscreen'] || (this['_pointerLockRequested'] = _0x825396, this['_renderingCanvas'] && _0x49b495['h']['RequestFullscreen'](this['_renderingCanvas'])); } , _0x2b36d6['prototype']['exitFullscreen'] = function() { this['isFullscreen'] && _0x49b495['h']['ExitFullscreen'](); } , _0x2b36d6['prototype']['clear'] = function(_0x19af8d, _0x4d076a, _0x3d8ec0, _0x1e86c2) { void 0x0 === _0x1e86c2 && (_0x1e86c2 = !0x1), this['applyStates'](); var _0x564b45 = 0x0; _0x4d076a && _0x19af8d && (this['_gl']['clearColor'](_0x19af8d['r'], _0x19af8d['g'], _0x19af8d['b'], void 0x0 !== _0x19af8d['a'] ? _0x19af8d['a'] : 0x1), _0x564b45 |= this['_gl']['COLOR_BUFFER_BIT']), _0x3d8ec0 && (this['_gl']['clearDepth'](0x1), _0x564b45 |= this['_gl']['DEPTH_BUFFER_BIT']), _0x1e86c2 && (this['_gl']['clearStencil'](0x0), _0x564b45 |= this['_gl']['STENCIL_BUFFER_BIT']), this['_gl']['clear'](_0x564b45); } , _0x2b36d6['prototype']['scissorClear'] = function(_0x9ef8c1, _0x5b476d, _0x3f4275, _0x35b70c, _0x39f25d) { this['enableScissor'](_0x9ef8c1, _0x5b476d, _0x3f4275, _0x35b70c), this['clear'](_0x39f25d, !0x0, !0x0, !0x0), this['disableScissor'](); } , _0x2b36d6['prototype']['enableScissor'] = function(_0x4fd23e, _0x266749, _0x3e0701, _0x5c44f6) { var _0x34e301 = this['_gl']; _0x34e301['enable'](_0x34e301['SCISSOR_TEST']), _0x34e301['scissor'](_0x4fd23e, _0x266749, _0x3e0701, _0x5c44f6); } , _0x2b36d6['prototype']['disableScissor'] = function() { var _0x468dd5 = this['_gl']; _0x468dd5['disable'](_0x468dd5['SCISSOR_TEST']); } , _0x2b36d6['prototype']['_viewport'] = function(_0x32f7be, _0x2a0064, _0x1dc08c, _0x4f309f) { _0x32f7be === this['_viewportCached']['x'] && _0x2a0064 === this['_viewportCached']['y'] && _0x1dc08c === this['_viewportCached']['z'] && _0x4f309f === this['_viewportCached']['w'] || (this['_viewportCached']['x'] = _0x32f7be, this['_viewportCached']['y'] = _0x2a0064, this['_viewportCached']['z'] = _0x1dc08c, this['_viewportCached']['w'] = _0x4f309f, this['_gl']['viewport'](_0x32f7be, _0x2a0064, _0x1dc08c, _0x4f309f)); } , _0x2b36d6['prototype']['setViewport'] = function(_0x2a671b, _0x83d08a, _0x5ef4f8) { var _0x4d04ca = _0x83d08a || this['getRenderWidth']() , _0x2668ce = _0x5ef4f8 || this['getRenderHeight']() , _0xcf1c25 = _0x2a671b['x'] || 0x0 , _0x1829eb = _0x2a671b['y'] || 0x0; this['_cachedViewport'] = _0x2a671b, this['_viewport'](_0xcf1c25 * _0x4d04ca, _0x1829eb * _0x2668ce, _0x4d04ca * _0x2a671b['width'], _0x2668ce * _0x2a671b['height']); } , _0x2b36d6['prototype']['setDirectViewport'] = function(_0x1cd3e5, _0x3fe907, _0x5659f3, _0x3256ae) { var _0x68cb68 = this['_cachedViewport']; return this['_cachedViewport'] = null, this['_viewport'](_0x1cd3e5, _0x3fe907, _0x5659f3, _0x3256ae), _0x68cb68; } , _0x2b36d6['prototype']['beginFrame'] = function() { this['onBeginFrameObservable']['notifyObservers'](this), this['_measureFps'](); } , _0x2b36d6['prototype']['endFrame'] = function() { this['_badOS'] && this['flushFramebuffer'](), this['_submitVRFrame'](), this['onEndFrameObservable']['notifyObservers'](this); } , _0x2b36d6['prototype']['resize'] = function() { if (!this['isVRPresenting']()) { var _0x32c485 = this['_renderingCanvas'] ? this['_renderingCanvas']['clientWidth'] : window['innerWidth'] , _0x17d6d4 = this['_renderingCanvas'] ? this['_renderingCanvas']['clientHeight'] : window['innerHeight']; this['setSize'](_0x32c485 / this['_hardwareScalingLevel'], _0x17d6d4 / this['_hardwareScalingLevel']); } } , _0x2b36d6['prototype']['setSize'] = function(_0x2294ba, _0x5a63c7) { if (this['_renderingCanvas'] && (this['_renderingCanvas']['width'] !== _0x2294ba || this['_renderingCanvas']['height'] !== _0x5a63c7)) { this['_renderingCanvas']['width'] = _0x2294ba, this['_renderingCanvas']['height'] = _0x5a63c7; for (var _0x5257d9 = 0x0; _0x5257d9 < this['scenes']['length']; _0x5257d9++) for (var _0x7b60bf = this['scenes'][_0x5257d9], _0x5a3162 = 0x0; _0x5a3162 < _0x7b60bf['cameras']['length']; _0x5a3162++) { _0x7b60bf['cameras'][_0x5a3162]['_currentRenderId'] = 0x0; } this['onResizeObservable']['hasObservers'] && this['onResizeObservable']['notifyObservers'](this); } } , _0x2b36d6['prototype']['bindFramebuffer'] = function(_0x19aad7, _0xcc14ef, _0x291527, _0x4a11e2, _0x3f27e2, _0x36f9b2, _0x55aa06) { void 0x0 === _0x55aa06 && (_0x55aa06 = 0x0), this['_currentRenderTarget'] && this['unBindFramebuffer'](this['_currentRenderTarget']), this['_currentRenderTarget'] = _0x19aad7, this['_bindUnboundFramebuffer'](_0x19aad7['_MSAAFramebuffer'] ? _0x19aad7['_MSAAFramebuffer'] : _0x19aad7['_framebuffer']); var _0x318fca = this['_gl']; _0x19aad7['isCube'] && (void 0x0 === _0xcc14ef && (_0xcc14ef = 0x0), _0x318fca['framebufferTexture2D'](_0x318fca['FRAMEBUFFER'], _0x318fca['COLOR_ATTACHMENT0'], _0x318fca['TEXTURE_CUBE_MAP_POSITIVE_X'] + _0xcc14ef, _0x19aad7['_webGLTexture'], _0x55aa06), _0x36f9b2 && (_0x36f9b2['_generateStencilBuffer'] ? _0x318fca['framebufferTexture2D'](_0x318fca['FRAMEBUFFER'], _0x318fca['DEPTH_STENCIL_ATTACHMENT'], _0x318fca['TEXTURE_CUBE_MAP_POSITIVE_X'] + _0xcc14ef, _0x36f9b2['_webGLTexture'], _0x55aa06) : _0x318fca['framebufferTexture2D'](_0x318fca['FRAMEBUFFER'], _0x318fca['DEPTH_ATTACHMENT'], _0x318fca['TEXTURE_CUBE_MAP_POSITIVE_X'] + _0xcc14ef, _0x36f9b2['_webGLTexture'], _0x55aa06))), this['_cachedViewport'] && !_0x3f27e2 ? this['setViewport'](this['_cachedViewport'], _0x291527, _0x4a11e2) : (_0x291527 || (_0x291527 = _0x19aad7['width'], _0x55aa06 && (_0x291527 /= Math['pow'](0x2, _0x55aa06))), _0x4a11e2 || (_0x4a11e2 = _0x19aad7['height'], _0x55aa06 && (_0x4a11e2 /= Math['pow'](0x2, _0x55aa06))), this['_viewport'](0x0, 0x0, _0x291527, _0x4a11e2)), this['wipeCaches'](); } , _0x2b36d6['prototype']['_bindUnboundFramebuffer'] = function(_0x1dcf56) { this['_currentFramebuffer'] !== _0x1dcf56 && (this['_gl']['bindFramebuffer'](this['_gl']['FRAMEBUFFER'], _0x1dcf56), this['_currentFramebuffer'] = _0x1dcf56); } , _0x2b36d6['prototype']['unBindFramebuffer'] = function(_0x40e610, _0x314819, _0x3cad29) { void 0x0 === _0x314819 && (_0x314819 = !0x1), this['_currentRenderTarget'] = null; var _0x4ae2f3 = this['_gl']; _0x40e610['_MSAAFramebuffer'] && (_0x4ae2f3['bindFramebuffer'](_0x4ae2f3['READ_FRAMEBUFFER'], _0x40e610['_MSAAFramebuffer']), _0x4ae2f3['bindFramebuffer'](_0x4ae2f3['DRAW_FRAMEBUFFER'], _0x40e610['_framebuffer']), _0x4ae2f3['blitFramebuffer'](0x0, 0x0, _0x40e610['width'], _0x40e610['height'], 0x0, 0x0, _0x40e610['width'], _0x40e610['height'], _0x4ae2f3['COLOR_BUFFER_BIT'], _0x4ae2f3['NEAREST'])), !_0x40e610['generateMipMaps'] || _0x314819 || _0x40e610['isCube'] || (this['_bindTextureDirectly'](_0x4ae2f3['TEXTURE_2D'], _0x40e610, !0x0), _0x4ae2f3['generateMipmap'](_0x4ae2f3['TEXTURE_2D']), this['_bindTextureDirectly'](_0x4ae2f3['TEXTURE_2D'], null)), _0x3cad29 && (_0x40e610['_MSAAFramebuffer'] && this['_bindUnboundFramebuffer'](_0x40e610['_framebuffer']), _0x3cad29()), this['_bindUnboundFramebuffer'](null); } , _0x2b36d6['prototype']['generateMipMapsForCubemap'] = function(_0x3351c8) { if (_0x3351c8['generateMipMaps']) { var _0x55e3e7 = this['_gl']; this['_bindTextureDirectly'](_0x55e3e7['TEXTURE_CUBE_MAP'], _0x3351c8, !0x0), _0x55e3e7['generateMipmap'](_0x55e3e7['TEXTURE_CUBE_MAP']), this['_bindTextureDirectly'](_0x55e3e7['TEXTURE_CUBE_MAP'], null); } } , _0x2b36d6['prototype']['flushFramebuffer'] = function() { this['_gl']['flush'](); } , _0x2b36d6['prototype']['restoreDefaultFramebuffer'] = function() { this['_currentRenderTarget'] ? this['unBindFramebuffer'](this['_currentRenderTarget']) : this['_bindUnboundFramebuffer'](null), this['_cachedViewport'] && this['setViewport'](this['_cachedViewport']), this['wipeCaches'](); } , _0x2b36d6['prototype']['createUniformBuffer'] = function(_0x2a0cda) { var _0x5b5d84 = this['_gl']['createBuffer'](); if (!_0x5b5d84) throw new Error('Unable\x20to\x20create\x20uniform\x20buffer'); var _0x1adf13 = new _0x5f2dad['a'](_0x5b5d84); return this['bindUniformBuffer'](_0x1adf13), _0x2a0cda instanceof Float32Array ? this['_gl']['bufferData'](this['_gl']['UNIFORM_BUFFER'], _0x2a0cda, this['_gl']['STATIC_DRAW']) : this['_gl']['bufferData'](this['_gl']['UNIFORM_BUFFER'], new Float32Array(_0x2a0cda), this['_gl']['STATIC_DRAW']), this['bindUniformBuffer'](null), _0x1adf13['references'] = 0x1, _0x1adf13; } , _0x2b36d6['prototype']['createDynamicUniformBuffer'] = function(_0x242a4a) { var _0x38731c = this['_gl']['createBuffer'](); if (!_0x38731c) throw new Error('Unable\x20to\x20create\x20dynamic\x20uniform\x20buffer'); var _0x1f01fa = new _0x5f2dad['a'](_0x38731c); return this['bindUniformBuffer'](_0x1f01fa), _0x242a4a instanceof Float32Array ? this['_gl']['bufferData'](this['_gl']['UNIFORM_BUFFER'], _0x242a4a, this['_gl']['DYNAMIC_DRAW']) : this['_gl']['bufferData'](this['_gl']['UNIFORM_BUFFER'], new Float32Array(_0x242a4a), this['_gl']['DYNAMIC_DRAW']), this['bindUniformBuffer'](null), _0x1f01fa['references'] = 0x1, _0x1f01fa; } , _0x2b36d6['prototype']['updateUniformBuffer'] = function(_0xfea74, _0x275677, _0x278078, _0x32d6b9) { this['bindUniformBuffer'](_0xfea74), void 0x0 === _0x278078 && (_0x278078 = 0x0), void 0x0 === _0x32d6b9 ? _0x275677 instanceof Float32Array ? this['_gl']['bufferSubData'](this['_gl']['UNIFORM_BUFFER'], _0x278078, _0x275677) : this['_gl']['bufferSubData'](this['_gl']['UNIFORM_BUFFER'], _0x278078, new Float32Array(_0x275677)) : _0x275677 instanceof Float32Array ? this['_gl']['bufferSubData'](this['_gl']['UNIFORM_BUFFER'], 0x0, _0x275677['subarray'](_0x278078, _0x278078 + _0x32d6b9)) : this['_gl']['bufferSubData'](this['_gl']['UNIFORM_BUFFER'], 0x0, new Float32Array(_0x275677)['subarray'](_0x278078, _0x278078 + _0x32d6b9)), this['bindUniformBuffer'](null); } , _0x2b36d6['prototype']['_resetVertexBufferBinding'] = function() { this['bindArrayBuffer'](null), this['_cachedVertexBuffers'] = null; } , _0x2b36d6['prototype']['createVertexBuffer'] = function(_0xadddcd) { var _0x47b2f9 = this['_gl']['createBuffer'](); if (!_0x47b2f9) throw new Error('Unable\x20to\x20create\x20vertex\x20buffer'); var _0x5b53a9 = new _0x5f2dad['a'](_0x47b2f9); return this['bindArrayBuffer'](_0x5b53a9), _0xadddcd instanceof Array ? this['_gl']['bufferData'](this['_gl']['ARRAY_BUFFER'], new Float32Array(_0xadddcd), this['_gl']['STATIC_DRAW']) : this['_gl']['bufferData'](this['_gl']['ARRAY_BUFFER'], _0xadddcd, this['_gl']['STATIC_DRAW']), this['_resetVertexBufferBinding'](), _0x5b53a9['references'] = 0x1, _0x5b53a9; } , _0x2b36d6['prototype']['createDynamicVertexBuffer'] = function(_0x5ce0a4) { var _0x34c1c8 = this['_gl']['createBuffer'](); if (!_0x34c1c8) throw new Error('Unable\x20to\x20create\x20dynamic\x20vertex\x20buffer'); var _0x4cc81f = new _0x5f2dad['a'](_0x34c1c8); return this['bindArrayBuffer'](_0x4cc81f), _0x5ce0a4 instanceof Array ? this['_gl']['bufferData'](this['_gl']['ARRAY_BUFFER'], new Float32Array(_0x5ce0a4), this['_gl']['DYNAMIC_DRAW']) : this['_gl']['bufferData'](this['_gl']['ARRAY_BUFFER'], _0x5ce0a4, this['_gl']['DYNAMIC_DRAW']), this['_resetVertexBufferBinding'](), _0x4cc81f['references'] = 0x1, _0x4cc81f; } , _0x2b36d6['prototype']['updateDynamicIndexBuffer'] = function(_0xc50df9, _0x419a7a, _0x56e8e4) { var _0x4a762e; void 0x0 === _0x56e8e4 && (_0x56e8e4 = 0x0), this['_currentBoundBuffer'][this['_gl']['ELEMENT_ARRAY_BUFFER']] = null, this['bindIndexBuffer'](_0xc50df9), _0x4a762e = _0x419a7a instanceof Uint16Array || _0x419a7a instanceof Uint32Array ? _0x419a7a : _0xc50df9['is32Bits'] ? new Uint32Array(_0x419a7a) : new Uint16Array(_0x419a7a), this['_gl']['bufferData'](this['_gl']['ELEMENT_ARRAY_BUFFER'], _0x4a762e, this['_gl']['DYNAMIC_DRAW']), this['_resetIndexBufferBinding'](); } , _0x2b36d6['prototype']['updateDynamicVertexBuffer'] = function(_0x409466, _0xb709df, _0x47b8eb, _0x354284) { this['bindArrayBuffer'](_0x409466), void 0x0 === _0x47b8eb && (_0x47b8eb = 0x0), void 0x0 === _0x354284 ? _0xb709df instanceof Array ? this['_gl']['bufferSubData'](this['_gl']['ARRAY_BUFFER'], _0x47b8eb, new Float32Array(_0xb709df)) : this['_gl']['bufferSubData'](this['_gl']['ARRAY_BUFFER'], _0x47b8eb, _0xb709df) : _0xb709df instanceof Array ? this['_gl']['bufferSubData'](this['_gl']['ARRAY_BUFFER'], 0x0, new Float32Array(_0xb709df)['subarray'](_0x47b8eb, _0x47b8eb + _0x354284)) : (_0xb709df = _0xb709df instanceof ArrayBuffer ? new Uint8Array(_0xb709df,_0x47b8eb,_0x354284) : new Uint8Array(_0xb709df['buffer'],_0xb709df['byteOffset'] + _0x47b8eb,_0x354284), this['_gl']['bufferSubData'](this['_gl']['ARRAY_BUFFER'], 0x0, _0xb709df)), this['_resetVertexBufferBinding'](); } , _0x2b36d6['prototype']['_resetIndexBufferBinding'] = function() { this['bindIndexBuffer'](null), this['_cachedIndexBuffer'] = null; } , _0x2b36d6['prototype']['createIndexBuffer'] = function(_0x357d51, _0x2b43c5) { var _0x59ff95, _0x463384 = this['_gl']['createBuffer'](), _0x19526c = new _0x5f2dad['a'](_0x463384); if (!_0x463384) throw new Error('Unable\x20to\x20create\x20index\x20buffer'); this['bindIndexBuffer'](_0x19526c); var _0x158032 = !0x1; if (_0x357d51 instanceof Uint16Array) _0x59ff95 = _0x357d51; else if (this['_caps']['uintIndices']) if (_0x357d51 instanceof Uint32Array) _0x59ff95 = _0x357d51, _0x158032 = !0x0; else { for (var _0x40e238 = 0x0; _0x40e238 < _0x357d51['length']; _0x40e238++) if (_0x357d51[_0x40e238] > 0xffff) { _0x158032 = !0x0; break; } _0x59ff95 = _0x158032 ? new Uint32Array(_0x357d51) : new Uint16Array(_0x357d51); } else _0x59ff95 = new Uint16Array(_0x357d51); return this['_gl']['bufferData'](this['_gl']['ELEMENT_ARRAY_BUFFER'], _0x59ff95, _0x2b43c5 ? this['_gl']['DYNAMIC_DRAW'] : this['_gl']['STATIC_DRAW']), this['_resetIndexBufferBinding'](), _0x19526c['references'] = 0x1, _0x19526c['is32Bits'] = _0x158032, _0x19526c; } , _0x2b36d6['prototype']['bindArrayBuffer'] = function(_0x58e1f6) { this['_vaoRecordInProgress'] || this['_unbindVertexArrayObject'](), this['bindBuffer'](_0x58e1f6, this['_gl']['ARRAY_BUFFER']); } , _0x2b36d6['prototype']['bindUniformBuffer'] = function(_0x5705c2) { this['_gl']['bindBuffer'](this['_gl']['UNIFORM_BUFFER'], _0x5705c2 ? _0x5705c2['underlyingResource'] : null); } , _0x2b36d6['prototype']['bindUniformBufferBase'] = function(_0x4d09a7, _0x143ff2) { this['_gl']['bindBufferBase'](this['_gl']['UNIFORM_BUFFER'], _0x143ff2, _0x4d09a7 ? _0x4d09a7['underlyingResource'] : null); } , _0x2b36d6['prototype']['bindUniformBlock'] = function(_0x2a1020, _0x469f5d, _0x3e7759) { var _0x2b51d2 = _0x2a1020['program'] , _0x5ef28a = this['_gl']['getUniformBlockIndex'](_0x2b51d2, _0x469f5d); this['_gl']['uniformBlockBinding'](_0x2b51d2, _0x5ef28a, _0x3e7759); } , _0x2b36d6['prototype']['bindIndexBuffer'] = function(_0x2fabab) { this['_vaoRecordInProgress'] || this['_unbindVertexArrayObject'](), this['bindBuffer'](_0x2fabab, this['_gl']['ELEMENT_ARRAY_BUFFER']); } , _0x2b36d6['prototype']['bindBuffer'] = function(_0x1c93b7, _0x432288) { (this['_vaoRecordInProgress'] || this['_currentBoundBuffer'][_0x432288] !== _0x1c93b7) && (this['_gl']['bindBuffer'](_0x432288, _0x1c93b7 ? _0x1c93b7['underlyingResource'] : null), this['_currentBoundBuffer'][_0x432288] = _0x1c93b7); } , _0x2b36d6['prototype']['updateArrayBuffer'] = function(_0x37c66d) { this['_gl']['bufferSubData'](this['_gl']['ARRAY_BUFFER'], 0x0, _0x37c66d); } , _0x2b36d6['prototype']['_vertexAttribPointer'] = function(_0x32d8ea, _0x20f99c, _0x44cd3b, _0x5d520a, _0x2832d4, _0x2125ef, _0xc0f6d2) { var _0x58f258 = this['_currentBufferPointers'][_0x20f99c] , _0x2014eb = !0x1; _0x58f258['active'] ? (_0x58f258['buffer'] !== _0x32d8ea && (_0x58f258['buffer'] = _0x32d8ea, _0x2014eb = !0x0), _0x58f258['size'] !== _0x44cd3b && (_0x58f258['size'] = _0x44cd3b, _0x2014eb = !0x0), _0x58f258['type'] !== _0x5d520a && (_0x58f258['type'] = _0x5d520a, _0x2014eb = !0x0), _0x58f258['normalized'] !== _0x2832d4 && (_0x58f258['normalized'] = _0x2832d4, _0x2014eb = !0x0), _0x58f258['stride'] !== _0x2125ef && (_0x58f258['stride'] = _0x2125ef, _0x2014eb = !0x0), _0x58f258['offset'] !== _0xc0f6d2 && (_0x58f258['offset'] = _0xc0f6d2, _0x2014eb = !0x0)) : (_0x2014eb = !0x0, _0x58f258['active'] = !0x0, _0x58f258['index'] = _0x20f99c, _0x58f258['size'] = _0x44cd3b, _0x58f258['type'] = _0x5d520a, _0x58f258['normalized'] = _0x2832d4, _0x58f258['stride'] = _0x2125ef, _0x58f258['offset'] = _0xc0f6d2, _0x58f258['buffer'] = _0x32d8ea), (_0x2014eb || this['_vaoRecordInProgress']) && (this['bindArrayBuffer'](_0x32d8ea), this['_gl']['vertexAttribPointer'](_0x20f99c, _0x44cd3b, _0x5d520a, _0x2832d4, _0x2125ef, _0xc0f6d2)); } , _0x2b36d6['prototype']['_bindIndexBufferWithCache'] = function(_0x19d001) { null != _0x19d001 && this['_cachedIndexBuffer'] !== _0x19d001 && (this['_cachedIndexBuffer'] = _0x19d001, this['bindIndexBuffer'](_0x19d001), this['_uintIndicesCurrentlySet'] = _0x19d001['is32Bits']); } , _0x2b36d6['prototype']['_bindVertexBuffersAttributes'] = function(_0x9823fc, _0x3bf868) { var _0x322c75 = _0x3bf868['getAttributesNames'](); this['_vaoRecordInProgress'] || this['_unbindVertexArrayObject'](), this['unbindAllAttributes'](); for (var _0x27ce98 = 0x0; _0x27ce98 < _0x322c75['length']; _0x27ce98++) { var _0x43282c = _0x3bf868['getAttributeLocation'](_0x27ce98); if (_0x43282c >= 0x0) { var _0x2683c4 = _0x9823fc[_0x322c75[_0x27ce98]]; if (!_0x2683c4) continue; this['_gl']['enableVertexAttribArray'](_0x43282c), this['_vaoRecordInProgress'] || (this['_vertexAttribArraysEnabled'][_0x43282c] = !0x0); var _0x4940a6 = _0x2683c4['getBuffer'](); _0x4940a6 && (this['_vertexAttribPointer'](_0x4940a6, _0x43282c, _0x2683c4['getSize'](), _0x2683c4['type'], _0x2683c4['normalized'], _0x2683c4['byteStride'], _0x2683c4['byteOffset']), _0x2683c4['getIsInstanced']() && (this['_gl']['vertexAttribDivisor'](_0x43282c, _0x2683c4['getInstanceDivisor']()), this['_vaoRecordInProgress'] || (this['_currentInstanceLocations']['push'](_0x43282c), this['_currentInstanceBuffers']['push'](_0x4940a6)))); } } } , _0x2b36d6['prototype']['recordVertexArrayObject'] = function(_0x33b930, _0x53764e, _0x1bb3e0) { var _0x351d97 = this['_gl']['createVertexArray'](); return this['_vaoRecordInProgress'] = !0x0, this['_gl']['bindVertexArray'](_0x351d97), this['_mustWipeVertexAttributes'] = !0x0, this['_bindVertexBuffersAttributes'](_0x33b930, _0x1bb3e0), this['bindIndexBuffer'](_0x53764e), this['_vaoRecordInProgress'] = !0x1, this['_gl']['bindVertexArray'](null), _0x351d97; } , _0x2b36d6['prototype']['bindVertexArrayObject'] = function(_0x39a1f3, _0x50a008) { this['_cachedVertexArrayObject'] !== _0x39a1f3 && (this['_cachedVertexArrayObject'] = _0x39a1f3, this['_gl']['bindVertexArray'](_0x39a1f3), this['_cachedVertexBuffers'] = null, this['_cachedIndexBuffer'] = null, this['_uintIndicesCurrentlySet'] = null != _0x50a008 && _0x50a008['is32Bits'], this['_mustWipeVertexAttributes'] = !0x0); } , _0x2b36d6['prototype']['bindBuffersDirectly'] = function(_0x118c94, _0x10d633, _0xdaeb88, _0x3fc89c, _0x507531) { if (this['_cachedVertexBuffers'] !== _0x118c94 || this['_cachedEffectForVertexBuffers'] !== _0x507531) { this['_cachedVertexBuffers'] = _0x118c94, this['_cachedEffectForVertexBuffers'] = _0x507531; var _0x5d1123 = _0x507531['getAttributesCount'](); this['_unbindVertexArrayObject'](), this['unbindAllAttributes'](); for (var _0x122ebe = 0x0, _0x1fb9b3 = 0x0; _0x1fb9b3 < _0x5d1123; _0x1fb9b3++) if (_0x1fb9b3 < _0xdaeb88['length']) { var _0x28a24d = _0x507531['getAttributeLocation'](_0x1fb9b3); _0x28a24d >= 0x0 && (this['_gl']['enableVertexAttribArray'](_0x28a24d), this['_vertexAttribArraysEnabled'][_0x28a24d] = !0x0, this['_vertexAttribPointer'](_0x118c94, _0x28a24d, _0xdaeb88[_0x1fb9b3], this['_gl']['FLOAT'], !0x1, _0x3fc89c, _0x122ebe)), _0x122ebe += 0x4 * _0xdaeb88[_0x1fb9b3]; } } this['_bindIndexBufferWithCache'](_0x10d633); } , _0x2b36d6['prototype']['_unbindVertexArrayObject'] = function() { this['_cachedVertexArrayObject'] && (this['_cachedVertexArrayObject'] = null, this['_gl']['bindVertexArray'](null)); } , _0x2b36d6['prototype']['bindBuffers'] = function(_0x4bd29e, _0x49b8ab, _0x1325ce) { this['_cachedVertexBuffers'] === _0x4bd29e && this['_cachedEffectForVertexBuffers'] === _0x1325ce || (this['_cachedVertexBuffers'] = _0x4bd29e, this['_cachedEffectForVertexBuffers'] = _0x1325ce, this['_bindVertexBuffersAttributes'](_0x4bd29e, _0x1325ce)), this['_bindIndexBufferWithCache'](_0x49b8ab); } , _0x2b36d6['prototype']['unbindInstanceAttributes'] = function() { for (var _0x1b4a99, _0x22c8c8 = 0x0, _0x480eb0 = this['_currentInstanceLocations']['length']; _0x22c8c8 < _0x480eb0; _0x22c8c8++) { var _0x58c176 = this['_currentInstanceBuffers'][_0x22c8c8]; _0x1b4a99 != _0x58c176 && _0x58c176['references'] && (_0x1b4a99 = _0x58c176, this['bindArrayBuffer'](_0x58c176)); var _0x4d232a = this['_currentInstanceLocations'][_0x22c8c8]; this['_gl']['vertexAttribDivisor'](_0x4d232a, 0x0); } this['_currentInstanceBuffers']['length'] = 0x0, this['_currentInstanceLocations']['length'] = 0x0; } , _0x2b36d6['prototype']['releaseVertexArrayObject'] = function(_0x1e5490) { this['_gl']['deleteVertexArray'](_0x1e5490); } , _0x2b36d6['prototype']['_releaseBuffer'] = function(_0x430312) { return _0x430312['references']--, 0x0 === _0x430312['references'] && (this['_gl']['deleteBuffer'](_0x430312['underlyingResource']), !0x0); } , _0x2b36d6['prototype']['createInstancesBuffer'] = function(_0xbb01fd) { var _0x3edca5 = this['_gl']['createBuffer'](); if (!_0x3edca5) throw new Error('Unable\x20to\x20create\x20instance\x20buffer'); var _0x275d72 = new _0x5f2dad['a'](_0x3edca5); return _0x275d72['capacity'] = _0xbb01fd, this['bindArrayBuffer'](_0x275d72), this['_gl']['bufferData'](this['_gl']['ARRAY_BUFFER'], _0xbb01fd, this['_gl']['DYNAMIC_DRAW']), _0x275d72; } , _0x2b36d6['prototype']['deleteInstancesBuffer'] = function(_0x2cf33a) { this['_gl']['deleteBuffer'](_0x2cf33a); } , _0x2b36d6['prototype']['updateAndBindInstancesBuffer'] = function(_0x13cd7c, _0x107ff9, _0x2ac64b) { if (this['bindArrayBuffer'](_0x13cd7c), _0x107ff9 && this['_gl']['bufferSubData'](this['_gl']['ARRAY_BUFFER'], 0x0, _0x107ff9), void 0x0 !== _0x2ac64b[0x0]['index']) { for (var _0x22f955 = 0x0, _0x310435 = 0x0; _0x310435 < _0x2ac64b['length']; _0x310435++) { _0x22f955 += 0x4 * (_0x1a3623 = _0x2ac64b[_0x310435])['attributeSize']; } for (_0x310435 = 0x0; _0x310435 < _0x2ac64b['length']; _0x310435++) { var _0x1a3623 = _0x2ac64b[_0x310435]; this['_vertexAttribArraysEnabled'][_0x1a3623['index']] || (this['_gl']['enableVertexAttribArray'](_0x1a3623['index']), this['_vertexAttribArraysEnabled'][_0x1a3623['index']] = !0x0), this['_vertexAttribPointer'](_0x13cd7c, _0x1a3623['index'], _0x1a3623['attributeSize'], _0x1a3623['attribyteType'] || this['_gl']['FLOAT'], _0x1a3623['normalized'] || !0x1, _0x22f955, _0x1a3623['offset']), this['_gl']['vertexAttribDivisor'](_0x1a3623['index'], 0x1), this['_currentInstanceLocations']['push'](_0x1a3623['index']), this['_currentInstanceBuffers']['push'](_0x13cd7c); } } else for (var _0x5bfaf8 = 0x0; _0x5bfaf8 < 0x4; _0x5bfaf8++) { var _0x164526 = _0x2ac64b[_0x5bfaf8]; this['_vertexAttribArraysEnabled'][_0x164526] || (this['_gl']['enableVertexAttribArray'](_0x164526), this['_vertexAttribArraysEnabled'][_0x164526] = !0x0), this['_vertexAttribPointer'](_0x13cd7c, _0x164526, 0x4, this['_gl']['FLOAT'], !0x1, 0x40, 0x10 * _0x5bfaf8), this['_gl']['vertexAttribDivisor'](_0x164526, 0x1), this['_currentInstanceLocations']['push'](_0x164526), this['_currentInstanceBuffers']['push'](_0x13cd7c); } } , _0x2b36d6['prototype']['applyStates'] = function() { this['_depthCullingState']['apply'](this['_gl']), this['_stencilState']['apply'](this['_gl']), this['_alphaState']['apply'](this['_gl']); } , _0x2b36d6['prototype']['draw'] = function(_0x252ff5, _0x31b8e5, _0xc1f60b, _0x35ee03) { this['drawElementsType'](_0x252ff5 ? _0x5cd921['a']['TriangleFillMode'] : _0x5cd921['a']['WireFrameFillMode'], _0x31b8e5, _0xc1f60b, _0x35ee03); } , _0x2b36d6['prototype']['drawPointClouds'] = function(_0x5974f6, _0x7e3683, _0x44f77f) { this['drawArraysType'](_0x5cd921['a']['PointFillMode'], _0x5974f6, _0x7e3683, _0x44f77f); } , _0x2b36d6['prototype']['drawUnIndexed'] = function(_0x2d59c7, _0x4c15a8, _0x3b7f98, _0x40bc36) { this['drawArraysType'](_0x2d59c7 ? _0x5cd921['a']['TriangleFillMode'] : _0x5cd921['a']['WireFrameFillMode'], _0x4c15a8, _0x3b7f98, _0x40bc36); } , _0x2b36d6['prototype']['drawElementsType'] = function(_0x342ce1, _0x4f03de, _0x52eeea, _0x3c8b8b) { this['applyStates'](), this['_drawCalls']['addCount'](0x1, !0x1); var _0x3344dc = this['_drawMode'](_0x342ce1) , _0x273b2d = this['_uintIndicesCurrentlySet'] ? this['_gl']['UNSIGNED_INT'] : this['_gl']['UNSIGNED_SHORT'] , _0x28e5dc = this['_uintIndicesCurrentlySet'] ? 0x4 : 0x2; _0x3c8b8b ? this['_gl']['drawElementsInstanced'](_0x3344dc, _0x52eeea, _0x273b2d, _0x4f03de * _0x28e5dc, _0x3c8b8b) : this['_gl']['drawElements'](_0x3344dc, _0x52eeea, _0x273b2d, _0x4f03de * _0x28e5dc); } , _0x2b36d6['prototype']['drawArraysType'] = function(_0x1d9e55, _0xdb1a7a, _0x539d7d, _0x7f6552) { this['applyStates'](), this['_drawCalls']['addCount'](0x1, !0x1); var _0x12e511 = this['_drawMode'](_0x1d9e55); _0x7f6552 ? this['_gl']['drawArraysInstanced'](_0x12e511, _0xdb1a7a, _0x539d7d, _0x7f6552) : this['_gl']['drawArrays'](_0x12e511, _0xdb1a7a, _0x539d7d); } , _0x2b36d6['prototype']['_drawMode'] = function(_0x400350) { switch (_0x400350) { case _0x5cd921['a']['TriangleFillMode']: return this['_gl']['TRIANGLES']; case _0x5cd921['a']['PointFillMode']: return this['_gl']['POINTS']; case _0x5cd921['a']['WireFrameFillMode']: return this['_gl']['LINES']; case _0x5cd921['a']['PointListDrawMode']: return this['_gl']['POINTS']; case _0x5cd921['a']['LineListDrawMode']: return this['_gl']['LINES']; case _0x5cd921['a']['LineLoopDrawMode']: return this['_gl']['LINE_LOOP']; case _0x5cd921['a']['LineStripDrawMode']: return this['_gl']['LINE_STRIP']; case _0x5cd921['a']['TriangleStripDrawMode']: return this['_gl']['TRIANGLE_STRIP']; case _0x5cd921['a']['TriangleFanDrawMode']: return this['_gl']['TRIANGLE_FAN']; default: return this['_gl']['TRIANGLES']; } } , _0x2b36d6['prototype']['_releaseEffect'] = function(_0x44d2ad) { this['_compiledEffects'][_0x44d2ad['_key']] && (delete this['_compiledEffects'][_0x44d2ad['_key']], this['_deletePipelineContext'](_0x44d2ad['getPipelineContext']())); } , _0x2b36d6['prototype']['_deletePipelineContext'] = function(_0x3c5d0b) { var _0x250446 = _0x3c5d0b; _0x250446 && _0x250446['program'] && (_0x250446['program']['__SPECTOR_rebuildProgram'] = null, _0x250446['transformFeedback'] && (this['deleteTransformFeedback'](_0x250446['transformFeedback']), _0x250446['transformFeedback'] = null), this['_gl']['deleteProgram'](_0x250446['program'])); } , _0x2b36d6['prototype']['createEffect'] = function(_0x378bf1, _0x45ea46, _0x478e6d, _0x180d4a, _0x4e613b, _0x1a174b, _0x3a2cfb, _0x4a7fdc, _0x2fe8ea) { var _0x449102 = (_0x378bf1['vertexElement'] || _0x378bf1['vertex'] || _0x378bf1) + '+' + (_0x378bf1['fragmentElement'] || _0x378bf1['fragment'] || _0x378bf1) + '@' + (_0x4e613b || _0x45ea46['defines']); if (this['_compiledEffects'][_0x449102]) { var _0x1464c0 = this['_compiledEffects'][_0x449102]; return _0x3a2cfb && _0x1464c0['isReady']() && _0x3a2cfb(_0x1464c0), _0x1464c0; } var _0x4bf10b = new _0x12c9c8['a'](_0x378bf1,_0x45ea46,_0x478e6d,_0x180d4a,this,_0x4e613b,_0x1a174b,_0x3a2cfb,_0x4a7fdc,_0x2fe8ea); return _0x4bf10b['_key'] = _0x449102, this['_compiledEffects'][_0x449102] = _0x4bf10b, _0x4bf10b; } , _0x2b36d6['prototype']['_compileShader'] = function(_0x473091, _0x2b62aa, _0x39c384, _0xa5967a) { return this['_compileRawShader'](_0xa5967a + (_0x39c384 ? _0x39c384 + '\x0a' : '') + _0x473091, _0x2b62aa); } , _0x2b36d6['prototype']['_compileRawShader'] = function(_0x5e7bc8, _0x2fd831) { var _0x13ba8b = this['_gl'] , _0xc83f76 = _0x13ba8b['createShader']('vertex' === _0x2fd831 ? _0x13ba8b['VERTEX_SHADER'] : _0x13ba8b['FRAGMENT_SHADER']); if (!_0xc83f76) throw new Error('Something\x20went\x20wrong\x20while\x20compile\x20the\x20shader.'); return _0x13ba8b['shaderSource'](_0xc83f76, _0x5e7bc8), _0x13ba8b['compileShader'](_0xc83f76), _0xc83f76; } , _0x2b36d6['prototype']['createRawShaderProgram'] = function(_0x3d477a, _0x22fe99, _0x5bab20, _0x50d4b1, _0x267b4f) { void 0x0 === _0x267b4f && (_0x267b4f = null), _0x50d4b1 = _0x50d4b1 || this['_gl']; var _0x18bf6a = this['_compileRawShader'](_0x22fe99, 'vertex') , _0x2b9aef = this['_compileRawShader'](_0x5bab20, 'fragment'); return this['_createShaderProgram'](_0x3d477a, _0x18bf6a, _0x2b9aef, _0x50d4b1, _0x267b4f); } , _0x2b36d6['prototype']['createShaderProgram'] = function(_0xcde3bf, _0x34d818, _0x28debb, _0x26bc61, _0x41baa2, _0x1b92b0) { void 0x0 === _0x1b92b0 && (_0x1b92b0 = null), _0x41baa2 = _0x41baa2 || this['_gl'], this['onBeforeShaderCompilationObservable']['notifyObservers'](this); var _0x4b33a5 = this['_webGLVersion'] > 0x1 ? '#version\x20300\x20es\x0a#define\x20WEBGL2\x20\x0a' : '' , _0x4949e4 = this['_compileShader'](_0x34d818, 'vertex', _0x26bc61, _0x4b33a5) , _0x2c82fa = this['_compileShader'](_0x28debb, 'fragment', _0x26bc61, _0x4b33a5) , _0x143d81 = this['_createShaderProgram'](_0xcde3bf, _0x4949e4, _0x2c82fa, _0x41baa2, _0x1b92b0); return this['onAfterShaderCompilationObservable']['notifyObservers'](this), _0x143d81; } , _0x2b36d6['prototype']['createPipelineContext'] = function() { var _0x3c95c2 = new _0x5ad3c1['a'](); return _0x3c95c2['engine'] = this, this['_caps']['parallelShaderCompile'] && (_0x3c95c2['isParallelCompiled'] = !0x0), _0x3c95c2; } , _0x2b36d6['prototype']['_createShaderProgram'] = function(_0x551340, _0x20be82, _0x8e2c11, _0x464f99, _0x44654b) { void 0x0 === _0x44654b && (_0x44654b = null); var _0x245ba6 = _0x464f99['createProgram'](); if (_0x551340['program'] = _0x245ba6, !_0x245ba6) throw new Error('Unable\x20to\x20create\x20program'); if (_0x464f99['attachShader'](_0x245ba6, _0x20be82), _0x464f99['attachShader'](_0x245ba6, _0x8e2c11), this['webGLVersion'] > 0x1 && _0x44654b) { var _0x121e51 = this['createTransformFeedback'](); this['bindTransformFeedback'](_0x121e51), this['setTranformFeedbackVaryings'](_0x245ba6, _0x44654b), _0x551340['transformFeedback'] = _0x121e51; } return _0x464f99['linkProgram'](_0x245ba6), this['webGLVersion'] > 0x1 && _0x44654b && this['bindTransformFeedback'](null), _0x551340['context'] = _0x464f99, _0x551340['vertexShader'] = _0x20be82, _0x551340['fragmentShader'] = _0x8e2c11, _0x551340['isParallelCompiled'] || this['_finalizePipelineContext'](_0x551340), _0x245ba6; } , _0x2b36d6['prototype']['_finalizePipelineContext'] = function(_0x2806bb) { var _0x1e00fb = _0x2806bb['context'] , _0x9ac244 = _0x2806bb['vertexShader'] , _0x3a356f = _0x2806bb['fragmentShader'] , _0x2448e4 = _0x2806bb['program']; if (!_0x1e00fb['getProgramParameter'](_0x2448e4, _0x1e00fb['LINK_STATUS'])) { var _0x197f1e, _0x3919cd; if (!this['_gl']['getShaderParameter'](_0x9ac244, this['_gl']['COMPILE_STATUS'])) if (_0x197f1e = this['_gl']['getShaderInfoLog'](_0x9ac244)) throw new Error(_0x197f1e); if (!this['_gl']['getShaderParameter'](_0x3a356f, this['_gl']['COMPILE_STATUS'])) if (_0x197f1e = this['_gl']['getShaderInfoLog'](_0x3a356f)) throw new Error(_0x197f1e); if (_0x3919cd = _0x1e00fb['getProgramInfoLog'](_0x2448e4)) throw new Error(_0x3919cd); } if (this['validateShaderPrograms'] && (_0x1e00fb['validateProgram'](_0x2448e4), !_0x1e00fb['getProgramParameter'](_0x2448e4, _0x1e00fb['VALIDATE_STATUS']) && (_0x3919cd = _0x1e00fb['getProgramInfoLog'](_0x2448e4)))) throw new Error(_0x3919cd); _0x1e00fb['deleteShader'](_0x9ac244), _0x1e00fb['deleteShader'](_0x3a356f), _0x2806bb['vertexShader'] = void 0x0, _0x2806bb['fragmentShader'] = void 0x0, _0x2806bb['onCompiled'] && (_0x2806bb['onCompiled'](), _0x2806bb['onCompiled'] = void 0x0); } , _0x2b36d6['prototype']['_preparePipelineContext'] = function(_0x2f26e3, _0x6eab4f, _0x428a27, _0x1a2a6c, _0x309306, _0x289500, _0x6f54ac) { var _0x9eae9b = _0x2f26e3; _0x9eae9b['program'] = _0x1a2a6c ? this['createRawShaderProgram'](_0x9eae9b, _0x6eab4f, _0x428a27, void 0x0, _0x6f54ac) : this['createShaderProgram'](_0x9eae9b, _0x6eab4f, _0x428a27, _0x289500, void 0x0, _0x6f54ac), _0x9eae9b['program']['__SPECTOR_rebuildProgram'] = _0x309306; } , _0x2b36d6['prototype']['_isRenderingStateCompiled'] = function(_0x4af9f1) { var _0x5ce049 = _0x4af9f1; return !!this['_gl']['getProgramParameter'](_0x5ce049['program'], this['_caps']['parallelShaderCompile']['COMPLETION_STATUS_KHR']) && (this['_finalizePipelineContext'](_0x5ce049), !0x0); } , _0x2b36d6['prototype']['_executeWhenRenderingStateIsCompiled'] = function(_0x471de0, _0x2b9cf3) { var _0x9ea071 = _0x471de0; _0x9ea071['isParallelCompiled'] ? _0x9ea071['onCompiled'] = _0x2b9cf3 : _0x2b9cf3(); } , _0x2b36d6['prototype']['getUniforms'] = function(_0x3f6fb6, _0x27ed28) { for (var _0x4a48c8 = new Array(), _0x4458f6 = _0x3f6fb6, _0x1c1e0a = 0x0; _0x1c1e0a < _0x27ed28['length']; _0x1c1e0a++) _0x4a48c8['push'](this['_gl']['getUniformLocation'](_0x4458f6['program'], _0x27ed28[_0x1c1e0a])); return _0x4a48c8; } , _0x2b36d6['prototype']['getAttributes'] = function(_0x1f9cde, _0xffed1d) { for (var _0x36dc19 = [], _0x1140af = _0x1f9cde, _0x1ea41d = 0x0; _0x1ea41d < _0xffed1d['length']; _0x1ea41d++) try { _0x36dc19['push'](this['_gl']['getAttribLocation'](_0x1140af['program'], _0xffed1d[_0x1ea41d])); } catch (_0x42e104) { _0x36dc19['push'](-0x1); } return _0x36dc19; } , _0x2b36d6['prototype']['enableEffect'] = function(_0x46e323) { _0x46e323 && _0x46e323 !== this['_currentEffect'] && (this['bindSamplers'](_0x46e323), this['_currentEffect'] = _0x46e323, _0x46e323['onBind'] && _0x46e323['onBind'](_0x46e323), _0x46e323['_onBindObservable'] && _0x46e323['_onBindObservable']['notifyObservers'](_0x46e323)); } , _0x2b36d6['prototype']['setIntArray'] = function(_0x2ac254, _0x203589) { _0x2ac254 && this['_gl']['uniform1iv'](_0x2ac254, _0x203589); } , _0x2b36d6['prototype']['setIntArray2'] = function(_0x56f82, _0x3e3fe2) { _0x56f82 && _0x3e3fe2['length'] % 0x2 == 0x0 && this['_gl']['uniform2iv'](_0x56f82, _0x3e3fe2); } , _0x2b36d6['prototype']['setIntArray3'] = function(_0x133ed3, _0x31f039) { _0x133ed3 && _0x31f039['length'] % 0x3 == 0x0 && this['_gl']['uniform3iv'](_0x133ed3, _0x31f039); } , _0x2b36d6['prototype']['setIntArray4'] = function(_0x2d69b6, _0x1ac7d1) { _0x2d69b6 && _0x1ac7d1['length'] % 0x4 == 0x0 && this['_gl']['uniform4iv'](_0x2d69b6, _0x1ac7d1); } , _0x2b36d6['prototype']['setFloatArray'] = function(_0x336214, _0x58d2e1) { _0x336214 && this['_gl']['uniform1fv'](_0x336214, _0x58d2e1); } , _0x2b36d6['prototype']['setFloatArray2'] = function(_0x32236a, _0x5d3fd9) { _0x32236a && _0x5d3fd9['length'] % 0x2 == 0x0 && this['_gl']['uniform2fv'](_0x32236a, _0x5d3fd9); } , _0x2b36d6['prototype']['setFloatArray3'] = function(_0x5e0997, _0x393958) { _0x5e0997 && _0x393958['length'] % 0x3 == 0x0 && this['_gl']['uniform3fv'](_0x5e0997, _0x393958); } , _0x2b36d6['prototype']['setFloatArray4'] = function(_0x3825e9, _0x1a88dd) { _0x3825e9 && _0x1a88dd['length'] % 0x4 == 0x0 && this['_gl']['uniform4fv'](_0x3825e9, _0x1a88dd); } , _0x2b36d6['prototype']['setArray'] = function(_0x28600f, _0x3ac8c2) { _0x28600f && this['_gl']['uniform1fv'](_0x28600f, _0x3ac8c2); } , _0x2b36d6['prototype']['setArray2'] = function(_0x4697c0, _0x374a15) { _0x4697c0 && _0x374a15['length'] % 0x2 == 0x0 && this['_gl']['uniform2fv'](_0x4697c0, _0x374a15); } , _0x2b36d6['prototype']['setArray3'] = function(_0x46d5ae, _0x155dce) { _0x46d5ae && _0x155dce['length'] % 0x3 == 0x0 && this['_gl']['uniform3fv'](_0x46d5ae, _0x155dce); } , _0x2b36d6['prototype']['setArray4'] = function(_0x5c6218, _0x1f442c) { _0x5c6218 && _0x1f442c['length'] % 0x4 == 0x0 && this['_gl']['uniform4fv'](_0x5c6218, _0x1f442c); } , _0x2b36d6['prototype']['setMatrices'] = function(_0x15624e, _0x5eba1a) { _0x15624e && this['_gl']['uniformMatrix4fv'](_0x15624e, !0x1, _0x5eba1a); } , _0x2b36d6['prototype']['setMatrix'] = function(_0xd73636, _0x368ae9) { _0xd73636 && this['_gl']['uniformMatrix4fv'](_0xd73636, !0x1, _0x368ae9['toArray']()); } , _0x2b36d6['prototype']['setMatrix3x3'] = function(_0x513a49, _0x212bf3) { _0x513a49 && this['_gl']['uniformMatrix3fv'](_0x513a49, !0x1, _0x212bf3); } , _0x2b36d6['prototype']['setMatrix2x2'] = function(_0x3c9047, _0x2f80ed) { _0x3c9047 && this['_gl']['uniformMatrix2fv'](_0x3c9047, !0x1, _0x2f80ed); } , _0x2b36d6['prototype']['setInt'] = function(_0x1dd133, _0x4cd6e8) { _0x1dd133 && this['_gl']['uniform1i'](_0x1dd133, _0x4cd6e8); } , _0x2b36d6['prototype']['setFloat'] = function(_0x1f6650, _0x4e9d1e) { _0x1f6650 && this['_gl']['uniform1f'](_0x1f6650, _0x4e9d1e); } , _0x2b36d6['prototype']['setFloat2'] = function(_0xc9663b, _0x149d58, _0x37a41e) { _0xc9663b && this['_gl']['uniform2f'](_0xc9663b, _0x149d58, _0x37a41e); } , _0x2b36d6['prototype']['setFloat3'] = function(_0x2fa3ad, _0x2220a7, _0x209747, _0x25c2c2) { _0x2fa3ad && this['_gl']['uniform3f'](_0x2fa3ad, _0x2220a7, _0x209747, _0x25c2c2); } , _0x2b36d6['prototype']['setBool'] = function(_0x597f76, _0x39c54f) { _0x597f76 && this['_gl']['uniform1i'](_0x597f76, _0x39c54f); } , _0x2b36d6['prototype']['setFloat4'] = function(_0x4aba90, _0x2bc454, _0x45a208, _0x467975, _0x2dcba5) { _0x4aba90 && this['_gl']['uniform4f'](_0x4aba90, _0x2bc454, _0x45a208, _0x467975, _0x2dcba5); } , _0x2b36d6['prototype']['setColor3'] = function(_0x3c411e, _0x56aa04) { _0x3c411e && this['_gl']['uniform3f'](_0x3c411e, _0x56aa04['r'], _0x56aa04['g'], _0x56aa04['b']); } , _0x2b36d6['prototype']['setColor4'] = function(_0x5b854e, _0x1a80a8, _0x475fd8) { _0x5b854e && this['_gl']['uniform4f'](_0x5b854e, _0x1a80a8['r'], _0x1a80a8['g'], _0x1a80a8['b'], _0x475fd8); } , _0x2b36d6['prototype']['setDirectColor4'] = function(_0x4e2364, _0x962693) { _0x4e2364 && this['_gl']['uniform4f'](_0x4e2364, _0x962693['r'], _0x962693['g'], _0x962693['b'], _0x962693['a']); } , _0x2b36d6['prototype']['setState'] = function(_0x5e9ee0, _0xd3c3c5, _0x137c52, _0x554070) { void 0x0 === _0xd3c3c5 && (_0xd3c3c5 = 0x0), void 0x0 === _0x554070 && (_0x554070 = !0x1), (this['_depthCullingState']['cull'] !== _0x5e9ee0 || _0x137c52) && (this['_depthCullingState']['cull'] = _0x5e9ee0); var _0xaddc5e = this['cullBackFaces'] ? this['_gl']['BACK'] : this['_gl']['FRONT']; (this['_depthCullingState']['cullFace'] !== _0xaddc5e || _0x137c52) && (this['_depthCullingState']['cullFace'] = _0xaddc5e), this['setZOffset'](_0xd3c3c5); var _0x397de4 = _0x554070 ? this['_gl']['CW'] : this['_gl']['CCW']; (this['_depthCullingState']['frontFace'] !== _0x397de4 || _0x137c52) && (this['_depthCullingState']['frontFace'] = _0x397de4); } , _0x2b36d6['prototype']['setZOffset'] = function(_0x3acc4b) { this['_depthCullingState']['zOffset'] = _0x3acc4b; } , _0x2b36d6['prototype']['getZOffset'] = function() { return this['_depthCullingState']['zOffset']; } , _0x2b36d6['prototype']['setDepthBuffer'] = function(_0x1df17f) { this['_depthCullingState']['depthTest'] = _0x1df17f; } , _0x2b36d6['prototype']['getDepthWrite'] = function() { return this['_depthCullingState']['depthMask']; } , _0x2b36d6['prototype']['setDepthWrite'] = function(_0x59776b) { this['_depthCullingState']['depthMask'] = _0x59776b; } , _0x2b36d6['prototype']['setColorWrite'] = function(_0x38c418) { this['_gl']['colorMask'](_0x38c418, _0x38c418, _0x38c418, _0x38c418), this['_colorWrite'] = _0x38c418; } , _0x2b36d6['prototype']['getColorWrite'] = function() { return this['_colorWrite']; } , _0x2b36d6['prototype']['setAlphaConstants'] = function(_0x3ef9f3, _0x4b4539, _0x279d17, _0x286703) { this['_alphaState']['setAlphaBlendConstants'](_0x3ef9f3, _0x4b4539, _0x279d17, _0x286703); } , _0x2b36d6['prototype']['setAlphaMode'] = function(_0x327ac8, _0x54c9d8) { if (void 0x0 === _0x54c9d8 && (_0x54c9d8 = !0x1), this['_alphaMode'] !== _0x327ac8) { switch (_0x327ac8) { case _0x2b36d6['ALPHA_DISABLE']: this['_alphaState']['alphaBlend'] = !0x1; break; case _0x2b36d6['ALPHA_PREMULTIPLIED']: this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl']['ONE'], this['_gl']['ONE_MINUS_SRC_ALPHA'], this['_gl']['ONE'], this['_gl']['ONE']), this['_alphaState']['alphaBlend'] = !0x0; break; case _0x2b36d6['ALPHA_PREMULTIPLIED_PORTERDUFF']: this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl']['ONE'], this['_gl']['ONE_MINUS_SRC_ALPHA'], this['_gl']['ONE'], this['_gl']['ONE_MINUS_SRC_ALPHA']), this['_alphaState']['alphaBlend'] = !0x0; break; case _0x2b36d6['ALPHA_COMBINE']: this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl']['SRC_ALPHA'], this['_gl']['ONE_MINUS_SRC_ALPHA'], this['_gl']['ONE'], this['_gl']['ONE']), this['_alphaState']['alphaBlend'] = !0x0; break; case _0x2b36d6['ALPHA_ONEONE']: this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl']['ONE'], this['_gl']['ONE'], this['_gl']['ZERO'], this['_gl']['ONE']), this['_alphaState']['alphaBlend'] = !0x0; break; case _0x2b36d6['ALPHA_ADD']: this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl']['SRC_ALPHA'], this['_gl']['ONE'], this['_gl']['ZERO'], this['_gl']['ONE']), this['_alphaState']['alphaBlend'] = !0x0; break; case _0x2b36d6['ALPHA_SUBTRACT']: this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl']['ZERO'], this['_gl']['ONE_MINUS_SRC_COLOR'], this['_gl']['ONE'], this['_gl']['ONE']), this['_alphaState']['alphaBlend'] = !0x0; break; case _0x2b36d6['ALPHA_MULTIPLY']: this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl']['DST_COLOR'], this['_gl']['ZERO'], this['_gl']['ONE'], this['_gl']['ONE']), this['_alphaState']['alphaBlend'] = !0x0; break; case _0x2b36d6['ALPHA_MAXIMIZED']: this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl']['SRC_ALPHA'], this['_gl']['ONE_MINUS_SRC_COLOR'], this['_gl']['ONE'], this['_gl']['ONE']), this['_alphaState']['alphaBlend'] = !0x0; break; case _0x2b36d6['ALPHA_INTERPOLATE']: this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl']['CONSTANT_COLOR'], this['_gl']['ONE_MINUS_CONSTANT_COLOR'], this['_gl']['CONSTANT_ALPHA'], this['_gl']['ONE_MINUS_CONSTANT_ALPHA']), this['_alphaState']['alphaBlend'] = !0x0; break; case _0x2b36d6['ALPHA_SCREENMODE']: this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl']['ONE'], this['_gl']['ONE_MINUS_SRC_COLOR'], this['_gl']['ONE'], this['_gl']['ONE_MINUS_SRC_ALPHA']), this['_alphaState']['alphaBlend'] = !0x0; } _0x54c9d8 || this['setDepthWrite'](_0x327ac8 === _0x2b36d6['ALPHA_DISABLE']), this['_alphaMode'] = _0x327ac8; } } , _0x2b36d6['prototype']['getAlphaMode'] = function() { return this['_alphaMode']; } , _0x2b36d6['prototype']['clearInternalTexturesCache'] = function() { this['_internalTexturesCache'] = []; } , _0x2b36d6['prototype']['wipeCaches'] = function(_0x48d307) { this['preventCacheWipeBetweenFrames'] && !_0x48d307 || (this['_currentEffect'] = null, this['_viewportCached']['x'] = 0x0, this['_viewportCached']['y'] = 0x0, this['_viewportCached']['z'] = 0x0, this['_viewportCached']['w'] = 0x0, _0x48d307 && (this['resetTextureCache'](), this['_currentProgram'] = null, this['_stencilState']['reset'](), this['_depthCullingState']['reset'](), this['setDepthFunctionToLessOrEqual'](), this['_alphaState']['reset'](), this['_unpackFlipYCached'] = null), this['_resetVertexBufferBinding'](), this['_cachedIndexBuffer'] = null, this['_cachedEffectForVertexBuffers'] = null, this['_unbindVertexArrayObject'](), this['bindIndexBuffer'](null)); } , _0x2b36d6['prototype']['setTextureFormatToUse'] = function(_0x5d88fa) { for (var _0xa85b8d = 0x0, _0x35be61 = this['texturesSupported']['length']; _0xa85b8d < _0x35be61; _0xa85b8d++) for (var _0x40e70f = 0x0, _0x13e6f6 = _0x5d88fa['length']; _0x40e70f < _0x13e6f6; _0x40e70f++) if (this['_texturesSupported'][_0xa85b8d] === _0x5d88fa[_0x40e70f]['toLowerCase']()) return this['_textureFormatInUse'] = this['_texturesSupported'][_0xa85b8d]; return this['_textureFormatInUse'] = null, null; } , _0x2b36d6['prototype']['_getSamplingParameters'] = function(_0x21163d, _0x6e6cd) { var _0x8b7317 = this['_gl'] , _0x186779 = _0x8b7317['NEAREST'] , _0x112980 = _0x8b7317['NEAREST']; switch (_0x21163d) { case _0x2b36d6['TEXTURE_BILINEAR_SAMPLINGMODE']: _0x186779 = _0x8b7317['LINEAR'], _0x112980 = _0x6e6cd ? _0x8b7317['LINEAR_MIPMAP_NEAREST'] : _0x8b7317['LINEAR']; break; case _0x2b36d6['TEXTURE_TRILINEAR_SAMPLINGMODE']: _0x186779 = _0x8b7317['LINEAR'], _0x112980 = _0x6e6cd ? _0x8b7317['LINEAR_MIPMAP_LINEAR'] : _0x8b7317['LINEAR']; break; case _0x2b36d6['TEXTURE_NEAREST_SAMPLINGMODE']: _0x186779 = _0x8b7317['NEAREST'], _0x112980 = _0x6e6cd ? _0x8b7317['NEAREST_MIPMAP_LINEAR'] : _0x8b7317['NEAREST']; break; case _0x2b36d6['TEXTURE_NEAREST_NEAREST_MIPNEAREST']: _0x186779 = _0x8b7317['NEAREST'], _0x112980 = _0x6e6cd ? _0x8b7317['NEAREST_MIPMAP_NEAREST'] : _0x8b7317['NEAREST']; break; case _0x2b36d6['TEXTURE_NEAREST_LINEAR_MIPNEAREST']: _0x186779 = _0x8b7317['NEAREST'], _0x112980 = _0x6e6cd ? _0x8b7317['LINEAR_MIPMAP_NEAREST'] : _0x8b7317['LINEAR']; break; case _0x2b36d6['TEXTURE_NEAREST_LINEAR_MIPLINEAR']: _0x186779 = _0x8b7317['NEAREST'], _0x112980 = _0x6e6cd ? _0x8b7317['LINEAR_MIPMAP_LINEAR'] : _0x8b7317['LINEAR']; break; case _0x2b36d6['TEXTURE_NEAREST_LINEAR']: _0x186779 = _0x8b7317['NEAREST'], _0x112980 = _0x8b7317['LINEAR']; break; case _0x2b36d6['TEXTURE_NEAREST_NEAREST']: _0x186779 = _0x8b7317['NEAREST'], _0x112980 = _0x8b7317['NEAREST']; break; case _0x2b36d6['TEXTURE_LINEAR_NEAREST_MIPNEAREST']: _0x186779 = _0x8b7317['LINEAR'], _0x112980 = _0x6e6cd ? _0x8b7317['NEAREST_MIPMAP_NEAREST'] : _0x8b7317['NEAREST']; break; case _0x2b36d6['TEXTURE_LINEAR_NEAREST_MIPLINEAR']: _0x186779 = _0x8b7317['LINEAR'], _0x112980 = _0x6e6cd ? _0x8b7317['NEAREST_MIPMAP_LINEAR'] : _0x8b7317['NEAREST']; break; case _0x2b36d6['TEXTURE_LINEAR_LINEAR']: _0x186779 = _0x8b7317['LINEAR'], _0x112980 = _0x8b7317['LINEAR']; break; case _0x2b36d6['TEXTURE_LINEAR_NEAREST']: _0x186779 = _0x8b7317['LINEAR'], _0x112980 = _0x8b7317['NEAREST']; } return { 'min': _0x112980, 'mag': _0x186779 }; } , _0x2b36d6['prototype']['_createTexture'] = function() { var _0x438fbf = this['_gl']['createTexture'](); if (!_0x438fbf) throw new Error('Unable\x20to\x20create\x20texture'); return _0x438fbf; } , _0x2b36d6['prototype']['createTexture'] = function(_0x3bbbdb, _0x9f908d, _0x19ea20, _0x347d5c, _0x4562d3, _0x129a1c, _0x95e5c1, _0x249c21, _0x12ac9a, _0xbd16ba, _0x3c346b, _0x24361c) { var _0x4b6249 = this; void 0x0 === _0x4562d3 && (_0x4562d3 = _0x2b36d6['TEXTURE_TRILINEAR_SAMPLINGMODE']), void 0x0 === _0x129a1c && (_0x129a1c = null), void 0x0 === _0x95e5c1 && (_0x95e5c1 = null), void 0x0 === _0x249c21 && (_0x249c21 = null), void 0x0 === _0x12ac9a && (_0x12ac9a = null), void 0x0 === _0xbd16ba && (_0xbd16ba = null), void 0x0 === _0x3c346b && (_0x3c346b = null), void 0x0 === _0x24361c && (_0x24361c = []); for (var _0x11b7ae = String(_0x3bbbdb), _0x547f9b = 'data:' === _0x11b7ae['substr'](0x0, 0x5), _0x220874 = 'blob:' === _0x11b7ae['substr'](0x0, 0x5), _0x1c4f6a = _0x547f9b && -0x1 !== _0x11b7ae['indexOf'](';base64,'), _0x2d27c6 = _0x12ac9a || new _0x1a5085['a'](this,_0x1a5085['a']['DATASOURCE_URL']), _0x36413e = _0x11b7ae['lastIndexOf']('.'), _0x340351 = _0x3c346b || (_0x36413e > -0x1 ? _0x11b7ae['substring'](_0x36413e)['toLowerCase']() : ''), _0x11cb00 = null, _0x3460ef = 0x0, _0x4539b7 = _0x2b36d6['_TextureLoaders']; _0x3460ef < _0x4539b7['length']; _0x3460ef++) { var _0x29c3c6 = _0x4539b7[_0x3460ef]; if (-0x1 === _0x24361c['indexOf'](_0x29c3c6) && _0x29c3c6['canLoad'](_0x340351, this['_textureFormatInUse'], _0x12ac9a, _0x1c4f6a, !!_0x249c21)) { _0x11cb00 = _0x29c3c6; break; } } _0x11cb00 && (_0x11b7ae = _0x11cb00['transformUrl'](_0x11b7ae, this['_textureFormatInUse'])), _0x347d5c && _0x347d5c['_addPendingData'](_0x2d27c6), _0x2d27c6['url'] = _0x11b7ae, _0x2d27c6['generateMipMaps'] = !_0x9f908d, _0x2d27c6['samplingMode'] = _0x4562d3, _0x2d27c6['invertY'] = _0x19ea20, this['_doNotHandleContextLost'] || (_0x2d27c6['_buffer'] = _0x249c21); var _0x470154 = null; _0x129a1c && !_0x12ac9a && (_0x470154 = _0x2d27c6['onLoadedObservable']['add'](_0x129a1c)), _0x12ac9a || this['_internalTexturesCache']['push'](_0x2d27c6); var _0x102ec0 = function(_0x3e0178, _0x516238) { _0x347d5c && _0x347d5c['_removePendingData'](_0x2d27c6); var _0x46ca18 = !0x1; _0x11cb00 && (_0x11cb00['getFallbackTextureUrl'](_0x11b7ae, _0x4b6249['_textureFormatInUse']) && (_0x46ca18 = !0x0, _0x24361c['push'](_0x11cb00), _0x49b495['h']['Warn'](_0x11cb00['constructor']['name'] + '\x20failed\x20when\x20trying\x20to\x20load\x20' + _0x2d27c6['url'] + ',\x20falling\x20back\x20to\x20the\x20next\x20supported\x20loader'), _0x4b6249['createTexture'](_0x3bbbdb, _0x9f908d, _0x2d27c6['invertY'], _0x347d5c, _0x4562d3, null, null, _0x249c21, _0x2d27c6, void 0x0, void 0x0, _0x24361c))); _0x46ca18 || (_0x470154 && _0x2d27c6['onLoadedObservable']['remove'](_0x470154), _0x49b495['h']['UseFallbackTexture'] && _0x4b6249['createTexture'](_0x49b495['h']['fallbackTexture'], _0x9f908d, _0x2d27c6['invertY'], _0x347d5c, _0x4562d3, null, null, _0x249c21, _0x2d27c6)), _0x95e5c1 && _0x95e5c1(_0x3e0178 || 'Unknown\x20error', _0x516238); }; if (_0x11cb00) { var _0x735ba1 = function(_0x48fd86) { _0x11cb00['loadData'](_0x48fd86, _0x2d27c6, function(_0x3a782e, _0x498a90, _0x1d8bfe, _0x5d97ef, _0x5329ca, _0x45876b) { _0x45876b ? _0x102ec0('TextureLoader\x20failed\x20to\x20load\x20data') : _0x4b6249['_prepareWebGLTexture'](_0x2d27c6, _0x347d5c, _0x3a782e, _0x498a90, _0x2d27c6['invertY'], !_0x1d8bfe, _0x5d97ef, function() { return _0x5329ca(), !0x1; }, _0x4562d3); }); }; _0x249c21 ? _0x735ba1(_0x249c21) : this['_loadFile'](_0x11b7ae, _0x735ba1, void 0x0, _0x347d5c ? _0x347d5c['offlineProvider'] : void 0x0, !0x0, function(_0x4d2a4c, _0x2c0456) { _0x102ec0('Unable\x20to\x20load\x20' + (_0x4d2a4c && _0x4d2a4c['responseURL'], _0x2c0456)); }); } else { var _0x155afe = function(_0x33359f) { _0x220874 && !_0x4b6249['_doNotHandleContextLost'] && (_0x2d27c6['_buffer'] = _0x33359f), _0x4b6249['_prepareWebGLTexture'](_0x2d27c6, _0x347d5c, _0x33359f['width'], _0x33359f['height'], _0x2d27c6['invertY'], _0x9f908d, !0x1, function(_0x3f2543, _0x1b576b, _0x2ef99d) { var _0x5b241d = _0x4b6249['_gl'] , _0x1dfef9 = _0x33359f['width'] === _0x3f2543 && _0x33359f['height'] === _0x1b576b , _0x4c825e = _0xbd16ba ? _0x4b6249['_getInternalFormat'](_0xbd16ba) : '.jpg' === _0x340351 ? _0x5b241d['RGB'] : _0x5b241d['RGBA']; if (_0x1dfef9) return _0x5b241d['texImage2D'](_0x5b241d['TEXTURE_2D'], 0x0, _0x4c825e, _0x4c825e, _0x5b241d['UNSIGNED_BYTE'], _0x33359f), !0x1; var _0x3aecf4 = _0x4b6249['_caps']['maxTextureSize']; if (_0x33359f['width'] > _0x3aecf4 || _0x33359f['height'] > _0x3aecf4 || null === _0x2b36d6['_RescalePostProcessFactory']) return _0x4b6249['_prepareWorkingCanvas'](), !(!_0x4b6249['_workingCanvas'] || !_0x4b6249['_workingContext']) && (_0x4b6249['_workingCanvas']['width'] = _0x3f2543, _0x4b6249['_workingCanvas']['height'] = _0x1b576b, _0x4b6249['_workingContext']['drawImage'](_0x33359f, 0x0, 0x0, _0x33359f['width'], _0x33359f['height'], 0x0, 0x0, _0x3f2543, _0x1b576b), _0x5b241d['texImage2D'](_0x5b241d['TEXTURE_2D'], 0x0, _0x4c825e, _0x4c825e, _0x5b241d['UNSIGNED_BYTE'], _0x4b6249['_workingCanvas']), _0x2d27c6['width'] = _0x3f2543, _0x2d27c6['height'] = _0x1b576b, !0x1); var _0x4b436a = new _0x1a5085['a'](_0x4b6249,_0x1a5085['a']['DATASOURCE_TEMP']); return _0x4b6249['_bindTextureDirectly'](_0x5b241d['TEXTURE_2D'], _0x4b436a, !0x0), _0x5b241d['texImage2D'](_0x5b241d['TEXTURE_2D'], 0x0, _0x4c825e, _0x4c825e, _0x5b241d['UNSIGNED_BYTE'], _0x33359f), _0x5b241d['texParameteri'](_0x5b241d['TEXTURE_2D'], _0x5b241d['TEXTURE_MAG_FILTER'], _0x5b241d['LINEAR']), _0x5b241d['texParameteri'](_0x5b241d['TEXTURE_2D'], _0x5b241d['TEXTURE_MIN_FILTER'], _0x5b241d['LINEAR']), _0x5b241d['texParameteri'](_0x5b241d['TEXTURE_2D'], _0x5b241d['TEXTURE_WRAP_S'], _0x5b241d['CLAMP_TO_EDGE']), _0x5b241d['texParameteri'](_0x5b241d['TEXTURE_2D'], _0x5b241d['TEXTURE_WRAP_T'], _0x5b241d['CLAMP_TO_EDGE']), _0x4b6249['_rescaleTexture'](_0x4b436a, _0x2d27c6, _0x347d5c, _0x4c825e, function() { _0x4b6249['_releaseTexture'](_0x4b436a), _0x4b6249['_bindTextureDirectly'](_0x5b241d['TEXTURE_2D'], _0x2d27c6, !0x0), _0x2ef99d(); }), !0x0; }, _0x4562d3); }; !_0x547f9b || _0x1c4f6a ? _0x249c21 instanceof HTMLImageElement ? _0x155afe(_0x249c21) : _0x49b495['h']['LoadImage'](_0x11b7ae, _0x155afe, _0x102ec0, _0x347d5c ? _0x347d5c['offlineProvider'] : null) : 'string' == typeof _0x249c21 || _0x249c21 instanceof ArrayBuffer || _0x249c21 instanceof Blob ? _0x49b495['h']['LoadImage'](_0x249c21, _0x155afe, _0x102ec0, _0x347d5c ? _0x347d5c['offlineProvider'] : null) : _0x155afe(_0x249c21); } return _0x2d27c6; } , _0x2b36d6['prototype']['_rescaleTexture'] = function(_0x25bc18, _0x267014, _0x1ad197, _0x1a917f, _0x31b798) { var _0x3a011a = this , _0x67783 = this['createRenderTargetTexture']({ 'width': _0x267014['width'], 'height': _0x267014['height'] }, { 'generateMipMaps': !0x1, 'type': _0x2b36d6['TEXTURETYPE_UNSIGNED_INT'], 'samplingMode': _0x2b36d6['TEXTURE_BILINEAR_SAMPLINGMODE'], 'generateDepthBuffer': !0x1, 'generateStencilBuffer': !0x1 }); !this['_rescalePostProcess'] && _0x2b36d6['_RescalePostProcessFactory'] && (this['_rescalePostProcess'] = _0x2b36d6['_RescalePostProcessFactory'](this)), this['_rescalePostProcess']['getEffect']()['executeWhenCompiled'](function() { _0x3a011a['_rescalePostProcess']['onApply'] = function(_0x124190) { _0x124190['_bindTexture']('textureSampler', _0x25bc18); } ; var _0x5f1a27 = _0x1ad197; _0x5f1a27 || (_0x5f1a27 = _0x3a011a['scenes'][_0x3a011a['scenes']['length'] - 0x1]), _0x5f1a27['postProcessManager']['directRender']([_0x3a011a['_rescalePostProcess']], _0x67783, !0x0), _0x3a011a['_bindTextureDirectly'](_0x3a011a['_gl']['TEXTURE_2D'], _0x267014, !0x0), _0x3a011a['_gl']['copyTexImage2D'](_0x3a011a['_gl']['TEXTURE_2D'], 0x0, _0x1a917f, 0x0, 0x0, _0x267014['width'], _0x267014['height'], 0x0), _0x3a011a['unBindFramebuffer'](_0x67783), _0x3a011a['_releaseTexture'](_0x67783), _0x31b798 && _0x31b798(); }); } , _0x2b36d6['prototype']['createRawTexture'] = function(_0x1a36f2, _0xf00c30, _0x24415e, _0x4ab92f, _0x32f39d, _0x4ccd8e, _0x2b8fe0, _0x4596a5, _0x19f8dd) { throw void 0x0 === _0x4596a5 && (_0x4596a5 = null), void 0x0 === _0x19f8dd && (_0x19f8dd = _0x2b36d6['TEXTURETYPE_UNSIGNED_INT']), _0x51a360['a']['WarnImport']('Engine.RawTexture'); } , _0x2b36d6['prototype']['_unpackFlipY'] = function(_0x2a34a5) { this['_unpackFlipYCached'] !== _0x2a34a5 && (this['_gl']['pixelStorei'](this['_gl']['UNPACK_FLIP_Y_WEBGL'], _0x2a34a5 ? 0x1 : 0x0), this['enableUnpackFlipYCached'] && (this['_unpackFlipYCached'] = _0x2a34a5)); } , _0x2b36d6['prototype']['_getUnpackAlignement'] = function() { return this['_gl']['getParameter'](this['_gl']['UNPACK_ALIGNMENT']); } , _0x2b36d6['prototype']['createDynamicTexture'] = function(_0x215489, _0x492514, _0x304ec0, _0x38d915) { var _0x119107 = new _0x1a5085['a'](this,_0x1a5085['a']['DATASOURCE_DYNAMIC']); return _0x119107['baseWidth'] = _0x215489, _0x119107['baseHeight'] = _0x492514, _0x304ec0 && (_0x215489 = this['needPOTTextures'] ? _0x49b495['h']['GetExponentOfTwo'](_0x215489, this['_caps']['maxTextureSize']) : _0x215489, _0x492514 = this['needPOTTextures'] ? _0x49b495['h']['GetExponentOfTwo'](_0x492514, this['_caps']['maxTextureSize']) : _0x492514), _0x119107['width'] = _0x215489, _0x119107['height'] = _0x492514, _0x119107['isReady'] = !0x1, _0x119107['generateMipMaps'] = _0x304ec0, _0x119107['samplingMode'] = _0x38d915, this['updateTextureSamplingMode'](_0x38d915, _0x119107), this['_internalTexturesCache']['push'](_0x119107), _0x119107; } , _0x2b36d6['prototype']['updateTextureSamplingMode'] = function(_0x3a46e6, _0x3cd786) { var _0x33ac13 = this['_getSamplingParameters'](_0x3a46e6, _0x3cd786['generateMipMaps']); _0x3cd786['isCube'] ? (this['_setTextureParameterInteger'](this['_gl']['TEXTURE_CUBE_MAP'], this['_gl']['TEXTURE_MAG_FILTER'], _0x33ac13['mag'], _0x3cd786), this['_setTextureParameterInteger'](this['_gl']['TEXTURE_CUBE_MAP'], this['_gl']['TEXTURE_MIN_FILTER'], _0x33ac13['min']), this['_bindTextureDirectly'](this['_gl']['TEXTURE_CUBE_MAP'], null)) : _0x3cd786['is3D'] ? (this['_setTextureParameterInteger'](this['_gl']['TEXTURE_3D'], this['_gl']['TEXTURE_MAG_FILTER'], _0x33ac13['mag'], _0x3cd786), this['_setTextureParameterInteger'](this['_gl']['TEXTURE_3D'], this['_gl']['TEXTURE_MIN_FILTER'], _0x33ac13['min']), this['_bindTextureDirectly'](this['_gl']['TEXTURE_3D'], null)) : (this['_setTextureParameterInteger'](this['_gl']['TEXTURE_2D'], this['_gl']['TEXTURE_MAG_FILTER'], _0x33ac13['mag'], _0x3cd786), this['_setTextureParameterInteger'](this['_gl']['TEXTURE_2D'], this['_gl']['TEXTURE_MIN_FILTER'], _0x33ac13['min']), this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'], null)), _0x3cd786['samplingMode'] = _0x3a46e6; } , _0x2b36d6['prototype']['updateDynamicTexture'] = function(_0x5d8619, _0x233d22, _0x239924, _0x2e65ee, _0x32da38, _0x59bc8c) { if (void 0x0 === _0x2e65ee && (_0x2e65ee = !0x1), void 0x0 === _0x59bc8c && (_0x59bc8c = !0x1), _0x5d8619) { this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'], _0x5d8619, !0x0, _0x59bc8c), this['_unpackFlipY'](_0x239924), _0x2e65ee && this['_gl']['pixelStorei'](this['_gl']['UNPACK_PREMULTIPLY_ALPHA_WEBGL'], 0x1); var _0xa0b19e = _0x32da38 ? this['_getInternalFormat'](_0x32da38) : this['_gl']['RGBA']; this['_gl']['texImage2D'](this['_gl']['TEXTURE_2D'], 0x0, _0xa0b19e, _0xa0b19e, this['_gl']['UNSIGNED_BYTE'], _0x233d22), _0x5d8619['generateMipMaps'] && this['_gl']['generateMipmap'](this['_gl']['TEXTURE_2D']), this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'], null), _0x2e65ee && this['_gl']['pixelStorei'](this['_gl']['UNPACK_PREMULTIPLY_ALPHA_WEBGL'], 0x0), _0x5d8619['isReady'] = !0x0; } } , _0x2b36d6['prototype']['updateVideoTexture'] = function(_0x1fbda3, _0x458ff3, _0x30011c) { if (_0x1fbda3 && !_0x1fbda3['_isDisabled']) { var _0x149390 = this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'], _0x1fbda3, !0x0); this['_unpackFlipY'](!_0x30011c); try { if (void 0x0 === this['_videoTextureSupported'] && (this['_gl']['texImage2D'](this['_gl']['TEXTURE_2D'], 0x0, this['_gl']['RGBA'], this['_gl']['RGBA'], this['_gl']['UNSIGNED_BYTE'], _0x458ff3), 0x0 !== this['_gl']['getError']() ? this['_videoTextureSupported'] = !0x1 : this['_videoTextureSupported'] = !0x0), this['_videoTextureSupported']) this['_gl']['texImage2D'](this['_gl']['TEXTURE_2D'], 0x0, this['_gl']['RGBA'], this['_gl']['RGBA'], this['_gl']['UNSIGNED_BYTE'], _0x458ff3); else { if (!_0x1fbda3['_workingCanvas']) { _0x1fbda3['_workingCanvas'] = document['createElement']('canvas'); var _0x2f910f = _0x1fbda3['_workingCanvas']['getContext']('2d'); if (!_0x2f910f) throw new Error('Unable\x20to\x20get\x202d\x20context'); _0x1fbda3['_workingContext'] = _0x2f910f, _0x1fbda3['_workingCanvas']['width'] = _0x1fbda3['width'], _0x1fbda3['_workingCanvas']['height'] = _0x1fbda3['height']; } _0x1fbda3['_workingContext']['drawImage'](_0x458ff3, 0x0, 0x0, _0x458ff3['videoWidth'], _0x458ff3['videoHeight'], 0x0, 0x0, _0x1fbda3['width'], _0x1fbda3['height']), this['_gl']['texImage2D'](this['_gl']['TEXTURE_2D'], 0x0, this['_gl']['RGBA'], this['_gl']['RGBA'], this['_gl']['UNSIGNED_BYTE'], _0x1fbda3['_workingCanvas']); } _0x1fbda3['generateMipMaps'] && this['_gl']['generateMipmap'](this['_gl']['TEXTURE_2D']), _0x149390 || this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'], null), _0x1fbda3['isReady'] = !0x0; } catch (_0x287ff2) { _0x1fbda3['_isDisabled'] = !0x0; } } } , _0x2b36d6['prototype']['updateTextureComparisonFunction'] = function(_0x38fbd0, _0x5876d5) { if (0x1 !== this['webGLVersion']) { var _0x208a67 = this['_gl']; _0x38fbd0['isCube'] ? (this['_bindTextureDirectly'](this['_gl']['TEXTURE_CUBE_MAP'], _0x38fbd0, !0x0), 0x0 === _0x5876d5 ? (_0x208a67['texParameteri'](_0x208a67['TEXTURE_CUBE_MAP'], _0x208a67['TEXTURE_COMPARE_FUNC'], _0x2b36d6['LEQUAL']), _0x208a67['texParameteri'](_0x208a67['TEXTURE_CUBE_MAP'], _0x208a67['TEXTURE_COMPARE_MODE'], _0x208a67['NONE'])) : (_0x208a67['texParameteri'](_0x208a67['TEXTURE_CUBE_MAP'], _0x208a67['TEXTURE_COMPARE_FUNC'], _0x5876d5), _0x208a67['texParameteri'](_0x208a67['TEXTURE_CUBE_MAP'], _0x208a67['TEXTURE_COMPARE_MODE'], _0x208a67['COMPARE_REF_TO_TEXTURE'])), this['_bindTextureDirectly'](this['_gl']['TEXTURE_CUBE_MAP'], null)) : (this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'], _0x38fbd0, !0x0), 0x0 === _0x5876d5 ? (_0x208a67['texParameteri'](_0x208a67['TEXTURE_2D'], _0x208a67['TEXTURE_COMPARE_FUNC'], _0x2b36d6['LEQUAL']), _0x208a67['texParameteri'](_0x208a67['TEXTURE_2D'], _0x208a67['TEXTURE_COMPARE_MODE'], _0x208a67['NONE'])) : (_0x208a67['texParameteri'](_0x208a67['TEXTURE_2D'], _0x208a67['TEXTURE_COMPARE_FUNC'], _0x5876d5), _0x208a67['texParameteri'](_0x208a67['TEXTURE_2D'], _0x208a67['TEXTURE_COMPARE_MODE'], _0x208a67['COMPARE_REF_TO_TEXTURE'])), this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'], null)), _0x38fbd0['_comparisonFunction'] = _0x5876d5; } else _0x3fe383['a']['Error']('WebGL\x201\x20does\x20not\x20support\x20texture\x20comparison.'); } , _0x2b36d6['prototype']['_setupDepthStencilTexture'] = function(_0x3f1acc, _0x5dec73, _0x16ca7f, _0x54d22f, _0x4ac398) { var _0xd73d86 = _0x5dec73['width'] || _0x5dec73 , _0x5de226 = _0x5dec73['height'] || _0x5dec73; _0x3f1acc['baseWidth'] = _0xd73d86, _0x3f1acc['baseHeight'] = _0x5de226, _0x3f1acc['width'] = _0xd73d86, _0x3f1acc['height'] = _0x5de226, _0x3f1acc['isReady'] = !0x0, _0x3f1acc['samples'] = 0x1, _0x3f1acc['generateMipMaps'] = !0x1, _0x3f1acc['_generateDepthBuffer'] = !0x0, _0x3f1acc['_generateStencilBuffer'] = _0x16ca7f, _0x3f1acc['samplingMode'] = _0x54d22f ? _0x2b36d6['TEXTURE_BILINEAR_SAMPLINGMODE'] : _0x2b36d6['TEXTURE_NEAREST_SAMPLINGMODE'], _0x3f1acc['type'] = _0x2b36d6['TEXTURETYPE_UNSIGNED_INT'], _0x3f1acc['_comparisonFunction'] = _0x4ac398; var _0x4d041b = this['_gl'] , _0x3e9146 = _0x3f1acc['isCube'] ? _0x4d041b['TEXTURE_CUBE_MAP'] : _0x4d041b['TEXTURE_2D'] , _0x4bbbf0 = this['_getSamplingParameters'](_0x3f1acc['samplingMode'], !0x1); _0x4d041b['texParameteri'](_0x3e9146, _0x4d041b['TEXTURE_MAG_FILTER'], _0x4bbbf0['mag']), _0x4d041b['texParameteri'](_0x3e9146, _0x4d041b['TEXTURE_MIN_FILTER'], _0x4bbbf0['min']), _0x4d041b['texParameteri'](_0x3e9146, _0x4d041b['TEXTURE_WRAP_S'], _0x4d041b['CLAMP_TO_EDGE']), _0x4d041b['texParameteri'](_0x3e9146, _0x4d041b['TEXTURE_WRAP_T'], _0x4d041b['CLAMP_TO_EDGE']), 0x0 === _0x4ac398 ? (_0x4d041b['texParameteri'](_0x3e9146, _0x4d041b['TEXTURE_COMPARE_FUNC'], _0x2b36d6['LEQUAL']), _0x4d041b['texParameteri'](_0x3e9146, _0x4d041b['TEXTURE_COMPARE_MODE'], _0x4d041b['NONE'])) : (_0x4d041b['texParameteri'](_0x3e9146, _0x4d041b['TEXTURE_COMPARE_FUNC'], _0x4ac398), _0x4d041b['texParameteri'](_0x3e9146, _0x4d041b['TEXTURE_COMPARE_MODE'], _0x4d041b['COMPARE_REF_TO_TEXTURE'])); } , _0x2b36d6['prototype']['createDepthStencilTexture'] = function(_0x26b3ee, _0x58e4a6) { if (_0x58e4a6['isCube']) { var _0x404311 = _0x26b3ee['width'] || _0x26b3ee; return this['_createDepthStencilCubeTexture'](_0x404311, _0x58e4a6); } return this['_createDepthStencilTexture'](_0x26b3ee, _0x58e4a6); } , _0x2b36d6['prototype']['_createDepthStencilTexture'] = function(_0xc2ee6e, _0x51d498) { var _0x25c702 = new _0x1a5085['a'](this,_0x1a5085['a']['DATASOURCE_DEPTHTEXTURE']); if (!this['_caps']['depthTextureExtension']) return _0x3fe383['a']['Error']('Depth\x20texture\x20is\x20not\x20supported\x20by\x20your\x20browser\x20or\x20hardware.'), _0x25c702; var _0x1e8639 = _0x31b8ef['a']({ 'bilinearFiltering': !0x1, 'comparisonFunction': 0x0, 'generateStencil': !0x1 }, _0x51d498) , _0x2d8af3 = this['_gl']; return this['_bindTextureDirectly'](_0x2d8af3['TEXTURE_2D'], _0x25c702, !0x0), this['_setupDepthStencilTexture'](_0x25c702, _0xc2ee6e, _0x1e8639['generateStencil'], _0x1e8639['bilinearFiltering'], _0x1e8639['comparisonFunction']), this['webGLVersion'] > 0x1 ? _0x1e8639['generateStencil'] ? _0x2d8af3['texImage2D'](_0x2d8af3['TEXTURE_2D'], 0x0, _0x2d8af3['DEPTH24_STENCIL8'], _0x25c702['width'], _0x25c702['height'], 0x0, _0x2d8af3['DEPTH_STENCIL'], _0x2d8af3['UNSIGNED_INT_24_8'], null) : _0x2d8af3['texImage2D'](_0x2d8af3['TEXTURE_2D'], 0x0, _0x2d8af3['DEPTH_COMPONENT24'], _0x25c702['width'], _0x25c702['height'], 0x0, _0x2d8af3['DEPTH_COMPONENT'], _0x2d8af3['UNSIGNED_INT'], null) : _0x1e8639['generateStencil'] ? _0x2d8af3['texImage2D'](_0x2d8af3['TEXTURE_2D'], 0x0, _0x2d8af3['DEPTH_STENCIL'], _0x25c702['width'], _0x25c702['height'], 0x0, _0x2d8af3['DEPTH_STENCIL'], _0x2d8af3['UNSIGNED_INT_24_8'], null) : _0x2d8af3['texImage2D'](_0x2d8af3['TEXTURE_2D'], 0x0, _0x2d8af3['DEPTH_COMPONENT'], _0x25c702['width'], _0x25c702['height'], 0x0, _0x2d8af3['DEPTH_COMPONENT'], _0x2d8af3['UNSIGNED_INT'], null), this['_bindTextureDirectly'](_0x2d8af3['TEXTURE_2D'], null), _0x25c702; } , _0x2b36d6['prototype']['setFrameBufferDepthStencilTexture'] = function(_0x37f58b) { var _0x233555 = _0x37f58b['getInternalTexture'](); if (_0x233555 && _0x233555['_framebuffer'] && _0x37f58b['depthStencilTexture']) { var _0xdce1f5 = this['_gl'] , _0x23e1c9 = _0x37f58b['depthStencilTexture']; this['_bindUnboundFramebuffer'](_0x233555['_framebuffer']), _0x23e1c9['isCube'] ? _0x23e1c9['_generateStencilBuffer'] ? _0xdce1f5['framebufferTexture2D'](_0xdce1f5['FRAMEBUFFER'], _0xdce1f5['DEPTH_STENCIL_ATTACHMENT'], _0xdce1f5['TEXTURE_CUBE_MAP_POSITIVE_X'], _0x23e1c9['_webGLTexture'], 0x0) : _0xdce1f5['framebufferTexture2D'](_0xdce1f5['FRAMEBUFFER'], _0xdce1f5['DEPTH_ATTACHMENT'], _0xdce1f5['TEXTURE_CUBE_MAP_POSITIVE_X'], _0x23e1c9['_webGLTexture'], 0x0) : _0x23e1c9['_generateStencilBuffer'] ? _0xdce1f5['framebufferTexture2D'](_0xdce1f5['FRAMEBUFFER'], _0xdce1f5['DEPTH_STENCIL_ATTACHMENT'], _0xdce1f5['TEXTURE_2D'], _0x23e1c9['_webGLTexture'], 0x0) : _0xdce1f5['framebufferTexture2D'](_0xdce1f5['FRAMEBUFFER'], _0xdce1f5['DEPTH_ATTACHMENT'], _0xdce1f5['TEXTURE_2D'], _0x23e1c9['_webGLTexture'], 0x0), this['_bindUnboundFramebuffer'](null); } } , _0x2b36d6['prototype']['createRenderTargetTexture'] = function(_0x3f025a, _0x4fa187) { var _0x2a9ab3 = new _0x1ad15a['a'](); void 0x0 !== _0x4fa187 && 'object' == typeof _0x4fa187 ? (_0x2a9ab3['generateMipMaps'] = _0x4fa187['generateMipMaps'], _0x2a9ab3['generateDepthBuffer'] = void 0x0 === _0x4fa187['generateDepthBuffer'] || _0x4fa187['generateDepthBuffer'], _0x2a9ab3['generateStencilBuffer'] = _0x2a9ab3['generateDepthBuffer'] && _0x4fa187['generateStencilBuffer'], _0x2a9ab3['type'] = void 0x0 === _0x4fa187['type'] ? _0x2b36d6['TEXTURETYPE_UNSIGNED_INT'] : _0x4fa187['type'], _0x2a9ab3['samplingMode'] = void 0x0 === _0x4fa187['samplingMode'] ? _0x2b36d6['TEXTURE_TRILINEAR_SAMPLINGMODE'] : _0x4fa187['samplingMode'], _0x2a9ab3['format'] = void 0x0 === _0x4fa187['format'] ? _0x2b36d6['TEXTUREFORMAT_RGBA'] : _0x4fa187['format']) : (_0x2a9ab3['generateMipMaps'] = _0x4fa187, _0x2a9ab3['generateDepthBuffer'] = !0x0, _0x2a9ab3['generateStencilBuffer'] = !0x1, _0x2a9ab3['type'] = _0x2b36d6['TEXTURETYPE_UNSIGNED_INT'], _0x2a9ab3['samplingMode'] = _0x2b36d6['TEXTURE_TRILINEAR_SAMPLINGMODE'], _0x2a9ab3['format'] = _0x2b36d6['TEXTUREFORMAT_RGBA']), (_0x2a9ab3['type'] !== _0x2b36d6['TEXTURETYPE_FLOAT'] || this['_caps']['textureFloatLinearFiltering']) && (_0x2a9ab3['type'] !== _0x2b36d6['TEXTURETYPE_HALF_FLOAT'] || this['_caps']['textureHalfFloatLinearFiltering']) || (_0x2a9ab3['samplingMode'] = _0x2b36d6['TEXTURE_NEAREST_SAMPLINGMODE']); var _0x31e9ed = this['_gl'] , _0xecac44 = new _0x1a5085['a'](this,_0x1a5085['a']['DATASOURCE_RENDERTARGET']); this['_bindTextureDirectly'](_0x31e9ed['TEXTURE_2D'], _0xecac44, !0x0); var _0x5f61d8 = _0x3f025a['width'] || _0x3f025a , _0x333c0e = _0x3f025a['height'] || _0x3f025a , _0xbfd24b = this['_getSamplingParameters'](_0x2a9ab3['samplingMode'], !!_0x2a9ab3['generateMipMaps']); _0x2a9ab3['type'] !== _0x2b36d6['TEXTURETYPE_FLOAT'] || this['_caps']['textureFloat'] || (_0x2a9ab3['type'] = _0x2b36d6['TEXTURETYPE_UNSIGNED_INT'], _0x3fe383['a']['Warn']('Float\x20textures\x20are\x20not\x20supported.\x20Render\x20target\x20forced\x20to\x20TEXTURETYPE_UNSIGNED_BYTE\x20type')), _0x31e9ed['texParameteri'](_0x31e9ed['TEXTURE_2D'], _0x31e9ed['TEXTURE_MAG_FILTER'], _0xbfd24b['mag']), _0x31e9ed['texParameteri'](_0x31e9ed['TEXTURE_2D'], _0x31e9ed['TEXTURE_MIN_FILTER'], _0xbfd24b['min']), _0x31e9ed['texParameteri'](_0x31e9ed['TEXTURE_2D'], _0x31e9ed['TEXTURE_WRAP_S'], _0x31e9ed['CLAMP_TO_EDGE']), _0x31e9ed['texParameteri'](_0x31e9ed['TEXTURE_2D'], _0x31e9ed['TEXTURE_WRAP_T'], _0x31e9ed['CLAMP_TO_EDGE']), _0x31e9ed['texImage2D'](_0x31e9ed['TEXTURE_2D'], 0x0, this['_getRGBABufferInternalSizedFormat'](_0x2a9ab3['type'], _0x2a9ab3['format']), _0x5f61d8, _0x333c0e, 0x0, this['_getInternalFormat'](_0x2a9ab3['format']), this['_getWebGLTextureType'](_0x2a9ab3['type']), null); var _0x416834 = this['_currentFramebuffer'] , _0x31fccf = _0x31e9ed['createFramebuffer'](); return this['_bindUnboundFramebuffer'](_0x31fccf), _0x31e9ed['framebufferTexture2D'](_0x31e9ed['FRAMEBUFFER'], _0x31e9ed['COLOR_ATTACHMENT0'], _0x31e9ed['TEXTURE_2D'], _0xecac44['_webGLTexture'], 0x0), _0xecac44['_depthStencilBuffer'] = this['_setupFramebufferDepthAttachments'](!!_0x2a9ab3['generateStencilBuffer'], _0x2a9ab3['generateDepthBuffer'], _0x5f61d8, _0x333c0e), _0x2a9ab3['generateMipMaps'] && this['_gl']['generateMipmap'](this['_gl']['TEXTURE_2D']), this['_bindTextureDirectly'](_0x31e9ed['TEXTURE_2D'], null), _0x31e9ed['bindRenderbuffer'](_0x31e9ed['RENDERBUFFER'], null), this['_bindUnboundFramebuffer'](_0x416834), _0xecac44['_framebuffer'] = _0x31fccf, _0xecac44['baseWidth'] = _0x5f61d8, _0xecac44['baseHeight'] = _0x333c0e, _0xecac44['width'] = _0x5f61d8, _0xecac44['height'] = _0x333c0e, _0xecac44['isReady'] = !0x0, _0xecac44['samples'] = 0x1, _0xecac44['generateMipMaps'] = !!_0x2a9ab3['generateMipMaps'], _0xecac44['samplingMode'] = _0x2a9ab3['samplingMode'], _0xecac44['type'] = _0x2a9ab3['type'], _0xecac44['format'] = _0x2a9ab3['format'], _0xecac44['_generateDepthBuffer'] = _0x2a9ab3['generateDepthBuffer'], _0xecac44['_generateStencilBuffer'] = !!_0x2a9ab3['generateStencilBuffer'], this['_internalTexturesCache']['push'](_0xecac44), _0xecac44; } , _0x2b36d6['prototype']['_setupFramebufferDepthAttachments'] = function(_0x399dee, _0x1e0c00, _0xf11bdd, _0x52e4c4, _0x3199b6) { void 0x0 === _0x3199b6 && (_0x3199b6 = 0x1); var _0x5750d1 = null , _0x52ee9e = this['_gl']; return _0x399dee ? (_0x5750d1 = _0x52ee9e['createRenderbuffer'](), _0x52ee9e['bindRenderbuffer'](_0x52ee9e['RENDERBUFFER'], _0x5750d1), _0x3199b6 > 0x1 ? _0x52ee9e['renderbufferStorageMultisample'](_0x52ee9e['RENDERBUFFER'], _0x3199b6, _0x52ee9e['DEPTH24_STENCIL8'], _0xf11bdd, _0x52e4c4) : _0x52ee9e['renderbufferStorage'](_0x52ee9e['RENDERBUFFER'], _0x52ee9e['DEPTH_STENCIL'], _0xf11bdd, _0x52e4c4), _0x52ee9e['framebufferRenderbuffer'](_0x52ee9e['FRAMEBUFFER'], _0x52ee9e['DEPTH_STENCIL_ATTACHMENT'], _0x52ee9e['RENDERBUFFER'], _0x5750d1)) : _0x1e0c00 && (_0x5750d1 = _0x52ee9e['createRenderbuffer'](), _0x52ee9e['bindRenderbuffer'](_0x52ee9e['RENDERBUFFER'], _0x5750d1), _0x3199b6 > 0x1 ? _0x52ee9e['renderbufferStorageMultisample'](_0x52ee9e['RENDERBUFFER'], _0x3199b6, _0x52ee9e['DEPTH_COMPONENT16'], _0xf11bdd, _0x52e4c4) : _0x52ee9e['renderbufferStorage'](_0x52ee9e['RENDERBUFFER'], _0x52ee9e['DEPTH_COMPONENT16'], _0xf11bdd, _0x52e4c4), _0x52ee9e['framebufferRenderbuffer'](_0x52ee9e['FRAMEBUFFER'], _0x52ee9e['DEPTH_ATTACHMENT'], _0x52ee9e['RENDERBUFFER'], _0x5750d1)), _0x5750d1; } , _0x2b36d6['prototype']['updateRenderTargetTextureSampleCount'] = function(_0x8dd0b6, _0x29a5ec) { if (this['webGLVersion'] < 0x2 || !_0x8dd0b6) return 0x1; if (_0x8dd0b6['samples'] === _0x29a5ec) return _0x29a5ec; var _0x48dac7 = this['_gl']; if (_0x29a5ec = Math['min'](_0x29a5ec, _0x48dac7['getParameter'](_0x48dac7['MAX_SAMPLES'])), _0x8dd0b6['_depthStencilBuffer'] && (_0x48dac7['deleteRenderbuffer'](_0x8dd0b6['_depthStencilBuffer']), _0x8dd0b6['_depthStencilBuffer'] = null), _0x8dd0b6['_MSAAFramebuffer'] && (_0x48dac7['deleteFramebuffer'](_0x8dd0b6['_MSAAFramebuffer']), _0x8dd0b6['_MSAAFramebuffer'] = null), _0x8dd0b6['_MSAARenderBuffer'] && (_0x48dac7['deleteRenderbuffer'](_0x8dd0b6['_MSAARenderBuffer']), _0x8dd0b6['_MSAARenderBuffer'] = null), _0x29a5ec > 0x1) { var _0x5de7dc = _0x48dac7['createFramebuffer'](); if (!_0x5de7dc) throw new Error('Unable\x20to\x20create\x20multi\x20sampled\x20framebuffer'); _0x8dd0b6['_MSAAFramebuffer'] = _0x5de7dc, this['_bindUnboundFramebuffer'](_0x8dd0b6['_MSAAFramebuffer']); var _0x4be2ff = _0x48dac7['createRenderbuffer'](); if (!_0x4be2ff) throw new Error('Unable\x20to\x20create\x20multi\x20sampled\x20framebuffer'); _0x48dac7['bindRenderbuffer'](_0x48dac7['RENDERBUFFER'], _0x4be2ff), _0x48dac7['renderbufferStorageMultisample'](_0x48dac7['RENDERBUFFER'], _0x29a5ec, this['_getRGBAMultiSampleBufferFormat'](_0x8dd0b6['type']), _0x8dd0b6['width'], _0x8dd0b6['height']), _0x48dac7['framebufferRenderbuffer'](_0x48dac7['FRAMEBUFFER'], _0x48dac7['COLOR_ATTACHMENT0'], _0x48dac7['RENDERBUFFER'], _0x4be2ff), _0x8dd0b6['_MSAARenderBuffer'] = _0x4be2ff; } else this['_bindUnboundFramebuffer'](_0x8dd0b6['_framebuffer']); return _0x8dd0b6['samples'] = _0x29a5ec, _0x8dd0b6['_depthStencilBuffer'] = this['_setupFramebufferDepthAttachments'](_0x8dd0b6['_generateStencilBuffer'], _0x8dd0b6['_generateDepthBuffer'], _0x8dd0b6['width'], _0x8dd0b6['height'], _0x29a5ec), _0x48dac7['bindRenderbuffer'](_0x48dac7['RENDERBUFFER'], null), this['_bindUnboundFramebuffer'](null), _0x29a5ec; } , _0x2b36d6['prototype']['_uploadCompressedDataToTextureDirectly'] = function(_0x5701be, _0x3b8255, _0x5e6ae1, _0x4453f0, _0x4f79e0, _0x8fa4e4, _0x3d24b7) { void 0x0 === _0x8fa4e4 && (_0x8fa4e4 = 0x0), void 0x0 === _0x3d24b7 && (_0x3d24b7 = 0x0); var _0x362399 = this['_gl'] , _0x4d18e3 = _0x362399['TEXTURE_2D']; _0x5701be['isCube'] && (_0x4d18e3 = _0x362399['TEXTURE_CUBE_MAP_POSITIVE_X'] + _0x8fa4e4), this['_gl']['compressedTexImage2D'](_0x4d18e3, _0x3d24b7, _0x3b8255, _0x5e6ae1, _0x4453f0, 0x0, _0x4f79e0); } , _0x2b36d6['prototype']['_uploadDataToTextureDirectly'] = function(_0x29badb, _0x2c6da4, _0x56578a, _0x3a192a) { void 0x0 === _0x56578a && (_0x56578a = 0x0), void 0x0 === _0x3a192a && (_0x3a192a = 0x0); var _0x2729d0 = this['_gl'] , _0x1aea20 = this['_getWebGLTextureType'](_0x29badb['type']) , _0x2f732d = this['_getInternalFormat'](_0x29badb['format']) , _0x5e5354 = this['_getRGBABufferInternalSizedFormat'](_0x29badb['type'], _0x2f732d); this['_unpackFlipY'](_0x29badb['invertY']); var _0x1cbe40 = _0x2729d0['TEXTURE_2D']; _0x29badb['isCube'] && (_0x1cbe40 = _0x2729d0['TEXTURE_CUBE_MAP_POSITIVE_X'] + _0x56578a); var _0x19a1e9 = Math['round'](_0x20fb29['a']['Log2'](_0x29badb['width'])) , _0x445330 = Math['round'](_0x20fb29['a']['Log2'](_0x29badb['height'])) , _0x4c58b1 = Math['pow'](0x2, Math['max'](_0x19a1e9 - _0x3a192a, 0x0)) , _0xaac0da = Math['pow'](0x2, Math['max'](_0x445330 - _0x3a192a, 0x0)); _0x2729d0['texImage2D'](_0x1cbe40, _0x3a192a, _0x5e5354, _0x4c58b1, _0xaac0da, 0x0, _0x2f732d, _0x1aea20, _0x2c6da4); } , _0x2b36d6['prototype']['_uploadArrayBufferViewToTexture'] = function(_0x236ba8, _0x2d7915, _0x33acdd, _0x9c338d) { void 0x0 === _0x33acdd && (_0x33acdd = 0x0), void 0x0 === _0x9c338d && (_0x9c338d = 0x0); var _0x41437a = this['_gl'] , _0x1fa28a = _0x236ba8['isCube'] ? _0x41437a['TEXTURE_CUBE_MAP'] : _0x41437a['TEXTURE_2D']; this['_bindTextureDirectly'](_0x1fa28a, _0x236ba8, !0x0), this['_uploadDataToTextureDirectly'](_0x236ba8, _0x2d7915, _0x33acdd, _0x9c338d), this['_bindTextureDirectly'](_0x1fa28a, null, !0x0); } , _0x2b36d6['prototype']['_uploadImageToTexture'] = function(_0x4ec01, _0x4a9840, _0x3673b7, _0x4a42dc) { void 0x0 === _0x3673b7 && (_0x3673b7 = 0x0), void 0x0 === _0x4a42dc && (_0x4a42dc = 0x0); var _0x42c1d0 = this['_gl'] , _0x258e12 = this['_getWebGLTextureType'](_0x4ec01['type']) , _0x591f15 = this['_getInternalFormat'](_0x4ec01['format']) , _0x2d83ec = this['_getRGBABufferInternalSizedFormat'](_0x4ec01['type'], _0x591f15) , _0x34959f = _0x4ec01['isCube'] ? _0x42c1d0['TEXTURE_CUBE_MAP'] : _0x42c1d0['TEXTURE_2D']; this['_bindTextureDirectly'](_0x34959f, _0x4ec01, !0x0), this['_unpackFlipY'](_0x4ec01['invertY']); var _0x8d8e42 = _0x42c1d0['TEXTURE_2D']; _0x4ec01['isCube'] && (_0x8d8e42 = _0x42c1d0['TEXTURE_CUBE_MAP_POSITIVE_X'] + _0x3673b7), _0x42c1d0['texImage2D'](_0x8d8e42, _0x4a42dc, _0x2d83ec, _0x591f15, _0x258e12, _0x4a9840), this['_bindTextureDirectly'](_0x34959f, null, !0x0); } , _0x2b36d6['prototype']['_setCubeMapTextureParams'] = function(_0x30255a) { var _0x47fbfb = this['_gl']; _0x47fbfb['texParameteri'](_0x47fbfb['TEXTURE_CUBE_MAP'], _0x47fbfb['TEXTURE_MAG_FILTER'], _0x47fbfb['LINEAR']), _0x47fbfb['texParameteri'](_0x47fbfb['TEXTURE_CUBE_MAP'], _0x47fbfb['TEXTURE_MIN_FILTER'], _0x30255a ? _0x47fbfb['LINEAR_MIPMAP_LINEAR'] : _0x47fbfb['LINEAR']), _0x47fbfb['texParameteri'](_0x47fbfb['TEXTURE_CUBE_MAP'], _0x47fbfb['TEXTURE_WRAP_S'], _0x47fbfb['CLAMP_TO_EDGE']), _0x47fbfb['texParameteri'](_0x47fbfb['TEXTURE_CUBE_MAP'], _0x47fbfb['TEXTURE_WRAP_T'], _0x47fbfb['CLAMP_TO_EDGE']), this['_bindTextureDirectly'](_0x47fbfb['TEXTURE_CUBE_MAP'], null); } , _0x2b36d6['prototype']['createRawCubeTexture'] = function(_0x192db1, _0x4100a6, _0x5988bf, _0x5e2c72, _0x5ee5d2, _0x1fee01, _0x5adba5, _0x11f9de) { throw void 0x0 === _0x11f9de && (_0x11f9de = null), _0x51a360['a']['WarnImport']('Engine.RawTexture'); } , _0x2b36d6['prototype']['createRawTexture3D'] = function(_0x90b94a, _0x17737d, _0x3faadf, _0x30f309, _0x181089, _0x21e759, _0x23680b, _0x399c9d, _0x48fb3c, _0x36c2af) { throw void 0x0 === _0x48fb3c && (_0x48fb3c = null), void 0x0 === _0x36c2af && (_0x36c2af = _0x2b36d6['TEXTURETYPE_UNSIGNED_INT']), _0x51a360['a']['WarnImport']('Engine.RawTexture'); } , _0x2b36d6['prototype']['_prepareWebGLTextureContinuation'] = function(_0x244701, _0x50a532, _0x4630bf, _0x55a958, _0x45b257) { var _0xd2f7af = this['_gl']; if (_0xd2f7af) { var _0x3cb732 = this['_getSamplingParameters'](_0x45b257, !_0x4630bf); _0xd2f7af['texParameteri'](_0xd2f7af['TEXTURE_2D'], _0xd2f7af['TEXTURE_MAG_FILTER'], _0x3cb732['mag']), _0xd2f7af['texParameteri'](_0xd2f7af['TEXTURE_2D'], _0xd2f7af['TEXTURE_MIN_FILTER'], _0x3cb732['min']), _0x4630bf || _0x55a958 || _0xd2f7af['generateMipmap'](_0xd2f7af['TEXTURE_2D']), this['_bindTextureDirectly'](_0xd2f7af['TEXTURE_2D'], null), _0x50a532 && _0x50a532['_removePendingData'](_0x244701), _0x244701['onLoadedObservable']['notifyObservers'](_0x244701), _0x244701['onLoadedObservable']['clear'](); } } , _0x2b36d6['prototype']['_prepareWebGLTexture'] = function(_0x3394d0, _0x3fffe9, _0x42db3e, _0x8d2135, _0x52a6b7, _0x52e41d, _0xb0fb25, _0x972a56, _0x247bcb) { var _0x2c7990 = this; void 0x0 === _0x247bcb && (_0x247bcb = _0x2b36d6['TEXTURE_TRILINEAR_SAMPLINGMODE']); var _0x2abc47 = this['getCaps']()['maxTextureSize'] , _0x4d51b8 = Math['min'](_0x2abc47, this['needPOTTextures'] ? _0x49b495['h']['GetExponentOfTwo'](_0x42db3e, _0x2abc47) : _0x42db3e) , _0xb9a6a4 = Math['min'](_0x2abc47, this['needPOTTextures'] ? _0x49b495['h']['GetExponentOfTwo'](_0x8d2135, _0x2abc47) : _0x8d2135) , _0x278cde = this['_gl']; _0x278cde && (_0x3394d0['_webGLTexture'] ? (this['_bindTextureDirectly'](_0x278cde['TEXTURE_2D'], _0x3394d0, !0x0), this['_unpackFlipY'](void 0x0 === _0x52a6b7 || !!_0x52a6b7), _0x3394d0['baseWidth'] = _0x42db3e, _0x3394d0['baseHeight'] = _0x8d2135, _0x3394d0['width'] = _0x4d51b8, _0x3394d0['height'] = _0xb9a6a4, _0x3394d0['isReady'] = !0x0, _0x972a56(_0x4d51b8, _0xb9a6a4, function() { _0x2c7990['_prepareWebGLTextureContinuation'](_0x3394d0, _0x3fffe9, _0x52e41d, _0xb0fb25, _0x247bcb); }) || this['_prepareWebGLTextureContinuation'](_0x3394d0, _0x3fffe9, _0x52e41d, _0xb0fb25, _0x247bcb)) : _0x3fffe9 && _0x3fffe9['_removePendingData'](_0x3394d0)); } , _0x2b36d6['prototype']['_convertRGBtoRGBATextureData'] = function(_0xfa70ef, _0x26173b, _0x2b9798, _0x42ad62) { var _0x443b17; _0x443b17 = _0x42ad62 === _0x2b36d6['TEXTURETYPE_FLOAT'] ? new Float32Array(_0x26173b * _0x2b9798 * 0x4) : new Uint32Array(_0x26173b * _0x2b9798 * 0x4); for (var _0x4939a0 = 0x0; _0x4939a0 < _0x26173b; _0x4939a0++) for (var _0x46d66b = 0x0; _0x46d66b < _0x2b9798; _0x46d66b++) { var _0x1cba90 = 0x3 * (_0x46d66b * _0x26173b + _0x4939a0) , _0x52b542 = 0x4 * (_0x46d66b * _0x26173b + _0x4939a0); _0x443b17[_0x52b542 + 0x0] = _0xfa70ef[_0x1cba90 + 0x0], _0x443b17[_0x52b542 + 0x1] = _0xfa70ef[_0x1cba90 + 0x1], _0x443b17[_0x52b542 + 0x2] = _0xfa70ef[_0x1cba90 + 0x2], _0x443b17[_0x52b542 + 0x3] = 0x1; } return _0x443b17; } , _0x2b36d6['prototype']['_releaseFramebufferObjects'] = function(_0xd86db1) { var _0x2b4731 = this['_gl']; _0xd86db1['_framebuffer'] && (_0x2b4731['deleteFramebuffer'](_0xd86db1['_framebuffer']), _0xd86db1['_framebuffer'] = null), _0xd86db1['_depthStencilBuffer'] && (_0x2b4731['deleteRenderbuffer'](_0xd86db1['_depthStencilBuffer']), _0xd86db1['_depthStencilBuffer'] = null), _0xd86db1['_MSAAFramebuffer'] && (_0x2b4731['deleteFramebuffer'](_0xd86db1['_MSAAFramebuffer']), _0xd86db1['_MSAAFramebuffer'] = null), _0xd86db1['_MSAARenderBuffer'] && (_0x2b4731['deleteRenderbuffer'](_0xd86db1['_MSAARenderBuffer']), _0xd86db1['_MSAARenderBuffer'] = null); } , _0x2b36d6['prototype']['_releaseTexture'] = function(_0x4ce21a) { var _0x1e988b = this['_gl']; this['_releaseFramebufferObjects'](_0x4ce21a), _0x1e988b['deleteTexture'](_0x4ce21a['_webGLTexture']), this['unbindAllTextures'](); var _0x369ab6 = this['_internalTexturesCache']['indexOf'](_0x4ce21a); -0x1 !== _0x369ab6 && this['_internalTexturesCache']['splice'](_0x369ab6, 0x1), _0x4ce21a['_lodTextureHigh'] && _0x4ce21a['_lodTextureHigh']['dispose'](), _0x4ce21a['_lodTextureMid'] && _0x4ce21a['_lodTextureMid']['dispose'](), _0x4ce21a['_lodTextureLow'] && _0x4ce21a['_lodTextureLow']['dispose'](), this['scenes']['forEach'](function(_0x247da8) { _0x247da8['postProcesses']['forEach'](function(_0x3a8f71) { _0x3a8f71['_outputTexture'] == _0x4ce21a && (_0x3a8f71['_outputTexture'] = null); }), _0x247da8['cameras']['forEach'](function(_0x49c14a) { _0x49c14a['_postProcesses']['forEach'](function(_0xb56f39) { _0xb56f39 && _0xb56f39['_outputTexture'] == _0x4ce21a && (_0xb56f39['_outputTexture'] = null); }); }); }); } , _0x2b36d6['prototype']['setProgram'] = function(_0x32c1c1) { this['_currentProgram'] !== _0x32c1c1 && (this['_gl']['useProgram'](_0x32c1c1), this['_currentProgram'] = _0x32c1c1); } , _0x2b36d6['prototype']['bindSamplers'] = function(_0x1f1549) { var _0x3cb80e = _0x1f1549['getPipelineContext'](); this['setProgram'](_0x3cb80e['program']); for (var _0x8ee4a3 = _0x1f1549['getSamplers'](), _0xfa5e2e = 0x0; _0xfa5e2e < _0x8ee4a3['length']; _0xfa5e2e++) { var _0x1398ab = _0x1f1549['getUniform'](_0x8ee4a3[_0xfa5e2e]); _0x1398ab && (this['_boundUniforms'][_0xfa5e2e] = _0x1398ab); } this['_currentEffect'] = null; } , _0x2b36d6['prototype']['_activateCurrentTexture'] = function() { this['_currentTextureChannel'] !== this['_activeChannel'] && (this['_gl']['activeTexture'](this['_gl']['TEXTURE0'] + this['_activeChannel']), this['_currentTextureChannel'] = this['_activeChannel']); } , _0x2b36d6['prototype']['_bindTextureDirectly'] = function(_0x427a6c, _0x2da734, _0x993b4d, _0x254521) { void 0x0 === _0x993b4d && (_0x993b4d = !0x1), void 0x0 === _0x254521 && (_0x254521 = !0x1); var _0x51bae3 = !0x1 , _0x20dcc2 = _0x2da734 && _0x2da734['_associatedChannel'] > -0x1; return _0x993b4d && _0x20dcc2 && (this['_activeChannel'] = _0x2da734['_associatedChannel']), this['_boundTexturesCache'][this['_activeChannel']] !== _0x2da734 || _0x254521 ? (this['_activateCurrentTexture'](), _0x2da734 && _0x2da734['isMultiview'] ? this['_gl']['bindTexture'](_0x427a6c, _0x2da734 ? _0x2da734['_colorTextureArray'] : null) : this['_gl']['bindTexture'](_0x427a6c, _0x2da734 ? _0x2da734['_webGLTexture'] : null), this['_boundTexturesCache'][this['_activeChannel']] = _0x2da734, _0x2da734 && (_0x2da734['_associatedChannel'] = this['_activeChannel'])) : _0x993b4d && (_0x51bae3 = !0x0, this['_activateCurrentTexture']()), _0x20dcc2 && !_0x993b4d && this['_bindSamplerUniformToChannel'](_0x2da734['_associatedChannel'], this['_activeChannel']), _0x51bae3; } , _0x2b36d6['prototype']['_bindTexture'] = function(_0x3e090f, _0x1a8fb2) { void 0x0 !== _0x3e090f && (_0x1a8fb2 && (_0x1a8fb2['_associatedChannel'] = _0x3e090f), this['_activeChannel'] = _0x3e090f, this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'], _0x1a8fb2)); } , _0x2b36d6['prototype']['setTextureFromPostProcess'] = function(_0x40b65c, _0x455b23) { this['_bindTexture'](_0x40b65c, _0x455b23 ? _0x455b23['_textures']['data'][_0x455b23['_currentRenderTextureInd']] : null); } , _0x2b36d6['prototype']['setTextureFromPostProcessOutput'] = function(_0x2236da, _0xf3775) { this['_bindTexture'](_0x2236da, _0xf3775 ? _0xf3775['_outputTexture'] : null); } , _0x2b36d6['prototype']['unbindAllTextures'] = function() { for (var _0x3c4e4b = 0x0; _0x3c4e4b < this['_maxSimultaneousTextures']; _0x3c4e4b++) this['_activeChannel'] = _0x3c4e4b, this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'], null), this['_bindTextureDirectly'](this['_gl']['TEXTURE_CUBE_MAP'], null), this['webGLVersion'] > 0x1 && this['_bindTextureDirectly'](this['_gl']['TEXTURE_3D'], null); } , _0x2b36d6['prototype']['setTexture'] = function(_0x5cb8b3, _0x4dc0c8, _0x5078c5) { void 0x0 !== _0x5cb8b3 && (_0x4dc0c8 && (this['_boundUniforms'][_0x5cb8b3] = _0x4dc0c8), this['_setTexture'](_0x5cb8b3, _0x5078c5)); } , _0x2b36d6['prototype']['setDepthStencilTexture'] = function(_0x16fbe9, _0x471dba, _0xcb70e5) { void 0x0 !== _0x16fbe9 && (_0x471dba && (this['_boundUniforms'][_0x16fbe9] = _0x471dba), _0xcb70e5 && _0xcb70e5['depthStencilTexture'] ? this['_setTexture'](_0x16fbe9, _0xcb70e5, !0x1, !0x0) : this['_setTexture'](_0x16fbe9, null)); } , _0x2b36d6['prototype']['_bindSamplerUniformToChannel'] = function(_0xe813b3, _0x3848c6) { var _0x5318ac = this['_boundUniforms'][_0xe813b3]; _0x5318ac['_currentState'] !== _0x3848c6 && (this['_gl']['uniform1i'](_0x5318ac, _0x3848c6), _0x5318ac['_currentState'] = _0x3848c6); } , _0x2b36d6['prototype']['_getTextureWrapMode'] = function(_0x441f7e) { switch (_0x441f7e) { case _0x2b36d6['TEXTURE_WRAP_ADDRESSMODE']: return this['_gl']['REPEAT']; case _0x2b36d6['TEXTURE_CLAMP_ADDRESSMODE']: return this['_gl']['CLAMP_TO_EDGE']; case _0x2b36d6['TEXTURE_MIRROR_ADDRESSMODE']: return this['_gl']['MIRRORED_REPEAT']; } return this['_gl']['REPEAT']; } , _0x2b36d6['prototype']['_setTexture'] = function(_0x441f88, _0x296974, _0x48bc61, _0x28f10a) { if (void 0x0 === _0x48bc61 && (_0x48bc61 = !0x1), void 0x0 === _0x28f10a && (_0x28f10a = !0x1), !_0x296974) return null != this['_boundTexturesCache'][_0x441f88] && (this['_activeChannel'] = _0x441f88, this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'], null), this['_bindTextureDirectly'](this['_gl']['TEXTURE_CUBE_MAP'], null), this['webGLVersion'] > 0x1 && this['_bindTextureDirectly'](this['_gl']['TEXTURE_3D'], null)), !0x1; if (_0x296974['video']) this['_activeChannel'] = _0x441f88, _0x296974['update'](); else if (_0x296974['delayLoadState'] === _0x2b36d6['DELAYLOADSTATE_NOTLOADED']) return _0x296974['delayLoad'](), !0x1; var _0x51d881; _0x51d881 = _0x28f10a ? _0x296974['depthStencilTexture'] : _0x296974['isReady']() ? _0x296974['getInternalTexture']() : _0x296974['isCube'] ? this['emptyCubeTexture'] : _0x296974['is3D'] ? this['emptyTexture3D'] : this['emptyTexture'], !_0x48bc61 && _0x51d881 && (_0x51d881['_associatedChannel'] = _0x441f88); var _0x464c04 = !0x0; if (this['_boundTexturesCache'][_0x441f88] === _0x51d881 && (_0x48bc61 || this['_bindSamplerUniformToChannel'](_0x51d881['_associatedChannel'], _0x441f88), _0x464c04 = !0x1), this['_activeChannel'] = _0x441f88, _0x51d881 && _0x51d881['isMultiview']) _0x464c04 && this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D_ARRAY'], _0x51d881, _0x48bc61); else if (_0x51d881 && _0x51d881['is3D']) _0x464c04 && this['_bindTextureDirectly'](this['_gl']['TEXTURE_3D'], _0x51d881, _0x48bc61), _0x51d881 && _0x51d881['_cachedWrapU'] !== _0x296974['wrapU'] && (_0x51d881['_cachedWrapU'] = _0x296974['wrapU'], this['_setTextureParameterInteger'](this['_gl']['TEXTURE_3D'], this['_gl']['TEXTURE_WRAP_S'], this['_getTextureWrapMode'](_0x296974['wrapU']), _0x51d881)), _0x51d881 && _0x51d881['_cachedWrapV'] !== _0x296974['wrapV'] && (_0x51d881['_cachedWrapV'] = _0x296974['wrapV'], this['_setTextureParameterInteger'](this['_gl']['TEXTURE_3D'], this['_gl']['TEXTURE_WRAP_T'], this['_getTextureWrapMode'](_0x296974['wrapV']), _0x51d881)), _0x51d881 && _0x51d881['_cachedWrapR'] !== _0x296974['wrapR'] && (_0x51d881['_cachedWrapR'] = _0x296974['wrapR'], this['_setTextureParameterInteger'](this['_gl']['TEXTURE_3D'], this['_gl']['TEXTURE_WRAP_R'], this['_getTextureWrapMode'](_0x296974['wrapR']), _0x51d881)), this['_setAnisotropicLevel'](this['_gl']['TEXTURE_3D'], _0x296974); else if (_0x51d881 && _0x51d881['isCube']) { if (_0x464c04 && this['_bindTextureDirectly'](this['_gl']['TEXTURE_CUBE_MAP'], _0x51d881, _0x48bc61), _0x51d881['_cachedCoordinatesMode'] !== _0x296974['coordinatesMode']) { _0x51d881['_cachedCoordinatesMode'] = _0x296974['coordinatesMode']; var _0x1c04bc = _0x296974['coordinatesMode'] !== _0x2b36d6['TEXTURE_CUBIC_MODE'] && _0x296974['coordinatesMode'] !== _0x2b36d6['TEXTURE_SKYBOX_MODE'] ? this['_gl']['REPEAT'] : this['_gl']['CLAMP_TO_EDGE']; this['_setTextureParameterInteger'](this['_gl']['TEXTURE_CUBE_MAP'], this['_gl']['TEXTURE_WRAP_S'], _0x1c04bc, _0x51d881), this['_setTextureParameterInteger'](this['_gl']['TEXTURE_CUBE_MAP'], this['_gl']['TEXTURE_WRAP_T'], _0x1c04bc); } this['_setAnisotropicLevel'](this['_gl']['TEXTURE_CUBE_MAP'], _0x296974); } else _0x464c04 && this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'], _0x51d881, _0x48bc61), _0x51d881 && _0x51d881['_cachedWrapU'] !== _0x296974['wrapU'] && (_0x51d881['_cachedWrapU'] = _0x296974['wrapU'], this['_setTextureParameterInteger'](this['_gl']['TEXTURE_2D'], this['_gl']['TEXTURE_WRAP_S'], this['_getTextureWrapMode'](_0x296974['wrapU']), _0x51d881)), _0x51d881 && _0x51d881['_cachedWrapV'] !== _0x296974['wrapV'] && (_0x51d881['_cachedWrapV'] = _0x296974['wrapV'], this['_setTextureParameterInteger'](this['_gl']['TEXTURE_2D'], this['_gl']['TEXTURE_WRAP_T'], this['_getTextureWrapMode'](_0x296974['wrapV']), _0x51d881)), this['_setAnisotropicLevel'](this['_gl']['TEXTURE_2D'], _0x296974); return !0x0; } , _0x2b36d6['prototype']['setTextureArray'] = function(_0x586922, _0x3d8169, _0x196093) { if (void 0x0 !== _0x586922 && _0x3d8169) { this['_textureUnits'] && this['_textureUnits']['length'] === _0x196093['length'] || (this['_textureUnits'] = new Int32Array(_0x196093['length'])); for (var _0x59ae52 = 0x0; _0x59ae52 < _0x196093['length']; _0x59ae52++) { var _0xeb7c3c = _0x196093[_0x59ae52]['getInternalTexture'](); _0xeb7c3c ? (this['_textureUnits'][_0x586922 + _0x59ae52] = _0x586922 + _0x59ae52, _0xeb7c3c['_associatedChannel'] = _0x586922 + _0x59ae52) : this['_textureUnits'][_0x586922 + _0x59ae52] = -0x1; } this['_gl']['uniform1iv'](_0x3d8169, this['_textureUnits']); for (var _0x22f592 = 0x0; _0x22f592 < _0x196093['length']; _0x22f592++) this['_setTexture'](this['_textureUnits'][_0x22f592], _0x196093[_0x22f592], !0x0); } } , _0x2b36d6['prototype']['_setAnisotropicLevel'] = function(_0x1a743d, _0x46df7e) { var _0x24c2f2 = _0x46df7e['getInternalTexture'](); if (_0x24c2f2) { var _0x102b50 = this['_caps']['textureAnisotropicFilterExtension'] , _0x1127e2 = _0x46df7e['anisotropicFilteringLevel']; _0x24c2f2['samplingMode'] !== _0x2b36d6['TEXTURE_LINEAR_LINEAR_MIPNEAREST'] && _0x24c2f2['samplingMode'] !== _0x2b36d6['TEXTURE_LINEAR_LINEAR_MIPLINEAR'] && _0x24c2f2['samplingMode'] !== _0x2b36d6['TEXTURE_LINEAR_LINEAR'] && (_0x1127e2 = 0x1), _0x102b50 && _0x24c2f2['_cachedAnisotropicFilteringLevel'] !== _0x1127e2 && (this['_setTextureParameterFloat'](_0x1a743d, _0x102b50['TEXTURE_MAX_ANISOTROPY_EXT'], Math['min'](_0x1127e2, this['_caps']['maxAnisotropy']), _0x24c2f2), _0x24c2f2['_cachedAnisotropicFilteringLevel'] = _0x1127e2); } } , _0x2b36d6['prototype']['_setTextureParameterFloat'] = function(_0xc2b282, _0x457913, _0xe3096, _0x8c7555) { this['_bindTextureDirectly'](_0xc2b282, _0x8c7555, !0x0, !0x0), this['_gl']['texParameterf'](_0xc2b282, _0x457913, _0xe3096); } , _0x2b36d6['prototype']['_setTextureParameterInteger'] = function(_0x3c257d, _0x4c5d0b, _0x2ecc4e, _0x328fa8) { _0x328fa8 && this['_bindTextureDirectly'](_0x3c257d, _0x328fa8, !0x0, !0x0), this['_gl']['texParameteri'](_0x3c257d, _0x4c5d0b, _0x2ecc4e); } , _0x2b36d6['prototype']['readPixels'] = function(_0x512833, _0x4447be, _0x12699, _0x290436) { var _0x465b05 = new Uint8Array(_0x290436 * _0x12699 * 0x4); return this['_gl']['readPixels'](_0x512833, _0x4447be, _0x12699, _0x290436, this['_gl']['RGBA'], this['_gl']['UNSIGNED_BYTE'], _0x465b05), _0x465b05; } , _0x2b36d6['prototype']['addExternalData'] = function(_0x1147a2, _0xe9866b) { return this['_externalData'] || (this['_externalData'] = new _0x5de640['a']()), this['_externalData']['add'](_0x1147a2, _0xe9866b); } , _0x2b36d6['prototype']['getExternalData'] = function(_0x15eac2) { return this['_externalData'] || (this['_externalData'] = new _0x5de640['a']()), this['_externalData']['get'](_0x15eac2); } , _0x2b36d6['prototype']['getOrAddExternalDataWithFactory'] = function(_0x392945, _0x16b3fd) { return this['_externalData'] || (this['_externalData'] = new _0x5de640['a']()), this['_externalData']['getOrAddWithFactory'](_0x392945, _0x16b3fd); } , _0x2b36d6['prototype']['removeExternalData'] = function(_0x128408) { return this['_externalData'] || (this['_externalData'] = new _0x5de640['a']()), this['_externalData']['remove'](_0x128408); } , _0x2b36d6['prototype']['unbindAllAttributes'] = function() { if (this['_mustWipeVertexAttributes']) { this['_mustWipeVertexAttributes'] = !0x1; for (var _0x521553 = 0x0; _0x521553 < this['_caps']['maxVertexAttribs']; _0x521553++) this['_gl']['disableVertexAttribArray'](_0x521553), this['_vertexAttribArraysEnabled'][_0x521553] = !0x1, this['_currentBufferPointers'][_0x521553]['active'] = !0x1; } else { _0x521553 = 0x0; for (var _0x35cb9b = this['_vertexAttribArraysEnabled']['length']; _0x521553 < _0x35cb9b; _0x521553++) _0x521553 >= this['_caps']['maxVertexAttribs'] || !this['_vertexAttribArraysEnabled'][_0x521553] || (this['_gl']['disableVertexAttribArray'](_0x521553), this['_vertexAttribArraysEnabled'][_0x521553] = !0x1, this['_currentBufferPointers'][_0x521553]['active'] = !0x1); } } , _0x2b36d6['prototype']['releaseEffects'] = function() { for (var _0x5caddc in this['_compiledEffects']) { var _0xeb195a = this['_compiledEffects'][_0x5caddc]['getPipelineContext'](); this['_deletePipelineContext'](_0xeb195a); } this['_compiledEffects'] = {}; } , _0x2b36d6['prototype']['dispose'] = function() { for (this['hideLoadingUI'](), this['stopRenderLoop'](), this['onNewSceneAddedObservable']['clear'](); this['postProcesses']['length']; ) this['postProcesses'][0x0]['dispose'](); for (this['_emptyTexture'] && (this['_releaseTexture'](this['_emptyTexture']), this['_emptyTexture'] = null), this['_emptyCubeTexture'] && (this['_releaseTexture'](this['_emptyCubeTexture']), this['_emptyCubeTexture'] = null), this['_rescalePostProcess'] && this['_rescalePostProcess']['dispose'](); this['scenes']['length']; ) this['scenes'][0x0]['dispose'](); 0x1 === _0x2b36d6['Instances']['length'] && _0x2b36d6['audioEngine'] && _0x2b36d6['audioEngine']['dispose'](), this['releaseEffects'](), this['unbindAllAttributes'](), this['_boundUniforms'] = [], this['_dummyFramebuffer'] && this['_gl']['deleteFramebuffer'](this['_dummyFramebuffer']), this['disableVR'](), _0x28a362['a']['IsWindowObjectExist']() && (window['removeEventListener']('blur', this['_onBlur']), window['removeEventListener']('focus', this['_onFocus']), this['_renderingCanvas'] && (this['_renderingCanvas']['removeEventListener']('focus', this['_onCanvasFocus']), this['_renderingCanvas']['removeEventListener']('blur', this['_onCanvasBlur']), this['_renderingCanvas']['removeEventListener']('pointerout', this['_onCanvasPointerOut']), this['_doNotHandleContextLost'] || (this['_renderingCanvas']['removeEventListener']('webglcontextlost', this['_onContextLost']), this['_renderingCanvas']['removeEventListener']('webglcontextrestored', this['_onContextRestored']))), document['removeEventListener']('fullscreenchange', this['_onFullscreenChange']), document['removeEventListener']('mozfullscreenchange', this['_onFullscreenChange']), document['removeEventListener']('webkitfullscreenchange', this['_onFullscreenChange']), document['removeEventListener']('msfullscreenchange', this['_onFullscreenChange']), document['removeEventListener']('pointerlockchange', this['_onPointerLockChange']), document['removeEventListener']('mspointerlockchange', this['_onPointerLockChange']), document['removeEventListener']('mozpointerlockchange', this['_onPointerLockChange']), document['removeEventListener']('webkitpointerlockchange', this['_onPointerLockChange'])); var _0x16bdc3 = _0x2b36d6['Instances']['indexOf'](this); _0x16bdc3 >= 0x0 && _0x2b36d6['Instances']['splice'](_0x16bdc3, 0x1), this['_workingCanvas'] = null, this['_workingContext'] = null, this['_currentBufferPointers'] = [], this['_renderingCanvas'] = null, this['_currentProgram'] = null, this['_bindedRenderFunction'] = null, this['onResizeObservable']['clear'](), this['onCanvasBlurObservable']['clear'](), this['onCanvasFocusObservable']['clear'](), this['onCanvasPointerOutObservable']['clear'](), this['onBeginFrameObservable']['clear'](), this['onEndFrameObservable']['clear'](), _0x12c9c8['a']['ResetCache'](); for (var _0x5760dc = 0x0, _0x532e0e = this['_activeRequests']; _0x5760dc < _0x532e0e['length']; _0x5760dc++) { _0x532e0e[_0x5760dc]['abort'](); } } , _0x2b36d6['prototype']['displayLoadingUI'] = function() { if (_0x28a362['a']['IsWindowObjectExist']()) { var _0x1380ae = this['loadingScreen']; _0x1380ae && _0x1380ae['displayLoadingUI'](); } } , _0x2b36d6['prototype']['hideLoadingUI'] = function() { if (_0x28a362['a']['IsWindowObjectExist']()) { var _0x15ff11 = this['_loadingScreen']; _0x15ff11 && _0x15ff11['hideLoadingUI'](); } } , Object['defineProperty'](_0x2b36d6['prototype'], 'loadingScreen', { 'get': function() { return !this['_loadingScreen'] && this['_renderingCanvas'] && (this['_loadingScreen'] = _0x2b36d6['DefaultLoadingScreenFactory'](this['_renderingCanvas'])), this['_loadingScreen']; }, 'set': function(_0x4f75b9) { this['_loadingScreen'] = _0x4f75b9; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'loadingUIText', { 'set': function(_0x6d9ab6) { this['loadingScreen']['loadingUIText'] = _0x6d9ab6; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2b36d6['prototype'], 'loadingUIBackgroundColor', { 'set': function(_0x2cf608) { this['loadingScreen']['loadingUIBackgroundColor'] = _0x2cf608; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x2b36d6['prototype']['attachContextLostEvent'] = function(_0x3de83c) { this['_renderingCanvas'] && this['_renderingCanvas']['addEventListener']('webglcontextlost', _0x3de83c, !0x1); } , _0x2b36d6['prototype']['attachContextRestoredEvent'] = function(_0x4fe557) { this['_renderingCanvas'] && this['_renderingCanvas']['addEventListener']('webglcontextrestored', _0x4fe557, !0x1); } , _0x2b36d6['prototype']['getVertexShaderSource'] = function(_0x29da81) { var _0x308b10 = this['_gl']['getAttachedShaders'](_0x29da81); return _0x308b10 ? this['_gl']['getShaderSource'](_0x308b10[0x0]) : null; } , _0x2b36d6['prototype']['getFragmentShaderSource'] = function(_0x23c483) { var _0xc1a85f = this['_gl']['getAttachedShaders'](_0x23c483); return _0xc1a85f ? this['_gl']['getShaderSource'](_0xc1a85f[0x1]) : null; } , _0x2b36d6['prototype']['getError'] = function() { return this['_gl']['getError'](); } , _0x2b36d6['prototype']['getFps'] = function() { return this['_fps']; } , _0x2b36d6['prototype']['getDeltaTime'] = function() { return this['_deltaTime']; } , _0x2b36d6['prototype']['_measureFps'] = function() { this['_performanceMonitor']['sampleFrame'](), this['_fps'] = this['_performanceMonitor']['averageFPS'], this['_deltaTime'] = this['_performanceMonitor']['instantaneousFrameTime'] || 0x0; } , _0x2b36d6['prototype']['_readTexturePixels'] = function(_0x2fb4ac, _0x32a639, _0x5c76c4, _0xc28b7d, _0x434c23, _0x260d1f) { void 0x0 === _0xc28b7d && (_0xc28b7d = -0x1), void 0x0 === _0x434c23 && (_0x434c23 = 0x0), void 0x0 === _0x260d1f && (_0x260d1f = null); var _0x4ab909 = this['_gl']; if (!this['_dummyFramebuffer']) { var _0x339313 = _0x4ab909['createFramebuffer'](); if (!_0x339313) throw new Error('Unable\x20to\x20create\x20dummy\x20framebuffer'); this['_dummyFramebuffer'] = _0x339313; } _0x4ab909['bindFramebuffer'](_0x4ab909['FRAMEBUFFER'], this['_dummyFramebuffer']), _0xc28b7d > -0x1 ? _0x4ab909['framebufferTexture2D'](_0x4ab909['FRAMEBUFFER'], _0x4ab909['COLOR_ATTACHMENT0'], _0x4ab909['TEXTURE_CUBE_MAP_POSITIVE_X'] + _0xc28b7d, _0x2fb4ac['_webGLTexture'], _0x434c23) : _0x4ab909['framebufferTexture2D'](_0x4ab909['FRAMEBUFFER'], _0x4ab909['COLOR_ATTACHMENT0'], _0x4ab909['TEXTURE_2D'], _0x2fb4ac['_webGLTexture'], _0x434c23); var _0x431aa2 = void 0x0 !== _0x2fb4ac['type'] ? this['_getWebGLTextureType'](_0x2fb4ac['type']) : _0x4ab909['UNSIGNED_BYTE']; switch (_0x431aa2) { case _0x4ab909['UNSIGNED_BYTE']: _0x260d1f || (_0x260d1f = new Uint8Array(0x4 * _0x32a639 * _0x5c76c4)), _0x431aa2 = _0x4ab909['UNSIGNED_BYTE']; break; default: _0x260d1f || (_0x260d1f = new Float32Array(0x4 * _0x32a639 * _0x5c76c4)), _0x431aa2 = _0x4ab909['FLOAT']; } return _0x4ab909['readPixels'](0x0, 0x0, _0x32a639, _0x5c76c4, _0x4ab909['RGBA'], _0x431aa2, _0x260d1f), _0x4ab909['bindFramebuffer'](_0x4ab909['FRAMEBUFFER'], this['_currentFramebuffer']), _0x260d1f; } , _0x2b36d6['prototype']['_canRenderToFloatFramebuffer'] = function() { return this['_webGLVersion'] > 0x1 ? this['_caps']['colorBufferFloat'] : this['_canRenderToFramebuffer'](_0x2b36d6['TEXTURETYPE_FLOAT']); } , _0x2b36d6['prototype']['_canRenderToHalfFloatFramebuffer'] = function() { return this['_webGLVersion'] > 0x1 ? this['_caps']['colorBufferFloat'] : this['_canRenderToFramebuffer'](_0x2b36d6['TEXTURETYPE_HALF_FLOAT']); } , _0x2b36d6['prototype']['_canRenderToFramebuffer'] = function(_0xb2fa1f) { for (var _0x1723f9 = this['_gl']; _0x1723f9['getError']() !== _0x1723f9['NO_ERROR']; ) ; var _0xd7b077 = !0x0 , _0x49b127 = _0x1723f9['createTexture'](); _0x1723f9['bindTexture'](_0x1723f9['TEXTURE_2D'], _0x49b127), _0x1723f9['texImage2D'](_0x1723f9['TEXTURE_2D'], 0x0, this['_getRGBABufferInternalSizedFormat'](_0xb2fa1f), 0x1, 0x1, 0x0, _0x1723f9['RGBA'], this['_getWebGLTextureType'](_0xb2fa1f), null), _0x1723f9['texParameteri'](_0x1723f9['TEXTURE_2D'], _0x1723f9['TEXTURE_MIN_FILTER'], _0x1723f9['NEAREST']), _0x1723f9['texParameteri'](_0x1723f9['TEXTURE_2D'], _0x1723f9['TEXTURE_MAG_FILTER'], _0x1723f9['NEAREST']); var _0x4acbc7 = _0x1723f9['createFramebuffer'](); _0x1723f9['bindFramebuffer'](_0x1723f9['FRAMEBUFFER'], _0x4acbc7), _0x1723f9['framebufferTexture2D'](_0x1723f9['FRAMEBUFFER'], _0x1723f9['COLOR_ATTACHMENT0'], _0x1723f9['TEXTURE_2D'], _0x49b127, 0x0); var _0x32281a = _0x1723f9['checkFramebufferStatus'](_0x1723f9['FRAMEBUFFER']); if ((_0xd7b077 = (_0xd7b077 = _0xd7b077 && _0x32281a === _0x1723f9['FRAMEBUFFER_COMPLETE']) && _0x1723f9['getError']() === _0x1723f9['NO_ERROR']) && (_0x1723f9['clear'](_0x1723f9['COLOR_BUFFER_BIT']), _0xd7b077 = _0xd7b077 && _0x1723f9['getError']() === _0x1723f9['NO_ERROR']), _0xd7b077) { _0x1723f9['bindFramebuffer'](_0x1723f9['FRAMEBUFFER'], null); var _0x230ebc = _0x1723f9['RGBA'] , _0x3db60c = _0x1723f9['UNSIGNED_BYTE'] , _0xda9a51 = new Uint8Array(0x4); _0x1723f9['readPixels'](0x0, 0x0, 0x1, 0x1, _0x230ebc, _0x3db60c, _0xda9a51), _0xd7b077 = _0xd7b077 && _0x1723f9['getError']() === _0x1723f9['NO_ERROR']; } for (_0x1723f9['deleteTexture'](_0x49b127), _0x1723f9['deleteFramebuffer'](_0x4acbc7), _0x1723f9['bindFramebuffer'](_0x1723f9['FRAMEBUFFER'], null); !_0xd7b077 && _0x1723f9['getError']() !== _0x1723f9['NO_ERROR']; ) ; return _0xd7b077; } , _0x2b36d6['prototype']['_getWebGLTextureType'] = function(_0xb0dc2c) { if (0x1 === this['_webGLVersion']) { switch (_0xb0dc2c) { case _0x2b36d6['TEXTURETYPE_FLOAT']: return this['_gl']['FLOAT']; case _0x2b36d6['TEXTURETYPE_HALF_FLOAT']: return this['_gl']['HALF_FLOAT_OES']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_BYTE']: return this['_gl']['UNSIGNED_BYTE']; } return this['_gl']['UNSIGNED_BYTE']; } switch (_0xb0dc2c) { case _0x2b36d6['TEXTURETYPE_BYTE']: return this['_gl']['BYTE']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_BYTE']: return this['_gl']['UNSIGNED_BYTE']; case _0x2b36d6['TEXTURETYPE_SHORT']: return this['_gl']['SHORT']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT']: return this['_gl']['UNSIGNED_SHORT']; case _0x2b36d6['TEXTURETYPE_INT']: return this['_gl']['INT']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_INTEGER']: return this['_gl']['UNSIGNED_INT']; case _0x2b36d6['TEXTURETYPE_FLOAT']: return this['_gl']['FLOAT']; case _0x2b36d6['TEXTURETYPE_HALF_FLOAT']: return this['_gl']['HALF_FLOAT']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4']: return this['_gl']['UNSIGNED_SHORT_4_4_4_4']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1']: return this['_gl']['UNSIGNED_SHORT_5_5_5_1']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT_5_6_5']: return this['_gl']['UNSIGNED_SHORT_5_6_5']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV']: return this['_gl']['UNSIGNED_INT_2_10_10_10_REV']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_INT_24_8']: return this['_gl']['UNSIGNED_INT_24_8']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV']: return this['_gl']['UNSIGNED_INT_10F_11F_11F_REV']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV']: return this['_gl']['UNSIGNED_INT_5_9_9_9_REV']; case _0x2b36d6['TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV']: return this['_gl']['FLOAT_32_UNSIGNED_INT_24_8_REV']; } return this['_gl']['UNSIGNED_BYTE']; } , _0x2b36d6['prototype']['_getInternalFormat'] = function(_0x274b11) { var _0x42e461 = this['_gl']['RGBA']; switch (_0x274b11) { case _0x2b36d6['TEXTUREFORMAT_ALPHA']: _0x42e461 = this['_gl']['ALPHA']; break; case _0x2b36d6['TEXTUREFORMAT_LUMINANCE']: _0x42e461 = this['_gl']['LUMINANCE']; break; case _0x2b36d6['TEXTUREFORMAT_LUMINANCE_ALPHA']: _0x42e461 = this['_gl']['LUMINANCE_ALPHA']; break; case _0x2b36d6['TEXTUREFORMAT_RED']: _0x42e461 = this['_gl']['RED']; break; case _0x2b36d6['TEXTUREFORMAT_RG']: _0x42e461 = this['_gl']['RG']; break; case _0x2b36d6['TEXTUREFORMAT_RGB']: _0x42e461 = this['_gl']['RGB']; break; case _0x2b36d6['TEXTUREFORMAT_RGBA']: _0x42e461 = this['_gl']['RGBA']; } if (this['_webGLVersion'] > 0x1) switch (_0x274b11) { case _0x2b36d6['TEXTUREFORMAT_RED_INTEGER']: _0x42e461 = this['_gl']['RED_INTEGER']; break; case _0x2b36d6['TEXTUREFORMAT_RG_INTEGER']: _0x42e461 = this['_gl']['RG_INTEGER']; break; case _0x2b36d6['TEXTUREFORMAT_RGB_INTEGER']: _0x42e461 = this['_gl']['RGB_INTEGER']; break; case _0x2b36d6['TEXTUREFORMAT_RGBA_INTEGER']: _0x42e461 = this['_gl']['RGBA_INTEGER']; } return _0x42e461; } , _0x2b36d6['prototype']['_getRGBABufferInternalSizedFormat'] = function(_0x119918, _0x397327) { if (0x1 === this['_webGLVersion']) { if (void 0x0 !== _0x397327) switch (_0x397327) { case _0x2b36d6['TEXTUREFORMAT_ALPHA']: return this['_gl']['ALPHA']; case _0x2b36d6['TEXTUREFORMAT_LUMINANCE']: return this['_gl']['LUMINANCE']; case _0x2b36d6['TEXTUREFORMAT_LUMINANCE_ALPHA']: return this['_gl']['LUMINANCE_ALPHA']; } return this['_gl']['RGBA']; } switch (_0x119918) { case _0x2b36d6['TEXTURETYPE_BYTE']: switch (_0x397327) { case _0x2b36d6['TEXTUREFORMAT_RED']: return this['_gl']['R8_SNORM']; case _0x2b36d6['TEXTUREFORMAT_RG']: return this['_gl']['RG8_SNORM']; case _0x2b36d6['TEXTUREFORMAT_RGB']: return this['_gl']['RGB8_SNORM']; case _0x2b36d6['TEXTUREFORMAT_RED_INTEGER']: return this['_gl']['R8I']; case _0x2b36d6['TEXTUREFORMAT_RG_INTEGER']: return this['_gl']['RG8I']; case _0x2b36d6['TEXTUREFORMAT_RGB_INTEGER']: return this['_gl']['RGB8I']; case _0x2b36d6['TEXTUREFORMAT_RGBA_INTEGER']: return this['_gl']['RGBA8I']; default: return this['_gl']['RGBA8_SNORM']; } case _0x2b36d6['TEXTURETYPE_UNSIGNED_BYTE']: switch (_0x397327) { case _0x2b36d6['TEXTUREFORMAT_RED']: return this['_gl']['R8']; case _0x2b36d6['TEXTUREFORMAT_RG']: return this['_gl']['RG8']; case _0x2b36d6['TEXTUREFORMAT_RGB']: return this['_gl']['RGB8']; case _0x2b36d6['TEXTUREFORMAT_RGBA']: return this['_gl']['RGBA8']; case _0x2b36d6['TEXTUREFORMAT_RED_INTEGER']: return this['_gl']['R8UI']; case _0x2b36d6['TEXTUREFORMAT_RG_INTEGER']: return this['_gl']['RG8UI']; case _0x2b36d6['TEXTUREFORMAT_RGB_INTEGER']: return this['_gl']['RGB8UI']; case _0x2b36d6['TEXTUREFORMAT_RGBA_INTEGER']: return this['_gl']['RGBA8UI']; case _0x2b36d6['TEXTUREFORMAT_ALPHA']: return this['_gl']['ALPHA']; case _0x2b36d6['TEXTUREFORMAT_LUMINANCE']: return this['_gl']['LUMINANCE']; case _0x2b36d6['TEXTUREFORMAT_LUMINANCE_ALPHA']: return this['_gl']['LUMINANCE_ALPHA']; default: return this['_gl']['RGBA8']; } case _0x2b36d6['TEXTURETYPE_SHORT']: switch (_0x397327) { case _0x2b36d6['TEXTUREFORMAT_RED_INTEGER']: return this['_gl']['R16I']; case _0x2b36d6['TEXTUREFORMAT_RG_INTEGER']: return this['_gl']['RG16I']; case _0x2b36d6['TEXTUREFORMAT_RGB_INTEGER']: return this['_gl']['RGB16I']; case _0x2b36d6['TEXTUREFORMAT_RGBA_INTEGER']: default: return this['_gl']['RGBA16I']; } case _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT']: switch (_0x397327) { case _0x2b36d6['TEXTUREFORMAT_RED_INTEGER']: return this['_gl']['R16UI']; case _0x2b36d6['TEXTUREFORMAT_RG_INTEGER']: return this['_gl']['RG16UI']; case _0x2b36d6['TEXTUREFORMAT_RGB_INTEGER']: return this['_gl']['RGB16UI']; case _0x2b36d6['TEXTUREFORMAT_RGBA_INTEGER']: default: return this['_gl']['RGBA16UI']; } case _0x2b36d6['TEXTURETYPE_INT']: switch (_0x397327) { case _0x2b36d6['TEXTUREFORMAT_RED_INTEGER']: return this['_gl']['R32I']; case _0x2b36d6['TEXTUREFORMAT_RG_INTEGER']: return this['_gl']['RG32I']; case _0x2b36d6['TEXTUREFORMAT_RGB_INTEGER']: return this['_gl']['RGB32I']; case _0x2b36d6['TEXTUREFORMAT_RGBA_INTEGER']: default: return this['_gl']['RGBA32I']; } case _0x2b36d6['TEXTURETYPE_UNSIGNED_INTEGER']: switch (_0x397327) { case _0x2b36d6['TEXTUREFORMAT_RED_INTEGER']: return this['_gl']['R32UI']; case _0x2b36d6['TEXTUREFORMAT_RG_INTEGER']: return this['_gl']['RG32UI']; case _0x2b36d6['TEXTUREFORMAT_RGB_INTEGER']: return this['_gl']['RGB32UI']; case _0x2b36d6['TEXTUREFORMAT_RGBA_INTEGER']: default: return this['_gl']['RGBA32UI']; } case _0x2b36d6['TEXTURETYPE_FLOAT']: switch (_0x397327) { case _0x2b36d6['TEXTUREFORMAT_RED']: return this['_gl']['R32F']; case _0x2b36d6['TEXTUREFORMAT_RG']: return this['_gl']['RG32F']; case _0x2b36d6['TEXTUREFORMAT_RGB']: return this['_gl']['RGB32F']; case _0x2b36d6['TEXTUREFORMAT_RGBA']: default: return this['_gl']['RGBA32F']; } case _0x2b36d6['TEXTURETYPE_HALF_FLOAT']: switch (_0x397327) { case _0x2b36d6['TEXTUREFORMAT_RED']: return this['_gl']['R16F']; case _0x2b36d6['TEXTUREFORMAT_RG']: return this['_gl']['RG16F']; case _0x2b36d6['TEXTUREFORMAT_RGB']: return this['_gl']['RGB16F']; case _0x2b36d6['TEXTUREFORMAT_RGBA']: default: return this['_gl']['RGBA16F']; } case _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT_5_6_5']: return this['_gl']['RGB565']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV']: return this['_gl']['R11F_G11F_B10F']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV']: return this['_gl']['RGB9_E5']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4']: return this['_gl']['RGBA4']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1']: return this['_gl']['RGB5_A1']; case _0x2b36d6['TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV']: switch (_0x397327) { case _0x2b36d6['TEXTUREFORMAT_RGBA']: return this['_gl']['RGB10_A2']; case _0x2b36d6['TEXTUREFORMAT_RGBA_INTEGER']: return this['_gl']['RGB10_A2UI']; default: return this['_gl']['RGB10_A2']; } } return this['_gl']['RGBA8']; } , _0x2b36d6['prototype']['_getRGBAMultiSampleBufferFormat'] = function(_0x28738e) { return _0x28738e === _0x2b36d6['TEXTURETYPE_FLOAT'] ? this['_gl']['RGBA32F'] : _0x28738e === _0x2b36d6['TEXTURETYPE_HALF_FLOAT'] ? this['_gl']['RGBA16F'] : this['_gl']['RGBA8']; } , _0x2b36d6['prototype']['_loadFile'] = function(_0x48fc1d, _0x361ebc, _0x60a2e5, _0x1bf092, _0x1563cf, _0x23716d) { var _0x4d35e6 = this , _0x1b0722 = _0x49b495['h']['LoadFile'](_0x48fc1d, _0x361ebc, _0x60a2e5, _0x1bf092, _0x1563cf, _0x23716d); return this['_activeRequests']['push'](_0x1b0722), _0x1b0722['onCompleteObservable']['add'](function(_0x4139e2) { _0x4d35e6['_activeRequests']['splice'](_0x4d35e6['_activeRequests']['indexOf'](_0x4139e2), 0x1); }), _0x1b0722; } , _0x2b36d6['prototype']['_loadFileAsync'] = function(_0x24f537, _0x43e98d, _0x25d7d5) { var _0x5d7118 = this; return new Promise(function(_0x2f6069, _0x2ba725) { _0x5d7118['_loadFile'](_0x24f537, function(_0x4f0c4d) { _0x2f6069(_0x4f0c4d); }, void 0x0, _0x43e98d, _0x25d7d5, function(_0xf1e67b, _0x1fa024) { _0x2ba725(_0x1fa024); }); } ); } , _0x2b36d6['isSupported'] = function() { try { var _0x3fc701 = document['createElement']('canvas'); return null != (_0x3fc701['getContext']('webgl') || _0x3fc701['getContext']('experimental-webgl')) && !!window['WebGLRenderingContext']; } catch (_0x168441) { return !0x1; } } , _0x2b36d6['ExceptionList'] = [{ 'key': 'Chrome/63.0', 'capture': '63\x5c.0\x5c.3239\x5c.(\x5cd+)', 'captureConstraint': 0x6c, 'targets': ['uniformBuffer'] }, { 'key': 'Firefox/58', 'capture': null, 'captureConstraint': null, 'targets': ['uniformBuffer'] }, { 'key': 'Firefox/59', 'capture': null, 'captureConstraint': null, 'targets': ['uniformBuffer'] }, { 'key': 'Chrome/72.+?Mobile', 'capture': null, 'captureConstraint': null, 'targets': ['vao'] }, { 'key': 'Chrome/73.+?Mobile', 'capture': null, 'captureConstraint': null, 'targets': ['vao'] }, { 'key': 'Chrome/74.+?Mobile', 'capture': null, 'captureConstraint': null, 'targets': ['vao'] }, { 'key': 'Mac\x20OS.+Chrome/71', 'capture': null, 'captureConstraint': null, 'targets': ['vao'] }, { 'key': 'Mac\x20OS.+Chrome/72', 'capture': null, 'captureConstraint': null, 'targets': ['vao'] }], _0x2b36d6['_TextureLoaders'] = [], _0x2b36d6['ALPHA_DISABLE'] = _0x426396['a']['ALPHA_DISABLE'], _0x2b36d6['ALPHA_ADD'] = _0x426396['a']['ALPHA_ADD'], _0x2b36d6['ALPHA_COMBINE'] = _0x426396['a']['ALPHA_COMBINE'], _0x2b36d6['ALPHA_SUBTRACT'] = _0x426396['a']['ALPHA_SUBTRACT'], _0x2b36d6['ALPHA_MULTIPLY'] = _0x426396['a']['ALPHA_MULTIPLY'], _0x2b36d6['ALPHA_MAXIMIZED'] = _0x426396['a']['ALPHA_MAXIMIZED'], _0x2b36d6['ALPHA_ONEONE'] = _0x426396['a']['ALPHA_ONEONE'], _0x2b36d6['ALPHA_PREMULTIPLIED'] = _0x426396['a']['ALPHA_PREMULTIPLIED'], _0x2b36d6['ALPHA_PREMULTIPLIED_PORTERDUFF'] = _0x426396['a']['ALPHA_PREMULTIPLIED_PORTERDUFF'], _0x2b36d6['ALPHA_INTERPOLATE'] = _0x426396['a']['ALPHA_INTERPOLATE'], _0x2b36d6['ALPHA_SCREENMODE'] = _0x426396['a']['ALPHA_SCREENMODE'], _0x2b36d6['DELAYLOADSTATE_NONE'] = _0x426396['a']['DELAYLOADSTATE_NONE'], _0x2b36d6['DELAYLOADSTATE_LOADED'] = _0x426396['a']['DELAYLOADSTATE_LOADED'], _0x2b36d6['DELAYLOADSTATE_LOADING'] = _0x426396['a']['DELAYLOADSTATE_LOADING'], _0x2b36d6['DELAYLOADSTATE_NOTLOADED'] = _0x426396['a']['DELAYLOADSTATE_NOTLOADED'], _0x2b36d6['NEVER'] = _0x426396['a']['NEVER'], _0x2b36d6['ALWAYS'] = _0x426396['a']['ALWAYS'], _0x2b36d6['LESS'] = _0x426396['a']['LESS'], _0x2b36d6['EQUAL'] = _0x426396['a']['EQUAL'], _0x2b36d6['LEQUAL'] = _0x426396['a']['LEQUAL'], _0x2b36d6['GREATER'] = _0x426396['a']['GREATER'], _0x2b36d6['GEQUAL'] = _0x426396['a']['GEQUAL'], _0x2b36d6['NOTEQUAL'] = _0x426396['a']['NOTEQUAL'], _0x2b36d6['KEEP'] = _0x426396['a']['KEEP'], _0x2b36d6['REPLACE'] = _0x426396['a']['REPLACE'], _0x2b36d6['INCR'] = _0x426396['a']['INCR'], _0x2b36d6['DECR'] = _0x426396['a']['DECR'], _0x2b36d6['INVERT'] = _0x426396['a']['INVERT'], _0x2b36d6['INCR_WRAP'] = _0x426396['a']['INCR_WRAP'], _0x2b36d6['DECR_WRAP'] = _0x426396['a']['DECR_WRAP'], _0x2b36d6['TEXTURE_CLAMP_ADDRESSMODE'] = _0x426396['a']['TEXTURE_CLAMP_ADDRESSMODE'], _0x2b36d6['TEXTURE_WRAP_ADDRESSMODE'] = _0x426396['a']['TEXTURE_WRAP_ADDRESSMODE'], _0x2b36d6['TEXTURE_MIRROR_ADDRESSMODE'] = _0x426396['a']['TEXTURE_MIRROR_ADDRESSMODE'], _0x2b36d6['TEXTUREFORMAT_ALPHA'] = _0x426396['a']['TEXTUREFORMAT_ALPHA'], _0x2b36d6['TEXTUREFORMAT_LUMINANCE'] = _0x426396['a']['TEXTUREFORMAT_LUMINANCE'], _0x2b36d6['TEXTUREFORMAT_LUMINANCE_ALPHA'] = _0x426396['a']['TEXTUREFORMAT_LUMINANCE_ALPHA'], _0x2b36d6['TEXTUREFORMAT_RGB'] = _0x426396['a']['TEXTUREFORMAT_RGB'], _0x2b36d6['TEXTUREFORMAT_RGBA'] = _0x426396['a']['TEXTUREFORMAT_RGBA'], _0x2b36d6['TEXTUREFORMAT_RED'] = _0x426396['a']['TEXTUREFORMAT_RED'], _0x2b36d6['TEXTUREFORMAT_R'] = _0x426396['a']['TEXTUREFORMAT_R'], _0x2b36d6['TEXTUREFORMAT_RG'] = _0x426396['a']['TEXTUREFORMAT_RG'], _0x2b36d6['TEXTUREFORMAT_RED_INTEGER'] = _0x426396['a']['TEXTUREFORMAT_RED_INTEGER'], _0x2b36d6['TEXTUREFORMAT_R_INTEGER'] = _0x426396['a']['TEXTUREFORMAT_R_INTEGER'], _0x2b36d6['TEXTUREFORMAT_RG_INTEGER'] = _0x426396['a']['TEXTUREFORMAT_RG_INTEGER'], _0x2b36d6['TEXTUREFORMAT_RGB_INTEGER'] = _0x426396['a']['TEXTUREFORMAT_RGB_INTEGER'], _0x2b36d6['TEXTUREFORMAT_RGBA_INTEGER'] = _0x426396['a']['TEXTUREFORMAT_RGBA_INTEGER'], _0x2b36d6['TEXTURETYPE_UNSIGNED_BYTE'] = _0x426396['a']['TEXTURETYPE_UNSIGNED_BYTE'], _0x2b36d6['TEXTURETYPE_UNSIGNED_INT'] = _0x426396['a']['TEXTURETYPE_UNSIGNED_INT'], _0x2b36d6['TEXTURETYPE_FLOAT'] = _0x426396['a']['TEXTURETYPE_FLOAT'], _0x2b36d6['TEXTURETYPE_HALF_FLOAT'] = _0x426396['a']['TEXTURETYPE_HALF_FLOAT'], _0x2b36d6['TEXTURETYPE_BYTE'] = _0x426396['a']['TEXTURETYPE_BYTE'], _0x2b36d6['TEXTURETYPE_SHORT'] = _0x426396['a']['TEXTURETYPE_SHORT'], _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT'] = _0x426396['a']['TEXTURETYPE_UNSIGNED_SHORT'], _0x2b36d6['TEXTURETYPE_INT'] = _0x426396['a']['TEXTURETYPE_INT'], _0x2b36d6['TEXTURETYPE_UNSIGNED_INTEGER'] = _0x426396['a']['TEXTURETYPE_UNSIGNED_INTEGER'], _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4'] = _0x426396['a']['TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4'], _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1'] = _0x426396['a']['TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1'], _0x2b36d6['TEXTURETYPE_UNSIGNED_SHORT_5_6_5'] = _0x426396['a']['TEXTURETYPE_UNSIGNED_SHORT_5_6_5'], _0x2b36d6['TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV'] = _0x426396['a']['TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV'], _0x2b36d6['TEXTURETYPE_UNSIGNED_INT_24_8'] = _0x426396['a']['TEXTURETYPE_UNSIGNED_INT_24_8'], _0x2b36d6['TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV'] = _0x426396['a']['TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV'], _0x2b36d6['TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV'] = _0x426396['a']['TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV'], _0x2b36d6['TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV'] = _0x426396['a']['TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV'], _0x2b36d6['TEXTURE_NEAREST_SAMPLINGMODE'] = _0x426396['a']['TEXTURE_NEAREST_SAMPLINGMODE'], _0x2b36d6['TEXTURE_BILINEAR_SAMPLINGMODE'] = _0x426396['a']['TEXTURE_BILINEAR_SAMPLINGMODE'], _0x2b36d6['TEXTURE_TRILINEAR_SAMPLINGMODE'] = _0x426396['a']['TEXTURE_TRILINEAR_SAMPLINGMODE'], _0x2b36d6['TEXTURE_NEAREST_NEAREST_MIPLINEAR'] = _0x426396['a']['TEXTURE_NEAREST_NEAREST_MIPLINEAR'], _0x2b36d6['TEXTURE_LINEAR_LINEAR_MIPNEAREST'] = _0x426396['a']['TEXTURE_LINEAR_LINEAR_MIPNEAREST'], _0x2b36d6['TEXTURE_LINEAR_LINEAR_MIPLINEAR'] = _0x426396['a']['TEXTURE_LINEAR_LINEAR_MIPLINEAR'], _0x2b36d6['TEXTURE_NEAREST_NEAREST_MIPNEAREST'] = _0x426396['a']['TEXTURE_NEAREST_NEAREST_MIPNEAREST'], _0x2b36d6['TEXTURE_NEAREST_LINEAR_MIPNEAREST'] = _0x426396['a']['TEXTURE_NEAREST_LINEAR_MIPNEAREST'], _0x2b36d6['TEXTURE_NEAREST_LINEAR_MIPLINEAR'] = _0x426396['a']['TEXTURE_NEAREST_LINEAR_MIPLINEAR'], _0x2b36d6['TEXTURE_NEAREST_LINEAR'] = _0x426396['a']['TEXTURE_NEAREST_LINEAR'], _0x2b36d6['TEXTURE_NEAREST_NEAREST'] = _0x426396['a']['TEXTURE_NEAREST_NEAREST'], _0x2b36d6['TEXTURE_LINEAR_NEAREST_MIPNEAREST'] = _0x426396['a']['TEXTURE_LINEAR_NEAREST_MIPNEAREST'], _0x2b36d6['TEXTURE_LINEAR_NEAREST_MIPLINEAR'] = _0x426396['a']['TEXTURE_LINEAR_NEAREST_MIPLINEAR'], _0x2b36d6['TEXTURE_LINEAR_LINEAR'] = _0x426396['a']['TEXTURE_LINEAR_LINEAR'], _0x2b36d6['TEXTURE_LINEAR_NEAREST'] = _0x426396['a']['TEXTURE_LINEAR_NEAREST'], _0x2b36d6['TEXTURE_EXPLICIT_MODE'] = _0x426396['a']['TEXTURE_EXPLICIT_MODE'], _0x2b36d6['TEXTURE_SPHERICAL_MODE'] = _0x426396['a']['TEXTURE_SPHERICAL_MODE'], _0x2b36d6['TEXTURE_PLANAR_MODE'] = _0x426396['a']['TEXTURE_PLANAR_MODE'], _0x2b36d6['TEXTURE_CUBIC_MODE'] = _0x426396['a']['TEXTURE_CUBIC_MODE'], _0x2b36d6['TEXTURE_PROJECTION_MODE'] = _0x426396['a']['TEXTURE_PROJECTION_MODE'], _0x2b36d6['TEXTURE_SKYBOX_MODE'] = _0x426396['a']['TEXTURE_SKYBOX_MODE'], _0x2b36d6['TEXTURE_INVCUBIC_MODE'] = _0x426396['a']['TEXTURE_INVCUBIC_MODE'], _0x2b36d6['TEXTURE_EQUIRECTANGULAR_MODE'] = _0x426396['a']['TEXTURE_EQUIRECTANGULAR_MODE'], _0x2b36d6['TEXTURE_FIXED_EQUIRECTANGULAR_MODE'] = _0x426396['a']['TEXTURE_FIXED_EQUIRECTANGULAR_MODE'], _0x2b36d6['TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE'] = _0x426396['a']['TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE'], _0x2b36d6['SCALEMODE_FLOOR'] = _0x426396['a']['SCALEMODE_FLOOR'], _0x2b36d6['SCALEMODE_NEAREST'] = _0x426396['a']['SCALEMODE_NEAREST'], _0x2b36d6['SCALEMODE_CEILING'] = _0x426396['a']['SCALEMODE_CEILING'], _0x2b36d6['CollisionsEpsilon'] = 0.001, _0x2b36d6['_RescalePostProcessFactory'] = null, _0x2b36d6; }(); } , function(_0x5e243e, _0x2a4895, _0x21dd48) { 'use strict'; _0x21dd48['d'](_0x2a4895, 'b', function() { return _0x327997; }), _0x21dd48['d'](_0x2a4895, 'c', function() { return _0x52cde7; }), _0x21dd48['d'](_0x2a4895, 'a', function() { return _0x3674a1; }); var _0x59331c = _0x21dd48(0x1) , _0xb02aff = _0x21dd48(0x8) , _0xf44b3e = _0x21dd48(0x9) , _0x23f3e2 = _0x21dd48(0x20) , _0xfac2e0 = _0x21dd48(0x1d) , _0x564b55 = _0x21dd48(0x0) , _0x3de53f = _0x21dd48(0x19) , _0x566195 = _0x21dd48(0x4) , _0x3321ce = _0x21dd48(0xd) , _0x3ce75b = _0x21dd48(0x39) , _0x223115 = _0x21dd48(0x18) , _0x1d85ce = _0x21dd48(0x31) , _0x580b71 = _0x21dd48(0x2b) , _0x5df3c0 = _0x21dd48(0x14) , _0x15c00 = _0x21dd48(0x42) , _0x38d900 = _0x21dd48(0x37) , _0x11dda0 = _0x21dd48(0x3) , _0x16d985 = _0x21dd48(0x2) , _0x651ae7 = _0x21dd48(0x6) , _0x4d4b99 = _0x21dd48(0x16) , _0x38b7f6 = _0x21dd48(0x13) , _0x44d4b1 = _0x21dd48(0xe) , _0x2a61b7 = _0x21dd48(0x6e) , _0x327997 = function() { return function() {} ; }() , _0x3376b6 = function() { return function() { this['visibleInstances'] = {}, this['batchCache'] = new _0x52cde7(), this['instancesBufferSize'] = 0x800; } ; }() , _0x52cde7 = function() { return function() { this['mustReturn'] = !0x1, this['visibleInstances'] = new Array(), this['renderSelf'] = new Array(), this['hardwareInstancedRendering'] = new Array(); } ; }() , _0x117976 = function() { return function() { this['_areNormalsFrozen'] = !0x1, this['_source'] = null, this['meshMap'] = null, this['_preActivateId'] = -0x1, this['_LODLevels'] = new Array(), this['_morphTargetManager'] = null; } ; }() , _0x3674a1 = function(_0xeba31b) { function _0x4dc7f5(_0x16fdbf, _0x365c23, _0x67b2d7, _0x4e7f06, _0x4f424e, _0x1fefab) { void 0x0 === _0x365c23 && (_0x365c23 = null), void 0x0 === _0x67b2d7 && (_0x67b2d7 = null), void 0x0 === _0x4e7f06 && (_0x4e7f06 = null), void 0x0 === _0x1fefab && (_0x1fefab = !0x0); var _0x1bedec = _0xeba31b['call'](this, _0x16fdbf, _0x365c23) || this; if (_0x1bedec['_internalMeshDataInfo'] = new _0x117976(), _0x1bedec['delayLoadState'] = _0x11dda0['a']['DELAYLOADSTATE_NONE'], _0x1bedec['instances'] = new Array(), _0x1bedec['_creationDataStorage'] = null, _0x1bedec['_geometry'] = null, _0x1bedec['_instanceDataStorage'] = new _0x3376b6(), _0x1bedec['_effectiveMaterial'] = null, _0x1bedec['_shouldGenerateFlatShading'] = !0x1, _0x1bedec['_originalBuilderSideOrientation'] = _0x4dc7f5['DEFAULTSIDE'], _0x1bedec['overrideMaterialSideOrientation'] = null, _0x365c23 = _0x1bedec['getScene'](), _0x4e7f06) { if (_0x4e7f06['_geometry'] && _0x4e7f06['_geometry']['applyToMesh'](_0x1bedec), _0x23f3e2['a']['DeepCopy'](_0x4e7f06, _0x1bedec, ['name', 'material', 'skeleton', 'instances', 'parent', 'uniqueId', 'source', 'metadata', 'hasLODLevels', 'geometry', 'isBlocked', 'areNormalsFrozen', 'onBeforeDrawObservable', 'onBeforeRenderObservable', 'onAfterRenderObservable', 'onBeforeDraw', 'onAfterWorldMatrixUpdateObservable', 'onCollideObservable', 'onCollisionPositionChangeObservable', 'onRebuildObservable', 'onDisposeObservable'], ['_poseMatrix']), _0x1bedec['_internalMeshDataInfo']['_source'] = _0x4e7f06, _0x365c23['useClonedMeshhMap'] && (_0x4e7f06['_internalMeshDataInfo']['meshMap'] || (_0x4e7f06['_internalMeshDataInfo']['meshMap'] = {}), _0x4e7f06['_internalMeshDataInfo']['meshMap'][_0x1bedec['uniqueId']] = _0x1bedec), _0x1bedec['_originalBuilderSideOrientation'] = _0x4e7f06['_originalBuilderSideOrientation'], _0x1bedec['_creationDataStorage'] = _0x4e7f06['_creationDataStorage'], _0x4e7f06['_ranges']) { var _0x1c858f = _0x4e7f06['_ranges']; for (var _0x16fdbf in _0x1c858f) _0x1c858f['hasOwnProperty'](_0x16fdbf) && _0x1c858f[_0x16fdbf] && _0x1bedec['createAnimationRange'](_0x16fdbf, _0x1c858f[_0x16fdbf]['from'], _0x1c858f[_0x16fdbf]['to']); } var _0xff5af3; if (_0x4e7f06['metadata'] && _0x4e7f06['metadata']['clone'] ? _0x1bedec['metadata'] = _0x4e7f06['metadata']['clone']() : _0x1bedec['metadata'] = _0x4e7f06['metadata'], _0xfac2e0['a'] && _0xfac2e0['a']['HasTags'](_0x4e7f06) && _0xfac2e0['a']['AddTagsTo'](_0x1bedec, _0xfac2e0['a']['GetTags'](_0x4e7f06, !0x0)), _0x1bedec['parent'] = _0x4e7f06['parent'], _0x1bedec['setPivotMatrix'](_0x4e7f06['getPivotMatrix']()), _0x1bedec['id'] = _0x16fdbf + '.' + _0x4e7f06['id'], _0x1bedec['material'] = _0x4e7f06['material'], !_0x4f424e) for (var _0x2056d3 = _0x4e7f06['getDescendants'](!0x0), _0x7a136d = 0x0; _0x7a136d < _0x2056d3['length']; _0x7a136d++) { var _0x40aeef = _0x2056d3[_0x7a136d]; _0x40aeef['clone'] && _0x40aeef['clone'](_0x16fdbf + '.' + _0x40aeef['name'], _0x1bedec); } if (_0x365c23['getPhysicsEngine']) { var _0x1695c9 = _0x365c23['getPhysicsEngine'](); if (_0x1fefab && _0x1695c9) { var _0x5e70bc = _0x1695c9['getImpostorForPhysicsObject'](_0x4e7f06); _0x5e70bc && (_0x1bedec['physicsImpostor'] = _0x5e70bc['clone'](_0x1bedec)); } } for (_0xff5af3 = 0x0; _0xff5af3 < _0x365c23['particleSystems']['length']; _0xff5af3++) { var _0x12c481 = _0x365c23['particleSystems'][_0xff5af3]; _0x12c481['emitter'] === _0x4e7f06 && _0x12c481['clone'](_0x12c481['name'], _0x1bedec); } _0x1bedec['refreshBoundingInfo'](), _0x1bedec['computeWorldMatrix'](!0x0); } return null !== _0x67b2d7 && (_0x1bedec['parent'] = _0x67b2d7), _0x1bedec['_instanceDataStorage']['hardwareInstancedRendering'] = _0x1bedec['getEngine']()['getCaps']()['instancedArrays'], _0x1bedec; } return _0x59331c['d'](_0x4dc7f5, _0xeba31b), _0x4dc7f5['_GetDefaultSideOrientation'] = function(_0xdfc60b) { return _0xdfc60b || _0x4dc7f5['FRONTSIDE']; } , Object['defineProperty'](_0x4dc7f5['prototype'], 'onBeforeRenderObservable', { 'get': function() { return this['_internalMeshDataInfo']['_onBeforeRenderObservable'] || (this['_internalMeshDataInfo']['_onBeforeRenderObservable'] = new _0xb02aff['c']()), this['_internalMeshDataInfo']['_onBeforeRenderObservable']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x4dc7f5['prototype'], 'onBeforeBindObservable', { 'get': function() { return this['_internalMeshDataInfo']['_onBeforeBindObservable'] || (this['_internalMeshDataInfo']['_onBeforeBindObservable'] = new _0xb02aff['c']()), this['_internalMeshDataInfo']['_onBeforeBindObservable']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x4dc7f5['prototype'], 'onAfterRenderObservable', { 'get': function() { return this['_internalMeshDataInfo']['_onAfterRenderObservable'] || (this['_internalMeshDataInfo']['_onAfterRenderObservable'] = new _0xb02aff['c']()), this['_internalMeshDataInfo']['_onAfterRenderObservable']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x4dc7f5['prototype'], 'onBeforeDrawObservable', { 'get': function() { return this['_internalMeshDataInfo']['_onBeforeDrawObservable'] || (this['_internalMeshDataInfo']['_onBeforeDrawObservable'] = new _0xb02aff['c']()), this['_internalMeshDataInfo']['_onBeforeDrawObservable']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x4dc7f5['prototype'], 'onBeforeDraw', { 'set': function(_0x143f79) { this['_onBeforeDrawObserver'] && this['onBeforeDrawObservable']['remove'](this['_onBeforeDrawObserver']), this['_onBeforeDrawObserver'] = this['onBeforeDrawObservable']['add'](_0x143f79); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x4dc7f5['prototype'], 'morphTargetManager', { 'get': function() { return this['_internalMeshDataInfo']['_morphTargetManager']; }, 'set': function(_0x57c8b7) { this['_internalMeshDataInfo']['_morphTargetManager'] !== _0x57c8b7 && (this['_internalMeshDataInfo']['_morphTargetManager'] = _0x57c8b7, this['_syncGeometryWithMorphTargetManager']()); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x4dc7f5['prototype'], 'source', { 'get': function() { return this['_internalMeshDataInfo']['_source']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x4dc7f5['prototype'], 'isUnIndexed', { 'get': function() { return this['_unIndexed']; }, 'set': function(_0x1fcdad) { this['_unIndexed'] !== _0x1fcdad && (this['_unIndexed'] = _0x1fcdad, this['_markSubMeshesAsAttributesDirty']()); }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x4dc7f5['prototype']['getClassName'] = function() { return 'Mesh'; } , Object['defineProperty'](_0x4dc7f5['prototype'], '_isMesh', { 'get': function() { return !0x0; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x4dc7f5['prototype']['toString'] = function(_0x4a3a3f) { var _0x132cd6 = _0xeba31b['prototype']['toString']['call'](this, _0x4a3a3f); if (_0x132cd6 += ',\x20n\x20vertices:\x20' + this['getTotalVertices'](), _0x132cd6 += ',\x20parent:\x20' + (this['_waitingParentId'] ? this['_waitingParentId'] : this['parent'] ? this['parent']['name'] : 'NONE'), this['animations']) for (var _0x3a47c0 = 0x0; _0x3a47c0 < this['animations']['length']; _0x3a47c0++) _0x132cd6 += ',\x20animation[0]:\x20' + this['animations'][_0x3a47c0]['toString'](_0x4a3a3f); if (_0x4a3a3f) if (this['_geometry']) { var _0x36a1b7 = this['getIndices']() , _0x2aa141 = this['getVerticesData'](_0x566195['b']['PositionKind']); _0x2aa141 && _0x36a1b7 && (_0x132cd6 += ',\x20flat\x20shading:\x20' + (_0x2aa141['length'] / 0x3 === _0x36a1b7['length'] ? 'YES' : 'NO')); } else _0x132cd6 += ',\x20flat\x20shading:\x20UNKNOWN'; return _0x132cd6; } , _0x4dc7f5['prototype']['_unBindEffect'] = function() { _0xeba31b['prototype']['_unBindEffect']['call'](this); for (var _0x46c797 = 0x0, _0x19dec8 = this['instances']; _0x46c797 < _0x19dec8['length']; _0x46c797++) { _0x19dec8[_0x46c797]['_unBindEffect'](); } } , Object['defineProperty'](_0x4dc7f5['prototype'], 'hasLODLevels', { 'get': function() { return this['_internalMeshDataInfo']['_LODLevels']['length'] > 0x0; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x4dc7f5['prototype']['getLODLevels'] = function() { return this['_internalMeshDataInfo']['_LODLevels']; } , _0x4dc7f5['prototype']['_sortLODLevels'] = function() { this['_internalMeshDataInfo']['_LODLevels']['sort'](function(_0x516fc1, _0x4c4598) { return _0x516fc1['distance'] < _0x4c4598['distance'] ? 0x1 : _0x516fc1['distance'] > _0x4c4598['distance'] ? -0x1 : 0x0; }); } , _0x4dc7f5['prototype']['addLODLevel'] = function(_0x3dec20, _0x25f915) { if (_0x25f915 && _0x25f915['_masterMesh']) return _0x651ae7['a']['Warn']('You\x20cannot\x20use\x20a\x20mesh\x20as\x20LOD\x20level\x20twice'), this; var _0x5d1583 = new _0x2a61b7['a'](_0x3dec20,_0x25f915); return this['_internalMeshDataInfo']['_LODLevels']['push'](_0x5d1583), _0x25f915 && (_0x25f915['_masterMesh'] = this), this['_sortLODLevels'](), this; } , _0x4dc7f5['prototype']['getLODLevelAtDistance'] = function(_0x48bf30) { for (var _0xff1b5a = this['_internalMeshDataInfo'], _0x2f293f = 0x0; _0x2f293f < _0xff1b5a['_LODLevels']['length']; _0x2f293f++) { var _0x53dd8c = _0xff1b5a['_LODLevels'][_0x2f293f]; if (_0x53dd8c['distance'] === _0x48bf30) return _0x53dd8c['mesh']; } return null; } , _0x4dc7f5['prototype']['removeLODLevel'] = function(_0x94d6f3) { for (var _0x52059d = this['_internalMeshDataInfo'], _0x2a25d0 = 0x0; _0x2a25d0 < _0x52059d['_LODLevels']['length']; _0x2a25d0++) _0x52059d['_LODLevels'][_0x2a25d0]['mesh'] === _0x94d6f3 && (_0x52059d['_LODLevels']['splice'](_0x2a25d0, 0x1), _0x94d6f3 && (_0x94d6f3['_masterMesh'] = null)); return this['_sortLODLevels'](), this; } , _0x4dc7f5['prototype']['getLOD'] = function(_0x3b58c5, _0x1c0890) { var _0x301f6, _0x362e3b = this['_internalMeshDataInfo']; if (!_0x362e3b['_LODLevels'] || 0x0 === _0x362e3b['_LODLevels']['length']) return this; _0x1c0890 ? _0x301f6 = _0x1c0890 : _0x301f6 = this['getBoundingInfo']()['boundingSphere']; var _0x547ec7 = _0x301f6['centerWorld']['subtract'](_0x3b58c5['globalPosition'])['length'](); if (_0x362e3b['_LODLevels'][_0x362e3b['_LODLevels']['length'] - 0x1]['distance'] > _0x547ec7) return this['onLODLevelSelection'] && this['onLODLevelSelection'](_0x547ec7, this, _0x362e3b['_LODLevels'][_0x362e3b['_LODLevels']['length'] - 0x1]['mesh']), this; for (var _0x17c737 = 0x0; _0x17c737 < _0x362e3b['_LODLevels']['length']; _0x17c737++) { var _0x549d0a = _0x362e3b['_LODLevels'][_0x17c737]; if (_0x549d0a['distance'] < _0x547ec7) return _0x549d0a['mesh'] && (_0x549d0a['mesh']['_preActivate'](), _0x549d0a['mesh']['_updateSubMeshesBoundingInfo'](this['worldMatrixFromCache'])), this['onLODLevelSelection'] && this['onLODLevelSelection'](_0x547ec7, this, _0x549d0a['mesh']), _0x549d0a['mesh']; } return this['onLODLevelSelection'] && this['onLODLevelSelection'](_0x547ec7, this, this), this; } , Object['defineProperty'](_0x4dc7f5['prototype'], 'geometry', { 'get': function() { return this['_geometry']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x4dc7f5['prototype']['getTotalVertices'] = function() { return null === this['_geometry'] || void 0x0 === this['_geometry'] ? 0x0 : this['_geometry']['getTotalVertices'](); } , _0x4dc7f5['prototype']['getVerticesData'] = function(_0x8d3ebd, _0x5a58ba, _0x4c4291) { return this['_geometry'] ? this['_geometry']['getVerticesData'](_0x8d3ebd, _0x5a58ba, _0x4c4291) : null; } , _0x4dc7f5['prototype']['getVertexBuffer'] = function(_0x4e2bb4) { return this['_geometry'] ? this['_geometry']['getVertexBuffer'](_0x4e2bb4) : null; } , _0x4dc7f5['prototype']['isVerticesDataPresent'] = function(_0x4aa81d) { return this['_geometry'] ? this['_geometry']['isVerticesDataPresent'](_0x4aa81d) : !!this['_delayInfo'] && -0x1 !== this['_delayInfo']['indexOf'](_0x4aa81d); } , _0x4dc7f5['prototype']['isVertexBufferUpdatable'] = function(_0x8768f5) { return this['_geometry'] ? this['_geometry']['isVertexBufferUpdatable'](_0x8768f5) : !!this['_delayInfo'] && -0x1 !== this['_delayInfo']['indexOf'](_0x8768f5); } , _0x4dc7f5['prototype']['getVerticesDataKinds'] = function() { if (!this['_geometry']) { var _0x97c86a = new Array(); return this['_delayInfo'] && this['_delayInfo']['forEach'](function(_0x5164cd) { _0x97c86a['push'](_0x5164cd); }), _0x97c86a; } return this['_geometry']['getVerticesDataKinds'](); } , _0x4dc7f5['prototype']['getTotalIndices'] = function() { return this['_geometry'] ? this['_geometry']['getTotalIndices']() : 0x0; } , _0x4dc7f5['prototype']['getIndices'] = function(_0x5e2073, _0x24ea1c) { return this['_geometry'] ? this['_geometry']['getIndices'](_0x5e2073, _0x24ea1c) : []; } , Object['defineProperty'](_0x4dc7f5['prototype'], 'isBlocked', { 'get': function() { return null !== this['_masterMesh'] && void 0x0 !== this['_masterMesh']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x4dc7f5['prototype']['isReady'] = function(_0x1daf28, _0x34d234) { if (void 0x0 === _0x1daf28 && (_0x1daf28 = !0x1), void 0x0 === _0x34d234 && (_0x34d234 = !0x1), this['delayLoadState'] === _0x11dda0['a']['DELAYLOADSTATE_LOADING']) return !0x1; if (!_0xeba31b['prototype']['isReady']['call'](this, _0x1daf28)) return !0x1; if (!this['subMeshes'] || 0x0 === this['subMeshes']['length']) return !0x0; if (!_0x1daf28) return !0x0; var _0x37a502 = this['getEngine']() , _0x17d0d8 = this['getScene']() , _0x1db781 = _0x34d234 || _0x37a502['getCaps']()['instancedArrays'] && this['instances']['length'] > 0x0; this['computeWorldMatrix'](); var _0x4ddb85 = this['material'] || _0x17d0d8['defaultMaterial']; if (_0x4ddb85) if (_0x4ddb85['_storeEffectOnSubMeshes']) for (var _0x5f132d = 0x0, _0x3a6134 = this['subMeshes']; _0x5f132d < _0x3a6134['length']; _0x5f132d++) { var _0xda5923 = (_0x417e3a = _0x3a6134[_0x5f132d])['getMaterial'](); if (_0xda5923) if (_0xda5923['_storeEffectOnSubMeshes']) { if (!_0xda5923['isReadyForSubMesh'](this, _0x417e3a, _0x1db781)) return !0x1; } else if (!_0xda5923['isReady'](this, _0x1db781)) return !0x1; } else if (!_0x4ddb85['isReady'](this, _0x1db781)) return !0x1; for (var _0xba3dad = 0x0, _0x5ce27e = this['lightSources']; _0xba3dad < _0x5ce27e['length']; _0xba3dad++) { var _0x2d7f60 = _0x5ce27e[_0xba3dad]['getShadowGenerator'](); if (_0x2d7f60) for (var _0x28b94a = 0x0, _0x3b2ef7 = this['subMeshes']; _0x28b94a < _0x3b2ef7['length']; _0x28b94a++) { var _0x417e3a = _0x3b2ef7[_0x28b94a]; if (!_0x2d7f60['isReady'](_0x417e3a, _0x1db781)) return !0x1; } } for (var _0x172bb0 = 0x0, _0xa1f162 = this['_internalMeshDataInfo']['_LODLevels']; _0x172bb0 < _0xa1f162['length']; _0x172bb0++) { var _0x145437 = _0xa1f162[_0x172bb0]; if (_0x145437['mesh'] && !_0x145437['mesh']['isReady'](_0x1db781)) return !0x1; } return !0x0; } , Object['defineProperty'](_0x4dc7f5['prototype'], 'areNormalsFrozen', { 'get': function() { return this['_internalMeshDataInfo']['_areNormalsFrozen']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x4dc7f5['prototype']['freezeNormals'] = function() { return this['_internalMeshDataInfo']['_areNormalsFrozen'] = !0x0, this; } , _0x4dc7f5['prototype']['unfreezeNormals'] = function() { return this['_internalMeshDataInfo']['_areNormalsFrozen'] = !0x1, this; } , Object['defineProperty'](_0x4dc7f5['prototype'], 'overridenInstanceCount', { 'set': function(_0x37a7d4) { this['_instanceDataStorage']['overridenInstanceCount'] = _0x37a7d4; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x4dc7f5['prototype']['_preActivate'] = function() { var _0x2e9c11 = this['_internalMeshDataInfo'] , _0xffd390 = this['getScene']()['getRenderId'](); return _0x2e9c11['_preActivateId'] === _0xffd390 ? this : (_0x2e9c11['_preActivateId'] = _0xffd390, this['_instanceDataStorage']['visibleInstances'] = null, this); } , _0x4dc7f5['prototype']['_preActivateForIntermediateRendering'] = function(_0x1a0024) { return this['_instanceDataStorage']['visibleInstances'] && (this['_instanceDataStorage']['visibleInstances']['intermediateDefaultRenderId'] = _0x1a0024), this; } , _0x4dc7f5['prototype']['_registerInstanceForRenderId'] = function(_0x311972, _0x34ca1f) { return this['_instanceDataStorage']['visibleInstances'] || (this['_instanceDataStorage']['visibleInstances'] = { 'defaultRenderId': _0x34ca1f, 'selfDefaultRenderId': this['_renderId'] }), this['_instanceDataStorage']['visibleInstances'][_0x34ca1f] || (this['_instanceDataStorage']['visibleInstances'][_0x34ca1f] = new Array()), this['_instanceDataStorage']['visibleInstances'][_0x34ca1f]['push'](_0x311972), this; } , _0x4dc7f5['prototype']['refreshBoundingInfo'] = function(_0x1e349f) { if (void 0x0 === _0x1e349f && (_0x1e349f = !0x1), this['_boundingInfo'] && this['_boundingInfo']['isLocked']) return this; var _0x439c5e = this['geometry'] ? this['geometry']['boundingBias'] : null; return this['_refreshBoundingInfo'](this['_getPositionData'](_0x1e349f), _0x439c5e), this; } , _0x4dc7f5['prototype']['_createGlobalSubMesh'] = function(_0x287e33) { var _0x7d32f3 = this['getTotalVertices'](); if (!_0x7d32f3 || !this['getIndices']()) return null; if (this['subMeshes'] && this['subMeshes']['length'] > 0x0) { var _0x3485b4 = this['getIndices'](); if (!_0x3485b4) return null; var _0x5d15bc = _0x3485b4['length'] , _0x9e26d4 = !0x1; if (_0x287e33) _0x9e26d4 = !0x0; else for (var _0x5daed3 = 0x0, _0x489246 = this['subMeshes']; _0x5daed3 < _0x489246['length']; _0x5daed3++) { var _0x665433 = _0x489246[_0x5daed3]; if (_0x665433['indexStart'] + _0x665433['indexCount'] >= _0x5d15bc) { _0x9e26d4 = !0x0; break; } if (_0x665433['verticesStart'] + _0x665433['verticesCount'] >= _0x7d32f3) { _0x9e26d4 = !0x0; break; } } if (!_0x9e26d4) return this['subMeshes'][0x0]; } return this['releaseSubMeshes'](), new _0x1d85ce['b'](0x0,0x0,_0x7d32f3,0x0,this['getTotalIndices'](),this); } , _0x4dc7f5['prototype']['subdivide'] = function(_0xd82318) { if (!(_0xd82318 < 0x1)) { for (var _0x40e4d2 = this['getTotalIndices'](), _0x14e2f6 = _0x40e4d2 / _0xd82318 | 0x0, _0x1272c4 = 0x0; _0x14e2f6 % 0x3 != 0x0; ) _0x14e2f6++; this['releaseSubMeshes'](); for (var _0x148fa9 = 0x0; _0x148fa9 < _0xd82318 && !(_0x1272c4 >= _0x40e4d2); _0x148fa9++) _0x1d85ce['b']['CreateFromIndices'](0x0, _0x1272c4, Math['min'](_0x14e2f6, _0x40e4d2 - _0x1272c4), this), _0x1272c4 += _0x14e2f6; this['synchronizeInstances'](); } } , _0x4dc7f5['prototype']['setVerticesData'] = function(_0x33b281, _0x3dd074, _0x5dd33f, _0x248c4e) { if (void 0x0 === _0x5dd33f && (_0x5dd33f = !0x1), this['_geometry']) this['_geometry']['setVerticesData'](_0x33b281, _0x3dd074, _0x5dd33f, _0x248c4e); else { var _0x4c8fd5 = new _0x3321ce['a'](); _0x4c8fd5['set'](_0x3dd074, _0x33b281); var _0x5ccf5e = this['getScene'](); new _0x3ce75b['a'](_0x3ce75b['a']['RandomId'](),_0x5ccf5e,_0x4c8fd5,_0x5dd33f,this); } return this; } , _0x4dc7f5['prototype']['markVerticesDataAsUpdatable'] = function(_0x595e02, _0xa86740) { void 0x0 === _0xa86740 && (_0xa86740 = !0x0); var _0x523df0 = this['getVertexBuffer'](_0x595e02); _0x523df0 && _0x523df0['isUpdatable']() !== _0xa86740 && this['setVerticesData'](_0x595e02, this['getVerticesData'](_0x595e02), _0xa86740); } , _0x4dc7f5['prototype']['setVerticesBuffer'] = function(_0x539acf) { return this['_geometry'] || (this['_geometry'] = _0x3ce75b['a']['CreateGeometryForMesh'](this)), this['_geometry']['setVerticesBuffer'](_0x539acf), this; } , _0x4dc7f5['prototype']['updateVerticesData'] = function(_0x228bab, _0x4e9f3a, _0x366a1b, _0x1e8c43) { return this['_geometry'] ? (_0x1e8c43 ? (this['makeGeometryUnique'](), this['updateVerticesData'](_0x228bab, _0x4e9f3a, _0x366a1b, !0x1)) : this['_geometry']['updateVerticesData'](_0x228bab, _0x4e9f3a, _0x366a1b), this) : this; } , _0x4dc7f5['prototype']['updateMeshPositions'] = function(_0x6785b, _0x5d6c58) { void 0x0 === _0x5d6c58 && (_0x5d6c58 = !0x0); var _0x5393d5 = this['getVerticesData'](_0x566195['b']['PositionKind']); if (!_0x5393d5) return this; if (_0x6785b(_0x5393d5), this['updateVerticesData'](_0x566195['b']['PositionKind'], _0x5393d5, !0x1, !0x1), _0x5d6c58) { var _0x44d3d9 = this['getIndices']() , _0x1a0a23 = this['getVerticesData'](_0x566195['b']['NormalKind']); if (!_0x1a0a23) return this; _0x3321ce['a']['ComputeNormals'](_0x5393d5, _0x44d3d9, _0x1a0a23), this['updateVerticesData'](_0x566195['b']['NormalKind'], _0x1a0a23, !0x1, !0x1); } return this; } , _0x4dc7f5['prototype']['makeGeometryUnique'] = function() { if (!this['_geometry']) return this; var _0x576451 = this['_geometry'] , _0x1aeaab = this['_geometry']['copy'](_0x3ce75b['a']['RandomId']()); return _0x576451['releaseForMesh'](this, !0x0), _0x1aeaab['applyToMesh'](this), this; } , _0x4dc7f5['prototype']['setIndices'] = function(_0x5377a7, _0x56f515, _0x3a1c01) { if (void 0x0 === _0x56f515 && (_0x56f515 = null), void 0x0 === _0x3a1c01 && (_0x3a1c01 = !0x1), this['_geometry']) this['_geometry']['setIndices'](_0x5377a7, _0x56f515, _0x3a1c01); else { var _0x5928f1 = new _0x3321ce['a'](); _0x5928f1['indices'] = _0x5377a7; var _0xa6fdf5 = this['getScene'](); new _0x3ce75b['a'](_0x3ce75b['a']['RandomId'](),_0xa6fdf5,_0x5928f1,_0x3a1c01,this); } return this; } , _0x4dc7f5['prototype']['updateIndices'] = function(_0x41ade5, _0x526872, _0xc16626) { return void 0x0 === _0xc16626 && (_0xc16626 = !0x1), this['_geometry'] ? (this['_geometry']['updateIndices'](_0x41ade5, _0x526872, _0xc16626), this) : this; } , _0x4dc7f5['prototype']['toLeftHanded'] = function() { return this['_geometry'] ? (this['_geometry']['toLeftHanded'](), this) : this; } , _0x4dc7f5['prototype']['_bind'] = function(_0x3b5c01, _0x568c03, _0x5b89f8) { if (!this['_geometry']) return this; var _0x3106b3, _0x353872 = this['getScene']()['getEngine'](); if (this['_unIndexed']) _0x3106b3 = null; else switch (_0x5b89f8) { case _0x5df3c0['a']['PointFillMode']: _0x3106b3 = null; break; case _0x5df3c0['a']['WireFrameFillMode']: _0x3106b3 = _0x3b5c01['_getLinesIndexBuffer'](this['getIndices'](), _0x353872); break; default: case _0x5df3c0['a']['TriangleFillMode']: _0x3106b3 = this['_geometry']['getIndexBuffer'](); } return this['_geometry']['_bind'](_0x568c03, _0x3106b3), this; } , _0x4dc7f5['prototype']['_draw'] = function(_0x12eadb, _0x201522, _0x9c204d) { if (!this['_geometry'] || !this['_geometry']['getVertexBuffers']() || !this['_unIndexed'] && !this['_geometry']['getIndexBuffer']()) return this; this['_internalMeshDataInfo']['_onBeforeDrawObservable'] && this['_internalMeshDataInfo']['_onBeforeDrawObservable']['notifyObservers'](this); var _0xd81396 = this['getScene']()['getEngine'](); return this['_unIndexed'] || _0x201522 == _0x5df3c0['a']['PointFillMode'] ? _0xd81396['drawArraysType'](_0x201522, _0x12eadb['verticesStart'], _0x12eadb['verticesCount'], _0x9c204d) : _0x201522 == _0x5df3c0['a']['WireFrameFillMode'] ? _0xd81396['drawElementsType'](_0x201522, 0x0, _0x12eadb['_linesIndexCount'], _0x9c204d) : _0xd81396['drawElementsType'](_0x201522, _0x12eadb['indexStart'], _0x12eadb['indexCount'], _0x9c204d), this; } , _0x4dc7f5['prototype']['registerBeforeRender'] = function(_0x1e3ffb) { return this['onBeforeRenderObservable']['add'](_0x1e3ffb), this; } , _0x4dc7f5['prototype']['unregisterBeforeRender'] = function(_0x192e08) { return this['onBeforeRenderObservable']['removeCallback'](_0x192e08), this; } , _0x4dc7f5['prototype']['registerAfterRender'] = function(_0x2d935b) { return this['onAfterRenderObservable']['add'](_0x2d935b), this; } , _0x4dc7f5['prototype']['unregisterAfterRender'] = function(_0x39e1f7) { return this['onAfterRenderObservable']['removeCallback'](_0x39e1f7), this; } , _0x4dc7f5['prototype']['_getInstancesRenderList'] = function(_0x12fb0c) { if (this['_instanceDataStorage']['isFrozen'] && this['_instanceDataStorage']['previousBatch']) return this['_instanceDataStorage']['previousBatch']; var _0xa5f95e = this['getScene']() , _0xddc567 = _0xa5f95e['_isInIntermediateRendering']() , _0x312922 = _0xddc567 ? this['_internalAbstractMeshDataInfo']['_onlyForInstancesIntermediate'] : this['_internalAbstractMeshDataInfo']['_onlyForInstances'] , _0x119af6 = this['_instanceDataStorage']['batchCache']; if (_0x119af6['mustReturn'] = !0x1, _0x119af6['renderSelf'][_0x12fb0c] = !_0x312922 && this['isEnabled']() && this['isVisible'], _0x119af6['visibleInstances'][_0x12fb0c] = null, this['_instanceDataStorage']['visibleInstances']) { var _0xd1f4e8 = this['_instanceDataStorage']['visibleInstances'] , _0x4fc555 = _0xa5f95e['getRenderId']() , _0xd0fdf8 = _0xddc567 ? _0xd1f4e8['intermediateDefaultRenderId'] : _0xd1f4e8['defaultRenderId']; _0x119af6['visibleInstances'][_0x12fb0c] = _0xd1f4e8[_0x4fc555], !_0x119af6['visibleInstances'][_0x12fb0c] && _0xd0fdf8 && (_0x119af6['visibleInstances'][_0x12fb0c] = _0xd1f4e8[_0xd0fdf8]); } return _0x119af6['hardwareInstancedRendering'][_0x12fb0c] = this['_instanceDataStorage']['hardwareInstancedRendering'] && null !== _0x119af6['visibleInstances'][_0x12fb0c] && void 0x0 !== _0x119af6['visibleInstances'][_0x12fb0c], this['_instanceDataStorage']['previousBatch'] = _0x119af6, _0x119af6; } , _0x4dc7f5['prototype']['_renderWithInstances'] = function(_0x56c84a, _0x32866e, _0xf79983, _0xc4e8ae, _0x5c0937) { var _0x31b806 = _0xf79983['visibleInstances'][_0x56c84a['_id']]; if (!_0x31b806) return this; for (var _0x24a9c1 = this['_instanceDataStorage'], _0x7c9209 = _0x24a9c1['instancesBufferSize'], _0x1f7902 = _0x24a9c1['instancesBuffer'], _0x52bd4f = 0x10 * (_0x31b806['length'] + 0x1) * 0x4; _0x24a9c1['instancesBufferSize'] < _0x52bd4f; ) _0x24a9c1['instancesBufferSize'] *= 0x2; _0x24a9c1['instancesData'] && _0x7c9209 == _0x24a9c1['instancesBufferSize'] || (_0x24a9c1['instancesData'] = new Float32Array(_0x24a9c1['instancesBufferSize'] / 0x4)); var _0x55df87 = 0x0 , _0x5247aa = 0x0 , _0x4e3995 = this['_effectiveMesh']['getWorldMatrix'](); if (_0xf79983['renderSelf'][_0x56c84a['_id']] && (_0x4e3995['copyToArray'](_0x24a9c1['instancesData'], _0x55df87), _0x55df87 += 0x10, _0x5247aa++), _0x31b806) for (var _0x407c3f = 0x0; _0x407c3f < _0x31b806['length']; _0x407c3f++) { _0x31b806[_0x407c3f]['getWorldMatrix']()['copyToArray'](_0x24a9c1['instancesData'], _0x55df87), _0x55df87 += 0x10, _0x5247aa++; } return _0x1f7902 && _0x7c9209 == _0x24a9c1['instancesBufferSize'] ? _0x1f7902['updateDirectly'](_0x24a9c1['instancesData'], 0x0, _0x5247aa) : (_0x1f7902 && _0x1f7902['dispose'](), _0x1f7902 = new _0x566195['a'](_0x5c0937,_0x24a9c1['instancesData'],!0x0,0x10,!0x1,!0x0), _0x24a9c1['instancesBuffer'] = _0x1f7902, this['setVerticesBuffer'](_0x1f7902['createVertexBuffer']('world0', 0x0, 0x4)), this['setVerticesBuffer'](_0x1f7902['createVertexBuffer']('world1', 0x4, 0x4)), this['setVerticesBuffer'](_0x1f7902['createVertexBuffer']('world2', 0x8, 0x4)), this['setVerticesBuffer'](_0x1f7902['createVertexBuffer']('world3', 0xc, 0x4))), this['_bind'](_0x56c84a, _0xc4e8ae, _0x32866e), this['_draw'](_0x56c84a, _0x32866e, _0x5247aa), _0x5c0937['unbindInstanceAttributes'](), this; } , _0x4dc7f5['prototype']['_processRendering'] = function(_0x7d1be7, _0x4a3d56, _0xa4e727, _0x4ca3ab, _0x249a13, _0x5eb230, _0x237907) { var _0x4e955d = this['getScene']()['getEngine'](); if (_0x249a13) this['_renderWithInstances'](_0x7d1be7, _0xa4e727, _0x4ca3ab, _0x4a3d56, _0x4e955d); else { _0x4ca3ab['renderSelf'][_0x7d1be7['_id']] && (_0x5eb230 && _0x5eb230(!0x1, this['_effectiveMesh']['getWorldMatrix'](), _0x237907), this['_draw'](_0x7d1be7, _0xa4e727, this['_instanceDataStorage']['overridenInstanceCount'])); var _0x3e5442 = _0x4ca3ab['visibleInstances'][_0x7d1be7['_id']]; if (_0x3e5442) for (var _0x4c9fca = 0x0; _0x4c9fca < _0x3e5442['length']; _0x4c9fca++) { var _0x77d047 = _0x3e5442[_0x4c9fca]['getWorldMatrix'](); _0x5eb230 && _0x5eb230(!0x0, _0x77d047, _0x237907), this['_draw'](_0x7d1be7, _0xa4e727); } } return this; } , _0x4dc7f5['prototype']['_freeze'] = function() { if (this['_instanceDataStorage']['isFrozen'] = !0x0, this['subMeshes']) for (var _0x1883a1 = 0x0; _0x1883a1 < this['subMeshes']['length']; _0x1883a1++) this['_getInstancesRenderList'](_0x1883a1); } , _0x4dc7f5['prototype']['_unFreeze'] = function() { this['_instanceDataStorage']['isFrozen'] = !0x1; } , _0x4dc7f5['prototype']['render'] = function(_0xb820e9, _0x5c98dc) { var _0x49d5b8 = this['getScene'](); if (_0x49d5b8['_isInIntermediateRendering']() ? this['_internalAbstractMeshDataInfo']['_isActiveIntermediate'] = !0x1 : this['_internalAbstractMeshDataInfo']['_isActive'] = !0x1, this['_checkOcclusionQuery']()) return this; var _0xbca256 = this['_getInstancesRenderList'](_0xb820e9['_id']); if (_0xbca256['mustReturn']) return this; if (!this['_geometry'] || !this['_geometry']['getVertexBuffers']() || !this['_unIndexed'] && !this['_geometry']['getIndexBuffer']()) return this; this['_internalMeshDataInfo']['_onBeforeRenderObservable'] && this['_internalMeshDataInfo']['_onBeforeRenderObservable']['notifyObservers'](this); var _0x4b97df, _0x38e9de = _0x49d5b8['getEngine'](), _0x18f125 = _0xbca256['hardwareInstancedRendering'][_0xb820e9['_id']], _0xb392ad = this['_instanceDataStorage'], _0x1a4839 = _0xb820e9['getMaterial'](); if (!_0x1a4839) return this; if (!_0xb392ad['isFrozen'] || !this['_effectiveMaterial'] || this['_effectiveMaterial'] !== _0x1a4839) if (this['_effectiveMaterial'] = _0x1a4839, this['_effectiveMaterial']['_storeEffectOnSubMeshes']) { if (!this['_effectiveMaterial']['isReadyForSubMesh'](this, _0xb820e9, _0x18f125)) return this; } else if (!this['_effectiveMaterial']['isReady'](this, _0x18f125)) return this; _0x5c98dc && _0x38e9de['setAlphaMode'](this['_effectiveMaterial']['alphaMode']); for (var _0x414333 = 0x0, _0x3a8b82 = _0x49d5b8['_beforeRenderingMeshStage']; _0x414333 < _0x3a8b82['length']; _0x414333++) { _0x3a8b82[_0x414333]['action'](this, _0xb820e9, _0xbca256); } if (!(_0x4b97df = this['_effectiveMaterial']['_storeEffectOnSubMeshes'] ? _0xb820e9['effect'] : this['_effectiveMaterial']['getEffect']())) return this; var _0x5d3bfe, _0x733a92 = this['_effectiveMesh']; _0xb392ad['isFrozen'] ? _0x5d3bfe = _0xb392ad['sideOrientation'] : (null == (_0x5d3bfe = this['overrideMaterialSideOrientation']) && (_0x5d3bfe = this['_effectiveMaterial']['sideOrientation'], _0x733a92['_getWorldMatrixDeterminant']() < 0x0 && (_0x5d3bfe = _0x5d3bfe === _0x5df3c0['a']['ClockWiseSideOrientation'] ? _0x5df3c0['a']['CounterClockWiseSideOrientation'] : _0x5df3c0['a']['ClockWiseSideOrientation'])), _0xb392ad['sideOrientation'] = _0x5d3bfe); var _0x2da0bc = this['_effectiveMaterial']['_preBind'](_0x4b97df, _0x5d3bfe); this['_effectiveMaterial']['forceDepthWrite'] && _0x38e9de['setDepthWrite'](!0x0); var _0x4053df = _0x49d5b8['forcePointsCloud'] ? _0x5df3c0['a']['PointFillMode'] : _0x49d5b8['forceWireframe'] ? _0x5df3c0['a']['WireFrameFillMode'] : this['_effectiveMaterial']['fillMode']; this['_internalMeshDataInfo']['_onBeforeBindObservable'] && this['_internalMeshDataInfo']['_onBeforeBindObservable']['notifyObservers'](this), _0x18f125 || this['_bind'](_0xb820e9, _0x4b97df, _0x4053df); var _0x38220f = _0x733a92['getWorldMatrix'](); this['_effectiveMaterial']['_storeEffectOnSubMeshes'] ? this['_effectiveMaterial']['bindForSubMesh'](_0x38220f, this, _0xb820e9) : this['_effectiveMaterial']['bind'](_0x38220f, this), !this['_effectiveMaterial']['backFaceCulling'] && this['_effectiveMaterial']['separateCullingPass'] && (_0x38e9de['setState'](!0x0, this['_effectiveMaterial']['zOffset'], !0x1, !_0x2da0bc), this['_processRendering'](_0xb820e9, _0x4b97df, _0x4053df, _0xbca256, _0x18f125, this['_onBeforeDraw'], this['_effectiveMaterial']), _0x38e9de['setState'](!0x0, this['_effectiveMaterial']['zOffset'], !0x1, _0x2da0bc)), this['_processRendering'](_0xb820e9, _0x4b97df, _0x4053df, _0xbca256, _0x18f125, this['_onBeforeDraw'], this['_effectiveMaterial']), this['_effectiveMaterial']['unbind'](); for (var _0x2e0ed5 = 0x0, _0x147d4e = _0x49d5b8['_afterRenderingMeshStage']; _0x2e0ed5 < _0x147d4e['length']; _0x2e0ed5++) { _0x147d4e[_0x2e0ed5]['action'](this, _0xb820e9, _0xbca256); } return this['_internalMeshDataInfo']['_onAfterRenderObservable'] && this['_internalMeshDataInfo']['_onAfterRenderObservable']['notifyObservers'](this), this; } , _0x4dc7f5['prototype']['_onBeforeDraw'] = function(_0x2ca62f, _0x52a100, _0x2b19b9) { _0x2ca62f && _0x2b19b9 && _0x2b19b9['bindOnlyWorldMatrix'](_0x52a100); } , _0x4dc7f5['prototype']['cleanMatrixWeights'] = function() { this['isVerticesDataPresent'](_0x566195['b']['MatricesWeightsKind']) && (this['isVerticesDataPresent'](_0x566195['b']['MatricesWeightsExtraKind']) ? this['normalizeSkinWeightsAndExtra']() : this['normalizeSkinFourWeights']()); } , _0x4dc7f5['prototype']['normalizeSkinFourWeights'] = function() { for (var _0x286f77 = this['getVerticesData'](_0x566195['b']['MatricesWeightsKind']), _0x2248f5 = _0x286f77['length'], _0x12694c = 0x0; _0x12694c < _0x2248f5; _0x12694c += 0x4) { var _0x4fdef4 = _0x286f77[_0x12694c] + _0x286f77[_0x12694c + 0x1] + _0x286f77[_0x12694c + 0x2] + _0x286f77[_0x12694c + 0x3]; if (0x0 === _0x4fdef4) _0x286f77[_0x12694c] = 0x1; else { var _0x4b61ea = 0x1 / _0x4fdef4; _0x286f77[_0x12694c] *= _0x4b61ea, _0x286f77[_0x12694c + 0x1] *= _0x4b61ea, _0x286f77[_0x12694c + 0x2] *= _0x4b61ea, _0x286f77[_0x12694c + 0x3] *= _0x4b61ea; } } this['setVerticesData'](_0x566195['b']['MatricesWeightsKind'], _0x286f77); } , _0x4dc7f5['prototype']['normalizeSkinWeightsAndExtra'] = function() { for (var _0x10bcf2 = this['getVerticesData'](_0x566195['b']['MatricesWeightsExtraKind']), _0x3f0c4e = this['getVerticesData'](_0x566195['b']['MatricesWeightsKind']), _0x40b5bd = _0x3f0c4e['length'], _0x21d44d = 0x0; _0x21d44d < _0x40b5bd; _0x21d44d += 0x4) { var _0x396a72 = _0x3f0c4e[_0x21d44d] + _0x3f0c4e[_0x21d44d + 0x1] + _0x3f0c4e[_0x21d44d + 0x2] + _0x3f0c4e[_0x21d44d + 0x3]; if (0x0 === (_0x396a72 += _0x10bcf2[_0x21d44d] + _0x10bcf2[_0x21d44d + 0x1] + _0x10bcf2[_0x21d44d + 0x2] + _0x10bcf2[_0x21d44d + 0x3])) _0x3f0c4e[_0x21d44d] = 0x1; else { var _0x2fdd8c = 0x1 / _0x396a72; _0x3f0c4e[_0x21d44d] *= _0x2fdd8c, _0x3f0c4e[_0x21d44d + 0x1] *= _0x2fdd8c, _0x3f0c4e[_0x21d44d + 0x2] *= _0x2fdd8c, _0x3f0c4e[_0x21d44d + 0x3] *= _0x2fdd8c, _0x10bcf2[_0x21d44d] *= _0x2fdd8c, _0x10bcf2[_0x21d44d + 0x1] *= _0x2fdd8c, _0x10bcf2[_0x21d44d + 0x2] *= _0x2fdd8c, _0x10bcf2[_0x21d44d + 0x3] *= _0x2fdd8c; } } this['setVerticesData'](_0x566195['b']['MatricesWeightsKind'], _0x3f0c4e), this['setVerticesData'](_0x566195['b']['MatricesWeightsKind'], _0x10bcf2); } , _0x4dc7f5['prototype']['validateSkinning'] = function() { var _0x479620 = this['getVerticesData'](_0x566195['b']['MatricesWeightsExtraKind']) , _0x3ec51b = this['getVerticesData'](_0x566195['b']['MatricesWeightsKind']); if (null === _0x3ec51b || null == this['skeleton']) return { 'skinned': !0x1, 'valid': !0x0, 'report': 'not\x20skinned' }; for (var _0x5a964d = _0x3ec51b['length'], _0x50eb2e = 0x0, _0x4c38dd = 0x0, _0x25ef72 = 0x0, _0x13367e = 0x0, _0x10e2e0 = null === _0x479620 ? 0x4 : 0x8, _0x1ba016 = new Array(), _0x5c7f15 = 0x0; _0x5c7f15 <= _0x10e2e0; _0x5c7f15++) _0x1ba016[_0x5c7f15] = 0x0; for (_0x5c7f15 = 0x0; _0x5c7f15 < _0x5a964d; _0x5c7f15 += 0x4) { for (var _0x5a28de = _0x3ec51b[_0x5c7f15], _0x271901 = _0x5a28de, _0x4a6cc5 = 0x0 === _0x271901 ? 0x0 : 0x1, _0x2d0304 = 0x1; _0x2d0304 < _0x10e2e0; _0x2d0304++) { var _0x55761f = _0x2d0304 < 0x4 ? _0x3ec51b[_0x5c7f15 + _0x2d0304] : _0x479620[_0x5c7f15 + _0x2d0304 - 0x4]; _0x55761f > _0x5a28de && _0x50eb2e++, 0x0 !== _0x55761f && _0x4a6cc5++, _0x271901 += _0x55761f, _0x5a28de = _0x55761f; } if (_0x1ba016[_0x4a6cc5]++, _0x4a6cc5 > _0x25ef72 && (_0x25ef72 = _0x4a6cc5), 0x0 === _0x271901) _0x4c38dd++; else { var _0x458a7c = 0x1 / _0x271901 , _0x17bcfd = 0x0; for (_0x2d0304 = 0x0; _0x2d0304 < _0x10e2e0; _0x2d0304++) _0x17bcfd += _0x2d0304 < 0x4 ? Math['abs'](_0x3ec51b[_0x5c7f15 + _0x2d0304] - _0x3ec51b[_0x5c7f15 + _0x2d0304] * _0x458a7c) : Math['abs'](_0x479620[_0x5c7f15 + _0x2d0304 - 0x4] - _0x479620[_0x5c7f15 + _0x2d0304 - 0x4] * _0x458a7c); _0x17bcfd > 0.001 && _0x13367e++; } } var _0x3e26db = this['skeleton']['bones']['length'] , _0xde7f16 = this['getVerticesData'](_0x566195['b']['MatricesIndicesKind']) , _0x2b200b = this['getVerticesData'](_0x566195['b']['MatricesIndicesExtraKind']) , _0x14e50a = 0x0; for (_0x5c7f15 = 0x0; _0x5c7f15 < _0x5a964d; _0x5c7f15++) for (_0x2d0304 = 0x0; _0x2d0304 < _0x10e2e0; _0x2d0304++) { var _0x28cdbe = _0x2d0304 < 0x4 ? _0xde7f16[_0x2d0304] : _0x2b200b[_0x2d0304 - 0x4]; (_0x28cdbe >= _0x3e26db || _0x28cdbe < 0x0) && _0x14e50a++; } return { 'skinned': !0x0, 'valid': 0x0 === _0x4c38dd && 0x0 === _0x13367e && 0x0 === _0x14e50a, 'report': 'Number\x20of\x20Weights\x20=\x20' + _0x5a964d / 0x4 + '\x0aMaximum\x20influences\x20=\x20' + _0x25ef72 + '\x0aMissing\x20Weights\x20=\x20' + _0x4c38dd + '\x0aNot\x20Sorted\x20=\x20' + _0x50eb2e + '\x0aNot\x20Normalized\x20=\x20' + _0x13367e + '\x0aWeightCounts\x20=\x20[' + _0x1ba016 + ']\x0aNumber\x20of\x20bones\x20=\x20' + _0x3e26db + '\x0aBad\x20Bone\x20Indices\x20=\x20' + _0x14e50a }; } , _0x4dc7f5['prototype']['_checkDelayState'] = function() { var _0x3d507d = this['getScene'](); return this['_geometry'] ? this['_geometry']['load'](_0x3d507d) : this['delayLoadState'] === _0x11dda0['a']['DELAYLOADSTATE_NOTLOADED'] && (this['delayLoadState'] = _0x11dda0['a']['DELAYLOADSTATE_LOADING'], this['_queueLoad'](_0x3d507d)), this; } , _0x4dc7f5['prototype']['_queueLoad'] = function(_0x5c6a06) { var _0x5d92f4 = this; _0x5c6a06['_addPendingData'](this); var _0x5348ee = -0x1 !== this['delayLoadingFile']['indexOf']('.babylonbinarymeshdata'); return _0xf44b3e['h']['LoadFile'](this['delayLoadingFile'], function(_0x18b764) { _0x18b764 instanceof ArrayBuffer ? _0x5d92f4['_delayLoadingFunction'](_0x18b764, _0x5d92f4) : _0x5d92f4['_delayLoadingFunction'](JSON['parse'](_0x18b764), _0x5d92f4), _0x5d92f4['instances']['forEach'](function(_0x3ae863) { _0x3ae863['refreshBoundingInfo'](), _0x3ae863['_syncSubMeshes'](); }), _0x5d92f4['delayLoadState'] = _0x11dda0['a']['DELAYLOADSTATE_LOADED'], _0x5c6a06['_removePendingData'](_0x5d92f4); }, function() {}, _0x5c6a06['offlineProvider'], _0x5348ee), this; } , _0x4dc7f5['prototype']['isInFrustum'] = function(_0x4d3c84) { return this['delayLoadState'] !== _0x11dda0['a']['DELAYLOADSTATE_LOADING'] && (!!_0xeba31b['prototype']['isInFrustum']['call'](this, _0x4d3c84) && (this['_checkDelayState'](), !0x0)); } , _0x4dc7f5['prototype']['setMaterialByID'] = function(_0x342aa6) { var _0x167bd6, _0x1a8e62 = this['getScene']()['materials']; for (_0x167bd6 = _0x1a8e62['length'] - 0x1; _0x167bd6 > -0x1; _0x167bd6--) if (_0x1a8e62[_0x167bd6]['id'] === _0x342aa6) return this['material'] = _0x1a8e62[_0x167bd6], this; var _0x39380a = this['getScene']()['multiMaterials']; for (_0x167bd6 = _0x39380a['length'] - 0x1; _0x167bd6 > -0x1; _0x167bd6--) if (_0x39380a[_0x167bd6]['id'] === _0x342aa6) return this['material'] = _0x39380a[_0x167bd6], this; return this; } , _0x4dc7f5['prototype']['getAnimatables'] = function() { var _0xd47ec = new Array(); return this['material'] && _0xd47ec['push'](this['material']), this['skeleton'] && _0xd47ec['push'](this['skeleton']), _0xd47ec; } , _0x4dc7f5['prototype']['bakeTransformIntoVertices'] = function(_0x26f669) { if (!this['isVerticesDataPresent'](_0x566195['b']['PositionKind'])) return this; var _0x1a41ce = this['subMeshes']['splice'](0x0); this['_resetPointsArrayCache'](); var _0x154085, _0x3e1c43 = this['getVerticesData'](_0x566195['b']['PositionKind']), _0x5ebe86 = new Array(); for (_0x154085 = 0x0; _0x154085 < _0x3e1c43['length']; _0x154085 += 0x3) _0x564b55['x']['TransformCoordinates'](_0x564b55['x']['FromArray'](_0x3e1c43, _0x154085), _0x26f669)['toArray'](_0x5ebe86, _0x154085); if (this['setVerticesData'](_0x566195['b']['PositionKind'], _0x5ebe86, this['getVertexBuffer'](_0x566195['b']['PositionKind'])['isUpdatable']()), this['isVerticesDataPresent'](_0x566195['b']['NormalKind'])) { for (_0x3e1c43 = this['getVerticesData'](_0x566195['b']['NormalKind']), _0x5ebe86 = [], _0x154085 = 0x0; _0x154085 < _0x3e1c43['length']; _0x154085 += 0x3) _0x564b55['x']['TransformNormal'](_0x564b55['x']['FromArray'](_0x3e1c43, _0x154085), _0x26f669)['normalize']()['toArray'](_0x5ebe86, _0x154085); this['setVerticesData'](_0x566195['b']['NormalKind'], _0x5ebe86, this['getVertexBuffer'](_0x566195['b']['NormalKind'])['isUpdatable']()); } return _0x26f669['m'][0x0] * _0x26f669['m'][0x5] * _0x26f669['m'][0xa] < 0x0 && this['flipFaces'](), this['releaseSubMeshes'](), this['subMeshes'] = _0x1a41ce, this; } , _0x4dc7f5['prototype']['bakeCurrentTransformIntoVertices'] = function() { return this['bakeTransformIntoVertices'](this['computeWorldMatrix'](!0x0)), this['scaling']['copyFromFloats'](0x1, 0x1, 0x1), this['position']['copyFromFloats'](0x0, 0x0, 0x0), this['rotation']['copyFromFloats'](0x0, 0x0, 0x0), this['rotationQuaternion'] && (this['rotationQuaternion'] = _0x564b55['q']['Identity']()), this['_worldMatrix'] = _0x564b55['j']['Identity'](), this; } , Object['defineProperty'](_0x4dc7f5['prototype'], '_positions', { 'get': function() { return this['_geometry'] ? this['_geometry']['_positions'] : null; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x4dc7f5['prototype']['_resetPointsArrayCache'] = function() { return this['_geometry'] && this['_geometry']['_resetPointsArrayCache'](), this; } , _0x4dc7f5['prototype']['_generatePointsArray'] = function() { return !!this['_geometry'] && this['_geometry']['_generatePointsArray'](); } , _0x4dc7f5['prototype']['clone'] = function(_0x50af6c, _0x3164bc, _0x134602, _0x253fea) { return void 0x0 === _0x50af6c && (_0x50af6c = ''), void 0x0 === _0x253fea && (_0x253fea = !0x0), new _0x4dc7f5(_0x50af6c,this['getScene'](),_0x3164bc,this,_0x134602,_0x253fea); } , _0x4dc7f5['prototype']['dispose'] = function(_0x4d1be9, _0x17c84e) { void 0x0 === _0x17c84e && (_0x17c84e = !0x1), this['morphTargetManager'] = null, this['_geometry'] && this['_geometry']['releaseForMesh'](this, !0x0); var _0x5adc61 = this['_internalMeshDataInfo']; if (_0x5adc61['_onBeforeDrawObservable'] && _0x5adc61['_onBeforeDrawObservable']['clear'](), _0x5adc61['_onBeforeBindObservable'] && _0x5adc61['_onBeforeBindObservable']['clear'](), _0x5adc61['_onBeforeRenderObservable'] && _0x5adc61['_onBeforeRenderObservable']['clear'](), _0x5adc61['_onAfterRenderObservable'] && _0x5adc61['_onAfterRenderObservable']['clear'](), this['_scene']['useClonedMeshhMap']) { if (_0x5adc61['meshMap']) for (var _0x22cd25 in _0x5adc61['meshMap']) { (_0x58f109 = _0x5adc61['meshMap'][_0x22cd25]) && (_0x58f109['_internalMeshDataInfo']['_source'] = null, _0x5adc61['meshMap'][_0x22cd25] = void 0x0); } _0x5adc61['_source'] && _0x5adc61['_source']['_internalMeshDataInfo']['meshMap'] && (_0x5adc61['_source']['_internalMeshDataInfo']['meshMap'][this['uniqueId']] = void 0x0); } else for (var _0x345f97 = 0x0, _0x19a1a5 = this['getScene']()['meshes']; _0x345f97 < _0x19a1a5['length']; _0x345f97++) { var _0x58f109; (_0x58f109 = _0x19a1a5[_0x345f97])['_internalMeshDataInfo'] && _0x58f109['_internalMeshDataInfo']['_source'] && _0x58f109['_internalMeshDataInfo']['_source'] === this && (_0x58f109['_internalMeshDataInfo']['_source'] = null); } for (_0x5adc61['_source'] = null, this['_instanceDataStorage']['instancesBuffer'] && (this['_instanceDataStorage']['instancesBuffer']['dispose'](), this['_instanceDataStorage']['instancesBuffer'] = null); this['instances']['length']; ) this['instances'][0x0]['dispose'](); _0xeba31b['prototype']['dispose']['call'](this, _0x4d1be9, _0x17c84e); } , _0x4dc7f5['prototype']['applyDisplacementMap'] = function(_0x5b452c, _0x4529fc, _0x412851, _0x37fb20, _0x54a4ee, _0x352226, _0x495aa4) { var _0x51e3ce = this; void 0x0 === _0x495aa4 && (_0x495aa4 = !0x1); var _0x5b4b53 = this['getScene'](); return _0xf44b3e['h']['LoadImage'](_0x5b452c, function(_0x7782bf) { var _0x5198ba = document['createElement']('canvas') , _0x2c0ca0 = _0x5198ba['getContext']('2d') , _0x39fa50 = _0x7782bf['width'] , _0x557bf7 = _0x7782bf['height']; _0x5198ba['width'] = _0x39fa50, _0x5198ba['height'] = _0x557bf7, _0x2c0ca0['drawImage'](_0x7782bf, 0x0, 0x0); var _0x4945ca = _0x2c0ca0['getImageData'](0x0, 0x0, _0x39fa50, _0x557bf7)['data']; _0x51e3ce['applyDisplacementMapFromBuffer'](_0x4945ca, _0x39fa50, _0x557bf7, _0x4529fc, _0x412851, _0x54a4ee, _0x352226, _0x495aa4), _0x37fb20 && _0x37fb20(_0x51e3ce); }, function() {}, _0x5b4b53['offlineProvider']), this; } , _0x4dc7f5['prototype']['applyDisplacementMapFromBuffer'] = function(_0x85493a, _0x1c5988, _0x8c27d5, _0x462265, _0x1641df, _0xdc5f3c, _0xc889ad, _0x315540) { if (void 0x0 === _0x315540 && (_0x315540 = !0x1), !this['isVerticesDataPresent'](_0x566195['b']['PositionKind']) || !this['isVerticesDataPresent'](_0x566195['b']['NormalKind']) || !this['isVerticesDataPresent'](_0x566195['b']['UVKind'])) return _0x651ae7['a']['Warn']('Cannot\x20call\x20applyDisplacementMap:\x20Given\x20mesh\x20is\x20not\x20complete.\x20Position,\x20Normal\x20or\x20UV\x20are\x20missing'), this; var _0x33f28b = this['getVerticesData'](_0x566195['b']['PositionKind'], !0x0, !0x0) , _0x443b9b = this['getVerticesData'](_0x566195['b']['NormalKind']) , _0x568a23 = this['getVerticesData'](_0x566195['b']['UVKind']) , _0x56d4a8 = _0x564b55['x']['Zero']() , _0x2148e0 = _0x564b55['x']['Zero']() , _0xf9c999 = _0x564b55['w']['Zero'](); _0xdc5f3c = _0xdc5f3c || _0x564b55['w']['Zero'](), _0xc889ad = _0xc889ad || new _0x564b55['w'](0x1,0x1); for (var _0xe0757a = 0x0; _0xe0757a < _0x33f28b['length']; _0xe0757a += 0x3) { _0x564b55['x']['FromArrayToRef'](_0x33f28b, _0xe0757a, _0x56d4a8), _0x564b55['x']['FromArrayToRef'](_0x443b9b, _0xe0757a, _0x2148e0), _0x564b55['w']['FromArrayToRef'](_0x568a23, _0xe0757a / 0x3 * 0x2, _0xf9c999); var _0x15c0f8 = 0x4 * ((Math['abs'](_0xf9c999['x'] * _0xc889ad['x'] + _0xdc5f3c['x']) * _0x1c5988 % _0x1c5988 | 0x0) + (Math['abs'](_0xf9c999['y'] * _0xc889ad['y'] + _0xdc5f3c['y']) * _0x8c27d5 % _0x8c27d5 | 0x0) * _0x1c5988) , _0x378941 = 0.3 * (_0x85493a[_0x15c0f8] / 0xff) + 0.59 * (_0x85493a[_0x15c0f8 + 0x1] / 0xff) + 0.11 * (_0x85493a[_0x15c0f8 + 0x2] / 0xff); _0x2148e0['normalize'](), _0x2148e0['scaleInPlace'](_0x462265 + (_0x1641df - _0x462265) * _0x378941), (_0x56d4a8 = _0x56d4a8['add'](_0x2148e0))['toArray'](_0x33f28b, _0xe0757a); } return _0x3321ce['a']['ComputeNormals'](_0x33f28b, this['getIndices'](), _0x443b9b), _0x315540 ? (this['setVerticesData'](_0x566195['b']['PositionKind'], _0x33f28b), this['setVerticesData'](_0x566195['b']['NormalKind'], _0x443b9b)) : (this['updateVerticesData'](_0x566195['b']['PositionKind'], _0x33f28b), this['updateVerticesData'](_0x566195['b']['NormalKind'], _0x443b9b)), this; } , _0x4dc7f5['prototype']['convertToFlatShadedMesh'] = function() { var _0x4c0b51, _0x24c704, _0x3f2e54 = this['getVerticesDataKinds'](), _0x49d4aa = {}, _0x1ccf1d = {}, _0x517677 = {}, _0x440c8d = !0x1; for (_0x4c0b51 = 0x0; _0x4c0b51 < _0x3f2e54['length']; _0x4c0b51++) { _0x24c704 = _0x3f2e54[_0x4c0b51]; var _0x1366e4 = this['getVertexBuffer'](_0x24c704); _0x24c704 !== _0x566195['b']['NormalKind'] ? (_0x49d4aa[_0x24c704] = _0x1366e4, _0x1ccf1d[_0x24c704] = _0x49d4aa[_0x24c704]['getData'](), _0x517677[_0x24c704] = []) : (_0x440c8d = _0x1366e4['isUpdatable'](), _0x3f2e54['splice'](_0x4c0b51, 0x1), _0x4c0b51--); } var _0x21ac9c, _0x30433e = this['subMeshes']['slice'](0x0), _0x23e5db = this['getIndices'](), _0x830dca = this['getTotalIndices'](); for (_0x21ac9c = 0x0; _0x21ac9c < _0x830dca; _0x21ac9c++) { var _0x4e6b9b = _0x23e5db[_0x21ac9c]; for (_0x4c0b51 = 0x0; _0x4c0b51 < _0x3f2e54['length']; _0x4c0b51++) for (var _0x5938bf = _0x49d4aa[_0x24c704 = _0x3f2e54[_0x4c0b51]]['getStrideSize'](), _0x4f301b = 0x0; _0x4f301b < _0x5938bf; _0x4f301b++) _0x517677[_0x24c704]['push'](_0x1ccf1d[_0x24c704][_0x4e6b9b * _0x5938bf + _0x4f301b]); } var _0x3e2500 = [] , _0xbabf2b = _0x517677[_0x566195['b']['PositionKind']]; for (_0x21ac9c = 0x0; _0x21ac9c < _0x830dca; _0x21ac9c += 0x3) { _0x23e5db[_0x21ac9c] = _0x21ac9c, _0x23e5db[_0x21ac9c + 0x1] = _0x21ac9c + 0x1, _0x23e5db[_0x21ac9c + 0x2] = _0x21ac9c + 0x2; for (var _0x397ef5 = _0x564b55['x']['FromArray'](_0xbabf2b, 0x3 * _0x21ac9c), _0x384428 = _0x564b55['x']['FromArray'](_0xbabf2b, 0x3 * (_0x21ac9c + 0x1)), _0x3fdd72 = _0x564b55['x']['FromArray'](_0xbabf2b, 0x3 * (_0x21ac9c + 0x2)), _0x4f009f = _0x397ef5['subtract'](_0x384428), _0x5038ed = _0x3fdd72['subtract'](_0x384428), _0x56caa0 = _0x564b55['x']['Normalize'](_0x564b55['x']['Cross'](_0x4f009f, _0x5038ed)), _0x1db84c = 0x0; _0x1db84c < 0x3; _0x1db84c++) _0x3e2500['push'](_0x56caa0['x']), _0x3e2500['push'](_0x56caa0['y']), _0x3e2500['push'](_0x56caa0['z']); } for (this['setIndices'](_0x23e5db), this['setVerticesData'](_0x566195['b']['NormalKind'], _0x3e2500, _0x440c8d), _0x4c0b51 = 0x0; _0x4c0b51 < _0x3f2e54['length']; _0x4c0b51++) _0x24c704 = _0x3f2e54[_0x4c0b51], this['setVerticesData'](_0x24c704, _0x517677[_0x24c704], _0x49d4aa[_0x24c704]['isUpdatable']()); this['releaseSubMeshes'](); for (var _0x1e73ff = 0x0; _0x1e73ff < _0x30433e['length']; _0x1e73ff++) { var _0xa68f2c = _0x30433e[_0x1e73ff]; _0x1d85ce['b']['AddToMesh'](_0xa68f2c['materialIndex'], _0xa68f2c['indexStart'], _0xa68f2c['indexCount'], _0xa68f2c['indexStart'], _0xa68f2c['indexCount'], this); } return this['synchronizeInstances'](), this; } , _0x4dc7f5['prototype']['convertToUnIndexedMesh'] = function() { var _0xebd37f, _0x1faa30, _0x58dcd5 = this['getVerticesDataKinds'](), _0x5e51d5 = {}, _0x39df6d = {}, _0x87a9ac = {}; for (_0xebd37f = 0x0; _0xebd37f < _0x58dcd5['length']; _0xebd37f++) { _0x1faa30 = _0x58dcd5[_0xebd37f]; var _0xa5f44f = this['getVertexBuffer'](_0x1faa30); _0x5e51d5[_0x1faa30] = _0xa5f44f, _0x39df6d[_0x1faa30] = _0x5e51d5[_0x1faa30]['getData'](), _0x87a9ac[_0x1faa30] = []; } var _0xdd6dc2, _0x19799 = this['subMeshes']['slice'](0x0), _0x1453fe = this['getIndices'](), _0x22c688 = this['getTotalIndices'](); for (_0xdd6dc2 = 0x0; _0xdd6dc2 < _0x22c688; _0xdd6dc2++) { var _0x4ba22e = _0x1453fe[_0xdd6dc2]; for (_0xebd37f = 0x0; _0xebd37f < _0x58dcd5['length']; _0xebd37f++) for (var _0x6ec60b = _0x5e51d5[_0x1faa30 = _0x58dcd5[_0xebd37f]]['getStrideSize'](), _0x2007c7 = 0x0; _0x2007c7 < _0x6ec60b; _0x2007c7++) _0x87a9ac[_0x1faa30]['push'](_0x39df6d[_0x1faa30][_0x4ba22e * _0x6ec60b + _0x2007c7]); } for (_0xdd6dc2 = 0x0; _0xdd6dc2 < _0x22c688; _0xdd6dc2 += 0x3) _0x1453fe[_0xdd6dc2] = _0xdd6dc2, _0x1453fe[_0xdd6dc2 + 0x1] = _0xdd6dc2 + 0x1, _0x1453fe[_0xdd6dc2 + 0x2] = _0xdd6dc2 + 0x2; for (this['setIndices'](_0x1453fe), _0xebd37f = 0x0; _0xebd37f < _0x58dcd5['length']; _0xebd37f++) _0x1faa30 = _0x58dcd5[_0xebd37f], this['setVerticesData'](_0x1faa30, _0x87a9ac[_0x1faa30], _0x5e51d5[_0x1faa30]['isUpdatable']()); this['releaseSubMeshes'](); for (var _0x4e230a = 0x0; _0x4e230a < _0x19799['length']; _0x4e230a++) { var _0x3039af = _0x19799[_0x4e230a]; _0x1d85ce['b']['AddToMesh'](_0x3039af['materialIndex'], _0x3039af['indexStart'], _0x3039af['indexCount'], _0x3039af['indexStart'], _0x3039af['indexCount'], this); } return this['_unIndexed'] = !0x0, this['synchronizeInstances'](), this; } , _0x4dc7f5['prototype']['flipFaces'] = function(_0x7d2a86) { void 0x0 === _0x7d2a86 && (_0x7d2a86 = !0x1); var _0x1c8696, _0x358402, _0x112873 = _0x3321ce['a']['ExtractFromMesh'](this); if (_0x7d2a86 && this['isVerticesDataPresent'](_0x566195['b']['NormalKind']) && _0x112873['normals']) for (_0x1c8696 = 0x0; _0x1c8696 < _0x112873['normals']['length']; _0x1c8696++) _0x112873['normals'][_0x1c8696] *= -0x1; if (_0x112873['indices']) for (_0x1c8696 = 0x0; _0x1c8696 < _0x112873['indices']['length']; _0x1c8696 += 0x3) _0x358402 = _0x112873['indices'][_0x1c8696 + 0x1], _0x112873['indices'][_0x1c8696 + 0x1] = _0x112873['indices'][_0x1c8696 + 0x2], _0x112873['indices'][_0x1c8696 + 0x2] = _0x358402; return _0x112873['applyToMesh'](this), this; } , _0x4dc7f5['prototype']['increaseVertices'] = function(_0x3cc217) { var _0x4f462f = _0x3321ce['a']['ExtractFromMesh'](this) , _0xabe72e = _0x4f462f['uvs'] , _0x1cb2a2 = _0x4f462f['indices'] , _0x54ef6d = _0x4f462f['positions'] , _0x4c4999 = _0x4f462f['normals']; if (null === _0x1cb2a2 || null === _0x54ef6d || null === _0x4c4999 || null === _0xabe72e) _0x651ae7['a']['Warn']('VertexData\x20contains\x20null\x20entries'); else { for (var _0x1d5bfb, _0x2ea342, _0x4da86d = _0x3cc217 + 0x1, _0x4310a7 = new Array(), _0x4026b4 = 0x0; _0x4026b4 < _0x4da86d + 0x1; _0x4026b4++) _0x4310a7[_0x4026b4] = new Array(); var _0x3e76f4, _0x2b964f = new _0x564b55['x'](0x0,0x0,0x0), _0x295a6e = new _0x564b55['x'](0x0,0x0,0x0), _0xfc106c = new _0x564b55['w'](0x0,0x0), _0x418ddc = new Array(), _0x2db761 = new Array(), _0xf035ea = new Array(), _0x337823 = _0x54ef6d['length'], _0x3c64ca = _0xabe72e['length']; for (_0x4026b4 = 0x0; _0x4026b4 < _0x1cb2a2['length']; _0x4026b4 += 0x3) { _0x2db761[0x0] = _0x1cb2a2[_0x4026b4], _0x2db761[0x1] = _0x1cb2a2[_0x4026b4 + 0x1], _0x2db761[0x2] = _0x1cb2a2[_0x4026b4 + 0x2]; for (var _0x484c85 = 0x0; _0x484c85 < 0x3; _0x484c85++) if (_0x1d5bfb = _0x2db761[_0x484c85], _0x2ea342 = _0x2db761[(_0x484c85 + 0x1) % 0x3], void 0x0 === _0xf035ea[_0x1d5bfb] && void 0x0 === _0xf035ea[_0x2ea342] ? (_0xf035ea[_0x1d5bfb] = new Array(), _0xf035ea[_0x2ea342] = new Array()) : (void 0x0 === _0xf035ea[_0x1d5bfb] && (_0xf035ea[_0x1d5bfb] = new Array()), void 0x0 === _0xf035ea[_0x2ea342] && (_0xf035ea[_0x2ea342] = new Array())), void 0x0 === _0xf035ea[_0x1d5bfb][_0x2ea342] && void 0x0 === _0xf035ea[_0x2ea342][_0x1d5bfb]) { _0xf035ea[_0x1d5bfb][_0x2ea342] = [], _0x2b964f['x'] = (_0x54ef6d[0x3 * _0x2ea342] - _0x54ef6d[0x3 * _0x1d5bfb]) / _0x4da86d, _0x2b964f['y'] = (_0x54ef6d[0x3 * _0x2ea342 + 0x1] - _0x54ef6d[0x3 * _0x1d5bfb + 0x1]) / _0x4da86d, _0x2b964f['z'] = (_0x54ef6d[0x3 * _0x2ea342 + 0x2] - _0x54ef6d[0x3 * _0x1d5bfb + 0x2]) / _0x4da86d, _0x295a6e['x'] = (_0x4c4999[0x3 * _0x2ea342] - _0x4c4999[0x3 * _0x1d5bfb]) / _0x4da86d, _0x295a6e['y'] = (_0x4c4999[0x3 * _0x2ea342 + 0x1] - _0x4c4999[0x3 * _0x1d5bfb + 0x1]) / _0x4da86d, _0x295a6e['z'] = (_0x4c4999[0x3 * _0x2ea342 + 0x2] - _0x4c4999[0x3 * _0x1d5bfb + 0x2]) / _0x4da86d, _0xfc106c['x'] = (_0xabe72e[0x2 * _0x2ea342] - _0xabe72e[0x2 * _0x1d5bfb]) / _0x4da86d, _0xfc106c['y'] = (_0xabe72e[0x2 * _0x2ea342 + 0x1] - _0xabe72e[0x2 * _0x1d5bfb + 0x1]) / _0x4da86d, _0xf035ea[_0x1d5bfb][_0x2ea342]['push'](_0x1d5bfb); for (var _0x1e06f4 = 0x1; _0x1e06f4 < _0x4da86d; _0x1e06f4++) _0xf035ea[_0x1d5bfb][_0x2ea342]['push'](_0x54ef6d['length'] / 0x3), _0x54ef6d[_0x337823] = _0x54ef6d[0x3 * _0x1d5bfb] + _0x1e06f4 * _0x2b964f['x'], _0x4c4999[_0x337823++] = _0x4c4999[0x3 * _0x1d5bfb] + _0x1e06f4 * _0x295a6e['x'], _0x54ef6d[_0x337823] = _0x54ef6d[0x3 * _0x1d5bfb + 0x1] + _0x1e06f4 * _0x2b964f['y'], _0x4c4999[_0x337823++] = _0x4c4999[0x3 * _0x1d5bfb + 0x1] + _0x1e06f4 * _0x295a6e['y'], _0x54ef6d[_0x337823] = _0x54ef6d[0x3 * _0x1d5bfb + 0x2] + _0x1e06f4 * _0x2b964f['z'], _0x4c4999[_0x337823++] = _0x4c4999[0x3 * _0x1d5bfb + 0x2] + _0x1e06f4 * _0x295a6e['z'], _0xabe72e[_0x3c64ca++] = _0xabe72e[0x2 * _0x1d5bfb] + _0x1e06f4 * _0xfc106c['x'], _0xabe72e[_0x3c64ca++] = _0xabe72e[0x2 * _0x1d5bfb + 0x1] + _0x1e06f4 * _0xfc106c['y']; _0xf035ea[_0x1d5bfb][_0x2ea342]['push'](_0x2ea342), _0xf035ea[_0x2ea342][_0x1d5bfb] = new Array(), _0x3e76f4 = _0xf035ea[_0x1d5bfb][_0x2ea342]['length']; for (var _0x3f0d8c = 0x0; _0x3f0d8c < _0x3e76f4; _0x3f0d8c++) _0xf035ea[_0x2ea342][_0x1d5bfb][_0x3f0d8c] = _0xf035ea[_0x1d5bfb][_0x2ea342][_0x3e76f4 - 0x1 - _0x3f0d8c]; } _0x4310a7[0x0][0x0] = _0x1cb2a2[_0x4026b4], _0x4310a7[0x1][0x0] = _0xf035ea[_0x1cb2a2[_0x4026b4]][_0x1cb2a2[_0x4026b4 + 0x1]][0x1], _0x4310a7[0x1][0x1] = _0xf035ea[_0x1cb2a2[_0x4026b4]][_0x1cb2a2[_0x4026b4 + 0x2]][0x1]; for (_0x1e06f4 = 0x2; _0x1e06f4 < _0x4da86d; _0x1e06f4++) { _0x4310a7[_0x1e06f4][0x0] = _0xf035ea[_0x1cb2a2[_0x4026b4]][_0x1cb2a2[_0x4026b4 + 0x1]][_0x1e06f4], _0x4310a7[_0x1e06f4][_0x1e06f4] = _0xf035ea[_0x1cb2a2[_0x4026b4]][_0x1cb2a2[_0x4026b4 + 0x2]][_0x1e06f4], _0x2b964f['x'] = (_0x54ef6d[0x3 * _0x4310a7[_0x1e06f4][_0x1e06f4]] - _0x54ef6d[0x3 * _0x4310a7[_0x1e06f4][0x0]]) / _0x1e06f4, _0x2b964f['y'] = (_0x54ef6d[0x3 * _0x4310a7[_0x1e06f4][_0x1e06f4] + 0x1] - _0x54ef6d[0x3 * _0x4310a7[_0x1e06f4][0x0] + 0x1]) / _0x1e06f4, _0x2b964f['z'] = (_0x54ef6d[0x3 * _0x4310a7[_0x1e06f4][_0x1e06f4] + 0x2] - _0x54ef6d[0x3 * _0x4310a7[_0x1e06f4][0x0] + 0x2]) / _0x1e06f4, _0x295a6e['x'] = (_0x4c4999[0x3 * _0x4310a7[_0x1e06f4][_0x1e06f4]] - _0x4c4999[0x3 * _0x4310a7[_0x1e06f4][0x0]]) / _0x1e06f4, _0x295a6e['y'] = (_0x4c4999[0x3 * _0x4310a7[_0x1e06f4][_0x1e06f4] + 0x1] - _0x4c4999[0x3 * _0x4310a7[_0x1e06f4][0x0] + 0x1]) / _0x1e06f4, _0x295a6e['z'] = (_0x4c4999[0x3 * _0x4310a7[_0x1e06f4][_0x1e06f4] + 0x2] - _0x4c4999[0x3 * _0x4310a7[_0x1e06f4][0x0] + 0x2]) / _0x1e06f4, _0xfc106c['x'] = (_0xabe72e[0x2 * _0x4310a7[_0x1e06f4][_0x1e06f4]] - _0xabe72e[0x2 * _0x4310a7[_0x1e06f4][0x0]]) / _0x1e06f4, _0xfc106c['y'] = (_0xabe72e[0x2 * _0x4310a7[_0x1e06f4][_0x1e06f4] + 0x1] - _0xabe72e[0x2 * _0x4310a7[_0x1e06f4][0x0] + 0x1]) / _0x1e06f4; for (_0x484c85 = 0x1; _0x484c85 < _0x1e06f4; _0x484c85++) _0x4310a7[_0x1e06f4][_0x484c85] = _0x54ef6d['length'] / 0x3, _0x54ef6d[_0x337823] = _0x54ef6d[0x3 * _0x4310a7[_0x1e06f4][0x0]] + _0x484c85 * _0x2b964f['x'], _0x4c4999[_0x337823++] = _0x4c4999[0x3 * _0x4310a7[_0x1e06f4][0x0]] + _0x484c85 * _0x295a6e['x'], _0x54ef6d[_0x337823] = _0x54ef6d[0x3 * _0x4310a7[_0x1e06f4][0x0] + 0x1] + _0x484c85 * _0x2b964f['y'], _0x4c4999[_0x337823++] = _0x4c4999[0x3 * _0x4310a7[_0x1e06f4][0x0] + 0x1] + _0x484c85 * _0x295a6e['y'], _0x54ef6d[_0x337823] = _0x54ef6d[0x3 * _0x4310a7[_0x1e06f4][0x0] + 0x2] + _0x484c85 * _0x2b964f['z'], _0x4c4999[_0x337823++] = _0x4c4999[0x3 * _0x4310a7[_0x1e06f4][0x0] + 0x2] + _0x484c85 * _0x295a6e['z'], _0xabe72e[_0x3c64ca++] = _0xabe72e[0x2 * _0x4310a7[_0x1e06f4][0x0]] + _0x484c85 * _0xfc106c['x'], _0xabe72e[_0x3c64ca++] = _0xabe72e[0x2 * _0x4310a7[_0x1e06f4][0x0] + 0x1] + _0x484c85 * _0xfc106c['y']; } _0x4310a7[_0x4da86d] = _0xf035ea[_0x1cb2a2[_0x4026b4 + 0x1]][_0x1cb2a2[_0x4026b4 + 0x2]], _0x418ddc['push'](_0x4310a7[0x0][0x0], _0x4310a7[0x1][0x0], _0x4310a7[0x1][0x1]); for (_0x1e06f4 = 0x1; _0x1e06f4 < _0x4da86d; _0x1e06f4++) { for (_0x484c85 = 0x0; _0x484c85 < _0x1e06f4; _0x484c85++) _0x418ddc['push'](_0x4310a7[_0x1e06f4][_0x484c85], _0x4310a7[_0x1e06f4 + 0x1][_0x484c85], _0x4310a7[_0x1e06f4 + 0x1][_0x484c85 + 0x1]), _0x418ddc['push'](_0x4310a7[_0x1e06f4][_0x484c85], _0x4310a7[_0x1e06f4 + 0x1][_0x484c85 + 0x1], _0x4310a7[_0x1e06f4][_0x484c85 + 0x1]); _0x418ddc['push'](_0x4310a7[_0x1e06f4][_0x484c85], _0x4310a7[_0x1e06f4 + 0x1][_0x484c85], _0x4310a7[_0x1e06f4 + 0x1][_0x484c85 + 0x1]); } } _0x4f462f['indices'] = _0x418ddc, _0x4f462f['applyToMesh'](this); } } , _0x4dc7f5['prototype']['forceSharedVertices'] = function() { var _0x5267d5 = _0x3321ce['a']['ExtractFromMesh'](this) , _0x4098e1 = _0x5267d5['uvs'] , _0x26a884 = _0x5267d5['indices'] , _0x5401c3 = _0x5267d5['positions'] , _0x204bf3 = _0x5267d5['normals']; if (null === _0x26a884 || null === _0x5401c3 || null === _0x204bf3 || null === _0x4098e1) _0x651ae7['a']['Warn']('VertexData\x20contains\x20null\x20entries'); else { for (var _0x2b6520, _0x2452ec, _0x1b3a1b = new Array(), _0x18bbdd = new Array(), _0x1caa9d = new Array(), _0x1f16a9 = new Array(), _0x53c04c = 0x0, _0xebb03a = new Array(), _0x13c93 = 0x0; _0x13c93 < _0x26a884['length']; _0x13c93 += 0x3) { _0x2452ec = [_0x26a884[_0x13c93], _0x26a884[_0x13c93 + 0x1], _0x26a884[_0x13c93 + 0x2]], _0x1f16a9 = new Array(); for (var _0x278341 = 0x0; _0x278341 < 0x3; _0x278341++) { _0x1f16a9[_0x278341] = ''; for (var _0x4fab06 = 0x0; _0x4fab06 < 0x3; _0x4fab06++) Math['abs'](_0x5401c3[0x3 * _0x2452ec[_0x278341] + _0x4fab06]) < 1e-8 && (_0x5401c3[0x3 * _0x2452ec[_0x278341] + _0x4fab06] = 0x0), _0x1f16a9[_0x278341] += _0x5401c3[0x3 * _0x2452ec[_0x278341] + _0x4fab06] + '|'; _0x1f16a9[_0x278341] = _0x1f16a9[_0x278341]['slice'](0x0, -0x1); } if (_0x1f16a9[0x0] != _0x1f16a9[0x1] && _0x1f16a9[0x0] != _0x1f16a9[0x2] && _0x1f16a9[0x1] != _0x1f16a9[0x2]) for (_0x278341 = 0x0; _0x278341 < 0x3; _0x278341++) { if ((_0x2b6520 = _0xebb03a['indexOf'](_0x1f16a9[_0x278341])) < 0x0) { _0xebb03a['push'](_0x1f16a9[_0x278341]), _0x2b6520 = _0x53c04c++; for (_0x4fab06 = 0x0; _0x4fab06 < 0x3; _0x4fab06++) _0x1b3a1b['push'](_0x5401c3[0x3 * _0x2452ec[_0x278341] + _0x4fab06]); for (_0x4fab06 = 0x0; _0x4fab06 < 0x2; _0x4fab06++) _0x1caa9d['push'](_0x4098e1[0x2 * _0x2452ec[_0x278341] + _0x4fab06]); } _0x18bbdd['push'](_0x2b6520); } } var _0x11653c = new Array(); _0x3321ce['a']['ComputeNormals'](_0x1b3a1b, _0x18bbdd, _0x11653c), _0x5267d5['positions'] = _0x1b3a1b, _0x5267d5['indices'] = _0x18bbdd, _0x5267d5['normals'] = _0x11653c, _0x5267d5['uvs'] = _0x1caa9d, _0x5267d5['applyToMesh'](this); } } , _0x4dc7f5['_instancedMeshFactory'] = function(_0x392ce6, _0x446a4e) { throw _0x38b7f6['a']['WarnImport']('InstancedMesh'); } , _0x4dc7f5['_PhysicsImpostorParser'] = function(_0x37fe10, _0x609051, _0x4db491) { throw _0x38b7f6['a']['WarnImport']('PhysicsImpostor'); } , _0x4dc7f5['prototype']['createInstance'] = function(_0x40e6e1) { return _0x4dc7f5['_instancedMeshFactory'](_0x40e6e1, this); } , _0x4dc7f5['prototype']['synchronizeInstances'] = function() { for (var _0x54b05d = 0x0; _0x54b05d < this['instances']['length']; _0x54b05d++) { this['instances'][_0x54b05d]['_syncSubMeshes'](); } return this; } , _0x4dc7f5['prototype']['optimizeIndices'] = function(_0x51b7da) { var _0x265a4d = this , _0x456fce = this['getIndices']() , _0x42674c = this['getVerticesData'](_0x566195['b']['PositionKind']); if (!_0x42674c || !_0x456fce) return this; for (var _0x30a59e = new Array(), _0x988cd8 = 0x0; _0x988cd8 < _0x42674c['length']; _0x988cd8 += 0x3) _0x30a59e['push'](_0x564b55['x']['FromArray'](_0x42674c, _0x988cd8)); var _0x47d130 = new Array(); return _0xf44b3e['a']['SyncAsyncForLoop'](_0x30a59e['length'], 0x28, function(_0x595df7) { for (var _0x12b9b7 = _0x30a59e['length'] - 0x1 - _0x595df7, _0x2d605c = _0x30a59e[_0x12b9b7], _0x50e1d1 = 0x0; _0x50e1d1 < _0x12b9b7; ++_0x50e1d1) { var _0x4d5421 = _0x30a59e[_0x50e1d1]; if (_0x2d605c['equals'](_0x4d5421)) { _0x47d130[_0x12b9b7] = _0x50e1d1; break; } } }, function() { for (var _0x5c7d58 = 0x0; _0x5c7d58 < _0x456fce['length']; ++_0x5c7d58) _0x456fce[_0x5c7d58] = _0x47d130[_0x456fce[_0x5c7d58]] || _0x456fce[_0x5c7d58]; var _0x3a521c = _0x265a4d['subMeshes']['slice'](0x0); _0x265a4d['setIndices'](_0x456fce), _0x265a4d['subMeshes'] = _0x3a521c, _0x51b7da && _0x51b7da(_0x265a4d); }), this; } , _0x4dc7f5['prototype']['serialize'] = function(_0x2ddda2) { _0x2ddda2['name'] = this['name'], _0x2ddda2['id'] = this['id'], _0x2ddda2['type'] = this['getClassName'](), _0xfac2e0['a'] && _0xfac2e0['a']['HasTags'](this) && (_0x2ddda2['tags'] = _0xfac2e0['a']['GetTags'](this)), _0x2ddda2['position'] = this['position']['asArray'](), this['rotationQuaternion'] ? _0x2ddda2['rotationQuaternion'] = this['rotationQuaternion']['asArray']() : this['rotation'] && (_0x2ddda2['rotation'] = this['rotation']['asArray']()), _0x2ddda2['scaling'] = this['scaling']['asArray'](), this['_postMultiplyPivotMatrix'] ? _0x2ddda2['pivotMatrix'] = this['getPivotMatrix']()['asArray']() : _0x2ddda2['localMatrix'] = this['getPivotMatrix']()['asArray'](), _0x2ddda2['isEnabled'] = this['isEnabled'](!0x1), _0x2ddda2['isVisible'] = this['isVisible'], _0x2ddda2['infiniteDistance'] = this['infiniteDistance'], _0x2ddda2['pickable'] = this['isPickable'], _0x2ddda2['receiveShadows'] = this['receiveShadows'], _0x2ddda2['billboardMode'] = this['billboardMode'], _0x2ddda2['visibility'] = this['visibility'], _0x2ddda2['checkCollisions'] = this['checkCollisions'], _0x2ddda2['isBlocker'] = this['isBlocker'], this['parent'] && (_0x2ddda2['parentId'] = this['parent']['id']), _0x2ddda2['isUnIndexed'] = this['isUnIndexed']; var _0x561e4c = this['_geometry']; if (_0x561e4c) { var _0xb57f8a = _0x561e4c['id']; _0x2ddda2['geometryId'] = _0xb57f8a, _0x2ddda2['subMeshes'] = []; for (var _0x49898e = 0x0; _0x49898e < this['subMeshes']['length']; _0x49898e++) { var _0x1bf87e = this['subMeshes'][_0x49898e]; _0x2ddda2['subMeshes']['push']({ 'materialIndex': _0x1bf87e['materialIndex'], 'verticesStart': _0x1bf87e['verticesStart'], 'verticesCount': _0x1bf87e['verticesCount'], 'indexStart': _0x1bf87e['indexStart'], 'indexCount': _0x1bf87e['indexCount'] }); } } if (this['material'] ? _0x2ddda2['materialId'] = this['material']['id'] : this['material'] = null, this['morphTargetManager'] && (_0x2ddda2['morphTargetManagerId'] = this['morphTargetManager']['uniqueId']), this['skeleton'] && (_0x2ddda2['skeletonId'] = this['skeleton']['id']), this['getScene']()['_getComponent'](_0x44d4b1['a']['NAME_PHYSICSENGINE'])) { var _0x4e1b3a = this['getPhysicsImpostor'](); _0x4e1b3a && (_0x2ddda2['physicsMass'] = _0x4e1b3a['getParam']('mass'), _0x2ddda2['physicsFriction'] = _0x4e1b3a['getParam']('friction'), _0x2ddda2['physicsRestitution'] = _0x4e1b3a['getParam']('mass'), _0x2ddda2['physicsImpostor'] = _0x4e1b3a['type']); } this['metadata'] && (_0x2ddda2['metadata'] = this['metadata']), _0x2ddda2['instances'] = []; for (var _0x40fad4 = 0x0; _0x40fad4 < this['instances']['length']; _0x40fad4++) { var _0x442654 = this['instances'][_0x40fad4]; if (!_0x442654['doNotSerialize']) { var _0x36d4aa = { 'name': _0x442654['name'], 'id': _0x442654['id'], 'position': _0x442654['position']['asArray'](), 'scaling': _0x442654['scaling']['asArray']() }; _0x442654['parent'] && (_0x36d4aa['parentId'] = _0x442654['parent']['id']), _0x442654['rotationQuaternion'] ? _0x36d4aa['rotationQuaternion'] = _0x442654['rotationQuaternion']['asArray']() : _0x442654['rotation'] && (_0x36d4aa['rotation'] = _0x442654['rotation']['asArray']()), _0x2ddda2['instances']['push'](_0x36d4aa), _0x16d985['a']['AppendSerializedAnimations'](_0x442654, _0x36d4aa), _0x36d4aa['ranges'] = _0x442654['serializeAnimationRanges'](); } } _0x16d985['a']['AppendSerializedAnimations'](this, _0x2ddda2), _0x2ddda2['ranges'] = this['serializeAnimationRanges'](), _0x2ddda2['layerMask'] = this['layerMask'], _0x2ddda2['alphaIndex'] = this['alphaIndex'], _0x2ddda2['hasVertexAlpha'] = this['hasVertexAlpha'], _0x2ddda2['overlayAlpha'] = this['overlayAlpha'], _0x2ddda2['overlayColor'] = this['overlayColor']['asArray'](), _0x2ddda2['renderOverlay'] = this['renderOverlay'], _0x2ddda2['applyFog'] = this['applyFog'], this['actionManager'] && (_0x2ddda2['actions'] = this['actionManager']['serialize'](this['name'])); } , _0x4dc7f5['prototype']['_syncGeometryWithMorphTargetManager'] = function() { if (this['geometry']) { this['_markSubMeshesAsAttributesDirty'](); var _0x1c8e93 = this['_internalMeshDataInfo']['_morphTargetManager']; if (_0x1c8e93 && _0x1c8e93['vertexCount']) { if (_0x1c8e93['vertexCount'] !== this['getTotalVertices']()) return _0x651ae7['a']['Error']('Mesh\x20is\x20incompatible\x20with\x20morph\x20targets.\x20Targets\x20and\x20mesh\x20must\x20all\x20have\x20the\x20same\x20vertices\x20count.'), void (this['morphTargetManager'] = null); for (var _0x13b70a = 0x0; _0x13b70a < _0x1c8e93['numInfluencers']; _0x13b70a++) { var _0x31b765 = _0x1c8e93['getActiveTarget'](_0x13b70a) , _0x3dd38c = _0x31b765['getPositions'](); if (!_0x3dd38c) return void _0x651ae7['a']['Error']('Invalid\x20morph\x20target.\x20Target\x20must\x20have\x20positions.'); this['geometry']['setVerticesData'](_0x566195['b']['PositionKind'] + _0x13b70a, _0x3dd38c, !0x1, 0x3); var _0x817be6 = _0x31b765['getNormals'](); _0x817be6 && this['geometry']['setVerticesData'](_0x566195['b']['NormalKind'] + _0x13b70a, _0x817be6, !0x1, 0x3); var _0x1d4de0 = _0x31b765['getTangents'](); _0x1d4de0 && this['geometry']['setVerticesData'](_0x566195['b']['TangentKind'] + _0x13b70a, _0x1d4de0, !0x1, 0x3); } } else for (_0x13b70a = 0x0; this['geometry']['isVerticesDataPresent'](_0x566195['b']['PositionKind'] + _0x13b70a); ) this['geometry']['removeVerticesData'](_0x566195['b']['PositionKind'] + _0x13b70a), this['geometry']['isVerticesDataPresent'](_0x566195['b']['NormalKind'] + _0x13b70a) && this['geometry']['removeVerticesData'](_0x566195['b']['NormalKind'] + _0x13b70a), this['geometry']['isVerticesDataPresent'](_0x566195['b']['TangentKind'] + _0x13b70a) && this['geometry']['removeVerticesData'](_0x566195['b']['TangentKind'] + _0x13b70a), _0x13b70a++; } } , _0x4dc7f5['Parse'] = function(_0x56de8c, _0x192270, _0x4b1d61) { var _0xd5a9ca; if ((_0xd5a9ca = _0x56de8c['type'] && 'GroundMesh' === _0x56de8c['type'] ? _0x4dc7f5['_GroundMeshParser'](_0x56de8c, _0x192270) : new _0x4dc7f5(_0x56de8c['name'],_0x192270))['id'] = _0x56de8c['id'], _0xfac2e0['a'] && _0xfac2e0['a']['AddTagsTo'](_0xd5a9ca, _0x56de8c['tags']), _0xd5a9ca['position'] = _0x564b55['x']['FromArray'](_0x56de8c['position']), void 0x0 !== _0x56de8c['metadata'] && (_0xd5a9ca['metadata'] = _0x56de8c['metadata']), _0x56de8c['rotationQuaternion'] ? _0xd5a9ca['rotationQuaternion'] = _0x564b55['q']['FromArray'](_0x56de8c['rotationQuaternion']) : _0x56de8c['rotation'] && (_0xd5a9ca['rotation'] = _0x564b55['x']['FromArray'](_0x56de8c['rotation'])), _0xd5a9ca['scaling'] = _0x564b55['x']['FromArray'](_0x56de8c['scaling']), _0x56de8c['localMatrix'] ? _0xd5a9ca['setPreTransformMatrix'](_0x564b55['j']['FromArray'](_0x56de8c['localMatrix'])) : _0x56de8c['pivotMatrix'] && _0xd5a9ca['setPivotMatrix'](_0x564b55['j']['FromArray'](_0x56de8c['pivotMatrix'])), _0xd5a9ca['setEnabled'](_0x56de8c['isEnabled']), _0xd5a9ca['isVisible'] = _0x56de8c['isVisible'], _0xd5a9ca['infiniteDistance'] = _0x56de8c['infiniteDistance'], _0xd5a9ca['showBoundingBox'] = _0x56de8c['showBoundingBox'], _0xd5a9ca['showSubMeshesBoundingBox'] = _0x56de8c['showSubMeshesBoundingBox'], void 0x0 !== _0x56de8c['applyFog'] && (_0xd5a9ca['applyFog'] = _0x56de8c['applyFog']), void 0x0 !== _0x56de8c['pickable'] && (_0xd5a9ca['isPickable'] = _0x56de8c['pickable']), void 0x0 !== _0x56de8c['alphaIndex'] && (_0xd5a9ca['alphaIndex'] = _0x56de8c['alphaIndex']), _0xd5a9ca['receiveShadows'] = _0x56de8c['receiveShadows'], _0xd5a9ca['billboardMode'] = _0x56de8c['billboardMode'], void 0x0 !== _0x56de8c['visibility'] && (_0xd5a9ca['visibility'] = _0x56de8c['visibility']), _0xd5a9ca['checkCollisions'] = _0x56de8c['checkCollisions'], void 0x0 !== _0x56de8c['isBlocker'] && (_0xd5a9ca['isBlocker'] = _0x56de8c['isBlocker']), _0xd5a9ca['_shouldGenerateFlatShading'] = _0x56de8c['useFlatShading'], _0x56de8c['freezeWorldMatrix'] && (_0xd5a9ca['_waitingData']['freezeWorldMatrix'] = _0x56de8c['freezeWorldMatrix']), _0x56de8c['parentId'] && (_0xd5a9ca['_waitingParentId'] = _0x56de8c['parentId']), void 0x0 !== _0x56de8c['actions'] && (_0xd5a9ca['_waitingData']['actions'] = _0x56de8c['actions']), void 0x0 !== _0x56de8c['overlayAlpha'] && (_0xd5a9ca['overlayAlpha'] = _0x56de8c['overlayAlpha']), void 0x0 !== _0x56de8c['overlayColor'] && (_0xd5a9ca['overlayColor'] = _0x564b55['e']['FromArray'](_0x56de8c['overlayColor'])), void 0x0 !== _0x56de8c['renderOverlay'] && (_0xd5a9ca['renderOverlay'] = _0x56de8c['renderOverlay']), _0xd5a9ca['isUnIndexed'] = !!_0x56de8c['isUnIndexed'], _0xd5a9ca['hasVertexAlpha'] = _0x56de8c['hasVertexAlpha'], _0x56de8c['delayLoadingFile'] ? (_0xd5a9ca['delayLoadState'] = _0x11dda0['a']['DELAYLOADSTATE_NOTLOADED'], _0xd5a9ca['delayLoadingFile'] = _0x4b1d61 + _0x56de8c['delayLoadingFile'], _0xd5a9ca['_boundingInfo'] = new _0x580b71['a'](_0x564b55['x']['FromArray'](_0x56de8c['boundingBoxMinimum']),_0x564b55['x']['FromArray'](_0x56de8c['boundingBoxMaximum'])), _0x56de8c['_binaryInfo'] && (_0xd5a9ca['_binaryInfo'] = _0x56de8c['_binaryInfo']), _0xd5a9ca['_delayInfo'] = [], _0x56de8c['hasUVs'] && _0xd5a9ca['_delayInfo']['push'](_0x566195['b']['UVKind']), _0x56de8c['hasUVs2'] && _0xd5a9ca['_delayInfo']['push'](_0x566195['b']['UV2Kind']), _0x56de8c['hasUVs3'] && _0xd5a9ca['_delayInfo']['push'](_0x566195['b']['UV3Kind']), _0x56de8c['hasUVs4'] && _0xd5a9ca['_delayInfo']['push'](_0x566195['b']['UV4Kind']), _0x56de8c['hasUVs5'] && _0xd5a9ca['_delayInfo']['push'](_0x566195['b']['UV5Kind']), _0x56de8c['hasUVs6'] && _0xd5a9ca['_delayInfo']['push'](_0x566195['b']['UV6Kind']), _0x56de8c['hasColors'] && _0xd5a9ca['_delayInfo']['push'](_0x566195['b']['ColorKind']), _0x56de8c['hasMatricesIndices'] && _0xd5a9ca['_delayInfo']['push'](_0x566195['b']['MatricesIndicesKind']), _0x56de8c['hasMatricesWeights'] && _0xd5a9ca['_delayInfo']['push'](_0x566195['b']['MatricesWeightsKind']), _0xd5a9ca['_delayLoadingFunction'] = _0x3ce75b['a']['_ImportGeometry'], _0x38d900['a']['ForceFullSceneLoadingForIncremental'] && _0xd5a9ca['_checkDelayState']()) : _0x3ce75b['a']['_ImportGeometry'](_0x56de8c, _0xd5a9ca), _0x56de8c['materialId'] ? _0xd5a9ca['setMaterialByID'](_0x56de8c['materialId']) : _0xd5a9ca['material'] = null, _0x56de8c['morphTargetManagerId'] > -0x1 && (_0xd5a9ca['morphTargetManager'] = _0x192270['getMorphTargetManagerById'](_0x56de8c['morphTargetManagerId'])), _0x56de8c['skeletonId'] > -0x1 && (_0xd5a9ca['skeleton'] = _0x192270['getLastSkeletonByID'](_0x56de8c['skeletonId']), _0x56de8c['numBoneInfluencers'] && (_0xd5a9ca['numBoneInfluencers'] = _0x56de8c['numBoneInfluencers'])), _0x56de8c['animations']) { for (var _0x51c291 = 0x0; _0x51c291 < _0x56de8c['animations']['length']; _0x51c291++) { var _0x2db79e = _0x56de8c['animations'][_0x51c291]; (_0x3ec65a = _0x4d4b99['a']['GetClass']('BABYLON.Animation')) && _0xd5a9ca['animations']['push'](_0x3ec65a['Parse'](_0x2db79e)); } _0x3de53f['a']['ParseAnimationRanges'](_0xd5a9ca, _0x56de8c, _0x192270); } if (_0x56de8c['autoAnimate'] && _0x192270['beginAnimation'](_0xd5a9ca, _0x56de8c['autoAnimateFrom'], _0x56de8c['autoAnimateTo'], _0x56de8c['autoAnimateLoop'], _0x56de8c['autoAnimateSpeed'] || 0x1), _0x56de8c['layerMask'] && !isNaN(_0x56de8c['layerMask']) ? _0xd5a9ca['layerMask'] = Math['abs'](parseInt(_0x56de8c['layerMask'])) : _0xd5a9ca['layerMask'] = 0xfffffff, _0x56de8c['physicsImpostor'] && _0x4dc7f5['_PhysicsImpostorParser'](_0x192270, _0xd5a9ca, _0x56de8c), _0x56de8c['lodMeshIds'] && (_0xd5a9ca['_waitingData']['lods'] = { 'ids': _0x56de8c['lodMeshIds'], 'distances': _0x56de8c['lodDistances'] ? _0x56de8c['lodDistances'] : null, 'coverages': _0x56de8c['lodCoverages'] ? _0x56de8c['lodCoverages'] : null }), _0x56de8c['instances']) for (var _0x4dd95e = 0x0; _0x4dd95e < _0x56de8c['instances']['length']; _0x4dd95e++) { var _0x2593af = _0x56de8c['instances'][_0x4dd95e] , _0x6ede6a = _0xd5a9ca['createInstance'](_0x2593af['name']); if (_0x2593af['id'] && (_0x6ede6a['id'] = _0x2593af['id']), _0xfac2e0['a'] && (_0x2593af['tags'] ? _0xfac2e0['a']['AddTagsTo'](_0x6ede6a, _0x2593af['tags']) : _0xfac2e0['a']['AddTagsTo'](_0x6ede6a, _0x56de8c['tags'])), _0x6ede6a['position'] = _0x564b55['x']['FromArray'](_0x2593af['position']), void 0x0 !== _0x2593af['metadata'] && (_0x6ede6a['metadata'] = _0x2593af['metadata']), _0x2593af['parentId'] && (_0x6ede6a['_waitingParentId'] = _0x2593af['parentId']), _0x2593af['rotationQuaternion'] ? _0x6ede6a['rotationQuaternion'] = _0x564b55['q']['FromArray'](_0x2593af['rotationQuaternion']) : _0x2593af['rotation'] && (_0x6ede6a['rotation'] = _0x564b55['x']['FromArray'](_0x2593af['rotation'])), _0x6ede6a['scaling'] = _0x564b55['x']['FromArray'](_0x2593af['scaling']), null != _0x2593af['checkCollisions'] && null != _0x2593af['checkCollisions'] && (_0x6ede6a['checkCollisions'] = _0x2593af['checkCollisions']), null != _0x2593af['pickable'] && null != _0x2593af['pickable'] && (_0x6ede6a['isPickable'] = _0x2593af['pickable']), null != _0x2593af['showBoundingBox'] && null != _0x2593af['showBoundingBox'] && (_0x6ede6a['showBoundingBox'] = _0x2593af['showBoundingBox']), null != _0x2593af['showSubMeshesBoundingBox'] && null != _0x2593af['showSubMeshesBoundingBox'] && (_0x6ede6a['showSubMeshesBoundingBox'] = _0x2593af['showSubMeshesBoundingBox']), null != _0x2593af['alphaIndex'] && null != _0x2593af['showSubMeshesBoundingBox'] && (_0x6ede6a['alphaIndex'] = _0x2593af['alphaIndex']), _0x2593af['physicsImpostor'] && _0x4dc7f5['_PhysicsImpostorParser'](_0x192270, _0x6ede6a, _0x2593af), _0x2593af['animations']) { for (_0x51c291 = 0x0; _0x51c291 < _0x2593af['animations']['length']; _0x51c291++) { var _0x3ec65a; _0x2db79e = _0x2593af['animations'][_0x51c291], (_0x3ec65a = _0x4d4b99['a']['GetClass']('BABYLON.Animation')) && _0x6ede6a['animations']['push'](_0x3ec65a['Parse'](_0x2db79e)); } _0x3de53f['a']['ParseAnimationRanges'](_0x6ede6a, _0x2593af, _0x192270), _0x2593af['autoAnimate'] && _0x192270['beginAnimation'](_0x6ede6a, _0x2593af['autoAnimateFrom'], _0x2593af['autoAnimateTo'], _0x2593af['autoAnimateLoop'], _0x2593af['autoAnimateSpeed'] || 0x1); } } return _0xd5a9ca; } , _0x4dc7f5['CreateRibbon'] = function(_0x50c5a4, _0x178cd0, _0x43ce30, _0x47e368, _0x70ad2f, _0x1232f6, _0x47eaf8, _0x448826, _0x5cd6fa) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateDisc'] = function(_0x4d6b6b, _0x499e26, _0x465c03, _0xc3afea, _0x37d0a8, _0x42b093) { throw void 0x0 === _0xc3afea && (_0xc3afea = null), _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateBox'] = function(_0x17127c, _0x6b73c2, _0xca2686, _0x2360f0, _0x539dc2) { throw void 0x0 === _0xca2686 && (_0xca2686 = null), _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateSphere'] = function(_0x37e040, _0x1388a3, _0x3b942c, _0x36ac2a, _0xf06ad2, _0x8b4a4e) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateHemisphere'] = function(_0x1e04a3, _0x372b40, _0x4275a9, _0xc21a30) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateCylinder'] = function(_0x5076fe, _0x3af912, _0x5de6f6, _0x1dea4e, _0x276ea, _0x328095, _0x49985f, _0x32bb7a, _0x9ad4f8) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateTorus'] = function(_0x2e9c4c, _0x465904, _0x59b76f, _0x2f6aa0, _0x662b95, _0x3d9e0d, _0x333f64) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateTorusKnot'] = function(_0x4566e2, _0x5ef6fc, _0x2d9f2e, _0x46f4f4, _0xfc774f, _0x2816f8, _0x50fbb5, _0x17e151, _0x207980, _0x26aaa1) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateLines'] = function(_0x167a60, _0x41afea, _0x142cf0, _0x1719ea, _0x8a3893) { throw void 0x0 === _0x142cf0 && (_0x142cf0 = null), void 0x0 === _0x1719ea && (_0x1719ea = !0x1), void 0x0 === _0x8a3893 && (_0x8a3893 = null), _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateDashedLines'] = function(_0x840bb9, _0x436bae, _0x2845b4, _0xfb42ac, _0xd639a2, _0xa498df, _0x107228, _0x5222fe) { throw void 0x0 === _0xa498df && (_0xa498df = null), _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreatePolygon'] = function(_0xc1247d, _0x327752, _0x2b9a5c, _0x5aae5c, _0xae49c0, _0x4eaf0e, _0x5698e8) { throw void 0x0 === _0x5698e8 && (_0x5698e8 = earcut), _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['ExtrudePolygon'] = function(_0x1604b4, _0x2442e6, _0x15c156, _0x3a53b2, _0x2a94e6, _0x58ed3b, _0x5f4b12, _0x4568da) { throw void 0x0 === _0x4568da && (_0x4568da = earcut), _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['ExtrudeShape'] = function(_0x1ae7b4, _0x5e0a6c, _0x306c08, _0x42a4d2, _0x52c8, _0x5f54eb, _0x2565bc, _0x2602df, _0x47e67a, _0x1a3544) { throw void 0x0 === _0x2565bc && (_0x2565bc = null), _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['ExtrudeShapeCustom'] = function(_0x138efc, _0x1f908c, _0x290f1e, _0x32de40, _0x341c01, _0x45bfb8, _0x141cbf, _0x1daa1d, _0x21f248, _0x124537, _0x18b087, _0x10e93c) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateLathe'] = function(_0x44d5d6, _0x21cf39, _0x24c702, _0x30dde0, _0x53df9b, _0x10d6f6, _0x4e196a) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreatePlane'] = function(_0x5e9933, _0x3beac5, _0x344777, _0x5b9ffd, _0x47a505) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateGround'] = function(_0x3e470d, _0x275935, _0x16779f, _0x1553f3, _0x547607, _0x224731) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateTiledGround'] = function(_0x25e2d9, _0x236ffa, _0x4bfa40, _0x239e7b, _0x3fa5bc, _0x3f6cb4, _0xd938af, _0x8b1727, _0x45e02e) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateGroundFromHeightMap'] = function(_0x28184c, _0x3cd04a, _0x407dc5, _0x5ae2d6, _0x58d4a1, _0x52c31d, _0x43a4ab, _0x4eb9fe, _0x382ee2, _0x56f190, _0x1e0de1) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateTube'] = function(_0x2c024f, _0x23ae81, _0x470018, _0x5429af, _0x329a5f, _0x355e49, _0x425423, _0x4a8159, _0x2c6e74, _0x5b2377) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreatePolyhedron'] = function(_0x59462a, _0x5d3f61, _0x1b663a) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateIcoSphere'] = function(_0x79ed52, _0x518441, _0x53cb04) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['CreateDecal'] = function(_0x27f992, _0x67787e, _0x316d5c, _0x228701, _0x5ded25, _0x38d110) { throw _0x38b7f6['a']['WarnImport']('MeshBuilder'); } , _0x4dc7f5['prototype']['setPositionsForCPUSkinning'] = function() { var _0x3ebfa7 = this['_internalMeshDataInfo']; if (!_0x3ebfa7['_sourcePositions']) { var _0x3e7b2e = this['getVerticesData'](_0x566195['b']['PositionKind']); if (!_0x3e7b2e) return _0x3ebfa7['_sourcePositions']; _0x3ebfa7['_sourcePositions'] = new Float32Array(_0x3e7b2e), this['isVertexBufferUpdatable'](_0x566195['b']['PositionKind']) || this['setVerticesData'](_0x566195['b']['PositionKind'], _0x3e7b2e, !0x0); } return _0x3ebfa7['_sourcePositions']; } , _0x4dc7f5['prototype']['setNormalsForCPUSkinning'] = function() { var _0xc13280 = this['_internalMeshDataInfo']; if (!_0xc13280['_sourceNormals']) { var _0x2eea52 = this['getVerticesData'](_0x566195['b']['NormalKind']); if (!_0x2eea52) return _0xc13280['_sourceNormals']; _0xc13280['_sourceNormals'] = new Float32Array(_0x2eea52), this['isVertexBufferUpdatable'](_0x566195['b']['NormalKind']) || this['setVerticesData'](_0x566195['b']['NormalKind'], _0x2eea52, !0x0); } return _0xc13280['_sourceNormals']; } , _0x4dc7f5['prototype']['applySkeleton'] = function(_0x426063) { if (!this['geometry']) return this; if (this['geometry']['_softwareSkinningFrameId'] == this['getScene']()['getFrameId']()) return this; if (this['geometry']['_softwareSkinningFrameId'] = this['getScene']()['getFrameId'](), !this['isVerticesDataPresent'](_0x566195['b']['PositionKind'])) return this; if (!this['isVerticesDataPresent'](_0x566195['b']['NormalKind'])) return this; if (!this['isVerticesDataPresent'](_0x566195['b']['MatricesIndicesKind'])) return this; if (!this['isVerticesDataPresent'](_0x566195['b']['MatricesWeightsKind'])) return this; var _0x345d16 = this['_internalMeshDataInfo']; if (!_0x345d16['_sourcePositions']) { var _0x4b10 = this['subMeshes']['slice'](); this['setPositionsForCPUSkinning'](), this['subMeshes'] = _0x4b10; } _0x345d16['_sourceNormals'] || this['setNormalsForCPUSkinning'](); var _0x3759c3 = this['getVerticesData'](_0x566195['b']['PositionKind']); if (!_0x3759c3) return this; _0x3759c3 instanceof Float32Array || (_0x3759c3 = new Float32Array(_0x3759c3)); var _0x5284b9 = this['getVerticesData'](_0x566195['b']['NormalKind']); if (!_0x5284b9) return this; _0x5284b9 instanceof Float32Array || (_0x5284b9 = new Float32Array(_0x5284b9)); var _0x329f75 = this['getVerticesData'](_0x566195['b']['MatricesIndicesKind']) , _0x329ff2 = this['getVerticesData'](_0x566195['b']['MatricesWeightsKind']); if (!_0x329ff2 || !_0x329f75) return this; for (var _0xc7dc49, _0x379661 = this['numBoneInfluencers'] > 0x4, _0xa879fd = _0x379661 ? this['getVerticesData'](_0x566195['b']['MatricesIndicesExtraKind']) : null, _0x454b61 = _0x379661 ? this['getVerticesData'](_0x566195['b']['MatricesWeightsExtraKind']) : null, _0x48bd9a = _0x426063['getTransformMatrices'](this), _0xbf776e = _0x564b55['x']['Zero'](), _0x5e489a = new _0x564b55['j'](), _0x471b22 = new _0x564b55['j'](), _0x36144a = 0x0, _0x3a97d8 = 0x0; _0x3a97d8 < _0x3759c3['length']; _0x3a97d8 += 0x3, _0x36144a += 0x4) { var _0x46ebd3; for (_0xc7dc49 = 0x0; _0xc7dc49 < 0x4; _0xc7dc49++) (_0x46ebd3 = _0x329ff2[_0x36144a + _0xc7dc49]) > 0x0 && (_0x564b55['j']['FromFloat32ArrayToRefScaled'](_0x48bd9a, Math['floor'](0x10 * _0x329f75[_0x36144a + _0xc7dc49]), _0x46ebd3, _0x471b22), _0x5e489a['addToSelf'](_0x471b22)); if (_0x379661) for (_0xc7dc49 = 0x0; _0xc7dc49 < 0x4; _0xc7dc49++) (_0x46ebd3 = _0x454b61[_0x36144a + _0xc7dc49]) > 0x0 && (_0x564b55['j']['FromFloat32ArrayToRefScaled'](_0x48bd9a, Math['floor'](0x10 * _0xa879fd[_0x36144a + _0xc7dc49]), _0x46ebd3, _0x471b22), _0x5e489a['addToSelf'](_0x471b22)); _0x564b55['x']['TransformCoordinatesFromFloatsToRef'](_0x345d16['_sourcePositions'][_0x3a97d8], _0x345d16['_sourcePositions'][_0x3a97d8 + 0x1], _0x345d16['_sourcePositions'][_0x3a97d8 + 0x2], _0x5e489a, _0xbf776e), _0xbf776e['toArray'](_0x3759c3, _0x3a97d8), _0x564b55['x']['TransformNormalFromFloatsToRef'](_0x345d16['_sourceNormals'][_0x3a97d8], _0x345d16['_sourceNormals'][_0x3a97d8 + 0x1], _0x345d16['_sourceNormals'][_0x3a97d8 + 0x2], _0x5e489a, _0xbf776e), _0xbf776e['toArray'](_0x5284b9, _0x3a97d8), _0x5e489a['reset'](); } return this['updateVerticesData'](_0x566195['b']['PositionKind'], _0x3759c3), this['updateVerticesData'](_0x566195['b']['NormalKind'], _0x5284b9), this; } , _0x4dc7f5['MinMax'] = function(_0x29af1b) { var _0x18a5fd = null , _0x34feb6 = null; return _0x29af1b['forEach'](function(_0x20e7c0) { var _0x5ceafe = _0x20e7c0['getBoundingInfo']()['boundingBox']; _0x18a5fd && _0x34feb6 ? (_0x18a5fd['minimizeInPlace'](_0x5ceafe['minimumWorld']), _0x34feb6['maximizeInPlace'](_0x5ceafe['maximumWorld'])) : (_0x18a5fd = _0x5ceafe['minimumWorld'], _0x34feb6 = _0x5ceafe['maximumWorld']); }), _0x18a5fd && _0x34feb6 ? { 'min': _0x18a5fd, 'max': _0x34feb6 } : { 'min': _0x564b55['x']['Zero'](), 'max': _0x564b55['x']['Zero']() }; } , _0x4dc7f5['Center'] = function(_0x2d6a40) { var _0x2c5af5 = _0x2d6a40 instanceof Array ? _0x4dc7f5['MinMax'](_0x2d6a40) : _0x2d6a40; return _0x564b55['x']['Center'](_0x2c5af5['min'], _0x2c5af5['max']); } , _0x4dc7f5['MergeMeshes'] = function(_0x147e8f, _0x30df23, _0x3ee96d, _0x21ac02, _0x23f419, _0x82f489) { var _0xb8178a; if (void 0x0 === _0x30df23 && (_0x30df23 = !0x0), !_0x3ee96d) { var _0x473172 = 0x0; for (_0xb8178a = 0x0; _0xb8178a < _0x147e8f['length']; _0xb8178a++) if (_0x147e8f[_0xb8178a] && (_0x473172 += _0x147e8f[_0xb8178a]['getTotalVertices']()) > 0x10000) return _0x651ae7['a']['Warn']('Cannot\x20merge\x20meshes\x20because\x20resulting\x20mesh\x20will\x20have\x20more\x20than\x2065536\x20vertices.\x20Please\x20use\x20allow32BitsIndices\x20=\x20true\x20to\x20use\x2032\x20bits\x20indices'), null; } if (_0x82f489) { var _0x5a68f9, _0x2f5747, _0x3f3868 = null; _0x23f419 = !0x1; } var _0x3b3701, _0x247701 = new Array(), _0x34ab37 = new Array(), _0xceec55 = null, _0x568c64 = new Array(), _0x4772ef = null; for (_0xb8178a = 0x0; _0xb8178a < _0x147e8f['length']; _0xb8178a++) if (_0x147e8f[_0xb8178a]) { var _0x2cf554 = _0x147e8f[_0xb8178a]; if (_0x2cf554['isAnInstance']) return _0x651ae7['a']['Warn']('Cannot\x20merge\x20instance\x20meshes.'), null; var _0x5ab3ad = _0x2cf554['computeWorldMatrix'](!0x0); if ((_0x3b3701 = _0x3321ce['a']['ExtractFromMesh'](_0x2cf554, !0x0, !0x0))['transform'](_0x5ab3ad), _0xceec55 ? _0xceec55['merge'](_0x3b3701, _0x3ee96d) : (_0xceec55 = _0x3b3701, _0x4772ef = _0x2cf554), _0x23f419 && _0x568c64['push'](_0x2cf554['getTotalIndices']()), _0x82f489) if (_0x2cf554['material']) { var _0x30e7fa = _0x2cf554['material']; if (_0x30e7fa instanceof _0x15c00['a']) { for (_0x2f5747 = 0x0; _0x2f5747 < _0x30e7fa['subMaterials']['length']; _0x2f5747++) _0x247701['indexOf'](_0x30e7fa['subMaterials'][_0x2f5747]) < 0x0 && _0x247701['push'](_0x30e7fa['subMaterials'][_0x2f5747]); for (_0x5a68f9 = 0x0; _0x5a68f9 < _0x2cf554['subMeshes']['length']; _0x5a68f9++) _0x34ab37['push'](_0x247701['indexOf'](_0x30e7fa['subMaterials'][_0x2cf554['subMeshes'][_0x5a68f9]['materialIndex']])), _0x568c64['push'](_0x2cf554['subMeshes'][_0x5a68f9]['indexCount']); } else for (_0x247701['indexOf'](_0x30e7fa) < 0x0 && _0x247701['push'](_0x30e7fa), _0x5a68f9 = 0x0; _0x5a68f9 < _0x2cf554['subMeshes']['length']; _0x5a68f9++) _0x34ab37['push'](_0x247701['indexOf'](_0x30e7fa)), _0x568c64['push'](_0x2cf554['subMeshes'][_0x5a68f9]['indexCount']); } else for (_0x5a68f9 = 0x0; _0x5a68f9 < _0x2cf554['subMeshes']['length']; _0x5a68f9++) _0x34ab37['push'](0x0), _0x568c64['push'](_0x2cf554['subMeshes'][_0x5a68f9]['indexCount']); } if (_0x4772ef = _0x4772ef, _0x21ac02 || (_0x21ac02 = new _0x4dc7f5(_0x4772ef['name'] + '_merged',_0x4772ef['getScene']())), _0xceec55['applyToMesh'](_0x21ac02), _0x21ac02['checkCollisions'] = _0x4772ef['checkCollisions'], _0x30df23) for (_0xb8178a = 0x0; _0xb8178a < _0x147e8f['length']; _0xb8178a++) _0x147e8f[_0xb8178a] && _0x147e8f[_0xb8178a]['dispose'](); if (_0x23f419 || _0x82f489) { _0x21ac02['releaseSubMeshes'](), _0xb8178a = 0x0; for (var _0xaf6371 = 0x0; _0xb8178a < _0x568c64['length']; ) _0x1d85ce['b']['CreateFromIndices'](0x0, _0xaf6371, _0x568c64[_0xb8178a], _0x21ac02), _0xaf6371 += _0x568c64[_0xb8178a], _0xb8178a++; } if (_0x82f489) { for ((_0x3f3868 = new _0x15c00['a'](_0x4772ef['name'] + '_merged',_0x4772ef['getScene']()))['subMaterials'] = _0x247701, _0x5a68f9 = 0x0; _0x5a68f9 < _0x21ac02['subMeshes']['length']; _0x5a68f9++) _0x21ac02['subMeshes'][_0x5a68f9]['materialIndex'] = _0x34ab37[_0x5a68f9]; _0x21ac02['material'] = _0x3f3868; } else _0x21ac02['material'] = _0x4772ef['material']; return _0x21ac02; } , _0x4dc7f5['prototype']['addInstance'] = function(_0x22ca23) { _0x22ca23['_indexInSourceMeshInstanceArray'] = this['instances']['length'], this['instances']['push'](_0x22ca23); } , _0x4dc7f5['prototype']['removeInstance'] = function(_0x5b25ad) { var _0x38f2de = _0x5b25ad['_indexInSourceMeshInstanceArray']; if (-0x1 != _0x38f2de) { if (_0x38f2de !== this['instances']['length'] - 0x1) { var _0x69b5ed = this['instances'][this['instances']['length'] - 0x1]; this['instances'][_0x38f2de] = _0x69b5ed, _0x69b5ed['_indexInSourceMeshInstanceArray'] = _0x38f2de; } _0x5b25ad['_indexInSourceMeshInstanceArray'] = -0x1, this['instances']['pop'](); } } , _0x4dc7f5['FRONTSIDE'] = _0x3321ce['a']['FRONTSIDE'], _0x4dc7f5['BACKSIDE'] = _0x3321ce['a']['BACKSIDE'], _0x4dc7f5['DOUBLESIDE'] = _0x3321ce['a']['DOUBLESIDE'], _0x4dc7f5['DEFAULTSIDE'] = _0x3321ce['a']['DEFAULTSIDE'], _0x4dc7f5['NO_CAP'] = 0x0, _0x4dc7f5['CAP_START'] = 0x1, _0x4dc7f5['CAP_END'] = 0x2, _0x4dc7f5['CAP_ALL'] = 0x3, _0x4dc7f5['_GroundMeshParser'] = function(_0x341f06, _0x52311a) { throw _0x38b7f6['a']['WarnImport']('GroundMesh'); } , _0x4dc7f5; }(_0x223115['a']); } , function(_0x17442c, _0x1d8ab1, _0x2a7302) { 'use strict'; _0x2a7302['d'](_0x1d8ab1, 'a', function() { return _0x35d13f; }); var _0x35d13f = function() { function _0x29b10e() {} return _0x29b10e['WithinEpsilon'] = function(_0x250cf8, _0x526b3a, _0x57ec62) { void 0x0 === _0x57ec62 && (_0x57ec62 = 1.401298e-45); var _0x4430b9 = _0x250cf8 - _0x526b3a; return -_0x57ec62 <= _0x4430b9 && _0x4430b9 <= _0x57ec62; } , _0x29b10e['ToHex'] = function(_0x591244) { var _0xcf97e9 = _0x591244['toString'](0x10); return _0x591244 <= 0xf ? ('0' + _0xcf97e9)['toUpperCase']() : _0xcf97e9['toUpperCase'](); } , _0x29b10e['Sign'] = function(_0xf89893) { return 0x0 === (_0xf89893 = +_0xf89893) || isNaN(_0xf89893) ? _0xf89893 : _0xf89893 > 0x0 ? 0x1 : -0x1; } , _0x29b10e['Clamp'] = function(_0x234df4, _0x497991, _0x480958) { return void 0x0 === _0x497991 && (_0x497991 = 0x0), void 0x0 === _0x480958 && (_0x480958 = 0x1), Math['min'](_0x480958, Math['max'](_0x497991, _0x234df4)); } , _0x29b10e['Log2'] = function(_0x50e29d) { return Math['log'](_0x50e29d) * Math['LOG2E']; } , _0x29b10e['Repeat'] = function(_0x17060e, _0x243f1e) { return _0x17060e - Math['floor'](_0x17060e / _0x243f1e) * _0x243f1e; } , _0x29b10e['Normalize'] = function(_0x26457a, _0x1b757d, _0x14148d) { return (_0x26457a - _0x1b757d) / (_0x14148d - _0x1b757d); } , _0x29b10e['Denormalize'] = function(_0x167e2d, _0x34218e, _0x585f55) { return _0x167e2d * (_0x585f55 - _0x34218e) + _0x34218e; } , _0x29b10e['DeltaAngle'] = function(_0x79602c, _0x715287) { var _0xcf5845 = _0x29b10e['Repeat'](_0x715287 - _0x79602c, 0x168); return _0xcf5845 > 0xb4 && (_0xcf5845 -= 0x168), _0xcf5845; } , _0x29b10e['PingPong'] = function(_0x1a074d, _0xf1db7b) { var _0x2376ba = _0x29b10e['Repeat'](_0x1a074d, 0x2 * _0xf1db7b); return _0xf1db7b - Math['abs'](_0x2376ba - _0xf1db7b); } , _0x29b10e['SmoothStep'] = function(_0x28adc0, _0x4f9432, _0x531c62) { var _0x21f42a = _0x29b10e['Clamp'](_0x531c62); return _0x4f9432 * (_0x21f42a = -0x2 * _0x21f42a * _0x21f42a * _0x21f42a + 0x3 * _0x21f42a * _0x21f42a) + _0x28adc0 * (0x1 - _0x21f42a); } , _0x29b10e['MoveTowards'] = function(_0x5a8f91, _0x2c61de, _0x21ff43) { return Math['abs'](_0x2c61de - _0x5a8f91) <= _0x21ff43 ? _0x2c61de : _0x5a8f91 + _0x29b10e['Sign'](_0x2c61de - _0x5a8f91) * _0x21ff43; } , _0x29b10e['MoveTowardsAngle'] = function(_0x250241, _0x13ef0b, _0x268e7d) { var _0x5b19df = _0x29b10e['DeltaAngle'](_0x250241, _0x13ef0b) , _0x2cdc76 = 0x0; return -_0x268e7d < _0x5b19df && _0x5b19df < _0x268e7d ? _0x2cdc76 = _0x13ef0b : (_0x13ef0b = _0x250241 + _0x5b19df, _0x2cdc76 = _0x29b10e['MoveTowards'](_0x250241, _0x13ef0b, _0x268e7d)), _0x2cdc76; } , _0x29b10e['Lerp'] = function(_0x3c4a01, _0x8efb3d, _0x2f1049) { return _0x3c4a01 + (_0x8efb3d - _0x3c4a01) * _0x2f1049; } , _0x29b10e['LerpAngle'] = function(_0x5bcd28, _0x4025d6, _0x196318) { var _0x357bbf = _0x29b10e['Repeat'](_0x4025d6 - _0x5bcd28, 0x168); return _0x357bbf > 0xb4 && (_0x357bbf -= 0x168), _0x5bcd28 + _0x357bbf * _0x29b10e['Clamp'](_0x196318); } , _0x29b10e['InverseLerp'] = function(_0x299af8, _0x4a6677, _0x5563d0) { return _0x299af8 != _0x4a6677 ? _0x29b10e['Clamp']((_0x5563d0 - _0x299af8) / (_0x4a6677 - _0x299af8)) : 0x0; } , _0x29b10e['Hermite'] = function(_0x1b2882, _0x590941, _0x2f6c29, _0x5ac836, _0x400625) { var _0x4a4795 = _0x400625 * _0x400625 , _0x47b459 = _0x400625 * _0x4a4795; return _0x1b2882 * (0x2 * _0x47b459 - 0x3 * _0x4a4795 + 0x1) + _0x2f6c29 * (-0x2 * _0x47b459 + 0x3 * _0x4a4795) + _0x590941 * (_0x47b459 - 0x2 * _0x4a4795 + _0x400625) + _0x5ac836 * (_0x47b459 - _0x4a4795); } , _0x29b10e['RandomRange'] = function(_0x3b592a, _0x409f8e) { return _0x3b592a === _0x409f8e ? _0x3b592a : Math['random']() * (_0x409f8e - _0x3b592a) + _0x3b592a; } , _0x29b10e['RangeToPercent'] = function(_0x1495c7, _0xb8e5db, _0x3118c3) { return (_0x1495c7 - _0xb8e5db) / (_0x3118c3 - _0xb8e5db); } , _0x29b10e['PercentToRange'] = function(_0x52d712, _0x438ae7, _0x312719) { return (_0x312719 - _0x438ae7) * _0x52d712 + _0x438ae7; } , _0x29b10e['NormalizeRadians'] = function(_0x1dc64c) { return _0x1dc64c -= _0x29b10e['TwoPi'] * Math['floor']((_0x1dc64c + Math['PI']) / _0x29b10e['TwoPi']); } , _0x29b10e['TwoPi'] = 0x2 * Math['PI'], _0x29b10e; }(); } , function(_0x4481f3, _0x3f61e7, _0x2a4040) { 'use strict'; _0x2a4040['d'](_0x3f61e7, 'a', function() { return _0x32a302; }); var _0x39cf6f = _0x2a4040(0x0) , _0x5e422a = _0x2a4040(0x4) , _0x563921 = _0x2a4040(0x13) , _0x32a302 = function() { function _0x4021bf() {} return _0x4021bf['prototype']['set'] = function(_0x80d2b4, _0x35ecd2) { switch (_0x35ecd2) { case _0x5e422a['b']['PositionKind']: this['positions'] = _0x80d2b4; break; case _0x5e422a['b']['NormalKind']: this['normals'] = _0x80d2b4; break; case _0x5e422a['b']['TangentKind']: this['tangents'] = _0x80d2b4; break; case _0x5e422a['b']['UVKind']: this['uvs'] = _0x80d2b4; break; case _0x5e422a['b']['UV2Kind']: this['uvs2'] = _0x80d2b4; break; case _0x5e422a['b']['UV3Kind']: this['uvs3'] = _0x80d2b4; break; case _0x5e422a['b']['UV4Kind']: this['uvs4'] = _0x80d2b4; break; case _0x5e422a['b']['UV5Kind']: this['uvs5'] = _0x80d2b4; break; case _0x5e422a['b']['UV6Kind']: this['uvs6'] = _0x80d2b4; break; case _0x5e422a['b']['ColorKind']: this['colors'] = _0x80d2b4; break; case _0x5e422a['b']['MatricesIndicesKind']: this['matricesIndices'] = _0x80d2b4; break; case _0x5e422a['b']['MatricesWeightsKind']: this['matricesWeights'] = _0x80d2b4; break; case _0x5e422a['b']['MatricesIndicesExtraKind']: this['matricesIndicesExtra'] = _0x80d2b4; break; case _0x5e422a['b']['MatricesWeightsExtraKind']: this['matricesWeightsExtra'] = _0x80d2b4; } } , _0x4021bf['prototype']['applyToMesh'] = function(_0x301d7c, _0x5aa767) { return this['_applyTo'](_0x301d7c, _0x5aa767), this; } , _0x4021bf['prototype']['applyToGeometry'] = function(_0x211db9, _0x5c69f6) { return this['_applyTo'](_0x211db9, _0x5c69f6), this; } , _0x4021bf['prototype']['updateMesh'] = function(_0x3e87bc) { return this['_update'](_0x3e87bc), this; } , _0x4021bf['prototype']['updateGeometry'] = function(_0x31c33c) { return this['_update'](_0x31c33c), this; } , _0x4021bf['prototype']['_applyTo'] = function(_0x299e53, _0x2ca40d) { return void 0x0 === _0x2ca40d && (_0x2ca40d = !0x1), this['positions'] && _0x299e53['setVerticesData'](_0x5e422a['b']['PositionKind'], this['positions'], _0x2ca40d), this['normals'] && _0x299e53['setVerticesData'](_0x5e422a['b']['NormalKind'], this['normals'], _0x2ca40d), this['tangents'] && _0x299e53['setVerticesData'](_0x5e422a['b']['TangentKind'], this['tangents'], _0x2ca40d), this['uvs'] && _0x299e53['setVerticesData'](_0x5e422a['b']['UVKind'], this['uvs'], _0x2ca40d), this['uvs2'] && _0x299e53['setVerticesData'](_0x5e422a['b']['UV2Kind'], this['uvs2'], _0x2ca40d), this['uvs3'] && _0x299e53['setVerticesData'](_0x5e422a['b']['UV3Kind'], this['uvs3'], _0x2ca40d), this['uvs4'] && _0x299e53['setVerticesData'](_0x5e422a['b']['UV4Kind'], this['uvs4'], _0x2ca40d), this['uvs5'] && _0x299e53['setVerticesData'](_0x5e422a['b']['UV5Kind'], this['uvs5'], _0x2ca40d), this['uvs6'] && _0x299e53['setVerticesData'](_0x5e422a['b']['UV6Kind'], this['uvs6'], _0x2ca40d), this['colors'] && _0x299e53['setVerticesData'](_0x5e422a['b']['ColorKind'], this['colors'], _0x2ca40d), this['matricesIndices'] && _0x299e53['setVerticesData'](_0x5e422a['b']['MatricesIndicesKind'], this['matricesIndices'], _0x2ca40d), this['matricesWeights'] && _0x299e53['setVerticesData'](_0x5e422a['b']['MatricesWeightsKind'], this['matricesWeights'], _0x2ca40d), this['matricesIndicesExtra'] && _0x299e53['setVerticesData'](_0x5e422a['b']['MatricesIndicesExtraKind'], this['matricesIndicesExtra'], _0x2ca40d), this['matricesWeightsExtra'] && _0x299e53['setVerticesData'](_0x5e422a['b']['MatricesWeightsExtraKind'], this['matricesWeightsExtra'], _0x2ca40d), this['indices'] ? _0x299e53['setIndices'](this['indices'], null, _0x2ca40d) : _0x299e53['setIndices']([], null), this; } , _0x4021bf['prototype']['_update'] = function(_0x13239e, _0xa351c5, _0x30939e) { return this['positions'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['PositionKind'], this['positions'], _0xa351c5, _0x30939e), this['normals'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['NormalKind'], this['normals'], _0xa351c5, _0x30939e), this['tangents'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['TangentKind'], this['tangents'], _0xa351c5, _0x30939e), this['uvs'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['UVKind'], this['uvs'], _0xa351c5, _0x30939e), this['uvs2'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['UV2Kind'], this['uvs2'], _0xa351c5, _0x30939e), this['uvs3'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['UV3Kind'], this['uvs3'], _0xa351c5, _0x30939e), this['uvs4'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['UV4Kind'], this['uvs4'], _0xa351c5, _0x30939e), this['uvs5'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['UV5Kind'], this['uvs5'], _0xa351c5, _0x30939e), this['uvs6'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['UV6Kind'], this['uvs6'], _0xa351c5, _0x30939e), this['colors'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['ColorKind'], this['colors'], _0xa351c5, _0x30939e), this['matricesIndices'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['MatricesIndicesKind'], this['matricesIndices'], _0xa351c5, _0x30939e), this['matricesWeights'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['MatricesWeightsKind'], this['matricesWeights'], _0xa351c5, _0x30939e), this['matricesIndicesExtra'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['MatricesIndicesExtraKind'], this['matricesIndicesExtra'], _0xa351c5, _0x30939e), this['matricesWeightsExtra'] && _0x13239e['updateVerticesData'](_0x5e422a['b']['MatricesWeightsExtraKind'], this['matricesWeightsExtra'], _0xa351c5, _0x30939e), this['indices'] && _0x13239e['setIndices'](this['indices'], null), this; } , _0x4021bf['prototype']['transform'] = function(_0x2566ea) { var _0x3db136, _0x27bfcc = _0x2566ea['m'][0x0] * _0x2566ea['m'][0x5] * _0x2566ea['m'][0xa] < 0x0, _0x43b2ab = _0x39cf6f['x']['Zero'](); if (this['positions']) { var _0x125bc8 = _0x39cf6f['x']['Zero'](); for (_0x3db136 = 0x0; _0x3db136 < this['positions']['length']; _0x3db136 += 0x3) _0x39cf6f['x']['FromArrayToRef'](this['positions'], _0x3db136, _0x125bc8), _0x39cf6f['x']['TransformCoordinatesToRef'](_0x125bc8, _0x2566ea, _0x43b2ab), this['positions'][_0x3db136] = _0x43b2ab['x'], this['positions'][_0x3db136 + 0x1] = _0x43b2ab['y'], this['positions'][_0x3db136 + 0x2] = _0x43b2ab['z']; } if (this['normals']) { var _0x3d0ac3 = _0x39cf6f['x']['Zero'](); for (_0x3db136 = 0x0; _0x3db136 < this['normals']['length']; _0x3db136 += 0x3) _0x39cf6f['x']['FromArrayToRef'](this['normals'], _0x3db136, _0x3d0ac3), _0x39cf6f['x']['TransformNormalToRef'](_0x3d0ac3, _0x2566ea, _0x43b2ab), this['normals'][_0x3db136] = _0x43b2ab['x'], this['normals'][_0x3db136 + 0x1] = _0x43b2ab['y'], this['normals'][_0x3db136 + 0x2] = _0x43b2ab['z']; } if (this['tangents']) { var _0xe62595 = _0x39cf6f['y']['Zero']() , _0x46e6b0 = _0x39cf6f['y']['Zero'](); for (_0x3db136 = 0x0; _0x3db136 < this['tangents']['length']; _0x3db136 += 0x4) _0x39cf6f['y']['FromArrayToRef'](this['tangents'], _0x3db136, _0xe62595), _0x39cf6f['y']['TransformNormalToRef'](_0xe62595, _0x2566ea, _0x46e6b0), this['tangents'][_0x3db136] = _0x46e6b0['x'], this['tangents'][_0x3db136 + 0x1] = _0x46e6b0['y'], this['tangents'][_0x3db136 + 0x2] = _0x46e6b0['z'], this['tangents'][_0x3db136 + 0x3] = _0x46e6b0['w']; } if (_0x27bfcc && this['indices']) for (_0x3db136 = 0x0; _0x3db136 < this['indices']['length']; _0x3db136 += 0x3) { var _0x173228 = this['indices'][_0x3db136 + 0x1]; this['indices'][_0x3db136 + 0x1] = this['indices'][_0x3db136 + 0x2], this['indices'][_0x3db136 + 0x2] = _0x173228; } return this; } , _0x4021bf['prototype']['merge'] = function(_0x41991b, _0x4b65c8) { if (void 0x0 === _0x4b65c8 && (_0x4b65c8 = !0x1), this['_validate'](), _0x41991b['_validate'](), !this['normals'] != !_0x41991b['normals'] || !this['tangents'] != !_0x41991b['tangents'] || !this['uvs'] != !_0x41991b['uvs'] || !this['uvs2'] != !_0x41991b['uvs2'] || !this['uvs3'] != !_0x41991b['uvs3'] || !this['uvs4'] != !_0x41991b['uvs4'] || !this['uvs5'] != !_0x41991b['uvs5'] || !this['uvs6'] != !_0x41991b['uvs6'] || !this['colors'] != !_0x41991b['colors'] || !this['matricesIndices'] != !_0x41991b['matricesIndices'] || !this['matricesWeights'] != !_0x41991b['matricesWeights'] || !this['matricesIndicesExtra'] != !_0x41991b['matricesIndicesExtra'] || !this['matricesWeightsExtra'] != !_0x41991b['matricesWeightsExtra']) throw new Error('Cannot\x20merge\x20vertex\x20data\x20that\x20do\x20not\x20have\x20the\x20same\x20set\x20of\x20attributes'); if (_0x41991b['indices']) { this['indices'] || (this['indices'] = []); var _0x36cf7d = this['positions'] ? this['positions']['length'] / 0x3 : 0x0; if (void 0x0 !== this['indices']['BYTES_PER_ELEMENT']) { var _0x579bf9 = this['indices']['length'] + _0x41991b['indices']['length'] , _0x48fc0b = _0x4b65c8 || this['indices']instanceof Uint32Array ? new Uint32Array(_0x579bf9) : new Uint16Array(_0x579bf9); _0x48fc0b['set'](this['indices']); for (var _0x39fdfb = this['indices']['length'], _0x3f7f86 = 0x0; _0x3f7f86 < _0x41991b['indices']['length']; _0x3f7f86++) _0x48fc0b[_0x39fdfb + _0x3f7f86] = _0x41991b['indices'][_0x3f7f86] + _0x36cf7d; this['indices'] = _0x48fc0b; } else for (_0x3f7f86 = 0x0; _0x3f7f86 < _0x41991b['indices']['length']; _0x3f7f86++) this['indices']['push'](_0x41991b['indices'][_0x3f7f86] + _0x36cf7d); } return this['positions'] = this['_mergeElement'](this['positions'], _0x41991b['positions']), this['normals'] = this['_mergeElement'](this['normals'], _0x41991b['normals']), this['tangents'] = this['_mergeElement'](this['tangents'], _0x41991b['tangents']), this['uvs'] = this['_mergeElement'](this['uvs'], _0x41991b['uvs']), this['uvs2'] = this['_mergeElement'](this['uvs2'], _0x41991b['uvs2']), this['uvs3'] = this['_mergeElement'](this['uvs3'], _0x41991b['uvs3']), this['uvs4'] = this['_mergeElement'](this['uvs4'], _0x41991b['uvs4']), this['uvs5'] = this['_mergeElement'](this['uvs5'], _0x41991b['uvs5']), this['uvs6'] = this['_mergeElement'](this['uvs6'], _0x41991b['uvs6']), this['colors'] = this['_mergeElement'](this['colors'], _0x41991b['colors']), this['matricesIndices'] = this['_mergeElement'](this['matricesIndices'], _0x41991b['matricesIndices']), this['matricesWeights'] = this['_mergeElement'](this['matricesWeights'], _0x41991b['matricesWeights']), this['matricesIndicesExtra'] = this['_mergeElement'](this['matricesIndicesExtra'], _0x41991b['matricesIndicesExtra']), this['matricesWeightsExtra'] = this['_mergeElement'](this['matricesWeightsExtra'], _0x41991b['matricesWeightsExtra']), this; } , _0x4021bf['prototype']['_mergeElement'] = function(_0x1ebbbc, _0x598878) { if (!_0x1ebbbc) return _0x598878; if (!_0x598878) return _0x1ebbbc; var _0x5d7361 = _0x598878['length'] + _0x1ebbbc['length'] , _0xa643c6 = _0x1ebbbc instanceof Float32Array , _0x4a10a5 = _0x598878 instanceof Float32Array; if (_0xa643c6) { var _0x48f3f6 = new Float32Array(_0x5d7361); return _0x48f3f6['set'](_0x1ebbbc), _0x48f3f6['set'](_0x598878, _0x1ebbbc['length']), _0x48f3f6; } if (_0x4a10a5) { var _0x20fbe2 = _0x1ebbbc['slice'](0x0) , _0xfe1e9e = 0x0; for (_0x5d7361 = _0x598878['length']; _0xfe1e9e < _0x5d7361; _0xfe1e9e++) _0x20fbe2['push'](_0x598878[_0xfe1e9e]); return _0x20fbe2; } return _0x1ebbbc['concat'](_0x598878); } , _0x4021bf['prototype']['_validate'] = function() { if (!this['positions']) throw new Error('Positions\x20are\x20required'); var _0x4cf593 = function(_0x5a424f, _0x28e914) { var _0x3fd3e5 = _0x5e422a['b']['DeduceStride'](_0x5a424f); if (_0x28e914['length'] % _0x3fd3e5 != 0x0) throw new Error('The\x20' + _0x5a424f + 's\x20array\x20count\x20must\x20be\x20a\x20multiple\x20of\x20' + _0x3fd3e5); return _0x28e914['length'] / _0x3fd3e5; } , _0x34193c = _0x4cf593(_0x5e422a['b']['PositionKind'], this['positions']) , _0x24f21c = function(_0x35fe4c, _0x3bf5d0) { var _0x1fa6ab = _0x4cf593(_0x35fe4c, _0x3bf5d0); if (_0x1fa6ab !== _0x34193c) throw new Error('The\x20' + _0x35fe4c + 's\x20element\x20count\x20(' + _0x1fa6ab + ')\x20does\x20not\x20match\x20the\x20positions\x20count\x20(' + _0x34193c + ')'); }; this['normals'] && _0x24f21c(_0x5e422a['b']['NormalKind'], this['normals']), this['tangents'] && _0x24f21c(_0x5e422a['b']['TangentKind'], this['tangents']), this['uvs'] && _0x24f21c(_0x5e422a['b']['UVKind'], this['uvs']), this['uvs2'] && _0x24f21c(_0x5e422a['b']['UV2Kind'], this['uvs2']), this['uvs3'] && _0x24f21c(_0x5e422a['b']['UV3Kind'], this['uvs3']), this['uvs4'] && _0x24f21c(_0x5e422a['b']['UV4Kind'], this['uvs4']), this['uvs5'] && _0x24f21c(_0x5e422a['b']['UV5Kind'], this['uvs5']), this['uvs6'] && _0x24f21c(_0x5e422a['b']['UV6Kind'], this['uvs6']), this['colors'] && _0x24f21c(_0x5e422a['b']['ColorKind'], this['colors']), this['matricesIndices'] && _0x24f21c(_0x5e422a['b']['MatricesIndicesKind'], this['matricesIndices']), this['matricesWeights'] && _0x24f21c(_0x5e422a['b']['MatricesWeightsKind'], this['matricesWeights']), this['matricesIndicesExtra'] && _0x24f21c(_0x5e422a['b']['MatricesIndicesExtraKind'], this['matricesIndicesExtra']), this['matricesWeightsExtra'] && _0x24f21c(_0x5e422a['b']['MatricesWeightsExtraKind'], this['matricesWeightsExtra']); } , _0x4021bf['prototype']['serialize'] = function() { var _0x567966 = this['serialize'](); return this['positions'] && (_0x567966['positions'] = this['positions']), this['normals'] && (_0x567966['normals'] = this['normals']), this['tangents'] && (_0x567966['tangents'] = this['tangents']), this['uvs'] && (_0x567966['uvs'] = this['uvs']), this['uvs2'] && (_0x567966['uvs2'] = this['uvs2']), this['uvs3'] && (_0x567966['uvs3'] = this['uvs3']), this['uvs4'] && (_0x567966['uvs4'] = this['uvs4']), this['uvs5'] && (_0x567966['uvs5'] = this['uvs5']), this['uvs6'] && (_0x567966['uvs6'] = this['uvs6']), this['colors'] && (_0x567966['colors'] = this['colors']), this['matricesIndices'] && (_0x567966['matricesIndices'] = this['matricesIndices'], _0x567966['matricesIndices']['_isExpanded'] = !0x0), this['matricesWeights'] && (_0x567966['matricesWeights'] = this['matricesWeights']), this['matricesIndicesExtra'] && (_0x567966['matricesIndicesExtra'] = this['matricesIndicesExtra'], _0x567966['matricesIndicesExtra']['_isExpanded'] = !0x0), this['matricesWeightsExtra'] && (_0x567966['matricesWeightsExtra'] = this['matricesWeightsExtra']), _0x567966['indices'] = this['indices'], _0x567966; } , _0x4021bf['ExtractFromMesh'] = function(_0x5566e6, _0xfd6305, _0x1aaebf) { return _0x4021bf['_ExtractFrom'](_0x5566e6, _0xfd6305, _0x1aaebf); } , _0x4021bf['ExtractFromGeometry'] = function(_0x126340, _0x17f216, _0x13da39) { return _0x4021bf['_ExtractFrom'](_0x126340, _0x17f216, _0x13da39); } , _0x4021bf['_ExtractFrom'] = function(_0x43e3be, _0x503b10, _0x56d6e8) { var _0xe077d = new _0x4021bf(); return _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['PositionKind']) && (_0xe077d['positions'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['PositionKind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['NormalKind']) && (_0xe077d['normals'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['NormalKind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['TangentKind']) && (_0xe077d['tangents'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['TangentKind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['UVKind']) && (_0xe077d['uvs'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['UVKind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['UV2Kind']) && (_0xe077d['uvs2'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['UV2Kind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['UV3Kind']) && (_0xe077d['uvs3'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['UV3Kind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['UV4Kind']) && (_0xe077d['uvs4'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['UV4Kind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['UV5Kind']) && (_0xe077d['uvs5'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['UV5Kind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['UV6Kind']) && (_0xe077d['uvs6'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['UV6Kind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['ColorKind']) && (_0xe077d['colors'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['ColorKind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['MatricesIndicesKind']) && (_0xe077d['matricesIndices'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['MatricesIndicesKind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['MatricesWeightsKind']) && (_0xe077d['matricesWeights'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['MatricesWeightsKind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['MatricesIndicesExtraKind']) && (_0xe077d['matricesIndicesExtra'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['MatricesIndicesExtraKind'], _0x503b10, _0x56d6e8)), _0x43e3be['isVerticesDataPresent'](_0x5e422a['b']['MatricesWeightsExtraKind']) && (_0xe077d['matricesWeightsExtra'] = _0x43e3be['getVerticesData'](_0x5e422a['b']['MatricesWeightsExtraKind'], _0x503b10, _0x56d6e8)), _0xe077d['indices'] = _0x43e3be['getIndices'](_0x503b10, _0x56d6e8), _0xe077d; } , _0x4021bf['CreateRibbon'] = function(_0x54db63) { throw _0x563921['a']['WarnImport']('ribbonBuilder'); } , _0x4021bf['CreateBox'] = function(_0x1852ca) { throw _0x563921['a']['WarnImport']('boxBuilder'); } , _0x4021bf['CreateSphere'] = function(_0x31cac3) { throw _0x563921['a']['WarnImport']('sphereBuilder'); } , _0x4021bf['CreateCylinder'] = function(_0x3afe11) { throw _0x563921['a']['WarnImport']('cylinderBuilder'); } , _0x4021bf['CreateTorus'] = function(_0x5d12b7) { throw _0x563921['a']['WarnImport']('torusBuilder'); } , _0x4021bf['CreateLineSystem'] = function(_0x582efc) { throw _0x563921['a']['WarnImport']('linesBuilder'); } , _0x4021bf['CreateDashedLines'] = function(_0x30c394) { throw _0x563921['a']['WarnImport']('linesBuilder'); } , _0x4021bf['CreateGround'] = function(_0x2457ca) { throw _0x563921['a']['WarnImport']('groundBuilder'); } , _0x4021bf['CreateTiledGround'] = function(_0x12cd5d) { throw _0x563921['a']['WarnImport']('groundBuilder'); } , _0x4021bf['CreateGroundFromHeightMap'] = function(_0x26c347) { throw _0x563921['a']['WarnImport']('groundBuilder'); } , _0x4021bf['CreatePlane'] = function(_0x5f13a5) { throw _0x563921['a']['WarnImport']('planeBuilder'); } , _0x4021bf['CreateDisc'] = function(_0x175f02) { throw _0x563921['a']['WarnImport']('discBuilder'); } , _0x4021bf['CreatePolygon'] = function(_0xea07ae, _0x45cba2, _0x73a742, _0x1af069, _0xe4ec72, _0x528688) { throw _0x563921['a']['WarnImport']('polygonBuilder'); } , _0x4021bf['CreateIcoSphere'] = function(_0x36dbe2) { throw _0x563921['a']['WarnImport']('icoSphereBuilder'); } , _0x4021bf['CreatePolyhedron'] = function(_0x18dfbf) { throw _0x563921['a']['WarnImport']('polyhedronBuilder'); } , _0x4021bf['CreateTorusKnot'] = function(_0x4692ff) { throw _0x563921['a']['WarnImport']('torusKnotBuilder'); } , _0x4021bf['ComputeNormals'] = function(_0x4d8a93, _0x32d561, _0x5848d7, _0x18f0f0) { var _0x595a40 = 0x0 , _0x2ea197 = 0x0 , _0x44a844 = 0x0 , _0x2c8a39 = 0x0 , _0x21853a = 0x0 , _0x1f1a99 = 0x0 , _0x4ea858 = 0x0 , _0x1f733c = 0x0 , _0x1f1029 = 0x0 , _0x2ce111 = 0x0 , _0x4ef399 = 0x0 , _0x8ae1cf = 0x0 , _0x354e51 = 0x0 , _0x21077e = 0x0 , _0x5f2e4a = 0x0 , _0x4d77f5 = 0x0 , _0x34191b = 0x0 , _0x298641 = 0x0 , _0x1fae6d = 0x0 , _0x59acc2 = 0x0 , _0xebe995 = !0x1 , _0x3c1dc2 = !0x1 , _0x47c70c = !0x1 , _0x4af396 = !0x1 , _0x2e36f4 = 0x1 , _0x54217a = 0x0 , _0x4f78c1 = null; if (_0x18f0f0 && (_0xebe995 = !!_0x18f0f0['facetNormals'], _0x3c1dc2 = !!_0x18f0f0['facetPositions'], _0x47c70c = !!_0x18f0f0['facetPartitioning'], _0x2e36f4 = !0x0 === _0x18f0f0['useRightHandedSystem'] ? -0x1 : 0x1, _0x54217a = _0x18f0f0['ratio'] || 0x0, _0x4af396 = !!_0x18f0f0['depthSort'], _0x4f78c1 = _0x18f0f0['distanceTo'], _0x4af396)) { void 0x0 === _0x4f78c1 && (_0x4f78c1 = _0x39cf6f['x']['Zero']()); var _0x345f8d = _0x18f0f0['depthSortedFacets']; } var _0x29ddd4 = 0x0 , _0x1a71ec = 0x0 , _0x219672 = 0x0 , _0x2ca1bb = 0x0; if (_0x47c70c && _0x18f0f0 && _0x18f0f0['bbSize']) { var _0x57f700 = 0x0 , _0x5c50bc = 0x0 , _0x5b4f67 = 0x0 , _0x2944dd = 0x0 , _0x3fcac6 = 0x0 , _0x5ccd51 = 0x0 , _0x430c10 = 0x0 , _0x47b7bc = 0x0 , _0x4ffde1 = 0x0 , _0x30f76a = 0x0 , _0x2d505c = 0x0 , _0x226ebb = 0x0 , _0x228093 = 0x0 , _0x21d840 = 0x0 , _0x2017bd = 0x0 , _0x3d2a93 = 0x0 , _0x58e487 = _0x18f0f0['bbSize']['x'] > _0x18f0f0['bbSize']['y'] ? _0x18f0f0['bbSize']['x'] : _0x18f0f0['bbSize']['y']; _0x58e487 = _0x58e487 > _0x18f0f0['bbSize']['z'] ? _0x58e487 : _0x18f0f0['bbSize']['z'], _0x29ddd4 = _0x18f0f0['subDiv']['X'] * _0x54217a / _0x18f0f0['bbSize']['x'], _0x1a71ec = _0x18f0f0['subDiv']['Y'] * _0x54217a / _0x18f0f0['bbSize']['y'], _0x219672 = _0x18f0f0['subDiv']['Z'] * _0x54217a / _0x18f0f0['bbSize']['z'], _0x2ca1bb = _0x18f0f0['subDiv']['max'] * _0x18f0f0['subDiv']['max'], _0x18f0f0['facetPartitioning']['length'] = 0x0; } for (_0x595a40 = 0x0; _0x595a40 < _0x4d8a93['length']; _0x595a40++) _0x5848d7[_0x595a40] = 0x0; var _0x535753 = _0x32d561['length'] / 0x3 | 0x0; for (_0x595a40 = 0x0; _0x595a40 < _0x535753; _0x595a40++) { if (_0x354e51 = (_0x8ae1cf = 0x3 * _0x32d561[0x3 * _0x595a40]) + 0x1, _0x21077e = _0x8ae1cf + 0x2, _0x4d77f5 = (_0x5f2e4a = 0x3 * _0x32d561[0x3 * _0x595a40 + 0x1]) + 0x1, _0x34191b = _0x5f2e4a + 0x2, _0x1fae6d = (_0x298641 = 0x3 * _0x32d561[0x3 * _0x595a40 + 0x2]) + 0x1, _0x59acc2 = _0x298641 + 0x2, _0x2ea197 = _0x4d8a93[_0x8ae1cf] - _0x4d8a93[_0x5f2e4a], _0x44a844 = _0x4d8a93[_0x354e51] - _0x4d8a93[_0x4d77f5], _0x2c8a39 = _0x4d8a93[_0x21077e] - _0x4d8a93[_0x34191b], _0x21853a = _0x4d8a93[_0x298641] - _0x4d8a93[_0x5f2e4a], _0x1f1a99 = _0x4d8a93[_0x1fae6d] - _0x4d8a93[_0x4d77f5], _0x1f733c = _0x2e36f4 * (_0x44a844 * (_0x4ea858 = _0x4d8a93[_0x59acc2] - _0x4d8a93[_0x34191b]) - _0x2c8a39 * _0x1f1a99), _0x1f1029 = _0x2e36f4 * (_0x2c8a39 * _0x21853a - _0x2ea197 * _0x4ea858), _0x2ce111 = _0x2e36f4 * (_0x2ea197 * _0x1f1a99 - _0x44a844 * _0x21853a), _0x1f733c /= _0x4ef399 = 0x0 === (_0x4ef399 = Math['sqrt'](_0x1f733c * _0x1f733c + _0x1f1029 * _0x1f1029 + _0x2ce111 * _0x2ce111)) ? 0x1 : _0x4ef399, _0x1f1029 /= _0x4ef399, _0x2ce111 /= _0x4ef399, _0xebe995 && _0x18f0f0 && (_0x18f0f0['facetNormals'][_0x595a40]['x'] = _0x1f733c, _0x18f0f0['facetNormals'][_0x595a40]['y'] = _0x1f1029, _0x18f0f0['facetNormals'][_0x595a40]['z'] = _0x2ce111), _0x3c1dc2 && _0x18f0f0 && (_0x18f0f0['facetPositions'][_0x595a40]['x'] = (_0x4d8a93[_0x8ae1cf] + _0x4d8a93[_0x5f2e4a] + _0x4d8a93[_0x298641]) / 0x3, _0x18f0f0['facetPositions'][_0x595a40]['y'] = (_0x4d8a93[_0x354e51] + _0x4d8a93[_0x4d77f5] + _0x4d8a93[_0x1fae6d]) / 0x3, _0x18f0f0['facetPositions'][_0x595a40]['z'] = (_0x4d8a93[_0x21077e] + _0x4d8a93[_0x34191b] + _0x4d8a93[_0x59acc2]) / 0x3), _0x47c70c && _0x18f0f0 && (_0x57f700 = Math['floor']((_0x18f0f0['facetPositions'][_0x595a40]['x'] - _0x18f0f0['bInfo']['minimum']['x'] * _0x54217a) * _0x29ddd4), _0x5c50bc = Math['floor']((_0x18f0f0['facetPositions'][_0x595a40]['y'] - _0x18f0f0['bInfo']['minimum']['y'] * _0x54217a) * _0x1a71ec), _0x5b4f67 = Math['floor']((_0x18f0f0['facetPositions'][_0x595a40]['z'] - _0x18f0f0['bInfo']['minimum']['z'] * _0x54217a) * _0x219672), _0x2944dd = Math['floor']((_0x4d8a93[_0x8ae1cf] - _0x18f0f0['bInfo']['minimum']['x'] * _0x54217a) * _0x29ddd4), _0x3fcac6 = Math['floor']((_0x4d8a93[_0x354e51] - _0x18f0f0['bInfo']['minimum']['y'] * _0x54217a) * _0x1a71ec), _0x5ccd51 = Math['floor']((_0x4d8a93[_0x21077e] - _0x18f0f0['bInfo']['minimum']['z'] * _0x54217a) * _0x219672), _0x430c10 = Math['floor']((_0x4d8a93[_0x5f2e4a] - _0x18f0f0['bInfo']['minimum']['x'] * _0x54217a) * _0x29ddd4), _0x47b7bc = Math['floor']((_0x4d8a93[_0x4d77f5] - _0x18f0f0['bInfo']['minimum']['y'] * _0x54217a) * _0x1a71ec), _0x4ffde1 = Math['floor']((_0x4d8a93[_0x34191b] - _0x18f0f0['bInfo']['minimum']['z'] * _0x54217a) * _0x219672), _0x30f76a = Math['floor']((_0x4d8a93[_0x298641] - _0x18f0f0['bInfo']['minimum']['x'] * _0x54217a) * _0x29ddd4), _0x2d505c = Math['floor']((_0x4d8a93[_0x1fae6d] - _0x18f0f0['bInfo']['minimum']['y'] * _0x54217a) * _0x1a71ec), _0x226ebb = Math['floor']((_0x4d8a93[_0x59acc2] - _0x18f0f0['bInfo']['minimum']['z'] * _0x54217a) * _0x219672), _0x21d840 = _0x2944dd + _0x18f0f0['subDiv']['max'] * _0x3fcac6 + _0x2ca1bb * _0x5ccd51, _0x2017bd = _0x430c10 + _0x18f0f0['subDiv']['max'] * _0x47b7bc + _0x2ca1bb * _0x4ffde1, _0x3d2a93 = _0x30f76a + _0x18f0f0['subDiv']['max'] * _0x2d505c + _0x2ca1bb * _0x226ebb, _0x228093 = _0x57f700 + _0x18f0f0['subDiv']['max'] * _0x5c50bc + _0x2ca1bb * _0x5b4f67, _0x18f0f0['facetPartitioning'][_0x228093] = _0x18f0f0['facetPartitioning'][_0x228093] ? _0x18f0f0['facetPartitioning'][_0x228093] : new Array(), _0x18f0f0['facetPartitioning'][_0x21d840] = _0x18f0f0['facetPartitioning'][_0x21d840] ? _0x18f0f0['facetPartitioning'][_0x21d840] : new Array(), _0x18f0f0['facetPartitioning'][_0x2017bd] = _0x18f0f0['facetPartitioning'][_0x2017bd] ? _0x18f0f0['facetPartitioning'][_0x2017bd] : new Array(), _0x18f0f0['facetPartitioning'][_0x3d2a93] = _0x18f0f0['facetPartitioning'][_0x3d2a93] ? _0x18f0f0['facetPartitioning'][_0x3d2a93] : new Array(), _0x18f0f0['facetPartitioning'][_0x21d840]['push'](_0x595a40), _0x2017bd != _0x21d840 && _0x18f0f0['facetPartitioning'][_0x2017bd]['push'](_0x595a40), _0x3d2a93 != _0x2017bd && _0x3d2a93 != _0x21d840 && _0x18f0f0['facetPartitioning'][_0x3d2a93]['push'](_0x595a40), _0x228093 != _0x21d840 && _0x228093 != _0x2017bd && _0x228093 != _0x3d2a93 && _0x18f0f0['facetPartitioning'][_0x228093]['push'](_0x595a40)), _0x4af396 && _0x18f0f0 && _0x18f0f0['facetPositions']) { var _0x227f65 = _0x345f8d[_0x595a40]; _0x227f65['ind'] = 0x3 * _0x595a40, _0x227f65['sqDistance'] = _0x39cf6f['x']['DistanceSquared'](_0x18f0f0['facetPositions'][_0x595a40], _0x4f78c1); } _0x5848d7[_0x8ae1cf] += _0x1f733c, _0x5848d7[_0x354e51] += _0x1f1029, _0x5848d7[_0x21077e] += _0x2ce111, _0x5848d7[_0x5f2e4a] += _0x1f733c, _0x5848d7[_0x4d77f5] += _0x1f1029, _0x5848d7[_0x34191b] += _0x2ce111, _0x5848d7[_0x298641] += _0x1f733c, _0x5848d7[_0x1fae6d] += _0x1f1029, _0x5848d7[_0x59acc2] += _0x2ce111; } for (_0x595a40 = 0x0; _0x595a40 < _0x5848d7['length'] / 0x3; _0x595a40++) _0x1f733c = _0x5848d7[0x3 * _0x595a40], _0x1f1029 = _0x5848d7[0x3 * _0x595a40 + 0x1], _0x2ce111 = _0x5848d7[0x3 * _0x595a40 + 0x2], _0x1f733c /= _0x4ef399 = 0x0 === (_0x4ef399 = Math['sqrt'](_0x1f733c * _0x1f733c + _0x1f1029 * _0x1f1029 + _0x2ce111 * _0x2ce111)) ? 0x1 : _0x4ef399, _0x1f1029 /= _0x4ef399, _0x2ce111 /= _0x4ef399, _0x5848d7[0x3 * _0x595a40] = _0x1f733c, _0x5848d7[0x3 * _0x595a40 + 0x1] = _0x1f1029, _0x5848d7[0x3 * _0x595a40 + 0x2] = _0x2ce111; } , _0x4021bf['_ComputeSides'] = function(_0x1fee06, _0x39a402, _0x14639f, _0x512126, _0x4b25ff, _0x207723, _0x49dda4) { var _0x137b18, _0x5117f1, _0x346d62 = _0x14639f['length'], _0x567dd3 = _0x512126['length']; switch (_0x1fee06 = _0x1fee06 || _0x4021bf['DEFAULTSIDE']) { case _0x4021bf['FRONTSIDE']: break; case _0x4021bf['BACKSIDE']: var _0x3b831e; for (_0x137b18 = 0x0; _0x137b18 < _0x346d62; _0x137b18 += 0x3) _0x3b831e = _0x14639f[_0x137b18], _0x14639f[_0x137b18] = _0x14639f[_0x137b18 + 0x2], _0x14639f[_0x137b18 + 0x2] = _0x3b831e; for (_0x5117f1 = 0x0; _0x5117f1 < _0x567dd3; _0x5117f1++) _0x512126[_0x5117f1] = -_0x512126[_0x5117f1]; break; case _0x4021bf['DOUBLESIDE']: for (var _0x2ab956 = _0x39a402['length'], _0x18203f = _0x2ab956 / 0x3, _0x479442 = 0x0; _0x479442 < _0x2ab956; _0x479442++) _0x39a402[_0x2ab956 + _0x479442] = _0x39a402[_0x479442]; for (_0x137b18 = 0x0; _0x137b18 < _0x346d62; _0x137b18 += 0x3) _0x14639f[_0x137b18 + _0x346d62] = _0x14639f[_0x137b18 + 0x2] + _0x18203f, _0x14639f[_0x137b18 + 0x1 + _0x346d62] = _0x14639f[_0x137b18 + 0x1] + _0x18203f, _0x14639f[_0x137b18 + 0x2 + _0x346d62] = _0x14639f[_0x137b18] + _0x18203f; for (_0x5117f1 = 0x0; _0x5117f1 < _0x567dd3; _0x5117f1++) _0x512126[_0x567dd3 + _0x5117f1] = -_0x512126[_0x5117f1]; var _0xc0955e = _0x4b25ff['length'] , _0x523498 = 0x0; for (_0x523498 = 0x0; _0x523498 < _0xc0955e; _0x523498++) _0x4b25ff[_0x523498 + _0xc0955e] = _0x4b25ff[_0x523498]; for (_0x207723 = _0x207723 || new _0x39cf6f['y'](0x0,0x0,0x1,0x1), _0x49dda4 = _0x49dda4 || new _0x39cf6f['y'](0x0,0x0,0x1,0x1), _0x523498 = 0x0, _0x137b18 = 0x0; _0x137b18 < _0xc0955e / 0x2; _0x137b18++) _0x4b25ff[_0x523498] = _0x207723['x'] + (_0x207723['z'] - _0x207723['x']) * _0x4b25ff[_0x523498], _0x4b25ff[_0x523498 + 0x1] = _0x207723['y'] + (_0x207723['w'] - _0x207723['y']) * _0x4b25ff[_0x523498 + 0x1], _0x4b25ff[_0x523498 + _0xc0955e] = _0x49dda4['x'] + (_0x49dda4['z'] - _0x49dda4['x']) * _0x4b25ff[_0x523498 + _0xc0955e], _0x4b25ff[_0x523498 + _0xc0955e + 0x1] = _0x49dda4['y'] + (_0x49dda4['w'] - _0x49dda4['y']) * _0x4b25ff[_0x523498 + _0xc0955e + 0x1], _0x523498 += 0x2; } } , _0x4021bf['ImportVertexData'] = function(_0x3aeec5, _0x5d85ad) { var _0x3ed28f = new _0x4021bf() , _0xf89a5a = _0x3aeec5['positions']; _0xf89a5a && _0x3ed28f['set'](_0xf89a5a, _0x5e422a['b']['PositionKind']); var _0xcae9ed = _0x3aeec5['normals']; _0xcae9ed && _0x3ed28f['set'](_0xcae9ed, _0x5e422a['b']['NormalKind']); var _0x48ac7d = _0x3aeec5['tangents']; _0x48ac7d && _0x3ed28f['set'](_0x48ac7d, _0x5e422a['b']['TangentKind']); var _0x2a9e26 = _0x3aeec5['uvs']; _0x2a9e26 && _0x3ed28f['set'](_0x2a9e26, _0x5e422a['b']['UVKind']); var _0x4f889e = _0x3aeec5['uv2s']; _0x4f889e && _0x3ed28f['set'](_0x4f889e, _0x5e422a['b']['UV2Kind']); var _0x519f1e = _0x3aeec5['uv3s']; _0x519f1e && _0x3ed28f['set'](_0x519f1e, _0x5e422a['b']['UV3Kind']); var _0x5217ee = _0x3aeec5['uv4s']; _0x5217ee && _0x3ed28f['set'](_0x5217ee, _0x5e422a['b']['UV4Kind']); var _0x51ae3d = _0x3aeec5['uv5s']; _0x51ae3d && _0x3ed28f['set'](_0x51ae3d, _0x5e422a['b']['UV5Kind']); var _0x4c9700 = _0x3aeec5['uv6s']; _0x4c9700 && _0x3ed28f['set'](_0x4c9700, _0x5e422a['b']['UV6Kind']); var _0x2a2d73 = _0x3aeec5['colors']; _0x2a2d73 && _0x3ed28f['set'](_0x39cf6f['f']['CheckColors4'](_0x2a2d73, _0xf89a5a['length'] / 0x3), _0x5e422a['b']['ColorKind']); var _0x444b76 = _0x3aeec5['matricesIndices']; _0x444b76 && _0x3ed28f['set'](_0x444b76, _0x5e422a['b']['MatricesIndicesKind']); var _0x37bd72 = _0x3aeec5['matricesWeights']; _0x37bd72 && _0x3ed28f['set'](_0x37bd72, _0x5e422a['b']['MatricesWeightsKind']); var _0x5973a7 = _0x3aeec5['indices']; _0x5973a7 && (_0x3ed28f['indices'] = _0x5973a7), _0x5d85ad['setAllVerticesData'](_0x3ed28f, _0x3aeec5['updatable']); } , _0x4021bf['FRONTSIDE'] = 0x0, _0x4021bf['BACKSIDE'] = 0x1, _0x4021bf['DOUBLESIDE'] = 0x2, _0x4021bf['DEFAULTSIDE'] = 0x0, _0x4021bf; }(); } , function(_0x4deefd, _0x4668b4, _0x40dbb2) { 'use strict'; _0x40dbb2['d'](_0x4668b4, 'a', function() { return _0x17e639; }), _0x40dbb2['d'](_0x4668b4, 'b', function() { return _0x51f691; }); var _0x4d4f7b = _0x40dbb2(0x1) , _0x17e639 = function() { function _0x112942() {} return _0x112942['NAME_EFFECTLAYER'] = 'EffectLayer', _0x112942['NAME_LAYER'] = 'Layer', _0x112942['NAME_LENSFLARESYSTEM'] = 'LensFlareSystem', _0x112942['NAME_BOUNDINGBOXRENDERER'] = 'BoundingBoxRenderer', _0x112942['NAME_PARTICLESYSTEM'] = 'ParticleSystem', _0x112942['NAME_GAMEPAD'] = 'Gamepad', _0x112942['NAME_SIMPLIFICATIONQUEUE'] = 'SimplificationQueue', _0x112942['NAME_GEOMETRYBUFFERRENDERER'] = 'GeometryBufferRenderer', _0x112942['NAME_DEPTHRENDERER'] = 'DepthRenderer', _0x112942['NAME_POSTPROCESSRENDERPIPELINEMANAGER'] = 'PostProcessRenderPipelineManager', _0x112942['NAME_SPRITE'] = 'Sprite', _0x112942['NAME_OUTLINERENDERER'] = 'Outline', _0x112942['NAME_PROCEDURALTEXTURE'] = 'ProceduralTexture', _0x112942['NAME_SHADOWGENERATOR'] = 'ShadowGenerator', _0x112942['NAME_OCTREE'] = 'Octree', _0x112942['NAME_PHYSICSENGINE'] = 'PhysicsEngine', _0x112942['NAME_AUDIO'] = 'Audio', _0x112942['STEP_ISREADYFORMESH_EFFECTLAYER'] = 0x0, _0x112942['STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER'] = 0x0, _0x112942['STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER'] = 0x0, _0x112942['STEP_ACTIVEMESH_BOUNDINGBOXRENDERER'] = 0x0, _0x112942['STEP_CAMERADRAWRENDERTARGET_EFFECTLAYER'] = 0x1, _0x112942['STEP_BEFORECAMERADRAW_EFFECTLAYER'] = 0x0, _0x112942['STEP_BEFORECAMERADRAW_LAYER'] = 0x1, _0x112942['STEP_BEFORERENDERTARGETDRAW_LAYER'] = 0x0, _0x112942['STEP_BEFORERENDERINGMESH_OUTLINE'] = 0x0, _0x112942['STEP_AFTERRENDERINGMESH_OUTLINE'] = 0x0, _0x112942['STEP_AFTERRENDERINGGROUPDRAW_EFFECTLAYER_DRAW'] = 0x0, _0x112942['STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER'] = 0x1, _0x112942['STEP_BEFORECAMERAUPDATE_SIMPLIFICATIONQUEUE'] = 0x0, _0x112942['STEP_BEFORECAMERAUPDATE_GAMEPAD'] = 0x1, _0x112942['STEP_BEFORECLEAR_PROCEDURALTEXTURE'] = 0x0, _0x112942['STEP_AFTERRENDERTARGETDRAW_LAYER'] = 0x0, _0x112942['STEP_AFTERCAMERADRAW_EFFECTLAYER'] = 0x0, _0x112942['STEP_AFTERCAMERADRAW_LENSFLARESYSTEM'] = 0x1, _0x112942['STEP_AFTERCAMERADRAW_EFFECTLAYER_DRAW'] = 0x2, _0x112942['STEP_AFTERCAMERADRAW_LAYER'] = 0x3, _0x112942['STEP_AFTERRENDER_AUDIO'] = 0x0, _0x112942['STEP_GATHERRENDERTARGETS_SHADOWGENERATOR'] = 0x0, _0x112942['STEP_GATHERRENDERTARGETS_GEOMETRYBUFFERRENDERER'] = 0x1, _0x112942['STEP_GATHERRENDERTARGETS_DEPTHRENDERER'] = 0x2, _0x112942['STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER'] = 0x3, _0x112942['STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER'] = 0x0, _0x112942['STEP_POINTERMOVE_SPRITE'] = 0x0, _0x112942['STEP_POINTERDOWN_SPRITE'] = 0x0, _0x112942['STEP_POINTERUP_SPRITE'] = 0x0, _0x112942; }() , _0x51f691 = function(_0x5d7dda) { function _0x3ea5dc(_0x4286ba) { return _0x5d7dda['apply'](this, _0x4286ba) || this; } return _0x4d4f7b['d'](_0x3ea5dc, _0x5d7dda), _0x3ea5dc['Create'] = function() { return Object['create'](_0x3ea5dc['prototype']); } , _0x3ea5dc['prototype']['registerStep'] = function(_0x4b333f, _0x230dcc, _0x1962ca) { var _0x30cd4b = 0x0; for (Number['MAX_VALUE']; _0x30cd4b < this['length']; _0x30cd4b++) { if (_0x4b333f < this[_0x30cd4b]['index']) break; } this['splice'](_0x30cd4b, 0x0, { 'index': _0x4b333f, 'component': _0x230dcc, 'action': _0x1962ca['bind'](_0x230dcc) }); } , _0x3ea5dc['prototype']['clear'] = function() { this['length'] = 0x0; } , _0x3ea5dc; }(Array); } , function(_0x34bb99, _0x413ca5, _0x44c3bb) { 'use strict'; _0x44c3bb['d'](_0x413ca5, 'a', function() { return _0x321091; }); var _0x45da8d = _0x44c3bb(0x6) , _0x5545aa = _0x44c3bb(0x10) , _0x24ac2a = _0x44c3bb(0x0) , _0x20b21e = _0x44c3bb(0x17) , _0x43a3d4 = _0x44c3bb(0x4) , _0x791be4 = _0x44c3bb(0x26) , _0x321091 = function() { function _0x3b68a9() {} return _0x3b68a9['BindEyePosition'] = function(_0x2fd8e7, _0x59f0a0) { if (_0x59f0a0['_forcedViewPosition']) _0x2fd8e7['setVector3']('vEyePosition', _0x59f0a0['_forcedViewPosition']); else { var _0x4bf9b0 = _0x59f0a0['activeCamera']['globalPosition']; _0x4bf9b0 || (_0x4bf9b0 = _0x59f0a0['activeCamera']['devicePosition']), _0x2fd8e7['setVector3']('vEyePosition', _0x59f0a0['_mirroredCameraPosition'] ? _0x59f0a0['_mirroredCameraPosition'] : _0x4bf9b0); } } , _0x3b68a9['PrepareDefinesForMergedUV'] = function(_0x267e7c, _0x38399f, _0x43b73a) { _0x38399f['_needUVs'] = !0x0, _0x38399f[_0x43b73a] = !0x0, _0x267e7c['getTextureMatrix']()['isIdentityAs3x2']() ? (_0x38399f[_0x43b73a + 'DIRECTUV'] = _0x267e7c['coordinatesIndex'] + 0x1, 0x0 === _0x267e7c['coordinatesIndex'] ? _0x38399f['MAINUV1'] = !0x0 : _0x38399f['MAINUV2'] = !0x0) : _0x38399f[_0x43b73a + 'DIRECTUV'] = 0x0; } , _0x3b68a9['BindTextureMatrix'] = function(_0x5eda22, _0x27f850, _0x52587b) { var _0x19a28b = _0x5eda22['getTextureMatrix'](); _0x19a28b['isIdentityAs3x2']() || _0x27f850['updateMatrix'](_0x52587b + 'Matrix', _0x19a28b); } , _0x3b68a9['PrepareDefinesForMisc'] = function(_0x42a3b3, _0x58d90f, _0x2059fd, _0x1a2799, _0xa589a8, _0x2193ac, _0x59fa4c) { _0x59fa4c['_areMiscDirty'] && (_0x59fa4c['LOGARITHMICDEPTH'] = _0x2059fd, _0x59fa4c['POINTSIZE'] = _0x1a2799, _0x59fa4c['FOG'] = _0x58d90f['fogEnabled'] && _0x42a3b3['applyFog'] && _0x58d90f['fogMode'] !== _0x5545aa['a']['FOGMODE_NONE'] && _0xa589a8, _0x59fa4c['NONUNIFORMSCALING'] = _0x42a3b3['nonUniformScaling'], _0x59fa4c['ALPHATEST'] = _0x2193ac); } , _0x3b68a9['PrepareDefinesForFrameBoundValues'] = function(_0x21e80e, _0x1346ec, _0x52f971, _0x15b5de, _0x464de9) { void 0x0 === _0x464de9 && (_0x464de9 = null); var _0x2dbace, _0x32b621, _0x479462, _0x8e38d, _0x5b8f68 = !0x1; _0x2dbace = null == _0x464de9 ? void 0x0 !== _0x21e80e['clipPlane'] && null !== _0x21e80e['clipPlane'] : _0x464de9, _0x32b621 = null == _0x464de9 ? void 0x0 !== _0x21e80e['clipPlane2'] && null !== _0x21e80e['clipPlane2'] : _0x464de9, _0x479462 = null == _0x464de9 ? void 0x0 !== _0x21e80e['clipPlane3'] && null !== _0x21e80e['clipPlane3'] : _0x464de9, _0x8e38d = null == _0x464de9 ? void 0x0 !== _0x21e80e['clipPlane4'] && null !== _0x21e80e['clipPlane4'] : _0x464de9, _0x52f971['CLIPPLANE'] !== _0x2dbace && (_0x52f971['CLIPPLANE'] = _0x2dbace, _0x5b8f68 = !0x0), _0x52f971['CLIPPLANE2'] !== _0x32b621 && (_0x52f971['CLIPPLANE2'] = _0x32b621, _0x5b8f68 = !0x0), _0x52f971['CLIPPLANE3'] !== _0x479462 && (_0x52f971['CLIPPLANE3'] = _0x479462, _0x5b8f68 = !0x0), _0x52f971['CLIPPLANE4'] !== _0x8e38d && (_0x52f971['CLIPPLANE4'] = _0x8e38d, _0x5b8f68 = !0x0), _0x52f971['DEPTHPREPASS'] !== !_0x1346ec['getColorWrite']() && (_0x52f971['DEPTHPREPASS'] = !_0x52f971['DEPTHPREPASS'], _0x5b8f68 = !0x0), _0x52f971['INSTANCES'] !== _0x15b5de && (_0x52f971['INSTANCES'] = _0x15b5de, _0x5b8f68 = !0x0), _0x5b8f68 && _0x52f971['markAsUnprocessed'](); } , _0x3b68a9['PrepareDefinesForAttributes'] = function(_0x3a4aae, _0x7fb7e6, _0x1db7a9, _0x7ad21f, _0x730a0a, _0x28fa40) { if (void 0x0 === _0x730a0a && (_0x730a0a = !0x1), void 0x0 === _0x28fa40 && (_0x28fa40 = !0x0), !_0x7fb7e6['_areAttributesDirty'] && _0x7fb7e6['_needNormals'] === _0x7fb7e6['_normals'] && _0x7fb7e6['_needUVs'] === _0x7fb7e6['_uvs']) return !0x1; if (_0x7fb7e6['_normals'] = _0x7fb7e6['_needNormals'], _0x7fb7e6['_uvs'] = _0x7fb7e6['_needUVs'], _0x7fb7e6['NORMAL'] = _0x7fb7e6['_needNormals'] && _0x3a4aae['isVerticesDataPresent'](_0x43a3d4['b']['NormalKind']), _0x7fb7e6['_needNormals'] && _0x3a4aae['isVerticesDataPresent'](_0x43a3d4['b']['TangentKind']) && (_0x7fb7e6['TANGENT'] = !0x0), _0x7fb7e6['_needUVs'] ? (_0x7fb7e6['UV1'] = _0x3a4aae['isVerticesDataPresent'](_0x43a3d4['b']['UVKind']), _0x7fb7e6['UV2'] = _0x3a4aae['isVerticesDataPresent'](_0x43a3d4['b']['UV2Kind'])) : (_0x7fb7e6['UV1'] = !0x1, _0x7fb7e6['UV2'] = !0x1), _0x1db7a9) { var _0x461790 = _0x3a4aae['useVertexColors'] && _0x3a4aae['isVerticesDataPresent'](_0x43a3d4['b']['ColorKind']); _0x7fb7e6['VERTEXCOLOR'] = _0x461790, _0x7fb7e6['VERTEXALPHA'] = _0x3a4aae['hasVertexAlpha'] && _0x461790 && _0x28fa40; } if (_0x7ad21f) if (_0x3a4aae['useBones'] && _0x3a4aae['computeBonesUsingShaders'] && _0x3a4aae['skeleton']) { _0x7fb7e6['NUM_BONE_INFLUENCERS'] = _0x3a4aae['numBoneInfluencers']; var _0x3d75d3 = void 0x0 !== _0x7fb7e6['BONETEXTURE']; _0x3a4aae['skeleton']['isUsingTextureForMatrices'] && _0x3d75d3 ? _0x7fb7e6['BONETEXTURE'] = !0x0 : (_0x7fb7e6['BonesPerMesh'] = _0x3a4aae['skeleton']['bones']['length'] + 0x1, _0x7fb7e6['BONETEXTURE'] = !_0x3d75d3 && void 0x0); } else _0x7fb7e6['NUM_BONE_INFLUENCERS'] = 0x0, _0x7fb7e6['BonesPerMesh'] = 0x0; if (_0x730a0a) { var _0x58652a = _0x3a4aae['morphTargetManager']; _0x58652a ? (_0x7fb7e6['MORPHTARGETS_TANGENT'] = _0x58652a['supportsTangents'] && _0x7fb7e6['TANGENT'], _0x7fb7e6['MORPHTARGETS_NORMAL'] = _0x58652a['supportsNormals'] && _0x7fb7e6['NORMAL'], _0x7fb7e6['MORPHTARGETS'] = _0x58652a['numInfluencers'] > 0x0, _0x7fb7e6['NUM_MORPH_INFLUENCERS'] = _0x58652a['numInfluencers']) : (_0x7fb7e6['MORPHTARGETS_TANGENT'] = !0x1, _0x7fb7e6['MORPHTARGETS_NORMAL'] = !0x1, _0x7fb7e6['MORPHTARGETS'] = !0x1, _0x7fb7e6['NUM_MORPH_INFLUENCERS'] = 0x0); } return !0x0; } , _0x3b68a9['PrepareDefinesForMultiview'] = function(_0x18db83, _0x2463a1) { if (_0x18db83['activeCamera']) { var _0x28ceb8 = _0x2463a1['MULTIVIEW']; _0x2463a1['MULTIVIEW'] = null !== _0x18db83['activeCamera']['outputRenderTarget'] && _0x18db83['activeCamera']['outputRenderTarget']['getViewCount']() > 0x1, _0x2463a1['MULTIVIEW'] != _0x28ceb8 && _0x2463a1['markAsUnprocessed'](); } } , _0x3b68a9['PrepareDefinesForLights'] = function(_0x260f5f, _0x3802f7, _0x167425, _0x16554f, _0x246135, _0x2ca294) { if (void 0x0 === _0x246135 && (_0x246135 = 0x4), void 0x0 === _0x2ca294 && (_0x2ca294 = !0x1), !_0x167425['_areLightsDirty']) return _0x167425['_needNormals']; var _0x288f3e = 0x0 , _0x4a190a = !0x1 , _0x3134f1 = !0x1 , _0x20e2a2 = !0x1 , _0x4e9c25 = !0x1 , _0x57823b = !0x1; if (_0x260f5f['lightsEnabled'] && !_0x2ca294) for (var _0x58c9a0 = 0x0, _0x16c35e = _0x3802f7['lightSources']; _0x58c9a0 < _0x16c35e['length']; _0x58c9a0++) { var _0x4ec906 = _0x16c35e[_0x58c9a0]; switch (_0x4a190a = !0x0, void 0x0 === _0x167425['LIGHT' + _0x288f3e] && (_0x3134f1 = !0x0), _0x167425['LIGHT' + _0x288f3e] = !0x0, _0x167425['SPOTLIGHT' + _0x288f3e] = !0x1, _0x167425['HEMILIGHT' + _0x288f3e] = !0x1, _0x167425['POINTLIGHT' + _0x288f3e] = !0x1, _0x167425['DIRLIGHT' + _0x288f3e] = !0x1, _0x4ec906['prepareLightSpecificDefines'](_0x167425, _0x288f3e), _0x167425['LIGHT_FALLOFF_PHYSICAL' + _0x288f3e] = !0x1, _0x167425['LIGHT_FALLOFF_GLTF' + _0x288f3e] = !0x1, _0x167425['LIGHT_FALLOFF_STANDARD' + _0x288f3e] = !0x1, _0x4ec906['falloffType']) { case _0x791be4['a']['FALLOFF_GLTF']: _0x167425['LIGHT_FALLOFF_GLTF' + _0x288f3e] = !0x0; break; case _0x791be4['a']['FALLOFF_PHYSICAL']: _0x167425['LIGHT_FALLOFF_PHYSICAL' + _0x288f3e] = !0x0; break; case _0x791be4['a']['FALLOFF_STANDARD']: _0x167425['LIGHT_FALLOFF_STANDARD' + _0x288f3e] = !0x0; } if (_0x16554f && !_0x4ec906['specular']['equalsFloats'](0x0, 0x0, 0x0) && (_0x57823b = !0x0), _0x167425['SHADOW' + _0x288f3e] = !0x1, _0x167425['SHADOWPCF' + _0x288f3e] = !0x1, _0x167425['SHADOWPCSS' + _0x288f3e] = !0x1, _0x167425['SHADOWPOISSON' + _0x288f3e] = !0x1, _0x167425['SHADOWESM' + _0x288f3e] = !0x1, _0x167425['SHADOWCUBE' + _0x288f3e] = !0x1, _0x167425['SHADOWLOWQUALITY' + _0x288f3e] = !0x1, _0x167425['SHADOWMEDIUMQUALITY' + _0x288f3e] = !0x1, _0x3802f7 && _0x3802f7['receiveShadows'] && _0x260f5f['shadowsEnabled'] && _0x4ec906['shadowEnabled']) { var _0x961a36 = _0x4ec906['getShadowGenerator'](); if (_0x961a36) { var _0x173a1c = _0x961a36['getShadowMap'](); _0x173a1c && _0x173a1c['renderList'] && _0x173a1c['renderList']['length'] > 0x0 && (_0x4e9c25 = !0x0, _0x961a36['prepareDefines'](_0x167425, _0x288f3e)); } } if (_0x4ec906['lightmapMode'] != _0x791be4['a']['LIGHTMAP_DEFAULT'] ? (_0x20e2a2 = !0x0, _0x167425['LIGHTMAPEXCLUDED' + _0x288f3e] = !0x0, _0x167425['LIGHTMAPNOSPECULAR' + _0x288f3e] = _0x4ec906['lightmapMode'] == _0x791be4['a']['LIGHTMAP_SHADOWSONLY']) : (_0x167425['LIGHTMAPEXCLUDED' + _0x288f3e] = !0x1, _0x167425['LIGHTMAPNOSPECULAR' + _0x288f3e] = !0x1), ++_0x288f3e === _0x246135) break; } _0x167425['SPECULARTERM'] = _0x57823b, _0x167425['SHADOWS'] = _0x4e9c25; for (var _0x87343d = _0x288f3e; _0x87343d < _0x246135; _0x87343d++) void 0x0 !== _0x167425['LIGHT' + _0x87343d] && (_0x167425['LIGHT' + _0x87343d] = !0x1, _0x167425['HEMILIGHT' + _0x87343d] = !0x1, _0x167425['POINTLIGHT' + _0x87343d] = !0x1, _0x167425['DIRLIGHT' + _0x87343d] = !0x1, _0x167425['SPOTLIGHT' + _0x87343d] = !0x1, _0x167425['SHADOW' + _0x87343d] = !0x1, _0x167425['SHADOWPCF' + _0x87343d] = !0x1, _0x167425['SHADOWPCSS' + _0x87343d] = !0x1, _0x167425['SHADOWPOISSON' + _0x87343d] = !0x1, _0x167425['SHADOWESM' + _0x87343d] = !0x1, _0x167425['SHADOWCUBE' + _0x87343d] = !0x1, _0x167425['SHADOWLOWQUALITY' + _0x87343d] = !0x1, _0x167425['SHADOWMEDIUMQUALITY' + _0x87343d] = !0x1); var _0x476772 = _0x260f5f['getEngine']()['getCaps'](); return void 0x0 === _0x167425['SHADOWFLOAT'] && (_0x3134f1 = !0x0), _0x167425['SHADOWFLOAT'] = _0x4e9c25 && (_0x476772['textureFloatRender'] && _0x476772['textureFloatLinearFiltering'] || _0x476772['textureHalfFloatRender'] && _0x476772['textureHalfFloatLinearFiltering']), _0x167425['LIGHTMAPEXCLUDED'] = _0x20e2a2, _0x3134f1 && _0x167425['rebuild'](), _0x4a190a; } , _0x3b68a9['PrepareUniformsAndSamplersList'] = function(_0x16fdc7, _0x2545d6, _0x56dd47, _0xb29a6d) { var _0xf47c9e; void 0x0 === _0xb29a6d && (_0xb29a6d = 0x4); var _0x29accb = null; if (_0x16fdc7['uniformsNames']) { var _0x4b2917 = _0x16fdc7; _0xf47c9e = _0x4b2917['uniformsNames'], _0x29accb = _0x4b2917['uniformBuffersNames'], _0x2545d6 = _0x4b2917['samplers'], _0x56dd47 = _0x4b2917['defines'], _0xb29a6d = _0x4b2917['maxSimultaneousLights']; } else _0xf47c9e = _0x16fdc7, _0x2545d6 || (_0x2545d6 = []); for (var _0x380ea6 = 0x0; _0x380ea6 < _0xb29a6d && _0x56dd47['LIGHT' + _0x380ea6]; _0x380ea6++) _0xf47c9e['push']('vLightData' + _0x380ea6, 'vLightDiffuse' + _0x380ea6, 'vLightSpecular' + _0x380ea6, 'vLightDirection' + _0x380ea6, 'vLightFalloff' + _0x380ea6, 'vLightGround' + _0x380ea6, 'lightMatrix' + _0x380ea6, 'shadowsInfo' + _0x380ea6, 'depthValues' + _0x380ea6), _0x29accb && _0x29accb['push']('Light' + _0x380ea6), _0x2545d6['push']('shadowSampler' + _0x380ea6), _0x2545d6['push']('depthSampler' + _0x380ea6), _0x56dd47['PROJECTEDLIGHTTEXTURE' + _0x380ea6] && (_0x2545d6['push']('projectionLightSampler' + _0x380ea6), _0xf47c9e['push']('textureProjectionMatrix' + _0x380ea6)); _0x56dd47['NUM_MORPH_INFLUENCERS'] && _0xf47c9e['push']('morphTargetInfluences'); } , _0x3b68a9['HandleFallbacksForShadows'] = function(_0x501bfe, _0x490290, _0x128c19, _0x48e215) { void 0x0 === _0x128c19 && (_0x128c19 = 0x4), void 0x0 === _0x48e215 && (_0x48e215 = 0x0); for (var _0x594233 = 0x0, _0x2c8bfa = 0x0; _0x2c8bfa < _0x128c19 && _0x501bfe['LIGHT' + _0x2c8bfa]; _0x2c8bfa++) _0x2c8bfa > 0x0 && (_0x594233 = _0x48e215 + _0x2c8bfa, _0x490290['addFallback'](_0x594233, 'LIGHT' + _0x2c8bfa)), _0x501bfe['SHADOWS'] || (_0x501bfe['SHADOW' + _0x2c8bfa] && _0x490290['addFallback'](_0x48e215, 'SHADOW' + _0x2c8bfa), _0x501bfe['SHADOWPCF' + _0x2c8bfa] && _0x490290['addFallback'](_0x48e215, 'SHADOWPCF' + _0x2c8bfa), _0x501bfe['SHADOWPCSS' + _0x2c8bfa] && _0x490290['addFallback'](_0x48e215, 'SHADOWPCSS' + _0x2c8bfa), _0x501bfe['SHADOWPOISSON' + _0x2c8bfa] && _0x490290['addFallback'](_0x48e215, 'SHADOWPOISSON' + _0x2c8bfa), _0x501bfe['SHADOWESM' + _0x2c8bfa] && _0x490290['addFallback'](_0x48e215, 'SHADOWESM' + _0x2c8bfa)); return _0x594233++; } , _0x3b68a9['PrepareAttributesForMorphTargets'] = function(_0x12f4bd, _0x3dc709, _0x3a6f7b) { var _0x3ec59e = _0x3a6f7b['NUM_MORPH_INFLUENCERS']; if (_0x3ec59e > 0x0 && _0x20b21e['a']['LastCreatedEngine']) for (var _0x3b5824 = _0x20b21e['a']['LastCreatedEngine']['getCaps']()['maxVertexAttribs'], _0x3e2be2 = _0x3dc709['morphTargetManager'], _0xb5b32 = _0x3e2be2 && _0x3e2be2['supportsNormals'] && _0x3a6f7b['NORMAL'], _0x5b638d = _0x3e2be2 && _0x3e2be2['supportsTangents'] && _0x3a6f7b['TANGENT'], _0x208903 = 0x0; _0x208903 < _0x3ec59e; _0x208903++) _0x12f4bd['push'](_0x43a3d4['b']['PositionKind'] + _0x208903), _0xb5b32 && _0x12f4bd['push'](_0x43a3d4['b']['NormalKind'] + _0x208903), _0x5b638d && _0x12f4bd['push'](_0x43a3d4['b']['TangentKind'] + _0x208903), _0x12f4bd['length'] > _0x3b5824 && _0x45da8d['a']['Error']('Cannot\x20add\x20more\x20vertex\x20attributes\x20for\x20mesh\x20' + _0x3dc709['name']); } , _0x3b68a9['PrepareAttributesForBones'] = function(_0x3927c9, _0x5b8577, _0x371a12, _0x11b998) { _0x371a12['NUM_BONE_INFLUENCERS'] > 0x0 && (_0x11b998['addCPUSkinningFallback'](0x0, _0x5b8577), _0x3927c9['push'](_0x43a3d4['b']['MatricesIndicesKind']), _0x3927c9['push'](_0x43a3d4['b']['MatricesWeightsKind']), _0x371a12['NUM_BONE_INFLUENCERS'] > 0x4 && (_0x3927c9['push'](_0x43a3d4['b']['MatricesIndicesExtraKind']), _0x3927c9['push'](_0x43a3d4['b']['MatricesWeightsExtraKind']))); } , _0x3b68a9['PrepareAttributesForInstances'] = function(_0x1bb5f8, _0x582d01) { _0x582d01['INSTANCES'] && (_0x1bb5f8['push']('world0'), _0x1bb5f8['push']('world1'), _0x1bb5f8['push']('world2'), _0x1bb5f8['push']('world3')); } , _0x3b68a9['BindLightShadow'] = function(_0x1c45fe, _0x22ce70, _0x3eab14, _0x1ef9dd) { if (_0x1c45fe['shadowEnabled'] && _0x22ce70['receiveShadows']) { var _0x7292f1 = _0x1c45fe['getShadowGenerator'](); _0x7292f1 && _0x7292f1['bindShadowLight'](_0x3eab14, _0x1ef9dd); } } , _0x3b68a9['BindLightProperties'] = function(_0x656f46, _0x27ee5a, _0x156b4c) { _0x656f46['transferToEffect'](_0x27ee5a, _0x156b4c + ''); } , _0x3b68a9['BindLights'] = function(_0x321aed, _0x103f76, _0x4c051a, _0xfeaae6, _0x590ba2, _0x3151f1) { void 0x0 === _0x590ba2 && (_0x590ba2 = 0x4), void 0x0 === _0x3151f1 && (_0x3151f1 = !0x1); for (var _0x591b9b = Math['min'](_0x103f76['lightSources']['length'], _0x590ba2), _0x450175 = 0x0; _0x450175 < _0x591b9b; _0x450175++) { var _0x25f646 = _0x103f76['lightSources'][_0x450175] , _0x30d5e7 = _0x450175['toString']() , _0x550860 = _0x25f646['getScaledIntensity'](); _0x25f646['_uniformBuffer']['bindToEffect'](_0x4c051a, 'Light' + _0x450175), _0x3b68a9['BindLightProperties'](_0x25f646, _0x4c051a, _0x450175), _0x25f646['diffuse']['scaleToRef'](_0x550860, _0x24ac2a['t']['Color3'][0x0]), _0x25f646['_uniformBuffer']['updateColor4']('vLightDiffuse', _0x24ac2a['t']['Color3'][0x0], _0x3151f1 ? _0x25f646['radius'] : _0x25f646['range'], _0x30d5e7), _0xfeaae6['SPECULARTERM'] && (_0x25f646['specular']['scaleToRef'](_0x550860, _0x24ac2a['t']['Color3'][0x1]), _0x25f646['_uniformBuffer']['updateColor3']('vLightSpecular', _0x24ac2a['t']['Color3'][0x1], _0x30d5e7)), _0x321aed['shadowsEnabled'] && this['BindLightShadow'](_0x25f646, _0x103f76, _0x30d5e7, _0x4c051a), _0x25f646['_uniformBuffer']['update'](); } } , _0x3b68a9['BindFogParameters'] = function(_0x465d1e, _0x3e9972, _0x419d47, _0x4e983e) { void 0x0 === _0x4e983e && (_0x4e983e = !0x1), _0x465d1e['fogEnabled'] && _0x3e9972['applyFog'] && _0x465d1e['fogMode'] !== _0x5545aa['a']['FOGMODE_NONE'] && (_0x419d47['setFloat4']('vFogInfos', _0x465d1e['fogMode'], _0x465d1e['fogStart'], _0x465d1e['fogEnd'], _0x465d1e['fogDensity']), _0x4e983e ? (_0x465d1e['fogColor']['toLinearSpaceToRef'](this['_tempFogColor']), _0x419d47['setColor3']('vFogColor', this['_tempFogColor'])) : _0x419d47['setColor3']('vFogColor', _0x465d1e['fogColor'])); } , _0x3b68a9['BindBonesParameters'] = function(_0x2ab38a, _0x4bb25b) { if (_0x4bb25b && _0x2ab38a && (_0x2ab38a['computeBonesUsingShaders'] && _0x4bb25b['_bonesComputationForcedToCPU'] && (_0x2ab38a['computeBonesUsingShaders'] = !0x1), _0x2ab38a['useBones'] && _0x2ab38a['computeBonesUsingShaders'] && _0x2ab38a['skeleton'])) { var _0x578a4e = _0x2ab38a['skeleton']; if (_0x578a4e['isUsingTextureForMatrices'] && _0x4bb25b['getUniformIndex']('boneTextureWidth') > -0x1) { var _0x5ec79b = _0x578a4e['getTransformMatrixTexture'](); _0x4bb25b['setTexture']('boneSampler', _0x5ec79b), _0x4bb25b['setFloat']('boneTextureWidth', 0x4 * (_0x578a4e['bones']['length'] + 0x1)); } else { var _0x4a702b = _0x578a4e['getTransformMatrices'](_0x2ab38a); _0x4a702b && _0x4bb25b['setMatrices']('mBones', _0x4a702b); } } } , _0x3b68a9['BindMorphTargetParameters'] = function(_0x355e7e, _0x109ea0) { var _0x518c8a = _0x355e7e['morphTargetManager']; _0x355e7e && _0x518c8a && _0x109ea0['setFloatArray']('morphTargetInfluences', _0x518c8a['influences']); } , _0x3b68a9['BindLogDepth'] = function(_0x599b74, _0xbb0c, _0x46e364) { _0x599b74['LOGARITHMICDEPTH'] && _0xbb0c['setFloat']('logarithmicDepthConstant', 0x2 / (Math['log'](_0x46e364['activeCamera']['maxZ'] + 0x1) / Math['LN2'])); } , _0x3b68a9['BindClipPlane'] = function(_0x3ea5dd, _0x382b4f) { if (_0x382b4f['clipPlane']) { var _0x11c3a3 = _0x382b4f['clipPlane']; _0x3ea5dd['setFloat4']('vClipPlane', _0x11c3a3['normal']['x'], _0x11c3a3['normal']['y'], _0x11c3a3['normal']['z'], _0x11c3a3['d']); } if (_0x382b4f['clipPlane2']) { _0x11c3a3 = _0x382b4f['clipPlane2']; _0x3ea5dd['setFloat4']('vClipPlane2', _0x11c3a3['normal']['x'], _0x11c3a3['normal']['y'], _0x11c3a3['normal']['z'], _0x11c3a3['d']); } if (_0x382b4f['clipPlane3']) { _0x11c3a3 = _0x382b4f['clipPlane3']; _0x3ea5dd['setFloat4']('vClipPlane3', _0x11c3a3['normal']['x'], _0x11c3a3['normal']['y'], _0x11c3a3['normal']['z'], _0x11c3a3['d']); } if (_0x382b4f['clipPlane4']) { _0x11c3a3 = _0x382b4f['clipPlane4']; _0x3ea5dd['setFloat4']('vClipPlane4', _0x11c3a3['normal']['x'], _0x11c3a3['normal']['y'], _0x11c3a3['normal']['z'], _0x11c3a3['d']); } } , _0x3b68a9['_tempFogColor'] = _0x24ac2a['e']['Black'](), _0x3b68a9; }(); } , function(_0x1740b4, _0x5456c0, _0x2fb05f) { 'use strict'; var _0x1760d6 = _0x2fb05f(0x1) , _0x24e4b1 = _0x2fb05f(0x9) , _0x4581c2 = _0x2fb05f(0x2f) , _0x3e0758 = _0x2fb05f(0x8) , _0x534a58 = _0x2fb05f(0x1c) , _0x528b6e = _0x2fb05f(0x3d) , _0x17764a = _0x2fb05f(0x1d) , _0x4b6821 = _0x2fb05f(0x0) , _0x3c6764 = _0x2fb05f(0x2a) , _0xe57370 = _0x2fb05f(0x18) , _0x5dfe75 = _0x2fb05f(0x15) , _0x3f7016 = _0x2fb05f(0x1e) , _0x30fcde = _0x2fb05f(0x1f) , _0x3b8c1c = _0x2fb05f(0x3f) , _0x3b7dc7 = _0x2fb05f(0x26) , _0x3f9890 = _0x2fb05f(0x32) , _0xa60415 = _0x2fb05f(0x24) , _0x32dcb0 = _0x2fb05f(0x53) , _0x5e197e = _0x2fb05f(0x5b) , _0xc9b536 = _0x2fb05f(0xe) , _0x22ca5d = _0x2fb05f(0x3) , _0x52f86b = _0x2fb05f(0x23) , _0x2bda6b = _0x2fb05f(0x6) , _0xce6890 = _0x2fb05f(0x17) , _0x28a876 = _0x2fb05f(0x13) , _0x1731fb = _0x2fb05f(0x11) , _0x2205bb = _0x2fb05f(0x4f) , _0x48eeea = _0x2fb05f(0x33) , _0x2cedff = function() { function _0x5ba601() { this['_singleClick'] = !0x1, this['_doubleClick'] = !0x1, this['_hasSwiped'] = !0x1, this['_ignore'] = !0x1; } return Object['defineProperty'](_0x5ba601['prototype'], 'singleClick', { 'get': function() { return this['_singleClick']; }, 'set': function(_0x23a9a4) { this['_singleClick'] = _0x23a9a4; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5ba601['prototype'], 'doubleClick', { 'get': function() { return this['_doubleClick']; }, 'set': function(_0x533ab9) { this['_doubleClick'] = _0x533ab9; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5ba601['prototype'], 'hasSwiped', { 'get': function() { return this['_hasSwiped']; }, 'set': function(_0x252760) { this['_hasSwiped'] = _0x252760; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5ba601['prototype'], 'ignore', { 'get': function() { return this['_ignore']; }, 'set': function(_0x50895d) { this['_ignore'] = _0x50895d; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5ba601; }() , _0x2c78b5 = function() { function _0x336ea1(_0x2c4898) { this['_wheelEventName'] = '', this['_meshPickProceed'] = !0x1, this['_currentPickResult'] = null, this['_previousPickResult'] = null, this['_totalPointersPressed'] = 0x0, this['_doubleClickOccured'] = !0x1, this['_pointerX'] = 0x0, this['_pointerY'] = 0x0, this['_startingPointerPosition'] = new _0x4b6821['w'](0x0,0x0), this['_previousStartingPointerPosition'] = new _0x4b6821['w'](0x0,0x0), this['_startingPointerTime'] = 0x0, this['_previousStartingPointerTime'] = 0x0, this['_pointerCaptures'] = {}, this['_scene'] = _0x2c4898; } return Object['defineProperty'](_0x336ea1['prototype'], 'meshUnderPointer', { 'get': function() { return this['_pointerOverMesh']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x336ea1['prototype'], 'unTranslatedPointer', { 'get': function() { return new _0x4b6821['w'](this['_unTranslatedPointerX'],this['_unTranslatedPointerY']); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x336ea1['prototype'], 'pointerX', { 'get': function() { return this['_pointerX']; }, 'set': function(_0x2bd3d4) { this['_pointerX'] = _0x2bd3d4; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x336ea1['prototype'], 'pointerY', { 'get': function() { return this['_pointerY']; }, 'set': function(_0x38b26a) { this['_pointerY'] = _0x38b26a; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x336ea1['prototype']['_updatePointerPosition'] = function(_0x355df4) { var _0x2897ac = this['_scene']['getEngine']()['getRenderingCanvasClientRect'](); _0x2897ac && (this['_pointerX'] = _0x355df4['clientX'] - _0x2897ac['left'], this['_pointerY'] = _0x355df4['clientY'] - _0x2897ac['top'], this['_unTranslatedPointerX'] = this['_pointerX'], this['_unTranslatedPointerY'] = this['_pointerY']); } , _0x336ea1['prototype']['_processPointerMove'] = function(_0x564d55, _0x48d7fd) { var _0x45cfee = this['_scene'] , _0xe4e62f = _0x45cfee['getEngine']()['getRenderingCanvas'](); if (_0xe4e62f) { _0xe4e62f['tabIndex'] = 0x1, _0xe4e62f['style']['cursor'] = _0x45cfee['defaultCursor']; var _0x236dc9 = !!(_0x564d55 && _0x564d55['hit'] && _0x564d55['pickedMesh']); _0x236dc9 ? (_0x45cfee['setPointerOverMesh'](_0x564d55['pickedMesh']), this['_pointerOverMesh'] && this['_pointerOverMesh']['actionManager'] && this['_pointerOverMesh']['actionManager']['hasPointerTriggers'] && (this['_pointerOverMesh']['actionManager']['hoverCursor'] ? _0xe4e62f['style']['cursor'] = this['_pointerOverMesh']['actionManager']['hoverCursor'] : _0xe4e62f['style']['cursor'] = _0x45cfee['hoverCursor'])) : _0x45cfee['setPointerOverMesh'](null); for (var _0x1b4b74 = 0x0, _0x3c3c48 = _0x45cfee['_pointerMoveStage']; _0x1b4b74 < _0x3c3c48['length']; _0x1b4b74++) { _0x564d55 = _0x3c3c48[_0x1b4b74]['action'](this['_unTranslatedPointerX'], this['_unTranslatedPointerY'], _0x564d55, _0x236dc9, _0xe4e62f); } if (_0x564d55) { var _0x53e23d = _0x48d7fd['type'] === this['_wheelEventName'] ? _0x1731fb['a']['POINTERWHEEL'] : _0x1731fb['a']['POINTERMOVE']; if (_0x45cfee['onPointerMove'] && _0x45cfee['onPointerMove'](_0x48d7fd, _0x564d55, _0x53e23d), _0x45cfee['onPointerObservable']['hasObservers']()) { var _0x3ea6f1 = new _0x1731fb['b'](_0x53e23d,_0x48d7fd,_0x564d55); this['_setRayOnPointerInfo'](_0x3ea6f1), _0x45cfee['onPointerObservable']['notifyObservers'](_0x3ea6f1, _0x53e23d); } } } } , _0x336ea1['prototype']['_setRayOnPointerInfo'] = function(_0x496a83) { var _0x42b333 = this['_scene']; _0x496a83['pickInfo'] && !_0x496a83['pickInfo']['_pickingUnavailable'] && (_0x496a83['pickInfo']['ray'] || (_0x496a83['pickInfo']['ray'] = _0x42b333['createPickingRay'](_0x496a83['event']['offsetX'], _0x496a83['event']['offsetY'], _0x4b6821['j']['Identity'](), _0x42b333['activeCamera']))); } , _0x336ea1['prototype']['_checkPrePointerObservable'] = function(_0xa71d47, _0x205582, _0x583ba2) { var _0x3ab7b8 = this['_scene'] , _0x5a7f52 = new _0x1731fb['d'](_0x583ba2,_0x205582,this['_unTranslatedPointerX'],this['_unTranslatedPointerY']); return _0xa71d47 && (_0x5a7f52['ray'] = _0xa71d47['ray']), _0x3ab7b8['onPrePointerObservable']['notifyObservers'](_0x5a7f52, _0x583ba2), !!_0x5a7f52['skipOnPointerObservable']; } , _0x336ea1['prototype']['simulatePointerMove'] = function(_0x182fe2, _0x4d6b80) { var _0x385ba3 = new PointerEvent('pointermove',_0x4d6b80); this['_checkPrePointerObservable'](_0x182fe2, _0x385ba3, _0x1731fb['a']['POINTERMOVE']) || this['_processPointerMove'](_0x182fe2, _0x385ba3); } , _0x336ea1['prototype']['simulatePointerDown'] = function(_0x159383, _0x48c459) { var _0x51fa56 = new PointerEvent('pointerdown',_0x48c459); this['_checkPrePointerObservable'](_0x159383, _0x51fa56, _0x1731fb['a']['POINTERDOWN']) || this['_processPointerDown'](_0x159383, _0x51fa56); } , _0x336ea1['prototype']['_processPointerDown'] = function(_0x57171e, _0x4ddcc5) { var _0x14bb00 = this , _0x37b80d = this['_scene']; if (_0x57171e && _0x57171e['hit'] && _0x57171e['pickedMesh']) { this['_pickedDownMesh'] = _0x57171e['pickedMesh']; var _0x1210e6 = _0x57171e['pickedMesh']['actionManager']; if (_0x1210e6) { if (_0x1210e6['hasPickTriggers']) switch (_0x1210e6['processTrigger'](_0x22ca5d['a']['ACTION_OnPickDownTrigger'], _0xa60415['a']['CreateNew'](_0x57171e['pickedMesh'], _0x4ddcc5)), _0x4ddcc5['button']) { case 0x0: _0x1210e6['processTrigger'](_0x22ca5d['a']['ACTION_OnLeftPickTrigger'], _0xa60415['a']['CreateNew'](_0x57171e['pickedMesh'], _0x4ddcc5)); break; case 0x1: _0x1210e6['processTrigger'](_0x22ca5d['a']['ACTION_OnCenterPickTrigger'], _0xa60415['a']['CreateNew'](_0x57171e['pickedMesh'], _0x4ddcc5)); break; case 0x2: _0x1210e6['processTrigger'](_0x22ca5d['a']['ACTION_OnRightPickTrigger'], _0xa60415['a']['CreateNew'](_0x57171e['pickedMesh'], _0x4ddcc5)); } _0x1210e6['hasSpecificTrigger'](_0x22ca5d['a']['ACTION_OnLongPressTrigger']) && window['setTimeout'](function() { var _0x4684d9 = _0x37b80d['pick'](_0x14bb00['_unTranslatedPointerX'], _0x14bb00['_unTranslatedPointerY'], function(_0x623d32) { return _0x623d32['isPickable'] && _0x623d32['isVisible'] && _0x623d32['isReady']() && _0x623d32['actionManager'] && _0x623d32['actionManager']['hasSpecificTrigger'](_0x22ca5d['a']['ACTION_OnLongPressTrigger']) && _0x623d32 == _0x14bb00['_pickedDownMesh']; }, !0x1, _0x37b80d['cameraToUseForPointers']); _0x4684d9 && _0x4684d9['hit'] && _0x4684d9['pickedMesh'] && _0x1210e6 && 0x0 !== _0x14bb00['_totalPointersPressed'] && Date['now']() - _0x14bb00['_startingPointerTime'] > _0x336ea1['LongPressDelay'] && !_0x14bb00['_isPointerSwiping']() && (_0x14bb00['_startingPointerTime'] = 0x0, _0x1210e6['processTrigger'](_0x22ca5d['a']['ACTION_OnLongPressTrigger'], _0xa60415['a']['CreateNew'](_0x4684d9['pickedMesh'], _0x4ddcc5))); }, _0x336ea1['LongPressDelay']); } } else for (var _0x560810 = 0x0, _0x16c5dc = _0x37b80d['_pointerDownStage']; _0x560810 < _0x16c5dc['length']; _0x560810++) { _0x57171e = _0x16c5dc[_0x560810]['action'](this['_unTranslatedPointerX'], this['_unTranslatedPointerY'], _0x57171e, _0x4ddcc5); } if (_0x57171e) { var _0x5f4f04 = _0x1731fb['a']['POINTERDOWN']; if (_0x37b80d['onPointerDown'] && _0x37b80d['onPointerDown'](_0x4ddcc5, _0x57171e, _0x5f4f04), _0x37b80d['onPointerObservable']['hasObservers']()) { var _0x159963 = new _0x1731fb['b'](_0x5f4f04,_0x4ddcc5,_0x57171e); this['_setRayOnPointerInfo'](_0x159963), _0x37b80d['onPointerObservable']['notifyObservers'](_0x159963, _0x5f4f04); } } } , _0x336ea1['prototype']['_isPointerSwiping'] = function() { return Math['abs'](this['_startingPointerPosition']['x'] - this['_pointerX']) > _0x336ea1['DragMovementThreshold'] || Math['abs'](this['_startingPointerPosition']['y'] - this['_pointerY']) > _0x336ea1['DragMovementThreshold']; } , _0x336ea1['prototype']['simulatePointerUp'] = function(_0x5bc33b, _0x559766, _0x3f26db) { var _0x4efcaf = new PointerEvent('pointerup',_0x559766) , _0x4230c3 = new _0x2cedff(); _0x3f26db ? _0x4230c3['doubleClick'] = !0x0 : _0x4230c3['singleClick'] = !0x0, this['_checkPrePointerObservable'](_0x5bc33b, _0x4efcaf, _0x1731fb['a']['POINTERUP']) || this['_processPointerUp'](_0x5bc33b, _0x4efcaf, _0x4230c3); } , _0x336ea1['prototype']['_processPointerUp'] = function(_0x50de52, _0x225180, _0x3abf71) { var _0x3fa075 = this['_scene']; if (_0x50de52 && _0x50de52 && _0x50de52['pickedMesh']) { if (this['_pickedUpMesh'] = _0x50de52['pickedMesh'], this['_pickedDownMesh'] === this['_pickedUpMesh'] && (_0x3fa075['onPointerPick'] && _0x3fa075['onPointerPick'](_0x225180, _0x50de52), _0x3abf71['singleClick'] && !_0x3abf71['ignore'] && _0x3fa075['onPointerObservable']['hasObservers']())) { var _0x5eead4 = _0x1731fb['a']['POINTERPICK'] , _0x79f41f = new _0x1731fb['b'](_0x5eead4,_0x225180,_0x50de52); this['_setRayOnPointerInfo'](_0x79f41f), _0x3fa075['onPointerObservable']['notifyObservers'](_0x79f41f, _0x5eead4); } var _0x523b36 = _0x50de52['pickedMesh']['_getActionManagerForTrigger'](); if (_0x523b36 && !_0x3abf71['ignore']) { _0x523b36['processTrigger'](_0x22ca5d['a']['ACTION_OnPickUpTrigger'], _0xa60415['a']['CreateNew'](_0x50de52['pickedMesh'], _0x225180)), !_0x3abf71['hasSwiped'] && _0x3abf71['singleClick'] && _0x523b36['processTrigger'](_0x22ca5d['a']['ACTION_OnPickTrigger'], _0xa60415['a']['CreateNew'](_0x50de52['pickedMesh'], _0x225180)); var _0x4a10ed = _0x50de52['pickedMesh']['_getActionManagerForTrigger'](_0x22ca5d['a']['ACTION_OnDoublePickTrigger']); _0x3abf71['doubleClick'] && _0x4a10ed && _0x4a10ed['processTrigger'](_0x22ca5d['a']['ACTION_OnDoublePickTrigger'], _0xa60415['a']['CreateNew'](_0x50de52['pickedMesh'], _0x225180)); } } else if (!_0x3abf71['ignore']) for (var _0x1f7bd4 = 0x0, _0x192753 = _0x3fa075['_pointerUpStage']; _0x1f7bd4 < _0x192753['length']; _0x1f7bd4++) { _0x50de52 = _0x192753[_0x1f7bd4]['action'](this['_unTranslatedPointerX'], this['_unTranslatedPointerY'], _0x50de52, _0x225180); } if (this['_pickedDownMesh'] && this['_pickedDownMesh'] !== this['_pickedUpMesh']) { var _0x3e0bf9 = this['_pickedDownMesh']['_getActionManagerForTrigger'](_0x22ca5d['a']['ACTION_OnPickOutTrigger']); _0x3e0bf9 && _0x3e0bf9['processTrigger'](_0x22ca5d['a']['ACTION_OnPickOutTrigger'], _0xa60415['a']['CreateNew'](this['_pickedDownMesh'], _0x225180)); } var _0x37a28b = 0x0; if (_0x3fa075['onPointerObservable']['hasObservers']()) { if (!_0x3abf71['ignore'] && !_0x3abf71['hasSwiped'] && (_0x3abf71['singleClick'] && _0x3fa075['onPointerObservable']['hasSpecificMask'](_0x1731fb['a']['POINTERTAP']) ? _0x37a28b = _0x1731fb['a']['POINTERTAP'] : _0x3abf71['doubleClick'] && _0x3fa075['onPointerObservable']['hasSpecificMask'](_0x1731fb['a']['POINTERDOUBLETAP']) && (_0x37a28b = _0x1731fb['a']['POINTERDOUBLETAP']), _0x37a28b)) { _0x79f41f = new _0x1731fb['b'](_0x37a28b,_0x225180,_0x50de52); this['_setRayOnPointerInfo'](_0x79f41f), _0x3fa075['onPointerObservable']['notifyObservers'](_0x79f41f, _0x37a28b); } if (!_0x3abf71['ignore']) { _0x37a28b = _0x1731fb['a']['POINTERUP']; _0x79f41f = new _0x1731fb['b'](_0x37a28b,_0x225180,_0x50de52); this['_setRayOnPointerInfo'](_0x79f41f), _0x3fa075['onPointerObservable']['notifyObservers'](_0x79f41f, _0x37a28b); } } _0x3fa075['onPointerUp'] && !_0x3abf71['ignore'] && _0x3fa075['onPointerUp'](_0x225180, _0x50de52, _0x37a28b); } , _0x336ea1['prototype']['isPointerCaptured'] = function(_0x29c289) { return void 0x0 === _0x29c289 && (_0x29c289 = 0x0), this['_pointerCaptures'][_0x29c289]; } , _0x336ea1['prototype']['attachControl'] = function(_0x34fb9b, _0x57e470, _0x1896f7) { var _0x28a008 = this; void 0x0 === _0x34fb9b && (_0x34fb9b = !0x0), void 0x0 === _0x57e470 && (_0x57e470 = !0x0), void 0x0 === _0x1896f7 && (_0x1896f7 = !0x0); var _0x2f057a = this['_scene'] , _0x1e1b27 = _0x2f057a['getEngine']()['getRenderingCanvas'](); if (_0x1e1b27) { var _0x696351 = _0x2f057a['getEngine'](); this['_initActionManager'] = function(_0x25c787, _0x4289a2) { if (!_0x28a008['_meshPickProceed']) { var _0x112556 = _0x2f057a['pick'](_0x28a008['_unTranslatedPointerX'], _0x28a008['_unTranslatedPointerY'], _0x2f057a['pointerDownPredicate'], !0x1, _0x2f057a['cameraToUseForPointers']); _0x28a008['_currentPickResult'] = _0x112556, _0x112556 && (_0x25c787 = _0x112556['hit'] && _0x112556['pickedMesh'] ? _0x112556['pickedMesh']['_getActionManagerForTrigger']() : null), _0x28a008['_meshPickProceed'] = !0x0; } return _0x25c787; } , this['_delayedSimpleClick'] = function(_0x3ef6e1, _0x1dea92, _0x3e0b39) { (Date['now']() - _0x28a008['_previousStartingPointerTime'] > _0x336ea1['DoubleClickDelay'] && !_0x28a008['_doubleClickOccured'] || _0x3ef6e1 !== _0x28a008['_previousButtonPressed']) && (_0x28a008['_doubleClickOccured'] = !0x1, _0x1dea92['singleClick'] = !0x0, _0x1dea92['ignore'] = !0x1, _0x3e0b39(_0x1dea92, _0x28a008['_currentPickResult'])); } , this['_initClickEvent'] = function(_0x11a467, _0x1d64cc, _0x40d123, _0x8cad85) { var _0x45be69 = new _0x2cedff(); _0x28a008['_currentPickResult'] = null; var _0x70263 = null , _0x161b34 = _0x11a467['hasSpecificMask'](_0x1731fb['a']['POINTERPICK']) || _0x1d64cc['hasSpecificMask'](_0x1731fb['a']['POINTERPICK']) || _0x11a467['hasSpecificMask'](_0x1731fb['a']['POINTERTAP']) || _0x1d64cc['hasSpecificMask'](_0x1731fb['a']['POINTERTAP']) || _0x11a467['hasSpecificMask'](_0x1731fb['a']['POINTERDOUBLETAP']) || _0x1d64cc['hasSpecificMask'](_0x1731fb['a']['POINTERDOUBLETAP']); !_0x161b34 && _0x2205bb['a'] && (_0x70263 = _0x28a008['_initActionManager'](_0x70263, _0x45be69)) && (_0x161b34 = _0x70263['hasPickTriggers']); var _0x40f36a = !0x1; if (_0x161b34) { var _0x38f43e = _0x40d123['button']; if (_0x45be69['hasSwiped'] = _0x28a008['_isPointerSwiping'](), !_0x45be69['hasSwiped']) { var _0x11755a = !_0x336ea1['ExclusiveDoubleClickMode']; _0x11755a || (_0x11755a = !_0x11a467['hasSpecificMask'](_0x1731fb['a']['POINTERDOUBLETAP']) && !_0x1d64cc['hasSpecificMask'](_0x1731fb['a']['POINTERDOUBLETAP'])) && !_0x2205bb['a']['HasSpecificTrigger'](_0x22ca5d['a']['ACTION_OnDoublePickTrigger']) && (_0x70263 = _0x28a008['_initActionManager'](_0x70263, _0x45be69)) && (_0x11755a = !_0x70263['hasSpecificTrigger'](_0x22ca5d['a']['ACTION_OnDoublePickTrigger'])), _0x11755a ? (Date['now']() - _0x28a008['_previousStartingPointerTime'] > _0x336ea1['DoubleClickDelay'] || _0x38f43e !== _0x28a008['_previousButtonPressed']) && (_0x45be69['singleClick'] = !0x0, _0x8cad85(_0x45be69, _0x28a008['_currentPickResult']), _0x40f36a = !0x0) : (_0x28a008['_previousDelayedSimpleClickTimeout'] = _0x28a008['_delayedSimpleClickTimeout'], _0x28a008['_delayedSimpleClickTimeout'] = window['setTimeout'](_0x28a008['_delayedSimpleClick']['bind'](_0x28a008, _0x38f43e, _0x45be69, _0x8cad85), _0x336ea1['DoubleClickDelay'])); var _0x2b704d = _0x11a467['hasSpecificMask'](_0x1731fb['a']['POINTERDOUBLETAP']) || _0x1d64cc['hasSpecificMask'](_0x1731fb['a']['POINTERDOUBLETAP']); !_0x2b704d && _0x2205bb['a']['HasSpecificTrigger'](_0x22ca5d['a']['ACTION_OnDoublePickTrigger']) && (_0x70263 = _0x28a008['_initActionManager'](_0x70263, _0x45be69)) && (_0x2b704d = _0x70263['hasSpecificTrigger'](_0x22ca5d['a']['ACTION_OnDoublePickTrigger'])), _0x2b704d && (_0x38f43e === _0x28a008['_previousButtonPressed'] && Date['now']() - _0x28a008['_previousStartingPointerTime'] < _0x336ea1['DoubleClickDelay'] && !_0x28a008['_doubleClickOccured'] ? (_0x45be69['hasSwiped'] || _0x28a008['_isPointerSwiping']() ? (_0x28a008['_doubleClickOccured'] = !0x1, _0x28a008['_previousStartingPointerTime'] = _0x28a008['_startingPointerTime'], _0x28a008['_previousStartingPointerPosition']['x'] = _0x28a008['_startingPointerPosition']['x'], _0x28a008['_previousStartingPointerPosition']['y'] = _0x28a008['_startingPointerPosition']['y'], _0x28a008['_previousButtonPressed'] = _0x38f43e, _0x336ea1['ExclusiveDoubleClickMode'] ? (_0x28a008['_previousDelayedSimpleClickTimeout'] && clearTimeout(_0x28a008['_previousDelayedSimpleClickTimeout']), _0x28a008['_previousDelayedSimpleClickTimeout'] = _0x28a008['_delayedSimpleClickTimeout'], _0x8cad85(_0x45be69, _0x28a008['_previousPickResult'])) : _0x8cad85(_0x45be69, _0x28a008['_currentPickResult'])) : (_0x28a008['_previousStartingPointerTime'] = 0x0, _0x28a008['_doubleClickOccured'] = !0x0, _0x45be69['doubleClick'] = !0x0, _0x45be69['ignore'] = !0x1, _0x336ea1['ExclusiveDoubleClickMode'] && _0x28a008['_previousDelayedSimpleClickTimeout'] && clearTimeout(_0x28a008['_previousDelayedSimpleClickTimeout']), _0x28a008['_previousDelayedSimpleClickTimeout'] = _0x28a008['_delayedSimpleClickTimeout'], _0x8cad85(_0x45be69, _0x28a008['_currentPickResult'])), _0x40f36a = !0x0) : (_0x28a008['_doubleClickOccured'] = !0x1, _0x28a008['_previousStartingPointerTime'] = _0x28a008['_startingPointerTime'], _0x28a008['_previousStartingPointerPosition']['x'] = _0x28a008['_startingPointerPosition']['x'], _0x28a008['_previousStartingPointerPosition']['y'] = _0x28a008['_startingPointerPosition']['y'], _0x28a008['_previousButtonPressed'] = _0x38f43e)); } } _0x40f36a || _0x8cad85(_0x45be69, _0x28a008['_currentPickResult']); } , this['_onPointerMove'] = function(_0x48e428) { if (_0x28a008['_updatePointerPosition'](_0x48e428), !_0x28a008['_checkPrePointerObservable'](null, _0x48e428, _0x48e428['type'] === _0x28a008['_wheelEventName'] ? _0x1731fb['a']['POINTERWHEEL'] : _0x1731fb['a']['POINTERMOVE']) && (_0x2f057a['cameraToUseForPointers'] || _0x2f057a['activeCamera'])) { _0x2f057a['pointerMovePredicate'] || (_0x2f057a['pointerMovePredicate'] = function(_0x2e30b6) { return _0x2e30b6['isPickable'] && _0x2e30b6['isVisible'] && _0x2e30b6['isReady']() && _0x2e30b6['isEnabled']() && (_0x2e30b6['enablePointerMoveEvents'] || _0x2f057a['constantlyUpdateMeshUnderPointer'] || null !== _0x2e30b6['actionManager'] && void 0x0 !== _0x2e30b6['actionManager']) && (!_0x2f057a['cameraToUseForPointers'] || 0x0 != (_0x2f057a['cameraToUseForPointers']['layerMask'] & _0x2e30b6['layerMask'])); } ); var _0x2fd272 = _0x2f057a['pick'](_0x28a008['_unTranslatedPointerX'], _0x28a008['_unTranslatedPointerY'], _0x2f057a['pointerMovePredicate'], !0x1, _0x2f057a['cameraToUseForPointers']); _0x28a008['_processPointerMove'](_0x2fd272, _0x48e428); } } , this['_onPointerDown'] = function(_0x43649e) { if (_0x28a008['_totalPointersPressed']++, _0x28a008['_pickedDownMesh'] = null, _0x28a008['_meshPickProceed'] = !0x1, _0x28a008['_updatePointerPosition'](_0x43649e), _0x2f057a['preventDefaultOnPointerDown'] && _0x1e1b27 && (_0x43649e['preventDefault'](), _0x1e1b27['focus']()), _0x28a008['_startingPointerPosition']['x'] = _0x28a008['_pointerX'], _0x28a008['_startingPointerPosition']['y'] = _0x28a008['_pointerY'], _0x28a008['_startingPointerTime'] = Date['now'](), !_0x28a008['_checkPrePointerObservable'](null, _0x43649e, _0x1731fb['a']['POINTERDOWN']) && (_0x2f057a['cameraToUseForPointers'] || _0x2f057a['activeCamera'])) { _0x28a008['_pointerCaptures'][_0x43649e['pointerId']] = !0x0, _0x2f057a['pointerDownPredicate'] || (_0x2f057a['pointerDownPredicate'] = function(_0x157a7b) { return _0x157a7b['isPickable'] && _0x157a7b['isVisible'] && _0x157a7b['isReady']() && _0x157a7b['isEnabled']() && (!_0x2f057a['cameraToUseForPointers'] || 0x0 != (_0x2f057a['cameraToUseForPointers']['layerMask'] & _0x157a7b['layerMask'])); } ), _0x28a008['_pickedDownMesh'] = null; var _0x40edac = _0x2f057a['pick'](_0x28a008['_unTranslatedPointerX'], _0x28a008['_unTranslatedPointerY'], _0x2f057a['pointerDownPredicate'], !0x1, _0x2f057a['cameraToUseForPointers']); _0x28a008['_processPointerDown'](_0x40edac, _0x43649e); } } , this['_onPointerUp'] = function(_0x335460) { 0x0 !== _0x28a008['_totalPointersPressed'] && (_0x28a008['_totalPointersPressed']--, _0x28a008['_pickedUpMesh'] = null, _0x28a008['_meshPickProceed'] = !0x1, _0x28a008['_updatePointerPosition'](_0x335460), _0x2f057a['preventDefaultOnPointerUp'] && _0x1e1b27 && (_0x335460['preventDefault'](), _0x1e1b27['focus']()), _0x28a008['_initClickEvent'](_0x2f057a['onPrePointerObservable'], _0x2f057a['onPointerObservable'], _0x335460, function(_0x55bd78, _0x1398c8) { if (_0x2f057a['onPrePointerObservable']['hasObservers']() && !_0x55bd78['ignore']) { if (!_0x55bd78['hasSwiped']) { if (_0x55bd78['singleClick'] && _0x2f057a['onPrePointerObservable']['hasSpecificMask'](_0x1731fb['a']['POINTERTAP']) && _0x28a008['_checkPrePointerObservable'](null, _0x335460, _0x1731fb['a']['POINTERTAP'])) return; if (_0x55bd78['doubleClick'] && _0x2f057a['onPrePointerObservable']['hasSpecificMask'](_0x1731fb['a']['POINTERDOUBLETAP']) && _0x28a008['_checkPrePointerObservable'](null, _0x335460, _0x1731fb['a']['POINTERDOUBLETAP'])) return; } if (_0x28a008['_checkPrePointerObservable'](null, _0x335460, _0x1731fb['a']['POINTERUP'])) return; } _0x28a008['_pointerCaptures'][_0x335460['pointerId']] && (_0x28a008['_pointerCaptures'][_0x335460['pointerId']] = !0x1, (_0x2f057a['cameraToUseForPointers'] || _0x2f057a['activeCamera']) && (_0x2f057a['pointerUpPredicate'] || (_0x2f057a['pointerUpPredicate'] = function(_0x2a3323) { return _0x2a3323['isPickable'] && _0x2a3323['isVisible'] && _0x2a3323['isReady']() && _0x2a3323['isEnabled']() && (!_0x2f057a['cameraToUseForPointers'] || 0x0 != (_0x2f057a['cameraToUseForPointers']['layerMask'] & _0x2a3323['layerMask'])); } ), !_0x28a008['_meshPickProceed'] && (_0x2205bb['a'] && _0x2205bb['a']['HasTriggers'] || _0x2f057a['onPointerObservable']['hasObservers']()) && _0x28a008['_initActionManager'](null, _0x55bd78), _0x1398c8 || (_0x1398c8 = _0x28a008['_currentPickResult']), _0x28a008['_processPointerUp'](_0x1398c8, _0x335460, _0x55bd78), _0x28a008['_previousPickResult'] = _0x28a008['_currentPickResult'])); })); } , this['_onKeyDown'] = function(_0x7e65ff) { var _0x48d2a9 = _0x48eeea['a']['KEYDOWN']; if (_0x2f057a['onPreKeyboardObservable']['hasObservers']()) { var _0x59320c = new _0x48eeea['c'](_0x48d2a9,_0x7e65ff); if (_0x2f057a['onPreKeyboardObservable']['notifyObservers'](_0x59320c, _0x48d2a9), _0x59320c['skipOnPointerObservable']) return; } if (_0x2f057a['onKeyboardObservable']['hasObservers']()) { _0x59320c = new _0x48eeea['b'](_0x48d2a9,_0x7e65ff); _0x2f057a['onKeyboardObservable']['notifyObservers'](_0x59320c, _0x48d2a9); } _0x2f057a['actionManager'] && _0x2f057a['actionManager']['processTrigger'](_0x22ca5d['a']['ACTION_OnKeyDownTrigger'], _0xa60415['a']['CreateNewFromScene'](_0x2f057a, _0x7e65ff)); } , this['_onKeyUp'] = function(_0x2bc747) { var _0x2b6601 = _0x48eeea['a']['KEYUP']; if (_0x2f057a['onPreKeyboardObservable']['hasObservers']()) { var _0x594f4c = new _0x48eeea['c'](_0x2b6601,_0x2bc747); if (_0x2f057a['onPreKeyboardObservable']['notifyObservers'](_0x594f4c, _0x2b6601), _0x594f4c['skipOnPointerObservable']) return; } if (_0x2f057a['onKeyboardObservable']['hasObservers']()) { _0x594f4c = new _0x48eeea['b'](_0x2b6601,_0x2bc747); _0x2f057a['onKeyboardObservable']['notifyObservers'](_0x594f4c, _0x2b6601); } _0x2f057a['actionManager'] && _0x2f057a['actionManager']['processTrigger'](_0x22ca5d['a']['ACTION_OnKeyUpTrigger'], _0xa60415['a']['CreateNewFromScene'](_0x2f057a, _0x2bc747)); } , this['_onCanvasFocusObserver'] = _0x696351['onCanvasFocusObservable']['add'](function() { _0x1e1b27 && (_0x1e1b27['addEventListener']('keydown', _0x28a008['_onKeyDown'], !0x1), _0x1e1b27['addEventListener']('keyup', _0x28a008['_onKeyUp'], !0x1)); }), this['_onCanvasBlurObserver'] = _0x696351['onCanvasBlurObservable']['add'](function() { _0x1e1b27 && (_0x1e1b27['removeEventListener']('keydown', _0x28a008['_onKeyDown']), _0x1e1b27['removeEventListener']('keyup', _0x28a008['_onKeyUp'])); }); var _0x4fab6b = _0x24e4b1['h']['GetPointerPrefix'](); _0x1896f7 && (_0x1e1b27['addEventListener'](_0x4fab6b + 'move', this['_onPointerMove'], !0x1), this['_wheelEventName'] = 'onwheel'in document['createElement']('div') ? 'wheel' : void 0x0 !== document['onmousewheel'] ? 'mousewheel' : 'DOMMouseScroll', _0x1e1b27['addEventListener'](this['_wheelEventName'], this['_onPointerMove'], !0x1)), _0x57e470 && _0x1e1b27['addEventListener'](_0x4fab6b + 'down', this['_onPointerDown'], !0x1), _0x34fb9b && window['addEventListener'](_0x4fab6b + 'up', this['_onPointerUp'], !0x1); } } , _0x336ea1['prototype']['detachControl'] = function() { var _0x537231 = _0x24e4b1['h']['GetPointerPrefix']() , _0x53456c = this['_scene']['getEngine']()['getRenderingCanvas']() , _0x30e82c = this['_scene']['getEngine'](); _0x53456c && (_0x53456c['removeEventListener'](_0x537231 + 'move', this['_onPointerMove']), _0x53456c['removeEventListener'](_0x537231 + 'down', this['_onPointerDown']), window['removeEventListener'](_0x537231 + 'up', this['_onPointerUp']), this['_onCanvasBlurObserver'] && _0x30e82c['onCanvasBlurObservable']['remove'](this['_onCanvasBlurObserver']), this['_onCanvasFocusObserver'] && _0x30e82c['onCanvasFocusObservable']['remove'](this['_onCanvasFocusObserver']), _0x53456c['removeEventListener']('keydown', this['_onKeyDown']), _0x53456c['removeEventListener']('keyup', this['_onKeyUp']), _0x53456c['style']['cursor'] = this['_scene']['defaultCursor']); } , _0x336ea1['prototype']['setPointerOverMesh'] = function(_0x235061) { var _0x5ea87d; this['_pointerOverMesh'] !== _0x235061 && (this['_pointerOverMesh'] && (_0x5ea87d = this['_pointerOverMesh']['_getActionManagerForTrigger'](_0x22ca5d['a']['ACTION_OnPointerOutTrigger'])) && _0x5ea87d['processTrigger'](_0x22ca5d['a']['ACTION_OnPointerOutTrigger'], _0xa60415['a']['CreateNew'](this['_pointerOverMesh'])), this['_pointerOverMesh'] = _0x235061, this['_pointerOverMesh'] && (_0x5ea87d = this['_pointerOverMesh']['_getActionManagerForTrigger'](_0x22ca5d['a']['ACTION_OnPointerOverTrigger'])) && _0x5ea87d['processTrigger'](_0x22ca5d['a']['ACTION_OnPointerOverTrigger'], _0xa60415['a']['CreateNew'](this['_pointerOverMesh']))); } , _0x336ea1['prototype']['getPointerOverMesh'] = function() { return this['_pointerOverMesh']; } , _0x336ea1['DragMovementThreshold'] = 0xa, _0x336ea1['LongPressDelay'] = 0x1f4, _0x336ea1['DoubleClickDelay'] = 0x12c, _0x336ea1['ExclusiveDoubleClickMode'] = !0x1, _0x336ea1; }(); _0x2fb05f['d'](_0x5456c0, 'a', function() { return _0xc674be; }); var _0xc674be = function(_0x2e6ae8) { function _0x5b6241(_0x215ebd, _0x267dca) { var _0x549857 = _0x2e6ae8['call'](this) || this; return _0x549857['_inputManager'] = new _0x2c78b5(_0x549857), _0x549857['cameraToUseForPointers'] = null, _0x549857['_isScene'] = !0x0, _0x549857['autoClear'] = !0x0, _0x549857['autoClearDepthAndStencil'] = !0x0, _0x549857['clearColor'] = new _0x4b6821['f'](0.2,0.2,0.3,0x1), _0x549857['ambientColor'] = new _0x4b6821['e'](0x0,0x0,0x0), _0x549857['_forceWireframe'] = !0x1, _0x549857['_forcePointsCloud'] = !0x1, _0x549857['animationsEnabled'] = !0x0, _0x549857['_animationPropertiesOverride'] = null, _0x549857['useConstantAnimationDeltaTime'] = !0x1, _0x549857['constantlyUpdateMeshUnderPointer'] = !0x1, _0x549857['hoverCursor'] = 'pointer', _0x549857['defaultCursor'] = '', _0x549857['preventDefaultOnPointerDown'] = !0x0, _0x549857['preventDefaultOnPointerUp'] = !0x0, _0x549857['metadata'] = null, _0x549857['reservedDataStore'] = null, _0x549857['disableOfflineSupportExceptionRules'] = new Array(), _0x549857['onDisposeObservable'] = new _0x3e0758['c'](), _0x549857['_onDisposeObserver'] = null, _0x549857['onBeforeRenderObservable'] = new _0x3e0758['c'](), _0x549857['_onBeforeRenderObserver'] = null, _0x549857['onAfterRenderObservable'] = new _0x3e0758['c'](), _0x549857['_onAfterRenderObserver'] = null, _0x549857['onBeforeAnimationsObservable'] = new _0x3e0758['c'](), _0x549857['onAfterAnimationsObservable'] = new _0x3e0758['c'](), _0x549857['onBeforeDrawPhaseObservable'] = new _0x3e0758['c'](), _0x549857['onAfterDrawPhaseObservable'] = new _0x3e0758['c'](), _0x549857['onReadyObservable'] = new _0x3e0758['c'](), _0x549857['onBeforeCameraRenderObservable'] = new _0x3e0758['c'](), _0x549857['_onBeforeCameraRenderObserver'] = null, _0x549857['onAfterCameraRenderObservable'] = new _0x3e0758['c'](), _0x549857['_onAfterCameraRenderObserver'] = null, _0x549857['onBeforeActiveMeshesEvaluationObservable'] = new _0x3e0758['c'](), _0x549857['onAfterActiveMeshesEvaluationObservable'] = new _0x3e0758['c'](), _0x549857['onBeforeParticlesRenderingObservable'] = new _0x3e0758['c'](), _0x549857['onAfterParticlesRenderingObservable'] = new _0x3e0758['c'](), _0x549857['onDataLoadedObservable'] = new _0x3e0758['c'](), _0x549857['onNewCameraAddedObservable'] = new _0x3e0758['c'](), _0x549857['onCameraRemovedObservable'] = new _0x3e0758['c'](), _0x549857['onNewLightAddedObservable'] = new _0x3e0758['c'](), _0x549857['onLightRemovedObservable'] = new _0x3e0758['c'](), _0x549857['onNewGeometryAddedObservable'] = new _0x3e0758['c'](), _0x549857['onGeometryRemovedObservable'] = new _0x3e0758['c'](), _0x549857['onNewTransformNodeAddedObservable'] = new _0x3e0758['c'](), _0x549857['onTransformNodeRemovedObservable'] = new _0x3e0758['c'](), _0x549857['onNewMeshAddedObservable'] = new _0x3e0758['c'](), _0x549857['onMeshRemovedObservable'] = new _0x3e0758['c'](), _0x549857['onNewSkeletonAddedObservable'] = new _0x3e0758['c'](), _0x549857['onSkeletonRemovedObservable'] = new _0x3e0758['c'](), _0x549857['onNewMaterialAddedObservable'] = new _0x3e0758['c'](), _0x549857['onMaterialRemovedObservable'] = new _0x3e0758['c'](), _0x549857['onNewTextureAddedObservable'] = new _0x3e0758['c'](), _0x549857['onTextureRemovedObservable'] = new _0x3e0758['c'](), _0x549857['onBeforeRenderTargetsRenderObservable'] = new _0x3e0758['c'](), _0x549857['onAfterRenderTargetsRenderObservable'] = new _0x3e0758['c'](), _0x549857['onBeforeStepObservable'] = new _0x3e0758['c'](), _0x549857['onAfterStepObservable'] = new _0x3e0758['c'](), _0x549857['onActiveCameraChanged'] = new _0x3e0758['c'](), _0x549857['onBeforeRenderingGroupObservable'] = new _0x3e0758['c'](), _0x549857['onAfterRenderingGroupObservable'] = new _0x3e0758['c'](), _0x549857['onMeshImportedObservable'] = new _0x3e0758['c'](), _0x549857['_registeredForLateAnimationBindings'] = new _0x534a58['b'](0x100), _0x549857['onPrePointerObservable'] = new _0x3e0758['c'](), _0x549857['onPointerObservable'] = new _0x3e0758['c'](), _0x549857['onPreKeyboardObservable'] = new _0x3e0758['c'](), _0x549857['onKeyboardObservable'] = new _0x3e0758['c'](), _0x549857['_useRightHandedSystem'] = !0x1, _0x549857['_timeAccumulator'] = 0x0, _0x549857['_currentStepId'] = 0x0, _0x549857['_currentInternalStep'] = 0x0, _0x549857['_fogEnabled'] = !0x0, _0x549857['_fogMode'] = _0x5b6241['FOGMODE_NONE'], _0x549857['fogColor'] = new _0x4b6821['e'](0.2,0.2,0.3), _0x549857['fogDensity'] = 0.1, _0x549857['fogStart'] = 0x0, _0x549857['fogEnd'] = 0x3e8, _0x549857['_shadowsEnabled'] = !0x0, _0x549857['_lightsEnabled'] = !0x0, _0x549857['activeCameras'] = new Array(), _0x549857['_texturesEnabled'] = !0x0, _0x549857['particlesEnabled'] = !0x0, _0x549857['spritesEnabled'] = !0x0, _0x549857['_skeletonsEnabled'] = !0x0, _0x549857['lensFlaresEnabled'] = !0x0, _0x549857['collisionsEnabled'] = !0x0, _0x549857['gravity'] = new _0x4b6821['x'](0x0,-9.807,0x0), _0x549857['postProcessesEnabled'] = !0x0, _0x549857['postProcesses'] = new Array(), _0x549857['renderTargetsEnabled'] = !0x0, _0x549857['dumpNextRenderTargets'] = !0x1, _0x549857['customRenderTargets'] = new Array(), _0x549857['importedMeshesFiles'] = new Array(), _0x549857['probesEnabled'] = !0x0, _0x549857['_meshesForIntersections'] = new _0x534a58['b'](0x100), _0x549857['proceduralTexturesEnabled'] = !0x0, _0x549857['_totalVertices'] = new _0x24e4b1['f'](), _0x549857['_activeIndices'] = new _0x24e4b1['f'](), _0x549857['_activeParticles'] = new _0x24e4b1['f'](), _0x549857['_activeBones'] = new _0x24e4b1['f'](), _0x549857['_animationTime'] = 0x0, _0x549857['animationTimeScale'] = 0x1, _0x549857['_renderId'] = 0x0, _0x549857['_frameId'] = 0x0, _0x549857['_executeWhenReadyTimeoutId'] = -0x1, _0x549857['_intermediateRendering'] = !0x1, _0x549857['_viewUpdateFlag'] = -0x1, _0x549857['_projectionUpdateFlag'] = -0x1, _0x549857['_toBeDisposed'] = new Array(0x100), _0x549857['_activeRequests'] = new Array(), _0x549857['_pendingData'] = new Array(), _0x549857['_isDisposed'] = !0x1, _0x549857['dispatchAllSubMeshesOfActiveMeshes'] = !0x1, _0x549857['_activeMeshes'] = new _0x534a58['a'](0x100), _0x549857['_processedMaterials'] = new _0x534a58['a'](0x100), _0x549857['_renderTargets'] = new _0x534a58['b'](0x100), _0x549857['_activeParticleSystems'] = new _0x534a58['a'](0x100), _0x549857['_activeSkeletons'] = new _0x534a58['b'](0x20), _0x549857['_softwareSkinnedMeshes'] = new _0x534a58['b'](0x20), _0x549857['_activeAnimatables'] = new Array(), _0x549857['_transformMatrix'] = _0x4b6821['j']['Zero'](), _0x549857['requireLightSorting'] = !0x1, _0x549857['_components'] = [], _0x549857['_serializableComponents'] = [], _0x549857['_transientComponents'] = [], _0x549857['_beforeCameraUpdateStage'] = _0xc9b536['b']['Create'](), _0x549857['_beforeClearStage'] = _0xc9b536['b']['Create'](), _0x549857['_gatherRenderTargetsStage'] = _0xc9b536['b']['Create'](), _0x549857['_gatherActiveCameraRenderTargetsStage'] = _0xc9b536['b']['Create'](), _0x549857['_isReadyForMeshStage'] = _0xc9b536['b']['Create'](), _0x549857['_beforeEvaluateActiveMeshStage'] = _0xc9b536['b']['Create'](), _0x549857['_evaluateSubMeshStage'] = _0xc9b536['b']['Create'](), _0x549857['_activeMeshStage'] = _0xc9b536['b']['Create'](), _0x549857['_cameraDrawRenderTargetStage'] = _0xc9b536['b']['Create'](), _0x549857['_beforeCameraDrawStage'] = _0xc9b536['b']['Create'](), _0x549857['_beforeRenderTargetDrawStage'] = _0xc9b536['b']['Create'](), _0x549857['_beforeRenderingGroupDrawStage'] = _0xc9b536['b']['Create'](), _0x549857['_beforeRenderingMeshStage'] = _0xc9b536['b']['Create'](), _0x549857['_afterRenderingMeshStage'] = _0xc9b536['b']['Create'](), _0x549857['_afterRenderingGroupDrawStage'] = _0xc9b536['b']['Create'](), _0x549857['_afterCameraDrawStage'] = _0xc9b536['b']['Create'](), _0x549857['_afterRenderTargetDrawStage'] = _0xc9b536['b']['Create'](), _0x549857['_afterRenderStage'] = _0xc9b536['b']['Create'](), _0x549857['_pointerMoveStage'] = _0xc9b536['b']['Create'](), _0x549857['_pointerDownStage'] = _0xc9b536['b']['Create'](), _0x549857['_pointerUpStage'] = _0xc9b536['b']['Create'](), _0x549857['geometriesByUniqueId'] = null, _0x549857['_defaultMeshCandidates'] = { 'data': [], 'length': 0x0 }, _0x549857['_defaultSubMeshCandidates'] = { 'data': [], 'length': 0x0 }, _0x549857['_preventFreeActiveMeshesAndRenderingGroups'] = !0x1, _0x549857['_activeMeshesFrozen'] = !0x1, _0x549857['_allowPostProcessClearColor'] = !0x0, _0x549857['getDeterministicFrameTime'] = function() { return 0x3e8 / 0x3c; } , _0x549857['_blockMaterialDirtyMechanism'] = !0x1, _0x549857['_engine'] = _0x215ebd || _0xce6890['a']['LastCreatedEngine'], _0x267dca && _0x267dca['virtual'] || (_0xce6890['a']['_LastCreatedScene'] = _0x549857, _0x549857['_engine']['scenes']['push'](_0x549857)), _0x549857['_uid'] = null, _0x549857['_renderingManager'] = new _0x5e197e['b'](_0x549857), _0x32dcb0['a'] && (_0x549857['postProcessManager'] = new _0x32dcb0['a'](_0x549857)), _0x52f86b['a']['IsWindowObjectExist']() && _0x549857['attachControl'](), _0x549857['_createUbo'](), _0x30fcde['a'] && (_0x549857['_imageProcessingConfiguration'] = new _0x30fcde['a']()), _0x549857['setDefaultCandidateProviders'](), _0x267dca && !0x0 === _0x267dca['useGeometryUniqueIdsMap'] && (_0x549857['geometriesByUniqueId'] = {}), _0x549857['useMaterialMeshMap'] = _0x267dca && _0x267dca['useGeometryUniqueIdsMap'] || !0x1, _0x549857['useClonedMeshhMap'] = _0x267dca && _0x267dca['useClonedMeshhMap'] || !0x1, _0x267dca && _0x267dca['virtual'] || _0x549857['_engine']['onNewSceneAddedObservable']['notifyObservers'](_0x549857), _0x549857; } return _0x1760d6['d'](_0x5b6241, _0x2e6ae8), _0x5b6241['DefaultMaterialFactory'] = function(_0x19c7b4) { throw _0x28a876['a']['WarnImport']('StandardMaterial'); } , _0x5b6241['CollisionCoordinatorFactory'] = function() { throw _0x28a876['a']['WarnImport']('DefaultCollisionCoordinator'); } , Object['defineProperty'](_0x5b6241['prototype'], 'environmentTexture', { 'get': function() { return this['_environmentTexture']; }, 'set': function(_0x206429) { this['_environmentTexture'] !== _0x206429 && (this['_environmentTexture'] = _0x206429, this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'imageProcessingConfiguration', { 'get': function() { return this['_imageProcessingConfiguration']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'forceWireframe', { 'get': function() { return this['_forceWireframe']; }, 'set': function(_0x3a7ee9) { this['_forceWireframe'] !== _0x3a7ee9 && (this['_forceWireframe'] = _0x3a7ee9, this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_MiscDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'forcePointsCloud', { 'get': function() { return this['_forcePointsCloud']; }, 'set': function(_0x5d1c6c) { this['_forcePointsCloud'] !== _0x5d1c6c && (this['_forcePointsCloud'] = _0x5d1c6c, this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_MiscDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'animationPropertiesOverride', { 'get': function() { return this['_animationPropertiesOverride']; }, 'set': function(_0x17fca8) { this['_animationPropertiesOverride'] = _0x17fca8; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'onDispose', { 'set': function(_0x2625fb) { this['_onDisposeObserver'] && this['onDisposeObservable']['remove'](this['_onDisposeObserver']), this['_onDisposeObserver'] = this['onDisposeObservable']['add'](_0x2625fb); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'beforeRender', { 'set': function(_0x11cc81) { this['_onBeforeRenderObserver'] && this['onBeforeRenderObservable']['remove'](this['_onBeforeRenderObserver']), _0x11cc81 && (this['_onBeforeRenderObserver'] = this['onBeforeRenderObservable']['add'](_0x11cc81)); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'afterRender', { 'set': function(_0x439ca1) { this['_onAfterRenderObserver'] && this['onAfterRenderObservable']['remove'](this['_onAfterRenderObserver']), _0x439ca1 && (this['_onAfterRenderObserver'] = this['onAfterRenderObservable']['add'](_0x439ca1)); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'beforeCameraRender', { 'set': function(_0x5e6440) { this['_onBeforeCameraRenderObserver'] && this['onBeforeCameraRenderObservable']['remove'](this['_onBeforeCameraRenderObserver']), this['_onBeforeCameraRenderObserver'] = this['onBeforeCameraRenderObservable']['add'](_0x5e6440); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'afterCameraRender', { 'set': function(_0x346883) { this['_onAfterCameraRenderObserver'] && this['onAfterCameraRenderObservable']['remove'](this['_onAfterCameraRenderObserver']), this['_onAfterCameraRenderObserver'] = this['onAfterCameraRenderObservable']['add'](_0x346883); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'unTranslatedPointer', { 'get': function() { return this['_inputManager']['unTranslatedPointer']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241, 'DragMovementThreshold', { 'get': function() { return _0x2c78b5['DragMovementThreshold']; }, 'set': function(_0x3ef58a) { _0x2c78b5['DragMovementThreshold'] = _0x3ef58a; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241, 'LongPressDelay', { 'get': function() { return _0x2c78b5['LongPressDelay']; }, 'set': function(_0x3ca87d) { _0x2c78b5['LongPressDelay'] = _0x3ca87d; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241, 'DoubleClickDelay', { 'get': function() { return _0x2c78b5['DoubleClickDelay']; }, 'set': function(_0x271519) { _0x2c78b5['DoubleClickDelay'] = _0x271519; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241, 'ExclusiveDoubleClickMode', { 'get': function() { return _0x2c78b5['ExclusiveDoubleClickMode']; }, 'set': function(_0x414686) { _0x2c78b5['ExclusiveDoubleClickMode'] = _0x414686; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'useRightHandedSystem', { 'get': function() { return this['_useRightHandedSystem']; }, 'set': function(_0x46e725) { this['_useRightHandedSystem'] !== _0x46e725 && (this['_useRightHandedSystem'] = _0x46e725, this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_MiscDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['setStepId'] = function(_0x585966) { this['_currentStepId'] = _0x585966; } , _0x5b6241['prototype']['getStepId'] = function() { return this['_currentStepId']; } , _0x5b6241['prototype']['getInternalStep'] = function() { return this['_currentInternalStep']; } , Object['defineProperty'](_0x5b6241['prototype'], 'fogEnabled', { 'get': function() { return this['_fogEnabled']; }, 'set': function(_0x23f837) { this['_fogEnabled'] !== _0x23f837 && (this['_fogEnabled'] = _0x23f837, this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_MiscDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'fogMode', { 'get': function() { return this['_fogMode']; }, 'set': function(_0x3f71fb) { this['_fogMode'] !== _0x3f71fb && (this['_fogMode'] = _0x3f71fb, this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_MiscDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'shadowsEnabled', { 'get': function() { return this['_shadowsEnabled']; }, 'set': function(_0x5aabf2) { this['_shadowsEnabled'] !== _0x5aabf2 && (this['_shadowsEnabled'] = _0x5aabf2, this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_LightDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'lightsEnabled', { 'get': function() { return this['_lightsEnabled']; }, 'set': function(_0x17e37a) { this['_lightsEnabled'] !== _0x17e37a && (this['_lightsEnabled'] = _0x17e37a, this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_LightDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'activeCamera', { 'get': function() { return this['_activeCamera']; }, 'set': function(_0x10bd26) { _0x10bd26 !== this['_activeCamera'] && (this['_activeCamera'] = _0x10bd26, this['onActiveCameraChanged']['notifyObservers'](this)); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'defaultMaterial', { 'get': function() { return this['_defaultMaterial'] || (this['_defaultMaterial'] = _0x5b6241['DefaultMaterialFactory'](this)), this['_defaultMaterial']; }, 'set': function(_0x3fe396) { this['_defaultMaterial'] = _0x3fe396; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'texturesEnabled', { 'get': function() { return this['_texturesEnabled']; }, 'set': function(_0x5e5ad9) { this['_texturesEnabled'] !== _0x5e5ad9 && (this['_texturesEnabled'] = _0x5e5ad9, this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'skeletonsEnabled', { 'get': function() { return this['_skeletonsEnabled']; }, 'set': function(_0x20b780) { this['_skeletonsEnabled'] !== _0x20b780 && (this['_skeletonsEnabled'] = _0x20b780, this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_AttributesDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'collisionCoordinator', { 'get': function() { return this['_collisionCoordinator'] || (this['_collisionCoordinator'] = _0x5b6241['CollisionCoordinatorFactory'](), this['_collisionCoordinator']['init'](this)), this['_collisionCoordinator']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'frustumPlanes', { 'get': function() { return this['_frustumPlanes']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['_registerTransientComponents'] = function() { if (this['_transientComponents']['length'] > 0x0) { for (var _0x2a3342 = 0x0, _0x1d4521 = this['_transientComponents']; _0x2a3342 < _0x1d4521['length']; _0x2a3342++) { _0x1d4521[_0x2a3342]['register'](); } this['_transientComponents'] = []; } } , _0x5b6241['prototype']['_addComponent'] = function(_0x323ff4) { this['_components']['push'](_0x323ff4), this['_transientComponents']['push'](_0x323ff4); var _0x29ec2d = _0x323ff4; _0x29ec2d['addFromContainer'] && this['_serializableComponents']['push'](_0x29ec2d); } , _0x5b6241['prototype']['_getComponent'] = function(_0x4b70c2) { for (var _0x2738b3 = 0x0, _0x195f35 = this['_components']; _0x2738b3 < _0x195f35['length']; _0x2738b3++) { var _0x40b486 = _0x195f35[_0x2738b3]; if (_0x40b486['name'] === _0x4b70c2) return _0x40b486; } return null; } , _0x5b6241['prototype']['getClassName'] = function() { return 'Scene'; } , _0x5b6241['prototype']['_getDefaultMeshCandidates'] = function() { return this['_defaultMeshCandidates']['data'] = this['meshes'], this['_defaultMeshCandidates']['length'] = this['meshes']['length'], this['_defaultMeshCandidates']; } , _0x5b6241['prototype']['_getDefaultSubMeshCandidates'] = function(_0x15b22b) { return this['_defaultSubMeshCandidates']['data'] = _0x15b22b['subMeshes'], this['_defaultSubMeshCandidates']['length'] = _0x15b22b['subMeshes']['length'], this['_defaultSubMeshCandidates']; } , _0x5b6241['prototype']['setDefaultCandidateProviders'] = function() { this['getActiveMeshCandidates'] = this['_getDefaultMeshCandidates']['bind'](this), this['getActiveSubMeshCandidates'] = this['_getDefaultSubMeshCandidates']['bind'](this), this['getIntersectingSubMeshCandidates'] = this['_getDefaultSubMeshCandidates']['bind'](this), this['getCollidingSubMeshCandidates'] = this['_getDefaultSubMeshCandidates']['bind'](this); } , Object['defineProperty'](_0x5b6241['prototype'], 'meshUnderPointer', { 'get': function() { return this['_inputManager']['meshUnderPointer']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'pointerX', { 'get': function() { return this['_inputManager']['pointerX']; }, 'set': function(_0x58d3cf) { this['_inputManager']['pointerX'] = _0x58d3cf; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5b6241['prototype'], 'pointerY', { 'get': function() { return this['_inputManager']['pointerY']; }, 'set': function(_0x274232) { this['_inputManager']['pointerY'] = _0x274232; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['getCachedMaterial'] = function() { return this['_cachedMaterial']; } , _0x5b6241['prototype']['getCachedEffect'] = function() { return this['_cachedEffect']; } , _0x5b6241['prototype']['getCachedVisibility'] = function() { return this['_cachedVisibility']; } , _0x5b6241['prototype']['isCachedMaterialInvalid'] = function(_0x17ace1, _0x2ed3f6, _0x429af0) { return void 0x0 === _0x429af0 && (_0x429af0 = 0x1), this['_cachedEffect'] !== _0x2ed3f6 || this['_cachedMaterial'] !== _0x17ace1 || this['_cachedVisibility'] !== _0x429af0; } , _0x5b6241['prototype']['getEngine'] = function() { return this['_engine']; } , _0x5b6241['prototype']['getTotalVertices'] = function() { return this['_totalVertices']['current']; } , Object['defineProperty'](_0x5b6241['prototype'], 'totalVerticesPerfCounter', { 'get': function() { return this['_totalVertices']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['getActiveIndices'] = function() { return this['_activeIndices']['current']; } , Object['defineProperty'](_0x5b6241['prototype'], 'totalActiveIndicesPerfCounter', { 'get': function() { return this['_activeIndices']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['getActiveParticles'] = function() { return this['_activeParticles']['current']; } , Object['defineProperty'](_0x5b6241['prototype'], 'activeParticlesPerfCounter', { 'get': function() { return this['_activeParticles']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['getActiveBones'] = function() { return this['_activeBones']['current']; } , Object['defineProperty'](_0x5b6241['prototype'], 'activeBonesPerfCounter', { 'get': function() { return this['_activeBones']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['getActiveMeshes'] = function() { return this['_activeMeshes']; } , _0x5b6241['prototype']['getAnimationRatio'] = function() { return void 0x0 !== this['_animationRatio'] ? this['_animationRatio'] : 0x1; } , _0x5b6241['prototype']['getRenderId'] = function() { return this['_renderId']; } , _0x5b6241['prototype']['getFrameId'] = function() { return this['_frameId']; } , _0x5b6241['prototype']['incrementRenderId'] = function() { this['_renderId']++; } , _0x5b6241['prototype']['_createUbo'] = function() { this['_sceneUbo'] = new _0x3b8c1c['a'](this['_engine'],void 0x0,!0x0), this['_sceneUbo']['addUniform']('viewProjection', 0x10), this['_sceneUbo']['addUniform']('view', 0x10); } , _0x5b6241['prototype']['simulatePointerMove'] = function(_0x1fc456, _0x2dcbe0) { return this['_inputManager']['simulatePointerMove'](_0x1fc456, _0x2dcbe0), this; } , _0x5b6241['prototype']['simulatePointerDown'] = function(_0x516a5f, _0x2f8392) { return this['_inputManager']['simulatePointerDown'](_0x516a5f, _0x2f8392), this; } , _0x5b6241['prototype']['simulatePointerUp'] = function(_0x5e3cf7, _0x49f25d, _0x37598d) { return this['_inputManager']['simulatePointerUp'](_0x5e3cf7, _0x49f25d, _0x37598d), this; } , _0x5b6241['prototype']['isPointerCaptured'] = function(_0x24b41d) { return void 0x0 === _0x24b41d && (_0x24b41d = 0x0), this['_inputManager']['isPointerCaptured'](_0x24b41d); } , _0x5b6241['prototype']['attachControl'] = function(_0x22ca69, _0x43e44e, _0x34e87f) { void 0x0 === _0x22ca69 && (_0x22ca69 = !0x0), void 0x0 === _0x43e44e && (_0x43e44e = !0x0), void 0x0 === _0x34e87f && (_0x34e87f = !0x0), this['_inputManager']['attachControl'](_0x22ca69, _0x43e44e, _0x34e87f); } , _0x5b6241['prototype']['detachControl'] = function() { this['_inputManager']['detachControl'](); } , _0x5b6241['prototype']['isReady'] = function() { if (this['_isDisposed']) return !0x1; var _0x293c4e, _0x52a214 = this['getEngine'](); if (!_0x52a214['areAllEffectsReady']()) return !0x1; if (this['_pendingData']['length'] > 0x0) return !0x1; for (_0x293c4e = 0x0; _0x293c4e < this['meshes']['length']; _0x293c4e++) { var _0x2426be = this['meshes'][_0x293c4e]; if (_0x2426be['isEnabled']() && (_0x2426be['subMeshes'] && 0x0 !== _0x2426be['subMeshes']['length'])) { if (!_0x2426be['isReady'](!0x0)) return !0x1; for (var _0x56688d = 'InstancedMesh' === _0x2426be['getClassName']() || 'InstancedLinesMesh' === _0x2426be['getClassName']() || _0x52a214['getCaps']()['instancedArrays'] && _0x2426be['instances']['length'] > 0x0, _0x415bae = 0x0, _0xa25288 = this['_isReadyForMeshStage']; _0x415bae < _0xa25288['length']; _0x415bae++) { if (!_0xa25288[_0x415bae]['action'](_0x2426be, _0x56688d)) return !0x1; } } } for (_0x293c4e = 0x0; _0x293c4e < this['geometries']['length']; _0x293c4e++) { if (this['geometries'][_0x293c4e]['delayLoadState'] === _0x22ca5d['a']['DELAYLOADSTATE_LOADING']) return !0x1; } if (this['activeCameras'] && this['activeCameras']['length'] > 0x0) for (var _0x2cadfc = 0x0, _0x3ae968 = this['activeCameras']; _0x2cadfc < _0x3ae968['length']; _0x2cadfc++) { if (!_0x3ae968[_0x2cadfc]['isReady'](!0x0)) return !0x1; } else if (this['activeCamera'] && !this['activeCamera']['isReady'](!0x0)) return !0x1; for (var _0x57b631 = 0x0, _0x1da199 = this['particleSystems']; _0x57b631 < _0x1da199['length']; _0x57b631++) { if (!_0x1da199[_0x57b631]['isReady']()) return !0x1; } return !0x0; } , _0x5b6241['prototype']['resetCachedMaterial'] = function() { this['_cachedMaterial'] = null, this['_cachedEffect'] = null, this['_cachedVisibility'] = null; } , _0x5b6241['prototype']['registerBeforeRender'] = function(_0x450396) { this['onBeforeRenderObservable']['add'](_0x450396); } , _0x5b6241['prototype']['unregisterBeforeRender'] = function(_0x4dbb9d) { this['onBeforeRenderObservable']['removeCallback'](_0x4dbb9d); } , _0x5b6241['prototype']['registerAfterRender'] = function(_0x59e6e4) { this['onAfterRenderObservable']['add'](_0x59e6e4); } , _0x5b6241['prototype']['unregisterAfterRender'] = function(_0x508746) { this['onAfterRenderObservable']['removeCallback'](_0x508746); } , _0x5b6241['prototype']['_executeOnceBeforeRender'] = function(_0x4856ec) { var _0x3a81ae = this , _0x5d2102 = function() { _0x4856ec(), setTimeout(function() { _0x3a81ae['unregisterBeforeRender'](_0x5d2102); }); }; this['registerBeforeRender'](_0x5d2102); } , _0x5b6241['prototype']['executeOnceBeforeRender'] = function(_0x5c8526, _0x2e929e) { var _0x3c65aa = this; void 0x0 !== _0x2e929e ? setTimeout(function() { _0x3c65aa['_executeOnceBeforeRender'](_0x5c8526); }, _0x2e929e) : this['_executeOnceBeforeRender'](_0x5c8526); } , _0x5b6241['prototype']['_addPendingData'] = function(_0x3ed0d9) { this['_pendingData']['push'](_0x3ed0d9); } , _0x5b6241['prototype']['_removePendingData'] = function(_0x4f3cc1) { var _0x55bd6f = this['isLoading'] , _0x4e53a4 = this['_pendingData']['indexOf'](_0x4f3cc1); -0x1 !== _0x4e53a4 && this['_pendingData']['splice'](_0x4e53a4, 0x1), _0x55bd6f && !this['isLoading'] && this['onDataLoadedObservable']['notifyObservers'](this); } , _0x5b6241['prototype']['getWaitingItemsCount'] = function() { return this['_pendingData']['length']; } , Object['defineProperty'](_0x5b6241['prototype'], 'isLoading', { 'get': function() { return this['_pendingData']['length'] > 0x0; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['executeWhenReady'] = function(_0x5c1139) { var _0x635b2e = this; this['onReadyObservable']['add'](_0x5c1139), -0x1 === this['_executeWhenReadyTimeoutId'] && (this['_executeWhenReadyTimeoutId'] = setTimeout(function() { _0x635b2e['_checkIsReady'](); }, 0x96)); } , _0x5b6241['prototype']['whenReadyAsync'] = function() { var _0x101420 = this; return new Promise(function(_0x4a1e03) { _0x101420['executeWhenReady'](function() { _0x4a1e03(); }); } ); } , _0x5b6241['prototype']['_checkIsReady'] = function() { var _0x2d4d75 = this; if (this['_registerTransientComponents'](), this['isReady']()) return this['onReadyObservable']['notifyObservers'](this), this['onReadyObservable']['clear'](), void (this['_executeWhenReadyTimeoutId'] = -0x1); this['_executeWhenReadyTimeoutId'] = setTimeout(function() { _0x2d4d75['_checkIsReady'](); }, 0x96); } , Object['defineProperty'](_0x5b6241['prototype'], 'animatables', { 'get': function() { return this['_activeAnimatables']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['resetLastAnimationTimeFrame'] = function() { this['_animationTimeLast'] = _0x4581c2['a']['Now']; } , _0x5b6241['prototype']['getViewMatrix'] = function() { return this['_viewMatrix']; } , _0x5b6241['prototype']['getProjectionMatrix'] = function() { return this['_projectionMatrix']; } , _0x5b6241['prototype']['getTransformMatrix'] = function() { return this['_transformMatrix']; } , _0x5b6241['prototype']['setTransformMatrix'] = function(_0x1ca7a9, _0x4458fe, _0x25d64c, _0x389f9b) { this['_viewUpdateFlag'] === _0x1ca7a9['updateFlag'] && this['_projectionUpdateFlag'] === _0x4458fe['updateFlag'] || (this['_viewUpdateFlag'] = _0x1ca7a9['updateFlag'], this['_projectionUpdateFlag'] = _0x4458fe['updateFlag'], this['_viewMatrix'] = _0x1ca7a9, this['_projectionMatrix'] = _0x4458fe, this['_viewMatrix']['multiplyToRef'](this['_projectionMatrix'], this['_transformMatrix']), this['_frustumPlanes'] ? _0x4b6821['i']['GetPlanesToRef'](this['_transformMatrix'], this['_frustumPlanes']) : this['_frustumPlanes'] = _0x4b6821['i']['GetPlanes'](this['_transformMatrix']), this['_multiviewSceneUbo'] && this['_multiviewSceneUbo']['useUbo'] ? this['_updateMultiviewUbo'](_0x25d64c, _0x389f9b) : this['_sceneUbo']['useUbo'] && (this['_sceneUbo']['updateMatrix']('viewProjection', this['_transformMatrix']), this['_sceneUbo']['updateMatrix']('view', this['_viewMatrix']), this['_sceneUbo']['update']())); } , _0x5b6241['prototype']['getSceneUniformBuffer'] = function() { return this['_multiviewSceneUbo'] ? this['_multiviewSceneUbo'] : this['_sceneUbo']; } , _0x5b6241['prototype']['getUniqueId'] = function() { var _0x516cd2 = _0x5b6241['_uniqueIdCounter']; return _0x5b6241['_uniqueIdCounter']++, _0x516cd2; } , _0x5b6241['prototype']['addMesh'] = function(_0x55d275, _0x47a944) { var _0xfd8e4c = this; void 0x0 === _0x47a944 && (_0x47a944 = !0x1), this['meshes']['push'](_0x55d275), _0x55d275['_resyncLightSources'](), this['onNewMeshAddedObservable']['notifyObservers'](_0x55d275), _0x47a944 && _0x55d275['getChildMeshes']()['forEach'](function(_0x44c8a1) { _0xfd8e4c['addMesh'](_0x44c8a1); }); } , _0x5b6241['prototype']['removeMesh'] = function(_0x23778b, _0xcc5079) { var _0x968336 = this; void 0x0 === _0xcc5079 && (_0xcc5079 = !0x1); var _0x13cb82 = this['meshes']['indexOf'](_0x23778b); return -0x1 !== _0x13cb82 && (this['meshes'][_0x13cb82] = this['meshes'][this['meshes']['length'] - 0x1], this['meshes']['pop']()), this['onMeshRemovedObservable']['notifyObservers'](_0x23778b), _0xcc5079 && _0x23778b['getChildMeshes']()['forEach'](function(_0x3ef285) { _0x968336['removeMesh'](_0x3ef285); }), _0x13cb82; } , _0x5b6241['prototype']['addTransformNode'] = function(_0x206bb8) { _0x206bb8['_indexInSceneTransformNodesArray'] = this['transformNodes']['length'], this['transformNodes']['push'](_0x206bb8), this['onNewTransformNodeAddedObservable']['notifyObservers'](_0x206bb8); } , _0x5b6241['prototype']['removeTransformNode'] = function(_0x45997e) { var _0x22345d = _0x45997e['_indexInSceneTransformNodesArray']; if (-0x1 !== _0x22345d) { if (_0x22345d !== this['transformNodes']['length'] - 0x1) { var _0x5b35ac = this['transformNodes'][this['transformNodes']['length'] - 0x1]; this['transformNodes'][_0x22345d] = _0x5b35ac, _0x5b35ac['_indexInSceneTransformNodesArray'] = _0x22345d; } _0x45997e['_indexInSceneTransformNodesArray'] = -0x1, this['transformNodes']['pop'](); } return this['onTransformNodeRemovedObservable']['notifyObservers'](_0x45997e), _0x22345d; } , _0x5b6241['prototype']['removeSkeleton'] = function(_0x5149ff) { var _0x3bce53 = this['skeletons']['indexOf'](_0x5149ff); return -0x1 !== _0x3bce53 && (this['skeletons']['splice'](_0x3bce53, 0x1), this['onSkeletonRemovedObservable']['notifyObservers'](_0x5149ff)), _0x3bce53; } , _0x5b6241['prototype']['removeMorphTargetManager'] = function(_0x33fd4b) { var _0x12135b = this['morphTargetManagers']['indexOf'](_0x33fd4b); return -0x1 !== _0x12135b && this['morphTargetManagers']['splice'](_0x12135b, 0x1), _0x12135b; } , _0x5b6241['prototype']['removeLight'] = function(_0x5d2d07) { var _0x4803c2 = this['lights']['indexOf'](_0x5d2d07); if (-0x1 !== _0x4803c2) { for (var _0x2a635b = 0x0, _0x2dd097 = this['meshes']; _0x2a635b < _0x2dd097['length']; _0x2a635b++) { _0x2dd097[_0x2a635b]['_removeLightSource'](_0x5d2d07); } this['lights']['splice'](_0x4803c2, 0x1), this['sortLightsByPriority'](); } return this['onLightRemovedObservable']['notifyObservers'](_0x5d2d07), _0x4803c2; } , _0x5b6241['prototype']['removeCamera'] = function(_0x30e862) { var _0x57a17e = this['cameras']['indexOf'](_0x30e862); -0x1 !== _0x57a17e && this['cameras']['splice'](_0x57a17e, 0x1); var _0x2ecba = this['activeCameras']['indexOf'](_0x30e862); return -0x1 !== _0x2ecba && this['activeCameras']['splice'](_0x2ecba, 0x1), this['activeCamera'] === _0x30e862 && (this['cameras']['length'] > 0x0 ? this['activeCamera'] = this['cameras'][0x0] : this['activeCamera'] = null), this['onCameraRemovedObservable']['notifyObservers'](_0x30e862), _0x57a17e; } , _0x5b6241['prototype']['removeParticleSystem'] = function(_0x498422) { var _0x54a3b3 = this['particleSystems']['indexOf'](_0x498422); return -0x1 !== _0x54a3b3 && this['particleSystems']['splice'](_0x54a3b3, 0x1), _0x54a3b3; } , _0x5b6241['prototype']['removeAnimation'] = function(_0x11faee) { var _0x19da98 = this['animations']['indexOf'](_0x11faee); return -0x1 !== _0x19da98 && this['animations']['splice'](_0x19da98, 0x1), _0x19da98; } , _0x5b6241['prototype']['stopAnimation'] = function(_0x36a3f4, _0xfca8f3, _0x166af1) {} , _0x5b6241['prototype']['removeAnimationGroup'] = function(_0x3329c6) { var _0xbfd6e0 = this['animationGroups']['indexOf'](_0x3329c6); return -0x1 !== _0xbfd6e0 && this['animationGroups']['splice'](_0xbfd6e0, 0x1), _0xbfd6e0; } , _0x5b6241['prototype']['removeMultiMaterial'] = function(_0x51a19e) { var _0x4d9317 = this['multiMaterials']['indexOf'](_0x51a19e); return -0x1 !== _0x4d9317 && this['multiMaterials']['splice'](_0x4d9317, 0x1), _0x4d9317; } , _0x5b6241['prototype']['removeMaterial'] = function(_0x4d4085) { var _0x153a62 = _0x4d4085['_indexInSceneMaterialArray']; if (-0x1 !== _0x153a62 && _0x153a62 < this['materials']['length']) { if (_0x153a62 !== this['materials']['length'] - 0x1) { var _0x355114 = this['materials'][this['materials']['length'] - 0x1]; this['materials'][_0x153a62] = _0x355114, _0x355114['_indexInSceneMaterialArray'] = _0x153a62; } _0x4d4085['_indexInSceneMaterialArray'] = -0x1, this['materials']['pop'](); } return this['onMaterialRemovedObservable']['notifyObservers'](_0x4d4085), _0x153a62; } , _0x5b6241['prototype']['removeActionManager'] = function(_0x46a3f4) { var _0x58d694 = this['actionManagers']['indexOf'](_0x46a3f4); return -0x1 !== _0x58d694 && this['actionManagers']['splice'](_0x58d694, 0x1), _0x58d694; } , _0x5b6241['prototype']['removeTexture'] = function(_0x284dd4) { var _0x21234a = this['textures']['indexOf'](_0x284dd4); return -0x1 !== _0x21234a && this['textures']['splice'](_0x21234a, 0x1), this['onTextureRemovedObservable']['notifyObservers'](_0x284dd4), _0x21234a; } , _0x5b6241['prototype']['addLight'] = function(_0x594943) { this['lights']['push'](_0x594943), this['sortLightsByPriority'](); for (var _0xc06587 = 0x0, _0x45a2cf = this['meshes']; _0xc06587 < _0x45a2cf['length']; _0xc06587++) { var _0x503297 = _0x45a2cf[_0xc06587]; -0x1 === _0x503297['lightSources']['indexOf'](_0x594943) && (_0x503297['lightSources']['push'](_0x594943), _0x503297['_resyncLightSources']()); } this['onNewLightAddedObservable']['notifyObservers'](_0x594943); } , _0x5b6241['prototype']['sortLightsByPriority'] = function() { this['requireLightSorting'] && this['lights']['sort'](_0x3b7dc7['a']['CompareLightsPriority']); } , _0x5b6241['prototype']['addCamera'] = function(_0x2a8746) { this['cameras']['push'](_0x2a8746), this['onNewCameraAddedObservable']['notifyObservers'](_0x2a8746); } , _0x5b6241['prototype']['addSkeleton'] = function(_0x14e62d) { this['skeletons']['push'](_0x14e62d), this['onNewSkeletonAddedObservable']['notifyObservers'](_0x14e62d); } , _0x5b6241['prototype']['addParticleSystem'] = function(_0x4f87b2) { this['particleSystems']['push'](_0x4f87b2); } , _0x5b6241['prototype']['addAnimation'] = function(_0xfd3858) { this['animations']['push'](_0xfd3858); } , _0x5b6241['prototype']['addAnimationGroup'] = function(_0x14aff9) { this['animationGroups']['push'](_0x14aff9); } , _0x5b6241['prototype']['addMultiMaterial'] = function(_0x3679be) { this['multiMaterials']['push'](_0x3679be); } , _0x5b6241['prototype']['addMaterial'] = function(_0x551702) { _0x551702['_indexInSceneMaterialArray'] = this['materials']['length'], this['materials']['push'](_0x551702), this['onNewMaterialAddedObservable']['notifyObservers'](_0x551702); } , _0x5b6241['prototype']['addMorphTargetManager'] = function(_0x572160) { this['morphTargetManagers']['push'](_0x572160); } , _0x5b6241['prototype']['addGeometry'] = function(_0x40785d) { this['geometriesByUniqueId'] && (this['geometriesByUniqueId'][_0x40785d['uniqueId']] = this['geometries']['length']), this['geometries']['push'](_0x40785d); } , _0x5b6241['prototype']['addActionManager'] = function(_0x5e29e8) { this['actionManagers']['push'](_0x5e29e8); } , _0x5b6241['prototype']['addTexture'] = function(_0x54aea4) { this['textures']['push'](_0x54aea4), this['onNewTextureAddedObservable']['notifyObservers'](_0x54aea4); } , _0x5b6241['prototype']['switchActiveCamera'] = function(_0x1fc2c9, _0x32dfb9) { void 0x0 === _0x32dfb9 && (_0x32dfb9 = !0x0); var _0x3bcda5 = this['_engine']['getRenderingCanvas'](); _0x3bcda5 && (this['activeCamera'] && this['activeCamera']['detachControl'](_0x3bcda5), this['activeCamera'] = _0x1fc2c9, _0x32dfb9 && _0x1fc2c9['attachControl'](_0x3bcda5)); } , _0x5b6241['prototype']['setActiveCameraByID'] = function(_0x2aa446) { var _0x14cc6b = this['getCameraByID'](_0x2aa446); return _0x14cc6b ? (this['activeCamera'] = _0x14cc6b, _0x14cc6b) : null; } , _0x5b6241['prototype']['setActiveCameraByName'] = function(_0x19d26b) { var _0x38a97b = this['getCameraByName'](_0x19d26b); return _0x38a97b ? (this['activeCamera'] = _0x38a97b, _0x38a97b) : null; } , _0x5b6241['prototype']['getAnimationGroupByName'] = function(_0xc05300) { for (var _0x2633c2 = 0x0; _0x2633c2 < this['animationGroups']['length']; _0x2633c2++) if (this['animationGroups'][_0x2633c2]['name'] === _0xc05300) return this['animationGroups'][_0x2633c2]; return null; } , _0x5b6241['prototype']['getMaterialByUniqueID'] = function(_0x36c99d) { for (var _0x277fdc = 0x0; _0x277fdc < this['materials']['length']; _0x277fdc++) if (this['materials'][_0x277fdc]['uniqueId'] === _0x36c99d) return this['materials'][_0x277fdc]; return null; } , _0x5b6241['prototype']['getMaterialByID'] = function(_0xb9110d) { for (var _0x502e4a = 0x0; _0x502e4a < this['materials']['length']; _0x502e4a++) if (this['materials'][_0x502e4a]['id'] === _0xb9110d) return this['materials'][_0x502e4a]; return null; } , _0x5b6241['prototype']['getMaterialByName'] = function(_0x103267) { for (var _0x2bf994 = 0x0; _0x2bf994 < this['materials']['length']; _0x2bf994++) if (this['materials'][_0x2bf994]['name'] === _0x103267) return this['materials'][_0x2bf994]; return null; } , _0x5b6241['prototype']['getCameraByID'] = function(_0xa95535) { for (var _0x458d86 = 0x0; _0x458d86 < this['cameras']['length']; _0x458d86++) if (this['cameras'][_0x458d86]['id'] === _0xa95535) return this['cameras'][_0x458d86]; return null; } , _0x5b6241['prototype']['getCameraByUniqueID'] = function(_0x271424) { for (var _0xf7b11c = 0x0; _0xf7b11c < this['cameras']['length']; _0xf7b11c++) if (this['cameras'][_0xf7b11c]['uniqueId'] === _0x271424) return this['cameras'][_0xf7b11c]; return null; } , _0x5b6241['prototype']['getCameraByName'] = function(_0x1276e3) { for (var _0x458988 = 0x0; _0x458988 < this['cameras']['length']; _0x458988++) if (this['cameras'][_0x458988]['name'] === _0x1276e3) return this['cameras'][_0x458988]; return null; } , _0x5b6241['prototype']['getBoneByID'] = function(_0x53e09b) { for (var _0x570bd7 = 0x0; _0x570bd7 < this['skeletons']['length']; _0x570bd7++) for (var _0x15bebf = this['skeletons'][_0x570bd7], _0x5620b7 = 0x0; _0x5620b7 < _0x15bebf['bones']['length']; _0x5620b7++) if (_0x15bebf['bones'][_0x5620b7]['id'] === _0x53e09b) return _0x15bebf['bones'][_0x5620b7]; return null; } , _0x5b6241['prototype']['getBoneByName'] = function(_0x4aee6d) { for (var _0x3b237d = 0x0; _0x3b237d < this['skeletons']['length']; _0x3b237d++) for (var _0x49084e = this['skeletons'][_0x3b237d], _0x1217cb = 0x0; _0x1217cb < _0x49084e['bones']['length']; _0x1217cb++) if (_0x49084e['bones'][_0x1217cb]['name'] === _0x4aee6d) return _0x49084e['bones'][_0x1217cb]; return null; } , _0x5b6241['prototype']['getLightByName'] = function(_0x12d9b8) { for (var _0xa2280f = 0x0; _0xa2280f < this['lights']['length']; _0xa2280f++) if (this['lights'][_0xa2280f]['name'] === _0x12d9b8) return this['lights'][_0xa2280f]; return null; } , _0x5b6241['prototype']['getLightByID'] = function(_0x1e4e52) { for (var _0x1ac6f1 = 0x0; _0x1ac6f1 < this['lights']['length']; _0x1ac6f1++) if (this['lights'][_0x1ac6f1]['id'] === _0x1e4e52) return this['lights'][_0x1ac6f1]; return null; } , _0x5b6241['prototype']['getLightByUniqueID'] = function(_0x440f9d) { for (var _0x3811cf = 0x0; _0x3811cf < this['lights']['length']; _0x3811cf++) if (this['lights'][_0x3811cf]['uniqueId'] === _0x440f9d) return this['lights'][_0x3811cf]; return null; } , _0x5b6241['prototype']['getParticleSystemByID'] = function(_0x24a5d6) { for (var _0x2104cb = 0x0; _0x2104cb < this['particleSystems']['length']; _0x2104cb++) if (this['particleSystems'][_0x2104cb]['id'] === _0x24a5d6) return this['particleSystems'][_0x2104cb]; return null; } , _0x5b6241['prototype']['getGeometryByID'] = function(_0x109faa) { for (var _0x5d1253 = 0x0; _0x5d1253 < this['geometries']['length']; _0x5d1253++) if (this['geometries'][_0x5d1253]['id'] === _0x109faa) return this['geometries'][_0x5d1253]; return null; } , _0x5b6241['prototype']['_getGeometryByUniqueID'] = function(_0x40e46d) { if (this['geometriesByUniqueId']) { var _0x37d2ff = this['geometriesByUniqueId'][_0x40e46d]; if (void 0x0 !== _0x37d2ff) return this['geometries'][_0x37d2ff]; } else for (var _0x2144a1 = 0x0; _0x2144a1 < this['geometries']['length']; _0x2144a1++) if (this['geometries'][_0x2144a1]['uniqueId'] === _0x40e46d) return this['geometries'][_0x2144a1]; return null; } , _0x5b6241['prototype']['pushGeometry'] = function(_0x50be45, _0x23d0ae) { return !(!_0x23d0ae && this['_getGeometryByUniqueID'](_0x50be45['uniqueId'])) && (this['addGeometry'](_0x50be45), this['onNewGeometryAddedObservable']['notifyObservers'](_0x50be45), !0x0); } , _0x5b6241['prototype']['removeGeometry'] = function(_0x51947d) { var _0x55dafb; if (this['geometriesByUniqueId']) { if (void 0x0 === (_0x55dafb = this['geometriesByUniqueId'][_0x51947d['uniqueId']])) return !0x1; } else if ((_0x55dafb = this['geometries']['indexOf'](_0x51947d)) < 0x0) return !0x1; if (_0x55dafb !== this['geometries']['length'] - 0x1) { var _0x5e6a6e = this['geometries'][this['geometries']['length'] - 0x1]; this['geometries'][_0x55dafb] = _0x5e6a6e, this['geometriesByUniqueId'] && (this['geometriesByUniqueId'][_0x5e6a6e['uniqueId']] = _0x55dafb, this['geometriesByUniqueId'][_0x51947d['uniqueId']] = void 0x0); } return this['geometries']['pop'](), this['onGeometryRemovedObservable']['notifyObservers'](_0x51947d), !0x0; } , _0x5b6241['prototype']['getGeometries'] = function() { return this['geometries']; } , _0x5b6241['prototype']['getMeshByID'] = function(_0x561f2e) { for (var _0x468660 = 0x0; _0x468660 < this['meshes']['length']; _0x468660++) if (this['meshes'][_0x468660]['id'] === _0x561f2e) return this['meshes'][_0x468660]; return null; } , _0x5b6241['prototype']['getMeshesByID'] = function(_0x2bf026) { return this['meshes']['filter'](function(_0x1d307c) { return _0x1d307c['id'] === _0x2bf026; }); } , _0x5b6241['prototype']['getTransformNodeByID'] = function(_0x14793a) { for (var _0x505ca3 = 0x0; _0x505ca3 < this['transformNodes']['length']; _0x505ca3++) if (this['transformNodes'][_0x505ca3]['id'] === _0x14793a) return this['transformNodes'][_0x505ca3]; return null; } , _0x5b6241['prototype']['getTransformNodeByUniqueID'] = function(_0x2f9f0a) { for (var _0x4d7645 = 0x0; _0x4d7645 < this['transformNodes']['length']; _0x4d7645++) if (this['transformNodes'][_0x4d7645]['uniqueId'] === _0x2f9f0a) return this['transformNodes'][_0x4d7645]; return null; } , _0x5b6241['prototype']['getTransformNodesByID'] = function(_0x239c1b) { return this['transformNodes']['filter'](function(_0x48a14e) { return _0x48a14e['id'] === _0x239c1b; }); } , _0x5b6241['prototype']['getMeshByUniqueID'] = function(_0x5e7df5) { for (var _0x288a19 = 0x0; _0x288a19 < this['meshes']['length']; _0x288a19++) if (this['meshes'][_0x288a19]['uniqueId'] === _0x5e7df5) return this['meshes'][_0x288a19]; return null; } , _0x5b6241['prototype']['getLastMeshByID'] = function(_0x16ba6b) { for (var _0x2a3121 = this['meshes']['length'] - 0x1; _0x2a3121 >= 0x0; _0x2a3121--) if (this['meshes'][_0x2a3121]['id'] === _0x16ba6b) return this['meshes'][_0x2a3121]; return null; } , _0x5b6241['prototype']['getLastEntryByID'] = function(_0x466815) { var _0x95c019; for (_0x95c019 = this['meshes']['length'] - 0x1; _0x95c019 >= 0x0; _0x95c019--) if (this['meshes'][_0x95c019]['id'] === _0x466815) return this['meshes'][_0x95c019]; for (_0x95c019 = this['transformNodes']['length'] - 0x1; _0x95c019 >= 0x0; _0x95c019--) if (this['transformNodes'][_0x95c019]['id'] === _0x466815) return this['transformNodes'][_0x95c019]; for (_0x95c019 = this['cameras']['length'] - 0x1; _0x95c019 >= 0x0; _0x95c019--) if (this['cameras'][_0x95c019]['id'] === _0x466815) return this['cameras'][_0x95c019]; for (_0x95c019 = this['lights']['length'] - 0x1; _0x95c019 >= 0x0; _0x95c019--) if (this['lights'][_0x95c019]['id'] === _0x466815) return this['lights'][_0x95c019]; return null; } , _0x5b6241['prototype']['getNodeByID'] = function(_0x20a1a1) { var _0xc412a6 = this['getMeshByID'](_0x20a1a1); if (_0xc412a6) return _0xc412a6; var _0x571c9b = this['getTransformNodeByID'](_0x20a1a1); if (_0x571c9b) return _0x571c9b; var _0x27f9ed = this['getLightByID'](_0x20a1a1); if (_0x27f9ed) return _0x27f9ed; var _0x79ecb8 = this['getCameraByID'](_0x20a1a1); if (_0x79ecb8) return _0x79ecb8; var _0x36b0d5 = this['getBoneByID'](_0x20a1a1); return _0x36b0d5 || null; } , _0x5b6241['prototype']['getNodeByName'] = function(_0x13bafe) { var _0x16a4c9 = this['getMeshByName'](_0x13bafe); if (_0x16a4c9) return _0x16a4c9; var _0x279bbc = this['getTransformNodeByName'](_0x13bafe); if (_0x279bbc) return _0x279bbc; var _0x94bf19 = this['getLightByName'](_0x13bafe); if (_0x94bf19) return _0x94bf19; var _0x1fd3b8 = this['getCameraByName'](_0x13bafe); if (_0x1fd3b8) return _0x1fd3b8; var _0x108c41 = this['getBoneByName'](_0x13bafe); return _0x108c41 || null; } , _0x5b6241['prototype']['getMeshByName'] = function(_0x4307e9) { for (var _0x228d93 = 0x0; _0x228d93 < this['meshes']['length']; _0x228d93++) if (this['meshes'][_0x228d93]['name'] === _0x4307e9) return this['meshes'][_0x228d93]; return null; } , _0x5b6241['prototype']['getTransformNodeByName'] = function(_0x5ce4d6) { for (var _0xa0d049 = 0x0; _0xa0d049 < this['transformNodes']['length']; _0xa0d049++) if (this['transformNodes'][_0xa0d049]['name'] === _0x5ce4d6) return this['transformNodes'][_0xa0d049]; return null; } , _0x5b6241['prototype']['getLastSkeletonByID'] = function(_0x2d3b99) { for (var _0x49486e = this['skeletons']['length'] - 0x1; _0x49486e >= 0x0; _0x49486e--) if (this['skeletons'][_0x49486e]['id'] === _0x2d3b99) return this['skeletons'][_0x49486e]; return null; } , _0x5b6241['prototype']['getSkeletonByUniqueId'] = function(_0x3ad46d) { for (var _0x575aad = 0x0; _0x575aad < this['skeletons']['length']; _0x575aad++) if (this['skeletons'][_0x575aad]['uniqueId'] === _0x3ad46d) return this['skeletons'][_0x575aad]; return null; } , _0x5b6241['prototype']['getSkeletonById'] = function(_0x552861) { for (var _0x290d8b = 0x0; _0x290d8b < this['skeletons']['length']; _0x290d8b++) if (this['skeletons'][_0x290d8b]['id'] === _0x552861) return this['skeletons'][_0x290d8b]; return null; } , _0x5b6241['prototype']['getSkeletonByName'] = function(_0x15c4bc) { for (var _0xe95b = 0x0; _0xe95b < this['skeletons']['length']; _0xe95b++) if (this['skeletons'][_0xe95b]['name'] === _0x15c4bc) return this['skeletons'][_0xe95b]; return null; } , _0x5b6241['prototype']['getMorphTargetManagerById'] = function(_0x1e116d) { for (var _0x19883a = 0x0; _0x19883a < this['morphTargetManagers']['length']; _0x19883a++) if (this['morphTargetManagers'][_0x19883a]['uniqueId'] === _0x1e116d) return this['morphTargetManagers'][_0x19883a]; return null; } , _0x5b6241['prototype']['getMorphTargetById'] = function(_0x6dbbce) { for (var _0x2145f3 = 0x0; _0x2145f3 < this['morphTargetManagers']['length']; ++_0x2145f3) for (var _0x186326 = this['morphTargetManagers'][_0x2145f3], _0x16e3ae = 0x0; _0x16e3ae < _0x186326['numTargets']; ++_0x16e3ae) { var _0x1cec19 = _0x186326['getTarget'](_0x16e3ae); if (_0x1cec19['id'] === _0x6dbbce) return _0x1cec19; } return null; } , _0x5b6241['prototype']['isActiveMesh'] = function(_0x3e9e55) { return -0x1 !== this['_activeMeshes']['indexOf'](_0x3e9e55); } , Object['defineProperty'](_0x5b6241['prototype'], 'uid', { 'get': function() { return this['_uid'] || (this['_uid'] = _0x24e4b1['h']['RandomId']()), this['_uid']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['addExternalData'] = function(_0x3649c7, _0x2dea71) { return this['_externalData'] || (this['_externalData'] = new _0x528b6e['a']()), this['_externalData']['add'](_0x3649c7, _0x2dea71); } , _0x5b6241['prototype']['getExternalData'] = function(_0x4ea2e5) { return this['_externalData'] ? this['_externalData']['get'](_0x4ea2e5) : null; } , _0x5b6241['prototype']['getOrAddExternalDataWithFactory'] = function(_0x3cbb31, _0x2b0da7) { return this['_externalData'] || (this['_externalData'] = new _0x528b6e['a']()), this['_externalData']['getOrAddWithFactory'](_0x3cbb31, _0x2b0da7); } , _0x5b6241['prototype']['removeExternalData'] = function(_0xd36852) { return this['_externalData']['remove'](_0xd36852); } , _0x5b6241['prototype']['_evaluateSubMesh'] = function(_0x3a4b70, _0x565973, _0xa09c42) { if (_0xa09c42['isAnInstance'] || this['dispatchAllSubMeshesOfActiveMeshes'] || _0x565973['alwaysSelectAsActiveMesh'] || 0x1 === _0x565973['subMeshes']['length'] || _0x3a4b70['isInFrustum'](this['_frustumPlanes'])) { for (var _0x5e4798 = 0x0, _0x5f4e30 = this['_evaluateSubMeshStage']; _0x5e4798 < _0x5f4e30['length']; _0x5e4798++) { _0x5f4e30[_0x5e4798]['action'](_0x565973, _0x3a4b70); } var _0x5dd0a4 = _0x3a4b70['getMaterial'](); null != _0x5dd0a4 && (_0x5dd0a4['hasRenderTargetTextures'] && null != _0x5dd0a4['getRenderTargetTextures'] && -0x1 === this['_processedMaterials']['indexOf'](_0x5dd0a4) && (this['_processedMaterials']['push'](_0x5dd0a4), this['_renderTargets']['concatWithNoDuplicate'](_0x5dd0a4['getRenderTargetTextures']())), this['_activeIndices']['addCount'](_0x3a4b70['indexCount'], !0x1), this['_renderingManager']['dispatch'](_0x3a4b70, _0x565973, _0x5dd0a4)); } } , _0x5b6241['prototype']['freeProcessedMaterials'] = function() { this['_processedMaterials']['dispose'](); } , Object['defineProperty'](_0x5b6241['prototype'], 'blockfreeActiveMeshesAndRenderingGroups', { 'get': function() { return this['_preventFreeActiveMeshesAndRenderingGroups']; }, 'set': function(_0x4d688b) { this['_preventFreeActiveMeshesAndRenderingGroups'] !== _0x4d688b && (_0x4d688b && (this['freeActiveMeshes'](), this['freeRenderingGroups']()), this['_preventFreeActiveMeshesAndRenderingGroups'] = _0x4d688b); }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['freeActiveMeshes'] = function() { if (!this['blockfreeActiveMeshesAndRenderingGroups'] && (this['_activeMeshes']['dispose'](), this['activeCamera'] && this['activeCamera']['_activeMeshes'] && this['activeCamera']['_activeMeshes']['dispose'](), this['activeCameras'])) for (var _0x209b2e = 0x0; _0x209b2e < this['activeCameras']['length']; _0x209b2e++) { var _0x4d0984 = this['activeCameras'][_0x209b2e]; _0x4d0984 && _0x4d0984['_activeMeshes'] && _0x4d0984['_activeMeshes']['dispose'](); } } , _0x5b6241['prototype']['freeRenderingGroups'] = function() { if (!this['blockfreeActiveMeshesAndRenderingGroups'] && (this['_renderingManager'] && this['_renderingManager']['freeRenderingGroups'](), this['textures'])) for (var _0x332f05 = 0x0; _0x332f05 < this['textures']['length']; _0x332f05++) { var _0xb2c681 = this['textures'][_0x332f05]; _0xb2c681 && _0xb2c681['renderList'] && _0xb2c681['freeRenderingGroups'](); } } , _0x5b6241['prototype']['_isInIntermediateRendering'] = function() { return this['_intermediateRendering']; } , _0x5b6241['prototype']['freezeActiveMeshes'] = function() { if (!this['activeCamera']) return this; this['_frustumPlanes'] || this['setTransformMatrix'](this['activeCamera']['getViewMatrix'](), this['activeCamera']['getProjectionMatrix']()), this['_evaluateActiveMeshes'](), this['_activeMeshesFrozen'] = !0x0; for (var _0x3c2dcc = 0x0; _0x3c2dcc < this['_activeMeshes']['length']; _0x3c2dcc++) this['_activeMeshes']['data'][_0x3c2dcc]['_freeze'](); return this; } , _0x5b6241['prototype']['unfreezeActiveMeshes'] = function() { for (var _0x58f4e0 = 0x0; _0x58f4e0 < this['_activeMeshes']['length']; _0x58f4e0++) this['_activeMeshes']['data'][_0x58f4e0]['_unFreeze'](); return this['_activeMeshesFrozen'] = !0x1, this; } , _0x5b6241['prototype']['_evaluateActiveMeshes'] = function() { if (this['_activeMeshesFrozen'] && this['_activeMeshes']['length']) for (var _0xb5bd10 = this['_activeMeshes']['length'], _0x19f103 = 0x0; _0x19f103 < _0xb5bd10; _0x19f103++) { (_0x4a36ae = this['_activeMeshes']['data'][_0x19f103])['computeWorldMatrix'](); } else if (this['activeCamera']) { this['onBeforeActiveMeshesEvaluationObservable']['notifyObservers'](this), this['activeCamera']['_activeMeshes']['reset'](), this['_activeMeshes']['reset'](), this['_renderingManager']['reset'](), this['_processedMaterials']['reset'](), this['_activeParticleSystems']['reset'](), this['_activeSkeletons']['reset'](), this['_softwareSkinnedMeshes']['reset'](); for (var _0xcf63d6 = 0x0, _0x3e12a0 = this['_beforeEvaluateActiveMeshStage']; _0xcf63d6 < _0x3e12a0['length']; _0xcf63d6++) { _0x3e12a0[_0xcf63d6]['action'](); } var _0x599942 = this['getActiveMeshCandidates']() , _0x481d92 = _0x599942['length']; for (_0x19f103 = 0x0; _0x19f103 < _0x481d92; _0x19f103++) { var _0x4a36ae; if (!(_0x4a36ae = _0x599942['data'][_0x19f103])['isBlocked'] && (this['_totalVertices']['addCount'](_0x4a36ae['getTotalVertices'](), !0x1), _0x4a36ae['isReady']() && _0x4a36ae['isEnabled']() && 0x0 !== _0x4a36ae['scaling']['lengthSquared']())) { _0x4a36ae['computeWorldMatrix'](), _0x4a36ae['actionManager'] && _0x4a36ae['actionManager']['hasSpecificTriggers2'](_0x22ca5d['a']['ACTION_OnIntersectionEnterTrigger'], _0x22ca5d['a']['ACTION_OnIntersectionExitTrigger']) && this['_meshesForIntersections']['pushNoDuplicate'](_0x4a36ae); var _0x5ed010 = this['customLODSelector'] ? this['customLODSelector'](_0x4a36ae, this['activeCamera']) : _0x4a36ae['getLOD'](this['activeCamera']); null != _0x5ed010 && (_0x5ed010 !== _0x4a36ae && _0x5ed010['billboardMode'] !== _0x3c6764['a']['BILLBOARDMODE_NONE'] && _0x5ed010['computeWorldMatrix'](), _0x4a36ae['_preActivate'](), _0x4a36ae['isVisible'] && _0x4a36ae['visibility'] > 0x0 && 0x0 != (_0x4a36ae['layerMask'] & this['activeCamera']['layerMask']) && (_0x4a36ae['alwaysSelectAsActiveMesh'] || _0x4a36ae['isInFrustum'](this['_frustumPlanes'])) && (this['_activeMeshes']['push'](_0x4a36ae), this['activeCamera']['_activeMeshes']['push'](_0x4a36ae), _0x5ed010 !== _0x4a36ae && _0x5ed010['_activate'](this['_renderId'], !0x1), _0x4a36ae['_activate'](this['_renderId'], !0x1) && (_0x4a36ae['isAnInstance'] || (_0x5ed010['_internalAbstractMeshDataInfo']['_onlyForInstances'] = !0x1), _0x5ed010['_internalAbstractMeshDataInfo']['_isActive'] = !0x0, this['_activeMesh'](_0x4a36ae, _0x5ed010)), _0x4a36ae['_postActivate']())); } } if (this['onAfterActiveMeshesEvaluationObservable']['notifyObservers'](this), this['particlesEnabled']) { this['onBeforeParticlesRenderingObservable']['notifyObservers'](this); for (var _0x493c74 = 0x0; _0x493c74 < this['particleSystems']['length']; _0x493c74++) { var _0x358c12 = this['particleSystems'][_0x493c74]; if (_0x358c12['isStarted']() && _0x358c12['emitter']) { var _0x535c1f = _0x358c12['emitter']; _0x535c1f['position'] && !_0x535c1f['isEnabled']() || (this['_activeParticleSystems']['push'](_0x358c12), _0x358c12['animate'](), this['_renderingManager']['dispatchParticles'](_0x358c12)); } } this['onAfterParticlesRenderingObservable']['notifyObservers'](this); } } } , _0x5b6241['prototype']['_activeMesh'] = function(_0x33f5c6, _0x3b83ff) { this['_skeletonsEnabled'] && null !== _0x3b83ff['skeleton'] && void 0x0 !== _0x3b83ff['skeleton'] && (this['_activeSkeletons']['pushNoDuplicate'](_0x3b83ff['skeleton']) && _0x3b83ff['skeleton']['prepare'](), _0x3b83ff['computeBonesUsingShaders'] || this['_softwareSkinnedMeshes']['pushNoDuplicate'](_0x3b83ff)); for (var _0x31f1cf = 0x0, _0x559dcb = this['_activeMeshStage']; _0x31f1cf < _0x559dcb['length']; _0x31f1cf++) { _0x559dcb[_0x31f1cf]['action'](_0x33f5c6, _0x3b83ff); } if (null != _0x3b83ff && void 0x0 !== _0x3b83ff['subMeshes'] && null !== _0x3b83ff['subMeshes'] && _0x3b83ff['subMeshes']['length'] > 0x0) for (var _0x946313 = this['getActiveSubMeshCandidates'](_0x3b83ff), _0x4b5064 = _0x946313['length'], _0xf89337 = 0x0; _0xf89337 < _0x4b5064; _0xf89337++) { var _0x480f0e = _0x946313['data'][_0xf89337]; this['_evaluateSubMesh'](_0x480f0e, _0x3b83ff, _0x33f5c6); } } , _0x5b6241['prototype']['updateTransformMatrix'] = function(_0x3adee7) { this['activeCamera'] && this['setTransformMatrix'](this['activeCamera']['getViewMatrix'](), this['activeCamera']['getProjectionMatrix'](_0x3adee7)); } , _0x5b6241['prototype']['_bindFrameBuffer'] = function() { if (this['activeCamera'] && this['activeCamera']['_multiviewTexture']) this['activeCamera']['_multiviewTexture']['_bindFrameBuffer'](); else if (this['activeCamera'] && this['activeCamera']['outputRenderTarget']) { if (this['getEngine']()['getCaps']()['multiview'] && this['activeCamera']['outputRenderTarget'] && this['activeCamera']['outputRenderTarget']['getViewCount']() > 0x1) this['activeCamera']['outputRenderTarget']['_bindFrameBuffer'](); else { var _0x2693d9 = this['activeCamera']['outputRenderTarget']['getInternalTexture'](); _0x2693d9 ? this['getEngine']()['bindFramebuffer'](_0x2693d9) : _0x2bda6b['a']['Error']('Camera\x20contains\x20invalid\x20customDefaultRenderTarget'); } } else this['getEngine']()['restoreDefaultFramebuffer'](); } , _0x5b6241['prototype']['_renderForCamera'] = function(_0x47d034, _0x11860c) { if (!_0x47d034 || !_0x47d034['_skipRendering']) { var _0x4f6cb9 = this['_engine']; if (this['_activeCamera'] = _0x47d034, !this['activeCamera']) throw new Error('Active\x20camera\x20not\x20set'); _0x4f6cb9['setViewport'](this['activeCamera']['viewport']), this['resetCachedMaterial'](), this['_renderId']++, this['getEngine']()['getCaps']()['multiview'] && _0x47d034['outputRenderTarget'] && _0x47d034['outputRenderTarget']['getViewCount']() > 0x1 ? this['setTransformMatrix'](_0x47d034['_rigCameras'][0x0]['getViewMatrix'](), _0x47d034['_rigCameras'][0x0]['getProjectionMatrix'](), _0x47d034['_rigCameras'][0x1]['getViewMatrix'](), _0x47d034['_rigCameras'][0x1]['getProjectionMatrix']()) : this['updateTransformMatrix'](), this['onBeforeCameraRenderObservable']['notifyObservers'](this['activeCamera']), this['_evaluateActiveMeshes'](); for (var _0x5514c2 = 0x0; _0x5514c2 < this['_softwareSkinnedMeshes']['length']; _0x5514c2++) { var _0x85fcd7 = this['_softwareSkinnedMeshes']['data'][_0x5514c2]; _0x85fcd7['applySkeleton'](_0x85fcd7['skeleton']); } this['onBeforeRenderTargetsRenderObservable']['notifyObservers'](this), _0x47d034['customRenderTargets'] && _0x47d034['customRenderTargets']['length'] > 0x0 && this['_renderTargets']['concatWithNoDuplicate'](_0x47d034['customRenderTargets']), _0x11860c && _0x11860c['customRenderTargets'] && _0x11860c['customRenderTargets']['length'] > 0x0 && this['_renderTargets']['concatWithNoDuplicate'](_0x11860c['customRenderTargets']); for (var _0x93185b = 0x0, _0xa4ffbd = this['_gatherActiveCameraRenderTargetsStage']; _0x93185b < _0xa4ffbd['length']; _0x93185b++) { _0xa4ffbd[_0x93185b]['action'](this['_renderTargets']); } if (this['renderTargetsEnabled']) { this['_intermediateRendering'] = !0x0; var _0x2a7a23 = !0x1; if (this['_renderTargets']['length'] > 0x0) { _0x24e4b1['h']['StartPerformanceCounter']('Render\x20targets', this['_renderTargets']['length'] > 0x0); for (var _0x5deca0 = 0x0; _0x5deca0 < this['_renderTargets']['length']; _0x5deca0++) { var _0x21c35d = this['_renderTargets']['data'][_0x5deca0]; if (_0x21c35d['_shouldRender']()) { this['_renderId']++; var _0x2fc5b4 = _0x21c35d['activeCamera'] && _0x21c35d['activeCamera'] !== this['activeCamera']; _0x21c35d['render'](_0x2fc5b4, this['dumpNextRenderTargets']), _0x2a7a23 = !0x0; } } _0x24e4b1['h']['EndPerformanceCounter']('Render\x20targets', this['_renderTargets']['length'] > 0x0), this['_renderId']++; } for (var _0x4a88eb = 0x0, _0xd2975a = this['_cameraDrawRenderTargetStage']; _0x4a88eb < _0xd2975a['length']; _0x4a88eb++) { _0x2a7a23 = _0xd2975a[_0x4a88eb]['action'](this['activeCamera']) || _0x2a7a23; } this['_intermediateRendering'] = !0x1, _0x2a7a23 && this['_bindFrameBuffer'](); } this['onAfterRenderTargetsRenderObservable']['notifyObservers'](this), this['postProcessManager'] && !_0x47d034['_multiviewTexture'] && this['postProcessManager']['_prepareFrame'](); for (var _0x433409 = 0x0, _0x4ab3ce = this['_beforeCameraDrawStage']; _0x433409 < _0x4ab3ce['length']; _0x433409++) { _0x4ab3ce[_0x433409]['action'](this['activeCamera']); } this['onBeforeDrawPhaseObservable']['notifyObservers'](this), this['_renderingManager']['render'](null, null, !0x0, !0x0), this['onAfterDrawPhaseObservable']['notifyObservers'](this); for (var _0x395a2d = 0x0, _0x16de07 = this['_afterCameraDrawStage']; _0x395a2d < _0x16de07['length']; _0x395a2d++) { _0x16de07[_0x395a2d]['action'](this['activeCamera']); } this['postProcessManager'] && !_0x47d034['_multiviewTexture'] && this['postProcessManager']['_finalizeFrame'](_0x47d034['isIntermediate']), this['_renderTargets']['reset'](), this['onAfterCameraRenderObservable']['notifyObservers'](this['activeCamera']); } } , _0x5b6241['prototype']['_processSubCameras'] = function(_0x355d7b) { if (_0x355d7b['cameraRigMode'] === _0x5dfe75['a']['RIG_MODE_NONE'] || _0x355d7b['outputRenderTarget'] && _0x355d7b['outputRenderTarget']['getViewCount']() > 0x1 && this['getEngine']()['getCaps']()['multiview']) this['_renderForCamera'](_0x355d7b); else { if (_0x355d7b['_useMultiviewToSingleView']) this['_renderMultiviewToSingleView'](_0x355d7b); else for (var _0x5d7dba = 0x0; _0x5d7dba < _0x355d7b['_rigCameras']['length']; _0x5d7dba++) this['_renderForCamera'](_0x355d7b['_rigCameras'][_0x5d7dba], _0x355d7b); this['_activeCamera'] = _0x355d7b, this['setTransformMatrix'](this['_activeCamera']['getViewMatrix'](), this['_activeCamera']['getProjectionMatrix']()); } } , _0x5b6241['prototype']['_checkIntersections'] = function() { for (var _0x234614 = 0x0; _0x234614 < this['_meshesForIntersections']['length']; _0x234614++) { var _0x267488 = this['_meshesForIntersections']['data'][_0x234614]; if (_0x267488['actionManager']) for (var _0x19a1e6 = 0x0; _0x267488['actionManager'] && _0x19a1e6 < _0x267488['actionManager']['actions']['length']; _0x19a1e6++) { var _0x32b92d = _0x267488['actionManager']['actions'][_0x19a1e6]; if (_0x32b92d['trigger'] === _0x22ca5d['a']['ACTION_OnIntersectionEnterTrigger'] || _0x32b92d['trigger'] === _0x22ca5d['a']['ACTION_OnIntersectionExitTrigger']) { var _0x561945 = _0x32b92d['getTriggerParameter']() , _0x23d5ed = _0x561945 instanceof _0xe57370['a'] ? _0x561945 : _0x561945['mesh'] , _0xd15c57 = _0x23d5ed['intersectsMesh'](_0x267488, _0x561945['usePreciseIntersection']) , _0x1c108e = _0x267488['_intersectionsInProgress']['indexOf'](_0x23d5ed); _0xd15c57 && -0x1 === _0x1c108e ? _0x32b92d['trigger'] === _0x22ca5d['a']['ACTION_OnIntersectionEnterTrigger'] ? (_0x32b92d['_executeCurrent'](_0xa60415['a']['CreateNew'](_0x267488, void 0x0, _0x23d5ed)), _0x267488['_intersectionsInProgress']['push'](_0x23d5ed)) : _0x32b92d['trigger'] === _0x22ca5d['a']['ACTION_OnIntersectionExitTrigger'] && _0x267488['_intersectionsInProgress']['push'](_0x23d5ed) : !_0xd15c57 && _0x1c108e > -0x1 && (_0x32b92d['trigger'] === _0x22ca5d['a']['ACTION_OnIntersectionExitTrigger'] && _0x32b92d['_executeCurrent'](_0xa60415['a']['CreateNew'](_0x267488, void 0x0, _0x23d5ed)), _0x267488['actionManager']['hasSpecificTrigger'](_0x22ca5d['a']['ACTION_OnIntersectionExitTrigger'], function(_0x2d9241) { var _0xf6411c = _0x2d9241 instanceof _0xe57370['a'] ? _0x2d9241 : _0x2d9241['mesh']; return _0x23d5ed === _0xf6411c; }) && _0x32b92d['trigger'] !== _0x22ca5d['a']['ACTION_OnIntersectionExitTrigger'] || _0x267488['_intersectionsInProgress']['splice'](_0x1c108e, 0x1)); } } } } , _0x5b6241['prototype']['_advancePhysicsEngineStep'] = function(_0x28a255) {} , _0x5b6241['prototype']['_animate'] = function() {} , _0x5b6241['prototype']['animate'] = function() { if (this['_engine']['isDeterministicLockStep']()) { var _0x1c7e0c = Math['max'](_0x5b6241['MinDeltaTime'], Math['min'](this['_engine']['getDeltaTime'](), _0x5b6241['MaxDeltaTime'])) + this['_timeAccumulator'] , _0x34e6b3 = this['getDeterministicFrameTime']() , _0x314152 = 0x0 , _0x2be858 = this['_engine']['getLockstepMaxSteps']() , _0xb55643 = Math['floor'](_0x1c7e0c / 0x3c); _0xb55643 = Math['min'](_0xb55643, _0x2be858); do { this['onBeforeStepObservable']['notifyObservers'](this), this['_animationRatio'] = 0.06 * _0x34e6b3, this['_animate'](), this['onAfterAnimationsObservable']['notifyObservers'](this), this['_advancePhysicsEngineStep'](_0x34e6b3), this['onAfterStepObservable']['notifyObservers'](this), this['_currentStepId']++, _0x314152++, _0x1c7e0c -= _0x34e6b3; } while (_0x1c7e0c > 0x0 && _0x314152 < _0xb55643); this['_timeAccumulator'] = _0x1c7e0c < 0x0 ? 0x0 : _0x1c7e0c; } else { _0x1c7e0c = this['useConstantAnimationDeltaTime'] ? 0x10 : Math['max'](_0x5b6241['MinDeltaTime'], Math['min'](this['_engine']['getDeltaTime'](), _0x5b6241['MaxDeltaTime'])); this['_animationRatio'] = 0.06 * _0x1c7e0c, this['_animate'](), this['onAfterAnimationsObservable']['notifyObservers'](this), this['_advancePhysicsEngineStep'](_0x1c7e0c); } } , _0x5b6241['prototype']['render'] = function(_0x494a36, _0x46381c) { if (void 0x0 === _0x494a36 && (_0x494a36 = !0x0), void 0x0 === _0x46381c && (_0x46381c = !0x1), !this['isDisposed']) { this['_frameId']++, this['_registerTransientComponents'](), this['_activeParticles']['fetchNewFrame'](), this['_totalVertices']['fetchNewFrame'](), this['_activeIndices']['fetchNewFrame'](), this['_activeBones']['fetchNewFrame'](), this['_meshesForIntersections']['reset'](), this['resetCachedMaterial'](), this['onBeforeAnimationsObservable']['notifyObservers'](this), this['actionManager'] && this['actionManager']['processTrigger'](_0x22ca5d['a']['ACTION_OnEveryFrameTrigger']), _0x46381c || this['animate'](); for (var _0x869b9e = 0x0, _0x291e0a = this['_beforeCameraUpdateStage']; _0x869b9e < _0x291e0a['length']; _0x869b9e++) { _0x291e0a[_0x869b9e]['action'](); } if (_0x494a36) if (this['activeCameras']['length'] > 0x0) for (var _0x3abf86 = 0x0; _0x3abf86 < this['activeCameras']['length']; _0x3abf86++) { var _0x48c037 = this['activeCameras'][_0x3abf86]; if (_0x48c037['update'](), _0x48c037['cameraRigMode'] !== _0x5dfe75['a']['RIG_MODE_NONE']) for (var _0x135c7a = 0x0; _0x135c7a < _0x48c037['_rigCameras']['length']; _0x135c7a++) _0x48c037['_rigCameras'][_0x135c7a]['update'](); } else if (this['activeCamera'] && (this['activeCamera']['update'](), this['activeCamera']['cameraRigMode'] !== _0x5dfe75['a']['RIG_MODE_NONE'])) for (_0x135c7a = 0x0; _0x135c7a < this['activeCamera']['_rigCameras']['length']; _0x135c7a++) this['activeCamera']['_rigCameras'][_0x135c7a]['update'](); this['onBeforeRenderObservable']['notifyObservers'](this), this['onBeforeRenderTargetsRenderObservable']['notifyObservers'](this); var _0x29f9db = this['getEngine']() , _0x2f8049 = this['activeCamera']; if (this['renderTargetsEnabled']) { _0x24e4b1['h']['StartPerformanceCounter']('Custom\x20render\x20targets', this['customRenderTargets']['length'] > 0x0), this['_intermediateRendering'] = !0x0; for (var _0x13f9f2 = 0x0; _0x13f9f2 < this['customRenderTargets']['length']; _0x13f9f2++) { var _0x19c718 = this['customRenderTargets'][_0x13f9f2]; if (_0x19c718['_shouldRender']()) { if (this['_renderId']++, this['activeCamera'] = _0x19c718['activeCamera'] || this['activeCamera'], !this['activeCamera']) throw new Error('Active\x20camera\x20not\x20set'); _0x29f9db['setViewport'](this['activeCamera']['viewport']), this['updateTransformMatrix'](), _0x19c718['render'](_0x2f8049 !== this['activeCamera'], this['dumpNextRenderTargets']); } } _0x24e4b1['h']['EndPerformanceCounter']('Custom\x20render\x20targets', this['customRenderTargets']['length'] > 0x0), this['_intermediateRendering'] = !0x1, this['_renderId']++; } this['activeCamera'] = _0x2f8049, this['_bindFrameBuffer'](), this['onAfterRenderTargetsRenderObservable']['notifyObservers'](this); for (var _0x27895c = 0x0, _0x782c55 = this['_beforeClearStage']; _0x27895c < _0x782c55['length']; _0x27895c++) { _0x782c55[_0x27895c]['action'](); } (this['autoClearDepthAndStencil'] || this['autoClear']) && this['_engine']['clear'](this['clearColor'], this['autoClear'] || this['forceWireframe'] || this['forcePointsCloud'], this['autoClearDepthAndStencil'], this['autoClearDepthAndStencil']); for (var _0x10365c = 0x0, _0x20e7ea = this['_gatherRenderTargetsStage']; _0x10365c < _0x20e7ea['length']; _0x10365c++) { _0x20e7ea[_0x10365c]['action'](this['_renderTargets']); } if (this['activeCameras']['length'] > 0x0) for (_0x3abf86 = 0x0; _0x3abf86 < this['activeCameras']['length']; _0x3abf86++) _0x3abf86 > 0x0 && this['_engine']['clear'](null, !0x1, !0x0, !0x0), this['_processSubCameras'](this['activeCameras'][_0x3abf86]); else { if (!this['activeCamera']) throw new Error('No\x20camera\x20defined'); this['_processSubCameras'](this['activeCamera']); } this['_checkIntersections'](); for (var _0x25ab3f = 0x0, _0x148421 = this['_afterRenderStage']; _0x25ab3f < _0x148421['length']; _0x25ab3f++) { _0x148421[_0x25ab3f]['action'](); } if (this['afterRender'] && this['afterRender'](), this['onAfterRenderObservable']['notifyObservers'](this), this['_toBeDisposed']['length']) { for (_0x135c7a = 0x0; _0x135c7a < this['_toBeDisposed']['length']; _0x135c7a++) { var _0x3dbcad = this['_toBeDisposed'][_0x135c7a]; _0x3dbcad && _0x3dbcad['dispose'](); } this['_toBeDisposed'] = []; } this['dumpNextRenderTargets'] && (this['dumpNextRenderTargets'] = !0x1), this['_activeBones']['addCount'](0x0, !0x0), this['_activeIndices']['addCount'](0x0, !0x0), this['_activeParticles']['addCount'](0x0, !0x0); } } , _0x5b6241['prototype']['freezeMaterials'] = function() { for (var _0x4cb14b = 0x0; _0x4cb14b < this['materials']['length']; _0x4cb14b++) this['materials'][_0x4cb14b]['freeze'](); } , _0x5b6241['prototype']['unfreezeMaterials'] = function() { for (var _0xa500ee = 0x0; _0xa500ee < this['materials']['length']; _0xa500ee++) this['materials'][_0xa500ee]['unfreeze'](); } , _0x5b6241['prototype']['dispose'] = function() { this['beforeRender'] = null, this['afterRender'] = null, this['skeletons'] = [], this['morphTargetManagers'] = [], this['_transientComponents'] = [], this['_isReadyForMeshStage']['clear'](), this['_beforeEvaluateActiveMeshStage']['clear'](), this['_evaluateSubMeshStage']['clear'](), this['_activeMeshStage']['clear'](), this['_cameraDrawRenderTargetStage']['clear'](), this['_beforeCameraDrawStage']['clear'](), this['_beforeRenderTargetDrawStage']['clear'](), this['_beforeRenderingGroupDrawStage']['clear'](), this['_beforeRenderingMeshStage']['clear'](), this['_afterRenderingMeshStage']['clear'](), this['_afterRenderingGroupDrawStage']['clear'](), this['_afterCameraDrawStage']['clear'](), this['_afterRenderTargetDrawStage']['clear'](), this['_afterRenderStage']['clear'](), this['_beforeCameraUpdateStage']['clear'](), this['_beforeClearStage']['clear'](), this['_gatherRenderTargetsStage']['clear'](), this['_gatherActiveCameraRenderTargetsStage']['clear'](), this['_pointerMoveStage']['clear'](), this['_pointerDownStage']['clear'](), this['_pointerUpStage']['clear'](); for (var _0x90bec9 = 0x0, _0x5e577b = this['_components']; _0x90bec9 < _0x5e577b['length']; _0x90bec9++) { _0x5e577b[_0x90bec9]['dispose'](); } this['importedMeshesFiles'] = new Array(), this['stopAllAnimations'] && this['stopAllAnimations'](), this['resetCachedMaterial'](), this['activeCamera'] && (this['activeCamera']['_activeMeshes']['dispose'](), this['activeCamera'] = null), this['_activeMeshes']['dispose'](), this['_renderingManager']['dispose'](), this['_processedMaterials']['dispose'](), this['_activeParticleSystems']['dispose'](), this['_activeSkeletons']['dispose'](), this['_softwareSkinnedMeshes']['dispose'](), this['_renderTargets']['dispose'](), this['_registeredForLateAnimationBindings']['dispose'](), this['_meshesForIntersections']['dispose'](), this['_toBeDisposed'] = []; for (var _0x391a87 = 0x0, _0x317a8a = this['_activeRequests']; _0x391a87 < _0x317a8a['length']; _0x391a87++) { _0x317a8a[_0x391a87]['abort'](); } this['onDisposeObservable']['notifyObservers'](this), this['onDisposeObservable']['clear'](), this['onBeforeRenderObservable']['clear'](), this['onAfterRenderObservable']['clear'](), this['onBeforeRenderTargetsRenderObservable']['clear'](), this['onAfterRenderTargetsRenderObservable']['clear'](), this['onAfterStepObservable']['clear'](), this['onBeforeStepObservable']['clear'](), this['onBeforeActiveMeshesEvaluationObservable']['clear'](), this['onAfterActiveMeshesEvaluationObservable']['clear'](), this['onBeforeParticlesRenderingObservable']['clear'](), this['onAfterParticlesRenderingObservable']['clear'](), this['onBeforeDrawPhaseObservable']['clear'](), this['onAfterDrawPhaseObservable']['clear'](), this['onBeforeAnimationsObservable']['clear'](), this['onAfterAnimationsObservable']['clear'](), this['onDataLoadedObservable']['clear'](), this['onBeforeRenderingGroupObservable']['clear'](), this['onAfterRenderingGroupObservable']['clear'](), this['onMeshImportedObservable']['clear'](), this['onBeforeCameraRenderObservable']['clear'](), this['onAfterCameraRenderObservable']['clear'](), this['onReadyObservable']['clear'](), this['onNewCameraAddedObservable']['clear'](), this['onCameraRemovedObservable']['clear'](), this['onNewLightAddedObservable']['clear'](), this['onLightRemovedObservable']['clear'](), this['onNewGeometryAddedObservable']['clear'](), this['onGeometryRemovedObservable']['clear'](), this['onNewTransformNodeAddedObservable']['clear'](), this['onTransformNodeRemovedObservable']['clear'](), this['onNewMeshAddedObservable']['clear'](), this['onMeshRemovedObservable']['clear'](), this['onNewSkeletonAddedObservable']['clear'](), this['onSkeletonRemovedObservable']['clear'](), this['onNewMaterialAddedObservable']['clear'](), this['onMaterialRemovedObservable']['clear'](), this['onNewTextureAddedObservable']['clear'](), this['onTextureRemovedObservable']['clear'](), this['onPrePointerObservable']['clear'](), this['onPointerObservable']['clear'](), this['onPreKeyboardObservable']['clear'](), this['onKeyboardObservable']['clear'](), this['onActiveCameraChanged']['clear'](), this['detachControl'](); var _0x2c2f01, _0x28d9f4 = this['_engine']['getRenderingCanvas'](); if (_0x28d9f4) for (_0x2c2f01 = 0x0; _0x2c2f01 < this['cameras']['length']; _0x2c2f01++) this['cameras'][_0x2c2f01]['detachControl'](_0x28d9f4); for (; this['animationGroups']['length']; ) this['animationGroups'][0x0]['dispose'](); for (; this['lights']['length']; ) this['lights'][0x0]['dispose'](); for (; this['meshes']['length']; ) this['meshes'][0x0]['dispose'](!0x0); for (; this['transformNodes']['length']; ) this['transformNodes'][0x0]['dispose'](!0x0); for (; this['cameras']['length']; ) this['cameras'][0x0]['dispose'](); for (this['_defaultMaterial'] && this['_defaultMaterial']['dispose'](); this['multiMaterials']['length']; ) this['multiMaterials'][0x0]['dispose'](); for (; this['materials']['length']; ) this['materials'][0x0]['dispose'](); for (; this['particleSystems']['length']; ) this['particleSystems'][0x0]['dispose'](); for (; this['postProcesses']['length']; ) this['postProcesses'][0x0]['dispose'](); for (; this['textures']['length']; ) this['textures'][0x0]['dispose'](); this['_sceneUbo']['dispose'](), this['_multiviewSceneUbo'] && this['_multiviewSceneUbo']['dispose'](), this['postProcessManager']['dispose'](), (_0x2c2f01 = this['_engine']['scenes']['indexOf'](this)) > -0x1 && this['_engine']['scenes']['splice'](_0x2c2f01, 0x1), this['_engine']['wipeCaches'](!0x0), this['_isDisposed'] = !0x0; } , Object['defineProperty'](_0x5b6241['prototype'], 'isDisposed', { 'get': function() { return this['_isDisposed']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['clearCachedVertexData'] = function() { for (var _0x171d5f = 0x0; _0x171d5f < this['meshes']['length']; _0x171d5f++) { var _0x161b7b = this['meshes'][_0x171d5f]['geometry']; if (_0x161b7b) for (var _0x297f2d in (_0x161b7b['_indices'] = [], _0x161b7b['_vertexBuffers'])) _0x161b7b['_vertexBuffers']['hasOwnProperty'](_0x297f2d) && (_0x161b7b['_vertexBuffers'][_0x297f2d]['_buffer']['_data'] = null); } } , _0x5b6241['prototype']['cleanCachedTextureBuffer'] = function() { for (var _0x24837f = 0x0, _0x15ca37 = this['textures']; _0x24837f < _0x15ca37['length']; _0x24837f++) { var _0x380cb5 = _0x15ca37[_0x24837f]; _0x380cb5['_buffer'] && (_0x380cb5['_buffer'] = null); } } , _0x5b6241['prototype']['getWorldExtends'] = function(_0x9014d0) { var _0x40f35d = new _0x4b6821['x'](Number['MAX_VALUE'],Number['MAX_VALUE'],Number['MAX_VALUE']) , _0x51ae40 = new _0x4b6821['x'](-Number['MAX_VALUE'],-Number['MAX_VALUE'],-Number['MAX_VALUE']); return _0x9014d0 = _0x9014d0 || function() { return !0x0; } , this['meshes']['filter'](_0x9014d0)['forEach'](function(_0x5176da) { if (_0x5176da['computeWorldMatrix'](!0x0), _0x5176da['subMeshes'] && 0x0 !== _0x5176da['subMeshes']['length'] && !_0x5176da['infiniteDistance']) { var _0x1f5bfd = _0x5176da['getBoundingInfo']() , _0x1fefce = _0x1f5bfd['boundingBox']['minimumWorld'] , _0x39c488 = _0x1f5bfd['boundingBox']['maximumWorld']; _0x24e4b1['h']['CheckExtends'](_0x1fefce, _0x40f35d, _0x51ae40), _0x24e4b1['h']['CheckExtends'](_0x39c488, _0x40f35d, _0x51ae40); } }), { 'min': _0x40f35d, 'max': _0x51ae40 }; } , _0x5b6241['prototype']['createPickingRay'] = function(_0x25b8ad, _0x321b55, _0x24b28f, _0x3b0d8f, _0x59d48c) { throw void 0x0 === _0x59d48c && (_0x59d48c = !0x1), _0x28a876['a']['WarnImport']('Ray'); } , _0x5b6241['prototype']['createPickingRayToRef'] = function(_0x3fe940, _0x33edc8, _0x2009ff, _0xe9c66f, _0x1d6104, _0x16ff80) { throw void 0x0 === _0x16ff80 && (_0x16ff80 = !0x1), _0x28a876['a']['WarnImport']('Ray'); } , _0x5b6241['prototype']['createPickingRayInCameraSpace'] = function(_0x57b290, _0x528ac3, _0x5c6cbc) { throw _0x28a876['a']['WarnImport']('Ray'); } , _0x5b6241['prototype']['createPickingRayInCameraSpaceToRef'] = function(_0x5c21b3, _0x398ee8, _0xad466d, _0x14f4b9) { throw _0x28a876['a']['WarnImport']('Ray'); } , _0x5b6241['prototype']['pick'] = function(_0x1f6b13, _0x2ca340, _0x4e2e07, _0x2764d6, _0xd0910d, _0x361752) { var _0x2bd335 = new _0x3f9890['a'](); return _0x2bd335['_pickingUnavailable'] = !0x0, _0x2bd335; } , _0x5b6241['prototype']['pickWithRay'] = function(_0x2620a9, _0x18b180, _0x389daa, _0xacb2d7) { throw _0x28a876['a']['WarnImport']('Ray'); } , _0x5b6241['prototype']['multiPick'] = function(_0x46c0f1, _0x525330, _0x5321d3, _0x4092e4, _0x46fd81) { throw _0x28a876['a']['WarnImport']('Ray'); } , _0x5b6241['prototype']['multiPickWithRay'] = function(_0x390a4d, _0x15dd70, _0x1562a7) { throw _0x28a876['a']['WarnImport']('Ray'); } , _0x5b6241['prototype']['setPointerOverMesh'] = function(_0x325925) { this['_inputManager']['setPointerOverMesh'](_0x325925); } , _0x5b6241['prototype']['getPointerOverMesh'] = function() { return this['_inputManager']['getPointerOverMesh'](); } , _0x5b6241['prototype']['_rebuildGeometries'] = function() { for (var _0x2e2672 = 0x0, _0x3ad7ef = this['geometries']; _0x2e2672 < _0x3ad7ef['length']; _0x2e2672++) { _0x3ad7ef[_0x2e2672]['_rebuild'](); } for (var _0x55f434 = 0x0, _0x231a4d = this['meshes']; _0x55f434 < _0x231a4d['length']; _0x55f434++) { _0x231a4d[_0x55f434]['_rebuild'](); } this['postProcessManager'] && this['postProcessManager']['_rebuild'](); for (var _0x2e5b97 = 0x0, _0xcbbac3 = this['_components']; _0x2e5b97 < _0xcbbac3['length']; _0x2e5b97++) { _0xcbbac3[_0x2e5b97]['rebuild'](); } for (var _0x1645c8 = 0x0, _0x2199c7 = this['particleSystems']; _0x1645c8 < _0x2199c7['length']; _0x1645c8++) { _0x2199c7[_0x1645c8]['rebuild'](); } } , _0x5b6241['prototype']['_rebuildTextures'] = function() { for (var _0xa7b6c3 = 0x0, _0x236383 = this['textures']; _0xa7b6c3 < _0x236383['length']; _0xa7b6c3++) { _0x236383[_0xa7b6c3]['_rebuild'](); } this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_TextureDirtyFlag']); } , _0x5b6241['prototype']['_getByTags'] = function(_0xc5500f, _0x44b54e, _0x268cdf) { if (void 0x0 === _0x44b54e) return _0xc5500f; var _0x5ebcd8 = []; for (var _0x453477 in (_0x268cdf = _0x268cdf || function(_0x2385e6) {} , _0xc5500f)) { var _0xeebec7 = _0xc5500f[_0x453477]; _0x17764a['a'] && _0x17764a['a']['MatchesQuery'](_0xeebec7, _0x44b54e) && (_0x5ebcd8['push'](_0xeebec7), _0x268cdf(_0xeebec7)); } return _0x5ebcd8; } , _0x5b6241['prototype']['getMeshesByTags'] = function(_0x43be53, _0x21c491) { return this['_getByTags'](this['meshes'], _0x43be53, _0x21c491); } , _0x5b6241['prototype']['getCamerasByTags'] = function(_0x17043a, _0x2c0d5e) { return this['_getByTags'](this['cameras'], _0x17043a, _0x2c0d5e); } , _0x5b6241['prototype']['getLightsByTags'] = function(_0x20d0b9, _0x37ad6d) { return this['_getByTags'](this['lights'], _0x20d0b9, _0x37ad6d); } , _0x5b6241['prototype']['getMaterialByTags'] = function(_0x128efa, _0x25da6e) { return this['_getByTags'](this['materials'], _0x128efa, _0x25da6e)['concat'](this['_getByTags'](this['multiMaterials'], _0x128efa, _0x25da6e)); } , _0x5b6241['prototype']['setRenderingOrder'] = function(_0x3725a9, _0x4a4b1c, _0x1f8943, _0x1184bd) { void 0x0 === _0x4a4b1c && (_0x4a4b1c = null), void 0x0 === _0x1f8943 && (_0x1f8943 = null), void 0x0 === _0x1184bd && (_0x1184bd = null), this['_renderingManager']['setRenderingOrder'](_0x3725a9, _0x4a4b1c, _0x1f8943, _0x1184bd); } , _0x5b6241['prototype']['setRenderingAutoClearDepthStencil'] = function(_0x13bb27, _0x400def, _0x2750a3, _0x32ff03) { void 0x0 === _0x2750a3 && (_0x2750a3 = !0x0), void 0x0 === _0x32ff03 && (_0x32ff03 = !0x0), this['_renderingManager']['setRenderingAutoClearDepthStencil'](_0x13bb27, _0x400def, _0x2750a3, _0x32ff03); } , _0x5b6241['prototype']['getAutoClearDepthStencilSetup'] = function(_0x3ac85b) { return this['_renderingManager']['getAutoClearDepthStencilSetup'](_0x3ac85b); } , Object['defineProperty'](_0x5b6241['prototype'], 'blockMaterialDirtyMechanism', { 'get': function() { return this['_blockMaterialDirtyMechanism']; }, 'set': function(_0x40e9cf) { this['_blockMaterialDirtyMechanism'] !== _0x40e9cf && (this['_blockMaterialDirtyMechanism'] = _0x40e9cf, _0x40e9cf || this['markAllMaterialsAsDirty'](_0x22ca5d['a']['MATERIAL_AllDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5b6241['prototype']['markAllMaterialsAsDirty'] = function(_0x5e350f, _0x589083) { if (!this['_blockMaterialDirtyMechanism']) for (var _0x28b8c5 = 0x0, _0x2e639b = this['materials']; _0x28b8c5 < _0x2e639b['length']; _0x28b8c5++) { var _0x9876cb = _0x2e639b[_0x28b8c5]; _0x589083 && !_0x589083(_0x9876cb) || _0x9876cb['markAsDirty'](_0x5e350f); } } , _0x5b6241['prototype']['_loadFile'] = function(_0x3f9f6e, _0x326e65, _0x4efc9e, _0x481919, _0x54e756, _0x50ceb4) { var _0x50158e = this , _0x51597e = _0x24e4b1['h']['LoadFile'](_0x3f9f6e, _0x326e65, _0x4efc9e, _0x481919 ? this['offlineProvider'] : void 0x0, _0x54e756, _0x50ceb4); return this['_activeRequests']['push'](_0x51597e), _0x51597e['onCompleteObservable']['add'](function(_0x1d7527) { _0x50158e['_activeRequests']['splice'](_0x50158e['_activeRequests']['indexOf'](_0x1d7527), 0x1); }), _0x51597e; } , _0x5b6241['prototype']['_loadFileAsync'] = function(_0x5d86e7, _0x1fb267, _0xb412bc) { var _0x450e3e = this; return new Promise(function(_0x194ac1, _0xdb545a) { _0x450e3e['_loadFile'](_0x5d86e7, function(_0x384885) { _0x194ac1(_0x384885); }, void 0x0, _0x1fb267, _0xb412bc, function(_0x3700c9, _0x2a36c0) { _0xdb545a(_0x2a36c0); }); } ); } , _0x5b6241['_uniqueIdCounter'] = 0x0, _0x5b6241['FOGMODE_NONE'] = 0x0, _0x5b6241['FOGMODE_EXP'] = 0x1, _0x5b6241['FOGMODE_EXP2'] = 0x2, _0x5b6241['FOGMODE_LINEAR'] = 0x3, _0x5b6241['MinDeltaTime'] = 0x1, _0x5b6241['MaxDeltaTime'] = 0x3e8, _0x5b6241; }(_0x3f7016['a']); } , function(_0x4964bd, _0x517490, _0x43bfd5) { 'use strict'; _0x43bfd5['d'](_0x517490, 'a', function() { return _0x432f83; }), _0x43bfd5['d'](_0x517490, 'c', function() { return _0x1e04ea; }), _0x43bfd5['d'](_0x517490, 'd', function() { return _0x16202e; }), _0x43bfd5['d'](_0x517490, 'b', function() { return _0x51e07f; }); var _0x410673 = _0x43bfd5(0x1) , _0x2f016e = _0x43bfd5(0x0) , _0x432f83 = function() { function _0x32971b() {} return _0x32971b['POINTERDOWN'] = 0x1, _0x32971b['POINTERUP'] = 0x2, _0x32971b['POINTERMOVE'] = 0x4, _0x32971b['POINTERWHEEL'] = 0x8, _0x32971b['POINTERPICK'] = 0x10, _0x32971b['POINTERTAP'] = 0x20, _0x32971b['POINTERDOUBLETAP'] = 0x40, _0x32971b; }() , _0x1e04ea = function() { return function(_0x2c3a56, _0x5488af) { this['type'] = _0x2c3a56, this['event'] = _0x5488af; } ; }() , _0x16202e = function(_0xad9eb9) { function _0x448db3(_0x224101, _0x2e8a42, _0x2e6a48, _0xc4f34d) { var _0x13097f = _0xad9eb9['call'](this, _0x224101, _0x2e8a42) || this; return _0x13097f['ray'] = null, _0x13097f['skipOnPointerObservable'] = !0x1, _0x13097f['localPosition'] = new _0x2f016e['w'](_0x2e6a48,_0xc4f34d), _0x13097f; } return _0x410673['d'](_0x448db3, _0xad9eb9), _0x448db3; }(_0x1e04ea) , _0x51e07f = function(_0x38e313) { function _0x81b7de(_0x77de74, _0x17d9ae, _0x4586f4) { var _0x5f5520 = _0x38e313['call'](this, _0x77de74, _0x17d9ae) || this; return _0x5f5520['pickInfo'] = _0x4586f4, _0x5f5520; } return _0x410673['d'](_0x81b7de, _0x38e313), _0x81b7de; }(_0x1e04ea); } , function(_0x5a5779, _0x4a5550, _0x524319) { 'use strict'; _0x524319['d'](_0x4a5550, 'a', function() { return _0x3a4981; }); var _0x32c1ee = _0x524319(0xa) , _0x469f1d = _0x524319(0x3) , _0x3a4981 = function() { function _0x5f5d35() {} return Object['defineProperty'](_0x5f5d35, 'DiffuseTextureEnabled', { 'get': function() { return this['_DiffuseTextureEnabled']; }, 'set': function(_0x2facb9) { this['_DiffuseTextureEnabled'] !== _0x2facb9 && (this['_DiffuseTextureEnabled'] = _0x2facb9, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'AmbientTextureEnabled', { 'get': function() { return this['_AmbientTextureEnabled']; }, 'set': function(_0x2c066d) { this['_AmbientTextureEnabled'] !== _0x2c066d && (this['_AmbientTextureEnabled'] = _0x2c066d, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'OpacityTextureEnabled', { 'get': function() { return this['_OpacityTextureEnabled']; }, 'set': function(_0x257498) { this['_OpacityTextureEnabled'] !== _0x257498 && (this['_OpacityTextureEnabled'] = _0x257498, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'ReflectionTextureEnabled', { 'get': function() { return this['_ReflectionTextureEnabled']; }, 'set': function(_0x244a3c) { this['_ReflectionTextureEnabled'] !== _0x244a3c && (this['_ReflectionTextureEnabled'] = _0x244a3c, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'EmissiveTextureEnabled', { 'get': function() { return this['_EmissiveTextureEnabled']; }, 'set': function(_0x272223) { this['_EmissiveTextureEnabled'] !== _0x272223 && (this['_EmissiveTextureEnabled'] = _0x272223, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'SpecularTextureEnabled', { 'get': function() { return this['_SpecularTextureEnabled']; }, 'set': function(_0x45d0a3) { this['_SpecularTextureEnabled'] !== _0x45d0a3 && (this['_SpecularTextureEnabled'] = _0x45d0a3, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'BumpTextureEnabled', { 'get': function() { return this['_BumpTextureEnabled']; }, 'set': function(_0x4fd2b3) { this['_BumpTextureEnabled'] !== _0x4fd2b3 && (this['_BumpTextureEnabled'] = _0x4fd2b3, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'LightmapTextureEnabled', { 'get': function() { return this['_LightmapTextureEnabled']; }, 'set': function(_0x36db23) { this['_LightmapTextureEnabled'] !== _0x36db23 && (this['_LightmapTextureEnabled'] = _0x36db23, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'RefractionTextureEnabled', { 'get': function() { return this['_RefractionTextureEnabled']; }, 'set': function(_0x1cebdd) { this['_RefractionTextureEnabled'] !== _0x1cebdd && (this['_RefractionTextureEnabled'] = _0x1cebdd, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'ColorGradingTextureEnabled', { 'get': function() { return this['_ColorGradingTextureEnabled']; }, 'set': function(_0x503509) { this['_ColorGradingTextureEnabled'] !== _0x503509 && (this['_ColorGradingTextureEnabled'] = _0x503509, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'FresnelEnabled', { 'get': function() { return this['_FresnelEnabled']; }, 'set': function(_0x5369a5) { this['_FresnelEnabled'] !== _0x5369a5 && (this['_FresnelEnabled'] = _0x5369a5, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_FresnelDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'ClearCoatTextureEnabled', { 'get': function() { return this['_ClearCoatTextureEnabled']; }, 'set': function(_0x221b0e) { this['_ClearCoatTextureEnabled'] !== _0x221b0e && (this['_ClearCoatTextureEnabled'] = _0x221b0e, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'ClearCoatBumpTextureEnabled', { 'get': function() { return this['_ClearCoatBumpTextureEnabled']; }, 'set': function(_0xd08eca) { this['_ClearCoatBumpTextureEnabled'] !== _0xd08eca && (this['_ClearCoatBumpTextureEnabled'] = _0xd08eca, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'ClearCoatTintTextureEnabled', { 'get': function() { return this['_ClearCoatTintTextureEnabled']; }, 'set': function(_0x566703) { this['_ClearCoatTintTextureEnabled'] !== _0x566703 && (this['_ClearCoatTintTextureEnabled'] = _0x566703, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'SheenTextureEnabled', { 'get': function() { return this['_SheenTextureEnabled']; }, 'set': function(_0x35e9de) { this['_SheenTextureEnabled'] !== _0x35e9de && (this['_SheenTextureEnabled'] = _0x35e9de, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'AnisotropicTextureEnabled', { 'get': function() { return this['_AnisotropicTextureEnabled']; }, 'set': function(_0x229020) { this['_AnisotropicTextureEnabled'] !== _0x229020 && (this['_AnisotropicTextureEnabled'] = _0x229020, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x5f5d35, 'ThicknessTextureEnabled', { 'get': function() { return this['_ThicknessTextureEnabled']; }, 'set': function(_0x264923) { this['_ThicknessTextureEnabled'] !== _0x264923 && (this['_ThicknessTextureEnabled'] = _0x264923, _0x32c1ee['b']['MarkAllMaterialsAsDirty'](_0x469f1d['a']['MATERIAL_TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x5f5d35['_DiffuseTextureEnabled'] = !0x0, _0x5f5d35['_AmbientTextureEnabled'] = !0x0, _0x5f5d35['_OpacityTextureEnabled'] = !0x0, _0x5f5d35['_ReflectionTextureEnabled'] = !0x0, _0x5f5d35['_EmissiveTextureEnabled'] = !0x0, _0x5f5d35['_SpecularTextureEnabled'] = !0x0, _0x5f5d35['_BumpTextureEnabled'] = !0x0, _0x5f5d35['_LightmapTextureEnabled'] = !0x0, _0x5f5d35['_RefractionTextureEnabled'] = !0x0, _0x5f5d35['_ColorGradingTextureEnabled'] = !0x0, _0x5f5d35['_FresnelEnabled'] = !0x0, _0x5f5d35['_ClearCoatTextureEnabled'] = !0x0, _0x5f5d35['_ClearCoatBumpTextureEnabled'] = !0x0, _0x5f5d35['_ClearCoatTintTextureEnabled'] = !0x0, _0x5f5d35['_SheenTextureEnabled'] = !0x0, _0x5f5d35['_AnisotropicTextureEnabled'] = !0x0, _0x5f5d35['_ThicknessTextureEnabled'] = !0x0, _0x5f5d35; }(); } , function(_0x28df22, _0x292bce, _0x11c900) { 'use strict'; _0x11c900['d'](_0x292bce, 'a', function() { return _0x12e2b8; }); var _0x12e2b8 = function() { function _0x35122d() {} return _0x35122d['WarnImport'] = function(_0x49c4e5) { return _0x49c4e5 + '\x20needs\x20to\x20be\x20imported\x20before\x20as\x20it\x20contains\x20a\x20side-effect\x20required\x20by\x20your\x20code.'; } , _0x35122d; }(); } , function(_0x22dabf, _0x3c2fc9, _0x41b00b) { 'use strict'; _0x41b00b['d'](_0x3c2fc9, 'a', function() { return _0x49b441; }); var _0x52a55b = _0x41b00b(0x1) , _0x4088ce = _0x41b00b(0x2) , _0x19225a = _0x41b00b(0x9) , _0x17eec9 = _0x41b00b(0x8) , _0x511d1a = _0x41b00b(0x0) , _0x4a997d = _0x41b00b(0x17) , _0x42b52a = _0x41b00b(0x31) , _0xb96102 = _0x41b00b(0x3f) , _0x4e03a8 = _0x41b00b(0x3) , _0x36b35c = _0x41b00b(0x6) , _0x49b441 = function() { function _0x1abc3d(_0x411786, _0x562cdf, _0x3c2c10) { this['metadata'] = null, this['reservedDataStore'] = null, this['checkReadyOnEveryCall'] = !0x1, this['checkReadyOnlyOnce'] = !0x1, this['state'] = '', this['_alpha'] = 0x1, this['_backFaceCulling'] = !0x0, this['onCompiled'] = null, this['onError'] = null, this['getRenderTargetTextures'] = null, this['doNotSerialize'] = !0x1, this['_storeEffectOnSubMeshes'] = !0x1, this['animations'] = null, this['onDisposeObservable'] = new _0x17eec9['c'](), this['_onDisposeObserver'] = null, this['_onUnBindObservable'] = null, this['_onBindObserver'] = null, this['_alphaMode'] = _0x4e03a8['a']['ALPHA_COMBINE'], this['_needDepthPrePass'] = !0x1, this['disableDepthWrite'] = !0x1, this['forceDepthWrite'] = !0x1, this['separateCullingPass'] = !0x1, this['_fogEnabled'] = !0x0, this['pointSize'] = 0x1, this['zOffset'] = 0x0, this['_effect'] = null, this['_wasPreviouslyReady'] = !0x1, this['_useUBO'] = !0x1, this['_fillMode'] = _0x1abc3d['TriangleFillMode'], this['_cachedDepthWriteState'] = !0x1, this['_indexInSceneMaterialArray'] = -0x1, this['meshMap'] = null, this['name'] = _0x411786, this['id'] = _0x411786 || _0x19225a['h']['RandomId'](), this['_scene'] = _0x562cdf || _0x4a997d['a']['LastCreatedScene'], this['uniqueId'] = this['_scene']['getUniqueId'](), this['_scene']['useRightHandedSystem'] ? this['sideOrientation'] = _0x1abc3d['ClockWiseSideOrientation'] : this['sideOrientation'] = _0x1abc3d['CounterClockWiseSideOrientation'], this['_uniformBuffer'] = new _0xb96102['a'](this['_scene']['getEngine']()), this['_useUBO'] = this['getScene']()['getEngine']()['supportsUniformBuffers'], _0x3c2c10 || this['_scene']['addMaterial'](this), this['_scene']['useMaterialMeshMap'] && (this['meshMap'] = {}); } return Object['defineProperty'](_0x1abc3d['prototype'], 'alpha', { 'get': function() { return this['_alpha']; }, 'set': function(_0x2e623e) { this['_alpha'] !== _0x2e623e && (this['_alpha'] = _0x2e623e, this['markAsDirty'](_0x1abc3d['MiscDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'backFaceCulling', { 'get': function() { return this['_backFaceCulling']; }, 'set': function(_0x5bcafd) { this['_backFaceCulling'] !== _0x5bcafd && (this['_backFaceCulling'] = _0x5bcafd, this['markAsDirty'](_0x1abc3d['TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'hasRenderTargetTextures', { 'get': function() { return !0x1; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'onDispose', { 'set': function(_0x3fedb3) { this['_onDisposeObserver'] && this['onDisposeObservable']['remove'](this['_onDisposeObserver']), this['_onDisposeObserver'] = this['onDisposeObservable']['add'](_0x3fedb3); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'onBindObservable', { 'get': function() { return this['_onBindObservable'] || (this['_onBindObservable'] = new _0x17eec9['c']()), this['_onBindObservable']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'onBind', { 'set': function(_0x4bf918) { this['_onBindObserver'] && this['onBindObservable']['remove'](this['_onBindObserver']), this['_onBindObserver'] = this['onBindObservable']['add'](_0x4bf918); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'onUnBindObservable', { 'get': function() { return this['_onUnBindObservable'] || (this['_onUnBindObservable'] = new _0x17eec9['c']()), this['_onUnBindObservable']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'alphaMode', { 'get': function() { return this['_alphaMode']; }, 'set': function(_0x56ff24) { this['_alphaMode'] !== _0x56ff24 && (this['_alphaMode'] = _0x56ff24, this['markAsDirty'](_0x1abc3d['TextureDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'needDepthPrePass', { 'get': function() { return this['_needDepthPrePass']; }, 'set': function(_0x332065) { this['_needDepthPrePass'] !== _0x332065 && (this['_needDepthPrePass'] = _0x332065, this['_needDepthPrePass'] && (this['checkReadyOnEveryCall'] = !0x0)); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'fogEnabled', { 'get': function() { return this['_fogEnabled']; }, 'set': function(_0x5623d1) { this['_fogEnabled'] !== _0x5623d1 && (this['_fogEnabled'] = _0x5623d1, this['markAsDirty'](_0x1abc3d['MiscDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'wireframe', { 'get': function() { switch (this['_fillMode']) { case _0x1abc3d['WireFrameFillMode']: case _0x1abc3d['LineListDrawMode']: case _0x1abc3d['LineLoopDrawMode']: case _0x1abc3d['LineStripDrawMode']: return !0x0; } return this['_scene']['forceWireframe']; }, 'set': function(_0x17ad08) { this['fillMode'] = _0x17ad08 ? _0x1abc3d['WireFrameFillMode'] : _0x1abc3d['TriangleFillMode']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'pointsCloud', { 'get': function() { switch (this['_fillMode']) { case _0x1abc3d['PointFillMode']: case _0x1abc3d['PointListDrawMode']: return !0x0; } return this['_scene']['forcePointsCloud']; }, 'set': function(_0x26e31b) { this['fillMode'] = _0x26e31b ? _0x1abc3d['PointFillMode'] : _0x1abc3d['TriangleFillMode']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x1abc3d['prototype'], 'fillMode', { 'get': function() { return this['_fillMode']; }, 'set': function(_0xe18aaf) { this['_fillMode'] !== _0xe18aaf && (this['_fillMode'] = _0xe18aaf, this['markAsDirty'](_0x1abc3d['MiscDirtyFlag'])); }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x1abc3d['prototype']['toString'] = function(_0x48a321) { return 'Name:\x20' + this['name']; } , _0x1abc3d['prototype']['getClassName'] = function() { return 'Material'; } , Object['defineProperty'](_0x1abc3d['prototype'], 'isFrozen', { 'get': function() { return this['checkReadyOnlyOnce']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x1abc3d['prototype']['freeze'] = function() { this['checkReadyOnlyOnce'] = !0x0; } , _0x1abc3d['prototype']['unfreeze'] = function() { this['checkReadyOnlyOnce'] = !0x1; } , _0x1abc3d['prototype']['isReady'] = function(_0x39095a, _0xca206c) { return !0x0; } , _0x1abc3d['prototype']['isReadyForSubMesh'] = function(_0x921814, _0x206075, _0x163673) { return !0x1; } , _0x1abc3d['prototype']['getEffect'] = function() { return this['_effect']; } , _0x1abc3d['prototype']['getScene'] = function() { return this['_scene']; } , _0x1abc3d['prototype']['needAlphaBlending'] = function() { return this['alpha'] < 0x1; } , _0x1abc3d['prototype']['needAlphaBlendingForMesh'] = function(_0x4eba73) { return this['needAlphaBlending']() || _0x4eba73['visibility'] < 0x1 || _0x4eba73['hasVertexAlpha']; } , _0x1abc3d['prototype']['needAlphaTesting'] = function() { return !0x1; } , _0x1abc3d['prototype']['getAlphaTestTexture'] = function() { return null; } , _0x1abc3d['prototype']['markDirty'] = function() { this['_wasPreviouslyReady'] = !0x1; } , _0x1abc3d['prototype']['_preBind'] = function(_0x376e4d, _0x430ba4) { void 0x0 === _0x430ba4 && (_0x430ba4 = null); var _0x8d09a0 = this['_scene']['getEngine']() , _0x482b0d = (null == _0x430ba4 ? this['sideOrientation'] : _0x430ba4) === _0x1abc3d['ClockWiseSideOrientation']; return _0x8d09a0['enableEffect'](_0x376e4d || this['_effect']), _0x8d09a0['setState'](this['backFaceCulling'], this['zOffset'], !0x1, _0x482b0d), _0x482b0d; } , _0x1abc3d['prototype']['bind'] = function(_0x2c0b05, _0x34a54c) {} , _0x1abc3d['prototype']['bindForSubMesh'] = function(_0x133028, _0xb1b362, _0xfb8924) {} , _0x1abc3d['prototype']['bindOnlyWorldMatrix'] = function(_0x1f4fb5) {} , _0x1abc3d['prototype']['bindSceneUniformBuffer'] = function(_0x3583be, _0xbef88f) { _0xbef88f['bindToEffect'](_0x3583be, 'Scene'); } , _0x1abc3d['prototype']['bindView'] = function(_0xa8f252) { this['_useUBO'] ? this['bindSceneUniformBuffer'](_0xa8f252, this['getScene']()['getSceneUniformBuffer']()) : _0xa8f252['setMatrix']('view', this['getScene']()['getViewMatrix']()); } , _0x1abc3d['prototype']['bindViewProjection'] = function(_0x4c0b07) { this['_useUBO'] ? this['bindSceneUniformBuffer'](_0x4c0b07, this['getScene']()['getSceneUniformBuffer']()) : _0x4c0b07['setMatrix']('viewProjection', this['getScene']()['getTransformMatrix']()); } , _0x1abc3d['prototype']['_shouldTurnAlphaTestOn'] = function(_0x345659) { return !this['needAlphaBlendingForMesh'](_0x345659) && this['needAlphaTesting'](); } , _0x1abc3d['prototype']['_afterBind'] = function(_0x1537b6) { if (this['_scene']['_cachedMaterial'] = this, this['_scene']['_cachedVisibility'] = _0x1537b6 ? _0x1537b6['visibility'] : 0x1, this['_onBindObservable'] && _0x1537b6 && this['_onBindObservable']['notifyObservers'](_0x1537b6), this['disableDepthWrite']) { var _0x3bee5e = this['_scene']['getEngine'](); this['_cachedDepthWriteState'] = _0x3bee5e['getDepthWrite'](), _0x3bee5e['setDepthWrite'](!0x1); } } , _0x1abc3d['prototype']['unbind'] = function() { (this['_onUnBindObservable'] && this['_onUnBindObservable']['notifyObservers'](this), this['disableDepthWrite']) && this['_scene']['getEngine']()['setDepthWrite'](this['_cachedDepthWriteState']); } , _0x1abc3d['prototype']['getActiveTextures'] = function() { return []; } , _0x1abc3d['prototype']['hasTexture'] = function(_0x534c6e) { return !0x1; } , _0x1abc3d['prototype']['clone'] = function(_0x22fc13) { return null; } , _0x1abc3d['prototype']['getBindedMeshes'] = function() { var _0x419242 = this; if (this['meshMap']) { var _0x844b9 = new Array(); for (var _0x3fa7e3 in this['meshMap']) { var _0x4ae587 = this['meshMap'][_0x3fa7e3]; _0x4ae587 && _0x844b9['push'](_0x4ae587); } return _0x844b9; } return this['_scene']['meshes']['filter'](function(_0x27d665) { return _0x27d665['material'] === _0x419242; }); } , _0x1abc3d['prototype']['forceCompilation'] = function(_0x285eae, _0x38ca33, _0x5184e5) { var _0x220755 = this , _0xcca04a = _0x52a55b['a']({ 'clipPlane': !0x1 }, _0x5184e5) , _0x10824c = new _0x42b52a['a']() , _0x270372 = this['getScene']() , _0x200ad3 = function() { if (_0x220755['_scene'] && _0x220755['_scene']['getEngine']()) { _0x10824c['_materialDefines'] && (_0x10824c['_materialDefines']['_renderId'] = -0x1); var _0x5c0528 = _0x270372['clipPlane']; _0xcca04a['clipPlane'] && (_0x270372['clipPlane'] = new _0x511d1a['n'](0x0,0x0,0x0,0x1)), _0x220755['_storeEffectOnSubMeshes'] ? _0x220755['isReadyForSubMesh'](_0x285eae, _0x10824c) ? _0x38ca33 && _0x38ca33(_0x220755) : setTimeout(_0x200ad3, 0x10) : _0x220755['isReady']() ? _0x38ca33 && _0x38ca33(_0x220755) : setTimeout(_0x200ad3, 0x10), _0xcca04a['clipPlane'] && (_0x270372['clipPlane'] = _0x5c0528); } }; _0x200ad3(); } , _0x1abc3d['prototype']['forceCompilationAsync'] = function(_0x44fbdd, _0x54ecfa) { var _0x7ce89 = this; return new Promise(function(_0x338ca7) { _0x7ce89['forceCompilation'](_0x44fbdd, function() { _0x338ca7(); }, _0x54ecfa); } ); } , _0x1abc3d['prototype']['markAsDirty'] = function(_0x426b52) { this['getScene']()['blockMaterialDirtyMechanism'] || (_0x1abc3d['_DirtyCallbackArray']['length'] = 0x0, _0x426b52 & _0x1abc3d['TextureDirtyFlag'] && _0x1abc3d['_DirtyCallbackArray']['push'](_0x1abc3d['_TextureDirtyCallBack']), _0x426b52 & _0x1abc3d['LightDirtyFlag'] && _0x1abc3d['_DirtyCallbackArray']['push'](_0x1abc3d['_LightsDirtyCallBack']), _0x426b52 & _0x1abc3d['FresnelDirtyFlag'] && _0x1abc3d['_DirtyCallbackArray']['push'](_0x1abc3d['_FresnelDirtyCallBack']), _0x426b52 & _0x1abc3d['AttributesDirtyFlag'] && _0x1abc3d['_DirtyCallbackArray']['push'](_0x1abc3d['_AttributeDirtyCallBack']), _0x426b52 & _0x1abc3d['MiscDirtyFlag'] && _0x1abc3d['_DirtyCallbackArray']['push'](_0x1abc3d['_MiscDirtyCallBack']), _0x1abc3d['_DirtyCallbackArray']['length'] && this['_markAllSubMeshesAsDirty'](_0x1abc3d['_RunDirtyCallBacks']), this['getScene']()['resetCachedMaterial']()); } , _0x1abc3d['prototype']['_markAllSubMeshesAsDirty'] = function(_0x47cc79) { if (!this['getScene']()['blockMaterialDirtyMechanism']) for (var _0x2034d1 = 0x0, _0xfa000d = this['getScene']()['meshes']; _0x2034d1 < _0xfa000d['length']; _0x2034d1++) { var _0x3a4bda = _0xfa000d[_0x2034d1]; if (_0x3a4bda['subMeshes']) for (var _0x2e5ca0 = 0x0, _0x380501 = _0x3a4bda['subMeshes']; _0x2e5ca0 < _0x380501['length']; _0x2e5ca0++) { var _0x3fc529 = _0x380501[_0x2e5ca0]; _0x3fc529['getMaterial']() === this && (_0x3fc529['_materialDefines'] && _0x47cc79(_0x3fc529['_materialDefines'])); } } } , _0x1abc3d['prototype']['_markAllSubMeshesAsImageProcessingDirty'] = function() { this['_markAllSubMeshesAsDirty'](_0x1abc3d['_ImageProcessingDirtyCallBack']); } , _0x1abc3d['prototype']['_markAllSubMeshesAsTexturesDirty'] = function() { this['_markAllSubMeshesAsDirty'](_0x1abc3d['_TextureDirtyCallBack']); } , _0x1abc3d['prototype']['_markAllSubMeshesAsFresnelDirty'] = function() { this['_markAllSubMeshesAsDirty'](_0x1abc3d['_FresnelDirtyCallBack']); } , _0x1abc3d['prototype']['_markAllSubMeshesAsFresnelAndMiscDirty'] = function() { this['_markAllSubMeshesAsDirty'](_0x1abc3d['_FresnelAndMiscDirtyCallBack']); } , _0x1abc3d['prototype']['_markAllSubMeshesAsLightsDirty'] = function() { this['_markAllSubMeshesAsDirty'](_0x1abc3d['_LightsDirtyCallBack']); } , _0x1abc3d['prototype']['_markAllSubMeshesAsAttributesDirty'] = function() { this['_markAllSubMeshesAsDirty'](_0x1abc3d['_AttributeDirtyCallBack']); } , _0x1abc3d['prototype']['_markAllSubMeshesAsMiscDirty'] = function() { this['_markAllSubMeshesAsDirty'](_0x1abc3d['_MiscDirtyCallBack']); } , _0x1abc3d['prototype']['_markAllSubMeshesAsTexturesAndMiscDirty'] = function() { this['_markAllSubMeshesAsDirty'](_0x1abc3d['_TextureAndMiscDirtyCallBack']); } , _0x1abc3d['prototype']['dispose'] = function(_0xdc52f0, _0x2edecc, _0x285776) { var _0x2c591a = this['getScene'](); if (_0x2c591a['stopAnimation'](this), _0x2c591a['freeProcessedMaterials'](), _0x2c591a['removeMaterial'](this), !0x0 !== _0x285776) if (this['meshMap']) for (var _0x3ecf92 in this['meshMap']) { (_0x4eb70c = this['meshMap'][_0x3ecf92]) && (_0x4eb70c['material'] = null, this['releaseVertexArrayObject'](_0x4eb70c, _0xdc52f0)); } else for (var _0x5c3805 = 0x0, _0x16dcfe = _0x2c591a['meshes']; _0x5c3805 < _0x16dcfe['length']; _0x5c3805++) { var _0x4eb70c; (_0x4eb70c = _0x16dcfe[_0x5c3805])['material'] !== this || _0x4eb70c['sourceMesh'] || (_0x4eb70c['material'] = null, this['releaseVertexArrayObject'](_0x4eb70c, _0xdc52f0)); } this['_uniformBuffer']['dispose'](), _0xdc52f0 && this['_effect'] && (this['_storeEffectOnSubMeshes'] || this['_effect']['dispose'](), this['_effect'] = null), this['onDisposeObservable']['notifyObservers'](this), this['onDisposeObservable']['clear'](), this['_onBindObservable'] && this['_onBindObservable']['clear'](), this['_onUnBindObservable'] && this['_onUnBindObservable']['clear'](); } , _0x1abc3d['prototype']['releaseVertexArrayObject'] = function(_0x9ae1de, _0x354a77) { if (_0x9ae1de['geometry']) { var _0x2bf1ce = _0x9ae1de['geometry']; if (this['_storeEffectOnSubMeshes']) for (var _0x132422 = 0x0, _0x21e431 = _0x9ae1de['subMeshes']; _0x132422 < _0x21e431['length']; _0x132422++) { var _0xd8d24e = _0x21e431[_0x132422]; _0x2bf1ce['_releaseVertexArrayObject'](_0xd8d24e['_materialEffect']), _0x354a77 && _0xd8d24e['_materialEffect'] && _0xd8d24e['_materialEffect']['dispose'](); } else _0x2bf1ce['_releaseVertexArrayObject'](this['_effect']); } } , _0x1abc3d['prototype']['serialize'] = function() { return _0x4088ce['a']['Serialize'](this); } , _0x1abc3d['Parse'] = function(_0x53d67b, _0x233b1f, _0x19f0e8) { if (_0x53d67b['customType']) { if ('BABYLON.PBRMaterial' === _0x53d67b['customType'] && _0x53d67b['overloadedAlbedo'] && (_0x53d67b['customType'] = 'BABYLON.LegacyPBRMaterial', !BABYLON['LegacyPBRMaterial'])) return _0x36b35c['a']['Error']('Your\x20scene\x20is\x20trying\x20to\x20load\x20a\x20legacy\x20version\x20of\x20the\x20PBRMaterial,\x20please,\x20include\x20it\x20from\x20the\x20materials\x20library.'), null; } else _0x53d67b['customType'] = 'BABYLON.StandardMaterial'; return _0x19225a['h']['Instantiate'](_0x53d67b['customType'])['Parse'](_0x53d67b, _0x233b1f, _0x19f0e8); } , _0x1abc3d['TriangleFillMode'] = _0x4e03a8['a']['MATERIAL_TriangleFillMode'], _0x1abc3d['WireFrameFillMode'] = _0x4e03a8['a']['MATERIAL_WireFrameFillMode'], _0x1abc3d['PointFillMode'] = _0x4e03a8['a']['MATERIAL_PointFillMode'], _0x1abc3d['PointListDrawMode'] = _0x4e03a8['a']['MATERIAL_PointListDrawMode'], _0x1abc3d['LineListDrawMode'] = _0x4e03a8['a']['MATERIAL_LineListDrawMode'], _0x1abc3d['LineLoopDrawMode'] = _0x4e03a8['a']['MATERIAL_LineLoopDrawMode'], _0x1abc3d['LineStripDrawMode'] = _0x4e03a8['a']['MATERIAL_LineStripDrawMode'], _0x1abc3d['TriangleStripDrawMode'] = _0x4e03a8['a']['MATERIAL_TriangleStripDrawMode'], _0x1abc3d['TriangleFanDrawMode'] = _0x4e03a8['a']['MATERIAL_TriangleFanDrawMode'], _0x1abc3d['ClockWiseSideOrientation'] = _0x4e03a8['a']['MATERIAL_ClockWiseSideOrientation'], _0x1abc3d['CounterClockWiseSideOrientation'] = _0x4e03a8['a']['MATERIAL_CounterClockWiseSideOrientation'], _0x1abc3d['TextureDirtyFlag'] = _0x4e03a8['a']['MATERIAL_TextureDirtyFlag'], _0x1abc3d['LightDirtyFlag'] = _0x4e03a8['a']['MATERIAL_LightDirtyFlag'], _0x1abc3d['FresnelDirtyFlag'] = _0x4e03a8['a']['MATERIAL_FresnelDirtyFlag'], _0x1abc3d['AttributesDirtyFlag'] = _0x4e03a8['a']['MATERIAL_AttributesDirtyFlag'], _0x1abc3d['MiscDirtyFlag'] = _0x4e03a8['a']['MATERIAL_MiscDirtyFlag'], _0x1abc3d['AllDirtyFlag'] = _0x4e03a8['a']['MATERIAL_AllDirtyFlag'], _0x1abc3d['_ImageProcessingDirtyCallBack'] = function(_0x120073) { return _0x120073['markAsImageProcessingDirty'](); } , _0x1abc3d['_TextureDirtyCallBack'] = function(_0x379d1f) { return _0x379d1f['markAsTexturesDirty'](); } , _0x1abc3d['_FresnelDirtyCallBack'] = function(_0x48e75b) { return _0x48e75b['markAsFresnelDirty'](); } , _0x1abc3d['_MiscDirtyCallBack'] = function(_0x524ba9) { return _0x524ba9['markAsMiscDirty'](); } , _0x1abc3d['_LightsDirtyCallBack'] = function(_0x708c77) { return _0x708c77['markAsLightDirty'](); } , _0x1abc3d['_AttributeDirtyCallBack'] = function(_0x32dbd0) { return _0x32dbd0['markAsAttributesDirty'](); } , _0x1abc3d['_FresnelAndMiscDirtyCallBack'] = function(_0x568771) { _0x1abc3d['_FresnelDirtyCallBack'](_0x568771), _0x1abc3d['_MiscDirtyCallBack'](_0x568771); } , _0x1abc3d['_TextureAndMiscDirtyCallBack'] = function(_0x10022e) { _0x1abc3d['_TextureDirtyCallBack'](_0x10022e), _0x1abc3d['_MiscDirtyCallBack'](_0x10022e); } , _0x1abc3d['_DirtyCallbackArray'] = [], _0x1abc3d['_RunDirtyCallBacks'] = function(_0x12bc9f) { for (var _0x58b237 = 0x0, _0x229056 = _0x1abc3d['_DirtyCallbackArray']; _0x58b237 < _0x229056['length']; _0x58b237++) { (0x0, _0x229056[_0x58b237])(_0x12bc9f); } } , _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'id', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'uniqueId', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'name', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'checkReadyOnEveryCall', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'checkReadyOnlyOnce', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'state', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])('alpha')], _0x1abc3d['prototype'], '_alpha', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])('backFaceCulling')], _0x1abc3d['prototype'], '_backFaceCulling', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'sideOrientation', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])('alphaMode')], _0x1abc3d['prototype'], '_alphaMode', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], '_needDepthPrePass', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'disableDepthWrite', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'forceDepthWrite', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'separateCullingPass', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])('fogEnabled')], _0x1abc3d['prototype'], '_fogEnabled', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'pointSize', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'zOffset', void 0x0), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'wireframe', null), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'pointsCloud', null), _0x52a55b['c']([Object(_0x4088ce['c'])()], _0x1abc3d['prototype'], 'fillMode', null), _0x1abc3d; }(); } , function(_0x3fe8d8, _0xaf5759, _0x192405) { 'use strict'; _0x192405['d'](_0xaf5759, 'a', function() { return _0x5a6dc0; }); var _0xeec07b = _0x192405(0x1) , _0xb244e9 = _0x192405(0x2) , _0x456af3 = _0x192405(0x1c) , _0x52bf7a = _0x192405(0x9) , _0xe3f1fa = _0x192405(0x8) , _0x27d89b = _0x192405(0x0) , _0x3a00d8 = _0x192405(0x19) , _0x277173 = _0x192405(0x6) , _0x2bbb26 = _0x192405(0x16) , _0x173689 = _0x192405(0x13) , _0x5a6dc0 = function(_0x2e66fe) { function _0x2ed7a4(_0x990cca, _0x965850, _0x72c143, _0x5ac02a) { void 0x0 === _0x5ac02a && (_0x5ac02a = !0x0); var _0x43162d = _0x2e66fe['call'](this, _0x990cca, _0x72c143) || this; return _0x43162d['_position'] = _0x27d89b['x']['Zero'](), _0x43162d['upVector'] = _0x27d89b['x']['Up'](), _0x43162d['orthoLeft'] = null, _0x43162d['orthoRight'] = null, _0x43162d['orthoBottom'] = null, _0x43162d['orthoTop'] = null, _0x43162d['fov'] = 0.8, _0x43162d['minZ'] = 0x1, _0x43162d['maxZ'] = 0x2710, _0x43162d['inertia'] = 0.9, _0x43162d['mode'] = _0x2ed7a4['PERSPECTIVE_CAMERA'], _0x43162d['isIntermediate'] = !0x1, _0x43162d['viewport'] = new _0x27d89b['z'](0x0,0x0,0x1,0x1), _0x43162d['layerMask'] = 0xfffffff, _0x43162d['fovMode'] = _0x2ed7a4['FOVMODE_VERTICAL_FIXED'], _0x43162d['cameraRigMode'] = _0x2ed7a4['RIG_MODE_NONE'], _0x43162d['customRenderTargets'] = new Array(), _0x43162d['outputRenderTarget'] = null, _0x43162d['onViewMatrixChangedObservable'] = new _0xe3f1fa['c'](), _0x43162d['onProjectionMatrixChangedObservable'] = new _0xe3f1fa['c'](), _0x43162d['onAfterCheckInputsObservable'] = new _0xe3f1fa['c'](), _0x43162d['onRestoreStateObservable'] = new _0xe3f1fa['c'](), _0x43162d['_rigCameras'] = new Array(), _0x43162d['_webvrViewMatrix'] = _0x27d89b['j']['Identity'](), _0x43162d['_skipRendering'] = !0x1, _0x43162d['_projectionMatrix'] = new _0x27d89b['j'](), _0x43162d['_postProcesses'] = new Array(), _0x43162d['_activeMeshes'] = new _0x456af3['a'](0x100), _0x43162d['_globalPosition'] = _0x27d89b['x']['Zero'](), _0x43162d['_computedViewMatrix'] = _0x27d89b['j']['Identity'](), _0x43162d['_doNotComputeProjectionMatrix'] = !0x1, _0x43162d['_transformMatrix'] = _0x27d89b['j']['Zero'](), _0x43162d['_refreshFrustumPlanes'] = !0x0, _0x43162d['_isCamera'] = !0x0, _0x43162d['_isLeftCamera'] = !0x1, _0x43162d['_isRightCamera'] = !0x0, _0x43162d['getScene']()['addCamera'](_0x43162d), _0x5ac02a && !_0x43162d['getScene']()['activeCamera'] && (_0x43162d['getScene']()['activeCamera'] = _0x43162d), _0x43162d['position'] = _0x965850, _0x43162d; } return _0xeec07b['d'](_0x2ed7a4, _0x2e66fe), Object['defineProperty'](_0x2ed7a4['prototype'], 'position', { 'get': function() { return this['_position']; }, 'set': function(_0xe30afa) { this['_position'] = _0xe30afa; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x2ed7a4['prototype']['storeState'] = function() { return this['_stateStored'] = !0x0, this['_storedFov'] = this['fov'], this; } , _0x2ed7a4['prototype']['_restoreStateValues'] = function() { return !!this['_stateStored'] && (this['fov'] = this['_storedFov'], !0x0); } , _0x2ed7a4['prototype']['restoreState'] = function() { return !!this['_restoreStateValues']() && (this['onRestoreStateObservable']['notifyObservers'](this), !0x0); } , _0x2ed7a4['prototype']['getClassName'] = function() { return 'Camera'; } , _0x2ed7a4['prototype']['toString'] = function(_0x2b89ed) { var _0x547a7d = 'Name:\x20' + this['name']; if (_0x547a7d += ',\x20type:\x20' + this['getClassName'](), this['animations']) for (var _0x1d5b13 = 0x0; _0x1d5b13 < this['animations']['length']; _0x1d5b13++) _0x547a7d += ',\x20animation[0]:\x20' + this['animations'][_0x1d5b13]['toString'](_0x2b89ed); return _0x547a7d; } , Object['defineProperty'](_0x2ed7a4['prototype'], 'globalPosition', { 'get': function() { return this['_globalPosition']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x2ed7a4['prototype']['getActiveMeshes'] = function() { return this['_activeMeshes']; } , _0x2ed7a4['prototype']['isActiveMesh'] = function(_0x4e63c6) { return -0x1 !== this['_activeMeshes']['indexOf'](_0x4e63c6); } , _0x2ed7a4['prototype']['isReady'] = function(_0x447f87) { if (void 0x0 === _0x447f87 && (_0x447f87 = !0x1), _0x447f87) for (var _0x117203 = 0x0, _0x5a491e = this['_postProcesses']; _0x117203 < _0x5a491e['length']; _0x117203++) { var _0x411fa7 = _0x5a491e[_0x117203]; if (_0x411fa7 && !_0x411fa7['isReady']()) return !0x1; } return _0x2e66fe['prototype']['isReady']['call'](this, _0x447f87); } , _0x2ed7a4['prototype']['_initCache'] = function() { _0x2e66fe['prototype']['_initCache']['call'](this), this['_cache']['position'] = new _0x27d89b['x'](Number['MAX_VALUE'],Number['MAX_VALUE'],Number['MAX_VALUE']), this['_cache']['upVector'] = new _0x27d89b['x'](Number['MAX_VALUE'],Number['MAX_VALUE'],Number['MAX_VALUE']), this['_cache']['mode'] = void 0x0, this['_cache']['minZ'] = void 0x0, this['_cache']['maxZ'] = void 0x0, this['_cache']['fov'] = void 0x0, this['_cache']['fovMode'] = void 0x0, this['_cache']['aspectRatio'] = void 0x0, this['_cache']['orthoLeft'] = void 0x0, this['_cache']['orthoRight'] = void 0x0, this['_cache']['orthoBottom'] = void 0x0, this['_cache']['orthoTop'] = void 0x0, this['_cache']['renderWidth'] = void 0x0, this['_cache']['renderHeight'] = void 0x0; } , _0x2ed7a4['prototype']['_updateCache'] = function(_0x5ab17a) { _0x5ab17a || _0x2e66fe['prototype']['_updateCache']['call'](this), this['_cache']['position']['copyFrom'](this['position']), this['_cache']['upVector']['copyFrom'](this['upVector']); } , _0x2ed7a4['prototype']['_isSynchronized'] = function() { return this['_isSynchronizedViewMatrix']() && this['_isSynchronizedProjectionMatrix'](); } , _0x2ed7a4['prototype']['_isSynchronizedViewMatrix'] = function() { return !!_0x2e66fe['prototype']['_isSynchronized']['call'](this) && (this['_cache']['position']['equals'](this['position']) && this['_cache']['upVector']['equals'](this['upVector']) && this['isSynchronizedWithParent']()); } , _0x2ed7a4['prototype']['_isSynchronizedProjectionMatrix'] = function() { var _0x240eff = this['_cache']['mode'] === this['mode'] && this['_cache']['minZ'] === this['minZ'] && this['_cache']['maxZ'] === this['maxZ']; if (!_0x240eff) return !0x1; var _0x47ed4b = this['getEngine'](); return _0x240eff = this['mode'] === _0x2ed7a4['PERSPECTIVE_CAMERA'] ? this['_cache']['fov'] === this['fov'] && this['_cache']['fovMode'] === this['fovMode'] && this['_cache']['aspectRatio'] === _0x47ed4b['getAspectRatio'](this) : this['_cache']['orthoLeft'] === this['orthoLeft'] && this['_cache']['orthoRight'] === this['orthoRight'] && this['_cache']['orthoBottom'] === this['orthoBottom'] && this['_cache']['orthoTop'] === this['orthoTop'] && this['_cache']['renderWidth'] === _0x47ed4b['getRenderWidth']() && this['_cache']['renderHeight'] === _0x47ed4b['getRenderHeight'](); } , _0x2ed7a4['prototype']['attachControl'] = function(_0x403d74, _0xb6feaa) {} , _0x2ed7a4['prototype']['detachControl'] = function(_0x22d2ae) {} , _0x2ed7a4['prototype']['update'] = function() { this['_checkInputs'](), this['cameraRigMode'] !== _0x2ed7a4['RIG_MODE_NONE'] && this['_updateRigCameras'](); } , _0x2ed7a4['prototype']['_checkInputs'] = function() { this['onAfterCheckInputsObservable']['notifyObservers'](this); } , Object['defineProperty'](_0x2ed7a4['prototype'], 'rigCameras', { 'get': function() { return this['_rigCameras']; }, 'enumerable': !0x0, 'configurable': !0x0 }), Object['defineProperty'](_0x2ed7a4['prototype'], 'rigPostProcess', { 'get': function() { return this['_rigPostProcess']; }, 'enumerable': !0x0, 'configurable': !0x0 }), _0x2ed7a4['prototype']['_getFirstPostProcess'] = function() { for (var _0x1f2c78 = 0x0; _0x1f2c78 < this['_postProcesses']['length']; _0x1f2c78++) if (null !== this['_postProcesses'][_0x1f2c78]) return this['_postProcesses'][_0x1f2c78]; return null; } , _0x2ed7a4['prototype']['_cascadePostProcessesToRigCams'] = function() { var _0x5dc854 = this['_getFirstPostProcess'](); _0x5dc854 && _0x5dc854['markTextureDirty'](); for (var _0x276d6c = 0x0, _0x1632a2 = this['_rigCameras']['length']; _0x276d6c < _0x1632a2; _0x276d6c++) { var _0x459704 = this['_rigCameras'][_0x276d6c] , _0x22d099 = _0x459704['_rigPostProcess']; if (_0x22d099) 'pass' === _0x22d099['getEffectName']() && (_0x459704['isIntermediate'] = 0x0 === this['_postProcesses']['length']), _0x459704['_postProcesses'] = this['_postProcesses']['slice'](0x0)['concat'](_0x22d099), _0x22d099['markTextureDirty'](); else _0x459704['_postProcesses'] = this['_postProcesses']['slice'](0x0); } } , _0x2ed7a4['prototype']['attachPostProcess'] = function(_0x1f58b1, _0x142e50) { return void 0x0 === _0x142e50 && (_0x142e50 = null), !_0x1f58b1['isReusable']() && this['_postProcesses']['indexOf'](_0x1f58b1) > -0x1 ? (_0x277173['a']['Error']('You\x27re\x20trying\x20to\x20reuse\x20a\x20post\x20process\x20not\x20defined\x20as\x20reusable.'), 0x0) : (null == _0x142e50 || _0x142e50 < 0x0 ? this['_postProcesses']['push'](_0x1f58b1) : null === this['_postProcesses'][_0x142e50] ? this['_postProcesses'][_0x142e50] = _0x1f58b1 : this['_postProcesses']['splice'](_0x142e50, 0x0, _0x1f58b1), this['_cascadePostProcessesToRigCams'](), this['_postProcesses']['indexOf'](_0x1f58b1)); } , _0x2ed7a4['prototype']['detachPostProcess'] = function(_0x46592a) { var _0x26bfbe = this['_postProcesses']['indexOf'](_0x46592a); -0x1 !== _0x26bfbe && (this['_postProcesses'][_0x26bfbe] = null), this['_cascadePostProcessesToRigCams'](); } , _0x2ed7a4['prototype']['getWorldMatrix'] = function() { return this['_isSynchronizedViewMatrix']() ? this['_worldMatrix'] : (this['getViewMatrix'](), this['_worldMatrix']); } , _0x2ed7a4['prototype']['_getViewMatrix'] = function() { return _0x27d89b['j']['Identity'](); } , _0x2ed7a4['prototype']['getViewMatrix'] = function(_0x15f008) { return !_0x15f008 && this['_isSynchronizedViewMatrix']() ? this['_computedViewMatrix'] : (this['updateCache'](), this['_computedViewMatrix'] = this['_getViewMatrix'](), this['_currentRenderId'] = this['getScene']()['getRenderId'](), this['_childUpdateId']++, this['_refreshFrustumPlanes'] = !0x0, this['_cameraRigParams'] && this['_cameraRigParams']['vrPreViewMatrix'] && this['_computedViewMatrix']['multiplyToRef'](this['_cameraRigParams']['vrPreViewMatrix'], this['_computedViewMatrix']), this['parent'] && this['parent']['onViewMatrixChangedObservable'] && this['parent']['onViewMatrixChangedObservable']['notifyObservers'](this['parent']), this['onViewMatrixChangedObservable']['notifyObservers'](this), this['_computedViewMatrix']['invertToRef'](this['_worldMatrix']), this['_computedViewMatrix']); } , _0x2ed7a4['prototype']['freezeProjectionMatrix'] = function(_0x4405e1) { this['_doNotComputeProjectionMatrix'] = !0x0, void 0x0 !== _0x4405e1 && (this['_projectionMatrix'] = _0x4405e1); } , _0x2ed7a4['prot