yolkbot 1.3.11 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +7 -7
  2. package/browser/build/global.js +1 -123
  3. package/browser/build/module.js +1 -123
  4. package/dist/api.js +1 -3
  5. package/dist/bot/GamePlayer.js +1 -3
  6. package/dist/bot.js +1 -3
  7. package/dist/comm/CommIn.js +1 -3
  8. package/dist/comm/CommOut.js +1 -3
  9. package/dist/comm/index.js +1 -3
  10. package/dist/constants/CloseCode.js +1 -3
  11. package/dist/constants/CommCode.js +1 -3
  12. package/dist/constants/challenges.js +1 -3
  13. package/dist/constants/guns.js +1 -3
  14. package/dist/constants/index.js +1 -3
  15. package/dist/constants/items.js +1 -3
  16. package/dist/constants/maps.js +1 -3
  17. package/dist/constants/regions.js +1 -3
  18. package/dist/dispatches/BanPlayerDispatch.js +1 -3
  19. package/dist/dispatches/BootPlayerDispatch.js +1 -3
  20. package/dist/dispatches/ChatDispatch.js +1 -3
  21. package/dist/dispatches/FireDispatch.js +1 -3
  22. package/dist/dispatches/GameOptionsDispatch.js +1 -3
  23. package/dist/dispatches/GoToAmmoDispatch.js +1 -3
  24. package/dist/dispatches/GoToCoopDispatch.js +1 -3
  25. package/dist/dispatches/GoToGrenadeDispatch.js +1 -3
  26. package/dist/dispatches/GoToPlayerDispatch.js +1 -3
  27. package/dist/dispatches/GoToSpatulaDispatch.js +1 -3
  28. package/dist/dispatches/LookAtDispatch.js +1 -3
  29. package/dist/dispatches/LookAtPosDispatch.js +1 -3
  30. package/dist/dispatches/MeleeDispatch.js +1 -3
  31. package/dist/dispatches/MovementDispatch.js +1 -3
  32. package/dist/dispatches/PauseDispatch.js +1 -3
  33. package/dist/dispatches/ReloadDispatch.js +1 -3
  34. package/dist/dispatches/ReportPlayerDispatch.js +1 -3
  35. package/dist/dispatches/ResetGameDispatch.js +1 -3
  36. package/dist/dispatches/SaveLoadoutDispatch.js +1 -3
  37. package/dist/dispatches/SpawnDispatch.js +1 -3
  38. package/dist/dispatches/SwapWeaponDispatch.js +1 -3
  39. package/dist/dispatches/SwitchTeamDispatch.js +1 -3
  40. package/dist/dispatches/ThrowGrenadeDispatch.js +1 -3
  41. package/dist/dispatches/index.js +1 -3
  42. package/dist/env/fetch.js +10 -12
  43. package/dist/env/globals.js +1 -3
  44. package/dist/index.js +2 -10
  45. package/dist/matchmaker.js +1 -3
  46. package/dist/pathing/astar.js +1 -3
  47. package/dist/pathing/binaryheap.js +1 -3
  48. package/dist/pathing/mapnode.js +1 -3
  49. package/dist/socket.js +1 -3
  50. package/dist/types/api.d.ts +1 -1
  51. package/dist/types/matchmaker.d.ts +1 -1
  52. package/dist/types/wasm/bytes.d.ts +1 -0
  53. package/dist/types/wasm/direct.d.ts +3 -0
  54. package/dist/types/wasm/legacy.d.ts +63 -0
  55. package/dist/types/wasm/util.d.ts +9 -0
  56. package/dist/util.js +1 -3
  57. package/dist/wasm/bytes.js +1 -3
  58. package/dist/wasm/direct.js +1 -0
  59. package/dist/wasm/legacy.js +1 -0
  60. package/dist/wasm/util.js +1 -0
  61. package/package.json +17 -9
  62. package/dist/types/wasm/wrapper.d.ts +0 -10
  63. package/dist/wasm/imports.js +0 -125
  64. package/dist/wasm/utils.js +0 -3
  65. package/dist/wasm/wrapper.js +0 -3
