local M,r,f,l,Y,F,t,L,g,m,W,T,z,X,G,J,R,x,V,w,A,q,Q,y,D,s,v,j,O,p,H,I,S,N,o,U,n,b,E,d,i,u,B,a,P,Z,k,C,e,K,c,h,MA,rA,fA,lA,YA,FA,tA,LA,gA,mA=_G,game,script,getfenv,setfenv,workspace,getmetatable,setmetatable,loadstring,coroutine,rawequal,typeof,print,math,warn,error,pcall,xpcall,select,rawset,rawget,ipairs,pairs,next,Rect,Axes,os,time,Faces,table.unpack,string,Color3,newproxy,tostring,tonumber,Instance,TweenInfo,BrickColor,NumberRange,ColorSequence,NumberSequence,ColorSequenceKeypoint,NumberSequenceKeypoint,PhysicalProperties,Region3int16,Vector3int16,require,table,type,task.wait,Enum,UDim,UDim2,Vector2,Vector3,Region3,CFrame,Ray,task.defer,task.delay,task,function(M,r)return M or error(r or"\097\115\115\101\114\116\105\111\110 \102\097\105\108\101\100\033",2)end local WA=C.freeze({"\087\111\114\107\115\112\097\099\101","\080\108\097\121\101\114\115";"\076\105\103\104\116\105\110\103","\083\101\114\118\101\114\083\116\111\114\097\103\101";"\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101","\074\111\105\110\116\115\083\101\114\118\105\099\101";"\082\101\112\108\105\099\097\116\101\100\070\105\114\115\116","\083\099\114\105\112\116\067\111\110\116\101\120\116","\083\101\114\118\101\114\083\099\114\105\112\116\083\101\114\118\105\099\101","\076\111\103\083\101\114\118\105\099\101";"\084\101\097\109\115";"\083\111\117\110\100\083\101\114\118\105\099\101";"\083\116\097\114\116\101\114\071\117\105","\083\116\097\114\116\101\114\080\097\099\107";"\083\116\097\114\116\101\114\080\108\097\121\101\114";"\071\114\111\117\112\083\101\114\118\105\099\101","\077\097\114\107\101\116\112\108\097\099\101\083\101\114\118\105\099\101";"\077\097\114\107\101\116\112\108\097\099\101\083\101\114\118\105\099\101";"\084\101\115\116\083\101\114\118\105\099\101";"\072\116\116\112\083\101\114\118\105\099\101","\082\117\110\083\101\114\118\105\099\101","\073\110\115\101\114\116\083\101\114\118\105\099\101";"\078\101\116\119\111\114\107\083\101\114\118\101\114"})local TA={}local zA=l()Y(1,L({},{__metatable=TA}))local XA={}local GA={}local JA={}local RA={}local xA={}local VA={}local wA={}local AA=k local qA=f.Parent local QA=U.new local yA=function(M)for r,f in Q(GA.Modules)do if M==f then return true end end return false end local DA=function(M,r)if e(M)=="\115\116\114\105\110\103"and not r then r=M M=nil end if GA.Core and GA.Core.DebugMode then G("\058\058\065\100\111\110\105\115\058\058 \069\114\114\111\114\058 "..(N(M)..("\058 "..N(r))))end if GA and GA.Logs then GA.Logs.AddLog(GA.Logs.Errors,{Text=(r and(M and N(M).."\058")or"")..N(r);Desc=r,Player=M})end end

local _G, game, script, getfenv, setfenv, workspace,
getmetatable, setmetatable, loadstring, coroutine,
rawequal, typeof, print, math, warn, error,  pcall,
xpcall, select, rawset, rawget, ipairs, pairs,
next, Rect, Axes, os, time, Faces, unpack, string, Color3,
newproxy, tostring, tonumber, Instance, TweenInfo, BrickColor,
NumberRange, ColorSequence, NumberSequence, ColorSequenceKeypoint,
NumberSequenceKeypoint, PhysicalProperties, Region3int16,
Vector3int16, require, table, type, wait,
Enum, UDim, UDim2, Vector2, Vector3, Region3, CFrame, Ray, spawn, delay, task, assert =
	_G, game, script, getfenv, setfenv, workspace,
getmetatable, setmetatable, loadstring, coroutine,
rawequal, typeof, print, math, warn, error,  pcall,
xpcall, select, rawset, rawget, ipairs, pairs,
next, Rect, Axes, os, time, Faces, table.unpack, string, Color3,
newproxy, tostring, tonumber, Instance, TweenInfo, BrickColor,
NumberRange, ColorSequence, NumberSequence, ColorSequenceKeypoint,
NumberSequenceKeypoint, PhysicalProperties, Region3int16,
Vector3int16, require, table, type, task.wait,
Enum, UDim, UDim2, Vector2, Vector3, Region3, CFrame, Ray, task.defer, task.delay, task, function(cond, errMsg) return cond or error(errMsg or "assertion failed!", 2) end;

local SERVICES_WE_USE = table.freeze {
	"Workspace";
	"Players";
	"Lighting";
	"ServerStorage";
	"ReplicatedStorage";
	"JointsService";
	"ReplicatedFirst";
	"ScriptContext";
	"ServerScriptService";
	"LogService";
	"Teams";
	"SoundService";
	"StarterGui";
	"StarterPack";
	"StarterPlayer";
	"GroupService";
	"MarketplaceService";
	"MarketplaceService";
	"TestService";
	"HttpService";
	"RunService";
	"InsertService";
	"NetworkServer";
}

local unique = {}
local origEnv = getfenv(); setfenv(1,setmetatable({}, {__metatable = unique}))
local locals = {}
local server = {}
local service = {}
local RbxEvents = {}
local ErrorLogs = {}
local HookedEvents = {}
local ServiceSpecific = {}
local oldReq = require
local Folder = script.Parent
local oldInstNew = Instance.new
local isModule = function(module)
	for ind, modu in pairs(server.Modules) do
		if module == modu then
			return true
		end
	end
	return false
end

local logError = function(plr, err)
	if type(plr) == "string" and not err then
		err = plr;
		plr = nil;
	end

	if server.Core and server.Core.DebugMode then
		warn("::Adonis:: Error: "..tostring(plr)..": "..tostring(err))
	end

	if server and server.Logs then
		server.Logs.AddLog(server.Logs.Errors, {
			Text = ((err and plr and tostring(plr) ..":") or "").. tostring(err),
			Desc = err,
			Player = plr
		})
	end
end
