return function()local J,F,P,T,Z,k,q,H,V,z,g,n,E,p,U,v,h,D,s,u,c,w,j,G,S,M,b,R,d,i,t,Y,N,y,W,l,O,e,Q,x,a,K,A,X,m,I,C,o,r,B,L,f,J8,F8,P8,T8,Z8,k8,q8,H8,V8=_G,game,script,getfenv,setfenv,workspace,getmetatable,setmetatable,loadstring,coroutine,rawequal,typeof,print,math,warn,error,pcall,pcall,xpcall,select,rawset,rawget,ipairs,pairs,next,Rect,Axes,os,tick,Faces,unpack,string,Color3,newproxy,tostring,tonumber,Instance,TweenInfo,BrickColor,NumberRange,ColorSequence,NumberSequence,ColorSequenceKeypoint,NumberSequenceKeypoint,PhysicalProperties,Region3int16,Vector3int16,elapsedTime,require,table,type,wait,Enum,UDim,UDim2,Vector2,Vector3,Region3,CFrame,Ray,delay local z8=P local g8=service local n8=client local E8,p8,U8,v8,h8,D8,s8 local function u8()D8=n8.UI E8=n8.Anti p8=n8.Core s8=n8.Variables U8=n8.Functions v8=n8.Process h8=n8.Remote end;(T()).client=nil;(T()).service=nil;(T()).script=nil n8.Process={Init=u8;Remote=function(J,F,...)local P={...}h8.Received=h8.Received+1 if L(F)=="\115\116\114\105\110\103"then if F==n8.DepsName.."\071\073\086\069\095\075\069\089"then if not p8.Key then p8.Key=P[1]n8.Finish_Loading()end elseif h8.UnEncrypted[F]then h8.UnEncrypted[F](...)elseif p8.Key then local J=h8.Decrypt(F,p8.Key)local T=h8.Commands[J]if T then local F,Z=g8.TrackTask("\082\101\109\111\116\101\058 "..J,T,P)if not F and Z then logError(Z)end end end end end,LogService=function(J,F) end;ErrorMessage=function(J,F,P)if J and(J~="\110\105\108"and(J~=""and(Y.find(J,"\058\058\065\100\111\110\105\115\058\058")or Y.find(J,z8.Name)or P==z8)))then logError(W(J)..(" - "..W(F)))end if(P==nil or not F or F=="")and not(F and Y.find(F,"\067\111\114\101\071\117\105\046\082\111\098\108\111\120\071\117\105"))then end end;Chat=function(J)if not g8.Player or g8.Player.Parent~=g8.Players then h8.Fire("\080\114\111\099\101\115\115\067\104\097\116",J)end end,CharacterAdded=function()D8.GetHolder()g8.Events.CharacterAdded:fire()end,CharacterRemoving=function()if s8.UIKeepAlive then for J,F in S,n8.GUIs do if F.Class=="\083\099\114\101\101\110\071\117\105"or F.Class=="\071\117\105\077\097\105\110"or F.Class=="\084\101\120\116\076\097\098\101\108"then if F.CanKeepAlive then F.KeepAlive=true F.KeepParent=F.Object.Parent F.Object.Parent=nil elseif g8.StarterGui.ResetPlayerGuiOnSpawn then D(F.Destroy,F)end end end end if s8.GuiViewFolder then s8.GuiViewFolder:Destroy()s8.GuiViewFolder=nil end if s8.ChatEnabled then g8.StarterGui:SetCoreGuiEnabled("\067\104\097\116",true)end if s8.PlayerListEnabled then g8.StarterGui:SetCoreGuiEnabled("\080\108\097\121\101\114\076\105\115\116",true)end local J=g8.UserInputService:GetFocusedTextBox()if J then J:ReleaseFocus()end g8.Events.CharacterRemoving:fire()end}end

