diff --git a/Mario1-1/appmanifest.json b/Mario1-1/appmanifest.json new file mode 100644 index 0000000..2599c9c --- /dev/null +++ b/Mario1-1/appmanifest.json @@ -0,0 +1,41 @@ +{ + "name": "Eric_Laputka_Mario_1-1", + "short_name": "Eric_Laputka_Mario_1-1", + "description": "", + "start_url": "index.html", + "display": "fullscreen", + "orientation": "landscape", + "background_color": "#ffffff", + "icons": [ + { + "src": "icons/icon-16.png", + "sizes": "16x16", + "type": "image/png" + }, + { + "src": "icons/icon-32.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "icons/icon-64.png", + "sizes": "64x64", + "type": "image/png" + }, + { + "src": "icons/icon-128.png", + "sizes": "128x128", + "type": "image/png" + }, + { + "src": "icons/icon-256.png", + "sizes": "256x256", + "type": "image/png" + }, + { + "src": "icons/icon-512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} \ No newline at end of file diff --git a/Mario1-1/data.json b/Mario1-1/data.json new file mode 100644 index 0000000..782cad8 --- /dev/null +++ b/Mario1-1/data.json @@ -0,0 +1 @@ +{"project":["Eric_Laputka_Mario_1-1",null,[[0,false,true,true,true,true,true,true,true,false],[5,true,false,false,false,false,false,false,false,false],[6,false,true,true,true,true,true,true,true,false],[7,false,true,true,true,true,true,true,true,true],[9,true,false,false,false,false,false,false,false,false]],[["collision",0,false,[],1,0,null,[["Animation 1",0,false,1,0,false,362154530771655,[["images/collision-sheet1.png",11189,145,73,70,70,1,0,0,[],[],0],["images/collision-sheet1.png",11189,145,145,70,70,1,0,0,[],[],0],["images/collision-sheet1.png",11189,73,73,70,70,1,0,0,[],[],0],["images/collision-sheet1.png",11189,1,73,70,70,1,0,0,[],[],0],["images/collision-sheet1.png",11189,145,1,70,70,1,0,0,[],[],0],["images/collision-sheet1.png",11189,73,1,70,70,1,0,0,[],[],0],["images/collision-sheet1.png",11189,1,1,70,70,1,0,0,[],[],0],["images/collision-sheet0.png",8460,145,145,70,70,1,0,0,[],[],0],["images/collision-sheet0.png",8460,73,145,70,70,1,0,0,[],[],0],["images/collision-sheet0.png",8460,1,145,70,70,1,0,0,[],[],0],["images/collision-sheet0.png",8460,145,73,70,70,1,0,0,[],[],0],["images/collision-sheet1.png",11189,73,145,70,70,1,0,0,[],[],0],["images/collision-sheet0.png",8460,73,73,70,70,1,0,0,[],[],0],["images/collision-sheet1.png",11189,1,145,70,70,1,0,0,[],[],0],["images/collision-sheet0.png",8460,1,73,70,70,1,0,0,[],[],0],["images/collision-sheet2.png",456,9,1,5,24,1,0,0,[],[],0],["images/collision-sheet2.png",456,1,1,5,24,1,0,0,[],[],0],["images/collision-sheet0.png",8460,145,1,70,70,1,0,0,[],[],0],["images/collision-sheet0.png",8460,73,1,70,70,1,0,0,[],[],0],["images/collision-sheet0.png",8460,1,1,70,70,1,0,0,[],[],0]]]],[["Solid",1,577264081028445]],false,false,316928572971963,[],null],["PlayerBox",0,false,[[835922608846953,2],[978086678105454,2],[624316246071941,0],[428170637621654,0],[964549214458864,1],[243986130401045,0],[572732764104078,0],[734018037536147,0],[502189324251184,0],[588515120930585,0]],2,0,null,[["BigMario",5,false,1,0,false,562074224397123,[["images/shared-0-sheet4.png",39370,1,385,32,64,1,0.5,1,[["Image Point 1",0.59375,-7.140625]],[],0],["images/shared-0-sheet4.png",39370,176,449,32,32,1,0.5,1,[["Image Point 1",0.59375,-7.140625]],[],0]]],["SmallMario",5,false,1,0,false,553527969355560,[["images/shared-0-sheet4.png",39370,176,449,32,32,1,0.5,1,[["Image Point 1",0.59375,-7.140625]],[],0]]]],[["Platform",2,225297673546575],["ScrollTo",3,868135118427496]],false,false,770011790869800,[],null],["BigMario",0,false,[],1,2,null,[["idle",5,true,1,0,false,541498834532091,[["images/bigmario-sheet0.png",61692,292,385,66,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,360,385,66,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0]]],["walk",10,false,1,0,false,612549451833150,[["images/bigmario-sheet0.png",61692,129,1,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,149,129,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,223,1,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,297,1,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,371,1,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,1,129,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,75,129,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,149,257,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,223,129,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,297,129,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,371,129,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0]]],["jump",5,true,1,0,false,664121969336005,[["images/bigmario-sheet0.png",61692,223,385,67,94,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0]]],["death",5,false,1,0,false,391703527975944,[["images/bigmario-sheet0.png",61692,223,257,69,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,294,257,69,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,365,257,69,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,436,257,69,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0]]],["GoDown",5,false,1,0,false,423970581572553,[["images/bigmario-sheet0.png",61692,292,385,66,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,428,385,66,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,1,385,66,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,69,385,66,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,445,1,66,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,445,129,66,92,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0]]],["GoRight",10,false,1,0,false,213564323165164,[["images/bigmario-sheet0.png",61692,223,1,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,1,257,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,75,257,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,149,385,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0],["images/bigmario-sheet0.png",61692,1,1,72,97,1,0.48484848484848486,1,[["Flag",1,0.6304347826086957]],[],0]]]],[["Flash",4,489933106618116]],false,false,758983122457845,[["colorblend","Color"],["burn","Burn"]],null],["Keyboard",5,false,[],0,0,null,null,[],false,false,807583649406575,[],null,[]],["Slime",0,false,[[539956823493985,2],[296763208384214,0]],1,0,null,[["idle",5,true,1,0,false,299845375787360,[["images/shared-0-sheet4.png",39370,35,417,50,28,1,0.48,1,[],[],0],["images/shared-0-sheet4.png",39370,123,481,51,26,1,0.48,1,[],[],0]]],["walk",5,true,1,0,false,754464672797579,[["images/shared-0-sheet4.png",39370,35,417,50,28,1,0.48,1,[],[],0],["images/shared-0-sheet4.png",39370,123,481,51,26,1,0.48,1,[],[],0]]],["death",5,false,1,0,false,524132014353028,[["images/shared-0-sheet5.png",1428,1,17,59,12,1,0.48,1,[],[],0]]]],[["Platform",2,695350897735387]],false,false,115726981252147,[],null],["GoRight",0,false,[],0,0,null,[["GoRight",5,false,1,0,false,905791702928933,[["images/shared-0-sheet4.png",39370,361,385,64,64,1,0,0,[],[],0]]]],[],false,false,357934487539273,[],null],["GoLeft",0,false,[],0,0,null,[["GoLeft",5,false,1,0,false,625598602767319,[["images/shared-0-sheet4.png",39370,427,385,64,64,1,0,0,[],[],0]]]],[],false,false,789161908592400,[],null],["Menu_score",6,false,[],0,0,null,null,[],false,false,694288643364447,[],null],["BG_Castle",0,false,[],1,0,null,[["Animation 1",0,false,1,0,false,532726750610033,[["images/shared-0-sheet4.png",39370,289,1,70,70,1,0,0,[],[],0]]]],[["Solid",1,840481241428907]],false,false,568242467845483,[],null],["Death_Pit",0,false,[],0,0,null,[["Death_Pit",0,false,1,0,false,555464587551418,[["images/shared-0-sheet2.png",5979,0,0,250,250,1,0,0,[],[],0]]]],[],false,false,696084609835748,[],null],["GUI_Timer",6,false,[],0,0,null,null,[],false,false,763697211538298,[],null],["Brick",0,false,[],1,0,null,[["idle",1,false,1,0,false,339813492576435,[["images/brick-sheet2.png",1987,0,0,70,70,1,0,0,[],[],0]]],["bounce",10,false,1,0,false,202168083060032,[["images/brick-sheet0.png",7837,145,129,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,73,129,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,1,129,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,73,129,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0]]],["destroy",10,false,1,0,false,622305279963092,[["images/brick-sheet0.png",7837,145,129,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,145,1,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,73,1,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,1,1,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet1.png",522,0,0,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0]]]],[["Solid",1,889098193847534]],false,false,660978160420282,[],null],["BrickHitbox",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,594744276829381,[["images/shared-0-sheet1.png",11758,257,257,250,250,1,0,0,[],[],0]]]],[],false,false,715755258143371,[],null],["FlagPole",7,false,[[110682241443500,0]],0,0,["images/flagpole-sheet0.png",2366,0,0,0,250,250],null,[],false,false,982467271077480,[],null],["Flag",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,346868467487498,[["images/shared-0-sheet4.png",39370,361,1,70,70,1,0.8285714285714286,0.08571428571428572,[],[0.17142857142857137,0.9142857142857143,-0.8285714285714286,0.9142857142857143,-0.8285714285714286,-0.08571428571428572,0.17142857142857137,-0.08571428571428572],0],["images/shared-0-sheet4.png",39370,433,1,70,70,1,0.8285714285714286,0.08571428571428572,[],[0.17142857142857137,0.9142857142857143,-0.8285714285714286,0.9142857142857143,-0.8285714285714286,-0.08571428571428572,0.17142857142857137,-0.08571428571428572],0]]]],[],false,false,280135736087366,[],null],["PennantGoal",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,265309349709809,[["images/shared-0-sheet1.png",11758,1,257,250,250,1,0,0,[],[],0]]]],[],false,false,740776254686999,[],null],["Snail",0,false,[[879648659851366,2],[723862768261666,0]],2,0,null,[["walk",5,true,1,0,false,814997921034211,[["images/snail-sheet0.png",4399,65,1,54,31,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,1,57,31,1,0.5,1,[],[],0]]],["stunned",5,false,1,0,false,161089225706333,[["images/snail-sheet0.png",4399,1,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,65,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,1,97,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,65,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,65,97,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,65,65,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,65,97,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,65,97,44,30,1,0.5,1,[],[],0],["images/snail-sheet0.png",4399,65,65,44,30,1,0.5,1,[],[],0]]]],[["Platform",2,167036995884420],["Bullet",8,295082780823240]],false,false,249008358717565,[],null],["Mushroom",0,false,[[387752648027731,0]],1,0,null,[["moving",5,false,1,0,false,551123155067336,[["images/shared-0-sheet4.png",39370,87,385,42,32,1,0,0,[],[0,0,1,0,1,0.96875,0,0.96875],0]]],["outbox",5,false,1,0,false,140360642425304,[["images/shared-0-sheet4.png",39370,131,385,42,32,1,0,0,[],[],0],["images/shared-0-sheet4.png",39370,175,385,42,32,1,0,0,[],[],0],["images/shared-0-sheet4.png",39370,219,385,42,32,1,0,0,[],[],0],["images/shared-0-sheet4.png",39370,35,449,42,32,1,0,0,[],[],0],["images/shared-0-sheet4.png",39370,79,449,42,32,1,0,0,[],[],0],["images/shared-0-sheet4.png",39370,87,385,42,32,1,0,0,[],[],0]]]],[["Platform",2,539398149028310]],false,false,795698880192347,[],null],["ItemHitbox",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,275734177149304,[["images/shared-0-sheet1.png",11758,257,257,250,250,1,0,0,[],[],0]]]],[],false,false,644997885604013,[],null],["ItemBox",0,false,[],1,0,null,[["idle",1,false,1,0,false,599600995368149,[["images/shared-0-sheet4.png",39370,289,73,70,70,1,0,0,[],[],0]]],["bounce",10,false,1,0,false,434599479973287,[["images/shared-0-sheet4.png",39370,1,1,70,100,1,0,0,[],[0,0.15,1,0.15,1,0.85,0,0.85],0],["images/shared-0-sheet4.png",39370,73,1,70,100,1,0,0,[],[0,0.15,1,0.15,1,0.85,0,0.85],0],["images/shared-0-sheet4.png",39370,145,1,70,100,1,0,0,[],[0,0.15,1,0.15,1,0.85,0,0.85],0],["images/shared-0-sheet4.png",39370,217,1,70,100,1,0,0,[],[0,0.15,1,0.15,1,0.85,0,0.85],0],["images/shared-0-sheet4.png",39370,361,73,70,70,1,0,0,[],[],0]]],["empty",5,false,1,0,false,175701174749721,[["images/shared-0-sheet4.png",39370,361,73,70,70,1,0,0,[],[],0]]]],[["Solid",1,587579352926496]],false,false,172160599892182,[],null],["Pipe",0,false,[],1,0,null,[["Pipe",0,false,1,0,false,810764171762479,[["images/shared-0-sheet4.png",39370,433,73,70,70,1,0,0,[],[],0],["images/shared-0-sheet4.png",39370,1,103,70,70,1,0,0,[],[],0]]]],[["Solid",1,286680669894130]],false,false,524450121477870,[],null],["RealFlagpole",0,false,[[696682237574658,0]],0,0,null,[["Animation 1",5,false,1,0,false,509029777147763,[["images/shared-0-sheet4.png",39370,73,103,70,70,1,1,0,[],[0,1,-0.18214285714285716,1,-0.18214285714285827,0,0,0],0],["images/shared-0-sheet4.png",39370,145,103,70,70,1,1,0,[],[0,1,-0.1964285714285714,1,-0.19107142857142934,0,0,0],0]]]],[],false,false,820177916889727,[],null],["WarpPipe",0,false,[],1,0,null,[["Pipe",0,false,1,0,false,195030021560304,[["images/shared-0-sheet4.png",39370,433,73,70,70,1,0,0,[],[],0],["images/shared-0-sheet4.png",39370,1,103,70,70,1,0,0,[],[],0]]]],[["Solid",1,506628329748452]],false,false,231847028557163,[],null],["WarpPipeHitbox",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,924079290322202,[["images/shared-0-sheet1.png",11758,257,257,250,250,1,0,0,[],[],0]]]],[],false,false,321102534091332,[],null],["Bush",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,977849426803748,[["images/shared-0-sheet4.png",39370,217,103,70,70,1,0,0,[],[],0]]]],[],false,false,348727889083669,[],null],["Hill",0,false,[],0,0,null,[["Animation 1",0,false,1,0,false,176460591939134,[["images/shared-0-sheet4.png",39370,289,145,70,70,1,0,0,[],[],0],["images/shared-0-sheet4.png",39370,361,145,70,70,1,0,0,[],[],0],["images/shared-0-sheet4.png",39370,433,145,70,70,1,0,0,[],[],0],["images/shared-0-sheet4.png",39370,1,175,70,70,1,0,0,[],[],0]]]],[],false,false,267427904627706,[],null],["Castle",0,false,[],0,0,null,[["Animation 1",0,false,1,0,false,604246495674768,[["images/castle-sheet1.png",762,0,0,70,70,1,0,0,[],[],0],["images/castle-sheet3.png",962,0,0,70,70,1,0,0,[],[],0],["images/castle-sheet0.png",4271,145,145,70,70,1,0,0,[],[],0],["images/castle-sheet0.png",4271,73,145,70,70,1,0,0,[],[],0],["images/castle-sheet2.png",733,0,0,70,70,1,0,0,[],[],0],["images/castle-sheet0.png",4271,73,73,70,70,1,0,0,[],[],0],["images/castle-sheet0.png",4271,1,73,70,70,1,0,0,[],[],0],["images/castle-sheet0.png",4271,145,1,70,70,1,0,0,[],[],0],["images/castle-sheet0.png",4271,73,1,70,70,1,0,0,[],[],0],["images/castle-sheet0.png",4271,1,145,70,70,1,0,0,[],[],0],["images/castle-sheet0.png",4271,1,1,70,70,1,0,0,[],[],0],["images/castle-sheet0.png",4271,145,73,70,70,1,0,0,[],[],0]]]],[],false,false,949781505206989,[],null],["Cloud",0,false,[],0,0,null,[["Animation 1",0,false,1,0,false,576232799977969,[["images/shared-0-sheet3.png",7015,1,147,128,71,1,0,0,[],[],0],["images/shared-0-sheet3.png",7015,1,1,129,71,1,0.5,0.5,[],[],0],["images/shared-0-sheet3.png",7015,1,74,129,71,1,0.5,0.5,[],[],0]]]],[],false,false,451834845272449,[],null],["Star",0,false,[[210734044583766,0]],1,0,null,[["Animation 1",5,false,1,0,false,301047213219524,[["images/shared-0-sheet4.png",39370,210,449,32,32,1,0,0,[],[0,0.3552631578947365,0.493421052631579,0.009868421052631478,0.998355263157895,0.39473684210526305,0.8322368421052629,1,0.18421052631578952,1],0]]]],[["Bullet",8,314907752476161]],false,false,491873444663753,[],null],["Door",0,false,[],0,0,null,[["Animation 1",0,false,1,0,false,766671126230897,[["images/shared-0-sheet4.png",39370,73,175,70,70,1,0,0,[],[],0],["images/shared-0-sheet4.png",39370,145,175,70,70,1,0,0,[],[],0]]]],[],false,false,339355341843844,[],null],["FireWrk",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,587326145972697,[["images/shared-0-sheet4.png",39370,217,175,70,70,1,0.5,0.5,[],[],0]]]],[],false,false,874278618476122,[],null],["FireWrk2",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,866595059431800,[["images/shared-0-sheet4.png",39370,289,257,70,70,1,0.5,0.5,[],[],0]]]],[],false,false,813937096276325,[],null],["FireWrk3",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,833433911603729,[["images/shared-0-sheet4.png",39370,289,257,70,70,1,0.5,0.5,[],[],0]]]],[],false,false,946996352808257,[],null],["FireWrk4",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,336493840976890,[["images/shared-0-sheet4.png",39370,361,257,70,70,1,0.5,0.5,[],[],0]]]],[],false,false,126739145244738,[],null],["FireWrk5",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,420929882025929,[["images/shared-0-sheet4.png",39370,433,257,70,70,1,0.5,0.5,[],[],0]]]],[],false,false,938592130675836,[],null],["BG_Castle2",0,false,[],1,0,null,[["Animation 1",0,false,1,0,false,833552794329906,[["images/shared-0-sheet4.png",39370,1,257,70,70,1,0,0,[],[],0]]]],[["Solid",1,750550761581878]],false,false,132963011771474,[],null],["Brick2",0,false,[],1,0,null,[["idle",1,false,1,0,false,172932356549038,[["images/shared-0-sheet4.png",39370,73,257,70,70,1,0,0,[],[],0]]]],[["Solid",1,135509280933238]],false,false,267284019208574,[],null],["UnderGroundBg",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,402405053900381,[["images/shared-0-sheet0.png",14480,0,0,1024,512,1,0.5,0.5,[],[],0]]]],[],false,false,247027174276284,[],null],["Coin",0,false,[],0,0,null,[["Coin",5,false,1,0,false,993127212654314,[["images/coin-sheet0.png",6871,145,73,70,70,1,0,0,[],[0.23214285714285693,0.2535714285714286,0.7535714285714294,0.2571428571428569,0.7589285714285716,0.7732142857142863,0.2357142857142855,0.7660714285714294],0]]],["GetCoin",5,false,1,0,false,569195453129059,[["images/coin-sheet1.png",689,0,0,70,70,1,0,0,[],[0.23214285714285693,0.2535714285714286,0.7535714285714294,0.2571428571428569,0.7589285714285716,0.7732142857142863,0.2357142857142855,0.7660714285714294],0],["images/coin-sheet0.png",6871,145,145,70,70,1,0,0,[],[0.23214285714285693,0.2535714285714286,0.7535714285714294,0.2571428571428569,0.7589285714285716,0.7732142857142863,0.2357142857142855,0.7660714285714294],0],["images/coin-sheet0.png",6871,73,73,70,70,1,0,0,[],[0.23214285714285693,0.2535714285714286,0.7535714285714294,0.2571428571428569,0.7589285714285716,0.7732142857142863,0.2357142857142855,0.7660714285714294],0],["images/coin-sheet0.png",6871,1,73,70,70,1,0,0,[],[0.23214285714285693,0.2535714285714286,0.7535714285714294,0.2571428571428569,0.7589285714285716,0.7732142857142863,0.2357142857142855,0.7660714285714294],0],["images/coin-sheet0.png",6871,145,1,70,70,1,0,0,[],[0.23214285714285693,0.2535714285714286,0.7535714285714294,0.2571428571428569,0.7589285714285716,0.7732142857142863,0.2357142857142855,0.7660714285714294],0],["images/coin-sheet0.png",6871,73,1,70,70,1,0,0,[],[0.23214285714285693,0.2535714285714286,0.7535714285714294,0.2571428571428569,0.7589285714285716,0.7732142857142863,0.2357142857142855,0.7660714285714294],0],["images/coin-sheet0.png",6871,1,1,70,70,1,0,0,[],[0.23214285714285693,0.2535714285714286,0.7535714285714294,0.2571428571428569,0.7589285714285716,0.7732142857142863,0.2357142857142855,0.7660714285714294],0],["images/coin-sheet0.png",6871,73,145,70,70,1,0,0,[],[0.23214285714285693,0.2535714285714286,0.7535714285714294,0.2571428571428569,0.7589285714285716,0.7732142857142863,0.2357142857142855,0.7660714285714294],0],["images/coin-sheet0.png",6871,1,145,70,70,1,0,0,[],[0.23214285714285693,0.2535714285714286,0.7535714285714294,0.2571428571428569,0.7589285714285716,0.7732142857142863,0.2357142857142855,0.7660714285714294],0]]]],[],false,false,251463110320567,[],null],["Audio",9,false,[],0,0,null,null,[],false,false,852672976572659,[],null,[0,0,false,0,1,1,600,600,10000,1]],["FireGem",0,false,[[984052098758798,0]],0,0,null,[["Animation 1",5,false,1,0,false,467424122575111,[["images/shared-0-sheet4.png",39370,257,481,36,26,1,0,0,[],[1,1,0,1,0,0,1,0],0]]],["outbox",5,false,1,0,false,137686366268555,[["images/shared-0-sheet4.png",39370,321,481,36,26,1,0,0,[],[1,1,0,1,0,0,1,0],0],["images/shared-0-sheet4.png",39370,385,481,36,26,1,0,0,[],[1,1,0,1,0,0,1,0],0],["images/shared-0-sheet4.png",39370,437,481,36,26,1,0,0,[],[1,1,0,1,0,0,1,0],0],["images/shared-0-sheet4.png",39370,475,481,36,26,1,0,0,[],[1,1,0,1,0,0,1,0],0],["images/shared-0-sheet4.png",39370,257,481,36,26,1,0,0,[],[1,1,0,1,0,0,1,0],0]]]],[],false,false,302776147098960,[],null],["Fireball",0,false,[],1,0,null,[["Animation 1",5,true,1,0,false,814006827400099,[["images/shared-0-sheet5.png",1428,33,33,24,26,1,-0.9166666666666666,-0.8461538461538461,[],[],0],["images/shared-0-sheet4.png",39370,145,257,70,70,1,0,0,[],[1,0,1,1,0,1,0,0],0],["images/shared-0-sheet4.png",39370,217,257,70,70,1,0,0,[],[1,1,0,1,0,0,1,0],0],["images/shared-0-sheet4.png",39370,289,385,70,70,1,0,0,[],[0,1,0,0,1,0,1,1],0]]]],[["Bullet",8,611701332331100]],false,false,545815285929667,[],null],["Camera",0,false,[[429560598193204,0]],1,0,null,[["Animation 1",5,false,1,0,false,799727483845195,[["images/shared-0-sheet1.png",11758,257,1,250,250,1,0,0,[],[],0]]]],[["ScrollTo",3,850330577524031]],false,false,121222687905708,[],null],["UnderGroundHitbox",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,850222438578607,[["images/shared-0-sheet1.png",11758,1,1,250,250,1,0.5,0.5,[],[],0]]]],[],false,false,398493185359990,[],null],["StarBox",0,false,[],1,0,null,[["idle",1,false,1,0,false,421815880381487,[["images/brick-sheet2.png",1987,0,0,70,70,1,0,0,[],[],0]]],["bounce",10,false,1,0,false,469705089836627,[["images/brick-sheet0.png",7837,145,129,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,73,129,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,1,129,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,73,129,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0]]],["destroy",10,false,1,0,false,961815691750388,[["images/brick-sheet0.png",7837,145,129,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,145,1,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,73,1,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet0.png",7837,1,1,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0],["images/brick-sheet1.png",522,0,0,70,100,1,0,0.15,[],[0,0,1,0,1,0.7,0,0.7],0]]]],[["Solid",1,606862793538833]],false,false,992045626882401,[],null],["StarBhitbox",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,911629340997311,[["images/shared-0-sheet1.png",11758,257,257,250,250,1,0,0,[],[],0]]]],[],false,false,648824014735360,[],null],["CoinBox",0,false,[],1,0,null,[["idle",0,false,1,0,false,488857011653406,[["images/coinbox-sheet0.png",10364,129,143,70,70,1,0,0,[],[],0]]],["getCoin",15,false,1,0,false,306109517269851,[["images/coinbox-sheet2.png",2954,0,0,70,140,1,0,0.5,[],[0,-0.0035714285714291694,1,-0.0035714285714290583,1,0.5,0,0.5],0],["images/coinbox-sheet1.png",5998,145,1,70,140,1,0,0.5,[],[0,-0.010714285714286176,1,-0.010714285714286342,1,0.5,0,0.5],0],["images/coinbox-sheet1.png",5998,73,1,70,140,1,0,0.5,[],[0,-0.25,1,-0.25,1,0.43571428571428505,0,0.4392857142857136],0],["images/coinbox-sheet1.png",5998,1,1,70,140,1,0,0.5,[],[0,-0.25,1,-0.25,1,0.35714285714285676,0,0.35714285714285676],0],["images/coinbox-sheet0.png",10364,145,1,70,140,1,0,0.5,[],[0,-0.25,1,-0.25,1,0.3607142857142853,0,0.3607142857142853],0],["images/coinbox-sheet0.png",10364,73,1,70,140,1,0,0.5,[],[0,-0.07500000000000062,1,-0.0785714285714289,1,0.44285714285714217,0,0.44285714285714217],0],["images/coinbox-sheet0.png",10364,1,1,70,140,1,0,0.5,[],[0,-2.220446049250313e-16,1,-2.7755575615628914e-16,1,0.5,0,0.5],0]]],["empty",5,false,1,0,false,275831280756282,[["images/coinbox-sheet0.png",10364,1,143,70,70,1,0,0.014285714285714285,[],[],0]]]],[["Solid",1,612750997438617]],false,false,210261119536833,[],null],["CoinHitbox",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,571361243577697,[["images/shared-0-sheet1.png",11758,257,257,250,250,1,0,0,[],[],0]]]],[],false,false,612991776996450,[],null],["InvisBox",0,false,[[775731438017575,0]],1,0,null,[["idle",0,false,1,0,false,647407785211240,[["images/coin-sheet0.png",6871,1,145,70,70,1,0,0,[],[],0]]],["getCoin",15,false,1,0,false,621975543832768,[["images/invisbox-sheet0.png",6572,1,1,70,140,1,0,0.5,[],[0,-0.0035714285714291694,1,-0.0035714285714290583,1,0.5,0,0.5],0],["images/coinbox-sheet1.png",5998,145,1,70,140,1,0,0.5,[],[0,-0.010714285714286176,1,-0.010714285714286342,1,0.5,0,0.5],0],["images/invisbox-sheet1.png",6576,145,1,70,140,1,0,0.5,[],[0,-0.25,1,-0.25,1,0.43571428571428505,0,0.4392857142857136],0],["images/invisbox-sheet1.png",6576,73,1,70,140,1,0,0.5,[],[0,-0.25,1,-0.25,1,0.35714285714285676,0,0.35714285714285676],0],["images/invisbox-sheet1.png",6576,1,1,70,140,1,0,0.5,[],[0,-0.25,1,-0.25,1,0.3607142857142853,0,0.3607142857142853],0],["images/invisbox-sheet0.png",6572,145,1,70,140,1,0,0.5,[],[0,-0.07500000000000062,1,-0.0785714285714289,1,0.44285714285714217,0,0.44285714285714217],0],["images/invisbox-sheet0.png",6572,73,1,70,140,1,0,0.5,[],[0,-2.220446049250313e-16,1,-2.7755575615628914e-16,1,0.5,0,0.5],0]]],["empty",5,false,1,0,false,650833345160164,[["images/coinbox-sheet0.png",10364,1,143,70,70,1,0,0.014285714285714285,[],[],0]]]],[["Solid",1,289761189902401]],false,false,249741632219661,[],null],["InvisHitbox",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,199414722368664,[["images/shared-0-sheet1.png",11758,257,257,250,250,1,0,0,[],[],0]]]],[],false,false,141127014949312,[],null]],[],[["Layout 1",8000,1000,false,"Event sheet 1",359306807054432,[["Sky",0,896383063196780,true,[132,193,255],false,1,1,1,false,false,1,0,0,[[[800,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,569,[],[],[true,"Animation 1",0,true]],[[480,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,570,[],[],[true,"Animation 1",0,true]],[[448,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,571,[],[],[true,"Animation 1",0,true]],[[416,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,572,[],[],[true,"Animation 1",0,true]],[[1344,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,573,[],[],[true,"Animation 1",0,true]],[[1952,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,574,[],[],[true,"Animation 1",0,true]],[[2016,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,575,[],[],[true,"Animation 1",0,true]],[[1984,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,576,[],[],[true,"Animation 1",0,true]],[[2336,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,577,[],[],[true,"Animation 1",0,true]],[[2912,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,578,[],[],[true,"Animation 1",0,true]],[[2944,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,579,[],[],[true,"Animation 1",0,true]],[[3456,384,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,580,[],[],[true,"Animation 1",0,true]],[[3456,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,581,[],[],[true,"Animation 1",0,true]],[[3424,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,582,[],[],[true,"Animation 1",0,true]],[[3488,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,583,[],[],[true,"Animation 1",0,true]],[[3808,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,584,[],[],[true,"Animation 1",0,true]],[[4384,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,585,[],[],[true,"Animation 1",0,true]],[[4448,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,586,[],[],[true,"Animation 1",0,true]],[[5056,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,587,[],[],[true,"Animation 1",0,true]],[[5376,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,588,[],[],[true,"Animation 1",0,true]],[[-32,288,0,224,128,0,0,[1,1,1,1],0,0,0,0,[]],25,589,[],[],[true,"Animation 1",0,true]],[[512,352,0,160,64,0,0,[1,1,1,1],0,0,0,0,[]],25,590,[],[],[true,"Animation 1",2,true]],[[1504,288,0,224,128,0,0,[1,1,1,1],0,0,0,0,[]],25,591,[],[],[true,"Animation 1",2,true]],[[2080,320,0,128,96,0,0,[1,1,1,1],0,0,0,0,[]],25,592,[],[],[true,"Animation 1",1,true]],[[3072,256,0,192,160,0,0,[1,1,1,1],0,0,0,0,[]],25,593,[],[],[true,"Animation 1",3,true]],[[3552,320,0,128,96,0,0,[1,1,1,1],0,0,0,0,[]],25,594,[],[],[true,"Animation 1",1,true]],[[4576,256,0,224,160,0,0,[1,1,1,1],0,0,0,0,[]],25,595,[],[],[true,"Animation 1",0,true]],[[5100.5811305085745,320,0,128,96,0,0,[1,1,1,1],0,0,0,0,[]],25,596,[],[],[true,"Animation 1",3,true]],[[6112,256,0,224,160,0,0,[1,1,1,1],0,0,0,0,[]],25,597,[],[],[true,"Animation 1",2,true]],[[6592,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],24,694,[],[],[true,"Animation 1",0,true]],[[6464,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,668,[],[],[true,"Animation 1",3,true]],[[6464,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,669,[],[],[true,"Animation 1",6,true]],[[6496,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,679,[],[],[true,"Animation 1",4,true]],[[6496,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,680,[],[],[true,"Animation 1",2,true]],[[6528,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,693,[],[],[true,"Animation 1",2,true]],[[6528,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],29,674,[],[],[true,"Animation 1",0,true]],[[6528,329.4210427978489,0,32,54.578957202151116,0,0,[1,1,1,1],0,0,0,0,[]],29,692,[],[],[true,"Animation 1",1,true]],[[976,736,0,864,544,0,0,[1,1,1,1],0.5,0.5,0,0,[]],37,770,[],[],[true,"Animation 1",0,true]]],[],0],["Collision",1,161427079371850,true,[255,255,255],true,1,1,1,false,false,1,0,0,[[[0,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,1,[],[[true,""]],[true,"Animation 1",18,true]],[[32,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,2,[],[[true,""]],[true,"Animation 1",18,true]],[[96,416,0,32,64,0,0,[1,1,1,1],0.5,1,0,0,[]],1,11,["idle","right",0,0,1.2,0,0,0,0,0],[[200,1500,1500,625,1500,1000,false,0,true,true],[false]],[false,"BigMario",0,true]],[[399.5151515151515,256,0,32,64,0,0,[1,1,1,1],0.48484848484848486,1,0,0,[[],[]]],2,8,[],[[]],[true,"idle",0,true]],[[704,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,15,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[885,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],6,17,[],[],[false,"GoLeft",0,true]],[[2208,480,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],9,23,[],[],[false,"Death_Pit",0,true]],[[768,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,28,[],[[true,""]],[true,"idle",0,true]],[[774,305.03131667139263,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,29,[],[],[false,"Animation 1",0,true]],[[6368,32,0,64,64,0,0,[1,1,1,1],0.8285714285714286,0.08571428571428572,0,0,[]],14,35,[],[],[true,"Animation 1",0,true]],[[6339.736871606452,352.56447393005374,0,59.94145953766201,32,0,0,[1,1,1,1],0,0,0,0,[]],15,41,[],[],[false,"Animation 1",0,true]],[[64,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,3,[],[[true,""]],[true,"Animation 1",18,true]],[[96,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,4,[],[[true,""]],[true,"Animation 1",18,true]],[[128,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,5,[],[[true,""]],[true,"Animation 1",18,true]],[[160,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,6,[],[[true,""]],[true,"Animation 1",18,true]],[[192,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,7,[],[[true,""]],[true,"Animation 1",18,true]],[[224,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,10,[],[[true,""]],[true,"Animation 1",18,true]],[[256,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,12,[],[[true,""]],[true,"Animation 1",18,true]],[[288,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,13,[],[[true,""]],[true,"Animation 1",18,true]],[[320,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,18,[],[[true,""]],[true,"Animation 1",18,true]],[[352,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,19,[],[[true,""]],[true,"Animation 1",18,true]],[[384,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,42,[],[[true,""]],[true,"Animation 1",18,true]],[[416,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,43,[],[[true,""]],[true,"Animation 1",18,true]],[[448,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,44,[],[[true,""]],[true,"Animation 1",18,true]],[[480,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,45,[],[[true,""]],[true,"Animation 1",18,true]],[[512,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,46,[],[[true,""]],[true,"Animation 1",18,true]],[[544,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,47,[],[[true,""]],[true,"Animation 1",18,true]],[[576,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,48,[],[[true,""]],[true,"Animation 1",18,true]],[[608,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,49,[],[[true,""]],[true,"Animation 1",18,true]],[[640,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,50,[],[[true,""]],[true,"Animation 1",18,true]],[[672,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,51,[],[[true,""]],[true,"Animation 1",18,true]],[[704,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,52,[],[[true,""]],[true,"Animation 1",18,true]],[[736,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,53,[],[[true,""]],[true,"Animation 1",18,true]],[[768,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,54,[],[[true,""]],[true,"Animation 1",18,true]],[[800,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,55,[],[[true,""]],[true,"Animation 1",18,true]],[[832,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,56,[],[[true,""]],[true,"Animation 1",18,true]],[[864,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,57,[],[[true,""]],[true,"Animation 1",18,true]],[[960,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,58,[],[[true,""]],[true,"Animation 1",18,true]],[[992,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,59,[],[[true,""]],[true,"Animation 1",18,true]],[[1024,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,60,[],[[true,""]],[true,"Animation 1",18,true]],[[1056,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,61,[],[[true,""]],[true,"Animation 1",18,true]],[[1088,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,62,[],[[true,""]],[true,"Animation 1",18,true]],[[1120,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,63,[],[[true,""]],[true,"Animation 1",18,true]],[[1152,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,64,[],[[true,""]],[true,"Animation 1",18,true]],[[1184,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,65,[],[[true,""]],[true,"Animation 1",18,true]],[[1280,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,66,[],[[true,""]],[true,"Animation 1",18,true]],[[1312,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,67,[],[[true,""]],[true,"Animation 1",18,true]],[[1344,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,68,[],[[true,""]],[true,"Animation 1",18,true]],[[1376,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,69,[],[[true,""]],[true,"Animation 1",18,true]],[[1408,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,70,[],[[true,""]],[true,"Animation 1",18,true]],[[1440,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,71,[],[[true,""]],[true,"Animation 1",18,true]],[[1536,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,72,[],[[true,""]],[true,"Animation 1",18,true]],[[1568,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,73,[],[[true,""]],[true,"Animation 1",18,true]],[[1600,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,74,[],[[true,""]],[true,"Animation 1",18,true]],[[1632,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,75,[],[[true,""]],[true,"Animation 1",18,true]],[[1664,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,76,[],[[true,""]],[true,"Animation 1",18,true]],[[1696,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,77,[],[[true,""]],[true,"Animation 1",18,true]],[[1728,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,78,[],[[true,""]],[true,"Animation 1",18,true]],[[1760,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,79,[],[[true,""]],[true,"Animation 1",18,true]],[[1792,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,80,[],[[true,""]],[true,"Animation 1",18,true]],[[1888,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,81,[],[[true,""]],[true,"Animation 1",18,true]],[[1920,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,82,[],[[true,""]],[true,"Animation 1",18,true]],[[1952,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,83,[],[[true,""]],[true,"Animation 1",18,true]],[[1984,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,84,[],[[true,""]],[true,"Animation 1",18,true]],[[2016,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,85,[],[[true,""]],[true,"Animation 1",18,true]],[[2048,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,86,[],[[true,""]],[true,"Animation 1",18,true]],[[2080,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,87,[],[[true,""]],[true,"Animation 1",18,true]],[[2112,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,88,[],[[true,""]],[true,"Animation 1",18,true]],[[2144,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,89,[],[[true,""]],[true,"Animation 1",18,true]],[[2176,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,90,[],[[true,""]],[true,"Animation 1",18,true]],[[2272,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,91,[],[[true,""]],[true,"Animation 1",18,true]],[[2304,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,92,[],[[true,""]],[true,"Animation 1",18,true]],[[2336,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,93,[],[[true,""]],[true,"Animation 1",18,true]],[[2368,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,94,[],[[true,""]],[true,"Animation 1",18,true]],[[2400,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,95,[],[[true,""]],[true,"Animation 1",18,true]],[[2432,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,96,[],[[true,""]],[true,"Animation 1",18,true]],[[2464,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,97,[],[[true,""]],[true,"Animation 1",18,true]],[[2496,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,98,[],[[true,""]],[true,"Animation 1",18,true]],[[2528,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,99,[],[[true,""]],[true,"Animation 1",18,true]],[[2560,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,100,[],[[true,""]],[true,"Animation 1",18,true]],[[2592,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,101,[],[[true,""]],[true,"Animation 1",18,true]],[[2624,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,102,[],[[true,""]],[true,"Animation 1",18,true]],[[2656,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,103,[],[[true,""]],[true,"Animation 1",18,true]],[[2688,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,104,[],[[true,""]],[true,"Animation 1",18,true]],[[2720,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,105,[],[[true,""]],[true,"Animation 1",18,true]],[[2752,480,0,96,64,0,0,[1,1,1,1],0,0,0,0,[]],9,106,[],[],[false,"Death_Pit",0,true]],[[2848,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,107,[],[[true,""]],[true,"Animation 1",18,true]],[[2880,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,108,[],[[true,""]],[true,"Animation 1",18,true]],[[2912,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,109,[],[[true,""]],[true,"Animation 1",18,true]],[[2944,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,110,[],[[true,""]],[true,"Animation 1",18,true]],[[2976,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,111,[],[[true,""]],[true,"Animation 1",18,true]],[[3008,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,112,[],[[true,""]],[true,"Animation 1",18,true]],[[3040,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,113,[],[[true,""]],[true,"Animation 1",18,true]],[[3072,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,114,[],[[true,""]],[true,"Animation 1",18,true]],[[3104,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,115,[],[[true,""]],[true,"Animation 1",18,true]],[[3136,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,116,[],[[true,""]],[true,"Animation 1",18,true]],[[3168,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,117,[],[[true,""]],[true,"Animation 1",18,true]],[[3200,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,118,[],[[true,""]],[true,"Animation 1",18,true]],[[3232,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,119,[],[[true,""]],[true,"Animation 1",18,true]],[[3264,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,120,[],[[true,""]],[true,"Animation 1",18,true]],[[3296,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,121,[],[[true,""]],[true,"Animation 1",18,true]],[[3328,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,122,[],[[true,""]],[true,"Animation 1",18,true]],[[3360,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,123,[],[[true,""]],[true,"Animation 1",18,true]],[[3392,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,124,[],[[true,""]],[true,"Animation 1",18,true]],[[3424,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,125,[],[[true,""]],[true,"Animation 1",18,true]],[[3456,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,126,[],[[true,""]],[true,"Animation 1",18,true]],[[3488,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,127,[],[[true,""]],[true,"Animation 1",18,true]],[[3520,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,128,[],[[true,""]],[true,"Animation 1",18,true]],[[3552,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,129,[],[[true,""]],[true,"Animation 1",18,true]],[[3584,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,130,[],[[true,""]],[true,"Animation 1",18,true]],[[3616,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,131,[],[[true,""]],[true,"Animation 1",18,true]],[[3648,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,132,[],[[true,""]],[true,"Animation 1",18,true]],[[3680,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,133,[],[[true,""]],[true,"Animation 1",18,true]],[[3712,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,134,[],[[true,""]],[true,"Animation 1",18,true]],[[3744,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,135,[],[[true,""]],[true,"Animation 1",18,true]],[[3776,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,136,[],[[true,""]],[true,"Animation 1",18,true]],[[3808,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,137,[],[[true,""]],[true,"Animation 1",18,true]],[[3840,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,138,[],[[true,""]],[true,"Animation 1",18,true]],[[3872,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,139,[],[[true,""]],[true,"Animation 1",18,true]],[[3904,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,140,[],[[true,""]],[true,"Animation 1",18,true]],[[3936,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,141,[],[[true,""]],[true,"Animation 1",18,true]],[[3968,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,142,[],[[true,""]],[true,"Animation 1",18,true]],[[4000,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,143,[],[[true,""]],[true,"Animation 1",18,true]],[[4032,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,144,[],[[true,""]],[true,"Animation 1",18,true]],[[4064,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,145,[],[[true,""]],[true,"Animation 1",18,true]],[[4096,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,146,[],[[true,""]],[true,"Animation 1",18,true]],[[4128,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,147,[],[[true,""]],[true,"Animation 1",18,true]],[[4160,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,148,[],[[true,""]],[true,"Animation 1",18,true]],[[4192,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,149,[],[[true,""]],[true,"Animation 1",18,true]],[[4224,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,150,[],[[true,""]],[true,"Animation 1",18,true]],[[4256,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,151,[],[[true,""]],[true,"Animation 1",18,true]],[[4288,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,152,[],[[true,""]],[true,"Animation 1",0,true]],[[4320,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,153,[],[[true,""]],[true,"Animation 1",0,true]],[[4320,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,154,[],[[true,""]],[true,"Animation 1",0,true]],[[4352,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,155,[],[[true,""]],[true,"Animation 1",0,true]],[[4352,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,156,[],[[true,""]],[true,"Animation 1",0,true]],[[4384,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,157,[],[[true,""]],[true,"Animation 1",0,true]],[[4384,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,158,[],[[true,""]],[true,"Animation 1",0,true]],[[4384,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,159,[],[[true,""]],[true,"Animation 1",0,true]],[[4352,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,160,[],[[true,""]],[true,"Animation 1",0,true]],[[4384,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,161,[],[[true,""]],[true,"Animation 1",0,true]],[[4480,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,162,[],[[true,""]],[true,"Animation 1",0,true]],[[4480,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,163,[],[[true,""]],[true,"Animation 1",0,true]],[[4512,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,164,[],[[true,""]],[true,"Animation 1",0,true]],[[4512,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,165,[],[[true,""]],[true,"Animation 1",0,true]],[[4480,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,166,[],[[true,""]],[true,"Animation 1",0,true]],[[4480,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,167,[],[[true,""]],[true,"Animation 1",0,true]],[[4512,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,168,[],[[true,""]],[true,"Animation 1",0,true]],[[4544,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,169,[],[[true,""]],[true,"Animation 1",0,true]],[[4576,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,170,[],[[true,""]],[true,"Animation 1",0,true]],[[4544,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,171,[],[[true,""]],[true,"Animation 1",0,true]],[[4288,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,172,[],[[true,""]],[true,"Animation 1",18,true]],[[4320,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,173,[],[[true,""]],[true,"Animation 1",18,true]],[[4352,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,174,[],[[true,""]],[true,"Animation 1",18,true]],[[4384,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,175,[],[[true,""]],[true,"Animation 1",18,true]],[[4416,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,176,[],[[true,""]],[true,"Animation 1",18,true]],[[4448,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,177,[],[[true,""]],[true,"Animation 1",18,true]],[[4480,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,178,[],[[true,""]],[true,"Animation 1",18,true]],[[4512,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,179,[],[[true,""]],[true,"Animation 1",18,true]],[[4544,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,180,[],[[true,""]],[true,"Animation 1",18,true]],[[4576,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,181,[],[[true,""]],[true,"Animation 1",18,true]],[[4608,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,182,[],[[true,""]],[true,"Animation 1",18,true]],[[4640,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,183,[],[[true,""]],[true,"Animation 1",18,true]],[[4672,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,184,[],[[true,""]],[true,"Animation 1",18,true]],[[4704,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,185,[],[[true,""]],[true,"Animation 1",18,true]],[[4736,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,186,[],[[true,""]],[true,"Animation 1",0,true]],[[4768,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,187,[],[[true,""]],[true,"Animation 1",0,true]],[[4800,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,188,[],[[true,""]],[true,"Animation 1",0,true]],[[4832,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,189,[],[[true,""]],[true,"Animation 1",0,true]],[[4864,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,190,[],[[true,""]],[true,"Animation 1",0,true]],[[4768,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,191,[],[[true,""]],[true,"Animation 1",0,true]],[[4800,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,192,[],[[true,""]],[true,"Animation 1",0,true]],[[4832,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,193,[],[[true,""]],[true,"Animation 1",0,true]],[[4864,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,194,[],[[true,""]],[true,"Animation 1",0,true]],[[4800,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,195,[],[[true,""]],[true,"Animation 1",0,true]],[[4832,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,196,[],[[true,""]],[true,"Animation 1",0,true]],[[4864,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,197,[],[[true,""]],[true,"Animation 1",0,true]],[[4832,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,198,[],[[true,""]],[true,"Animation 1",0,true]],[[4864,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,199,[],[[true,""]],[true,"Animation 1",0,true]],[[4960,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,200,[],[[true,""]],[true,"Animation 1",0,true]],[[4992,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,201,[],[[true,""]],[true,"Animation 1",0,true]],[[4960,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,202,[],[[true,""]],[true,"Animation 1",0,true]],[[4992,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,203,[],[[true,""]],[true,"Animation 1",0,true]],[[4960,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,204,[],[[true,""]],[true,"Animation 1",0,true]],[[4992,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,205,[],[[true,""]],[true,"Animation 1",0,true]],[[5024,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,206,[],[[true,""]],[true,"Animation 1",0,true]],[[5056,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,207,[],[[true,""]],[true,"Animation 1",0,true]],[[5024,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,208,[],[[true,""]],[true,"Animation 1",0,true]],[[4960,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,209,[],[[true,""]],[true,"Animation 1",0,true]],[[4992,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,210,[],[[true,""]],[true,"Animation 1",0,true]],[[4736,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,211,[],[[true,""]],[true,"Animation 1",18,true]],[[4768,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,212,[],[[true,""]],[true,"Animation 1",18,true]],[[4800,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,213,[],[[true,""]],[true,"Animation 1",18,true]],[[4832,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,214,[],[[true,""]],[true,"Animation 1",18,true]],[[4864,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,215,[],[[true,""]],[true,"Animation 1",18,true]],[[4960,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,218,[],[[true,""]],[true,"Animation 1",18,true]],[[4992,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,219,[],[[true,""]],[true,"Animation 1",18,true]],[[5024,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,220,[],[[true,""]],[true,"Animation 1",18,true]],[[5056,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,221,[],[[true,""]],[true,"Animation 1",18,true]],[[5088,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,222,[],[[true,""]],[true,"Animation 1",18,true]],[[5120,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,223,[],[[true,""]],[true,"Animation 1",18,true]],[[5152,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,224,[],[[true,""]],[true,"Animation 1",18,true]],[[5184,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,225,[],[[true,""]],[true,"Animation 1",18,true]],[[4896,480,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],9,216,[],[],[false,"Death_Pit",0,true]],[[5280,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,226,[],[[true,""]],[true,"Animation 1",18,true]],[[5312,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,227,[],[[true,""]],[true,"Animation 1",18,true]],[[5344,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,228,[],[[true,""]],[true,"Animation 1",18,true]],[[5376,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,229,[],[[true,""]],[true,"Animation 1",18,true]],[[5408,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,230,[],[[true,""]],[true,"Animation 1",18,true]],[[5440,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,231,[],[[true,""]],[true,"Animation 1",18,true]],[[5472,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,232,[],[[true,""]],[true,"Animation 1",18,true]],[[5504,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,233,[],[[true,""]],[true,"Animation 1",18,true]],[[5536,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,234,[],[[true,""]],[true,"Animation 1",18,true]],[[5568,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,235,[],[[true,""]],[true,"Animation 1",18,true]],[[5600,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,236,[],[[true,""]],[true,"Animation 1",18,true]],[[5632,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,237,[],[[true,""]],[true,"Animation 1",18,true]],[[5664,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,238,[],[[true,""]],[true,"Animation 1",18,true]],[[5696,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,239,[],[[true,""]],[true,"Animation 1",18,true]],[[5792,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,241,[],[[true,""]],[true,"Animation 1",0,true]],[[5824,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,242,[],[[true,""]],[true,"Animation 1",0,true]],[[5856,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,243,[],[[true,""]],[true,"Animation 1",0,true]],[[5888,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,244,[],[[true,""]],[true,"Animation 1",0,true]],[[5920,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,245,[],[[true,""]],[true,"Animation 1",0,true]],[[5952,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,246,[],[[true,""]],[true,"Animation 1",0,true]],[[5984,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,247,[],[[true,""]],[true,"Animation 1",0,true]],[[6016,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,248,[],[[true,""]],[true,"Animation 1",0,true]],[[6048,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,249,[],[[true,""]],[true,"Animation 1",0,true]],[[6048,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,250,[],[[true,""]],[true,"Animation 1",0,true]],[[6016,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,251,[],[[true,""]],[true,"Animation 1",0,true]],[[5984,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,252,[],[[true,""]],[true,"Animation 1",0,true]],[[5952,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,253,[],[[true,""]],[true,"Animation 1",0,true]],[[5920,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,254,[],[[true,""]],[true,"Animation 1",0,true]],[[5888,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,255,[],[[true,""]],[true,"Animation 1",0,true]],[[5856,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,256,[],[[true,""]],[true,"Animation 1",0,true]],[[5824,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,257,[],[[true,""]],[true,"Animation 1",0,true]],[[6048,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,258,[],[[true,""]],[true,"Animation 1",0,true]],[[6016,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,259,[],[[true,""]],[true,"Animation 1",0,true]],[[5984,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,260,[],[[true,""]],[true,"Animation 1",0,true]],[[5952,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,261,[],[[true,""]],[true,"Animation 1",0,true]],[[5920,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,262,[],[[true,""]],[true,"Animation 1",0,true]],[[5888,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,263,[],[[true,""]],[true,"Animation 1",0,true]],[[5856,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,264,[],[[true,""]],[true,"Animation 1",0,true]],[[6048,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,265,[],[[true,""]],[true,"Animation 1",0,true]],[[6016,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,266,[],[[true,""]],[true,"Animation 1",0,true]],[[5984,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,267,[],[[true,""]],[true,"Animation 1",0,true]],[[5952,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,268,[],[[true,""]],[true,"Animation 1",0,true]],[[5920,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,269,[],[[true,""]],[true,"Animation 1",0,true]],[[5888,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,270,[],[[true,""]],[true,"Animation 1",0,true]],[[6048,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,271,[],[[true,""]],[true,"Animation 1",0,true]],[[6016,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,272,[],[[true,""]],[true,"Animation 1",0,true]],[[5984,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,273,[],[[true,""]],[true,"Animation 1",0,true]],[[5952,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,274,[],[[true,""]],[true,"Animation 1",0,true]],[[5920,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,275,[],[[true,""]],[true,"Animation 1",0,true]],[[6048,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,276,[],[[true,""]],[true,"Animation 1",0,true]],[[6016,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,277,[],[[true,""]],[true,"Animation 1",0,true]],[[5984,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,278,[],[[true,""]],[true,"Animation 1",0,true]],[[5952,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,279,[],[[true,""]],[true,"Animation 1",0,true]],[[6048,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,280,[],[[true,""]],[true,"Animation 1",0,true]],[[6016,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,281,[],[[true,""]],[true,"Animation 1",0,true]],[[5984,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,282,[],[[true,""]],[true,"Animation 1",0,true]],[[6048,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,283,[],[[true,""]],[true,"Animation 1",0,true]],[[6016,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,284,[],[[true,""]],[true,"Animation 1",0,true]],[[6048,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,285,[],[[true,""]],[true,"Animation 1",0,true]],[[6080,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,286,[],[[true,""]],[true,"Animation 1",18,true]],[[6112,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,287,[],[[true,""]],[true,"Animation 1",18,true]],[[6144,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,288,[],[[true,""]],[true,"Animation 1",18,true]],[[6176,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,289,[],[[true,""]],[true,"Animation 1",18,true]],[[6208,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,290,[],[[true,""]],[true,"Animation 1",18,true]],[[6240,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,291,[],[[true,""]],[true,"Animation 1",18,true]],[[6272,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,292,[],[[true,""]],[true,"Animation 1",18,true]],[[6304,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,293,[],[[true,""]],[true,"Animation 1",18,true]],[[6368,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,294,[],[[true,""]],[true,"Animation 1",18,true]],[[6400,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,295,[],[[true,""]],[true,"Animation 1",18,true]],[[6432,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,296,[],[[true,""]],[true,"Animation 1",18,true]],[[5280,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,297,[],[[true,""]],[true,"Animation 1",1,true]],[[5312,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,298,[],[[true,""]],[true,"Animation 1",1,true]],[[5344,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,299,[],[[true,""]],[true,"Animation 1",1,true]],[[5376,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,300,[],[[true,""]],[true,"Animation 1",1,true]],[[5408,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,301,[],[[true,""]],[true,"Animation 1",1,true]],[[5440,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,302,[],[[true,""]],[true,"Animation 1",1,true]],[[5472,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,303,[],[[true,""]],[true,"Animation 1",1,true]],[[5504,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,304,[],[[true,""]],[true,"Animation 1",1,true]],[[5536,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,305,[],[[true,""]],[true,"Animation 1",1,true]],[[5568,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,306,[],[[true,""]],[true,"Animation 1",1,true]],[[5600,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,307,[],[[true,""]],[true,"Animation 1",1,true]],[[5632,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,308,[],[[true,""]],[true,"Animation 1",1,true]],[[5664,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,309,[],[[true,""]],[true,"Animation 1",1,true]],[[5696,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,310,[],[[true,""]],[true,"Animation 1",1,true]],[[4960,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,311,[],[[true,""]],[true,"Animation 1",1,true]],[[4992,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,312,[],[[true,""]],[true,"Animation 1",1,true]],[[5024,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,313,[],[[true,""]],[true,"Animation 1",1,true]],[[5056,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,314,[],[[true,""]],[true,"Animation 1",1,true]],[[5088,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,315,[],[[true,""]],[true,"Animation 1",1,true]],[[5120,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,316,[],[[true,""]],[true,"Animation 1",1,true]],[[5152,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,317,[],[[true,""]],[true,"Animation 1",1,true]],[[5184,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,318,[],[[true,""]],[true,"Animation 1",1,true]],[[2848,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,319,[],[[true,""]],[true,"Animation 1",1,true]],[[2880,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,320,[],[[true,""]],[true,"Animation 1",1,true]],[[2912,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,321,[],[[true,""]],[true,"Animation 1",1,true]],[[2944,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,322,[],[[true,""]],[true,"Animation 1",1,true]],[[2976,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,323,[],[[true,""]],[true,"Animation 1",1,true]],[[3008,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,324,[],[[true,""]],[true,"Animation 1",1,true]],[[3040,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,325,[],[[true,""]],[true,"Animation 1",1,true]],[[3072,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,326,[],[[true,""]],[true,"Animation 1",1,true]],[[3104,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,327,[],[[true,""]],[true,"Animation 1",1,true]],[[3136,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,328,[],[[true,""]],[true,"Animation 1",1,true]],[[3168,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,329,[],[[true,""]],[true,"Animation 1",1,true]],[[3200,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,330,[],[[true,""]],[true,"Animation 1",1,true]],[[3232,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,331,[],[[true,""]],[true,"Animation 1",1,true]],[[3264,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,332,[],[[true,""]],[true,"Animation 1",1,true]],[[3296,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,333,[],[[true,""]],[true,"Animation 1",1,true]],[[3328,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,334,[],[[true,""]],[true,"Animation 1",1,true]],[[3360,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,335,[],[[true,""]],[true,"Animation 1",1,true]],[[3392,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,336,[],[[true,""]],[true,"Animation 1",1,true]],[[3424,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,337,[],[[true,""]],[true,"Animation 1",1,true]],[[3456,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,338,[],[[true,""]],[true,"Animation 1",1,true]],[[3488,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,339,[],[[true,""]],[true,"Animation 1",1,true]],[[3520,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,340,[],[[true,""]],[true,"Animation 1",1,true]],[[3552,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,341,[],[[true,""]],[true,"Animation 1",1,true]],[[3584,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,342,[],[[true,""]],[true,"Animation 1",1,true]],[[3616,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,343,[],[[true,""]],[true,"Animation 1",1,true]],[[3648,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,344,[],[[true,""]],[true,"Animation 1",1,true]],[[3680,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,345,[],[[true,""]],[true,"Animation 1",1,true]],[[3712,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,346,[],[[true,""]],[true,"Animation 1",1,true]],[[3744,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,347,[],[[true,""]],[true,"Animation 1",1,true]],[[3776,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,348,[],[[true,""]],[true,"Animation 1",1,true]],[[3808,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,349,[],[[true,""]],[true,"Animation 1",1,true]],[[3840,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,350,[],[[true,""]],[true,"Animation 1",1,true]],[[3872,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,351,[],[[true,""]],[true,"Animation 1",1,true]],[[3904,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,352,[],[[true,""]],[true,"Animation 1",1,true]],[[3936,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,353,[],[[true,""]],[true,"Animation 1",1,true]],[[3968,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,354,[],[[true,""]],[true,"Animation 1",1,true]],[[4000,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,355,[],[[true,""]],[true,"Animation 1",1,true]],[[4032,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,356,[],[[true,""]],[true,"Animation 1",1,true]],[[4064,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,357,[],[[true,""]],[true,"Animation 1",1,true]],[[4096,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,358,[],[[true,""]],[true,"Animation 1",1,true]],[[4128,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,359,[],[[true,""]],[true,"Animation 1",1,true]],[[4160,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,360,[],[[true,""]],[true,"Animation 1",1,true]],[[4192,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,361,[],[[true,""]],[true,"Animation 1",1,true]],[[4224,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,362,[],[[true,""]],[true,"Animation 1",1,true]],[[4256,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,363,[],[[true,""]],[true,"Animation 1",1,true]],[[4288,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,364,[],[[true,""]],[true,"Animation 1",1,true]],[[4320,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,365,[],[[true,""]],[true,"Animation 1",1,true]],[[4352,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,366,[],[[true,""]],[true,"Animation 1",1,true]],[[4384,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,367,[],[[true,""]],[true,"Animation 1",1,true]],[[4416,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,368,[],[[true,""]],[true,"Animation 1",1,true]],[[4448,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,369,[],[[true,""]],[true,"Animation 1",1,true]],[[4480,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,370,[],[[true,""]],[true,"Animation 1",1,true]],[[4512,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,371,[],[[true,""]],[true,"Animation 1",1,true]],[[4544,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,372,[],[[true,""]],[true,"Animation 1",1,true]],[[4576,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,373,[],[[true,""]],[true,"Animation 1",1,true]],[[4608,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,374,[],[[true,""]],[true,"Animation 1",1,true]],[[4640,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,375,[],[[true,""]],[true,"Animation 1",1,true]],[[4672,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,376,[],[[true,""]],[true,"Animation 1",1,true]],[[4704,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,377,[],[[true,""]],[true,"Animation 1",1,true]],[[4736,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,378,[],[[true,""]],[true,"Animation 1",1,true]],[[4768,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,379,[],[[true,""]],[true,"Animation 1",1,true]],[[4800,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,380,[],[[true,""]],[true,"Animation 1",1,true]],[[4832,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,381,[],[[true,""]],[true,"Animation 1",1,true]],[[4864,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,382,[],[[true,""]],[true,"Animation 1",1,true]],[[2272,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,383,[],[[true,""]],[true,"Animation 1",1,true]],[[2304,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,384,[],[[true,""]],[true,"Animation 1",1,true]],[[2336,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,385,[],[[true,""]],[true,"Animation 1",1,true]],[[2368,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,386,[],[[true,""]],[true,"Animation 1",1,true]],[[2400,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,387,[],[[true,""]],[true,"Animation 1",1,true]],[[2432,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,388,[],[[true,""]],[true,"Animation 1",1,true]],[[2464,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,389,[],[[true,""]],[true,"Animation 1",1,true]],[[2496,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,390,[],[[true,""]],[true,"Animation 1",1,true]],[[2528,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,391,[],[[true,""]],[true,"Animation 1",1,true]],[[2560,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,392,[],[[true,""]],[true,"Animation 1",1,true]],[[2592,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,393,[],[[true,""]],[true,"Animation 1",1,true]],[[2624,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,394,[],[[true,""]],[true,"Animation 1",1,true]],[[2656,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,395,[],[[true,""]],[true,"Animation 1",1,true]],[[2688,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,396,[],[[true,""]],[true,"Animation 1",1,true]],[[2720,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,397,[],[[true,""]],[true,"Animation 1",1,true]],[[1888,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,398,[],[[true,""]],[true,"Animation 1",1,true]],[[1920,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,399,[],[[true,""]],[true,"Animation 1",1,true]],[[1952,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,400,[],[[true,""]],[true,"Animation 1",1,true]],[[1984,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,401,[],[[true,""]],[true,"Animation 1",1,true]],[[2016,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,402,[],[[true,""]],[true,"Animation 1",1,true]],[[2048,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,403,[],[[true,""]],[true,"Animation 1",1,true]],[[2080,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,404,[],[[true,""]],[true,"Animation 1",1,true]],[[2112,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,405,[],[[true,""]],[true,"Animation 1",1,true]],[[2144,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,406,[],[[true,""]],[true,"Animation 1",1,true]],[[2176,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,407,[],[[true,""]],[true,"Animation 1",1,true]],[[1536,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,408,[],[[true,""]],[true,"Animation 1",1,true]],[[1568,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,409,[],[[true,""]],[true,"Animation 1",1,true]],[[1600,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,410,[],[[true,""]],[true,"Animation 1",1,true]],[[1632,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,411,[],[[true,""]],[true,"Animation 1",1,true]],[[1664,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,412,[],[[true,""]],[true,"Animation 1",1,true]],[[1696,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,413,[],[[true,""]],[true,"Animation 1",1,true]],[[1728,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,414,[],[[true,""]],[true,"Animation 1",1,true]],[[1760,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,415,[],[[true,""]],[true,"Animation 1",1,true]],[[1792,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,416,[],[[true,""]],[true,"Animation 1",1,true]],[[1280,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,417,[],[[true,""]],[true,"Animation 1",1,true]],[[1312,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,418,[],[[true,""]],[true,"Animation 1",1,true]],[[1344,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,419,[],[[true,""]],[true,"Animation 1",1,true]],[[1376,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,420,[],[[true,""]],[true,"Animation 1",1,true]],[[1408,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,421,[],[[true,""]],[true,"Animation 1",1,true]],[[1440,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,422,[],[[true,""]],[true,"Animation 1",1,true]],[[960,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,40,[],[[true,""]],[true,"Animation 1",1,true]],[[992,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,423,[],[[true,""]],[true,"Animation 1",1,true]],[[1024,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,424,[],[[true,""]],[true,"Animation 1",1,true]],[[1056,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,425,[],[[true,""]],[true,"Animation 1",1,true]],[[1088,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,426,[],[[true,""]],[true,"Animation 1",1,true]],[[1120,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,427,[],[[true,""]],[true,"Animation 1",1,true]],[[1152,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,428,[],[[true,""]],[true,"Animation 1",1,true]],[[1184,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,429,[],[[true,""]],[true,"Animation 1",1,true]],[[0,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,430,[],[[true,""]],[true,"Animation 1",1,true]],[[32,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,431,[],[[true,""]],[true,"Animation 1",1,true]],[[64,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,432,[],[[true,""]],[true,"Animation 1",1,true]],[[96,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,433,[],[[true,""]],[true,"Animation 1",1,true]],[[128,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,434,[],[[true,""]],[true,"Animation 1",1,true]],[[160,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,435,[],[[true,""]],[true,"Animation 1",1,true]],[[192,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,436,[],[[true,""]],[true,"Animation 1",1,true]],[[224,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,437,[],[[true,""]],[true,"Animation 1",1,true]],[[256,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,438,[],[[true,""]],[true,"Animation 1",1,true]],[[288,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,439,[],[[true,""]],[true,"Animation 1",1,true]],[[320,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,440,[],[[true,""]],[true,"Animation 1",1,true]],[[352,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,441,[],[[true,""]],[true,"Animation 1",1,true]],[[384,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,442,[],[[true,""]],[true,"Animation 1",1,true]],[[416,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,443,[],[[true,""]],[true,"Animation 1",1,true]],[[448,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,444,[],[[true,""]],[true,"Animation 1",1,true]],[[480,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,445,[],[[true,""]],[true,"Animation 1",1,true]],[[512,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,446,[],[[true,""]],[true,"Animation 1",1,true]],[[544,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,447,[],[[true,""]],[true,"Animation 1",1,true]],[[576,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,448,[],[[true,""]],[true,"Animation 1",1,true]],[[608,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,449,[],[[true,""]],[true,"Animation 1",1,true]],[[640,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,450,[],[[true,""]],[true,"Animation 1",1,true]],[[672,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,451,[],[[true,""]],[true,"Animation 1",1,true]],[[704,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,452,[],[[true,""]],[true,"Animation 1",1,true]],[[736,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,453,[],[[true,""]],[true,"Animation 1",1,true]],[[768,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,454,[],[[true,""]],[true,"Animation 1",1,true]],[[800,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,455,[],[[true,""]],[true,"Animation 1",1,true]],[[832,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,456,[],[[true,""]],[true,"Animation 1",1,true]],[[864,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,457,[],[[true,""]],[true,"Animation 1",1,true]],[[1312,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,14,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[1466.8011857402585,355.7134387569583,0,32,64,0,0,[1,1,1,1],0,0,0,0,[]],6,16,[],[],[false,"GoLeft",0,true]],[[903.3284566641136,351.25731224860834,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],5,22,[],[],[false,"GoRight",0,true]],[[1507.7134387569583,353.4853755027833,0,32,64,0,0,[1,1,1,1],0,0,0,0,[]],5,24,[],[],[false,"GoRight",0,true]],[[1818.0584979888667,353.4853755027833,0,32,64,0,0,[1,1,1,1],0,0,0,0,[]],6,25,[],[],[false,"GoLeft",0,true]],[[1728,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,26,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[1664,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,30,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[3072,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,31,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[3136,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,32,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[4128,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,36,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[4064,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,37,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[3968,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,458,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[3904,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,459,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[5600,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,460,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[5536,416,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,461,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[4276,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],6,462,[],[],[false,"GoLeft",0,true]],[[5721.3158102374755,351.0640321781318,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],6,463,[],[],[false,"GoLeft",0,true]],[[5220.456126508349,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],5,464,[],[],[false,"GoRight",0,true]],[[704,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,465,[],[[true,""]],[true,"idle",0,true]],[[711.2722928551175,305.1831214346476,0,17.8547328563277,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,466,[],[],[false,"Animation 1",0,true]],[[640,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,467,[],[[true,""]],[true,"idle",0,true]],[[645.5759023816277,305.0313166713926,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,468,[],[],[false,"Animation 1",0,true]],[[2720,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,469,[],[[true,""]],[true,"idle",0,true]],[[2725.131581182307,179.50000849276685,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,470,[],[],[false,"Animation 1",0,true]],[[2752,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,471,[],[[true,""]],[true,"idle",0,true]],[[2784,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,472,[],[[true,""]],[true,"idle",0,true]],[[2757.131581182307,179.50000849276685,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,473,[],[],[false,"Animation 1",0,true]],[[2789.131581182307,179.50000849276685,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,474,[],[],[false,"Animation 1",0,true]],[[2688,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,475,[],[[true,""]],[true,"idle",0,true]],[[2656,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,476,[],[[true,""]],[true,"idle",0,true]],[[2624,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,477,[],[[true,""]],[true,"idle",0,true]],[[2592,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,478,[],[[true,""]],[true,"idle",0,true]],[[2560,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,479,[],[[true,""]],[true,"idle",0,true]],[[2528,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,480,[],[[true,""]],[true,"idle",0,true]],[[2496,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,481,[],[[true,""]],[true,"idle",0,true]],[[2432,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,482,[],[[true,""]],[true,"idle",0,true]],[[2693.131581182307,179.50000849276685,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,483,[],[],[false,"Animation 1",0,true]],[[2661.131581182307,179.50000849276685,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,484,[],[],[false,"Animation 1",0,true]],[[2629.131581182307,179.50000849276685,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,485,[],[],[false,"Animation 1",0,true]],[[2597.131581182307,178.65181325602188,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,486,[],[],[false,"Animation 1",0,true]],[[2565.5556788006793,178.2277156376494,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,487,[],[],[false,"Animation 1",0,true]],[[2533.131581182307,177.8036180192769,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,488,[],[],[false,"Animation 1",0,true]],[[2501.1315811823074,305.6467019004791,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,489,[],[],[false,"Animation 1",0,true]],[[2437.644739300538,305.2226042821066,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,490,[],[],[false,"Animation 1",0,true]],[[2912,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,491,[],[[true,""]],[true,"idle",0,true]],[[2917.979776419052,177.5576414006209,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,492,[],[],[false,"Animation 1",0,true]],[[2944,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,493,[],[[true,""]],[true,"idle",0,true]],[[2949.979776419052,177.5576414006209,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,494,[],[],[false,"Animation 1",0,true]],[[2976,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,495,[],[[true,""]],[true,"idle",0,true]],[[2981.5556788006793,177.55764140062084,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,496,[],[],[false,"Animation 1",0,true]],[[3200,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,501,[],[[true,""]],[true,"idle",0,true]],[[3206.8301345536506,305.7489942460306,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,502,[],[],[false,"Animation 1",0,true]],[[3744,288,0,32,32,0,0.0046423007670067795,[1,1,1,1],0,0,0,0,[]],11,499,[],[[true,""]],[true,"idle",0,true]],[[3749.133744080161,305.32489662765806,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,500,[],[],[false,"Animation 1",0,true]],[[3840,160,0,32,32,0,0.0046423007670067795,[1,1,1,1],0,0,0,0,[]],11,503,[],[[true,""]],[true,"idle",0,true]],[[3846.8301345536506,176.9007990092856,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,504,[],[],[false,"Animation 1",0,true]],[[3872,160,0,32,32,0,0.0046423007670067795,[1,1,1,1],0,0,0,0,[]],11,505,[],[[true,""]],[true,"idle",0,true]],[[3877.9819393169055,177.32489662765806,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,506,[],[],[false,"Animation 1",0,true]],[[3904,160,0,32,32,0,0.0046423007670067795,[1,1,1,1],0,0,0,0,[]],11,507,[],[[true,""]],[true,"idle",0,true]],[[3909.9819393169055,178.17309186440303,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,508,[],[],[false,"Animation 1",0,true]],[[4064,160,0,32,32,0,0.0046423007670067795,[1,1,1,1],0,0,0,0,[]],11,509,[],[[true,""]],[true,"idle",0,true]],[[4069.588291907532,177.52172033234473,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,510,[],[],[false,"Animation 1",0,true]],[[4160,160,0,32,32,0,0.0046423007670067795,[1,1,1,1],0,0,0,0,[]],11,511,[],[[true,""]],[true,"idle",0,true]],[[4166.012389525904,177.52172033234473,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,512,[],[],[false,"Animation 1",0,true]],[[4096,288,0,32,32,0,0.0046423007670067795,[1,1,1,1],0,0,0,0,[]],11,513,[],[[true,""]],[true,"idle",0,true]],[[4101.588291907532,305.0976227139722,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,514,[],[],[false,"Animation 1",0,true]],[[4128,288,0,32,32,0,0.0046423007670067795,[1,1,1,1],0,0,0,0,[]],11,515,[],[[true,""]],[true,"idle",0,true]],[[4133.588291907532,305.0976227139722,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,516,[],[],[false,"Animation 1",0,true]],[[5440,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,517,[],[[true,""]],[true,"idle",0,true]],[[5376,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,518,[],[[true,""]],[true,"idle",0,true]],[[5344,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,519,[],[[true,""]],[true,"idle",0,true]],[[5446.583358650457,305.47855053790454,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,520,[],[],[false,"Animation 1",0,true]],[[5381.342734634165,305.41166187285677,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,521,[],[],[false,"Animation 1",0,true]],[[5349.738191580185,305.59026634951914,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],12,522,[],[],[false,"Animation 1",0,true]],[[3360,416,0,54,31,0,0,[1,1,1,1],0.5,1,0,0,[]],16,551,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true],[0,0,0,true,false,false,true]],[true,"walk",0,true]],[[2464,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],19,533,[],[[true,""]],[true,"idle",0,true]],[[2470.1578974187682,305.9817390189933,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],18,539,[],[],[false,"Animation 1",0,true]],[[3456,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],19,530,[],[[true,""]],[true,"idle",0,true]],[[3462.8301345536506,177.32489662765806,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],18,547,[],[],[false,"Animation 1",0,true]],[[896,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,536,[],[[true,""]],[true,"Pipe",0,true]],[[1472,288,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,21,[],[[true,""]],[true,"Pipe",0,true]],[[1472,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,38,[],[[true,""]],[true,"Pipe",1,true]],[[1248,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,537,[],[[true,""]],[true,"Animation 1",18,true]],[[1216,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,538,[],[[true,""]],[true,"Animation 1",18,true]],[[928,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,555,[],[[true,""]],[true,"Animation 1",18,true]],[[896,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,556,[],[[true,""]],[true,"Animation 1",18,true]],[[896,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,557,[],[[true,""]],[true,"Animation 1",1,true]],[[928,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,558,[],[[true,""]],[true,"Animation 1",1,true]],[[1472,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,39,[],[[true,""]],[true,"Animation 1",1,true]],[[1504,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,559,[],[[true,""]],[true,"Animation 1",1,true]],[[1504,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,560,[],[[true,""]],[true,"Animation 1",18,true]],[[1472,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,561,[],[[true,""]],[true,"Animation 1",18,true]],[[1248,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,540,[],[[true,""]],[true,"Animation 1",1,true]],[[1216,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,550,[],[[true,""]],[true,"Animation 1",1,true]],[[5728,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,240,[],[[true,""]],[true,"Pipe",0,true]],[[6368,32,0,70,70,0,0,[1,1,1,1],1,0,0,0,[]],21,562,[0],[],[true,"Animation 1",0,true]],[[6368,96,0,64,288,0,0,[1,1,1,1],1,0,0,0,[]],21,563,[0],[],[true,"Animation 1",1,true]],[[1824,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,33,[],[[true,""]],[true,"Pipe",1,true]],[[1824,288,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],22,554,[],[[true,""]],[true,"Pipe",0,true]],[[1184,320,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,565,[],[[true,""]],[true,"Pipe",0,true]],[[1184,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,566,[],[[true,""]],[true,"Pipe",1,true]],[[1191.6327818416707,351.5788471494153,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],5,567,[],[],[false,"GoRight",0,true]],[[1830,238,0,50.796459768613204,52.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],23,568,[],[],[false,"Animation 1",0,true]],[[1856,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,598,[],[[true,""]],[true,"Animation 1",18,true]],[[1824,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,599,[],[[true,""]],[true,"Animation 1",18,true]],[[1824,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,600,[],[[true,""]],[true,"Animation 1",1,true]],[[1856,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,601,[],[[true,""]],[true,"Animation 1",1,true]],[[6336,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,602,[],[[true,""]],[true,"Animation 1",18,true]],[[5920,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,603,[],[[true,""]],[true,"Animation 1",18,true]],[[5952,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,604,[],[[true,""]],[true,"Animation 1",18,true]],[[5984,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,605,[],[[true,""]],[true,"Animation 1",18,true]],[[6016,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,606,[],[[true,""]],[true,"Animation 1",18,true]],[[6048,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,607,[],[[true,""]],[true,"Animation 1",18,true]],[[5760,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,608,[],[[true,""]],[true,"Animation 1",18,true]],[[5792,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,609,[],[[true,""]],[true,"Animation 1",18,true]],[[5824,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,610,[],[[true,""]],[true,"Animation 1",18,true]],[[5856,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,611,[],[[true,""]],[true,"Animation 1",18,true]],[[5888,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,612,[],[[true,""]],[true,"Animation 1",18,true]],[[5728,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,613,[],[[true,""]],[true,"Animation 1",18,true]],[[5216,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,614,[],[[true,""]],[true,"Animation 1",18,true]],[[5248,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,615,[],[[true,""]],[true,"Animation 1",18,true]],[[5216,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,616,[],[[true,""]],[true,"Animation 1",1,true]],[[5248,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,617,[],[[true,""]],[true,"Animation 1",1,true]],[[6048,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,618,[],[[true,""]],[true,"Animation 1",1,true]],[[6080,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,619,[],[[true,""]],[true,"Animation 1",1,true]],[[6112,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,620,[],[[true,""]],[true,"Animation 1",1,true]],[[6144,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,621,[],[[true,""]],[true,"Animation 1",1,true]],[[6176,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,622,[],[[true,""]],[true,"Animation 1",1,true]],[[6208,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,623,[],[[true,""]],[true,"Animation 1",1,true]],[[6240,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,624,[],[[true,""]],[true,"Animation 1",1,true]],[[6272,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,625,[],[[true,""]],[true,"Animation 1",1,true]],[[6304,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,626,[],[[true,""]],[true,"Animation 1",1,true]],[[6336,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,627,[],[[true,""]],[true,"Animation 1",1,true]],[[6368,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,628,[],[[true,""]],[true,"Animation 1",1,true]],[[6400,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,629,[],[[true,""]],[true,"Animation 1",1,true]],[[6432,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,630,[],[[true,""]],[true,"Animation 1",1,true]],[[6464,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,631,[],[[true,""]],[true,"Animation 1",1,true]],[[5728,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,632,[],[[true,""]],[true,"Animation 1",1,true]],[[5760,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,633,[],[[true,""]],[true,"Animation 1",1,true]],[[5792,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,634,[],[[true,""]],[true,"Animation 1",1,true]],[[5824,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,635,[],[[true,""]],[true,"Animation 1",1,true]],[[5856,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,636,[],[[true,""]],[true,"Animation 1",1,true]],[[5888,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,637,[],[[true,""]],[true,"Animation 1",1,true]],[[5920,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,638,[],[[true,""]],[true,"Animation 1",1,true]],[[5952,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,639,[],[[true,""]],[true,"Animation 1",1,true]],[[5984,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,640,[],[[true,""]],[true,"Animation 1",1,true]],[[6016,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,641,[],[[true,""]],[true,"Animation 1",1,true]],[[6496,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,642,[],[[true,""]],[true,"Animation 1",1,true]],[[6528,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,643,[],[[true,""]],[true,"Animation 1",1,true]],[[6464,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,644,[],[[true,""]],[true,"Animation 1",18,true]],[[6496,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,645,[],[[true,""]],[true,"Animation 1",18,true]],[[6528,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,646,[],[[true,""]],[true,"Animation 1",18,true]],[[6560,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,647,[],[[true,""]],[true,"Animation 1",18,true]],[[6592,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,648,[],[[true,""]],[true,"Animation 1",18,true]],[[6624,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,649,[],[[true,""]],[true,"Animation 1",18,true]],[[6656,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,650,[],[[true,""]],[true,"Animation 1",18,true]],[[6688,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,651,[],[[true,""]],[true,"Animation 1",18,true]],[[6720,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,652,[],[[true,""]],[true,"Animation 1",18,true]],[[6752,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,653,[],[[true,""]],[true,"Animation 1",18,true]],[[6784,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,654,[],[[true,""]],[true,"Animation 1",18,true]],[[6816,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,655,[],[[true,""]],[true,"Animation 1",18,true]],[[6848,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,656,[],[[true,""]],[true,"Animation 1",18,true]],[[6560,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,657,[],[[true,""]],[true,"Animation 1",1,true]],[[6592,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,658,[],[[true,""]],[true,"Animation 1",1,true]],[[6624,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,659,[],[[true,""]],[true,"Animation 1",1,true]],[[6656,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,660,[],[[true,""]],[true,"Animation 1",1,true]],[[6688,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,661,[],[[true,""]],[true,"Animation 1",1,true]],[[6720,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,662,[],[[true,""]],[true,"Animation 1",1,true]],[[6752,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,663,[],[[true,""]],[true,"Animation 1",1,true]],[[6784,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,664,[],[[true,""]],[true,"Animation 1",1,true]],[[6816,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,665,[],[[true,""]],[true,"Animation 1",1,true]],[[6848,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],0,666,[],[[true,""]],[true,"Animation 1",1,true]],[[6336,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,667,[],[[true,""]],[true,"Animation 1",0,true]],[[6464,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,670,[],[],[true,"Animation 1",11,true]],[[6560,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,672,[],[],[true,"Animation 1",0,true]],[[6528,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,673,[],[],[true,"Animation 1",0,true]],[[6560,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,683,[],[],[true,"Animation 1",7,true]],[[6528,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,684,[],[],[true,"Animation 1",1,true]],[[6496,288,0,32,64,0,0,[1,1,1,1],0,0,0,0,[]],26,685,[],[],[true,"Animation 1",6,true]],[[6496,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,686,[],[],[true,"Animation 1",6,true]],[[6528,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,687,[],[],[true,"Animation 1",2,true]],[[6560,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,688,[],[],[true,"Animation 1",7,true]],[[6560,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,689,[],[],[true,"Animation 1",11,true]],[[6496,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,690,[],[],[true,"Animation 1",11,true]],[[6496,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,671,[],[],[true,"Animation 1",11,true]],[[6528,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,678,[],[],[true,"Animation 1",11,true]],[[6560,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,681,[],[],[true,"Animation 1",11,true]],[[6592,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,691,[],[],[true,"Animation 1",11,true]],[[275,87,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,695,[],[],[true,"Animation 1",0,true]],[[621,56,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,697,[],[],[true,"Animation 1",0,true]],[[880,102,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,698,[],[],[true,"Animation 1",0,true]],[[908,104,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,699,[],[],[true,"Animation 1",0,true]],[[944,104,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,700,[],[],[true,"Animation 1",0,true]],[[1164,69,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,701,[],[],[true,"Animation 1",0,true]],[[1201,68,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,702,[],[],[true,"Animation 1",0,true]],[[1800,73,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,703,[],[],[true,"Animation 1",0,true]],[[2154,69,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,704,[],[],[true,"Animation 1",0,true]],[[2409,54,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,705,[],[],[true,"Animation 1",0,true]],[[2442,53,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,706,[],[],[true,"Animation 1",0,true]],[[2473,49,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,707,[],[],[true,"Animation 1",0,true]],[[2697,46,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,708,[],[],[true,"Animation 1",0,true]],[[2735,46,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,709,[],[],[true,"Animation 1",0,true]],[[3307,56,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,710,[],[],[true,"Animation 1",0,true]],[[3653,68,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,711,[],[],[true,"Animation 1",0,true]],[[3927,52,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,712,[],[],[true,"Animation 1",0,true]],[[3976,52,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,713,[],[],[true,"Animation 1",0,true]],[[4021,52,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,714,[],[],[true,"Animation 1",0,true]],[[4219,48,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,715,[],[],[true,"Animation 1",0,true]],[[4265,52,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,716,[],[],[true,"Animation 1",0,true]],[[4894,98,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,717,[],[],[true,"Animation 1",0,true]],[[5208,61,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,718,[],[],[true,"Animation 1",0,true]],[[5489,80,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,719,[],[],[true,"Animation 1",0,true]],[[5533,80,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,720,[],[],[true,"Animation 1",0,true]],[[5553,80,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,721,[],[],[true,"Animation 1",0,true]],[[5762,39,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,722,[],[],[true,"Animation 1",0,true]],[[5806,40,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,723,[],[],[true,"Animation 1",0,true]],[[6400,71,0,67,54,0,0,[1,1,1,1],0,0,0,0,[]],27,724,[],[],[true,"Animation 1",0,true]],[[6592,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,726,[],[[true,""]],[true,"idle",0,true]],[[6592,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],11,727,[],[[true,""]],[true,"idle",0,true]],[[6485.193887651199,163.9139318997907,0,70,70,0,0,[1,1,1,1],0.5,0.5,0,0,[]],30,725,[],[],[false,"Animation 1",0,true]],[[6433.262286086251,237.86001673683558,0,70,70,0,0,[1,1,1,1],0.5,0.5,0,0,[]],31,730,[],[],[false,"Animation 1",0,true]],[[6502.692579482866,83.19415990210042,0,70,70,0,0,[1,1,1,1],0.5,0.5,0,0,[]],32,728,[],[],[false,"Animation 1",0,true]],[[6613.329469773406,139.07707897742443,0,70,70,0,0,[1,1,1,1],0.5,0.5,0,0,[]],33,729,[],[],[false,"Animation 1",0,true]],[[6661.309753827977,234.4731731565129,0,70,70,0,0,[1,1,1,1],0.5,0.5,0,0,[]],34,731,[],[],[false,"Animation 1",0,true]],[[704,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,747,[],[[true,""]],[true,"Animation 1",0,true]],[[736,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,748,[],[[true,""]],[true,"Animation 1",0,true]],[[768,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,749,[],[[true,""]],[true,"Animation 1",0,true]],[[800,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,750,[],[[true,""]],[true,"Animation 1",0,true]],[[832,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,751,[],[[true,""]],[true,"Animation 1",0,true]],[[864,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,752,[],[[true,""]],[true,"Animation 1",0,true]],[[896,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,753,[],[[true,""]],[true,"Animation 1",0,true]],[[928,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,754,[],[[true,""]],[true,"Animation 1",0,true]],[[960,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,755,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,756,[],[[true,""]],[true,"Animation 1",0,true]],[[992,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,757,[],[[true,""]],[true,"Animation 1",0,true]],[[1056,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,758,[],[[true,""]],[true,"Animation 1",0,true]],[[1088,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,759,[],[[true,""]],[true,"Animation 1",0,true]],[[1120,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,760,[],[[true,""]],[true,"Animation 1",0,true]],[[1152,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,761,[],[[true,""]],[true,"Animation 1",0,true]],[[1152,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,762,[],[[true,""]],[true,"Animation 1",0,true]],[[1184,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,763,[],[[true,""]],[true,"Animation 1",0,true]],[[1184,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,764,[],[[true,""]],[true,"Animation 1",0,true]],[[672,960,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,732,[],[[true,""]],[true,"Animation 1",0,true]],[[672,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,733,[],[[true,""]],[true,"Animation 1",0,true]],[[704,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,746,[],[[true,""]],[true,"Animation 1",0,true]],[[736,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,791,[],[[true,""]],[true,"Animation 1",0,true]],[[768,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,792,[],[[true,""]],[true,"Animation 1",0,true]],[[800,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,793,[],[[true,""]],[true,"Animation 1",0,true]],[[832,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,794,[],[[true,""]],[true,"Animation 1",0,true]],[[864,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,795,[],[[true,""]],[true,"Animation 1",0,true]],[[896,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,796,[],[[true,""]],[true,"Animation 1",0,true]],[[928,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,797,[],[[true,""]],[true,"Animation 1",0,true]],[[960,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,798,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,799,[],[[true,""]],[true,"Animation 1",0,true]],[[992,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,800,[],[[true,""]],[true,"Animation 1",0,true]],[[1056,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,801,[],[[true,""]],[true,"Animation 1",0,true]],[[1088,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,802,[],[[true,""]],[true,"Animation 1",0,true]],[[1120,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,803,[],[[true,""]],[true,"Animation 1",0,true]],[[1152,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,804,[],[[true,""]],[true,"Animation 1",0,true]],[[1152,928,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],35,805,[],[[true,""]],[true,"Animation 1",0,true]],[[672,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,734,[],[[true,""]],[true,"idle",0,true]],[[672,672,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,735,[],[[true,""]],[true,"idle",0,true]],[[672,640,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,736,[],[[true,""]],[true,"idle",0,true]],[[672,704,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,737,[],[[true,""]],[true,"idle",0,true]],[[672,768,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,738,[],[[true,""]],[true,"idle",0,true]],[[672,736,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,739,[],[[true,""]],[true,"idle",0,true]],[[672,800,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,740,[],[[true,""]],[true,"idle",0,true]],[[672,864,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,741,[],[[true,""]],[true,"idle",0,true]],[[672,832,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,742,[],[[true,""]],[true,"idle",0,true]],[[672,832,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,743,[],[[true,""]],[true,"idle",0,true]],[[672,896,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,806,[],[[true,""]],[true,"idle",0,true]],[[672,864,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,807,[],[[true,""]],[true,"idle",0,true]],[[800,896,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,744,[],[[true,""]],[true,"idle",0,true]],[[832,896,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,745,[],[[true,""]],[true,"idle",0,true]],[[864,896,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,775,[],[[true,""]],[true,"idle",0,true]],[[896,896,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,776,[],[[true,""]],[true,"idle",0,true]],[[928,896,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,777,[],[[true,""]],[true,"idle",0,true]],[[960,896,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,778,[],[[true,""]],[true,"idle",0,true]],[[992,896,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,779,[],[[true,""]],[true,"idle",0,true]],[[800,864,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,780,[],[[true,""]],[true,"idle",0,true]],[[832,864,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,781,[],[[true,""]],[true,"idle",0,true]],[[864,864,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,782,[],[[true,""]],[true,"idle",0,true]],[[896,864,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,783,[],[[true,""]],[true,"idle",0,true]],[[928,864,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,784,[],[[true,""]],[true,"idle",0,true]],[[960,864,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,785,[],[[true,""]],[true,"idle",0,true]],[[992,864,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,786,[],[[true,""]],[true,"idle",0,true]],[[800,832,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,787,[],[[true,""]],[true,"idle",0,true]],[[832,832,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,788,[],[[true,""]],[true,"idle",0,true]],[[864,832,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,789,[],[[true,""]],[true,"idle",0,true]],[[896,832,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,790,[],[[true,""]],[true,"idle",0,true]],[[928,832,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,808,[],[[true,""]],[true,"idle",0,true]],[[960,832,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,809,[],[[true,""]],[true,"idle",0,true]],[[992,832,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,810,[],[[true,""]],[true,"idle",0,true]],[[800,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,811,[],[[true,""]],[true,"idle",0,true]],[[832,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,812,[],[[true,""]],[true,"idle",0,true]],[[864,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,813,[],[[true,""]],[true,"idle",0,true]],[[896,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,814,[],[[true,""]],[true,"idle",0,true]],[[928,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,815,[],[[true,""]],[true,"idle",0,true]],[[960,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,816,[],[[true,""]],[true,"idle",0,true]],[[992,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,817,[],[[true,""]],[true,"idle",0,true]],[[1088,928,0,64,96,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],22,818,[],[[true,""]],[true,"Pipe",0,true]],[[1152,864,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,765,[],[[true,""]],[true,"Pipe",1,true]],[[1152,800,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,766,[],[[true,""]],[true,"Pipe",1,true]],[[1152,736,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,767,[],[[true,""]],[true,"Pipe",1,true]],[[1152,672,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,768,[],[[true,""]],[true,"Pipe",1,true]],[[1152,608,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,769,[],[[true,""]],[true,"Pipe",1,true]],[[800,800,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,771,[],[],[true,"Coin",0,true]],[[832,800,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,772,[],[],[true,"Coin",0,true]],[[864,800,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,773,[],[],[true,"Coin",0,true]],[[896,800,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,774,[],[],[true,"Coin",0,true]],[[928,800,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,819,[],[],[true,"Coin",0,true]],[[960,800,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,820,[],[],[true,"Coin",0,true]],[[992,800,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,821,[],[],[true,"Coin",0,true]],[[992,736,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,822,[],[],[true,"Coin",0,true]],[[960,736,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,823,[],[],[true,"Coin",0,true]],[[928,736,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,824,[],[],[true,"Coin",0,true]],[[864,736,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,825,[],[],[true,"Coin",0,true]],[[896,736,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,826,[],[],[true,"Coin",0,true]],[[832,736,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,827,[],[],[true,"Coin",0,true]],[[800,736,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,828,[],[],[true,"Coin",0,true]],[[832,672,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,829,[],[],[true,"Coin",0,true]],[[896,672,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,830,[],[],[true,"Coin",0,true]],[[864,672,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,831,[],[],[true,"Coin",0,true]],[[928,672,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,832,[],[],[true,"Coin",0,true]],[[960,672,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],38,833,[],[],[true,"Coin",0,true]],[[5216,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],22,217,[],[[true,""]],[true,"Pipe",0,true]],[[-32,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,835,[],[[true,""]],[true,"idle",0,true]],[[-32,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,836,[],[[true,""]],[true,"idle",0,true]],[[-32,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,837,[],[[true,""]],[true,"idle",0,true]],[[-32,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,838,[],[[true,""]],[true,"idle",0,true]],[[-32,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,839,[],[[true,""]],[true,"idle",0,true]],[[-32,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,840,[],[[true,""]],[true,"idle",0,true]],[[-32,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,841,[],[[true,""]],[true,"idle",0,true]],[[-32,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,842,[],[[true,""]],[true,"idle",0,true]],[[-32,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,843,[],[[true,""]],[true,"idle",0,true]],[[-32,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,844,[],[[true,""]],[true,"idle",0,true]],[[-32,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,845,[],[[true,""]],[true,"idle",0,true]],[[-32,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,846,[],[[true,""]],[true,"idle",0,true]],[[-32,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],36,847,[],[[true,""]],[true,"idle",0,true]],[[384,672,0,10.971428571428572,11.885714285714286,0,0,[1,1,1,1],-0.9166666666666666,-0.8461538461538461,0,0,[]],41,848,[],[[400,0,1000,true,true,false,true]],[true,"Animation 1",0,true]],[[192,0,0,30.659419433511772,30.659419433511772,0,0,[1,1,1,1],0,0,0,0,[]],42,553,[1],[[true]],[false,"Animation 1",0,false]],[[942.0413223140496,793.909090909091,0,544,384,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,849,[],[],[false,"Animation 1",0,true]],[[1053.4545454545453,866.9421487603306,0,65.67249282646458,65.25273981533795,0,0,[1,1,1,1],0,0,0,0,[]],23,850,[],[],[false,"Animation 1",0,true]],[[2560,160,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,851,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[2624,160,0,32,32,0,0,[1,1,1,1],0.48,1,0,0,[]],4,852,["left",0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"idle",0,true]],[[2464,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],40,853,[0],[],[true,"Animation 1",0,true]],[[2464,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],17,854,[0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"moving",0,true]],[[3456,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],17,855,[0],[[100,1500,1500,650,1500,1000,false,0,false,true]],[true,"moving",0,true]],[[3456,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],40,856,[0],[],[true,"Animation 1",0,true]],[[3232,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],44,531,[],[[true,""]],[true,"idle",0,true]],[[3239.206611570248,305.058720074889,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],45,857,[],[],[false,"Animation 1",0,true]],[[3232.7314049586766,255.28925619834706,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],28,858,[0],[[50,0,500,true,true,false,true]],[true,"Animation 1",0,true]],[[512,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],46,34,[],[[true,""]],[true,"idle",0,true]],[[517.9240721400719,305.3795204009044,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],47,523,[],[],[false,"Animation 1",0,true]],[[704.2314049586778,160.82644628099175,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],46,524,[],[[true,""]],[true,"idle",0,true]],[[710.1554770987497,178.44824611845044,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],47,525,[],[],[false,"Animation 1",0,true]],[[736,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],46,526,[],[[true,""]],[true,"idle",0,true]],[[741.2855286177763,305.3332843412936,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],47,527,[],[],[false,"Animation 1",0,true]],[[3008,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],46,528,[],[[true,""]],[true,"idle",0,true]],[[3013.922350042493,177.62179983745864,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],47,529,[],[],[false,"Animation 1",0,true]],[[3456,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],46,532,[],[[true,""]],[true,"idle",0,true]],[[3461.888956893761,305.47069196964634,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],47,534,[],[],[false,"Animation 1",0,true]],[[3360,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],46,541,[],[[true,""]],[true,"idle",0,true]],[[3365.025230496533,305.72841609233126,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],47,542,[],[],[false,"Animation 1",0,true]],[[3552,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],46,543,[],[[true,""]],[true,"idle",0,true]],[[3558.13176196793,305.50114217864547,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],47,544,[],[],[false,"Animation 1",0,true]],[[4096,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],46,545,[],[[true,""]],[true,"idle",0,true]],[[4102.192152775799,178.01544724683197,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],47,546,[],[],[false,"Animation 1",0,true]],[[4128,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],46,548,[],[[true,""]],[true,"idle",0,true]],[[4133.859140251815,177.42497613277195,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],47,549,[],[],[false,"Animation 1",0,true]],[[5408,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],46,859,[],[[true,""]],[true,"idle",0,true]],[[5414.575902381627,305.48673096115766,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],47,860,[],[],[false,"Animation 1",0,true]],[[2048,257,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],48,497,[0],[[true,""]],[true,"idle",0,true]],[[2054,276,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],49,498,[],[],[false,"Animation 1",0,true]],[[672,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],19,535,[],[[true,""]],[true,"idle",0,true]],[[677.3622183696417,305.55784084118335,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],18,552,[],[],[false,"Animation 1",0,true]],[[3008,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],46,564,[],[[true,""]],[true,"idle",0,true]],[[3013.583761645051,306.12206350170464,0,20.823416184935013,15.856045600461954,0,0,[1,1,1,1],0,0,0,0,[]],47,696,[],[],[false,"Animation 1",0,true]]],[],0],["Animation",2,957401150866585,true,[255,255,255],true,1,1,1,false,false,1,0,0,[[[6592,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,675,[],[],[true,"Animation 1",7,true]],[[6592,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,676,[],[],[true,"Animation 1",5,true]],[[6560,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,677,[],[],[true,"Animation 1",4,true]],[[6560,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],26,682,[],[],[true,"Animation 1",1,true]]],[],0],["GUI",3,453944656906461,true,[255,255,255],true,0,0,1,false,false,1,0,0,[[[0,0,0,200,30,0,0,[1,1,1,1],0,0,0,0,[]],7,20,[],[],["Score: 0",true,"Arial",12,0,true,false,[1,1,1],0,0,0,true,0]],[[384,0,0,200,30,0,0,[1,1,1,1],0,0,0,0,[]],10,27,[],[],["Text",true,"Arial",12,0,false,false,[1,1,1],0,0,0,true,0]]],[],0]],[],[]]],[["Event sheet 1",[[1,"MarioHealth",0,1,false,false,157993794011056,false],[1,"GameScore",0,0,false,false,689690674891878,false],[1,"GameTime",0,300,false,false,244024672221495,false],[0,[true,"System"],false,null,183286837544116,1,[[-1,10,null,0,false,false,false,0,false,[[1,[0]]]]],[],[[0,null,false,null,295338618969888,2,[[-1,11,null,1,false,false,false,362911703769900,null]],[[-1,12,null,169590834128244,null,[[11,"MarioHealth"],[7,[1]]]]]],[0,null,false,null,676606708672079,3,[[-1,13,null,0,false,false,false,662068156448986,null]],[[2,14,null,110421275743657,null,[[0,[2,[1,1,15,false]]],[0,[2,[1,1,16,false]]]]],[10,17,null,370568240270626,null,[[7,[3,[3,"GameTime"]]]]],[-1,18,null,500993205020855,null,[[11,"GameTime"],[7,[4,[4,19]]]]]]],[0,null,false,null,734496135459591,4,[[-1,20,null,0,false,false,false,442533543529517,null,[[11,"MarioHealth"],[8,0],[7,[1]]]]],[[1,21,null,478012405074611,null,[[10,6],[3,1]]]]],[0,null,false,null,228431766383826,5,[[-1,20,null,0,false,false,false,381139739134866,null,[[11,"MarioHealth"],[8,0],[7,[5]]]]],[[1,22,null,288465581376953,null,[[1,[6]],[3,1]]],[1,21,null,896149472634276,null,[[10,6],[3,0]]]]],[0,null,false,null,157872275040081,6,[[1,23,null,0,false,true,false,692982160335555,null,[[4,43]]],[-1,13,null,0,false,false,false,196089323706434,null]],[[-1,24,null,420109041177041,null,[[4,42]]],[42,25,null,253420644634402,null,[[0,[2,[1,1,15,false]]]]],[42,26,null,931402132264156,null,[[0,[7]]]],[-1,27,null,651707678727649,null,[[0,[8]],[0,[9]]]]]],[0,null,false,null,442425926118528,7,[[1,23,null,0,false,false,false,134718159781580,null,[[4,43]]],[-1,13,null,0,false,false,false,967983612715063,null]],[[42,25,null,333784280316788,null,[[0,[10]]]],[42,26,null,718869709706870,null,[[0,[11]]]],[-1,27,null,100654461726742,null,[[0,[9]],[0,[12]]]]]]]],[0,[true,"Player"],false,null,897647910157319,8,[[-1,10,null,0,false,false,false,0,false,[[1,[13]]]]],[],[[0,null,false,null,665840576042136,9,[[3,28,null,1,false,false,false,607300591254033,null,[[9,37]]]],[[1,29,null,668342329142074,null,[[10,1],[7,[14]]]]]],[0,null,false,null,154813272176989,10,[[3,28,null,1,false,false,false,853970960323810,null,[[9,39]]]],[[1,29,null,806242430992659,null,[[10,1],[7,[15]]]]]],[0,null,false,null,269342437145349,11,[[3,28,null,1,false,false,false,439432285008141,null,[[9,38]]],[1,30,"Platform",0,false,false,false,435673305157878,null]],[[39,31,null,520538085742252,null,[[2,["jump",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,646588298075002,12,[[3,32,null,0,false,false,false,587376909052991,null,[[9,16]]]],[[1,33,"Platform",878014590000177,null,[[0,[17]]]]]],[0,null,false,null,405314492578663,13,[[3,32,null,0,false,true,false,327926252878349,null,[[9,16]]]],[[1,33,"Platform",477026572970774,null,[[0,[18]]]]]],[0,null,false,null,402638550794836,14,[[1,23,null,0,false,false,false,180397472169773,null,[[4,23]]],[3,32,null,0,false,false,false,142717226541642,null,[[9,40]]]],[[1,29,null,509328243675110,null,[[10,0],[7,[19]]]]]],[0,null,false,null,893775916600680,15,[[1,23,null,0,false,false,false,896817179769353,null,[[4,43]]],[1,23,null,0,false,false,false,798311388151256,null,[[4,23]]],[3,32,null,0,false,false,false,777834660011213,null,[[9,39]]]],[[1,29,null,433718960152297,null,[[10,0],[7,[20]]]]]],[0,null,false,null,672751728914774,16,[[2,34,null,1,false,false,false,916118421627682,null,[[1,[21]]]]],[[1,25,null,154230373072611,null,[[0,[22]]]],[1,26,null,815601326917637,null,[[0,[23]]]],[39,31,null,212721337575453,null,[[2,["teleport",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,749908635942946,17,[[2,34,null,1,false,false,false,409196314988527,null,[[1,[24]]]]],[[1,25,null,679620742178275,null,[[0,[25]]]],[1,26,null,235622075075526,null,[[0,[26]]]],[39,31,null,212773382259595,null,[[2,["teleport",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,155828632186451,18,[[1,35,null,0,false,false,false,687972306454101,null,[[10,0],[8,0],[7,[19]]]]],[[2,22,null,379053906178709,null,[[1,[21]],[3,1]]]]],[0,null,false,null,861587527156154,19,[[1,35,null,0,false,false,false,974095615244688,null,[[10,0],[8,0],[7,[20]]]]],[[2,22,null,386685008412095,null,[[1,[24]],[3,1]]]]],[0,null,false,null,229587132905772,20,[[1,35,null,0,false,false,false,209316763343349,null,[[10,1],[8,0],[7,[15]]]]],[[2,36,null,257232799595859,null,[[3,1]]]]],[0,null,false,null,124878856944251,21,[[1,35,null,0,false,false,false,446857657298939,null,[[10,1],[8,0],[7,[14]]]]],[[2,36,null,941904218159283,null,[[3,0]]]]],[0,null,false,null,151484080418296,22,[[1,35,null,0,false,false,false,238062967692730,null,[[10,0],[8,0],[7,[27]]]]],[[2,22,null,220233398659345,null,[[1,[27]],[3,1]]]]],[0,null,false,null,429730030423112,23,[[1,35,null,0,false,false,false,206621139527087,null,[[10,0],[8,0],[7,[28]]]]],[[2,22,null,126872610164181,null,[[1,[28]],[3,1]]]]],[0,null,false,null,123623408273245,24,[[1,35,null,0,false,false,false,726994415481135,null,[[10,0],[8,0],[7,[29]]]]],[[2,22,null,937871204190629,null,[[1,[29]],[3,1]]]]],[0,null,false,null,943359476370334,25,[[1,35,null,0,false,false,false,892219650506453,null,[[10,0],[8,0],[7,[30]]]]],[[2,22,null,494920024607821,null,[[1,[30]],[3,1]]]]],[0,null,false,null,994121149961269,26,[[1,37,"Platform",0,false,false,false,858244533615664,null],[1,30,"Platform",0,false,false,false,446551960473984,null],[1,38,null,0,false,true,false,107456094715485,null,[[10,2]]]],[[1,29,null,315623448972067,null,[[10,0],[7,[28]]]]]],[0,null,false,null,406516903762539,27,[[1,37,"Platform",0,false,false,false,995475256420868,null],[1,30,"Platform",0,false,true,false,871433574561241,null],[1,38,null,0,false,true,false,527551073521683,null,[[10,2]]]],[[1,29,null,925453394189782,null,[[10,0],[7,[29]]]]]],[0,null,false,null,450081506774820,28,[[1,37,"Platform",0,false,true,false,923655498167900,null]],[[1,29,null,154387393626735,null,[[10,0],[7,[27]]]]]],[0,null,false,null,326554639836221,29,[[1,39,null,0,false,false,true,931848107550448,null,[[4,9]]]],[[-1,12,null,162632280524214,null,[[11,"MarioHealth"],[7,[7]]]]]],[0,null,false,null,972033930839249,30,[[1,39,null,0,false,false,true,166810245741886,null,[[4,4]]],[1,38,null,0,false,true,false,847022027195711,null,[[10,3]]],[1,40,null,0,false,false,false,602420964198601,null,[[8,5],[0,[2,[1,4,16,false]]]]],[1,38,null,0,false,true,false,447523112744552,null,[[10,7]]]],[[2,41,"Flash",818378960766742,null,[[0,[31]],[0,[31]],[0,[32,[2,1,false,4]]]]],[-1,18,null,883330506833877,null,[[11,"MarioHealth"],[7,[1]]]],[1,21,null,586763019793464,null,[[10,3],[3,1]]],[-1,42,null,371478742159382,null,[[0,[32,[2,1,false,4]]]]],[1,21,null,751695717959248,null,[[10,3],[3,0]]],[39,31,null,327176333646839,null,[[2,["damage",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,735637503305951,31,[[1,39,null,0,false,false,true,399756368741323,null,[[4,4]]],[1,40,null,0,false,false,false,232995529828706,null,[[8,2],[0,[2,[1,4,16,false]]]]],[4,38,null,0,false,true,false,234162399651263,null,[[10,1]]]],[[4,21,null,434813880655952,null,[[10,1],[3,1]]],[1,43,"Platform",116883286495979,null,[[0,[33]]]],[-1,44,null,594234427056937,null,[[11,"GameScore"],[7,[34]]]],[7,17,null,217394003602264,null,[[7,[35,[3,"GameScore"]]]]],[39,31,null,463630228663467,null,[[2,["stomping",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,953170825636599,32,[[1,39,null,0,false,false,true,876896245148738,null,[[4,16]]],[1,38,null,0,false,true,false,147631800146454,null,[[10,3]]],[1,40,null,0,false,false,false,294702651470632,null,[[8,5],[0,[2,[1,16,16,false]]]]],[16,37,"Platform",0,false,false,false,661631482336649,null],[1,38,null,0,false,true,false,201392786777887,null,[[10,7]]]],[[2,41,"Flash",248911645144839,null,[[0,[31]],[0,[31]],[0,[32,[2,1,false,4]]]]],[-1,18,null,214877109076352,null,[[11,"MarioHealth"],[7,[1]]]],[1,21,null,687063950666914,null,[[10,3],[3,1]]],[-1,42,null,597462062505404,null,[[0,[32,[2,1,false,4]]]]],[1,21,null,418343780749671,null,[[10,3],[3,0]]],[39,31,null,158743337549363,null,[[2,["damage",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,483525317395407,33,[[1,39,null,0,false,false,true,486174092810531,null,[[4,16]]],[1,40,null,0,false,false,false,261918439492519,null,[[8,2],[0,[2,[1,16,16,false]]]]],[16,38,null,0,false,true,false,489620471913419,null,[[10,1]]]],[[16,21,null,555451563082294,null,[[10,1],[3,1]]],[1,43,"Platform",822899225187245,null,[[0,[33]]]],[-1,44,null,689155658427756,null,[[11,"GameScore"],[7,[18]]]],[7,17,null,592958541654979,null,[[7,[35,[3,"GameScore"]]]]],[39,31,null,789802635158762,null,[[2,["stomping",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,257367722136802,34,[[2,34,null,1,false,false,false,373464602207191,null,[[1,[30]]]]],[[-1,45,null,689811335768150,null]]],[0,null,false,null,506720610451121,35,[[-1,20,null,0,false,false,false,143110187859689,null,[[11,"MarioHealth"],[8,0],[7,[7]]]]],[[1,21,null,931641209722363,null,[[10,2],[3,1]]],[1,21,null,131644036540349,null,[[10,3],[3,1]]],[1,29,null,890637678692571,null,[[10,0],[7,[30]]]],[1,46,"Platform",362768466285991,null,[[0,[36]]]],[1,47,"Platform",713373154116410,null,[[3,1]]]]],[0,null,false,null,487142107840801,36,[[1,39,null,0,false,false,true,338147143612311,null,[[4,21]]],[21,38,null,0,false,true,false,899967574980735,null,[[10,0]]]],[[21,21,null,732116382720584,null,[[10,0],[3,1]]],[1,47,"Platform",694594052463085,null,[[3,1]]],[1,46,"Platform",637059175571193,null,[[0,[7]]]],[14,48,null,254458065892651,null,[[4,2],[7,[1]]]],[1,21,null,279976899453106,null,[[10,5],[3,1]]]]],[0,null,false,null,961982700798248,37,[[1,38,null,0,false,false,false,489585915507453,null,[[10,5]]]],[[1,43,"Platform",783337915017638,null,[[0,[37]]]],[14,48,null,732747563711540,null,[[4,2],[7,[1]]]],[-1,44,null,866480382748729,null,[[11,"GameScore"],[7,[38,[1,14,15,false],[1,14,16,false],[1,15,15,false],[1,15,16,false]]]]],[7,17,null,929664113187367,null,[[7,[39,[3,"GameScore"]]]]]]],[0,null,false,null,123190709040330,38,[[1,39,null,0,false,false,true,157629899646136,null,[[4,15]]]],[[1,21,null,944515141189632,null,[[10,5],[3,0]]]]],[0,null,false,null,528010678048665,39,[[1,39,null,0,false,false,true,531383017527566,null,[[4,16]]],[16,38,null,0,false,false,false,173798306147559,null,[[10,1]]],[16,37,"Platform",0,false,true,false,163943422825958,null]],[[16,49,"Bullet",922939382947406,null,[[0,[40]]]]]],[0,null,false,null,413121874222091,40,[[1,39,null,0,false,false,true,780060752717146,null,[[4,17]]],[-1,20,null,0,false,false,false,824950836846192,null,[[11,"MarioHealth"],[8,0],[7,[1]]]]],[[-1,44,null,178429355586395,null,[[11,"MarioHealth"],[7,[1]]]],[-1,44,null,190447538069766,null,[[11,"GameScore"],[7,[41]]]],[17,50,null,519479281892968,null],[39,31,null,425343776345299,null,[[2,["gainhealth",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,441699821572734,41,[[1,39,null,0,false,false,true,391857308684914,null,[[4,17]]],[-1,20,null,0,false,false,false,941371193936385,null,[[11,"MarioHealth"],[8,4],[7,[1]]]]],[[-1,44,null,515354876990057,null,[[11,"GameScore"],[7,[41]]]],[17,50,null,135245655999032,null],[39,31,null,460559528824926,null,[[2,["gainhealth",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,643721108627098,42,[[1,38,null,0,false,false,false,121274715616513,null,[[10,6]]]],[[1,22,null,578455353911315,null,[[1,[42]],[3,1]]],[2,51,null,984000419694436,null,[[0,[43]]]]]],[0,null,false,null,466215510747820,43,[[1,38,null,0,false,true,false,516581377548307,null,[[10,6]]]],[[1,22,null,846502825086302,null,[[1,[6]],[3,1]]],[2,51,null,794219340991375,null,[[0,[44]]]]]],[0,null,false,null,185952842961660,44,[[1,39,null,0,false,false,true,276084658540170,null,[[4,28]]]],[[1,21,null,380147648695873,null,[[10,7],[3,1]]],[28,50,null,141607569870518,null]]],[0,null,false,null,256496528782782,45,[[1,39,null,0,false,false,true,319090514387799,null,[[4,4]]],[1,38,null,0,false,false,false,300204743101660,null,[[10,7]]]],[[4,21,null,108926654620792,null,[[10,1],[3,1]]]]],[0,null,false,null,231716393161241,46,[[1,39,null,0,false,false,true,708701168099817,null,[[4,16]]],[1,38,null,0,false,false,false,920501333599434,null,[[10,7]]]],[[16,21,null,250908368229093,null,[[10,1],[3,1]]]]],[0,null,false,null,357310971649167,47,[[1,38,null,0,false,false,false,424305703109361,null,[[10,7]]]],[[2,52,null,504163071571081,null,[[3,1],[1,[45]]]],[-1,42,null,735386861405601,null,[[0,[46]]]],[1,21,null,419465564514000,null,[[10,7],[3,0]]]]],[0,null,false,null,780323738174143,48,[[1,38,null,0,false,true,false,163494650609248,null,[[10,7]]]],[[2,52,null,630562953745010,null,[[3,0],[1,[45]]]]]],[0,null,false,null,244063408521544,49,[[1,39,null,0,false,false,true,491041680632353,null,[[4,40]]],[-1,20,null,0,false,false,false,279451491246177,null,[[11,"MarioHealth"],[8,4],[7,[1]]]]],[[1,21,null,895990312877711,null,[[10,9],[3,1]]],[40,50,null,199653329698464,null],[2,52,null,700748578478429,null,[[3,1],[1,[47]]]],[39,31,null,207845939630474,null,[[2,["gainhealth",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,197958733328444,50,[[3,28,null,1,false,false,false,167392560638813,null,[[9,16]]],[1,38,null,0,false,false,false,653293554629928,null,[[10,9]]]],[[1,53,null,315898032391484,null,[[4,41],[5,[1]],[7,[7]]]],[-1,42,null,200273590587767,null,[[0,[1]]]],[41,50,null,124647328107038,null],[39,31,null,474899783381380,null,[[2,["fireball",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,943482142471137,51,[[3,28,null,1,false,false,false,406957345413016,null,[[9,16]]],[1,35,null,0,false,false,false,487378741219612,null,[[10,1],[8,0],[7,[15]]]],[1,38,null,0,false,false,false,476612391611852,null,[[10,9]]]],[[41,54,null,434353499407726,null,[[0,[7]]]],[39,31,null,428004699632768,null,[[2,["fireball",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,894270249338123,52,[[3,28,null,1,false,false,false,652515234079070,null,[[9,16]]],[1,35,null,0,false,false,false,754734357000776,null,[[10,1],[8,0],[7,[14]]]],[1,38,null,0,false,false,false,567015351238406,null,[[10,9]]]],[[41,54,null,732192020875841,null,[[0,[48]]]],[39,31,null,916356342483272,null,[[2,["fireball",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,638819554977563,53,[[-1,20,null,0,false,false,false,596972597095117,null,[[11,"MarioHealth"],[8,2],[7,[5]]]]],[[1,21,null,537479955223932,null,[[10,9],[3,0]]],[2,52,null,212596839444646,null,[[3,0],[1,[47]]]]]],[0,null,false,null,252215227698942,54,[[41,39,null,0,false,false,true,913298079424822,null,[[4,4]]]],[[4,21,null,404530519092123,null,[[10,1],[3,1]]]]],[0,null,false,null,287389006776355,55,[[41,39,null,0,false,false,true,430604125598464,null,[[4,16]]]],[[16,21,null,786278027138066,null,[[10,1],[3,1]]]]],[0,null,false,null,252992214882109,56,[[41,39,null,0,false,false,true,498204065114867,null,[[4,20]]]],[[41,50,null,928625727048753,null]]]]],[0,[true,"Slime"],false,null,727638694453834,57,[[-1,10,null,0,false,false,false,0,false,[[1,[49]]]]],[],[[0,null,false,null,668411490383303,58,[[4,39,null,0,false,false,true,441584481027776,null,[[4,6]]]],[[4,29,null,281501323338856,null,[[10,0],[7,[14]]]],[4,36,null,831247467488982,null,[[3,1]]]]],[0,null,false,null,359110768671056,59,[[4,39,null,0,false,false,true,192020524729929,null,[[4,5]]]],[[4,29,null,591507210027002,null,[[10,0],[7,[15]]]],[4,36,null,828376036225334,null,[[3,0]]]]],[0,null,false,null,294794553834406,60,[[4,35,null,0,false,false,false,646141033646759,null,[[10,0],[8,0],[7,[14]]]],[4,38,null,0,false,true,false,308765213555471,null,[[10,1]]]],[[4,22,null,822817867539034,null,[[1,[28]],[3,1]]],[4,55,"Platform",914258312718092,null,[[3,0]]]]],[0,null,false,null,675888270850021,61,[[4,35,null,0,false,false,false,589259503060590,null,[[10,0],[8,0],[7,[15]]]],[4,38,null,0,false,true,false,353165239013892,null,[[10,1]]]],[[4,22,null,452382568304973,null,[[1,[28]],[3,1]]],[4,55,"Platform",295210022461715,null,[[3,1]]]]],[0,null,false,null,160417767368879,62,[[4,38,null,0,false,false,false,402683770643665,null,[[10,1]]]],[[4,22,null,302309117091572,null,[[1,[30]],[3,1]]],[-1,42,null,467410164515074,null,[[0,[1]]]],[4,50,null,748028498127454,null]]],[0,null,false,null,657719409937875,63,[[4,56,null,0,false,false,false,830621679045083,null]],[[4,57,"Platform",230945668610657,null,[[3,1]]]]],[0,null,false,null,382027129085810,64,[[4,56,null,0,false,true,false,281308850213725,null]],[[4,57,"Platform",346980156166493,null,[[3,0]]]]],[0,null,false,null,946875095034269,65,[[4,39,null,0,false,false,true,633651340718344,null,[[4,16]]],[16,38,null,0,false,false,false,320341648665725,null,[[10,1]]]],[[4,21,null,998248220530302,null,[[10,1],[3,1]]]]]]],[0,[true,"Snail"],false,null,767649481700556,66,[[-1,10,null,0,false,false,false,0,false,[[1,[50]]]]],[],[[0,null,false,null,411642048801708,67,[[16,39,null,0,false,false,true,811718527333206,null,[[4,6]]]],[[16,29,null,370318258640381,null,[[10,0],[7,[14]]]],[16,36,null,388926161836064,null,[[3,1]]]]],[0,null,false,null,767213385163925,68,[[16,39,null,0,false,false,true,132926333503478,null,[[4,5]]]],[[16,29,null,278865037990344,null,[[10,0],[7,[15]]]],[16,36,null,291958666793297,null,[[3,0]]]]],[0,null,false,null,650067131863853,69,[[16,35,null,0,false,false,false,158520501776022,null,[[10,0],[8,0],[7,[14]]]],[16,38,null,0,false,true,false,665850510316873,null,[[10,1]]]],[[16,22,null,524436480114902,null,[[1,[28]],[3,1]]],[16,55,"Platform",165149746724860,null,[[3,0]]]]],[0,null,false,null,722706943131092,70,[[16,35,null,0,false,false,false,800464221659146,null,[[10,0],[8,0],[7,[15]]]],[16,38,null,0,false,true,false,916219044811750,null,[[10,1]]]],[[16,22,null,302971806394515,null,[[1,[28]],[3,1]]],[16,55,"Platform",488575767390413,null,[[3,1]]]]],[0,null,false,null,349193425994067,71,[[16,38,null,0,false,false,false,734776338007323,null,[[10,1]]]],[[16,22,null,545528553715233,null,[[1,[51]],[3,1]]]]],[0,null,false,null,290301007938834,72,[[16,34,null,1,false,false,false,334662402468857,null,[[1,[51]]]]],[[16,21,null,976029041930777,null,[[10,1],[3,0]]]]],[0,null,false,null,145341155980711,73,[[16,38,null,0,false,false,false,313669548733910,null,[[10,1]]]],[[16,58,"Bullet",232070049657430,null,[[3,1]]],[16,59,"Bullet",930681127690042,null,[[4,6]]],[16,59,"Bullet",660793241894554,null,[[4,5]]]]],[0,null,false,null,811584742427793,74,[[16,38,null,0,false,true,false,760125474438568,null,[[10,1]]]],[[16,58,"Bullet",502626306211529,null,[[3,0]]]]],[0,null,false,null,131925823836593,75,[[16,56,null,0,false,false,false,934940053121215,null]],[[16,57,"Platform",853928322535073,null,[[3,1]]]]],[0,null,false,null,565397735541302,76,[[16,56,null,0,false,true,false,863029940701483,null]],[[16,57,"Platform",502501201447146,null,[[3,0]]]]],[0,null,false,null,713584200439762,77,[[16,39,null,0,false,false,true,142274520825171,null,[[4,9]]]],[[16,50,null,494054905450387,null]]]]],[0,null,false,null,552781776004059,78,[[1,39,null,0,false,false,true,820593203169266,null,[[4,12]]],[-1,20,null,0,false,false,false,329063714950020,null,[[11,"MarioHealth"],[8,3],[7,[1]]]]],[[11,22,null,854626826471919,null,[[1,[52]],[3,1]]],[39,31,null,444015003738728,null,[[2,["thud sound effect_1",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,671732830088750,79,[[11,34,null,1,false,false,false,667723922847498,null,[[1,[52]]]]],[[11,22,null,373772809773039,null,[[1,[27]],[3,1]]]]],[0,null,false,null,143126634356821,80,[[1,39,null,0,false,false,true,244518033876363,null,[[4,12]]],[-1,20,null,0,false,false,false,878013347633700,null,[[11,"MarioHealth"],[8,5],[7,[5]]]]],[[11,22,null,434869671003415,null,[[1,[53]],[3,1]]],[39,31,null,498419406134535,null,[[2,["thud sound effect_1",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,802694460143155,81,[[11,34,null,1,false,false,false,342052083628265,null,[[1,[53]]]]],[[11,50,null,551885302030913,null]]],[0,null,false,null,414270920598631,82,[[1,39,null,0,false,false,true,673176004722865,null,[[4,18]]]],[[19,22,null,946403785760668,null,[[1,[52]],[3,1]]]]],[0,null,false,null,469737101353702,83,[[1,39,null,0,false,false,true,655556016366705,null,[[4,47]]]],[[-1,44,null,533173345425680,null,[[11,"GameScore"],[7,[54]]]],[7,17,null,506827282641066,null,[[7,[39,[3,"GameScore"]]]]],[46,22,null,617486438951024,null,[[1,[55]],[3,1]]],[39,31,null,524641428615462,null,[[2,["coin_effect",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,407567975465435,84,[[46,34,null,1,false,false,false,259287976688381,null,[[1,[55]]]]],[[47,60,null,420618877131828,null,[[3,0]]],[46,22,null,978264201767666,null,[[1,[56]],[3,1]]]]],[0,null,false,null,459089169489750,85,[[1,39,null,0,false,false,true,241821678671576,null,[[4,49]]],[1,35,null,0,false,false,false,866987901647256,null,[[10,0],[8,0],[7,[29]]]]],[[-1,44,null,489745468807647,null,[[11,"GameScore"],[7,[41]]]],[7,17,null,939056063177128,null,[[7,[39,[3,"GameScore"]]]]],[48,22,null,772783628061112,null,[[1,[55]],[3,1]]],[39,31,null,540360432747261,null,[[2,["coin_effect",false]],[3,0],[0,[7]],[1,[16]]]],[48,21,null,192058422868195,null,[[10,0],[3,1]]]]],[0,null,false,null,283479518803355,86,[[48,38,null,0,false,true,false,937823917310613,null,[[10,0]]]],[[48,61,"Solid",176861812714142,null,[[3,0]]]]],[0,null,false,null,348055365574456,87,[[48,38,null,0,false,false,false,161193338874664,null,[[10,0]]]],[[48,61,"Solid",956224713359405,null,[[3,1]]]]],[0,null,false,null,188339827891103,88,[[48,34,null,1,false,false,false,120817796547057,null,[[1,[55]]]]],[[49,60,null,447395773281599,null,[[3,0]]],[48,22,null,130587536278518,null,[[1,[56]],[3,1]]]]],[0,null,false,null,348279450567684,89,[[1,39,null,0,false,false,true,138579148759708,null,[[4,18]]],[-1,20,null,0,false,false,false,250091769936673,null,[[11,"MarioHealth"],[8,0],[7,[1]]]]],[[17,21,null,117578131923978,null,[[10,0],[3,1]]],[17,22,null,130573466609985,null,[[1,[57]],[3,1]]],[19,22,null,327640248580704,null,[[1,[52]],[3,1]]]]],[0,null,false,null,688930149833298,90,[[19,34,null,1,false,false,false,420808097599073,null,[[1,[52]]]]],[[19,22,null,591616878666366,null,[[1,[56]],[3,1]]],[18,60,null,831811216088674,null,[[3,0]]]]],[0,null,false,null,873438389166722,91,[[1,39,null,0,false,false,true,964175513935625,null,[[4,18]]],[-1,20,null,0,false,false,false,553564485306517,null,[[11,"MarioHealth"],[8,5],[7,[5]]]]],[[40,21,null,792820700221150,null,[[10,0],[3,1]]],[40,22,null,978660311600165,null,[[1,[57]],[3,1]]],[19,22,null,340011374747917,null,[[1,[52]],[3,1]]],[39,31,null,428741256163870,null,[[2,["itemout",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,469571438287081,92,[[19,34,null,1,false,false,false,758088934453357,null,[[1,[52]]]]],[[19,22,null,433819495872023,null,[[1,[56]],[3,1]]],[18,60,null,286074987520335,null,[[3,0]]]]],[0,null,false,null,324810784758332,93,[[17,38,null,0,false,false,false,578918737371494,null,[[10,0]]]],[[17,60,null,145049274854884,null,[[3,1]]],[17,57,"Platform",706377911490644,null,[[3,1]]],[17,62,null,303486786769884,null,[[3,1]]]]],[0,null,false,null,977491272976549,94,[[17,38,null,0,false,true,false,838881496564132,null,[[10,0]]]],[[17,60,null,831163278859543,null,[[3,0]]],[17,57,"Platform",225010583793004,null,[[3,0]]],[17,62,null,256851207384567,null,[[3,0]]]]],[0,null,false,null,788425681820253,95,[[40,38,null,0,false,false,false,192691466149720,null,[[10,0]]]],[[40,60,null,965633594904535,null,[[3,1]]],[40,62,null,161290252503633,null,[[3,1]]]]],[0,null,false,null,256847759188973,96,[[40,38,null,0,false,true,false,111858665467590,null,[[10,0]]]],[[40,60,null,935874703573081,null,[[3,0]]],[40,62,null,278166249124897,null,[[3,0]]]]],[0,null,false,null,282980927159709,97,[[17,39,null,0,false,false,true,463097136293122,null,[[4,6]]]],[[17,55,"Platform",809049109307117,null,[[3,0]]]]],[0,null,false,null,855436510495503,98,[[17,39,null,0,false,false,true,245151920429132,null,[[4,5]]]],[[17,55,"Platform",465953438878234,null,[[3,1]]]]],[0,null,false,null,938757791933849,99,[[1,39,null,0,false,false,true,554193250147325,null,[[4,15]]]],[[1,21,null,364500649008712,null,[[10,8],[3,1]]],[39,31,null,676194790561811,null,[[2,["victory",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,830602491240867,100,[[1,38,null,0,false,false,false,891987197672795,null,[[10,8]]]],[[1,63,null,307703579791013,null,[[0,[1]]]],[1,33,"Platform",681111335940789,null,[[0,[34]]]],[-1,42,null,971567180105206,null,[[0,[5]]]],[30,62,null,782049018734325,null,[[3,1]]],[-1,42,null,943197737603850,null,[[0,[58]]]],[31,62,null,223253828155756,null,[[3,1]]],[-1,42,null,200823100900281,null,[[0,[58]]]],[32,62,null,432957691284096,null,[[3,1]]],[-1,42,null,135830877304144,null,[[0,[58]]]],[33,62,null,409789059682019,null,[[3,1]]],[-1,42,null,478348340022845,null,[[0,[58]]]],[34,62,null,448710345254390,null,[[3,1]]],[-1,42,null,472479193045627,null,[[0,[58]]]],[-1,45,null,465890315973359,null]]],[0,null,false,null,517640188381901,101,[[1,39,null,0,false,false,true,435112030863480,null,[[4,38]]]],[[38,50,null,392808519737967,null],[-1,44,null,472459820954657,null,[[11,"GameScore"],[7,[54]]]],[39,31,null,906346195416389,null,[[2,["coin_effect",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,260038596846941,102,[[1,39,null,0,false,false,true,896644925217708,null,[[4,45]]]],[[44,22,null,925929101462824,null,[[1,[52]],[3,1]]],[39,31,null,433196213640328,null,[[2,["thud sound effect_1",false]],[3,0],[0,[7]],[1,[16]]]]]],[0,null,false,null,257860414427680,103,[[44,34,null,1,false,false,false,434796864995184,null,[[1,[52]]]]],[[44,22,null,201298721427617,null,[[1,[27]],[3,1]]],[45,60,null,129894276450611,null,[[3,0]]],[28,21,null,728956117660792,null,[[10,0],[3,1]]]]],[0,null,false,null,199182074393430,104,[[28,38,null,0,false,true,false,346236850374999,null,[[10,0]]]],[[28,60,null,605803074802566,null,[[3,0]]],[28,58,"Bullet",524198943571378,null,[[3,0]]],[28,62,null,915914953469883,null,[[3,0]]]]],[0,null,false,null,535293533452993,105,[[28,38,null,0,false,false,false,622394029536847,null,[[10,0]]]],[[28,60,null,222675437423688,null,[[3,1]]],[28,58,"Bullet",480993000756603,null,[[3,1]]],[28,62,null,591301930617684,null,[[3,1]]]]],[0,null,false,null,787873071107311,106,[[-1,11,null,1,false,false,false,842685296575781,null]],[[39,31,null,489580603275207,null,[[2,["320_full_pixel-squirrel_0177_spliced",true]],[3,1],[0,[7]],[1,[59]]]]]]]]],[["coin_effect",[["audio/mpeg",".mp3",16067]],false],["320_full_pixel-squirrel_0177_preview_star_power",[["audio/mpeg",".mp3",330582]],false],["stomping",[["audio/mpeg",".mp3",12922]],false],["thud sound effect_1",[["audio/mpeg",".mp3",16679]],false],["fireball",[["audio/mpeg",".mp3",12923]],false],["death",[["audio/mpeg",".mp3",17942]],false],["gainhealth",[["audio/mpeg",".mp3",16691]],false],["itemout",[["audio/mpeg",".mp3",14625]],false],["teleport",[["audio/mpeg",".mp3",20444]],false],["victory",[["audio/mpeg",".mp3",124697]],false],["damage",[["audio/mpeg",".mp3",12518]],false],["jump",[["audio/mpeg",".mp3",12935]],false],["320_full_pixel-squirrel_0177_preview",[["audio/mpeg",".mp3",4256064]],true],["320_full_pixel-squirrel_0177_spliced",[["audio/mpeg",".mp3",355529]],true]],"media/",false,512,480,4,true,"trilinear",true,"1.0.0.0",true,false,4,2,862,false,true,1,true,false,[[11,12],[40,19,18,17],[46,47]],"icons/",[],true,"ca9eok41fjw","fonts/",[],"high-performance"]} \ No newline at end of file diff --git a/Mario1-1/icons/icon-128.png b/Mario1-1/icons/icon-128.png new file mode 100644 index 0000000..0a4ac37 Binary files /dev/null and b/Mario1-1/icons/icon-128.png differ diff --git a/Mario1-1/icons/icon-16.png b/Mario1-1/icons/icon-16.png new file mode 100644 index 0000000..47acf70 Binary files /dev/null and b/Mario1-1/icons/icon-16.png differ diff --git a/Mario1-1/icons/icon-256.png b/Mario1-1/icons/icon-256.png new file mode 100644 index 0000000..5c770e3 Binary files /dev/null and b/Mario1-1/icons/icon-256.png differ diff --git a/Mario1-1/icons/icon-32.png b/Mario1-1/icons/icon-32.png new file mode 100644 index 0000000..0063335 Binary files /dev/null and b/Mario1-1/icons/icon-32.png differ diff --git a/Mario1-1/icons/icon-512.png b/Mario1-1/icons/icon-512.png new file mode 100644 index 0000000..f9baab0 Binary files /dev/null and b/Mario1-1/icons/icon-512.png differ diff --git a/Mario1-1/icons/icon-64.png b/Mario1-1/icons/icon-64.png new file mode 100644 index 0000000..1ede1a1 Binary files /dev/null and b/Mario1-1/icons/icon-64.png differ diff --git a/Mario1-1/icons/loading-logo.png b/Mario1-1/icons/loading-logo.png new file mode 100644 index 0000000..1ede1a1 Binary files /dev/null and b/Mario1-1/icons/loading-logo.png differ diff --git a/Mario1-1/images/bigmario-sheet0.png b/Mario1-1/images/bigmario-sheet0.png new file mode 100644 index 0000000..8934f54 Binary files /dev/null and b/Mario1-1/images/bigmario-sheet0.png differ diff --git a/Mario1-1/images/brick-sheet0.png b/Mario1-1/images/brick-sheet0.png new file mode 100644 index 0000000..3eb6305 Binary files /dev/null and b/Mario1-1/images/brick-sheet0.png differ diff --git a/Mario1-1/images/brick-sheet1.png b/Mario1-1/images/brick-sheet1.png new file mode 100644 index 0000000..fb50427 Binary files /dev/null and b/Mario1-1/images/brick-sheet1.png differ diff --git a/Mario1-1/images/brick-sheet2.png b/Mario1-1/images/brick-sheet2.png new file mode 100644 index 0000000..6414dc9 Binary files /dev/null and b/Mario1-1/images/brick-sheet2.png differ diff --git a/Mario1-1/images/castle-sheet0.png b/Mario1-1/images/castle-sheet0.png new file mode 100644 index 0000000..9dd15de Binary files /dev/null and b/Mario1-1/images/castle-sheet0.png differ diff --git a/Mario1-1/images/castle-sheet1.png b/Mario1-1/images/castle-sheet1.png new file mode 100644 index 0000000..30f65b0 Binary files /dev/null and b/Mario1-1/images/castle-sheet1.png differ diff --git a/Mario1-1/images/castle-sheet2.png b/Mario1-1/images/castle-sheet2.png new file mode 100644 index 0000000..91f7fa0 Binary files /dev/null and b/Mario1-1/images/castle-sheet2.png differ diff --git a/Mario1-1/images/castle-sheet3.png b/Mario1-1/images/castle-sheet3.png new file mode 100644 index 0000000..219c2f8 Binary files /dev/null and b/Mario1-1/images/castle-sheet3.png differ diff --git a/Mario1-1/images/coin-sheet0.png b/Mario1-1/images/coin-sheet0.png new file mode 100644 index 0000000..b86513f Binary files /dev/null and b/Mario1-1/images/coin-sheet0.png differ diff --git a/Mario1-1/images/coin-sheet1.png b/Mario1-1/images/coin-sheet1.png new file mode 100644 index 0000000..740b9d7 Binary files /dev/null and b/Mario1-1/images/coin-sheet1.png differ diff --git a/Mario1-1/images/coinbox-sheet0.png b/Mario1-1/images/coinbox-sheet0.png new file mode 100644 index 0000000..70bbb21 Binary files /dev/null and b/Mario1-1/images/coinbox-sheet0.png differ diff --git a/Mario1-1/images/coinbox-sheet1.png b/Mario1-1/images/coinbox-sheet1.png new file mode 100644 index 0000000..32b416f Binary files /dev/null and b/Mario1-1/images/coinbox-sheet1.png differ diff --git a/Mario1-1/images/coinbox-sheet2.png b/Mario1-1/images/coinbox-sheet2.png new file mode 100644 index 0000000..d2758a0 Binary files /dev/null and b/Mario1-1/images/coinbox-sheet2.png differ diff --git a/Mario1-1/images/collision-sheet0.png b/Mario1-1/images/collision-sheet0.png new file mode 100644 index 0000000..27c538f Binary files /dev/null and b/Mario1-1/images/collision-sheet0.png differ diff --git a/Mario1-1/images/collision-sheet1.png b/Mario1-1/images/collision-sheet1.png new file mode 100644 index 0000000..8aab156 Binary files /dev/null and b/Mario1-1/images/collision-sheet1.png differ diff --git a/Mario1-1/images/collision-sheet2.png b/Mario1-1/images/collision-sheet2.png new file mode 100644 index 0000000..20ffa20 Binary files /dev/null and b/Mario1-1/images/collision-sheet2.png differ diff --git a/Mario1-1/images/flagpole-sheet0.png b/Mario1-1/images/flagpole-sheet0.png new file mode 100644 index 0000000..6394981 Binary files /dev/null and b/Mario1-1/images/flagpole-sheet0.png differ diff --git a/Mario1-1/images/invisbox-sheet0.png b/Mario1-1/images/invisbox-sheet0.png new file mode 100644 index 0000000..f18dddf Binary files /dev/null and b/Mario1-1/images/invisbox-sheet0.png differ diff --git a/Mario1-1/images/invisbox-sheet1.png b/Mario1-1/images/invisbox-sheet1.png new file mode 100644 index 0000000..61ee787 Binary files /dev/null and b/Mario1-1/images/invisbox-sheet1.png differ diff --git a/Mario1-1/images/shared-0-sheet0.png b/Mario1-1/images/shared-0-sheet0.png new file mode 100644 index 0000000..66e211f Binary files /dev/null and b/Mario1-1/images/shared-0-sheet0.png differ diff --git a/Mario1-1/images/shared-0-sheet1.png b/Mario1-1/images/shared-0-sheet1.png new file mode 100644 index 0000000..f9a878f Binary files /dev/null and b/Mario1-1/images/shared-0-sheet1.png differ diff --git a/Mario1-1/images/shared-0-sheet2.png b/Mario1-1/images/shared-0-sheet2.png new file mode 100644 index 0000000..93c1906 Binary files /dev/null and b/Mario1-1/images/shared-0-sheet2.png differ diff --git a/Mario1-1/images/shared-0-sheet3.png b/Mario1-1/images/shared-0-sheet3.png new file mode 100644 index 0000000..7611fb6 Binary files /dev/null and b/Mario1-1/images/shared-0-sheet3.png differ diff --git a/Mario1-1/images/shared-0-sheet4.png b/Mario1-1/images/shared-0-sheet4.png new file mode 100644 index 0000000..dddb897 Binary files /dev/null and b/Mario1-1/images/shared-0-sheet4.png differ diff --git a/Mario1-1/images/shared-0-sheet5.png b/Mario1-1/images/shared-0-sheet5.png new file mode 100644 index 0000000..fb8edf8 Binary files /dev/null and b/Mario1-1/images/shared-0-sheet5.png differ diff --git a/Mario1-1/images/snail-sheet0.png b/Mario1-1/images/snail-sheet0.png new file mode 100644 index 0000000..32c2256 Binary files /dev/null and b/Mario1-1/images/snail-sheet0.png differ diff --git a/Mario1-1/index.html b/Mario1-1/index.html new file mode 100644 index 0000000..77446b4 --- /dev/null +++ b/Mario1-1/index.html @@ -0,0 +1,32 @@ + + + + +Eric_Laputka_Mario_1-1 + + + + + + + + + + + + + +
+ + + + + + + + \ No newline at end of file diff --git a/Mario1-1/media/320_full_pixel-squirrel_0177_preview.mp3 b/Mario1-1/media/320_full_pixel-squirrel_0177_preview.mp3 new file mode 100644 index 0000000..04b8756 Binary files /dev/null and b/Mario1-1/media/320_full_pixel-squirrel_0177_preview.mp3 differ diff --git a/Mario1-1/media/320_full_pixel-squirrel_0177_preview_star_power.mp3 b/Mario1-1/media/320_full_pixel-squirrel_0177_preview_star_power.mp3 new file mode 100644 index 0000000..f6343f7 Binary files /dev/null and b/Mario1-1/media/320_full_pixel-squirrel_0177_preview_star_power.mp3 differ diff --git a/Mario1-1/media/320_full_pixel-squirrel_0177_spliced.mp3 b/Mario1-1/media/320_full_pixel-squirrel_0177_spliced.mp3 new file mode 100644 index 0000000..cc1f137 Binary files /dev/null and b/Mario1-1/media/320_full_pixel-squirrel_0177_spliced.mp3 differ diff --git a/Mario1-1/media/coin_effect.mp3 b/Mario1-1/media/coin_effect.mp3 new file mode 100644 index 0000000..86e0cca Binary files /dev/null and b/Mario1-1/media/coin_effect.mp3 differ diff --git a/Mario1-1/media/damage.mp3 b/Mario1-1/media/damage.mp3 new file mode 100644 index 0000000..44b2b18 Binary files /dev/null and b/Mario1-1/media/damage.mp3 differ diff --git a/Mario1-1/media/death.mp3 b/Mario1-1/media/death.mp3 new file mode 100644 index 0000000..f544f40 Binary files /dev/null and b/Mario1-1/media/death.mp3 differ diff --git a/Mario1-1/media/fireball.mp3 b/Mario1-1/media/fireball.mp3 new file mode 100644 index 0000000..dda6164 Binary files /dev/null and b/Mario1-1/media/fireball.mp3 differ diff --git a/Mario1-1/media/gainhealth.mp3 b/Mario1-1/media/gainhealth.mp3 new file mode 100644 index 0000000..d0a7524 Binary files /dev/null and b/Mario1-1/media/gainhealth.mp3 differ diff --git a/Mario1-1/media/itemout.mp3 b/Mario1-1/media/itemout.mp3 new file mode 100644 index 0000000..042e2c6 Binary files /dev/null and b/Mario1-1/media/itemout.mp3 differ diff --git a/Mario1-1/media/jump.mp3 b/Mario1-1/media/jump.mp3 new file mode 100644 index 0000000..b0b55b6 Binary files /dev/null and b/Mario1-1/media/jump.mp3 differ diff --git a/Mario1-1/media/stomping.mp3 b/Mario1-1/media/stomping.mp3 new file mode 100644 index 0000000..2f14260 Binary files /dev/null and b/Mario1-1/media/stomping.mp3 differ diff --git a/Mario1-1/media/teleport.mp3 b/Mario1-1/media/teleport.mp3 new file mode 100644 index 0000000..50a4128 Binary files /dev/null and b/Mario1-1/media/teleport.mp3 differ diff --git a/Mario1-1/media/thud sound effect_1.mp3 b/Mario1-1/media/thud sound effect_1.mp3 new file mode 100644 index 0000000..1b5f4d7 Binary files /dev/null and b/Mario1-1/media/thud sound effect_1.mp3 differ diff --git a/Mario1-1/media/victory.mp3 b/Mario1-1/media/victory.mp3 new file mode 100644 index 0000000..e3fd529 Binary files /dev/null and b/Mario1-1/media/victory.mp3 differ diff --git a/Mario1-1/offline.json b/Mario1-1/offline.json new file mode 100644 index 0000000..88dcf23 --- /dev/null +++ b/Mario1-1/offline.json @@ -0,0 +1 @@ +{"version":1553829263921,"fileList":["scripts/c3runtime.js","data.json","style.css","scripts/offlineClient.js","images/collision-sheet0.png","images/collision-sheet1.png","images/collision-sheet2.png","images/flagpole-sheet0.png","images/castle-sheet0.png","images/castle-sheet1.png","images/castle-sheet2.png","images/castle-sheet3.png","images/coin-sheet0.png","images/coin-sheet1.png","images/coinbox-sheet0.png","images/coinbox-sheet1.png","images/coinbox-sheet2.png","images/invisbox-sheet1.png","images/shared-0-sheet0.png","images/brick-sheet1.png","images/shared-0-sheet5.png","images/snail-sheet0.png","images/brick-sheet2.png","images/brick-sheet0.png","images/invisbox-sheet0.png","images/bigmario-sheet0.png","images/shared-0-sheet2.png","images/shared-0-sheet3.png","images/shared-0-sheet1.png","images/shared-0-sheet4.png","scripts/main.js","scripts/dispatchWorker.js","scripts/jobWorker.js","scripts/workerMain.js","scripts/supportCheck.js","media/coin_effect.mp3","media/320_full_pixel-squirrel_0177_preview_star_power.mp3","media/stomping.mp3","media/thud sound effect_1.mp3","media/fireball.mp3","media/death.mp3","media/gainhealth.mp3","media/itemout.mp3","media/teleport.mp3","media/victory.mp3","media/damage.mp3","media/jump.mp3","media/320_full_pixel-squirrel_0177_preview.mp3","media/320_full_pixel-squirrel_0177_spliced.mp3","icons/icon-16.png","icons/icon-32.png","icons/loading-logo.png","icons/icon-64.png","icons/icon-128.png","icons/icon-256.png","icons/icon-512.png","scripts/register-sw.js"]} \ No newline at end of file diff --git a/Mario1-1/scripts/c3runtime.js b/Mario1-1/scripts/c3runtime.js new file mode 100644 index 0000000..32e067a --- /dev/null +++ b/Mario1-1/scripts/c3runtime.js @@ -0,0 +1,822 @@ +// Generated by Construct 3, the game and app creator :: https://www.construct.net +"use strict"; +// c3/3rdparty/glmatrix.js +(function(e,t){if('object'==typeof exports&&'object'==typeof module)module.exports=t();else if('function'==typeof define&&define.amd)define([],t);else{var r=t();for(var a in r)('object'==typeof exports?exports:e)[a]=r[a]}})(this,function(){var e=Math.acos,t=Math.round,r=Math.min,o=Math.floor,l=Math.ceil,n=Math.sqrt,s=Math.pow,d=Math.cos,u=Math.sin,i=Math.max,m=Math.abs,c=Math.PI;return function(e){function t(r){if(a[r])return a[r].exports;var o=a[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var a={};return t.m=e,t.c=a,t.d=function(e,a,r){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var a=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(a,'a',a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=4)}([function(e,t){'use strict';Object.defineProperty(t,'__esModule',{value:!0}),t.setMatrixArrayType=function(e){t.ARRAY_TYPE=a=e},t.toRadian=function(e){return e*l},t.equals=function(e,t){return m(e-t)<=r*i(1,m(e),m(t))};var r=t.EPSILON=1e-6,a=t.ARRAY_TYPE='undefined'==typeof Float32Array?Array:Float32Array,o=t.RANDOM=Math.random,l=c/180},function(e,t,a){'use strict';function r(e,t,a){var r=t[0],o=t[1],l=t[2],s=t[3],n=t[4],d=t[5],u=t[6],i=t[7],c=t[8],m=a[0],f=a[1],P=a[2],p=a[3],E=a[4],y=a[5],A=a[6],O=a[7],R=a[8];return e[0]=m*r+f*s+P*u,e[1]=m*o+f*n+P*i,e[2]=m*l+f*d+P*c,e[3]=p*r+E*s+y*u,e[4]=p*o+E*n+y*i,e[5]=p*l+E*d+y*c,e[6]=A*r+O*s+R*u,e[7]=A*o+O*n+R*i,e[8]=A*l+O*d+R*c,e}function o(e,t,a){return e[0]=t[0]-a[0],e[1]=t[1]-a[1],e[2]=t[2]-a[2],e[3]=t[3]-a[3],e[4]=t[4]-a[4],e[5]=t[5]-a[5],e[6]=t[6]-a[6],e[7]=t[7]-a[7],e[8]=t[8]-a[8],e}Object.defineProperty(t,'__esModule',{value:!0}),t.sub=t.mul=void 0,t.create=function(){var e=new c.ARRAY_TYPE(9);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.fromMat4=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e},t.clone=function(e){var t=new c.ARRAY_TYPE(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},t.copy=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},t.fromValues=function(e,t,a,r,o,l,s,n,d){var u=new c.ARRAY_TYPE(9);return u[0]=e,u[1]=t,u[2]=a,u[3]=r,u[4]=o,u[5]=l,u[6]=s,u[7]=n,u[8]=d,u},t.set=function(e,t,a,r,o,l,s,n,d,u){return e[0]=t,e[1]=a,e[2]=r,e[3]=o,e[4]=l,e[5]=s,e[6]=n,e[7]=d,e[8]=u,e},t.identity=function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.transpose=function(e,t){if(e===t){var a=t[1],r=t[2],o=t[5];e[1]=t[3],e[2]=t[6],e[3]=a,e[5]=t[7],e[6]=r,e[7]=o}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e},t.invert=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=t[4],n=t[5],d=t[6],u=t[7],i=t[8],c=i*s-n*u,m=-i*l+n*d,f=u*l-s*d,P=a*c+r*m+o*f;return P?(P=1/P,e[0]=c*P,e[1]=(-i*r+o*u)*P,e[2]=(n*r-o*s)*P,e[3]=m*P,e[4]=(i*a-o*d)*P,e[5]=(-n*a+o*l)*P,e[6]=f*P,e[7]=(-u*a+r*d)*P,e[8]=(s*a-r*l)*P,e):null},t.adjoint=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=t[4],n=t[5],d=t[6],u=t[7],i=t[8];return e[0]=s*i-n*u,e[1]=o*u-r*i,e[2]=r*n-o*s,e[3]=n*d-l*i,e[4]=a*i-o*d,e[5]=o*l-a*n,e[6]=l*u-s*d,e[7]=r*d-a*u,e[8]=a*s-r*l,e},t.determinant=function(e){var t=e[0],a=e[1],r=e[2],o=e[3],l=e[4],s=e[5],n=e[6],d=e[7],u=e[8];return t*(u*l-s*d)+a*(-u*o+s*n)+r*(d*o-l*n)},t.multiply=r,t.translate=function(e,t,a){var r=t[0],o=t[1],l=t[2],s=t[3],n=t[4],d=t[5],u=t[6],i=t[7],c=t[8],m=a[0],f=a[1];return e[0]=r,e[1]=o,e[2]=l,e[3]=s,e[4]=n,e[5]=d,e[6]=m*r+f*s+u,e[7]=m*o+f*n+i,e[8]=m*l+f*d+c,e},t.rotate=function(e,t,a){var r=t[0],o=t[1],l=t[2],n=t[3],i=t[4],m=t[5],f=t[6],P=t[7],p=t[8],E=u(a),s=d(a);return e[0]=s*r+E*n,e[1]=s*o+E*i,e[2]=s*l+E*m,e[3]=s*n-E*r,e[4]=s*i-E*o,e[5]=s*m-E*l,e[6]=f,e[7]=P,e[8]=p,e},t.scale=function(e,t,a){var r=a[0],o=a[1];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=o*t[3],e[4]=o*t[4],e[5]=o*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},t.fromTranslation=function(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e},t.fromRotation=function(e,t){var a=u(t),r=d(t);return e[0]=r,e[1]=a,e[2]=0,e[3]=-a,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.fromScaling=function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.fromMat2d=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e},t.fromQuat=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=a+a,n=r+r,d=o+o,u=a*s,i=r*s,c=r*n,m=o*s,f=o*n,P=o*d,p=l*s,E=l*n,y=l*d;return e[0]=1-c-P,e[3]=i-y,e[6]=m+E,e[1]=i+y,e[4]=1-u-P,e[7]=f-p,e[2]=m-E,e[5]=f+p,e[8]=1-u-c,e},t.normalFromMat4=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=t[4],n=t[5],d=t[6],u=t[7],i=t[8],c=t[9],m=t[10],f=t[11],P=t[12],p=t[13],E=t[14],y=t[15],A=a*n-r*s,O=a*d-o*s,R=a*u-l*s,L=r*d-o*n,S=r*u-l*n,_=o*u-l*d,N=i*p-c*P,I=i*E-m*P,Y=i*y-f*P,q=c*E-m*p,g=c*y-f*p,M=m*y-f*E,v=A*M-O*g+R*q+L*Y-S*I+_*N;return v?(v=1/v,e[0]=(n*M-d*g+u*q)*v,e[1]=(d*Y-s*M-u*I)*v,e[2]=(s*g-n*Y+u*N)*v,e[3]=(o*g-r*M-l*q)*v,e[4]=(a*M-o*Y+l*I)*v,e[5]=(r*Y-a*g-l*N)*v,e[6]=(p*_-E*S+y*L)*v,e[7]=(E*R-P*_-y*O)*v,e[8]=(P*S-p*R+y*A)*v,e):null},t.projection=function(e,t,a){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/a,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e},t.str=function(e){return'mat3('+e[0]+', '+e[1]+', '+e[2]+', '+e[3]+', '+e[4]+', '+e[5]+', '+e[6]+', '+e[7]+', '+e[8]+')'},t.frob=function(e){return n(s(e[0],2)+s(e[1],2)+s(e[2],2)+s(e[3],2)+s(e[4],2)+s(e[5],2)+s(e[6],2)+s(e[7],2)+s(e[8],2))},t.add=function(e,t,a){return e[0]=t[0]+a[0],e[1]=t[1]+a[1],e[2]=t[2]+a[2],e[3]=t[3]+a[3],e[4]=t[4]+a[4],e[5]=t[5]+a[5],e[6]=t[6]+a[6],e[7]=t[7]+a[7],e[8]=t[8]+a[8],e},t.subtract=o,t.multiplyScalar=function(e,t,a){return e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e[3]=t[3]*a,e[4]=t[4]*a,e[5]=t[5]*a,e[6]=t[6]*a,e[7]=t[7]*a,e[8]=t[8]*a,e},t.multiplyScalarAndAdd=function(e,t,a,r){return e[0]=t[0]+a[0]*r,e[1]=t[1]+a[1]*r,e[2]=t[2]+a[2]*r,e[3]=t[3]+a[3]*r,e[4]=t[4]+a[4]*r,e[5]=t[5]+a[5]*r,e[6]=t[6]+a[6]*r,e[7]=t[7]+a[7]*r,e[8]=t[8]+a[8]*r,e},t.exactEquals=function(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},t.equals=function(e,t){var a=e[0],r=e[1],o=e[2],l=e[3],s=e[4],n=e[5],d=e[6],u=e[7],f=e[8],P=t[0],p=t[1],E=t[2],y=t[3],A=t[4],O=t[5],R=t[6],L=t[7],S=t[8];return m(a-P)<=c.EPSILON*i(1,m(a),m(P))&&m(r-p)<=c.EPSILON*i(1,m(r),m(p))&&m(o-E)<=c.EPSILON*i(1,m(o),m(E))&&m(l-y)<=c.EPSILON*i(1,m(l),m(y))&&m(s-A)<=c.EPSILON*i(1,m(s),m(A))&&m(n-O)<=c.EPSILON*i(1,m(n),m(O))&&m(d-R)<=c.EPSILON*i(1,m(d),m(R))&&m(u-L)<=c.EPSILON*i(1,m(u),m(L))&&m(f-S)<=c.EPSILON*i(1,m(f),m(S))};var l=a(0),c=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(l);var f=t.mul=r,P=t.sub=o},function(a,s,f){'use strict';function P(){var e=new Y.ARRAY_TYPE(3);return e[0]=0,e[1]=0,e[2]=0,e}function p(e){var t=e[0],a=e[1],r=e[2];return n(t*t+a*a+r*r)}function E(e,t,a){var r=new Y.ARRAY_TYPE(3);return r[0]=e,r[1]=t,r[2]=a,r}function y(e,t,a){return e[0]=t[0]-a[0],e[1]=t[1]-a[1],e[2]=t[2]-a[2],e}function A(e,t,a){return e[0]=t[0]*a[0],e[1]=t[1]*a[1],e[2]=t[2]*a[2],e}function O(e,t,a){return e[0]=t[0]/a[0],e[1]=t[1]/a[1],e[2]=t[2]/a[2],e}function R(e,t){var a=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return n(a*a+r*r+o*o)}function L(e,t){var a=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return a*a+r*r+o*o}function S(e){var t=e[0],a=e[1],r=e[2];return t*t+a*a+r*r}function _(e,t){var a=t[0],r=t[1],o=t[2],l=a*a+r*r+o*o;return 0l?c:e(l)},s.str=function(e){return'vec3('+e[0]+', '+e[1]+', '+e[2]+')'},s.exactEquals=function(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]},s.equals=function(e,t){var a=e[0],r=e[1],o=e[2],l=t[0],s=t[1],n=t[2];return m(a-l)<=Y.EPSILON*i(1,m(a),m(l))&&m(r-s)<=Y.EPSILON*i(1,m(r),m(s))&&m(o-n)<=Y.EPSILON*i(1,m(o),m(n))};var I=f(0),Y=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(I),q=s.sub=y,g=s.mul=A,M=s.div=O,v=s.dist=R,h=s.sqrDist=L,T=s.len=p,b=s.sqrLen=S,x=s.forEach=function(){var e=P();return function(t,a,o,s,n,d){var u,i;for(a||(a=3),o||(o=0),i=s?r(s*a+o,t.length):t.length,u=o;ut[5]&t[0]>t[10]?(r=2*n(1+t[0]-t[5]-t[10]),e[3]=(t[6]-t[9])/r,e[0]=.25*r,e[1]=(t[1]+t[4])/r,e[2]=(t[8]+t[2])/r):t[5]>t[10]?(r=2*n(1+t[5]-t[0]-t[10]),e[3]=(t[8]-t[2])/r,e[0]=(t[1]+t[4])/r,e[1]=.25*r,e[2]=(t[6]+t[9])/r):(r=2*n(1+t[10]-t[0]-t[5]),e[3]=(t[1]-t[4])/r,e[0]=(t[8]+t[2])/r,e[1]=(t[6]+t[9])/r,e[2]=.25*r),e},t.fromRotationTranslationScale=function(e,t,a,r){var o=t[0],l=t[1],s=t[2],n=t[3],d=o+o,u=l+l,i=s+s,c=o*d,m=o*u,f=o*i,P=l*u,p=l*i,E=s*i,y=n*d,A=n*u,O=n*i,R=r[0],L=r[1],S=r[2];return e[0]=(1-(P+E))*R,e[1]=(m+O)*R,e[2]=(f-A)*R,e[3]=0,e[4]=(m-O)*L,e[5]=(1-(c+E))*L,e[6]=(p+y)*L,e[7]=0,e[8]=(f+A)*S,e[9]=(p-y)*S,e[10]=(1-(c+P))*S,e[11]=0,e[12]=a[0],e[13]=a[1],e[14]=a[2],e[15]=1,e},t.fromRotationTranslationScaleOrigin=function(e,t,a,r,l){var o=t[0],s=t[1],n=t[2],d=t[3],u=o+o,i=s+s,c=n+n,m=o*u,f=o*i,P=o*c,p=s*i,E=s*c,y=n*c,A=d*u,O=d*i,R=d*c,L=r[0],S=r[1],_=r[2],N=l[0],I=l[1],Y=l[2];return e[0]=(1-(p+y))*L,e[1]=(f+R)*L,e[2]=(P-O)*L,e[3]=0,e[4]=(f-R)*S,e[5]=(1-(m+y))*S,e[6]=(E+A)*S,e[7]=0,e[8]=(P+O)*_,e[9]=(E-A)*_,e[10]=(1-(m+p))*_,e[11]=0,e[12]=a[0]+N-(e[0]*N+e[4]*I+e[8]*Y),e[13]=a[1]+I-(e[1]*N+e[5]*I+e[9]*Y),e[14]=a[2]+Y-(e[2]*N+e[6]*I+e[10]*Y),e[15]=1,e},t.fromQuat=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=a+a,n=r+r,d=o+o,u=a*s,i=r*s,c=r*n,m=o*s,f=o*n,P=o*d,p=l*s,E=l*n,y=l*d;return e[0]=1-c-P,e[1]=i+y,e[2]=m-E,e[3]=0,e[4]=i-y,e[5]=1-u-P,e[6]=f+p,e[7]=0,e[8]=m+E,e[9]=f-p,e[10]=1-u-c,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},t.frustum=function(e,t,a,r,o,l,s){var n=1/(a-t),d=1/(o-r),u=1/(l-s);return e[0]=2*l*n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*l*d,e[6]=0,e[7]=0,e[8]=(a+t)*n,e[9]=(o+r)*d,e[10]=(s+l)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*(s*l)*u,e[15]=0,e},t.perspective=function(e,t,a,r,o){var s=1/l(t/2),n=1/(r-o);return e[0]=s/a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=(o+r)*n,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*o*r*n,e[15]=0,e},t.perspectiveFromFieldOfView=function(e,t,a,r){var o=l(t.upDegrees*c/180),s=l(t.downDegrees*c/180),n=l(t.leftDegrees*c/180),d=l(t.rightDegrees*c/180),u=2/(n+d),i=2/(o+s);return e[0]=u,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=-(.5*((n-d)*u)),e[9]=.5*((o-s)*i),e[10]=r/(a-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*a/(a-r),e[15]=0,e},t.ortho=function(e,t,a,r,o,l,s){var n=1/(t-a),d=1/(r-o),u=1/(l-s);return e[0]=-2*n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*d,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(t+a)*n,e[13]=(o+r)*d,e[14]=(s+l)*u,e[15]=1,e},t.lookAt=function(e,t,a,r){var o=void 0,l=void 0,s=void 0,d=void 0,u=void 0,i=void 0,c=void 0,f=void 0,p=void 0,E=void 0,y=t[0],A=t[1],O=t[2],R=r[0],L=r[1],S=r[2],_=a[0],N=a[1],I=a[2];return m(y-_)p&&(p=-p,i=-i,c=-c,m=-m,f=-f),1e-6<1-p?(P=e(p),E=u(P),y=u((1-l)*P)/E,A=u(l*P)/E):(y=1-l,A=l),r[0]=y*t+A*i,r[1]=y*s+A*c,r[2]=y*n+A*m,r[3]=y*d+A*f,r}function P(e,t){var a=t[0]+t[4]+t[8],r=void 0;if(0t[0]&&(o=1),t[8]>t[3*o+o]&&(o=2);var l=(o+1)%3,s=(o+2)%3;r=n(t[3*o+o]-t[3*l+l]-t[3*s+s]+1),e[o]=.5*r,r=.5/r,e[3]=(t[3*l+s]-t[3*s+l])*r,e[l]=(t[3*l+o]+t[3*o+l])*r,e[s]=(t[3*s+o]+t[3*o+s])*r}return e}Object.defineProperty(a,'__esModule',{value:!0}),a.setAxes=a.sqlerp=a.rotationTo=a.equals=a.exactEquals=a.normalize=a.sqrLen=a.squaredLength=a.len=a.length=a.lerp=a.dot=a.scale=a.mul=a.add=a.set=a.copy=a.fromValues=a.clone=void 0,a.create=l,a.identity=function(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e},a.setAxisAngle=s,a.getAxisAngle=function(t,a){var r=2*e(a[3]),o=u(r/2);return 0==o?(t[0]=1,t[1]=0,t[2]=0):(t[0]=a[0]/o,t[1]=a[1]/o,t[2]=a[2]/o),r},a.multiply=i,a.rotateX=function(e,t,a){a*=.5;var r=t[0],o=t[1],l=t[2],s=t[3],n=u(a),i=d(a);return e[0]=r*i+s*n,e[1]=o*i+l*n,e[2]=l*i-o*n,e[3]=s*i-r*n,e},a.rotateY=function(e,t,a){a*=.5;var r=t[0],o=t[1],l=t[2],s=t[3],n=u(a),i=d(a);return e[0]=r*i-l*n,e[1]=o*i+s*n,e[2]=l*i+r*n,e[3]=s*i-o*n,e},a.rotateZ=function(e,t,a){a*=.5;var r=t[0],o=t[1],l=t[2],s=t[3],n=u(a),i=d(a);return e[0]=r*i+o*n,e[1]=o*i-r*n,e[2]=l*i+s*n,e[3]=s*i-l*n,e},a.calculateW=function(e,t){var a=t[0],r=t[1],o=t[2];return e[0]=a,e[1]=r,e[2]=o,e[3]=n(m(1-a*a-r*r-o*o)),e},a.slerp=f,a.invert=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=a*a+r*r+o*o+l*l,n=s?1/s:0;return e[0]=-a*n,e[1]=-r*n,e[2]=-o*n,e[3]=l*n,e},a.conjugate=function(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e},a.fromMat3=P,a.fromEuler=function(e,t,a,r){var o=.5*c/180;t*=o,a*=o,r*=o;var l=u(t),s=d(t),n=u(a),i=d(a),m=u(r),f=d(r);return e[0]=l*i*f-s*n*m,e[1]=s*n*f+l*i*m,e[2]=s*i*m-l*n*f,e[3]=s*i*f+l*n*m,e},a.str=function(e){return'quat('+e[0]+', '+e[1]+', '+e[2]+', '+e[3]+')'};var p=r(0),E=o(p),y=r(1),A=o(y),O=r(2),R=o(O),L=r(3),S=o(L),_=a.clone=S.clone,N=a.fromValues=S.fromValues,I=a.copy=S.copy,Y=a.set=S.set,q=a.add=S.add,g=a.mul=i,M=a.scale=S.scale,v=a.dot=S.dot,h=a.lerp=S.lerp,T=a.length=S.length,b=a.len=T,x=a.squaredLength=S.squaredLength,D=a.sqrLen=x,k=a.normalize=S.normalize,w=a.exactEquals=S.exactEquals,V=a.equals=S.equals,j=a.rotationTo=function(){var e=R.create(),t=R.fromValues(1,0,0),r=R.fromValues(0,1,0);return function(o,l,a){var n=R.dot(l,a);return-.999999>n?(R.cross(e,t,l),1e-6>R.len(e)&&R.cross(e,r,l),R.normalize(e,e),s(o,e,Math.PI),o):.999999=i&&0<=j&&1>=j}function e(d,a,b){return(a[0]-d[0])*(b[1]-d[1])-(b[0]-d[0])*(a[1]-d[1])}function a(d,a,b){return 0e(d,a,b)}function g(d,a,b){return 0>=e(d,a,b)}function h(d,a,b,c){var f=Math.sqrt;if(!c)return 0===e(d,a,b);var g=tmpPoint1,h=tmpPoint2;g[0]=a[0]-d[0],g[1]=a[1]-d[1],h[0]=b[0]-a[0],h[1]=b[1]-a[1];var i=g[0]*h[0]+g[1]*h[1],j=f(g[0]*g[0]+g[1]*g[1]),k=f(h[0]*h[0]+h[1]*h[1]),l=Math.acos(i/(j*k));return lb?b%c+c:b%c]}function m(a){a.length=0}function n(a,b,c,d){for(var e=c;eJ.length)return e;if(w++,w>s)return console.warn("quickDecomp: max level ("+s+") reached."),e;for(var v=0;vD&&(D+=c.length),d=x,Dd[c][0])&&(c=e);return!a(l(b,c-1),l(b,c),l(b,c+1))&&(j(b),!0)}}} + +// c3/3rdparty/localforage.js +!function(c){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=c();else if("function"==typeof define&&define.amd)define([],c);else{var a;a="undefined"==typeof window?"undefined"==typeof global?"undefined"==typeof self?this:self:global:window,a.localforage=c()}}(function(){return function l(m,a,b){function d(e,f){if(!a[e]){if(!m[e]){var g="function"==typeof require&&require;if(!f&&g)return g(e,!0);if(c)return c(e,!0);var i=new Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}var j=a[e]={exports:{}};m[e][0].call(j.exports,function(b){var a=m[e][1][b];return d(a||b)},j,j.exports,l,m,a,b)}return a[e].exports}for(var c="function"==typeof require&&require,e=0;e=a.oldVersion&&b.createObjectStore(Q)}catch(b){if("ConstraintError"!==b.name)throw b;console.warn("The database \""+g.name+"\" has been upgraded from version "+a.oldVersion+" to version "+a.newVersion+", but the storage \""+g.storeName+"\" already exists.")}}),e.onerror=function(b){b.preventDefault(),c(e.error)},e.onsuccess=function(){h(e.result),k(g)}})}function n(b){return m(b,!1)}function o(b){return m(b,!0)}function p(g,a){if(!g.db)return!0;var b=!g.db.objectStoreNames.contains(g.storeName),c=g.versiong.db.version;if(c&&(g.version!==a&&console.warn("The database \""+g.name+"\" can't be downgraded from version "+g.db.version+" to version "+g.version+"."),g.version=g.db.version),d||b){if(b){var e=g.db.version+1;e>g.version&&(g.version=e)}return!0}return!1}function q(e){return new P(function(a,b){var c=new FileReader;c.onerror=b,c.onloadend=function(b){var c=btoa(b.target.result||"");a({__local_forage_encoded_blob:!0,data:c,type:e.type})},c.readAsBinaryString(e)})}function r(b){return e([d(atob(b.data))],{type:b.type})}function s(b){return b&&b.__local_forage_encoded_blob}function t(d){var e=this,a=e._initReady().then(function(){var b=S[e._dbInfo.name];if(b&&b.dbReady)return b.dbReady});return D(a,d,d),a}function u(f){j(f);for(var a,g=S[f.name],b=g.forages,c=0;c>4,j[h++]=(15&c)<<4|d>>2,j[h++]=(3&d)<<6|63&e;return i}function y(e){var a,b=new Uint8Array(e),c="";for(a=0;a>2],c+=X[(3&b[a])<<4|b[a+1]>>4],c+=X[(15&b[a+1])<<2|b[a+2]>>6],c+=X[63&b[a+2]];return 2==b.length%3?c=c.substring(0,c.length-1)+"=":1==b.length%3&&(c=c.substring(0,c.length-2)+"=="),c}function z(e,a,b,c){e.executeSql("CREATE TABLE IF NOT EXISTS "+a.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],b,c)}function A(g,i,b,c,d,e){g.executeSql(b,c,d,function(f,j){j.code===j.SYNTAX_ERR?f.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[i.storeName],function(f,a){a.rows.length?e(f,j):z(f,i,function(){f.executeSql(b,c,d,e)},e)},e):e(f,j)},e)}function B(j,a,i,c){var d=this;j=g(j);var b=new P(function(e,f){d.ready().then(function(){void 0===a&&(a=null);var g=a,h=d._dbInfo;h.serializer.serialize(a,function(a,b){b?f(b):h.db.transaction(function(b){A(b,h,"INSERT OR REPLACE INTO "+h.storeName+" (key, value) VALUES (?, ?)",[j,a],function(){e(g)},function(c,a){f(a)})},function(a){if(a.code===a.QUOTA_ERR){if(0 '__WebKitDatabaseInfoTable__'",[],function(b,c){for(var d=[],i=0;ie?void a(null):void j.ready().then(function(){v(j._dbInfo,U,function(c,d){if(c)return b(c);try{var f=d.objectStore(j._dbInfo.storeName),g=!1,h=f.openCursor();h.onsuccess=function(){var b=h.result;return b?void(0===e?a(b.key):g?a(b.key):(g=!0,b.advance(e))):void a(null)},h.onerror=function(){b(h.error)}}catch(c){b(c)}})}).catch(b)});return C(b,a),b},keys:function(d){var i=this,a=new P(function(d,b){i.ready().then(function(){v(i._dbInfo,U,function(a,c){if(a)return b(a);try{var e=c.objectStore(i._dbInfo.storeName),f=e.openCursor(),g=[];f.onsuccess=function(){var a=f.result;return a?void(g.push(a.key),a.continue()):void d(g)},f.onerror=function(){b(f.error)}}catch(c){b(c)}})}).catch(b)});return C(a,d),a},dropInstance:function(i,m){m=h.apply(this,arguments);var b=this.config();i="function"!=typeof i&&i||{},i.name||(i.name=i.name||b.name,i.storeName=i.storeName||b.storeName);var c,d=this;if(i.name){var e=i.name===b.name&&d._dbInfo.db,f=e?P.resolve(d._dbInfo.db):n(i).then(function(a){var b=S[i.name],c=b.forages;b.db=a;for(var d=0;d{e="Windows";const b=a.split(" ")[2];b&&("5.0"===b?f="2000":"5.1"===b?f="XP":"5.2"===b?f="XP":"6.0"===b?f="Vista":"6.1"===b?f="7":"6.2"===b?f="8":"6.3"===b?f="8.1":"10.0"===b?f="10":void 0)}),a("isOSX",d.OSX,(a)=>{e="Mac OS X";const b=a.split(" ")[3];b&&(f=b.replace("_","."))}),a("isLinux",c.linux,()=>{e="Linux"}),a("isChromeOS",c.chromeOS,()=>{e="Chrome OS"}),a("isAndroid",!c.windowsTizen&&d.android,(a)=>{e="Android";const b=a.split(" ")[1];b&&(f=b)}),a("isTizen",d.tizen,(a)=>{e="Tizen";const b=a.split(" ")[1];b&&(f=b)}),a("isIPhone",!c.windowsTizen&&d.iphone,(a)=>{e="iOS";const b=a.split(" ")[2];b&&(f=b.replace("_","."))}),a("isIPad",!c.windowsTizen&&d.ipad,(a)=>{e="iOS";const b=a.split(" ")[3];b&&(f=b.replace("_","."))}),a("isWindowsPhone",d.winPhone,(a)=>{e="Windows Phone";const b=a.split(" ")[2];b&&(f=b)}),a("isWindowsPhoneOS",d.winPhoneOS,(a)=>{e="Windows Phone";const b=a.split(" ")[3];b&&(f=b)}),a("isBlackberry",c.blackberry,()=>{e="Blackberry",f="10",h="stock",k="webkit"}),a("isChrome",!c.edge&&!c.opera&&d.chrome,(a)=>{h="Chrome",k="Blink";const b=a.split("/")[1];b&&(i=b)}),a("isOpera",d.opera,(a)=>{h="Opera",k="Blink";const b=a.split("/")[1];b&&(i=b)}),a("isChromium",d.chromium,(a)=>{h="Chromium",k="Blink";const b=a.split("/")[1];b&&(i=b)}),a("isFirefox",d.firefox,(a)=>{h="Firefox",k="Gecko";const b=a.split("/")[1];b&&(i=b)}),a("isInternetExplorer",d.ie,(a)=>{h="Internet Explorer",k="Trident";const b=a.split(" ")[1];b&&(i=b)}),a("isTrident","Internet Explorer"!=h&&c.trident,()=>{k="Trident";const a=/rv:[0-9.]+/i.exec(b);if(a&&a.length){h="Internet Explorer";const b=a[0].split(":")[1];b&&(i=b)}}),a("isEdge",d.edge,(a)=>{h="Edge",k="Edge";const b=a.split("/")[1];b&&(i=b)}),a("isSafari",c.safari&&!c.nokia&&!c.chrome&&!c.chromium&&!c.genericIE&&!c.blackberry,()=>{h="Safari",k="WebKit";const a=/version\/[0-9.]+/i.exec(b),c=/crios\/[0-9.]+/i.exec(b),d=/fxios\/[0-9.]+/i.exec(b);if(a&&a.length){const b=a[0].split("/")[1];b&&(i=b)}if(c&&c.length){h="Chrome for iOS";const a=c[0].split("/")[1];a&&(i=a)}if(d&&d.length){h="Firefox for iOS";const a=d[0].split("/")[1];a&&(i=a)}}),a("isSilk",d.silk,(a)=>{h="Silk";const b=a.split("/")[1];b&&(i=b)}),a("isCrosswalk",c.crosswalk,()=>l="crosswalk"),a("isCordova",self["device"]&&(self["device"]["cordova"]||self["device"]["phonegap"]),()=>l="cordova"),a("isNWJS",d.nwjs,(a)=>{l="nwjs",h="NW.js",k="Chromium";const b=a.split("/")[1];b&&(i=b)}),a("isAmazonWebApp",c.amazonwebapp,()=>l="webapp"),a("isHomeScreenWebApp","nwjs"!=l&&"undefined"!=typeof window&&(window.matchMedia&&window.matchMedia("(display-mode: standalone)").matches||navigator["standalone"]),()=>l="webapp"),a("isFalseSafari","Safari"==h&&("Android"==e||"Tizen"==e||"Blackberry"==e),()=>h="stock"),a("isAndroidWebview","Chrome"==h&&"browser"==l&&c.webview,()=>l="webview"),a("isFirefoxOS","Firefox"==h&&e=="(unknown)",()=>e="Firefox OS"),a("isAndroidFallback",e=="(unknown)"&&!c.windowsTizen&&c.android,()=>e="Android"),a("isTridentFallback",e=="(unknown)"&&c.trident,()=>k="Trident"),a("isWebkitFallback",e=="(unknown)"&&c.webkit,()=>k="WebKit"),a("is64Bit",((a)=>a.test(b)||a.test(navigator.platform)||"x64"===navigator.cpuClass)(/x86_64|x86-64|win64|x64;|x64\)|x64_|amd64|wow64|ia64|arm64|arch64|sparc64|ppc64|irix64/i),()=>g="64-bit"),a("is32Bit",((a)=>a.test(b)||a.test(navigator.platform)||"x86"===navigator.cpuClass)(/x86;|x86\)|i86|i386|i486|i586|i686|armv1|armv2|armv3|armv4|armv5|armv6|armv7/i),()=>g="32-bit"),a("is64BitFallback",g=="(unknown)"&&"Mac OS X"==e&&10.7<=parseFloat(f),()=>g="64-bit"),a("is32BitFallback",g=="(unknown)"&&"Windows"==e||"Android"==e&&5>parseFloat(f),()=>g="32-bit"),a("is32BitBrowser","32-bit"==g||/wow64/i.test(b),()=>j="32-bit"),a("is64BitBrowser",/win64/i.test(b),()=>j="64-bit"),a("isDesktop",(()=>"Windows"==e||"Mac OS X"==e||"Linux"==e||"Chrome OS"==e||"nwjs"==l)(),()=>m=!0),"Edge"==k&&"undefined"!=typeof Windows&&"undefined"!=typeof Windows["System"]&&(l="windows-store"),n="nwjs"==l||"windows-store"==l,C3.Platform={OS:e,OSVersion:f,OSArchitecture:g,Browser:h,BrowserVersion:i,BrowserVersionNumber:parseFloat(i),BrowserArchitecture:j,BrowserEngine:k,Context:l,IsDesktop:m,IsMobile:!m,IsDesktopApp:n,IsChromeWebStore:!!(self["chrome"]&&self["chrome"]["runtime"]&&self["chrome"]["runtime"]["id"]),IsAppleOS:"Mac OS X"==e||"iOS"==e}} + +// ../lib/misc/supports.js +"use strict";{if(C3.Supports={},C3.Supports.WebAnimations=(()=>{try{if("undefined"==typeof document)return!1;const a=document.createElement("div");if("undefined"==typeof a.animate)return!1;const b=a.animate([{opacity:"0"},{opacity:"1"}],1e3);return"undefined"!=typeof b.reverse}catch(a){return!1}})(),C3.Supports.DialogElement="undefined"!=typeof HTMLDialogElement,C3.Supports.RequestIdleCallback=!!self.requestIdleCallback,C3.Supports.ImageBitmap="Safari"!==C3.Platform.Browser&&"Firefox"!==C3.Platform.Browser&&!!self.createImageBitmap,C3.Supports.ImageBitmapOptions=!1,C3.Supports.ImageBitmap)try{self.createImageBitmap(new ImageData(32,32),{premultiplyAlpha:"none"}).then(()=>{C3.Supports.ImageBitmapOptions=!0}).catch(()=>{C3.Supports.ImageBitmapOptions=!1})}catch(a){C3.Supports.ImageBitmapOptions=!1}C3.Supports.ClipboardReadText=!!(navigator["clipboard"]&&navigator["clipboard"]["readText"]&&"Firefox"!==C3.Platform.Browser),C3.Supports.Proxies="undefined"!=typeof Proxy,C3.Supports.DownloadAttribute=(()=>{if("undefined"==typeof document)return!1;const b=document.createElement("a");return"undefined"!=typeof b.download})(),C3.Supports.CanvasToBlob=(()=>"undefined"!=typeof HTMLCanvasElement&&HTMLCanvasElement.prototype.toBlob)(),C3.Supports.CSSElement="undefined"!=typeof CSS&&CSS.supports("background","element(#test)"),C3.Supports.Fetch="function"==typeof fetch,C3.Supports.PersistentStorage=!!(self.isSecureContext&&"Opera"!==C3.Platform.Browser&&navigator["storage"]&&navigator["storage"]["persist"]),C3.Supports.StorageQuotaEstimate=!!(self.isSecureContext&&navigator["storage"]&&navigator["storage"]["estimate"]),C3.Supports.Fullscreen=()=>{if("undefined"==typeof document)return!1;const a=document.documentElement;return!!(a.requestFullscreen||a.msRequestFullscreen||a.mozRequestFullScreen||a.webkitRequestFullscreen)};const a=[{name:"A",value:12},{name:"B",value:13},{name:"C",value:13},{name:"D",value:13},{name:"E",value:13},{name:"F",value:13},{name:"G",value:14},{name:"H",value:12},{name:"I",value:12},{name:"J",value:13},{name:"K",value:14}],b=Math.ceil(496/a.length),c=(b+"").length,d=[];for(const e of a)for(let a=0;a<=b;a++)d.push({name:e.name+(a+"")["padStart"](c,"0"),value:e.value});d.sort((c,a)=>a.value-c.value);const e=d.reduce((a,b)=>{const c=b.name.slice(0,1),d=a.slice(-1);return d===c?a:a+c},"");C3.Supports.ArraySortProbablyStable="GKBCDEFJAHI"===e} + +// ../lib/misc/polyfills.js +"use strict";{if(!String.prototype.trimStart){const a=/^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]*/;String.prototype.trimStart=function(){return this.replace(a,"")}}if(!String.prototype.trimEnd){const a=/[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]*$/;String.prototype.trimEnd=function(){return this.replace(a,"")}}if(Array.prototype.values||(Array.prototype.values=function*(){for(const a of this)yield a}),!Array.prototype.flat){function a(b,c){return b.reduce((b,d)=>0navigator["webkitTemporaryStorage"]["queryUsageAndQuota"]((b,c)=>a({"usage":b,"quota":c}),b))}),"undefined"==typeof HTMLCollection||HTMLCollection.prototype[Symbol.iterator]||(HTMLCollection.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}});"undefined"==typeof NodeList||NodeList.prototype[Symbol.iterator]||(NodeList.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}});"undefined"==typeof DOMTokenList||DOMTokenList.prototype[Symbol.iterator]||(DOMTokenList.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}});if("undefined"==typeof FileList||FileList.prototype[Symbol.iterator]||(FileList.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}}),"undefined"==typeof TextEncoder&&(self.TextEncoder=class{constructor(){Object.defineProperty(this,"encoding",{"value":"utf-8","writable":!1})}encode(a){for(var b=a.length,c=-1,d=new Uint8Array(3*b),e=0,f=0,g=0;g!==b;){if(e=a.charCodeAt(g),g+=1,55296<=e&&56319>=e){if(g===b){d[c+=1]=239,d[c+=1]=191,d[c+=1]=189;break}if(f=a.charCodeAt(g),!(56320<=f&&57343>=f)){d[c+=1]=239,d[c+=1]=191,d[c+=1]=189;continue}else if(e=1024*(e-55296)+f-56320+65536,g+=1,65535>>18,d[c+=1]=128|63&e>>>12,d[c+=1]=128|63&e>>>6,d[c+=1]=128|63&e;continue}}127>=e?d[c+=1]=0|e:2047>=e?(d[c+=1]=192|e>>>6,d[c+=1]=128|63&e):(d[c+=1]=224|e>>>12,d[c+=1]=128|63&e>>>6,d[c+=1]=128|63&e)}return new Uint8Array(d.buffer.slice(0,c+1))}toString(){return"[object TextEncoder]"}},TextEncoder[Symbol.toStringTag]="TextEncoder"),"undefined"==typeof TextDecoder){function a(a){const b=a[Symbol.iterator]();return{next:()=>b.next(),[Symbol.iterator](){return this}}}function b(a){const b=a.next();if(b.done)throw new Error("unexpected end of input");if(0!=(128^192&b.value))throw new Error("invalid byte");return 63&b.value}const c=new Map;c.set("utf-8",(c,d)=>{let e;if(c.buffer)e=new Uint8Array(c.buffer,c.byteOffset,c.byteLength);else if(e instanceof ArrayBuffer)e=new Uint8Array(c);else throw new Error("Invalid parameter");const f=a(e),g=[];try{for(const a of f){let c;if(127>a)c=127&a;else if(223>a)c=(31&a)<<6|b(f);else if(239>a)c=(15&a)<<12|b(f)<<6|b(f);else if(247>a)c=(7&a)<<18|b(f)<<12|b(f)<<6|b(f);else throw new Error("Invalid character");g.push(String.fromCodePoint(c))}}catch(a){if(d)throw a;g.push("\uFFFD")}return g.join("")}),c.set("utf8",c.get("utf-8")),c.set("utf-16le",()=>{throw new Error("utf-16le decoder not implemented")}),self.TextDecoder=class{constructor(a="utf-8",b={}){const d=c.get(a);if(!d)throw new Error(`TextDecoder polyfill does not support "${a}"`);Object.defineProperty(this,"fatal",{"value":!0===b["fatal"],"writable":!1}),Object.defineProperty(this,"_decoder",{"value":d,"writable":!1}),Object.defineProperty(this,"encoding",{"value":a,"writable":!1})}decode(a){return this["_decoder"](a,this["fatal"])}toString(){return"[object TextDecoder]"}},TextDecoder[Symbol.toStringTag]="TextDecoder"}"undefined"==typeof self.isSecureContext&&(self.isSecureContext="https:"===location.protocol)} + +// c3/lib/misc/assert.js +"use strict";{function a(a){let b=C3.GetCallStack();console.error("Assertion failure: "+a+"\n\nStack trace:\n"+b)}self.assert=function(b,c){b||a(c)}} + +// ../lib/misc/typeChecks.js +"use strict";{C3.IsNumber=function(a){return"number"==typeof a},C3.IsFiniteNumber=function(a){return C3.IsNumber(a)&&isFinite(a)},C3.RequireNumber=function(a){if(!C3.IsNumber(a))throw new TypeError("expected number")},C3.RequireOptionalNumber=function(a){C3.IsNullOrUndefined(a)},C3.RequireNumberInRange=function(a,b,c){if(!C3.IsNumber(a)||isNaN(a)||b>a||cC3.getName(a))),b=[...a].join(",");console.warn(`An object derived from DefendedBase was not protected with debugDefend(). This will disable some checks. See the coding guidelines! Possible affected class names: ${b}`),f.clear(),g.clear()}}function d(a){let b=new Set;for(let c in a)b.add(c);return b}function e(a,b){let c=d(b),e=l.get(a);if(e){let b=[];for(let a of e.values())c.has(a)?c.delete(a):b.push(a);C3.appendArray(b,[...c]),b.length&&console.warn(`[Defence] '${C3.getName(a)}' constructor creates inconsistent properties: ${b.join(", ")}`)}else l.set(a,c)}C3.GetCallStack=function(){return new Error().stack},C3.Debugger=function(){debugger},C3.cast=function(a,b){return a&&a instanceof b?a:null},C3.getName=function(a){return"undefined"==typeof a?"undefined":null===a?"null":"boolean"==typeof a?"":C3.IsNumber(a)?"":C3.IsString(a)?"":C3.IsArray(a)?"":"symbol"==typeof a?"<"+a.toString()+">":C3.IsFunction(a)?a.name&&"Function"!==a.name?a.name:"":"object"==typeof a?a.constructor&&a.constructor.name&&"Object"!==a.constructor.name?a.constructor.name:"":""},C3.getType=function(a){return null===a?"null":Array.isArray(a)?"array":typeof a},C3.range=function*(c,a){if(!isFinite(Math.abs(c-a)))throw new Error("Invalid parameters");if(c>a)for(let b=c-1;b>=a;b--)yield b;else for(let b=c;b1/a}const b=2*Math.PI,c=Math.PI/180,d=180/Math.PI;C3.wrap=function(a,b,c){var d=Math.floor;if(a=d(a),b=d(b),c=d(c),aa?a:c},C3.clampAngle=function(c){return c%=b,0>c&&(c+=b),c},C3.toRadians=function(a){return a*c},C3.toDegrees=function(a){return a*d},C3.distanceTo=function(a,b,c,d){return Math.hypot(c-a,d-b)},C3.distanceSquared=function(a,b,c,d){const e=c-a,f=d-b;return e*e+f*f},C3.angleTo=function(a,b,c,d){return Math.atan2(d-b,c-a)},C3.angleDiff=function(a,b){var c=Math.cos,d=Math.sin;if(a===b)return 0;let e=d(a),f=c(a),g=d(b),h=c(b),i=e*g+f*h;return 1<=i?0:-1>=i?Math.PI:Math.acos(i)},C3.angleRotate=function(a,b,c){var d=Math.cos,e=Math.sin;let f=e(a),g=d(a),h=e(b),i=d(b);return Math.acos(f*h+g*i)>c?0=f*g-e*h},C3.angleLerp=function(c,a,b){let d=C3.angleDiff(c,a);return C3.angleClockwise(a,c)?C3.clampAngle(c+d*b):C3.clampAngle(c-d*b)},C3.lerp=function(c,a,b){return c+b*(a-c)},C3.unlerp=function(c,a,b){return c===a?0:(b-c)/(a-c)},C3.relerp=function(e,a,b,f,c){return C3.lerp(f,c,C3.unlerp(e,a,b))},C3.qarp=function(d,a,b,c){return C3.lerp(C3.lerp(d,a,c),C3.lerp(a,b,c),c)},C3.cubic=function(e,a,b,c,d){return C3.lerp(C3.qarp(e,a,b,d),C3.qarp(a,b,c,d),d)},C3.cosp=function(c,a,b){return(c+a+(c-a)*Math.cos(b*Math.PI))/2},C3.isPOT=function(a){return 0b;b<<=1)a|=a>>b;return a+1},C3.roundToNearestFraction=function(a,b){return Math.round(a*b)/b},C3.floorToNearestFraction=function(a,b){return Math.floor(a*b)/b},C3.round6dp=function(a){return Math.round(1e6*a)/1e6},C3.toFixed=function(a,b){let c=a.toFixed(b),d=c.length-1;for(;0<=d&&"0"===c.charAt(d);--d);return 0<=d&&"."===c.charAt(d)&&--d,0>d?c:c.substr(0,d+1)},C3.PackRGB=function(a,b,c){return C3.clamp(a,0,255)|C3.clamp(b,0,255)<<8|C3.clamp(c,0,255)<<16};const e=1024;C3.PackRGBAEx=function(a,b,c,d){var f=Math.floor;return a=C3.clamp(f(1024*a),-8192,8191),b=C3.clamp(f(1024*b),-8192,8191),c=C3.clamp(f(1024*c),-8192,8191),d=C3.clamp(f(1023*d),0,1023),0>a&&(a+=16384),0>b&&(b+=16384),0>c&&(c+=16384),-(16384*(16384*a)*e+16384*b*e+c*e+d)},C3.PackRGBEx=function(a,b,c){return C3.PackRGBAEx(a,b,c,1)},C3.GetRValue=function(a){if(0<=a)return(255&a)/255;else{let b=Math.floor(-a/274877906944);return 8191>8)/255;else{let b=Math.floor(-a%274877906944/16777216);return 8191>16)/255;else{let b=Math.floor(-a%16777216/e);return 8191c(b-e))return d.slice(0);if(e=a/d[1]*d[0],1>c(b-e))return[d[1],d[0]]}let e=C3.greatestCommonDivisor(a,b);return[a/e,b/e]},C3.segmentsIntersect=function(a,b,c,e,f,g,h,i){var j=Math.abs;let k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(ao)return!1;if(bq)return!1;let s=f-a+h-c,t=g-b+i-e,u=c-a,v=e-b,w=h-f,x=i-g,y=j(v*w-x*u);if(j(w*t-x*s)>y)return!1;return j(u*t-v*s)<=y},C3.segmentsIntersectPreCalc=function(a,b,c,e,f,g,h,i,j,k,l,m){var n=Math.abs;let o=0,p=0,q=0,r=0;if(jo)return!1;if(kq)return!1;let s=j-a+l-c,t=k-b+m-e,u=c-a,v=e-b,w=l-j,x=m-k,y=n(v*w-x*u);if(n(w*t-x*s)>y)return!1;return n(u*t-v*s)<=y},C3.segmentIntersectsQuad=function(a,b,c,d,e){let f=0,g=0,h=0,i=0;ab?"":a.substr(b)},C3.GetFileNamePart=function(a){let b=a.lastIndexOf(".");return 1>b?a:a.substr(0,b)},C3.NormalizeFileSeparator=function(a){return a.replace(/\\/g,"/")},C3.ParseFilePath=function(a){a=C3.NormalizeFileSeparator(a);let b=/^\w\:\//.exec(a);b?(b=b[0],a=a.slice(3)):b="";const c=a.lastIndexOf("/")+1;let d,e="",f=a,g="";0!=c&&(e=a.slice(0,c-1),f=a.slice(c)),d=f;const h=f.lastIndexOf(".");return 0{self.setTimeout(c,a,b)})},C3.swallowException=function(a){try{a()}catch(a){C3.isDebug&&console.warn("Swallowed exception: ",a)}},C3.noop=function(){},C3.equalsNoCase=function(c,d){return"string"==typeof c&&"string"==typeof d&&!(c.length!==d.length)&&(!(c!==d)||c.toLowerCase()===d.toLowerCase())},C3.stableSort=function(a,c){if(C3.Supports.ArraySortProbablyStable)return void a.sort(c);const b=a.map((a,b)=>[a,b]);b.sort((d,a)=>{const b=c(d[0],a[0]);return 0===b?d[1]-a[1]:b});for(let d=0,e=a.length;dd&&C3.extendArray(a,b,c)},C3.shallowAssignArray=function(a,b){C3.clearArray(a),C3.appendArray(a,b)},C3.appendArray=function(c,a){for(let b=0,d=a.length;bb||b>=a.length)){let c=a.length-1;for(let d=b;dc:!(5!=b)&&a>=c},C3.hasAnyOwnProperty=function(a){for(let b in a)if(a.hasOwnProperty(b))return!0;return!1},C3.PromiseAllWithProgress=function(a,b){return a.length?new Promise((c,d)=>{const e=[];let f=0,g=!1;for(let h=0,i=a.length;h{g||(e[h]=d,++f,f===a.length?c(e):b(f,a.length))}).catch((a)=>{g=!0,d(a)})}):Promise.resolve([])};let c=[];C3.AddLibraryMemoryCallback=function(a){c.push(a)},C3.GetEstimatedLibraryMemoryUsage=function(){let a=0;for(let b of c){let c=b();a+=c}return Math.floor(a)}} + +// c3/lib/misc/runtimeutil.js +"use strict";C3.IsAbsoluteURL=function(a){return /^(?:[a-z]+:)?\/\//.test(a)||"data:"===a.substr(0,5)||"blob:"===a.substr(0,5)},C3.IsRelativeURL=function(a){return!C3.IsAbsoluteURL(a)},C3.ThrowIfNotOk=function(a){if(!a.ok)throw new Error(`fetch '${a.url}' response returned ${a.status} ${a.statusText}`)},C3.FetchOk=function(a,b){return fetch(a,b).then((a)=>(C3.ThrowIfNotOk(a),a))},C3.FetchText=function(a){return C3.FetchOk(a).then((a)=>a.text())},C3.FetchJson=function(a){return C3.FetchOk(a).then((a)=>a.json())},C3.FetchBlob=function(a){return C3.FetchOk(a).then((a)=>a.blob())},C3.FetchArrayBuffer=function(a){return C3.FetchOk(a).then((a)=>a.arrayBuffer())},C3.FetchImage=function(a){return new Promise((b,c)=>{const d=new Image;d.onload=()=>b(d),d.onerror=(a)=>c(a),d.src=a})},C3.BlobToArrayBuffer=function(a){return new Promise((b,c)=>{const d=new FileReader;d.onload=()=>b(d.result),d.onerror=()=>c(d.error),d.readAsArrayBuffer(a)})},C3.BlobToString=function(a){return new Promise((b,c)=>{const d=new FileReader;d.onload=()=>b(d.result),d.onerror=()=>c(d.error),d.readAsText(a)})},C3.BlobToJson=function(a){return C3.BlobToString(a).then((a)=>JSON.parse(a))},C3.BlobToImage=async function(a,b){let c=URL.createObjectURL(a);try{const a=await C3.FetchImage(c);return URL.revokeObjectURL(c),c="",b&&"function"==typeof a["decode"]&&(await a["decode"]()),a}finally{c&&URL.revokeObjectURL(c)}},C3.CreateCanvas=function(a,b){if("undefined"!=typeof document&&"function"==typeof document.createElement){const c=document.createElement("canvas");return c.width=a,c.height=b,c}return new OffscreenCanvas(a,b)},C3.CanvasToBlob=function(a,b,c){return"number"!=typeof c&&(c=1),b=b||"image/png",c=C3.clamp(c,0,1),a.toBlob?new Promise((d)=>a.toBlob(d,b,c)):a["convertToBlob"]?a["convertToBlob"]({"type":b,"quality":c}):C3.Asyncify(()=>C3.CanvasToBlobSync(a,b,c))},C3.CanvasToBlobSync=function(a,b,c){return"number"!=typeof c&&(c=1),b=b||"image/png",c=C3.clamp(c,0,1),C3.DataURIToBinaryBlob(a.toDataURL(b,c))},C3.DataURIToBinaryBlob=function(a){const b=C3.ParseDataURI(a);return C3.BinaryStringToBlob(b.data,b.mime_type)},C3.ParseDataURI=function(a){if("data:"!==a.substr(0,5))throw new URIError("expected data: uri");let b=a.indexOf(",");if(0>b)throw new URIError("expected comma in data: uri");let c,d=a.substring(5,b),e=a.substring(b+1),f=d.split(";"),g=f[0]||"",h=f[1],i=f[2];return c="base64"===h||"base64"===i?atob(e):decodeURIComponent(e),{mime_type:g,data:c}},C3.BinaryStringToBlob=function(a,b){let c,d,e=a.length,f=e>>2,g=new Uint8Array(e),h=new Uint32Array(g.buffer,0,f);for(c=0,d=0;cC3.DrawableToBlob(a,b,c));if(C3.Supports.ImageBitmap)return createImageBitmap(a).then((a)=>C3.DrawableToBlob(a,b,c));else{const d=C3.CreateCanvas(a.width,a.height),e=d.getContext("2d");return e.putImageData(a,0,0),C3.CanvasToBlob(d,b,c)}},C3.CopySet=function(a,b){a.clear();for(const c of b)a.add(c)},C3.MapToObject=function(a){const b=Object.create(null);for(const[c,d]of a.entries())b[c]=d;return b},C3.ObjectToMap=function(a,b){b.clear();for(const[c,d]of Object.entries(a))b.set(c,d)},C3.ToSuperJSON=function a(b){if("object"==typeof b&&null!==b){if(b instanceof Set)return{"_c3type_":"set","data":[...b].map((b)=>a(b))};if(b instanceof Map)return{"_c3type_":"map","data":[...b].map((b)=>[b[0],a(b[1])])};else{const c=Object.create(null);for(const[d,e]of Object.entries(b))c[d]=a(e);return c}}return b},C3.FromSuperJSON=function a(b){if("object"==typeof b&null!==b){if("set"===b["_c3type_"])return new Set(b["data"].map((b)=>a(b)));if("map"===b["_c3type_"])return new Map(b["data"].map((b)=>[b[0],a(b[1])]));else{const c=Object.create(null);for(const[d,e]of Object.entries(b))c[d]=a(e);return c}}return b},C3.CSSToCamelCase=function(a){let b="",c=!1;for(const d of a)"-"===d?c=!0:c?(b+=d.toUpperCase(),c=!1):b+=d;return b},C3.IsIterator=function(a){return"object"==typeof a&&"function"==typeof a.next}; + +// ../lib/misc/color.js +"use strict";{function a(a){return 0===a.length?"00":1===a.length?"0"+a:a}function c(a,b,c){return 0>c&&(c+=1),1b.length)return!1;const c=parseInt(b[0].trim(),10)/255,d=parseInt(b[1].trim(),10)/255,e=parseInt(b[2].trim(),10)/255;return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),this.setA(1),!0}parseCommaSeparatedPercentageRgb(a){if("string"!=typeof a)return!1;a=a.replace(/^rgb\(|\)|%/,"");const b=a.split(",");if(3>b.length)return!1;const c=parseInt(b[0].trim(),10)/100,d=parseInt(b[1].trim(),10)/100,e=parseInt(b[2].trim(),10)/100;return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),this.setA(1),!0}parseCommaSeparatedRgba(a){if("string"!=typeof a)return!1;a=a.replace(/^rgba\(|\)|%/,"");const b=a.split(",");if(4>b.length)return!1;const c=parseInt(b[0].trim(),10)/255,d=parseInt(b[1].trim(),10)/255,e=parseInt(b[2].trim(),10)/255,f=parseFloat(b[3].trim());return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),isFinite(f)&&this.setA(f),!0}parseCommaSeparatedPercentageRgba(a){if("string"!=typeof a)return!1;a=a.replace(/^rgba\(|\)|%/,"");const b=a.split(",");if(4>b.length)return!1;const c=parseInt(b[0].trim(),10)/100,d=parseInt(b[1].trim(),10)/100,e=parseInt(b[2].trim(),10)/100,f=parseFloat(b[3].trim());return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),isFinite(f)&&this.setA(f),!0}parseString(a){if("string"!=typeof a)return!1;if(a=a.replace(/\s+/,""),a.includes(",")){if(a.startsWith("rgb("))return a.includes("%")?this.parseCommaSeparatedPercentageRgb(a):this.parseCommaSeparatedRgb(a);if(a.startsWith("rgba("))return a.includes("%")?this.parseCommaSeparatedPercentageRgba(a):this.parseCommaSeparatedRgba(a);if(a.startsWith("hsl(")||a.startsWith("hsla("))return this.parseHSLString(a);else{const b=a.split(",");return a.includes("%")?3===b.length?this.parseCommaSeparatedPercentageRgb(a):4===b.length&&this.parseCommaSeparatedPercentageRgba(a):3===b.length?this.parseCommaSeparatedRgb(a):4===b.length&&this.parseCommaSeparatedRgba(a)}}else return this.parseHexString(a)}toJSON(){return[this._r,this._g,this._b,this._a]}setFromHSLA(d,e,f,h){let a,i,g;if(d%=360,e=C3.clamp(e,0,100),f=C3.clamp(f,0,100),h=C3.clamp(h,0,1),d/=360,e/=100,f/=100,0===e)a=i=g=f;else{const b=.5>f?f*(1+e):f+e-f*e,h=2*f-b;a=c(h,b,d+1/3),i=c(h,b,d),g=c(h,b,d-1/3)}return this.setR(a),this.setG(i),this.setB(g),this.setA(h),this}parseHSLString(a){const c=a.replace(/ |hsl|hsla|\(|\)|;/gi,""),e=b.exec(c),f=d.exec(c);return e&&4===e.length?(this.setFromHSLA(+e[1],+e[2],+e[3],1),!0):!!(f&&5===f.length)&&(this.setFromHSLA(+e[1],+e[2],+e[3],+e[4]),!0)}toHSLAString(){var c=Math.round;const e=this._r,f=this._g,g=this._b,b=this._a,a=Math.max(e,f,g),i=Math.min(e,f,g);let j,h,k=(a+i)/2;if(a===i)j=h=0;else{const b=a-i;h=.5a.length||(this._r=a[0],this._g=a[1],this._b=a[2],this._a=4<=a.length?a[3]:1)}set r(a){this.setR(a)}get r(){return this.getR()}set g(a){this.setG(a)}get g(){return this.getG()}set b(a){this.setB(a)}get b(){return this.getB()}set a(b){this.setA(b)}get a(){return this.getA()}setAtIndex(a,b){switch(a){case 0:this.setR(b);break;case 1:this.setG(b);break;case 2:this.setB(b);break;case 3:this.setA(b);break;default:throw new RangeError("invalid color index");}}getAtIndex(a){switch(a){case 0:return this.getR();case 1:return this.getG();case 2:return this.getB();case 3:return this.getA();default:throw new RangeError("invalid color index");}}static Diff(a,b){var c=Math.min,d=Math.max;const e=new C3.Color;return e.setR(d(a._r,b._r)-c(a._r,b._r)),e.setG(d(a._g,b._g)-c(a._g,b._g)),e.setB(d(a._b,b._b)-c(a._b,b._b)),e.setA(d(a._a,b._a)-c(a._a,b._a)),e}},C3.Color.White=Object.freeze(C3.New(C3.Color,1,1,1,1)),C3.Color.Black=Object.freeze(C3.New(C3.Color,0,0,0,1)),C3.Color.TransparentBlack=Object.freeze(C3.New(C3.Color,0,0,0,0))} + +// ../lib/misc/vector2.js +"use strict";C3.Vector2=class{constructor(a,b){this._x=0,this._y=0,a instanceof C3.Vector2?this.copy(a):this.set(a||0,b||0)}set(a,b){this._x=+a,this._y=+b}copy(a){this._x=a._x,this._y=a._y}equals(a){return this._x===a._x&&this._y===a._y}setX(a){this._x=+a}getX(){return this._x}setY(a){this._y=+a}getY(){return this._y}toArray(){return[this._x,this._y]}toTypedArray(){return new Float64Array(this.toArray())}writeToTypedArray(a,b){a[b++]=this._x,a[b]=this._y}offset(a,b){this._x+=+a,this._y+=+b}scale(a,b){this._x*=a,this._y*=b}round(){var a=Math.round;this._x=a(this._x),this._y=a(this._y)}floor(){var a=Math.floor;this._x=a(this._x),this._y=a(this._y)}ceil(){var a=Math.ceil;this._x=a(this._x),this._y=a(this._y)}angle(){return C3.angleTo(0,0,this._x,this._y)}lengthSquared(){return this._x*this._x+this._y*this._y}length(){return Math.sqrt(this.lengthSquared())}rotatePrecalc(a,b){const c=this._x*b-this._y*a;this._y=this._y*b+this._x*a,this._x=c}rotate(b){0===b||this.rotatePrecalc(Math.sin(b),Math.cos(b))}rotateAbout(b,a,c){0===b||a===this._x&&c===this._y||(this._x-=a,this._y-=c,this.rotatePrecalc(Math.sin(b),Math.cos(b)),this._x+=+a,this._y+=+c)}move(b,a){0===a||(this._x+=Math.cos(b)*a,this._y+=Math.sin(b)*a)}normalize(){const a=this.length();0!==a&&1!==a&&(this._x/=a,this._y/=a)}clamp(a,b){this._x=C3.clamp(this._x,a,b),this._y=C3.clamp(this._y,a,b)}}; + +// ../lib/misc/rect.js +"use strict";C3.Rect=class{constructor(a,b,c,d){this._left=0,this._top=0,this._right=0,this._bottom=0,a instanceof C3.Rect?this.copy(a):this.set(a||0,b||0,c||0,d||0)}set(a,b,c,d){this._left=+a,this._top=+b,this._right=+c,this._bottom=+d}setWH(a,b,c,d){a=+a,b=+b,this._left=a,this._top=b,this._right=a+ +c,this._bottom=b+ +d}copy(a){this._left=+a._left,this._top=+a._top,this._right=+a._right,this._bottom=+a._bottom}clone(){return new C3.Rect(this._left,this._top,this._right,this._bottom)}static Merge(a,b){var c=Math.max,d=Math.min;const e=new C3.Rect;return e.setLeft(d(a._left,b._left)),e.setTop(d(a._top,b._top)),e.setRight(c(a._right,b._right)),e.setBottom(c(a._bottom,b._bottom)),e}static FromObject(a){return new C3.Rect(a.left,a.top,a.right,a.bottom)}equals(a){return this._left===a._left&&this._top===a._top&&this._right===a._right&&this._bottom===a._bottom}setLeft(a){this._left=+a}getLeft(){return this._left}setTop(a){this._top=+a}getTop(){return this._top}setRight(a){this._right=+a}getRight(){return this._right}setBottom(a){this._bottom=+a}getBottom(){return this._bottom}toArray(){return[this._left,this._top,this._right,this._bottom]}toTypedArray(){return new Float64Array(this.toArray())}writeToTypedArray(a,b){a[b++]=this._left,a[b++]=this._top,a[b++]=this._right,a[b]=this._bottom}writeAsQuadToTypedArray(a,b){a[b++]=this._left,a[b++]=this._top,a[b++]=this._right,a[b++]=this._top,a[b++]=this._right,a[b++]=this._bottom,a[b++]=this._left,a[b]=this._bottom}width(){return this._right-this._left}height(){return this._bottom-this._top}midX(){return(this._left+this._right)/2}midY(){return(this._top+this._bottom)/2}offset(a,b){this._left+=+a,this._top+=+b,this._right+=+a,this._bottom+=+b}offsetLeft(a){this._left+=+a}offsetTop(a){this._top+=+a}offsetRight(a){this._right+=+a}offsetBottom(a){this._bottom+=+a}toSquare(a){if("x"!==a)throw new Error("invalid axis, only 'x' supported");this._bottom=this._topd&&(this._right=+d),this._bottom>e&&(this._bottom=+e)}clampFlipped(a,c,d,e){this._leftc&&(this._top=+c),this._right>d&&(this._right=+d),this._bottomthis._right&&this.swapLeftRight(),this._top>this._bottom&&this.swapTopBottom()}intersectsRect(a){return!(a._rightthis._right||a._top>this._bottom)}intersectsRectOffset(a,b,c){return!(a._right+bthis._right||a._top+c>this._bottom)}containsPoint(a,b){return a>=this._left&&a<=this._right&&b>=this._top&&b<=this._bottom}containsRect(a){return a._left>=this._left&&a._top>=this._top&&a._right<=this._right&&a._bottom<=this._bottom}expandToContain(a){a._leftthis._right&&(this._right=+a._right),a._bottom>this._bottom&&(this._bottom=+a._bottom)}lerpInto(a){this._left=C3.lerp(a._left,a._right,this._left),this._top=C3.lerp(a._top,a._bottom,this._top),this._right=C3.lerp(a._left,a._right,this._right),this._bottom=C3.lerp(a._top,a._bottom,this._bottom)}}; + +// ../lib/misc/quad.js +"use strict";{function a(g,a,b,c){gc?a:c):(e=gb?a:b):bc?g:c):(e=ab?g:b)}let e=0,f=0;C3.Quad=class{constructor(a,b,c,d,e,f,g,h){this._tlx=0,this._tly=0,this._trx=0,this._try=0,this._brx=0,this._bry=0,this._blx=0,this._bly=0,a instanceof C3.Quad?this.copy(a):this.set(a||0,b||0,c||0,d||0,e||0,f||0,g||0,h||0)}set(a,b,c,d,e,f,g,h){this._tlx=+a,this._tly=+b,this._trx=+c,this._try=+d,this._brx=+e,this._bry=+f,this._blx=+g,this._bly=+h}setRect(a,b,c,d){this.set(a,b,c,b,c,d,a,d)}copy(a){this._tlx=a._tlx,this._tly=a._tly,this._trx=a._trx,this._try=a._try,this._brx=a._brx,this._bry=a._bry,this._blx=a._blx,this._bly=a._bly}equals(a){return this._tlx===a._tlx&&this._tly===a._tly&&this._trx===a._trx&&this._try===a._try&&this._brx===a._brx&&this._bry===a._bry&&this._blx===a._blx&&this._bly===a._bly}setTlx(a){this._tlx=+a}getTlx(){return this._tlx}setTly(a){this._tly=+a}getTly(){return this._tly}setTrx(a){this._trx=+a}getTrx(){return this._trx}setTry(a){this._try=+a}getTry(){return this._try}setBrx(a){this._brx=+a}getBrx(){return this._brx}setBry(a){this._bry=+a}getBry(){return this._bry}setBlx(a){this._blx=+a}getBlx(){return this._blx}setBly(a){this._bly=+a}getBly(){return this._bly}toArray(){return[this._tlx,this._tly,this._trx,this._try,this._brx,this._bry,this._blx,this._bly]}toTypedArray(){return new Float64Array(this.toArray())}writeToTypedArray(a,b){a[b++]=this._tlx,a[b++]=this._tly,a[b++]=this._trx,a[b++]=this._try,a[b++]=this._brx,a[b++]=this._bry,a[b++]=this._blx,a[b]=this._bly}writeToTypedArray3D(a,b,c){a[b++]=this._tlx,a[b++]=this._tly,a[b++]=c,a[b++]=this._trx,a[b++]=this._try,a[b++]=c,a[b++]=this._brx,a[b++]=this._bry,a[b++]=c,a[b++]=this._blx,a[b++]=this._bly,a[b]=c}offset(a,b){this._tlx+=+a,this._tly+=+b,this._trx+=+a,this._try+=+b,this._brx+=+a,this._bry+=+b,this._blx+=+a,this._bly+=+b}round(){var a=Math.round;this._tlx=a(this._tlx),this._tly=a(this._tly),this._trx=a(this._trx),this._try=a(this._try),this._brx=a(this._brx),this._bry=a(this._bry),this._blx=a(this._blx),this._bly=a(this._bly)}floor(){var a=Math.floor;this._tlx=a(this._tlx),this._tly=a(this._tly),this._trx=a(this._trx),this._try=a(this._try),this._brx=a(this._brx),this._bry=a(this._bry),this._blx=a(this._blx),this._bly=a(this._bly)}ceil(){var a=Math.ceil;this._tlx=a(this._tlx),this._tly=a(this._tly),this._trx=a(this._trx),this._try=a(this._try),this._brx=a(this._brx),this._bry=a(this._bry),this._blx=a(this._blx),this._bly=a(this._bly)}setFromRect(a){this._tlx=a._left,this._tly=a._top,this._trx=a._right,this._try=a._top,this._brx=a._right,this._bry=a._bottom,this._blx=a._left,this._bly=a._bottom}setFromRotatedRect(b,c){0===c?this.setFromRect(b):this.setFromRotatedRectPrecalc(b,Math.sin(c),Math.cos(c))}setFromRotatedRectPrecalc(a,b,c){const d=a._left*b,e=a._top*b,f=a._right*b,g=a._bottom*b,h=a._left*c,i=a._top*c,j=a._right*c,k=a._bottom*c;this._tlx=h-e,this._tly=i+d,this._trx=j-e,this._try=i+f,this._brx=j-g,this._bry=k+f,this._blx=h-g,this._bly=k+d}getBoundingBox(b){a(this._tlx,this._trx,this._brx,this._blx),b._left=e,b._right=f,a(this._tly,this._try,this._bry,this._bly),b._top=e,b._bottom=f}containsPoint(a,b){let c=this._trx-this._tlx,d=this._try-this._tly;const e=this._brx-this._tlx,f=this._bry-this._tly,g=a-this._tlx,h=b-this._tly;let i=c*c+d*d,j=c*e+d*f,k=c*g+d*h;const l=e*e+f*f,m=e*g+f*h;let n=1/(i*l-j*j),o=(l*k-j*m)*n,p=(i*m-j*k)*n;return!!(0<=o&&0o+p)||(c=this._blx-this._tlx,d=this._bly-this._tly,i=c*c+d*d,j=c*e+d*f,k=c*g+d*h,n=1/(i*l-j*j),o=(l*k-j*m)*n,p=(i*m-j*k)*n,0<=o&&0o+p)}midX(){return(this._tlx+this._trx+this._brx+this._blx)/4}midY(){return(this._tly+this._try+this._bry+this._bly)/4}intersectsSegment(a,b,c,d){return!!(this.containsPoint(a,b)||this.containsPoint(c,d))||C3.segmentIntersectsQuad(a,b,c,d,this)}intersectsQuad(a){let b=a.midX(),c=a.midY();if(this.containsPoint(b,c))return!0;if(b=this.midX(),c=this.midY(),a.containsPoint(b,c))return!0;const d=this._tlx,e=this._tly,f=this._trx,g=this._try,h=this._brx,i=this._bry,j=this._blx,k=this._bly;return C3.segmentIntersectsQuad(d,e,f,g,a)||C3.segmentIntersectsQuad(f,g,h,i,a)||C3.segmentIntersectsQuad(h,i,j,k,a)||C3.segmentIntersectsQuad(j,k,d,e,a)}mirror(){this._swap(0,2),this._swap(1,3),this._swap(6,4),this._swap(7,5)}flip(){this._swap(0,6),this._swap(1,7),this._swap(2,4),this._swap(3,5)}diag(){this._swap(2,6),this._swap(3,7)}_swap(a,b){const c=this._getAtIndex(a);this._setAtIndex(a,this._getAtIndex(b)),this._setAtIndex(b,c)}_getAtIndex(a){switch(a){case 0:return this._tlx;case 1:return this._tly;case 2:return this._trx;case 3:return this._try;case 4:return this._brx;case 5:return this._bry;case 6:return this._blx;case 7:return this._bly;default:throw new RangeError("invalid quad point index");}}_setAtIndex(a,b){switch(b=+b,a){case 0:this._tlx=b;break;case 1:this._tly=b;break;case 2:this._trx=b;break;case 3:this._try=b;break;case 4:this._brx=b;break;case 5:this._bry=b;break;case 6:this._blx=b;break;case 7:this._bly=b;break;default:throw new RangeError("invalid quad point index");}}}} + +// c3/lib/misc/collisionPoly.js +"use strict";{const a=[0,0,1,0,1,1,0,1],b=C3.New(C3.Quad);C3.CollisionPoly=class extends C3.DefendedBase{constructor(b){super(),b||(b=a);this._ptsArr=Float64Array.from(b),this._bbox=new C3.Rect,this._isBboxChanged=!0}Release(){}pointsArr(){return this._ptsArr}pointCount(){return this._ptsArr.length/2}setPoints(a){this._ptsArr.length===a.length?this._ptsArr.set(a):this._ptsArr=Float64Array.from(a),this._isBboxChanged=!0}copy(a){this.setPoints(a._ptsArr)}setBboxChanged(){this._isBboxChanged=!0}_updateBbox(){if(!this._isBboxChanged)return;const a=this._ptsArr;let b=a[0],c=a[1],d=b,e=c;for(let f=0,g=a.length;fd&&(d=g),he&&(e=h)}this._bbox.set(b,c,d,e),this._isBboxChanged=!1}setFromRect(a,b,c){let d=this._ptsArr;8!==d.length&&(d=new Float64Array(8),this._ptsArr=d),d[0]=a.getLeft()-b,d[1]=a.getTop()-c,d[2]=a.getRight()-b,d[3]=a.getTop()-c,d[4]=a.getRight()-b,d[5]=a.getBottom()-c,d[6]=a.getLeft()-b,d[7]=a.getBottom()-c,this._bbox.copy(a),(0!==b||0!==c)&&this._bbox.offset(-b,-c),this._isBboxChanged=!1}setFromQuad(a,c,d){b.copy(a),b.offset(c,d),this.setPoints(b.toArray()),this._isBboxChanged=!0}transform(b,c,d){let a=0,e=1;0!==d&&(a=Math.sin(d),e=Math.cos(d)),this.transformPrecalc(b,c,a,e)}transformPrecalc(a,b,c,d){const e=this._ptsArr;for(let f=0,g=e.length;f(a/=f/2)?b/2*a*a+e:-b/2*(--a*(a-2)-1)+e}static EaseInCubic(a,e,b,c){return b*(a/=c)*a*a+e}static EaseOutCubic(a,e,b,c){return b*((a=a/c-1)*a*a+1)+e}static EaseInOutCubic(a,e,b,c){return 1>(a/=c/2)?b/2*a*a*a+e:b/2*((a-=2)*a*a+2)+e}static EaseInQuart(a,e,b,c){return b*(a/=c)*a*a*a+e}static EaseOutQuart(a,e,b,f){return-b*((a=a/f-1)*a*a*a-1)+e}static EaseInOutQuart(a,e,b,f){return 1>(a/=f/2)?b/2*a*a*a*a+e:-b/2*((a-=2)*a*a*a-2)+e}static EaseInQuint(a,e,b,c){return b*(a/=c)*a*a*a*a+e}static EaseOutQuint(a,e,b,c){return b*((a=a/c-1)*a*a*a*a+1)+e}static EaseInOutQuint(a,e,b,c){return 1>(a/=c/2)?b/2*a*a*a*a*a+e:b/2*((a-=2)*a*a*a*a+2)+e}static EaseInSine(a,e,b,f){return-b*i(a/f*(j/2))+b+e}static EaseOutSine(a,e,b,c){return b*h(a/c*(j/2))+e}static EaseInOutSine(a,e,b,f){return-b/2*(i(j*a/f)-1)+e}static EaseInExpo(a,e,b,c){return 0===a?e:b*g(2,10*(a/c-1))+e}static EaseOutExpo(a,e,b,c){return a===c?e+b:b*(-g(2,-10*a/c)+1)+e}static EaseInOutExpo(a,e,b,c){return 0===a?e:a===c?e+b:1>(a/=c/2)?b/2*g(2,10*(a-1))+e:b/2*(-g(2,-10*--a)+2)+e}static EaseInCirc(e,f,b,g){return-b*(a(1-(e/=g)*e)-1)+f}static EaseOutCirc(e,f,b,c){return b*a(1-(e=e/c-1)*e)+f}static EaseInOutCirc(e,f,b,g){return 1>(e/=g/2)?-b/2*(a(1-e*e)-1)+f:b/2*(a(1-(e-=2)*e)+1)+f}static EaseInElastic(i,k,b,c){let d=1.70158,l=0,m=b;return 0===i?k:1===(i/=c)?k+b:(l||(l=.3*c),mi?-.5*(m*g(2,10*(i-=1))*h((i*c-d)*(2*j)/l))+k:.5*(m*g(2,-10*(i-=1))*h((i*c-d)*(2*j)/l))+b+k)}static EaseInBack(a,e,b,c,d){return void 0===d&&(d=1.70158),b*(a/=c)*a*((d+1)*a-d)+e}static EaseOutBack(a,e,b,c,d){return void 0===d&&(d=1.70158),b*((a=a/c-1)*a*((d+1)*a+d)+1)+e}static EaseInOutBack(a,e,b,c,d){return void 0===d&&(d=1.70158),1>(a/=c/2)?b/2*(a*a*(((d*=1.525)+1)*a-d))+e:b/2*((a-=2)*a*(((d*=1.525)+1)*a+d)+2)+e}static EaseInBounce(a,e,b,c){return b-k.EaseOutBounce(c-a,0,b,c)+e}static EaseOutBounce(a,e,b,c){return(a/=c)<1/2.75?b*(7.5625*a*a)+e:a<2/2.75?b*(7.5625*(a-=1.5/2.75)*a+.75)+e:a<2.5/2.75?b*(7.5625*(a-=2.25/2.75)*a+.9375)+e:b*(7.5625*(a-=2.625/2.75)*a+.984375)+e}static EaseInOutBounce(a,e,b,c){return ac(a)));for(let c,d=0,e=this._listeners.length;dc(a)));return Promise.all(b).then(()=>!a.defaultPrevented)}async _FireAndWaitAsync(a){const b=[];this._IncreaseFireDepth();for(let c=0,d=this._captureListeners.length;c(h.push({func:b,resolve:e,reject:f,stack:d}),k?void c(h.pop()):void(-1===i&&a(16))))},C3.Asyncify.SetHighThroughputMode=function(a){if(a)++j;else if(--j,0>j)throw new Error("already turned off high throughput mode")}} + +// ../lib/util/idleTimeout.js +"use strict";{function a(){e=-1}function b(){f=-1,g=-1;let a=Date.now();for(let b of h)if(b._CheckTimeout(a)){let a=b._GetDeadline();(-1===g||aa+c&&(self.clearTimeout(f),g=this._deadline,f=self.setTimeout(b,this._timeout+100))}_CheckTimeout(a){return!(a>=this._deadline)||(this._callback()?(this._deadline=a+this._timeout,!0):(this._isActive=!1,!1))}_GetDeadline(){return this._deadline}Cancel(){this._isActive&&(h.delete(this),this._isActive=!1,0===h.size&&-1!==f&&(self.clearTimeout(f),f=-1,g=-1))}Release(){this.Cancel(),this._callback=null}}} + +// ../lib/util/disposable.js +"use strict";C3.Disposable=class a{constructor(a){this._disposed=!1,this._disposeAction=a}Dispose(){this._disposed||(this._disposed=!0,this._disposeAction&&(this._disposeAction(),this._disposeAction=null))}IsDisposed(){return this._disposed}Release(){this.Dispose()}static Release(b){return new a(()=>b.Release())}static From(a,b,c,d,e){if("undefined"==typeof d||null===d)d=!1;else if("boolean"!=typeof d&&"object"!=typeof d)throw new TypeError("invalid event listener options");if(e&&(c=c.bind(e)),b.includes(" ")){b=b.split(" ");const e=new C3.CompositeDisposable;for(let f of b)a.addEventListener(f,c,d),e.Add(C3.New(C3.Disposable,()=>a.removeEventListener(f,c,d)));return e}return a.addEventListener(b,c,d),C3.New(C3.Disposable,()=>a.removeEventListener(b,c,d))}},C3.StubDisposable=class extends C3.Disposable{SetAction(a){this._disposeAction=a}},C3.CompositeDisposable=class extends C3.Disposable{constructor(...a){super(),this._disposables=new Set;for(let b of a)this.Add(b)}Add(...a){if(this._disposed)throw new Error("already disposed");for(let b of a)this._disposables.add(b)}Remove(a){if(this._disposed)throw new Error("already disposed");this._disposables.delete(a)}RemoveAll(){if(this._disposed)throw new Error("already disposed");if(this._disposables){for(let a of this._disposables)a.Dispose();this._disposables.clear()}}IsDisposed(){return this._disposed}Dispose(){if(this._disposed)throw new Error("already disposed");this._disposed=!0;for(let a of this._disposables)a.Dispose();this._disposables.clear(),this._disposables=null}Release(){this.Dispose()}}; + +// c3/lib/util/kahanSum.js +"use strict";C3.KahanSum=class extends C3.DefendedBase{constructor(){super(),this._c=0,this._y=0,this._t=0,this._sum=0}Add(a){a=+a,this._y=a-this._c,this._t=this._sum+this._y,this._c=this._t-this._sum-this._y,this._sum=this._t}Subtract(a){this._sum-=+a}Get(){return this._sum}Reset(){this._c=0,this._y=0,this._t=0,this._sum=0}Set(a){this._c=0,this._y=0,this._t=0,this._sum=+a}Release(){}}; + +// c3/lib/util/redblackset.js +"use strict";{const a={};a.RBnode=function(a){this.tree=a,this.right=this.tree.sentinel,this.left=this.tree.sentinel,this.parent=null,this.color=!1,this.key=null},a.RedBlackSet=function(b){this.size=0,this.sentinel=new a.RBnode(this),this.sentinel.color=!1,this.root=this.sentinel,this.root.parent=this.sentinel,this.compare=b||this.default_compare},a.RedBlackSet.prototype.default_compare=function(c,a){return cthis.compare(c.key,e.key)?e.left:e.right;c.parent=d,d==this.sentinel?this.root=c:0>this.compare(c.key,d.key)?d.left=c:d.right=c,c.left=this.sentinel,c.right=this.sentinel,c.color=!0,this.insertFixup(c),this.size++}else{var f=this.get_(b);f.key=b}},a.RedBlackSet.prototype.insertFixup=function(a){for(;a!=this.sentinel&&a!=this.root&&a.parent.color==!0;)if(a.parent==a.parent.parent.left){var b=a.parent.parent.right;b.color==!0?(a.parent.color=!1,b.color=!1,a.parent.parent.color=!0,a=a.parent.parent):(a==a.parent.right&&(a=a.parent,this.leftRotate(a)),a.parent.color=!1,a.parent.parent.color=!0,a.parent.parent!=this.sentinel&&this.rightRotate(a.parent.parent))}else{var b=a.parent.parent.left;b.color==!0?(a.parent.color=!1,b.color=!1,a.parent.parent.color=!0,a=a.parent.parent):(a==a.parent.left&&(a=a.parent,this.rightRotate(a)),a.parent.color=!1,a.parent.parent.color=!0,a.parent.parent!=this.sentinel&&this.leftRotate(a.parent.parent))}this.root.color=!1},a.RedBlackSet.prototype.delete_=function(a){var b,c;b=a.left==this.sentinel||a.right==this.sentinel?a:this.successor_(a),c=b.left==this.sentinel?b.right:b.left,c.parent=b.parent,b.parent==this.sentinel?this.root=c:b==b.parent.left?b.parent.left=c:b.parent.right=c,b!=a&&(a.key=b.key),b.color==!1&&this.deleteFixup(c),this.size--},a.RedBlackSet.prototype.deleteFixup=function(a){for(;a!=this.root&&a.color==!1;)if(a==a.parent.left){var b=a.parent.right;b.color==!0&&(b.color=!1,a.parent.color=!0,this.leftRotate(a.parent),b=a.parent.right),b.left.color==!1&&b.right.color==!1?(b.color=!0,a=a.parent):(b.right.color==!1&&(b.left.color=!1,b.color=!0,this.rightRotate(b),b=a.parent.right),b.color=a.parent.color,a.parent.color=!1,b.right.color=!1,this.leftRotate(a.parent),a=this.root)}else{var b=a.parent.left;b.color==!0&&(b.color=!1,a.parent.color=!0,this.rightRotate(a.parent),b=a.parent.left),b.right.color==!1&&b.left.color==!1?(b.color=!0,a=a.parent):(b.left.color==!1&&(b.right.color=!1,b.color=!0,this.leftRotate(b),b=a.parent.left),b.color=a.parent.color,a.parent.color=!1,b.left.color=!1,this.rightRotate(a.parent),a=this.root)}a.color=!1},a.RedBlackSet.prototype.remove=function(a){var b=this.get_(a);if(b!=this.sentinel){var c=b.key;return this.delete_(b),c}return null},a.RedBlackSet.prototype.removeSwapped=function(a,b){this.remove(b)},a.RedBlackSet.prototype.min=function(a){for(;a.left!=this.sentinel;)a=a.left;return a},a.RedBlackSet.prototype.max=function(a){for(;a.right!=this.sentinel;)a=a.right;return a},a.RedBlackSet.prototype.successor_=function(a){if(a.right!=this.sentinel)return this.min(a.right);for(var b=a.parent;b!=this.sentinel&&a==b.right;)a=b,b=b.parent;return b},a.RedBlackSet.prototype.predeccessor_=function(a){if(a.left!=this.sentinel)return this.max(a.left);for(var b=a.parent;b!=this.sentinel&&a==b.left;)a=b,b=b.parent;return b},a.RedBlackSet.prototype.successor=function(a){if(0this.compare(a,b.key)?b.left:b.right;return b},a.RedBlackSet.prototype.contains=function(a){return null!=this.get_(a).key},a.RedBlackSet.prototype.getValues=function(){var a=[];return this.forEach(function(b){a.push(b)}),a},a.RedBlackSet.prototype.insertAll=function(b){if("array"==a.typeOf(b))for(var c=0;cc)return!1;var d=0;if(this.isEmpty())return!0;for(var e=this.min(this.root);e!=this.sentinel;e=this.successor_(e))a.contains.call(b,b,e.key)&&d++;return d==this.getCount()},a.RedBlackSet.prototype.intersection=function(b){var c=new a.RedBlackSet(this.compare);if(this.isEmpty())return c;for(var d=this.min(this.root);d!=this.sentinel;d=this.successor_(d))b.contains.call(b,d.key,d.key,this)&&c.insert(d.key);return c},C3.RedBlackSet=class extends C3.DefendedBase{constructor(b){super();this._rbSet=new a.RedBlackSet(b)}Add(a){this._rbSet.insert(a)}Remove(a){this._rbSet.remove(a)}Has(a){return this._rbSet.contains(a)}Clear(){this._rbSet.clear()}toArray(){return this._rbSet.getValues()}GetSize(){return this._rbSet.getCount()}IsEmpty(){return this._rbSet.isEmpty()}ForEach(a){this._rbSet.forEach(a)}Front(){if(this.IsEmpty())throw new Error("empty set");const a=this._rbSet,b=a.min(a.root);return b.key}Shift(){if(this.IsEmpty())throw new Error("empty set");const a=this.Front();return this.Remove(a),a}*values(){if(!this.IsEmpty()){const a=this._rbSet;for(let b=a.min(a.root);b!=a.sentinel;b=a.successor_(b))yield b.key}}[Symbol.iterator](){return this.values()}}} + +// ../lib/util/promiseThrottle.js +"use strict";C3.PromiseThrottle=class{constructor(a=C3.hardwareConcurrency){this._maxParallel=a,this._queue=[],this._activeCount=0}Add(a){return new Promise((b,c)=>{this._queue.push({func:a,resolve:b,reject:c}),this._MaybeStartNext()})}_FindInQueue(a){for(let b=0,c=this._queue.length;b=this._maxParallel)return;this._activeCount++;const a=this._queue.shift();a.func().then((b)=>{a.resolve(b),this._activeCount--,this._MaybeStartNext()}).catch((b)=>{a.reject(b),this._activeCount--,this._MaybeStartNext()})}static async Batch(a,b){const c=[];let d=!1;const e=async()=>{for(let a;a=b.pop();){if(d)return;try{c.push((await a()))}catch(a){throw d=!0,a}}},f=[];for(;a--;)f.push(e());return await Promise.all(f),c}}; + +// ../lib/util/rateLimiter.js +"use strict";C3.RateLimiter=class{constructor(a,b,c){this._callback=a,this._interval=b,this._intervalOnBattery=c||2*b,this._timerId=-1,this._lastCallTime=-Infinity,this._timerCallFunc=()=>this._OnTimer(),this._ignoreReset=!1,this._canRunImmediate=!1,this._callbackArguments=null}SetCanRunImmediate(a){this._canRunImmediate=!!a}_GetInterval(){return"undefined"!=typeof C3.Battery&&C3.Battery.IsOnBatteryPower()?this._intervalOnBattery:this._interval}Call(...a){if(-1===this._timerId){this._callbackArguments=a;let b=C3.FastGetDateNow(),c=b-this._lastCallTime,d=this._GetInterval();c>=d&&this._canRunImmediate?(this._lastCallTime=b,this._RunCallback()):this._timerId=self.setTimeout(this._timerCallFunc,Math.max(d-c,4))}}_RunCallback(){this._ignoreReset=!0;const a=this._callbackArguments;this._callbackArguments=null,a?this._callback(...a):this._callback(),this._ignoreReset=!1}Reset(){this._ignoreReset||(this._CancelTimer(),this._callbackArguments=null,this._lastCallTime=C3.FastGetDateNow())}_OnTimer(){this._timerId=-1,this._lastCallTime=C3.FastGetDateNow(),this._RunCallback()}_CancelTimer(){-1!==this._timerId&&(self.clearTimeout(this._timerId),this._timerId=-1)}Release(){this._CancelTimer(),this._callback=null,this._callbackArguments=null,this._timerCallFunc=null}}; + +// ../lib/str/str.js +"use strict";{function a(a){return e.get(a)}C3.UTF8_BOM="\uFEFF";const b=new Set([..."0123456789"]);C3.IsNumericChar=function(a){return b.has(a)};const d=new Set([..." \t\n\r\xA0\x85\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u200B\u2028\u2029\u202F\u205F\u3000"]);C3.IsWhitespaceChar=function(a){return d.has(a)},C3.FilterWhitespace=function(a){return C3.SpreadStringSafe(a).filter((a)=>!C3.IsWhitespaceChar(a)).join("")},C3.IsStringAllWhitespace=function(a){for(const b of a)if(!C3.IsWhitespaceChar(b))return!1;return!0},C3.IsUnprintableChar=function(a){return 1===a.length&&32>a.charCodeAt(0)},C3.FilterUnprintableChars=function(a){return C3.SpreadStringSafe(a).filter((a)=>!C3.IsUnprintableChar(a)).join("")};const c=new Set([..."0123456789.+-e"]);C3.IsStringNumber=function(a){if(a=a.trim(),!a.length)return!1;let d=a.charAt(0);if("-"!==d&&!b.has(d))return!1;for(let b of a)if(!c.has(b))return!1;return!0},C3.RemoveTrailingDigits=function(a){let b=a.length;for(;0",">"],["\"","""],["'","'"]]);const f=/[&<>"']/g;C3.EscapeHTML=function(b){return b.replace(f,a)},C3.EscapeJS=function(a){let b=C3.ReplaceAll(a,"\\","\\\\");return b=C3.ReplaceAll(b,"\"","\\\""),b=C3.ReplaceAll(b,"\t","\\t"),b=C3.ReplaceAll(b,"\r",""),C3.ReplaceAll(b,"\n","\\n")},C3.EscapeXML=function(a){let b=C3.ReplaceAll(a,"&","&");return b=C3.ReplaceAll(b,"<","<"),b=C3.ReplaceAll(b,">",">"),C3.ReplaceAll(b,"\"",""")};const g=/[-[\]{}()*+?.,\\^$|#\s]/g;C3.EscapeRegex=function(a){return a.replace(g,"\\$&")},C3.FindAll=function(a,b,c=!1){if(!b)return[];c||(a=a.toLowerCase(),b=b.toLowerCase());const d=b.length;let e=0,f=0,g=[];for(;-1<(f=a.indexOf(b,e));)g.push(f),e=f+d;return g},C3.ReplaceAll=function(a,b,c){return a.replace(new RegExp(C3.EscapeRegex(b),"g"),()=>c)},C3.ReplaceAllCaseInsensitive=function(a,b,c){return a.replace(new RegExp(C3.EscapeRegex(b),"gi"),()=>c)};let h=new WeakMap;C3.SetElementContent=function(a,b,c){let d=h.get(a);if("string"==typeof b){if(!c&&b===d)return;a.textContent=b,h.set(a,b)}else{if(!c&&b.equals(d))return;if(b.isPlainText()){let c=b.toString();a.textContent=c,h.set(a,c)}else a.innerHTML=b.toHTML(),b instanceof C3.BBString&&b.attachLinkHandlers(a),h.set(a,b.toString())}},C3.StringLikeEquals=function(c,a){return c instanceof C3.HtmlString||c instanceof C3.BBString?c.equals(a):a instanceof C3.HtmlString||a instanceof C3.BBString?a.equals(c):c===a},C3.StringSubstitute=function(a,...b){let c=a;for(let d=0,e=b.length;dd?1:ba){let b=a/i;return b=10>b?c(10*b)/10:c(b),langSub(d+"kilobytes",b)}if(1073741824>a){let b=a/1048576;return b=10>b?c(10*b)/10:c(b),langSub(d+"megabytes",b)}if(1099511627776>a){let b=a/1073741824;return b=10>b?c(10*b)/10:c(b),langSub(d+"gigabytes",b)}else{let b=a/1099511627776;return b=10>b?c(10*b)/10:c(b),langSub(d+"terabytes",b)}};const j={approximate:!1,days:!0,hours:!0,minutes:!0,seconds:!0};C3.FormatTime=function(a,b){var c=Math.floor;b=Object.assign({},j,b),C3.Lang.PushContext("common.time");const d=[];if(b.days){const b=c(a/86400);0a?"-":"";a=Math.abs(a);let d=a.toString(),e=b-d.length;for(let d=0;da.toUpperCase())},C3.CompareVersionStrings=function(a,b){let c=a.split(".").map((a)=>a.trim()),d=b.split(".").map((a)=>a.trim());C3.resizeArray(c,4,"0"),C3.resizeArray(d,4,"0"),c=c.map((a)=>parseInt(a,10)),d=d.map((a)=>parseInt(a,10));for(let e=0;4>e;++e){const a=c[e]-d[e];if(0!=a)return 0>a?-1:1}return 0},C3.CreateGUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(a)=>{const b=Math.floor(16*Math.random()),c="x"===a?b:8|3&b;return c.toString(16)})},C3.StringHammingDistance=function(c,a){if(c.length!==a.length)throw new Error("strings must be same length");let b=0;for(let d=0,e=c.length;d"string"==typeof a)}} + +// ../lib/str/bbstring.js +"use strict";{function a(a,c,d){const f=b.get(d);if(!f)return a;else if("string"!=typeof f){if(Array.isArray(f)){let a=f[0],b=f[1];return c?"":`<${a} class="${b}">`}}else if("a"===f&&!c){const a=parseInt(d.substring(1),10)-1;if(0>a||a>=e.length)throw new Error("invalid bbcode link substitution");const b=e[a];if("string"==typeof b)return``;if("function"==typeof b)return``;throw new TypeError("invalid bbcode link action")}else return"<"+c+f+">"}const b=new Map([["b","strong"],["i","em"],["s","s"],["u","u"],["sub","sub"],["sup","sup"],["small","small"],["mark","mark"],["a1","a"],["a2","a"],["a3","a"],["a4","a"],["a5","a"],["a6","a"],["a7","a"],["a8","a"],["a9","a"],["bad",["span","bbCodeBad"]],["good",["span","bbCodeGood"]],["info",["span","bbCodeInfo"]],["h1",["span","bbCodeH1"]],["h2",["span","bbCodeH2"]],["h3",["span","bbCodeH3"]],["h4",["span","bbCodeH4"]],["item",["span","bbCodeItem"]]]),c=/\[(\/?)([a-zA-Z0-9]+)\]/g,d=/\[(\/?)(.*?)\]/g;let e=null;const f=/\n/g;C3.BBString=class{constructor(a,b){if(this._bbstr=b&&b.noEscape?a:C3.EscapeHTML(a),this._htmlstr="",this._convertLineBreaks=!1,this._linkActions=[],b&&(this._convertLineBreaks=!!b.convertLineBreaks,b.links)){if(9")),this._htmlstr=b}return this._htmlstr}attachLinkHandlers(a){if(this._linkActions.length)for(let b=0,c=this._linkActions.length;bc)return;if(1===a.length){const d=a[0],e=d.text,f=d.styles;if(100>=e.length&&!e.includes("\n")){const a=b(e,f);if(a.width<=c){const b=[];return this._AddFrag(b,e,f,a.width,a.height),void this._AddLine(b,a.width,a.height)}}}let e;e="word"===d?a.map((a)=>({words:this._TokeniseWords(a.text),styles:a.styles})):a.map((a)=>({words:[...a.text],styles:a.styles})),this._WrapText(e,b,c)}_TokeniseWords(a){const b=C3.SpreadStringSafe(a),c=[];let d="",e=!1;for(const f of b)if("\n"===f)d&&c.push(d),c.push("\n"),d="";else if(!d)d=f,e=C3.IsWhitespaceChar(f);else{const a=C3.IsWhitespaceChar(f);a===e?d+=f:(c.push(d),d=f,e=a)}return d&&c.push(d),c}_WrapText(a,b,c){var d=Math.max;let e="",f=0,g=0,h=0,i=0,j=[];for(const k of a){const a=k.styles,l=k.words;for(const k of l){if("\n"===k){0===h&&(h=b(" ",a).height),e&&this._AddFrag(j,e,a,f,g||h),this._AddLine(j,i+f,h),j=[],e="",f=0,g=0,i=0,h=0;continue}const l=e+k,m=b(l,a),n=m.width,o=m.height;if(!(i+n>=c))e=l,f=n,g=d(g,o),h=d(h,o);else if(e&&this._AddFrag(j,e,a,f,g),j.length&&(this._AddLine(j,i+f,h),j=[]),i=0,C3.IsStringAllWhitespace(k))e="",f=0,g=0,h=0;else{e=k;const c=b(k,a);f=c.width,g=c.height,h=c.height}}e&&(this._AddFrag(j,e,a,f,g),i+=f,e="",f=0,g=0)}j.length&&this._AddLine(j,i+f,h);for(const d of this._lines){const a=d.fragments;if(!a.length)continue;const c=a[a.length-1],e=c.text,f=e.trimEnd();if(!f)d.width-=c.width,a.pop();else if(f.length=this._width||0>=this._height)throw new Error("invalid texture data size");if(h.isSvg){const a=document.createElement("canvas");a.width=this._width,a.height=this._height;const b=a.getContext("2d");b.drawImage(f,0,0,this._width,this._height),f=a}const i=C3.isPOT(this._width)&&C3.isPOT(this._height),j=this._renderer.GetMaxTextureSize();if(this._width>j||this._height>j)throw new Error("texture data exceeds maximum texture size");const k=this._renderer.GetContext(),l=this._renderer.GetWebGLVersionNumber();this._texture=k.createTexture(),k.bindTexture(k.TEXTURE_2D,this._texture),k.pixelStorei(k["UNPACK_PREMULTIPLY_ALPHA_WEBGL"],h.premultiplyAlpha);const m=a(this._pixelFormat,k);if(!this._renderer.SupportsNPOTTextures()&&!i&&this._isTiled){if(null===f)throw new Error("cannot pass null data when creating a NPOT tiled texture without NPOT support");if(f instanceof ArrayBuffer&&(f=new ImageData(new Uint8ClampedArray(f),this._width,this._height)),f instanceof ImageData){const a=document.createElement("canvas");a.width=this._width,a.height=this._height;const b=a.getContext("2d");b.putImageData(f,0,0),f=a}const a=document.createElement("canvas");a.width=C3.nextHighestPowerOfTwo(this._width),a.height=C3.nextHighestPowerOfTwo(this._height);const b=a.getContext("2d");b.imageSmoothingEnabled="nearest"!==this._sampling,b.drawImage(f,0,0,this._width,this._height,0,0,a.width,a.height),k.texImage2D(k.TEXTURE_2D,0,m.internalformat,m.format,m.type,a)}else if(2<=l){let a;a=this._isMipMapped?Math.floor(Math.log2(Math.max(this._width,this._height))+1):1,k.texStorage2D(k.TEXTURE_2D,a,m.sizedinternalformat,this._width,this._height),f instanceof ArrayBuffer?k.texSubImage2D(k.TEXTURE_2D,0,0,0,this._width,this._height,m.format,m.type,new Uint8Array(f)):null!==f&&k.texSubImage2D(k.TEXTURE_2D,0,0,0,m.format,m.type,f)}else f instanceof ArrayBuffer?k.texImage2D(k.TEXTURE_2D,0,m.internalformat,this._width,this._height,0,m.format,m.type,new Uint8Array(f)):null===f?k.texImage2D(k.TEXTURE_2D,0,m.internalformat,this._width,this._height,0,m.format,m.type,null):k.texImage2D(k.TEXTURE_2D,0,m.internalformat,m.format,m.type,f);null!==f&&this._SetTextureParameters(k),k.bindTexture(k.TEXTURE_2D,null),this._renderer._ResetLastTexture(),this._refCount=1,g.add(this)}_CreateDynamic(f,h,i){var j=Math.floor;if(i=Object.assign({},e,i),this._texture)throw new Error("already created texture");if(this._isTiled=!!i.isTiled,this._tileType=i.tileType,this._sampling=i.sampling,this._pixelFormat=i.pixelFormat,this._isMipMapped=!!i.mipMap,this._mipMapQuality=i.mipMapQuality,!c.has(this._sampling))throw new Error("invalid sampling");if(!b.has(this._pixelFormat))throw new Error("invalid pixel format");if(!d.has(this._mipMapQuality))throw new Error("invalid mipmap quality");this._isStatic=!1,this._width=j(f),this._height=j(h);const k=C3.isPOT(this._width)&&C3.isPOT(this._height),l=this._renderer.GetMaxTextureSize();if(0>=this._width||0>=this._height)throw new Error("invalid texture size");if(this._width>l||this._height>l)throw new Error("texture exceeds maximum texture size");if(!this._renderer.SupportsNPOTTextures()&&this._isTiled&&!k)throw new Error("non-power-of-two tiled textures not supported");const m=this._renderer.GetContext(),n=this._renderer.GetWebGLVersionNumber();this._texture=m.createTexture(),m.bindTexture(m.TEXTURE_2D,this._texture),m.pixelStorei(m["UNPACK_PREMULTIPLY_ALPHA_WEBGL"],i.premultiplyAlpha);const o=a(this._pixelFormat,m),p=2<=n?o.sizedinternalformat:o.internalformat;m.texImage2D(m.TEXTURE_2D,0,p,this._width,this._height,0,o.format,o.type,null),this._SetTextureParameters(m),m.bindTexture(m.TEXTURE_2D,null),this._renderer._ResetLastTexture(),this._refCount=1,g.add(this)}_GetMipMapHint(a){if("default"===this._mipMapQuality)return this._isStatic?a.NICEST:a.FASTEST;if("low"===this._mipMapQuality)return a.FASTEST;if("high"===this._mipMapQuality)return a.NICEST;throw new Error("invalid mipmap quality")}_SetTextureParameters(a){const b=C3.isPOT(this._width)&&C3.isPOT(this._height);if(!this._isTiled)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);else if("repeat-x"===this._tileType)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.REPEAT),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);else if("repeat-y"===this._tileType)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.REPEAT);else if("repeat"===this._tileType)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.REPEAT),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.REPEAT);else throw new Error("invalid tile type");if("nearest"===this._sampling)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),this._isMipMapped=!1;else if(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),(b||this._renderer.SupportsNPOTTextures())&&this._isMipMapped){a.hint(a.GENERATE_MIPMAP_HINT,this._GetMipMapHint(a)),a.generateMipmap(a.TEXTURE_2D);const b="trilinear"===this._sampling&&!this._renderer.HasMajorPerformanceCaveat();a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,b?a.LINEAR_MIPMAP_LINEAR:a.LINEAR_MIPMAP_NEAREST)}else a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),this._isMipMapped=!1}_Update(b,c){if(("undefined"==typeof HTMLImageElement||!(b instanceof HTMLImageElement))&&("undefined"==typeof HTMLVideoElement||!(b instanceof HTMLVideoElement))&&("undefined"==typeof HTMLCanvasElement||!(b instanceof HTMLCanvasElement))&&("undefined"==typeof ImageBitmap||!(b instanceof ImageBitmap))&&("undefined"==typeof OffscreenCanvas||!(b instanceof OffscreenCanvas))&&!(b instanceof ImageData))throw new Error("invalid texture source");if(!this._texture||0>=this._refCount)throw new Error("texture not created");if(this._isStatic)throw new Error("cannot update static texture");c=Object.assign({},f,c);const d=b.width||b.videoWidth,e=b.height||b.videoHeight,g=this._renderer.GetWebGLVersionNumber(),h=this._renderer.GetContext();h.bindTexture(h.TEXTURE_2D,this._texture),h.pixelStorei(h["UNPACK_PREMULTIPLY_ALPHA_WEBGL"],c.premultiplyAlpha);const i=a(this._pixelFormat,h),j=2<=g?i.sizedinternalformat:i.internalformat;try{if(this._width===d&&this._height===e){const a=C3.isPOT(this._width)&&C3.isPOT(this._height);h.texSubImage2D(h.TEXTURE_2D,0,0,0,i.format,i.type,b),(a||this._renderer.SupportsNPOTTextures())&&this._isMipMapped&&(h.hint(h.GENERATE_MIPMAP_HINT,this._GetMipMapHint(h)),h.generateMipmap(h.TEXTURE_2D))}else{this._width=d,this._height=e;const a=C3.isPOT(this._width)&&C3.isPOT(this._height);if(!this._renderer.SupportsNPOTTextures()&&this._isTiled&&!a)throw new Error("non-power-of-two tiled textures not supported");h.texImage2D(h.TEXTURE_2D,0,j,i.format,i.type,b),(a||this._renderer.SupportsNPOTTextures())&&this._isMipMapped&&(h.hint(h.GENERATE_MIPMAP_HINT,this._GetMipMapHint(h)),h.generateMipmap(h.TEXTURE_2D))}}catch(a){console.error("Error updating WebGL texture: ",a)}h.bindTexture(h.TEXTURE_2D,null),this._renderer._ResetLastTexture()}_Delete(){if(0=this._refCount)throw new Error("no more references");this._refCount--}GetReferenceCount(){return this._refCount}GetWidth(){return this._width}GetHeight(){return this._height}IsStatic(){return this._isStatic}GetEstimatedMemoryUsage(){let a=this._width*this._height;switch(this._pixelFormat){case"rgba8":a*=4;break;case"rgb8":a*=3;break;case"rgba4":case"rgb5_a1":case"rgb565":a*=2;}return this._isMipMapped&&(a+=Math.floor(a/3)),a}static OnContextLost(){g.clear()}static allTextures(){return g.values()}}} + +// ../lib/gfx/renderTarget.js +"use strict";{const a=new Set(["nearest","bilinear","trilinear"]),b={sampling:"trilinear",alpha:!0,readback:!0,isDefaultSize:!0,multisampling:0},c=new Set;C3.Gfx.WebGLRenderTarget=class{constructor(a){this._renderer=a,this._frameBuffer=null,this._texture=null,this._renderBuffer=null,this._width=0,this._height=0,this._isDefaultSize=!0,this._sampling="trilinear",this._alpha=!0,this._readback=!0,this._multisampling=0}_Create(d,e,f){f=Object.assign({},b,f);const g=this._renderer.GetWebGLVersionNumber();if(this._texture||this._renderBuffer)throw new Error("already created render target");if(this._sampling=f.sampling,this._alpha=!!f.alpha,this._readback=!!f.readback,this._isDefaultSize=!!f.isDefaultSize,this._multisampling=f.multisampling,!a.has(this._sampling))throw new Error("invalid sampling");if(0g||this._readback))throw new Error("invalid use of multisampling");if(2>g&&(this._readback=!0),this._width=d,this._height=e,0>=this._width||0>=this._height)throw new Error("invalid render target size");const h=this._renderer.GetContext();if(this._frameBuffer=h.createFramebuffer(),h.bindFramebuffer(h.FRAMEBUFFER,this._frameBuffer),this._readback){this._texture=this._renderer.CreateDynamicTexture(this._width,this._height,{sampling:this._sampling,pixelFormat:this._alpha?"rgba8":"rgb8",mipMap:!1});const a=this._texture._GetTexture();h.framebufferTexture2D(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0,h.TEXTURE_2D,a,0)}else{this._renderBuffer=h.createRenderbuffer(),h.bindRenderbuffer(h.RENDERBUFFER,this._renderBuffer);const a=this._alpha?h.RGBA8:h.RGB8;if(0a&&(this._multisampling=a)}else this._multisampling=0}0===this._multisampling?h.renderbufferStorage(h.RENDERBUFFER,a,this._width,this._height):h.renderbufferStorageMultisample(h.RENDERBUFFER,this._multisampling,a,this._width,this._height),h.framebufferRenderbuffer(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0,h.RENDERBUFFER,this._renderBuffer),h.bindRenderbuffer(h.RENDERBUFFER,null)}h.bindFramebuffer(h.FRAMEBUFFER,null),c.add(this)}_Resize(a,b){if(this._width!==a||this._height!==b){this._width=a,this._height=b;const c=this._renderer.GetContext();c.bindFramebuffer(c.FRAMEBUFFER,this._frameBuffer),this._texture?this._texture._Update(new ImageData(this._width,this._height)):(c.bindRenderbuffer(c.RENDERBUFFER,this._renderBuffer),c.renderbufferStorage(c.RENDERBUFFER,this._alpha?c.RGBA8:c.RGB8,this._width,this._height),c.bindRenderbuffer(c.RENDERBUFFER,null)),c.bindFramebuffer(c.FRAMEBUFFER,null)}}_Delete(){if(!this._texture&&!this._renderBuffer)throw new Error("already deleted render target");c.delete(this);const a=this._renderer.GetContext();a.bindFramebuffer(a.FRAMEBUFFER,this._frameBuffer),this._texture?(a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,null,0),this._renderer.DeleteTexture(this._texture),this._texture=null):this._renderBuffer&&(a.framebufferRenderbuffer(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.RENDERBUFFER,null),a.deleteRenderbuffer(this._renderBuffer),this._renderBuffer=null),a.bindFramebuffer(a.FRAMEBUFFER,null),2<=this._renderer.GetWebGLVersionNumber()&&(a.bindFramebuffer(a.READ_FRAMEBUFFER,null),a.bindFramebuffer(a.DRAW_FRAMEBUFFER,null)),a.deleteFramebuffer(this._frameBuffer),this._renderer.GetBatchState().currentFramebuffer=null,this._frameBuffer=null}_GetFramebuffer(){return this._frameBuffer}GetWebGLRenderer(){return this._renderer}GetTexture(){return this._texture}IsLinearSampling(){return"nearest"!==this._sampling}HasAlpha(){return this._alpha}IsReadback(){return this._readback}GetWidth(){return this._width}GetHeight(){return this._height}IsDefaultSize(){return this._isDefaultSize}GetMultisampling(){return this._multisampling}GetOptions(){const a={sampling:this._sampling,alpha:this._alpha,readback:this._readback};return this._isDefaultSize||(a.width=this._width,a.height=this._height),a}IsCompatibleWithOptions(a){return a=Object.assign({},b,a),"nearest"!==a.sampling===this.IsLinearSampling()&&!!a.alpha===this.HasAlpha()&&!(2<=this._renderer.GetWebGLVersionNumber()&&!!a.readback!==this.IsReadback())&&("number"==typeof a.width||"number"==typeof a.height?!this.IsDefaultSize()&&this.GetWidth()===a.width&&this.GetHeight()===a.height:this.IsDefaultSize())}_GetWebGLTexture(){return this._texture?this._texture._GetTexture():null}GetEstimatedMemoryUsage(){return this._texture?this._texture.GetEstimatedMemoryUsage():this._width*this._height*(this._alpha?4:3)}static async DebugReadPixelsToBlob(a,b){const c=await a.ReadBackRenderTargetToImageData(b,!0);return await C3.ImageDataToBlob(c)}static OnContextLost(){c.clear()}static allRenderTargets(){return c.values()}static ResizeAll(a,b){for(const d of c)d.IsDefaultSize()&&d._Resize(a,b)}}} + +// ../lib/gfx/shaderProgram.js +"use strict";C3.Gfx.WebGLShaderProgram=class{static async Compile(a,b,c,d){const e=a.GetContext(),f=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(f,b),e.compileShader(f);const g=e.createShader(e.VERTEX_SHADER);e.shaderSource(g,c),e.compileShader(g);const h=e.createProgram();e.attachShader(h,f),e.attachShader(h,g),e.bindAttribLocation(h,0,"aPos"),e.bindAttribLocation(h,1,"aTex"),e.bindAttribLocation(h,2,"aPoints"),e.linkProgram(h);const i=a._GetParallelShaderCompileExtension();if(i?await a._WaitForObjectReady(()=>e.getProgramParameter(h,i["COMPLETION_STATUS_KHR"])):await C3.Wait(5),!e.getShaderParameter(f,e.COMPILE_STATUS)){const a=e.getShaderInfoLog(f);throw e.deleteShader(f),e.deleteShader(g),e.deleteProgram(h),new Error("Error compiling fragment shader: ",a)}if(!e.getShaderParameter(g,e.COMPILE_STATUS)){const a=e.getShaderInfoLog(g);throw e.deleteShader(f),e.deleteShader(g),e.deleteProgram(h),new Error("Error compiling vertex shader: ",a)}if(!e.getProgramParameter(h,e.LINK_STATUS)){const a=e.getProgramInfoLog(h);throw e.deleteShader(f),e.deleteShader(g),e.deleteProgram(h),new Error("Error linking shader program: ",a)}const j=C3.FilterUnprintableChars(e.getProgramInfoLog(h)||"").trim();return j&&!C3.IsStringAllWhitespace(j)&&console.info(`[WebGL] Shader program '${d}' compilation log: `,j),e.deleteShader(f),e.deleteShader(g),h}static async Create(a,b,c,d){const e=await C3.Gfx.WebGLShaderProgram.Compile(a,b.src,c,d);return new C3.Gfx.WebGLShaderProgram(a,e,b,d)}constructor(a,b,c,d){const e=a.GetContext(),f=a.GetBatchState();a.EndBatch(),e.useProgram(b),this._gl=e,this._renderer=a,this._name=d,this._shaderProgram=b,this._isDeviceTransform=""===d;const g=e.getAttribLocation(b,"aPos"),h=e.getAttribLocation(b,"aTex"),i=e.getAttribLocation(b,"aPoints");-1!==g&&(e.bindBuffer(e.ARRAY_BUFFER,a._vertexBuffer),e.vertexAttribPointer(g,a.GetNumVertexComponents(),e.FLOAT,!1,0,0),e.enableVertexAttribArray(g)),-1!==h&&(e.bindBuffer(e.ARRAY_BUFFER,a._texcoordBuffer),e.vertexAttribPointer(h,2,e.FLOAT,!1,0,0),e.enableVertexAttribArray(h)),-1!==i&&(e.bindBuffer(e.ARRAY_BUFFER,a._pointBuffer),e.vertexAttribPointer(i,4,e.FLOAT,!1,0,0),e.enableVertexAttribArray(i)),e.bindBuffer(e.ARRAY_BUFFER,null),this._uMatP=new C3.Gfx.WebGLShaderUniform(this,"matP","mat4"),this._uMatMV=new C3.Gfx.WebGLShaderUniform(this,"matMV","mat4"),this._uColor=new C3.Gfx.WebGLShaderUniform(this,"color","vec4"),this._uSamplerFront=new C3.Gfx.WebGLShaderUniform(this,"samplerFront","sampler"),this._uPointTexStart=new C3.Gfx.WebGLShaderUniform(this,"pointTexStart","vec2"),this._uPointTexEnd=new C3.Gfx.WebGLShaderUniform(this,"pointTexEnd","vec2"),this._uZElevation=new C3.Gfx.WebGLShaderUniform(this,"zElevation","float"),this._uTileSize=new C3.Gfx.WebGLShaderUniform(this,"tileSize","vec2"),this._uTileSpacing=new C3.Gfx.WebGLShaderUniform(this,"tileSpacing","vec2"),this._uColor2=new C3.Gfx.WebGLShaderUniform(this,"color2","vec4"),this._uOutlineThickness=new C3.Gfx.WebGLShaderUniform(this,"outlineThickness","float"),this._uSamplerBack=new C3.Gfx.WebGLShaderUniform(this,"samplerBack","sampler"),this._uDestStart=new C3.Gfx.WebGLShaderUniform(this,"destStart","vec2"),this._uDestEnd=new C3.Gfx.WebGLShaderUniform(this,"destEnd","vec2"),this._uSrcStart=new C3.Gfx.WebGLShaderUniform(this,"srcStart","vec2"),this._uSrcEnd=new C3.Gfx.WebGLShaderUniform(this,"srcEnd","vec2"),this._uSrcOriginStart=new C3.Gfx.WebGLShaderUniform(this,"srcOriginStart","vec2"),this._uSrcOriginEnd=new C3.Gfx.WebGLShaderUniform(this,"srcOriginEnd","vec2"),this._uPixelSize=new C3.Gfx.WebGLShaderUniform(this,"pixelSize","vec2"),this._uSeconds=new C3.Gfx.WebGLShaderUniform(this,"seconds","float"),this._uLayerScale=new C3.Gfx.WebGLShaderUniform(this,"layerScale","float"),this._uLayerAngle=new C3.Gfx.WebGLShaderUniform(this,"layerAngle","float"),this._uLayoutStart=new C3.Gfx.WebGLShaderUniform(this,"layoutStart","vec2"),this._uLayoutEnd=new C3.Gfx.WebGLShaderUniform(this,"layoutEnd","vec2"),this._hasAnyOptionalUniforms=!!(this._uPixelSize.IsUsed()||this._uSeconds.IsUsed()||this._uSamplerBack.IsUsed()||this._uDestStart.IsUsed()||this._uDestEnd.IsUsed()||this._uSrcStart.IsUsed()||this._uSrcEnd.IsUsed()||this._uSrcOriginStart.IsUsed()||this._uSrcOriginEnd.IsUsed()||this._uLayerScale.IsUsed()||this._uLayerAngle.IsUsed()||this._uLayoutStart.IsUsed()||this._uLayoutEnd.IsUsed()),this._extendBoxHorizontal=c.extendBoxHorizontal||0,this._extendBoxVertical=c.extendBoxVertical||0,this._crossSampling=!!c.crossSampling,this._mustPreDraw=!!c.mustPreDraw,this._preservesOpaqueness=!!c.preservesOpaqueness,this._animated=!!c.animated;const j=c.parameters||[];this._uCustomParameters=[],this._usesDest=this._uDestStart.IsUsed()||this._uDestEnd.IsUsed(),this._usesAnySrcRectOrPixelSize=this._uPixelSize.IsUsed()||this._uSrcStart.IsUsed()||this._uSrcEnd.IsUsed()||this._uSrcOriginStart.IsUsed()||this._uSrcOriginEnd.IsUsed(),this._needsPostDrawOrExtendBox=this._crossSampling||this._usesDest||0!==this._extendBoxHorizontal||0!==this._extendBoxVertical,this._hasCurrentMatP=!1,this._hasCurrentMatMV=!1,this._uColor.Init4f(1,1,1,1),this._uColor2.Init4f(1,1,1,1),this._uSamplerFront.Init1i(0),this._uSamplerBack.Init1i(1),this._uPointTexStart.Init2f(0,0),this._uPointTexEnd.Init2f(1,1),this._uZElevation.Init1f(0),this._uTileSize.Init2f(0,0),this._uTileSpacing.Init2f(0,0),this._uDestStart.Init2f(0,0),this._uDestEnd.Init2f(1,1),this._uSrcStart.Init2f(0,0),this._uSrcEnd.Init2f(0,0),this._uSrcOriginStart.Init2f(0,0),this._uSrcOriginEnd.Init2f(0,0),this._uPixelSize.Init2f(0,0),this._uLayerScale.Init1f(1),this._uLayerAngle.Init1f(0),this._uSeconds.Init1f(0),this._uLayoutStart.Init2f(0,0),this._uLayoutEnd.Init2f(0,0),this._uOutlineThickness.Init1f(1);for(const e of j){const a=e[0],b=e[2],c=new C3.Gfx.WebGLShaderUniform(this,a,b);"color"===b?c.Init3f(0,0,0):c.Init1f(0),this._uCustomParameters.push(c)}this._isDeviceTransform?this._UpdateDeviceTransformUniforms(f.currentMatP):(this.UpdateMatP(f.currentMatP,!0),this.UpdateMatMV(f.currentMV,!0));const k=f.currentShader;e.useProgram(k?k._shaderProgram:null)}Release(){this._gl.deleteProgram(this._shaderProgram),this._shaderProgram=null,this._renderer._RemoveShaderProgram(this),this._gl=null,this._renderer=null}GetName(){return this._name}GetWebGLContext(){return this._gl}GetShaderProgram(){return this._shaderProgram}UsesDest(){return this._usesDest}UsesCrossSampling(){return this._crossSampling}MustPreDraw(){return this._mustPreDraw}PreservesOpaqueness(){return this._preservesOpaqueness}ExtendsBox(){return 0!==this._extendBoxHorizontal||0!==this._extendBoxVertical}GetBoxExtendHorizontal(){return this._extendBoxHorizontal}GetBoxExtendVertical(){return this._extendBoxVertical}UsesAnySrcRectOrPixelSize(){return this._usesAnySrcRectOrPixelSize}NeedsPostDrawOrExtendsBox(){return this._needsPostDrawOrExtendBox}GetParameterCount(){return this._uCustomParameters.length}GetParameterType(a){return this._uCustomParameters[a].GetType()}AreCustomParametersAlreadySetInBatch(a){for(let b=0,c=a.length;b{const b=a.font.GetName();for(const c of i)(c.IsBBCodeEnabled()||C3.equalsNoCase(c.GetFontName(),b))&&c._SetTextChanged()}),C3.Gfx.WebGLText=class{constructor(a,b){b=Object.assign({},d,b),this._renderer=a,this._fontName="Arial",this._fontSize=16,this._lineHeight=0,this._isBold=!1,this._isItalic=!1,this._colorStr="black",this._isBBcodeEnabled=!1,this.onloadfont=null,this._alreadyLoadedFonts=new Set,this._horizontalAlign="left",this._verticalAlign="top",this._text="",this._bbString=null,this._wrappedText=C3.New(C3.WordWrap),this._wrapMode="word",this._textChanged=!1,this._isUpdating=!1,this._isAsync=!0,this._drawMaxCharCount=-1,this._drawCharCount=0,this._cssWidth=0,this._cssHeight=0,this._width=0,this._height=0,this._zoom=1,this._changed=!1,this._textCanvas=null,this._textContext=null,this._measureContext=null,this._lastCanvasWidth=-1,this._lastCanvasHeight=-1,this._lastTextCanvasFont="",this._lastMeasureCanvasFont="",this._lastTextCanvasFillStyle="",this._lastTextCanvasOpacity=1,this._lastTextCanvasLineWidth=1,this._measureTextCallback=(a,b)=>this._MeasureText(a,b),this._texture=null,this._textureWidth=0,this._textureHeight=0,this._rcTex=new C3.Rect,this._scaleFactor=1,this._needToRecreateTexture=!1,this._textureTimeout=new C3.IdleTimeout(()=>{this.ReleaseTexture(),this._SetTextCanvasSize(8,8)},b.timeout),this.ontextureupdate=null,this._wasReleased=!1,i.add(this)}Release(){this.onloadfont=null,this._alreadyLoadedFonts.clear(),this._bbString=null,this._textCanvas=null,this._textContext=null,this._measureContext=null,this._measureTextCallback=null,this._textureTimeout.Release(),this.ontextureupdate=null,this.ReleaseTexture(),this._wrappedText.Clear(),this._wrappedText=null,this._renderer=null,this._wasReleased=!0,i.delete(this)}_SetChanged(){this._changed=!0}_SetTextChanged(){this._SetChanged(),this._wrappedText.Clear(),this._textChanged=!0}SetIsAsync(b){this._isAsync=!!b}IsAsync(){return this._isAsync}SetBBCodeEnabled(a){a=!!a;this._isBBcodeEnabled===a||(this._isBBcodeEnabled=a,this._textContext&&(this._textContext.textBaseline=this._isBBcodeEnabled?"alphabetic":"top"),this._SetTextChanged())}IsBBCodeEnabled(){return this._isBBcodeEnabled}SetFontName(a){a||(a="serif");this._fontName===a||(this._fontName=a,this._SetTextChanged())}GetFontName(){return this._fontName}SetFontSize(a){.1>a&&(a=.1);this._fontSize===a||(this._fontSize=a,this._SetTextChanged())}SetLineHeight(a){this._lineHeight===a||(this._lineHeight=a,this._SetChanged())}SetBold(a){a=!!a;this._isBold===a||(this._isBold=a,this._SetTextChanged())}SetItalic(a){a=!!a;this._isItalic===a||(this._isItalic=a,this._SetTextChanged())}SetDrawMaxCharacterCount(a){a=Math.floor(a);this._drawMaxCharCount===a||(this._drawMaxCharCount=a,this._SetChanged())}GetDrawMaxCharacterCount(){return this._drawMaxCharCount}_GetStyleTag(a,b){for(let c=a.length-1;0<=c;--c){const d=a[c];if(d.tag===b)return d}return null}_HasStyleTag(a,b){return!!this._GetStyleTag(a,b)}_GetFontString(a,b){let c="";(this._isBold||this._HasStyleTag(b,"b"))&&(c+="bold"),(this._isItalic||this._HasStyleTag(b,"i"))&&(c+=" italic");const d=this._GetStyleTag(b,"size"),e=d?parseFloat(d.param):this._fontSize;c+=a?" "+e+"pt":" "+e*this._scaleFactor*this._zoom*self.devicePixelRatio+"pt";let f=this._fontName;const g=this._GetStyleTag(b,"font");return g&&g.param&&(f=g.param,this.onloadfont&&!this._alreadyLoadedFonts.has(f)&&(this.onloadfont(f),this._alreadyLoadedFonts.add(f))),f&&(c+=" \""+f+"\""),c}SetColor(a){a instanceof C3.Color&&(a=a.getCssRgb());this._colorStr===a||(this._colorStr=a,this._SetChanged())}SetColorRgb(a,c,d){e.setRgb(a,c,d),this.SetColor(e)}SetHorizontalAlignment(a){if(!f.has(a))throw new Error("invalid horizontal alignment");this._horizontalAlign===a||(this._horizontalAlign=a,this._SetChanged())}SetVerticalAlignment(a){if(!g.has(a))throw new Error("invalid vertical alignment");this._verticalAlign===a||(this._verticalAlign=a,this._SetChanged())}SetWordWrapMode(a){if(!h.has(a))throw new Error("invalid word wrap mode");this._wrapMode===a||(this._wrapMode=a,this._SetTextChanged())}SetText(a){this._text===a||(this._text=a,this._SetTextChanged())}SetSize(a,b,c){var d=Math.min;if("undefined"==typeof c&&(c=1),0>=a||0>=a)return;if(this._cssWidth===a&&this._cssHeight===b&&this._zoom===c)return;1===this._zoom!=(1===c)&&(this._needToRecreateTexture=!0);const e=this._cssWidth,f=this._zoom;this._cssWidth=a,this._cssHeight=b,this._zoom=c;const g=self.devicePixelRatio;this._width=this._cssWidth*this._zoom*g,this._height=this._cssHeight*this._zoom*g;const h=Math.max(this._width,this._height),i=d(this._renderer.GetMaxTextureSize(),2048);let j=1;h>i&&(j=i/h,this._width=d(this._width*j,i),this._height=d(this._height*j,i)),this._scaleFactor=j,0=this._width||0>=this._height||(this._changed=!1,this._isUpdating=!0,this._isAsync?C3.Asyncify(()=>this._DoUpdate()):this._DoUpdate())}_DoUpdate(){var a=Math.ceil;this._wasReleased||(this._SetTextCanvasSize(a(this._width),a(this._height)),this._MaybeWrapText(),this._DrawTextToCanvas(),this._UpdateTexture(),this._textureTimeout.Reset(),this._isUpdating=!1)}_SetTextCanvasSize(a,b){this._textCanvas||(this._textCanvas=C3.CreateCanvas(16,16));let c=!1;(this._lastCanvasWidth!==a||this._lastCanvasHeight!==b)&&(this._lastCanvasWidth=a,this._lastCanvasHeight=b,this._textCanvas.width=a,this._textCanvas.height=b,c=!0),this._textContext||(this._textContext=this._textCanvas.getContext("2d"),c=!0),c?(this._textContext.textBaseline=this._isBBcodeEnabled?"alphabetic":"top",this._textContext.font=this._lastTextCanvasFont,this._textContext.fillStyle=this._lastTextCanvasFillStyle,this._textContext.strokeStyle=this._lastTextCanvasFillStyle):this._textContext.clearRect(0,0,a,b)}_MaybeCreateMeasureContext(){this._measureContext||(this._measureContext=C3.CreateCanvas(16,16).getContext("2d"))}_SetMeasureFontString(a){this._lastMeasureCanvasFont===a||(this._lastMeasureCanvasFont=a,this._measureContext.font=a)}_MaybeWrapText(){this._textChanged&&(this._MaybeCreateMeasureContext(),this._isBBcodeEnabled&&(!this._bbString||this._bbString.toString()!==this._text)&&(this._bbString=new C3.BBString(this._text,{noEscape:!0})),this._wrappedText.WordWrap(this._isBBcodeEnabled?this._bbString.toFragmentList():this._text,this._measureTextCallback,this._cssWidth,this._wrapMode),this._textChanged=!1)}_MeasureText(a,b){this._SetMeasureFontString(this._GetFontString(!0,b));const d=this._GetStyleTag(b,"size"),e=d?parseFloat(d.param):this._fontSize;return{width:this._measureContext.measureText(a).width,height:c(e)}}_SetDrawFontString(a){this._lastTextCanvasFont===a||(this._lastTextCanvasFont=a,this._textContext.font=a)}_SetDrawCanvasColor(a){this._lastTextCanvasFillStyle===a||(this._lastTextCanvasFillStyle=a,this._textContext.fillStyle=a,this._textContext.strokeStyle=a)}_SetDrawCanvasOpacity(a){this._lastTextCanvasOpacity===a||(this._lastTextCanvasOpacity=a,this._textContext.globalAlpha=a)}_SetDrawCanvasLineWith(a){this._lastTextCanvasLineWidth===a||(this._lastTextCanvasLineWidth=a,this._textContext.lineWidth=a)}_DrawTextToCanvas(){var a=Math.max;this._drawCharCount=0;const b=this._scaleFactor*this._zoom*self.devicePixelRatio,d=c(this._fontSize)*b,e=(4+this._lineHeight)*b,f=d+e;let g=0;const h=this._wrappedText.GetLines();"center"===this._verticalAlign?g=a(this._height/2-h.length*f/2,0):"bottom"===this._verticalAlign&&(g=a(this._height-h.length*f-2,0));for(let a=0,c=h.length;athis._height-e)break;}else if(0=this._height-(d+e))break;let f=0;"center"===this._horizontalAlign?f=(this._width-c.width*b)/2:"right"===this._horizontalAlign&&(f=this._width-c.width*b),this._DrawTextLine(c,f,g,b),this._isBBcodeEnabled||(g+=d),g+=e}}_DrawTextLine(a,b,c,d){for(const e of a.fragments)this._DrawTextFragment(e,b,c,d,a.height),b+=e.width*d}_DrawTextFragment(c,d,e,f,g){const h=this._textContext,i=g/16;let j=c.width*f;const k=c.height*f,l=c.height/16,m=(4+this._lineHeight)*f,n=c.styles;let o=c.text;if(-1!==this._drawMaxCharCount){if(this._drawCharCount>=this._drawMaxCharCount)return;this._drawCharCount+o.length>this._drawMaxCharCount&&(o=o.substr(0,this._drawMaxCharCount-this._drawCharCount),j=this._MeasureText(o,n).width*f),this._drawCharCount+=o.length}const p=this._GetStyleTag(n,"background"),q=this._HasStyleTag(n,"u"),r=this._HasStyleTag(n,"s");if((!C3.IsStringAllWhitespace(o)||p||q||r)&&!this._HasStyleTag(n,"hide")){const c=this._GetStyleTag(n,"offsetx");d+=c?parseFloat(c.param)*f:0;const g=this._GetStyleTag(n,"offsety");e+=g?parseFloat(g.param)*f:0,p&&(this._SetDrawCanvasColor(p.param),h.fillRect(d,e-k,j,k+m));const s=this._GetStyleTag(n,"color");this._SetDrawCanvasColor(s?s.param:this._colorStr);const t=this._GetStyleTag(n,"opacity");this._SetDrawCanvasOpacity(t?parseFloat(t.param)/100:1);const u=this._HasStyleTag(n,"stroke");if(u&&this._SetDrawCanvasLineWith(l*this._scaleFactor*this._zoom),q&&b(h,u,d,e+f*i,j,f*i),r&&b(h,u,d,e-k/4,j,f*l),this._SetDrawFontString(this._GetFontString(!1,n)),a(h,u,o,d,e,j),!u){this._SetDrawCanvasLineWith(l*this._scaleFactor*this._zoom);const b=this._GetStyleTag(n,"outline");b&&(this._SetDrawCanvasColor(b.param),a(h,!0,o,d,e,j))}}}_UpdateTexture(){var a=Math.ceil;this._renderer.IsContextLost()||(this._textureWidth=a(this._width),this._textureHeight=a(this._height),this._rcTex.set(0,0,this._width/this._textureWidth,this._height/this._textureHeight),this._needToRecreateTexture&&(this.ReleaseTexture(),this._needToRecreateTexture=!1),!this._texture&&(this._texture=this._renderer.CreateDynamicTexture(this._textureWidth,this._textureHeight,{mipMap:1===this._zoom,mipMapQuality:"high"})),this._renderer.UpdateTexture(this._textCanvas,this._texture),this.ontextureupdate&&this.ontextureupdate())}GetTexRect(){return this._rcTex}ReleaseTexture(){this._texture&&(!this._renderer.IsContextLost()&&this._renderer.DeleteTexture(this._texture),this._texture=null)}static OnContextLost(){for(const a of i)a.ReleaseTexture()}static GetAll(){return i.values()}}} + +// ../lib/gfx/query.js +"use strict";{class a{constructor(a){this._gl=a.GetContext(),this._version=a.GetWebGLVersionNumber(),this._timerExt=a._GetDisjointTimerQueryExtension(),this._query=null,this._isActive=!1,this._hasResult=!1,this._result=0,this._query=1===this._version?this._timerExt["createQueryEXT"]():this._gl["createQuery"]()}Release(){this._DeleteQueryObject(),this._gl=null,this._timerExt=null,this._hasResult=!1}_DeleteQueryObject(){this._query&&(1===this._version?this._timerExt["deleteQueryEXT"](this._query):this._gl["deleteQuery"](this._query),this._query=null)}BeginTimeElapsed(){if(this._isActive)throw new Error("query already active");1===this._version?this._timerExt["beginQueryEXT"](this._timerExt["TIME_ELAPSED_EXT"],this._query):this._gl["beginQuery"](this._timerExt["TIME_ELAPSED_EXT"],this._query),this._isActive=!0}EndTimeElapsed(){if(!this._isActive)throw new Error("query not active");1===this._version?this._timerExt["endQueryEXT"](this._timerExt["TIME_ELAPSED_EXT"]):this._gl["endQuery"](this._timerExt["TIME_ELAPSED_EXT"]),this._isActive=!1}CheckForResult(){if(!this._query||this._hasResult||this._isActive)return;let a=!1;a=1===this._version?this._timerExt["getQueryObjectEXT"](this._query,this._timerExt["QUERY_RESULT_AVAILABLE_EXT"]):this._gl["getQueryParameter"](this._query,this._gl["QUERY_RESULT_AVAILABLE"]);const b=this._gl.getParameter(this._timerExt["GPU_DISJOINT_EXT"]);a&&!b&&(this._result=1===this._version?this._timerExt["getQueryObjectEXT"](this._query,this._timerExt["QUERY_RESULT_EXT"]):this._gl["getQueryParameter"](this._query,this._gl["QUERY_RESULT"]),this._result/=1e9,this._hasResult=!0),(a||b)&&this._DeleteQueryObject()}HasResult(){return this._hasResult}GetResult(){if(!this._hasResult)throw new Error("no result available");return this._result}}C3.Gfx.WebGLTimeElapsedQuery=class{constructor(a){this._renderer=a,this._frameNumber=a.GetFrameNumber(),this._isActive=!1,this._parentQuery=null,this._isNested=!1,this._realQuery=null,this._queries=[]}Release(){for(const b of this._queries)b instanceof a&&b.Release();C3.clearArray(this._queries),this._parentQuery=null,this._realQuery=null,this._renderer=null}BeginTimeElapsed(){if(this._isActive)throw new Error("query already active");const a=this._renderer._GetTimeQueryStack();0a.HasResult())}GetResult(){return this._queries.reduce((b,a)=>b+a.GetResult(),0)}GetFrameNumber(){return this._frameNumber}}} + +// ../lib/gfx/queryResultBuffer.js +"use strict";C3.Gfx.WebGLQueryResultBuffer=class{constructor(a,b=1e3){this._renderer=a,this._maxQueries=b,this._buffer=[],this._renderer._AddQueryResultBuffer(this)}Release(){this.Clear(),this._renderer._RemoveQueryResultBuffer(this),this._renderer=null}Clear(){for(const a of this._buffer)a.Release();C3.clearArray(this._buffer)}AddTimeElapsedQuery(){const a=new C3.Gfx.WebGLTimeElapsedQuery(this._renderer);if(this._buffer.push(a),this._buffer.length>this._maxQueries){const a=this._buffer.shift();a.Release()}return a}CheckForResults(a){for(const b of this._buffer){if(b.GetFrameNumber()>=a)return;if(b.IsNested())return;b.CheckForResult()}}GetFrameRangeResultSum(a,b){if(b<=a)return NaN;let c=0;for(const d of this._buffer){if(d.GetFrameNumber()>=b)break;if(!(d.GetFrameNumber()"],[l.GetTextureFillFragmentShaderSource(),o,""],[l.GetPointFragmentShaderSource(),l.GetPointVertexShaderSource(),""],[l.GetColorFillFragmentShaderSource(),o,""],[l.GetLinearGradientFillFragmentShaderSource(),o,""],[l.GetHardEllipseFillFragmentShaderSource(),o,""],[l.GetHardEllipseOutlineFragmentShaderSource(),o,""],[l.GetSmoothEllipseFillFragmentShaderSource(),o,""],[l.GetSmoothEllipseOutlineFragmentShaderSource(),o,""],[l.GetSmoothLineFillFragmentShaderSource(),o,""],[l.GetTilemapFragmentShaderSource(),l.GetDefaultVertexShaderSource(this._is3d,!0),""]],d=await Promise.all(s.map((e)=>this.CreateShaderProgram({src:e[0]},e[1],e[2])));this._spTextureFill=d[0],this._spDeviceTransformTextureFill=d[1],this._spPoints=d[2],this._spColorFill=d[3],this._spLinearGradientFill=d[4],this._spHardEllipseFill=d[5],this._spHardEllipseOutline=d[6],this._spSmoothEllipseFill=d[7],this._spSmoothEllipseOutline=d[8],this._spSmoothLineFill=d[9],this._spTilemapFill=d[10],this._currentStateGroup=null,this.SetTextureFillMode()}FillIndexBufferData(){const e=this._indexData;for(let t=0,r=0;t<12000;)e[t++]=r,e[t++]=r+1,e[t++]=r+2,e[t++]=r,e[t++]=r+2,e[t++]=r+3,r+=4}Is3D(){return this._is3d}GetNumVertexComponents(){return this._is3d?3:2}SetBaseZ(e){this._baseZ=e}GetBaseZ(){return this._baseZ}SetCurrentZ(e){this._currentZ=e,this._currentStateGroup=null}GetCurrentZ(){return this._currentZ}async CreateShaderProgram(e,t,r){const a=await C3.Gfx.WebGLShaderProgram.Create(this,e,t,r);return this._shaderPrograms.push(a),this._shaderProgramsByName.set(a.GetName(),a),a}GetShaderProgramByName(e){return this._shaderProgramsByName.get(e)||null}GetTextureFillShaderProgram(){return this._spTextureFill}ResetLastProgram(){this._lastProgram=null}_RemoveShaderProgram(e){const t=this._shaderPrograms.indexOf(e);-1!==t&&this._shaderPrograms.splice(t,1),this._shaderProgramsByName.delete(e.GetName())}Project(e,t,r,a,i){const n=this._matMV,l=this._matP;for(let n=0,l=_.length;n=this._lastVertexPtr&&(this.EndBatch(),e=0),1===this._topOfBatch)this._batch[this._batchPtr-1]._indexCount+=6;else{const t=this.PushBatch();t.InitQuad(this._is3d?e:3*(e/2),6),this._topOfBatch=1}}_WriteQuadToVertexBuffer(e){e.writeToTypedArray3D(this._vertexData,this._vertexPtr,this._baseZ+this._currentZ),this._vertexPtr+=12}Quad(e){this._ExtendQuadBatch(),this._WriteQuadToVertexBuffer(e),n.writeToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}Quad2(e,t,r,a,i,_,l,o){this._ExtendQuadBatch();const s=this._vertexData;let d=this._vertexPtr;const u=this._baseZ+this._currentZ;this._is3d?(s[d++]=e,s[d++]=t,s[d++]=u,s[d++]=r,s[d++]=a,s[d++]=u,s[d++]=i,s[d++]=_,s[d++]=u,s[d++]=l,s[d++]=o,s[d++]=u):(s[d++]=e,s[d++]=t,s[d++]=r,s[d++]=a,s[d++]=i,s[d++]=_,s[d++]=l,s[d++]=o),this._vertexPtr=d,n.writeToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}Quad3(e,t){this._ExtendQuadBatch(),this._WriteQuadToVertexBuffer(e),t.writeAsQuadToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}Quad4(e,t){this._ExtendQuadBatch(),this._WriteQuadToVertexBuffer(e),t.writeToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}FullscreenQuad(e,t){var r=Math.max,a=Math.min;if(mat4.copy(s,this._lastMV),vec3.copy(l,this._cam),vec3.copy(o,this._look),this._cam[0]=0,this._cam[1]=0,this._cam[2]=100*self.devicePixelRatio,this._look[0]=0,this._look[1]=0,this._look[2]=0,this.ResetModelView(),this.UpdateModelView(),this._isScissorViewport){const e=this._viewportScissorWidth/2,t=this._viewportScissorHeight/2;c.set(-e,t,-e+this._viewportScissorWidth,t-this._viewportScissorHeight),d.setFromRect(c),c.set(0,0,this._viewportScissorWidth/this._width,this._viewportScissorHeight/this._height),this.Quad3(d,c)}else if("crop"===e&&this._currentRenderTarget&&t){const e=this._width/2,i=this._height/2,n=t.GetWidth(),_=t.GetHeight(),l=this._currentRenderTarget.GetWidth(),o=this._currentRenderTarget.GetHeight(),s=a(l,n),u=a(o,_),p=r(_-o,0),f=r(o-_,0);c.set(-e,i-f,-e+s,i-u-f),d.setFromRect(c),c.set(0,p,s,u+p),c.divide(n,_),this.Quad3(d,c)}else{let[e,t]=this.GetRenderTargetSize(this._currentRenderTarget);const r=e/2,a=t/2;this.Rect2(-r,a,r,-a)}mat4.copy(this._matMV,s),vec3.copy(this._cam,l),vec3.copy(this._look,o),this.UpdateModelView()}ConvexPoly(e){const t=e.length/2;if(3>t)throw new Error("need at least 3 points");const r=t-2,a=e[0],n=e[1];for(let t=0;t=this._lineWidthStack.length)throw new Error("cannot pop last line width - check push/pop pairs");this._lineWidthStack.pop(),this._lineWidth=this._lineWidthStack[this._lineWidthStack.length-1]}SetLineCapButt(){this._lineCap=0,this._lineCapStack[this._lineCapStack.length-1]=0}SetLineCapSquare(){this._lineCap=1,this._lineCapStack[this._lineCapStack.length-1]=0}SetLineCapZag(){this._lineCap=2,this._lineCapStack[this._lineCapStack.length-1]=0}PushLineCap(e){if("butt"===e)this.PushLineCapButt();else if("square"===e)this.PushLineCapSquare();else if("zag"===e)this.PushLineCapZag();else throw new Error("invalid line cap")}PushLineCapButt(){if(100<=this._lineCapStack.length)throw new Error("pushed too many line caps - check push/pop pairs");this._lineCapStack.push(0),this._lineCap=0}PushLineCapSquare(){if(100<=this._lineCapStack.length)throw new Error("pushed too many line caps - check push/pop pairs");this._lineCapStack.push(1),this._lineCap=1}PushLineCapZag(){if(100<=this._lineCapStack.length)throw new Error("pushed too many line caps - check push/pop pairs");this._lineCapStack.push(2),this._lineCap=2}PopLineCap(){if(1>=this._lineCapStack.length)throw new Error("cannot pop last line cap - check push/pop pairs");this._lineCapStack.pop(),this._lineCap=this._lineCapStack[this._lineCapStack.length-1]}SetLineOffset(e){this._lineOffset=e,this._lineOffsetStack[this._lineOffsetStack.length-1]=e}GetLineOffset(){return this._lineOffset}PushLineOffset(e){if(100<=this._lineOffsetStack.length)throw new Error("pushed too many line offsets - check push/pop pairs");this._lineOffsetStack.push(e),this._lineOffset=e}PopLineOffset(){if(1>=this._lineOffsetStack.length)throw new Error("cannot pop last line offset - check push/pop pairs");this._lineOffsetStack.pop(),this._lineOffset=this._lineOffsetStack[this._lineOffsetStack.length-1]}SetPointTextureCoords(e){if(!this._lastPointTexCoords.equals(e)){this._lastPointTexCoords.copy(e);const t=this.PushBatch();t.InitSetPointTexCoords(e),this._topOfBatch=0}}Point(e,t,r,a){this._pointPtr>=7996&&this.EndBatch();let i=this._pointPtr;const n=this._baseZ+this._currentZ;if(2===this._topOfBatch&&this._lastPointZ===n)this._batch[this._batchPtr-1]._indexCount++;else{const e=this.PushBatch();e.InitPoints(i,n),this._topOfBatch=2,this._lastPointZ=n}const _=this._pointData;_[i++]=e,_[i++]=t,_[i++]=r,_[i++]=a,this._pointPtr=i}SetProgram(e){if(this._lastProgram!==e){const t=this.PushBatch();t.InitSetProgram(e),this._lastProgram=e,this._topOfBatch=0,this._currentStateGroup=null}}SetTextureFillMode(){this.SetProgram(this._spTextureFill)}SetDeviceTransformTextureFillMode(){this.SetProgram(this._spDeviceTransformTextureFill)}SetColorFillMode(){this.SetProgram(this._spColorFill)}SetLinearGradientFillMode(){this.SetProgram(this._spLinearGradientFill)}SetGradientColor(e){const t=this.PushBatch();t.InitSetGradientColor(e),this._topOfBatch=0}SetHardEllipseFillMode(){this.SetProgram(this._spHardEllipseFill)}SetHardEllipseOutlineMode(){this.SetProgram(this._spHardEllipseOutline)}SetSmoothEllipseFillMode(){this.SetProgram(this._spSmoothEllipseFill)}SetSmoothEllipseOutlineMode(){this.SetProgram(this._spSmoothEllipseOutline)}SetEllipseParams(e,t,r=1){const a=this.PushBatch();a.InitSetEllipseParams(e,t,r),this._topOfBatch=0}SetSmoothLineFillMode(){this.SetProgram(this._spSmoothLineFill)}SetTilemapFillMode(){this.SetProgram(this._spTilemapFill)}SetTilemapInfo(e,t,r,a,i,n,_){if(this._lastProgram!==this._spTilemapFill)throw new Error("must set tilemap fill mode first");const l=this.PushBatch();l.InitSetTilemapInfo(e,t,r,a,i,n,_),this._topOfBatch=0}SetProgramParameters(e,t,r,a,i,n,_,l,o,d,u){const c=this._lastProgram,s=c._hasAnyOptionalUniforms,p=!!u.length;if(s&&!c.AreOptionalUniformsAlreadySetInBatch(t,r,a,i,n,_,l,o,d)||p&&!c.AreCustomParametersAlreadySetInBatch(u)){const f=this.PushBatch();if(f.InitSetProgramParameters(),s){c.SetOptionalUniformsInBatch(t,r,a,i,n,_,l,o,d);const s=f._mat4param;s[0]=n,s[1]=_,t.writeToTypedArray(s,2),s[6]=l,s[7]=o,r.writeToTypedArray(s,12);const u=f._colorParam;i.writeToTypedArray(u,0);const p=u[1];u[1]=u[3],u[3]=p,a.writeToTypedArray(f._srcOriginRect,0),f._startIndex=d,f._texParam=c._uSamplerBack.IsUsed()?e?e.GetTexture():null:null}p&&(c.SetCustomParametersInBatch(u),C3.shallowAssignArray(f._shaderParams,u)),this._topOfBatch=0}}ClearRgba(e,t,r,i){const a=this.PushBatch();a.InitClearSurface2(e,t,r,i),this._topOfBatch=0}Clear(e){const t=this.PushBatch();t.InitClearSurface(e),this._topOfBatch=0}ClearRect(e,t,r,a){this.ClearRect4(e,t,r,a,0,0,0,0)}ClearRect2(e){this.ClearRect4(e.getLeft(),e.getTop(),e.width(),e.height(),0,0,0,0)}ClearRect3(e,t){this.ClearRect4(e.getLeft(),e.getTop(),e.width(),e.height(),t.getR(),t.getG(),t.getB(),t.getA())}ClearRect4(e,t,i,n,_,r,l,o){if(!(0>i||0>n)){const a=this.PushBatch();a.InitClearRect(e,t,i,n,_,r,l,o),this._topOfBatch=0}}Start(){2<=this.GetWebGLVersionNumber()&&this._gl["bindVertexArray"](this._dummyVao)}Finish(){this.EndBatch(),2<=this.GetWebGLVersionNumber()&&this._gl["bindVertexArray"](null),this._gl.flush(),this._frameNumber++}CheckForQueryResults(){for(const e of this._allQueryResultBuffers)e.CheckForResults(this._frameNumber)}IsContextLost(){return!this._gl||this._gl.isContextLost()||this._isInitialisingAfterContextRestored}OnContextLost(){C3.Gfx.WebGLRendererTexture.OnContextLost(),C3.Gfx.WebGLRenderTarget.OnContextLost(),C3.Gfx.WebGLText.OnContextLost();for(const e of this._allQueryResultBuffers)e.Clear();this._extensions=[],this._timerExt=null,this._parallelShaderCompileExt=null,this._unmaskedVendor="(unavailable)",this._unmaskedRenderer="(unavailable)",this._lastProgram=null,this._spTextureFill=null,this._spDeviceTransformTextureFill=null,this._spColorFill=null,this._spLinearGradientFill=null,this._spHardEllipseFill=null,this._spHardEllipseOutline=null,this._spSmoothEllipseFill=null,this._spSmoothEllipseOutline=null,this._spSmoothLineFill=null,this._spPoints=null,this._spTilemapFill=null;for(const e of this._stateGroups.values())e.OnContextLost();for(const e of this._shaderPrograms)e.Release();C3.clearArray(this._shaderPrograms),this._shaderProgramsByName.clear()}async OnContextRestored(){this._isInitialisingAfterContextRestored=!0,await this.InitState(),this._isInitialisingAfterContextRestored=!1;for(const e of this._stateGroups.values())e.OnContextRestored(this);this.SetSize(this._width,this._height,!0)}CreateStaticTexture(e,t){if(this.IsContextLost())throw new Error("context lost");this.EndBatch();const r=C3.New(C3.Gfx.WebGLRendererTexture,this);return r._CreateStatic(e,t),r}CreateStaticTextureAsync(e,t){return this.IsContextLost()?Promise.reject("context lost"):(t=Object.assign({},t),C3.Supports.ImageBitmapOptions&&(this.SupportsNPOTTextures()||!t.isTiled)?(t.premultiplyAlpha=!1,createImageBitmap(e,{"premultiplyAlpha":"premultiply"}).then((e)=>C3.Asyncify(()=>this.CreateStaticTexture(e,t)))):C3.Supports.ImageBitmap?createImageBitmap(e).then((e)=>C3.Asyncify(()=>this.CreateStaticTexture(e,t))):e instanceof Blob?C3.BlobToImage(e,!0).then((e)=>this.CreateStaticTextureAsync(e,t)):"undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement&&"function"==typeof e["decode"]?e["decode"]().then(()=>C3.Asyncify(()=>this.CreateStaticTexture(e,t))):C3.Asyncify(()=>this.CreateStaticTexture(e,t)))}CreateDynamicTexture(e,t,r){this.EndBatch();const a=C3.New(C3.Gfx.WebGLRendererTexture,this);return a._CreateDynamic(e,t,r),a}UpdateTexture(e,t,r){this.EndBatch(),t._Update(e,r)}DeleteTexture(e){e&&(e.SubtractReference(),0=t||0>=r)throw new Error("invalid size");this.EndBatch();const i=C3.New(C3.Gfx.WebGLRenderTarget,this);return i._Create(t,r,Object.assign({isDefaultSize:a},e)),this._currentRenderTarget=null,this._batchState.currentFramebuffer=null,i}SetRenderTarget(e){if(e===this._currentRenderTarget)return;let t,r,a,i;e?(e.IsDefaultSize()&&e._Resize(this._width,this._height),a=e.GetWidth(),i=e.GetHeight(),t=a,r=i):(a=this._width,i=this._height,t=this.GetScissoredViewportWidth(),r=this.GetScissoredViewportHeight());const n=this._lastBackbufferWidth!==a||this._lastBackbufferHeight!==i;n&&this._UpdateViewportRenderer(t,r,a,i);const _=this.PushBatch();_.InitSetRenderTarget(e,n,this._matP),this._currentRenderTarget=e,this._topOfBatch=0}GetRenderTarget(){return this._currentRenderTarget}GetRenderTargetSize(e){return e?[e.GetWidth(),e.GetHeight()]:[this._width,this._height]}CopyRenderTarget(e,t="stretch"){if(2>this._version||this._currentRenderTarget&&0this._version)){const t=this.PushBatch();t.InitInvalidateFramebuffer(e._GetFramebuffer()),this._topOfBatch=0}}DeleteRenderTarget(e){this.SetRenderTarget(null),this.EndBatch();const t=e.GetTexture();t===this._lastTexture0&&(this._gl.bindTexture(this._gl.TEXTURE_2D,null),this._lastTexture0=null),t===this._lastTexture1&&(this._gl.activeTexture(this._gl.TEXTURE1),this._gl.bindTexture(this._gl.TEXTURE_2D,null),this._gl.activeTexture(this._gl.TEXTURE0),this._lastTexture1=null),e._Delete()}async ReadBackRenderTargetToImageData(e,t){this.EndBatch();const r=this._currentRenderTarget;let a,i,n;e?(a=e.GetWidth(),i=e.GetHeight(),n=e._GetFramebuffer()):(a=this.GetWidth(),i=this.GetHeight(),n=null);const _=this._gl;_.bindFramebuffer(_.FRAMEBUFFER,n);const l=()=>{_.bindFramebuffer(_.FRAMEBUFFER,null),this._currentRenderTarget=null,this._batchState.currentFramebuffer=null,this.SetRenderTarget(r)};let o;if(!t&&2<=this.GetWebGLVersionNumber()){_.bindFramebuffer(_.READ_FRAMEBUFFER,n);const e=_.createBuffer(),t=4*(a*i),r=_["PIXEL_PACK_BUFFER"];_.bindBuffer(r,e),_.bufferData(r,t,_["STREAM_READ"]),_.readPixels(0,0,a,i,_.RGBA,_.UNSIGNED_BYTE,0),_.bindFramebuffer(_.READ_FRAMEBUFFER,null),_.bindBuffer(r,null),l();const s=_["fenceSync"](_["SYNC_GPU_COMMANDS_COMPLETE"],0);await this._WaitForObjectReady(()=>_["getSyncParameter"](s,_["SYNC_STATUS"])===_["SIGNALED"]),_["deleteSync"](s),o=new ImageData(a,i),_.bindBuffer(r,e),_["getBufferSubData"](r,0,new Uint8Array(o.data.buffer),0,t),_.bindBuffer(r,null),_.deleteBuffer(e)}else o=new ImageData(a,i),_.readPixels(0,0,a,i,_.RGBA,_.UNSIGNED_BYTE,new Uint8Array(o.data.buffer)),l();return o}StartQuery(e){if(this.SupportsGPUProfiling()){const t=this.PushBatch();t.InitStartQuery(e),this._topOfBatch=0}}EndQuery(e){if(this.SupportsGPUProfiling()){const t=this.PushBatch();t.InitEndQuery(e),this._topOfBatch=0}}_WaitForObjectReady(e){const r=new Promise((t)=>p.add({resolve:t,checkFunc:e}));return-1===f&&(f=self.requestAnimationFrame(t)),r}GetEstimatedBackBufferMemoryUsage(){return this._width*this._height*(this._attribs["alpha"]?4:3)}GetEstimatedRenderBufferMemoryUsage(){let e=0;for(const r of C3.Gfx.WebGLRenderTarget.allRenderTargets())r.GetTexture()||(e+=r.GetEstimatedMemoryUsage());return e}GetEstimatedTextureMemoryUsage(){let e=0;for(const r of C3.Gfx.WebGLRendererTexture.allTextures())e+=r.GetEstimatedMemoryUsage();return e}GetEstimatedTotalMemoryUsage(){return this.GetEstimatedBackBufferMemoryUsage()+this.GetEstimatedRenderBufferMemoryUsage()+this.GetEstimatedTextureMemoryUsage()}GetWebGLVersionString(){return this._versionString}GetWebGLVersionNumber(){return this._version}SupportsNPOTTextures(){return 2<=this.GetWebGLVersionNumber()}GetMaxTextureSize(){return this._maxTextureSize}GetMinPointSize(){return this._minPointSize}GetMaxPointSize(){return this._maxPointSize}SupportsHighP(){return 0!==this._highpPrecision}GetHighPPrecision(){return this._highpPrecision}GetUnmaskedVendor(){return this._unmaskedVendor}GetUnmaskedRenderer(){return this._unmaskedRenderer}GetExtensions(){return this._extensions}HasMajorPerformanceCaveat(){return this._hasMajorPerformanceCaveat}SupportsGPUProfiling(){return!!this._timerExt}_GetDisjointTimerQueryExtension(){return this._timerExt}_GetParallelShaderCompileExtension(){return this._parallelShaderCompileExt}_AddQueryResultBuffer(e){this._allQueryResultBuffers.add(e)}_RemoveQueryResultBuffer(e){this._allQueryResultBuffers.delete(e)}_GetTimeQueryStack(){return this._timeQueryStack}GetFrameNumber(){return this._frameNumber}IncrementFrameNumber(){this._frameNumber++}GetContext(){return this._gl}GetNamedBlend(e){const t=this._gl;let r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;switch(e){case"normal":r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;break;case"additive":r=t.ONE,a=t.ONE;break;case"copy":r=t.ONE,a=t.ZERO;break;case"destination-over":r=t.ONE_MINUS_DST_ALPHA,a=t.ONE;break;case"source-in":r=t.DST_ALPHA,a=t.ZERO;break;case"destination-in":r=t.ZERO,a=t.SRC_ALPHA;break;case"source-out":r=t.ONE_MINUS_DST_ALPHA,a=t.ZERO;break;case"destination-out":r=t.ZERO,a=t.ONE_MINUS_SRC_ALPHA;break;case"source-atop":r=t.DST_ALPHA,a=t.ONE_MINUS_SRC_ALPHA;break;case"destination-atop":r=t.ONE_MINUS_DST_ALPHA,a=t.SRC_ALPHA;break;default:throw new Error("invalid blend name");}return{srcBlend:r,destBlend:a}}GetBlendByIndex(e){const t=this._gl;let r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;switch(e){case 0:r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;break;case 1:r=t.ONE,a=t.ONE;break;case 3:r=t.ONE,a=t.ZERO;break;case 4:r=t.ONE_MINUS_DST_ALPHA,a=t.ONE;break;case 5:r=t.DST_ALPHA,a=t.ZERO;break;case 6:r=t.ZERO,a=t.SRC_ALPHA;break;case 7:r=t.ONE_MINUS_DST_ALPHA,a=t.ZERO;break;case 8:r=t.ZERO,a=t.ONE_MINUS_SRC_ALPHA;break;case 9:r=t.DST_ALPHA,a=t.ONE_MINUS_SRC_ALPHA;break;case 10:r=t.ONE_MINUS_DST_ALPHA,a=t.SRC_ALPHA;break;default:throw new Error("invalid blend index");}return{srcBlend:r,destBlend:a}}CreateWebGLText(){return C3.New(C3.Gfx.WebGLText,this)}}} + +// c3/assets/assetManager.js +"use strict";{function a(a){if(!a)return"";const b=a.split(".");if(2>b.length)return"";const d=b[b.length-1].toLowerCase();return c.get(d)||""}const b=new Set(["local","remote"]),c=new Map([["mp4","video/mp4"],["webm","video/webm"],["m4a","audio/mp4"],["mp3","audio/mpeg"],["js","application/javascript"],["wasm","application/wasm"]]);C3.AssetManager=class extends C3.DefendedBase{constructor(a,c){if(super(),!b.has(c.defaultLoadPolicy))throw new Error("invalid load policy");if(this._runtime=a,this._localUrlBlobs=new Map,this._localBlobUrlCache=new Map,this._isCordova=!!c.isCordova,this._isWKWebView=!!c.isWKWebView,this._supportedAudioFormats=c.supportedAudioFormats||{},this._audioFiles=new Map,this._preloadSounds=!1,this._mediaSubfolder="",this._fontsSubfolder="",this._iconsSubfolder="",this._defaultLoadPolicy=c.defaultLoadPolicy,this._allAssets=[],this._assetsByUrl=new Map,this._webFonts=[],this._loadPromises=[],this._hasFinishedInitialLoad=!1,this._totalAssetSizeToLoad=0,this._assetSizeLoaded=0,this._lastLoadProgress=0,this._hasHadErrorLoading=!1,this._loadingRateLimiter=C3.New(C3.RateLimiter,()=>this._FireLoadingProgressEvent(),50),this._promiseThrottle=new C3.PromiseThrottle(Math.max(C3.hardwareConcurrency,8)),c.localUrlBlobs)for(const[a,b]of Object.entries(c.localUrlBlobs))this._localUrlBlobs.set(a,b)}Release(){this._localUrlBlobs.clear();for(const a of this._localBlobUrlCache.values())URL.revokeObjectURL(a);this._localBlobUrlCache.clear();for(const a of this._allAssets)a.Release();C3.clearArray(this._allAssets),this._assetsByUrl.clear(),C3.clearArray(this._loadPromises),this._runtime=null}GetRuntime(){return this._runtime}_SetMediaSubfolder(a){this._mediaSubfolder=a}GetMediaSubfolder(){return this._mediaSubfolder}_SetFontsSubfolder(a){this._fontsSubfolder=a}GetFontsSubfolder(){return this._fontsSubfolder}_SetIconsSubfolder(a){this._iconsSubfolder=a}GetIconsSubfolder(){return this._iconsSubfolder}FetchJson(a){return this.FetchBlob(a,this._defaultLoadPolicy).then((a)=>C3.BlobToJson(a))}FetchBlob(a,b){b=b||this._defaultLoadPolicy;const c=this._localUrlBlobs.get(a);return c?Promise.resolve(c):this._isCordova&&C3.IsRelativeURL(a)?this.CordovaFetchLocalFileAsBlob(a):"local"===b?this._promiseThrottle.Add(()=>C3.FetchBlob(a)):C3.FetchBlob(a)}_HasLocalURLBlob(a){return this._localUrlBlobs.has(a)}_CordovaFetchLocalFileAs(a,b){return this._runtime.PostComponentMessageToDOMAsync("runtime","cordova-fetch-local-file",{"filename":a,"as":b})}CordovaFetchLocalFileAsText(a){return this._CordovaFetchLocalFileAs(a,"text")}async CordovaFetchLocalFileAsBlob(b){const c=await this._CordovaFetchLocalFileAs(b,"buffer"),d=a(b);return new Blob([c],{"type":d})}async CordovaFetchLocalFileAsBlobURL(a){const b=await this.CordovaFetchLocalFileAsBlob(a);return URL.createObjectURL(b)}CordovaFetchLocalFileAsArrayBuffer(a){return this._CordovaFetchLocalFileAs(a,"buffer")}GetLocalUrlAsBlobUrl(a){const b=this._localUrlBlobs.get(a);if(!b)return a;let c=this._localBlobUrlCache.get(b);return c||(c=URL.createObjectURL(b),this._localBlobUrlCache.set(b,c)),c}GetMediaFileUrl(a){return this._runtime.IsPreview()||"playable-ad"===this._runtime.GetExportType()?this.GetLocalUrlAsBlobUrl(a.toLowerCase()):this._mediaSubfolder+a}GetProjectFileUrl(a){return this._runtime.IsPreview()?this.GetLocalUrlAsBlobUrl(a.toLowerCase()):a}LoadProjectFileUrl(a){return this._runtime.IsPreview()?Promise.resolve(this.GetLocalUrlAsBlobUrl(a.toLowerCase())):this._isCordova?this.CordovaFetchLocalFileAsBlobURL(a.toLowerCase()):Promise.resolve(a.toLowerCase())}LoadImage(a){if(a.loadPolicy&&!b.has(a.loadPolicy))throw new Error("invalid load policy");let c=this._assetsByUrl.get(a.url);return c?c:(c=C3.New(C3.ImageAsset,this,{url:a.url,size:a.size||0,loadPolicy:a.loadPolicy||this._defaultLoadPolicy}),this._allAssets.push(c),this._assetsByUrl.set(c.GetURL(),c),this._hasFinishedInitialLoad||(this._totalAssetSizeToLoad+=c.GetSize(),this._loadPromises.push(c.Load().then(()=>this._AddLoadedSize(c.GetSize())))),c)}async WaitForAllToLoad(){try{await Promise.all(this._loadPromises),this._lastLoadProgress=1}catch(a){console.error("Error loading: ",a),this._hasHadErrorLoading=!0,this._FireLoadingProgressEvent()}}SetInitialLoadFinished(){this._hasFinishedInitialLoad=!0}HasHadErrorLoading(){return this._hasHadErrorLoading}_AddLoadedSize(a){this._assetSizeLoaded+=a,this._loadingRateLimiter.Call()}_FireLoadingProgressEvent(){const a=C3.New(C3.Event,"loadingprogress");this._lastLoadProgress=C3.clamp(this._assetSizeLoaded/this._totalAssetSizeToLoad,0,1),a.progress=this._lastLoadProgress,this._runtime.Dispatcher().dispatchEvent(a)}GetLoadProgress(){return this._lastLoadProgress}_SetWebFonts(a){C3.shallowAssignArray(this._webFonts,a),this._webFonts.length&&this._loadPromises.push(this._LoadWebFonts())}_LoadWebFonts(){if("undefined"==typeof FontFace)return Promise.resolve();const a=[];for(const[b,c,d]of this._webFonts)this._totalAssetSizeToLoad+=d,a.push(this._LoadWebFont(b,c).then(()=>this._AddLoadedSize(d)));return Promise.all(a)}async _LoadWebFont(a,b){const c=await this.LoadProjectFileUrl(this._fontsSubfolder+b),d=new FontFace(a,`url('${c}')`);this._runtime.IsInWorker()?self.fonts.add(d):document.fonts.add(d);try{await d.load()}catch(b){console.warn(`[C3 runtime] Failed to load web font '${a}': `,b)}}IsAudioFormatSupported(a){return!!this._supportedAudioFormats[a]}_SetAudioFiles(a,b){this._preloadSounds=!!b;for(const[c,d,e]of a)this._audioFiles.set(c,{fileName:c,formats:d.map((a)=>({type:a[0],fileExtension:a[1],fullName:c+a[1],fileSize:a[2]})),isMusic:e})}GetPreferredAudioFile(a){const b=this._audioFiles.get(a.toLowerCase());if(!b)return null;let c=null;for(const d of b.formats)if(c||"audio/webm; codecs=opus"!==d.type||(c=d),this.IsAudioFormatSupported(d.type))return d;return c}GetProjectAudioFileUrl(a){const b=this.GetPreferredAudioFile(a);return b?{url:this.GetMediaFileUrl(b.fullName),type:b.type}:null}GetAudioToPreload(){if(this._preloadSounds){const a=[];for(const b of this._audioFiles.values()){if(b.isMusic)continue;const c=this.GetPreferredAudioFile(b.fileName);c&&a.push({originalUrl:b.fileName,url:this.GetMediaFileUrl(c.fullName),type:c.type,fileSize:c.fileSize})}return a}return[]}}} + +// c3/assets/asset.js +"use strict";C3.Asset=class extends C3.DefendedBase{constructor(a,b){super(),this._assetManager=a,this._runtime=a.GetRuntime(),this._url=b.url,this._size=b.size,this._loadPolicy=b.loadPolicy,this._blob=null,this._isLoaded=!1,this._loadPromise=null}Release(){this._loadPromise=null,this._assetManager=null,this._runtime=null,this._blob=null}GetURL(){return this._url}GetSize(){return this._size}Load(){return"local"===this._loadPolicy||this._blob?(this._isLoaded=!0,Promise.resolve()):this._loadPromise?this._loadPromise:(this._loadPromise=this._assetManager.FetchBlob(this._url,this._loadPolicy).then((a)=>{this._isLoaded=!0,this._loadPromise=null,this._blob=a}).catch((a)=>console.error("Error loading resource: ",a)),this._loadPromise)}IsLoaded(){return this._isLoaded}GetBlob(){return this._blob?Promise.resolve(this._blob):this._assetManager.FetchBlob(this._url,this._loadPolicy)}}; + +// c3/assets/imageAsset.js +"use strict";{const a=new C3.PromiseThrottle,b=new Set;C3.ImageAsset=class extends C3.Asset{constructor(a,c){super(a,c),this._texturePromise=null,this._webglTexture=null,this._refCount=0,this._imageWidth=-1,this._imageHeight=-1,b.add(this)}Release(){if(this.ReleaseTexture(),0!==this._refCount)throw new Error("released image asset which still has texture references");this._texturePromise=null,b.delete(this),super.Release()}static OnWebGLContextLost(){for(const a of b)a._texturePromise=null,a._webglTexture=null,a._refCount=0}LoadStaticTexture(b,c){return(this._refCount++,this._webglTexture)?Promise.resolve(this._webglTexture):this._texturePromise?this._texturePromise:(this._texturePromise=this.GetBlob().then((d)=>a.Add(()=>b.CreateStaticTextureAsync(d,c).then((a)=>(this._texturePromise=null,0===this._refCount)?(b.DeleteTexture(a),null):(this._webglTexture=a,this._imageWidth=a.GetWidth(),this._imageHeight=a.GetHeight(),this._webglTexture)))).catch((a)=>{throw console.error("Failed to load texture: ",a),a}),this._texturePromise)}ReleaseTexture(){if(0>=this._refCount)throw new Error("texture released too many times");if(this._refCount--,0===this._refCount&&this._webglTexture){const a=this._webglTexture.GetRenderer();a.DeleteTexture(this._webglTexture),this._webglTexture=null}}GetTexture(){return this._webglTexture}GetWidth(){return this._imageWidth}GetHeight(){return this._imageHeight}async LoadToDrawable(){const a=await this.GetBlob();return C3.Supports.ImageBitmapOptions?await createImageBitmap(a,{"premultiplyAlpha":"none"}):C3.Supports.ImageBitmap?await createImageBitmap(a):await C3.BlobToImage(a)}}} + +// c3/layouts/renderCell.js +"use strict";{function a(c,a){return c.GetWorldInfo()._GetLastCachedZIndex()-a.GetWorldInfo()._GetLastCachedZIndex()}C3.RenderCell=class extends C3.DefendedBase{constructor(a,b,c){super(),this._grid=a,this._x=b,this._y=c,this._instances=[],this._isSorted=!0,this._pendingRemoval=new Set,this._isAnyPendingRemoval=!1}Release(){C3.clearArray(this._instances),this._pendingRemoval.clear(),this._grid=null}Reset(){C3.clearArray(this._instances),this._isSorted=!0,this._pendingRemoval.clear(),this._isAnyPendingRemoval=!1}SetChanged(){this._isSorted=!1}IsEmpty(){return!this._instances.length||!(this._instances.length>this._pendingRemoval.size)&&(this._FlushPending(),!0)}Insert(a){return this._pendingRemoval.has(a)?(this._pendingRemoval.delete(a),void(0===this._pendingRemoval.size&&(this._isAnyPendingRemoval=!1))):void(this._instances.push(a),this._isSorted=1===this._instances.length)}Remove(a){this._pendingRemoval.add(a),this._isAnyPendingRemoval=!0,50<=this._pendingRemoval.size&&this._FlushPending()}_FlushPending(){return this._isAnyPendingRemoval?this._instances.length===this._pendingRemoval.size?void this.Reset():void(C3.arrayRemoveAllInSet(this._instances,this._pendingRemoval),this._pendingRemoval.clear(),this._isAnyPendingRemoval=!1):void 0}_EnsureSorted(){this._isSorted||(this._instances.sort(a),this._isSorted=!0)}Dump(a){this._FlushPending(),this._EnsureSorted(),this._instances.length&&a.push(this._instances)}}} + +// c3/layouts/renderGrid.js +"use strict";C3.RenderGrid=class extends C3.DefendedBase{constructor(a,b){super(),this._cellWidth=a,this._cellHeight=b,this._cells=C3.New(C3.PairMap)}Release(){this._cells.Release(),this._cells=null}GetCell(a,b,c){let d=this._cells.Get(a,b);return d?d:c?(d=C3.New(C3.RenderCell,this,a,b),this._cells.Set(a,b,d),d):null}XToCell(a){return Math.floor(a/this._cellWidth)}YToCell(a){return Math.floor(a/this._cellHeight)}Update(a,b,c){if(b)for(let d=b.getLeft(),e=b.getRight();d<=e;++d)for(let e=b.getTop(),f=b.getBottom();e<=f;++e){if(c&&c.containsPoint(d,e))continue;const b=this.GetCell(d,e,!1);b&&(b.Remove(a),b.IsEmpty()&&this._cells.Delete(d,e))}if(c)for(let d=c.getLeft(),e=c.getRight();d<=e;++d)for(let e=c.getTop(),f=c.getBottom();e<=f;++e)b&&b.containsPoint(d,e)||this.GetCell(d,e,!0).Insert(a)}QueryRange(a,b){let c=this.XToCell(a.getLeft());for(const d=this.YToCell(a.getTop()),e=this.XToCell(a.getRight()),f=this.YToCell(a.getBottom());c<=e;++c)for(let a=d;a<=f;++a){const d=this.GetCell(c,a,!1);d&&d.Dump(b)}}MarkRangeChanged(a){let b=a.getLeft();for(const c=a.getTop(),d=a.getRight(),e=a.getBottom();b<=d;++b)for(let a=c;a<=e;++a){const c=this.GetCell(b,a,!1);c&&c.SetChanged()}}}; + +// c3/layouts/layer.js +"use strict";{function a(c,a){return c.GetWorldInfo()._GetLastCachedZIndex()-a.GetWorldInfo()._GetLastCachedZIndex()}function b(c,a){return c.GetWorldInfo().GetZElevation()-a.GetWorldInfo().GetZElevation()}const c=new C3.Rect,d=new C3.Quad,e=[],f=new C3.Rect,g=new C3.Rect,h=vec3.fromValues(0,1,0);C3.Layer=class extends C3.DefendedBase{constructor(a,b,c){super(),this._layout=a,this._runtime=a.GetRuntime(),this._name=c[0],this._index=b,this._sid=c[2],this._isVisible=!!c[3],this._backgroundColor=C3.New(C3.Color),this._backgroundColor.setFromJSON(c[4].map((a)=>a/255)),this._isTransparent=!!c[5],this._parallaxX=c[6],this._parallaxY=c[7],this._color=C3.New(C3.Color,1,1,1,c[8]),this._premultipliedColor=C3.New(C3.Color),this._isForceOwnTexture=c[9],this._useRenderCells=c[10],this._scaleRate=c[11],this._blendMode=c[12],this._srcBlend=0,this._destBlend=0,this._curRenderTarget=null,this._scale=1,this._zElevation=c[16],this._angle=0,this._isAngleEnabled=!0,this._viewport=C3.New(C3.Rect),this._viewportZ0=C3.New(C3.Rect),this._startupInitialInstances=[],this._initialInstances=[],this._createdGlobalUids=[],this._instances=[],this._zIndicesUpToDate=!1,this._anyInstanceZElevated=!1,this._effectList=C3.New(C3.EffectList,this,c[15]),this._renderGrid=null,this._lastRenderList=[],this._isRenderListUpToDate=!1,this._lastRenderCells=C3.New(C3.Rect,0,0,-1,-1),this._curRenderCells=C3.New(C3.Rect,0,0,-1,-1),this._UpdatePremultipliedColor(),this._useRenderCells&&(this._renderGrid=C3.New(C3.RenderGrid,this._runtime.GetOriginalViewportWidth(),this._runtime.GetOriginalViewportHeight()));for(const d of c[14]){const a=this._runtime.GetObjectClassByIndex(d[1]);this._layout._AddInitialObjectClass(a),a.GetDefaultInstanceData()||(a.SetDefaultInstanceData(d),a._SetDefaultLayerIndex(this._index)),this._initialInstances.push(d)}C3.shallowAssignArray(this._startupInitialInstances,this._initialInstances)}static Create(a,b,c){return C3.New(C3.Layer,a,b,c)}Release(){this._layout=null,this._runtime=null}CreateInitialInstances(a){const b=this._layout.IsFirstVisit();let c=0;const d=this._initialInstances;for(let e=0,f=d.length;ec||(b&&this._useRenderCells&&a.GetWorldInfo()._RemoveFromRenderCells(),this._instances.splice(c,1),this.SetZIndicesChanged(),this._MaybeResetAnyInstanceZElevatedFlag())}_SetAnyInstanceZElevated(){this._anyInstanceZElevated=!0}_MaybeResetAnyInstanceZElevatedFlag(){0===this._instances.length&&(this._anyInstanceZElevated=!1)}_SortInstancesByLastCachedZIndex(b){if(b){const a=new Set;for(const b of this._instances){const c=b.GetWorldInfo()._GetLastCachedZIndex();0<=c&&a.add(c)}let b=-1;for(const c of this._instances){const d=c.GetWorldInfo();if(!(0<=d._GetLastCachedZIndex())){for(++b;a.has(b);)++b;d._SetZIndex(b)}}}this._instances.sort(a)}_Start(){this.SetBlendMode(this.GetBlendMode(),!0)}_End(){for(const a of this._instances)a.GetObjectClass().IsGlobal()||this._runtime.DestroyInstance(a);this._runtime.FlushPendingInstances(),C3.clearArray(this._instances),this._anyInstanceZElevated=!1,this.SetZIndicesChanged()}RecreateInitialObjects(a,b){const c=this._runtime.GetEventSheetManager(),d=this._runtime.GetAllObjectClasses(),e=a.IsFamily();for(const f of this._initialInstances){const g=f[0],h=g[0],i=g[1];if(!b.containsPoint(h,i))continue;const j=d[f[1]];if(j!==a)if(!e)continue;else if(!a.FamilyHasMember(j))continue;const k=this._runtime.CreateInstanceFromData(f,this,!1);if(c.BlockFlushingInstances(!0),k._TriggerOnCreated(),k.IsInContainer())for(const a of k.siblings())a._TriggerOnCreated();c.BlockFlushingInstances(!1)}}GetInstanceCount(){return this._instances.length}GetLayout(){return this._layout}GetName(){return this._name}GetIndex(){return this._index}GetSID(){return this._sid}GetRuntime(){return this._runtime}GetEffectList(){return this._effectList}UsesRenderCells(){return this._useRenderCells}GetRenderGrid(){return this._renderGrid}SetRenderListStale(){this._isRenderListUpToDate=!1}IsVisible(){return this._isVisible}SetVisible(a){a=!!a;this._isVisible===a||(this._isVisible=a,this._runtime.UpdateRender())}GetViewport(){return this._viewport}GetViewportForZ(a,b){const c=this._viewportZ0;if(0===a)b.copy(c);else{const d=this.Get2DScaleFactorToZ(a),e=c.midX(),f=c.midY(),g=.5*c.width()/d,h=.5*c.height()/d;b.set(e-g,f-h,e+g,f+h)}}GetOpacity(){return this._color.getA()}SetOpacity(a){a=C3.clamp(a,0,1);this._color.getA()===a||(this._color.setA(a),this._UpdatePremultipliedColor(),this._runtime.UpdateRender())}_UpdatePremultipliedColor(){this._premultipliedColor.copy(this._color),this._premultipliedColor.premultiply()}GetPremultipliedColor(){return this._premultipliedColor}HasDefaultColor(){return this._color.equalsRgba(1,1,1,1)}GetScaleRate(){return this._scaleRate}SetScaleRate(a){this._scaleRate===a||(this._scaleRate=a,this._runtime.UpdateRender())}GetParallaxX(){return this._parallaxX}GetParallaxY(){return this._parallaxY}SetParallax(a,b){if((this._parallaxX!==a||this._parallaxY!==b)&&(this._parallaxX=a,this._parallaxY=b,this._runtime.UpdateRender(),1!==this._parallaxX||1!==this._parallaxY))for(const a of this._instances)a.GetObjectClass()._SetAnyInstanceParallaxed(!0)}SetParallaxX(a){this.SetParallax(a,this.GetParallaxY())}SetParallaxY(a){this.SetParallax(this.GetParallaxX(),a)}SetZElevation(a){this._zElevation=+a}GetZElevation(){return this._zElevation}SetAngle(b){this._angle=C3.clampAngle(b)}GetAngle(){return this._isAngleEnabled?C3.clampAngle(this._layout.GetAngle()+this._angle):0}GetOwnAngle(){return this._angle}HasInstances(){return 0Number.EPSILON){this._UpdateZIndices();const b=this._useRenderCells&&0===this.GetZElevation()&&!this._anyInstanceZElevated;b?this._DrawInstances_RenderCells(a):this._DrawInstances(a,this._instances)}a.SetBaseZ(0),a.SetCurrentZ(0),a.SetCameraXYZ(0,0,100),a.SetLookXYZ(0,0,0),e&&this._DrawLayerOwnTextureToRenderTarget(a,f,b,c),g&&a.EndQuery(g),this._curRenderTarget=null}_DrawInstances(a,b){const c=this._viewport,d=this._curRenderTarget;let e=null;for(let f=0,g=b.length;fthis._width-b&&(a=this._width-b),athis._height-b&&(a=this._height-b),aa||(this._width=a)}GetHeight(){return this._height}SetHeight(a){!isFinite(a)||1>a||(this._height=a)}GetEventSheet(){return this._eventSheet}GetLayers(){return this._layers}GetLayerCount(){return this._layers.length}GetLayer(a){return"number"==typeof a?this.GetLayerByIndex(a):this.GetLayerByName(a.toString())}GetLayerByIndex(a){return a=C3.clamp(Math.floor(a),0,this._layers.length-1),this._layers[a]}GetLayerByName(a){return this._layersByName.get(a.toLowerCase())||null}GetLayerBySID(a){return this._layersBySid.get(a)||null}HasOpaqueBottomLayer(){for(const a of this._layers)if(a.ShouldDraw())return a._IsOpaque();return!1}IsFirstVisit(){return this._isFirstVisit}_GetInitialObjectClasses(){return[...this._initialObjectClasses]}_AddInitialObjectClass(a){if(a.IsInContainer())for(const b of a.GetContainer().GetObjectTypes())this._initialObjectClasses.add(b);else this._initialObjectClasses.add(a)}_GetTextureLoadedObjectTypes(){return[...this._textureLoadedTypes]}_Load(a,b){if(a===this||!b)return Promise.resolve();a&&(C3.CopySet(this._textureLoadedTypes,a._textureLoadedTypes),a._textureLoadedTypes.clear());const c=[];for(const d of this._initialObjectClasses)this._textureLoadedTypes.has(d)||(c.push(d.LoadTextures(b)),this._textureLoadedTypes.add(d));return Promise.all(c)}async MaybeLoadTexturesFor(a){if(a.IsFamily())throw new Error("cannot load textures for family");const b=this._runtime.GetWebGLRenderer();!b||b.IsContextLost()||this._textureLoadedTypes.has(a)||(this._textureLoadedTypes.add(a),await a.LoadTextures(b),a.OnDynamicTextureLoadComplete(),this._runtime.UpdateRender())}MaybeUnloadTexturesFor(a){if(a.IsFamily()||0d)b._AddSibling(f[d]);else{let d;d=c?this._runtime.CreateInstanceFromData(e,c.GetLayer(),!0,c.GetX(),c.GetY(),!0):this._runtime.CreateInstanceFromData(e,null,!0,0,0,!0),this._runtime.FlushPendingInstances(),e._UpdateIIDs(),b._AddSibling(d),a.push(d)}}}}_CreateInitialNonWorldInstances(){for(const a of this._initialNonWorld){const b=this._runtime.GetObjectClassByIndex(a[1]);b.IsInContainer()||this._runtime.CreateInstanceFromData(a,null,!0)}}_CreateGlobalNonWorlds(){const a=[],b=this._initialNonWorld;let c=0;for(let d=0,e=b.length;d=this._isEndingLayout)throw new Error("already unset");this._isEndingLayout--}}IsEndingLayout(){return 0=b||b>=this._totalTime)&&(this._complete=!0)}IsComplete(){return this._complete}IsReleased(){return this._released}SetMarkedForRemoval(a){this._markedForRemoval=a}IsMarkedForRemoval(){return this._markedForRemoval}InitialStateSet(){return this._initialStateSet}GetPropertyTrack(a){for(const b of this._tracks)for(const c of b.GetPropertyTracks())if(c.GetPropertyName()===a)return c}Trigger(a){const b=this._timelineManager.GetPluginInstance();this.GetRuntime().Trigger(a,b)}SetStartedTriggers(a){this._startedTriggers=a}SetFinishedTriggers(a){this._finishedTriggers=a}GetTime(){return this._playheadTime.Get()}SetTime(a){if(this._playheadTime.Set(a),0>this._playheadTime.Get()&&this._playheadTime.Set(0),this._playheadTime.Get()>=this._totalTime&&this._playheadTime.Set(this._totalTime),!this.IsPlaying()&&!this.IsScheduled()&&this._initialStateSet)this.SetComplete(!1);else if(!this.IsPlaying()&&!this.IsScheduled()&&!this._initialStateSet){this._initialStateSet=!0;for(const a of this._tracks)a.SetInitialState()}else this.IsPlaying()?this.Stop():this.IsScheduled()&&(this._timelineManager.DeScheduleTimeline(this),this.SetComplete(!1));let b=!1;for(const c of this._tracks){c.SetResumeState();const a=c.Interpolate(this._playheadTime.Get());!b&&a&&(b=!0)}b&&this.GetRuntime().UpdateRender()}SetResultMode(a){this._resultMode=a;for(const b of this._tracks)b.SetResultMode(a)}SetEase(a){this._ease=a;for(const b of this._tracks)b.SetEase(resultMode)}SetPlaybackRate(a){return this._playbackRate=a}IsForwardPlayBack(){return 0=this._totalTime)return;}else if(0>=this._playheadTime.Get())return;this.Play(!0)}}Play(a=!1){this.IsReleased()||this.IsScheduled()||this.IsPlaying()||!this.IsComplete()&&!a||this._timelineManager.ScheduleTimeline(this)}Stop(a=!1){this.IsReleased()||(this.SetComplete(a),this._timelineManager.CompleteTimeline(this))}Reset(){if(this.IsReleased())return;if(!this.IsPlaying()&&this.IsScheduled())return this._timelineManager.DeScheduleTimeline(this);this.Stop(!0),this._playheadTime.Set(0);let a=!1;for(const b of this._tracks){const c=b.Interpolate(this._playheadTime.Get());!a&&c&&(a=!0)}a&&this.GetRuntime().UpdateRender()}SetInitialState(){if(this.SetPlaying(!0),this.SetScheduled(!1),this.OnStarted(),this.IsComplete()){this._completedTick=-1,this._initialStateSet=!0,this.IsForwardPlayBack()?this._playheadTime.Set(0):this._playheadTime.Set(this._totalTime);for(const a of this._tracks)a.SetInitialState()}else for(const a of this._tracks)a.SetResumeState()}Tick(a,b){this._playheadTime.Add(a*b*this._playbackRate);let c;if(c=this.IsForwardPlayBack()?this._playheadTime.Get()>=this._totalTime:0>=this._playheadTime.Get(),c){this.IsForwardPlayBack()?this._playheadTime.Set(this._totalTime):this._playheadTime.Set(0);for(const a of this._tracks)a.SetEndState();return this.Stop(!0),this.OnCompleted(),!0}else{let a=!1;for(const b of this._tracks){const c=b.Interpolate(this._playheadTime.Get());!a&&c&&(a=!0)}return a}}}} + +// c3/timelines/track.js +"use strict";{const a=0;C3.Track=class extends C3.DefendedBase{constructor(b,c){super(),this._timeline=b,this._instanceUid=c[a][2],this._interpolationMode=c[1],this._resultMode=c[2],this._enabled=!!c[3],this._keyframes=[];for(const a of c[4]){const b=C3.Keyframe.Create(this,a);this._IsKeyFrameEnabled(b)&&this._keyframes.push(b)}this._propertyTracks=[];for(const a of c[5]){const b=C3.PropertyTrack.Create(this,a);b.GetEnable()&&this._propertyTracks.push(b)}this._instance=null,this._worldInfo=null,this._lastPositionSet=!1}static Create(a,b){return C3.New(C3.Track,a,b)}static CreateEmpty(b){const c=[];return c[a]=[],c[a][2]=-1,c[1]="default",c[2]="default",c[3]=1,c[4]=[],c[5]=[],this.Create(b,c)}Release(){this._timeline=null,this._instance=null,this._worldInfo=null;for(const a of this._keyframes)a.Release();C3.clearArray(this._keyframes),this._keyframes=null;for(const a of this._propertyTracks)a.Release();C3.clearArray(this._propertyTracks),this._propertyTracks=null}CleanCaches(){for(const a of this._propertyTracks)a.CleanCaches();this._instance=null,this._worldInfo=null}GetTimeline(){return this._timeline}GetRuntime(){return this._timeline.GetRuntime()}MaybeGetInstance(){this._instance||this.GetInstance()}IsInstanceValid(){return!!this._instance&&!this._instance.IsDestroyed()}SetInstanceUID(a){this._instanceUid=a}GetInstance(){return this._instance&&this.IsInstanceValid()?this._instance:(this._instance=this.GetRuntime().GetInstanceByUID(this._instanceUid),this._instance)}GetWorldInfo(){return this._worldInfo&&this.IsInstanceValid()?this._worldInfo:(this._worldInfo=this.GetInstance().GetWorldInfo(),this._worldInfo)}SetInterpolationMode(a){this._interpolationMode=a}GetInterpolationMode(){return this._interpolationMode}SetResultMode(a){this._resultMode=a;for(const b of this._propertyTracks)b.SetResultMode(a)}GetResultMode(){return this._resultMode}SetEase(){for(const a of this._keyframes)a.SetEase(resultMode);for(const a of this._propertyTracks)a.SetEase(resultMode)}SetEnable(a){this._enabled=!!a}GetEnable(){return this._enabled}AddKeyframe(){const a=C3.Keyframe.CreateEmpty(this);return this._keyframes.push(a),a}GetKeyframes(){return this._keyframes}SortKeyframes(){this._keyframes.sort((c,a)=>c.GetTime()-a.GetTime())}AddPropertyTrack(a,b){const c=C3.PropertyTrack.CreateEmpty(this,a,b);return this._propertyTracks.push(c),c}GetPropertyTracks(){return this._propertyTracks}SetInitialState(){if(this.MaybeGetInstance(),!!this.IsInstanceValid()){this._lastPositionSet=!1;for(const a of this._propertyTracks)a.SetInitialState();this.GetTimeline().IsForwardPlayBack()?this.Interpolate(0):this.Interpolate(this.GetTimeline().GetTotalTime())}}SetResumeState(){if(this.MaybeGetInstance(),!!this.IsInstanceValid())for(const a of this._propertyTracks)a.SetResumeState()}SetEndState(){if((this.MaybeGetInstance(),!!this.IsInstanceValid())&&!this._lastPositionSet){this._lastPositionSet=!0;const a=this._timeline.GetTime(),b=this._timeline.GetTotalTime();a>=b?this.Interpolate(b):0>=a&&this.Interpolate(0)}}DeleteKeyframes(a){for(const b of this._keyframes){if(!a(b))continue;const c=this._keyframes.indexOf(b);-1!==c&&(b.Release(),this._keyframes.splice(c,1))}this.SortKeyframes()}DeletePropertyKeyframes(a){for(const b of this._propertyTracks)b.DeletePropertyKeyframes(a)}Interpolate(a){if(this.MaybeGetInstance(),!this.IsInstanceValid())return!1;let b=!1,c=!1;for(const d of this._propertyTracks){const e=d.Interpolate(a);b||0==(e&C3.Timeline.WORLD_INSTANCE_BOX_CHANGE)||(b=!0),c||0==(e&C3.Timeline.LAYOUT_RENDER_CHANGE)||(c=!0)}return b&&this.GetWorldInfo().SetBboxChanged(),c}SaveState(){for(const a of this._propertyTracks)a.SaveState()}CompareInitialStateWithCurrent(){if(this.MaybeGetInstance(),!!this.IsInstanceValid())for(const a of this._propertyTracks)a.CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){if(this.MaybeGetInstance(),!this.IsInstanceValid())return;let a=!1;for(const b of this._propertyTracks){const c=b.CompareSaveStateWithCurrent();!a&&c&&(a=!0)}if(a){const a=this.AddKeyframe();a.SetTime(this.GetTimeline().GetTime()),a.SetEase("noease"),a.SetEnable(!0)}}_IsKeyFrameEnabled(a){return!!this.GetEnable()&&!!a.GetEnable()}}} + +// c3/timelines/keyframe.js +"use strict";{const a=0;C3.Keyframe=class extends C3.DefendedBase{constructor(b,c){super(),this._track=b,this._time=c[a],this._ease=c[1],this._enable=!!c[2]}static Create(a,b){return C3.New(C3.Keyframe,a,b)}static CreateEmpty(b){const c=[];return c[a]=0,c[1]="linear",c[2]=1,this.Create(b,c)}Release(){this._track=null}GetRuntime(){return this._track.GetRuntime()}SetTime(a){this._time=a,this._track.SortKeyframes()}GetTime(){return this._time}SetEase(a){this._ease=a}GetEase(){return this._ease}SetEnable(a){this._enable=!!a}GetEnable(){return this._enable}}} + +// c3/timelines/propertyTrack.js +"use strict";{const a=0;C3.PropertyTrack=class extends C3.DefendedBase{constructor(b,c){super(),this._track=b,this._sourceAdapter=C3.PropertyTrack.CreateSourceAdapter(this,c[a]),this._property=c[1],this._type=c[2],this._min=c[3],this._max=c[4],this._interpolationMode=c[5],this._resultMode=c[6],this._enabled=!!c[7],this._propertyKeyframes=[];for(const a of c[8]){const b=C3.PropertyKeyframe.Create(this,a);this._IsPropertyKeyFrameEnabled(b)&&this._propertyKeyframes.push(b)}this._BuildPropertyKeyframeTimeMap()}static Create(a,b){return C3.New(C3.PropertyTrack,a,b)}static CreateEmpty(b,c,d){const e=[];if(e[a]=[],e[a][0]=c,d)for(let b=0;bc.GetTime()-a.GetTime())}_IsPropertyKeyFrameEnabled(a){if(!this.GetEnable())return!1;if(!a.GetEnable())return!1;const b=a.GetMasterKeyframe();if(!b)return!1;const c=this.GetTrack();return!!c._IsKeyFrameEnabled(b)}_GetKeyFrameAtTime(a){for(const b of this._propertyKeyframes)if(b.GetTime()===a)return b}_GetKeyFrameAtTimeFromCache(a){return this._propertyKeyframeTimeMap.get(a)}_GetFirstKeyframe(){return this._propertyKeyframes[0]}_GetLastKeyframe(){return this._propertyKeyframes[this._propertyKeyframes.length-1]}_GetFirstKeyFrameHigherThan(a){for(const b of this._propertyKeyframes)if(b.GetTime()>a)return b}_GetFirstKeyFrameHigherOrEqualThan(a){for(const b of this._propertyKeyframes)if(b.GetTime()>=a)return b}_GetFirstKeyFrameLowerOrEqualThan(a){for(let b=this._propertyKeyframes.length-1;0<=b;b--){const c=this._propertyKeyframes[b];if(c.GetTime()<=a)return c}}SetInitialState(){this._sourceAdapter.SetInitialState()}SetResumeState(){this._sourceAdapter.SetResumeState()}GetStartPropertyKeyframeForTime(a){let b=this._GetKeyFrameAtTimeFromCache(a);return b||(b=this._GetFirstKeyFrameLowerOrEqualThan(a)),b}GetEndPropertyKeyframeForTime(a){const b=this._GetKeyFrameAtTimeFromCache(a);return b?this._GetFirstKeyFrameHigherThan(a):this._GetFirstKeyFrameHigherOrEqualThan(a)}Interpolate(a){let b,c=this._GetKeyFrameAtTimeFromCache(a);return c?b=this._GetFirstKeyFrameHigherThan(a):(c=this._GetFirstKeyFrameLowerOrEqualThan(a),b=this._GetFirstKeyFrameHigherOrEqualThan(a)),this._sourceAdapter.Interpolate(a,c,b)}DeletePropertyKeyframes(a){for(const b of this._propertyKeyframes){if(!a(b))continue;const c=this._propertyKeyframes.indexOf(b);-1!==c&&(b.Release(),this._propertyKeyframes.splice(c,1))}this.SortPropertyKeyFrames()}SaveState(){this._sourceAdapter.SaveState()}CompareInitialStateWithCurrent(){const a=this._sourceAdapter.CompareInitialStateWithCurrent();if(a){const a=this._GetFirstKeyframe(),b=this._sourceAdapter.GetCurrentState();a.SetAbsoluteValue(b)}}CompareSaveStateWithCurrent(){const a=this._sourceAdapter.CompareSaveStateWithCurrent();return a&&this.AddPropertyKeyframeAtCurrentTime(),this._sourceAdapter.ClearSaveState(),a}AddPropertyKeyframeAtCurrentTime(){const a=this.GetTimeline().GetTime(),b=this.GetStartPropertyKeyframeForTime(a),c=this.AddPropertyKeyframe(),d=this.GetSourceAdapter();c.SetValue(d.GetValueAtTime()),c.SetAbsoluteValue(d.GetCurrentState()),c.SetType(b.GetType()),c.SetTime(a),c.SetEase(b.GetEase()),c.SetEnable(!0)}}} + +// c3/timelines/propertyKeyframe.js +"use strict";{const a=0;C3.PropertyKeyframe=class extends C3.DefendedBase{constructor(b,c){super(),this._propertyTrack=b,this._value=c[a][0],this._aValue=c[a][1],this._type=c[a][2],this._time=c[1],this._ease=c[2],this._enable=!!c[3],this._masterKeyframe=null;for(let a of this._propertyTrack.GetTrack().GetKeyframes())if(a.GetTime()===this._time){this._masterKeyframe=a;break}}static Create(a,b){return C3.New(C3.PropertyKeyframe,a,b)}static CreateEmpty(b){const c=[];return c[a]=[],c[a][0]=0,c[a][1]=0,c[a][2]="",c[1]=0,c[2]="linear",c[3]=1,this.Create(b,c)}Release(){this._propertyTrack=null,this._masterKeyframe=null}GetRuntime(){return this._propertyTrack.GetRuntime()}SetTime(a){this._time=a,this._propertyTrack._BuildPropertyKeyframeTimeMap()}GetTime(){return this._time}SetValue(a){"color"===this._type&&C3.IsFiniteNumber(a)?(this._value[0]=C3.GetRValue(a),this._value[1]=C3.GetGValue(a),this._value[2]=C3.GetBValue(a)):this._value=a}GetValue(){return this._value}SetAbsoluteValue(a){"color"===this._type&&C3.IsFiniteNumber(a)?(this._aValue[0]=C3.GetRValue(a),this._aValue[1]=C3.GetGValue(a),this._aValue[2]=C3.GetBValue(a)):this._aValue=a}GetAbsoluteValue(){return this._aValue}GetValueWithResultMode(){const a=this._propertyTrack.GetResultMode();if("relative"===a)return this.GetValue();return"absolute"===a?this.GetAbsoluteValue():void 0}SetEase(a){this._ease=a}GetEase(){return this._ease}SetEnable(a){this._enable=!!a}GetEnable(){return this._enable}SetType(a){this._type=a}GetType(){return this._type}GetMasterKeyframe(){return this._masterKeyframe}}} + +// c3/timelines/timelineManager.js +"use strict";C3.TimelineManager=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a,this._pluginInstance=null,this._timelines=[],this._timelinesByName=new Map,this._scheduledTimelines=[],this._playingTimelines=[],this._hasRuntimeListeners=!1,this._changingLayout=!1,this._isTickingTimelines=!1,this._tickFunc=()=>this._OnTick(),this._tick2Func=()=>this._OnTick2(),this._beforeLayoutChange=()=>this._OnBeforeChangeLayout(),this._layoutChange=()=>this._OnAfterChangeLayout()}Release(){const a=this._runtime.Dispatcher();a.removeEventListener("tick",this._tickFunc),this._tickFunc=null,a.removeEventListener("tick2",this._tick2Func),this._tick2Func=null,a.removeEventListener("beforelayoutchange",this._beforeLayoutChange),this._beforeLayoutChange=null,a.removeEventListener("layoutchange",this._layoutChange),this._layoutChange=null,this._runtime=null;for(const a of this._timelines)a.Stop(),a.Release();C3.clearArray(this._timelines),this._timelines=null,C3.clearArray(this._scheduledTimelines),this._scheduledTimelines=null,C3.clearArray(this._playingTimelines),this._playingTimelines=null,this._timelinesByName.clear(),this._timelinesByName=null}AddRuntimeListeners(){const a=this._runtime.Dispatcher();a.addEventListener("beforelayoutchange",this._beforeLayoutChange),a.addEventListener("layoutchange",this._layoutChange)}Create(a){this.Add(C3.Timeline.Create(a,this))}Add(a){this._timelines.push(a),this._timelinesByName.set(a.GetName(),a)}GetRuntime(){return this._runtime}SetPluginInstance(a){this._pluginInstance=a}GetPluginInstance(){return this._pluginInstance}GetTimelines(){return this._timelines}GetTimelineByIndex(a){const b=C3.clamp(Math.floor(a),0,this._timelines.length-1);return this._timelines[b]?this._timelines[b]:void 0}GetTimelineByName(a){return this._timelinesByName.has(a)?this._timelinesByName.get(a):void 0}ScheduleTimeline(a){a.SetPlaying(!1),a.SetScheduled(!0),a.SetMarkedForRemoval(!1),this._scheduledTimelines.push(a),this._MaybeAddRuntimeListeners()}DeScheduleTimeline(a){const b=this._scheduledTimelines.indexOf(a);a.SetPlaying(!1),a.SetScheduled(!1);-1===b||(this._scheduledTimelines.splice(b,1),this._MaybeRemoveRuntimeListeners())}CompleteTimeline(a){a.SetPlaying(!1),a.SetScheduled(!1),a.SetMarkedForRemoval(!0)}_OnTick(){if(this._changingLayout)return;let a=!1;for(this._isTickingTimelines=!0;this._scheduledTimelines.length;){const a=this._scheduledTimelines.pop();a.SetInitialState(),this._playingTimelines.push(a)}const b=this._runtime.GetDt(),c=this._runtime.GetTimeScale();for(const d of this._playingTimelines){if(d.IsMarkedForRemoval())continue;const e=d.Tick(b,c);!a&&e&&(a=!0)}this._isTickingTimelines=!1,a&&this.GetRuntime().UpdateRender()}_OnTick2(){for(const a of this._playingTimelines){if(!a.IsMarkedForRemoval())continue;const b=this._playingTimelines.indexOf(a);-1===b||this._playingTimelines.splice(b,1)}this._MaybeRemoveRuntimeListeners()}_MaybeAddRuntimeListeners(){if(!this._hasRuntimeListeners){const a=this._runtime.Dispatcher();a.addEventListener("tick",this._tickFunc),a.addEventListener("tick2",this._tick2Func),this._hasRuntimeListeners=!0}}_MaybeRemoveRuntimeListeners(){if(!this._playingTimelines.length&&!this._scheduledTimelines.length&&!this._isTickingTimelines){const a=this._runtime.Dispatcher();a.removeEventListener("tick",this._tickFunc),a.removeEventListener("tick2",this._tick2Func),this._hasRuntimeListeners=!1}}_OnBeforeChangeLayout(){for(this._changingLayout=!0;this._scheduledTimelines.length;)this.DeScheduleTimeline(this._scheduledTimelines.pop());for(;this._playingTimelines.length;)this.CompleteTimeline(this._playingTimelines.pop());this._MaybeRemoveRuntimeListeners();for(const a of this._timelines)a.CleanCaches()}_OnAfterChangeLayout(){this._changingLayout=!1}}; + +// c3/timelines/propertySourceAdapters/propertySourceAdapter.js +"use strict";C3.PropertyTrack.PropertySourceAdapter=class{constructor(){}static GetValueAtTime(a){const b=a.GetTrack(),c=b.GetTimeline().GetTime(),d=a.GetStartPropertyKeyframeForTime(c),e=a.GetEndPropertyKeyframeForTime(c),f=C3.PropertyTrack.PropertySourceAdapter,g=f.GetInterpolateFunc(a);return g(c,d,e,a)}static GetValue(a,b,c){let d=a.GetResultMode();return"combo"===a.GetPropertyType()&&(d="absolute"),"relative"===d?b+c:"absolute"===d?c:void 0}static GetInterpolateFunc(a){const b=a.GetPropertyKeyframeType();return"numeric"===b?C3.PropertyTrack.NumericTypeAdapter.Interpolate:"angle"===b?C3.PropertyTrack.AngleTypeAdapter.Interpolate:"boolean"===b?C3.PropertyTrack.BooleanTypeAdapter.Interpolate:"color"===b?C3.PropertyTrack.ColorTypeAdapter.Interpolate:"text"===b?C3.PropertyTrack.TextTypeAdapter.Interpolate:void 0}static GetWillChangeFunc(a){const b=a.GetPropertyKeyframeType();return"numeric"===b?C3.PropertyTrack.NumericTypeAdapter.WillChange:"angle"===b?C3.PropertyTrack.AngleTypeAdapter.WillChange:"boolean"===b?C3.PropertyTrack.BooleanTypeAdapter.WillChange:"color"===b?C3.PropertyTrack.ColorTypeAdapter.WillChange:"text"===b?C3.PropertyTrack.TextTypeAdapter.WillChange:void 0}}; + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=a.GetTrack(),this._sid=b[1],this._index=b[2],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._GetSdkBehaviourInstance(),c=this._index,d=this._propertyTrack;let e=this._propertyTrack.GetPropertyKeyframeType();return"numeric"===e&&"combo"===d.GetPropertyType()&&(e="combo"),"combo"===e||"boolean"===e||"text"===e?this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c):"numeric"===e?this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c):"color"===e?this._propertyAdapter=C3.New(a.ColorPropertyAdapter,d,b,c):void 0,this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}_GetSdkBehaviourInstance(){const a=this._track.GetInstance(),b=a.GetBehaviorIndexBySID(this._sid),c=a.GetBehaviorInstances()[b];return c.GetSdkInstance()}}C3.PropertyTrack.BehaviorSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/effectSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=a.GetTrack(),this._name=b[1],this._index=b[2],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._GetEffectParameters(),c=this._index,d=this._propertyTrack;let e=this._propertyTrack.GetPropertyKeyframeType();return"numeric"===e&&"combo"===d.GetPropertyType()&&(e="combo"),"combo"===e||"boolean"===e||"text"===e?this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c):"numeric"===e?this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c):"color"===e?this._propertyAdapter=C3.New(a.ColorPropertyAdapter,d,b,c):void 0,this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){if(this._GetEffectParameters()){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}_GetEffectParameters(){if(this._effectParams)return this._effectParams;const a=this._track.GetWorldInfo(),b=a.GetInstanceEffectList(),c=b.GetEffectList(),d=c.GetEffectTypeByName(this._name),e=d.GetIndex();return this._effectParams=b.IsEffectIndexActive(e)?b.GetEffectParametersForIndex(e):null,this._effectParams}}C3.PropertyTrack.EffectSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/instanceVariableSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=a.GetTrack(),this._index=b[1],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._track.GetInstance(),c=this._index,d=this._propertyTrack;switch(d.GetPropertyType()){case"boolean":this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c);break;case"string":this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c);break;case"number":this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c);}return this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}}C3.PropertyTrack.InstanceVariableSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=this._propertyTrack.GetTrack(),this._index=b[1],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._GetSdkPluginInstance(),c=this._index,d=this._propertyTrack;let e=d.GetPropertyKeyframeType();return"numeric"===e&&"combo"===d.GetPropertyType()&&(e="combo"),"combo"===e||"boolean"===e||"text"===e?this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c):"numeric"===e?this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c):"color"===e?this._propertyAdapter=C3.New(a.ColorPropertyAdapter,d,b,c):void 0,this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}_GetSdkPluginInstance(){return this._track.GetInstance().GetSdkInstance()}}C3.PropertyTrack.PluginSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/worldInstanceSourceAdapter.js +"use strict";{class a{constructor(a){this._propertyTrack=a,this._track=a.GetTrack(),this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._propertyTrack.GetPropertyName();return this._propertyAdapter="offsetColor"===b?C3.New(a.ColorPropertyAdapter,this._propertyTrack):C3.New(a.NumericPropertyAdapter,this._propertyTrack),this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter,e=d.GetInterpolateFunc(this._propertyTrack),f=e(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(f)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}}C3.PropertyTrack.WorldInstanceSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/propertyAdapter.js +"use strict";C3.PropertyTrack.PropertyAdapter=class{constructor(a){this._propertyTrack=a,this._worldInfo=a.GetTrack().GetWorldInfo(),this._property=a.GetPropertyName(),this._firstAbsoluteUpdate=!1,this._saveState=null}Release(){this._worldInfo=null,this._propertyTrack=null,this._saveState=null}CleanCaches(){this._worldInfo=null,this._saveState=null}GetWorldInfo(){return this._worldInfo?this._worldInfo:(this._worldInfo=this._propertyTrack.GetTrack().GetWorldInfo(),this._worldInfo)}SetFirstAbsoluteUpdate(a){this._firstAbsoluteUpdate=!!a}GetFirstAbsoluteUpdate(){return this._firstAbsoluteUpdate}SetInitialState(){}SetResumeState(){}SetSaveState(){}ClearSaveState(){this._saveState=null}GetCurrentState(){}CompareInitialStateWithCurrent(){}CompareSaveStateWithCurrent(){}ChangeProperty(){}_FirstKeyframeGetter(){const a=this._PickTimelinePlaybackMode(()=>this._propertyTrack._GetFirstKeyframe(),()=>this._propertyTrack._GetLastKeyframe());return a.GetAbsoluteValue()}_CurrentKeyframeGetter(){const a=this._propertyTrack.GetTimeline(),b=a.GetTime(),c=this._PickTimelinePlaybackMode(()=>this._propertyTrack._GetFirstKeyFrameLowerOrEqualThan(b),()=>this._propertyTrack._GetFirstKeyFrameHigherOrEqualThan(b));return c.GetAbsoluteValue()}_PickTimelinePlaybackMode(a,b){const c=this._propertyTrack.GetTimeline();return c.IsForwardPlayBack()?a():b()}_PickResultMode(a,b){const c=this._propertyTrack.GetResultMode();return"relative"===c?a():b()}_PickFirstAbsoluteUpdate(a,b){return this.GetFirstAbsoluteUpdate()?(this.SetFirstAbsoluteUpdate(!1),a()):b()}_GetAbsoluteInitialValue(){}}; + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkBehaviourInstance=b,this._propertyIndex=c,this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){this._sdkBehaviourInstance=null,super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkBehaviourInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=this._sdkBehaviourInstance,e=this._propertyIndex,f=c[a],h=c[1],g=c[2],b=this._lastValueR,i=this._lastValueG,j=this._lastValueB;this._PickFirstAbsoluteUpdate(()=>d.SetPropertyColorOffsetValueByIndex(e,-b,-i,-j),()=>d.SetPropertyColorOffsetValueByIndex(e,-b+f,-i+h,-j+g)),this._lastValueR=f,this._lastValueG=h,this._lastValueB=g}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_Getter(){const a=this._sdkBehaviourInstance,b=this._propertyIndex,c=a.GetPropertyValueByIndex(b);return this._GetColorFromArray(c)}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.BehaviorSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkBehaviourInstance=b,this._propertyIndex=c}Release(){this._sdkBehaviourInstance=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkBehaviourInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);b(this._propertyIndex,this._sdkBehaviourInstance,a,"behavior")&&this._sdkBehaviourInstance.SetPropertyValueByIndex(this._propertyIndex,a)}}C3.PropertyTrack.BehaviorSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkBehaviourInstance=b,this._propertyIndex=c,this._lastValue=0}Release(){this._sdkBehaviourInstance=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkBehaviourInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this._sdkBehaviourInstance,d=this._propertyIndex;this._PickResultMode(()=>c.SetPropertyOffsetValueByIndex(d,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>c.SetPropertyOffsetValueByIndex(d,b),()=>c.SetPropertyOffsetValueByIndex(d,a-b))}),this._lastValue=a}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.BehaviorSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/effectSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._effectParameters=b,this._parameterIndex=c,this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){this._effectParameters=null,super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this._Getter()}GetCurrentState(){return this._effectParameters[this._parameterIndex].toArray().slice(0,3)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=c[a],e=c[1],f=c[2],b=this._lastValueR,g=this._lastValueG,h=this._lastValueB;return this._PickFirstAbsoluteUpdate(()=>this._Setter(-b,-g,-h),()=>this._Setter(-b+d,-g+e,-h+f)),this._lastValueR=d,this._lastValueG=e,this._lastValueB=f,C3.Timeline.LAYOUT_RENDER_CHANGE}_Setter(a,c,d){this._effectParameters[this._parameterIndex].addRgb(a,c,d)}_Getter(){return this._effectParameters[this._parameterIndex].clone()}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.EffectSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/effectSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._effectParameters=b,this._parameterIndex=c}Release(){this._effectParameters=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._effectParameters[this._parameterIndex]}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);b(this._parameterIndex,this._effectParameters,a,"effect")&&(this._effectParameters[this._parameterIndex]=a)}}C3.PropertyTrack.EffectSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/effectSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._effectParameters=b,this._parameterIndex=c,this._lastValue=0}Release(){this._effectParameters=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._effectParameters[this._parameterIndex]}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue;return this._PickResultMode(()=>{this._effectParameters[this._parameterIndex]+=a-b},()=>{this._PickFirstAbsoluteUpdate(()=>{this._effectParameters[this._parameterIndex]+=b},()=>{this._effectParameters[this._parameterIndex]+=a-b})}),this._lastValue=a,C3.Timeline.LAYOUT_RENDER_CHANGE}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.EffectSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/instanceVariableSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._instance=b,this._instanceVariableIndex=c}Release(){this._instance=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._instance.GetInstanceVariableValue(this._instanceVariableIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);b(this._instanceVariableIndex,this._instance,a,"instance-variable")&&this._instance.SetInstanceVariableValue(this._instanceVariableIndex,a)}}C3.PropertyTrack.InstanceVariableSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/instanceVariableSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._instance=b,this._instanceVariableIndex=c,this._lastValue=0}Release(){this._instance=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._instance.GetInstanceVariableValue(this._instanceVariableIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this._instance,d=this._instanceVariableIndex;this._PickResultMode(()=>c.SetInstanceVariableOffset(d,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>c.SetInstanceVariableOffset(d,b),()=>c.SetInstanceVariableOffset(d,a-b))}),this._lastValue=a}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.InstanceVariableSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkInstance=b,this._propertyIndex=c,this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){this._sdkInstance=null,super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=this._sdkInstance,e=this._propertyIndex,f=c[a],h=c[1],g=c[2],b=this._lastValueR,i=this._lastValueG,j=this._lastValueB;return this._PickFirstAbsoluteUpdate(()=>d.SetPropertyColorOffsetValueByIndex(e,-b,-i,-j),()=>d.SetPropertyColorOffsetValueByIndex(e,-b+f,-i+h,-j+g)),this._lastValueR=f,this._lastValueG=h,this._lastValueB=g,C3.Timeline.LAYOUT_RENDER_CHANGE}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_Getter(){const a=this._sdkInstance,b=this._propertyIndex,c=a.GetPropertyValueByIndex(b);return this._GetColorFromArray(c)}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.PluginSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkInstance=b,this._propertyIndex=c}Release(){this._sdkInstance=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);if(b(this._propertyIndex,this._sdkInstance,a,"plugin"))return this._sdkInstance.SetPropertyValueByIndex(this._propertyIndex,a),C3.Timeline.LAYOUT_RENDER_CHANGE}}C3.PropertyTrack.PluginSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkInstance=b,this._propertyIndex=c,this._lastValue=0}Release(){this._sdkInstance=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this._sdkInstance,d=this._propertyIndex;return this._PickResultMode(()=>c.SetPropertyOffsetValueByIndex(d,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>c.SetPropertyOffsetValueByIndex(d,b),()=>c.SetPropertyOffsetValueByIndex(d,a-b))}),this._lastValue=a,C3.Timeline.LAYOUT_RENDER_CHANGE}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.PluginSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/worldInstanceSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a){super(a),this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this._Getter()}GetCurrentState(){return this._Getter().toArray().slice(0,3)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=c[a],e=c[1],f=c[2],b=this._lastValueR,g=this._lastValueG,h=this._lastValueB;return this._PickFirstAbsoluteUpdate(()=>this._Setter(-b,-g,-h),()=>this._Setter(-b+d,-g+e,-h+f)),this._lastValueR=d,this._lastValueG=e,this._lastValueB=f,C3.Timeline.LAYOUT_RENDER_CHANGE}_Getter(){return this.GetWorldInfo().GetUnpremultipliedColor().clone()}_Setter(a,c,d){this.GetWorldInfo().OffsetUnpremultipliedColorRGB(a,c,d)}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.WorldInstanceSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/worldInstanceSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{const a=new Map,b=(b,c,d)=>a.set(b,{setter:c,getter:d});b("offsetX",(a,b)=>a.OffsetX(b),(a)=>a.GetX()),b("offsetY",(a,b)=>a.OffsetY(b),(a)=>a.GetY()),b("offsetWidth",(a,b)=>a.OffsetWidth(b),(a)=>a.GetWidth()),b("offsetHeight",(a,b)=>a.OffsetHeight(b),(a)=>a.GetHeight()),b("offsetAngle",(a,b)=>a.OffsetAngle(b),(a)=>a.GetAngle()),b("offsetOpacity",(a,b)=>a.OffsetOpacity(b),(a)=>a.GetOpacity()),b("offsetOriginX",(a,b)=>a.OffsetOriginX(b),(a)=>a.GetOriginX()),b("offsetOriginY",(a,b)=>a.OffsetOriginY(b),(a)=>a.GetOriginY());class c extends C3.PropertyTrack.PropertyAdapter{constructor(b){super(b);const c=b.GetPropertyName();this._getter=a.get(c).getter,this._setter=a.get(c).setter,this._lastValue=0}Release(){super.Release(),this._getter=null,this._setter=null}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._getter(this.GetWorldInfo())}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this.GetWorldInfo();return this._PickResultMode(()=>this._setter(c,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>this._setter(c,b),()=>this._setter(c,a-b))}),this._lastValue=a,C3.Timeline.WORLD_INSTANCE_BOX_CHANGE}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.WorldInstanceSourceAdapter.NumericPropertyAdapter=c} + +// c3/timelines/propertySourceAdapters/valueSourceAdapter.js +"use strict";C3.PropertyTrack.ValueSourceAdapter=class{constructor(a){this._propertyTrack=a,this._track=a.GetTrack(),this._value=0}Release(){this._propertyTrack=null,this._track=null}SetInitialState(){this._value=this._propertyTrack._GetFirstKeyframe().GetValueWithResultMode()}SetResumeState(){}GetValue(){return this._value}Interpolate(a,b,c){const d=C3.PropertyTrack.NumericTypeAdapter.Interpolate;this._value=d(a,b,c,this._propertyTrack)}SaveState(){}ClearSaveState(){}GetCurrentState(){return this._value}CompareInitialStateWithCurrent(){return!1}CompareSaveStateWithCurrent(){return!1}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}}; + +// c3/timelines/propertyTypeAdapters/numericTypeAdapter.js +"use strict";C3.PropertyTrack.NumericTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,e!==c}static Interpolate(a,b,c,d){var f=Math.floor;if(!c)return d._GetLastKeyframe().GetValueWithResultMode();let g=d.GetInterpolationMode();if("default"===g&&(g="continuous"),"combo"===d.GetPropertyType()&&(g="discrete"),"discrete"===g)return b.GetValueWithResultMode();if("continuous"===g||"step"===g){if("step"===g){const b=1/d.GetTimeline().GetStep();a=f(a*b)/b}const h=b.GetTime(),i=c.GetTime(),j=b.GetValueWithResultMode(),k=c.GetValueWithResultMode();if(j===k)return j;const l=C3.normalize(a,h,i),m=b.GetEase(),e=Ease.GetEase(m)((i-h)*l,j,k-j,i-h);return"integer"===d.GetPropertyType()?f(e):e}}}; + +// c3/timelines/propertyTypeAdapters/angleTypeAdapter.js +"use strict";C3.PropertyTrack.AngleTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,e!==c}static Interpolate(a,b,c,d){if(!c)return d._GetLastKeyframe().GetValueWithResultMode();let e=d.GetInterpolationMode();if("default"===e&&(e="continuous"),"combo"===d.GetPropertyType()&&(e="discrete"),"discrete"===e)return b.GetValueWithResultMode();if("continuous"===e||"step"===e){if("step"===e){const b=1/d.GetTimeline().GetStep();a=Math.floor(a*b)/b}const f=b.GetTime(),g=c.GetTime(),h=b.GetValueWithResultMode(),i=c.GetValueWithResultMode();if(h===i)return h;let j=C3.normalize(a,f,g);const k=Ease.GetEase(b.GetEase());return C3.angleLerp(h,i,k(j,0,1,1))}}}; + +// c3/timelines/propertyTypeAdapters/booleanTypeAdapter.js +"use strict";C3.PropertyTrack.BooleanTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,!!e!=!!c}static Interpolate(a,b,c,d){return c?b.GetValueWithResultMode()?1:0:d._GetLastKeyframe().GetValueWithResultMode()?1:0}}; + +// c3/timelines/propertyTypeAdapters/colorTypeAdapter.js +"use strict";{const a=[0,0,0],b=[0,0,0];C3.PropertyTrack.ColorTypeAdapter=class{constructor(){}static WillChange(c,d,e,f){var g=Math.floor;let h;return"behavior"===f?h=d.GetPropertyValueByIndex(c):"effect"===f?h=d[c]:"instance-variable"===f?h=d.GetInstanceVariableValue(c):"plugin"===f?h=d.GetPropertyValueByIndex(c):void 0,Array.isArray(e)?(a[0]=e[0],a[1]=e[1],a[2]=e[2]):(TEMP_COLOR_ARRAY_3.parseCommaSeparatedRgb(e),a[0]=g(255*TEMP_COLOR_ARRAY_3.getR()),a[1]=g(255*TEMP_COLOR_ARRAY_3.getG()),a[2]=g(255*TEMP_COLOR_ARRAY_3.getB())),Array.isArray(h)?(b[0]=h[0],b[1]=h[1],b[2]=h[2]):(TEMP_COLOR_ARRAY_3.parseCommaSeparatedRgb(h),b[0]=g(255*TEMP_COLOR_ARRAY_3.getR()),b[1]=g(255*TEMP_COLOR_ARRAY_3.getG()),b[2]=g(255*TEMP_COLOR_ARRAY_3.getB())),a[0]!==b[0]||a[1]!==b[1]||a[2]!==b[2]}static Interpolate(b,c,f,d){if(!f){const b=d._GetLastKeyframe().GetValueWithResultMode();return a[0]=b[0],a[1]=b[1],a[2]=b[2],a}let g=d.GetInterpolationMode();if("default"===g&&(g="continuous"),"discrete"===g){const b=c.GetValueWithResultMode();return a[0]=b[0],a[1]=b[1],a[2]=b[2],a}if("continuous"===g||"step"===g){if("step"===g){const a=1/d.GetTimeline().GetStep();b=Math.floor(b*a)/a}const h=c.GetTime(),i=f.GetTime(),j=c.GetValueWithResultMode(),k=f.GetValueWithResultMode(),l=C3.normalize(b,h,i),m=c.GetEase(),e=j[0],n=j[1],o=j[2],p=k[0],q=k[1],r=k[2],s=Ease.GetEase(m),t=i-h,u=t*l;return a[0]=e===p?e:s(u,e,p-e,t),a[1]=n===q?n:s(u,n,q-n,t),a[2]=o===r?o:s(u,o,r-o,t),a}}}} + +// c3/timelines/propertyTypeAdapters/textTypeAdapter.js +"use strict";C3.PropertyTrack.TextTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,e!==c}static Interpolate(a,b,c,d){return c?b.GetValueWithResultMode():d._GetLastKeyframe().GetValueWithResultMode()}}; + +// c3/timelines/tweens/tween.js +"use strict";{C3.Tween=class a extends C3.Timeline{constructor(a,b){super(a,b),this._tags=[""],this._stringTags="",this._tagsChanged=!1,this._id="",this._destroyInstanceOnComplete=!1,this._initialValueMode="start-value",this.SetStep(0),this.SetInterpolationMode("default"),this.SetStartedTriggers(null),this.SetFinishedTriggers(null)}Release(){C3.clearArray(this._tags),this._tags=null,super.Release()}GetInstance(){const a=this.GetTracks();if(a&&a.length){const b=a[0];if(b){const a=b.GetInstance();return b.IsInstanceValid()?a:null}}}SetStartValue(a,b){for(const c of this._tracks)for(const d of c._propertyTracks){if(d.GetPropertyName()!==b)continue;const c=d._GetFirstKeyframe();c.SetValue(a),c.SetAbsoluteValue(a)}}SetEndValue(a,b){for(const c of this._tracks)for(const d of c._propertyTracks){if(d.GetPropertyName()!==b)continue;const c=d._GetLastKeyframe();c.SetValue(a),c.SetAbsoluteValue(a),(this.IsPlaying()||!this.IsComplete())&&d.AddPropertyKeyframeAtCurrentTime()}}HasTags(b){if(!this._tags)return!1;if(!this._tags.length)return!1;const c=a._GetTagArray(b);return!!c&&!!c.length&&c.every(a._HasTag,this)}SetId(a){this._id=a}GetId(){return this._id}SetTags(b){this._tags=a._GetTagArray(b),this._tagsChanged=!0}GetTags(){return this._tags}GetStringTags(){return this._tagsChanged&&(this._stringTags=this._tags.join(" ")),this._tagsChanged=!1,this._stringTags}SetInitialValueMode(a){this._initialValueMode=a}GetInitialValueMode(){return this._initialValueMode}SetDestroyInstanceOnComplete(a){this._destroyInstanceOnComplete=a}GetDestroyInstanceOnComplete(){return this._destroyInstanceOnComplete}OnStarted(){if(super.OnStarted(),!this.IsComplete())for(const a of this._tracks)a.CompareSaveStateWithCurrent()}SetTime(a){this._DeleteIntermediateKeyframes(),super.SetTime(a)}SetInitialState(){if(!this.InitialStateSet()&&this.GetInitialValueMode()==="current-state")for(const a of this._tracks)a.CompareInitialStateWithCurrent();super.SetInitialState()}Stop(a=!1){if(super.Stop(a),!this.IsComplete())for(const a of this._tracks)a.SaveState()}Reset(){this._DeleteIntermediateKeyframes(),super.Reset()}_DeleteIntermediateKeyframes(){for(const a of this._tracks){const b=(a)=>{const b=a.GetTime(),c=this.GetTotalTime();return 0!==b&&b!==c};a.DeleteKeyframes(b),a.DeletePropertyKeyframes(b)}}Tick(){const a=this.GetInstance(),b=this.GetRuntime().GetDt(a);super.Tick(b,1)}static IsPlaying(a){return a.IsPlaying()}static _HasTag(a){const b=this.GetTags();return""===a?1===b.length&&""===b[0]:b.includes(a)}static _GetTagArray(a){return C3.IsArray(a)?a.slice(0):C3.IsString(a)?a.split(" "):void 0}static Build(a){const b=C3.Timeline.GetDefaultInitData(),c=a.runtime.GetTimelineManager(),d=C3.New(C3.Tween,b,c);C3.IsArray(a.propertyTracksConfig)||(a.propertyTracksConfig=[a.propertyTracksConfig]),d.SetId(a.id),d.SetTags(a.tags),d.SetInitialValueMode(a.initialValueMode),d.SetTotalTime(a.time),d.SetResultMode(a.propertyTracksConfig[0].resultMode),d.SetDestroyInstanceOnComplete(a.releaseOnComplete);const e=d.AddTrack();e.SetInstanceUID(a.instance.GetUID()),e.SetInterpolationMode("default"),e.SetResultMode(a.propertyTracksConfig[0].resultMode),e.SetEnable(!0);const f=e.AddKeyframe();f.SetTime(0),f.SetEase("noease"),f.SetEnable(!0);const g=e.AddKeyframe();g.SetTime(a.time),g.SetEase("noease"),g.SetEnable(!0);for(const b of a.propertyTracksConfig){const c=e.AddPropertyTrack(b.sourceId,b.sourceArgs);c.SetPropertyName(b.property),c.SetPropertyType(b.type),c.SetMin(NaN),c.SetMax(NaN),c.SetInterpolationMode("default"),c.SetResultMode(b.resultMode),c.SetEnable(!0);const d=c.AddPropertyKeyframe();d.SetValue(b.startValue),d.SetAbsoluteValue(b.startValue),d.SetType(b.valueType),d.SetTime(0),d.SetEase(b.ease),d.SetEnable(!0);const f=c.AddPropertyKeyframe();f.SetValue(b.endValue),f.SetAbsoluteValue(b.endValue),f.SetType(b.valueType),f.SetTime(a.time),f.SetEase(b.ease),f.SetEnable(!0)}return d}}} + +// c3/events/stacks/solStack.js +"use strict";C3.SolStack=class extends C3.DefendedBase{constructor(a){super(),this._objectClass=a,this._stack=[],this._stack.push(C3.New(C3.Sol,this)),this._index=0}Release(){for(const a of this._stack)a.Release();C3.clearArray(this._stack),this._objectClass=null}GetObjectClass(){return this._objectClass}GetCurrentSol(){return this._stack[this._index]}Clear(){this.GetCurrentSol().Clear()}PushClean(){const a=this._stack,b=++this._index;b===a.length?a.push(C3.New(C3.Sol,this)):a[b].Reset()}PushCopy(){const a=this._stack,b=++this._index;b===a.length&&a.push(C3.New(C3.Sol,this)),a[b].Copy(a[b-1])}Pop(){--this._index}RemoveInstances(a){const b=this._stack;for(let c=0,d=b.length;cc=a);return this._queuedDebugTriggers.push([a,b,c]),d}*_RunQueuedDebugTriggersGen(){if(this._runtime.HitBreakpoint())throw new Error("should not be in breakpoint");for(const a=this._runtime.GetLayoutManager();this._queuedDebugTriggers.length;){const[b,c,d]=this._queuedDebugTriggers.shift(),e=yield*this._DebugTrigger(a,b,c);d(e)}}async RunQueuedDebugTriggersAsync(){for(const a of this._RunQueuedDebugTriggersGen())await this._runtime.DebugBreak(a)}_FastTrigger(a,b,c,d){let e=!1;const f=a.GetMainRunningLayout(),g=f.GetEventSheet();if(g){this._executingTriggerDepth++,this._runtime.PushCurrentLayout(f);const a=g.deepIncludes();for(let f=0,g=a.length;fa.ShouldRelease());for(const b of a)b.Release()}ClearAllScheduledWaits(){for(const a of this._scheduledWaits)a.Release();C3.clearArray(this._scheduledWaits)}RemoveInstancesFromScheduledWaits(a){for(const b of this._scheduledWaits)b.RemoveInstances(a)}_SaveToJson(){return{"groups":this._SaveGroupsToJson(),"cnds":this._SaveCndsToJson(),"acts":this._SaveActsToJson(),"vars":this._SaveVarsToJson(),"waits":this._SaveScheduledWaitsToJson()}}_LoadFromJson(a){this._LoadGroupsFromJson(a["groups"]),this._LoadCndsFromJson(a["cnds"]),this._LoadActsFromJson(a["acts"]),this._LoadVarsFromJson(a["vars"]),this._LoadScheduledWaitsFromJson(a["waits"])}_SaveGroupsToJson(){const a={};for(const b of this.GetAllGroups())a[b.GetSID().toString()]=b.IsGroupActive();return a}_LoadGroupsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetEventGroupBySID(a);d&&d.SetGroupActive(c)}}_SaveCndsToJson(){const a={};for(const[b,c]of this._cndsBySid){const d=c._SaveToJson();d&&(a[b.toString()]=d)}return a}_LoadCndsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetConditionBySID(a);d&&d._LoadFromJson(c)}}_SaveActsToJson(){const a={};for(const[b,c]of this._actsBySid){const d=c._SaveToJson();d&&(a[b.toString()]=d)}return a}_LoadActsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetActionBySID(a);d&&d._LoadFromJson(c)}}_SaveVarsToJson(){const a={};for(const[b,c]of this._eventVarsBySid)!c.IsConstant()&&(c.IsGlobal()||c.IsStatic())&&(a[b.toString()]=c.GetValue());return a}_LoadVarsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetEventVariableBySID(a);d&&d.SetValue(c)}}_SaveScheduledWaitsToJson(){return this._scheduledWaits.map((a)=>a._SaveToJson())}_LoadScheduledWaitsFromJson(a){this.ClearAllScheduledWaits();for(const b of a){const a=C3.ScheduledWait._CreateFromJson(this,b);a&&this._scheduledWaits.push(a)}}_GetPerfRecords(){return[...this._runtime.GetLayoutManager().runningLayouts()].map((a)=>a.GetEventSheet()).filter((a)=>a).map((a)=>a._GetPerfRecord())}}} + +// c3/events/eventSheet.js +"use strict";C3.EventSheet=class extends C3.DefendedBase{constructor(a,b){super(),this._eventSheetManager=a,this._runtime=a.GetRuntime(),this._name=b[0],this._events=[],this._triggers=new Map,this._fastTriggers=new Map,this._eventsByDisplayNumber=new Map,this._hasRun=!1,this._shallowIncludes=[],this._deepIncludes=[],this._alreadyIncludedSheets=new Set;for(const c of b[1])this._CreateEvent(c,null,this._events);this._perfRecord=this._runtime.IsDebug()?{type:"sheet",name:this._name,totalTimeCounter:0,children:[]}:null}Release(){this._eventSheetManager=null,this._runtime=null}_CreateEvent(a,b,c){switch(a[0]){case 0:this._CreateEventBlock(a,b,c);break;case 1:this._CreateEventVariable(a,b,c);break;case 2:this._CreateInclude(a,b,c);break;default:throw new Error("invalid event type");}}_CreateEventBlock(a,b,c){const d=C3.EventBlock.Create(this,b,a);if(d.IsOrBlock()){c.push(d);const a=d.GetConditions();for(let b=0,c=a.length;ba.DebugCanRunFast()),a.canRunAllActionsFast=this._actions.every((b)=>b.DebugCanRunFast()),a.canRunAllSubEventsFast=this._subEvents.every((a)=>a.DebugCanRunFast()),a.canRunSelfFast=a.canRunAllConditionsFast&&a.canRunAllActionsFast&&a.canRunAllSubEventsFast}_UpdateCanRunFastRecursive(){let a=this;do a._UpdateCanRunFast(),a=a.GetParent();while(a)}_IdentifyTopLevelGroup(){if(!this.IsGroup())return;let a=this.GetParent();for(this._isTopLevelGroup=!0;a;){if(!a.IsGroup()){this._isTopLevelGroup=!1;break}a=a.GetParent()}}_IdentifySolModifiersIncludingParents(){const a=this._runtime.GetAllObjectClasses();if(this._solModifiers===a)this._solModifiersIncludingParents=a;else{this._solModifiersIncludingParents=C3.cloneArray(this._solModifiers);for(let a=this.GetParent();a;){for(const b of a._solModifiers)this._AddParentSolModifier(b);a=a.GetParent()}const a=this.GetEventSheetManager();this._solModifiers=a._DeduplicateSolModifierList(this._solModifiers),this._solModifiersIncludingParents=a._DeduplicateSolModifierList(this._solModifiersIncludingParents)}}_IdentifyTriggerParents(){if(this.HasAnyTriggeredCondition()){this._triggerParents=[];for(let a=this.GetParent();a;)this._triggerParents.push(a),a=a.GetParent();this._triggerParents.reverse()}}SetSolWriterAfterCnds(){this._isSolWriterAfterCnds=!0,this._parent&&this._parent.SetSolWriterAfterCnds()}IsSolWriterAfterCnds(){return this._isSolWriterAfterCnds}GetSolModifiers(){return this._solModifiers}GetSolModifiersIncludingParents(){return this._solModifiersIncludingParents}HasSolModifier(a){return this._solModifiers.includes(a)}GetTriggerParents(){return this._triggerParents}GetEventSheet(){return this._eventSheet}GetEventSheetManager(){return this._eventSheet.GetEventSheetManager()}GetRuntime(){return this._runtime}GetParent(){return this._parent}GetDisplayNumber(){return this._displayNumber}IsDebugBreakable(){return this._debugData&&this._debugData.isBreakable}IsDebugBreakpoint(){return this.IsDebugBreakable()&&this._debugData.isBreakpoint}_SetDebugBreakpoint(a){this._debugData.isBreakpoint=!!a,this._UpdateCanRunFastRecursive()}IsGroup(){return this._isGroup}IsTopLevelGroup(){return this._isTopLevelGroup}IsElseBlock(){return this._isElseBlock}HasElseBlock(){return this._hasElseBlock}GetGroupName(){return this._groupName}IsGroupActive(){return this._isGroupActive}ResetInitialActivation(){this.SetGroupActive(this._isInitiallyActive)}SetGroupActive(b){if(b=!!b,!this._isGroup)throw new Error("not a group");if(this._isGroupActive!==b){this._isGroupActive=b;for(const a of this._containedIncludes)a.UpdateActive();if(this._containedIncludes.length){const a=this._runtime.GetCurrentLayout(),b=a.GetEventSheet();b&&b._UpdateDeepIncludes()}}}GetSID(){return this._sid}IsOrBlock(){return this._isOrBlock}IsTrigger(){return this._conditions.length&&this._conditions[0].IsTrigger()}HasAnyTriggeredCondition(){return this._conditions.some((a)=>a.IsTrigger())}GetConditions(){return this._conditions}GetConditionCount(){return this._conditions.length}GetConditionAt(a){if(a=Math.floor(a),0>a||a>=this._conditions.length)throw new RangeError("invalid condition index");return this._conditions[a]}IsFirstConditionOfType(a){let b=a.GetIndex();if(0===b)return!0;for(;0<=b;--b)if(this._conditions[b].GetObjectClass()===a.GetObjectClass())return!1;return!0}GetActions(){return this._actions}GetActionCount(){return this._actions.length}GetActionAt(a){if(a=Math.floor(a),0>a||a>=this._actions.length)throw new RangeError("invalid action index");return this._actions[a]}_HasActionIndex(a){return a=Math.floor(a),0<=a&&a=a.length?this._initialValue:a[b]}GetTypedValue(){let a=this.GetValue();return this.IsBoolean()&&(a=!!a),a}ResetToInitialValue(){this._value=this._initialValue}}} + +// c3/events/eventInclude.js +"use strict";{const a=[];C3.EventInclude=class extends C3.DefendedBase{constructor(a,b,c){super();const d=a.GetEventSheetManager();this._eventSheet=a,this._eventSheetManager=d,this._runtime=a.GetRuntime(),this._parent=b,this._includeSheet=null,this._includeSheetName=c[1],this._isActive=!0}static Create(a,b,c){return C3.New(C3.EventInclude,a,b,c)}Release(){}_PostInit(){this._includeSheet=this._eventSheetManager.GetEventSheetByName(this._includeSheetName);this._eventSheet._AddShallowInclude(this);for(let a=this.GetParent();a;)a instanceof C3.EventBlock&&a.IsGroup()&&a._AddContainedInclude(this),a=a.GetParent();this.UpdateActive(),this._runtime.IsDebug()&&this._eventSheet._GetPerfRecord().children.push(this._includeSheet._GetPerfRecord())}GetParent(){return this._parent}GetSolModifiers(){return a}GetIncludeSheet(){return this._includeSheet}Run(){const a=!!this.GetParent(),b=this._runtime.GetAllObjectClasses();a&&this._eventSheetManager.PushCleanSol(b),this._includeSheet.Run(),a&&this._eventSheetManager.PopSol(b)}*DebugRun(){const a=!!this.GetParent(),b=this._runtime.GetAllObjectClasses();a&&this._eventSheetManager.PushCleanSol(b),yield*this._includeSheet.DebugRun(),a&&this._eventSheetManager.PopSol(b)}DebugCanRunFast(){return!1}IsActive(){return this._isActive}UpdateActive(){for(let a=this.GetParent();a;){if(a instanceof C3.EventBlock&&a.IsGroup()&&!a.IsGroupActive())return void(this._isActive=!1);a=a.GetParent()}this._isActive=!0}}} + +// c3/events/expNode.js +"use strict";{function a(a,b){return a>=b?a%b:0>a?(a<=-b&&(a%=b),0>a&&(a+=b),a):a}C3.ExpNode=class extends C3.DefendedBase{constructor(a){super(),this._owner=a,this._runtime=a.GetRuntime()}_PostInit(){}static CreateNode(a,g){const h=g[0];return C3.New([e,c,d,f,b][h],a,g)}};class b extends C3.ExpNode{constructor(a,b){super(a),this._systemPlugin=this._runtime.GetSystemPlugin(),this._func=this._runtime.GetObjectReference(b[1]);(this._func===C3.Plugins.System.Exps.random||this._func===C3.Plugins.System.Exps.choose)&&this._owner.SetVariesPerInstance()}GetBoundMethod(){return this._systemPlugin._GetBoundACEMethod(this._func,this._systemPlugin)}}class c extends C3.ExpNode{constructor(a,b){super(a),this._objectClass=this._runtime.GetObjectClassByIndex(b[1]),this._func=this._runtime.GetObjectReference(b[2]);this._returnsString=!!b[3],this._eventStack=this._runtime.GetEventSheetManager().GetEventStack(),this._owner._MaybeVaryFor(this._objectClass)}GetBoundMethod(){return this._objectClass.GetPlugin()._GetBoundACEMethod(this._func,this._objectClass.GetSingleGlobalInstance().GetSdkInstance())}ExpObject(...b){const c=this._objectClass,d=c.GetCurrentSol().GetExpressionInstances(),e=d.length;if(0===e)return this._returnsString?"":0;const f=a(this._owner.GetSolIndex(),e);return this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(c),this._func.apply(d[f].GetSdkInstance(),b)}ExpObject_InstExpr(b,...c){const d=this._objectClass,e=d.GetInstances(),f=e.length;if(0===f)return this._returnsString?"":0;const g=a(b,f);return this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(d),this._func.apply(e[g].GetSdkInstance(),c)}}class d extends C3.ExpNode{constructor(a,b){super(a),this._objectClass=this._runtime.GetObjectClassByIndex(b[1]),this._varIndex=b[3],this._returnsString=!!b[2],this._owner._MaybeVaryFor(this._objectClass)}ExpInstVar(){const b=this._objectClass.GetCurrentSol().GetExpressionInstances(),c=b.length;if(0===c)return this._returnsString?"":0;const d=a(this._owner.GetSolIndex(),c);return b[d]._GetInstanceVariableValueUnchecked(this._varIndex)}ExpInstVar_Family(){const b=this._objectClass,c=b.GetCurrentSol().GetExpressionInstances(),d=c.length;if(0===d)return this._returnsString?"":0;const e=a(this._owner.GetSolIndex(),d),f=c[e],g=f.GetObjectClass().GetFamilyInstanceVariableOffset(b.GetFamilyIndex());return f._GetInstanceVariableValueUnchecked(this._varIndex+g)}ExpInstVar_InstExpr(b){const c=this._objectClass,d=c.GetInstances(),e=d.length;if(0===e)return this._returnsString?"":0;const f=a(b,e),g=d[f];let h=0;return c.IsFamily()&&(h=g.GetObjectClass().GetFamilyInstanceVariableOffset(c.GetFamilyIndex())),g._GetInstanceVariableValueUnchecked(this._varIndex+h)}}class e extends C3.ExpNode{constructor(a,b){super(a),this._objectClass=this._runtime.GetObjectClassByIndex(b[1]),this._behaviorType=this._objectClass.GetBehaviorTypeByName(b[2]),this._behaviorIndex=this._objectClass.GetBehaviorIndexByName(b[2]),this._func=this._runtime.GetObjectReference(b[3]);this._returnsString=!!b[4],this._eventStack=this._runtime.GetEventSheetManager().GetEventStack(),this._owner._MaybeVaryFor(this._objectClass)}ExpBehavior(...b){const c=this._objectClass,d=c.GetCurrentSol().GetExpressionInstances(),e=d.length;if(0===e)return this._returnsString?"":0;const f=a(this._owner.GetSolIndex(),e);this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(c);const g=d[f];let h=0;return c.IsFamily()&&(h=g.GetObjectClass().GetFamilyBehaviorOffset(c.GetFamilyIndex())),this._func.apply(g.GetBehaviorInstances()[this._behaviorIndex+h].GetSdkInstance(),b)}ExpBehavior_InstExpr(b,...c){const d=this._objectClass,e=d.GetInstances(),f=e.length;if(0===f)return this._returnsString?"":0;const g=a(b,f);this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(d);const h=e[g];let i=0;return d.IsFamily()&&(i=h.GetObjectClass().GetFamilyBehaviorOffset(d.GetFamilyIndex())),this._func.apply(h.GetBehaviorInstances()[this._behaviorIndex+i].GetSdkInstance(),c)}}class f extends C3.ExpNode{constructor(a,b){super(a),this._eventVar=null,this._eventVarName=b[1]}_PostInit(){this._eventVar=this._runtime.GetEventSheetManager().GetEventVariableByName(this._eventVarName,this._owner.GetEventBlock().GetParent());this._eventVarName=null}GetVar(){return this._eventVar}}} + +// c3/events/parameter.js +"use strict";{function a(a){const b=self.C3_ExpressionFuncs[a];if(!b)throw new Error("invalid expression number");return b}C3.Parameter=class extends C3.DefendedBase{constructor(a,b,c){super(),this._owner=a,this._index=c,this._type=b,this.Get=null,this._variesPerInstance=!1,this._isConstant=!1}static Create(a,m,n){const o=m[0];return C3.New([b,c,i,e,f,d,g,b,e,e,j,k,i,l,c,h][o],a,o,n,m)}_PostInit(){}SetVariesPerInstance(){this._variesPerInstance=!0}_MaybeVaryFor(a){!this._variesPerInstance&&a&&(a.GetPlugin().IsSingleGlobal()||(this._variesPerInstance=!0))}VariesPerInstance(){return this._variesPerInstance}GetIndex(){return this._index}GetRuntime(){return this._owner.GetRuntime()}GetEventBlock(){return this._owner.GetEventBlock()}IsConstant(){return this._isConstant}};class b extends C3.Parameter{constructor(b,c,d,e){super(b,c,d),this._solIndex=0;const f=e[1];this._expressionNumber=f[0],this._numberedNodes=[],this._expressionFunc=null;for(let a=1,g=f.length;aa||a>=this._numberedNodes.length)throw new RangeError("invalid numbered node");return this._numberedNodes[a]}_PostInit(){for(const a of this._numberedNodes)a._PostInit();const b=a(this._expressionNumber);this._expressionFunc=this._numberedNodes.length?b(this):b}GetSolIndex(){return this._solIndex}GetExpression(a){return this._solIndex=a,this._expressionFunc()}}class c extends b{constructor(a,b,c,d){super(a,b,c,d),this.Get=this.GetStringExpression,14===b&&(this.GetEventBlock().SetAllSolModifiers(),this._owner instanceof C3.Action&&this.GetEventBlock().SetSolWriterAfterCnds())}GetStringExpression(a){this._solIndex=a;const b=this._expressionFunc();return"string"==typeof b?b:""}_GetFastTriggerValue(){return a(this._expressionNumber)()}}class d extends b{constructor(a,b,c,d){super(a,b,c,d),this.Get=this.GetLayer,this._isConstant=!1}GetLayer(a){this._solIndex=a;const b=this._expressionFunc(),c=this.GetRuntime().GetCurrentLayout();return c.GetLayer(b)}}class e extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._combo=d[1],this.Get=this.GetCombo,this._isConstant=!0}GetCombo(){return this._combo}}class f extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._objectClass=this.GetRuntime().GetObjectClassByIndex(d[1]);this.Get=this.GetObjectClass;const e=this.GetEventBlock();e._AddSolModifier(this._objectClass),this._owner instanceof C3.Action?e.SetSolWriterAfterCnds():e.GetParent()&&e.GetParent().SetSolWriterAfterCnds(),this._isConstant=!0}GetObjectClass(){return this._objectClass}}class g extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._layout=this.GetRuntime().GetLayoutManager().GetLayoutByName(d[1]),this.Get=this.GetLayout,this._isConstant=!0}GetLayout(){return this._layout}}class h extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._timeline=this.GetRuntime().GetTimelineManager().GetTimelineByName(d[1]),this.Get=this.GetTimeline,this._isConstant=!0}GetTimeline(){return this._timeline}}class i extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._fileInfo=d[1],this.Get=this.GetFile,this._isConstant=!0}GetFile(){return this._fileInfo}}class j extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._instVarIndex=d[1];const e=this._owner.GetObjectClass();e&&e.IsFamily()?(this.Get=this.GetFamilyInstanceVariable,this.SetVariesPerInstance()):(this.Get=this.GetInstanceVariable,this._isConstant=!0)}GetInstanceVariable(){return this._instVarIndex}GetFamilyInstanceVariable(a){a=a||0;const b=this._owner.GetObjectClass(),c=b.GetCurrentSol(),d=c.GetInstances();let e=null;if(d.length)e=d[a%d.length].GetObjectClass();else if(c.HasAnyElseInstances()){const b=c.GetElseInstances();e=b[a%b.length].GetObjectClass()}else if(0[a[0].GetUID(),a[1].GetUID(),a[2]])),a[b]=d}return{"ex":a}}_LoadFromJson(a){const b=this._runtime,c=a["ex"];if(c){const a=this.GetSavedDataMap();a.clear();for(const[d,e]of Object.entries(c)){let c=e;"collmemory"===d&&(c=C3.New(C3.PairMap,e.map((a)=>[b.GetInstanceByUID(a[0]),b.GetInstanceByUID(a[1]),a[2]]).filter((a)=>a[0]&&a[1]))),a.set(d,c)}}else this._savedData&&(this._savedData.clear(),this._savedData=null)}}} + +// c3/events/action.js +"use strict";{function a(a,b){for(let c=0,d=a.length;ca.VariesPerInstance())?(this.Run=this._RunObject_AllParamsVary,this.DebugRun=this._DebugRunObject_AllParamsVary):this._anyParamVariesPerInstance?(this.Run=this._RunObject_SomeParamsVary,this.DebugRun=this._DebugRunObject_SomeParamsVary):this._parameters.every((a)=>a.IsConstant())?(a(this._parameters,this._results),this.Run=this._RunObject_ParamsConst,this.DebugRun=this._DebugRunObject_ParamsConst):(this.Run=this._RunObject_ParamsDontVary,this.DebugRun=this._DebugRunObject_ParamsDontVary):(this.Run=this._RunObject_ParamsConst,this.DebugRun=this._DebugRunObject_ParamsConst)}_SetSystemRunMethod(){const a=this._systemPlugin,b=this._systemPlugin;this._SetRunMethodForBoundFunc(a,b,this._RunSystem)}_SetSingleGlobalRunMethod(){const a=this._objectClass.GetPlugin(),b=this._objectClass.GetSingleGlobalInstance().GetSdkInstance();this._SetRunMethodForBoundFunc(a,b,this._RunSingleGlobal)}_SetRunMethodForBoundFunc(a,b,c){const d=this._func,e=this._parameters;if(0===e.length)this.Run=a._GetBoundACEMethod(d,b);else if(1===e.length){const c=e[0];if(c.IsConstant())this.Run=a._GetBoundACEMethod_1param(d,b,c.Get(0));else{const e=a._GetBoundACEMethod(d,b);this.Run=function(){return e(c.Get(0))}}}else if(2===e.length){const c=e[0],f=e[1];if(c.IsConstant()&&f.IsConstant())this.Run=a._GetBoundACEMethod_2params(d,b,c.Get(0),f.Get(0));else{const e=a._GetBoundACEMethod(d,b);this.Run=function(){return e(c.Get(0),f.Get(0))}}}else if(3===e.length){const c=e[0],f=e[1],g=e[2];if(c.IsConstant()&&f.IsConstant()&&g.IsConstant())this.Run=a._GetBoundACEMethod_3params(d,b,c.Get(0),f.Get(0),g.Get(0));else{const e=a._GetBoundACEMethod(d,b);this.Run=function(){return e(c.Get(0),f.Get(0),g.Get(0))}}}else this.Run=c}GetSID(){return this._sid}GetObjectClass(){return this._objectClass}GetEventBlock(){return this._eventBlock}GetRuntime(){return this._runtime}GetIndex(){return this._index}IsBreakpoint(){return this._debugData.isBreakpoint}_SetBreakpoint(a){this._debugData.isBreakpoint=!!a,this._eventBlock._UpdateCanRunFastRecursive()}_DebugReturnsGenerator(){return this._debugData.canDebug}DebugCanRunFast(){return!this.IsBreakpoint()&&!this._runtime.DebugBreakNext()&&!this._DebugReturnsGenerator()}GetSavedDataMap(){return this._savedData||(this._savedData=new Map),this._savedData}GetUnsavedDataMap(){return this._unsavedData||(this._unsavedData=new Map),this._unsavedData}_RunSystem(){const b=this._results;return a(this._parameters,b),this._func.apply(this._systemPlugin,b)}*_DebugRunSystem(){if((this.IsBreakpoint()||this._runtime.DebugBreakNext())&&(yield this),this._DebugReturnsGenerator()){const b=this._results;a(this._parameters,b);const c=yield*this._func.apply(this._systemPlugin,b);return c}return this.Run()}_RunSingleGlobal(){const b=this._results;return a(this._parameters,b),this._func.apply(this._objectClass.GetSingleGlobalInstance().GetSdkInstance(),b)}*_DebugRunSingleGlobal(){if((this.IsBreakpoint()||this._runtime.DebugBreakNext())&&(yield this),this._DebugReturnsGenerator()){const b=this._results;a(this._parameters,b);const c=yield*this._func.apply(this._objectClass.GetSingleGlobalInstance().GetSdkInstance(),b);return c}return this.Run()}_RunObject_ParamsConst(){const a=this._results,b=this._objectClass.GetCurrentSol().GetInstances();for(let c=0,d=b.length;cc.getRight()||0>c.getBottom()||c.getLeft()>b.GetWidth()||c.getTop()>b.GetHeight()}function e(a,b,c){const d=this.GetCurrentSol(),e=d.GetInstances();if(!e.length)return!1;let f=e[0],g=f.GetWorldInfo(),h=f,j=C3.distanceSquared(g.GetX(),g.GetY(),b,c);for(let d=1,i=e.length;dj)&&(j=i,h=f)}return d.PickOne(h),!0}function f(a){const b=this.GetWorldInfo();b.GetX()===a||(b.SetX(a),b.SetBboxChanged())}function g(a){const b=this.GetWorldInfo();b.GetY()===a||(b.SetY(a),b.SetBboxChanged())}function h(a,b){const c=this.GetWorldInfo();c.EqualsXY(a,b)||(c.SetXY(a,b),c.SetBboxChanged())}function i(a,b){if(a){const c=a.GetPairedInstance(this._inst);if(c){const[a,d]=c.GetImagePoint(b),e=this.GetWorldInfo();e.GetX()===a&&e.GetY()===d||(e.SetXY(a,d),e.SetBboxChanged())}}}function j(a){if(0!==a){const b=this.GetWorldInfo();b.OffsetXY(b.GetCosAngle()*a,b.GetSinAngle()*a),b.SetBboxChanged()}}function k(b,a){if(0!==a){const c=this.GetWorldInfo();b=C3.toRadians(b),c.OffsetXY(Math.cos(b)*a,Math.sin(b)*a),c.SetBboxChanged()}}function l(){return this.GetWorldInfo().GetX()}function m(){return this.GetWorldInfo().GetY()}function n(){return this._runtime.GetDt(this._inst)}function o(a,b){return C3.compare(this.GetWorldInfo().GetWidth(),a,b)}function p(a,b){return C3.compare(this.GetWorldInfo().GetHeight(),a,b)}function q(a){const b=this.GetWorldInfo();b.GetWidth()===a||(b.SetWidth(a),b.SetBboxChanged())}function r(a){const b=this.GetWorldInfo();b.GetHeight()===a||(b.SetHeight(a),b.SetBboxChanged())}function s(a,b){const c=this.GetWorldInfo();c.GetWidth()===a&&c.GetHeight()===b||(c.SetSize(a,b),c.SetBboxChanged())}function t(){return this.GetWorldInfo().GetWidth()}function u(){return this.GetWorldInfo().GetHeight()}function v(){return this.GetWorldInfo().GetBoundingBox().getLeft()}function w(){return this.GetWorldInfo().GetBoundingBox().getTop()}function x(){return this.GetWorldInfo().GetBoundingBox().getRight()}function y(){return this.GetWorldInfo().GetBoundingBox().getBottom()}function z(b,c){return C3.angleDiff(this.GetWorldInfo().GetAngle(),C3.toRadians(c))<=C3.toRadians(b)}function A(b){return C3.angleClockwise(this.GetWorldInfo().GetAngle(),C3.toRadians(b))}function B(c,a){const b=C3.toRadians(c),d=C3.toRadians(a),e=this.GetWorldInfo().GetAngle(),f=!C3.angleClockwise(d,b);return f?C3.angleClockwise(e,b)||!C3.angleClockwise(e,d):C3.angleClockwise(e,b)&&!C3.angleClockwise(e,d)}function C(b){const a=this.GetWorldInfo(),c=C3.clampAngle(C3.toRadians(b));isNaN(c)||a.GetAngle()===c||(a.SetAngle(c),a.SetBboxChanged())}function D(b){if(!(isNaN(b)||0===b)){const a=this.GetWorldInfo();a.SetAngle(a.GetAngle()+C3.toRadians(b)),a.SetBboxChanged()}}function E(b){if(!(isNaN(b)||0===b)){const a=this.GetWorldInfo();a.SetAngle(a.GetAngle()-C3.toRadians(b)),a.SetBboxChanged()}}function F(b,c){const d=this.GetWorldInfo(),e=d.GetAngle(),a=C3.angleRotate(e,C3.toRadians(c),C3.toRadians(b));isNaN(a)||e===a||(d.SetAngle(a),d.SetBboxChanged())}function G(b,c,d){const e=this.GetWorldInfo(),f=e.GetAngle(),a=c-e.GetX(),g=d-e.GetY(),h=Math.atan2(g,a),i=C3.angleRotate(f,h,C3.toRadians(b));isNaN(i)||f===i||(e.SetAngle(i),e.SetBboxChanged())}function H(b,c){const d=this.GetWorldInfo(),e=d.GetAngle(),a=b-d.GetX(),f=c-d.GetY(),g=Math.atan2(f,a);isNaN(g)||e===g||(d.SetAngle(g),d.SetBboxChanged())}function I(){return C3.toDegrees(this.GetWorldInfo().GetAngle())}function J(a,b){return C3.compare(C3.round6dp(100*this.GetWorldInfo().GetOpacity()),a,b)}function K(){return this.GetWorldInfo().IsVisible()}function L(a){const b=this.GetWorldInfo();a=2===a?!b.IsVisible():0!=a;b.IsVisible()===a||(b.SetVisible(a),this._runtime.UpdateRender())}function M(a){const b=C3.clamp(a/100,0,1),c=this.GetWorldInfo();c.GetOpacity()===b||(c.SetOpacity(b),this._runtime.UpdateRender())}function N(a){xa.setFromRgbValue(a);const b=this.GetWorldInfo();b.GetUnpremultipliedColor().equalsIgnoringAlpha(xa)||(b.SetUnpremultipliedColor(xa),this._runtime.UpdateRender())}function O(){return C3.round6dp(100*this.GetWorldInfo().GetOpacity())}function P(a){return!!a&&this.GetWorldInfo().GetLayer()===a}function Q(a){const b=this.GetCurrentSol(),c=b.GetInstances();if(!c.length)return!1;let d=c[0],e=d;for(let b=1,d=c.length;bi||h===i&&f.GetZIndex()>g.GetZIndex())&&(e=d):(hb||b>=f.length)){const g=d.GetShaderProgram().GetParameterType(b);if("color"===g){xa.setFromRgbValue(c);const a=f[b];if(xa.equalsIgnoringAlpha(a))return;a.copyRgb(xa)}else{if("percent"===g&&(c/=100),f[b]===c)return;f[b]=c}e.IsEffectIndexActive(a)&&this._runtime.UpdateRender()}}}function ca(a,b,c){return C3.compare(this.GetInstance().GetInstanceVariableValue(a),b,c)}function da(a){return!!this.GetInstance().GetInstanceVariableValue(a)}function ea(a,b){const c=this.GetCurrentSol(),d=c.GetInstances();if(!d.length)return!1;let e=d[0],f=e,g=e.GetInstanceVariableValue(b);for(let c=1,h=d.length;cg)&&(g=h,f=e)}return c.PickOne(f),!0}function fa(a){return this._runtime.GetCurrentCondition().IsInverted()?ha(this,a):ga(this,a)}function ga(a,b){const c=a.GetRuntime().GetInstanceByUID(b);if(!c)return!1;const d=a.GetCurrentSol();if(!d.IsSelectAll()&&!d._GetOwnInstances().includes(c))return!1;if(a.IsFamily()){if(c.GetObjectClass().BelongsToFamily(a))return d.PickOne(c),a.ApplySolToContainer(),!0;}else if(c.GetObjectClass()===a)return d.PickOne(c),a.ApplySolToContainer(),!0;return!1}function ha(a,b){const c=a.GetCurrentSol();if(c.IsSelectAll()){c._SetSelectAll(!1),c.ClearArrays();const d=a.GetInstances();for(let a=0,e=d.length;athis._eventSheetManager.GetRuntime().GetGameTime())return!1;return!0}_Run(a){a._Restore(this._event,this._actIndex);for(const[b,c]of this._sols.entries()){const a=b.GetCurrentSol();c._Restore(a)}this._event._ResumeActionsAndSubEvents(a),this._eventSheetManager.ClearSol(this._solModifiers),this._shouldRelease=!0}async _DebugRun(a){a._Restore(this._event,this._actIndex);for(const[b,c]of this._sols.entries()){const a=b.GetCurrentSol();c._Restore(a)}for(const b of this._event._DebugResumeActionsAndSubEvents(a))await this._eventSheetManager.GetRuntime().DebugBreak(b);this._eventSheetManager.ClearSol(this._solModifiers),this._shouldRelease=!0}ShouldRelease(){return this._shouldRelease}RemoveInstances(a){for(const b of this._sols.values())b.RemoveInstances(a)}_SaveToJson(){const a={},b={"t":this._time,"st":this._signalTag,"s":this._isSignalled,"ev":this._event.GetSID(),"sm":this._solModifiers.map((a)=>a.GetSID()),"sols":a};this._event._HasActionIndex(this._actIndex)&&(b["act"]=this._event.GetActionAt(this._actIndex).GetSID());for(const[b,c]of this._sols)a[b.GetSID().toString()]=c._SaveToJson();return b}static _CreateFromJson(a,b){const c=a.GetRuntime(),d=a.GetEventBlockBySID(b["ev"]);if(!d)return null;let e=0;if(b.hasOwnProperty("act")){const c=a.GetActionBySID(b["act"]);if(!c)return null;e=c.GetIndex()}const f=C3.New(C3.ScheduledWait,a);f._time=b["t"],f._signalTag=b["st"],f._isSignalled=b["s"],f._event=d,f._actIndex=e;for(const d of b["sm"]){const a=c.GetObjectClassBySID(d);a&&f._solModifiers.push(a)}for(const[d,e]of Object.entries(b["sols"])){const b=parseInt(d,10),g=c.GetObjectClassBySID(b);if(!g)continue;const h=C3.New(C3.SolState,null);h._LoadFromJson(a,e),f._sols.set(g,h)}return f}}; + +// c3/events/solState.js +"use strict";C3.SolState=class extends C3.DefendedBase{constructor(a){super(),this._objectClass=null,this._isSelectAll=!0,this._instances=[],a&&(this._objectClass=a.GetObjectClass(),this._isSelectAll=a.IsSelectAll(),C3.shallowAssignArray(this._instances,a._GetOwnInstances()))}Release(){this._objectClass=null,C3.clearArray(this._instances)}_Restore(a){a._SetSelectAll(this._isSelectAll),C3.shallowAssignArray(a._GetOwnInstances(),this._instances)}RemoveInstances(a){C3.arrayRemoveAllInSet(this._instances,a)}_SaveToJson(){return{"sa":this._isSelectAll,"insts":this._instances.map((a)=>a.GetUID())}}_LoadFromJson(a,b){const c=a.GetRuntime();this._isSelectAll=!!b["sa"],C3.clearArray(this._instances);for(const d of b["insts"]){const a=c.GetInstanceByUID(d);a&&this._instances.push(a)}}}; + +// c3/sdk/sdkPluginBase.js +"use strict";{function a(a,b){let c=a.get(b);return c||(c=new Map,a.set(b,c)),c}C3.SDKPluginBase=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.runtime,this._isSingleGlobal=!!a.isSingleGlobal,this._isWorldType=!!a.isWorld,this._isRotatable=!!a.isRotatable,this._mustPredraw=!!a.mustPredraw,this._hasEffects=!!a.hasEffects,this._singleGlobalObjectClass=null,this._boundACEMethodCache=new Map,this._boundACEMethodCache_1param=new Map,this._boundACEMethodCache_2params=new Map,this._boundACEMethodCache_3params=new Map}Release(){this._runtime=null}GetRuntime(){return this._runtime}OnCreate(){}IsSingleGlobal(){return this._isSingleGlobal}IsWorldType(){return this._isWorldType}IsRotatable(){return this._isRotatable}MustPreDraw(){return this._mustPredraw}HasEffects(){return this._hasEffects}_GetBoundACEMethod(a,b){if(!b)throw new Error("missing 'this' binding");let c=this._boundACEMethodCache.get(a);return c?c:(c=a.bind(b),this._boundACEMethodCache.set(a,c),c)}_GetBoundACEMethod_1param(b,c,d){if(!c)throw new Error("missing 'this' binding");const e=a(this._boundACEMethodCache_1param,b);let f=e.get(d);return f?f:(f=b.bind(c,d),e.set(d,f),f)}_GetBoundACEMethod_2params(b,c,d,e){if(!c)throw new Error("missing 'this' binding");const f=a(this._boundACEMethodCache_2params,b),g=a(f,d);let h=g.get(e);return h?h:(h=b.bind(c,d,e),g.set(e,h),h)}_GetBoundACEMethod_3params(b,c,d,e,f){if(!c)throw new Error("missing 'this' binding");const g=a(this._boundACEMethodCache_3params,b),h=a(g,d),i=a(h,e);let j=i.get(f);return j?j:(j=b.bind(c,d,e,f),i.set(f,j),j)}_SetSingleGlobalObjectClass(a){if(!this.IsSingleGlobal())throw new Error("must be single-global plugin");this._singleGlobalObjectClass=a}GetSingleGlobalObjectClass(){if(!this.IsSingleGlobal())throw new Error("must be single-global plugin");return this._singleGlobalObjectClass}GetSingleGlobalInstance(){if(!this.IsSingleGlobal())throw new Error("must be single-global plugin");return this._singleGlobalObjectClass.GetSingleGlobalInstance()}}} + +// c3/sdk/sdkDOMPluginBase.js +"use strict";C3.SDKDOMPluginBase=class extends C3.SDKPluginBase{constructor(a,b){super(a),this._domComponentId=b,this._nextElementId=0,this._instMap=new Map}Release(){super.Release()}_AddElement(a){const b=this._nextElementId++;return this._instMap.set(b,a),b}_RemoveElement(a){this._instMap.delete(a)}AddElementMessageHandler(a,b){this._runtime.AddDOMComponentMessageHandler(this._domComponentId,a,(a)=>{const c=this._instMap.get(a["elementId"]);b(c,a)})}}; + +// c3/sdk/sdkTypeBase.js +"use strict";C3.SDKTypeBase=class extends C3.DefendedBase{constructor(a){super(),this._objectClass=a,this._runtime=a.GetRuntime(),this._plugin=a.GetPlugin()}Release(){this._objectClass=null,this._runtime=null,this._plugin=null}GetObjectClass(){return this._objectClass}GetRuntime(){return this._runtime}GetPlugin(){return this._plugin}GetImageInfo(){return this._objectClass.GetImageInfo()}FinishCondition(){}LoadTextures(){}ReleaseTextures(){}OnDynamicTextureLoadComplete(){}LoadTilePolyData(){}}; + +// c3/sdk/sdkInstanceBase.js +"use strict";C3.SDKInstanceBase=class extends C3.DefendedBase{constructor(a,b){super(),this._inst=a,this._domComponentId=b,this._runtime=a.GetRuntime(),this._objectClass=this._inst.GetObjectClass(),this._sdkType=this._objectClass.GetSdkType(),this._tickFunc=null,this._tick2Func=null,this._isTicking=!1,this._isTicking2=!1,this._disposables=null,this._wasReleased=!1}Release(){this._wasReleased=!0,this._StopTicking(),this._StopTicking2(),this._tickFunc=null,this._tick2Func=null,this._disposables&&(this._disposables.Release(),this._disposables=null),this._inst=null,this._runtime=null,this._objectClass=null,this._sdkType=null}WasReleased(){return this._wasReleased}GetInstance(){return this._inst}GetRuntime(){return this._runtime}GetObjectClass(){return this._objectClass}GetPlugin(){return this._sdkType.GetPlugin()}GetSdkType(){return this._sdkType}Trigger(a){return this._runtime.Trigger(a,this._inst)}DebugTrigger(a){return this._runtime.DebugTrigger(a,this._inst)}TriggerAsync(a){return this._runtime.TriggerAsync(a,this._inst)}FastTrigger(a,b){return this._runtime.FastTrigger(a,this._inst,b)}DebugFastTrigger(a,b){return this._runtime.DebugFastTrigger(a,this._inst,b)}ScheduleTriggers(a){return this._runtime.ScheduleTriggers(a)}AddDOMMessageHandler(a,b){this._runtime.AddDOMComponentMessageHandler(this._domComponentId,a,b)}AddDOMMessageHandlers(a){for(const[b,c]of a)this.AddDOMMessageHandler(b,c)}PostToDOM(a,b){this._runtime.PostComponentMessageToDOM(this._domComponentId,a,b)}PostToDOMAsync(a,b){return this._runtime.PostComponentMessageToDOMAsync(this._domComponentId,a,b)}_PostToDOMMaybeSync(a,b){this._runtime.IsInWorker()?this.PostToDOM(a,b):window["c3_runtimeInterface"]["_OnMessageFromRuntime"]({"type":"event","component":this._domComponentId,"handler":a,"data":b,"responseId":null})}GetCurrentImageInfo(){return null}GetImagePoint(){const a=this._inst.GetWorldInfo();return[a.GetX(),a.GetY()]}Tick(){}Tick2(){}_StartTicking(){this._isTicking||(!this._tickFunc&&(this._tickFunc=()=>this.Tick()),this._runtime.Dispatcher().addEventListener("tick",this._tickFunc),this._isTicking=!0)}_StopTicking(){this._isTicking&&(this._runtime.Dispatcher().removeEventListener("tick",this._tickFunc),this._isTicking=!1)}IsTicking(){return this._isTicking}_StartTicking2(){this._isTicking2||(!this._tick2Func&&(this._tick2Func=()=>this.Tick2()),this._runtime.Dispatcher().addEventListener("tick2",this._tick2Func),this._isTicking2=!0)}_StopTicking2(){this._isTicking2&&(this._runtime.Dispatcher().removeEventListener("tick2",this._tick2Func),this._isTicking2=!1)}IsTicking2(){return this._isTicking2}GetDebuggerProperties(){return[]}SaveToJson(){return null}LoadFromJson(){}LoadTilemapData(){}TestPointOverlapTile(){}GetPropertyValueByIndex(){}SetPropertyValueByIndex(){}SetPropertyOffsetValueByIndex(){}SetPropertyColorOffsetValueByIndex(){}CallAction(a,...b){a.call(this,...b)}CallExpression(a,...b){return a.call(this,...b)}}; + +// c3/sdk/sdkWorldInstanceBase.js +"use strict";C3.SDKWorldInstanceBase=class extends C3.SDKInstanceBase{constructor(a,b){super(a,b),this._worldInfo=a.GetWorldInfo(),this._webglcontextlost_handler=null,this._webglcontextrestored_handler=null}Release(){if(this._webglcontextlost_handler){const a=this._runtime.Dispatcher();a.removeEventListener("webglcontextlost",this._webglcontextlost_handler),a.removeEventListener("webglcontextrestored",this._webglcontextrestored_handler),this._webglcontextlost_handler=null,this._webglcontextrestored_handler=null}this._worldInfo=null,super.Release()}HandleWebGLContextLoss(){if(!this._webglcontextlost_handler){this._webglcontextlost_handler=()=>this.OnWebGLContextLost(),this._webglcontextrestored_handler=()=>this.OnWebGLContextRestored();const a=this._runtime.Dispatcher();a.addEventListener("webglcontextlost",this._webglcontextlost_handler),a.addEventListener("webglcontextrestored",this._webglcontextrestored_handler)}}OnWebGLContextLost(){}OnWebGLContextRestored(){}GetWorldInfo(){return this._worldInfo}}; + +// c3/sdk/sdkDOMInstanceBase.js +"use strict";{const a=C3.New(C3.Rect);C3.SDKDOMInstanceBase=class extends C3.SDKWorldInstanceBase{constructor(a,b){super(a,b),this._elementId=this.GetPlugin()._AddElement(this),this._isElementShowing=!0,this._autoFontSize=!1,this._lastRect=C3.New(C3.Rect,0,0,-1,-1);const c=this._runtime.GetCanvasManager();this._lastWindowWidth=c.GetLastWidth(),this._lastWindowHeight=c.GetLastHeight(),this._isPendingUpdateState=!1,this._StartTicking()}Release(){this.GetPlugin()._RemoveElement(this._elementId),this.PostToDOMElement("destroy"),this._elementId=-1,super.Release()}PostToDOMElement(a,b){b||(b={}),b["elementId"]=this._elementId,this.PostToDOM(a,b)}PostToDOMElementAsync(a,b){return b||(b={}),b["elementId"]=this._elementId,this.PostToDOMAsync(a,b)}CreateElement(a){a||(a={});const b=this.GetWorldInfo().IsVisible();a["elementId"]=this._elementId,a["isVisible"]=b,Object.assign(a,this.GetElementState()),this._isElementShowing=!!a["isVisible"],this.PostToDOM("create",a),this._UpdatePosition(!0)}SetElementVisible(a){a=!!a;this._isElementShowing===a||(this._isElementShowing=a,this.PostToDOMElement("set-visible",{"isVisible":a}))}Tick(){this._UpdatePosition(!1)}_UpdatePosition(b){var c=Math.round;const d=this.GetWorldInfo(),e=d.GetLayer(),f=d.GetX(),g=d.GetY();let[h,i]=e.LayerToCanvasCss(f,g),[j,k]=e.LayerToCanvasCss(f+d.GetWidth(),g+d.GetHeight());const l=this._runtime.GetCanvasManager(),m=l.GetCssWidth(),n=l.GetCssHeight();if(!d.IsVisible()||!e.IsVisible()||0>=j||0>=k||h>=m||i>=n)return void this.SetElementVisible(!1);1>h&&(h=1),1>i&&(i=1),j>=m&&(j=m-1),k>=n&&(k=n-1),a.set(h,i,j,k);const o=l.GetLastWidth(),p=l.GetLastHeight();if(!b&&a.equals(this._lastRect)&&this._lastWindowWidth===o&&this._lastWindowHeight===p)return void this.SetElementVisible(!0);this._lastRect.copy(a),this._lastWindowWidth=o,this._lastWindowHeight=p,this.SetElementVisible(!0);let q=null;this._autoFontSize&&(q=e.GetDisplayScale()-.2),this.PostToDOMElement("update-position",{"left":c(this._lastRect.getLeft())+l.GetCanvasClientX(),"top":c(this._lastRect.getTop())+l.GetCanvasClientY(),"width":c(this._lastRect.width()),"height":c(this._lastRect.height()),"fontSize":q})}FocusElement(){this.PostToDOMElement("focus",{"focus":!0})}BlurElement(){this.PostToDOMElement("focus",{"focus":!1})}SetElementCSSStyle(a,b){this.PostToDOMElement("set-css-style",{"prop":C3.CSSToCamelCase(a),"val":b})}UpdateElementState(){this._isPendingUpdateState||(this._isPendingUpdateState=!0,Promise.resolve().then(()=>{this._isPendingUpdateState=!1,this.PostToDOMElement("update-state",this.GetElementState())}))}GetElementState(){}GetElementId(){return this._elementId}}} + +// c3/sdk/sdkBehaviorBase.js +"use strict";C3.SDKBehaviorBase=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.runtime,this._myObjectClasses=C3.New(C3.ArraySet),this._myInstances=C3.New(C3.ArraySet)}Release(){this._myInstances.Release(),this._myObjectClasses.Release(),this._runtime=null}GetRuntime(){return this._runtime}OnCreate(){}_AddObjectClass(a){this._myObjectClasses.Add(a)}GetObjectClasses(){return this._myObjectClasses.GetArray()}_AddInstance(a){this._myInstances.Add(a)}_RemoveInstance(a){this._myInstances.Delete(a)}GetInstances(){return this._myInstances.GetArray()}}; + +// c3/sdk/sdkBehaviorTypeBase.js +"use strict";C3.SDKBehaviorTypeBase=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.GetRuntime(),this._behaviorType=a,this._objectClass=a.GetObjectClass(),this._behavior=a.GetBehavior(),this._behavior._AddObjectClass(this._objectClass)}Release(){this._runtime=null,this._behaviorType=null,this._objectClass=null,this._behavior=null}GetBehaviorType(){return this._behaviorType}GetObjectClass(){return this._objectClass}GetRuntime(){return this._runtime}GetBehavior(){return this._behavior}}; + +// c3/sdk/sdkBehaviorInstanceBase.js +"use strict";C3.SDKBehaviorInstanceBase=class extends C3.DefendedBase{constructor(a,b){super(),this._behInst=a,this._domComponentId=b,this._inst=a.GetObjectInstance(),this._runtime=a.GetRuntime(),this._behaviorType=a.GetBehaviorType(),this._sdkType=this._behaviorType.GetSdkType(),this._isTicking=!1,this._isTicking2=!1,this._isPostTicking=!1,this._disposables=null}Release(){this._StopTicking(),this._StopTicking2(),this._StopPostTicking(),this._disposables&&(this._disposables.Release(),this._disposables=null),this._behInst=null,this._inst=null,this._runtime=null,this._behaviorType=null,this._sdkType=null}GetBehavior(){return this._behaviorType.GetBehavior()}GetBehaviorInstance(){return this._behInst}GetObjectInstance(){return this._inst}GetObjectClass(){return this._inst.GetObjectClass()}GetWorldInfo(){return this._inst.GetWorldInfo()}GetRuntime(){return this._runtime}GetBehaviorType(){return this._behaviorType}GetSdkType(){return this._sdkType}Trigger(a){return this._runtime.Trigger(a,this._inst)}DebugTrigger(a){return this._runtime.DebugTrigger(a,this._inst)}TriggerAsync(a){return this._runtime.TriggerAsync(a,this._inst)}PostCreate(){}Tick(){}Tick2(){}PostTick(){}_StartTicking(){this._isTicking||(this._runtime._AddBehInstToTick(this),this._isTicking=!0)}_StopTicking(){this._isTicking&&(this._runtime._RemoveBehInstToTick(this),this._isTicking=!1)}IsTicking(){return this._isTicking}_StartTicking2(){this._isTicking2||(this._runtime._AddBehInstToTick2(this),this._isTicking2=!0)}_StopTicking2(){this._isTicking2&&(this._runtime._RemoveBehInstToTick2(this),this._isTicking2=!1)}IsTicking2(){return this._isTicking2}_StartPostTicking(){this._isPostTicking||(this._runtime._AddBehInstToPostTick(this),this._isPostTicking=!0)}_StopPostTicking(){this._isPostTicking&&(this._runtime._RemoveBehInstToPostTick(this),this._isPostTicking=!1)}IsPostTicking(){return this._isPostTicking}GetDebuggerProperties(){return[]}AddDOMMessageHandler(a,b){this._runtime.AddDOMComponentMessageHandler(this._domComponentId,a,b)}OnSpriteFrameChanged(){}SaveToJson(){return null}LoadFromJson(){}GetPropertyValueByIndex(){}SetPropertyValueByIndex(){}SetPropertyOffsetValueByIndex(){}SetPropertyColorOffsetValueByIndex(){}CallAction(a,...b){a.call(this,...b)}CallExpression(a,...b){return a.call(this,...b)}}; + +// c3/objects/pluginManager.js +"use strict";C3.Plugins={},C3.Behaviors={},C3.PluginManager=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a,this._allPlugins=[],this._pluginsByCtor=new Map,this._systemPlugin=null,this._allBehaviors=[],this._behaviorsByCtor=new Map,this._solidBehavior=null,this._jumpthruBehavior=null}CreatePlugin(a){const b=this._runtime.GetObjectReference(a[0]);if(!b)throw new Error("missing plugin");C3.AddCommonACEs(a,b);const c=C3.New(b,{runtime:this._runtime,isSingleGlobal:a[1],isWorld:a[2],isRotatable:a[5],hasEffects:a[8],mustPredraw:a[9]});c.OnCreate(),this._allPlugins.push(c),this._pluginsByCtor.set(b,c)}CreateSystemPlugin(){this._systemPlugin=C3.New(C3.Plugins.System,{runtime:this._runtime,isSingleGlobal:!0}),this._systemPlugin.OnCreate()}CreateBehavior(a){const b=this._runtime.GetObjectReference(a[1]);if(!b)throw new Error("missing behavior");const c=C3.New(b,{runtime:this._runtime});c.OnCreate(),this._allBehaviors.push(c),this._behaviorsByCtor.set(b,c),!this._solidBehavior&&C3.Behaviors.solid&&c instanceof C3.Behaviors.solid?this._solidBehavior=c:!this._jumpthruBehavior&&C3.Behaviors.jumpthru&&c instanceof C3.Behaviors.jumpthru&&(this._jumpthruBehavior=c)}GetPluginByConstructorFunction(a){return this._pluginsByCtor.get(a)||null}HasBehaviorByConstructorFunction(a){return this._behaviorsByCtor.has(a)}GetBehaviorByConstructorFunction(a){return this._behaviorsByCtor.get(a)||null}GetSystemPlugin(){return this._systemPlugin}GetSolidBehavior(){return this._solidBehavior}GetJumpthruBehavior(){return this._jumpthruBehavior}}; + +// c3/objects/imageInfo.js +"use strict";{const a=new Set;C3.ImageInfo=class extends C3.DefendedBase{constructor(){super(),this._url="",this._size=0,this._pixelFormat=0,this._offsetX=0,this._offsetY=0,this._width=0,this._height=0,this._hasMetaData=!1,this._imageAsset=null,this._textureState="",this._rcTex=C3.New(C3.Rect),a.add(this)}Release(){this.ReleaseTexture(),this._imageAsset=null,a.delete(this)}static OnWebGLContextLost(){for(const b of a)b._textureState="",b._rcTex.set(0,0,0,0)}LoadData(a){this._url=a[0],this._size=a[1],this._pixelFormat=a[2],this._offsetX=a[3],this._offsetY=a[4],this._width=a[5],this._height=a[6],this._hasMetaData=!0}LoadAnimationFrameData(a){this._url=a[0],this._size=a[1],this._offsetX=a[2],this._offsetY=a[3],this._width=a[4],this._height=a[5],this._pixelFormat=a[11],this._hasMetaData=!0}LoadDynamicAsset(a,b){if(this._imageAsset)throw new Error("already loaded asset");this._url=b;const c={};return C3.IsAbsoluteURL(b)&&(c.loadPolicy="remote"),this.LoadAsset(a,c),this._imageAsset.Load()}ReplaceWith(a){if(a===this)throw new Error("cannot replace with self");this.ReleaseTexture(),this._url=a._url,this._size=a._size,this._pixelFormat=a._pixelFormat,this._offsetX=a._offsetX,this._offsetY=a._offsetY,this._width=a._width,this._height=a._height,this._hasMetaData=a._hasMetaData,this._imageAsset=a._imageAsset,this._textureState=a._textureState,this._rcTex=a._rcTex}GetURL(){return this._url}GetSize(){return this._size}GetPixelFormat(){return this._pixelFormat}GetOffsetX(){return this._offsetX}GetOffsetY(){return this._offsetY}GetWidth(){return this._width}GetHeight(){return this._height}GetSheetWidth(){return this._imageAsset.GetWidth()}GetSheetHeight(){return this._imageAsset.GetHeight()}LoadAsset(a,b){if(this._imageAsset)throw new Error("already got asset");b=Object.assign({},b,{url:this.GetURL(),size:this.GetSize()}),this._imageAsset=a.LoadImage(b)}async LoadStaticTexture(a,b){if(!this._imageAsset)throw new Error("no asset");if(this._textureState)throw new Error("already loaded texture");this._textureState="loading";const c=await this._imageAsset.LoadStaticTexture(a,b);return c?(this._textureState="loaded",this._hasMetaData||(this._width=c.GetWidth(),this._height=c.GetHeight(),this._hasMetaData=!0),this._rcTex.set(this._offsetX,this._offsetY,this._offsetX+this._width,this._offsetY+this._height),this._rcTex.divide(c.GetWidth(),c.GetHeight()),c):(this._textureState="",null)}ReleaseTexture(){this._textureState&&(this._imageAsset&&this._imageAsset.ReleaseTexture(),this._textureState="",this._rcTex.set(0,0,0,0))}GetTexture(){return this._imageAsset?this._imageAsset.GetTexture():null}GetTexRect(){return this._rcTex}async ExtractImageToCanvas(){const a=await this._imageAsset.LoadToDrawable(),b=C3.CreateCanvas(this._width,this._height),c=b.getContext("2d");return c.drawImage(a,this._offsetX,this._offsetY,this._width,this._height,0,0,this._width,this._height),b}}} + +// c3/objects/animationInfo.js +"use strict";C3.AnimationInfo=class extends C3.DefendedBase{constructor(a){super(),this._name=a[0],this._speed=a[1],this._isLooping=!!a[2],this._repeatCount=a[3],this._repeatTo=a[4],this._isPingPong=!!a[5],this._sid=a[6],this._frames=a[7].map((a)=>C3.New(C3.AnimationFrameInfo,a))}Release(){for(const a of this._frames)a.Release();C3.clearArray(this._frames)}LoadAllAssets(a){for(const b of this._frames)b.GetImageInfo().LoadAsset(a)}LoadAllTextures(a,b){return Promise.all(this._frames.map((c)=>c.GetImageInfo().LoadStaticTexture(a,b)))}ReleaseAllTextures(){for(const a of this._frames)a.GetImageInfo().ReleaseTexture()}GetName(){return this._name}GetSID(){return this._sid}GetFrameCount(){return this._frames.length}GetFrames(){return this._frames}GetFrameAt(a){if(a=Math.floor(a),0>a||a>=this._frames.length)throw new RangeError("invalid frame");return this._frames[a]}GetSpeed(){return this._speed}IsLooping(){return this._isLooping}GetRepeatCount(){return this._repeatCount}GetRepeatTo(){return this._repeatTo}IsPingPong(){return this._isPingPong}}; + +// c3/objects/animationFrameInfo.js +"use strict";C3.AnimationFrameInfo=class extends C3.DefendedBase{constructor(a){super(),this._imageInfo=C3.New(C3.ImageInfo),this._imageInfo.LoadAnimationFrameData(a),this._duration=a[6],this._origin=C3.New(C3.Vector2,a[7],a[8]),this._imagePoints=a[9].map((a)=>C3.New(C3.ImagePoint,this,a)),this._imagePointsByName=new Map;for(const b of this._imagePoints)this._imagePointsByName.set(b.GetName().toLowerCase(),b);this._collisionPoly=null;const b=a[10];6<=b.length&&(this._collisionPoly=C3.New(C3.CollisionPoly,b))}Release(){this._collisionPoly&&(this._collisionPoly.Release(),this._collisionPoly=null),this._imageInfo.Release(),this._imageInfo=null}GetImageInfo(){return this._imageInfo}GetDuration(){return this._duration}GetOriginX(){return this._origin.getX()}GetOriginY(){return this._origin.getY()}GetCollisionPoly(){return this._collisionPoly}GetImagePointByName(a){return this._imagePointsByName.get(a.toLowerCase())||null}GetImagePointByIndex(a){return a=Math.floor(a),0>a||a>=this._imagePoints.length?null:this._imagePoints[a]}GetImagePointCount(){return this._imagePoints.length}}; + +// c3/objects/imagePoint.js +"use strict";C3.ImagePoint=class extends C3.DefendedBase{constructor(a,b){super(),this._afi=a,this._name=b[0],this._pos=C3.New(C3.Vector2,b[1],b[2])}Release(){}GetName(){return this._name}GetX(){return this._pos.getX()}GetY(){return this._pos.getY()}GetVec2(){return this._pos}}; + +// c3/objects/objectClass.js +"use strict";C3.ObjectClass=class extends C3.DefendedBase{constructor(a,b,c){super();const d=a.GetObjectReference(c[1]);if(this._runtime=a,this._plugin=a.GetPluginManager().GetPluginByConstructorFunction(d),this._sdkType=null,this._instSdkCtor=d.Instance,this._index=b,this._sid=c[11],this._name=c[0],this._isGlobal=!!c[9],this._isFamily=!!c[2],this._isOnLoaderLayout=!!c[10],this._instVarSids=c[3].map((a)=>a[0]),this._instVarTypes=c[3].map((a)=>a[1]),this._instVarNames=null,a.IsPreview()&&(this._instVarNames=c[3].map((a)=>a[2])),this._behaviorsCount=c[4],this._effectsCount=c[5],this._isWorldType=this._plugin.IsWorldType(),this._effectList=null,this._collisionGrid=C3.New(C3.SparseGrid,a.GetOriginalViewportWidth(),a.GetOriginalViewportHeight()),this._anyCollisionCellChanged=!0,this._anyInstanceParallaxed=!1,this._familyMembers=null,this._familyMembersSet=null,this._familyIndex=-1,this._families=null,this._familiesSet=null,this._familyInstVarMap=null,this._familyBehaviorMap=null,this._familyEffectMap=null,this._isInContainer=!1,this._container=null,this._behaviorTypes=c[8].map((a)=>C3.BehaviorType.Create(this,a)),this._behaviorTypesIncludingInherited=[],this._behaviorsByName=new Map,this._behaviorNameToIndex=new Map,this._usedBehaviorCtors=new Set,this._solStack=C3.New(C3.SolStack,this),this._defaultInstanceData=null,this._defaultLayerIndex=0,this._isContained=!1,this._container=null,this._imageInfo=null,this._animations=null,this._animationsByName=null,this._animationsBySid=null,this._textureRefCount=0,this._savedData=new Map,this._unsavedData=new Map,this._instances=[],this._iidsStale=!0,this._plugin.HasEffects()&&(this._effectList=C3.New(C3.EffectList,this,c[12])),c[6]&&(this._imageInfo=C3.New(C3.ImageInfo),this._imageInfo.LoadData(c[6])),c[7]){this._animations=c[7].map((a)=>C3.New(C3.AnimationInfo,a)),this._animationsByName=new Map,this._animationsBySid=new Map;for(const a of this._animations)this._animationsByName.set(a.GetName().toLowerCase(),a),this._animationsBySid.set(a.GetSID(),a)}this._isFamily?(this._familyMembers=[],this._familyMembersSet=new Set,this._familyIndex=this._runtime._GetNextFamilyIndex()):(this._families=[],this._familiesSet=new Set,this._familyInstVarMap=[],this._familyBehaviorMap=[],this._familyEffectMap=[]),this._sdkType=C3.New(d.Type,this),c[13]&&c[13].length&&this._sdkType.LoadTilePolyData(c[13]),(!this._runtime.UsesLoaderLayout()||this._isFamily||this._isOnLoaderLayout||!this._isWorldType)&&this.OnCreate(),this._plugin.IsSingleGlobal()&&(this._plugin._SetSingleGlobalObjectClass(this),this._CreateSingleGlobalInstance(c))}static Create(a,b,c){return C3.New(C3.ObjectClass,a,b,c)}Release(){if(this._imageInfo&&(this._imageInfo.Release(),this._imageInfo=null),this._animations){for(const b of this._animations)b.Release();C3.clearArray(this._animations),this._animationsByName.clear(),this._animationsBySid.clear()}this._solStack.Release(),this._solStack=null,this._savedData.clear(),this._unsavedData.clear(),this._container=null,this._runtime=null}_LoadFamily(a){for(let b=1,c=a.length;bthis._textureRefCount)throw new Error("released textures too many times");0===this._textureRefCount&&this._sdkType.ReleaseTextures()}}OnDynamicTextureLoadComplete(){if(this._isFamily)throw new Error("not applicable to family");this._sdkType.OnDynamicTextureLoadComplete()}GetRuntime(){return this._runtime}GetPlugin(){return this._plugin}GetInstanceSdkCtor(){return this._instSdkCtor}GetName(){return this._name}GetIndex(){return this._index}GetSID(){return this._sid}IsFamily(){return this._isFamily}IsGlobal(){return this._isGlobal}IsWorldType(){return this._isWorldType}GetFamilyIndex(){return this._familyIndex}GetBehaviorTypes(){return this._behaviorTypes}GetBehaviorTypesCount(){return this._behaviorsCount}UsesBehaviorByCtor(a){return a&&this._usedBehaviorCtors.has(a)}GetInstanceVariablesCount(){return this._instVarSids.length}GetInstanceVariableSIDs(){return this._instVarSids}GetInstanceVariableIndexBySID(a){return this._instVarSids.indexOf(a)}_GetAllInstanceVariableNames(){return this._instVarNames}GetInstanceVariableType(a){if(a=Math.floor(a),0>a||a>=this._instVarTypes.length)throw new RangeError("invalid instance variable index");return this._instVarTypes[a]}GetEffectTypesCount(){return this._effectsCount}GetBehaviorTypesIncludingInherited(){return this._behaviorTypesIncludingInherited}GetBehaviorTypeByName(a){return this._behaviorsByName.get(a.toLowerCase())||null}GetBehaviorIndexByName(a){const b=this._behaviorNameToIndex.get(a.toLowerCase());return"undefined"==typeof b?-1:b}GetEffectList(){return this._effectList}HasEffects(){return this._plugin.HasEffects()}GetSolStack(){return this._solStack}GetCurrentSol(){return this._solStack.GetCurrentSol()}GetImageInfo(){return this._imageInfo}SetDefaultInstanceData(a){this._defaultInstanceData=a}GetDefaultInstanceData(){return this._defaultInstanceData}_SetDefaultLayerIndex(a){this._defaultLayerIndex=a}GetDefaultLayerIndex(){return this._defaultLayerIndex}GetAnimations(){return this._animations}GetAnimationCount(){return this._animations.length}GetFamilies(){return this._families}BelongsToFamily(a){return this._familiesSet.has(a)}GetFamilyMembers(){return this._familyMembers}FamilyHasMember(a){return this._familyMembersSet.has(a)}GetFamilyBehaviorOffset(a){return this._familyBehaviorMap[a]}GetFamilyInstanceVariableOffset(a){return this._familyInstVarMap[a]}GetAnimationByName(a){if(!this._animations)throw new Error("no animations");return this._animationsByName.get(a.toLowerCase())||null}GetAnimationBySID(a){if(!this._animations)throw new Error("no animations");return this._animationsBySid.get(a)||null}GetFirstAnimationFrame(){if(!this._animations)throw new Error("no animations");return this._animations[0].GetFrameAt(0)}GetDefaultInstanceSize(){if(this._animations){const a=this.GetFirstAnimationFrame().GetImageInfo();return[a.GetWidth(),a.GetHeight()]}return this._imageInfo?[this._imageInfo.GetWidth(),this._imageInfo.GetHeight()]:[100,100]}GetSingleGlobalInstance(){if(!this._plugin.IsSingleGlobal())throw new Error("not a single-global plugin");return this._instances[0]}GetInstances(){return this._instances}GetInstanceCount(){return this._instances.length}_AddInstance(a){this._instances.push(a)}_SetIIDsStale(){this._iidsStale=!0}_UpdateIIDs(){if(this._iidsStale&&!this._isFamily){const a=this._instances;let b=0;for(let c=a.length;ba.SaveToJson())};return this._savedData&&this._savedData.size&&(a["ex"]=C3.ToSuperJSON(this._savedData)),a}_LoadFromJson(a){this._savedData&&(this._savedData.clear(),this._savedData=null);const b=a["ex"];b&&(this._savedData=C3.FromSuperJSON(b));const c=this._instances,d=a["instances"];for(let b=0,e=Math.min(c.length,d.length);ba.IsWorldType())}}; + +// c3/objects/instance.js +"use strict";{let a=0;C3.Instance=class extends C3.DefendedBase{constructor(b){if(super(),this._runtime=b.runtime,this._objectType=b.objectType,this._plugin=this._objectType.GetPlugin(),this._mustPreDraw=this._plugin.MustPreDraw(),this._iid=0,this._uid=b.uid,this._puid=0,this._sequenceId=a++,this._isDestroyed=!1,this._instVarValues=[],this._behaviorInstances=this._objectType.GetBehaviorTypesIncludingInherited().map((a,b)=>C3.New(C3.BehaviorInstance,{runtime:this._runtime,behaviorType:a,instance:this,index:b})),this._worldInfo=null,this._timeScale=-1,this._sdkInst=null,this._savedData=null,this._unsavedData=null,this._hasTilemap=!1,this._isInContainer=this._objectType.IsInContainer(),this._siblings=this._isInContainer?[]:null,this._dispatcher=null,this._plugin.IsWorldType())if(this._worldInfo=C3.New(C3.WorldInfo,this,b.layer),b.worldData)this._worldInfo.Init(b.worldData);else{const[a,b]=this._objectType.GetDefaultInstanceSize();this._worldInfo.SetSize(a,b),this._worldInfo.GetInstanceEffectList().LoadDefaultEffectParameters()}b.instVarData?this._LoadInstanceVariableData(b.instVarData):this._LoadDefaultInstanceVariables()}Release(){for(const a of this._behaviorInstances)a.Release();C3.clearArray(this._behaviorInstances),this._sdkInst.Release(),this._sdkInst=null,this._savedData&&this._savedData.clear(),this._unsavedData&&this._unsavedData.clear(),this._siblings&&C3.clearArray(this._siblings),this._dispatcher&&(this._dispatcher.Release(),this._dispatcher=null),this._runtime=null,this._objectType=null,this._plugin=null,C3.clearArray(this._instVarValues),this._worldInfo&&(this._worldInfo.Release(),this._worldInfo=null)}_LoadInstanceVariableData(a){C3.shallowAssignArray(this._instVarValues,a)}_LoadDefaultInstanceVariables(){const a=[0,0,""];for(let b=0,c=this._objectType.GetInstanceVariablesCount();ba||!isFinite(a))&&(a=0),this._timeScale=a}RestoreTimeScale(){this._timeScale=-1}MustPreDraw(){return this._mustPreDraw}Dispatcher(){return this._dispatcher||(this._dispatcher=C3.New(C3.Event.Dispatcher)),this._dispatcher}Draw(a){this._sdkInst.Draw(a)}OnCreate(a){this._sdkInst.OnCreate(a)}_SetHasTilemap(){this._hasTilemap=!0}HasTilemap(){return this._hasTilemap}GetCurrentImageInfo(){return this._sdkInst.GetCurrentImageInfo()}GetImagePoint(a){return this._sdkInst.GetImagePoint(a)}GetObjectClass(){return this._objectType}BelongsToObjectClass(a){return a.IsFamily()?a.FamilyHasMember(this.GetObjectClass()):this.GetObjectClass()===a}IsInContainer(){return this._isInContainer}_AddSibling(a){this._siblings.push(a)}GetSiblings(){return this._siblings}siblings(){return this._siblings}SetSiblingsSinglePicked(){for(const a of this.siblings())a.GetObjectClass().GetCurrentSol().SetSinglePicked(a)}_PushSiblingsToSolInstances(){for(const a of this.siblings())a.GetObjectClass().GetCurrentSol()._PushInstance(a)}_SetSiblingsToSolInstancesIndex(a){for(const b of this.siblings())b.GetObjectClass().GetCurrentSol()._GetOwnInstances()[a]=b}_PushSiblingsToSolElseInstances(){for(const a of this.siblings())a.GetObjectClass().GetCurrentSol()._PushElseInstance(a)}_SetSiblingsToSolElseInstancesIndex(a){for(const b of this.siblings())b.GetObjectClass().GetCurrentSol()._GetOwnElseInstances()[a]=b}GetPlugin(){return this._plugin}_SetIID(a){this._iid=a}GetIID(){return this._objectType._UpdateIIDs(),this._iid}GetUID(){return this._uid}_GetSequenceID(){return this._sequenceId}GetBehaviorInstances(){return this._behaviorInstances}GetBehaviorInstanceFromCtor(a){if(!a)return null;for(const b of this._behaviorInstances)if(b.GetBehavior()instanceof a)return b;return null}GetBehaviorSdkInstanceFromCtor(a){if(!a)return null;const b=this.GetBehaviorInstanceFromCtor(a);return b?b.GetSdkInstance():null}GetBehaviorIndexBySID(a){const b=this._behaviorInstances;for(let c=0,d=b.length;ca||a>=b.length)throw new RangeError("invalid instance variable");return b[a]}_GetInstanceVariableValueUnchecked(a){return this._instVarValues[a]}SetInstanceVariableValue(a,b){a|=0;const c=this._instVarValues;if(0>a||a>=c.length)throw new RangeError("invalid instance variable");const d=c[a];if("number"==typeof d)c[a]="number"==typeof b?b:parseFloat(b);else if("boolean"==typeof d)c[a]="boolean"==typeof b?b:!!b;else if("string"==typeof d)c[a]="string"==typeof b?b:b.toString();else throw new Error("unknown instance variable type")}SetInstanceVariableOffset(a,b){if(0!==b){a|=0;const c=this._instVarValues;if(0>a||a>=c.length)throw new RangeError("invalid instance variable");const d=c[a];if("number"==typeof d)c[a]+="number"==typeof b?b:parseFloat(b);else if("boolean"==typeof d)throw new Error("can not set offset of boolean variable");else if("string"==typeof d)throw new Error("can not set offset of string variable");else throw new Error("unknown instance variable type")}}GetSavedDataMap(){return this._savedData||(this._savedData=new Map),this._savedData}GetUnsavedDataMap(){return this._unsavedData||(this._unsavedData=new Map),this._unsavedData}_TriggerOnCreated(){this._runtime.Trigger(this.GetPlugin().constructor.Cnds.OnCreated,this)}_TriggerOnDestroyed(){this._runtime.Trigger(this.GetPlugin().constructor.Cnds.OnDestroyed,this)}_MarkDestroyed(){this._isDestroyed=!0}IsDestroyed(){return this._isDestroyed}_GetDebuggerProperties(){return this._sdkInst.GetDebuggerProperties()}SaveToJson(a){const b={};if(a?b["c3"]=!0:b["uid"]=this.GetUID(),this._savedData&&this._savedData.size&&(b["ex"]=C3.ToSuperJSON(this._savedData)),-1!==this.GetTimeScale()&&(b["mts"]=this.GetTimeScale()),0d||d>=this._instVarValues.length)continue;let e=b;null===e&&(e=NaN),this._instVarValues[d]=e}if(this._plugin.IsWorldType()){const c=a["w"],d=c["l"];if(this._worldInfo.GetLayer().GetSID()!==d){const a=this._worldInfo.GetLayer(),c=a.GetLayout().GetLayerBySID(d);c?(this._worldInfo._SetLayer(c),a._RemoveInstance(this,!0),c._AddInstance(this,!0),c.SetZIndicesChanged(),this._worldInfo.SetBboxChanged()):!b&&this._runtime.DestroyInstance(this)}this._worldInfo._LoadFromJson(c)}const e=a["behs"];if(e)for(const[a,b]of Object.entries(e)){const c=parseInt(a,10),d=this.GetBehaviorIndexBySID(c);0>d||d>=this._behaviorInstances.length||this._behaviorInstances[d].LoadFromJson(b)}const f=a["data"];f&&this._sdkInst.LoadFromJson(f)}}} + +// c3/objects/worldInfo.js +"use strict";{const a=C3.New(C3.Rect),b=C3.New(C3.Rect),c=C3.New(C3.Event,"bboxchange",!1);C3.WorldInfo=class extends C3.DefendedBase{constructor(a,b){super(),this._inst=a,this._objectClass=a.GetObjectClass(),this._runtime=a.GetRuntime(),this._layer=b,this._zIndex=-1,this._isVisible=!0,this._x=0,this._y=0,this._zElevation=0,this._w=0,this._h=0,this._a=0,this._sinA=0,this._cosA=1,this._ox=0,this._oy=0,this._bboxChanged=!0,this._boundingBox=new C3.Rect,this._boundingQuad=new C3.Quad,this._enableBboxChangeEvent=!1,this._isCollisionEnabled=!0,this._isCollisionCellChanged=!0,this._collisionCells=C3.New(C3.Rect,0,0,-1,-1),this._renderCells=C3.New(C3.Rect,0,0,-1,-1),this._sourceCollisionPoly=null,this._transformedCollisionPoly=C3.New(C3.CollisionPoly),this._polyWidth=-1,this._polyHeight=-1,this._polyAngle=0,this._solidFilterInclusive=!1,this._solidFilterTags=null,this._color=C3.New(C3.Color,1,1,1,1),this._colorPremultiplied=C3.New(C3.Color,1,1,1,1),this._hasDefaultColor=!0,this._blendMode=-1,this._srcBlend=0,this._destBlend=0,this._stateGroup=null,this._instanceEffectList=null,this._hasAnyActiveEffect=!1,this._inst.GetObjectClass().HasEffects()&&(this._instanceEffectList=C3.New(C3.InstanceEffectList,this._inst,this)),this.SetBlendMode(0)}Release(){this._stateGroup&&(this._runtime.GetWebGLRenderer().ReleaseStateGroup(this._stateGroup),this._stateGroup=null),this._sourceCollisionPoly=null,this._transformedCollisionPoly.Release(),this._transformedCollisionPoly=null,this._solidFilterTags&&(this._solidFilterTags.clear(),this._solidFilterTags=null),this._inst=null,this._objectClass=null,this._runtime=null,this._layer=null}Init(a){this.SetX(a[0]),this.SetY(a[1]),this.SetZElevation(a[2]),this.SetWidth(a[3]),this.SetHeight(a[4]),this.SetAngle(a[6]),this._color.setFromJSON(a[7]),this.SetOriginX(a[8]),this.SetOriginY(a[9]),this.SetBlendMode(a[10]),this._instanceEffectList&&this._instanceEffectList._LoadEffectParameters(a[12]),this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup()}GetInstance(){return this._inst}SetX(a){this._x=+a}OffsetX(a){this._x+=+a}GetX(){return this._x}SetY(a){this._y=+a}OffsetY(a){this._y+=+a}GetY(){return this._y}SetXY(a,b){this._x=+a,this._y=+b}OffsetXY(a,b){this._x+=+a,this._y+=+b}EqualsXY(a,b){return this._x===a&&this._y===b}SetZElevation(a){if(a=+a,this._zElevation!==a){this._zElevation=a,this._UpdateWebGLStateGroup();const b=this.GetLayer();0!==this._zElevation&&b._SetAnyInstanceZElevated(),b.SetZIndicesChanged()}}GetZElevation(){return this._zElevation}GetTotalZElevation(){return this.GetLayer().GetZElevation()+this.GetZElevation()}SetWidth(a){this._w=+a}OffsetWidth(a){this._w+=+a}GetWidth(){return this._w}SetHeight(a){this._h=+a}OffsetHeight(a){this._h+=+a}GetHeight(){return this._h}SetSize(a,b){this._w=+a,this._h=+b}SetAngle(b){b=C3.clampAngle(+b);this._a===b||(this._a=b,this._sinA=Math.sin(b),this._cosA=Math.cos(b))}OffsetAngle(b){b=+b;0===b||this.SetAngle(this._a+b)}GetAngle(){return this._a}GetSinAngle(){return this._sinA}GetCosAngle(){return this._cosA}SetOriginX(a){this._ox=+a}OffsetOriginX(a){this._ox+=+a}GetOriginX(){return this._ox}SetOriginY(a){this._oy=+a}OffsetOriginY(a){this._oy+=+a}GetOriginY(){return this._oy}SetOpacity(a){a=C3.clamp(a,0,1);this._color.a===a||(this._color.a=a,this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}OffsetOpacity(a){if(0!==a){const b=this._color.a;this._color.a+=a,this._color.a===b||(this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}}GetOpacity(){return this._color.a}SetUnpremultipliedColor(a){this._color.equalsIgnoringAlpha(a)||(this._color.copyRgb(a),this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}SetUnpremultipliedColorRGB(a,c,d){const b=this._color;b.r===a&&b.g===c&&b.b===d||(b.r=a,b.g=c,b.b=d,this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}OffsetUnpremultipliedColorRGB(a,c,d){if(0!==a||0!==c||0!==d){const b=this._color,e=b.r,f=b.g,g=b.b;b.r+=a,b.g+=c,b.b+=d,b.r===e&&b.g===f&&b.b===g||(this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}}GetUnpremultipliedColor(){return this._color}_UpdatePremultipliedColor(){const a=this._color,b=this._colorPremultiplied;this._hasDefaultColor=a.equalsRgba(1,1,1,1),b.set(a),b.premultiply()}GetPremultipliedColor(){return this._colorPremultiplied}_UpdateWebGLStateGroup(){const a=this._runtime.GetWebGLRenderer();this._stateGroup&&a.ReleaseStateGroup(this._stateGroup),this._stateGroup=a.AcquireStateGroup(a.GetTextureFillShaderProgram()||"",this._srcBlend,this._destBlend,this._colorPremultiplied,this._zElevation)}GetWebGLStateGroup(){return this._stateGroup}HasDefaultColor(){return this._hasDefaultColor}SetBlendMode(a){if(this._blendMode!==a){this._blendMode=a;const b=this._runtime.GetWebGLRenderer();if(b){const c=b.GetBlendByIndex(a);this._srcBlend=c.srcBlend,this._destBlend=c.destBlend}this._UpdateWebGLStateGroup()}}GetBlendMode(){return this._blendMode}GetSrcBlend(){return this._srcBlend}GetDestBlend(){return this._destBlend}_SetLayer(a){this._layer=a,0!==this.GetZElevation()&&this._layer._SetAnyInstanceZElevated()}GetLayer(){return this._layer}GetLayout(){return this.GetLayer().GetLayout()}_SetZIndex(a){this._zIndex=0|a}GetZIndex(){return this._layer._UpdateZIndices(),this._zIndex}_GetLastCachedZIndex(){return this._zIndex}IsVisible(){return this._isVisible}SetVisible(a){this._isVisible=!!a}IsCollisionEnabled(){return this._isCollisionEnabled}SetCollisionEnabled(a){a=!!a;this._isCollisionEnabled===a||(this._isCollisionEnabled=a,a?this.SetBboxChanged():this._RemoveFromCollisionCells())}SetSolidCollisionFilter(a,b){if(this._solidFilterInclusive=!!a,this._solidFilterTags&&this._solidFilterTags.clear(),!b.trim())return void(this._solidFilterTags=null);this._solidFilterTags||(this._solidFilterTags=new Set);for(const c of b.split(" "))c&&this._solidFilterTags.add(c.toLowerCase())}IsSolidCollisionAllowed(a){const b=this._solidFilterInclusive,c=this._solidFilterTags;if(!a||!c)return!b;for(const d of c)if(a.has(d))return b;return!b}SetBboxChanged(){this._bboxChanged=!0,this._isCollisionCellChanged=!0,this._objectClass._SetAnyCollisionCellChanged(!0),this._runtime.UpdateRender(),this._layer.UsesRenderCells()&&(this._CalculateBbox(),this._UpdateRenderCell()),this._enableBboxChangeEvent&&this._inst.Dispatcher().dispatchEvent(c)}_CalculateBbox(){const a=this._boundingBox,b=this._boundingQuad,c=this._x,d=this._y,e=this._w,f=this._h;a.setWH(c-this._ox*e,d-this._oy*f,e,f),0===this._a?b.setFromRect(a):(a.offset(-c,-d),b.setFromRotatedRectPrecalc(a,this._sinA,this._cosA),b.offset(c,d),b.getBoundingBox(a)),a.normalize(),this._bboxChanged=!1}_UpdateBbox(){this._bboxChanged&&this._CalculateBbox()}GetBoundingBox(){return this._UpdateBbox(),this._boundingBox}GetBoundingQuad(){return this._UpdateBbox(),this._boundingQuad}OverwriteBoundingBox(a){this._boundingBox.copy(a),this._boundingQuad.setFromRect(this._boundingBox),this._bboxChanged=!1,this._UpdateCollisionCell(),this._UpdateRenderCell()}SetBboxChangeEventEnabled(a){this._enableBboxChangeEvent=!!a}IsBboxChangeEventEnabled(){return this._enableBboxChangeEvent}IsInViewport(a){return 0===this._zElevation?a.intersectsRect(this.GetBoundingBox()):this._IsInViewport_ZElevated()}_IsInViewport_ZElevated(){const a=this.GetLayer(),c=this.GetTotalZElevation();return!(c>=a.GetCameraZ())&&(a.GetViewportForZ(c,b),b.intersectsRect(this.GetBoundingBox()))}SetSourceCollisionPoly(a){this._sourceCollisionPoly=a,this._polyWidth=-1,this._polyHeight=-1,this._polyAngle=0}GetSourceCollisionPoly(){return this._sourceCollisionPoly}HasOwnCollisionPoly(){return!!this._sourceCollisionPoly}GetTransformedCollisionPoly(){return this._GetCustomTransformedCollisionPolyPrecalc(this.GetWidth(),this.GetHeight(),this.GetAngle(),this.GetSinAngle(),this.GetCosAngle())}GetCustomTransformedCollisionPoly(b,c,d){let a=0,e=1;return 0!==d&&(a=Math.sin(d),e=Math.cos(d)),this._GetCustomTransformedCollisionPolyPrecalc(b,c,d,a,e)}_GetCustomTransformedCollisionPolyPrecalc(b,c,d,a,e){return this._polyWidth===b&&this._polyHeight===c&&this._polyAngle===d?this._transformedCollisionPoly:(this._sourceCollisionPoly?(this._transformedCollisionPoly.copy(this._sourceCollisionPoly),this._transformedCollisionPoly.transformPrecalc(b,c,a,e)):this._transformedCollisionPoly.setFromQuad(this.GetBoundingQuad(),-this.GetX(),-this.GetY()),this._polyWidth=b,this._polyHeight=c,this._polyAngle=d,this._transformedCollisionPoly)}HasTilemap(){return this._inst.HasTilemap()}ContainsPoint(a,b){return!!this.GetBoundingBox().containsPoint(a,b)&&!!this.GetBoundingQuad().containsPoint(a,b)&&(this.HasTilemap()?this._inst.GetSdkInstance().TestPointOverlapTile(a,b):!this.HasOwnCollisionPoly()||this.GetTransformedCollisionPoly().containsPoint(a-this.GetX(),b-this.GetY()))}_UpdateCollisionCell(){if(this._isCollisionCellChanged&&this._isCollisionEnabled){const b=this.GetBoundingBox(),c=this._objectClass._GetCollisionCellGrid(),d=this._collisionCells;if(a.set(c.XToCell(b.getLeft()),c.YToCell(b.getTop()),c.XToCell(b.getRight()),c.YToCell(b.getBottom())),!d.equals(a)){const b=this._inst;d.getRight()=this._renderCells.getLeft()}GetRenderCellRange(){return this._renderCells}GetInstanceEffectList(){return this._instanceEffectList}_SetHasAnyActiveEffect(a){this._hasAnyActiveEffect=!!a}HasAnyActiveEffect(){return this._hasAnyActiveEffect}SaveGeometryState(){this._UpdateBbox();const a=this._boundingBox,b=this._boundingQuad;return[this._x,this._y,this._w,this._h,this._a,this._ox,this._oy,a.getLeft(),a.getTop(),a.getRight(),a.getBottom(),b.getTlx(),b.getTly(),b.getTrx(),b.getTry(),b.getBrx(),b.getBry(),b.getBlx(),b.getBly()]}RestoreGeometryState(a){this._x=a[0],this._y=a[1],this._w=a[2],this._h=a[3],this.SetAngle(a[4]),this._ox=a[5],this._oy=a[6],this._boundingBox.set(a[7],a[8],a[9],a[10]),this._boundingQuad.set(a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18]),this._bboxChanged=!1}_SaveToJson(){const a={"x":this.GetX(),"y":this.GetY(),"w":this.GetWidth(),"h":this.GetHeight(),"l":this.GetLayer().GetSID(),"zi":this.GetZIndex()};return 0!==this.GetZElevation()&&(a["ze"]=this.GetZElevation()),0!==this.GetAngle()&&(a["a"]=this.GetAngle()),1!==this.GetOpacity()&&(a["o"]=this.GetOpacity()),.5!==this.GetOriginX()&&(a["oX"]=this.GetOriginX()),.5!==this.GetOriginY()&&(a["oY"]=this.GetOriginY()),0!==this.GetBlendMode()&&(a["bm"]=this.GetBlendMode()),this.IsVisible()||(a["v"]=this.IsVisible()),this.IsCollisionEnabled()||(a["ce"]=this.IsCollisionEnabled()),this.IsBboxChangeEventEnabled()&&(a["be"]=this.IsBboxChangeEventEnabled()),this._instanceEffectList&&(a["fx"]=this._instanceEffectList._SaveToJson()),this._solidFilterInclusive&&(a["sfi"]=this._solidFilterInclusive),this._solidFilterTags&&(a["sft"]=[...this._solidFilterTags].join(" ")),a}_LoadFromJson(a){this.SetX(a["x"]),this.SetY(a["y"]),this.SetWidth(a["w"]),this.SetHeight(a["h"]),this._SetZIndex(a["zi"]),this.SetZElevation(a.hasOwnProperty("ze")?a["ze"]:0),this.SetAngle(a.hasOwnProperty("a")?a["a"]:0),this.SetOpacity(a.hasOwnProperty("o")?a["o"]:1),this.SetOriginX(a.hasOwnProperty("oX")?a["oX"]:.5),this.SetOriginY(a.hasOwnProperty("oY")?a["oY"]:.5),this.SetBlendMode(a.hasOwnProperty("bm")?a["bm"]:0),this.SetVisible(!a.hasOwnProperty("v")||a["v"]),this.SetCollisionEnabled(!a.hasOwnProperty("ce")||a["ce"]),this.SetBboxChangeEventEnabled(!!a.hasOwnProperty("be")&&a["be"]),this.SetSolidCollisionFilter(!!a.hasOwnProperty("sfi")&&a["sfi"],a.hasOwnProperty("sft")?a["sft"]:""),this._instanceEffectList&&a.hasOwnProperty("fx")&&this._instanceEffectList._LoadFromJson(a["fx"]),this.SetBboxChanged()}}} + +// c3/objects/behaviorType.js +"use strict";C3.BehaviorType=class extends C3.DefendedBase{constructor(a,b){super();const c=a.GetRuntime(),d=c.GetPluginManager(),e=c.GetObjectReference(b[1]);d.HasBehaviorByConstructorFunction(e)||d.CreateBehavior(b),this._runtime=c,this._objectClass=a,this._behavior=d.GetBehaviorByConstructorFunction(e),this._sdkType=null,this._instSdkCtor=e.Instance,this._sid=b[2],this._name=b[0],this._sdkType=C3.New(e.Type,this);this.OnCreate()}static Create(a,b){return C3.New(C3.BehaviorType,a,b)}Release(){this._runtime=null,this._behavior=null,this._sdkType.Release(),this._sdkType=null,this._instSdkCtor=null}GetSdkType(){return this._sdkType}OnCreate(){this._sdkType.OnCreate()}GetRuntime(){return this._runtime}GetObjectClass(){return this._objectClass}GetBehavior(){return this._behavior}GetInstanceSdkCtor(){return this._instSdkCtor}GetName(){return this._name}GetSID(){return this._sid}}; + +// c3/objects/behaviorInstance.js +"use strict";C3.BehaviorInstance=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.runtime,this._behaviorType=a.behaviorType,this._behavior=this._behaviorType.GetBehavior(),this._inst=a.instance,this._index=a.index,this._sdkInst=null,this._behavior._AddInstance(this._inst)}Release(){this._behavior._RemoveInstance(this._inst),this._sdkInst.Release(),this._sdkInst=null,this._runtime=null,this._behaviorType=null,this._behavior=null,this._inst=null}_CreateSdkInstance(a){if(this._sdkInst)throw new Error("already got sdk instance");this._sdkInst=C3.New(this._behaviorType.GetInstanceSdkCtor(),this,a)}GetSdkInstance(){return this._sdkInst}GetObjectInstance(){return this._inst}GetRuntime(){return this._runtime}GetBehaviorType(){return this._behaviorType}GetBehavior(){return this._behavior}_GetIndex(){return this._index}PostCreate(){this._sdkInst.PostCreate()}OnSpriteFrameChanged(a,b){this._sdkInst.OnSpriteFrameChanged(a,b)}_GetDebuggerProperties(){return this._sdkInst.GetDebuggerProperties()}SaveToJson(){return this._sdkInst.SaveToJson()}LoadFromJson(a){return this._sdkInst.LoadFromJson(a)}static SortByTickSequence(c,a){const b=c.GetObjectInstance(),d=a.GetObjectInstance(),e=b.GetObjectClass().GetIndex(),f=d.GetObjectClass().GetIndex();if(e!==f)return e-f;const g=b._GetSequenceID(),h=d._GetSequenceID();return g===h?c.GetBehaviorInstance()._GetIndex()-a.GetBehaviorInstance()._GetIndex():g-h}}; + +// c3/objects/effectList.js +"use strict";C3.EffectList=class extends C3.DefendedBase{constructor(a,b){super(),this._owner=a,this._allEffectTypes=[],this._activeEffectTypes=[],this._effectTypesByName=new Map,this._effectParams=[],this._preservesOpaqueness=!0;for(const c of b){const a=C3.New(C3.EffectType,this,c,this._allEffectTypes.length);this._allEffectTypes.push(a),this._effectTypesByName.set(a.GetName().toLowerCase(),a),3<=c.length&&this._effectParams.push(this._LoadSingleEffectParameters(c[2]))}this.GetRuntime()._AddEffectList(this)}Release(){C3.clearArray(this._allEffectTypes),C3.clearArray(this._activeEffectTypes),this._effectTypesByName.clear(),C3.clearArray(this._effectParams),this._owner=null}PrependEffectTypes(a){if(a.length){this._allEffectTypes=a.concat(this._allEffectTypes);for(const b of a)this._effectTypesByName.set(b.GetName().toLowerCase(),b);for(let a=0,b=this._allEffectTypes.length;a({"name":a.GetName(),"active":a.IsActive(),"params":C3.EffectList.SaveFxParamsToJson(this._effectParams[a.GetIndex()])}))}LoadFromJson(a){for(const b of a){const a=this.GetEffectTypeByName(b["name"]);a&&(a.SetActive(b["active"]),this._effectParams[a.GetIndex()]=C3.EffectList.LoadFxParamsFromJson(b["params"]))}this.UpdateActiveEffects()}}; + +// c3/objects/effectType.js +"use strict";C3.EffectType=class extends C3.DefendedBase{constructor(a,b,c){super(),this._effectList=a,this._id=b[0],this._name=b[1],this._index=c,this._shaderProgram=null,this._isActive=!0}Release(){this._effectList=null,this._shaderProgram=null}Clone(a){const b=C3.New(C3.EffectType,a,[this._id,this._name],-1);return b._shaderProgram=this._shaderProgram,b._isActive=this._isActive,b}_InitRenderer(a){const b=a.GetShaderProgramByName(this._id);if(!b)throw new Error("failed to find shader program '"+this._id+"'");this._shaderProgram=b}GetEffectList(){return this._effectList}GetName(){return this._name}_SetIndex(a){this._index=a}GetIndex(){return this._index}GetOwner(){return this._effectList.GetOwner()}GetRuntime(){return this._effectList.GetRuntime()}SetActive(b){this._isActive=!!b}IsActive(){return this._isActive}GetShaderProgram(){return this._shaderProgram}GetDefaultParameterValues(){const a=[];for(let b=0,c=this._shaderProgram.GetParameterCount();ba.GetShaderProgram().UsesDest())}IsEffectIndexActive(a){return this._activeEffectFlags[a]}SetEffectIndexActive(a,b){this._activeEffectFlags[a]=!!b}_SaveToJson(){return this._effectList.GetAllEffectTypes().map((a)=>({"name":a.GetName(),"active":this._activeEffectFlags[a.GetIndex()],"params":C3.EffectList.SaveFxParamsToJson(this._effectParams[a.GetIndex()])}))}_LoadFromJson(a){for(const b of a){const a=this._effectList.GetEffectTypeByName(b["name"]);a&&(this._activeEffectFlags[a.GetIndex()]=b["active"],this._effectParams[a.GetIndex()]=C3.EffectList.LoadFxParamsFromJson(b["params"]))}this.UpdateActiveEffects()}}; + +// c3/collisions/collisionEngine.js +"use strict";{const a=[],b=[],c=[],d=C3.New(C3.CollisionPoly),e=C3.New(C3.CollisionPoly),f=C3.New(C3.Quad),g=C3.New(C3.Rect),h=C3.New(C3.Rect);C3.CollisionEngine=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a,this._registeredCollisions=[],this._collisionCheckCount=0,this._collisionCheckSec=0,this._polyCheckCount=0,this._polyCheckSec=0}Release(){this._runtime=null}_Update1sStats(){this._collisionCheckSec=this._collisionCheckCount,this._collisionCheckCount=0,this._polyCheckSec=this._polyCheckCount,this._polyCheckCount=0}Get1secCollisionChecks(){return this._collisionCheckSec}Get1secPolyChecks(){return this._polyCheckSec}RegisterCollision(c,a){const b=c.GetWorldInfo(),d=a.GetWorldInfo();b&&d&&b.IsCollisionEnabled()&&d.IsCollisionEnabled()&&this._registeredCollisions.push([c,a])}AddRegisteredCollisionCandidates(c,d,e){for(const[f,a]of this._registeredCollisions){let b=null;if(c===f)b=a;else if(c===a)b=f;else continue;b.BelongsToObjectClass(d)&&!e.includes(b)&&e.push(b)}}CheckRegisteredCollision(e,a){if(!this._registeredCollisions.length)return!1;for(const[b,c]of this._registeredCollisions)if(e===b&&a===c||e===c&&a===b)return!0;return!1}ClearRegisteredCollisions(){C3.clearArray(this._registeredCollisions)}TestOverlap(c,d){if(!c||!d||c===d)return!1;const e=c.GetWorldInfo(),f=d.GetWorldInfo();if(!e.IsCollisionEnabled()||!f.IsCollisionEnabled())return!1;this._collisionCheckCount++;const g=e.GetLayer(),h=f.GetLayer(),i=g!==h&&!g._IsCollisionCompatibleWith(h);return i?this._TestOverlap_DifferentLayers(e,f):this._TestOverlap_SameLayers(e,f)}_TestOverlap_SameLayers(a,b){if(!a.GetBoundingBox().intersectsRect(b.GetBoundingBox()))return!1;if(this._polyCheckCount++,!a.GetBoundingQuad().intersectsQuad(b.GetBoundingQuad()))return!1;if(a.HasTilemap()&&b.HasTilemap())return!1;if(a.HasTilemap())return this.TestTilemapOverlap(a,b);if(b.HasTilemap())return this.TestTilemapOverlap(b,a);if(!a.HasOwnCollisionPoly()&&!b.HasOwnCollisionPoly())return!0;const c=a.GetTransformedCollisionPoly(),d=b.GetTransformedCollisionPoly();return c.intersectsPoly(d,b.GetX()-a.GetX(),b.GetY()-a.GetY())}_TestOverlap_DifferentLayers(a,b){const c=a.GetLayer(),f=b.GetLayer();d.copy(a.GetTransformedCollisionPoly()),e.copy(b.GetTransformedCollisionPoly());const g=d.pointsArr();for(let d=0,e=g.length;dd;++d){const i=2*d-1;if(e.SetXY(f+b*k*i,g+c*k*i),e.SetBboxChanged(),!this.TestOverlap(a,h))if(h=this.TestOverlapSolid(a),h)j=h;else return j&&this.PushInFractional(a,b*i,c*i,j,16),!0}return e.SetXY(f,g),e.SetBboxChanged(),!1}PushInFractional(a,b,c,d,e){let f=2,g=!1,h=!1;const i=a.GetWorldInfo();let j=i.GetX(),k=i.GetY();for(;f<=e;){const e=1/f;f*=2,i.OffsetXY(b*e*(g?1:-1),c*e*(g?1:-1)),i.SetBboxChanged(),this.TestOverlap(a,d)?(g=!0,h=!0):(g=!1,h=!1,j=i.GetX(),k=i.GetY())}h&&(i.SetXY(j,k),i.SetBboxChanged())}PushOutSolidNearest(a,b=100){var c=Math.floor;let d=0;const e=a.GetWorldInfo(),f=e.GetX(),g=e.GetY();let h=0,i=this.TestOverlapSolid(a);if(!i)return!0;for(;d<=b;){let b=0,j=0;if(0==h?(b=0,j=-1,d++):1==h?(b=1,j=-1):2==h?(b=1,j=0):3==h?(b=1,j=1):4==h?(b=0,j=1):5==h?(b=-1,j=1):6==h?(b=-1,j=0):7==h?(b=-1,j=-1):void 0,h=(h+1)%8,e.SetXY(c(f+b*d),c(g+j*d)),e.SetBboxChanged(),!this.TestOverlap(a,i)&&(i=this.TestOverlapSolid(a),!i))return!0}return e.SetXY(f,g),e.SetBboxChanged(),!1}CalculateBounceAngle(a,b,c,d){var e=Math.sin,f=Math.cos,g=Math.PI;const h=a.GetWorldInfo(),j=h.GetX(),k=h.GetY(),l=Math.max(10,C3.distanceTo(b,c,j,k)),m=C3.angleTo(b,c,j,k),n=d||this.TestOverlapSolid(a);if(!n)return C3.clampAngle(m+g);let o=n,p=0,q=0;const r=C3.toRadians(5);let s;for(s=1;36>s;++s){const g=m-s*r;if(h.SetXY(b+f(g)*l,c+e(g)*l),h.SetBboxChanged(),!this.TestOverlap(a,o)&&(o=d?null:this.TestOverlapSolid(a),!o)){p=g;break}}for(36===s&&(p=C3.clampAngle(m+g)),o=n,s=1;36>s;++s){const g=m+s*r;if(h.SetXY(b+f(g)*l,c+e(g)*l),h.SetBboxChanged(),!this.TestOverlap(a,o)&&(o=d?null:this.TestOverlapSolid(a),!o)){q=g;break}}if(36===s&&(q=C3.clampAngle(m+g)),h.SetXY(j,k),h.SetBboxChanged(),q===p)return q;const i=C3.angleDiff(q,p)/2;let t=C3.angleClockwise(q,p)?C3.clampAngle(p+i+g):C3.clampAngle(q+i);const u=f(m),v=e(m),w=f(t),x=e(t),y=u*w+v*x;return C3.angleTo(0,0,u-2*y*w,v-2*y*x)}TestSegmentOverlap(a,b,c,d,e){var f=Math.min,h=Math.max;if(!e)return!1;const i=e.GetWorldInfo();if(!i.IsCollisionEnabled())return!1;if(this._collisionCheckCount++,g.set(f(a,c),f(b,d),h(a,c),h(b,d)),!i.GetBoundingBox().intersectsRect(g))return!1;if(e.HasTilemap())return this._TestSegmentOverlapTilemap(a,b,c,d,e,i);if(this._polyCheckCount++,!i.GetBoundingQuad().intersectsSegment(a,b,c,d))return!1;if(!i.HasOwnCollisionPoly())return!0;const j=i.GetTransformedCollisionPoly();return j.intersectsSegment(i.GetX(),i.GetY(),a,b,c,d)}_TestSegmentOverlapTilemap(a,d,e,j,c,i){const k=i.GetX(),l=i.GetY(),m=c.GetSdkInstance(),n=b;h.set(a,d,e,j),h.normalize(),m.GetCollisionRectCandidates(h,n);for(let b=0,h=n.length;bthis._loadingProgress=a.progress,this._webglPercentText=null,this._loadingLogoAsset=null,this._splashTextures={logo:null,powered:null,website:null},this._splashFrameNumber=0,this._splashFadeInFinishTime=0,this._splashFadeOutStartTime=0,this._splashState="fade-in",this._splashDoneResolve=null,this._splashDonePromise=new Promise((a)=>this._splashDoneResolve=a)}_SetGPUPowerPreference(a){this._gpuPreference=a}async CreateCanvas(a){this._canvas=a["canvas"],this._canvas.addEventListener("webglcontextlost",(a)=>this._OnWebGLContextLost(a)),this._canvas.addEventListener("webglcontextrestored",(a)=>this._OnWebGLContextRestored(a)),this._webglRenderer=C3.New(C3.Gfx.WebGLRenderer,this._canvas,{maxWebGLVersion:a["maxWebGLVersion"],powerPreference:this._gpuPreference,enableGpuProfiling:!0,alpha:!0}),await this._webglRenderer.InitState(),this._webglRenderer.SupportsGPUProfiling()||(this._gpuLastUtilisation=NaN),this._runtime.AddDOMComponentMessageHandler("runtime","window-resize",(a)=>this._OnWindowResize(a)),this._runtime.AddDOMComponentMessageHandler("runtime","fullscreenchange",(a)=>this._OnFullscreenChange(a)),this._runtime.AddDOMComponentMessageHandler("runtime","fullscreenerror",(a)=>this._OnFullscreenError(a)),this._isDocumentFullscreen=!!a["isFullscreen"],this.SetSize(a["windowInnerWidth"],a["windowInnerHeight"],!0),this._shaderData=a["shaders"]||self["C3_Shaders"],await this._LoadShaderPrograms();let b=!1;for(const c of this._runtime._GetAllEffectLists()){for(const a of c.GetAllEffectTypes())a._InitRenderer(this._webglRenderer),a.GetShaderProgram().UsesDest()&&(b=!0);c.UpdateActiveEffects()}this._runtime._SetUsesAnyBackgroundBlending(b),this._webglRenderer.SupportsGPUProfiling()&&(this._gpuFrameTimingsBuffer=C3.New(C3.Gfx.WebGLQueryResultBuffer,this._webglRenderer))}async _LoadShaderPrograms(){if(this._shaderData){const a=[];for(const[b,c]of Object.entries(this._shaderData)){const d=C3.Gfx.WebGLShaderProgram.GetDefaultVertexShaderSource(this._webglRenderer.Is3D());a.push(this._webglRenderer.CreateShaderProgram(c,d,b))}await Promise.all(a),this._webglRenderer.ResetLastProgram(),this._webglRenderer.SetTextureFillMode()}}Release(){this._runtime=null,this._webglRenderer=null,this._canvas=null}_OnWindowResize(a){this._runtime.IsInWorker()&&(self.devicePixelRatio=a["devicePixelRatio"]),this.SetSize(a["innerWidth"],a["innerHeight"]),this._runtime.UpdateRender()}_OnFullscreenChange(a){this._isDocumentFullscreen=!!a["isFullscreen"],this.SetSize(a["innerWidth"],a["innerHeight"],!0),this._runtime.UpdateRender()}_OnFullscreenError(a){this._isDocumentFullscreen=!!a["isFullscreen"],this.SetSize(a["innerWidth"],a["innerHeight"],!0),this._runtime.UpdateRender()}SetSize(a,b,c=!1){var d=Math.floor;if(a=d(a),b=d(b),0>=a||0>=b)throw new Error("invalid size");if(this._windowInnerWidth!==a||this._windowInnerHeight!==b||c){this._windowInnerWidth=a,this._windowInnerHeight=b;const c=this.GetCurrentFullscreenMode();"letterbox-scale"===c?this._CalculateLetterboxScale(a,b):"letterbox-integer-scale"===c?this._CalculateLetterboxIntegerScale(a,b):"off"===c?this._CalculateFixedSizeCanvas(a,b):this._CalculateFullsizeCanvas(a,b),this._UpdateFullscreenScalingQuality(c),this._canvas.width=this._canvasDeviceWidth,this._canvas.height=this._canvasDeviceHeight,this._runtime.PostComponentMessageToDOM("canvas","update-size",{"marginLeft":this._canvasCssOffsetX,"marginTop":this._canvasCssOffsetY,"styleWidth":this._canvasCssWidth,"styleHeight":this._canvasCssHeight}),this._webglRenderer.SetSize(this._canvasDeviceWidth,this._canvasDeviceHeight,!0)}}_CalculateLetterboxScale(a,b){var c=Math.round,d=Math.floor;const e=self.devicePixelRatio,f=this._runtime.GetOriginalViewportWidth(),g=this._runtime.GetOriginalViewportHeight(),h=f/g;if(a/b>h){this._canvasCssWidth=c(b*h),this._canvasCssHeight=b,this._canvasCssOffsetX=d((a-this._canvasCssWidth)/2),this._canvasCssOffsetY=0}else{this._canvasCssWidth=a,this._canvasCssHeight=c(a/h),this._canvasCssOffsetX=0,this._canvasCssOffsetY=d((b-this._canvasCssHeight)/2)}this._canvasDeviceWidth=c(this._canvasCssWidth*e),this._canvasDeviceHeight=c(this._canvasCssHeight*e),this._runtime.SetViewportSize(f,g)}_CalculateLetterboxIntegerScale(a,b){var c=Math.max,d=Math.round,e=Math.floor;const f=self.devicePixelRatio;1!==f&&(a+=1,b+=1);const g=this._runtime.GetOriginalViewportWidth(),h=this._runtime.GetOriginalViewportHeight(),i=g/h,j=a/b;let k;if(j>i){const a=b*i;k=a*f/g}else{const b=a/i;k=b*f/h}1k&&(k=1/Math.ceil(1/k)),this._canvasDeviceWidth=d(g*k),this._canvasDeviceHeight=d(h*k),this._canvasCssWidth=this._canvasDeviceWidth/f,this._canvasCssHeight=this._canvasDeviceHeight/f,this._canvasCssOffsetX=c(e((a-this._canvasCssWidth)/2),0),this._canvasCssOffsetY=c(e((b-this._canvasCssHeight)/2),0),this._runtime.SetViewportSize(g,h)}_CalculateFullsizeCanvas(a,b){var c=Math.round;const d=self.devicePixelRatio;this._canvasCssWidth=a,this._canvasCssHeight=b,this._canvasDeviceWidth=c(this._canvasCssWidth*d),this._canvasDeviceHeight=c(this._canvasCssHeight*d),this._canvasCssOffsetX=0,this._canvasCssOffsetY=0;const e=this.GetDisplayScale();this._runtime.SetViewportSize(this._canvasCssWidth/e,this._canvasCssHeight/e)}_CalculateFixedSizeCanvas(a,b){var c=Math.round,d=Math.floor;const e=self.devicePixelRatio;this._canvasCssWidth=this._runtime.GetViewportWidth(),this._canvasCssHeight=this._runtime.GetViewportHeight(),this._canvasDeviceWidth=c(this._canvasCssWidth*e),this._canvasDeviceHeight=c(this._canvasCssHeight*e),this.IsDocumentFullscreen()?(this._canvasCssOffsetX=d((a-this._canvasCssWidth)/2),this._canvasCssOffsetY=d((b-this._canvasCssHeight)/2)):(this._canvasCssOffsetX=0,this._canvasCssOffsetY=0),this._runtime.SetViewportSize(this._runtime.GetViewportWidth(),this._runtime.GetViewportHeight())}_UpdateFullscreenScalingQuality(a){if("high"===this._wantFullscreenScalingQuality)this._drawWidth=this._canvasDeviceWidth,this._drawHeight=this._canvasDeviceHeight,this._fullscreenScalingQuality="high";else{let b,c;if("off"===this.GetCurrentFullscreenMode()?(b=this._runtime.GetViewportWidth(),c=this._runtime.GetViewportHeight()):(b=this._runtime.GetOriginalViewportWidth(),c=this._runtime.GetOriginalViewportHeight()),this._canvasDeviceWidtha&&(this._drawHeight=this._drawWidth/d)}else if("scale-outer"===a){const a=b/c,d=this._windowInnerWidth/this._windowInnerHeight;d>a?this._drawWidth=this._drawHeight*d:dd||"scale-inner"===a&&eb.IsCompatibleWithOptions(a));let d;return-1===c?d=this._webglRenderer.CreateRenderTarget(a):(d=b[c],b.splice(c,1)),this._usedAdditionalRenderTargets.add(d),d}ReleaseAdditionalRenderTarget(a){if(!this._usedAdditionalRenderTargets.has(a))throw new Error("render target not in use");this._usedAdditionalRenderTargets.delete(a),this._availableAdditionalRenderTargets.push(a)}*activeLayersGpuProfiles(){for(const a of this._runtime.GetLayoutManager().runningLayouts())for(const b of a.GetLayers()){const a=this._layersGpuProfile.get(b);a&&(yield a)}}GetLayerTimingsBuffer(a){if(!this._webglRenderer.SupportsGPUProfiling())return null;let b=this._layersGpuProfile.get(a);return b||(b={name:a.GetName(),timingsBuffer:C3.New(C3.Gfx.WebGLQueryResultBuffer,this._webglRenderer),curUtilisation:0,lastUtilisation:0},this._layersGpuProfile.set(a,b)),b.timingsBuffer}_Update1sFrameRange(){if(this._webglRenderer.SupportsGPUProfiling()&&0===this._gpuTimeEndFrame){this._gpuTimeEndFrame=this._webglRenderer.GetFrameNumber(),this._gpuCurUtilisation=NaN;for(const a of this.activeLayersGpuProfiles())a.curUtilisation=NaN}}_UpdateTick(){var a=Math.min;if(this._webglRenderer.SupportsGPUProfiling()&&isNaN(this._gpuCurUtilisation)&&(this._gpuCurUtilisation=this._gpuFrameTimingsBuffer.GetFrameRangeResultSum(this._gpuTimeStartFrame,this._gpuTimeEndFrame),!isNaN(this._gpuCurUtilisation))){if(this._runtime.IsDebug())for(const a of this.activeLayersGpuProfiles())if(a.curUtilisation=a.timingsBuffer.GetFrameRangeResultSum(this._gpuTimeStartFrame,this._gpuTimeEndFrame),isNaN(a.curUtilisation))return;if(this._gpuFrameTimingsBuffer.DeleteAllBeforeFrameNumber(this._gpuTimeEndFrame),this._gpuLastUtilisation=a(this._gpuCurUtilisation,1),this._runtime.IsDebug()){for(const b of this.activeLayersGpuProfiles())b.timingsBuffer.DeleteAllBeforeFrameNumber(this._gpuTimeEndFrame),b.lastUtilisation=a(b.curUtilisation,1);C3Debugger.UpdateGPUProfile(this._gpuLastUtilisation,[...this.activeLayersGpuProfiles()])}this._gpuTimeStartFrame=this._gpuTimeEndFrame,this._gpuTimeEndFrame=0}}GetGPUFrameTimingsBuffer(){return this._gpuFrameTimingsBuffer}GetGPUUtilisation(){return this._gpuLastUtilisation}SnapshotCanvas(a,b){return(this._snapshotFormat=a,this._snapshotQuality=b,this._snapshotPromise)?this._snapshotPromise:(this._snapshotPromise=new Promise((a)=>{this._snapshotResolve=a}),this._snapshotPromise)}_MaybeTakeSnapshot(){this._snapshotFormat&&(C3.CanvasToBlob(this._canvas,this._snapshotFormat,this._snapshotQuality).then((a)=>{this._snapshotUrl=URL.createObjectURL(a),this._snapshotPromise=null,this._snapshotResolve(this._snapshotUrl)}),this._snapshotFormat="",this._snapshotQuality=1)}GetCanvasSnapshotUrl(){return this._snapshotUrl}InitLoadingScreen(a){if(2===a)this._webglPercentText=C3.New(C3.Gfx.WebGLText,this._webglRenderer),this._webglPercentText.SetIsAsync(!1),this._webglPercentText.SetFontName("Arial"),this._webglPercentText.SetFontSize(16),this._webglPercentText.SetHorizontalAlignment("center"),this._webglPercentText.SetVerticalAlignment("center"),this._webglPercentText.SetSize(300,200);else if(0===a){const a=this._runtime.GetAssetManager();let b;if(this._runtime.IsPreview()){if(!a._HasLocalURLBlob("loading-logo.png"))return;b=a.GetLocalUrlAsBlobUrl("loading-logo.png")}else b=a.GetIconsSubfolder()+"loading-logo.png";this._loadingLogoAsset=a.LoadImage({url:b}),this._loadingLogoAsset.LoadStaticTexture(this._webglRenderer).catch(()=>console.warn(`[C3 runtime] Failed to load 'loading-logo.png' for loading screen. Check the project has an icon with that name.`))}else 4===a&&(this._LoadSvgSplashImage("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHdpZHRoPSIxNzAwLjc5MDA0cHgiIGhlaWdodD0iMTcwMC43OTAwNHB4IiB2aWV3Qm94PSIyODcgMzE3IDExMjUgMTEyNSINCgkgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTcwMC43OTAwNCAxNzAwLjc5MDA0IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnIGlkPSJsb2dvIj4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI0ZGRkZGRiIgZD0iTTM1NC45Nzc1NCwxMTk1LjYyMzA1DQoJCQkJYzExLjM4NDc3LDAsMjIuMDEyNywzLjIzNzMsMzEuMDE3NTgsOC44Mzc4OWMxLjk0NjI5LDEuMjEwOTQsMi41ODQ5NiwzLjc0OTAyLDEuNDM4NDgsNS43MzQzOGwtNC45MzI2Miw4LjU0MTk5DQoJCQkJYy0zLjI3ODMyLDUuNjc5NjktMTAuMDMzMiw4LjM3Njk1LTE2LjMxNzM4LDYuNTAwOThjLTIuNzY0NjUtMC44MjUyLTUuNjkzMzYtMS4yNjg1NS04LjcyNjU2LTEuMjY4NTUNCgkJCQljLTE2LjgyOTEsMC0zMC40NzI2NiwxMy42NDM1NS0zMC40NzI2NiwzMC40NzI2NmMwLDE2LjgyODEzLDEzLjY0MzU1LDMwLjQ3MjY2LDMwLjQ3MjY2LDMwLjQ3MjY2DQoJCQkJYzMuMDMzMiwwLDUuOTYxOTEtMC40NDMzNiw4LjcyNjU2LTEuMjY4NTVjNi4yOTQ5Mi0xLjg3OTg4LDEzLjAzMzIsMC44MTE1MiwxNi4zMTczOCw2LjUwMDk4bDQuOTMxNjQsOC41NDE5OQ0KCQkJCWMxLjE0NzQ2LDEuOTg4MjgsMC41MTA3NCw0LjUyMzQ0LTEuNDM4NDgsNS43MzQzOGMtOS4wMDM5MSw1LjYwMTU2LTE5LjYzMTg0LDguODM3ODktMzEuMDE2Niw4LjgzNzg5DQoJCQkJYy0zMi40ODUzNSwwLTU4LjgxOTM0LTI2LjMzNDk2LTU4LjgxOTM0LTU4LjgxOTM0QzI5Ni4xNTgyLDEyMjEuOTU3MDMsMzIyLjQ5MjE5LDExOTUuNjIzMDUsMzU0Ljk3NzU0LDExOTUuNjIzMDUNCgkJCQlMMzU0Ljk3NzU0LDExOTUuNjIzMDV6IE03MDMuMjE0ODQsMTI1OS4xNzU3OGMtMTQuNTU5NTctOS44MTczOC0yMC4yMDMxMy0yMC4wMzIyMy0yMC4yMDMxMy0zMy4wODAwOA0KCQkJCWMwLTE4LjQ4OTI2LDE1LjcxNDg0LTI5Ljc2MzY3LDM4LjI2NjYtMjkuNzYzNjdjOS42NTcyMywwLDE4LjcyMTY4LDIuNTQyOTcsMjYuNTU5NTcsNi45OTQxNA0KCQkJCWMyLjA0OTgsMS4xNjQwNiwyLjc2MTcyLDMuNzgzMiwxLjU4MzAxLDUuODI0MjJsLTMuNDE3OTcsNS45MTk5MmMtMy4yNDcwNyw1LjYyNDAyLTkuOTA4Miw4LjMzMTA1LTE2LjE1MzMyLDYuNTQ4ODMNCgkJCQljLTIuNzIzNjMtMC43NzYzNy01LjU5ODYzLTEuMTkyMzgtOC41NzEyOS0xLjE5MjM4Yy0xMC40OTAyMywwLTExLjU5ODYzLDkuNTc2MTctNC44NTc0MiwxNC4xMjMwNWwyMy42ODY1MiwxNS45NzY1Ng0KCQkJCWM5Ljk5MDIzLDYuNzM4MjgsMTUuODk1NTEsMTcuMDY2NDEsMTUuODk1NTEsMjguNzE4NzVjMCwxOC43ODYxMy0xNS4wMDY4NCwzMy4zMDc2Mi0zOC4yNjc1OCwzMy4zMDc2Mg0KCQkJCWMtOS41MjI0NiwwLTE4LjU4Nzg5LTEuOTU3MDMtMjYuODE1NDMtNS40OTAyM2MtNy43ODEyNS0zLjMzOTg0LTEwLjkzMzU5LTEyLjc4MjIzLTYuNjk3MjctMjAuMTE4MTZsMy40ODczLTYuMDQxOTkNCgkJCQljMS4yMTM4Ny0yLjA5OTYxLDMuOTMxNjQtMi43NTk3Nyw1Ljk3NDYxLTEuNDU2MDVjNi44NTkzOCw0LjM4MjgxLDE2LjQ5MDIzLDcuNTk0NzMsMjQuNzU4NzksNy41OTQ3Mw0KCQkJCWMxMC41NDU5LDAsMTEuMzI4MTMtOS45NTg5OCwzLjc2NzU4LTE1LjA1NzYyTDcwMy4yMTQ4NCwxMjU5LjE3NTc4TDcwMy4yMTQ4NCwxMjU5LjE3NTc4eiBNOTg0LjYzMDg2LDEyMDIuMDAwOTgNCgkJCQljMC0yLjM0NzY2LDEuOTAzMzItNC4yNTE5NSw0LjI1MTk1LTQuMjUxOTVoOS45MjE4OGM3LjgyNzE1LDAsMTQuMTcyODUsNi4zNDU3LDE0LjE3Mjg1LDE0LjE3MzgzdjU3LjQwMTM3DQoJCQkJYzAsOC42MTAzNSw2Ljk4MDQ3LDE1LjU5MDgyLDE1LjU5MDgyLDE1LjU5MDgyczE1LjU5MDgyLTYuOTgwNDcsMTUuNTkwODItMTUuNTkwODJ2LTU3LjQwMTM3DQoJCQkJYzAtNy44MjgxMyw2LjM0NTctMTQuMTczODMsMTQuMTcyODUtMTQuMTczODNoOS45MjA5YzIuMzQ4NjMsMCw0LjI1MTk1LDEuOTA0Myw0LjI1MTk1LDQuMjUxOTV2NjcuMzIzMjQNCgkJCQljMCwyNC4yNjU2My0xOS42NzA5LDQzLjkzNzUtNDMuOTM2NTIsNDMuOTM3NXMtNDMuOTM3NS0xOS42NzE4OC00My45Mzc1LTQzLjkzNzVWMTIwMi4wMDA5OEw5ODQuNjMwODYsMTIwMi4wMDA5OHoNCgkJCQkgTTQ2Ni44NjkxNCwxMTk1LjYyMzA1YzMyLjQ4NDM4LDAsNTguODE4MzYsMjYuMzMzOTgsNTguODE4MzYsNTguODE5MzRjMCwzMi40ODQzOC0yNi4zMzM5OCw1OC44MTkzNC01OC44MTgzNiw1OC44MTkzNA0KCQkJCWMtMzIuNDg2MzMsMC01OC44MTkzNC0yNi4zMzQ5Ni01OC44MTkzNC01OC44MTkzNEM0MDguMDQ5OCwxMjIxLjk1NzAzLDQzNC4zODI4MSwxMTk1LjYyMzA1LDQ2Ni44NjkxNCwxMTk1LjYyMzA1DQoJCQkJTDQ2Ni44NjkxNCwxMTk1LjYyMzA1eiBNNDY2Ljg2OTE0LDEyMjUuMDMzMmMtMTYuMjQzMTYsMC0yOS40MTAxNiwxMy4xNjY5OS0yOS40MTAxNiwyOS40MDkxOA0KCQkJCXMxMy4xNjY5OSwyOS40MDgyLDI5LjQxMDE2LDI5LjQwODJjMTYuMjQxMjEsMCwyOS40MDgyLTEzLjE2NjAyLDI5LjQwODItMjkuNDA4MlM0ODMuMTEwMzUsMTIyNS4wMzMyLDQ2Ni44NjkxNCwxMjI1LjAzMzINCgkJCQlMNDY2Ljg2OTE0LDEyMjUuMDMzMnogTTU1Ni43MzI0MiwxMzExLjEzNDc3Yy0yLjM0NzY2LDAtNC4yNTE5NS0xLjkwMjM0LTQuMjUxOTUtNC4yNXYtOTQuOTYxOTENCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzM4My0xNC4xNzM4M2gzLjk1ODk4YzQuNjI1LDAsOC45NTg5OCwyLjI1Njg0LDExLjYxMTMzLDYuMDQ1OWw0MS4xMjIwNyw1OC43NDcwN3YtNTAuNjE5MTQNCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzI4NS0xNC4xNzM4M2g5LjkyMTg4YzIuMzQ3NjYsMCw0LjI1MTk1LDEuOTA0Myw0LjI1MTk1LDQuMjUxOTV2OTQuOTYwOTQNCgkJCQljMCw3LjgyOTEtNi4zNDU3LDE0LjE3Mjg1LTE0LjE3MzgzLDE0LjE3Mjg1aC0zLjk1ODk4Yy00LjYyNSwwLTguOTU4OTgtMi4yNTU4Ni0xMS42MTEzMy02LjA0NDkybC00MS4xMjIwNy01OC43NDYwOXY1MC42MTgxNg0KCQkJCWMwLDcuODI5MS02LjM0NTcsMTQuMTcyODUtMTQuMTcyODUsMTQuMTcyODVINTU2LjczMjQyTDU1Ni43MzI0MiwxMzExLjEzNDc3eiBNMTIxNS4wMjA1MSwxMjExLjkyMjg1DQoJCQkJYzAtNy44MjgxMyw2LjM0NTctMTQuMTczODMsMTQuMTcyODUtMTQuMTczODNoNTAuMzE1NDNjMi4zNDg2MywwLDQuMjUxOTUsMS45MDQzLDQuMjUxOTUsNC4yNTE5NXY1LjY2OTkyDQoJCQkJYzAsNy44MjcxNS02LjM0NTcsMTQuMTcyODUtMTQuMTcyODUsMTQuMTcyODVoLTYuMDI0NDF2NzUuMTE4MTZjMCw3LjgyOTEtNi4zNDU3LDE0LjE3Mjg1LTE0LjE3Mjg1LDE0LjE3Mjg1aC05LjkyMTg4DQoJCQkJYy0yLjM0ODYzLDAtNC4yNTE5NS0xLjkwMjM0LTQuMjUxOTUtNC4yNXYtODUuMDQxMDJoLTE1Ljk0NDM0Yy0yLjM0ODYzLDAtNC4yNTE5NS0xLjkwMzMyLTQuMjUxOTUtNC4yNTE5NVYxMjExLjkyMjg1DQoJCQkJTDEyMTUuMDIwNTEsMTIxMS45MjI4NXogTTc3Ni40NDkyMiwxMjExLjkyMjg1YzAtNy44MjgxMyw2LjM0NTctMTQuMTczODMsMTQuMTczODMtMTQuMTczODNoNTAuMzE0NDUNCgkJCQljMi4zNDk2MSwwLDQuMjUxOTUsMS45MDQzLDQuMjUxOTUsNC4yNTE5NXY1LjY2OTkyYzAsNy44MjcxNS02LjM0NTcsMTQuMTcyODUtMTQuMTcxODgsMTQuMTcyODVoLTYuMDI1Mzl2NzUuMTE4MTYNCgkJCQljMCw3LjgyOTEtNi4zNDU3LDE0LjE3Mjg1LTE0LjE3Mjg1LDE0LjE3Mjg1aC05LjkyMDljLTIuMzQ5NjEsMC00LjI1MTk1LTEuOTAyMzQtNC4yNTE5NS00LjI1di04NS4wNDEwMmgtMTUuOTQ1MzENCgkJCQljLTIuMzQ3NjYsMC00LjI1MTk1LTEuOTAzMzItNC4yNTE5NS00LjI1MTk1VjEyMTEuOTIyODVMNzc2LjQ0OTIyLDEyMTEuOTIyODV6IE05MjkuNjA0NDksMTI3Mi4wMjI0NmwyNi45NTgwMSwzMi4xMjc5Mw0KCQkJCWMyLjMxNDQ1LDIuNzU3ODEsMC4zNDM3NSw2Ljk4NDM4LTMuMjU2ODQsNi45ODQzOGgtMTkuNzA1MDhjLTQuMTg5NDUsMC04LjE2NTA0LTEuODUxNTYtMTAuODU3NDItNS4wNjA1NWwtMjIuNjgxNjQtMjcuMDMxMjUNCgkJCQl2MjcuODQxOGMwLDIuMzQ3NjYtMS45MDMzMiw0LjI1LTQuMjUxOTUsNC4yNWgtOS45MjA5Yy03LjgyNzE1LDAtMTQuMTcyODUtNi4zNDM3NS0xNC4xNzI4NS0xNC4xNzI4NXYtODUuMDM5MDYNCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzI4NS0xNC4xNzM4M2gyOS43NjM2N2MyMi43MDAyLDAsNDEuMTAyNTQsMTcuMTMzNzksNDEuMTAyNTQsMzguMjY4NTUNCgkJCQlDOTU2Ljc1NDg4LDEyNTIuNTkwODIsOTQ1LjQzNjUyLDEyNjYuNzAyMTUsOTI5LjYwNDQ5LDEyNzIuMDIyNDZMOTI5LjYwNDQ5LDEyNzIuMDIyNDZ6IE05MDAuMDYxNTIsMTIyMS44NDM3NXYzMi41OTg2M2g4LjUwMzkxDQoJCQkJYzEwLjk1ODk4LDAsMTkuODQyNzctNy4yOTc4NSwxOS44NDI3Ny0xNi4yOTg4M2MwLTkuMDAxOTUtOC44ODM3OS0xNi4yOTk4LTE5Ljg0Mjc3LTE2LjI5OThIOTAwLjA2MTUyTDkwMC4wNjE1MiwxMjIxLjg0Mzc1eg0KCQkJCSBNMTE1OC4zNTkzOCwxMTk1LjYyMzA1YzExLjM4NDc3LDAsMjIuMDEyNywzLjIzNzMsMzEuMDE3NTgsOC44Mzc4OWMxLjk0NzI3LDEuMjEwOTQsMi41ODQ5NiwzLjc0OTAyLDEuNDM4NDgsNS43MzQzOA0KCQkJCWwtNC45MzI2Miw4LjU0MTk5Yy0zLjI3ODMyLDUuNjc5NjktMTAuMDMzMiw4LjM3Njk1LTE2LjMxNzM4LDYuNTAwOThjLTIuNzY0NjUtMC44MjUyLTUuNjkzMzYtMS4yNjg1NS04LjcyNTU5LTEuMjY4NTUNCgkJCQljLTE2LjgyOTEsMC0zMC40NzI2NiwxMy42NDM1NS0zMC40NzI2NiwzMC40NzI2NmMwLDE2LjgyODEzLDEzLjY0MzU1LDMwLjQ3MjY2LDMwLjQ3MjY2LDMwLjQ3MjY2DQoJCQkJYzMuMDMyMjMsMCw1Ljk2MDk0LTAuNDQzMzYsOC43MjU1OS0xLjI2ODU1YzYuMjk1OS0xLjg3OTg4LDEzLjAzMzIsMC44MTE1MiwxNi4zMTgzNiw2LjUwMDk4bDQuOTMwNjYsOC41NDE5OQ0KCQkJCWMxLjE0NzQ2LDEuOTg4MjgsMC41MTA3NCw0LjUyMzQ0LTEuNDM3NSw1LjczNDM4Yy05LjAwNDg4LDUuNjAxNTYtMTkuNjMyODEsOC44Mzc4OS0zMS4wMTc1OCw4LjgzNzg5DQoJCQkJYy0zMi40ODUzNSwwLTU4LjgxOTM0LTI2LjMzNDk2LTU4LjgxOTM0LTU4LjgxOTM0QzEwOTkuNTQwMDQsMTIyMS45NTcwMywxMTI1Ljg3NDAyLDExOTUuNjIzMDUsMTE1OC4zNTkzOCwxMTk1LjYyMzA1eiIvPg0KCQkJPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiMwMEZGREEiIGQ9Ik0xMzE4LjE5NzI3LDEyMDYuMDMyMjMNCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzI4NS0xNC4xNzM4M2MyMC42NTYyNSwwLDQxLjMxMjUsMCw2MS45Njg3NSwwYzMuNDI5NjksMCw1LjQ1MDIsMy44ODA4NiwzLjQ4MzQsNi42OTA0Mw0KCQkJCWwtMTkuMjk2ODgsMjcuNTY3MzhjMTUuNTQyOTcsOC4zNzU5OCwyNi4xMDY0NSwyNC44MDA3OCwyNi4xMDY0NSw0My42OTUzMWMwLDI3LjM5NzQ2LTIyLjIwODk4LDQ5LjYwNjQ1LTQ5LjYwNjQ1LDQ5LjYwNjQ1DQoJCQkJYy0xNi42ODg0OCwwLTMxLjQ1MTE3LTguMjQwMjMtNDAuNDQzMzYtMjAuODc1OThjLTEuNDUwMi0yLjAzOTA2LTAuODMxMDUtNC44OTk0MSwxLjMzNTk0LTYuMTUyMzRsMTAuOTc3NTQtNi4zMzc4OQ0KCQkJCWM0Ljg4MTg0LTIuODE4MzYsMTAuOTc5NDktMi40NzU1OSwxNS41MTQ2NSwwLjg3MzA1YzMuNTI4MzIsMi42MDU0Nyw3Ljg5MTYsNC4xNDY0OCwxMi42MTUyMyw0LjE0NjQ4DQoJCQkJYzExLjc0MjE5LDAsMjEuMjU5NzctOS41MTg1NSwyMS4yNTk3Ny0yMS4yNTk3N3MtOS41MTc1OC0yMS4yNTk3Ny0yMS4yNTk3Ny0yMS4yNTk3N2gtMTUuMjE3NzcNCgkJCQljLTMuNDI5NjksMC01LjQ1MDItMy44ODA4Ni0zLjQ4NDM4LTYuNjkwNDNsMTguMTM1NzQtMjUuOTA4MmgtMzIuMDA5NzdjLTIuMzQ4NjMsMC00LjI1MTk1LTEuOTAzMzItNC4yNTE5NS00LjI1MTk1VjEyMDYuMDMyMjN6DQoJCQkJIi8+DQoJCTwvZz4NCgkJPGc+DQoJCQk8Zz4NCgkJCQk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI0RBRThGNyIgZD0iTTg1MC4zOTU1MSw4NTcuNTkxOA0KCQkJCQljLTUwLjM1NjQ1LDAtOTQuMzI1Mi0yNy4zNTY0NS0xMTcuODUyNTQtNjguMDIwNTFsLTgwLjAzMDI3LDQ2LjIwNDFjLTQuNjU1MjcsMi42ODk0NS02LjEzMTg0LDguNzE4NzUtMy4yNDkwMiwxMy4yNTU4Ng0KCQkJCQljNDIuMjM3Myw2Ni40ODYzMywxMTYuNTMzMiwxMTAuNjA3NDIsMjAxLjEzMTg0LDExMC42MDc0MmM4OC4xMjU5OCwwLDE2NS4wNzEyOS00Ny44NzUsMjA2LjI0MzE2LTExOS4wMzYxM2wtODAuNDg3My00Ni40Njk3Mw0KCQkJCQljLTQuMzEzNDgtMi40OTAyMy05LjgwMTc2LTEuMjA1MDgtMTIuNTcwMzEsMi45MzU1NUM5MzkuMTc1NzgsODMzLjU2MjUsODk3LjU5MTgsODU3LjU5MTgsODUwLjM5NTUxLDg1Ny41OTE4DQoJCQkJCUw4NTAuMzk1NTEsODU3LjU5MTh6IE0xMTM2LjcyMTY4LDU1Ni4yMTc3N2M0LjYxNDI2LTIuNjYzMDksNi4xMTAzNS04LjYxOTE0LDMuMzEyNS0xMy4xNTEzNw0KCQkJCQljLTU5LjkxNTA0LTk3LjAzMDI3LTE2Ny4yMjQ2MS0xNjEuNjk0MzQtMjg5LjYzODY3LTE2MS42OTQzNGMtMTI1Ljg5MzU1LDAtMjM1LjgxMzQ4LDY4LjM5MjU4LTI5NC42MzM3OSwxNzAuMDQ5OA0KCQkJCQlsODAuMzc2OTUsNDYuNDA2MjVjNC4zOTc0NiwyLjUzOTA2LDEwLjAwMTk1LDEuMTQ5NDEsMTIuNzEwOTQtMy4xNDU1MQ0KCQkJCQljNDIuMTY0MDYtNjYuODUxNTYsMTE2LjY2ODk1LTExMS4yNjM2NywyMDEuNTQ1OS0xMTEuMjYzNjdjODguMTI1OTgsMCwxNjUuMDcxMjksNDcuODc1OTgsMjA2LjI0MzE2LDExOS4wMzYxMw0KCQkJCQlMMTEzNi43MjE2OCw1NTYuMjE3Nzd6Ii8+DQoJCQkJPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiNBNUJBQzgiIGQ9Ik04NTAuMzk1NTEsOTU5LjYzODY3DQoJCQkJCWMtODQuNTk4NjMsMC0xNTguODk0NTMtNDQuMTIxMDktMjAxLjEzMTg0LTExMC42MDc0MmMtMi44NzY5NS00LjUzMDI3LTEuMzk5NDEtMTAuNTcwMzEsMy4yNDkwMi0xMy4yNTU4Nmw4MC4wMzAyNy00Ni4yMDQxDQoJCQkJCWMtMTEuNTgxMDUtMjAuMDE2Ni0xOC4yMDk5Ni00My4yNTQ4OC0xOC4yMDk5Ni02OC4wNDE5OWMwLTc0Ljc4NTE2LDYwLjU1NzYyLTEzNi4wNjI1LDEzNi4wNjI1LTEzNi4wNjI1DQoJCQkJCWM0Ny4xOTYyOSwwLDg4Ljc4MDI3LDI0LjAyOTMsMTEzLjE4NTU1LDYwLjUyMjQ2YzIuNzY0NjUsNC4xMzM3OSw4LjI2MzY3LDUuNDIxODgsMTIuNTcwMzEsMi45MzU1NWw4MC40ODczLTQ2LjQ2OTczDQoJCQkJCWMtNDEuMTcxODgtNzEuMTYwMTYtMTE4LjExNzE5LTExOS4wMzYxMy0yMDYuMjQzMTYtMTE5LjAzNjEzYy04NC44NzY5NSwwLTE1OS4zODE4NCw0NC40MTIxMS0yMDEuNTQ1OSwxMTEuMjYzNjcNCgkJCQkJYy0yLjcwNjA1LDQuMjkxMDItOC4zMTgzNiw1LjY4MTY0LTEyLjcxMDk0LDMuMTQ1NTFsLTgwLjM3Njk1LTQ2LjQwNjI1DQoJCQkJCWMtMjguOTUyMTUsNTAuMDQwMDQtNDUuNTIzNDQsMTA4LjEzOTY1LTQ1LjUyMzQ0LDE3MC4xMDc0MmMwLDE4Ni45NjM4NywxNTEuMzk0NTMsMzQwLjE1NzIzLDM0MC4xNTcyMywzNDAuMTU3MjMNCgkJCQkJYzEyMi40MTQwNiwwLDIyOS43MjM2My02NC42NjQwNiwyODkuNjM4NjctMTYxLjY5NTMxYzIuNzk0OTItNC41MjYzNywxLjI5NDkyLTEwLjQ5MDIzLTMuMzEyNS0xMy4xNTEzN2wtODAuMDgzMDEtNDYuMjM3Mw0KCQkJCQlDMTAxNS40NjY4LDkxMS43NjM2Nyw5MzguNTIxNDgsOTU5LjYzODY3LDg1MC4zOTU1MSw5NTkuNjM4Njd6Ii8+DQoJCQk8L2c+DQoJCQk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzAwRkZEQSIgZD0iTTExMzcuMTg1NTUsNzU4LjExMzI4di03My4xNjc5N2wtNjMuMzY1MjMsMzYuNTgzOTgNCgkJCQlMMTEzNy4xODU1NSw3NTguMTEzMjhMMTEzNy4xODU1NSw3NTguMTEzMjh6IE0xMDI2LjU3NjE3LDcwNS4xNjQwNmwxMjAuMDU4NTktNjkuMzE2NDENCgkJCQljMTIuNTY4MzYtNy4yNTU4NiwyOC4zNDQ3MywxLjg1MjU0LDI4LjM0NTcsMTYuMzY2MjF2MTM4LjYzMDg2Yy0wLjAwMDk4LDE0LjUxMjctMTUuNzc3MzQsMjMuNjIyMDctMjguMzQ1NywxNi4zNjYyMQ0KCQkJCWwtMTIwLjA1ODU5LTY5LjMxNjQxQzEwMTQuMDI4MzIsNzMwLjY0OTQxLDEwMTQuMDI4MzIsNzEyLjQwOTE4LDEwMjYuNTc2MTcsNzA1LjE2NDA2eiIvPg0KCQk8L2c+DQoJPC9nPg0KPC9nPg0KPC9zdmc+DQo=").then((a)=>{"done"===this._splashState?this._webglRenderer.DeleteTexture(a):this._splashTextures.logo=a}).catch((a)=>console.warn("Failed to load splash image: ",a)),this._LoadBitmapSplashImage("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAABABAMAAACekdKMAAAAMFBMVEUAAAByfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYYgo7vbAAAAD3RSTlMAmd137hFVqjO7zCKIRGZ881JRAAAFY0lEQVR42u2aPW/bVhSGn1iiPizZ8D+QgSJBNglFmiboQA0NUKAD1XotYA0BOspAkZnqx24vnTrIQNCpg4QkQMcYKDoW9j9w5y6qLNqWFDlvh3tJUa6ddHBhAuS7SKBIQffhuee851CQKVOmTJkyZcqUKXmqa8O+uyNlABKsFRmdP0o5AOle2gHoWdoBzFrpBHACwPeetJNmAFSlt6kGwGH0LqUAVqRuqgHkpEaqAVRkfvOWr+Dh9Rc4j6VvwnrhPNAbgK2ezj+yx7Z6GjUuASi4Ch4lHQAGwBeRK1rROQAdUx5K0hE4NUkaAdS02ZEuoms2wkCSgvYSgFJfkn6CobkSPG0mEcAOrHnGFOxAToHNjk/MygLgO/PxL0BN9yRdQKlufMQAoCdJGi8BOJYknXTJ269cu9HtdqNb4Ni6oimUbFb0dAZQ1DmULJ+TFtT0qQHwg73mLlCMfFUMQPR5VWrbmttNHICC1KDiSZ+w3pMOwFPDhP4IYFtv4ZX0nIorbUBNmjWAiqdZg5fmNFd6jvPhJQDjAV9LI0r28IpmycsBZalNWfoRWJcuoKY9c7cCkwpOwdcIqNT1BmrSgQkNbQAvpAGOF+aHOIBpCxhKR/TVBNjVOHkAOgrg2N6aoU7sklmVidtD7bNm/fIrjaBmk+Sxea142iBnTyguAfjZZscNXLOdXFM8EgVgXRpDz/6yonTEts6AXdV1APTVoKigFSXEmj3XN0kSV01WFQwAHC8O4Mhagye8NgHS137SALzsS3dxwhtXkQ4oaw64eqomOFKXbc2xJbFLTX8DOHYnsKsJu2Gdu8IIuTqjrMB8eyM5ACIFXQo2S5t7lNMM6AdFTaCgADqahHW8EQIohBk9rzEdE+JXAtjVmHWpDTmplUAA96Ea/bJDnVKSWjgaFTSHqubgmjVDXQchgFy4wBXNcXV6LYC8RjbEypomcCAyBopRShxqAn21yenM8WawqjOoKVbmLYBFndeImsnyVwJY1RR8NW1FTRiA6UNTCsP6fKwLONQBZTXx1WVbT0KbtwygvAxg81oAZU0xe2QYxkmyrDDx2DzWBXTUZFs7dNQwHUEMwN4VAKb47wOQ1wj8Gx0+/Y8A8powVJtt7XOoxn8A8N4IqCrA8cJUmzgAl3JAUWN8tSjqDX0NwI/XbwugGLe178oBK7bBaBesm0gggOUqwLrOHe8c1jV2NAMOw/XFAFRth2dr/burANS1cSc0C8kDsB7zAZvgKCjoLTiaFqwpmvwLQC7e2b3PB4CrZj48KXkAKktOEPr6VqeAr680udzEWACluK0LreJ1ThBe6+w4HkfJAhD1AtbAu3qgPcDVX2oCK9bqxwFQ1+fRsVW7va/uBZpAWaND652TCGBoM1rHHN6VmQlsq6cdE+4mC75oLAC49prKB1zTDd6NukHIKahbIkkEsGrmAQWZbZqXNLClrg04dTP4KnjnCwBfmgkZT7WD45k94C8BmA3MPGBgeqcbfQBxwwDsRMi3N7Iqc3dzsuVhV5ofkevpJOoGKUn6Ax5L92F49USoayZCls08uQDiM0ETCWPb8k7DMmH02SICGC7ayVhnsABwEpsZQkfxUpI4ALGpsFn4xCbHcVjnwgnvAkBh0U6CbzqrXgzA1E6FB9YOJGcacgUAfl36t0Ro/SIDUDEL/D1WBcJr5q0oRoJ2LQZgZJ4LPIu2RCPJAJafDLm2Yr2OHmQ4H0vzBksA2PKl38L3fY0aLAFYejK0ZpJhelVKzkj8dlRNzkj8dpRP0DTkVjTUXroB9PVnqtefS9I05BZU8NOdAyUl5q8RtwUg6KYcwP1Up8CanpMpU6ZMmTLdgP4BRYsi23xEdOAAAAAASUVORK5CYII=").then((a)=>{"done"===this._splashState?this._webglRenderer.DeleteTexture(a):this._splashTextures.powered=a}).catch((a)=>console.warn("Failed to load splash image: ",a)),this._LoadBitmapSplashImage("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAABABAMAAACekdKMAAAAMFBMVEUAAAByfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYYgo7vbAAAAD3RSTlMAdxHdu4hmVZnuRMwzqiLYE4y2AAAF2klEQVR42u2Yv28jaRnHP/bG8SVxvA4ncRw6sCVoVlc4R8FJCOHlGkq7olrJy18QFzRUWSqkE1KibZAQOkc6Ua+5htJGW12BEihpHAqKE0XWcZzEcXIfinf8a8zunsTNoZPmW80zfsbvzGfmfX5BqlSpUqVKlSpVqlSpUqVKlSrV/1EHPv4SfN7wMgWQAkgBpABSAF+2HngOsG8PyDpsWwHy3gJU/UHM3o0uyxw4/G44zJf1LQC8INP3ugXAejOcrqn6EIf80puiQwDqHgF8S987nfsAcN+HfEd/M/v34TtwT9WLBABsewXQtAHkHfVtATlHAUsjboer1lX9O8BmV/V9AIf5tnpRATZrqj9aBLBmHMCe6l0lDmD3V6ofABS6YaHkAOTDo7XtADmvwjNuOAlYWnE7XNVXdXgKlFW1BDjcU7UzP/14AUA/DmA7+PwkDuCHqmHFvWih5ABknQAFvQW2fFq1AxxrD+iOK3E72o8+ItP2E8joz8jXHQDqnyj0vYRN/ZBMzdvZ/lYfwRKAA0c93nZSWYoB93VS4q/6GPL6WzJtOwkGwboVyOkAqHqy5jnQ1BJkvSNuE7bC74F/O4BjB0BGj0DvgJwTWHMAvOvFAoAblgHkHR9BsWspDuAEaNqBz7wB3nWQIICyLdiyPQH2LWW8ArpjO5B3QNwGoGYLKDquUA9hoekuhDvPaoWqh0BRK3MApRiAeyH8nPk0BuAuBNxzOIgWGiYI4NgGHLtnBZqeFhxBwUvPIefnxO0QNy6i3NUqGHbFPW9ATwG69jgL+aIbvvQAgBiA/bDr3/AqBuBzgC1vKUYL9e0lB+CeHShPNixBdwK1CWTstAewZWfVBnLRl7BvKUoPZBxNn5G6R+H9wS92Tl8OoGkp4BzEALwAWPOGTLRQ2VJyAHLeQnew7UOyjqBpjy1L/Quo2li1o5cD8M+d1lb4jCk4WQKw5qS3XOSsAujaAyjuvPUyANvRQs98khyAvAOK3uY9D+XOviXO7O1bCdVR3AY2wusNh2FXoEsACjr59msAhBprpRJcABCSn+pJcgCy7TsydrLtS3IewgNPKE944GOaY1bt+S0uHdY8XQTAx+rwnVcCiNxfAeD+DMDDBHuB/pg1G/Tv2PIEtj2kPmLbE7p3rNpfEABvq/756wCgbK9qj71xpWoLMt5mvWXdp1mvWLW/KAD+0jfkxf8FwIuvoBs8s7Q3hKqtfStQdLDuLlmv8p6zagMb8/uahYNYDAhBsub1K2PA6wAsBJsEAWx50h/Btk+aE4Du3bYN6F/nQtaL2/MsAGx5E2WB4SoAMtp7bRZ4BYBpjkkWQM6P2jew7mF7ANAcf+YR7I03Qp6O2/M64JmNeR1wvQRgZyc6LC0DyK7WAZuOXgYg5/VXAKDgtYeQdRBe7LEHY6BqObyhuD2vBMuW5pXg1RKAWvAtxwFMc99CJZh5eSGUj2rLhCdCbX0C1MehfN3Qa2DN9pD/Zs96gWzNWS9QDr3ADMCBT0KLUILmIoCurdB9znqB73k+9YkDoBYx+gByyQHoayt08I0wIomif/R1L9vPhz3Y9w/A9x1Nu8H1qBucATj2Eii07UHZxhxA2Q7wqaEb7EG2bmPq83zYWwawHxqj5rAXiu1ktB8+42rgQF6fhqbuilW7HnpzH5Gp2ZnOA/qOWAKQ039QLHsHPPN3VKY/nnlxxB91Ng9408nMp25nGUBO3yO4bDpuZZMBUA2Y16LtnA3Zm7pPWbVrvphNhCaV+einsQyAg3D6E8I8b3f6Yyac7y5MhOY+NV8sA6A5d6npMKk8eBluLSr0umE/lsNzx+y6u7OZYIPZ8O99YgDW2xptokJ7AUAA9uOD+UxwwafubgxAvjZz+TQxAJlQbhSn445yCNRn06y3ZD8fHkVT4YtvzKfC3yQOgExT/xa6nX9pYwag+Kb+nOZsKvzTBZ/nw6MYAPJl/XW4sJlcFEiVKlWqVKlSpUqVKlWqVKlSpUqV6uuu/wDv59f7eYDABQAAAABJRU5ErkJggg==").then((a)=>{"done"===this._splashState?this._webglRenderer.DeleteTexture(a):this._splashTextures.website=a}).catch((a)=>console.warn("Failed to load splash image: ",a)))}async _LoadSvgSplashImage(a){a=new URL(a,this._runtime.GetBaseURL()).toString();const b=await C3.FetchBlob(a),c=await this._runtime.RasterSvgImage(b,2048,2048);return await this._webglRenderer.CreateStaticTextureAsync(c,{mipMapQuality:"high"})}async _LoadBitmapSplashImage(a){a=new URL(a,this._runtime.GetBaseURL()).toString();const b=await C3.FetchBlob(a);return await this._webglRenderer.CreateStaticTextureAsync(b,{mipMapQuality:"high"})}StartLoadingScreen(){this._loaderStartTime=Date.now(),this._runtime.Dispatcher().addEventListener("loadingprogress",this._loadingprogress_handler),this._rafId=requestAnimationFrame(()=>this._DrawLoadingScreen())}async EndLoadingScreen(){this._loadingProgress=1,4===this._runtime.GetLoaderStyle()&&(await this._splashDonePromise),this._splashDoneResolve=null,this._splashDonePromise=null,-1!==this._rafId&&(cancelAnimationFrame(this._rafId),this._rafId=-1),this._runtime.Dispatcher().removeEventListener("loadingprogress",this._loadingprogress_handler),this._loadingprogress_handler=null,this._webglPercentText&&(this._webglPercentText.Release(),this._webglPercentText=null),this._loadingLogoAsset&&(this._loadingLogoAsset.Release(),this._loadingLogoAsset=null),this._webglRenderer.Start(),this._splashTextures.logo&&(this._webglRenderer.DeleteTexture(this._splashTextures.logo),this._splashTextures.logo=null),this._splashTextures.powered&&(this._webglRenderer.DeleteTexture(this._splashTextures.powered),this._splashTextures.powered=null),this._splashTextures.website&&(this._webglRenderer.DeleteTexture(this._splashTextures.website),this._splashTextures.website=null),this._webglRenderer.ClearRgba(0,0,0,0),this._webglRenderer.Finish(),this._splashState="done",this._gpuTimeStartFrame=this._webglRenderer.GetFrameNumber()}_DrawLoadingScreen(){if(-1!==this._rafId){const a=this._webglRenderer;a.Start(),this._rafId=-1;const b=this._runtime.GetAssetManager().HasHadErrorLoading(),c=this._runtime.GetLoaderStyle();if(3!==c&&(this.SetCssTransform(a),a.ClearRgba(0,0,0,0),a.ResetColor(),a.SetTextureFillMode(),a.SetTexture(null)),0===c)this._DrawProgressBarAndLogoLoadingScreen(b);else if(1===c)this._DrawProgressBarLoadingScreen(b,120,0);else if(2===c)this._DrawPercentTextLoadingScreen(b);else if(3===c)C3.noop();else if(4===c)this._DrawSplashLoadingScreen(b);else throw new Error("invalid loader style");a.Finish(),this._rafId=requestAnimationFrame(()=>this._DrawLoadingScreen())}}_DrawPercentTextLoadingScreen(a){a?this._webglPercentText.SetColorRgb(1,0,0):this._webglPercentText.SetColorRgb(.6,.6,.6),this._webglPercentText.SetText(Math.round(100*this._loadingProgress)+"%");const b=this._canvasCssWidth/2,d=this._canvasCssHeight/2;c.setRect(b-150,d-100,b+150,d+100),this._webglRenderer.SetTexture(this._webglPercentText.GetTexture()),this._webglRenderer.Quad3(c,this._webglPercentText.GetTexRect())}_DrawProgressBarLoadingScreen(a,b,c){const e=this._webglRenderer;e.SetColorFillMode(),a?e.SetColorRgba(1,0,0,1):e.SetColorRgba(.118,.565,1,1);const f=this._canvasCssWidth/2,g=this._canvasCssHeight/2,h=b/2;d.setWH(f-h,g-4+c,Math.floor(b*this._loadingProgress),8),e.Rect(d),d.setWH(f-h,g-4+c,b,8),d.offset(-.5,-.5),d.inflate(.5,.5),e.SetColorRgba(0,0,0,1),e.LineRect2(d),d.inflate(1,1),e.SetColorRgba(1,1,1,1),e.LineRect2(d)}_DrawProgressBarAndLogoLoadingScreen(a){if(!this._loadingLogoAsset)return void this._DrawProgressBarLoadingScreen(a,120,0);const b=this._loadingLogoAsset.GetTexture();if(!b)return void this._DrawProgressBarLoadingScreen(a,120,0);const d=b.GetWidth(),e=b.GetHeight(),f=this._canvasCssWidth/2,g=this._canvasCssHeight/2,h=d/2,i=e/2;c.setRect(f-h,g-i,f+h,g+i),this._webglRenderer.SetTexture(b),this._webglRenderer.Quad(c),this._DrawProgressBarLoadingScreen(a,d,i+16)}_DrawSplashLoadingScreen(b){var c=Math.min,e=Math.max,f=Math.ceil;const g=this._webglRenderer,i=this._splashTextures.logo,j=this._splashTextures.powered,k=this._splashTextures.website,l=Date.now();0===this._splashFrameNumber&&(this._loaderStartTime=l);const m=this._runtime.IsPreview()||this._runtime.IsFBInstantAvailable()&&!this._runtime.IsCordova(),n=m?0:200,o=m?0:3000;let p=1;"fade-in"===this._splashState?p=c((l-this._loaderStartTime)/300,1):"fade-out"===this._splashState&&(p=e(1-(l-this._splashFadeOutStartTime)/300,0)),g.SetColorFillMode(),g.SetColorRgba(.231*p,.251*p,.271*p,p),d.set(0,0,this._canvasCssWidth,this._canvasCssHeight),g.Rect(d);const a=f(this._canvasCssWidth),q=f(this._canvasCssHeight);let h,r;256=300&&2<=this._splashFrameNumber&&(this._splashState="wait",this._splashFadeInFinishTime=l),"wait"===this._splashState&&l-this._splashFadeInFinishTime>=o&&1<=this._loadingProgress&&(this._splashState="fade-out",this._splashFadeOutStartTime=l),("fade-out"===this._splashState&&l-this._splashFadeOutStartTime>=300+n||m&&1<=this._loadingProgress&&500>l-this._loaderStartTime)&&this._splashDoneResolve()}}} + +// c3/runtime.js +"use strict";{const e={"messagePort":null,"baseUrl":"","headless":!1,"hasDom":!0,"isInWorker":!1,"useAudio":!0,"projectData":"","exportType":""};let a=!0;C3.Runtime=class extends C3.DefendedBase{constructor(n){n=Object.assign({},e,n);super(),this._messagePort=n["messagePort"],this._baseUrl=n["baseUrl"],this._isHeadless=!!n["headless"],this._hasDom=!!n["hasDom"],this._isInWorker=!!n["isInWorker"],a=n["ife"],this._useAudio=!!n["useAudio"],this._exportType=n["exportType"],this._isWKWebView=!!n["isWKWebView"],this._isFBInstantAvailable=!!n["isFBInstantAvailable"],this._opusWasmScriptUrl=n["opusWasmScriptUrl"],this._opusWasmBinaryUrl=n["opusWasmBinaryUrl"],this._dataJsonFilename="data.json",this._isDebug=!!("preview"===this._exportType&&n["isDebug"]),this._breakpointsEnabled=this._isDebug,this._isDebugging=this._isDebug,this._debuggingDisabled=0;const t=n["previewImageBlobs"],s=n["previewProjectFileBlobs"];s&&Object.assign(t,s);const i=n["projectData"];i&&(t[this._dataJsonFilename]=i),this._additionalLoadPromises=[],this._projectName="",this._projectVersion="",this._projectUniqueId="",this._originalViewportWidth=0,this._originalViewportHeight=0,this._parallaxXorigin=0,this._parallaxYorigin=0,this._viewportWidth=0,this._viewportHeight=0,this._loaderStyle=0,this._usesLoaderLayout=!1,this._isLoading=!0,this._usesAnyBackgroundBlending=!1;const r="html5"===this._exportType||"scirra-arcade"===this._exportType;this._assetManager=C3.New(C3.AssetManager,this,{defaultLoadPolicy:r?"remote":"local",localUrlBlobs:t,isCordova:"cordova"===this._exportType,isWKWebView:this._isWKWebView,supportedAudioFormats:n["supportedAudioFormats"]}),this._layoutManager=C3.New(C3.LayoutManager,this),this._eventSheetManager=C3.New(C3.EventSheetManager,this),this._pluginManager=C3.New(C3.PluginManager,this),this._collisionEngine=C3.New(C3.CollisionEngine,this),this._timelineManager=C3.New(C3.TimelineManager,this),this._allObjectClasses=[],this._objectClassesByName=new Map,this._objectClassesBySid=new Map,this._familyCount=0,this._allContainers=[],this._allEffectLists=[],this._currentLayoutStack=[],this._instancesPendingCreate=[],this._instancesPendingDestroy=new Map,this._hasPendingInstances=!1,this._isFlushingPendingInstances=!1,this._objectCount=0,this._nextUid=0,this._instancesByUid=new Map,this._instancesToReleaseAtEndOfTick=new Set,this._instancesToReleaseAffectedObjectClasses=new Set,this._objectReferenceTable=[],this._canvasManager=null,this._sampling="trilinear",this._isPixelRoundingEnabled=!1,this._needRender=!0,this._pauseOnBlur=!1,this._isPausedOnBlur=!1,this._tickCallback=(e)=>this.Tick(e),this._rafId=-1,this._tickCount=0,this._tickCountNoSave=0,this._execCount=0,this._hasStarted=!1,this._isInTick=!1,this._hasStartedTicking=!1,this._isLayoutFirstTick=!0,this._suspendCount=0,this._scheduleTriggersThrottle=new C3.PromiseThrottle(1),this._randomNumberCallback=()=>Math.random(),this._startTime=0,this._lastTickTime=0,this._dt1=0,this._dt=0,this._timeScale=1,this._minimumFramerate=30,this._gameTime=C3.New(C3.KahanSum),this._wallTime=C3.New(C3.KahanSum),this._fpsFrameCount=-1,this._fpsLastTime=0,this._fps=0,this._mainThreadTimeCounter=0,this._mainThreadTime=0,this._isLoadingState=!1,this._saveToSlotName="",this._loadFromSlotName="",this._loadFromJson=null,this._lastSaveJson="",this._triggerOnCreateAfterLoad=[],this._savegamesStorage=null,this._dispatcher=C3.New(C3.Event.Dispatcher),this._domEventHandlers=new Map,this._pendingResponsePromises=new Map,this._nextDomResponseId=0,this._didRequestDeviceOrientationEvent=!1,this._didRequestDeviceMotionEvent=!1,this._isReadyToHandleEvents=!1,this._waitingToHandleEvents=[],this._eventObjects={"pretick":C3.New(C3.Event,"pretick",!1),"tick":C3.New(C3.Event,"tick",!1),"tick2":C3.New(C3.Event,"tick2",!1),"instancedestroy":C3.New(C3.Event,"instancedestroy",!1),"beforelayoutchange":C3.New(C3.Event,"beforelayoutchange",!1),"layoutchange":C3.New(C3.Event,"layoutchange",!1)},this._eventObjects["instancedestroy"].instance=null,this._behInstsToTick=C3.New(C3.RedBlackSet,C3.BehaviorInstance.SortByTickSequence),this._behInstsToPostTick=C3.New(C3.RedBlackSet,C3.BehaviorInstance.SortByTickSequence),this._behInstsToTick2=C3.New(C3.RedBlackSet,C3.BehaviorInstance.SortByTickSequence),this._jobScheduler=C3.New(C3.JobSchedulerRuntime,this,n["jobScheduler"]),n["canvas"]&&(this._canvasManager=C3.New(C3.CanvasManager,this)),this._messagePort.onmessage=(a)=>this["_OnMessageFromDOM"](a.data),this.AddDOMComponentMessageHandler("runtime","visibilitychange",(a)=>this._OnVisibilityChange(a)),this.AddDOMComponentMessageHandler("runtime","opus-decode",(a)=>this._WasmDecodeWebMOpus(a["arrayBuffer"])),this.AddDOMComponentMessageHandler("runtime","get-remote-preview-status-info",()=>this._GetRemotePreviewStatusInfo()),this._dispatcher.addEventListener("window-blur",(a)=>this._OnWindowBlur(a)),this._dispatcher.addEventListener("window-focus",()=>this._OnWindowFocus()),this._timelineManager.AddRuntimeListeners()}static Create(e){return C3.New(C3.Runtime,e)}Release(){C3.clearArray(this._allObjectClasses),this._objectClassesByName.clear(),this._objectClassesBySid.clear(),this._layoutManager.Release(),this._layoutManager=null,this._eventSheetManager.Release(),this._eventSheetManager=null,this._pluginManager.Release(),this._pluginManager=null,this._assetManager.Release(),this._assetManager=null,this._collisionEngine.Release(),this._collisionEngine=null,this._timelineManager.Release(),this._timelineManager=null,this._canvasManager&&(this._canvasManager.Release(),this._canvasManager=null),this._dispatcher.Release(),this._dispatcher=null,this._tickEvent=null,this._tickCallback=null}["_OnMessageFromDOM"](e){const a=e["type"];if("event"===a)this._OnEventFromDOM(e);else if("result"===a)this._OnResultFromDOM(e);else throw new Error(`unknown message '${a}'`)}_OnEventFromDOM(a){if(!this._isReadyToHandleEvents)return void this._waitingToHandleEvents.push(a);const e=a["component"],n=a["handler"],t=a["data"],s=a["dispatchRuntimeEvent"],i=a["responseId"];if("runtime"===e&&s){const e=new C3.Event(n);e.data=t,this._dispatcher.dispatchEventAndWaitAsyncSequential(e)}const r=this._domEventHandlers.get(e);if(!r)return void(s||console.warn(`[Runtime] No DOM event handlers for component '${e}'`));const o=r.get(n);if(!o)return void(s||console.warn(`[Runtime] No DOM handler '${n}' for component '${e}'`));let d=null;try{d=o(t)}catch(a){return console.error(`Exception in '${e}' handler '${n}':`,a),void(null!==i&&this._PostResultToDOM(i,!1,a.toString()))}null!==i&&(d&&d.then?d.then((e)=>this._PostResultToDOM(i,!0,e)).catch((a)=>{console.error(`Rejection from '${e}' handler '${n}':`,a),this._PostResultToDOM(i,!1,a.toString())}):this._PostResultToDOM(i,!0,d))}_PostResultToDOM(e,a,n){this._messagePort.postMessage({"type":"result","responseId":e,"isOk":a,"result":n})}_OnResultFromDOM(e){const a=e["responseId"],n=e["isOk"],t=e["result"],s=this._pendingResponsePromises.get(a);n?s.resolve(t):s.reject(t),this._pendingResponsePromises.delete(a)}AddDOMComponentMessageHandler(e,a,n){let t=this._domEventHandlers.get(e);if(t||(t=new Map,this._domEventHandlers.set(e,t)),t.has(a))throw new Error(`[Runtime] Component '${e}' already has handler '${a}'`);t.set(a,n)}PostComponentMessageToDOM(e,a,n){this._messagePort.postMessage({"type":"event","component":e,"handler":a,"data":n,"responseId":null})}PostComponentMessageToDOMAsync(e,a,n){const t=this._nextDomResponseId++,s=new Promise((e,a)=>{this._pendingResponsePromises.set(t,{resolve:e,reject:a})});return this._messagePort.postMessage({"type":"event","component":e,"handler":a,"data":n,"responseId":t}),s}PostToDebugger(e){if(!this.IsDebug())throw new Error("not in debug mode");this.PostComponentMessageToDOM("runtime","post-to-debugger",e)}async Init(e){this.IsDebug()&&(await C3Debugger.Init(this));const[a]=await Promise.all([this._assetManager.FetchJson(this._dataJsonFilename),this._MaybeLoadOpusDecoder(),this._jobScheduler.Init()]);this._LoadDataJson(a),await this._InitialiseCanvas(e),this.IsPreview()||console.info("Made with Construct 3, the game and app creator :: https://www.construct.net");const n=this.GetWebGLRenderer();n?(console.info(`[C3 runtime] Hosted in ${this.IsInWorker()?"worker":"DOM"}, rendering with WebGL ${n.GetWebGLVersionNumber()} [${n.GetUnmaskedRenderer()}]`),n.HasMajorPerformanceCaveat()&&console.warn("[C3 runtime] WebGL indicates a major performance caveat. Software rendering may be in use. This can result in significantly degraded performance.")):console.info(`[C3 runtime] Hosted in ${this.IsInWorker()?"worker":"DOM"}, headless`),this._isReadyToHandleEvents=!0;for(const a of this._waitingToHandleEvents)this._OnEventFromDOM(a);if(C3.clearArray(this._waitingToHandleEvents),this._canvasManager&&this._canvasManager.StartLoadingScreen(),await Promise.all([this._assetManager.WaitForAllToLoad(),...this._additionalLoadPromises]),!this._assetManager.HasHadErrorLoading())return this._canvasManager&&(await this._canvasManager.EndLoadingScreen()),await this._dispatcher.dispatchEventAndWaitAsync(new C3.Event("beforeruntimestart")),await this.Start(),this._messagePort.postMessage({"type":"runtime-ready"}),this}_LoadDataJson(e){const a=e["project"];this._projectName=a[0],this._projectVersion=a[16],this._projectUniqueId=a[31],this._isPixelRoundingEnabled=!!a[9],this._originalViewportWidth=this._viewportWidth=a[10],this._originalViewportHeight=this._viewportHeight=a[11],this._parallaxXorigin=this._originalViewportWidth/2,this._parallaxYorigin=this._originalViewportHeight/2,this._sampling=a[14],this._usesLoaderLayout=!!a[18],this._loaderStyle=a[19],this._nextUid=a[21],this._pauseOnBlur=a[22],this._assetManager._SetAudioFiles(a[7],a[25]),this._assetManager._SetMediaSubfolder(a[8]),this._assetManager._SetFontsSubfolder(a[32]),this._assetManager._SetIconsSubfolder(a[28]),this._assetManager._SetWebFonts(a[29]),this._canvasManager&&(this._canvasManager.SetFullscreenMode(C3.CanvasManager._FullscreenModeNumberToString(a[12])),this._canvasManager.SetFullscreenScalingQuality(a[23]?"high":"low"),this._canvasManager._SetGPUPowerPreference(a[34])),this._pluginManager.CreateSystemPlugin(),this._objectReferenceTable=self.C3_GetObjectRefTable();for(const n of a[2])this._pluginManager.CreatePlugin(n);this._objectReferenceTable=self.C3_GetObjectRefTable();for(const n of a[3]){const e=C3.ObjectClass.Create(this,this._allObjectClasses.length,n);this._allObjectClasses.push(e),this._objectClassesByName.set(e.GetName().toLowerCase(),e),this._objectClassesBySid.set(e.GetSID(),e)}for(const n of a[4]){const e=this._allObjectClasses[n[0]];e._LoadFamily(n)}for(const n of a[27]){const e=n.map((e)=>this._allObjectClasses[e]);this._allContainers.push(C3.New(C3.Container,this,e))}for(const a of this._allObjectClasses)a._OnAfterCreate();for(const n of a[5])this._layoutManager.Create(n);const n=a[1];if(n){const e=this._layoutManager.GetLayoutByName(n);e&&this._layoutManager.SetFirstLayout(e)}for(const n of a[33])this._timelineManager.Create(n);for(const n of a[6])this._eventSheetManager.Create(n);this._eventSheetManager._PostInit(),C3.clearArray(this._objectReferenceTable),this.FlushPendingInstances();let t="any";const s=a[20];1===s?t="portrait":2===s&&(t="landscape"),this.PostComponentMessageToDOM("runtime","set-target-orientation",{"targetOrientation":t})}GetLoaderStyle(){return this._loaderStyle}IsFBInstantAvailable(){return this._isFBInstantAvailable}IsLoading(){return this._isLoading}AddLoadPromise(e){this._additionalLoadPromises.push(e)}_GetNextFamilyIndex(){return this._familyCount++}GetFamilyCount(){return this._familyCount}_AddEffectList(e){this._allEffectLists.push(e)}_GetAllEffectLists(){return this._allEffectLists}async _InitialiseCanvas(e){this._canvasManager&&(await this._canvasManager.CreateCanvas(e),this._canvasManager.InitLoadingScreen(this._loaderStyle))}async _MaybeLoadOpusDecoder(){if(this._assetManager.IsAudioFormatSupported("audio/webm; codecs=opus"))return;let e=null,a=null;try{this.IsWKWebView()?a=await this._assetManager.CordovaFetchLocalFileAsArrayBuffer(this._opusWasmBinaryUrl):e=await this._assetManager.FetchBlob(this._opusWasmBinaryUrl)}catch(e){return void console.info("Failed to fetch Opus decoder WASM; assuming project has no Opus audio.",e)}a?this.AddJobWorkerBuffer(a,"opus-decoder-wasm"):this.AddJobWorkerBlob(e,"opus-decoder-wasm"),await this.AddJobWorkerScripts([this._opusWasmScriptUrl])}async _WasmDecodeWebMOpus(e){const a=await this.AddJob("OpusDecode",{"arrayBuffer":e},[e]);return a}async Start(){if(this._hasStarted=!0,this._startTime=Date.now(),this._usesLoaderLayout){for(const e of this._allObjectClasses)e.IsFamily()||e.IsOnLoaderLayout()||!e.IsWorldType()||e.OnCreate();this._assetManager.WaitForAllToLoad().then(()=>{this._isLoading=!1,this._OnLoadFinished()})}else this._isLoading=!1;this._assetManager.SetInitialLoadFinished(),this.IsDebug()&&C3Debugger.RuntimeInit(a);for(const e of this._layoutManager.GetAllLayouts())e._CreateGlobalNonWorlds();const e=this._layoutManager.GetFirstLayout();await e._Load(null,this.GetWebGLRenderer()),await e._StartRunning(!0),this._fpsLastTime=performance.now(),this._usesLoaderLayout||this._OnLoadFinished();const n=await this.PostComponentMessageToDOMAsync("runtime","before-start-ticking");n["isSuspended"]?this._suspendCount++:this.Tick()}_OnLoadFinished(){this.Trigger(C3.Plugins.System.Cnds.OnLoadFinished,null),this.PostComponentMessageToDOM("runtime","register-sw")}GetObjectReference(e){if(e=Math.floor(e),0>e||e>=this._objectReferenceTable.length)throw new Error("invalid object reference");return this._objectReferenceTable[e]}HasDOM(){return this._hasDom}IsHeadless(){return this._isHeadless}IsInWorker(){return this._isInWorker}GetBaseURL(){return this._baseUrl}GetEventSheetManager(){return this._eventSheetManager}GetEventStack(){return this._eventSheetManager.GetEventStack()}GetCurrentEventStackFrame(){return this._eventSheetManager.GetCurrentEventStackFrame()}GetCurrentEvent(){return this._eventSheetManager.GetCurrentEvent()}GetCurrentCondition(){return this._eventSheetManager.GetCurrentCondition()}IsCurrentConditionFirst(){return 0===this.GetCurrentEventStackFrame().GetConditionIndex()}GetCurrentAction(){return this._eventSheetManager.GetCurrentAction()}GetPluginManager(){return this._pluginManager}GetSystemPlugin(){return this._pluginManager.GetSystemPlugin()}GetObjectClassByIndex(e){if(e=Math.floor(e),0>e||e>=this._allObjectClasses.length)throw new RangeError("invalid index");return this._allObjectClasses[e]}GetObjectClassByName(e){return this._objectClassesByName.get(e.toLowerCase())||null}GetObjectClassBySID(e){return this._objectClassesBySid.get(e)||null}GetSingleGlobalObjectClassByCtor(e){const a=this._pluginManager.GetPluginByConstructorFunction(e);return a?a.GetSingleGlobalObjectClass():null}GetAllObjectClasses(){return this._allObjectClasses}Dispatcher(){return this._dispatcher}GetOriginalViewportWidth(){return this._originalViewportWidth}GetOriginalViewportHeight(){return this._originalViewportHeight}SetOriginalViewportSize(e,a){this._originalViewportWidth=e,this._originalViewportHeight=a}GetViewportWidth(){return this._viewportWidth}GetViewportHeight(){return this._viewportHeight}SetViewportSize(e,a){this._viewportWidth=e,this._viewportHeight=a}GetParallaxXOrigin(){return this._parallaxXorigin}GetParallaxYOrigin(){return this._parallaxYorigin}GetCanvasManager(){return this._canvasManager}GetDrawWidth(){return this._canvasManager?this._canvasManager.GetDrawWidth():this._viewportWidth}GetDrawHeight(){return this._canvasManager?this._canvasManager.GetDrawHeight():this._viewportHeight}GetRenderScale(){return this._canvasManager?this._canvasManager.GetRenderScale():1}GetDisplayScale(){return this._canvasManager?this._canvasManager.GetDisplayScale():1}GetCanvasClientX(){return this._canvasManager?this._canvasManager.GetCanvasClientX():0}GetCanvasClientY(){return this._canvasManager?this._canvasManager.GetCanvasClientY():0}GetCanvasCssWidth(){return this._canvasManager?this._canvasManager.GetCssWidth():0}GetCanvasCssHeight(){return this._canvasManager?this._canvasManager.GetCssHeight():0}GetFullscreenMode(){return this._canvasManager?this._canvasManager.GetFullscreenMode():"off"}GetAdditionalRenderTarget(e){return this._canvasManager?this._canvasManager.GetAdditionalRenderTarget(e):null}ReleaseAdditionalRenderTarget(e){this._canvasManager&&this._canvasManager.ReleaseAdditionalRenderTarget(e)}_SetUsesAnyBackgroundBlending(e){this._usesAnyBackgroundBlending=!!e}UsesAnyBackgroundBlending(){return this._usesAnyBackgroundBlending}GetGPUUtilisation(){return this._canvasManager?this._canvasManager.GetGPUUtilisation():NaN}IsLinearSampling(){return"nearest"!==this.GetSampling()}GetSampling(){return this._sampling}UsesLoaderLayout(){return this._usesLoaderLayout}GetLayoutManager(){return this._layoutManager}GetMainRunningLayout(){return this._layoutManager.GetMainRunningLayout()}GetTimelineManager(){return this._timelineManager}GetAssetManager(){return this._assetManager}LoadImage(e){return this._assetManager.LoadImage(e)}CreateInstance(e,a,n,t){return this.CreateInstanceFromData(e,a,!1,n,t)}CreateInstanceFromData(e,a,n,t,s,i){let r=null,o=null;if(e instanceof C3.ObjectClass){if(o=e,o.IsFamily()){const e=o.GetFamilyMembers(),a=Math.floor(this.Random()*e.length);o=e[a]}r=o.GetDefaultInstanceData()}else r=e,o=this.GetObjectClassByIndex(r[1]);const d=o.GetPlugin().IsWorldType();if(this._isLoading&&d&&!o.IsOnLoaderLayout())return null;const _=a;d||(a=null);let l=n&&!i&&r&&!this._instancesByUid.has(r[2])?r[2]:this._nextUid++;const g=r?r[0]:null,u=C3.New(C3.Instance,{runtime:this,objectType:o,layer:a,worldData:g,instVarData:r?r[3]:null,uid:l});this._instancesByUid.set(l,u);let c=null;if(d&&(c=u.GetWorldInfo(),"undefined"!=typeof t&&"undefined"!=typeof s&&(c.SetX(t),c.SetY(s)),o._SetAnyCollisionCellChanged(!0)),a&&(a._AddInstance(u,!0),(1!==a.GetParallaxX()||1!==a.GetParallaxY())&&o._SetAnyInstanceParallaxed(!0),a.GetLayout().MaybeLoadTexturesFor(o)),(this._objectCount++,o.IsInContainer()&&!n&&!i)){for(const e of o.GetContainer().objectTypes()){if(e===o)continue;const a=this.CreateInstanceFromData(e,_,!1,c?c.GetX():t,c?c.GetY():s,!0);u._AddSibling(a)}for(const e of u.siblings()){e._AddSibling(u);for(const a of u.siblings())e!==a&&e._AddSibling(a)}}o._SetIIDsStale();const m=r?C3.cloneArray(r[5]):null,p=r?r[4].map((e)=>C3.cloneArray(e)):null;if(u._CreateSdkInstance(m,p),d&&g&&14===g.length){const e=g[13];u._SetHasTilemap(),u.GetSdkInstance().LoadTilemapData(e[2],e[0],e[1])}return this._instancesPendingCreate.push(u),this._hasPendingInstances=!0,this.IsDebug()&&C3Debugger.InstanceCreated(u),u}DestroyInstance(e){if(this._instancesToReleaseAtEndOfTick.has(e))return;const a=e.GetObjectClass();let n=this._instancesPendingDestroy.get(a);if(n){if(n.has(e))return;n.add(e)}else n=new Set,n.add(e),this._instancesPendingDestroy.set(a,n);if(this.IsDebug()&&C3Debugger.InstanceDestroyed(e),e._MarkDestroyed(),this._hasPendingInstances=!0,e.IsInContainer())for(const a of e.siblings())this.DestroyInstance(a);if(this._isFlushingPendingInstances&&C3.NotYetImplemented(),!this._layoutManager.IsEndingLayout()){const a=this.GetEventSheetManager();a.BlockFlushingInstances(!0),e._TriggerOnDestroyed(),a.BlockFlushingInstances(!1)}}FlushPendingInstances(){this._hasPendingInstances&&(this._isFlushingPendingInstances=!0,this._FlushInstancesPendingCreate(),this._FlushInstancesPendingDestroy(),this._isFlushingPendingInstances=!1,this._hasPendingInstances=!1,this.UpdateRender())}_FlushInstancesPendingCreate(){for(const e of this._instancesPendingCreate){const a=e.GetObjectClass();a._AddInstance(e);for(const n of a.GetFamilies())n._AddInstance(e),n._SetIIDsStale()}C3.clearArray(this._instancesPendingCreate)}_FlushInstancesPendingDestroy(){this._dispatcher.SetDelayRemoveEventsEnabled(!0);for(const[e,a]of this._instancesPendingDestroy.entries())this._FlushInstancesPendingDestroyForObjectClass(e,a),a.clear();this._instancesPendingDestroy.clear(),this._dispatcher.SetDelayRemoveEventsEnabled(!1)}_FlushInstancesPendingDestroyForObjectClass(e,a){C3.arrayRemoveAllInSet(e.GetInstances(),a),e._SetIIDsStale(),this._instancesToReleaseAffectedObjectClasses.add(e),0===e.GetInstances().length&&e._SetAnyInstanceParallaxed(!1);for(const n of e.GetFamilies())C3.arrayRemoveAllInSet(n.GetInstances(),a),n._SetIIDsStale(),this._instancesToReleaseAffectedObjectClasses.add(n);if(e.GetPlugin().IsWorldType()){const e=new Set([...a].map((e)=>e.GetWorldInfo().GetLayer()));for(const n of e)n._RemoveAllInstancesInSet(a)}for(const n of a){const e=this._eventObjects["instancedestroy"];e.instance=n,this._dispatcher.dispatchEvent(e),this._instancesByUid.delete(n.GetUID());const a=n.GetWorldInfo();a&&(a._RemoveFromCollisionCells(),a._RemoveFromRenderCells()),this._instancesToReleaseAtEndOfTick.add(n),this._objectCount--}}_GetInstancesPendingCreate(){return this._instancesPendingCreate}_GetNewUID(){return this._nextUid++}_MapInstanceByUID(e,a){this._instancesByUid.set(e,a)}_OnWebGLContextLost(){this._dispatcher.dispatchEvent(C3.New(C3.Event,"webglcontextlost")),this.SetSuspended(!0);for(const e of this._allObjectClasses)!e.IsFamily()&&e.HasLoadedTextures()&&e.ReleaseTextures();this.GetMainRunningLayout()._OnWebGLContextLost(),C3.ImageInfo.OnWebGLContextLost(),C3.ImageAsset.OnWebGLContextLost()}async _OnWebGLContextRestored(){await this.GetMainRunningLayout()._Load(null,this.GetWebGLRenderer()),this._dispatcher.dispatchEvent(C3.New(C3.Event,"webglcontextrestored")),this.SetSuspended(!1),this.UpdateRender()}_OnVisibilityChange(a){this.SetSuspended(a["hidden"])}_OnWindowBlur(a){this.IsPreview()&&this._pauseOnBlur&&!C3.Platform.IsMobile&&(a.data["parentHasFocus"]||(this.SetSuspended(!0),this._isPausedOnBlur=!0))}_OnWindowFocus(){this._isPausedOnBlur&&(this.SetSuspended(!1),this._isPausedOnBlur=!1)}IsSuspended(){return 0this._suspendCount&&(this._suspendCount=0);const n=this.IsSuspended();if(!a&&n)console.log("[Construct 3] Suspending"),-1!==this._rafId&&(cancelAnimationFrame(this._rafId),this._rafId=-1),this._dispatcher.dispatchEvent(C3.New(C3.Event,"suspend")),this.Trigger(C3.Plugins.System.Cnds.OnSuspend,null);else if(a&&!n){console.log("[Construct 3] Resuming");const e=performance.now();this._lastTickTime=e,this._fpsLastTime=e,this._fpsFrameCount=0,this._fps=0,this._mainThreadTime=0,this._mainThreadTimeCounter=0,this._dispatcher.dispatchEvent(C3.New(C3.Event,"resume")),this.Trigger(C3.Plugins.System.Cnds.OnResume,null),this.HitBreakpoint()||this.Tick(e)}}_AddBehInstToTick(e){this._behInstsToTick.Add(e)}_AddBehInstToPostTick(e){this._behInstsToPostTick.Add(e)}_AddBehInstToTick2(e){this._behInstsToTick2.Add(e)}_RemoveBehInstToTick(e){this._behInstsToTick.Remove(e)}_RemoveBehInstToPostTick(e){this._behInstsToPostTick.Remove(e)}_RemoveBehInstToTick2(e){this._behInstsToTick2.Remove(e)}_BehaviorTick(){for(const e of this._behInstsToTick)e.Tick()}_BehaviorPostTick(){for(const e of this._behInstsToPostTick)e.PostTick()}_BehaviorTick2(){for(const e of this._behInstsToTick2)e.Tick2()}*_DebugBehaviorTick(){for(const e of this._behInstsToTick){const a=e.Tick();C3.IsIterator(a)&&(yield*a)}}*_DebugBehaviorPostTick(){for(const e of this._behInstsToPostTick){const a=e.PostTick();C3.IsIterator(a)&&(yield*a)}}*_DebugBehaviorTick2(){for(const e of this._behInstsToTick2){const a=e.Tick2();C3.IsIterator(a)&&(yield*a)}}async Tick(e,a){if(this._rafId=-1,this._hasStartedTicking=!0,this._hasStarted&&(!this.IsSuspended()||a)){const a=performance.now();this._isInTick=!0,e||(e=a),await this.Step(e),this.Render(),this.IsSuspended()||-1!==this._rafId||(this._rafId=self.requestAnimationFrame(this._tickCallback)),this._tickCount++,this._tickCountNoSave++,this._execCount++,this._isInTick=!1,this._mainThreadTimeCounter+=performance.now()-a}}async Step(e){const a=this._eventSheetManager,n=this._dispatcher,t=this._eventObjects,s=this.IsDebug(),i=this.IsDebugging();if(this._MeasureDt(e),this.FlushPendingInstances(),a.BlockFlushingInstances(!0),this.PushCurrentLayout(this.GetMainRunningLayout()),s&&C3Debugger.StartMeasuringTime(),i?await a.DebugRunScheduledWaits():a.RunScheduledWaits(),s&&C3Debugger.AddEventsTime(),this.PopCurrentLayout(),a.BlockFlushingInstances(!1),this.FlushPendingInstances(),a.BlockFlushingInstances(!0),await n.dispatchEventAndWaitAsync(t["pretick"]),s&&C3Debugger.StartMeasuringTime(),i?await this.DebugIterateAndBreak(this._DebugBehaviorTick()):this._BehaviorTick(),i?await this.DebugIterateAndBreak(this._DebugBehaviorPostTick()):this._BehaviorPostTick(),s&&C3Debugger.AddBehaviorTickTime(),s&&C3Debugger.StartMeasuringTime(),i?await this.DebugFireGeneratorEventAndBreak(t["tick"]):n.dispatchEvent(t["tick"]),s&&C3Debugger.AddPluginTickTime(),a.BlockFlushingInstances(!1),this._NeedsHandleSaveOrLoad()&&(await this._HandleSaveOrLoad()),this.GetLayoutManager().IsPendingChangeMainLayout()&&(await this._MaybeChangeLayout()),s&&C3Debugger.StartMeasuringTime(),i?await a.DebugRunEvents(this._layoutManager):a.RunEvents(this._layoutManager),s&&C3Debugger.AddEventsTime(),this._collisionEngine.ClearRegisteredCollisions(),0a++;)await this._DoChangeLayout(e.GetPendingChangeMainLayout())}_MeasureDt(e){if(0!==this._lastTickTime){const a=Math.max(e-this._lastTickTime,0);this._dt1=a/1e3;const n=1/this._minimumFramerate;.5n&&(this._dt1=n)}this._lastTickTime=e,this._dt=this._dt1*this._timeScale,this._gameTime.Add(this._dt),this._wallTime.Add(this._dt1),this._canvasManager&&this._canvasManager._UpdateTick(),1e3<=e-this._fpsLastTime&&(this._fpsLastTime+=1e3,1e3<=e-this._fpsLastTime&&(this._fpsLastTime=e),this._fps=this._fpsFrameCount,this._fpsFrameCount=0,this._mainThreadTime=Math.min(this._mainThreadTimeCounter/1e3,1),this._mainThreadTimeCounter=0,this._canvasManager&&this._canvasManager._Update1sFrameRange(),this._collisionEngine._Update1sStats(),this.IsDebug()&&C3Debugger.Update1sPerfStats()),this._fpsFrameCount++}async _DoChangeLayout(e){const a=this._dispatcher,n=this.GetLayoutManager(),t=n.GetMainRunningLayout();await t._StopRunning(),t._Unload(e,this.GetWebGLRenderer()),t===e&&this._eventSheetManager.ClearAllScheduledWaits(),this._collisionEngine.ClearRegisteredCollisions(),a.dispatchEvent(this._eventObjects["beforelayoutchange"]),await e._Load(t,this.GetWebGLRenderer()),await e._StartRunning(!1),a.dispatchEvent(this._eventObjects["layoutchange"]),this.UpdateRender(),this._isLayoutFirstTick=!0,this.FlushPendingInstances()}UpdateRender(){this._needRender=!0}GetWebGLRenderer(){return this._canvasManager?this._canvasManager.GetWebGLRenderer():null}Render(){if(!this._canvasManager||this._canvasManager.IsWebGLContextLost())return;const e=this.GetWebGLRenderer();if(e.Start(),e.CheckForQueryResults(),!this._needRender)return void e.IncrementFrameNumber();const a=this.IsDebug();a&&C3Debugger.StartMeasuringTime(),this._needRender=!1;let n=null;e.SupportsGPUProfiling()&&(n=this._canvasManager.GetGPUFrameTimingsBuffer().AddTimeElapsedQuery(),e.StartQuery(n)),e.SetTextureFillMode(),e.SetAlphaBlend(),e.SetColorRgba(1,1,1,1),e.SetRenderTarget(null),e.SetTexture(null);const t=this._layoutManager.GetMainRunningLayout();t.Draw(e),n&&e.EndQuery(n),e.Finish(),a&&(C3Debugger.AddDrawCallsTime(),C3Debugger.UpdateInspectHighlight()),this._canvasManager&&this._canvasManager._MaybeTakeSnapshot()}Trigger(e,a){if(!this._hasStarted)return!1;const n=!this._isInTick&&!this._eventSheetManager.IsInTrigger();let t=0;n&&(t=performance.now());const s=this.IsDebug();s&&this.SetDebuggingEnabled(!1);const i=this._eventSheetManager._Trigger(this._layoutManager,e,a);if(n){const e=performance.now()-t;this._mainThreadTimeCounter+=e,s&&C3Debugger.AddTriggersTime(e)}return s&&this.SetDebuggingEnabled(!0),i}DebugTrigger(e,a){if(!this.IsDebug())return this.Trigger(e,a);if(this.HitBreakpoint())throw new Error("called DebugTrigger() while stopped on breakpoint");if(!this._isInTick&&!this._eventSheetManager.IsInTrigger())throw new Error("called DebugTrigger() outside of event code - use TriggerAsync() instead");return this._eventSheetManager._DebugTrigger(this._layoutManager,e,a)}async TriggerAsync(e,a){if(!this.IsDebugging())return this.Trigger(e,a);if(!this._hasStarted)return!1;if(this.HitBreakpoint())return this._eventSheetManager.QueueDebugTrigger(e,a);if(!this.GetMainRunningLayout())return this._eventSheetManager.QueueTrigger(e,a);const n=performance.now(),t=this._eventSheetManager._DebugTrigger(this._layoutManager,e,a);let s=t.next();for(;!s.done;)await this.DebugBreak(s.value),s=t.next();return this.IsSuspended()||this._eventSheetManager.IsInTrigger()||(await this._eventSheetManager.RunQueuedDebugTriggersAsync(),this._hasStartedTicking&&-1===this._rafId&&!this._isInTick&&(this._rafId=self.requestAnimationFrame(this._tickCallback))),this._mainThreadTimeCounter+=performance.now()-n,s.value}FastTrigger(e,a,n){const t=this.IsDebug();t&&this.SetDebuggingEnabled(!1);const s=this._eventSheetManager._FastTrigger(this._layoutManager,e,a,n);return t&&this.SetDebuggingEnabled(!0),s}DebugFastTrigger(e,a,n){return this._eventSheetManager._DebugFastTrigger(this._layoutManager,e,a,n)}ScheduleTriggers(e){return this._scheduleTriggersThrottle.Add(e)}PushCurrentLayout(e){this._currentLayoutStack.push(e)}PopCurrentLayout(){if(!this._currentLayoutStack.length)throw new Error("layout stack empty");this._currentLayoutStack.pop()}GetCurrentLayout(){if(!this._currentLayoutStack.length)throw new Error("no current layout");return this._currentLayoutStack[this._currentLayoutStack.length-1]}GetDt(e){return e&&-1!==e.GetTimeScale()?this._dt1*e.GetTimeScale():this._dt}_GetDtFast(){return this._dt}GetDt1(){return this._dt1}GetTimeScale(){return this._timeScale}SetTimeScale(e){(isNaN(e)||0>e)&&(e=0),this._timeScale=e}SetMinimumFramerate(e){this._minimumFramerate=C3.clamp(e,1,120)}GetMinimumFramerate(){return this._minimumFramerate}GetFPS(){return this._fps}GetMainThreadTime(){return this._mainThreadTime}GetStartTime(){return this._startTime}GetGameTime(){return this._gameTime.Get()}GetWallTime(){return this._wallTime.Get()}GetTickCount(){return this._tickCount}GetTickCountNoSave(){return this._tickCountNoSave}IncrementExecCount(){++this._execCount}GetExecCount(){return this._execCount}GetObjectCount(){return this._objectCount}GetProjectName(){return this._projectName}GetProjectVersion(){return this._projectVersion}GetProjectUniqueId(){return this._projectUniqueId}GetInstanceByUID(e){if(this._isLoadingState)throw new Error("cannot call while loading state - wait until afterload event");return this._instancesByUid.get(e)||null}_RefreshUidMap(){this._instancesByUid.clear();for(const e of this._allObjectClasses)if(!e.IsFamily())for(const a of e.GetInstances())this._instancesByUid.set(a.GetUID(),a)}IsPreview(){return"preview"===this._exportType}IsDebug(){return this._isDebug}GetExportType(){return this._exportType}IsCordova(){return"cordova"===this._exportType}IsWKWebView(){return this._isWKWebView}GetCollisionEngine(){return this._collisionEngine}GetSolidBehavior(){return this._pluginManager.GetSolidBehavior()}GetJumpthruBehavior(){return this._pluginManager.GetJumpthruBehavior()}IsLayoutFirstTick(){return this._isLayoutFirstTick}SetPixelRoundingEnabled(a){a=!!a;this._isPixelRoundingEnabled===a||(this._isPixelRoundingEnabled=a,this.UpdateRender())}IsPixelRoundingEnabled(){return this._isPixelRoundingEnabled}SaveToSlot(e){this._saveToSlotName=e}LoadFromSlot(e){this._loadFromSlotName=e}LoadFromJsonString(e){this._loadFromJson=e}GetLastSaveJsonString(){return this._lastSaveJson}_NeedsHandleSaveOrLoad(){return!!(this._saveToSlotName||this._loadFromSlotName||null!==this._loadFromJson)}async _HandleSaveOrLoad(){if(this._saveToSlotName&&(this.FlushPendingInstances(),await this._DoSaveToSlot(this._saveToSlotName),this._ClearSaveOrLoad()),this._loadFromSlotName&&(await this._DoLoadFromSlot(this._loadFromSlotName),this._ClearSaveOrLoad(),this.IsDebug()&&C3Debugger.StepIfPausedInDebugger()),null!==this._loadFromJson){this.FlushPendingInstances();try{await this._DoLoadFromJsonString(this._loadFromJson),this._lastSaveJson=this._loadFromJson,await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadComplete,null),this._lastSaveJson=""}catch(e){console.error("[Construct 3] Failed to load state from JSON string: ",e),await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadFailed,null)}this._ClearSaveOrLoad()}}_ClearSaveOrLoad(){this._saveToSlotName="",this._loadFromSlotName="",this._loadFromJson=null}_GetSavegamesStorage(){return this._savegamesStorage||(this._savegamesStorage=localforage.createInstance({name:"c3-savegames-"+this.GetProjectUniqueId(),description:this.GetProjectName()})),this._savegamesStorage}async _DoSaveToSlot(e){const a=this._SaveToJsonString();try{await this._GetSavegamesStorage().setItem(e,a),console.log("[Construct 3] Saved state to storage ("+a.length+" chars)"),this._lastSaveJson=a,await this.TriggerAsync(C3.Plugins.System.Cnds.OnSaveComplete,null),this._lastSaveJson=""}catch(e){console.error("[Construct 3] Failed to save state to storage: ",e),await this.TriggerAsync(C3.Plugins.System.Cnds.OnSaveFailed,null)}}async _DoLoadFromSlot(e){try{const a=await this._GetSavegamesStorage().getItem(e);if(!a)throw new Error("empty slot");console.log("[Construct 3] Loaded state from storage ("+a.length+" chars)"),await this._DoLoadFromJsonString(a),this._lastSaveJson=a,await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadComplete,null),this._lastSaveJson=""}catch(e){console.error("[Construct 3] Failed to load state from storage: ",e),await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadFailed,null)}}_SaveToJsonString(){const e={"c3save":!0,"version":1,"rt":{"time":this.GetGameTime(),"walltime":this.GetWallTime(),"timescale":this.GetTimeScale(),"tickcount":this.GetTickCount(),"execcount":this.GetExecCount(),"next_uid":this._nextUid,"running_layout":this.GetMainRunningLayout().GetSID(),"start_time_offset":Date.now()-this._startTime},"types":{},"layouts":{},"events":this._eventSheetManager._SaveToJson()};for(const a of this._allObjectClasses)a.IsFamily()||a.HasNoSaveBehavior()||(e["types"][a.GetSID().toString()]=a._SaveToJson());for(const a of this._layoutManager.GetAllLayouts())e["layouts"][a.GetSID().toString()]=a._SaveToJson();return JSON.stringify(e)}IsLoadingState(){return this._isLoadingState}_TriggerOnCreateAfterLoad(e){C3.shallowAssignArray(this._triggerOnCreateAfterLoad,e)}async _DoLoadFromJsonString(e){const a=JSON.parse(e);if(a["c2save"])throw new Error("C2 saves are incompatible with C3 runtime");if(!a["c3save"])throw new Error("not valid C3 save data");if(1n||n>=s.length)throw new Error("missing sibling instance");e._AddSibling(s[n])}}this._dispatcher.dispatchEvent(C3.New(C3.Event,"afterload")),this.UpdateRender()}async AddJobWorkerScripts(e){const a=await Promise.all(e.map((e)=>this._assetManager.FetchBlob(e))),n=a.map((e)=>URL.createObjectURL(e));this._jobScheduler.ImportScriptsToJobWorkers(n)}AddJobWorkerBlob(e,a){this._jobScheduler.SendBlobToJobWorkers(e,a)}AddJobWorkerBuffer(e,a){this._jobScheduler.SendBufferToJobWorkers(e,a)}AddJob(e,a,n){return this._jobScheduler.AddJob(e,a,n)}BroadcastJob(e,a,n){return this._jobScheduler.BroadcastJob(e,a,n)}InvokeDownload(e,a){this.PostComponentMessageToDOM("runtime","invoke-download",{"url":e,"filename":a})}async RasterSvgImage(e,a,n){if(this.IsInWorker())return await this.PostComponentMessageToDOMAsync("runtime","raster-svg-image",{"blob":e,"width":a,"height":n});else{const t=await C3.BlobToImage(e);return await self["C3_RasterSvgImage"](t,a,n)}}RequestDeviceOrientationEvent(){this._didRequestDeviceOrientationEvent||(this._didRequestDeviceOrientationEvent=!0,this.PostComponentMessageToDOM("runtime","enable-device-orientation"))}RequestDeviceMotionEvent(){this._didRequestDeviceMotionEvent||(this._didRequestDeviceMotionEvent=!0,this.PostComponentMessageToDOM("runtime","enable-device-motion"))}Random(){return this._randomNumberCallback()}SetRandomNumberGeneratorCallback(e){this._randomNumberCallback=e}_GetRemotePreviewStatusInfo(){return{"fps":this.GetFPS(),"cpu":this.GetMainThreadTime(),"gpu":this.GetGPUUtilisation(),"layout":this.GetMainRunningLayout()?this.GetMainRunningLayout().GetName():"","renderer":this.GetWebGLRenderer().GetUnmaskedRenderer()}}HitBreakpoint(){return!!this.IsDebug()&&C3Debugger.HitBreakpoint()}DebugBreak(e){return this.IsDebugging()?C3Debugger.DebugBreak(e):Promise.resolve()}DebugBreakNext(){return!!this.IsDebugging()&&C3Debugger.BreakNext()}SetDebugBreakpointsEnabled(a){this._breakpointsEnabled=!!a,this._UpdateDebuggingFlag()}AreDebugBreakpointsEnabled(){return this._breakpointsEnabled}IsDebugging(){return this._isDebugging}SetDebuggingEnabled(e){e?this._debuggingDisabled--:this._debuggingDisabled++,this._UpdateDebuggingFlag()}_UpdateDebuggingFlag(){this._isDebugging=this.IsDebug()&&this._breakpointsEnabled&&0===this._debuggingDisabled}IsCPUProfiling(){return this.IsDebug()&&C3Debugger.IsCPUProfiling()}IsGPUProfiling(){return this.IsDebug()&&this.GetWebGLRenderer().SupportsGPUProfiling()&&C3Debugger.IsGPUProfiling()}async DebugIterateAndBreak(e){if(e)for(const a of e)await this.DebugBreak(a)}DebugFireGeneratorEventAndBreak(e){return this.DebugIterateAndBreak(this._dispatcher.dispatchGeneratorEvent(e))}},self["C3_CreateRuntime"]=C3.Runtime.Create,self["C3_InitRuntime"]=(e,a)=>e.Init(a)} + +// c3/workers/jobSchedulerRuntime.js +"use strict";C3.JobSchedulerRuntime=class extends C3.DefendedBase{constructor(a,b){super(),this._runtime=a,this._jobPromises=new Map,this._nextJobId=0,this._inputPort=b["inputPort"],b["outputPort"].onmessage=(a)=>this._OnJobWorkerMessage(a),this._maxNumWorkers=b["maxNumWorkers"],this._jobWorkerCount=1,this._isCreatingWorker=!1,this._hadErrorCreatingWorker=!1,this._isBroken=!1,this._testOkResolve=null}async Init(){await this._TestMessageChannelWorks()}ImportScriptsToJobWorkers(a){this._isBroken||this._inputPort.postMessage({"type":"_import_scripts","scripts":a})}SendBlobToJobWorkers(a,b){this._isBroken||this._inputPort.postMessage({"type":"_send_blob","blob":a,"id":b})}SendBufferToJobWorkers(a,b){this._isBroken||this._inputPort.postMessage({"type":"_send_buffer","buffer":a,"id":b},[a])}AddJob(a,b,c,d,e){if(this._isBroken)return Promise.reject("messagechannels broken");c||(c=[]);const f=this._nextJobId++,g={"type":a,"isBroadcast":!1,"jobId":f,"params":b,"transferables":c},h=new Promise((a,b)=>{this._jobPromises.set(f,{resolve:a,progress:d,reject:b,cancelled:!1})});return e&&e.SetAction(()=>this._CancelJob(f)),this._inputPort.postMessage(g,c),this._MaybeCreateExtraWorker(),h}BroadcastJob(a,b,c){if(!this._isBroken){c||(c=[]);const d=this._nextJobId++,e={"type":a,"isBroadcast":!0,"jobId":d,"params":b,"transferables":c};this._inputPort.postMessage(e,c)}}_CancelJob(a){const b=this._jobPromises.get(a);b&&(b.cancelled=!0,b.resolve=null,b.progress=null,b.reject=null,this._inputPort.postMessage({"type":"_cancel","jobId":a}))}_OnJobWorkerMessage(a){const b=a.data,c=b["type"],d=b["jobId"];switch(c){case"result":this._OnJobResult(d,b["result"]);break;case"progress":this._OnJobProgress(d,b["progress"]);break;case"error":this._OnJobError(d,b["error"]);break;case"ready":this._OnJobWorkerReady();break;case"_testMessageChannelOk":this._OnTestMessageChannelOk();break;default:throw new Error(`unknown message from worker '${c}'`);}}_OnJobResult(a,b){const c=this._jobPromises.get(a);if(!c)throw new Error("invalid job ID");c.cancelled||c.resolve(b),this._jobPromises.delete(a)}_OnJobProgress(a,b){const c=this._jobPromises.get(a);if(!c)throw new Error("invalid job ID");!c.cancelled&&c.progress&&c.progress(b)}_OnJobError(a,b){const c=this._jobPromises.get(a);if(!c)throw new Error("invalid job ID");c.cancelled||c.reject(b),this._jobPromises.delete(a)}_OnJobWorkerReady(){this._isCreatingWorker&&(this._isCreatingWorker=!1,this._jobWorkerCount++,this._jobWorkerCount=this._maxNumWorkers||this._isCreatingWorker||this._hadErrorCreatingWorker||this._jobPromises.size<=this._jobWorkerCount))try{this._isCreatingWorker=!0;const a=await this._runtime.PostComponentMessageToDOMAsync("runtime","create-job-worker");a["outputPort"].onmessage=(a)=>this._OnJobWorkerMessage(a)}catch(a){this._hadErrorCreatingWorker=!0,this._isCreatingWorker=!1,console.error(`[Construct 3] Failed to create job worker; stopping creating any more (created ${this._jobWorkerCount} so far)`,a)}}_TestMessageChannelWorks(){return this._inputPort.postMessage({"type":"_testMessageChannel"}),self.setTimeout(()=>this._CheckMessageChannelTestTimedOut(),2e3),new Promise((a)=>this._testOkResolve=a)}_OnTestMessageChannelOk(){this._testOkResolve(),this._testOkResolve=null}_CheckMessageChannelTestTimedOut(){this._testOkResolve&&(console.warn("MessageChannel determined to be broken. Job scheduler disabled."),this._isBroken=!0,this._testOkResolve(),this._testOkResolve=null)}}; + +self["C3_Shaders"] = {}; +self["C3_Shaders"]["colorblend"] = { + src: "varying mediump vec2 vTex;\nuniform lowp sampler2D samplerFront;\nuniform mediump vec2 srcStart;\nuniform mediump vec2 srcEnd;\nuniform lowp sampler2D samplerBack;\nuniform mediump vec2 destStart;\nuniform mediump vec2 destEnd;\nprecision mediump float;\nvec3 rgb_to_hsl(vec3 color)\n{\nvec3 hsl = vec3(0.0, 0.0, 0.0);\nfloat fmin = min(min(color.r, color.g), color.b);\nfloat fmax = max(max(color.r, color.g), color.b);\nfloat delta = fmax - fmin;\nhsl.z = (fmax + fmin) / 2.0;\nif (delta == 0.0)\n{\nhsl.x = 0.0;\nhsl.y = 0.0;\n}\nelse\n{\nif (hsl.z < 0.5)\nhsl.y = delta / (fmax + fmin);\nelse\nhsl.y = delta / (2.0 - fmax - fmin);\nfloat dR = (((fmax - color.r) / 6.0) + (delta / 2.0)) / delta;\nfloat dG = (((fmax - color.g) / 6.0) + (delta / 2.0)) / delta;\nfloat dB = (((fmax - color.b) / 6.0) + (delta / 2.0)) / delta;\nif (color.r == fmax)\nhsl.x = dB - dG;\nelse if (color.g == fmax)\nhsl.x = (1.0 / 3.0) + dR - dB;\nelse if (color.b == fmax)\nhsl.x = (2.0 / 3.0) + dG - dR;\nif (hsl.x < 0.0)\nhsl.x += 1.0;\nelse if (hsl.x > 1.0)\nhsl.x -= 1.0;\n}\nreturn hsl;\n}\nfloat hue_to_rgb(float f1, float f2, float hue)\n{\nif (hue < 0.0)\nhue += 1.0;\nelse if (hue > 1.0)\nhue -= 1.0;\nfloat ret;\nif ((6.0 * hue) < 1.0)\nret = f1 + (f2 - f1) * 6.0 * hue;\nelse if ((2.0 * hue) < 1.0)\nret = f2;\nelse if ((3.0 * hue) < 2.0)\nret = f1 + (f2 - f1) * ((2.0 / 3.0) - hue) * 6.0;\nelse\nret = f1;\nreturn ret;\n}\nvec3 hsl_to_rgb(vec3 hsl)\n{\nvec3 rgb = vec3(hsl.z);\nif (hsl.y != 0.0)\n{\nfloat f2;\nif (hsl.z < 0.5)\nf2 = hsl.z * (1.0 + hsl.y);\nelse\nf2 = (hsl.z + hsl.y) - (hsl.y * hsl.z);\nfloat f1 = 2.0 * hsl.z - f2;\nrgb.r = hue_to_rgb(f1, f2, hsl.x + (1.0 / 3.0));\nrgb.g = hue_to_rgb(f1, f2, hsl.x);\nrgb.b = hue_to_rgb(f1, f2, hsl.x - (1.0 / 3.0));\n}\nreturn rgb;\n}\nvoid main(void)\n{\nvec4 front = texture2D(samplerFront, vTex);\nvec3 fronthsl = rgb_to_hsl(front.rgb / front.a);\nmediump vec2 tex = (vTex - srcStart) / (srcEnd - srcStart);\nvec4 back = texture2D(samplerBack, mix(destStart, destEnd, tex));\nvec3 backhsl = rgb_to_hsl(back.rgb / back.a);\nfronthsl = hsl_to_rgb(vec3(fronthsl.x, fronthsl.y, backhsl.z));\nfronthsl *= front.a;\ngl_FragColor = vec4(fronthsl.r, fronthsl.g, fronthsl.b, front.a) * back.a;\n}", + extendBoxHorizontal: 0, + extendBoxVertical: 0, + crossSampling: false, + mustPreDraw: false, + preservesOpaqueness: false, + animated: false, + parameters: [] +}; +self["C3_Shaders"]["burn"] = { + src: "varying mediump vec2 vTex;\nuniform lowp sampler2D samplerFront;\nuniform mediump vec2 srcStart;\nuniform mediump vec2 srcEnd;\nuniform lowp sampler2D samplerBack;\nuniform mediump vec2 destStart;\nuniform mediump vec2 destEnd;\nvoid main(void)\n{\nlowp vec4 front = texture2D(samplerFront, vTex);\nmediump vec2 tex = (vTex - srcStart) / (srcEnd - srcStart);\nlowp vec4 back = texture2D(samplerBack, mix(destStart, destEnd, tex));\nfront.rgb = 1.0 - ((1.0 - back.rgb) / (front.rgb * front.a));\ngl_FragColor = front * back.a;\n}", + extendBoxHorizontal: 0, + extendBoxVertical: 0, + crossSampling: false, + mustPreDraw: false, + preservesOpaqueness: false, + animated: false, + parameters: [] +}; + + +"use strict";{function a(c,a){const b=c[1],d=a[1];if("number"==typeof b&&"number"==typeof d)return b-d;else{const a=""+b,c=""+d;return ac?1:0}}let b=null,c="",d="",e=[],f="",g="",h="";const i=C3.New(C3.ArrayStack);C3.Plugins.System=class extends C3.SDKPluginBase{constructor(a){super(a),this._loopStack=this._runtime.GetEventSheetManager().GetLoopStack(),this._imagesLoadingTotal=0,this._imagesLoadingComplete=0}Release(){super.Release()}UpdateRender(){this._runtime.UpdateRender()}Trigger(a){this._runtime.Trigger(a,null)}GetRegex(a,e){return b&&a===c&&e===d||(b=new RegExp(a,e),c=a,d=e),b.lastIndex=0,b}GetRegexMatches(a,b,c){if(a===f&&b===g&&c===h)return e;const d=this.GetRegex(b,c);return e=a.match(d),f=a,g=b,h=c,e}async _LoadTexturesForObjectClasses(a,b){if(b.length){this._imagesLoadingTotal+=b.length;const c=[];for(const d of b)c.push(a.MaybeLoadTexturesFor(d));await C3.PromiseAllWithProgress(c,()=>{this._imagesLoadingComplete++}),this._imagesLoadingComplete++,this._imagesLoadingComplete===this._imagesLoadingTotal&&(this._runtime.Trigger(C3.Plugins.System.Cnds.OnImageLoadingComplete,null),this._imagesLoadingComplete=0,this._imagesLoadingTotal=0)}}_UnloadTexturesForObjectClasses(a,b){for(const c of b)0===c.GetInstanceCount()&&a.MaybeUnloadTexturesFor(c)}_GetForEachStack(){return i}_Repeat(a){const b=this._runtime.GetEventSheetManager(),c=b.GetEventStack(),d=c.GetCurrentStackFrame(),e=d.GetCurrentEvent(),f=e.GetSolModifiers(),g=d.IsSolModifierAfterCnds(),h=c.Push(e),i=b.GetLoopStack(),j=i.Push();if(j.SetEnd(a),g)for(let c=0;c=c&&!l.IsStopped();--a)d.PushCopySol(h),l.SetIndex(a),g.Retrigger(f,j),d.PopSol(h);else for(let a=b;a>=c&&!l.IsStopped();--a)l.SetIndex(a),g.Retrigger(f,j);}else if(i)for(let a=b;a<=c&&!l.IsStopped();++a)d.PushCopySol(h),l.SetIndex(a),g.Retrigger(f,j),d.PopSol(h);else for(let a=b;a<=c&&!l.IsStopped();++a)l.SetIndex(a),g.Retrigger(f,j);return e.Pop(),k.Pop(),!1}*_DebugFor(a,b,c){const d=this._runtime.GetEventSheetManager(),e=d.GetEventStack(),f=e.GetCurrentStackFrame(),g=f.GetCurrentEvent(),h=g.GetSolModifiers(),i=f.IsSolModifierAfterCnds(),j=e.Push(g),k=d.GetLoopStack(),l=k.Push();if(l.SetName(a),l.SetEnd(c),c=c&&!l.IsStopped();--a)d.PushCopySol(h),l.SetIndex(a),yield*g.DebugRetrigger(f,j),d.PopSol(h);else for(let a=b;a>=c&&!l.IsStopped();--a)l.SetIndex(a),yield*g.DebugRetrigger(f,j);}else if(i)for(let a=b;a<=c&&!l.IsStopped();++a)d.PushCopySol(h),l.SetIndex(a),yield*g.DebugRetrigger(f,j),d.PopSol(h);else for(let a=b;a<=c&&!l.IsStopped();++a)l.SetIndex(a),yield*g.DebugRetrigger(f,j);return e.Pop(),k.Pop(),!1}_ForEach(a){const b=this._runtime.GetEventSheetManager(),c=b.GetEventStack(),d=c.GetCurrentStackFrame(),e=d.GetCurrentEvent(),f=e.GetSolModifiers(),g=d.IsSolModifierAfterCnds(),h=c.Push(e),j=b.GetLoopStack(),k=j.Push(),l=a.IsInContainer(),m=a.GetCurrentSol(),n=i.Push();if(C3.shallowAssignArray(n,m.GetInstances()),k.SetEnd(n.length),g)for(let c=0,g=n.length;c=d+f?(c.set("Every_lastTime",d+f),e>=c.get("Every_lastTime")+.04&&c.set("Every_lastTime",e),c.set("Every_seconds",a),!0):(e=d&&c<=a},CompareVar(a,b,c){return C3.compare(a.GetValue(),b,c)},CompareBoolVar(a){return!!a.GetValue()},CompareTime(a,b){const c=this._runtime.GetGameTime();if(0===a){const a=this._runtime.GetCurrentCondition(),d=a.GetSavedDataMap();return!(d.get("CompareTime_executed")||!(c>=b))&&(d.set("CompareTime_executed",!0),!0)}return C3.compare(c,a,b)},IsNaN(a){return isNaN(a)},AngleWithin(a,b,c){return C3.angleDiff(C3.toRadians(a),C3.toRadians(c))<=C3.toRadians(b)},IsClockwiseFrom(a,b){return C3.angleClockwise(C3.toRadians(a),C3.toRadians(b))},IsBetweenAngles(b,a,c){let d=C3.toRadians(b),e=C3.toRadians(a),f=C3.toRadians(c),g=!C3.angleClockwise(f,e);return g?C3.angleClockwise(d,e)||!C3.angleClockwise(d,f):C3.angleClockwise(d,e)&&!C3.angleClockwise(d,f)},IsValueType(a,b){return"number"==typeof a?0===b:1===b},PickByComparison(a,b,c,d){if(!a)return!1;const e=this._GetForEachStack(),f=e.Push(),g=a.GetCurrentSol();C3.shallowAssignArray(f,g.GetInstances()),g.IsSelectAll()&&C3.clearArray(g._GetOwnElseInstances());const h=this._runtime.GetCurrentCondition();let j=0;for(let e=0,i=f.length;e=d.length)return!1;const e=d[b];return c.PickOne(e),a.ApplySolToContainer(),!0},PickRandom(a){if(!a)return!1;const b=a.GetCurrentSol(),c=b.GetInstances(),d=Math.floor(this._runtime.Random()*c.length);if(d>=c.length)return!1;const e=c[d];return b.PickOne(e),a.ApplySolToContainer(),!0},PickAll(a){if(!a)return!1;if(!a.GetInstanceCount())return!1;const b=a.GetCurrentSol();return b._SetSelectAll(!0),a.ApplySolToContainer(),!0},PickOverlappingPoint(b,c,d){if(!b)return!1;const e=b.GetCurrentSol(),f=e.GetInstances(),g=this._runtime.GetCurrentEvent(),h=g.IsOrBlock(),j=this._runtime.GetCurrentCondition().IsInverted();e.IsSelectAll()?(C3.shallowAssignArray(a,f),e.ClearArrays(),e._SetSelectAll(!1)):h?(C3.shallowAssignArray(a,e._GetOwnElseInstances()),C3.clearArray(e._GetOwnElseInstances())):(C3.shallowAssignArray(a,e._GetOwnInstances()),C3.clearArray(e._GetOwnInstances()));for(let f=0,g=a.length;fb&&(b=0),!!a){const c=a.GetCurrentSol(),d=c.GetInstances();for(const a of d)a.SetTimeScale(b)}},RestoreObjectTimescale(a){if(a){const b=a.GetCurrentSol(),c=b.GetInstances();for(const a of c)a.RestoreTimeScale()}},Wait(a){if(!(0>a))return this._runtime.GetEventSheetManager().AddScheduledWait().InitTimer(a),!0},WaitForSignal(a){return this._runtime.GetEventSheetManager().AddScheduledWait().InitSignal(a),!0},Signal(a){const b=a.toLowerCase();for(const c of this._runtime.GetEventSheetManager().scheduledWaits())c.IsSignal()&&c.GetSignalTag()===b&&c.SetSignalled()},SnapshotCanvas(a,b){const c=this._runtime.GetCanvasManager();c&&(c.SnapshotCanvas(0===a?"image/png":"image/jpeg",b/100).then(()=>this._runtime.TriggerAsync(C3.Plugins.System.Cnds.OnCanvasSnapshot,null)),this.UpdateRender())},SetCanvasSize(a,b){if(!(0>=a||0>=b)){this._runtime.SetViewportSize(a,b);const c=this._runtime.GetCanvasManager();c&&("off"===c.GetCurrentFullscreenMode()?c.SetSize(c.GetLastWidth(),c.GetLastHeight(),!0):(this._runtime.SetOriginalViewportSize(a,b),c.SetSize(c.GetLastWidth(),c.GetLastHeight(),!0)),this._runtime.UpdateRender())}},SetFullscreenQuality(a){const b=this._runtime.GetCanvasManager();b&&"off"!==b.GetCurrentFullscreenMode()&&(b.SetFullscreenScalingQuality(0===a?"low":"high"),b.SetSize(b.GetLastWidth(),b.GetLastHeight(),!0))},SaveState(a){this._runtime.SaveToSlot(a)},LoadState(a){this._runtime.LoadFromSlot(a)},LoadStateJSON(a){this._runtime.LoadFromJsonString(a)},SetHalfFramerateMode(){},ResetPersisted(){for(const a of this._runtime.GetLayoutManager().GetAllLayouts())a.ResetPersistData()},SetPixelRounding(a){this._runtime.SetPixelRoundingEnabled(0!==a)},SetMinimumFramerate(a){this._runtime.SetMinimumFramerate(a)},SortZOrderByInstVar(e,f){if(e){const g=e.GetCurrentSol(),h=g.GetInstances(),j=c,k=d,l=this._runtime.GetCurrentLayout(),m=e.IsFamily(),n=e.GetFamilyIndex();for(let a=0,b=h.length;ac||c>=b.length)){const a=g.GetShaderProgram().GetParameterType(c);if("color"===a){e.setFromRgbValue(d);const a=b[c];if(e.equalsIgnoringAlpha(a))return;a.copyRgb(e)}else{if("percent"===a&&(d/=100),b[c]===d)return;b[c]=d}g.IsActive()&&this._runtime.UpdateRender()}}}},SetLayerForceOwnTexture(a,b){a&&(b=!!b,a.IsForceOwnTexture()===b||(a.SetForceOwnTexture(b),this.UpdateRender()))},SetLayoutScale(a){const b=this._runtime.GetCurrentLayout();b.GetScale()===a||(b.SetScale(a),this.UpdateRender())},SetLayoutAngle(b){b=C3.clampAngle(C3.toRadians(+b));const c=this._runtime.GetCurrentLayout();c.GetAngle()===b||(c.SetAngle(b),this.UpdateRender())},SetLayoutEffectEnabled(a,b){const c=this._runtime.GetCurrentLayout(),d=c.GetEffectList(),f=d.GetEffectTypeByName(b);if(f){const b=1===a;f.IsActive()===b||(f.SetActive(b),d.UpdateActiveEffects(),this._runtime.UpdateRender())}},SetLayoutEffectParam(a,b,c){const d=this._runtime.GetCurrentLayout(),f=d.GetEffectList(),g=f.GetEffectTypeByName(a);if(g){const a=g.GetIndex(),d=f.GetEffectParametersForIndex(a);if(b=Math.floor(b),!(0>b||b>=d.length)){const a=g.GetShaderProgram().GetParameterType(b);if("color"===a){e.setFromRgbValue(c);const a=d[b];if(e.equalsIgnoringAlpha(a))return;a.copyRgb(e)}else{if("percent"===a&&(c/=100),d[b]===c)return;d[b]=c}g.IsActive()&&this._runtime.UpdateRender()}}},ScrollX(a){const b=this._runtime.GetCurrentLayout();b.SetScrollX(a)},ScrollY(a){const b=this._runtime.GetCurrentLayout();b.SetScrollY(a)},Scroll(a,b){const c=this._runtime.GetCurrentLayout();c.SetScrollX(a),c.SetScrollY(b)},ScrollToObject(a){if(a){const b=a.GetFirstPicked();if(b){const a=b.GetWorldInfo();if(a){const b=this._runtime.GetCurrentLayout();b.SetScrollX(a.GetX()),b.SetScrollY(a.GetY())}}}},LoadObjectTextures(a){const b=this._runtime.GetMainRunningLayout();if(b&&a&&!this._runtime.IsLoading()){const c=a.IsFamily()?a.GetFamilyMembers():[a];this._LoadTexturesForObjectClasses(b,c)}},LoadObjectTexturesByName(a){C3.Plugins.System.Acts.LoadObjectTextures.call(this,this._runtime.GetObjectClassByName(a))},UnloadObjectTextures(a){const b=this._runtime.GetMainRunningLayout();if(b&&a){const c=a.IsFamily()?a.GetFamilyMembers():[a];this._UnloadTexturesForObjectClasses(b,c)}},UnloadObjectTexturesByName(a){C3.Plugins.System.Acts.UnloadObjectTexturesByName.call(this,this._runtime.GetObjectClassByName(a))},UnloadUnusedTextures(){const a=this._runtime.GetMainRunningLayout();if(a){const b=a._GetTextureLoadedObjectTypes();this._UnloadTexturesForObjectClasses(a,b)}},LoadLayoutTextures(a){const b=this._runtime.GetMainRunningLayout();a&&b&&!this._runtime.IsLoading()&&this._LoadTexturesForObjectClasses(b,a._GetInitialObjectClasses())},LoadLayoutTexturesByName(a){const b=this._runtime.GetMainRunningLayout(),c=this._runtime.GetLayoutManager().GetLayoutByName(a);c&&b&&!this._runtime.IsLoading()&&this._LoadTexturesForObjectClasses(b,c._GetInitialObjectClasses())}}} + +"use strict";C3.Plugins.System.Exps={int:function(a){return"string"==typeof a&&(a=parseInt(a,10),isNaN(a)&&(a=0)),Math.floor(a)},float:function(a){return"string"==typeof a&&(a=parseFloat(a),isNaN(a)&&(a=0)),a},str(a){return a.toString()},len(a){return"string"==typeof a?a.length:0},random(c,a){return"undefined"==typeof a?this._runtime.Random()*c:this._runtime.Random()*(a-c)+c},choose(...a){const b=Math.floor(this._runtime.Random()*a.length);return a[b]},pi(){return Math.PI},infinity(){return 1/0},sqrt(a){return Math.sqrt(a)},abs(a){return Math.abs(a)},round(a){return Math.round(a)},floor(a){return Math.floor(a)},ceil(a){return Math.ceil(a)},sign(a){return Math.sign(a)},sin(a){return Math.sin(C3.toRadians(a))},cos(a){return Math.cos(C3.toRadians(a))},tan(a){return Math.tan(C3.toRadians(a))},asin(a){return C3.toDegrees(Math.asin(a))},acos(a){return C3.toDegrees(Math.acos(a))},atan(a){return C3.toDegrees(Math.atan(a))},exp(a){return Math.exp(a)},ln(a){return Math.log(a)},log10(a){return Math.log(a)/Math.LN10},max(...a){let b=a[0];"number"!=typeof b&&(b=0);for(let c,d=1,e=a.length;dc&&(b=c);return b},clamp(a,b,c){return C3.clamp(a,b,c)},distance(a,b,c,d){return C3.distanceTo(a,b,c,d)},angle(a,b,c,d){return C3.toDegrees(C3.angleTo(a,b,c,d))},lerp(c,a,b){return C3.lerp(c,a,b)},unlerp(c,a,b){return C3.unlerp(c,a,b)},qarp(d,a,b,c){return C3.qarp(d,a,b,c)},cubic(e,a,b,c,d){return C3.cubic(e,a,b,c,d)},cosp(c,a,b){return C3.cosp(c,a,b)},anglediff(c,a){return C3.toDegrees(C3.angleDiff(C3.toRadians(c),C3.toRadians(a)))},anglelerp(c,a,b){return C3.toDegrees(C3.angleLerp(C3.toRadians(c),C3.toRadians(a),b))},anglerotate(d,a,b){return C3.toDegrees(C3.angleRotate(C3.toRadians(d),C3.toRadians(a),C3.toRadians(b)))},setbit(a,c,b){return a|=0,c|=0,b=0===b?0:1,a&~(1<b||b>=d.length?"":d[b]},tokencount(a,b){return"string"==typeof a&&"string"==typeof b&&a.length?a.split(b).length:0},find(a,b){return"string"==typeof a&&"string"==typeof b?a.search(new RegExp(C3.EscapeRegex(b),"i")):-1},findcase(a,b){return"string"==typeof a&&"string"==typeof b?a.search(new RegExp(C3.EscapeRegex(b),"")):-1},replace(a,b,c){return"string"==typeof a&&"string"==typeof b&&"string"==typeof c?a.replace(new RegExp(C3.EscapeRegex(b),"gi"),c):"string"==typeof a?a:""},regexsearch(a,b,c){const d=this.GetRegex(b,c);return a?a.search(d):-1},regexreplace(a,b,c,d){const e=this.GetRegex(b,c);return a?a.replace(e,d):""},regexmatchcount(a,b,c){const d=this.GetRegexMatches(a.toString(),b,c);return d?d.length:0},regexmatchat(a,b,c,d){d=Math.floor(d);const e=this.GetRegexMatches(a.toString(),b,c);return!e||0>d||d>=e.length?"":e[d]},zeropad(a,b){let c=0>a?"-":"";0>a&&(a=-a);const d=b-a.toString().length;return c+="0".repeat(Math.max(d,0)),c+a.toString()},urlencode(a){return encodeURIComponent(a)},urldecode(a){return decodeURIComponent(a)},dt(){return this._runtime._GetDtFast()},timescale(){return this._runtime.GetTimeScale()},wallclocktime(){return(Date.now()-this._runtime.GetStartTime())/1e3},unixtime(){return Date.now()},time(){return this._runtime.GetGameTime()},tickcount(){return this._runtime.GetTickCount()},objectcount(){return this._runtime.GetObjectCount()},fps(){return this._runtime.GetFPS()},cpuutilisation(){return this._runtime.GetMainThreadTime()},gpuutilisation(){return this._runtime.GetGPUUtilisation()},windowwidth(){return this._runtime.GetCanvasManager().GetDeviceWidth()},windowheight(){return this._runtime.GetCanvasManager().GetDeviceHeight()},originalwindowwidth(){return this._runtime.GetOriginalViewportWidth()},originalwindowheight(){return this._runtime.GetOriginalViewportHeight()},originalviewportwidth(){return this._runtime.GetOriginalViewportWidth()},originalviewportheight(){return this._runtime.GetOriginalViewportHeight()},scrollx(){return this._runtime.GetCurrentLayout().GetScrollX()},scrolly(){return this._runtime.GetCurrentLayout().GetScrollY()},layoutname(){return this._runtime.GetCurrentLayout().GetName()},layoutscale(){return this._runtime.GetCurrentLayout().GetScale()},layoutangle(){return C3.toDegrees(this._runtime.GetCurrentLayout().GetAngle())},layoutwidth(){return this._runtime.GetCurrentLayout().GetWidth()},layoutheight(){return this._runtime.GetCurrentLayout().GetHeight()},viewportleft(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getLeft():0},viewporttop(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getTop():0},viewportright(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getRight():0},viewportbottom(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getBottom():0},viewportwidth(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().width():0},viewportheight(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().height():0},canvastolayerx(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.CanvasCssToLayer(b,c)[0]:0},canvastolayery(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.CanvasCssToLayer(b,c)[1]:0},layertocanvasx(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.LayerToCanvasCss(b,c)[0]:0},layertocanvasy(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.LayerToCanvasCss(b,c)[1]:0},layerscale(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetOwnScale():0},layerangle(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?C3.toDegrees(b.GetOwnAngle()):0},layeropacity(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?100*b.GetOpacity():0},layerscalerate(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetScaleRate():0},layerparallaxx(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?100*b.GetParallaxX():0},layerparallaxy(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?100*b.GetParallaxY():0},layerzelevation(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetZElevation():0},layerindex(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetIndex():-1},canvassnapshot(){const a=this._runtime.GetCanvasManager();return a?a.GetCanvasSnapshotUrl():""},loopindex(a){const b=this._loopStack;if(!b.IsInLoop())return 0;if(a){const c=b.FindByName(a);return c?c.GetIndex():0}return b.GetCurrent().GetIndex()},savestatejson(){return this._runtime.GetLastSaveJsonString()},loadingprogress(){return this._runtime.GetAssetManager().GetLoadProgress()},imageloadingprogress(){return 0===this._imagesLoadingTotal?1:this._imagesLoadingComplete/this._imagesLoadingTotal},renderer(){return"webgl"},rendererdetail(){return this._runtime.GetWebGLRenderer().GetUnmaskedRenderer()},imagememoryusage(){let a=this._runtime.GetWebGLRenderer().GetEstimatedTextureMemoryUsage();return Math.round(100*a/1048576)/100},rgb(a,c,d){return C3.PackRGB(a,c,d)},rgbex(a,c,d){return C3.PackRGBEx(a/100,c/100,d/100)},rgba(c,d,e,b){return C3.PackRGBAEx(c/100,d/100,e/100,b/100)},rgbex255(a,c,d){return C3.PackRGBEx(a/255,c/255,d/255)},rgba255(c,d,e,b){return C3.PackRGBAEx(c/255,d/255,e/255,b/255)},projectname(){return this._runtime.GetProjectName()},projectversion(){return this._runtime.GetProjectVersion()},currenteventsheetname(){return this._runtime.GetCurrentEvent().GetEventSheet().GetName()},currenteventnumber(){return this._runtime.GetCurrentEvent().GetDisplayNumber()}}; + +"use strict";C3.Plugins.Sprite=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Sprite.Type=class extends C3.SDKTypeBase{constructor(a){super(a),this._animations=a.GetAnimations()}Release(){C3.clearArray(this._animations),super.Release()}OnCreate(){for(const b of this._animations)b.LoadAllAssets(this._runtime)}LoadTextures(b){const c={sampling:this._runtime.GetSampling()};return Promise.all(this._animations.map((d)=>d.LoadAllTextures(b,c)))}ReleaseTextures(){for(const b of this._animations)b.ReleaseAllTextures()}OnDynamicTextureLoadComplete(){this._UpdateAllCurrentTexture()}_UpdateAllCurrentTexture(){for(const a of this._objectClass.GetInstances())a.GetSdkInstance()._UpdateCurrentTexture()}FinishCondition(a){C3.Plugins.Sprite._FinishCondition(this,a)}}; + +"use strict";{const a=C3.New(C3.Quad),b=C3.New(C3.Vector2);C3.Plugins.Sprite.Instance=class extends C3.SDKWorldInstanceBase{constructor(a,b){super(a);let c=!0,d="",e=0,f=!0;b&&(c=!!b[0],d=b[1],e=b[2],f=b[3]),this._currentAnimation=this._objectClass.GetAnimationByName(d)||this._objectClass.GetAnimations()[0],this._currentFrameIndex=C3.clamp(e,0,this._currentAnimation.GetFrameCount()-1),this._currentAnimationFrame=this._currentAnimation.GetFrameAt(this._currentFrameIndex);const g=this._currentAnimationFrame.GetImageInfo();this._currentTexture=g.GetTexture(),this._currentRcTex=g.GetTexRect(),this.HandleWebGLContextLoss(),this._isPlayingForwards=0<=this._currentAnimation.GetSpeed(),this._currentAnimationSpeed=Math.abs(this._currentAnimation.GetSpeed()),this._currentAnimationRepeatTo=this._currentAnimation.GetRepeatTo(),this._animationTimer=C3.New(C3.KahanSum),this._frameStartTime=0,this._isAnimationPlaying=!0,this._animationRepeats=0,this._animTriggerName="",this._isInAnimTrigger=!1,this._changeAnimFrameIndex=-1,this._changeAnimationName="",this._changeAnimationFrom=0;const h=this.GetWorldInfo();this._bquadRef=h.GetBoundingQuad(),h.SetVisible(c),h.SetCollisionEnabled(f),h.SetOriginX(this._currentAnimationFrame.GetOriginX()),h.SetOriginY(this._currentAnimationFrame.GetOriginY()),h.SetSourceCollisionPoly(this._currentAnimationFrame.GetCollisionPoly()),h.SetBboxChanged(),(1!==this._objectClass.GetAnimationCount()||1!==this._objectClass.GetAnimations()[0].GetFrameCount())&&0!==this._currentAnimationSpeed&&this._StartTicking()}Release(){this._currentAnimation=null,this._currentAnimationFrame=null,this._currentTexture=null,this._animationTimer=null,super.Release()}GetCurrentImageInfo(){return this._currentAnimationFrame.GetImageInfo()}OnWebGLContextLost(){this._currentTexture=null}OnWebGLContextRestored(){this._UpdateCurrentTexture()}Draw(b){var c=Math.round;const d=this._currentTexture;if(null!==d){const e=this._bquadRef,f=this._currentRcTex;if(b.SetTexture(d),this._runtime.IsPixelRoundingEnabled()){const d=this.GetWorldInfo(),g=c(d.GetX())-d.GetX(),h=c(d.GetY())-d.GetY();a.copy(e),a.offset(g,h),b.Quad3(a,f)}else b.Quad3(e,f)}}_DrawCollisionPoly(a){const b=this.GetWorldInfo(),c=b.GetTransformedCollisionPoly();a.SetColorFillMode(),a.SetColorRgba(1,0,0,1);const d=c.pointsArr(),e=b.GetX(),f=b.GetY();for(let b=0,c=d.length;b=g&&(j?(this._isPlayingForwards=!1,this._currentFrameIndex=g-2):i?this._currentFrameIndex=f:(this._animationRepeats++,this._animationRepeats>=h?this._FinishAnimation(!1):this._currentFrameIndex=f)),0>this._currentFrameIndex&&(j?(this._currentFrameIndex=1,this._isPlayingForwards=!0,!i&&(this._animationRepeats++,this._animationRepeats>=h&&this._FinishAnimation(!0))):i?this._currentFrameIndex=f:(this._animationRepeats++,this._animationRepeats>=h?this._FinishAnimation(!0):this._currentFrameIndex=f)),this._currentFrameIndex=C3.clamp(this._currentFrameIndex,0,g-1);const k=b.GetFrameAt(this._currentFrameIndex);c>this._frameStartTime+k.GetDuration()/a&&(this._frameStartTime=c),this._OnFrameChanged(d,k)}}_FinishAnimation(a){this._currentFrameIndex=a?0:this._currentAnimation.GetFrameCount()-1,this._isAnimationPlaying=!1,this._animTriggerName=this._currentAnimation.GetName(),this._isInAnimTrigger=!0,this.Trigger(C3.Plugins.Sprite.Cnds.OnAnyAnimFinished),this.Trigger(C3.Plugins.Sprite.Cnds.OnAnimFinished),this._isInAnimTrigger=!1,this._animationRepeats=0}_OnFrameChanged(a,b){const c=this.GetWorldInfo(),d=a.GetImageInfo(),e=b.GetImageInfo(),f=d.GetWidth(),g=d.GetHeight(),h=e.GetWidth(),i=e.GetHeight();f!==h&&c.SetWidth(c.GetWidth()*(h/f)),g!==i&&c.SetHeight(c.GetHeight()*(i/g)),c.SetOriginX(b.GetOriginX()),c.SetOriginY(b.GetOriginY()),c.SetSourceCollisionPoly(b.GetCollisionPoly()),c.SetBboxChanged(),this._currentAnimationFrame=b,this._currentTexture=e.GetTexture(),this._currentRcTex=e.GetTexRect();const j=this.GetInstance().GetBehaviorInstances();for(let c=0,d=j.length;cthis.CallAction(a.SetAnim,b,0)},{name:"plugins.sprite.debugger.animation-properties.current-frame",value:this._currentFrameIndex,onedit:(b)=>this.CallAction(a.SetAnimFrame,b)},{name:"plugins.sprite.debugger.animation-properties.is-playing",value:this._isAnimationPlaying,onedit:(b)=>b?this.CallAction(a.StartAnim,0):this.CallAction(a.StopAnim)},{name:"plugins.sprite.debugger.animation-properties.speed",value:this._currentAnimationSpeed,onedit:(b)=>this.CallAction(a.SetAnimSpeed,b)},{name:"plugins.sprite.debugger.animation-properties.repeats",value:this._animationRepeats,onedit:(a)=>this._animationRepeats=a}]}]}SaveToJson(){const a={"a":this._currentAnimation.GetSID()};0!==this._frameStartTime&&(a["fs"]=this._frameStartTime);const b=this.GetAnimationTime();0!==b&&(a["at"]=b),0!==this._currentFrameIndex&&(a["f"]=this._currentFrameIndex),0!==this._currentAnimationSpeed&&(a["cas"]=this._currentAnimationSpeed),1!==this._animationRepeats&&(a["ar"]=this._animationRepeats),0!==this._currentAnimationRepeatTo&&(a["rt"]=this._currentAnimationRepeatTo),this._isAnimationPlaying||(a["ap"]=this._isAnimationPlaying),this._isPlayingForwards||(a["af"]=this._isPlayingForwards);const c=this.GetWorldInfo();return c.IsCollisionEnabled()&&(a["ce"]=c.IsCollisionEnabled()),a}LoadFromJson(a){const b=this.GetObjectClass().GetAnimationBySID(a["a"]);b&&(this._currentAnimation=b),this._frameStartTime=a.hasOwnProperty("fs")?a["fs"]:0,this._animationTimer.Set(a.hasOwnProperty("at")?a["at"]:0);const c=a.hasOwnProperty("f")?a["f"]:0;this._currentFrameIndex=C3.clamp(c,0,this._currentAnimation.GetFrameCount()-1),this._currentAnimationSpeed=a.hasOwnProperty("cas")?a["cas"]:0,this._animationRepeats=a.hasOwnProperty("ar")?a["ar"]:1;const d=a.hasOwnProperty("rt")?a["rt"]:0;this._currentAnimationRepeatTo=C3.clamp(d,0,this._currentAnimation.GetFrameCount()-1),this._isAnimationPlaying=!a.hasOwnProperty("ap")||!!a["ap"],this._isPlayingForwards=!a.hasOwnProperty("af")||!!a["af"];const e=this._currentAnimation.GetFrameAt(this._currentFrameIndex),f=e.GetImageInfo();this._currentAnimationFrame=e,this._currentTexture=f.GetTexture(),this._currentRcTex=f.GetTexRect();const g=this.GetWorldInfo();g.SetOriginX(e.GetOriginX()),g.SetOriginY(e.GetOriginY()),g.SetSourceCollisionPoly(e.GetCollisionPoly()),g.SetCollisionEnabled(!!a["ce"])}GetPropertyValueByIndex(a){const b=this.GetWorldInfo();return 3===a?b.IsCollisionEnabled():void 0}SetPropertyValueByIndex(a,b){const c=this.GetWorldInfo();3===a?c.SetCollisionEnabled(!!b):void 0}}} + +"use strict";{function a(c,d,a,b){const e=d.GetUID(),f=a.GetUID();ec(s,a.instance)));const t=l.GetCurrentSol(),u=e.GetCurrentSol(),v=t.GetInstances();let w=null;for(let c=0;cc(t,a.instance)));const u=q.GetCurrentSol(),v=e.GetCurrentSol(),w=u.GetInstances();let x=null;for(let c=0;cthis.GetWorldInfo().GetWidth()},IsFlipped(){return 0>this.GetWorldInfo().GetHeight()},OnURLLoaded(){return!0},IsCollisionEnabled(){return this.GetWorldInfo().IsCollisionEnabled()}}} + +"use strict";C3.Plugins.Sprite.Acts={Spawn(a,b,c){if(!a||!b)return;const[d,e]=this.GetImagePoint(c),f=this._runtime.CreateInstance(a,b,d,e);if(!f)return;if(a.GetPlugin().IsRotatable()){const a=f.GetWorldInfo();a.SetAngle(this.GetWorldInfo().GetAngle()),a.SetBboxChanged()}const g=this._runtime.GetEventSheetManager();if(g.BlockFlushingInstances(!0),f._TriggerOnCreated(),f.IsInContainer())for(const a of f.siblings())a._TriggerOnCreated();g.BlockFlushingInstances(!1);const h=this._runtime.GetCurrentAction(),i=h.GetSavedDataMap();let j=!1;if((!i.has("Spawn_LastExec")||i.get("Spawn_LastExec")d.GetWidth()?-1:1,f=0>d.GetHeight()?-1:1,g=c.GetWidth()*a*e,h=c.GetHeight()*a*f;(d.GetWidth()!==g||d.GetHeight()!==h)&&(d.SetSize(g,h),d.SetBboxChanged())},LoadURL(a,b){const c=this._currentAnimationFrame,d=c.GetImageInfo(),e=this.GetWorldInfo(),f=this._runtime;return d.GetURL()===a?(0===b&&(e.SetSize(d.GetWidth(),d.GetHeight()),e.SetBboxChanged()),void this.Trigger(C3.Plugins.Sprite.Cnds.OnURLLoaded)):void(async()=>{const c=C3.New(C3.ImageInfo);await c.LoadDynamicAsset(f,a),await c.LoadStaticTexture(f.GetWebGLRenderer(),{sampling:this._runtime.GetSampling()}),d.ReplaceWith(c),this._sdkType._UpdateAllCurrentTexture(),this.WasReleased()||0!==b||(e.SetSize(d.GetWidth(),d.GetHeight()),e.SetBboxChanged()),f.UpdateRender(),this.WasReleased()||(await this.TriggerAsync(C3.Plugins.Sprite.Cnds.OnURLLoaded))})()},SetCollisions(a){this.GetWorldInfo().SetCollisionEnabled(a)},SetSolidCollisionFilter(a,b){this.GetWorldInfo().SetSolidCollisionFilter(0===a,b)},SetEffect(a){this.GetWorldInfo().SetBlendMode(a),this._runtime.UpdateRender()}}; + +"use strict";C3.Plugins.Sprite.Exps={AnimationFrame(){return this._currentFrameIndex},AnimationFrameCount(){return this._currentAnimation.GetFrameCount()},AnimationName(){return this._currentAnimation.GetName()},AnimationSpeed(){return this._isPlayingForwards?this._currentAnimationSpeed:-this._currentAnimationSpeed},ImagePointX(a){return this.GetImagePoint(a)[0]},ImagePointY(a){return this.GetImagePoint(a)[1]},ImagePointCount(){return this._currentAnimationFrame.GetImagePointCount()},ImageWidth(){return this.GetCurrentImageInfo().GetWidth()},ImageHeight(){return this.GetCurrentImageInfo().GetHeight()}}; + +"use strict";C3.Plugins.Keyboard=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Keyboard.Type=class extends C3.SDKTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";C3.Plugins.Keyboard.Instance=class extends C3.SDKInstanceBase{constructor(a){super(a),this._keyMap=Array(256),this._typedKeyMap=Array(256),this._triggerKey=0;const b=this.GetRuntime().Dispatcher();this._disposables=new C3.CompositeDisposable(C3.Disposable.From(b,"keydown",(a)=>this._OnKeyDown(a.data)),C3.Disposable.From(b,"keyup",(a)=>this._OnKeyUp(a.data)),C3.Disposable.From(b,"window-blur",()=>this._OnWindowBlur()))}Release(){super.Release()}async _OnKeyDown(a){const b=a["which"];this._keyMap[b]||(this._keyMap[b]=!0,this._typedKeyMap[b]=a["key"],this._triggerKey=b,await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnAnyKey),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKey),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKeyCode))}async _OnKeyUp(a){const b=a["which"];this._keyMap[b]=!1,this._typedKeyMap[b]=a["key"],this._triggerKey=b,await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnAnyKeyReleased),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKeyReleased),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKeyCodeReleased)}async _OnWindowBlur(){for(let a=0,b=this._keyMap.length;aa||a>=this._keyMap.length)&&!!this._keyMap[a]},OnKeyCode(a){return this._triggerKey===a},OnKeyCodeReleased(a){return this._triggerKey===a}}; + +"use strict";C3.Plugins.Keyboard.Acts={}; + +"use strict";{function a(a){return a=Math.floor(a),8===a?"backspace":9===a?"tab":13===a?"enter":16===a?"shift":17===a?"control":18===a?"alt":19===a?"pause":20===a?"capslock":27===a?"esc":33===a?"pageup":34===a?"pagedown":35===a?"end":36===a?"home":37===a?"\u2190":38===a?"\u2191":39===a?"\u2192":40===a?"\u2193":45===a?"insert":46===a?"del":91===a?"left window key":92===a?"right window key":93===a?"select":96===a?"numpad 0":97===a?"numpad 1":98===a?"numpad 2":99===a?"numpad 3":100===a?"numpad 4":101===a?"numpad 5":102===a?"numpad 6":103===a?"numpad 7":104===a?"numpad 8":105===a?"numpad 9":106===a?"numpad *":107===a?"numpad +":109===a?"numpad -":110===a?"numpad .":111===a?"numpad /":112===a?"F1":113===a?"F2":114===a?"F3":115===a?"F4":116===a?"F5":117===a?"F6":118===a?"F7":119===a?"F8":120===a?"F9":121===a?"F10":122===a?"F11":123===a?"F12":144===a?"numlock":145===a?"scroll lock":186===a?";":187===a?"=":188===a?",":189===a?"-":190===a?".":191===a?"/":192===a?"'":219===a?"[":220===a?"\\":221===a?"]":222===a?"#":223===a?"`":String.fromCharCode(a)}C3.Plugins.Keyboard.Exps={LastKeyCode(){return this._triggerKey},StringFromKeyCode(b){return a(b)},TypedKey(){return this._typedKeyMap[this._triggerKey]||""}}} + +"use strict";C3.Plugins.Text=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Text.Type=class extends C3.SDKTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}LoadTextures(){}ReleaseTextures(){}}; + +"use strict";{const a=[0,0,0],b=["left","center","right"],c=["top","center","bottom"],d=new C3.Rect,e=new C3.Quad;C3.Plugins.Text.Instance=class extends C3.SDKWorldInstanceBase{constructor(a,b){if(super(a),this._text="",this._enableBBcode=!0,this._faceName="Arial",this._ptSize=12,this._lineHeightOffset=0,this._isBold=!1,this._isItalic=!1,this._color=C3.New(C3.Color),this._horizontalAlign=0,this._verticalAlign=0,this._wrapByWord=!0,this._typewriterStartTime=-1,this._typewriterEndTime=-1,this._typewriterLength=0,this._webglText=C3.New(C3.Gfx.WebGLText,this._runtime.GetWebGLRenderer(),{timeout:5}),this._webglText.ontextureupdate=()=>this._runtime.UpdateRender(),this._webglText.SetIsAsync(!1),b){this._text=b[0],this._enableBBcode=!!b[1],this._faceName=b[2],this._ptSize=b[3],this._lineHeightOffset=b[4],this._isBold=!!b[5],this._isItalic=!!b[6],this._horizontalAlign=b[8],this._verticalAlign=b[9],this._wrapByWord=0===b[10];const a=b[7];this._color.setRgb(a[0],a[1],a[2]),this.GetWorldInfo().SetVisible(b[11])}this._UpdateTextSettings()}Release(){this._CancelTypewriter(),this._webglText.Release(),this._webglText=null,super.Release()}_UpdateTextSettings(){const a=this._webglText;a.SetText(this._text),a.SetBBCodeEnabled(this._enableBBcode),a.SetFontName(this._faceName),a.SetFontSize(this._ptSize),a.SetLineHeight(this._lineHeightOffset),a.SetBold(this._isBold),a.SetItalic(this._isItalic),a.SetColor(this._color),a.SetHorizontalAlignment(b[this._horizontalAlign]),a.SetVerticalAlignment(c[this._verticalAlign]),a.SetWordWrapMode(this._wrapByWord?"word":"character")}_UpdateTextSize(){const a=this.GetWorldInfo(),b=a.GetLayer(),c=b.GetRenderScale()*b.Get2DScaleFactorToZ(a.GetTotalZElevation());this._webglText.SetSize(a.GetWidth(),a.GetHeight(),c)}Draw(a){var b=Math.round;const c=this.GetWorldInfo();this._UpdateTextSize();const f=this._webglText.GetTexture();if(!f)return;const g=c.GetLayer();let h=c.GetBoundingQuad();if(0===c.GetAngle()&&0===c.GetLayer().GetAngle()&&0===c.GetTotalZElevation()){const[c,i]=g.LayerToDrawSurface(h.getTlx(),h.getTly()),[j,k]=g.LayerToDrawSurface(h.getBrx(),h.getBry()),l=c-b(c),m=i-b(i);d.set(c,i,j,k),d.offset(-l,-m),e.setFromRect(d);const[n,o]=a.GetRenderTargetSize(a.GetRenderTarget());this._runtime.GetCanvasManager().SetDeviceTransform(a,n,o),a.SetTexture(f),a.Quad3(e,this._webglText.GetTexRect()),g._SetTransform(a)}else{let c=0,d=0;this._runtime.IsPixelRoundingEnabled()&&(c=h.getTlx()-b(h.getTlx()),d=h.getTly()-b(h.getTly())),(0!=c||0!=d)&&(e.copy(h),e.offset(-c,-d),h=e),a.SetTexture(f),a.Quad3(h,this._webglText.GetTexRect())}}SaveToJson(){const a={"t":this._text,"c":this._color.toJSON(),"fn":this._faceName,"ps":this._ptSize};return this._enableBBcode&&(a["bbc"]=this._enableBBcode),0!==this._horizontalAlign&&(a["ha"]=this._horizontalAlign),0!==this._verticalAlign&&(a["va"]=this._verticalAlign),this._wrapByWord||(a["wr"]=this._wrapByWord),0!==this._lineHeightOffset&&(a["lho"]=this._lineHeightOffset),this._isBold&&(a["b"]=this._isBold),this._isItalic&&(a["i"]=this._isItalic),-1!==this._typewriterEndTime&&(a["tw"]={"st":this._typewriterStartTime,"en":this._typewriterEndTime,"l":this._typewriterLength}),a}LoadFromJson(a){if(this._CancelTypewriter(),this._text=a["t"],this._color.setFromJSON(a["c"]),this._faceName=a["fn"],this._ptSize=a["ps"],this._enableBBcode=!!a.hasOwnProperty("bbc")&&a["bbc"],this._horizontalAlign=a.hasOwnProperty("ha")?a["ha"]:0,this._verticalAlign=a.hasOwnProperty("va")?a["va"]:0,this._wrapByWord=!a.hasOwnProperty("wr")||a["wr"],this._lineHeightOffset=a.hasOwnProperty("lho")?a["lho"]:0,this._isBold=!!a.hasOwnProperty("b")&&a["b"],this._isItalic=!!a.hasOwnProperty("i")&&a["i"],a.hasOwnProperty("tw")){const b=a["tw"];this._typewriterStartTime=b["st"],this._typewriterEndTime=b["en"],this._typewriterLength=b["l"]}this._UpdateTextSettings(),-1!==this._typewriterEndTime&&this._StartTicking()}GetPropertyValueByIndex(b){return 0===b?this._text:1===b?this._enableBBcode:2===b?this._faceName:3===b?this._ptSize:4===b?this._lineHeightOffset:5===b?this._isBold:6===b?this._isItalic:7===b?(a[0]=this._color.getR(),a[1]=this._color.getG(),a[2]=this._color.getB(),a):8===b?this._horizontalAlign:9===b?this._verticalAlign:10===b?this._wrapByWord?1:0:void 0}SetPropertyValueByIndex(a,b){switch(a){case 0:if(this._text===b)return;this._text=b,this._UpdateTextSettings();break;case 1:if(this._enableBBcode===!!b)return;this._enableBBcode=!!b,this._UpdateTextSettings();break;case 2:if(this._faceName===b)return;this._faceName=b,this._UpdateTextSettings();break;case 3:if(this._ptSize===b)return;this._ptSize=b,this._UpdateTextSettings();break;case 4:if(this._lineHeightOffset===b)return;this._lineHeightOffset=b,this._UpdateTextSettings();break;case 5:if(this._isBold===!!b)return;this._isBold=!!b,this._UpdateTextSettings();break;case 6:if(this._isItalic===!!b)return;this._isItalic=!!b,this._UpdateTextSettings();break;case 7:const d=this._color,c=b;if(d.getR()===c[0]&&d.getG()===c[1]&&d.getB()===c[2])return;this._color.setRgb(c[0],c[1],c[2]),this._UpdateTextSettings();break;case 8:if(this._horizontalAlign===b)return;this._horizontalAlign=b,this._UpdateTextSettings();break;case 9:if(this._verticalAlign===b)return;this._verticalAlign=b,this._UpdateTextSettings();break;case 10:if(this._wrapByWord===(b===0))return;this._wrapByWord=b===0,this._UpdateTextSettings();}}SetPropertyOffsetValueByIndex(a,b){0!==b&&(3===a?(this._ptSize+=b,this._UpdateTextSettings()):4===a?(this._lineHeightOffset+=b,this._UpdateTextSettings()):void 0)}SetPropertyColorOffsetValueByIndex(a,c,d,e){(0!==c||0!==d||0!==e)&&(7===a?(this._color.addRgb(c,d,e),this._UpdateTextSettings()):void 0)}_SetText(a){this._text===a||(this._text=a,this._webglText.SetText(a),this._runtime.UpdateRender())}_StartTypewriter(a,b){this._SetText(a),this._typewriterStartTime=this._runtime.GetGameTime(),this._typewriterEndTime=this._typewriterStartTime+b,this._typewriterLength=C3.BBString.StripAnyTags(a).length,this._webglText.SetDrawMaxCharacterCount(0),this._StartTicking()}_CancelTypewriter(){this._typewriterStartTime=-1,this._typewriterEndTime=-1,this._typewriterLength=0,this._webglText.SetDrawMaxCharacterCount(-1),this._StopTicking()}Tick(){const a=this._runtime.GetGameTime();if(a>=this._typewriterEndTime)this._CancelTypewriter(),this.Trigger(C3.Plugins.Text.Cnds.OnTypewriterTextFinished),this._runtime.UpdateRender();else{let b=C3.relerp(this._typewriterStartTime,this._typewriterEndTime,a,0,this._typewriterLength);b=Math.floor(b),b!==this._webglText.GetDrawMaxCharacterCount()&&(this._webglText.SetDrawMaxCharacterCount(b),this._runtime.UpdateRender())}}GetDebuggerProperties(){return[{title:"plugins.text.name",properties:[{name:"plugins.text.properties.text.name",value:this._text,onedit:(a)=>this._SetText(a)}]}]}}} + +"use strict";C3.Plugins.Text.Cnds={CompareText(a,b){return b?this._text===a:C3.equalsNoCase(this._text,a)},IsRunningTypewriterText(){return-1!==this._typewriterEndTime},OnTypewriterTextFinished(){return!0}}; + +"use strict";{const a=C3.New(C3.Color);C3.Plugins.Text.Acts={SetText(a){this._CancelTypewriter(),"number"==typeof a&&1e9>a&&(a=Math.round(1e10*a)/1e10),this._SetText(a.toString())},AppendText(a){this._CancelTypewriter(),"number"==typeof a&&1e9>a&&(a=Math.round(1e10*a)/1e10),a=a.toString();a&&this._SetText(this._text+a)},TypewriterText(a,b){this._CancelTypewriter(),"number"==typeof a&&1e9>a&&(a=Math.round(1e10*a)/1e10),this._StartTypewriter(a.toString(),b)},SetFontFace(a,b){let c=!1,d=!1;if(1===b?c=!0:2===b?d=!0:3===b?(c=!0,d=!0):void 0,a===this._faceName&&c===this._isBold&&d===this._isItalic)return!1;this._faceName=a,this._isBold=c,this._isItalic=d;const e=this._webglText;e.SetFontName(this._faceName),e.SetBold(this._isBold),e.SetItalic(this._isItalic),this._runtime.UpdateRender()},SetFontSize(a){this._ptSize===a||(this._ptSize=a,this._webglText.SetFontSize(this._ptSize),this._runtime.UpdateRender())},SetFontColor(b){a.setFromRgbValue(b),a.clamp();this._color.equalsIgnoringAlpha(a)||(this._color.copyRgb(a),this._webglText.SetColor(this._color),this._runtime.UpdateRender())},SetWebFont(){console.warn("[Text] 'Set web font' action is deprecated and no longer has any effect")},SetEffect(a){this.GetWorldInfo().SetBlendMode(a),this._runtime.UpdateRender()},TypewriterFinish(){-1===this._typewriterEndTime||(this._CancelTypewriter(),this.Trigger(C3.Plugins.Text.Cnds.OnTypewriterTextFinished),this._runtime.UpdateRender())}}} + +"use strict";C3.Plugins.Text.Exps={Text(){return this._text},PlainText(){return C3.BBString.StripAnyTags(this._text)},FaceName(){return this._faceName},FaceSize(){return this._ptSize},TextWidth(){return this._UpdateTextSize(),this._webglText.GetTextWidth()},TextHeight(){return this._UpdateTextSize(),this._webglText.GetTextHeight()}}; + +"use strict";C3.Plugins.TiledBg=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.TiledBg.Type=class extends C3.SDKTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){this.GetImageInfo().LoadAsset(this._runtime)}LoadTextures(a){return this.GetImageInfo().LoadStaticTexture(a,{sampling:this._runtime.GetSampling(),isTiled:!0})}ReleaseTextures(){this.GetImageInfo().ReleaseTexture()}}; + +"use strict";{const a=C3.New(C3.Quad),b=C3.New(C3.Rect),c=C3.New(C3.Quad);C3.Plugins.TiledBg.Instance=class extends C3.SDKWorldInstanceBase{constructor(a,b){super(a),this._imageOffsetX=0,this._imageOffsetY=0,this._imageScaleX=1,this._imageScaleY=1,this._imageAngle=0,this._ownImageInfo=null,b&&(this.GetWorldInfo().SetVisible(!!b[0]),this._imageOffsetX=b[2],this._imageOffsetY=b[3],this._imageScaleX=b[4],this._imageScaleY=b[5],this._imageAngle=C3.toRadians(b[6]))}Release(){this._ReleaseOwnImage(),super.Release()}_ReleaseOwnImage(){this._ownImageInfo&&(this._ownImageInfo.Release(),this._ownImageInfo=null)}Draw(d){var e=Math.round;const f=this.GetCurrentImageInfo(),g=f.GetTexture();if(!g)return;const h=this.GetWorldInfo();let i=h.GetBoundingQuad();d.SetTexture(g);const j=f.GetWidth(),k=f.GetHeight(),l=this._imageOffsetX/j,m=this._imageOffsetY/k;if(b.set(0,0,h.GetWidth()/(j*this._imageScaleX),h.GetHeight()/(k*this._imageScaleY)),b.offset(-l,-m),this._runtime.IsPixelRoundingEnabled()){const b=e(h.GetX())-h.GetX(),c=e(h.GetY())-h.GetY();a.copy(i),a.offset(b,c),i=a}0===this._imageAngle?d.Quad3(i,b):(c.setFromRotatedRect(b,-this._imageAngle),d.Quad4(i,c))}GetCurrentImageInfo(){return this._ownImageInfo||this._objectClass.GetImageInfo()}}} + +"use strict";C3.Plugins.TiledBg.Cnds={OnURLLoaded(){return!0}}; + +"use strict";C3.Plugins.TiledBg.Acts={SetImageOffsetX(a){this._imageOffsetX===a||(this._imageOffsetX=a,this._runtime.UpdateRender())},SetImageOffsetY(a){this._imageOffsetY===a||(this._imageOffsetY=a,this._runtime.UpdateRender())},SetImageScaleX(a){a/=100;this._imageScaleX===a||(this._imageScaleX=a,this._runtime.UpdateRender())},SetImageScaleY(a){a/=100;this._imageScaleY===a||(this._imageScaleY=a,this._runtime.UpdateRender())},SetImageAngle(b){b=C3.toRadians(b);this._imageAngle===b||(this._imageAngle=b,this._runtime.UpdateRender())},SetEffect(a){this.GetWorldInfo().SetBlendMode(a),this._runtime.UpdateRender()},LoadURL(a){this._ownImageInfo&&this._ownImageInfo.GetURL()===a||(async()=>{const b=this._runtime,c=C3.New(C3.ImageInfo);if(await c.LoadDynamicAsset(b,a),this.WasReleased())return c.Release(),null;const d=await c.LoadStaticTexture(b.GetWebGLRenderer(),{sampling:this._runtime.GetSampling(),isTiled:!0});return d?this.WasReleased()?void c.Release():void(this._ReleaseOwnImage(),this._ownImageInfo=c,b.UpdateRender(),await this.TriggerAsync(C3.Plugins.TiledBg.Cnds.OnURLLoaded)):void 0})()}}; + +"use strict";C3.Plugins.TiledBg.Exps={ImageWidth(){return this.GetCurrentImageInfo().GetWidth()},ImageHeight(){return this.GetCurrentImageInfo().GetHeight()},ImageOffsetX(){return this._imageOffsetX},ImageOffsetY(){return this._imageOffsetY},ImageScaleX(){return 100*this._imageScaleX},ImageScaleY(){return 100*this._imageScaleY},ImageAngle(){return C3.toDegrees(this._imageAngle)}}; + +"use strict";C3.Plugins.Audio=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Audio.Type=class extends C3.SDKTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";{const a=["interactive","balanced","playback"];C3.Plugins.Audio.Instance=class extends C3.SDKInstanceBase{constructor(b,c){super(b,"audio"),this._nextPlayTime=0,this._triggerTag="",this._timeScaleMode=0,this._saveLoadMode=0,this._playInBackground=!1,this._panningModel=1,this._distanceModel=1,this._listenerX=this._runtime.GetViewportWidth()/2,this._listenerY=this._runtime.GetViewportHeight()/2,this._listenerZ=-600,this._referenceDistance=600,this._maxDistance=1e4,this._rolloffFactor=1,this._listenerInst=null,this._loadListenerUid=-1,this._masterVolume=1,this._isSilent=!1,this._sampleRate=0,this._effectCount=new Map,this._preloadTotal=0,this._preloadCount=0;let d="interactive";c&&(this._timeScaleMode=c[0],this._saveLoadMode=c[1],this._playInBackground=c[2],d=a[c[3]],this._panningModel=c[4],this._distanceModel=c[5],this._listenerZ=-c[6],this._referenceDistance=c[7],this._maxDistance=c[8],this._rolloffFactor=c[9]),this._lastAIState=[],this._lastFxState=[],this._lastAnalysersData=[],this.AddDOMMessageHandlers([["state",(a)=>this._OnUpdateState(a)],["fxstate",(a)=>this._OnUpdateFxState(a)],["trigger",(a)=>this._OnTrigger(a)]]);const e=this.GetRuntime().Dispatcher();this._disposables=new C3.CompositeDisposable(C3.Disposable.From(e,"instancedestroy",(a)=>this._OnInstanceDestroyed(a.instance)),C3.Disposable.From(e,"afterload",()=>this._OnAfterLoad()),C3.Disposable.From(e,"suspend",()=>this._OnSuspend()),C3.Disposable.From(e,"resume",()=>this._OnResume())),this._runtime.AddLoadPromise(this.PostToDOMAsync("create-audio-context",{"preloadList":this._runtime.GetAssetManager().GetAudioToPreload().map((a)=>({"originalUrl":a.originalUrl,"url":a.url,"type":a.type,"fileSize":a.fileSize})),"isWKWebView":this._runtime.IsWKWebView(),"timeScaleMode":this._timeScaleMode,"latencyHint":d,"panningModel":this._panningModel,"distanceModel":this._distanceModel,"refDistance":this._referenceDistance,"maxDistance":this._maxDistance,"rolloffFactor":this._rolloffFactor,"listenerPos":[this._listenerX,this._listenerY,this._listenerZ]}).then((a)=>{this._sampleRate=a["sampleRate"]})),this._StartTicking()}Release(){this._listenerInst=null,super.Release()}_OnInstanceDestroyed(a){this._listenerInst===a&&(this._listenerInst=null)}DbToLinearNoCap(a){return Math.pow(10,a/20)}DbToLinear(a){const b=this.DbToLinearNoCap(a);return isFinite(b)?Math.max(Math.min(b,1),0):0}LinearToDbNoCap(a){return 20*(Math.log(a)/2.302585092994046)}LinearToDb(a){return this.LinearToDbNoCap(Math.max(Math.min(a,1),0))}_OnSuspend(){this._playInBackground||this.PostToDOM("set-suspended",{"isSuspended":!0})}_OnResume(){this._playInBackground||this.PostToDOM("set-suspended",{"isSuspended":!1})}_OnUpdateState(a){const b=a["tickCount"],c=this._lastAIState.filter((a)=>a.hasOwnProperty("placeholder")&&a["placeholder"]>b);this._lastAIState=a["audioInstances"],this._lastAnalysersData=a["analysers"],0C3.equalsNoCase(a,b["tag"])&&b["isPlaying"])}_MaybeMarkAsPlaying(a,b,c,d){this._IsTagPlaying(a)||this._lastAIState.push({"tag":a,"duration":0,"volume":d,"isPlaying":!0,"playbackTime":0,"playbackRate":1,"uid":-1,"bufferOriginalUrl":"","bufferUrl":"","bufferType":"","isMusic":b,"isLooping":c,"isMuted":!1,"resumePosition":0,"pan":null,"placeholder":this._runtime.GetTickCountNoSave()})}async _OnTrigger(a){const b=a["type"];this._triggerTag=a["tag"],"ended"===b?await this.TriggerAsync(C3.Plugins.Audio.Cnds.OnEnded):"fade-ended"===b&&(await this.TriggerAsync(C3.Plugins.Audio.Cnds.OnFadeEnded))}Tick(){const a={"timeScale":this._runtime.GetTimeScale(),"gameTime":this._runtime.GetGameTime(),"instPans":this.GetInstancePans(),"tickCount":this._runtime.GetTickCountNoSave()};if(this._listenerInst){const b=this._listenerInst.GetWorldInfo();this._listenerX=b.GetX(),this._listenerY=b.GetY(),a["listenerPos"]=[this._listenerX,this._listenerY,this._listenerZ]}this.PostToDOM("tick",a)}rotatePtAround(b,c,d,a,e){if(0===d)return[b,c];const f=Math.sin(d),g=Math.cos(d);b-=a,c-=e;const h=b*f,i=c*f,j=b*g,k=c*g;return b=j-i,c=k+h,b+=a,c+=e,[b,c]}GetInstancePans(){return this._lastAIState.filter((a)=>-1!==a["uid"]).map((a)=>this._runtime.GetInstanceByUID(a["uid"])).filter((a)=>a).map((a)=>{const b=a.GetWorldInfo(),c=b.GetLayer().GetAngle(),[d,e]=this.rotatePtAround(b.GetX(),b.GetY(),-c,this._listenerX,this._listenerY);return{"uid":a.GetUID(),"x":d,"y":e,"angle":b.GetAngle()-c}})}GetAnalyserData(a,b){for(const c of this._lastAnalysersData)if(c.index===b&&C3.equalsNoCase(c.tag,a))return c;return null}_IncrementEffectCount(a){this._effectCount.set(a,(this._effectCount.get(a)||0)+1)}_ShouldSave(a){return!a.hasOwnProperty("placeholder")&&3!==this._saveLoadMode&&!(a["isMusic"]&&1===this._saveLoadMode)&&!!(a["isMusic"]||2!==this._saveLoadMode)}SaveToJson(){return{"isSilent":this._isSilent,"masterVolume":this._masterVolume,"listenerZ":this._listenerZ,"listenerUid":this._listenerInst?this._listenerInst.GetUID():-1,"playing":this._lastAIState.filter((a)=>this._ShouldSave(a)),"effects":this._lastFxState,"analysers":this._lastAnalysersData}}LoadFromJson(a){this._isSilent=a["isSilent"],this._masterVolume=a["masterVolume"],this._listenerZ=a["listenerZ"],this._listenerInst=null,this._loadListenerUid=a["listenerUid"],this._lastAIState=a["playing"],this._lastFxState=a["effects"],this._lastAnalysersData=a["analysers"]}_OnAfterLoad(){if(-1!==this._loadListenerUid&&(this._listenerInst=this._runtime.GetInstanceByUID(this._loadListenerUid),this._loadListenerUid=-1,this._listenerInst)){const a=this._listenerInst.GetWorldInfo();this._listenerX=a.GetX(),this._listenerY=a.GetY()}for(const a of this._lastAIState){const b=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a["bufferOriginalUrl"]);b?(a["bufferUrl"]=b.url,a["bufferType"]=b.type):a["bufferUrl"]=null}for(const a of Object.values(this._lastFxState))for(const b of a)if(b.hasOwnProperty("bufferOriginalUrl")){const a=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b["bufferOriginalUrl"]);a&&(b["bufferUrl"]=a.url,b["bufferType"]=a.type)}this.PostToDOM("load-state",{"saveLoadMode":this._saveLoadMode,"timeScale":this._runtime.GetTimeScale(),"gameTime":this._runtime.GetGameTime(),"listenerPos":[this._listenerX,this._listenerY,this._listenerZ],"isSilent":this._isSilent,"masterVolume":this._masterVolume,"playing":this._lastAIState.filter((a)=>null!==a["bufferUrl"]),"effects":this._lastFxState})}GetDebuggerProperties(){var a=Math.round;const b=[];for(const[a,c]of Object.entries(this._lastFxState))b.push({name:"$"+a,value:c.map((a)=>a["type"]).join(", ")});return[{title:"plugins.audio.debugger.tag-effects",properties:b},{title:"plugins.audio.debugger.currently-playing",properties:[{name:"plugins.audio.debugger.currently-playing-count",value:this._lastAIState.length},...this._lastAIState.map((b,c)=>({name:"$#"+c,value:`${b["bufferOriginalUrl"]} ("${b["tag"]}") ${a(10*b["playbackTime"])/10} / ${a(10*b["duration"])/10}`}))]}]}}} + +"use strict";C3.Plugins.Audio.Cnds={OnEnded(a){return C3.equalsNoCase(this._triggerTag,a)},OnFadeEnded(a){return C3.equalsNoCase(this._triggerTag,a)},PreloadsComplete(){return this._preloadCount===this._preloadTotal},AdvancedAudioSupported(){return!0},IsSilent(){return this._isSilent},IsAnyPlaying(){for(const a of this._lastAIState)if(a["isPlaying"])return!0;return!1},IsTagPlaying(a){return this._IsTagPlaying(a)}}; + +"use strict";{const a=["lowpass","highpass","bandpass","lowshelf","highshelf","peaking","notch","allpass"];C3.Plugins.Audio.Acts={Play(a,b,c,d){if(!this._isSilent){const e=a[1],f=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a[0]);f&&(this.PostToDOM("play",{"originalUrl":a[0],"url":f.url,"type":f.type,"isMusic":e,"tag":d.toLowerCase(),"isLooping":0!==b,"vol":this.DbToLinear(c),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"]}),this._MaybeMarkAsPlaying(d.toLowerCase(),e,0!==b,this.DbToLinear(c)),this._nextPlayTime=0)}},PlayAtPosition(a,b,c,d,e,f,g,h,i,j){if(!this._isSilent){const k=a[1],l=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a[0]);l&&(this.PostToDOM("play",{"originalUrl":a[0],"url":l.url,"type":l.type,"isMusic":k,"tag":j.toLowerCase(),"isLooping":0!==b,"vol":this.DbToLinear(c),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"],"panning":{"x":d,"y":e,"angle":C3.toRadians(f),"innerAngle":C3.toRadians(g),"outerAngle":C3.toRadians(h),"outerGain":this.DbToLinear(i)}}),this._MaybeMarkAsPlaying(j.toLowerCase(),k,0!==b,this.DbToLinear(c)),this._nextPlayTime=0)}},PlayAtObject(a,b,c,d,e,f,g,h){if(!this._isSilent&&d){const i=d.GetFirstPicked();if(i&&i.GetWorldInfo()){const d=i.GetWorldInfo(),j=d.GetLayer().GetAngle(),[k,l]=this.rotatePtAround(d.GetX(),d.GetY(),-j,this._listenerX,this._listenerY),m=a[1],n=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a[0]);n&&(this.PostToDOM("play",{"originalUrl":a[0],"url":n.url,"type":n.type,"isMusic":m,"tag":h.toLowerCase(),"isLooping":0!==b,"vol":this.DbToLinear(c),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"],"panning":{"x":k,"y":l,"angle":d.GetAngle()-j,"innerAngle":C3.toRadians(e),"outerAngle":C3.toRadians(f),"outerGain":this.DbToLinear(g),"uid":i.GetUID()}}),this._MaybeMarkAsPlaying(h.toLowerCase(),m,0!==b,this.DbToLinear(c)),this._nextPlayTime=0)}}},PlayByName(a,b,c,d,e){if(!this._isSilent){const f=1===a,g=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b);g&&(this.PostToDOM("play",{"originalUrl":b,"url":g.url,"type":g.type,"isMusic":f,"tag":e.toLowerCase(),"isLooping":0!==c,"vol":this.DbToLinear(d),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"]}),this._MaybeMarkAsPlaying(e.toLowerCase(),f,0!==c,this.DbToLinear(d)),this._nextPlayTime=0)}},PlayAtPositionByName(a,b,c,d,e,f,g,h,i,j,k){if(!this._isSilent){const l=1===a,m=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b);m&&(this.PostToDOM("play",{"originalUrl":b,"url":m.url,"type":m.type,"isMusic":l,"tag":k.toLowerCase(),"isLooping":0!==c,"vol":this.DbToLinear(d),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"],"panning":{"x":e,"y":f,"angle":C3.toRadians(g),"innerAngle":C3.toRadians(h),"outerAngle":C3.toRadians(i),"outerGain":this.DbToLinear(j)}}),this._MaybeMarkAsPlaying(k.toLowerCase(),l,0!==c,this.DbToLinear(d)),this._nextPlayTime=0)}},PlayAtObjectByName(a,b,c,d,e,f,g,h,i){if(!this._isSilent&&!this._isSilent&&e){const j=e.GetFirstPicked();if(j&&j.GetWorldInfo()){const e=j.GetWorldInfo(),k=e.GetLayer().GetAngle(),[l,m]=this.rotatePtAround(e.GetX(),e.GetY(),-k,this._listenerX,this._listenerY),n=1===a,o=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b);o&&(this.PostToDOM("play",{"originalUrl":b,"url":o.url,"type":o.type,"isMusic":n,"tag":i.toLowerCase(),"isLooping":0!==c,"vol":this.DbToLinear(d),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"],"panning":{"x":l,"y":m,"angle":e.GetAngle()-k,"innerAngle":C3.toRadians(f),"outerAngle":C3.toRadians(g),"outerGain":this.DbToLinear(h),"uid":j.GetUID()}}),this._MaybeMarkAsPlaying(i.toLowerCase(),n,0!==c,this.DbToLinear(d)),this._nextPlayTime=0)}}},SetLooping(a,b){this.PostToDOM("set-looping",{"tag":a.toLowerCase(),"isLooping":0===b})},SetMuted(a,b){this.PostToDOM("set-muted",{"tag":a.toLowerCase(),"isMuted":0===b})},SetVolume(a,b){this.PostToDOM("set-volume",{"tag":a.toLowerCase(),"vol":this.DbToLinear(b)})},FadeVolume(a,b,c,d){this.PostToDOM("fade-volume",{"tag":a.toLowerCase(),"vol":this.DbToLinear(b),"duration":c,"stopOnEnd":0===d})},Preload(a){const b=a[1],c=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a[0]);c&&(this._preloadTotal++,this.PostToDOMAsync("preload",{"originalUrl":a[0],"url":c.url,"type":c.type,"isMusic":b}).then(()=>this._preloadCount++))},PreloadByName(a,b){const c=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b);c&&(this._preloadTotal++,this.PostToDOMAsync("preload",{"originalUrl":b,"url":c.url,"type":c.type,"isMusic":1===a}).then(()=>this._preloadCount++))},SetPlaybackRate(a,b){this.PostToDOM("set-playback-rate",{"tag":a.toLowerCase(),"rate":Math.max(b,0)})},Stop(a){this.PostToDOM("stop",{"tag":a.toLowerCase()})},StopAll(){this.PostToDOM("stop-all")},SetPaused(a,b){this.PostToDOM("set-paused",{"tag":a.toLowerCase(),"paused":0===b})},Seek(a,b){this.PostToDOM("seek",{"tag":a.toLowerCase(),"pos":b})},SetSilent(a){2===a&&(a=this._isSilent?1:0),a=0===a;this._isSilent===a||(this._isSilent=a,this.PostToDOM("set-silent",{"isSilent":a}))},SetMasterVolume(a){const b=this.DbToLinear(a);this._masterVolume===b||(this._masterVolume=b,this.PostToDOM("set-master-volume",{"vol":b}))},AddFilterEffect(b,c,d,e,f,g,h){b=b.toLowerCase();const i=a[c];this._IncrementEffectCount(b),this.PostToDOM("add-effect",{"type":"filter","tag":b,"params":[i,d,e,f,g,C3.clamp(h/100,0,1)]})},AddDelayEffect(a,b,c,d){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"delay","tag":a,"params":[b,this.DbToLinear(c),C3.clamp(d/100,0,1)]})},AddFlangerEffect(a,b,c,d,e,f){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"flanger","tag":a,"params":[b/1e3,c/1e3,d,e/100,C3.clamp(f/100,0,1)]})},AddPhaserEffect(a,b,c,d,e,f,g){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"phaser","tag":a,"params":[b,c,d,e,f,C3.clamp(g/100,0,1)]})},AddConvolutionEffect(a,b,c,d){a=a.toLowerCase();const e=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b[0]);e&&(this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"convolution","tag":a,"bufferOriginalUrl":b[0],"bufferUrl":e.url,"bufferType":e.type,"params":[0===c,C3.clamp(d/100,0,1)]}))},AddGainEffect(a,b){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"gain","tag":a,"params":[this.DbToLinear(b)]})},AddMuteEffect(a){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"gain","tag":a,"params":[0]})},AddTremoloEffect(a,b,c){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"tremolo","tag":a,"params":[b,C3.clamp(c/100,0,1)]})},AddRingModEffect(a,b,c){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"ringmod","tag":a,"params":[b,C3.clamp(c/100,0,1)]})},AddDistortionEffect(a,b,c,d,e,f){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"distortion","tag":a,"params":[this.DbToLinearNoCap(b),this.DbToLinearNoCap(c),d,this.DbToLinearNoCap(e),C3.clamp(f/100,0,1)]})},AddCompressorEffect(a,b,c,d,e,f){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"compressor","tag":a,"params":[b,c,d,e/1e3,f/1e3]})},AddAnalyserEffect(a,b,c){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"analyser","tag":a,"params":[b,c]})},RemoveEffects(a){a=a.toLowerCase(),this._effectCount.set(a,0),this.PostToDOM("remove-effects",{"tag":a}),this._lastFxState={}},SetEffectParameter(a,b,c,d,e,f){this.PostToDOM("set-effect-param",{"tag":a.toLowerCase(),"index":Math.floor(b),"param":c,"value":d,"ramp":e,"time":f})},SetListenerObject(a){if(a){const b=a.GetFirstPicked();b&&b.GetWorldInfo()&&(this._listenerInst=b)}},SetListenerZ(a){this._listenerZ=a},ScheduleNextPlay(a){this._nextPlayTime=Math.max(a,0)},UnloadAudio(a){const b=a[1],c=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a[0]);c&&this.PostToDOM("unload",{"url":c.url,"type":c.type,"isMusic":b})},UnloadAudioByName(a,b){const c=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b);c&&this.PostToDOM("unload",{"url":c.url,"type":c.type,"isMusic":1===a})},UnloadAll(){this.PostToDOM("unload-all")}}} + +"use strict";C3.Plugins.Audio.Exps={Duration(b){const c=this._GetFirstAudioStateByTag(b);return c?c["duration"]:0},PlaybackTime(b){const c=this._GetFirstAudioStateByTag(b);return c?c["playbackTime"]:0},PlaybackRate(b){const c=this._GetFirstAudioStateByTag(b);return c?c["playbackRate"]:0},Volume(b){const c=this._GetFirstAudioStateByTag(b);return c?this.LinearToDb(c["volume"]):0},MasterVolume(){return this.LinearToDb(this._masterVolume)},EffectCount(a){return this._effectCount.get(a.toLowerCase())||0},AnalyserFreqBinCount(a,b){const c=this.GetAnalyserData(a,Math.floor(b));return c?c["binCount"]:0},AnalyserFreqBinAt(a,b,c){var d=Math.floor;const e=this.GetAnalyserData(a,d(b));return e?(c=d(c),0>c||c>=e["binCount"]?0:e["freqBins"][c]):0},AnalyserPeakLevel(a,b){const c=this.GetAnalyserData(a,Math.floor(b));return c?c["peak"]:0},AnalyserRMSLevel(a,b){const c=this.GetAnalyserData(a,Math.floor(b));return c?c["rms"]:0},SampleRate(){return this._sampleRate},CurrentTime(){return self["C3_GetAudioContextCurrentTime"]?self["C3_GetAudioContextCurrentTime"]():performance.now()/1e3}}; + +"use strict";C3.Behaviors.solid=class extends C3.SDKBehaviorBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Behaviors.solid.Type=class extends C3.SDKBehaviorTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";{const a=new Set;C3.Behaviors.solid.Instance=class extends C3.SDKBehaviorInstanceBase{constructor(a,b){super(a),this.SetEnabled(!0),b&&(this.SetEnabled(b[0]),this.SetTags(b[1]))}Release(){super.Release()}SetEnabled(a){this._inst.GetSavedDataMap().set("solidEnabled",!!a)}IsEnabled(){return this._inst.GetSavedDataMap().get("solidEnabled")}SetTags(a){const b=this._inst.GetSavedDataMap();if(!a.trim())return void b.delete("solidTags");let c=b.get("solidTags");c||(c=new Set,b.set("solidTags",c)),c.clear();for(const b of a.split(" "))b&&c.add(b.toLowerCase())}GetTags(){return this._inst.GetSavedDataMap().get("solidTags")||a}SaveToJson(){return{"e":this.IsEnabled()}}LoadFromJson(a){this.SetEnabled(a["e"])}GetPropertyValueByIndex(a){return a===0?this.IsEnabled():void 0}SetPropertyValueByIndex(a,b){a===0?this.SetEnabled(b):void 0}GetDebuggerProperties(){return[{title:"$"+this.GetBehaviorType().GetName(),properties:[{name:"behaviors.solid.properties.enabled.name",value:this.IsEnabled(),onedit:(a)=>this.SetEnabled(a)}]}]}}} + +"use strict";C3.Behaviors.solid.Cnds={IsEnabled(){return this.IsEnabled()}}; + +"use strict";C3.Behaviors.solid.Acts={SetEnabled(a){this.SetEnabled(a)}}; + +"use strict";C3.Behaviors.solid.Exps={}; + +"use strict";C3.Behaviors.Platform=class extends C3.SDKBehaviorBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Behaviors.Platform.Type=class extends C3.SDKBehaviorTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";{function a(a,b,c,d,e){return C3.clamp(a*e+.5*d*e*e,b*e,c*e)}const b=0;C3.Behaviors.Platform.Instance=class extends C3.SDKBehaviorInstanceBase{constructor(a,c){super(a),this._keyboardDisposables=null,this._leftKey=!1,this._rightKey=!1,this._jumpKey=!1,this._jumped=!1,this._doubleJumped=!1,this._canDoubleJump=!1,this._ignoreInput=!1,this._simLeft=!1,this._simRight=!1,this._simJump=!1,this._lastFloorObject=null,this._loadFloorUid=-1,this._lastFloorX=0,this._lastFloorY=0,this._floorIsJumpthru=!1,this._wasOnFloor=!1,this._wasOverJumpthru=!!this._runtime.GetCollisionEngine().TestOverlapJumpthru(this._inst),this._loadJumpthruUid=-1,this._animMode="stopped",this._fallThrough=0,this._isFirstTick=!0,this._dx=0,this._dy=0,this._downX=0,this._downY=0,this._rightX=0,this._rightY=0,this._g=0,this._g1=0,this._ga=C3.toRadians(90),this._maxSpeed=330,this._acc=1500,this._dec=1500,this._jumpStrength=650,this._maxFall=1e3,this._enableDoubleJump=!1,this._jumpSustain=0,this._sustainTime=0,this._defaultControls=!0,this._ceilingCollisionMode=0,this._isEnabled=!0,c&&(this._maxSpeed=c[b],this._acc=c[1],this._dec=c[2],this._jumpStrength=c[3],this._g=c[4],this._maxFall=c[5],this._enableDoubleJump=!!c[6],this._jumpSustain=c[7]/1e3,this._defaultControls=!!c[8],this._isEnabled=!!c[9]);const d=this._runtime.Dispatcher();this._disposables=new C3.CompositeDisposable(C3.Disposable.From(d,"instancedestroy",(a)=>this._OnInstanceDestroyed(a.instance)),C3.Disposable.From(d,"afterload",()=>this._OnAfterLoad())),this._defaultControls&&this._BindEvents(),this._isEnabled&&this._StartPostTicking(),this._UpdateGravity(),this._inst.GetUnsavedDataMap().set("isPlatformBehavior",!0)}Release(){this._keyboardDisposables&&(this._keyboardDisposables.Release(),this._keyboardDisposables=null),this._lastFloorObject=null,this._wasOverJumpthru=null,super.Release()}_BindEvents(){if(!this._keyboardDisposables){const a=this._runtime.Dispatcher();this._keyboardDisposables=new C3.CompositeDisposable(C3.Disposable.From(a,"keydown",(a)=>this._OnKeyDown(a.data)),C3.Disposable.From(a,"keyup",(a)=>this._OnKeyUp(a.data)),C3.Disposable.From(a,"window-blur",()=>this._OnWindowBlur()))}}_UnBindEvents(){this._keyboardDisposables&&(this._keyboardDisposables.Release(),this._keyboardDisposables=null)}_OnInstanceDestroyed(a){this._lastFloorObject===a&&(this._lastFloorObject=null),this._wasOverJumpthru===a&&(this._wasOverJumpthru=null)}_OnKeyDown(a){switch(a["key"]){case"ArrowLeft":this._leftKey=!0;break;case"ArrowRight":this._rightKey=!0;break;case"ArrowUp":this._jumpKey=!0;}}_OnKeyUp(a){switch(a["key"]){case"ArrowLeft":this._leftKey=!1;break;case"ArrowRight":this._rightKey=!1;break;case"ArrowUp":this._jumpKey=!1,this._jumped=!1;}}_OnWindowBlur(){this._leftKey=!1,this._rightKey=!1,this._jumpKey=!1,this._jumped=!1}SaveToJson(){return{"ii":this._ignoreInput,"lfx":this._lastFloorX,"lfy":this._lastFloorY,"lfo":this._lastFloorObject?this._lastFloorObject.GetUID():-1,"am":this._animMode,"en":this._isEnabled,"fall":this._fallThrough,"ft":this._isFirstTick,"dx":this._dx,"dy":this._dy,"ms":this._maxSpeed,"acc":this._acc,"dec":this._dec,"js":this._jumpStrength,"g":this._g,"g1":this._g1,"mf":this._maxFall,"wof":this._wasOnFloor,"woj":this._wasOverJumpthru?this._wasOverJumpthru.GetUID():-1,"ga":this._ga,"edj":this._enableDoubleJump,"cdj":this._canDoubleJump,"dj":this._doubleJumped,"sus":this._jumpSustain,"dc":this._defaultControls,"cc":this._ceilingCollisionMode}}LoadFromJson(a){this._ignoreInput=a["ii"],this._lastFloorX=a["lfx"],this._lastFloorY=a["lfy"],this._loadFloorUid=a["lfo"],this._animMode=a["am"];const b=a["en"];this._fallThrough=a["fall"],this._isFirstTick=a["ft"],this._dx=a["dx"],this._dy=a["dy"],this._maxSpeed=a["ms"],this._acc=a["acc"],this._dec=a["dec"],this._jumpStrength=a["js"],this._g=a["g"],this._g1=a["g1"],this._maxFall=a["mf"],this._wasOnFloor=a["wof"],this._loadJumpthruUid=a["woj"],this._ga=a["ga"],this._enableDoubleJump=a["edj"],this._canDoubleJump=a["cdj"],this._doubleJumped=a["dj"],this._jumpSustain=a["sus"],this._defaultControls=a["dc"],this._ceilingCollisionMode=a["cc"]||0,this._leftKey=!1,this._rightKey=!1,this._jumpKey=!1,this._jumped=!1,this._simLeft=!1,this._simRight=!1,this._simJump=!1,this._sustainTime=0,this._defaultControls?this._BindEvents():this._UnBindEvents(),this._SetEnabled(b),this._UpdateGravity()}_OnAfterLoad(){this._lastFloorObject=-1===this._loadFloorUid?null:this._runtime.GetInstanceByUID(this._loadFloorUid),this._wasOverJumpthru=-1===this._loadJumpthruUid?null:this._runtime.GetInstanceByUID(this._loadJumpthruUid)}_UpdateGravity(){var a=Math.PI,b=Math.sin,c=Math.cos;this._downX=c(this._ga),this._downY=b(this._ga),this._rightX=c(this._ga-a/2),this._rightY=b(this._ga-a/2),this._downX=C3.round6dp(this._downX),this._downY=C3.round6dp(this._downY),this._rightX=C3.round6dp(this._rightX),this._rightY=C3.round6dp(this._rightY),this._g1=this._g,0>this._g&&(this._downX*=-1,this._downY*=-1,this._g=Math.abs(this._g))}_GetGDir(){return 0>this._g?-1:1}_IsOnFloor(){const a=this._inst.GetWorldInfo(),b=this._runtime.GetCollisionEngine(),c=this._inst,d=this._lastFloorObject,e=a.GetX(),f=a.GetY();if(a.OffsetXY(this._downX,this._downY),a.SetBboxChanged(),d&&b.TestOverlap(c,d)&&(!d.GetObjectClass().HasSolidBehavior()||b.IsSolidCollisionAllowed(d,c)))return a.SetXY(e,f),a.SetBboxChanged(),d;else{let d=b.TestOverlapSolid(c),g=null;if(d||0!==this._fallThrough||(g=b.TestOverlapJumpthru(c,!0)),a.SetXY(e,f),a.SetBboxChanged(),d)return b.TestOverlap(c,d)?null:(this._floorIsJumpthru=!1,d);if(g&&g.length){let a=0;for(let d=0,e=g.length;dthis._maxFall&&(this._dy=this._maxFall)),a&&(this._jumped=!0)}_ApplyHorizontalAcceleration(a,b,c){const d=this._acc,e=this._dec;a===b&&(0>this._dx?(this._dx+=e*c,0this._dx&&(this._dx=0)));let f=0;return a&&!b&&(0this._dx?f=d+e:f=d),this._dx+=f*c,this._dx=C3.clamp(this._dx,-this._maxSpeed,this._maxSpeed),f}_HandleHorizontalMovement(b,c,d,e){var f=Math.abs;const g=this._inst,h=g.GetWorldInfo(),i=this._runtime.GetCollisionEngine(),j=this._downX,k=this._downY,l=this._rightX,m=this._rightY,n=this._maxSpeed;let o=!1,p=h.GetX(),q=h.GetY();const r=a(this._dx,-n,n,c,b)*l,s=a(this._dx,-n,n,c,b)*m;h.OffsetXY(l*(1this._dx?1:-1),m*(0>this._dx?1:-1),a,!1)?d&&!t&&!this._floorIsJumpthru&&(p=h.GetX(),q=h.GetY(),h.OffsetXY(j,k),i.TestOverlapSolid(g)?!i.PushOutSolid(g,-j,-k,3,!1)&&(h.SetXY(p,q),h.SetBboxChanged()):(h.SetXY(p,q),h.SetBboxChanged())):(h.SetXY(p,q),h.SetBboxChanged()),!t&&(this._dx=0)):!u&&!e&&f(this._dy)this._dy?1:-1),i*(0>this._dy?1:-1),a,p,o))f.SetXY(k,l),f.SetBboxChanged(),this._wasOnFloor=!0,p||(this._dy=0);else{this._lastFloorObject=o;const a=o.GetWorldInfo();this._lastFloorX=a.GetX(),this._lastFloorY=a.GetY(),this._floorIsJumpthru=p,p&&(j=!0),(0this._dy&&1===this._ceilingCollisionMode&&g.PushInFractional(e,h,i,o,32)}}return j}_HandleAnimationTriggers(a,b,c){"falling"!==this._animMode&&0this._dx=a},{name:"behaviors.platform.debugger.vector-y",value:this._dy,onedit:(a)=>this._dy=a},{name:"behaviors.platform.properties.max-speed.name",value:this._maxSpeed,onedit:(a)=>this._maxSpeed=a},{name:"behaviors.platform.properties.acceleration.name",value:this._acc,onedit:(a)=>this._acc=a},{name:"behaviors.platform.properties.deceleration.name",value:this._dec,onedit:(a)=>this._dec=a},{name:"behaviors.platform.properties.jump-strength.name",value:this._jumpStrength,onedit:(a)=>this._jumpStrength=a},{name:"behaviors.platform.properties.gravity.name",value:this._g,onedit:(a)=>this._g=a},{name:"behaviors.platform.debugger.gravity-angle",value:C3.toDegrees(this._ga),onedit:(a)=>this._ga=C3.toRadians(a)},{name:"behaviors.platform.properties.max-fall-speed.name",value:this._maxFall,onedit:(a)=>this._maxFall=a},{name:"behaviors.platform.debugger.animation-mode",value:["behaviors.platform.debugger.anim-"+this._animMode]},{name:"behaviors.platform.properties.enabled.name",value:this._isEnabled,onedit:(a)=>this._SetEnabled(a)}]}]}}} + +"use strict";C3.Behaviors.Platform.Cnds={IsMoving(){return 0!==this._dx||0!==this._dy},CompareSpeed(a,b){return C3.compare(Math.hypot(this._dx,this._dy),a,b)},IsOnFloor(){if(0!==this._dy)return!1;const a=this._inst,b=this.GetWorldInfo(),c=this._runtime.GetCollisionEngine(),d=b.GetX(),e=b.GetY();b.OffsetXY(this._downX,this._downY),b.SetBboxChanged();const f=c.TestOverlapSolid(a);let g=null;if(f||0!==this._fallThrough||(g=c.TestOverlapJumpthru(a,!0)),b.SetXY(d,e),b.SetBboxChanged(),f)return!c.TestOverlap(a,f);if(g&&g.length){let b=0;for(let d=0,e=g.length;dthis._dy},IsFalling(){return 0=b.GetShakeStart()&&h=this._timeLeft)){const a=this._runtime.GetDt(this._inst);return this._timeLeft-=a,0>=this._timeLeft?(this._timeLeft=0,this._inst.GetWorldInfo().SetVisible(!0),this._runtime.UpdateRender(),this.DebugTrigger(C3.Behaviors.Flash.Cnds.OnFlashEnded)):void(this._stageTimeLeft-=a,0>=this._stageTimeLeft&&(0===this._stage?(this._inst.GetWorldInfo().SetVisible(!1),this._stage=1,this._stageTimeLeft+=this._offTime):(this._inst.GetWorldInfo().SetVisible(!0),this._stage=0,this._stageTimeLeft+=this._onTime),this._runtime.UpdateRender()))}}GetDebuggerProperties(){return[{title:"$"+this.GetBehaviorType().GetName(),properties:[{name:"behaviors.flash.debugger.on-time",value:this._onTime,onedit:(a)=>this._onTime=a},{name:"behaviors.flash.debugger.off-time",value:this._offTime,onedit:(a)=>this._offTime=a},{name:"behaviors.flash.debugger.is-flashing",value:0h&&(h=0,f=0,g=0),this._dx=c(i)*h,this._dy=b(i)*h}if(0!==this._g&&(this._dy+=this._g*d,g+=this._g),this._lastX=e.GetX(),this._lastY=e.GetY(),0!==this._dx||0!==this._dy){const h=this._dx*d+.5*f*d*d,i=this._dy*d+.5*g*d*d,a=C3.distanceTo(0,0,h,i);if(this._MoveBy(h,i,a),this._travelled+=a,this._setAngle&&(0!=h||0!=i)){const b=C3.angleTo(0,0,h,i);e.SetAngle(b),this._lastKnownAngle=e.GetAngle()}if(e.SetBboxChanged(),this._bounceOffSolid){const a=this._runtime.GetCollisionEngine(),f=a.TestOverlapSolid(this._inst);if(f){a.RegisterCollision(this._inst,f);const g=C3.distanceTo(0,0,this._dx,this._dy),h=a.CalculateBounceAngle(this._inst,this._lastX,this._lastY);this._dx=c(h)*g,this._dy=b(h)*g,e.OffsetXY(this._dx*d,this._dy*d),e.SetBboxChanged(),this._setAngle&&(e.SetAngle(h),this._lastKnownAngle=e.GetAngle(),e.SetBboxChanged()),a.PushOutSolid(this._inst,this._dx/g,this._dy/g,Math.max(2.5*g*d,30))||a.PushOutSolidNearest(this._inst,100)}}}}_MoveBy(b,c,d){const e=this.GetWorldInfo();if(!this._isStepping||d<=this._stepSize)return e.OffsetXY(b,c),e.SetBboxChanged(),void(this._isStepping&&this.Trigger(C3.Behaviors.Bullet.Cnds.OnStep));this._stopStepping=!1;const f=e.GetX(),g=e.GetY(),h=C3.angleTo(0,0,b,c),a=Math.cos(h)*this._stepSize,j=Math.sin(h)*this._stepSize,k=Math.floor(d/this._stepSize);for(let h=1;h<=k;++h)if(e.SetXY(f+a*h,g+j*h),e.SetBboxChanged(),this.Trigger(C3.Behaviors.Bullet.Cnds.OnStep),this._inst.IsDestroyed()||this._stopStepping)return;e.SetXY(f+b,g+c),e.SetBboxChanged(),this.Trigger(C3.Behaviors.Bullet.Cnds.OnStep)}GetPropertyValueByIndex(a){return a===0?this._speed:1===a?this._acc:2===a?this._g:3===a?this._bounceOffSolid:4===a?this._setAngle:5===a?this._isStepping:6===a?this._isEnabled:void 0}SetPropertyValueByIndex(c,d){switch(c){case b:this._speed=d;const e=this._inst.GetWorldInfo(),f=e.GetAngle();this._dx=Math.cos(f)*this._speed,this._dy=Math.sin(f)*this._speed;break;case 1:this._acc=d;break;case 2:this._g=d;break;case 3:this._bounceOffSolid=!!d;break;case 4:this._setAngle=!!d;break;case 5:this._isStepping=!!d;break;case 6:this._SetEnabled(d);}}SetPropertyOffsetValueByIndex(c,d){if(0!==d)switch(c){case b:this._speed+=d;const e=this._inst.GetWorldInfo(),f=e.GetAngle();this._dx=Math.cos(f)*this._speed,this._dy=Math.sin(f)*this._speed;break;case 1:this._acc+=d;break;case 2:this._g+=d;}}_SetSpeed(b){const c=C3.angleTo(0,0,this._dx,this._dy);this._dx=Math.cos(c)*b,this._dy=Math.sin(c)*b}_SetEnabled(a){this._isEnabled=!!a,this._isEnabled?this._StartTicking():this._StopTicking()}GetDebuggerProperties(){return[{title:"$"+this.GetBehaviorType().GetName(),properties:[{name:"behaviors.bullet.debugger.vector-x",value:this._dx,onedit:(a)=>this._dx=a},{name:"behaviors.bullet.debugger.vector-y",value:this._dy,onedit:(a)=>this._dy=a},{name:"behaviors.bullet.properties.speed.name",value:Math.hypot(this._dx,this._dy),onedit:(a)=>this._SetSpeed(a)},{name:"behaviors.bullet.debugger.angle-of-motion",value:C3.toDegrees(Math.atan2(this._dy,this._dx))},{name:"behaviors.bullet.properties.gravity.name",value:this._g,onedit:(a)=>this._g=a},{name:"behaviors.bullet.properties.acceleration.name",value:this._acc,onedit:(a)=>this._acc=a},{name:"behaviors.bullet.debugger.distance-travelled",value:this._travelled},{name:"behaviors.bullet.properties.enabled.name",value:this._isEnabled,onedit:(a)=>this._SetEnabled(a)}]}]}}} + +"use strict";C3.Behaviors.Bullet.Cnds={CompareSpeed(a,b){const c=Math.sqrt(this._dx*this._dx+this._dy*this._dy);return C3.compare(c,a,b)},CompareTravelled(a,b){return C3.compare(this._travelled,a,b)},OnStep(){return!0},IsEnabled(){return this._isEnabled}}; + +"use strict";C3.Behaviors.Bullet.Acts={SetSpeed(a){this._SetSpeed(a)},SetAcceleration(b){this._acc=b},SetGravity(a){this._g=a},SetAngleOfMotion(b){b=C3.toRadians(b);const a=C3.distanceTo(0,0,this._dx,this._dy);this._dx=Math.cos(b)*a,this._dy=Math.sin(b)*a},Bounce(a){var b=Math.max;if(a){const c=a.GetFirstPicked(this._inst);if(c){const a=this._inst.GetWorldInfo(),d=this._runtime.GetCollisionEngine(),e=this._runtime.GetDt(this._inst),f=C3.distanceTo(0,0,this._dx,this._dy),g=d.CalculateBounceAngle(this._inst,this._lastX,this._lastY,c);this._dx=Math.cos(g)*f,this._dy=Math.sin(g)*f,a.OffsetXY(this._dx*e,this._dy*e),a.SetBboxChanged(),this._setAngle&&(a.SetAngle(g),this._lastKnownAngle=a.GetAngle(),a.SetBboxChanged()),0!==f&&(this._bounceOffSolid?!d.PushOutSolid(this._inst,this._dx/f,this._dy/f,b(2.5*f*e,30))&&d.PushOutSolidNearest(this._inst,100):d.PushOut(this._inst,this._dx/f,this._dy/f,b(2.5*f*e,30),c))}}},SetDistanceTravelled(a){this._travelled=a},SetEnabled(a){this._SetEnabled(a)},StopStepping(){this._stopStepping=!0}}; + +"use strict";C3.Behaviors.Bullet.Exps={Speed(){return C3.round6dp(C3.distanceTo(0,0,this._dx,this._dy))},Acceleration(){return this._acc},AngleOfMotion(){return C3.toDegrees(C3.angleTo(0,0,this._dx,this._dy))},DistanceTravelled(){return this._travelled},Gravity(){return this._g}}; + +"use strict" +self.C3_GetObjectRefTable = function () { + return [ + C3.Plugins.Sprite, + C3.Behaviors.solid, + C3.Behaviors.Platform, + C3.Behaviors.scrollto, + C3.Behaviors.Flash, + C3.Plugins.Keyboard, + C3.Plugins.Text, + C3.Plugins.TiledBg, + C3.Behaviors.Bullet, + C3.Plugins.Audio, + C3.Plugins.System.Cnds.IsGroupActive, + C3.Plugins.System.Cnds.OnLayoutStart, + C3.Plugins.System.Acts.SetVar, + C3.Plugins.System.Cnds.EveryTick, + C3.Plugins.Sprite.Acts.SetPos, + C3.Plugins.Sprite.Exps.X, + C3.Plugins.Sprite.Exps.Y, + C3.Plugins.Text.Acts.SetText, + C3.Plugins.System.Acts.SubVar, + C3.Plugins.System.Exps.dt, + C3.Plugins.System.Cnds.CompareVar, + C3.Plugins.Sprite.Acts.SetBoolInstanceVar, + C3.Plugins.Sprite.Acts.SetAnim, + C3.Plugins.Sprite.Cnds.IsOverlapping, + C3.Plugins.System.Acts.ScrollToObject, + C3.Plugins.Sprite.Acts.SetX, + C3.Plugins.Sprite.Acts.SetY, + C3.Plugins.System.Acts.SetCanvasSize, + C3.Plugins.Keyboard.Cnds.OnKey, + C3.Plugins.Sprite.Acts.SetInstanceVar, + C3.Behaviors.Platform.Cnds.IsOnFloor, + C3.Plugins.Audio.Acts.Play, + C3.Plugins.Keyboard.Cnds.IsKeyDown, + C3.Behaviors.Platform.Acts.SetMaxSpeed, + C3.Plugins.Sprite.Cnds.OnAnimFinished, + C3.Plugins.Sprite.Cnds.CompareInstanceVar, + C3.Plugins.Sprite.Acts.SetMirrored, + C3.Behaviors.Platform.Cnds.IsMoving, + C3.Plugins.Sprite.Cnds.IsBoolInstanceVarSet, + C3.Plugins.Sprite.Cnds.OnCollision, + C3.Plugins.Sprite.Cnds.CompareY, + C3.Behaviors.Flash.Acts.Flash, + C3.Plugins.System.Acts.Wait, + C3.Behaviors.Platform.Acts.SetVectorY, + C3.Plugins.System.Acts.AddVar, + C3.Plugins.System.Acts.RestartLayout, + C3.Behaviors.Platform.Acts.SetGravity, + C3.Behaviors.Platform.Acts.SetIgnoreInput, + C3.Plugins.Sprite.Acts.SetPosToObject, + C3.Behaviors.Bullet.Acts.SetSpeed, + C3.Plugins.Sprite.Acts.Destroy, + C3.Plugins.Sprite.Acts.SetHeight, + C3.Plugins.Sprite.Acts.SetEffectEnabled, + C3.Plugins.Sprite.Acts.Spawn, + C3.Plugins.Sprite.Acts.SetAngle, + C3.Behaviors.Platform.Acts.SimulateControl, + C3.Plugins.Sprite.Cnds.IsOnScreen, + C3.Behaviors.Platform.Acts.SetEnabled, + C3.Behaviors.Bullet.Acts.SetEnabled, + C3.Behaviors.Bullet.Acts.Bounce, + C3.Plugins.Sprite.Acts.SetCollisions, + C3.Behaviors.solid.Acts.SetEnabled, + C3.Plugins.Sprite.Acts.SetVisible, + C3.Plugins.Sprite.Acts.MoveForward + ]; +}; + +"use strict"; + +{ + function unaryminus(n) + { + return (typeof n === "number" ? -n : n); + } + + function bothNumbers(a, b) + { + return typeof a === "number" && typeof b === "number"; + } + + function add(l, r) + { + if (bothNumbers(l, r)) + return l + r; + else + return l; + } + + function subtract(l, r) + { + if (bothNumbers(l, r)) + return l - r; + else + return l; + } + + function multiply(l, r) + { + if (bothNumbers(l, r)) + return l * r; + else + return l; + } + + function divide(l, r) + { + if (bothNumbers(l, r)) + return l / r; + else + return l; + } + + function mod(l, r) + { + if (bothNumbers(l, r)) + return l % r; + else + return l; + } + + function pow(l, r) + { + if (bothNumbers(l, r)) + return Math.pow(l, r); + else + return l; + } + + function and(l, r) + { + if (typeof l === "string" || typeof r === "string") + { + // & with either side string does string concatenation + let lstr, rstr; + + if (typeof l === "number") + lstr = (Math.round(l * 1e10) / 1e10).toString(); + else + lstr = l; + + if (typeof r === "number") + rstr = (Math.round(r * 1e10) / 1e10).toString(); + else + rstr = r; + + return lstr + rstr; + } + else + { + // & with neither side a string does logical AND + return (l && r ? 1 : 0); + } + } + + function or(l, r) + { + if (bothNumbers(l, r)) + return (l || r ? 1 : 0); + else + return l; + } + + self.C3_ExpressionFuncs = [ + () => "System", +() => 1, +p => { +const n0 = p._GetNode(0); +return () => n0.ExpObject(); +}, +p => { +const v0 = p._GetNode(0).GetVar(); +return () => and("Timer: ", Math.round(v0.GetValue())); +}, +p => { +const f0 = p._GetNode(0).GetBoundMethod(); +return () => f0(); +}, +() => 2, +() => "BigMario", +() => 0, +() => 512, +() => 480, +() => 932, +() => 856, +() => 390, +() => "Player", +() => "left", +() => "right", +() => "", +() => 400, +() => 200, +() => "down", +() => "Pright", +() => "GoDown", +() => 712, +() => 618, +() => "GoRight", +() => 5228, +() => 345, +() => "idle", +() => "walk", +() => "jump", +() => "death", +() => 0.1, +p => { +const n0 = p._GetNode(0); +return () => n0.ExpInstVar(); +}, +() => -500, +() => 10, +p => { +const v0 = p._GetNode(0).GetVar(); +return () => and("Score: ", v0.GetValue()); +}, +() => 350, +() => 50, +p => { +const n0 = p._GetNode(0); +const n1 = p._GetNode(1); +const n2 = p._GetNode(2); +const n3 = p._GetNode(3); +return () => C3.distanceTo(n0.ExpObject(), n1.ExpObject(), n2.ExpObject(), n3.ExpObject()); +}, +p => { +const v0 = p._GetNode(0).GetVar(); +return () => and("Score: ", Math.round(v0.GetValue())); +}, +() => 500, +() => 1000, +() => "SmallMario", +() => 32, +() => 64, +() => "Burn", +() => 12, +() => "Color", +() => 180, +() => "Slime", +() => "Snail", +() => "stunned", +() => "bounce", +() => "destroy", +() => 100, +() => "getCoin", +() => "empty", +() => "outbox", +() => 0.5, +() => "Main" + ]; +} + + diff --git a/Mario1-1/scripts/dispatchWorker.js b/Mario1-1/scripts/dispatchWorker.js new file mode 100644 index 0000000..8f92f7b --- /dev/null +++ b/Mario1-1/scripts/dispatchWorker.js @@ -0,0 +1 @@ +"use strict";self.inputPort=null,self.jobQueue=[],self.jobWorkers=[],self.sentBlobs=[],self.sentBuffers=[],self.importedScripts=[],self.lastBroadcasts=new Map;class JobWorker{constructor(a,b){this._port=a,this._number=b,this._isReady=!1,this._isBusy=!1,this._port.onmessage=(a)=>this._OnMessage(a.data)}ImportScripts(a){this._port.postMessage({"type":"_import_scripts","scripts":a})}SendBlob(a,b){this._port.postMessage({"type":"_send_blob","blob":a,"id":b})}SendBuffer(a,b){this._port.postMessage({"type":"_send_buffer","buffer":a,"id":b})}SendJob(a){if(this._isBusy||!this._isReady)throw new Error("cannot take job");this._isBusy=!0,this._port.postMessage(a,a["transferables"])}_InitBroadcast(a){this._port.postMessage(a,a["transferables"])}SendReady(){this._port.postMessage({"type":"_ready"})}IsReady(){return this._isReady}_OnReady(){this._isReady=!0,this.MaybeStartNextJob()}IsBusy(){return this._isBusy}GetNumber(){return this._number}_OnMessage(a){const b=a["type"];return"ready"===b?void this._OnReady():"done"===b?void this._OnJobDone():void console.error("unknown message from worker '"+b+"'")}_OnJobDone(){this._isBusy=!1,this.MaybeStartNextJob()}MaybeStartNextJob(){if(!this._isBusy&&this._isReady){const a=this._FindAvailableJob();if(-1!==a){const b=self.jobQueue[a],c=b["isBroadcast"];c?(b["doneFlags"][this._number]=!0,b["doneFlags"].every((a)=>a)&&self.jobQueue.splice(a,1)):self.jobQueue.splice(a,1),this.SendJob(b)}}}_FindAvailableJob(){for(let a=0,b=self.jobQueue.length;a{const b=a.data,c=b["type"];"_init"===c?(self.inputPort=b["in-port"],self.inputPort.onmessage=OnInputPortMessage):"_addJobWorker"===c&&AddJobWorker(b["port"])});function OnInputPortMessage(a){const b=a.data,c=b["type"];if("_cancel"===c)return void CancelJob(b.jobId);if("_import_scripts"===c){const a=b["scripts"];for(const b of self.jobWorkers)b.ImportScripts(a);return void self.importedScripts.push(a)}if("_send_blob"===c){const a=b["blob"],c=b["id"];for(const b of self.jobWorkers)b.SendBlob(a,c);return void self.sentBlobs.push([a,c])}if("_send_buffer"===c){const a=b["buffer"],c=b["id"];for(const b of self.jobWorkers)b.SendBuffer(a,c);return void self.sentBuffers.push([a,c])}if("_no_more_workers"===c)return self.sentBlobs.length=0,self.sentBuffers.length=0,self.importedScripts.length=0,void self.lastBroadcasts.clear();if("_testMessageChannel"===c)return void self.jobWorkers[0].TestMessageChannel();self.jobQueue.push(b),b["isBroadcast"]&&(b["doneFlags"]=Array(self.jobWorkers.length).fill(!1),b["transferables"]=[],self.lastBroadcasts.set(b["type"],b));for(const b of self.jobWorkers)b.MaybeStartNextJob()} \ No newline at end of file diff --git a/Mario1-1/scripts/jobWorker.js b/Mario1-1/scripts/jobWorker.js new file mode 100644 index 0000000..936a7ef --- /dev/null +++ b/Mario1-1/scripts/jobWorker.js @@ -0,0 +1 @@ +"use strict";self.dispatchPort=null,self.outputPort=null,self.workerNumber=-1,self.activeJobId=null,self.sentBlobs=new Map,self.sentBuffers=new Map,self.JobHandlers={};function FlipImageData(a,b,c){const d=4*b,e=new Uint8Array(d),f=a.buffer;for(let g=0,h=Math.floor(c/2);g{const b=a.data,c=b["type"];return"init"===c?(self.workerNumber=b["number"],self.dispatchPort=b["dispatch-port"],self.dispatchPort.onmessage=OnDispatchWorkerMessage,void(self.outputPort=b["output-port"])):"terminate"===c?void self.close():void console.error("unknown message '"+c+"'")});function SendReady(){self.dispatchPort.postMessage({"type":"ready"}),self.outputPort.postMessage({"type":"ready"})}function SendError(a,b){a||self.outputPort.postMessage({"type":"error","jobId":self.activeJobId,"error":b.toString()}),SendDone()}function SendResult(a,b){if(!a){const a=b.transferables||[];self.outputPort.postMessage({"type":"result","jobId":self.activeJobId,"result":b.result},a)}SendDone()}function SendDone(){self.activeJobId=null,self.dispatchPort.postMessage({"type":"done"})}function SendProgress(a){self.outputPort.postMessage({"type":"progress","jobId":self.activeJobId,"progress":a})}function OnDispatchWorkerMessage(a){const b=a.data,c=b["type"];if("_import_scripts"===c)return void importScripts(...b["scripts"]);if("_send_blob"===c)return void self.sentBlobs.set(b["id"],b["blob"]);if("_send_buffer"===c)return void self.sentBuffers.set(b["id"],b["buffer"]);if("_testMessageChannel"===c)return void self.outputPort.postMessage({"type":"_testMessageChannelOk"});if("_ready"===c)return void SendReady();const d=b["jobId"],f=b["isBroadcast"],e=b["params"];let g;if(self.activeJobId=d,!self.JobHandlers.hasOwnProperty(c))return void console.error(`no handler for message type '${c}'`);try{g=self.JobHandlers[c](e)}catch(a){return void SendError(f,"Exception in job handler: "+a)}g&&g.then?g.then((a)=>SendResult(f,a)).catch((a)=>SendError(f,"Rejection in job handler: "+a)):SendResult(f,g)} \ No newline at end of file diff --git a/Mario1-1/scripts/main.js b/Mario1-1/scripts/main.js new file mode 100644 index 0000000..8c55fea --- /dev/null +++ b/Mario1-1/scripts/main.js @@ -0,0 +1,11 @@ +"use strict";window.DOMHandler=class{constructor(a,b){this._iRuntime=a,this._componentId=b,this._hasTickCallback=!1,this._tickCallback=()=>this.Tick()}Attach(){}PostToRuntime(a,b,c,d){this._iRuntime.PostToRuntimeComponent(this._componentId,a,b,!!c,d)}PostToRuntimeAsync(a,b,c,d){return this._iRuntime.PostToRuntimeComponentAsync(this._componentId,a,b,!!c,d)}_PostToRuntimeMaybeSync(a,b,c){this._iRuntime.UsesWorker()?this.PostToRuntime(a,b,c):this._iRuntime._GetLocalRuntime()["_OnMessageFromDOM"]({"type":"event","component":this._componentId,"handler":a,"dispatchRuntimeEvent":c,"data":b,"responseId":null})}AddRuntimeMessageHandler(a,b){this._iRuntime.AddRuntimeComponentMessageHandler(this._componentId,a,b)}AddRuntimeMessageHandlers(a){for(const[b,c]of a)this.AddRuntimeMessageHandler(b,c)}GetRuntimeInterface(){return this._iRuntime}GetComponentID(){return this._componentId}_StartTicking(){this._hasTickCallback||(this._iRuntime._AddRAFCallback(this._tickCallback),this._hasTickCallback=!0)}_StopTicking(){this._hasTickCallback&&(this._iRuntime._RemoveRAFCallback(this._tickCallback),this._hasTickCallback=!1)}Tick(){}}; + +"use strict";window.DOMElementHandler=class extends DOMHandler{constructor(a,b){super(a,b),this._elementMap=new Map,this._autoAttach=!0,this.AddRuntimeMessageHandler("create",(a)=>this._OnCreate(a)),this.AddRuntimeMessageHandler("destroy",(a)=>this._OnDestroy(a)),this.AddRuntimeMessageHandler("set-visible",(a)=>this._OnSetVisible(a)),this.AddRuntimeMessageHandler("update-position",(a)=>this._OnUpdatePosition(a)),this.AddRuntimeMessageHandler("update-state",(a)=>this._OnUpdateState(a)),this.AddRuntimeMessageHandler("focus",(a)=>this._OnSetFocus(a)),this.AddRuntimeMessageHandler("set-css-style",(a)=>this._OnSetCssStyle(a))}SetAutoAttach(a){this._autoAttach=!!a}AddDOMElementMessageHandler(a,b){this.AddRuntimeMessageHandler(a,(a)=>{const c=a["elementId"],d=this._elementMap.get(c);return b(d,a)})}_OnCreate(a){const b=a["elementId"],c=this.CreateElement(b,a);this._elementMap.set(b,c),this._autoAttach&&document.body.appendChild(c)}CreateElement(){throw new Error("required override")}DestroyElement(){}_OnDestroy(a){const b=a["elementId"],c=this._elementMap.get(b);this.DestroyElement(c),this._autoAttach&&c.parentElement.removeChild(c),this._elementMap.delete(b)}PostToRuntimeElement(a,b,c){c||(c={}),c["elementId"]=b,this.PostToRuntime(a,c)}_PostToRuntimeElementMaybeSync(a,b,c){c||(c={}),c["elementId"]=b,this._PostToRuntimeMaybeSync(a,c)}_OnSetVisible(a){if(this._autoAttach){const b=this._elementMap.get(a["elementId"]);b.style.display=a["isVisible"]?"":"none"}}_OnUpdatePosition(a){if(this._autoAttach){const b=this._elementMap.get(a["elementId"]);b.style.left=a["left"]+"px",b.style.top=a["top"]+"px",b.style.width=a["width"]+"px",b.style.height=a["height"]+"px";const c=a["fontSize"];null!==c&&(b.style.fontSize=c+"em")}}_OnUpdateState(a){const b=this._elementMap.get(a["elementId"]);this.UpdateState(b,a)}UpdateState(){throw new Error("required override")}_OnSetFocus(a){const b=this._elementMap.get(a["elementId"]);a["focus"]?b.focus():b.blur()}_OnSetCssStyle(a){const b=this._elementMap.get(a["elementId"]);b.style[a["prop"]]=a["val"]}GetElementById(a){return this._elementMap.get(a)}}; + +"use strict";{function a(a){return new Promise((b,c)=>{const d=document.createElement("script");d.onload=b,d.onerror=c,d.async=!1,d.src=a,document.head.appendChild(d)})}async function b(a){const b=await c(a),d=new TextDecoder("utf-8");return d.decode(b)}function c(a){return new Promise((b,c)=>{const d=new FileReader;d.onload=(a)=>b(a.target.result),d.onerror=(a)=>c(a),d.readAsArrayBuffer(a)})}function d(){if(!f)return o;const a=document.createElement("canvas"),b=a.getContext("webgl2",{"alpha":!0,"depth":!1,"antialias":!1,"failIfMajorPerformanceCaveat":!0});if(!b)return o;const c=b.getExtension("WEBGL_debug_renderer_info");if(!c)return o;const d=b.getParameter(c["UNMASKED_RENDERER_WEBGL"]);for(const a of p)if(d.toLowerCase().includes(a.toLowerCase()))return console.warn(`[Construct 3] This device appears to support WebGL 2, but it is disabled due to GPU driver bugs that make it unusable. (Renderer '${d}' matches blacklist entry '${a}'.) See crbug.com/934823`),1;return o}const e=/(iphone|ipod|ipad)/i.test(navigator.userAgent),f=/android/i.test(navigator.userAgent);let g=new Audio;const h={"audio/webm; codecs=opus":!!g.canPlayType("audio/webm; codecs=opus"),"audio/ogg; codecs=opus":!!g.canPlayType("audio/ogg; codecs=opus"),"audio/webm; codecs=vorbis":!!g.canPlayType("audio/webm; codecs=vorbis"),"audio/ogg; codecs=vorbis":!!g.canPlayType("audio/ogg; codecs=vorbis"),"audio/mp4":!!g.canPlayType("audio/mp4"),"audio/mpeg":!!g.canPlayType("audio/mpeg")};g=null;const i=[];let j=0;const k=[],l=new Map,m=new Map;let n=0;const o=2,p=["Mali"];window.RuntimeInterface=class f{constructor(a){this._useWorker=a.useWorker,this._messageChannelPort=null,this._baseUrl="",this._scriptFolder=a.scriptFolder,this._workerScriptBlobURLs={},this._worker=null,this._localRuntime=null,this._domHandlers=[],this._runtimeDomHandler=null,this._canvas=null,this._jobScheduler=null,this._rafId=-1,this._rafFunc=()=>this._OnRAFCallback(),this._rafCallbacks=[],this._exportType=a.exportType,"cordova"===this._exportType&&this._useWorker&&(console.warn("[C3 runtime] Worker mode is enabled and supported, but is disabled in Cordova due to crbug.com/939775. Reverting to DOM mode."),this._useWorker=!1),this._transferablesBroken=!1,this._localFileBlobs=null,("html5"===this._exportType||"playable-ad"===this._exportType)&&"file"===location.protocol.substr(0,4)&&alert("Exported games won't work until you upload them. (When running on the file: protocol, browsers block many features from working for security reasons.)"),this.AddRuntimeComponentMessageHandler("runtime","cordova-fetch-local-file",(a)=>this._OnCordovaFetchLocalFile(a)),this.AddRuntimeComponentMessageHandler("runtime","create-job-worker",(a)=>this._OnCreateJobWorker(a)),"cordova"===this._exportType?document.addEventListener("deviceready",()=>this._Init(a)):this._Init(a)}Release(){this._CancelAnimationFrame(),this._messageChannelPort&&(this._messageChannelPort.onmessage=null,this._messageChannelPort=null),this._worker&&(this._worker.terminate(),this._worker=null),this._localRuntime&&(this._localRuntime.Release(),this._localRuntime=null),this._canvas&&(this._canvas.parentElement.removeChild(this._canvas),this._canvas=null)}GetCanvas(){return this._canvas}GetBaseURL(){return this._baseUrl}UsesWorker(){return this._useWorker}GetExportType(){return this._exportType}IsWKWebView(){return"cordova"===this._exportType&&e}IsiPhoneX(){if(!this.IsWKWebView())return!1;const a=window["devicePixelRatio"],b=window["screen"]["width"]*a,c=window["screen"]["height"]*a;return 1125==b&&2436==c}async _Init(a){if("playable-ad"===this._exportType){this._localFileBlobs=self["c3_base64files"],await this._ConvertDataUrisToBlobs();for(let b=0,c=a.engineScripts.length;bthis["_OnMessageFromRuntime"](a.data),window["c3_addPortMessageHandler"]&&window["c3_addPortMessageHandler"]((a)=>this._OnMessageFromDebugger(a)),this._jobScheduler=new self.JobSchedulerDOM(this),await this._jobScheduler.Init(),this.MaybeForceBodySize(),"object"==typeof window["StatusBar"]&&window["StatusBar"]["hide"](),await this._TestTransferablesWork(),this._useWorker?await this._InitWorker(a,b.port2):await this._InitDOM(a,b.port2)}_GetWorkerURL(a){return this._workerScriptBlobURLs.hasOwnProperty(a)?this._workerScriptBlobURLs[a]:a.endsWith("/workerMain.js")&&this._workerScriptBlobURLs.hasOwnProperty("workerMain.js")?this._workerScriptBlobURLs["workerMain.js"]:"playable-ad"===this._exportType&&this._localFileBlobs.hasOwnProperty(a.toLowerCase())?URL.createObjectURL(this._localFileBlobs[a.toLowerCase()]):a}async CreateWorker(a,b,c){if(a.startsWith("blob:"))return new Worker(a,c);if(this.IsWKWebView()){const b=await this.CordovaFetchLocalFileAsArrayBuffer(this._scriptFolder+a),d=new Blob([b],{type:"application/javascript"});return new Worker(URL.createObjectURL(d),c)}const d=new URL(a,b),e=location.origin!==d.origin;if(e){const a=await fetch(d);if(!a.ok)throw new Error("failed to fetch worker script");const b=await a.blob();return new Worker(URL.createObjectURL(b),c)}return new Worker(d,c)}MaybeForceBodySize(){if(this.IsiPhoneX()){const a=window.innerWidth>window.innerHeight,b=document["documentElement"].style,c=document["body"].style;a?(c["height"]=b["height"]="375px",c["width"]=b["width"]="812px"):(c["width"]=b["width"]="375px",c["height"]=b["height"]="812px")}}_GetCommonRuntimeOptions(a){return{"baseUrl":this._baseUrl,"windowInnerWidth":window.innerWidth,"windowInnerHeight":window.innerHeight,"devicePixelRatio":window.devicePixelRatio,"isFullscreen":f.IsDocumentFullscreen(),"maxWebGLVersion":d(),"projectData":a.projectData,"previewImageBlobs":window["cr_previewImageBlobs"]||this._localFileBlobs,"previewProjectFileBlobs":window["cr_previewProjectFileBlobs"],"shaders":self["C3_Shaders"],"exportType":a.exportType,"isDebug":-1new a(this)),this._FindRuntimeDOMHandler()}async _InitDOM(b,c){this._canvas=document.createElement("canvas"),this._canvas.style.display="none",document.body.appendChild(this._canvas),window["c3canvas"]=this._canvas,this._domHandlers=k.map((a)=>new a(this)),this._FindRuntimeDOMHandler();const d=b.engineScripts.map((a)=>new URL(a,this._baseUrl).toString());await Promise.all(d.map((b)=>a(b)));const e=Object.assign(this._GetCommonRuntimeOptions(b),{"isInWorker":!1,"messagePort":c,"canvas":this._canvas});this._localRuntime=self["C3_CreateRuntime"](e),await self["C3_InitRuntime"](this._localRuntime,e)}async _OnCreateJobWorker(){const a=await this._jobScheduler._CreateJobWorker();return{"outputPort":a,"transferables":[a]}}_GetLocalRuntime(){if(this._useWorker)throw new Error("not available in worker mode");return this._localRuntime}PostToRuntimeComponent(a,b,c,d,e){this._messageChannelPort.postMessage({"type":"event","component":a,"handler":b,"dispatchRuntimeEvent":d,"data":c,"responseId":null},this._transferablesBroken?void 0:e)}PostToRuntimeComponentAsync(a,b,c,d,e){const f=n++,g=new Promise((a,b)=>{m.set(f,{resolve:a,reject:b})});return this._messageChannelPort.postMessage({"type":"event","component":a,"handler":b,"dispatchRuntimeEvent":d,"data":c,"responseId":f},this._transferablesBroken?void 0:e),g}["_OnMessageFromRuntime"](a){const b=a["type"];if("event"===b)this._OnEventFromRuntime(a);else if("result"===b)this._OnResultFromRuntime(a);else if("runtime-ready"===b)this._OnRuntimeReady();else throw new Error(`unknown message '${b}'`)}_OnEventFromRuntime(a){const b=a["component"],c=a["handler"],d=a["data"],e=a["responseId"],f=l.get(b);if(!f)return void console.warn(`[DOM] No event handlers for component '${b}'`);const g=f.get(c);if(!g)return void console.warn(`[DOM] No handler '${c}' for component '${b}'`);let h=null;try{h=g(d)}catch(a){return console.error(`Exception in '${b}' handler '${c}':`,a),void(null!==e&&this._PostResultToRuntime(e,!1,a.toString()))}null!==e&&(h&&h.then?h.then((a)=>this._PostResultToRuntime(e,!0,a)).catch((a)=>{console.error(`Rejection from '${b}' handler '${c}':`,a),this._PostResultToRuntime(e,!1,a.toString())}):this._PostResultToRuntime(e,!0,h))}_PostResultToRuntime(a,b,c){let d;c&&c["transferables"]&&(d=c["transferables"]),this._messageChannelPort.postMessage({"type":"result","responseId":a,"isOk":b,"result":c},d)}_OnResultFromRuntime(a){const b=a["responseId"],c=a["isOk"],d=a["result"],e=m.get(b);c?e.resolve(d):e.reject(d),m.delete(b)}AddRuntimeComponentMessageHandler(a,b,c){let d=l.get(a);if(d||(d=new Map,l.set(a,d)),d.has(b))throw new Error(`[DOM] Component '${a}' already has handler '${b}'`);d.set(b,c)}static AddDOMHandlerClass(a){if(k.includes(a))throw new Error("DOM handler already added");k.push(a)}_FindRuntimeDOMHandler(){for(const a of this._domHandlers)if("runtime"===a.GetComponentID())return void(this._runtimeDomHandler=a);throw new Error("cannot find runtime DOM handler")}_OnMessageFromDebugger(a){this.PostToRuntimeComponent("debugger","message",a)}_OnRuntimeReady(){for(const a of this._domHandlers)a.Attach()}static IsDocumentFullscreen(){return!!(document["fullscreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"])}async GetRemotePreviewStatusInfo(){return await this.PostToRuntimeComponentAsync("runtime","get-remote-preview-status-info")}_AddRAFCallback(a){this._rafCallbacks.push(a),this._RequestAnimationFrame()}_RemoveRAFCallback(a){const b=this._rafCallbacks.indexOf(a);if(-1===b)throw new Error("invalid callback");this._rafCallbacks.splice(b,1),this._rafCallbacks.length||this._CancelAnimationFrame()}_RequestAnimationFrame(){-1===this._rafId&&this._rafCallbacks.length&&(this._rafId=requestAnimationFrame(this._rafFunc))}_CancelAnimationFrame(){-1!==this._rafId&&(cancelAnimationFrame(this._rafId),this._rafId=-1)}_OnRAFCallback(){this._rafId=-1;for(const a of this._rafCallbacks)a();this._RequestAnimationFrame()}TryPlayMedia(a){this._runtimeDomHandler.TryPlayMedia(a)}RemovePendingPlay(a){this._runtimeDomHandler.RemovePendingPlay(a)}_PlayPendingMedia(){this._runtimeDomHandler._PlayPendingMedia()}SetSilent(a){this._runtimeDomHandler.SetSilent(a)}IsAudioFormatSupported(a){return!!h[a]}async _WasmDecodeWebMOpus(a){const b=await this.PostToRuntimeComponentAsync("runtime","opus-decode",{"arrayBuffer":a},!1,[a]);return new Float32Array(b)}IsAbsoluteURL(a){return /^(?:[a-z]+:)?\/\//.test(a)||"data:"===a.substr(0,5)||"blob:"===a.substr(0,5)}IsRelativeURL(a){return!this.IsAbsoluteURL(a)}async _OnCordovaFetchLocalFile(a){const b=a["filename"];switch(a["as"]){case"text":return await this.CordovaFetchLocalFileAsText(b);case"buffer":return await this.CordovaFetchLocalFileAsArrayBuffer(b);default:throw new Error("unsupported type");}}CordovaFetchLocalFile(a){const b=window["cordova"]["file"]["applicationDirectory"]+"www/"+a;return new Promise((a,c)=>{window["resolveLocalFileSystemURL"](b,(b)=>{b["file"](a,c)},c)})}async CordovaFetchLocalFileAsText(a){const c=await this.CordovaFetchLocalFile(a);return await b(c)}_CordovaMaybeStartNextArrayBufferRead(){if(i.length&&!(j>=8)){j++;const a=i.shift();this._CordovaDoFetchLocalFileAsAsArrayBuffer(a.filename,a.successCallback,a.errorCallback)}}CordovaFetchLocalFileAsArrayBuffer(a){return new Promise((b,c)=>{i.push({filename:a,successCallback:(a)=>{j--,this._CordovaMaybeStartNextArrayBufferRead(),b(a)},errorCallback:(a)=>{j--,this._CordovaMaybeStartNextArrayBufferRead(),c(a)}}),this._CordovaMaybeStartNextArrayBufferRead()})}async _CordovaDoFetchLocalFileAsAsArrayBuffer(a,b,d){try{const d=await this.CordovaFetchLocalFile(a),e=await c(d);b(e)}catch(a){d(a)}}async _ConvertDataUrisToBlobs(){const a=[];for(const[b,c]of Object.entries(this._localFileBlobs))a.push(this._ConvertDataUriToBlobs(b,c));await Promise.all(a)}async _ConvertDataUriToBlobs(a,b){if("object"==typeof b)this._localFileBlobs[a]=new Blob([b["str"]],{"type":b["type"]});else{const c=await fetch(b),d=await c.blob();this._localFileBlobs[a]=d}}_TestTransferablesWork(){let a=null;const b=new Promise((b)=>a=b),c=new ArrayBuffer(1),d=new MessageChannel;return d.port2.onmessage=(b)=>{b.data&&b.data["arrayBuffer"]||(this._transferablesBroken=!0,console.warn("MessageChannel transfers determined to be broken. Disabling transferables.")),a()},d.port1.postMessage({"arrayBuffer":c},[c]),b}}} + +"use strict";{function a(a){return a["sourceCapabilities"]&&a["sourceCapabilities"]["firesTouchEvents"]||a["originalEvent"]&&a["originalEvent"]["sourceCapabilities"]&&a["originalEvent"]["sourceCapabilities"]["firesTouchEvents"]}function b(a){return new Promise((b,c)=>{const d=new Image;d.onload=()=>b(d),d.onerror=(a)=>c(a),d.src=a})}async function c(a){const c=URL.createObjectURL(a);try{return await b(c)}finally{URL.revokeObjectURL(c)}}function d(){try{return window.parent&&window.parent.document.hasFocus()}catch(a){return!1}}self["C3_RasterSvgImage"]=async function(a,b,c){const d=document.createElement("canvas");d.width=b,d.height=c;const e=d.getContext("2d");return e.drawImage(a,0,0,b,c),d};let e=!1;document.addEventListener("pause",()=>e=!0),document.addEventListener("resume",()=>e=!1);const f=class extends DOMHandler{constructor(a){super(a,"runtime"),this._isFirstSizeUpdate=!0,this._targetOrientation="any",this._attachedDeviceOrientationEvent=!1,this._attachedDeviceMotionEvent=!1,this._debugHighlightElem=null,a.AddRuntimeComponentMessageHandler("canvas","update-size",(a)=>this._OnUpdateCanvasSize(a)),a.AddRuntimeComponentMessageHandler("runtime","invoke-download",(a)=>this._OnInvokeDownload(a)),a.AddRuntimeComponentMessageHandler("runtime","raster-svg-image",(a)=>this._OnRasterSvgImage(a)),a.AddRuntimeComponentMessageHandler("runtime","set-target-orientation",(a)=>this._OnSetTargetOrientation(a)),a.AddRuntimeComponentMessageHandler("runtime","register-sw",()=>this._OnRegisterSW()),a.AddRuntimeComponentMessageHandler("runtime","post-to-debugger",(a)=>this._OnPostToDebugger(a)),a.AddRuntimeComponentMessageHandler("runtime","before-start-ticking",()=>this._OnBeforeStartTicking()),a.AddRuntimeComponentMessageHandler("runtime","debug-highlight",(a)=>this._OnDebugHighlight(a)),a.AddRuntimeComponentMessageHandler("runtime","enable-device-orientation",()=>this._AttachDeviceOrientationEvent()),a.AddRuntimeComponentMessageHandler("runtime","enable-device-motion",()=>this._AttachDeviceMotionEvent());const b=a.GetCanvas();b.addEventListener("contextmenu",(a)=>a.preventDefault()),b.addEventListener("selectstart",(a)=>a.preventDefault()),b.addEventListener("gesturehold",(a)=>a.preventDefault()),b.addEventListener("touchstart",(a)=>a.preventDefault()),window.addEventListener("mousedown",(a)=>{1===a.button&&a.preventDefault()}),window.addEventListener("resize",()=>this._OnWindowResize()),this._mediaPendingPlay=new Set,this._mediaRemovedPendingPlay=new WeakSet,this._isSilent=!1}_OnBeforeStartTicking(){return document.addEventListener("visibilitychange",()=>this._OnVisibilityChange(document.hidden)),document.addEventListener("pause",()=>this._OnVisibilityChange(!0)),document.addEventListener("resume",()=>this._OnVisibilityChange(!1)),{"isSuspended":!!(document.hidden||e)}}Attach(){window.addEventListener("focus",()=>this._PostRuntimeEvent("window-focus")),window.addEventListener("blur",()=>this._PostRuntimeEvent("window-blur",{"parentHasFocus":d()})),window.addEventListener("fullscreenchange",()=>this._OnFullscreenChange()),window.addEventListener("webkitfullscreenchange",()=>this._OnFullscreenChange()),window.addEventListener("mozfullscreenchange",()=>this._OnFullscreenChange()),window.addEventListener("fullscreenerror",(a)=>this._OnFullscreenError(a)),window.addEventListener("webkitfullscreenerror",(a)=>this._OnFullscreenError(a)),window.addEventListener("mozfullscreenerror",(a)=>this._OnFullscreenError(a)),window.addEventListener("keydown",(a)=>this._OnKeyEvent("keydown",a)),window.addEventListener("keyup",(a)=>this._OnKeyEvent("keyup",a)),window.addEventListener("mousemove",(a)=>this._OnMouseEvent("mousemove",a)),window.addEventListener("mousedown",(a)=>this._OnMouseEvent("mousedown",a)),window.addEventListener("mouseup",(a)=>this._OnMouseEvent("mouseup",a)),window.addEventListener("dblclick",(a)=>this._OnMouseEvent("dblclick",a)),window.addEventListener("wheel",(a)=>this._OnMouseWheelEvent("wheel",a)),"undefined"==typeof PointerEvent?(window.addEventListener("touchstart",(a)=>this._OnTouchEvent("pointerdown",a)),window.addEventListener("touchmove",(a)=>this._OnTouchEvent("pointermove",a)),window.addEventListener("touchend",(a)=>this._OnTouchEvent("pointerup",a)),window.addEventListener("touchcancel",(a)=>this._OnTouchEvent("pointercancel",a))):(window.addEventListener("pointerdown",(a)=>this._OnPointerEvent("pointerdown",a)),window.addEventListener("pointermove",(a)=>this._OnPointerEvent("pointermove",a)),window.addEventListener("pointerup",(a)=>this._OnPointerEvent("pointerup",a)),window.addEventListener("pointercancel",(a)=>this._OnPointerEvent("pointercancel",a)));const a=()=>this._PlayPendingMedia();window.addEventListener("pointerup",a,!0),window.addEventListener("touchend",a,!0),window.addEventListener("click",a,!0),window.addEventListener("keydown",a,!0),window.addEventListener("gamepadconnected",a,!0)}_AttachDeviceOrientationEvent(){this._attachedDeviceOrientationEvent||(this._attachedDeviceOrientationEvent=!0,window.addEventListener("deviceorientation",(a)=>this._OnDeviceOrientation(a)))}_AttachDeviceMotionEvent(){this._attachedDeviceMotionEvent||(this._attachedDeviceMotionEvent=!0,window.addEventListener("devicemotion",(a)=>this._OnDeviceMotion(a)))}_PostRuntimeEvent(a,b){this.PostToRuntime(a,b||null,!0)}_OnWindowResize(){this.PostToRuntime("window-resize",{"innerWidth":window.innerWidth,"innerHeight":window.innerHeight,"devicePixelRatio":window.devicePixelRatio},!0)}_OnSetTargetOrientation(a){this._targetOrientation=a["targetOrientation"]}_TrySetTargetOrientation(){const a=this._targetOrientation;if(screen["orientation"]&&screen["orientation"]["lock"])screen["orientation"]["lock"](a).catch((a)=>console.warn("[Construct 3] Failed to lock orientation: ",a));else try{let b=!1;screen["lockOrientation"]?b=screen["lockOrientation"](a):screen["webkitLockOrientation"]?b=screen["webkitLockOrientation"](a):screen["mozLockOrientation"]?b=screen["mozLockOrientation"](a):screen["msLockOrientation"]&&(b=screen["msLockOrientation"](a)),b||console.warn("[Construct 3] Failed to lock orientation")}catch(a){console.warn("[Construct 3] Failed to lock orientation: ",a)}}_OnFullscreenChange(){const a=RuntimeInterface.IsDocumentFullscreen();a&&"any"!==this._targetOrientation&&this._TrySetTargetOrientation(),this.PostToRuntime("fullscreenchange",{"isFullscreen":a,"innerWidth":window.innerWidth,"innerHeight":window.innerHeight})}_OnFullscreenError(a){console.warn("[Construct 3] Fullscreen request failed: ",a),this.PostToRuntime("fullscreenerror",{"isFullscreen":RuntimeInterface.IsDocumentFullscreen(),"innerWidth":window.innerWidth,"innerHeight":window.innerHeight})}_OnVisibilityChange(a){a?this._iRuntime._CancelAnimationFrame():this._iRuntime._RequestAnimationFrame(),this.PostToRuntime("visibilitychange",{"hidden":a})}_OnKeyEvent(a,b){this._PostToRuntimeMaybeSync(a,{"code":b.code,"key":b.key,"which":b.which,"repeat":b.repeat,"altKey":b.altKey,"ctrlKey":b.ctrlKey,"metaKey":b.metaKey,"shiftKey":b.shiftKey,"timeStamp":b.timeStamp},!0)}_OnMouseEvent(b,c){a(c)||("mousedown"===b&&window!==window.top&&window.focus(),this._PostToRuntimeMaybeSync(b,{"button":c.button,"clientX":c.clientX,"clientY":c.clientY,"timeStamp":c.timeStamp},!0))}_OnMouseWheelEvent(a,b){this.PostToRuntime(a,{"clientX":b.clientX,"clientY":b.clientY,"deltaX":b.deltaX,"deltaY":b.deltaY,"deltaZ":b.deltaZ,"deltaMode":b.deltaMode,"timeStamp":b.timeStamp},!0)}_OnPointerEvent(a,b){"pointerdown"===a&&window!==window.top&&window.focus(),this._PostToRuntimeMaybeSync(a,{"pointerId":b.pointerId,"pointerType":b.pointerType,"clientX":b.clientX,"clientY":b.clientY,"width":b.width||0,"height":b.height||0,"pressure":b.pressure||0,"tangentialPressure":b["tangentialPressure"]||0,"tiltX":b.tiltX||0,"tiltY":b.tiltY||0,"twist":b["twist"]||0,"timeStamp":b.timeStamp},!0)}_OnTouchEvent(a,b){"pointerdown"===a&&window!==window.top&&window.focus();for(let c=0,d=b.changedTouches.length;c{this._mediaRemovedPendingPlay.has(b)||this._mediaPendingPlay.add(b)})}}TryPlayMedia(a){if("function"!=typeof a.play)throw new Error("missing play function");this._mediaRemovedPendingPlay.delete(a);let b;try{b=a.play()}catch(b){return void this._mediaPendingPlay.add(a)}b&&b.catch(()=>{this._mediaRemovedPendingPlay.has(a)||this._mediaPendingPlay.add(a)})}RemovePendingPlay(a){this._mediaPendingPlay.delete(a),this._mediaRemovedPendingPlay.add(a)}SetSilent(a){this._isSilent=!!a}_OnDebugHighlight(a){const b=a["show"];if(!b)return void(this._debugHighlightElem&&(this._debugHighlightElem.style.display="none"));this._debugHighlightElem||(this._debugHighlightElem=document.createElement("div"),this._debugHighlightElem.id="inspectOutline",document.body.appendChild(this._debugHighlightElem));const c=this._debugHighlightElem;c.style.display="",c.style.left=a["left"]-1+"px",c.style.top=a["top"]-1+"px",c.style.width=a["width"]+2+"px",c.style.height=a["height"]+2+"px",c.textContent=a["name"]}_OnRegisterSW(){window["C3_RegisterSW"]&&window["C3_RegisterSW"]()}_OnPostToDebugger(a){window["c3_postToMessagePort"]&&(a["from"]="runtime",window["c3_postToMessagePort"](a))}};RuntimeInterface.AddDOMHandlerClass(f)} + +"use strict";{const a=document.currentScript.src;self.JobSchedulerDOM=class{constructor(b){this._runtimeInterface=b,this._baseUrl=a?a.substr(0,a.lastIndexOf("/")+1):b.GetBaseURL(),this._maxNumWorkers=Math.min(navigator.hardwareConcurrency||2,16),this._dispatchWorker=null,this._jobWorkers=[],this._inputPort=null,this._outputPort=null}async Init(){if(this._hasInitialised)throw new Error("already initialised");this._hasInitialised=!0;const a=this._runtimeInterface._GetWorkerURL("dispatchWorker.js");this._dispatchWorker=await this._runtimeInterface.CreateWorker(a,this._baseUrl,{name:"DispatchWorker"});const b=new MessageChannel;this._inputPort=b.port1,this._dispatchWorker.postMessage({"type":"_init","in-port":b.port2},[b.port2]),this._outputPort=await this._CreateJobWorker()}async _CreateJobWorker(){const a=this._jobWorkers.length,b=this._runtimeInterface._GetWorkerURL("jobWorker.js"),c=await this._runtimeInterface.CreateWorker(b,this._baseUrl,{name:"JobWorker"+a}),d=new MessageChannel,e=new MessageChannel;return this._dispatchWorker.postMessage({"type":"_addJobWorker","port":d.port1},[d.port1]),c.postMessage({"type":"init","number":a,"dispatch-port":d.port2,"output-port":e.port2},[d.port2,e.port2]),this._jobWorkers.push(c),e.port1}GetPortData(){return{"inputPort":this._inputPort,"outputPort":this._outputPort,"maxNumWorkers":this._maxNumWorkers}}GetPortTransferables(){return[this._inputPort,this._outputPort]}}} + +"use strict";if(window["C3_IsSupported"]){const a=false,b="undefined"!=typeof OffscreenCanvas;window["c3_runtimeInterface"]=new RuntimeInterface({useWorker:a&&b,workerMainUrl:"workerMain.js",engineScripts:["scripts/c3runtime.js"],scriptFolder:"scripts/",exportType:"html5"})}"use strict";{function a(c,a){return!(c.length!==a.length)&&(!(c!==a)||c.toLowerCase()===a.toLowerCase())}const b=class extends DOMHandler{constructor(a){super(a,"audio"),this._audioContext=null,this._destinationNode=null,this._hasUnblocked=!1,this._unblockFunc=()=>this._UnblockAudioContext(),this._audioBuffers=[],this._audioInstances=[],this._lastAudioInstance=null,this._lastPlayedTag="",this._lastTickCount=-1,this._pendingTags=new Map,this._masterVolume=1,this._isSilent=!1,this._timeScaleMode=0,this._timeScale=1,this._gameTime=0,this._panningModel="HRTF",this._distanceModel="inverse",this._refDistance=600,this._maxDistance=1e4,this._rolloffFactor=1,this._playMusicAsSound=!1,this._hasAnySoftwareDecodedMusic=!1,this._supportsWebMOpus=this._iRuntime.IsAudioFormatSupported("audio/webm; codecs=opus"),this._effects=new Map,this._analysers=new Set,this._isPendingPostFxState=!1,this._microphoneTag="",this._microphoneSource=null,self["C3Audio_OnMicrophoneStream"]=(a,b)=>this._OnMicrophoneStream(a,b),this._destMediaStreamNode=null,self["C3Audio_GetOutputStream"]=()=>this._OnGetOutputStream(),this.AddRuntimeMessageHandlers([["create-audio-context",(a)=>this._CreateAudioContext(a)],["play",(a)=>this._Play(a)],["stop",(a)=>this._Stop(a)],["stop-all",()=>this._StopAll()],["set-paused",(a)=>this._SetPaused(a)],["set-volume",(a)=>this._SetVolume(a)],["fade-volume",(a)=>this._FadeVolume(a)],["set-master-volume",(a)=>this._SetMasterVolume(a)],["set-muted",(a)=>this._SetMuted(a)],["set-silent",(a)=>this._SetSilent(a)],["set-looping",(a)=>this._SetLooping(a)],["set-playback-rate",(a)=>this._SetPlaybackRate(a)],["seek",(a)=>this._Seek(a)],["preload",(a)=>this._Preload(a)],["unload",(a)=>this._Unload(a)],["unload-all",()=>this._UnloadAll()],["set-suspended",(a)=>this._SetSuspended(a)],["add-effect",(a)=>this._AddEffect(a)],["set-effect-param",(a)=>this._SetEffectParam(a)],["remove-effects",(a)=>this._RemoveEffects(a)],["tick",(a)=>this._OnTick(a)],["load-state",(a)=>this._OnLoadState(a)]])}async _CreateAudioContext(a){a["isWKWebView"]&&(this._playMusicAsSound=!0),this._timeScaleMode=a["timeScaleMode"],this._panningModel=["equalpower","HRTF","soundfield"][a["panningModel"]],this._distanceModel=["linear","inverse","exponential"][a["distanceModel"]],this._refDistance=a["refDistance"],this._maxDistance=a["maxDistance"],this._rolloffFactor=a["rolloffFactor"];const b={"latencyHint":a["latencyHint"]};if("undefined"!=typeof AudioContext)this._audioContext=new AudioContext(b);else if("undefined"!=typeof webkitAudioContext)this._audioContext=new webkitAudioContext(b);else throw new Error("Web Audio API not supported");this._destinationNode=this._audioContext["createGain"](),this._destinationNode["connect"](this._audioContext["destination"]);const c=a["listenerPos"];this._audioContext["listener"]["setPosition"](c[0],c[1],c[2]),this._audioContext["listener"]["setOrientation"](0,0,1,0,-1,0),window.addEventListener("pointerup",this._unblockFunc,!0),window.addEventListener("touchend",this._unblockFunc,!0),window.addEventListener("click",this._unblockFunc,!0),window.addEventListener("keydown",this._unblockFunc,!0),self["C3_GetAudioContextCurrentTime"]=()=>this.GetAudioCurrentTime();try{await Promise.all(a["preloadList"].map((a)=>this._GetAudioBuffer(a["originalUrl"],a["url"],a["type"],!1)))}catch(a){console.error("[Construct 3] Preloading sounds failed: ",a)}return{"sampleRate":this._audioContext["sampleRate"]}}_UnblockAudioContext(){if(!this._hasUnblocked){const a=this._audioContext;"suspended"===a["state"]&&a["resume"]&&a["resume"]();const b=a["createBuffer"](1,220,22050),c=a["createBufferSource"]();c["buffer"]=b,c["connect"](a["destination"]),c["start"](0),"running"===a["state"]&&(this._hasUnblocked=!0,window.removeEventListener("pointerup",this._unblockFunc,!0),window.removeEventListener("touchend",this._unblockFunc,!0),window.removeEventListener("click",this._unblockFunc,!0),window.removeEventListener("keydown",this._unblockFunc,!0),this._unblockFunc=null)}}GetAudioContext(){return this._audioContext}GetAudioCurrentTime(){return this._audioContext["currentTime"]}GetDestinationNode(){return this._destinationNode}GetDestinationForTag(a){const b=this._effects.get(a.toLowerCase());return b?b[0].GetInputNode():this.GetDestinationNode()}AddEffectForTag(a,b){a=a.toLowerCase();let c=this._effects.get(a);c||(c=[],this._effects.set(a,c)),b._SetIndex(c.length),b._SetTag(a),c.push(b),this._ReconnectEffects(a)}_ReconnectEffects(a){let b=this.GetDestinationNode();const c=this._effects.get(a);if(c&&c.length){b=c[0].GetInputNode();for(let a=0,b=c.length;a{const b=this._audioContext["createBuffer"](1,a.length,48e3),c=b["getChannelData"](0);return c.set(a),b}):new Promise((b,c)=>{this._audioContext["decodeAudioData"](a,b,c)})}TryPlayMedia(a){this._iRuntime.TryPlayMedia(a)}RemovePendingPlay(a){this._iRuntime.RemovePendingPlay(a)}ReleaseInstancesForBuffer(b){let c=0;for(let d=0,a=this._audioInstances.length;dc=a);b={pendingCount:0,promise:d,resolve:c},this._pendingTags.set(a,b)}b.pendingCount++}_RemovePendingTag(a){const b=this._pendingTags.get(a);if(!b)throw new Error("expected pending tag");b.pendingCount--,0===b.pendingCount&&(b.resolve(),this._pendingTags.delete(a))}TagReady(a){a||(a=this._lastPlayedTag);const b=this._pendingTags.get(a);return b?b.promise:Promise.resolve()}_MaybeStartTicking(){if(0b.IsActive()).map((b)=>b.GetState());this.PostToRuntime("state",{"tickCount":this._lastTickCount,"audioInstances":b,"analysers":[...this._analysers].map((b)=>b.GetData())}),0===b.length&&0===this._analysers.size&&this._StopTicking()}PostTrigger(a,b){this.PostToRuntime("trigger",{"type":a,"tag":b})}async _Play(a){const b=a["originalUrl"],c=a["url"],d=a["type"],e=a["isMusic"],f=a["tag"],g=a["isLooping"],h=a["vol"],i=a["pos"],j=a["panning"];let k=a["off"];if(0c||c>=h.length||(h[c].SetParam(d,e,f,g),this._PostUpdatedFxState())}_RemoveEffects(a){const b=a["tag"].toLowerCase(),c=this._effects.get(b);if(c&&c.length){for(const a of c)a.Release();this._effects.delete(b),this._ReconnectEffects(b)}}_AddAnalyser(a){this._analysers.add(a),this._MaybeStartTicking()}_RemoveAnalyser(a){this._analysers.delete(a)}_PostUpdatedFxState(){this._isPendingPostFxState||(this._isPendingPostFxState=!0,Promise.resolve().then(()=>this._DoPostUpdatedFxState()))}_DoPostUpdatedFxState(){const a={};for(const[b,c]of this._effects)a[b]=c.map((a)=>a.GetState());this.PostToRuntime("fxstate",{"fxstate":a}),this._isPendingPostFxState=!1}async _OnLoadState(a){const b=a["saveLoadMode"];if(3!==b)for(const a of this._audioInstances)a.IsMusic()&&1===b||!a.IsMusic()&&2===b||a.Stop();for(const b of this._effects.values())for(const a of b)a.Release();this._effects.clear(),this._timeScale=a["timeScale"],this._gameTime=a["gameTime"];const c=a["listenerPos"];this._audioContext["listener"]["setPosition"](c[0],c[1],c[2]),this._isSilent=a["isSilent"],this._iRuntime.SetSilent(this._isSilent),this._masterVolume=a["masterVolume"];const d=[];for(const b of Object.values(a["effects"]))d.push(Promise.all(b.map((a)=>this._AddEffect(a))));await Promise.all(d),await Promise.all(a["playing"].map((a)=>this._LoadAudioInstance(a,b))),this._MaybeStartTicking()}async _LoadAudioInstance(a,b){if(3===b)return;const c=a["bufferOriginalUrl"],d=a["bufferUrl"],e=a["bufferType"],f=a["isMusic"],g=a["tag"],h=a["isLooping"],i=a["volume"],j=a["playbackTime"];if(f&&1===b)return;if(!f&&2===b)return;let k=null;try{k=await this._GetAudioInstance(c,d,e,g,f)}catch(a){return void console.error("[Construct 3] Audio: error loading audio state: ",a)}k.LoadPanState(a["pan"]),k.Play(h,i,j,0),a["isPlaying"]||k.Pause(),k._LoadAdditionalState(a)}_OnMicrophoneStream(a,b){this._microphoneSource&&this._microphoneSource["disconnect"](),this._microphoneTag=b.toLowerCase(),this._microphoneSource=this._audioContext["createMediaStreamSource"](a),this._microphoneSource["connect"](this.GetDestinationForTag(this._microphoneTag))}_OnGetOutputStream(){return this._destMediaStreamNode||(this._destMediaStreamNode=this._audioContext["createMediaStreamDestination"](),this._destinationNode["connect"](this._destMediaStreamNode)),this._destMediaStreamNode["stream"]}};RuntimeInterface.AddDOMHandlerClass(b)}"use strict";self.C3AudioBuffer=class{constructor(a,b,c,d,e){this._audioDomHandler=a,this._originalUrl=b,this._url=c,this._type=d,this._isMusic=e,this._api="",this._loadState="not-loaded",this._loadPromise=null}Release(){this._loadState="not-loaded",this._audioDomHandler=null,this._loadPromise=null}static Create(a,b,c,d,e){const f="audio/webm; codecs=opus"===d&&!a.SupportsWebMOpus();return e&&f&&a._SetHasAnySoftwareDecodedMusic(),!e||a.IsPlayMusicAsSound()||f?new C3WebAudioBuffer(a,b,c,d,e,f):new C3Html5AudioBuffer(a,b,c,d,e)}CreateInstance(a){return"html5"===this._api?new C3Html5AudioInstance(this._audioDomHandler,this,a):new C3WebAudioInstance(this._audioDomHandler,this,a)}_Load(){}Load(){return this._loadPromise||(this._loadPromise=this._Load()),this._loadPromise}IsLoaded(){}IsLoadedAndDecoded(){}HasFailedToLoad(){return"failed"===this._loadState}GetAudioContext(){return this._audioDomHandler.GetAudioContext()}GetApi(){return this._api}GetOriginalUrl(){return this._originalUrl}GetUrl(){return this._url}GetContentType(){return this._type}IsMusic(){return this._isMusic}GetDuration(){}};"use strict";self.C3Html5AudioBuffer=class extends C3AudioBuffer{constructor(a,b,c,d,e){super(a,b,c,d,e),this._api="html5",this._audioElem=new Audio,this._audioElem.crossOrigin="anonymous",this._audioElem.autoplay=!1,this._audioElem.preload="auto",this._loadResolve=null,this._loadReject=null,this._reachedCanPlayThrough=!1,this._audioElem.addEventListener("canplaythrough",()=>this._reachedCanPlayThrough=!0),this._outNode=this.GetAudioContext()["createGain"](),this._mediaSourceNode=null,this._audioElem.addEventListener("canplay",()=>{this._loadResolve&&(this._loadState="loaded",this._loadResolve(),this._loadResolve=null,this._loadReject=null);this._mediaSourceNode||!this._audioElem||(this._mediaSourceNode=this.GetAudioContext()["createMediaElementSource"](this._audioElem),this._mediaSourceNode["connect"](this._outNode))}),this.onended=null,this._audioElem.addEventListener("ended",()=>{this.onended&&this.onended()}),this._audioElem.addEventListener("error",(a)=>this._OnError(a))}Release(){this._audioDomHandler.ReleaseInstancesForBuffer(this),this._outNode["disconnect"](),this._outNode=null,this._mediaSourceNode["disconnect"](),this._mediaSourceNode=null,this._audioElem&&!this._audioElem.paused&&this._audioElem.pause(),this.onended=null,this._audioElem=null,super.Release()}_Load(){return this._loadState="loading",new Promise((a,b)=>{this._loadResolve=a,this._loadReject=b,this._audioElem.src=this._url})}_OnError(a){console.error(`[Construct 3] Audio '${this._url}' error: `,a),this._loadReject&&(this._loadState="failed",this._loadReject(a),this._loadResolve=null,this._loadReject=null)}IsLoaded(){const a=4<=this._audioElem["readyState"];return a&&(this._reachedCanPlayThrough=!0),a||this._reachedCanPlayThrough}IsLoadedAndDecoded(){return this.IsLoaded()}GetAudioElement(){return this._audioElem}GetOutputNode(){return this._outNode}GetDuration(){return this._audioElem["duration"]}};"use strict";self.C3WebAudioBuffer=class extends C3AudioBuffer{constructor(a,b,c,d,e,f){super(a,b,c,d,e),this._api="webaudio",this._audioData=null,this._audioBuffer=null,this._needsSoftwareDecode=!!f}Release(){this._audioDomHandler.ReleaseInstancesForBuffer(this),this._audioData=null,this._audioBuffer=null,super.Release()}async _Fetch(){if(this._audioData)return this._audioData;const a=this._audioDomHandler.GetRuntimeInterface();if("cordova"===a.GetExportType()&&a.IsRelativeURL(this._url))this._audioData=await a.CordovaFetchLocalFileAsArrayBuffer(this._url);else{const a=await fetch(this._url);if(!a.ok)throw new Error(`error fetching audio data: ${a.status} ${a.statusText}`);this._audioData=await a.arrayBuffer()}}async _Decode(){return this._audioBuffer?this._audioBuffer:void(this._audioBuffer=await this._audioDomHandler.DecodeAudioData(this._audioData,this._needsSoftwareDecode),this._audioData=null)}async _Load(){try{this._loadState="loading",await this._Fetch(),await this._Decode(),this._loadState="loaded"}catch(a){this._loadState="failed",console.error(`[Construct 3] Failed to load audio '${this._url}': `,a)}}IsLoaded(){return!!(this._audioData||this._audioBuffer)}IsLoadedAndDecoded(){return!!this._audioBuffer}GetAudioBuffer(){return this._audioBuffer}GetDuration(){return this._audioBuffer?this._audioBuffer["duration"]:0}};"use strict";{function a(a){return a*b}const b=180/Math.PI;self.C3AudioInstance=class{constructor(a,b,c){this._audioDomHandler=a,this._buffer=b,this._tag=c,this._gainNode=this.GetAudioContext()["createGain"](),this._gainNode["connect"](this.GetDestinationNode()),this._pannerNode=null,this._isPannerEnabled=!1,this._isStopped=!0,this._isPaused=!1,this._resumeMe=!1,this._isLooping=!1,this._volume=1,this._isMuted=!1,this._playbackRate=1;const d=this._audioDomHandler.GetTimeScaleMode();this._isTimescaled=1===d&&!this.IsMusic()||2===d,this._instUid=-1,this._fadeEndTime=-1,this._stopOnFadeEnd=!1}Release(){this._audioDomHandler=null,this._buffer=null,this._pannerNode&&(this._pannerNode["disconnect"](),this._pannerNode=null),this._gainNode["disconnect"](),this._gainNode=null}GetAudioContext(){return this._audioDomHandler.GetAudioContext()}GetDestinationNode(){return this._audioDomHandler.GetDestinationForTag(this._tag)}GetMasterVolume(){return this._audioDomHandler.GetMasterVolume()}GetCurrentTime(){return this._isTimescaled?this._audioDomHandler.GetGameTime():performance.now()/1e3}GetOriginalUrl(){return this._buffer.GetOriginalUrl()}GetUrl(){return this._buffer.GetUrl()}GetContentType(){return this._buffer.GetContentType()}GetBuffer(){return this._buffer}IsMusic(){return this._buffer.IsMusic()}SetTag(a){this._tag=a}GetTag(){return this._tag}HasEnded(){}CanBeRecycled(){}IsPlaying(){return!this._isStopped&&!this._isPaused&&!this.HasEnded()}IsActive(){return!this._isStopped&&!this.HasEnded()}GetPlaybackTime(){}GetDuration(a){let b=this._buffer.GetDuration();return a&&(b/=this._playbackRate||.001),b}Play(){}Stop(){}Pause(){}IsPaused(){return this._isPaused}Resume(){}SetVolume(a){this._volume=a,this._gainNode["gain"]["cancelScheduledValues"](0),this._fadeEndTime=-1,this._gainNode["gain"]["value"]=this.GetOverallVolume()}FadeVolume(a,b,c){if(!this.IsMuted()){const d=this._gainNode["gain"];d["cancelScheduledValues"](0);const e=this._audioDomHandler.GetAudioCurrentTime(),f=e+b;d["setValueAtTime"](this._volume,e),d["linearRampToValueAtTime"](a,f),this._volume=a,this._fadeEndTime=f,this._stopOnFadeEnd=c}}_UpdateVolume(){this.SetVolume(this._volume)}Tick(a){-1!==this._fadeEndTime&&a>=this._fadeEndTime&&(this._fadeEndTime=-1,this._stopOnFadeEnd&&this.Stop(),this._audioDomHandler.PostTrigger("fade-ended",this._tag))}GetOverallVolume(){const a=this._volume*this.GetMasterVolume();return isFinite(a)?a:0}SetMuted(a){a=!!a;this._isMuted===a||(this._isMuted=a,this._UpdateMuted())}IsMuted(){return this._isMuted}IsSilent(){return this._audioDomHandler.IsSilent()}_UpdateMuted(){}SetLooping(){}IsLooping(){return this._isLooping}SetPlaybackRate(a){this._playbackRate===a||(this._playbackRate=a,this._UpdatePlaybackRate())}_UpdatePlaybackRate(){}GetPlaybackRate(){return this._playbackRate}Seek(){}SetSuspended(){}SetPannerEnabled(a){a=!!a;this._isPannerEnabled===a||(this._isPannerEnabled=a,this._isPannerEnabled?(!this._pannerNode&&(this._pannerNode=this.GetAudioContext()["createPanner"](),this._pannerNode["panningModel"]=this._audioDomHandler.GetPanningModel(),this._pannerNode["distanceModel"]=this._audioDomHandler.GetDistanceModel(),this._pannerNode["refDistance"]=this._audioDomHandler.GetReferenceDistance(),this._pannerNode["maxDistance"]=this._audioDomHandler.GetMaxDistance(),this._pannerNode["rolloffFactor"]=this._audioDomHandler.GetRolloffFactor()),this._gainNode["disconnect"](),this._gainNode["connect"](this._pannerNode),this._pannerNode["connect"](this.GetDestinationNode())):(this._pannerNode["disconnect"](),this._gainNode["disconnect"](),this._gainNode["connect"](this.GetDestinationNode())))}SetPan(b,c,d,e,f,g){this._isPannerEnabled&&(this.SetPanXYA(b,c,d),this._pannerNode["coneInnerAngle"]=a(e),this._pannerNode["coneOuterAngle"]=a(f),this._pannerNode["coneOuterGain"]=g)}SetPanXYA(a,b,c){this._isPannerEnabled&&(this._pannerNode["setPosition"](a,b,0),this._pannerNode["setOrientation"](Math.cos(c),Math.sin(c),0))}SetUID(a){this._instUid=a}GetUID(){return this._instUid}GetResumePosition(){}Reconnect(a){const b=this._pannerNode||this._gainNode;b["disconnect"](),b["connect"](a)}GetState(){return{"tag":this._tag,"duration":this.GetDuration(),"volume":this._volume,"isPlaying":this.IsPlaying(),"playbackTime":this.GetPlaybackTime(),"playbackRate":this.GetPlaybackRate(),"uid":this._instUid,"bufferOriginalUrl":this.GetOriginalUrl(),"bufferUrl":"","bufferType":this.GetContentType(),"isMusic":this.IsMusic(),"isLooping":this.IsLooping(),"isMuted":this.IsMuted(),"resumePosition":this.GetResumePosition(),"pan":this.GetPanState()}}_LoadAdditionalState(a){this.SetPlaybackRate(a["playbackRate"]),this.SetMuted(a["isMuted"])}GetPanState(){if(!this._pannerNode)return null;const a=this._pannerNode;return{"pos":[a["positionX"]["value"],a["positionY"]["value"],a["positionZ"]["value"]],"orient":[a["orientationX"]["value"],a["orientationY"]["value"],a["orientationZ"]["value"]],"cia":a["coneInnerAngle"],"coa":a["coneOuterAngle"],"cog":a["coneOuterGain"],"uid":this._instUid}}LoadPanState(a){if(!a)return void this.SetPannerEnabled(!1);this.SetPannerEnabled(!0);const b=this._pannerNode;b["setPosition"](...b["pos"]),b["setOrientation"](...b["orient"]),b["coneInnerAngle"]=b["cia"],b["coneOuterAngle"]=b["coa"],b["coneOuterGain"]=b["cog"],this._instUid=b["uid"]}}}"use strict";self.C3Html5AudioInstance=class extends C3AudioInstance{constructor(a,b,c){super(a,b,c),this._buffer.GetOutputNode()["connect"](this._gainNode),this._buffer.onended=()=>this._OnEnded()}Release(){this.Stop(),this._buffer.GetOutputNode()["disconnect"](),super.Release()}GetAudioElement(){return this._buffer.GetAudioElement()}_OnEnded(){this._isStopped=!0,this._instUid=-1,this._audioDomHandler.PostTrigger("ended",this._tag)}HasEnded(){return this.GetAudioElement()["ended"]}CanBeRecycled(){return!!this._isStopped||this.HasEnded()}GetPlaybackTime(a){let b=this.GetAudioElement()["currentTime"];return a&&(b*=this._playbackRate),this._isLooping||(b=Math.min(b,this.GetDuration())),b}Play(a,b,c){const d=this.GetAudioElement();if(1!==d.playbackRate&&(d.playbackRate=1),d.loop!==a&&(d.loop=a),this.SetVolume(b),d.muted&&(d.muted=!1),d.currentTime!==c)try{d.currentTime=c}catch(a){console.warn(`[Construct 3] Exception seeking audio '${this._buffer.GetUrl()}' to position '${c}': `,a)}this._audioDomHandler.TryPlayMedia(d),this._isStopped=!1,this._isPaused=!1,this._isLooping=a,this._playbackRate=1}Stop(){const a=this.GetAudioElement();a.paused||a.pause(),this._audioDomHandler.RemovePendingPlay(a),this._isStopped=!0,this._isPaused=!1,this._instUid=-1}Pause(){if(!(this._isPaused||this._isStopped||this.HasEnded())){const a=this.GetAudioElement();a.paused||a.pause(),this._audioDomHandler.RemovePendingPlay(a),this._isPaused=!0}}Resume(){!this._isPaused||this._isStopped||this.HasEnded()||(this._audioDomHandler.TryPlayMedia(this.GetAudioElement()),this._isPaused=!1)}_UpdateMuted(){this.GetAudioElement().muted=this._isMuted||this.IsSilent()}SetLooping(a){a=!!a;this._isLooping===a||(this._isLooping=a,this.GetAudioElement().loop=a)}_UpdatePlaybackRate(){let a=this._playbackRate;this._isTimescaled&&(a*=this._audioDomHandler.GetTimeScale());try{this.GetAudioElement()["playbackRate"]=a}catch(b){console.warn(`[Construct 3] Unable to set playback rate '${a}':`,b)}}Seek(a){if(!(this._isStopped||this.HasEnded()))try{this.GetAudioElement()["currentTime"]=a}catch(b){console.warn(`[Construct 3] Error seeking audio to '${a}': `,b)}}GetResumePosition(){return this.GetPlaybackTime()}SetSuspended(a){a?this.IsPlaying()?(this.GetAudioElement()["pause"](),this._resumeMe=!0):this._resumeMe=!1:this._resumeMe&&(this._audioDomHandler.TryPlayMedia(this.GetAudioElement()),this._resumeMe=!1)}};"use strict";self.C3WebAudioInstance=class extends C3AudioInstance{constructor(a,b,c){super(a,b,c),this._bufferSource=null,this._onended_handler=(a)=>this._OnEnded(a),this._hasPlaybackEnded=!0,this._activeSource=null,this._startTime=0,this._resumePosition=0,this._muteVol=1}Release(){this.Stop(),this._ReleaseBufferSource(),this._onended_handler=null,super.Release()}_ReleaseBufferSource(){this._bufferSource&&this._bufferSource["disconnect"](),this._bufferSource=null,this._activeSource=null}_OnEnded(a){this._isPaused||this._resumeMe||a.target!==this._activeSource||(this._hasPlaybackEnded=!0,this._isStopped=!0,this._instUid=-1,this._ReleaseBufferSource(),this._audioDomHandler.PostTrigger("ended",this._tag))}HasEnded(){return!(!this._isStopped&&this._bufferSource&&this._bufferSource["loop"])&&!this._isPaused&&this._hasPlaybackEnded}CanBeRecycled(){return!(this._bufferSource&&!this._isStopped)||this.HasEnded()}GetPlaybackTime(a){let b=0;return b=this._isPaused?this._resumePosition:this.GetCurrentTime()-this._startTime,a&&(b*=this._playbackRate),this._isLooping||(b=Math.min(b,this.GetDuration())),b}Play(a,b,c,d){this._muteVol=1,this.SetVolume(b),this._ReleaseBufferSource(),this._bufferSource=this.GetAudioContext()["createBufferSource"](),this._bufferSource["buffer"]=this._buffer.GetAudioBuffer(),this._bufferSource["connect"](this._gainNode),this._activeSource=this._bufferSource,this._bufferSource["onended"]=this._onended_handler,this._bufferSource["loop"]=a,this._bufferSource["start"](d,c),this._hasPlaybackEnded=!1,this._isStopped=!1,this._isPaused=!1,this._isLooping=a,this._playbackRate=1,this._startTime=this.GetCurrentTime()-c}Stop(){this._bufferSource&&this._bufferSource["stop"](0),this._isStopped=!0,this._isPaused=!1,this._instUid=-1}Pause(){this._isPaused||this._isStopped||this.HasEnded()||(this._resumePosition=this.GetPlaybackTime(!0),this._isLooping&&(this._resumePosition%=this.GetDuration()),this._isPaused=!0,this._bufferSource["stop"](0))}Resume(){!this._isPaused||this._isStopped||this.HasEnded()||(this._ReleaseBufferSource(),this._bufferSource=this.GetAudioContext()["createBufferSource"](),this._bufferSource["buffer"]=this._buffer.GetAudioBuffer(),this._bufferSource["connect"](this._gainNode),this._activeSource=this._bufferSource,this._bufferSource["onended"]=this._onended_handler,this._bufferSource["loop"]=this._isLooping,this._UpdateVolume(),this._UpdatePlaybackRate(),this._startTime=this.GetCurrentTime()-this._resumePosition/(this._playbackRate||.001),this._bufferSource["start"](0,this._resumePosition),this._isPaused=!1)}GetOverallVolume(){return super.GetOverallVolume()*this._muteVol}_UpdateMuted(){this._muteVol=this._isMuted||this.IsSilent()?0:1,this._UpdateVolume()}SetLooping(a){a=!!a;this._isLooping===a||(this._isLooping=a,this._bufferSource&&(this._bufferSource["loop"]=a))}_UpdatePlaybackRate(){let a=this._playbackRate;this._isTimescaled&&(a*=this._audioDomHandler.GetTimeScale()),this._bufferSource&&(this._bufferSource["playbackRate"]["value"]=a)}Seek(a){this._isStopped||this.HasEnded()||(this._isPaused?this._resumePosition=a:(this.Pause(),this._resumePosition=a,this.Resume()))}GetResumePosition(){return this._resumePosition}SetSuspended(a){a?this.IsPlaying()?(this._resumeMe=!0,this._resumePosition=this.GetPlaybackTime(!0),this._isLooping&&(this._resumePosition%=this.GetDuration()),this._bufferSource["stop"](0)):this._resumeMe=!1:this._resumeMe&&(this._ReleaseBufferSource(),this._bufferSource=this.GetAudioContext()["createBufferSource"](),this._bufferSource["buffer"]=this._buffer.GetAudioBuffer(),this._bufferSource["connect"](this._gainNode),this._activeSource=this._bufferSource,this._bufferSource["onended"]=this._onended_handler,this._bufferSource["loop"]=this._isLooping,this._UpdateVolume(),this._UpdatePlaybackRate(),this._startTime=this.GetCurrentTime()-this._resumePosition/(this._playbackRate||.001),this._bufferSource["start"](0,this._resumePosition),this._resumeMe=!1)}_LoadAdditionalState(a){super._LoadAdditionalState(a),this._resumePosition=a["resumePosition"]}};"use strict";{function a(a){return Math.pow(10,a/20)}function b(b){return Math.max(Math.min(a(b),1),0)}function c(a){return 20*(Math.log(a)/2.302585092994046)}function d(a){return c(Math.max(Math.min(a,1),0))}function e(a,b){return 1-Math.exp(-b*a)}class f{constructor(a){this._audioDomHandler=a,this._audioContext=a.GetAudioContext(),this._index=-1,this._tag="",this._type="",this._params=null}Release(){this._audioContext=null}_SetIndex(a){this._index=a}GetIndex(){return this._index}_SetTag(a){this._tag=a}GetTag(){return this._tag}CreateGain(){return this._audioContext["createGain"]()}GetInputNode(){}ConnectTo(){}SetAudioParam(a,b,c,d){if(a["cancelScheduledValues"](0),0===d)return void(a["value"]=b);const e=this._audioContext["currentTime"];d+=e,0===c?a["setValueAtTime"](b,d):1===c?(a["setValueAtTime"](a["value"],e),a["linearRampToValueAtTime"](b,d)):2===c?(a["setValueAtTime"](a["value"],e),a["exponentialRampToValueAtTime"](b,d)):void 0}GetState(){return{"type":this._type,"tag":this._tag,"params":this._params}}}self.C3AudioFilterFX=class extends f{constructor(a,b,c,d,e,f,g){super(a),this._type="filter",this._params=[b,c,d,e,f,g],this._inputNode=this.CreateGain(),this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=g,this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-g,this._filterNode=this._audioContext["createBiquadFilter"](),this._filterNode["type"]=b,this._filterNode["frequency"]["value"]=c,this._filterNode["detune"]["value"]=d,this._filterNode["Q"]["value"]=e,this._filterNode["gain"]["vlaue"]=f,this._inputNode["connect"](this._filterNode),this._inputNode["connect"](this._dryNode),this._filterNode["connect"](this._wetNode)}Release(){this._inputNode["disconnect"](),this._filterNode["disconnect"](),this._wetNode["disconnect"](),this._dryNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[5]=b,this.SetAudioParam(this._wetNode["gain"],b,c,d),this.SetAudioParam(this._dryNode["gain"],1-b,c,d)):1===a?(this._params[1]=b,this.SetAudioParam(this._filterNode["frequency"],b,c,d)):2===a?(this._params[2]=b,this.SetAudioParam(this._filterNode["detune"],b,c,d)):3===a?(this._params[3]=b,this.SetAudioParam(this._filterNode["Q"],b,c,d)):4===a?(this._params[4]=b,this.SetAudioParam(this._filterNode["gain"],b,c,d)):void 0}},self.C3AudioDelayFX=class extends f{constructor(a,b,c,d){super(a),this._type="delay",this._params=[b,c,d],this._inputNode=this.CreateGain(),this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=d,this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-d,this._mainNode=this.CreateGain(),this._delayNode=this._audioContext["createDelay"](b),this._delayNode["delayTime"]["value"]=b,this._delayGainNode=this.CreateGain(),this._delayGainNode["gain"]["value"]=c,this._inputNode["connect"](this._mainNode),this._inputNode["connect"](this._dryNode),this._mainNode["connect"](this._wetNode),this._mainNode["connect"](this._delayNode),this._delayNode["connect"](this._delayGainNode),this._delayGainNode["connect"](this._mainNode)}Release(){this._inputNode["disconnect"](),this._wetNode["disconnect"](),this._dryNode["disconnect"](),this._mainNode["disconnect"](),this._delayNode["disconnect"](),this._delayGainNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,c,d,e){0===a?(c=Math.max(Math.min(c/100,1),0),this._params[2]=c,this.SetAudioParam(this._wetNode["gain"],c,d,e),this.SetAudioParam(this._dryNode["gain"],1-c,d,e)):4===a?(this._params[1]=b(c),this.SetAudioParam(this._delayGainNode["gain"],b(c),d,e)):5===a?(this._params[0]=c,this.SetAudioParam(this._delayNode["delayTime"],c,d,e)):void 0}},self.C3AudioConvolveFX=class extends f{constructor(a,b,c,d){super(a),this._type="convolution",this._params=[c,d],this._bufferOriginalUrl="",this._bufferUrl="",this._bufferType="",this._inputNode=this.CreateGain(),this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=d,this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-d,this._convolveNode=this._audioContext["createConvolver"](),this._convolveNode["normalize"]=c,this._convolveNode["buffer"]=b,this._inputNode["connect"](this._convolveNode),this._inputNode["connect"](this._dryNode),this._convolveNode["connect"](this._wetNode)}Release(){this._inputNode["disconnect"](),this._convolveNode["disconnect"](),this._wetNode["disconnect"](),this._dryNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[1]=b,this.SetAudioParam(this._wetNode["gain"],b,c,d),this.SetAudioParam(this._dryNode["gain"],1-b,c,d)):void 0}_SetBufferInfo(a,b,c){this._bufferOriginalUrl=a,this._bufferUrl=b,this._bufferType=c}GetState(){const a=super.GetState();return a["bufferOriginalUrl"]=this._bufferOriginalUrl,a["bufferUrl"]="",a["bufferType"]=this._bufferType,a}},self.C3AudioFlangerFX=class extends f{constructor(a,b,c,d,e,f){super(a),this._type="flanger",this._params=[b,c,d,e,f],this._inputNode=this.CreateGain(),this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-f/2,this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=f/2,this._feedbackNode=this.CreateGain(),this._feedbackNode["gain"]["value"]=e,this._delayNode=this._audioContext["createDelay"](b+c),this._delayNode["delayTime"]["value"]=b,this._oscNode=this._audioContext["createOscillator"](),this._oscNode["frequency"]["value"]=d,this._oscGainNode=this.CreateGain(),this._oscGainNode["gain"]["value"]=c,this._inputNode["connect"](this._delayNode),this._inputNode["connect"](this._dryNode),this._delayNode["connect"](this._wetNode),this._delayNode["connect"](this._feedbackNode),this._feedbackNode["connect"](this._delayNode),this._oscNode["connect"](this._oscGainNode),this._oscGainNode["connect"](this._delayNode["delayTime"]),this._oscNode["start"](0)}Release(){this._oscNode["stop"](0),this._inputNode["disconnect"](),this._delayNode["disconnect"](),this._oscNode["disconnect"](),this._oscGainNode["disconnect"](),this._dryNode["disconnect"](),this._wetNode["disconnect"](),this._feedbackNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[4]=b,this.SetAudioParam(this._wetNode["gain"],b/2,c,d),this.SetAudioParam(this._dryNode["gain"],1-b/2,c,d)):6===a?(this._params[1]=b/1e3,this.SetAudioParam(this._oscGainNode["gain"],b/1e3,c,d)):7===a?(this._params[2]=b,this.SetAudioParam(this._oscNode["frequency"],b,c,d)):8===a?(this._params[3]=b/100,this.SetAudioParam(this._feedbackNode["gain"],b/100,c,d)):void 0}},self.C3AudioPhaserFX=class extends f{constructor(a,b,c,d,e,f,g){super(a),this._type="phaser",this._params=[b,c,d,e,f,g],this._inputNode=this.CreateGain(),this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-g/2,this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=g/2,this._filterNode=this._audioContext["createBiquadFilter"](),this._filterNode["type"]="allpass",this._filterNode["frequency"]["value"]=b,this._filterNode["detune"]["value"]=c,this._filterNode["Q"]["value"]=d,this._oscNode=this._audioContext["createOscillator"](),this._oscNode["frequency"]["value"]=f,this._oscGainNode=this.CreateGain(),this._oscGainNode["gain"]["value"]=e,this._inputNode["connect"](this._filterNode),this._inputNode["connect"](this._dryNode),this._filterNode["connect"](this._wetNode),this._oscNode["connect"](this._oscGainNode),this._oscGainNode["connect"](this._filterNode["frequency"]),this._oscNode["start"](0)}Release(){this._oscNode["stop"](0),this._inputNode["disconnect"](),this._filterNode["disconnect"](),this._oscNode["disconnect"](),this._oscGainNode["disconnect"](),this._dryNode["disconnect"](),this._wetNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[5]=b,this.SetAudioParam(this._wetNode["gain"],b/2,c,d),this.SetAudioParam(this._dryNode["gain"],1-b/2,c,d)):1===a?(this._params[0]=b,this.SetAudioParam(this._filterNode["frequency"],b,c,d)):2===a?(this._params[1]=b,this.SetAudioParam(this._filterNode["detune"],b,c,d)):3===a?(this._params[2]=b,this.SetAudioParam(this._filterNode["Q"],b,c,d)):6===a?(this._params[3]=b,this.SetAudioParam(this._oscGainNode["gain"],b,c,d)):7===a?(this._params[4]=b,this.SetAudioParam(this._oscNode["frequency"],b,c,d)):void 0}},self.C3AudioGainFX=class extends f{constructor(a,b){super(a),this._type="gain",this._params=[b],this._node=this.CreateGain(),this._node["gain"]["value"]=b}Release(){this._node["disconnect"](),super.Release()}ConnectTo(a){this._node["disconnect"](),this._node["connect"](a)}GetInputNode(){return this._node}SetParam(a,c,d,e){4===a?(this._params[0]=b(c),this.SetAudioParam(this._node["gain"],b(c),d,e)):void 0}},self.C3AudioTremoloFX=class extends f{constructor(a,b,c){super(a),this._type="tremolo",this._params=[b,c],this._node=this.CreateGain(),this._node["gain"]["value"]=1-c/2,this._oscNode=this._audioContext["createOscillator"](),this._oscNode["frequency"]["value"]=b,this._oscGainNode=this.CreateGain(),this._oscGainNode["gain"]["value"]=c/2,this._oscNode["connect"](this._oscGainNode),this._oscGainNode["connect"](this._node["gain"]),this._oscNode["start"](0)}Release(){this._oscNode["stop"](0),this._oscNode["disconnect"](),this._oscGainNode["disconnect"](),this._node["disconnect"](),super.Release()}ConnectTo(a){this._node["disconnect"](),this._node["connect"](a)}GetInputNode(){return this._node}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[1]=b,this.SetAudioParam(this._node["gain"]["value"],1-b/2,c,d),this.SetAudioParam(this._oscGainNode["gain"]["value"],b/2,c,d)):7===a?(this._params[0]=b,this.SetAudioParam(this._oscNode["frequency"],b,c,d)):void 0}},self.C3AudioRingModFX=class extends f{constructor(a,b,c){super(a),this._type="ringmod",this._params=[b,c],this._inputNode=this.CreateGain(),this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=c,this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-c,this._ringNode=this.CreateGain(),this._ringNode["gain"]["value"]=0,this._oscNode=this._audioContext["createOscillator"](),this._oscNode["frequency"]["value"]=b,this._oscNode["connect"](this._ringNode["gain"]),this._oscNode["start"](0),this._inputNode["connect"](this._ringNode),this._inputNode["connect"](this._dryNode),this._ringNode["connect"](this._wetNode)}Release(){this._oscNode["stop"](0),this._oscNode["disconnect"](),this._ringNode["disconnect"](),this._inputNode["disconnect"](),this._wetNode["disconnect"](),this._dryNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[1]=b,this.SetAudioParam(this._wetNode["gain"],b,c,d),this.SetAudioParam(this._dryNode["gain"],1-b,c,d)):7===a?(this._params[0]=b,this.SetAudioParam(this._oscNode["frequency"],b,c,d)):void 0}},self.C3AudioDistortionFX=class extends f{constructor(a,b,c,d,e,f){super(a),this._type="distortion",this._params=[b,c,d,e,f],this._inputNode=this.CreateGain(),this._preGain=this.CreateGain(),this._postGain=this.CreateGain(),this._SetDrive(d,e),this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=f,this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-f,this._waveShaper=this._audioContext["createWaveShaper"](),this._curve=new Float32Array(65536),this._GenerateColortouchCurve(b,c),this._waveShaper.curve=this._curve,this._inputNode["connect"](this._preGain),this._inputNode["connect"](this._dryNode),this._preGain["connect"](this._waveShaper),this._waveShaper["connect"](this._postGain),this._postGain["connect"](this._wetNode)}Release(){this._inputNode["disconnect"](),this._preGain["disconnect"](),this._waveShaper["disconnect"](),this._postGain["disconnect"](),this._wetNode["disconnect"](),this._dryNode["disconnect"](),super.Release()}_SetDrive(a,b){.01>a&&(a=.01),this._preGain["gain"]["value"]=a,this._postGain["gain"]["value"]=Math.pow(1/a,.6)*b}_GenerateColortouchCurve(a,b){for(let c,d=0;d<32768;++d)c=d/32768,c=this._Shape(c,a,b),this._curve[32768+d]=c,this._curve[32768-d-1]=-c}_Shape(a,b,c){const d=1.05*c*b-b,f=0>a?-1:1,g=0>a?-a:a;let h=gc&&(c=-c),this._peak
On Android, fix this by making sure the
Android System Webview app has updates enabled and is up-to-date.":/iphone|ipad|ipod/i.test(h)?"

Note: the iOS simulator is not currently supported due to an Apple bug. If you are using the simulator, try testing on a real device instead.":(/msie/i.test(h)||/trident/i.test(h))&&!/edge\//i.test(h)?"

Note: Internet Explorer is not supported. Try using Chrome or Firefox instead.":"Try installing any available software updates. Alternatively try on a different device.",g+="

Missing features: "+c.join(", ")+"
User agent: "+navigator.userAgent+"
",f.innerHTML=g,d.appendChild(f)}})(); \ No newline at end of file diff --git a/Mario1-1/scripts/workerMain.js b/Mario1-1/scripts/workerMain.js new file mode 100644 index 0000000..d11dbb2 --- /dev/null +++ b/Mario1-1/scripts/workerMain.js @@ -0,0 +1 @@ +"use strict";{async function a(a){if(b)throw new Error("already initialised");b=!0;const d=a["baseUrl"];self.devicePixelRatio=a["devicePixelRatio"];const e=a["workerDependencyScripts"].map((a)=>{let b=a;return b=a instanceof Blob?URL.createObjectURL(a):new URL(b,d).toString(),b}),f=a["engineScripts"].map((a)=>new URL(a,d).toString());importScripts(...[...e,...f]),c=self["C3_CreateRuntime"](a),await self["C3_InitRuntime"](c,a)}let b=!1,c=null;self.addEventListener("message",(b)=>{const c=b.data,d=c["type"];if("init-runtime"===d)a(c);else throw new Error(`unknown message '${d}'`)})} \ No newline at end of file diff --git a/Mario1-1/style.css b/Mario1-1/style.css new file mode 100644 index 0000000..0916f8b --- /dev/null +++ b/Mario1-1/style.css @@ -0,0 +1,39 @@ +html, body { + padding: 0; + margin: 0; + overflow: hidden; + + background: #000000; + color: white; +} + +html, body, canvas { + touch-action: none; + touch-action-delay: none; +} + +#notSupportedWrap { + margin: 2em auto 1em auto; + width: 75%; + max-width: 45em; + border: 2px solid #aaa; + border-radius: 1em; + padding: 2em; + background-color: #f0f0f0; + font-family: "Segoe UI", Frutiger, "Frutiger Linotype", "Dejavu Sans", "Helvetica Neue", Arial, sans-serif; + color: black; +} + +#notSupportedTitle { + font-size: 1.8em; +} + +#notSupportedMessage { + font-size: 1.2em; +} + +#notSupportedMessage em { + color: #888; +} + + diff --git a/Mario1-1/sw.js b/Mario1-1/sw.js new file mode 100644 index 0000000..4366997 --- /dev/null +++ b/Mario1-1/sw.js @@ -0,0 +1 @@ +"use strict";const OFFLINE_DATA_FILE="offline.json",CACHE_NAME_PREFIX="c3offline",BROADCASTCHANNEL_NAME="offline",CONSOLE_PREFIX="[SW] ",LAZYLOAD_KEYNAME="",broadcastChannel="undefined"==typeof BroadcastChannel?null:new BroadcastChannel("offline");function PostBroadcastMessage(a){broadcastChannel&&setTimeout(()=>broadcastChannel.postMessage(a),3e3)}function Broadcast(a){PostBroadcastMessage({"type":a})}function BroadcastDownloadingUpdate(a){PostBroadcastMessage({"type":"downloading-update","version":a})}function BroadcastUpdateReady(a){PostBroadcastMessage({"type":"update-ready","version":a})}function IsUrlInLazyLoadList(a,b){if(!b)return!1;try{for(const c of b)if(new RegExp(c).test(a))return!0}catch(a){console.error("[SW] Error matching in lazy-load list: ",a)}return!1}function WriteLazyLoadListToStorage(a){return"undefined"==typeof localforage?Promise.resolve():localforage.setItem(LAZYLOAD_KEYNAME,a)}function ReadLazyLoadListFromStorage(){return"undefined"==typeof localforage?Promise.resolve([]):localforage.getItem(LAZYLOAD_KEYNAME)}function GetCacheBaseName(){return"c3offline-"+self.registration.scope}function GetCacheVersionName(a){return GetCacheBaseName()+"-v"+a}async function GetAvailableCacheNames(){const a=await caches.keys(),b=GetCacheBaseName();return a.filter((a)=>a.startsWith(b))}async function IsUpdatePending(){const a=await GetAvailableCacheNames();return 2<=a.length}async function GetMainPageUrl(){const a=await clients.matchAll({includeUncontrolled:!0,type:"window"});for(const b of a){let a=b.url;if(a.startsWith(self.registration.scope)&&(a=a.substring(self.registration.scope.length)),a&&"/"!==a)return a.startsWith("?")&&(a="/"+a),a}return""}function fetchWithBypass(a,b){return"string"==typeof a&&(a=new Request(a)),b?fetch(a.url,{headers:a.headers,mode:a.mode,credentials:a.credentials,redirect:a.redirect,cache:"no-store"}):fetch(a)}async function CreateCacheFromFileList(a,b,c){const d=await Promise.all(b.map((a)=>fetchWithBypass(a,c)));let e=!0;for(const f of d)f.ok||(e=!1,console.error("[SW] Error fetching '"+f.url+"' ("+f.status+" "+f.statusText+")"));if(!e)throw new Error("not all resources were fetched successfully");const f=await caches.open(a);try{return await Promise.all(d.map((a,c)=>f.put(b[c],a)))}catch(b){throw console.error("[SW] Error writing cache entries: ",b),caches.delete(a),b}}async function UpdateCheck(a){try{const b=await fetchWithBypass(OFFLINE_DATA_FILE,!0);if(!b.ok)throw new Error("offline.json responded with "+b.status+" "+b.statusText);const c=await b.json(),d=c.version,e=c.fileList,f=c.lazyLoad,g=GetCacheVersionName(d),h=await caches.has(g);if(h){const a=await IsUpdatePending();return void(a?(console.log("[SW] Update pending"),Broadcast("update-pending")):(console.log("[SW] Up to date"),Broadcast("up-to-date")))}const i=await GetMainPageUrl();e.unshift("./"),i&&-1===e.indexOf(i)&&e.unshift(i),console.log("[SW] Caching "+e.length+" files for offline use"),a?Broadcast("downloading"):BroadcastDownloadingUpdate(d),f&&(await WriteLazyLoadListToStorage(f)),await CreateCacheFromFileList(g,e,!a);const j=await IsUpdatePending();j?(console.log("[SW] All resources saved, update ready"),BroadcastUpdateReady(d)):(console.log("[SW] All resources saved, offline support ready"),Broadcast("offline-ready"))}catch(a){console.warn("[SW] Update check failed: ",a)}}self.addEventListener("install",(a)=>{a.waitUntil(UpdateCheck(!0).catch(()=>null))});async function GetCacheNameToUse(a,b){if(1===a.length||!b)return a[0];const c=await clients.matchAll();if(1caches.delete(a))),d}async function HandleFetch(a,b){const c=await GetAvailableCacheNames();if(!c.length)return fetch(a.request);const d=await GetCacheNameToUse(c,b),e=await caches.open(d),f=await e.match(a.request);if(f)return f;const g=await Promise.all([fetch(a.request),ReadLazyLoadListFromStorage()]),h=g[0],i=g[1];if(IsUrlInLazyLoadList(a.request.url,i))try{await e.put(a.request,h.clone())}catch(b){console.warn("[SW] Error caching '"+a.request.url+"': ",b)}return h}self.addEventListener("fetch",(a)=>{if(new URL(a.request.url).origin===location.origin){const b="navigate"===a.request.mode,c=HandleFetch(a,b);b&&a.waitUntil(c.then(()=>UpdateCheck(!1))),a.respondWith(c)}}); \ No newline at end of file