@infernus/core 0.11.10 → 0.11.11

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.
package/dist/bundle.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var ce=require("iconv-lite"),d=require("@infernus/streamer");function ft(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(a){if(a!=="default"){var n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:function(){return e[a]}})}}),t.default=e,Object.freeze(t)}var h=ft(d);function De(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}function yt(e,t){const a={},n=Object.keys(e);for(let r=0;r<n.length;r++){const i=n[r],s=e[i];a[t(s,i,e)]=s}return a}function ne(e,t){const a=Object.keys(t);for(let n=0;n<a.length;n++){const r=a[n],i=t[r],s=e[r];Array.isArray(i)?Array.isArray(s)?e[r]=ne(s,i):e[r]=ne([],i):De(i)?De(s)?e[r]=ne(s,i):e[r]=ne({},i):(s===void 0||i!==void 0)&&(e[r]=i)}return e}function Pt(e,t){const a={...e};for(let n=0;n<t.length;n++){const r=t[n];delete a[r]}return a}const It=new RegExp("\\p{Lu}?\\p{Ll}+|[0-9]+|\\p{Lu}+(?!\\p{Ll})|\\p{Emoji_Presentation}|\\p{Extended_Pictographic}|\\p{L}+","gu");function Et(e){return Array.from(e.match(It)??[])}function _e(e){return Et(e).map(a=>a.toLowerCase()).join("_")}function At(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Ct(e){return Object.is(e,-0)?"-0":e.toString()}function Tt(e){const t=[],a=e.length;if(a===0)return t;let n=0,r="",i="",s=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n<a;){const l=e[n];i?l==="\\"&&n+1<a?(n++,r+=e[n]):l===i?i="":r+=l:s?l==='"'||l==="'"?i=l:l==="]"?(s=!1,t.push(r),r=""):r+=l:l==="["?(s=!0,r&&(t.push(r),r="")):l==="."?r&&(t.push(r),r=""):r+=l,n++}return r&&t.push(r),t}function he(e,t,a){if(e==null)return a;switch(typeof t){case"string":{const n=e[t];return n===void 0?At(t)?he(e,Tt(t),a):a:n}case"number":case"symbol":{typeof t=="number"&&(t=Ct(t));const n=e[t];return n===void 0?a:n}default:{if(Array.isArray(t))return Dt(e,t,a);Object.is(t?.valueOf(),-0)?t="-0":t=String(t);const n=e[t];return n===void 0?a:n}}}function Dt(e,t,a){if(t.length===0)return a;let n=e;for(let r=0;r<t.length;r++){if(n==null)return a;n=n[t[r]]}return n===void 0?a:n}function Nt(e){return e instanceof Buffer}class P{constructor(t,a){this.defaultLocale=t,this.locales=a,this.defaultLocale=_e(t),this.locales=P.snakeLocaleKeys(a)}addLocales=t=>{ne(this.locales,P.snakeLocaleKeys(t))};removeLocales=(...t)=>{this.locales=Pt(this.locales,t)};$t=(t,a,n=this.defaultLocale)=>{const r=this.locales[_e(n)],i=he(this.locales[this.defaultLocale],t),s=he(r,t,i);if(s===void 0)throw new Error(`[i18n]: cannot find ${n}["${t}"]`);if(typeof s!="string")return JSON.stringify(s);let l=s;if(a&&a.length){const o=/%s/i;for(let c=0;c<a.length&&l.match(o)!==null;c++)l=l.replace(o,a[c])}return l};static isValidate(t){if(!ce.encodingExists(t))throw new Error(`[i18n]: unknown charset ${t}`)}static encodeToBuf(t,a){return P.isValidate(a),[...ce.encode(t,a),0]}static decodeFromBuf(t,a="utf8"){P.isValidate(a);const n=Nt(t)?t:Buffer.from(P.getValidStr(t));return ce.decode(n,a)}static getValidStr(t){return t.indexOf(0)===-1?t:t.slice(0,t.indexOf(0))}static snakeLocaleKeys(t){return yt(t,(a,n)=>_e(n))}static convertSpecialChar(t){const a={\u00E0:"\x97",\u00E1:"\x98",\u00E2:"\x99",\u00E4:"\x9A",\u00C0:"\x80",\u00C1:"\x81",\u00C2:"\x82",\u00C4:"\x83",\u00E8:"\x9D",\u00E9:"\x9E",\u00EA:"\x9F",\u00EB:"\xA0",\u00C8:"\x86",\u00C9:"\x87",\u00CA:"\x88",\u00CB:"\x89",\u00EC:"\xA1",\u00ED:"\xA2",\u00EE:"\xA3",\u00EF:"\xA4",\u00CC:"\x8A",\u00CD:"\x8B",\u00CE:"\x8C",\u00CF:"\x8D",\u00F2:"\xA5",\u00F3:"\xA6",\u00F4:"\xA7",\u00F6:"\xA8",\u00D2:"\x8E",\u00D3:"\x8F",\u00D4:"\x90",\u00D6:"\x91",\u00F9:"\xA9",\u00FA:"\xAA",\u00FB:"\xAB",\u00FC:"\xAC",\u00D9:"\x92",\u00DA:"\x93",\u00DB:"\x94",\u00DC:"\x95",\u00F1:"\xAE",\u00D1:"\xAD","\xA1":"@","\xBF":"\xAF","`":"\xB1"};return t.split("").map(n=>n in a?a[n]:n).join("")}}const O=new Map;function wt(e,t){return typeof e=="boolean"?+e:typeof e=="number"&&!isNaN(e)?e:+t}function bt(e,...t){const{defaultValue:a=!0,name:n,beforeEach:r,afterEach:i,throwOnError:s=!1}=e,l=O.get(n);if(!l||!l.length)return+a;const o=r?r(...t):{},c=[];let u=-1;const p=()=>{if(u++,u<l.length){try{const g=l[u]({next:p,defaultValue:a,...o});return g instanceof Promise&&c.push(g),g}catch(g){const y=`executing event [name:${n},index:${u}] error:
2
- ${g}`;if(s)throw{error:g,message:y};console.log(y)}return a}return i&&(c.length?Promise.allSettled(c).then(()=>i(o)):i(o)),a};return wt(p(),a)}function _(e){const{name:t,identifier:a,isNative:n=!0}=e;if(O.has(t)){const l=`event [name:${t}] error: already defined.`;throw new Error(l)}function r(...l){return bt(e,...l)}function i(l){O.has(t)||O.set(t,[]);const o=O.get(t).push(l)-1;return()=>{const c=O.get(t);if(!c)return;const u=c.length-1,p=u<o?u:o;for(let g=p;g>=0;g--)if(c[g]===l){c.splice(g,1);break}return c.length===0&&O.delete(t),c.length}}const s=[i,r];return n&&(typeof a<"u"&&samp.registerEvent(t,a),samp.on(t,r)),s}const vt=e=>!!samp.callNative("IsValidNickName","s",e),Rt=(e,t)=>{samp.callNative("AllowNickNameCharacter","ii",e,t)},Lt=e=>!!samp.callNative("IsNickNameCharacterAllowed","i",e),Ot=(e,t)=>!!samp.callNative("AddServerRule","ss",e,t),Gt=(e,t)=>!!samp.callNative("SetServerRule","ss",e,t),Ft=e=>!!samp.callNative("IsValidServerRule","s",e),Bt=e=>!!samp.callNative("RemoveServerRule","s",e),kt=e=>{samp.callNative("AllowAdminTeleport","i",e)},Mt=()=>!!samp.callNative("IsAdminTeleportAllowed",""),xt=e=>{samp.callNative("AllowInteriorWeapons","i",e)},Ht=()=>!!samp.callNative("AreInteriorWeaponsAllowed",""),Vt=()=>!!samp.callNative("AreAllAnimationsEnabled",""),Ut=e=>{samp.callNative("EnableAllAnimations","i",e)},Wt=e=>{const[t]=samp.callNative("GetConsoleVarAsString","sAi",e,64);return t},Kt=e=>samp.callNative("GetConsoleVarAsInt","s",e),jt=e=>!!samp.callNative("GetConsoleVarAsBool","s",e),Zt=()=>samp.callNative("GetWeather",""),Xt=e=>samp.callNative("GetServerRuleFlags","s",e),Yt=(e,t)=>!!samp.callNative("SetServerRuleFlags","si",e,t),zt=e=>!!samp.callNative("SetModeRestartTime","f",e),$t=()=>samp.callNativeFloat("GetModeRestartTime",""),Jt=(e,t,a)=>samp.callNative("GameTextForAll","aii",e,t,a),Qt=e=>{samp.callNative("HideGameTextForAll","i",e)},qt=(e,t,a)=>samp.callNative("SendDeathMessage","iii",e,t,a),ea=()=>samp.callNative("GetMaxPlayers",""),ue=(e,t,a)=>Math.sqrt(e*e+t*t+a*a),ta=e=>samp.callNative("SetGameModeText","s",e),aa=e=>samp.callNative("ShowNameTags","i",e),na=e=>samp.callNative("ShowPlayerMarkers","i",e),ra=e=>samp.callNative("SetWorldTime","i",e),ia=()=>samp.callNative("GetWorldTime",""),sa=()=>samp.callNative("EnableVehicleFriendlyFire",""),la=e=>samp.callNative("SetWeather","i",e),oa=()=>samp.callNativeFloat("GetGravity",""),da=e=>samp.callNative("SetGravity","f",e),ca=(e,t,a,n,r)=>samp.callNative("CreateExplosion","fffif",e,t,a,n,r),_a=e=>samp.callNative("EnableZoneNames","i",e),ha=()=>samp.callNative("UsePlayerPedAnims",""),ua=()=>samp.callNative("DisableInteriorEnterExits",""),ma=e=>samp.callNative("SetNameTagDrawDistance","f",e),pa=()=>samp.callNative("DisableNameTagLOS",""),ga=e=>samp.callNative("LimitGlobalChatRadius","f",e),Sa=e=>samp.callNative("LimitPlayerMarkerRadius","f",e),fa=(e,t)=>samp.callNative("ConnectNPC","ss",e,t),ya=()=>samp.callNative("GetServerTickRate",""),Pa=e=>samp.callNative("GetAnimationName","iSiSi",e,32,32),Ia=e=>samp.callNative("EnableStuntBonusForAll","i",e),Ea=e=>{samp.callNative("ToggleChatTextReplacement","i",e)},Aa=()=>!!samp.callNative("ChatTextReplacementToggled",""),Ca=e=>samp.callNative("GetWeaponSlot","i",e),Ta=e=>{const[t]=samp.callNative("GetWeaponName","iSi",e,32);return t},Ne=()=>samp.callNative("GetAvailableClasses",""),Da=e=>{if(e<Ne()||e>319)return!1;const t=samp.callNative("GetPlayerClass","iIIFFFFIIIIII",e),[a,n=0,r=0,i=0,s=0,l=0,o=0,c=0,u=0,p=0,g=0,y=0]=t;return{teamId:a,modelId:n,spawnX:r,spawnY:i,spawnZ:s,zAngle:l,weapon1:o,weapon1Ammo:c,weapon2:u,weapon2Ammo:p,weapon3:g,weapon3Ammo:y}},Na=(e,t,a,n,r,i,s,l,o,c,u,p,g)=>!!samp.callNative("EditPlayerClass","iiiffffiiiiii",e,t,a,n,r,i,s,l,o,c,u,p,g),wa=e=>samp.callNative("SetTeamCount","i",e),ba=(e,t,a,n,r,i,s,l,o,c,u)=>samp.callNative("AddPlayerClass","iffffiiiiii",e,t,a,n,r,i,s,l,o,c,u),va=(e,t,a,n,r,i,s,l,o,c,u,p)=>samp.callNative("AddPlayerClassEx","iiffffiiiiii",e,t,a,n,r,i,s,l,o,c,u,p),Ra=(e,t,a,n,r,i,s,l,o,c,u,p,g)=>samp.callNative("SetSpawnInfo","iiiffffiiiiii",e,t,a,n,r,i,s,l,o,c,u,p,g),La=e=>samp.callNative("SpawnPlayer","i",e),Oa=e=>{const[t,a=0,n=0,r=0,i=0,s=0,l=0,o=0,c=0,u=0,p=0,g=0]=samp.callNative("GetSpawnInfo","iIIFFFFIIIIII",e);return{teamId:t,modelId:a,spawnX:n,spawnY:r,spawnZ:i,zAngle:s,weapon1:l,weapon1Ammo:o,weapon2:c,weapon2Ammo:u,weapon3:p,weapon3Ammo:g}},Ga=e=>samp.callNative("NetStats_GetConnectedTime","i",e),Fa=e=>samp.callNative("NetStats_MessagesReceived","i",e),Ba=e=>samp.callNative("NetStats_BytesReceived","i",e),ka=e=>samp.callNative("NetStats_MessagesSent","i",e),Ma=e=>samp.callNative("NetStats_BytesSent","i",e),xa=e=>samp.callNative("NetStats_MessagesRecvPerSecond","i",e),Ha=e=>samp.callNativeFloat("NetStats_PacketLossPercent","i",e),Va=e=>samp.callNative("NetStats_ConnectionStatus","i",e),Ua=e=>{const[t]=samp.callNative("NetStats_GetIpPort","iSi",e,134);return t},Wa=e=>!!samp.callNative("IsPlayerAdmin","i",e),Ka=(e,t)=>!!samp.callNative("SetPlayerAdmin","ii",e,t),ja=e=>!!samp.callNative("Kick","i",e),Za=e=>!!samp.callNative("Ban","i",e),Xa=e=>{const[t]=samp.callNative("GetPlayerNetworkStats","iSi",e,1024);return t},Ya=()=>samp.callNative("GetNetworkStats","Si",1024),za=(e,t)=>samp.callNative("BlockIpAddress","si",e,t),$a=e=>samp.callNative("UnBlockIpAddress","s",e),Ja=(e,t)=>{const[a]=samp.callNative("gpci","iAi",e,41);return P.decodeFromBuf(P.getValidStr(a),t)},Qa=(e,t,a,n,r)=>samp.callNative("SendClientCheck","iiiii",e,t,a,n,r),qa=()=>{samp.callNative("ClearBanList","")},en=e=>!!samp.callNative("IsBanned","s",e),tn=e=>samp.callNative("GetPlayerRawIp","i",e),an=e=>{const[t]=samp.callNative("GetPlayerIp","iSi",e,128);return t},nn=e=>{const[t]=samp.callNative("GetPlayerVersion","iSi",e,24);return t},I=e=>{if(typeof e=="number")return e;if(typeof+e=="number"&&!isNaN(+e))return+e;if(e.charAt(0)==="#")return e.length===4?parseInt(e.charAt(1)+e.charAt(1)+e.charAt(2)+e.charAt(2)+e.charAt(3)+e.charAt(3)+"FF",16):e.length===7?parseInt(e.slice(1,e.length)+"FF",16):e.length===9?parseInt(e.slice(1,e.length),16):255;const t=(e.match(/([0-9])+/g)||[]).map(n=>parseInt(n,10));if(t.length!==4&&t.length!==3)return 255;t.length===3?t.push(255):t[3]=t[3]<1?Math.floor(t[3]*255):255;let a=0;return t.reverse().forEach((n,r)=>{n!==0&&(a+=Math.pow(16,r*2)*n)}),a},rn=(e,t)=>!!samp.callNative("TogglePlayerWidescreen","ii",e,t),sn=e=>!!samp.callNative("IsPlayerWidescreenToggled","i",e),ln=(e,t)=>samp.callNative("GetPlayerSkillLevel","ii",e,t),on=e=>samp.callNative("GetPlayerWeather","i",e),dn=e=>{const[t=0,a=0,n=0,r=0]=samp.callNative("GetPlayerWorldBounds","iFFFF",e);return{xMax:t,xMin:a,yMax:n,yMin:r}},cn=e=>samp.callNativeFloat("GetPlayerZAim","i",e),_n=e=>{const[t=0,a=0,n=0]=samp.callNative("GetPlayerSurfingOffsets","iFFF",e);return{fOffsetX:t,fOffsetY:a,fOffsetZ:n}},hn=e=>{const[t=0,a=0,n=0,r=0]=samp.callNative("GetPlayerRotationQuat","iFFFF",e);return{w:t,x:a,y:n,z:r}},un=e=>samp.callNative("GetPlayerDialogID","i",e),mn=e=>samp.callNative("GetPlayerSpectateID","i",e),pn=e=>samp.callNative("GetPlayerSpectateType","i",e),gn=(e,t)=>!!samp.callNative("SetPlayerGravity","if",e,t),Sn=e=>samp.callNativeFloat("GetPlayerGravity","i",e),fn=e=>!!samp.callNative("IsPlayerSpawned","i",e),yn=e=>!!samp.callNative("IsPlayerControllable","i",e),Pn=e=>!!samp.callNative("IsPlayerCameraTargetEnabled","i",e),In=(e,t)=>!!samp.callNative("TogglePlayerGhostMode","ii",e,t),En=e=>!!samp.callNative("GetPlayerGhostMode","i",e),An=e=>samp.callNative("GetPlayerBuildingsRemoved","i",e),Cn=(e,t)=>!!samp.callNative("RemovePlayerWeapon","ii",e,t),Tn=e=>!!samp.callNative("HidePlayerDialog","i",e),Dn=e=>!!samp.callNative("IsPlayerUsingOfficialClient","i",e),Nn=(e,t)=>!!samp.callNative("AllowPlayerTeleport","ii",e,t),wn=e=>!!samp.callNative("IsPlayerTeleportAllowed","i",e),bn=(e,t)=>!!samp.callNative("AllowPlayerWeapons","i",e,t),vn=e=>!!samp.callNative("ArePlayerWeaponsAllowed","i",e),Rn=(e,t,a,n)=>!!samp.callNative("GameTextForPlayer","iaii",e,t,a,n),Ln=(e,t)=>!!samp.callNative("HasGameText","ii",e,t),On=(e,t,a,n)=>!!samp.callNative("SendDeathMessageToPlayer","iiii",e,t,a,n),Gn=(e,t)=>!!samp.callNative("HideGameTextForPlayer","ii",e,t),Fn=e=>!!samp.callNative("IsPlayerNPC","i",e),we=(e,t,a,n)=>!!samp.callNative("SetPlayerPos","ifff",e,t,a,n),Bn=(e,t,a,n)=>!!samp.callNative("SetPlayerPosFindZ","ifff",e,t,a,n),kn=e=>samp.callNative("GetPlayerPos","iFFF",e),Mn=(e,t)=>!!samp.callNative("SetPlayerFacingAngle","if",e,t),xn=e=>{const[t]=samp.callNative("GetPlayerFacingAngle","iF",e);return t},Hn=(e,t,a,n,r)=>!!samp.callNative("IsPlayerInRangeOfPoint","iffff",e,t,a,n,r),Vn=(e,t,a,n)=>samp.callNativeFloat("GetPlayerDistanceFromPoint","ifff",e,t,a,n),Un=(e,t)=>!!samp.callNative("IsPlayerStreamedIn","ii",e,t),Wn=(e,t)=>!!samp.callNative("SetPlayerInterior","ii",e,t),Kn=e=>samp.callNative("GetPlayerInterior","i",e),jn=(e,t)=>!!samp.callNative("SetPlayerHealth","if",e,t),Zn=e=>{const[t]=samp.callNative("GetPlayerHealth","iF",e);return t},Xn=(e,t)=>!!samp.callNative("SetPlayerArmour","if",e,t),Yn=e=>{const[t]=samp.callNative("GetPlayerArmour","iF",e);return t},zn=(e,t,a)=>!!samp.callNative("SetPlayerAmmo","iii",e,t,a),$n=e=>samp.callNative("GetPlayerAmmo","i",e),Jn=e=>samp.callNative("GetPlayerWeaponState","i",e),Qn=e=>samp.callNative("GetPlayerTargetPlayer","i",e),qn=(e,t)=>{samp.callNative("SetPlayerTeam","ii",e,t)},er=e=>samp.callNative("GetPlayerTeam","i",e),tr=(e,t)=>!!samp.callNative("SetPlayerScore","ii",e,t),ar=e=>samp.callNative("GetPlayerScore","i",e),nr=e=>samp.callNative("GetPlayerDrunkLevel","i",e),rr=(e,t)=>!!samp.callNative("SetPlayerDrunkLevel","ii",e,t),ir=(e,t)=>!!samp.callNative("SetPlayerColor","ii",e,I(t)),sr=e=>samp.callNative("GetPlayerColor","i",e),lr=(e,t)=>!!samp.callNative("SetPlayerSkin","ii",e,t),or=e=>samp.callNative("GetPlayerSkin","i",e),dr=(e,t,a)=>!!samp.callNative("GivePlayerWeapon","iii",e,t,a),cr=e=>!!samp.callNative("ResetPlayerWeapons","i",e),_r=(e,t)=>!!samp.callNative("SetPlayerArmedWeapon","ii",e,t),hr=(e,t)=>samp.callNative("GetPlayerWeaponData","iiII",e,t),ur=(e,t)=>!!samp.callNative("GivePlayerMoney","ii",e,t),mr=e=>!!samp.callNative("ResetPlayerMoney","i",e),pr=e=>samp.callNative("GetPlayerMoney","i",e),gr=e=>samp.callNative("GetPlayerState","i",e),Sr=e=>samp.callNative("GetPlayerPing","i",e),fr=e=>samp.callNative("GetPlayerWeapon","i",e),yr=e=>samp.callNative("GetPlayerKeys","iIII",e),Pr=(e,t,a)=>!!samp.callNative("SetPlayerTime","iii",e,t,a),Ir=e=>samp.callNative("GetPlayerTime","iII",e),Er=(e,t)=>!!samp.callNative("TogglePlayerClock","ii",e,t),Ar=(e,t)=>!!samp.callNative("SetPlayerWeather","ii",e,t),Cr=e=>!!samp.callNative("ForceClassSelection","i",e),Tr=(e,t)=>!!samp.callNative("SetPlayerWantedLevel","ii",e,t),Dr=e=>samp.callNative("GetPlayerWantedLevel","i",e),Nr=(e,t)=>!!samp.callNative("SetPlayerFightingStyle","ii",e,t),wr=e=>samp.callNative("GetPlayerFightingStyle","i",e),br=(e,t,a,n)=>!!samp.callNative("SetPlayerVelocity","ifff",e,t,a,n),vr=e=>samp.callNative("GetPlayerVelocity","iFFF",e),Rr=(e,t,a)=>!!samp.callNative("PlayCrimeReportForPlayer","iii",e,t,a),Lr=(e,t,a,n,r,i,s=!1)=>!!samp.callNative("PlayAudioStreamForPlayer","isffffi",e,t,a,n,r,i,s),Or=e=>!!samp.callNative("StopAudioStreamForPlayer","i",e),Gr=(e,t)=>!!samp.callNative("SetPlayerShopName","is",e,t),Fr=(e,t,a)=>!!samp.callNative("SetPlayerSkillLevel","iii",e,t,a),Br=e=>samp.callNative("GetPlayerSurfingVehicleID","i",e),kr=e=>samp.callNative("GetPlayerSurfingObjectID","i",e),Mr=e=>samp.callNative("GetPlayerSurfingPlayerObjectID","i",e),xr=(e,t,a,n,r,i)=>!!samp.callNative("RemoveBuildingForPlayer","iiffff",e,t,a,n,r,i),Hr=e=>samp.callNative("GetPlayerLastShotVectors","iFFFFFF",e),Vr=(e,t,a)=>!!samp.callNative("PutPlayerInVehicle","iii",e,t,a),Ur=e=>samp.callNative("GetPlayerVehicleID","i",e),Wr=e=>samp.callNative("GetPlayerVehicleSeat","i",e),Kr=e=>!!samp.callNative("RemovePlayerFromVehicle","i",e),jr=(e,t)=>!!samp.callNative("TogglePlayerControllable","ii",e,t),Zr=(e,t,a,n,r)=>!!samp.callNative("PlayerPlaySound","iifff",e,t,a,n,r),Xr=(e,t,a,n,r,i,s,l,o,c)=>!!samp.callNative("ApplyAnimation","issfiiiiii",e,t,a,n,r,i,s,l,o,c),Yr=(e,t)=>!!samp.callNative("ClearAnimations","ii",e,t),zr=e=>samp.callNative("GetPlayerAnimationIndex","i",e),$r=e=>samp.callNative("GetPlayerSpecialAction","i",e),Jr=(e,t)=>!!samp.callNative("SetPlayerSpecialAction","ii",e,t),Qr=(e,t)=>!!samp.callNative("DisableRemoteVehicleCollisions","ii",e,t),qr=(e,t)=>!!samp.callNative("SetPlayerVirtualWorld","ii",e,t),ei=e=>samp.callNative("GetPlayerVirtualWorld","i",e),ti=(e,t)=>!!samp.callNative("EnableStuntBonusForPlayer","ii",e,t),ai=e=>samp.callNative("GetPlayerCustomSkin","i",e),ni=(e,t,a,n,r,i)=>!!samp.callNative("CreateExplosionForPlayer","ifffif",e,t,a,n,r,i),ri=(e,t,a)=>!!samp.callNative("StartRecordingPlayerData","iis",e,t,a),ii=e=>!!samp.callNative("StopRecordingPlayerData","i",e),si=(e,t)=>!!samp.callNative("TogglePlayerSpectating","ii",e,t),li=(e,t,a)=>!!samp.callNative("PlayerSpectatePlayer","iii",e,t,a),oi=(e,t,a)=>!!samp.callNative("PlayerSpectateVehicle","iii",e,t,a),be=e=>!!samp.callNative("IsPlayerConnected","i",e),di=(e,t)=>!!samp.callNative("IsPlayerInVehicle","ii",e,t),ci=e=>!!samp.callNative("IsPlayerInAnyVehicle","i",e),_i=(e,t,a,n,r)=>!!samp.callNative("SetPlayerWorldBounds","iffff",e,t,a,n,r),hi=e=>!!samp.callNative("ClearPlayerWorldBounds","i",e),ui=(e,t,a)=>!!samp.callNative("SetPlayerMarkerForPlayer","iii",e,t,I(a));function mi(e,t){return samp.callNative("GetPlayerMarkerForPlayer","ii",t)}const pi=(e,t,a)=>!!samp.callNative("ShowPlayerNameTagForPlayer","iii",e,t,a),gi=(e,t,a,n)=>!!samp.callNative("SetPlayerCameraPos","ifff",e,t,a,n),Si=(e,t,a,n,r)=>!!samp.callNative("SetPlayerCameraLookAt","ifffi",e,t,a,n,r),fi=e=>!!samp.callNative("SetCameraBehindPlayer","i",e),yi=e=>samp.callNative("GetPlayerCameraPos","iFFF",e),Pi=e=>samp.callNative("GetPlayerCameraFrontVector","iFFF",e),Ii=e=>samp.callNative("GetPlayerCameraMode","i",e),Ei=(e,t)=>!!samp.callNative("EnablePlayerCameraTarget","ii",e,t),Ai=e=>samp.callNative("GetPlayerCameraTargetVehicle","i",e),Ci=e=>samp.callNative("GetPlayerCameraTargetPlayer","i",e),Ti=e=>samp.callNativeFloat("GetPlayerCameraAspectRatio","i",e),Di=e=>samp.callNativeFloat("GetPlayerCameraZoom","i",e),Ni=(e,t,a,n,r,i,s,l,o)=>!!samp.callNative("InterpolateCameraPos","iffffffii",e,t,a,n,r,i,s,l,o),wi=(e,t,a,n,r,i,s,l,o)=>!!samp.callNative("InterpolateCameraLookAt","iffffffii",e,t,a,n,r,i,s,l,o),bi=e=>!!samp.callNative("IsPlayerCuffed","i",e),vi=e=>!!samp.callNative("IsPlayerInDriveByMode","i",e),Ri=e=>!!samp.callNative("IsPlayerUsingOmp","i",e),Li=(e,t)=>samp.callNative("StartRecordingPlayback","is",e,t),Oi=()=>samp.callNative("StopRecordingPlayback",""),Gi=()=>samp.callNative("PauseRecordingPlayback",""),Fi=()=>samp.callNative("ResumeRecordingPlayback",""),Bi=e=>samp.callNative("GetActorSkin","i",e),ki=(e,t)=>samp.callNative("SetActorSkin","ii",e,t),Mi=e=>{const[t=0,a=0,n=0,r=0,i=0]=samp.callNative("GetActorSpawnInfo","iIFFFF",e);return{skinId:t,fX:a,fY:n,fZ:r,fAngle:i}},xi=e=>{const[t=0,a=0,n=0,r=0,i=0,s=0]=samp.callNative("GetVehicleSpawnInfo","iFFFFII",e);return{fX:t,fY:a,fZ:n,fRot:r,color1:i,color2:s}},Hi=(e,t,a,n,r,i,s,l,o=-2,c=-2)=>samp.callNative("SetVehicleSpawnInfo","iiFFFFiiii",e,t,a,n,r,i,s,l,o,c),Vi=e=>{const[t=0,a=0]=samp.callNative("GetVehicleColor","iII",e);return{color1:t,color2:a}},Ui=e=>samp.callNative("GetVehiclePaintjob","i",e),Wi=e=>samp.callNative("GetVehicleInterior","i",e),Ki=e=>{const[t]=samp.callNative("GetVehicleNumberPlate","iSi",e,33);return t},ji=(e,t)=>samp.callNative("SetVehicleRespawnDelay","ii",e,t),Zi=e=>samp.callNative("GetVehicleRespawnDelay","i",e),Xi=e=>samp.callNative("GetVehicleCab","i",e),Yi=e=>samp.callNative("GetVehicleOccupiedTick","i",e),zi=(e,t)=>samp.callNative("SetVehicleOccupiedTick","ii",e,t),$i=e=>!!samp.callNative("HasVehicleBeenOccupied","i",e),Ji=e=>!!samp.callNative("IsVehicleOccupied","i",e),Qi=e=>samp.callNative("GetVehicleRespawnTick","i",e),qi=(e,t)=>samp.callNative("SetVehicleRespawnTick","ii",e,t),es=e=>!!samp.callNative("IsVehicleDead","i",e),ts=(e,t)=>!!samp.callNative("SetVehicleDead","ii",e,t),as=(e,t)=>!!samp.callNative("SetVehicleBeenOccupied","ii",e,t),ns=(e,t)=>samp.callNative("ToggleVehicleSirenEnabled","ii",e,t),rs=(e,t)=>samp.callNative("SetVehicleParamsSirenState","ii",e,t),is=e=>!!samp.callNative("IsVehicleSirenEnabled","i",e),ss=e=>samp.callNative("GetVehicleModelCount","i",e),ls=e=>samp.callNative("GetVehicleLastDriver","i",e),os=e=>samp.callNative("GetVehicleDriver","i",e),ds=()=>samp.callNative("GetVehicleModelsUsed",""),cs=e=>samp.callNative("GetVehicleSirenState","i",e),_s=e=>samp.callNative("GetVehicleLandingGearState","i",e),hs=e=>samp.callNativeFloat("GetVehicleHydraReactorAngle","i",e),us=e=>samp.callNativeFloat("GetVehicleTrainSpeed","i",e),ms=e=>{const[t=0,a=0,n=0,r=0,i=0,s=0,l=0,o=0,c=0]=samp.callNative("GetVehicleMatrix","iFFFFFFFFF",e);return{rightX:t,rightY:a,rightZ:n,upX:r,upY:i,upZ:s,atX:l,atY:o,atZ:c}},ve=e=>{const[t=0,a=0,n=0,r=0]=samp.callNative("GetRandomCarColPair","iIIII",e);return{color:[t,a,n,r]}},ps=(e,t=255)=>samp.callNative("CarColIndexToColour","ii",e,t),gs=(e,t,a,n,r,i,s,l,o)=>samp.callNative("CreateVehicle","iffffiiii",e,t,a,n,r,I(i),I(s),l,o),Ss=e=>samp.callNative("DestroyVehicle","i",e),fs=(e,t)=>!!samp.callNative("IsVehicleStreamedIn","ii",e,t),ys=e=>{const t=samp.callNative("GetVehiclePos","iFFF",e);if(t.length<3)throw new Error("VehicleID "+e+" not found");return{x:t[0],y:t[1],z:t[2]}},Ps=(e,t,a,n)=>samp.callNative("SetVehiclePos","ifff",e,t,a,n),Is=e=>{const[t]=samp.callNative("GetVehicleZAngle","iF",e);return t},Es=e=>samp.callNative("GetVehicleRotationQuat","iFFFF",e),As=(e,t,a,n)=>samp.callNativeFloat("GetVehicleDistanceFromPoint","ifff",e,t,a,n),Cs=(e,t)=>samp.callNative("SetVehicleZAngle","if",e,t),Ts=(e,t,a,n)=>samp.callNative("SetVehicleParamsForPlayer","iiii",e,t,a,n),Ds=()=>samp.callNative("ManualVehicleEngineAndLights",""),Ns=(e,t,a,n,r,i,s,l)=>samp.callNative("SetVehicleParamsEx","iiiiiiii",e,t,a,n,r,i,s,l),ws=e=>samp.callNative("GetVehicleParamsEx","iIIIIIII",e),bs=e=>samp.callNative("GetVehicleParamsSirenState","i",e),vs=(e,t,a,n,r)=>samp.callNative("SetVehicleParamsCarDoors","iiiii",e,t,a,n,r),Rs=e=>{const t=samp.callNative("GetVehicleParamsCarDoors","iIIII",e);return{driver:t[0],passenger:t[1],backLeft:t[2],backRight:t[3]}},Ls=(e,t,a,n,r)=>samp.callNative("SetVehicleParamsCarWindows","iiiii",e,t,a,n,r),Os=e=>{const t=samp.callNative("GetVehicleParamsCarWindows","iIIII",e);return{driver:t[0],passenger:t[1],backLeft:t[2],backRight:t[3]}},Gs=e=>samp.callNative("SetVehicleToRespawn","i",e),Fs=(e,t)=>samp.callNative("LinkVehicleToInterior","ii",e,t),Bs=(e,t)=>samp.callNative("AddVehicleComponent","ii",e,t),ks=(e,t)=>samp.callNative("RemoveVehicleComponent","ii",e,t),Ms=(e,t,a)=>samp.callNative("ChangeVehicleColor","iii",e,I(t),I(a)),xs=(e,t)=>samp.callNative("ChangeVehiclePaintjob","ii",e,t),Hs=(e,t)=>samp.callNative("SetVehicleHealth","if",e,t),Vs=e=>{const[t]=samp.callNative("GetVehicleHealth","iF",e);return t},Us=(e,t)=>samp.callNative("AttachTrailerToVehicle","ii",e,t),Ws=e=>samp.callNative("DetachTrailerFromVehicle","i",e),Ks=e=>!!samp.callNative("IsTrailerAttachedToVehicle","i",e),js=e=>samp.callNative("GetVehicleTrailer","i",e),Zs=(e,t)=>samp.callNative("SetVehicleNumberPlate","is",e,t),Xs=e=>samp.callNative("GetVehicleModel","i",e),Ys=(e,t)=>samp.callNative("GetVehicleComponentInSlot","ii",e,t),zs=e=>samp.callNative("GetVehicleComponentType","i",e),$s=e=>samp.callNative("RepairVehicle","i",e),Js=e=>samp.callNative("GetVehicleVelocity","iFFF",e),Qs=(e,t,a,n)=>!!samp.callNative("SetVehicleVelocity","ifff",e,t,a,n),qs=(e,t,a,n)=>samp.callNative("SetVehicleAngularVelocity","ifff",e,t,a,n),el=e=>{const t=samp.callNative("GetVehicleDamageStatus","iIIII",e);if(t.length<4)throw new Error("VehicleID "+e+" not found");return{panels:t[0],doors:t[1],lights:t[2],tires:t[3]}},tl=(e,t,a,n,r)=>samp.callNative("UpdateVehicleDamageStatus","iiiii",e,t,a,n,r),al=(e,t)=>{const a=samp.callNative("GetVehicleModelInfo","iiFFF",e,t);if(a.length<3)throw new Error("ModelID "+e+" not found");return{x:a[0],y:a[1],z:a[2]}},nl=(e,t)=>samp.callNative("SetVehicleVirtualWorld","ii",e,t),rl=e=>samp.callNative("GetVehicleVirtualWorld","i",e),Re=e=>!!samp.callNative("IsValidVehicle","i",e),il=(e,t,a,n,r,i,s)=>samp.callNative("AddStaticVehicle","iffffii",e,t,a,n,r,I(i),I(s)),sl=(e,t,a,n,r,i,s,l,o)=>samp.callNative("AddStaticVehicleEx","iffffiiii",e,t,a,n,r,I(i),I(s),l,o),ll=e=>!!samp.callNative("ShowVehicle","i",e),ol=e=>!!samp.callNative("HideVehicle","i",e),dl=e=>!!samp.callNative("IsVehicleHidden","i",e),cl=e=>!!samp.callNative("IsPlayerInModShop","i",e),_l=e=>samp.callNative("GetPlayerSirenState","i",e),hl=e=>samp.callNative("GetPlayerLandingGearState","i",e),ul=e=>samp.callNative("GetPlayerHydraReactorAngle","i",e),ml=e=>samp.callNativeFloat("GetPlayerTrainSpeed","i",e),pl=(e,t)=>samp.callNative("GetVehicleOccupant","ii",e,t),Le=e=>samp.callNative("GetVehicleMaxPassengers","i",e),gl=e=>samp.callNative("CountVehicleOccupants","i",e),Sl=e=>!!samp.callNative("IsPlayerCheckpointActive","i",e),fl=e=>{const[t=0,a=0,n=0,r=0]=samp.callNative("GetPlayerCheckpoint","iFFFF",e);return{fX:t,fY:a,fZ:n,fSize:r}},yl=e=>!!samp.callNative("IsPlayerRaceCheckpointActive","i",e),Pl=e=>{const[t=0,a=0,n=0,r=0,i=0,s=0,l=0]=samp.callNative("GetPlayerRaceCheckpoint","iFFFFFFF",e);return{fX:t,fY:a,fZ:n,fNextX:r,fNextY:i,fNextZ:s,fSize:l}},Il=e=>!!samp.callNative("IsMenuDisabled","i",e),El=(e,t)=>!!samp.callNative("IsMenuRowDisabled","ii",e,t),Al=(e,t)=>samp.callNative("GetMenuItems","ii",e,t),Cl=e=>{const[t=0,a=0]=samp.callNative("GetMenuPos","iFF",e);return{fX:t,fY:a}},Tl=e=>{const[t=0,a=0]=samp.callNative("GetMenuColumnWidth","iFF",e);return{fColumn1:t,fColumn2:a}},Dl=(e,t)=>{const[a]=samp.callNative("GetMenuColumnHeader","iiSi",e,t,31);return a},Nl=(e,t,a)=>{const[n]=samp.callNative("GetMenuItem","iiiSi",e,t,a,31);return n},wl=(e,t,a,n,r,i)=>samp.callNative("CreateMenu","siffff",e,t,a,n,r,i),bl=e=>samp.callNative("DestroyMenu","i",e),vl=(e,t,a)=>samp.callNative("AddMenuItem","iis",e,t,a),Rl=(e,t,a)=>samp.callNative("SetMenuColumnHeader","iis",e,t,a),Ll=(e,t)=>samp.callNative("ShowMenuForPlayer","ii",e,t),Ol=(e,t)=>samp.callNative("HideMenuForPlayer","ii",e,t),Gl=e=>!!samp.callNative("IsValidMenu","i",e),Fl=e=>samp.callNative("DisableMenu","i",e),Bl=(e,t)=>samp.callNative("DisableMenuRow","ii",e,t),kl=e=>samp.callNative("GetPlayerMenu","i",e),Ml=e=>!!samp.callNative("IsValidGangZone","i",e),xl=(e,t)=>!!samp.callNative("IsPlayerInGangZone","ii",e,t),Hl=(e,t)=>!!samp.callNative("IsGangZoneVisibleForPlayer","ii",e,t),Vl=(e,t)=>samp.callNative("GangZoneGetColorForPlayer","ii",e,t),Ul=(e,t)=>samp.callNative("GangZoneGetFlashColorForPlayer","ii",e,t),Wl=(e,t)=>!!samp.callNative("IsGangZoneFlashingForPlayer","ii",e,t),Kl=e=>{const[t=0,a=0,n=0,r=0]=samp.callNative("GangZoneGetPos","iFFFF",e);return{fMinX:t,fMinY:a,fMaxX:n,fMaxY:r}},jl=(e,t)=>{samp.callNative("UseGangZoneCheck","ii",e,t)},Zl=(e,t,a,n)=>samp.callNative("GangZoneCreate","ffff",e,t,a,n),Xl=e=>samp.callNative("GangZoneDestroy","i",e),Yl=(e,t,a)=>samp.callNative("GangZoneShowForPlayer","iii",e,t,I(a)),zl=(e,t)=>samp.callNative("GangZoneShowForAll","ii",e,I(t)),$l=(e,t)=>samp.callNative("GangZoneHideForPlayer","ii",e,t),Jl=e=>samp.callNative("GangZoneHideForAll","i",e),Ql=(e,t,a)=>samp.callNative("GangZoneFlashForPlayer","iii",e,t,I(a)),ql=(e,t)=>samp.callNative("GangZoneFlashForAll","ii",e,I(t)),eo=(e,t)=>samp.callNative("GangZoneStopFlashForPlayer","ii",e,t),to=e=>samp.callNative("GangZoneStopFlashForAll","i",e),ao=(e,t,a,n,r)=>samp.callNative("CreatePlayerGangZone","iffff",e,t,a,n,r),no=(e,t)=>samp.callNative("PlayerGangZoneDestroy","ii",e,t),ro=(e,t,a)=>samp.callNative("PlayerGangZoneShow","iii",e,t,a),io=(e,t)=>samp.callNative("PlayerGangZoneHide","ii",e,t),so=(e,t,a)=>samp.callNative("PlayerGangZoneFlash","iii",e,t,a),lo=(e,t)=>samp.callNative("PlayerGangZoneStopFlash","ii",e,t),oo=(e,t)=>!!samp.callNative("IsValidPlayerGangZone","ii",e,t),co=(e,t)=>!!samp.callNative("IsPlayerInPlayerGangZone","ii",e,t),_o=(e,t)=>!!samp.callNative("IsPlayerGangZoneVisible","ii",e,t),ho=(e,t)=>samp.callNative("PlayerGangZoneGetColor","ii",e,t),uo=(e,t)=>samp.callNative("PlayerGangZoneGetFlashColor","ii",e,t),mo=(e,t)=>!!samp.callNative("IsPlayerGangZoneFlashing","ii",e,t),po=(e,t)=>{const[a=0,n=0,r=0,i=0]=samp.callNative("PlayerGangZoneGetPos","iiFFFF",e,t);return{fMinX:a,fMinY:n,fMaxX:r,fMaxY:i}},go=(e,t,a)=>{samp.callNative("UsePlayerGangZoneCheck","iii",e,t,a)},So=e=>!!samp.callNative("IsValidTextDraw","i",e),fo=(e,t)=>!!samp.callNative("IsTextDrawVisibleForPlayer","ii",e,t),yo=e=>{const[t]=samp.callNative("TextDrawGetString","iSi",e,1024);return t},Po=(e,t,a)=>{samp.callNative("TextDrawSetPos","iff",e,t,a)},Io=e=>{const[t=0,a=0]=samp.callNative("TextDrawGetLetterSize","iFF",e);return{fX:t,fY:a}},Eo=e=>{const[t=0,a=0]=samp.callNative("TextDrawGetTextSize","iFF",e);return{fX:t,fY:a}},Ao=e=>{const[t=0,a=0]=samp.callNative("TextDrawGetPos","iFF",e);return{fX:t,fY:a}},Co=e=>samp.callNative("TextDrawGetColor","i",e),To=e=>samp.callNative("TextDrawGetBoxColor","i",e),Do=e=>samp.callNative("TextDrawGetBackgroundColor","i",e),No=e=>samp.callNative("TextDrawGetShadow","i",e),wo=e=>samp.callNative("TextDrawGetOutline","i",e),bo=e=>samp.callNative("TextDrawGetFont","i",e),vo=e=>!!samp.callNative("TextDrawIsBox","i",e),Ro=e=>!!samp.callNative("TextDrawIsProportional","i",e),Lo=e=>!!samp.callNative("TextDrawIsSelectable","i",e),Oo=e=>samp.callNative("TextDrawGetAlignment","i",e),Go=e=>samp.callNative("TextDrawGetPreviewModel","i",e),Fo=e=>{const[t=0,a=0,n=0,r=0]=samp.callNative("TextDrawGetPreviewRot","iFFFF",e);return{fRotX:t,fRotY:a,fRotZ:n,fZoom:r}},Bo=e=>{const[t,a]=samp.callNative("TextDrawGetPreviewVehCol","iII",e);return{color1:t,color2:a}},ko=(e,t,a)=>{samp.callNative("TextDrawSetStringForPlayer","iia",e,t,a)},Mo=(e,t,a)=>samp.callNative("TextDrawCreate","ffa",e,t,a),xo=e=>samp.callNative("TextDrawDestroy","i",e),Ho=(e,t,a)=>samp.callNative("TextDrawLetterSize","iff",e,t,a),Vo=(e,t,a)=>samp.callNative("TextDrawTextSize","iff",e,t,a),Uo=(e,t)=>samp.callNative("TextDrawAlignment","ii",e,t),Wo=(e,t)=>!!samp.callNative("TextDrawColor","ii",e,I(t)),Ko=(e,t)=>samp.callNative("TextDrawUseBox","ii",e,t),jo=(e,t)=>!!samp.callNative("TextDrawBoxColor","ii",e,I(t)),Zo=(e,t)=>samp.callNative("TextDrawSetShadow","ii",e,t),Xo=(e,t)=>samp.callNative("TextDrawSetOutline","ii",e,t),Yo=(e,t)=>!!samp.callNative("TextDrawBackgroundColor","ii",e,I(t)),zo=(e,t)=>samp.callNative("TextDrawFont","ii",e,t),$o=(e,t)=>samp.callNative("TextDrawSetProportional","ii",e,t),Jo=(e,t)=>samp.callNative("TextDrawSetSelectable","ii",e,t),Qo=(e,t)=>samp.callNative("TextDrawShowForPlayer","ii",e,t),qo=(e,t)=>samp.callNative("TextDrawHideForPlayer","ii",e,t),ed=e=>samp.callNative("TextDrawShowForAll","i",e),td=e=>samp.callNative("TextDrawHideForAll","i",e),ad=(e,t)=>samp.callNative("TextDrawSetString","ia",e,t),nd=(e,t)=>samp.callNative("TextDrawSetPreviewModel","ii",e,t),rd=(e,t,a,n,r=1)=>{samp.callNative("TextDrawSetPreviewRot","iffff",e,t,a,n,r)},id=(e,t,a)=>!!samp.callNative("TextDrawSetPreviewVehCol","iii",e,I(t),I(a)),sd=(e,t)=>{samp.callNative("SelectTextDraw","ii",e,I(t))},ld=e=>{samp.callNative("CancelSelectTextDraw","i",e)},od=(e,t)=>!!samp.callNative("IsValidPlayerTextDraw","ii",e,t),dd=(e,t)=>!!samp.callNative("IsPlayerTextDrawVisible","ii",e,t),cd=(e,t)=>{const[a]=samp.callNative("PlayerTextDrawGetString","iiSi",e,t,1024);return a},_d=(e,t,a,n)=>{samp.callNative("PlayerTextDrawSetPos","iiff",e,t,a,n)},hd=(e,t)=>{const[a=0,n=0]=samp.callNative("PlayerTextDrawGetLetterSize","iiFF",e,t);return{fX:a,fY:n}},ud=(e,t)=>{const[a=0,n=0]=samp.callNative("PlayerTextDrawGetTextSize","iiFF",e,t);return{fX:a,fY:n}},md=(e,t)=>{const[a=0,n=0]=samp.callNative("PlayerTextDrawGetPos","iiFF",e,t);return{fX:a,fY:n}},pd=(e,t)=>samp.callNative("PlayerTextDrawGetColor","ii",e,t),gd=(e,t)=>samp.callNative("PlayerTextDrawGetBoxColor","ii",e,t),Sd=(e,t)=>samp.callNative("PlayerTextDrawGetBackgroundColor","ii",e,t),fd=(e,t)=>samp.callNative("PlayerTextDrawGetShadow","ii",e,t),yd=(e,t)=>samp.callNative("PlayerTextDrawGetOutline","ii",e,t),Pd=(e,t)=>samp.callNative("PlayerTextDrawGetFont","ii",e,t),Id=(e,t)=>!!samp.callNative("PlayerTextDrawIsBox","ii",e,t),Ed=(e,t)=>!!samp.callNative("PlayerTextDrawIsProportional","ii",e,t),Ad=(e,t)=>!!samp.callNative("PlayerTextDrawIsSelectable","ii",e,t),Cd=(e,t)=>samp.callNative("PlayerTextDrawGetAlignment","ii",e,t),Td=(e,t)=>samp.callNative("PlayerTextDrawGetPreviewModel","ii",e,t),Dd=(e,t)=>{const[a=0,n=0,r=0,i=0]=samp.callNative("PlayerTextDrawGetPreviewRot","iiFFFF",e,t);return{fRotX:a,fRotY:n,fRotZ:r,fZoom:i}},Nd=(e,t)=>{const[a,n]=samp.callNative("PlayerTextDrawGetPreviewVehCol","iiII",e,t);return{color1:a,color2:n}},wd=(e,t,a,n)=>samp.callNative("CreatePlayerTextDraw","iffa",e,t,a,n),bd=(e,t)=>{samp.callNative("PlayerTextDrawDestroy","ii",e,t)},vd=(e,t,a,n)=>samp.callNative("PlayerTextDrawLetterSize","iiff",e,t,a,n),Rd=(e,t,a,n)=>samp.callNative("PlayerTextDrawTextSize","iiff",e,t,a,n),Ld=(e,t,a)=>samp.callNative("PlayerTextDrawAlignment","iii",e,t,a),Od=(e,t,a)=>!!samp.callNative("PlayerTextDrawColor","iii",e,t,I(a)),Gd=(e,t,a)=>samp.callNative("PlayerTextDrawUseBox","iii",e,t,a),Fd=(e,t,a)=>!!samp.callNative("PlayerTextDrawBoxColor","iii",e,t,I(a)),Bd=(e,t,a)=>samp.callNative("PlayerTextDrawSetShadow","iii",e,t,a),kd=(e,t,a)=>samp.callNative("PlayerTextDrawSetOutline","iii",e,t,a),Md=(e,t,a)=>!!samp.callNative("PlayerTextDrawBackgroundColor","iii",e,t,I(a)),xd=(e,t,a)=>samp.callNative("PlayerTextDrawFont","iii",e,t,a),Hd=(e,t,a)=>samp.callNative("PlayerTextDrawSetProportional","iii",e,t,a),Vd=(e,t,a)=>samp.callNative("PlayerTextDrawSetSelectable","iii",e,t,a),Ud=(e,t)=>samp.callNative("PlayerTextDrawShow","ii",e,t),Wd=(e,t)=>samp.callNative("PlayerTextDrawHide","ii",e,t),Kd=(e,t,a)=>samp.callNative("PlayerTextDrawSetString","iia",e,t,a),jd=(e,t,a)=>samp.callNative("PlayerTextDrawSetPreviewModel","iii",e,t,a),Zd=(e,t,a,n,r,i)=>samp.callNative("PlayerTextDrawSetPreviewRot","iiffff",e,t,a,n,r,i),Xd=(e,t,a,n)=>!!samp.callNative("PlayerTextDrawSetPreviewVehCol","iiii",e,t,a,n),Yd=(e,t)=>!!samp.callNative("EditAttachedObject","ii",e,t),zd=e=>!!samp.callNative("BeginObjectSelecting","i",e),$d=e=>!!samp.callNative("EndObjectEditing","i",e),Jd=e=>!!samp.callNative("SetObjectsDefaultCameraCol","i",e),Qd=(e,t,a,n,r)=>samp.callNative("AddSimpleModel","iiiss",e,t,a,n,r),qd=(e,t,a,n,r,i,s)=>samp.callNative("AddSimpleModelTimed","iiissii",e,t,a,n,r,i,s),ec=(e,t)=>samp.callNative("RedirectDownload","is",e,t),tc=e=>{const[t]=samp.callNative("FindModelFileNameFromCRC","iSi",e,255);return t},ac=e=>{const[t]=samp.callNative("FindTextureFileNameFromCRC","iSi",e,255);return t},nc=(e,t)=>{const[a=0,n=0,r=0,i=0,s=0,l=0,o=0,c=0,u=0,p=0,g=0,y=0,E=0]=samp.callNative("GetPlayerAttachedObject","iiIIFFFFFFFFFII",e,t);return{modelId:a,bone:n,fX:r,fY:i,fZ:s,fRotX:l,fRotY:o,fRotZ:c,fScaleX:u,fScaleY:p,fScaleZ:g,materialColor1:y,materialColor2:E}},rc=(e,t,a,n,r,i,s,l,o,c,u,p,g,y,E)=>samp.callNative("SetPlayerAttachedObject","iiiifffffffffii",e,t,a,n,r,i,s,l,o,c,u,p,g,I(y),I(E)),ic=(e,t)=>samp.callNative("RemovePlayerAttachedObject","ii",e,t),sc=(e,t)=>!!samp.callNative("IsPlayerAttachedObjectSlotUsed","ii",e,t),Oe=e=>!!samp.callNative("IsValidCustomModel","i",e),lc=e=>{if(!Oe(e))return null;const[t,a]=samp.callNative("GetCustomModePath","iSiSi",e,255,255);return{dffPath:t,txdPath:a}};var Ge=(e=>(e[e.DOWNLOAD_REQUEST_EMPTY=0]="DOWNLOAD_REQUEST_EMPTY",e[e.DOWNLOAD_REQUEST_MODEL_FILE=1]="DOWNLOAD_REQUEST_MODEL_FILE",e[e.DOWNLOAD_REQUEST_TEXTURE_FILE=2]="DOWNLOAD_REQUEST_TEXTURE_FILE",e))(Ge||{}),Fe=(e=>(e[e.SCOREBOARD=0]="SCOREBOARD",e))(Fe||{}),me=(e=>(e[e.MSGBOX=0]="MSGBOX",e[e.INPUT=1]="INPUT",e[e.LIST=2]="LIST",e[e.PASSWORD=3]="PASSWORD",e[e.TABLIST=4]="TABLIST",e[e.TABLIST_HEADERS=5]="TABLIST_HEADERS",e))(me||{}),Be=(e=>(e[e.CANCEL=0]="CANCEL",e[e.FINAL=1]="FINAL",e[e.UPDATE=2]="UPDATE",e))(Be||{}),ke=(e=>(e[e.NO_ACTION=0]="NO_ACTION",e[e.DISCONNECT_ASAP=1]="DISCONNECT_ASAP",e[e.DISCONNECT_ASAP_SILENTLY=2]="DISCONNECT_ASAP_SILENTLY",e[e.DISCONNECT_ON_NO_ACK=3]="DISCONNECT_ON_NO_ACK",e[e.REQUESTED_CONNECTION=4]="REQUESTED_CONNECTION",e[e.HANDLING_CONNECTION_REQUEST=5]="HANDLING_CONNECTION_REQUEST",e[e.UNVERIFIED_SENDER=6]="UNVERIFIED_SENDER",e[e.SET_ENCRYPTION_ON_MULTIPLE_16_BYTE_PACKET=7]="SET_ENCRYPTION_ON_MULTIPLE_16_BYTE_PACKET",e[e.CONNECTED=8]="CONNECTED",e))(ke||{}),T=(e=>(e[e.NO_TEAM=255]="NO_TEAM",e[e.PLAYER_ID=65535]="PLAYER_ID",e[e.VEHICLE_ID=65535]="VEHICLE_ID",e[e.ACTOR_ID=65535]="ACTOR_ID",e[e.OBJECT_ID=65535]="OBJECT_ID",e[e.MENU=-1]="MENU",e[e.TEXT_DRAW=65535]="TEXT_DRAW",e[e.PLAYER_TEXT_DRAW=65535]="PLAYER_TEXT_DRAW",e[e.GANG_ZONE=-1]="GANG_ZONE",e[e._3DTEXT_ID=65535]="_3DTEXT_ID",e[e.PLAYER_3DTEXT_ID=65535]="PLAYER_3DTEXT_ID",e))(T||{}),Me=(e=>(e[e.NONE=0]="NONE",e[e.ACTION=1]="ACTION",e[e.CROUCH=2]="CROUCH",e[e.FIRE=4]="FIRE",e[e.SPRINT=8]="SPRINT",e[e.SECONDARY_ATTACK=16]="SECONDARY_ATTACK",e[e.JUMP=32]="JUMP",e[e.LOOK_RIGHT=64]="LOOK_RIGHT",e[e.HANDBRAKE=128]="HANDBRAKE",e[e.LOOK_LEFT=256]="LOOK_LEFT",e[e.SUBMISSION=512]="SUBMISSION",e[e.LOOK_BEHIND=512]="LOOK_BEHIND",e[e.WALK=1024]="WALK",e[e.ANALOG_UP=2048]="ANALOG_UP",e[e.ANALOG_DOWN=4096]="ANALOG_DOWN",e[e.ANALOG_LEFT=8192]="ANALOG_LEFT",e[e.ANALOG_RIGHT=16384]="ANALOG_RIGHT",e[e.YES=65536]="YES",e[e.NO=131072]="NO",e[e.CTRL_BACK=262144]="CTRL_BACK",e[e.KEY_UP=-128]="KEY_UP",e[e.KEY_DOWN=128]="KEY_DOWN",e[e.KEY_LEFT=-128]="KEY_LEFT",e[e.KEY_RIGHT=128]="KEY_RIGHT",e))(Me||{}),F=(e=>(e[e.MAX_PLAYER_NAME=24]="MAX_PLAYER_NAME",e[e.MAX_PLAYERS=1e3]="MAX_PLAYERS",e[e.MAX_VEHICLES=2e3]="MAX_VEHICLES",e[e.MAX_ACTORS=1e3]="MAX_ACTORS",e[e.MAX_OBJECTS=1e3]="MAX_OBJECTS",e[e.MAX_GANG_ZONES=1024]="MAX_GANG_ZONES",e[e.MAX_TEXT_DRAWS=2048]="MAX_TEXT_DRAWS",e[e.MAX_PLAYER_TEXT_DRAWS=256]="MAX_PLAYER_TEXT_DRAWS",e[e.MAX_MENUS=128]="MAX_MENUS",e[e.MAX_MENU_ROW=12]="MAX_MENU_ROW",e[e.MAX_MENU_COL=2]="MAX_MENU_COL",e[e.MAX_3DTEXT_GLOBAL=1024]="MAX_3DTEXT_GLOBAL",e[e.MAX_3DTEXT_PLAYER=1024]="MAX_3DTEXT_PLAYER",e[e.MAX_PICKUPS=4096]="MAX_PICKUPS",e[e.MAX_PLAYER_ATTACHED_OBJECTS=10]="MAX_PLAYER_ATTACHED_OBJECTS",e[e.MAX_CHATBUBBLE_LENGTH=144]="MAX_CHATBUBBLE_LENGTH",e))(F||{}),xe=(e=>(e[e.OFF=0]="OFF",e[e.GLOBAL=1]="GLOBAL",e[e.STREAMED=2]="STREAMED",e))(xe||{}),He=(e=>(e[e.NONE=1]="NONE",e[e.DRIVER=2]="DRIVER",e[e.ONFOOT=3]="ONFOOT",e))(He||{}),B=(e=>(e[e.none=0]="none",e[e.start=1]="start",e[e.pause=2]="pause",e))(B||{}),Ve=(e=>(e[e._32x32=10]="_32x32",e[e._64x32=20]="_64x32",e[e._64x64=30]="_64x64",e[e._128x32=40]="_128x32",e[e._128x64=50]="_128x64",e[e._128x128=60]="_128x128",e[e._256x32=70]="_256x32",e[e._256x64=80]="_256x64",e[e._256x128=90]="_256x128",e[e._256x256=100]="_256x256",e[e._512x64=110]="_512x64",e[e._512x128=120]="_512x128",e[e._512x256=130]="_512x256",e[e._512x512=140]="_512x512",e))(Ve||{}),Ue=(e=>(e[e.LEFT=0]="LEFT",e[e.CENTER=1]="CENTER",e[e.RIGHT=2]="RIGHT",e))(Ue||{}),We=(e=>(e[e.GLOBAL_OBJECT=1]="GLOBAL_OBJECT",e[e.PLAYER_OBJECT=2]="PLAYER_OBJECT",e))(We||{}),Ke=(e=>(e[e.NORMAL=0]="NORMAL",e[e.BOXING=1]="BOXING",e[e.KUNGFU=2]="KUNGFU",e[e.KNEEHEAD=3]="KNEEHEAD",e[e.GRABKICK=4]="GRABKICK",e[e.ELBOW=5]="ELBOW",e))(Ke||{}),je=(e=>(e[e.LOCAL=0]="LOCAL",e[e.GLOBAL=1]="GLOBAL",e[e.LOCAL_CHECKPOINT=2]="LOCAL_CHECKPOINT",e[e.GLOBAL_CHECKPOINT=3]="GLOBAL_CHECKPOINT",e))(je||{}),re=(e=>(e[e.MOVE=1]="MOVE",e[e.CUT=2]="CUT",e))(re||{}),Ze=(e=>(e[e.BEHINDCAR=3]="BEHINDCAR",e[e.FOLLOWPED=4]="FOLLOWPED",e[e.SNIPER=7]="SNIPER",e[e.ROCKETLAUNCHER=8]="ROCKETLAUNCHER",e[e.FIXED=15]="FIXED",e[e._1STPERSON=16]="_1STPERSON",e[e.CAM_ON_A_STRING=18]="CAM_ON_A_STRING",e[e.BEHINDBOAT=22]="BEHINDBOAT",e[e.CAMERA=46]="CAMERA",e[e.ROCKETLAUNCHER_HS=51]="ROCKETLAUNCHER_HS",e[e.AIMWEAPON=53]="AIMWEAPON",e[e.AIMWEAPON_FROMCAR=55]="AIMWEAPON_FROMCAR",e[e.DW_HELI_CHASE=56]="DW_HELI_CHASE",e[e.DW_CAM_MAN=57]="DW_CAM_MAN",e[e.DW_BIRDY=58]="DW_BIRDY",e[e.DW_PLANE_SPOTTER=59]="DW_PLANE_SPOTTER",e[e.DW_PLANECAM1=62]="DW_PLANECAM1",e[e.DW_PLANECAM2=63]="DW_PLANECAM2",e[e.DW_PLANECAM3=64]="DW_PLANECAM3",e))(Ze||{}),de=(e=>(e[e.NORMAL=1]="NORMAL",e[e.FIXED=2]="FIXED",e[e.SIDE=3]="SIDE",e))(de||{}),Q=(e=>(e[e.NONE=0]="NONE",e[e.ONFOOT=1]="ONFOOT",e[e.DRIVER=2]="DRIVER",e[e.PASSENGER=3]="PASSENGER",e[e.EXIT_VEHICLE=4]="EXIT_VEHICLE",e[e.ENTER_VEHICLE_DRIVER=5]="ENTER_VEHICLE_DRIVER",e[e.ENTER_VEHICLE_PASSENGER=6]="ENTER_VEHICLE_PASSENGER",e[e.WASTED=7]="WASTED",e[e.SPAWNED=8]="SPAWNED",e[e.SPECTATING=9]="SPECTATING",e))(Q||{}),Xe=(e=>(e[e.TORSO=3]="TORSO",e[e.GROIN=4]="GROIN",e[e.LEFT_ARM=5]="LEFT_ARM",e[e.RIGHT_ARM=6]="RIGHT_ARM",e[e.LEFT_LEG=7]="LEFT_LEG",e[e.RIGHT_LEG=8]="RIGHT_LEG",e[e.HEAD=9]="HEAD",e))(Xe||{}),Ye=(e=>(e[e.Spine=1]="Spine",e[e.Head=2]="Head",e[e.LeftUpperArm=3]="LeftUpperArm",e[e.RightUpperArm=4]="RightUpperArm",e[e.LeftHand=5]="LeftHand",e[e.RightHand=6]="RightHand",e[e.LeftThigh=7]="LeftThigh",e[e.RightThigh=8]="RightThigh",e[e.LeftFoot=9]="LeftFoot",e[e.RightFoot=10]="RightFoot",e[e.RightCalf=11]="RightCalf",e[e.LeftCalf=12]="LeftCalf",e[e.LeftForearm=13]="LeftForearm",e[e.RightForearm=14]="RightForearm",e[e.LeftClavicle=15]="LeftClavicle",e[e.RightClavicle=16]="RightClavicle",e[e.Neck=17]="Neck",e[e.Jaw=18]="Jaw",e))(Ye||{}),ze=(e=>(e[e.UNKNOWN=-1]="UNKNOWN",e[e.NONE=0]="NONE",e[e.ALL=1]="ALL",e[e.OTHER=2]="OTHER",e))(ze||{}),pe=(e=>(e[e.NONE=0]="NONE",e[e.DUCK=1]="DUCK",e[e.USEJETPACK=2]="USEJETPACK",e[e.ENTER_VEHICLE=3]="ENTER_VEHICLE",e[e.EXIT_VEHICLE=4]="EXIT_VEHICLE",e[e.DANCE1=5]="DANCE1",e[e.DANCE2=6]="DANCE2",e[e.DANCE3=7]="DANCE3",e[e.DANCE4=8]="DANCE4",e[e.HANDSUP=10]="HANDSUP",e[e.USECELLPHONE=11]="USECELLPHONE",e[e.SITTING=12]="SITTING",e[e.STOPUSECELLPHONE=13]="STOPUSECELLPHONE",e[e.DRINK_BEER=20]="DRINK_BEER",e[e.SMOKE_CIGGY=21]="SMOKE_CIGGY",e[e.DRINK_WINE=22]="DRINK_WINE",e[e.DRINK_SPRUNK=23]="DRINK_SPRUNK",e[e.CUFFED=24]="CUFFED",e[e.CARRY=25]="CARRY",e[e.PISSING=68]="PISSING",e))(pe||{}),ie=(e=>(e[e.FONT_0=0]="FONT_0",e[e.FONT_1=1]="FONT_1",e[e.FONT_2=2]="FONT_2",e[e.FONT_3=3]="FONT_3",e[e.SPRITE_DRAW=4]="SPRITE_DRAW",e[e.MODEL_PREVIEW=5]="MODEL_PREVIEW",e[e.BANK=0]="BANK",e[e.STANDARD=1]="STANDARD",e[e.SPACEAGE=2]="SPACEAGE",e[e.HEADING=3]="HEADING",e[e.BECKETT_REGULAR=0]="BECKETT_REGULAR",e[e.AHARONI_BOLD=1]="AHARONI_BOLD",e[e.BANK_GOTHIC=2]="BANK_GOTHIC",e[e.PRICEDOWN=3]="PRICEDOWN",e[e.SPRITE=4]="SPRITE",e[e.PREVIEW=5]="PREVIEW",e))(ie||{}),$e=(e=>(e[e.LEFT=1]="LEFT",e[e.CENTER=2]="CENTER",e[e.RIGHT=3]="RIGHT",e))($e||{}),Je=(e=>(e[e.UNKNOWN=-1]="UNKNOWN",e[e.NONE=-1]="NONE",e[e.SPOILER=0]="SPOILER",e[e.HOOD=1]="HOOD",e[e.ROOF=2]="ROOF",e[e.SIDESKIRT=3]="SIDESKIRT",e[e.LAMPS=4]="LAMPS",e[e.NITRO=5]="NITRO",e[e.EXHAUST=6]="EXHAUST",e[e.WHEELS=7]="WHEELS",e[e.STEREO=8]="STEREO",e[e.HYDRAULICS=9]="HYDRAULICS",e[e.FRONT_BUMPER=10]="FRONT_BUMPER",e[e.REAR_BUMPER=11]="REAR_BUMPER",e[e.VENT_RIGHT=12]="VENT_RIGHT",e[e.VENT_LEFT=13]="VENT_LEFT",e[e.FRONT_BULLBAR=14]="FRONT_BULLBAR",e[e.REAR_BULLBAR=15]="REAR_BULLBAR",e))(Je||{}),Qe=(e=>(e[e.UNSET=-1]="UNSET",e[e.OFF=0]="OFF",e[e.ON=1]="ON",e))(Qe||{}),qe=(e=>(e[e.SIZE=1]="SIZE",e[e.FRONTSEAT=2]="FRONTSEAT",e[e.REARSEAT=3]="REARSEAT",e[e.PETROLCAP=4]="PETROLCAP",e[e.WHEELSFRONT=5]="WHEELSFRONT",e[e.WHEELSREAR=6]="WHEELSREAR",e[e.WHEELSMID=7]="WHEELSMID",e[e.FRONT_BUMPER_Z=8]="FRONT_BUMPER_Z",e[e.REAR_BUMPER_Z=9]="REAR_BUMPER_Z",e))(qe||{}),et=(e=>(e[e.UNKNOWN=-1]="UNKNOWN",e[e.REASON_VEHICLE=49]="REASON_VEHICLE",e[e.REASON_DROWN=53]="REASON_DROWN",e[e.REASON_COLLISION=54]="REASON_COLLISION",e[e.REASON_SPLAT=54]="REASON_SPLAT",e[e.REASON_CONNECT=200]="REASON_CONNECT",e[e.REASON_DISCONNECT=200]="REASON_DISCONNECT",e[e.REASON_SUICIDE=255]="REASON_SUICIDE",e[e.FIST=0]="FIST",e[e.BRASSKNUCKLE=1]="BRASSKNUCKLE",e[e.GOLFCLUB=2]="GOLFCLUB",e[e.NITESTICK=3]="NITESTICK",e[e.KNIFE=4]="KNIFE",e[e.BAT=5]="BAT",e[e.SHOVEL=6]="SHOVEL",e[e.POOLSTICK=7]="POOLSTICK",e[e.KATANA=8]="KATANA",e[e.CHAINSAW=9]="CHAINSAW",e[e.DILDO=10]="DILDO",e[e.DILDO2=11]="DILDO2",e[e.VIBRATOR=12]="VIBRATOR",e[e.VIBRATOR2=13]="VIBRATOR2",e[e.FLOWER=14]="FLOWER",e[e.CANE=15]="CANE",e[e.GRENADE=16]="GRENADE",e[e.TEARGAS=17]="TEARGAS",e[e.MOLTOV=18]="MOLTOV",e[e.COLT45=22]="COLT45",e[e.SILENCED=23]="SILENCED",e[e.DEAGLE=24]="DEAGLE",e[e.SHOTGUN=25]="SHOTGUN",e[e.SAWEDOFF=26]="SAWEDOFF",e[e.SHOTGSPA=27]="SHOTGSPA",e[e.UZI=28]="UZI",e[e.MP5=29]="MP5",e[e.AK47=30]="AK47",e[e.M4=31]="M4",e[e.TEC9=32]="TEC9",e[e.RIFLE=33]="RIFLE",e[e.SNIPER=34]="SNIPER",e[e.ROCKETLAUNCHER=35]="ROCKETLAUNCHER",e[e.HEATSEEKER=36]="HEATSEEKER",e[e.FLAMETHROWER=37]="FLAMETHROWER",e[e.MINIGUN=38]="MINIGUN",e[e.SATCHEL=39]="SATCHEL",e[e.BOMB=40]="BOMB",e[e.SPRAYCAN=41]="SPRAYCAN",e[e.FIREEXTINGUISHER=42]="FIREEXTINGUISHER",e[e.CAMERA=43]="CAMERA",e[e.NIGHT_VISION_GOGGLES=44]="NIGHT_VISION_GOGGLES",e[e.THERMAL_GOGGLES=45]="THERMAL_GOGGLES",e[e.PARACHUTE=46]="PARACHUTE",e))(et||{}),tt=(e=>(e[e.PISTOL=0]="PISTOL",e[e.PISTOL_SILENCED=1]="PISTOL_SILENCED",e[e.DESERT_EAGLE=2]="DESERT_EAGLE",e[e.SHOTGUN=3]="SHOTGUN",e[e.SAWNOFF_SHOTGUN=4]="SAWNOFF_SHOTGUN",e[e.SPAS12_SHOTGUN=5]="SPAS12_SHOTGUN",e[e.MICRO_UZI=6]="MICRO_UZI",e[e.MP5=7]="MP5",e[e.AK47=8]="AK47",e[e.M4=9]="M4",e[e.SNIPERRIFLE=10]="SNIPERRIFLE",e))(tt||{}),at=(e=>(e[e.NONE=0]="NONE",e[e.PLAYER=1]="PLAYER",e[e.VEHICLE=2]="VEHICLE",e[e.OBJECT=3]="OBJECT",e[e.PLAYER_OBJECT=4]="PLAYER_OBJECT",e))(at||{}),nt=(e=>(e[e.UNKNOWN=-1]="UNKNOWN",e[e.NO_BULLETS=0]="NO_BULLETS",e[e.LAST_BULLET=1]="LAST_BULLET",e[e.MORE_BULLETS=2]="MORE_BULLETS",e[e.RELOADING=3]="RELOADING",e))(nt||{}),ge=(e=>(e[e.VEHICLE=49]="VEHICLE",e[e.HELICOPTERBLADES=50]="HELICOPTERBLADES",e[e.EXPLOSION=51]="EXPLOSION",e[e.DROWN=53]="DROWN",e[e.COLLISION=54]="COLLISION",e[e.CONNECT=200]="CONNECT",e[e.DISCONNECT=201]="DISCONNECT",e[e.SUICIDE=255]="SUICIDE",e))(ge||{}),rt=(e=>(e[e.NONE=0]="NONE",e[e.DRIVER=1]="DRIVER",e[e.ONFOOT=2]="ONFOOT",e))(rt||{});class D{static npcs=new Map;id=T.PLAYER_ID;name="";static recordStatus;constructor(t){const a=samp.callNative("NPC_Create","s",t);if(this.id=a,this.name=t,a!==T.PLAYER_ID){const n=D.getInstance(a);if(n)return n}return D.npcs.set(a,this),this}getName(){return this.name}destroy(){return samp.callNative("NPC_Destroy","i",this.id),this}isValid(){return!!samp.callNative("NPC_IsValid","i",this.id)}spawn(){return samp.callNative("NPC_Spawn","i",this.id),this}setPos(t,a,n){return samp.callNative("NPC_SetPos","ifff",this.id,t,a,n),this}setRot(t,a,n){return samp.callNative("NPC_SetRot","ifff",this.id,t,a,n),this}getRot(){const[t,a,n]=samp.callNative("NPC_GetRot","iFFF",this.id);return{rX:t,rY:a,rZ:n}}setFacingAngle(t){return samp.callNative("NPC_SetFacingAngle","if",this.id,t),this}getFacingAngle(){const[t]=samp.callNative("NPC_GetFacingAngle","iF",this.id);return t}setVirtualWorld(t){return samp.callNative("NPC_SetVirtualWorld","ii",this.id,t),this}getVirtualWorld(){const[t]=samp.callNative("NPC_GetVirtualWorld","iI",this.id);return t}move(t,a,n,r,i=-1){return!!samp.callNative("NPC_Move","ifffif",this.id,t,a,n,r,i)}stopMove(){return samp.callNative("NPC_StopMove","i",this.id),this}isMoving(){return!!samp.callNative("NPC_IsMoving","ifffif",this.id)}setSkin(t){return samp.callNative("NPC_SetSkin","ii",this.id,t),this}isStreamedIn(t){return!!samp.callNative("NPC_IsStreamedIn","ii",this.id,t.id)}isAnyStreamedIn(){return!!samp.callNative("NPC_IsAnyStreamedIn","i",this.id)}setInterior(t){return samp.callNative("NPC_SetInterior","ii",this.id,t),this}getInterior(){return samp.callNative("NPC_GetInterior","i",this.id)}setHealth(t){return samp.callNative("NPC_SetHealth","if",this.id,t),this}getHealth(){return samp.callNativeFloat("NPC_GetHealth","i",this.id)}setArmour(t){return samp.callNative("NPC_SetArmour","if",this.id,t),this}getArmour(){return samp.callNativeFloat("NPC_GetArmour","i",this.id)}isDead(){return!!samp.callNative("NPC_IsDead","i",this.id)}applyAnimation(t,a,n,r,i,s,l,o,c){return samp.callNative("NPC_ApplyAnimation","issfiiiiii",this.id,t,a,n,r,i,s,l,o,c),this}setWeapon(t){return samp.callNative("NPC_SetWeapon","ii",this.id,t),this}getWeapon(){return samp.callNative("NPC_GetWeapon","i",this.id)}setAmmo(t){return samp.callNative("NPC_SetAmmo","ii",this.id,t),this}getAmmo(){return samp.callNative("NPC_GetAmmo","ii",this.id)}setKeys(t,a,n){return samp.callNative("NPC_SetKeys","iiii",t,a,n),this}getKeys(){const[t,a,n]=samp.callNative("NPC_GetKeys","iIII",this.id);return{upAndDown:t,leftAndDown:a,keys:n}}setWeaponSkillLevel(t,a){return samp.callNative("NPC_SetWeaponSkillLevel","iii",this.id,t,a),this}getWeaponSkillLevel(t){return samp.callNative("NPC_GetWeaponSkillLevel","ii",this.id,t)}meleeAttack(t,a){return samp.callNative("NPC_MeleeAttack","iii",this.id,t,a),this}stopMeleeAttack(){return samp.callNative("NPC_StopMeleeAttack","i",this.id),this}isMeleeAttacking(){return!!samp.callNative("NPC_IsMeleeAttacking","i",this.id)}setFightingStyle(t){return samp.callNative("NPC_SetFightingStyle","ii",this.id,t),this}getFightingStyle(){return samp.callNative("NPC_GetFightingStyle","i",this.id)}enableReloading(t){return samp.callNative("NPC_EnableReloading","ii",this.id,t),this}isReloadEnabled(){return!!samp.callNative("NPC_IsReloadEnabled","i",this.id)}isReloading(){return!!samp.callNative("NPC_IsReloading","i",this.id)}enableInfiniteAmmo(t){return samp.callNative("NPC_EnableInfiniteAmmo","ii",this.id,t),this}isInfiniteAmmoEnabled(){return!!samp.callNative("NPC_IsInfiniteAmmoEnabled","i",this.id)}getWeaponState(){return samp.callNative("NPC_GetWeaponState","i",this.id)}setAmmoInClip(t){return samp.callNative("NPC_SetAmmoInClip","ii",this.id,t),this}getAmmoInClip(){return samp.callNative("NPC_GetAmmoInClip","i",this.id)}shoot(t,a,n,r,i,s,l,o,c,u,p){return samp.callNative("NPC_Shoot","iiiffffffii",this.id,t,a,n,r,i,s,l,o,c,u,p),this}isShooting(){return!!samp.callNative("NPC_IsShooting","i",this.id)}aimAt(t,a,n,r,i,s,l,o,c,u){return samp.callNative("NPC_AimAt","ifffiiifffi",this.id,t,a,n,r,i,s,l,o,c,u),this}aimAtPlayer(t,a,n,r,i,s,l,o,c,u,p){return samp.callNative("NPC_AimAtPlayer","iiiiiffffffi",this.id,t.id,a,n,r,i,s,l,o,c,u,p),this}stopAim(){return samp.callNative("NPC_StopAim","i",this.id),this}isAiming(){return!!samp.callNative("NPC_IsAiming","i",this.id)}isAimingAtPlayer(t){return!!samp.callNative("NPC_IsAimingAtPlayer","ii",this.id,t.id)}setWeaponAccuracy(t,a){return samp.callNative("NPC_SetWeaponAccuracy","iif",this.id,t,a),this}getWeaponAccuracy(t){return samp.callNativeFloat("NPC_GetWeaponAccuracy","ii",this.id,t)}enterVehicle(t,a,n){return samp.callNative("NPC_EnterVehicle","iiii",this.id,t,a,n),this}exitVehicle(){return samp.callNative("NPC_ExitVehicle","i",this.id),this}static connect=fa;static startRecordingPlayerData(t,a,n){if(t.isRecording)throw new Error("[NpcFunc]: It should be stopped before recording");ri(t.id,a,n),t.isRecording=!0}static stopRecordingPlayerData(t){if(!t.isRecording)throw new Error("[NpcFunc]: It should be started before stop");ii(t.id),t.isRecording=!1}static startRecordingPlayback(t,a){if(D.recordStatus>=B.start)throw new Error("[NpcFunc]: The current status cannot be replayed");Li(t,a),D.recordStatus=B.start}static stopRecordingPlayback(){if(D.recordStatus<B.start)throw new Error("[NpcFunc]: The current status cannot be stopped");Oi(),D.recordStatus=B.none}static pauseRecordingPlayback(){if(D.recordStatus!==B.start)throw new Error("[NpcFunc]: The current status cannot be paused");Gi(),D.recordStatus=B.pause}static resumeRecordingPlayback(){if(D.recordStatus!==B.pause)throw new Error("[NpcFunc]: The current status cannot be paused");Fi(),D.recordStatus=B.start}static getInstance(t){return this.npcs.get(t)}static getInstances(){return[...this.npcs.values()]}}const it=new Map([["AIRPORT",[{n:"thrw_barl_thrw",d:2}]],["Attractors",[{n:"Stepsit_in",d:1.67},{n:"Stepsit_loop",d:3.33},{n:"Stepsit_out",d:1.67}]],["BAR",[{n:"Barcustom_get",d:3},{n:"Barcustom_loop",d:2},{n:"Barcustom_order",d:3.67},{n:"BARman_idle",d:8.33},{n:"Barserve_bottle",d:3},{n:"Barserve_give",d:2.33},{n:"Barserve_glass",d:3.67},{n:"Barserve_in",d:1.67},{n:"Barserve_loop",d:2.33},{n:"Barserve_order",d:3.67},{n:"dnk_stndF_loop",d:2.33},{n:"dnk_stndM_loop",d:2.33}]],["BASEBALL",[{n:"Bat_1",d:.9},{n:"Bat_2",d:1.13},{n:"Bat_3",d:1.2},{n:"Bat_4",d:1},{n:"Bat_block",d:.47},{n:"Bat_Hit_1",d:.83},{n:"Bat_Hit_2",d:1.07},{n:"Bat_Hit_3",d:1.13},{n:"Bat_IDLE",d:.93},{n:"Bat_M",d:.53},{n:"BAT_PART",d:.53}]],["BD_FIRE",[{n:"BD_Fire1",d:1.83},{n:"BD_Fire2",d:1.67},{n:"BD_Fire3",d:1.83},{n:"BD_GF_Wave",d:5.07},{n:"BD_Panic_01",d:3.33},{n:"BD_Panic_02",d:3.33},{n:"BD_Panic_03",d:3.33},{n:"BD_Panic_04",d:3.33},{n:"BD_Panic_Loop",d:3.33},{n:"Grlfrd_Kiss_03",d:7},{n:"M_smklean_loop",d:5},{n:"Playa_Kiss_03",d:7},{n:"wash_up",d:3}]],["BEACH",[{n:"bather",d:4.2},{n:"Lay_Bac_Loop",d:2.67},{n:"ParkSit_M_loop",d:3.67},{n:"ParkSit_W_loop",d:3.33},{n:"SitnWait_loop_W",d:1.33}]],["benchpress",[{n:"gym_bp_celebrate",d:5},{n:"gym_bp_down",d:1},{n:"gym_bp_getoff",d:8.67},{n:"gym_bp_geton",d:5.33},{n:"gym_bp_up_A",d:2.33},{n:"gym_bp_up_B",d:2.67},{n:"gym_bp_up_smooth",d:1.33}]],["BF_injection",[{n:"BF_getin_LHS",d:1},{n:"BF_getin_RHS",d:1},{n:"BF_getout_LHS",d:1.13},{n:"BF_getout_RHS",d:1.13}]],["BIKED",[{n:"BIKEd_Back",d:.1},{n:"BIKEd_drivebyFT",d:.2},{n:"BIKEd_drivebyLHS",d:.2},{n:"BIKEd_drivebyRHS",d:.2},{n:"BIKEd_Fwd",d:.2},{n:"BIKEd_getoffBACK",d:1.47},{n:"BIKEd_getoffLHS",d:1},{n:"BIKEd_getoffRHS",d:1},{n:"BIKEd_hit",d:.03},{n:"BIKEd_jumponL",d:.97},{n:"BIKEd_jumponR",d:.97},{n:"BIKEd_kick",d:1.07},{n:"BIKEd_Left",d:.1},{n:"BIKEd_passenger",d:.03},{n:"BIKEd_pushes",d:.8},{n:"BIKEd_Ride",d:.03},{n:"BIKEd_Right",d:.1},{n:"BIKEd_shuffle",d:.43},{n:"BIKEd_Still",d:.03}]],["BIKEH",[{n:"BIKEh_Back",d:.1},{n:"BIKEh_drivebyFT",d:.2},{n:"BIKEh_drivebyLHS",d:.2},{n:"BIKEh_drivebyRHS",d:.2},{n:"BIKEh_Fwd",d:.2},{n:"BIKEh_getoffBACK",d:1.7},{n:"BIKEh_getoffLHS",d:.77},{n:"BIKEh_getoffRHS",d:.73},{n:"BIKEh_hit",d:.03},{n:"BIKEh_jumponL",d:1.47},{n:"BIKEh_jumponR",d:1.5},{n:"BIKEh_kick",d:1.07},{n:"BIKEh_Left",d:.13},{n:"BIKEh_passenger",d:.03},{n:"BIKEh_pushes",d:.97},{n:"BIKEh_Ride",d:.03},{n:"BIKEh_Right",d:.13},{n:"BIKEh_Still",d:.03}]],["BIKELEAP",[{n:"bk_blnce_in",d:1.9},{n:"bk_blnce_out",d:1},{n:"bk_jmp",d:.4},{n:"bk_rdy_in",d:.5},{n:"bk_rdy_out",d:.4},{n:"struggle_cesar",d:.47},{n:"struggle_driver",d:.47},{n:"truck_driver",d:.73},{n:"truck_getin",d:2.5}]],["BIKES",[{n:"BIKEs_Back",d:.1},{n:"BIKEs_drivebyFT",d:.2},{n:"BIKEs_drivebyLHS",d:.2},{n:"BIKEs_drivebyRHS",d:.2},{n:"BIKEs_Fwd",d:.2},{n:"BIKEs_getoffBACK",d:2.43},{n:"BIKEs_getoffLHS",d:1.1},{n:"BIKEs_getoffRHS",d:1.1},{n:"BIKEs_hit",d:.03},{n:"BIKEs_jumponL",d:.9},{n:"BIKEs_jumponR",d:.9},{n:"BIKEs_kick",d:1},{n:"BIKEs_Left",d:.1},{n:"BIKEs_passenger",d:.03},{n:"BIKEs_pushes",d:.73},{n:"BIKEs_Ride",d:.03},{n:"BIKEs_Right",d:.1},{n:"BIKEs_Snatch_L",d:.43},{n:"BIKEs_Snatch_R",d:.43},{n:"BIKEs_Still",d:.03}]],["BIKEV",[{n:"BIKEv_Back",d:.17},{n:"BIKEv_drivebyFT",d:.17},{n:"BIKEv_drivebyLHS",d:.23},{n:"BIKEv_drivebyRHS",d:.2},{n:"BIKEv_Fwd",d:.2},{n:"BIKEv_getoffBACK",d:1.7},{n:"BIKEv_getoffLHS",d:.67},{n:"BIKEv_getoffRHS",d:.67},{n:"BIKEv_hit",d:.03},{n:"BIKEv_jumponL",d:.67},{n:"BIKEv_jumponR",d:.67},{n:"BIKEv_kick",d:1},{n:"BIKEv_Left",d:.1},{n:"BIKEv_passenger",d:.03},{n:"BIKEv_pushes",d:.73},{n:"BIKEv_Ride",d:.03},{n:"BIKEv_Right",d:.1},{n:"BIKEv_Still",d:.03}]],["BIKE_DBZ",[{n:"Pass_Driveby_BWD",d:.83},{n:"Pass_Driveby_FWD",d:.83},{n:"Pass_Driveby_LHS",d:.83},{n:"Pass_Driveby_RHS",d:.83}]],["BLOWJOBZ",[{n:"BJ_Car_End_P",d:4.13},{n:"BJ_Car_End_W",d:3.67},{n:"BJ_Car_Loop_P",d:.67},{n:"BJ_Car_Loop_W",d:.67},{n:"BJ_Car_Start_P",d:2.33},{n:"BJ_Car_Start_W",d:2.33},{n:"BJ_Couch_End_P",d:7.67},{n:"BJ_Couch_End_W",d:7.67},{n:"BJ_Couch_Loop_P",d:2},{n:"BJ_Couch_Loop_W",d:2},{n:"BJ_Couch_Start_P",d:5.33},{n:"BJ_Couch_Start_W",d:5.33},{n:"BJ_Stand_End_P",d:4.87},{n:"BJ_Stand_End_W",d:5.33},{n:"BJ_Stand_Loop_P",d:.67},{n:"BJ_Stand_Loop_W",d:.67},{n:"BJ_Stand_Start_P",d:2},{n:"BJ_Stand_Start_W",d:2}]],["BMX",[{n:"BMX_back",d:.1},{n:"BMX_bunnyhop",d:.33},{n:"BMX_drivebyFT",d:.2},{n:"BMX_driveby_LHS",d:.2},{n:"BMX_driveby_RHS",d:.2},{n:"BMX_fwd",d:.13},{n:"BMX_getoffBACK",d:1.37},{n:"BMX_getoffLHS",d:.73},{n:"BMX_getoffRHS",d:.63},{n:"BMX_jumponL",d:.9},{n:"BMX_jumponR",d:.9},{n:"BMX_Left",d:.13},{n:"BMX_pedal",d:.73},{n:"BMX_pushes",d:.8},{n:"BMX_Ride",d:.03},{n:"BMX_Right",d:.13},{n:"BMX_sprint",d:.67},{n:"BMX_still",d:.03}]],["BOMBER",[{n:"BOM_Plant",d:2.67},{n:"BOM_Plant_2Idle",d:1},{n:"BOM_Plant_Crouch_In",d:.8},{n:"BOM_Plant_Crouch_Out",d:.8},{n:"BOM_Plant_In",d:.87},{n:"BOM_Plant_Loop",d:.8}]],["BOX",[{n:"boxhipin",d:6.53},{n:"boxhipup",d:5},{n:"boxshdwn",d:6.1},{n:"boxshup",d:5.2},{n:"bxhipwlk",d:1.5},{n:"bxhwlki",d:.97},{n:"bxshwlk",d:2.5},{n:"bxshwlki",d:.97},{n:"bxwlko",d:.53},{n:"catch_box",d:1.5}]],["BSKTBALL",[{n:"BBALL_def_jump_shot",d:1.17},{n:"BBALL_def_loop",d:1},{n:"BBALL_def_stepL",d:.6},{n:"BBALL_def_stepR",d:.6},{n:"BBALL_Dnk",d:1.4},{n:"BBALL_Dnk_Gli",d:.37},{n:"BBALL_Dnk_Gli_O",d:.37},{n:"BBALL_Dnk_Lnch",d:.2},{n:"BBALL_Dnk_Lnch_O",d:.2},{n:"BBALL_Dnk_Lnd",d:.93},{n:"BBALL_Dnk_O",d:.1},{n:"BBALL_idle",d:2.43},{n:"BBALL_idle2",d:2.67},{n:"BBALL_idle2_O",d:2.67},{n:"BBALL_idleloop",d:.67},{n:"BBALL_idleloop_O",d:.67},{n:"BBALL_idle_O",d:2.43},{n:"BBALL_Jump_Cancel",d:1.07},{n:"BBALL_Jump_Cancel_O",d:1.07},{n:"BBALL_Jump_End",d:.93},{n:"BBALL_Jump_Shot",d:1.67},{n:"BBALL_Jump_Shot_O",d:.67},{n:"BBALL_Net_Dnk_O",d:1.83},{n:"BBALL_pickup",d:1.83},{n:"BBALL_pickup_O",d:1.83},{n:"BBALL_react_miss",d:.8},{n:"BBALL_react_score",d:1.1},{n:"BBALL_run",d:.9},{n:"BBALL_run_O",d:.9},{n:"BBALL_SkidStop_L",d:.5},{n:"BBALL_SkidStop_L_O",d:.5},{n:"BBALL_SkidStop_R",d:.5},{n:"BBALL_SkidStop_R_O",d:.5},{n:"BBALL_walk",d:1.07},{n:"BBALL_WalkStop_L",d:.5},{n:"BBALL_WalkStop_L_O",d:.5},{n:"BBALL_WalkStop_R",d:.5},{n:"BBALL_WalkStop_R_O",d:.5},{n:"BBALL_walk_O",d:1.07},{n:"BBALL_walk_start",d:.2},{n:"BBALL_walk_start_O",d:.2}]],["BUDDY",[{n:"buddy_crouchfire",d:.87},{n:"buddy_crouchreload",d:1.1},{n:"buddy_fire",d:.8},{n:"buddy_fire_poor",d:1.33},{n:"buddy_reload",d:1.3}]],["BUS",[{n:"BUS_close",d:.4},{n:"BUS_getin_LHS",d:.33},{n:"BUS_getin_RHS",d:2.17},{n:"BUS_getout_LHS",d:.8},{n:"BUS_getout_RHS",d:1.87},{n:"BUS_jacked_LHS",d:1.13},{n:"BUS_open",d:1.47},{n:"BUS_open_RHS",d:1.2},{n:"BUS_pullout_LHS",d:.8}]],["CAMERA",[{n:"camcrch_cmon",d:2.33},{n:"camcrch_idleloop",d:2},{n:"camcrch_stay",d:2},{n:"camcrch_to_camstnd",d:1.33},{n:"camstnd_cmon",d:3},{n:"camstnd_idleloop",d:2},{n:"camstnd_lkabt",d:4.33},{n:"camstnd_to_camcrch",d:1},{n:"piccrch_in",d:1.33},{n:"piccrch_out",d:2},{n:"piccrch_take",d:1},{n:"picstnd_in",d:1},{n:"picstnd_out",d:.67},{n:"picstnd_take",d:1}]],["CAR",[{n:"Fixn_Car_Loop",d:5},{n:"Fixn_Car_Out",d:2.33},{n:"flag_drop",d:4.5},{n:"Sit_relaxed",d:.03},{n:"Tap_hand",d:.33},{n:"Tyd2car_bump",d:.83},{n:"Tyd2car_high",d:8},{n:"Tyd2car_low",d:6.67},{n:"Tyd2car_med",d:6.67},{n:"Tyd2car_TurnL",d:1},{n:"Tyd2car_TurnR",d:1}]],["CARRY",[{n:"crry_prtial",d:.03},{n:"liftup",d:1.53},{n:"liftup05",d:.63},{n:"liftup105",d:.67},{n:"putdwn",d:1.13},{n:"putdwn05",d:.67},{n:"putdwn105",d:.53}]],["CAR_CHAT",[{n:"carfone_in",d:6},{n:"carfone_loopA",d:4},{n:"carfone_loopA_to_B",d:1},{n:"carfone_loopB",d:5},{n:"carfone_loopB_to_A",d:.67},{n:"carfone_out",d:3},{n:"CAR_Sc1_BL",d:11.67},{n:"CAR_Sc1_BR",d:11.67},{n:"CAR_Sc1_FL",d:11.67},{n:"CAR_Sc1_FR",d:11.67},{n:"CAR_Sc2_FL",d:5},{n:"CAR_Sc3_BR",d:10.83},{n:"CAR_Sc3_FL",d:10.83},{n:"CAR_Sc3_FR",d:10.83},{n:"CAR_Sc4_BL",d:4.4},{n:"CAR_Sc4_BR",d:6.53},{n:"CAR_Sc4_FL",d:10},{n:"CAR_Sc4_FR",d:10},{n:"car_talkm_in",d:1.67},{n:"car_talkm_loop",d:4.33},{n:"car_talkm_out",d:7.33}]],["CASINO",[{n:"cards_in",d:.67},{n:"cards_loop",d:3.33},{n:"cards_lose",d:3.33},{n:"cards_out",d:.67},{n:"cards_pick_01",d:4.67},{n:"cards_pick_02",d:5.33},{n:"cards_raise",d:1.67},{n:"cards_win",d:3},{n:"dealone",d:.8},{n:"manwinb",d:1.5},{n:"manwind",d:1.67},{n:"Roulette_bet",d:2.33},{n:"Roulette_in",d:.67},{n:"Roulette_loop",d:3.67},{n:"Roulette_lose",d:2.67},{n:"Roulette_out",d:.67},{n:"Roulette_win",d:2.33},{n:"Slot_bet_01",d:4.67},{n:"Slot_bet_02",d:2},{n:"Slot_in",d:3.67},{n:"Slot_lose_out",d:4},{n:"Slot_Plyr",d:1.33},{n:"Slot_wait",d:3.67},{n:"Slot_win_out",d:9.33},{n:"wof",d:1.47}]],["CHAINSAW",[{n:"CSAW_1",d:1},{n:"CSAW_2",d:1.03},{n:"CSAW_3",d:.87},{n:"CSAW_G",d:1.17},{n:"CSAW_Hit_1",d:.83},{n:"CSAW_Hit_2",d:1.07},{n:"CSAW_Hit_3",d:1.13},{n:"csaw_part",d:.13},{n:"IDLE_csaw",d:1.5},{n:"WEAPON_csaw",d:1.33},{n:"WEAPON_csawlo",d:1.9}]],["CHOPPA",[{n:"CHOPPA_back",d:.1},{n:"CHOPPA_bunnyhop",d:.33},{n:"CHOPPA_drivebyFT",d:.2},{n:"CHOPPA_driveby_LHS",d:.2},{n:"CHOPPA_driveby_RHS",d:.2},{n:"CHOPPA_fwd",d:.2},{n:"CHOPPA_getoffBACK",d:1.27},{n:"CHOPPA_getoffLHS",d:.73},{n:"CHOPPA_getoffRHS",d:.63},{n:"CHOPPA_jumponL",d:.7},{n:"CHOPPA_jumponR",d:.8},{n:"CHOPPA_Left",d:.13},{n:"CHOPPA_pedal",d:.73},{n:"CHOPPA_Pushes",d:.8},{n:"CHOPPA_ride",d:.03},{n:"CHOPPA_Right",d:.13},{n:"CHOPPA_sprint",d:.67},{n:"CHOPPA_Still",d:.03}]],["CLOTHES",[{n:"CLO_Buy",d:2.07},{n:"CLO_In",d:4},{n:"CLO_Out",d:2.67},{n:"CLO_Pose_Hat",d:3.33},{n:"CLO_Pose_In",d:3.13},{n:"CLO_Pose_In_O",d:4},{n:"CLO_Pose_Legs",d:3.33},{n:"CLO_Pose_Loop",d:6},{n:"CLO_Pose_Out",d:4},{n:"CLO_Pose_Out_O",d:4},{n:"CLO_Pose_Shoes",d:3.33},{n:"CLO_Pose_Torso",d:3.33},{n:"CLO_Pose_Watch",d:3.33}]],["COACH",[{n:"COACH_inL",d:2.17},{n:"COACH_inR",d:2.2},{n:"COACH_opnL",d:1.2},{n:"COACH_opnR",d:1.2},{n:"COACH_outL",d:1.73},{n:"COACH_outR",d:1.83}]],["COLT45",[{n:"2guns_crouchfire",d:.8},{n:"colt45_crouchfire",d:.8},{n:"colt45_crouchreload",d:1},{n:"colt45_fire",d:.73},{n:"colt45_fire_2hands",d:.87},{n:"colt45_reload",d:.93},{n:"sawnoff_reload",d:.93}]],["COP_AMBIENT",[{n:"Copbrowse_in",d:5},{n:"Copbrowse_loop",d:2.33},{n:"Copbrowse_nod",d:4},{n:"Copbrowse_out",d:2.67},{n:"Copbrowse_shake",d:1.83},{n:"Coplook_in",d:1.33},{n:"Coplook_loop",d:2.67},{n:"Coplook_nod",d:5.33},{n:"Coplook_out",d:.67},{n:"Coplook_shake",d:4},{n:"Coplook_think",d:3.33},{n:"Coplook_watch",d:2}]],["COP_DVBYZ",[{n:"COP_Dvby_B",d:.83},{n:"COP_Dvby_FT",d:.83},{n:"COP_Dvby_L",d:.83},{n:"COP_Dvby_R",d:.83}]],["CRACK",[{n:"Bbalbat_Idle_01",d:6.67},{n:"Bbalbat_Idle_02",d:10},{n:"crckdeth1",d:2.17},{n:"crckdeth2",d:3},{n:"crckdeth3",d:2.17},{n:"crckdeth4",d:1.67},{n:"crckidle1",d:3.5},{n:"crckidle2",d:3.33},{n:"crckidle3",d:3.33},{n:"crckidle4",d:2.67}]],["CRIB",[{n:"CRIB_Console_Loop",d:3},{n:"CRIB_Use_Switch",d:1.17},{n:"PED_Console_Loop",d:3},{n:"PED_Console_Loose",d:3.5},{n:"PED_Console_Win",d:3.5}]],["DAM_JUMP",[{n:"DAM_Dive_Loop",d:1.33},{n:"DAM_Land",d:2.6},{n:"DAM_Launch",d:2.4},{n:"Jump_Roll",d:3.17},{n:"SF_JumpWall",d:3}]],["DANCING",[{n:"bd_clap",d:3.2},{n:"bd_clap1",d:2.63},{n:"dance_loop",d:1.17},{n:"DAN_Down_A",d:1},{n:"DAN_Left_A",d:1},{n:"DAN_Loop_A",d:2},{n:"DAN_Right_A",d:1},{n:"DAN_Up_A",d:1},{n:"dnce_M_a",d:2.13},{n:"dnce_M_b",d:1.93},{n:"dnce_M_c",d:1.93},{n:"dnce_M_d",d:2.43},{n:"dnce_M_e",d:.9}]],["DEALER",[{n:"DEALER_DEAL",d:3.17},{n:"DEALER_IDLE",d:6.67},{n:"DEALER_IDLE_01",d:5},{n:"DEALER_IDLE_02",d:4},{n:"DEALER_IDLE_03",d:4.67},{n:"DRUGS_BUY",d:3.17},{n:"shop_pay",d:4.67}]],["DILDO",[{n:"DILDO_1",d:.97},{n:"DILDO_2",d:1.1},{n:"DILDO_3",d:1.17},{n:"DILDO_block",d:.47},{n:"DILDO_G",d:1.47},{n:"DILDO_Hit_1",d:.77},{n:"DILDO_Hit_2",d:1.03},{n:"DILDO_Hit_3",d:.9},{n:"DILDO_IDLE",d:.87}]],["DODGE",[{n:"Cover_Dive_01",d:6},{n:"Cover_Dive_02",d:6},{n:"Crushed",d:.93},{n:"Crush_Jump",d:3.17}]],["DOZER",[{n:"DOZER_Align_LHS",d:.97},{n:"DOZER_Align_RHS",d:.93},{n:"DOZER_getin_LHS",d:.43},{n:"DOZER_getin_RHS",d:.43},{n:"DOZER_getout_LHS",d:1.07},{n:"DOZER_getout_RHS",d:.77},{n:"DOZER_Jacked_LHS",d:1.27},{n:"DOZER_Jacked_RHS",d:1.07},{n:"DOZER_pullout_LHS",d:.73},{n:"DOZER_pullout_RHS",d:.7}]],["DRIVEBYS",[{n:"Gang_DrivebyLHS",d:.83},{n:"Gang_DrivebyLHS_Bwd",d:.83},{n:"Gang_DrivebyLHS_Fwd",d:.83},{n:"Gang_DrivebyRHS",d:.83},{n:"Gang_DrivebyRHS_Bwd",d:.83},{n:"Gang_DrivebyRHS_Fwd",d:.83},{n:"Gang_DrivebyTop_LHS",d:.83},{n:"Gang_DrivebyTop_RHS",d:.83}]],["FAT",[{n:"FatIdle",d:1.5},{n:"FatIdle_armed",d:1.53},{n:"FatIdle_Csaw",d:1.5},{n:"FatIdle_Rocket",d:1.6},{n:"FatRun",d:.77},{n:"FatRun_armed",d:.77},{n:"FatRun_Csaw",d:.77},{n:"FatRun_Rocket",d:.77},{n:"FatSprint",d:.6},{n:"FatWalk",d:1.17},{n:"FatWalkstart",d:.2},{n:"FatWalkstart_Csaw",d:.2},{n:"FatWalkSt_armed",d:.2},{n:"FatWalkSt_Rocket",d:.2},{n:"FatWalk_armed",d:1.17},{n:"FatWalk_Csaw",d:1.17},{n:"FatWalk_Rocket",d:1.17},{n:"IDLE_tired",d:1.07}]],["FIGHT_B",[{n:"FightB_1",d:.73},{n:"FightB_2",d:1.1},{n:"FightB_3",d:1.2},{n:"FightB_block",d:.47},{n:"FightB_G",d:1.07},{n:"FightB_IDLE",d:.8},{n:"FightB_M",d:.5},{n:"HitB_1",d:.73},{n:"HitB_2",d:.83},{n:"HitB_3",d:1.43}]],["FIGHT_C",[{n:"FightC_1",d:.83},{n:"FightC_2",d:1.03},{n:"FightC_3",d:1},{n:"FightC_block",d:.47},{n:"FightC_blocking",d:3.2},{n:"FightC_G",d:.77},{n:"FightC_IDLE",d:1},{n:"FightC_M",d:.9},{n:"FightC_Spar",d:3.2},{n:"HitC_1",d:.3},{n:"HitC_2",d:.67},{n:"HitC_3",d:.83}]],["FIGHT_D",[{n:"FightD_1",d:.93},{n:"FightD_2",d:1.87},{n:"FightD_3",d:.9},{n:"FightD_block",d:.47},{n:"FightD_G",d:.83},{n:"FightD_IDLE",d:1.53},{n:"FightD_M",d:1.07},{n:"HitD_1",d:.67},{n:"HitD_2",d:1.83},{n:"HitD_3",d:.97}]],["FIGHT_E",[{n:"FightKick",d:.77},{n:"FightKick_B",d:1.03},{n:"Hit_fightkick",d:.5},{n:"Hit_fightkick_B",d:1.13}]],["FINALE",[{n:"FIN_Climb_In",d:2.9},{n:"FIN_Cop1_ClimbOut2",d:6},{n:"FIN_Cop1_Loop",d:2},{n:"FIN_Cop1_Stomp",d:1},{n:"FIN_Hang_L",d:.57},{n:"FIN_Hang_Loop",d:4},{n:"FIN_Hang_R",d:.57},{n:"FIN_Hang_Slip",d:3.33},{n:"FIN_Jump_On",d:5.6},{n:"FIN_Land_Car",d:.67},{n:"FIN_Land_Die",d:2.37},{n:"FIN_LegsUp",d:1},{n:"FIN_LegsUp_L",d:.5},{n:"FIN_LegsUp_Loop",d:1.33},{n:"FIN_LegsUp_R",d:.5},{n:"FIN_Let_Go",d:.17}]],["FINALE2",[{n:"FIN_Cop1_ClimbOut",d:4},{n:"FIN_Cop1_Fall",d:.43},{n:"FIN_Cop1_Loop",d:2},{n:"FIN_Cop1_Shot",d:2.07},{n:"FIN_Cop1_Swing",d:1.17},{n:"FIN_Cop2_ClimbOut",d:5.33},{n:"FIN_Switch_P",d:3.97},{n:"FIN_Switch_S",d:2.17}]],["FLAME",[{n:"FLAME_fire",d:.8}]],["Flowers",[{n:"Flower_attack",d:.8},{n:"Flower_attack_M",d:1.23},{n:"Flower_Hit",d:.83}]],["FOOD",[{n:"EAT_Burger",d:5},{n:"EAT_Chicken",d:5},{n:"EAT_Pizza",d:5},{n:"EAT_Vomit_P",d:8},{n:"EAT_Vomit_SK",d:8},{n:"FF_Dam_Bkw",d:.67},{n:"FF_Dam_Fwd",d:.67},{n:"FF_Dam_Left",d:.67},{n:"FF_Dam_Right",d:.67},{n:"FF_Die_Bkw",d:.67},{n:"FF_Die_Fwd",d:.67},{n:"FF_Die_Left",d:.67},{n:"FF_Die_Right",d:.67},{n:"FF_Sit_Eat1",d:2.83},{n:"FF_Sit_Eat2",d:2.67},{n:"FF_Sit_Eat3",d:2.67},{n:"FF_Sit_In",d:3},{n:"FF_Sit_In_L",d:2},{n:"FF_Sit_In_R",d:2},{n:"FF_Sit_Look",d:8},{n:"FF_Sit_Loop",d:2.67},{n:"FF_Sit_Out_180",d:2.83},{n:"FF_Sit_Out_L_180",d:1.33},{n:"FF_Sit_Out_R_180",d:1.33},{n:"SHP_Thank",d:1.17},{n:"SHP_Tray_In",d:.67},{n:"SHP_Tray_Lift",d:1.67},{n:"SHP_Tray_Lift_In",d:.5},{n:"SHP_Tray_Lift_Loop",d:8},{n:"SHP_Tray_Lift_Out",d:.5},{n:"SHP_Tray_Out",d:.67},{n:"SHP_Tray_Pose",d:.67},{n:"SHP_Tray_Return",d:1.33}]],["Freeweights",[{n:"gym_barbell",d:2.37},{n:"gym_free_A",d:1.93},{n:"gym_free_B",d:2.33},{n:"gym_free_celebrate",d:3.33},{n:"gym_free_down",d:.57},{n:"gym_free_loop",d:.67},{n:"gym_free_pickup",d:3.17},{n:"gym_free_putdown",d:3.17},{n:"gym_free_up_smooth",d:1}]],["GANGS",[{n:"DEALER_DEAL",d:1.17},{n:"DEALER_IDLE",d:2},{n:"drnkbr_prtl",d:2.67},{n:"drnkbr_prtl_F",d:2.67},{n:"DRUGS_BUY",d:1.17},{n:"hndshkaa",d:4},{n:"hndshkba",d:2.33},{n:"hndshkca",d:3.33},{n:"hndshkcb",d:3.33},{n:"hndshkda",d:2},{n:"hndshkea",d:1},{n:"hndshkfa",d:4.17},{n:"hndshkfa_swt",d:4.17},{n:"Invite_No",d:3.33},{n:"Invite_Yes",d:4.33},{n:"leanIDLE",d:1},{n:"leanIN",d:1},{n:"leanOUT",d:1},{n:"prtial_gngtlkA",d:4},{n:"prtial_gngtlkB",d:6.17},{n:"prtial_gngtlkC",d:7.33},{n:"prtial_gngtlkD",d:3},{n:"prtial_gngtlkE",d:2.83},{n:"prtial_gngtlkF",d:5.17},{n:"prtial_gngtlkG",d:7},{n:"prtial_gngtlkH",d:6},{n:"prtial_hndshk_01",d:1.67},{n:"prtial_hndshk_biz_01",d:2.33},{n:"shake_cara",d:1.67},{n:"shake_carK",d:1.27},{n:"shake_carSH",d:1.5},{n:"smkcig_prtl",d:7.5},{n:"smkcig_prtl_F",d:7.5}]],["GFUNK",[{n:"Dance_B1",d:1.27},{n:"Dance_B2",d:1.27},{n:"Dance_B3",d:1.27},{n:"Dance_B4",d:1.27},{n:"Dance_B5",d:1.27},{n:"Dance_B6",d:1.27},{n:"Dance_B7",d:1.27},{n:"Dance_B8",d:1.27},{n:"Dance_B9",d:1.27},{n:"Dance_B10",d:1.27},{n:"Dance_B11",d:1.27},{n:"Dance_B12",d:1.27},{n:"Dance_B13",d:1.27},{n:"Dance_B14",d:1.27},{n:"Dance_B15",d:1.27},{n:"Dance_B16",d:1.27},{n:"Dance_G1",d:1.27},{n:"Dance_G2",d:1.27},{n:"Dance_G3",d:1.27},{n:"Dance_G4",d:1.27},{n:"Dance_G5",d:1.27},{n:"Dance_G6",d:1.27},{n:"Dance_G7",d:1.27},{n:"Dance_G8",d:1.27},{n:"Dance_G9",d:1.27},{n:"Dance_G10",d:1.27},{n:"Dance_G11",d:1.27},{n:"Dance_G12",d:1.27},{n:"Dance_G13",d:1.27},{n:"Dance_G14",d:1.27},{n:"Dance_G15",d:1.27},{n:"Dance_G16",d:1.27},{n:"dance_loop",d:1.17}]],["GHANDS",[{n:"gsign1",d:4.77},{n:"gsign1LH",d:2.73},{n:"gsign2",d:2.13},{n:"gsign2LH",d:2.33},{n:"gsign3",d:4.67},{n:"gsign3LH",d:2},{n:"gsign4",d:4.17},{n:"gsign4LH",d:4.67},{n:"gsign5",d:6.2},{n:"gsign5LH",d:2},{n:"LHGsign1",d:2},{n:"LHGsign2",d:2},{n:"LHGsign3",d:2},{n:"LHGsign4",d:2},{n:"LHGsign5",d:2},{n:"RHGsign1",d:2},{n:"RHGsign2",d:2},{n:"RHGsign3",d:2},{n:"RHGsign4",d:2},{n:"RHGsign5",d:2}]],["GHETTO_DB",[{n:"GDB_Car2_PLY",d:9.5},{n:"GDB_Car2_SMO",d:9.5},{n:"GDB_Car2_SWE",d:9.5},{n:"GDB_Car_PLY",d:13.33},{n:"GDB_Car_RYD",d:13.33},{n:"GDB_Car_SMO",d:13.33},{n:"GDB_Car_SWE",d:13.33}]],["goggles",[{n:"goggles_put_on",d:.8}]],["GRAFFITI",[{n:"graffiti_Chkout",d:4.67},{n:"spraycan_fire",d:2.33}]],["GRAVEYARD",[{n:"mrnF_loop",d:4.67},{n:"mrnM_loop",d:2.67},{n:"prst_loopa",d:4}]],["GRENADE",[{n:"WEAPON_start_throw",d:.2},{n:"WEAPON_throw",d:.87},{n:"WEAPON_throwu",d:.67}]],["GYMNASIUM",[{n:"GYMshadowbox",d:5.1},{n:"gym_bike_celebrate",d:1.93},{n:"gym_bike_fast",d:.4},{n:"gym_bike_faster",d:.4},{n:"gym_bike_getoff",d:1.67},{n:"gym_bike_geton",d:1.67},{n:"gym_bike_pedal",d:.4},{n:"gym_bike_slow",d:.43},{n:"gym_bike_still",d:1.67},{n:"gym_jog_falloff",d:2.17},{n:"gym_shadowbox",d:5.1},{n:"gym_tread_celebrate",d:2.5},{n:"gym_tread_falloff",d:2},{n:"gym_tread_getoff",d:3.33},{n:"gym_tread_geton",d:2.5},{n:"gym_tread_jog",d:.77},{n:"gym_tread_sprint",d:.67},{n:"gym_tread_tired",d:1.33},{n:"gym_tread_walk",d:1.07},{n:"gym_walk_falloff",d:3.33},{n:"Pedals_fast",d:.4},{n:"Pedals_med",d:.4},{n:"Pedals_slow",d:.43},{n:"Pedals_still",d:.43}]],["HAIRCUTS",[{n:"BRB_Beard_01",d:4.5},{n:"BRB_Buy",d:4.17},{n:"BRB_Cut",d:1.7},{n:"BRB_Cut_In",d:.83},{n:"BRB_Cut_Out",d:1.33},{n:"BRB_Hair_01",d:3.83},{n:"BRB_Hair_02",d:4.5},{n:"BRB_In",d:1.33},{n:"BRB_Loop",d:2.67},{n:"BRB_Out",d:.67},{n:"BRB_Sit_In",d:2.07},{n:"BRB_Sit_Loop",d:7},{n:"BRB_Sit_Out",d:3}]],["HEIST9",[{n:"CAS_G2_GasKO",d:3.33},{n:"swt_wllpk_L",d:2.67},{n:"swt_wllpk_L_back",d:.5},{n:"swt_wllpk_R",d:3.67},{n:"swt_wllpk_R_back",d:.43},{n:"swt_wllshoot_in_L",d:1},{n:"swt_wllshoot_in_R",d:1.3},{n:"swt_wllshoot_out_L",d:2},{n:"swt_wllshoot_out_R",d:1.43},{n:"Use_SwipeCard",d:1.17}]],["INT_HOUSE",[{n:"BED_In_L",d:3.33},{n:"BED_In_R",d:3.33},{n:"BED_Loop_L",d:3.33},{n:"BED_Loop_R",d:3.33},{n:"BED_Out_L",d:3.33},{n:"BED_Out_R",d:3.33},{n:"LOU_In",d:1.83},{n:"LOU_Loop",d:3.33},{n:"LOU_Out",d:2},{n:"wash_up",d:3}]],["INT_OFFICE",[{n:"FF_Dam_Fwd",d:.67},{n:"OFF_Sit_2Idle_180",d:2.83},{n:"OFF_Sit_Bored_Loop",d:2.83},{n:"OFF_Sit_Crash",d:3.33},{n:"OFF_Sit_Drink",d:4.17},{n:"OFF_Sit_Idle_Loop",d:2.07},{n:"OFF_Sit_In",d:2.77},{n:"OFF_Sit_Read",d:3.33},{n:"OFF_Sit_Type_Loop",d:3.33},{n:"OFF_Sit_Watch",d:2}]],["INT_SHOP",[{n:"shop_cashier",d:6.67},{n:"shop_in",d:1},{n:"shop_lookA",d:2},{n:"shop_lookB",d:3},{n:"shop_loop",d:2},{n:"shop_out",d:1.33},{n:"shop_pay",d:6.67},{n:"shop_shelf",d:2.33}]],["JST_BUISNESS",[{n:"girl_01",d:3.33},{n:"girl_02",d:11.33},{n:"player_01",d:24.83},{n:"smoke_01",d:25}]],["KART",[{n:"KART_getin_LHS",d:.83},{n:"KART_getin_RHS",d:.83},{n:"KART_getout_LHS",d:.83},{n:"KART_getout_RHS",d:.83}]],["KISSING",[{n:"BD_GF_Wave",d:5.07},{n:"gfwave2",d:2.67},{n:"GF_CarArgue_01",d:5},{n:"GF_CarArgue_02",d:5},{n:"GF_CarSpot",d:5},{n:"GF_StreetArgue_01",d:5},{n:"GF_StreetArgue_02",d:5},{n:"gift_get",d:5.33},{n:"gift_give",d:5.33},{n:"Grlfrd_Kiss_01",d:4.17},{n:"Grlfrd_Kiss_02",d:5.77},{n:"Grlfrd_Kiss_03",d:7},{n:"Playa_Kiss_01",d:5},{n:"Playa_Kiss_02",d:5.77},{n:"Playa_Kiss_03",d:7}]],["KNIFE",[{n:"KILL_Knife_Ped_Damage",d:2.23},{n:"KILL_Knife_Ped_Die",d:1.93},{n:"KILL_Knife_Player",d:2.67},{n:"KILL_Partial",d:.03},{n:"knife_1",d:1},{n:"knife_2",d:.93},{n:"knife_3",d:.87},{n:"Knife_4",d:.9},{n:"knife_block",d:.47},{n:"Knife_G",d:.9},{n:"knife_hit_1",d:.57},{n:"knife_hit_2",d:.63},{n:"knife_hit_3",d:1.6},{n:"knife_IDLE",d:1.3},{n:"knife_part",d:.53},{n:"WEAPON_knifeidle",d:1.3}]],["LAPDAN1",[{n:"LAPDAN_D",d:37.73},{n:"LAPDAN_P",d:37.73}]],["LAPDAN2",[{n:"LAPDAN_D",d:46.83},{n:"LAPDAN_P",d:46.83}]],["LAPDAN3",[{n:"LAPDAN_D",d:51.47},{n:"LAPDAN_P",d:51.47}]],["LOWRIDER",[{n:"F_smklean_loop",d:4},{n:"lrgirl_bdbnce",d:2.67},{n:"lrgirl_hair",d:2.33},{n:"lrgirl_hurry",d:2.83},{n:"lrgirl_idleloop",d:2.17},{n:"lrgirl_idle_to_l0",d:2.17},{n:"lrgirl_l0_bnce",d:.67},{n:"lrgirl_l0_loop",d:2},{n:"lrgirl_l0_to_l1",d:3.67},{n:"lrgirl_l12_to_l0",d:2},{n:"lrgirl_l1_bnce",d:.67},{n:"lrgirl_l1_loop",d:2},{n:"lrgirl_l1_to_l2",d:1.33},{n:"lrgirl_l2_bnce",d:.67},{n:"lrgirl_l2_loop",d:1.5},{n:"lrgirl_l2_to_l3",d:1.5},{n:"lrgirl_l345_to_l1",d:1},{n:"lrgirl_l3_bnce",d:.67},{n:"lrgirl_l3_loop",d:2},{n:"lrgirl_l3_to_l4",d:.67},{n:"lrgirl_l4_bnce",d:.67},{n:"lrgirl_l4_loop",d:2.33},{n:"lrgirl_l4_to_l5",d:1},{n:"lrgirl_l5_bnce",d:.83},{n:"lrgirl_l5_loop",d:1.67},{n:"M_smklean_loop",d:5},{n:"M_smkstnd_loop",d:5.33},{n:"prtial_gngtlkB",d:1.47},{n:"prtial_gngtlkC",d:1.5},{n:"prtial_gngtlkD",d:2.47},{n:"prtial_gngtlkE",d:3},{n:"prtial_gngtlkF",d:2.67},{n:"prtial_gngtlkG",d:2.67},{n:"prtial_gngtlkH",d:3.33},{n:"RAP_A_Loop",d:2.67},{n:"RAP_B_Loop",d:2.67},{n:"RAP_C_Loop",d:3},{n:"Sit_relaxed",d:.03},{n:"Tap_hand",d:.33}]],["MD_CHASE",[{n:"Carhit_Hangon",d:1.53},{n:"Carhit_Tumble",d:2.03},{n:"donutdrop",d:1.5},{n:"Fen_Choppa_L1",d:1.43},{n:"Fen_Choppa_L2",d:1.3},{n:"Fen_Choppa_L3",d:1.3},{n:"Fen_Choppa_R1",d:1.3},{n:"Fen_Choppa_R2",d:1.3},{n:"Fen_Choppa_R3",d:1.3},{n:"Hangon_Stun_loop",d:4.67},{n:"Hangon_Stun_Turn",d:4},{n:"MD_BIKE_2_HANG",d:1.37},{n:"MD_BIKE_Jmp_BL",d:1.1},{n:"MD_BIKE_Jmp_F",d:1},{n:"MD_BIKE_Lnd_BL",d:.9},{n:"MD_BIKE_Lnd_Die_BL",d:1.53},{n:"MD_BIKE_Lnd_Die_F",d:.8},{n:"MD_BIKE_Lnd_F",d:1.17},{n:"MD_BIKE_Lnd_Roll",d:2.7},{n:"MD_BIKE_Lnd_Roll_F",d:1.03},{n:"MD_BIKE_Punch",d:1.83},{n:"MD_BIKE_Punch_F",d:1.83},{n:"MD_BIKE_Shot_F",d:1.33},{n:"MD_HANG_Lnd_Roll",d:2.7},{n:"MD_HANG_Loop",d:1}]],["MD_END",[{n:"END_SC1_PLY",d:5},{n:"END_SC1_RYD",d:5},{n:"END_SC1_SMO",d:5},{n:"END_SC1_SWE",d:5},{n:"END_SC2_PLY",d:9},{n:"END_SC2_RYD",d:9},{n:"END_SC2_SMO",d:9},{n:"END_SC2_SWE",d:9}]],["MEDIC",[{n:"CPR",d:8.33}]],["MISC",[{n:"bitchslap",d:1.17},{n:"BMX_celebrate",d:1.57},{n:"BMX_comeon",d:.77},{n:"bmx_idleloop_01",d:3.33},{n:"bmx_idleloop_02",d:6.67},{n:"bmx_talkleft_in",d:.67},{n:"bmx_talkleft_loop",d:6.67},{n:"bmx_talkleft_out",d:.67},{n:"bmx_talkright_in",d:.67},{n:"bmx_talkright_loop",d:7.33},{n:"bmx_talkright_out",d:.67},{n:"bng_wndw",d:7.33},{n:"bng_wndw_02",d:7.33},{n:"Case_pickup",d:1},{n:"door_jet",d:5.33},{n:"GRAB_L",d:.4},{n:"GRAB_R",d:.4},{n:"Hiker_Pose",d:.33},{n:"Hiker_Pose_L",d:.33},{n:"Idle_Chat_02",d:7.23},{n:"KAT_Throw_K",d:3.33},{n:"KAT_Throw_O",d:3.33},{n:"KAT_Throw_P",d:3.33},{n:"PASS_Rifle_O",d:1.33},{n:"PASS_Rifle_Ped",d:1.33},{n:"PASS_Rifle_Ply",d:1.33},{n:"pickup_box",d:.4},{n:"Plane_door",d:5.33},{n:"Plane_exit",d:5.33},{n:"Plane_hijack",d:5.33},{n:"Plunger_01",d:3.33},{n:"Plyrlean_loop",d:2.67},{n:"plyr_shkhead",d:1.67},{n:"Run_Dive",d:8.27},{n:"Scratchballs_01",d:8.33},{n:"SEAT_LR",d:3.67},{n:"Seat_talk_01",d:3.67},{n:"Seat_talk_02",d:3.33},{n:"SEAT_watch",d:2.33},{n:"smalplane_door",d:6.33},{n:"smlplane_door",d:5.33},{n:"MTB_back",d:.1},{n:"MTB_bunnyhop",d:.33},{n:"MTB_drivebyFT",d:.2},{n:"MTB_driveby_LHS",d:.2},{n:"MTB_driveby_RHS",d:.2},{n:"MTB_fwd",d:.2},{n:"MTB_getoffBACK",d:1.53},{n:"MTB_getoffLHS",d:.73},{n:"MTB_getoffRHS",d:.73},{n:"MTB_jumponL",d:.8},{n:"MTB_jumponR",d:.83},{n:"MTB_Left",d:.13},{n:"MTB_pedal",d:.67},{n:"MTB_pushes",d:.8},{n:"MTB_Ride",d:.03},{n:"MTB_Right",d:.13},{n:"MTB_sprint",d:.8},{n:"MTB_still",d:.03},{n:"MscleWalkst_armed",d:.2},{n:"MscleWalkst_Csaw",d:.2},{n:"Mscle_rckt_run",d:.8},{n:"Mscle_rckt_walkst",d:.2},{n:"Mscle_run_Csaw",d:.8},{n:"MuscleIdle",d:1.5},{n:"MuscleIdle_armed",d:1.5},{n:"MuscleIdle_Csaw",d:1.5},{n:"MuscleIdle_rocket",d:1.5},{n:"MuscleRun",d:.8},{n:"MuscleRun_armed",d:.8},{n:"MuscleSprint",d:.57},{n:"MuscleWalk",d:1.07},{n:"MuscleWalkstart",d:.27},{n:"MuscleWalk_armed",d:1.07},{n:"Musclewalk_Csaw",d:1.07},{n:"Musclewalk_rocket",d:1.07}]],["NEVADA",[{n:"NEVADA_getin",d:1.87},{n:"NEVADA_getout",d:.93}]],["ON_LOOKERS",[{n:"lkaround_in",d:.33},{n:"lkaround_loop",d:7},{n:"lkaround_out",d:.33},{n:"lkup_in",d:1.67},{n:"lkup_loop",d:5.33},{n:"lkup_out",d:1},{n:"lkup_point",d:3.33},{n:"panic_cower",d:6.67},{n:"panic_hide",d:6.33},{n:"panic_in",d:.83},{n:"panic_loop",d:1.67},{n:"panic_out",d:.67},{n:"panic_point",d:6},{n:"panic_shout",d:8.67},{n:"Pointup_in",d:1},{n:"Pointup_loop",d:2.67},{n:"Pointup_out",d:1},{n:"Pointup_shout",d:3},{n:"point_in",d:.5},{n:"point_loop",d:3},{n:"point_out",d:.33},{n:"shout_01",d:2.67},{n:"shout_02",d:4},{n:"shout_in",d:1.67},{n:"shout_loop",d:2},{n:"shout_out",d:.33},{n:"wave_in",d:.83},{n:"wave_loop",d:1.5},{n:"wave_out",d:.83}]],["OTB",[{n:"betslp_in",d:1.33},{n:"betslp_lkabt",d:2.67},{n:"betslp_loop",d:2.67},{n:"betslp_out",d:1},{n:"betslp_tnk",d:5.6},{n:"wtchrace_cmon",d:5},{n:"wtchrace_in",d:1.67},{n:"wtchrace_loop",d:2.67},{n:"wtchrace_lose",d:4},{n:"wtchrace_out",d:1},{n:"wtchrace_win",d:4.33}]],["PARACHUTE",[{n:"FALL_skyDive",d:1.33},{n:"FALL_SkyDive_Accel",d:1.33},{n:"FALL_skyDive_DIE",d:1},{n:"FALL_SkyDive_L",d:1.33},{n:"FALL_SkyDive_R",d:1.33},{n:"PARA_decel",d:2},{n:"PARA_decel_O",d:2},{n:"PARA_float",d:2},{n:"PARA_float_O",d:2},{n:"PARA_Land",d:1.67},{n:"PARA_Land_O",d:2.17},{n:"PARA_Land_Water",d:2.33},{n:"PARA_Land_Water_O",d:2.17},{n:"PARA_open",d:2.83},{n:"PARA_open_O",d:2.33},{n:"PARA_Rip_Land_O",d:.9},{n:"PARA_Rip_Loop_O",d:1},{n:"PARA_Rip_O",d:.23},{n:"PARA_steerL",d:2},{n:"PARA_steerL_O",d:2},{n:"PARA_steerR",d:2},{n:"PARA_steerR_O",d:2}]],["PARK",[{n:"Tai_Chi_in",d:2.17},{n:"Tai_Chi_Loop",d:12},{n:"Tai_Chi_Out",d:.83}]],["PAULNMAC",[{n:"Piss_in",d:9},{n:"Piss_loop",d:6.67},{n:"Piss_out",d:11},{n:"PnM_Argue1_A",d:4.33},{n:"PnM_Argue1_B",d:4.33},{n:"PnM_Argue2_A",d:4.33},{n:"PnM_Argue2_B",d:4.33},{n:"PnM_Loop_A",d:5.33},{n:"PnM_Loop_B",d:5.33},{n:"wank_in",d:7.33},{n:"wank_loop",d:2.67},{n:"wank_out",d:11.67}]],["ped",[{n:"abseil",d:.03},{n:"ARRESTgun",d:.67},{n:"ATM",d:12.17},{n:"BIKE_elbowL",d:.97},{n:"BIKE_elbowR",d:.97},{n:"BIKE_fallR",d:1.63},{n:"BIKE_fall_off",d:1.07},{n:"BIKE_pickupL",d:1.07},{n:"BIKE_pickupR",d:1.07},{n:"BIKE_pullupL",d:1},{n:"BIKE_pullupR",d:1},{n:"bomber",d:.6},{n:"CAR_alignHI_LHS",d:.73},{n:"CAR_alignHI_RHS",d:.73},{n:"CAR_align_LHS",d:.13},{n:"CAR_align_RHS",d:.13},{n:"CAR_closedoorL_LHS",d:.6},{n:"CAR_closedoorL_RHS",d:.4},{n:"CAR_closedoor_LHS",d:.6},{n:"CAR_closedoor_RHS",d:.4},{n:"CAR_close_LHS",d:.73},{n:"CAR_close_RHS",d:.73},{n:"CAR_crawloutRHS",d:2.17},{n:"CAR_dead_LHS",d:.03},{n:"CAR_dead_RHS",d:.03},{n:"CAR_doorlocked_LHS",d:1.33},{n:"CAR_doorlocked_RHS",d:1.27},{n:"CAR_fallout_LHS",d:.57},{n:"CAR_fallout_RHS",d:.57},{n:"CAR_getinL_LHS",d:1},{n:"CAR_getinL_RHS",d:1},{n:"CAR_getin_LHS",d:1},{n:"CAR_getin_RHS",d:1},{n:"CAR_getoutL_LHS",d:.93},{n:"CAR_getoutL_RHS",d:1},{n:"CAR_getout_LHS",d:1.13},{n:"CAR_getout_RHS",d:.8},{n:"car_hookertalk",d:4.3},{n:"CAR_jackedLHS",d:2.9},{n:"CAR_jackedRHS",d:3.43},{n:"CAR_jumpin_LHS",d:1},{n:"CAR_LB",d:.23},{n:"CAR_LB_pro",d:.1},{n:"CAR_LB_weak",d:.23},{n:"CAR_LjackedLHS",d:3.57},{n:"CAR_LjackedRHS",d:3.47},{n:"CAR_Lshuffle_RHS",d:.4},{n:"CAR_Lsit",d:.03},{n:"CAR_open_LHS",d:1.1},{n:"CAR_open_RHS",d:1.1},{n:"CAR_pulloutL_LHS",d:2.93},{n:"CAR_pulloutL_RHS",d:2.93},{n:"CAR_pullout_LHS",d:2.3},{n:"CAR_pullout_RHS",d:2.8},{n:"CAR_Qjacked",d:3.3},{n:"CAR_rolldoor",d:.6},{n:"CAR_rolldoorLO",d:.6},{n:"CAR_rollout_LHS",d:1.63},{n:"CAR_rollout_RHS",d:1.27},{n:"CAR_shuffle_RHS",d:.4},{n:"CAR_sit",d:.03},{n:"CAR_sitp",d:.03},{n:"CAR_sitpLO",d:.03},{n:"CAR_sit_pro",d:.03},{n:"CAR_sit_weak",d:.03},{n:"CAR_tune_radio",d:.63},{n:"CLIMB_idle",d:.8},{n:"CLIMB_jump",d:.57},{n:"CLIMB_jump2fall",d:.03},{n:"CLIMB_jump_B",d:.97},{n:"CLIMB_Pull",d:.87},{n:"CLIMB_Stand",d:.8},{n:"CLIMB_Stand_finish",d:.2},{n:"cower",d:.8},{n:"Crouch_Roll_L",d:.93},{n:"Crouch_Roll_R",d:.93},{n:"DAM_armL_frmBK",d:.83},{n:"DAM_armL_frmFT",d:.83},{n:"DAM_armL_frmLT",d:.67},{n:"DAM_armR_frmBK",d:.83},{n:"DAM_armR_frmFT",d:.5},{n:"DAM_armR_frmRT",d:.27},{n:"DAM_LegL_frmBK",d:.83},{n:"DAM_LegL_frmFT",d:.83},{n:"DAM_LegL_frmLT",d:.83},{n:"DAM_LegR_frmBK",d:.83},{n:"DAM_LegR_frmFT",d:.83},{n:"DAM_LegR_frmRT",d:.83},{n:"DAM_stomach_frmBK",d:.83},{n:"DAM_stomach_frmFT",d:.83},{n:"DAM_stomach_frmLT",d:.83},{n:"DAM_stomach_frmRT",d:.83},{n:"DOOR_LHinge_O",d:1.07},{n:"DOOR_RHinge_O",d:1.07},{n:"DrivebyL_L",d:.2},{n:"DrivebyL_R",d:.2},{n:"Driveby_L",d:.2},{n:"Driveby_R",d:.2},{n:"DRIVE_BOAT",d:.03},{n:"DRIVE_BOAT_back",d:.1},{n:"DRIVE_BOAT_L",d:.1},{n:"DRIVE_BOAT_R",d:.1},{n:"Drive_L",d:.13},{n:"Drive_LO_l",d:.13},{n:"Drive_LO_R",d:.13},{n:"Drive_L_pro",d:.13},{n:"Drive_L_pro_slow",d:.13},{n:"Drive_L_slow",d:.13},{n:"Drive_L_weak",d:.13},{n:"Drive_L_weak_slow",d:.13},{n:"Drive_R",d:.13},{n:"Drive_R_pro",d:.13},{n:"Drive_R_pro_slow",d:.13},{n:"Drive_R_slow",d:.13},{n:"Drive_R_weak",d:.13},{n:"Drive_R_weak_slow",d:.13},{n:"Drive_truck",d:.03},{n:"DRIVE_truck_back",d:.1},{n:"DRIVE_truck_L",d:.13},{n:"DRIVE_truck_R",d:.13},{n:"Drown",d:2.5},{n:"DUCK_cower",d:.8},{n:"endchat_01",d:2},{n:"endchat_02",d:2},{n:"endchat_03",d:2.33},{n:"EV_dive",d:2.33},{n:"EV_step",d:1.07},{n:"facanger",d:.13},{n:"facgum",d:1.03},{n:"facsurp",d:.13},{n:"facsurpm",d:.13},{n:"factalk",d:2.33},{n:"facurios",d:.13},{n:"FALL_back",d:.73},{n:"FALL_collapse",d:1},{n:"FALL_fall",d:.73},{n:"FALL_front",d:.73},{n:"FALL_glide",d:.8},{n:"FALL_land",d:.47},{n:"FALL_skyDive",d:1.33},{n:"Fight2Idle",d:.33},{n:"FightA_1",d:.43},{n:"FightA_2",d:.77},{n:"FightA_3",d:.87},{n:"FightA_block",d:.47},{n:"FightA_G",d:.93},{n:"FightA_M",d:.4},{n:"FIGHTIDLE",d:1.3},{n:"FightShB",d:.47},{n:"FightShF",d:.53},{n:"FightSh_BWD",d:.67},{n:"FightSh_FWD",d:.67},{n:"FightSh_Left",d:.67},{n:"FightSh_Right",d:.67},{n:"flee_lkaround_01",d:2},{n:"FLOOR_hit",d:.37},{n:"FLOOR_hit_f",d:.4},{n:"fucku",d:1.33},{n:"gang_gunstand",d:.03},{n:"gas_cwr",d:1},{n:"getup",d:1.37},{n:"getup_front",d:1.37},{n:"gum_eat",d:5.33},{n:"GunCrouchBwd",d:1},{n:"GunCrouchFwd",d:.73},{n:"GunMove_BWD",d:1.03},{n:"GunMove_FWD",d:1},{n:"GunMove_L",d:1},{n:"GunMove_R",d:1},{n:"Gun_2_IDLE",d:.27},{n:"GUN_BUTT",d:.43},{n:"GUN_BUTT_crouch",d:.43},{n:"Gun_stand",d:.03},{n:"handscower",d:1.93},{n:"handsup",d:.6},{n:"HitA_1",d:.3},{n:"HitA_2",d:.53},{n:"HitA_3",d:.57},{n:"HIT_back",d:.5},{n:"HIT_behind",d:.67},{n:"HIT_front",d:.6},{n:"HIT_GUN_BUTT",d:.5},{n:"HIT_L",d:.7},{n:"HIT_R",d:.6},{n:"HIT_walk",d:.33},{n:"HIT_wall",d:.7},{n:"Idlestance_fat",d:1.67},{n:"idlestance_old",d:2},{n:"IDLE_armed",d:1.47},{n:"IDLE_chat",d:6.67},{n:"IDLE_csaw",d:1.53},{n:"Idle_Gang1",d:1.67},{n:"IDLE_HBHB",d:2.67},{n:"IDLE_ROCKET",d:1.57},{n:"IDLE_stance",d:1.5},{n:"IDLE_taxi",d:.87},{n:"IDLE_tired",d:1},{n:"Jetpack_Idle",d:.03},{n:"JOG_femaleA",d:.77},{n:"JOG_maleA",d:.77},{n:"JUMP_glide",d:.5},{n:"JUMP_land",d:.23},{n:"JUMP_launch",d:.2},{n:"JUMP_launch_R",d:.2},{n:"KART_drive",d:.03},{n:"KART_L",d:.13},{n:"KART_LB",d:.03},{n:"KART_R",d:.13},{n:"KD_left",d:.9},{n:"KD_right",d:.9},{n:"KO_shot_face",d:2.1},{n:"KO_shot_front",d:.57},{n:"KO_shot_stom",d:3.17},{n:"KO_skid_back",d:.97},{n:"KO_skid_front",d:1.13},{n:"KO_spin_L",d:.87},{n:"KO_spin_R",d:.93},{n:"pass_Smoke_in_car",d:1.73},{n:"phone_in",d:2.33},{n:"phone_out",d:2},{n:"phone_talk",d:2},{n:"Player_Sneak",d:1.33},{n:"Player_Sneak_walkstart",d:.3},{n:"roadcross",d:2},{n:"roadcross_female",d:4},{n:"roadcross_gang",d:2},{n:"roadcross_old",d:4},{n:"run_1armed",d:.77},{n:"run_armed",d:.7},{n:"run_civi",d:.73},{n:"run_csaw",d:.7},{n:"run_fat",d:.8},{n:"run_fatold",d:.8},{n:"run_gang1",d:.83},{n:"run_left",d:.67},{n:"run_old",d:.8},{n:"run_player",d:.73},{n:"run_right",d:.67},{n:"run_rocket",d:.77},{n:"Run_stop",d:.87},{n:"Run_stopR",d:.8},{n:"Run_Wuzi",d:.77},{n:"SEAT_down",d:1.5},{n:"SEAT_idle",d:2},{n:"SEAT_up",d:1.17},{n:"SHOT_leftP",d:.3},{n:"SHOT_partial",d:.37},{n:"SHOT_partial_B",d:.33},{n:"SHOT_rightP",d:.33},{n:"Shove_Partial",d:.53},{n:"Smoke_in_car",d:1.73},{n:"sprint_civi",d:.53},{n:"sprint_panic",d:.6},{n:"Sprint_Wuzi",d:.67},{n:"swat_run",d:.67},{n:"Swim_Tread",d:1.3},{n:"Tap_hand",d:.03},{n:"Tap_handP",d:.03},{n:"turn_180",d:.63},{n:"Turn_L",d:.8},{n:"Turn_R",d:.8},{n:"WALK_armed",d:1.07},{n:"WALK_civi",d:1.13},{n:"WALK_csaw",d:1.07},{n:"Walk_DoorPartial",d:.8},{n:"WALK_drunk",d:3.93},{n:"WALK_fat",d:1.33},{n:"WALK_fatold",d:1.17},{n:"WALK_gang1",d:1.4},{n:"WALK_gang2",d:1.4},{n:"WALK_old",d:1.4},{n:"WALK_player",d:1.2},{n:"WALK_rocket",d:1.07},{n:"WALK_shuffle",d:1.2},{n:"WALK_start",d:.27},{n:"WALK_start_armed",d:.2},{n:"WALK_start_csaw",d:.2},{n:"WALK_start_rocket",d:.2},{n:"Walk_Wuzi",d:1.17},{n:"WEAPON_crouch",d:.8},{n:"woman_idlestance",d:5.33},{n:"woman_run",d:.77},{n:"WOMAN_runbusy",d:.67},{n:"WOMAN_runfatold",d:1.2},{n:"woman_runpanic",d:.6},{n:"WOMAN_runsexy",d:.7},{n:"WOMAN_walkbusy",d:1},{n:"WOMAN_walkfatold",d:1.2},{n:"WOMAN_walknorm",d:1.13},{n:"WOMAN_walkold",d:1.2},{n:"WOMAN_walkpro",d:1.33},{n:"WOMAN_walksexy",d:1.17},{n:"WOMAN_walkshop",d:.97},{n:"XPRESSscratch",d:3.97}]],["PLAYER_DVBYS",[{n:"Plyr_DrivebyBwd",d:.83},{n:"Plyr_DrivebyFwd",d:.83},{n:"Plyr_DrivebyLHS",d:.83},{n:"Plyr_DrivebyRHS",d:.83}]],["PLAYIDLES",[{n:"shift",d:3.6},{n:"shldr",d:2.17},{n:"stretch",d:4.6},{n:"strleg",d:3.67},{n:"time",d:5.2}]],["POLICE",[{n:"CopTraf_Away",d:1.47},{n:"CopTraf_Come",d:2.87},{n:"CopTraf_Left",d:2},{n:"CopTraf_Stop",d:2},{n:"COP_getoutcar_LHS",d:.83},{n:"Cop_move_FWD",d:1},{n:"crm_drgbst_01",d:18.57},{n:"Door_Kick",d:1.33},{n:"plc_drgbst_01",d:20.6},{n:"plc_drgbst_02",d:7.57}]],["POOL",[{n:"POOL_ChalkCue",d:4.83},{n:"POOL_Idle_Stance",d:2},{n:"POOL_Long_Shot",d:1.67},{n:"POOL_Long_Shot_O",d:1.67},{n:"POOL_Long_Start",d:.67},{n:"POOL_Long_Start_O",d:.67},{n:"POOL_Med_Shot",d:1.67},{n:"POOL_Med_Shot_O",d:1.67},{n:"POOL_Med_Start",d:.67},{n:"POOL_Med_Start_O",d:.67},{n:"POOL_Place_White",d:2.5},{n:"POOL_Short_Shot",d:1.67},{n:"POOL_Short_Shot_O",d:1.67},{n:"POOL_Short_Start",d:.67},{n:"POOL_Short_Start_O",d:.67},{n:"POOL_Walk",d:1.27},{n:"POOL_Walk_Start",d:.2},{n:"POOL_XLong_Shot",d:1.67},{n:"POOL_XLong_Shot_O",d:1.67},{n:"POOL_XLong_Start",d:.67},{n:"POOL_XLong_Start_O",d:.67}]],["POOR",[{n:"WINWASH_Start",d:.43},{n:"WINWASH_Wash2Beg",d:2.13}]],["PYTHON",[{n:"python_crouchfire",d:1.2},{n:"python_crouchreload",d:1},{n:"python_fire",d:1.17},{n:"python_fire_poor",d:1.47},{n:"python_reload",d:.93}]],["QUAD",[{n:"QUAD_back",d:.1},{n:"QUAD_driveby_FT",d:.2},{n:"QUAD_driveby_LHS",d:.2},{n:"QUAD_driveby_RHS",d:.2},{n:"QUAD_FWD",d:.2},{n:"QUAD_getoff_B",d:1.63},{n:"QUAD_getoff_LHS",d:.67},{n:"QUAD_getoff_RHS",d:.7},{n:"QUAD_geton_LHS",d:.73},{n:"QUAD_geton_RHS",d:.73},{n:"QUAD_hit",d:.03},{n:"QUAD_kick",d:1.13},{n:"QUAD_Left",d:.13},{n:"QUAD_passenger",d:.03},{n:"QUAD_reverse",d:.17},{n:"QUAD_ride",d:.03},{n:"QUAD_Right",d:.13}]],["QUAD_DBZ",[{n:"Pass_Driveby_BWD",d:.83},{n:"Pass_Driveby_FWD",d:.83},{n:"Pass_Driveby_LHS",d:.83},{n:"Pass_Driveby_RHS",d:.83}]],["RAPPING",[{n:"Laugh_01",d:5.33},{n:"RAP_A_IN",d:.83},{n:"RAP_A_Loop",d:2.67},{n:"RAP_A_OUT",d:.33},{n:"RAP_B_IN",d:1},{n:"RAP_B_Loop",d:2.67},{n:"RAP_B_OUT",d:.87},{n:"RAP_C_Loop",d:3}]],["RIFLE",[{n:"RIFLE_crouchfire",d:.87},{n:"RIFLE_crouchload",d:1.27},{n:"RIFLE_fire",d:.8},{n:"RIFLE_fire_poor",d:.8},{n:"RIFLE_load",d:1.4}]],["RIOT",[{n:"RIOT_ANGRY",d:5},{n:"RIOT_ANGRY_B",d:.63},{n:"RIOT_challenge",d:3.23},{n:"RIOT_CHANT",d:1.73},{n:"RIOT_FUKU",d:.67},{n:"RIOT_PUNCHES",d:.67},{n:"RIOT_shout",d:1}]],["ROB_BANK",[{n:"CAT_Safe_End",d:.5},{n:"CAT_Safe_Open",d:3.33},{n:"CAT_Safe_Open_O",d:3.33},{n:"CAT_Safe_Rob",d:1.83},{n:"SHP_HandsUp_Scr",d:.67}]],["ROCKET",[{n:"idle_rocket",d:1.6},{n:"RocketFire",d:.97},{n:"run_rocket",d:.77},{n:"walk_rocket",d:1.07},{n:"WALK_start_rocket",d:.2}]],["RUNNINGMAN",[{n:"Dance_B1",d:.53},{n:"Dance_B2",d:.57},{n:"Dance_B3",d:.53},{n:"Dance_B4",d:.57},{n:"Dance_B5",d:.53},{n:"Dance_B6",d:.57},{n:"Dance_B7",d:.53},{n:"Dance_B8",d:.57},{n:"Dance_B9",d:.53},{n:"Dance_B10",d:.57},{n:"Dance_B11",d:.53},{n:"Dance_B12",d:.57},{n:"Dance_B13",d:.53},{n:"Dance_B14",d:.57},{n:"Dance_B15",d:.53},{n:"Dance_B16",d:.57},{n:"Dance_G1",d:.53},{n:"Dance_G2",d:.57},{n:"Dance_G3",d:.53},{n:"Dance_G4",d:.57},{n:"Dance_G5",d:.53},{n:"Dance_G6",d:.57},{n:"Dance_G7",d:.53},{n:"Dance_G8",d:.57},{n:"Dance_G9",d:.53},{n:"Dance_G10",d:.57},{n:"Dance_G11",d:.53},{n:"Dance_G12",d:.57},{n:"Dance_G13",d:.53},{n:"Dance_G14",d:.57},{n:"Dance_G15",d:.53},{n:"Dance_G16",d:.57},{n:"dance_loop",d:1.17}]],["RUSTLER",[{n:"Plane_align_LHS",d:.73},{n:"Plane_close",d:.4},{n:"Plane_getin",d:.8},{n:"Plane_getout",d:1.57},{n:"Plane_open",d:.7}]],["RYDER",[{n:"RYD_Beckon_01",d:1.23},{n:"RYD_Beckon_02",d:1},{n:"RYD_Beckon_03",d:1.07},{n:"RYD_Die_PT1",d:4},{n:"RYD_Die_PT2",d:7.93},{n:"Van_Crate_L",d:.67},{n:"Van_Crate_R",d:.67},{n:"Van_Fall_L",d:.47},{n:"Van_Fall_R",d:.93},{n:"Van_Lean_L",d:.67},{n:"Van_Lean_R",d:.67},{n:"VAN_PickUp_E",d:1.83},{n:"VAN_PickUp_S",d:1.5},{n:"Van_Stand",d:.67},{n:"Van_Stand_Crate",d:.67},{n:"Van_Throw",d:1.37}]],["SAMP",[{n:"FishingIdle",d:1}]],["SCRATCHING",[{n:"scdldlp",d:.67},{n:"scdlulp",d:.67},{n:"scdrdlp",d:.67},{n:"scdrulp",d:.67},{n:"sclng_l",d:1},{n:"sclng_r",d:1},{n:"scmid_l",d:.47},{n:"scmid_r",d:.47},{n:"scshrtl",d:.2},{n:"scshrtr",d:.2},{n:"sc_ltor",d:.67},{n:"sc_rtol",d:.67}]],["SHAMAL",[{n:"SHAMAL_align",d:.2},{n:"SHAMAL_getin_LHS",d:1.4},{n:"SHAMAL_getout_LHS",d:1.37},{n:"SHAMAL_open",d:.6}]],["SHOP",[{n:"ROB_2Idle",d:1.17},{n:"ROB_Loop",d:2.67},{n:"ROB_Loop_Threat",d:2},{n:"ROB_Shifty",d:5.67},{n:"ROB_StickUp_In",d:.53},{n:"SHP_Duck",d:.67},{n:"SHP_Duck_Aim",d:.33},{n:"SHP_Duck_Fire",d:.83},{n:"SHP_Gun_Aim",d:.63},{n:"SHP_Gun_Duck",d:.5},{n:"SHP_Gun_Fire",d:.87},{n:"SHP_Gun_Grab",d:.87},{n:"SHP_Gun_Threat",d:.83},{n:"SHP_HandsUp_Scr",d:.67},{n:"SHP_Jump_Glide",d:.33},{n:"SHP_Jump_Land",d:.7},{n:"SHP_Jump_Launch",d:.57},{n:"SHP_Rob_GiveCash",d:3.83},{n:"SHP_Rob_HandsUp",d:2.67},{n:"SHP_Rob_React",d:2.67},{n:"SHP_Serve_End",d:5.5},{n:"SHP_Serve_Idle",d:5},{n:"SHP_Serve_Loop",d:4.17},{n:"SHP_Serve_Start",d:1.33},{n:"Smoke_RYD",d:6.67}]],["SHOTGUN",[{n:"shotgun_crouchfire",d:1.47},{n:"shotgun_fire",d:1.47},{n:"shotgun_fire_poor",d:1.5}]],["SILENCED",[{n:"CrouchReload",d:1},{n:"SilenceCrouchfire",d:.93},{n:"Silence_fire",d:.87},{n:"Silence_reload",d:.93}]],["SKATE",[{n:"skate_idle",d:1},{n:"skate_run",d:.83},{n:"skate_sprint",d:.67}]],["SMOKING",[{n:"F_smklean_loop",d:4},{n:"M_smklean_loop",d:5},{n:"M_smkstnd_loop",d:5.33},{n:"M_smk_drag",d:3.67},{n:"M_smk_in",d:6.67},{n:"M_smk_loop",d:3.33},{n:"M_smk_out",d:3},{n:"M_smk_tap",d:3}]],["SNIPER",[{n:"WEAPON_sniper",d:1.47}]],["SnM",[{n:"SnM_Caned_Idle_P",d:2},{n:"SnM_Caned_Idle_W",d:2},{n:"SnM_Caned_P",d:1.33},{n:"SnM_Caned_W",d:1.33},{n:"SnM_Cane_Idle_P",d:2},{n:"SnM_Cane_Idle_W",d:2},{n:"SnM_Cane_P",d:1.33},{n:"SnM_Cane_W",d:1.33},{n:"SpankedP",d:1.33},{n:"SpankedW",d:1.33},{n:"Spanked_IdleP",d:1.33},{n:"Spanked_IdleW",d:1.33},{n:"SpankingP",d:1.33},{n:"SpankingW",d:1.33},{n:"Spanking_endP",d:6.67},{n:"Spanking_endW",d:6.67},{n:"Spanking_IdleP",d:1.33},{n:"Spanking_IdleW",d:1.33},{n:"Spanking_SittingIdleP",d:1.33},{n:"Spanking_SittingIdleW",d:1.33},{n:"Spanking_SittingP",d:1},{n:"Spanking_SittingW",d:1}]],["SPRAYCAN",[{n:"spraycan_fire",d:2.33},{n:"spraycan_full",d:4.5}]],["STRIP",[{n:"PLY_CASH",d:1.67},{n:"PUN_CASH",d:3.33},{n:"PUN_HOLLER",d:5},{n:"PUN_LOOP",d:1.93},{n:"strip_A",d:2.07},{n:"strip_B",d:1},{n:"strip_C",d:.97},{n:"strip_D",d:1.9},{n:"strip_E",d:3.33},{n:"strip_F",d:1.03},{n:"strip_G",d:2.27},{n:"STR_A2B",d:4},{n:"STR_B2A",d:.5},{n:"STR_B2C",d:5},{n:"STR_C1",d:6},{n:"STR_C2",d:6},{n:"STR_C2B",d:1},{n:"STR_Loop_A",d:1},{n:"STR_Loop_B",d:2},{n:"STR_Loop_C",d:3}]],["SUNBATHE",[{n:"batherdown",d:3.93},{n:"batherup",d:12.3},{n:"Lay_Bac_in",d:2.33},{n:"Lay_Bac_out",d:3},{n:"ParkSit_M_IdleA",d:3.33},{n:"ParkSit_M_IdleB",d:2.67},{n:"ParkSit_M_IdleC",d:4.33},{n:"ParkSit_M_in",d:2.33},{n:"ParkSit_M_out",d:2},{n:"ParkSit_W_idleA",d:3.33},{n:"ParkSit_W_idleB",d:5},{n:"ParkSit_W_idleC",d:3},{n:"ParkSit_W_in",d:4},{n:"ParkSit_W_out",d:2.67},{n:"SBATHE_F_LieB2Sit",d:1.67},{n:"SBATHE_F_Out",d:2},{n:"SitnWait_in_W",d:4.67},{n:"SitnWait_out_W",d:2.67}]],["SWAT",[{n:"gnstwall_injurd",d:2},{n:"JMP_Wall1m_180",d:1.17},{n:"Rail_fall",d:3},{n:"Rail_fall_crawl",d:5.67},{n:"swt_breach_01",d:5.47},{n:"swt_breach_02",d:5.33},{n:"swt_breach_03",d:4.3},{n:"swt_go",d:1.67},{n:"swt_lkt",d:3},{n:"swt_sty",d:1.17},{n:"swt_vent_01",d:4.73},{n:"swt_vent_02",d:4.43},{n:"swt_vnt_sht_die",d:.67},{n:"swt_vnt_sht_in",d:1.6},{n:"swt_vnt_sht_loop",d:.27},{n:"swt_wllpk_L",d:2.67},{n:"swt_wllpk_L_back",d:.5},{n:"swt_wllpk_R",d:3.67},{n:"swt_wllpk_R_back",d:.43},{n:"swt_wllshoot_in_L",d:1},{n:"swt_wllshoot_in_R",d:1.3},{n:"swt_wllshoot_out_L",d:2},{n:"swt_wllshoot_out_R",d:1.43}]],["SWEET",[{n:"ho_ass_slapped",d:2},{n:"LaFin_Player",d:26.67},{n:"LaFin_Sweet",d:26.67},{n:"plyr_hndshldr_01",d:4},{n:"sweet_ass_slap",d:2},{n:"sweet_hndshldr_01",d:4},{n:"Sweet_injuredloop",d:2}]],["SWIM",[{n:"Swim_Breast",d:1.3},{n:"SWIM_crawl",d:.9},{n:"Swim_Dive_Under",d:1.07},{n:"Swim_Glide",d:1.47},{n:"Swim_jumpout",d:.33},{n:"Swim_Tread",d:1.3},{n:"Swim_Under",d:1.5}]],["SWORD",[{n:"sword_1",d:.87},{n:"sword_2",d:1.07},{n:"sword_3",d:.8},{n:"sword_4",d:1.1},{n:"sword_block",d:.47},{n:"Sword_Hit_1",d:.83},{n:"Sword_Hit_2",d:1.03},{n:"Sword_Hit_3",d:.87},{n:"sword_IDLE",d:1},{n:"sword_part",d:.67}]],["TANK",[{n:"TANK_align_LHS",d:1.43},{n:"TANK_close_LHS",d:.33},{n:"TANK_doorlocked",d:.53},{n:"TANK_getin_LHS",d:.43},{n:"TANK_getout_LHS",d:1.97},{n:"TANK_open_LHS",d:.3}]],["TATTOOS",[{n:"TAT_ArmL_In_O",d:.83},{n:"TAT_ArmL_In_P",d:.83},{n:"TAT_ArmL_In_T",d:.83},{n:"TAT_ArmL_Out_O",d:.93},{n:"TAT_ArmL_Out_P",d:2.5},{n:"TAT_ArmL_Out_T",d:.93},{n:"TAT_ArmL_Pose_O",d:.83},{n:"TAT_ArmL_Pose_P",d:.83},{n:"TAT_ArmL_Pose_T",d:.83},{n:"TAT_ArmR_In_O",d:.83},{n:"TAT_ArmR_In_P",d:.83},{n:"TAT_ArmR_In_T",d:.83},{n:"TAT_ArmR_Out_O",d:1},{n:"TAT_ArmR_Out_P",d:2.5},{n:"TAT_ArmR_Out_T",d:1},{n:"TAT_ArmR_Pose_O",d:.83},{n:"TAT_ArmR_Pose_P",d:.83},{n:"TAT_ArmR_Pose_T",d:.83},{n:"TAT_Back_In_O",d:.83},{n:"TAT_Back_In_P",d:.83},{n:"TAT_Back_In_T",d:.83},{n:"TAT_Back_Out_O",d:.93},{n:"TAT_Back_Out_P",d:2.5},{n:"TAT_Back_Out_T",d:.93},{n:"TAT_Back_Pose_O",d:.83},{n:"TAT_Back_Pose_P",d:.83},{n:"TAT_Back_Pose_T",d:.83},{n:"TAT_Back_Sit_In_P",d:.83},{n:"TAT_Back_Sit_Loop_P",d:2.67},{n:"TAT_Back_Sit_Out_P",d:.83},{n:"TAT_Bel_In_O",d:.83},{n:"TAT_Bel_In_T",d:.83},{n:"TAT_Bel_Out_O",d:.97},{n:"TAT_Bel_Out_T",d:.97},{n:"TAT_Bel_Pose_O",d:.83},{n:"TAT_Bel_Pose_T",d:.83},{n:"TAT_Che_In_O",d:.83},{n:"TAT_Che_In_P",d:.83},{n:"TAT_Che_In_T",d:.83},{n:"TAT_Che_Out_O",d:.93},{n:"TAT_Che_Out_P",d:2.5},{n:"TAT_Che_Out_T",d:.93},{n:"TAT_Che_Pose_O",d:.83},{n:"TAT_Che_Pose_P",d:.83},{n:"TAT_Che_Pose_T",d:.83},{n:"TAT_Drop_O",d:.5},{n:"TAT_Idle_Loop_O",d:2.67},{n:"TAT_Idle_Loop_T",d:2.67},{n:"TAT_Sit_In_O",d:2.33},{n:"TAT_Sit_In_P",d:2.33},{n:"TAT_Sit_In_T",d:2.33},{n:"TAT_Sit_Loop_O",d:2.67},{n:"TAT_Sit_Loop_P",d:2.67},{n:"TAT_Sit_Loop_T",d:2.67},{n:"TAT_Sit_Out_O",d:2.83},{n:"TAT_Sit_Out_P",d:2.17},{n:"TAT_Sit_Out_T",d:2.83}]],["TEC",[{n:"TEC_crouchfire",d:.97},{n:"TEC_crouchreload",d:1.33},{n:"TEC_fire",d:1.1},{n:"TEC_reload",d:1.5}]],["TRAIN",[{n:"tran_gtup",d:3.17},{n:"tran_hng",d:2.33},{n:"tran_ouch",d:1.17},{n:"tran_stmb",d:2.33}]],["TRUCK",[{n:"TRUCK_ALIGN_LHS",d:.57},{n:"TRUCK_ALIGN_RHS",d:.57},{n:"TRUCK_closedoor_LHS",d:.4},{n:"TRUCK_closedoor_RHS",d:.4},{n:"TRUCK_close_LHS",d:.73},{n:"TRUCK_close_RHS",d:.73},{n:"TRUCK_getin_LHS",d:.6},{n:"TRUCK_getin_RHS",d:.6},{n:"TRUCK_getout_LHS",d:.8},{n:"TRUCK_getout_RHS",d:.8},{n:"TRUCK_jackedLHS",d:1.73},{n:"TRUCK_jackedRHS",d:1.5},{n:"TRUCK_open_LHS",d:.53},{n:"TRUCK_open_RHS",d:.53},{n:"TRUCK_pullout_LHS",d:.9},{n:"TRUCK_pullout_RHS",d:.9},{n:"TRUCK_Shuffle",d:.4}]],["UZI",[{n:"UZI_crouchfire",d:.63},{n:"UZI_crouchreload",d:1.37},{n:"UZI_fire",d:.57},{n:"UZI_fire_poor",d:.53},{n:"UZI_reload",d:1.4}]],["VAN",[{n:"VAN_close_back_LHS",d:.33},{n:"VAN_close_back_RHS",d:.33},{n:"VAN_getin_Back_LHS",d:.6},{n:"VAN_getin_Back_RHS",d:.6},{n:"VAN_getout_back_LHS",d:.63},{n:"VAN_getout_back_RHS",d:.63},{n:"VAN_open_back_LHS",d:.97},{n:"VAN_open_back_RHS",d:.97}]],["VENDING",[{n:"VEND_Drink2_P",d:3.33},{n:"VEND_Drink_P",d:1.33},{n:"vend_eat1_P",d:4.33},{n:"VEND_Eat_P",d:1.67},{n:"VEND_Use",d:2.6},{n:"VEND_Use_pt2",d:.4}]],["VORTEX",[{n:"CAR_jumpin_LHS",d:1},{n:"CAR_jumpin_RHS",d:.93},{n:"vortex_getout_LHS",d:1},{n:"vortex_getout_RHS",d:1}]],["WAYFARER",[{n:"WF_Back",d:.1},{n:"WF_drivebyFT",d:.2},{n:"WF_drivebyLHS",d:.2},{n:"WF_drivebyRHS",d:.2},{n:"WF_Fwd",d:.2},{n:"WF_getoffBACK",d:1.73},{n:"WF_getoffLHS",d:.9},{n:"WF_getoffRHS",d:.9},{n:"WF_hit",d:.03},{n:"WF_jumponL",d:.9},{n:"WF_jumponR",d:.9},{n:"WF_kick",d:1.03},{n:"WF_Left",d:.13},{n:"WF_passenger",d:.03},{n:"WF_pushes",d:.97},{n:"WF_Ride",d:.03},{n:"WF_Right",d:.13},{n:"WF_Still",d:.03}]],["WEAPONS",[{n:"SHP_1H_Lift",d:1},{n:"SHP_1H_Lift_End",d:.33},{n:"SHP_1H_Ret",d:.83},{n:"SHP_1H_Ret_S",d:.33},{n:"SHP_2H_Lift",d:.93},{n:"SHP_2H_Lift_End",d:.33},{n:"SHP_2H_Ret",d:.9},{n:"SHP_2H_Ret_S",d:.33},{n:"SHP_Ar_Lift",d:1},{n:"SHP_Ar_Lift_End",d:.33},{n:"SHP_Ar_Ret",d:1.17},{n:"SHP_Ar_Ret_S",d:.33},{n:"SHP_G_Lift_In",d:.67},{n:"SHP_G_Lift_Out",d:.67},{n:"SHP_Tray_In",d:.67},{n:"SHP_Tray_Out",d:.67},{n:"SHP_Tray_Pose",d:2.67}]],["WOP",[{n:"Dance_B1",d:1.13},{n:"Dance_B2",d:1.17},{n:"Dance_B3",d:1.13},{n:"Dance_B4",d:1.17},{n:"Dance_B5",d:1.13},{n:"Dance_B6",d:1.17},{n:"Dance_B7",d:1.13},{n:"Dance_B8",d:1.17},{n:"Dance_B9",d:1.13},{n:"Dance_B10",d:1.17},{n:"Dance_B11",d:1.13},{n:"Dance_B12",d:1.17},{n:"Dance_B13",d:1.13},{n:"Dance_B14",d:1.17},{n:"Dance_B15",d:1.13},{n:"Dance_B16",d:1.17},{n:"Dance_G1",d:1.13},{n:"Dance_G2",d:1.17},{n:"Dance_G3",d:1.13},{n:"Dance_G4",d:1.17},{n:"Dance_G5",d:1.13},{n:"Dance_G6",d:1.17},{n:"Dance_G7",d:1.13},{n:"Dance_G8",d:1.17},{n:"Dance_G9",d:1.13},{n:"Dance_G10",d:1.17},{n:"Dance_G11",d:1.13},{n:"Dance_G12",d:1.17},{n:"Dance_G13",d:1.13},{n:"Dance_G14",d:1.17},{n:"Dance_G15",d:1.13},{n:"Dance_G16",d:1.17},{n:"dance_loop",d:1.17}]],["WUZI",[{n:"CS_Dead_Guy",d:5.07},{n:"CS_Plyr_pt1",d:3.77},{n:"CS_Plyr_pt2",d:9.67},{n:"CS_Wuzi_pt1",d:3.77},{n:"CS_Wuzi_pt2",d:9.67},{n:"Walkstart_Idle_01",d:3.17},{n:"Wuzi_follow",d:3},{n:"Wuzi_Greet_Plyr",d:4},{n:"Wuzi_Greet_Wuzi",d:4},{n:"Wuzi_grnd_chk",d:4},{n:"Wuzi_stand_loop",d:2.67},{n:"Wuzi_Walk",d:1.17}]]]),Se=e=>{const t=it.get(e);return t===void 0?!1:t},fe=(e,t)=>{const a=Se(e);if(a)return t==="null"?!0:a.some(n=>n.n===t)},oc=(e,t)=>{const a=Se(e);if(a)return a.find(n=>n.n===t)?.d},j=(e,t)=>{const a=t.replace("-","")==="utf8"?e:P.encodeToBuf(e,t);return[a instanceof Array?"a":"s",a]},st=(e,t,a)=>{const n=j(a,e.charset);return samp.callNative("SendClientMessage",`ii${n[0]}`,e.id,I(t),n[1])},dc=(e,t,a)=>(e.forEach(n=>st(n,t,a)),1),lt=(e,t,a)=>{const n=j(a,e.charset);return samp.callNative("SendPlayerMessageToPlayer",`ii${n[0]}`,e.id,t,n[1])},cc=(e,t,a)=>(e.forEach(n=>{lt(n,t,a)}),1),_c=(e,t,a)=>{const{charset:n}=e,{style:r,caption:i,info:s,button1:l,button2:o}=a,[c,u]=j(i||"",n),[,p]=j(s||"",n),[,g]=j(l||"",n),[,y]=j(o||"",n);return samp.callNative("ShowPlayerDialog",`iii${c.repeat(4)}`,e.id,t,r,u,p,g,y)},hc=e=>{const[t]=samp.callNative("GetPlayerName","iAi",e.id,F.MAX_PLAYER_NAME);return P.decodeFromBuf(P.getValidStr(t),e.charset)},uc=(e,t)=>samp.callNative("SetPlayerName","ia",e.id,P.encodeToBuf(t,e.charset)),mc=(e,t,a)=>{const n=P.encodeToBuf(t,a);return samp.callNative("BanEx","ia",e,n)},pc=(e,t="utf8")=>{const[a,n]=j(e,t);return samp.callNative("SendRconCommand",a,n)},gc=(e,t,a,n,r,i,s,l,o,c,u,p,g,y,E,R)=>{const G=P.encodeToBuf(t,e);return samp.callNative("CreateDynamic3DTextLabel","aiffffiiiiiifii",G,a,n,r,i,s,l,o,c,u,p,g,y,E,R)},Sc=(e,t,a,n,r,i,s,l,o,c,u,p,g,y,E,R)=>{const G=P.encodeToBuf(e,R);return samp.callNative("CreateDynamic3DTextLabelEx","aiffffiiifaaaaiiiii",G,t,a,n,r,i,s,l,o,c,u,p,g,y,E,u.length,p.length,g.length,y.length)},fc=(e,t,a,n)=>{const r=P.encodeToBuf(a,n);return samp.callNative("UpdateDynamic3DTextLabelText","iia",e,t,r)},yc=(e,t)=>{const[a]=samp.callNative("GetDynamic3DTextLabelText","iAi",e,1024);return P.decodeFromBuf(P.getValidStr(a),t)},Pc=(e,t,a,n,r,i,s,l,o,c,u)=>{const p=P.encodeToBuf(n,e),g=P.encodeToBuf(i,e);return samp.callNative("SetDynamicObjectMaterialText","iiaiaiiiii",t,a,p,r,g,s,l,o,c,u)},Ic=(e,t,a)=>{const[n,r,i,s,l,o,c]=samp.callNative("GetDynamicObjectMaterialText","iiAIAIIIIIii",e,t,2048,32),u=P.decodeFromBuf(n,a),p=P.decodeFromBuf(i,a);return{text:u,materialSize:r,fontFace:p,bold:s,fontColor:l,backColor:o,textAlignment:c}},Ec=(e,t,a,n,r,i)=>{const s=P.encodeToBuf(t,i);return!!samp.callNative("SetPlayerChatBubble","iaifi",e,s,I(a),n,r)},Ac=[8,9,10,25,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,96,97,98],Cc=[[13,18,19,20,21,24],[1,3,4,5,6,7,13,17,19,20,142,143,144,145],[],[],[0,2,7,13,16,17,19,20,21],[0,1,14,18,19,20,21,23],[],[],[],[],[1,3,7,13,17,19,20,21,23,24],[],[],[],[],[1,3,7,17,18,19,23],[],[],[2,6,16,20,21],[],[1,3,4,5,19,21],[0,14,16,18,19,20,21,23],[7,13,17,19,20,21],[],[],[],[1,3,4,5,6,19,21],[],[],[],null,[],[],[],[],[],[1,3,6,7,13,17,19,20,21,22],[],[],[1,3,7,13,17,23,142,143,144,145],[],[],[],[],[],[],null,[],null,null,[],[],null,null,null,[],[],[],[],[],[],null,null,null,[],[],[],[],null,[],[],[],null,null,[],[],[],[6,7,17,18,19,20,21],[4,5,12,13,20,21,22,24],[],[],null,[],[],null,[],[],[],[],[0,2,4,5,6,13,16,18,19,20,24],[],[3,7,14,17,18,19,20,21,23,142,143,144,145],[0,4,5,6,16],null,[],[],[1,2,3,6,7,11,17,19,20,23,142,143],[],[],[],[13,19,20,21,24],[],[],[],[],[],[],[],[],null,null,[],[],[],[],[],[0,2,4,7,15,16,17,18,19,20,21],[2,3,7,16,17,18,19,20,23,142,143,144,145],[1,3,5,6,7,13,17,18,20,23,142,143,144,145],[],[],null,null,null,[],[],[],[1,7,14,15,17,18,20,21],[],[1,3,6,7,11,12,17,18,19,20,23],[],[],[],[],[100,101,106,122,123,124,125,126,127,178,179,180,185],[109,110,113,114,115,116,117,118,119,120,121],[103,104,105,107,108,128,181,182,183,184],null,null,[],[1,4,6,7,17,18,19,20,23,24,142,143,144,145],[],[14,15,18,19,20,21,144,145],[],[],[],[1,2,4,6,7,17,18,19,23,24,142,143,144,145],[0,3,16,18,19,20,21,142,143],[],[1,3,7,11,12,17,18,19,20,23,142,143,144,145],[1,3,4,5,6,18,19,20,23,142,143,144,145],[2,3,5,6,16,18,19,20,21,23],[],[],[],[],[],[],[88,89,90,91,92,93,94,95,163,164,165,166,167,168],[65,66,67,68,69,70,71,72,158,159,160,161,162,173],[26,27,28,29,30,31,32,33,138,139,140,141,169,170],[55,56,57,58,59,60,61,62,63,64,154,155,156,157],[34,35,36,37,38,39,40,41,146,147,148,149,171,172],[],[],[45,46,47,48,49,50,51,52,53,54,150,151,152,153],[],[102,129,130,131,132,133,186,187,188,189],[],null,null,[],[],[],[],[42,43,44,99,174,175,176,177],[134,135,136,137,190,191,192,193],[],[],[],[1,6,7,17,18,20,23],null,[],[],[],[0,1,2,3,6,7,13,14,15,16,17,18,19,20,21,22,23,24,142,143,144,145],null,[],[],[0,4,5,6,7,13,16,17,18,20,24,144,145],null,[],[],[],[],null,[],[],[],[],[4,5,6,7,13,17,18,20,22],[],[],[1,6,7,17,18,19,20,23,24,142,143,144,145],[],[],[],[],[],[],[],[]],Tc=(e,t)=>{if(!ye(e))return!1;const a=Cc[e-400];if(a===null)return!1;const n=t-1e3;return Ac.includes(n)||a.includes(n)},ye=e=>e>=400&&e<=611,Dc=(e,t)=>{if(t<0||t>2)return!1;const a=new Map([[483,0],[534,2],[535,2],[536,2],[558,2],[559,2],[560,2],[561,2],[562,2],[565,2],[567,2],[575,1],[576,2]]).get(e);return a===void 0?!1:t<=a},Z=Symbol(),U=new Map;class A{static vehicles=new Map;static createdCount=0;sourceInfo;isStatic;_id=-1;get id(){return this._id}constructor(t,a=!1){this.sourceInfo=t,this.isStatic=a}create(t=!1){if(this.id!==-1)throw new Error("[Vehicle]: Unable to create the vehicle again");if(A.createdCount===F.MAX_VEHICLES)throw new Error("[Vehicle]: Unable to continue to create vehicle, maximum allowable quantity has been reached");const{modelId:a,x:n,y:r,z:i,zAngle:s,color:l,respawnDelay:o,addSiren:c}=this.sourceInfo;if(!(!t&&!ye(a))){if(this.isStatic){if(o===void 0){this._id=il(a,n,r,i,s,l[0],l[1]);return}this._id=sl(a,n,r,i,s,l[0],l[1],o||-1,c||!1)}else this._id=gs(a,n,r,i,s,l[0],l[1],o||-1,c||!1);A.createdCount++,A.vehicles.set(this._id,this)}}destroy(){if(this.id===-1)throw new Error("[Vehicle]: Unable to destroy the vehicle before create");Ss(this.id),A.createdCount--,A.vehicles.delete(this._id),this._id=-1}addComponent(t){if(this.id===-1)return 0;if(!Tc(this.getModel(),t))throw new Error(`[Vehicle]: Invalid component id ${t} attempted to attach to the vehicle ${this}`);return Bs(this.id,t)}removeComponent(t){if(this.getComponentInSlot(A.getComponentType(t))===0)throw new Error(`[Vehicle]: component id ${t} does not exist on this vehicle`);return ks(this.id,t)}getComponentInSlot(t){return Ys(this.id,t)}linkToInterior(t){return this.id===-1?0:Fs(this.id,t)}setVirtualWorld(t){return this.id===-1?0:nl(this.id,t)}getVirtualWorld(){return this.id===-1?0:rl(this.id)}repair(){return this.id===-1?0:$s(this.id)}setPos(t,a,n){return this.id===-1?0:Ps(this.id,t,a,n)}getPos(){if(this.id===-1)throw new Error("[Vehicle]: Unable to getPos before create");return ys(this.id)}getHealth(){return this.id===-1?0:Vs(this.id)}setHealth(t){return this.id===-1?0:Hs(this.id,t)}isPlayerIn(t){return this.id===-1?!1:di(t.id,this.id)}putPlayerIn(t,a){if(this.id===-1||a<0)return 0;if(a>4)throw new Error("[Vehicle]: If the seat is invalid or is taken, will cause a crash when they EXIT the vehicle.");return Vr(t.id,this.id,a)}getZAngle(){return this.id===-1?0:Is(this.id)}setZAngle(t){return this.id===-1?0:Cs(this.id,t)}setNumberPlate(t){if(this.id===-1)return 0;if(t.length<1||t.length>32)throw new Error("[Vehicle]: The length of the number plate ranges from 32 characters");if(!/^[a-zA-Z0-9]+$/.test(t))throw new Error("[Vehicle]: number plates only allow letters and numbers");return Zs(this.id,t)}changeColors(t,a){return this.id===-1?0:Ms(this.id,t,a)}setVelocity(t,a,n){return this.id===-1?!1:Qs(this.id,t,a,n)}getVelocity(){if(this.id===-1)throw new Error("[Vehicle]: Unable to getVelocity before create");const[t,a,n]=Js(this.id);return{x:t,y:a,z:n}}getSpeed(t=180){if(this.id===-1)return 0;const{x:a,y:n,z:r}=this.getVelocity();return ue(a,n,r)*t}setAngularVelocity(t,a,n){return this.id===-1?0:qs(this.id,t,a,n)}getDamageStatus(){if(this.id!==-1)return el(this.id)}updateDamageStatus(t,a,n,r){this.id!==-1&&tl(this.id,t,a,n,r)}getDistanceFromPoint(t,a,n){return As(this.id,t,a,n)}getModel(){return Xs(this.id)}static getModelInfo(t,a){return al(t,a)}getModelInfo(t){if(this.id===-1)throw new Error("[Vehicle]: Unable to getModelInfo before create");return A.getModelInfo(this.getModel(),t)}getRotationQuat(){if(this.id===-1)return;const[t,a,n,r]=Es(this.id);return{w:t,x:a,y:n,z:r}}setRespawn(){return this.id===-1?0:Gs(this.id)}isStreamedIn(t){return this.id===-1?!1:fs(this.id,t.id)}setParamsCarDoors(t,a,n,r){return this.id===-1?0:vs(this.id,t,a,n,r)}setParamsCarWindows(t,a,n,r){return this.id===-1?0:Ls(this.id,t,a,n,r)}getParamsCarDoors(){if(this.id!==-1)return Rs(this.id)}getParamsCarWindows(){if(this.id!==-1)return Os(this.id)}setParamsEx(t,a,n,r,i,s,l){return this.id===-1?0:Ns(this.id,t,a,n,r,i,s,l)}getParamsEx(){if(this.id===-1)return{engine:-1,lights:-1,alarm:-1,doors:-1,bonnet:-1,boot:-1,objective:-1};const[t,a,n,r,i,s,l]=ws(this.id);return{engine:t,lights:a,alarm:n,doors:r,bonnet:i,boot:s,objective:l}}toggleEngine(t){if(this.id===-1)return 0;const{lights:a,alarm:n,doors:r,bonnet:i,boot:s,objective:l}=this.getParamsEx();return this.setParamsEx(t,a,n,r,i,s,l)}toggleLights(t){if(this.id===-1)return 0;const{engine:a,alarm:n,doors:r,bonnet:i,boot:s,objective:l}=this.getParamsEx();return this.setParamsEx(a,t,n,r,i,s,l)}toggleAlarm(t){if(this.id===-1)return 0;const{engine:a,lights:n,doors:r,bonnet:i,boot:s,objective:l}=this.getParamsEx();return this.setParamsEx(a,n,t,r,i,s,l)}toggleDoors(t){if(this.id===-1)return 0;const{engine:a,lights:n,alarm:r,bonnet:i,boot:s,objective:l}=this.getParamsEx();return this.setParamsEx(a,n,r,t,i,s,l)}toggleBonnet(t){if(this.id===-1)return 0;const{engine:a,lights:n,alarm:r,doors:i,boot:s,objective:l}=this.getParamsEx();return this.setParamsEx(a,n,r,i,t,s,l)}toggleBoot(t){if(this.id===-1)return 0;const{engine:a,lights:n,alarm:r,doors:i,bonnet:s,objective:l}=this.getParamsEx();return this.setParamsEx(a,n,r,i,s,t,l)}toggleObjective(t){if(this.id===-1)return 0;const{engine:a,lights:n,alarm:r,doors:i,bonnet:s,boot:l}=this.getParamsEx();return this.setParamsEx(a,n,r,i,s,l,t)}getParamsSirenState(){return this.id===-1?-2:bs(this.id)}setParamsForPlayer(t,a,n){return this.id===-1?0:Ts(this.id,t.id,a,n)}isTrailerAttached(){return this.id===-1?!1:Ks(this.id)}changePaintjob(t){return this.id===-1||!Dc(this.getModel(),t)?0:(this.changeColors("#fff","#fff"),xs(this.id,t),1)}attachTrailer(t){return this.id===-1?0:Us(t.id,this.id)}detachTrailer(){this.id!==-1&&this.isTrailerAttached()&&Ws(this.id)}getTrailer(){if(this.id!==-1)return A.getInstances().find(t=>t.id===js(this.id))}isValid(){return Re(this.id)}getMatrix(){if(this.id!==-1)return ms(this.id)}getTrainSpeed(){return this.id===-1?0:us(this.id)}getHydraReactorAngle(){return this.id===-1?0:hs(this.id)}getLandingGearState(){return this.id===-1?0:_s(this.id)}getSirenState(){return this.id===-1?0:cs(this.id)}getDriver(){if(this.id!==-1)return U.get(os(this.id))}getLastDriver(){if(this.id!==-1)return U.get(ls(this.id))}isSirenEnabled(){return is(this.id)}toggleSirenEnabled(t){return this.id===-1?0:ns(this.id,t)}setParamsSirenState(t){return this.id===-1?0:rs(this.id,t)}isDead(){return this.id===-1?!0:es(this.id)}setDead(t){return this.id===-1?!1:ts(this.id,t)}setBeenOccupied(t){return this.id===-1?!1:as(this.id,t)}getRespawnTick(){return this.id===-1?0:Qi(this.id)}setRespawnTick(t){return this.id===-1?!1:qi(this.id,t)}isOccupied(){return this.id===-1?!1:Ji(this.id)}hasBeenOccupied(){return this.id===-1?!1:$i(this.id)}getOccupiedTick(){return this.id===-1?0:Yi(this.id)}setOccupiedTick(t){return this.id===-1?0:zi(this.id,t)}getCab(){return this.id===-1?0:Xi(this.id)}getRespawnDelay(){return this.id===-1?0:Zi(this.id)}setRespawnDelay(t){return this.id===-1?0:ji(this.id,t)}getNumberPlate(){return this.id===-1?"":Ki(this.id)}getInterior(){return this.id===-1?0:Wi(this.id)}getPaintjob(){return this.id===-1?-1:Ui(this.id)}getColors(){if(this.id!==-1)return Vi(this.id)}setSpawnInfo(t,a,n,r,i,s,l,o=-2,c=-2,u=!1){return this.id===-1||!u&&!ye(t)?0:Hi(this.id,t,a,n,r,i,I(s),I(l),o,c)}getSpawnInfo(){if(this.id!==-1)return xi(this.id)}getRandomColorPair(){if(this.id!==-1)return ve(this.getModel())}show(){return this.id===-1?!1:ll(this.id)}hide(){return this.id===-1?!1:ol(this.id)}isHidden(){return this.id===-1?!1:dl(this.id)}getVehicleOccupant(t){return pl(this.id,t)}getVehicleMaxPassengers(){return Le(this.getModel())}countVehicleOccupants(){return gl(this.getModel())}static getVehicleMaxPassengers=Le;static getRandomColorPair=ve;static getComponentType=zs;static colorIndexToColor=ps;static isValid=Re;static getModelsUsed=ds;static getModelCount=ss;static getInstance(t){return this.vehicles.get(t)}static getInstances(){return[...this.vehicles.values()]}}const[ot]=_({name:"OnClientCheckResponse",beforeEach(e,t,a,n){return{player:m.getInstance(e),actionId:t,memAddr:a,data:n}}}),[Nc,wc]=_({name:"OnPlayerLocaleChange",isNative:!1,beforeEach(e,t,a){return{player:e,newLocale:t,oldLocale:a}}}),[bc,vc]=_({name:"OnPlayerCharsetChange",isNative:!1,beforeEach(e,t,a){return{player:e,newCharset:t,oldCharset:a}}});class m{constructor(t){this.id=t;const a=m.getInstance(t);if(a)return a}[Z]={isAndroid:!0};static players=U;static MAX_CHECK_ANDROID_DELAY=10;static SKIP_CHECK_ANDROID=!1;_charset="ISO-8859-1";_locale="en_US";lastDrunkLevel=0;lastFps=0;lastUpdateTick=0;lastUpdateFpsTick=0;isPaused=!1;isRecording=!1;get charset(){return this._charset}set charset(t){const a=this._charset;this._charset=t,vc(this,t,a)}get locale(){return this._locale}set locale(t){const a=this._locale;this._locale=t,wc(this,t,a)}sendClientMessage(t,a){return st(this,t,a)}static sendClientMessageToAll(t,a){dc(m.getInstances(),t,a)}sendMessageToPlayer(t,a){return lt(t,this.id,a)}sendMessageToAll(t){return cc(m.getInstances(),this.id,t)}isNpc(){return Fn(this.id)}getFps(){return this.lastFps}getDrunkLevel(){return nr(this.id)}setDrunkLevel(t){if(t<0||t>5e4)throw new Error("[Player]: player's drunk level ranges from 0 to 50000");return rr(this.id,t)}allowTeleport(t){return Nn(this.id,t)}isTeleportAllowed(){return wn(this.id)}enableCameraTarget(t){return Ei(this.id,t)}enableStuntBonus(t){return ti(this.id,t)}getInterior(){return Kn(this.id)}setInterior(t){return Wn(this.id,t)}showNameTag(t,a){return pi(this.id,t.id,a)}setColor(t){return ir(this.id,t)}getColor(){return sr(this.id)}setMarker(t,a){ui(this.id,t.id,a)}getMarker(t){return mi(this.id,t.id)}resetMoney(){return mr(this.id)}getMoney(){return pr(this.id)}giveMoney(t){return ur(this.id,t)}resetWeapons(){return cr(this.id)}spawn(){return this.isSpectating()?(this.toggleSpectating(!1),1):La(this.id)}setHealth(t){return jn(this.id,t)}getHealth(){return Zn(this.id)}toggleClock(t){return Er(this.id,t)}toggleControllable(t){return jr(this.id,t)}toggleSpectating(t){return si(this.id,t)}spectatePlayer(t,a=de.NORMAL){return li(this.id,t.id,a)}spectateVehicle(t,a=de.NORMAL){return oi(this.id,t.id,a)}forceClassSelection(){return Cr(this.id)}kick(){return ja(this.id)}ban(){return Za(this.id)}banEx(t,a){return mc(this.id,t,a)}isAdmin(){return Wa(this.id)}isInRangeOfPoint(t,a,n,r){return Hn(this.id,t,a,n,r)}isStreamedIn(t){return Un(this.id,t.id)}setSkin(t,a=!1){return!a&&(t<0||t>311||t===74)||this.getHealth()<=0||this.isInAnyVehicle()||this.getSpecialAction()===pe.DUCK?!1:lr(this.id,t)}getSkin(){return or(this.id)}isInAnyVehicle(){return ci(this.id)}getSpecialAction(){return $r(this.id)}setSpecialAction(t){return Jr(this.id,t)}setScore(t){return tr(this.id,t)}getScore(){return ar(this.id)}getPing(){return Sr(this.id)||0}setPos(t,a,n){return we(this.id,t,a,n)}getPos(){if(this.isSpectating()||this.isWasted()||this.getState()===Q.NONE)return;const[t,a,n]=kn(this.id);return{x:t,y:a,z:n}}isSpectating(){return this.getState()===Q.SPECTATING}isWasted(){return this.getState()===Q.WASTED}getState(){return gr(this.id)}getVersion(){return this.isNpc()?"":nn(this.id)}setVirtualWorld(t){return qr(this.id,t)}getVirtualWorld(){return ei(this.id)}removeFromVehicle(){return Kr(this.id)}setWantedLevel(t){if(t<0||t>6)throw new Error("[Player]: player's wanted level ranges from 0 to 6");return Tr(this.id,t)}getWantedLevel(){return Dr(this.id)}setFacingAngle(t){return Mn(this.id,t)}getFacingAngle(){return xn(this.id)}setWeather(t){if(t<0||t>255)throw new Error("[Player]: The valid weather value is only 0 to 255");return Ar(this.id,t)}getWeather(){return on(this.id)}setTime(t,a){if(t<0||t>23)throw new Error("[Player]: The valid hour value is only 0 to 23");if(a<0||a>59)throw new Error("[Player]: The valid minute value is only 0 to 59");return Pr(this.id,t,a)}getTime(){const[t,a]=Ir(this.id);return{hour:t,minute:a}}removeBuilding(t,a,n,r,i){return xr(this.id,t,a,n,r,i)}setTeam(t){t<0||t>T.NO_TEAM||qn(this.id,t)}getTeam(){return er(this.id)}setSkillLevel(t,a){if(a<0||a>999)throw new Error("[Player]: The valid skill level is only 0 to 999");return Fr(this.id,t,a)}getName(){return hc(this)}setName(t){return uc(this,t)}setVelocity(t,a,n){return br(this.id,t,a,n)}getVelocity(){const[t,a,n]=vr(this.id);return{x:t,y:a,z:n}}getSpeed(t=180){if(this.id===-1)return 0;const{x:a,y:n,z:r}=this.getVelocity();return ue(a,n,r)*t}getKeys(){const[t,a,n]=yr(this.id);return{keys:t,upDown:a,leftRight:n}}getIp(){return an(this.id)}getFightingStyle(){return wr(this.id)}setFightingStyle(t){return Nr(this.id,t)}setArmour(t){return Xn(this.id,t)}getArmour(){return Yn(this.id)}setCameraBehind(){return fi(this.id)}setCameraPos(t,a,n){return gi(this.id,t,a,n)}setCameraLookAt(t,a,n,r=re.CUT){return Si(this.id,t,a,n,r)}getCameraAspectRatio(){return Ti(this.id)}getCameraFrontVector(){const[t,a,n]=Pi(this.id);return{x:t,y:a,z:n}}getCameraMode(){return Ii(this.id)}getCameraPos(){const[t,a,n]=yi(this.id);return{x:t,y:a,z:n}}getCameraTargetPlayer(){const t=Ci(this.id);return m.getInstances().find(a=>a.id===t)}getCameraTargetVehicle(){const t=Ai(this.id);return A.getInstances().find(a=>a.id===t)}getCameraZoom(){return Di(this.id)}playAudioStream(t,a=0,n=0,r=0,i=5){let s=!1;return(a!==0||n!==0||r!==0)&&(s=!0),Lr(this.id,t,a,n,r,i,s)}stopAudioStream(){return Or(this.id)}playSound(t,a=0,n=0,r=0){return Zr(this.id,t,a,n,r)}static getMaxPlayers(){return ea()}playCrimeReport(t,a){if(a<3||a>22)throw new Error("[Player]: Available crime ids range from 3 to 22");return Rr(this.id,t.id,a)}interpolateCameraPos(t,a,n,r,i,s,l,o=re.CUT){return Ni(this.id,t,a,n,r,i,s,l,o)}interpolateCameraLookAt(t,a,n,r,i,s,l,o=re.CUT){return wi(this.id,t,a,n,r,i,s,l,o)}createExplosion(t,a,n,r,i){if(r<0||r>13)throw new Error("[Player]: The valid explosion type value is only 0 to 13");return ni(this.id,t,a,n,r,i)}static isConnected(t){return be(t)}isConnected(){return be(this.id)}disableRemoteVehicleCollisions(t){return Qr(this.id,t)}getVehicle(){if(!this.isInAnyVehicle())return;const t=Ur(this.id);return A.getInstances().find(a=>a.id===t)}getVehicleSeat(){return Wr(this.id)}getSurfingVehicle(){const t=Br(this.id);if(t!==T.VEHICLE_ID)return A.getInstances().find(a=>a.id===t)}applyAnimation(t,a,n=4.1,r=!1,i=!0,s=!0,l=!1,o=0,c=!1){if(!fe(t,a))throw new Error("[Player]: Invalid anim library or name");return Xr(this.id,t,a,n,r,i,s,l,o,+c)}clearAnimations(t=!1){return Yr(this.id,t)}getAnimationIndex(){return zr(this.id)}getAnimationName(t=this.getAnimationIndex()){const[a,n]=Pa(t);return{index:t,animLib:a,animName:n}}setShopName(t){return Gr(this.id,t)}setPosFindZ(t,a,n=150){return new Promise(r=>{we(this.id,t,a,n),setTimeout(()=>r(Bn(this.id,t,a,n)))})}setWorldBounds(t,a,n,r){return _i(this.id,t,a,n,r)}clearWorldBounds(){return hi(this.id)}setChatBubble(t,a,n,r,i=this.charset){return Ec(this.id,t,a,n,r,i)}getDistanceFromPoint(t,a,n){return Vn(this.id,t,a,n)}getCustomSkin(){return ai(this.id)}getTargetPlayer(){const t=Qn(this.id);if(t!==T.PLAYER_ID)return m.getInstances().find(a=>a.id===t)}getLastShotVectors(){const[t,a,n,r,i,s]=Hr(this.id);return{fOriginX:t,fOriginY:a,fOriginZ:n,fHitPosX:r,fHitPosY:i,fHitPosZ:s}}getWeapon(){return fr(this.id)}getWeaponData(t){if(t<0||t>12)throw new Error("[Player]: weapon slots range from 0 to 12");const[a,n]=hr(this.id,t);return{weapons:a,ammo:n}}getWeaponState(){return Jn(this.id)}giveWeapon(t,a){return dr(this.id,t,a)}setAmmo(t,a){return zn(this.id,t,a)}getAmmo(){return $n(this.id)}setArmedWeapon(t){return _r(this.id,t)}clearDeathMessage(){for(let t=0;t<5;t++)this.sendDeathMessageToPlayer(T.PLAYER_ID,T.PLAYER_ID,ge.CONNECT)}sendDeathMessage(t,a){return qt(t===T.PLAYER_ID?t:t.id,this.id,a)}sendDeathMessageToPlayer(t,a,n){return On(this.id,t===T.PLAYER_ID?t:t.id,a===T.PLAYER_ID?a:a.id,n)}setSpawnInfo(t,a,n,r,i,s,l,o,c,u,p,g){return t<0||t>T.NO_TEAM||a<0||a>311||a===74||o<0||u<0||g<0?!1:Ra(this.id,t,a,n,r,i,s,l,o,c,u,p,g)}redirectDownload(t){return ec(this.id,t)}sendClientCheck(t,a,n,r){const i=[2,5,69,70,71,72];if(!i.includes(t))throw new Error(`[Player]: sendClientCheck valid types are ${i.toString()}`);return new Promise((s,l)=>{if(this.isPaused)return l("[Player]: An attempt to check the player client response, but the player paused the game");const o="[Player]: An attempt to check the player client response timed out",c=this.getPing(),u=(c>=200?0:c)+200;let p=null;const g=ot(({player:y,actionId:E,memAddr:R,data:G,next:ae})=>(y!==this||(p&&(clearTimeout(p),p=null),s({actionId:E,memAddr:R,data:G})),ae()));p=setTimeout(()=>{g(),l(o)},u),Qa(this.id,t,a,n,r)})}selectTextDraw(t){sd(this.id,t)}cancelSelectTextDraw(){ld(this.id)}beginObjectSelecting(){return zd(this.id)}endObjectEditing(){return $d(this.id)}getSurfingObject(t){const a=kr(this.id);if(a!==T.OBJECT_ID)return t.get(a)}getSurfingPlayerObject(t){const a=Mr(this.id);if(a!==T.OBJECT_ID)return t.get(a)}isAttachedObjectSlotUsed(t){return sc(this.id,t)}editAttachedObject(t){return Yd(this.id,t)}setAttachedObject(t,a,n,r=0,i=0,s=0,l=0,o=0,c=0,u=1,p=1,g=1,y=0,E=0){return this.isAttachedObjectSlotUsed(t)?0:rc(this.id,t,a,n,r,i,s,l,o,c,u,p,g,y,E)}removeAttachedObject(t){return this.isAttachedObjectSlotUsed(t)?ic(this.id,t):0}getAnimationFlags(){return samp.callNative("GetPlayerAnimationFlags","i",this.id)}getLastSyncedTrailerID(){return samp.callNative("GetPlayerLastSyncedTrailerID","i",this.id)}getLastSyncedVehicleID(){return samp.callNative("GetPlayerLastSyncedVehicleID","i",this.id)}toggleWidescreen(t){return rn(this.id,t)}isWidescreenToggled(){return sn(this.id)}getSpawnInfo(){return Oa(this.id)}getSkillLevel(t){return ln(this.id,t)}isCheckpointActive(){return Sl(this.id)}getCheckpoint(){return fl(this.id)}isRaceCheckpointActive(){return yl(this.id)}getRaceCheckpoint(){return Pl(this.id)}getWorldBounds(){dn(this.id)}isInModShop(){return cl(this.id)}getSirenState(){return _l(this.id)}getLandingGearState(){return hl(this.id)}getHydraReactorAngle(){return ul(this.id)}getTrainSpeed(){return ml(this.id)}getZAim(){return cn(this.id)}getSurfingOffsets(){return _n(this.id)}getRotationQuat(){return hn(this.id)}getDialogID(){return un(this.id)}getSpectateID(){return mn(this.id)}getSpectateType(){return pn(this.id)}getRawIp(){return tn(this.id)}setGravity(t){return gn(this.id,t)}getGravity(){return Sn(this.id)}setAdmin(t){return Ka(this.id,t)}isSpawned(){return fn(this.id)}isControllable(){return yn(this.id)}isCameraTargetEnabled(){return Pn(this.id)}toggleGhostMode(t){return In(this.id,t)}getGhostMode(){return En(this.id)}getBuildingsRemoved(){return An(this.id)}getAttachedObject(t){return nc(this.id,t)}removeWeapon(t){return Cn(this.id,t)}isUsingOfficialClient(){return Dn(this.id)}allowWeapons(t){return bn(this.id,t)}areWeaponsAllowed(){return vn(this.id)}gpci(t=this.charset){return Ja(this.id,t)}isCuffed(){return bi(this.id)}isInDriveByMode(){return vi(this.id)}isAndroid(){return this.isConnected()&&this[Z].isAndroid}isPC(){return this.isConnected()&&!this[Z].isAndroid}isUsingOmp(){return Ri(this.id)}static getInstance(t){return U.get(t)}static getInstances(){return[...U.values()]}}const[dt]=_({name:"OnDialogResponseI18n",identifier:"iiiiai",beforeEach(e,t,a,n,r){return{player:m.getInstance(e),dialogId:t,response:a,listItem:n,buffer:r}}});dt(({next:e,player:t,dialogId:a,response:n,listItem:r,buffer:i})=>{const s=N.waitingQueue.get(t);return!s||s.showId!==a||setTimeout(()=>s.resolve({response:n,listItem:r,buffer:i})),e()});class N{id=-1;static showingIds=[];static maxDialogId=32767;dialog;static waitingQueue=new WeakMap;constructor(t={style:me.MSGBOX,caption:"",info:"",button1:"",button2:""}){this.dialog=t}get style(){return this.dialog.style}set style(t){this.dialog.style=t}get caption(){return this.dialog.caption}set caption(t){this.dialog.caption=t}get info(){return this.dialog.info}set info(t){this.dialog.info=t}get button1(){return this.dialog.button1}set button1(t){this.dialog.button1=t}get button2(){return this.dialog.button2}set button2(t){this.dialog.button2=t}static delDialogTask(t,a=!1){const n=N.waitingQueue.get(t);if(!n)return!1;a&&n.reject("[Dialog]: player timeout does not respond or second request show dialog"),N.waitingQueue.delete(t);const r=N.showingIds.indexOf(n.showId);return r>-1&&N.showingIds.splice(r,1),!0}show(t){return new Promise((a,n)=>{for(N.close(t);(this.id===-1||N.showingIds.includes(this.id))&&N.showingIds.length!==N.maxDialogId;)this.id=Math.floor(Math.random()*(N.maxDialogId+1));if(this.id===-1){n("[Dialog]: The maximum number of dialogs is reached");return}N.showingIds.push(this.id),N.waitingQueue.set(t,{resolve:a,reject:n,showId:this.id}),_c(t,this.id,this.dialog)}).then(a=>{const{response:n,listItem:r}=a,i=P.decodeFromBuf(a.buffer,t.charset);return Promise.resolve({response:n,listItem:r,inputText:i})}).catch(a=>Promise.reject(a)).finally(()=>N.delDialogTask(t))}static close(t){N.delDialogTask(t,!0),Tn(t.id)}}const[ct]=_({name:"OnPlayerConnect",beforeEach(e){const t=new m(e);return U.set(e,t),N.close(t),{player:t}}}),[_t]=_({name:"OnPlayerDisconnect",beforeEach(e,t){return{player:U.get(e),reason:t}},afterEach({player:e}){U.delete(e.id)}}),[ht]=_({name:"OnPlayerUpdate",beforeEach(e){return{player:m.getInstance(e)}}}),[Rc]=_({name:"OnPlayerTextI18n",identifier:"iai",beforeEach(e,t){const a=m.getInstance(e);return{player:a,text:P.decodeFromBuf(t,a.charset),buffer:t}}}),[Lc]=_({name:"OnPlayerEnterExitModShop",beforeEach(e,t,a){return{player:m.getInstance(e),enterExit:!!t,interior:a}}}),[Oc]=_({name:"OnPlayerClickMap",beforeEach(e,t,a,n){return{player:m.getInstance(e),fX:t,fY:a,fZ:n}}}),[Gc]=_({name:"OnPlayerClickPlayer",beforeEach(e,t,a){return{player:m.getInstance(e),clickedPlayer:m.getInstance(t),source:a}}}),[Fc]=_({name:"OnPlayerDeath",beforeEach(e,t,a){return{player:m.getInstance(e),killer:m.getInstance(t)||T.PLAYER_ID,reason:a}}}),[Bc]=_({name:"OnPlayerGiveDamage",beforeEach(e,t,a,n,r){return{player:m.getInstance(e),damage:m.getInstance(t),amount:a,weapon:n,bodyPart:r}}}),[kc]=_({name:"OnPlayerKeyStateChange",beforeEach(e,t,a){return{player:m.getInstance(e),newKeys:t,oldKeys:a}}}),[Mc]=_({name:"OnPlayerRequestClass",beforeEach(e,t){return{player:m.getInstance(e),classId:t}}}),[xc]=_({name:"OnPlayerRequestSpawn",beforeEach(e){return{player:m.getInstance(e)}}}),[Hc]=_({name:"OnPlayerSpawn",beforeEach(e){return{player:m.getInstance(e)}}}),[Vc]=_({name:"OnPlayerStateChange",beforeEach(e,t,a){return{player:m.getInstance(e),newState:t,oldState:a}}}),[Uc]=_({name:"OnPlayerSteamIn",beforeEach(e,t){return{player:m.getInstance(e),forPlayer:m.getInstance(t)}}}),[Wc]=_({name:"OnPlayerSteamOut",beforeEach(e,t){return{player:m.getInstance(e),forPlayer:m.getInstance(t)}}}),[Kc]=_({name:"OnPlayerTakeDamage",beforeEach(e,t,a,n,r){return{player:m.getInstance(e),damage:m.getInstance(t)||T.PLAYER_ID,amount:a,weapon:n,bodyPart:r}}}),[jc]=_({name:"OnPlayerInteriorChange",beforeEach(e,t,a){return{player:m.getInstance(e),newInteriorId:t,oldInteriorId:a}}}),[Zc]=_({name:"OnPlayerRequestDownload",beforeEach(e,t,a){return{player:m.getInstance(e),type:t,crc:a}}}),[Xc]=_({name:"OnPlayerFinishedDownloading",beforeEach(e,t){return{player:m.getInstance(e),virtualWorld:t}}}),[Yc]=_({name:"OnPlayerWeaponShot",beforeEach(e,t,a,n,r,i,s){return{player:m.getInstance(e),weapon:t,hitType:a,hitId:n,fX:r,fY:i,fZ:s}}});let se=null;const V=new Map,Pe=new Map;function ut(e){if(!e.isConnected()){V.has(e)&&clearInterval(V.get(e));return}let t=Pe.get(e)||1;if(t>=m.MAX_CHECK_ANDROID_DELAY){clearInterval(V.get(e)),Ie(e,!0);return}e.sendClientCheck(72,0,0,2).then(({actionId:a})=>{a===72&&(e[Z].isAndroid=!1,V.has(e)&&clearInterval(V.get(e)),Ie(e,!1))}).catch(()=>{}),t++,Pe.set(e,t)}const[zc,$c]=_({name:"OnPlayerPause",isNative:!1,beforeEach(e,t){return{player:e,pausedAt:t}}}),[Jc,Qc]=_({name:"OnPlayerResume",isNative:!1,beforeEach(e,t,a,n){return{player:e,pausedAt:t,now:a,diff:n}}}),[qc,e_]=_({name:"OnPlayerFpsUpdate",isNative:!1,beforeEach(e,t,a){return{player:e,newFps:t,oldFps:a}}}),[t_,Ie]=_({name:"OnAndroidCheck",isNative:!1,beforeEach(e,t){return{player:e,result:t}}});ct(({player:e,next:t})=>{if(!se&&m.getInstances().length&&(se=setInterval(()=>{m.getInstances().filter(n=>{const r=n.getState()!==Q.NONE;return!n.isPaused&&!n.isNpc()&&r}).forEach(n=>{Date.now()-n.lastUpdateTick>1e3&&(n.isPaused=!0,$c(n,n.lastUpdateTick))})},500)),e.isNpc())return e[Z].isAndroid=!1,t();if(m.SKIP_CHECK_ANDROID)return e[Z].isAndroid=!e.isUsingOfficialClient(),Ie(e,e[Z].isAndroid),t();ut(e);const a=setInterval(()=>ut(e),1e3);return V.set(e,a),t()}),_t(({player:e,next:t})=>(se&&m.getInstances().length<=1&&(clearInterval(se),se=null),V.has(e)&&(clearInterval(V.get(e)),V.delete(e),Pe.delete(e)),t()));function a_(e){if(!m.isConnected(e.id))return;const t=Date.now();if(t-e.lastUpdateFpsTick>=1e3){const a=e.getDrunkLevel();if(a<100){e.setDrunkLevel(2e3),e.lastDrunkLevel=2e3,e.lastFps=0;return}e.lastUpdateFpsTick=t;const n=e.lastFps,r=e.lastDrunkLevel-a-1;e.lastFps=r,e.lastDrunkLevel=a,e_(e,r,n)}}ht(({player:e,next:t})=>{if(!e.isNpc()){const a=Date.now();e.isPaused&&(e.isPaused=!1,Qc(e,e.lastUpdateTick,a,a-e.lastUpdateTick)),e.lastUpdateTick=a,a_(e)}return t()});const q=new Map,ee=new Map,mt=/[^/\s]+/gi,le={NOT_EXIST:{code:1,msg:"command does not exist"},REJECTED:{code:2,msg:"An event registered through onCommandText returned false"},PERFORMED:{code:3,msg:"An event registered through onCommandPerformed returned false"},RECEIVED_THROW:{code:4,msg:"An event registered through onCommandReceived throw an error"},RECEIVED_REJECTED:{code:5,msg:"An event registered through onCommandReceived returned false"}},[n_,r_]=_({name:"OnCommandReceived",isNative:!1,throwOnError:!0,beforeEach(e,t,a,n,r,i,s,l,o){return{player:e,command:t,cmdText:a,buffer:n,strictMainCmd:r,noStrictMainCmd:i,hasStrict:s,hasNoStrict:l,subcommand:o}}}),[i_,s_]=_({name:"OnCommandPerformed",isNative:!1,beforeEach(e,t,a,n,r,i,s,l,o){return{player:e,command:t,cmdText:a,buffer:n,strictMainCmd:r,noStrictMainCmd:i,hasStrict:s,hasNoStrict:l,subcommand:o}}}),[l_,oe]=_({name:"OnCommandError",isNative:!1,defaultValue:!1,beforeEach(e,t,a,n,r,i,s,l,o,c){return{player:e,error:t,command:a,cmdText:n,buffer:r,strictMainCmd:i,noStrictMainCmd:s,hasStrict:l,hasNoStrict:o,subcommand:c}}}),[o_]=_({name:"OnPlayerCommandTextI18n",identifier:"iai",beforeEach(e,t){const a=m.getInstance(e),n=P.decodeFromBuf(t,a.charset);return{player:a,buffer:t,cmdText:n}}});function d_(e){const t=[];let a="";for(let n=0;n<e.length;n++)a+=e[n]+" ",t.push(a.trimEnd());return t.reverse()}o_(({player:e,buffer:t,cmdText:a,next:n})=>{const r=a.match(mt),i=d_(r),s=i.find(E=>q.has(E)),l=i.map(E=>E.toLowerCase()).find(E=>ee.has(E)),o=!!s,c=!!l,u=r.join(" ");let p=[];const g=[[s,q,!0],[l,ee,!1]],y=[u,a,t,s,l,o,c,p];if(o||c){const E=g[0][0]||g[1][0];p=u.replace(E,"").trim().split(" ")}else return oe(e,le.NOT_EXIST,...y);try{if(!r_(e,...y))return oe(e,le.RECEIVED_REJECTED,...y)}catch(E){return oe(e,{...le.RECEIVED_THROW,error:E},...y)}for(const[E,R,G]of g){if(!E)continue;const ae=R.get(E),[,St]=ae;if(!St(e,E,p,a,t,G))return oe(e,le.REJECTED,...y)}return s_(e,u,a,t,s,l,o,c,p)?n():oe(e,le.PERFORMED,...y)});function c_(e,t,a,n,r,i){return{player:e,mainCommand:t,subcommand:a,cmdText:n,buffer:r,isStrict:i}}class x{static caseSensitive=!1;constructor(){}static on(t,a){let n=x.caseSensitive,r,i;typeof t=="string"||t instanceof Array?(r=t,i=a):(r=t.command,i=t.run,typeof t.caseSensitive<"u"&&(n=t.caseSensitive));const s=Array.isArray(r)?r:[r],l=s.find(u=>!u.match(mt));if(l)return console.log(`error command ${l} format`),()=>{};const o=n?q:ee,c=s.map(u=>{const p=u.replaceAll("/",""),g=n?p:p.toLowerCase();if(!o.has(g)){const E=_({name:n?"$"+g:g,isNative:!1,beforeEach:c_});o.set(g,E)}const[y]=o.get(g);return[g,y(i)]});return()=>{c.forEach(u=>{const[p,g]=u;g()===0&&o.delete(p)})}}static off(t){(Array.isArray(t)?t:[t]).forEach(a=>{let n=a.replaceAll("/","");q.has(n)&&(O.has(n)&&O.delete(n),q.has(n)&&q.delete(n)),n=n.toLowerCase(),ee.has(n)&&(O.has(n)&&O.delete(n),ee.has(n)&&ee.delete(n))})}static enableCaseSensitive(){x.caseSensitive=!0}static disableCaseSensitive(){x.caseSensitive=!1}static isCaseSensitive(){return x.caseSensitive}}const Ee=Object.freeze({onConnect:ct,onDisconnect:_t,onPause:zc,onResume:Jc,onUpdate:ht,onText:Rc,onEnterExitModShop:Lc,onClickMap:Oc,onClickPlayer:Gc,onDeath:Fc,onGiveDamage:Bc,onKeyStateChange:kc,onRequestClass:Mc,onRequestSpawn:xc,onSpawn:Hc,onStateChange:Vc,onStreamIn:Uc,onStreamOut:Wc,onTakeDamage:Kc,onInteriorChange:jc,onRequestDownload:Zc,onFinishedDownloading:Xc,onCheckResponse:ot,onCommandReceived:n_,onCommandPerformed:i_,onCommandError:l_,onCommandText:x.on,offCommandText:x.off,onDialogResponse:dt,onLocaleChange:Nc,onCharsetChange:bc,onFpsUpdate:qc,onWeaponShot:Yc,onAndroidCheck:t_}),[pt]=_({name:"OnGameModeInit"}),[gt]=_({name:"OnGameModeExit"}),[__]=_({name:"OnIncomingConnection",beforeEach(e,t,a){return{playerId:e,ipAddress:t,port:a}}}),[h_]=_({name:"OnRconCommandI18n",identifier:"ai",beforeEach(e){return{buffer:e,cmd:P.decodeFromBuf(e)}}}),[u_]=_({name:"OnRconLoginAttemptI18n",identifier:"aiaii",beforeEach(e,t,a){return{ip:P.decodeFromBuf(e),password:P.decodeFromBuf(t),success:!!a,ipBuffer:e,passwordBuffer:t}}}),X=[],te=[],Ae=new Map,Ce=async e=>{try{return await new Promise((t,a)=>{const n=X.findIndex(l=>l.name===e);if(n===-1)return;const r=X[n];function i(l){l.length&&Ae.set(e,l),X.splice(n,1),te.push(r),setTimeout(t)}const s=r.load();s instanceof Promise?s.then(i).catch(a):i(s)})}catch(t){throw new Error(`[GameMode]: script ${e} load fail
3
- err:${t}`)}},Te=async e=>{try{return await new Promise((t,a)=>{const n=te.findIndex(o=>o.name===e);if(n===-1)return;const r=te[n],i=Ae.get(e);i&&(i.forEach(o=>o()),Ae.delete(e));function s(){te.splice(n,1),X.push(r),setTimeout(t)}const l=r.unload();l instanceof Promise?l.then(s).catch(a):s()})}catch(t){throw new Error(`[GameMode]: script ${e} unload fail
4
- ${t}`)}},m_=async e=>{await Te(e),await Ce(e)};pt(async({next:e})=>{const t=X.map(a=>a.name);for(const a of t)await Ce(a);return e()}),gt(async({next:e})=>{const t=te.map(a=>a.name);for(const a of t)await Te(a);return e()});const p_=function(e,...t){if(X.some(a=>a.name===e.name)||te.some(a=>a.name===e.name))throw new Error(`[GameMode]: script ${e.name} has already been applied`);e.load=e.load.bind(e,...t),X.push(e)};class w{constructor(){throw new Error("This is a static class and cannot be instantiated.")}static onInit=pt;static onExit=gt;static onIncomingConnection=__;static onRconCommand=h_;static onRconLoginAttempt=u_;static use(t,...a){return p_(t,...a),this}static loadUseScript=Ce;static reloadUseScript=m_;static unloadUseScript=Te;static enableCmdCaseSensitive=x.enableCaseSensitive;static disableCmdCaseSensitive=x.disableCaseSensitive;static isCmdCaseSensitive=x.isCaseSensitive;static supportAllNickname(){for(let t=0;t<=255;t++)this.isNickNameCharacterAllowed(t)||this.allowNickNameCharacter(t,!0)}static setWeather(t){if(t<0||t>255)throw new Error("[GameMode]: The valid weather value is only 0 to 255");return la(t)}static setWorldTime(t){if(t<0||t>23)throw new Error("[GameMode]: The valid hour value is only 0 to 23");return ra(t)}static getWorldTime=ia;static setTeamCount=wa;static sendRconCommand=pc;static addPlayerClass=ba;static addPlayerClassEx=va;static createExplosion(t,a,n,r,i){if(r<0||r>13)throw new Error("[GameMode]: The valid explosion type value is only 0 to 13");return ca(t,a,n,r,i)}static manualVehicleEngineAndLights=Ds;static blockIpAddress=za;static unBlockIpAddress=$a;static getServerTickRate=ya;static addSimpleModel(t,a,n,r,i){return this.checkSimpleModel(t,a,n,r,i)?Qd(t,a,n,r,i):0}static addSimpleModelTimed(t,a,n,r,i,s,l){return this.checkSimpleModel(t,a,n,r,i,s,l)?qd(t,a,n,r,i,s,l):0}static checkSimpleModel(t,a,n,r,i,s,l){if(t<-1)throw new Error("[GameMode]: AddSimpleModel - Error virtual world");if(a<0)throw new Error("[GameMode]: AddSimpleModel - Error baseId");if(n>-1e3||n<-3e4)throw new Error("[GameMode]: AddSimpleModel - Error newId range");if(r.trim().length<0)throw new Error("[GameMode]: AddSimpleModel - Empty dffName");if(i.trim().length<0)throw new Error("[GameMode]: AddSimpleModel - Empty txdName");if(s!==void 0&&(s<0||s>23))throw new Error("[GameMode]: AddSimpleModel - Error time on range");if(l!==void 0&&(l<0||l>23))throw new Error("[GameMode]: AddSimpleModel - Error time off range");return 1}static isValidCustomModel=Oe;static getCustomModePath=lc;static getConsoleVarAsString(t,a="utf8"){const n=Wt(t);return P.decodeFromBuf(P.getValidStr(n),a)}static getRestartTime=$t;static setRestartTime=zt;static allowAdminTeleport=kt;static isAdminTeleportAllowed=Mt;static allowInteriorWeapons=xt;static areInteriorWeaponsAllowed=Ht;static areAllAnimationsEnabled=Vt;static enableAllAnimations=Ut;static enableStuntBonusForAll=Ia;static enableVehicleFriendlyFire=sa;static enableZoneNames=_a;static disableInteriorEnterExits=ua;static setGameModeText=ta;static getGravity=oa;static setGravity=da;static showNameTags=aa;static disableNameTagLOS=pa;static usePlayerPedAnims=ha;static showPlayerMarkers=na;static limitPlayerMarkerRadius=Sa;static limitGlobalChatRadius=ga;static setNameTagDrawDistance=ma;static findModelFileNameFromCRC=tc;static findTextureFileNameFromCRC=ac;static getWeaponName=Ta;static setObjectsDefaultCameraCollision=Jd;static vectorSize=ue;static clearBanList=qa;static isBanned=en;static isValidNickName=vt;static allowNickNameCharacter=Rt;static isNickNameCharacterAllowed=Lt;static addServerRule=Ot;static setServerRule=Gt;static isValidServerRule=Ft;static removeServerRule=Bt;static getWeaponSlot=Ca;static getAvailableClasses=Ne;static getPlayerClass=Da;static editPlayerClass=Na;static toggleChatTextReplacement=Ea;static chatTextReplacementToggled=Aa;static getConsoleVarAsInt=Kt;static getConsoleVarAsBool=jt;static getWeather=Zt;static getServerRuleFlag=Xt;static setServerRuleFlags=Yt}w.onExit(({next:e})=>(D.npcs.clear(),e()));const[g_]=_({name:"OnNpcConnect",beforeEach(e){return{myPlayerId:e}}}),[S_]=_({name:"OnNpcDisconnect",beforeEach(e){return{reason:e}}}),[f_]=_({name:"OnNpcModeInit"}),[y_]=_({name:"OnNpcModeExit"}),[P_]=_({name:"OnClientMessageI18n",identifier:"iai",beforeEach(e,t){return{color:e,buffer:t,string:P.decodeFromBuf(t)}}}),[I_]=_({name:"OnNPCFinishMove",beforeEach(e){return{npc:D.getInstance(e)}}}),[E_]=_({name:"OnNPCCreate",beforeEach(e){return{npc:D.getInstance(e)}}}),[A_]=_({name:"OnNPCDestroy",beforeEach(e){return{npc:D.getInstance(e)}}}),[C_]=_({name:"OnNPCWeaponStateChange",beforeEach(e,t,a){return{npc:D.getInstance(e),newState:t,oldState:a}}}),[T_]=_({name:"OnNPCTakeDamage",beforeEach(e,t,a,n,r){return{npc:D.getInstance(e),damager:m.getInstance(t),damage:a,weapon:n,bodyPart:r}}}),[D_]=_({name:"OnNPCGiveDamage",beforeEach(e,t,a,n,r){return{npc:D.getInstance(e),damager:m.getInstance(t),damage:a,weapon:n,bodyPart:r}}}),[N_]=_({name:"OnNPCDeath",beforeEach(e,t,a){return{npc:D.getInstance(e),killer:t,reason:a}}}),[w_]=_({name:"OnNpcSpawn",beforeEach(e){return{npc:D.getInstance(e)}}}),b_=Object.freeze({onConnect:g_,onDisconnect:S_,onModeInit:f_,onModeExit:y_,onClientMessage:P_,onFinishMove:I_,onCreate:E_,onDestroy:A_,onWeaponStateChange:C_,onTakeDamage:T_,onGiveDamage:D_,onDeath:N_,onSpawn:w_});w.onExit(({next:e})=>(A.getInstances().forEach(t=>t.destroy()),e()));const[v_]=_({name:"OnVehicleDamageStatusUpdate",beforeEach(e,t){return{vehicle:A.getInstance(e),player:m.getInstance(t)}}}),[R_]=_({name:"OnVehicleDeath",beforeEach(e,t){return{vehicle:A.getInstance(e),killer:m.getInstance(t)}}}),[L_]=_({name:"OnVehicleMod",beforeEach(e,t,a){return{player:m.getInstance(e),vehicle:A.getInstance(t),componentId:a}}}),[O_]=_({name:"OnVehiclePaintjob",beforeEach(e,t,a){return{player:m.getInstance(e),vehicle:A.getInstance(t),paintjobId:a}}}),[G_]=_({name:"OnVehicleRespray",beforeEach(e,t,a,n){return{player:m.getInstance(e),vehicle:A.getInstance(t),color:[a,n]}}}),[F_]=_({name:"OnVehicleSirenStateChange",beforeEach(e,t,a){return{player:m.getInstance(e),vehicle:A.getInstance(t),state:!!a}}}),[B_]=_({name:"OnVehicleSpawn",beforeEach(e){return{vehicle:A.getInstance(e)}}}),[k_]=_({name:"OnVehicleStreamIn",beforeEach(e,t){return{vehicle:A.getInstance(e),forPlayer:m.getInstance(t)}}}),[M_]=_({name:"OnVehicleStreamOut",beforeEach(e,t){return{vehicle:A.getInstance(e),forPlayer:m.getInstance(t)}}}),[x_]=_({name:"OnPlayerEnterVehicle",beforeEach(e,t,a){return{player:m.getInstance(e),vehicle:A.getInstance(t),isPassenger:!!a}}}),[H_]=_({name:"OnPlayerExitVehicle",beforeEach(e,t){return{player:m.getInstance(e),vehicle:A.getInstance(t)}}}),[V_]=_({name:"OnNpcEnterVehicle",beforeEach(e,t){return{vehicle:A.getInstance(e),seatId:t}}}),[U_]=_({name:"OnNpcExitVehicle"}),[W_]=_({name:"OnTrailerUpdate",beforeEach(e,t){return{player:m.getInstance(e),vehicle:A.getInstance(t)}}}),[K_]=_({name:"OnUnoccupiedVehicleUpdate",beforeEach(e,t,a,n,r,i,s,l,o){return{vehicle:A.getInstance(e),player:m.getInstance(t),passengerSeat:a,newX:n,newY:r,newZ:i,velX:s,velY:l,velZ:o}}}),j_=Object.freeze({onDamageStatusUpdate:v_,onDeath:R_,onMod:L_,onPaintjob:O_,onRespray:G_,onSirenStateChange:F_,onSpawn:B_,onStreamIn:k_,onStreamOut:M_,onPlayerEnter:x_,onPlayerExit:H_,onNpcEnter:V_,onNpcExit:U_,onTrailerUpdate:W_,onUnoccupiedUpdate:K_});class Z_{constructor(){throw new Error("This is a static class and cannot be instantiated.")}static getNetworkStats(){return Ya()}static getPlayerNetworkStats(t){return Xa(t.id)}static getBytesReceived(t){return Ba(t.id)}static getBytesSent(t){return Ma(t.id)}static getConnectionStatus(t){return Va(t.id)}static getConnectedTime(t){return Ga(t.id)}static getIpPort(t){return Ua(t.id)}static getMessagesReceived(t){return Fa(t.id)}static getMessagesRecvPerSecond(t){return xa(t.id)}static getMessagesSent(t){return ka(t.id)}static getPacketLossPercent(t){return Ha(t.id)}}class X_{_text;_time;_style;get text(){return this._text}set text(t){this._text=t}get time(){return this._time}set time(t){this._time=t}get style(){return this._style}set style(t){this._style=t}constructor(t,a,n){this._text=t,this._time=a,this._style=n}static hideForAll(t){Qt(t)}static has(t,a){return Ln(t.id,a)}forAll(t="win1252"){Jt(P.encodeToBuf(P.convertSpecialChar(this.text),t),this.time,this.style)}forPlayer(t,a="win1252"){Rn(t.id,P.encodeToBuf(P.convertSpecialChar(this.text),a),this.time,this.style)}hideForPlayer(t){return Gn(t.id,this.style)}}class J{static menus=new Map;_itemCount=0;get itemCount(){return this._itemCount}_id=-1;get id(){return this._id}_title;get title(){return this._title}set title(t){this._title=t}_columns=1;get columns(){return this._columns}set columns(t){if(t!==1&&t!==2)throw new Error("[Menu]: The menu column number interval is between 1 and 2");this._columns=t}_x;get x(){return this._x}set x(t){this._x=t}_y;get y(){return this._y}set y(t){this._y=t}_col1width;get col1width(){return this._col1width}set col1width(t){this._col1width=t}_col2width;get col2width(){return this._col2width}set col2width(t){this._col2width=t}constructor(t,a,n,r,i,s){this._title=t,this.columns=a,this._x=n,this._y=r,this._col1width=i,this._col2width=s}create(){if(this._id!==-1)throw new Error("[Menu]: Cannot be created twice");if(J.getInstances().length===F.MAX_MENUS)throw new Error("[Menu]: The maximum number of menus allowed to be created has been reached 128");return this._id=wl(this.title,this.columns,this.x,this.y,this.col1width,this.col2width),J.menus.set(this._id,this),this}destroy(){if(this._id===-1)throw new Error("[Menu]: Cannot destroy before create");return bl(this.id),J.menus.delete(this._id),this._id=-1,this}addItem(t,a){if(this._id===-1)throw new Error("[Menu]: Cannot addItem before create");if(this._itemCount===F.MAX_MENU_ROW)throw new Error("[Menu]: The maximum number of items allowed to be added has been reached 12");if(t!==0&&t!==1)throw new Error("[Menu]: Wrong number of columns");return vl(this.id,t,a),this._itemCount++,this}setColumnHeader(t,a){if(this._id===-1)throw new Error("[Menu]: Cannot setColumnHeader before create");if(t!==0&&t!==1)throw new Error("[Menu]: Wrong number of columns");return Rl(this.id,t,a),this}disable(){if(this._id===-1)throw new Error("[Menu]: Cannot disable menu before create");return Fl(this.id),this}disableRow(t){if(this._id===-1)throw new Error("[Menu]: Cannot disable row before create");if(t<0||t>this.itemCount-1)throw new Error("[Menu]: Wrong number of rows");Bl(this.id,t)}isValid(){return Gl(this.id)}showForPlayer(t){if(this._id===-1)throw new Error("[Menu]: Cannot show menu before create");return Ll(this.id,t.id)}hideForPlayer(t){if(this._id===-1)throw new Error("[Menu]: Cannot hide menu before create");return Ol(this.id,t.id)}isDisabled(){return this._id===-1?!1:Il(this.id)}isRowDisabled(t){return this._id===-1||t<0||t>this._itemCount?!1:El(this.id,t)}getItems(t){return this._id===-1?0:Al(this.id,t)}getPos(){return this._id===-1?{fX:this.x,fY:this.y}:Cl(this.id)}getColumnWidth(){return this.id===-1?{fColumn1:this.col1width,fColumn2:this.col2width}:Tl(this.id)}getColumnHeader(t){if(this._id===-1)throw new Error("[Menu]: Cannot get column header before create");return Dl(this.id,t)}getItem(t,a){if(this._id===-1)throw new Error("[Menu]: Cannot get item before create");if(a<0||a>this.getItems(t)-1)throw new Error("[Menu]: invalid getItem range");return Nl(this.id,t,a)}static getInstance(t){return this.menus.get(t)}static getInstances(){return[...this.menus.values()]}static getInstanceByPlayer(t){return this.getInstances().find(a=>a.id===kl(t.id))}}w.onExit(({next:e})=>(J.getInstances().forEach(t=>t.destroy()),e()));const[Y_]=_({name:"OnPlayerExitedMenu",beforeEach(e){return{player:m.getInstance(e)}}}),[z_]=_({name:"OnPlayerSelectedMenuRow",beforeEach(e,t){const a=m.getInstance(e),n=J.getInstanceByPlayer(a);return{player:a,menu:n,row:t}}}),$_=Object.freeze({onPlayerExited:Y_,onPlayerSelectedRow:z_});class b{static globalGangZones=new Map;static playerGangZones=new Map;sourceInfo;constructor(t){this.sourceInfo=t}_id=-1;get id(){return this._id}create(){if(this.id!==-1)throw new Error("[GangZone]: Unable to create the gangzone again");const{player:t}=this.sourceInfo;if(t){if(b.getInstances(!1).length===F.MAX_GANG_ZONES)throw new Error("[GangZone]: Unable to continue to create gangzone, maximum allowable quantity has been reached");const{minX:a,minY:n,maxX:r,maxY:i}=this.sourceInfo;this._id=ao(t.id,a,n,r,i);const s=Ee.onDisconnect(({player:l,next:o})=>{o(),l===this.sourceInfo.player&&(this.isValid()&&this.destroy(),s())});b.playerGangZones.set(this.id,this)}else{if(b.getInstances(!0).length===F.MAX_GANG_ZONES)throw new Error("[GangZone]: Unable to continue to create gangzone, maximum allowable quantity has been reached");const{minX:a,minY:n,maxX:r,maxY:i}=this.sourceInfo;this._id=Zl(a,n,r,i),b.globalGangZones.set(this.id,this)}}destroy(){if(this.id===-1)throw new Error("[GangZone]: Unable to destroy the gangzone before create");const{player:t}=this.sourceInfo;t?(no(t.id,this.id),b.playerGangZones.delete(this.id)):(Xl(this.id),b.globalGangZones.delete(this.id)),this._id=-1}showForAll(t){if(this.id===-1)throw new Error("[GangZone]: Unable to show the gangzone before create");if(!this.sourceInfo.player)return zl(this.id,t),this;throw new Error("[GangZone]: player's gangzone should not be show for all.")}showForPlayer(t,a){if(this.id===-1)throw new Error("[GangZone]: Unable to show the gangzone before create");const n=this.sourceInfo.player;if(n)ro(n.id,this.id,I(t));else if(a)Yl(a.id,this.id,t);else throw new Error("[GangZone]: invalid player for show");return this}hideForAll(){if(this.id===-1)throw new Error("[GangZone]: Unable to hide the gangzone before create");if(!this.sourceInfo.player)return Jl(this.id),this;throw new Error("[GangZone]: player's gangzone should not be hide for all.")}hideForPlayer(t){if(this.id===-1)throw new Error("[GangZone]: Unable to hide the gangzone before create");const a=this.sourceInfo.player;if(a)io(a.id,this.id);else if(t)$l(t.id,this.id);else throw new Error("[GangZone]: invalid player for hide");return this}flashForAll(t){if(this.id===-1)throw new Error("[GangZone]: Unable to flash the gangzone before create");if(!this.sourceInfo.player)return ql(this.id,t),this;throw new Error("[GangZone]: player's gangzone should not be flash for all.")}flashForPlayer(t,a){if(this.id===-1)throw new Error("[GangZone]: Unable to flash the gangzone before create");const n=this.sourceInfo.player;if(n)so(n.id,this.id,I(a));else if(t)Ql(t.id,this.id,a);else throw new Error("[GangZone]: invalid player for flash");return this}stopFlashForAll(){if(this.id===-1)throw new Error("[GangZone]: Unable to stop flash the gangzone before create");if(!this.sourceInfo.player)return to(this.id),this;throw new Error("[GangZone]: player's gangzone should not be stop flash for all.")}stopFlashForPlayer(t){if(this.id===-1)throw new Error("[GangZone]: Unable to stop flash the gangzone before create");const a=this.sourceInfo.player;if(a)lo(a.id,this.id);else if(t)eo(t.id,this.id);else throw new Error("[GangZone]: invalid player for flash");return this}isValid(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?oo(t.id,this.id):Ml(this.id)}isPlayerIn(t){if(this.id===-1)return!1;const a=this.sourceInfo.player;return a?co(a.id,this.id):xl(t.id,this.id)}isVisibleForPlayer(t){if(this.id===-1)return!1;const a=this.sourceInfo.player;return a?_o(a.id,this.id):Hl(t.id,this.id)}getColorForPlayer(t){if(this.id===-1)throw new Error("[GangZone]: Unable to get color before create");const a=this.sourceInfo.player;return a?ho(a.id,this.id):Vl(t.id,this.id)}getFlashColorForPlayer(t){if(this.id===-1)throw new Error("[GangZone]: Unable to get flash color before create");const a=this.sourceInfo.player;return a?uo(a.id,this.id):Ul(t.id,this.id)}isFlashingForPlayer(t){if(this.id===-1)return!1;const a=this.sourceInfo.player;return a?mo(a.id,this.id):Wl(t.id,this.id)}getPos(){if(this.id===-1)throw new Error("[GangZone]: Unable to get position before create");const t=this.sourceInfo.player;return t?po(t.id,this.id):Kl(this.id)}useCheck(t){if(this.id===-1)throw new Error("[GangZone]: Unable to use check before create");const a=this.sourceInfo.player;return a?go(a.id,this.id,t):jl(this.id,t),this}static getInstance(t,a){return a?this.globalGangZones.get(t):this.playerGangZones.get(t)}static getInstances(t){return t?[...this.globalGangZones.values()]:[...this.playerGangZones.values()]}}w.onExit(({next:e})=>(b.getInstances(!0).forEach(t=>t.destroy()),b.getInstances(!1).forEach(t=>t.destroy()),e()));const[J_]=_({name:"OnPlayerEnterGangZone",beforeEach(e,t){return{player:m.getInstance(e),gangZone:b.getInstance(t,!0)}}}),[Q_]=_({name:"OnPlayerLeaveGangZone",beforeEach(e,t){return{player:m.getInstance(e),gangZone:b.getInstance(t,!0)}}}),[q_]=_({name:"OnPlayerEnterPlayerGangZone",beforeEach(e,t){return{player:m.getInstance(e),gangZone:b.getInstance(t,!1)}}}),[eh]=_({name:"OnPlayerLeavePlayerGangZone",beforeEach(e,t){return{player:m.getInstance(e),gangZone:b.getInstance(t,!1)}}}),[th]=_({name:"OnPlayerClickGangZone",beforeEach(e,t){return{player:m.getInstance(e),gangZone:b.getInstance(t,!0)}}}),[ah]=_({name:"OnPlayerClickPlayerGangZone",beforeEach(e,t){return{player:m.getInstance(e),gangZone:b.getInstance(t,!1)}}}),nh=Object.freeze({onPlayerEnterGlobal:J_,onPlayerLeaveGlobal:Q_,onPlayerEnterPlayer:q_,onPlayerLeavePlayer:eh,onPlayerClickGlobal:th,onPlayerClickPlayer:ah}),C={skip:!1};w.onInit(({next:e})=>(C.skip=!1,e())),w.onExit(({next:e})=>(C.skip=!0,e()));const[Y]=_({name:"Streamer_OnItemStreamIn",identifier:"iii",beforeEach(e,t,a){return{type:e,id:t,forPlayer:m.getInstance(a)}}}),[z]=_({name:"Streamer_OnItemStreamOut",identifier:"iii",beforeEach(e,t,a){return{type:e,id:t,forPlayer:m.getInstance(a)}}}),[rh]=_({name:"Streamer_OnPluginError",identifier:"s",beforeEach(e){return{error:e}}});class S{constructor(){throw new Error("This is a static class and cannot be instantiated.")}static getTickRate=d.Streamer_GetTickRate;static setTickRate=d.Streamer_SetTickRate;static getPlayerTickRate(t){return d.Streamer_GetPlayerTickRate(t.id)}static setPlayerTickRate(t,a=50){return d.Streamer_SetPlayerTickRate(t.id,a)}static toggleChunkStream=d.Streamer_ToggleChunkStream;static isToggleChunkStream=d.Streamer_IsToggleChunkStream;static getChunkTickRate(t,a=-1){return a instanceof m?d.Streamer_GetChunkTickRate(t,a.id):d.Streamer_GetChunkTickRate(t,a)}static setChunkTickRate(t,a,n=-1){return n instanceof m?d.Streamer_SetChunkTickRate(t,a,n.id):d.Streamer_SetChunkTickRate(t,a,n)}static getChunkSize=d.Streamer_GetChunkSize;static setChunkSize=d.Streamer_SetChunkSize;static getMaxItems=d.Streamer_GetMaxItems;static setMaxItems=d.Streamer_SetMaxItems;static getVisibleItems(t,a=-1){return a instanceof m?d.Streamer_GetVisibleItems(t,a.id):d.Streamer_GetVisibleItems(t,a)}static setVisibleItems(t,a,n=-1){return n instanceof m?d.Streamer_SetVisibleItems(t,a,n.id):d.Streamer_SetVisibleItems(t,a,n)}static getRadiusMultiplier(t,a=-1){return a instanceof m?d.Streamer_GetRadiusMultiplier(t,a.id):d.Streamer_GetRadiusMultiplier(t,a)}static setRadiusMultiplier(t,a,n=-1){return n instanceof m?d.Streamer_SetRadiusMultiplier(t,n.id):d.Streamer_SetRadiusMultiplier(t,a,n)}static getTypePriority=d.Streamer_GetTypePriority;static setTypePriority=d.Streamer_SetTypePriority;static getCellDistance=d.Streamer_GetCellDistance;static setCellDistance=d.Streamer_SetCellDistance;static getCellSize=d.Streamer_GetCellSize;static setCellSize=d.Streamer_SetCellSize;static toggleItemStatic=d.Streamer_ToggleItemStatic;static isToggleItemStatic=d.Streamer_IsToggleItemStatic;static toggleItemInvAreas=d.Streamer_ToggleItemInvAreas;static isToggleItemInvAreas=d.Streamer_IsToggleItemInvAreas;static toggleItemCallbacks=d.Streamer_ToggleItemCallbacks;static isToggleItemCallbacks=d.Streamer_IsToggleItemCallbacks;static toggleErrorCallback=d.Streamer_ToggleErrorCallback;static isToggleErrorCallback=d.Streamer_IsToggleErrorCallback;static amxUnloadDestroyItems=d.Streamer_AmxUnloadDestroyItems;static processActiveItems=d.Streamer_ProcessActiveItems;static toggleIdleUpdate(t,a){return d.Streamer_ToggleIdleUpdate(t.id,a)}static isToggleIdleUpdate(t){return d.Streamer_IsToggleIdleUpdate(t.id)}static toggleCameraUpdate(t,a){return d.Streamer_ToggleCameraUpdate(t.id,a)}static isToggleCameraUpdate(t){return d.Streamer_IsToggleCameraUpdate(t.id)}static toggleItemUpdate(t,a,n){return d.Streamer_ToggleItemUpdate(t.id,a,n)}static isToggleItemUpdate(t,a){return d.Streamer_IsToggleItemUpdate(t.id,a)}static getLastUpdateTime(){return d.Streamer_GetLastUpdateTime()}static update(t,a=-1){return d.Streamer_Update(t.id,a)}static updateEx(t,a,n,r,i,s,l,o,c){return d.Streamer_UpdateEx(t.id,a,n,r,i,s,l,o,c)}static getDistanceToItem=d.Streamer_GetDistanceToItem;static toggleItem(t,a,n,r){return d.Streamer_ToggleItem(t.id,a,n,r)}static isToggleItem(t,a,n){return d.Streamer_IsToggleItem(t.id,a,n)}static toggleAllItems(t,a,n,r=[-1]){return d.Streamer_ToggleAllItems(t.id,a,n,r)}static getItemInternalID(t,a,n){return d.Streamer_GetItemInternalID(t.id,a,n)}static getItemStreamerID(t,a,n){return d.Streamer_GetItemStreamerID(t.id,a,n)}static isItemVisible(t,a,n){return d.Streamer_IsItemVisible(t.id,a,n)}static destroyAllVisibleItems(t,a,n=1){return d.Streamer_DestroyAllVisibleItems(t.id,a,n)}static countVisibleItems(t,a,n=1){return d.Streamer_CountVisibleItems(t.id,a,n)}static destroyAllItems=d.Streamer_DestroyAllItems;static countItems=d.Streamer_CountItems;static getNearbyItems=d.Streamer_GetNearbyItems;static getAllVisibleItems(t,a,n){return d.Streamer_GetAllVisibleItems(t.id,a,n)}static getItemPos=d.Streamer_GetItemPos;static setItemPos=d.Streamer_SetItemPos;static getItemOffset=d.Streamer_GetItemOffset;static setItemOffset=d.Streamer_SetItemOffset;static getFloatData=d.Streamer_GetFloatData;static setFloatData=d.Streamer_SetFloatData;static getIntData=d.Streamer_GetIntData;static setIntData=d.Streamer_SetIntData;static getArrayData=d.Streamer_GetArrayData;static setArrayData=d.Streamer_SetArrayData;static isInArrayData=d.Streamer_IsInArrayData;static appendArrayData=d.Streamer_AppendArrayData;static removeArrayData=d.Streamer_RemoveArrayData;static getArrayDataLength=d.Streamer_GetArrayDataLength;static getUpperBound=d.Streamer_GetUpperBound;static onPluginError=rh}class K{static mapIcons=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerMapIcon]: Unable to create map icon again");let{style:t,streamDistance:a,worldId:n,interiorId:r,playerId:i,areaId:s,priority:l}=this.sourceInfo;const{x:o,y:c,z:u,type:p,color:g,extended:y}=this.sourceInfo;if(p<0||p>63)throw new Error("[StreamerMapIcon]: Invalid map icon type");return t??=d.MapIconStyles.LOCAL,a??=d.StreamerDistances.MAP_ICON_SD,l??=0,y?(typeof n=="number"?n=[-1]:n??=[-1],typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof s=="number"?s=[-1]:s??=[-1],this._id=d.CreateDynamicMapIconEx(o,c,u,p,I(g),t,a,n,r,i,s,l),K.mapIcons.set(this._id,this),this):(Array.isArray(n)?n=-1:n??=-1,Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(s)?s=-1:s??=-1,this._id=d.CreateDynamicMapIcon(o,c,u,p,I(g),n,r,i,a,t,s,l),K.mapIcons.set(this._id,this),this)}destroy(){if(this.id===-1&&!C.skip)throw new Error("[StreamerMapIcon]: Unable to destroy the map icon before create");return C.skip||d.DestroyDynamicMapIcon(this.id),K.mapIcons.delete(this._id),this._id=-1,this}isValid(){return C.skip&&this.id!==-1?!0:d.IsValidDynamicMapIcon(this.id)}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerMapIcon]: Unable to toggle callbacks before create");return S.toggleItemCallbacks(d.StreamerItemTypes.MAP_ICON,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:S.isToggleItemCallbacks(d.StreamerItemTypes.MAP_ICON,this.id)}static togglePlayerUpdate(t,a=!0){return S.toggleItemUpdate(t,d.StreamerItemTypes.MAP_ICON,a)}static hideForPlayer(t,a=-5e4){return S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?S.updateEx(t,n.x,n.y,n.z):S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.mapIcons.get(t)}static getInstances(){return[...this.mapIcons.values()]}}w.onExit(({next:e})=>(K.getInstances().forEach(t=>t.destroy()),e()));const[ih,sh]=_({name:"OnDynamicMapIconStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[lh,oh]=_({name:"OnDynamicMapIconStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});Y(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.MAP_ICON?sh(a,K.getInstance(t)):n()),z(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.MAP_ICON?oh(a,K.getInstance(t)):n());const dh=Object.freeze({onStreamIn:ih,onStreamOut:lh});class W{static pickups=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerPickup]: Unable to create pickup again");let{streamDistance:t,worldId:a,interiorId:n,playerId:r,areaId:i,priority:s}=this.sourceInfo;const{type:l,modelId:o,x:c,y:u,z:p,extended:g}=this.sourceInfo;if(l<0)throw new Error("[StreamerPickup]: Invalid pickup type");return t??=h.StreamerDistances.PICKUP_SD,s??=0,g?(typeof a=="number"?a=[-1]:a??=[-1],typeof n=="number"?n=[-1]:n??=[-1],typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],this._id=h.CreateDynamicPickupEx(o,l,c,u,p,t,a,n,r,i,s)):(Array.isArray(a)?a=-1:a??=-1,Array.isArray(n)?n=-1:n??=-1,Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,this._id=h.CreateDynamicPickup(o,l,c,u,p,a,n,r,t,i,s)),W.pickups.set(this._id,this),this}destroy(){if(this.id===-1&&!C.skip)throw new Error("[StreamerPickup]: Unable to destroy the pickup before create");return C.skip||h.DestroyDynamicPickup(this.id),W.pickups.delete(this.id),this._id=-1,this}isValid(){return C.skip&&this.id!==-1?!0:h.IsValidDynamicPickup(this.id)}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerPickup]: Unable to toggle callbacks before create");return S.toggleItemCallbacks(h.StreamerItemTypes.PICKUP,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:S.isToggleItemCallbacks(h.StreamerItemTypes.PICKUP,this.id)}static togglePlayerUpdate(t,a=!0){return S.toggleItemUpdate(t,h.StreamerItemTypes.PICKUP,a)}static hideForPlayer(t,a=-5e4){return S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?S.updateEx(t,n.x,n.y,n.z):S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.pickups.get(t)}static getInstances(){return[...this.pickups.values()]}}w.onExit(({next:e})=>(W.getInstances().forEach(t=>t.destroy()),e()));const[ch,_h]=_({name:"OnDynamicPickupStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[hh,uh]=_({name:"OnDynamicPickupStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});Y(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.PICKUP?_h(a,W.getInstance(t)):n()),z(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.PICKUP?uh(a,W.getInstance(t)):n());const[mh]=_({name:"OnPlayerPickUpDynamicPickup",identifier:"ii",beforeEach(e,t){return{player:m.getInstance(e),pickup:W.getInstance(t)}}}),ph=Object.freeze({onPlayerPickUp:mh,onStreamIn:ch,onStreamOut:hh});class k{static checkpoints=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerCheckpoint]: Unable to create checkpoint again");let{streamDistance:t,worldId:a,interiorId:n,playerId:r,areaId:i,priority:s}=this.sourceInfo;const{size:l,x:o,y:c,z:u,extended:p}=this.sourceInfo;if(l<0)throw new Error("[StreamerCheckpoint]: Invalid checkpoint size");return t??=d.StreamerDistances.CP_SD,s??=0,p?(typeof a=="number"?a=[-1]:a??=[-1],typeof n=="number"?n=[-1]:n??=[-1],typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],this._id=d.CreateDynamicCPEx(o,c,u,l,t,a,n,r,i,s)):(Array.isArray(a)?a=-1:a??=-1,Array.isArray(n)?n=-1:n??=-1,Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,this._id=d.CreateDynamicCP(o,c,u,l,a,n,r,t,i,s)),k.checkpoints.set(this._id,this),this}destroy(){if(this.id===-1&&!C.skip)throw new Error("[StreamerCheckpoint]: Unable to destroy the checkpoint before create");return C.skip||d.DestroyDynamicCP(this.id),k.checkpoints.delete(this.id),this._id=-1,this}isValid(){return C.skip&&this.id!==-1?!0:d.IsValidDynamicCP(this.id)}togglePlayer(t,a){if(this.id===-1)throw new Error("[StreamerCheckpoint]: Unable to toggle the player before create");return d.TogglePlayerDynamicCP(t.id,this.id,a),this}static togglePlayerAll(t,a){return d.TogglePlayerAllDynamicCPs(t.id,a)}isPlayerIn(t){return this.id===-1?!1:d.IsPlayerInDynamicCP(t.id,this.id)}static getPlayerVisible(t){return k.checkpoints.get(d.GetPlayerVisibleDynamicCP(t.id))}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerCheckpoint]: Unable to toggle callbacks before create");return S.toggleItemCallbacks(d.StreamerItemTypes.CP,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:S.isToggleItemCallbacks(d.StreamerItemTypes.CP,this.id)}static togglePlayerUpdate(t,a=!0){return S.toggleItemUpdate(t,d.StreamerItemTypes.CP,a)}static hideForPlayer(t,a=-5e4){return S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?S.updateEx(t,n.x,n.y,n.z):S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.checkpoints.get(t)}static getInstances(){return[...this.checkpoints.values()]}}w.onExit(({next:e})=>(k.checkpoints.forEach(t=>t.destroy()),e()));const[gh,Sh]=_({name:"OnDynamicCheckPointStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[fh,yh]=_({name:"OnDynamicCheckPointStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});Y(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.CP?Sh(a,k.getInstance(t)):n()),z(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.CP?yh(a,k.getInstance(t)):n());const[Ph]=_({name:"OnPlayerEnterDynamicCP",identifier:"ii",beforeEach(e,t){return{player:m.getInstance(e),cp:k.getInstance(t)}}}),[Ih]=_({name:"OnPlayerLeaveDynamicCP",identifier:"ii",beforeEach(e,t){return{player:m.getInstance(e),cp:k.getInstance(t)}}}),Eh=Object.freeze({onPlayerEnter:Ph,onPlayerLeave:Ih,onStreamIn:gh,onStreamOut:fh});class M{static checkpoints=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerRaceCP]: Unable to create checkpoint again");let{streamDistance:t,worldId:a,interiorId:n,playerId:r,areaId:i,priority:s}=this.sourceInfo;const{type:l,size:o,x:c,y:u,z:p,nextX:g,nextY:y,nextZ:E,extended:R}=this.sourceInfo;if(l<0||l>8)throw new Error("[StreamerRaceCP]: Invalid type");if(o<0)throw new Error("[StreamerRaceCP]: Invalid size");return t??=d.StreamerDistances.RACE_CP_SD,s??=0,R?(typeof a=="number"?a=[-1]:a??=[-1],typeof n=="number"?n=[-1]:n??=[-1],typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],this._id=d.CreateDynamicRaceCPEx(l,c,u,p,g,y,E,o,t,a,n,r,i,s)):(Array.isArray(a)?a=-1:a??=-1,Array.isArray(n)?n=-1:n??=-1,Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,this._id=d.CreateDynamicRaceCP(l,c,u,p,g,y,E,o,a,n,r,t,i,s)),M.checkpoints.set(this._id,this),this}destroy(){if(this.id===-1&&!C.skip)throw new Error("[StreamerRaceCP]: Unable to destroy the checkpoint before create");return C.skip||d.DestroyDynamicCP(this.id),M.checkpoints.delete(this.id),this._id=-1,this}isValid(){return C.skip&&this.id!==-1?!0:d.IsValidDynamicCP(this.id)}togglePlayer(t,a){if(this.id===-1)throw new Error("[StreamerRaceCP]: Unable to toggle the player before create");return d.TogglePlayerDynamicRaceCP(t.id,this.id,a),this}static togglePlayerAll(t,a){return d.TogglePlayerAllDynamicRaceCPs(t.id,a)}isPlayerIn(t){return this.id===-1?!1:d.IsPlayerInDynamicRaceCP(t.id,this.id)}static getPlayerVisible(t){return M.checkpoints.get(d.GetPlayerVisibleDynamicRaceCP(t.id))}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerRaceCP]: Unable to toggle callbacks before create");return S.toggleItemCallbacks(d.StreamerItemTypes.RACE_CP,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:S.isToggleItemCallbacks(d.StreamerItemTypes.RACE_CP,this.id)}static togglePlayerUpdate(t,a=!0){return S.toggleItemUpdate(t,d.StreamerItemTypes.RACE_CP,a)}static hideForPlayer(t,a=-5e4){return S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?S.updateEx(t,n.x,n.y,n.z):S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.checkpoints.get(t)}static getInstances(){return[...this.checkpoints.values()]}}w.onExit(({next:e})=>(M.getInstances().forEach(t=>t.destroy()),e()));const[Ah,Ch]=_({name:"OnDynamicRaceCPStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[Th,Dh]=_({name:"OnDynamicRaceCPStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});Y(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.RACE_CP?Ch(a,M.getInstance(t)):n()),z(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.RACE_CP?Dh(a,M.getInstance(t)):n());const[Nh]=_({name:"OnPlayerEnterDynamicRaceCP",identifier:"ii",beforeEach(e,t){return{player:m.getInstance(e),raceCP:M.getInstance(t)}}}),[wh]=_({name:"OnPlayerLeaveDynamicRaceCP",identifier:"ii",beforeEach(e,t){return{player:m.getInstance(e),raceCp:M.getInstance(t)}}}),bh=Object.freeze({onPlayerEnter:Nh,onPlayerLeave:wh,onStreamIn:Ah,onStreamOut:Th});class H{static actors=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerActor]: Unable to create actor again");let{streamDistance:t,worldId:a,interiorId:n,playerId:r,areaId:i,priority:s}=this.sourceInfo;const{modelId:l,x:o,y:c,z:u,r:p,invulnerable:g,health:y,extended:E}=this.sourceInfo;return t??=h.StreamerDistances.ACTOR_SD,s??=0,E?(typeof a=="number"?a=[0]:a??=[0],typeof n=="number"?n=[-1]:n??=[-1],typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],this._id=h.CreateDynamicActorEx(l,o,c,u,p,g,y,t,a,n,r,i,s)):(Array.isArray(a)?a=0:a??=0,Array.isArray(n)?n=-1:n??=-1,Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,this._id=h.CreateDynamicActor(l,o,c,u,p,g,y,a,n,r,t,i,s)),H.actors.set(this.id,this),this}destroy(){if(this.id===-1&&!C.skip)throw new Error("[StreamerActor]: Unable to destroy the actor before create");return C.skip||h.DestroyDynamicActor(this.id),H.actors.delete(this.id),this._id=-1,this}isValid(){return C.skip&&this.id!==-1?!0:h.IsValidDynamicActor(this.id)}isStreamedIn(t){return this.id===-1?!1:h.IsDynamicActorStreamedIn(this.id,t.id)}getVirtualWorld(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get virtual world before create");return h.GetDynamicActorVirtualWorld(this.id)}setVirtualWorld(t){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set virtual world before create");return h.SetDynamicActorVirtualWorld(this.id,t)}applyAnimation(t,a,n=4.1,r=!1,i=!0,s=!0,l=!1,o=0){if(this.id===-1)throw new Error("[StreamerActor]: Unable to apply animation before create");if(!fe(t,a))throw new Error("[StreamerActor]: Invalid anim library or name");return h.ApplyDynamicActorAnimation(this.id,t,a,n,r,i,s,l,o)}clearAnimations(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to clear animation before create");return h.ClearDynamicActorAnimations(this.id)}getFacingAngle(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get facing angle before create");return h.GetDynamicActorFacingAngle(this.id)}setFacingAngle(t){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set facing angle before create");return h.SetDynamicActorFacingAngle(this.id,t)}getPos(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get pos before create");return h.GetDynamicActorPos(this.id)}setPos(t,a,n){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set pos before create");return h.SetDynamicActorPos(this.id,t,a,n)}getHealth(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get health before create");return h.GetDynamicActorHealth(this.id)}setHealth(t){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set health before create");return h.SetDynamicActorHealth(this.id,t)}isInvulnerable(){return this.id===-1?!1:h.IsDynamicActorInvulnerable(this.id)}setInvulnerable(t=!0){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set invulnerable before create");return h.SetDynamicActorInvulnerable(this.id,t)}getPlayerTarget(t){if(this.id===-1)return;const a=h.GetPlayerTargetDynamicActor(t.id);return H.actors.get(a)}getPlayerCameraTarget(t){if(this.id===-1)return;const a=h.GetPlayerCameraTargetDynActor(t.id);return H.actors.get(a)}getSkin(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get skin before create");return Bi(this.id)}setSkin(t,a=!1){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set skin before create");return!a&&(t<0||t>311||t===74)?0:ki(this.id,t)}getSpawnInfo(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get spawn info before create");return Mi(this.id)}getAnimation(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get animation before create");return h.GetDynamicActorAnimation(this.id)}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerActor]: Unable to toggle callbacks before create");return S.toggleItemCallbacks(h.StreamerItemTypes.ACTOR,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:S.isToggleItemCallbacks(h.StreamerItemTypes.ACTOR,this.id)}static togglePlayerUpdate(t,a=!0){return S.toggleItemUpdate(t,h.StreamerItemTypes.ACTOR,a)}static hideForPlayer(t,a=-5e4){return S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?S.updateEx(t,n.x,n.y,n.z):S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.actors.get(t)}static getInstances(){return[...this.actors.values()]}}w.onExit(({next:e})=>(H.getInstances().forEach(t=>t.destroy()),e()));const[vh]=_({name:"OnDynamicActorStreamIn",identifier:"ii",beforeEach(e,t){return{actor:H.getInstance(e),forPlayer:m.getInstance(t)}}}),[Rh]=_({name:"OnDynamicActorStreamOut",identifier:"ii",beforeEach(e,t){return{actor:H.getInstance(e),forPlayer:m.getInstance(t)}}}),[Lh]=_({name:"OnPlayerGiveDamageDynamicActor",identifier:"iiiii",beforeEach(e,t,a,n,r){return{player:m.getInstance(e),actor:H.getInstance(t),amount:a,weapon:n,bodyPart:r}}}),Oh=Object.freeze({onStreamIn:vh,onStreamOut:Rh,onPlayerGiveDamage:Lh});class ${static texts=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[Streamer3DTextLabel]: Unable to create again");let{attachedPlayer:t,attachedVehicle:a,testLos:n,streamDistance:r,worldId:i,interiorId:s,playerId:l,areaId:o,priority:c}=this.sourceInfo;const{charset:u,text:p,color:g,drawDistance:y,x:E,y:R,z:G,extended:ae}=this.sourceInfo;return t??=T.PLAYER_ID,a??=T.VEHICLE_ID,r??=d.StreamerDistances.TEXT_3D_LABEL_SD,n??=!1,c??=0,ae?(typeof i=="number"?i=[-1]:i??=[-1],typeof s=="number"?s=[-1]:s??=[-1],typeof l=="number"?l=[-1]:l??=[-1],typeof o=="number"?o=[-1]:o??=[-1],this._id=Sc(p,I(g),E,R,G,y,t,a,n,r,i,s,l,o,c,u||"utf8")):(Array.isArray(i)?i=-1:i??=-1,Array.isArray(s)?s=-1:s??=-1,Array.isArray(l)?l=-1:l??=-1,Array.isArray(o)?o=-1:o??=-1,this._id=gc(u||"utf8",p,I(g),E,R,G,y,t,a,n,i,s,l,r,o,c)),$.texts.set(this.id,this),this}destroy(){if(this.id===-1&&!C.skip)throw new Error("[Streamer3DTextLabel]: Unable to destroy before create");return C.skip||d.DestroyDynamic3DTextLabel(this.id),$.texts.delete(this.id),this._id=-1,this}isValid(){return C.skip&&this.id!==-1?!0:d.IsValidDynamic3DTextLabel(this.id)}getColor(){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Unable to get color before create");return this.sourceInfo.color}getCharset(){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Unable to get charset before create");return this.sourceInfo.charset}getText(){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Unable to get text before create");return yc(this.id,this.sourceInfo.charset||"utf8")}updateText(t,a,n=this.sourceInfo.charset){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Unable to update text before create");return this.sourceInfo.charset=n,fc(this.id,I(t),a,n||"utf8")}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Unable to toggle callbacks before create");return S.toggleItemCallbacks(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:S.isToggleItemCallbacks(d.StreamerItemTypes.TEXT_3D_LABEL,this.id)}setOffsets(t,a,n){if(this.id===-1)return 0;const r=S.setFloatData(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,d.E_STREAMER.ATTACH_OFFSET_X,t);return S.setFloatData(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,d.E_STREAMER.ATTACH_OFFSET_Y,a),S.setFloatData(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,d.E_STREAMER.ATTACH_OFFSET_Z,n),this.sourceInfo.x=t,this.sourceInfo.y=a,this.sourceInfo.z=n,r}attachToPlayer(t,a,n,r){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Cannot attachToPlayer before created");const i=typeof t=="number"?t:t.id,s=S.setIntData(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,d.E_STREAMER.ATTACHED_PLAYER,i);return i!==T.PLAYER_ID&&this.setOffsets(a,n,r),this.sourceInfo.attachedPlayer=i,s}attachToVehicle(t,a,n,r){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Cannot attachToVehicle before created");const i=typeof t=="number"?t:t.id,s=S.setIntData(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,d.E_STREAMER.ATTACHED_VEHICLE,i);return i!==T.VEHICLE_ID&&this.setOffsets(a,n,r),this.sourceInfo.attachedVehicle=i,s}static togglePlayerUpdate(t,a=!0){return S.toggleItemUpdate(t,d.StreamerItemTypes.TEXT_3D_LABEL,a)}static hideForPlayer(t,a=-5e4){return S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?S.updateEx(t,n.x,n.y,n.z):S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.texts.get(t)}static getInstances(){return[...this.texts.values()]}}w.onExit(({next:e})=>($.getInstances().forEach(t=>t.destroy()),e()));const[Gh,Fh]=_({name:"OnDynamic3dTextStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[Bh,kh]=_({name:"OnDynamic3dTextStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});Y(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.TEXT_3D_LABEL?Fh(a,$.getInstance(t)):n()),z(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.TEXT_3D_LABEL?kh(a,$.getInstance(t)):n());const Mh=Object.freeze({onStreamIn:Gh,onStreamOut:Bh});class L{static objects=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerObject]: Unable to create object again");let{streamDistance:t,drawDistance:a,worldId:n,interiorId:r,playerId:i,areaId:s,priority:l}=this.sourceInfo;const{modelId:o,x:c,y:u,z:p,rx:g,ry:y,rz:E,extended:R}=this.sourceInfo;return t??=h.StreamerDistances.OBJECT_SD,a??=h.StreamerDistances.OBJECT_DD,l??=0,R?(typeof n=="number"?n=[-1]:n??=[-1],typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof s=="number"?s=[-1]:s??=[-1],this._id=h.CreateDynamicObjectEx(o,c,u,p,g,y,E,t,a,n,r,i,s,l)):(Array.isArray(n)?n=-1:n??=-1,Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(s)?s=-1:s??=-1,this._id=h.CreateDynamicObject(o,c,u,p,g,y,E,n,r,i,t,a,s,l)),L.objects.set(this._id,this),this}destroy(){if(this.id===-1&&!C.skip)throw new Error("[StreamerObject]: Unable to destroy the object before create");return C.skip||h.DestroyDynamicObject(this.id),L.objects.delete(this.id),this._id=-1,this}isValid(){return C.skip&&this.id!==-1?!0:h.IsValidDynamicObject(this.id)}getModel(){return this.sourceInfo.modelId}getPos(){if(this.id===-1)throw new Error("[StreamerObject]: Cannot get position before create");return h.GetDynamicObjectPos(this.id)}setPos(t,a,n){if(this.id===-1)throw new Error("[StreamerObject]: Cannot set position before create");return h.SetDynamicObjectPos(this.id,t,a,n)}getRot(){if(this.id===-1)throw new Error("[StreamerObject]: Cannot get rotation before create");return h.GetDynamicObjectRot(this.id)}setRot(t,a,n){if(this.id===-1)throw new Error("[StreamerObject]: Cannot set rotation before create");return h.SetDynamicObjectRot(this.id,t,a,n)}move(t,a,n,r,i=-1e3,s=-1e3,l=-1e3){if(this.id===-1)throw new Error("[StreamerObject]: Cannot start moving before create");if(r<0)throw new Error("[StreamerObject]: speed must not be less than 0");if(r>120*1e3)throw new Error("[StreamerObject]: speed more than 120 seconds, warn if it's not intentional");return this.isMoving()&&this.stop(),h.MoveDynamicObject(this.id,t,a,n,r,i,s,l)}stop(){if(this.id===-1)throw new Error("[StreamerObject]: Cannot stop moving before create");return h.StopDynamicObject(this.id)}isMoving(){return this.id===-1?!1:h.IsDynamicObjectMoving(this.id)}attachCamera(t){if(this.id===-1||t.id===-1)throw new Error("[StreamerObject]: Cannot attachCamera before both are created");return h.AttachCameraToDynamicObject(t.id,this.id)}attachToObject(t,a,n,r,i,s,l,o=!0){if(this.id===-1||t.id===-1)throw new Error("[StreamerObject]: Cannot attachToObject before both are created");return h.AttachDynamicObjectToObject(this.id,t.id,a,n,r,i,s,l,o)}attachToPlayer(t,a,n,r,i,s,l){if(this.id===-1||t.id===-1)throw new Error("[StreamerObject]: Cannot attachToPlayer before both are created");return h.AttachDynamicObjectToPlayer(this.id,t.id,a,n,r,i,s,l)}attachToVehicle(t,a,n,r,i,s,l){if(this.id===-1||t.id===-1)throw new Error("[StreamerObject]: Cannot attachToVehicle before both are created");return h.AttachDynamicObjectToVehicle(this.id,t.id,a,n,r,i,s,l)}edit(t){if(this.id===-1)throw new Error("[StreamerObject]: Unable to edit before create");return t.endObjectEditing(),h.EditDynamicObject(t.id,this.id)}isMaterialUsed(t){return this.id===-1?!1:h.IsDynamicObjectMaterialUsed(this.id,t)}removeMaterial(t){return this.id===-1||!this.isMaterialUsed(t)?0:h.RemoveDynamicObjectMaterial(this.id,t)}getMaterial(t,a,n){if(this.id===-1)throw new Error("[StreamerObject]: Unable to get material before create");return h.GetDynamicObjectMaterial(this.id,t,a,n)}setMaterial(t,a,n,r,i="#000"){if(this.id===-1)throw new Error("[StreamerObject]: Unable to set material before create");return h.SetDynamicObjectMaterial(this.id,t,a,n,r,I(i))}isMaterialTextUsed(t){return this.id===-1?!1:h.IsDynamicObjectMaterialTextUsed(this.id,t)}removeMaterialText(t){return this.isMaterialTextUsed(t)?h.RemoveDynamicObjectMaterialText(this.id,t):0}getMaterialText(t){if(this.id===-1)throw new Error("[StreamerObject]: Unable to get material text before create");return Ic(this.id,t,this.sourceInfo.charset||"utf8")}setMaterialText(t=this.sourceInfo.charset,a,n,r=h.MaterialTextSizes.SIZE_256x128,i="Arial",s=24,l=1,o="#fff",c="#000",u=0){if(this.id===-1)throw new Error("[StreamerObject]: Unable to set material text before create");return this.sourceInfo.charset=t,Pc(t||"utf8",this.id,a,n,r,i,s,l,I(o),I(c),u)}getPlayerCameraTarget(t){const a=h.GetPlayerCameraTargetDynObject(t.id);if(a!==T.OBJECT_ID)return L.objects.get(a)}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerObject]: Unable to toggle callbacks before create");return S.toggleItemCallbacks(h.StreamerItemTypes.OBJECT,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:S.isToggleItemCallbacks(h.StreamerItemTypes.OBJECT,this.id)}setNoCameraCollision(){return h.SetDynamicObjectNoCameraCol(this.id)}getNoCameraCollision(){return h.GetDynamicObjectNoCameraCol(this.id)}static togglePlayerUpdate(t,a=!0){return S.toggleItemUpdate(t,h.StreamerItemTypes.OBJECT,a)}static hideForPlayer(t,a=-5e4){return S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?S.updateEx(t,n.x,n.y,n.z):S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.objects.get(t)}static getInstances(){return[...this.objects.values()]}}w.onExit(({next:e})=>(L.getInstances().forEach(t=>t.destroy()),e()));const[xh,Hh]=_({name:"OnDynamicObjectStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[Vh,Uh]=_({name:"OnDynamicObjectStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});Y(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.OBJECT?Hh(a,L.getInstance(t)):n()),z(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.OBJECT?Uh(a,L.getInstance(t)):n());const[Wh]=_({name:"OnDynamicObjectMoved",identifier:"i",beforeEach(e){return{object:L.getInstance(e)}}}),[Kh]=_({name:"OnPlayerEditDynamicObject",identifier:"iiiiiiiii",beforeEach(e,t,a,n,r,i,s,l,o){return{player:m.getInstance(e),object:L.getInstance(t),response:a,x:n,y:r,z:i,rX:s,rY:l,rZ:o}}}),[jh]=_({name:"OnPlayerSelectDynamicObject",identifier:"iiiiii",beforeEach(e,t,a,n,r,i){return{player:m.getInstance(e),object:L.getInstance(t),modelId:a,x:n,y:r,z:i}}}),[Zh]=_({name:"OnPlayerShootDynamicObject",identifier:"iiiiii",beforeEach(e,t,a,n,r,i){return{player:m.getInstance(e),object:L.getInstance(a),weapon:t,x:n,y:r,z:i}}}),[Xh]=_({name:"OnPlayerEditAttachedObject",beforeEach(e,t,a,n,r,i,s,l,o,c,u,p,g,y){return{player:m.getInstance(e),response:t,index:a,modelId:n,boneId:r,fOffsetX:i,fOffsetY:s,fOffsetZ:l,fRotX:o,fRotY:c,fRotZ:u,fScaleX:p,fScaleY:g,fScaleZ:y}}}),Yh=Object.freeze({onMoved:Wh,onPlayerEdit:Kh,onPlayerSelect:jh,onPlayerShoot:Zh,onPlayerEditAttached:Xh,onStreamIn:xh,onStreamOut:Vh});class v{static areas=new Map;sourceInfo;_id=-1;get type(){return this.sourceInfo.type}get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerArea]: Unable to create area again");let{worldId:t,interiorId:a,playerId:n}=this.sourceInfo;const{type:r,extended:i}=this.sourceInfo;if(i)if(typeof t=="number"?t=[-1]:t??=[-1],typeof a=="number"?a=[-1]:a??=[-1],typeof n=="number"?n=[-1]:n??=[-1],r==="circle"){const{x:s,y:l,size:o}=this.sourceInfo;if(o<0)throw new Error("[StreamerArea]: Invalid circle extend size");this._id=h.CreateDynamicCircleEx(s,l,o,t,a,n)}else if(r==="cuboid"){const{minX:s,minY:l,minZ:o,maxX:c,maxY:u,maxZ:p}=this.sourceInfo;this._id=h.CreateDynamicCuboidEx(s,l,o,c,u,p,t,a,n)}else if(r==="cylinder"){const{x:s,y:l,minZ:o,maxZ:c,size:u}=this.sourceInfo;if(u<0)throw new Error("[StreamerArea]: Invalid cylinder extend size");this._id=h.CreateDynamicCylinderEx(s,l,o,c,u,t,a,n)}else if(r==="polygon"){const{points:s,minZ:l,maxZ:o}=this.sourceInfo;if(s.length%2!==0)throw new Error("[StreamerArea]: Unable to create polygon extended with asymmetrical points");this._id=h.CreateDynamicPolygonEx(s,l,o,t,a,n)}else if(r==="rectangle"){const{minX:s,minY:l,maxX:o,maxY:c}=this.sourceInfo;this._id=h.CreateDynamicRectangleEx(s,l,o,c,t,a,n)}else{const{x:s,y:l,z:o,size:c}=this.sourceInfo;if(c<0)throw new Error("[StreamerArea]: Invalid sphere extended size");this._id=h.CreateDynamicSphereEx(s,l,o,c,t,a,n)}else if(Array.isArray(t)?t=-1:t??=-1,Array.isArray(a)?a=-1:a??=-1,Array.isArray(n)?n=-1:n??=-1,r==="circle"){const{x:s,y:l,size:o}=this.sourceInfo;if(o<0)throw new Error("[StreamerArea]: Invalid circle size");this._id=h.CreateDynamicCircle(s,l,o,t,a,n)}else if(r==="cuboid"){const{minX:s,minY:l,minZ:o,maxX:c,maxY:u,maxZ:p}=this.sourceInfo;this._id=h.CreateDynamicCuboid(s,l,o,c,u,p,t,a,n)}else if(r==="cylinder"){const{x:s,y:l,minZ:o,maxZ:c,size:u}=this.sourceInfo;if(u<0)throw new Error("[StreamerArea]: Invalid cylinder size");this._id=h.CreateDynamicCylinder(s,l,o,c,u,t,a,n)}else if(r==="polygon"){const{points:s,minZ:l,maxZ:o}=this.sourceInfo;if(s.length%2!==0)throw new Error("[StreamerArea]: Unable to create polygon with asymmetrical points");this._id=h.CreateDynamicPolygon(s,l,o,t,a,n)}else if(r==="rectangle"){const{minX:s,minY:l,maxX:o,maxY:c}=this.sourceInfo;this._id=h.CreateDynamicRectangle(s,l,o,c,t,a,n)}else{const{x:s,y:l,z:o,size:c}=this.sourceInfo;if(c<0)throw new Error("[StreamerArea]: Invalid sphere size");this._id=h.CreateDynamicSphere(s,l,o,c,t,a,n)}return v.areas.set(this._id,this),this}destroy(){if(this.id===-1&&!C.skip)throw new Error("[StreamerArea]: Unable to destroy the area before create");return C.skip||h.DestroyDynamicArea(this.id),v.areas.delete(this.id),this._id=-1,this}isValid(){return C.skip&&this.id!==-1?!0:h.IsValidDynamicArea(this.id)}getType(){if(this.id!==-1)throw new Error("[StreamerArea]: Unable to get type before create");return h.GetDynamicAreaType(this.id)}getPolygonPoints(){if(this.id!==-1)throw new Error("[StreamerArea]: Unable to getPolygonPoints before create");if(this.type!=="polygon")throw new Error("[StreamerArea]: getPolygonPoints invalid area type");return h.GetDynamicPolygonPoints(this.id)}getPolygonNumberPoints(){if(this.id!==-1)throw new Error("[StreamerArea]: Unable to getPolygonNumberPoints number before create");if(this.type!=="polygon")throw new Error("[StreamerArea]: getPolygonNumberPoints invalid area type");return h.GetDynamicPolygonNumberPoints(this.id)}isPlayerIn(t,a=!1){return this.id===-1?!1:h.IsPlayerInDynamicArea(t.id,this.id,a)}static isPlayerInAny(t,a=!1){return h.IsPlayerInAnyDynamicArea(t.id,a)}isAnyPlayerIn(t=!1){return this.id===-1?!1:h.IsAnyPlayerInDynamicArea(this.id,t)}static isAnyPlayerInAny(t=!1){return h.IsAnyPlayerInAnyDynamicArea(t)}static getPlayerAreas(t){return v.getPlayerAreasNumber(t)?h.GetPlayerDynamicAreas(t.id).map(a=>v.areas.get(a)):[]}static getPlayerAreasNumber(t){return h.GetPlayerNumberDynamicAreas(t.id)}isPointIn(t,a,n){return this.id===-1?!1:h.IsPointInDynamicArea(this.id,t,a,n)}static isPointInAny(t,a,n){return h.IsPointInAnyDynamicArea(t,a,n)}isLineIn(t,a,n,r,i,s){return this.id===-1?!1:h.IsLineInDynamicArea(this.id,t,a,n,r,i,s)}static isLineInAny(t,a,n,r,i,s){return h.IsLineInAnyDynamicArea(t,a,n,r,i,s)}static getForPoint(t,a,n){return v.getNumberForPoint(t,a,n)?h.GetDynamicAreasForPoint(t,a,n).map(r=>v.getInstance(r)):[]}static getNumberForPoint(t,a,n){return h.GetNumberDynamicAreasForPoint(t,a,n)}static getForLine(t,a,n,r,i,s){return v.getNumberForLine(t,a,n,r,i,s)?h.GetDynamicAreasForLine(t,a,n,r,i,s).map(l=>v.areas.get(l)):[]}static getNumberForLine(t,a,n,r,i,s){return h.GetNumberDynamicAreasForLine(t,a,n,r,i,s)}attachToObject(t,a=0,n=0,r=0){if(this.id===-1||t.id===-1)throw new Error("[StreamerArea]: Unable to toggle attach to object before create");return h.AttachDynamicAreaToObject(this.id,t.id,h.StreamerObjectTypes.DYNAMIC,T.PLAYER_ID,a,n,r)}attachToPlayer(t,a=0,n=0,r=0){if(this.id===-1||t.id===-1)throw new Error("[StreamerArea]: Unable to toggle attach to player before create");return h.AttachDynamicAreaToPlayer(this.id,t.id,a,n,r)}attachToVehicle(t,a=0,n=0,r=0){if(this.id===-1||t.id===-1)throw new Error("[StreamerArea]: Unable to toggle attach to vehicle before create");return h.AttachDynamicAreaToVehicle(this.id,t.id,a,n,r)}toggleSpectateMode(t){if(this.id===-1)throw new Error("[StreamerArea]: Unable to toggle specate mode before create");return h.ToggleDynAreaSpectateMode(this.id,t)}isToggleSpectateMode(){return this.id===-1?!1:h.IsToggleDynAreaSpectateMode(this.id)}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerArea]: Unable to toggle callbacks before create");return S.toggleItemCallbacks(h.StreamerItemTypes.AREA,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:S.isToggleItemCallbacks(h.StreamerItemTypes.AREA,this.id)}static togglePlayerUpdate(t,a=!0){return S.toggleItemUpdate(t,h.StreamerItemTypes.AREA,a)}static hideForPlayer(t,a=-5e4){return S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?S.updateEx(t,n.x,n.y,n.z):S.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.areas.get(t)}static getInstances(){return[...this.areas.values()]}}w.onExit(({next:e})=>(v.getInstances().forEach(t=>t.destroy()),e()));const[zh,$h]=_({name:"OnDynamicAreaStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[Jh,Qh]=_({name:"OnDynamicAreaStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});Y(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.AREA?$h(a,v.getInstance(t)):n()),z(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.AREA?Qh(a,v.getInstance(t)):n());const[qh]=_({name:"OnPlayerEnterDynamicArea",identifier:"ii",beforeEach(e,t){return{player:m.getInstance(e),area:v.getInstance(t)}}}),[eu]=_({name:"OnPlayerLeaveDynamicArea",identifier:"ii",beforeEach(e,t){return{player:m.getInstance(e),area:v.getInstance(t)}}}),tu=Object.freeze({onStreamIn:zh,onStreamOut:Jh,onPlayerEnter:qh,onPlayerLeave:eu});class f{static globalTextDraws=new Map;static playerTextDraws=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[TextDraw]: Unable to create the textdraw again");const{x:t,y:a,text:n,player:r,charset:i="iso-8859-1"}=this.sourceInfo,s=P.encodeToBuf(P.convertSpecialChar(n),i);if(r){if(f.getInstances(!1).length===F.MAX_TEXT_DRAWS)throw new Error("[TextDraw]: Unable to continue to create textdraw, maximum allowable quantity has been reached");this._id=wd(r.id,t,a,s);const l=Ee.onDisconnect(({player:o,next:c})=>{const u=c();return o===r&&(this.isValid()&&this.destroy(),l()),u});f.playerTextDraws.set(this.id,this)}else{if(f.getInstances(!0).length===F.MAX_TEXT_DRAWS)throw new Error("[TextDraw]: Unable to continue to create textdraw, maximum allowable quantity has been reached");this._id=Mo(t,a,s),f.globalTextDraws.set(this.id,this)}return this}destroy(){this.id===-1&&f.beforeCreateWarn("destroy the textdraw");const{player:t}=this.sourceInfo;return t?(bd(t.id,this.id),f.playerTextDraws.delete(this.id)):(xo(this.id),f.globalTextDraws.delete(this.id)),this._id=-1,this}setFont(t){if(this.id===-1)return f.beforeCreateWarn("set font"),this;const{player:a}=this.sourceInfo;return a?xd(a.id,this.id,t):zo(this.id,t),this}setColor(t){if(this.id===-1)return f.beforeCreateWarn("set color"),this;const{player:a}=this.sourceInfo;return a?Od(a.id,this.id,t):Wo(this.id,t),this}setBoxColors(t){if(this.id===-1)return f.beforeCreateWarn("set box color"),this;const{player:a}=this.sourceInfo;return a?Fd(a.id,this.id,t):jo(this.id,t),this}setBackgroundColors(t){if(this.id===-1)return f.beforeCreateWarn("set background color"),this;const{player:a}=this.sourceInfo;return a?Md(a.id,this.id,t):Yo(this.id,t),this}setAlignment(t){if(this.id===-1)return f.beforeCreateWarn("set alignment"),this;const{player:a}=this.sourceInfo;return a?Ld(a.id,this.id,t):Uo(this.id,t),this}setLetterSize(t,a){if(this.id===-1)return f.beforeCreateWarn("set letter size"),this;const{player:n}=this.sourceInfo;return n?vd(n.id,this.id,t,a):Ho(this.id,t,a),this}setOutline(t){if(this.id===-1)return f.beforeCreateWarn("set outline model"),this;if(t<0)throw new Error("[TextDraw]: Invalid outline value");const{player:a}=this.sourceInfo;return a?kd(a.id,this.id,t):Xo(this.id,t),this}setPreviewModel(t){if(this.id===-1)return f.beforeCreateWarn("set preview model"),this;this.setFont(ie.MODEL_PREVIEW);const{player:a}=this.sourceInfo;return a?jd(a.id,this.id,t):nd(this.id,t),this}setPreviewRot(t,a,n,r=1){if(this.id===-1)return f.beforeCreateWarn("set preview rot"),this;this.setFont(ie.MODEL_PREVIEW);const{player:i}=this.sourceInfo;return i?Zd(i.id,this.id,t,a,n,r):rd(this.id,t,a,n,r),this}setPreviewVehColors(t,a){if(this.id===-1)return f.beforeCreateWarn("set preview veh col"),this;this.setFont(ie.MODEL_PREVIEW);const{player:n}=this.sourceInfo;return n?Xd(n.id,this.id,t,a):id(this.id,t,a),this}setProportional(t=!0){if(this.id===-1)return f.beforeCreateWarn("set Proportional"),this;const{player:a}=this.sourceInfo;return a?Hd(a.id,this.id,t):$o(this.id,t),this}setSelectable(t){if(this.id===-1)return f.beforeCreateWarn("set Selectable"),this;const{player:a}=this.sourceInfo;return a?Vd(a.id,this.id,t):Jo(this.id,t),this}setShadow(t){if(this.id===-1)return f.beforeCreateWarn("set shadow"),this;if(t<0)throw new Error("[TextDraw]: Invalid shadow value");const{player:a}=this.sourceInfo;return a?Bd(a.id,this.id,t):Zo(this.id,t),this}setString(t,a){if(this.id===-1)return f.beforeCreateWarn("set string"),this;if(t.length===0||t.length>1024)throw new Error("[TextDraw]: Invalid text length");const{player:n,charset:r="iso-8859-1"}=this.sourceInfo,i=P.encodeToBuf(P.convertSpecialChar(t),r);return n?Kd(n.id,this.id,i):a?ko(this.id,a.id,i):ad(this.id,i),this}setTextSize(t,a){if(this.id===-1)return f.beforeCreateWarn("set TextSize"),this;const{player:n}=this.sourceInfo;return n?Rd(n.id,this.id,t,a):Vo(this.id,t,a),this}useBox(t){if(this.id===-1)return f.beforeCreateWarn("set TextSize"),this;const{player:a}=this.sourceInfo;return a?Gd(a.id,this.id,t):Ko(this.id,t),this}static beforeCreateWarn(t){throw new Error(`[TextDraw]: Unable to ${t} before create`)}show(t){if(this.id===-1)return f.beforeCreateWarn("show"),this;const a=this.sourceInfo.player;if(a)Ud(a.id,this.id);else if(t)Qo(t.id,this.id);else throw new Error("[TextDraw]: invalid player for show");return this}hide(t){if(this.id===-1)return f.beforeCreateWarn("hide"),this;const a=this.sourceInfo.player;if(a)Wd(a.id,this.id);else if(t)qo(t.id,this.id);else throw new Error("[TextDraw]: invalid player for hide");return this}showAll(){if(this.id===-1)return f.beforeCreateWarn("show"),this;if(!this.sourceInfo.player)return ed(this.id),this;throw new Error("[TextDraw]: player's textdraw should not be show for all.")}hideAll(){if(this.id===-1)return f.beforeCreateWarn("hideAll"),this;if(!this.sourceInfo.player)return td(this.id),this;throw new Error("[TextDraw]: player's textdraw should not be hide for all.")}isValid(){const t=this.sourceInfo.player;return t?od(t.id,this.id):So(this.id)}isVisibleForPlayer(t){if(this.id===-1)return!1;const{player:a}=this.sourceInfo;return a?dd(a.id,this.id):t?fo(t.id,this.id):!1}getString(){if(this.id===-1)return this.sourceInfo.text;const t=this.sourceInfo.player;return t?cd(t.id,this.id):yo(this.id)}setPos(t,a){if(this.id===-1)return f.beforeCreateWarn("set position"),this;const n=this.sourceInfo.player;return n?_d(n.id,this.id,t,a):Po(this.id,t,a),this}getLetterSize(){if(this.id===-1)return f.beforeCreateWarn("get letter size");const t=this.sourceInfo.player;return t?hd(t.id,this.id):Io(this.id)}getTextSize(){if(this.id===-1)return f.beforeCreateWarn("get text size");const t=this.sourceInfo.player;return t?ud(t.id,this.id):Eo(this.id)}getPos(){if(this.id===-1)return f.beforeCreateWarn("get position");const t=this.sourceInfo.player;return t?md(t.id,this.id):Ao(this.id)}getColor(){if(this.id===-1)return f.beforeCreateWarn("get color");const t=this.sourceInfo.player;return t?pd(t.id,this.id):Co(this.id)}getBoxColor(){if(this.id===-1)return f.beforeCreateWarn("get box color");const t=this.sourceInfo.player;return t?gd(t.id,this.id):To(this.id)}getBackgroundColor(){if(this.id===-1)return f.beforeCreateWarn("get bg color");const t=this.sourceInfo.player;return t?Sd(t.id,this.id):Do(this.id)}getShadow(){if(this.id===-1)return f.beforeCreateWarn("get shadow");const t=this.sourceInfo.player;return t?fd(t.id,this.id):No(this.id)}getOutline(){if(this.id===-1)return f.beforeCreateWarn("get outline");const t=this.sourceInfo.player;return t?yd(t.id,this.id):wo(this.id)}getFont(){if(this.id===-1)return f.beforeCreateWarn("get font");const t=this.sourceInfo.player;return t?Pd(t.id,this.id):bo(this.id)}isBox(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?Id(t.id,this.id):vo(this.id)}isProportional(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?Ed(t.id,this.id):Ro(this.id)}isSelectable(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?Ad(t.id,this.id):Lo(this.id)}getAlignment(){if(this.id===-1)return f.beforeCreateWarn("get alignment");const t=this.sourceInfo.player;return t?Cd(t.id,this.id):Oo(this.id)}getPreviewModel(){if(this.id===-1)return f.beforeCreateWarn("get preview model");const t=this.sourceInfo.player;return t?Td(t.id,this.id):Go(this.id)}getPreviewRot(){if(this.id===-1)return f.beforeCreateWarn("get preview rotation");const t=this.sourceInfo.player;return t?Dd(t.id,this.id):Fo(this.id)}getPreviewVehColors(){if(this.id===-1)return f.beforeCreateWarn("get preview vel colors");const t=this.sourceInfo.player;return t?Nd(t.id,this.id):Bo(this.id)}isGlobal(){return!!this.sourceInfo.player}static getInstance(t,a){return a?this.globalTextDraws.get(t):this.playerTextDraws.get(t)}static getInstances(t){return t?[...this.globalTextDraws.values()]:[...this.playerTextDraws.values()]}}w.onExit(({next:e})=>(f.getInstances(!0).forEach(t=>t.destroy()),f.getInstances(!1).forEach(t=>t.destroy()),e()));const[au]=_({name:"OnPlayerClickTextDraw",beforeEach(e,t){return{player:m.getInstance(e),textDraw:t===T.TEXT_DRAW?t:f.getInstance(t,!0)}}}),[nu]=_({name:"OnPlayerClickPlayerTextDraw",beforeEach(e,t){return{player:m.getInstance(e),textDraw:t===T.TEXT_DRAW?t:f.getInstance(t,!1)}}}),ru=Object.freeze({onPlayerClickGlobal:au,onPlayerClickPlayer:nu});function iu(e,t){return(e&t)===t}function su(e,t,a){return(e&a)===a&&(t&a)!==a}function lu(e,t){return!!(e&t)}function ou(e,t,a){return(e&a)!==a&&(t&a)===a}function du(e){const t=new Set,a=e.prototype,n=Object.getOwnPropertyNames(a).filter(i=>typeof a[i]=="function"&&i!=="constructor").reduce((i,s)=>(i[s]=a[s],i),{});function r(i,s){if(t.has(i))throw new Error(`Method '${String(i)}' of class '${e.name}' has already been hooked. Each method can only be hooked once per defineHooks call. `);if(typeof Reflect.get(a,i)!="function")throw new Error(`Invalid method: ${String(i)}`);return Reflect.set(a,i,s),t.add(i),s}return[n,r]}Object.defineProperty(exports,"E_STREAMER",{enumerable:!0,get:function(){return d.E_STREAMER}}),Object.defineProperty(exports,"MapIconStyles",{enumerable:!0,get:function(){return d.MapIconStyles}}),Object.defineProperty(exports,"MaterialTextAlign",{enumerable:!0,get:function(){return d.MaterialTextAlign}}),Object.defineProperty(exports,"MaterialTextSizes",{enumerable:!0,get:function(){return d.MaterialTextSizes}}),Object.defineProperty(exports,"StreamerAreaTypes",{enumerable:!0,get:function(){return d.StreamerAreaTypes}}),Object.defineProperty(exports,"StreamerDistances",{enumerable:!0,get:function(){return d.StreamerDistances}}),Object.defineProperty(exports,"StreamerItemTypes",{enumerable:!0,get:function(){return d.StreamerItemTypes}}),Object.defineProperty(exports,"StreamerMiscellaneous",{enumerable:!0,get:function(){return d.StreamerMiscellaneous}}),Object.defineProperty(exports,"StreamerObjectTypes",{enumerable:!0,get:function(){return d.StreamerObjectTypes}}),exports.ArtworkEnum=Ge,exports.BodyPartsEnum=Xe,exports.BoneIdsEnum=Ye,exports.BulletHitTypesEnum=at,exports.CameraCutStylesEnum=re,exports.CameraModesEnum=Ze,exports.CarModTypeEnum=Je,exports.ClickSourcesEnum=Fe,exports.ConnectionStatusEnum=ke,exports.DamageDeathReasonEnum=ge,exports.Dialog=N,exports.DialogStylesEnum=me,exports.Dynamic3DTextLabel=$,exports.Dynamic3DTextLabelEvent=Mh,exports.DynamicActor=H,exports.DynamicActorEvent=Oh,exports.DynamicArea=v,exports.DynamicAreaEvent=tu,exports.DynamicCheckPointEvent=Eh,exports.DynamicCheckpoint=k,exports.DynamicMapIcon=K,exports.DynamicMapIconEvent=dh,exports.DynamicObject=L,exports.DynamicObjectEvent=Yh,exports.DynamicPickup=W,exports.DynamicPickupEvent=ph,exports.DynamicRaceCP=M,exports.DynamicRaceCPEvent=bh,exports.ERecordStatus=B,exports.EditResponseTypesEnum=Be,exports.FightingStylesEnum=Ke,exports.ForceSyncEnum=ze,exports.GameMode=w,exports.GameText=X_,exports.GangZone=b,exports.GangZoneEvent=nh,exports.I18n=P,exports.InvalidEnum=T,exports.KeysEnum=Me,exports.LimitsEnum=F,exports.MapIconStylesEnum=je,exports.MarkerModesEnum=xe,exports.Menu=J,exports.MenuEvent=$_,exports.NPCPlaybackEnum=He,exports.NetStats=Z_,exports.Npc=D,exports.NpcEvent=b_,exports.ObjectMaterialAlignmentEnum=Ue,exports.ObjectMaterialTextSizeEnum=Ve,exports.Player=m,exports.PlayerEvent=Ee,exports.PlayerStateEnum=Q,exports.RecordTypesEnum=rt,exports.SelectObjectTypesEnum=We,exports.SpecialActionsEnum=pe,exports.SpectateModesEnum=de,exports.Streamer=S,exports.TextDraw=f,exports.TextDrawAlignEnum=$e,exports.TextDrawEvent=ru,exports.TextDrawFontsEnum=ie,exports.Vehicle=A,exports.VehicleEvent=j_,exports.VehicleModelInfoEnum=qe,exports.VehicleParamsEnum=Qe,exports.WeaponEnum=et,exports.WeaponSkillsEnum=tt,exports.WeaponStatesEnum=nt,exports.animateLib=it,exports.defineEvent=_,exports.defineHooks=du,exports.getAnimateDurationByLibName=oc,exports.isHolding=iu,exports.isPressed=su,exports.isPressing=lu,exports.isReleased=ou,exports.isValidAnimateLib=Se,exports.isValidAnimateName=fe,exports.rgba=I;
1
+ "use strict";var ye=require("iconv-lite"),d=require("@infernus/streamer");function vt(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(a){if(a!=="default"){var n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:function(){return e[a]}})}}),t.default=e,Object.freeze(t)}var m=vt(d);function xe(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}function bt(e,t){const a={},n=Object.keys(e);for(let i=0;i<n.length;i++){const r=n[i],s=e[r];a[t(s,r,e)]=s}return a}function oe(e,t){const a=Object.keys(t);for(let n=0;n<a.length;n++){const i=a[n],r=t[i],s=e[i];Array.isArray(r)?Array.isArray(s)?e[i]=oe(s,r):e[i]=oe([],r):xe(r)?xe(s)?e[i]=oe(s,r):e[i]=oe({},r):(s===void 0||r!==void 0)&&(e[i]=r)}return e}function Rt(e,t){const a={...e};for(let n=0;n<t.length;n++){const i=t[n];delete a[i]}return a}const Lt=new RegExp("\\p{Lu}?\\p{Ll}+|[0-9]+|\\p{Lu}+(?!\\p{Ll})|\\p{Emoji_Presentation}|\\p{Extended_Pictographic}|\\p{L}+","gu");function Ot(e){return Array.from(e.match(Lt)??[])}function fe(e){return Ot(e).map(a=>a.toLowerCase()).join("_")}function Gt(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Ft(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function Bt(e){const t=[],a=e.length;if(a===0)return t;let n=0,i="",r="",s=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n<a;){const l=e[n];r?l==="\\"&&n+1<a?(n++,i+=e[n]):l===r?r="":i+=l:s?l==='"'||l==="'"?r=l:l==="]"?(s=!1,t.push(i),i=""):i+=l:l==="["?(s=!0,i&&(t.push(i),i="")):l==="."?i&&(t.push(i),i=""):i+=l,n++}return i&&t.push(i),t}function Pe(e,t,a){if(e==null)return a;switch(typeof t){case"string":{const n=e[t];return n===void 0?Gt(t)?Pe(e,Bt(t),a):a:n}case"number":case"symbol":{typeof t=="number"&&(t=Ft(t));const n=e[t];return n===void 0?a:n}default:{if(Array.isArray(t))return xt(e,t,a);Object.is(t?.valueOf(),-0)?t="-0":t=String(t);const n=e[t];return n===void 0?a:n}}}function xt(e,t,a){if(t.length===0)return a;let n=e;for(let i=0;i<t.length;i++){if(n==null)return a;n=n[t[i]]}return n===void 0?a:n}function kt(e){return e instanceof Buffer}class I{constructor(t,a){this.defaultLocale=t,this.locales=a,this.defaultLocale=fe(t),this.locales=I.snakeLocaleKeys(a)}addLocales=t=>{oe(this.locales,I.snakeLocaleKeys(t))};removeLocales=(...t)=>{this.locales=Rt(this.locales,t)};$t=(t,a,n=this.defaultLocale)=>{const i=this.locales[fe(n)],r=Pe(this.locales[this.defaultLocale],t),s=Pe(i,t,r);if(s===void 0)throw new Error(`[i18n]: cannot find ${n}["${t}"]`);if(typeof s!="string")return JSON.stringify(s);let l=s;if(a&&a.length){const o=/%s/i;for(let c=0;c<a.length&&l.match(o)!==null;c++)l=l.replace(o,a[c])}return l};static isValidate(t){if(!ye.encodingExists(t))throw new Error(`[i18n]: unknown charset ${t}`)}static encodeToBuf(t,a){return I.isValidate(a),[...ye.encode(t,a),0]}static decodeFromBuf(t,a="utf8"){I.isValidate(a);const n=kt(t)?t:Buffer.from(I.getValidStr(t));return ye.decode(n,a)}static getValidStr(t){return t.indexOf(0)===-1?t:t.slice(0,t.indexOf(0))}static snakeLocaleKeys(t){return bt(t,(a,n)=>fe(n))}static convertSpecialChar(t){const a={\u00E0:"\x97",\u00E1:"\x98",\u00E2:"\x99",\u00E4:"\x9A",\u00C0:"\x80",\u00C1:"\x81",\u00C2:"\x82",\u00C4:"\x83",\u00E8:"\x9D",\u00E9:"\x9E",\u00EA:"\x9F",\u00EB:"\xA0",\u00C8:"\x86",\u00C9:"\x87",\u00CA:"\x88",\u00CB:"\x89",\u00EC:"\xA1",\u00ED:"\xA2",\u00EE:"\xA3",\u00EF:"\xA4",\u00CC:"\x8A",\u00CD:"\x8B",\u00CE:"\x8C",\u00CF:"\x8D",\u00F2:"\xA5",\u00F3:"\xA6",\u00F4:"\xA7",\u00F6:"\xA8",\u00D2:"\x8E",\u00D3:"\x8F",\u00D4:"\x90",\u00D6:"\x91",\u00F9:"\xA9",\u00FA:"\xAA",\u00FB:"\xAB",\u00FC:"\xAC",\u00D9:"\x92",\u00DA:"\x93",\u00DB:"\x94",\u00DC:"\x95",\u00F1:"\xAE",\u00D1:"\xAD","\xA1":"@","\xBF":"\xAF","`":"\xB1"};return t.split("").map(n=>n in a?a[n]:n).join("")}}const B=new Map,ke=new Map;function Mt(e,t){return typeof e=="boolean"?+e:typeof e=="number"&&!isNaN(e)?e:+t}function Ht(e,...t){const{defaultValue:a=!0,name:n,beforeEach:i,afterEach:r,throwOnError:s=!1}=e,l=B.get(n);if(!l||!l.length)return+a;const o=i?i(...t):{},c=[];let u=-1;const g=S=>{if(u++,u<l.length){try{S&&Object.assign(o,S);const P={next:g,defaultValue:a,...o},y=l[u](P);return y instanceof Promise&&c.push(y),y}catch(P){const y=`executing event [name:${n},index:${u}] error:
2
+ ${P}`;if(s)throw{error:P,message:y};console.log(y)}return a}return r&&(c.length?Promise.allSettled(c).then(()=>r(o)):r(o)),a};return Mt(g(),a)}function h(e){const{name:t,identifier:a,isNative:n=!0}=e;if(B.has(t)){const l=`event [name:${t}] error: already defined.`;throw new Error(l)}function i(...l){return Ht(e,...l)}function r(l){B.has(t)||B.set(t,[]);const o=B.get(t).push(l)-1;return()=>{const c=B.get(t);if(!c)return;const u=c.length-1,g=u<o?u:o;for(let S=g;S>=0;S--)if(c[S]===l){c.splice(S,1);break}return c.length===0&&B.delete(t),c.length}}const s=[r,i];return n&&(typeof a<"u"&&samp.registerEvent(t,a),samp.on(t,i)),ke.set(t,i),s}function Vt(e){return ke.get(e)}const Ut=e=>!!samp.callNative("IsValidNickName","s",e),Wt=(e,t)=>{samp.callNative("AllowNickNameCharacter","ii",e,t)},jt=e=>!!samp.callNative("IsNickNameCharacterAllowed","i",e),Kt=(e,t)=>!!samp.callNative("AddServerRule","ss",e,t),Zt=(e,t)=>!!samp.callNative("SetServerRule","ss",e,t),Xt=e=>!!samp.callNative("IsValidServerRule","s",e),zt=e=>!!samp.callNative("RemoveServerRule","s",e),Yt=e=>{samp.callNative("AllowAdminTeleport","i",e)},$t=()=>!!samp.callNative("IsAdminTeleportAllowed",""),Jt=e=>{samp.callNative("AllowInteriorWeapons","i",e)},Qt=()=>!!samp.callNative("AreInteriorWeaponsAllowed",""),qt=()=>!!samp.callNative("AreAllAnimationsEnabled",""),ea=e=>{samp.callNative("EnableAllAnimations","i",e)},ta=e=>{const[t]=samp.callNative("GetConsoleVarAsString","sAi",e,64);return t},aa=e=>samp.callNative("GetConsoleVarAsInt","s",e),na=e=>!!samp.callNative("GetConsoleVarAsBool","s",e),ia=()=>samp.callNative("GetWeather",""),ra=e=>samp.callNative("GetServerRuleFlags","s",e),sa=(e,t)=>!!samp.callNative("SetServerRuleFlags","si",e,t),la=e=>!!samp.callNative("SetModeRestartTime","f",e),oa=()=>samp.callNativeFloat("GetModeRestartTime",""),da=(e,t,a)=>samp.callNative("GameTextForAll","aii",e,t,a),ca=e=>{samp.callNative("HideGameTextForAll","i",e)},_a=(e,t,a)=>samp.callNative("SendDeathMessage","iii",e,t,a),ha=()=>samp.callNative("GetMaxPlayers",""),Ie=(e,t,a)=>Math.sqrt(e*e+t*t+a*a),ua=e=>samp.callNative("SetGameModeText","s",e),ma=e=>samp.callNative("ShowNameTags","i",e),pa=e=>samp.callNative("ShowPlayerMarkers","i",e),ga=e=>samp.callNative("SetWorldTime","i",e),Sa=()=>samp.callNative("GetWorldTime",""),ya=()=>!!samp.callNative("EnableVehicleFriendlyFire",""),fa=e=>samp.callNative("SetWeather","i",e),Pa=()=>samp.callNativeFloat("GetGravity",""),Ia=e=>samp.callNative("SetGravity","f",e),Ea=(e,t,a,n,i)=>samp.callNative("CreateExplosion","fffif",e,t,a,n,i),Aa=e=>samp.callNative("EnableZoneNames","i",e),Ca=()=>!!samp.callNative("UsePlayerPedAnims",""),Ta=()=>!!samp.callNative("DisableInteriorEnterExits",""),Da=e=>samp.callNative("SetNameTagDrawDistance","f",e),wa=()=>samp.callNative("DisableNameTagLOS",""),Na=e=>samp.callNative("LimitGlobalChatRadius","f",e),va=e=>samp.callNative("LimitPlayerMarkerRadius","f",e),ba=(e,t)=>samp.callNative("ConnectNPC","ss",e,t),Ra=()=>samp.callNative("GetServerTickRate",""),La=e=>samp.callNative("GetAnimationName","iSiSi",e,32,32),Oa=e=>!!samp.callNative("EnableStuntBonusForAll","i",e),Ga=e=>{samp.callNative("ToggleChatTextReplacement","i",e)},Fa=()=>!!samp.callNative("ChatTextReplacementToggled",""),Ba=e=>samp.callNative("GetWeaponSlot","i",e),xa=e=>{const[t]=samp.callNative("GetWeaponName","iSi",e,32);return t},Me=()=>samp.callNative("GetAvailableClasses",""),ka=e=>{if(e<Me()||e>319)return!1;const t=samp.callNative("GetPlayerClass","iIIFFFFIIIIII",e),[a,n=0,i=0,r=0,s=0,l=0,o=0,c=0,u=0,g=0,S=0,P=0]=t;return{teamId:a,modelId:n,spawnX:i,spawnY:r,spawnZ:s,zAngle:l,weapon1:o,weapon1Ammo:c,weapon2:u,weapon2Ammo:g,weapon3:S,weapon3Ammo:P}},Ma=(e,t,a,n,i,r,s,l,o,c,u,g,S)=>!!samp.callNative("EditPlayerClass","iiiffffiiiiii",e,t,a,n,i,r,s,l,o,c,u,g,S),Ha=e=>samp.callNative("SetTeamCount","i",e),Va=(e,t,a,n,i,r,s,l,o,c,u)=>samp.callNative("AddPlayerClass","iffffiiiiii",e,t,a,n,i,r,s,l,o,c,u),Ua=(e,t,a,n,i,r,s,l,o,c,u,g)=>samp.callNative("AddPlayerClassEx","iiffffiiiiii",e,t,a,n,i,r,s,l,o,c,u,g),Wa=(e,t,a,n,i,r,s,l,o,c,u,g,S)=>!!samp.callNative("SetSpawnInfo","iiiffffiiiiii",e,t,a,n,i,r,s,l,o,c,u,g,S),ja=e=>!!samp.callNative("SpawnPlayer","i",e),Ka=e=>{const[t,a=0,n=0,i=0,r=0,s=0,l=0,o=0,c=0,u=0,g=0,S=0]=samp.callNative("GetSpawnInfo","iIIFFFFIIIIII",e);return{teamId:t,modelId:a,spawnX:n,spawnY:i,spawnZ:r,zAngle:s,weapon1:l,weapon1Ammo:o,weapon2:c,weapon2Ammo:u,weapon3:g,weapon3Ammo:S}},Za=e=>samp.callNative("NetStats_GetConnectedTime","i",e),Xa=e=>samp.callNative("NetStats_MessagesReceived","i",e),za=e=>samp.callNative("NetStats_BytesReceived","i",e),Ya=e=>samp.callNative("NetStats_MessagesSent","i",e),$a=e=>samp.callNative("NetStats_BytesSent","i",e),Ja=e=>samp.callNative("NetStats_MessagesRecvPerSecond","i",e),Qa=e=>samp.callNativeFloat("NetStats_PacketLossPercent","i",e),qa=e=>samp.callNative("NetStats_ConnectionStatus","i",e),en=e=>{const[t]=samp.callNative("NetStats_GetIpPort","iSi",e,134);return t},tn=e=>!!samp.callNative("IsPlayerAdmin","i",e),an=(e,t)=>!!samp.callNative("SetPlayerAdmin","ii",e,t),nn=e=>!!samp.callNative("Kick","i",e),rn=e=>!!samp.callNative("Ban","i",e),sn=e=>{const[t]=samp.callNative("GetPlayerNetworkStats","iSi",e,1024);return t},ln=()=>samp.callNative("GetNetworkStats","Si",1024),on=(e,t)=>samp.callNative("BlockIpAddress","si",e,t),dn=e=>samp.callNative("UnBlockIpAddress","s",e),cn=(e,t)=>{const[a]=samp.callNative("gpci","iAi",e,41);return I.decodeFromBuf(I.getValidStr(a),t)},_n=(e,t,a,n,i)=>samp.callNative("SendClientCheck","iiiii",e,t,a,n,i),hn=()=>{samp.callNative("ClearBanList","")},un=e=>!!samp.callNative("IsBanned","s",e),mn=e=>samp.callNative("GetPlayerRawIp","i",e),pn=e=>{const[t]=samp.callNative("GetPlayerIp","iSi",e,128);return t},gn=e=>{const[t]=samp.callNative("GetPlayerVersion","iSi",e,24);return t},E=e=>{if(typeof e=="number")return e;if(typeof+e=="number"&&!isNaN(+e))return+e;if(e.charAt(0)==="#")return e.length===4?parseInt(e.charAt(1)+e.charAt(1)+e.charAt(2)+e.charAt(2)+e.charAt(3)+e.charAt(3)+"FF",16):e.length===7?parseInt(e.slice(1,e.length)+"FF",16):e.length===9?parseInt(e.slice(1,e.length),16):255;const t=(e.match(/([0-9])+/g)||[]).map(n=>parseInt(n,10));if(t.length!==4&&t.length!==3)return 255;t.length===3?t.push(255):t[3]=t[3]<1?Math.floor(t[3]*255):255;let a=0;return t.reverse().forEach((n,i)=>{n!==0&&(a+=Math.pow(16,i*2)*n)}),a},Sn=(e,t)=>!!samp.callNative("TogglePlayerWidescreen","ii",e,t),yn=e=>!!samp.callNative("IsPlayerWidescreenToggled","i",e),fn=(e,t)=>samp.callNative("GetPlayerSkillLevel","ii",e,t),Pn=e=>samp.callNative("GetPlayerWeather","i",e),In=e=>{const[t=0,a=0,n=0,i=0]=samp.callNative("GetPlayerWorldBounds","iFFFF",e);return{xMax:t,xMin:a,yMax:n,yMin:i}},En=e=>samp.callNativeFloat("GetPlayerZAim","i",e),An=e=>{const[t=0,a=0,n=0]=samp.callNative("GetPlayerSurfingOffsets","iFFF",e);return{fOffsetX:t,fOffsetY:a,fOffsetZ:n}},Cn=e=>{const[t=0,a=0,n=0,i=0]=samp.callNative("GetPlayerRotationQuat","iFFFF",e);return{w:t,x:a,y:n,z:i}},Tn=e=>samp.callNative("GetPlayerDialogID","i",e),Dn=e=>samp.callNative("GetPlayerSpectateID","i",e),wn=e=>samp.callNative("GetPlayerSpectateType","i",e),Nn=(e,t)=>!!samp.callNative("SetPlayerGravity","if",e,t),vn=e=>samp.callNativeFloat("GetPlayerGravity","i",e),bn=e=>!!samp.callNative("IsPlayerSpawned","i",e),Rn=e=>!!samp.callNative("IsPlayerControllable","i",e),Ln=e=>!!samp.callNative("IsPlayerCameraTargetEnabled","i",e),On=(e,t)=>!!samp.callNative("TogglePlayerGhostMode","ii",e,t),Gn=e=>!!samp.callNative("GetPlayerGhostMode","i",e),Fn=e=>samp.callNative("GetPlayerBuildingsRemoved","i",e),Bn=(e,t)=>!!samp.callNative("RemovePlayerWeapon","ii",e,t),xn=e=>!!samp.callNative("HidePlayerDialog","i",e),kn=e=>!!samp.callNative("IsPlayerUsingOfficialClient","i",e),Mn=(e,t)=>!!samp.callNative("AllowPlayerTeleport","ii",e,t),Hn=e=>!!samp.callNative("IsPlayerTeleportAllowed","i",e),Vn=(e,t)=>!!samp.callNative("AllowPlayerWeapons","i",e,t),Un=e=>!!samp.callNative("ArePlayerWeaponsAllowed","i",e),Wn=(e,t,a,n)=>!!samp.callNative("GameTextForPlayer","iaii",e,t,a,n),jn=(e,t)=>!!samp.callNative("HasGameText","ii",e,t),Kn=(e,t,a,n)=>!!samp.callNative("SendDeathMessageToPlayer","iiii",e,t,a,n),Zn=(e,t)=>!!samp.callNative("HideGameTextForPlayer","ii",e,t),Xn=e=>!!samp.callNative("IsPlayerNPC","i",e),zn=(e,t,a,n)=>!!samp.callNative("SetPlayerPos","ifff",e,t,a,n),Yn=(e,t,a,n)=>!!samp.callNative("SetPlayerPosFindZ","ifff",e,t,a,n),$n=e=>samp.callNative("GetPlayerPos","iFFF",e),Jn=(e,t)=>!!samp.callNative("SetPlayerFacingAngle","if",e,t),Qn=e=>{const[t]=samp.callNative("GetPlayerFacingAngle","iF",e);return t},qn=(e,t,a,n,i)=>!!samp.callNative("IsPlayerInRangeOfPoint","iffff",e,t,a,n,i),ei=(e,t,a,n)=>samp.callNativeFloat("GetPlayerDistanceFromPoint","ifff",e,t,a,n),ti=(e,t)=>!!samp.callNative("IsPlayerStreamedIn","ii",e,t),ai=(e,t)=>!!samp.callNative("SetPlayerInterior","ii",e,t),ni=e=>samp.callNative("GetPlayerInterior","i",e),ii=(e,t)=>!!samp.callNative("SetPlayerHealth","if",e,t),ri=e=>{const[t]=samp.callNative("GetPlayerHealth","iF",e);return t},si=(e,t)=>!!samp.callNative("SetPlayerArmour","if",e,t),li=e=>{const[t]=samp.callNative("GetPlayerArmour","iF",e);return t},oi=(e,t,a)=>!!samp.callNative("SetPlayerAmmo","iii",e,t,a),di=e=>samp.callNative("GetPlayerAmmo","i",e),ci=e=>samp.callNative("GetPlayerWeaponState","i",e),_i=e=>samp.callNative("GetPlayerTargetPlayer","i",e),hi=(e,t)=>{samp.callNative("SetPlayerTeam","ii",e,t)},ui=e=>samp.callNative("GetPlayerTeam","i",e),mi=(e,t)=>!!samp.callNative("SetPlayerScore","ii",e,t),pi=e=>samp.callNative("GetPlayerScore","i",e),gi=e=>samp.callNative("GetPlayerDrunkLevel","i",e),Si=(e,t)=>!!samp.callNative("SetPlayerDrunkLevel","ii",e,t),yi=(e,t)=>!!samp.callNative("SetPlayerColor","ii",e,E(t)),fi=e=>samp.callNative("GetPlayerColor","i",e),Pi=(e,t)=>!!samp.callNative("SetPlayerSkin","ii",e,t),Ii=e=>samp.callNative("GetPlayerSkin","i",e),Ei=(e,t,a)=>!!samp.callNative("GivePlayerWeapon","iii",e,t,a),Ai=e=>!!samp.callNative("ResetPlayerWeapons","i",e),Ci=(e,t)=>!!samp.callNative("SetPlayerArmedWeapon","ii",e,t),Ti=(e,t)=>samp.callNative("GetPlayerWeaponData","iiII",e,t),Di=(e,t)=>!!samp.callNative("GivePlayerMoney","ii",e,t),wi=e=>!!samp.callNative("ResetPlayerMoney","i",e),Ni=e=>samp.callNative("GetPlayerMoney","i",e),vi=e=>samp.callNative("GetPlayerState","i",e),bi=e=>samp.callNative("GetPlayerPing","i",e),Ri=e=>samp.callNative("GetPlayerWeapon","i",e),Li=e=>samp.callNative("GetPlayerKeys","iIII",e),Oi=(e,t,a)=>!!samp.callNative("SetPlayerTime","iii",e,t,a),Gi=e=>samp.callNative("GetPlayerTime","iII",e),Fi=(e,t)=>!!samp.callNative("TogglePlayerClock","ii",e,t),Bi=(e,t)=>!!samp.callNative("SetPlayerWeather","ii",e,t),xi=e=>!!samp.callNative("ForceClassSelection","i",e),ki=(e,t)=>!!samp.callNative("SetPlayerWantedLevel","ii",e,t),Mi=e=>samp.callNative("GetPlayerWantedLevel","i",e),Hi=(e,t)=>!!samp.callNative("SetPlayerFightingStyle","ii",e,t),Vi=e=>samp.callNative("GetPlayerFightingStyle","i",e),Ui=(e,t,a,n)=>!!samp.callNative("SetPlayerVelocity","ifff",e,t,a,n),Wi=e=>samp.callNative("GetPlayerVelocity","iFFF",e),ji=(e,t,a)=>!!samp.callNative("PlayCrimeReportForPlayer","iii",e,t,a),Ki=(e,t,a,n,i,r,s=!1)=>!!samp.callNative("PlayAudioStreamForPlayer","isffffi",e,t,a,n,i,r,s),Zi=e=>!!samp.callNative("StopAudioStreamForPlayer","i",e),Xi=(e,t)=>!!samp.callNative("SetPlayerShopName","is",e,t),zi=(e,t,a)=>!!samp.callNative("SetPlayerSkillLevel","iii",e,t,a),Yi=e=>samp.callNative("GetPlayerSurfingVehicleID","i",e),$i=e=>samp.callNative("GetPlayerSurfingObjectID","i",e),Ji=e=>samp.callNative("GetPlayerSurfingPlayerObjectID","i",e),Qi=(e,t,a,n,i,r)=>!!samp.callNative("RemoveBuildingForPlayer","iiffff",e,t,a,n,i,r),qi=e=>samp.callNative("GetPlayerLastShotVectors","iFFFFFF",e),er=(e,t,a)=>!!samp.callNative("PutPlayerInVehicle","iii",e,t,a),tr=e=>samp.callNative("GetPlayerVehicleID","i",e),ar=e=>samp.callNative("GetPlayerVehicleSeat","i",e),nr=e=>!!samp.callNative("RemovePlayerFromVehicle","i",e),ir=(e,t)=>!!samp.callNative("TogglePlayerControllable","ii",e,t),rr=(e,t,a,n,i)=>!!samp.callNative("PlayerPlaySound","iifff",e,t,a,n,i),sr=(e,t,a,n,i,r,s,l,o,c)=>!!samp.callNative("ApplyAnimation","issfiiiiii",e,t,a,n,i,r,s,l,o,c),lr=(e,t)=>!!samp.callNative("ClearAnimations","ii",e,t),or=e=>samp.callNative("GetPlayerAnimationIndex","i",e),dr=e=>samp.callNative("GetPlayerSpecialAction","i",e),cr=(e,t)=>!!samp.callNative("SetPlayerSpecialAction","ii",e,t),_r=(e,t)=>!!samp.callNative("DisableRemoteVehicleCollisions","ii",e,t),hr=(e,t)=>!!samp.callNative("SetPlayerVirtualWorld","ii",e,t),ur=e=>samp.callNative("GetPlayerVirtualWorld","i",e),mr=(e,t)=>!!samp.callNative("EnableStuntBonusForPlayer","ii",e,t),pr=e=>samp.callNative("GetPlayerCustomSkin","i",e),gr=(e,t,a,n,i,r)=>!!samp.callNative("CreateExplosionForPlayer","ifffif",e,t,a,n,i,r),Sr=(e,t,a)=>!!samp.callNative("StartRecordingPlayerData","iis",e,t,a),yr=e=>!!samp.callNative("StopRecordingPlayerData","i",e),fr=(e,t)=>!!samp.callNative("TogglePlayerSpectating","ii",e,t),Pr=(e,t,a)=>!!samp.callNative("PlayerSpectatePlayer","iii",e,t,a),Ir=(e,t,a)=>!!samp.callNative("PlayerSpectateVehicle","iii",e,t,a),He=e=>!!samp.callNative("IsPlayerConnected","i",e),Er=(e,t)=>!!samp.callNative("IsPlayerInVehicle","ii",e,t),Ar=e=>!!samp.callNative("IsPlayerInAnyVehicle","i",e),Cr=(e,t,a,n,i)=>!!samp.callNative("SetPlayerWorldBounds","iffff",e,t,a,n,i),Tr=e=>!!samp.callNative("ClearPlayerWorldBounds","i",e),Dr=(e,t,a)=>!!samp.callNative("SetPlayerMarkerForPlayer","iii",e,t,E(a));function wr(e,t){return samp.callNative("GetPlayerMarkerForPlayer","ii",e,t)}const Nr=(e,t,a)=>!!samp.callNative("ShowPlayerNameTagForPlayer","iii",e,t,a),vr=(e,t,a,n)=>!!samp.callNative("SetPlayerCameraPos","ifff",e,t,a,n),br=(e,t,a,n,i)=>!!samp.callNative("SetPlayerCameraLookAt","ifffi",e,t,a,n,i),Rr=e=>!!samp.callNative("SetCameraBehindPlayer","i",e),Lr=e=>samp.callNative("GetPlayerCameraPos","iFFF",e),Or=e=>samp.callNative("GetPlayerCameraFrontVector","iFFF",e),Gr=e=>samp.callNative("GetPlayerCameraMode","i",e),Fr=(e,t)=>!!samp.callNative("EnablePlayerCameraTarget","ii",e,t),Br=e=>samp.callNative("GetPlayerCameraTargetVehicle","i",e),xr=e=>samp.callNative("GetPlayerCameraTargetPlayer","i",e),kr=e=>samp.callNativeFloat("GetPlayerCameraAspectRatio","i",e),Mr=e=>samp.callNativeFloat("GetPlayerCameraZoom","i",e),Hr=(e,t,a,n,i,r,s,l,o)=>!!samp.callNative("InterpolateCameraPos","iffffffii",e,t,a,n,i,r,s,l,o),Vr=(e,t,a,n,i,r,s,l,o)=>!!samp.callNative("InterpolateCameraLookAt","iffffffii",e,t,a,n,i,r,s,l,o),Ur=e=>!!samp.callNative("IsPlayerCuffed","i",e),Wr=e=>!!samp.callNative("IsPlayerInDriveByMode","i",e),jr=e=>!!samp.callNative("IsPlayerUsingOmp","i",e),Kr=(e,t)=>samp.callNative("StartRecordingPlayback","is",e,t),Zr=()=>samp.callNative("StopRecordingPlayback",""),Xr=()=>samp.callNative("PauseRecordingPlayback",""),zr=()=>samp.callNative("ResumeRecordingPlayback",""),Yr=e=>samp.callNative("GetActorSkin","i",e),$r=(e,t)=>samp.callNative("SetActorSkin","ii",e,t),Jr=e=>{const[t=0,a=0,n=0,i=0,r=0]=samp.callNative("GetActorSpawnInfo","iIFFFF",e);return{skinId:t,fX:a,fY:n,fZ:i,fAngle:r}},Qr=e=>{const[t=0,a=0,n=0,i=0,r=0,s=0]=samp.callNative("GetVehicleSpawnInfo","iFFFFII",e);return{fX:t,fY:a,fZ:n,fRot:i,color1:r,color2:s}},qr=(e,t,a,n,i,r,s,l,o=-2,c=-2)=>samp.callNative("SetVehicleSpawnInfo","iiFFFFiiii",e,t,a,n,i,r,s,l,o,c),es=e=>{const[t=0,a=0]=samp.callNative("GetVehicleColor","iII",e);return{color1:t,color2:a}},ts=e=>samp.callNative("GetVehiclePaintjob","i",e),as=e=>samp.callNative("GetVehicleInterior","i",e),ns=e=>{const[t]=samp.callNative("GetVehicleNumberPlate","iSi",e,33);return t},is=(e,t)=>samp.callNative("SetVehicleRespawnDelay","ii",e,t),rs=e=>samp.callNative("GetVehicleRespawnDelay","i",e),ss=e=>samp.callNative("GetVehicleCab","i",e),ls=e=>samp.callNative("GetVehicleOccupiedTick","i",e),os=(e,t)=>samp.callNative("SetVehicleOccupiedTick","ii",e,t),ds=e=>!!samp.callNative("HasVehicleBeenOccupied","i",e),cs=e=>!!samp.callNative("IsVehicleOccupied","i",e),_s=e=>samp.callNative("GetVehicleRespawnTick","i",e),hs=(e,t)=>samp.callNative("SetVehicleRespawnTick","ii",e,t),us=e=>!!samp.callNative("IsVehicleDead","i",e),ms=(e,t)=>!!samp.callNative("SetVehicleDead","ii",e,t),ps=(e,t)=>!!samp.callNative("SetVehicleBeenOccupied","ii",e,t),gs=(e,t)=>samp.callNative("ToggleVehicleSirenEnabled","ii",e,t),Ss=(e,t)=>samp.callNative("SetVehicleParamsSirenState","ii",e,t),ys=e=>!!samp.callNative("IsVehicleSirenEnabled","i",e),fs=e=>samp.callNative("GetVehicleModelCount","i",e),Ps=e=>samp.callNative("GetVehicleLastDriver","i",e),Is=e=>samp.callNative("GetVehicleDriver","i",e),Es=()=>samp.callNative("GetVehicleModelsUsed",""),As=e=>samp.callNative("GetVehicleSirenState","i",e),Cs=e=>samp.callNative("GetVehicleLandingGearState","i",e),Ts=e=>samp.callNativeFloat("GetVehicleHydraReactorAngle","i",e),Ds=e=>samp.callNativeFloat("GetVehicleTrainSpeed","i",e),ws=e=>{const[t=0,a=0,n=0,i=0,r=0,s=0,l=0,o=0,c=0]=samp.callNative("GetVehicleMatrix","iFFFFFFFFF",e);return{rightX:t,rightY:a,rightZ:n,upX:i,upY:r,upZ:s,atX:l,atY:o,atZ:c}},Ve=e=>{const[t=0,a=0,n=0,i=0]=samp.callNative("GetRandomCarColPair","iIIII",e);return{color:[t,a,n,i]}},Ns=(e,t=255)=>samp.callNative("CarColIndexToColour","ii",e,t),vs=(e,t,a,n,i,r,s,l,o)=>samp.callNative("CreateVehicle","iffffiiii",e,t,a,n,i,E(r),E(s),l,o),bs=e=>samp.callNative("DestroyVehicle","i",e),Rs=(e,t)=>!!samp.callNative("IsVehicleStreamedIn","ii",e,t),Ls=e=>{const t=samp.callNative("GetVehiclePos","iFFF",e);if(t.length<3)throw new Error("VehicleID "+e+" not found");return{x:t[0],y:t[1],z:t[2]}},Os=(e,t,a,n)=>!!samp.callNative("SetVehiclePos","ifff",e,t,a,n),Gs=e=>{const[t]=samp.callNative("GetVehicleZAngle","iF",e);return t},Fs=e=>samp.callNative("GetVehicleRotationQuat","iFFFF",e),Bs=(e,t,a,n)=>samp.callNativeFloat("GetVehicleDistanceFromPoint","ifff",e,t,a,n),xs=(e,t)=>samp.callNative("SetVehicleZAngle","if",e,t),ks=(e,t,a,n)=>samp.callNative("SetVehicleParamsForPlayer","iiii",e,t,a,n),Ms=()=>samp.callNative("ManualVehicleEngineAndLights",""),Hs=(e,t,a,n,i,r,s,l)=>samp.callNative("SetVehicleParamsEx","iiiiiiii",e,t,a,n,i,r,s,l),Vs=e=>samp.callNative("GetVehicleParamsEx","iIIIIIII",e),Us=e=>samp.callNative("GetVehicleParamsSirenState","i",e),Ws=(e,t,a,n,i)=>samp.callNative("SetVehicleParamsCarDoors","iiiii",e,t,a,n,i),js=e=>{const t=samp.callNative("GetVehicleParamsCarDoors","iIIII",e);return{driver:t[0],passenger:t[1],backLeft:t[2],backRight:t[3]}},Ks=(e,t,a,n,i)=>samp.callNative("SetVehicleParamsCarWindows","iiiii",e,t,a,n,i),Zs=e=>{const t=samp.callNative("GetVehicleParamsCarWindows","iIIII",e);return{driver:t[0],passenger:t[1],backLeft:t[2],backRight:t[3]}},Xs=e=>samp.callNative("SetVehicleToRespawn","i",e),zs=(e,t)=>samp.callNative("LinkVehicleToInterior","ii",e,t),Ys=(e,t)=>samp.callNative("AddVehicleComponent","ii",e,t),$s=(e,t)=>samp.callNative("RemoveVehicleComponent","ii",e,t),Js=(e,t,a)=>samp.callNative("ChangeVehicleColor","iii",e,E(t),E(a)),Qs=(e,t)=>samp.callNative("ChangeVehiclePaintjob","ii",e,t),qs=(e,t)=>samp.callNative("SetVehicleHealth","if",e,t),el=e=>{const[t]=samp.callNative("GetVehicleHealth","iF",e);return t},tl=(e,t)=>samp.callNative("AttachTrailerToVehicle","ii",e,t),al=e=>samp.callNative("DetachTrailerFromVehicle","i",e),nl=e=>!!samp.callNative("IsTrailerAttachedToVehicle","i",e),il=e=>samp.callNative("GetVehicleTrailer","i",e),rl=(e,t)=>samp.callNative("SetVehicleNumberPlate","is",e,t),sl=e=>samp.callNative("GetVehicleModel","i",e),ll=(e,t)=>samp.callNative("GetVehicleComponentInSlot","ii",e,t),ol=e=>samp.callNative("GetVehicleComponentType","i",e),dl=e=>samp.callNative("RepairVehicle","i",e),cl=e=>samp.callNative("GetVehicleVelocity","iFFF",e),_l=(e,t,a,n)=>!!samp.callNative("SetVehicleVelocity","ifff",e,t,a,n),hl=(e,t,a,n)=>!!samp.callNative("SetVehicleAngularVelocity","ifff",e,t,a,n),ul=e=>{const t=samp.callNative("GetVehicleDamageStatus","iIIII",e);if(t.length<4)throw new Error("VehicleID "+e+" not found");return{panels:t[0],doors:t[1],lights:t[2],tires:t[3]}},ml=(e,t,a,n,i)=>samp.callNative("UpdateVehicleDamageStatus","iiiii",e,t,a,n,i),pl=(e,t)=>{const a=samp.callNative("GetVehicleModelInfo","iiFFF",e,t);if(a.length<3)throw new Error("ModelID "+e+" not found");return{x:a[0],y:a[1],z:a[2]}},gl=(e,t)=>samp.callNative("SetVehicleVirtualWorld","ii",e,t),Sl=e=>samp.callNative("GetVehicleVirtualWorld","i",e),Ue=e=>!!samp.callNative("IsValidVehicle","i",e),yl=(e,t,a,n,i,r,s)=>samp.callNative("AddStaticVehicle","iffffii",e,t,a,n,i,E(r),E(s)),fl=(e,t,a,n,i,r,s,l,o)=>samp.callNative("AddStaticVehicleEx","iffffiiii",e,t,a,n,i,E(r),E(s),l,o),Pl=e=>!!samp.callNative("ShowVehicle","i",e),Il=e=>!!samp.callNative("HideVehicle","i",e),El=e=>!!samp.callNative("IsVehicleHidden","i",e),Al=e=>!!samp.callNative("IsPlayerInModShop","i",e),Cl=e=>samp.callNative("GetPlayerSirenState","i",e),Tl=e=>samp.callNative("GetPlayerLandingGearState","i",e),Dl=e=>samp.callNative("GetPlayerHydraReactorAngle","i",e),wl=e=>samp.callNativeFloat("GetPlayerTrainSpeed","i",e),Nl=(e,t)=>samp.callNative("GetVehicleOccupant","ii",e,t),We=e=>samp.callNative("GetVehicleMaxPassengers","i",e),vl=e=>samp.callNative("CountVehicleOccupants","i",e),bl=e=>!!samp.callNative("IsPlayerCheckpointActive","i",e),Rl=e=>{const[t=0,a=0,n=0,i=0]=samp.callNative("GetPlayerCheckpoint","iFFFF",e);return{fX:t,fY:a,fZ:n,fSize:i}},Ll=e=>!!samp.callNative("IsPlayerRaceCheckpointActive","i",e),Ol=e=>{const[t=0,a=0,n=0,i=0,r=0,s=0,l=0]=samp.callNative("GetPlayerRaceCheckpoint","iFFFFFFF",e);return{fX:t,fY:a,fZ:n,fNextX:i,fNextY:r,fNextZ:s,fSize:l}},Gl=e=>!!samp.callNative("IsMenuDisabled","i",e),Fl=(e,t)=>!!samp.callNative("IsMenuRowDisabled","ii",e,t),Bl=(e,t)=>samp.callNative("GetMenuItems","ii",e,t),xl=e=>{const[t=0,a=0]=samp.callNative("GetMenuPos","iFF",e);return{fX:t,fY:a}},kl=e=>{const[t=0,a=0]=samp.callNative("GetMenuColumnWidth","iFF",e);return{fColumn1:t,fColumn2:a}},Ml=(e,t)=>{const[a]=samp.callNative("GetMenuColumnHeader","iiSi",e,t,31);return a},Hl=(e,t,a)=>{const[n]=samp.callNative("GetMenuItem","iiiSi",e,t,a,31);return n},Vl=(e,t,a,n,i,r)=>samp.callNative("CreateMenu","siffff",e,t,a,n,i,r),Ul=e=>samp.callNative("DestroyMenu","i",e),Wl=(e,t,a)=>samp.callNative("AddMenuItem","iis",e,t,a),jl=(e,t,a)=>samp.callNative("SetMenuColumnHeader","iis",e,t,a),Kl=(e,t)=>samp.callNative("ShowMenuForPlayer","ii",e,t),Zl=(e,t)=>samp.callNative("HideMenuForPlayer","ii",e,t),Xl=e=>!!samp.callNative("IsValidMenu","i",e),zl=e=>samp.callNative("DisableMenu","i",e),Yl=(e,t)=>samp.callNative("DisableMenuRow","ii",e,t),$l=e=>samp.callNative("GetPlayerMenu","i",e),Jl=e=>!!samp.callNative("IsValidGangZone","i",e),Ql=(e,t)=>!!samp.callNative("IsPlayerInGangZone","ii",e,t),ql=(e,t)=>!!samp.callNative("IsGangZoneVisibleForPlayer","ii",e,t),eo=(e,t)=>samp.callNative("GangZoneGetColorForPlayer","ii",e,t),to=(e,t)=>samp.callNative("GangZoneGetFlashColorForPlayer","ii",e,t),ao=(e,t)=>!!samp.callNative("IsGangZoneFlashingForPlayer","ii",e,t),no=e=>{const[t=0,a=0,n=0,i=0]=samp.callNative("GangZoneGetPos","iFFFF",e);return{fMinX:t,fMinY:a,fMaxX:n,fMaxY:i}},io=(e,t)=>{samp.callNative("UseGangZoneCheck","ii",e,t)},ro=(e,t,a,n)=>samp.callNative("GangZoneCreate","ffff",e,t,a,n),so=e=>samp.callNative("GangZoneDestroy","i",e),lo=(e,t,a)=>samp.callNative("GangZoneShowForPlayer","iii",e,t,E(a)),oo=(e,t)=>samp.callNative("GangZoneShowForAll","ii",e,E(t)),co=(e,t)=>samp.callNative("GangZoneHideForPlayer","ii",e,t),_o=e=>samp.callNative("GangZoneHideForAll","i",e),ho=(e,t,a)=>samp.callNative("GangZoneFlashForPlayer","iii",e,t,E(a)),uo=(e,t)=>samp.callNative("GangZoneFlashForAll","ii",e,E(t)),mo=(e,t)=>samp.callNative("GangZoneStopFlashForPlayer","ii",e,t),po=e=>samp.callNative("GangZoneStopFlashForAll","i",e),go=(e,t,a,n,i)=>samp.callNative("CreatePlayerGangZone","iffff",e,t,a,n,i),So=(e,t)=>samp.callNative("PlayerGangZoneDestroy","ii",e,t),yo=(e,t,a)=>samp.callNative("PlayerGangZoneShow","iii",e,t,a),fo=(e,t)=>samp.callNative("PlayerGangZoneHide","ii",e,t),Po=(e,t,a)=>samp.callNative("PlayerGangZoneFlash","iii",e,t,a),Io=(e,t)=>samp.callNative("PlayerGangZoneStopFlash","ii",e,t),Eo=(e,t)=>!!samp.callNative("IsValidPlayerGangZone","ii",e,t),Ao=(e,t)=>!!samp.callNative("IsPlayerInPlayerGangZone","ii",e,t),Co=(e,t)=>!!samp.callNative("IsPlayerGangZoneVisible","ii",e,t),To=(e,t)=>samp.callNative("PlayerGangZoneGetColor","ii",e,t),Do=(e,t)=>samp.callNative("PlayerGangZoneGetFlashColor","ii",e,t),wo=(e,t)=>!!samp.callNative("IsPlayerGangZoneFlashing","ii",e,t),No=(e,t)=>{const[a=0,n=0,i=0,r=0]=samp.callNative("PlayerGangZoneGetPos","iiFFFF",e,t);return{fMinX:a,fMinY:n,fMaxX:i,fMaxY:r}},vo=(e,t,a)=>{samp.callNative("UsePlayerGangZoneCheck","iii",e,t,a)},bo=e=>!!samp.callNative("IsValidTextDraw","i",e),Ro=(e,t)=>!!samp.callNative("IsTextDrawVisibleForPlayer","ii",e,t),Lo=e=>{const[t]=samp.callNative("TextDrawGetString","iSi",e,1024);return t},Oo=(e,t,a)=>{samp.callNative("TextDrawSetPos","iff",e,t,a)},Go=e=>{const[t=0,a=0]=samp.callNative("TextDrawGetLetterSize","iFF",e);return{fX:t,fY:a}},Fo=e=>{const[t=0,a=0]=samp.callNative("TextDrawGetTextSize","iFF",e);return{fX:t,fY:a}},Bo=e=>{const[t=0,a=0]=samp.callNative("TextDrawGetPos","iFF",e);return{fX:t,fY:a}},xo=e=>samp.callNative("TextDrawGetColor","i",e),ko=e=>samp.callNative("TextDrawGetBoxColor","i",e),Mo=e=>samp.callNative("TextDrawGetBackgroundColor","i",e),Ho=e=>samp.callNative("TextDrawGetShadow","i",e),Vo=e=>samp.callNative("TextDrawGetOutline","i",e),Uo=e=>samp.callNative("TextDrawGetFont","i",e),Wo=e=>!!samp.callNative("TextDrawIsBox","i",e),jo=e=>!!samp.callNative("TextDrawIsProportional","i",e),Ko=e=>!!samp.callNative("TextDrawIsSelectable","i",e),Zo=e=>samp.callNative("TextDrawGetAlignment","i",e),Xo=e=>samp.callNative("TextDrawGetPreviewModel","i",e),zo=e=>{const[t=0,a=0,n=0,i=0]=samp.callNative("TextDrawGetPreviewRot","iFFFF",e);return{fRotX:t,fRotY:a,fRotZ:n,fZoom:i}},Yo=e=>{const[t,a]=samp.callNative("TextDrawGetPreviewVehCol","iII",e);return{color1:t,color2:a}},$o=(e,t,a)=>{samp.callNative("TextDrawSetStringForPlayer","iia",e,t,a)},Jo=(e,t,a)=>samp.callNative("TextDrawCreate","ffa",e,t,a),Qo=e=>samp.callNative("TextDrawDestroy","i",e),qo=(e,t,a)=>samp.callNative("TextDrawLetterSize","iff",e,t,a),ed=(e,t,a)=>samp.callNative("TextDrawTextSize","iff",e,t,a),td=(e,t)=>samp.callNative("TextDrawAlignment","ii",e,t),ad=(e,t)=>!!samp.callNative("TextDrawColor","ii",e,E(t)),nd=(e,t)=>samp.callNative("TextDrawUseBox","ii",e,t),id=(e,t)=>!!samp.callNative("TextDrawBoxColor","ii",e,E(t)),rd=(e,t)=>samp.callNative("TextDrawSetShadow","ii",e,t),sd=(e,t)=>samp.callNative("TextDrawSetOutline","ii",e,t),ld=(e,t)=>!!samp.callNative("TextDrawBackgroundColor","ii",e,E(t)),od=(e,t)=>samp.callNative("TextDrawFont","ii",e,t),dd=(e,t)=>samp.callNative("TextDrawSetProportional","ii",e,t),cd=(e,t)=>samp.callNative("TextDrawSetSelectable","ii",e,t),_d=(e,t)=>samp.callNative("TextDrawShowForPlayer","ii",e,t),hd=(e,t)=>samp.callNative("TextDrawHideForPlayer","ii",e,t),ud=e=>samp.callNative("TextDrawShowForAll","i",e),md=e=>samp.callNative("TextDrawHideForAll","i",e),pd=(e,t)=>samp.callNative("TextDrawSetString","ia",e,t),gd=(e,t)=>samp.callNative("TextDrawSetPreviewModel","ii",e,t),Sd=(e,t,a,n,i=1)=>{samp.callNative("TextDrawSetPreviewRot","iffff",e,t,a,n,i)},yd=(e,t,a)=>!!samp.callNative("TextDrawSetPreviewVehCol","iii",e,E(t),E(a)),fd=(e,t)=>{samp.callNative("SelectTextDraw","ii",e,E(t))},Pd=e=>{samp.callNative("CancelSelectTextDraw","i",e)},Id=(e,t)=>!!samp.callNative("IsValidPlayerTextDraw","ii",e,t),Ed=(e,t)=>!!samp.callNative("IsPlayerTextDrawVisible","ii",e,t),Ad=(e,t)=>{const[a]=samp.callNative("PlayerTextDrawGetString","iiSi",e,t,1024);return a},Cd=(e,t,a,n)=>{samp.callNative("PlayerTextDrawSetPos","iiff",e,t,a,n)},Td=(e,t)=>{const[a=0,n=0]=samp.callNative("PlayerTextDrawGetLetterSize","iiFF",e,t);return{fX:a,fY:n}},Dd=(e,t)=>{const[a=0,n=0]=samp.callNative("PlayerTextDrawGetTextSize","iiFF",e,t);return{fX:a,fY:n}},wd=(e,t)=>{const[a=0,n=0]=samp.callNative("PlayerTextDrawGetPos","iiFF",e,t);return{fX:a,fY:n}},Nd=(e,t)=>samp.callNative("PlayerTextDrawGetColor","ii",e,t),vd=(e,t)=>samp.callNative("PlayerTextDrawGetBoxColor","ii",e,t),bd=(e,t)=>samp.callNative("PlayerTextDrawGetBackgroundColor","ii",e,t),Rd=(e,t)=>samp.callNative("PlayerTextDrawGetShadow","ii",e,t),Ld=(e,t)=>samp.callNative("PlayerTextDrawGetOutline","ii",e,t),Od=(e,t)=>samp.callNative("PlayerTextDrawGetFont","ii",e,t),Gd=(e,t)=>!!samp.callNative("PlayerTextDrawIsBox","ii",e,t),Fd=(e,t)=>!!samp.callNative("PlayerTextDrawIsProportional","ii",e,t),Bd=(e,t)=>!!samp.callNative("PlayerTextDrawIsSelectable","ii",e,t),xd=(e,t)=>samp.callNative("PlayerTextDrawGetAlignment","ii",e,t),kd=(e,t)=>samp.callNative("PlayerTextDrawGetPreviewModel","ii",e,t),Md=(e,t)=>{const[a=0,n=0,i=0,r=0]=samp.callNative("PlayerTextDrawGetPreviewRot","iiFFFF",e,t);return{fRotX:a,fRotY:n,fRotZ:i,fZoom:r}},Hd=(e,t)=>{const[a,n]=samp.callNative("PlayerTextDrawGetPreviewVehCol","iiII",e,t);return{color1:a,color2:n}},Vd=(e,t,a,n)=>samp.callNative("CreatePlayerTextDraw","iffa",e,t,a,n),Ud=(e,t)=>{samp.callNative("PlayerTextDrawDestroy","ii",e,t)},Wd=(e,t,a,n)=>samp.callNative("PlayerTextDrawLetterSize","iiff",e,t,a,n),jd=(e,t,a,n)=>samp.callNative("PlayerTextDrawTextSize","iiff",e,t,a,n),Kd=(e,t,a)=>samp.callNative("PlayerTextDrawAlignment","iii",e,t,a),Zd=(e,t,a)=>!!samp.callNative("PlayerTextDrawColor","iii",e,t,E(a)),Xd=(e,t,a)=>samp.callNative("PlayerTextDrawUseBox","iii",e,t,a),zd=(e,t,a)=>!!samp.callNative("PlayerTextDrawBoxColor","iii",e,t,E(a)),Yd=(e,t,a)=>samp.callNative("PlayerTextDrawSetShadow","iii",e,t,a),$d=(e,t,a)=>samp.callNative("PlayerTextDrawSetOutline","iii",e,t,a),Jd=(e,t,a)=>!!samp.callNative("PlayerTextDrawBackgroundColor","iii",e,t,E(a)),Qd=(e,t,a)=>samp.callNative("PlayerTextDrawFont","iii",e,t,a),qd=(e,t,a)=>samp.callNative("PlayerTextDrawSetProportional","iii",e,t,a),ec=(e,t,a)=>samp.callNative("PlayerTextDrawSetSelectable","iii",e,t,a),tc=(e,t)=>samp.callNative("PlayerTextDrawShow","ii",e,t),ac=(e,t)=>samp.callNative("PlayerTextDrawHide","ii",e,t),nc=(e,t,a)=>samp.callNative("PlayerTextDrawSetString","iia",e,t,a),ic=(e,t,a)=>samp.callNative("PlayerTextDrawSetPreviewModel","iii",e,t,a),rc=(e,t,a,n,i,r)=>samp.callNative("PlayerTextDrawSetPreviewRot","iiffff",e,t,a,n,i,r),sc=(e,t,a,n)=>!!samp.callNative("PlayerTextDrawSetPreviewVehCol","iiii",e,t,a,n),lc=(e,t)=>!!samp.callNative("EditAttachedObject","ii",e,t),oc=e=>!!samp.callNative("BeginObjectSelecting","i",e),dc=e=>!!samp.callNative("EndObjectEditing","i",e),cc=e=>!!samp.callNative("SetObjectsDefaultCameraCol","i",e),_c=(e,t,a,n,i)=>samp.callNative("AddSimpleModel","iiiss",e,t,a,n,i),hc=(e,t,a,n,i,r,s)=>samp.callNative("AddSimpleModelTimed","iiissii",e,t,a,n,i,r,s),uc=(e,t)=>samp.callNative("RedirectDownload","is",e,t),mc=e=>{const[t]=samp.callNative("FindModelFileNameFromCRC","iSi",e,255);return t},pc=e=>{const[t]=samp.callNative("FindTextureFileNameFromCRC","iSi",e,255);return t},gc=(e,t)=>{const[a=0,n=0,i=0,r=0,s=0,l=0,o=0,c=0,u=0,g=0,S=0,P=0,y=0]=samp.callNative("GetPlayerAttachedObject","iiIIFFFFFFFFFII",e,t);return{modelId:a,bone:n,fX:i,fY:r,fZ:s,fRotX:l,fRotY:o,fRotZ:c,fScaleX:u,fScaleY:g,fScaleZ:S,materialColor1:P,materialColor2:y}},Sc=(e,t,a,n,i,r,s,l,o,c,u,g,S,P,y)=>samp.callNative("SetPlayerAttachedObject","iiiifffffffffii",e,t,a,n,i,r,s,l,o,c,u,g,S,E(P),E(y)),yc=(e,t)=>samp.callNative("RemovePlayerAttachedObject","ii",e,t),fc=(e,t)=>!!samp.callNative("IsPlayerAttachedObjectSlotUsed","ii",e,t),je=e=>!!samp.callNative("IsValidCustomModel","i",e),Pc=e=>{if(!je(e))return null;const[t,a]=samp.callNative("GetCustomModePath","iSiSi",e,255,255);return{dffPath:t,txdPath:a}};var Ke=(e=>(e[e.DOWNLOAD_REQUEST_EMPTY=0]="DOWNLOAD_REQUEST_EMPTY",e[e.DOWNLOAD_REQUEST_MODEL_FILE=1]="DOWNLOAD_REQUEST_MODEL_FILE",e[e.DOWNLOAD_REQUEST_TEXTURE_FILE=2]="DOWNLOAD_REQUEST_TEXTURE_FILE",e))(Ke||{}),Ze=(e=>(e[e.SCOREBOARD=0]="SCOREBOARD",e))(Ze||{}),Ee=(e=>(e[e.MSGBOX=0]="MSGBOX",e[e.INPUT=1]="INPUT",e[e.LIST=2]="LIST",e[e.PASSWORD=3]="PASSWORD",e[e.TABLIST=4]="TABLIST",e[e.TABLIST_HEADERS=5]="TABLIST_HEADERS",e))(Ee||{}),Xe=(e=>(e[e.CANCEL=0]="CANCEL",e[e.FINAL=1]="FINAL",e[e.UPDATE=2]="UPDATE",e))(Xe||{}),ze=(e=>(e[e.NO_ACTION=0]="NO_ACTION",e[e.DISCONNECT_ASAP=1]="DISCONNECT_ASAP",e[e.DISCONNECT_ASAP_SILENTLY=2]="DISCONNECT_ASAP_SILENTLY",e[e.DISCONNECT_ON_NO_ACK=3]="DISCONNECT_ON_NO_ACK",e[e.REQUESTED_CONNECTION=4]="REQUESTED_CONNECTION",e[e.HANDLING_CONNECTION_REQUEST=5]="HANDLING_CONNECTION_REQUEST",e[e.UNVERIFIED_SENDER=6]="UNVERIFIED_SENDER",e[e.SET_ENCRYPTION_ON_MULTIPLE_16_BYTE_PACKET=7]="SET_ENCRYPTION_ON_MULTIPLE_16_BYTE_PACKET",e[e.CONNECTED=8]="CONNECTED",e))(ze||{}),w=(e=>(e[e.NO_TEAM=255]="NO_TEAM",e[e.PLAYER_ID=65535]="PLAYER_ID",e[e.VEHICLE_ID=65535]="VEHICLE_ID",e[e.ACTOR_ID=65535]="ACTOR_ID",e[e.OBJECT_ID=65535]="OBJECT_ID",e[e.MENU=-1]="MENU",e[e.TEXT_DRAW=65535]="TEXT_DRAW",e[e.PLAYER_TEXT_DRAW=65535]="PLAYER_TEXT_DRAW",e[e.GANG_ZONE=-1]="GANG_ZONE",e[e._3DTEXT_ID=65535]="_3DTEXT_ID",e[e.PLAYER_3DTEXT_ID=65535]="PLAYER_3DTEXT_ID",e))(w||{}),Ye=(e=>(e[e.NONE=0]="NONE",e[e.ACTION=1]="ACTION",e[e.CROUCH=2]="CROUCH",e[e.FIRE=4]="FIRE",e[e.SPRINT=8]="SPRINT",e[e.SECONDARY_ATTACK=16]="SECONDARY_ATTACK",e[e.JUMP=32]="JUMP",e[e.LOOK_RIGHT=64]="LOOK_RIGHT",e[e.HANDBRAKE=128]="HANDBRAKE",e[e.LOOK_LEFT=256]="LOOK_LEFT",e[e.SUBMISSION=512]="SUBMISSION",e[e.LOOK_BEHIND=512]="LOOK_BEHIND",e[e.WALK=1024]="WALK",e[e.ANALOG_UP=2048]="ANALOG_UP",e[e.ANALOG_DOWN=4096]="ANALOG_DOWN",e[e.ANALOG_LEFT=8192]="ANALOG_LEFT",e[e.ANALOG_RIGHT=16384]="ANALOG_RIGHT",e[e.YES=65536]="YES",e[e.NO=131072]="NO",e[e.CTRL_BACK=262144]="CTRL_BACK",e[e.KEY_UP=-128]="KEY_UP",e[e.KEY_DOWN=128]="KEY_DOWN",e[e.KEY_LEFT=-128]="KEY_LEFT",e[e.KEY_RIGHT=128]="KEY_RIGHT",e))(Ye||{}),M=(e=>(e[e.MAX_PLAYER_NAME=24]="MAX_PLAYER_NAME",e[e.MAX_PLAYERS=1e3]="MAX_PLAYERS",e[e.MAX_VEHICLES=2e3]="MAX_VEHICLES",e[e.MAX_ACTORS=1e3]="MAX_ACTORS",e[e.MAX_OBJECTS=1e3]="MAX_OBJECTS",e[e.MAX_GANG_ZONES=1024]="MAX_GANG_ZONES",e[e.MAX_TEXT_DRAWS=2048]="MAX_TEXT_DRAWS",e[e.MAX_PLAYER_TEXT_DRAWS=256]="MAX_PLAYER_TEXT_DRAWS",e[e.MAX_MENUS=128]="MAX_MENUS",e[e.MAX_MENU_ROW=12]="MAX_MENU_ROW",e[e.MAX_MENU_COL=2]="MAX_MENU_COL",e[e.MAX_3DTEXT_GLOBAL=1024]="MAX_3DTEXT_GLOBAL",e[e.MAX_3DTEXT_PLAYER=1024]="MAX_3DTEXT_PLAYER",e[e.MAX_PICKUPS=4096]="MAX_PICKUPS",e[e.MAX_PLAYER_ATTACHED_OBJECTS=10]="MAX_PLAYER_ATTACHED_OBJECTS",e[e.MAX_CHATBUBBLE_LENGTH=144]="MAX_CHATBUBBLE_LENGTH",e))(M||{}),$e=(e=>(e[e.OFF=0]="OFF",e[e.GLOBAL=1]="GLOBAL",e[e.STREAMED=2]="STREAMED",e))($e||{}),Je=(e=>(e[e.NONE=1]="NONE",e[e.DRIVER=2]="DRIVER",e[e.ONFOOT=3]="ONFOOT",e))(Je||{}),H=(e=>(e[e.none=0]="none",e[e.start=1]="start",e[e.pause=2]="pause",e))(H||{}),Qe=(e=>(e[e._32x32=10]="_32x32",e[e._64x32=20]="_64x32",e[e._64x64=30]="_64x64",e[e._128x32=40]="_128x32",e[e._128x64=50]="_128x64",e[e._128x128=60]="_128x128",e[e._256x32=70]="_256x32",e[e._256x64=80]="_256x64",e[e._256x128=90]="_256x128",e[e._256x256=100]="_256x256",e[e._512x64=110]="_512x64",e[e._512x128=120]="_512x128",e[e._512x256=130]="_512x256",e[e._512x512=140]="_512x512",e))(Qe||{}),qe=(e=>(e[e.LEFT=0]="LEFT",e[e.CENTER=1]="CENTER",e[e.RIGHT=2]="RIGHT",e))(qe||{}),et=(e=>(e[e.GLOBAL_OBJECT=1]="GLOBAL_OBJECT",e[e.PLAYER_OBJECT=2]="PLAYER_OBJECT",e))(et||{}),tt=(e=>(e[e.NORMAL=0]="NORMAL",e[e.BOXING=1]="BOXING",e[e.KUNGFU=2]="KUNGFU",e[e.KNEEHEAD=3]="KNEEHEAD",e[e.GRABKICK=4]="GRABKICK",e[e.ELBOW=5]="ELBOW",e))(tt||{}),at=(e=>(e[e.LOCAL=0]="LOCAL",e[e.GLOBAL=1]="GLOBAL",e[e.LOCAL_CHECKPOINT=2]="LOCAL_CHECKPOINT",e[e.GLOBAL_CHECKPOINT=3]="GLOBAL_CHECKPOINT",e))(at||{}),de=(e=>(e[e.MOVE=1]="MOVE",e[e.CUT=2]="CUT",e))(de||{}),nt=(e=>(e[e.BEHINDCAR=3]="BEHINDCAR",e[e.FOLLOWPED=4]="FOLLOWPED",e[e.SNIPER=7]="SNIPER",e[e.ROCKETLAUNCHER=8]="ROCKETLAUNCHER",e[e.FIXED=15]="FIXED",e[e._1STPERSON=16]="_1STPERSON",e[e.CAM_ON_A_STRING=18]="CAM_ON_A_STRING",e[e.BEHINDBOAT=22]="BEHINDBOAT",e[e.CAMERA=46]="CAMERA",e[e.ROCKETLAUNCHER_HS=51]="ROCKETLAUNCHER_HS",e[e.AIMWEAPON=53]="AIMWEAPON",e[e.AIMWEAPON_FROMCAR=55]="AIMWEAPON_FROMCAR",e[e.DW_HELI_CHASE=56]="DW_HELI_CHASE",e[e.DW_CAM_MAN=57]="DW_CAM_MAN",e[e.DW_BIRDY=58]="DW_BIRDY",e[e.DW_PLANE_SPOTTER=59]="DW_PLANE_SPOTTER",e[e.DW_PLANECAM1=62]="DW_PLANECAM1",e[e.DW_PLANECAM2=63]="DW_PLANECAM2",e[e.DW_PLANECAM3=64]="DW_PLANECAM3",e))(nt||{}),ge=(e=>(e[e.NORMAL=1]="NORMAL",e[e.FIXED=2]="FIXED",e[e.SIDE=3]="SIDE",e))(ge||{}),ce=(e=>(e[e.NONE=0]="NONE",e[e.ONFOOT=1]="ONFOOT",e[e.DRIVER=2]="DRIVER",e[e.PASSENGER=3]="PASSENGER",e[e.EXIT_VEHICLE=4]="EXIT_VEHICLE",e[e.ENTER_VEHICLE_DRIVER=5]="ENTER_VEHICLE_DRIVER",e[e.ENTER_VEHICLE_PASSENGER=6]="ENTER_VEHICLE_PASSENGER",e[e.WASTED=7]="WASTED",e[e.SPAWNED=8]="SPAWNED",e[e.SPECTATING=9]="SPECTATING",e))(ce||{}),it=(e=>(e[e.TORSO=3]="TORSO",e[e.GROIN=4]="GROIN",e[e.LEFT_ARM=5]="LEFT_ARM",e[e.RIGHT_ARM=6]="RIGHT_ARM",e[e.LEFT_LEG=7]="LEFT_LEG",e[e.RIGHT_LEG=8]="RIGHT_LEG",e[e.HEAD=9]="HEAD",e))(it||{}),rt=(e=>(e[e.Spine=1]="Spine",e[e.Head=2]="Head",e[e.LeftUpperArm=3]="LeftUpperArm",e[e.RightUpperArm=4]="RightUpperArm",e[e.LeftHand=5]="LeftHand",e[e.RightHand=6]="RightHand",e[e.LeftThigh=7]="LeftThigh",e[e.RightThigh=8]="RightThigh",e[e.LeftFoot=9]="LeftFoot",e[e.RightFoot=10]="RightFoot",e[e.RightCalf=11]="RightCalf",e[e.LeftCalf=12]="LeftCalf",e[e.LeftForearm=13]="LeftForearm",e[e.RightForearm=14]="RightForearm",e[e.LeftClavicle=15]="LeftClavicle",e[e.RightClavicle=16]="RightClavicle",e[e.Neck=17]="Neck",e[e.Jaw=18]="Jaw",e))(rt||{}),st=(e=>(e[e.UNKNOWN=-1]="UNKNOWN",e[e.NONE=0]="NONE",e[e.ALL=1]="ALL",e[e.OTHER=2]="OTHER",e))(st||{}),Ae=(e=>(e[e.NONE=0]="NONE",e[e.DUCK=1]="DUCK",e[e.USEJETPACK=2]="USEJETPACK",e[e.ENTER_VEHICLE=3]="ENTER_VEHICLE",e[e.EXIT_VEHICLE=4]="EXIT_VEHICLE",e[e.DANCE1=5]="DANCE1",e[e.DANCE2=6]="DANCE2",e[e.DANCE3=7]="DANCE3",e[e.DANCE4=8]="DANCE4",e[e.HANDSUP=10]="HANDSUP",e[e.USECELLPHONE=11]="USECELLPHONE",e[e.SITTING=12]="SITTING",e[e.STOPUSECELLPHONE=13]="STOPUSECELLPHONE",e[e.DRINK_BEER=20]="DRINK_BEER",e[e.SMOKE_CIGGY=21]="SMOKE_CIGGY",e[e.DRINK_WINE=22]="DRINK_WINE",e[e.DRINK_SPRUNK=23]="DRINK_SPRUNK",e[e.CUFFED=24]="CUFFED",e[e.CARRY=25]="CARRY",e[e.PISSING=68]="PISSING",e))(Ae||{}),_e=(e=>(e[e.FONT_0=0]="FONT_0",e[e.FONT_1=1]="FONT_1",e[e.FONT_2=2]="FONT_2",e[e.FONT_3=3]="FONT_3",e[e.SPRITE_DRAW=4]="SPRITE_DRAW",e[e.MODEL_PREVIEW=5]="MODEL_PREVIEW",e[e.BANK=0]="BANK",e[e.STANDARD=1]="STANDARD",e[e.SPACEAGE=2]="SPACEAGE",e[e.HEADING=3]="HEADING",e[e.BECKETT_REGULAR=0]="BECKETT_REGULAR",e[e.AHARONI_BOLD=1]="AHARONI_BOLD",e[e.BANK_GOTHIC=2]="BANK_GOTHIC",e[e.PRICEDOWN=3]="PRICEDOWN",e[e.SPRITE=4]="SPRITE",e[e.PREVIEW=5]="PREVIEW",e))(_e||{}),lt=(e=>(e[e.LEFT=1]="LEFT",e[e.CENTER=2]="CENTER",e[e.RIGHT=3]="RIGHT",e))(lt||{}),ot=(e=>(e[e.UNKNOWN=-1]="UNKNOWN",e[e.NONE=-1]="NONE",e[e.SPOILER=0]="SPOILER",e[e.HOOD=1]="HOOD",e[e.ROOF=2]="ROOF",e[e.SIDESKIRT=3]="SIDESKIRT",e[e.LAMPS=4]="LAMPS",e[e.NITRO=5]="NITRO",e[e.EXHAUST=6]="EXHAUST",e[e.WHEELS=7]="WHEELS",e[e.STEREO=8]="STEREO",e[e.HYDRAULICS=9]="HYDRAULICS",e[e.FRONT_BUMPER=10]="FRONT_BUMPER",e[e.REAR_BUMPER=11]="REAR_BUMPER",e[e.VENT_RIGHT=12]="VENT_RIGHT",e[e.VENT_LEFT=13]="VENT_LEFT",e[e.FRONT_BULLBAR=14]="FRONT_BULLBAR",e[e.REAR_BULLBAR=15]="REAR_BULLBAR",e))(ot||{}),dt=(e=>(e[e.UNSET=-1]="UNSET",e[e.OFF=0]="OFF",e[e.ON=1]="ON",e))(dt||{}),ct=(e=>(e[e.SIZE=1]="SIZE",e[e.FRONTSEAT=2]="FRONTSEAT",e[e.REARSEAT=3]="REARSEAT",e[e.PETROLCAP=4]="PETROLCAP",e[e.WHEELSFRONT=5]="WHEELSFRONT",e[e.WHEELSREAR=6]="WHEELSREAR",e[e.WHEELSMID=7]="WHEELSMID",e[e.FRONT_BUMPER_Z=8]="FRONT_BUMPER_Z",e[e.REAR_BUMPER_Z=9]="REAR_BUMPER_Z",e))(ct||{}),_t=(e=>(e[e.UNKNOWN=-1]="UNKNOWN",e[e.REASON_VEHICLE=49]="REASON_VEHICLE",e[e.REASON_DROWN=53]="REASON_DROWN",e[e.REASON_COLLISION=54]="REASON_COLLISION",e[e.REASON_SPLAT=54]="REASON_SPLAT",e[e.REASON_CONNECT=200]="REASON_CONNECT",e[e.REASON_DISCONNECT=200]="REASON_DISCONNECT",e[e.REASON_SUICIDE=255]="REASON_SUICIDE",e[e.FIST=0]="FIST",e[e.BRASSKNUCKLE=1]="BRASSKNUCKLE",e[e.GOLFCLUB=2]="GOLFCLUB",e[e.NITESTICK=3]="NITESTICK",e[e.KNIFE=4]="KNIFE",e[e.BAT=5]="BAT",e[e.SHOVEL=6]="SHOVEL",e[e.POOLSTICK=7]="POOLSTICK",e[e.KATANA=8]="KATANA",e[e.CHAINSAW=9]="CHAINSAW",e[e.DILDO=10]="DILDO",e[e.DILDO2=11]="DILDO2",e[e.VIBRATOR=12]="VIBRATOR",e[e.VIBRATOR2=13]="VIBRATOR2",e[e.FLOWER=14]="FLOWER",e[e.CANE=15]="CANE",e[e.GRENADE=16]="GRENADE",e[e.TEARGAS=17]="TEARGAS",e[e.MOLTOV=18]="MOLTOV",e[e.COLT45=22]="COLT45",e[e.SILENCED=23]="SILENCED",e[e.DEAGLE=24]="DEAGLE",e[e.SHOTGUN=25]="SHOTGUN",e[e.SAWEDOFF=26]="SAWEDOFF",e[e.SHOTGSPA=27]="SHOTGSPA",e[e.UZI=28]="UZI",e[e.MP5=29]="MP5",e[e.AK47=30]="AK47",e[e.M4=31]="M4",e[e.TEC9=32]="TEC9",e[e.RIFLE=33]="RIFLE",e[e.SNIPER=34]="SNIPER",e[e.ROCKETLAUNCHER=35]="ROCKETLAUNCHER",e[e.HEATSEEKER=36]="HEATSEEKER",e[e.FLAMETHROWER=37]="FLAMETHROWER",e[e.MINIGUN=38]="MINIGUN",e[e.SATCHEL=39]="SATCHEL",e[e.BOMB=40]="BOMB",e[e.SPRAYCAN=41]="SPRAYCAN",e[e.FIREEXTINGUISHER=42]="FIREEXTINGUISHER",e[e.CAMERA=43]="CAMERA",e[e.NIGHT_VISION_GOGGLES=44]="NIGHT_VISION_GOGGLES",e[e.THERMAL_GOGGLES=45]="THERMAL_GOGGLES",e[e.PARACHUTE=46]="PARACHUTE",e))(_t||{}),ht=(e=>(e[e.PISTOL=0]="PISTOL",e[e.PISTOL_SILENCED=1]="PISTOL_SILENCED",e[e.DESERT_EAGLE=2]="DESERT_EAGLE",e[e.SHOTGUN=3]="SHOTGUN",e[e.SAWNOFF_SHOTGUN=4]="SAWNOFF_SHOTGUN",e[e.SPAS12_SHOTGUN=5]="SPAS12_SHOTGUN",e[e.MICRO_UZI=6]="MICRO_UZI",e[e.MP5=7]="MP5",e[e.AK47=8]="AK47",e[e.M4=9]="M4",e[e.SNIPERRIFLE=10]="SNIPERRIFLE",e))(ht||{}),ut=(e=>(e[e.NONE=0]="NONE",e[e.PLAYER=1]="PLAYER",e[e.VEHICLE=2]="VEHICLE",e[e.OBJECT=3]="OBJECT",e[e.PLAYER_OBJECT=4]="PLAYER_OBJECT",e))(ut||{}),mt=(e=>(e[e.UNKNOWN=-1]="UNKNOWN",e[e.NO_BULLETS=0]="NO_BULLETS",e[e.LAST_BULLET=1]="LAST_BULLET",e[e.MORE_BULLETS=2]="MORE_BULLETS",e[e.RELOADING=3]="RELOADING",e))(mt||{}),Ce=(e=>(e[e.VEHICLE=49]="VEHICLE",e[e.HELICOPTERBLADES=50]="HELICOPTERBLADES",e[e.EXPLOSION=51]="EXPLOSION",e[e.DROWN=53]="DROWN",e[e.COLLISION=54]="COLLISION",e[e.CONNECT=200]="CONNECT",e[e.DISCONNECT=201]="DISCONNECT",e[e.SUICIDE=255]="SUICIDE",e))(Ce||{}),pt=(e=>(e[e.NONE=0]="NONE",e[e.DRIVER=1]="DRIVER",e[e.ONFOOT=2]="ONFOOT",e))(pt||{});class N{static npcs=new Map;id=w.PLAYER_ID;name="";static recordStatus;constructor(t){const a=samp.callNative("NPC_Create","s",t);if(this.id=a,this.name=t,a!==w.PLAYER_ID){const n=N.getInstance(a);if(n)return n}return N.npcs.set(a,this),this}getName(){return this.name}destroy(){return samp.callNative("NPC_Destroy","i",this.id),this}isValid(){return!!samp.callNative("NPC_IsValid","i",this.id)}spawn(){return samp.callNative("NPC_Spawn","i",this.id),this}setPos(t,a,n){return samp.callNative("NPC_SetPos","ifff",this.id,t,a,n),this}setRot(t,a,n){return samp.callNative("NPC_SetRot","ifff",this.id,t,a,n),this}getRot(){const[t,a,n]=samp.callNative("NPC_GetRot","iFFF",this.id);return{rX:t,rY:a,rZ:n}}setFacingAngle(t){return samp.callNative("NPC_SetFacingAngle","if",this.id,t),this}getFacingAngle(){const[t]=samp.callNative("NPC_GetFacingAngle","iF",this.id);return t}setVirtualWorld(t){return samp.callNative("NPC_SetVirtualWorld","ii",this.id,t),this}getVirtualWorld(){const[t]=samp.callNative("NPC_GetVirtualWorld","iI",this.id);return t}move(t,a,n,i,r=-1){return!!samp.callNative("NPC_Move","ifffif",this.id,t,a,n,i,r)}stopMove(){return samp.callNative("NPC_StopMove","i",this.id),this}isMoving(){return!!samp.callNative("NPC_IsMoving","ifffif",this.id)}setSkin(t){return samp.callNative("NPC_SetSkin","ii",this.id,t),this}isStreamedIn(t){return!!samp.callNative("NPC_IsStreamedIn","ii",this.id,t.id)}isAnyStreamedIn(){return!!samp.callNative("NPC_IsAnyStreamedIn","i",this.id)}setInterior(t){return samp.callNative("NPC_SetInterior","ii",this.id,t),this}getInterior(){return samp.callNative("NPC_GetInterior","i",this.id)}setHealth(t){return samp.callNative("NPC_SetHealth","if",this.id,t),this}getHealth(){return samp.callNativeFloat("NPC_GetHealth","i",this.id)}setArmour(t){return samp.callNative("NPC_SetArmour","if",this.id,t),this}getArmour(){return samp.callNativeFloat("NPC_GetArmour","i",this.id)}isDead(){return!!samp.callNative("NPC_IsDead","i",this.id)}applyAnimation(t,a,n,i,r,s,l,o,c){return samp.callNative("NPC_ApplyAnimation","issfiiiiii",this.id,t,a,n,i,r,s,l,o,c),this}setWeapon(t){return samp.callNative("NPC_SetWeapon","ii",this.id,t),this}getWeapon(){return samp.callNative("NPC_GetWeapon","i",this.id)}setAmmo(t){return samp.callNative("NPC_SetAmmo","ii",this.id,t),this}getAmmo(){return samp.callNative("NPC_GetAmmo","ii",this.id)}setKeys(t,a,n){return samp.callNative("NPC_SetKeys","iiii",t,a,n),this}getKeys(){const[t,a,n]=samp.callNative("NPC_GetKeys","iIII",this.id);return{upAndDown:t,leftAndDown:a,keys:n}}setWeaponSkillLevel(t,a){return samp.callNative("NPC_SetWeaponSkillLevel","iii",this.id,t,a),this}getWeaponSkillLevel(t){return samp.callNative("NPC_GetWeaponSkillLevel","ii",this.id,t)}meleeAttack(t,a){return samp.callNative("NPC_MeleeAttack","iii",this.id,t,a),this}stopMeleeAttack(){return samp.callNative("NPC_StopMeleeAttack","i",this.id),this}isMeleeAttacking(){return!!samp.callNative("NPC_IsMeleeAttacking","i",this.id)}setFightingStyle(t){return samp.callNative("NPC_SetFightingStyle","ii",this.id,t),this}getFightingStyle(){return samp.callNative("NPC_GetFightingStyle","i",this.id)}enableReloading(t){return samp.callNative("NPC_EnableReloading","ii",this.id,t),this}isReloadEnabled(){return!!samp.callNative("NPC_IsReloadEnabled","i",this.id)}isReloading(){return!!samp.callNative("NPC_IsReloading","i",this.id)}enableInfiniteAmmo(t){return samp.callNative("NPC_EnableInfiniteAmmo","ii",this.id,t),this}isInfiniteAmmoEnabled(){return!!samp.callNative("NPC_IsInfiniteAmmoEnabled","i",this.id)}getWeaponState(){return samp.callNative("NPC_GetWeaponState","i",this.id)}setAmmoInClip(t){return samp.callNative("NPC_SetAmmoInClip","ii",this.id,t),this}getAmmoInClip(){return samp.callNative("NPC_GetAmmoInClip","i",this.id)}shoot(t,a,n,i,r,s,l,o,c,u,g){return samp.callNative("NPC_Shoot","iiiffffffii",this.id,t,a,n,i,r,s,l,o,c,u,g),this}isShooting(){return!!samp.callNative("NPC_IsShooting","i",this.id)}aimAt(t,a,n,i,r,s,l,o,c,u){return samp.callNative("NPC_AimAt","ifffiiifffi",this.id,t,a,n,i,r,s,l,o,c,u),this}aimAtPlayer(t,a,n,i,r,s,l,o,c,u,g){return samp.callNative("NPC_AimAtPlayer","iiiiiffffffi",this.id,t.id,a,n,i,r,s,l,o,c,u,g),this}stopAim(){return samp.callNative("NPC_StopAim","i",this.id),this}isAiming(){return!!samp.callNative("NPC_IsAiming","i",this.id)}isAimingAtPlayer(t){return!!samp.callNative("NPC_IsAimingAtPlayer","ii",this.id,t.id)}setWeaponAccuracy(t,a){return samp.callNative("NPC_SetWeaponAccuracy","iif",this.id,t,a),this}getWeaponAccuracy(t){return samp.callNativeFloat("NPC_GetWeaponAccuracy","ii",this.id,t)}enterVehicle(t,a,n){return samp.callNative("NPC_EnterVehicle","iiii",this.id,t,a,n),this}exitVehicle(){return samp.callNative("NPC_ExitVehicle","i",this.id),this}static connect=ba;static startRecordingPlayerData(t,a,n){if(t.isRecording)throw new Error("[NpcFunc]: It should be stopped before recording");Sr(t.id,a,n),t.isRecording=!0}static stopRecordingPlayerData(t){if(!t.isRecording)throw new Error("[NpcFunc]: It should be started before stop");yr(t.id),t.isRecording=!1}static startRecordingPlayback(t,a){if(N.recordStatus>=H.start)throw new Error("[NpcFunc]: The current status cannot be replayed");Kr(t,a),N.recordStatus=H.start}static stopRecordingPlayback(){if(N.recordStatus<H.start)throw new Error("[NpcFunc]: The current status cannot be stopped");Zr(),N.recordStatus=H.none}static pauseRecordingPlayback(){if(N.recordStatus!==H.start)throw new Error("[NpcFunc]: The current status cannot be paused");Xr(),N.recordStatus=H.pause}static resumeRecordingPlayback(){if(N.recordStatus!==H.pause)throw new Error("[NpcFunc]: The current status cannot be paused");zr(),N.recordStatus=H.start}static getInstance(t){return this.npcs.get(t)}static getInstances(){return[...this.npcs.values()]}}const gt=new Map([["AIRPORT",[{n:"thrw_barl_thrw",d:2}]],["ATTRACTORS",[{n:"Stepsit_in",d:1.67},{n:"Stepsit_loop",d:3.33},{n:"Stepsit_out",d:1.67}]],["BAR",[{n:"Barcustom_get",d:3},{n:"Barcustom_loop",d:2},{n:"Barcustom_order",d:3.67},{n:"BARman_idle",d:8.33},{n:"Barserve_bottle",d:3},{n:"Barserve_give",d:2.33},{n:"Barserve_glass",d:3.67},{n:"Barserve_in",d:1.67},{n:"Barserve_loop",d:2.33},{n:"Barserve_order",d:3.67},{n:"dnk_stndF_loop",d:2.33},{n:"dnk_stndM_loop",d:2.33}]],["BASEBALL",[{n:"Bat_1",d:.9},{n:"Bat_2",d:1.13},{n:"Bat_3",d:1.2},{n:"Bat_4",d:1},{n:"Bat_block",d:.47},{n:"Bat_Hit_1",d:.83},{n:"Bat_Hit_2",d:1.07},{n:"Bat_Hit_3",d:1.13},{n:"Bat_IDLE",d:.93},{n:"Bat_M",d:.53},{n:"BAT_PART",d:.53}]],["BD_FIRE",[{n:"BD_Fire1",d:1.83},{n:"BD_Fire2",d:1.67},{n:"BD_Fire3",d:1.83},{n:"BD_GF_Wave",d:5.07},{n:"BD_Panic_01",d:3.33},{n:"BD_Panic_02",d:3.33},{n:"BD_Panic_03",d:3.33},{n:"BD_Panic_04",d:3.33},{n:"BD_Panic_Loop",d:3.33},{n:"Grlfrd_Kiss_03",d:7},{n:"M_smklean_loop",d:5},{n:"Playa_Kiss_03",d:7},{n:"wash_up",d:3}]],["BEACH",[{n:"bather",d:4.2},{n:"Lay_Bac_Loop",d:2.67},{n:"ParkSit_M_loop",d:3.67},{n:"ParkSit_W_loop",d:3.33},{n:"SitnWait_loop_W",d:1.33}]],["benchpress",[{n:"gym_bp_celebrate",d:5},{n:"gym_bp_down",d:1},{n:"gym_bp_getoff",d:8.67},{n:"gym_bp_geton",d:5.33},{n:"gym_bp_up_A",d:2.33},{n:"gym_bp_up_B",d:2.67},{n:"gym_bp_up_smooth",d:1.33}]],["BF_injection",[{n:"BF_getin_LHS",d:1},{n:"BF_getin_RHS",d:1},{n:"BF_getout_LHS",d:1.13},{n:"BF_getout_RHS",d:1.13}]],["BIKED",[{n:"BIKEd_Back",d:.1},{n:"BIKEd_drivebyFT",d:.2},{n:"BIKEd_drivebyLHS",d:.2},{n:"BIKEd_drivebyRHS",d:.2},{n:"BIKEd_Fwd",d:.2},{n:"BIKEd_getoffBACK",d:1.47},{n:"BIKEd_getoffLHS",d:1},{n:"BIKEd_getoffRHS",d:1},{n:"BIKEd_hit",d:.03},{n:"BIKEd_jumponL",d:.97},{n:"BIKEd_jumponR",d:.97},{n:"BIKEd_kick",d:1.07},{n:"BIKEd_Left",d:.1},{n:"BIKEd_passenger",d:.03},{n:"BIKEd_pushes",d:.8},{n:"BIKEd_Ride",d:.03},{n:"BIKEd_Right",d:.1},{n:"BIKEd_shuffle",d:.43},{n:"BIKEd_Still",d:.03}]],["BIKEH",[{n:"BIKEh_Back",d:.1},{n:"BIKEh_drivebyFT",d:.2},{n:"BIKEh_drivebyLHS",d:.2},{n:"BIKEh_drivebyRHS",d:.2},{n:"BIKEh_Fwd",d:.2},{n:"BIKEh_getoffBACK",d:1.7},{n:"BIKEh_getoffLHS",d:.77},{n:"BIKEh_getoffRHS",d:.73},{n:"BIKEh_hit",d:.03},{n:"BIKEh_jumponL",d:1.47},{n:"BIKEh_jumponR",d:1.5},{n:"BIKEh_kick",d:1.07},{n:"BIKEh_Left",d:.13},{n:"BIKEh_passenger",d:.03},{n:"BIKEh_pushes",d:.97},{n:"BIKEh_Ride",d:.03},{n:"BIKEh_Right",d:.13},{n:"BIKEh_Still",d:.03}]],["BIKELEAP",[{n:"bk_blnce_in",d:1.9},{n:"bk_blnce_out",d:1},{n:"bk_jmp",d:.4},{n:"bk_rdy_in",d:.5},{n:"bk_rdy_out",d:.4},{n:"struggle_cesar",d:.47},{n:"struggle_driver",d:.47},{n:"truck_driver",d:.73},{n:"truck_getin",d:2.5}]],["BIKES",[{n:"BIKEs_Back",d:.1},{n:"BIKEs_drivebyFT",d:.2},{n:"BIKEs_drivebyLHS",d:.2},{n:"BIKEs_drivebyRHS",d:.2},{n:"BIKEs_Fwd",d:.2},{n:"BIKEs_getoffBACK",d:2.43},{n:"BIKEs_getoffLHS",d:1.1},{n:"BIKEs_getoffRHS",d:1.1},{n:"BIKEs_hit",d:.03},{n:"BIKEs_jumponL",d:.9},{n:"BIKEs_jumponR",d:.9},{n:"BIKEs_kick",d:1},{n:"BIKEs_Left",d:.1},{n:"BIKEs_passenger",d:.03},{n:"BIKEs_pushes",d:.73},{n:"BIKEs_Ride",d:.03},{n:"BIKEs_Right",d:.1},{n:"BIKEs_Snatch_L",d:.43},{n:"BIKEs_Snatch_R",d:.43},{n:"BIKEs_Still",d:.03}]],["BIKEV",[{n:"BIKEv_Back",d:.17},{n:"BIKEv_drivebyFT",d:.17},{n:"BIKEv_drivebyLHS",d:.23},{n:"BIKEv_drivebyRHS",d:.2},{n:"BIKEv_Fwd",d:.2},{n:"BIKEv_getoffBACK",d:1.7},{n:"BIKEv_getoffLHS",d:.67},{n:"BIKEv_getoffRHS",d:.67},{n:"BIKEv_hit",d:.03},{n:"BIKEv_jumponL",d:.67},{n:"BIKEv_jumponR",d:.67},{n:"BIKEv_kick",d:1},{n:"BIKEv_Left",d:.1},{n:"BIKEv_passenger",d:.03},{n:"BIKEv_pushes",d:.73},{n:"BIKEv_Ride",d:.03},{n:"BIKEv_Right",d:.1},{n:"BIKEv_Still",d:.03}]],["BIKE_DBZ",[{n:"Pass_Driveby_BWD",d:.83},{n:"Pass_Driveby_FWD",d:.83},{n:"Pass_Driveby_LHS",d:.83},{n:"Pass_Driveby_RHS",d:.83}]],["BLOWJOBZ",[{n:"BJ_Car_End_P",d:4.13},{n:"BJ_Car_End_W",d:3.67},{n:"BJ_Car_Loop_P",d:.67},{n:"BJ_Car_Loop_W",d:.67},{n:"BJ_Car_Start_P",d:2.33},{n:"BJ_Car_Start_W",d:2.33},{n:"BJ_Couch_End_P",d:7.67},{n:"BJ_Couch_End_W",d:7.67},{n:"BJ_Couch_Loop_P",d:2},{n:"BJ_Couch_Loop_W",d:2},{n:"BJ_Couch_Start_P",d:5.33},{n:"BJ_Couch_Start_W",d:5.33},{n:"BJ_Stand_End_P",d:4.87},{n:"BJ_Stand_End_W",d:5.33},{n:"BJ_Stand_Loop_P",d:.67},{n:"BJ_Stand_Loop_W",d:.67},{n:"BJ_Stand_Start_P",d:2},{n:"BJ_Stand_Start_W",d:2}]],["BMX",[{n:"BMX_back",d:.1},{n:"BMX_bunnyhop",d:.33},{n:"BMX_drivebyFT",d:.2},{n:"BMX_driveby_LHS",d:.2},{n:"BMX_driveby_RHS",d:.2},{n:"BMX_fwd",d:.13},{n:"BMX_getoffBACK",d:1.37},{n:"BMX_getoffLHS",d:.73},{n:"BMX_getoffRHS",d:.63},{n:"BMX_jumponL",d:.9},{n:"BMX_jumponR",d:.9},{n:"BMX_Left",d:.13},{n:"BMX_pedal",d:.73},{n:"BMX_pushes",d:.8},{n:"BMX_Ride",d:.03},{n:"BMX_Right",d:.13},{n:"BMX_sprint",d:.67},{n:"BMX_still",d:.03}]],["BOMBER",[{n:"BOM_Plant",d:2.67},{n:"BOM_Plant_2Idle",d:1},{n:"BOM_Plant_Crouch_In",d:.8},{n:"BOM_Plant_Crouch_Out",d:.8},{n:"BOM_Plant_In",d:.87},{n:"BOM_Plant_Loop",d:.8}]],["BOX",[{n:"boxhipin",d:6.53},{n:"boxhipup",d:5},{n:"boxshdwn",d:6.1},{n:"boxshup",d:5.2},{n:"bxhipwlk",d:1.5},{n:"bxhwlki",d:.97},{n:"bxshwlk",d:2.5},{n:"bxshwlki",d:.97},{n:"bxwlko",d:.53},{n:"catch_box",d:1.5}]],["BSKTBALL",[{n:"BBALL_def_jump_shot",d:1.17},{n:"BBALL_def_loop",d:1},{n:"BBALL_def_stepL",d:.6},{n:"BBALL_def_stepR",d:.6},{n:"BBALL_Dnk",d:1.4},{n:"BBALL_Dnk_Gli",d:.37},{n:"BBALL_Dnk_Gli_O",d:.37},{n:"BBALL_Dnk_Lnch",d:.2},{n:"BBALL_Dnk_Lnch_O",d:.2},{n:"BBALL_Dnk_Lnd",d:.93},{n:"BBALL_Dnk_O",d:.1},{n:"BBALL_idle",d:2.43},{n:"BBALL_idle2",d:2.67},{n:"BBALL_idle2_O",d:2.67},{n:"BBALL_idleloop",d:.67},{n:"BBALL_idleloop_O",d:.67},{n:"BBALL_idle_O",d:2.43},{n:"BBALL_Jump_Cancel",d:1.07},{n:"BBALL_Jump_Cancel_O",d:1.07},{n:"BBALL_Jump_End",d:.93},{n:"BBALL_Jump_Shot",d:1.67},{n:"BBALL_Jump_Shot_O",d:.67},{n:"BBALL_Net_Dnk_O",d:1.83},{n:"BBALL_pickup",d:1.83},{n:"BBALL_pickup_O",d:1.83},{n:"BBALL_react_miss",d:.8},{n:"BBALL_react_score",d:1.1},{n:"BBALL_run",d:.9},{n:"BBALL_run_O",d:.9},{n:"BBALL_SkidStop_L",d:.5},{n:"BBALL_SkidStop_L_O",d:.5},{n:"BBALL_SkidStop_R",d:.5},{n:"BBALL_SkidStop_R_O",d:.5},{n:"BBALL_walk",d:1.07},{n:"BBALL_WalkStop_L",d:.5},{n:"BBALL_WalkStop_L_O",d:.5},{n:"BBALL_WalkStop_R",d:.5},{n:"BBALL_WalkStop_R_O",d:.5},{n:"BBALL_walk_O",d:1.07},{n:"BBALL_walk_start",d:.2},{n:"BBALL_walk_start_O",d:.2}]],["BUDDY",[{n:"buddy_crouchfire",d:.87},{n:"buddy_crouchreload",d:1.1},{n:"buddy_fire",d:.8},{n:"buddy_fire_poor",d:1.33},{n:"buddy_reload",d:1.3}]],["BUS",[{n:"BUS_close",d:.4},{n:"BUS_getin_LHS",d:.33},{n:"BUS_getin_RHS",d:2.17},{n:"BUS_getout_LHS",d:.8},{n:"BUS_getout_RHS",d:1.87},{n:"BUS_jacked_LHS",d:1.13},{n:"BUS_open",d:1.47},{n:"BUS_open_RHS",d:1.2},{n:"BUS_pullout_LHS",d:.8}]],["CAMERA",[{n:"camcrch_cmon",d:2.33},{n:"camcrch_idleloop",d:2},{n:"camcrch_stay",d:2},{n:"camcrch_to_camstnd",d:1.33},{n:"camstnd_cmon",d:3},{n:"camstnd_idleloop",d:2},{n:"camstnd_lkabt",d:4.33},{n:"camstnd_to_camcrch",d:1},{n:"piccrch_in",d:1.33},{n:"piccrch_out",d:2},{n:"piccrch_take",d:1},{n:"picstnd_in",d:1},{n:"picstnd_out",d:.67},{n:"picstnd_take",d:1}]],["CAR",[{n:"Fixn_Car_Loop",d:5},{n:"Fixn_Car_Out",d:2.33},{n:"flag_drop",d:4.5},{n:"Sit_relaxed",d:.03},{n:"Tap_hand",d:.33},{n:"Tyd2car_bump",d:.83},{n:"Tyd2car_high",d:8},{n:"Tyd2car_low",d:6.67},{n:"Tyd2car_med",d:6.67},{n:"Tyd2car_TurnL",d:1},{n:"Tyd2car_TurnR",d:1}]],["CARRY",[{n:"crry_prtial",d:.03},{n:"liftup",d:1.53},{n:"liftup05",d:.63},{n:"liftup105",d:.67},{n:"putdwn",d:1.13},{n:"putdwn05",d:.67},{n:"putdwn105",d:.53}]],["CAR_CHAT",[{n:"carfone_in",d:6},{n:"carfone_loopA",d:4},{n:"carfone_loopA_to_B",d:1},{n:"carfone_loopB",d:5},{n:"carfone_loopB_to_A",d:.67},{n:"carfone_out",d:3},{n:"CAR_Sc1_BL",d:11.67},{n:"CAR_Sc1_BR",d:11.67},{n:"CAR_Sc1_FL",d:11.67},{n:"CAR_Sc1_FR",d:11.67},{n:"CAR_Sc2_FL",d:5},{n:"CAR_Sc3_BR",d:10.83},{n:"CAR_Sc3_FL",d:10.83},{n:"CAR_Sc3_FR",d:10.83},{n:"CAR_Sc4_BL",d:4.4},{n:"CAR_Sc4_BR",d:6.53},{n:"CAR_Sc4_FL",d:10},{n:"CAR_Sc4_FR",d:10},{n:"car_talkm_in",d:1.67},{n:"car_talkm_loop",d:4.33},{n:"car_talkm_out",d:7.33}]],["CASINO",[{n:"cards_in",d:.67},{n:"cards_loop",d:3.33},{n:"cards_lose",d:3.33},{n:"cards_out",d:.67},{n:"cards_pick_01",d:4.67},{n:"cards_pick_02",d:5.33},{n:"cards_raise",d:1.67},{n:"cards_win",d:3},{n:"dealone",d:.8},{n:"manwinb",d:1.5},{n:"manwind",d:1.67},{n:"Roulette_bet",d:2.33},{n:"Roulette_in",d:.67},{n:"Roulette_loop",d:3.67},{n:"Roulette_lose",d:2.67},{n:"Roulette_out",d:.67},{n:"Roulette_win",d:2.33},{n:"Slot_bet_01",d:4.67},{n:"Slot_bet_02",d:2},{n:"Slot_in",d:3.67},{n:"Slot_lose_out",d:4},{n:"Slot_Plyr",d:1.33},{n:"Slot_wait",d:3.67},{n:"Slot_win_out",d:9.33},{n:"wof",d:1.47}]],["CHAINSAW",[{n:"CSAW_1",d:1},{n:"CSAW_2",d:1.03},{n:"CSAW_3",d:.87},{n:"CSAW_G",d:1.17},{n:"CSAW_Hit_1",d:.83},{n:"CSAW_Hit_2",d:1.07},{n:"CSAW_Hit_3",d:1.13},{n:"csaw_part",d:.13},{n:"IDLE_csaw",d:1.5},{n:"WEAPON_csaw",d:1.33},{n:"WEAPON_csawlo",d:1.9}]],["CHOPPA",[{n:"CHOPPA_back",d:.1},{n:"CHOPPA_bunnyhop",d:.33},{n:"CHOPPA_drivebyFT",d:.2},{n:"CHOPPA_driveby_LHS",d:.2},{n:"CHOPPA_driveby_RHS",d:.2},{n:"CHOPPA_fwd",d:.2},{n:"CHOPPA_getoffBACK",d:1.27},{n:"CHOPPA_getoffLHS",d:.73},{n:"CHOPPA_getoffRHS",d:.63},{n:"CHOPPA_jumponL",d:.7},{n:"CHOPPA_jumponR",d:.8},{n:"CHOPPA_Left",d:.13},{n:"CHOPPA_pedal",d:.73},{n:"CHOPPA_Pushes",d:.8},{n:"CHOPPA_ride",d:.03},{n:"CHOPPA_Right",d:.13},{n:"CHOPPA_sprint",d:.67},{n:"CHOPPA_Still",d:.03}]],["CLOTHES",[{n:"CLO_Buy",d:2.07},{n:"CLO_In",d:4},{n:"CLO_Out",d:2.67},{n:"CLO_Pose_Hat",d:3.33},{n:"CLO_Pose_In",d:3.13},{n:"CLO_Pose_In_O",d:4},{n:"CLO_Pose_Legs",d:3.33},{n:"CLO_Pose_Loop",d:6},{n:"CLO_Pose_Out",d:4},{n:"CLO_Pose_Out_O",d:4},{n:"CLO_Pose_Shoes",d:3.33},{n:"CLO_Pose_Torso",d:3.33},{n:"CLO_Pose_Watch",d:3.33}]],["COACH",[{n:"COACH_inL",d:2.17},{n:"COACH_inR",d:2.2},{n:"COACH_opnL",d:1.2},{n:"COACH_opnR",d:1.2},{n:"COACH_outL",d:1.73},{n:"COACH_outR",d:1.83}]],["COLT45",[{n:"2guns_crouchfire",d:.8},{n:"colt45_crouchfire",d:.8},{n:"colt45_crouchreload",d:1},{n:"colt45_fire",d:.73},{n:"colt45_fire_2hands",d:.87},{n:"colt45_reload",d:.93},{n:"sawnoff_reload",d:.93}]],["COP_AMBIENT",[{n:"Copbrowse_in",d:5},{n:"Copbrowse_loop",d:2.33},{n:"Copbrowse_nod",d:4},{n:"Copbrowse_out",d:2.67},{n:"Copbrowse_shake",d:1.83},{n:"Coplook_in",d:1.33},{n:"Coplook_loop",d:2.67},{n:"Coplook_nod",d:5.33},{n:"Coplook_out",d:.67},{n:"Coplook_shake",d:4},{n:"Coplook_think",d:3.33},{n:"Coplook_watch",d:2}]],["COP_DVBYZ",[{n:"COP_Dvby_B",d:.83},{n:"COP_Dvby_FT",d:.83},{n:"COP_Dvby_L",d:.83},{n:"COP_Dvby_R",d:.83}]],["CRACK",[{n:"Bbalbat_Idle_01",d:6.67},{n:"Bbalbat_Idle_02",d:10},{n:"crckdeth1",d:2.17},{n:"crckdeth2",d:3},{n:"crckdeth3",d:2.17},{n:"crckdeth4",d:1.67},{n:"crckidle1",d:3.5},{n:"crckidle2",d:3.33},{n:"crckidle3",d:3.33},{n:"crckidle4",d:2.67}]],["CRIB",[{n:"CRIB_Console_Loop",d:3},{n:"CRIB_Use_Switch",d:1.17},{n:"PED_Console_Loop",d:3},{n:"PED_Console_Loose",d:3.5},{n:"PED_Console_Win",d:3.5}]],["DAM_JUMP",[{n:"DAM_Dive_Loop",d:1.33},{n:"DAM_Land",d:2.6},{n:"DAM_Launch",d:2.4},{n:"Jump_Roll",d:3.17},{n:"SF_JumpWall",d:3}]],["DANCING",[{n:"bd_clap",d:3.2},{n:"bd_clap1",d:2.63},{n:"dance_loop",d:1.17},{n:"DAN_Down_A",d:1},{n:"DAN_Left_A",d:1},{n:"DAN_Loop_A",d:2},{n:"DAN_Right_A",d:1},{n:"DAN_Up_A",d:1},{n:"dnce_M_a",d:2.13},{n:"dnce_M_b",d:1.93},{n:"dnce_M_c",d:1.93},{n:"dnce_M_d",d:2.43},{n:"dnce_M_e",d:.9}]],["DEALER",[{n:"DEALER_DEAL",d:3.17},{n:"DEALER_IDLE",d:6.67},{n:"DEALER_IDLE_01",d:5},{n:"DEALER_IDLE_02",d:4},{n:"DEALER_IDLE_03",d:4.67},{n:"DRUGS_BUY",d:3.17},{n:"shop_pay",d:4.67}]],["DILDO",[{n:"DILDO_1",d:.97},{n:"DILDO_2",d:1.1},{n:"DILDO_3",d:1.17},{n:"DILDO_block",d:.47},{n:"DILDO_G",d:1.47},{n:"DILDO_Hit_1",d:.77},{n:"DILDO_Hit_2",d:1.03},{n:"DILDO_Hit_3",d:.9},{n:"DILDO_IDLE",d:.87}]],["DODGE",[{n:"Cover_Dive_01",d:6},{n:"Cover_Dive_02",d:6},{n:"Crushed",d:.93},{n:"Crush_Jump",d:3.17}]],["DOZER",[{n:"DOZER_Align_LHS",d:.97},{n:"DOZER_Align_RHS",d:.93},{n:"DOZER_getin_LHS",d:.43},{n:"DOZER_getin_RHS",d:.43},{n:"DOZER_getout_LHS",d:1.07},{n:"DOZER_getout_RHS",d:.77},{n:"DOZER_Jacked_LHS",d:1.27},{n:"DOZER_Jacked_RHS",d:1.07},{n:"DOZER_pullout_LHS",d:.73},{n:"DOZER_pullout_RHS",d:.7}]],["DRIVEBYS",[{n:"Gang_DrivebyLHS",d:.83},{n:"Gang_DrivebyLHS_Bwd",d:.83},{n:"Gang_DrivebyLHS_Fwd",d:.83},{n:"Gang_DrivebyRHS",d:.83},{n:"Gang_DrivebyRHS_Bwd",d:.83},{n:"Gang_DrivebyRHS_Fwd",d:.83},{n:"Gang_DrivebyTop_LHS",d:.83},{n:"Gang_DrivebyTop_RHS",d:.83}]],["FAT",[{n:"FatIdle",d:1.5},{n:"FatIdle_armed",d:1.53},{n:"FatIdle_Csaw",d:1.5},{n:"FatIdle_Rocket",d:1.6},{n:"FatRun",d:.77},{n:"FatRun_armed",d:.77},{n:"FatRun_Csaw",d:.77},{n:"FatRun_Rocket",d:.77},{n:"FatSprint",d:.6},{n:"FatWalk",d:1.17},{n:"FatWalkstart",d:.2},{n:"FatWalkstart_Csaw",d:.2},{n:"FatWalkSt_armed",d:.2},{n:"FatWalkSt_Rocket",d:.2},{n:"FatWalk_armed",d:1.17},{n:"FatWalk_Csaw",d:1.17},{n:"FatWalk_Rocket",d:1.17},{n:"IDLE_tired",d:1.07}]],["FIGHT_B",[{n:"FightB_1",d:.73},{n:"FightB_2",d:1.1},{n:"FightB_3",d:1.2},{n:"FightB_block",d:.47},{n:"FightB_G",d:1.07},{n:"FightB_IDLE",d:.8},{n:"FightB_M",d:.5},{n:"HitB_1",d:.73},{n:"HitB_2",d:.83},{n:"HitB_3",d:1.43}]],["FIGHT_C",[{n:"FightC_1",d:.83},{n:"FightC_2",d:1.03},{n:"FightC_3",d:1},{n:"FightC_block",d:.47},{n:"FightC_blocking",d:3.2},{n:"FightC_G",d:.77},{n:"FightC_IDLE",d:1},{n:"FightC_M",d:.9},{n:"FightC_Spar",d:3.2},{n:"HitC_1",d:.3},{n:"HitC_2",d:.67},{n:"HitC_3",d:.83}]],["FIGHT_D",[{n:"FightD_1",d:.93},{n:"FightD_2",d:1.87},{n:"FightD_3",d:.9},{n:"FightD_block",d:.47},{n:"FightD_G",d:.83},{n:"FightD_IDLE",d:1.53},{n:"FightD_M",d:1.07},{n:"HitD_1",d:.67},{n:"HitD_2",d:1.83},{n:"HitD_3",d:.97}]],["FIGHT_E",[{n:"FightKick",d:.77},{n:"FightKick_B",d:1.03},{n:"Hit_fightkick",d:.5},{n:"Hit_fightkick_B",d:1.13}]],["FINALE",[{n:"FIN_Climb_In",d:2.9},{n:"FIN_Cop1_ClimbOut2",d:6},{n:"FIN_Cop1_Loop",d:2},{n:"FIN_Cop1_Stomp",d:1},{n:"FIN_Hang_L",d:.57},{n:"FIN_Hang_Loop",d:4},{n:"FIN_Hang_R",d:.57},{n:"FIN_Hang_Slip",d:3.33},{n:"FIN_Jump_On",d:5.6},{n:"FIN_Land_Car",d:.67},{n:"FIN_Land_Die",d:2.37},{n:"FIN_LegsUp",d:1},{n:"FIN_LegsUp_L",d:.5},{n:"FIN_LegsUp_Loop",d:1.33},{n:"FIN_LegsUp_R",d:.5},{n:"FIN_Let_Go",d:.17}]],["FINALE2",[{n:"FIN_Cop1_ClimbOut",d:4},{n:"FIN_Cop1_Fall",d:.43},{n:"FIN_Cop1_Loop",d:2},{n:"FIN_Cop1_Shot",d:2.07},{n:"FIN_Cop1_Swing",d:1.17},{n:"FIN_Cop2_ClimbOut",d:5.33},{n:"FIN_Switch_P",d:3.97},{n:"FIN_Switch_S",d:2.17}]],["FLAME",[{n:"FLAME_fire",d:.8}]],["Flowers",[{n:"Flower_attack",d:.8},{n:"Flower_attack_M",d:1.23},{n:"Flower_Hit",d:.83}]],["FOOD",[{n:"EAT_Burger",d:5},{n:"EAT_Chicken",d:5},{n:"EAT_Pizza",d:5},{n:"EAT_Vomit_P",d:8},{n:"EAT_Vomit_SK",d:8},{n:"FF_Dam_Bkw",d:.67},{n:"FF_Dam_Fwd",d:.67},{n:"FF_Dam_Left",d:.67},{n:"FF_Dam_Right",d:.67},{n:"FF_Die_Bkw",d:.67},{n:"FF_Die_Fwd",d:.67},{n:"FF_Die_Left",d:.67},{n:"FF_Die_Right",d:.67},{n:"FF_Sit_Eat1",d:2.83},{n:"FF_Sit_Eat2",d:2.67},{n:"FF_Sit_Eat3",d:2.67},{n:"FF_Sit_In",d:3},{n:"FF_Sit_In_L",d:2},{n:"FF_Sit_In_R",d:2},{n:"FF_Sit_Look",d:8},{n:"FF_Sit_Loop",d:2.67},{n:"FF_Sit_Out_180",d:2.83},{n:"FF_Sit_Out_L_180",d:1.33},{n:"FF_Sit_Out_R_180",d:1.33},{n:"SHP_Thank",d:1.17},{n:"SHP_Tray_In",d:.67},{n:"SHP_Tray_Lift",d:1.67},{n:"SHP_Tray_Lift_In",d:.5},{n:"SHP_Tray_Lift_Loop",d:8},{n:"SHP_Tray_Lift_Out",d:.5},{n:"SHP_Tray_Out",d:.67},{n:"SHP_Tray_Pose",d:.67},{n:"SHP_Tray_Return",d:1.33}]],["Freeweights",[{n:"gym_barbell",d:2.37},{n:"gym_free_A",d:1.93},{n:"gym_free_B",d:2.33},{n:"gym_free_celebrate",d:3.33},{n:"gym_free_down",d:.57},{n:"gym_free_loop",d:.67},{n:"gym_free_pickup",d:3.17},{n:"gym_free_putdown",d:3.17},{n:"gym_free_up_smooth",d:1}]],["GANGS",[{n:"DEALER_DEAL",d:1.17},{n:"DEALER_IDLE",d:2},{n:"drnkbr_prtl",d:2.67},{n:"drnkbr_prtl_F",d:2.67},{n:"DRUGS_BUY",d:1.17},{n:"hndshkaa",d:4},{n:"hndshkba",d:2.33},{n:"hndshkca",d:3.33},{n:"hndshkcb",d:3.33},{n:"hndshkda",d:2},{n:"hndshkea",d:1},{n:"hndshkfa",d:4.17},{n:"hndshkfa_swt",d:4.17},{n:"Invite_No",d:3.33},{n:"Invite_Yes",d:4.33},{n:"leanIDLE",d:1},{n:"leanIN",d:1},{n:"leanOUT",d:1},{n:"prtial_gngtlkA",d:4},{n:"prtial_gngtlkB",d:6.17},{n:"prtial_gngtlkC",d:7.33},{n:"prtial_gngtlkD",d:3},{n:"prtial_gngtlkE",d:2.83},{n:"prtial_gngtlkF",d:5.17},{n:"prtial_gngtlkG",d:7},{n:"prtial_gngtlkH",d:6},{n:"prtial_hndshk_01",d:1.67},{n:"prtial_hndshk_biz_01",d:2.33},{n:"shake_cara",d:1.67},{n:"shake_carK",d:1.27},{n:"shake_carSH",d:1.5},{n:"smkcig_prtl",d:7.5},{n:"smkcig_prtl_F",d:7.5}]],["GFUNK",[{n:"Dance_B1",d:1.27},{n:"Dance_B2",d:1.27},{n:"Dance_B3",d:1.27},{n:"Dance_B4",d:1.27},{n:"Dance_B5",d:1.27},{n:"Dance_B6",d:1.27},{n:"Dance_B7",d:1.27},{n:"Dance_B8",d:1.27},{n:"Dance_B9",d:1.27},{n:"Dance_B10",d:1.27},{n:"Dance_B11",d:1.27},{n:"Dance_B12",d:1.27},{n:"Dance_B13",d:1.27},{n:"Dance_B14",d:1.27},{n:"Dance_B15",d:1.27},{n:"Dance_B16",d:1.27},{n:"Dance_G1",d:1.27},{n:"Dance_G2",d:1.27},{n:"Dance_G3",d:1.27},{n:"Dance_G4",d:1.27},{n:"Dance_G5",d:1.27},{n:"Dance_G6",d:1.27},{n:"Dance_G7",d:1.27},{n:"Dance_G8",d:1.27},{n:"Dance_G9",d:1.27},{n:"Dance_G10",d:1.27},{n:"Dance_G11",d:1.27},{n:"Dance_G12",d:1.27},{n:"Dance_G13",d:1.27},{n:"Dance_G14",d:1.27},{n:"Dance_G15",d:1.27},{n:"Dance_G16",d:1.27},{n:"dance_loop",d:1.17}]],["GHANDS",[{n:"gsign1",d:4.77},{n:"gsign1LH",d:2.73},{n:"gsign2",d:2.13},{n:"gsign2LH",d:2.33},{n:"gsign3",d:4.67},{n:"gsign3LH",d:2},{n:"gsign4",d:4.17},{n:"gsign4LH",d:4.67},{n:"gsign5",d:6.2},{n:"gsign5LH",d:2},{n:"LHGsign1",d:2},{n:"LHGsign2",d:2},{n:"LHGsign3",d:2},{n:"LHGsign4",d:2},{n:"LHGsign5",d:2},{n:"RHGsign1",d:2},{n:"RHGsign2",d:2},{n:"RHGsign3",d:2},{n:"RHGsign4",d:2},{n:"RHGsign5",d:2}]],["GHETTO_DB",[{n:"GDB_Car2_PLY",d:9.5},{n:"GDB_Car2_SMO",d:9.5},{n:"GDB_Car2_SWE",d:9.5},{n:"GDB_Car_PLY",d:13.33},{n:"GDB_Car_RYD",d:13.33},{n:"GDB_Car_SMO",d:13.33},{n:"GDB_Car_SWE",d:13.33}]],["goggles",[{n:"goggles_put_on",d:.8}]],["GRAFFITI",[{n:"graffiti_Chkout",d:4.67},{n:"spraycan_fire",d:2.33}]],["GRAVEYARD",[{n:"mrnF_loop",d:4.67},{n:"mrnM_loop",d:2.67},{n:"prst_loopa",d:4}]],["GRENADE",[{n:"WEAPON_start_throw",d:.2},{n:"WEAPON_throw",d:.87},{n:"WEAPON_throwu",d:.67}]],["GYMNASIUM",[{n:"GYMshadowbox",d:5.1},{n:"gym_bike_celebrate",d:1.93},{n:"gym_bike_fast",d:.4},{n:"gym_bike_faster",d:.4},{n:"gym_bike_getoff",d:1.67},{n:"gym_bike_geton",d:1.67},{n:"gym_bike_pedal",d:.4},{n:"gym_bike_slow",d:.43},{n:"gym_bike_still",d:1.67},{n:"gym_jog_falloff",d:2.17},{n:"gym_shadowbox",d:5.1},{n:"gym_tread_celebrate",d:2.5},{n:"gym_tread_falloff",d:2},{n:"gym_tread_getoff",d:3.33},{n:"gym_tread_geton",d:2.5},{n:"gym_tread_jog",d:.77},{n:"gym_tread_sprint",d:.67},{n:"gym_tread_tired",d:1.33},{n:"gym_tread_walk",d:1.07},{n:"gym_walk_falloff",d:3.33},{n:"Pedals_fast",d:.4},{n:"Pedals_med",d:.4},{n:"Pedals_slow",d:.43},{n:"Pedals_still",d:.43}]],["HAIRCUTS",[{n:"BRB_Beard_01",d:4.5},{n:"BRB_Buy",d:4.17},{n:"BRB_Cut",d:1.7},{n:"BRB_Cut_In",d:.83},{n:"BRB_Cut_Out",d:1.33},{n:"BRB_Hair_01",d:3.83},{n:"BRB_Hair_02",d:4.5},{n:"BRB_In",d:1.33},{n:"BRB_Loop",d:2.67},{n:"BRB_Out",d:.67},{n:"BRB_Sit_In",d:2.07},{n:"BRB_Sit_Loop",d:7},{n:"BRB_Sit_Out",d:3}]],["HEIST9",[{n:"CAS_G2_GasKO",d:3.33},{n:"swt_wllpk_L",d:2.67},{n:"swt_wllpk_L_back",d:.5},{n:"swt_wllpk_R",d:3.67},{n:"swt_wllpk_R_back",d:.43},{n:"swt_wllshoot_in_L",d:1},{n:"swt_wllshoot_in_R",d:1.3},{n:"swt_wllshoot_out_L",d:2},{n:"swt_wllshoot_out_R",d:1.43},{n:"Use_SwipeCard",d:1.17}]],["INT_HOUSE",[{n:"BED_In_L",d:3.33},{n:"BED_In_R",d:3.33},{n:"BED_Loop_L",d:3.33},{n:"BED_Loop_R",d:3.33},{n:"BED_Out_L",d:3.33},{n:"BED_Out_R",d:3.33},{n:"LOU_In",d:1.83},{n:"LOU_Loop",d:3.33},{n:"LOU_Out",d:2},{n:"wash_up",d:3}]],["INT_OFFICE",[{n:"FF_Dam_Fwd",d:.67},{n:"OFF_Sit_2Idle_180",d:2.83},{n:"OFF_Sit_Bored_Loop",d:2.83},{n:"OFF_Sit_Crash",d:3.33},{n:"OFF_Sit_Drink",d:4.17},{n:"OFF_Sit_Idle_Loop",d:2.07},{n:"OFF_Sit_In",d:2.77},{n:"OFF_Sit_Read",d:3.33},{n:"OFF_Sit_Type_Loop",d:3.33},{n:"OFF_Sit_Watch",d:2}]],["INT_SHOP",[{n:"shop_cashier",d:6.67},{n:"shop_in",d:1},{n:"shop_lookA",d:2},{n:"shop_lookB",d:3},{n:"shop_loop",d:2},{n:"shop_out",d:1.33},{n:"shop_pay",d:6.67},{n:"shop_shelf",d:2.33}]],["JST_BUISNESS",[{n:"girl_01",d:3.33},{n:"girl_02",d:11.33},{n:"player_01",d:24.83},{n:"smoke_01",d:25}]],["KART",[{n:"KART_getin_LHS",d:.83},{n:"KART_getin_RHS",d:.83},{n:"KART_getout_LHS",d:.83},{n:"KART_getout_RHS",d:.83}]],["KISSING",[{n:"BD_GF_Wave",d:5.07},{n:"gfwave2",d:2.67},{n:"GF_CarArgue_01",d:5},{n:"GF_CarArgue_02",d:5},{n:"GF_CarSpot",d:5},{n:"GF_StreetArgue_01",d:5},{n:"GF_StreetArgue_02",d:5},{n:"gift_get",d:5.33},{n:"gift_give",d:5.33},{n:"Grlfrd_Kiss_01",d:4.17},{n:"Grlfrd_Kiss_02",d:5.77},{n:"Grlfrd_Kiss_03",d:7},{n:"Playa_Kiss_01",d:5},{n:"Playa_Kiss_02",d:5.77},{n:"Playa_Kiss_03",d:7}]],["KNIFE",[{n:"KILL_Knife_Ped_Damage",d:2.23},{n:"KILL_Knife_Ped_Die",d:1.93},{n:"KILL_Knife_Player",d:2.67},{n:"KILL_Partial",d:.03},{n:"knife_1",d:1},{n:"knife_2",d:.93},{n:"knife_3",d:.87},{n:"Knife_4",d:.9},{n:"knife_block",d:.47},{n:"Knife_G",d:.9},{n:"knife_hit_1",d:.57},{n:"knife_hit_2",d:.63},{n:"knife_hit_3",d:1.6},{n:"knife_IDLE",d:1.3},{n:"knife_part",d:.53},{n:"WEAPON_knifeidle",d:1.3}]],["LAPDAN1",[{n:"LAPDAN_D",d:37.73},{n:"LAPDAN_P",d:37.73}]],["LAPDAN2",[{n:"LAPDAN_D",d:46.83},{n:"LAPDAN_P",d:46.83}]],["LAPDAN3",[{n:"LAPDAN_D",d:51.47},{n:"LAPDAN_P",d:51.47}]],["LOWRIDER",[{n:"F_smklean_loop",d:4},{n:"lrgirl_bdbnce",d:2.67},{n:"lrgirl_hair",d:2.33},{n:"lrgirl_hurry",d:2.83},{n:"lrgirl_idleloop",d:2.17},{n:"lrgirl_idle_to_l0",d:2.17},{n:"lrgirl_l0_bnce",d:.67},{n:"lrgirl_l0_loop",d:2},{n:"lrgirl_l0_to_l1",d:3.67},{n:"lrgirl_l12_to_l0",d:2},{n:"lrgirl_l1_bnce",d:.67},{n:"lrgirl_l1_loop",d:2},{n:"lrgirl_l1_to_l2",d:1.33},{n:"lrgirl_l2_bnce",d:.67},{n:"lrgirl_l2_loop",d:1.5},{n:"lrgirl_l2_to_l3",d:1.5},{n:"lrgirl_l345_to_l1",d:1},{n:"lrgirl_l3_bnce",d:.67},{n:"lrgirl_l3_loop",d:2},{n:"lrgirl_l3_to_l4",d:.67},{n:"lrgirl_l4_bnce",d:.67},{n:"lrgirl_l4_loop",d:2.33},{n:"lrgirl_l4_to_l5",d:1},{n:"lrgirl_l5_bnce",d:.83},{n:"lrgirl_l5_loop",d:1.67},{n:"M_smklean_loop",d:5},{n:"M_smkstnd_loop",d:5.33},{n:"prtial_gngtlkB",d:1.47},{n:"prtial_gngtlkC",d:1.5},{n:"prtial_gngtlkD",d:2.47},{n:"prtial_gngtlkE",d:3},{n:"prtial_gngtlkF",d:2.67},{n:"prtial_gngtlkG",d:2.67},{n:"prtial_gngtlkH",d:3.33},{n:"RAP_A_Loop",d:2.67},{n:"RAP_B_Loop",d:2.67},{n:"RAP_C_Loop",d:3},{n:"Sit_relaxed",d:.03},{n:"Tap_hand",d:.33}]],["MD_CHASE",[{n:"Carhit_Hangon",d:1.53},{n:"Carhit_Tumble",d:2.03},{n:"donutdrop",d:1.5},{n:"Fen_Choppa_L1",d:1.43},{n:"Fen_Choppa_L2",d:1.3},{n:"Fen_Choppa_L3",d:1.3},{n:"Fen_Choppa_R1",d:1.3},{n:"Fen_Choppa_R2",d:1.3},{n:"Fen_Choppa_R3",d:1.3},{n:"Hangon_Stun_loop",d:4.67},{n:"Hangon_Stun_Turn",d:4},{n:"MD_BIKE_2_HANG",d:1.37},{n:"MD_BIKE_Jmp_BL",d:1.1},{n:"MD_BIKE_Jmp_F",d:1},{n:"MD_BIKE_Lnd_BL",d:.9},{n:"MD_BIKE_Lnd_Die_BL",d:1.53},{n:"MD_BIKE_Lnd_Die_F",d:.8},{n:"MD_BIKE_Lnd_F",d:1.17},{n:"MD_BIKE_Lnd_Roll",d:2.7},{n:"MD_BIKE_Lnd_Roll_F",d:1.03},{n:"MD_BIKE_Punch",d:1.83},{n:"MD_BIKE_Punch_F",d:1.83},{n:"MD_BIKE_Shot_F",d:1.33},{n:"MD_HANG_Lnd_Roll",d:2.7},{n:"MD_HANG_Loop",d:1}]],["MD_END",[{n:"END_SC1_PLY",d:5},{n:"END_SC1_RYD",d:5},{n:"END_SC1_SMO",d:5},{n:"END_SC1_SWE",d:5},{n:"END_SC2_PLY",d:9},{n:"END_SC2_RYD",d:9},{n:"END_SC2_SMO",d:9},{n:"END_SC2_SWE",d:9}]],["MEDIC",[{n:"CPR",d:8.33}]],["MISC",[{n:"bitchslap",d:1.17},{n:"BMX_celebrate",d:1.57},{n:"BMX_comeon",d:.77},{n:"bmx_idleloop_01",d:3.33},{n:"bmx_idleloop_02",d:6.67},{n:"bmx_talkleft_in",d:.67},{n:"bmx_talkleft_loop",d:6.67},{n:"bmx_talkleft_out",d:.67},{n:"bmx_talkright_in",d:.67},{n:"bmx_talkright_loop",d:7.33},{n:"bmx_talkright_out",d:.67},{n:"bng_wndw",d:7.33},{n:"bng_wndw_02",d:7.33},{n:"Case_pickup",d:1},{n:"door_jet",d:5.33},{n:"GRAB_L",d:.4},{n:"GRAB_R",d:.4},{n:"Hiker_Pose",d:.33},{n:"Hiker_Pose_L",d:.33},{n:"Idle_Chat_02",d:7.23},{n:"KAT_Throw_K",d:3.33},{n:"KAT_Throw_O",d:3.33},{n:"KAT_Throw_P",d:3.33},{n:"PASS_Rifle_O",d:1.33},{n:"PASS_Rifle_Ped",d:1.33},{n:"PASS_Rifle_Ply",d:1.33},{n:"pickup_box",d:.4},{n:"Plane_door",d:5.33},{n:"Plane_exit",d:5.33},{n:"Plane_hijack",d:5.33},{n:"Plunger_01",d:3.33},{n:"Plyrlean_loop",d:2.67},{n:"plyr_shkhead",d:1.67},{n:"Run_Dive",d:8.27},{n:"Scratchballs_01",d:8.33},{n:"SEAT_LR",d:3.67},{n:"Seat_talk_01",d:3.67},{n:"Seat_talk_02",d:3.33},{n:"SEAT_watch",d:2.33},{n:"smalplane_door",d:6.33},{n:"smlplane_door",d:5.33},{n:"MTB_back",d:.1},{n:"MTB_bunnyhop",d:.33},{n:"MTB_drivebyFT",d:.2},{n:"MTB_driveby_LHS",d:.2},{n:"MTB_driveby_RHS",d:.2},{n:"MTB_fwd",d:.2},{n:"MTB_getoffBACK",d:1.53},{n:"MTB_getoffLHS",d:.73},{n:"MTB_getoffRHS",d:.73},{n:"MTB_jumponL",d:.8},{n:"MTB_jumponR",d:.83},{n:"MTB_Left",d:.13},{n:"MTB_pedal",d:.67},{n:"MTB_pushes",d:.8},{n:"MTB_Ride",d:.03},{n:"MTB_Right",d:.13},{n:"MTB_sprint",d:.8},{n:"MTB_still",d:.03},{n:"MscleWalkst_armed",d:.2},{n:"MscleWalkst_Csaw",d:.2},{n:"Mscle_rckt_run",d:.8},{n:"Mscle_rckt_walkst",d:.2},{n:"Mscle_run_Csaw",d:.8},{n:"MuscleIdle",d:1.5},{n:"MuscleIdle_armed",d:1.5},{n:"MuscleIdle_Csaw",d:1.5},{n:"MuscleIdle_rocket",d:1.5},{n:"MuscleRun",d:.8},{n:"MuscleRun_armed",d:.8},{n:"MuscleSprint",d:.57},{n:"MuscleWalk",d:1.07},{n:"MuscleWalkstart",d:.27},{n:"MuscleWalk_armed",d:1.07},{n:"Musclewalk_Csaw",d:1.07},{n:"Musclewalk_rocket",d:1.07}]],["NEVADA",[{n:"NEVADA_getin",d:1.87},{n:"NEVADA_getout",d:.93}]],["ON_LOOKERS",[{n:"lkaround_in",d:.33},{n:"lkaround_loop",d:7},{n:"lkaround_out",d:.33},{n:"lkup_in",d:1.67},{n:"lkup_loop",d:5.33},{n:"lkup_out",d:1},{n:"lkup_point",d:3.33},{n:"panic_cower",d:6.67},{n:"panic_hide",d:6.33},{n:"panic_in",d:.83},{n:"panic_loop",d:1.67},{n:"panic_out",d:.67},{n:"panic_point",d:6},{n:"panic_shout",d:8.67},{n:"Pointup_in",d:1},{n:"Pointup_loop",d:2.67},{n:"Pointup_out",d:1},{n:"Pointup_shout",d:3},{n:"point_in",d:.5},{n:"point_loop",d:3},{n:"point_out",d:.33},{n:"shout_01",d:2.67},{n:"shout_02",d:4},{n:"shout_in",d:1.67},{n:"shout_loop",d:2},{n:"shout_out",d:.33},{n:"wave_in",d:.83},{n:"wave_loop",d:1.5},{n:"wave_out",d:.83}]],["OTB",[{n:"betslp_in",d:1.33},{n:"betslp_lkabt",d:2.67},{n:"betslp_loop",d:2.67},{n:"betslp_out",d:1},{n:"betslp_tnk",d:5.6},{n:"wtchrace_cmon",d:5},{n:"wtchrace_in",d:1.67},{n:"wtchrace_loop",d:2.67},{n:"wtchrace_lose",d:4},{n:"wtchrace_out",d:1},{n:"wtchrace_win",d:4.33}]],["PARACHUTE",[{n:"FALL_skyDive",d:1.33},{n:"FALL_SkyDive_Accel",d:1.33},{n:"FALL_skyDive_DIE",d:1},{n:"FALL_SkyDive_L",d:1.33},{n:"FALL_SkyDive_R",d:1.33},{n:"PARA_decel",d:2},{n:"PARA_decel_O",d:2},{n:"PARA_float",d:2},{n:"PARA_float_O",d:2},{n:"PARA_Land",d:1.67},{n:"PARA_Land_O",d:2.17},{n:"PARA_Land_Water",d:2.33},{n:"PARA_Land_Water_O",d:2.17},{n:"PARA_open",d:2.83},{n:"PARA_open_O",d:2.33},{n:"PARA_Rip_Land_O",d:.9},{n:"PARA_Rip_Loop_O",d:1},{n:"PARA_Rip_O",d:.23},{n:"PARA_steerL",d:2},{n:"PARA_steerL_O",d:2},{n:"PARA_steerR",d:2},{n:"PARA_steerR_O",d:2}]],["PARK",[{n:"Tai_Chi_in",d:2.17},{n:"Tai_Chi_Loop",d:12},{n:"Tai_Chi_Out",d:.83}]],["PAULNMAC",[{n:"Piss_in",d:9},{n:"Piss_loop",d:6.67},{n:"Piss_out",d:11},{n:"PnM_Argue1_A",d:4.33},{n:"PnM_Argue1_B",d:4.33},{n:"PnM_Argue2_A",d:4.33},{n:"PnM_Argue2_B",d:4.33},{n:"PnM_Loop_A",d:5.33},{n:"PnM_Loop_B",d:5.33},{n:"wank_in",d:7.33},{n:"wank_loop",d:2.67},{n:"wank_out",d:11.67}]],["PED",[{n:"abseil",d:.03},{n:"ARRESTgun",d:.67},{n:"ATM",d:12.17},{n:"BIKE_elbowL",d:.97},{n:"BIKE_elbowR",d:.97},{n:"BIKE_fallR",d:1.63},{n:"BIKE_fall_off",d:1.07},{n:"BIKE_pickupL",d:1.07},{n:"BIKE_pickupR",d:1.07},{n:"BIKE_pullupL",d:1},{n:"BIKE_pullupR",d:1},{n:"bomber",d:.6},{n:"CAR_alignHI_LHS",d:.73},{n:"CAR_alignHI_RHS",d:.73},{n:"CAR_align_LHS",d:.13},{n:"CAR_align_RHS",d:.13},{n:"CAR_closedoorL_LHS",d:.6},{n:"CAR_closedoorL_RHS",d:.4},{n:"CAR_closedoor_LHS",d:.6},{n:"CAR_closedoor_RHS",d:.4},{n:"CAR_close_LHS",d:.73},{n:"CAR_close_RHS",d:.73},{n:"CAR_crawloutRHS",d:2.17},{n:"CAR_dead_LHS",d:.03},{n:"CAR_dead_RHS",d:.03},{n:"CAR_doorlocked_LHS",d:1.33},{n:"CAR_doorlocked_RHS",d:1.27},{n:"CAR_fallout_LHS",d:.57},{n:"CAR_fallout_RHS",d:.57},{n:"CAR_getinL_LHS",d:1},{n:"CAR_getinL_RHS",d:1},{n:"CAR_getin_LHS",d:1},{n:"CAR_getin_RHS",d:1},{n:"CAR_getoutL_LHS",d:.93},{n:"CAR_getoutL_RHS",d:1},{n:"CAR_getout_LHS",d:1.13},{n:"CAR_getout_RHS",d:.8},{n:"car_hookertalk",d:4.3},{n:"CAR_jackedLHS",d:2.9},{n:"CAR_jackedRHS",d:3.43},{n:"CAR_jumpin_LHS",d:1},{n:"CAR_LB",d:.23},{n:"CAR_LB_pro",d:.1},{n:"CAR_LB_weak",d:.23},{n:"CAR_LjackedLHS",d:3.57},{n:"CAR_LjackedRHS",d:3.47},{n:"CAR_Lshuffle_RHS",d:.4},{n:"CAR_Lsit",d:.03},{n:"CAR_open_LHS",d:1.1},{n:"CAR_open_RHS",d:1.1},{n:"CAR_pulloutL_LHS",d:2.93},{n:"CAR_pulloutL_RHS",d:2.93},{n:"CAR_pullout_LHS",d:2.3},{n:"CAR_pullout_RHS",d:2.8},{n:"CAR_Qjacked",d:3.3},{n:"CAR_rolldoor",d:.6},{n:"CAR_rolldoorLO",d:.6},{n:"CAR_rollout_LHS",d:1.63},{n:"CAR_rollout_RHS",d:1.27},{n:"CAR_shuffle_RHS",d:.4},{n:"CAR_sit",d:.03},{n:"CAR_sitp",d:.03},{n:"CAR_sitpLO",d:.03},{n:"CAR_sit_pro",d:.03},{n:"CAR_sit_weak",d:.03},{n:"CAR_tune_radio",d:.63},{n:"CLIMB_idle",d:.8},{n:"CLIMB_jump",d:.57},{n:"CLIMB_jump2fall",d:.03},{n:"CLIMB_jump_B",d:.97},{n:"CLIMB_Pull",d:.87},{n:"CLIMB_Stand",d:.8},{n:"CLIMB_Stand_finish",d:.2},{n:"cower",d:.8},{n:"Crouch_Roll_L",d:.93},{n:"Crouch_Roll_R",d:.93},{n:"DAM_armL_frmBK",d:.83},{n:"DAM_armL_frmFT",d:.83},{n:"DAM_armL_frmLT",d:.67},{n:"DAM_armR_frmBK",d:.83},{n:"DAM_armR_frmFT",d:.5},{n:"DAM_armR_frmRT",d:.27},{n:"DAM_LegL_frmBK",d:.83},{n:"DAM_LegL_frmFT",d:.83},{n:"DAM_LegL_frmLT",d:.83},{n:"DAM_LegR_frmBK",d:.83},{n:"DAM_LegR_frmFT",d:.83},{n:"DAM_LegR_frmRT",d:.83},{n:"DAM_stomach_frmBK",d:.83},{n:"DAM_stomach_frmFT",d:.83},{n:"DAM_stomach_frmLT",d:.83},{n:"DAM_stomach_frmRT",d:.83},{n:"DOOR_LHinge_O",d:1.07},{n:"DOOR_RHinge_O",d:1.07},{n:"DrivebyL_L",d:.2},{n:"DrivebyL_R",d:.2},{n:"Driveby_L",d:.2},{n:"Driveby_R",d:.2},{n:"DRIVE_BOAT",d:.03},{n:"DRIVE_BOAT_back",d:.1},{n:"DRIVE_BOAT_L",d:.1},{n:"DRIVE_BOAT_R",d:.1},{n:"Drive_L",d:.13},{n:"Drive_LO_l",d:.13},{n:"Drive_LO_R",d:.13},{n:"Drive_L_pro",d:.13},{n:"Drive_L_pro_slow",d:.13},{n:"Drive_L_slow",d:.13},{n:"Drive_L_weak",d:.13},{n:"Drive_L_weak_slow",d:.13},{n:"Drive_R",d:.13},{n:"Drive_R_pro",d:.13},{n:"Drive_R_pro_slow",d:.13},{n:"Drive_R_slow",d:.13},{n:"Drive_R_weak",d:.13},{n:"Drive_R_weak_slow",d:.13},{n:"Drive_truck",d:.03},{n:"DRIVE_truck_back",d:.1},{n:"DRIVE_truck_L",d:.13},{n:"DRIVE_truck_R",d:.13},{n:"Drown",d:2.5},{n:"DUCK_cower",d:.8},{n:"endchat_01",d:2},{n:"endchat_02",d:2},{n:"endchat_03",d:2.33},{n:"EV_dive",d:2.33},{n:"EV_step",d:1.07},{n:"facanger",d:.13},{n:"facgum",d:1.03},{n:"facsurp",d:.13},{n:"facsurpm",d:.13},{n:"factalk",d:2.33},{n:"facurios",d:.13},{n:"FALL_back",d:.73},{n:"FALL_collapse",d:1},{n:"FALL_fall",d:.73},{n:"FALL_front",d:.73},{n:"FALL_glide",d:.8},{n:"FALL_land",d:.47},{n:"FALL_skyDive",d:1.33},{n:"Fight2Idle",d:.33},{n:"FightA_1",d:.43},{n:"FightA_2",d:.77},{n:"FightA_3",d:.87},{n:"FightA_block",d:.47},{n:"FightA_G",d:.93},{n:"FightA_M",d:.4},{n:"FIGHTIDLE",d:1.3},{n:"FightShB",d:.47},{n:"FightShF",d:.53},{n:"FightSh_BWD",d:.67},{n:"FightSh_FWD",d:.67},{n:"FightSh_Left",d:.67},{n:"FightSh_Right",d:.67},{n:"flee_lkaround_01",d:2},{n:"FLOOR_hit",d:.37},{n:"FLOOR_hit_f",d:.4},{n:"fucku",d:1.33},{n:"gang_gunstand",d:.03},{n:"gas_cwr",d:1},{n:"getup",d:1.37},{n:"getup_front",d:1.37},{n:"gum_eat",d:5.33},{n:"GunCrouchBwd",d:1},{n:"GunCrouchFwd",d:.73},{n:"GunMove_BWD",d:1.03},{n:"GunMove_FWD",d:1},{n:"GunMove_L",d:1},{n:"GunMove_R",d:1},{n:"Gun_2_IDLE",d:.27},{n:"GUN_BUTT",d:.43},{n:"GUN_BUTT_crouch",d:.43},{n:"Gun_stand",d:.03},{n:"handscower",d:1.93},{n:"handsup",d:.6},{n:"HitA_1",d:.3},{n:"HitA_2",d:.53},{n:"HitA_3",d:.57},{n:"HIT_back",d:.5},{n:"HIT_behind",d:.67},{n:"HIT_front",d:.6},{n:"HIT_GUN_BUTT",d:.5},{n:"HIT_L",d:.7},{n:"HIT_R",d:.6},{n:"HIT_walk",d:.33},{n:"HIT_wall",d:.7},{n:"Idlestance_fat",d:1.67},{n:"idlestance_old",d:2},{n:"IDLE_armed",d:1.47},{n:"IDLE_chat",d:6.67},{n:"IDLE_csaw",d:1.53},{n:"Idle_Gang1",d:1.67},{n:"IDLE_HBHB",d:2.67},{n:"IDLE_ROCKET",d:1.57},{n:"IDLE_stance",d:1.5},{n:"IDLE_taxi",d:.87},{n:"IDLE_tired",d:1},{n:"Jetpack_Idle",d:.03},{n:"JOG_femaleA",d:.77},{n:"JOG_maleA",d:.77},{n:"JUMP_glide",d:.5},{n:"JUMP_land",d:.23},{n:"JUMP_launch",d:.2},{n:"JUMP_launch_R",d:.2},{n:"KART_drive",d:.03},{n:"KART_L",d:.13},{n:"KART_LB",d:.03},{n:"KART_R",d:.13},{n:"KD_left",d:.9},{n:"KD_right",d:.9},{n:"KO_shot_face",d:2.1},{n:"KO_shot_front",d:.57},{n:"KO_shot_stom",d:3.17},{n:"KO_skid_back",d:.97},{n:"KO_skid_front",d:1.13},{n:"KO_spin_L",d:.87},{n:"KO_spin_R",d:.93},{n:"pass_Smoke_in_car",d:1.73},{n:"phone_in",d:2.33},{n:"phone_out",d:2},{n:"phone_talk",d:2},{n:"Player_Sneak",d:1.33},{n:"Player_Sneak_walkstart",d:.3},{n:"roadcross",d:2},{n:"roadcross_female",d:4},{n:"roadcross_gang",d:2},{n:"roadcross_old",d:4},{n:"run_1armed",d:.77},{n:"run_armed",d:.7},{n:"run_civi",d:.73},{n:"run_csaw",d:.7},{n:"run_fat",d:.8},{n:"run_fatold",d:.8},{n:"run_gang1",d:.83},{n:"run_left",d:.67},{n:"run_old",d:.8},{n:"run_player",d:.73},{n:"run_right",d:.67},{n:"run_rocket",d:.77},{n:"Run_stop",d:.87},{n:"Run_stopR",d:.8},{n:"Run_Wuzi",d:.77},{n:"SEAT_down",d:1.5},{n:"SEAT_idle",d:2},{n:"SEAT_up",d:1.17},{n:"SHOT_leftP",d:.3},{n:"SHOT_partial",d:.37},{n:"SHOT_partial_B",d:.33},{n:"SHOT_rightP",d:.33},{n:"Shove_Partial",d:.53},{n:"Smoke_in_car",d:1.73},{n:"sprint_civi",d:.53},{n:"sprint_panic",d:.6},{n:"Sprint_Wuzi",d:.67},{n:"swat_run",d:.67},{n:"Swim_Tread",d:1.3},{n:"Tap_hand",d:.03},{n:"Tap_handP",d:.03},{n:"turn_180",d:.63},{n:"Turn_L",d:.8},{n:"Turn_R",d:.8},{n:"WALK_armed",d:1.07},{n:"WALK_civi",d:1.13},{n:"WALK_csaw",d:1.07},{n:"Walk_DoorPartial",d:.8},{n:"WALK_drunk",d:3.93},{n:"WALK_fat",d:1.33},{n:"WALK_fatold",d:1.17},{n:"WALK_gang1",d:1.4},{n:"WALK_gang2",d:1.4},{n:"WALK_old",d:1.4},{n:"WALK_player",d:1.2},{n:"WALK_rocket",d:1.07},{n:"WALK_shuffle",d:1.2},{n:"WALK_start",d:.27},{n:"WALK_start_armed",d:.2},{n:"WALK_start_csaw",d:.2},{n:"WALK_start_rocket",d:.2},{n:"Walk_Wuzi",d:1.17},{n:"WEAPON_crouch",d:.8},{n:"woman_idlestance",d:5.33},{n:"woman_run",d:.77},{n:"WOMAN_runbusy",d:.67},{n:"WOMAN_runfatold",d:1.2},{n:"woman_runpanic",d:.6},{n:"WOMAN_runsexy",d:.7},{n:"WOMAN_walkbusy",d:1},{n:"WOMAN_walkfatold",d:1.2},{n:"WOMAN_walknorm",d:1.13},{n:"WOMAN_walkold",d:1.2},{n:"WOMAN_walkpro",d:1.33},{n:"WOMAN_walksexy",d:1.17},{n:"WOMAN_walkshop",d:.97},{n:"XPRESSscratch",d:3.97}]],["PLAYER_DVBYS",[{n:"Plyr_DrivebyBwd",d:.83},{n:"Plyr_DrivebyFwd",d:.83},{n:"Plyr_DrivebyLHS",d:.83},{n:"Plyr_DrivebyRHS",d:.83}]],["PLAYIDLES",[{n:"shift",d:3.6},{n:"shldr",d:2.17},{n:"stretch",d:4.6},{n:"strleg",d:3.67},{n:"time",d:5.2}]],["POLICE",[{n:"CopTraf_Away",d:1.47},{n:"CopTraf_Come",d:2.87},{n:"CopTraf_Left",d:2},{n:"CopTraf_Stop",d:2},{n:"COP_getoutcar_LHS",d:.83},{n:"Cop_move_FWD",d:1},{n:"crm_drgbst_01",d:18.57},{n:"Door_Kick",d:1.33},{n:"plc_drgbst_01",d:20.6},{n:"plc_drgbst_02",d:7.57}]],["POOL",[{n:"POOL_ChalkCue",d:4.83},{n:"POOL_Idle_Stance",d:2},{n:"POOL_Long_Shot",d:1.67},{n:"POOL_Long_Shot_O",d:1.67},{n:"POOL_Long_Start",d:.67},{n:"POOL_Long_Start_O",d:.67},{n:"POOL_Med_Shot",d:1.67},{n:"POOL_Med_Shot_O",d:1.67},{n:"POOL_Med_Start",d:.67},{n:"POOL_Med_Start_O",d:.67},{n:"POOL_Place_White",d:2.5},{n:"POOL_Short_Shot",d:1.67},{n:"POOL_Short_Shot_O",d:1.67},{n:"POOL_Short_Start",d:.67},{n:"POOL_Short_Start_O",d:.67},{n:"POOL_Walk",d:1.27},{n:"POOL_Walk_Start",d:.2},{n:"POOL_XLong_Shot",d:1.67},{n:"POOL_XLong_Shot_O",d:1.67},{n:"POOL_XLong_Start",d:.67},{n:"POOL_XLong_Start_O",d:.67}]],["POOR",[{n:"WINWASH_Start",d:.43},{n:"WINWASH_Wash2Beg",d:2.13}]],["PYTHON",[{n:"python_crouchfire",d:1.2},{n:"python_crouchreload",d:1},{n:"python_fire",d:1.17},{n:"python_fire_poor",d:1.47},{n:"python_reload",d:.93}]],["QUAD",[{n:"QUAD_back",d:.1},{n:"QUAD_driveby_FT",d:.2},{n:"QUAD_driveby_LHS",d:.2},{n:"QUAD_driveby_RHS",d:.2},{n:"QUAD_FWD",d:.2},{n:"QUAD_getoff_B",d:1.63},{n:"QUAD_getoff_LHS",d:.67},{n:"QUAD_getoff_RHS",d:.7},{n:"QUAD_geton_LHS",d:.73},{n:"QUAD_geton_RHS",d:.73},{n:"QUAD_hit",d:.03},{n:"QUAD_kick",d:1.13},{n:"QUAD_Left",d:.13},{n:"QUAD_passenger",d:.03},{n:"QUAD_reverse",d:.17},{n:"QUAD_ride",d:.03},{n:"QUAD_Right",d:.13}]],["QUAD_DBZ",[{n:"Pass_Driveby_BWD",d:.83},{n:"Pass_Driveby_FWD",d:.83},{n:"Pass_Driveby_LHS",d:.83},{n:"Pass_Driveby_RHS",d:.83}]],["RAPPING",[{n:"Laugh_01",d:5.33},{n:"RAP_A_IN",d:.83},{n:"RAP_A_Loop",d:2.67},{n:"RAP_A_OUT",d:.33},{n:"RAP_B_IN",d:1},{n:"RAP_B_Loop",d:2.67},{n:"RAP_B_OUT",d:.87},{n:"RAP_C_Loop",d:3}]],["RIFLE",[{n:"RIFLE_crouchfire",d:.87},{n:"RIFLE_crouchload",d:1.27},{n:"RIFLE_fire",d:.8},{n:"RIFLE_fire_poor",d:.8},{n:"RIFLE_load",d:1.4}]],["RIOT",[{n:"RIOT_ANGRY",d:5},{n:"RIOT_ANGRY_B",d:.63},{n:"RIOT_challenge",d:3.23},{n:"RIOT_CHANT",d:1.73},{n:"RIOT_FUKU",d:.67},{n:"RIOT_PUNCHES",d:.67},{n:"RIOT_shout",d:1}]],["ROB_BANK",[{n:"CAT_Safe_End",d:.5},{n:"CAT_Safe_Open",d:3.33},{n:"CAT_Safe_Open_O",d:3.33},{n:"CAT_Safe_Rob",d:1.83},{n:"SHP_HandsUp_Scr",d:.67}]],["ROCKET",[{n:"idle_rocket",d:1.6},{n:"RocketFire",d:.97},{n:"run_rocket",d:.77},{n:"walk_rocket",d:1.07},{n:"WALK_start_rocket",d:.2}]],["RUNNINGMAN",[{n:"Dance_B1",d:.53},{n:"Dance_B2",d:.57},{n:"Dance_B3",d:.53},{n:"Dance_B4",d:.57},{n:"Dance_B5",d:.53},{n:"Dance_B6",d:.57},{n:"Dance_B7",d:.53},{n:"Dance_B8",d:.57},{n:"Dance_B9",d:.53},{n:"Dance_B10",d:.57},{n:"Dance_B11",d:.53},{n:"Dance_B12",d:.57},{n:"Dance_B13",d:.53},{n:"Dance_B14",d:.57},{n:"Dance_B15",d:.53},{n:"Dance_B16",d:.57},{n:"Dance_G1",d:.53},{n:"Dance_G2",d:.57},{n:"Dance_G3",d:.53},{n:"Dance_G4",d:.57},{n:"Dance_G5",d:.53},{n:"Dance_G6",d:.57},{n:"Dance_G7",d:.53},{n:"Dance_G8",d:.57},{n:"Dance_G9",d:.53},{n:"Dance_G10",d:.57},{n:"Dance_G11",d:.53},{n:"Dance_G12",d:.57},{n:"Dance_G13",d:.53},{n:"Dance_G14",d:.57},{n:"Dance_G15",d:.53},{n:"Dance_G16",d:.57},{n:"dance_loop",d:1.17}]],["RUSTLER",[{n:"Plane_align_LHS",d:.73},{n:"Plane_close",d:.4},{n:"Plane_getin",d:.8},{n:"Plane_getout",d:1.57},{n:"Plane_open",d:.7}]],["RYDER",[{n:"RYD_Beckon_01",d:1.23},{n:"RYD_Beckon_02",d:1},{n:"RYD_Beckon_03",d:1.07},{n:"RYD_Die_PT1",d:4},{n:"RYD_Die_PT2",d:7.93},{n:"Van_Crate_L",d:.67},{n:"Van_Crate_R",d:.67},{n:"Van_Fall_L",d:.47},{n:"Van_Fall_R",d:.93},{n:"Van_Lean_L",d:.67},{n:"Van_Lean_R",d:.67},{n:"VAN_PickUp_E",d:1.83},{n:"VAN_PickUp_S",d:1.5},{n:"Van_Stand",d:.67},{n:"Van_Stand_Crate",d:.67},{n:"Van_Throw",d:1.37}]],["SAMP",[{n:"FishingIdle",d:1}]],["SCRATCHING",[{n:"scdldlp",d:.67},{n:"scdlulp",d:.67},{n:"scdrdlp",d:.67},{n:"scdrulp",d:.67},{n:"sclng_l",d:1},{n:"sclng_r",d:1},{n:"scmid_l",d:.47},{n:"scmid_r",d:.47},{n:"scshrtl",d:.2},{n:"scshrtr",d:.2},{n:"sc_ltor",d:.67},{n:"sc_rtol",d:.67}]],["SHAMAL",[{n:"SHAMAL_align",d:.2},{n:"SHAMAL_getin_LHS",d:1.4},{n:"SHAMAL_getout_LHS",d:1.37},{n:"SHAMAL_open",d:.6}]],["SHOP",[{n:"ROB_2Idle",d:1.17},{n:"ROB_Loop",d:2.67},{n:"ROB_Loop_Threat",d:2},{n:"ROB_Shifty",d:5.67},{n:"ROB_StickUp_In",d:.53},{n:"SHP_Duck",d:.67},{n:"SHP_Duck_Aim",d:.33},{n:"SHP_Duck_Fire",d:.83},{n:"SHP_Gun_Aim",d:.63},{n:"SHP_Gun_Duck",d:.5},{n:"SHP_Gun_Fire",d:.87},{n:"SHP_Gun_Grab",d:.87},{n:"SHP_Gun_Threat",d:.83},{n:"SHP_HandsUp_Scr",d:.67},{n:"SHP_Jump_Glide",d:.33},{n:"SHP_Jump_Land",d:.7},{n:"SHP_Jump_Launch",d:.57},{n:"SHP_Rob_GiveCash",d:3.83},{n:"SHP_Rob_HandsUp",d:2.67},{n:"SHP_Rob_React",d:2.67},{n:"SHP_Serve_End",d:5.5},{n:"SHP_Serve_Idle",d:5},{n:"SHP_Serve_Loop",d:4.17},{n:"SHP_Serve_Start",d:1.33},{n:"Smoke_RYD",d:6.67}]],["SHOTGUN",[{n:"shotgun_crouchfire",d:1.47},{n:"shotgun_fire",d:1.47},{n:"shotgun_fire_poor",d:1.5}]],["SILENCED",[{n:"CrouchReload",d:1},{n:"SilenceCrouchfire",d:.93},{n:"Silence_fire",d:.87},{n:"Silence_reload",d:.93}]],["SKATE",[{n:"skate_idle",d:1},{n:"skate_run",d:.83},{n:"skate_sprint",d:.67}]],["SMOKING",[{n:"F_smklean_loop",d:4},{n:"M_smklean_loop",d:5},{n:"M_smkstnd_loop",d:5.33},{n:"M_smk_drag",d:3.67},{n:"M_smk_in",d:6.67},{n:"M_smk_loop",d:3.33},{n:"M_smk_out",d:3},{n:"M_smk_tap",d:3}]],["SNIPER",[{n:"WEAPON_sniper",d:1.47}]],["SnM",[{n:"SnM_Caned_Idle_P",d:2},{n:"SnM_Caned_Idle_W",d:2},{n:"SnM_Caned_P",d:1.33},{n:"SnM_Caned_W",d:1.33},{n:"SnM_Cane_Idle_P",d:2},{n:"SnM_Cane_Idle_W",d:2},{n:"SnM_Cane_P",d:1.33},{n:"SnM_Cane_W",d:1.33},{n:"SpankedP",d:1.33},{n:"SpankedW",d:1.33},{n:"Spanked_IdleP",d:1.33},{n:"Spanked_IdleW",d:1.33},{n:"SpankingP",d:1.33},{n:"SpankingW",d:1.33},{n:"Spanking_endP",d:6.67},{n:"Spanking_endW",d:6.67},{n:"Spanking_IdleP",d:1.33},{n:"Spanking_IdleW",d:1.33},{n:"Spanking_SittingIdleP",d:1.33},{n:"Spanking_SittingIdleW",d:1.33},{n:"Spanking_SittingP",d:1},{n:"Spanking_SittingW",d:1}]],["SPRAYCAN",[{n:"spraycan_fire",d:2.33},{n:"spraycan_full",d:4.5}]],["STRIP",[{n:"PLY_CASH",d:1.67},{n:"PUN_CASH",d:3.33},{n:"PUN_HOLLER",d:5},{n:"PUN_LOOP",d:1.93},{n:"strip_A",d:2.07},{n:"strip_B",d:1},{n:"strip_C",d:.97},{n:"strip_D",d:1.9},{n:"strip_E",d:3.33},{n:"strip_F",d:1.03},{n:"strip_G",d:2.27},{n:"STR_A2B",d:4},{n:"STR_B2A",d:.5},{n:"STR_B2C",d:5},{n:"STR_C1",d:6},{n:"STR_C2",d:6},{n:"STR_C2B",d:1},{n:"STR_Loop_A",d:1},{n:"STR_Loop_B",d:2},{n:"STR_Loop_C",d:3}]],["SUNBATHE",[{n:"batherdown",d:3.93},{n:"batherup",d:12.3},{n:"Lay_Bac_in",d:2.33},{n:"Lay_Bac_out",d:3},{n:"ParkSit_M_IdleA",d:3.33},{n:"ParkSit_M_IdleB",d:2.67},{n:"ParkSit_M_IdleC",d:4.33},{n:"ParkSit_M_in",d:2.33},{n:"ParkSit_M_out",d:2},{n:"ParkSit_W_idleA",d:3.33},{n:"ParkSit_W_idleB",d:5},{n:"ParkSit_W_idleC",d:3},{n:"ParkSit_W_in",d:4},{n:"ParkSit_W_out",d:2.67},{n:"SBATHE_F_LieB2Sit",d:1.67},{n:"SBATHE_F_Out",d:2},{n:"SitnWait_in_W",d:4.67},{n:"SitnWait_out_W",d:2.67}]],["SWAT",[{n:"gnstwall_injurd",d:2},{n:"JMP_Wall1m_180",d:1.17},{n:"Rail_fall",d:3},{n:"Rail_fall_crawl",d:5.67},{n:"swt_breach_01",d:5.47},{n:"swt_breach_02",d:5.33},{n:"swt_breach_03",d:4.3},{n:"swt_go",d:1.67},{n:"swt_lkt",d:3},{n:"swt_sty",d:1.17},{n:"swt_vent_01",d:4.73},{n:"swt_vent_02",d:4.43},{n:"swt_vnt_sht_die",d:.67},{n:"swt_vnt_sht_in",d:1.6},{n:"swt_vnt_sht_loop",d:.27},{n:"swt_wllpk_L",d:2.67},{n:"swt_wllpk_L_back",d:.5},{n:"swt_wllpk_R",d:3.67},{n:"swt_wllpk_R_back",d:.43},{n:"swt_wllshoot_in_L",d:1},{n:"swt_wllshoot_in_R",d:1.3},{n:"swt_wllshoot_out_L",d:2},{n:"swt_wllshoot_out_R",d:1.43}]],["SWEET",[{n:"ho_ass_slapped",d:2},{n:"LaFin_Player",d:26.67},{n:"LaFin_Sweet",d:26.67},{n:"plyr_hndshldr_01",d:4},{n:"sweet_ass_slap",d:2},{n:"sweet_hndshldr_01",d:4},{n:"Sweet_injuredloop",d:2}]],["SWIM",[{n:"Swim_Breast",d:1.3},{n:"SWIM_crawl",d:.9},{n:"Swim_Dive_Under",d:1.07},{n:"Swim_Glide",d:1.47},{n:"Swim_jumpout",d:.33},{n:"Swim_Tread",d:1.3},{n:"Swim_Under",d:1.5}]],["SWORD",[{n:"sword_1",d:.87},{n:"sword_2",d:1.07},{n:"sword_3",d:.8},{n:"sword_4",d:1.1},{n:"sword_block",d:.47},{n:"Sword_Hit_1",d:.83},{n:"Sword_Hit_2",d:1.03},{n:"Sword_Hit_3",d:.87},{n:"sword_IDLE",d:1},{n:"sword_part",d:.67}]],["TANK",[{n:"TANK_align_LHS",d:1.43},{n:"TANK_close_LHS",d:.33},{n:"TANK_doorlocked",d:.53},{n:"TANK_getin_LHS",d:.43},{n:"TANK_getout_LHS",d:1.97},{n:"TANK_open_LHS",d:.3}]],["TATTOOS",[{n:"TAT_ArmL_In_O",d:.83},{n:"TAT_ArmL_In_P",d:.83},{n:"TAT_ArmL_In_T",d:.83},{n:"TAT_ArmL_Out_O",d:.93},{n:"TAT_ArmL_Out_P",d:2.5},{n:"TAT_ArmL_Out_T",d:.93},{n:"TAT_ArmL_Pose_O",d:.83},{n:"TAT_ArmL_Pose_P",d:.83},{n:"TAT_ArmL_Pose_T",d:.83},{n:"TAT_ArmR_In_O",d:.83},{n:"TAT_ArmR_In_P",d:.83},{n:"TAT_ArmR_In_T",d:.83},{n:"TAT_ArmR_Out_O",d:1},{n:"TAT_ArmR_Out_P",d:2.5},{n:"TAT_ArmR_Out_T",d:1},{n:"TAT_ArmR_Pose_O",d:.83},{n:"TAT_ArmR_Pose_P",d:.83},{n:"TAT_ArmR_Pose_T",d:.83},{n:"TAT_Back_In_O",d:.83},{n:"TAT_Back_In_P",d:.83},{n:"TAT_Back_In_T",d:.83},{n:"TAT_Back_Out_O",d:.93},{n:"TAT_Back_Out_P",d:2.5},{n:"TAT_Back_Out_T",d:.93},{n:"TAT_Back_Pose_O",d:.83},{n:"TAT_Back_Pose_P",d:.83},{n:"TAT_Back_Pose_T",d:.83},{n:"TAT_Back_Sit_In_P",d:.83},{n:"TAT_Back_Sit_Loop_P",d:2.67},{n:"TAT_Back_Sit_Out_P",d:.83},{n:"TAT_Bel_In_O",d:.83},{n:"TAT_Bel_In_T",d:.83},{n:"TAT_Bel_Out_O",d:.97},{n:"TAT_Bel_Out_T",d:.97},{n:"TAT_Bel_Pose_O",d:.83},{n:"TAT_Bel_Pose_T",d:.83},{n:"TAT_Che_In_O",d:.83},{n:"TAT_Che_In_P",d:.83},{n:"TAT_Che_In_T",d:.83},{n:"TAT_Che_Out_O",d:.93},{n:"TAT_Che_Out_P",d:2.5},{n:"TAT_Che_Out_T",d:.93},{n:"TAT_Che_Pose_O",d:.83},{n:"TAT_Che_Pose_P",d:.83},{n:"TAT_Che_Pose_T",d:.83},{n:"TAT_Drop_O",d:.5},{n:"TAT_Idle_Loop_O",d:2.67},{n:"TAT_Idle_Loop_T",d:2.67},{n:"TAT_Sit_In_O",d:2.33},{n:"TAT_Sit_In_P",d:2.33},{n:"TAT_Sit_In_T",d:2.33},{n:"TAT_Sit_Loop_O",d:2.67},{n:"TAT_Sit_Loop_P",d:2.67},{n:"TAT_Sit_Loop_T",d:2.67},{n:"TAT_Sit_Out_O",d:2.83},{n:"TAT_Sit_Out_P",d:2.17},{n:"TAT_Sit_Out_T",d:2.83}]],["TEC",[{n:"TEC_crouchfire",d:.97},{n:"TEC_crouchreload",d:1.33},{n:"TEC_fire",d:1.1},{n:"TEC_reload",d:1.5}]],["TRAIN",[{n:"tran_gtup",d:3.17},{n:"tran_hng",d:2.33},{n:"tran_ouch",d:1.17},{n:"tran_stmb",d:2.33}]],["TRUCK",[{n:"TRUCK_ALIGN_LHS",d:.57},{n:"TRUCK_ALIGN_RHS",d:.57},{n:"TRUCK_closedoor_LHS",d:.4},{n:"TRUCK_closedoor_RHS",d:.4},{n:"TRUCK_close_LHS",d:.73},{n:"TRUCK_close_RHS",d:.73},{n:"TRUCK_getin_LHS",d:.6},{n:"TRUCK_getin_RHS",d:.6},{n:"TRUCK_getout_LHS",d:.8},{n:"TRUCK_getout_RHS",d:.8},{n:"TRUCK_jackedLHS",d:1.73},{n:"TRUCK_jackedRHS",d:1.5},{n:"TRUCK_open_LHS",d:.53},{n:"TRUCK_open_RHS",d:.53},{n:"TRUCK_pullout_LHS",d:.9},{n:"TRUCK_pullout_RHS",d:.9},{n:"TRUCK_Shuffle",d:.4}]],["UZI",[{n:"UZI_crouchfire",d:.63},{n:"UZI_crouchreload",d:1.37},{n:"UZI_fire",d:.57},{n:"UZI_fire_poor",d:.53},{n:"UZI_reload",d:1.4}]],["VAN",[{n:"VAN_close_back_LHS",d:.33},{n:"VAN_close_back_RHS",d:.33},{n:"VAN_getin_Back_LHS",d:.6},{n:"VAN_getin_Back_RHS",d:.6},{n:"VAN_getout_back_LHS",d:.63},{n:"VAN_getout_back_RHS",d:.63},{n:"VAN_open_back_LHS",d:.97},{n:"VAN_open_back_RHS",d:.97}]],["VENDING",[{n:"VEND_Drink2_P",d:3.33},{n:"VEND_Drink_P",d:1.33},{n:"vend_eat1_P",d:4.33},{n:"VEND_Eat_P",d:1.67},{n:"VEND_Use",d:2.6},{n:"VEND_Use_pt2",d:.4}]],["VORTEX",[{n:"CAR_jumpin_LHS",d:1},{n:"CAR_jumpin_RHS",d:.93},{n:"vortex_getout_LHS",d:1},{n:"vortex_getout_RHS",d:1}]],["WAYFARER",[{n:"WF_Back",d:.1},{n:"WF_drivebyFT",d:.2},{n:"WF_drivebyLHS",d:.2},{n:"WF_drivebyRHS",d:.2},{n:"WF_Fwd",d:.2},{n:"WF_getoffBACK",d:1.73},{n:"WF_getoffLHS",d:.9},{n:"WF_getoffRHS",d:.9},{n:"WF_hit",d:.03},{n:"WF_jumponL",d:.9},{n:"WF_jumponR",d:.9},{n:"WF_kick",d:1.03},{n:"WF_Left",d:.13},{n:"WF_passenger",d:.03},{n:"WF_pushes",d:.97},{n:"WF_Ride",d:.03},{n:"WF_Right",d:.13},{n:"WF_Still",d:.03}]],["WEAPONS",[{n:"SHP_1H_Lift",d:1},{n:"SHP_1H_Lift_End",d:.33},{n:"SHP_1H_Ret",d:.83},{n:"SHP_1H_Ret_S",d:.33},{n:"SHP_2H_Lift",d:.93},{n:"SHP_2H_Lift_End",d:.33},{n:"SHP_2H_Ret",d:.9},{n:"SHP_2H_Ret_S",d:.33},{n:"SHP_Ar_Lift",d:1},{n:"SHP_Ar_Lift_End",d:.33},{n:"SHP_Ar_Ret",d:1.17},{n:"SHP_Ar_Ret_S",d:.33},{n:"SHP_G_Lift_In",d:.67},{n:"SHP_G_Lift_Out",d:.67},{n:"SHP_Tray_In",d:.67},{n:"SHP_Tray_Out",d:.67},{n:"SHP_Tray_Pose",d:2.67}]],["WOP",[{n:"Dance_B1",d:1.13},{n:"Dance_B2",d:1.17},{n:"Dance_B3",d:1.13},{n:"Dance_B4",d:1.17},{n:"Dance_B5",d:1.13},{n:"Dance_B6",d:1.17},{n:"Dance_B7",d:1.13},{n:"Dance_B8",d:1.17},{n:"Dance_B9",d:1.13},{n:"Dance_B10",d:1.17},{n:"Dance_B11",d:1.13},{n:"Dance_B12",d:1.17},{n:"Dance_B13",d:1.13},{n:"Dance_B14",d:1.17},{n:"Dance_B15",d:1.13},{n:"Dance_B16",d:1.17},{n:"Dance_G1",d:1.13},{n:"Dance_G2",d:1.17},{n:"Dance_G3",d:1.13},{n:"Dance_G4",d:1.17},{n:"Dance_G5",d:1.13},{n:"Dance_G6",d:1.17},{n:"Dance_G7",d:1.13},{n:"Dance_G8",d:1.17},{n:"Dance_G9",d:1.13},{n:"Dance_G10",d:1.17},{n:"Dance_G11",d:1.13},{n:"Dance_G12",d:1.17},{n:"Dance_G13",d:1.13},{n:"Dance_G14",d:1.17},{n:"Dance_G15",d:1.13},{n:"Dance_G16",d:1.17},{n:"dance_loop",d:1.17}]],["WUZI",[{n:"CS_Dead_Guy",d:5.07},{n:"CS_Plyr_pt1",d:3.77},{n:"CS_Plyr_pt2",d:9.67},{n:"CS_Wuzi_pt1",d:3.77},{n:"CS_Wuzi_pt2",d:9.67},{n:"Walkstart_Idle_01",d:3.17},{n:"Wuzi_follow",d:3},{n:"Wuzi_Greet_Plyr",d:4},{n:"Wuzi_Greet_Wuzi",d:4},{n:"Wuzi_grnd_chk",d:4},{n:"Wuzi_stand_loop",d:2.67},{n:"Wuzi_Walk",d:1.17}]]]),Te=e=>{const t=gt.get(e.toUpperCase());return t===void 0?!1:t},De=(e,t)=>{const a=Te(e);if(a)return t==="null"?!0:a.some(n=>n.n===t)},Ic=(e,t)=>{const a=Te(e);if(a)return a.find(n=>n.n===t)?.d},J=(e,t)=>{const a=t.replace("-","")==="utf8"?e:I.encodeToBuf(e,t);return[a instanceof Array?"a":"s",a]},St=(e,t,a)=>{const n=J(a,e.charset);return samp.callNative("SendClientMessage",`ii${n[0]}`,e.id,E(t),n[1])},Ec=(e,t,a)=>(e.forEach(n=>St(n,t,a)),1),yt=(e,t,a)=>{const n=J(a,e.charset);return samp.callNative("SendPlayerMessageToPlayer",`ii${n[0]}`,e.id,t,n[1])},Ac=(e,t,a)=>(e.forEach(n=>{yt(n,t,a)}),1),Cc=(e,t,a)=>{const{charset:n}=e,{style:i,caption:r,info:s,button1:l,button2:o}=a,[c,u]=J(r||"",n),[,g]=J(s||"",n),[,S]=J(l||"",n),[,P]=J(o||"",n);return!!samp.callNative("ShowPlayerDialog",`iii${c.repeat(4)}`,e.id,t,i,u,g,S,P)},Tc=e=>{const[t]=samp.callNative("GetPlayerName","iAi",e.id,M.MAX_PLAYER_NAME);return I.decodeFromBuf(I.getValidStr(t),e.charset)},Dc=(e,t)=>samp.callNative("SetPlayerName","ia",e.id,I.encodeToBuf(t,e.charset)),wc=(e,t,a)=>{const n=I.encodeToBuf(t,a);return samp.callNative("BanEx","ia",e,n)},Nc=(e,t="utf8")=>{const[a,n]=J(e,t);return samp.callNative("SendRconCommand",a,n)},vc=(e,t,a,n,i,r,s,l,o,c,u,g,S,P,y,A)=>{const v=I.encodeToBuf(t,e);return samp.callNative("CreateDynamic3DTextLabel","aiffffiiiiiifii",v,a,n,i,r,s,l,o,c,u,g,S,P,y,A)},bc=(e,t,a,n,i,r,s,l,o,c,u,g,S,P,y,A)=>{const v=I.encodeToBuf(e,A);return samp.callNative("CreateDynamic3DTextLabelEx","aiffffiiifaaaaiiiii",v,t,a,n,i,r,s,l,o,c,u,g,S,P,y,u.length,g.length,S.length,P.length)},Rc=(e,t,a,n)=>{const i=I.encodeToBuf(a,n);return samp.callNative("UpdateDynamic3DTextLabelText","iia",e,t,i)},Lc=(e,t)=>{const[a]=samp.callNative("GetDynamic3DTextLabelText","iAi",e,1024);return I.decodeFromBuf(I.getValidStr(a),t)},Oc=(e,t,a,n,i,r,s,l,o,c,u)=>{const g=I.encodeToBuf(n,e),S=I.encodeToBuf(r,e);return samp.callNative("SetDynamicObjectMaterialText","iiaiaiiiii",t,a,g,i,S,s,l,o,c,u)},Gc=(e,t,a)=>{const[n,i,r,s,l,o,c]=samp.callNative("GetDynamicObjectMaterialText","iiAIAIIIIIii",e,t,2048,32),u=I.decodeFromBuf(n,a),g=I.decodeFromBuf(r,a);return{text:u,materialSize:i,fontFace:g,bold:s,fontColor:l,backColor:o,textAlignment:c}},Fc=(e,t,a,n,i,r)=>{const s=I.encodeToBuf(t,r);return!!samp.callNative("SetPlayerChatBubble","iaifi",e,s,E(a),n,i)},Q=Symbol(),Y=new Map,Se=new Map,we=new Map,[ft]=h({name:"OnClientCheckResponse",beforeEach(e,t,a,n){return{player:p.getInstance(e),actionId:t,memAddr:a,data:n}}}),[Bc,xc]=h({name:"OnPlayerLocaleChange",isNative:!1,beforeEach(e,t,a){return{player:e,newLocale:t,oldLocale:a}}}),[kc,Mc]=h({name:"OnPlayerCharsetChange",isNative:!1,beforeEach(e,t,a){return{player:e,newCharset:t,oldCharset:a}}});class p{constructor(t){this.id=t;const a=p.getInstance(t);if(a)return a}[Q]={isAndroid:!0};static players=Y;static MAX_CHECK_ANDROID_DELAY=10;static SKIP_CHECK_ANDROID=!1;_charset="ISO-8859-1";_locale="en_US";lastDrunkLevel=0;lastFps=0;lastUpdateTick=0;lastUpdateFpsTick=0;isPaused=!1;isRecording=!1;get charset(){return this._charset}set charset(t){const a=this._charset;this._charset=t,Mc(this,t,a)}get locale(){return this._locale}set locale(t){const a=this._locale;this._locale=t,xc(this,t,a)}sendClientMessage(t,a){return St(this,t,a)}static sendClientMessageToAll(t,a){Ec(p.getInstances(),t,a)}sendMessageToPlayer(t,a){return yt(t,this.id,a)}sendMessageToAll(t){return Ac(p.getInstances(),this.id,t)}isNpc(){return Xn(this.id)}getFps(){return this.lastFps}getDrunkLevel(){return gi(this.id)}setDrunkLevel(t){if(t<0||t>5e4)throw new Error("[Player]: player's drunk level ranges from 0 to 50000");return Si(this.id,t)}allowTeleport(t){return Mn(this.id,t)}isTeleportAllowed(){return Hn(this.id)}enableCameraTarget(t){return Fr(this.id,t)}enableStuntBonus(t){return mr(this.id,t)}getInterior(){return ni(this.id)}setInterior(t){return ai(this.id,t)}showNameTag(t,a){return Nr(this.id,t.id,a)}setColor(t){return yi(this.id,t)}getColor(){return fi(this.id)}setMarker(t,a){Dr(this.id,t.id,a)}getMarker(t){return wr(this.id,t.id)}resetMoney(){return wi(this.id)}getMoney(){return Ni(this.id)}giveMoney(t){return Di(this.id,t)}resetWeapons(){return Ai(this.id)}spawn(){return ja(this.id)}setHealth(t){return ii(this.id,t)}getHealth(){return ri(this.id)}toggleClock(t){return Fi(this.id,t)}toggleControllable(t){return ir(this.id,t)}toggleSpectating(t){return fr(this.id,t)}spectatePlayer(t,a=ge.NORMAL){return Pr(this.id,t.id,a)}spectateVehicle(t,a=ge.NORMAL){return Ir(this.id,t.id,a)}forceClassSelection(){return xi(this.id)}kick(){return nn(this.id)}ban(){return rn(this.id)}banEx(t,a){return wc(this.id,t,a)}isAdmin(){return tn(this.id)}isInRangeOfPoint(t,a,n,i){return qn(this.id,t,a,n,i)}isStreamedIn(t){return ti(this.id,t.id)}setSkin(t,a=!1){return!a&&(t<0||t>311||t===74)||this.getHealth()<=0||this.isInAnyVehicle()||this.getSpecialAction()===Ae.DUCK?!1:Pi(this.id,t)}getSkin(){return Ii(this.id)}isInAnyVehicle(){return Ar(this.id)}getSpecialAction(){return dr(this.id)}setSpecialAction(t){return cr(this.id,t)}setScore(t){return mi(this.id,t)}getScore(){return pi(this.id)}getPing(){return bi(this.id)||0}setPos(t,a,n){return zn(this.id,t,a,n)}getPos(){const[t,a,n]=$n(this.id);return{x:t,y:a,z:n}}isSpectating(){return this.getState()===ce.SPECTATING}isWasted(){return this.getState()===ce.WASTED}getState(){return vi(this.id)}getVersion(){return this.isNpc()?"":gn(this.id)}setVirtualWorld(t){return hr(this.id,t)}getVirtualWorld(){return ur(this.id)}removeFromVehicle(){return nr(this.id)}setWantedLevel(t){if(t<0||t>6)throw new Error("[Player]: player's wanted level ranges from 0 to 6");return ki(this.id,t)}getWantedLevel(){return Mi(this.id)}setFacingAngle(t){return Jn(this.id,t)}getFacingAngle(){return Qn(this.id)}setWeather(t){if(t<0||t>255)throw new Error("[Player]: The valid weather value is only 0 to 255");return Bi(this.id,t)}getWeather(){return Pn(this.id)}setTime(t,a){if(t<0||t>23)throw new Error("[Player]: The valid hour value is only 0 to 23");if(a<0||a>59)throw new Error("[Player]: The valid minute value is only 0 to 59");return Oi(this.id,t,a)}getTime(){const[t,a]=Gi(this.id);return{hour:t,minute:a}}removeBuilding(t,a,n,i,r){return Qi(this.id,t,a,n,i,r)}setTeam(t){t<0||t>w.NO_TEAM||hi(this.id,t)}getTeam(){return ui(this.id)}setSkillLevel(t,a){if(a<0||a>999)throw new Error("[Player]: The valid skill level is only 0 to 999");return zi(this.id,t,a)}getName(){return Tc(this)}setName(t){return Dc(this,t)}setVelocity(t,a,n){return Ui(this.id,t,a,n)}getVelocity(){const[t,a,n]=Wi(this.id);return{x:t,y:a,z:n}}getSpeed(t=180){if(this.id===-1)return 0;const{x:a,y:n,z:i}=this.getVelocity();return Ie(a,n,i)*t}getKeys(){const[t,a,n]=Li(this.id);return{keys:t,upDown:a,leftRight:n}}getIp(){return pn(this.id)}getFightingStyle(){return Vi(this.id)}setFightingStyle(t){return Hi(this.id,t)}setArmour(t){return si(this.id,t)}getArmour(){return li(this.id)}setCameraBehind(){return Rr(this.id)}setCameraPos(t,a,n){return vr(this.id,t,a,n)}setCameraLookAt(t,a,n,i=de.CUT){return br(this.id,t,a,n,i)}getCameraAspectRatio(){return kr(this.id)}getCameraFrontVector(){const[t,a,n]=Or(this.id);return{x:t,y:a,z:n}}getCameraMode(){return Gr(this.id)}getCameraPos(){const[t,a,n]=Lr(this.id);return{x:t,y:a,z:n}}getCameraTargetPlayer(){const t=xr(this.id);return p.getInstances().find(a=>a.id===t)}getCameraTargetVehicle(){const t=Br(this.id);return[...Se.values()].find(a=>a.id===t)}getCameraZoom(){return Mr(this.id)}playAudioStream(t,a=0,n=0,i=0,r=5){let s=!1;return(a!==0||n!==0||i!==0)&&(s=!0),Ki(this.id,t,a,n,i,r,s)}stopAudioStream(){return Zi(this.id)}playSound(t,a=0,n=0,i=0){return rr(this.id,t,a,n,i)}static getMaxPlayers(){return ha()}playCrimeReport(t,a){if(a<3||a>22)throw new Error("[Player]: Available crime ids range from 3 to 22");return ji(this.id,t.id,a)}interpolateCameraPos(t,a,n,i,r,s,l,o=de.CUT){return Hr(this.id,t,a,n,i,r,s,l,o)}interpolateCameraLookAt(t,a,n,i,r,s,l,o=de.CUT){return Vr(this.id,t,a,n,i,r,s,l,o)}createExplosion(t,a,n,i,r){if(i<0||i>13)throw new Error("[Player]: The valid explosion type value is only 0 to 13");return gr(this.id,t,a,n,i,r)}static isConnected(t){return He(t)}isConnected(){return He(this.id)}disableRemoteVehicleCollisions(t){return _r(this.id,t)}getVehicle(){if(!this.isInAnyVehicle())return;const t=tr(this.id);return[...Se.values()].find(a=>a.id===t)}getVehicleSeat(){return ar(this.id)}getSurfingVehicle(){const t=Yi(this.id);if(t!==w.VEHICLE_ID)return[...Se.values()].find(a=>a.id===t)}applyAnimation(t,a,n=4.1,i=!1,r=!0,s=!0,l=!1,o=0,c=!1){if(!De(t,a))throw new Error(`[Player]: Invalid anim library or name ${t} ${a}`);return sr(this.id,t,a,n,i,r,s,l,o,+c)}clearAnimations(t=!1){return lr(this.id,t)}getAnimationIndex(){return or(this.id)}getAnimationName(t=this.getAnimationIndex()){const[a,n]=La(t);return{index:t,animLib:a,animName:n}}setShopName(t){return Xi(this.id,t)}setPosFindZ(t,a,n){return Yn(this.id,t,a,n)}setWorldBounds(t,a,n,i){return Cr(this.id,t,a,n,i)}clearWorldBounds(){return Tr(this.id)}setChatBubble(t,a,n,i,r=this.charset){return Fc(this.id,t,a,n,i,r)}getDistanceFromPoint(t,a,n){return ei(this.id,t,a,n)}getCustomSkin(){return pr(this.id)}getTargetPlayer(){const t=_i(this.id);if(t!==w.PLAYER_ID)return p.getInstances().find(a=>a.id===t)}getLastShotVectors(){const[t,a,n,i,r,s]=qi(this.id);return{fOriginX:t,fOriginY:a,fOriginZ:n,fHitPosX:i,fHitPosY:r,fHitPosZ:s}}getWeapon(){return Ri(this.id)}getWeaponData(t){if(t<0||t>12)throw new Error("[Player]: weapon slots range from 0 to 12");const[a,n]=Ti(this.id,t);return{weapons:a,ammo:n}}getWeaponState(){return ci(this.id)}giveWeapon(t,a){return Ei(this.id,t,a)}setAmmo(t,a){return oi(this.id,t,a)}getAmmo(){return di(this.id)}setArmedWeapon(t){return Ci(this.id,t)}clearDeathMessage(){for(let t=0;t<5;t++)this.sendDeathMessageToPlayer(w.PLAYER_ID,w.PLAYER_ID,Ce.CONNECT)}sendDeathMessage(t,a){return _a(t===w.PLAYER_ID?t:t.id,this.id,a)}sendDeathMessageToPlayer(t,a,n){return Kn(this.id,t===w.PLAYER_ID?t:t.id,a===w.PLAYER_ID?a:a.id,n)}setSpawnInfo(t,a,n,i,r,s,l,o,c,u,g,S){return t<0||t>w.NO_TEAM||a<0||a>311||a===74||o<0||u<0||S<0?!1:Wa(this.id,t,a,n,i,r,s,l,o,c,u,g,S)}redirectDownload(t){return uc(this.id,t)}sendClientCheck(t,a,n,i){const r=[2,5,69,70,71,72];if(!r.includes(t))throw new Error(`[Player]: sendClientCheck valid types are ${r.toString()}`);return new Promise((s,l)=>{if(this.isPaused)return l("[Player]: An attempt to check the player client response, but the player paused the game");const o="[Player]: An attempt to check the player client response timed out",c=this.getPing(),u=(c>=200?0:c)+200;let g=null;const S=ft(({player:P,actionId:y,memAddr:A,data:v,next:G})=>(P!==this||(g&&(clearTimeout(g),g=null),s({actionId:y,memAddr:A,data:v})),G()));g=setTimeout(()=>{S(),l(o)},u),_n(this.id,t,a,n,i)})}selectTextDraw(t){fd(this.id,t)}cancelSelectTextDraw(){Pd(this.id)}beginObjectSelecting(){return oc(this.id)}endObjectEditing(){return dc(this.id)}getSurfingObject(){const t=$i(this.id);if(t!==w.OBJECT_ID)return we.get(t)}getSurfingPlayerObject(){const t=Ji(this.id);if(t!==w.OBJECT_ID)return we.get(t)}isAttachedObjectSlotUsed(t){return fc(this.id,t)}editAttachedObject(t){return lc(this.id,t)}setAttachedObject(t,a,n,i=0,r=0,s=0,l=0,o=0,c=0,u=1,g=1,S=1,P=0,y=0){return this.isAttachedObjectSlotUsed(t)?0:Sc(this.id,t,a,n,i,r,s,l,o,c,u,g,S,P,y)}removeAttachedObject(t){return this.isAttachedObjectSlotUsed(t)?yc(this.id,t):0}getAnimationFlags(){return samp.callNative("GetPlayerAnimationFlags","i",this.id)}getLastSyncedTrailerID(){return samp.callNative("GetPlayerLastSyncedTrailerID","i",this.id)}getLastSyncedVehicleID(){return samp.callNative("GetPlayerLastSyncedVehicleID","i",this.id)}toggleWidescreen(t){return Sn(this.id,t)}isWidescreenToggled(){return yn(this.id)}getSpawnInfo(){return Ka(this.id)}getSkillLevel(t){return fn(this.id,t)}isCheckpointActive(){return bl(this.id)}getCheckpoint(){return Rl(this.id)}isRaceCheckpointActive(){return Ll(this.id)}getRaceCheckpoint(){return Ol(this.id)}getWorldBounds(){In(this.id)}isInModShop(){return Al(this.id)}getSirenState(){return Cl(this.id)}getLandingGearState(){return Tl(this.id)}getHydraReactorAngle(){return Dl(this.id)}getTrainSpeed(){return wl(this.id)}getZAim(){return En(this.id)}getSurfingOffsets(){return An(this.id)}getRotationQuat(){return Cn(this.id)}getDialogID(){return Tn(this.id)}getSpectateID(){return Dn(this.id)}getSpectateType(){return wn(this.id)}getRawIp(){return mn(this.id)}setGravity(t){return Nn(this.id,t)}getGravity(){return vn(this.id)}setAdmin(t){return an(this.id,t)}isSpawned(){return bn(this.id)}isControllable(){return Rn(this.id)}isCameraTargetEnabled(){return Ln(this.id)}toggleGhostMode(t){return On(this.id,t)}getGhostMode(){return Gn(this.id)}getBuildingsRemoved(){return Fn(this.id)}getAttachedObject(t){return gc(this.id,t)}removeWeapon(t){return Bn(this.id,t)}isUsingOfficialClient(){return kn(this.id)}allowWeapons(t){return Vn(this.id,t)}areWeaponsAllowed(){return Un(this.id)}gpci(t=this.charset){return cn(this.id,t)}isCuffed(){return Ur(this.id)}isInDriveByMode(){return Wr(this.id)}isAndroid(){return this.isConnected()&&this[Q].isAndroid}isPC(){return this.isConnected()&&!this[Q].isAndroid}isUsingOmp(){return jr(this.id)}static getInstance(t){return Y.get(t)}static getInstances(){return[...Y.values()]}}const[Pt]=h({name:"OnDialogResponseI18n",identifier:"iiiiai",defaultValue:!1,beforeEach(e,t,a,n,i){const r=p.getInstance(e),s=I.decodeFromBuf(i,r.charset);return{player:r,dialogId:t,response:a,listItem:n,buffer:i,inputText:s}}});Pt(({next:e,player:t,dialogId:a,response:n,listItem:i,buffer:r,inputText:s})=>{const l=b.waitingQueue.get(t);return!l||l.showId!==a||setTimeout(()=>l.resolve({response:n,listItem:i,buffer:r,inputText:s})),e()});class b{id=-1;static showingIds=[];static maxDialogId=32767;dialog;static waitingQueue=new WeakMap;constructor(t={style:Ee.MSGBOX,caption:"",info:"",button1:"",button2:""}){this.dialog=t}get style(){return this.dialog.style}set style(t){this.dialog.style=t}get caption(){return this.dialog.caption}set caption(t){this.dialog.caption=t}get info(){return this.dialog.info}set info(t){this.dialog.info=t}get button1(){return this.dialog.button1}set button1(t){this.dialog.button1=t}get button2(){return this.dialog.button2}set button2(t){this.dialog.button2=t}static delDialogTask(t,a=!1){const n=b.waitingQueue.get(t);if(!n)return!1;a&&n.reject("[Dialog]: player timeout does not respond or second request show dialog"),b.waitingQueue.delete(t);const i=b.showingIds.indexOf(n.showId);return i>-1&&b.showingIds.splice(i,1),!0}show(t){return new Promise((a,n)=>{for(b.close(t);(this.id===-1||b.showingIds.includes(this.id))&&b.showingIds.length!==b.maxDialogId;)this.id=Math.floor(Math.random()*(b.maxDialogId+1));if(this.id===-1){n("[Dialog]: The maximum number of dialogs is reached");return}b.showingIds.push(this.id),b.waitingQueue.set(t,{resolve:a,reject:n,showId:this.id}),b.__inject__ShowPlayerDialog(t,this.id,this.dialog)}).catch(a=>Promise.reject(a)).finally(()=>b.delDialogTask(t))}static close(t){b.delDialogTask(t,!0),xn(t.id)}static __inject__ShowPlayerDialog=Cc}const[It]=h({name:"OnPlayerConnect",beforeEach(e){const t=new p(e);return Y.set(e,t),b.close(t),{player:t}}}),[Et]=h({name:"OnPlayerDisconnect",beforeEach(e,t){return{player:Y.get(e),reason:t}},afterEach({player:e}){Y.delete(e.id)}}),[At]=h({name:"OnPlayerUpdate",beforeEach(e){return{player:p.getInstance(e)}}}),[Hc]=h({name:"OnPlayerTextI18n",identifier:"iai",beforeEach(e,t){const a=p.getInstance(e);return{player:a,text:I.decodeFromBuf(t,a.charset),buffer:t}}}),[Vc]=h({name:"OnPlayerEnterExitModShop",beforeEach(e,t,a){return{player:p.getInstance(e),enterExit:t,interior:a}}}),[Uc]=h({name:"OnPlayerClickMap",defaultValue:!1,beforeEach(e,t,a,n){return{player:p.getInstance(e),fX:t,fY:a,fZ:n}}}),[Wc]=h({name:"OnPlayerClickPlayer",defaultValue:!1,beforeEach(e,t,a){return{player:p.getInstance(e),clickedPlayer:p.getInstance(t),source:a}}}),[jc]=h({name:"OnPlayerDeath",beforeEach(e,t,a){return{player:p.getInstance(e),killer:p.getInstance(t)||w.PLAYER_ID,reason:a}}}),[Kc]=h({name:"OnPlayerGiveDamage",defaultValue:!1,beforeEach(e,t,a,n,i){return{player:p.getInstance(e),damage:p.getInstance(t),amount:a,weapon:n,bodyPart:i}}}),[Zc]=h({name:"OnPlayerKeyStateChange",beforeEach(e,t,a){return{player:p.getInstance(e),newKeys:t,oldKeys:a}}}),[Xc]=h({name:"OnPlayerRequestClass",beforeEach(e,t){return{player:p.getInstance(e),classId:t}}}),[zc]=h({name:"OnPlayerRequestSpawn",beforeEach(e){return{player:p.getInstance(e)}}}),[Yc]=h({name:"OnPlayerSpawn",beforeEach(e){return{player:p.getInstance(e)}}}),[$c]=h({name:"OnPlayerStateChange",beforeEach(e,t,a){return{player:p.getInstance(e),newState:t,oldState:a}}}),[Jc]=h({name:"OnPlayerSteamIn",beforeEach(e,t){return{player:p.getInstance(e),forPlayer:p.getInstance(t)}}}),[Qc]=h({name:"OnPlayerSteamOut",beforeEach(e,t){return{player:p.getInstance(e),forPlayer:p.getInstance(t)}}}),[qc]=h({name:"OnPlayerTakeDamage",defaultValue:!1,beforeEach(e,t,a,n,i){return{player:p.getInstance(e),damage:p.getInstance(t)||w.PLAYER_ID,amount:a,weapon:n,bodyPart:i}}}),[e_]=h({name:"OnPlayerInteriorChange",beforeEach(e,t,a){return{player:p.getInstance(e),newInteriorId:t,oldInteriorId:a}}}),[t_]=h({name:"OnPlayerRequestDownload",beforeEach(e,t,a){return{player:p.getInstance(e),type:t,crc:a}}}),[a_]=h({name:"OnPlayerFinishedDownloading",beforeEach(e,t){return{player:p.getInstance(e),virtualWorld:t}}}),[n_]=h({name:"OnPlayerWeaponShot",beforeEach(e,t,a,n,i,r,s){return{player:p.getInstance(e),weapon:t,hitType:a,hitId:n,fX:i,fY:r,fZ:s}}});let he=null;const Z=new Map,Ne=new Map;function Ct(e){if(!e.isConnected()){Z.has(e)&&clearInterval(Z.get(e));return}let t=Ne.get(e)||1;if(t>=p.MAX_CHECK_ANDROID_DELAY){clearInterval(Z.get(e)),ve(e,!0);return}e.sendClientCheck(72,0,0,2).then(({actionId:a})=>{a===72&&(e[Q].isAndroid=!1,Z.has(e)&&clearInterval(Z.get(e)),ve(e,!1))}).catch(()=>{}),t++,Ne.set(e,t)}const[i_,r_]=h({name:"OnPlayerPause",isNative:!1,beforeEach(e,t){return{player:e,pausedAt:t}}}),[s_,l_]=h({name:"OnPlayerResume",isNative:!1,beforeEach(e,t,a,n){return{player:e,pausedAt:t,now:a,diff:n}}}),[o_,d_]=h({name:"OnPlayerFpsUpdate",isNative:!1,beforeEach(e,t,a){return{player:e,newFps:t,oldFps:a}}}),[c_,ve]=h({name:"OnAndroidCheck",isNative:!1,beforeEach(e,t){return{player:e,result:t}}});It(({player:e,next:t})=>{if(!he&&p.getInstances().length&&(he=setInterval(()=>{p.getInstances().filter(n=>{const i=n.getState()!==ce.NONE;return!n.isPaused&&!n.isNpc()&&i}).forEach(n=>{Date.now()-n.lastUpdateTick>1e3&&(n.isPaused=!0,r_(n,n.lastUpdateTick))})},500)),e.isNpc())return e[Q].isAndroid=!1,t();if(p.SKIP_CHECK_ANDROID)return e[Q].isAndroid=!e.isUsingOfficialClient(),ve(e,e[Q].isAndroid),t();Ct(e);const a=setInterval(()=>Ct(e),1e3);return Z.set(e,a),t()}),Et(({player:e,next:t})=>(he&&p.getInstances().length<=1&&(clearInterval(he),he=null),Z.has(e)&&(clearInterval(Z.get(e)),Z.delete(e),Ne.delete(e)),t()));function __(e){if(!p.isConnected(e.id))return;const t=Date.now();if(t-e.lastUpdateFpsTick>=1e3){const a=e.getDrunkLevel();if(a<100){e.setDrunkLevel(2e3),e.lastDrunkLevel=2e3,e.lastFps=0;return}e.lastUpdateFpsTick=t;const n=e.lastFps,i=e.lastDrunkLevel-a-1;e.lastFps=i,e.lastDrunkLevel=a,d_(e,i,n)}}At(({player:e,next:t})=>{if(!e.isNpc()){const a=Date.now();e.isPaused&&(e.isPaused=!1,l_(e,e.lastUpdateTick,a,a-e.lastUpdateTick)),e.lastUpdateTick=a,__(e)}return t()});const X=new Uint32Array(65536),h_=(e,t)=>{const a=e.length,n=t.length,i=1<<a-1;let r=-1,s=0,l=a,o=a;for(;o--;)X[e.charCodeAt(o)]|=1<<o;for(o=0;o<n;o++){let c=X[t.charCodeAt(o)];const u=c|s;c|=(c&r)+r^r,s|=~(c|r),r&=c,s&i&&l++,r&i&&l--,s=s<<1|1,r=r<<1|~(u|s),s&=u}for(o=a;o--;)X[e.charCodeAt(o)]=0;return l},u_=(e,t)=>{const a=t.length,n=e.length,i=[],r=[],s=Math.ceil(a/32),l=Math.ceil(n/32);for(let y=0;y<s;y++)r[y]=-1,i[y]=0;let o=0;for(;o<l-1;o++){let y=0,A=-1;const v=o*32,G=Math.min(32,n)+v;for(let D=v;D<G;D++)X[e.charCodeAt(D)]|=1<<D;for(let D=0;D<a;D++){const z=X[t.charCodeAt(D)],K=r[D/32|0]>>>D&1,k=i[D/32|0]>>>D&1,Fe=z|y,Be=((z|k)&A)+A^A|z|k;let le=y|~(Be|A),pe=A&Be;le>>>31^K&&(r[D/32|0]^=1<<D),pe>>>31^k&&(i[D/32|0]^=1<<D),le=le<<1|K,pe=pe<<1|k,A=pe|~(Fe|le),y=le&Fe}for(let D=v;D<G;D++)X[e.charCodeAt(D)]=0}let c=0,u=-1;const g=o*32,S=Math.min(32,n-g)+g;for(let y=g;y<S;y++)X[e.charCodeAt(y)]|=1<<y;let P=n;for(let y=0;y<a;y++){const A=X[t.charCodeAt(y)],v=r[y/32|0]>>>y&1,G=i[y/32|0]>>>y&1,D=A|c,z=((A|G)&u)+u^u|A|G;let K=c|~(z|u),k=u&z;P+=K>>>n-1&1,P-=k>>>n-1&1,K>>>31^v&&(r[y/32|0]^=1<<y),k>>>31^G&&(i[y/32|0]^=1<<y),K=K<<1|v,k=k<<1|G,u=k|~(D|K),c=K&D}for(let y=g;y<S;y++)X[e.charCodeAt(y)]=0;return P},Tt=(e,t)=>{if(e.length<t.length){const a=t;t=e,e=a}return t.length===0?e.length:e.length<=32?h_(e,t):u_(e,t)},m_=(e,t)=>{let a=1/0,n=0;for(let i=0;i<t.length;i++){const r=Tt(e,t[i]);r<a&&(a=r,n=i)}return t[n]},q=new Map,ee=new Map,Dt=/[^/\s]+/gi,ue={NOT_EXIST:{code:1,msg:"command does not exist"},REJECTED:{code:2,msg:"An event registered through onCommandText returned false"},PERFORMED:{code:3,msg:"An event registered through onCommandPerformed returned false"},RECEIVED_THROW:{code:4,msg:"An event registered through onCommandReceived throw an error"},RECEIVED_REJECTED:{code:5,msg:"An event registered through onCommandReceived returned false"}},[p_,g_]=h({name:"OnCommandReceived",isNative:!1,throwOnError:!0,beforeEach(e,t,a,n,i,r,s,l,o){return{player:e,command:t,cmdText:a,buffer:n,strictMainCmd:i,noStrictMainCmd:r,hasStrict:s,hasNoStrict:l,subcommand:o}}}),[S_,y_]=h({name:"OnCommandPerformed",isNative:!1,beforeEach(e,t,a,n,i,r,s,l,o){return{player:e,command:t,cmdText:a,buffer:n,strictMainCmd:i,noStrictMainCmd:r,hasStrict:s,hasNoStrict:l,subcommand:o}}}),[f_,me]=h({name:"OnCommandError",isNative:!1,defaultValue:!1,beforeEach(e,t,a,n,i,r,s,l,o,c){return{player:e,error:t,command:a,cmdText:n,buffer:i,strictMainCmd:r,noStrictMainCmd:s,hasStrict:l,hasNoStrict:o,subcommand:c,getSuggestion(){const u=m_(n,[...q.keys(),...ee.keys()]),g=Tt(n,u);return{suggestion:u,distance:g}}}}}),[P_]=h({name:"OnPlayerCommandTextI18n",identifier:"iai",defaultValue:!1,beforeEach(e,t){const a=p.getInstance(e),n=I.decodeFromBuf(t,a.charset);return{player:a,buffer:t,cmdText:n}}}),[I_,E_]=h({name:"OnPlayerCommandTextRaw",isNative:!1,defaultValue:!1,beforeEach(e,t,a){return{player:e,buffer:t,cmdText:a}}});function A_(e){const t=[];let a="";for(let n=0;n<e.length;n++)a+=e[n]+" ",t.push(a.trimEnd());return t.reverse()}P_(({player:e,buffer:t,cmdText:a,next:n})=>{const i=E_(e,t,a);if(i)return i;const r=a.match(Dt),s=A_(r),l=s.find(A=>q.has(A)),o=s.map(A=>A.toLowerCase()).find(A=>ee.has(A)),c=!!l,u=!!o,g=r.join(" ");let S=[];const P=[[l,q,!0],[o,ee,!1]],y=[g,a,t,l,o,c,u,S];if(c||u){const A=P[0][0]||P[1][0];S=g.replace(A,"").trim().split(" ")}else return me(e,ue.NOT_EXIST,...y);try{if(!g_(e,...y))return me(e,ue.RECEIVED_REJECTED,...y)}catch(A){const v=typeof A=="object"?A:{error:A};return me(e,{...ue.RECEIVED_THROW,...v},...y)}for(const[A,v,G]of P){if(!A)continue;const D=v.get(A),[,z]=D;if(!z(e,A,S,a,t,G))return me(e,ue.REJECTED,...y)}return y_(e,g,a,t,l,o,c,u,S)?(n(),!0):me(e,ue.PERFORMED,...y)});function C_(e,t,a,n,i,r){return{player:e,mainCommand:t,subcommand:a,cmdText:n,buffer:i,isStrict:r}}class W{static caseSensitive=!1;constructor(){}static on(t,a){let n=W.caseSensitive,i,r;typeof t=="string"||t instanceof Array?(i=t,r=a):(i=t.command,r=t.run,typeof t.caseSensitive<"u"&&(n=t.caseSensitive));const s=Array.isArray(i)?i:[i],l=s.find(u=>!u.match(Dt));if(l)return console.log(`error command ${l} format`),()=>{};const o=n?q:ee,c=s.map(u=>{const g=u.replaceAll("/",""),S=n?g:g.toLowerCase();if(!o.has(S)){const y=h({name:n?"$"+S:S,isNative:!1,beforeEach:C_});o.set(S,y)}const[P]=o.get(S);return[S,P(r)]});return()=>{c.forEach(u=>{const[g,S]=u;S()===0&&o.delete(g)})}}static off(t){(Array.isArray(t)?t:[t]).forEach(a=>{let n=a.replaceAll("/","");q.has(n)&&(B.has(n)&&B.delete(n),q.has(n)&&q.delete(n)),n=n.toLowerCase(),ee.has(n)&&(B.has(n)&&B.delete(n),ee.has(n)&&ee.delete(n))})}static enableCaseSensitive(){W.caseSensitive=!0}static disableCaseSensitive(){W.caseSensitive=!1}static isCaseSensitive(){return W.caseSensitive}}const be=Object.freeze({onConnect:It,onDisconnect:Et,onPause:i_,onResume:s_,onUpdate:At,onText:Hc,onEnterExitModShop:Vc,onClickMap:Uc,onClickPlayer:Wc,onDeath:jc,onGiveDamage:Kc,onKeyStateChange:Zc,onRequestClass:Xc,onRequestSpawn:zc,onSpawn:Yc,onStateChange:$c,onStreamIn:Jc,onStreamOut:Qc,onTakeDamage:qc,onInteriorChange:e_,onRequestDownload:t_,onFinishedDownloading:a_,onCheckResponse:ft,onCommandReceived:p_,onCommandPerformed:S_,onCommandError:f_,onCommandText:W.on,offCommandText:W.off,onDialogResponse:Pt,onLocaleChange:Bc,onCharsetChange:kc,onFpsUpdate:o_,onWeaponShot:n_,onAndroidCheck:c_,onCommandTextRaw:I_}),[wt]=h({name:"OnGameModeInit"}),[Nt]=h({name:"OnGameModeExit"}),[T_]=h({name:"OnIncomingConnection",defaultValue:!1,beforeEach(e,t,a){return{playerId:e,ipAddress:t,port:a}}}),[D_]=h({name:"OnRconCommandI18n",identifier:"ai",defaultValue:!1,beforeEach(e){return{buffer:e,cmd:I.decodeFromBuf(e)}}}),[w_]=h({name:"OnRconLoginAttemptI18n",identifier:"aiaii",beforeEach(e,t,a){return{ip:I.decodeFromBuf(e),password:I.decodeFromBuf(t),success:!!a,ipBuffer:e,passwordBuffer:t}}}),te=[],se=[],Re=new Map,Le=async e=>{try{return await new Promise((t,a)=>{const n=te.findIndex(l=>l.name===e);if(n===-1)return;const i=te[n];function r(l){l.length&&Re.set(e,l),te.splice(n,1),se.push(i),setTimeout(t)}const s=i.load();s instanceof Promise?s.then(r).catch(a):r(s)})}catch(t){throw new Error(`[GameMode]: script ${e} load fail
3
+ err:${t}`)}},Oe=async e=>{try{return await new Promise((t,a)=>{const n=se.findIndex(o=>o.name===e);if(n===-1)return;const i=se[n],r=Re.get(e);r&&(r.forEach(o=>o()),Re.delete(e));function s(){se.splice(n,1),te.push(i),setTimeout(t)}const l=i.unload();l instanceof Promise?l.then(s).catch(a):s()})}catch(t){throw new Error(`[GameMode]: script ${e} unload fail
4
+ ${t}`)}},N_=async e=>{await Oe(e),await Le(e)};wt(async({next:e})=>{const t=te.map(a=>a.name);for(const a of t)await Le(a);return e()}),Nt(async({next:e})=>{const t=se.map(a=>a.name);for(const a of t)await Oe(a);return e()});const v_=function(e,...t){if(te.some(a=>a.name===e.name)||se.some(a=>a.name===e.name))throw new Error(`[GameMode]: script ${e.name} has already been applied`);e.load=e.load.bind(e,...t),te.push(e)};class R{constructor(){throw new Error("This is a static class and cannot be instantiated.")}static onInit=wt;static onExit=Nt;static onIncomingConnection=T_;static onRconCommand=D_;static onRconLoginAttempt=w_;static use(t,...a){return v_(t,...a),this}static loadUseScript=Le;static reloadUseScript=N_;static unloadUseScript=Oe;static enableCmdCaseSensitive=W.enableCaseSensitive;static disableCmdCaseSensitive=W.disableCaseSensitive;static isCmdCaseSensitive=W.isCaseSensitive;static supportAllNickname(){for(let t=0;t<=255;t++)this.isNickNameCharacterAllowed(t)||this.allowNickNameCharacter(t,!0)}static setWeather(t){if(t<0||t>255)throw new Error("[GameMode]: The valid weather value is only 0 to 255");return fa(t)}static setWorldTime(t){if(t<0||t>23)throw new Error("[GameMode]: The valid hour value is only 0 to 23");return ga(t)}static getWorldTime=Sa;static setTeamCount=Ha;static sendRconCommand=Nc;static addPlayerClass=Va;static addPlayerClassEx=Ua;static createExplosion(t,a,n,i,r){if(i<0||i>13)throw new Error("[GameMode]: The valid explosion type value is only 0 to 13");return Ea(t,a,n,i,r)}static manualVehicleEngineAndLights=Ms;static blockIpAddress=on;static unBlockIpAddress=dn;static getServerTickRate=Ra;static addSimpleModel(t,a,n,i,r){return this.checkSimpleModel(t,a,n,i,r)?_c(t,a,n,i,r):0}static addSimpleModelTimed(t,a,n,i,r,s,l){return this.checkSimpleModel(t,a,n,i,r,s,l)?hc(t,a,n,i,r,s,l):0}static checkSimpleModel(t,a,n,i,r,s,l){if(t<-1)throw new Error("[GameMode]: AddSimpleModel - Error virtual world");if(a<0)throw new Error("[GameMode]: AddSimpleModel - Error baseId");if(n>-1e3||n<-3e4)throw new Error("[GameMode]: AddSimpleModel - Error newId range");if(i.trim().length<0)throw new Error("[GameMode]: AddSimpleModel - Empty dffName");if(r.trim().length<0)throw new Error("[GameMode]: AddSimpleModel - Empty txdName");if(s!==void 0&&(s<0||s>23))throw new Error("[GameMode]: AddSimpleModel - Error time on range");if(l!==void 0&&(l<0||l>23))throw new Error("[GameMode]: AddSimpleModel - Error time off range");return 1}static isValidCustomModel=je;static getCustomModePath=Pc;static getConsoleVarAsString(t,a="utf8"){const n=ta(t);return I.decodeFromBuf(I.getValidStr(n),a)}static getRestartTime=oa;static setRestartTime=la;static allowAdminTeleport=Yt;static isAdminTeleportAllowed=$t;static allowInteriorWeapons=Jt;static areInteriorWeaponsAllowed=Qt;static areAllAnimationsEnabled=qt;static enableAllAnimations=ea;static enableStuntBonusForAll=Oa;static enableVehicleFriendlyFire=ya;static enableZoneNames=Aa;static disableInteriorEnterExits=Ta;static setGameModeText=ua;static getGravity=Pa;static setGravity=Ia;static showNameTags=ma;static disableNameTagLOS=wa;static usePlayerPedAnims=Ca;static showPlayerMarkers=pa;static limitPlayerMarkerRadius=va;static limitGlobalChatRadius=Na;static setNameTagDrawDistance=Da;static findModelFileNameFromCRC=mc;static findTextureFileNameFromCRC=pc;static getWeaponName=xa;static setObjectsDefaultCameraCollision=cc;static vectorSize=Ie;static clearBanList=hn;static isBanned=un;static isValidNickName=Ut;static allowNickNameCharacter=Wt;static isNickNameCharacterAllowed=jt;static addServerRule=Kt;static setServerRule=Zt;static isValidServerRule=Xt;static removeServerRule=zt;static getWeaponSlot=Ba;static getAvailableClasses=Me;static getPlayerClass=ka;static editPlayerClass=Ma;static toggleChatTextReplacement=Ga;static chatTextReplacementToggled=Fa;static getConsoleVarAsInt=aa;static getConsoleVarAsBool=na;static getWeather=ia;static getServerRuleFlag=ra;static setServerRuleFlags=sa}R.onExit(({next:e})=>(N.npcs.clear(),e()));const[b_]=h({name:"OnNpcConnect",beforeEach(e){return{myPlayerId:e}}}),[R_]=h({name:"OnNpcDisconnect",beforeEach(e){return{reason:e}}}),[L_]=h({name:"OnNpcModeInit"}),[O_]=h({name:"OnNpcModeExit"}),[G_]=h({name:"OnClientMessageI18n",identifier:"iai",beforeEach(e,t){return{color:e,buffer:t,string:I.decodeFromBuf(t)}}}),[F_]=h({name:"OnNPCFinishMove",beforeEach(e){return{npc:N.getInstance(e)}}}),[B_]=h({name:"OnNPCCreate",beforeEach(e){return{npc:N.getInstance(e)}}}),[x_]=h({name:"OnNPCDestroy",beforeEach(e){return{npc:N.getInstance(e)}}}),[k_]=h({name:"OnNPCWeaponStateChange",beforeEach(e,t,a){return{npc:N.getInstance(e),newState:t,oldState:a}}}),[M_]=h({name:"OnNPCTakeDamage",beforeEach(e,t,a,n,i){return{npc:N.getInstance(e),damager:p.getInstance(t),damage:a,weapon:n,bodyPart:i}}}),[H_]=h({name:"OnNPCGiveDamage",beforeEach(e,t,a,n,i){return{npc:N.getInstance(e),damager:p.getInstance(t),damage:a,weapon:n,bodyPart:i}}}),[V_]=h({name:"OnNPCDeath",beforeEach(e,t,a){return{npc:N.getInstance(e),killer:t,reason:a}}}),[U_]=h({name:"OnNpcSpawn",beforeEach(e){return{npc:N.getInstance(e)}}}),W_=Object.freeze({onConnect:b_,onDisconnect:R_,onModeInit:L_,onModeExit:O_,onClientMessage:G_,onFinishMove:F_,onCreate:B_,onDestroy:x_,onWeaponStateChange:k_,onTakeDamage:M_,onGiveDamage:H_,onDeath:V_,onSpawn:U_}),j_=[8,9,10,25,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,96,97,98],K_=[[13,18,19,20,21,24],[1,3,4,5,6,7,13,17,19,20,142,143,144,145],[],[],[0,2,7,13,16,17,19,20,21],[0,1,14,18,19,20,21,23],[],[],[],[],[1,3,7,13,17,19,20,21,23,24],[],[],[],[],[1,3,7,17,18,19,23],[],[],[2,6,16,20,21],[],[1,3,4,5,19,21],[0,14,16,18,19,20,21,23],[7,13,17,19,20,21],[],[],[],[1,3,4,5,6,19,21],[],[],[],null,[],[],[],[],[],[1,3,6,7,13,17,19,20,21,22],[],[],[1,3,7,13,17,23,142,143,144,145],[],[],[],[],[],[],null,[],null,null,[],[],null,null,null,[],[],[],[],[],[],null,null,null,[],[],[],[],null,[],[],[],null,null,[],[],[],[6,7,17,18,19,20,21],[4,5,12,13,20,21,22,24],[],[],null,[],[],null,[],[],[],[],[0,2,4,5,6,13,16,18,19,20,24],[],[3,7,14,17,18,19,20,21,23,142,143,144,145],[0,4,5,6,16],null,[],[],[1,2,3,6,7,11,17,19,20,23,142,143],[],[],[],[13,19,20,21,24],[],[],[],[],[],[],[],[],null,null,[],[],[],[],[],[0,2,4,7,15,16,17,18,19,20,21],[2,3,7,16,17,18,19,20,23,142,143,144,145],[1,3,5,6,7,13,17,18,20,23,142,143,144,145],[],[],null,null,null,[],[],[],[1,7,14,15,17,18,20,21],[],[1,3,6,7,11,12,17,18,19,20,23],[],[],[],[],[100,101,106,122,123,124,125,126,127,178,179,180,185],[109,110,113,114,115,116,117,118,119,120,121],[103,104,105,107,108,128,181,182,183,184],null,null,[],[1,4,6,7,17,18,19,20,23,24,142,143,144,145],[],[14,15,18,19,20,21,144,145],[],[],[],[1,2,4,6,7,17,18,19,23,24,142,143,144,145],[0,3,16,18,19,20,21,142,143],[],[1,3,7,11,12,17,18,19,20,23,142,143,144,145],[1,3,4,5,6,18,19,20,23,142,143,144,145],[2,3,5,6,16,18,19,20,21,23],[],[],[],[],[],[],[88,89,90,91,92,93,94,95,163,164,165,166,167,168],[65,66,67,68,69,70,71,72,158,159,160,161,162,173],[26,27,28,29,30,31,32,33,138,139,140,141,169,170],[55,56,57,58,59,60,61,62,63,64,154,155,156,157],[34,35,36,37,38,39,40,41,146,147,148,149,171,172],[],[],[45,46,47,48,49,50,51,52,53,54,150,151,152,153],[],[102,129,130,131,132,133,186,187,188,189],[],null,null,[],[],[],[],[42,43,44,99,174,175,176,177],[134,135,136,137,190,191,192,193],[],[],[],[1,6,7,17,18,20,23],null,[],[],[],[0,1,2,3,6,7,13,14,15,16,17,18,19,20,21,22,23,24,142,143,144,145],null,[],[],[0,4,5,6,7,13,16,17,18,20,24,144,145],null,[],[],[],[],null,[],[],[],[],[4,5,6,7,13,17,18,20,22],[],[],[1,6,7,17,18,19,20,23,24,142,143,144,145],[],[],[],[],[],[],[],[]],Z_=(e,t)=>{if(!Ge(e))return!1;const a=K_[e-400];if(a===null)return!1;const n=t-1e3;return j_.includes(n)||a.includes(n)},Ge=e=>e>=400&&e<=611,X_=(e,t)=>{if(t<0||t>2)return!1;const a=new Map([[483,0],[534,2],[535,2],[536,2],[558,2],[559,2],[560,2],[561,2],[562,2],[565,2],[567,2],[575,1],[576,2]]).get(e);return a===void 0?!1:t<=a};class C{static vehicles=Se;static createdCount=0;sourceInfo;isStatic;_id=-1;get id(){return this._id}constructor(t,a=!1){this.sourceInfo=t,this.isStatic=a}create(t=!1){if(this.id!==-1)throw new Error("[Vehicle]: Unable to create the vehicle again");if(C.createdCount===M.MAX_VEHICLES)throw new Error("[Vehicle]: Unable to continue to create vehicle, maximum allowable quantity has been reached");const{modelId:a,x:n,y:i,z:r,zAngle:s,color:l,respawnDelay:o,addSiren:c}=this.sourceInfo;if(!(!t&&!Ge(a))){if(this.isStatic){if(o===void 0){this._id=C.__inject_AddStaticVehicle(a,n,i,r,s,l[0],l[1]);return}this._id=C.__inject_AddStaticVehicleEx(a,n,i,r,s,l[0],l[1],o||-1,c||!1)}else this._id=C.__inject_CreateVehicle(a,n,i,r,s,l[0],l[1],o||-1,c||!1);C.createdCount++,C.vehicles.set(this._id,this)}}destroy(){if(this.id===-1)throw new Error("[Vehicle]: Unable to destroy the vehicle before create");C.__inject_DestroyVehicle(this.id),C.createdCount--,C.vehicles.delete(this._id),this._id=-1}addComponent(t){if(this.id===-1)return 0;if(!Z_(this.getModel(),t))throw new Error(`[Vehicle]: Invalid component id ${t} attempted to attach to the vehicle ${this}`);return Ys(this.id,t)}removeComponent(t){if(this.getComponentInSlot(C.getComponentType(t))===0)throw new Error(`[Vehicle]: component id ${t} does not exist on this vehicle`);return $s(this.id,t)}getComponentInSlot(t){return ll(this.id,t)}linkToInterior(t){return this.id===-1?0:zs(this.id,t)}setVirtualWorld(t){return this.id===-1?0:gl(this.id,t)}getVirtualWorld(){return this.id===-1?0:Sl(this.id)}repair(){return this.id===-1?0:dl(this.id)}setPos(t,a,n){return this.id===-1?!1:Os(this.id,t,a,n)}getPos(){if(this.id===-1)throw new Error("[Vehicle]: Unable to getPos before create");return Ls(this.id)}getHealth(){return this.id===-1?0:el(this.id)}setHealth(t){return this.id===-1?0:qs(this.id,t)}isPlayerIn(t){return this.id===-1?!1:Er(t.id,this.id)}putPlayerIn(t,a){if(this.id===-1||a<0)return 0;if(a>4)throw new Error("[Vehicle]: If the seat is invalid or is taken, will cause a crash when they EXIT the vehicle.");return er(t.id,this.id,a)}getZAngle(){return this.id===-1?0:Gs(this.id)}setZAngle(t){return this.id===-1?0:xs(this.id,t)}setNumberPlate(t){if(this.id===-1)return 0;if(t.length<1||t.length>32)throw new Error("[Vehicle]: The length of the number plate ranges from 32 characters");if(!/^[a-zA-Z0-9]+$/.test(t))throw new Error("[Vehicle]: number plates only allow letters and numbers");return rl(this.id,t)}changeColors(t,a){return this.id===-1?0:Js(this.id,t,a)}setVelocity(t,a,n){return this.id===-1?!1:_l(this.id,t,a,n)}getVelocity(){if(this.id===-1)throw new Error("[Vehicle]: Unable to getVelocity before create");const[t,a,n]=cl(this.id);return{x:t,y:a,z:n}}getSpeed(t=180){if(this.id===-1)return 0;const{x:a,y:n,z:i}=this.getVelocity();return Ie(a,n,i)*t}setAngularVelocity(t,a,n){return this.id===-1?!1:hl(this.id,t,a,n)}getDamageStatus(){if(this.id!==-1)return ul(this.id)}updateDamageStatus(t,a,n,i){this.id!==-1&&ml(this.id,t,a,n,i)}getDistanceFromPoint(t,a,n){return Bs(this.id,t,a,n)}getModel(){return sl(this.id)}static getModelInfo(t,a){return pl(t,a)}getModelInfo(t){if(this.id===-1)throw new Error("[Vehicle]: Unable to getModelInfo before create");return C.getModelInfo(this.getModel(),t)}getRotationQuat(){if(this.id===-1)return;const[t,a,n,i]=Fs(this.id);return{w:t,x:a,y:n,z:i}}setRespawn(){return this.id===-1?0:Xs(this.id)}isStreamedIn(t){return this.id===-1?!1:Rs(this.id,t.id)}setParamsCarDoors(t,a,n,i){return this.id===-1?0:Ws(this.id,t,a,n,i)}setParamsCarWindows(t,a,n,i){return this.id===-1?0:Ks(this.id,t,a,n,i)}getParamsCarDoors(){if(this.id!==-1)return js(this.id)}getParamsCarWindows(){if(this.id!==-1)return Zs(this.id)}setParamsEx(t,a,n,i,r,s,l){return this.id===-1?0:Hs(this.id,t,a,n,i,r,s,l)}getParamsEx(){if(this.id===-1)return{engine:-1,lights:-1,alarm:-1,doors:-1,bonnet:-1,boot:-1,objective:-1};const[t,a,n,i,r,s,l]=Vs(this.id);return{engine:t,lights:a,alarm:n,doors:i,bonnet:r,boot:s,objective:l}}toggleEngine(t){if(this.id===-1)return 0;const{lights:a,alarm:n,doors:i,bonnet:r,boot:s,objective:l}=this.getParamsEx();return this.setParamsEx(t,a,n,i,r,s,l)}toggleLights(t){if(this.id===-1)return 0;const{engine:a,alarm:n,doors:i,bonnet:r,boot:s,objective:l}=this.getParamsEx();return this.setParamsEx(a,t,n,i,r,s,l)}toggleAlarm(t){if(this.id===-1)return 0;const{engine:a,lights:n,doors:i,bonnet:r,boot:s,objective:l}=this.getParamsEx();return this.setParamsEx(a,n,t,i,r,s,l)}toggleDoors(t){if(this.id===-1)return 0;const{engine:a,lights:n,alarm:i,bonnet:r,boot:s,objective:l}=this.getParamsEx();return this.setParamsEx(a,n,i,t,r,s,l)}toggleBonnet(t){if(this.id===-1)return 0;const{engine:a,lights:n,alarm:i,doors:r,boot:s,objective:l}=this.getParamsEx();return this.setParamsEx(a,n,i,r,t,s,l)}toggleBoot(t){if(this.id===-1)return 0;const{engine:a,lights:n,alarm:i,doors:r,bonnet:s,objective:l}=this.getParamsEx();return this.setParamsEx(a,n,i,r,s,t,l)}toggleObjective(t){if(this.id===-1)return 0;const{engine:a,lights:n,alarm:i,doors:r,bonnet:s,boot:l}=this.getParamsEx();return this.setParamsEx(a,n,i,r,s,l,t)}getParamsSirenState(){return this.id===-1?-2:Us(this.id)}setParamsForPlayer(t,a,n){return this.id===-1?0:ks(this.id,t.id,a,n)}isTrailerAttached(){return this.id===-1?!1:nl(this.id)}changePaintjob(t){return this.id===-1||!X_(this.getModel(),t)?0:(this.changeColors("#fff","#fff"),Qs(this.id,t),1)}attachTrailer(t){return this.id===-1?0:tl(t.id,this.id)}detachTrailer(){this.id!==-1&&this.isTrailerAttached()&&al(this.id)}getTrailer(){if(this.id!==-1)return C.getInstances().find(t=>t.id===il(this.id))}isValid(){return Ue(this.id)}getMatrix(){if(this.id!==-1)return ws(this.id)}getTrainSpeed(){return this.id===-1?0:Ds(this.id)}getHydraReactorAngle(){return this.id===-1?0:Ts(this.id)}getLandingGearState(){return this.id===-1?0:Cs(this.id)}getSirenState(){return this.id===-1?0:As(this.id)}getDriver(){if(this.id!==-1)return Y.get(Is(this.id))}getLastDriver(){if(this.id!==-1)return Y.get(Ps(this.id))}isSirenEnabled(){return ys(this.id)}toggleSirenEnabled(t){return this.id===-1?0:gs(this.id,t)}setParamsSirenState(t){return this.id===-1?0:Ss(this.id,t)}isDead(){return this.id===-1?!0:us(this.id)}setDead(t){return this.id===-1?!1:ms(this.id,t)}setBeenOccupied(t){return this.id===-1?!1:ps(this.id,t)}getRespawnTick(){return this.id===-1?0:_s(this.id)}setRespawnTick(t){return this.id===-1?!1:hs(this.id,t)}isOccupied(){return this.id===-1?!1:cs(this.id)}hasBeenOccupied(){return this.id===-1?!1:ds(this.id)}getOccupiedTick(){return this.id===-1?0:ls(this.id)}setOccupiedTick(t){return this.id===-1?0:os(this.id,t)}getCab(){return this.id===-1?0:ss(this.id)}getRespawnDelay(){return this.id===-1?0:rs(this.id)}setRespawnDelay(t){return this.id===-1?0:is(this.id,t)}getNumberPlate(){return this.id===-1?"":ns(this.id)}getInterior(){return this.id===-1?0:as(this.id)}getPaintjob(){return this.id===-1?-1:ts(this.id)}getColors(){if(this.id!==-1)return es(this.id)}setSpawnInfo(t,a,n,i,r,s,l,o=-2,c=-2,u=!1){return this.id===-1||!u&&!Ge(t)?0:qr(this.id,t,a,n,i,r,E(s),E(l),o,c)}getSpawnInfo(){if(this.id!==-1)return Qr(this.id)}getRandomColorPair(){if(this.id!==-1)return Ve(this.getModel())}show(){return this.id===-1?!1:Pl(this.id)}hide(){return this.id===-1?!1:Il(this.id)}isHidden(){return this.id===-1?!1:El(this.id)}getVehicleOccupant(t){return Nl(this.id,t)}getVehicleMaxPassengers(){return We(this.getModel())}countVehicleOccupants(){return vl(this.getModel())}static getVehicleMaxPassengers=We;static getRandomColorPair=Ve;static getComponentType=ol;static colorIndexToColor=Ns;static isValid=Ue;static getModelsUsed=Es;static getModelCount=fs;static getInstance(t){return this.vehicles.get(t)}static getInstances(){return[...this.vehicles.values()]}static __inject_AddStaticVehicle=yl;static __inject_AddStaticVehicleEx=fl;static __inject_CreateVehicle=vs;static __inject_DestroyVehicle=bs}R.onExit(({next:e})=>(C.getInstances().forEach(t=>t.destroy()),e()));const[z_]=h({name:"OnVehicleDamageStatusUpdate",defaultValue:!1,beforeEach(e,t){return{vehicle:C.getInstance(e),player:p.getInstance(t)}}}),[Y_]=h({name:"OnVehicleDeath",beforeEach(e,t){return{vehicle:C.getInstance(e),killer:p.getInstance(t)}}}),[$_]=h({name:"OnVehicleMod",beforeEach(e,t,a){return{player:p.getInstance(e),vehicle:C.getInstance(t),componentId:a}}}),[J_]=h({name:"OnVehiclePaintjob",beforeEach(e,t,a){return{player:p.getInstance(e),vehicle:C.getInstance(t),paintjobId:a}}}),[Q_]=h({name:"OnVehicleRespray",beforeEach(e,t,a,n){return{player:p.getInstance(e),vehicle:C.getInstance(t),color:[a,n]}}}),[q_]=h({name:"OnVehicleSirenStateChange",defaultValue:!1,beforeEach(e,t,a){return{player:p.getInstance(e),vehicle:C.getInstance(t),state:!!a}}}),[eh]=h({name:"OnVehicleSpawn",beforeEach(e){return{vehicle:C.getInstance(e)}}}),[th]=h({name:"OnVehicleStreamIn",beforeEach(e,t){return{vehicle:C.getInstance(e),forPlayer:p.getInstance(t)}}}),[ah]=h({name:"OnVehicleStreamOut",beforeEach(e,t){return{vehicle:C.getInstance(e),forPlayer:p.getInstance(t)}}}),[nh]=h({name:"OnPlayerEnterVehicle",beforeEach(e,t,a){return{player:p.getInstance(e),vehicle:C.getInstance(t),isPassenger:!!a}}}),[ih]=h({name:"OnPlayerExitVehicle",beforeEach(e,t){return{player:p.getInstance(e),vehicle:C.getInstance(t)}}}),[rh]=h({name:"OnNpcEnterVehicle",beforeEach(e,t){return{vehicle:C.getInstance(e),seatId:t}}}),[sh]=h({name:"OnNpcExitVehicle"}),[lh]=h({name:"OnTrailerUpdate",beforeEach(e,t){return{player:p.getInstance(e),vehicle:C.getInstance(t)}}}),[oh]=h({name:"OnUnoccupiedVehicleUpdate",beforeEach(e,t,a,n,i,r,s,l,o){return{vehicle:C.getInstance(e),player:p.getInstance(t),passengerSeat:a,newX:n,newY:i,newZ:r,velX:s,velY:l,velZ:o}}}),dh=Object.freeze({onDamageStatusUpdate:z_,onDeath:Y_,onMod:$_,onPaintjob:J_,onRespray:Q_,onSirenStateChange:q_,onSpawn:eh,onStreamIn:th,onStreamOut:ah,onPlayerEnter:nh,onPlayerExit:ih,onNpcEnter:rh,onNpcExit:sh,onTrailerUpdate:lh,onUnoccupiedUpdate:oh});class ch{constructor(){throw new Error("This is a static class and cannot be instantiated.")}static getNetworkStats(){return ln()}static getPlayerNetworkStats(t){return sn(t.id)}static getBytesReceived(t){return za(t.id)}static getBytesSent(t){return $a(t.id)}static getConnectionStatus(t){return qa(t.id)}static getConnectedTime(t){return Za(t.id)}static getIpPort(t){return en(t.id)}static getMessagesReceived(t){return Xa(t.id)}static getMessagesRecvPerSecond(t){return Ja(t.id)}static getMessagesSent(t){return Ya(t.id)}static getPacketLossPercent(t){return Qa(t.id)}}class _h{_text;_time;_style;get text(){return this._text}set text(t){this._text=t}get time(){return this._time}set time(t){this._time=t}get style(){return this._style}set style(t){this._style=t}constructor(t,a,n){this._text=t,this._time=a,this._style=n}static hideForAll(t){ca(t)}static has(t,a){return jn(t.id,a)}forAll(t="win1252"){da(I.encodeToBuf(I.convertSpecialChar(this.text),t),this.time,this.style)}forPlayer(t,a="win1252"){Wn(t.id,I.encodeToBuf(I.convertSpecialChar(this.text),a),this.time,this.style)}hideForPlayer(t){return Zn(t.id,this.style)}}class re{static menus=new Map;_itemCount=0;get itemCount(){return this._itemCount}_id=-1;get id(){return this._id}_title;get title(){return this._title}set title(t){this._title=t}_columns=1;get columns(){return this._columns}set columns(t){if(t!==1&&t!==2)throw new Error("[Menu]: The menu column number interval is between 1 and 2");this._columns=t}_x;get x(){return this._x}set x(t){this._x=t}_y;get y(){return this._y}set y(t){this._y=t}_col1width;get col1width(){return this._col1width}set col1width(t){this._col1width=t}_col2width;get col2width(){return this._col2width}set col2width(t){this._col2width=t}constructor(t,a,n,i,r,s){this._title=t,this.columns=a,this._x=n,this._y=i,this._col1width=r,this._col2width=s}create(){if(this._id!==-1)throw new Error("[Menu]: Cannot be created twice");if(re.getInstances().length===M.MAX_MENUS)throw new Error("[Menu]: The maximum number of menus allowed to be created has been reached 128");return this._id=Vl(this.title,this.columns,this.x,this.y,this.col1width,this.col2width),re.menus.set(this._id,this),this}destroy(){if(this._id===-1)throw new Error("[Menu]: Cannot destroy before create");return Ul(this.id),re.menus.delete(this._id),this._id=-1,this}addItem(t,a){if(this._id===-1)throw new Error("[Menu]: Cannot addItem before create");if(this._itemCount===M.MAX_MENU_ROW)throw new Error("[Menu]: The maximum number of items allowed to be added has been reached 12");if(t!==0&&t!==1)throw new Error("[Menu]: Wrong number of columns");return Wl(this.id,t,a),this._itemCount++,this}setColumnHeader(t,a){if(this._id===-1)throw new Error("[Menu]: Cannot setColumnHeader before create");if(t!==0&&t!==1)throw new Error("[Menu]: Wrong number of columns");return jl(this.id,t,a),this}disable(){if(this._id===-1)throw new Error("[Menu]: Cannot disable menu before create");return zl(this.id),this}disableRow(t){if(this._id===-1)throw new Error("[Menu]: Cannot disable row before create");if(t<0||t>this.itemCount-1)throw new Error("[Menu]: Wrong number of rows");Yl(this.id,t)}isValid(){return Xl(this.id)}showForPlayer(t){if(this._id===-1)throw new Error("[Menu]: Cannot show menu before create");return Kl(this.id,t.id)}hideForPlayer(t){if(this._id===-1)throw new Error("[Menu]: Cannot hide menu before create");return Zl(this.id,t.id)}isDisabled(){return this._id===-1?!1:Gl(this.id)}isRowDisabled(t){return this._id===-1||t<0||t>this._itemCount?!1:Fl(this.id,t)}getItems(t){return this._id===-1?0:Bl(this.id,t)}getPos(){return this._id===-1?{fX:this.x,fY:this.y}:xl(this.id)}getColumnWidth(){return this.id===-1?{fColumn1:this.col1width,fColumn2:this.col2width}:kl(this.id)}getColumnHeader(t){if(this._id===-1)throw new Error("[Menu]: Cannot get column header before create");return Ml(this.id,t)}getItem(t,a){if(this._id===-1)throw new Error("[Menu]: Cannot get item before create");if(a<0||a>this.getItems(t)-1)throw new Error("[Menu]: invalid getItem range");return Hl(this.id,t,a)}static getInstance(t){return this.menus.get(t)}static getInstances(){return[...this.menus.values()]}static getInstanceByPlayer(t){return this.getInstances().find(a=>a.id===$l(t.id))}}R.onExit(({next:e})=>(re.getInstances().forEach(t=>t.destroy()),e()));const[hh]=h({name:"OnPlayerExitedMenu",beforeEach(e){return{player:p.getInstance(e)}}}),[uh]=h({name:"OnPlayerSelectedMenuRow",beforeEach(e,t){const a=p.getInstance(e),n=re.getInstanceByPlayer(a);return{player:a,menu:n,row:t}}}),mh=Object.freeze({onPlayerExited:hh,onPlayerSelectedRow:uh});class L{static globalGangZones=new Map;static playerGangZones=new Map;sourceInfo;constructor(t){this.sourceInfo=t}_id=-1;get id(){return this._id}create(){if(this.id!==-1)throw new Error("[GangZone]: Unable to create the gangzone again");const{player:t}=this.sourceInfo;if(t){if(L.getInstances(!1).length===M.MAX_GANG_ZONES)throw new Error("[GangZone]: Unable to continue to create gangzone, maximum allowable quantity has been reached");const{minX:a,minY:n,maxX:i,maxY:r}=this.sourceInfo;this._id=go(t.id,a,n,i,r);const s=be.onDisconnect(({player:l,next:o})=>{o(),l===this.sourceInfo.player&&(this.isValid()&&this.destroy(),s())});L.playerGangZones.set(this.id,this)}else{if(L.getInstances(!0).length===M.MAX_GANG_ZONES)throw new Error("[GangZone]: Unable to continue to create gangzone, maximum allowable quantity has been reached");const{minX:a,minY:n,maxX:i,maxY:r}=this.sourceInfo;this._id=ro(a,n,i,r),L.globalGangZones.set(this.id,this)}}destroy(){if(this.id===-1)throw new Error("[GangZone]: Unable to destroy the gangzone before create");const{player:t}=this.sourceInfo;t?(So(t.id,this.id),L.playerGangZones.delete(this.id)):(so(this.id),L.globalGangZones.delete(this.id)),this._id=-1}showForAll(t){if(this.id===-1)throw new Error("[GangZone]: Unable to show the gangzone before create");if(!this.sourceInfo.player)return oo(this.id,t),this;throw new Error("[GangZone]: player's gangzone should not be show for all.")}showForPlayer(t,a){if(this.id===-1)throw new Error("[GangZone]: Unable to show the gangzone before create");const n=this.sourceInfo.player;if(n)yo(n.id,this.id,E(t));else if(a)lo(a.id,this.id,t);else throw new Error("[GangZone]: invalid player for show");return this}hideForAll(){if(this.id===-1)throw new Error("[GangZone]: Unable to hide the gangzone before create");if(!this.sourceInfo.player)return _o(this.id),this;throw new Error("[GangZone]: player's gangzone should not be hide for all.")}hideForPlayer(t){if(this.id===-1)throw new Error("[GangZone]: Unable to hide the gangzone before create");const a=this.sourceInfo.player;if(a)fo(a.id,this.id);else if(t)co(t.id,this.id);else throw new Error("[GangZone]: invalid player for hide");return this}flashForAll(t){if(this.id===-1)throw new Error("[GangZone]: Unable to flash the gangzone before create");if(!this.sourceInfo.player)return uo(this.id,t),this;throw new Error("[GangZone]: player's gangzone should not be flash for all.")}flashForPlayer(t,a){if(this.id===-1)throw new Error("[GangZone]: Unable to flash the gangzone before create");const n=this.sourceInfo.player;if(n)Po(n.id,this.id,E(a));else if(t)ho(t.id,this.id,a);else throw new Error("[GangZone]: invalid player for flash");return this}stopFlashForAll(){if(this.id===-1)throw new Error("[GangZone]: Unable to stop flash the gangzone before create");if(!this.sourceInfo.player)return po(this.id),this;throw new Error("[GangZone]: player's gangzone should not be stop flash for all.")}stopFlashForPlayer(t){if(this.id===-1)throw new Error("[GangZone]: Unable to stop flash the gangzone before create");const a=this.sourceInfo.player;if(a)Io(a.id,this.id);else if(t)mo(t.id,this.id);else throw new Error("[GangZone]: invalid player for flash");return this}isValid(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?Eo(t.id,this.id):Jl(this.id)}isPlayerIn(t){if(this.id===-1)return!1;const a=this.sourceInfo.player;return a?Ao(a.id,this.id):Ql(t.id,this.id)}isVisibleForPlayer(t){if(this.id===-1)return!1;const a=this.sourceInfo.player;return a?Co(a.id,this.id):ql(t.id,this.id)}getColorForPlayer(t){if(this.id===-1)throw new Error("[GangZone]: Unable to get color before create");const a=this.sourceInfo.player;return a?To(a.id,this.id):eo(t.id,this.id)}getFlashColorForPlayer(t){if(this.id===-1)throw new Error("[GangZone]: Unable to get flash color before create");const a=this.sourceInfo.player;return a?Do(a.id,this.id):to(t.id,this.id)}isFlashingForPlayer(t){if(this.id===-1)return!1;const a=this.sourceInfo.player;return a?wo(a.id,this.id):ao(t.id,this.id)}getPos(){if(this.id===-1)throw new Error("[GangZone]: Unable to get position before create");const t=this.sourceInfo.player;return t?No(t.id,this.id):no(this.id)}useCheck(t){if(this.id===-1)throw new Error("[GangZone]: Unable to use check before create");const a=this.sourceInfo.player;return a?vo(a.id,this.id,t):io(this.id,t),this}static getInstance(t,a){return a?this.globalGangZones.get(t):this.playerGangZones.get(t)}static getInstances(t){return t?[...this.globalGangZones.values()]:[...this.playerGangZones.values()]}}R.onExit(({next:e})=>(L.getInstances(!0).forEach(t=>t.destroy()),L.getInstances(!1).forEach(t=>t.destroy()),e()));const[ph]=h({name:"OnPlayerEnterGangZone",beforeEach(e,t){return{player:p.getInstance(e),gangZone:L.getInstance(t,!0)}}}),[gh]=h({name:"OnPlayerLeaveGangZone",beforeEach(e,t){return{player:p.getInstance(e),gangZone:L.getInstance(t,!0)}}}),[Sh]=h({name:"OnPlayerEnterPlayerGangZone",beforeEach(e,t){return{player:p.getInstance(e),gangZone:L.getInstance(t,!1)}}}),[yh]=h({name:"OnPlayerLeavePlayerGangZone",beforeEach(e,t){return{player:p.getInstance(e),gangZone:L.getInstance(t,!1)}}}),[fh]=h({name:"OnPlayerClickGangZone",beforeEach(e,t){return{player:p.getInstance(e),gangZone:L.getInstance(t,!0)}}}),[Ph]=h({name:"OnPlayerClickPlayerGangZone",beforeEach(e,t){return{player:p.getInstance(e),gangZone:L.getInstance(t,!1)}}}),Ih=Object.freeze({onPlayerEnterGlobal:ph,onPlayerLeaveGlobal:gh,onPlayerEnterPlayer:Sh,onPlayerLeavePlayer:yh,onPlayerClickGlobal:fh,onPlayerClickPlayer:Ph}),T={skip:!1};R.onInit(({next:e})=>(T.skip=!1,e())),R.onExit(({next:e})=>(T.skip=!0,e()));const[ae]=h({name:"Streamer_OnItemStreamIn",identifier:"iii",beforeEach(e,t,a){return{type:e,id:t,forPlayer:p.getInstance(a)}}}),[ne]=h({name:"Streamer_OnItemStreamOut",identifier:"iii",beforeEach(e,t,a){return{type:e,id:t,forPlayer:p.getInstance(a)}}}),[Eh]=h({name:"Streamer_OnPluginError",identifier:"s",beforeEach(e){return{error:e}}});class f{constructor(){throw new Error("This is a static class and cannot be instantiated.")}static getTickRate=d.Streamer_GetTickRate;static setTickRate=d.Streamer_SetTickRate;static getPlayerTickRate(t){return d.Streamer_GetPlayerTickRate(t.id)}static setPlayerTickRate(t,a=50){return d.Streamer_SetPlayerTickRate(t.id,a)}static toggleChunkStream=d.Streamer_ToggleChunkStream;static isToggleChunkStream=d.Streamer_IsToggleChunkStream;static getChunkTickRate(t,a=-1){return a instanceof p?d.Streamer_GetChunkTickRate(t,a.id):d.Streamer_GetChunkTickRate(t,a)}static setChunkTickRate(t,a,n=-1){return n instanceof p?d.Streamer_SetChunkTickRate(t,a,n.id):d.Streamer_SetChunkTickRate(t,a,n)}static getChunkSize=d.Streamer_GetChunkSize;static setChunkSize=d.Streamer_SetChunkSize;static getMaxItems=d.Streamer_GetMaxItems;static setMaxItems=d.Streamer_SetMaxItems;static getVisibleItems(t,a=-1){return a instanceof p?d.Streamer_GetVisibleItems(t,a.id):d.Streamer_GetVisibleItems(t,a)}static setVisibleItems(t,a,n=-1){return n instanceof p?d.Streamer_SetVisibleItems(t,a,n.id):d.Streamer_SetVisibleItems(t,a,n)}static getRadiusMultiplier(t,a=-1){return a instanceof p?d.Streamer_GetRadiusMultiplier(t,a.id):d.Streamer_GetRadiusMultiplier(t,a)}static setRadiusMultiplier(t,a,n=-1){return n instanceof p?d.Streamer_SetRadiusMultiplier(t,n.id):d.Streamer_SetRadiusMultiplier(t,a,n)}static getTypePriority=d.Streamer_GetTypePriority;static setTypePriority=d.Streamer_SetTypePriority;static getCellDistance=d.Streamer_GetCellDistance;static setCellDistance=d.Streamer_SetCellDistance;static getCellSize=d.Streamer_GetCellSize;static setCellSize=d.Streamer_SetCellSize;static toggleItemStatic=d.Streamer_ToggleItemStatic;static isToggleItemStatic=d.Streamer_IsToggleItemStatic;static toggleItemInvAreas=d.Streamer_ToggleItemInvAreas;static isToggleItemInvAreas=d.Streamer_IsToggleItemInvAreas;static toggleItemCallbacks=d.Streamer_ToggleItemCallbacks;static isToggleItemCallbacks=d.Streamer_IsToggleItemCallbacks;static toggleErrorCallback=d.Streamer_ToggleErrorCallback;static isToggleErrorCallback=d.Streamer_IsToggleErrorCallback;static amxUnloadDestroyItems=d.Streamer_AmxUnloadDestroyItems;static processActiveItems=d.Streamer_ProcessActiveItems;static toggleIdleUpdate(t,a){return d.Streamer_ToggleIdleUpdate(t.id,a)}static isToggleIdleUpdate(t){return d.Streamer_IsToggleIdleUpdate(t.id)}static toggleCameraUpdate(t,a){return d.Streamer_ToggleCameraUpdate(t.id,a)}static isToggleCameraUpdate(t){return d.Streamer_IsToggleCameraUpdate(t.id)}static toggleItemUpdate(t,a,n){return d.Streamer_ToggleItemUpdate(t.id,a,n)}static isToggleItemUpdate(t,a){return d.Streamer_IsToggleItemUpdate(t.id,a)}static getLastUpdateTime(){return d.Streamer_GetLastUpdateTime()}static update(t,a=-1){return d.Streamer_Update(t.id,a)}static updateEx(t,a,n,i,r,s,l,o,c){return d.Streamer_UpdateEx(t.id,a,n,i,r,s,l,o,c)}static getDistanceToItem=d.Streamer_GetDistanceToItem;static toggleItem(t,a,n,i){return d.Streamer_ToggleItem(t.id,a,n,i)}static isToggleItem(t,a,n){return d.Streamer_IsToggleItem(t.id,a,n)}static toggleAllItems(t,a,n,i=[-1]){return d.Streamer_ToggleAllItems(t.id,a,n,i)}static getItemInternalID(t,a,n){return d.Streamer_GetItemInternalID(t.id,a,n)}static getItemStreamerID(t,a,n){return d.Streamer_GetItemStreamerID(t.id,a,n)}static isItemVisible(t,a,n){return d.Streamer_IsItemVisible(t.id,a,n)}static destroyAllVisibleItems(t,a,n=1){return d.Streamer_DestroyAllVisibleItems(t.id,a,n)}static countVisibleItems(t,a,n=1){return d.Streamer_CountVisibleItems(t.id,a,n)}static destroyAllItems=d.Streamer_DestroyAllItems;static countItems=d.Streamer_CountItems;static getNearbyItems=d.Streamer_GetNearbyItems;static getAllVisibleItems(t,a,n){return d.Streamer_GetAllVisibleItems(t.id,a,n)}static getItemPos=d.Streamer_GetItemPos;static setItemPos=d.Streamer_SetItemPos;static getItemOffset=d.Streamer_GetItemOffset;static setItemOffset=d.Streamer_SetItemOffset;static getFloatData=d.Streamer_GetFloatData;static setFloatData=d.Streamer_SetFloatData;static getIntData=d.Streamer_GetIntData;static setIntData=d.Streamer_SetIntData;static getArrayData=d.Streamer_GetArrayData;static setArrayData=d.Streamer_SetArrayData;static isInArrayData=d.Streamer_IsInArrayData;static appendArrayData=d.Streamer_AppendArrayData;static removeArrayData=d.Streamer_RemoveArrayData;static getArrayDataLength=d.Streamer_GetArrayDataLength;static getUpperBound=d.Streamer_GetUpperBound;static onPluginError=Eh}class ${static mapIcons=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerMapIcon]: Unable to create map icon again");let{style:t,streamDistance:a,worldId:n,interiorId:i,playerId:r,areaId:s,priority:l}=this.sourceInfo;const{x:o,y:c,z:u,type:g,color:S,extended:P}=this.sourceInfo;if(g<0||g>63)throw new Error("[StreamerMapIcon]: Invalid map icon type");return t??=d.MapIconStyles.LOCAL,a??=d.StreamerDistances.MAP_ICON_SD,l??=0,P?(typeof n=="number"?n=[-1]:n??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof r=="number"?r=[-1]:r??=[-1],typeof s=="number"?s=[-1]:s??=[-1],this._id=d.CreateDynamicMapIconEx(o,c,u,g,E(S),t,a,n,i,r,s,l),$.mapIcons.set(this._id,this),this):(Array.isArray(n)?n=-1:n??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(r)?r=-1:r??=-1,Array.isArray(s)?s=-1:s??=-1,this._id=d.CreateDynamicMapIcon(o,c,u,g,E(S),n,i,r,a,t,s,l),$.mapIcons.set(this._id,this),this)}destroy(){if(this.id===-1&&!T.skip)throw new Error("[StreamerMapIcon]: Unable to destroy the map icon before create");return T.skip||d.DestroyDynamicMapIcon(this.id),$.mapIcons.delete(this._id),this._id=-1,this}isValid(){return T.skip&&this.id!==-1?!0:d.IsValidDynamicMapIcon(this.id)}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerMapIcon]: Unable to toggle callbacks before create");return f.toggleItemCallbacks(d.StreamerItemTypes.MAP_ICON,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:f.isToggleItemCallbacks(d.StreamerItemTypes.MAP_ICON,this.id)}static togglePlayerUpdate(t,a=!0){return f.toggleItemUpdate(t,d.StreamerItemTypes.MAP_ICON,a)}static hideForPlayer(t,a=-5e4){return f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?f.updateEx(t,n.x,n.y,n.z):f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.mapIcons.get(t)}static getInstances(){return[...this.mapIcons.values()]}}R.onExit(({next:e})=>($.getInstances().forEach(t=>t.destroy()),e()));const[Ah,Ch]=h({name:"OnDynamicMapIconStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[Th,Dh]=h({name:"OnDynamicMapIconStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});ae(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.MAP_ICON?Ch(a,$.getInstance(t)):n()),ne(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.MAP_ICON?Dh(a,$.getInstance(t)):n());const wh=Object.freeze({onStreamIn:Ah,onStreamOut:Th});class x{static pickups=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerPickup]: Unable to create pickup again");let{streamDistance:t,worldId:a,interiorId:n,playerId:i,areaId:r,priority:s}=this.sourceInfo;const{type:l,modelId:o,x:c,y:u,z:g,extended:S}=this.sourceInfo;if(l<0)throw new Error("[StreamerPickup]: Invalid pickup type");return t??=m.StreamerDistances.PICKUP_SD,s??=0,S?(typeof a=="number"?a=[-1]:a??=[-1],typeof n=="number"?n=[-1]:n??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof r=="number"?r=[-1]:r??=[-1],this._id=x.__inject_CreateDynamicPickupEx(o,l,c,u,g,t,a,n,i,r,s)):(Array.isArray(a)?a=-1:a??=-1,Array.isArray(n)?n=-1:n??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(r)?r=-1:r??=-1,this._id=x.__inject_CreateDynamicPickup(o,l,c,u,g,a,n,i,t,r,s)),x.pickups.set(this._id,this),this}destroy(){if(this.id===-1&&!T.skip)throw new Error("[StreamerPickup]: Unable to destroy the pickup before create");return T.skip||x.__inject_DestroyDynamicPickup(this.id),x.pickups.delete(this.id),this._id=-1,this}isValid(){return T.skip&&this.id!==-1?!0:m.IsValidDynamicPickup(this.id)}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerPickup]: Unable to toggle callbacks before create");return f.toggleItemCallbacks(m.StreamerItemTypes.PICKUP,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:f.isToggleItemCallbacks(m.StreamerItemTypes.PICKUP,this.id)}static togglePlayerUpdate(t,a=!0){return f.toggleItemUpdate(t,m.StreamerItemTypes.PICKUP,a)}static hideForPlayer(t,a=-5e4){return f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?f.updateEx(t,n.x,n.y,n.z):f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.pickups.get(t)}static getInstances(){return[...this.pickups.values()]}static __inject_CreateDynamicPickup=m.CreateDynamicPickup;static __inject_CreateDynamicPickupEx=m.CreateDynamicPickupEx;static __inject_DestroyDynamicPickup=m.DestroyDynamicPickup}R.onExit(({next:e})=>(x.getInstances().forEach(t=>t.destroy()),e()));const[Nh,vh]=h({name:"OnDynamicPickupStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[bh,Rh]=h({name:"OnDynamicPickupStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});ae(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.PICKUP?vh(a,x.getInstance(t)):n()),ne(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.PICKUP?Rh(a,x.getInstance(t)):n());const[Lh]=h({name:"OnPlayerPickUpDynamicPickup",identifier:"ii",beforeEach(e,t){return{player:p.getInstance(e),pickup:x.getInstance(t)}}}),Oh=Object.freeze({onPlayerPickUp:Lh,onStreamIn:Nh,onStreamOut:bh});class V{static checkpoints=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerCheckpoint]: Unable to create checkpoint again");let{streamDistance:t,worldId:a,interiorId:n,playerId:i,areaId:r,priority:s}=this.sourceInfo;const{size:l,x:o,y:c,z:u,extended:g}=this.sourceInfo;if(l<0)throw new Error("[StreamerCheckpoint]: Invalid checkpoint size");return t??=d.StreamerDistances.CP_SD,s??=0,g?(typeof a=="number"?a=[-1]:a??=[-1],typeof n=="number"?n=[-1]:n??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof r=="number"?r=[-1]:r??=[-1],this._id=d.CreateDynamicCPEx(o,c,u,l,t,a,n,i,r,s)):(Array.isArray(a)?a=-1:a??=-1,Array.isArray(n)?n=-1:n??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(r)?r=-1:r??=-1,this._id=d.CreateDynamicCP(o,c,u,l,a,n,i,t,r,s)),V.checkpoints.set(this._id,this),this}destroy(){if(this.id===-1&&!T.skip)throw new Error("[StreamerCheckpoint]: Unable to destroy the checkpoint before create");return T.skip||d.DestroyDynamicCP(this.id),V.checkpoints.delete(this.id),this._id=-1,this}isValid(){return T.skip&&this.id!==-1?!0:d.IsValidDynamicCP(this.id)}togglePlayer(t,a){if(this.id===-1)throw new Error("[StreamerCheckpoint]: Unable to toggle the player before create");return d.TogglePlayerDynamicCP(t.id,this.id,a),this}static togglePlayerAll(t,a){return d.TogglePlayerAllDynamicCPs(t.id,a)}isPlayerIn(t){return this.id===-1?!1:d.IsPlayerInDynamicCP(t.id,this.id)}static getPlayerVisible(t){return V.checkpoints.get(d.GetPlayerVisibleDynamicCP(t.id))}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerCheckpoint]: Unable to toggle callbacks before create");return f.toggleItemCallbacks(d.StreamerItemTypes.CP,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:f.isToggleItemCallbacks(d.StreamerItemTypes.CP,this.id)}static togglePlayerUpdate(t,a=!0){return f.toggleItemUpdate(t,d.StreamerItemTypes.CP,a)}static hideForPlayer(t,a=-5e4){return f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?f.updateEx(t,n.x,n.y,n.z):f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.checkpoints.get(t)}static getInstances(){return[...this.checkpoints.values()]}}R.onExit(({next:e})=>(V.checkpoints.forEach(t=>t.destroy()),e()));const[Gh,Fh]=h({name:"OnDynamicCheckPointStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[Bh,xh]=h({name:"OnDynamicCheckPointStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});ae(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.CP?Fh(a,V.getInstance(t)):n()),ne(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.CP?xh(a,V.getInstance(t)):n());const[kh]=h({name:"OnPlayerEnterDynamicCP",identifier:"ii",beforeEach(e,t){return{player:p.getInstance(e),cp:V.getInstance(t)}}}),[Mh]=h({name:"OnPlayerLeaveDynamicCP",identifier:"ii",beforeEach(e,t){return{player:p.getInstance(e),cp:V.getInstance(t)}}}),Hh=Object.freeze({onPlayerEnter:kh,onPlayerLeave:Mh,onStreamIn:Gh,onStreamOut:Bh});class U{static checkpoints=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerRaceCP]: Unable to create checkpoint again");let{streamDistance:t,worldId:a,interiorId:n,playerId:i,areaId:r,priority:s}=this.sourceInfo;const{type:l,size:o,x:c,y:u,z:g,nextX:S,nextY:P,nextZ:y,extended:A}=this.sourceInfo;if(l<0||l>8)throw new Error("[StreamerRaceCP]: Invalid type");if(o<0)throw new Error("[StreamerRaceCP]: Invalid size");return t??=d.StreamerDistances.RACE_CP_SD,s??=0,A?(typeof a=="number"?a=[-1]:a??=[-1],typeof n=="number"?n=[-1]:n??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof r=="number"?r=[-1]:r??=[-1],this._id=d.CreateDynamicRaceCPEx(l,c,u,g,S,P,y,o,t,a,n,i,r,s)):(Array.isArray(a)?a=-1:a??=-1,Array.isArray(n)?n=-1:n??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(r)?r=-1:r??=-1,this._id=d.CreateDynamicRaceCP(l,c,u,g,S,P,y,o,a,n,i,t,r,s)),U.checkpoints.set(this._id,this),this}destroy(){if(this.id===-1&&!T.skip)throw new Error("[StreamerRaceCP]: Unable to destroy the checkpoint before create");return T.skip||d.DestroyDynamicCP(this.id),U.checkpoints.delete(this.id),this._id=-1,this}isValid(){return T.skip&&this.id!==-1?!0:d.IsValidDynamicCP(this.id)}togglePlayer(t,a){if(this.id===-1)throw new Error("[StreamerRaceCP]: Unable to toggle the player before create");return d.TogglePlayerDynamicRaceCP(t.id,this.id,a),this}static togglePlayerAll(t,a){return d.TogglePlayerAllDynamicRaceCPs(t.id,a)}isPlayerIn(t){return this.id===-1?!1:d.IsPlayerInDynamicRaceCP(t.id,this.id)}static getPlayerVisible(t){return U.checkpoints.get(d.GetPlayerVisibleDynamicRaceCP(t.id))}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerRaceCP]: Unable to toggle callbacks before create");return f.toggleItemCallbacks(d.StreamerItemTypes.RACE_CP,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:f.isToggleItemCallbacks(d.StreamerItemTypes.RACE_CP,this.id)}static togglePlayerUpdate(t,a=!0){return f.toggleItemUpdate(t,d.StreamerItemTypes.RACE_CP,a)}static hideForPlayer(t,a=-5e4){return f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?f.updateEx(t,n.x,n.y,n.z):f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.checkpoints.get(t)}static getInstances(){return[...this.checkpoints.values()]}}R.onExit(({next:e})=>(U.getInstances().forEach(t=>t.destroy()),e()));const[Vh,Uh]=h({name:"OnDynamicRaceCPStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[Wh,jh]=h({name:"OnDynamicRaceCPStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});ae(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.RACE_CP?Uh(a,U.getInstance(t)):n()),ne(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.RACE_CP?jh(a,U.getInstance(t)):n());const[Kh]=h({name:"OnPlayerEnterDynamicRaceCP",identifier:"ii",beforeEach(e,t){return{player:p.getInstance(e),raceCP:U.getInstance(t)}}}),[Zh]=h({name:"OnPlayerLeaveDynamicRaceCP",identifier:"ii",beforeEach(e,t){return{player:p.getInstance(e),raceCp:U.getInstance(t)}}}),Xh=Object.freeze({onPlayerEnter:Kh,onPlayerLeave:Zh,onStreamIn:Vh,onStreamOut:Wh});class j{static actors=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerActor]: Unable to create actor again");let{streamDistance:t,worldId:a,interiorId:n,playerId:i,areaId:r,priority:s}=this.sourceInfo;const{modelId:l,x:o,y:c,z:u,r:g,invulnerable:S,health:P,extended:y}=this.sourceInfo;return t??=m.StreamerDistances.ACTOR_SD,s??=0,y?(typeof a=="number"?a=[0]:a??=[0],typeof n=="number"?n=[-1]:n??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof r=="number"?r=[-1]:r??=[-1],this._id=m.CreateDynamicActorEx(l,o,c,u,g,S,P,t,a,n,i,r,s)):(Array.isArray(a)?a=0:a??=0,Array.isArray(n)?n=-1:n??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(r)?r=-1:r??=-1,this._id=m.CreateDynamicActor(l,o,c,u,g,S,P,a,n,i,t,r,s)),j.actors.set(this.id,this),this}destroy(){if(this.id===-1&&!T.skip)throw new Error("[StreamerActor]: Unable to destroy the actor before create");return T.skip||m.DestroyDynamicActor(this.id),j.actors.delete(this.id),this._id=-1,this}isValid(){return T.skip&&this.id!==-1?!0:m.IsValidDynamicActor(this.id)}isStreamedIn(t){return this.id===-1?!1:m.IsDynamicActorStreamedIn(this.id,t.id)}getVirtualWorld(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get virtual world before create");return m.GetDynamicActorVirtualWorld(this.id)}setVirtualWorld(t){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set virtual world before create");return m.SetDynamicActorVirtualWorld(this.id,t)}applyAnimation(t,a,n=4.1,i=!1,r=!0,s=!0,l=!1,o=0){if(this.id===-1)throw new Error("[StreamerActor]: Unable to apply animation before create");if(!De(t,a))throw new Error(`[StreamerActor]: Invalid anim library or name ${t} ${a}`);return m.ApplyDynamicActorAnimation(this.id,t,a,n,i,r,s,l,o)}clearAnimations(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to clear animation before create");return m.ClearDynamicActorAnimations(this.id)}getFacingAngle(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get facing angle before create");return m.GetDynamicActorFacingAngle(this.id)}setFacingAngle(t){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set facing angle before create");return m.SetDynamicActorFacingAngle(this.id,t)}getPos(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get pos before create");return m.GetDynamicActorPos(this.id)}setPos(t,a,n){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set pos before create");return m.SetDynamicActorPos(this.id,t,a,n)}getHealth(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get health before create");return m.GetDynamicActorHealth(this.id)}setHealth(t){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set health before create");return m.SetDynamicActorHealth(this.id,t)}isInvulnerable(){return this.id===-1?!1:m.IsDynamicActorInvulnerable(this.id)}setInvulnerable(t=!0){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set invulnerable before create");return m.SetDynamicActorInvulnerable(this.id,t)}getPlayerTarget(t){if(this.id===-1)return;const a=m.GetPlayerTargetDynamicActor(t.id);return j.actors.get(a)}getPlayerCameraTarget(t){if(this.id===-1)return;const a=m.GetPlayerCameraTargetDynActor(t.id);return j.actors.get(a)}getSkin(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get skin before create");return Yr(this.id)}setSkin(t,a=!1){if(this.id===-1)throw new Error("[StreamerActor]: Unable to set skin before create");return!a&&(t<0||t>311||t===74)?0:$r(this.id,t)}getSpawnInfo(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get spawn info before create");return Jr(this.id)}getAnimation(){if(this.id===-1)throw new Error("[StreamerActor]: Unable to get animation before create");return m.GetDynamicActorAnimation(this.id)}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerActor]: Unable to toggle callbacks before create");return f.toggleItemCallbacks(m.StreamerItemTypes.ACTOR,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:f.isToggleItemCallbacks(m.StreamerItemTypes.ACTOR,this.id)}static togglePlayerUpdate(t,a=!0){return f.toggleItemUpdate(t,m.StreamerItemTypes.ACTOR,a)}static hideForPlayer(t,a=-5e4){return f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?f.updateEx(t,n.x,n.y,n.z):f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.actors.get(t)}static getInstances(){return[...this.actors.values()]}}R.onExit(({next:e})=>(j.getInstances().forEach(t=>t.destroy()),e()));const[zh]=h({name:"OnDynamicActorStreamIn",identifier:"ii",beforeEach(e,t){return{actor:j.getInstance(e),forPlayer:p.getInstance(t)}}}),[Yh]=h({name:"OnDynamicActorStreamOut",identifier:"ii",beforeEach(e,t){return{actor:j.getInstance(e),forPlayer:p.getInstance(t)}}}),[$h]=h({name:"OnPlayerGiveDamageDynamicActor",identifier:"iiiii",defaultValue:!1,beforeEach(e,t,a,n,i){return{player:p.getInstance(e),actor:j.getInstance(t),amount:a,weapon:n,bodyPart:i}}}),Jh=Object.freeze({onStreamIn:zh,onStreamOut:Yh,onPlayerGiveDamage:$h});class ie{static texts=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[Streamer3DTextLabel]: Unable to create again");let{attachedPlayer:t,attachedVehicle:a,testLos:n,streamDistance:i,worldId:r,interiorId:s,playerId:l,areaId:o,priority:c}=this.sourceInfo;const{charset:u,text:g,color:S,drawDistance:P,x:y,y:A,z:v,extended:G}=this.sourceInfo;return t??=w.PLAYER_ID,a??=w.VEHICLE_ID,i??=d.StreamerDistances.TEXT_3D_LABEL_SD,n??=!1,c??=0,G?(typeof r=="number"?r=[-1]:r??=[-1],typeof s=="number"?s=[-1]:s??=[-1],typeof l=="number"?l=[-1]:l??=[-1],typeof o=="number"?o=[-1]:o??=[-1],this._id=bc(g,E(S),y,A,v,P,t,a,n,i,r,s,l,o,c,u||"utf8")):(Array.isArray(r)?r=-1:r??=-1,Array.isArray(s)?s=-1:s??=-1,Array.isArray(l)?l=-1:l??=-1,Array.isArray(o)?o=-1:o??=-1,this._id=vc(u||"utf8",g,E(S),y,A,v,P,t,a,n,r,s,l,i,o,c)),ie.texts.set(this.id,this),this}destroy(){if(this.id===-1&&!T.skip)throw new Error("[Streamer3DTextLabel]: Unable to destroy before create");return T.skip||d.DestroyDynamic3DTextLabel(this.id),ie.texts.delete(this.id),this._id=-1,this}isValid(){return T.skip&&this.id!==-1?!0:d.IsValidDynamic3DTextLabel(this.id)}getColor(){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Unable to get color before create");return this.sourceInfo.color}getCharset(){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Unable to get charset before create");return this.sourceInfo.charset}getText(){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Unable to get text before create");return Lc(this.id,this.sourceInfo.charset||"utf8")}updateText(t,a,n=this.sourceInfo.charset){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Unable to update text before create");return this.sourceInfo.charset=n,Rc(this.id,E(t),a,n||"utf8")}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Unable to toggle callbacks before create");return f.toggleItemCallbacks(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:f.isToggleItemCallbacks(d.StreamerItemTypes.TEXT_3D_LABEL,this.id)}setOffsets(t,a,n){if(this.id===-1)return 0;const i=f.setFloatData(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,d.E_STREAMER.ATTACH_OFFSET_X,t);return f.setFloatData(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,d.E_STREAMER.ATTACH_OFFSET_Y,a),f.setFloatData(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,d.E_STREAMER.ATTACH_OFFSET_Z,n),this.sourceInfo.x=t,this.sourceInfo.y=a,this.sourceInfo.z=n,i}attachToPlayer(t,a,n,i){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Cannot attachToPlayer before created");const r=typeof t=="number"?t:t.id,s=f.setIntData(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,d.E_STREAMER.ATTACHED_PLAYER,r);return r!==w.PLAYER_ID&&this.setOffsets(a,n,i),this.sourceInfo.attachedPlayer=r,s}attachToVehicle(t,a,n,i){if(this.id===-1)throw new Error("[Streamer3DTextLabel]: Cannot attachToVehicle before created");const r=typeof t=="number"?t:t.id,s=f.setIntData(d.StreamerItemTypes.TEXT_3D_LABEL,this.id,d.E_STREAMER.ATTACHED_VEHICLE,r);return r!==w.VEHICLE_ID&&this.setOffsets(a,n,i),this.sourceInfo.attachedVehicle=r,s}static togglePlayerUpdate(t,a=!0){return f.toggleItemUpdate(t,d.StreamerItemTypes.TEXT_3D_LABEL,a)}static hideForPlayer(t,a=-5e4){return f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?f.updateEx(t,n.x,n.y,n.z):f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.texts.get(t)}static getInstances(){return[...this.texts.values()]}}R.onExit(({next:e})=>(ie.getInstances().forEach(t=>t.destroy()),e()));const[Qh,qh]=h({name:"OnDynamic3dTextStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[eu,tu]=h({name:"OnDynamic3dTextStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});ae(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.TEXT_3D_LABEL?qh(a,ie.getInstance(t)):n()),ne(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.TEXT_3D_LABEL?tu(a,ie.getInstance(t)):n());const au=Object.freeze({onStreamIn:Qh,onStreamOut:eu});class F{static objects=we;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerObject]: Unable to create object again");let{streamDistance:t,drawDistance:a,worldId:n,interiorId:i,playerId:r,areaId:s,priority:l}=this.sourceInfo;const{modelId:o,x:c,y:u,z:g,rx:S,ry:P,rz:y,extended:A}=this.sourceInfo;return t??=m.StreamerDistances.OBJECT_SD,a??=m.StreamerDistances.OBJECT_DD,l??=0,A?(typeof n=="number"?n=[-1]:n??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof r=="number"?r=[-1]:r??=[-1],typeof s=="number"?s=[-1]:s??=[-1],this._id=m.CreateDynamicObjectEx(o,c,u,g,S,P,y,t,a,n,i,r,s,l)):(Array.isArray(n)?n=-1:n??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(r)?r=-1:r??=-1,Array.isArray(s)?s=-1:s??=-1,this._id=m.CreateDynamicObject(o,c,u,g,S,P,y,n,i,r,t,a,s,l)),F.objects.set(this._id,this),this}destroy(){if(this.id===-1&&!T.skip)throw new Error("[StreamerObject]: Unable to destroy the object before create");return T.skip||m.DestroyDynamicObject(this.id),F.objects.delete(this.id),this._id=-1,this}isValid(){return T.skip&&this.id!==-1?!0:m.IsValidDynamicObject(this.id)}getModel(){return this.sourceInfo.modelId}getPos(){if(this.id===-1)throw new Error("[StreamerObject]: Cannot get position before create");return m.GetDynamicObjectPos(this.id)}setPos(t,a,n){if(this.id===-1)throw new Error("[StreamerObject]: Cannot set position before create");return m.SetDynamicObjectPos(this.id,t,a,n)}getRot(){if(this.id===-1)throw new Error("[StreamerObject]: Cannot get rotation before create");return m.GetDynamicObjectRot(this.id)}setRot(t,a,n){if(this.id===-1)throw new Error("[StreamerObject]: Cannot set rotation before create");return m.SetDynamicObjectRot(this.id,t,a,n)}move(t,a,n,i,r=-1e3,s=-1e3,l=-1e3){if(this.id===-1)throw new Error("[StreamerObject]: Cannot start moving before create");if(i<0)throw new Error("[StreamerObject]: speed must not be less than 0");if(i>120*1e3)throw new Error("[StreamerObject]: speed more than 120 seconds, warn if it's not intentional");return this.isMoving()&&this.stop(),m.MoveDynamicObject(this.id,t,a,n,i,r,s,l)}stop(){if(this.id===-1)throw new Error("[StreamerObject]: Cannot stop moving before create");return m.StopDynamicObject(this.id)}isMoving(){return this.id===-1?!1:m.IsDynamicObjectMoving(this.id)}attachCamera(t){if(this.id===-1||t.id===-1)throw new Error("[StreamerObject]: Cannot attachCamera before both are created");return m.AttachCameraToDynamicObject(t.id,this.id)}attachToObject(t,a,n,i,r,s,l,o=!0){if(this.id===-1||t.id===-1)throw new Error("[StreamerObject]: Cannot attachToObject before both are created");return m.AttachDynamicObjectToObject(this.id,t.id,a,n,i,r,s,l,o)}attachToPlayer(t,a,n,i,r,s,l){if(this.id===-1||t.id===-1)throw new Error("[StreamerObject]: Cannot attachToPlayer before both are created");return m.AttachDynamicObjectToPlayer(this.id,t.id,a,n,i,r,s,l)}attachToVehicle(t,a,n,i,r,s,l){if(this.id===-1||t.id===-1)throw new Error("[StreamerObject]: Cannot attachToVehicle before both are created");return m.AttachDynamicObjectToVehicle(this.id,t.id,a,n,i,r,s,l)}edit(t){if(this.id===-1)throw new Error("[StreamerObject]: Unable to edit before create");return t.endObjectEditing(),m.EditDynamicObject(t.id,this.id)}isMaterialUsed(t){return this.id===-1?!1:m.IsDynamicObjectMaterialUsed(this.id,t)}removeMaterial(t){return this.id===-1||!this.isMaterialUsed(t)?0:m.RemoveDynamicObjectMaterial(this.id,t)}getMaterial(t,a,n){if(this.id===-1)throw new Error("[StreamerObject]: Unable to get material before create");return m.GetDynamicObjectMaterial(this.id,t,a,n)}setMaterial(t,a,n,i,r="#000"){if(this.id===-1)throw new Error("[StreamerObject]: Unable to set material before create");return m.SetDynamicObjectMaterial(this.id,t,a,n,i,E(r))}isMaterialTextUsed(t){return this.id===-1?!1:m.IsDynamicObjectMaterialTextUsed(this.id,t)}removeMaterialText(t){return this.isMaterialTextUsed(t)?m.RemoveDynamicObjectMaterialText(this.id,t):0}getMaterialText(t){if(this.id===-1)throw new Error("[StreamerObject]: Unable to get material text before create");return Gc(this.id,t,this.sourceInfo.charset||"utf8")}setMaterialText(t=this.sourceInfo.charset,a,n,i=m.MaterialTextSizes.SIZE_256x128,r="Arial",s=24,l=1,o="#fff",c="#000",u=0){if(this.id===-1)throw new Error("[StreamerObject]: Unable to set material text before create");return this.sourceInfo.charset=t,Oc(t||"utf8",this.id,a,n,i,r,s,l,E(o),E(c),u)}getPlayerCameraTarget(t){const a=m.GetPlayerCameraTargetDynObject(t.id);if(a!==w.OBJECT_ID)return F.objects.get(a)}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerObject]: Unable to toggle callbacks before create");return f.toggleItemCallbacks(m.StreamerItemTypes.OBJECT,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:f.isToggleItemCallbacks(m.StreamerItemTypes.OBJECT,this.id)}setNoCameraCollision(){return m.SetDynamicObjectNoCameraCol(this.id)}getNoCameraCollision(){return m.GetDynamicObjectNoCameraCol(this.id)}static togglePlayerUpdate(t,a=!0){return f.toggleItemUpdate(t,m.StreamerItemTypes.OBJECT,a)}static hideForPlayer(t,a=-5e4){return f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?f.updateEx(t,n.x,n.y,n.z):f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.objects.get(t)}static getInstances(){return[...this.objects.values()]}}R.onExit(({next:e})=>(F.getInstances().forEach(t=>t.destroy()),e()));const[nu,iu]=h({name:"OnDynamicObjectStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[ru,su]=h({name:"OnDynamicObjectStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});ae(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.OBJECT?iu(a,F.getInstance(t)):n()),ne(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.OBJECT?su(a,F.getInstance(t)):n());const[lu]=h({name:"OnDynamicObjectMoved",identifier:"i",beforeEach(e){return{object:F.getInstance(e)}}}),[ou]=h({name:"OnPlayerEditDynamicObject",identifier:"iiiiiiiii",defaultValue:!1,beforeEach(e,t,a,n,i,r,s,l,o){return{player:p.getInstance(e),object:F.getInstance(t),response:a,x:n,y:i,z:r,rX:s,rY:l,rZ:o}}}),[du]=h({name:"OnPlayerSelectDynamicObject",identifier:"iiiiii",beforeEach(e,t,a,n,i,r){return{player:p.getInstance(e),object:F.getInstance(t),modelId:a,x:n,y:i,z:r}}}),[cu]=h({name:"OnPlayerShootDynamicObject",identifier:"iiiiii",beforeEach(e,t,a,n,i,r){return{player:p.getInstance(e),object:F.getInstance(a),weapon:t,x:n,y:i,z:r}}}),[_u]=h({name:"OnPlayerEditAttachedObject",defaultValue:!1,beforeEach(e,t,a,n,i,r,s,l,o,c,u,g,S,P){return{player:p.getInstance(e),response:t,index:a,modelId:n,boneId:i,fOffsetX:r,fOffsetY:s,fOffsetZ:l,fRotX:o,fRotY:c,fRotZ:u,fScaleX:g,fScaleY:S,fScaleZ:P}}}),hu=Object.freeze({onMoved:lu,onPlayerEdit:ou,onPlayerSelect:du,onPlayerShoot:cu,onPlayerEditAttached:_u,onStreamIn:nu,onStreamOut:ru});class O{static areas=new Map;sourceInfo;_id=-1;get type(){return this.sourceInfo.type}get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[StreamerArea]: Unable to create area again");let{worldId:t,interiorId:a,playerId:n}=this.sourceInfo;const{type:i,extended:r}=this.sourceInfo;if(r)if(typeof t=="number"?t=[-1]:t??=[-1],typeof a=="number"?a=[-1]:a??=[-1],typeof n=="number"?n=[-1]:n??=[-1],i==="circle"){const{x:s,y:l,size:o}=this.sourceInfo;if(o<0)throw new Error("[StreamerArea]: Invalid circle extend size");this._id=m.CreateDynamicCircleEx(s,l,o,t,a,n)}else if(i==="cuboid"){const{minX:s,minY:l,minZ:o,maxX:c,maxY:u,maxZ:g}=this.sourceInfo;this._id=m.CreateDynamicCuboidEx(s,l,o,c,u,g,t,a,n)}else if(i==="cylinder"){const{x:s,y:l,minZ:o,maxZ:c,size:u}=this.sourceInfo;if(u<0)throw new Error("[StreamerArea]: Invalid cylinder extend size");this._id=m.CreateDynamicCylinderEx(s,l,o,c,u,t,a,n)}else if(i==="polygon"){const{points:s,minZ:l,maxZ:o}=this.sourceInfo;if(s.length%2!==0)throw new Error("[StreamerArea]: Unable to create polygon extended with asymmetrical points");this._id=m.CreateDynamicPolygonEx(s,l,o,t,a,n)}else if(i==="rectangle"){const{minX:s,minY:l,maxX:o,maxY:c}=this.sourceInfo;this._id=m.CreateDynamicRectangleEx(s,l,o,c,t,a,n)}else{const{x:s,y:l,z:o,size:c}=this.sourceInfo;if(c<0)throw new Error("[StreamerArea]: Invalid sphere extended size");this._id=m.CreateDynamicSphereEx(s,l,o,c,t,a,n)}else if(Array.isArray(t)?t=-1:t??=-1,Array.isArray(a)?a=-1:a??=-1,Array.isArray(n)?n=-1:n??=-1,i==="circle"){const{x:s,y:l,size:o}=this.sourceInfo;if(o<0)throw new Error("[StreamerArea]: Invalid circle size");this._id=m.CreateDynamicCircle(s,l,o,t,a,n)}else if(i==="cuboid"){const{minX:s,minY:l,minZ:o,maxX:c,maxY:u,maxZ:g}=this.sourceInfo;this._id=m.CreateDynamicCuboid(s,l,o,c,u,g,t,a,n)}else if(i==="cylinder"){const{x:s,y:l,minZ:o,maxZ:c,size:u}=this.sourceInfo;if(u<0)throw new Error("[StreamerArea]: Invalid cylinder size");this._id=m.CreateDynamicCylinder(s,l,o,c,u,t,a,n)}else if(i==="polygon"){const{points:s,minZ:l,maxZ:o}=this.sourceInfo;if(s.length%2!==0)throw new Error("[StreamerArea]: Unable to create polygon with asymmetrical points");this._id=m.CreateDynamicPolygon(s,l,o,t,a,n)}else if(i==="rectangle"){const{minX:s,minY:l,maxX:o,maxY:c}=this.sourceInfo;this._id=m.CreateDynamicRectangle(s,l,o,c,t,a,n)}else{const{x:s,y:l,z:o,size:c}=this.sourceInfo;if(c<0)throw new Error("[StreamerArea]: Invalid sphere size");this._id=m.CreateDynamicSphere(s,l,o,c,t,a,n)}return O.areas.set(this._id,this),this}destroy(){if(this.id===-1&&!T.skip)throw new Error("[StreamerArea]: Unable to destroy the area before create");return T.skip||m.DestroyDynamicArea(this.id),O.areas.delete(this.id),this._id=-1,this}isValid(){return T.skip&&this.id!==-1?!0:m.IsValidDynamicArea(this.id)}getType(){if(this.id!==-1)throw new Error("[StreamerArea]: Unable to get type before create");return m.GetDynamicAreaType(this.id)}getPolygonPoints(){if(this.id!==-1)throw new Error("[StreamerArea]: Unable to getPolygonPoints before create");if(this.type!=="polygon")throw new Error("[StreamerArea]: getPolygonPoints invalid area type");return m.GetDynamicPolygonPoints(this.id)}getPolygonNumberPoints(){if(this.id!==-1)throw new Error("[StreamerArea]: Unable to getPolygonNumberPoints number before create");if(this.type!=="polygon")throw new Error("[StreamerArea]: getPolygonNumberPoints invalid area type");return m.GetDynamicPolygonNumberPoints(this.id)}isPlayerIn(t,a=!1){return this.id===-1?!1:m.IsPlayerInDynamicArea(t.id,this.id,a)}static isPlayerInAny(t,a=!1){return m.IsPlayerInAnyDynamicArea(t.id,a)}isAnyPlayerIn(t=!1){return this.id===-1?!1:m.IsAnyPlayerInDynamicArea(this.id,t)}static isAnyPlayerInAny(t=!1){return m.IsAnyPlayerInAnyDynamicArea(t)}static getPlayerAreas(t){return O.getPlayerAreasNumber(t)?m.GetPlayerDynamicAreas(t.id).map(a=>O.areas.get(a)):[]}static getPlayerAreasNumber(t){return m.GetPlayerNumberDynamicAreas(t.id)}isPointIn(t,a,n){return this.id===-1?!1:m.IsPointInDynamicArea(this.id,t,a,n)}static isPointInAny(t,a,n){return m.IsPointInAnyDynamicArea(t,a,n)}isLineIn(t,a,n,i,r,s){return this.id===-1?!1:m.IsLineInDynamicArea(this.id,t,a,n,i,r,s)}static isLineInAny(t,a,n,i,r,s){return m.IsLineInAnyDynamicArea(t,a,n,i,r,s)}static getForPoint(t,a,n){return O.getNumberForPoint(t,a,n)?m.GetDynamicAreasForPoint(t,a,n).map(i=>O.getInstance(i)):[]}static getNumberForPoint(t,a,n){return m.GetNumberDynamicAreasForPoint(t,a,n)}static getForLine(t,a,n,i,r,s){return O.getNumberForLine(t,a,n,i,r,s)?m.GetDynamicAreasForLine(t,a,n,i,r,s).map(l=>O.areas.get(l)):[]}static getNumberForLine(t,a,n,i,r,s){return m.GetNumberDynamicAreasForLine(t,a,n,i,r,s)}attachToObject(t,a=0,n=0,i=0){if(this.id===-1||t.id===-1)throw new Error("[StreamerArea]: Unable to toggle attach to object before create");return m.AttachDynamicAreaToObject(this.id,t.id,m.StreamerObjectTypes.DYNAMIC,w.PLAYER_ID,a,n,i)}attachToPlayer(t,a=0,n=0,i=0){if(this.id===-1||t.id===-1)throw new Error("[StreamerArea]: Unable to toggle attach to player before create");return m.AttachDynamicAreaToPlayer(this.id,t.id,a,n,i)}attachToVehicle(t,a=0,n=0,i=0){if(this.id===-1||t.id===-1)throw new Error("[StreamerArea]: Unable to toggle attach to vehicle before create");return m.AttachDynamicAreaToVehicle(this.id,t.id,a,n,i)}toggleSpectateMode(t){if(this.id===-1)throw new Error("[StreamerArea]: Unable to toggle specate mode before create");return m.ToggleDynAreaSpectateMode(this.id,t)}isToggleSpectateMode(){return this.id===-1?!1:m.IsToggleDynAreaSpectateMode(this.id)}toggleCallbacks(t=!0){if(this.id===-1)throw new Error("[StreamerArea]: Unable to toggle callbacks before create");return f.toggleItemCallbacks(m.StreamerItemTypes.AREA,this.id,t)}isToggleCallbacks(){return this.id===-1?!1:f.isToggleItemCallbacks(m.StreamerItemTypes.AREA,this.id)}static togglePlayerUpdate(t,a=!0){return f.toggleItemUpdate(t,m.StreamerItemTypes.AREA,a)}static hideForPlayer(t,a=-5e4){return f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!1)}static showForPlayer(t,a=-5e4){const n=t.getPos();return n?f.updateEx(t,n.x,n.y,n.z):f.updateEx(t,0,0,a),this.togglePlayerUpdate(t,!0)}static getInstance(t){return this.areas.get(t)}static getInstances(){return[...this.areas.values()]}}R.onExit(({next:e})=>(O.getInstances().forEach(t=>t.destroy()),e()));const[uu,mu]=h({name:"OnDynamicAreaStreamIn",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}}),[pu,gu]=h({name:"OnDynamicAreaStreamOut",isNative:!1,beforeEach(e,t){return{player:e,instance:t}}});ae(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.AREA?mu(a,O.getInstance(t)):n()),ne(({type:e,id:t,forPlayer:a,next:n})=>e===d.StreamerItemTypes.AREA?gu(a,O.getInstance(t)):n());const[Su]=h({name:"OnPlayerEnterDynamicArea",identifier:"ii",beforeEach(e,t){return{player:p.getInstance(e),area:O.getInstance(t)}}}),[yu]=h({name:"OnPlayerLeaveDynamicArea",identifier:"ii",beforeEach(e,t){return{player:p.getInstance(e),area:O.getInstance(t)}}}),fu=Object.freeze({onStreamIn:uu,onStreamOut:pu,onPlayerEnter:Su,onPlayerLeave:yu});class _{static globalTextDraws=new Map;static playerTextDraws=new Map;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)throw new Error("[TextDraw]: Unable to create the textdraw again");const{x:t,y:a,text:n,player:i,charset:r="iso-8859-1"}=this.sourceInfo,s=I.encodeToBuf(I.convertSpecialChar(n),r);if(i){if(_.getInstances(!1).length===M.MAX_TEXT_DRAWS)throw new Error("[TextDraw]: Unable to continue to create textdraw, maximum allowable quantity has been reached");this._id=_.__inject__CreatePlayerTextDraw(i.id,t,a,s);const l=be.onDisconnect(({player:o,next:c})=>{const u=c();return o===i&&(this.isValid()&&this.destroy(),l()),u});_.playerTextDraws.set(this.id,this)}else{if(_.getInstances(!0).length===M.MAX_TEXT_DRAWS)throw new Error("[TextDraw]: Unable to continue to create textdraw, maximum allowable quantity has been reached");this._id=_.__inject__TextDrawCreate(t,a,s),_.globalTextDraws.set(this.id,this)}return this}destroy(){this.id===-1&&_.beforeCreateWarn("destroy the textdraw");const{player:t}=this.sourceInfo;return t?(_.__inject__PlayerTextDrawDestroy(t.id,this.id),_.playerTextDraws.delete(this.id)):(_.__inject__TextDrawDestroy(this.id),_.globalTextDraws.delete(this.id)),this._id=-1,this}setFont(t){if(this.id===-1)return _.beforeCreateWarn("set font"),this;const{player:a}=this.sourceInfo;return a?_.__inject__PlayerTextDrawFont(a.id,this.id,t):_.__inject__TextDrawFont(this.id,t),this}setColor(t){if(this.id===-1)return _.beforeCreateWarn("set color"),this;const{player:a}=this.sourceInfo;return a?_.__inject__PlayerTextDrawColor(a.id,this.id,t):_.__inject__TextDrawColor(this.id,t),this}setBoxColors(t){if(this.id===-1)return _.beforeCreateWarn("set box color"),this;const{player:a}=this.sourceInfo;return a?_.__inject__PlayerTextDrawBoxColor(a.id,this.id,t):_.__inject__TextDrawBoxColor(this.id,t),this}setBackgroundColors(t){if(this.id===-1)return _.beforeCreateWarn("set background color"),this;const{player:a}=this.sourceInfo;return a?_.__inject__PlayerTextDrawBackgroundColor(a.id,this.id,t):_.__inject__TextDrawBackgroundColor(this.id,t),this}setAlignment(t){if(this.id===-1)return _.beforeCreateWarn("set alignment"),this;const{player:a}=this.sourceInfo;return a?_.__inject__PlayerTextDrawAlignment(a.id,this.id,t):_.__inject__TextDrawAlignment(this.id,t),this}setLetterSize(t,a){if(this.id===-1)return _.beforeCreateWarn("set letter size"),this;const{player:n}=this.sourceInfo;return n?_.__inject__PlayerTextDrawLetterSize(n.id,this.id,t,a):_.__inject__TextDrawLetterSize(this.id,t,a),this}setOutline(t){if(this.id===-1)return _.beforeCreateWarn("set outline model"),this;if(t<0)throw new Error("[TextDraw]: Invalid outline value");const{player:a}=this.sourceInfo;return a?_.__inject__PlayerTextDrawSetOutline(a.id,this.id,t):_.__inject__TextDrawSetOutline(this.id,t),this}setPreviewModel(t){if(this.id===-1)return _.beforeCreateWarn("set preview model"),this;this.setFont(_e.MODEL_PREVIEW);const{player:a}=this.sourceInfo;return a?_.__inject__PlayerTextDrawSetPreviewModel(a.id,this.id,t):_.__inject__TextDrawSetPreviewModel(this.id,t),this}setPreviewRot(t,a,n,i=1){if(this.id===-1)return _.beforeCreateWarn("set preview rot"),this;this.setFont(_e.MODEL_PREVIEW);const{player:r}=this.sourceInfo;return r?_.__inject__PlayerTextDrawSetPreviewRot(r.id,this.id,t,a,n,i):_.__inject__TextDrawSetPreviewRot(this.id,t,a,n,i),this}setPreviewVehColors(t,a){if(this.id===-1)return _.beforeCreateWarn("set preview veh col"),this;this.setFont(_e.MODEL_PREVIEW);const{player:n}=this.sourceInfo;return n?_.__inject__PlayerTextDrawSetPreviewVehicleColors(n.id,this.id,t,a):_.__inject__TextDrawSetPreviewVehicleColors(this.id,t,a),this}setProportional(t=!0){if(this.id===-1)return _.beforeCreateWarn("set Proportional"),this;const{player:a}=this.sourceInfo;return a?_.__inject__PlayerTextDrawSetProportional(a.id,this.id,t):_.__inject__TextDrawSetProportional(this.id,t),this}setSelectable(t){if(this.id===-1)return _.beforeCreateWarn("set Selectable"),this;const{player:a}=this.sourceInfo;return a?_.__inject__PlayerTextDrawSetSelectable(a.id,this.id,t):_.__inject__TextDrawSetSelectable(this.id,t),this}setShadow(t){if(this.id===-1)return _.beforeCreateWarn("set shadow"),this;if(t<0)throw new Error("[TextDraw]: Invalid shadow value");const{player:a}=this.sourceInfo;return a?_.__inject__PlayerTextDrawSetShadow(a.id,this.id,t):_.__inject__TextDrawSetShadow(this.id,t),this}setString(t,a){if(this.id===-1)return _.beforeCreateWarn("set string"),this;if(t.length===0||t.length>1024)throw new Error("[TextDraw]: Invalid text length");const{player:n,charset:i="iso-8859-1"}=this.sourceInfo,r=I.encodeToBuf(I.convertSpecialChar(t),i);return n?_.__inject__PlayerTextDrawSetString(n.id,this.id,r):a?_.__inject__TextDrawSetStringForPlayer(this.id,a.id,r):_.__inject__TextDrawSetString(this.id,r),this}setTextSize(t,a){if(this.id===-1)return _.beforeCreateWarn("set TextSize"),this;const{player:n}=this.sourceInfo;return n?_.__inject__PlayerTextDrawTextSize(n.id,this.id,t,a):_.__inject__TextDrawTextSize(this.id,t,a),this}useBox(t){if(this.id===-1)return _.beforeCreateWarn("set TextSize"),this;const{player:a}=this.sourceInfo;return a?_.__inject__PlayerTextDrawUseBox(a.id,this.id,t):_.__inject__TextDrawUseBox(this.id,t),this}static beforeCreateWarn(t){throw new Error(`[TextDraw]: Unable to ${t} before create`)}show(t){if(this.id===-1)return _.beforeCreateWarn("show"),this;const a=this.sourceInfo.player;if(a)_.__inject__PlayerTextDrawShow(a.id,this.id);else if(t)_.__inject__TextDrawShowForPlayer(t.id,this.id);else throw new Error("[TextDraw]: invalid player for show");return this}hide(t){if(this.id===-1)return _.beforeCreateWarn("hide"),this;const a=this.sourceInfo.player;if(a)_.__inject__PlayerTextDrawHide(a.id,this.id);else if(t)_.__inject__TextDrawHideForPlayer(t.id,this.id);else throw new Error("[TextDraw]: invalid player for hide");return this}showAll(){if(this.id===-1)return _.beforeCreateWarn("show"),this;if(!this.sourceInfo.player)return _.__inject__TextDrawShowForAll(this.id),this;throw new Error("[TextDraw]: player's textdraw should not be show for all.")}hideAll(){if(this.id===-1)return _.beforeCreateWarn("hideAll"),this;if(!this.sourceInfo.player)return _.__inject__TextDrawHideForAll(this.id),this;throw new Error("[TextDraw]: player's textdraw should not be hide for all.")}isValid(){const t=this.sourceInfo.player;return t?_.__inject__IsValidPlayerTextDraw(t.id,this.id):_.__inject__IsValidTextDraw(this.id)}isVisibleForPlayer(t){if(this.id===-1)return!1;const{player:a}=this.sourceInfo;return a?_.__inject__IsPlayerTextDrawVisible(a.id,this.id):t?_.__inject__IsTextDrawVisibleForPlayer(t.id,this.id):!1}getString(){if(this.id===-1)return this.sourceInfo.text;const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetString(t.id,this.id):_.__inject__TextDrawGetString(this.id)}setPos(t,a){if(this.id===-1)return _.beforeCreateWarn("set position"),this;const n=this.sourceInfo.player;return n?_.__inject__PlayerTextDrawSetPos(n.id,this.id,t,a):_.__inject__TextDrawSetPos(this.id,t,a),this}getLetterSize(){if(this.id===-1)return _.beforeCreateWarn("get letter size");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetLetterSize(t.id,this.id):_.__inject__TextDrawGetLetterSize(this.id)}getTextSize(){if(this.id===-1)return _.beforeCreateWarn("get text size");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetTextSize(t.id,this.id):_.__inject__TextDrawGetTextSize(this.id)}getPos(){if(this.id===-1)return _.beforeCreateWarn("get position");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetPos(t.id,this.id):_.__inject__TextDrawGetPos(this.id)}getColor(){if(this.id===-1)return _.beforeCreateWarn("get color");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetColor(t.id,this.id):_.__inject__TextDrawGetColor(this.id)}getBoxColor(){if(this.id===-1)return _.beforeCreateWarn("get box color");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetBoxColor(t.id,this.id):_.__inject__TextDrawGetBoxColor(this.id)}getBackgroundColor(){if(this.id===-1)return _.beforeCreateWarn("get bg color");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetBackgroundColor(t.id,this.id):_.__inject__TextDrawGetBackgroundColor(this.id)}getShadow(){if(this.id===-1)return _.beforeCreateWarn("get shadow");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetShadow(t.id,this.id):_.__inject__TextDrawGetShadow(this.id)}getOutline(){if(this.id===-1)return _.beforeCreateWarn("get outline");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetOutline(t.id,this.id):_.__inject__TextDrawGetOutline(this.id)}getFont(){if(this.id===-1)return _.beforeCreateWarn("get font");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetFont(t.id,this.id):_.__inject__TextDrawGetFont(this.id)}isBox(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawIsBox(t.id,this.id):_.__inject__TextDrawIsBox(this.id)}isProportional(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawIsProportional(t.id,this.id):_.__inject__TextDrawIsProportional(this.id)}isSelectable(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawIsSelectable(t.id,this.id):_.__inject__TextDrawIsSelectable(this.id)}getAlignment(){if(this.id===-1)return _.beforeCreateWarn("get alignment");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetAlignment(t.id,this.id):_.__inject__TextDrawGetAlignment(this.id)}getPreviewModel(){if(this.id===-1)return _.beforeCreateWarn("get preview model");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetPreviewModel(t.id,this.id):_.__inject__TextDrawGetPreviewModel(this.id)}getPreviewRot(){if(this.id===-1)return _.beforeCreateWarn("get preview rotation");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetPreviewRot(t.id,this.id):_.__inject__TextDrawGetPreviewRot(this.id)}getPreviewVehColors(){if(this.id===-1)return _.beforeCreateWarn("get preview vel colors");const t=this.sourceInfo.player;return t?_.__inject__PlayerTextDrawGetPreviewVehicleColors(t.id,this.id):_.__inject__TextDrawGetPreviewVehicleColors(this.id)}isGlobal(){return!!this.sourceInfo.player}static getInstance(t,a){return a?this.globalTextDraws.get(t):this.playerTextDraws.get(t)}static getInstances(t){return t?[...this.globalTextDraws.values()]:[...this.playerTextDraws.values()]}static __inject__TextDrawCreate=Jo;static __inject__CreatePlayerTextDraw=Vd;static __inject__TextDrawDestroy=Qo;static __inject__PlayerTextDrawDestroy=Ud;static __inject__TextDrawFont=od;static __inject__PlayerTextDrawFont=Qd;static __inject__TextDrawColor=ad;static __inject__PlayerTextDrawColor=Zd;static __inject__TextDrawBoxColor=id;static __inject__PlayerTextDrawBoxColor=zd;static __inject__TextDrawBackgroundColor=ld;static __inject__PlayerTextDrawBackgroundColor=Jd;static __inject__TextDrawAlignment=td;static __inject__PlayerTextDrawAlignment=Kd;static __inject__TextDrawLetterSize=qo;static __inject__PlayerTextDrawLetterSize=Wd;static __inject__TextDrawSetOutline=sd;static __inject__PlayerTextDrawSetOutline=$d;static __inject__TextDrawSetPreviewModel=gd;static __inject__PlayerTextDrawSetPreviewModel=ic;static __inject__TextDrawSetPreviewRot=Sd;static __inject__PlayerTextDrawSetPreviewRot=rc;static __inject__TextDrawSetPreviewVehicleColors=yd;static __inject__PlayerTextDrawSetPreviewVehicleColors=sc;static __inject__TextDrawSetProportional=dd;static __inject__PlayerTextDrawSetProportional=qd;static __inject__TextDrawSetSelectable=cd;static __inject__PlayerTextDrawSetSelectable=ec;static __inject__TextDrawSetShadow=rd;static __inject__PlayerTextDrawSetShadow=Yd;static __inject__PlayerTextDrawSetString=nc;static __inject__TextDrawSetStringForPlayer=$o;static __inject__TextDrawSetString=pd;static __inject__TextDrawTextSize=ed;static __inject__PlayerTextDrawTextSize=jd;static __inject__PlayerTextDrawUseBox=Xd;static __inject__TextDrawUseBox=nd;static __inject__PlayerTextDrawShow=tc;static __inject__TextDrawShowForPlayer=_d;static __inject__PlayerTextDrawHide=ac;static __inject__TextDrawHideForPlayer=hd;static __inject__TextDrawShowForAll=ud;static __inject__TextDrawHideForAll=md;static __inject__IsValidPlayerTextDraw=Id;static __inject__IsValidTextDraw=bo;static __inject__IsPlayerTextDrawVisible=Ed;static __inject__IsTextDrawVisibleForPlayer=Ro;static __inject__PlayerTextDrawGetString=Ad;static __inject__TextDrawGetString=Lo;static __inject__PlayerTextDrawSetPos=Cd;static __inject__TextDrawSetPos=Oo;static __inject__PlayerTextDrawGetLetterSize=Td;static __inject__TextDrawGetLetterSize=Go;static __inject__PlayerTextDrawGetTextSize=Dd;static __inject__TextDrawGetTextSize=Fo;static __inject__PlayerTextDrawGetPos=wd;static __inject__TextDrawGetPos=Bo;static __inject__PlayerTextDrawGetColor=Nd;static __inject__TextDrawGetColor=xo;static __inject__PlayerTextDrawGetBoxColor=vd;static __inject__TextDrawGetBoxColor=ko;static __inject__PlayerTextDrawGetBackgroundColor=bd;static __inject__TextDrawGetBackgroundColor=Mo;static __inject__PlayerTextDrawGetShadow=Rd;static __inject__TextDrawGetShadow=Ho;static __inject__PlayerTextDrawGetOutline=Ld;static __inject__TextDrawGetOutline=Vo;static __inject__PlayerTextDrawGetFont=Od;static __inject__TextDrawGetFont=Uo;static __inject__PlayerTextDrawIsBox=Gd;static __inject__TextDrawIsBox=Wo;static __inject__PlayerTextDrawIsProportional=Fd;static __inject__TextDrawIsProportional=jo;static __inject__PlayerTextDrawIsSelectable=Bd;static __inject__TextDrawIsSelectable=Ko;static __inject__PlayerTextDrawGetAlignment=xd;static __inject__TextDrawGetAlignment=Zo;static __inject__PlayerTextDrawGetPreviewModel=kd;static __inject__TextDrawGetPreviewModel=Xo;static __inject__PlayerTextDrawGetPreviewRot=Md;static __inject__TextDrawGetPreviewRot=zo;static __inject__TextDrawGetPreviewVehicleColors=Yo;static __inject__PlayerTextDrawGetPreviewVehicleColors=Hd}R.onExit(({next:e})=>(_.getInstances(!0).forEach(t=>t.destroy()),_.getInstances(!1).forEach(t=>t.destroy()),e()));const[Pu]=h({name:"OnPlayerClickTextDraw",defaultValue:!1,beforeEach(e,t){return{player:p.getInstance(e),textDraw:t===w.TEXT_DRAW?t:_.getInstance(t,!0)}}}),[Iu]=h({name:"OnPlayerClickPlayerTextDraw",defaultValue:!1,beforeEach(e,t){return{player:p.getInstance(e),textDraw:t===w.TEXT_DRAW?t:_.getInstance(t,!1)}}}),Eu=Object.freeze({onPlayerClickGlobal:Pu,onPlayerClickPlayer:Iu});function Au(e,t){return(e&t)===t}function Cu(e,t,a){return(e&a)===a&&(t&a)!==a}function Tu(e,t){return!!(e&t)}function Du(e,t,a){return(e&a)!==a&&(t&a)===a}function wu(e){const t=new Set,a=e.prototype,n=Object.getOwnPropertyNames(a).filter(r=>typeof a[r]=="function"&&r!=="constructor").reduce((r,s)=>(r[s]=a[s],r),{});function i(r,s){if(t.has(r))throw new Error(`Method '${String(r)}' of class '${e.name}' has already been hooked. Each method can only be hooked once per defineHooks call. `);if(typeof Reflect.get(a,r)!="function")throw new Error(`Invalid method: ${String(r)}`);return Reflect.set(a,r,s),t.add(r),s}return[n,i]}Object.defineProperty(exports,"E_STREAMER",{enumerable:!0,get:function(){return d.E_STREAMER}}),Object.defineProperty(exports,"MapIconStyles",{enumerable:!0,get:function(){return d.MapIconStyles}}),Object.defineProperty(exports,"MaterialTextAlign",{enumerable:!0,get:function(){return d.MaterialTextAlign}}),Object.defineProperty(exports,"MaterialTextSizes",{enumerable:!0,get:function(){return d.MaterialTextSizes}}),Object.defineProperty(exports,"StreamerAreaTypes",{enumerable:!0,get:function(){return d.StreamerAreaTypes}}),Object.defineProperty(exports,"StreamerDistances",{enumerable:!0,get:function(){return d.StreamerDistances}}),Object.defineProperty(exports,"StreamerItemTypes",{enumerable:!0,get:function(){return d.StreamerItemTypes}}),Object.defineProperty(exports,"StreamerMiscellaneous",{enumerable:!0,get:function(){return d.StreamerMiscellaneous}}),Object.defineProperty(exports,"StreamerObjectTypes",{enumerable:!0,get:function(){return d.StreamerObjectTypes}}),exports.ArtworkEnum=Ke,exports.BodyPartsEnum=it,exports.BoneIdsEnum=rt,exports.BulletHitTypesEnum=ut,exports.CameraCutStylesEnum=de,exports.CameraModesEnum=nt,exports.CarModTypeEnum=ot,exports.ClickSourcesEnum=Ze,exports.ConnectionStatusEnum=ze,exports.DamageDeathReasonEnum=Ce,exports.Dialog=b,exports.DialogStylesEnum=Ee,exports.Dynamic3DTextLabel=ie,exports.Dynamic3DTextLabelEvent=au,exports.DynamicActor=j,exports.DynamicActorEvent=Jh,exports.DynamicArea=O,exports.DynamicAreaEvent=fu,exports.DynamicCheckPointEvent=Hh,exports.DynamicCheckpoint=V,exports.DynamicMapIcon=$,exports.DynamicMapIconEvent=wh,exports.DynamicObject=F,exports.DynamicObjectEvent=hu,exports.DynamicPickup=x,exports.DynamicPickupEvent=Oh,exports.DynamicRaceCP=U,exports.DynamicRaceCPEvent=Xh,exports.ERecordStatus=H,exports.EditResponseTypesEnum=Xe,exports.FightingStylesEnum=tt,exports.ForceSyncEnum=st,exports.GameMode=R,exports.GameText=_h,exports.GangZone=L,exports.GangZoneEvent=Ih,exports.I18n=I,exports.InvalidEnum=w,exports.KeysEnum=Ye,exports.LimitsEnum=M,exports.MapIconStylesEnum=at,exports.MarkerModesEnum=$e,exports.Menu=re,exports.MenuEvent=mh,exports.NPCPlaybackEnum=Je,exports.NetStats=ch,exports.Npc=N,exports.NpcEvent=W_,exports.ObjectMaterialAlignmentEnum=qe,exports.ObjectMaterialTextSizeEnum=Qe,exports.Player=p,exports.PlayerEvent=be,exports.PlayerStateEnum=ce,exports.RecordTypesEnum=pt,exports.SelectObjectTypesEnum=et,exports.SpecialActionsEnum=Ae,exports.SpectateModesEnum=ge,exports.Streamer=f,exports.TextDraw=_,exports.TextDrawAlignEnum=lt,exports.TextDrawEvent=Eu,exports.TextDrawFontsEnum=_e,exports.Vehicle=C,exports.VehicleEvent=dh,exports.VehicleModelInfoEnum=ct,exports.VehicleParamsEnum=dt,exports.WeaponEnum=_t,exports.WeaponSkillsEnum=ht,exports.WeaponStatesEnum=mt,exports.animateLib=gt,exports.defineEvent=h,exports.defineHooks=wu,exports.getAnimateDurationByLibName=Ic,exports.isHolding=Au,exports.isPressed=Cu,exports.isPressing=Tu,exports.isReleased=Du,exports.isValidAnimateLib=Te,exports.isValidAnimateName=De,exports.rgba=E,exports.useTrigger=Vt;