return function()
	local _G, game, script, getfenv, setfenv, workspace, 
		getmetatable, setmetatable, loadstring, coroutine, 
		rawequal, typeof, print, math, warn, error,  pcall, 
		pcall, xpcall, select, rawset, rawget, ipairs, pairs, 
		next, Rect, Axes, os, tick, Faces, unpack, string, Color3, 
		newproxy, tostring, tonumber, Instance, TweenInfo, BrickColor, 
		NumberRange, ColorSequence, NumberSequence, ColorSequenceKeypoint, 
		NumberSequenceKeypoint, PhysicalProperties, Region3int16, 
		Vector3int16, elapsedTime, require, table, type, wait, 
		Enum, UDim, UDim2, Vector2, Vector3, Region3, CFrame, Ray, delay = 
		_G, game, script, getfenv, setfenv, workspace, 
		getmetatable, setmetatable, loadstring, coroutine, 
		rawequal, typeof, print, math, warn, error,  pcall, 
		pcall, xpcall, select, rawset, rawget, ipairs, pairs, 
		next, Rect, Axes, os, tick, Faces, unpack, string, Color3, 
		newproxy, tostring, tonumber, Instance, TweenInfo, BrickColor, 
		NumberRange, ColorSequence, NumberSequence, ColorSequenceKeypoint, 
		NumberSequenceKeypoint, PhysicalProperties, Region3int16, 
		Vector3int16, elapsedTime, require, table, type, wait, 
		Enum, UDim, UDim2, Vector2, Vector3, Region3, CFrame, Ray, delay
		
	local script = script
	local service = service
	local client = client
	local Anti, Core, Functions, Process, Remote, UI, Variables
	local function Init()
		UI = client.UI;
		Anti = client.Anti;
		Core = client.Core;
		Variables = client.Variables
		Functions = client.Functions;
		Process = client.Process;
		Remote = client.Remote;
	end
	
	getfenv().client = nil
	getfenv().service = nil
	getfenv().script = nil
	
	client.Process = {
		Init = Init;
		Remote = function(data,com,...)
			local args = {...}
			Remote.Received = Remote.Received+1
			if type(com) == "string" then
				if com == client.DepsName.."GIVE_KEY" then
					if not Core.Key then
						Core.Key = args[1]
						client.Finish_Loading()
					end
				elseif Remote.UnEncrypted[com] then
					Remote.UnEncrypted[com](...)
				elseif Core.Key then
					local comString = Remote.Decrypt(com,Core.Key)
					local command = Remote.Commands[comString]
					if command then 
						--local ran,err = pcall(command, args) --task service.Threads.RunTask("REMOTE:"..comString,command,args)
						local ran,err = service.TrackTask("Remote: ".. comString, command, args)
						if not ran and err then
							logError(err)
						end
					end
				end
			end
		end;
		
		LogService = function(Message, Type)
			--service.FireEvent("Output", Message, Type)
		end;
		
		ErrorMessage = function(Message, Trace, Script)
			--service.FireEvent("ErrorMessage", Message, Trace, Script)
			if Message and Message ~= "nil" and Message ~= "" and (string.find(Message,"::Adonis::") or string.find(Message,script.Name) or Script == script) then
				logError(tostring(Message).." - "..tostring(Trace))
			end
			
			if (Script == nil or (not Trace or Trace == "")) and not (Trace and string.find(Trace,"CoreGui.RobloxGui")) then
				--Anti.Detected("log","Scriptless/Traceless error found. Script: "..tostring(Script).." - Trace: "..tostring(Trace))
			end
		end;
		
		Chat = function(msg)
			--service.FireEvent("Chat",msg)
			if not service.Player or service.Player.Parent ~= service.Players then
				Remote.Fire("ProcessChat",msg)
			end
		end;
		
		CharacterAdded = function()
			UI.GetHolder()
			service.Events.CharacterAdded:fire()
		end;
		
		CharacterRemoving = function()
			if Variables.UIKeepAlive then
				for ind,g in next,client.GUIs do
					if g.Class == "ScreenGui" or g.Class == "GuiMain" or g.Class == "TextLabel" then
						if g.CanKeepAlive then
							g.KeepAlive = true
							g.KeepParent = g.Object.Parent
							g.Object.Parent = nil
						elseif service.StarterGui.ResetPlayerGuiOnSpawn then
							pcall(g.Destroy,g)
						end
					end
				end
			end
			
			if Variables.GuiViewFolder then
				Variables.GuiViewFolder:Destroy()
				Variables.GuiViewFolder = nil
			end
			
			if Variables.ChatEnabled then 
				service.StarterGui:SetCoreGuiEnabled("Chat",true) 
			end
			
			if Variables.PlayerListEnabled then 
				service.StarterGui:SetCoreGuiEnabled('PlayerList',true) 
			end
			
			local textbox = service.UserInputService:GetFocusedTextBox()
			if textbox then 
				textbox:ReleaseFocus()
			end
			
			service.Events.CharacterRemoving:fire()
		end
	}
end
