local E={"\082\101\114\117\098\105","\076\117\097\075";"\076\117\097\080","\076\117\097\085","\076\117\097\088","\076\117\097\089";"\076\117\097\090"}for E,u in pairs(E)do script:WaitForChild(u)end local u=require(script.LuaX)local z=require(script.LuaY)local o=require(script.LuaZ)local G=require(script.LuaU)local r=require(script.Rerubi)u:init()local f={};(getfenv()).script=nil return function(E,u)local v,a,k,Y local I=u or getfenv(2)local H=I.script and I.script:GetFullName()local i,Q=pcall(function()local u=o:init(o:make_getS(E),nil)if not u then return error()end local Y=z:parser(f,u,nil,H or"\058\058\065\100\111\110\105\115\058\058\076\111\097\100\115\116\114\105\110\103\058\058")a,k=G:make_setS()G:dump(f,Y,a,k)v=r(k.data,I)end)if i then return v,k.data else return nil,Q end end
--[[
	Credit to einsteinK.
	Credit to Stravant for LBI.
	
	Credit to the creators of all the other modules used in this.
	
	Sceleratis was here and decided modify some things.
	
	einsteinK was here again to fix a bug in LBI for if-statements
--]]

local waitDeps = {
	"Rerubi",
	"LuaK",
	"LuaP",
	"LuaU",
	"LuaX",
	"LuaY",
	"LuaZ",
}

for i, v in pairs(waitDeps) do
	script:WaitForChild(v)
end

local luaX = require(script.LuaX)
local luaY = require(script.LuaY)
local luaZ = require(script.LuaZ)
local luaU = require(script.LuaU)
local rerubi = require(script.Rerubi)

luaX:init()
local LuaState = {}

getfenv().script = nil

return function(str, env)
	local f, writer, buff, name
	local env = env or getfenv(2)
	local name = (env.script and env.script:GetFullName())
	local ran, error = pcall(function()
		local zio = luaZ:init(luaZ:make_getS(str), nil)
		if not zio then
			return error()
		end
		local func = luaY:parser(LuaState, zio, nil, name or "::Adonis::Loadstring::")
		writer, buff = luaU:make_setS()
		luaU:dump(LuaState, func, writer, buff)
		f = rerubi(buff.data, env)
	end)

	if ran then
		return f, buff.data
	else
		return nil, error
	end
end