@@ -1,123 +1 @@
1
- var jt=Object.defineProperty;var Wt=(B,A)=>()=>(B&&(A=B(B=0)),A);var nA=(B,A)=>{for(var t in A)jt(B,t,{get:A[t],enumerable:!0})};var Vt={};var st=Wt(()=>{console.error("wwws does not support the browser.")});var _t=globalThis.fetch,it=_t;var P={},$=typeof window<"u"&&typeof HTMLElement<"u",CA=typeof WebSocketPair<"u"&&typeof Cloudflare<"u",Bt=typeof process<"u"&&process.moduleLoadList?.length>0,Qt=typeof Deno<"u"&&typeof navigator<"u"&&navigator.userAgent?.startsWith("Deno/"),at=typeof Bun<"u"&&typeof navigator<"u"&&navigator.userAgent?.startsWith("Bun/");if(!$&&!CA&&!Bt&&!Qt&&!at)throw new Error("yolkbot doesn't know how to run in this environment. Please open an issue on GitHub with information on where you run yolkbot.");P.isBrowser=$;P.isIsolated=!Bt&&!Qt&&!at;P.fetch=$||CA?globalThis.fetch:it;P.WebSocket=$||CA?globalThis.WebSocket:(await Promise.resolve().then(()=>(st(),Vt))).WWWebSocket;var l=P;var fA={};nA(fA,{BanDuration:()=>DA,ChallengeSubType:()=>$t,ChallengeType:()=>Ae,ChatFlag:()=>te,ChiknWinnerDailyLimit:()=>pA,CollectType:()=>AA,CoopState:()=>tA,FirebaseKey:()=>F,FramesBetweenSyncs:()=>U,GameAction:()=>L,GameMode:()=>m,GameOptionFlag:()=>uA,GunEquipTime:()=>kA,GunList:()=>R,ItemType:()=>M,Movement:()=>y,PlayType:()=>eA,ShellStreak:()=>d,SocialMedia:()=>NA,SocialReward:()=>ee,StateBufferSize:()=>T,Team:()=>ge,URLRewards:()=>Ie,UserAgent:()=>q,findItemById:()=>r});var yA={};nA(yA,{AUG:()=>mA,CSG1:()=>rA,Cluck9mm:()=>hA,DozenGauge:()=>cA,Eggk47:()=>EA,M24:()=>wA,RPEGG:()=>dA,SMG:()=>lA});var f=class{constructor(){this.adsMod=.5,this.burst=0,this.burstRof=0,this.movementAccuracyMod=1,this.radius=0,this.reloadBloom=!0,this.reloadTimeMod=1,this.tracer=0}},EA=class extends f{constructor(){super(),this.ammo={rounds:30,capacity:30,reload:30,store:240,storeMax:240,pickup:30},this.longReloadTime=205,this.shortReloadTime=160,this.weaponName="EggK-47",this.internalName="Eggk47",this.standardMeshName="eggk47",this.automatic=!0,this.damage=30,this.range=20,this.recoil=7,this.rof=3,this.totalDamage=30,this.velocity=1.5,this.accuracyMin=.15,this.accuracyMax=.03,this.accuracyLoss=.05,this.accuracyRecover=.025,this.tracer=1}},cA=class extends f{constructor(){super(),this.ammo={rounds:2,capacity:2,reload:2,store:24,storeMax:24,pickup:8},this.longReloadTime=155,this.shortReloadTime=155,this.weaponName="Scrambler",this.internalName="Dozen Gauge",this.standardMeshName="dozenGauge",this.automatic=!1,this.damage=8.5,this.range=8,this.recoil=10,this.rof=8,this.totalDamage=170,this.velocity=1,this.accuracyMin=.16,this.accuracyMax=.13,this.accuracyLoss=.17,this.accuracyRecover=.02,this.adsMod=.6,this.movementAccuracyMod=.2,this.tracer=0}},rA=class extends f{constructor(){super(),this.ammo={rounds:15,capacity:15,reload:15,store:60,storeMax:60,pickup:15},this.longReloadTime=225,this.shortReloadTime=165,this.weaponName="Free Ranger",this.internalName="CSG-1",this.standardMeshName="csg1",this.automatic=!1,this.damage=105,this.range=50,this.recoil=13,this.rof=13,this.totalDamage=105,this.velocity=1.75,this.accuracyMin=.3,this.accuracyMax=.004,this.accuracyLoss=.3,this.accuracyRecover=.025,this.tracer=0}},hA=class extends f{constructor(){super(),this.ammo={rounds:15,capacity:15,reload:15,store:60,storeMax:60,pickup:15},this.longReloadTime=195,this.shortReloadTime=160,this.weaponName="Cluck 9mm",this.internalName="Cluck 9mm",this.standardMeshName="cluck9mm",this.automatic=!1,this.damage=26,this.range=15,this.recoil=6,this.rof=4,this.totalDamage=26,this.velocity=1,this.accuracyMin=.15,this.accuracyMax=.035,this.accuracyLoss=.09,this.accuracyRecover=.08,this.adsMod=.8,this.movementAccuracyMod=.6,this.tracer=0}},dA=class extends f{constructor(){super(),this.ammo={rounds:1,capacity:1,reload:1,store:3,storeMax:3,pickup:1},this.longReloadTime=170,this.shortReloadTime=170,this.weaponName="RPEGG",this.internalName="Eggsploder",this.standardMeshName="rpegg",this.automatic=!1,this.damage=140,this.range=45,this.recoil=60,this.rof=40,this.totalDamage=192.5,this.velocity=.4,this.accuracyMin=.3,this.accuracyMax=.015,this.accuracyLoss=.3,this.accuracyRecover=.02,this.radius=2.75}},lA=class extends f{constructor(){super(),this.ammo={rounds:40,capacity:40,reload:40,store:200,storeMax:200,pickup:40},this.longReloadTime=225,this.shortReloadTime=190,this.weaponName="Whipper",this.internalName="SMEGG",this.standardMeshName="smg",this.automatic=!0,this.damage=23,this.range=20,this.recoil=7,this.rof=2,this.totalDamage=23,this.velocity=1.25,this.accuracyMin=.19,this.accuracyMax=.06,this.accuracyLoss=.045,this.accuracyRecover=.05,this.adsMod=.6,this.movementAccuracyMod=.7,this.tracer=2}},wA=class extends f{constructor(){super(),this.ammo={rounds:1,capacity:1,reload:1,store:12,storeMax:12,pickup:4},this.longReloadTime=144,this.shortReloadTime=144,this.weaponName="Crackshot",this.internalName="M2DZ",this.standardMeshName="m24",this.automatic=!0,this.damage=170,this.range=60,this.recoil=20,this.rof=15,this.totalDamage=170,this.velocity=2,this.accuracyMin=.35,this.accuracyMax=0,this.accuracyLoss=.1,this.accuracyRecover=.023,this.movementAccuracyMod=1.3,this.reloadBloom=!1,this.reloadTimeMod=.8,this.tracer=0}},mA=class extends f{constructor(){super(),this.ammo={rounds:24,capacity:24,reload:24,store:150,storeMax:150,pickup:24},this.longReloadTime=205,this.shortReloadTime=160,this.weaponName="Tri-Hard",this.internalName="AUG",this.standardMeshName="aug",this.automatic=!1,this.damage=32,this.range=20,this.recoil=18,this.rof=15,this.totalDamage=34,this.velocity=1.5,this.accuracyMin=.15,this.accuracyMax=.03,this.accuracyLoss=.037,this.accuracyRecover=.03,this.adsMod=.6,this.burst=3,this.burstRof=3,this.movementAccuracyMod=.8,this.movementInstability=2,this.tracer=0}};var r=()=>null;var DA={FiveMinutes:0,FifteenMinutes:1,OneHour:2},$t={Killstreak:0,KillWithWeapon:1,MovementDistance:3,Jumping:4,TimePlayed:6,TimeAlive:7,KillWithCondition:8,TotalKills:10,SpatulaKills:10,Collecting:18,FromTheCoop:20,SpecialOffensive:21,WinKOTC:23,KillWithSpatula:23},Ae={Kill:0,Damage:1,Death:2,Movement:3,Collect:4,Time:5,KOTC:6,Spatula:7},te={None:0,Pinned:2,Team:4,Mod:254,Server:255},pA=3,AA={Ammo:0,Grenade:1},tA={Start:0,Score:1,Win:2,Capturing:3,Contested:4,Takeover:5,Abandoned:6,Unclaimed:7},F="AIzaSyDP4SIjKaw6A4c-zvfYxICpbEjn1rRnN50",U=3,L={Reset:1,Pause:2},m={FFA:0,Team:1,Spatula:2,KOTC:3},uA={Locked:1,NoTeamChange:2,NoTeamShuffle:4},kA=13,R=[EA,cA,rA,dA,lA,wA,mA],M={Hat:1,Stamp:2,Primary:3,Secondary:4,Grenade:6,Melee:7},y={Forward:1,Backward:2,Left:4,Right:8,Jump:16,Fire:32,Melee:64,Scope:128},eA={JoinPublic:0,CreatePrivate:1,JoinPrivate:2},d={HardBoiled:1,EggBreaker:2,Restock:4,OverHeal:8,DoubleEggs:16,MiniEgg:32},NA={Facebook:0,Instagram:1,Tiktok:2,Discord:3,Youtube:4,Twitter:5,Twitch:6},ee={Discord:"rew_1200",Tiktok:"rew_1208",Instagram:"rew_1219",Steam:"rew_1223",Facebook:"rew_1227",Twitter:"rew_1234",Twitch:"rew_twitch_social"},T=256,ge={Blue:1,Red:2},Ie=["giveBasketBrosReward","mercZoneFinalGift","midMonthGiveMeEggs","newYolkerSignupReward","newYolkerItemReward","newYolkerWelcomeBack","WelcomeBack"],q=l.isBrowser?null:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36";var MA=class{url="";proxy="";binaryType="";maxRetries=5;connectionTimeout=5e3;constructor(A,t){this.url=A,l.isBrowser&&t&&(console.error("You cannot pass a proxy to a yolkws inside of a browser."),process.exit(1)),this.proxy=t}async tryConnect(A=1){let t=new URL(this.url),e=async()=>A===5?!1:await this.tryConnect(A+1);try{this.socket=l.isBrowser?new l.WebSocket(this.url):new l.WebSocket(this.url,{proxy:this.proxy||void 0,headers:{"accept-encoding":"gzip, deflate, br, zstd","accept-language":"en-US,en;q=0.9","cache-control":"no-cache",connection:"Upgrade",origin:t.origin.replace("ws","http"),pragma:"no-cache","sec-websocket-extensions":"permessage-deflate; client_max_window_bits","user-agent":q}}),this.binaryType&&(this.socket.binaryType=this.binaryType)}catch(I){return console.error(`Failed to connect on try ${A}, trying again...`,I),await e()}return this.onBeforeConnect&&this.onBeforeConnect(),new Promise(I=>{let s=setTimeout(async()=>{this.socket.close(),I(await e())},this.connectionTimeout),g=async Q=>{clearTimeout(s),console.error("WebSocket error",Q),I(await e())};this.socket.addEventListener("open",async()=>{clearTimeout(s),this.socket.removeEventListener("error",g),I(!0)}),this.socket.addEventListener("error",g)})}get onmessage(){return this.socket?.onmessage}set onmessage(A){this.socket?this.socket.onmessage=A:console.error("set onmessage before socket existed")}get onclose(){return this.socket?.onclose}set onclose(A){this.socket?this.socket.onclose=A:console.error("set onclose before socket existed")}get onerror(){return this.socket?.onerror}set onerror(A){this.socket?this.socket.onerror=A:console.error("set onclose before socket existed")}send(A){return this.socket?.send(A)}close(A){return this.socket?.close(A)}},Y=MA;var z={origin:"https://shellshock.io","user-agent":q,"x-client-version":"Chrome/JsCore/9.17.2/FirebaseCore-web","x-firebase-locale":"en"},b=class{constructor(A={}){this.proxy=A.proxy,this.instance=A.instance||"shellshock.io",this.protocol=A.protocol||"wss",this.maxRetries=A.maxRetries||5,this.suppressErrors=A.suppressErrors||!1,this.connectionTimeout=A.connectionTimeout||5e3}queryServices=async A=>{let t=new Y(`${this.protocol}://${this.instance}/services/`,this.proxy);return t.connectionTimeout=this.connectionTimeout,!await t.tryConnect(-2)||t.socket.readyState<1?"websocket_connect_fail":new Promise(I=>{let s=!1;t.onmessage=g=>{s=!0;try{let Q=JSON.parse(g.data);I(Q)}catch{this.suppressErrors||(console.error("queryServices: Bad API JSON response with call: "+A.cmd+" and data:",JSON.stringify(A)),console.error("queryServices: Full data sent: ",JSON.stringify(A))),I("bad_json")}t.close()},t.onerror=()=>!s&&I("unknown_socket_error"),t.onclose=()=>!s&&I("services_closed_early"),t.send(JSON.stringify(A))})};#A=async(A,t,e)=>{if(!A||!t)return"firebase_no_credentials";let I,s;try{I=await(await l.fetch(`https://identitytoolkit.googleapis.com/v1/accounts:${e}?key=${F}`,{method:"POST",body:JSON.stringify({email:A,password:t,returnSecureToken:!0}),headers:{...z,"content-type":"application/json"},proxy:this.proxy})).json(),s=I.idToken}catch(Q){return Q.code==="auth/network-request-failed"?(this.suppressErrors||console.error("loginWithCredentials: Network req failed (auth/network-request-failed)"),"firebase_network_failed"):Q.code==="auth/missing-email"?"firebase_no_credentials":Q.code==="ERR_BAD_REQUEST"?(this.suppressErrors||console.error("loginWithCredentials: Error:",A,t),this.suppressErrors||console.error("loginWithCredentials: Error:",I||Q),"firebase_bad_request"):(this.suppressErrors||console.error("loginWithCredentials: Error:",A,t,Q),"firebase_unknown_error")}if(!s)return this.suppressErrors||console.error("loginWithCredentials: the game sent no idToken",I),"firebase_no_token";this.idToken=s;let g=await this.queryServices({cmd:"auth",firebaseToken:s});return typeof g=="object"?{firebase:I,...g}:g};createAccount=async(A,t)=>await this.#A(A,t,"signUp");loginWithCredentials=async(A,t)=>await this.#A(A,t,"signInWithPassword");loginWithRefreshToken=async A=>{if(!A)return"firebase_no_credentials";let t=new URLSearchParams;t.append("grant_type","refresh_token"),t.append("refresh_token",A);let e,I;try{e=await(await l.fetch(`https://securetoken.googleapis.com/v1/token?key=${F}`,{method:"POST",body:t,headers:{...z,"content-type":"application/x-www-form-urlencoded"},proxy:this.proxy})).json(),I=e.id_token}catch(g){return g.code==="auth/network-request-failed"?(this.suppressErrors||console.error("loginWithRefreshToken: Network req failed (auth/network-request-failed)"),"firebase_network_failed"):g.code==="auth/missing-email"?"firebase_no_credentials":(this.suppressErrors||console.error("loginWithRefreshToken: Error:",g,A),"firebase_unknown_error")}if(!I)return this.suppressErrors||console.error("loginWithRefreshToken: the game sent no idToken",e),"firebase_no_token";this.idToken=I;let s=await this.queryServices({cmd:"auth",firebaseToken:I});return typeof s=="object"?{firebase:e,...s}:s};loginAnonymously=async()=>{let t=await(await l.fetch("https://identitytoolkit.googleapis.com/v1/accounts:signUp?key="+F,{method:"POST",body:JSON.stringify({returnSecureToken:!0}),headers:{...z,"content-type":"application/json"},proxy:this.proxy})).json(),e=t.idToken;if(!e)return this.suppressErrors||console.error("loginAnonymously: the game sent no idToken",t),"firebase_no_token";this.idToken=e;let I=await this.queryServices({cmd:"auth",firebaseToken:e});return typeof I=="object"?{firebase:t,...I}:I};sendEmailVerification=async(A=this.idToken)=>{if(!A)return"no_idtoken_passed";let e=await(await l.fetch("https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key="+F,{method:"POST",body:JSON.stringify({requestType:"VERIFY_EMAIL",idToken:A}),headers:{...z,"content-type":"application/json"},proxy:this.proxy})).json();return e.kind!=="identitytoolkit#GetOobConfirmationCodeResponse"?(this.suppressErrors||console.error("sendEmailVerification: the game sent an invalid response",e),"firebase_invalid_response"):{email:e.email}};verifyOobCode=async A=>{if(!A)return"no_oob_code_passed";let e=await(await l.fetch("https://www.googleapis.com/identitytoolkit/v3/relyingparty/setAccountInfo?key="+F,{method:"POST",body:JSON.stringify({oobCode:A}),headers:{...z,"x-client-version":"Chrome/JsCore/3.7.5/FirebaseCore-web",referer:"https://shellshockio-181719.firebaseapp.com/","content-type":"application/json"},proxy:this.proxy})).json();return e.emailVerified?e.email:(this.suppressErrors||console.error("verifyOobCode: the game sent an invalid response",e),"firebase_invalid_response")}},gA=b;var GA=class{static buffer;static idx;static init(A){this.buffer=new Uint8Array(A),this.idx=0}static isMoreDataAvailable(){return Math.max(0,this.buffer.length-this.idx)}static unPackInt8U(){let A=this.idx;return this.idx++,this.buffer[A]}static unPackInt8(){return(this.unPackInt8U()+128)%256-128}static unPackInt16U(){let A=this.idx;return this.idx+=2,this.buffer[A]+this.buffer[A+1]*256}static unPackInt24U(){let A=this.idx;return this.idx+=3,this.buffer[A]+this.buffer[A+1]*256+this.buffer[A+2]*65536}static unPackInt32U(){let A=this.idx;return this.idx+=4,this.buffer[A]+this.buffer[A+1]*256+this.buffer[A+2]*65536+this.buffer[A+3]*16777216}static unPackInt16(){return(this.unPackInt16U()+32768)%65536-32768}static unPackInt32(){return(this.unPackInt32U()+2147483648)%4294967296-2147483648}static unPackRadU(){return this.unPackInt24U()/2097152}static unPackRad(){return this.unPackInt16U()/8192-Math.PI}static unPackFloat(){return this.unPackInt16()/256}static unPackDouble(){return this.unPackInt32()/1048576}static unPackString(A){A=A||255;let t=Math.min(this.unPackInt8U(),A);return this.unPackStringHelper(t)}static unPackLongString(A){A=A||16383;let t=Math.min(this.unPackInt16U(),A);return this.unPackStringHelper(t)}static unPackStringHelper(A){if(this.isMoreDataAvailable()<A)return 0;let e="";for(let I=0;I<A;I++){let s=this.unPackInt16U();s>0&&(e+=String.fromCodePoint(s))}return e}},i=GA;var FA=class{constructor(A=16384){this.idx=0,this.arrayBuffer=new ArrayBuffer(A),this.buffer=new Uint8Array(this.arrayBuffer,0,A)}send(A){let t=new Uint8Array(this.arrayBuffer,0,this.idx);A.send(t)}packInt8(A){this.buffer[this.idx]=A&255,this.idx++}packInt16(A){this.buffer[this.idx]=A&255,this.buffer[this.idx+1]=A>>8&255,this.idx+=2}packInt24(A){this.buffer[this.idx]=A&255,this.buffer[this.idx+1]=A>>8&255,this.buffer[this.idx+2]=A>>16&255,this.idx+=3}packInt32(A){this.buffer[this.idx]=A&255,this.buffer[this.idx+1]=A>>8&255,this.buffer[this.idx+2]=A>>16&255,this.buffer[this.idx+3]=A>>24&255,this.idx+=4}packRadU(A){this.packInt24(A*2097152)}packRad(A){this.packInt16((A+Math.PI)*8192)}packFloat(A){this.packInt16(A*256)}packDouble(A){this.packInt32(A*1048576)}packString(A){typeof A!="string"&&(A=""),this.packInt8(A.length);for(let t=0;t<A.length;t++)this.packInt16(A.charCodeAt(t))}packLongString(A){typeof A!="string"&&(A=""),this.packInt16(A.length);for(let t=0;t<A.length;t++)this.packInt16(A.charCodeAt(t))}},c=FA;var ie={gameNotFound:4e3,gameFull:4001,badName:4002,mainMenu:4003,gameIdleExceeded:4004,corruptedLoginData0:4005,corruptedLoginData1:4006,corruptedLoginData2:4007,corruptedLoginData3:4008,corruptedLoginData4:4009,corruptedLoginData5:4010,gameMaxPlayersExceeded:4011,gameDestroyUser:4012,joinGameOutOfOrder:4013,gameShuttingDown:4014,readyBeforeReady:4015,booted:4016,gameErrorOnUserSocket:4017,uuidNotFound:4018,sessionNotFound:4019,clusterFullCpu:4020,clusterFullMem:4021,noClustersAvailable:4022,locked:4023},IA=ie;var se={},o=se;var Be=Object.fromEntries(Object.entries(NA).map(([B,A])=>[A,B.toLowerCase()])),v=class{constructor(A,t=null){this.id=A.id,this.uniqueId=A.uniqueId,this.name=A.name,this.safeName=A.safeName,this.team=A.team,this.playing=A.playing,this.socials=A.social&&JSON.parse(A.social),this.socials&&this.socials.forEach(e=>e.type=Be[e.id]),this.isVip=A.upgradeProductId>0,this.showBadge=!A.hideBadge||!1,this.streak=A.score,this.streakRewards=Object.values(d).filter(e=>A.activeShellStreaks&e),this.scale=this.streakRewards.includes(d.MiniEgg)?.5:1,this.position={x:A.x,y:A.y,z:A.z},this.jumping=A.$controlKeys&y.Jump,this.scoping=A.$controlKeys&y.Scope,this.climbing=!1,this.view={yaw:A.yaw,pitch:A.pitch},this.updateKotcZone(t),this.character={eggColor:A.shellColor,primaryGun:A.primaryWeaponItem,secondaryGun:A.secondaryWeaponItem,stamp:A.stampItem,hat:A.hatItem,grenade:A.grenadeItem,melee:A.meleeItem,stampPos:{x:A.stampPosX,y:A.stampPosY}},this.stats={totalKills:A.totalKills,totalDeaths:A.totalDeaths,bestStreak:A.bestStreak},this.activeGun=A.weaponIdx,this.selectedGun=A.charClass,this.weapons=[],this.character.primaryGun&&(this.weapons[0]=new R[this.selectedGun],this.weapons[1]=new hA),this.grenades=1,this.hp=A.hp,this.hpShield=0,this.spawnShield=A.shield,this.randomSeed=0}updateKotcZone(A){if(!A)return this.inKotcZone=!1;let t=Math.floor(this.position.x),e=Math.floor(this.position.y),I=Math.floor(this.position.z);this.inKotcZone=A.some(s=>s.x===t&&s.y===e&&s.z===I)&&this.playing}},iA=v;var S=(B,A,t)=>(A>>>=0,new TextDecoder().decode(new Uint8Array(B.memory.buffer).subarray(A,A+t))),J=(B,A)=>{let t=new TextEncoder().encode(A),e=B.__wbindgen_malloc(t.length,1)>>>0;return new Uint8Array(B.memory.buffer).subarray(e,e+t.length).set(t),[e,t.length]},Z=(B,A)=>{let t=B.__externref_table_alloc();return B.__wbindgen_export_2.set(t,A),t};var Qe=`
2
- var comp_spinner_overlay = {
3
- template: '#spinner-overlay-template',
4
- components: {
5
- 'wobbly-egg': comp_wobbly_egg
6
- },
7
- props: ['loc', 'adblockerbanner', 'hideAds', 'adUnit', 'accountDate'],
8
-
9
- data: function () {
10
- return {
11
- isShowing: false,
12
- header: '',
13
- footer: '',
14
- adIsShowing: false,
15
- isShowTips: false,
16
- tipKey: null,
17
- tips: [],
18
- tip: '',
19
- eggGuyImg: 'img/shellShockers_loadingTipEgg.webp',
20
- goodBrowser: true,
21
- browserTipShown: false,
22
- }
23
- },
24
-
25
- mounted() {
26
- this.isNotChrome().then(result => {
27
- if (result) {
28
- this.goodBrowser = false;
29
- }
30
- });
31
- },
32
-
33
- methods: {
34
- show: function (headerLocKey, footerLocKey, showTips) {
35
- this.header = this.loc[headerLocKey];
36
- this.footer = this.loc[footerLocKey];
37
- this.isShowing = true;
38
- this.isShowTips = showTips;
39
- },
40
-
41
- showSpinnerLoadProgress: function (percent) {
42
- var msg = this.loc['ui_game_loading'];
43
- this.header = this.loc['building_map'];
44
- this.footer = '{0}... {1}%'.format(msg, percent);
45
- this.isShowTips = true;
46
- this.isShowing = true;
47
- },
48
-
49
- hide: function () {
50
- this.isShowing = false;
51
- this.isShowTips = this.isShowing;
52
- this.$emit('close-display-ad');
53
- },
54
-
55
- hideDisplayAd() {
56
- this.adIsShowing = false;
57
- console.log('do it');
58
- },
59
- showDisplayAd() {
60
- this.adIsShowing = true;
61
- },
62
- toggleDisplayAd() {
63
- return this.adIsShowing = this.adIsShowing ? false : true;
64
- },
65
- getTipKey() {
66
- if (!this.accountDate) {
67
- this.tipKey = 'tipNew_';
68
- } else {
69
- if (!this.accountDays) {
70
- this.accountDays = Math.ceil((new Date().getTime() - new Date(this.accountDate).getTime()) / (1000 * 3600 * 24));
71
- }
72
- if (this.accountDays <= 14) {
73
- this.tipKey = 'tipNew_';
74
- } else {
75
- this.tipKey = 'tip_';
76
- }
77
- }
78
- },
79
- randomTip() {
80
- if (!this.goodBrowser && !this.browserTipShown) {
81
- this.tip = 'tip_ofthe_day_107';
82
- this.browserTipShown = true;
83
- return;
84
- }
85
-
86
- if (this.tipKey === null) {
87
- this.getTipKey();
88
- }
89
-
90
- if (this.tips.length === 0) {
91
- Object.keys(this.loc).forEach(key => {
92
- if (key.startsWith(this.tipKey)) {
93
- this.tips.push(key);
94
- }
95
- });
96
- }
97
- this.tip = this.tips[Math.floor(Math.random() * this.tips.length)];
98
- },
99
-
100
- async isNotChrome() {
101
- if (navigator.userAgentData) {
102
- const brands = navigator.userAgentData.brands || [];
103
- const isChrome = brands.some(brand => brand.brand === 'Google Chrome');
104
- return !isChrome;
105
- } else {
106
- // Fallback to userAgent for older browsers
107
- return this.isNotChromeFallback();
108
- }
109
- },
110
- isNotChromeFallback() {
111
- const ua = navigator.userAgent;
112
- return !(ua.includes('Chrome') && !ua.includes('Edg') && !ua.includes('OPR'));
113
- }
114
- },
115
- watch: {
116
- isShowing(val, old) {
117
- if (val && !old) {
118
- this.randomTip();
119
- }
120
- }
121
- }
122
- };
123
- `,sA={},O={textContent:""},ot=(B,A)=>{let t=new FinalizationRegistry(g=>{B().__wbindgen_export_5.get(g.dtor)(g.a,g.b)}),e=(g,Q,a,n)=>{let E={a:g,b:Q,cnt:1,dtor:a},C=(...h)=>{E.cnt++;let u=E.a;E.a=0;try{return n(u,E.b,...h)}finally{--E.cnt===0?(B().__wbindgen_export_5.get(E.dtor)(u,E.b),t.unregister(E)):E.a=u}};return C.original=E,t.register(C,E,E),C},I=(g,Q,a)=>B().closure28_externref_shim(g,Q,a),s=1;return{wbg:{__wbg_addEventListener_90e553fdce254421:(g,Q,a,n)=>sA[S(B(),Q,a)]=n,__wbg_appendChild_8204974b7328bf98:()=>{},__wbg_axes_b1da727bd9ea422d:()=>{},__wbg_body_942ea927546a04ba:()=>Z(B(),null),__wbg_call_672a4d21634d4a24:()=>{},__wbg_childNodes_c4423003f3a9441f:()=>[],__wbg_createElement_8c9931a732ee2fea:()=>O,__wbg_document_d249400bd7bd996d:()=>Z(B(),{}),__wbg_from_2a5d3e218e67aa85:(...g)=>Array.from(g[0]),__wbg_getGamepads_1f997cef580c9088:(...g)=>g[0].getGamepads(),__wbg_get_67b2ba62fc30de12:(...g)=>Reflect.get(g[0],g[1]),__wbg_get_b9b93047fe3cf45b:(...g)=>g[0][g[1]>>>0],__wbg_has_a5ea9117f258a0ec:()=>!0,__wbg_innerText_df9aeb9435e40973:()=>{},__wbg_instanceof_Gamepad_365ec8404255ce00:()=>!0,__wbg_instanceof_HtmlElement_51378c201250b16c:()=>!0,__wbg_instanceof_Window_def73ea0955fc569:()=>!0,__wbg_isTrusted_cc994b7949c53593:()=>!0,__wbg_item_8be407c958853a13:(...g)=>Z(B(),g[0][g[1]>>>0]),__wbg_length_49b2ba67f0897e97:()=>(s--,s<=0?(s=1,0):s),__wbg_length_e2d2a49132c1b256:(...g)=>g[0].length,__wbg_movementX_1aa05f864931369b:(...g)=>g[0].movementX,__wbg_movementY_8acfedb38a70e624:(...g)=>g[0].movementY,__wbg_navigator_1577371c070c8947:(...g)=>g[0].navigator,__wbg_new_405e22f390576ce2:()=>new Object,__wbg_newnoargs_105ed471475aaf50:()=>{},__wbg_nodeType_5e1153141daac26a:()=>3,__wbg_now_807e54c39636c349:()=>A.processDate||Date.now(),__wbg_set_bb8cecf6a62b9f46:(...g)=>Reflect.set(g[0],g[1],g[2]),__wbg_settextContent_d29397f7b994d314:async(...g)=>{O.textContent=S(B(),g[1],g[2]),A.processListeners.forEach(Q=>Q(O.textContent))},__wbg_static_accessor_GLOBAL_88a902d13a557d07:()=>{},__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0:()=>{},__wbg_static_accessor_SELF_37c5d418e4bf5819:()=>Z(B(),{}),__wbg_static_accessor_WINDOW_5de37043a91a9c40:()=>{},__wbg_textContent_215d0f87d539368a:(g,Q)=>{let[a,n]=J(B(),Q===O?O.textContent:Qe),E=new DataView(B().memory.buffer);E.setInt32(g+4,n,!0),E.setInt32(g+0,a,!0)},__wbindgen_debug_string:()=>{},__wbindgen_init_externref_table:()=>{},__wbindgen_throw:()=>{},__wbindgen_number_new:g=>g,__wbindgen_string_new:(g,Q)=>S(B(),g,Q),__wbindgen_string_get:(g,Q)=>{let a=S(B(),g,Q),[n,E]=J(B(),a),C=new DataView(B().memory.buffer);C.setInt32(g+4,E,!0),C.setInt32(g+0,n,!0)},__wbindgen_is_undefined:g=>g===void 0?1:0,__wbindgen_is_null:g=>g===null?1:0,__wbindgen_boolean_get:g=>{let Q=g;return typeof Q=="boolean"?Q?1:0:2},__wbindgen_closure_wrapper94:(g,Q)=>e(g,Q,31,I),__wbindgen_closure_wrapper95:(g,Q)=>e(g,Q,31,I),__wbindgen_number_get:(g,Q)=>{let a=Q,n=typeof a=="number"?a:void 0,E=new DataView(B().memory.buffer);E.setFloat64(g+8,n,!0),E.setInt32(g+0,1,!0)}}}};var ae=B=>typeof atob=="function"?new Uint8Array(atob(B).split("").map(A=>A.charCodeAt(0))):Buffer.from(B,"base64"),nt=ae("AGFzbQEAAAABpwItYAN/f38Bf2ACf38Bf2ABfwBgAn9/AGADf39/AGABbwF/YAABf2AAAGABfwF/YAFvAW9gBX9/f39/AX9gBH9/f38AYAJ/bwBgAm9vAW9gBH9/f38Bf2AFf39/f38AYAJ/fwFvYAABb2ADf39/AW9gAAJ/f2ACb38Bf2ACb28Bf2AEb39/bwBgAAF8YANvf38Bb2ADb39/AGABfAFvYANvb28Bf2ACb38Bb2AGfHx8f39/AGAHf39/f39/fwF/YAZ/f39/f38AYAF8AXxgCX98fH98b29/fwBgAn9/An9/YAZ/f39/f38Bf2AFf399f38AYAR/fX9/AGAFf398f38AYAR/fH9/AGAFf39+f38AYAR/fn9/AGABfAF/YAN/f28AYAJ8fAF8AsYNLgN3YmcVX193YmluZGdlbl9zdHJpbmdfbmV3ABADd2JnGl9fd2JnX2dldF82N2IyYmE2MmZjMzBkZTEyAA0Dd2JnFV9fd2JpbmRnZW5fbnVtYmVyX2dldAAMA3diZx9fX3diZ19ub2RlVHlwZV81ZTExNTMxNDFkYWFjMjZhAAUDd2JnLV9fd2JnX2luc3RhbmNlb2ZfSHRtbEVsZW1lbnRfNTEzNzhjMjAxMjUwYjE2YwAFA3diZyBfX3diZ19pbm5lclRleHRfZGY5YWViOTQzNWU0MDk3MwAMA3diZyJfX3diZ190ZXh0Q29udGVudF8yMTVkMGY4N2Q1MzkzNjhhAAwDd2JnIV9fd2JnX2NoaWxkTm9kZXNfYzQ0MjMwMDNmM2E5NDQxZgAJA3diZx1fX3diZ19sZW5ndGhfNDliMmJhNjdmMDg5N2U5NwAFA3diZxtfX3diZ19pdGVtXzhiZTQwN2M5NTg4NTNhMTMAFAN3YmcgX193YmdfaXNUcnVzdGVkX2NjOTk0Yjc5NDljNTM1OTMABQN3YmcgX193YmdfbW92ZW1lbnRYXzFhYTA1Zjg2NDkzMTM2OWIABQN3YmcgX193YmdfbW92ZW1lbnRZXzhhY2ZlZGIzOGE3MGU2MjQABQN3YmcaX193YmdfaGFzX2E1ZWE5MTE3ZjI1OGEwZWMAFQN3YmcnX193YmdfYWRkRXZlbnRMaXN0ZW5lcl85MGU1NTNmZGNlMjU0NDIxABYDd2JnGl9fd2JnX25vd184MDdlNTRjMzk2MzZjMzQ5ABcDd2JnH19fd2JnX2RvY3VtZW50X2QyNDk0MDBiZDdiZDk5NmQABQN3YmckX193YmdfY3JlYXRlRWxlbWVudF84Yzk5MzFhNzMyZWUyZmVhABgDd2JnJV9fd2JnX3NldHRleHRDb250ZW50X2QyOTM5N2Y3Yjk5NGQzMTQAGQN3YmcbX193YmdfYm9keV85NDJlYTkyNzU0NmEwNGJhAAUDd2JnIl9fd2JnX2FwcGVuZENoaWxkXzgyMDQ5NzRiNzMyOGJmOTgADQN3YmcaX193YmdfbmV3XzQwNWUyMmYzOTA1NzZjZTIAEQN3YmcVX193YmluZGdlbl9udW1iZXJfbmV3ABoDd2JnGl9fd2JnX3NldF9iYjhjZWNmNmE2MmI5ZjQ2ABsDd2JnIF9fd2JnX25hdmlnYXRvcl8xNTc3MzcxYzA3MGM4OTQ3AAkDd2JnIl9fd2JnX2dldEdhbWVwYWRzXzFmOTk3Y2VmNTgwYzkwODgACQN3YmcaX193YmdfZ2V0X2I5YjkzMDQ3ZmUzY2Y0NWIAHAN3YmcSX193YmluZGdlbl9pc19udWxsAAUDd2JnF19fd2JpbmRnZW5faXNfdW5kZWZpbmVkAAUDd2JnKV9fd2JnX2luc3RhbmNlb2ZfR2FtZXBhZF8zNjVlYzg0MDQyNTVjZTAwAAUDd2JnG19fd2JnX2Zyb21fMmE1ZDNlMjE4ZTY3YWE4NQAJA3diZx1fX3diZ19sZW5ndGhfZTJkMmE0OTEzMmMxYjI1NgAFA3diZxZfX3diaW5kZ2VuX2Jvb2xlYW5fZ2V0AAUDd2JnG19fd2JnX2F4ZXNfYjFkYTcyN2JkOWVhNDIyZAAJA3diZyBfX3diZ19uZXdub2FyZ3NfMTA1ZWQ0NzE0NzVhYWY1MAAQA3diZxtfX3diZ19jYWxsXzY3MmE0ZDIxNjM0ZDRhMjQADQN3YmctX193Ymdfc3RhdGljX2FjY2Vzc29yX0dMT0JBTF84OGE5MDJkMTNhNTU3ZDA3AAYDd2JnMl9fd2JnX3N0YXRpY19hY2Nlc3Nvcl9HTE9CQUxfVEhJU181NjU3OGJlN2U5ZjgzMmIwAAYDd2JnLV9fd2JnX3N0YXRpY19hY2Nlc3Nvcl9XSU5ET1dfNWRlMzcwNDNhOTFhOWM0MAAGA3diZytfX3diZ19zdGF0aWNfYWNjZXNzb3JfU0VMRl8zN2M1ZDQxOGU0YmY1ODE5AAYDd2JnF19fd2JpbmRnZW5fZGVidWdfc3RyaW5nAAwDd2JnEF9fd2JpbmRnZW5fdGhyb3cAAwN3YmcoX193YmdfaW5zdGFuY2VvZl9XaW5kb3dfZGVmNzNlYTA5NTVmYzU2OQAFA3diZxxfX3diaW5kZ2VuX2Nsb3N1cmVfd3JhcHBlcjk0ABIDd2JnHF9fd2JpbmRnZW5fY2xvc3VyZV93cmFwcGVyOTUAEgN3YmcfX193YmluZGdlbl9pbml0X2V4dGVybnJlZl90YWJsZQAHA4wBigEEAwgAAQcHAgMOAwAEAwQKAAABAQMdAwYEAQEKBwMeAQEDAwYBAQMBAh8DAwICBAQBAQQCAgICAgICAgICAgICAgICAgMPIAILBAQEBAEDACEBAgQKAg4DIiMKDyQmKAcLAAQBAwIBAgICAgICASorAQsEBAsBAQIBCAIEBBEBAQcDAwMsCAgICAcECQJwAUREbwCAAQUDAQARBg8CfwFBgIDAAAt/AUGAAQsHuAIRBm1lbW9yeQIABXN0YXJ0ADMHcHJvY2VzcwAvCHZhbGlkYXRlAIYBEHNldF9tb3VzZV9wYXJhbXMAQw9yZXNldF95YXdfcGl0Y2gAjQENZ2V0X3lhd19waXRjaACrAQxwb2xsX2dhbWVwYWQAfhRfX3diaW5kZ2VuX2V4bl9zdG9yZQClARdfX2V4dGVybnJlZl90YWJsZV9hbGxvYwBFE19fd2JpbmRnZW5fZXhwb3J0XzIBARFfX3diaW5kZ2VuX21hbGxvYwB7El9fd2JpbmRnZW5fcmVhbGxvYwCEARNfX3diaW5kZ2VuX2V4cG9ydF81AQAPX193YmluZGdlbl9mcmVlAHgYY2xvc3VyZTI4X2V4dGVybnJlZl9zaGltAJ0BEF9fd2JpbmRnZW5fc3RhcnQAtwEJcAMAQQELBp4BowFBXlNOAEEJCzqsAaQBQDKIAVeJAYgBhwGPAY4BiQGJAYoBiwGMAbEBrwGmAZABcpABb2djcGZrcWFuZW1saGppYmSVAVV1X1pZO5IBkgFSP3+tAVGXAZkBmAGWAZoBAEHDAAsBnQEK984DigHMPgEhfyABIAJBBnRqISMgACgCHCEhIAAoAhghHyAAKAIUIR4gACgCECEcIAAo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59Cl07aN27buADcAABAPIRQgAkUNDUI0IRBCASERIAIhAQNAAkAgAUEBcQRAIBAgEX4hESABQQFGDQELIAFBAXYhASAQIBB+IRAMAQsLIBFQDQxCACESQn8CfiAURAAAAAAAAAAAZiIAIBREAAAAAAAA8ENjcQRAIBSxDAELQgALQgAgABsgFET////////vQ2QbIBGCIRMgAkEnaiEOAkADQEGQvsAALQAAGiASIBN8IBGCIRAgBi0AACEAIAIQMCEIAkAgAEUEQCAIRQ0IIAhBBGstAABBA3FFDQEgCEEAIAIQRgwBCyAIRQ0IIAggACACEEYLIBJCAXwhEiACIQEDQCAQIBBCNIAiEELM////D358pyIAQTNLDQYgAUEBayIBIAhqIAAgBmotAAA6AAAgAQ0ACyAHIQAgBCEBA0AgASACSQ0CIAFBAWshASAAIAggAhB9IABBAWohAA0ACyAIQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyACakkNESAAQQAgASAOSxsNECAIEDUgESASUg0AC0G8hsAAQShB5IbAABCBAQALIAZBBGsoAgAiAEF4cSIBQThBPCAAQQNxIgAbSQ0PIABBACABQdwATxsNDiAGEDUgDCANaiIAIAI2AgggACAINgIEIAAgAjYCACAKQQFqIgpBDUcNAAtBACECIAMoAiQhACADKAIgIQ0DQAJAIAAgBSACQQxsIgFqIggoAggiBEkNACAAIARrIQcgASAMaiEKQQAhAQNAAkACQAJAIAEgASAEaiIGTQRAIAAgBkkNASAEIAgoAghHDQMgASANaiIGIAgoAgQgBBB9DQMgBCAKKAIIIg5HDQIgBiAKKAIEIAQQORoMAwsgASAGQcyIwAAQqQEACyAGIABBzIjAABCqAQALIwBBMGsiACQAIAAgBDYCBCAAIA42AgAgAEEDNgIMIABBkKTAADYCCCAAQgI3AhQgACAAQQRqrUKAgICAkAGENwMoIAAgAK1CgICAgJABhDcDICAAIABBIGo2AhAgAEEIakHciMAAEIUBAAsgASAHTw0BIAEgASAHSWoiASAHTQ0ACwsgAkEBaiICQQ1HDQALIAMoAiAhASADIAMoAiQiADYCXCADIAE2AlggA0HEAGogA0HYAGoQRCADKAJEIgRFBEBBACEBQQEhBAwKCyADKAJIIQEgAygC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rcAAEIEBAAtBqK3AAEEuQditwAAQgQEACyAAIAQ2AjxBAUEAIABBPGpBuILAAEHsh8AAEHMACyAAIAg3AkggACAHNwJAIAAgAjYCPAwEC0HprMAAQS5BmK3AABCBAQALQaitwABBLkHYrcAAEIEBAAsgACAENgI8QQFBACAAQTxqQbiCwABB3IfAABBzAAsgACABNgI8C0EBQQAgAEE8akHMhMAAQdyEwAAQcwALuQkCDH8FfiMAQaACayIAJABBkL7AAC0AABoCQAJAAkACQAJAQRMQMCIDBEAgA0EPaiICQYeDwAAoAAA2AAAgA0EIaiIBQYCDwAApAAA3AAAgA0H4gsAAKQAANwAAIABB4ABqQgA3AwAgAEHYAGpCADcDACAAQdAAakIANwMAIABByABqQgA3AwAgAEFAa0IANwMAIABBOGpCADcDACAAQTBqIgRCADcDACAAQQhqQZCBwAApAwA3AwAgAEEQakGYgcAAKQMANwMAIABBGGpBoIHAACkDADcDACAAQgA3AyggAEGIgcAAKQMANwMAIABBADoAaCAAQgA3AyAgBCABKQAANwMAIABBN2ogAigAADYAACAAQRM6AGggACADKQAANwMoIABBkAFqIgUgAEHwABA5GiAAQZgCaiICQgA3AwAgAEGQAmoiAUIANwMAIABBiAJqIgRCADcDACAAQgA3A4ACIAUgAEG4AWoiCSAAQYACahA8IABBiAFqIgYgAikDADcDACAAQYABaiIHIAEpAwA3AwAgAEH4AGoiASAEKQMANwMAIAAgACkDgAI3A3BBkL7AAC0AABpBIBAwIgJFDQEgAiAAKQNwNwAAIAJBGGogBikDADcAACACQRBqIAcpAwA3AAAgAkEIaiABKQMANwAAIANBBGsoAgAiAUF4cSIEQRdBGyABQQNxIgEbSQ0CIAFBACAEQTpLGw0DIAMQNUJ+IQwgAEEoaiIBQThqIQYgAUEwaiEHIAFBKGohCkGQgcAAKQMAIQ1BmIHAACkDACEOQaCBwAApAwAhD0GIgcAAKQMAIRADQCABQgA3AwAgBkIANwMAIAdCADcDACAKQgA3AwAgAUEgakIANwMAIAFBGGoiA0IANwMAIAFBEGoiBEIANwMAIAFBCGoiBUIANwMAIABBCGogDTcDACAAQRBqIA43AwAgAEEYaiAPNwMAIABBADoA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aiAFQRBqKQIANwMAIAZBMGogBUEYaigCADYCACAGIAUpAhw3AgggBSkCACEJIAZBwI/AADYCOCAGIAk3AxggBiAGQRdqNgIQIAYgBkEIaiIFNgI0IAUgASACED8NACAFQayPwABBAhA/DQAgAyAGQRhqIAQRAQANACAGKAI0QeSPwABBAiAGKAI4KAIMEQAAIQcLIABBAToABSAAIAc6AAQgBkFAayQAIAALoAQBBn8jAEEwayIAJAACQAJAAkACQEHIucAAKAIARQRAQeC5wAAoAgAhAUHgucAAQQA2AgAgAUUNASAAQRhqIAERAgAgAEEQaiICIABBJGopAgA3AwAgACAAKQIcNwMIIAAoAhghAUHIucAAKAIAIgQNBAJAIARFDQBBzLnAACgCACICRQ0AQdC5wAAoAgAiBEEEaygCACIDQXhxIgUgAkECdCICQQRBCCADQQNxIgMbakkNAyADQQAgBSACQSdqSxsNBCAEEDULQcy5wAAgATYCAEHIucAAQQE2AgBB0LnAACAAKQMINwIAQdi5wAAgAEEQaikDADcCAAsgAEEwaiQADwsgAEEANgIoIABBATYCHCAAQcixwAA2AhggAEIENwIgIABBGGpB8K/AABCFAQALQemswABBLkGYrcAAEIEBAAtBqK3AAEEuQditwAAQgQEACyAAQShqIAIpAwA3AgAgACAAKQMINwIgIAAgATYCHCAAQQE2AhgCQCAAQRhqIgEoAgBFDQAgASgCBCICRQ0AAkAgASgCCCIEQQRrKAIAIgNBeHEiBSACQQJ0IgJBBEEIIANBA3EiAxtqTwRAIANBACAFIAJBJ2pLGw0BIAQQNQwCC0HprMAAQS5BmK3AABCBAQALQaitwABBLkHYrcAAEIEBAAsgAEEANgIoIABBATYCHCAAQZCwwAA2AhggAEIENwIgIAFBmLDAABCFAQAL8QIBBH8gACgCDCECAkACQCABQYACTwRAIAAoAhghAwJAAkAgACACRgRAIABBFEEQIAAoAhQiAhtqKAIAIgENAUEAIQIMAgsgACgCCCIBIAI2AgwgAiABNgIIDAELIABBFGogAEEQaiACGyEEA0AgBCEFIAEiAkEUaiACQRBqIAIoAhQiARshBCACQRRBECABG2ooAgAiAQ0ACyAFQQA2AgALIANFDQIgACAAKAIcQQJ0QcC6wABqIgEoAgBHBEAgA0EQQRQgAygCECAARhtqIAI2AgAgAkUNAwwCCyABIAI2AgAgAg0BQdy9wABB3L3AACgCAEF+IAAoAhx3cTYCAAwCCyAAKAIIIgAgAkcEQCAAIAI2AgwgAiAANgIIDwtB2L3AAEHYvcAAKAIAQX4gAUEDdndxNgIADwsgAiADNgIYIAAoAhAiAQRAIAIgATYCECABIAI2AhgLIAAoAhQiAEUNACACIAA2AhQgACACNgIYCwvKAgEGfyABIAJBAXRqIQkgAEGA/gNxQQh2IQogAEH/AXEhDAJAAkACQAJAA0AgAUECaiELIAcgAS0AASICaiEIIAogAS0AACIBRwRAIAEgCksNBCAIIQcgCyIBIAlHDQEMBAsgByAISw0BIAQgCEkNAiADIAdqIQEDQCACRQRAIAghByALIgEgCUcNAgwFCyACQQFrIQIgAS0AACABQQFqIQEgDEcNAAsLQQAhAgwDCyAHIAhB/JXAABCpAQALIAggBEH8lcAAEKoBAAsgAEH//wNxIQcgBSAGaiEDQQEhAgNAIAVBAWohAAJAIAUsAAAiAUEATgRAIAAhBQwBCyAAIANHBEAgBS0AASABQf8AcUEIdHIhASAFQQJqIQUMAQtB7JXAABCoAQALIAcgAWsiB0EASA0BIAJBAXMhAiADIAVHDQALCyACQQFxC7sCAQZ/IwBBEGsiAyQAQQohAgJAIABBkM4ASQRAIAAhBAwBCwNAIANBBmogAmoiBUEEayAAQZDOAG4iBEHwsQNsIABqIgZB//8DcUHkAG4iB0EBdEHwj8AAai8AADsAACAFQQJrIAdBnH9sIAZqQf//A3FBAXRB8I/AAGovAAA7AAAgAkEEayECIABB/8HXL0sgBCEADQALCwJAIARB4wBNBEAgBCEADAELIAJBAmsiAiADQQZqaiAEQf//A3FB5ABuIgBBnH9sIARqQf//A3FBAXRB8I/AAGovAAA7AAALAkAgAEEKTwRAIAJBAmsiAiADQQZqaiAAQQF0QfCPwABqLwAAOwAADAELIAJBAWsiAiADQQZqaiAAQTByOgAACyABQQFBACADQQZqIAJqQQogAmsQPSADQRBqJAAL1wIBBX8jAEFAaiICJAACQCAAKAIAIgQtAABFBEAgASgCHEGTscAAQQQgASgCICgCDBEAACEADAELQQEhACABKAIcIgNBl7HAAEEEIAEoAiAiBigCDCIFEQAADQAgBEEBaiEEAkAgAS0AFEEEcUUEQCADQemPwABBASAFEQAADQIgBCABEEcNAiABKAIcIQMgASgCICgCDCEFDAELIANB6o/AAEECIAURAAANASACQQE6ABcgAkEgaiABQQhqKQIANwMAIAJBKGogAUEQaikCADcDACACQTBqIAFBGGooAgA2AgAgAiAGNgIMIAIgAzYCCCACQcCPwAA2AjggAiABKQIANwMYIAIgAkEXajYCECACIAJBCGo2AjQgBCACQRhqEEcNASACKAI0QeSPwABBAiACKAI4KAIMEQAADQELIANBsLDAAEEBIAURAAAhAAsgAkFAayQAIAALugIBBH9BHyECIABCADcCECABQf///wdNBEAgAUEGIAFBCHZnIgNrdkEBcSADQQF0a0E+aiECCyAAIAI2AhwgAkECdEHAusAAaiEEQQEgAnQiA0HcvcAAKAIAcUUEQCAEIAA2AgAgACAENgIYIAAgADYCDCAAIAA2AghB3L3AAEHcvcAAKAIAIANyNgIADwsCQAJAIAEgBCgCACIDKAIEQXhxRgRAIAMhAgwBCyABQRkgAkEBdmtBACACQR9HG3QhBQNAIAMgBUEddkEEcWpBEGoiBCgCACICRQ0CIAVBAXQhBSACIQMgAigCBEF4cSABRw0ACwsgAigCCCIBIAA2AgwgAiAANgIIIABBADYCGCAAIAI2AgwgACABNgIIDwsgBCAANgIAIAAgAzYCGCAAIAA2AgwgACAANgIIC5UCAQl/AkACQCABKAIEIgQgASgCACIFayIDQQBOBH8gBCAFRgRAQQEhBkEAIQMMAwtBkL7AAC0AABogAxAwIgYNAUEBBSACCyADQbyEwAAQoQEACyABKAIMIQcgASgCCCEBIAUgBEEBa0cEQCADQf7///8HcSEEA0AgAiAGaiIIIAIgBWoiCS0AACABIAJqIgogBy0AAGpB/wBxczoAACAIQQFqIAlBAWotAAAgCiAHLQAAakEBakH/AHFzOgAAIAQgAkECaiICRw0ACyABIAJqIQELIANBAXFFDQAgAiAGaiACIAVqLQAAIActAAAgAWpB/wBxczoAACACQQFqIQILIAAgAjYCCCAAIAY2AgQgACADNgIAC9wCAgV/AW8jAEEgayIBJAAgAUEYakGk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mLrAACABNgIAQZS6wABBAToAAAsgARCnASIBJQEQKiIDIAFBhAFJckUEQCABEJMBCyAAIAE2AgQgACADQQBHNgIAIAJBIGokAA8LIAJBADYCGCACQQE2AgwgAkHIscAANgIIIAJCBDcCECACQQhqQfCvwAAQhQEACyABQYMBSwRAIAEQkwELIAJBADYCGCACQQE2AgwgAkGQsMAANgIIIAJCBDcCECACQQhqQZiwwAAQhQEAC7kBAQJ/IwBBIGsiAyQAAkACf0EAIAEgASACaiICSw0AGkEAQQggACgCACIBQQF0IgQgAiACIARJGyICIAJBCE0bIgRBAEgNABpBACECIAMgAQR/IAMgATYCHCADIAAoAgQ2AhRBAQUgAgs2AhggA0EIaiAEIANBFGoQeSADKAIIQQFHDQEgAygCECEAIAMoAgwLIABB2IzAABChAQALIAMoAgwhASAAIAQ2AgAgACABNgIEIANBIGokAAu5AQECfyMAQSBrIgMkAAJAAn9BACABIAEgAmoiAksNABpBAEEIIAAoAgAiAUEBdCIEIAIgAiAESRsiAiACQQhNGyIEQQBIDQAaQQAhAiADIAEEfyADIAE2AhwgAyAAKAIENgIUQQEFIAILNgIYIANBCGogBCADQRRqEHkgAygCCEEBRw0BIAMoAhAhACADKAIMCyAAQfSzwAAQoQEACyADKAIMIQEgACAENgIAIAAgATYCBCADQSBqJAAL4AEBA38jAEEQayICJAAgAiAAKAIAIgBBBGo2AgQgASgCHEH2sMAAQQkgASgCICgCDBEAACEDIAJBADoADSACIAM6AAwgAiABNgIIIAJBCGpB/7DAAEELIABBBRBJQYqxwABBCSACQQRqQQYQSSEAIAItAA0iAyACLQAMIgRyIQECQCAEQQFxIANBAUdyDQAgACgCACIALQAUQQRxRQRAIAAoAhxB54/AAEECIAAoAiAoAgwRAAAhAQwBCyAAKAIcQeaPwABBASAAKAIgKAIMEQAAIQELIAJBEGokACABQQFxC9sBAQN/IwBBEGsiAiQAIAIgAEEMajYCBCABKAIcQYS0wABBDSABKAIgKAIMEQAAIQMgAkEAOgANIAIgAzoADCACIAE2AgggAkEIakGRtMAAQQUgAEEDEElBlrTAAEEFIAJBBGpBBBBJIQAgAi0ADSIDIAItAAwi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LEUEQCABKQMQIQMgAq0hBAwBCyABKQIUIQMgASkCMCEEIAEoAhAiAkGAgICAeEYNACABIAQ3AjggASADNwIwIAEgAjYCLEEBQQAgAUEsakHMhMAAQdyEwAAQcwALIAAgBD4CCCAAIAM3AgAgAUFAayQAC9MBAgJ/An4jAEFAaiIBJAAgAUEANgIkIAFBz4HAADYCICABQc2BwAA2AhwgAUHYADoADyABIAFBD2o2AiggAUEQaiABQRxqEFAgAUEsaiABKAIUIAEoAhgiAhA6AkAgASgCLEUEQCABKQMQIQMgAq0hBAwBCyABKQIUIQMgASkCMCEEIAEoAhAiAkGAgICAeEYNACABIAQ3AjggASADNwIwIAEgAjYCLEEBQQAgAUEsakHMhMAAQdyEwAAQcwALIAAgBD4CCCAAIAM3AgAgAUFAayQAC4IBAQJ/AkACQAJAIABFDQAgASgCACICBEAgACACEQIACyABKAIEIgFFDQAgAEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQEgAkEAIAMgAUEnaksbDQIgABA1Cw8LQemswABBLkGYrcAAEIEBAAtBqK3AAEEuQditwAAQgQEAC3oBAX8jAEFAaiIFJAAgBSABNgIMIAUgADYCCCAFIAM2AhQgBSACNgIQIAVBAjYCHCAFQbCPwAA2AhggBUICNwIkIAUgBUEQaq1CgICAgBCENwM4IAUgBUEIaq1CgICAgCCENwMwIAUgBUEwajYCICAFQRhqIAQQhQEAC4oBAgN+AX8jAEEQayEEAkAgAL1CgICAgICAgICAf4NC/////////+8/hL8gAKAiAL0iAkI0iCIBQv8PgyIDQrIIVg0AQv///////////wBCfyABQg18iCADQv8HVBsiASACg1ANACAEIABEAAAAAAAAcEegOQMIIAFCf4UgAoO/IQAgBCsDCBoLIAALbgEDfwJAAkAgACgCACICBEAgACgCBCIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAEDULDwtB6azAAEEuQZitwAAQgQEAC0GorcAAQS5B2K3AABCBAQALewEBfyMAQRBrIgMkAEGsusAAQay6wAAoAgAiBEEBajYCAAJAIARBAEgNAAJAQYi+wAAtAABFBEBBhL7AAEGEvsAAKAIAQQFqNgIAQai6wAAoAgBBAE4NAQwCCyADQQhqIAAgAREDAAALQYi+wABBADoAACACRQ0AAAsAC2oCAX8BfiMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBAjYCDCADQYSOwAA2AgggA0ICNwIUIANCgICAgJABIgQgA62ENwMoIAMgBCADQQRqrYQ3AyAgAyADQSBqNgIQIANBCGogAhCFAQALZAEBfwJAAkAgAQRAIABBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0BIAJBACADIAFBJ2pLGw0CIAAQNQsPC0HprMAAQS5BmK3AABCBAQALQaitwABBLkHYrcAAEIEBAAtYAQF/An8gAigCBARAAkAgAigCCCIDRQRADAELIAIoAgAgA0EBIAEQNwwCCwtBkL7AAC0AABogARAwCyECIAAgATYCCCAAIAJBASACGzYCBCAAIAJFNgIAC1oBAX8jAEEwayIDJAAgAyABNgIMIAMgADYCCCADQQE2AhQgA0GcjcAANgIQIANCATcCHCADIANBCGqtQoCAgIAghDcDKCADIANBKGo2AhggA0EQaiACEIUBAAtIAAJAIAFpQQFHQYCAgIB4IAFrIABJcg0AIAAEQEGQvsAALQAAGgJ/IAFBCU8EQCABIAAQSAwBCyAAEDALIgFFDQELIAEPCwAL0QsBCX8jAEEgayIGJAAgBiABNgIIIAYgAEEEajYCDCAGIAZBH2o2AhggBiAGQQxqNgIUIAYgBkEIajYCECAGQRBqIQQjAEEwayIDJAAgACIBKAIAIQACQAJAAkACQAJAA0ACQAJAAkAgAEEDcSIIQQFrDgMBBAcACyAEDQELIANBGGogCHIhCQJAA0AgACECAkACQAJ/QYy+wAAoAgAiAEECTQRAIANBCGogABBYIAMoAgghByADKAIMDAELIABBCGshBQJAIABBoLrAAEYiAARAQQAhBwwBC0EBIQcgBSAFKAIAIgpBAWo2AgAgCkEASA0CC0GgusAAIAUgABsLIQUgASAJIAEoAgAiACAAIAJGGzYCACADQQA6ACQgAyAHNgIYIAMgBTYCHCADIAJBfHE2AiAgACACRw0BIAMtACRFBEADQAJ/QYy+wAAoAgAiAEECTQRAIAMgABBYIAMoAgAhACADKAIEDAELIABBCGshAgJAIABBoLrAAEYiBwRAQQAhAAwBC0EBIQAgAiACKAIAIgVBAWo2AgAgBUEASA0EC0GgusAAIAIgBxsLIQICQCAARQ0AIAIgAigCACIAQQFrNgIAIABBAUcNACACEFYLIAMtACRFDQALCyADKAIYIgBBAkYgAEVyDQMgAygCHCIAIAAoAgAiAEEBazYCACAAQQFHDQMgAygCHBBWDAMLAAsgCCAAQQNxRgRAIAMoAhgiAkECRiACRXINASADKAIcIgIgAigCACICQQFrNgIAIAJBAUcNASADKAIcEFYMAQsLIAMoAhgiAEECRiAARXINACADKAIcIgAgACgCACIAQQFrNgIAIABBAUcNACADKAIcEFYLIAEoAgAhAAwBCyABIABBAWogASgCACICIAAgAkYbNgIAIAAgAkcgAiEADQALAn8gBCgCACEAIARBBGooAgAhByMAQSBrIgIkACAAKAIAIQQgAEEANgIAIAQoAhAhACAEQQA2AhACQAJAIAAEQCACQQhqIAARAgAgBygCACIAKAIAIgRBgICAgHhGIARFckUEQCAAKAIEIgBBBGsoAgAiBUF4cSIIQQRBCCAFQQNxIgUbIARqSQ0CIAVBACAIIARBJ2pLGw0DIAAQNSAHKAIAIQALIAAgAikCCDcCACAAQQhqIAJBEGooAgA2AgAgAkEgaiQAQQEMAwsgAkEANgIYIAJBATYCDCACQcixwAA2AgggAkIENwIQIAJBCGpBrLLAABCFAQALQemswABBLkGYrcAAEIEBAAtBqK3AAEEuQditwAAQgQEACyECIAEoAgAhACABQQJBACACGzYCACADIABBA3EiATYCFCABQQFHDQEgAEEBayIARQ0AA0AgACIBKAIAIQQgAEECNgIAIARBAkYNAyAAKAIEIQIgACgCCCEAIAFBAToADAJAIARFDQAgAiACKAIAIgFBAWs2AgAgAUEBRw0AIAIQVgsgAA0ACwsgA0EwaiQADAMLIANBADYCGCMAQRBrIgEkACABQbyrwAA2AgwgASADQRRqNgIIIwBB8ABrIgAkACAAQZSOwAA2AgwgACABQQhqNgIIIABBlI7AADYCFCAAIAFBDGo2AhAgAEECNgIcIABBpI7AADYCGAJAIANBGGoiASgCAEUEQCAAQQM2AlwgAEHYjsAANgJYIABCAzcCZCAAIABBEGqtQoCAgIAQhDcDSCAA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fyMAQRBrIgskACMAQYAGayICJAAgAiABNgLQAiACIAA2AswCIAIgATYCyAIgAkEQaiACQcgCakGktsAAEGAgAigCFCEJIAIoAhAhCkHqucAALQAARQRAQei5wABBAToAAAsgAkEIahBbAkACQAJAIAIoAggEQCACKAIMIgAQtAEiAUUNASAAQYQBTwRAIAAQkwELIAIgATYCyAIgAkEBOgCwASACQbABaiACQcgCahA2IAItALABDQIMAwtB7ITAABCoAQALQfyEwAAQqAEAC0HoucAAQQE6AAAQNAsgAUGEAU8EQCABEJMBC0EAIQAgAkEYagJ/Qei5wAAtAABFBEAgAkHQAmpB9IjAACkAADcDACACQdgCakIANwMAIAJB4AJqQgA3AwAgAkHoAmpCADcDACACQfACakIANwMAIAJB+AJqQgA3AwAgAkGAA2pCADcDACACQeyIwAApAAA3A8gCA0AgAkHIAmoiAyAAaiIEIAQtAABBNnM6AAAgBEEBaiIBIAEtAABBNnM6AAAgBEECaiIBIAEtAABBNnM6AAAgBEEDaiIBIAEtAABBNnM6AAAgAEEEaiIAQcAARw0AC0EAIQAgAkEwakGggcAAKQMANwMAIAJBKGpBmIHAACkDADcDACACQSBqQZCBwAApAwA3AwAgAkIBNwM4IAJBiIHAACkDADcDGCACQRhqIANBARAuA0AgAkHIAmoiByAAaiIDIAMtAABB6gBzOgAAIANBAWoiASABLQAAQeoAczoAACADQQJqIgEgAS0AAEHqAHM6AAAgA0EDaiIBIAEtAABB6gBzOgAAIABBBGoiAEHAAEcNAAsgAkHIAWoiBEGggcAAKQMANwMAIAJBwAFqIgNBmIHAACkDADcDACACQbgBaiIBQZCBwAApAwA3AwAgAkHQAWoiAEIBNwMAIAJBiIHAACkDADcDsAEgAkGwAWogB0EBEC4gAkHIBGogACkDADcDACACQcAEaiAEKQMANwMAIAJBuARqIAMpAwA3AwAgAkGwBGogASkDADcDACACQYgEaiACQSBqKQMANwMAIAJBkARqIAJBKGopAwA3AwAgAkGYBGogAkEwaikDADcDACACQaAEaiACQThqKQMANwMAIAIgAikDsAE3A6gEIAIgAikDGDcDgAQgAkGYA2pBAEHBABBGIAcgAkGABGpB0AAQORogBwwBCyACQdACakGEicAAKQAANwMAIAJB2AJqQgA3AwAgAkHgAmpCADcDACACQegCakIANwMAIAJB8AJqQgA3AwAgAkH4AmpCADcDACACQYADakIANwMAIAJB/IjAACkAADcDyAIDQCACQcgCaiIDIABqIgQgBC0AAEE2czoAACAEQQFqIgEgAS0AAEE2czoAACAEQQJqIgEgAS0AAEE2czoAACAEQQNqIgEgAS0AAEE2czoAACAAQQRqIgBBwABHDQALQQAhACACQTBqQaCBwAApAwA3AwAgAkEoakGYgcAAKQMANwMAIAJBIGpBkIHAACkDADcDACACQgE3AzggAkGIgcAAKQMANwMYIAJBGGogA0EBEC4DQCACQcgCaiIHIABqIgMgAy0AAEHqAHM6AAAgA0EBaiIBIAEtAABB6gBzOgAAIANBAmoiASABLQAAQeoAczoAACADQQNqIgEgAS0AAEHqAHM6AAAgAEEEaiIAQcAARw0ACyACQcgBaiIEQaCBwAApAwA3AwAgAkHAAWoiA0GYgcAAKQMANwMAIAJBuAFqIgFBkIHAACkDADcDACACQdABaiIAQgE3AwAgAkGIgcAAKQMANwOwASACQbABaiAHQQEQLiACQcgEaiAAKQMANwMAIAJBwARqIAQpAwA3AwAgAkG4BGogAykDADcDACACQbAEaiABKQMANwMAIAJBiARqIAJBIGopAwA3AwAgAkGQBGogAkEoaikDADcDACACQZgEaiACQTBqKQMANwMAIAJBoARqIAJBOGopAwA3AwAgAiACKQOwATcDqAQgAiACKQMYNwOABCACQZgDakEAQcEAEEYgByACQYAEakHQABA5GiAHC0GYARA5GiACQegAaiEEAkACQAJAQcAAIAItAKgBIgNrIgEgCU0EQCAJIQYgCiEAIAMNAQwCCyADIARqIAogCRA5GiADIAlqIQMMAgsgAyAEaiAKIAEQORogAiACKQM4QgF8NwM4IAJBGGogBEEBEC4gASAKaiEAIAkgAWshBgsgBkE/cSEDIAZBwABPBEAgAiACKQM4IAZBBnYiAa18NwM4IAJBGGogACABEC4LIAQgACAGQUBxaiADEDkaCyACIAM6AKgBIAJBsAFqIgUgAkEYakGYARA5GiACQfgDaiIEQgA3AwAgAkHwA2oiA0IANwMAIAJB6ANqIgFCADcDACACQgA3A+ADIAJB6ARqIgZCADcDACACQeAEaiIMQgA3AwAgAkHYBGoiB0IANwMAIAJCADcD0AQgBSACQYACaiIAIAJB0ARqEDwgAkGYAmogBikDADcDACACQZACaiAMKQMANwMAIAJBiAJqIAcpAwA3AwAgAkEgOgDAAiACIAIpA9AENwOAAiACQdgBaiAAIAJB4ANqEDwgBiAEKQMANwMAIAwgAykDADcDACAHIAEpAwA3AwAgAiACKQPgAzcD0AQgAkEANgL8BSACQoCAgIAQNwL0BSACQfQFakEAQcAAEF0gBUEDciEMIAVBAnIhByAFQQFyIQRBgIDEACEDQQAhBgNAAkACQCADQYCAxABHBEBBgIDEACEBDAELIAZBIEYNASACQdAEaiAGaiAGQQFqIQYtAAAiAEEPcUG8ssAAai0AACEBIABBBHZBvLLAAGotAAAhAwsgA0GAAU8EQCACQQA2ArABAn8gA0GAEE8EQCADQYCABE8EQCACIANBEnZB8AFyOgCwASACIANBBnZBP3FBgAFyOgCyASACIANBDHZBP3FBgAFyOgCxASAMIQBBBAwCCyACIANBDHZB4AFyOgCwASACIANBBnZBP3FBgAFyOgCxASAHIQBBAwwBCyACIANBBnZBwAFyOgCwASAEIQBBAgshBSAAIANBP3FBgAFyOgAAIAUgAigC9AUgAigC/AUiA2tLBEAgAkH0BWogAyAFEF0gAigC/AUhAwsgAigC+AUgA2ogAkGwAWogBRA5GiACIAMgBWo2AvwFIAEhAwwCCyACKAL8BSIPIAIoAvQFRgRAIwBBIGsiCCQAIAJB9AVqIg4oAgAiDUF/RgRAQQBBAEGYs8AAEKEBAAtBCCANQQF0IgUgDUEBaiIAIAAgBUkbIgAgAEEITRsiBUEASARAQQBBAEGYs8AAEKEBAAsgCCANBH8gCCANNgIcIAggDigCBDYCFEEBBUEACzYCGCAIQQhqIAUgCEEUahB5IAgoAghBAUYEQCAIKAIMIAgoAhBBmLPAABChAQALIAgoAgwhACAOIAU2AgAgDiAANgIEIAhBIGokAAsgAigC+AUgD2ogAzoAACACIA9BAWo2AvwFIAEhAwwBCwsCQAJAAkAgCQRAIApBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIAlqSQ0BIABBACABIAlBJ2pLGw0CIAoQNQsgAiACQfQFakGsq8AAEGAgAigCBCEAIAsgAigCADYCACALIAA2AgQgAkGABmokAAwCC0HprMAAQS5BmK3AABCBAQALQaitwABBLkHYrcAAEIEBAAsgCygCACALKAIEIAtBEGokAAseACAARQRAEK4BAAsgACACIAMgBCAFIAEoAhARCgALHAAgAEUEQBCuAQALIAAgAiADIAQgASgCEBEOAAscACAARQRAEK4BAAsgACACIAMgBCABKAIQEQsACxwAIABFBEAQrgEACyAAIAIgAyAEIAEoAhARJQALHAAgAEUEQBCuAQALIAAgAiADIAQgASgCEBEnAAscACAARQRAEK4BAAsgACACIAMgBCABKAIQESkACzIBAXwQDyEAQfi5wABCADcDAEHwucAAIABEAAAAAABAj0CjRBgtRFT7IRlAELIBOQMACxoAIABFBEAQrgEACyAAIAIgAyABKAIQEQQACxgAIABFBEAQrgEACyAAIAIgASgCEBEBAAsYACAARQRAEK4BAAsgACACIAEoAhARAwALGgEBbyAAJQEgASUBEAEhAhBFIgAgAiYBIAALGgBBkLrAAEEBOgAAIAFBhAFPBEAgARCTAQsLFgAgAEGEAU8EQCAA0G8mASAAEIABCwsYAQFvIAAlASABEBohAhBFIgAgAiYBIAALFQAgACgCACIAQYQBTwRAIAAQkwELCxcBAX8gABAkIgE2AgQgACABQQBHNgIACxcBAX8gABAlIgE2AgQgACABQQBHNgIACxcBAX8gABAmIgE2AgQgACABQQBHNgIACxcBAX8gABAnIgE2AgQgACABQQBHNgIACxwAIABBADYCECAAQgA3AgggAEKAgICAwAA3AgALFgEBbyAAIAEQACECEEUiACACJgEgAAsWAgFvAX8gABAWIQEQRSICIAEmASACCxMAIAAQRSIAIAImASABIAAQkAELFAAgACgCACABIAAoAgQoAgwRAQALEAAgACUBIAEgAiADJQEQDgsRACAAJQEgASUBIAIlARAXGgsOACAARQRAIAIQgwELAAvCCAEFfyMAQfAAayIEJAAgBCADNgIMIAQgAjYCCAJAAkACQAJAAkACQCAEAn8gAAJ/AkAgAUGBAk8EQEEDIAAsAIACQb9/Sg0CGiAALAD/AUG/f0wNAUECDAILIAQgATYC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FgAAAP4AEAAKAAAA3wIAABUAAAD+ABAACgAAAKcAAAAeAAAA/gAQAAoAAACoAAAAMgAAAEEE7aUviXpcq8xRA0AMAAsR+BJmdAGgiD+zG/7BnRMM/gAQAAoAAADRAQAAIwAAAAAAAkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky//////////////////////////////////////////////////////////Pv///z80NTY3ODk6Ozw9/////////wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZ////////GhscHR4fICEiIyQlJicoKSorLC0uLzAxMjP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AP4AEAAKAAAABgIAAHMAAAD+ABAACgAAAAUCAABsAAAA/gAQAAoAAAAEAgAAaAAAAP4AEAAKAAAAKQIAABsAAABjYXBhY2l0eSBvdmVyZmxvdwAAACAGEAARAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yczwGEAAcAAAAKAIAABEAAABsaWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMAaAYQABsAAADqAQAAFwAAAO+/vQAuLgAAAQAAAAAAAABbY2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZWluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAADQBhAAIAAAAPAGEAASAAAAAAAAAAQAAAAEAAAAOQAAAD09YXNzZXJ0aW9uIGBsZWZ0ICByaWdodGAgZmFpbGVkCiAgbGVmdDogCiByaWdodDogAAAmBxAAEAAAADYHEAAXAAAATQcQAAkAAAAgcmlnaHRgIGZhaWxlZDogCiAgbGVmdDogAAAAJgcQABAAAABwBxAAEAAAAIAHEAAJAAAATQcQAAkAAAA6IAAAAQAAAAAAAACsBxAA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T2/hVJ28YVUAz2FWZdGhVgDaIVcA4KFYruIhWuzk4VvQ6GFcIADuXPABf10AcAAHAC0BAQECAQIBAUgLMBUQAWUHAgYCAgEEIwEeG1sLOgkJARgEAQkBAwEFKwM7CSoYASA3AQEBBAgEAQMHCgIdAToBAQECBAgBCQEKAhoBAgI5AQQCBAICAwMBHgIDAQsCOQEEBQECBAEUAhYGAQE6AQECAQQIAQcDCgIeATsBAQEMAQkBKAEDATcBAQMFAwEEBwILAh0BOgECAgEBAwMBBAcCCwIcAjkCAQECBAgBCQEKAh0BSAEEAQIDAQEIAVEBAgcMCGIBAgkLB0kCGwEBAQEBNw4BBQECBQsBJAkBZgQBBgECAgIZAgQDEAQNAQICBgEPAQADAAQcAx0CHgJAAgEHCAECCwkBLQMBAXUCIgF2AwQCCQEGA9sCAgE6AQEHAQEBAQIIBgoCATAfMQQwCgQDJgkMAiAEAgY4AQECAwEBBTgIAgKYAwENAQcEAQYBAwLGQAABwyEAA40BYCAABmkCAAQBCiACUAIAAQMBBAEZAgUBlwIaEg0BJggZCwEBLAMwAQIEAgICASQBQwYCAgICDAEIAS8BMwEBAwICBQIBASoCCAHuAQIBBAEAAQAQEBAAAgAB4gGVBQADAQIFBCgDBAGlAgAEQQUAAk8ERgsxBHsBNg8pAQICCgMxBAICBwE9AyQFAQg+AQwCNAkBAQgEAgFfAwIEBgECAZ0BAwgVAjkCAQEBAQwBCQEOBwMFQwECBgEBAgEBAwQDAQEOAlUIAgMBARcBUQECBgEBAgEBAgEC6wECBAYCAQIbAlUIAgEBAmoBAQECCGUBAQECBAEFAAkBAvUBCgQEAZAEAgIEASAKKAYCBAgBCQYCAy4NAQIABwEGAQFSFgIHAQIBAnoGAwEBAgEHAQFIAgMBAQEAAgsCNAUFAxcBAAEGDwAMAwMABTsHAAE/BFEBCwIAAgAuAhcABQMGCAgCBx4ElAMANwQyCAEOARYFAQ8ABwERAgcBAgEFZAGgBwABPQQABP4CAAdtBwBggPAAcmV0dXJuIHRoaXMAALgaEABqAAAAJAEAAA4AAAABAAAAL2hvbWUvam9zaC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL29uY2VfY2VsbC0xLjIxLjMvc3JjL2ltcF9zdGQucnMAwBUQAF8AAACbAAAACQAAAMAVEABfAAAAoQAAADYAAAAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi43L3NyYy9kbG1hbGxvYy5yc2Fzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAQBYQACkAAACoBAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplIDw9IHNpemUgKyBtYXhfb3ZlcmhlYWQAAEAWEAApAAAArgQAAA0AAAB1c2Ugb2Ygc3RkOjp0aHJlYWQ6OmN1cnJlbnQoKSBpcyBub3QgcG9zc2libGUgYWZ0ZXIgdGhlIHRocmVhZCdzIGxvY2FsIGRhdGEgaGFzIGJlZW4gZGVzdHJveWVkAADoFhAAXgAAAGxpYnJhcnkvc3RkL3NyYy90aHJlYWQvY3VycmVudC5ycwAAAFAXEAAhAAAA/gAAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvdGhyZWFkL21vZC5yc2ZhaWxlZCB0byBnZW5lcmF0ZSB1bmlxdWUgdGhyZWFkIElEOiBiaXRzcGFjZSBleGhhdXN0ZWShFxAANwAAAIQXEAAdAAAArgQAAA0AAADQGBAAWwAAAAgDAAAZAAAAcmVlbnRyYW50IGluaXQAAAAYEAAOAAAA0BgQAFsAAAB6AgAADQAAAEpzVmFsdWUoKQAAACgYEAAIAAAAMBgQAAEAAABjbG9zdXJlIGludm9rZWQgcmVjdXJzaXZlbHkgb3IgYWZ0ZXIgYmVpbmcgZHJvcHBlZFV0ZjhFcnJvcnZhbGlkX3VwX3RvZXJyb3JfbGVuTm9uZVNvbWVMYXp5IGluc3RhbmNlIGhhcyBwcmV2aW91c2x5IGJlZW4gcG9pc29uZWQAAACbGBAAKgAAAC9ob21lL2pvc2gvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9vbmNlX2NlbGwtMS4yMS4zL3NyYy9saWIucnMA0BgQAFsAAAAfBQAAGQAAADAxMjM0NTY3ODlhYmNkZWYvcnVzdGMvNGViMTYxMjUwZTM0MGM4ZjQ4ZjY2ZTJiOTI5ZWY0YTViZWQ3YzE4MS9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMATBkQAEsAAACNBQAAGwAAAC9ydXN0Yy80ZWIxNjEyNTBlMzQwYzhmNDhmNjZlMmI5MjllZjRhNWJlZDdjMTgxL2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMucnOoGRAATAAAACgCAAARAAAARnJvbVV0ZjhFcnJvcmJ5dGVzZXJyb3IvaG9tZS9qb3NoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYmFzZTY0LTAuMjIuMS9zcmMvZW5naW5lL21vZC5ycwAAGxoQAF8AAAB7AAAAGwAAADIAAAAUAAAABAAAADMAAABJbnZhbGlkIFVURjgbGhAAXwAAAH8AAAAkAAAAL2hvbWUvam9zaC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3dhc20tYmluZGdlbi0wLjIuMTAwL3NyYy9jb252ZXJ0L3NsaWNlcy5ycwAAuBoQAGoAAADoAAAAAQBBvrbAAAsT8D8AAAAAAAAAgAAAAAAAAAAAHwBB27bAAAsKgAAAAAAAAAAAIABB77bAAAsKgAAAAAAAAAAAIQBBg7fAAAsKgAAAAAAAAAAAIgBBl7fAAAsKgAAAAAAAAAAAIwBBq7fAAAsKgAAAAAAAAAAAJABBv7fAAAsKgAAAAAAAAAAAJQBB07fAAAsKgAAAAAAAAAAAJgBB57fAAAsKgAAAAAAAAAAAJwBB+7fAAAsKgAAAAAAAAAAAKABBj7jAAAsKgAAAAAAAAAAAKQBBo7jAAAsKgAAAAAAAAAAAKgBBt7jAAAsKgAAAAAAAAAAAKwBBy7jAAAsKgAAAAAAAAAAALABB37jAAAsKgAAAAAAAAAAALQBB87jAAAsKgAAAAAAAAAAALgBBh7nAAAs+gAAAAAAAAAAALwAAAD0AAAACAAAAAAAAAD4AAAACAAAAAAAAAD8AAAACAAAAAAAAAEAAAAACAAAAAAAAAEEAQeC5wAALAUIAcAlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkDBXJ1c3RjHTEuODUuMSAoNGViMTYxMjUwIDIwMjUtMDMtMTUpBndhbHJ1cwYwLjIzLjMMd2FzbS1iaW5kZ2VuBzAuMi4xMDAASQ90YXJnZXRfZmVhdHVyZXMEKw9tdXRhYmxlLWdsb2JhbHMrCHNpZ24tZXh0Kw9yZWZlcmVuY2UtdHlwZXMrCm11bHRpdmFsdWU=");var oe={processListeners:[],processDate:null},ct={},k;Object.assign(ct,ot(()=>k,oe));var Ct=async()=>{k=(await WebAssembly.instantiate(nt,ct)).instance.exports;let A=I=>Math.floor(Math.random()*I)+1;k.start();let[t,e]=J(k,[...Array(14)].map(()=>Math.random().toString(36)[2]).join(""));k.set_mouse_params(50,1,.9,!1,t,e);for(let I=0;I<5;I++)sA.pointermove({movementX:A(5),movementY:A(10)})};l.isBrowser?Ct():await Ct();var rt=B=>{let A,t;try{let[e,I]=J(k,B),s=k.validate(e,I);return A=s[0],t=s[1],S(k,A,t)}finally{k.__wbindgen_free(A,t,1)}},Et=B=>{for(;B<0;)B+=2*Math.PI;for(;B>=2*Math.PI;)B-=2*Math.PI;return B},ne=(B,A,t,e)=>{let I=Et(B),g=Et(t)-I;Math.abs(g)>Math.PI&&(g=g>0?g-2*Math.PI:g+2*Math.PI);let Q=e-A,a=.0025,n=.0025,E=Math.round(-g/a),C=Math.round(-Q/n);return{movementX:E,movementY:C}};var ht=(B,A)=>{let t=k.get_yaw_pitch(),e=ne(t.yaw,t.pitch,B,A);return sA.pointermove({movementX:e.movementX,movementY:e.movementY}),k.get_yaw_pitch().coords};var X=class{connected=!1;onceConnected=[];regionList=[];proxy=null;sessionId="";onListeners=new Map;onceListeners=new Map;#A=!1;#t=!1;constructor(A={}){this.#A=A.noExitOnError||!1,A.instance||(A.instance="shellshock.io"),A.protocol||(A.protocol="wss"),A.api?this.api=A.api:this.api=new gA({proxy:A.proxy,protocol:A.protocol,instance:A.instance,connectionTimeout:A.connectionTimeout}),A.sessionId||A.noLogin?this.sessionId=A.sessionId:this.#e(),A.proxy&&l.isBrowser?this.#g("proxies do not work and hence are not supported in the browser"):A.proxy&&(this.proxy=A.proxy),this.#i(A.instance,A.protocol,A.noLogin,A.connectionTimeout)}async#i(A,t,e,I){if(this.ws=new Y(`${t}://${A}/matchmaker/`,this.proxy),this.ws.connectionTimeout=I||5e3,!await this.ws.tryConnect())return this.#g("WebSocket did not connect...");this.ws.onmessage=g=>{let Q=JSON.parse(g.data);if(Q.command==="validateUUID")return this.ws.send(JSON.stringify({command:"validateUUID",hash:rt(Q.uuid)}));this.#I("msg",Q)},this.ws.onclose=()=>{this.connected=!1,this.#t||this.#i(A,t,e,I)},this.connected=!0,(this.sessionId||e)&&this.onceConnected.forEach(g=>g())}async#e(){let A=await this.api.loginAnonymously();(!A||typeof A=="string")&&this.#I("authFail",A),this.sessionId=A.sessionId,this.connected&&this.onceConnected.forEach(t=>t())}send(A){this.ws.send(JSON.stringify(A))}async waitForConnect(){return new Promise(A=>{this.connected?A():this.onceConnected.push(A)})}async getRegions(){await this.waitForConnect();let A=this;return new Promise(t=>{let e=I=>{I.command==="regionList"&&(this.regionList=I.regionList,this.off("msg",e),t(I.regionList))};this.on("msg",e),this.ws.onerror=I=>A.#g("failed to get regions",I),this.ws.send(JSON.stringify({command:"regionList"}))})}close(){this.#t=!0,this.connected=!1,this.ws.close()}on(A,t){this.onListeners.has(A)||this.onListeners.set(A,[]),this.onListeners.get(A).push(t)}once(A,t){this.onceListeners.has(A)||this.onceListeners.set(A,[]),this.onceListeners.get(A).push(t)}off(A,t){this.onListeners.has(A)&&this.onListeners.set(A,this.onListeners.get(A).filter(e=>e!==t)),this.onceListeners.has(A)&&this.onceListeners.set(A,this.onceListeners.get(A).filter(e=>e!==t))}#I(A,...t){this.onListeners.has(A)&&this.onListeners.get(A).forEach(e=>e(...t)),this.onceListeners.has(A)&&(this.onceListeners.get(A).forEach(e=>e(...t)),this.onceListeners.delete(A))}#g(A){this.onListeners.has("error")?this.#I("error",A):(console.error(A),this.#A||process.exit(1))}},dt=X;var Ce=(B,A)=>(B%A+A)%A,Ee=Math.PI*2,lt=B=>Math.round(B*8192)/8192,ce=B=>lt(Ce(Math.atan2(-B.x,-B.z),Ee)),re=B=>lt(Math.atan2(B.y,Math.hypot(B.x,B.z))),RA=class{constructor(A){this.pos=A}validate(){return this.pos&&this.pos.x&&this.pos.y&&this.pos.z}check(A){return A.me.playing}execute(A){let t={x:this.pos.x-A.me.position.x,y:this.pos.y-A.me.position.y,z:this.pos.z-A.me.position.z},e=ce(t),I=re(t);A.state.yaw=e,A.state.pitch=I}},j=RA;var SA=class{constructor(A){typeof A=="number"?this.inputKeys=A:typeof A==typeof[]&&(this.inputKeys=A.reduce((t,e)=>t|e,0))}validate(){return!(typeof this.inputKeys!="number"||this.inputKeys&y.Forward&&this.inputKeys&y.Backward||this.inputKeys&y.Left&&this.inputKeys&y.Right)}check(A){return A.me.playing}execute(A){A.state.controlKeys=this.inputKeys}},W=SA;var BA=class{constructor(A,t){this.x=t.x,this.y=t.y,this.z=t.z,this.positionStr=`${this.x},${this.y},${this.z}`,this.position={x:this.x,y:this.y,z:this.z},this.meshType=A.split(".").pop(),this.f=0,this.g=0,this.h=0,this.visited=null,this.parent=null,this.closed=null,this.links=[],this.isStair()&&(t.ry?this.ry=t.ry:this.ry=0)}isFull(){return this.meshType==="full"}canWalkThrough(){return this.meshType==="none"||this.meshType==="ladder"}canWalkOn(){return this.meshType==="full"}isLadder(){return this.meshType==="ladder"}isStair(){return this.meshType==="wedge"}isAir(){return this.meshType==="none"}canLink(A,t){let e=this.x-A.x,I=this.z-A.z,s=this.y-A.y,g=Math.abs(e),Q=Math.abs(s),a=Math.abs(I);if(g+Q+a===0||g+a>1||this.isFull()||A.isFull())return!1;let n=t.at(this.x,this.y-1,this.z),E=t.at(A.x,A.y-1,A.z);if(!n||!E)return!1;let C={0:{x:0,z:-1},1:{x:-1,z:0},2:{x:0,z:1},3:{x:1,z:0}};switch(this.meshType){case"none":return!!(s===1&&A.canWalkThrough()||(n.canWalkOn()||n.isLadder())&&(A.meshType==="none"||A.meshType==="ladder"&&Q===0||A.meshType==="wedge"&&s===0&&e===-C[A.ry].x&&I===-C[A.ry].z));case"ladder":return!!(Q===1&&A.canWalkThrough()||Q===0&&n.canWalkOn()||A.meshType==="ladder"&&(Q===1||n.canWalkOn()&&E.canWalkOn()));case"wedge":return this.x+C[this.ry].x===A.x&&this.z+C[this.ry].z===A.z&&this.y+1===A.y||this.x-C[this.ry].x===A.x&&this.z-C[this.ry].z===A.z&&(this.y===A.y||this.y-1===A.y);default:return!1}}flatCenter(){return{x:this.x+.5,y:this.y+0,z:this.z+.5}}flatRadialDistance(A){let t=this.flatCenter();return Math.hypot(t.x-A.x,t.z-A.z)}},QA=class{list=[];constructor(A){let t={};for(let I of Object.keys(A.data))for(let s of A.data[I])t[s.x<<16|s.y<<8|s.z]=!0,this.list.push(new BA(I,s));for(let I=0;I<A.width;I++)for(let s=0;s<A.height;s++)for(let g=0;g<A.depth;g++)t[I<<16|s<<8|g]||this.list.push(new BA("SPECIAL.air.none",{x:I,y:s,z:g}));let e=new Map;for(let I of this.list)e.set(I.positionStr,I);for(let I of this.list){let s=[{x:I.x+1,y:I.y,z:I.z},{x:I.x-1,y:I.y,z:I.z},{x:I.x,y:I.y+1,z:I.z},{x:I.x,y:I.y-1,z:I.z},{x:I.x,y:I.y,z:I.z+1},{x:I.x,y:I.y,z:I.z-1}];for(let g of s){let Q=`${g.x},${g.y},${g.z}`,a=e.get(Q);a&&I.canLink(a,this)&&I.links.push(a)}}}at(A,t,e){if(!this.nodeMap){this.nodeMap=new Map;for(let s of this.list){let g=`${s.x},${s.y},${s.z}`;this.nodeMap.set(g,s)}}let I=`${A},${t},${e}`;return this.nodeMap.get(I)}clean(){for(let A of this.list)A.f=0,A.g=0,A.h=0,A.visited=null,A.parent=null,A.closed=null}hasLineOfSight(A,t){let e=t.x-A.x,I=t.y-A.y,s=t.z-A.z,g=Math.max(Math.abs(e),Math.abs(I),Math.abs(s)),Q=e/g,a=I/g,n=s/g,E=A.x,C=A.y,h=A.z;for(let u=0;u<=g;u++){let N=this.at(Math.round(E),Math.round(C),Math.round(h));if(N&&N.isFull())return!1;E+=Q,C+=a,h+=n}return!0}};var wt=async(B,A)=>{if(l.isIsolated)return await(await fetch(`https://esm.sh/gh/yolkorg/maps/maps/${B}.json?${A}`)).json();{let{existsSync:t,mkdirSync:e,readFileSync:I,writeFileSync:s}={},{join:g}={},{homedir:Q}={},a=g(Q(),".yolkbot"),n=g(a,"maps");t(a)||e(a),t(n)||e(n);let E=g(n,`${B}-${A}.json`);if(t(E))return JSON.parse(I(E,"utf-8"));let C=await(await fetch(`https://esm.sh/gh/yolkorg/maps/maps/${B}.json?${A}`)).json();return s(E,JSON.stringify(C,null,4),{flag:"w+"}),C}},mt=B=>{let A=0,t={},e=[];for(let g of B)t[g.x]||(t[g.x]={}),t[g.x][g.y]||(t[g.x][g.y]={}),t[g.x][g.y][g.z]={zone:null};let I=[{x:-1,z:0},{x:1,z:0},{x:0,z:-1},{x:0,z:1}],s=(g,Q,a)=>t[g]&&t[g][Q]&&t[g][Q][a]?t[g][Q][a]:null;for(let g of B)if(!t[g.x][g.y][g.z].zone){g.zone=++A,t[g.x][g.y][g.z].zone=g.zone;let Q=[g],a;do{a=0;for(let n of B)if(!t[n.x][n.y][n.z].zone)for(let E of I){let C=s(n.x+E.x,n.y,n.z+E.z);if(C&&C.zone===g.zone){a++,n.zone=g.zone,t[n.x][n.y][n.z].zone=g.zone,Q.push(n);break}}}while(a>0);e.push(Q)}return e};var yt=[];var _=[];var UA=[];var Dt=Object.fromEntries(Object.entries(m).map(([B,A])=>[A,B])),pt=Object.fromEntries(Object.entries(uA).map(([B,A])=>[B[0].toLowerCase()+B.slice(1),A])),ut={CHALLENGES:1,BOT_STATS:2,PATHFINDING:3,PING:5,COSMETIC_DATA:6,PLAYER_HEALTH:7,PACKET_HOOK:8,LOG_PACKETS:10,NO_LOGIN:11,DEBUG_BUFFER:12,NO_AFK_KICK:16,LOAD_MAP:17,OBSERVE_GAME:18,NO_REGION_CHECK:19,NO_EXIT_ON_ERROR:20,RENEW_SESSION:21,VIP_HIDE_BADGE:22},LA=(B,A)=>(B%A+A)%A,aA=class{static Intents=ut;Intents=ut;#A=[];#t={};#i=[];#e;#I;constructor(A={}){A.proxy&&l.isBrowser&&this.processError("proxies do not work and hence are not supported in the browser"),this.intents=A.intents||[],this.intents.includes(this.Intents.COSMETIC_DATA)&&(r(1001)||this.processError("you cannot use the COSMETIC_DATA intent inside of the singlefile browser bundles")),this.instance=A.instance||"shellshock.io",this.protocol=A.protocol||"wss",this.proxy=A.proxy||"",this.connectionTimeout=A.connectionTimeout||5e3,this.state={name:"yolkbot",weaponIdx:0,inGame:!1,chatLines:0,yaw:0,pitch:0,controlKeys:0,reloading:!1,swappingGun:!1,usingMelee:!1,stateIdx:0,serverStateIdx:0,shotsFired:0,buffer:[],left:!1},this.players={},this.me=new iA({}),this.game={raw:{},code:"",socket:null,gameModeId:0,gameMode:Dt[0],mapIdx:0,map:{filename:"",hash:"",name:"",modes:{FFA:!1,Teams:!1,Spatula:!1,King:!1},availability:"both",numPlayers:"18",raw:{},nodes:{},zones:[]},playerLimit:0,isGameOwner:!1,isPrivate:!0,options:{gravity:1,damage:1,healthRegen:1,locked:!1,noTeamChange:!1,noTeamShuffle:!1,weaponsDisabled:Array(7).fill(!1),mustUseSecondary:!1},collectables:[[],[]],teamScore:[0,0,0],spatula:{coords:{x:0,y:0,z:0},controlledBy:0,controlledByTeam:0},stage:tA.Capturing,zoneNumber:0,activeZone:[],capturing:0,captureProgress:0,numCapturing:0,capturePercent:0},this.#I=this.game,this.account={id:0,firebase:{idToken:"",refreshToken:"",expiresIn:"3600",localId:""},firebaseId:"",sessionId:"",session:0,email:"",password:"",cw:{atLimit:!1,limit:0,secondsUntilPlay:0,canPlayAgain:Date.now()},loadout:{hatId:null,meleeId:0,stampId:null,classIdx:0,colorIdx:0,grenadeId:0,primaryId:[3100,3600,3400,3800,4e3,4200,4500],secondaryId:new Array(7).fill(3e3),stampPositionX:0,stampPositionY:0},ownedItemIds:[],vip:!1,emailVerified:!1,isAged:!1,eggBalance:0,adminRoles:0,rawLoginData:{},isDoubleEggWeeknd:()=>{let t=new Date().getUTCDay(),e=new Date().getUTCHours();return t>=5&&e>=20||t===6||t===0}},this.#e=this.account,this.matchmaker=null,this.api=new gA({proxy:this.proxy,protocol:this.protocol,instance:this.instance,maxRetries:A?.apiMaxRetries,connectionTimeout:this.connectionTimeout}),this.ping=0,this.lastPingTime=-1,this.lastDeathTime=-1,this.lastUpdateTick=0,this.pathing={nodeList:null,followingPath:!1,activePath:null,activeNode:null,activeNodeIdx:0},this.hasQuit=!1,this.intents.includes(this.Intents.NO_AFK_KICK)&&(this.afkKickInterval=0),this.intents.includes(this.Intents.RENEW_SESSION)&&(this.renewSessionInterval=0)}dispatch(A){return A.validate(this)?(A.check(this)?A.execute(this):this.#A.push(A),!0):!1}async createAccount(A,t){this.account=this.#e,this.account.email=A,this.account.password=t;let e=await this.api.createAccount(A,t);return this.processLoginData(e)}async login(A,t){this.account=this.#e,this.account.email=A,this.account.password=t;let e=await this.api.loginWithCredentials(A,t);return this.processLoginData(e)}async loginWithRefreshToken(A){this.account=this.#e;let t=await this.api.loginWithRefreshToken(A);return this.processLoginData(t)}async loginAnonymously(){this.account=this.#e;let A=await this.api.loginAnonymously();return this.processLoginData(A)}processLoginData(A){return typeof A!="object"?(this.emit("authFail",A),A):A.banRemaining?(this.emit("banned",A.banRemaining),"account_banned"):A.playerOutput?(this.account.firebase=A.firebase||{},A=A.playerOutput,this.account.rawLoginData=A,this.account.adminRoles=A.adminRoles||0,this.account.eggBalance=A.currentBalance,this.account.emailVerified=A.emailVerified,this.account.firebaseId=A.firebaseId,this.account.id=A.id,this.account.isAged=new Date(A.dateCreated).getTime()<17145468e5,this.account.loadout=A.loadout,this.account.ownedItemIds=A.ownedItemIds,this.account.session=A.session,this.account.sessionId=A.sessionId,this.account.vip=A.active_sub==="IsVIP",this.intents.includes(this.Intents.BOT_STATS)&&(this.account.stats={lifetime:A.statsLifetime,monthly:A.statsCurrent}),this.intents.includes(this.Intents.CHALLENGES)&&this.#g(A.challenges),this.emit("authSuccess",this.account),this.intents.includes(this.Intents.RENEW_SESSION)&&(this.renewSessionInterval=setInterval(async()=>{if(!this.account?.sessionId)return clearInterval(this.renewSessionInterval);(await this.api.queryServices({cmd:"renewSession",sessionId:this.account.sessionId})).data!=="renewed"&&this.emit("sessionExpired")},6e5)),this.account):(this.emit("authFail",A),A)}#g(A){this.account.challenges=[];for(let t of A){let e=yt.find(I=>I.id===t.challengeId);e&&(delete t.playerId,this.account.challenges.push({raw:{challengeInfo:e,challengeData:t},id:t.challengeId,name:e.loc.title,desc:e.loc.desc,rewardEggs:e.reward,isRerolled:!!t.reset,isClaimed:!!t.claimed,isCompleted:!!t.completed,progressNum:t.progress,goalNum:e.goal}))}}async initMatchmaker(){if(!this.account.sessionId&&!this.intents.includes(this.Intents.NO_LOGIN)){let A=await this.loginAnonymously();if(typeof A!="object")return A}if(!this.matchmaker){if(this.matchmaker=new dt({api:this.api,proxy:this.proxy,protocol:this.protocol,instance:this.instance,sessionId:this.account.sessionId,connectionTimeout:this.connectionTimeout,noLogin:this.intents.includes(this.Intents.NO_LOGIN)}),!await this.matchmaker.ws.tryConnect())return"matchmaker_tryconnect_failed";this.matchmaker.on("authFail",t=>this.emit("authFail",t)),this.matchmaker.on("error",t=>this.processError(t))}return!0}async findPublicGame(A,t){return typeof A!="string"?"no_region_passed":!UA.find(I=>I.id===A)&&!this.intents.includes(this.Intents.NO_REGION_CHECK)?"invalid_region_passed":typeof t!="number"?"no_mode_passed":Object.values(m).indexOf(t)===-1?"invalid_mode_passed":await this.initMatchmaker()?await new Promise(I=>{let s=g=>{if(g.command!=="notice"){if(this.matchmaker.off("msg",s),g.command==="gameFound")return I(g);if(g.error==="sessionNotFound")return I("internal_session_error");this.processError("unknown matchmaker response "+JSON.stringify(g))}};this.matchmaker.on("msg",s),this.matchmaker.send({command:"findGame",region:A,playType:eA.JoinPublic,gameType:t,sessionId:this.account.sessionId})}):"matchmaker_init_fail"}async createPrivateGame(A,t,e){if(typeof A!="string")return"no_region_passed";if(!UA.find(g=>g.id===A)&&!this.intents.includes(this.Intents.NO_REGION_CHECK))return"invalid_region_passed";if(typeof t!="number")return"no_mode_passed";if(Object.values(m).indexOf(t)===-1)return"invalid_mode_passed";if(typeof e!="string")return"no_map_passed";let I=_.findIndex(g=>g.name.toLowerCase()===e.toLowerCase());return I===-1?"invalid_map_passed":await this.initMatchmaker()?await new Promise(g=>{let Q=a=>{if(a.command!=="notice"){if(this.matchmaker.off("msg",Q),a.command==="gameFound")return g(a);if(a.error==="sessionNotFound")return g("internal_session_error");this.processError("unknown matchmaker response "+JSON.stringify(a))}};this.matchmaker.on("msg",Q),this.matchmaker.send({command:"findGame",region:A,playType:eA.CreatePrivate,gameType:t,sessionId:this.account.sessionId,noobLobby:!1,map:I})}):"matchmaker_init_fail"}async join(A,t){if(this.state.name=A||"yolkbot",typeof t=="string"){if(t.includes("#")&&(t=t.split("#")[1]),!await this.initMatchmaker())return"matchmaker_init_fail";if(await new Promise(g=>{let Q=a=>{if(a.command==="gameFound"&&(this.matchmaker.off("msg",Q),this.game.raw=a,this.game.code=a.id,g(a.id)),a.error&&a.error==="gameNotFound")return this.processError(`game "${t}" not found, it may have expired.`),this.leave(),"gameNotFound"};this.matchmaker.on("msg",Q),this.matchmaker.send({command:"joinGame",id:t,observe:!1,sessionId:this.account.sessionId})})==="gameNotFound")return"game_not_found";if(!this.game.raw.id)return this.processError("an internal error occured while joining the game, please report this to developers")}if(typeof t=="object"&&(this.account.id===0&&await this.loginAnonymously(),this.game.raw=t,this.game.code=this.game.raw.id,!this.game.raw.id||!this.game.raw.subdomain||!this.game.raw.uuid))return"invalid_game_object";let e=this.game.raw.host||(this.instance.startsWith("localhost:")?this.instance:`${this.game.raw.subdomain}.${this.instance}`);return this.game.socket=new Y(`${this.protocol}://${e}/game/${this.game.raw.id}`,this.proxy),this.game.socket.binaryType="arraybuffer",this.game.socket.connectionTimeout=this.connectionTimeout,this.game.socket.onBeforeConnect=()=>{this.game.socket.onmessage=s=>this.processPacket(s.data),this.game.socket.onclose=s=>{this.state.left?this.state.left=!1:(this.emit("close",s.code),this.leave(-1))}},await this.game.socket.tryConnect()?!0:"websocket_tryconnect_fail"}#s(){if(Object.entries(this.me.position).map(t=>Math.floor(t[1])).join(",")===this.pathing.activePath[this.pathing.activePath.length-1].positionStr)this.pathing.followingPath=!1,this.pathing.activePath=null,this.pathing.activeNode=null,this.pathing.activeNodeIdx=0,this.dispatch(new W(0));else{let t;this.pathing.activeNodeIdx<this.pathing.activePath.length-1?(t=this.pathing.activePath[this.pathing.activeNodeIdx+1].flatCenter(),this.dispatch(new j(t))):(t=this.pathing.activePath[this.pathing.activeNodeIdx].flatCenter(),this.dispatch(new j(t)));for(let e of this.pathing.activePath)if(e.flatRadialDistance(this.me.position)<.1&&e.position.y===Math.floor(this.me.position.y)&&this.pathing.activePath.indexOf(e)>=this.pathing.activeNodeIdx){this.pathing.activeNodeIdx=this.pathing.activePath.indexOf(e)+1,this.pathing.activeNode=this.pathing.activePath[this.pathing.activeNodeIdx];break}this.state.controlKeys&y.Forward||this.dispatch(new W(y.Forward))}}update(){if(this.hasQuit)return;this.pathing.followingPath&&this.intents.includes(this.Intents.PATHFINDING)&&this.#s();for(let t=0;t<this.#A.length;t++){let e=this.#A[t];e.check(this)&&(e.execute(this),this.#A.splice(t,1))}if(this.state.chatLines=Math.max(0,this.state.chatLines-1/120),this.me.playing){let t=this.state.stateIdx;if(this.intents.includes(this.Intents.DEBUG_BUFFER)&&(console.log("setting buffer for idx",t),console.log("checking...shotsFired",this.state.shotsFired)),this.me.jumping=!!(this.state.controlKeys&y.Jump),this.state.buffer[t]={controlKeys:this.state.controlKeys,yaw:this.state.yaw,pitch:this.state.pitch,shotsFired:this.state.shotsFired},this.state.shotsFired=0,this.lastUpdateTick>=2){this.emit("tick");let e=new c;e.packInt8(o.syncMe),e.packInt8(this.state.stateIdx),e.packInt8(this.state.serverStateIdx);let I=LA(this.state.stateIdx-U+1,T);for(let s=0;s<U;s++){let g=LA(I+s,T),Q=this.state.buffer[g]||{},a=Q.controlKeys||0,n=Q.shotsFired||0,E=Q.yaw??this.state.yaw,C=Q.pitch??this.state.pitch;this.intents.includes(this.Intents.DEBUG_BUFFER)&&console.log("going with",this.state.stateIdx,I,g,Q),e.packInt8(a),e.packInt8(n),e.packString(ht(E,C)),e.packInt8(100)}e.send(this.game.socket),this.state.buffer=[],this.lastUpdateTick=0}else this.lastUpdateTick++;this.state.stateIdx=LA(this.state.stateIdx+1,T)}if(!this.intents.includes(this.Intents.PLAYER_HEALTH))return;let A=.1*(this.game.isPrivate?this.game.options.healthRegen:1);for(let t of Object.values(this.players)){if(t.playing&&t.hp>0){let e=t.streakRewards.includes(d.OverHeal);t.hp+=e?-A:A,t.hp=e?Math.max(100,t.hp):Math.min(100,t.hp)}t.spawnShield>0&&(t.spawnShield-=6)}}on(A,t){Object.keys(this.#t).includes(A)?this.#t[A].push(t):this.#t[A]=[t]}once(A,t){let e=(...I)=>{t(...I),this.off(A,e)};this.on(A,e)}onAny(A){this.#i.push(A)}off(A,t){t?this.#t[A]=this.#t[A].filter(e=>e!==t):this.#t[A]=[]}emit(A,...t){if(!this.hasQuit){if(this.#t[A])for(let e of this.#t[A])e(...t);for(let e of this.#i)e(A,...t)}}#B(){let A=i.unPackInt8U(),t=i.unPackInt8U(),e=i.unPackString().valueOf(),I=this.players[A];this.emit("chat",I,e,t)}#Q(){let A=i.unPackInt8U(),t=this.intents.includes(this.Intents.COSMETIC_DATA),e={id:A,uniqueId:i.unPackString(),name:i.unPackString(),safeName:i.unPackString(),charClass:i.unPackInt8U(),team:i.unPackInt8U(),primaryWeaponItem:t?r(i.unPackInt16U()):i.unPackInt16U(),secondaryWeaponItem:t?r(i.unPackInt16U()):i.unPackInt16U(),shellColor:i.unPackInt8U(),hatItem:t?r(i.unPackInt16U()):i.unPackInt16U(),stampItem:t?r(i.unPackInt16U()):i.unPackInt16U(),stampPosX:i.unPackInt8(),stampPosY:i.unPackInt8(),grenadeItem:t?r(i.unPackInt16U()):i.unPackInt16U(),meleeItem:t?r(i.unPackInt16U()):i.unPackInt16U(),x:i.unPackFloat(),y:i.unPackFloat(),z:i.unPackFloat(),$dx:i.unPackFloat(),$dy:i.unPackFloat(),$dz:i.unPackFloat(),yaw:i.unPackRadU(),pitch:i.unPackRad(),score:i.unPackInt32U(),$kills:i.unPackInt16U(),$deaths:i.unPackInt16U(),$streak:i.unPackInt16U(),totalKills:i.unPackInt32U(),totalDeaths:i.unPackInt32U(),bestStreak:i.unPackInt16U(),$bestOverallStreak:i.unPackInt16U(),shield:i.unPackInt8U(),hp:i.unPackInt8U(),playing:i.unPackInt8U(),weaponIdx:i.unPackInt8U(),$controlKeys:i.unPackInt8U(),upgradeProductId:i.unPackInt8U(),activeShellStreaks:i.unPackInt8U(),social:i.unPackLongString(),hideBadge:i.unPackInt8U()};this.game.mapIdx=i.unPackInt8U(),this.game.isPrivate=i.unPackInt8U()===1,this.game.gameModeId=i.unPackInt8U();let I=new iA(e,this.game.gameMode===m.KOTC?this.game.activeZone:null);this.players[e.id]||(this.players[e.id]=I),this.emit("playerJoin",I),this.me.id===e.id&&(this.me=I,this.emit("botJoin",this.me))}#a(){let A=i.unPackInt8U(),t=i.unPackInt16U(),e=i.unPackFloat(),I=i.unPackFloat(),s=i.unPackFloat(),g=i.unPackInt8U(),Q=i.unPackInt8U(),a=i.unPackInt8U(),n=i.unPackInt8U(),E=i.unPackInt8U(),C=this.players[A];C&&(C.playing=!0,C.randomSeed=t,C.weapons[0]&&C.weapons[0].ammo&&(C.weapons[0].ammo.rounds=g),C.weapons[0]&&C.weapons[0].ammo&&(C.weapons[0].ammo.store=Q),C.weapons[1]&&C.weapons[1].ammo&&(C.weapons[1].ammo.rounds=a),C.weapons[1]&&C.weapons[1].ammo&&(C.weapons[1].ammo.store=n),C.grenades=E,C.position={x:e,y:I,z:s},C.spawnShield=120,this.emit("playerRespawn",C))}#o(){let A=i.unPackInt8U(),t=i.unPackFloat(),e=i.unPackFloat(),I=i.unPackFloat(),s=i.unPackInt8U(),g=this.players[A];if(!g||g.id===this.me.id){for(let G=0;G<U;G++)i.unPackInt8U(),i.unPackRadU(),i.unPackRad(),i.unPackInt8U();return}for(let G=0;G<U;G++){let V=i.unPackInt8U();V&y.Jump?g.jumping=!0:g.jumping=!1,V&y.Scope?g.scoping=!0:g.scoping=!1;let K={...g.view};g.view.yaw=i.unPackRadU(),g.view.pitch=i.unPackRad(),(g.view.yaw!==K.yaw||g.view.pitch!==K.pitch)&&this.emit("playerRotate",g,K,g.view),g.scale=i.unPackInt8U()}let Q=g.position,a=Q.x!==t||Q.y!==e||Q.z!==I,n=g.climbing!==s,E=a||n,C=E?{...Q}:null;if(Q.x!==t&&(Q.x=t),Q.z!==I&&(Q.z=I),(!g.jumping||Math.abs(Q.y-e)>.5)&&(Q.y=e),n&&(g.climbing=s),!E||(this.emit("playerMove",g,C,Q),this.game.gameModeId!==m.KOTC))return;let h=this.game.activeZone,u=!!g.inKotcZone;if(!h&&u){g.inKotcZone=!1,this.emit("playerLeaveZone",g);return}g.updateKotcZone(h);let N=!!g.inKotcZone;u!==N&&(g.inKotcZone=N,this.emit(N?"playerEnterZone":"playerLeaveZone",g))}#n(){let A=i.unPackInt8U(),t=this.players[A];t&&(t.playing=!1,t.streakRewards&&(t.streakRewards=[]),this.emit("playerPause",t),t.inKotcZone&&(t.inKotcZone=!1,this.emit("playerLeaveZone",t)))}#C(){let A=i.unPackInt8U(),t=i.unPackInt8U(),e=this.players[A];e&&(e.activeGun=t,this.emit("playerSwapWeapon",e,t))}#E(){let A=i.unPackInt8U(),t=i.unPackInt8U();i.unPackInt8U(),i.unPackInt8U();let e=i.unPackInt8U(),I=this.players[A],s=this.players[t],g=I?{...I}:null;I&&(I.id===this.me.id&&(this.lastDeathTime=Date.now()),I.playing=!1,I.streak=0,I.hp=100,I.spawnShield=0,I.stats.totalDeaths++,I.inKotcZone=!1,this.emit("playerLeaveZone",I)),s&&(s.streak++,s.stats.totalKills++,s.streak>s.stats.bestStreak&&(s.stats.bestStreak=s.streak)),this.emit("playerDeath",I,s,g,e)}#c(){let A=i.unPackInt8U(),t={posX:i.unPackFloat(),posY:i.unPackFloat(),posZ:i.unPackFloat(),dirX:i.unPackFloat(),dirY:i.unPackFloat(),dirZ:i.unPackFloat()},e=this.players[A];if(!e)return;let I=e.weapons[e.activeGun];I&&I.ammo&&(I.ammo.rounds--,this.emit("playerFire",e,I,t))}#r(){let A=i.unPackInt16U(),t=i.unPackInt8U(),e=i.unPackFloat(),I=i.unPackFloat(),s=i.unPackFloat();this.game.collectables[t].push({id:A,x:e,y:I,z:s}),this.emit("spawnItem",t,{x:e,y:I,z:s},A)}#h(){let A=i.unPackInt8U(),t=i.unPackInt8U(),e=i.unPackInt8U(),I=i.unPackInt16U(),s=this.players[A];if(s){if(this.game.collectables[t]=this.game.collectables[t].filter(g=>g.id!==I),t===AA.Ammo){let g=s.weapons[e];g&&g.ammo&&(g.ammo.store=Math.min(g.ammo.storeMax,g.ammo.store+g.ammo.pickup),this.emit("playerCollectAmmo",s,g,I))}t===AA.Grenade&&(s.grenades++,s.grenades>3&&(s.grenades=3),this.emit("playerCollectGrenade",s,I))}}#d(){let A=i.unPackInt8U(),t=i.unPackInt8U(),e=this.players[A];if(!e)return;let I=e.hp;e.hp=t,this.emit("playerDamage",e,I,e.hp)}#l(){let A=i.unPackInt8U();i.unPackFloat(),i.unPackFloat();let t=this.me.hp;this.me.hp=A,this.emit("playerDamage",this.me,t,this.me.hp)}#w(){let A=i.unPackInt8U(),t=this.players[A];i.unPackInt8U();let e=i.unPackInt8U(),I=i.unPackFloat(),s=i.unPackFloat(),g=i.unPackFloat();if(this.me.climbing=!!i.unPackInt8U(),i.unPackInt8U(),i.unPackInt8U(),!t)return;this.state.serverStateIdx=e;let Q=t.position.x,a=t.position.y,n=t.position.z;t.position.x=I,t.position.y=s,t.position.z=g,(Q!==I||a!==s||n!==g)&&this.emit("playerMove",t,{x:Q,y:a,z:n},{x:I,y:s,z:g})}#m(){let A=new c;A.packInt8(o.eventModifier),A.send(this.game.socket)}#y(){let A=i.unPackInt8U(),t={...this.players[A]};delete this.players[A.toString()],this.emit("playerLeave",t)}#D(){if(this.game.gameModeId===m.Spatula){let A={...this.game};this.game.teamScore[1]=i.unPackInt16U(),this.game.teamScore[2]=i.unPackInt16U();let t={x:i.unPackFloat(),y:i.unPackFloat(),z:i.unPackFloat()},e=i.unPackInt8U(),I=i.unPackInt8U();this.game.spatula={coords:t,controlledBy:e,controlledByTeam:I},this.emit("gameStateChange",A,this.game)}else if(this.game.gameModeId===m.KOTC){let A={...this.game};this.game.stage=i.unPackInt8U(),this.game.zoneNumber=i.unPackInt8U(),this.game.capturing=i.unPackInt8U(),this.game.captureProgress=i.unPackInt16U(),this.game.numCapturing=i.unPackInt8U(),this.game.teamScore[1]=i.unPackInt8U(),this.game.teamScore[2]=i.unPackInt8U(),this.game.capturePercent=this.game.captureProgress/1e3,this.game.activeZone=this.game.map.zones?this.game.map.zones[this.game.zoneNumber-1]:null;let t=Object.values(this.players).filter(e=>e.inKotcZone&&e.playing);this.game.activeZone&&Object.values(this.players).forEach(e=>e.updateKotcZone(this.game.activeZone)),this.game.numCapturing<=0&&Object.values(this.players).forEach(e=>{e.inKotcZone=!1,this.emit("playerLeaveZone",e)}),this.emit("gameStateChange",A,this.game,t)}else this.game.gameModeId===m.Team&&(this.game.teamScore[1]=i.unPackInt16U(),this.game.teamScore[2]=i.unPackInt16U());this.game.gameModeId!==m.Spatula&&delete this.game.spatula,this.game.gameModeId!==m.KOTC&&(delete this.game.stage,delete this.game.zoneNumber,delete this.game.capturing,delete this.game.captureProgress,delete this.game.numCapturing,delete this.game.numCapturing,delete this.game.activeZone),this.game.gameModeId===m.FFA&&delete this.game.teamScore}#p(){let A=i.unPackInt8U(),t=i.unPackInt8U(),e=this.players[A];if(e){switch(t){case d.HardBoiled:A===this.me.id&&(this.me.shieldHp=100),e.streakRewards.push(d.HardBoiled);break;case d.EggBreaker:e.streakRewards.push(d.EggBreaker);break;case d.Restock:{e.grenades=3,e.weapons[0]&&e.weapons[0].ammo&&(e.weapons[0].ammo.rounds=e.weapons[0].ammo.capacity,e.weapons[0].ammo.store=e.weapons[0].ammo.storeMax),e.weapons[1]&&e.weapons[1].ammo&&(e.weapons[1].ammo.rounds=e.weapons[1].ammo.capacity,e.weapons[1].ammo.store=e.weapons[1].ammo.storeMax);break}case d.OverHeal:e.hp=Math.min(200,e.hp+100),e.streakRewards.push(d.OverHeal);break;case d.DoubleEggs:e.streakRewards.push(d.DoubleEggs);break;case d.MiniEgg:e.scale=.5,e.streakRewards.push(d.MiniEgg);break}this.emit("playerBeginStreak",e,t)}}#u(){let A=i.unPackInt8U(),t=i.unPackInt8U(),e=this.players[A];if(!e)return;[d.EggBreaker,d.OverHeal,d.DoubleEggs,d.MiniEgg].includes(t)&&e.streakRewards.includes(t)&&(e.streakRewards=e.streakRewards.filter(s=>s!==t)),t===d.MiniEgg&&(e.scale=1),this.emit("playerEndStreak",e,t)}#k(){let A=i.unPackInt8U(),t=i.unPackInt8U(),e=i.unPackFloat(),I=i.unPackFloat();this.me&&(this.me.shieldHp=A,this.me.hp=t,this.me.shieldHp<=0?(this.me.streakRewards=this.me.streakRewards.filter(s=>s!==d.HardBoiled),this.emit("selfShieldLost",this.me.hp,{dx:e,dz:I})):this.emit("selfShieldHit",this.me.shieldHp,this.me.hp,{dx:e,dz:I}))}#N(){let A={...this.game.options},t=i.unPackInt8U(),e=i.unPackInt8U(),I=i.unPackInt8U();(t<1||t>4)&&(t=4),(e<0||e>8)&&(e=4),I>16&&(I=4),this.game.options.gravity=t/4,this.game.options.damage=e/4,this.game.options.healthRegen=I/4;let s=i.unPackInt8U();Object.keys(pt).forEach(g=>{let Q=s&pt[g]?1:0;this.game.options[g]=Q}),this.game.options.weaponsDisabled=Array.from({length:7},()=>i.unPackInt8U()===1),this.game.options.mustUseSecondary=this.game.options.weaponsDisabled.every(g=>g),this.emit("gameOptionsChange",A,this.game.options)}#f(){let A=i.unPackInt8U();A===L.Pause&&(this.emit("gameForcePause"),setTimeout(()=>this.me.playing=!1,3e3)),A===L.Reset&&(Object.values(this.players).forEach(t=>t.streak=0),this.game.gameModeId!==m.FFA&&(this.game.teamScore=[0,0,0]),this.game.gameModeId===m.Spatula&&(this.game.spatula.controlledBy=0,this.game.spatula.controlledByTeam=0,this.game.spatula.coords={x:0,y:0,z:0}),this.game.gameModeId===m.KOTC&&(this.game.stage=tA.Capturing,this.game.zoneNumber=0,this.game.activeZone=null,this.game.capturing=0,this.game.captureProgress=0,this.game.numCapturing=0,this.game.capturePercent=0),this.emit("gameReset"))}#M(){if(!this.intents.includes(this.Intents.PING))return;let A=this.ping;this.ping=Date.now()-this.lastPingTime,this.emit("pingUpdate",A,this.ping),setTimeout(()=>{let t=new c;t.packInt8(o.ping),t.send(this.game.socket),this.lastPingTime=Date.now()},1e3)}#G(){let A=i.unPackInt8U(),t=i.unPackInt8U(),e=this.players[A];if(!e)return;let I=e.team;e.team=t,e.streak=0,this.emit("playerSwitchTeam",e,I,t)}#F(){let A=i.unPackInt8U(),t=i.unPackInt8U(),e=i.unPackInt16U(),I=i.unPackInt16U(),s=i.unPackInt8U(),g=i.unPackInt16U(),Q=i.unPackInt16U(),a=i.unPackInt16U(),n=i.unPackInt16U(),E=i.unPackInt8(),C=i.unPackInt8(),h=this.intents.includes(this.Intents.COSMETIC_DATA),u=h?r(e):e,N=h?r(I):I,G=h?r(g):g,V=h?r(Q):Q,K=h?r(a):a,Xt=h?r(n):n,w=this.players[A];if(w){let gt={...w.character},It=w.selectedGun;w.character.eggColor=s,w.character.primaryGun=u,w.character.secondaryGun=N,w.character.stamp=V,w.character.hat=G,w.character.grenade=K,w.character.melee=Xt,w.character.stampPos.x=E,w.character.stampPos.y=C,w.selectedGun=t,w.weapons[0]=new R[t],It!==w.selectedGun&&this.emit("playerChangeGun",w,It,w.selectedGun),gt!==w.character&&this.emit("playerChangeCharacter",w,gt,w.character)}}#R(){let A=i.unPackInt32U(),t=this.account.eggBalance;this.account.eggBalance=A,this.emit("balanceUpdate",t,A)}#S(){this.me.playing=!1,this.emit("respawnDenied")}#U(){let A=i.unPackInt8U(),t=this.players[A];t&&this.emit("playerMelee",t)}#L(){let A=i.unPackInt8U(),t=this.players[A];if(!t)return;let e=t.weapons[t.activeGun];if(e.ammo){let I=Math.min(Math.min(e.ammo.capacity,e.ammo.reload)-e.ammo.rounds,e.ammo.store);e.ammo.rounds+=I,e.ammo.store-=I}this.emit("playerReload",t,e)}updateGameOptions(){let A=new c;A.packInt8(o.gameOptions),A.packInt8(this.game.options.gravity*4),A.packInt8(this.game.options.damage*4),A.packInt8(this.game.options.healthRegen*4);let t=(this.game.options.locked?1:0)|(this.game.options.noTeamChange?2:0)|(this.game.options.noTeamShuffle?4:0);A.packInt8(t),this.game.options.weaponsDisabled.forEach(e=>{A.packInt8(e?1:0)}),A.send(this.game.socket)}#Y(){this.game.isPrivate=!0,this.updateGameOptions()}#J(){let A=i.unPackInt8U(),t=i.unPackInt16U(),e=i.unPackFloat(),I=i.unPackFloat(),s=i.unPackFloat(),g=i.unPackInt8U(),Q=i.unPackFloat();this.intents.includes(this.Intents.COSMETIC_DATA)&&(t=r(t)),A===M.Grenade?this.emit("grenadeExplode",t,{x:e,y:I,z:s},g,Q):this.emit("rocketHit",{x:e,y:I,z:s},g,Q)}#x(){let A=i.unPackInt8U(),t=i.unPackFloat(),e=i.unPackFloat(),I=i.unPackFloat(),s=i.unPackFloat(),g=i.unPackFloat(),Q=i.unPackFloat(),a=this.players[A];a&&(a.grenades--,this.emit("playerThrowGrenade",a,{x:t,y:e,z:I},{x:s,y:g,z:Q}))}#H(){let A=i.unPackInt8U(),t=i.unPackInt8U(),e=this.players[A];if(!e)return;if(!this.intents.includes(this.Intents.CHALLENGES))return this.emit("challengeComplete",e,t);let I=this.account.challenges.find(s=>s.id===t);this.emit("challengeComplete",e,I),e.id===this.me.id&&this.refreshChallenges()}#K(){let A=new c;A.packInt8(this.intents.includes(this.Intents.OBSERVE_GAME)?o.observeGame:o.joinGame),A.packString(this.game.raw.uuid),A.packInt8(+this.intents.includes(this.Intents.VIP_HIDE_BADGE)),A.packInt8(this.state.weaponIdx||this.account?.loadout?.classIdx||0),A.packString(this.state.name),A.packInt32(this.account.session),A.packString(this.account.sessionId),A.packString(this.account.firebaseId),A.send(this.game.socket)}async#P(){if(this.me.id=i.unPackInt8U(),this.me.team=i.unPackInt8U(),this.game.gameModeId=i.unPackInt8U(),this.game.gameMode=Dt[this.game.gameModeId],this.game.mapIdx=i.unPackInt8U(),this.game.map=_[this.game.mapIdx],this.game.playerLimit=i.unPackInt8U(),this.game.isGameOwner=i.unPackInt8U()===1,this.game.isPrivate=i.unPackInt8U()===1||this.game.isGameOwner,i.unPackInt8U(),this.intents.includes(this.Intents.LOAD_MAP)||this.intents.includes(this.Intents.PATHFINDING)){if(this.game.map.raw=await wt(this.game.map.filename,this.game.map.hash),this.emit("mapLoad",this.game.map.raw),this.game.gameModeId===m.KOTC){let t=this.game.map.raw.data["DYNAMIC.capture-zone.none"];t?(this.game.map.zones=mt(t),this.game.activeZone||(this.game.activeZone=this.game.map.zones[this.game.zoneNumber-1])):delete this.game.map.zones}this.intents.includes(this.Intents.PATHFINDING)&&(this.pathing.nodeList=new QA(this.game.map.raw))}this.state.inGame=!0,this.lastDeathTime=Date.now();let A=new c;if(A.packInt8(o.clientReady),A.send(this.game.socket),this.updateIntervalId=setInterval(()=>this.update(),100/3),this.intents.includes(this.Intents.PING)){this.lastPingTime=Date.now();let t=new c;t.packInt8(o.ping),t.send(this.game.socket)}this.intents.includes(this.Intents.NO_AFK_KICK)&&(this.afkKickInterval=setInterval(()=>{if(this.state.inGame&&!this.me.playing&&Date.now()-this.lastDeathTime>=15e3){let t=new c;t.packInt8(o.keepAlive),t.send(this.game.socket)}},15e3)),this.emit("gameReady")}#T(){let A=i.unPackInt8U(),t=i.unPackString(128),e=i.unPackString(32),I=this.players[A];I&&(I.admin={ip:e,dbId:t},this.emit("playerInfo",I,e,t))}processPacket(A){i.init(A),this.intents.includes(this.Intents.PACKET_HOOK)&&this.emit("packet",A);let t=0,e=0,I=!1;for(;i.isMoreDataAvailable()&&!I;){let s=i.unPackInt8U();switch(s){case o.syncThem:this.#o();break;case o.fire:this.#c();break;case o.hitThem:this.#d();break;case o.syncMe:this.#w();break;case o.hitMe:this.#l();break;case o.swapWeapon:this.#C();break;case o.collectItem:this.#h();break;case o.respawn:this.#a();break;case o.die:this.#E();break;case o.pause:this.#n();break;case o.chat:this.#B();break;case o.addPlayer:this.#Q();break;case o.removePlayer:this.#y();break;case o.eventModifier:this.#m();break;case o.metaGameState:this.#D();break;case o.beginShellStreak:this.#p();break;case o.endShellStreak:this.#u();break;case o.hitMeHardBoiled:this.#k();break;case o.gameOptions:this.#N();break;case o.ping:this.#M();break;case o.switchTeam:this.#G();break;case o.changeCharacter:this.#F();break;case o.reload:this.#L();break;case o.explode:this.#J();break;case o.throwGrenade:this.#x();break;case o.spawnItem:this.#r();break;case o.melee:this.#U();break;case o.updateBalance:this.#R();break;case o.challengeCompleted:this.#H();break;case o.socketReady:this.#K();break;case o.gameJoined:this.#P();break;case o.gameAction:this.#f();break;case o.requestGameOptions:this.#Y();break;case o.respawnDenied:this.#S();break;case o.playerInfo:this.#T();break;case o.expireUpgrade:case o.clientReady:break;case o.musicInfo:i.unPackLongString();break;default:console.error(`processPacket: I got but couldn't identify a: ${Object.keys(o).find(g=>o[g]===s)} ${s}`),t&&console.error(`processPacket: It may be a result of the ${t} command (${e}).`),I=!0;break}t=Object.keys(o).find(g=>o[g]===s),e=s,this.intents.includes(this.Intents.LOG_PACKETS)&&console.log(`[LOG_PACKETS] Packet ${t}: ${e}`)}}async checkChiknWinner(){let A=await this.api.queryServices({cmd:"chicknWinnerReady",id:this.account.id,sessionId:this.account.sessionId});return typeof A=="string"?A:(this.account.cw.limit=A.limit,this.account.cw.atLimit=A.limit>=4,this.account.cw.secondsUntilPlay=(this.account.cw.atLimit?A.period:A.span)||0,this.account.cw.canPlayAgain=Date.now()+this.account.cw.secondsUntilPlay*1e3,this.account.cw)}async playChiknWinner(A=!0){if(this.account.cw.atLimit||this.account.cw.limit>pA)return"hit_daily_limit";if(this.account.cw.canPlayAgain>Date.now()&&A)return"on_cooldown";let t=await this.api.queryServices({cmd:"incentivizedVideoReward",firebaseId:this.account.firebaseId,id:this.account.id,sessionId:this.account.sessionId,token:null});return typeof t=="string"?t:t.error?t.error==="RATELIMITED"||t.error==="RATELMITED"?(await this.checkChiknWinner(),"on_cooldown"):t.error==="SESSION_EXPIRED"?(this.emit("sessionExpired"),"session_expired"):(console.error("Unknown Chikn Winner response, report this on Github:",t),"unknown_error"):t.reward?(this.account.eggBalance+=t.reward.eggsGiven,t.reward.itemIds.forEach(e=>this.account.ownedItemIds.push(e)),await this.checkChiknWinner(),t.reward):(console.error("Unknown Chikn Winner response, report this on Github:",t),"unknown_error")}async resetChiknWinner(){if(this.account.eggBalance<200)return"not_enough_eggs";if(!this.account.cw.atLimit)return"not_at_limit";let A=await this.api.queryServices({cmd:"chwReset",sessionId:this.account.sessionId});return typeof A=="string"?A:A.result!=="SUCCESS"?(console.error("Unknown Chikn Winner reset response, report this on Github:",A),"unknown_error"):(this.account.eggBalance-=200,await this.checkChiknWinner(),this.account.cw)}canSee(A){return this.intents.includes(this.Intents.PATHFINDING)?this.pathing.nodeList.hasLineOfSight(this.me.position,A.position):this.processError("You must have the PATHFINDING intent to use this method.")}async refreshChallenges(){let A=await this.api.queryServices({cmd:"challengeGetDaily",sessionId:this.account.sessionId,playerId:this.account.id});return typeof A=="string"?A:(this.#g(A),this.account.challenges)}async rerollChallenge(A){let t=await this.api.queryServices({cmd:"challengeRerollSlot",sessionId:this.account.sessionId,slotId:A});return typeof t=="string"?t:(this.#g(t),this.account.challenges)}async claimChallenge(A){let t=await this.api.queryServices({cmd:"challengeClaimReward",sessionId:this.account.sessionId,slotId:A});return typeof t=="string"?t:(this.#g(t.challenges),t.reward>0&&(this.account.eggBalance+=t.reward),{eggReward:t.reward,updatedChallenges:this.account.challenges})}async refreshBalance(){let A=await this.api.queryServices({cmd:"checkBalance",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId});return typeof A=="string"?A:(this.account.eggBalance=A.currentBalance,A.currentBalance)}async redeemCode(A){let t=await this.api.queryServices({cmd:"redeem",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,id:this.account.id,code:A});return typeof t=="string"?t:t.result==="SUCCESS"?(this.account.eggBalance=t.eggs_given,t.item_ids.forEach(e=>this.account.ownedItemIds.push(e)),{result:t,eggsGiven:t.eggs_given,itemIds:t.item_ids}):t}async claimURLReward(A){let t=await this.api.queryServices({cmd:"urlRewardParams",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,reward:A});return typeof t=="string"||t.result==="SUCCESS"&&(this.account.eggBalance+=t.eggsGiven,t.itemIds.forEach(e=>this.account.ownedItemIds.push(e))),t}async claimSocialReward(A){let t=await this.api.queryServices({cmd:"reward",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,rewardTag:A});return typeof t=="string"||t.result==="SUCCESS"&&(this.account.eggBalance+=t.eggsGiven,t.itemIds.forEach(e=>this.account.ownedItemIds.push(e))),t}async buyItem(A){let t=await this.api.queryServices({cmd:"buy",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,itemId:A,save:!0});return typeof t=="string"||t.result==="SUCCESS"&&(this.account.eggBalance=t.currentBalance,this.account.ownedItemIds.push(t.itemId)),t}processError(A){this.#t.error&&this.#t.error.length?this.emit("error",A):(console.error(A),this.intents.includes(this.Intents.NO_EXIT_ON_ERROR)||process.exit(1))}leave(A=IA.mainMenu){this.hasQuit||(A>-1&&(this.game?.socket?.close(A),this.state.left=!0,this.emit("leave",A)),clearInterval(this.updateIntervalId),this.#A=[],this.state.inGame=!1,this.state.chatLines=0,this.state.reloading=!1,this.state.swappingGun=!1,this.state.usingMelee=!1,this.state.stateIdx=0,this.state.serverStateIdx=0,this.state.shotsFired=0,this.state.buffer=[],this.players={},this.me=new iA({}),this.game=this.#I,this.ping=0,this.lastPingTime=-1,this.lastDeathTime=-1,this.lastUpdateTick=0,this.pathing={nodeList:null,followingPath:!1,activePath:null,activeNode:null,activeNodeIdx:0})}logout(){this.account=this.#e,this.intents.includes(this.Intents.RENEW_SESSION)&&clearInterval(this.renewSessionInterval)}quit(A=!1){this.hasQuit||(this.leave(),this.matchmaker&&(this.matchmaker.close(),A||delete this.matchmaker),A||(delete this.account,delete this.api,delete this.game,delete this.me,delete this.pathing,delete this.players,delete this.state,this.#e={},this.#I={},this.#t={},this.#i=[],this.#A=[]),this.intents.includes(this.Intents.NO_AFK_KICK)&&clearInterval(this.afkKickInterval),this.intents.includes(this.Intents.RENEW_SESSION)&&clearInterval(this.renewSessionInterval),this.hasQuit=!0)}};var YA=class{constructor(A,t,e=""){this.uniqueId=A,this.duration=t,this.reason=e}validate(A){return!(typeof this.uniqueId!="string"||typeof this.reason!="string"||typeof this.duration!="number"||!Object.values(DA).some(t=>this.duration===t)||!(A.account.adminRoles&4))}check(){return!0}execute(A){let t=new c;t.packInt8(o.banPlayer),t.packString(this.uniqueId),t.packString(this.reason),t.packInt8(this.duration),t.send(A.game.socket)}},kt=YA;var JA=class{constructor(A){this.uniqueId=A}validate(A){return typeof this.uniqueId=="string"&&A.game.isGameOwner&&Object.values(A.players).find(t=>t.uniqueId===this.uniqueId)}check(){return!0}execute(A){let t=new c;t.packInt8(o.bootPlayer),t.packString(this.uniqueId),t.send(A.game.socket)}},Nt=JA;var xA=class{constructor(A){this.msg=A}validate(){return!(typeof this.msg!="string"||this.msg.length<1||this.msg.length>64)}check(A){return!(!A.state?.inGame||!A.game.isPrivate&&!A.account.adminRoles&&A.state.chatLines>=2||!A.game.isPrivate&&!A.account.emailVerified&&!A.account.isAged)}execute(A){A.state.chatLines++;let t=new c;t.packInt8(o.chat),t.packString(this.msg),t.send(A.game.socket)}},ft=xA;var HA=class{constructor(A){this.amount=A||1}validate(){return this.amount>=1}check(A){return A.me.playing&&!A.state.reloading&&!A.state.swappingGun&&!A.state.usingMelee&&A.me.weapons[A.me.activeGun].ammo.rounds>=this.amount}execute(A){A.state.shotsFired+=this.amount||1}},Mt=HA;var he=Array.from({length:4},(B,A)=>(A+1)*.25),de=Array.from({length:9},(B,A)=>A*.25),le=Array.from({length:17},(B,A)=>A*.25),D=(B,A)=>typeof B<"u"?B:A,KA=class{constructor(A){this.changes=A}#A(A){let t={};return t.gravity=D(this.changes.gravity,A.game.options.gravity),t.damage=D(this.changes.damage,A.game.options.damage),t.healthRegen=D(this.changes.healthRegen,A.game.options.healthRegen),t.locked=D(this.changes.locked,A.game.options.locked),t.noTeamChange=D(this.changes.noTeamChange,A.game.options.noTeamChange),t.noTeamShuffle=D(this.changes.noTeamShuffle,A.game.options.noTeamShuffle),t.weaponsDisabled=[D(this.changes.disableEggk,A.game.options.weaponsDisabled[0]),D(this.changes.disableScrambler,A.game.options.weaponsDisabled[1]),D(this.changes.disableFreeRanger,A.game.options.weaponsDisabled[2]),D(this.changes.disableRPG,A.game.options.weaponsDisabled[3]),D(this.changes.disableWhipper,A.game.options.weaponsDisabled[4]),D(this.changes.disableCrackshot,A.game.options.weaponsDisabled[5]),D(this.changes.disableTriHard,A.game.options.weaponsDisabled[6])],this.changes.toDisable&&Array.isArray(this.changes.toDisable)&&this.changes.toDisable.forEach(e=>t.weaponsDisabled[e]=!0),this.changes.toEnable&&Array.isArray(this.changes.toEnable)&&this.changes.toEnable.forEach(e=>t.weaponsDisabled[e]=!1),this.changes.rawWeaponsDisabled&&Array.isArray(this.changes.rawWeaponsDisabled)&&this.changes.rawWeaponsDisabled.length===7&&(t.weaponsDisabled=this.changes.rawWeaponsDisabled.map(e=>!!e)),t.mustUseSecondary=t.weaponsDisabled.every(e=>e),t}validate(A){let t=this.#A(A);return!(!he.includes(t.gravity)||!de.includes(t.damage)||!le.includes(t.healthRegen)||typeof t.locked!="boolean"||typeof t.noTeamChange!="boolean"||typeof t.noTeamShuffle!="boolean"||!Array.isArray(t.weaponsDisabled)||t.weaponsDisabled.length!==7||t.weaponsDisabled.some(e=>typeof e!="boolean"))}check(A){return A.game.isGameOwner}execute(A){A.game.options=this.#A(A),A.updateGameOptions()}},Gt=KA;var oA=class{constructor(A){this.content=[],this.scoreFunction=A}push(A){this.content.push(A),this.bubbleUp(this.content.length-1)}rescoreElement(A){this.sinkDown(this.content.indexOf(A))}pop(){let A=this.content[0],t=this.content.pop();return this.content.length>0&&(this.content[0]=t,this.sinkDown(0)),A}remove(A){let t=this.content.length;for(let e=0;e<t;e++){if(this.content[e]!==A)continue;let I=this.content.pop();if(e===t-1)break;this.content[e]=I,this.bubbleUp(e),this.sinkDown(e);break}}size(){return this.content.length}bubbleUp(A){let t=this.content[A],e=this.scoreFunction(t);for(;A>0;){let I=Math.floor((A+1)/2)-1,s=this.content[I];if(e>=this.scoreFunction(s))break;this.content[I]=t,this.content[A]=s,A=I}}includes(A){return this.content.includes(A)}sinkDown(A){let t=this.content.length,e=this.content[A],I=this.scoreFunction(e);for(;;){let s=(A+1)*2,g=s-1,Q=null,a;if(g<t){let n=this.content[g];a=this.scoreFunction(n),a<I&&(Q=g)}if(s<t){let n=this.content[s];this.scoreFunction(n)<(Q===null?I:a)&&(Q=s)}if(Q===null)break;this.content[A]=this.content[Q],this.content[Q]=e,A=Q}}};var p=class{constructor(A){this.list=A}heuristic(A,t){return Math.abs(A.x-t.x)+Math.abs(A.y-t.y)+Math.abs(A.z-t.z)}reversePath(A){let t=[];for(;A.parent;)t.push(A),A=A.parent;return t.reverse(),t}path(A,t){this.list.clean();let e=new oA(s=>s.f),I=[];for(A.h=this.heuristic(A,t),A.g=0,A.f=A.g+A.h,e.push(A);e.size()!==0;){let s=e.pop();if(s===t)return this.reversePath(s);I.push(s);let g=s.links;for(let Q=0;Q<g.length;Q++){let a=g[Q];if(I.includes(a))continue;let n=s.g+1,E=a.visited;(!E||n<a.g)&&(a.visited=!0,a.parent=s,a.g=n,a.h=this.heuristic(a.position,t.position),a.f=a.g+a.h,E?e.rescoreElement(a):e.push(a))}}return null}};var PA=class{validate(A){return A.intents.includes(A.Intents.PATHFINDING)}check(A){return A.me.playing&&A.game.collectables[0].length}execute(A){this.pather=new p(A.pathing.nodeList);let t=200,e=null;for(let a of A.game.collectables[0]){let n=a.x-A.me.position.x,E=a.y-A.me.position.y,C=a.z-A.me.position.z,h=Math.sqrt(n*n+E*E+C*C);h<t&&(t=h,e=a)}let I=Object.entries(A.me.position).map(a=>Math.floor(a[1])),s=Object.entries(e).map(a=>Math.floor(a[1])),g=A.pathing.nodeList.at(...I),Q=A.pathing.nodeList.at(...s);if(A.pathing.activePath=this.pather.path(g,Q),!A.pathing.activePath)return A.processError("no path found");if(A.pathing.activePath.length<2)return A.processError("path too short");A.pathing.followingPath=!0,A.pathing.activeNode=A.pathing.activePath[1],A.pathing.activeNodeIdx=1}},Ft=PA;var TA=class{validate(A){return A.intents.includes(A.Intents.PATHFINDING)}check(A){return A.me.playing&&A.game.zoneNumber&&A.game.activeZone}execute(A){this.pather=new p(A.pathing.nodeList);let t=200,e=null;for(let a of A.game.activeZone){let n=a.x-A.me.position.x,E=a.y-A.me.position.y,C=a.z-A.me.position.z,h=Math.sqrt(n*n+E*E+C*C);h<t&&(t=h,e=a)}let I=Object.entries(A.me.position).map(a=>Math.floor(a[1])),s=Object.entries(e).map(a=>Math.floor(a[1])),g=A.pathing.nodeList.at(...I),Q=A.pathing.nodeList.at(...s);if(A.pathing.activePath=this.pather.path(g,Q),!A.pathing.activePath)return A.processError("no path found");if(A.pathing.activePath.length<2)return A.processError("path too short");A.pathing.followingPath=!0,A.pathing.activeNode=A.pathing.activePath[1],A.pathing.activeNodeIdx=1}},Rt=TA;var qA=class{validate(A){return A.intents.includes(A.Intents.PATHFINDING)}check(A){return A.me.playing&&A.game.collectables[1].length}execute(A){this.pather=new p(A.pathing.nodeList);let t=200,e=null;for(let a of A.game.collectables[1]){let n=a.x-A.me.position.x,E=a.y-A.me.position.y,C=a.z-A.me.position.z,h=Math.sqrt(n*n+E*E+C*C);h<t&&(t=h,e=a)}let I=Object.entries(A.me.position).map(a=>Math.floor(a[1])),s=Object.entries(e).map(a=>Math.floor(a[1])),g=A.pathing.nodeList.at(...I),Q=A.pathing.nodeList.at(...s);if(A.pathing.activePath=this.pather.path(g,Q),!A.pathing.activePath)return A.processError("no path found");if(A.pathing.activePath.length<2)return A.processError("path too short");A.pathing.followingPath=!0,A.pathing.activeNode=A.pathing.activePath[1],A.pathing.activeNodeIdx=1}},St=qA;var zA=class{idOrName;constructor(A){this.idOrName=A}validate(A){return!A.intents.includes(A.Intents.PATHFINDING)||!this.idOrName?!1:!!(A.players[this.idOrName.toString()]||A.players.find(e=>e.name===this.idOrName))}check(A){if(!A.me.playing)return!1;let t=A.players[this.idOrName.toString()]||A.players.find(e=>e.name===this.idOrName);return t&&t.playing&&t.position&&t.position.x}execute(A){this.pather=new p(A.pathing.nodeList);let t=A.players[this.idOrName.toString()]||A.players.find(Q=>Q.name===this.idOrName),e=Object.entries(A.me.position).map(Q=>Math.floor(Q[1])),I=Object.entries(t.position).map(Q=>Math.floor(Q[1])),s=A.pathing.nodeList.at(...e),g=A.pathing.nodeList.at(...I);if(A.pathing.activePath=this.pather.path(s,g),!A.pathing.activePath)return A.processError("no path found");if(A.pathing.activePath.length<2)return A.processError("path too short");A.pathing.followingPath=!0,A.pathing.activeNode=A.pathing.activePath[1],A.pathing.activeNodeIdx=1}},Ut=zA;var bA=class{validate(A){return A.intents.includes(A.Intents.PATHFINDING)}check(A){return A.me.playing&&A.game.spatula&&A.game.spatula.coords&&A.game.spatula.coords.x}execute(A){this.pather=new p(A.pathing.nodeList);let t=Object.entries(A.me.position).map(g=>Math.floor(g[1])),e=Object.entries(A.game.spatula.coords).map(g=>Math.floor(g[1])),I=A.pathing.nodeList.at(...t),s=A.pathing.nodeList.at(...e);if(A.pathing.activePath=this.pather.path(I,s),!A.pathing.activePath)return A.processError("no path found");if(A.pathing.activePath.length<2)return A.processError("path too short");A.pathing.followingPath=!0,A.pathing.activeNode=A.pathing.activePath[1],A.pathing.activeNodeIdx=1}},Lt=bA;var we=(B,A)=>(B%A+A)%A,me=Math.PI*2,Yt=B=>Math.round(B*8192)/8192,ye=B=>Yt(we(Math.atan2(-B.x,-B.z),me)),De=B=>Yt(Math.atan2(B.y,Math.hypot(B.x,B.z))),vA=class{idOrName;constructor(A){this.idOrName=A}validate(A){return!!(A.players[this.idOrName.toString()]||A.players.find(e=>e.name===this.idOrName))}check(A){if(!A.me.playing)return!1;let t=A.players[this.idOrName.toString()]||A.players.find(e=>e.name===this.idOrName);return t&&t.playing&&t.position&&t.position.x}execute(A){let t=A.players[this.idOrName.toString()]||A.players.find(g=>g.name===this.idOrName),e={x:t.position.x-A.me.position.x,y:t.position.y-A.me.position.y-.05,z:t.position.z-A.me.position.z},I=ye(e),s=De(e);A.state.yaw=I,A.state.pitch=s}},Jt=vA;var ZA=class{validate(){return!0}check(A){return A.me.playing&&!A.state.reloading&&!A.state.swappingGun&&!A.state.usingMelee}execute(A){let t=new c;t.packInt8(o.melee),t.send(A.game.socket),A.usingMelee=!0,setTimeout(()=>{A.usingMelee=!1,A.swappingGun=!0,setTimeout(()=>{A.swappingGun=!1},.5*kA)},100/3*17)}},xt=ZA;var OA=class{validate(){return!0}check(A){return A.me.playing}execute(A){let t=new c;t.packInt8(o.pause),t.send(A.game.socket),setTimeout(()=>A.me.playing=!1,3e3)}},Ht=OA;var XA=class{validate(){return!0}check(A){return A.me.playing&&!A.state.reloading&&!A.state.swappingGun&&!A.state.usingMelee}execute(A){let t=new c;t.packInt8(o.reload),t.send(A.game.socket);let e=A.me.weapons[A.me.activeGun];if(e.ammo){let g=Math.min(Math.min(e.ammo.capacity,e.ammo.reload)-e.ammo.rounds,e.ammo.store);e.ammo.rounds+=g,e.ammo.store-=g}A.emit("playerReload",A.me,e);let I=A.me.weapons[A.me.activeGun],s=I.ammo.rounds<1;A.state.reloading=!0,setTimeout(()=>A.state.reloading=!1,s?I.longReloadTime:I.shortReloadTime)}},Kt=XA;var jA=class{constructor(A,t={}){this.idOrName=A,this.reasons=[!!t.cheating,!!t.harassment,!!t.offensive,!!t.other],this.reasons.includes(!0)||(this.reasons[3]=!0);for(let e=0;e<this.reasons.length;e++)this.reasons[e]===!0&&(this.reasonInt|=1<<e)}validate(){return!(this.reasons.every(t=>t===!1)||!(bot.players[this.idOrName.toString()]||bot.players.find(t=>t.name===this.idOrName)))}check(A){return A.state.inGame?!!(A.players[this.idOrName.toString()]||A.players.find(e=>e.name===this.idOrName)):!1}execute(A){let t=A.players[this.idOrName.toString()]||A.players.find(I=>I.name===this.idOrName),e=new c;e.packInt8(o.reportPlayer),e.packString(t.uniqueId),e.packInt8(this.reasonInt),e.send(A.game.socket)}},Pt=jA;var WA=class{validate(){return!0}check(A){return A.game.isGameOwner}execute(A){let t=new c;t.packInt8(o.gameAction),t.packInt8(L.Reset),t.send(A.game.socket)}},Tt=WA;var x=B=>r(B)&&r(B).unlock==="default",H=(B,A)=>r(B)&&r(B).item_type_id===A,_A=class{constructor(A){this.changes={classIdx:A.gunId,hatId:A.hatId,stampId:A.stampId,grenadeId:A.grenadeId,meleeId:A.meleeId,colorIdx:A.eggColor,primaryId:A.primaryIds,secondaryId:A.secondaryIds},this.changes=Object.fromEntries(Object.entries(this.changes).filter(([,t])=>!!t))}validate(A){let t=this.changes;if(t.colorIdx&&t.colorIdx>=7&&!A.account.vip||t.colorIdx&&t.colorIdx>=14||H(t.hatId,M.Hat)&&!x(t.hatId)&&!A.account.ownedItemIds.includes(t.hatId)||H(t.stampId,M.Stamp)&&!x(t.stampId)&&!A.account.ownedItemIds.includes(t.stampId)||H(t.grenadeId,M.Grenade)&&!x(t.grenadeId)&&!A.account.ownedItemIds.includes(t.grenadeId)||H(t.meleeId,M.Melee)&&!x(t.meleeId)&&!A.account.ownedItemIds.includes(t.meleeId)||typeof t.classIdx=="number"&&t.classIdx>6||t.classIdx<0)return!1;if(this.changes.primaryId)for(let e=0;e<7;e++){let I=this.changes.primaryId[e];if(!H(I,ItemTypes.Primary)||!x(I)&&!A.account.ownedItemIds.includes(I))return!1}if(this.changes.secondaryId)for(let e=0;e<7;e++){let I=this.changes.secondaryId[e];if(!H(I,ItemTypes.Secondary)||!x(I)&&!A.account.ownedItemIds.includes(I))return!1}return!0}check(A){return!A.me.playing}execute(A){A.me&&this.changes.classIdx&&this.changes.classIdx!==A.me.selectedGun&&(A.me.weapons[0]=new R[this.changes.classIdx]),A.state.weaponIdx=this.changes.classIdx||A.state.weaponIdx;let t={...A.account.loadout,...this.changes},e=A.api.queryServices({cmd:"saveLoadout",save:!0,firebaseId:A.account.firebaseId,sessionId:A.account.sessionId,loadout:t});A.account.loadout=t,A.me&&e.then(()=>{if(A.state.inGame){let s=new c;s.packInt8(o.changeCharacter),s.packInt8(this.changes?.classIdx||A.me.selectedGun),s.send(A.game.socket)}let I=A.intents.includes(A.Intents.COSMETIC_DATA);Object.entries(this.changes).forEach(([s,g])=>{s==="classIdx"?A.me.selectedGun=g:s==="hatId"?A.me.character.hat=I?r(g):g:s==="stampId"?A.me.character.stamp=I?r(g):g:s==="grenadeId"?A.me.character.grenade=I?r(g):g:s==="meleeId"?A.me.character.melee=I?r(g):g:s==="colorIdx"?A.me.character.eggColor=g:s==="primaryId"?A.me.character.primaryGun=I?r(g[A.me.selectedGun]):g:s==="secondaryId"&&(A.me.character.secondaryGun=I?r(g[A.me.selectedGun]):g)})})}},qt=_A;var VA=class{validate(){return!0}check(A){return!(A.me.playing||A.lastDeathTime+6e3<Date.now()||A.intents.includes(A.Intents.OBSERVE_GAME))}execute(A){let t=new c;t.packInt8(o.requestRespawn),t.send(A.game.socket),A.state.buffer=[]}},zt=VA;var $A=class{constructor(A){this.manualWeapon=A}validate(){return typeof this.manualWeapon=="number"||this.manualWeapon===void 0}check(A){return A.me.playing&&!A.state.reloading&&!A.state.swappingGun&&!A.state.usingMelee}execute(A){let t=+!A.me.activeGun;typeof this.manualWeapon=="number"&&(t=this.manualWeapon),A.me.activeGun=t;let e=new c;e.packInt8(o.swapWeapon),e.packInt8(A.me.activeGun),e.send(A.game.socket)}},bt=$A;var At=class{validate(){return!0}check(A){if(!A.state.inGame||A.me.playing||A.game.gameModeId===0||A.intents.includes(A.Intents.OBSERVE_GAME))return!1;if(A.game.isPrivate)return!A.game.options.noTeamChange;let t=A.players,e=A.me.team,I=t.filter(g=>g.team===e).length,s=t.filter(g=>g.team!==e).length;return!(s>I||I===s)}execute(A){let t=new c;t.packInt8(o.switchTeam),t.send(A.game.socket)}},vt=At;var tt=class{constructor(A=1){this.power=A}validate(){return typeof this.power=="number"&&this.power>=0&&this.power<=1}check(A){return A.me.playing&&!A.state.reloading&&!A.state.swappingGun&&!A.state.usingMelee}execute(A){let t=new c;t.packInt8(o.throwGrenade),t.packFloat(this.power),t.send(A.game.socket)}},Zt=tt;var Ot={BanPlayerDispatch:kt,BootPlayerDispatch:Nt,ChatDispatch:ft,FireDispatch:Mt,GameOptionsDispatch:Gt,GoToAmmoDispatch:Ft,GoToCoopDispatch:Rt,GoToGrenadeDispatch:St,GoToPlayerDispatch:Ut,GoToSpatulaDispatch:Lt,LookAtDispatch:Jt,LookAtPosDispatch:j,MeleeDispatch:xt,MovementDispatch:W,PauseDispatch:Ht,ReloadDispatch:Kt,ReportPlayerDispatch:Pt,ResetGameDispatch:Tt,SaveLoadoutDispatch:qt,SpawnDispatch:zt,SwapWeaponDispatch:bt,SwitchTeamDispatch:vt,ThrowGrenadeDispatch:Zt};var et={};nA(et,{CloseCode:()=>IA,CommCode:()=>o,CommIn:()=>i,CommOut:()=>c});var pe={API:b,Bot:aA,GamePlayer:v,Matchmaker:X,Dispatches:Ot,Comm:et,Constants:fA,Guns:yA,Maps:_};window.yolkbot=pe;window.onYolkReady&&typeof window.onYolkReady=="function"&&(console.warn("window.onYolkReady is no longer required as of yolkbot 1.3.0. You don't have to put your code inside it anymore."),window.onYolkReady());
1
+ var Ue=Object.defineProperty;var it=(t,e)=>{for(var s in e)Ue(t,s,{get:e[s],enumerable:!0,configurable:!0,set:(i)=>e[s]=()=>i})};var We=globalThis.fetch,Rt=We;console.error("wwws does not support the browser.");var Gt=null;var W={},Z=typeof window<"u"&&typeof HTMLElement<"u",ot=typeof WebSocketPair<"u"&&typeof Cloudflare<"u",Ot=typeof process<"u"&&process.moduleLoadList?.length>0,_t=typeof Deno<"u",vt=typeof process<"u"&&!!process.versions?.bun;if(!Z&&!ot&&!Ot&&!_t&&!vt)throw Error("yolkbot doesn't know how to run in this environment. Please open an issue on GitHub with information on where you run yolkbot.");W.isBrowser=Z;W.isIsolated=!Ot&&!_t&&!vt;W.fetch=Z||ot?globalThis.fetch:Rt;W.WebSocket=Z||ot?globalThis.WebSocket:Gt;var w=W;var kt={};it(kt,{findItemById:()=>l,UserAgent:()=>$,URLRewards:()=>He,Team:()=>Ke,StateBufferSize:()=>j,SocialReward:()=>Je,SocialMedia:()=>wt,ShellStreak:()=>g,PlayType:()=>I,Movement:()=>S,ItemType:()=>P,GunList:()=>_,GunEquipTime:()=>xt,GameOptionFlag:()=>gt,GameMode:()=>M,GameAction:()=>L,FramesBetweenSyncs:()=>C,FirebaseKey:()=>O,CoopState:()=>X,CollectType:()=>Q,ChiknWinnerDailyLimit:()=>lt,ChatFlag:()=>Be,ChallengeType:()=>$e,ChallengeSubType:()=>je,BanDuration:()=>dt});var pt={};it(pt,{SMG:()=>ut,RPEGG:()=>at,M24:()=>ft,Eggk47:()=>nt,DozenGauge:()=>rt,Cluck9mm:()=>ht,CSG1:()=>ct,AUG:()=>mt});var R=class{constructor(){this.adsMod=0.5,this.burst=0,this.burstRof=0,this.movementAccuracyMod=1,this.radius=0,this.reloadBloom=!0,this.reloadTimeMod=1,this.tracer=0}},nt=class extends R{constructor(){super();this.ammo={rounds:30,capacity:30,reload:30,store:240,storeMax:240,pickup:30},this.longReloadTime=205,this.shortReloadTime=160,this.weaponName="EggK-47",this.internalName="Eggk47",this.standardMeshName="eggk47",this.automatic=!0,this.damage=30,this.range=20,this.recoil=7,this.rof=3,this.totalDamage=30,this.velocity=1.5,this.accuracyMin=0.15,this.accuracyMax=0.03,this.accuracyLoss=0.05,this.accuracyRecover=0.025,this.tracer=1}},rt=class extends R{constructor(){super();this.ammo={rounds:2,capacity:2,reload:2,store:24,storeMax:24,pickup:8},this.longReloadTime=155,this.shortReloadTime=155,this.weaponName="Scrambler",this.internalName="Dozen Gauge",this.standardMeshName="dozenGauge",this.automatic=!1,this.damage=8.5,this.range=8,this.recoil=10,this.rof=8,this.totalDamage=170,this.velocity=1,this.accuracyMin=0.16,this.accuracyMax=0.13,this.accuracyLoss=0.17,this.accuracyRecover=0.02,this.adsMod=0.6,this.movementAccuracyMod=0.2,this.tracer=0}},ct=class extends R{constructor(){super();this.ammo={rounds:15,capacity:15,reload:15,store:60,storeMax:60,pickup:15},this.longReloadTime=225,this.shortReloadTime=165,this.weaponName="Free Ranger",this.internalName="CSG-1",this.standardMeshName="csg1",this.automatic=!1,this.damage=105,this.range=50,this.recoil=13,this.rof=13,this.totalDamage=105,this.velocity=1.75,this.accuracyMin=0.3,this.accuracyMax=0.004,this.accuracyLoss=0.3,this.accuracyRecover=0.025,this.tracer=0}},ht=class extends R{constructor(){super();this.ammo={rounds:15,capacity:15,reload:15,store:60,storeMax:60,pickup:15},this.longReloadTime=195,this.shortReloadTime=160,this.weaponName="Cluck 9mm",this.internalName="Cluck 9mm",this.standardMeshName="cluck9mm",this.automatic=!1,this.damage=26,this.range=15,this.recoil=6,this.rof=4,this.totalDamage=26,this.velocity=1,this.accuracyMin=0.15,this.accuracyMax=0.035,this.accuracyLoss=0.09,this.accuracyRecover=0.08,this.adsMod=0.8,this.movementAccuracyMod=0.6,this.tracer=0}},at=class extends R{constructor(){super();this.ammo={rounds:1,capacity:1,reload:1,store:3,storeMax:3,pickup:1},this.longReloadTime=170,this.shortReloadTime=170,this.weaponName="RPEGG",this.internalName="Eggsploder",this.standardMeshName="rpegg",this.automatic=!1,this.damage=140,this.range=45,this.recoil=60,this.rof=40,this.totalDamage=192.5,this.velocity=0.4,this.accuracyMin=0.3,this.accuracyMax=0.015,this.accuracyLoss=0.3,this.accuracyRecover=0.02,this.radius=2.75}},ut=class extends R{constructor(){super();this.ammo={rounds:40,capacity:40,reload:40,store:200,storeMax:200,pickup:40},this.longReloadTime=225,this.shortReloadTime=190,this.weaponName="Whipper",this.internalName="SMEGG",this.standardMeshName="smg",this.automatic=!0,this.damage=23,this.range=20,this.recoil=7,this.rof=2,this.totalDamage=23,this.velocity=1.25,this.accuracyMin=0.19,this.accuracyMax=0.06,this.accuracyLoss=0.045,this.accuracyRecover=0.05,this.adsMod=0.6,this.movementAccuracyMod=0.7,this.tracer=2}},ft=class extends R{constructor(){super();this.ammo={rounds:1,capacity:1,reload:1,store:12,storeMax:12,pickup:4},this.longReloadTime=144,this.shortReloadTime=144,this.weaponName="Crackshot",this.internalName="M2DZ",this.standardMeshName="m24",this.automatic=!0,this.damage=170,this.range=60,this.recoil=20,this.rof=15,this.totalDamage=170,this.velocity=2,this.accuracyMin=0.35,this.accuracyMax=0,this.accuracyLoss=0.1,this.accuracyRecover=0.023,this.movementAccuracyMod=1.3,this.reloadBloom=!1,this.reloadTimeMod=0.8,this.tracer=0}},mt=class extends R{constructor(){super();this.ammo={rounds:24,capacity:24,reload:24,store:150,storeMax:150,pickup:24},this.longReloadTime=205,this.shortReloadTime=160,this.weaponName="Tri-Hard",this.internalName="AUG",this.standardMeshName="aug",this.automatic=!1,this.damage=32,this.range=20,this.recoil=18,this.rof=15,this.totalDamage=34,this.velocity=1.5,this.accuracyMin=0.15,this.accuracyMax=0.03,this.accuracyLoss=0.037,this.accuracyRecover=0.03,this.adsMod=0.6,this.burst=3,this.burstRof=3,this.movementAccuracyMod=0.8,this.movementInstability=2,this.tracer=0}};var l=()=>null;var dt={FiveMinutes:0,FifteenMinutes:1,OneHour:2},je={Killstreak:0,KillWithWeapon:1,MovementDistance:3,Jumping:4,TimePlayed:6,TimeAlive:7,KillWithCondition:8,TotalKills:10,SpatulaKills:10,Collecting:18,FromTheCoop:20,SpecialOffensive:21,WinKOTC:23,KillWithSpatula:23},$e={Kill:0,Damage:1,Death:2,Movement:3,Collect:4,Time:5,KOTC:6,Spatula:7},Be={None:0,Pinned:2,Team:4,Mod:254,Server:255},lt=3,Q={Ammo:0,Grenade:1},X={Start:0,Score:1,Win:2,Capturing:3,Contested:4,Takeover:5,Abandoned:6,Unclaimed:7},O="AIzaSyDP4SIjKaw6A4c-zvfYxICpbEjn1rRnN50",C=3,L={Reset:1,Pause:2},M={FFA:0,Team:1,Spatula:2,KOTC:3},gt={Locked:1,NoTeamChange:2,NoTeamShuffle:4},xt=13,_=[nt,rt,ct,at,ut,ft,mt],P={Hat:1,Stamp:2,Primary:3,Secondary:4,Grenade:6,Melee:7},S={Forward:1,Backward:2,Left:4,Right:8,Jump:16,Fire:32,Melee:64,Scope:128},I={JoinPublic:0,CreatePrivate:1,JoinPrivate:2},g={HardBoiled:1,EggBreaker:2,Restock:4,OverHeal:8,DoubleEggs:16,MiniEgg:32},wt={Facebook:0,Instagram:1,Tiktok:2,Discord:3,Youtube:4,Twitter:5,Twitch:6},Je={Discord:"rew_1200",Tiktok:"rew_1208",Instagram:"rew_1219",Steam:"rew_1223",Facebook:"rew_1227",Twitter:"rew_1234",Twitch:"rew_twitch_social"},j=256,Ke={Blue:1,Red:2},He=["giveBasketBrosReward","mercZoneFinalGift","midMonthGiveMeEggs","newYolkerSignupReward","newYolkerItemReward","newYolkerWelcomeBack","WelcomeBack"],$=w.isBrowser?null:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36";class At{url="";proxy="";binaryType="";maxRetries=5;connectionTimeout=5000;constructor(t,e){if(w.isBrowser&&e)throw Error("You cannot pass a proxy to a WebSocket in a browser.");this.url=t,this.proxy=e}async tryConnect(t=1){let e=new URL(this.url),s=async()=>{if(t===5)return!1;return await this.tryConnect(t+1)};try{if(this.socket=w.isBrowser?new w.WebSocket(this.url):new w.WebSocket(this.url,{proxy:this.proxy||null,headers:{"accept-encoding":"gzip, deflate, br, zstd","accept-language":"en-US,en;q=0.9","cache-control":"no-cache",connection:"Upgrade",origin:e.origin.replace("ws","http"),pragma:"no-cache","sec-websocket-extensions":"permessage-deflate; client_max_window_bits","user-agent":$}}),this.binaryType)this.socket.binaryType=this.binaryType}catch(i){return console.error(`Failed to connect on try ${t}, trying again...`,i),await s()}if(this.onBeforeConnect)this.onBeforeConnect();return new Promise((i)=>{let n=setTimeout(async()=>{this.socket.close(),i(await s())},this.connectionTimeout),r=async(c)=>{clearTimeout(n),console.error("WebSocket error",c),i(await s())};this.socket.addEventListener("open",async()=>{clearTimeout(n),this.socket.removeEventListener("error",r),i(!0)}),this.socket.addEventListener("error",r)})}get onmessage(){return this.socket?.onmessage}set onmessage(t){if(this.socket)this.socket.onmessage=t;else console.error("set onmessage before socket existed")}get onclose(){return this.socket?.onclose}set onclose(t){if(this.socket)this.socket.onclose=t;else console.error("set onclose before socket existed")}get onerror(){return this.socket?.onerror}set onerror(t){if(this.socket)this.socket.onerror=t;else console.error("set onclose before socket existed")}send(t){return this.socket?.send(t)}close(t){return this.socket?.close(t)}}var F=At;var B={origin:"https://shellshock.io","user-agent":$,"x-client-version":"Chrome/JsCore/9.17.2/FirebaseCore-web","x-firebase-locale":"en"};class D{constructor(t={}){this.proxy=t.proxy,this.instance=t.instance||"shellshock.io",this.protocol=t.protocol||"wss",this.maxRetries=t.maxRetries||5,this.suppressErrors=t.suppressErrors||!1,this.connectionTimeout=t.connectionTimeout||5000}queryServices=async(t)=>{let e=new F(`${this.protocol}://${this.instance}/services/`,this.proxy);if(e.connectionTimeout=this.connectionTimeout,!await e.tryConnect(-2)||e.socket.readyState!==1)return"websocket_connect_fail";return new Promise((i)=>{let n=!1;e.onmessage=(r)=>{n=!0;try{let c=JSON.parse(r.data);i(c)}catch{if(!this.suppressErrors)console.error("queryServices: Bad API JSON response with call:",t.cmd,"and data:",JSON.stringify(t)),console.error("queryServices: Full data sent:",JSON.stringify(t));i("bad_json")}e.close()},e.onerror=()=>!n&&i("unknown_socket_error"),e.onclose=()=>!n&&i("services_closed_early"),e.send(JSON.stringify(t))})};#t=async(t,e,s)=>{if(!t||!e)return"firebase_no_credentials";let i,n;try{i=await(await w.fetch(`https://identitytoolkit.googleapis.com/v1/accounts:${s}?key=${O}`,{method:"POST",body:JSON.stringify({email:t,password:e,returnSecureToken:!0}),headers:{...B,"content-type":"application/json"},proxy:this.proxy})).json(),n=i.idToken}catch(c){if(c.code==="auth/network-request-failed"){if(!this.suppressErrors)console.error("loginWithCredentials: Network req failed (auth/network-request-failed)");return"firebase_network_failed"}else if(c.code==="auth/missing-email")return"firebase_no_credentials";else if(c.code==="ERR_BAD_REQUEST"){if(!this.suppressErrors)console.error("loginWithCredentials: Error:",t,e);if(!this.suppressErrors)console.error("loginWithCredentials: Error:",i||c);return"firebase_bad_request"}if(!this.suppressErrors)console.error("loginWithCredentials: Error:",t,e,c);return"firebase_unknown_error"}if(!n){if(!this.suppressErrors)console.error("loginWithCredentials: the game sent no idToken",i);return"firebase_no_token"}this.idToken=n;let r=await this.queryServices({cmd:"auth",firebaseToken:n});return typeof r==="object"?{firebase:i,...r}:r};createAccount=async(t,e)=>await this.#t(t,e,"signUp");loginWithCredentials=async(t,e)=>await this.#t(t,e,"signInWithPassword");loginWithRefreshToken=async(t)=>{if(!t)return"firebase_no_credentials";let e=new URLSearchParams;e.append("grant_type","refresh_token"),e.append("refresh_token",t);let s,i;try{s=await(await w.fetch(`https://securetoken.googleapis.com/v1/token?key=${O}`,{method:"POST",body:e,headers:{...B,"content-type":"application/x-www-form-urlencoded"},proxy:this.proxy})).json(),i=s.id_token}catch(r){if(r.code==="auth/network-request-failed"){if(!this.suppressErrors)console.error("loginWithRefreshToken: Network req failed (auth/network-request-failed)");return"firebase_network_failed"}else if(r.code==="auth/missing-email")return"firebase_no_credentials";if(!this.suppressErrors)console.error("loginWithRefreshToken: Error:",r,t);return"firebase_unknown_error"}if(!i){if(!this.suppressErrors)console.error("loginWithRefreshToken: the game sent no idToken",s);return"firebase_no_token"}this.idToken=i;let n=await this.queryServices({cmd:"auth",firebaseToken:i});return typeof n==="object"?{firebase:s,...n}:n};loginAnonymously=async()=>{let e=await(await w.fetch(`https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=${O}`,{method:"POST",body:JSON.stringify({returnSecureToken:!0}),headers:{...B,"content-type":"application/json"},proxy:this.proxy})).json(),s=e.idToken;if(!s){if(!this.suppressErrors)console.error("loginAnonymously: the game sent no idToken",e);return"firebase_no_token"}this.idToken=s;let i=await this.queryServices({cmd:"auth",firebaseToken:s});return typeof i==="object"?{firebase:e,...i}:i};sendEmailVerification=async(t=this.idToken)=>{if(!t)return"no_idtoken_passed";let s=await(await w.fetch(`https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=${O}`,{method:"POST",body:JSON.stringify({requestType:"VERIFY_EMAIL",idToken:t}),headers:{...B,"content-type":"application/json"},proxy:this.proxy})).json();if(s.kind!=="identitytoolkit#GetOobConfirmationCodeResponse"){if(!this.suppressErrors)console.error("sendEmailVerification: the game sent an invalid response",s);return"firebase_invalid_response"}return{email:s.email}};verifyOobCode=async(t)=>{if(!t)return"no_oob_code_passed";let s=await(await w.fetch(`https://www.googleapis.com/identitytoolkit/v3/relyingparty/setAccountInfo?key=${O}`,{method:"POST",body:JSON.stringify({oobCode:t}),headers:{...B,"x-client-version":"Chrome/JsCore/3.7.5/FirebaseCore-web",referer:"https://shellshockio-181719.firebaseapp.com/","content-type":"application/json"},proxy:this.proxy})).json();if(!s.emailVerified){if(!this.suppressErrors)console.error("verifyOobCode: the game sent an invalid response",s);return"firebase_invalid_response"}return s.email}}var V=D;class Ct{static buffer;static idx;static init(t){this.buffer=new Uint8Array(t),this.idx=0}static isMoreDataAvailable(){return Math.max(0,this.buffer.length-this.idx)}static unPackInt8U(){let t=this.idx;return this.idx++,this.buffer[t]}static unPackInt8(){return(this.unPackInt8U()+128)%256-128}static unPackInt16U(){let t=this.idx;return this.idx+=2,this.buffer[t]+this.buffer[t+1]*256}static unPackInt24U(){let t=this.idx;return this.idx+=3,this.buffer[t]+this.buffer[t+1]*256+this.buffer[t+2]*65536}static unPackInt32U(){let t=this.idx;return this.idx+=4,this.buffer[t]+this.buffer[t+1]*256+this.buffer[t+2]*65536+this.buffer[t+3]*16777216}static unPackInt16(){return(this.unPackInt16U()+32768)%65536-32768}static unPackInt32(){return(this.unPackInt32U()+2147483648)%4294967296-2147483648}static unPackRadU(){return this.unPackInt24U()/2097152}static unPackRad(){return this.unPackInt16U()/8192-Math.PI}static unPackFloat(){return this.unPackInt16()/256}static unPackDouble(){return this.unPackInt32()/1048576}static unPackString(t){t=t||255;let e=Math.min(this.unPackInt8U(),t);return this.unPackStringHelper(e)}static unPackLongString(t){t=t||16383;let e=Math.min(this.unPackInt16U(),t);return this.unPackStringHelper(e)}static unPackStringHelper(t){if(this.isMoreDataAvailable()<t)return 0;let s="";for(let i=0;i<t;i++){let n=this.unPackInt16U();if(n>0)s+=String.fromCodePoint(n)}return s}}var o=Ct;class Lt{constructor(t=16384){this.idx=0,this.arrayBuffer=new ArrayBuffer(t),this.buffer=new Uint8Array(this.arrayBuffer,0,t)}send(t){let e=new Uint8Array(this.arrayBuffer,0,this.idx);t.send(e)}packInt8(t){this.buffer[this.idx]=t&255,this.idx++}packInt16(t){this.buffer[this.idx]=t&255,this.buffer[this.idx+1]=t>>8&255,this.idx+=2}packInt24(t){this.buffer[this.idx]=t&255,this.buffer[this.idx+1]=t>>8&255,this.buffer[this.idx+2]=t>>16&255,this.idx+=3}packInt32(t){this.buffer[this.idx]=t&255,this.buffer[this.idx+1]=t>>8&255,this.buffer[this.idx+2]=t>>16&255,this.buffer[this.idx+3]=t>>24&255,this.idx+=4}packRadU(t){this.packInt24(t*2097152)}packRad(t){this.packInt16((t+Math.PI)*8192)}packFloat(t){this.packInt16(t*256)}packDouble(t){this.packInt32(t*1048576)}packString(t){if(typeof t!=="string")t="";this.packInt8(t.length);for(let e=0;e<t.length;e++)this.packInt16(t.charCodeAt(e))}packLongString(t){if(typeof t!=="string")t="";this.packInt16(t.length);for(let e=0;e<t.length;e++)this.packInt16(t.charCodeAt(e))}}var p=Lt;var Ye={gameNotFound:4000,gameFull:4001,badName:4002,mainMenu:4003,gameIdleExceeded:4004,corruptedLoginData0:4005,corruptedLoginData1:4006,corruptedLoginData2:4007,corruptedLoginData3:4008,corruptedLoginData4:4009,corruptedLoginData5:4010,gameMaxPlayersExceeded:4011,gameDestroyUser:4012,joinGameOutOfOrder:4013,gameShuttingDown:4014,readyBeforeReady:4015,booted:4016,gameErrorOnUserSocket:4017,uuidNotFound:4018,sessionNotFound:4019,clusterFullCpu:4020,clusterFullMem:4021,noClustersAvailable:4022,locked:4023},b=Ye;var Ze={},a=Ze;var Qe=Object.fromEntries(Object.entries(wt).map(([t,e])=>[e,t.toLowerCase()]));class tt{constructor(t,e=null){if(this.id=t.id,this.uniqueId=t.uniqueId,this.name=t.name,this.safeName=t.safeName,this.team=t.team,this.playing=t.playing,this.socials=t.social&&JSON.parse(t.social),this.socials)this.socials.forEach((s)=>s.type=Qe[s.id]);if(this.isVip=t.upgradeProductId>0,this.showBadge=!t.hideBadge||!1,this.streak=t.score,this.streakRewards=Object.values(g).filter((s)=>t.activeShellStreaks&s),this.scale=this.streakRewards.includes(g.MiniEgg)?0.5:1,this.position={x:t.x,y:t.y,z:t.z},this.jumping=t.$controlKeys&S.Jump,this.scoping=t.$controlKeys&S.Scope,this.climbing=!1,this.view={yaw:t.yaw,pitch:t.pitch},this.updateKotcZone(e),this.character={eggColor:t.shellColor,primaryGun:t.primaryWeaponItem,secondaryGun:t.secondaryWeaponItem,stamp:t.stampItem,hat:t.hatItem,grenade:t.grenadeItem,melee:t.meleeItem,stampPos:{x:t.stampPosX,y:t.stampPosY}},this.stats={totalKills:t.totalKills,totalDeaths:t.totalDeaths,bestStreak:t.bestStreak},this.activeGun=t.weaponIdx,this.selectedGun=t.charClass,this.weapons=[],this.character.primaryGun)this.weapons[0]=new _[this.selectedGun],this.weapons[1]=new ht;this.grenades=1,this.hp=t.hp,this.hpShield=0,this.spawnShield=t.shield,this.randomSeed=0}updateKotcZone(t){if(!t)return this.inKotcZone=!1;let e=Math.floor(this.position.x),s=Math.floor(this.position.y),i=Math.floor(this.position.z);this.inKotcZone=t.some((n)=>n.x===e&&n.y===s&&n.z===i)&&this.playing}}var et=tt;var Xe=(t)=>new Uint8Array(t.match(/.{2}/g).map((e)=>parseInt(e,16))),Ie=new TextEncoder,Ft=async(t)=>{if(typeof process<"u"&&typeof process.getBuiltinModule==="function"){let n=process.getBuiltinModule("node:crypto"),r=Buffer.from("3496afa51f2a553ea1fc5211400c000b","hex");return n.createHmac("sha256",r).update(t).digest("hex")}let e=Xe("3496afa51f2a553ea1fc5211400c000b"),s=await crypto.subtle.importKey("raw",e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),i=await crypto.subtle.sign("HMAC",s,Ie.encode(t));return Array.from(new Uint8Array(i)).map((n)=>n.toString(16).padStart(2,"0")).join("")},G=(t)=>{return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(t-1050359)},qt=(t,e)=>{let s=Math.round(t/(Math.PI*2)*65535),i=0,n=Math.round((e+1.5)/3*32767),r=s<0?0:s;s=r>65535?65535:r;let c=Math.trunc(s);if(c<0)c=0;if(c>4294967295)c=4294967295;c=s>=0?c:0,c=s>65535?0:c;let h=c;i^=h;let m=n<0?0:n;s=m,m=s>32767?32767:s,s=m;let f=Math.trunc(s);if(f<0)f=0;if(f>4294967295)f=4294967295;f=s>=0?f:0,f=s>65535?0:f;let u=f,d=u,k=i^d,E=k&255,N=i<<8,v=(i&65280)>>>8;u=(N|v)>>>0;let Y=E^u;k=k<<8|(k&65280)>>>8,h^=d,d=k^h&255,h=h<<8|(h&65280)>>>8,i=h^i&255;let z=[];return z[3]=G(1050359+(d&63)),z[7]=G(1050359+(u>>>8&63)),z[4]=G(1050359+(k>>>10&63)),z[0]=G(1050359+((i&252)>>>2)),z[5]=G(1050359+(k>>>4&48|Y>>>4&15)),z[2]=G(1050359+(h>>>6&60|d>>>6&3)),z[6]=G(1050359+((u>>>14&3|Y<<2)&63)),z[1]=G(1050359+((h>>>12&15|i<<4)&63)),String.fromCharCode(...z)};class st{connected=!1;onceConnected=[];regionList=[];proxy=null;sessionId="";onListeners=new Map;onceListeners=new Map;#t=!1;#e=!1;constructor(t={}){if(this.#t=t.noExitOnError||!1,!t.instance)t.instance="shellshock.io";if(!t.protocol)t.protocol="wss";if(t.api)this.api=t.api;else this.api=new V({proxy:t.proxy,protocol:t.protocol,instance:t.instance,connectionTimeout:t.connectionTimeout});if(t.sessionId||t.noLogin)this.sessionId=t.sessionId;else this.#s();if(t.proxy&&w.isBrowser)this.#i("proxies do not work and hence are not supported in the browser");else if(t.proxy)this.proxy=t.proxy;this.#n(t.instance,t.protocol,t.noLogin,t.connectionTimeout)}async#n(t,e,s,i){if(this.ws=new F(`${e}://${t}/matchmaker/`,this.proxy),this.ws.connectionTimeout=i||5000,!await this.ws.tryConnect())return this.#i("WebSocket did not connect...");if(this.ws.onmessage=(r)=>{let c=JSON.parse(r.data);if(c.command==="validateUUID")return this.ws.send(JSON.stringify({command:"validateUUID",hash:Ft(c.uuid)}));this.#o("msg",c)},this.ws.onclose=()=>{if(this.connected=!1,!this.#e)this.#n(t,e,s,i)},this.connected=!0,this.sessionId||s)this.onceConnected.forEach((r)=>r())}async#s(){let t=await this.api.loginAnonymously();if(!t||typeof t==="string")this.#o("authFail",t);if(this.sessionId=t.sessionId,this.connected)this.onceConnected.forEach((e)=>e())}send(t){this.ws.send(JSON.stringify(t))}async waitForConnect(){return new Promise((t)=>{if(this.connected)t();else this.onceConnected.push(t)})}async getRegions(){await this.waitForConnect();let t=this;return new Promise((e)=>{let s=(i)=>{if(i.command==="regionList")this.regionList=i.regionList,this.off("msg",s),e(i.regionList)};this.on("msg",s),this.ws.onerror=(i)=>t.#i("failed to get regions",i),this.ws.send(JSON.stringify({command:"regionList"}))})}close(){this.#e=!0,this.connected=!1,this.ws.close()}on(t,e){if(!this.onListeners.has(t))this.onListeners.set(t,[]);this.onListeners.get(t).push(e)}once(t,e){if(!this.onceListeners.has(t))this.onceListeners.set(t,[]);this.onceListeners.get(t).push(e)}off(t,e){if(this.onListeners.has(t))this.onListeners.set(t,this.onListeners.get(t).filter((s)=>s!==e));if(this.onceListeners.has(t))this.onceListeners.set(t,this.onceListeners.get(t).filter((s)=>s!==e))}#o(t,...e){if(this.onListeners.has(t))this.onListeners.get(t).forEach((s)=>s(...e));if(this.onceListeners.has(t))this.onceListeners.get(t).forEach((s)=>s(...e)),this.onceListeners.delete(t)}#i(t){if(this.onListeners.has("error"))this.#o("error",t);else if(this.#t)console.error(t);else throw Error(t)}}var Ut=st;var De=(t,e)=>(t%e+e)%e,Ve=Math.PI*2,Wt=(t)=>Math.round(t*8192)/8192,be=(t)=>Wt(De(Math.atan2(-t.x,-t.z),Ve)),ts=(t)=>Wt(Math.atan2(t.y,Math.hypot(t.x,t.z)));class jt{constructor(t){this.pos=t}validate(){return this.pos&&this.pos.x&&this.pos.y&&this.pos.z}check(t){return t.me.playing}execute(t){let e={x:this.pos.x-t.me.position.x,y:this.pos.y-t.me.position.y,z:this.pos.z-t.me.position.z},s=be(e),i=ts(e);t.state.yaw=s,t.state.pitch=i}}var J=jt;class $t{constructor(t){if(typeof t==="number")this.inputKeys=t;else if(typeof t==="object")this.inputKeys=t.reduce((e,s)=>e|s,0)}validate(){if(typeof this.inputKeys!=="number")return!1;if(this.inputKeys&S.Forward&&this.inputKeys&S.Backward)return!1;if(this.inputKeys&S.Left&&this.inputKeys&S.Right)return!1;return!0}check(t){return t.me.playing}execute(t){t.state.controlKeys=this.inputKeys}}var K=$t;class Mt{constructor(t,e){if(this.x=e.x,this.y=e.y,this.z=e.z,this.positionStr=`${this.x},${this.y},${this.z}`,this.position={x:this.x,y:this.y,z:this.z},this.meshType=t.split(".").pop(),this.f=0,this.g=0,this.h=0,this.visited=null,this.parent=null,this.closed=null,this.links=[],this.isStair())if(e.ry)this.ry=e.ry;else this.ry=0}isFull(){return this.meshType==="full"}canWalkThrough(){return this.meshType==="none"||this.meshType==="ladder"}canWalkOn(){return this.meshType==="full"}isLadder(){return this.meshType==="ladder"}isStair(){return this.meshType==="wedge"}isAir(){return this.meshType==="none"}canLink(t,e){let s=this.x-t.x,i=this.z-t.z,n=this.y-t.y,r=Math.abs(s),c=Math.abs(n),h=Math.abs(i);if(r+c+h===0||r+h>1||this.isFull()||t.isFull())return!1;let m=e.at(this.x,this.y-1,this.z),f=e.at(t.x,t.y-1,t.z);if(!m||!f)return!1;let u={0:{x:0,z:-1},1:{x:-1,z:0},2:{x:0,z:1},3:{x:1,z:0}};switch(this.meshType){case"none":if(n===1&&t.canWalkThrough())return!0;if(m.canWalkOn()||m.isLadder()){if(t.meshType==="none"||t.meshType==="ladder"&&c===0||t.meshType==="wedge"&&n===0&&s===-u[t.ry].x&&i===-u[t.ry].z)return!0}return!1;case"ladder":if(c===1&&t.canWalkThrough())return!0;if(c===0&&m.canWalkOn())return!0;if(t.meshType==="ladder"&&(c===1||m.canWalkOn()&&f.canWalkOn()))return!0;return!1;case"wedge":if(this.x+u[this.ry].x===t.x&&this.z+u[this.ry].z===t.z&&this.y+1===t.y)return!0;if(this.x-u[this.ry].x===t.x&&this.z-u[this.ry].z===t.z&&(this.y===t.y||this.y-1===t.y))return!0;return!1;default:return!1}}flatCenter(){return{x:this.x+0.5,y:this.y+0,z:this.z+0.5}}flatRadialDistance(t){let e=this.flatCenter();return Math.hypot(e.x-t.x,e.z-t.z)}}class St{list=[];constructor(t){let e={};for(let i of Object.keys(t.data))for(let n of t.data[i])e[n.x<<16|n.y<<8|n.z]=!0,this.list.push(new Mt(i,n));for(let i=0;i<t.width;i++)for(let n=0;n<t.height;n++)for(let r=0;r<t.depth;r++)if(!e[i<<16|n<<8|r])this.list.push(new Mt("SPECIAL.air.none",{x:i,y:n,z:r}));let s=new Map;for(let i of this.list)s.set(i.positionStr,i);for(let i of this.list){let n=[{x:i.x+1,y:i.y,z:i.z},{x:i.x-1,y:i.y,z:i.z},{x:i.x,y:i.y+1,z:i.z},{x:i.x,y:i.y-1,z:i.z},{x:i.x,y:i.y,z:i.z+1},{x:i.x,y:i.y,z:i.z-1}];for(let r of n){let c=`${r.x},${r.y},${r.z}`,h=s.get(c);if(h&&i.canLink(h,this))i.links.push(h)}}}at(t,e,s){if(!this.nodeMap){this.nodeMap=new Map;for(let n of this.list){let r=`${n.x},${n.y},${n.z}`;this.nodeMap.set(r,n)}}let i=`${t},${e},${s}`;return this.nodeMap.get(i)}clean(){for(let t of this.list)t.f=0,t.g=0,t.h=0,t.visited=null,t.parent=null,t.closed=null}hasLineOfSight(t,e){let s=e.x-t.x,i=e.y-t.y,n=e.z-t.z,r=Math.max(Math.abs(s),Math.abs(i),Math.abs(n)),c=s/r,h=i/r,m=n/r,f=t.x,u=t.y,d=t.z;for(let k=0;k<=r;k++){let E=this.at(Math.round(f),Math.round(u),Math.round(d));if(E&&E.isFull())return!1;f+=c,u+=h,d+=m}return!0}}var Bt=async(t,e)=>{if(!w.isIsolated&&typeof process<"u"){let{existsSync:i,mkdirSync:n,readFileSync:r,writeFileSync:c}=process.getBuiltinModule("node:fs"),{join:h}=process.getBuiltinModule("node:path"),{homedir:m}=process.getBuiltinModule("node:os"),f=h(m(),".yolkbot");if(!i(f))n(f);let u=h(f,"maps");if(!i(u))n(u);let d=h(u,`${t}-${e}.json`);if(i(d))return JSON.parse(r(d,"utf-8"));let k=await(await fetch(`https://esm.sh/gh/yolkorg/maps/maps/${t}.json?${e}`)).json();return c(d,JSON.stringify(k,null,4),{flag:"w+"}),k}return await(await fetch(`https://esm.sh/gh/yolkorg/maps/maps/${t}.json?${e}`)).json()},Jt=(t)=>{let e=0,s={},i=[];for(let c of t){if(!s[c.x])s[c.x]={};if(!s[c.x][c.y])s[c.x][c.y]={};s[c.x][c.y][c.z]={zone:null}}let n=[{x:-1,z:0},{x:1,z:0},{x:0,z:-1},{x:0,z:1}],r=(c,h,m)=>s[c]&&s[c][h]&&s[c][h][m]?s[c][h][m]:null;for(let c of t)if(!s[c.x][c.y][c.z].zone){c.zone=++e,s[c.x][c.y][c.z].zone=c.zone;let h=[c],m;do{m=0;for(let f of t)if(!s[f.x][f.y][f.z].zone)for(let u of n){let d=r(f.x+u.x,f.y,f.z+u.z);if(d&&d.zone===c.zone){m++,f.zone=c.zone,s[f.x][f.y][f.z].zone=c.zone,h.push(f);break}}}while(m>0);i.push(h)}return i};var Kt=[];var H=[];var yt=[];var Ht=Object.fromEntries(Object.entries(M).map(([t,e])=>[e,t])),Yt=Object.fromEntries(Object.entries(gt).map(([t,e])=>[t[0].toLowerCase()+t.slice(1),e])),Zt={CHALLENGES:1,BOT_STATS:2,PATHFINDING:3,PING:5,COSMETIC_DATA:6,PLAYER_HEALTH:7,PACKET_HOOK:8,LOG_PACKETS:10,NO_LOGIN:11,DEBUG_BUFFER:12,NO_AFK_KICK:16,LOAD_MAP:17,OBSERVE_GAME:18,NO_REGION_CHECK:19,NO_EXIT_ON_ERROR:20,RENEW_SESSION:21,VIP_HIDE_BADGE:22},zt=(t,e)=>(t%e+e)%e;class Tt{static Intents=Zt;Intents=Zt;#t=[];#e={};#n=[];#s;#o;constructor(t={}){if(t.proxy&&w.isBrowser)this.processError("proxies do not work and hence are not supported in the browser");if(this.intents=t.intents||[],this.intents.includes(this.Intents.COSMETIC_DATA)){if(!l(1001))this.processError("you cannot use the COSMETIC_DATA intent inside of the singlefile browser bundles")}if(this.instance=t.instance||"shellshock.io",this.protocol=t.protocol||"wss",this.proxy=t.proxy||"",this.connectionTimeout=t.connectionTimeout||5000,this.state={name:"yolkbot",weaponIdx:0,inGame:!1,chatLines:0,yaw:0,pitch:0,controlKeys:0,reloading:!1,swappingGun:!1,usingMelee:!1,stateIdx:0,serverStateIdx:0,shotsFired:0,buffer:[],left:!1},this.players={},this.me=new et({}),this.game={raw:{},code:"",socket:null,gameModeId:0,gameMode:Ht[0],mapIdx:0,map:{filename:"",hash:"",name:"",modes:{FFA:!1,Teams:!1,Spatula:!1,King:!1},availability:"both",numPlayers:"18",raw:{},nodes:{},zones:[]},playerLimit:0,isGameOwner:!1,isPrivate:!0,options:{gravity:1,damage:1,healthRegen:1,locked:!1,noTeamChange:!1,noTeamShuffle:!1,weaponsDisabled:Array(7).fill(!1),mustUseSecondary:!1},collectables:[[],[]],teamScore:[0,0,0],spatula:{coords:{x:0,y:0,z:0},controlledBy:0,controlledByTeam:0},stage:X.Capturing,zoneNumber:0,activeZone:[],capturing:0,captureProgress:0,numCapturing:0,capturePercent:0},this.#o=this.game,this.account={id:0,firebase:{idToken:"",refreshToken:"",expiresIn:"3600",localId:""},firebaseId:"",sessionId:"",session:0,email:"",password:"",cw:{atLimit:!1,limit:0,secondsUntilPlay:0,canPlayAgain:Date.now()},loadout:{hatId:null,meleeId:0,stampId:null,classIdx:0,colorIdx:0,grenadeId:0,primaryId:[3100,3600,3400,3800,4000,4200,4500],secondaryId:[,,,,,,,].fill(3000),stampPositionX:0,stampPositionY:0},ownedItemIds:[],vip:!1,emailVerified:!1,isAged:!1,eggBalance:0,adminRoles:0,rawLoginData:{},isDoubleEggWeeknd:()=>{let e=new Date().getUTCDay(),s=new Date().getUTCHours();return e>=5&&s>=20||e===6||e===0}},this.#s=this.account,this.matchmaker=null,this.api=new V({proxy:this.proxy,protocol:this.protocol,instance:this.instance,maxRetries:t?.apiMaxRetries,connectionTimeout:this.connectionTimeout}),this.ping=0,this.lastPingTime=-1,this.lastDeathTime=-1,this.lastUpdateTick=0,this.pathing={nodeList:null,followingPath:!1,activePath:null,activeNode:null,activeNodeIdx:0},this.hasQuit=!1,this.intents.includes(this.Intents.NO_AFK_KICK))this.afkKickInterval=0;if(this.intents.includes(this.Intents.RENEW_SESSION))this.renewSessionInterval=0}dispatch(t){if(t.validate(this)){if(t.check(this))t.execute(this);else this.#t.push(t);return!0}return!1}async createAccount(t,e){this.account=this.#s,this.account.email=t,this.account.password=e;let s=await this.api.createAccount(t,e);return this.processLoginData(s)}async login(t,e){this.account=this.#s,this.account.email=t,this.account.password=e;let s=await this.api.loginWithCredentials(t,e);return this.processLoginData(s)}async loginWithRefreshToken(t){this.account=this.#s;let e=await this.api.loginWithRefreshToken(t);return this.processLoginData(e)}async loginAnonymously(){this.account=this.#s;let t=await this.api.loginAnonymously();return this.processLoginData(t)}processLoginData(t){if(typeof t!=="object")return this.emit("authFail",t),t;if(t.banRemaining)return this.emit("banned",t.banRemaining),"account_banned";if(!t.playerOutput)return this.emit("authFail",t),t;if(this.account.firebase=t.firebase||{},t=t.playerOutput,this.account.rawLoginData=t,this.account.adminRoles=t.adminRoles||0,this.account.eggBalance=t.currentBalance,this.account.emailVerified=t.emailVerified,this.account.firebaseId=t.firebaseId,this.account.id=t.id,this.account.isAged=new Date(t.dateCreated).getTime()<1714546800000,this.account.loadout=t.loadout,this.account.ownedItemIds=t.ownedItemIds,this.account.session=t.session,this.account.sessionId=t.sessionId,this.account.vip=t.active_sub==="IsVIP",this.intents.includes(this.Intents.BOT_STATS))this.account.stats={lifetime:t.statsLifetime,monthly:t.statsCurrent};if(this.intents.includes(this.Intents.CHALLENGES))this.#i(t.challenges);if(this.emit("authSuccess",this.account),this.intents.includes(this.Intents.RENEW_SESSION))this.renewSessionInterval=setInterval(async()=>{if(!this.account?.sessionId)return clearInterval(this.renewSessionInterval);if((await this.api.queryServices({cmd:"renewSession",sessionId:this.account.sessionId})).data!=="renewed")this.emit("sessionExpired")},600000);return this.account}#i(t){this.account.challenges=[];for(let e of t){let s=Kt.find((i)=>i.id===e.challengeId);if(!s)continue;delete e.playerId,this.account.challenges.push({raw:{challengeInfo:s,challengeData:e},id:e.challengeId,name:s.loc.title,desc:s.loc.desc,rewardEggs:s.reward,isRerolled:!!e.reset,isClaimed:!!e.claimed,isCompleted:!!e.completed,progressNum:e.progress,goalNum:s.goal})}}async initMatchmaker(){if(!this.account.sessionId&&!this.intents.includes(this.Intents.NO_LOGIN)){let t=await this.loginAnonymously();if(typeof t!=="object")return t}if(!this.matchmaker){if(this.matchmaker=new Ut({api:this.api,proxy:this.proxy,protocol:this.protocol,instance:this.instance,sessionId:this.account.sessionId,connectionTimeout:this.connectionTimeout,noLogin:this.intents.includes(this.Intents.NO_LOGIN)}),!await this.matchmaker.ws.tryConnect())return"matchmaker_tryconnect_failed";this.matchmaker.on("authFail",(e)=>this.emit("authFail",e)),this.matchmaker.on("error",(e)=>this.processError(e))}return!0}async findPublicGame(t,e){if(typeof t!=="string")return"no_region_passed";if(!yt.find((i)=>i.id===t)&&!this.intents.includes(this.Intents.NO_REGION_CHECK))return"invalid_region_passed";if(typeof e!=="number")return"no_mode_passed";if(Object.values(M).indexOf(e)===-1)return"invalid_mode_passed";if(!await this.initMatchmaker())return"matchmaker_init_fail";return await new Promise((i)=>{let n=(r)=>{if(r.command==="notice")return;if(this.matchmaker.off("msg",n),r.command==="gameFound")return i(r);if(r.error==="sessionNotFound")return i("internal_session_error");this.processError("unknown matchmaker response",JSON.stringify(r))};this.matchmaker.on("msg",n),this.matchmaker.send({command:"findGame",region:t,playType:I.JoinPublic,gameType:e,sessionId:this.account.sessionId})})}async createPrivateGame(t,e,s){if(typeof t!=="string")return"no_region_passed";if(!yt.find((r)=>r.id===t)&&!this.intents.includes(this.Intents.NO_REGION_CHECK))return"invalid_region_passed";if(typeof e!=="number")return"no_mode_passed";if(Object.values(M).indexOf(e)===-1)return"invalid_mode_passed";if(typeof s!=="string")return"no_map_passed";let i=H.findIndex((r)=>r.name.toLowerCase()===s.toLowerCase());if(i===-1)return"invalid_map_passed";if(!await this.initMatchmaker())return"matchmaker_init_fail";return await new Promise((r)=>{let c=(h)=>{if(h.command==="notice")return;if(this.matchmaker.off("msg",c),h.command==="gameFound")return r(h);if(h.error==="sessionNotFound")return r("internal_session_error");this.processError("unknown matchmaker response",JSON.stringify(h))};this.matchmaker.on("msg",c),this.matchmaker.send({command:"findGame",region:t,playType:I.CreatePrivate,gameType:e,sessionId:this.account.sessionId,noobLobby:!1,map:i})})}async join(t,e){if(this.state.name=t||"yolkbot",typeof e==="string"){if(e.includes("#"))e=e.split("#")[1];if(!await this.initMatchmaker())return"matchmaker_init_fail";if(await new Promise((r)=>{let c=(h)=>{if(h.command==="gameFound")this.matchmaker.off("msg",c),this.game.raw=h,this.game.code=h.id,r(h.id);if(h.error&&h.error==="gameNotFound")return this.processError(`game "${e}" not found, it may have expired.`),this.leave(),"gameNotFound"};this.matchmaker.on("msg",c),this.matchmaker.send({command:"joinGame",id:e,observe:!1,sessionId:this.account.sessionId})})==="gameNotFound")return"game_not_found";if(!this.game.raw.id)return this.processError("an internal error occured while joining the game, please report this to developers")}if(typeof e==="object"){if(this.account.id===0)await this.loginAnonymously();if(this.game.raw=e,this.game.code=this.game.raw.id,!this.game.raw.id)return"invalid_game_object";if(!this.game.raw.subdomain)return"invalid_game_object";if(!this.game.raw.uuid)return"invalid_game_object"}let s=this.game.raw.host||(this.instance.startsWith("localhost:")?this.instance:`${this.game.raw.subdomain}.${this.instance}`);if(this.game.socket=new F(`${this.protocol}://${s}/game/${this.game.raw.id}`,this.proxy),this.game.socket.binaryType="arraybuffer",this.game.socket.connectionTimeout=this.connectionTimeout,this.game.socket.onBeforeConnect=()=>{this.game.socket.onmessage=(n)=>this.processPacket(n.data),this.game.socket.onclose=(n)=>{if(this.state.left)this.state.left=!1;else this.emit("close",n.code),this.leave(-1)}},!await this.game.socket.tryConnect())return"websocket_tryconnect_fail";return!0}#r(){if(Object.entries(this.me.position).map((e)=>Math.floor(e[1])).join(",")===this.pathing.activePath[this.pathing.activePath.length-1].positionStr)this.pathing.followingPath=!1,this.pathing.activePath=null,this.pathing.activeNode=null,this.pathing.activeNodeIdx=0,this.dispatch(new K(0));else{let e;if(this.pathing.activeNodeIdx<this.pathing.activePath.length-1)e=this.pathing.activePath[this.pathing.activeNodeIdx+1].flatCenter(),this.dispatch(new J(e));else e=this.pathing.activePath[this.pathing.activeNodeIdx].flatCenter(),this.dispatch(new J(e));for(let s of this.pathing.activePath)if(s.flatRadialDistance(this.me.position)<0.1&&s.position.y===Math.floor(this.me.position.y)){if(this.pathing.activePath.indexOf(s)>=this.pathing.activeNodeIdx){this.pathing.activeNodeIdx=this.pathing.activePath.indexOf(s)+1,this.pathing.activeNode=this.pathing.activePath[this.pathing.activeNodeIdx];break}}if(!(this.state.controlKeys&S.Forward))this.dispatch(new K(S.Forward))}}update(){if(this.hasQuit)return;if(this.pathing.followingPath&&this.intents.includes(this.Intents.PATHFINDING))this.#r();for(let e=0;e<this.#t.length;e++){let s=this.#t[e];if(s.check(this))s.execute(this),this.#t.splice(e,1)}if(this.state.chatLines=Math.max(0,this.state.chatLines-0.008333333333333333),this.me.playing){let e=this.state.stateIdx;if(this.intents.includes(this.Intents.DEBUG_BUFFER))console.log("setting buffer for idx",e),console.log("checking...shotsFired",this.state.shotsFired);if(this.me.jumping=!!(this.state.controlKeys&S.Jump),this.state.buffer[e]={controlKeys:this.state.controlKeys,yaw:this.state.yaw,pitch:this.state.pitch,shotsFired:this.state.shotsFired},this.state.shotsFired=0,this.lastUpdateTick>=2){this.emit("tick");let s=new p;s.packInt8(a.syncMe),s.packInt8(this.state.stateIdx),s.packInt8(this.state.serverStateIdx);let i=zt(this.state.stateIdx-C+1,j);for(let n=0;n<C;n++){let r=zt(i+n,j),c=this.state.buffer[r]||{},h=c.controlKeys||0,m=c.shotsFired||0,f=c.yaw??this.state.yaw,u=c.pitch??this.state.pitch;if(this.intents.includes(this.Intents.DEBUG_BUFFER))console.log("going with",this.state.stateIdx,i,r,c);s.packInt8(h),s.packInt8(m),s.packString(qt(f,u)),s.packInt8(100)}s.send(this.game.socket),this.state.buffer=[],this.lastUpdateTick=0}else this.lastUpdateTick++;this.state.stateIdx=zt(this.state.stateIdx+1,j)}if(!this.intents.includes(this.Intents.PLAYER_HEALTH))return;let t=0.1*(this.game.isPrivate?this.game.options.healthRegen:1);for(let e of Object.values(this.players)){if(e.playing&&e.hp>0){let s=e.streakRewards.includes(g.OverHeal);e.hp+=s?-t:t,e.hp=s?Math.max(100,e.hp):Math.min(100,e.hp)}if(e.spawnShield>0)e.spawnShield-=6}}on(t,e){if(Object.keys(this.#e).includes(t))this.#e[t].push(e);else this.#e[t]=[e]}once(t,e){let s=(...i)=>{e(...i),this.off(t,s)};this.on(t,s)}onAny(t){this.#n.push(t)}off(t,e){if(e)this.#e[t]=this.#e[t].filter((s)=>s!==e);else this.#e[t]=[]}emit(t,...e){if(this.hasQuit)return;if(this.#e[t])for(let s of this.#e[t])s(...e);for(let s of this.#n)s(t,...e)}#c(){let t=o.unPackInt8U(),e=o.unPackInt8U(),s=o.unPackString().valueOf(),i=this.players[t];this.emit("chat",i,s,e)}#h(){let t=o.unPackInt8U(),e=this.intents.includes(this.Intents.COSMETIC_DATA),s={id:t,uniqueId:o.unPackString(),name:o.unPackString(),safeName:o.unPackString(),charClass:o.unPackInt8U(),team:o.unPackInt8U(),primaryWeaponItem:e?l(o.unPackInt16U()):o.unPackInt16U(),secondaryWeaponItem:e?l(o.unPackInt16U()):o.unPackInt16U(),shellColor:o.unPackInt8U(),hatItem:e?l(o.unPackInt16U()):o.unPackInt16U(),stampItem:e?l(o.unPackInt16U()):o.unPackInt16U(),stampPosX:o.unPackInt8(),stampPosY:o.unPackInt8(),grenadeItem:e?l(o.unPackInt16U()):o.unPackInt16U(),meleeItem:e?l(o.unPackInt16U()):o.unPackInt16U(),x:o.unPackFloat(),y:o.unPackFloat(),z:o.unPackFloat(),$dx:o.unPackFloat(),$dy:o.unPackFloat(),$dz:o.unPackFloat(),yaw:o.unPackRadU(),pitch:o.unPackRad(),score:o.unPackInt32U(),$kills:o.unPackInt16U(),$deaths:o.unPackInt16U(),$streak:o.unPackInt16U(),totalKills:o.unPackInt32U(),totalDeaths:o.unPackInt32U(),bestStreak:o.unPackInt16U(),$bestOverallStreak:o.unPackInt16U(),shield:o.unPackInt8U(),hp:o.unPackInt8U(),playing:o.unPackInt8U(),weaponIdx:o.unPackInt8U(),$controlKeys:o.unPackInt8U(),upgradeProductId:o.unPackInt8U(),activeShellStreaks:o.unPackInt8U(),social:o.unPackLongString(),hideBadge:o.unPackInt8U()};this.game.mapIdx=o.unPackInt8U(),this.game.isPrivate=o.unPackInt8U()===1,this.game.gameModeId=o.unPackInt8U();let i=new et(s,this.game.gameMode===M.KOTC?this.game.activeZone:null);if(!this.players[s.id])this.players[s.id]=i;if(this.emit("playerJoin",i),this.me.id===s.id)this.me=i,this.emit("botJoin",this.me)}#a(){let t=o.unPackInt8U(),e=o.unPackInt16U(),s=o.unPackFloat(),i=o.unPackFloat(),n=o.unPackFloat(),r=o.unPackInt8U(),c=o.unPackInt8U(),h=o.unPackInt8U(),m=o.unPackInt8U(),f=o.unPackInt8U(),u=this.players[t];if(u){if(u.playing=!0,u.randomSeed=e,u.weapons[0]&&u.weapons[0].ammo)u.weapons[0].ammo.rounds=r;if(u.weapons[0]&&u.weapons[0].ammo)u.weapons[0].ammo.store=c;if(u.weapons[1]&&u.weapons[1].ammo)u.weapons[1].ammo.rounds=h;if(u.weapons[1]&&u.weapons[1].ammo)u.weapons[1].ammo.store=m;u.grenades=f,u.position={x:s,y:i,z:n},u.spawnShield=120,this.emit("playerRespawn",u)}}#u(){let t=o.unPackInt8U(),e=o.unPackFloat(),s=o.unPackFloat(),i=o.unPackFloat(),n=o.unPackInt8U(),r=this.players[t];if(!r||r.id===this.me.id){for(let N=0;N<C;N++)o.unPackInt8U(),o.unPackRadU(),o.unPackRad(),o.unPackInt8U();return}for(let N=0;N<C;N++){let v=o.unPackInt8U();if(v&S.Jump)r.jumping=!0;else r.jumping=!1;if(v&S.Scope)r.scoping=!0;else r.scoping=!1;let A={...r.view};if(r.view.yaw=o.unPackRadU(),r.view.pitch=o.unPackRad(),r.view.yaw!==A.yaw||r.view.pitch!==A.pitch)this.emit("playerRotate",r,A,r.view);r.scale=o.unPackInt8U()}let c=r.position,h=c.x!==e||c.y!==s||c.z!==i,m=r.climbing!==n,f=h||m,u=f?{...c}:null;if(c.x!==e)c.x=e;if(c.z!==i)c.z=i;if(!r.jumping||Math.abs(c.y-s)>0.5)c.y=s;if(m)r.climbing=n;if(!f)return;if(this.emit("playerMove",r,u,c),this.game.gameModeId!==M.KOTC)return;let d=this.game.activeZone,k=!!r.inKotcZone;if(!d&&k){r.inKotcZone=!1,this.emit("playerLeaveZone",r);return}r.updateKotcZone(d);let E=!!r.inKotcZone;if(k!==E)r.inKotcZone=E,this.emit(E?"playerEnterZone":"playerLeaveZone",r)}#f(){let t=o.unPackInt8U(),e=this.players[t];if(e){if(e.playing=!1,e.streakRewards)e.streakRewards=[];if(this.emit("playerPause",e),e.inKotcZone)e.inKotcZone=!1,this.emit("playerLeaveZone",e)}}#m(){let t=o.unPackInt8U(),e=o.unPackInt8U(),s=this.players[t];if(s)s.activeGun=e,this.emit("playerSwapWeapon",s,e)}#p(){let t=o.unPackInt8U(),e=o.unPackInt8U();o.unPackInt8U(),o.unPackInt8U();let s=o.unPackInt8U(),i=this.players[t],n=this.players[e],r=i?{...i}:null;if(i){if(i.id===this.me.id)this.lastDeathTime=Date.now();i.playing=!1,i.streak=0,i.hp=100,i.spawnShield=0,i.stats.totalDeaths++,i.inKotcZone=!1,this.emit("playerLeaveZone",i)}if(n){if(n.streak++,n.stats.totalKills++,n.streak>n.stats.bestStreak)n.stats.bestStreak=n.streak}this.emit("playerDeath",i,n,r,s)}#d(){let t=o.unPackInt8U(),e={posX:o.unPackFloat(),posY:o.unPackFloat(),posZ:o.unPackFloat(),dirX:o.unPackFloat(),dirY:o.unPackFloat(),dirZ:o.unPackFloat()},s=this.players[t];if(!s)return;let i=s.weapons[s.activeGun];if(i&&i.ammo)i.ammo.rounds--,this.emit("playerFire",s,i,e)}#l(){let t=o.unPackInt16U(),e=o.unPackInt8U(),s=o.unPackFloat(),i=o.unPackFloat(),n=o.unPackFloat();this.game.collectables[e].push({id:t,x:s,y:i,z:n}),this.emit("spawnItem",e,{x:s,y:i,z:n},t)}#g(){let t=o.unPackInt8U(),e=o.unPackInt8U(),s=o.unPackInt8U(),i=o.unPackInt16U(),n=this.players[t];if(!n)return;if(this.game.collectables[e]=this.game.collectables[e].filter((r)=>r.id!==i),e===Q.Ammo){let r=n.weapons[s];if(r&&r.ammo)r.ammo.store=Math.min(r.ammo.storeMax,r.ammo.store+r.ammo.pickup),this.emit("playerCollectAmmo",n,r,i)}if(e===Q.Grenade){if(n.grenades++,n.grenades>3)n.grenades=3;this.emit("playerCollectGrenade",n,i)}}#x(){let t=o.unPackInt8U(),e=o.unPackInt8U(),s=this.players[t];if(!s)return;let i=s.hp;s.hp=e,this.emit("playerDamage",s,i,s.hp)}#w(){let t=o.unPackInt8U();o.unPackFloat(),o.unPackFloat();let e=this.me.hp;this.me.hp=t,this.emit("playerDamage",this.me,e,this.me.hp)}#k(){let t=o.unPackInt8U(),e=this.players[t];o.unPackInt8U();let s=o.unPackInt8U(),i=o.unPackFloat(),n=o.unPackFloat(),r=o.unPackFloat();if(this.me.climbing=!!o.unPackInt8U(),o.unPackInt8U(),o.unPackInt8U(),!e)return;this.state.serverStateIdx=s;let c=e.position.x,h=e.position.y,m=e.position.z;if(e.position.x=i,e.position.y=n,e.position.z=r,c!==i||h!==n||m!==r)this.emit("playerMove",e,{x:c,y:h,z:m},{x:i,y:n,z:r})}#M(){let t=new p;t.packInt8(a.eventModifier),t.send(this.game.socket)}#S(){let t=o.unPackInt8U(),e={...this.players[t]};delete this.players[t],this.emit("playerLeave",e)}#y(){if(this.game.gameModeId===M.Spatula){let t={...this.game};this.game.teamScore[1]=o.unPackInt16U(),this.game.teamScore[2]=o.unPackInt16U();let e={x:o.unPackFloat(),y:o.unPackFloat(),z:o.unPackFloat()},s=o.unPackInt8U(),i=o.unPackInt8U();this.game.spatula={coords:e,controlledBy:s,controlledByTeam:i},this.emit("gameStateChange",t,this.game)}else if(this.game.gameModeId===M.KOTC){let t={...this.game};this.game.stage=o.unPackInt8U(),this.game.zoneNumber=o.unPackInt8U(),this.game.capturing=o.unPackInt8U(),this.game.captureProgress=o.unPackInt16U(),this.game.numCapturing=o.unPackInt8U(),this.game.teamScore[1]=o.unPackInt8U(),this.game.teamScore[2]=o.unPackInt8U(),this.game.capturePercent=this.game.captureProgress/1000,this.game.activeZone=this.game.map.zones?this.game.map.zones[this.game.zoneNumber-1]:null;let e=Object.values(this.players).filter((s)=>s.inKotcZone&&s.playing);if(this.game.activeZone)Object.values(this.players).forEach((s)=>s.updateKotcZone(this.game.activeZone));if(this.game.numCapturing<=0)Object.values(this.players).forEach((s)=>{s.inKotcZone=!1,this.emit("playerLeaveZone",s)});this.emit("gameStateChange",t,this.game,e)}else if(this.game.gameModeId===M.Team)this.game.teamScore[1]=o.unPackInt16U(),this.game.teamScore[2]=o.unPackInt16U();if(this.game.gameModeId!==M.Spatula)delete this.game.spatula;if(this.game.gameModeId!==M.KOTC)delete this.game.stage,delete this.game.zoneNumber,delete this.game.capturing,delete this.game.captureProgress,delete this.game.numCapturing,delete this.game.numCapturing,delete this.game.activeZone;if(this.game.gameModeId===M.FFA)delete this.game.teamScore}#z(){let t=o.unPackInt8U(),e=o.unPackInt8U(),s=this.players[t];if(!s)return;switch(e){case g.HardBoiled:if(t===this.me.id)this.me.shieldHp=100;s.streakRewards.push(g.HardBoiled);break;case g.EggBreaker:s.streakRewards.push(g.EggBreaker);break;case g.Restock:{if(s.grenades=3,s.weapons[0]&&s.weapons[0].ammo)s.weapons[0].ammo.rounds=s.weapons[0].ammo.capacity,s.weapons[0].ammo.store=s.weapons[0].ammo.storeMax;if(s.weapons[1]&&s.weapons[1].ammo)s.weapons[1].ammo.rounds=s.weapons[1].ammo.capacity,s.weapons[1].ammo.store=s.weapons[1].ammo.storeMax;break}case g.OverHeal:s.hp=Math.min(200,s.hp+100),s.streakRewards.push(g.OverHeal);break;case g.DoubleEggs:s.streakRewards.push(g.DoubleEggs);break;case g.MiniEgg:s.scale=0.5,s.streakRewards.push(g.MiniEgg);break}this.emit("playerBeginStreak",s,e)}#T(){let t=o.unPackInt8U(),e=o.unPackInt8U(),s=this.players[t];if(!s)return;if([g.EggBreaker,g.OverHeal,g.DoubleEggs,g.MiniEgg].includes(e)&&s.streakRewards.includes(e))s.streakRewards=s.streakRewards.filter((n)=>n!==e);if(e===g.MiniEgg)s.scale=1;this.emit("playerEndStreak",s,e)}#E(){let t=o.unPackInt8U(),e=o.unPackInt8U(),s=o.unPackFloat(),i=o.unPackFloat();if(!this.me)return;if(this.me.shieldHp=t,this.me.hp=e,this.me.shieldHp<=0)this.me.streakRewards=this.me.streakRewards.filter((n)=>n!==g.HardBoiled),this.emit("selfShieldLost",this.me.hp,{dx:s,dz:i});else this.emit("selfShieldHit",this.me.shieldHp,this.me.hp,{dx:s,dz:i})}#P(){let t={...this.game.options},e=o.unPackInt8U(),s=o.unPackInt8U(),i=o.unPackInt8U();if(e<1||e>4)e=4;if(s<0||s>8)s=4;if(i>16)i=4;this.game.options.gravity=e/4,this.game.options.damage=s/4,this.game.options.healthRegen=i/4;let n=o.unPackInt8U();Object.keys(Yt).forEach((r)=>{let c=n&Yt[r]?1:0;this.game.options[r]=c}),this.game.options.weaponsDisabled=Array.from({length:7},()=>o.unPackInt8U()===1),this.game.options.mustUseSecondary=this.game.options.weaponsDisabled.every((r)=>r),this.emit("gameOptionsChange",t,this.game.options)}#N(){let t=o.unPackInt8U();if(t===L.Pause)this.emit("gameForcePause"),setTimeout(()=>this.me.playing=!1,3000);if(t===L.Reset){if(Object.values(this.players).forEach((e)=>e.streak=0),this.game.gameModeId!==M.FFA)this.game.teamScore=[0,0,0];if(this.game.gameModeId===M.Spatula)this.game.spatula.controlledBy=0,this.game.spatula.controlledByTeam=0,this.game.spatula.coords={x:0,y:0,z:0};if(this.game.gameModeId===M.KOTC)this.game.stage=X.Capturing,this.game.zoneNumber=0,this.game.activeZone=null,this.game.capturing=0,this.game.captureProgress=0,this.game.numCapturing=0,this.game.capturePercent=0;this.emit("gameReset")}}#R(){if(!this.intents.includes(this.Intents.PING))return;let t=this.ping;this.ping=Date.now()-this.lastPingTime,this.emit("pingUpdate",t,this.ping),setTimeout(()=>{let e=new p;e.packInt8(a.ping),e.send(this.game.socket),this.lastPingTime=Date.now()},1000)}#G(){let t=o.unPackInt8U(),e=o.unPackInt8U(),s=this.players[t];if(!s)return;let i=s.team;s.team=e,s.streak=0,this.emit("playerSwitchTeam",s,i,e)}#O(){let t=o.unPackInt8U(),e=o.unPackInt8U(),s=o.unPackInt16U(),i=o.unPackInt16U(),n=o.unPackInt8U(),r=o.unPackInt16U(),c=o.unPackInt16U(),h=o.unPackInt16U(),m=o.unPackInt16U(),f=o.unPackInt8(),u=o.unPackInt8(),d=this.intents.includes(this.Intents.COSMETIC_DATA),k=d?l(s):s,E=d?l(i):i,N=d?l(r):r,v=d?l(c):c,A=d?l(h):h,Y=d?l(m):m,x=this.players[t];if(x){let z={...x.character},Nt=x.selectedGun;if(x.character.eggColor=n,x.character.primaryGun=k,x.character.secondaryGun=E,x.character.stamp=v,x.character.hat=N,x.character.grenade=A,x.character.melee=Y,x.character.stampPos.x=f,x.character.stampPos.y=u,x.selectedGun=e,x.weapons[0]=new _[e],Nt!==x.selectedGun)this.emit("playerChangeGun",x,Nt,x.selectedGun);if(z!==x.character)this.emit("playerChangeCharacter",x,z,x.character)}}#_(){let t=o.unPackInt32U(),e=this.account.eggBalance;this.account.eggBalance=t,this.emit("balanceUpdate",e,t)}#v(){this.me.playing=!1,this.emit("respawnDenied")}#A(){let t=o.unPackInt8U(),e=this.players[t];if(e)this.emit("playerMelee",e)}#C(){let t=o.unPackInt8U(),e=this.players[t];if(!e)return;let s=e.weapons[e.activeGun];if(s.ammo){let i=Math.min(Math.min(s.ammo.capacity,s.ammo.reload)-s.ammo.rounds,s.ammo.store);s.ammo.rounds+=i,s.ammo.store-=i}this.emit("playerReload",e,s)}updateGameOptions(){let t=new p;t.packInt8(a.gameOptions),t.packInt8(this.game.options.gravity*4),t.packInt8(this.game.options.damage*4),t.packInt8(this.game.options.healthRegen*4);let e=(this.game.options.locked?1:0)|(this.game.options.noTeamChange?2:0)|(this.game.options.noTeamShuffle?4:0);t.packInt8(e),this.game.options.weaponsDisabled.forEach((s)=>{t.packInt8(s?1:0)}),t.send(this.game.socket)}#L(){this.game.isPrivate=!0,this.updateGameOptions()}#F(){let t=o.unPackInt8U(),e=o.unPackInt16U(),s=o.unPackFloat(),i=o.unPackFloat(),n=o.unPackFloat(),r=o.unPackInt8U(),c=o.unPackFloat();if(this.intents.includes(this.Intents.COSMETIC_DATA))e=l(e);if(t===P.Grenade)this.emit("grenadeExplode",e,{x:s,y:i,z:n},r,c);else this.emit("rocketHit",{x:s,y:i,z:n},r,c)}#q(){let t=o.unPackInt8U(),e=o.unPackFloat(),s=o.unPackFloat(),i=o.unPackFloat(),n=o.unPackFloat(),r=o.unPackFloat(),c=o.unPackFloat(),h=this.players[t];if(h)h.grenades--,this.emit("playerThrowGrenade",h,{x:e,y:s,z:i},{x:n,y:r,z:c})}#U(){let t=o.unPackInt8U(),e=o.unPackInt8U(),s=this.players[t];if(!s)return;if(!this.intents.includes(this.Intents.CHALLENGES))return this.emit("challengeComplete",s,e);let i=this.account.challenges.find((n)=>n.id===e);if(this.emit("challengeComplete",s,i),s.id===this.me.id)this.refreshChallenges()}#W(){let t=new p;t.packInt8(this.intents.includes(this.Intents.OBSERVE_GAME)?a.observeGame:a.joinGame),t.packString(this.game.raw.uuid),t.packInt8(+this.intents.includes(this.Intents.VIP_HIDE_BADGE)),t.packInt8(this.state.weaponIdx||this.account?.loadout?.classIdx||0),t.packString(this.state.name),t.packInt32(this.account.session),t.packString(this.account.sessionId),t.packString(this.account.firebaseId),t.send(this.game.socket)}async#j(){if(this.me.id=o.unPackInt8U(),this.me.team=o.unPackInt8U(),this.game.gameModeId=o.unPackInt8U(),this.game.gameMode=Ht[this.game.gameModeId],this.game.mapIdx=o.unPackInt8U(),this.game.map=H[this.game.mapIdx],this.game.playerLimit=o.unPackInt8U(),this.game.isGameOwner=o.unPackInt8U()===1,this.game.isPrivate=o.unPackInt8U()===1||this.game.isGameOwner,o.unPackInt8U(),this.intents.includes(this.Intents.LOAD_MAP)||this.intents.includes(this.Intents.PATHFINDING)){if(this.game.map.raw=await Bt(this.game.map.filename,this.game.map.hash),this.emit("mapLoad",this.game.map.raw),this.game.gameModeId===M.KOTC){let e=this.game.map.raw.data["DYNAMIC.capture-zone.none"];if(e){if(this.game.map.zones=Jt(e),!this.game.activeZone)this.game.activeZone=this.game.map.zones[this.game.zoneNumber-1]}else delete this.game.map.zones}if(this.intents.includes(this.Intents.PATHFINDING))this.pathing.nodeList=new St(this.game.map.raw)}this.state.inGame=!0,this.lastDeathTime=Date.now();let t=new p;if(t.packInt8(a.clientReady),t.send(this.game.socket),this.updateIntervalId=setInterval(()=>this.update(),33.333333333333336),this.intents.includes(this.Intents.PING)){this.lastPingTime=Date.now();let e=new p;e.packInt8(a.ping),e.send(this.game.socket)}if(this.intents.includes(this.Intents.NO_AFK_KICK))this.afkKickInterval=setInterval(()=>{if(this.state.inGame&&!this.me.playing&&Date.now()-this.lastDeathTime>=15000){let e=new p;e.packInt8(a.keepAlive),e.send(this.game.socket)}},15000);this.emit("gameReady")}#$(){let t=o.unPackInt8U(),e=o.unPackString(128),s=o.unPackString(32),i=this.players[t];if(!i)return;i.admin={ip:s,dbId:e},this.emit("playerInfo",i,s,e)}packetHandlers={[a.syncThem]:()=>this.#u(),[a.fire]:()=>this.#d(),[a.hitThem]:()=>this.#x(),[a.syncMe]:()=>this.#k(),[a.hitMe]:()=>this.#w(),[a.swapWeapon]:()=>this.#m(),[a.collectItem]:()=>this.#g(),[a.respawn]:()=>this.#a(),[a.die]:()=>this.#p(),[a.pause]:()=>this.#f(),[a.chat]:()=>this.#c(),[a.addPlayer]:()=>this.#h(),[a.removePlayer]:()=>this.#S(),[a.eventModifier]:()=>this.#M(),[a.metaGameState]:()=>this.#y(),[a.beginShellStreak]:()=>this.#z(),[a.endShellStreak]:()=>this.#T(),[a.hitMeHardBoiled]:()=>this.#E(),[a.gameOptions]:()=>this.#P(),[a.ping]:()=>this.#R(),[a.switchTeam]:()=>this.#G(),[a.changeCharacter]:()=>this.#O(),[a.reload]:()=>this.#C(),[a.explode]:()=>this.#F(),[a.throwGrenade]:()=>this.#q(),[a.spawnItem]:()=>this.#l(),[a.melee]:()=>this.#A(),[a.updateBalance]:()=>this.#_(),[a.challengeCompleted]:()=>this.#U(),[a.socketReady]:()=>this.#W(),[a.gameJoined]:()=>this.#j(),[a.gameAction]:()=>this.#N(),[a.requestGameOptions]:()=>this.#L(),[a.respawnDenied]:()=>this.#v(),[a.playerInfo]:()=>this.#$(),[a.expireUpgrade]:()=>{},[a.clientReady]:()=>{},[a.musicInfo]:()=>o.unPackLongString()};processPacket(t){if(o.init(t),this.intents.includes(this.Intents.PACKET_HOOK))this.emit("packet",t);let e=0,s=0,i=!1;while(o.isMoreDataAvailable()&&!i){let n=o.unPackInt8U(),r=this.packetHandlers[n];if(r)r();else{if(console.error(`processPacket: I got but couldn't identify a: ${Object.keys(a).find((c)=>a[c]===n)} ${n}`),e)console.error(`processPacket: It may be a result of the ${e} command (${s}).`);i=!0;break}if(e=Object.keys(a).find((c)=>a[c]===n),s=n,this.intents.includes(this.Intents.LOG_PACKETS))console.log(`[LOG_PACKETS] Packet ${e}: ${s}`)}}async checkChiknWinner(){let t=await this.api.queryServices({cmd:"chicknWinnerReady",id:this.account.id,sessionId:this.account.sessionId});if(typeof t==="string")return t;return this.account.cw.limit=t.limit,this.account.cw.atLimit=t.limit>=4,this.account.cw.secondsUntilPlay=(this.account.cw.atLimit?t.period:t.span)||0,this.account.cw.canPlayAgain=Date.now()+this.account.cw.secondsUntilPlay*1000,this.account.cw}async playChiknWinner(t=!0){if(this.account.cw.atLimit||this.account.cw.limit>lt)return"hit_daily_limit";if(this.account.cw.canPlayAgain>Date.now()&&t)return"on_cooldown";let e=await this.api.queryServices({cmd:"incentivizedVideoReward",firebaseId:this.account.firebaseId,id:this.account.id,sessionId:this.account.sessionId,token:null});if(typeof e==="string")return e;if(e.error){if(e.error==="RATELIMITED"||e.error==="RATELMITED")return await this.checkChiknWinner(),"on_cooldown";else if(e.error==="SESSION_EXPIRED")return this.emit("sessionExpired"),"session_expired";return console.error("Unknown Chikn Winner response, report this on Github:",e),"unknown_error"}if(e.reward)return this.account.eggBalance+=e.reward.eggsGiven,e.reward.itemIds.forEach((s)=>this.account.ownedItemIds.push(s)),await this.checkChiknWinner(),e.reward;return console.error("Unknown Chikn Winner response, report this on Github:",e),"unknown_error"}async resetChiknWinner(){if(this.account.eggBalance<200)return"not_enough_eggs";if(!this.account.cw.atLimit)return"not_at_limit";let t=await this.api.queryServices({cmd:"chwReset",sessionId:this.account.sessionId});if(typeof t==="string")return t;if(t.result!=="SUCCESS")return console.error("Unknown Chikn Winner reset response, report this on Github:",t),"unknown_error";return this.account.eggBalance-=200,await this.checkChiknWinner(),this.account.cw}canSee(t){if(!this.intents.includes(this.Intents.PATHFINDING))return this.processError("You must have the PATHFINDING intent to use this method.");return this.pathing.nodeList.hasLineOfSight(this.me.position,t.position)}async refreshChallenges(){let t=await this.api.queryServices({cmd:"challengeGetDaily",sessionId:this.account.sessionId,playerId:this.account.id});if(typeof t==="string")return t;return this.#i(t),this.account.challenges}async rerollChallenge(t){let e=await this.api.queryServices({cmd:"challengeRerollSlot",sessionId:this.account.sessionId,slotId:t});if(typeof e==="string")return e;return this.#i(e),this.account.challenges}async claimChallenge(t){let e=await this.api.queryServices({cmd:"challengeClaimReward",sessionId:this.account.sessionId,slotId:t});if(typeof e==="string")return e;if(this.#i(e.challenges),e.reward>0)this.account.eggBalance+=e.reward;return{eggReward:e.reward,updatedChallenges:this.account.challenges}}async refreshBalance(){let t=await this.api.queryServices({cmd:"checkBalance",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId});if(typeof t==="string")return t;return this.account.eggBalance=t.currentBalance,t.currentBalance}async redeemCode(t){let e=await this.api.queryServices({cmd:"redeem",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,id:this.account.id,code:t});if(typeof e==="string")return e;if(e.result==="SUCCESS")return this.account.eggBalance=e.eggs_given,e.item_ids.forEach((s)=>this.account.ownedItemIds.push(s)),{result:e,eggsGiven:e.eggs_given,itemIds:e.item_ids};return e}async claimURLReward(t){let e=await this.api.queryServices({cmd:"urlRewardParams",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,reward:t});if(typeof e==="string")return e;if(e.result==="SUCCESS")this.account.eggBalance+=e.eggsGiven,e.itemIds.forEach((s)=>this.account.ownedItemIds.push(s));return e}async claimSocialReward(t){let e=await this.api.queryServices({cmd:"reward",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,rewardTag:t});if(typeof e==="string")return e;if(e.result==="SUCCESS")this.account.eggBalance+=e.eggsGiven,e.itemIds.forEach((s)=>this.account.ownedItemIds.push(s));return e}async buyItem(t){let e=await this.api.queryServices({cmd:"buy",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,itemId:t,save:!0});if(typeof e==="string")return e;if(e.result==="SUCCESS")this.account.eggBalance=e.currentBalance,this.account.ownedItemIds.push(e.itemId);return e}processError(...t){let e=t.join(" ");if(this.#e.error&&this.#e.error.length)this.emit("error",e);else if(this.intents.includes(this.Intents.NO_EXIT_ON_ERROR))console.error(e);else throw Error(e)}leave(t=b.mainMenu){if(this.hasQuit)return;if(t>-1)this.game?.socket?.close(t),this.state.left=!0,this.emit("leave",t);clearInterval(this.updateIntervalId),this.#t=[],this.state.inGame=!1,this.state.chatLines=0,this.state.reloading=!1,this.state.swappingGun=!1,this.state.usingMelee=!1,this.state.stateIdx=0,this.state.serverStateIdx=0,this.state.shotsFired=0,this.state.buffer=[],this.players={},this.me=new et({}),this.game=this.#o,this.ping=0,this.lastPingTime=-1,this.lastDeathTime=-1,this.lastUpdateTick=0,this.pathing={nodeList:null,followingPath:!1,activePath:null,activeNode:null,activeNodeIdx:0}}logout(){if(this.account=this.#s,this.intents.includes(this.Intents.RENEW_SESSION))clearInterval(this.renewSessionInterval)}quit(t=!1){if(this.hasQuit)return;if(this.leave(),this.matchmaker){if(this.matchmaker.close(),!t)delete this.matchmaker}if(!t)delete this.account,delete this.api,delete this.game,delete this.me,delete this.pathing,delete this.players,delete this.state,this.#s={},this.#o={},this.#e={},this.#n=[],this.#t=[];if(this.intents.includes(this.Intents.NO_AFK_KICK))clearInterval(this.afkKickInterval);if(this.intents.includes(this.Intents.RENEW_SESSION))clearInterval(this.renewSessionInterval);this.hasQuit=!0}}class Qt{constructor(t,e,s=""){this.uniqueId=t,this.duration=e,this.reason=s}validate(t){if(typeof this.uniqueId!=="string"||typeof this.reason!=="string")return!1;if(typeof this.duration!=="number"||!Object.values(dt).some((e)=>this.duration===e))return!1;if(!(t.account.adminRoles&4))return!1;return!0}check(){return!0}execute(t){let e=new p;e.packInt8(a.banPlayer),e.packString(this.uniqueId),e.packString(this.reason),e.packInt8(this.duration),e.send(t.game.socket)}}var Xt=Qt;class It{constructor(t){this.uniqueId=t}validate(t){return typeof this.uniqueId==="string"&&t.game.isGameOwner&&Object.values(t.players).find((e)=>e.uniqueId===this.uniqueId)}check(){return!0}execute(t){let e=new p;e.packInt8(a.bootPlayer),e.packString(this.uniqueId),e.send(t.game.socket)}}var Dt=It;class Vt{constructor(t){this.msg=t}validate(){if(typeof this.msg!=="string")return!1;if(this.msg.length<1||this.msg.length>64)return!1;return!0}check(t){if(!t.state?.inGame)return!1;if(!t.game.isPrivate&&!t.account.adminRoles&&t.state.chatLines>=2)return!1;if(!t.game.isPrivate&&!t.account.emailVerified&&!t.account.isAged)return!1;return!0}execute(t){t.state.chatLines++;let e=new p;e.packInt8(a.chat),e.packString(this.msg),e.send(t.game.socket)}}var bt=Vt;class te{constructor(t){this.amount=t||1}validate(){return this.amount>=1}check(t){return t.me.playing&&!t.state.reloading&&!t.state.swappingGun&&!t.state.usingMelee&&t.me.weapons[t.me.activeGun].ammo.rounds>=this.amount}execute(t){t.state.shotsFired+=this.amount||1}}var ee=te;var es=Array.from({length:4},(t,e)=>(e+1)*0.25),ss=Array.from({length:9},(t,e)=>e*0.25),is=Array.from({length:17},(t,e)=>e*0.25),y=(t,e)=>typeof t>"u"?e:t;class se{constructor(t){this.changes=t}#t(t){let e={};if(e.gravity=y(this.changes.gravity,t.game.options.gravity),e.damage=y(this.changes.damage,t.game.options.damage),e.healthRegen=y(this.changes.healthRegen,t.game.options.healthRegen),e.locked=y(this.changes.locked,t.game.options.locked),e.noTeamChange=y(this.changes.noTeamChange,t.game.options.noTeamChange),e.noTeamShuffle=y(this.changes.noTeamShuffle,t.game.options.noTeamShuffle),e.weaponsDisabled=[y(this.changes.disableEggk,t.game.options.weaponsDisabled[0]),y(this.changes.disableScrambler,t.game.options.weaponsDisabled[1]),y(this.changes.disableFreeRanger,t.game.options.weaponsDisabled[2]),y(this.changes.disableRPG,t.game.options.weaponsDisabled[3]),y(this.changes.disableWhipper,t.game.options.weaponsDisabled[4]),y(this.changes.disableCrackshot,t.game.options.weaponsDisabled[5]),y(this.changes.disableTriHard,t.game.options.weaponsDisabled[6])],this.changes.toDisable&&Array.isArray(this.changes.toDisable))this.changes.toDisable.forEach((s)=>e.weaponsDisabled[s]=!0);if(this.changes.toEnable&&Array.isArray(this.changes.toEnable))this.changes.toEnable.forEach((s)=>e.weaponsDisabled[s]=!1);if(this.changes.rawWeaponsDisabled&&Array.isArray(this.changes.rawWeaponsDisabled)&&this.changes.rawWeaponsDisabled.length===7)e.weaponsDisabled=this.changes.rawWeaponsDisabled.map((s)=>!!s);return e.mustUseSecondary=e.weaponsDisabled.every((s)=>s),e}validate(t){let e=this.#t(t);if(!es.includes(e.gravity))return!1;if(!ss.includes(e.damage))return!1;if(!is.includes(e.healthRegen))return!1;if(typeof e.locked!=="boolean")return!1;if(typeof e.noTeamChange!=="boolean")return!1;if(typeof e.noTeamShuffle!=="boolean")return!1;if(!Array.isArray(e.weaponsDisabled))return!1;if(e.weaponsDisabled.length!==7)return!1;if(e.weaponsDisabled.some((s)=>typeof s!=="boolean"))return!1;return!0}check(t){return t.game.isGameOwner}execute(t){t.game.options=this.#t(t),t.updateGameOptions()}}var ie=se;class Et{constructor(t){this.content=[],this.scoreFunction=t}push(t){this.content.push(t),this.bubbleUp(this.content.length-1)}rescoreElement(t){this.sinkDown(this.content.indexOf(t))}pop(){let t=this.content[0],e=this.content.pop();if(this.content.length>0)this.content[0]=e,this.sinkDown(0);return t}remove(t){let e=this.content.length;for(let s=0;s<e;s++){if(this.content[s]!==t)continue;let i=this.content.pop();if(s===e-1)break;this.content[s]=i,this.bubbleUp(s),this.sinkDown(s);break}}size(){return this.content.length}bubbleUp(t){let e=this.content[t],s=this.scoreFunction(e);while(t>0){let i=Math.floor((t+1)/2)-1,n=this.content[i];if(s>=this.scoreFunction(n))break;this.content[i]=e,this.content[t]=n,t=i}}includes(t){return this.content.includes(t)}sinkDown(t){let e=this.content.length,s=this.content[t],i=this.scoreFunction(s);while(!0){let n=(t+1)*2,r=n-1,c=null,h;if(r<e){let m=this.content[r];if(h=this.scoreFunction(m),h<i)c=r}if(n<e){let m=this.content[n];if(this.scoreFunction(m)<(c===null?i:h))c=n}if(c===null)break;this.content[t]=this.content[c],this.content[c]=s,t=c}}}class T{constructor(t){this.list=t}heuristic(t,e){return Math.abs(t.x-e.x)+Math.abs(t.y-e.y)+Math.abs(t.z-e.z)}reversePath(t){let e=[];while(t.parent)e.push(t),t=t.parent;return e.reverse(),e}path(t,e){this.list.clean();let s=new Et((n)=>n.f),i=[];t.h=this.heuristic(t,e),t.g=0,t.f=t.g+t.h,s.push(t);while(s.size()!==0){let n=s.pop();if(n===e)return this.reversePath(n);i.push(n);let r=n.links;for(let c=0;c<r.length;c++){let h=r[c];if(i.includes(h))continue;let m=n.g+1,f=h.visited;if(!f||m<h.g)if(h.visited=!0,h.parent=n,h.g=m,h.h=this.heuristic(h.position,e.position),h.f=h.g+h.h,f)s.rescoreElement(h);else s.push(h)}}return null}}class oe{validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.collectables[0].length}execute(t){this.pather=new T(t.pathing.nodeList);let e=200,s=null;for(let h of t.game.collectables[0]){let m=h.x-t.me.position.x,f=h.y-t.me.position.y,u=h.z-t.me.position.z,d=Math.sqrt(m*m+f*f+u*u);if(d<e)e=d,s=h}let i=Object.entries(t.me.position).map((h)=>Math.floor(h[1])),n=Object.entries(s).map((h)=>Math.floor(h[1])),r=t.pathing.nodeList.at(...i),c=t.pathing.nodeList.at(...n);if(t.pathing.activePath=this.pather.path(r,c),!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0,t.pathing.activeNode=t.pathing.activePath[1],t.pathing.activeNodeIdx=1}}var ne=oe;class re{validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.zoneNumber&&t.game.activeZone}execute(t){this.pather=new T(t.pathing.nodeList);let e=200,s=null;for(let h of t.game.activeZone){let m=h.x-t.me.position.x,f=h.y-t.me.position.y,u=h.z-t.me.position.z,d=Math.sqrt(m*m+f*f+u*u);if(d<e)e=d,s=h}let i=Object.entries(t.me.position).map((h)=>Math.floor(h[1])),n=Object.entries(s).map((h)=>Math.floor(h[1])),r=t.pathing.nodeList.at(...i),c=t.pathing.nodeList.at(...n);if(t.pathing.activePath=this.pather.path(r,c),!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0,t.pathing.activeNode=t.pathing.activePath[1],t.pathing.activeNodeIdx=1}}var ce=re;class he{validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.collectables[1].length}execute(t){this.pather=new T(t.pathing.nodeList);let e=200,s=null;for(let h of t.game.collectables[1]){let m=h.x-t.me.position.x,f=h.y-t.me.position.y,u=h.z-t.me.position.z,d=Math.sqrt(m*m+f*f+u*u);if(d<e)e=d,s=h}let i=Object.entries(t.me.position).map((h)=>Math.floor(h[1])),n=Object.entries(s).map((h)=>Math.floor(h[1])),r=t.pathing.nodeList.at(...i),c=t.pathing.nodeList.at(...n);if(t.pathing.activePath=this.pather.path(r,c),!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0,t.pathing.activeNode=t.pathing.activePath[1],t.pathing.activeNodeIdx=1}}var ae=he;class ue{idOrName;constructor(t){this.idOrName=t}validate(t){if(!t.intents.includes(t.Intents.PATHFINDING))return!1;if(!this.idOrName)return!1;return!!(t.players[this.idOrName.toString()]||t.players.find((s)=>s.name===this.idOrName))}check(t){if(!t.me.playing)return!1;let e=t.players[this.idOrName.toString()]||t.players.find((s)=>s.name===this.idOrName);return e&&e.playing&&e.position&&e.position.x}execute(t){this.pather=new T(t.pathing.nodeList);let e=t.players[this.idOrName.toString()]||t.players.find((c)=>c.name===this.idOrName),s=Object.entries(t.me.position).map((c)=>Math.floor(c[1])),i=Object.entries(e.position).map((c)=>Math.floor(c[1])),n=t.pathing.nodeList.at(...s),r=t.pathing.nodeList.at(...i);if(t.pathing.activePath=this.pather.path(n,r),!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0,t.pathing.activeNode=t.pathing.activePath[1],t.pathing.activeNodeIdx=1}}var fe=ue;class me{validate(t){return t.intents.includes(t.Intents.PATHFINDING)}check(t){return t.me.playing&&t.game.spatula&&t.game.spatula.coords&&t.game.spatula.coords.x}execute(t){this.pather=new T(t.pathing.nodeList);let e=Object.entries(t.me.position).map((r)=>Math.floor(r[1])),s=Object.entries(t.game.spatula.coords).map((r)=>Math.floor(r[1])),i=t.pathing.nodeList.at(...e),n=t.pathing.nodeList.at(...s);if(t.pathing.activePath=this.pather.path(i,n),!t.pathing.activePath)return t.processError("no path found");if(t.pathing.activePath.length<2)return t.processError("path too short");t.pathing.followingPath=!0,t.pathing.activeNode=t.pathing.activePath[1],t.pathing.activeNodeIdx=1}}var pe=me;var os=(t,e)=>(t%e+e)%e,ns=Math.PI*2,de=(t)=>Math.round(t*8192)/8192,rs=(t)=>de(os(Math.atan2(-t.x,-t.z),ns)),cs=(t)=>de(Math.atan2(t.y,Math.hypot(t.x,t.z)));class le{idOrName;constructor(t){this.idOrName=t}validate(t){return!!(t.players[this.idOrName.toString()]||t.players.find((s)=>s.name===this.idOrName))}check(t){if(!t.me.playing)return!1;let e=t.players[this.idOrName.toString()]||t.players.find((s)=>s.name===this.idOrName);return e&&e.playing&&e.position&&e.position.x}execute(t){let e=t.players[this.idOrName.toString()]||t.players.find((r)=>r.name===this.idOrName),s={x:e.position.x-t.me.position.x,y:e.position.y-t.me.position.y-0.05,z:e.position.z-t.me.position.z},i=rs(s),n=cs(s);t.state.yaw=i,t.state.pitch=n}}var ge=le;class xe{validate(){return!0}check(t){return t.me.playing&&!t.state.reloading&&!t.state.swappingGun&&!t.state.usingMelee}execute(t){let e=new p;e.packInt8(a.melee),e.send(t.game.socket),t.usingMelee=!0,setTimeout(()=>{t.usingMelee=!1,t.swappingGun=!0,setTimeout(()=>{t.swappingGun=!1},0.5*xt)},566.6666666666667)}}var we=xe;class ke{validate(){return!0}check(t){return t.me.playing}execute(t){let e=new p;e.packInt8(a.pause),e.send(t.game.socket),setTimeout(()=>t.me.playing=!1,3000)}}var Me=ke;class Se{validate(){return!0}check(t){return t.me.playing&&!t.state.reloading&&!t.state.swappingGun&&!t.state.usingMelee}execute(t){let e=new p;e.packInt8(a.reload),e.send(t.game.socket);let s=t.me.weapons[t.me.activeGun];if(s.ammo){let r=Math.min(Math.min(s.ammo.capacity,s.ammo.reload)-s.ammo.rounds,s.ammo.store);s.ammo.rounds+=r,s.ammo.store-=r}t.emit("playerReload",t.me,s);let i=t.me.weapons[t.me.activeGun],n=i.ammo.rounds<1;t.state.reloading=!0,setTimeout(()=>t.state.reloading=!1,n?i.longReloadTime:i.shortReloadTime)}}var ye=Se;class ze{constructor(t,e={}){if(this.idOrName=t,this.reasons=[!!e.cheating,!!e.harassment,!!e.offensive,!!e.other],!this.reasons.includes(!0))this.reasons[3]=!0;for(let s=0;s<this.reasons.length;s++)if(this.reasons[s]===!0)this.reasonInt|=1<<s}validate(t){if(this.reasons.every((s)=>s===!1))return!1;if(!(t.players[this.idOrName.toString()]||t.players.find((s)=>s.name===this.idOrName)))return!1;return!0}check(t){if(!t.state.inGame)return!1;return!!(t.players[this.idOrName.toString()]||t.players.find((s)=>s.name===this.idOrName))}execute(t){let e=t.players[this.idOrName.toString()]||t.players.find((i)=>i.name===this.idOrName),s=new p;s.packInt8(a.reportPlayer),s.packString(e.uniqueId),s.packInt8(this.reasonInt),s.send(t.game.socket)}}var Te=ze;class Ee{validate(){return!0}check(t){return t.game.isGameOwner}execute(t){let e=new p;e.packInt8(a.gameAction),e.packInt8(L.Reset),e.send(t.game.socket)}}var Pe=Ee;var q=(t)=>l(t)&&l(t).unlock==="default",U=(t,e)=>l(t)&&l(t).item_type_id===e;class Ne{constructor(t){this.changes={classIdx:t.gunId,hatId:t.hatId,stampId:t.stampId,grenadeId:t.grenadeId,meleeId:t.meleeId,colorIdx:t.eggColor,primaryId:t.primaryIds,secondaryId:t.secondaryIds},this.changes=Object.fromEntries(Object.entries(this.changes).filter(([,e])=>!!e))}validate(t){let e=this.changes;if(e.colorIdx&&e.colorIdx>=7&&!t.account.vip)return!1;if(e.colorIdx&&e.colorIdx>=14)return!1;if(U(e.hatId,P.Hat)&&!q(e.hatId)&&!t.account.ownedItemIds.includes(e.hatId))return!1;if(U(e.stampId,P.Stamp)&&!q(e.stampId)&&!t.account.ownedItemIds.includes(e.stampId))return!1;if(U(e.grenadeId,P.Grenade)&&!q(e.grenadeId)&&!t.account.ownedItemIds.includes(e.grenadeId))return!1;if(U(e.meleeId,P.Melee)&&!q(e.meleeId)&&!t.account.ownedItemIds.includes(e.meleeId))return!1;if(typeof e.classIdx==="number"&&e.classIdx>6||e.classIdx<0)return!1;if(this.changes.primaryId)for(let s=0;s<7;s++){let i=this.changes.primaryId[s];if(!U(i,P.Primary)||!q(i)&&!t.account.ownedItemIds.includes(i))return!1}if(this.changes.secondaryId)for(let s=0;s<7;s++){let i=this.changes.secondaryId[s];if(!U(i,P.Secondary)||!q(i)&&!t.account.ownedItemIds.includes(i))return!1}return!0}check(t){return!t.me.playing}execute(t){if(t.me&&this.changes.classIdx&&this.changes.classIdx!==t.me.selectedGun)t.me.weapons[0]=new _[this.changes.classIdx];t.state.weaponIdx=this.changes.classIdx||t.state.weaponIdx;let e={...t.account.loadout,...this.changes},s=t.api.queryServices({cmd:"saveLoadout",save:!0,firebaseId:t.account.firebaseId,sessionId:t.account.sessionId,loadout:e});if(t.account.loadout=e,t.me)s.then(()=>{if(t.state.inGame){let n=new p;n.packInt8(a.changeCharacter),n.packInt8(this.changes?.classIdx||t.me.selectedGun),n.send(t.game.socket)}let i=t.intents.includes(t.Intents.COSMETIC_DATA);Object.entries(this.changes).forEach(([n,r])=>{if(n==="classIdx")t.me.selectedGun=r;else if(n==="hatId")t.me.character.hat=i?l(r):r;else if(n==="stampId")t.me.character.stamp=i?l(r):r;else if(n==="grenadeId")t.me.character.grenade=i?l(r):r;else if(n==="meleeId")t.me.character.melee=i?l(r):r;else if(n==="colorIdx")t.me.character.eggColor=r;else if(n==="primaryId")t.me.character.primaryGun=i?l(r[t.me.selectedGun]):r;else if(n==="secondaryId")t.me.character.secondaryGun=i?l(r[t.me.selectedGun]):r})})}}var Re=Ne;class Ge{validate(){return!0}check(t){if(t.me.playing)return!1;if(t.lastDeathTime+6000<Date.now())return!1;if(t.intents.includes(t.Intents.OBSERVE_GAME))return!1;return!0}execute(t){let e=new p;e.packInt8(a.requestRespawn),e.send(t.game.socket),t.state.buffer=[]}}var Oe=Ge;class _e{constructor(t){this.manualWeapon=t}validate(){return typeof this.manualWeapon==="number"||typeof this.manualWeapon>"u"}check(t){return t.me.playing&&!t.state.reloading&&!t.state.swappingGun&&!t.state.usingMelee}execute(t){let e=+!t.me.activeGun;if(typeof this.manualWeapon==="number")e=this.manualWeapon;t.me.activeGun=e;let s=new p;s.packInt8(a.swapWeapon),s.packInt8(t.me.activeGun),s.send(t.game.socket)}}var ve=_e;class Ae{validate(){return!0}check(t){if(!t.state.inGame||t.me.playing)return!1;if(t.game.gameModeId===0)return!1;if(t.intents.includes(t.Intents.OBSERVE_GAME))return!1;if(t.game.isPrivate)return!t.game.options.noTeamChange;let e=t.players,s=t.me.team,i=e.filter((r)=>r.team===s).length,n=e.filter((r)=>r.team!==s).length;if(n>i)return!1;if(i===n)return!1;return!0}execute(t){let e=new p;e.packInt8(a.switchTeam),e.send(t.game.socket)}}var Ce=Ae;class Le{constructor(t=1){this.power=t}validate(){return typeof this.power==="number"&&this.power>=0&&this.power<=1}check(t){return t.me.playing&&!t.state.reloading&&!t.state.swappingGun&&!t.state.usingMelee}execute(t){let e=new p;e.packInt8(a.throwGrenade),e.packFloat(this.power),e.send(t.game.socket)}}var Fe=Le;var qe={BanPlayerDispatch:Xt,BootPlayerDispatch:Dt,ChatDispatch:bt,FireDispatch:ee,GameOptionsDispatch:ie,GoToAmmoDispatch:ne,GoToCoopDispatch:ce,GoToGrenadeDispatch:ae,GoToPlayerDispatch:fe,GoToSpatulaDispatch:pe,LookAtDispatch:ge,LookAtPosDispatch:J,MeleeDispatch:we,MovementDispatch:K,PauseDispatch:Me,ReloadDispatch:ye,ReportPlayerDispatch:Te,ResetGameDispatch:Pe,SaveLoadoutDispatch:Re,SpawnDispatch:Oe,SwapWeaponDispatch:ve,SwitchTeamDispatch:Ce,ThrowGrenadeDispatch:Fe};var Pt={};it(Pt,{CommOut:()=>p,CommIn:()=>o,CommCode:()=>a,CloseCode:()=>b});var hs={API:D,Bot:Tt,GamePlayer:tt,Matchmaker:st,Dispatches:qe,Comm:Pt,Constants:kt,Guns:pt,Maps:H};window.yolkbot=hs;if(window.onYolkReady&&typeof window.onYolkReady==="function")console.warn("window.onYolkReady is no longer required as of yolkbot 1.3.0. You don't have to put your code inside it anymore."),window.onYolkReady();